TWI400609B - 記憶體系統 - Google Patents
記憶體系統 Download PDFInfo
- Publication number
- TWI400609B TWI400609B TW098106021A TW98106021A TWI400609B TW I400609 B TWI400609 B TW I400609B TW 098106021 A TW098106021 A TW 098106021A TW 98106021 A TW98106021 A TW 98106021A TW I400609 B TWI400609 B TW I400609B
- Authority
- TW
- Taiwan
- Prior art keywords
- logical
- management
- logical block
- management unit
- management table
- 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
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
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)
- Read Only Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明係關於一種包括非揮發性半導體記憶體之記憶體系統。
作為用於電腦系統中之外部儲存裝置,安裝有諸如反及型快閃記憶體之非揮發性半導體記憶體的SSD(固態驅動器)引起注意。與磁碟裝置相比較,快閃記憶體具有諸如高速及輕型之優點。
SSD包括複數個快閃記憶體碼片、回應於來自主機設備之請求而執行針對各別快閃記憶體碼片之讀取/寫入控制之控制器、用於執行各別快閃記憶體碼片與主機設備之間的資料傳送之緩衝記憶體、電源電路,及至主機設備之連接介面(例如,專利文獻1)。
非揮發性半導體記憶體之實例包括抹除、寫入及讀出之單位固定之非揮發性半導體記憶體,諸如在儲存資料程序中一次以區塊單位抹除資料且接著執行寫入之非揮發性半導體記憶體及以與反及型快閃記憶體相同之方式以頁單位執行寫入及讀出之非揮發性半導體記憶體。
另一方面,諸如個人電腦之主機設備用以將資料寫入諸如硬碟之次級儲存裝置中及自諸如硬碟之次級儲存裝置讀出資料之單位被稱為區段。區段係獨立於半導體儲存裝置之抹除、寫入及讀出之單位而設定。
舉例而言,儘管非揮發性半導體記憶體之區塊之大小(區塊大小)為512kB且其頁之大小(頁大小)為4kB,但將主機設備之區段之大小(區段大小)設定為512B。
以此方式,非揮發性半導體記憶體之抹除、寫入及讀出之單位可大於主機設備之寫入及讀出之單位。
因此,當個人電腦之次級儲存裝置(諸如,硬碟)藉由使用非揮發性半導體記憶體來組態時,有必要藉由使大小適應於非揮發性半導體記憶體之區塊大小及頁大小而寫入來自作為主機設備之個人電腦的具有小尺寸之資料。
由諸如個人電腦之主機設備記錄之資料具有時間局部性與空間局部性兩者(例如,參見非專利文獻1)。因此,當記錄資料時,若將資料直接記錄於自外部指定之位址中,則重寫(亦即,抹除處理)在時間上集中於特定區中且抹除之次數上之偏差增加。因此,在反及型快閃記憶體中,執行用於均等地分布資料更新段之稱為磨損調平之處理。
在磨損調平處理中,例如,將由主機設備指定之邏輯位址轉譯為均等地分布資料更新段的非揮發性半導體記憶體之實體位址。
當藉由使用此種反及快閃記憶體組態大容量次級儲存裝置時,在執行位址轉譯程序中,有必要使來自作為主機設備之個人電腦之小尺寸資料適應於非揮發性半導體記憶體之區塊大小及頁大小且寫入資料。在該資料管理中,若資料管理之單位為小尺寸(例如,頁大小)的,則管理表之大小增加且不適應次級儲存裝置之控制器之主記憶體。位址轉換無法在高速下執行。在搜尋遍及管理表程序中,若搜尋處理花費時間長,則快閃記憶體與磁碟裝置相比較而言為快速的快閃記憶體之優點無法得到有效利用。以此方式,管理表之大小不可避免地根據作為次級儲存裝置之反及快閃記憶體之容量的增加而增加。因此,存在對於儘可能多地減小管理表之容量之方法及增加管理表之搜尋處理之速度的方法之需求。
[專利文獻1]日本專利第3688835號
[非專利文獻1]David A. Patterson及John L. Hennessy之「電腦組織及設計:硬體/軟體介面(Computer Organization and Design:The Hardware/Software Interface)」(Morgan Kaufmann Pub,2004/8/31)
根據本發明之實施例之記憶體系統包含:作為快取記憶體包括於揮發性半導體記憶體中之第一儲存區;包括於非揮發性半導體記憶體中之第二及第三儲存區,在該第二及該第三儲存區中,藉由頁單位執行資料讀取及寫入且藉由為頁單位之兩倍或兩倍以上之自然數倍大的實體區塊單位執行資料抹除;及控制器,其以與該等實體區塊中之一或多者相關聯之邏輯區塊單位將非揮發性半導體記憶體之儲存區分配給第二及第三儲存區,其中該控制器執行:用於將自第一儲存區清理之區段單位之複數個資料寫入至第二儲存區作為第一管理單位中之資料的第一處理;用於將自第一儲存區清理之區段單位之複數個資料寫入至第三儲存區作為一為第一管理單位之兩倍或兩倍以上之自然數倍大的第二管理單位中之資料的第二處理;用於將儲存於第二儲存區中之資料清理至第三儲存區作為第二管理單位中之資料的第三處理;用於選擇儲存於第二儲存區中之第一管理單位中之複數個有效資料且將該等有效資料重寫於新邏輯區塊中的第四處理;及用於選擇儲存於第三儲存區中之第二管理單位中之複數個有效資料且將該等有效資料重寫於新邏輯區塊中的第五處理,該控制器包括:正向查找第一管理表,其用於自第二管理單位中之邏輯位址擷取第一管理資訊,該第一管理資訊包括:包括指示對應於第二管理單位中之邏輯位址的第二管理單位中之資料在第二及第三儲存區中的儲存位置之邏輯區塊位址及第二管理單位中之資料在藉由該等邏輯區塊位址指定之邏輯區塊中的儲存位置之資訊;及至第二管理表中屬於第二管理單位中之對應邏輯位址之分錄的鏈接資訊;正向查找第二管理表,其具有針對第二管理單位中之邏輯位址中之每一者的一分錄,該正向查找第二管理表為用於自第一管理單位中之邏輯位址擷取第二管理資訊的表,該第二管理資訊包括:包括指示對應於第一管理單位中之邏輯位址的第一管理單位中之資料在第二儲存區中的儲存位置之邏輯區塊位址及第一管理單位中之資料在藉由該等邏輯區塊位址指定之邏輯區塊中的儲存位置之資訊;及至登記於第四管理表中之邏輯區塊位址的鏈接資訊;反向查找第三管理表,在該反向查找第三管理表中,針對邏輯區塊位址中之每一者,登記包括至登記於第一管理表中的第二管理單位中之邏輯位址之鏈接資訊的第三管理資訊,該反向查找第三管理表為用於自邏輯區塊位址擷取對應於對應於邏輯區塊位址之邏輯區塊中所包括的第二管理單位中之資料的第二管理單位中之位址的表;反向查找第四管理表,在該反向查找第四管理表中,針對邏輯區塊位址中之每一者,登記包括至登記於第二管理表中的第一管理單位中之邏輯位址之鏈接資訊的第四管理資訊,該反向查找第四管理表為用於自邏輯區塊位址擷取對應於對應於邏輯區塊位址之邏輯區塊中所包括的第一管理單位中之資料的第一管理單位中之位址的表;及第五管理表,其用於管理對應於複數個實體區塊之複數個實體區塊位址與對應於與該等實體區塊相關聯之邏輯區塊的邏輯區塊位址之間的對應關係,且該控制器基於第一至第五管理表而執行第一處理至第五處理。
根據根據本發明之實施例之記憶體系統,有可能提供可增加管理表之搜尋處理之速度且減少建立管理表所需之記憶體量的記憶體系統。
下文將參看隨附圖式詳細解釋根據本發明之記憶體系統之例示性實施例。本發明不限於以下實施例。
下文參看諸圖式解釋本發明之實施例。在以下解釋中,具有相同功能及組態之組件藉由相同參考數字及符號來表示。僅在必要時進行該等組件之冗餘解釋。
首先,界定用於本說明書中之術語。
實體頁:反及記憶體碼片中可共同寫入及讀出之單位。實體頁大小為(例如)4kB。然而,不包括添加至SSD中之主要資料(使用者資料等)之冗餘位元(諸如,錯誤校正碼)。通常,4kB+冗餘位元(例如,數10B)為在記憶體單元中同時寫入之單位。然而,為了解釋之便利起見,如上文所解釋來界定實體頁。
邏輯頁:SSD中所設定之寫入及讀出單位。邏輯頁與一或多個實體頁相關聯。邏輯頁大小(例如)在8-位元正常模式中為4kB且在32-位元雙速模式中為32kB。然而,不包括冗餘位元。
實體區塊:在反及記憶體碼片中可獨立抹除之最小單位。實體區塊包括複數個實體頁。實體區塊大小為(例如)512kB。然而,不包括添加至SSD中之主要資料之冗餘位元(諸如,錯誤校正碼)。通常,512kB+冗餘位元(例如,數10kB)為同時抹除之單位。然而,為了解釋之便利起見,如上文所解釋來界定實體區塊。
邏輯區塊:SSD中所設定之抹除單位。邏輯區塊與一或多個實體區塊相關聯。邏輯區塊大小(例如)在8-位元正常模式中為512kB且在32-位元雙速模式中為4MB。然而,不包括冗餘位元。
區段:來自主機之最小存取單位。區段大小為(例如)512B。
叢集:SSD中用於管理「小資料(細粒資料)」之管理單位。叢集大小等於或大於區段大小,且(例如)經設定以使得為叢集大小之兩倍或兩倍以上之自然數倍之大小為邏輯頁大小。
軌跡:SSD中用於管理「大資料(粗粒資料)」之管理單元。軌跡大小經設定以使得為叢集大小之兩倍或兩倍以上之自然數倍之大小為軌跡大小,且(例如)為軌跡大小之兩倍或兩倍以上之自然數倍之大小為邏輯區塊大小。
空閒區塊(FB):反及型快閃記憶體上未被分配用途之邏輯區塊。當向空閒區塊分配用途時,空閒區塊在被抹除之後受到使用。
壞區塊(BB):反及型快閃記憶體上由於大量錯誤而無法用作儲存區之實體區塊。舉例而言,將未正常結束抹除操作之實體區塊登記為壞區塊BB。
寫入效率:在一預定週期中邏輯區塊之抹除量相對於自主機寫入之資料量的統計值。當寫入效率較小時,反及型快閃記憶體之磨損程度較小。
有效叢集:儲存對應於一邏輯位址之最新資料的叢集。
無效叢集:儲存由於具有相同邏輯位址之叢集被寫入其他儲存區中而不被參考之非最新資料的叢集。
有效軌跡:儲存對應於一邏輯位址之最新資料的軌跡。
無效軌跡:儲存由於具有相同邏輯位址之叢集被寫入其他儲存區中而不被參考之非最新資料的軌跡。
壓縮:僅自管理標的中之邏輯區塊提取有效叢集及有效軌跡且將有效叢集及有效軌跡重寫於新邏輯區塊中。
圖1為SSD(固態驅動器)100之組態實例的方塊圖。SSD 100經由諸如ATA介面(ATA I/F)2之記憶體連接介面而連接至諸如個人電腦或CPU核心之主機設備1且充當主機設備1之外部儲存器。SSD 100可經由諸如RS232C介面(RS232C I/F)之通信介面3而將資料傳輸至用於除錯及製造檢驗之設備200並自用於除錯及製造檢驗之設備200接收資料。SSD 100包括作為非揮發性半導體記憶體之反及型快閃記憶體(在下文中縮寫為反及記憶體)10、作為控制器之驅動控制電路4、作為揮發性半導體記憶體之DRAM 20、電源電路5、用於狀態顯示之LED 6、偵測驅動器中之溫度之溫度感測器7,及熔絲8。
電源電路5自供應自主機設備1側上之電源電路之外部DC電力產生複數個不同的內部DC電源電壓且將此等內部DC電源電壓供應至SSD 100中之各別電路。電源電路5偵測外部電源之上升緣,產生通電重設信號,且將通電重設信號供應至驅動控制電路4。熔絲8提供於主機設備1側上之電源電路與SSD 100中之電源電路5之間。當自外部電源電路供應過電流時,斷開熔絲8以防止內部電路發生故障。
反及記憶體10具有執行四個並行操作之四個並行操作元件10a至10d。一並行操作元件具有兩個反及記憶體封裝。反及記憶體封裝中之每一者包括複數個堆疊之反及記憶體碼片(例如,1碼片=2GB)。在圖1之狀況下,反及記憶體封裝中之每一者包括堆疊之四個反及記憶體碼片。反及記憶體10具有64GB之容量。當反及記憶體封裝中之每一者包括堆疊之八個反及記憶體碼片時,反及記憶體10具有128GB之容量。
DRAM 20充當用於在主機設備1與反及記憶體10之間的資料傳送之快取記憶體及用於工作區之記憶體。可使用FeRAM(鐵電隨機存取記憶體)、PRAM(相變隨機存取記憶體)或MRAM(磁電阻隨機存取記憶體)來代替DRAM 20。驅動控制電路4經由DRAM 20而執行主機設備1與反及記憶體10之間的資料傳送控制且控制SSD 100中之各別組件。驅動控制電路4將用於狀態顯示之信號供應至用於狀態顯示之LED 6。驅動控制電路4亦具有自電源電路5接收通電重設信號且將重設信號及時脈信號供應至自身電路及SSD 100中之各別單元的功能。
反及記憶體碼片中之每一者藉由將作為資料抹除之單位之複數個實體區塊排成陣列來組態。圖2(a)為包括於反及記憶體碼片中之一實體區塊之組態實例的電路圖。每一實體區塊包括沿著X方向按次序排成陣列之(p+1)個反及串(p為等於或大於0之整數)。包括於該(p+1)個反及串中之每一者中的選擇電晶體ST1之汲極連接至位元線BL0至BLp且其閘極共同地連接至選擇閘極線SGD。選擇電晶體ST2之源極共同地連接至源極線SL且其閘極共同地連接至選擇閘極線SGS。
記憶體單元電晶體MT中之每一者包括包括形成於半導體基板上之堆疊閘極結構之MOSFET(金屬氧化物半導體場效電晶體)。該堆疊閘極結構包括經由閘極絕緣薄膜而形成於半導體基板上之電荷儲存層(浮動閘電極),及經由閘極間絕緣薄膜而形成於電荷儲存層上之控制閘電極。臨限電壓根據累積於浮動閘電極中之電子之數目而改變。記憶體單元電晶體MT根據臨限電壓之差異而儲存資料。記憶體單元電晶體MT可經組態為儲存一位元或可經組態為儲存多值(等於或大於兩個位元之資料)。
記憶體單元電晶體MT不限於具有浮動閘電極之結構且可為可藉由使作為電荷儲存層之氮化物薄膜介面收集電子而調整臨限值的諸如MONOS(金屬-氧化物-氮化物-氧化物-矽)型之結構。類似地,MONOS結構之記憶體單元電晶體MT可經組態為儲存一位元或可經組態為儲存多值(等於或大於兩個位元之資料)。
在反及串中之每一者中,(q+1)個記憶體單元電晶體MT排列於選擇電晶體ST1之源極與選擇電晶體ST2之汲極之間以使得其電流路徑串聯連接。換言之,記憶體單元電晶體MT在Y方向上串聯連接以使得記憶體單元電晶體MT中之鄰近者共用擴散區域(源極區域或汲極區域)。
記憶體單元電晶體MT之控制閘電極以自定位於最汲極側上之記憶體單元電晶體MT起之次序分別連接至字線WL0至WLq。因此,連接至字線WL0之記憶體單元電晶體MT之汲極連接至選擇電晶體ST1之源極。連接至字線WLq之記憶體單元電晶體MT之源極連接至選擇電晶體ST2之汲極。
字線WL0至WLq共同地連接實體區塊中之反及串當中的記憶體單元電晶體MT之控制閘電極。換言之,存在於區塊中之相同列中之記憶體單元電晶體MT的控制閘極連接至相同字線WL。將連接至相同字線WL之(p+1)個記憶體單元電晶體MT作為一頁(實體頁)來對待。藉由每一實體頁來執行資料寫入及資料讀出。
位元線BL0至BLp共同地連接區塊當中之選擇電晶體ST1之汲極。換言之,存在於複數個區塊中之相同行中之反及串連接至相同位元線BL。
圖2(b)為(例如)用於在一記憶體單元電晶體MT中儲存兩個位元之四進制資料儲存模式中的臨限值分布之示意圖。在四進制資料儲存模式中,可將藉由上部頁資料「x」及下部頁資料「y」界定之四進制資料「xy」中之任一者儲存於記憶體單元電晶體MT中。
舉例而言,作為四進制資料「xy」,「11」、「01」、「00」及「10」以記憶體單元電晶體MT之臨限電壓之次序分配。資料「11」為經抹除狀態,在該狀態中記憶體單元電晶體MT之臨限電壓為負。
在下部頁寫入操作中,根據下部位元資料「y」之寫入而將資料「10」選擇性地寫入具有資料「11」(在經抹除狀態中)之記憶體單元電晶體MT中。上部頁寫入之前的資料「10」之臨限值分布大約位於上部頁寫入之後的資料「01」及資料「00」之臨限值分布的中間且可比上部頁寫入之後的臨限值分布寬。在上部頁寫入操作中,選擇性地對具有資料「11」之記憶體單元及具有資料「10」之記憶體單元應用上部位元資料「x」之寫入。將資料「01」及資料「00」寫入記憶體單元中。
圖3為驅動控制電路4之硬體內部組態實例的方塊圖。驅動控制電路4包括資料存取匯流排101、第一電路控制匯流排102,及第二電路控制匯流排103。控制整個驅動控制電路4之處理器104連接至第一電路控制匯流排102。儲存用於啟動儲存於反及記憶體10中之各別管理程式(FW:韌體)之啟動程式的啟動ROM 105經由ROM控制器106而連接至第一電路控制匯流排102。自圖1中所展示之電源電路5接收通電重設信號且將重設信號及時脈信號供應至各別單元的時脈控制器107連接至第一電路控制匯流排102。
第二電路控制匯流排103連接至第一電路控制匯流排102。用於自圖1中所展示之溫度感測器7接收資料的I2
C電路108、將用於狀態顯示之信號供應至用於狀態顯示之LED 6的並行IO(PIO)電路109及控制RS232C I/F3之串列IO(SIO)電路110連接至第二電路控制匯流排103。
ATA介面控制器(ATA控制器)111、第一ECC(錯誤檢查及校正)電路112、反及控制器113及DRAM控制器114連接至資料存取匯流排101與第一電路控制匯流排102兩者。ATA控制器111經由ATA介面2而將資料傳輸至主機設備1及自主機設備1接收資料。用作資料工作區及韌體擴展區之SRAM 115經由SRAM控制器116而連接至資料存取匯流排101。當起動儲存於反及記憶體10中之韌體時,藉由儲存於啟動ROM 105中之啟動程式而將韌體傳送至SRAM 115。
反及控制器113包括執行用於與反及記憶體10之介接之介面處理之反及I/F 117、第二ECC電路118,及執行反及記憶體10與DRAM 20之間的存取控制之用於DMA傳送控制之DMA控制器119。第二ECC電路118執行第二校正碼之編碼且執行第一錯誤校正碼之編碼及解碼。第一ECC電路112執行第二錯誤校正碼之解碼。第一錯誤校正碼及第二錯誤校正碼為(例如)漢明(hamming)碼、BCH(博斯-喬赫里-霍昆格姆(Bose Chaudhuri Hocqenghem))碼、RS(里德-所羅門(Reed Solomon))碼,或LDPC(低密度同位檢查)碼。第二錯誤校正碼之校正能力比第一錯誤校正碼之校正能力高。
如圖1及圖3中所展示,在反及記憶體10中,四個並行之操作元件10a至10d經由四個八位元通道(4ch)而並聯連接至驅動控制電路4中之反及控制器113。根據四個並行之操作元件10a至10d是獨立致動還是並行致動與是否使用反及記憶體碼片中所提供之雙速模式(多頁程式化/多頁讀取/多區塊抹除)的組合提供下文所解釋之三種存取模式。
8-位元正常模式為用於僅致動一通道且以8-位元單位執行資料傳送的模式。以實體頁大小(4kB)來執行寫入及讀出。以實體區塊大小(512kB)來執行抹除。一邏輯區塊與一實體區塊相關聯且邏輯區塊大小為512kB。
32-位元正常模式為用於並行致動四個通道且以32-位元單位執行資料傳送的模式。以實體頁大小×4(16kB)來執行寫入及讀出。以實體區塊大小×4(2MB)來執行抹除。一邏輯區塊與四個實體區塊相關聯且邏輯區塊大小為2MB。
32-位元雙速模式為用於並行致動四個通道且使用反及記憶體碼片之雙速模式執行寫入及讀出的模式。以實體頁大小×4×2(32kB)來執行寫入及讀出。以實體區塊大小×4×2(4MB)來執行抹除。一邏輯區塊與八個實體區塊相關聯且邏輯區塊大小為4MB。
在用於並行致動四個通道之32-位元正常模式或32-位元雙速模式中,並行操作之四個或八個實體區塊為反及記憶體10之抹除單位且並行操作之四個或八個實體頁為反及記憶體10之寫入單位及讀出單位。在下文所解釋之操作中,基本上,使用32-位元雙速模式。舉例而言,假定:一邏輯區塊=4MB=2i
軌跡=2j
頁=2k
叢集=2l
區段(i、j、k及l為自然數且i<j<k<l之關係成立)。
在32-位元雙速模式中存取之邏輯區塊係以4MB之單位來存取。八(2×4ch)個實體區塊(一實體區塊=512kB)與邏輯區塊相關聯。當偵測到以實體區塊單位管理之壞區塊BB時,壞區塊BB不可用。因此,在此種狀況下,將與邏輯區塊相關聯之該八個實體區塊之組合變為不包括壞區塊BB。
圖4為藉由處理器104實現之韌體之功能組態實例的方塊圖。藉由處理器104實現之韌體之功能粗略分類為資料管理單元120、ATA命令處理單元121、安全管理單元122、啟動載入器123、初始化管理單元124,及除錯支援單元125。
資料管理單元120經由反及控制器113及第一ECC電路112而控制反及記憶體10與DRAM 20之間的資料傳送及關於反及記憶體10之各種功能。ATA命令處理單元121與資料管理單元120協作而經由ATA控制器111及DRAM控制器114執行DRAM 20與主機設備1之間的資料傳送處理。安全管理單元122與資料管理單元120及ATA命令處理單元121協作管理各種種類之安全資訊。
啟動載入器123在接通電源時將管理程式(韌體)自反及記憶體10載入至SRAM 115。初始化管理單元124執行驅動控制電路4中之各別控制器及電路之初始化。除錯支援單元125處理經由RS232C介面而自外部所供應的用於除錯之資料。資料管理單元120、ATA命令處理單元121及安全管理單元122主要為藉由處理器104實現的執行儲存於SRAM 115中之管理程式的功能單元。
在此實施例中,主要解釋藉由資料管理單元120實現之功能。資料管理單元120執行(例如)ATA命令處理單元121請求作為儲存裝置之反及記憶體10及DRAM 20提供(回應於來自主機設備之諸如寫入請求、快取記憶體清理請求及讀取請求之各種命令)之功能的供應、主機位址區域與反及記憶體10之間的對應關係之管理及管理資訊之保護、使用DRAM 20及反及記憶體10之快速且高效之資料讀出及寫入功能的供應、反及記憶體10之可靠性之確保。
圖5為形成於反及記憶體10及DRAM 20中之功能區塊的圖。組態於DRAM 20上之寫入快取記憶體(WC)21及讀取快取記憶體(RC)22插入主機設備1與反及記憶體10之間。WC 21暫時儲存來自主機設備1之寫入資料。RC 22暫時儲存來自反及記憶體10之讀取資料。WC 21及RC 22可組態於上文所描述的不同DRAM碼片或其他種類之記憶體碼片上。
由資料管理單元120將反及記憶體10中之邏輯區塊分配給前級儲存區(FS:前儲存器)12、中間級儲存區(IS:中間儲存器)13及主儲存區(MS:主儲存器)11之各別管理區以便減少在寫入期間反及記憶體10之抹除之量。FS 12以叢集單位(亦即,「小單位」)管理來自WC 21之資料且儲存小資料(細粒資料)歷時一短週期。IS 13以叢集單位(亦即,「小單位」)管理自FS 12溢出之資料且儲存小資料(細粒資料)歷時一長週期。MS 11以軌跡單位(亦即,「大單位」)儲存來自WC 21、FS 12及IS 13之資料且儲存大資料(粗粒資料)歷時一長週期。舉例而言,儲存容量處於MS>IS且FS>WC之關係中。
當對反及記憶體10之所有儲存區應用小管理單位時,稍後所解釋之管理表之大小擴大且不適應DRAM 20。因此,反及記憶體10之各別儲存器經組態而以小管理單位管理反及記憶體10中僅最近剛寫入之資料及具有低寫入效率之小資料。在SSD 100中使用「小單位」以及「大單位」之技術描述於國際申請案第PCT2008/JP/073950號中,該案之全部內容以引用的方式併入本文中。
圖6為與自WC 21至反及記憶體10之寫入處理有關的較為詳細之功能方塊圖。緩衝來自WC 21之資料之FS輸入緩衝器(FSIB)12a提供於FS 12之前級處。緩衝來自WC 21、FS 12或IS 13之資料的MS輸入緩衝器(MSIB)11a提供於MS 11之前級處。軌跡前級儲存區(TFS)11b提供於MS 11中。TFS 11b為插入於MSIB 11a與MS 11之間的具有FIFO(先進先出)結構之緩衝器。記錄於TFS 11b中之資料為具有比記錄於MS 11中之資料之更新頻率高的更新頻率之資料。反及記憶體10中之邏輯區塊中之任一者經分配給MS 11、MSIB 11a、TFS 11b、FS 12、FSIB 12a及IS 13。
詳細解釋圖5及圖6中所展示之各別組件之特定功能組態。當主機設備1執行SSD 100之讀取或寫入時,主機設備1經由ATA介面輸入LBA(邏輯區塊位址)作為邏輯位址。如圖7中所展示,LBA為自0起之序號附接至區段(大小:512B)的邏輯位址。在此實施例中,關於用於WC 21、RC 22、FS 12、IS 13及MS 11(其為圖5中所展示之組件)之管理單位,界定由在次序上等於或高於LBA之低次(low-order)第(l-k+1)位元之位元串形成的邏輯叢集位址及由在次序上等於或高於LBA之低次第(l-i+1)位元之位元串形成的邏輯軌跡位址。一叢集=2(l-k)
個區段且一軌跡=2(k-i)
個叢集。
解釋RC 22。RC 22為用於回應於來自ATA命令處理單元121之讀取請求而暫時儲存來自反及記憶體10(FS 12、IS 13,及MS 11)之讀取資料的區。在此實施例中,RC 22係在(例如)m-線/n-路(m為等於或大於2(k-i)
之自然數且n為等於或大於2之自然數)集合關聯系統中進行管理且可儲存一分錄中之一叢集之資料。線藉由邏輯叢集位址之LSB(k-i)個位元來判定。RC 22可在全關聯系統中進行管理或可在簡單FIFO系統中進行管理。
解釋WC 21。WC 21為用於回應於來自ATA命令處理單元121之寫入請求而暫時儲存來自主機設備1之寫入資料的區。WC 21係在m-線/n-路(m為等於或大於2(k-i)
之自然數且n為等於或大於2之自然數)集合關聯系統中進行管理且可儲存一分錄中之一叢集之資料。線藉由邏輯叢集位址之LSB(k-i)個位元來判定。舉例而言,以自路1至路n之次序搜尋可寫入之路。登記於WC 21中之軌跡藉由稍後所解釋之WC軌跡管理表24的FIFO結構以LRU(最近最少使用)進行管理以使得最早之更新之次序已知。WC 21可由全關聯系統來管理。WC 21與RC 22可在線之數目及路之數目上不同。
根據寫入請求而寫入之資料一度儲存於WC 21上。判定待自WC 21清理至反及記憶體10之資料的方法遵守下文所解釋之規則。
(i)當藉由標記判定之線中的可寫入之路為最後之(在此實施例中,第n個)空閒之路時,亦即,當使用最後之空閒之路時,決定清理登記於線中之軌跡當中的基於LRU最早更新之軌跡。
(ii)當登記於WC 21中之不同軌跡之數目超過預定可容許數目時,決定以LRU之次序清理WC中具有小於預定數目之數目之叢集的軌跡。
根據上文所解釋之策略來判定待清理之軌跡。在清理該等軌跡程序中,清理包括於相同軌跡中之所有資料。當待清理之資料之量超過(例如)軌跡大小之50%時,將資料清理至MS 11。當待清理之資料之量未超過(例如)軌跡大小之50%時,將資料清理至FS 12。
當在條件(i)下執行軌跡清理且將資料清理至MS 11時,根據策略(i)選擇WC 21中之軌跡當中滿足待清理之資料之量超過軌跡大小之50%之條件的軌跡且將其添加至清理候選者,直至待清理之軌跡之數目達到2i
為止(當自開始起軌跡之數目等於或大於2i
時,直至軌跡之數目達到2i+1
為止)。換言之,當待清理之軌跡之數目小於2i
時,以自WC中之最舊軌跡起之次序選擇具有多於2(k-i-1)
之有效叢集之軌跡且將其添加至清理候選者,直至軌跡之數目達到2i
為止。
當在條件(i)下執行軌跡清理且將軌跡清理至FS 12時,以LRU之次序選擇WC 21中之軌跡當中滿足待清理之資料之量不超過軌跡大小之50%之條件的軌跡並將軌跡之叢集添加至清理候選者,直至待清理之叢集之數目達到2k
為止。換言之,藉由以自最舊軌跡起之次序追蹤WC中之軌跡而自具有2(k-i-1)
個或2(k-i-1)
個以下之有效叢集的軌跡中提取叢集,且當有效叢集之數目達到2k
時,以邏輯區塊單位將叢集清理至FSIB 12a。然而,當未尋找到2k
個有效叢集時,以邏輯頁單位將叢集清理至FSIB 12a。用於判定是以邏輯區塊單位還是以邏輯頁單位執行至FS 12之清理的有效叢集之數目之臨限值不限於針對一邏輯區塊之值(亦即,2k
)且可為比針對一邏輯區塊之值稍小之值。
在來自ATA命令處理單元121之快取記憶體清理請求中,在與上文相同之條件下將WC21之所有內容清理至FS 12或MS 11(當待清理之資料之量超過軌跡大小之50%時,將資料清理至MS 11,且當資料之量未超過50%時,將資料清理至FS 12)。
解釋FS 12。FS 12適應以叢集單位管理資料之邏輯區塊單位的FIFO結構。FS 12為用於認為通過FS 12之資料具有比後級處之IS 13之資料高的更新頻率之緩衝器。換言之,在FS 12之FIFO結構中,當執行自主機在同一位址中之重寫時,使通過FIFO之有效叢集(最新叢集)無效。因此,可將通過FS 12之叢集視為具有比自FS 12清理至IS 13或MS 11之叢集之更新頻率高的更新頻率。
藉由提供FS 12,減少了具有高更新頻率之資料在後級處之IS 13中的壓縮處理中之混合的似然性。當藉由無效化而使邏輯區塊之有效叢集之數目減少至0時,釋放邏輯區塊且將其分配為空閒區塊FB。當使FS 12中之邏輯區塊無效時,獲取新的空閒區塊FB且將其分配給FS 12。
當執行自WC 21至FS 12之叢集清理時,將叢集寫入分配給FSIB 12a之邏輯區塊中。當完成所有邏輯頁之寫入之邏輯區塊存在於FSIB 12a中時,藉由稍後所解釋之CIB處理將邏輯區塊自FSIB 12a移動至FS 12。在將邏輯區塊自FSIB 12a移動至FS 12的程序中,當FS 12之邏輯區塊之數目超過FS 12所允許之預定上限值時,將最舊之邏輯區塊自FS 12清理至IS 13或MS 11。舉例而言,將具有等於或大於50%的有效叢集在軌跡中之比率的軌跡寫入MS 11(TFS 11b)中且將有效叢集仍存在之邏輯區塊移動至IS 13。
關於反及記憶體10中之組件之間的資料移動,存在兩種方式,亦即,移動及複製。移動為僅執行稍後所解釋之管理表之指標的重新定位且不執行資料之實際重寫的方法。複製為以頁單位、軌跡單位或區塊單位將儲存於一組件中之資料實際重寫至另一組件的方法。
解釋IS 13。在IS 13中,以與FS 12相同之方式以叢集單位執行資料之管理。可將儲存於IS 13中之資料視為具有低更新頻率之資料。當執行邏輯區塊自FS 12至IS 13之移動(movement)(移動(Move))(亦即,邏輯區塊自FS 12之清理)時,藉由指標之重新定位而將作為清理標的之邏輯區塊(其先前為FS 12之管理標的)改變為IS 13之管理標的。根據邏輯區塊自FS 12至IS 13之移動,當IS 13之區塊之數目超過IS 13所允許之預定上限值時,亦即,當IS中可寫空閒區塊FB之數目減小至小於一臨限值時,執行自IS 13至MS 11之資料清理及壓縮處理。使IS 13之區塊之數目返回至指定值。
IS 13使用軌跡中之有效叢集之數目執行下文所解釋之清理處理及壓縮處理。
以有效叢集之數目×有效叢集係數之次序對軌跡進行排序(根據軌跡是否存在於無效軌跡存在於MS 11中之邏輯區塊中對數目進行加權;存在無效軌跡時之數目大於不存在無效軌跡時之數目)。收集具有大乘積值之2i+1
個軌跡(針對兩個邏輯區塊),將其增加至為邏輯區塊大小之自然數倍大,且將其清理至MSIB 11a。
當具有最小數目之有效叢集之兩個邏輯區塊的有效叢集之總數目(例如)等於或大於係預定之設定值的2k
(針對一邏輯區塊)時,重複上文所解釋之步驟(以執行該步驟,直至可自IS中之兩個邏輯區塊產生一空閒區塊FB為止)。
以自具有最小數目之有效叢集之邏輯區塊起的次序收集2k
個叢集且在IS中執行壓縮。
此處,選擇具有最小數目之有效叢集的該兩個邏輯區塊。然而,數目不限於二且僅須為等於或大於二之數目。預定之設定值僅須等於或小於可儲存於比選定之邏輯區塊之數目小一的數目之邏輯區塊中的叢集之數目。
解釋MS 11。在MS 11中,以軌跡單位執行資料之管理。可將儲存於MS 11中之資料視為具有低更新頻率。當執行軌跡自WC 21、FS 12或IS 13至MS 11之複製或移動時,將軌跡寫入分配給MSIB 11a之邏輯區塊中。另一方面,當僅將軌跡之一部分中之資料(叢集)自FS 12、IS 13或其類似者寫入時,執行稍後所解釋的用於合併MS 11中現存之軌跡與新資料以產生新軌跡且接著將所產生之軌跡寫入MSIB 11a中之被動合併。當無效軌跡累積於MS 11中且分配給MS 11之邏輯區塊之數目超過MS 11所允許的區塊之數目之上限時,執行壓縮處理以產生空閒區塊FB。
關於MS 11之壓縮處理,例如,執行下文所解釋的僅關於邏輯區塊中之有效軌跡之數目的方法。
自具有最小數目之有效軌跡之邏輯區塊中選擇邏輯區塊,直至可藉由組合無效軌跡而產生空閒區塊FB為止。
當執行用於整合儲存於選定邏輯區塊中之軌跡與WC 21、FS 12或IS 13中之資料的被動合併時,執行壓縮。
將可整合2i
個軌跡之邏輯區塊輸出至TFS 11b(2i
軌跡MS壓縮)且將數目小於2i
之軌跡輸出至MSIB 11a(小於2i
之軌跡壓縮)以產生較大數目之空閒區塊FB。
TFS 11b適應以軌跡單位管理資料之邏輯區塊單位的FIFO結構。TFS 11b為用於認為通過TFS 11b之資料具有比後級處之MS 11之資料高的更新頻率之緩衝器。換言之,在TFS 11b之FIFO結構中,當執行自主機在同一位址中之重寫時,使通過FIFO之有效軌跡(最新軌跡)無效。因此,可將通過TFS 11b之軌跡視為具有比自TFS 11b清理至MS 11之軌跡之更新頻率高的更新頻率。
圖8為用於使資料管理單元120控制並管理圖5及圖6中所展示之各別組件之管理表的圖。資料管理單元120具有(如上文所解釋)橋接ATA命令處理單元121與反及記憶體10之功能且包括執行儲存於DRAM 20中之資料之管理的DRAM層管理單元120a、執行儲存於反及記憶體10中之資料之管理的邏輯反及層管理單元120b,及將反及記憶體10作為實體儲存裝置進行管理之實體反及層管理單元120c。RC叢集管理表23、WC軌跡管理表24及WC叢集管理表25由DRAM層管理單元120a來控制。軌跡管理表30、FS/IS管理表40、MS邏輯區塊管理表35、FS/IS邏輯區塊管理表42及FS/IS內叢集管理表44由邏輯反及層管理單元120b來管理。邏輯至實體轉譯表50由實體反及層管理單元120c來管理。
RC 22藉由為反向查找表之RC叢集管理表23來管理。在反向查找表中,可自儲存裝置之位置搜尋儲存於該位置中之邏輯位址。WC 21藉由為反向查找表之WC叢集管理表25及為正向查找表之WC軌跡管理表24來管理。在正向查找表中,可自邏輯位址搜尋存在對應於該邏輯位址之資料的儲存裝置之位置。
反及記憶體10中之FS 12(FSIB 12a)、IS 13及MS 11(TFS 11b及MSIB 11a)之邏輯位址藉由軌跡管理表30、FS/IS管理表40、MS邏輯區塊管理表35、FS/IS邏輯區塊管理表42及FS/IS內叢集管理表44來管理。在反及記憶體10中之FS 12(FSIB 12a)、IS 13及MS 11(TFS 11b及MSIB 11a)中,執行邏輯至實體轉譯表50的邏輯位址與實體位址之轉換。將此等管理表儲存於反及記憶體10上之區中且在SSD 100之初始化期間將其自反及記憶體10讀取至DRAM 20上。
參看圖9解釋RC叢集管理表23。如上文所解釋,在藉由邏輯叢集位址LSB(k-i)個位元編索引之n-路集合關聯系統中管理RC 22。RC叢集管理表23為用於管理RC(叢集大小×m-線×n-路)22之各別分錄之標記的表。該等標記中之每一者包括包括複數個位元之狀態旗標23a及邏輯軌跡位址23b。除指示分錄是否可使用(有效/無效)之有效位元之外,狀態旗標23a包括(例如)指示分錄是否在等待自反及記憶體10讀出之位元及指示分錄是否在等待讀出至ATA命令處理單元121之位元。RC叢集管理表23充當用於自DRAM 20上之標記儲存位置搜尋與LBA一致之邏輯軌跡位址的反向查找表。
參看圖10解釋WC叢集管理表25。如上文所解釋,在藉由邏輯叢集位址LSB(k-i)個位元編索引之n-路集合關聯系統中管理WC 21。WC叢集管理表25為用於管理WC(叢集大小×m-線×n-路)21之各別分錄之標記的表。該等標記中之每一者包括複數個位元之狀態旗標25a、區段位置位元映射25b,及邏輯軌跡位址25c。
除指示分錄是否可使用(有效/無效)之有效位元之外,狀態旗標25a包括(例如)指示分錄是否在等待清理至反及記憶體10之位元及指示分錄是否在等待自ATA命令處理單元121寫入之位元。區段位置位元映射25b藉由將區段擴展成2(1-k)
個位元而指示一叢集中所包括之2(1-k)
個區段中之何者儲存有效資料。藉由區段位置位元映射25b,可在WC 21中執行與LBA相同的以區段單位進行之管理。WC叢集管理表25充當用於自DRAM 20上之標記儲存位置搜尋與LBA一致之邏輯軌跡位址的反向查找表。
參看圖11解釋WC軌跡管理表24。WC軌跡管理表24為用於管理資訊(其中以軌跡單位收集儲存於WC 21上之叢集)的表且使用具有類似FIFO功能之鏈接清單結構表示軌跡當中在WC 21中之登記之次序(LRU)。LRU可藉由WC 21中最後被更新之次序來表示。每一清單之分錄包括邏輯軌跡位址24a、邏輯軌跡位址中所包括的WC 21中之有效叢集數目24b、路-線位元映射24c,及指示至下一分錄之指標的下一個指標24d。WC軌跡管理表24充當正向查找表,因為所需資訊係自邏輯軌跡位址24a獲得。
路-線位元映射24c為指示在WC 21中之m×n分錄中之何者中儲存WC 21中之邏輯軌跡位址中所包括之有效叢集的映射資訊。在儲存有效叢集之分錄中,有效位元為「1」。路-線位元映射24c包括(例如)(一位元(有效)+log2
n個位元(n-路))×m個位元(m-線)。WC軌跡管理表24具有鏈接清單結構。僅輸入關於存在於WC 21中之邏輯軌跡位址之資訊。
參看圖12解釋軌跡管理表30。軌跡管理表30為用於以邏輯軌跡位址單位管理MS 11上之邏輯資料位置的表。當以叢集單位將資料儲存於FS 12或IS 13中時,軌跡管理表30儲存關於資料之基本資訊及至詳細資訊之指標。軌跡管理表30以具有作為索引之邏輯軌跡位址30a之陣列格式來組態。具有作為索引之邏輯軌跡位址30a之每一分錄包括諸如以下內容之資訊:叢集位元映射30b、邏輯區塊ID 30c+邏輯區塊內軌跡位置30d、叢集表指標30e、FS叢集之數目30f,及IS叢集之數目30g。軌跡管理表30充當正向查找表,因為藉由使用邏輯軌跡位址作為索引,可獲得諸如儲存對應於邏輯軌跡位址之軌跡之邏輯區塊ID(對應於儲存裝置位置)的所需資訊。
叢集位元映射30b為藉由以邏輯叢集位址之升序將屬於一邏輯軌跡位址範圍之2(k-i)
個叢集劃分成(例如)八份而獲得的位元映射。八個位元中之每一者指示對應於2(k-i-3)
個叢集位址之叢集是存在於MS 11中還是存在於FS 12或IS 13中。當位元為「0」時,此指示作為搜尋標的之叢集的確存在於MS 11中。當位元為「1」時,此指示叢集很可能存在於FS 12或IS 13中。
邏輯區塊ID 30c為用於識別儲存對應於邏輯軌跡位址之軌跡之邏輯區塊ID的資訊。邏輯區塊內軌跡位置30d指示對應於邏輯軌跡位址(30a)之軌跡在藉由邏輯區塊ID 30c指定之邏輯區塊中的儲存位置。因為一邏輯區塊包括最大2i
個有效軌跡,所以邏輯區塊內軌跡位置30d使用i個位元識別2i
個軌跡位置。
叢集表指標30e為至具有鏈接清單結構之FS/IS管理表40之每一清單之頂分錄的指標。在經由叢集位元映射30b之搜尋中,當指示叢集很可能存在於FS 12或IS 13中時,藉由使用叢集表指標30e來執行遍及FS/IS管理表40之搜尋。FS叢集之數目30f指示存在於FS 12中之有效叢集之數目。IS叢集之數目30g指示存在於IS 13中之有效叢集之數目。
參看圖13解釋FS/IS管理表40。FS/IS管理表40為用於在邏輯叢集位址上管理儲存於FS 12(包括FSIB 12a)或IS 13中之資料之位置的表。如圖13中所展示,對於每一邏輯軌跡位址,FS/IS管理表40以獨立鏈接清單格式形成。如上文所解釋,至每一清單之頂分錄之指標儲存於軌跡管理表30之叢集表指標30e之欄位中。在圖13中,展示兩個邏輯軌跡位址之鏈接清單。每一分錄包括邏輯叢集位址40a、邏輯區塊ID40b、邏輯區塊內叢集位置40c、FS/IS區塊ID 40d,及下一個指標40e。FS/IS管理表40充當正向查找表,因為諸如儲存對應於邏輯叢集位址40a之叢集之邏輯區塊ID 40b及邏輯區塊內叢集位置40c(對應於儲存裝置位置)的所需資訊係自邏輯叢集位址40a獲得。
邏輯區塊ID 40b為用於識別儲存對應於邏輯叢集位址40a之叢集之邏輯區塊ID的資訊。邏輯區塊內叢集位置40c指示對應於邏輯叢集位址40a之叢集在藉由邏輯區塊ID 40b指定之邏輯區塊中的儲存位置。因為一邏輯區塊包括最大2k
個有效叢集,所以邏輯區塊內叢集位置40c使用k個位元識別2k
個位置。為稍後所解釋之FS/IS邏輯區塊管理表42之索引的FS/IS區塊ID登記於FS/IS區塊ID 40d中。FS/IS區塊ID 40d為用於識別屬於FS 12或IS 13之邏輯區塊之資訊。FS/IS管理表40中之FS/IS區塊ID 40d經登記以用於鏈接至稍後所解釋之FS/IS邏輯區塊管理表42。下一個指標40e指示至針對每一邏輯軌跡位址鏈接之同一清單中之下一分錄的指標。
參看圖14解釋MS邏輯區塊管理表35。MS邏輯區塊管理表35為用於整體地管理關於用於MS 11中之邏輯區塊之資訊(例如,儲存哪一軌跡及軌跡位置是否另外可記錄)的表。在MS邏輯區塊管理表35中,亦登記關於屬於FS 12(包括FSIB 12)及IS 13之邏輯區塊的資訊。MS邏輯區塊管理表35以具有作為索引之邏輯區塊ID 35a之陣列格式形成。在128GB之反及記憶體10之狀況下,分錄之數目最大可為32K分錄。該等分錄中之每一者包括針對2i
個軌跡之軌跡管理指標35b、有效軌跡之數目35c、可寫入之頂軌跡35d,及有效旗標35e。MS邏輯區塊管理表35充當反向查找表,因為諸如儲存於邏輯區塊中之邏輯軌跡位址的所需資訊係自對應於儲存裝置位置之邏輯區塊ID 35a獲得。
軌跡管理指標35b儲存對應於藉由邏輯區塊ID 35a指定之邏輯區塊中之2i
個軌跡位置中之每一者的邏輯軌跡位址。有可能使用邏輯軌跡位址來進行遍及具有作為索引之邏輯軌跡位址之軌跡管理表30的搜尋。有效軌跡之數目35c指示儲存於藉由邏輯區塊ID 35a指定之邏輯區塊中之軌跡當中的有效軌跡之數目(最大2i
)。可寫入之頂軌跡位置35d指示當藉由邏輯區塊ID 35a指定之邏輯區塊為被另外記錄之區塊時另外可記錄之頂位置(0至2i-1
,當結束額外記錄時為2i
)。當作為MS 11(包括MSIB 11a)管理邏輯區塊分錄時,有效旗標35e為「1」。此處,「額外記錄」意謂以附加方式將叢集或軌跡寫入邏輯區塊中之空邏輯頁。
參看圖15解釋FS/IS邏輯區塊管理表42。FS/IS邏輯區塊管理表42以具有作為索引之FS/IS區塊ID 42a之陣列格式形成。FS/IS邏輯區塊管理表42為用於管理關於用作FS 12或IS 13之邏輯區塊之資訊(與邏輯區塊ID之對應、至FS/IS內叢集管理表44之索引、邏輯區塊是否另外可記錄等)的表。FS/IS邏輯區塊管理表42藉由主要使用FS/IS管理表40中之FS/IS區塊ID 40d來存取。每一分錄包括邏輯區塊ID 42b、區塊內叢集表42c、有效叢集之數目42d、可寫入之頂頁42e,及有效旗標42f。MS邏輯區塊管理表35充當反向查找表,因為諸如儲存於邏輯區塊中之叢集的所需資訊係自對應於儲存裝置位置之FS/IS區塊ID 42a獲得。
登記於MS邏輯區塊管理表35中之邏輯區塊當中對應於屬於FS 12(包括FSIB 12)及IS 13之邏輯區塊的邏輯區塊ID登記於邏輯區塊ID 42b中。至稍後所解釋的FS/IS內叢集管理表44之索引登記於區塊內叢集表42c中,該FS/IS內叢集管理表44指示藉由哪一邏輯叢集位址指定之邏輯叢集登記於邏輯區塊中之每一叢集位置中。有效叢集之數目42d指示儲存於藉由FS/IS區塊ID 42a指定之邏輯區塊中之叢集當中的有效叢集之數目(最大2k
)。可寫入之頂頁位置42e指示當藉由FS/IS區塊ID 42a指定之邏輯區塊為被另外記錄之區塊時另外可記錄之頂頁位置(0至2j-1
,當結束額外記錄時為2i
)。當作為FS 12(包括FSIB 12)或IS 13管理邏輯區塊分錄時,有效旗標42f為「1」。
參看圖16解釋FS/IS內叢集管理表44。FS/IS內叢集管理表44為指示在用作FS 12或IS 13之邏輯區塊中之每一叢集位置中記錄哪一叢集的表。FS/IS內叢集管理表44對於每一邏輯區塊具有2j
頁×2(k-j)
叢集=2k
分錄。對應於邏輯區塊中之叢集位置當中之第0至第2k
-1叢集位置的資訊排列於連續區中。包括該2k
條資訊之表以均等於屬於FS 12及IS 13之邏輯區塊之數目(P)的數目來儲存。FS/IS邏輯區塊管理表42之區塊內叢集表42c為該P個表之位置資訊(指標)。排列於連續區中之每一分錄44a之位置指示一邏輯區塊中之一叢集位置。作為分錄44a之內容,登記至包括藉由FS/IS管理表40管理之邏輯叢集位址之清單的指標以使得有可能識別哪一叢集儲存於叢集位置中。換言之,分錄44a並不指示鏈接清單之頂部。至一包括鏈接清單中之邏輯叢集位址之清單的指標登記於分錄44a中。
參看圖17解釋邏輯至實體轉譯表50。邏輯至實體轉譯表50以具有作為索引之邏輯區塊ID 50a之陣列格式形成。在128GB之反及記憶體10之狀況下,分錄之數目可為最大32K分錄。邏輯至實體轉譯表50為用於管理關於邏輯區塊ID與實體區塊ID之間的轉換及壽命之資訊的表。該等分錄中之每一者包括實體區塊位址50b、抹除之次數50c,及讀出之次數50d。邏輯至實體轉譯表50充當正向查找表,因為諸如實體區塊ID(實體區塊位址)之所需資訊係自邏輯區塊ID獲得。
實體區塊位址50b指示屬於一邏輯區塊ID 50a之八個實體區塊ID(實體區塊位址)。抹除之次數50c指示邏輯區塊ID之抹除之次數。壞區塊(BB)以實體區塊(512KB)單位來管理。然而,在32-位元雙速模式中,抹除之次數係以一邏輯區塊(4MB)之單位來管理。讀出之次數50d指示邏輯區塊ID之讀出之次數。抹除之次數50c可用於(例如)用於調平反及型快閃記憶體之重寫之次數的磨損調平處理中。讀出之次數50d可用於用於重寫儲存於具有惡化之保存性能之實體區塊中的資料之再新處理中。
磨損調平處理之實例描述於國際申請案第PCT/JP2008/066508號及第PCT/JP2008/066507號中。再新處理之實例描述於國際申請案第PCT/JP2008/067597號中,該案之全部內容以引用的方式併入本文中。
圖8中所展示之管理表藉由下文所解釋之管理標的來對照。
RC管理:RC叢集管理表23
WC管理:WC叢集管理表25及WC軌跡管理表24
MS管理:軌跡管理表30及MS邏輯區塊管理表35
FS/IS管理:軌跡管理表30、FS/IS管理表40、MS邏輯區塊管理表35、FS/IS邏輯區塊管理表42,及FS/IS內叢集管理表44
包括MS 11、MSIB 11a及TFS 11b之MS區之結構以MS結構管理表(未圖示)進行管理。具體言之,管理分配給MS 11、MSIB 11a及TFS 11b之邏輯區塊及其類似者。包括FS 12、FSIB 12a及IS 13之FS/IS區之結構以FS/IS結構管理表(未圖示)進行管理。具體言之,管理分配給FS 12、FSIB 12a及IS 13之邏輯區塊及其類似者。
參看圖18中所展示之流程圖來解釋讀取處理。當自ATA命令處理單元121輸入讀取命令、作為讀出位址之LBA及讀出大小時,資料管理單元120搜尋遍及圖9中所展示之RC叢集管理表23及圖10中所展示之WC叢集管理表25(步驟S100)。具體言之,資料管理單元120自RC叢集管理表23及WC叢集管理表25選擇對應於LBA之邏輯叢集位址之LSB(k-i)個位元(參見圖7)的線且比較在選定之線之每一路中所輸入的邏輯軌跡位址23b及25c與LBA之邏輯軌跡位址(步驟S110)。當使得輸入於自身中之邏輯軌跡位址與LBA之邏輯軌跡位址一致的路存在時,資料管理單元120將此視為快取命中。資料管理單元120讀出對應於RC叢集管理表23或WC叢集管理表25之命中之線及路的WC 21或RC 22之資料且將資料發送至ATA命令處理單元121(步驟S115)。
當RC 22或WC 21中不存在命中時(步驟S110),資料管理單元120搜尋作為搜尋標的之叢集儲存於反及記憶體10之哪一部分中。首先,資料管理單元120搜尋遍及圖12中所展示之軌跡管理表30(步驟S120)。軌跡管理表30藉由邏輯軌跡位址30a來編索引。因此,資料管理單元120僅檢查與藉由LBA指定之邏輯軌跡位址一致的邏輯軌跡位址30a之分錄。
資料管理單元120基於需要檢查之LBA之邏輯叢集位址而自叢集位元映射30b選擇對應位元。當對應位元指示「0」時,此意謂叢集之最新資料的確存在於MS中(步驟S130)。在此狀況下,資料管理單元120自邏輯軌跡位址30a之同一分錄中的邏輯區塊ID 30c及邏輯區塊內軌跡位置30d獲得軌跡存在於之邏輯區塊ID及軌跡位置。資料管理單元120使用LBA之邏輯叢集位址之LSB(k-i)個位元計算自軌跡位置之偏移。因此,資料管理單元120可計算儲存對應於反及記憶體10中之邏輯叢集位址之叢集的位置。具體言之,邏輯反及層管理單元120b向實體反及層管理單元120c給出如上文所解釋的自軌跡管理表30獲取之邏輯區塊ID 30c及邏輯區塊內位置30d及LBA之邏輯叢集位址之LSB(k-i)個位元。
實體反及層管理單元120c自圖17中所展示的具有作為索引之邏輯區塊ID之邏輯至實體轉譯表50獲取對應於邏輯區塊ID 30c之實體區塊位址(實體區塊ID)(步驟S160)。資料管理單元120自邏輯區塊內軌跡位置30d計算所獲取之實體區塊ID中之軌跡位置(軌跡頂位置)且進一步自LBA之邏輯叢集位址之LSB(k-i)個位元計算自實體區塊ID中所計算之軌跡頂位置的偏移。因此,資料管理單元120可獲取實體區塊中之叢集。資料管理單元120經由RC 22將自反及記憶體10之MS 11獲取的叢集發送至ATA命令處理單元121(步驟S180)。
另一方面,當基於LBA之邏輯叢集位址在遍及叢集位元映射30b之搜尋中對應位元指示「1」時,很可能叢集儲存於FS 12或IS 13中(步驟S130)。在此狀況下,資料管理單元120提取軌跡管理表30中之邏輯軌跡位址30a之相關分錄當中的叢集表指標30e之分錄且使用此指標順序地搜尋遍及對應於FS/IS管理表40之相關邏輯軌跡位址之鏈接清單(步驟S140)。具體言之,資料管理單元120在相關邏輯軌跡位址之鏈接清單中搜尋與LBA之邏輯叢集位址一致的邏輯叢集位址40a之分錄。當存在邏輯叢集位址40a之一致分錄時(步驟S150),資料管理單元120在一致清單中獲取邏輯區塊ID 40b及邏輯區塊內叢集位置40c。以與上文所解釋之方式相同之方式,資料管理單元120使用邏輯至實體轉譯表50獲取實體區塊中之叢集(步驟S160及S180)。具體言之,資料管理單元120自邏輯至實體轉譯表50獲取對應於所獲取之邏輯區塊ID之實體區塊位址(實體區塊ID)(步驟S160)且自一自邏輯區塊內叢集位置40c之分錄所獲取之邏輯區塊內叢集位置計算所獲取之實體區塊ID之叢集位置。因此,資料管理單元120可獲取實體區塊中之叢集。資料管理單元120經由RC 22將自反及記憶體10之FS 12或IS 13獲取的叢集發送至ATA命令處理單元121(步驟S180)。
當在遍及FS/IS管理表40之搜尋中不存在作為搜尋標的之叢集時(步驟S150),資料管理單元120再次搜尋遍及軌跡管理表30之分錄且決定在MS 11上之位置(步驟S170)。
參看圖19中所展示之流程圖來解釋寫入處理。藉由寫入命令而寫入之資料總是一度儲存於WC 21上。此後,根據條件而將資料寫入反及記憶體10中。在寫入處理中,很可能執行清理處理及壓縮處理。在此實施例中,將寫入處理粗略劃分成寫入快取記憶體清理處理(在下文中為WCF處理)與清除輸入緩衝器處理(在下文中為CIB處理)之兩個階段。步驟S300至S320指示自來自ATA命令處理單元121之寫入請求至WCF處理的處理。步驟S330至最後步驟指示CIB處理。
WCF處理為用於將WC 21中之資料複製至反及記憶體10(FS 12之FSIB 12a或MS 11之MSIB 11a)之處理。來自ATA命令處理單元121之單獨的寫入請求或快取記憶體清理請求可僅藉由此處理來完成。此使得有可能將ATA命令處理單元121之寫入請求之開始之處理中的延遲限制為最大為用於在均等於WC 21之容量之反及記憶體10中寫入之時間。
CIB處理包括用於將FSIB 12a中藉由WCF處理而寫入之資料移動至FS 12的處理及用於將MSIB 11a中藉由WCF處理而寫入之資料移動至MS 11的處理。當開始CIB處理時,很可能以鏈式反應方式執行反及記憶體中之組件(FS 12、IS 13、MS 11等)當中之資料移動及壓縮處理。全部處理所需之時間大體上根據狀態而改變。
首先,解釋WCF處理之細節。當自ATA命令處理單元121輸入寫入命令、作為寫入位址之LBA及寫入大小時,DRAM層管理單元120a搜尋遍及圖10中所展示之WC叢集管理表25(步驟S300及S305)。WC 21之狀態藉由圖10中所展示之WC叢集管理表25之狀態旗標25a(例如,3個位元)來界定。最典型地,狀態旗標25a之狀態以無效(可用)→等待自ATA寫入→有效(不可用)→等待清理至反及→無效(可用)之次序轉變。首先,自LBA之邏輯叢集位址LSB(k-i)個位元判定寫入目的地處之線且搜尋所判定之線之n路。當與所輸入之LBA之邏輯軌跡位址相同之邏輯軌跡位址25c儲存於所判定之線之n路中時(步驟S305),DRAM層管理單元120a將此分錄鎖定為用於寫入叢集之分錄,因為該分錄將被覆寫(有效(不可用)→等待自ATA寫入)。
DRAM層管理單元120a向ATA命令處理單元121通知對應於該分錄之DRAM位址。當結束由ATA命令處理單元121進行之寫入時,資料管理單元120將分錄之狀態旗標25a改變成有效(不可用)且將所需資料登記於區段位置位元映射25b及邏輯軌跡位址25c之空間中。資料管理單元120更新WC軌跡管理表24。具體言之,當輸入與已登記於WC軌跡管理表24之清單中之邏輯軌跡位址24a相同的LBA位址時,資料管理單元120更新相關清單之WC叢集之數目24b及路-線位元映射24c且改變下一個指標24d以使得該清單變為最新清單。當輸入與登記於WC軌跡管理表24之清單中之邏輯軌跡位址24a不同的LBA位址時,資料管理單元120產生具有邏輯軌跡位址24a、WC叢集之數目24b、路-線位元映射24c及下一個指標24d之分錄的新清單且將該清單登記為最新清單。資料管理單元120執行上文所解釋之表更新以完成寫入處理(步驟S320)。
另一方面,當與所輸入LBA之邏輯軌跡位址相同之邏輯軌跡位址25c不儲存於所判定之線之n路中時,資料管理單元120判斷至反及記憶體10之清理是否有必要(步驟S305)。首先,資料管理單元120判斷所判定之線中的可寫入之路是否為最後的第n路。可寫入之路為具有無效(可用)之狀態旗標25a的路或具有有效(不可用)及等待清理至反及之狀態旗標25a的路。當狀態旗標25a為等待清理至反及時,此意謂清理開始且一分錄為等待清理之結束。當可寫入之路並非為最後的第n路且可寫入之路為具有無效(可用)之狀態旗標25a的路時,資料管理單元120將此分錄鎖定為用於叢集寫入之分錄(無效(可用)→等待自ATA寫入)。資料管理單元120向ATA命令處理單元121通知對應於該分錄之DRAM位址且使ATA命令處理單元121執行寫入。以與上文所解釋之方式相同之方式,資料管理單元120更新WC叢集管理表25及WC軌跡管理表24(步驟S320)。
當可寫入之路並非為最後的第n路時且當可寫入之路為具有有效(不可用)且等待清理至反及之狀態旗標25a的路時,資料管理單元120將此分錄鎖定為用於寫入叢集之分錄(有效(不可用)且等待清理至反及→有效(不可用)且等待自反及清理並等待自ATA寫入)。當結束清理時,資料管理單元120將狀態旗標25a改變為等待自ATA寫入,向ATA命令處理單元121通知對應於該分錄之DRAM位址,且使ATA命令處理單元121執行寫入。以與上文所解釋之方式相同之方式,資料管理單元120更新WC叢集管理表25及WC軌跡管理表24(步驟S320)。
當在輸入來自ATA命令處理單元121之寫入請求時不必觸發清理處理時,執行上文所解釋之處理。另一方面,當在輸入寫入請求之後觸發清理處理時,執行下文所解釋之處理。在步驟S305處,當所判定之線中的可寫入之路為最後的第n路時,資料管理單元120基於判定待自WC 21清理至反及記憶體10之資料之方法的(i)中所解釋之條件而選擇待清理之軌跡(亦即,WC 21中之分錄),亦即,
(i)當藉由標記判定的可寫入之路為最後之(在此實施例中,第n個)空閒之路時,亦即,當將使用最後之空閒之路時,決定清理登記於線中之軌跡當中的基於LRU最早更新之軌跡。
當根據上文所解釋之策略判定待清理之彼軌跡時,如上文所解釋,若相同邏輯軌跡位址中所包括的WC 21中之所有叢集將被清理且待清理之叢集之量超過軌跡大小之50%(亦即,若WC中之有效叢集之數目等於或大於決定清理之軌跡中的2(k-i-1)
時),則DRAM層管理單元120a執行至MSIB 11a之清理(步驟S310)。若叢集之量未超過軌跡大小之50%(亦即,WC中之有效叢集之數目小於決定清理之軌跡中的2(k-i-1)
),則DRAM層管理單元120a執行至FSIB 12a之清理(步驟S315)。稍後解釋自WC 21至MSIB 11a之清理及自WC 21至FSIB 12a之清理的細節。將選定之清理分錄之狀態旗標25a自有效(不可用)轉變為等待清理至反及記憶體10。
關於清理目的地之此判斷藉由使用WC軌跡管理表24來執行。指示有效叢集之數目的WC叢集之數目24b之分錄針對每一邏輯軌跡位址登記於WC軌跡管理表24中。資料管理單元120參考WC叢集之數目24b之分錄判定應將FSIB 12a及MSIB 11a中之何者設定為自WC 21之清理之目的地。屬於邏輯軌跡位址之所有叢集以位元映射格式登記於路-線位元映射24c。因此,在執行清理程序中,資料管理單元120可參考路-線位元映射24c容易地獲悉應清理之叢集中之每一者在WC 21中的儲存位置。
在寫入處理期間或在寫入處理之後,資料管理單元120在以下條件得到滿足時亦以相同之方式執行至反及記憶體10之清理處理:
(ii)登記於WC 21中之軌跡之數目超過預定數目。
當根據基於有效叢集之數目(有效叢集之數目等於或大於2(k-i-1)
)之判斷而執行自WC 21至MSIB 11a之清理時,資料管理單元120如上文所解釋執行下文所解釋之程序(步驟S310)。
1.參考WC叢集管理表25且參考對應於待清理之叢集之標記中的區段位置位元映射25b,當所有區段位置位元映射25b不為「1」時,資料管理單元120執行稍後所解釋的軌跡內區段填充用於藉由讀出包括於來自反及記憶體10之相同邏輯軌跡位址中的丟失之區段而與不存在於WC 21中之區段合併。
2.當決定清理之軌跡之數目小於2i
時,資料管理單元120添加決定清理的具有2(k-i-l)
個或2(k-i-l)
個以上有效叢集之軌跡,直至決定清理之軌跡之數目自WC 21中之最舊者起達到2i
為止。
3. 當存在待複製之2i
個或2i
個以上軌跡時,資料管理單元120以邏輯區塊單位(每2i
個軌跡作為一集合)在MSIB 11a中執行寫入。
4. 資料管理單元120以軌跡單位將無法形成2i
個軌跡之集合的軌跡寫入MSIB 11a中。
5. 資料管理單元120在複製結束之後使已存在於FS、IS及MS上之叢集及軌跡當中屬於經複製之軌跡之叢集及軌跡無效。
解釋自WC 21至MSIB 11a之複製處理中所涉及的各別管理表之更新處理。資料管理單元120將對應於WC 21中屬於WC叢集管理表25中經清理之軌跡之所有叢集的分錄中之狀態旗標25a設定為無效。此後,在此等分錄中寫入係可能的。關於對應於WC軌跡管理表24中的經清理之軌跡的清單,資料管理單元120改變或刪除(例如)緊於之前之清單的下一個指標24d且使清單無效。
另一方面,當執行自WC 21至MSIB 11a之軌跡清理時,資料管理單元120根據軌跡清理而更新軌跡管理表30及MS邏輯區塊管理表35。首先,資料管理單元120搜尋作為軌跡管理表30之索引之邏輯軌跡位址30a,以判斷是否已經登記對應於經清理之軌跡之邏輯軌跡位址30a。當已登記邏輯軌跡位址30a時,資料管理單元120更新該索引之叢集位元映射30b之欄位(因為將軌跡清理至MS 11側,所以將所有相關位元設定為「0」)及邏輯區塊ID 30c十邏輯區塊內軌跡位置30d。當未登記對應於經清理之軌跡之邏輯軌跡位址30a時,資料管理單元120將叢集位元映射30b及邏輯區塊ID 30c+邏輯區塊內軌跡位置30d登記於相關邏輯軌跡位址30a之分錄中。資料管理單元120根據軌跡管理表30之改變而在必要時更新MS邏輯區塊管理表35中之邏輯區塊ID 35a、軌跡管理指標35b、有效軌跡之數目35c、可寫入之頂軌跡35d及其類似者之分錄。
當執行自其他區(FS 12及IS 13)或其類似者至MS 11之軌跡寫入時或當執行藉由MS 11中之壓縮處理而進行的MS軌跡內寫入時,可將作為寫入標的之邏輯軌跡位址中所包括的WC 21中之有效叢集同時寫入MS 11中。該被動合併可隨自WC 21至MS 11之寫入而存在。當執行該被動合併時,將叢集自WC 21刪除(使其無效)。
當根據基於有效叢集之數目(有效叢集之數目等於或大於2(k-i-1)
)之判斷而執行自WC 21至FSIB 12a之清理時,資料管理單元120執行下文所解釋之程序。
1.參考對應於待清理之叢集之標記中的區段位置位元映射25b,當所有區段位置位元映射25b不為「1」時,資料管理單元120執行用於藉由讀出包括於來自反及記憶體10之相同邏輯叢集位址中的丟失之區段而與不存在於WC 21中之區段合併的叢集內區段填充。
2.資料管理單元120藉由以自最舊軌跡起之次序追蹤WC中之軌跡而自僅具有小於2(k-i-1)
個有效叢集之軌跡提取叢集,且當有效叢集之數目達到2k
時,以邏輯區塊單位將所有叢集寫入FSIB 12a中。
3.當未尋找到2k
個有效叢集時,資料管理單元120以均等於邏輯頁之數目之數目將具有小於2(k-i-1)
之數目之有效叢集的所有軌跡寫入FSIB 12a中。
4.資料管理單元120在結束複製之後使已存在於FS 12及IS 13上之叢集當中具有與經複製之叢集相同之邏輯叢集位址的叢集無效。
解釋自WC 21至FSIB 12a之該複製處理中所涉及的各別管理表之更新處理。資料管理單元120將對應於WC 21中屬於WC叢集管理表25中經清理之軌跡之所有叢集的分錄中之狀態旗標25a設定為無效。此後,在此等分錄中寫入係可能的。關於對應於WC軌跡管理表24中的經清理之軌跡的清單,資料管理單元120改變或刪除(例如)緊於之前之清單的下一個指標24d且使清單無效。
另一方面,當執行自WC 21至FSIB 12a之叢集清理時,資料管理單元120根據叢集清理而更新軌跡管理表30之叢集表指標30e、FS叢集之數目30f及其類似者。資料管理單元120亦更新FS/IS管理表40之邏輯區塊ID 40b、邏輯區塊內叢集位置40c及其類似者。關於最初不存在於FS 12中之叢集,資料管理單元120將清單添加至FS/IS管理表40之鏈接清單。根據該更新,資料管理單元120更新MS邏輯區塊管理表35、FS/IS邏輯區塊管理表42及FS/IS內叢集管理表44之相關之段。
當結束上文所解釋之WCF處理時,邏輯反及層管理單元120b執行CIB處理,CIB處理包括用於將FSIB 12a中藉由WCF處理而寫入之資料移動至FS 12的處理及用於將MSIB 11a中藉由WCF處理而寫入之資料移動至MS 11的處理。當開始CIB處理時,如上文所解釋,很可能以鏈式反應方式執行區塊當中之資料移動及壓縮處理。全部處理所需之時間大體上根據狀態而改變。在CIB處理中,基本上,首先,執行MS 11中之CIB處理(步驟S330),隨後,執行FS 12中之CIB處理(步驟S340),再次執行MS 11中之CIB處理(步驟S350),執行IS 13中之CIB處理(步驟360),且最後再次執行MS 11中之CIB處理(步驟S370)。在自FS 12至MSIB 11a之清理處理、自FS 12至IS 13之清理處理或自IS 13至MSIB 11a之清理處理中,當程序中出現迴圈時,可能不按次序執行處理。單獨地解釋MS 11中之CIB處理、FS 12中之CIB處理及IS 13中之CIB處理。
首先,解釋MS 11中之CIB處理(步驟S330)。當執行軌跡自WC 21、FS 12及IS 13至MS 11之移動時,將軌跡寫入MSIB 11a中。在完成在MSIB 11a中之寫入之後,如上文所解釋,更新軌跡管理表30且改變(移動)軌跡排列於之邏輯區塊ID 30c、區塊內軌跡位置30d及其類似者。當將新軌跡寫入MSIB 11a中時,使自開始起存在於MS 11或TFS 11b中之軌跡無效。此無效化處理藉由使來自MS邏輯區塊管理表35中儲存舊軌跡資訊之邏輯區塊之分錄的軌跡無效來實現。具體言之,刪除MS邏輯區塊管理表35之分錄中的軌跡管理指標35b之欄位中的相關軌跡之指標且使有效軌跡之數目減少一。當藉由此軌跡無效化而使一邏輯區塊中之所有軌跡無效時,使有效旗標35e無效。藉由該無效化或其類似者產生MS 11之包括無效軌跡之邏輯區塊。當重複此步驟時,邏輯區塊之使用效率可降低而引起可用邏輯區塊之不足。
當出現此種情形且分配給MS 11之邏輯區塊之數目超過MS 11所允許之邏輯區塊之數目的上限時,資料管理單元120執行壓縮處理以產生空閒區塊FB。將空閒區塊FB傳回至實體反及層管理單元120c。邏輯反及層管理單元120b減少分配給MS 11之邏輯區塊之數目,且接著重新自實體反及層管理單元120c獲取可寫入之空閒區塊FB。壓縮處理為用於在新邏輯區塊中收集作為壓縮標的之邏輯區塊之有效叢集或將作為壓縮標的之邏輯區塊中之有效叢集複製至其他邏輯區塊以產生傳回至實體反及層管理單元120c之空閒區塊FB且改良邏輯區塊之使用之效率的處理。在執行壓縮程序中,當存在WC 21、FS 12及IS 13上之有效叢集時,資料管理單元120執行用於將作為壓縮標的之邏輯軌跡位址中所包括之所有有效叢集合併的被動合併。登記於TFS 11b中之邏輯區塊不包括在壓縮標的中。
特別解釋自MSIB 11a至MS 11或至TFS 11b之移動及將MSIB 11a中存在滿邏輯區塊設定為條件之壓縮處理的實例。「滿」邏輯區塊意謂所有邏輯頁已被寫入且額外記錄係不可能的邏輯區塊。
1.參考MS邏輯區塊管理表35之有效旗標35e,當無效化邏輯區塊存在於MS 11中時,資料管理單元120將該邏輯區塊設定為空閒區塊FB。
2.資料管理單元120將MSIB 11a中之滿邏輯區塊移動至MS 11。具體言之,資料管理單元120更新上文所解釋之MS結構管理表(未圖示)且將邏輯區塊自在MSIB 11a下受管理轉移至在MS 11下受管理。
3.資料管理單元120判斷分配給MS 11之邏輯區塊之數目是否超過MS 11所允許之邏輯區塊之數目的上限。當邏輯區塊之數目超過上限時,資料管理單元120執行下文所解釋之MS壓縮。
4.參考MS邏輯區塊管理表35的有效軌跡之數目35c之欄位及其類似者,資料管理單元120以有效軌跡之數目對不包括於TFS 11b中之邏輯區塊當中具有無效化軌跡之邏輯區塊排序。
5.資料管理單元120收集來自具有小數目之有效軌跡之邏輯區塊的軌跡且執行壓縮。在執行壓縮程序中,首先,針對邏輯區塊中之每一者複製軌跡(一次複製2i
個軌跡)以執行壓縮。當作為壓縮標的之軌跡具有WC 21、FS 12及IS 13中之有效叢集時,資料管理單元120亦合併該等有效叢集。
6.資料管理單元120將壓縮源處之邏輯區塊設定為空閒區塊FB。
7.當執行壓縮且一邏輯區塊包括有效的2i
個軌跡時,資料管理單元120將邏輯區塊移動至TFS 11b之頂部。
8.當可藉由將邏輯區塊中之有效軌跡複製至另一邏輯區塊而產生空閒區塊FB時,資料管理單元120以軌跡單位將數目小於2i
之有效軌跡另外記錄於MSIB 11a中。
9.資料管理單元120將壓縮源處之邏輯區塊設定為空閒區塊FB。
10.當分配給MS 11之邏輯區塊之數目降低至MS 11所允許之邏輯區塊之數目的上限以下時,資料管理單元120結束MS壓縮處理。
解釋FS 12中之CIB處理(步驟S340)。當藉由自WC 21至FSIB 12a之叢集寫入處理而在FSIB 12a中產生所有邏輯頁被寫入之滿邏輯區塊時,將FSIB 12a中之邏輯區塊自FSIB 12a移動至FS 12。根據該移動,自藉由複數個邏輯區塊而組態之FIFO結構之FS 12清理舊邏輯區塊。
如下文所解釋特別實現自FSIB 12a至FS 12之清理及自FS 12至MS 11及/或IS 13之清理。
1.參考FS/IS邏輯區塊管理表42之有效旗標35e及其類似者,當無效化邏輯區塊存在於FS 12中時,資料管理單元120將該邏輯區塊設定為空閒區塊FB。
2.資料管理單元120將FSIB 12a中之滿邏輯區塊清理至FS 12。具體言之,資料管理單元120更新FS/IS結構管理表(未圖示)且將邏輯區塊自在FSIB 12a下受管理轉移至在FS 12下受管理。
3.資料管理單元120判斷分配給FS 12之邏輯區塊之數目是否超過FS12所允許之邏輯區塊之數目的上限。當邏輯區塊之數目超過上限時,資料管理單元120執行下文所解釋之清理。
4.資料管理單元120判定作為清理標的之最舊邏輯區塊中之叢集當中應直接被複製至MS 11而不移動至IS 13之叢集(實際上,因為MS 11之管理單位為軌跡,所以以軌跡單位來判定叢集)。
(A)資料管理單元120以自邏輯頁之頂部起之次序掃描作為清理標的之最舊邏輯區塊中的有效叢集。
(B)資料管理單元120參考軌跡管理表30的FS叢集之數目30f之欄位尋找FS 12中該叢集所屬之軌跡具有多少個有效叢集。
(C)當軌跡中之有效叢集之數目等於或大於預定臨限值(例如,2k-1
之50%)時,資料管理單元120將軌跡設定為清理至MS 11之候選者。
5.資料管理單元120將應被清理至MS 11之軌跡寫入MSIB 11a中。
6.當待以軌跡單位清理之有效叢集留在最舊邏輯區塊中時,資料管理單元120進一步執行至MSIB 11a之清理。
7.當甚至在上文之處理2至處理4之後有效叢集仍存在於作為清理標的之邏輯區塊中時,資料管理單元120將最舊邏輯區塊移動至IS 13。
當執行自FS 12至MSIB 11a之清理時,緊於清理之後,資料管理單元120執行MS 11中之CIB處理(步驟S350)。
解釋IS 13中之CIB處理(步驟S360)。根據自FS 12至IS 13之移動而將邏輯區塊添加至IS 13。然而,根據邏輯區塊之添加,邏輯區塊之數目超過可在由複數個邏輯區塊形成之IS 13中進行管理的邏輯區塊之數目之上限。當邏輯區塊之數目超過上限時,在IS 13中,資料管理單元120執行一至複數個邏輯區塊至MS 11之清理且執行IS壓縮。具體言之,資料管理單元120執行下文所解釋之程序。
1.資料管理單元120以軌跡中之有效叢集之數目×有效叢集係數對IS 13中所包括之軌跡排序,收集具有大乘積值之2i+1
個軌跡(針對兩個邏輯區塊),且將該等軌跡清理至MSIB 11a。
2.當具有最小數目之有效叢集之2i+1
個邏輯區塊的有效叢集之總數目(例如)等於或大於係預定設定值之2k
(針對一邏輯區塊)時,資料管理單元120重複上文所解釋之步驟。
3.在執行清理之後,資料管理單元120以自具有最小數目之有效叢集之邏輯區塊起的次序收集2k
個叢集且執行IS 13中之壓縮。
4.資料管理單元120將壓縮源處之邏輯區塊當中不包括有效叢集之邏輯區塊釋放作為空閒區塊FB。
當執行自IS 13至MSIB 11a之清理時,緊於清理之後,資料管理單元120執行MS 11中之CIB處理(步驟S370)。
圖20為組件當中的資料之流動中之輸入與輸出的組合之圖且指示作為觸發器引起資料之流動之原因。基本上,根據自WC 21之叢集清理而將資料寫入FS 12中。然而,當對於自WC 21至FS 12之清理偶然有必要進行叢集內區段填充(叢集填充)時,複製來自FS 12、IS 13及MS 11之資料。在WC 21中,有可能藉由使用WC叢集管理表25之標記中之區段位置位元映射25b識別相關邏輯叢集位址中2(1-k)
個區段之存在或不存在而以區段(512 B)單位執行管理。另一方面,FS 12及IS 13(其為反及記憶體10中之功能組件)之管理單位為叢集且MS 11之管理單位為軌跡。以此方式,反及記憶體10中之管理單位比區段大。因此,在自WC 21將資料寫入反及記憶體10中的程序中,當具有與待寫入之資料之邏輯叢集位址相同的邏輯叢集位址之資料存在於反及記憶體10中時,有必要在將待自WC 21寫入反及記憶體10中之叢集中之區段與存在於反及記憶體10中之相同邏輯叢集位址中之區段合併之後將資料寫入反及記憶體10中。
此處理為圖20中所展示之叢集內區段填充處理(叢集填充)及軌跡內區段填充(軌跡填充)。除非執行此等種類之處理,否則無法讀出正確資料。因此,當將資料自WC 21清理至FSIB 12a或MSIB 11a時,參考WC叢集管理表25且參考對應於待清理之叢集之標記中的區段位置位元映射25b。當所有區段位置位元映射25b並非為「1」時,執行用於與反及記憶體10中所包括之相同叢集或相同軌跡中之區段合併的叢集內區段填充或軌跡內區段填充。DRAM 20之工作區用於此處理。在DRAM 20之工作區上合併邏輯叢集位址或邏輯軌跡位址中所包括之複數個區段且產生待清理之資料影像(叢集影像或軌跡影像)。將所產生之資料影像自DRAM 20之工作區寫入MSIB 11a中或寫入FSIB 12a中。
在IS 13中,基本上,根據自FS 12之區塊清理(移動)寫入資料或根據IS中之壓縮而寫入資料。在MS 11中,可自所有段寫入資料。當寫入資料時,在MS 11中,因為僅可以軌跡單位寫入資料,所以可引起歸因於MS本身之資料之填充。當以軌跡單位寫入資料時,根據被動合併亦寫入其他邏輯區塊中之片段資料。此外,在MS 11中,亦根據MS壓縮而寫入資料。在被動合併中,當執行自WC 21、FS 12或IS 13之三個組件中之一者至MS 11的軌跡清理或邏輯區塊清理(對於2i
個軌跡之清理)時,在DRAM 20之工作區中收集一組件中作為清理標的之軌跡(或邏輯區塊)中所包括的兩個組件中之有效叢集及MS 11中之有效叢集並將其自DRAM 20之工作區寫入MSIB 11a中作為一軌跡之資料。
較為詳細地解釋此實施例。圖21為與圖6中所展示的反及記憶體10之寫入處理有關的詳細功能組態之圖。省略冗餘解釋。
FS單元12Q包括FSIB 12a及FS 12。FS 12具有用於大量邏輯區塊之容量。FIFO結構以邏輯區塊單位來管理。自WC 21清理之資料經輸入至之FS輸入緩衝器(FSIB)12a提供於FS 12之前級處。FSIB 12a包括FS滿區塊緩衝器(FSFB)12aa及FS額外記錄緩衝器(FS額外記錄IB)12ab。FSFB 12aa具有用於一至複數個邏輯區塊之容量。FS額外記錄IB 12ab亦具有用於一至複數個邏輯區塊之容量。當自WC 21清理之資料為一邏輯區塊之資料時,執行以邏輯區塊單位至FSFB 12aa之資料複製(區塊複製)。當資料並非為一邏輯區塊之資料時,執行以邏輯頁單位至FS額外記錄IB 12ab之資料複製(頁複製)。
IS單元13Q包括IS 13、IS輸入緩衝器(ISIB)13a,及IS壓縮緩衝器13c。ISIB 13a具有用於一至複數個邏輯區塊之容量,IS壓縮緩衝器13c具有用於(例如)一邏輯區塊之容量,且IS 13具有用於大量邏輯區塊之容量。在IS 13中,如同在FS 12中,FIFO結構係以邏輯區塊單位來管理。IS壓縮緩衝器13c為用於執行IS單元13Q中之壓縮之緩衝器。
如上文所解釋,IS單元13Q以與FS單元12Q相同之方式以叢集單位執行資料之管理。當執行邏輯區塊自FS單元12Q至IS單元13Q之移動(亦即,自FS 12之清理)時,根據指標之重新定位將作為清理標的之邏輯區塊(其為FS單元12Q之先前管理標的)改變成IS單元13(具體言之,ISIB 13a)之管理標的(區塊移動)。當根據邏輯區塊自FS單元12Q至IS單元13Q之移動IS13之邏輯區塊之數目超過預定上限時,執行自IS 13至MS單元11Q之資料清理及IS壓縮處理且使IS單元13Q之邏輯區塊之數目返回至指定值。
MS單元11Q包括MSIB 11a、軌跡前級緩衝器(TFS)11b,及MS 11。MSIB 11a包括一至複數個(在此實施例中為四個)MS滿區塊輸入緩衝器(在下文中為MSFB)11aa及一至複數個(在此實施例中為兩個)額外記錄輸入緩衝器(在下文中為MS額外記錄IB)11ab。一 MSFB 11aa具有用於一邏輯區塊之容量。MSFB 11aa用於以邏輯區塊單位進行之寫入。一MS額外記錄IB 11ab具有用於一邏輯區塊之容量。MS額外記錄IB 11ab用於以軌跡單位進行之額外寫入。
將自WC 21清理之邏輯區塊、自FS 12清理之邏輯區塊或自IS 13清理之邏輯區塊複製至MSFB 11aa(區塊複製)。將複製至一MSFB 11aa之邏輯區塊直接移動至MS 11(區塊複製)而不移動通過TFS 11b。在將邏輯區塊移動至MS 11之後,將空閒區塊FB分配為MSFB 11aa。
以附加方式將自WC 21清理之軌跡或自FS 12清理之軌跡複製至MS額外記錄IB 11ab(軌跡複製)。將該MS額外記錄IB 11ab中以軌跡單位額外記錄之滿邏輯區塊移動至TFS 11b(區塊移動)。在將邏輯區塊移動至TFS 11b之後,將空閒區塊FB分配為MS額外記錄IB 11ab。
如上文所解釋,TFS 11b為具有用於大量邏輯區塊之容量且具有插入於MS額外記錄IB 11ab與MS 11之間的FIFO結構之緩衝器。將MS額外記錄IB 11ab中以軌跡單位額外記錄之滿邏輯區塊移動至具有FIFO結構之TFS 11b之輸入側。將根據MS 11中之壓縮處理而形成之具有有效資料的邏輯區塊自MS壓縮緩衝器11c移動(區塊移動)。MS壓縮緩衝器11c為用於執行MS 11中之壓縮之緩衝器。當根據MS 11中之壓縮處理而將MS中之軌跡寫入MS壓縮緩衝器11c中時,執行用於經由DRAM 20之工作區將WC 21、FS單元12Q及IS單元13Q中之有效叢集(其包括於作為寫入標的之軌跡中)寫入MS壓縮緩衝器11c中的被動合併。在此實施例中,登記於MSIB 11a及TFS 11b中之邏輯區塊不包括於壓縮標的中。
圖22為資料管理單元120之較為詳細之功能組態的圖。如上文所解釋,資料管理單元120包括執行儲存於DRAM 20中之資料之管理的DRAM層管理單元120a、執行儲存於反及記憶體10中之資料之管理的邏輯反及層管理單元120b,及將反及記憶體10作為實體儲存裝置管理之實體反及層管理單元120c。
DRAM層管理單元120a包括RC叢集管理表23、WC叢集管理表25,及WC軌跡管理表24,且基於該等管理表而執行DRAM層之管理。除軌跡管理表30、MS區塊管理表35、FS/IS管理表40、FS/IS邏輯區塊管理表42及FS/IS內叢集管理表44之外,邏輯反及層管理單元120b包括MS結構管理表60及FS/IS結構管理表65且基於該等管理表而執行反及記憶體10之邏輯反及層之管理。除邏輯至實體轉譯表50之外,實體反及層管理單元120c包括壞區塊管理表(BB管理表)200、保留區塊管理表(RB區塊管理表)210、空閒區塊管理表(FB管理表)220,及作用中區塊管理表(AB管理表)230且使用該等管理表來執行反及記憶體10之實體反及層之管理。
首先,解釋實體反及層。如上文所解釋,在32-位元雙速模式中,並行地致動四個通道(ch0、ch1、ch2,及ch3),且藉由使用反及記憶體碼片之雙速模式來執行抹除、寫入及讀出。如圖23中所展示,將四個並行之操作元件10a至10d中的反及記憶體碼片中之每一者劃分為(例如)平面0及平面1之兩個分區。劃分之數目不限於二。平面0及平面1包括彼此獨立之周邊電路(例如,列解碼器、行解碼器、頁緩衝器,及資料快取記憶體)且可基於自反及控制器113輸入之命令而同時執行抹除、寫入及讀出。在反及記憶體碼片之雙速模式中,藉由並行地控制平面0及平面1來實現高速寫入。
實體區塊大小為512kB。因此,在32-位元雙速模式中,根據該四個通道之並行操作及對該兩個平面之同時存取而將實體區塊之抹除單位增加至512kB×4×2=4MB。因此,在32-位元雙速模式中,八個平面並行地操作。
圖24為邏輯至實體轉譯表50之另一實例的圖。在圖24中所展示之邏輯至實體轉譯表50中,將指示抹除對應於邏輯區塊ID 50a之邏輯區塊之時間的抹除時間50e之欄位添加至圖17中所展示之邏輯至實體表50。關於抹除時間50e,例如,僅須使用藉由量測對反及記憶體碼片中之邏輯區塊所應用的抹除操作之次數而獲得的值或反及控制器113之激勵時間。抹除時間50e用於稍後所解釋之FB管理表220中之空閒區塊FB管理。
BB管理表200為用於以實體區塊(512kB)單位管理壞區塊BB之表。如圖25中所展示,BB管理表200以二維陣列格式形成,其具有(例如)針對每4(通道)×2(平面/通道)個通道內平面的關於實體區塊之(實體區塊之數目/平面)×(反及記憶體碼片之數目/一並行操作元件)之資訊。在BB管理表200之每一分錄中,儲存每一實體區塊之實體區塊ID 200a。
在此實施例之狀況下,一反及記憶體碼片具有2GB之大小。將實體區塊ID「0」至「2047」分配給第一碼片之平面0。將實體區塊ID「2048」至「4095」分配給第一碼片之平面1。當將使用期間所產生之壞區塊BB登記於BB管理表200中時,實體反及層管理單元120c緊於對應於壞區塊BB之通道內平面ID(ID#0至ID#7)的最後有效分錄之後添加壞區塊BB而不對壞區塊BB進行排序。
舉例而言,將當向空閒區塊FB分配一用途時未正常結束抹除操作之實體區塊登記為壞區塊BB,或可將當將資料寫入用作FS 12、IS 13或MS 11之作用中區塊AB中時未正常結束寫入操作的實體區塊登記為壞區塊BB。
RB管理表210為用於管理以八個實體區塊單位(512 kB)形成4MB邏輯區塊時剩餘的實體區塊(保留區塊RB)之表。RB管理表210以與BB管理表200之格式相同之格式進行管理。藉由針對對應於區塊之通道內平面ID中之每一者以FIFO來管理區塊,擇優地以自最早登記之保留區塊起之次序使用保留區塊RB。
FB管理表220為用於以4MB邏輯區塊單位管理當前未被分配用途(例如,用於FS 12、IS 13或MS 11)之空閒區塊FB的表且為以空閒區塊FB之產生之次序排序的FIFO格式之清單。邏輯區塊ID儲存於每一分錄中。將根據壓縮處理或其類似者而傳回至FB管理表220之空閒區塊FB添加至清單之尾端。空閒區塊FB分配藉由傳回清單之頂區塊來執行。
如圖26中所展示,FB管理表以傳回FIFO清單220a及分配清單220b之兩級來組態。傳回FIFO清單220a以抹除時間50e之次序來對準。在分配清單220b中,具有較小的抹除之次數50c之邏輯區塊較接近於清單之頂部而定位。此為用於防止以短時間間隔重複抹除操作之組態。將傳回至FB管理表220的不必要之邏輯區塊添加至傳回FIFO清單220a之尾端且將其儲存於該尾端處歷時固定週期。
根據邏輯區塊之抹除之次數50c而將自傳回FIFO清單220a推出之邏輯區塊插入分配清單220b中之某處。當邏輯反及層管理單元120b請求空閒區塊FB之分配時,實體反及層管理單元120c自分配清單220b之頂部提取空閒區塊FB且分配該空閒區塊FB。
藉由FB管理表,有可能均等地分布待抹除之邏輯區塊(磨損調平處理)以使得所有邏輯區塊的抹除之次數及抹除間隔大體均等。已知:除抹除之次數之外,反及型快閃記憶體之壽命視抹除處理之間隔而定,且當間隔較長時,保存性能較佳且壽命較長。此亦指示:當抹除間隔短時,保存性能不良且壽命受到損害。亦已知:即使以短間隔執行寫入,除非執行適當之長期抹除,否則保存性能得以恢復。
AB管理表230為自空閒區塊FB分配之被分配用途(例如,用於FS 12、IS 13或MS 11)之邏輯區塊(作用中區塊AB)的清單。如同在FB管理表220中,在AB管理表230中,邏輯區塊ID儲存於每一分錄中。具有較早登記次序之邏輯區塊較接近於頂部而定位。AB管理表用於(例如)再新處理。
再新處理為用於防止超過SSD 110之錯誤校正能力之錯誤由於經寫入資料之老化惡化及讀取干擾(其為讀取處理中所涉及的資料破裂)的影響而發生之技術。具體言之,例如,在超過錯誤校正能力之錯誤發生之前,執行用於讀出所儲存之資料並執行錯誤校正且接著將資料重寫於反及型快閃記憶體中之處理。舉例而言,可將具有大的讀出之次數50d之區塊、AB管理表230之頂區塊及其類似者設定為再新處理之監視標的。
實體反及層管理單元120c執行下文所解釋之邏輯區塊/實體區塊管理。首先,參看圖27來解釋邏輯至實體轉譯表50中的一邏輯區塊ID與八個實體區塊ID之間的對應關係。
如上文所解釋,與作為邏輯至實體轉譯表50之索引之邏輯區塊ID 50a相關聯的八個實體區塊ID登記於邏輯至實體轉譯表50之實體區塊ID 50b之欄位中。圖27為反及記憶體10之邏輯區塊ID與實體區塊ID之間的對應關係之圖。一個段表示一實體區塊。將實體區塊ID分配給實體區塊中之每一者。邏輯區塊L0(作用中區塊AB)包括(例如)第一列第三行、第二列第二行、第三列第二行、第四列第二行、第五列第二行、第六列第二行、第七列第二行及第八列第三行中的八個實體區塊。藉由斷線BL1環繞之邏輯區塊L1(作用中區塊AB)包括(例如)第一列第四行、第二列第三行、第三列第三行、第四列第三行、第五列第三行、第六列第三行、第七列第三行及第八列第四行中的八個實體區塊。
此後,例如,假定:當向邏輯區塊L1分配用途(在此狀況下,邏輯區塊L1為空閒區塊FB)且執行抹除操作時或當將資料寫入用作FS 12、IS 13或MS 11之邏輯區塊L1中(在此狀況下,邏輯區塊L1為作用中區塊AB,如圖27中所展示)且執行寫入操作時,針對邏輯區塊L1之第四列第三行中之實體區塊的抹除或寫入操作未正常結束,且因此,將該實體區塊作為無法用作儲存區之壞區塊BB登記於BB管理表200中。
實體反及層管理單元120c偵測到該登記且自RB管理表210選擇與經登記為壞區塊BB之實體區塊之通道及平面相同的通道及平面中之保留區塊RB作為用於壞區塊BB之替換候選者。
在圖27之狀況下,選擇鄰近於壞區塊BB的第四列第四行中之實體區塊(保留區塊RB)作為用於第四列第三行中之壞區塊BB的替換候選者。
實體反及層管理單元120c搜尋遍及邏輯至實體轉譯表50之對應於邏輯區塊L1的邏輯區塊ID 50a之分錄且將該分錄中的實體區塊ID 50b之欄位中所包括的八個實體區塊ID當中對應於第四列第三行之壞區塊BB之實體區塊ID改變為對應於自RB管理表210選擇的第四列第四行中之保留區塊RB之實體位址ID。
因此,此後,邏輯區塊L1包括藉由交替長虛線與短虛線環繞的第一列第四行、第二列第三行、第三列第三行、第四列第四行、第五列第三行、第六列第三行、第七列第三行及第八列第四行中之八個新實體區塊的組合。假定:邏輯區塊L1之邏輯區塊ID為「L1」。
此後,實體反及層管理單元120c鎖定來自FB管理表220之新空閒區塊FB(圖27中未展示)。假定:經鎖定之空閒區塊FB之邏輯區塊ID為「L2」。實體反及層管理單元120c使用邏輯至實體轉譯表50來執行邏輯區塊ID之替換。
具體言之,實體反及層管理單元120c使與具有邏輯區塊ID「L2」之新空閒區塊FB相關聯的八個實體區塊與邏輯區塊ID「L1」相關聯。同時,實體反及層管理單元120c使藉由交替長虛線與短虛線環繞的第一列第四行、第二列第三行、第三列第三行、第四列第四行、第五列第三行、第六列第三行、第七列第三行及第八列第四行中之八個實體區塊與邏輯區塊ID「L2」相關聯。亦根據實體區塊ID之更新而替換抹除之次數50c、讀出之次數50d及抹除時間50e。此後,實體反及層管理單元120c將邏輯區塊ID「L2」登記於FB管理表220中。邏輯反及層管理單元120b重新在具有相同邏輯區塊ID「L1」的新近鎖定之邏輯區塊中執行抹除或寫入操作。
另一方面,當不存在可替換壞區塊BB之保留區塊RB時,實體反及層管理單元120c執行下文所解釋之處理。舉例而言,假定:將第四列第三行中之實體區塊作為壞區塊BB登記於BB管理表200中且保留區塊RB不存在於與壞區塊BB相同之通道及相同之平面中。在此狀況下,首先,實體反及層管理單元120c將邏輯區塊L1中除第四列第三行之外的第一列第四行、第二列第三行、第三列第三行、第五列第三行、第六列第三行、第七列第三行及第八列第四行中之七個實體區塊登記於RB管理表210中。此後,以與上文所解釋之方式相同之方式,實體反及層管理單元120c鎖定來自FB管理表220之新空閒區塊FB且如上文所解釋執行邏輯區塊ID之替換,且接著將自FB管理表220所獲取之邏輯區塊ID設定為不可用。
以此方式,甚至當產生壞區塊BB時,實體反及層管理單元120c亦執行邏輯區塊ID之替換。因此,用於邏輯反及層管理單元120b中之邏輯區塊ID在產生壞區塊BB之前及之後不改變。因此,甚至當複數個實體區塊中之至少一者經登記為壞區塊時,LBA邏輯位址與邏輯區塊之間的對應關係亦不改變。有可能防止邏輯反及層管理單元120b中之管理表之重寫的額外負擔。
在用於獨立驅動並行操作元件10a至10d中之一平面之8-位元正常模式中,該模式之抹除單位為一實體區塊(512KB)。當寫入大小為小時,例如,當另外寫入用於記錄管理表之經更新之內容的日誌時,使用8-位元正常模式。
當用於此種8-位元正常模式中之空閒區塊FB(亦即,512KB單位之實體區塊)為必要時,實體反及層管理單元120c鎖定32-位元雙速模式中之4MB邏輯區塊且在經鎖定之邏輯區塊中選擇一實體區塊。圖27指示指派藉由斷線BL3環繞之邏輯區塊L3,邏輯區塊L3包括藉由粗線環繞之一實體區塊(該實體區塊不久用於邏輯反及層管理單元120b中)。
在8-位元正常模式中,首先,實體反及層管理單元120c使用選定之一實體區塊。當該一實體區塊由於日誌之額外記錄而由資料填滿時,實體反及層管理單元120c使用邏輯區塊L3中之八個實體區塊當中之另一實體區塊。此後,重複該處理。
解釋32-位元雙速模式中之抹除處理。每當以邏輯區塊單位抹除反及記憶體10中之資料時,實體反及層管理單元120c將對應於圖24中所展示之邏輯至實體轉譯表50之經抹除之邏輯區塊的邏輯區塊ID中之抹除之次數50c之欄位累加一且將抹除時間50e更新為最新之資料。
參看圖28及圖29來解釋用於邏輯反及層中之管理的MS結構管理表60及FS/IS結構管理表65。圖28中所展示之MS結構管理表60包括用於管理MS單元11Q之結構之區及用於儲存狀態資訊之區。MS結構管理表60包括用於管理經分配為MSFB 11aa、MS額外記錄IB 11ab及TFS 11b之邏輯區塊ID的MS緩衝器管理表61、用於儲存具有小數目之有效軌跡之邏輯區塊ID以便增加MS壓縮期間之排序處理之速度的按有效軌跡之數目之邏輯區塊ID清單62,及用於管理作為狀態資訊的邏輯區塊之最大數目MBL及有效邏輯區塊之數目VBL的區63及64。
在MS結構管理表60中,具有所需數目之分錄之固定欄位61a至61c準備用於MSFB 11aa、MS額外記錄IB 11ab及TFS 11b。邏輯區塊ID記錄於固定欄位61a至61c中。用於TFS 11b之欄位61c具有鏈接清單結構。執行用於具有FIFO結構之TFS 11b之類似FIFO管理。
在按有效軌跡之數目之邏輯區塊ID清單62中,所需數目之分錄準備用於具有一有效軌跡之邏輯區塊,所需數目之分錄準備用於具有兩個有效軌跡之邏輯區塊,...,且所需數目之分錄準備用於具有2i
-1個有效軌跡之邏輯區塊。邏輯區塊ID記錄於該等分錄中之每一者中。當搜尋MS邏輯區塊管理表35的有效軌跡之數目35c之欄位時,總是將按有效軌跡之數目之邏輯區塊ID清單62更新至最新狀態。在按有效軌跡之數目之邏輯區塊ID清單62中不輸入作為MSIB 11a及TFS 11b登記於MS緩衝器管理表61中之邏輯區塊。
在用於作為狀態資訊的邏輯區塊之最大數目MBL的固定欄位63中,記錄作為允許MS單元11Q獲取的邏輯區塊之數目的邏輯區塊之最大數目MBL。在用於作為狀態資訊的有效邏輯區塊之數目VBL的固定欄位64中,記錄作為當前作為MS單元11Q管理之邏輯區塊之數目的有效邏輯區塊之數目VBL。
圖29中所展示之FS/IS結構管理表65具有用於管理FS單元12Q及IS單元13Q之結構的區。FS/IS結構管理表65包括用於管理經分配為FSIB 12a及FS額外記錄IB 12ab之邏輯區塊ID的FS輸入緩衝器管理表66、用於管理FS 12之FIFO結構的FS FIFO管理表67、用於管理經分配為ISIB 13a之邏輯區塊ID的IS輸入緩衝器管理表68,及用於管理IS 13之FIFO結構的IS FIFO管理表69。
在FS輸入緩衝器管理表66中,具有所需數目之分錄之固定欄位66a及66b準備用於FSFB 12aa及FS額外記錄IB 12ab。作為FS/IS邏輯區塊管理表42之索引的FS/IS區塊ID 42a登記於固定欄位66a及66b中。在IS輸入緩衝器管理表68中,具有所需數目之分錄之固定欄位準備用於ISIB 13a。FS/IS區塊ID 42a登記於固定欄位中。在FS FIFO管理表67中,用於形成FS 12之FIFO結構的邏輯區塊之數目的分錄準備於固定欄位中。FS/IS區塊ID 42a登記於FS FIFO管理表67之固定欄位中。在IS FIFO管理表69中,用於形成IS 13之FIFO結構的邏輯區塊之數目的分錄準備於固定欄位中。FS/IS區塊ID 42a登記於固定欄位中。
解釋在執行參看圖19所解釋的劃分成兩個階段(WCF處理及CIB處理)之寫入處理程序中自WC 21至MSIB 11a之複製處理中所涉及的管理表之更新處理。此處,執行自WC 21至MS額外記錄IB 11ab的以軌跡單位進行之複製。DRAM層管理單元120a參考對應於決定清理之軌跡之邏輯軌跡位址24a所登記於的軌跡分錄中之路-線位元映射24c以自頂部起之次序檢查WC軌跡管理表24,將WC叢集管理表25中對應於路-線位元映射24c之m×n分錄中具有有效位元「1」之分錄的分錄中之狀態旗標25a自有效改變成等待清理至反及,且向邏輯反及層管理單元120b通知清理請求。
另一方面,邏輯反及層管理單元120b參考圖28中所展示之MS結構管理表60之MS緩衝器管理表61及圖14中所展示之MS邏輯區塊管理表35檢查MS額外記錄IB 11ab之狀態。當自MS緩衝器管理表61之用於MS額外記錄IB之欄位61b判斷出MS額外記錄IB 11ab已經存在時,邏輯反及層管理單元120b自MS邏輯區塊管理表35的有效軌跡之數目35c之欄位獲取關於針對登記於用於MS額外記錄IB之欄位61b中之邏輯區塊ID的可寫入之軌跡之數目的資訊且向DRAM層管理單元120a通知所獲取的可寫入之軌跡之數目。
當自MS緩衝器管理表61之用於MS額外記錄IB之欄位61b判斷出MS額外記錄IB 11ab不存在時,邏輯反及層管理單元120b向實體反及層管理單元120c發出用於獲取空閒區塊FB之請求且獲取空閒區塊FB以及經分配為空閒區塊FB之邏輯區塊ID。邏輯反及層管理單元120b向DRAM層管理單元120a通知所獲取之空閒區塊FB的可寫入軌跡之數目2i
。
DRAM層管理單元120a藉由自邏輯反及層管理單元120b通知的可寫入軌跡之數目而自WC軌跡管理表24選擇軌跡且判斷是否執行軌跡內區段填充。為了檢查待清理之邏輯軌跡位址之範圍中所包括的叢集及/或軌跡是否存在於反及記憶體10中且判斷是否執行軌跡內區段填充,DRAM層管理單元120a向邏輯反及層管理單元120b通知所需之資訊(諸如,待清理之邏輯軌跡位址)。
當邏輯反及層管理單元120b接收到此通知時,邏輯反及層管理單元120b搜尋遍及作為軌跡管理表30之索引的邏輯軌跡位址30a,且當必要時,進一步搜尋遍及FS/IS管理表40且判斷與待清理之邏輯軌跡位址相同之邏輯軌跡位址是否存在於反及記憶體10上。邏輯反及層管理單元120b向實體反及層管理單元120c通知該搜尋之結果。因此,實體反及層管理單元120c執行涉及軌跡內區段填充或不涉及軌跡內區段填充的自WC 21至MS額外記錄IB 11ab之清理。
當自實體反及層管理單元120c通知自WC 21至MS額外記錄IB 11ab之清理結束時,若自實體反及層管理單元120c獲取新空閒區塊FB作為MS額外記錄IB 11ab,則邏輯反及層管理單元120b將MS邏輯區塊管理表35的對應於自實體反及層管理單元120c給出之空閒區塊FB之邏輯區塊ID的分錄之有效旗標35e設定為有效,將邏輯區塊ID登記於MS緩衝器管理表61之用於MS額外記錄IB之欄位61b中,且使MS結構管理表60的有效邏輯區塊之數目VBL遞增。
邏輯反及層管理單元120b更新軌跡管理表30。換言之,邏輯反及層管理單元120b將所需之資訊(諸如,叢集位元映射30b、邏輯區塊ID 30c及邏輯區塊內軌跡位置30d)登記於對應於經自WC 21清理至MS額外記錄IB 11ab之軌跡的邏輯軌跡位址30a之分錄中。
當具有相同邏輯軌跡位址之舊軌跡不存在於反及記憶體10中且不執行軌跡內區段填充時,邏輯反及層管理單元120b將關於自WC 21清理之新軌跡的所需之資訊登記於對應於軌跡管理表30之邏輯軌跡位址之分錄中。邏輯反及層管理單元120b將關於自WC 21清理之軌跡之資訊登記於對應於MS邏輯區塊管理表35的已寫入之邏輯區塊ID之分錄中。關於MS邏輯區塊管理表35中之登記,存在(例如)作為軌跡管理表30之索引的對應於儲存於經分配給MS 11之邏輯區塊中之軌跡的邏輯軌跡位址(軌跡管理指標35b)之更新、有效軌跡之數目35c之更新,及可寫入之頂軌跡35d之更新。
當具有相同邏輯軌跡位址之舊軌跡存在於反及記憶體10中(舊軌跡被替代)且執行軌跡內區段填充時,邏輯反及層管理單元120b更新軌跡管理表30中對應於合併源軌跡之邏輯軌跡位址30a之分錄中的所需之資訊(諸如,邏輯區塊ID 30c及邏輯區塊內軌跡位置30d)。具體言之,邏輯反及層管理單元120b將邏輯區塊ID 30c自MS 11中該合併源軌跡相關聯至之舊邏輯區塊ID改變成對應於MS額外記錄IB 11ab之新邏輯區塊ID。邏輯區塊內軌跡位置30d根據額外記錄狀態而改變。
此外,邏輯反及層管理單元120b刪除MS邏輯區塊管理表35中對應於合併源軌跡相關聯至之舊邏輯區塊ID之分錄中的軌跡管理指標35b之欄位的相關段,使有效軌跡之數目35c遞減,且更新MS結構管理表60的按有效軌跡之數目之邏輯區塊ID清單62。當對應於合併源軌跡相關聯至之舊邏輯區塊ID之分錄中的有效軌跡之數目35c藉由該遞減而減少至0時,邏輯反及層管理單元120b使MS結構管理表60的有效邏輯區塊之數目VBL遞減並將邏輯區塊作為空閒區塊FB傳回至實體反及層管理單元120c。邏輯反及層管理單元120b將對應於經釋放之邏輯區塊之分錄的有效旗標35e設定為無效。此外,以與上文所解釋之方式相同之方式,邏輯反及層管理單元120b將關於自WC 21清理之新軌跡之資訊登記於MS邏輯區塊管理表35中。
當自實體反及層管理單元120c通知自WC 21至MS額外記錄IB 11ab之清理完成時,邏輯反及層管理單元120b向DRAM層管理單元120a通知清理(WCF處理)之完成。DRAM層管理單元120a接收該通知且將WC叢集管理表25中對應於屬於經清理之軌跡之所有叢集的分錄中之狀態旗標25a設定為無效(可用)。此後,將來自主機設備1之資料寫入該等分錄中係可能的。關於對應於WC軌跡管理表24中的經清理之軌跡之清單,例如,改變或刪除緊於之前之清單的下一個指標24d且使該清單無效。
解釋CIB處理。當WCF處理結束時,執行CIB處理,CIB處理包括用於將FSIB 12a之藉由WCF處理而寫入之資料移動至FS 12的處理及用於將MSIB 11a之藉由WCF處理而寫入之資料移動至MS 11或 TFS 11b的處理。下文參看圖30中所展示之流程圖來解釋CIB處理之詳細程序。
首先,詳細地解釋圖19中之步驟S330處所解釋的MS單元11Q中之第一次之CIB處理。邏輯反及層管理單元120b自MS邏輯區塊管理表35的有效軌跡之數目35c之欄位獲取關於登記於MS結構管理表60之MS緩衝器管理表61的用於MSFB之欄位61a及用於MS額外記錄IB之欄位61b中之邏輯區塊ID的有效軌跡之數目的資訊。邏輯反及層管理單元120b檢查所有邏輯頁被藉由軌跡寫入之一或多個滿區塊是否存在於MSIB 11a之MSFB 11aa或MS額外記錄IB 11ab中(步驟S400)。當一或多個滿區塊存在於MSIB 11a中時,邏輯反及層管理單元120b執行下文所解釋之處理。當步驟S400處之判斷為否時,程序移至步驟S440。
當步驟S400處之判斷為是時,邏輯反及層管理單元120b參考MS邏輯區塊管理表35的有效軌跡之數目35c檢查有效軌跡之數目35c為0之無效邏輯區塊是否存在於MS中。當無效邏輯區塊存在於MS中時,邏輯反及層管理單元120b將無效邏輯區塊傳回至實體反及層管理單元120c(步驟S405)。在MS邏輯區塊管理表35的對應於經傳回之無效邏輯區塊之分錄中,將有效旗標35e設定為無效且使MS結構管理表60的有效邏輯區塊之數目VBL遞減。邏輯反及層管理單元120b直接將MSFB 11aa中之滿邏輯區塊移動至MS 11且將MS額外記錄IB 11ab中之滿邏輯區塊移動至TFS 11b(步驟S407)。此移動處理為用於僅刪除登記於MS結構管理表60之MS緩衝器管理表61的用於MSFB之欄位61a及用於MS額外記錄IB之欄位61b中的相關邏輯區塊ID之處理。
邏輯反及層管理單元120b比較MS結構管理表60之作為狀態資訊的有效邏輯區塊之數目VBL與邏輯區塊之最大數目MBL(步驟S410)。作為該比較之結果,當有效邏輯區塊之數目VBL超過邏輯區塊之最大數目MBL時,邏輯反及層管理單元120b判斷出空閒區塊FB不足,逐個區塊地執行下文所解釋之MS壓縮處理,增加應被傳回至實體反及層管理單元120c之完全藉由無效軌跡組態的無效邏輯區塊,且將有效邏輯區塊之數目VBL減少至小於區塊之最大數目MBL(步驟S420)。當在步驟S410處之判斷中空閒區塊FB不足時,將程序移至步驟S440。
關於MS壓縮處理,如上文所解釋,存在兩種類型,亦即,2i
軌跡MS壓縮及小於2i
之軌跡MS壓縮。在2i
軌跡MS壓縮中,使用MS壓縮緩衝器11c且將在壓縮之後用作MS壓縮緩衝器11c之邏輯區塊移動至TFS 11b之頂部。在小於2i
之軌跡MS壓縮中,將有效軌跡複製至MS額外記錄IB 11ab。
首先,邏輯反及層管理單元120b執行2i
軌跡MS壓縮,該2i
軌跡MS壓縮係用於參考MS結構管理表60的按有效軌跡之數目之邏輯區塊ID清單62收集來自具有小數目之有效軌跡之邏輯區塊的2i
個軌跡且將所收集之2i
個軌跡複製至自實體反及層管理單元120c獲取的MS壓縮緩衝器11c。
具體言之,邏輯反及層管理單元120b向實體反及層管理單元120c發出針對空閒區塊FB之獲取請求且獲取空閒區塊FB以及經分配為空閒區塊FB之邏輯區塊ID。邏輯反及層管理單元120b請求實體反及層管理單元120c將選定為壓縮標的之複數個軌跡複製至空閒區塊FB。當作為壓縮標的之軌跡具有WC 21、FS單元12Q及IS單元13Q中之有效叢集時,邏輯反及層管理單元120b執行MS壓縮緩衝器11c中用於收集並合併該等有效叢集之被動合併。
當自實體反及層管理單元120c通知壓縮完成時,邏輯反及層管理單元120b將軌跡管理表30的具有對應於經受壓縮之軌跡之邏輯軌跡位址30a的分錄中之邏輯區塊ID 30c更新為自實體反及層管理單元120c獲取之空閒區塊FB之邏輯區塊ID且更新邏輯區塊內軌跡位置30d。
邏輯反及層管理單元120b將自實體反及層管理單元120c獲取之空閒區塊FB之邏輯區塊ID(其用作MS壓縮緩衝器11c)登記為MS邏輯區塊管理表35中之新分錄且將所需之資訊登記於該分錄中之各別欄位中。關於登記,存在軌跡管理指標35b之更新、有效軌跡之數目之更新、可寫入之頂軌跡35d之更新,及其類似者。
邏輯反及層管理單元120b將用作MS壓縮緩衝器11c之邏輯區塊ID登記於MS結構管理表60之MS緩衝器管理表61的用於TFS之欄位61c的FIFO結構(鏈接清單)之頂部處,以將藉由包括作為MS壓縮之結果之有效2i
個軌跡的一邏輯區塊組態之MS壓縮緩衝器11c移動至TFS 11b之頂部(最舊位置)。當TFS 11b滿時,將頂部之最舊邏輯區塊移動至MS 11。
隨後,資料管理單元120使MS 11中在壓縮源處之舊軌跡無效。具體言之,邏輯反及層管理單元120b刪除MS邏輯區塊管理表35中對應於壓縮源處之邏輯區塊之分錄中的軌跡管理指標35b之欄位的相關段,使有效軌跡之數目35c遞減,且更新MS結構管理表60的按有效軌跡之數目之邏輯區塊ID清單62。當有效軌跡之數目35c藉由該遞減而減少至0時,邏輯反及層管理單元120b使MS結構管理表60的有效邏輯區塊之數目VBL遞減,且將此無效邏輯區塊傳回至實體反及層管理單元120c。將MS邏輯區塊管理表35的對應於經傳回之邏輯區塊的分錄之有效旗標35e設定為無效。
當該壓縮處理及用於傳回無效邏輯區塊FB之處理結束時,邏輯反及層管理單元120b比較有效邏輯區塊之數目VBL與邏輯區塊之最大數目MBL。當有效邏輯區塊之數目VBL超過邏輯區塊之最大數目MBL時,邏輯反及層管理單元120b再次執行用於收集2i
個有效軌跡之2i
軌跡MS壓縮。當用於收集2i
個有效軌跡之2i
軌跡MS壓縮在有效邏輯區塊之數目VBL超過邏輯區塊之最大數目MBL之狀態中不可能時,邏輯反及層管理單元120b執行小於2i
之軌跡MS壓縮。
在小於2i
之軌跡MS壓縮中,邏輯反及層管理單元120b將作為壓縮標的之數目小於2i
個軌跡之軌跡複製至MS額外記錄IB 11ab以產生藉由無效的2i
個軌跡形成之無效邏輯區塊。邏輯反及層管理單元120b將所產生之無效邏輯區塊傳回至實體反及層管理單元120c以減少有效邏輯區塊之數目VBL。省略對用於小於2i
之軌跡MS壓縮的管理表之更新的解釋。
詳細解釋圖19中之步驟S340處所解釋的FS 12中之CIB處理。邏輯反及層管理單元120b自FS/IS邏輯區塊管理表42的有效叢集之數目42d之欄位獲取關於登記於FS/IS結構管理表65之FS輸入緩衝器管理表66的用於FSFB之欄位66a及用於FS額外記錄IB之欄位66b中之邏輯區塊ID的有效叢集之數目的資訊。邏輯反及層管理單元120b檢查所有邏輯頁被藉由叢集寫入之一或多個滿邏輯區塊是否存在於FSIB 12a之FSFB 12aa或FS額外記錄IB 12ab中(步驟S440)。當一或多個滿邏輯區塊存在於FSIB 12a中時,邏輯反及層管理單元120b執行下文所解釋之處理。當步驟S440處之判斷為否時,程序在此處結束。
當步驟S440處之判斷為是時,邏輯反及層管理單元120b參考FS/IS結構管理表65及FS/IS邏輯區塊管理表42的有效叢集之數目42d來檢查有效叢集之數目42d為0之無效邏輯區塊是否存在於FS單元12Q中。當無效邏輯區塊存在於FS單元12Q中時,邏輯反及層管理單元120b將無效邏輯區塊傳回至實體反及層管理單元120c(步驟S445)。
將經傳回之邏輯區塊之分錄自MS邏輯區塊管理表35及FS/IS邏輯區塊管理表42刪除。邏輯反及層管理單元120b將FSFB 12aa中之滿邏輯區塊移動至FS 12且將FS額外記錄IB 12ab中之滿邏輯區塊移動至FS 12(步驟S447)。具體言之,該移動處理為用於僅刪除登記於FS/IS結構管理表65之FS輸入緩衝器管理表66的用於FSFB之欄位66a及用於FS額外記錄IB之欄位66b中的相關邏輯區塊ID之處理。
邏輯反及層管理單元120b判斷具有FIFO結構之FS 12的邏輯區塊之數目是否超過FS 12所允許的邏輯區塊之預定最大數目BLfsmax(步驟S450)。具體言之,邏輯反及層管理單元120b判斷自FS FIFO管理表67計算的邏輯區塊之數目是否超過預先設定的邏輯區塊之最大數目BLfsmax。
作為此比較之結果,當所計算的邏輯區塊之數目超過邏輯區塊之最大數目BLfsmax時,邏輯反及層管理單元120b根據彼點之狀態而執行(例如)一次兩個邏輯區塊至MS 11之清理處理(步驟S460)及一次一個邏輯區塊至IS 13之清理處理(步驟S500)。當在步驟S450處之判斷中FS 12未滿時,邏輯反及層管理單元120b在此處結束處理,而不執行自FS 12至MSIB 11a之清理處理及自FS 12至ISIB 13a之清理處理。
在自FS 12至MSIB 11a之清理處理中,首先,邏輯反及層管理單元120b判斷是否存在自FS 12直接複製至MSIB11a而不移動通過IS單元13Q之邏輯區塊(步驟S455)。具體言之,邏輯反及層管理單元120b以逐個之次序檢查FS 12之FIFO之頂部的最舊邏輯區塊中之叢集且參考軌跡管理表30的FS叢集之數目30f之欄位搜尋在FS單元12Q中該等叢集所屬之軌跡具有多少個有效叢集。當軌跡中的有效叢集之數目等於或大於預定臨限值(例如,2k-i-1
)時,邏輯反及層管理單元120b將邏輯軌跡位址設定為決定清理至MSIB 11a之軌跡。
經由下文所解釋之途徑來執行該搜尋。
1.邏輯反及層管理單元120b自FS/IS結構管理表65之FS FIFO管理表67獲得FIFO之頂部的最舊之FS/IS區塊ID。
2.邏輯反及層管理單元120b自FS/IS邏輯區塊管理表42之對應於FS/IS區塊ID之分錄中的區塊內叢集表42c之欄位獲得至FS/IS內叢集管理表44之索引。
3.邏輯反及層管理單元120b自藉由在FS/IS內叢集管理表44中所獲得之索引指定的一邏輯區塊中之每一分錄獲得一至FS/IS管理表40之指標且跳躍至FS/IS管理表40之相關鏈接。
4.邏輯反及層管理單元120b獲得跳躍目的地處之鏈接所屬之相關邏輯軌跡位址。
5.邏輯反及層管理單元120b使用所獲得的邏輯軌跡位址檢查軌跡管理表30之相關分錄中的FS叢集之數目30f之欄位。
6.邏輯反及層管理單元120b重複上文所解釋之3至5。
針對(例如)一次兩個邏輯區塊執行自FS 12至MS 11之清理(區塊複製)。換言之,邏輯反及層管理單元120b針對兩個邏輯區塊收集具有等於或大於預定臨限值(例如,2k-i-1
)之軌跡內有效叢集之數目的軌跡且將針對兩個邏輯區塊所收集之軌跡清理至MSIB 11a之MSFB 11aa(步驟S460)。在該清理中,關於經清理之軌跡中不存在於FS 12中之叢集,邏輯反及層管理單元120b執行用於讀出來自WC 21、IS單元13Q及MS 11之叢集且將該等叢集合併之被動合併。
然而,當對於兩個邏輯區塊而言決定清理至MSIB 11a之軌跡不存在時,邏輯反及層管理單元120b將一邏輯區塊清理至MSIB 11a之MSFB 11aa(區塊複製)且另外以軌跡單位將不足一邏輯區塊之軌跡記錄於MS額外記錄IB 11ab中(軌跡複製)(步驟S460)。類似地,當對於一邏輯區塊而言決定清理至MSIB 11a之軌跡不存在時,邏輯反及層管理單元120b另外以軌跡單位將不足一邏輯區塊之軌跡記錄於MS額外記錄IB 11ab中(軌跡複製)(步驟S460)。此後,當FIFO結構之FS 12之頂邏輯區塊中無有效叢集留下時,邏輯反及層管理單元120b將頂邏輯區塊作為無效邏輯區塊傳回至實體反及層管理單元120c。
當以此方式執行自FS 12至MSIB 11a之清理時,再次執行MS單元11Q中之CIB處理(步驟S480)。步驟S480處的MS單元11Q中之CIB處理與MS單元11Q中之第一次之CIB處理相同(步驟S400至S420)。因此,省略冗餘解釋。在MS單元11Q中之CIB處理之後,邏輯反及層管理單元120b以與上文所解釋之方式相同之方式檢查是否滿足自FS 12至MSIB 11a之清理之條件(步驟S455)。當滿足清理條件時,再次執行上文所解釋的每兩個邏輯區塊自FS 12至MSIB 11a之清理及MS 11中之CIB處理。重複該處理,直至在步驟S455處獲得判斷否為止。
當步驟S455處之判斷為否時,邏輯反及層管理單元120b判斷是否滿足自FS 12至ISIB 13a之清理之條件(步驟S490)。具體言之,在自FS 12至MSIB 11a之清理處理中,當有效叢集留在具有FIFO結構之處於滿狀態之FS 12的經檢查之頂邏輯區塊中時,邏輯反及層管理單元120b執行自FS 12至ISIB 13a之清理(假定:滿足步驟S490處的自FS 12至IS 13之清理之條件)。
當在步驟S490處滿足條件時,邏輯反及層管理單元120b將僅包括經清理至MSIB 11a之軌跡中所不包括的叢集之頂邏輯區塊移動至ISIB 13a(區塊移動)(步驟S500)。在步驟S500處,邏輯反及層管理單元120b執行(例如)一邏輯區塊之清理。視狀態而定,此後,在執行步驟S520至S585處之程序之後,邏輯反及層管理單元120b可根據步驟S590處之判斷而再次執行步驟S500處的自FS 12至ISIB 13a之清理。
再次在步驟S500處執行清理之狀態為以下之狀態:其中,(例如)當具有複數個滿邏輯區塊之緩衝器(FSFB 12aa或FS額外記錄IB 12ab)存在於FSIB 12a中時,若具有FIFO結構之FS 12為滿的,則根據滿區塊自FSIB 12a至FS 12之移動而執行複數個邏輯區塊自FS 12至MSIB 11a或ISIB 13a之清理。在此種條件下,很可能執行複數個邏輯區塊自FS 12至ISIB 13a之清理。
除參看圖30之外,參看圖31中所展示之流程圖來解釋在滿足步驟S490處之條件時在IS 13中所執行的清理處理及壓縮處理之細節。首先,以與上文所解釋之方式相同之方式,邏輯反及層管理單元120b檢查無效邏輯區塊是否存在於IS單元13Q中,且當無效邏輯區塊存在於IS單元13Q中時,將無效邏輯區塊傳回至實體反及層管理單元120c(步驟S520)。在MS邏輯區塊管理表35及FS/IS邏輯區塊管理表42的對應於經傳回之邏輯區塊之分錄的分錄中,將有效旗標35e及42f設定為無效。
邏輯反及層管理單元120b判斷具有FIFO結構之IS 13的邏輯區塊之數目是否超過IS 13所允許的邏輯區塊之預定最大數目BLismax(步驟S530)。具體言之,邏輯反及層管理單元120b判斷自IS FIFO管理表69計算的邏輯區塊之數目是否超過預先設定的邏輯區塊之最大數目BLismax。
作為該比較之結果,當所計算的邏輯區塊之數目超過邏輯區塊之最大數目BLismax時,邏輯反及層管理單元120b將(例如)一次兩個邏輯區塊之軌跡自IS 13清理至MSIB 11a之MSFB 11aa(步驟S540)。當在步驟S530處之判斷中IS 13未滿時,邏輯反及層管理單元120b將ISIB 13a中之滿邏輯區塊移動至IS 13b而不執行至MSIB 11a之清理處理(步驟S585)。
在步驟S540處之清理中,邏輯反及層管理單元120b使用圖12中所展示之軌跡管理表30或其類似者執行圖31中所展示的用於選擇待清理之軌跡之處理。在圖31中,邏輯反及層管理單元120b開始選擇處理(循環搜尋處理;在下文中簡單地稱作搜尋處理)(步驟S700)。邏輯反及層管理單元120b自作為軌跡管理表30之索引的邏輯軌跡位址30a之下一個邏輯軌跡位址開始搜尋(步驟S710),在最後搜尋中在步驟S740處將下一個邏輯軌跡位址儲存為最終所搜尋之軌跡。
當搜尋為第一次(第一循環)之搜尋時,邏輯反及層管理單元120b自軌跡管理表30之第一分錄開始搜尋(步驟S710)。當步驟S740處所儲存的所搜尋之軌跡為軌跡管理表30之最終分錄(圖12中之軌跡n)時,在步驟S710處之下一個軌跡搜尋中,邏輯反及層管理單元120b返回至頂分錄(圖12中之軌跡0)。
在此搜尋中,參考軌跡管理表30之分錄中的IS叢集之數目30g之欄位(相關邏輯軌跡位址中的有效叢集之數目),當有效叢集儲存於IS 13之分錄中時,邏輯反及層管理單元120b將該分錄之邏輯軌跡位址登記於未展示的新近所搜尋之軌跡清單中(步驟S720)。邏輯反及層管理單元120b比較登記於新近所搜尋之軌跡清單中的軌跡之數目與預定臨限值L。當所登記之軌跡之數目小於臨限值L時,邏輯反及層管理單元120b使程序移至步驟S710且以與上文所解釋之方式相同之方式檢查軌跡管理表30之下一分錄。
藉由重複該處理,邏輯反及層管理單元120b將關於臨限值L之邏輯軌跡位址登記於新近所搜尋之軌跡清單中(步驟S730處之「是」)。邏輯反及層管理單元120b將軌跡管理表30的對應於最後登記於新近所搜尋之軌跡清單中之邏輯軌跡位址的分錄(索引)儲存為所搜尋之最後軌跡且結束當前循環中之搜尋(步驟S740)。
邏輯反及層管理單元120b判斷是否存在未選定之軌跡清單(在該清單中列出上次未選定之邏輯軌跡位址(未圖示))(步驟S750)。在第一循環之狀況下,因為不存在未選定之軌跡清單,所以邏輯反及層管理單元120b基於兩個清單(亦即,新近搜尋之軌跡清單與新近添加之區塊內軌跡清單(未圖示))而選擇2i+1
個邏輯軌跡(步驟S760)。新近添加之區塊內軌跡清單為關於在圖30中之步驟S500處經自FS 12清理至IS單元13Q之邏輯區塊(輸入於FS/IS結構管理表65之IS輸入緩衝器管理表68中)中所包括的軌跡之清單。
在第一循環中,邏輯反及層管理單元120b使用該兩個清單選擇2i+1
個軌跡作為清理候選者。在選擇中,如上文所解釋,使用藉由使用軌跡中之有效叢集之數目及有效叢集係數而獲得的選擇參考(計分值)S。
計分值S=軌跡中之有效叢集之數目×有效叢集係數
有效叢集係數為根據軌跡是否存在於無效軌跡存在於MS單元11Q中之邏輯區塊中而進行加權的數字。軌跡存在時之數字比軌跡不存在時之數字大。
可藉由查看軌跡管理表30的IS叢集之數目30g之欄位而獲取有效叢集之數目。可藉由查看藉由軌跡管理指標35b之欄位而鏈接至軌跡管理表30之MS邏輯區塊管理表35的有效軌跡之數目35c之欄位而獲取有效叢集係數。
邏輯反及層管理單元120b自新近添加之區塊內軌跡清單中所包括的複數個軌跡中選擇具有較大計分值S之M(預定設定值)個軌跡。邏輯反及層管理單元120b將藉由先前搜尋而登記於新近搜尋之軌跡清單中之L個軌跡添加至選定之M個軌跡且自L+M個軌跡中選擇具有較高計分值S之2i+1
個軌跡作為待清理至MS 11之軌跡。邏輯反及層管理單元120b將L+M個軌跡當中除選定之2i+1
個軌跡之外的軌跡登記於未選定之軌跡清單中。
在第二或後續循環中,邏輯反及層管理單元120b基於三個清單(亦即,未選定之軌跡清單、新近搜尋之軌跡清單,及新近添加之區塊內軌跡清單)而選擇2i+1
個軌跡(步驟S770)。根據稍後所解釋的圖30中之步驟S570處之判斷判定是否應執行第二次或後續次之清理。在使用三個清單之選擇處理中,邏輯反及層管理單元120b自未選定之軌跡清單中所包括之複數個軌跡中選擇具有較高計分值S之N(預定設定值)個軌跡,自新近添加之區塊內軌跡清單中所包括之複數個軌跡中選擇具有較高計分值S之M(預定設定值)個軌跡,將當前第二循環或後續之循環中所獲得的登記於新近所搜尋之軌跡清單中之L個軌跡添加至N+M個軌跡,且自L+M+N個軌跡中選擇具有較高計分值S之2i+1
個軌跡作為待清理至MS 11之軌跡。邏輯反及層管理單元120b將L+M+N個邏輯軌跡當中除選定之2i+1
個軌跡之外的軌跡登記於用於下一個循環中的未選定之軌跡清單中。
返回參看圖30中之步驟S540,當如上文所解釋選擇針對兩個邏輯區塊之軌跡之清理候選者時,邏輯反及層管理單元120b將針對兩個邏輯區塊之選定之軌跡(亦即,2i+1
個軌跡)清理至MSIB 11a之MSFB 11aa(步驟S540)。在清理中,關於待清理之軌跡當中不存在於IS單元13Q中之叢集,執行用於讀出來自WC 21、FS單元12及MS 11之叢集且將該等叢集合併之被動合併。在上述描述中,根據基於有效叢集之數目及指示易通過之區塊是否存在於MS中之係數的計分值S而選擇待清理之軌跡。然而,可僅根據有效叢集之數目來選擇待清理之軌跡。
當以此方式執行自IS 13至MSIB 11a之清理時,再次執行MS 11中之CIB處理(步驟S560)。步驟S560處的MS 11中之CIB處理與MS 11中之第一次之CIB處理相同(步驟S400至S420)。因此,省略冗餘解釋。
邏輯反及層管理單元120b判斷是否應再次執行自IS 13至MSIB 11a之清理(步驟S570)。邏輯反及層管理單元120b使用MS邏輯區塊管理表35之欄位及FS/IS邏輯區塊管理表42的有效叢集之數目42d及其類似者對步驟S540處之清理之後的IS 13中之邏輯區塊以自具有最小數目之有效叢集之邏輯區塊起的次序進行排序。當具有最小數目之有效叢集之兩個邏輯區塊的有效叢集之總數目等於或大於係預定設定值之2k
(針對一邏輯區塊)時,邏輯反及層管理單元120b判斷出滿足自IS 13至MSIB 11a之清理之條件(步驟S570)。
當滿足自IS 13至MSIB 11a之清理之條件時,邏輯反及層管理單元120b使程序移至步驟S540且執行圖31中之步驟S700至S750及S770以再次執行上文所解釋的針對兩個邏輯區塊之清理處理。只要步驟S570處之判斷為是,邏輯反及層管理單元120b即重複地執行針對兩個邏輯區塊之自IS 13至MSIB 11a之清理處理及MS 11中之CIB處理。當步驟S570處之判斷為否時,邏輯反及層管理單元120b執行IS 13中之壓縮處理(步驟S580)。
在IS壓縮處理中,邏輯反及層管理單元120b使用MS邏輯區塊管理表35之欄位及FS/IS邏輯區塊管理表42的有效叢集之數目42d及其類似者以自IS單元13Q中具有最小數目之有效叢集之邏輯區塊起的次序收集一邏輯區塊之叢集(亦即,2k
個叢集)且將該2k
個叢集複製至IS壓縮緩衝器13c。當此複製處理結束時,邏輯反及層管理單元120b將壓縮源(複製源)處之邏輯區塊當中不具有有效叢集之邏輯區塊作為無效邏輯區塊傳回至實體反及層管理單元120c。邏輯反及層管理單元120b藉由壓縮處理而將藉由由有效叢集填滿之邏輯區塊組態之IS壓縮緩衝器13c移動至IS 13。
在此壓縮之後,將ISIB 13a中之滿邏輯區塊移動至IS 13(步驟S585)。具體言之,此移動處理為用於僅刪除登記於FS/IS結構管理表65之IS輸入緩衝器管理表68的用於ISIB之欄位中之相關邏輯區塊ID的處理。
此後,邏輯反及層管理單元120b判斷是否滿足自FS 12至ISIB 13a之清理之條件(步驟S590)。當滿足自FS 12至ISIB 13a之清理之條件時,邏輯反及層管理單元120b使程序移至步驟S500且再次重複該程序。在IS壓縮處理結束之後,當判斷出不滿足自FS 12至ISIB 13a之清理之條件時,邏輯反及層管理單元120b結束當前寫入處理。以上內容為寫入處理之細節。
如上文所解釋,在此實施例中,邏輯反及層管理單元120b基於正向查找軌跡管理表30及FS/IS管理表40及反向查找MS邏輯區塊管理表35、FS/IS邏輯區塊管理表42及FS/IS內叢集管理表44而執行針對作為反及記憶體10中之組件之MS單元11Q、FS單元12Q及IS單元13Q的讀出處理及寫入處理(WCF+CIB)、針對MS單元11Q之以軌跡單位之管理、針對FS單元12Q及IS單元13Q之以叢集單位之管理及其類似者。
圖12中所展示之正向查找軌跡管理表30為主要用於使用藉由以軌跡單位對準以區段單位對準之LBA而獲得的邏輯軌跡位址30a作為索引來管理MS 11上之邏輯資料位置(邏輯區塊ID 30c及邏輯區塊內軌跡位置30d)的表。當以叢集單位將資料儲存於FS單元12Q及IS單元13Q中時,亦儲存作為至FS/IS管理表40之分錄之鏈接資訊的指標(在該等分錄中登記關於該資料之基本資訊及詳細資訊)(參見A1)。以邏輯軌跡位址30a經設定為索引而儲存對於寫入中之清理處理及壓縮處理為必要之資訊(諸如,FS叢集之數目30f及IS叢集之數目30g)。
藉由以叢集單位對準LBA而獲得的邏輯叢集位址用於圖13中所展示之正向查找FS/IS管理表40。FS/IS管理表40以針對邏輯軌跡位址中之每一者獨立之鏈接清單格式形成。針對邏輯軌跡位址中之每一者的鏈接清單中之每一者為用於以屬於邏輯軌跡位址之邏輯叢集位址單位管理FS單元12Q或IS單元13Q上之邏輯資料位置(邏輯區塊ID 40b+邏輯區塊內叢集位置40c)的表。鏈接清單包括作為至FS/IS邏輯區塊管理表42之索引之鏈接資訊的FS/IS區塊ID40d之欄位(參見A5)。
圖14中所展示之反向查找MS邏輯區塊管理表35以邏輯區塊ID經設定為索引而儲存均等於邏輯區塊中之軌跡之數目的軌跡管理指標35b。反向查找MS邏輯區塊管理表35為至指示哪些軌跡位址儲存於邏輯區塊ID 35a中的軌跡管理表30之索引之指標(參見A2)。此使得有可能管理屬於邏輯區塊ID 35a中之每一者之邏輯軌跡位址。另外,MS邏輯區塊管理表35以邏輯區塊ID 35a經設定為索引而儲存對於寫入中之清理處理、壓縮處理及其類似者為必要之資訊,亦即,有效軌跡之數目35c、可寫入之頂軌跡35d、有效旗標35e及其類似者。
圖15中所展示之反向查找FS/IS邏輯區塊管理表42為用於以FS/IS區塊ID 42a經設定為索引而管理指示哪個邏輯叢集位址儲存於用作FS單元12Q或IS單元13Q之邏輯區塊中之資訊的表。因此,FS/IS邏輯區塊管理表42具有作為至FS/IS內叢集管理表44之指標(參見A3)的區塊內叢集表42c之欄位。FS/IS邏輯區塊管理表42以FS/IS區塊ID 42a經設定為索引而儲存對於寫入中之清理處理、壓縮處理及其類似者為必要之資訊,亦即,有效叢集之數目42d、可寫入之頂頁42e、有效旗標42f及其類似者。
圖16中所展示之反向查找FS/IS內叢集管理表44為用於以與表上之分錄位置相關聯的用作FS單元12Q及IS單元13Q之一邏輯區塊管理叢集位置(藉由以叢集單位劃分反及記憶體10而獲得的儲存位置)中之每一者的表。在分錄44a中之每一者之內容中,登記作為至包括藉由FS/IS管理表40管理之邏輯叢集位址之清單(鏈接清單中之一清單)的鏈接資訊之指標(參見A4),以使得有可能識別哪些邏輯叢集位址與叢集位置相關聯。
以此方式,在針對反及記憶體10之以軌跡單位進行之管理中,將作為軌跡管理表30之索引之邏輯軌跡位址30a與MS邏輯區塊管理表35之軌跡管理指標35b之欄位鏈接以形成作為正向查找表之軌跡管理表30且形成作為反向查找表之MS邏輯區塊管理表35。因此,在寫入處理中,有可能增加在執行諸如清理處理、壓縮處理及表更新之各種種類之處理中的針對該等管理表之搜尋處理的速度。
舉例而言,在MS壓縮處理中,軌跡之儲存位置改變。有必要根據儲存位置之改變而改變MS邏輯區塊管理表35及軌跡管理表30。換言之,根據軌跡之儲存位置之改變,有必要改變MS邏輯區塊管理表35之對應於儲存位置之索引的欄位(軌跡管理指標35b、有效軌跡之數目35c、可寫入之頂軌跡位置35d等)中之每一者且,此後,改變所需之資訊(諸如,軌跡管理表30中之邏輯區塊ID 30c及邏輯區塊內軌跡位置30d)。
在此種情形下,在此實施例中,並非將邏輯軌跡位址本身登記於MS邏輯區塊管理表35之軌跡管理指標35b之欄位中,而是登記至軌跡管理表30之索引之指標。因此,有可能跳躍至軌跡管理表30之索引之分錄而不執行搜尋且改變該等分錄中的所需之資訊。
另一方面,當將相關邏輯軌跡位址本身登記於軌跡管理指標35b之欄位中時,在執行用於改變MS邏輯區塊管理表35之分錄中之每一者的工作之後,當逐個地追蹤軌跡管理表30之索引時必須執行用於搜尋相關邏輯軌跡位址30a之處理。在該搜尋之後,改變相關邏輯叢集位址40a之分錄中的所需之資訊。因此,與此實施例相比較,用於更新管理表之工作之速度大體上減小。
在針對反及記憶體10之以叢集單位進行之管理中,將FS/IS邏輯區塊管理表42之區塊內叢集表42c鏈接至FS/IS內叢集管理表44且將FS/IS內叢集管理表44之分錄44a與FS/IS管理表40鏈接以形成作為正向查找表之FS/IS內叢集管理表44且形成作為反向查找表之FS/IS邏輯區塊管理表42及FS/IS內叢集管理表44。因此,在寫入處理中,有可能增加在執行諸如清理處理、壓縮處理及表更新之各種種類之處理中的針對該等管理表之搜尋處理的速度。
舉例而言,當執行IS壓縮處理時,叢集之儲存位置改變。有必要根據儲存位置之改變而改變FS/IS邏輯區塊管理表42、區塊內叢集表42c及FS/IS內叢集管理表44。換言之,有必要根據叢集之儲存位置之改變而改變FS/IS邏輯區塊管理表42之對應於儲存位置之索引的欄位(邏輯區塊ID 42b、區塊內叢集表42c、有效叢集之數目42d、可寫入之頂頁42e等)中之每一者,改變FS/IS內叢集管理表44之分錄中之每一者中的所登記之資料,且,此後,進一步改變所需之資訊(諸如,FS/IS管理表40之相關邏輯叢集位址中的邏輯區塊ID 40b及邏輯區塊內叢集位置40c)。
在此種情形下,在此實施例中,並非將邏輯叢集位址登記於FS/IS內叢集管理表44之分錄中之每一者中,而是登記至包括藉由FS/IS管理表40管理之相關邏輯叢集位址之清單的指標44a(參見A4)。因此,有可能自FS/IS內叢集管理表44之相關分錄跳躍至包括FS/IS管理表40之邏輯叢集位址之清單且改變該清單中的所需之資訊。另一方面,當將相關邏輯叢集位址本身登記於FS/IS內叢集管理表44之分錄中之每一者中時,在執行用於改變FS/IS內管理表44之分錄中之每一者的工作之後,當逐個地追蹤FS/IS管理表40中之鏈接清單時必須執行用於搜尋相關邏輯叢集位址40a之處理。在該搜尋之後,改變相關邏輯叢集位址40a中的所需之資訊。因此,與此實施例相比較,用於更新管理表之工作之速度大體上減小。
在此實施例中,軌跡管理表30具有叢集表指標30e,其為作為至FS/IS管理表40之頂分錄之鏈接資訊的指標。FS/IS管理表40為針對邏輯軌跡位址中之每一者獨立之鏈接清單。此使得有可能減少對於管理表所必要之記憶體量同時增加搜尋處理之速度。舉例而言,若用於執行叢集管理之FS/IS管理表40為用以搜尋存在於FS單元12Q或IS單元13Q上之叢集之正常表(包括當前藉由叢集管理而管理之叢集位址及儲存位置)而非鏈接清單,則在最差狀況下,可能必須搜尋遍及整個表且搜尋可能需要極長之時間。為了增加搜尋之速度,亦可想到準備具有對應於LBA區之所有叢集位址之分錄的表。然而,管理表之大小極大。另一方面,在此實施例中,藉由邏輯軌跡位址編索引之軌跡管理表30具有至FS/IS管理表40之頂分錄之指標,FS/IS管理表40為針對邏輯軌跡位址中之每一者獨立之鏈接清單。因此,有可能節省管理表所需之記憶體量同時增加搜尋處理之速度。
以此方式,在此實施例中,分別以軌跡單位及叢集單位來提供正向查找表及反向查找表,且將此等表鏈接。因此,有可能增加針對管理表之搜尋處理之速度。另外,在此實施例中,WC軌跡管理表24及FS/IS管理表40包括鏈接清單。因此,表更新工作得以減少且有可能減小管理表之容量。
換言之,當前實施例提供可增加針對管理表之搜尋處理之速度且減少建立管理表所需之記憶體量的記憶體系統。
本發明不限於上文所描述之該等實施例。因此,可在不偏離本發明之範疇之情況下進行各種修改。
此外,上文所描述之實施例包括關於發明步驟之各種組成部分。亦即,可藉由分布或整合任何任意所揭示之組成部分而進行本發明之各種修改。
舉例而言,可藉由自該等實施例中所揭示之所有組成部分當中省略任何任意組成部分而進行本發明之各種修改,只要可解決待由本發明解決之問題且可獲得待藉由本發明獲得之優點即可。
此外,在上述實施例中解釋:乘以等於或大於二之正整數的叢集大小等於邏輯頁大小。然而,本發明並不因此而受限制。
舉例而言,叢集大小可與邏輯頁大小相同,或可為藉由組合複數個邏輯頁而藉由使邏輯頁大小乘以等於或大於二之正整數所獲得的大小。
此外,叢集大小可與用於在諸如個人電腦之主機設備1上執行之OS(作業系統)的檔案系統之管理單位相同。
此外,在上述實施例中解釋:乘以等於或大於二之正整數的軌跡大小等於邏輯區塊大小。然而,本發明並不因此而受限制。
舉例而言,軌跡大小可與邏輯區塊大小相同,或可為藉由組合複數個邏輯區塊而藉由使邏輯區塊大小乘以等於或大於二之正整數所獲得的大小。
若軌跡大小等於或大於邏輯區塊大小,則MS壓縮處理係不必要的。因此,可省略TFS 11b。
圖32展示個人電腦之實例的透視圖。個人電腦1200包括主體1201及顯示單元1202。顯示單元1202包括顯示器外殼1203及容納於顯示器外殼1203中之顯示裝置1204。
主體1201包括底盤1205、鍵盤1206,及作為指標裝置之觸控板1207。底盤1205包括主電路板、ODD單元(光碟裝置)、卡槽,及第一實施例中所描述之SSD 1100。
提供卡槽以鄰近於底盤1205之周邊壁。周邊壁具有面向卡槽之開口1208。使用者可自底盤1205之外部經由開口1208將額外裝置插入卡槽中及將額外裝置自卡槽移除。
SSD 1100可以安裝於個人電腦1200中之狀態來使用以代替先前技術之HDD,或可以插入個人電腦1200之卡槽中之狀態來用作額外裝置。
圖33展示個人電腦中之系統架構之實例的圖。個人電腦1200包含CPU 1301、北橋1302、主記憶體1303、視訊控制器1304、音訊控制器1305、南橋1309、BIOS-ROM 1310、第一實施例中所描述之SSD 1100、ODD單元1311、嵌入式控制器/鍵盤控制器(EC/KBC)IC 1312,及網路控制器1313。
CPU 1301為用於控制個人電腦1200之操作之處理器,且執行自SSD 1100載入至主記憶體1303之作業系統(OS)。當ODD單元1311執行對光碟之讀取程序及寫入程序中之一者時,CPU 1301執行此等程序。CPU 1301執行儲存於BIOS-ROM 1310中之系統BIOS(基本輸入輸出系統)。系統BIOS為用於控制個人電腦1200之硬體之程式。
北橋1302為將CPU 1301之局部匯流排連接至南橋1309之橋接裝置。北橋1302具有用於控制對主記憶體1303之存取之記憶體控制器。北橋1302具有經由AGP(加速圖形埠)匯流排執行視訊控制器1304與音訊控制器1305之間的通信之功能。
主記憶體1303暫時儲存程式或資料,且充當CPU 1301之工作區。主記憶體1303包含(例如)DRAM。視訊控制器1304為用於控制用於攜帶型電腦1200之顯示監視器(LCD)1316之顯示單元的視訊再現控制器。音訊控制器1305為用於控制攜帶型電腦1200之揚聲器之音訊再現控制器。
南橋1309控制連接至LPC(低插腳計數)匯流排之裝置且控制連接至PCI(周邊組件互連)匯流排之裝置。南橋1309經由ATA介面控制為儲存軟體及資料之記憶體裝置的SSD 1100。
個人電腦1200以區段單位執行對SSD 1100之存取。舉例而言,經由ATA介面輸入寫入命令、讀取命令及快取快閃記憶體命令(cache flash command)。南橋1309具有控制BIOS-ROM 1310及ODD單元1311之功能。
EC/KBC 1312為整合於用於控制電源之嵌入式控制器及用於控制鍵盤(KB)1206及觸控板1207之鍵盤控制器上的一碼片微電腦。EC/KBC 1312具有基於使用者對電源按鈕之操作而設定個人電腦1200之電源之接通/斷開的功能。網路控制器1313為(例如)執行至網路(例如,網際網路)之通信之通信裝置。
儘管上述實施例中之記憶體系統作為SSD而被包含,但其可作為(例如)藉由SDTM
卡代表之記憶卡而被包含。此外,記憶體系統可不僅適用於個人電腦而亦適用於諸如蜂巢式電話、PDA(個人數位助理)、數位靜態相機、數位視訊相機及電視機之各種電子裝置。
熟習此項技術者將容易想到額外優點及修改。因此,較廣態樣中之本發明不限於本文中所展示並描述之特定細節及代表性實施例。因此,可在不偏離如藉由附加申請專利範圍及其均等物界定之一般發明概念之精神或範疇的情況下進行各種修改。
1...主機設備
2...ATA介面(ATA I/F)
3...通信介面/RS232C I/F
4...驅動控制電路
5...電源電路
6...LED
7...溫度感測器
8...熔絲
10...反及型快閃記憶體/反及記憶體
10a~10d...操作元件
11...主儲存區(MS:主儲存器)
11a...MS輸入緩衝器(MSIB)
11aa...MS滿區塊輸入緩衝器(MSFB)
11ab...額外記錄輸入緩衝器(MS額外記錄IB)
11b...軌跡前級儲存區(TFS)/軌跡前級緩衝器(TFS)
11c...MS壓縮緩衝器
11Q...MS單元
12...前級儲存區(FS:前儲存器)
12a...FS輸入緩衝器(FSIB)
12aa...FS滿區塊緩衝器(FSFB)
12ab...FS額外記錄緩衝器(FS額外記錄IB)
12Q...FS單元
13...中間級儲存區(IS:中間儲存器)
13a...IS輸入緩衝器(ISIB)
13c...IS壓縮緩衝器
13Q...IS單元
20...DRAM
21...寫入快取記憶體(WC)
22...讀取快取記憶體(RC)
23...RC叢集管理表
23a...狀態旗標
23b...邏輯軌跡位址
24...WC軌跡管理表
24a...邏輯軌跡位址
24b...WC中之有效叢集數目/WC叢集之數目
24c...路-線位元映射
24d...下一個指標
25...WC叢集管理表
25a...狀態旗標
25b...區段位置位元映射
25c...邏輯軌跡位址
30...軌跡管理表/正向查找軌跡管理表
30a...邏輯軌跡位址
30b...叢集位元映射
30c...邏輯區塊ID
30d...邏輯區塊內軌跡位置/邏輯區塊內位置
30e...叢集表指標
30f...FS叢集之數目
30g...IS叢集之數目
35...MS邏輯區塊管理表/反向查找MS邏輯區塊管理表
35a...邏輯區塊ID
35b...軌跡管理指標
35c...有效軌跡之數目
35d...可寫入之頂軌跡/可寫入之頂軌跡位置
35e...有效旗標
40...FS/IS管理表
40a...邏輯叢集位址
40b...邏輯區塊ID
40c...邏輯區塊內叢集位置
40d...FS/IS區塊ID
40e...下一個指標
42...FS/IS邏輯區塊管理表/反向查找FS/IS邏輯區塊管理表
42a...FS/IS區塊ID
42b...邏輯區塊ID
42c...區塊內叢集表
42d...有效叢集之數目
42e...可寫入之頂頁/可寫入之頂頁位置
42f...有效旗標
44...FS/IS內叢集管理表/反向查找FS/IS內叢集管理表
44a...分錄
50...邏輯至實體轉譯表/邏輯至實體表
50a...邏輯區塊ID
50b...實體區塊位址/實體區塊ID
50c...抹除之次數
50d...讀出之次數
50e...抹除時間
60...MS結構管理表
61...MS緩衝器管理表
61a~61c...固定欄位
62...按有效軌跡之數目之邏輯區塊ID清單
63...區/固定欄位
64...區/固定欄位
65...FS/IS結構管理表
66...FS輸入緩衝器管理表
66a...固定欄位
66b...固定欄位
67...FS FIFO管理表
68...IS輸入緩衝器管理表
69...IS FIFO管理表
100...SSD(固態驅動器)
101...資料存取匯流排
102...第一電路控制匯流排
103...第二電路控制匯流排
104...處理器
105...啟動ROM
106...ROM控制器
107...時脈控制器
108...I2
C電路
109...並行IO(PIO)電路
110...串列IO(SIO)電路
111...ATA介面控制器(ATA控制器)
112...第一ECC(錯誤檢查及校正)電路
113...反及控制器
114...DRAM控制器
115...SRAM
116...SRAM控制器
117...反及I/F
118...第二ECC電路
119...DMA控制器
120...資料管理單元
120a...DRAM層管理單元
120b...邏輯反及層管理單元
120c...實體反及層管理單元
121...ATA命令處理單元
122...安全管理單元
123...啟動載入器
124...初始化管理單元
125...除錯支援單元
200...用於除錯及製造檢驗之設備/壞區塊管理表(BB管理表)
200a...實體區塊ID
210...保留區塊管理表(RB區塊管理表)/RB管理表
220...空閒區塊管理表(FB管理表)
220a...傳回FIFO清單
220b...分配清單
230...作用中區塊管理表(AB管理表)
1100...SSD
1200...個人電腦/攜帶型電腦
1201...主體
1202...顯示單元
1203...顯示器外殼
1204...顯示裝置
1205...底盤
1206...鍵盤
1207...觸控板
1208...開口
1301...CPU
1302...北橋
1303...主記憶體
1304...視訊控制器
1305...音訊控制器
1309...南橋
1310...BIOS-ROM
1311...ODD單元
1312...嵌入式控制器/鍵盤控制器(EC/KBC)IC
1313...網路控制器
1316...顯示監視器(LCD)
BL0~BLp...位元線
BL1...斷線
BL3...斷線
L0...邏輯區塊
L1...邏輯區塊/邏輯區塊ID
L2...邏輯區塊ID
L3...邏輯區塊
MT...記憶體單元電晶體
SGD...選擇閘極線
SGS...選擇閘極線
SL...源極線
ST1...選擇電晶體
ST2...選擇電晶體
WL0~WLq...字線
圖1為SSD之組態實例的方塊圖;
圖2(a)、圖2(b)為包括於反及記憶體碼片中之一區塊之組態實例及四進制資料儲存系統中之臨限值分布的圖;
圖3為驅動控制電路之硬體內部組態實例的方塊圖;
圖4為處理器之功能組態實例的方塊圖;
圖5為形成於反及記憶體及DRAM中之功能組態的方塊圖;
圖6為與自WC至反及記憶體之寫入處理有關的詳細功能方塊圖;
圖7為LBA邏輯位址之圖;
圖8為資料管理單元中之管理表之組態實例的圖;
圖9為RC叢集管理表之實例的圖;
圖10為WC叢集管理表之實例的圖;
圖11為WC軌跡管理表之實例的圖;
圖12為軌跡管理表之實例的圖;
圖13為FS/IS管理表之實例的圖;
圖14為MS邏輯區塊管理表之實例的圖;
圖15為FS/IS邏輯區塊管理表之實例的圖;
圖16為FS/IS內叢集管理表之實例的圖;
圖17為邏輯至實體轉譯表之實例的圖;
圖18為讀取處理之操作實例的流程圖;
圖19為寫入處理之操作實例的流程圖;
圖20為組件當中的資料之流動中之輸入與輸出的組合及流動之原因的圖;
圖21為與自WC至反及記憶體之寫入處理有關的較為詳細之功能方塊圖;
圖22為資料管理單元中之管理表之另一組態實例的圖;
圖23為並行之操作元件、平面及通道當中之關係的圖之圖;
圖24為邏輯至實體轉譯表之另一實例的圖;
圖25為BB管理表之實例的圖;
圖26為FB管理表之內部組態實例的圖;
圖27為反及記憶體之邏輯區塊與實體區塊之間的對應關係之圖;
圖28為MS結構管理表之實例的圖;
圖29為FS/IS結構管理表之實例的圖;
圖30為寫入處理之操作實例的詳細流程圖;
圖31為IS之清理操作之實例的流程圖;
圖32為個人電腦之實例的透視圖;及
圖33為個人電腦中之系統架構之實例的圖。
21...寫入快取記憶體(WC)
22...讀取快取記憶體(RC)
23...RC叢集管理表
24...WC軌跡管理表
25...WC叢集管理表
30...軌跡管理表/正向查找軌跡管理表
35...MS邏輯區塊管理表/反向查找MS邏輯區塊管理表
40...FS/IS管理表
42...FS/IS邏輯區塊管理表/反向查找FS/IS邏輯區塊管理表
44...FS/IS內叢集管理表/反向查找FS/IS內叢集管理表
50...邏輯至實體轉譯表/邏輯至實體表
120a...DRAM層管理單元
120b...邏輯反及層管理單元
120c...實體反及層管理單元
Claims (20)
- 一種記憶體系統,其包含:一第一儲存區,其作為一快取記憶體而被包括於一揮發性半導體記憶體中;第二及第三儲存區,其被包括於非揮發性半導體記憶體中,在該第二及該第三儲存區中,以頁單位執行資料讀取及寫入,且以為該頁單位之兩倍或兩倍以上之自然數倍大的實體區塊單位執行資料抹除;及一控制器,其以與該等實體區塊中之一個或多個相關聯之邏輯區塊單位將該等非揮發性半導體記憶體之儲存區分配給該第二及該第三儲存區,其中該控制器執行:用於將自該第一儲存區清理之區段單位之複數個資料寫入至該第二儲存區作為一第一管理單位中之資料的第一處理;用於將自該第一儲存區清理之區段單位之複數個資料寫入至該第三儲存區作為一為該第一管理單位之兩倍或兩倍以上之一自然數倍大的第二管理單位中之資料的第二處理;用於將儲存於該第二儲存區中之該等資料清理至該第三儲存區作為該第二管理單位中之資料的第三處理;用於選擇儲存於該第二儲存區中之該第一管理單位中之複數個有效資料且將該等有效資料重寫於一新邏輯區塊中的第四處理;及用於選擇儲存於該第三儲存區中之該第二管理單位中之複數個有效資料且將該等有效資料重寫於一新邏輯區塊中的第五處理,該控制器包括:一正向查找第一管理表,其用於自該第二管理單位中之邏輯位址擷取第一管理資訊,該第一管理資訊包括:包括指示對應於該第二管理單位中之該等邏輯位址的該第二管理單位中之該等資料在該第二或該第三儲存區中的儲存位置之邏輯區塊位址及該第二管理單位中之該等資料在藉由該等邏輯區塊位址指定之該等邏輯區塊中的儲存位置之資訊;及至一第二管理表中屬於該第二管理單位中之對應邏輯位址之分錄(entry)的鏈接資訊;一正向查找第二管理表,其具有針對該第二管理單位中之該等邏輯位址中之每一者的一分錄,該正向查找第二管理表為一用於自該第一管理單位中之邏輯位址擷取第二管理資訊的表,該第二管理資訊包括:包括指示對應於該第一管理單位中之該等邏輯位址的該第一管理單位中之該等資料在該第二儲存區中的儲存位置之該等邏輯區塊位址及該第一管理單位中之該等資料在藉由該等邏輯區塊位址指定之該等邏輯區塊中的儲存位置之資訊;及登記於一第四管理表中之邏輯區塊位址的鏈接資訊;一反向查找第三管理表,在該反向查找第三管理表中,針對該等邏輯區塊位址中之每一者,登記有第三管理資訊,該第三管理資訊包括登記於該第一管理表中的該第二管理單位中之該等邏輯位址之該鏈接資訊,該反向查找第三管理表為一用於自該等邏輯區塊位址擷取與對應於該等邏輯區塊位址之該等邏輯區塊中所包括的該第二管理單位中之資料對應的該第二管理單位中之位址的表;一反向查找第四管理表,在該反向查找第四管理表中,針對該等邏輯區塊位址中之每一者,登記有第四管理資訊,該第四管理資訊包括登記於該第二管理表中的該第一管理單位中之該等邏輯位址之該鏈接資訊,該反向查找第四管理表為一用於自該等邏輯區塊位址擷取與對應於該等邏輯區塊位址之該等邏輯區塊中所包括的該第一管理單位中之資料對應的該第一管理單位中之位址的表;及一第五管理表,其用於管理對應於複數個實體區塊之複數個實體區塊位址與對應於與該等實體區塊相關聯之邏輯區塊的邏輯區塊位址之間的一對應關係,且該控制器基於該第一至該第五管理表而執行該第一處理至該第五處理。
- 如請求項1之記憶體系統,其中該第一管理表針對該第二管理單位中之該等邏輯位址中之每一者,具有指示屬於該第二管理單位中之該等邏輯位址的該第一管理單位中之該資料經分配給該第二儲存區及該第三儲存區中之何者的資訊。
- 如請求項1之記憶體系統,其中該第一管理表針對該第二管理單位中之該等邏輯位址中之每一者,具有指示在該第二儲存區中該第二管理單位中之有效資料之一數目的資訊。
- 如請求項1之記憶體系統,其中該第二管理表中針對該第二管理單位中之該等邏輯位址中之每一者的分錄中之每一者包括一鏈接清單。
- 如請求項1之記憶體系統,其中該第三管理表針對該等邏輯區塊位址中之每一者,具有指示儲存於一對應於該邏輯區塊位址之邏輯區塊中的該第二管理單位中之該等資料當中有效資料之一數目的資訊。
- 如請求項5之記憶體系統,其中該第三管理表針對該等邏輯區塊位址中之每一者,具有指示在一對應於該邏輯區塊位址之邏輯區塊中,可寫入該第二管理單位中之資料之一位置的資訊。
- 如請求項1之記憶體系統,其中該第四管理表針對該等邏輯區塊位址中之每一者,具有指示在該第二儲存區中該第一管理單位中之有效資料之一數目的資訊。
- 如請求項7之記憶體系統,其中該第四管理表針對該等邏輯區塊位址中之每一者,具有指示在一對應於該邏輯區塊位址之邏輯區塊中可寫入資料之一頁位置的資訊。
- 如請求項1之記憶體系統,其中該揮發性半導體記憶體為一DRAM且該非揮發性半導體記憶體為一反及快閃記憶體。
- 如請求項1之記憶體系統,其中該第一管理單位之一大小等於或大於該區段大小之一大小,且該第二管理單位之一大小小於該邏輯區塊單位之一大小。
- 一種記憶體系統,其包含:一第一儲存區,其作為一快取記憶體而被包括於一揮發性半導體記憶體中;第二、第三及第四儲存區,其被包括於非揮發性半導體記憶體中,在該第二、該第三及該第四儲存區中,以頁單位執行資料讀取及寫入,且以為該頁單位之兩倍或兩倍以上之自然數倍大的實體區塊單位執行資料抹除;及一控制器,其以與該等實體區塊中之一個或多個相關聯之邏輯區塊單位將該等非揮發性半導體記憶體之儲存區分配給該第二、該第三及該第四儲存區,其中該控制器執行:用於將自該第一儲存區清理之區段單位之複數個資料寫入至該第二儲存區作為一第一管理單位中之資料的第一處理;用於將自該第一儲存區清理之區段單位之複數個資料寫入至該第三儲存區作為一為該第一管理單位之兩倍或兩倍以上之一自然數倍大的第二管理單位中之資料的第二處理;用於將最早登記於該第二儲存區中之一邏輯區塊中之資料清理至該第三儲存區作為該第二管理單位中之資料的第三處理;用於在該第三處理之執行後,以該邏輯區塊單位將最早登記於該第二儲存區中之該邏輯區塊中仍存在的有效資料重新定位至該第四儲存區的第四處理;用於將儲存於該第四儲存區中之複數個資料清理至該第三儲存區作為該第二管理單位中之資料的第五處理;用於選擇儲存於該第四儲存區中的該第一管理單位中之複數個有效資料,且將該等有效資料重寫於一新邏輯區塊中的第六處理;及用於選擇儲存於該第三儲存區中的該第二管理單位中之複數個有效資料,且將該等有效資料重寫於一新邏輯區塊中的第七處理,該控制器包括:一正向查找第一管理表,其用於自該第二管理單位中之邏輯位址擷取第一管理資訊,該第一管理資訊包括:包括指示對應於該第二管理單位中之該等邏輯位址的該第二管理單位中之該等資料在該第二、該第三或該第四儲存區中的儲存位置之該等邏輯區塊位址及該第二管理單位中之該等資料在藉由該等邏輯區塊位址指定之該等邏輯區塊中的儲存位置之資訊;及一第二管理表中屬於該第二管理單位中之對應邏輯位址之分錄的鏈接資訊;一正向查找第二管理表,其具有針對該第二管理單位中之該等邏輯位址中之每一者的一分錄,該正向查找第二管理表為一用於自該第一管理單位中之邏輯位址擷取第二管理資訊的表,該第二管理資訊包括:包括指示對應於該第一管理單位中之該等邏輯位址的該第一管理單位中之該等資料在該第二及該第四儲存區中的儲存位置之該等邏輯區塊位址及該第一管理單位中之該等資料在藉由該等邏輯區塊位址指定之該等邏輯區塊中的儲存位置之資訊;及登記於一第四管理表中之邏輯區塊位址的鏈接資訊;一反向查找第三管理表,在該反向查找第三管理表中,針對該等邏輯區塊位址中之每一者,登記有第三管理資訊,該第三管理資訊包括登記於該第一管理表中的該第二管理單位中之該等邏輯位址之該鏈接資訊,該反向查找第三管理表為一用於自該等邏輯區塊位址擷取與對應於該等邏輯區塊位址之該等邏輯區塊中所包括的該第二管理單位中之資料對應的該第二管理單位中之位址的表;一反向查找第四管理表,在該反向查找第四管理表中,針對該等邏輯區塊位址中之每一者,登記有第四管理資訊,該第四管理資訊包括登記於該第二管理表中的該第一管理單位中之該等邏輯位址之該鏈接資訊,該反向查找第四管理表為一用於自該等邏輯區塊位址擷取與對應於該等邏輯區塊位址之該等邏輯區塊中所包括的該第一管理單位中之資料對應的該第一管理單位中之位址的表;及一第五管理表,其用於管理對應於複數個實體區塊之複數個實體區塊位址與對應於與該等實體區塊相關聯之邏輯區塊的邏輯區塊位址之間的一對應關係,且該控制器基於該第一至該第五管理表而執行該第一處理至該第七處理。
- 如請求項11之記憶體系統,其中該第一管理表針對該第二管理單位中之該等邏輯位址中之每一者,具有指示屬於該第二管理單位中之該等邏輯位址的該第一管理單位中之該資料經分配給該第二或該第三儲存區及該第四儲存區中之何者的資訊。
- 如請求項11之記憶體系統,其中該第一管理表針對該第二管理單位中之該等邏輯位址中之每一者,具有指示在該第二或該第三儲存區中該第二管理單位中之有效資料之一數目的資訊。
- 如請求項11之記憶體系統,其中該第二管理表中針對該第二管理單位中之該等邏輯位址中之每一者的分錄中之每一者包括一鏈接清單。
- 如請求項11之記憶體系統,其中該第三管理表針對該等邏輯區塊位址中之每一者,具有指示儲存於一對應於該邏輯區塊位址之邏輯區塊中的該第二管理單位中之該等資料當中有效資料之一數目的資訊。
- 如請求項15之記憶體系統,其中該第三管理表針對該等邏輯區塊位址中之每一者,具有指示在一對應於該邏輯區塊位址之邏輯區塊中,可寫入該第二管理單位中之資料之一位置的資訊。
- 如請求項11之記憶體系統,其中該第四管理表針對該等邏輯區塊位址中之每一者,具有指示在該第二儲存區中該第一管理單位中之有效資料之一數目的資訊。
- 如請求項17之記憶體系統,其中該第四管理表針對該等邏輯區塊位址中之每一者,具有指示在一對應於該邏輯區塊位址之邏輯區塊中可寫入資料之一頁位置的資訊。
- 如請求項11之記憶體系統,其中該揮發性半導體記憶體為一DRAM且該非揮發性半導體記憶體為一反及快閃記憶體。
- 如請求項11之記憶體系統,其中該第一管理單位之一大小等於或大於該區段大小之一大小,且該第二管理單位之一大小小於該邏輯區塊單位之一大小。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008051479A JP2009211233A (ja) | 2008-03-01 | 2008-03-01 | メモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200951714A TW200951714A (en) | 2009-12-16 |
TWI400609B true TWI400609B (zh) | 2013-07-01 |
Family
ID=41055867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098106021A TWI400609B (zh) | 2008-03-01 | 2009-02-25 | 記憶體系統 |
Country Status (6)
Country | Link |
---|---|
US (4) | US8554984B2 (zh) |
EP (1) | EP2250564A4 (zh) |
JP (1) | JP2009211233A (zh) |
CN (1) | CN101681299A (zh) |
TW (1) | TWI400609B (zh) |
WO (1) | WO2009110306A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI658402B (zh) * | 2017-07-20 | 2019-05-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置 |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7934052B2 (en) | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
KR101077339B1 (ko) | 2007-12-28 | 2011-10-26 | 가부시끼가이샤 도시바 | 반도체 기억 장치 |
JP4461170B2 (ja) | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
JP4672742B2 (ja) * | 2008-02-27 | 2011-04-20 | 株式会社東芝 | メモリコントローラおよびメモリシステム |
JP4653817B2 (ja) * | 2008-03-01 | 2011-03-16 | 株式会社東芝 | メモリシステム |
KR101269366B1 (ko) | 2009-02-12 | 2013-05-29 | 가부시끼가이샤 도시바 | 메모리 시스템 및 메모리 시스템의 제어 방법 |
TWI431627B (zh) * | 2009-07-31 | 2014-03-21 | Silicon Motion Inc | 快閃記憶體裝置及快閃記憶體裝置之運作方法 |
US9779057B2 (en) | 2009-09-11 | 2017-10-03 | Micron Technology, Inc. | Autonomous memory architecture |
TWI506422B (zh) * | 2009-09-23 | 2015-11-01 | Silicon Motion Inc | 用來管理具有多通道、多途徑的記憶裝置之方法以及相關之記憶裝置及其控制器 |
US9110594B2 (en) * | 2009-11-04 | 2015-08-18 | Seagate Technology Llc | File management system for devices containing solid-state media |
US9292533B2 (en) * | 2010-06-08 | 2016-03-22 | Dell Products L.P. | Systems and methods for improving storage efficiency in an information handling system |
KR101691997B1 (ko) * | 2010-07-22 | 2017-01-02 | 삼성전자 주식회사 | 영상처리장치 및 그 제어방법 |
JP5010723B2 (ja) * | 2010-09-22 | 2012-08-29 | 株式会社東芝 | 半導体記憶制御装置 |
KR20120079397A (ko) * | 2011-01-04 | 2012-07-12 | 삼성전자주식회사 | 적층형 반도체 장치 및 이의 제조 방법 |
US9251055B2 (en) * | 2012-02-23 | 2016-02-02 | Kabushiki Kaisha Toshiba | Memory system and control method of memory system |
US20130254463A1 (en) * | 2012-03-23 | 2013-09-26 | Kabushiki Kaisha Toshiba | Memory system |
TWI521528B (zh) * | 2012-08-08 | 2016-02-11 | 群聯電子股份有限公司 | 記憶體儲存裝置、其記憶體控制器與資料處理方法 |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9921954B1 (en) * | 2012-08-27 | 2018-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for split flash memory management between host and storage controller |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US20140250277A1 (en) * | 2013-03-04 | 2014-09-04 | Kabushiki Kaisha Toshiba | Memory system |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US10003675B2 (en) | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9448876B2 (en) * | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9454448B2 (en) * | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9606870B1 (en) | 2014-03-31 | 2017-03-28 | EMC IP Holding Company LLC | Data reduction techniques in a flash-based key/value cluster storage |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9305665B2 (en) * | 2014-03-31 | 2016-04-05 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
CN105302677A (zh) * | 2014-07-29 | 2016-02-03 | 株式会社东芝 | 信息处理装置和信息处理方法 |
US10025843B1 (en) | 2014-09-24 | 2018-07-17 | EMC IP Holding Company LLC | Adjusting consistency groups during asynchronous replication |
US9582201B2 (en) * | 2014-09-26 | 2017-02-28 | Western Digital Technologies, Inc. | Multi-tier scheme for logical storage management |
US9576605B2 (en) * | 2014-10-20 | 2017-02-21 | Kabushiki Kaisha Toshiba | Magnetic disk apparatus and method for accessing data sector |
US10048877B2 (en) * | 2015-12-21 | 2018-08-14 | Intel Corporation | Predictive memory maintenance |
US10162694B2 (en) | 2015-12-21 | 2018-12-25 | Intel Corporation | Hardware apparatuses and methods for memory corruption detection |
CN106991058B (zh) * | 2016-01-21 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 预取文件处理方法及装置 |
KR102585871B1 (ko) * | 2016-02-26 | 2023-10-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10942844B2 (en) * | 2016-06-10 | 2021-03-09 | Apple Inc. | Reserved memory in memory management system |
US10191791B2 (en) | 2016-07-02 | 2019-01-29 | Intel Corporation | Enhanced address space layout randomization |
KR20180019791A (ko) * | 2016-08-16 | 2018-02-27 | 에스케이하이닉스 주식회사 | 반도체장치 및 반도체시스템 |
KR102409760B1 (ko) * | 2017-03-17 | 2022-06-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
US10090067B1 (en) * | 2017-05-30 | 2018-10-02 | Seagate Technology Llc | Data storage device with rewritable in-place memory |
US11221956B2 (en) * | 2017-05-31 | 2022-01-11 | Seagate Technology Llc | Hybrid storage device with three-level memory mapping |
JP7109949B2 (ja) | 2018-03-23 | 2022-08-01 | キオクシア株式会社 | メモリシステム及びメモリシステムの制御方法 |
CN110765156A (zh) * | 2018-07-09 | 2020-02-07 | 慧荣科技股份有限公司 | 链表搜索装置及方法 |
US10817430B2 (en) * | 2018-10-02 | 2020-10-27 | Micron Technology, Inc. | Access unit and management segment memory operations |
US11841794B2 (en) * | 2020-12-16 | 2023-12-12 | Micron Technology, Inc. | Memory sub-system write sequence track |
KR20230094588A (ko) * | 2021-12-21 | 2023-06-28 | 에스케이하이닉스 주식회사 | 복수의 존들에 대응하는 데이터를 관리하는 메모리 시스템 및 그 방법 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103980A1 (en) * | 2001-01-26 | 2002-08-01 | International Business Machines Corporation | Method, system, and program for discarding data in a storage system where uptdates to a primary storage device are shadowed in a secondary storage device |
TW200300884A (en) * | 2003-03-04 | 2003-06-16 | Megawin Technology Co Ltd | Method for detecting logical address of non-volatile storage medium |
TW200307203A (en) * | 2002-05-09 | 2003-12-01 | Ibm | Method and apparatus for managing memory blocks in a logical partitioned data processing system |
WO2006065668A2 (en) * | 2004-12-16 | 2006-06-22 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
US7191306B2 (en) * | 2002-11-14 | 2007-03-13 | Samsung Electronics Co., Ltd. | Flash memory, and flash memory access method and apparatus |
TW200739342A (en) * | 2005-08-03 | 2007-10-16 | Sandisk Corp | Nonvolatile memory with block management |
US20070255889A1 (en) * | 2006-03-22 | 2007-11-01 | Yoav Yogev | Non-volatile memory device and method of operating the device |
US20080028132A1 (en) * | 2006-07-31 | 2008-01-31 | Masanori Matsuura | Non-volatile storage device, data storage system, and data storage method |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3688835B2 (ja) | 1996-12-26 | 2005-08-31 | 株式会社東芝 | データ記憶システム及び同システムに適用するデータ転送方法 |
JP3072722B2 (ja) * | 1997-06-20 | 2000-08-07 | ソニー株式会社 | フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体 |
JP4085478B2 (ja) * | 1998-07-28 | 2008-05-14 | ソニー株式会社 | 記憶媒体及び電子機器システム |
US8041878B2 (en) * | 2003-03-19 | 2011-10-18 | Samsung Electronics Co., Ltd. | Flash file system |
US7669003B2 (en) | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
US7571275B2 (en) * | 2005-08-31 | 2009-08-04 | Hamilton Sundstrand Corporation | Flash real-time operating system for small embedded applications |
US7631162B2 (en) | 2005-10-27 | 2009-12-08 | Sandisck Corporation | Non-volatile memory with adaptive handling of data writes |
JP5076411B2 (ja) * | 2005-11-30 | 2012-11-21 | ソニー株式会社 | 記憶装置、コンピュータシステム |
US7793068B2 (en) | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
JP4932427B2 (ja) | 2006-10-20 | 2012-05-16 | 株式会社日立製作所 | 記憶装置及び記憶方法 |
US7793036B2 (en) * | 2007-05-30 | 2010-09-07 | Intel Corporation | Method and arrangements for utilizing NAND memory |
JP5221332B2 (ja) * | 2008-12-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
-
2008
- 2008-03-01 JP JP2008051479A patent/JP2009211233A/ja not_active Abandoned
-
2009
- 2009-02-10 US US12/529,127 patent/US8554984B2/en active Active
- 2009-02-10 CN CN200980000122A patent/CN101681299A/zh active Pending
- 2009-02-10 EP EP09713655A patent/EP2250564A4/en not_active Withdrawn
- 2009-02-10 WO PCT/JP2009/052603 patent/WO2009110306A1/en active Application Filing
- 2009-02-25 TW TW098106021A patent/TWI400609B/zh not_active IP Right Cessation
-
2013
- 2013-09-09 US US14/021,738 patent/US8762631B2/en active Active
-
2014
- 2014-05-12 US US14/275,158 patent/US9213635B2/en active Active
-
2015
- 2015-11-05 US US14/933,441 patent/US20160055080A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103980A1 (en) * | 2001-01-26 | 2002-08-01 | International Business Machines Corporation | Method, system, and program for discarding data in a storage system where uptdates to a primary storage device are shadowed in a secondary storage device |
TW200307203A (en) * | 2002-05-09 | 2003-12-01 | Ibm | Method and apparatus for managing memory blocks in a logical partitioned data processing system |
US7191306B2 (en) * | 2002-11-14 | 2007-03-13 | Samsung Electronics Co., Ltd. | Flash memory, and flash memory access method and apparatus |
TW200300884A (en) * | 2003-03-04 | 2003-06-16 | Megawin Technology Co Ltd | Method for detecting logical address of non-volatile storage medium |
WO2006065668A2 (en) * | 2004-12-16 | 2006-06-22 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
TW200739342A (en) * | 2005-08-03 | 2007-10-16 | Sandisk Corp | Nonvolatile memory with block management |
US20070255889A1 (en) * | 2006-03-22 | 2007-11-01 | Yoav Yogev | Non-volatile memory device and method of operating the device |
US20080028132A1 (en) * | 2006-07-31 | 2008-01-31 | Masanori Matsuura | Non-volatile storage device, data storage system, and data storage method |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI658402B (zh) * | 2017-07-20 | 2019-05-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
JP2009211233A (ja) | 2009-09-17 |
EP2250564A1 (en) | 2010-11-17 |
US9213635B2 (en) | 2015-12-15 |
US20140250264A1 (en) | 2014-09-04 |
CN101681299A (zh) | 2010-03-24 |
US8554984B2 (en) | 2013-10-08 |
US20110185105A1 (en) | 2011-07-28 |
EP2250564A4 (en) | 2012-10-31 |
US20140013043A1 (en) | 2014-01-09 |
US8762631B2 (en) | 2014-06-24 |
US20160055080A1 (en) | 2016-02-25 |
TW200951714A (en) | 2009-12-16 |
WO2009110306A1 (en) | 2009-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI400609B (zh) | 記憶體系統 | |
TWI406129B (zh) | 記憶體系統 | |
TWI388988B (zh) | 記憶體系統 | |
TWI420310B (zh) | 記憶體系統 | |
TWI400615B (zh) | 記憶體系統 | |
TWI412039B (zh) | 記憶體系統 | |
KR101101655B1 (ko) | 메모리 시스템 | |
JP4675985B2 (ja) | メモリシステム | |
JP4551940B2 (ja) | メモリシステム | |
JP4691123B2 (ja) | メモリシステム | |
KR101067457B1 (ko) | 메모리 시스템 | |
JP4592774B2 (ja) | メモリシステム | |
JP5221593B2 (ja) | メモリシステム | |
KR101032671B1 (ko) | 메모리 시스템 | |
JP4746641B2 (ja) | メモリシステム | |
JP5178857B2 (ja) | メモリシステム | |
JP2009211224A (ja) | メモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |