專利名稱:存儲器系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉;sj吏用非易失性半導(dǎo)體存儲器裝置的存儲器系統(tǒng)。
背景技術(shù):
一些個人計算機(PC)使用硬盤裝置作為次級存儲裝置。在這些PC 中,已知的技術(shù)是將已經(jīng)存儲在硬盤裝置上的數(shù)據(jù)做*以防止由于一些 故障而使數(shù)據(jù)失效。例如,當(dāng)探測到在硬盤裝置上改變數(shù)據(jù)的行為時,在
發(fā)生數(shù)據(jù)改變之前,先產(chǎn)生作為數(shù)據(jù)的備除的快照(snapshot)和關(guān)于數(shù) 據(jù)改變的日志。然后,在每個預(yù)定的時間重復(fù)進^f亍以下的處理,生成新的 快照,在生成新的快照之前使以前生成的快照無效,并生成新的日志(參 加美國專利申請/〉開No. 2006/0224636)。在由于某種原因數(shù)據(jù)變得無效 的情況下,可以通過讀取快照和日志來恢復(fù)數(shù)據(jù)。
最近幾年,作為非易失性半導(dǎo)體存儲器裝置的NAND閃存的容量以急 劇地增大。結(jié)果,包含具有NAND閃存作為次級存儲裝置的存儲器系統(tǒng)的 PC已i^實際應(yīng)用。但是,與將具有硬盤裝置作為次級存儲裝置的個人計 算機中存儲的數(shù)據(jù)作備份不同,在美國專利申請公開No. 2006/0224636中 公開的技術(shù)不能應(yīng)用于對具有NAND閃存作為次級存儲裝置的個人計算 機中存儲的數(shù)據(jù)的備份。這是因為,為了增加NAND閃存的容量,采用了 多值存儲技術(shù),該技術(shù)能夠在一個存儲器單元中存儲大于等于2比特的多 個數(shù)據(jù)(多值數(shù)據(jù))。
配置多值存儲器的存儲器單元具有場效應(yīng)晶體管結(jié)構(gòu),其具有這樣的 疊柵結(jié)構(gòu)(stacked gate structure ),其中柵極絕緣膜、浮柵電極、柵極間 絕緣膜(inter-gate insulating film )以;S^控制柵電極按順序?qū)盈B在溝道區(qū),并且能夠根據(jù)累積在浮柵電極的電子的數(shù)量來設(shè)定多個閾值電壓。為了能 夠基于多個閾值電壓進行多值存儲,需要使對應(yīng)于一個數(shù)據(jù)的閾值電壓的 分布極其的窄。
例如,作為能夠存儲多4個值的多值存儲器,存在這樣的存儲器,其 在一個存儲器單元中包括低級頁(lower order page)和高級頁(higher order page ),并通過在每個頁中寫入1比特數(shù)據(jù)來存儲2比特(4個值) 的數(shù)據(jù)。在這樣的多值存儲器中寫數(shù)據(jù)的方法中,在數(shù)據(jù)寫入第一存儲單 元的低級頁后,將數(shù)據(jù)寫入與該第一存儲單元相鄰的存儲單元(第二存儲 單元)的低級頁。在數(shù)據(jù)寫入該相鄰的存儲單元后,將數(shù)據(jù)寫入笫一存儲 單元的高級頁(參見,例如,JP-A 2004-192789 (KOKAI))。
然而,在這樣的多值存儲器中,較早地寫入了數(shù)據(jù)的第一存儲器單元 的閾值電壓由于數(shù)據(jù)的寫入時間較晚并且與第一存儲器單元相鄰的第二存 儲器單元的閾值電壓而浮動。因此,在該多值存儲器中,容易發(fā)生低級頁 崩潰,其中在某個存儲器單元的高級頁寫入數(shù)據(jù)時,由于例如非正常斷電, 寫入被中斷,在先前寫入了數(shù)據(jù)的低級頁也被損壞。
在包括NAND閃存的存儲器系統(tǒng)中,當(dāng)存儲數(shù)據(jù)時,必須一次以例如 稱為塊的單位擦除寫入?yún)^(qū),然后以稱為頁的單位執(zhí)行寫入。然而,存在這 樣的問題,隨著在數(shù)據(jù)的這種寫入之前執(zhí)行的塊的擦除的次數(shù)增加,配置 塊的存儲器單元的惡化加劇。因此,在具有作為二級存儲裝置的NAND閃 存的個人計算機中,必須執(zhí)行抑制對塊擦除的次數(shù)的數(shù)據(jù)管理。當(dāng)基于上 述快照和日志恢復(fù)數(shù)據(jù)時,同樣必須執(zhí)行抑制對塊擦除的次數(shù)的數(shù)據(jù)管理。 具體地,對于指示在NAND閃存中的數(shù)據(jù)存儲位置的管理信息的存儲,必 須提高可靠性。
發(fā)明內(nèi)容
根據(jù)本發(fā)明一個實施方式的存儲器系統(tǒng)包括易失性第一存儲單元; 非易失性第二存儲單元;和控制器,其通過第一存儲單元執(zhí)行在主機設(shè)備 和第二存儲單元之間的數(shù)據(jù)傳輸,在第一存儲單元中存儲包括在該存儲器系統(tǒng)的啟動操作期間在第二存儲單元存儲的數(shù)據(jù)的存儲位置的管理信息, 并在更新存儲的管理信息的同時,基于該存儲的管理信息在第一和第二存 儲單元中執(zhí)行管理。所述第二存儲單元在其中存儲于存儲在所迷第 一存儲 單元中的最新狀態(tài)的管理信息,并且管理信息存儲信息包括表示在所述最
新狀態(tài)下所述管理信息的存儲位置的存儲位置信息;以及在所述存儲器系 統(tǒng)的啟動操作期間由所述控制器讀取所述存儲位置信息,其包括表示在所 述第二存儲單元中最新狀態(tài)的管理信息的存儲位置的第二指針以及表示所 述笫二指針的存儲位置的第一指針,所述第一指針存儲在固定區(qū)中的第一 指針存儲區(qū)中,在所述第二存儲單元中的第一指針的存儲位置是固定的, 并且所述第二指針存儲在所述第二存儲單元中除了固定區(qū)域之外的區(qū)域中 的第二指針存儲區(qū)中。
根據(jù)本發(fā)明一個實施方式的存儲器系統(tǒng)包括易失性第一存儲單元; 非易失性第二存儲單元,包括可以存儲多值數(shù)據(jù)的存儲器單元;以及控制 器,其在主機裝置和第二存儲單元之間通過第一存儲單元來執(zhí)行數(shù)據(jù)傳輸, 將包括在該存儲器系統(tǒng)的啟動操作期間存儲在第二存儲單元的數(shù)據(jù)的存儲 位置的管理信息存儲在第 一存儲單元,并且在更新存儲的管理信息的同時, 基于存儲的管理信息在第 一和第二存儲單元中執(zhí)行數(shù)據(jù)管理。所述第二存 儲單元包括快照存儲區(qū),用于將滿足預(yù)定條件時獲取的以及作為管理信 息的快照存儲在所述第一存儲單元中;日志存儲區(qū),當(dāng)在所述管理信息中 發(fā)生改變時存儲作為改變之前和之后的差別信息的日志;以及指針存儲區(qū), 用于存儲表示所述快照存儲區(qū)的存儲位置的第 一指針。所述日志存儲區(qū)根 據(jù)要存儲的日志的大小依次提取作為數(shù)據(jù)擦除單位的塊。在所述快照中存 儲指示在所述日志存儲區(qū)中存儲的頂部日志的存儲位置的第二指針。所述 塊在其中存儲表示下一要提取的塊的位置的第一塊提取位置信息。
圖1是才艮據(jù)本發(fā)明第一實施方式的存儲器系統(tǒng)的配置的示例的框圖; 圖2是NAND存儲器中的任意一個方框的配置示例的電路圖;圖3A是DRAM的功能配置示意圖,圖3B是NAND存儲器的功能配 置示意圖4是用于管理存儲在存儲器系統(tǒng)中的數(shù)據(jù)的層結(jié)構(gòu)示例的示圖; 圖5示出了緩存管理信息表的示例; 圖6示出了邏輯NAND管理信息表的示例; 圖7示出了 NAND內(nèi)部邏輯物理轉(zhuǎn)換信息表的示例; 圖8是根據(jù)第一實施方式的在管理信息存儲區(qū)存儲的管理信息存儲信 息的內(nèi)容的示例的示意圖; 圖9示出了日志的示例; 圖IO示出了第二根指針的示例;
圖ll是圖1所示驅(qū)動控制單元的功能配置的示例的框圖; 圖12是圖11所示數(shù)據(jù)管理單元的功能配置的示例的框圖; 圖13是存儲器系統(tǒng)的管理信息的存儲處理過程的示例的流程圖; 圖14是存儲器系統(tǒng)的管理信息的恢復(fù)處理過程的示例的流程圖; 圖15是根據(jù)本發(fā)明第二實施例用于存儲日志的日志存儲區(qū)的結(jié)構(gòu)的 示例;
圖16是根據(jù)第三實施例的在管理信息存儲區(qū)存儲的管理信息存儲信 息的內(nèi)容的示例的示意圖17是解釋前日志和后日志的存儲處理的示圖18是根據(jù)第三實施例的存儲器系統(tǒng)的管理信息的恢復(fù)處理過程的 示例的流程圖19是根據(jù)第四實施例的存儲前日志的前日志存儲區(qū)和存儲后曰志 的后日志存儲區(qū)的結(jié)構(gòu)的示例的示圖20是根據(jù)本發(fā)明第五實施例的笫一根指針的復(fù)用的示例的示圖;以
及
圖21是根據(jù)第五實施例的第二根指針的復(fù)用的示例的示圖。
具體實施方式
以下參照附圖描述根據(jù)本發(fā)明的存儲器系統(tǒng)的示例性實施例。本發(fā)明 不限于這些實施方式。
根據(jù)本發(fā)明一個實施方式的存儲器系統(tǒng)包括非易失性半導(dǎo)體存儲裝
置,并被用作主機設(shè)備(例如個人電腦)的次級存儲裝置(SSD:固態(tài)驅(qū) 動器)。該存儲器系統(tǒng)具有存儲主機設(shè)備請求寫入的數(shù)據(jù)的功能,以及讀 取主機設(shè)備請求讀取的數(shù)據(jù)并將該數(shù)據(jù)發(fā)送到主機設(shè)備的功能。圖1是根 據(jù)笫一實施例的存儲器系統(tǒng)10的配置示例的框圖。該存儲器系統(tǒng)10包括 作為笫一存儲單元的DRAM (動態(tài)隨M取存儲器)11、作為第二存儲單 元的NAND閃存(以下稱為"NAND存儲器,,)12、電源電路13和作為 控制器的驅(qū)動控制電路14。
DRAM 11用作用于數(shù)據(jù)傳輸、管理信息記錄或工作區(qū)的存儲單元。 具體說,當(dāng)DRAM 11用作用于數(shù)據(jù)傳輸?shù)拇鎯卧獣r,在數(shù)據(jù)被寫入 NAND存儲器12之前該DRAM 11用于臨時存儲由主機設(shè)備請求寫入的數(shù) 據(jù),并且該DRAM 11從NAND存儲器12中讀取由該主機設(shè)備請求讀取 的數(shù)據(jù)并臨時存儲該讀取的數(shù)據(jù)。當(dāng)該DRAM ll用作用于管理信息記錄 的存儲單元時,該DRAM 11用于存儲管理信息以管理存儲在DRAM 11 和NAND 12中的數(shù)據(jù)的存儲位置。當(dāng)該DRAM11用作用于工作區(qū)的存儲 單元時,例如,當(dāng)恢復(fù)管理信息時,在所使用的日志的擴展期間,使用該 DRAM 11。
NAND存儲器12用作存儲單元,用于在其中存儲數(shù)據(jù)。具體說,在 該NAND存儲器12中存儲由主機設(shè)備指定的數(shù)據(jù),在其中存儲由DRAM 11管理的管理信息以作為備除。在圖1中,作為例子示出了包含四個通道 通信存儲區(qū)120A至120D的NAND存儲器12。每個通道通信存儲區(qū)120A 至120D包括兩個組121,每個組包括8個具有預(yù)定大小的存儲空間(例如, 2GB )的芯片122。該通道通信存儲區(qū)120A至120D通過驅(qū)動控制單元14 和總線15A至15D ,皮連接。
電源電路13從外部電源接收外部電能并產(chǎn)生多個內(nèi)部電源以提供給 存儲器系統(tǒng)10的各個單元。該電源電路13探測外部電源的狀態(tài),即,上升緣和下降緣,以基于探測到的狀態(tài)產(chǎn)生通電重置信號,并將通電重置信
號輸出到驅(qū)動控制單元14。
該驅(qū)動控制單元14控制DRAM 11和NAND存儲器12。例如,如以 下所詳細介紹的,該驅(qū)動控制單元14根據(jù)來自電源電路13的通電重置信 號執(zhí)行管理信息的恢復(fù)處理和管理信息的存儲處理。驅(qū)動控制單元14通過 ATA接口 (I/F)向主機設(shè)備發(fā)送數(shù)據(jù)并從主機設(shè)備接收數(shù)據(jù),并通過 RS232CI/F向調(diào)試設(shè)備發(fā)送數(shù)據(jù)并從調(diào)試設(shè)備接收數(shù)據(jù)。另夕卜,該驅(qū)動控 制電路14輸出控制信號以控制設(shè)置在存儲器系統(tǒng)10的外側(cè)的用于狀態(tài)顯 示的LED的開/關(guān)。
下面詳細介紹NAND存儲器12的配置。通過在基底上排列多個塊來 配置該NAND存儲器12,所述多個塊是數(shù)據(jù)擦除的單位。圖2是NAND 存儲器12的任意塊的配置示例的電路圖。在圖2中,左右方向設(shè)置為X 方向,與X方向垂直的方向i殳置為Y方向。
NAND存儲器12的每個塊BLK包括沿X方向按順序排列的(m+l) (m為大于等于0的整數(shù))個NAND串NS。每個NAND串NS具有(n+l) (n為大于等于0的整數(shù))個存儲器單元晶體管MT0至MTn,這些在Y 方向彼此相鄰的各個存儲器單元晶體管MT之間共享擴散區(qū)(源極區(qū)或漏 極區(qū))。而且,存儲器單元晶體管MT0至MTn在Y方向串聯(lián)連接。此夕卜, 在(n+l)個存儲器晶體管MT0至MTn組成的一行的兩端設(shè)置選擇晶體 管ST1和ST2。
每個存儲單元晶體管MT0至MTn是形成在半導(dǎo)體基底上的具有疊柵 結(jié)構(gòu)的場效應(yīng)晶體管。該疊柵結(jié)構(gòu)包括通過柵絕緣膜形成在該半導(dǎo)體基底 上的電荷累積層(浮柵電極)和通過柵極間絕緣膜形成在電荷累積層上的 控制柵電極。另外,存儲器單元晶體管MTO至MTn是多值存儲器,其中 閾值電壓隨著在浮柵電極累積的電子數(shù)而變化,并且根據(jù)該閾值電壓的差 異兩個或多個比特的數(shù)據(jù)能夠被存儲。在下面的介紹中假設(shè)存儲器單元晶 體管MT0至MTn是能夠存儲4個值的多值存儲器。但是,存儲器單元晶 體管MT0至MTn可以是能存儲多于4個值的多值存儲器。字線WL0至WLn分別連接到每個NAND串NS的儲器單元晶體管 MT0至MTn的控制柵電極。在每個NAND串NS中的存儲器單元晶體管 MTi (i=0至n )通過相同的字線(i=0至n )共同地連接在一起。換言之, 出現(xiàn)在塊BLK的同一行的存儲器單元晶體管MTi的各個控制柵電極連接 到相同的字線WLi。連接到相同字線WLi的(m+1)個存儲器單元晶體管 MTi看作一頁。在NAND存儲器12中,以頁為單位執(zhí)行數(shù)據(jù)的寫入和讀 出。具體說,連接到相同字線WLi的一組(m+1)個存儲器單元晶體管 MTi是一個單位,形成一頁。在能夠存儲4個值的多值存儲器的情況中, 連接到同一字線WLi的一組存儲器單元晶體管MTi形成兩頁。當(dāng)首先寫 入了數(shù)據(jù)的頁被設(shè)置為低級頁,而隨后寫入了數(shù)據(jù)的頁被設(shè)為高級頁時, 在NAND存儲器12中,以頁為單位進行數(shù)據(jù)的寫入和讀取。
位線BLO至BLm分別連接到一個塊BLK中的(m+1)個選擇晶體管 STl的漏極。選擇柵極線(selection gate line )SGD公共地連接到每個NAND 串NS的各選擇晶體管STl的各柵極。各選擇晶體管STl的各源極連接到 存儲器單元晶體管MTO的漏極。類似地,源極線SL公共地連接到一個塊 BLK中的(m+1)個選擇晶體管ST2的各源極。選擇柵極線SGS公共地 連接到每個NAND串NS的各選擇晶體管ST2的各柵極。各選擇晶體管 ST2的各個漏極連接到存儲器單元晶體管MTn的各個源極。
雖然在圖中未示出,在一個塊BLK中的位線BLj (j-0至m)在其它 塊BLK的各條位線BLj之間將各選擇晶體管STl的各漏極共同地連接起 來。換言之,在塊BLK的相同列中的NAND串NS被相同的位線BLj連 接。
下面介紹DRAM 11和NAND 12的功能配置。圖3A是DRAM 11的 功能配置的示意圖,圖3B是NAND12的功能配置的示意圖。
如圖3A所示,DRAM 11包括寫緩存區(qū),其中存儲主機設(shè)備請求寫入 的數(shù)據(jù);讀緩存區(qū)RC,其中存儲主機設(shè)備請求讀取的數(shù)據(jù);臨時存儲區(qū) 111,其中存儲管理信息,用于管理存儲在DRAM 11和NAND 12中的數(shù) 據(jù)的存儲位置;以及在恢復(fù)管理信息時使用的工作區(qū)112。如圖3B所示,NAND存儲器12包括其中存儲由主機裝置請求寫入 的數(shù)據(jù)的數(shù)據(jù)存儲區(qū)125、以及管理信息存儲區(qū)126,其中存儲在DRAM 11 的臨時存儲區(qū)111中進行管理的管理信息。在此示例中,在NAND存儲器 12中的數(shù)據(jù)寫入和讀出單位祐二沒為頁面大小單位。刪除單位^皮設(shè)為塊大小 單位(例如512KB)。因此,用于存儲以塊大小為單位管理的NAND存儲 器12的各個塊的區(qū)被進一步劃分為以頁面大小為單位的區(qū)。
以下說明在DRAM 11的臨時存儲區(qū)111中管理的管理信息。圖4是 用于管理存儲器系統(tǒng)IO中存儲的數(shù)據(jù)的層結(jié)構(gòu)的示例的圖。這里假定該數(shù) 據(jù)是主機裝置請求寫入或讀出的數(shù)據(jù)。在存儲器系統(tǒng)IO中,通過三層結(jié)構(gòu) 執(zhí)行數(shù)據(jù)管理DRAM管理層31、邏輯NAND管理層32、以及物理NAND 管理層33。 DRAM管理層31執(zhí)行DRAM 11中的數(shù)據(jù)管理,其起到高速 緩存的作用。邏輯NAND管理層32執(zhí)行NAND存儲器12中的邏輯數(shù)據(jù) 管理。物理NAND管理層33執(zhí)行NAND存儲器12中的物理數(shù)據(jù)管理、 針對NAND存儲器12的壽命延長處理等等。
在DRAM11的寫緩存區(qū)WC和讀緩存區(qū)RC中,由主才幾裝置的地址 管理方法所管理的邏輯地址(下文中稱為"LBA (邏輯塊地址)")指定 的數(shù)據(jù)存儲于DRAM 11上的預(yù)定范圍內(nèi)的物理地址中(下文中稱為 "DRAM內(nèi)物理地址")。DRAM管理層31中的數(shù)據(jù)由高速緩存管理信 息41所管理,所述高速緩存管理信息41包括將要存儲的數(shù)據(jù)的LBA以 及DRAM內(nèi)物理地址之間的對應(yīng)關(guān)系、以及指示出在頁面中以扇區(qū)大小 為單位的數(shù)據(jù)的存在或缺失的扇區(qū)標(biāo)志。
圖5示出了表格形式的高速緩存管理信息41的示例。高速緩存管理信 息41是針對DRAM 11的一頁大小的一個區(qū)的一個條目。條目數(shù)量小于等 于配置在寫緩存區(qū)WC和讀緩存區(qū)RC中的頁的數(shù)量。在每個條目中,將 頁大小的數(shù)據(jù)的LBA、 DRAM內(nèi)物理地址與扇區(qū)標(biāo)志相關(guān)聯(lián),所述扇區(qū) 標(biāo)志指示出在通過以扇區(qū)大小劃分此頁而獲得的每個區(qū)中的有效數(shù)據(jù)的 位置。
在NAND存儲器12中,來自DRAM 11的數(shù)據(jù)被存儲于NAND存儲
15器12上的預(yù)定范圍內(nèi)的物理地址中(下文中稱為"NAND內(nèi)物理地址,,)。 在由多值存儲器構(gòu)成的NAND存儲器12中,由于可重寫次數(shù)是有限的, 因此在配置NAND存儲器12的各塊之中的重寫次數(shù)由驅(qū)動控制單元14控 制,以使其均衡。換句話說,當(dāng)執(zhí)行對于在NAND存儲器12中的某個NAND 內(nèi)物理地址中寫入的數(shù)據(jù)的更新時,驅(qū)動控制單元14執(zhí)行控制以使在配置 NAND存儲器12的各塊之間的重寫次數(shù)均衡,以便在不同于初始塊的一 個塊中寫入數(shù)據(jù),該數(shù)據(jù)反映了在包括了將要更新的數(shù)據(jù)的塊中需要被更 新的部分,并^f吏初始塊無效。
如上所述,在NAND存儲器12中,在對數(shù)據(jù)的寫入和讀出處理以及 對數(shù)據(jù)的刪除處理中,處理單元是不同的。在對數(shù)據(jù)的更新處理中,數(shù)據(jù) 在更新前的位置(塊)和數(shù)據(jù)在更新后的位置(塊)是不同的。因此,在 第一實施例中,除NAND內(nèi)物理地址之外,在NAND存儲器12中獨立使 用的NAND內(nèi)邏輯地址(下文中稱為"NAND內(nèi)邏輯地址")被提供。
因此,在邏輯NAND管理層32中的數(shù)據(jù),皮邏輯NAND管理信息42 管理,所述邏輯NAND管理信息42指示出以頁大小為單位從DRAM 11 接收的數(shù)據(jù)的LBA與指示出存儲有所接收的數(shù)據(jù)的NAND存儲器12的邏 輯頁位置的NAND內(nèi)邏輯地址之間的關(guān)系,以及指示出表示邏輯塊的地址 范圍的關(guān)系(該邏輯塊的大小與作為NAND存儲器12中的刪除單元的物 理塊一致)。多個邏輯塊的集合可以被設(shè)為一個邏輯塊。物理NAND管理 層33中的數(shù)據(jù)被NAND內(nèi)邏輯地址-物理地址轉(zhuǎn)換信息(下文中稱為"邏 輯_物理轉(zhuǎn)換信息")所管理,所述信息包括NAND存儲器12中的邏輯塊 的NAND內(nèi)邏輯地址和物理塊的NAND內(nèi)物理地址之間的對應(yīng)關(guān)系。
圖6示出了表格形式的邏輯NAND管理信息42的示例。圖7示出了 表格形式的NAND內(nèi)邏輯-物理轉(zhuǎn)換信息43的示例。如圖6所示,邏輯 NAND管理信息42包括邏輯頁管理信息42a和邏輯塊管理信息42b。邏輯 頁管理信息42a針對一頁大小的一個邏輯區(qū)具有一個條目。每個條目包括 一頁大小的數(shù)據(jù)的LBA、 NAND內(nèi)邏輯地址、以及指示出此頁面是否有效 的頁標(biāo)志。邏輯塊管理信息42b包括針對NAND存儲器12的一個塊大小的邏輯區(qū)設(shè)置的NAND內(nèi)邏輯地址。如圖7所示,在NAND內(nèi)邏輯-物 理轉(zhuǎn)換信息43中,將NAND存儲器12的NAND內(nèi)物理地址與NAND內(nèi) 邏輯地址相關(guān)聯(lián)。
通過使用這些類型的管理信息,在主機裝置中使用的LBA、在NAND 存儲器12中使用的NAND內(nèi)邏輯地址、以及在NAND存儲器12中使用 的NAND內(nèi)物理地址的對應(yīng)關(guān)系可以被建立。這使得在主機裝置和存儲器 系統(tǒng)10之間交換數(shù)據(jù)成為可能。
由于電源關(guān)閉或類似原因,由DRAM管理層31所管理的管理信息丟 失,從而該管理信息可以被稱為易失性表。相反地,如果由于電源關(guān)閉或 類似原因,由邏輯NAND管理層32以及物理NAND管理層33所管理的 管理信息丟失,則所丟失的管理信息會阻礙存儲器系統(tǒng)10的成功啟動,從 而需要采取措施以使得即使在電源關(guān)閉或類似原因的情況下也能存儲該管 理信息。因此,該管理信息可以被稱為非易失性表。
該非易失性表管理在NAND存儲器12中存儲的數(shù)據(jù)。如果非易失性 表不存在,則在NAND存儲器12中存儲的信息無法被訪問,或者在一個 區(qū)中存儲的數(shù)據(jù)被刪除。因此,為防備突然電源關(guān)閉,非易失性表需要作 為最新信息被存儲。因此,在笫一實施例中,包括至少一個非易失性表的 管理信息以最新狀態(tài)被存儲在NAND存儲器12的管理信息存儲區(qū)126中。 以下說明在NAND存儲器12的管理信息存儲區(qū)126中存儲的管理信息存 儲信息。以下說明假定僅有非易失性表存儲在管理信息存儲區(qū)126中。
圖8是在管理信息存儲區(qū)126中存儲的管理信息存儲信息的內(nèi)容的示 例的示意圖。在管理信息存儲區(qū)126中存儲的管理信息存儲信息包含作 為非易失性表在某一點的內(nèi)容的快照210、作為在非易失性表(在內(nèi)^ 在改變時所述非易失性表的內(nèi)容也改變)和快照210 (或快照210和已經(jīng) 生成的日志)之間的差別信息的日志220、指示快照210以及首先獲取的 關(guān)于該快照210的日志220的位置(塊)的第二才艮指針230、以及指示存 儲第二根指針230的位置(塊)的第一根指針240。在DRAM 11的臨時 存儲區(qū)111中存儲的各類管理信息中,快照210是通過存儲包括了至少在預(yù)定一點的非易失性表的管理信息而獲得的信息。
分別在不同的塊中存儲快照210、日志220、第二根指針230、和第一 根指針240。存儲快照210、日志220、第二根指針230、和第一根指針240 的塊的大小與作為擦除單元的物理塊大小相同。將快照210存儲在快照存 儲塊中。在NAND存儲器12的管理信息存儲區(qū)126中,快照210包括作 為非易失性表的邏輯NAND管理信息42和NAND內(nèi)邏輯物理轉(zhuǎn)換信息 43。當(dāng)要存儲新快照210時,將新快照210存儲在與之前存儲的快照210 的塊不同的塊中。
日志220存儲在專用日志存儲塊中。即使快照的生成改變,也持續(xù)地 將曰志220寫入到相同日志存儲塊中。圖9示出日志220的示例。日志220 包括將成為改變目標(biāo)的管理信息的目標(biāo)信息、作為將成為目標(biāo)信息中的 改變目標(biāo)的條目的目標(biāo)條目、作為將成為目標(biāo)條目中的改變目標(biāo)的項的目 標(biāo)項、以及作為目標(biāo)項的改變的內(nèi)容的改變內(nèi)容。
第二根指針230存儲在專用第二根指針存儲塊中。笫二根指針230僅 須是這樣的指針,其指示用于表示快照210和日志220的存儲位置的塊的 頂端地址。然而,指示第二根指針230中的快照210的存儲位置的部分可 以是指示包括在快照210中的各種管理信息(非易失性表)的頂端地址的 部分。當(dāng)重新存儲快照210時,更新第二根指針230。日志220的指針可 存儲在快照210中,而非存儲在第二根指針存儲塊中。
圖10示出第二根指針230的示例。假設(shè)一個塊的大小是512KB,將 第二根指針230存儲在具有4KB大小的一個頁中。第二4艮指針230包括快 照訪問信息、日志訪問信息、和下一指針。快照訪問信息是用于訪問在其 中存儲快照的塊的信息。日志訪問信息是用于訪問在其中存儲日志的塊的 信息。日志訪問信息包括用于指定塊的信息以及用于在存儲與參照快照相 關(guān)曰志的塊中指定頂部頁的信息。下一指針是索引,其指示存儲有下一第 二根指針230的頁。通過這個下一指針,將第二根指針230改變?yōu)殒溄恿?表系統(tǒng)(linked list system)中的信息。可通it^第一根指針240指定的第 二根指針串塊的頂部頁跟蹤下一指針來到達最新笫二才艮指針230。作為對鏈接列表系統(tǒng)的替代方案,可通過一次寫入的方式從第二根指針存儲區(qū)的
頂部頁依次存儲第二根指針230。
第 一根指針240存儲在專用第 一根指針存儲塊中。第 一根指針240是 用于訪問存儲有第二根指針230的笫二根指針存儲塊的塊(位置)的信息, 并且是在啟動存儲器系統(tǒng)10時在恢復(fù)管理信息的處理中首先讀取的信息。 當(dāng)存儲笫二根指針的塊改變時,改變第一根指針240。通過一次寫入的方 式將第一根指針240從塊的頂部頁依次存儲在第一根指針存儲塊中。在這 種情況下,在第一根指針存儲塊中緊鄰未寫頁的在前頁具有最新信息。因 此,可通過提取未寫頁的最高級的頁來提取最新笫一根指針240。以與笫 二根指針230相同的方式,對于第一根指針240,也可使用鏈接列表。
第一才艮指針240存儲在NAND存儲器12中的固定區(qū)1261中??煺?210、曰志220、和第二根指針230存儲在NAND存儲器12中的可變區(qū)1262 中。固定區(qū)1261是在NAND存儲器12中由邏輯NAND管理層32管理的 邏輯塊與由物理NAND管理層33管理的物理塊之間的關(guān)系固定的區(qū)域, 以及存儲有使得具有幾乎不發(fā)生重寫和寫入的低更新頻率的存儲器系統(tǒng) IO運行所必須的信息的區(qū)域。例如,在擦除塊中的信息而并非在管理信息 存儲區(qū)126 (NAND存儲器12)中的另一塊寫入信息(第一根指針240) 之后,固定區(qū)1261是在當(dāng)前所有塊被寫滿時被設(shè)置為^目同塊的頂部頁寫 入信息的區(qū)域。在這個實例中,由多值存儲器來配置NAND存儲器12。 然而,期望在二叉節(jié)點中使用NAND存儲器12,以提高第一根指針240 的可靠性。
可變區(qū)1262是在不包括固定區(qū)1261的NAND存儲器12的區(qū)域中的 區(qū)域,在該區(qū)域中由邏輯NAND管理層32管理的邏輯塊與物理NAND管 理層33管理的物理塊之間的關(guān)系發(fā)生改變。例如,可變區(qū)1262是在當(dāng)前 所有塊被寫滿時凈皮設(shè)置為在作為管理信息存儲區(qū)126中的可變區(qū)1262中的 可寫空閑塊的另一塊中寫入下一信息的區(qū)域??勺儏^(qū)1262是上述NAND 存儲器12中的不包括固定區(qū)1261的區(qū)域。除了在管理信息存儲區(qū)126中 存儲快照210、日志220、和笫二;f艮指針230的區(qū)域之外,可變區(qū)1262還包括數(shù)據(jù)存儲區(qū)125。換句話說,在不包括固定區(qū)1261的NAND存儲器 12的整個物理區(qū)是可變區(qū)1262。在可變區(qū)1262中,按功能劃分數(shù)據(jù)存儲 區(qū)125以及在管理信息存儲區(qū)126中存儲快照210、日志220、和第二根指 針230的區(qū)域。
以下說明驅(qū)動控制單元14的功能。圖11是驅(qū)動控制單元14的功能配 置的示例的框圖。驅(qū)動控制單元14包括數(shù)據(jù)管理單元141、 ATA命令 處理單元142、安全管理單元143、引導(dǎo)程序加栽器144、初始化管理單元 145、以及調(diào)試支持單元146。數(shù)據(jù)管理單元141執(zhí)行DRAM11和NAND 存儲器12之間的數(shù)據(jù)傳輸以及對于與NAND存儲器12有關(guān)的多種功能的 控制。ATA命令處理單元142基于從ATA接口接收的指令與數(shù)據(jù)管理單 元141合作執(zhí)行數(shù)據(jù)傳輸處理。安全管理單元143與數(shù)據(jù)管理單元141和 ATA命令處理單元142合作管理各種類型的安全信息。引導(dǎo)程序加載器 144在通電期間將各個管理程序(固件)從NAND存儲器12加載到未示 出的存儲器(例如SRAM (靜態(tài)RAM))。初始化管理單元145執(zhí)行驅(qū) 動控制單元14中的各個控制器和電路的初始化。調(diào)試支持單元146處理經(jīng) 由RS232C接口從外界提供的調(diào)試數(shù)據(jù)。
圖12是數(shù)據(jù)管理單元141的功能配置的示例的框圖。數(shù)據(jù)管理單元 141包括數(shù)據(jù)傳輸處理單元151、管理信息管理單元152、管理信息恢復(fù) 單元155、和重寫塊均衡處理單元156。數(shù)據(jù)傳輸處理單元151執(zhí)行DRAM 11和NAND存儲器12之間的數(shù)椐傳輸。管理信息管理單元152根據(jù)在 DRAM 11和NAND存儲器12中存儲的數(shù)據(jù)的改變來執(zhí)行管理信息的改變 和存儲。管理信息恢復(fù)單元155基于在通電或類似情況期間存儲的管理信 息恢復(fù)最新的管理信息。在整個NAND存儲器中,重寫塊均衡處理單元 156均衡寫入有數(shù)據(jù)和管理信息存儲信息的塊的寫入次數(shù)。
管理信息管理單元152包括管理信息寫入單元153和管理信息存儲單 元154。當(dāng)根據(jù)針對由數(shù)據(jù)傳輸處理單元151在DRAM 11或NAND存儲 器12中存儲的數(shù)據(jù)的改變處理從而對管理信息的更新為必要的時候,管理 信息寫入單元153執(zhí)行對在DRAM 11中存儲的管理信息的更新。當(dāng)存儲器系統(tǒng)10滿足預(yù)定*時,管理信息存儲單元154在NAND 存儲器12的管理信息存儲區(qū)126中存儲作為快照210的管理信息、作為日 志220的將在管理信息中更新的信息。當(dāng)根據(jù)快照210或日志220的存儲 改變在笫二根指針230或第二根指針230和第一根指針240中寫入的位置 時,管理信息存儲單元154將更新處理應(yīng)用到第二根指針230或第二根指 針230和第一根指針240。
當(dāng)滿足與存儲器系統(tǒng)IO相關(guān)的預(yù)定M時,由管理信息存儲單元154 執(zhí)行快照210的存儲。例如,當(dāng)為了在NAND存儲器12的管理信息存儲 區(qū)126中存儲日志220而提供的日志存儲區(qū)變滿時(即該區(qū)域完全被數(shù)據(jù) 充滿),執(zhí)行快照210的存儲。
在涉及DRAM 11中存儲的管理信息(非易失性表)的更新的在NAND 存儲區(qū)12上的數(shù)據(jù)更新(當(dāng)在NAND存儲器12中的數(shù)據(jù)寫入是必要時) 期間,由管理信息存儲單元154執(zhí)行日志220的存儲。
當(dāng)存儲器系統(tǒng)10的電源被打開時,管理信息恢復(fù)單元155基于在 NAND存儲器12的管理信息存儲區(qū)126中存儲的管理信息存儲信息執(zhí)行 針對管理信息的恢復(fù)處理。具體地,管理信息恢復(fù)單元155順序地跟蹤固 定區(qū)1261中的笫一根指針240以及在可變區(qū)1262中的第二根指針230和 日志220,并確定對應(yīng)于最新快照210的日志220是否存在。當(dāng)所述日志 220不存在時,管理信息恢復(fù)單元155在DRAM 11中恢復(fù)作為管理信息 的快照存儲塊中的快照210。當(dāng)日志220存在時,由于已經(jīng)發(fā)生了例如短 暫斷路的異常終止,所以管理信息恢復(fù)單元155從快照存儲塊獲得快照 210,從日志存儲塊獲得日志220,以及執(zhí)行將日志220反映到DRAM 11 上的快照210的管理信息(非易失性表)的恢復(fù)。
在將NAND存儲器12中的數(shù)據(jù)存儲區(qū)125中的塊以及在管理信息存 儲區(qū)126中存儲快照210、日志220、和笫二根指針230的塊重寫到可變區(qū) 1262中的其他可用塊時,重寫塊均衡處理單元156在重寫目的地選擇一個 塊,使得均衡可變區(qū)1262中的塊的重寫次數(shù)。重寫塊均衡處理單元156 指示數(shù)據(jù)傳輸處理單元151、管理信息管理單元152、和管理信息存儲單元154執(zhí)行重寫。當(dāng)在新塊中寫入數(shù)據(jù)、快照210、日志220、和笫二才艮指針 230時,重寫塊均衡處理單元156同樣在重寫目的地選擇一個塊,使得能 夠均衡可變區(qū)1262中的塊的重寫次數(shù)。重寫塊均衡處理單元156指示數(shù)據(jù) 傳輸處理單元151、管理信息管理單元152、和管理信息存儲單元154執(zhí)行 重寫。在這種情況下,可以在重寫目的地指定一個塊,而不管是否存在過 去用作數(shù)據(jù)存儲區(qū)125的塊或在管理信息存儲區(qū)126中存儲快照210、日 志220、和第二根指針230的塊,只要該塊是可變區(qū)1262中的可用塊即可。
以下說明由管理信息管理單元152執(zhí)行的針對存儲器系統(tǒng)10的管理信 息的存儲處理。圖13是針對存儲器系統(tǒng)10的管理信息的存儲處理過程的 示例的流程圖。假設(shè)存儲器系統(tǒng)10連接于主機裝置,并作為主機裝置的次 級存儲裝置進行工作,主機裝置(存儲器系統(tǒng)IO)處于已啟動狀態(tài),并且 在該啟動狀態(tài)之前,在存儲器系統(tǒng)10停止之前存儲快照210。
首先,基于在主機裝置(存儲器系統(tǒng)IO)的尾端存儲的快照210,主 機裝置(存儲器系統(tǒng)IO)處于已啟動狀態(tài)(步驟Sll)。此后,管理信息 管理單元152確定預(yù)定的快照存儲條件是否滿足(步驟S12)。當(dāng)快照存 儲條件不滿足時(步驟S12的"否"),管理信息管理單元152確定涉及 對管理信息的更新的指令(滿足日志存儲條件的指令)是否被接收(步驟 S13 )。當(dāng)涉及對管理信息的更新的指令未被接收時(步驟S13的"否,,), 管理信息管理單元152返回步驟S12。
當(dāng)涉及對管理信息的更新的指令(關(guān)于將數(shù)據(jù)寫入NAND存儲器12 的指令)被接收時(步驟S13的"是"),管理信息管理單元152通過執(zhí) 行該指令確定指示出管理信息將如何被更新的更新調(diào)度(步驟S14)。管 理信息管理單元152將更新調(diào)度存儲在NAND存儲器12的管理信息存儲 區(qū)126的日志存儲塊中作為日志220 (步驟S15 )。當(dāng)日志220尚未被存儲 在日志存儲塊中時,更新調(diào)度(日志)是在當(dāng)前點的非易失性表和在快照 存儲塊中存儲的快照210之間的差別信息。當(dāng)日志220 (以下稱為過去日 志)已被存儲在日志存儲塊中時,更新調(diào)度(日志)是在當(dāng)前點的非易失 性表與快照210和過去日志的結(jié)合之間的差別信息。例如在日志220 (更新調(diào)度)記錄在DRAM 11之后日志220被存儲在NAND存儲器12的管 理信息存儲區(qū)126中。
隨后,邏輯NAND管理層32執(zhí)行在步驟S13接收的指令(步驟S16)。 作為這種指令的示例,存在針對在NAND存儲器12的數(shù)據(jù)存儲區(qū)的預(yù)定 塊中的用戶數(shù)據(jù)的寫入處理。隨后,管理信息管理單元152再次返回步驟 S12。
當(dāng)滿足快照存儲條件時(步驟S12的"是"),將在DRAM 11的臨 時存儲區(qū)111中至少包括非易失性表的管理信息存儲在NAND存儲器12 的管理信息存儲區(qū)126中作為快照210 (步驟S17)。管理信息管理單元 152確定是否指示了存儲器系統(tǒng)10的末端(步驟S18)。當(dāng)沒有指示存儲 器系統(tǒng)10的末端時(步驟S18的"否"),管理信息管理單元152返回步 驟S12。當(dāng)指示了存儲器系統(tǒng)10的末端時(步驟S18的"是"),結(jié)束該 處理。
以下說明由管理信息恢復(fù)單元155執(zhí)行的對于存儲器系統(tǒng)10的管理信 息的恢復(fù)處理。圖14是對于存儲器系統(tǒng)10的管理信息的恢復(fù)處理過程的 示例的流程圖。如上所述,存儲器系統(tǒng)10連接于主機裝置,并作為主機裝 置的次級存儲裝置進行工作。
首先,主機裝置的電源被打開,并且向存儲器系統(tǒng)10發(fā)出啟動指令(步 驟S31)。管理信息恢復(fù)單元155讀取NAND存儲器12的管理信息存儲 區(qū)126中的最新第一根指針,并獲取笫二根指針存儲塊的位置(步驟S32 )。 隨后,管理信息恢復(fù)單元155從所獲取的第二根指針存儲塊的位置讀取最 新第二根指針,并獲取存儲快照210和日志220的塊的地址(步驟S33 )。 管理信息恢復(fù)單元155從在步驟S33獲取的在NAND存儲器12中的地址 讀取快照210,以及恢復(fù)DRAM 11的臨時存儲區(qū)111中的快照210 (步驟 S34)。
隨后,管理信息恢復(fù)單元155參照NAND存儲器12中的日志220確 定是否發(fā)生短暫斷路(short break)(步驟S35 )。當(dāng)沒有發(fā)生短暫斷路 時(步驟S35的"否"),在步驟S34,管理信息恢復(fù)單元155由在DRAM
2311的臨時存儲區(qū)111中恢復(fù)的快照210恢復(fù)管理信息(步驟S36)并且恢 復(fù)處理結(jié)束。
另一方面,當(dāng)發(fā)生短暫斷路時(步驟S35的"是,,),管理信息恢復(fù) 單元155從在步驟S33獲取的NAND存儲器12中的地址獲取日志220, 并在DRAM 11的工作區(qū)112中擴展日志220 (步驟S37 )。管理信息恢復(fù) 單元155從最早日志開始依次將各日志反映到在步驟S34在DRAM 11的 臨時存儲區(qū)111中恢復(fù)的快照210上,并恢復(fù)管理信息(非易失性表)(步 驟S38),并且管理信息的恢復(fù)處理結(jié)束。
如上所述,根據(jù)第一實施例,作為指示存儲器系統(tǒng)10的最新存儲信息 的快照210和日志220的存儲位置的指針,在可變區(qū)1262中提供指示快照 210和日志220的存儲位置的第二根指針230,在固定區(qū)1261中提供指示 第二根指針230的存儲位置的第一根指針240。結(jié)果,不必更新第一根指 針240,直到用于笫二根指針存儲的所有塊被數(shù)據(jù)充滿。此外,與第二根 指針"0的更新頻率相比,可以實質(zhì)上降低第一根指針240的更新頻率。 例如,在沒有提供第二根指針230并且第一根指針240被調(diào)整為指向快照 210和日志220的存儲位置時,每當(dāng)更新快照210時,更新第一根指針240。 結(jié)果,用于第一根指針存儲的塊的擦除次數(shù)增加。另一方面,通過提供第 二根指針230,可以將用于第一根指針存儲的塊的擦除次數(shù)降低到將快照 210的更新次數(shù)除以第二根指針230的頁數(shù)所獲得的數(shù)目??梢詫嵸|(zhì)上降 低用于第一根指針存儲的塊的擦除次數(shù)。結(jié)果,存在這樣的效果,即可以 延長配置固定區(qū)1261的存儲器單元晶體管的壽命。此外,由于可以降低存 儲第一根指針240的用于第一根指針存儲的塊的重寫次數(shù),所以還存在這 樣的效果,即可以提高作為存儲數(shù)據(jù)的第一根指針240的可靠性。
第二實施例
作為根據(jù)本發(fā)明的第二實施例,以下解釋當(dāng)日志存儲區(qū)中存儲的曰志 大小超過日志存儲塊的大小時寫入日志的處理的方法。
圖15是根據(jù)第二實施例用于存儲日志的日志存儲區(qū)的結(jié)構(gòu)的示例的 示圖。在圖15中,在圖8所示的組件之間,僅示出笫二根指針230和日志220,并省略其他組件。
日志220包括由陰影部分(例如在包括日志存儲塊45和46的日志存儲區(qū)中)表示的各個頁中存儲的日志信息。形成日志存儲區(qū)的日志存儲塊的數(shù)目取決于要存儲的日志的大小(日志長度)。在日志存儲區(qū)中,當(dāng)根據(jù)要存儲的日志的大小連續(xù)獲得日志存儲塊并且在被寫入的日志存儲塊的所有頁中寫入日志時,將日志寫入下一獲取的日志存儲塊中。在圖15所示
的示例中,從日志存儲塊45的頂部頁依次存儲日志。在將日志寫入日志存儲塊45中的所有頁之后,從獲取的用于寫入的下一塊日志存儲塊46的頂部頁依次存儲日志。
第二根指針230指示表示日志220的存儲地址的塊的頂部地址。具體地,笫二根指針230指示日志存儲塊45的頂部頁。
曰志存儲塊45在其中存儲指示日志存儲塊46的位置的指針。具體地,當(dāng)使用日志存儲塊45的頂部頁時,獲取日志存儲塊46并向日志存儲塊45的頂部頁增加表示日志存儲塊46的頂部頁地址的指針信息。這使得可以依次跟蹤第二根指針230、日志存儲塊45、和日志存儲塊46,并找到快照210的最后日志。日志存儲塊46在其中存儲表示下一個獲取的日志存儲塊(未示出)的位置的指針。當(dāng)使用日志存儲塊46的頂部頁時,獲取下一日志存儲塊并向日志存儲塊46的頂部頁增加表示下一日志存儲塊的頂部頁地址的指針信息。在圖15中,作為示例,在兩個日志存儲塊(日志存儲塊45和46)中存儲日志。然而,當(dāng)在三個或更多個日志存儲塊中存儲日志時可采用相同的處理。
如上所述,在笫二實施例中,當(dāng)日志存儲區(qū)包括多個日志存儲塊時,在日志存儲塊的頂部頁中存儲表示下一獲取的日志存儲塊的位置的指針信息,從而可經(jīng)由指針跟蹤在不同日志存儲塊中存儲的日志。換句話說,日志存儲區(qū)包括連續(xù)獲取的各個日志存儲塊,并具有這樣的結(jié)構(gòu),即,通過表示日志存儲塊之間的指針以鏈條形狀(以下稱為日志鏈)連接各日志存儲塊的結(jié)構(gòu)。
根據(jù)第二實施例,即使當(dāng)日志存儲區(qū)中存儲的日志220的大小超過日志存儲塊的大小,由于可以重新獲取日志存儲塊并在新日志存儲塊中寫入
曰志,所以每當(dāng)日志存儲塊充滿時,不必存儲快照和更新第二根指針230。因此,減少了在存儲第二根指針230的第二根指針存儲塊中的寫入。因此,存在這樣的效果,可以減少在NAND存儲器12中寫入的次數(shù)并抑止NAND存儲器12的壽命降低。
日志存儲塊獲取指針的時間不限于使用日志存儲塊的頂部頁的時間,并且可以是使用其他頁的時間。因此,例如可以在完成日志存儲塊45的最后頁中寫入日志的時刻獲取日志存儲塊46,并且可提供表示日志存儲塊46的頂部頁的地址的指針。
優(yōu)選地提供可在日志存儲區(qū)中獲取的日志存儲塊的數(shù)目的上限。這是因為,如果日志220的大小超過預(yù)定大小,當(dāng)有必要在快照210上反映日志220并恢復(fù)管理信息時,恢復(fù)時間很長。例如,當(dāng)日志存儲區(qū)充滿時,可獲取新快照210。
第三實施例
在第一和第二實施例中,如圖8所示,針對快照生成一個日志。然而,在根據(jù)本發(fā)明的第三實施例中,生成多個曰志。
圖16是根據(jù)笫三實施例在管理信息存儲區(qū)中存儲的管理信息存儲信息的內(nèi)容的示例的示意圖。在第三實施例中,將第一實施例中如圖8所示的日志220細分成更新前日志(以下稱為"前日志")220A和更新后曰志(以下稱為"后日志,,)220B。前日志220A是在下一次產(chǎn)生快照之前的非易失性表的內(nèi)容的更新差別信息,并且在更新之前被獲取。后日志220B是與前日志220A相同內(nèi)容的日志信息,并且在更新之后4皮存儲。通過相同標(biāo)號表示與第 一 實施例中相同的組件,并且省略對這些組件的解釋。
當(dāng)與數(shù)據(jù)寫入處理等對應(yīng)的非易失性表和快照210 (或已經(jīng)生成的快照210和日志)的內(nèi)容中存在改變時,前日志220A和后日志220B是在內(nèi)容被改變之后在非易失性表之間的差別信息。具體地,第一前日志220A以及在提取快照210之后的笫一后日志220B是非易失性表和快照210之間的差別信息。在提取快照210之后的第二或隨后的前日志220A是已經(jīng)生成的前日志220A和快照210的組合與非易失性表之間的差別信息。在提取快照210之后的第二或隨后的后日志220B是已經(jīng)生成的后日志220B和快照210的組合和非易失性表之間的差別信息。換句話說,前日志220A和后日志220B包含相同的信息。盡管前日志220A和后日志220B被解釋為包含相同信息,但是前日志220A和后日志220B不必包含相同的信息。例如,前日志220A和后日志220B中的任一個可^皮配置為包含差別信息。
前日志220A是在實際更新管理信息之前生成的信息。因此,在通過數(shù)據(jù)寫入處理等的執(zhí)行實際更新管理信息之前,基于與如何更新管理信息相關(guān)的更新調(diào)度生成前日志220A。后日志220B是在實際更新管理信息之后生成的信息。因此,在根據(jù)數(shù)據(jù)寫入處理等的數(shù)據(jù)執(zhí)行實際更新管理信息之后,通過使用實際的管理信息生成后日志220B。前日志220A和后曰志220B包括例如圖9中所示的內(nèi)容信息。
前日志220A和后日志220B分別存儲在日志存儲塊中。即使快照的生成發(fā)生改變,以一次寫入的方式在相同日志存儲塊中寫入前日志220A和后日志220B。
以下解釋在第一實施例中如圖12所示的數(shù)據(jù)管理單元141的處理單元在功能方面與第一實施例的差別。當(dāng)存儲器系統(tǒng)10滿足預(yù)定#^時,管理信息存儲單元154在NAND存儲器12的管理信息存儲區(qū)126中存儲作為快照210的管理信息、作為前日志220A的將在管理信息中更新的信息、以及作為后日志220B的在管理信息中的已更新信息。當(dāng)根據(jù)快照210、前日志220A或后日志220B的存儲而改變在第二根指針230中寫入的位置時,管理信息存儲單元154將更新處理應(yīng)用到第二根指針230。
當(dāng)滿足以下作為示例解釋的三個快照存儲條件中的任何一個時,執(zhí)行由管理信息存儲單元154對快照210的存儲
(1) 接收到待機(使存儲器系統(tǒng)10的主體的功耗最小化的指令)、休眠(在預(yù)定時間段內(nèi)不存在訪問時停滯設(shè)備的指令)、或重設(shè)(重新啟動存儲器系統(tǒng)10的指令);
(2) 在NAND存儲器12中的管理信息存儲區(qū)126中為了存儲前曰志220A和后日志220B而提供的日志存儲區(qū)用數(shù)據(jù)充滿;
(3)在NAND存儲器12中的管理信息存儲區(qū)126中為了存儲前曰志220A和后日志220B而提供的日志存儲區(qū)改變?yōu)椴荒軌驁?zhí)行數(shù)據(jù)寫入和擦除的故障區(qū)域(壞塊)。
管理信息存儲單元154存儲前日志220A和后日志220B的時間是通過管理信息寫入單元153執(zhí)行在DRAM 11中存儲的管理信息(非易失性表)的更新的時間。具體地,在寫入數(shù)據(jù)等處理的之前和之后,存儲前日志220A和后日志220B。
當(dāng)存儲器系統(tǒng)10的電源被打開時,管理信息恢復(fù)單元155基于在NAND存儲器12的管理信息存儲區(qū)126中存儲的管理信息存儲信息執(zhí)行針對管理信息的恢復(fù)處理。具體地,管理信息恢復(fù)單元155順序地跟蹤固定區(qū)中的第一根指針240、可變區(qū)1262中的第二根指針230、快照210、前曰志220A、和后日志220B,并確定對應(yīng)于最新快照210的前日志220A和后日志2208是否存在。當(dāng)前日志220A和后日志220B不存在時,管理信息恢復(fù)單元155在DRAM 11中恢復(fù)作為管理信息的快照存儲塊中的快照210。當(dāng)前日志220A和后日志220B存在時,由于程序錯誤和短暫斷路(電源異常關(guān)閉),存儲器系統(tǒng)10的末端是異常末端。因此,管理信息恢復(fù)單元155從快照存儲塊獲取快照210,從日志存儲塊獲取前日志220A或后日志220B,并執(zhí)行在DRAM 11上的快照210上反映前日志220A或后日志220B的管理信息(非易失性表)的恢復(fù)。
以下解釋由管理信息管理單元152執(zhí)行的針對存儲器系統(tǒng)10的管理信息的存儲處理。為了簡單解釋,在第一實施例的圖13的流程圖中,在步驟S16的指令執(zhí)行之后執(zhí)行寫入與前日志220A具有相同內(nèi)容的后日志220B的處理。以下具體解釋這個處理。
圖17是解釋針對前日志和后日志的存儲處理的示圖。當(dāng)前日志220A尚未被存儲在日志存儲塊中時,在步驟S14要確定的更新調(diào)度(前日志)是在管理信息被更新的時候的非易失性表和在快照存儲塊中存儲的快照210之間的差別信息。當(dāng)前日志220A (以下稱為"過去的前日志220A")
28已被存儲在日志存儲塊中時,更新調(diào)度(前日志)是在管理信息被更新的
時候的非易失性表與快照210和過去的前日志220A的結(jié)合之間的差別信息。具體說,如圖17所示,在數(shù)據(jù)寫入(X)被執(zhí)行作為針對第X個數(shù)據(jù)的寫入處理之前,對應(yīng)于數(shù)據(jù)寫入(X)的前日志(X)被存儲在NAND存儲器12中作為前日志220A。由此,例如,信息yl被存儲作為前日志220A。例如在前日志220A (更新調(diào)度)被記錄在DRAM 11上之后,前日志220A被存儲在NAND存儲器12的管理信息存儲區(qū)126中。
隨后,邏輯NAND管理層執(zhí)行在步驟S13接收的指4K例如,在NAND存儲器12的數(shù)據(jù)存儲區(qū)125中寫入(X )用戶數(shù)據(jù)的處理)(步驟S16 )。
此后,根據(jù)所執(zhí)行的處理在DRAM 11中存儲的管理信息被更新。管理信息存儲單元154將管理信息中的已更新信息存儲在NAND存儲器12的管理信息存儲區(qū)126中作為后日志220B。當(dāng)后日志220B尚未被存儲在日志存儲塊中時,后日志220B是在當(dāng)前點的非易失性表與在快照存儲塊中存儲的快照210之間的差別信息。當(dāng)后日志220B (以下稱為"過去的后曰志220B")已經(jīng)存儲在日志存儲塊中時,后日志220B是在當(dāng)前點的非易失性表與在快照210和過去的所述日志的結(jié)合之間的差別信息。
從而,對應(yīng)于數(shù)據(jù)寫入(X)的后日志220B ( X)被存儲在NAND存儲器12中作為后日志220B。此時,信息yl被存儲作為后日志220B。被存儲作為后日志220B的信息yl與,皮存儲作為前日志220A的信息yl相同。
此后,當(dāng)不滿足快照存儲條件(步驟S12的"否"),并且涉及管理信息的更新的指令被接收(步驟S13的"是")時,執(zhí)行以上解釋的處理。換句話說,以和針對第X個數(shù)據(jù)的寫入處理相同的方式,執(zhí)行針對第(X+l)個數(shù)據(jù)的寫入處理。在執(zhí)行作為針對第(X+l)個數(shù)據(jù)的寫入處理的數(shù)據(jù)寫入(X+l)之前,對應(yīng)于數(shù)據(jù)寫入(X+l)的前日志(X+l)被存儲在NAND存儲器12中作為前日志220A。例如,信息y2 4皮存儲作為前曰志220A。在NAND存儲器12的數(shù)據(jù)存儲區(qū)125中執(zhí)行數(shù)據(jù)寫入(X+l),此外,對應(yīng)于數(shù)據(jù)寫入(X+l)的后日志(X+l)被存儲在NAND存儲器12中作為后日志220B。例如,信息y2被存儲作為后日志220B。被存儲作為后日志220B的信息y2與被存儲作為前日志220A的信息y2相同。如上 所述,存儲前日志220A和后日志220B。
以下解釋由管理信息恢復(fù)單元155執(zhí)行的針對存儲器系統(tǒng)10的管理信 息的恢復(fù)處理。圖18是根據(jù)第三實施例對于存儲器系統(tǒng)10的管理信息的 恢復(fù)處理過程的示例的流程圖。如在第一和第二實施例中,存儲器系統(tǒng)IO 連接于主機裝置,并作為主機裝置的次級存儲裝置進行工作。
如在第一實施例中的圖14的步驟S31至S34所述,例如在結(jié)束了短 暫斷路后,主機裝置的電源被打開,并且向存儲器系統(tǒng)10發(fā)出啟動指令。 管理信息恢復(fù)單元155依次讀取NAND存儲器12的管理信息存儲區(qū)126 中的第一根指針240和第二根指針230,并獲得存儲了快照210以及存儲 前日志和后日志(前日志220A和后日志220B )的塊的地址,并獲取快照 210 (步驟S51至S54 )。
此后,管理信息恢復(fù)單元155參考NAND存儲器12中的前日志220A 和后日志220B確定是否已出現(xiàn)短暫斷路(步驟S55 )。例如,當(dāng)在NAND 存儲器12中存在前日志220A和后日志220B時,確定已出現(xiàn)過短暫斷路。 可以通過例如比較前日志220A和后日志220B執(zhí)4亍對于是否已出現(xiàn)過短暫 斷路的確定。在第三實施例中,前日志220A和后日志220B存儲相同的信 息。此后,例如,當(dāng)被存儲作為前日志220A的頁數(shù)和^皮存儲作為后日志 KOB的頁數(shù)彼此不一致時,能夠確定已出現(xiàn)短暫斷路?;贓CC差錯的 存在或不存在、被存儲作為前日志220A的頁的數(shù)據(jù)、以及,皮存儲作為后 日志220B的頁的數(shù)據(jù),可以確定短暫斷路的出現(xiàn)。
當(dāng)出現(xiàn)短暫斷路時(步驟S55的"是"),管理信息恢復(fù)單元155基 于NAND存儲器12中最新的前日志220A和最新的后日志220B檢查已出 現(xiàn)短暫斷路的時間(步驟S56)。
另外,管理信息恢復(fù)單元155確定已出現(xiàn)短暫斷路的時間是否在后日 志220B的存儲期間(步驟S57 )。例如,當(dāng)后日志220B中的最后頁正被 寫入時,該最后頁面無法凈皮讀出。因此,確定在后日志220B的存儲期間 出現(xiàn)了短暫斷路。當(dāng)前日志220A中的最后頁正被寫入時,該最后頁面無法被讀出。因此,確定在前日志220A的存儲期間出現(xiàn)了短暫斷路。當(dāng)日 志被寫入前日志220A的最后頁以及日志未被寫入后日志220B的最后頁 時,確定在數(shù)據(jù)寫入期間出現(xiàn)了短暫斷路。
當(dāng)管理信息恢復(fù)單元155確定已出現(xiàn)短暫斷路的時間是在后日志220B 的存儲期間時(步驟S57的"是"),管理信息恢復(fù)單元155選擇最新的 前日志220A (步驟S58)。另一方面,當(dāng)管理信息恢復(fù)單元155確定已出 現(xiàn)短暫斷路的時間不在后日志220B的存儲期間時(步驟S57的"否"), 管理信息恢復(fù)單元155選擇已完成將被存儲的最新的后日志220B (步驟 S59)。換句話說,當(dāng)前日志220A的最后頁正被寫入,或當(dāng)日志被寫入前 日志2加A的最后頁以及日志未被寫入后日志220B的最后頁時,選擇最新 的后日志220B。
此后,管理信息恢復(fù)單元155從日志存儲塊獲取所選日志(前日志220A 或后日志220B),并將日志擴展至DRAM 11的工作區(qū)112中(步驟S60)。 管理信息恢復(fù)單元155將各個日志從最舊一個開始按順序反映到快照210 上,并恢復(fù)管理信息(非易失性表)(步驟S61)。對于管理信息的恢復(fù) 處理結(jié)束。
另一方面,當(dāng)尚未出現(xiàn)短暫斷路時(步驟S55的"否"),在DRAM 11的管理信息存儲區(qū)111中恢復(fù)管理信息,并且管理信息恢復(fù)過程結(jié)束。
不管由于短暫斷路導(dǎo)致的日志破壞存在與否,管理信息恢復(fù)單元155 都可以選擇前日志220A和后日志220B之一,并且基于被存儲作為前日志 220A的頁數(shù)和被存儲作為后日志220B的頁數(shù)恢復(fù)管理信息。例如,當(dāng)被 存儲作為前日志2加A的頁數(shù)和被存儲作為后日志220B的頁數(shù)相同時,管 理信息恢復(fù)單元155選擇前日志220A并恢復(fù)管理信息。當(dāng)纟皮存儲作為前 曰志2加A的頁數(shù)大于被存儲作為后日志2加B的頁數(shù)時,管理信息恢復(fù)單 元155選擇后日志220B并恢復(fù)管理信息。
如上所述,即使在執(zhí)行該處理之前和之后生成前日志220A和后日志 220B時,通過采用第一和第二實施例的技術(shù),可以減少在NAND存儲器 12中的笫一根指4十240和笫二根指針230的寫入次數(shù),抑止NAND存儲一種方法,即,當(dāng)在前曰志 存儲區(qū)和后日志存儲區(qū)中存儲的日志大小分別超過各個日志存儲區(qū)的日志 存儲塊的大小時,寫入日志的處理的方法。圖19是根據(jù)第四實施例存儲前日志的前日志存儲區(qū)和存儲后日志的 后曰志存儲區(qū)的結(jié)構(gòu)的示例的示圖。和圖15—樣,在圖16中所示的組件 之間,示出第二根指針230、前日志220A、和后日志220B并省略其他組 件。如圖19所示,存儲前日志220A的前日志存儲區(qū)和存儲后日志220B 的后日志存儲區(qū)具有與圖15所示的日志存儲區(qū)相同的結(jié)構(gòu),除了在以下解 釋的日志存儲區(qū)之間提供的指針。存儲前日志220A的前日志存儲區(qū)包括 例如作為兩個日志存儲塊的日志存儲塊50和51。日志存儲塊50在其中存 儲表示跟隨在日志存儲塊50之后獲取的日志存儲塊51的位置的指針(在 圖中,從日志存儲塊50的頂部頁到日志存儲塊51的頂部頁的箭頭)。存 儲后日志220B的后日志存儲區(qū)包括例如作為兩個日志存儲塊的日志存儲 塊60和61。日志存儲塊60具有表示跟隨在日志存儲塊60之后獲取的日 志存儲塊61的位置的指針(在圖中,從日志存儲塊60的頂部頁到日志存 儲塊61的頂部頁的箭頭)。笫二根指針230指示前日志存儲區(qū)中的日志存 儲塊50的頂部頁以及后日志存儲區(qū)中的日志存儲塊60的頂部頁。在圖19中,除了分別在前日志存儲區(qū)和后日志存儲區(qū)中提供的日志鏈 的結(jié)構(gòu)之外,在前日志存儲區(qū)中的日志存儲塊50具有表示在后日志存儲區(qū) 中的日志存儲塊61的位置的指針(在圖中,從日志存儲塊50的頂部頁面 到日志存儲塊61的頂部頁面的箭頭)。在后日志存儲區(qū)中的日志存儲塊 60具有表示在后日志存儲區(qū)中的日志存儲塊51的位置的指針(在圖中, 從日志存儲塊60的頂部頁到日志存儲塊51的頂部頁的箭頭)。除了指示日志存儲塊51 (即在前日志存儲區(qū)中下一個獲取的日志存儲 塊)的位置的指針之外,在前日志存儲區(qū)中的日志存儲塊50具有表示以和獲取日志存儲塊51的相同順序在后日志存儲區(qū)中獲取的日志存儲塊的位 置的指針(在這種情況下,是在第二次獲取的,因為日志存儲塊51是在第 二次獲取的),即,日志存儲塊61。類似地,除了表示日志存儲塊61 (即 在后日志存儲區(qū)中下一個獲取的日志存儲塊)的位置的指針之外,在后日
在后日志存儲區(qū)中獲取的日志存儲塊的位置的指針(在這種情況下,是在 第二次獲取的,因為日志存儲塊61是在第二次獲取的),即,日志存儲塊 61。
如上所述,由于前日志220A和后日志220B存儲相同內(nèi)容的日志信息, 所以前日志220A和后日志220B存儲相同日志信息,除了發(fā)生例如短暫斷 路的異常。因此,在日志存儲塊50的各個頁中存儲的日志與在日志存儲塊 60的相應(yīng)頁中存儲的日志相同。在日志存儲塊51的各個頁中存儲的日志 與在日志存儲塊61的相應(yīng)頁中存儲的日志相同。因此,除了表示日志存儲 塊51的位置的指針之外,在前日志存儲區(qū)中的日志存儲塊50具有表示在 后日志存儲區(qū)中的日志存儲塊61的位置的指針。結(jié)果,作為備份,日志存 儲塊50獲取日志存儲塊61的位置,所述日志存儲塊61存儲與日志存儲塊 51相同的日志信息。類似地,除了表示日志存儲塊61的位置的指針之夕卜, 在后日志存儲區(qū)中的日志存儲塊60具有表示前日志存儲區(qū)中的日志存儲 塊51的位置的指針。因此,作為備階,日志存儲塊60獲取日志存儲塊51 的位置,所迷日志存儲塊51存儲與日志存儲塊61相同的日志信息。盡管 圖中沒有示出,日志存儲塊5具有表示在前日志存儲區(qū)中緊跟在日志存儲 塊51之后獲取的日志存儲塊的位置的指針,以及具有表示在后日志存儲區(qū) 中緊跟在日志存儲塊61之后獲取的日志存儲塊的位置的指針。類似地,盡 管圖中沒有示出,日志存儲塊61具有表示在后日志存儲區(qū)中緊接著日志存 儲塊61獲取的下一 日志存儲塊的位置的指針,以及具有表示在前日志存儲 區(qū)中緊接著日志存儲塊51獲取的下一日志存儲塊的位置的指針。在圖19 中,作為示例,在前日志存儲區(qū)和后日志存儲區(qū)的每個中,在兩個日志存 儲塊(日志存儲塊50和51 ,以及日志存儲塊60和61 )中存儲日志。然而,當(dāng)在前日志存儲區(qū)和后日志存儲區(qū)的每個中在三個或更多個日志存儲塊中 存儲日志時,情況相同。
如上所述,在前日志存儲區(qū)和后日志存儲區(qū)中的日志存儲塊中使得指 針增至兩個。這樣,即使在通過短暫斷路等損壞日志時也能夠容易執(zhí)行日
志的恢復(fù)。例如,當(dāng)在日志存儲塊51中寫入期間發(fā)生短暫斷路以及由此損 壞在被寫入頁中的日志數(shù)據(jù)以及其低級頁時,可通過使用日志存儲塊50 的指向日志存儲塊61的指針而從日志存儲塊61獲得日志。因此,可容易 地恢復(fù)日志存儲塊51的日志。如上所述,由于指針增至兩個,無論在什么 時間發(fā)生短暫斷路都可防止日志信息丟失。通過使用前日志220A和后日 志220B中的任一個,可容易地將存儲器系統(tǒng)10返回至在發(fā)生短暫斷路之 前的狀態(tài)。
第五實施例
在上述實施例中,可以復(fù)用和存儲第二根指針和第 一根指針。 圖20是根據(jù)本發(fā)明笫五實施例的笫一根指針的復(fù)用的實例的示圖。第 一根指針240A至240C存儲在NAND存儲器的管理信息存儲區(qū)的固定區(qū) 1261中的三個不同塊中。在這種情況下,當(dāng)執(zhí)行第一根指針的更新時,按 240A、 240B和240C的順序執(zhí)行各個塊中的寫入。當(dāng)?shù)谝桓羔槾鎯K用 數(shù)據(jù)充滿時,執(zhí)行對該塊的擦除以及在所擦除的塊中寫入表示新第二根指 針存儲塊的位置的笫一# 指針240的處理。在這種情況下,如以上解釋的 情況,以逐塊的順序執(zhí)行擦除和寫入處理。當(dāng)執(zhí)行塊的擦除和寫入處理時, 通過將第一根指針增至三個,即第一個指針240A至240C,可以縮短僅在 一個塊中存儲第一根指針240的狀態(tài)。盡管第一根指針增至三個,第一根 指針也可增至兩個,或者可按照等于或大于將第一根指針增至四個的情況 來復(fù)用。通過將第一根指針240按等于或大于四個來復(fù)用,必可將第一根 指針增至兩個。
圖21是根據(jù)本發(fā)明第五實施例的第二根指針的復(fù)用的實例的示圖。如 圖21所示,第二才艮指針230A和230B存儲在NAND存儲器12的管理信 息存儲區(qū)126的可變區(qū)1262的兩個不同塊中。例如,假設(shè)將相同信息存儲在存儲兩個第二根指針230A和230B的塊的相同頁位置中。在存儲第二根指針230A和230B時,第二根指針230A在存儲快照之前被存儲,笫二根指針230B在快照的存儲結(jié)束之后被存儲。通過設(shè)置這種存儲規(guī)則,當(dāng)?shù)诙羔?30A和230B中的頁面數(shù)不同時,可以確定發(fā)生了短暫斷路,以及可以在短暫斷路期間執(zhí)行啟動處理,而無需檢查NAND存儲器12中的日志220。在以上的解釋中,第二根指針增至兩個。然而,可對于第二根指針采用等于或大于三個的復(fù)用。
當(dāng)對第二根指針230復(fù)用時,在第一根指針240中存儲表示存儲了被復(fù)用的各個第二根指針230的塊的位置的信息。
根據(jù)笫五實施例,由于第一根指針240和第二根指針230被復(fù)用,所以存在這樣的效果,即可以防止各種類型的信息丟失。
在以上解釋中,提供第二根指針230作為指示快照210、前日志220A、和后日志220B的存儲位置的指針,以及提供第一根指針240作為指示第二根指針230的存儲位置的指針。因此,以兩個級別提供指針。然而,例如,可以以一個級別提供指針。
前日志220A和后日志220B的頂部指針可存儲在快照210中,而非第二根指針存儲塊中。
在以上解釋中,電荷積聚層不限于浮置柵電極類型,并且可以是包括諸如MONOS (金屬氧化物-氮氧化物半導(dǎo)體)結(jié)構(gòu)的氮化硅膜的電荷陷阱類型,以及其它系統(tǒng)。
如上所述,4艮據(jù)本發(fā)明,存在這樣的效果,在具有包括多值存儲器的NAND閃存的存儲器系統(tǒng)中,可在存儲表示NAND閃存中存儲的數(shù)據(jù)的存儲位置的管理信息的同時提高數(shù)據(jù)恢復(fù)的可靠性。
對本領(lǐng)域技術(shù)人員來說,其他的優(yōu)點和修改是顯而易見的。因此,本發(fā)明在其更寬的方面不限于這里所述的代表性實施方式的具體細節(jié)。因而,可以進行各種修正而不脫離所附的權(quán)利要求書及其等價描述所限定的本發(fā)明的總的發(fā)明概念的精神和范圍。
權(quán)利要求
1.一種存儲器系統(tǒng),包括易失性第一存儲單元;非易失性第二存儲單元;和控制器,其在主機裝置和第二存儲單元之間通過第一存儲單元來執(zhí)行數(shù)據(jù)傳輸,將包括在該存儲器系統(tǒng)的啟動操作期間存儲在第二存儲單元的數(shù)據(jù)的存儲位置的管理信息存儲在第一存儲單元,并且在更新存儲的管理信息的同時,基于存儲的管理信息在第一和第二存儲單元中執(zhí)行數(shù)據(jù)管理,其中所述第二存儲單元在其中存儲處于最新狀態(tài)的存儲在所述第一存儲單元中的管理信息,以及管理信息存儲信息,該管理信息存儲信息包括指明處于最新狀態(tài)的所述管理信息的存儲位置的存儲位置信息;以及在所述存儲器系統(tǒng)的啟動操作期間由所述控制器讀取所述存儲位置信息,該存儲位置信息包括指明在所述第二存儲單元中最新狀態(tài)的管理信息的存儲位置的第二指針,以及指明所述第二指針的存儲位置的第一指針,所述第一指針存儲在固定區(qū)中的第一指針存儲區(qū)中,在所述第二存儲單元中第一指針的存儲位置是固定的,并且所述第二指針存儲在所述第二存儲單元中除了固定區(qū)域之外的區(qū)域中的第二指針存儲區(qū)中。
2. 根據(jù)權(quán)利要求l所述的存儲器系統(tǒng),其中所述控制器包括管理信息 存儲單元,當(dāng)所述存儲器系統(tǒng)滿足預(yù)定條件時,所述管理信息存儲單元將 所述第 一存儲單元中存儲的管理信息存儲到所述第二存儲單元中作為最新 狀態(tài)的管理信息,以及將表示最新狀態(tài)的所存儲的管理信息在第二存儲單 元的存儲位置的第二指針存儲到所述第二存儲單元中作為所述存儲位置信 息。
3. 根據(jù)權(quán)利要求2所述的存儲器系統(tǒng),其中 所述第二指針存儲區(qū)包括作為數(shù)據(jù)擦除單位的塊;以及當(dāng)不能夠在所述第二指針存儲區(qū)的一個塊中寫入第二指針,并且在新塊中存儲所述第二指針時,所迷管理信息存儲單元將所述新塊的存儲位置 設(shè)置為所述第 一指針,以及將所述存儲位置作為所述存儲位置信息與所述 第二指針一起存儲。
4. 根據(jù)權(quán)利要求l所述的存儲器系統(tǒng),其中所述控制器包括管理信息 恢復(fù)單元,在所述存儲器系統(tǒng)的啟動操作期間,在讀取所述固定區(qū)中存儲 的第一指針以及獲取所述第二指針的存儲位置之后,所述管理信息恢復(fù)單 元讀取該第二指針,以及讀取所述第二存儲單元中的最新狀態(tài)的管理信息, 以及在所述第 一存儲單元中恢復(fù)所述管理信息。
5. 根據(jù)權(quán)利要求2所述的存儲器系統(tǒng),其中 所述第二存儲單元包括快照存儲區(qū),用于存儲快照,在所述快照中存儲在所述第一存儲 單元中的最新狀態(tài)的管理信息;以及日志存儲區(qū),用于在所述管理信息發(fā)生改變時存儲作為在所述改 變之前和之后的管理信息的差別信息的日志;以及 在滿足所述預(yù)定條件時,所述管理信息存儲單元將與所述笫一存儲單 元中的管理信息相關(guān)的快照或日志存儲在所述快照存儲區(qū)或所述日志存儲 區(qū)中。
6. 根據(jù)權(quán)利要求5所述的存儲器系統(tǒng),其中當(dāng)所述日志存儲區(qū)充滿日 志時,或所述日志存儲區(qū)改變?yōu)椴荒軌虼鎯?shù)據(jù)的故障區(qū)時,所述管理信 息存儲單元從所述第 一存儲單元獲取所迷快照,以及在所述快照存儲區(qū)中 存儲所獲取的快照。
7. 根據(jù)權(quán)利要求5所述的存儲器系統(tǒng),其中所述管理信息存儲單元根 據(jù)要存儲的日志大小在所述日志存儲區(qū)中依次獲取作為數(shù)據(jù)擦除單位的 塊,以及在所述塊中記錄指明要下一個獲取的塊的位置的第一塊獲取位置 信息。
8. 根據(jù)權(quán)利要求7所述的存儲器系統(tǒng),其中 所述日志存儲區(qū)包括,更新前日志存儲區(qū),用于在其中存儲作為管理信息^皮更新之前存儲的曰志的更新前日志;以及更新后日志存儲區(qū),用于在其中存儲與所述更新前日志具有相同內(nèi)容 的并且作為管理信息被更新之后存儲的日志的更新后日志;以及所述管理信息存儲單元依次地獲取各個所述塊作為數(shù)據(jù)擦除單位,并根據(jù)要存儲的所述更新 前日志或所述更新后日志的大小獲取相同的量;除了在所述更新前塊存儲區(qū)中表示下一個獲取的塊的位置的第一塊獲 取位置信息之外,以在所述更新前日志存儲區(qū)中下一個獲取的塊的獲取次 序的相同次序,在所述更新前日志存儲區(qū)的塊中記錄表示在所述更新后曰 志存儲區(qū)中獲取的塊的位置的笫二塊獲取位置信息;以及除了在所述更新后塊存儲區(qū)中獲取表示下一獲取的塊的位置的位置信 息的第一塊之外,以在所述更新后日志存儲區(qū)中下一獲取的塊的獲取次序 的相同次序,在所述更新后日志存儲區(qū)的塊中記錄表示在所述更新前日志 存儲區(qū)中獲取的塊的位置的第二塊獲取位置信息。
9. 根椐權(quán)利要求2所述的存儲器系統(tǒng),其中, 所述第一指針存儲區(qū)包括作為數(shù)據(jù)擦除單位的塊;以及當(dāng)所述第一指針存儲區(qū)中的塊充滿數(shù)據(jù)時,所述管理信息存儲單元在 擦除之后的所述塊中寫入新版本的第 一指針。
10. 根據(jù)權(quán)利要求9所述的存儲器系統(tǒng),其中所述第 一指針被復(fù)用并且存儲在所述第二存儲單元的固定區(qū)中的不同 塊中;以及當(dāng)更新所述第一指針時,所述管理信息存儲單元依次在所述第一指針 存儲區(qū)中的各個復(fù)用的塊中寫入第一指針。
11. 根據(jù)權(quán)利要求10所述的存儲器系統(tǒng),其中當(dāng)所述第一指針存儲區(qū) 中的塊充滿數(shù)據(jù)時,在擦除所述第一指針存儲區(qū)中的所述塊之后,所述管 理信息存儲單元為每個復(fù)用的塊依次執(zhí)行在所述塊中寫入新版本的第一指 針的處理。
12. 根據(jù)權(quán)利要求2所述的存儲器系統(tǒng),其中所述第二指針存儲區(qū)包括作為數(shù)據(jù)擦除單位的塊,并且所述第二指針被復(fù)用以及被存儲在所述第二存儲單元的不同塊中;以及所述管理信息存儲單元將表示第二指針存儲區(qū)中所有復(fù)用的塊的存儲 位置的日志塊位置信息存儲在所述第一指針中。
13. 根據(jù)權(quán)利要求l所述的存儲器系統(tǒng),其中 所述第一存儲單元是DRAM;以及 所述第二存儲單元是NAND閃存。
14. 一種存儲器系統(tǒng),包括 易失性第一存儲單元;非易失性第二存儲單元,包括可以存儲多值數(shù)據(jù)的存儲器單元;以及 控制器,其在主機裝置和笫二存儲單元之間通過笫 一存儲單元來執(zhí)行 數(shù)據(jù)傳輸,將包括在該存儲器系統(tǒng)的啟動操作期間存儲在第二存儲單元的 數(shù)據(jù)的存儲位置的管理信息存儲在第 一存儲單元,并且在更新存儲的管理 信息的同時,基于存儲的管理信息在第一和第二存儲單元中執(zhí)行數(shù)據(jù)管理, 其中所述第二存儲單元包括快照存儲區(qū),用于將滿足預(yù)定條件時獲取的以及作為管理信息的 快照存儲在所述第一存儲單元中;曰志存儲區(qū),用于當(dāng)在所述管理信息中發(fā)生改變時存儲作為在所 述改變之前和之后的差別信息的日志;以及指針存儲區(qū),用于存儲表示所述快照存儲區(qū)的存儲位置的第 一指針;所述日志存儲區(qū)根據(jù)要存儲的日志的大小依次獲取作為數(shù)據(jù)擦除 單位的各個塊;在所述快照中存儲指示在所述日志存儲區(qū)中存儲的頂部日志的存 儲位置的第二指針;以及所述塊在其中存儲表示下一個要獲取的塊的位置的笫一塊獲取位 置信息。
15. 根據(jù)權(quán)利要求14所述的存儲器系統(tǒng),其中 所述日志存儲區(qū)包括更新前日志存儲區(qū),用于在其中存儲作為管理信息被之前存儲的日志的更新前日志;以及更新后日志存儲區(qū),用于在其中存儲與所述更新前日志具有相同內(nèi)容的并且作為管理信息被更新之后存儲的日志的更新后日志;所述更新前日志存儲區(qū)和所述更新后日志存儲區(qū)依次地獲取各個所述 塊作為數(shù)據(jù)擦除單位,并且根據(jù)要存儲的所述更新前日志或所迷更新后日 志的大小獲取相同的數(shù)量;除了表示在所述更新前塊存儲區(qū)中下一個獲取的塊的位置的第 一塊獲 取位置信息的之外,所述更新前日志存儲區(qū)的塊中還存儲第二塊獲取位置 信息,該第二塊獲取位置信息表示和在所述更新前日志存儲區(qū)中下一個獲 取的塊的獲取次序相同的次序在所迷更新后日志存儲區(qū)中獲取的塊的位 置;以及除了表示在所述更新后塊存儲區(qū)中下一個獲取的塊的位置的第 一塊獲 取位置信息之外,所述更新后日志存儲區(qū)的塊中還存儲笫三塊獲取位置信 息,該第三塊獲取位置信息表示和在所述更新后日志存儲區(qū)中下一個獲取 的塊的獲取次序相同的次序在所述更新前日志存儲區(qū)中獲取的塊的位置。
16. 根據(jù)權(quán)利要求14所述的存儲器系統(tǒng),其中 所述第一指針存儲區(qū)包括作為數(shù)據(jù)擦除單位的塊,并被提供在所述笫二存儲單元中的固定區(qū)中,在該固定區(qū)中存儲的塊的位置是固定的;以及 所述控制器包括管理信息存儲單元,當(dāng)所述第一指針存儲區(qū)中的塊充 滿數(shù)據(jù)時,所述管理信息存儲單元在擦除之后的塊中寫入新版本的笫一指 針。
17. 根據(jù)權(quán)利要求16所述的存儲器系統(tǒng),其中所述第一指針凈皮復(fù)用并且存儲在所述笫二存儲單元的不同塊中;以及 當(dāng)更新所述第一指針時,所述管理信息存儲單元依次在所迷第一指針 存儲區(qū)中的各個復(fù)用的塊中寫入第一指針。
18. 根據(jù)權(quán)利要求17所述的存儲器系統(tǒng),其中當(dāng)所述第一指針存儲區(qū) 中的塊充滿數(shù)據(jù)時,在擦除所述第一指針存儲區(qū)中的塊之后所述管理信息 存儲單元執(zhí)行將新版本的第 一指針的寫入所述塊中的處理。
19. 根據(jù)權(quán)利要求14所述的存儲器系統(tǒng),其中所述第一指針存儲區(qū)包 括作為數(shù)據(jù)擦除單位的塊;并且所述第一指針被復(fù)用以及被存儲在所述第 二存儲單元的不同塊中。
20. 根據(jù)權(quán)利要求14所述的存儲器系統(tǒng),其中 所述第一存儲單元是DRAM;以及 所述第二存儲單元是NAND閃存。
全文摘要
一種存儲器系統(tǒng)包括易失性第一存儲單元、非易失性第二存儲單元、和控制器。該控制器執(zhí)行數(shù)據(jù)傳輸,將包括存儲在第二存儲單元的數(shù)據(jù)的存儲位置的管理信息存儲在第一存儲單元,并且在更新管理信息的同時,執(zhí)行數(shù)據(jù)管理。第二存儲單元具有管理信息存儲區(qū),用于存儲管理信息存儲信息,其包括最新狀態(tài)的管理信息以及管理信息的位置信息。存儲位置信息在存儲器系統(tǒng)的啟動操作期間通過控制器來讀取,并包括表示在管理信息存儲區(qū)中最新狀態(tài)的管理信息的存儲位置的第二指針以及表示第二指針的存儲位置的第一指針。第一指針存儲在第二存儲單元的固定區(qū)中,第二指針存儲在第二存儲單元中不包括固定區(qū)的區(qū)域中。
文檔編號G11C16/02GK101681313SQ200980000132
公開日2010年3月24日 申請日期2009年2月10日 優(yōu)先權(quán)日2008年2月29日
發(fā)明者初田幸輔, 松崎秀則, 檜田敏克, 淺野滋博, 矢野純二, 菅野伸一 申請人:株式會社東芝