專(zhuān)利名稱:存儲(chǔ)器系統(tǒng)和控制存儲(chǔ)器系統(tǒng)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及包括非易失性半導(dǎo)體存儲(chǔ)器的存儲(chǔ)器系統(tǒng)以及控制存儲(chǔ)器系統(tǒng)的方法。
背景技術(shù):
一些個(gè)人計(jì)算機(jī)(PC)采用硬盤(pán)設(shè)備作為二級(jí)存儲(chǔ)設(shè)備。在這種PC中,已知用于 備份在硬盤(pán)設(shè)備中存儲(chǔ)的數(shù)據(jù)以防止數(shù)據(jù)由于一些故障而無(wú)效的技術(shù)。例如,當(dāng)檢測(cè)到 改變硬盤(pán)設(shè)備中的數(shù)據(jù)的行為時(shí),提取作為數(shù)據(jù)在改變之前的備份副本的快照,并產(chǎn)生對(duì) 于數(shù)據(jù)作出改變的日志。然后,在每個(gè)特定時(shí)間重復(fù)提取新快照、使得在提取新快照之前 在過(guò)去提取的日志無(wú)效、以及生成新日志的處理(例如,見(jiàn)專(zhuān)利文檔1 美國(guó)專(zhuān)利申請(qǐng)?zhí)亻_(kāi) No. 2006/0224636的說(shuō)明書(shū))。在數(shù)據(jù)由于某些原因變?yōu)闊o(wú)效的情況下,可通過(guò)參照快照和 日志來(lái)恢復(fù)數(shù)據(jù)。近年來(lái),作為易失性半導(dǎo)體存儲(chǔ)設(shè)備的NAND型閃存的容量急劇增加。結(jié)果,作為 安裝有NAND型閃存的存儲(chǔ)器系統(tǒng)的固態(tài)驅(qū)動(dòng)器(SSD)引起注意。閃存具有相比于磁盤(pán)驅(qū) 動(dòng)器例如高速和重量輕的優(yōu)點(diǎn)。然而,在專(zhuān)利文檔1中公開(kāi)的技術(shù)不能夠像在具有硬盤(pán)設(shè) 備作為二級(jí)存儲(chǔ)設(shè)備的PC中存儲(chǔ)的數(shù)據(jù)的備份的情況那樣,應(yīng)用于在具有NAND型閃存作 為二級(jí)存儲(chǔ)設(shè)備的這種PC中存儲(chǔ)的數(shù)據(jù)的備份。這是因?yàn)閼?yīng)用多值存儲(chǔ)器技術(shù)(其中等 于或大于2的多條數(shù)據(jù)(多值數(shù)據(jù))可在一個(gè)存儲(chǔ)器單元中存儲(chǔ))來(lái)增加NAND型閃存的 容量(例如,見(jiàn)專(zhuān)利文檔2 日本專(zhuān)利申請(qǐng)?zhí)亻_(kāi)No. 2004-192789)。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)方面提供一種存儲(chǔ)器系統(tǒng),包括第一存儲(chǔ)單元,其為易失性的;第 二存儲(chǔ)單元,其為非易失性的,并且連接至所述第一存儲(chǔ)單元;讀取/寫(xiě)入控制單元,其基 于管理表執(zhí)行從所述第二存儲(chǔ)單元的數(shù)據(jù)讀取以及向所述第二存儲(chǔ)單元的數(shù)據(jù)寫(xiě)入,在所 述管理表中,邏輯地址與所述第二存儲(chǔ)單元中的數(shù)據(jù)存儲(chǔ)位置關(guān)聯(lián);日志控制單元,其將所 述管理表傳送至所述第一存儲(chǔ)單元,并且在更新所述第一存儲(chǔ)單元上的所述管理表的事件 發(fā)生時(shí),將所述管理表的更新前后的差異信息作為差異日志存儲(chǔ)至所述第一存儲(chǔ)單元中; 日志反映單元,其執(zhí)行提交處理,所述提交處理用于將所述差異日志存儲(chǔ)于所述第二存儲(chǔ) 單元中,并且在建立第一條件時(shí),在存儲(chǔ)于所述第一存儲(chǔ)單元中的所述管理表中反映所述 差異日志;操作狀態(tài)管理單元,其在系統(tǒng)啟動(dòng)之后在所述日志反映單元將所述差異日志存 儲(chǔ)至所述第二存儲(chǔ)單元之前,將第一日志存儲(chǔ)至所述第二存儲(chǔ)單元中;并且在執(zhí)行正常系 統(tǒng)暫停時(shí),將第二日志存儲(chǔ)至所述第二存儲(chǔ)單元中;以及管理信息恢復(fù)單元,其檢測(cè)存儲(chǔ)于 所述第二存儲(chǔ)單元中的所述第一日志、所述差異日志、和所述第二日志中的至少一個(gè);并且 判斷是否執(zhí)行正常系統(tǒng)暫停。
圖1是SSD 100的配置實(shí)例的框圖。圖2A和2B是示出在NAND存儲(chǔ)器芯片中包括的一個(gè)物理塊的配置實(shí)例和四元數(shù) 據(jù)存儲(chǔ)系統(tǒng)中的閾值分布的示意圖。圖3是驅(qū)動(dòng)控制電路的硬件內(nèi)部配置實(shí)例的框圖。圖4是處理器的功能配置實(shí)例的框圖。圖5是在NAND存儲(chǔ)器和動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)中形成的功能配置的框圖。圖6是示出LBA邏輯地址的視圖。圖7是示出數(shù)據(jù)管理單元中的管理表的配置實(shí)例的視圖。圖8是概念性示出快照和日志的產(chǎn)生狀態(tài)的視圖。圖9是示出寫(xiě)入高速緩存(WC)中的寫(xiě)入處理的流程圖。圖10是示出從WC至主要存儲(chǔ)區(qū)(MS)的寫(xiě)入處理的操作過(guò)程的流程圖。圖11是示出從WC至MS的寫(xiě)入處理的操作概念的示意圖。圖12是示出低密度磁軌從WC至前段存儲(chǔ)區(qū)(K)的寫(xiě)入處理的操作過(guò)程的流程圖。圖13是示出低密度磁軌從WC至FS的寫(xiě)入處理的操作概念的示意圖。圖14是示出從FS至中間段存儲(chǔ)區(qū)(IS)的數(shù)據(jù)重新定位的操作過(guò)程的流程圖。圖15是示出從FS至IS的數(shù)據(jù)重新定位的操作概念的示意圖。圖16是示出IS中的重組處理和緊縮處理的操作過(guò)程的流程圖。圖17是示出其他管理表的視圖。圖18是示出本發(fā)明中存在的基本部分的配置的功能框圖。圖19是示出存儲(chǔ)活動(dòng)日志、待用日志、和差異日志的過(guò)程的流程圖。圖20A和20B是示出當(dāng)執(zhí)行正常斷電序列時(shí)和當(dāng)發(fā)生異常斷電時(shí)活動(dòng)日志和待用 日志的視圖。圖21是示出片段空閑塊(FFB)的概念圖。圖22是示出在系統(tǒng)啟動(dòng)時(shí)由數(shù)據(jù)管理單元執(zhí)行的處理的流程圖。圖23是安裝有SSD的PC的全景圖。圖M是安裝有SSD的PC的系統(tǒng)配置實(shí)例的視圖。
具體實(shí)施例方式配置多值存儲(chǔ)器的存儲(chǔ)器單元具有包括疊柵結(jié)構(gòu)的場(chǎng)效應(yīng)晶體管結(jié)構(gòu),其中柵極 絕緣膜、浮置柵極電極、柵極間絕緣膜、和控制柵極電極依次堆疊在通道區(qū)上,并且可根據(jù) 在浮置柵極電極中聚集的電子的數(shù)目設(shè)置多個(gè)閾值電壓。為了能夠基于多個(gè)閾值電壓執(zhí)行 多值存儲(chǔ),需要使與一條數(shù)據(jù)相應(yīng)的閾值電壓的分布極其狹窄。由例如PC的主機(jī)裝置記錄的數(shù)據(jù)具有時(shí)間局部性和空間局部性。因此,當(dāng)記錄數(shù) 據(jù)時(shí),如果將數(shù)據(jù)直接記錄在從外部指定的地址中,重寫(xiě)(即擦除處理)在時(shí)間上集中在特 定區(qū)域中,并且擦除次數(shù)的偏差增加。因此,在使用NAND型閃存的存儲(chǔ)器系統(tǒng)中,執(zhí)行用于 相等地分散數(shù)據(jù)更新扇區(qū)的稱為耗損平衡的處理。在耗損平衡處理中,例如,將主機(jī)裝置指 定的邏輯地址解譯成非易失性半導(dǎo)體存儲(chǔ)器的物理地址,從而相等地分散數(shù)據(jù)更新扇區(qū)。在這樣的地址解譯中,數(shù)據(jù)的存儲(chǔ)位置通常通過(guò)使用管理表來(lái)管理,例如,表示從外部提供的邏輯地址(LBA)和指示在NAND型閃存上存儲(chǔ)的數(shù)據(jù)的位置的物理地址之間的 地址解譯表。在啟動(dòng)時(shí),管理表從非易失性NAND型閃存加載到存儲(chǔ)器(例如動(dòng)態(tài)隨機(jī)存取 存儲(chǔ)器(DRAM))上,其每當(dāng)寫(xiě)入數(shù)據(jù)時(shí)被更新。在地址解譯表中的相應(yīng)關(guān)系需要例如通過(guò) 備份技術(shù)(例如使用斷電時(shí)的相應(yīng)關(guān)系的快照和日志)來(lái)備份。在SSD中,當(dāng)在數(shù)據(jù)的寫(xiě)入期間(即使在未授權(quán)的斷電時(shí))不期望地發(fā)生斷電時(shí), 有必要保持管理信息的一致性并可靠地保護(hù)其中已經(jīng)記錄的數(shù)據(jù)。因此,在SSD中也需要 容易并且可靠地檢測(cè)是執(zhí)行了正常斷電序列還是執(zhí)行了不正確的斷電序列的方法。以下參照附圖詳細(xì)說(shuō)明根據(jù)本發(fā)明的存儲(chǔ)器系統(tǒng)的示例性實(shí)施例。本發(fā)明不限于 這些實(shí)施例。以下參照
本發(fā)明的實(shí)施例。在以下說(shuō)明中,具有相同功能和配置的組件 通過(guò)相同數(shù)字和標(biāo)號(hào)來(lái)指示。僅當(dāng)必要時(shí)執(zhí)行組件的附加說(shuō)明。首先,定義在說(shuō)明書(shū)中使用的術(shù)語(yǔ)。物理頁(yè)NAND型閃存中可共同寫(xiě)入和讀出的單位。邏輯頁(yè)在SSD中設(shè)置的寫(xiě)入和讀出單位。邏輯頁(yè)與一個(gè)或多個(gè)物理頁(yè)關(guān)聯(lián)。物理塊NAND型閃存中可獨(dú)立擦除的最小單位。物理塊包括多個(gè)物理頁(yè)。邏輯塊在SSD中設(shè)置的擦除單位。邏輯塊與一個(gè)或多個(gè)物理塊關(guān)聯(lián)。邏輯塊包 括多個(gè)邏輯頁(yè)。扇區(qū)來(lái)自主機(jī)的最小訪問(wèn)單位。例如,扇區(qū)大小為512字節(jié)⑶。簇SSD中用于管理“小數(shù)據(jù)(細(xì)粒度數(shù)據(jù)),,的管理單位。簇的大小等于或大于 扇區(qū)的大小,并且被設(shè)置為等于主機(jī)的操作系統(tǒng)(OS)采用的文件系統(tǒng)的數(shù)據(jù)管理單位或 邏輯頁(yè)大小。例如,可設(shè)置簇的大小,從而作為簇大小兩倍或更大自然數(shù)倍數(shù)的大小為邏輯 頁(yè)的大小。磁軌SSD中用于管理“大數(shù)據(jù)(粗粒度數(shù)據(jù))”的管理單位。磁軌的大小被設(shè)置, 使得作為簇大小兩倍或更大自然數(shù)倍數(shù)的大小為磁軌的大小。例如,可將磁軌的大小設(shè)置 為等于邏輯塊的大小??臻e塊(FB)其中不包括有效數(shù)據(jù)并且不被分配用途的邏輯塊??臻e塊包括以下 兩個(gè)類(lèi)型,即完全空閑塊(CFB)和片段空閑塊(FFB)。完全空閑塊(CFB)需要執(zhí)行擦除操作以用于重用的空閑塊。在執(zhí)行擦除操作之 后,可從位于邏輯塊頂部的邏輯頁(yè)執(zhí)行寫(xiě)入。片段空閑塊(FFB)剩余沒(méi)有數(shù)據(jù)寫(xiě)入其中的邏輯頁(yè)并且可以在不執(zhí)行擦除操作 的情況下重用的空閑塊??梢栽跊](méi)有數(shù)據(jù)寫(xiě)入其中的剩余邏輯頁(yè)中執(zhí)行寫(xiě)入。壞塊(BB) :NAND型閃存上的由于大量錯(cuò)誤而不可用作存儲(chǔ)區(qū)域的物理塊。例如, 將沒(méi)有正常完成擦除操作的物理塊登記為壞塊BB。寫(xiě)入效率在特定期間,邏輯塊相對(duì)于從主機(jī)寫(xiě)入的數(shù)據(jù)量的擦除量的統(tǒng)計(jì)值。寫(xiě) 入效率越小時(shí),NAND型閃存的損耗度越小。有效簇存儲(chǔ)與邏輯地址相應(yīng)的最新數(shù)據(jù)(簇大小的數(shù)據(jù))的簇。無(wú)效簇作為具有相同邏輯地址的數(shù)據(jù)寫(xiě)入在不同位置中的結(jié)果,存儲(chǔ)沒(méi)有被引 用的非最新數(shù)據(jù)(簇大小的數(shù)據(jù))的簇。有效磁軌存儲(chǔ)與邏輯地址相應(yīng)的最新數(shù)據(jù)(磁軌大小的數(shù)據(jù))的磁軌。
無(wú)效磁軌作為具有相同邏輯地址的數(shù)據(jù)寫(xiě)入在不同位置中的結(jié)果,存儲(chǔ)沒(méi)有被 引用的非最新數(shù)據(jù)(磁軌大小的數(shù)據(jù))的磁軌。多級(jí)單元(MLC)模式正常使用能夠多值化存儲(chǔ)的NAND型閃存中的上部頁(yè)和下部 頁(yè)來(lái)執(zhí)行寫(xiě)入的模式。通過(guò)將MLC模式下使用的一個(gè)或多個(gè)物理塊關(guān)聯(lián)來(lái)配置MLC模式的 邏輯塊。偽單級(jí)單元(SLC)模式僅使用能夠多值化存儲(chǔ)的NAND型閃存中的下部頁(yè)來(lái)執(zhí)行 寫(xiě)入的模式。通過(guò)將偽SLC模式中使用的一個(gè)或多個(gè)物理塊關(guān)聯(lián)來(lái)配置偽SLC模式的邏輯 塊。在擦除操作之后,甚至可在MLC模式下使用在偽SLC模式下使用一次的物理塊。(第一實(shí)施例)圖1是SSD 100的配置實(shí)例的框圖。SSD 100經(jīng)由存儲(chǔ)器連接接口(例如高級(jí)技 術(shù)配件接口(ATA I/FO連接至主機(jī)設(shè)備1(以下主機(jī)1),例如PC或中央處理單元(CPU) 核,并用作主機(jī)1的外部存儲(chǔ)器。SSD 100可經(jīng)由通信接口 3(例如RS232C I/F)向用于調(diào) 試和制造檢查的裝置200發(fā)送數(shù)據(jù)和從其接收數(shù)據(jù)。SSD 100包括作為非易失性半導(dǎo)體存 儲(chǔ)器的NAND型閃存(以下NAND存儲(chǔ)器)10、作為控制器的驅(qū)動(dòng)控制電路4、作為易失性半 導(dǎo)體存儲(chǔ)器的DRAM 20、電源電路5、用于狀態(tài)顯示的發(fā)光二極管(LED) 6、檢測(cè)驅(qū)動(dòng)器中的 溫度的溫度傳感器7、和保險(xiǎn)絲8。電源電路5根據(jù)從主機(jī)1端上的電源電路提供的外部直流電源生成多個(gè)不同內(nèi)部 直流電源電壓,并且將這些內(nèi)部直流電源電壓提供至SSD 100中的各個(gè)電路。電源電路5 檢測(cè)外部電源的上沿,生成通電重設(shè)信號(hào),以及將通電重設(shè)信號(hào)提供至驅(qū)動(dòng)控制電路4。保 險(xiǎn)絲8提供在主機(jī)1端上的電源電路和SSD 100中的電源電路5之間。當(dāng)從外部電源電路 提供過(guò)量電流時(shí),保險(xiǎn)絲被斷開(kāi),以防止內(nèi)部電路的故障。在這種情況下,NAND存儲(chǔ)器10包括4個(gè)并行操作元件IOa至10d,其執(zhí)行4個(gè)并 行操作。并行操作元件IOa至IOd通過(guò)4個(gè)通道(chO至ch3)連接至驅(qū)動(dòng)控制電路4。并 行操作元件IOa至IOd中的每個(gè)包括多個(gè)存儲(chǔ)體(在這種情況下,4個(gè)存儲(chǔ)體(存儲(chǔ)體0至 存儲(chǔ)體幻),其能夠執(zhí)行存儲(chǔ)體交錯(cuò)。每個(gè)存儲(chǔ)體包括多個(gè)NAND存儲(chǔ)器芯片(在這種情況 下,2個(gè)存儲(chǔ)器芯片(芯片0和芯片1))。每個(gè)存儲(chǔ)器芯片分成例如面0和面1的兩個(gè)區(qū), 其每個(gè)包括多個(gè)物理塊。面0和面1包括彼此獨(dú)立的外圍電路(例如行解碼器、列解碼器、 頁(yè)緩沖器、和數(shù)據(jù)高速緩存),并且可通過(guò)使用雙倍速模式同時(shí)執(zhí)行擦除、寫(xiě)入、和讀取。這 樣,NAND存儲(chǔ)器10的每個(gè)NAND存儲(chǔ)器芯片可使用多個(gè)面執(zhí)行多個(gè)通道的并行操作、多個(gè) 存儲(chǔ)體的存儲(chǔ)體交錯(cuò)操作、以及雙倍速模式的并行操作。每個(gè)存儲(chǔ)器芯片可分成4個(gè)面,或 者可在沒(méi)有劃分的情況下被配置。DRAM 20用作在主機(jī)1和NAND存儲(chǔ)器10之間的數(shù)據(jù)傳送的高速緩存以及用于工 作區(qū)的存儲(chǔ)器。在用于DRAM 20的工作區(qū)的存儲(chǔ)器中,存儲(chǔ)通過(guò)在啟動(dòng)等時(shí)間加載NAND存 儲(chǔ)器10中存儲(chǔ)的各個(gè)管理表獲得的主表(快照)、作為管理表的改變差異的日志信息及其 類(lèi)似者??墒褂描F電隨機(jī)存取存儲(chǔ)器(FeRAM)、磁阻隨機(jī)存取存儲(chǔ)器(MRAM)、相變隨機(jī)存取 存儲(chǔ)器(PRAM)代替DRAM 20。驅(qū)動(dòng)控制電路4經(jīng)由DRAM 20執(zhí)行在主機(jī)1和NAND存儲(chǔ)器 10之間的數(shù)據(jù)傳送控制,并且控制SSD 100中的各個(gè)組件。驅(qū)動(dòng)控制電路4向用于狀態(tài)顯 示6的LED提供用于狀態(tài)顯示的信號(hào)。驅(qū)動(dòng)控制電路4還具有從電源電路5接收通電重設(shè) 信號(hào)以及向自身電路和SSD 100中的各個(gè)單元提供時(shí)鐘信號(hào)的功能。
通過(guò)將多個(gè)物理塊安排為數(shù)據(jù)擦除的單位來(lái)配置每個(gè)NAND存儲(chǔ)器芯片。圖2A 是示出在NAND存儲(chǔ)器芯片中包括的一個(gè)物理塊的配置實(shí)例的等效電路圖。每個(gè)物理塊包 括沿著X方向依次排列的(P+1)個(gè)NAND串(ρ是等于或大于0的整數(shù))。在各個(gè)(p+1)個(gè) NAND串中包括的選擇晶體管STl的漏極分別連接至位線BLO至BLp,并且柵極共同連接至 柵極線S⑶。此外,選擇晶體管ST2的源極共同連接至源線SL,并且柵極共同連接至柵極線 SGS。每個(gè)存儲(chǔ)器單元晶體管MT包括金屬氧化物半導(dǎo)體場(chǎng)效應(yīng)晶體管(MOSFET),其包 括在半導(dǎo)體襯底上形成的堆疊柵極結(jié)構(gòu)。堆疊柵極結(jié)構(gòu)包括經(jīng)由柵極絕緣膜在半導(dǎo)體襯底 上形成的電荷存儲(chǔ)層(浮置柵極電極)和經(jīng)由柵極間絕緣膜在電荷存儲(chǔ)層上形成的控制柵 極電極。在存儲(chǔ)器單元晶體管MT中,閾值電壓根據(jù)在浮置柵極電極中聚集的電子的數(shù)目改 變。存儲(chǔ)器單元晶體管MT根據(jù)閾值電壓的差存儲(chǔ)數(shù)據(jù)。存儲(chǔ)器單元晶體管MT可倍配置為 存儲(chǔ)一個(gè)比特,或者可倍配置為存儲(chǔ)多值(等于或大于兩個(gè)比特的數(shù)據(jù))。存儲(chǔ)器單元晶體管MT不限于具有浮置柵極電極的結(jié)構(gòu),并且可以是例如金屬氧 氮氧化矽(M0N0Q型的結(jié)構(gòu),其可通過(guò)使得作為電荷存儲(chǔ)層的氮化物膜接口捕獲電子來(lái)調(diào) 節(jié)閾值。類(lèi)似地,MONOS結(jié)構(gòu)的存儲(chǔ)器單元晶體管MT可被配置為存儲(chǔ)一個(gè)比特,或者可倍 配置為存儲(chǔ)多值(等于或大于兩個(gè)比特的數(shù)據(jù))。在每個(gè)NAND串中,將(q+Ι)個(gè)存儲(chǔ)器單元晶體管MT設(shè)置在選擇晶體管STl的源 極和選擇晶體管ST2的漏極之間,從而使其電流路徑串聯(lián)連接。換句話說(shuō),存儲(chǔ)器單元晶體 管MT在Y方向串聯(lián)連接,從而存儲(chǔ)器單元晶體管MT的相鄰晶體管共享擴(kuò)散區(qū)域(源極區(qū) 域或漏極區(qū)域)。存儲(chǔ)器單元晶體管MT的控制柵極電極以從位于大部分漏極端上的存儲(chǔ)器單元晶 體管MT的順序分別連接至字線mi)至WLq。因此,與字線mi)連接的存儲(chǔ)器單元晶體管MT 的漏極連接至選擇晶體管STl的源極。與字線WLq連接的存儲(chǔ)器單元晶體管MT的源極連 接至選擇晶體管ST2的漏極。在物理塊的NAND串之間,字線Wi)至WLq共同連接存儲(chǔ)器單元晶體管MT的控制 柵極電極。換句話說(shuō),在塊中的相同行中出現(xiàn)的存儲(chǔ)器單元晶體管MT的控制柵極電極連接 至相同字線WL。與相同字線WL連接的(P+1)個(gè)存儲(chǔ)器單元晶體管MT看作一個(gè)頁(yè)(物理 頁(yè))。通過(guò)每個(gè)物理頁(yè)執(zhí)行數(shù)據(jù)寫(xiě)入和數(shù)據(jù)讀出。在所述塊之間,位線BLO至BLp共同連接選擇晶體管STl的漏極。換句話說(shuō),在多 個(gè)塊中的相同列中出現(xiàn)的NAND串連接至相同位線BL。圖2B是例如在一個(gè)存儲(chǔ)器單元晶體管MT中存儲(chǔ)兩個(gè)比特的四元數(shù)據(jù)存儲(chǔ)模式下 的閾值分布的示意圖。在四元數(shù)據(jù)存儲(chǔ)模式下,可在存儲(chǔ)器單元晶體管MT中存儲(chǔ)由上部頁(yè) 數(shù)據(jù)“χ”和下部頁(yè)數(shù)據(jù)“y”定義的四元數(shù)據(jù)“xy”中的任一個(gè)。作為四元數(shù)據(jù)“xy”,例如,以存儲(chǔ)器單元晶體管MT的閾值電壓的順序分配數(shù)據(jù) “11”、“01”、“00”、和“10”。數(shù)據(jù)“11”是存儲(chǔ)器單元晶體管MT的電壓閾值為負(fù)的擦除狀態(tài)。 數(shù)據(jù)分配的規(guī)則不限于此。配置可以是在一個(gè)存儲(chǔ)器單元晶體管MT中存儲(chǔ)3個(gè)或更多個(gè) 比特。在下部頁(yè)寫(xiě)入操作中,根據(jù)下部比特?cái)?shù)據(jù)“y”的寫(xiě)入在具有數(shù)據(jù)“11”的存儲(chǔ)器 單元晶體管MT中選擇性寫(xiě)入數(shù)據(jù)“ 10” (處于經(jīng)擦除狀態(tài))。在上部頁(yè)寫(xiě)入之前數(shù)據(jù)“ 10”的閾值位于在上部頁(yè)寫(xiě)入之后數(shù)據(jù)“01”和數(shù)據(jù)“00”的閾值分布的中間附近,并且可寬于 在上部頁(yè)寫(xiě)入之后的閾值分布。在上部頁(yè)寫(xiě)入操作中,對(duì)于數(shù)據(jù)“ 11,,的存儲(chǔ)器單元和數(shù)據(jù) “10”的存儲(chǔ)器單元選擇性應(yīng)用上部比特?cái)?shù)據(jù)“X”的寫(xiě)入。在存儲(chǔ)器單元中寫(xiě)入數(shù)據(jù)“01” 和數(shù)據(jù)“00”。在偽SLC模式下,僅使用下部頁(yè)來(lái)執(zhí)行寫(xiě)入。下部頁(yè)寫(xiě)入快于上部頁(yè)寫(xiě)入。圖3是驅(qū)動(dòng)控制電路4的硬件內(nèi)部配置實(shí)例的框圖。驅(qū)動(dòng)控制電路4包括數(shù)據(jù)訪 問(wèn)總線101、第一電路控制總線102、和第二電路控制總線103??刂普麄€(gè)驅(qū)動(dòng)控制電路4的 處理器104連接至第一電路控制總線102。其中存儲(chǔ)用于引導(dǎo)NAND存儲(chǔ)器10中存儲(chǔ)的各 個(gè)管理程序(FW 固件)的引導(dǎo)程序的引導(dǎo)ROM 105經(jīng)由ROM控制器106連接至第一電路 控制總線102。從如圖1所示的電源電路5接收通電重設(shè)信號(hào)并向各個(gè)單元提供重設(shè)信號(hào) 和控制信號(hào)的時(shí)鐘控制器107連接至第一電路控制總線102。第二電路控制總線103連接至第一電路控制總線102。從如圖1所示的溫度傳感 器7接收數(shù)據(jù)的I2C電路108、向用于狀態(tài)顯示6的LED提供用于狀態(tài)顯示的信號(hào)的并行 IO(PIO)電路109、和控制RS232C I/F 3的串行IO(SIO)電路110連接至第二電路控制總 線 103。ATA接口控制器(ΑΤΑ控制器)111、第一檢錯(cuò)和糾錯(cuò)(ECC)電路112、NAND控制器 113、和DRAM控制器114連接至數(shù)據(jù)訪問(wèn)總線101和第一電路控制總線102兩者。ATA控 制器111經(jīng)由ATA接口 2向主機(jī)1發(fā)送數(shù)據(jù),以及從其接收數(shù)據(jù)。用作數(shù)據(jù)工作區(qū)和固件 擴(kuò)展區(qū)的靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM) 115經(jīng)由SRAM控制器116連接至數(shù)據(jù)訪問(wèn)總線101。 當(dāng)啟動(dòng)在NAND存儲(chǔ)器10中存儲(chǔ)的固件時(shí),通過(guò)在引導(dǎo)ROM 105中存儲(chǔ)的引導(dǎo)程序?qū)⒐碳?傳送至SRAM 115。NAND控制器113包括NAND I/F 117,其執(zhí)行與NAND存儲(chǔ)器10對(duì)接的對(duì)接處理; 第二 ECC電路118 ;和直接存儲(chǔ)器訪問(wèn)(DMA)傳送控制的DMA控制器119,其執(zhí)行NAND存儲(chǔ) 器10和DRAM 20之間的訪問(wèn)控制。第二 ECC電路118執(zhí)行第二校正碼的編碼,以及執(zhí)行第 一糾錯(cuò)碼的編碼和解碼。第一 ECC電路112執(zhí)行第二糾錯(cuò)碼的解碼。第一糾錯(cuò)碼和第二糾 錯(cuò)碼是例如漢明(Hamming)碼、博斯-查德胡里-霍昆格姆(Bose Chauduri Hocquenghem) (BCH)碼、里德-所羅門(mén)(Reed Solomon) (RS)碼、或低密度奇偶校驗(yàn)(LDPC)碼。第二糾錯(cuò) 碼的糾錯(cuò)能力高于第一糾錯(cuò)碼的糾錯(cuò)能力。例如,在國(guó)際專(zhuān)利申請(qǐng)PCT/JP2008/063344或 國(guó)際專(zhuān)利申請(qǐng)PCT/JP2008/063345中公開(kāi)了涉及這種糾錯(cuò)的技術(shù),并且其內(nèi)容合并在本申 請(qǐng)中。如圖1所示,在NAND存儲(chǔ)器10中,4個(gè)并行操作元件IOa至IOd經(jīng)由均用于多個(gè) 比特的4個(gè)通道(kh)并行連接至驅(qū)動(dòng)控制電路4中的NAND控制器113,從而可并行激勵(lì) 4個(gè)并行操作元件IOa至10d。每個(gè)通道的NAND存儲(chǔ)器10分成能夠存儲(chǔ)體交錯(cuò)的4個(gè)存 儲(chǔ)體,并且可同時(shí)訪問(wèn)每個(gè)存儲(chǔ)器芯片的面0和面1。因此,可在用于每個(gè)通道的多達(dá)8個(gè) 物理塊0個(gè)存儲(chǔ)體X2個(gè)面)上幾乎同時(shí)執(zhí)行例如寫(xiě)入的處理。例如,在美國(guó)專(zhuān)利申請(qǐng)公 開(kāi)No. 12/558965中公開(kāi)涉及這樣的存儲(chǔ)體交錯(cuò)的技術(shù),并且其全部?jī)?nèi)容合并在本申請(qǐng)中。圖4是通過(guò)處理器104實(shí)現(xiàn)的固件的功能配置實(shí)例的框圖。由處理器104實(shí)現(xiàn)的 固件的功能大致分成數(shù)據(jù)管理單元120、ATA命令處理單元121、安全管理單元122、引導(dǎo)加 載器123、初始化管理單元124、和調(diào)試支持單元125。數(shù)據(jù)管理單元120經(jīng)由NAND控制器113和第一 ECC電路112控制在NAND存儲(chǔ)器
1110和DRAM 20之間的數(shù)據(jù)傳送和關(guān)于NAND存儲(chǔ)器10的各個(gè)功能。ATA命令處理單元121 經(jīng)由ATA控制器111和DRAM控制器114與數(shù)據(jù)管理單元120協(xié)作執(zhí)行在DRAM 20和主機(jī) 1之間的數(shù)據(jù)傳送處理。安全管理單元122與數(shù)據(jù)管理單元120和ATA命令處理單元121 協(xié)作管理各種安全信息。當(dāng)電源開(kāi)啟時(shí),引導(dǎo)加載器123從NAND存儲(chǔ)器10將管理程序(固件)加載到SRAM 115上。初始化管理單元123執(zhí)行在驅(qū)動(dòng)控制電路4中的各個(gè)控制器和電路的初始化。調(diào) 試支持單元125處理經(jīng)由RS232C接口從外部提供的用于調(diào)試的數(shù)據(jù)。數(shù)據(jù)管理單元120、 ATA命令處理單元121、和安全管理單元122是通過(guò)處理器104執(zhí)行在SRAM 115中存儲(chǔ)的 各個(gè)管理程序?qū)崿F(xiàn)的主要功能單元。在本實(shí)施例中,主要說(shuō)明通過(guò)數(shù)據(jù)管理單元120實(shí)現(xiàn)的功能。數(shù)據(jù)管理單元120執(zhí) 行例如以下功能,ATA命令處理單元121請(qǐng)求作為存儲(chǔ)設(shè)備的NAND存儲(chǔ)器10和DRAM 20 (響 應(yīng)于來(lái)自主機(jī)的各種命令,例如寫(xiě)入請(qǐng)求、高速緩存清空請(qǐng)求、和讀取請(qǐng)求),在從主機(jī)給出 的邏輯地址和NAND存儲(chǔ)器10的物理地址之間的相應(yīng)關(guān)系的管理,通過(guò)快照和日志對(duì)于管 理信息的保護(hù),使用DRAM 20和NAND存儲(chǔ)器10進(jìn)行快速和高度有效的數(shù)據(jù)讀出和寫(xiě)入功 能,和確保NAND存儲(chǔ)器10的可靠性。圖5是在NAND存儲(chǔ)器10和DRAM 20中形成的功能框的視圖。在DRAM 20上配置 的寫(xiě)入高速緩存(WC) 21和讀取高速緩存(RC) 22插入在主機(jī)1和NAND存儲(chǔ)器10之間。WC 21在其中臨時(shí)存儲(chǔ)來(lái)自主機(jī)1的寫(xiě)入數(shù)據(jù)。RC 22在其中臨時(shí)存儲(chǔ)來(lái)自NAND存儲(chǔ)器10的 讀取數(shù)據(jù)。通過(guò)數(shù)據(jù)管理單元120將NAND存儲(chǔ)器10中的塊分配給前段存儲(chǔ)區(qū)(FS 前存 儲(chǔ))12、中間段存儲(chǔ)區(qū)(IS:中間存儲(chǔ))13、和主存儲(chǔ)區(qū)(MS:主存儲(chǔ))11的各個(gè)管理區(qū),以減 少在寫(xiě)入期間對(duì)于NAND存儲(chǔ)器10的擦除的量。FS 12以簇為單位(S卩“小單位”)來(lái)管理 來(lái)自WC 21的數(shù)據(jù),以及在短時(shí)間段存儲(chǔ)小數(shù)據(jù)。IS 13以簇為單位(S卩“小單位”)來(lái)管理 來(lái)自FS 12的溢出,以及在長(zhǎng)時(shí)間段存儲(chǔ)小數(shù)據(jù)。MS 11以磁軌為單位(即“大單位”)管 理來(lái)自WC 21、FS 12、和IS 13的數(shù)據(jù)。例如,在國(guó)際專(zhuān)利申請(qǐng)PCT/JP08/073950中或國(guó)際 專(zhuān)利申請(qǐng)PCT/JP08/067600中公開(kāi)了以這個(gè)方式通過(guò)在每個(gè)管理區(qū)中分配N(xiāo)AND存儲(chǔ)器10 中的塊來(lái)管理他們的技術(shù),并且其全部?jī)?nèi)容合并在本申請(qǐng)中。詳細(xì)說(shuō)明圖5中所示的各個(gè)組件的特定功能配置。當(dāng)主機(jī)1執(zhí)行對(duì)于SSD 100的 讀取或?qū)懭霑r(shí),主機(jī)1經(jīng)由ATA I/F 2輸入邏輯塊尋址(LBA)作為邏輯地址。如圖6所示, LBA是將從0的序號(hào)附加在扇區(qū)(大小512B)的邏輯地址。在本實(shí)施例中,作為用于圖5 中所示的組件的WC 21、RC 22、FS 12、IS 13、和MS 11的管理單元,定義了用等于或大于 LBA的第(s+1)低階比特的位串按序形成的簇地址以及用等于或大于LBA的第(s+t+Ι)低 階比特的位串按序形成的磁軌地址。在本實(shí)施例中,磁軌和邏輯塊的大小相同。邏輯塊是 與NAND存儲(chǔ)器10的芯片上的多個(gè)物理塊關(guān)聯(lián)的虛擬塊。在本實(shí)施例中,邏輯塊與用于若 干并行通道(在這種情況下,如圖1中所示4個(gè)通道)的物理塊關(guān)聯(lián)。以類(lèi)似方式,邏輯頁(yè) 與用于4個(gè)通道的物理頁(yè)關(guān)聯(lián)。從屬于相同存儲(chǔ)體的物理塊選擇邏輯塊,以有效地使用存 儲(chǔ)體交錯(cuò)。<讀取高速緩存(RC) 22>RC 22是響應(yīng)于來(lái)自主機(jī)1的讀取請(qǐng)求臨時(shí)存儲(chǔ)來(lái)自NAND存儲(chǔ)器10 (FS 12、IS 13和MS 11)的讀取數(shù)據(jù)的區(qū)域。基本上從RC 22執(zhí)行向主機(jī)1的傳送。當(dāng)執(zhí)行從WC 21向NAND存儲(chǔ)器10的數(shù)據(jù)寫(xiě)入時(shí),使具有相同邏輯地址的RC 22上的數(shù)據(jù)無(wú)效?!磳?xiě)入高速緩存(WC)21>WC 21是響應(yīng)于來(lái)自主機(jī)1的寫(xiě)入請(qǐng)求臨時(shí)存儲(chǔ)來(lái)自主機(jī)1的寫(xiě)入數(shù)據(jù)的區(qū)域。 以簇為單位來(lái)管理WC 21上的數(shù)據(jù),并且以扇區(qū)為單位來(lái)執(zhí)行有效數(shù)據(jù)的寫(xiě)入和管理。當(dāng) WC 21的資源變得不足時(shí),將WC 21上存儲(chǔ)的數(shù)據(jù)清空至NAND存儲(chǔ)器。當(dāng)在與來(lái)自主機(jī)1 的RC 22上的數(shù)據(jù)相同的邏輯地址中執(zhí)行寫(xiě)入時(shí),在WC 21上存儲(chǔ)最新數(shù)據(jù)。因此,當(dāng)在 WC 2URRC 22和NAND存儲(chǔ)器10上存在與相同邏輯地址相應(yīng)的數(shù)據(jù)時(shí),該數(shù)據(jù)按WC 21、RC 22、和NAND存儲(chǔ)器10的順序?yàn)樾碌?,從而WC 21上的數(shù)據(jù)倍優(yōu)先化以返回至主機(jī)1?!粗鞔鎯?chǔ)區(qū)(MS)IDMS 11以磁軌為單位執(zhí)行數(shù)據(jù)管理,并且大部分用戶數(shù)據(jù)存儲(chǔ)在MSll中。將WC上 具有許多有效簇的磁軌(高密度磁軌)從WC 21直接寫(xiě)入MS 11。此外,將無(wú)法由FS 12和 IS 13管理的數(shù)據(jù)輸入至MS 11。使LBA與輸入至MS 11的磁軌的LBA相同的磁軌在邏輯 塊中無(wú)效,并且釋放這個(gè)邏輯塊。使屬于LBA與輸入至MS 11的磁軌的LBA相同的磁軌的 簇在FS 12、IS 13中無(wú)效,并且釋放其中所有簇?zé)o效的邏輯塊。MS 11由MLS模式的多個(gè) 邏輯塊組成。在本實(shí)施例中,磁軌與邏輯塊的大小相同,從而在FS 12或IS 13中執(zhí)行的額 外記錄處理以及在IS 13中執(zhí)行的緊縮(用于僅收集有效簇以生成新邏輯塊和釋放無(wú)效簇 部分的處理)在MS 11中是不必要的。如果磁軌大小小于邏輯塊大小,則可將在FS 12和 IS 13中執(zhí)行的額外記錄處理以及在FS 13中執(zhí)行的緊縮應(yīng)用于MS 11。<前段存儲(chǔ)區(qū)(FS) 12>FS 12是適配先進(jìn)先出(FIFO)結(jié)構(gòu)的緩沖器,其中數(shù)據(jù)以簇為單位來(lái)管理,并且 輸入是收集多個(gè)簇的邏輯頁(yè)為單位來(lái)執(zhí)行。首先,將WC 21上具有較小數(shù)目的有效簇的磁 軌(低密度磁軌)寫(xiě)入至FS 12中。FS 12具有FIFO結(jié)構(gòu),其中按數(shù)據(jù)寫(xiě)入的次序來(lái)配置 邏輯塊。當(dāng)將LBA與FS 12中存在的簇的LBA相同的簇輸入至FS 12時(shí),足以使FS 12中 的簇?zé)o效,并且不執(zhí)行重寫(xiě)。使LBA與輸入至FS 12的簇的LBA相同的簇在邏輯塊中無(wú)效, 并且釋放邏輯塊中的所有簇?zé)o效的邏輯塊。將存儲(chǔ)于達(dá)到FS 12的FIFO結(jié)構(gòu)的末端的邏 輯塊中的簇看作來(lái)自主機(jī)1的具有低重寫(xiě)可能性的簇,并且在IS 13的管理下將該邏輯塊 整個(gè)重寫(xiě)定位至IS 13。在本實(shí)施例中,F(xiàn)S 12是由偽SLC模式的多個(gè)邏輯塊組成,以加速 寫(xiě)入。FS 12可由MLC模式的多個(gè)邏輯塊組成。具有高更新頻率的數(shù)據(jù)在通過(guò)FS 12時(shí)為 無(wú)效的并且僅具有低更新頻率的數(shù)據(jù)從FS 12溢出,使得FS 12可使具有低更新頻率的數(shù) 據(jù)與具有高更新頻率的數(shù)據(jù)分離。因此,有可能降低緊縮在后續(xù)段的IS 13中頻繁發(fā)生的 可能性。<中間段存儲(chǔ)區(qū)(IS) 13>IS 13是用于存儲(chǔ)具有低重寫(xiě)可能性的簇的緩沖器,并且以與FS 12相同的方式 以簇為單位來(lái)執(zhí)行數(shù)據(jù)的管理。當(dāng)將LBA與IS 13中存在的簇的LBA相同的簇輸入至FS 12和IS 13時(shí),足以使IS 13中的簇?zé)o效,并且不執(zhí)行重寫(xiě)。以與FS 12類(lèi)似的方式,IS 13 具有列表結(jié)構(gòu),其中從首先倍寫(xiě)入數(shù)據(jù)的邏輯塊(從首先根據(jù)FS 12重寫(xiě)定位的邏輯塊) 依次配置邏輯塊;然而,不同于FS 12的是,IS 13執(zhí)行緊縮。當(dāng)IS 13的容量飽和或用于 FS 12和IS 13的管理表飽和時(shí),執(zhí)行緊縮(從IS 13收集有效簇并且將其重寫(xiě)至IS 13) 或重組(將FS 12和IS 13的簇整合至磁軌中并且將其清空至MS 11)。在本實(shí)施例中,IS13是由MLC模式和偽SLC模式的邏輯塊的混合物組成。換句話說(shuō),從FS 12重新定位至IS13的塊是偽SLC模式的邏輯塊;然而,當(dāng)在IS 13中執(zhí)行緊縮時(shí),將該塊重寫(xiě)至MLC模式的 邏輯塊。當(dāng)FS 12是由MLC模式的邏輯塊組成時(shí),IS 13也僅由MLC模式的邏輯塊組成。圖7是示出用于數(shù)據(jù)管理單元120控制和管理圖5中所示的各個(gè)組件的管理表的視圖。用于管理DRAM 20的表包括RC管理表23、WC磁軌表M、WC磁軌信息表25、WC高密 度磁軌信息表26、和WC低密度磁軌信息表27。用于管理NAND存儲(chǔ)器10的表包括磁軌表 30、簇目錄表31、簇表32、簇塊信息表33、和邏輯至物理解譯表40。用于管理NAND存儲(chǔ)器 10的表分成前向查詢地址解譯中所涉及的表和反向查詢地址解譯中所涉及的表。前向查詢 地址解譯是用于從數(shù)據(jù)的LBA獲得實(shí)際存儲(chǔ)該數(shù)據(jù)的(邏輯塊地址+簇位置)。反向查詢 地址解譯是用于從(邏輯塊地址+簇位置)獲得數(shù)據(jù)的LBA。<RC 管理表 23>RC管理表23是用于管理從NAND存儲(chǔ)器10傳送至RC 22的數(shù)據(jù)。<WC磁軌表對(duì)>WC磁軌表M是用于從LBA查詢關(guān)于在WC 21上存儲(chǔ)的數(shù)據(jù)的WC磁軌信息的散列 表,并且包括針對(duì)每個(gè)索引的多個(gè)項(xiàng)目(標(biāo)簽),所述每個(gè)索引是LBA的磁軌地址的最低有 效位(LSB)的少量比特。每個(gè)標(biāo)簽存儲(chǔ)LBA磁軌地址和指向與磁軌地址對(duì)應(yīng)的WC磁軌信 息的指針。<WC磁軌信息表25>WC磁軌信息表25包括WC磁軌最近最少使用(LRU)信息表25a,用于通過(guò)使用LRU 的雙向連接列表來(lái)管理已存取WC磁軌信息的時(shí)間的排序;和WC磁軌空閑信息表25b,其管 理空閑WC磁軌信息數(shù)目。當(dāng)將數(shù)據(jù)從WC 21清空至NAND存儲(chǔ)器10時(shí),通過(guò)使用WC磁軌 LRU信息表2 獲取最早的已存取磁軌。WC磁軌信息對(duì)應(yīng)于在WC 21中存在的多個(gè)磁軌之一。該WC磁軌信息包括以下內(nèi)容(1)在WC 21中存在的磁軌地址、磁軌中的WC 21上的有效簇的數(shù)目、指示每個(gè)簇 是否有效的信息、和WC中指示W(wǎng)C 21中的每個(gè)簇的位置的簇位置信息;(2)指示在一個(gè)簇中包括的多個(gè)扇區(qū)之間存儲(chǔ)有效數(shù)據(jù)的扇區(qū)的信息(扇區(qū)位 圖);以及(3)磁軌狀態(tài)信息(例如,有效、無(wú)效、在從ATA的數(shù)據(jù)傳送期間、和在NAND存儲(chǔ)器 中寫(xiě)入期間)。在WC磁軌信息中,在存在有效簇的存儲(chǔ)位置處管理在自身磁軌中存在的簇 地址的LSB(t)比特;然而,管理簇地址的方法是任意的。例如,可管理在自身磁軌中存在的 簇地址的LSB(t)比特自身(參見(jiàn)圖6)。<WC高密度磁軌信息表沈>WC高密度磁軌信息表沈用于管理待寫(xiě)入至MS 11中的高密度(磁軌中有效簇的 數(shù)目等于或大于特定百分比)磁軌信息,并且管理關(guān)于高密度磁軌及其數(shù)目的WC磁軌信息O<WC低密度磁軌信息表27>WC低密度磁軌信息表27用于管理待寫(xiě)入至FS 12中的低密度(磁軌中有效簇的 數(shù)目小于特定百分比)磁軌信息,并且管理低密度磁軌的簇的總數(shù)。
〈磁軌表30(前向查詢)>磁軌表30是用于從LBA的磁軌地址獲得磁軌信息的表。磁軌信息包括以下內(nèi)容(1)邏輯塊地址(指示在其中存儲(chǔ)磁軌的數(shù)據(jù)的邏輯塊的信息);(2)簇目錄數(shù)目(當(dāng)磁軌中的數(shù)據(jù)的至少一部分存儲(chǔ)于FS 12或IS 13中時(shí)變得 有效并且當(dāng)磁軌中的數(shù)據(jù)存儲(chǔ)于FS 12或IS 13中時(shí)指示針對(duì)每個(gè)磁軌而存在的簇目錄表 的表數(shù)目的信息);以及(3)FS/IS簇的數(shù)目(指示磁軌中存儲(chǔ)于FS 12或IS 13中的簇的數(shù)目并且用于確 定是否指向重組的信息)。〈簇目錄表31(前向查詢)>簇目錄表31是用于在磁軌中的數(shù)據(jù)存儲(chǔ)于FS 12或IS 13中時(shí)追蹤邏輯塊的中 間表。針對(duì)每個(gè)磁軌提供簇目錄表31。登記于每個(gè)簇目錄表31中的簇目錄信息是由指示 簇表32的表數(shù)目的信息(簇表數(shù)目信息)的陣列組成。一條信息選自通過(guò)LBA的簇地址 的LSB(t)比特中的少量上部比特排列于一個(gè)簇目錄表31中的多條簇表數(shù)目信息中。簇目錄表31包括簇目錄LRU表31a,其用于通過(guò)使用LRU的雙向連接列表以寫(xiě) 入時(shí)間作為參考來(lái)管理該簇目錄信息(簇表數(shù)目信息的陣列)以及相應(yīng)磁軌地址的時(shí)間排 序;以及簇目錄空閑信息表31b,其通過(guò)雙向連接列表來(lái)管理空閑簇目錄以及相應(yīng)磁軌地 址?!创乇?2(前向查詢)>簇表32是與簇目錄表31有關(guān)并且管理邏輯塊中的簇位置的表,當(dāng)將磁軌中的數(shù) 據(jù)存儲(chǔ)于FS 12或IS 13中時(shí)數(shù)據(jù)存儲(chǔ)于該簇位置處。經(jīng)由簇目錄表31間接地從磁軌表 30參考簇表32。簇表32實(shí)際上是針對(duì)多個(gè)簇的(邏輯塊地址+簇位置)的陣列。一條信 息選自通過(guò)LBA的簇位置的LSB (t)比特中的少許下部比特排列于一個(gè)簇表32中的(邏輯 塊地址+簇位置)的多條簇表數(shù)目信息。簇表32也在其中包括簇塊信息的數(shù)目和關(guān)于簇 位置的信息作為一個(gè)陣列。<簇塊信息表33 (反向查詢)>簇塊是邏輯塊之間以簇為單位存儲(chǔ)數(shù)據(jù)的塊。簇塊信息是用于管理FS12和IS 13 的邏輯塊的信息,并且指示存在于邏輯塊中的簇的類(lèi)型。按FS12和IS 13中的FIFO的次 序來(lái)耦合多個(gè)簇塊信息作為雙向連接列表。簇塊信息包括以下內(nèi)容(1)邏輯塊地址;(2)有效簇的數(shù)目;以及C3)邏輯中包括的簇的LBA。簇塊信息表33包括用于管理空閑信息的簇塊信息表33a、針對(duì)FS 12的簇塊信息 表33b、以及針對(duì)IS 13的簇塊信息表33c。簇塊信息表33a管理未使用的簇塊信息,簇塊 信息表3 管理FS 12中包括的簇塊信息,以及簇塊信息表33c管理IS 13中包括的簇塊 信息。作為雙向連接列表來(lái)管理簇塊信息表33a至33c中的每個(gè)。反向查詢地址解譯的主 要用途為IS 13的緊縮。使用反向查詢地址解譯來(lái)檢查在作為緊縮目標(biāo)的邏輯塊中存儲(chǔ)的 簇的類(lèi)型,以及將數(shù)據(jù)重寫(xiě)至不同位置。因此,在本實(shí)施例中,反向查詢地址解譯僅將以簇 為單位存儲(chǔ)數(shù)據(jù)的FS 12和IS 13用作目標(biāo)。
<邏輯至物理解譯表40 (前向查詢)>邏輯至物理解譯表40是用于管理關(guān)于邏輯塊地址和物理塊地址之間的解譯及其 類(lèi)似物的信息的表。對(duì)于每個(gè)邏輯塊地址,邏輯至物理解譯表40包括指示屬于邏輯塊的多 個(gè)物理塊地址的信息、指示邏輯塊地址的擦除次數(shù)的信息、以及關(guān)于簇塊信息數(shù)目的信息。 為了將某個(gè)LBA的數(shù)據(jù)重寫(xiě)至不同位置,需要使原始簇塊中的LBA無(wú)效,從而需要從LBA追 蹤簇塊。因此,將簇塊信息的標(biāo)識(shí)符存儲(chǔ)在邏輯至物理解譯表40的邏輯塊的管理信息中。(快照和日志)通過(guò)每個(gè)管理表所管理的管理信息,可使主機(jī)中使用的LBA、SSD 100中使用的邏 輯NAND地址(邏輯塊地址+偏移)以及NAND存儲(chǔ)器10中使用的物理NAND地址(物理塊 地址+偏移)彼此關(guān)聯(lián),從而可執(zhí)行主機(jī)1與NAND存儲(chǔ)器10之間的數(shù)據(jù)交換。以上管理表中用于NAND存儲(chǔ)器管理的表(例如圖7中所示的磁軌表30、簇目錄表 31、簇表32、簇塊信息表33、和邏輯至物理解譯表40)存儲(chǔ)于非易失性NAND存儲(chǔ)器10的特 定區(qū)中。在啟動(dòng)時(shí),將存儲(chǔ)于NAND存儲(chǔ)器10中的每個(gè)管理表加載至易失性RAM 20的工作 區(qū)(其由數(shù)據(jù)管理單元120使用)上,從而更新每個(gè)管理表。加載至DRAM 20的每個(gè)管理 表稱為主表。即使當(dāng)電源關(guān)閉時(shí),需要將主表恢復(fù)至電源關(guān)閉之前的狀態(tài),從而需要將主表 存儲(chǔ)在非易失性NAND存儲(chǔ)器10的系統(tǒng)??煺罩甘綨AND存儲(chǔ)器10上的整個(gè)非易失性管理 表。直接將加載至NAND存儲(chǔ)器10上的主表存儲(chǔ)于NAND存儲(chǔ)器中的操作也表示為“提取快 照”。日志指示管理表的改變差異。如果針對(duì)主表的每個(gè)更新獲取快照,則處理速度變慢, 并且NAND存儲(chǔ)器10中的寫(xiě)入的次數(shù)增加,從而通常僅將作為改變差異的日志記錄在NAND 存儲(chǔ)器10中。在主表中反映日志并將其存儲(chǔ)在NAND存儲(chǔ)器10中的操作也稱為“提交”。圖8是示出在數(shù)據(jù)更新時(shí)的快照和日志的更新?tīng)顟B(tài)的視圖。當(dāng)數(shù)據(jù)管理單元120 更新數(shù)據(jù)時(shí),將對(duì)主表進(jìn)行的改變累積于DRAM 20上的日志(以下為“DRAM日志”)中。依 據(jù)管理表的類(lèi)型,直接更新主表,并將更新內(nèi)容累積于DRAM日志中,或在不直接改變主表 的情況下將更新內(nèi)容記錄于固定在DRAM日志上的改變區(qū)中。當(dāng)執(zhí)行數(shù)據(jù)讀出或數(shù)據(jù)寫(xiě)入 時(shí),除了主表外,還參考累積的DRAM日志。在數(shù)據(jù)更新變穩(wěn)定之后,提交日志。在提交處理中,必要時(shí)在主表中反映DRAM日 志的內(nèi)容,并且進(jìn)一步將其存儲(chǔ)于NAND存儲(chǔ)器10中以使其為非易失性。在例如處于正常 斷電序列中以及用于日志的存儲(chǔ)區(qū)變得不足時(shí)的情況下,將快照存儲(chǔ)于NAND存儲(chǔ)器10中。 在完成將日志或快照寫(xiě)入NAND存儲(chǔ)器10中時(shí),完成使管理表為非易失性的處理。例如,在 國(guó)際專(zhuān)利申請(qǐng)PCT/JP2009/052597中公開(kāi)了用于以此方式使管理信息為非易失性的技術(shù), 并且其全部?jī)?nèi)容合并在本申請(qǐng)中?!醋x取處理〉簡(jiǎn)要地解釋讀取處理。當(dāng)從ATA命令處理單元121輸入讀取命令和作為讀出地址 的LBA時(shí),數(shù)據(jù)管理單元120搜遍RC管理表23和WC磁軌表M以檢查與該LBA對(duì)應(yīng)的數(shù) 據(jù)是否存在于WC 21或RC 22中。在高速緩存命中的情況下,數(shù)據(jù)管理單元120讀出WC 21 或RC 22的對(duì)應(yīng)于該LBA的數(shù)據(jù),并且將該數(shù)據(jù)發(fā)送至ATA命令處理單元121。如果在RC 22或WC 21中不存在命中,則數(shù)據(jù)管理單元120搜索作為搜索目標(biāo)的 數(shù)據(jù)存儲(chǔ)于NAND存儲(chǔ)器10的哪個(gè)部分中。如果數(shù)據(jù)存儲(chǔ)于MS 11上,則數(shù)據(jù)管理單元120 追蹤LBA —磁軌表30 —邏輯至物理解譯表40,以獲得MS上的數(shù)據(jù)。另一方面,如果數(shù)據(jù)存儲(chǔ)于FS 12或IS 13上,則數(shù)據(jù)管理單元120追蹤LBA —磁軌表30 —簇目錄表31 —簇表 32—邏輯至物理解譯表40,以獲得FS 12或IS 13上的數(shù)據(jù)?!磳?xiě)入數(shù)據(jù)〉(WC21中的處理)接下來(lái),根據(jù)圖9中所示的流程圖簡(jiǎn)要地說(shuō)明寫(xiě)入處理。在寫(xiě)入處理中,當(dāng)從ATA 命令處理單元121輸入寫(xiě)入命令和作為寫(xiě)入地址的LBA時(shí)(步驟S100),數(shù)據(jù)管理單元120 將由該LBA指定的數(shù)據(jù)寫(xiě)入WC 21中。具體地,數(shù)據(jù)管理單元120判斷在WC 21中是否存 在對(duì)應(yīng)于寫(xiě)入請(qǐng)求的空閑區(qū)(步驟Sl 10),并且在WC 21中存在空閑區(qū)時(shí)將由該LBA指定的 數(shù)據(jù)寫(xiě)入WC中(步驟S150)。另一方面,當(dāng)WC 21不具有對(duì)應(yīng)于寫(xiě)入請(qǐng)求的空閑區(qū)時(shí),數(shù)據(jù)管理單元120通過(guò)參 考用于DRAM管理的各種管理表來(lái)清空來(lái)自WC 21的數(shù)據(jù),以將其寫(xiě)入NAND存儲(chǔ)器10中, 由此產(chǎn)生空閑區(qū)。具體地,數(shù)據(jù)管理單元120檢查磁軌中的有效簇的數(shù)目(步驟S120),確 定磁軌(其中磁軌中的有效簇的數(shù)目少于特定百分比)作為低密度磁軌,并且將其作為簇 大小的數(shù)據(jù)清空至作為清空目的地的FS 12(步驟S140)。當(dāng)清空目的地為FS12時(shí),以邏輯 頁(yè)為單位寫(xiě)入次貴重的數(shù)據(jù)簇。在步驟S120的判斷中,當(dāng)判斷磁軌中的有效簇的數(shù)目等于或大于特定百分比時(shí), 這個(gè)磁軌倍確定為高密度磁軌,并且作為磁軌大小的數(shù)據(jù)倍清空至作為清空目的地的MS 11(步驟S130)。當(dāng)清空目的地為MS 11時(shí),將磁軌大小的數(shù)據(jù)直接寫(xiě)入整個(gè)邏輯塊中。當(dāng) 存在多個(gè)作為寫(xiě)入目標(biāo)的邏輯塊時(shí),通過(guò)使用雙倍速模式或存儲(chǔ)體交錯(cuò)來(lái)改善傳送效率。這樣,在WC 21中產(chǎn)生空閑區(qū)之后,將由LBA指定的數(shù)據(jù)寫(xiě)入WC 21中(步驟 S150)。根據(jù)寫(xiě)入WC 21中的數(shù)據(jù)或清空至NAND存儲(chǔ)器10的數(shù)據(jù)來(lái)更新用于DRAM管理的 各種管理表。(從 WC 21 至 MS 11 的寫(xiě)入)接下來(lái),根據(jù)圖10和圖11說(shuō)明高密度磁軌的從WC 21至MS 11的寫(xiě)入處理。圖 10為示出其操作過(guò)程的流程圖,以及圖11為示出其操作概念的示意圖。以如下的過(guò)程來(lái)執(zhí)行對(duì)MS 11的寫(xiě)入。除了為清空目標(biāo)的高密度磁軌之外,數(shù)據(jù) 管理單元120可選擇可通過(guò)利用存儲(chǔ)體交錯(cuò)來(lái)對(duì)其并行執(zhí)行寫(xiě)入的多個(gè)高密度磁軌。1.數(shù)據(jù)管理單元120在DRAM 20上產(chǎn)生磁軌的數(shù)據(jù)影像(填補(bǔ)處理)(步驟 S200)。具體地,從NAND存儲(chǔ)器10讀出不存在于WC 21中的簇和不保持WC 21中的所有扇 區(qū)的簇,以將其與WC 21中的數(shù)據(jù)整合。2.數(shù)據(jù)管理單元120固定來(lái)自MS 11的CFB的邏輯塊(磁軌塊)(步驟S210)。磁 軌塊為邏輯塊中以磁軌為單位在其中存儲(chǔ)數(shù)據(jù)的塊。3.數(shù)據(jù)管理單元120將步驟S200中產(chǎn)生的磁軌的數(shù)據(jù)影像寫(xiě)入步驟S210中固定 的邏輯塊中(步驟S220)。4.數(shù)據(jù)管理單元120檢查來(lái)自該磁軌的LBA的磁軌信息,將該磁軌信息與對(duì)應(yīng)于 寫(xiě)入的邏輯塊的邏輯塊地址關(guān)聯(lián),以及將其登記于用于NAND存儲(chǔ)器管理的所需表中(步驟 S230)。5.數(shù)據(jù)管理單元120使WC 21和NAND存儲(chǔ)器10中的舊數(shù)據(jù)無(wú)效(步驟S240)。 具體地,數(shù)據(jù)管理單元120使WC 21中被清空至MS 11的高速緩存數(shù)據(jù)以及NAND存儲(chǔ)器10中用于步驟S200的填補(bǔ)處理中的數(shù)據(jù)在管理表上從有效狀態(tài)變?yōu)闊o(wú)效狀態(tài),從而使其無(wú) 效。(從 WC 21 至 FS 12 的寫(xiě)入)接下來(lái),根據(jù)圖12和圖13說(shuō)明低密度磁軌的從WC 21至MS 11的寫(xiě)入處理。圖 12為示出其操作過(guò)程的流程圖,以及圖13為示出其操作概念的示意圖。向FS 12的寫(xiě)入通過(guò)以下操作來(lái)執(zhí)行在DRAM 20上產(chǎn)生簇的數(shù)據(jù)影像(填補(bǔ)處 理)以及通過(guò)使用偽SLC模式在新固定的邏輯塊(簇塊)中以邏輯頁(yè)為單位執(zhí)行寫(xiě)入。作 為待固定的邏輯塊,將具有能夠進(jìn)行寫(xiě)入的等于或大于待寫(xiě)入的數(shù)據(jù)影像的邏輯頁(yè)的FFB 優(yōu)先化。如果FFB不存在,則使用CFB。以如下過(guò)程來(lái)執(zhí)行FS 12中的寫(xiě)入。用于將低密度磁軌的數(shù)據(jù)從WC 21寫(xiě)入至FS 12的邏輯塊(簇塊)稱為FS輸入 緩沖器(FSIB)。除了為清空目標(biāo)的低密度磁軌之外,數(shù)據(jù)管理單元120可涉及其他低密度 磁軌,使得待寫(xiě)入的簇?cái)?shù)據(jù)量與偽SLC模式的邏輯塊邊界一致。1.數(shù)據(jù)管理單元120判斷低密度磁軌中的從WC 21輸入的總數(shù)據(jù)量(步驟S300)。 當(dāng)所判斷的總數(shù)據(jù)量較小時(shí)(即,當(dāng)有效簇的數(shù)目小于特定閾值時(shí)),數(shù)據(jù)管理單元120將 其中可寫(xiě)入數(shù)據(jù)的FFB固定為FSIB(步驟S310)。2.當(dāng)數(shù)據(jù)管理單元120判斷低密度磁軌中的從WC 21輸入的總數(shù)據(jù)量較大時(shí) (即,當(dāng)有效簇的數(shù)目等于或大于特定閾值時(shí)),數(shù)據(jù)管理單元120將CFB固定為FSIB (步 驟S320)。此時(shí),將能夠并行寫(xiě)入數(shù)據(jù)的多個(gè)邏輯塊固定為FSIB。3.數(shù)據(jù)管理單元120產(chǎn)生待寫(xiě)入DRAM 20上的簇的數(shù)據(jù)影像(步驟S330)。具體 地,對(duì)于不保持WC 21中的所有扇區(qū)的簇,數(shù)據(jù)管理單元120從NAND存儲(chǔ)器10讀出不存在 于WC 21上的扇區(qū)的數(shù)據(jù),以將其與WC 21上的扇區(qū)的數(shù)據(jù)整合。4.數(shù)據(jù)管理單元120將WC 21上的簇以及工作區(qū)上所產(chǎn)生的簇影像寫(xiě)入FSIB中 (步驟 S340)。5.數(shù)據(jù)管理單元120將這個(gè)FSIB上的簇塊信息添加至針對(duì)FS的簇塊信息表 33b (步驟 S350)。6.數(shù)據(jù)管理單元120將低密度磁軌上的寫(xiě)入至FSIB中的簇目錄信息與對(duì)應(yīng)磁軌 地址重新插入至簇目錄LRU表31a的末端(步驟S360)。(從FS12至IS 13的重新定位)接下來(lái),根據(jù)圖14和圖15說(shuō)明從FS 12至IS 13的數(shù)據(jù)重新定位。圖14為示出 其操作過(guò)程的流程圖,以及圖15為示出其操作概念的示意圖。數(shù)據(jù)管理單元120判斷在FS 12的管理下邏輯塊的數(shù)目是否超過(guò)邏輯塊的特定最 大數(shù)目(步驟S400)。如圖15所示,當(dāng)在FS 12的管理下邏輯塊的數(shù)目超過(guò)邏輯塊的特定 最大數(shù)目時(shí),數(shù)據(jù)管理單元120將從FS 12溢出的邏輯塊直接重新定位至IS 13。在本實(shí)施 例中,F(xiàn)S 12是由偽SLC模式的多個(gè)邏輯塊組成,并且偽SLC模式的邏輯塊是從FS 12直接 重新定位至IS 13。根據(jù)溢出邏輯塊中有效簇的數(shù)目及其類(lèi)似物通過(guò)如下規(guī)則來(lái)確定一處 理單位中待重新定位的邏輯塊的數(shù)目(步驟S410)。從FS 12的最早邏輯塊添加經(jīng)重新定位的邏輯塊,從而溢出邏輯塊中的簇的總數(shù) 目變得接近于MLC模式的邏輯塊的邊界(即,接近于一個(gè)邏輯塊的簇的數(shù)目Ot)或其倍數(shù) (m Χ2、πι為自然數(shù)))。例如,當(dāng)溢出邏輯塊中的簇的數(shù)目為21與2"之間的值時(shí),作為重
18新定位目標(biāo)的邏輯塊的數(shù)目增加,從而簇的數(shù)目接近于2t+1 (包括2t+1)。使得簇的數(shù)目接近 于MLC模式的一個(gè)邏輯塊的邊界,以在緊縮之后在邏輯塊中容納盡可能多的有效簇。當(dāng)簇的數(shù)目超過(guò)可同時(shí)在IS 13中經(jīng)過(guò)緊縮的簇的數(shù)目ζ時(shí),設(shè)定邏輯塊的數(shù)目, 使得簇的數(shù)目等于或小于這個(gè)簇的數(shù)目ζ。將上限設(shè)置為在一個(gè)處理中待重新定位的邏輯塊的數(shù)目。設(shè)定這個(gè)極限,用于防 止在IS 13的管理下邏輯塊的數(shù)目的臨時(shí)增加。將由此確定為重新定位目標(biāo)的邏輯塊從FS 12重新定位至IS 13(步驟S420)。(IS 13中的緊縮和重組)接下來(lái),根據(jù)圖16中所示的流程圖說(shuō)明IS 13中的緊縮處理和重組處理。數(shù)據(jù)管理單元120判斷在IS 13的管理下邏輯塊的數(shù)目是否超過(guò)邏輯塊的特定最 大數(shù)目(步驟S500)。當(dāng)在IS 13的管理下邏輯塊的數(shù)目超過(guò)邏輯塊的特定最大數(shù)目時(shí), 數(shù)據(jù)管理單元120執(zhí)行對(duì)MS 11的數(shù)據(jù)重新定位(重組處理)以及緊縮處理,以抑制在IS 13的管理下邏輯塊的數(shù)目使其等于或小于邏輯塊的最大數(shù)目(步驟S510)。當(dāng)數(shù)據(jù)擦除單 位(邏輯塊)與數(shù)據(jù)管理單位(簇)不同時(shí),根據(jù)NAND存儲(chǔ)器10的重寫(xiě)的進(jìn)程,無(wú)效數(shù)據(jù) 使邏輯塊為多孔的(porous)。當(dāng)處于該多孔狀態(tài)的邏輯塊增加時(shí),實(shí)質(zhì)上可用的邏輯塊減 少,并且無(wú)法有效地使用NAND存儲(chǔ)器10的存儲(chǔ)區(qū)。因此,執(zhí)行用于收集有效簇并將其重寫(xiě) 在不同邏輯塊中的稱為緊縮的處理。重組處理是將FS 12和IS 13的簇的整合至磁軌中并 將其清空至MSll的處理。隨后,更詳細(xì)地說(shuō)明這個(gè)實(shí)施例的基本部分。如圖17所示,用于NAND存儲(chǔ)器管理 的表包括完整空閑塊管理表(CFB管理表)300、片段空閑塊管理表(FFB管理表)310、活動(dòng) 塊管理表(AB管理表)320、和壞塊管理表(BB管理表)330,其不同于圖7中所示的管理表。CFB管理表300用于管理CFB。CFB是FB,其在使用之前立即擦除邏輯塊,并且在 擦除狀態(tài)下被寫(xiě)入,并且可將數(shù)據(jù)從位于邏輯塊頂部的邏輯頁(yè)寫(xiě)入其中。在本實(shí)施例中,在 MS 11、FS 12和IS 13中使用CFB。CFB管理表300包括兩種結(jié)構(gòu),即,返回列表和獲取列 表。返回FIFO列表用于保持在特定時(shí)間段期間沒(méi)有使用的邏輯塊以及釋放邏輯塊,并且按 照擦除次數(shù)來(lái)排序。在接收到CFB的獲取請(qǐng)求后提供分配列表,并且按照擦除的次數(shù)來(lái)排 序(具有較少次數(shù)的邏輯塊位于列表的頂部)。根據(jù)擦除的次數(shù)將返回列表220a推出的塊 插入至分配列表的中間。當(dāng)請(qǐng)求CFB的分配時(shí),數(shù)據(jù)管理單元120從分配列表的頂部取出 CFB,并且分配該CFB。FFB管理表310用于管理FFB。該FFB是邏輯塊,其中盡管將無(wú)效數(shù)據(jù)一直寫(xiě)入至 邏輯頁(yè)的中間,但剩余邏輯頁(yè)處于擦除狀態(tài),并且可另外將數(shù)據(jù)寫(xiě)入至剩余邏輯頁(yè)。在FS 12和IS 13中使用FFB。在FFB管理表310中,作為針對(duì)每一數(shù)目個(gè)空閑邏輯頁(yè)的雙向列 表來(lái)管理用作FFB的邏輯塊地址。FFB管理表310管理用于辨別寫(xiě)入數(shù)據(jù)的邏輯頁(yè)(無(wú)效 頁(yè))和沒(méi)有寫(xiě)入數(shù)據(jù)的邏輯頁(yè)(未使用的頁(yè))的信息。AB管理表320是邏輯塊(活動(dòng)塊AB)的列表,其中將用途從FB分配至MS 11、FS 12和IS 13,并且各個(gè)項(xiàng)目保持邏輯塊地址。將最先登記的邏輯塊定位于頂部。例如,AB管 理表用于刷新處理。BB管理表330用于以構(gòu)成邏輯塊的個(gè)體物理塊為單位來(lái)管理壞塊BB。例如,在BB 管理表330中,將無(wú)法正常完成數(shù)據(jù)擦除的物理塊登記為壞塊BB。
圖18是本實(shí)施例中的基本部分的功能配置的框圖。NAND存儲(chǔ)器10在其中存儲(chǔ) 用戶數(shù)據(jù)(存儲(chǔ)單元)201,例如存儲(chǔ)用戶數(shù)據(jù)的MS IUFS 12和IS 13;除了圖7和圖17 中所示的管理表中用于DRAM管理的表之外,用于NAND存儲(chǔ)器管理的各種表(圖7中的磁 軌表30、簇目錄表31、簇表32、簇塊信息表33、邏輯值物理解譯表40、CFB管理表300、FFB 管理表310、AB管理表320、和BB管理表330) 202,其存儲(chǔ)于NAND存儲(chǔ)器10上的特定存儲(chǔ) 區(qū)中作為快照;以及NAND日志203,其包括差異日志(作為NAND管理表202的更新前后的 差異的信息)、活動(dòng)日志、和待用日志,如在NAND管理表202中所述NAND日志203存儲(chǔ)于 NAND存儲(chǔ)器10上的特定存儲(chǔ)區(qū)(非易失性日志區(qū))中。DRAM 20包括用作WC 21和RC 22的區(qū)域。此外,DRAM 20包括存儲(chǔ)主表204的區(qū) 域,主表204是在DRAM 20上加載的NAND管理表202。此外,DRAM 20包括存儲(chǔ)DRAM日志 205的區(qū)域,所述DRAM 205包括在更新主表204時(shí)更新前后的差異信息的差異日志,以及活 動(dòng)日志和待用日志。作為數(shù)據(jù)管理單元的控制器120包括讀取和寫(xiě)入控制單元210、日志控制單元 211、日志反映單元212、操作狀態(tài)管理單元213、和管理信息恢復(fù)單元214。本發(fā)明的每個(gè)實(shí) 施例中的每個(gè)功能框可通過(guò)硬件和軟件中的任一個(gè)或組合來(lái)實(shí)現(xiàn)。因此,以下大體上從每 個(gè)功能框的功能的觀點(diǎn)來(lái)解釋每個(gè)功能框,從而清楚看出每個(gè)功能框是硬件和軟件中的任 一個(gè)。所述功能是實(shí)現(xiàn)為硬件還是軟件依據(jù)特定實(shí)施例或施加于整個(gè)系統(tǒng)上的設(shè)計(jì)約束。 對(duì)于每個(gè)特定實(shí)施例,本領(lǐng)域普通技術(shù)人員可通過(guò)各種方法實(shí)現(xiàn)這些功能,并且確定這個(gè) 實(shí)現(xiàn)包括在本發(fā)明的范圍內(nèi)。讀取和寫(xiě)入控制單元210基于主表204和DRAM日志205控制讀出和寫(xiě)入。例如, 讀取和寫(xiě)入控制單元210根據(jù)從主機(jī)1經(jīng)由主機(jī)I/F 2輸入的命令和邏輯地址來(lái)執(zhí)行對(duì)于 DRAM 20 (WC 21)的數(shù)據(jù)寫(xiě)入和從DRAM 20 (RC 22)的數(shù)據(jù)讀出。此外,例如,讀取和寫(xiě)入控 制單元210基于邏輯至物理解譯表40及其類(lèi)似物執(zhí)行從DRAM 20 (WC 21)至NAND存儲(chǔ)器 10的數(shù)據(jù)寫(xiě)入以及從NAND存儲(chǔ)器10至DRAM 20 (RC 22)的數(shù)據(jù)讀出。例如,日志控制單元211執(zhí)行用于在系統(tǒng)啟動(dòng)時(shí)將作為主表204的存儲(chǔ)于NAND存儲(chǔ)器10中的各種NAND管理 表(快照)202傳送至DRAM 20的處理;用于累積和存儲(chǔ)差異日志的處理,所述差異日志是當(dāng)更新主表204的事件發(fā)生時(shí) (例如當(dāng)讀取和寫(xiě)入控制單元210執(zhí)行對(duì)于NAND存儲(chǔ)器10的數(shù)據(jù)寫(xiě)入時(shí))DRAM日志205 中的在主表204的更新前后的差異信息;以及用于在建立特定條件時(shí)(例如,當(dāng)正常斷電序列發(fā)生或DRAM 20上的日志存儲(chǔ)區(qū) (用于存儲(chǔ)DRAM日志205的區(qū)域)變得不足時(shí))將DRAM20上的主表存儲(chǔ)于NAND存儲(chǔ)器 10中作為快照的快照處理。當(dāng)建立特定條件時(shí)(例如,當(dāng)DRAM 20中的日志的量(DRAM日志205的量)達(dá)到某 一量或達(dá)到在經(jīng)更新的管理表(主表204)之間實(shí)現(xiàn)匹配的點(diǎn)時(shí)),日志反映單元212另外 將DRAM日志205存儲(chǔ)于包括NAND存儲(chǔ)器10中的邏輯塊的NAND日志(非易失性日志)203 中,并且執(zhí)行用于在主表204中反映DRAM日志205的提交處理。當(dāng)執(zhí)行快照處理或提交處 理時(shí),使已累積于DRAM 20上的DRAM日志205無(wú)效。用于存儲(chǔ)該日志的邏輯塊可以是偽 SLC模式下的邏輯塊,以實(shí)現(xiàn)高速度。
操作狀態(tài)管理單元213執(zhí)行用于檢測(cè)不正確斷電的日志記錄處理,其中在系統(tǒng)啟 動(dòng)之后在日志反映單元212將第一差異日志記錄于NAND日志203之前將指示系統(tǒng)正在運(yùn) 行的活動(dòng)日志記錄于NAND日志203中,并且當(dāng)執(zhí)行正常系統(tǒng)暫停時(shí),指示系統(tǒng)暫停的待用 日志在差異日志或活動(dòng)日志之后記錄于NAND日志203中。管理信息恢復(fù)單元214執(zhí)行用于在系統(tǒng)啟動(dòng)時(shí)基于活動(dòng)日志和待用日志的經(jīng)記錄狀態(tài)來(lái)檢測(cè)NAND日志203 中的活動(dòng)日志、差異日志和待用日志中的至少一個(gè),并且判斷上次執(zhí)行了正常系統(tǒng)暫停還 是執(zhí)行了不正確斷電序列的處理;以及用于在判斷執(zhí)行了不正確斷電序列時(shí)改變管理表從而釋放所有FFB并且在隨后 將經(jīng)釋放的所有FFB用作CFB的處理。圖19是示出存儲(chǔ)活動(dòng)日志、待用日志和差異日志的過(guò)程的流程圖。操作狀態(tài)管理 單元213管理作為系統(tǒng)的SSD 100是處于SSD正在運(yùn)行的活動(dòng)狀態(tài)還是SSD暫停的待用狀 態(tài)以作為電力模式信息。假設(shè)在電力開(kāi)啟(將電力供應(yīng)至電源電路5,產(chǎn)生內(nèi)部電源和通電重設(shè)信號(hào),并且 初始化驅(qū)動(dòng)控制電路4,從而系統(tǒng)啟動(dòng))之后,操作狀態(tài)管理單元213立即將SSD 100的操 作狀態(tài)識(shí)別為待用狀態(tài)(SllOO)。在電力開(kāi)啟(待用狀態(tài))之后,在接收到具有數(shù)據(jù)管理單元120從主機(jī)1訪問(wèn)NAND 存儲(chǔ)器10的可能性的命令后(例如,在初始化完成時(shí),在請(qǐng)求激活時(shí),以及在請(qǐng)求數(shù)據(jù)訪問(wèn) 時(shí)),操作狀態(tài)管理單元213將活動(dòng)日志存儲(chǔ)于NAND日志203中,并且隨后,將SSD 100的 操作狀態(tài)轉(zhuǎn)變?yōu)榛顒?dòng)狀態(tài)(步驟S1101)。當(dāng)一時(shí)間發(fā)生使得需要更新主表204時(shí)(例如,當(dāng)執(zhí)行對(duì)于NAND存儲(chǔ)器10的數(shù) 據(jù)寫(xiě)入時(shí)),日志控制單元211將差異日志(其為主表204的更新前后的差異信息)累積于 DRAM日志205中(步驟SllO2)。當(dāng)建立特定條件時(shí),日志反映單元212另外將DRAM日志205(差異日志)存儲(chǔ)于 包括NAND存儲(chǔ)器10的邏輯塊的NAND日志203中,并且執(zhí)行用于在主表204中反映DRAM 日志205的提交處理(步驟Sl 103)。在來(lái)自主機(jī)1的暫停請(qǐng)求(待用請(qǐng)求)時(shí),操作狀態(tài)管理單元213執(zhí)行用于將WC 21上的數(shù)據(jù)寫(xiě)入NAND存儲(chǔ)器10中以使數(shù)據(jù)非易失性的清空處理。與清空處理一起,日志 控制單元211將差異日志(其為主表204的更新前后的差異信息)累積于DRAM日志205 中(步驟Sl 104)。日志反映單元212另外將DRAM日志205(差異日志)存儲(chǔ)于包括NAND存儲(chǔ)器10 的邏輯塊的NAND日志203中,并且執(zhí)行用于在主表204中反映DRAM日志205的提交處理。 此外,當(dāng)建立特定條件時(shí),日志控制單元211執(zhí)行快照處理(步驟S1105)。操作狀態(tài)管理單元213將SSD 100的操作狀態(tài)轉(zhuǎn)變?yōu)榇脿顟B(tài),并且在差異日志 之后將待用日志存儲(chǔ)于NAND日志203中。在正常地寫(xiě)入待用日志之后,SSD 100可執(zhí)行正 常斷電序列(步驟Sl 106)。圖20A示出當(dāng)執(zhí)行正常斷電序列時(shí)在下一次系統(tǒng)啟動(dòng)時(shí)的NAND日志203的狀態(tài), 以及圖20B示出當(dāng)發(fā)生不正確斷電時(shí)在下一次系統(tǒng)啟動(dòng)時(shí)的NAND日志203的狀態(tài)。如圖20A所示,在正常斷電的情況下,首先記錄活動(dòng)日志,接下來(lái)記錄差異日志(差異日志可能不存在),并且最后記錄待用日志。由此,在正常序列的情況下,在待用狀態(tài) 下不更新數(shù)據(jù)。因?yàn)樵诮邮盏絹?lái)自主機(jī)1的暫停請(qǐng)求之后執(zhí)行該正常斷電序列,所以不執(zhí) 行活動(dòng)狀態(tài)下的斷電。在電力開(kāi)啟之后,管理信息恢復(fù)單元214在初始化處理中從NAND存儲(chǔ)器10讀取 NAND日志203,并且從前部開(kāi)始掃描其內(nèi)容。通常,內(nèi)容從活動(dòng)日志開(kāi)始,接著差異日志,接 著為待用日志,并且隨后重復(fù)這個(gè)序列,并且最終該內(nèi)容以待用日志結(jié)束。當(dāng)首先記錄活動(dòng) 日志并且最后記錄待用日志時(shí),管理信息恢復(fù)單元214判斷執(zhí)行了正常斷電序列。另一方面,如圖20B所示,在不正確斷電的情況下,僅存在活動(dòng)日志,并且不在最 后記錄待用日志。即,通過(guò)存儲(chǔ)活動(dòng)日志可檢測(cè)不正確斷電,其中“執(zhí)行向NAND存儲(chǔ)器10 中的寫(xiě)入,然而,日志的提交還未完成”。當(dāng)識(shí)別到最后日志并非待用日志(為活動(dòng)日志或 差異日志)時(shí),管理信息恢復(fù)單元214判斷存在不正確的斷電。在不存在活動(dòng)日志并且僅存在待用日志的情況下,在電力開(kāi)啟之后,當(dāng)在將第一 差異日志記錄于NAND日志203之前發(fā)生不正確的斷電時(shí),由于先前的正常斷電而最后記錄 待用日志,因此不能將不正確斷電與正常斷電辨別開(kāi)。因此,如在本實(shí)施例中,有可能通過(guò) 使用活動(dòng)日志和待用日志以簡(jiǎn)單配置來(lái)檢測(cè)不正確斷電。接下來(lái)說(shuō)明在管理信息恢復(fù)單元214判斷不正確的斷電已發(fā)生時(shí)所執(zhí)行的處理。 在MLC NAND存儲(chǔ)器中,當(dāng)將上部頁(yè)添加至已記錄數(shù)據(jù)的物理塊時(shí),過(guò)去記錄的下部頁(yè)的內(nèi) 容可能丟失,并且在不限于SLC/MLCNAND存儲(chǔ)器的NAND存儲(chǔ)器中,在相對(duì)于一個(gè)物理頁(yè)執(zhí) 行寫(xiě)入之后,可能無(wú)法讀取該物理塊中的數(shù)據(jù)。為了解決這些可能性,在本實(shí)施例中,采用 FFB,其為邏輯塊,其中盡管將無(wú)效數(shù)據(jù)一直寫(xiě)入至邏輯頁(yè)的中間,但剩余邏輯頁(yè)處于擦除 狀態(tài)(如圖21所示)。在該FFB中,相對(duì)于剩余邏輯頁(yè)執(zhí)行額外寫(xiě)入。在本實(shí)施例中,在 FS 12和IS 13中采用FFB。當(dāng)作FS 12和IS 13來(lái)管理的FFB中的無(wú)效數(shù)據(jù)是FS 12和 IS 13中的最初有效的數(shù)據(jù),然而,其從WC 21重寫(xiě)至例如MS 11的另一處,并且在該邏輯塊 中變得無(wú)效。為了實(shí)現(xiàn)對(duì)FFB的額外寫(xiě)入,在圖7所示的針對(duì)各個(gè)邏輯塊的簇塊信息表33中管 理用于辨別在擦除后已寫(xiě)入數(shù)據(jù)的邏輯頁(yè)(有效頁(yè))與沒(méi)有寫(xiě)入數(shù)據(jù)的未使用頁(yè)的信息 (FFB管理表310中管理的FFB管理信息)。需要將FFB管理信息寫(xiě)入至NAND存儲(chǔ)器10中 以使FFB管理信息為非易失性,從而可在SSD 100的斷電期間使用信息。然而,當(dāng)不正確的斷電發(fā)生同時(shí)將數(shù)據(jù)寫(xiě)入至FFB中并且將FFB管理信息寫(xiě)入至 NAND存儲(chǔ)器10中以使信息為非易失性(提交)時(shí),出現(xiàn)問(wèn)題。具體地,在下次啟動(dòng)SSD時(shí), 在將數(shù)據(jù)寫(xiě)入至具有未使用頁(yè)的FFB中的某一邏輯頁(yè)中之后,當(dāng)在將數(shù)據(jù)提交至NAND存儲(chǔ) 器10之前發(fā)生不正確斷電時(shí)(已將數(shù)據(jù)寫(xiě)入至FFB管理信息的邏輯頁(yè)中),F(xiàn)FB管理信息 處于未寫(xiě)入狀態(tài),盡管數(shù)據(jù)實(shí)際上已寫(xiě)入至FFB中。在這個(gè)狀態(tài)下,為了管理的目的,將邏 輯頁(yè)看作未寫(xiě)入(未使用)的,因此,嘗試重新將數(shù)據(jù)寫(xiě)入至邏輯頁(yè)中,并且可能發(fā)生寫(xiě)入 錯(cuò)誤(數(shù)據(jù)錯(cuò)亂)。因此,在日志或快照已寫(xiě)入至NAND存儲(chǔ)器10中的時(shí)間點(diǎn),管理表變?yōu)榉且资浴?當(dāng)在將日志或快照寫(xiě)入至NAND存儲(chǔ)器10中之前執(zhí)行不正確斷電序列時(shí),在下一次啟動(dòng)時(shí), 管理表的狀態(tài)返回至上次提交的時(shí)間點(diǎn)。應(yīng)注意,雖然管理表的狀態(tài)返回,但NAND存儲(chǔ)器 10中的FFB的額外記錄狀態(tài)不返回。
圖22是示出在系統(tǒng)啟動(dòng)時(shí)由數(shù)據(jù)管理單元120執(zhí)行的處理的流程圖。管理信息恢復(fù)單元214在系統(tǒng)啟動(dòng)時(shí)檢測(cè)NAND日志203中的活動(dòng)日志、差異日志 和待用日志中的至少一個(gè),并且基于活動(dòng)日志和待用日志的經(jīng)記錄狀態(tài)來(lái)判斷上次執(zhí)行正 常系統(tǒng)暫停還是執(zhí)行不正確的斷電(步驟S1200)。當(dāng)判斷執(zhí)行了正常系統(tǒng)暫停(步驟S1200為“是”)時(shí),管理信息恢復(fù)單元214基 于最新快照和差異日志來(lái)恢復(fù)管理表(主表204和DRAM日志205)(步驟S1201)。當(dāng)判斷執(zhí)行了不正確斷電(步驟S1200為“否”)時(shí),管理信息恢復(fù)單元214編輯 和改變這些條FFB管理信息,從而在下次寫(xiě)入數(shù)據(jù)時(shí),在擦除邏輯塊之后執(zhí)行寫(xiě)入。具體 地,在不正確斷電之后,管理信息恢復(fù)單元214啟動(dòng)時(shí)執(zhí)行用于將所有FFB重新定位至CFB 的處理,即,用于重新定位FFB管理表310中管理的所有邏輯塊(邏輯塊地址)使其在CFB 管理表300的控制下的處理。因此,解決了 FFB中的寫(xiě)入狀態(tài)與FFB管理信息之間的不一 致性(步驟S1202)。在執(zhí)行用于將所有FFB重新定位至CFB的處理之后,管理信息恢復(fù)單元214基于 最新的快照和差異日志來(lái)恢復(fù)管理表(主表204和DRAM日志205)(步驟S1203)。日志反映單元212基于恢復(fù)的主表204和DRAM日志205再次獲取快照(步驟 S1204)。因?yàn)樵陬~外記錄之前僅將無(wú)效數(shù)據(jù)存儲(chǔ)于FFB中,所以即使在將邏輯塊重新定位 至CFB并且隨后將其擦除時(shí),也不存在問(wèn)題。此外,在CFB的情況下,當(dāng)不正確斷電發(fā)生時(shí), NAND存儲(chǔ)器10中的CFB的管理表與狀態(tài)之間發(fā)生不一致,并且盡管數(shù)據(jù)已寫(xiě)入至CFB中, 但CFB管理信息仍處于未寫(xiě)入狀態(tài)的情形發(fā)生。然而,因?yàn)榫o接在寫(xiě)入之前在CFB中執(zhí)行 擦除,所以上述寫(xiě)入錯(cuò)誤不發(fā)生。此外,當(dāng)檢測(cè)到不正確的斷電時(shí),再次獲取快照,以使非易 失性信息返回至穩(wěn)定狀態(tài)。在本實(shí)施例中,通過(guò)添加操作狀態(tài)管理單元213和管理信息恢復(fù)單元214來(lái)實(shí)現(xiàn) 對(duì)不正確斷電的檢測(cè)以及FFB中的寫(xiě)入狀態(tài)與FFB管理信息之間的不一致的解決方法。在根據(jù)本實(shí)施例的SSD 100中,在系統(tǒng)啟動(dòng)之后,在將第一差異日志記錄于NAND 日志203中之前,將指示系統(tǒng)正在運(yùn)行的活動(dòng)日志記錄于NAND日志203中,并且在正常系 統(tǒng)暫停時(shí),在差異日志之后將指示系統(tǒng)暫停的待用日志另外記錄于NAND日志203中。在系 統(tǒng)啟動(dòng)時(shí),基于NAND日志203中的活動(dòng)日志和待用日志的經(jīng)記錄狀態(tài)來(lái)判斷上次已執(zhí)行正 常系統(tǒng)暫停還是已發(fā)生不正確斷電,由此能夠容易和可靠的檢測(cè)不正確的斷電。此外,在根據(jù)本實(shí)施例的SSD 100中,當(dāng)檢測(cè)到不正確的斷電時(shí),因?yàn)镕FB經(jīng)重新 定位而處于CFB的控制下,所以FFB中的寫(xiě)入狀態(tài)與FFB管理信息之間的不一致得以解決, 并且可預(yù)先防止寫(xiě)入錯(cuò)誤的發(fā)生。因此,有可能使用NAND型閃存來(lái)構(gòu)建具有高可靠性的存 儲(chǔ)器系統(tǒng)。(第二實(shí)施例)圖23是安裝有SSD 100的PC 1200的實(shí)例的透視圖。PC 1200包括主體1201和 顯示單元1202。顯示單元1202包括顯示外殼1203和容納于顯示外殼1203中的顯示設(shè)備 1204。主體1201包括底盤(pán)1205、鍵盤(pán)1206、和作為定點(diǎn)設(shè)備的觸控板1207。底盤(pán)1205 在其中包括主電路板、光盤(pán)設(shè)備(ODD)單元、卡槽和SSD 100。
卡槽經(jīng)提供而鄰近于底盤(pán)1205的外圍壁。外圍壁具有面向卡槽的開(kāi)口 1208。用 戶可經(jīng)由開(kāi)口 1208將額外設(shè)備從底盤(pán)1205外部插入至卡槽中或從卡槽移除額外設(shè)備。SSD 100在安裝于PC 1200上的狀態(tài)下可用來(lái)替代傳統(tǒng)硬盤(pán)驅(qū)動(dòng)器(HDD)或在插 入至PC 1200中包括的卡槽中的狀態(tài)下可用作額外設(shè)備。圖M是安裝有SSD 100的PC 1200的系統(tǒng)配置實(shí)例的視圖。PC 1200包括CPU 1301、北橋1302、主存儲(chǔ)區(qū)1303、視頻控制器1304、音頻控制器1305、南橋1309、基礎(chǔ)輸入/ 輸出系統(tǒng)只讀存儲(chǔ)區(qū)(BIOS-ROM) 1310、SSD 100、ODD單元1311、嵌入式控制器/鍵盤(pán)控制 器IC(EC/KBC) 1312、和網(wǎng)絡(luò)控制器1313。CPU 1301是用于控制PC 1200的操作的處理器,并且執(zhí)行從SSD 100載入至1303 上的操作系統(tǒng)。另外,當(dāng)ODD單元1311能夠?qū)?jīng)安裝的光盤(pán)執(zhí)行讀取處理和寫(xiě)入處理中的 至少一個(gè)時(shí),CPU 1301執(zhí)行該處理。此外,CPU 1301執(zhí)行在BIOS-ROM 1310中存儲(chǔ)的系統(tǒng)BIOS。該系統(tǒng)BIOS是用于 控制PC 1200的硬件的計(jì)算機(jī)程序。北橋1302是將CPU 1301的本地總線連接至南橋1309的橋接設(shè)備。北橋1302具 有用于控制對(duì)主存儲(chǔ)器1303的訪問(wèn)的存儲(chǔ)區(qū)控制器。此外,北橋1302具有執(zhí)行經(jīng)由加速通信端口(AGP)總線及其類(lèi)似者與視頻控制器 1304通信和音頻控制器1305通信的功能。主存儲(chǔ)器1303在其中臨時(shí)存儲(chǔ)計(jì)算機(jī)程序和數(shù)據(jù),并且用作CPU1301的工作區(qū)。 例如,主存儲(chǔ)器1303例如由DRAM組成。視頻控制器1304是用于控制用作PC 1200的顯示監(jiān)視器的顯示單元1202的視頻 在線控制器。音頻控制器1305是用于控制PC 1200的揚(yáng)聲器1306的音頻重現(xiàn)控制器。南橋1309控制低管腳數(shù)(LPC)總線1314上的每個(gè)設(shè)備以及外圍組件互連(PCI) 總線1315上的每個(gè)設(shè)備。此外,南橋1309經(jīng)由ATA接口控制SSD 100,所述SSD 100為存 儲(chǔ)各種類(lèi)型的軟件和數(shù)據(jù)PC 1200以扇區(qū)為單位對(duì)SSD 100進(jìn)行訪問(wèn)。經(jīng)由ATA接口將寫(xiě)入命令、讀取名、 清空命令及其類(lèi)似者輸入至SSD 100。南橋1309具有控制對(duì)BI0S-R0M 1310和ODD單元1311的訪問(wèn)的功能。EC/KBC 1312是單芯片微計(jì)算機(jī),用于電力管理的嵌入式控制器和用于控制鍵盤(pán) (KB) 1206和觸控板1207的鍵盤(pán)控制器集成在所述單芯片微計(jì)算機(jī)中。EC/KBC 1312具有基于用戶對(duì)電力按鈕的操作來(lái)開(kāi)啟/關(guān)閉PC 1200的功能。例 如,網(wǎng)絡(luò)控制器1313是通信設(shè)備,其執(zhí)行與例如因特網(wǎng)的外部網(wǎng)絡(luò)的通信。根據(jù)第二實(shí)施例的PC 1200將電力供應(yīng)至SSD 100,并且還發(fā)出暫停請(qǐng)求(待用請(qǐng) 求)至SSD 100。即使當(dāng)不正確地阻礙從PC 1200至SSD 100的電力供應(yīng)時(shí),也可預(yù)先防止 寫(xiě)入錯(cuò)誤的發(fā)生。對(duì)于本領(lǐng)域普通技術(shù)人員,將容易出現(xiàn)額外優(yōu)點(diǎn)和修改。因此,本發(fā)明在其較寬方 面中不限于這里所示和所述的特定細(xì)節(jié)和代表性實(shí)施例。因此,在不脫離如所附權(quán)利要求 及其等同物限定的一般性發(fā)明概念的精神或范圍的情況下可進(jìn)行各種修改。
權(quán)利要求
1.一種存儲(chǔ)器系統(tǒng),包括第一存儲(chǔ)單元,其為易失性的;第二存儲(chǔ)單元,其為非易失性的,并且連接至所述第一存儲(chǔ)單元;讀取/寫(xiě)入控制單元,其基于管理表執(zhí)行從所述第二存儲(chǔ)單元的數(shù)據(jù)讀取以及向所述 第二存儲(chǔ)單元的數(shù)據(jù)寫(xiě)入,在所述管理表中,邏輯地址與所述第二存儲(chǔ)單元中的數(shù)據(jù)存儲(chǔ) 位置關(guān)聯(lián);日志控制單元,其將所述管理表傳送至所述第一存儲(chǔ)單元,并且在更新所述第一存儲(chǔ) 單元上的所述管理表的事件發(fā)生時(shí),將所述管理表的更新前后的差異信息作為差異日志存 儲(chǔ)至所述第一存儲(chǔ)單元中;日志反映單元,其執(zhí)行提交處理,所述提交處理用于將所述差異日志存儲(chǔ)于所述第二 存儲(chǔ)單元中,并且在建立第一條件時(shí),在存儲(chǔ)于所述第一存儲(chǔ)單元中的所述管理表中反映 所述差異日志;操作狀態(tài)管理單元,其在系統(tǒng)啟動(dòng)之后在所述日志反映單元將所述差異日志存儲(chǔ)至所 述第二存儲(chǔ)單元之前,將第一日志存儲(chǔ)至所述第二存儲(chǔ)單元中;并且在執(zhí)行正常系統(tǒng)暫停 時(shí),將第二日志存儲(chǔ)至所述第二存儲(chǔ)單元中;以及管理信息恢復(fù)單元,其檢測(cè)存儲(chǔ)于所述第二存儲(chǔ)單元中的所述第一日志、所述差異日 志、和所述第二日志中的至少一個(gè);并且判斷是否執(zhí)行正常系統(tǒng)暫停。
2.如權(quán)利要求1所述的存儲(chǔ)器系統(tǒng),其中所述日志反映單元和所述操作狀態(tài)管理單元 另外將所述第一日志、所述差異日志和所述第二日志存儲(chǔ)至所述第二存儲(chǔ)單元中的非易失 性日志區(qū)域中,所述非易失性日志區(qū)域包括作為數(shù)據(jù)擦除單位的塊。
3.如權(quán)利要求2所述的存儲(chǔ)器系統(tǒng),其中所述操作狀態(tài)管理單元在所述系統(tǒng)啟動(dòng)之后 在初始化已完成、請(qǐng)求激活或請(qǐng)求數(shù)據(jù)訪問(wèn)的任一時(shí)間點(diǎn)將所述第一日志存儲(chǔ)至所述非易 失性日志區(qū)域中。
4.如權(quán)利要求2所述的存儲(chǔ)器系統(tǒng),其中所述操作狀態(tài)管理單元在從主機(jī)裝置接收到 系統(tǒng)暫停請(qǐng)求時(shí)將所述第二日志存儲(chǔ)至所述非易失性日志區(qū)域中。
5.如權(quán)利要求4所述的存儲(chǔ)器系統(tǒng),其中所述操作狀態(tài)管理單元在從主機(jī)裝置接收到 所述系統(tǒng)暫停請(qǐng)求時(shí)將所述第一存儲(chǔ)單元中的數(shù)據(jù)清空至所述第二存儲(chǔ)單元中。
6.如權(quán)利要求1所述的存儲(chǔ)器系統(tǒng),其中所述管理信息恢復(fù)單元在所述第二日志未存 儲(chǔ)于所述第二存儲(chǔ)單元中時(shí)判斷未執(zhí)行所述正常系統(tǒng)暫停。
7.如權(quán)利要求2所述的存儲(chǔ)器系統(tǒng),其中所述管理信息恢復(fù)單元在所述第二日志未存 儲(chǔ)于所述非易失性日志區(qū)域的末端時(shí)判斷未執(zhí)行所述正常系統(tǒng)暫停。
8.如權(quán)利要求1所述的存儲(chǔ)器系統(tǒng),其中所述第一條件包括以下條件中的至少一個(gè) 存儲(chǔ)于所述第一存儲(chǔ)單元的所述差異日志的量達(dá)到特定值的情況;以及所述管理表的更新 達(dá)到一點(diǎn),在該點(diǎn)處實(shí)現(xiàn)一致的情況。
9.如權(quán)利要求1所述的存儲(chǔ)器系統(tǒng),其中所述日志控制單元執(zhí)行快照處理,所述快照 處理用于在建立第二條件時(shí)將存儲(chǔ)于所述第一存儲(chǔ)單元中的所述管理表存儲(chǔ)至所述第二 存儲(chǔ)單元中。
10.如權(quán)利要求9所述的存儲(chǔ)器系統(tǒng),其中所述第二條件包括以下情況中的至少一個(gè) 執(zhí)行所述正常系統(tǒng)暫停的情況;以及所述第一存儲(chǔ)單元中所述差異日志的存儲(chǔ)區(qū)域變得不足的情況。
11.如權(quán)利要求1所述的存儲(chǔ)器系統(tǒng),其中所述日志反映單元在執(zhí)行所述提交處理之 后使存儲(chǔ)于所述第一存儲(chǔ)單元中的所述差異日志無(wú)效。
12.如權(quán)利要求9所述的存儲(chǔ)器系統(tǒng),其中所述日志控制單元在執(zhí)行所述快照處理之 后使存儲(chǔ)于所述第一存儲(chǔ)單元中的所述差異日志無(wú)效。
13.如權(quán)利要求1所述的存儲(chǔ)器系統(tǒng),其中所述第二存儲(chǔ)單元包括第一塊,在執(zhí)行擦除操作之后從頂部頁(yè)在所述第一塊中執(zhí)行 寫(xiě)入;以及第二塊,在所述第二塊中寫(xiě)入無(wú)效數(shù)據(jù)直到頁(yè)的中間,并且在不執(zhí)行所述擦除操 作的情況下另外對(duì)于沒(méi)有數(shù)據(jù)寫(xiě)入于其中的頁(yè)執(zhí)行寫(xiě)入;以及所述管理信息恢復(fù)單元在判斷未執(zhí)行所述正常系統(tǒng)暫停時(shí)改變所述管理表,以釋放所 述第二塊并將其用作所述第一塊。
14.如權(quán)利要求2所述的存儲(chǔ)器系統(tǒng),其中所述第二存儲(chǔ)單元包括第一塊,在執(zhí)行擦除操作之后從頂部頁(yè)在所述第一塊中執(zhí)行 寫(xiě)入;以及第二塊,在所述第二塊中寫(xiě)入無(wú)效數(shù)據(jù)直到頁(yè)的中間,并且在不執(zhí)行所述擦除操 作的情況下另外對(duì)于沒(méi)有數(shù)據(jù)寫(xiě)入于其中的頁(yè)執(zhí)行寫(xiě)入;以及所述管理信息恢復(fù)單元在判斷未執(zhí)行所述正常系統(tǒng)暫停時(shí)改變所述管理表,以釋放所 述第二塊并將其用作所述第一塊。
15.如權(quán)利要求6所述的存儲(chǔ)器系統(tǒng),其中所述第二存儲(chǔ)單元包括第一塊,在執(zhí)行擦除操作之后從頂部頁(yè)在所述第一塊中執(zhí)行 寫(xiě)入;以及第二塊,在所述第二塊中寫(xiě)入無(wú)效數(shù)據(jù)直到頁(yè)的中間,并且在不執(zhí)行所述擦除操 作的情況下另外對(duì)于沒(méi)有數(shù)據(jù)寫(xiě)入于其中的頁(yè)執(zhí)行寫(xiě)入;以及所述管理信息恢復(fù)單元在判斷未執(zhí)行所述正常系統(tǒng)暫停時(shí)改變所述管理表,以釋放所 述第二塊并將其用作所述第一塊。
16.一種控制存儲(chǔ)器系統(tǒng)的方法,所述存儲(chǔ)器系統(tǒng)包括第一存儲(chǔ)單元,其為易失性 的;以及第二存儲(chǔ)單元,其為非易失性的,并且連接至所述第一存儲(chǔ)單元,所述方法包括讀取/寫(xiě)入控制處理,用于基于管理表執(zhí)行從所述第二存儲(chǔ)單元的數(shù)據(jù)讀取以及向所 述第二存儲(chǔ)單元的數(shù)據(jù)寫(xiě)入,在所述管理表中,邏輯地址與所述第二存儲(chǔ)單元中的數(shù)據(jù)存 儲(chǔ)位置關(guān)聯(lián);日志控制處理,用于將所述管理表傳送至所述第一存儲(chǔ)單元,并且在更新所述第一存 儲(chǔ)單元上的所述管理表的事件發(fā)生時(shí),將所述管理表的更新前后的差異信息作為差異日志 存儲(chǔ)至所述第一存儲(chǔ)單元中;日志反映處理,用于執(zhí)行提交處理,所述提交處理用于將所述差異日志存儲(chǔ)于所述第 二存儲(chǔ)單元中,并且在建立第一條件時(shí),在存儲(chǔ)于所述第一存儲(chǔ)單元中的所述管理表中反 映所述差異日志;操作狀態(tài)管理處理,用于在系統(tǒng)啟動(dòng)之后在將所述差異日志存儲(chǔ)至所述第二存儲(chǔ)單元 之前,將第一日志存儲(chǔ)至所述第二存儲(chǔ)單元中;并且在執(zhí)行正常系統(tǒng)暫停時(shí),將第二日志存 儲(chǔ)至所述第二存儲(chǔ)單元中;以及管理信息恢復(fù)處理,用于檢測(cè)存儲(chǔ)于所述第二存儲(chǔ)單元中的所述第一日志、所述差異 日志、和所述第二日志中的至少一個(gè);并且判斷是否執(zhí)行正常系統(tǒng)暫停。
17.如權(quán)利要求16所述的方法,其中所述日志反映處理和所述操作狀態(tài)管理處理包 括另外將所述第一日志、所述差異日志和所述第二日志存儲(chǔ)至所述第二存儲(chǔ)單元中的非 易失性日志區(qū)域中,所述非易失性日志區(qū)域包括作為數(shù)據(jù)擦除單位的塊。
18.如權(quán)利要求17所述的方法,其中所述操作狀態(tài)管理處理包括在所述系統(tǒng)啟動(dòng)之 后在初始化已完成、請(qǐng)求激活或請(qǐng)求數(shù)據(jù)訪問(wèn)的任一時(shí)間點(diǎn)將所述第一日志存儲(chǔ)至所述非 易失性日志區(qū)域中。
19.如權(quán)利要求17所述的方法,其中所述操作狀態(tài)管理處理包括在從主機(jī)裝置接收 到系統(tǒng)暫停請(qǐng)求時(shí)將所述第二日志存儲(chǔ)至所述非易失性日志區(qū)域中。
20.如權(quán)利要求19所述的方法,其中所述操作狀態(tài)管理處理包括在從主機(jī)裝置接收 到所述系統(tǒng)暫停請(qǐng)求時(shí)將所述第一存儲(chǔ)單元中的數(shù)據(jù)清空至所述第二存儲(chǔ)單元中。
21.如權(quán)利要求16所述的方法,其中所述管理信息恢復(fù)處理包括在所述第二日志未 存儲(chǔ)于所述第二存儲(chǔ)單元中時(shí)判斷未執(zhí)行所述正常系統(tǒng)暫停。
22.如權(quán)利要求17所述的方法,其中所述管理信息恢復(fù)處理包括在所述第二日志未 存儲(chǔ)于所述非易失性日志區(qū)域的末端時(shí)判斷未執(zhí)行所述正常系統(tǒng)暫停。
23.如權(quán)利要求16所述的方法,其中所述第一條件包括以下條件中的至少一個(gè)存儲(chǔ) 于所述第一存儲(chǔ)單元的所述差異日志的量達(dá)到特定值的情況;以及所述管理表的更新達(dá)到 一點(diǎn),在該點(diǎn)處實(shí)現(xiàn)一致的情況。
24.如權(quán)利要求16所述的方法,其中所述日志控制處理包括執(zhí)行快照處理,所述快照 處理用于在建立第二條件時(shí)將存儲(chǔ)于所述第一存儲(chǔ)單元中的所述管理表存儲(chǔ)至所述第二 存儲(chǔ)單元中。
25.如權(quán)利要求M所述的方法,其中所述第二條件包括以下情況中的至少一個(gè)執(zhí)行 所述正常系統(tǒng)暫停的情況;以及所述第一存儲(chǔ)單元中所述差異日志的存儲(chǔ)區(qū)域變得不足的 情況。
26.如權(quán)利要求16所述的方法,其中所述日志反映處理包括在執(zhí)行所述提交處理之 后使存儲(chǔ)于所述第一存儲(chǔ)單元中的所述差異日志無(wú)效。
27.如權(quán)利要求M所述的方法,其中所述日志控制處理包括在執(zhí)行所述快照處理之 后使存儲(chǔ)于所述第一存儲(chǔ)單元中的所述差異日志無(wú)效。
28.如權(quán)利要求16所述的方法,其中所述讀取/寫(xiě)入控制處理包括管理所述第二存儲(chǔ)單元,所述第二存儲(chǔ)單元包括第一 塊,在執(zhí)行擦除操作之后從頂部頁(yè)在所述第一塊中執(zhí)行寫(xiě)入;以及第二塊,在所述第二塊中 寫(xiě)入無(wú)效數(shù)據(jù)直到頁(yè)的中間,并且在不執(zhí)行所述擦除操作的情況下另外對(duì)于沒(méi)有數(shù)據(jù)寫(xiě)入 于其中的頁(yè)執(zhí)行寫(xiě)入;以及所述管理信息恢復(fù)處理包括在判斷未執(zhí)行所述正常系統(tǒng)暫停時(shí)改變所述管理表,以釋 放所述第二塊并將其用作所述第一塊。
29.如權(quán)利要求17所述的方法,其中所述讀取/寫(xiě)入控制處理包括管理所述第二存儲(chǔ)單元,所述第二存儲(chǔ)單元包括第一 塊,在執(zhí)行擦除操作之后從頂部頁(yè)在所述第一塊中執(zhí)行寫(xiě)入;以及第二塊,在所述第二塊中 寫(xiě)入無(wú)效數(shù)據(jù)直到頁(yè)的中間,并且在不執(zhí)行所述擦除操作的情況下另外對(duì)于沒(méi)有數(shù)據(jù)寫(xiě)入 于其中的頁(yè)執(zhí)行寫(xiě)入;以及所述管理信息恢復(fù)處理包括在判斷未執(zhí)行所述正常系統(tǒng)暫停時(shí)改變所述管理表,以釋 放所述第二塊并將其用作所述第一塊。
30.如權(quán)利要求21所述的方法,其中所述讀取/寫(xiě)入控制處理包括管理所述第二存儲(chǔ)單元,所述第二存儲(chǔ)單元包括第一塊,在執(zhí)行擦除操作之后從頂部頁(yè)在所述第一塊中執(zhí)行寫(xiě)入;以及第二塊,在所述第二塊中 寫(xiě)入無(wú)效數(shù)據(jù)直到頁(yè)的中間,并且在不執(zhí)行所述擦除操作的情況下另外對(duì)于沒(méi)有數(shù)據(jù)寫(xiě)入 于其中的頁(yè)執(zhí)行寫(xiě)入;以及所述管理信息恢復(fù)處理包括在判斷未執(zhí)行所述正常系統(tǒng)暫停時(shí)改變所述管理表,以釋 放所述第二塊并將其用作所述第一塊。
全文摘要
在系統(tǒng)啟動(dòng)之后,在將第一差異日志記錄于第二存儲(chǔ)單元中之前,將指示系統(tǒng)正在運(yùn)行的第一日志記錄于所述第二存儲(chǔ)單元中,并且在正常系統(tǒng)暫停時(shí),在所述差異日志之后,將指示所述系統(tǒng)暫停的第二日志記錄于所述第二存儲(chǔ)單元中,并且在系統(tǒng)啟動(dòng)時(shí),基于所述第二存儲(chǔ)單元中的所述第一日志和所述第二日志的經(jīng)記錄狀態(tài)來(lái)判斷上次執(zhí)行了正常系統(tǒng)暫停還是執(zhí)行了不正確斷電序列,由此容易并且可靠地檢測(cè)不正確的斷電。
文檔編號(hào)G06F12/16GK102150142SQ20098013541
公開(kāi)日2011年8月10日 申請(qǐng)日期2009年12月28日 優(yōu)先權(quán)日2008年12月27日
發(fā)明者宮本博暢, 山崎創(chuàng), 矢野浩邦, 米澤真司 申請(qǐng)人:株式會(huì)社東芝