TWI514136B - 快閃記憶裝置及其資料寫入方法 - Google Patents
快閃記憶裝置及其資料寫入方法 Download PDFInfo
- Publication number
- TWI514136B TWI514136B TW099146320A TW99146320A TWI514136B TW I514136 B TWI514136 B TW I514136B TW 099146320 A TW099146320 A TW 099146320A TW 99146320 A TW99146320 A TW 99146320A TW I514136 B TWI514136 B TW I514136B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- data
- flash memory
- write
- fat
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明係有關於記憶體,特別是有關於快閃記憶體。
快閃記憶裝置用以為一主機儲存資料,因此必須處理主機所發出的寫入命令。快閃記憶裝置包含一快閃記憶體及一控制器。當控制器自主機接收到寫入命令時,必須依據寫入命令將寫入資料儲存至快閃記憶體。快閃記憶體包括多個區塊,每一區塊包含多個頁,分別用以儲存資料。快閃記憶體的每一區塊的每一頁皆分別對應於一實體位址。主機則係以邏輯位址指定所欲存取的資料。實體位址與邏輯位址具有相對應的轉換關係。
當主機欲將一邏輯位址之原本資料替換為更新資料時,控制器無法將更新資料直接寫入快閃記憶體中儲存原本資料的原本區塊。因此,控制器將更新資料轉儲存至一新區塊。儲存更新資料的新區塊與儲存原本資料的原本區塊皆對應於同一邏輯位址,因此兩者具有相對應的關係。一般而言,儲存原本資料的原本區塊被稱為「母區塊」(mother block)。新區塊則有不同的儲存更新資料的格式。僅能儲存連續位址之更新資料的新區塊被稱為「子區塊」(child block),而可儲存不連續位址之更新資料的新區塊被稱為「檔案配置表區塊」(file allocation table block,FAT block)。控制器僅能自子區塊及FAT區塊中選擇一種格式的區塊以儲存更新資料。
子區塊僅能儲存連續位址之更新資料,因此當控制器自主機接收到一寫入命令帶有位址不連續的更新資料,便無法再將更新資料儲存於子區塊。此時控制器使必須進行母區塊與子區塊的資料整合,將母區塊儲存的原始資料與子區塊儲存的更新資料整合在一起,以儲存至一整合區塊。同樣的,雖然FAT區塊可儲存不連續位址之更新資料,但也僅具有有限的資料容量,當控制器處理寫入命令而發覺FAT區塊所儲存的資料容量已滿,便無法再將更新資料儲存於FAT區塊。此時控制器便必須進行母區塊與FAT區塊的資料整合,將母區塊儲存的原始資料與FAT區塊儲存的更新資料整合在一起,以儲存至一整合區塊。
然而,隨著晶片的製程技術之提升,快閃記憶體的一區塊之總頁數愈來愈多,可儲存的資料量也愈來愈大。然而,控制器將資料寫入快閃記憶體的速度卻沒有顯著提升。當對母區塊與對應的FAT區塊或子區塊進行資料整合時,將一整個區塊資料量之整合資料寫入整合區塊會花上大量的時間。依據業界通用之SD(Secure Digital)規格,當主機發出一寫入命令後,快閃記憶裝置僅有有限的時間(250ms)以處理該寫入命令。當控制器判斷處理該寫入命令需要進行對母區塊與對應的FAT區塊或子區塊進行資料整合時,資料整合往往會花上超出250ms的時間。因此,需要一種快閃記憶裝置之資料寫入方法,可以於寫入命令之有限的處理時間內,完成母區塊與對應的FAT區塊或子區塊之資料整合的工作。
有鑑於此,本發明之目的在於提供一種快閃記憶裝置,以解決習知技術存在之問題。於一實施例中,該快閃記憶裝置耦接至一主機,包括一快閃記憶體以及一控制器。該快閃記憶體包括多個區塊,每一區塊包括用以儲存使用者資料的多個一般頁及用以暫存資料的多個備用頁(reserved page)。該控制器自該主機接收一目前寫入命令以及一寫入資料,自該快閃記憶體中決定該寫入命令所對應之一母區塊,決定是否執行該目前寫入命令需進行該母區塊與對應之一檔案配置表(File Allocation Table,FAT)區塊之資料整合工作,以及若需進行該資料整合工作時,將該母區塊及該FAT區塊儲存之資料依位址分別分割為多個原始資料段及相對應之多個更新資料段,分別整合該等原始資料段及該等更新資料段以得到多個整合資料段,自該主機接收多個後續寫入命令及多個後續寫入資料,於該目前寫入命令及該等後續寫入命令所對應之多個處理時段內分別將該等整合資料段存入一整合區塊,且於該等後續寫入命令所對應之該等處理時段內將該等後續寫入資料分別暫存於該等後續寫入命令所對應之多個後續區塊之備用頁中。
本發明提供一種快閃記憶裝置之資料寫入方法。於一實施例中,該快閃記憶裝置耦接至一主機。首先,將一快閃記憶體所包括每一區塊之多個頁區分為用以儲存使用者資料的多個一般頁及用以暫存資料的多個備用頁(reserved page)。接著,自該主機接收一目前寫入命令以及一寫入資料。接著,自該快閃記憶體中決定該寫入命令所對應之一母區塊。接著,決定是否執行該目前寫入命令需進行該母區塊與對應之一檔案配置表(File Allocation Table,FAT)區塊之資料整合工作。若需進行該資料整合工作時,將該母區塊及該FAT區塊儲存之資料依位址分別分割為多個原始資料段及相對應之多個更新資料段。接著,分別整合該等原始資料段及該等更新資料段以得到多個整合資料段。接著,自該主機接收多個後續寫入命令及多個後續寫入資料。於該目前寫入命令及該等後續寫入命令所對應之多個處理時段內,分別將該等整合資料段存入一整合區塊。於該等後續寫入命令所對應之該等處理時段內,將該等後續寫入資料分別暫存於該等後續寫入命令所對應之多個後續區塊之備用頁中。
為了讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉數較佳實施例,並配合所附圖示,作詳細說明如下:
第1圖為依據本發明之快閃記憶裝置104之區塊圖。快閃記憶裝置104耦接至一主機102,為主機102儲存資料。於一實施例中,快閃記憶裝置104包括控制器112及快閃記憶體114。控制器112自主機102接收寫入命令及寫入資料,並依據寫入命令將寫入資料寫入快閃記憶體114。快閃記憶體114中包括多個區塊(block),每一區塊包括多個頁(page)以供儲存資料。快閃記憶體114中的多個區塊分別被劃分為兩大區。空白區124中的區塊141~14n未儲存任何資料,被稱為空白區塊。使用區122中所包含的區塊已儲存使用者資料,且儲存資料的各區塊分別對應於資料的邏輯位址。當主機102欲儲存更新資料至原本已儲存原始資料之邏輯位址時,由於使用區122中對應於該邏輯位址的母區塊已儲存該原始資料,控制器112無法直接將更新資料寫入母區塊,便自空白區124取得一空白區塊作為一FAT區塊以供儲存更新資料。因此,使用區122中用以儲存原始資料的母區塊131a與用以儲存更新資料的FAT區塊131b對應於同一邏輯位址。同理,控制器112亦可自空白區124取得一空白區塊作為一子區塊以供儲存更新資料,而使用區122中用以儲存原始資料的母區塊與用以儲存更新資料的子區塊對應於同一邏輯位址。
第2圖為依據本發明之快閃記憶體114之區塊所包含的頁之示意圖。一般的快閃記憶體之區塊的所有頁均用以儲存使用者資料。本發明之快閃記憶體114之一區塊所包含的多個頁被區分為一般頁及備用頁(reserved page)。一般頁用以儲存使用者資料,而備用頁用以儲存系統資料。快閃記憶體114之每一區塊均保留固定數目之備用頁以供系統使用。當主機102欲將資料寫入一區塊時,控制器112僅將資料寫入該區塊的一般頁,而不會將資料寫入該區塊的備用頁。舉例來說,區塊201包含m個一般頁211~21m以及(x-n+1)個備用頁21n~21x,而區塊221包含m個一般頁221~22m以及(x-n+1)個備用頁22n~22x。於一實施例中,假設一寫入命令之處理時間為T1
,而控制器112將快閃記憶體114中之一區塊之所有一般頁寫滿資料所需之時間為T2
,則一區塊的備用頁之數目大於T2
除以T1
所得之商值(T2
/T1
)。
當控制器112自主機102接收到寫入命令及寫入資料,必須依據寫入命令將寫入資料寫入快閃記憶體114之一區塊。第3A圖為依據本發明之快閃記憶體114的資料寫入方法300之流程圖。控制器112依據方法300處理自主機102接收到的寫入命令。首先,控制器112自主機102接收一寫入位址及一寫入資料(步驟302)。接著,控制器112決定該寫入位址對應之一母區塊(步驟304)。接著,控制器112決定是否該母區塊中對應於該寫入位址之空間已儲存資料(步驟306)。若母區塊中對應於該寫入位址之空間已儲存資料,則控制器112必須將寫入資料寫入一FAT區塊中。因此,控制器112檢查是否快閃記憶體114中存在對應於該母區塊之一FAT區塊(步驟308)。若快閃記憶體114中不存在對應於該母區塊之一FAT區塊,則控制器112自空白區124取得一空白區塊作為對應於母區塊之一FAT區塊,並將寫入資料寫入至該FAT區塊(步驟318)。若快閃記憶體114中存在對應於該母區塊之一FAT區塊(步驟308),則控制器112將寫入資料寫入至該FAT區塊(步驟322)。
接著,控制器112檢查是否FAT區塊所儲存之資料已滿(步驟324)。若FAT區塊所儲存之資料已滿,則FAT區塊將無法再儲存任何的更新資料。因此,控制器112必須將母區塊中儲存的原始資料與FAT區塊中儲存的更新資料整合為一整合資料,再將整合資料儲存至一空白區塊而得到一整合區塊。然而,由於整合資料的數量為一整個區塊的資料量,將整合資料寫入整合區塊所耗費的時間會超過控制器112處理一寫入命令的時間限制(250ms),因此控制器112必須將整合資料分割為數個整合資料段以分別寫入整合區塊,以使每次將整合資料段寫入整合區塊的時間均未超過控制器112處理一寫入命令的時間限制。於本次的寫入命令之處理時間內,控制器112先進行第一次搬移工作,以將第一個整合資料段寫入整合區塊(步驟326)。當控制器112後續自主機102接收到其他寫入命令時,再利用其他寫入命令之處理時間陸續進行第二、三、…、K次搬移工作,以將第二、三、…、K個整合資料段寫入整合區塊。上述的第一次~第K次搬移工作將以第4圖及第5圖進行詳細說明。
接著,若母區塊中對應於該寫入位址之空間尚未儲存資料(步驟306),則控制器112先檢查是否系統中尚有之前未完成的搬移工作(步驟310)。若系統中尚存在之前未完成的搬移工作,則控制器112先將寫入資料暫時儲存於母區塊之備用頁(步驟312),並且於一使用備用頁數目表116中將母區塊之使用備用頁數目加一(步驟314)。使用備用頁數目表116係用以紀錄快閃記憶體114中各區塊中之被寫入資料的備用頁之數目。接著,控制器112便可進行系統中之前未完成的搬移工作。例如,若之前的寫入命令之處理尚有留下第二、三、…、K次搬移工作,則控制器112便可於此次寫入命令之處理時間內進行之前的寫入命令的第二次搬移工作。若系統中不存在之前未完成的搬移工作,則控制器112可直接將寫入資料寫入至母區塊(步驟320)。
當控制器112將寫入資料寫入FAT區塊(步驟318、324)或母區塊(步驟320)後,則本次寫入命令的處理時間尚有賸餘。因此,控制器112便可利用剩餘的處理時間以進行區塊之備用頁之暫存資料的整合工作。首先,控制器112於使用備用頁數目表116中搜尋具有最高之使用備用頁數目的一目標區塊(步驟328)。第6圖顯示依據本發明之使用備用頁數目表600之一實施例。使用備用頁數目表600包含兩欄,一欄為快閃記憶體114包含之所有區塊的實體位址,另一欄為各區塊中已儲存系統資料之備用頁的數目。如此,控制器112便可藉搜尋使用備用頁數目表600而得到快閃記憶體114中耗費最多備用頁以儲存資料的一目標區塊的實體位址。接著,控制器112進行目標區塊之備用頁及一般頁之資料整合的第一次搬移工作(步驟330)。目標區塊之備用頁所儲存的為之前尚未處理之寫入命令之資料,控制器112必須將目標區塊之備用頁中儲存之資料與一般頁中儲存之資料合併而得一整合資料,再將整合資料儲存至一空白區塊而得到一整合區塊。
然而,由於整合資料的數量為一整個區塊的資料量,將整合資料寫入整合區塊所耗費的時間會超過控制器112處理一寫入命令的時間限制(250ms),因此控制器112必須將整合資料分割為數個整合資料段以分別寫入整合區塊,以使每次將整合資料段寫入整合區塊的時間均未超過控制器112處理一寫入命令的時間限制。於本次的寫入命令之處理時間內,控制器112先進行第一次搬移工作(步驟330),以將第一個整合資料段寫入整合區塊。當控制器112後續自主機102接收到其他寫入命令時,再利用其他寫入命令之處理時間陸續進行第二、三、…、K次搬移工作,以將第二、三、…、K個整合資料段寫入整合區塊。上述的第一次~第K次搬移工作將以第7圖進行詳細說明。
第3B圖為依據本發明之快閃記憶體114的資料寫入方法350之另一實施例之流程圖。方法350與方法300的差別在於系統中使用以儲存更新資料的區塊由FAT區塊改為子區塊。FAT區塊儲存更新資料時,更新資料的位址可以不連續;而子區塊儲存更新資料時,更新資料的位址必須連續。因此,當控制器112可於快閃記憶體114中找到對應於母區塊之子區塊時(步驟358),控制器112繼續檢查是否寫入資料的寫入位址接續於該子區塊用以儲存資料之最後位址(步驟372)。若寫入位址接續於該子區塊用以儲存資料之最後位址,則子區塊可儲存該寫入資料,因此控制器112將寫入資料寫入該子區塊(步驟374)。若寫入位址不接續於該子區塊用以儲存資料之最後位址,則子區塊無法儲存該寫入資料,因此控制器112必須將母區塊中儲存的原始資料與子區塊中儲存的更新資料整合為一整合資料,再將整合資料儲存至一空白區塊而得到一整合區塊。同樣地,控制器112必須將整合資料分割為數個整合資料段以分別寫入整合區塊,以使每次將整合資料段寫入整合區塊的時間均未超過控制器112處理一寫入命令的時間限制。於本次的寫入命令之處理時間內,控制器112先進行第一次搬移工作,以將第一個整合資料段寫入整合區塊(步驟376)。當控制器112後續自主機102接收到其他寫入命令時,再利用其他寫入命令之處理時間陸續進行第二、三、…、K次搬移工作,以將第二、三、…、K個整合資料段寫入整合區塊。第3B圖的其他步驟均與第3A圖的對應步驟相同。
第4圖為依據本發明之將母區塊401儲存之原始資料與FAT區塊402儲存之更新資料整合並儲存至一整合區塊403的一實施例之示意圖。於一實施例中,母區塊401包括252個一般頁及4個備用頁。儲存更新資料的252個一般頁被依位址分割為4群,分別為第0頁~第63頁、第64頁~第127頁、第128頁~第191頁、以及第192頁~第251頁。控制器112先將母區塊401之第0頁~第63頁儲存的原始資料411及FAT區塊402儲存之對應的更新資料421合併為第一整合資料段431,接著將母區塊401之第64頁~第127頁儲存的原始資料412及FAT區塊402儲存之對應的更新資料422合併為第二整合資料段432。接著,控制器112將母區塊401之第128頁~第191頁儲存的原始資料413及FAT區塊402儲存之對應的更新資料423合併為第三整合資料段433。最後,控制器112將母區塊401之第192頁~第251頁儲存的原始資料414及FAT區塊402儲存之對應的更新資料424合併為第四整合資料段434。
控制器112接著由快閃記憶體114取得一空白區塊作為整合區塊。於第一個寫入命令對應之處理時段內,控制器112將第一整合資料段431寫入整合區塊403的第0頁~第63頁。接著,於第二個寫入命令對應之處理時段內,控制器112將第二整合資料段432寫入整合區塊403的第64頁~第127頁。接著,於第三個寫入命令對應之處理時段內,控制器112將第三整合資料段433寫入整合區塊403的第128頁~第191頁。接著,於第四個寫入命令對應之處理時段內,控制器112將第四整合資料段434寫入整合區塊403的第192頁~第251頁。假設每一寫入命令之處理時段為至多250ms,而控制器112將一頁資料寫入快閃記憶體114需花費3ms,則上述各整合資料段431、432、433、434之寫入整合區塊403的過程各花費64×3=192ms,並未超出每一寫入命令之處理時段之限制250ms。
第5A~5D圖顯示依據本發明之整合母區塊501之原始資料與FAT區塊之更新資料並儲存至一整合區塊504的一實施例。假設快閃記憶體114包括三區塊501、502、503。區塊501包括分別對應於邏輯位址0~251的252個一般頁以及4個備用頁。同理,區塊502包括分別對應於邏輯位址252~501的252個一般頁以及4個備用頁,而區塊503包括分別對應於邏輯位址502~753的252個一般頁以及4個備用頁。首先,控制器112自主機102接收到一第一寫入命令、更新資料、以及寫入位址180。假設控制器112判斷執行第一寫入命令需要整合母區塊501儲存之原始資料及對應之FAT區塊之更新資料。因此,控制器112將區塊501之位址0~63、64~127、128~191、192~251之一般頁所儲存的原始資料分別與對應之FAT區塊之更新資料整合為第一整合資料段、第二整合資料段、第三整合資料段、第四整合資料段。
控制器112自快閃記憶體114取得一空白區塊作為整合區塊504。於第一寫入命令對應之處理時段內,控制器112僅將第一整合資料段寫入整合區塊504之位址0~63的一般頁,如第5A圖所示。接著,控制器112自主機102接收到一第二寫入命令、第二寫入資料、以及寫入位址503。寫入位址503對應於區塊503之位址範圍502~753。由於系統中尚有區塊501之整合工作尚未進行完畢,因此控制器112先將位址503之第二寫入資料暫存於區塊503的第一備用頁。接著,於第二寫入命令對應之處理時段內,控制器112將第二整合資料段寫入整合區塊504之位址64~127的一般頁,如第5B圖所示。
接著,控制器112自主機102接收到一第三寫入命令、第三寫入資料、以及寫入位址504。寫入位址504對應於區塊503之位址範圍502~753。由於系統中尚有區塊501之整合工作尚未進行完畢,因此控制器112先將位址504之第三寫入資料暫存於區塊503的第二備用頁。接著,於第三寫入命令對應之處理時段內,控制器112將第三整合資料段寫入整合區塊504之位址128~191的一般頁,如第5C圖所示。接著,控制器112自主機102接收到一第四寫入命令、第四寫入資料、以及寫入位址505。寫入位址505對應於區塊503之位址範圍502~753。由於系統中尚有區塊501之整合工作尚未進行完畢,因此控制器112先將位址505之第四寫入資料暫存於區塊503的第三備用頁。接著,於第四寫入命令對應之處理時段內,控制器112將第四整合資料段寫入整合區塊504之位址192~251的一般頁,以完成區塊501之整合工作,如第5D圖所示。
第7A~7D圖顯示依據本發明之整合區塊701之一般頁及備用頁儲存之資料並儲存至一整合區塊704的一實施例。假設快閃記憶體114包括三區塊701、702、703。區塊701包括分別對應於邏輯位址0~251的252個一般頁以及4個備用頁,其中3個備用頁皆已儲存資料。同理,區塊702包括分別對應於邏輯位址252~501的252個一般頁以及4個備用頁,而區塊703包括分別對應於邏輯位址502~753的252個一般頁以及4個備用頁。首先,假設控制器112於處理完一第一寫入命令之剩餘處理時間搜尋使用備用頁數目表116,並找出使用最多備用頁的區塊701,而決定進行區塊701之一般頁及備用頁之資料整合。因此,控制器112將區塊701之位址0~63、64~127、128~191、192~251之一般頁所儲存的原始資料分別與位址50、100、150之備用頁儲存之更新資料整合為第一整合資料段、第二整合資料段、第三整合資料段、第四整合資料段。
控制器112自快閃記憶體114取得一空白區塊作為整合區塊704。於第一寫入命令對應之剩餘處理時段內,控制器112僅將第一整合資料段寫入整合區塊704之位址0~63的一般頁,如第7A圖所示。接著,控制器112自主機102接收到一第二寫入命令、第二寫入資料、以及寫入位址270。寫入位址270對應於區塊702之位址範圍252~501。由於系統中尚有區塊701之整合工作尚未進行完畢,因此控制器112先將位址270之第二寫入資料暫存於區塊702的第一備用頁。接著,於第二寫入命令對應之處理時段內,控制器112將第二整合資料段寫入整合區塊704之位址64~127的一般頁,如第7B圖所示。
接著,控制器112自主機102接收到一第三寫入命令、第三寫入資料、以及寫入位址271。寫入位址271對應於區塊702之位址範圍252~501。由於系統中尚有區塊701之整合工作尚未進行完畢,因此控制器112先將位址271之第三寫入資料暫存於區塊702的第二備用頁。接著,於第三寫入命令對應之處理時段內,控制器112將第三整合資料段寫入整合區塊704之位址128~191的一般頁,如第7C圖所示。接著,控制器112自主機102接收到一第四寫入命令、第四寫入資料、以及寫入位址650。寫入位址650對應於區塊703之位址範圍502~753。由於系統中尚有區塊701之整合工作尚未進行完畢,因此控制器112先將位址650之第四寫入資料暫存於區塊703的第一備用頁。接著,於第四寫入命令對應之處理時段內,控制器112將第四整合資料段寫入整合區塊704之位址192~251的一般頁,以完成區塊701之整合工作,如第7D圖所示。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此項技術者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
102...主機
104...快閃記憶裝置
112...控制器
114...快閃記憶體
116...使用備用頁數目表
122...使用區
124...空白區
131a,…,13ka...母區塊
131b,…,13kb...FAT區塊
141,…,14n...空白區塊
201,201,…,20k...區塊
211-21m,221-22m,2k1-2km~一般頁;
21n-21x,22n-22x,2kn-2kx~備用頁;
401...母區塊
402...FAT區塊
403...整合區塊
第1圖為依據本發明之快閃記憶裝置之區塊圖;
第2圖為依據本發明之快閃記憶體之區塊所包含的頁之示意圖;
第3A圖為依據本發明之快閃記憶體的資料寫入方法之流程圖;
第3B圖為依據本發明之快閃記憶體的資料寫入方法之另一實施例的流程圖;
第4圖為依據本發明之將母區塊儲存之原始資料與FAT區塊儲存之更新資料整合並儲存至一整合區塊的一實施例之示意圖;
第5A~5D圖顯示依據本發明之整合母區塊之原始資料與FAT區塊之更新資料並儲存至一整合區塊的一實施例;
第6圖顯示依據本發明之使用備用頁數目表之一實施例;以及
第7A~7D圖顯示依據本發明之整合一區塊之一般頁及備用頁儲存之資料並儲存至一整合區塊的一實施例。
Claims (16)
- 一種快閃記憶裝置,耦接至一主機,包括:一快閃記憶體,包括多個區塊,每一區塊包括用以儲存使用者資料的多個一般頁及用以暫存資料的多個備用頁(reserved page);一控制器,自該主機接收一目前寫入命令以及一寫入資料,自該快閃記憶體中決定該寫入命令所對應之一母區塊,決定是否執行該目前寫入命令需進行該母區塊與對應之一檔案配置表(File Allocation Table,FAT)區塊之資料整合工作,以及若需進行該資料整合工作時,將該母區塊及該FAT區塊儲存之資料依位址分別分割為多個原始資料段及相對應之多個更新資料段,分別整合該等原始資料段及該等更新資料段以得到多個整合資料段,自該主機接收多個後續寫入命令及多個後續寫入資料,於該目前寫入命令及該等後續寫入命令所對應之多個處理時段內分別將該等整合資料段存入一整合區塊,且於該等後續寫入命令所對應之該等處理時段內將該等後續寫入資料分別暫存於該等後續寫入命令所對應之多個後續區塊之備用頁中,其中該控制器係以區塊為單位抹除該快閃記憶體中之資料。
- 如申請專利範圍第1項所述之快閃記憶裝置,其中該控制器檢查是否該母區塊中對應於該寫入位址之空間已儲存資料,若該母區塊中對應於該寫入位址之空間已儲存資料則檢查該快閃記憶體中是否存在與該母區塊對應之該FAT區塊,若該快閃記憶體中存在該FAT區塊則將該寫入資料寫入該FAT區塊,並檢查是否該FAT區塊所儲存之資 料已滿,若該FAT區塊所儲存之資料已滿則決定需進行該母區塊與該FAT區塊之資料整合工作。
- 如申請專利範圍第2項所述之快閃記憶裝置,其中若該快閃記憶體中不存在與該母區塊對應之該FAT區塊,該控制器自該快閃記憶體取得一空白區塊作為與該母區塊對應之該FAT區塊,並將該寫入資料寫入該FAT區塊。
- 如申請專利範圍第2項所述之快閃記憶裝置,其中若該母區塊中對應於該寫入位址之空間已儲存資料,該控制器將該寫入資料寫入該母區塊。
- 如申請專利範圍第1項所述之快閃記憶裝置,其中該控制器於一使用備用頁數目表中紀錄該快閃記憶體中各區塊所包含之被寫入資料的備用頁之數目。
- 如申請專利範圍第5項所述之快閃記憶裝置,其中該控制器於一閒置時段中搜尋該使用備用頁數目表以自該快閃記憶體中找出具有最高數目之被寫入資料的備用頁之一目標區塊,並進行對該目標區塊之一般頁所儲存之一般資料與備用頁所儲存之暫存資料整合之一備用頁整合工作。
- 如申請專利範圍第6項所述之快閃記憶裝置,其中若需進行該備用頁整合工作時,該控制器將該目標區塊儲存之一般資料依位址分別分割為多個一般資料段,分別進行該等一般資料段及備用頁之對應之暫存資料之整合以得到多個第二整合資料段,自該主機接收多個其他寫入命令及多個其他寫入資料,且於該等其他寫入命令所對應之多個處理時段內分別將該等第二整合資料段存入一第二整合 區塊。
- 如申請專利範圍第1項所述之快閃記憶裝置,其中該快閃記憶體之每一區塊的該等備用頁之數目大於以該控制器將該快閃記憶體中之一區塊之所有一般頁寫滿資料所需之時間除以一寫入命令之處理時段所得之一商值。
- 一種快閃記憶裝置之資料寫入方法,其中該快閃記憶裝置耦接至一主機,該方法包括下列步驟:將一快閃記憶體所包括每一區塊之多個頁區分為用以儲存使用者資料的多個一般頁及用以暫存資料的多個備用頁(reserved page),其中該快閃記憶體係以區塊為單位被抹除;自該主機接收一目前寫入命令以及一寫入資料;自該快閃記憶體中決定該寫入命令所對應之一母區塊;決定是否執行該目前寫入命令需進行該母區塊與對應之一檔案配置表(File Allocation Table,FAT)區塊之資料整合工作;若需進行該資料整合工作時,將該母區塊及該FAT區塊儲存之資料依位址分別分割為多個原始資料段及相對應之多個更新資料段;分別整合該等原始資料段及該等更新資料段以得到多個整合資料段;自該主機接收多個後續寫入命令及多個後續寫入資料;於該目前寫入命令及該等後續寫入命令所對應之多個 處理時段內,分別將該等整合資料段存入一整合區塊;以及於該等後續寫入命令所對應之該等處理時段內,將該等後續寫入資料分別暫存於該等後續寫入命令所對應之多個後續區塊之備用頁中。
- 如申請專利範圍第9項所述之快閃記憶裝置之資料寫入方法,其中是否執行該目前寫入命令需進行該母區塊與該FAT區塊之資料整合工作之決定步驟更包括:檢查是否該母區塊中對應於該寫入位址之空間已儲存資料;若該母區塊中對應於該寫入位址之空間已儲存資料,檢查該快閃記憶體中是否存在與該母區塊對應之該FAT區塊;若該快閃記憶體中存在該FAT區塊,將該寫入資料寫入該FAT區塊;檢查是否該FAT區塊所儲存之資料已滿;以及若該FAT區塊所儲存之資料已滿,決定需進行該母區塊與該FAT區塊之資料整合工作。
- 如申請專利範圍第10項所述之快閃記憶裝置之資料寫入方法,其中是否執行該目前寫入命令需進行該母區塊與該FAT區塊之資料整合工作之決定步驟更包括:若該快閃記憶體中不存在與該母區塊對應之該FAT區塊,自該快閃記憶體取得一空白區塊作為與該母區塊對應之該FAT區塊,以及將該寫入資料寫入該FAT區塊。
- 如申請專利範圍第10項所述之快閃記憶裝置之資 料寫入方法,其中是否執行該目前寫入命令需進行該母區塊與該FAT區塊之資料整合工作之決定步驟更包括:若該母區塊中對應於該寫入位址之空間已儲存資料,將該寫入資料寫入該母區塊。
- 如申請專利範圍第9項所述之快閃記憶裝置之資料寫入方法,其中該方法更包括:於一使用備用頁數目表中紀錄該快閃記憶體中各區塊所包含之被寫入資料的備用頁之數目。
- 如申請專利範圍第13項所述之快閃記憶裝置之資料寫入方法,其中該方法更包括:於一閒置時段中搜尋該使用備用頁數目表,以自該快閃記憶體中找出具有最高數目之被寫入資料的備用頁之一目標區塊;以及進行對該目標區塊之一般頁所儲存之一般資料與備用頁所儲存之暫存資料整合之一備用頁整合工作。
- 如申請專利範圍第14項所述之快閃記憶裝置之資料寫入方法,其中該備用頁整合工作之進形步驟包括:將該目標區塊儲存之一般資料依位址分別分割為多個一般資料段;分別進行該等一般資料段及備用頁之對應之暫存資料之整合以得到多個第二整合資料段;自該主機接收多個其他寫入命令及多個其他寫入資料;以及於該等其他寫入命令所對應之多個處理時段內分別將該等第二整合資料段存入一第二整合區塊。
- 如申請專利範圍第9項所述之快閃記憶裝置之資料寫入方法,其中該快閃記憶體之每一區塊的該等備用頁之數目大於以一控制器將該快閃記憶體中之一區塊之所有一般頁寫滿資料所需之時間除以一寫入命令之處理時段所得之一商值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099146320A TWI514136B (zh) | 2010-12-28 | 2010-12-28 | 快閃記憶裝置及其資料寫入方法 |
US13/337,970 US8966159B2 (en) | 2010-12-28 | 2011-12-27 | Flash storage device and data writing method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099146320A TWI514136B (zh) | 2010-12-28 | 2010-12-28 | 快閃記憶裝置及其資料寫入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201227295A TW201227295A (en) | 2012-07-01 |
TWI514136B true TWI514136B (zh) | 2015-12-21 |
Family
ID=46318453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099146320A TWI514136B (zh) | 2010-12-28 | 2010-12-28 | 快閃記憶裝置及其資料寫入方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8966159B2 (zh) |
TW (1) | TWI514136B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130268726A1 (en) * | 2011-07-01 | 2013-10-10 | Xin Guo | Dual Mode Write Non-Volatile Memory System |
CN103207834B (zh) * | 2013-03-25 | 2015-08-12 | 杭州乾程弘泰电力科技有限公司 | 一种电能数据存储方法 |
US10474570B2 (en) * | 2015-11-24 | 2019-11-12 | Cisco Technology, Inc. | Flashware usage mitigation |
US20200073595A1 (en) * | 2018-09-02 | 2020-03-05 | Silicon Motion Inc. | Flash memory controller capable of improving IOPS performance and corresponding method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200951979A (en) * | 2008-06-09 | 2009-12-16 | Phison Electronics Corp | Data writing method for flash memory and storage system and controller using the same |
TW201013401A (en) * | 2008-09-25 | 2010-04-01 | Silicon Motion Inc | Access methods for a flash memory and memory devices |
US7702831B2 (en) * | 2000-01-06 | 2010-04-20 | Super Talent Electronics, Inc. | Flash memory controller for electronic data flash card |
US7849242B2 (en) * | 2004-03-17 | 2010-12-07 | Super Talent Electronics, Inc. | PCI express-compatible controller and interface that provides PCI express functionality and flash memory operations to host device |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246634B1 (en) | 2000-05-01 | 2001-06-12 | Silicon Storage Technology, Inc. | Integrated memory circuit having a flash memory array and at least one SRAM memory array with internal address and data bus for transfer of signals therebetween |
US7631138B2 (en) | 2003-12-30 | 2009-12-08 | Sandisk Corporation | Adaptive mode switching of flash memory address mapping based on host usage characteristics |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
JP4859837B2 (ja) | 2005-09-22 | 2012-01-25 | パナソニック株式会社 | 情報記録媒体アクセス装置、及びデータ記録方法 |
CN101334781A (zh) | 2007-06-28 | 2008-12-31 | 鸿富锦精密工业(深圳)有限公司 | 容量整合设备及其数据存储方法和数据读取方法 |
US8195870B2 (en) | 2007-11-29 | 2012-06-05 | Silicon Motion, Inc. | Memory card and method for handling data updating of a flash memory |
TWI386800B (zh) * | 2008-10-03 | 2013-02-21 | Silicon Motion Inc | 快閃記憶體之更新資料的管理方法以及相關之記憶卡 |
US8438325B2 (en) * | 2008-10-09 | 2013-05-07 | Cadence Design Systems, Inc. | Method and apparatus for improving small write performance in a non-volatile memory |
-
2010
- 2010-12-28 TW TW099146320A patent/TWI514136B/zh active
-
2011
- 2011-12-27 US US13/337,970 patent/US8966159B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702831B2 (en) * | 2000-01-06 | 2010-04-20 | Super Talent Electronics, Inc. | Flash memory controller for electronic data flash card |
US7849242B2 (en) * | 2004-03-17 | 2010-12-07 | Super Talent Electronics, Inc. | PCI express-compatible controller and interface that provides PCI express functionality and flash memory operations to host device |
TW200951979A (en) * | 2008-06-09 | 2009-12-16 | Phison Electronics Corp | Data writing method for flash memory and storage system and controller using the same |
TW201013401A (en) * | 2008-09-25 | 2010-04-01 | Silicon Motion Inc | Access methods for a flash memory and memory devices |
Also Published As
Publication number | Publication date |
---|---|
US20120166718A1 (en) | 2012-06-28 |
TW201227295A (en) | 2012-07-01 |
US8966159B2 (en) | 2015-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9632880B2 (en) | Data storage device and flash memory control method | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
JP4182993B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US8131911B2 (en) | Data writing method, and flash storage system and controller using the same | |
US8296502B2 (en) | Data management method for flash memory and storage system and controller using the same | |
TWI506422B (zh) | 用來管理具有多通道、多途徑的記憶裝置之方法以及相關之記憶裝置及其控制器 | |
TWI759699B (zh) | 能夠快速產生或更新有效頁數目對照表之內容的快閃記憶體控制器、方法及對應的儲存裝置 | |
US10168913B2 (en) | Data storage device and data maintenance method thereof | |
US10073771B2 (en) | Data storage method and system thereof | |
CN101145394A (zh) | 关于连续扇区的写操作请求提供原子性的设备和方法 | |
JPH03250499A (ja) | データ記憶回路 | |
US20140223075A1 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
TWI514136B (zh) | 快閃記憶裝置及其資料寫入方法 | |
US8380920B2 (en) | Flash storage device and data access method of flash memory | |
TWI425515B (zh) | 資料儲存裝置及快閃記憶體之資料寫入方法 | |
US20190347038A1 (en) | Data storage apparatus and system information programming method | |
US20190347037A1 (en) | Data storage apparatus and system information programming method therefor | |
CN111324549B (zh) | 一种存储器及其控制方法和装置 | |
JP2010086009A (ja) | 記憶装置およびメモリ制御方法 | |
JP2006072441A (ja) | メモリ装置および不揮発性メモリの制御方法 | |
US10528263B2 (en) | Data storage device and data maintenance method thereof | |
CN109992527B (zh) | 一种全闪存储***的位图管理方法 | |
KR20150142250A (ko) | 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법 | |
TWI417889B (zh) | 快閃記憶體之寫入逾時控制方法及其記憶裝置 | |
CN102541464B (zh) | 快闪存储装置及其数据写入方法 |