TWI545433B - 實體儲存對照表維護方法以及使用該方法的裝置 - Google Patents
實體儲存對照表維護方法以及使用該方法的裝置 Download PDFInfo
- Publication number
- TWI545433B TWI545433B TW104106788A TW104106788A TWI545433B TW I545433 B TWI545433 B TW I545433B TW 104106788 A TW104106788 A TW 104106788A TW 104106788 A TW104106788 A TW 104106788A TW I545433 B TWI545433 B TW I545433B
- Authority
- TW
- Taiwan
- Prior art keywords
- group
- comparison table
- storage
- storage unit
- entity
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 36
- 238000013507 mapping Methods 0.000 title description 3
- 238000012545 processing Methods 0.000 claims description 42
- 210000004027 cell Anatomy 0.000 claims description 21
- 238000012423 maintenance Methods 0.000 claims description 16
- 210000000352 storage cell Anatomy 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 21
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/70—Details relating to dynamic memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Description
本發明關連於一種快閃記憶體裝置,特別是一種實體儲存對照表產生方法以及使用該方法的裝置。
快閃記憶體裝置通常分為NOR快閃裝置與NAND快閃裝置。NOR快閃裝置為隨機存取裝置,而可於位址腳位上提供任何的位址,用以存取NOR快閃裝置的主裝置(host),並及時地由NOR快閃裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃裝置並非隨機存取,而是序列存取。NAND快閃裝置無法像NOR快閃裝置一樣,可以存取任何隨機位址,主裝置反而需要寫入序列的位元組(bytes)的值到NAND快閃裝置中,用以定義請求命令(command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(在快閃記憶體中的一個寫入作業的最小資料塊)或一個區塊(在快閃記憶體中的一個抹除作業的最小資料塊)。實際上,為了提升寫入的速度,一段連續邏輯位置的資料可能被散佈放置於數個實體的儲存單元中,並且使用實體儲存對應表來指出被寫入到實體儲存單元中的何處。本發明提出一種實體儲存對應表產生方法,用以提升重建速度,以及使用該方法的裝置。
本發明的實施例提出一種實體儲存對照表維護方法,由處理單元執行,至少包含下列步驟。寫入超過指定數目的邏輯區塊的資料至儲存單元後,依據未儲存群組佇列中的群組編號驅動存取介面,用以將儲存於動態隨機存取記憶體中之實體儲存對照表中的相應群組儲存至儲存單元中之區塊。接著,更新動態隨機存取記憶體中的群組對照表,用以指出實體儲存對照表中之群組的最新資料實際存放於儲存單元中的哪個位置,以及將群組編號從未儲存群組佇列移除。
本發明的實施例提出一種實體儲存對照表維護裝置,至少包含存取介面與處理單元。存取介面耦接於儲存單元。處理單元耦接於上述存取介面,於寫入超過指定數目的邏輯區塊的資料至儲存單元後,依據未儲存群組佇列中的群組編號驅動存取介面,用以將儲存於動態隨機存取記憶體中之實體儲存對照表中的相應群組儲存至儲存單元中之區塊。接著,處理單元更新動態隨機存取記憶體中的群組對照表,用以指出實體儲存對照表中之群組的最新資料實際存放於儲存單元中的哪個位置,以及將群組編號從未儲存群組佇列移除。
10‧‧‧系統
110‧‧‧處理單元
120‧‧‧動態隨機存取記憶體
150‧‧‧存取介面
160‧‧‧主裝置
170‧‧‧存取介面
180‧‧‧儲存單元
210‧‧‧記憶體單元陣列
220‧‧‧行解碼單元
230‧‧‧列編碼單元
240‧‧‧位址單元
250‧‧‧資料緩存器
300‧‧‧實體儲存對照表
310‧‧‧實體位置資訊
310a‧‧‧區塊編號
310b‧‧‧單元編號
400_0~400_n‧‧‧群組
510‧‧‧閒置狀態
530‧‧‧資料寫入狀態
550‧‧‧實體儲存對照表寫入狀態
570‧‧‧群組對照表寫入狀態
S611~S671‧‧‧方法步驟
S711~S731‧‧‧方法步驟
800‧‧‧未儲存群組佇列
900‧‧‧群組對照表
900_0~900_n‧‧‧儲存格
S1011~S1041‧‧‧方法步驟
1100‧‧‧儲存單元中存放實體儲存對照表的區塊
S1211~S1241‧‧‧方法步驟
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。
第2圖係依據本發明實施例之快閃記憶體中的儲存單元示意圖。
第3圖係依據本發明實施例之實體儲存對照示意圖。
第4圖係依據本發明實施例之實體儲存對照表的切分示意圖。
第5圖係依據本發明實施例之更新實體儲存對照表的狀態圖。
第6圖係依據本發明實施例之執行於資料寫入狀態中的方法流程圖。
第7圖係依據本發明實施例之執行於實體儲存對照表寫入狀態中的方法流程圖。
第8圖係依據本發明實施例之未儲存群組佇列示意圖。
第9圖係依據本發明實施例之群組對照表示意圖。
第10圖係依據本發明實施例之執行於實體儲存對照表寫入狀態中的方法流程圖。
第11圖係依據本發明實施例之群組及群組對照表儲存示意圖。
第12圖係依據本發明實施例之重建實體儲存對照表的方法流程圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任
意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。快閃記憶體的系統架構10中包含處理單元110,用以寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。詳細來說,處理單元110透過存取介面170寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。系統架構10使用數個電子訊號來協調處理單元110與儲存單元180間的資料與命令傳遞,包含資料線(data line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(chip enable,CE)、位址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、寫入致能(write enable,WE)等控制訊號。存取介面170可採用雙倍資料率(double data rate,DDR)通訊協定與儲存單元180溝通,例如,開放NAND快閃(open NAND flash interface,ONFI)、雙倍資料率開關(DDR toggle)或其他介面。處理單元110另可使用存取介面150透過指定通訊協定與主裝置160進行溝通,例如,通用序列匯流排(universal serial bus,USB)、先進技術附著(advanced technology attachment,ATA)、
序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)或其他介面。
第2圖係依據本發明實施例之快閃記憶體中的儲存單元示意圖。儲存單元180可包含由MxN個記憶體單元(memory cells)組成的陣列(array)210,而每一個記憶體單元儲存至少一個位元(bit)的資訊。快閃記憶體可以是NAND型快閃記憶體,或其他種類的快閃記憶體。為了正確存取資訊,行解碼單元220用以選擇記憶體單元陣列210中指定的行,而列編碼單元230用以選擇指定行中一定數量的位元組的資料作為輸出。位址單元240提供行資訊給行解碼器220,其中定義了選擇記憶體單元陣列210中的那些行。相似地,列解碼器230則根據位址單元240提供的列資訊,選擇記憶體單元陣列210的指定行中一定數量的列進行讀取或寫入操作。行可稱為為字元線(wordline),列可稱為位元線(bitline)。資料緩存器(data buffer)250可儲存從記憶體單元陣列210讀取出的資料,或欲寫入記憶體單元陣列210中的資料。記憶體單元可為單層式單元(single-level cells,SLCs)、多層式單元(multi-level cells,MLCs)或三層式單元(triple-level cells,TLCs)。
主裝置160可透過存取介面150提供邏輯區塊位址(LBA,Logical Block Address)給處理單元110,用以指示寫入或讀取特定區域的資料。然而,為為最佳化資料寫入的效率,存取介面170將一段具有連續邏輯區塊位址的資料分散地擺放在儲存單元180中的不同實體區域。因此,需要於動態隨機存取
記憶體中儲存一個實體儲存對照表(storage mapping table,又稱為H2F Host-to-Flash表),用以指出每個邏輯區塊位址的資料實際儲存於儲存單元180中的哪個位置。第3圖係依據本發明實施例之實體儲存對照示意圖。實體儲存對照表300依照邏輯儲存位址的順序,儲存每一邏輯儲存位址的資料實際儲存於儲存單元180中之哪個實體位置的資訊。邏輯儲存位址可以邏輯區塊位址(LBA,Logical Block Address)表示,每一個邏輯區塊位址對應到一個固定大小的實體儲存空間,例如256K、512K或1024K位元組(Bytes)。例如,實體儲存對照表300依序儲存由LBA0至LBA65535的實體位置資訊。固定數目的連續邏輯區塊的實體位置資訊310可以4個位元組表示,其中的2個位元組310a紀錄區塊編號(block number),而另2個位元組310b紀錄單元編號(unit number)。例如,此4個位元組可指示連續八個實體區塊的起始區塊編號以及起始單元編號,而這八個實體區塊又可統稱為一個主頁面(host page)。舉例來說,儲存對照表300所需要的空間從64M到1G位元組不等。由於NAND快閃裝置並非隨機存取裝置,為了提升寫入的效率,主裝置160需要提供至少一個邏輯區塊的連續性資料,例如512位元組的資料,使得儲存裝置180可以有效率的方式擺放到儲存單元180。當主裝置160寫入資料到不同的邏輯區塊時,例如寫入邏輯區塊位址LBA0、LBA1000、LBA4500、LBA10000,儲存於動態隨機存取記憶體180中的實體儲存對照表300中之相應實體位置資訊也要隨著更新。為了避免動態隨機存取記憶體180中儲存的實體儲存對照表300因斷電而消失,需要一種方法有效率地將實
體儲存對照表300中已更新的實體位置資訊寫入到儲存單元180中。如果每次主裝置160寫入一個邏輯區塊的資料(例如512K位元組)就相應地更新儲存單元180中的實體位置資訊(例如2位元組),將使得存取介面170因頻繁寫入而不具效率。所以,於一些實施例中,可將實體儲存對照表300切分成n個群組(groups),做為更新至儲存單元180的最小單位。第4圖係依據本發明實施例之實體儲存對照表的切分示意圖。實體儲存對照表300分為群組400_0至400_n,每一個群組包含4096個邏輯區塊的實體位置資訊(例如2K位元組)。
第5圖係依據本發明實施例之更新實體儲存對照表的狀態圖。處理單元110依據不同的觸發事件來進入不同的狀態,並執行每個狀態中所需要的操作。處理單元110初始處於閒置狀態(idle state)510,並且在經由存取介面150接收到主裝置160所發出的寫入命令後進入資料寫入狀態(data programming state)530。於資料寫入狀態中,處理單元110執行如下所示的一連串的操作,用以將資料寫入儲存單元180並更新動態隨機存取記憶體180中儲存的實體儲存對照表300。第6圖係依據本發明實施例之執行於資料寫入狀態中的方法流程圖。處理單元110透過存取介面150取得一或多個邏輯區塊位址(LBA)以及待寫入的資料後(步驟S611),驅動存取介面170將資料寫入到儲存單元180中的有效區塊(active block)中的單元(unit)(步驟S613)。有效區塊以及寫入單元分別以區塊編號及單元編號表示。接著,更新動態存取記憶體180中儲存的實體儲存對照表300,用以更新取得之邏輯區塊位址的實體位置資訊
(步驟S615),以及更新未儲存群組佇列(unsaved group queue)(步驟S617)。未儲存群組佇列可記錄於動態存取記憶體180中,用以儲存實體儲存對照表300中的那些群組已經更新但尚未寫入儲存單元180的資訊。假設,實體儲存對照表300的群組切分如第4圖所示。處理單元110將邏輯區塊位址LBA0、LBA1000、LBA4500、LBA10000的資料寫入至儲存單元180,並據以更新動態存取記憶體180中實體儲存對照表300的邏輯區塊位址LBA0、LBA1000、LBA4500、LBA10000的實體位置資訊。邏輯區塊位址LBA0、LBA1000、LBA4500、LBA10000的實體位置資訊分別屬於第0個、第0個、第1個及第2個群組。處理單元110會檢查未儲存群組佇列是否包含這些群組編號,如果沒有,則將缺少的群組編號加入未儲存群組佇列。例如,當未儲存群組佇列只包含第0個、第1個、第8個及第10個群組的編號時,則將第2個群組的編號加入至未儲存群組佇列。接著,處理單元110判斷是否已寫入超過指定數目的邏輯區塊的資料,例如7680個(步驟S631)。若是,進入實體儲存對照表寫入狀態(Storage-mapping-table Programming State)550(步驟S651);否則,回到閒置狀態(Idle State)510(步驟S671)。步驟S631的判斷可經由檢查一個寫入計數器完成。此寫入計數器可在每寫入一個邏輯區塊的資料後加一,並且在每次執行完實體儲存對照表寫入狀態550中的處理時重設為0。值得注意的是,經由步驟S631的判斷,可於寫入指定數目之邏輯區塊的資料後再將更新過的群組寫入至儲存單元180,用以避免如上所述之因頻繁寫入更新後之實體位置資訊而造成存取介面170的使用
不具效率的問題。
第7圖係依據本發明實施例之執行於實體儲存對照表寫入狀態中的方法流程圖。此方法流程反覆執行一個迴圈,直到未儲存群組佇列中所指示之實體儲存對照表300的所有群組都寫入儲存單元180為止(步驟S711至S721)。第8圖係依據本發明實施例之未儲存群組佇列示意圖。未儲存群組佇列800為一個陣列(array),包含多個儲存格(cells),每一儲存格存放儲存實體儲存對照表300中的特定群組已經更新但尚未寫入儲存單元180的資訊。例如,”G1”代表實體儲存對照表300中的第0個群組;”G8”代表實體儲存對照表300中的第8個群組,依此類推。於每一回合的執行中,處理單元110從未儲存群組佇列800中取得一個群組編號(步驟S711),以及驅動存取介面170將實體儲存對照表300中的相應群組寫入儲存單元(步驟S713)。於此須注意的是,儲存單元180會設置一或多個指定的區塊來儲存實體儲存對照表300的資料,例如,區塊10至17,並且存取介面170會將此群組的資料寫入至一個可用的單元(spare unit)上,而不會覆寫掉以前儲存的資料。這些群組可依寫入時間的先後依序儲存。就算於資料寫入狀態530中僅更新此群組中之一個邏輯區塊的實體位置資訊,處理單元110還是會將一整個群組中所有的實體位置資訊寫入儲存單元180。接著,處理單元110更新儲存於動態隨機存取記憶體120中的群組對照表(group mapping table,又稱為G2F Group-to-Flash表),用以指出實體儲存對照表300中的每個群組的最新資料實際存放於儲存單元180中的哪個位置(步驟S715),以及將此群組編
號從未儲存群組佇列中移除(步驟S717)。第9圖係依據本發明實施例之群組對照表示意圖。群組對照表900為一個陣列,依照群組編號的順序使用多個儲存格900_0至900_n來儲存每一群組的最新資料實際儲存於儲存單元180中之哪個實體位置的資訊。例如,群組對照900依序儲存從群組G0至Gn的實體位置資訊。每一個儲存格使用2個位元組紀錄一個單元編號。例如,群組對照900中指出群組G0、G1及G2的最新資料實際存放在第100、200及300個單元上。當一個群組所對應到的所有邏輯區塊還沒有資料存放於儲存單元180,相應的儲存格會儲存空值(null value),空值可設定為”0xFF”。例如,第9圖中以斜線表示的儲存格900_3儲存空值,表示群組G3所對應到的所有邏輯區塊都還沒有資料存放於儲存單元180。接著,處理單元110判斷是否已寫入所有群組的資料(步驟S721),若是,回到閒置狀態510;否則,回到步驟S711,用以處理下一個未寫入的群組。於步驟S721中,當處理單元110發現未儲存群組佇列為一個空佇列時,則判斷已寫入所有群組的資料。
然而,未寫入的群組越多則佔用越多時間將動態隨機存取記憶體120中的資料儲存至儲存單元180。若處理單元110透過存取介面150由主裝置160接收到讀取或寫入命令,但卻礙於正在寫入大量的群組資料至儲存單元180而無法處理接收的命令,可能會造成接收到的讀取或寫入命令逾時無時處理。在另一些實施例中,處理單元110可限制群組資料的寫入操作不超過一段既定的時間,用以避免如上所述的問題。第10圖係依據本發明實施例之執行於實體儲存對照表寫入狀態中
的方法流程圖。為了讓說明書簡潔易懂,步驟S1011至S1017、S1031以及S1041的詳細內容可分別參考第7圖中步驟S711至S717、S721以及S731的說明。處理單元110可於進入實體儲存對照表寫入狀態550時,啟動一個計時器(timer),而此計時器會在一段時間後逾時(expired),例如35ms(milliseconds)。每回合的群組資料寫入後(步驟S1011至S1017),處理單元110更判斷是否超過既定的時間(步驟S1021)。若是,不管有沒有寫完所有的群組資料,強制回到閒置狀態(步驟S1041);否則,繼續進行步驟S1031的判斷。於步驟S1021中,當處理單元110發現計時器已逾時,則判斷超過既定的時間。
參考回第5圖,處理單元110處於閒置狀態(idle state)510並且接收到即時待命(standby immediate)命令時,進入群組對照表寫入狀態(group-mapping-table programming state)570。於群組對照表寫入狀態中,處理單元110驅動存取介面170將動態隨機存取記憶體120中的群組對照表900寫入至儲存單元180。當儲存單元180設置一或多個指定的區塊來儲存實體儲存對照表300的資料時,存取介面170從指定區塊中取得一頁的可用空間來儲存群組對照表900。於此須注意的是,群組對照表900接續在已寫入群組的資料之後。第11圖係依據本發明實施例之群組及群組對照表儲存示意圖。指定來儲存實體儲存對照表300的資料的區塊1100可包含多個頁面。假設一個頁面包含八個單元;且每個單元可存放一個群組的資料:當實體儲存對照表300的資料依群組寫入時間的先後順序擺放在第0至23個單元時,群組對照表900儲存於包含第24至31個單元的
頁面中。第32個單元之後的區域(斜線所示)為尚未被使用的儲存空間。
當快閃記憶裝置給電時,處理單元110依據儲存單元180的群組對照表900以及群組資料,於動態隨機存取記憶體120中重建如第4圖所示的實體儲存對照表300。第12圖係依據本發明實施例之重建實體儲存對照表的方法流程圖。首先,處理單元驅動存取介面170從儲存單元180中之指定區塊的最後一頁讀取群組對照表並儲存至動態隨機存取記憶體120(步驟S1211)。接著,反覆執行一個迴圈(步驟S1213至S1241),用以依據群組對照表的內容讀取每一群組的最新資料並儲存至動態隨機存取記憶體120。詳細來說,於每一回合中,處理單元110於取得上一個頁面的單元編號區間後,如單元編號16至23(步驟S1213),判斷是否群組對照表中所儲存之單元編號中之至少一者落入取得的單元編號區間(步驟S1221)。若是(步驟S1221中”是”的路徑),代表此頁面(範圍包含步驟S1213所取得之單元編號區間)中儲存至少一個群組的最新資料,處理單元110驅動存取介面170讀取此頁面的資料(步驟S1231),以及將群組對照表900所指示的群組資料儲存至動態隨機存取記憶體的指定位置(步驟S1233)。於此須注意的是,步驟S1221的判斷係用以避免不必要的頁面讀取作業,換句話說,當判斷群組對照表中所儲存之單元編號都沒有落入取得的單元編號區間時,則跳過此頁的處理。然而,熟習此技藝人士亦可省略步驟S1221的判斷,直接逐頁讀出資料後再決定是否更新實體儲存對照表300中的內容。以第11圖為例,假設群組對照表900指示群組
G4、G6、G22、G23、G24以及G43的資料分別儲存於第22、23、19、20、21、16個單元上:處理單元110從儲存單元180讀出第2頁面的資料後,會將其中的第22、23、19、20、21、16個單元的資料儲存至動態隨機存取記憶體120中配置給群組G4、G6、G22、G23、G24以及G43的位置。最後,處理單元110判斷是否已處理完所有的頁面(步驟S1241),若是則結束整個實體儲存對照表的重建作業;否則,回到步驟S1213用以處理前一個頁面的資料。於步驟S1241中,當處理單元110發現目前處理的頁面為第0頁,則判斷已處理完所有的頁面。
雖然第1至2圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第6、7、10以及12圖的流程圖採用指定的順序來執行,但是在不違法發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
S1011~S1041‧‧‧方法步驟
Claims (18)
- 一種實體儲存對照表維護方法,由一處理單元執行,包含:寫入超過指定數目的邏輯區塊的資料至一儲存單元後,依據一未儲存群組佇列中的一群組編號驅動一存取介面,用以將儲存於一動態隨機存取記憶體中之一實體儲存對照表中的一相應群組儲存至上述儲存單元中之一第一區塊;更新上述動態隨機存取記憶體中的一群組對照表,用以指出上述實體儲存對照表中之上述群組的最新資料實際存放於上述儲存單元中的哪個位置;以及將上述群組編號從上述未儲存群組佇列移除。
- 如申請專利範圍第1項所述的實體儲存對照表維護方法,其中,將上述動態隨機存取記憶體中之上述實體儲存對照表中的上述相應群組儲存至上述儲存單元中之上述第一區塊的執行時間被限制於一指定時間內。
- 如申請專利範圍第1項所述的實體儲存對照表維護方法,其中,上述群組儲存一段邏輯區塊位址區間的資料實際存放於上述儲存單元中的哪個位置的資訊。
- 如申請專利範圍第3項所述的實體儲存對照表維護方法,其中,上述實體儲存對照表依據邏輯區塊位址的順序擺放每一邏輯區塊位址的資料實際存放於上述儲存單元中的哪個位置的資訊。
- 如申請專利範圍第1項所述的實體儲存對照表維護方法,更包含: 於接收到一即時待命命令後,驅動上述存取介面,用以將上述動態隨機存取記憶體中的上述群組對照表儲存至上述儲存單元中之上述第一區塊中的最後一個頁面。
- 如申請專利範圍第5項所述的實體儲存對照表維護方法,其中,上述群組對照表依據邏輯區塊位址的順序擺放上述群組的資料。
- 如申請專利範圍第6項所述的實體儲存對照表維護方法,其中,上述群組對照表包含多個儲存格,上述儲存格中之至少一者存放包含一段邏輯區塊位址區間的一群組的資料被儲存於上述第一區塊中之哪個單元的資訊。
- 如申請專利範圍第7項所述的實體儲存對照表維護方法,其中,上述儲存格中之至少一者存放空值,用以指出一群組中的所有邏輯區塊都還沒資料存放於上述儲存單元。
- 如申請專利範圍第1項所述的實體儲存對照表維護方法,更包含:將一邏輯區塊的資料寫入至上述儲存單元中之一第二區塊中的一單元後,更新上述動態隨機存取記憶體中的上述實體儲存對照表,用以指出上述邏輯區塊的資料實際存放於上述第二區塊中的上述單元的資訊;以及更新上述未儲存群組佇列,用以指出上述實體儲存對照表中的一相應群組已經更新但尚未寫入上述儲存單元的資訊。
- 一種實體儲存對照表維護裝置,包含:一存取介面,耦接於一儲存單元;以及 一處理單元,耦接於上述存取介面,於寫入超過指定數目的邏輯區塊的資料至上述儲存單元後,依據一未儲存群組佇列中的一群組編號驅動上述存取介面,用以將儲存於一動態隨機存取記憶體中之一實體儲存對照表中的一相應群組儲存至上述儲存單元中之一第一區塊;更新上述動態隨機存取記憶體中的一群組對照表,用以指出上述實體儲存對照表中之上述群組的最新資料實際存放於上述儲存單元中的哪個位置;以及將上述群組編號從上述未儲存群組佇列移除。
- 如申請專利範圍第10項所述的實體儲存對照表維護裝置,其中,將上述動態隨機存取記憶體中之上述實體儲存對照表中的上述相應群組儲存至上述儲存單元中之上述第一區塊的執行時間被限制於一指定時間內。
- 如申請專利範圍第10項所述的實體儲存對照表維護裝置,其中,上述群組儲存一段邏輯區塊位址區間的資料實際存放於上述儲存單元中的哪個位置的資訊。
- 如申請專利範圍第12項所述的實體儲存對照表維護裝置,上述實體儲存對照表依據邏輯區塊位址的順序擺放每一邏輯區塊位址的資料實際存放於上述儲存單元中的哪個位置的資訊。
- 如申請專利範圍第10項所述的實體儲存對照表維護裝置,其中,上述處理單元更於接收到一即時待命命令後,驅動上述存取介面,用以將上述動態隨機存取記憶體中的上述群組對照表儲存至上述儲存單元中之上述第一區塊中的最 後一個頁面。
- 如申請專利範圍第14項所述的實體儲存對照表維護裝置,其中,上述群組對照表依據邏輯區塊位址的順序擺放上述群組的資料。
- 如申請專利範圍第15項所述的實體儲存對照表維護裝置,其中,上述群組對照表包含多個儲存格,上述儲存格中之至少一者存放包含一段邏輯區塊位址區間的一群組的資料被儲存於上述第一區塊中之哪個單元的資訊。
- 如申請專利範圍第16項所述的實體儲存對照表維護裝置,其中,上述儲存格中之至少一者存放空值,用以指出一群組中的所有邏輯區塊都還沒資料存放於上述儲存單元。
- 如申請專利範圍第10項所述的實體儲存對照表維護裝置,其中,上述處理單元更將一邏輯區塊的資料寫入至上述儲存單元中之一第二區塊中的一單元後,更新上述動態隨機存取記憶體中的上述實體儲存對照表,用以指出上述邏輯區塊的資料實際存放於上述第二區塊中的上述單元的資訊;以及更新上述未儲存群組佇列,用以指出上述實體儲存對照表中的一相應群組已經更新但尚未寫入上述儲存單元的資訊。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104106788A TWI545433B (zh) | 2015-03-04 | 2015-03-04 | 實體儲存對照表維護方法以及使用該方法的裝置 |
CN201510180415.6A CN106155914A (zh) | 2015-03-04 | 2015-04-16 | 实体储存对照表维护方法以及使用该方法的装置 |
US14/862,913 US9852068B2 (en) | 2015-03-04 | 2015-09-23 | Method and apparatus for flash memory storage mapping table maintenance via DRAM transfer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104106788A TWI545433B (zh) | 2015-03-04 | 2015-03-04 | 實體儲存對照表維護方法以及使用該方法的裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI545433B true TWI545433B (zh) | 2016-08-11 |
TW201633134A TW201633134A (zh) | 2016-09-16 |
Family
ID=56849690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104106788A TWI545433B (zh) | 2015-03-04 | 2015-03-04 | 實體儲存對照表維護方法以及使用該方法的裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9852068B2 (zh) |
CN (1) | CN106155914A (zh) |
TW (1) | TWI545433B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572786B (zh) * | 2017-03-09 | 2021-06-29 | 上海宝存信息科技有限公司 | 避免读取扰动的数据搬移方法以及使用该方法的装置 |
TWI647566B (zh) * | 2018-01-19 | 2019-01-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
CN110633224A (zh) * | 2018-06-01 | 2019-12-31 | 深圳大心电子科技有限公司 | 逻辑转实体表更新方法及存储控制器 |
US20220222008A1 (en) * | 2021-01-14 | 2022-07-14 | Silicon Motion, Inc. | Method for managing flash memory module and associated flash memory controller and memory device |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003028183A1 (en) | 2001-09-28 | 2003-04-03 | Commvault Systems, Inc. | System and method for generating and managing quick recovery volumes |
JP4662548B2 (ja) | 2005-09-27 | 2011-03-30 | 株式会社日立製作所 | スナップショット管理装置及び方法並びにストレージシステム |
KR100885181B1 (ko) | 2007-02-06 | 2009-02-23 | 삼성전자주식회사 | 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법 |
JP2009211234A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
US8285970B2 (en) * | 2008-11-06 | 2012-10-09 | Silicon Motion Inc. | Method for managing a memory apparatus, and associated memory apparatus thereof |
US8688894B2 (en) * | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
US8443263B2 (en) | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
US8341340B2 (en) | 2010-07-21 | 2012-12-25 | Seagate Technology Llc | Multi-tier address mapping in flash memory |
TWI448891B (zh) | 2012-09-06 | 2014-08-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
US9690695B2 (en) | 2012-09-20 | 2017-06-27 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
US20160011790A1 (en) | 2014-07-14 | 2016-01-14 | Sandisk Technologies Inc. | Systems and methods to enable access to a host memory associated with a unified memory architecture (uma) |
TWI512467B (zh) * | 2014-09-02 | 2015-12-11 | Silicon Motion Inc | 實體儲存對照表維護方法以及使用該方法的裝置 |
-
2015
- 2015-03-04 TW TW104106788A patent/TWI545433B/zh active
- 2015-04-16 CN CN201510180415.6A patent/CN106155914A/zh active Pending
- 2015-09-23 US US14/862,913 patent/US9852068B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20160259733A1 (en) | 2016-09-08 |
TW201633134A (zh) | 2016-09-16 |
CN106155914A (zh) | 2016-11-23 |
US9852068B2 (en) | 2017-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI512467B (zh) | 實體儲存對照表維護方法以及使用該方法的裝置 | |
CN110908926B (zh) | 数据储存装置及逻辑至物理地址映射表的写入方法 | |
US10296231B2 (en) | Data-storage device and data maintenance method thereof | |
KR101919653B1 (ko) | 데이터 저장 디바이스들에서 하부 페이지 변형을 방지하기 위한 방법들 및 디바이스들 | |
US10437520B2 (en) | Method for performing writing management in a memory device, and associated memory device and controller thereof | |
US9778848B2 (en) | Method and apparatus for improving read performance of a solid state drive | |
TWI512609B (zh) | 讀取命令排程方法以及使用該方法的裝置 | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
TW201413453A (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
TW201617884A (zh) | 緩存及讀取即將寫入儲存單元之資料的方法以及使用該方法的裝置 | |
US10754555B2 (en) | Low overhead mapping for highly sequential data | |
CN107391389B (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
TWI545433B (zh) | 實體儲存對照表維護方法以及使用該方法的裝置 | |
CN104346292A (zh) | 用来管理一记忆装置的方法、记忆装置与控制器 | |
US10168951B2 (en) | Methods for accessing data in a circular block mode and apparatuses using the same | |
TW201631592A (zh) | 讀取快閃記憶體中儲存單元資料的方法以及使用該方法的裝置 | |
CN106775440A (zh) | 数据储存装置与数据储存方法 | |
TWI709975B (zh) | 寫入控制方法以及資料儲存裝置及其控制器 | |
CN107045423A (zh) | 存储器装置及其数据存取方法 | |
TWI712884B (zh) | 資料儲存裝置及邏輯至物理位址映射表之寫入方法 | |
TWI417889B (zh) | 快閃記憶體之寫入逾時控制方法及其記憶裝置 | |
CN102122269B (zh) | 闪存的写入逾时控制方法及其记忆装置 | |
TWI523016B (zh) | 用來管理一記憶裝置之方法以及記憶裝置與控制器 | |
EP4435579A1 (en) | Storage controller providing status information of zone region | |
TWI652572B (zh) | 資料儲存裝置 |