專利名稱:存儲(chǔ)器系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種包括非易失性半導(dǎo)體存儲(chǔ)器的存儲(chǔ)器系統(tǒng)。
背景技術(shù):
非易失性半導(dǎo)體存儲(chǔ)器的實(shí)例包括其中擦除、寫入和讀出的單位固定 的非易失性半導(dǎo)體存儲(chǔ)器,例如在存儲(chǔ)數(shù)據(jù)時(shí)一次以塊為單位擦除數(shù)據(jù)然
后執(zhí)行寫入的非易失性半導(dǎo)體存儲(chǔ)器,以及以與NAND型閃速存儲(chǔ)器相同 的方式以頁(yè)為單位執(zhí)行寫入和讀出的非易失性半導(dǎo)體存儲(chǔ)器。
另一方面,這樣的單位被稱為扇區(qū),該單位用于諸如個(gè)人計(jì)算機(jī)的主 機(jī)設(shè)備,以將數(shù)據(jù)寫入諸如硬盤的次級(jí)存儲(chǔ)裝置以及從中讀出數(shù)據(jù)。扇區(qū) 獨(dú)立于半導(dǎo)體存儲(chǔ)裝置的擦除、寫入和讀出的單位而設(shè)定。
例如,盡管非易失性半導(dǎo)體存儲(chǔ)器的塊的大小(塊大小)為512 kB 且其頁(yè)的大小(頁(yè)大小)為4kB,但主初^殳備的扇區(qū)的大小(扇區(qū)大小) ,皮i殳定為512 B。
以此方式,非易失性半導(dǎo)體存儲(chǔ)器的擦除、寫入和讀出的單位可大于 主機(jī)設(shè)備的寫入和讀出的單位。
因此,當(dāng)通過使用非易失性半導(dǎo)體存儲(chǔ)器來(lái)配置個(gè)人計(jì)算機(jī)的次, 儲(chǔ)器裝置(例如硬盤)時(shí),有必要通過使大小適應(yīng)于非易失性半導(dǎo)體存儲(chǔ) 器的塊大小和頁(yè)大小,寫入來(lái)自作為主機(jī)設(shè)備的個(gè)人計(jì)算機(jī)的具有小尺寸 的數(shù)據(jù)。
通過諸如個(gè)人計(jì)算機(jī)的主機(jī)設(shè)備而記錄的數(shù)據(jù)既具有時(shí)間局域性,也 具有空間局域性(例如,參見非專利文件1)。因此,當(dāng)記錄數(shù)據(jù)時(shí),如 果數(shù)據(jù)被直接記錄在從外部指定的地址中,則重寫(即,擦除處理)在時(shí)間上集中在特定的區(qū)域中,并且擦除次數(shù)的偏差增大。因此,在NAND型 閃速存儲(chǔ)器中,執(zhí)行用于使數(shù)據(jù)更新區(qū)段均衡分布的被稱為磨損均化 (wear leveling )的處理。
在磨損均化處理中,例如,由主機(jī)設(shè)備指定的邏輯地址被轉(zhuǎn)譯為其中 數(shù)據(jù)更新區(qū)段均衡地分布的非易失性半導(dǎo)體存儲(chǔ)器的物理地址。
當(dāng)使用NAND閃速存儲(chǔ)器配置大容量次級(jí)存儲(chǔ)裝置時(shí),在進(jìn)行地址轉(zhuǎn) 譯過程中,如果數(shù)據(jù)管理的單位為很小的大小(例如,頁(yè)大小),那么管 理表的大小增加,并且不適于次級(jí)存儲(chǔ)裝置的控制器的主存儲(chǔ)器。地址轉(zhuǎn) 譯不能以高速執(zhí)行。以這種方式,根據(jù)作為次M儲(chǔ)裝置的NAND閃速存 儲(chǔ)器的容量的增加,管理表的大小不可避免地增加。因此,需要一種方法, 來(lái)盡可能地減小管理表的容量。
NAND閃速存儲(chǔ)器是這樣一種半導(dǎo)體存儲(chǔ)器,針對(duì)這種存儲(chǔ)器,在執(zhí) 行寫入之前必需進(jìn)行擦除處理。NAND閃速存儲(chǔ)器的耐久壽命取決于重寫 的次數(shù)。在NAND閃速存儲(chǔ)器中的數(shù)據(jù)寫入和擦除過程中,通過在基底和 控制柵極之間施加高電壓,而向浮動(dòng)?xùn)艠O注入電子或從其中釋放電子。當(dāng) 該過程執(zhí)行很大數(shù)目的次數(shù)時(shí),浮動(dòng)?xùn)艠O周圍的柵極氧化膜劣化,注入到 浮動(dòng)?xùn)艠O中的電子丟失,數(shù)據(jù)會(huì)被破壞。換句話說(shuō),當(dāng)重寫的次數(shù)增加時(shí), 在重寫之后數(shù)據(jù)的保持時(shí)間縮短(保持性能的劣化)。
如上文所解釋的,在NAND閃速存儲(chǔ)器中,擦除的最小單位通常是塊。 然而,當(dāng)以物理塊為單位管理擦除次數(shù)時(shí),管理表大小增加,這與管理表 大小的降低相背。
[非專利文件1David A. Patterson以及John L. Hennessy, "Computer Organization and Design: The Hardware/Software Interface", Morgan Kaufmann Pub, 2004/8/3
發(fā)明內(nèi)容
根據(jù)本發(fā)明實(shí)施例的一種存儲(chǔ)器系統(tǒng)包括非易失性半導(dǎo)體存儲(chǔ)器, 其包括多個(gè)并行操作元件,所述多個(gè)并行IMt元件分別具有多個(gè)物理塊作為數(shù)據(jù)擦除的單位;以及控制器,其可以并行驅(qū)動(dòng)所述并行操作元件,并 具有擦除次數(shù)管理單元,所述擦除次數(shù)管理單元以與并行驅(qū)動(dòng)的多個(gè)物理 塊相關(guān)聯(lián)的邏輯塊為單位管理擦除次數(shù)。
根據(jù)本發(fā)明,可以提供這樣的存儲(chǔ)器系統(tǒng),該系統(tǒng)可以減小管理表創(chuàng) 建所需要的存儲(chǔ)器的量。
圖1是SSD的配置實(shí)例的框圖2是包括在NAND存儲(chǔ)器芯片中的一個(gè)塊的配置實(shí)例以及在四進(jìn)制 數(shù)據(jù)存儲(chǔ)系統(tǒng)中的閾值分布的圖3是驅(qū)動(dòng)控制電路的硬件內(nèi)部配置實(shí)例的框圖; 圖4是處理器的功能配置實(shí)例的框圖5是在NAND存儲(chǔ)器和DRAM中形成的功能配置的框圖6是與從WC到NAND存儲(chǔ)器的寫入處理有關(guān)的詳細(xì)功能框圖7是LBA邏輯地址的圖8是在數(shù)據(jù)管理單元中的管理表的配置實(shí)例的圖9是RC蔟(cluster)管理表的實(shí)例的圖IO是WC蔟管理表的實(shí)例的圖ll是WC軌道(track)管理表的實(shí)例的圖12是軌道管理表的實(shí)例的圖13是FS/IS管理表的實(shí)例的圖14是MS邏輯塊管理表的實(shí)例的圖15是FS/IS邏輯塊管理表的實(shí)例的圖16是FS/IS內(nèi)簇管理表的實(shí)例的圖17是邏輯至物理轉(zhuǎn)譯表的實(shí)例的圖18是讀取處理的操作實(shí)例的流程圖19是寫入處理的操作實(shí)例的流程圖20是在部件之間的數(shù)據(jù)的流動(dòng)中的輸入與輸出的組合以及該流動(dòng)的起因的圖21是并行操作元件、平面、通道之間的關(guān)系的圖22是物理NAND層和該物理NAND層中使用的管理表的框圖23是邏輯至物理轉(zhuǎn)譯表的另一實(shí)例的圖24是BB管理表的實(shí)例的圖25是FB管理表的內(nèi)部配置實(shí)例的圖26是NAND存儲(chǔ)器的邏輯塊與物理塊之間的對(duì)應(yīng)關(guān)系的圖; 圖27是個(gè)人計(jì)算機(jī)的實(shí)例的透視圖;以及 圖28是個(gè)人計(jì)算機(jī)中的系統(tǒng)架構(gòu)的實(shí)例的圖。
具體實(shí)施例方式
下面,將參考附圖詳細(xì)解釋根據(jù)本發(fā)明的存儲(chǔ)器系統(tǒng)的示例性實(shí)施例。 本發(fā)明并不限于下面的實(shí)施例。 (實(shí)施例)
下面將參考附圖解釋本發(fā)明的實(shí)施例。在下面的解釋中,具有相同功 能和配置的部件由相同的參考標(biāo)號(hào)和符號(hào)表示。僅當(dāng)必要時(shí)才進(jìn)行對(duì)這些 部件的重復(fù)解釋。
首先,定義在該說(shuō)明書中使用的術(shù)語(yǔ)。
物理頁(yè)在NAND存儲(chǔ)器芯片中可以共同地寫入和讀出的單位。物理 頁(yè)大小為例如4kB。然而,不包括添加到SSD中的主數(shù)據(jù)(用戶數(shù)據(jù)等) 的諸如g校正碼的冗余位。通常,4 kB +冗余位(例如,幾十B)是在 存儲(chǔ)器基元(memory cell)中同時(shí)寫入的單位。然而,為了4更于解釋,如 上所述地定義物理頁(yè)。
邏輯頁(yè)在SSD中設(shè)定的寫入和讀出單位。邏輯頁(yè)與一個(gè)或多個(gè)物理 頁(yè)相關(guān)聯(lián)。例如,在8-位正常模式下,邏輯頁(yè)大小為4kB,而在32-位的 雙速模式下,邏輯頁(yè)大小為32kB。然而,不包括冗余位。
物理塊可以在NAND存儲(chǔ)器芯片中獨(dú)立地擦除的最小單位。物理塊 包括多個(gè)物理頁(yè)。物理塊大小為例如512 kB。然而,不包括添加到SSD中的主數(shù)據(jù)的諸如錯(cuò)誤校正碼的冗余位。通常,512 kB+冗余位(例如, 幾十kB)是同時(shí)擦除的單位。然而,為了便于解釋,如上所述地定義物理 塊。
邏輯塊在SSD中設(shè)定的擦除單位。邏輯塊與一個(gè)或多個(gè)物理塊相關(guān) 聯(lián)。例如,在8-位正常模式下,邏輯塊大小為512kB,而在32-位的X5U4 模式下,邏輯塊大小為4MB。然而,不包括冗余位。
扇區(qū)從主機(jī)存取的最小單位。扇區(qū)大小為例如512B。
簇用于在SSD中管理"小數(shù)據(jù)(細(xì)粒數(shù)據(jù))"的管理單位。簇大小等 于或大于扇區(qū)大小,且例如被如此設(shè)定,使得簇大小的兩倍或更大的自然 數(shù)倍的大小為邏輯頁(yè)大小。
軌道用于在SSD中管理"大數(shù)據(jù)(粗粒數(shù)據(jù))"的管理單位。軌道大 小被如此設(shè)定,使得簇大小的兩倍或更大的自然數(shù)倍的大小為軌道大小, 且例如軌道大小的兩倍或更大的自然數(shù)倍的大小為邏輯塊大小。
空閑塊(FB):在NAND型閃速存儲(chǔ)器上的未分配使用的邏輯塊。 當(dāng)向空閑塊分配使用時(shí),在擦除之后使用該空閑塊。
壞塊(BB):在NAND型閃速存儲(chǔ)器上的由于大量錯(cuò)誤而不能被用 作存儲(chǔ)區(qū)的物理塊。例如,將不能正常完成擦除操作的物理塊登記為壞塊 BB。
寫入效率在預(yù)定周期內(nèi)邏輯塊的擦除數(shù)量相對(duì)于從主機(jī)寫入的數(shù)據(jù) 數(shù)量的統(tǒng)計(jì)值。寫入效率越小,NAND型閃速存儲(chǔ)器的磨損度越小。
有效蔟存儲(chǔ)對(duì)應(yīng)于邏輯地址的最新數(shù)據(jù)的簇。
無(wú)效簇存儲(chǔ)由于具有相同邏輯地址的簇被寫入其它存儲(chǔ)區(qū)中而不被 參考的非最新數(shù)據(jù)的簇。
有效軌道存儲(chǔ)對(duì)應(yīng)于邏輯地址的最新數(shù)據(jù)的軌道。
無(wú)效軌道存儲(chǔ)由于具有相同邏輯地址的簇被寫入其它存儲(chǔ)區(qū)中而不 被參考的非最新數(shù)據(jù)的軌道。
壓緊在管理對(duì)象中從邏輯塊中僅提取有效簇和有效軌道并且在新的 邏輯塊中重寫所述有效簇和有效軌道。[第一實(shí)施例
圖1是SSD (固態(tài)驅(qū)動(dòng)器)100的配置實(shí)例的框圖。SSD 100通過存 儲(chǔ)器連接接口,例如ATA接口 (ATAI/F)2,連接到主機(jī)設(shè)備l,例如個(gè) 人計(jì)算機(jī)或CPU核,并且用作主機(jī)設(shè)備1的外部存儲(chǔ)器。通過通信接口 3, 例如RS232C接口 (RS232CI/F) , SSD 100可以將數(shù)據(jù)傳送到用于除錯(cuò) (debug)和制造檢驗(yàn)的設(shè)備200并從其接收數(shù)據(jù)。SSD 100包括作為非易 失性半導(dǎo)體存儲(chǔ)器的NAND型閃速存儲(chǔ)器(下文中簡(jiǎn)稱為NAND存儲(chǔ)器) 10、作為控制器的驅(qū)動(dòng)控制電路4、作為易失性半導(dǎo)體存儲(chǔ)器的DRAM 20、 電源電路5、用于狀態(tài)顯示的LED 6、檢測(cè)驅(qū)動(dòng)器中的溫度的溫度傳感器 7、以及熔絲8。
電源電路5從由主機(jī)設(shè)備1側(cè)的電源電i^供應(yīng)的外部DC電力產(chǎn)生多 個(gè)不同的內(nèi)部DC電源電壓,并將這些內(nèi)部DC電源電壓供應(yīng)至SSD 100 中的各個(gè)電路。電源電路5檢測(cè)外部電源的上升沿,產(chǎn)生通電復(fù)位信號(hào), 并且將該通電復(fù)位信號(hào)供應(yīng)至驅(qū)動(dòng)控制電路4。熔絲8設(shè)置在主機(jī)設(shè)備1 側(cè)的電源電路與SSD100中的電源電路5之間。當(dāng)從外部電源電i2^供應(yīng)過 電流時(shí),熔絲8斷開,以防止內(nèi)部電路發(fā)生故障。
NAND存儲(chǔ)器10具有四個(gè)并行操作元件10a至10d,其執(zhí)行四個(gè)并行 操作。 一個(gè)并行操作元件具有兩個(gè)NAND存儲(chǔ)器封裝。NAND存儲(chǔ)器封 裝中的每一個(gè)包括多個(gè)堆疊的NAND存儲(chǔ)器芯片(例如,1個(gè)芯片=2 GB )。 在圖1的情況下,NAND存儲(chǔ)器封裝中的每一個(gè)包括堆疊的四個(gè)NAND 存儲(chǔ)器芯片。NAND存儲(chǔ)器10具有64 GB的容量。當(dāng)NAND存儲(chǔ)器封裝 中的每一個(gè)包括堆疊的八個(gè)NAND存儲(chǔ)器芯片時(shí),NAND存儲(chǔ)器10具有 128 GB的容量。
DRAM 20用作用于在主機(jī)設(shè)備1與NAND存儲(chǔ)器10之間的數(shù)據(jù)傳送 的高速緩沖存儲(chǔ)器以及用于工作區(qū)的存儲(chǔ)器。可使用FeRAM(鐵電隨機(jī) 存:^儲(chǔ)器)、PRAM (相變隨M:^儲(chǔ)器)或MRAM (磁阻隨fe^ 取存儲(chǔ)器)來(lái)代替DRAM 20。驅(qū)動(dòng)控制電路4通過DRAM 20而在主機(jī)設(shè) 備1與NAND存儲(chǔ)器10之間執(zhí)行數(shù)據(jù)傳送控制,并且控制SSD 100中的各個(gè)部件。驅(qū)動(dòng)控制電路4將用于狀態(tài)顯示的信號(hào)供應(yīng)至用于狀態(tài)顯示的 LED 6。驅(qū)動(dòng)控制電路4還具有從電源電路5接收通電復(fù)位信號(hào)且將復(fù)位 信號(hào)和時(shí)鐘信號(hào)供應(yīng)至在自身電路和SSD 100中的各個(gè)單元的功能。
NAND存儲(chǔ)器芯片中的每一個(gè)通過將多個(gè)物理塊排成陣列作為數(shù)據(jù)擦 除的單位而配置。圖2 U)是包括在NAND存儲(chǔ)器芯片中的一個(gè)物理塊 的配置實(shí)例的電路圖。每個(gè)物理塊包括沿著X方向依次排成陣列的(p+l) 個(gè)NAND串(p為等于或大于0的整數(shù))。包括在該(p+l)個(gè)NAND串 的每一個(gè)中的選擇晶體管ST1的漏極連接至位線BL0至BLp,并且其柵 極共同地連接至選擇柵極線SGD。選擇晶體管ST2的源極共同地連接至 源極線SL,并且其柵極共同地連接至選擇柵極線SGS。
存儲(chǔ)器基元晶體管MT中的每一個(gè)包括MOSFET (金屬氧化物半導(dǎo) 體場(chǎng)效應(yīng)晶體管),該MOSFET包括形成于半導(dǎo)體基底上的堆疊柵極結(jié) 構(gòu)。該堆疊柵極結(jié)構(gòu)包括經(jīng)由柵極絕緣膜而形成于半導(dǎo)體基底上的電荷存 儲(chǔ)層(浮動(dòng)?xùn)烹姌O),以及經(jīng)由柵極間絕緣膜而形成于該電荷存儲(chǔ)層上的 控制柵電極。閾值電壓根據(jù)在浮動(dòng)?xùn)烹姌O中累積的電子的數(shù)目而變化。存 儲(chǔ)器基元晶體管MT根據(jù)閾值電壓的差異而存儲(chǔ)數(shù)據(jù)。存儲(chǔ)器基元晶體管 MT可#:配置為存儲(chǔ)一個(gè)位或可^ 皮配置為存儲(chǔ)多值(等于或大于兩個(gè)位的 數(shù)據(jù))。
存儲(chǔ)器基元晶體管MT不限于具有浮動(dòng)?xùn)烹姌O的結(jié)構(gòu),并且可以為諸 如MONOS (金屬-氧化物-氮化物-氧化物-硅)型的結(jié)構(gòu),該結(jié)構(gòu)可通過使 氮化物膜界面作為電荷存儲(chǔ)層來(lái)俘獲電子而調(diào)整闊值。類似地,MONOS 結(jié)構(gòu)的存儲(chǔ)器基元晶體管MT可被配置為存儲(chǔ)一個(gè)位或可被配置為存儲(chǔ)多 值(等于或大于兩個(gè)位的數(shù)據(jù))。
在每一個(gè)NAND串中,(q+l)個(gè)存儲(chǔ)器基元晶體管MT排列在選擇 晶體管ST1的源極與選擇晶體管ST2的漏極之間,使得其電流路徑串聯(lián)連 接。換句話說(shuō),存儲(chǔ)器基元晶體管MT在Y方向上串聯(lián)連接,使得相鄰的 存儲(chǔ)器基元晶體管MT共享擴(kuò)散區(qū)域(源極區(qū)域或漏極區(qū)域)。
存儲(chǔ)器基元晶體管MT的控制柵電極以從位于最漏極側(cè)上的存儲(chǔ)器基元晶體管MT開始的順序分別連接至字線WLO至WLq。因此,連接至字 線WL0的存儲(chǔ)器基元晶體管MT的漏極連接至選擇晶體管ST1的源極。 連接至字線WLq的存儲(chǔ)器基元晶體管MT的源極連接至選擇晶體管ST2 的漏極。
字線WL0至WLq共同地連接在物理塊中的NAND串當(dāng)中的存儲(chǔ)器 基元晶體管MT的控制柵電極。換句話說(shuō),存在于塊的相同行中的存儲(chǔ)器 基元晶體管MT的控制柵極連接至相同的字線WL。將連接至相同字線 WL的(p+l)個(gè)存儲(chǔ)器基元晶體管MT作為一頁(yè)(物理頁(yè))來(lái)處理。通 過每一物理頁(yè)來(lái)執(zhí)行數(shù)據(jù)寫入及數(shù)據(jù)讀出。
位線BL0至BLp共同地連接塊當(dāng)中的選擇晶體管ST1的漏極。換句 話說(shuō),存在于多個(gè)塊的相同列中的NAND串連接至相同的位線BL。
圖2(b)為例如在四進(jìn)制數(shù)據(jù)存儲(chǔ)模式中的閾值分布的示意圖,該四 進(jìn)制數(shù)據(jù)存儲(chǔ)才莫式用于在一個(gè)存儲(chǔ)器基元晶體管MT中存儲(chǔ)兩個(gè)位。在四 進(jìn)制數(shù)據(jù)存儲(chǔ)模式中,可將由上部頁(yè)(upper page )數(shù)據(jù)"x"和下部頁(yè)(lower page )數(shù)據(jù)"y,,定義的任何一個(gè)四進(jìn)制數(shù)據(jù)"xy,,存儲(chǔ)在存儲(chǔ)器基元晶體管 MT中。
例如,作為四進(jìn)制數(shù)據(jù)"xy", "11"、 "01"、 "00,,和"10,,以存儲(chǔ)器基元 晶體管MT的閾值電壓的順序分配。數(shù)據(jù)"11,,為已擦除狀態(tài)(erased state), 在該狀態(tài)中存儲(chǔ)器基元晶體管MT的閾值電壓為負(fù)。
在下部頁(yè)寫入操作中,根據(jù)下部位數(shù)據(jù)"y"的寫入,將數(shù)據(jù)"IO"選擇性 地寫入具有數(shù)據(jù)"ll"(處于已擦除狀態(tài))的存儲(chǔ)器基元晶體管MT中。在 上部頁(yè)寫入之前的數(shù)據(jù)"IO"的閾值分布大約位于在上部頁(yè)寫入之后的數(shù)據(jù) "Ol,,和數(shù)據(jù)"OO,,的閾值分布的中間,并且可比在上部頁(yè)寫入之后的閾值分 布更寬。在上部頁(yè)寫入操作中,選擇性地對(duì)具有數(shù)據(jù)"ll"的存儲(chǔ)器基元和 具有數(shù)據(jù)"10"的存儲(chǔ)器基元進(jìn)行上部位數(shù)據(jù)"x"的寫入。將數(shù)據(jù)"01"和數(shù)據(jù) "OO"寫入存儲(chǔ)器基元中。
圖3為驅(qū)動(dòng)控制電路4的硬件內(nèi)部配置實(shí)例的框圖。驅(qū)動(dòng)控制電路4 包括數(shù)據(jù)存取總線101、第一電路控制總線102以及第二電路控制總線103??刂普麄€(gè)驅(qū)動(dòng)控制電路4的處理器104連接至第一電路控制總線102。啟動(dòng)ROM 105經(jīng)由ROM控制器106而連接至第一電,制總線102,在該啟動(dòng)ROM 105中存儲(chǔ)有啟動(dòng)程序,所述啟動(dòng)程序用于啟動(dòng)存儲(chǔ)在NAND存儲(chǔ)器10中的各個(gè)管理程序(FW:固件)。時(shí)鐘控制器107連接至第一電,制總線102,該時(shí)鐘控制器107從圖1中所示的電源電路5接收通電復(fù)位信號(hào)且將復(fù)位信號(hào)和時(shí)鐘信號(hào)供應(yīng)至各個(gè)單元。
第二電路控制總線103連接至第一電路控制總線102。用于從圖1中所示的溫度傳感器7接收數(shù)據(jù)的I2C電路108、將用于狀態(tài)顯示的信號(hào)供應(yīng)至用于狀態(tài)顯示的LED 6的并行IO( PIO)電路109、以及控制RS232CI/F 3的串行IO ( SIO )電路110連接至第二電,制總線103。
ATA接口控制器(ATA控制器)111、第一ECC (錯(cuò)誤檢查及校正)電路112、NAND控制器113以及DRAM控制器114連接至數(shù)據(jù)存取總線101與第一電路控制總線102兩者。ATA控制器111經(jīng)由ATA接口 2而將數(shù)據(jù)傳輸至主機(jī)設(shè)備1及從主機(jī)設(shè)備1接收數(shù)據(jù)。用作數(shù)據(jù)工作區(qū)和固件擴(kuò)展區(qū)的SRAM 115經(jīng)由SRAM控制器116而連接至數(shù)據(jù)存取總線101 。當(dāng)起動(dòng)存儲(chǔ)在NAND存儲(chǔ)器10中的固件時(shí),該固件通過存儲(chǔ)在啟動(dòng)ROM105中的啟動(dòng)程序而傳送至SRAM 115。
NAND控制器113包括NAND I/F 117、第二 ECC電路118,以及用于DMA傳送控制的DMA控制器119,其中NAND I/F 117執(zhí)行用于與NAND存儲(chǔ)器10的接口的接口處理,DMA控制器119執(zhí)行NAND存儲(chǔ)器10與DRAM 20之間的存取控制。第二ECC電路118執(zhí)行第二校正碼的編碼且執(zhí)行第一錯(cuò)誤校正碼的編碼和解碼。第一 ECC電路112執(zhí)行第二錯(cuò)誤校正碼的解碼。第一錯(cuò)誤校正碼和第二g校正碼為,例如,漢明(hamming)碼、BCH (Bose Chaudhuri Hocqenghem )碼、RS (ReedSolomon)碼、或LDPC (低密度奇偶檢查)碼。第二錯(cuò)誤校正碼的校正能力比第一錯(cuò)誤校正碼的校正能力高。
如圖1和圖3中所示,在NAND存儲(chǔ)器10中,四個(gè)并行操作元件10a至10d經(jīng)由四個(gè)八位通道(4 ch )而并聯(lián)連接至驅(qū)動(dòng)控制電路4中的NAND控制器112。根據(jù)四個(gè)并行操作元件10a至10d是獨(dú)立致動(dòng)還是并行致動(dòng)與是否使用在NAND存儲(chǔ)器芯片中提供的X5U4模式(多頁(yè)編程/多頁(yè)讀取/多塊擦除)的組合,提供下文所解釋的三種存取模式。
(1) 8-位正常模式
8-位正常模式為用于僅致動(dòng)一個(gè)通道且以8-位為單位執(zhí)行數(shù)據(jù)傳送的模式。以物理頁(yè)大小(4kB)來(lái)執(zhí)行寫入和讀出。以物理塊大小(512kB)來(lái)執(zhí)行擦除。 一個(gè)邏輯塊與一個(gè)物理塊相關(guān)聯(lián),且邏輯塊大小為512kB。
(2) 32-位正常模式
32-位正常模式為用于并行致動(dòng)四個(gè)通道且以32-位為單位執(zhí)行數(shù)據(jù)傳送的模式。以物理頁(yè)大小x4(16kB)來(lái)執(zhí)行寫入和讀出。以物理塊大小x4(2MB)來(lái)執(zhí)行擦除。 一個(gè)邏輯塊與四個(gè)物理塊相關(guān)聯(lián),且邏輯塊大小為2MB。
(3) 32-位4模式32-位^模式為用于并行致動(dòng)四個(gè)通道且使用NAND存儲(chǔ)器芯片的
雙速模式來(lái)執(zhí)行寫入和讀出的模式。以物理頁(yè)大小x4x2 (32 kB)來(lái)執(zhí)行寫入和讀出。以物理塊大小x4x2(4MB)來(lái)執(zhí)行擦除。 一個(gè)邏輯塊與八個(gè)物理塊相關(guān)聯(lián),且邏輯塊大小為4MB。
在用于并行致動(dòng)四個(gè)通道的32-位正常模式或32-位^模式中,并行操作的四個(gè)或八個(gè)物理塊為用于NAND存儲(chǔ)器10的擦除單位,且并行操作的四個(gè)或八個(gè)物理頁(yè)為用于NAND存儲(chǔ)器10的寫入單位和讀出單位。在下面所解釋的^Mt中,基本上,使用32-位雙速模式。例如,假定一個(gè)邏輯塊=4 MB-2i軌道-2J頁(yè)-2k簇-2'扇區(qū)(i、j、k和1為自然數(shù),且i〈j〈k〈1的關(guān)系成立)。
在32-位雙速模式中存取的邏輯塊是以4 MB為單位來(lái)存取。八個(gè)(2x4ch)物理塊( 一個(gè)物理塊=512 kB)與邏輯塊相關(guān)聯(lián)。當(dāng)檢測(cè)到以物理塊單位管理的壞塊BB時(shí),該壞塊BB不可用。因此,在這種情況下,將與邏輯塊相關(guān)聯(lián)的該八個(gè)物理塊的組合變?yōu)椴话ㄔ搲膲KBB。
圖4為通過處理器104實(shí)現(xiàn)的固件的功能配置實(shí)例的框圖。通過處理器104實(shí)現(xiàn)的固件的功能粗略地分類為數(shù)據(jù)管理單元120、 ATA命令處理單元121、安全管理單元122、啟動(dòng)加載器123、初始化管理單元124,以及除錯(cuò)支持單元125。
數(shù)據(jù)管理單元120經(jīng)由NAND控制器112和第一 ECC電路114而控制NAND存儲(chǔ)器10與DRAM 20之間的數(shù)據(jù)傳送以及關(guān)于NAND存儲(chǔ)器10的各種功能。ATA命令處理單元121經(jīng)由ATA控制器110和DRAM控制器113而與數(shù)據(jù)管理單元120協(xié)作來(lái)執(zhí)行DRAM 20與主機(jī)設(shè)備1之間的數(shù)據(jù)傳送處理。安全管理單元122與數(shù)據(jù)管理單元120和ATA命令處理單元121協(xié)作而管理各種安全信息。
啟動(dòng)加載器123在接通電源時(shí)將管理程序(固件)從NAND存儲(chǔ)器10加載至SRAM 120。初始化管理單元124執(zhí)行驅(qū)動(dòng)控制電路4中的各個(gè)控制器和電路的初始化。除錯(cuò)支持單元125處理經(jīng)由RS232C接口而從外部供應(yīng)的用于除錯(cuò)的數(shù)據(jù)。數(shù)據(jù)管理單元120、 ATA命令處理單元121和安全管理單元122主要為通過處理器104實(shí)現(xiàn)的執(zhí)行存儲(chǔ)在SRAM 114中的管理程序的功能單元。
在該實(shí)施例中,主要解釋通過數(shù)據(jù)管理單元120實(shí)現(xiàn)的功能。數(shù)據(jù)管理單元120執(zhí)行例如,ATA命令處理單元121請(qǐng)求作為存儲(chǔ)裝置的NAND存儲(chǔ)器10和DRAM 20(響應(yīng)于來(lái)自主機(jī)設(shè)備的各種命令,例如寫入請(qǐng)求、高速緩沖存儲(chǔ)器清理請(qǐng)求以及讀取請(qǐng)求)而提供的功能的供應(yīng)、主機(jī)地址區(qū)域與NAND存儲(chǔ)器10之間的對(duì)應(yīng)關(guān)系的管理和管理信息的保護(hù)、使用DRAM 20和NAND存儲(chǔ)器10的快速且高效的數(shù)據(jù)讀出及寫入功能的提供、NAND存儲(chǔ)器10的可靠性的確保。
圖5為形成在NAND存儲(chǔ)器10和DRAM 20中的功能塊的圖。配置在DRAM 20上的寫入高速緩沖存儲(chǔ)器(WC ) 21和讀取高速緩沖存儲(chǔ)器(RC ) 22被插入在主機(jī)1與NAND存儲(chǔ)器10之間。WC 21暫時(shí)存儲(chǔ)來(lái)自主機(jī)設(shè)備1的寫入數(shù)據(jù)。RC 22暫時(shí)存儲(chǔ)來(lái)自NAND存儲(chǔ)器10的讀取數(shù)據(jù)。WC 21和RC 22可配置在不同的DRAM芯片上或如上文所述的其它種類的存儲(chǔ)器芯片上。由數(shù)據(jù)管理單元120將NAND存儲(chǔ)器10中的邏輯塊分配給前級(jí)存儲(chǔ)區(qū)(FS:前存儲(chǔ)器)12、中間級(jí)存儲(chǔ)區(qū)(IS:中間存儲(chǔ)器)13和主存儲(chǔ)區(qū)(MS:主存儲(chǔ)器)11的各個(gè)管理區(qū),以便減少在寫入期間NAND存儲(chǔ)器IO的擦除的量。FS12以簇為單位(即,"小單位")管理來(lái)自WC21的數(shù)據(jù),且將小數(shù)據(jù)(細(xì)粒數(shù)據(jù))存儲(chǔ)一短周期。IS13以簇為單位(即,"小單位,,)管理從FS 12溢出的數(shù)據(jù),且將小數(shù)據(jù)(細(xì)粒數(shù)據(jù))存儲(chǔ)一長(zhǎng)周期。MS 11以軌道為單位(即,"大單位")存儲(chǔ)來(lái)自WC 21、 FS 12和IS 13的數(shù)據(jù),且將大數(shù)據(jù)(粗粒數(shù)據(jù))存儲(chǔ)一長(zhǎng)周期。例如,存儲(chǔ)容量具有MS>IS且FS>WC的關(guān)系。
當(dāng)對(duì)NAND存儲(chǔ)器10的所有存儲(chǔ)區(qū)應(yīng)用小管理單位時(shí),稍后解釋的管理表的大小被放大,且不適應(yīng)DRAM20。因此,NAND存儲(chǔ)器10的各個(gè)存儲(chǔ)器被配置為以小管理單位管理NAND存儲(chǔ)器10中僅在最近剛寫入的數(shù)據(jù)和具有低寫入效率的小數(shù)據(jù)。在國(guó)際申請(qǐng)No. PCT2008/JP/073950中描述了在SSD中使用"小單位"連同"大單位"的技術(shù),該申請(qǐng)的全部?jī)?nèi)容納入本文中作為參考。
圖6為關(guān)于從WC 21向NAND存儲(chǔ)器10的寫入處理的更詳細(xì)的功能框圖。在FS 12的前級(jí)處設(shè)置FS輸入緩沖器(FSIB) 12a,其中該FS輸入緩沖器(FSIB) 12a緩沖來(lái)自WC 21的數(shù)據(jù)。在MS 11的前級(jí)處設(shè)置MS輸入緩沖器(MSIB) lla,該MS輸入緩沖器(MSIB) lla緩沖來(lái)自WC21、 FS 12或IS 13的數(shù)據(jù)。在MSll中設(shè)置軌道前級(jí)存儲(chǔ)區(qū)(TFS)llb。 TFS lib為插入在MSIB lla與MS 11之間的具有FIFO(先進(jìn)先出)結(jié)構(gòu)的緩沖器。記錄在TFSllb中的數(shù)據(jù)為這樣的數(shù)據(jù),該數(shù)據(jù)的更新頻率高于在MS 11中記錄的數(shù)據(jù)的更新頻率。NAND存儲(chǔ)器10中的任何一個(gè)邏輯塊被分配給MS 11、 MSIB lla、 TFS llb、 FS 12、 FSIB 12a和IS 13。
將詳細(xì)解釋圖5和圖6中所示的各個(gè)部件的具體功能配置。當(dāng)主機(jī)設(shè)備1執(zhí)行SSD 100的讀取或?qū)懭霑r(shí),主機(jī)設(shè)備1經(jīng)由ATA接口而輸入LBA(邏輯塊地址)作為邏輯地址。如圖7中所示,LBA是這樣的邏輯地址,其中從O開始的序號(hào)被附到扇區(qū)(大小512B)。在該實(shí)施例中,作為用于WC21、 RC22、 FS12、 IS 13和MS 11 (它們?yōu)閳D5中所示的部件) 的管理單位,定義邏輯簇地址和邏輯軌道地址,所述邏輯簇地址由在順序 上(in order)等于或高于LBA的低位(low-order)第(1-k+l)位的位串 形成,所述邏輯軌道地址由在順序上等于或高于LBA的低位第(1-i+l)位 的位串形成。 一個(gè)簇=2州個(gè)扇區(qū),且一個(gè)軌道=2(1^個(gè)簇。 讀取高速緩沖存儲(chǔ)器(RC) 22
解釋RC 22。 RC 22為響應(yīng)于來(lái)自ATA命令處理單元121的讀取請(qǐng)求 而暫時(shí)存儲(chǔ)來(lái)自NAND存儲(chǔ)器10 (FS 12、 IS 13和MS 11)的讀取數(shù)據(jù)的 區(qū)。在該實(shí)施例中,RC 22是在例如m-線/n-路(m為等于或大于2(1^的自 然數(shù),且n為等于或大于2的自然數(shù))集合關(guān)聯(lián)系統(tǒng)中進(jìn)行管理,且可將 一個(gè)簇的數(shù)據(jù)存儲(chǔ)在一個(gè)條目(entry)中。線通過邏輯簇地址的LSB (k-i) 個(gè)位來(lái)判定。RC 22可在全關(guān)聯(lián)系統(tǒng)中進(jìn)行管理,或者可在簡(jiǎn)單FIFO系 統(tǒng)中進(jìn)行管理。
寫入高速緩沖存儲(chǔ)器(WC) 21
解釋W(xué)C21。 WC21為響應(yīng)于來(lái)自ATA命令處理單元121的寫入請(qǐng) 求而暫時(shí)存儲(chǔ)來(lái)自主機(jī)設(shè)備1的寫入數(shù)據(jù)的區(qū)。WC 21是在m-線/n-路(m 為等于或大于2(1^的自然數(shù),且n為等于或大于2的自然數(shù))集合關(guān)聯(lián)系 統(tǒng)中進(jìn)行管理,并可將一個(gè)簇的數(shù)據(jù)存儲(chǔ)在一個(gè)條目中。線通過邏輯簇地 址的LSB ( k-i)個(gè)位來(lái)判定。例如,以從路1至路n的順序搜尋可寫入 的路。登記(register)于WC 21中的軌道通過稍后所解釋的WC軌道管 理表24的FIFO結(jié)構(gòu)以LRU (最近最少使用)進(jìn)行管理,使得最早更新 的順序已知。WC 21可由全關(guān)聯(lián)系統(tǒng)來(lái)管理。WC 21與RC 22可在線的 數(shù)目和路的數(shù)目上有所不同。
根據(jù)寫入請(qǐng)求而寫入的數(shù)據(jù)一次存儲(chǔ)在WC 21上。判定將要從WC 21 清理至NAND 10的數(shù)據(jù)的方法遵從下面所解釋的規(guī)則。
(i)當(dāng)通過標(biāo)記(tag)判定的線中的可寫入的路為最后的(在該實(shí) 施例中,第n個(gè))空閑的路時(shí),即,當(dāng)使用最后的空閑的路時(shí),決定清理 登記于線中的軌道當(dāng)中的基于LRU最早更新的軌道。(ii)當(dāng)?shù)怯浻赪C21中的不同軌道的數(shù)目超過預(yù)定允許數(shù)目時(shí),決 定以LRU的順序清理WC中的其蔟數(shù)目小于預(yù)定數(shù)目的軌道。
根據(jù)上文所解釋的策略來(lái)判定將要清理的軌道。在清理這些軌道時(shí), 清理包括在相同軌道中的所有數(shù)據(jù)。當(dāng)將要清理的數(shù)據(jù)的量超過例如軌道 大小的50%時(shí),將數(shù)據(jù)清理至MSll。當(dāng)將要清理的數(shù)據(jù)的量未超過例如 軌道大小的50%時(shí),將數(shù)據(jù)清理至FS 12。
當(dāng)在條件(i)下執(zhí)行軌道清理且將數(shù)據(jù)清理至MS 11時(shí),根據(jù)策略 (i),選擇WC 21的軌道當(dāng)中滿足將要清理的數(shù)據(jù)的量超過軌道大小的 50%這一條件的軌道且將其添加至清理候選者,直至將要清理的軌道的數(shù) 目達(dá)到i為止(當(dāng)軌道的數(shù)目一開始就等于或大于2i時(shí),直至軌道的數(shù)目 達(dá)到2|+1為止)。換句話說(shuō),當(dāng)將要清理的軌道的數(shù)目小于2i時(shí),以從 WC中的最舊軌道開始的順序選擇具有多于2》i-"的有效簇的軌道,且將其 添加至清理候選者,直至軌道的數(shù)目達(dá)到2J為止。
當(dāng)在條件(i)下執(zhí)行軌道清理且將軌道清理至FS 12時(shí),以LRU的 順序在WC 21中的軌道當(dāng)中選擇滿足將要清理的數(shù)據(jù)的量不超過軌道大 小的50%這一條件的軌道,并將該軌道的簇添加至清理候選者,直至將要 清理的簇的數(shù)目達(dá)到2k為止。換句話說(shuō),通過以從最舊軌道開始的順序追 蹤WC中的軌道而從具有2W-"個(gè)或更少的有效蔟的軌道中提取蔟,且當(dāng) 有效蔟的數(shù)目達(dá)到2k時(shí),以邏輯塊為單位將簇清理至FSIB12a。然而,當(dāng) 未尋找到2k個(gè)有效蔟時(shí),以邏輯頁(yè)為單位將簇清理至FSIB12a。用于判定 是以邏輯塊為單位還是以邏輯頁(yè)為單位執(zhí)行至FS 12的清理的有效簇的數(shù) 目的閾值不限于針對(duì)一個(gè)邏輯塊的值(即,2k),且可為比針對(duì)一個(gè)邏輯 塊的值稍小的值。
在來(lái)自ATA命令處理單元121的高速緩沖存儲(chǔ)器清理請(qǐng)求中,在與
理的數(shù)據(jù)的量超過軌道大小的50%時(shí),將數(shù)據(jù)清理至MSll,且當(dāng)數(shù)據(jù)的 量未超過50%時(shí),將數(shù)據(jù)清理至FS12)。 前級(jí)存儲(chǔ)區(qū)(FS) 12解釋FS 12。 FS 12適應(yīng)其中以簇為單位管理數(shù)據(jù)的邏輯塊單位的 FIFO結(jié)構(gòu)。FS 12為這樣的緩沖器,其認(rèn)為通過FS 12的數(shù)據(jù)具有比后級(jí) 處的IS13的數(shù)據(jù)高的更新頻率。換句話說(shuō),在FS12的FIFO結(jié)構(gòu)中,當(dāng) 執(zhí)行從主機(jī)向同一地址的重寫時(shí),使通過FIFO的有^ (最新簇)無(wú)效。 因此,可將通過FS 12的簇視為具有比從FS 12清理至IS 13或MS 11的 簇更高的更新頻率。
通過提供FS 12,減少了具有高更新頻率的數(shù)據(jù)在后級(jí)處的IS 13中的 壓緊處理中的混合的可能性。當(dāng)通過無(wú)效化而使邏輯塊的有效蔟的數(shù)目減 少至0時(shí),釋放該邏輯塊且將其分配為空閑塊FB。當(dāng)FS12中的邏輯塊被 無(wú)效時(shí),獲得新的空閑塊FB且將其分配給FS12。
當(dāng)執(zhí)行從WC 21至FS 12的簇清理時(shí),簇凈皮寫入分配給FSIB 12a的 邏輯塊中。當(dāng)在FSIB12a中存在完成了所有邏輯頁(yè)的寫入的邏輯塊時(shí),通 過稍后所解釋的CIB處理將這些邏輯塊從FSIB 12a移動(dòng)至FS 12。在將這 些邏輯塊從FSIB 12a移動(dòng)至FS 12的過程中,當(dāng)FS 12的邏輯塊的數(shù)目超 過FS 12所允許的預(yù)定上限值時(shí),將最舊的邏輯塊從FS 12清理至IS 13 或MS 11。例如,將軌道中有效蔟比率等于或大于50%的軌道寫入MS 11 (TFSllb)中,且將其中仍剩余有有效簇的邏輯塊移動(dòng)至IS13。
關(guān)于NAND存儲(chǔ)器10中的部件之間的數(shù)據(jù)移動(dòng),存在兩種方式,即, 移動(dòng)(Move)和復(fù)制(Copy)。移動(dòng)是這樣的方法,其僅執(zhí)行稍后所解 釋的管理表的指針(pointer)的重新定位,而不執(zhí)行數(shù)據(jù)的實(shí)際重寫。復(fù) 制是這樣的方法,其以頁(yè)單位、軌道單位或塊單位將存儲(chǔ)于一個(gè)部件中的 數(shù)據(jù)實(shí)際重寫至其他部件中。
中間M儲(chǔ)區(qū)(IS) 13
解釋IS13。在IS13中,以與FS12相同的方式以簇為單位執(zhí)行數(shù)據(jù) 的管理??蓪⒋鎯?chǔ)于IS 13中的數(shù)據(jù)視為具有低更新頻率的數(shù)據(jù)。當(dāng)執(zhí)行 邏輯塊從FS 12至IS 13的移動(dòng)(movement)(移動(dòng)(Move))(即,邏 輯塊從FS12的清理)時(shí),通過指針的重新定位,將作為清理對(duì)象的邏輯 塊(其先前為FS 12的管理對(duì)象)改變?yōu)镮S 13的管理對(duì)象。才艮據(jù)邏輯塊從FS 12至IS 13的移動(dòng),當(dāng)IS 13的塊的數(shù)目超過IS 13所允許的預(yù)定上 P艮值時(shí),即,當(dāng)IS中可寫空閑塊FB的數(shù)目減小至小于閾值時(shí),執(zhí)行從IS 13至MS 11的數(shù)據(jù)清理和壓緊處理。使IS 13的塊的數(shù)目返回至規(guī)定值。 IS 13使用軌道中的有效蔟的數(shù)目來(lái)執(zhí)行下文所解釋的清理處理和壓 緊處理。
以有效簇的數(shù)目x有效蔟系數(shù)(其是根據(jù)軌道是否存在于其中存在無(wú) 效軌道的MS 11的邏輯塊中而進(jìn)行加權(quán)的數(shù)字;存在無(wú)效軌道時(shí)的數(shù)字大 于不存在無(wú)效軌道時(shí)的數(shù)字)的順序?qū)壍肋M(jìn)行排序(sort)。收集具有 大乘積值的21+1個(gè)軌道(對(duì)于兩個(gè)邏輯塊),將其增加至為邏輯塊大小的 自然數(shù)倍大,且將其清理至MSIB lla。
當(dāng)具有最小數(shù)目的有效蔟的兩個(gè)邏輯塊的有效蔟的總數(shù)目為例如等于 或大于作為預(yù)定的設(shè)定值的2k (對(duì)于一個(gè)邏輯塊)時(shí),重復(fù)上文所解釋的 步驟(以執(zhí)行該步驟,直至可從IS中的兩個(gè)邏輯塊創(chuàng)建空閑塊FB為止)。
以從具有最小數(shù)目的有效蔟的邏輯塊開始的順序收集2k個(gè)簇,且在IS 中進(jìn)行壓緊。
此處,選擇具有最小數(shù)目的有效簇的兩個(gè)邏輯塊。然而,數(shù)目不限于 二,且僅須為等于或大于二的數(shù)目。預(yù)定的設(shè)定值僅須等于或小于這樣的 簇的數(shù)目,其可存儲(chǔ)于比選定的邏輯塊的數(shù)目小一的數(shù)目的邏輯塊中。
主存儲(chǔ)區(qū)(MS) 11
解釋MSll。在MS11中,以軌道為單位執(zhí)行數(shù)據(jù)的管理??蓪⒋鎯?chǔ) 于MSll中的數(shù)據(jù)視為具有低更新頻率。當(dāng)執(zhí)行軌il^WC21、 FS12或 IS 13至MS 11的復(fù)制或移動(dòng)時(shí),將軌道寫入分配給MSIB lla的邏輯塊中。 另一方面,當(dāng)僅將軌道的一部分中的數(shù)據(jù)(簇)從FS12, IS13等等寫入 時(shí),執(zhí)行稍后所解釋的被動(dòng)合并,該被動(dòng)合并用于合并MS中的現(xiàn)存軌道 與新數(shù)據(jù)以產(chǎn)生新軌道,然后將所產(chǎn)生的軌道寫入MSIB lla中。當(dāng)無(wú)效 軌道在MS 11中累積且分配給MS 11的邏輯塊的數(shù)目超過MS 11所允許 的塊的數(shù)目的上限時(shí),執(zhí)行壓緊處理以產(chǎn)生空閑塊FB。
作為MS 11的壓緊處理,例如,執(zhí)行下文所解釋的僅關(guān)注邏輯塊中的有效軌道的數(shù)目的方法。
從具有最小數(shù)目的有效軌道的邏輯塊中選擇邏輯塊,直至可通過組合
無(wú)效軌道而產(chǎn)生空閑塊FB為止。
當(dāng)執(zhí)行用于整合存儲(chǔ)于選定邏輯塊中的軌道與WC 21、 FS 12或IS 13 中的數(shù)據(jù)的被動(dòng)合并時(shí),執(zhí)行壓緊。
將其中可整合2s個(gè)軌道的邏輯塊輸出至TFS 11 b ( 21軌道MS壓緊), 且將數(shù)目小于2i的軌道輸出至MSIB lla (小于2J的軌道壓緊)以產(chǎn)生較 大數(shù)目的空閑塊FB。
TFS llb適于其中以軌道為單位管理數(shù)據(jù)的邏輯塊單位的FIFO結(jié)構(gòu)。 TFS lib是這樣的緩沖器,其認(rèn)為通過TFS lib的數(shù)據(jù)具有比后級(jí)處的 MS11的數(shù)據(jù)更高的更新頻率。換句話說(shuō),在TFS lib的FIFO結(jié)構(gòu)中, 當(dāng)執(zhí)行從主機(jī)向同 一地址中的重寫時(shí),使通過FIFO的有效軌道(最新軌 道)無(wú)效。因此,可將通過TFSllb的軌道視為具有比從TFSllb清理至 MS 11的軌道更高的更新頻率。
圖8為管理表的圖,該管理表用于使數(shù)據(jù)管理單元120控制并管理圖 5和圖6中所示的各個(gè)部件。數(shù)據(jù)管理單元120具有(如上文所解釋的) 橋接ATA命令處理單元121與NAND存儲(chǔ)器10的功能,且包括DRAM 層管理單元120a,其執(zhí)行對(duì)存儲(chǔ)于DRAM 20中的數(shù)據(jù)的管理;邏輯NAND 層管理單元120b,其執(zhí)行對(duì)存儲(chǔ)于NAND存儲(chǔ)器10中的數(shù)據(jù)的管理;以 及物理NAND層管理單元120c,其管理作為物理存儲(chǔ)裝置的NAND存儲(chǔ) 器10。 RC簇管理表23、 WC軌道管理表24和WC簇管理表25由DRAM 層管理單元120a來(lái)控制。軌道管理表30、 FS/IS管理表40、 MS邏輯塊管 理表35、 FS/IS邏輯塊管理表42和FS/IS內(nèi)簇管理表44由邏輯NAND層 管理單元120b來(lái)管理。邏輯至物理轉(zhuǎn)譯表50由物理NAND層管理單元 120c來(lái)管理。
RC 22由RC簇管理表23來(lái)管理,該RC簇管理表23是反向查找表。 在該反向查找表中,可從存儲(chǔ)裝置的位置搜尋存儲(chǔ)于該位置中的邏輯地址。 WC 21由WC簇管理表25和WC軌道管理表24來(lái)管理,其中WC蔟管理表25為反向查找表,而WC軌道管理表24為正向查找表。在該正向查 找表中,可從邏輯地址搜尋其中存在與該邏輯地址對(duì)應(yīng)的數(shù)據(jù)的存儲(chǔ)裝置 的位置。
NAND存儲(chǔ)器10中的FS 12(FSIB 12a ) 、 IS 13以及MS 11 (TFS lib 和MSIBlla)的邏輯地址由軌道管理表30、 FS/IS管理表40、 MS邏輯塊 管理表35、 FS/IS邏輯塊管理表42以及FS/IS內(nèi)簇管理表44來(lái)管理。在 NAND存儲(chǔ)器10中的FS 12 ( FSIB 12a) 、 IS 13以及MS 11 ( TFS lib 和MSIBlla)中,執(zhí)行邏輯至物理轉(zhuǎn)譯表50的邏輯地址與物理地址的轉(zhuǎn) 換。將這些管理表存儲(chǔ)于NAND存儲(chǔ)器10上的區(qū)中且在SSD 100的初始 化期間將其從NAND存儲(chǔ)器讀取至DRAM 20。
RC簇管理表23 (反向查找)
參考圖9解釋RC簇管理表23。如上文所解釋,在由邏輯簇地址LSB (k-i)個(gè)位編索引的n-路集合關(guān)聯(lián)系統(tǒng)中管理RC 22。 RC簇管理表23 為用于管理RC (簇大小xm-線xn-路)22的各個(gè)條目的標(biāo)記的表。這些標(biāo) 記中的每一個(gè)包括狀態(tài)標(biāo)志(flag) 23a和邏輯軌道地址23b,其中狀態(tài)標(biāo) 志23a包括多個(gè)位。除了指示所述條目是否可使用(有效/無(wú)效)的有效位 之夕卜,狀態(tài)標(biāo)志23a還包括例如指示所述條目是否在等待從NAND存儲(chǔ)器 10讀出的位、以及指示所述條目是否在等待讀出至ATA命令處理單元121 的位。RC簇管理表23用作反向查找表,該反向查找表用于從DRAM 20 上的標(biāo)記存儲(chǔ)位置搜尋與LBA —致的邏輯軌道地址。
WC簇管理表25 (反向查找)
參考圖10解釋W(xué)C簇管理表25。如上文所解釋,在由邏輯簇地址LSB (k-i)個(gè)位編索引的n-路集合關(guān)聯(lián)系統(tǒng)中管理WC 21。 WC簇管理表25 為用于管理WC (簇大小xm-線xn-路)21的各個(gè)條目的標(biāo)記的表。這些標(biāo) 記中的每一個(gè)包括多個(gè)位的狀態(tài)標(biāo)志25a、扇區(qū)位置位映像(bitmap )25b, 以及邏輯軌道地址25c。
除了指示所述條目是否可使用(有^t/無(wú)效)的有效位之外,狀態(tài)標(biāo)志 25a還包括例如指示所述條目是否在等待清理至NAND存儲(chǔ)器10的位、以及指示所述條目是否在等待從ATA命令處理單元121寫入的位。通過 將扇區(qū)擴(kuò)展成2(1^個(gè)位,扇區(qū)位置位映像25b指示一個(gè)簇中所包括的2(1_k) 個(gè)扇區(qū)中的哪一個(gè)存儲(chǔ)有效數(shù)據(jù)。利用扇區(qū)位置位映像25b,可在WC21 中執(zhí)行與LBA相同的以扇區(qū)為單位進(jìn)行的管理。WC簇管理表25用作反 向查找表,該反向查找表用于從DRAM 20上的標(biāo)記存儲(chǔ)位置搜尋與LBA 一致的邏輯軌道地址。
WC軌道管理表24 (正向查找)
參考圖11解釋W(xué)C軌道管理表24。 WC軌道管理表24是用于管理信 息(其中以軌道單位收集存儲(chǔ)于WC 21上的簇)的表,且使用具有類似于 FIFO功能的鏈接列表(linked list)結(jié)構(gòu)來(lái)表示軌道當(dāng)中在WC 21中的登 記的順序(LRU) 。 LRU可通過WC 21中最后被更新的順序來(lái)表示。每 一列表的條目包括邏輯軌道地址24a、邏輯軌道地址中所包括的WC21中 的有效簇?cái)?shù)目24b、路-線位映像24c,以及下一個(gè)指針24d,該下一個(gè)指 針24d指示指向下一條目的指針。WC軌道管理表24用作正向查找表, 這是因?yàn)樗栊畔⑹菑倪壿嬡壍赖刂?4a獲得的。
路-線位映像24c為這樣的映像信息,其指示在WC21中的mxn個(gè)條 目中的哪一個(gè)中存儲(chǔ)WC21中的邏輯軌道地址中所包括的有效蔟。在其中 存儲(chǔ)有效蔟的條目中,有效位為"l"。路-線位映像24c包括例如( 一位(有 效)十log2ii個(gè)位(n-路))xm個(gè)位(m-線)。WC軌道管理表24具有鏈 接列表結(jié)構(gòu)。僅輸入關(guān)于WC21中存在的邏輯軌道地址的信息。
軌道管理表30 (正向查找)
參考圖12解釋軌道管理表30。軌道管理表30是用于以邏輯軌道地址 為單位來(lái)管理MS 11上的邏輯數(shù)據(jù)位置的表。當(dāng)以簇為單位將數(shù)據(jù)存儲(chǔ)于 FS 12或IS 13中時(shí),軌道管理表30存儲(chǔ)關(guān)于數(shù)據(jù)的基本信息和指向詳細(xì) 信息的指針。軌道管理表30被配置為陣列格式,該陣列格式具有邏輯軌道 地址30a作為索引。具有邏輯軌道地址30a作為索引的每一條目包括諸如 以下內(nèi)容的信息簇位映像30b、邏輯塊ID30c+邏輯塊內(nèi)軌道位置30d、 簇表指針30e、 FS蔟的數(shù)目30f,以及IS簇的數(shù)目30g。軌道管理表30用作正向查找表,這是因?yàn)橥ㄟ^使用邏輯軌道地址作為索引,可獲得諸如邏
輯塊ID (對(duì)應(yīng)于存儲(chǔ)裝置位置)的所需信息,在該邏輯塊ID中存儲(chǔ)對(duì)應(yīng) 于邏輯軌道地址的軌道。
簇位映像30b是通過將屬于一個(gè)邏輯軌道地址范圍的2(1^個(gè)簇按照邏 輯簇地址的升序分成例如八份而獲得的位映像。八個(gè)位中的每一個(gè)指示對(duì) 應(yīng)于2("3)個(gè)簇地址的簇是存在于MS 11中還是存在于FS 12或IS 13中。 當(dāng)該位為"0"時(shí),其指示作為搜尋對(duì)象的簇的確存在于MS 11中。當(dāng)該位 為"1"時(shí),其指示簇很可能存在于FS 12或IS 13中。
邏輯塊ID 30c是用于識(shí)別這樣的邏輯塊ID的信息,在該邏輯塊ID 中存儲(chǔ)與邏輯軌道地址對(duì)應(yīng)的軌道。邏輯塊內(nèi)軌道位置30d指示與邏輯軌 道地址(30a )對(duì)應(yīng)的軌道在由邏輯塊ID 30c指定的邏輯塊中的存儲(chǔ)位置。 因?yàn)橐粋€(gè)邏輯塊包括最大2i個(gè)有效軌道,所以邏輯塊內(nèi)軌道位置30d使用 i個(gè)位識(shí)別2i個(gè)軌道位置。
簇表指針30e是指向具有鏈接列表結(jié)構(gòu)的FS/IS管理表40的每一列表 的頂條目的指針。在遍M位映像30b進(jìn)行搜尋的過程中,當(dāng)指示出蔟很 可能存在于FS 12或IS 13中時(shí),通過使用簇表指針30e來(lái)執(zhí)行遍及FS/IS 管理表40的搜尋。FS簇的數(shù)目30f指示出存在于FS 12中的有效蔟的數(shù) 目。IS簇的數(shù)目30g指示出存在于IS13中的有效蔟的數(shù)目。
FS/IS管理表40 (正向查找)
參考圖13解釋FS/IS管理表40。 FS/IS管理表40是用于以邏輯蔟地 址管理存儲(chǔ)于FS 12 (包括FSIB 12a)或IS 13中的數(shù)據(jù)的位置的表。如 圖13中所示,對(duì)于每一個(gè)邏輯軌道地址,F(xiàn)S/IS管理表40以獨(dú)立鏈接列 表格式形成。如上文所解釋的,指向每一列表的頂條目的指針被存儲(chǔ)在軌 道管理表30的簇表指針30e的字段中。在圖13中,示出用于兩個(gè)邏輯軌 道地址的鏈接列表。每一個(gè)條目包括邏輯簇地址40a、邏輯塊ID40b、邏 輯塊內(nèi)簇位置40c、 FS/IS塊ID40d,以及下一個(gè)指針40e。 FS/IS管理表 40用作正向查找表,這是因?yàn)榭梢詮倪壿嫶氐刂?0a獲得諸如邏輯塊ID 40b以及邏輯塊內(nèi)簇位置40c (對(duì)應(yīng)于存儲(chǔ)裝置位置)的所需信息,其中在上述邏輯塊內(nèi)簇位置40c中存儲(chǔ)與邏輯簇地址40a對(duì)應(yīng)的簇。
邏輯塊ID 40b是用于識(shí)別其中存儲(chǔ)與邏輯簇地址40a對(duì)應(yīng)的簇的邏輯 塊ID的信息。邏輯塊內(nèi)簇位置40c指示與邏輯簇地址40a對(duì)應(yīng)的蔟在由 邏輯塊ID 40b指定的邏輯塊中的存儲(chǔ)位置。因?yàn)橐粋€(gè)邏輯塊包括最大2k 個(gè)有效蔟,所以邏輯塊內(nèi)簇位置40c使用k個(gè)位來(lái)識(shí)別2k個(gè)位置。在FS/IS 塊ID 40d中登記FS/IS塊ID,該FS/IS塊ID是稍后所解釋的FS/IS邏輯 塊管理表42的索引。FS/IS塊ID 40d是這樣的信息,其用于識(shí)別屬于FS 12 或IS13的邏輯塊。FS/IS管理表40中的FS/IS塊ID 40d被登記,以鏈接 至稍后所解釋的FS/IS邏輯塊管理表42。下一個(gè)指針40e表示指向?yàn)槊恳?個(gè)邏輯軌道地址鏈接的同一列表中的下一條目的指針。 MS邏輯塊管理表35 (反向查找)
參考圖14解釋MS邏輯塊管理表35。 MS邏輯塊管理表35是這樣的 表,其用于整體地管理關(guān)于MS 11中使用的邏輯塊的信息(例如,存儲(chǔ)哪 個(gè)軌道,以及軌道位置是否額外可記錄)。在MS邏輯塊管理表35中,還 登記與屬于FS 12 (包括FSIB 12)和IS 13的邏輯塊有關(guān)的信息。MS邏 輯塊管理表35以陣列格式形成,該陣列形式具有邏輯塊ID 35a作為索引。 在128 GB的NAND存儲(chǔ)器10的情況下,條目的數(shù)目最大可為32 K個(gè)條 目。這些條目中的每一個(gè)包括用于2i個(gè)軌道的軌道管理指針35b、有效 軌道的數(shù)目35c、可寫入的頂軌道35d,以及有效標(biāo)志35e。 MS邏輯塊管 理表35用作反向查找表,這是因?yàn)榭梢詮膶?duì)應(yīng)于存儲(chǔ)裝置位置的邏輯塊 ID 35a獲得諸如存儲(chǔ)于邏輯塊中的邏輯軌道地址的所需信息。
軌道管理指針35b存儲(chǔ)與邏輯塊ID 35a所指定的邏輯塊中的2'個(gè)軌道 位置中的每一個(gè)相對(duì)應(yīng)的邏輯軌道地址??梢允褂迷撨壿嬡壍赖刂穪?lái)進(jìn)行 遍及軌道管理表30的搜尋,該軌道管理表30具有邏輯軌道地址作為索引。 有效軌道的數(shù)目35c指示出在邏輯塊ID 35a所指定的邏輯塊中存儲(chǔ)的軌道 當(dāng)中的有效軌道的數(shù)目(最大為古)??蓪懭氲捻斳壍牢恢?5d指示當(dāng)邏 輯塊ID 35a所指定的邏輯塊為被額外記錄的塊時(shí)額外可記錄的頂位置(0 至2",當(dāng)額外記錄結(jié)束時(shí)為2"。當(dāng)作為MSll (包括MSIBlla)來(lái)管理邏輯塊條目時(shí),有效標(biāo)志35e為"l"。這里,"額外記錄,,是指以附加方式 將簇或軌道寫入邏輯塊中的空邏輯頁(yè)中。 FS/IS邏輯塊管理表42 (反向查找)
參考圖15解釋FS/IS邏輯塊管理表42。 FS/IS邏輯塊管理表42以陣 列格式形成,該陣列格式具有FS/IS塊ID 42a作為索引。FS/IS邏輯塊管 理表42是用于管理與用作FS 12或IS 13的邏輯塊有關(guān)的信息(與邏輯塊 ID的對(duì)應(yīng)、指向FS/IS內(nèi)蔟管理表44的索引、邏輯塊是否額外可記錄等) 的表。FS/IS邏輯塊管理表42主要通過使用FS/IS管理表40中的FS/IS塊 ID40d來(lái)存取。每一條目包括邏輯塊ID42b、塊內(nèi)簇表42c、有效蔟的數(shù) 目42d、可寫入的頂頁(yè)42e,以及有效標(biāo)志42f。 MS邏輯塊管理表35用作 反向查找表,這是因?yàn)榭梢詮膶?duì)應(yīng)于存儲(chǔ)裝置位置的FS/IS塊ID 42獲得 諸如在邏輯塊中存儲(chǔ)的簇的所需信息。
在MS邏輯塊管理表35中登記的邏輯塊當(dāng)中與屬于FS 12(包括FSIB 12 )和IS 13的邏輯塊相對(duì)應(yīng)的邏輯塊ID凈皮登記于邏輯塊ID 42b中。指 向稍后所解釋的FS/IS內(nèi)簇管理表44的索引被登記于塊內(nèi)簇表42c中,該 FS/IS內(nèi)簇管理表44指示在邏輯塊中的每一個(gè)簇位置中登記由哪個(gè)邏輯蔟 地址指定的邏輯簇。有效蔟的數(shù)目42d指示在FS/IS塊ID 42a所指定的邏 輯塊中存儲(chǔ)的簇當(dāng)中的有效蔟的數(shù)目(最大為2k)??蓪懭氲捻旐?yè)位置42e 指示當(dāng)FS/IS塊ID 42a所指定的邏輯塊為被額外記錄的塊時(shí)額外可記錄的 頂頁(yè)位置(0至2",當(dāng)額外記錄結(jié)束時(shí)為2i)。當(dāng)作為FS12 (包括FSIB 12 )或IS 13來(lái)管理邏輯塊條目時(shí),有效標(biāo)志42f為"1"。
FS/IS內(nèi)簇管理表44 (反向查找)
參考圖16解釋FS/IS內(nèi)簇管理表44。 FS/IS內(nèi)簇管理表44是指示在 用作FS 12或IS 13的邏輯塊中的每一個(gè)簇位置中記錄哪個(gè)簇的表。FS/IS 內(nèi)簇管理表44對(duì)于每一個(gè)邏輯塊具有2j頁(yè)x2師簇-2k個(gè)條目。在連續(xù)區(qū)中 排列與邏輯塊中的簇位置當(dāng)中的第0至第2k-l個(gè)簇位置對(duì)應(yīng)的信息。以與 屬于FS 12和IS 13的邏輯塊數(shù)目(P )相等的數(shù)目來(lái)存儲(chǔ)包括該2k#< piece ) 信息的表。FS/IS邏輯塊管理表42的塊內(nèi)簇表42c是用于該P(yáng)個(gè)表的位置信息(指針)。在連續(xù)區(qū)中排列的每一條目44a的位置指示在一個(gè)邏輯塊 中的蔟位置。作為條目44a的內(nèi)容,登記指向這樣的列表的指針,該列表 包括通過FS/IS管理表40管理的邏輯簇地址,使得可以識(shí)別簇位置中存儲(chǔ) 了哪個(gè)簇。換句話說(shuō),條目44a并不指示鏈接列表的頂部。在條目44a中 登記指向這樣一個(gè)列表的指針,該列表包括鏈接列表中的邏輯簇地址。 邏輯至物理轉(zhuǎn)譯表50 (正向查找)
參考圖17解釋邏輯至物理轉(zhuǎn)譯表50。邏輯至物理轉(zhuǎn)譯表50以陣列格 式形成,其具有邏輯塊ID 50a作為索引。在128 GB的NAND存儲(chǔ)器10 的情況下,條目的數(shù)目可為最大32K個(gè)條目。邏輯至物理轉(zhuǎn)譯表50是用 于管理關(guān)于邏輯塊ID與物理塊ID之間的轉(zhuǎn)換和壽命的信息的表。這些條 目中的每一個(gè)包括物理塊地址50b、擦除的次數(shù)50c,以及讀出的次數(shù)50d。 邏輯至物理轉(zhuǎn)譯表50用作正向查找表,這是因?yàn)榭梢詮倪壿媺KID獲得諸 如物理塊ID (物理塊地址)的所需信息。
物理塊地址50b指示屬于一個(gè)邏輯塊ID 50a的八個(gè)物理塊ID (物理 塊地址)。擦除的次數(shù)50c指示邏輯塊ID的擦除的次數(shù)。壞塊(BB)以 物理塊(512 KB)為單位來(lái)管理。然而,在32-位雙速模式中,擦除的次 數(shù)以一個(gè)邏輯塊(4 MB)為單位來(lái)管理。讀出的次數(shù)50d指示邏輯塊ID 的讀出的次數(shù)。擦除的次數(shù)50c可用于例如磨損均化處理中,該磨損均化 處理用于均化NAND型閃速存儲(chǔ)器的重寫的次數(shù)。讀出的次數(shù)50d可用于 刷新處理中,該刷新處理用于重寫在具有劣化的保持性能的物理塊中存儲(chǔ) 的數(shù)據(jù)。
在國(guó)際申請(qǐng)No. PCT/JP2008/066508以及No. PCT/JP2008/066507中 描述了磨損均化處理的實(shí)例。在國(guó)際申請(qǐng)No. PCT/JP2008/067597中描述 了刷新處理的實(shí)例,其全部?jī)?nèi)容納入本文作為參考。
圖8中所示的管理表通過下文所解釋的管理對(duì)象來(lái)對(duì)照。
RC管理RC蔟管理表23
WC管理WC簇管理表25和WC軌道管理表24 MS管理軌道管理表30和MS邏輯塊管理表35FS/IS管理軌道管理表30、 FS/IS管理表40、 MS邏輯塊管理表35、 FS/IS邏輯塊管理表42 ,以及FS/IS內(nèi)簇管理表44
包括MS 11、 MSIB lla和TFS lib的MS區(qū)的結(jié)構(gòu)以MS結(jié)構(gòu)管理 表(未示出)進(jìn)行管理。具體地,管理分配給MSll、 MSIB lla和TFS lib 的邏輯塊等等。包括FS12、 FSIB 12a和IS 13的FS/IS區(qū)的結(jié)構(gòu)以FS/IS 結(jié)構(gòu)管理表(未示出)進(jìn)行管理。具體地,管理分配給FS 12、 FSIB 12a 和IS 13的邏輯塊等等。
讀取處理
參考圖18中所示的流程圖來(lái)解#^取處理。當(dāng)從ATA命令處理單元 121輸入讀取命令、作為讀出地址的LBA以及讀出大小時(shí),數(shù)據(jù)管理單元 120遍及圖9中所示的RC簇管理表23和圖10中所示的WC簇管理表25 進(jìn)行搜尋(步驟S100 )。具體地,數(shù)據(jù)管理單元120從RC簇管理表23 和WC簇管理表25選擇與LBA的邏輯簇地址的LSB ( k-i)個(gè)位(參見 圖7)對(duì)應(yīng)的線,且比較在選定的線的每一路中所輸入的邏輯軌道地址23b 和25c與LBA的邏輯軌道地址(步驟S110 )。當(dāng)存在使得輸入于自身中 的邏輯軌道地址與LBA的邏輯軌道地址一致的路時(shí),數(shù)據(jù)管理單元120 將此視為高速緩沖存儲(chǔ)器命中(cache hit)。數(shù)據(jù)管理單元120讀出與RC 簇管理表23或WC簇管理表25的命中的線和路對(duì)應(yīng)的WC 21或RC 22 的數(shù)據(jù),且將數(shù)據(jù)發(fā)送至ATA命令處理單元121 (步驟S115 )。
當(dāng)RC 22或WC 21中不存在命中時(shí)(步驟S110 ),數(shù)據(jù)管理單元120 搜尋作為搜尋對(duì)象的簇被存儲(chǔ)于NAND存儲(chǔ)器10的哪一部分中。首先, 數(shù)據(jù)管理單元120遍及圖12中所示的軌道管理表30進(jìn)行搜尋(步驟S120 )。 軌道管理表30通過邏輯軌道地址30a來(lái)編索引。因此,數(shù)據(jù)管理單元120 僅檢查與LBA指定的邏輯軌道地址一致的邏輯軌道地址30a的條目。
數(shù)據(jù)管理單元120基于需要檢查的LBA的邏輯簇地址而從蔟位映像 30b中選擇對(duì)應(yīng)位。當(dāng)所述對(duì)應(yīng)位指示"O"時(shí),這意味著簇的最新數(shù)據(jù)的確 存在于MS中(步驟S130 )。在這種情況下,數(shù)據(jù)管理單元120從邏輯軌 道地址30a的同 一條目中的邏輯塊ID 30c和邏輯塊內(nèi)軌道位置30d獲得邏輯塊ID以及軌道存在于其中的軌道位置。數(shù)據(jù)管理單元120使用LBA的 邏輯簇地址的LSB (k-i)個(gè)位來(lái)計(jì)算從軌道位置的偏移。因此,數(shù)據(jù)管理 單元120可計(jì)算與NAND存儲(chǔ)器10中的邏輯簇地址相對(duì)應(yīng)的簇被存儲(chǔ)的 位置。具體地,邏輯NAND層管理單元120b向物理NAND層管理單元 120c提供如上文所解釋的從軌道管理表30獲取的邏輯塊ID 30c和邏輯 塊內(nèi)位置30d;以及LBA的邏輯簇地址的LSB ( k-i)個(gè)位。
物理NAND層管理單元120c從圖17中所示的具有邏輯塊ID作為索 引的邏輯至物理轉(zhuǎn)譯表50獲取對(duì)應(yīng)于邏輯塊ID 30c的物理塊地址(物理 塊ID )(步驟S160 )。數(shù)據(jù)管理單元120從邏輯塊內(nèi)軌道位置30d計(jì)算 所獲取的物理塊ID中的軌道位置(軌道頂位置),且進(jìn)一步從LBA的邏 輯簇地址的LSB (k-i)個(gè)位計(jì)算與物理塊ID中所計(jì)算出的軌道頂位置的 偏移。因此,數(shù)據(jù)管理單元120可獲取物理塊中的簇。數(shù)據(jù)管理單元120 經(jīng)由RC 22將從NAND存儲(chǔ)器10的MS 11獲取的蔟發(fā)送至ATA命令處 理單元121 (步驟S180 )。
另一方面,當(dāng)基于LBA的邏輯簇地址而在遍及蔟位映像30b的搜尋 中所述對(duì)應(yīng)位指示"l"時(shí),4艮可能該簇存儲(chǔ)于FS 12或IS 13中(步驟S130 )。 在這種情況下,數(shù)據(jù)管理單元120在軌道管理表30中的邏輯軌道地址30a 的相關(guān)條目當(dāng)中提取蔟表指針30e的條目,且使用此指針順序地搜尋遍及 與FS/IS管理表40的相關(guān)邏輯軌道地址相對(duì)應(yīng)的鏈接列表(步驟S140 )。 具體地,數(shù)據(jù)管理單元120在相關(guān)邏輯軌道地址的鏈接列表中搜尋與LBA 的邏輯簇地址一致的邏輯簇地址40a的條目。當(dāng)存在邏輯蔟地址40a的一 致條目時(shí)(步驟S150 ),數(shù)據(jù)管理單元120在一致列表中獲取邏輯塊ID 40b 和邏輯塊內(nèi)簇位置40c。以與上文所解釋的方式相同的方式,數(shù)據(jù)管理單 元120使用邏輯至物理轉(zhuǎn)譯表50來(lái)獲取物理塊中的簇(步驟S160和S180 )。 具體地,數(shù)據(jù)管理單元120從邏輯至物理轉(zhuǎn)譯表50獲取與所獲取的邏輯塊 ID對(duì)應(yīng)的物理塊地址(物理塊ID)(步驟S160),且從由邏輯塊內(nèi)蔟位 置40c的條目獲取的邏輯塊內(nèi)簇位置計(jì)算所獲取的物理塊ID的簇位置。 因此,數(shù)據(jù)管理單元120可獲取物理塊中的簇。數(shù)據(jù)管理單元120經(jīng)由RC22將從NAND存儲(chǔ)器10的FS 12或IS 13獲取的蔟發(fā)送至ATA命令處理 單元121 (步驟S180)。
當(dāng)在遍及FS/IS管理表40的搜尋中不存在作為搜尋對(duì)象的簇時(shí)(步驟 S150),數(shù)據(jù)管理單元120再次遍及軌道管理表30的條目進(jìn)行搜尋,且 決定在MS 11上的位置(步驟S170)。
寫入處理
參考圖19中所示的流程圖來(lái)解釋寫入處理。通過寫入命令而寫入的數(shù) 據(jù)總是一次存儲(chǔ)于WC 21上。此后,根據(jù)條件而將數(shù)據(jù)寫入NAND存儲(chǔ) 器10中。在寫入處理中,很可能執(zhí)行清理處理和壓緊處理。在該實(shí)施例中, 將寫入處理粗略劃分成寫入高速緩沖存儲(chǔ)器閃速處理(write cache flash processing)(在下文中為WCF處理)與清除輸入緩沖器處理(clean input buffer processing)(在下文中為CIB處理)的兩個(gè)階段。步驟S300至 S320指示從來(lái)自ATA命令處理單元121的寫入請(qǐng)求至WCF處理的處理。 步驟S330至最后步驟指示CIB處理。
WCF處理是用于將WC 21中的數(shù)據(jù)復(fù)制至NAND存儲(chǔ)器10 ( FS 12 的FSIB 12a、或者M(jìn)S 11的MSIB 11a)的處理。來(lái)自ATA命令處理單 元121的單獨(dú)的寫入請(qǐng)求或高速緩沖存儲(chǔ)器清理請(qǐng)求可僅通過該處理來(lái)完 成。這使得可以將ATA命令處理單元121的寫入請(qǐng)求的已開始處理中的 延遲最大限制為這樣的時(shí)間,該時(shí)間用于在與WC 21的容量相等的NAND 存儲(chǔ)器10中寫入。
CIB處理包括用于將FSIB 12a中通過WCF處理而寫入的數(shù)據(jù)移動(dòng)至 FS 12的處理,以及用于將MSIB 11a中通過WCF處理而寫入的數(shù)據(jù)移動(dòng) 至MS 11的處理。當(dāng)開始CIB處理時(shí),很可能以鏈?zhǔn)椒磻?yīng)的方式執(zhí)行 NAND存儲(chǔ)器中的部件(FS 12、 IS 13、 MS11等)當(dāng)中的數(shù)據(jù)移動(dòng)和壓 緊處理。全部處理所需的時(shí)間大體上根據(jù)狀態(tài)而改變。
WCF處理
首先,解釋W(xué)CF處理的細(xì)節(jié)。當(dāng)從ATA命令處理單元121輸入寫入 命令、作為寫入地址的LBA以及寫入大小時(shí),DRAM層管理單元120a遍及圖10中所示的WC簇管理表25進(jìn)行搜尋(步驟S300和S305 )。 WC21的狀態(tài)通過圖10中所示的WC簇管理表25的狀態(tài)標(biāo)志25a(例如, 3個(gè)位)來(lái)限定。最典型地,狀態(tài)標(biāo)志25a的狀態(tài)以無(wú)效(可用)—等待 從ATA寫入—有效(不可用)—等待清理至NAND—無(wú)效(可用)的順 序轉(zhuǎn)變。首先,從LBA的邏輯簇地址LSB (k-i)個(gè)位判定寫入目的地處 的線,且搜尋所判定的線的n路。當(dāng)與所輸入的LBA的邏輯軌道地址相 同的邏輯軌道地址25c 4皮存儲(chǔ)于所判定的線的n路中時(shí)(步驟S305), DRAM層管理單元120a將此條目鎖定( secure)為用于寫入襄的條目, 因?yàn)樵摋l目將,i^寫(有效(不可用)—等待從ATA寫入)。
DRAM層管理單元120a向ATA命令處理單元121通知對(duì)應(yīng)于該條目 的DRAM地址。當(dāng)ATA命令處理單元121所進(jìn)行的寫入完成時(shí),數(shù)據(jù)管 理單元120將該條目的狀態(tài)標(biāo)志25a改變成有效(不可用),且將所需數(shù) 據(jù)登記在扇區(qū)位置位映像25b和邏輯軌道地址25c的空間中。數(shù)據(jù)管理單 元120更新WC軌道管理表24。具體地,當(dāng)輸入與已登記于WC軌道管 理表24的列表中的邏輯軌道地址24a相同的LBA地址時(shí),數(shù)據(jù)管理單元 120更新相關(guān)列表的WC簇的數(shù)目24b以及路-線位映像24c,且改變下一 個(gè)指針24d,以使該列表變?yōu)樽钚铝斜怼.?dāng)輸入與登記于WC軌道管理表 24的列表中的邏輯軌道地址24a不同的LBA地址時(shí),數(shù)據(jù)管理單元120 創(chuàng)建新列表,該新列表具有邏輯軌道地址24a、 WC簇的數(shù)目24b、路-線 位映像24c以及下一個(gè)指針24d的條目,且將該列表登記為最新列表。數(shù) 據(jù)管理單元120執(zhí)行上文所解釋的表更新,從而完成寫入處理(步驟S320 )。 另一方面,當(dāng)與所輸入的LBA的邏輯軌道地址相同的邏輯軌道地址 25c沒有存儲(chǔ)于所判定的線的n路中時(shí),數(shù)據(jù)管理單元120判斷是否有必 要清理至NAND存儲(chǔ)器10 (步驟S305 )。首先,數(shù)據(jù)管理單元120判斷 所判定的線中的可寫入的路是否為最后的第n路??蓪懭氲穆肥蔷哂袩o(wú)效 (可用)的狀態(tài)標(biāo)志25a的路,或者具有有效(不可用)的狀態(tài)標(biāo)志25a 并等待清理至NAND的路。當(dāng)狀態(tài)標(biāo)志25a為等待清理至NAND時(shí),這 意味著清理開始,且條目在等待清理的結(jié)束。當(dāng)可寫入的路并非為最后的第n路,且可寫入的路是具有無(wú)效(可用)的狀態(tài)標(biāo)志25a的路時(shí),數(shù)據(jù) 管理單元120將此條目鎖定為用于簇寫入的條目(無(wú)效(可用)—等待從 ATA寫入)。數(shù)據(jù)管理單元120向ATA命令處理單元121通知對(duì)應(yīng)于該 條目的DRAM地址,且使ATA命令處理單元121執(zhí)行寫入。以與上文所 解釋的方式相同的方式,數(shù)據(jù)管理單元120更新WC簇管理表25和WC 軌道管理表24 (步驟S320)。
當(dāng)可寫入的路并非為最后的第n路時(shí),以及當(dāng)可寫入的路為具有有效 (不可用)的狀態(tài)標(biāo)志25a并等待清理至NAND的路時(shí),數(shù)據(jù)管理單元 120將此條目鎖定為用于寫入簇的條目(有效(不可用)且等待清理至 NAND—有效(不可用)且等待從NAND清理并等待從ATA寫入)。當(dāng) 結(jié)束清理時(shí),數(shù)據(jù)管理單元120將狀態(tài)標(biāo)志25a改變?yōu)榈却龔腁TA寫入, 向ATA命令處理單元121通知對(duì)應(yīng)于該條目的DRAM地址,且使ATA 命令處理單元121執(zhí)行寫入。以與上文所解釋的方式相同的方式,數(shù)據(jù)管 理單元120更新WC簇管理表25和WC軌道管理表24 (步驟S320 )。
當(dāng)輸入來(lái)自ATA命令處理單元121的寫入請(qǐng)求而不必須觸發(fā)清理處 理時(shí),執(zhí)行上文所解釋的處理。另一方面,當(dāng)在輸入寫入請(qǐng)求之后觸發(fā)清 理處理時(shí),執(zhí)行下文所解釋的處理。在步驟S305處,當(dāng)所判定的線中的 可寫入的路為最后的第n路時(shí),數(shù)據(jù)管理單元120基于這樣的條件而選擇 將要清理的軌道(即,WC 21中的條目),該條件在判定將要從WC 21 清理至NAND存儲(chǔ)器10的數(shù)據(jù)的方法的(i)中進(jìn)行解釋,即,
(i)當(dāng)通過標(biāo)記判定的可寫入的路為最后的(在該實(shí)施例中,第n個(gè)) 空閑的路時(shí),即,當(dāng)將要使用最后的空閑的路時(shí),決定清理登記于線中的 軌道當(dāng)中的基于LRU最早更新的軌道。
當(dāng)根據(jù)上文所解釋的策略判定將要清理的那個(gè)軌道時(shí),如上文所解釋 的,如果相同邏輯軌道地址中所包括的WC21中的所有簇將被清理,且將 要清理的簇的量超過軌道大小的50% (即,如果WC中的有效蔟的數(shù)目等 于或大于決定清理的軌道中的2W-"時(shí)),則DRAM層管理單元120a執(zhí) 行至MSIB lla的清理(步驟S310 )。如果簇的量未超過軌道大小的50%(即,WC中的有效簇的數(shù)目小于決定清理的軌道中的2W-"),則DRAM 層管理單元120a執(zhí)行至FSIB 12a的清理(步驟S315 )。稍后解釋從WC 21至MSIB lla的清理以及從WC 21至FSIB 12a的清理的細(xì)節(jié)。將選定 的清理?xiàng)l目的狀態(tài)標(biāo)志25a從有效(不可用)轉(zhuǎn)變?yōu)榈却謇碇罭AND存 儲(chǔ)器10。
通過使用WC軌道管理表24,執(zhí)行對(duì)清理目的地的該判斷。對(duì)于每一 邏輯軌道地址,在WC軌道管理表24中登記指示有效蔟數(shù)目的WC蔟的 數(shù)目24b的條目。數(shù)據(jù)管理單元120參考WC簇的數(shù)目24b的條目來(lái)判定 應(yīng)將FSIB 12a和MSIB lla中的哪一者設(shè)定為從WC 21的清理的目的地。 屬于邏輯軌道地址的所有簇都以位映像格式登記于路-線位映像24c中。因 此,在執(zhí)行清理過程中,數(shù)據(jù)管理單元120可參考路-線位映像24c而容易 地獲悉應(yīng)清理的簇中的每一個(gè)在WC21中的存儲(chǔ)位置。
在寫入處理期間或在寫入處理之后,數(shù)據(jù)管理單元120在以下條件得 到滿足時(shí)還以相同的方式執(zhí)行至NAND存儲(chǔ)器10的清理處理 (ii)登記于WC 21中的軌道的數(shù)目超過預(yù)定數(shù)目。
WC—MSIB (復(fù)制)
當(dāng)根據(jù)基于有效簇的數(shù)目(有效簇的數(shù)目等于或大于2("-")的判斷而 執(zhí)行從WC 21至MSIB lla的清理時(shí),數(shù)據(jù)管理單元120如上文所解釋地 執(zhí)行下文所解釋的過程(步驟S310 )。
1. 參考WC簇管理表25且參考與將要清理的簇相對(duì)應(yīng)的標(biāo)記中的扇 區(qū)位置位映像25b,當(dāng)并非所有扇區(qū)位置位映像25b都為"l"時(shí),數(shù)據(jù)管理 單元120執(zhí)行稍后所解釋的軌道內(nèi)扇區(qū)填充(padding ),用于通過從NAND 存儲(chǔ)器10讀出相同邏輯軌道地址中所包括的丟失扇區(qū)而與不存在于WC 21中的扇區(qū)合并。
2. 當(dāng)決定清理的軌道的數(shù)目小于2i時(shí),數(shù)據(jù)管理單元120添加決定清 理的、具有2W-"個(gè)或更多有效簇的軌道,直至決定清理的軌道的數(shù)目從 WC21中的最舊者起達(dá)到2'個(gè)為止。
3. 當(dāng)將要復(fù)制的軌道有25個(gè)或更多時(shí),數(shù)據(jù)管理單元120以邏輯塊為單位(每2i個(gè)軌道作為一個(gè)集合)在MSIBlla中執(zhí)行寫入。
4. 數(shù)據(jù)管理單元120以軌道為單位將無(wú)法形成2J個(gè)軌道的集合的軌道 寫入MSIBlla中。
5. 數(shù)據(jù)管理單元120在復(fù)制結(jié)束之后使已存在于FS、 IS和MS上的 簇和軌道當(dāng)中的屬于經(jīng)復(fù)制的軌道的簇和軌道無(wú)效。
解釋從WC 21至MSIB lla的復(fù)制處理中所涉及的各個(gè)管理表的更新 處理。數(shù)據(jù)管理單元120將這樣的條目中的狀態(tài)標(biāo)志25a設(shè)定為無(wú)效,這 些條目與WC 21中屬于WC簇管理表25中經(jīng)清理的軌道的所有簇相對(duì)應(yīng)。 此后,有可能在這些項(xiàng)中進(jìn)行寫入。關(guān)于與WC軌道管理表24中的經(jīng)清 理的軌道對(duì)應(yīng)的列表,數(shù)據(jù)管理單元120改變或刪除例如緊接在之前的一 歹寸表(an immediately preceding list)的下一個(gè)指針24d, JU吏該列表無(wú)效。
另一方面,當(dāng)執(zhí)行從WC21至MSIBlla的軌道清理時(shí),數(shù)據(jù)管理單 元120才艮據(jù)軌道清理而更新軌道管理表30和MS邏輯塊管理表35。首先, 數(shù)據(jù)管理單元120搜尋作為軌道管理表30的索引的邏輯軌道地址30a,以 判斷是否已經(jīng)登記對(duì)應(yīng)于經(jīng)清理的軌道的邏輯軌道地址30a。當(dāng)已登記邏 輯軌道地址30a時(shí),數(shù)據(jù)管理單元120更新該索引的簇位映像30b的字段 (因?yàn)檐壍纼羝で謇碇罬S 11側(cè),所以所有相關(guān)位被設(shè)定為"O,,)以及邏輯 塊ID 30c+邏輯塊內(nèi)軌道位置30d。當(dāng)未登記對(duì)應(yīng)于經(jīng)清理的軌道的邏輯軌 道地址30a時(shí),數(shù)據(jù)管理單元120將蔟位映像30b以及邏輯塊ID 30c+邏 輯塊內(nèi)軌道位置30d登記于相關(guān)邏輯軌道地址30a的條目中。數(shù)據(jù)管理單 元120根據(jù)軌道管理表30的改變而在必要時(shí)更新MS邏輯塊管理表35中 的邏輯塊ID 35a、軌道管理指針35b、有效軌道的數(shù)目35c、可寫入的頂 軌道35d等的條目。
當(dāng)執(zhí)行從其它區(qū)(FS12和IS13)等等至MSll的軌道寫入時(shí),或當(dāng) 執(zhí)行通過MS 11中的壓緊處理而進(jìn)行的MS內(nèi)軌道寫入時(shí),可將作為寫入 對(duì)象的邏輯軌道地址中所包括的WC 21中的有效蔟同時(shí)寫入MS 11中。 這樣的被動(dòng)合并可隨著從WC 21至MS 11的寫入而存在。當(dāng)執(zhí)行這樣的 被動(dòng)合并時(shí),將簇從WC21刪除(使其無(wú)效)。WC—FSIB (復(fù)制)
當(dāng)根據(jù)基于有效簇的數(shù)目(有效簇的數(shù)目等于或大于2("-")的判斷而 執(zhí)行從WC 21至FSIB 12a的清理時(shí),數(shù)據(jù)管理單元120執(zhí)行下文所解釋 的過程。
1. 參考與將要清理的簇相對(duì)應(yīng)的標(biāo)記中的扇區(qū)位置位映像25b,當(dāng)并 非所有扇區(qū)位置位映像25b都為"1"時(shí),數(shù)據(jù)管理單元120執(zhí)行蔟內(nèi)扇區(qū) 填充,用于通it^ NAND存儲(chǔ)器10讀出相同邏輯簇地址中所包括的丟失 扇區(qū)而與不存在于WC21中的扇區(qū)合并。
2. 數(shù)據(jù)管理單元120通過以從最舊軌道起的順序追蹤WC中的軌道而 從僅具有小于2》i-"個(gè)有效簇的軌道中提取蔟,且當(dāng)有效簇的數(shù)目達(dá)到2k 時(shí),以邏輯塊為單位將所有簇寫入FSIB 12a中。
3. 當(dāng)未尋找到2k個(gè)有效蔟時(shí),數(shù)據(jù)管理單元120以與邏輯頁(yè)的數(shù)目相 等的數(shù)目將具有小于2》""的數(shù)目的有效蔟的所有軌道寫入FSIB 12a中。
4. 數(shù)據(jù)管理單元120在復(fù)制結(jié)束之后使已存在于FS和IS上的簇當(dāng)中 的與4皮復(fù)制的簇具有相同邏輯簇地址的簇?zé)o效。
解釋從WC 21至FSIB 12a的該復(fù)制處理中所涉及的各個(gè)管理表的更 新處理。數(shù)據(jù)管理單元120將這樣的條目中的狀態(tài)標(biāo)志25a設(shè)定為無(wú)效, 這些條目與WC 21中屬于WC簇管理表25中經(jīng)清理的軌道的所有簇相對(duì) 應(yīng)。此后,有可能在這些條目中進(jìn)行寫入。關(guān)于與WC軌道管理表24中 的經(jīng)清理的軌道相對(duì)應(yīng)的列表,數(shù)據(jù)管理單元120改變或刪除例如緊接在 之前的一列表的下一個(gè)指針24d,且使該列表無(wú)效。
另一方面,當(dāng)執(zhí)行從WC21至FSIB12a的蔟清理時(shí),數(shù)據(jù)管理單元 120根據(jù)簇清理而更新軌道管理表30的簇表指針30e、 FS簇的數(shù)目31f等 等。數(shù)據(jù)管理單元120還更新FS/IS管理表40的邏輯塊ID 40b 、邏輯塊 內(nèi)簇位置40c等等。關(guān)于最初不存在于FS 12中的蔟,數(shù)據(jù)管理單元120 將列表添加至FS/IS管理表40的鏈接列表。根據(jù)該更新,數(shù)據(jù)管理單元 120更新MS邏輯塊管理表35、 FS/IS邏輯塊管理表42和FS/IS內(nèi)蔟管理 表44的相關(guān)的區(qū)段。CIB處理
當(dāng)上文所解釋的WCF處理結(jié)束時(shí),邏輯NAND層管理單元120b執(zhí) 行CIB處理,該CIB處理包括用于將FSIB 12a中通過WCF處理而寫入 的數(shù)據(jù)移動(dòng)至FS 12的處理、以及用于將MSIB lla中通過WCF處理而 寫入的數(shù)據(jù)移動(dòng)至MSll的處理。當(dāng)開始CIB處理時(shí),如上文所解釋的, 很可能以鏈?zhǔn)椒磻?yīng)的方式執(zhí)行塊之間的數(shù)據(jù)移動(dòng)和壓緊處理。全部處理所 需的時(shí)間大體上根據(jù)狀態(tài)而改變。在CIB處理中,基本上,首先,執(zhí)行 MS 11中的CIB處理(步驟S330),隨后,執(zhí)行FS12中的CIB處理(步 驟S340),再次執(zhí)行MS 11中的CIB處理(步驟S350),執(zhí)行IS13中 的CIB處理(步驟360 ),且最后再次執(zhí)行MS 11中的CIB處理(步驟 S370 )。在從FS 12至MSIB lla的清理處理、從FS 12至IS 13的清理處 理或從IS13至MSIBlla的清理處理中,當(dāng)過程中出現(xiàn)循環(huán)時(shí),可能不按 順序執(zhí)行處理。下面將單獨(dú)地解釋MS 11中的CIB處理、FS 12中的CIB 處理和IS 13中的CIB處理。
MS11中的CIB處理
首先,解釋MSll中的CIB處理(步驟S330)。當(dāng)執(zhí)行軌道從WC21、 FS 12和IS 13向MS 11的移動(dòng)時(shí),將軌道寫入MSIB lla中。在完成在 MSIB lla中的寫入之后,如上文所解釋的,更新軌道管理表30,且改變 (移動(dòng))軌道排列于其中的邏輯塊ID30c、塊內(nèi)軌道位置30d等等。當(dāng)將 新軌道寫入MSIB lla中時(shí),使從開始起就存在于MS 11或TFS lib中的 軌道無(wú)效。該無(wú)效化處理是這樣實(shí)現(xiàn)的,即,使這樣的軌道無(wú)效,所述軌 道來(lái)自MS邏輯塊管理表35中的其中存儲(chǔ)舊軌道信息的邏輯塊的條目。具 體地,刪除MS邏輯塊管理表35的條目中的軌道管理指針35b的字段中 的相關(guān)軌道的指針,且使有效軌道的數(shù)目減一。當(dāng)通過該軌道無(wú)效化而使 一個(gè)邏輯塊中的所有軌道無(wú)效時(shí),4吏有效標(biāo)志35e無(wú)效。通過這樣的無(wú)效 化等等,產(chǎn)生MSll的包括無(wú)效軌道的邏輯塊。當(dāng)重復(fù)此步驟時(shí),邏輯塊 的使用效率會(huì)降低而引起可用邏輯塊的不足。
當(dāng)出現(xiàn)這種情形且分配給MS 11的邏輯塊的數(shù) 超過MS ll所允許的邏輯塊的數(shù)目的上限時(shí),數(shù)據(jù)管理單元120執(zhí)行壓緊處理以產(chǎn)生空閑塊 FB。將該空閑塊FB返回至物理NAND層管理單元120c。邏輯NAND層 管理單元120b減少分配給MS 11的邏輯塊的數(shù)目,且接著重新從物理 NAND層管理單元120c獲取可寫入的空閑塊FB。壓緊處理是這樣的處理, 其用于在新邏輯塊中收集作為壓緊對(duì)象的邏輯塊的有效蔟,或者將作為壓 緊對(duì)象的邏輯塊中的有效軌道復(fù)制至其它邏輯塊,以產(chǎn)生返回至物理 NAND層管理單元120c的空閑塊FB,且改善邏輯塊的使用的效率。在執(zhí) 行壓緊的過程中,當(dāng)存在WC 21、 FS 12和IS 13上的有M時(shí),數(shù)據(jù)管 理單元120執(zhí)行被動(dòng)合并,該被動(dòng)合并用于合并作為壓緊對(duì)象的在邏輯軌 道地址中所包括的所有有效蔟。登記于TFS lib中的邏輯塊不包括在壓緊 對(duì)象中。
具體地解釋從MSIB lla至MS 11或至TFS lib的移動(dòng)以及將MSIB lla中存在滿邏輯塊設(shè)定為條件的壓緊處理的實(shí)例。"滿"邏輯塊是指其中 所有邏輯頁(yè)已被寫入且不可能進(jìn)行額外記錄的邏輯塊。
1. 參考MS邏輯塊管理表35的有效標(biāo)志35e,當(dāng)在MS 11中存在被 無(wú)效的邏輯塊時(shí),數(shù)據(jù)管理單元120將該邏輯塊"^殳定為空閑塊FB。
2. 數(shù)據(jù)管理單元120將MSIBlla中的滿邏輯塊移動(dòng)至MSll。具體 地,數(shù)據(jù)管理單元120更新上文所解釋的MS結(jié)構(gòu)管理表(未示出),且 將邏輯塊從在MSIB的管理之下轉(zhuǎn)移至在MS 11的管理之下。
3. 數(shù)據(jù)管理單元120判斷分配給MS 11的邏輯塊的數(shù)目是否超過MS ll所允許的邏輯塊的數(shù)目的上限。當(dāng)邏輯塊的數(shù)目超過上限時(shí),數(shù)據(jù)管理 單元120執(zhí)行下文所解釋的MS壓緊。
4. 參考MS邏輯塊管理表35的有效軌道的數(shù)目35c的字段等等,數(shù) 據(jù)管理單元120以有效軌道的數(shù)目對(duì)不包括在TFS lib中的邏輯塊當(dāng)中的 具有被無(wú)效的軌道的邏輯塊進(jìn)行排序。
5. 數(shù)據(jù)管理單元120從具有小數(shù)目的有效軌道的邏輯塊收集軌道,且 執(zhí)行壓緊。在執(zhí)行壓緊過程中,首先,對(duì)于邏輯塊中的每一個(gè),對(duì)軌道進(jìn) 行復(fù)制(一次復(fù)制^個(gè)軌道),以執(zhí)行壓緊。當(dāng)作為壓緊對(duì)象的軌道具有在WC21、 FS 12和IS 13中的有效蔟時(shí),數(shù)據(jù)管理單元120還合并這些 有效蔟。
6. 數(shù)據(jù)管理單元120將壓緊源處的邏輯塊設(shè)定為空閑塊FB。
7. 當(dāng)執(zhí)行壓緊且一個(gè)邏輯塊包括有效的2i個(gè)軌道時(shí),數(shù)據(jù)管理單元 120將該邏輯塊移動(dòng)至TFS lib的頂部。
8. 當(dāng)可通過將邏輯塊中的有效軌道復(fù)制至另 一邏輯塊而產(chǎn)生空閑塊 FB時(shí),數(shù)據(jù)管理單元120以軌道單位將數(shù)目小于2i的有效軌道額外記錄 在MSIBlla中。
9. 數(shù)據(jù)管理單元120將壓緊源處的邏輯塊設(shè)定為空閑塊FB。
10. 當(dāng)分配給MS 11的邏輯塊的數(shù)目降低至MS 11所允許的邏輯塊的 數(shù)目的上限以下時(shí),數(shù)據(jù)管理單元120結(jié)束MS壓緊處理。
FS 12中的CIB處理
解釋FS 12中的CIB處理(步驟S340)。當(dāng)通過從WC 21至FSIB 12a 的簇寫入處理而在FSIB 12a中產(chǎn)生其中所有的邏輯頁(yè)都被寫入的滿邏輯 塊時(shí),將FSIB 12a中的邏輯塊從FSIB 12a移動(dòng)至FS 12。才艮據(jù)該移動(dòng), 將舊邏輯塊從由多個(gè)邏輯塊配置的FIFO結(jié)構(gòu)的FS 12清理。
具體地如下文所解釋地實(shí)現(xiàn)從FSIB 12a至FS 12的清理以及從FS 12 至MS 11和/或IS 13的清理。
1. 參考FS/IS邏輯塊管理表42的有效標(biāo)志35e等等,當(dāng)在FS 12中存 在被無(wú)效的邏輯塊時(shí),數(shù)據(jù)管理單元120將該邏輯塊設(shè)定為空閑塊FB。
2. 數(shù)據(jù)管理單元120將FSIB 12a中的滿邏輯塊清理至FS 12。具體地, 數(shù)據(jù)管理單元120更新FS/IS結(jié)構(gòu)管理表(未示出),且將該邏輯塊從在 FSIB 12a的管理之下轉(zhuǎn)移至在FS 12的管理之下。
3. 數(shù)據(jù)管理單元120判斷分配給FS 12的邏輯塊的數(shù)目是否超過FS 12所允許的邏輯塊的數(shù)目的上限。當(dāng)邏輯塊的數(shù)目超過上限時(shí),數(shù)據(jù)管理 單元120執(zhí)行下文所解釋的清理。
4. 數(shù)據(jù)管理單元120判定作為清理對(duì)象的最舊邏輯塊中的簇當(dāng)中應(yīng)直 接凈皮復(fù)制至MS 11而不移動(dòng)至IS13的簇(實(shí)際上,因?yàn)镸S 11的管理單位為軌道,所以以軌道單位判定所述簇)。
(A)數(shù)據(jù)管理單元120按照從邏輯頁(yè)的頂部開始的順序掃描作為清 理對(duì)象的最舊邏輯塊中的有效蔟。
(B )數(shù)據(jù)管理單元120參考軌道管理表30的FS簇的數(shù)目30f的字 段,尋找在FS中該簇所屬于的軌道具有多少個(gè)有效簇。
(C)當(dāng)該軌道中的有效簇的數(shù)目等于或大于預(yù)定闊值(例如,2k" 的50%)時(shí),數(shù)據(jù)管理單元120將該軌道設(shè)定為清理至MS11的候選者。
5. 數(shù)據(jù)管理單元120將應(yīng)被清理至MS 11的軌道寫入MSIB lla中。
6. 當(dāng)在最舊邏輯塊中遺留有將要以軌道單位進(jìn)行清理的有效蔟時(shí),數(shù) 據(jù)管理單元120進(jìn)一步執(zhí)行至MSIB lla的清理。
7. 當(dāng)即使在上文的處理2至處理4之后,作為清理對(duì)象的邏輯塊中仍 存在有效簇時(shí),數(shù)據(jù)管理單元120將最舊邏輯塊移動(dòng)至IS 13。
當(dāng)執(zhí)行從FS 12至MSIB lla的清理時(shí),緊接在清理之后,數(shù)據(jù)管理 單元120執(zhí)行MS 11中的CIB處理(步驟S350 )。 IS 13中的CIB處理
解釋IS 13中的CIB處理(步驟S360)。根據(jù)從FS 12至IS 13的移 動(dòng)而將邏輯塊添加至IS13。然而,根據(jù)邏輯塊的添加,邏輯塊的數(shù)目超過 可在多個(gè)邏輯塊所形成的IS 13中進(jìn)行管理的邏輯塊的數(shù)目的上限。當(dāng)邏 輯塊的數(shù)目超過上限時(shí),在IS 13中,數(shù)據(jù)管理單元120執(zhí)行一個(gè)到多個(gè) 邏輯塊至MS ll的清理,并執(zhí)行IS壓緊。具體地,數(shù)據(jù)管理單元120執(zhí) 行下文所解釋的過程。
1. 數(shù)據(jù)管理單元120以軌道中的有效蔟的數(shù)目x有效蔟系數(shù)對(duì)IS 13 中所包括的軌道進(jìn)行排序,收集具有大乘積值的2J"個(gè)軌道(對(duì)于兩個(gè)邏 輯塊),且將這些軌道清理至MSIBlla。
2. 當(dāng)具有最小數(shù)目的有效蔟的2i+1個(gè)邏輯塊的有效蔟的總數(shù)目為例如 等于或大于作為預(yù)定設(shè)定值的2k個(gè)(對(duì)于一個(gè)邏輯塊)時(shí),數(shù)據(jù)管理單元 120重復(fù)上文所解釋的步驟。
3. 在執(zhí)行清理之后,數(shù)據(jù)管理單元120按照從具有最小數(shù)目的有效蔟的邏輯塊開始的順序收集2k個(gè)簇,且執(zhí)行IS13中的壓緊。
4.數(shù)據(jù)管理單元120將壓緊源處的邏輯塊當(dāng)中不包括有效簇的邏輯塊 釋放作為空閑塊FB。
當(dāng)執(zhí)行從IS 13至MSIB lla的清理時(shí),緊接在清理之后,數(shù)據(jù)管理單 元120執(zhí)行MS 11中的CIB處理(步驟S370 )。
圖20為部件當(dāng)中的數(shù)據(jù)的流動(dòng)中的輸入與輸出的組合的圖,且指示作 為觸發(fā)器引起數(shù)據(jù)的流動(dòng)的原因。基本上,根據(jù)從WC21的簇清理而將數(shù) 據(jù)寫入FS12中。然而,當(dāng)對(duì)于從WC21至FS12的清理偶然有必要進(jìn)行 簇內(nèi)扇區(qū)填充(簇填充)時(shí),復(fù)制來(lái)自FS12、 IS13和MS11的數(shù)據(jù)。在 WC 21中,通過^f吏用WC簇管理表25的標(biāo)記中的扇區(qū)位置位映像25b而 識(shí)別相關(guān)邏輯簇地址中存在還是不存在2(^個(gè)扇區(qū),有可能以扇區(qū)(512 B ) 為單位執(zhí)行管理。另一方面,F(xiàn)S 12和IS 13的管理單位為簇,且MS 11 的管理單位為軌道,其中FS 12和IS 13為NAND存儲(chǔ)器10中的功能部件。 以這種方式,NAND存儲(chǔ)器IO中的管理單位比扇區(qū)大。因此,在從WC21 將數(shù)據(jù)寫入NAND存儲(chǔ)器10中的過程中,當(dāng)在NAND存儲(chǔ)器10中存在 其邏輯簇地址與將要寫入的數(shù)據(jù)的邏輯簇地址相同的數(shù)據(jù)時(shí),有必要在進(jìn) 行這樣的合并之后將數(shù)據(jù)寫入NAND存儲(chǔ)器10中,所述合并是將將要從 WC 21寫入NAND存儲(chǔ)器10中的蔟中的扇區(qū)與NAND存儲(chǔ)器10中存在 的相同邏輯簇地址中的扇區(qū)進(jìn)行合并。
該處理是圖20中所示的簇內(nèi)扇區(qū)填充處理(簇填充)和軌道內(nèi)扇區(qū)填 充(軌道填充)。除非執(zhí)行這些種類的處理,否則不能讀出正確數(shù)據(jù)。因 此,當(dāng)數(shù)據(jù)從WC21清理至FSIB12a或MSIBlla時(shí),參考WC蔟管理 表25且參考與將要清理的簇相對(duì)應(yīng)的標(biāo)記中的扇區(qū)位置位映像25b。當(dāng)并 非所有的扇區(qū)位置位映像25b都為"1"時(shí),執(zhí)行蔟內(nèi)扇區(qū)填充或軌道內(nèi)扇 區(qū)填充,用于與NAND存儲(chǔ)器10中所包括的相同簇或相同軌道中的扇區(qū) 合并。DRAM20的工作區(qū)凈皮用于該處理。在DRAM20的工作區(qū)上合并在 邏輯簇地址或邏輯軌道地址中所包括的多個(gè)扇區(qū),且產(chǎn)生將要清理的數(shù)據(jù) 圖像(簇圖像或軌道圖像)。將所產(chǎn)生的數(shù)據(jù)圖^^DRAM 20的工作區(qū)寫入MSIBlla中或?qū)懭隖SIB 12a中。
在IS 13中,基本上,根據(jù)從FS 12的塊清理(移動(dòng))而寫入數(shù)據(jù), 或者根據(jù)IS中的壓緊而寫入數(shù)據(jù)。在MS11中,可從所有區(qū)段寫入數(shù)據(jù)。 當(dāng)寫入數(shù)據(jù)時(shí),在MS11中,因?yàn)閮H可以以軌道為單位寫入數(shù)據(jù),所以可 引起由MS本身的數(shù)據(jù)引起的填充。當(dāng)以軌道為單位寫入數(shù)據(jù)時(shí),還根據(jù) 被動(dòng)合并而寫入其它邏輯塊中的片段數(shù)據(jù)。此外,在MS 11中,還根據(jù) MS壓緊而寫入數(shù)據(jù)。在被動(dòng)合并中,當(dāng)執(zhí)4亍從WC21、 FS12或IS13這 三個(gè)部件之一至MS 11的軌道清理或邏輯塊清理(對(duì)于2'個(gè)軌道的清理) 時(shí),在DRAM 20的工作區(qū)中收集一個(gè)部件中的作為清理對(duì)象的軌道(或 邏輯塊)中所包括的兩個(gè)部件中的有效蔟以及MSll中的有效蔟,并將這 些有效簇從DRAM 20的工作區(qū)寫入MSIB lla中作為用于一個(gè)軌道的數(shù) 據(jù)。
隨后,更為詳細(xì)地解釋該實(shí)施例的要點(diǎn)部分。如上文所解釋的,在32-位雙速模式中,并行地致動(dòng)四個(gè)通道(chO、 chl、 ch2和ch3),且通過使 用NAND存儲(chǔ)器芯片的雙速模式來(lái)執(zhí)行擦除、寫入和讀出。如圖21中所 示,將四個(gè)并行操作元件10a至10d中的NAND存儲(chǔ)器芯片中的每一個(gè)劃 分為,例如,平面O和平面1的兩個(gè)分區(qū)。劃分的數(shù)目不限于二。平面O 和平面1包括彼此獨(dú)立的周邊電路(例如,行解碼器、列解碼器、頁(yè)緩沖 器和數(shù)據(jù)高速緩沖存儲(chǔ)器),并可基于從NAND控制器112輸入的命令而 同時(shí)執(zhí)行擦除、寫入和讀出。在NAND存儲(chǔ)器芯片的雙速模式中,通過并 行地控制平面0和平面1來(lái)實(shí)現(xiàn)高速寫入。
物理塊大小為512kB。因此,在32-位雙速模式中,才艮據(jù)該四個(gè)通道 的并行操作和對(duì)該兩個(gè)平面的同時(shí)存取,使物理塊的擦除單位增加至 512kBx4x2=4 MB。因此,在32-位雙速模式中,八個(gè)平面并行地操作。
如圖22中所示,除了邏輯至物理轉(zhuǎn)譯表50之外,圖8中所示的配置 數(shù)據(jù)管理單元120的物理NAND層管理單元120c包括壞塊管理表(BB 管理表)200、保留塊管理表(RB塊管理表)210、空閑塊管理表(FB管 理表)220、現(xiàn)用塊(active block)管理表(AB管理表)230以及8-位與32-位對(duì)應(yīng)表235。物理NAND層管理單元120c使用這些管理表執(zhí)行對(duì) NAND存儲(chǔ)器10的物理NAND層的管理。
圖23是邏輯至物理轉(zhuǎn)譯表50的另一實(shí)例的圖。在圖23中所示的邏輯 至物理轉(zhuǎn)譯表50中,指示與邏輯塊ID 50a對(duì)應(yīng)的邏輯塊何時(shí)被擦除的時(shí) 間的擦除時(shí)間50e的字段被添加至圖17中所示的邏輯至物理表50。關(guān)于 擦除時(shí)間50e,例如,僅須使用通過測(cè)量對(duì)NAND存儲(chǔ)器芯片中的邏輯塊 所應(yīng)用的擦除操作的次數(shù)而獲得的值或者NAND控制器112的激勵(lì)時(shí)間。 擦除時(shí)間50e用于稍后所解釋的FB管理表220中的空閑塊FB管理。
BB管理表200是用于以物理塊(512kB )單位管理壞塊BB的表。如 圖24所示,BB管理表200以二維陣列格式形成,其具有例如針對(duì)每4 (通 道)x2 (平面/通道)個(gè)通道內(nèi)平面的關(guān)于物理塊的(物理塊的數(shù)目/平面) x ( NAND存儲(chǔ)器芯片的數(shù)目/一個(gè)并行操作元件)的信息。在BB管理表 200的每一條目中,存儲(chǔ)每一物理塊的物理塊ID 200a。
在該實(shí)施例的情況下, 一個(gè)NAND存儲(chǔ)器芯片具有2GB的大小。將 物理塊ID"0,,至"2047,,分配給第一芯片的平面0。將物理塊ID"2048"至 "4095"分配給第一芯片的平面1。當(dāng)將使用期間所產(chǎn)生的壞塊BB登記于 BB管理表200中時(shí),物理NAND層管理單元120c將壞塊BB添加在緊接 在與該壞塊BB對(duì)應(yīng)的通道內(nèi)平面ID (ID洲至ID弁7)的最后有效條目之 后,而不對(duì)壞塊BB進(jìn)行排序。
例如,將這樣的物理塊登記為壞塊BB,該物理塊為,當(dāng)為空閑塊FB 分配使用時(shí),對(duì)該物理塊的擦除操作還未正常結(jié)束,或者當(dāng)將數(shù)據(jù)寫入用 作FS12、 IS13或MS11的現(xiàn)用塊AB中時(shí),對(duì)該物理塊的寫入操作還未 正常結(jié)束。
RB管理表210是用于管理以八個(gè)物理塊單位(512 kB )形成4 MB邏 輯塊時(shí)剩余的物理塊(保留塊RB )的表。RB管理表210以與BB管理表 200的格式相同的格式進(jìn)行管理。通過針對(duì)對(duì)應(yīng)于塊的通道內(nèi)平面ID中的 每一個(gè)以FIFO來(lái)管理塊,擇優(yōu)地以從最早登記的保留塊RB開始的順序 使用保留塊RB。FB管理表220是用于以4 MB邏輯塊為單位管理當(dāng)前未被分配使用 (例如,用于FS12、 IS 13或MS 11)的空閑塊FB的表,且是以空閑塊 FB的產(chǎn)生的順序排序的FIFO格式的列表。邏輯塊ID存儲(chǔ)于每一條目中。 將根據(jù)壓緊處理等等而返回至FB管理表220的空閑塊FB添加至列表的 尾端。通過返回列表的頂塊來(lái)執(zhí)行空閑塊FB分配。
如圖25中所示,F(xiàn)B管理表以返回FIFO列表220a和分配列表220b 的兩級(jí)來(lái)配置。返回FIFO列表220a以擦除時(shí)間50e的順序來(lái)對(duì)準(zhǔn)。在分 配列表220b中,具有較小的擦除次數(shù)50c的邏輯塊定位為較接近于列表的 頂部。這是用于防止以短時(shí)間間隔重復(fù)擦除操作的配置。將返回至FB管 理表220的不必要的邏輯塊添加至返回FIFO列表220a的尾端,并將其存 儲(chǔ)于該尾端處歷時(shí)一 固定周期。
根據(jù)邏輯塊的擦除次數(shù)50c而將從返回FIFO列表220a推出的邏輯塊 插入分配列表220b中的某處。當(dāng)從邏輯NAND層管理單元120b請(qǐng)求空閑 塊FB的分配時(shí),邏輯NAND層管理單元120c從分配列表220b的頂部提 取空閑塊FB,并分配該空閑塊FB。
利用FB管理表220,可以均等地分布將要擦除的邏輯塊(磨損均化 處理),使得所有邏輯塊的擦除次數(shù)與擦除間隔大體均等。已知除擦除 的次數(shù)之外,NAND型閃速存儲(chǔ)器的壽命還取決于擦除處理的間隔,在間 隔較長(zhǎng)時(shí),保持性能較好且壽命較長(zhǎng)。這還指示出當(dāng)擦除間隔短時(shí),保 持性能差且壽命受到損害。還已知即使以短間隔執(zhí)行寫入,除非執(zhí)行適 當(dāng)?shù)拈L(zhǎng)期擦除,否則保持性能得以恢復(fù)。
AB管理表230是從空閑塊FB分配的被分配使用(例如,用于FS 12、 IS 13或MS 11)的邏輯塊(現(xiàn)用塊AB)的列表。與在FB管理表220中 一樣,在AB管理表230中,在每一條目中存儲(chǔ)邏輯塊ID。具有較早登記 順序的邏輯塊被定位為較接近于頂部。AB管理表用于例如刷新處理。
刷新處理是這樣的技術(shù),其用于防止由于被寫入的數(shù)據(jù)的老化劣化和 讀取干擾(其為讀取處理中所涉及的數(shù)據(jù)破裂)的影響而發(fā)生超過SSD 110 的錯(cuò)誤校正能力的錯(cuò)誤。具體地,例如,在超過錯(cuò)誤校正能力的錯(cuò)誤發(fā)生之前,執(zhí)行用于讀出所存儲(chǔ)的數(shù)據(jù)并執(zhí)行錯(cuò)誤校正的處理,接著執(zhí)行將數(shù)
據(jù)重寫于NAND型閃速存儲(chǔ)器中的處理。例如,可將具有大的讀出次數(shù) 50d的塊、AB管理表230的頂塊等等設(shè)定為刷新處理的監(jiān)視對(duì)象。
8-位32-位對(duì)應(yīng)表235是這樣的表,其用于將32-位雙速模式中的4MB 邏輯塊劃分成8-位正常模式中的八個(gè)邏輯塊且管理這些物理塊。具體地, 8-位與32-位對(duì)應(yīng)表235是表示4 MB邏輯塊的列表與邏輯塊中所包括的使 用中或已使用的512 KB物理塊之間的關(guān)系的位映4象。
物理NAND層管理單元120c執(zhí)行下文所解釋的邏輯塊/物理塊管理。 首先,參考圖26來(lái)解釋邏輯至物理轉(zhuǎn)譯表50中的邏輯塊ID與八個(gè)物理 塊ID之間的對(duì)應(yīng)關(guān)系。
如上文所解釋的,與作為邏輯至物理轉(zhuǎn)譯表50的索引的邏輯塊ID 50a 相關(guān)聯(lián)的八個(gè)物理塊ID被登記在邏輯至物理轉(zhuǎn)譯表50的物理塊ID 50b 的字段中。圖26是NAND存儲(chǔ)器10的邏輯塊ID與物理塊ID之間的對(duì) 應(yīng)關(guān)系的圖。 一個(gè)區(qū)段表示一個(gè)物理塊。將物理塊ID分配給每一個(gè)物理 塊。邏輯塊LO(現(xiàn)用塊AB)包括,例如,在第一列第三行、第二列第二 行、第三列第二行、第四列第二行、第五列第二行、第六列第二行、第七 列第二行和第八列第三行中的八個(gè)物理塊。由虛線BL1環(huán)繞的邏輯塊LI (現(xiàn)用塊AB)包括,例如,在第一列第四行、第二列第三行、第三列第 三行、第四列第三行、第五列第三行、第六列第三行、第七列笫三行和第 八列第四行中的八個(gè)物理塊。
此后,例如,假定當(dāng)為邏輯塊L1分配使用(在這種情況下,邏輯 塊L1為空閑塊FB)且執(zhí)行擦除操作時(shí),或當(dāng)將數(shù)據(jù)寫入用作FS 12、 IS 13 或MS11的邏輯塊L1中(在這種情況下,邏輯塊L1為現(xiàn)用塊AB,如圖 27所示)且執(zhí)行寫入操作時(shí),對(duì)于邏輯塊L1的第四列第三行中的物理塊 的擦除或?qū)懭氩僮魑凑=Y(jié)束,因此,將該物理塊作為無(wú)法用作存儲(chǔ)區(qū)的 壞塊BB登記于BB管理表200中。
物理NAND層管理單元120c檢測(cè)該登記,并從RB管理表210中選 擇與登記為壞塊BB的物理塊的通道和平面相同的通道和平面中的保留塊RB作為用于壞塊BB的替換候選者。
在圖26的情況下,選擇與壞塊BB鄰近的第四列第四行中的物理塊(保 留塊RB)作為用于第四列第三行中的壞塊BB的替換候選者。
物理NAND層管理單元120c遍及邏輯至物理轉(zhuǎn)譯表50的與邏輯塊 Ll對(duì)應(yīng)的邏輯塊ID 50a的條目進(jìn)行搜尋,且將該條目中的物理塊ID 50b 的字段中所包括的八個(gè)物理塊ID當(dāng)中與第四列第三4亍對(duì)應(yīng)的壞塊BB的物 理塊ID改變?yōu)榕c從RB管理表210中選擇的第四列第四行中的保留塊RB 對(duì)應(yīng)的物理地址ID。
因此,此后,邏輯塊Ll包括由交替長(zhǎng)虛線與短虛線環(huán)繞的在第一列 第四行、第二列第三行、第三列第三行、第四列第四行、笫五列第三行、 第六列第三行、第七列第三行和第八列第四行中的八個(gè)新物理塊的組合。 假定邏輯塊Ll的邏輯塊ID為"L1"。
此后,物理NAND層管理單元120c鎖定來(lái)自FB管理表220的新空 閑塊FB(圖27中未示出)。假定被鎖定的空閑塊FB的邏輯塊ID為"L2"。 物理NAND層管理單元120c使用邏輯至物理轉(zhuǎn)譯表50來(lái)執(zhí)行邏輯塊ID 的替換。
具體地,物理NAND層管理單元120c使與具有邏輯塊ID"L2,,的新空 閑塊FB相關(guān)聯(lián)的八個(gè)物理塊與邏輯塊ID"L1"相關(guān)聯(lián)。同時(shí),物理NAND 層管理單元120c 4吏被交替長(zhǎng)虛線與短虛線環(huán)繞的第一列第四行、笫二列第 三行、第三列第三行、第四列第四行、第五列第三行、第六列第三行、第 七列第三行和第八列第四行中的八個(gè)物理塊與邏輯塊ID"L2,,相關(guān)聯(lián)。還 根據(jù)物理塊ID的更新而替換擦除次數(shù)50c、讀出次數(shù)50d和擦除時(shí)間50e。 此后,物理NAND層管理單元120c將邏輯塊ID"L2,,登記于FB管理表220 中。邏輯NAND層管理單元120b重新在具有相同邏輯塊ID"L1,,的新鎖定 的邏輯塊中執(zhí)行擦除或?qū)懭氩僮鳌?br>
另一方面,當(dāng)不存在可替換壞塊BB的保留塊RB時(shí),物理NAND層 管理單元U0c執(zhí)4亍下文所解釋的處理。例如,假定將第四列第三行中的 物理塊作為壞塊BB登記于BB管理表200中,并且在與壞塊BB相同的通道和相同的平面中不存在保留塊RB。在這種情況下,首先,物理NAND 層管理單元120c將邏輯塊Ll中除第四列第三行之外的第一列第四行、第 二列第三行、第三列第三行、第五列第三行、第六列第三行、第七列第三 行和第八列第四行中的七個(gè)物理塊登記于RB管理表210中。此后,以與 上文所解釋的方式相同的方式,物理NAND層管理單元120c鎖定來(lái)自FB 管理表220的新空閑塊FB,并如上文所解釋地執(zhí)行邏輯塊ID的替換,接 著將從FB管理表220獲取的邏輯塊ID設(shè)定為不可用。
以這種方式,即使當(dāng)產(chǎn)生壞塊BB時(shí),物理NAND層管理單元120c 也執(zhí)行邏輯塊ID的替換。因此,用于邏輯NAND層管理單元120b中的 邏輯塊ID在產(chǎn)生壞塊BB之前和之后不發(fā)生改變。因此,即使在多個(gè)物理 塊中的至少一個(gè)4皮登記為壞塊時(shí),LBA邏輯地址與邏輯塊之間的對(duì)應(yīng)關(guān)系 也不改變??捎梅乐惯壿婲AND層管理單元120b中的管理表的重寫的開 銷。
解釋32-位雙速模式中的擦除處理。每當(dāng)以邏輯塊為單位擦除NAND 存儲(chǔ)器10中的數(shù)據(jù)時(shí),物理NAND層管理單元120c將與圖23中所示的 邏輯至物理轉(zhuǎn)譯表50的已擦除的邏輯塊對(duì)應(yīng)的邏輯塊ID中的擦除次數(shù) 50c的字段累加一,且將擦除時(shí)間50e更新為最新的數(shù)據(jù)。
如上文所解釋的,擦除次數(shù)50c和擦除時(shí)間50e用于磨損均化,以均 等地分布將要擦除的邏輯塊,使得所有邏輯塊的擦除次數(shù)與擦除間隔大體 均衡。
例如,在該實(shí)施例中,通過使用擦除次數(shù)50c和擦除時(shí)間50e而執(zhí)行 下文所解釋的磨損均化(靜態(tài)磨損均化)處理。在FB管理表220中管理 從邏輯NAND層管理單元120b返回至物理NAND層管理單元120c的空 閑塊FB。將返回至FB管理表220的邏輯塊添加至圖25中所示的返回FIFO 列表220a的尾端,且將其存儲(chǔ)于其中歷時(shí)一固定周期。
根據(jù)邏輯塊的擦除次數(shù)而將從返回FIFO列表220a推出的邏輯塊插入 分配列表220b中的某處。當(dāng)從邏輯NAND層管理單元120b請(qǐng)求空閑塊 FB的分配時(shí),物理NAND層管理單元120c從分配列表220b的頂部提取空閑塊FB且分配該空閑塊FB。以這種方式,使各個(gè)邏輯塊的擦除次數(shù)與擦除間隔平均化。
在圖23中所示的邏輯至物理轉(zhuǎn)譯表50中,以邏輯塊為單位來(lái)管理擦除的次數(shù)50c和擦除時(shí)間50e,其中并行驅(qū)動(dòng)的多個(gè)物理塊(在這種情況下,八個(gè)物理塊)被分配給邏輯塊單位。如上文所解釋的,當(dāng)在邏輯塊中出現(xiàn)以物理塊為單位管理的壞塊BB時(shí),利用同一通道和同一平面中的另一物理塊來(lái)替換壞塊BB (壞塊BB與該另 一物理塊為相同的并行元件)以形成邏輯塊。
在這種情況下,在邏輯至物理轉(zhuǎn)譯表50中發(fā)生與相關(guān)邏輯塊ID對(duì)應(yīng)的物理塊ID50b的字段的重寫。然而,在這點(diǎn)上,不更新擦除次數(shù)50c和擦除時(shí)間50e,并維持其先前值。這是因?yàn)?,由于在邏輯塊當(dāng)中通過磨損均化處理而將擦除次數(shù)與擦除間隔平均化到某一程度,所以將優(yōu)先權(quán)給予增大管理單位并減小管理表大小,而不是實(shí)際上以物理塊為單位來(lái)管理祐L替換的物理塊的擦除次數(shù)且增大管理表大小。
以這種方式,在該實(shí)施例中,邏輯至物理轉(zhuǎn)譯表50以邏輯塊單位(并行驅(qū)動(dòng)的多個(gè)物理塊被分配給該邏輯塊單位)管理諸如擦除次數(shù)50c和擦除時(shí)間50e的擦除信息。因此,可以減小管理表大小,并有助于減少管理表創(chuàng)建所需的存儲(chǔ)器量。
另 一方面,即4吏當(dāng)例如與邏輯塊相關(guān)聯(lián)的多個(gè)物理塊當(dāng)中的一個(gè)物理塊變?yōu)閴膲KBB時(shí),也可以通過僅替換該變?yōu)閴膲KBB的物理塊而有效地使用存儲(chǔ)區(qū),而不阻止4吏用包括該壞塊BB的整個(gè)邏輯塊。
此外,即使當(dāng)出現(xiàn)壞塊BB時(shí),邏輯NAND層管理單元120b也總是可以接收與空閑塊FB相同大小的邏輯塊。因此,可以減少CIB處理中的處理負(fù)載。
在用于獨(dú)立地驅(qū)動(dòng)并行操作元件10a至10d中的一個(gè)平面的8-位正常模式中,該模式的擦除單位為一個(gè)物理塊(512kB)。當(dāng)寫入大小很小時(shí),例如,當(dāng)另外寫入用于記錄管理表的更新后內(nèi)容的日志時(shí),使用8-位正常模式。當(dāng)在這種8-位正常模式中使用的空閑塊FB,即,512kB單位的物理塊為必要的時(shí),物理NAND層管理單元120c使用8-位與32-位對(duì)應(yīng)表235來(lái)選擇一個(gè)物理塊,且使用選定的物理塊來(lái)執(zhí)行8-位正常模式。圖26指示出指派4皮虛線BL3環(huán)繞的邏輯塊L3,該邏輯塊L3包括,皮粗線環(huán)繞的一個(gè)物理塊(該物理塊不久用于邏輯NAND層管理單元120b中)。
在8-位正常模式中,首先,物理NAND層管理單元120c使用選定的一個(gè)物理塊。當(dāng)這一個(gè)物理塊由于日志的額外寫入而填滿數(shù)據(jù)時(shí),物理NAND層管理單元120c基于8-位與32-位對(duì)應(yīng)表235,使用八個(gè)物理塊當(dāng)中的另一物理塊來(lái)更新該8-位與32-位對(duì)應(yīng)表235。此后,重復(fù)該處理。
以這種方式,即使在8-位正常模式的情況下,也可以通過分配包括八個(gè)物理塊的邏輯塊且將這些物理塊中的每一個(gè)均等地使用相同次數(shù),而使32-位X5Ul模式中分配給邏輯塊的各個(gè)物理塊當(dāng)中的耐久壽命均衡。僅用于8-位正常模式中的塊通過8-位與32-位對(duì)應(yīng)表235而以物理塊單位來(lái)管理。因此,與以物理塊單位管理所有塊相比,可以減小表的大小,且有助于減少管理表創(chuàng)建所需的存儲(chǔ)器量。
此外,在8-位正常模式的情況下,物理NAND層管理單元120c可分配在3t位正常;f莫式中包括四個(gè)物理塊的邏輯塊,并且將這些物理塊中的每一個(gè)均等地使用相同次數(shù)。可以使32-位正常模式中分配給邏輯塊的各個(gè)物理塊當(dāng)中的耐久壽命均衡。
本發(fā)明不限于上文所描述的實(shí)施例。因此,可在不偏離本發(fā)明的范圍的情況下進(jìn)行各種^務(wù)改。
此外,上文所描述的實(shí)施例包括各種具有創(chuàng)造性步驟的組成部分。即,可通過分布或整合任意所揭示的組成部分而對(duì)本發(fā)明進(jìn)行各種修改。
例如,可通過從這些實(shí)施例中所揭示的所有組成部分當(dāng)中省略任意組成部分而進(jìn)行本發(fā)明的各種修改,只要可解決本發(fā)明要解決的問題且可獲得將要通過本發(fā)明獲得的優(yōu)點(diǎn)即可。
此外,在上述實(shí)施例中解釋簇大小乘以等于或大于二的正整數(shù)等于邏輯頁(yè)大小。然而,本發(fā)明并不因此而受限制。
例如,簇大小可與邏輯頁(yè)大小相同,或可為通過組合多個(gè)邏輯頁(yè)而使邏輯頁(yè)大小乘以等于或大于二的正整數(shù)所獲得的大小。
此外,簇大小可與用于在諸如個(gè)人計(jì)算機(jī)的主機(jī)設(shè)備1上運(yùn)行的OS
(操作系統(tǒng))的文件系統(tǒng)的管理單位相同。
此外,在上述實(shí)施例中解釋軌道大小乘以等于或大于二的正整數(shù)等于邏輯塊大小。然而,本發(fā)明并不因此而受限制。
例如,軌道大小可與邏輯塊大小相同,或可為通過組合多個(gè)邏輯塊而使邏輯塊大小乘以等于或大于二的正整數(shù)所獲得的大小。
如果軌道大小等于或大于邏輯塊大小,則MS壓緊處理不是必要的。因此,可省略TFSllb。
[第二實(shí)施例
圖27示出個(gè)人計(jì)算機(jī)的實(shí)例的透視圖。個(gè)人計(jì)算機(jī)1200包括主體1201和顯示單元1202。顯示單元1202包括顯示器外殼1203和容納于顯示器外殼1203中的顯示裝置1204。
主體1201包括底盤1205、鍵盤1206以及作為指向裝置的觸摸板1207。底盤1205包括主電路板、ODD單元(光盤裝置)、卡槽以及第一實(shí)施例中所描述的SSD 1100。
卡槽設(shè)置為鄰近底盤1205的周邊壁。周邊壁具有面向卡槽的開口l加8。用戶可從底盤1205的外部經(jīng)由開口 1208將額外裝置插入卡槽中和將額外裝置從卡槽移除。
SSD 1100可以以安裝于個(gè)人計(jì)算機(jī)1200中的狀態(tài)來(lái)使用以代替現(xiàn)有技術(shù)的HDD,或可以以插入個(gè)人計(jì)算機(jī)l加0的卡槽中的狀態(tài)來(lái)用作額外裝置。
圖28示出個(gè)人計(jì)算機(jī)中的系統(tǒng)架構(gòu)的實(shí)例的圖。個(gè)人計(jì)算機(jī)1200包括CPU 1301、北橋1302、主存儲(chǔ)器1303、視頻控制器1304、音頻控制器1305、南橋1309、 BIOS-ROM 1310、第一實(shí)施例中所描述的SSD 1100、ODD單元1311、嵌入式控制器/鍵盤控制器(EC/KBC) IC1312,以及網(wǎng)絡(luò)控制器1313。
CPU 1301是用于控制個(gè)人計(jì)算機(jī)1200的操作的處理器,且執(zhí)行從
49SSD 1100加載至主存儲(chǔ)器1303的操作系統(tǒng)(OS)。當(dāng)ODD單元1311執(zhí)行對(duì)光盤的讀取處理和寫入處理之一時(shí),CPU 1301執(zhí)行這些處理。CPU1301執(zhí)4亍存儲(chǔ)在BIOS-ROM 1310中的系統(tǒng)BIOS (基本輸入輸出系統(tǒng))。系統(tǒng)BIOS是用于控制個(gè)人計(jì)算機(jī)1200的硬件的程序。
北橋1302是將CPU 1301的局部總線連接至南橋1309的橋接裝置。北橋1302具有用于控制對(duì)主存儲(chǔ)器1303的存取的存儲(chǔ)器控制器。北橋1302具有通過AGP (加速圖形端口 )總線執(zhí)行視頻控制器1304與音頻控制器1305之間的通信的功能。
主存儲(chǔ)器1303暫時(shí)存儲(chǔ)程序或數(shù)據(jù),且用作CPU 1301的工作區(qū)。主存儲(chǔ)器1303包括例如DRAM。視頻控制器1304是用于控制顯示單元的視頻再現(xiàn)控制器,所述顯示單元用于便攜式計(jì)算機(jī)1200的顯示監(jiān)視器(LCD )1316。音頻控制器1305是用于控制便攜式計(jì)算機(jī)1200的揚(yáng)聲器的音頻再現(xiàn)控制器。
南橋1309控制連接至LPC (低引腳計(jì)數(shù))總線的裝置,并控制連接至PCI (周邊部件互連)總線的裝置。南橋1309通過ATA接口控制作為存儲(chǔ)軟件和數(shù)據(jù)的存儲(chǔ)器裝置的SSD 1100。
個(gè)人計(jì)算機(jī)1200以扇區(qū)單位執(zhí)行對(duì)SSD 1100的存取。例如,通過ATA接口輸入寫入命令、讀取命令和高速緩沖存儲(chǔ)器閃存命4K cache flashcommand )。南橋1309具有控制BIOS-ROM 1310和ODD單元1311的功能。
EC/KBC 1312是這樣的一個(gè)芯片微處理器,其集成在用于控制電源的嵌入式控制器以及用于控制鍵盤(KB) 1206和觸摸板1207的鍵盤控制器上。EC/KBC 1312具有這樣的功能,即,基于用戶對(duì)電源按鈕的操作而設(shè)定個(gè)人計(jì)算機(jī)1200的電源的接通/斷開。網(wǎng)絡(luò)控制器1313是例如執(zhí)行至網(wǎng)絡(luò)(例如,因特網(wǎng))的通信的通信裝置。
盡管上述實(shí)施例中的存儲(chǔ)器系統(tǒng)作為SSD而被包含,但其也可以作為例如通過SD頂卡為代表的存儲(chǔ)卡而被包含。此外,存儲(chǔ)器系統(tǒng)不僅可應(yīng)用于個(gè)人計(jì)算機(jī),而且可應(yīng)用于諸如蜂窩式電話、PDA(個(gè)人數(shù)字助理)、數(shù)字靜態(tài)相機(jī)、數(shù)字視頻相機(jī)以及電視的各種電子裝置。
本領(lǐng)域技術(shù)人員將容易想到其他優(yōu)點(diǎn)和修改。因此,本發(fā)明在其更寬 泛的方面不限于本文中所示并描述的具體細(xì)節(jié)和代表性實(shí)施例。因此,可 在不偏離由所附權(quán)利要求及其等價(jià)物所限定的總發(fā)明構(gòu)思的精神或范圍的 情況下進(jìn)行各種修改。
權(quán)利要求
1.一種存儲(chǔ)器系統(tǒng),包括非易失性半導(dǎo)體存儲(chǔ)器,其包括多個(gè)并行操作元件,所述多個(gè)并行操作元件分別具有多個(gè)物理塊作為數(shù)據(jù)擦除的單位;以及控制器,其可以并行驅(qū)動(dòng)所述并行操作元件,并具有擦除次數(shù)管理單元,所述擦除次數(shù)管理單元以邏輯塊單位管理擦除次數(shù),所述邏輯塊單位與并行驅(qū)動(dòng)的多個(gè)物理塊相關(guān)聯(lián)。
2. 根據(jù)權(quán)利要求l的存儲(chǔ)器系統(tǒng),其中所述控制器還包括壞塊管理單 元,當(dāng)在邏輯塊中出現(xiàn)以物理塊為單位管理的壞塊時(shí),所述壞塊管理單元 執(zhí)行物理塊替換處理,所述物理塊替換處理用于用相同并行操作元件中的 另 一物理塊替換所述壞塊。
3. 根據(jù)權(quán)利要求2的存儲(chǔ)器系統(tǒng),其中在執(zhí)行所述物理塊替換處理 時(shí),所述壞塊管理單元從以物理塊為單位管理的保留塊中獲取所述另一物 理塊。
4. 根據(jù)權(quán)利要求2的存儲(chǔ)器系統(tǒng),其中所述壞塊管理單元在執(zhí)行所述 物理塊替換處理之后獲取空閑塊作為未分配的邏輯塊,且執(zhí)行所獲取的空 閑塊的邏輯塊地址與經(jīng)受所述物理塊替換處理的邏輯塊的邏輯塊地址的替 換。
5. 根據(jù)權(quán)利要求3的存儲(chǔ)器系統(tǒng),其中當(dāng)所述相同并行操作元件中的 應(yīng)該用來(lái)替換所述壞塊的另一物理塊不存在時(shí),所述壞塊管理單元在執(zhí)行 所述物理塊替換處理時(shí)將除所述壞塊之外的一個(gè)或多個(gè)物理塊登記為所述 保留塊。
6. 根據(jù)權(quán)利要求4的存儲(chǔ)器系統(tǒng),其中當(dāng)所勤目同并行操作元件中的 應(yīng)該用來(lái)替換所述壞塊的另一物理塊不存在時(shí),所述壞塊管理單元在執(zhí)行 所述物理塊替換處理時(shí)將除所述壞塊之外的 一個(gè)或多個(gè)物理塊登記為所述 保留塊。
7. 根據(jù)^5l利要求6的存儲(chǔ)器系統(tǒng),其中所述壞塊管理單元在將除所述壞塊之外的一個(gè)或多個(gè)塊登記為所述保留塊之后獲取空閑塊,執(zhí)行所獲取 塊的邏輯塊的邏輯塊地址的替換,并禁用所述空閑塊的邏輯塊地址。
8. 根據(jù)權(quán)利要求2的存儲(chǔ)器系統(tǒng),其中當(dāng)通過所述壞塊管理單元執(zhí)行 所述物理塊替換處理作為物理塊單位中的壞塊替換時(shí),所述擦除次數(shù)管理 單元維持以邏輯塊為單位管理的所述擦除次數(shù)。
9. 根據(jù)權(quán)利要求l的存儲(chǔ)器系統(tǒng),其中所述控制器包括邏輯至物理轉(zhuǎn) 譯表,所述邏輯至物理轉(zhuǎn)譯表用于以邏輯塊地址為單位管理在多個(gè)物理塊 地址與邏輯塊地址之間的對(duì)應(yīng)關(guān)系以及所述擦除次數(shù),其中所述多個(gè)物理 塊地址對(duì)應(yīng)于多個(gè)物理塊,所述邏輯塊地址對(duì)應(yīng)于與所述物理塊相關(guān)聯(lián)的 邏輯塊。
10. 根據(jù)權(quán)利要求9的存儲(chǔ)器系統(tǒng),其中所述邏輯至物理轉(zhuǎn)譯表還以 邏輯塊地址單位管理擦除時(shí)間。
11. 根據(jù)權(quán)利要求2的存儲(chǔ)器系統(tǒng),其中所述壞塊管理單元包括壞塊 管理表,所述壞塊管理表用于在并行操作元件單位中管理分配給所述壞塊 的物理塊的物理塊地址。
12. 根據(jù)權(quán)利要求3的存儲(chǔ)器系統(tǒng),其中所述控制器包括保留塊管理 表,所述保留塊管理表用于在并行操作元件單位中管理分配給所述保留塊 的物理塊的物理塊地址。
13. 根據(jù)權(quán)利要求4的存儲(chǔ)器系統(tǒng),其中所述控制器包括空閑塊管理 表,所述空閑塊管理表用于管理分配給所述空閑塊的邏輯塊的邏輯塊地坎
14. 根據(jù)權(quán)利要求13的存儲(chǔ)器系統(tǒng),其中所述控制器還包括邏輯至物 理轉(zhuǎn)譯表,所述邏輯至物理轉(zhuǎn)譯表用于以邏輯塊地址為單位管理在多個(gè)物 理塊地址與邏輯塊地址之間的對(duì)應(yīng)關(guān)系以及所述擦除次數(shù),其中所述多個(gè) 物理塊地址對(duì)應(yīng)于多個(gè)物理塊,所述邏輯塊地址對(duì)應(yīng)于與所述物理塊相關(guān) 聯(lián)的邏輯塊;以及所述空閑塊管理表包括第一列表,其用于以所述邏輯至物理轉(zhuǎn)譯表 所管理的擦除時(shí)間的順序來(lái)管理分配給所述空閑塊的邏輯塊的邏輯塊地址;以及第二列表,其用于以所述邏輯至物理轉(zhuǎn)譯表所管理的擦除次數(shù)的 順序來(lái)管理從所述第一列表溢出的邏輯塊的邏輯塊地址,并且 所述控制器從所述第二列表獲取所述空閑塊。
15. 根據(jù)權(quán)利要求1的存儲(chǔ)器系統(tǒng),其中所述控制器可獨(dú)立地驅(qū)動(dòng)所 述并行操作元件中的至少一個(gè),且在執(zhí)行所述獨(dú)立驅(qū)動(dòng)時(shí),將分配給所述 邏輯塊的多個(gè)物理塊均等地使用相同的次數(shù)。
16. 根據(jù)權(quán)利要求1的存儲(chǔ)器系統(tǒng),其中所述并行操作元件包括連接 所述非易失性半導(dǎo)體存儲(chǔ)器和所述控制器的多個(gè)通道。
17. 根據(jù)權(quán)利要求1的存儲(chǔ)器系統(tǒng),其中所述并行操作元件包括連接 所述非易失性半導(dǎo)體存儲(chǔ)器和所述控制器的多個(gè)通道,以及在非易失性半 導(dǎo)M儲(chǔ)器芯片中被劃分的多個(gè)平面。
18. 根據(jù)權(quán)利要求l的存儲(chǔ)器系統(tǒng),其中所述非易失性半導(dǎo)體存儲(chǔ)器為 NAND閃速存儲(chǔ)器。
全文摘要
根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)器系統(tǒng)包括通過采用這樣的非易失性半導(dǎo)體存儲(chǔ)器和控制器來(lái)減少管理表創(chuàng)建所需的存儲(chǔ)器的量,所述非易失性半導(dǎo)體存儲(chǔ)器包括多個(gè)并行操作元件,所述多個(gè)并行操作元件分別具有多個(gè)物理塊作為數(shù)據(jù)擦除的單位,所述控制器可以并行驅(qū)動(dòng)所述并行操作元件并具有擦除次數(shù)管理單元,所述擦除次數(shù)管理單元以與并行驅(qū)動(dòng)的多個(gè)物理塊相關(guān)聯(lián)的邏輯塊為單位管理擦除次數(shù)。
文檔編號(hào)G06F12/06GK101689140SQ200980000136
公開日2010年3月31日 申請(qǐng)日期2009年2月10日 優(yōu)先權(quán)日2008年3月1日
發(fā)明者初田幸輔, 松崎秀則, 檜田敏克, 矢野純二 申請(qǐng)人:株式會(huì)社東芝