專利名稱:存儲器系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及一種使用非易失性半導體存儲裝置的存儲器系統(tǒng)。
技術背景一些個人計算機(PC)使用硬盤裝置作為次級存儲裝置。在這些PC中,已知這樣的技術,該技術用于*已存儲在硬盤裝置中的數(shù)據(jù)以防止 數(shù)據(jù)由于某一故障而變得無效。例如,當檢測到改變硬盤裝置中的數(shù)據(jù)的 動作時,取得一快照作為改變之前的數(shù)據(jù)的*復本,并且產生對數(shù)據(jù)所進行的改變的日志。接著,每隔預定時間重復以下處理取得一新快照, 使過去在取得新快照之前而取得的日志無效,并且產生新日志(例如,參 見美國專利申請7>開第2006/0224636號)。在數(shù)據(jù)由于某一原因而變得無 效的情況下,可通過參考快照和日志而恢復數(shù)據(jù)。通常存在兩種類型的日 志更新前日志和更新后日志。更新前日志為在數(shù)據(jù)的更新之前作為指示 數(shù)據(jù)將如何被更新的更新計劃而產生的日志。另一方面,更新后日志為用 于在數(shù)據(jù)實際上被更新之后核準數(shù)據(jù)的更新的日志。近年來,作為非易失性半導*儲裝置的NAND閃速存儲器的容量已 顯著增加。結果,包括具有NAND閃速存儲器作為次級存儲裝置的存儲器 系統(tǒng)的PC已^v實際使用。然而,不能像在存儲于具有硬盤裝置作為次 級存儲裝置的個人計算機中的數(shù)據(jù)的備份的情況下一樣地將美國專利申請 公開第2006/0224636號中所公開的技術應用于存儲于具有NAND閃速存 儲器作為次級存儲裝置的這種個人計算機中的數(shù)據(jù)的備份。這是因為使用 多值存儲器技術來增加NAND閃速存儲器的容量,該多值存儲器技術可將 等于或大于2個位的多個數(shù)據(jù)(多值數(shù)據(jù))存儲在一個存儲器單元中。配置多值存儲器的存儲器單元具有場效晶體管結構,該場效晶體管結 構具有層疊的柵極結構,其中柵極絕緣膜、浮動柵電極、柵極間絕緣膜和 控制柵電極按順序層疊在溝道區(qū)域上,且可根據(jù)累積在浮動柵電極中的電 子的數(shù)目而設定多個閾值電壓。為了使得可以基于該多個閾值電壓而執(zhí)行 多值存儲,需要使與一個數(shù)據(jù)對應的閾值電壓的分布極窄。例如,關于可存儲四個值的多值存儲器,存在這樣的多值存儲器,其 在一個存儲器單元中包括一低位的頁和一 高位的頁,且通過在各頁中寫入1位數(shù)據(jù)而存儲2個位(四個值)。在將數(shù)據(jù)寫入這種多值存儲器中的方 法中,在將數(shù)據(jù)寫入第一存儲器單元的低位頁(lower order page)中之后, 將數(shù)據(jù)寫入與第一存儲器單元鄰近的存儲器單元(第二存儲器單元)的低 位頁中。在將數(shù)據(jù)寫入該鄰近的存儲器單元中之后,將數(shù)據(jù)寫入第一存儲 器單元的高位頁(higher order page)中(例如,參見JP-A 2004-192789 (KOKAI))。然而,在這種多值存儲器中,數(shù)據(jù)被較早寫入其中的第一存儲器單元 的閾值電壓由于數(shù)據(jù)被較晚寫入其中且與第 一存儲器單元鄰近的第二存儲 器單元的閾值電壓而波動。因此,在多值存儲器中,很可能發(fā)生低位頁中 斷(break),其中如果在將數(shù)據(jù)寫入某一存儲器單元的高位頁中時由于例 如電源的異常隔離而暫時中止寫入,則數(shù)據(jù)被較早被寫入其中的低位頁中 的數(shù)據(jù)也中斷。因此,當將存儲日志且接著進行備除的常規(guī)技術應用于使用NAND閃 速存儲器的存儲器系統(tǒng)時,存在的問題在于,如果在日志的寫入期間發(fā)生 電源的異常隔離,則當前正被寫入的日志和甚至已被存儲的日志中斷。當在執(zhí)行數(shù)據(jù)的寫入時發(fā)生程序錯誤時,執(zhí)行數(shù)據(jù)的重寫。然而,通 常,尚未考慮到在這種情況下產生日志的方法,具體地,當在日志的寫入 期間進一步發(fā)生電源的異常隔離時產生包括復位期間的處理的日志的方 法。發(fā)明內容才艮據(jù)本發(fā)明的一方面, 一種存儲器系統(tǒng)包括易失性第一存儲單元; 非易失性第二存儲單元,其包括可存儲多值數(shù)據(jù)的存儲器單元;以及控制 器,其通過所述第一存儲單元而執(zhí)行在主機設備與所述第二存儲單元之間 的數(shù)據(jù)傳送,將管理信息存儲在所述第一存儲單元中,且在更新所存儲的 管理信息時基于所存儲的管理信息而執(zhí)行所述第一和第二存儲單元中的數(shù) 據(jù)管理,其中所述管理信息包括在所述存儲器系統(tǒng)的起動操作期間存儲在 所述第二存儲單元中的數(shù)據(jù)的存儲位置。所述控制器包括管理信息存儲 單元,其在滿足預定條件時將存儲在所述第一存儲單元中的管理信息存儲 在所述第二存儲單元中作為快照,且在所述第二存儲單元中存儲作為在所 述管理信息中發(fā)生改變之前所存儲的管理信息的更新差異信息的前日志 (pre-log)和作為在所述管理信息中發(fā)生所述改變之后所存儲的管理信息 的更新差異信息的后日志(post-log);以及管理信息恢復單元,當所述前 日志或所述后日志在所述起動操作期間存在于所述第二存儲單元中時,所 述管理信息恢復單元基于所述快照以及所述日志或所述后日志而執(zhí)行所述 第一存儲單元中的管理信息的恢復,并且當所述前日志和所述后日志在所述起動操作期間不存在于所述第二存儲單元中時,所述管理信息恢復單元 基于所述快照而執(zhí)行所述第一存儲單元中的管理信息的恢復。當在作為所 述前日志的存儲之后的更新處理而執(zhí)行所述第二存儲單元中的數(shù)據(jù)的寫入 時發(fā)生程序錯誤時,所述管理信息存儲單元在再次執(zhí)行數(shù)據(jù)寫入之后存儲 快照而不執(zhí)行新日志的寫入。才艮據(jù)本發(fā)明的另一方面, 一種存儲器系統(tǒng)包括易失性第一存儲單元; 非易失性第二存儲單元,其包括可存儲多值數(shù)據(jù)的存儲器單元;以及控制 器,其通過所述第 一存儲單元而執(zhí)行在主機設備與所述第二存儲單元之間 的數(shù)據(jù)傳送,將管理信息存儲在所述第一存儲單元中,且在更新所存儲的 管理信息時基于所存儲的管理信息而執(zhí)行所述第一和第二存儲單元中的數(shù) 據(jù)管理,其中所述管理信息包括在所述存儲器系統(tǒng)的起動操作期間存儲在 所述第二存儲單元中的數(shù)據(jù)的存儲位置。所述控制器包括管理信息存儲 單元,其在滿足預定條件時將存儲在所述第一存儲單元中的管理信息存儲在所述笫二存儲單元中作為快照,且在所述第二存儲單元中存儲作為在所 述管理信息中發(fā)生改變之前所存儲的管理信息的更新差異信息的前日志和 作為在所述管理信息中發(fā)生所述改變之后所存儲的管理信息的更新差異信息的后日志;以及管理信息恢復單元,當所述前日志或所述后日志在所述 起動操作期間存在于所述第二存儲單元中時,所述管理信息恢復單元基于 所述快照以及所述前日志或所述后日志而執(zhí)行所述第一存儲單元中的管理 信息的恢復,并且當所述前日志和所述后日志在所^動操作期間不存在 于所述第二存儲單元中時,所述管理信息恢復單元基于所述快照而執(zhí)4亍所 述第一存儲單元中的管理信息的恢復。當在作為所述前日志的存儲之后的 更新處理而執(zhí)行所述第二存儲單元中的數(shù)據(jù)的寫入時發(fā)生程序錯誤時,所 述管理信息存儲單元再次存儲與數(shù)據(jù)的重寫處理對應的前日志,并且在完 成所述重寫處理之后,在存儲與所述重寫處理對應的后日志之后,存儲與 發(fā)生所述程序錯誤之前所存儲的所述前日志對應的后曰志。
圖1為根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)的配置的實例的框圖;圖2為NAND存儲器的任意塊的配置的實例的電路圖;圖3A為DRAM的功能配置的示意圖,且圖3B為NAND存儲器的功能配置的示意圖;圖4為用于管理存儲在存儲器系統(tǒng)中的數(shù)據(jù)的層結構的實例的圖;圖5為高速緩沖存儲器管理信息表的實例的圖;圖6為邏輯NAND管理信息表的實例的圖;圖7為NAND內邏輯-物理轉換信息表的實例的圖;圖8為存儲在管理信息存儲區(qū)中的管理信息存儲信息的內容的實例的示意圖;圖9描繪日志的實例;圖IO為圖1中所示的驅動控制單元的功能配置的實例的框圖; 圖11為圖10中所示的數(shù)據(jù)管理單元的功能配置的實例的框圖;8圖12為對存儲器系統(tǒng)的管理信息的存儲處理程序的實例的流程圖; 圖13為用于解釋對前日志和后日志的存儲處理的圖; 圖14為對存儲器系統(tǒng)的管理信息的恢復處理程序的實例的流程圖; 圖15A至圖15D為存儲器單元中的數(shù)據(jù)與存儲器單元的閾值電壓之間的關系以及NAND存儲器中的寫入的順序的實例的圖;圖16A至圖16C為用于解釋用于管理信息的恢復的日志的選擇方法的圖(1);圖17A至圖17C為用于解釋用于管理信息的恢復的日志的選擇方法的 圖(2);圖18為用于解釋在正常時間產生前日志和后日志的方法的圖;圖19為用于解釋在發(fā)生數(shù)據(jù)寫入餘溪時產生日志的方法的實例的圖;以及圖20為用于解釋在發(fā)生數(shù)據(jù)寫入鐐溪時產生日志的方法的另一實例 的圖。
具體實施方式
下面參考附圖詳細地解#^艮據(jù)本發(fā)明的存儲器系統(tǒng)的示例性實施例。 本發(fā)明不受此實施例限制。 實施例根據(jù)本發(fā)明的第 一 實施例的存儲器系統(tǒng)包括非易失性半導體存儲裝 置,且用作諸如個人計算機的主機設備的次級存儲裝置(SSD:固態(tài)驅動 器)。存儲器系統(tǒng)具有存儲主機設備請求寫入的數(shù)據(jù)和讀出主機設備請求 讀出的數(shù)據(jù)并將數(shù)據(jù)輸出至主機設備的功能。圖l為根據(jù)本發(fā)明的第一實 施例的存儲器系統(tǒng)10的配置的實例的框圖。該存儲器系統(tǒng)10包括作為第 一存儲單元的DRAM (動態(tài)隨機存取存儲器)11、作為第二存儲單元的 NAND閃速存儲器(在下文中為"NAND存儲器,,)12、電源電路13,以及 驅動控制單元14。DRAM 11用作用于數(shù)據(jù)傳送、管理信息記錄或工作區(qū)的存儲單元。具體地,當DRAM 11用作用于數(shù)據(jù)傳送的存儲單元時,DRAM 11用于在 將數(shù)據(jù)寫入NAND存儲器12中之前暫時存儲主機設備請求寫入的數(shù)據(jù), 且DRAM 11用于從NAND存儲器12讀出主機設備請求讀出的數(shù)據(jù)且暫 時存儲所讀取的數(shù)據(jù)。當DRAM 11用作用于管理信息記錄的存儲單元時, DRAM 11用于存儲管理信息,該管理信息用于管理在DRAM 11和NAND 存儲器12中存儲的數(shù)據(jù)的存儲位置。當DRAM 11用作用于工作區(qū)的存儲 單元時,DRAM 11用于,例如,在恢復管理信息時所使用的前日志和后 日志(更新前日志和更新后日志)的擴展期間。
NAND存儲器12用作用于將數(shù)據(jù)存儲在其中的存儲單元。具體地, NAND存儲器12將由主機設備指定的數(shù)據(jù)存儲在其中,且將由DRAM 11 管理的管理信息存儲在其中以用于M。在圖1中,作為實例示出了包括 四個信道120A至120D的NAND存儲器12。這些信道120A至120D中的 每一個包括兩個封裝121,每一個封裝包括具有預定大小(例如,2 GB) 的存儲容量的八個芯片122。通過驅動控制單元14和總線15A至15D而 連接信道120A至120D。
電源電路13接收外部電源且從外部電源產生待供應至存儲器系統(tǒng)10 的各單元的多個內部電源。電源電路13檢測外部電源的狀態(tài),即,上升沿 或下降沿,基于所檢測的狀態(tài)而產生通電復位信號,且將通電復位信號輸 出至驅動控制單元14。
驅動控制單元14控制DRAM 11和NAND存儲器12。如稍后詳細解 釋的,例如,驅動控制單元14根據(jù)來自電源電路13的通電復位信號執(zhí)行 對管理信息的恢復處理和對管理信息的存儲處理。驅動控制單元14通過 ATA接口 (I/F)而將數(shù)據(jù)傳輸至主機設備和從主機設備接收數(shù)據(jù),且通 過RS232CI/F而將數(shù)據(jù)傳輸至除^i殳備和從除^i殳備接收數(shù)據(jù)。此夕卜,驅 動控制單元14輸出控制信號,該控制信號用于控制在存儲器系統(tǒng)10的外 部上設置的用于狀態(tài)顯示的LED的接通/斷開。
下面詳細解釋NAND存儲器12的配置。通過在基板上將多個塊(擦 除單位區(qū))排成陣列而配置NAND存儲器12,其中該多個塊為數(shù)據(jù)擦除200980000143.X
說明書第7/25頁
的單位。圖2為NAND存儲器12的任意塊的配置的實例的電路圖。在圖 2中,將左右方向i殳定為X方向,且將垂直于X方向的方向i殳定為Y方向。
NAND存儲器12的每個塊BLK包括沿著X方向按順序排成陣列的 (m+l) ( m為等于或大于0的整數(shù))個NAND串NS。每個NAND串 NS具有(n+l) (n為等于或大于0的整數(shù))個存儲器單元晶體管MT0 至MTn,這些存儲器單元晶體管MT0至MTn共享在Y方向上彼此鄰近 的存儲器單元晶體管MT之間的擴散區(qū)域(源極區(qū)域或漏極區(qū)域)。此夕卜, 存儲器單元晶體管MT0至MTn在Y方向上串聯(lián)連接。另夕卜,選擇晶體管 ST1和ST2排列在該(n+l)個存儲器晶體管MT0至MTn的行的兩端處。
每個存儲器單元晶體管MT0至MTn均為MOSFET (金屬氧化物半 導體場效應晶體管),其具有形成在半導體M上的層疊的柵極結構。該
(浮動柵電極)以及通過柵極間絕緣膜而形成在電荷累積層上的控制柵電 極。此外,存儲器單元晶體管MTO至MTn為多值存儲器,其中閾值電壓 根據(jù)累積在浮動柵電極中的電子的數(shù)目而改變,并且可根據(jù)閾值電壓的差 異而存儲兩個或更多個位數(shù)據(jù)。在第一實施例中,假定存儲器單元晶體管 MT為多值存儲器。
字線WL0至WLn分別連接至每個NAND串NS的存儲器單元晶體管 MT0至MTn的控制柵電極。NAND串NS中的每一個中的存儲器單元晶 體管MTi (i-0至n)通過同一字線(i-0至n)而共同連接。換句話說, 在塊BLK中的同一行上存在的存儲器單元晶體管MTi的控制柵電極連接 至同一字線WLi。連接至同一字線WLi的一組(m+l)個存儲器單元晶體 管MTi為形成一個頁的單位。在NAND存儲器12中,以該頁單位來執(zhí)行 數(shù)據(jù)的寫入和讀出。
位線BL0至BLm分別連接至一個塊BLK中的(m+l)個選擇晶體管 ST1的漏極。選擇柵極線SGD共同地連接至每個NAND串NS的選擇晶 體管ST1的柵極。選擇晶體管ST1的源極連接至存儲器單元晶體管MT0 的漏極。類似地,源極線SL共同地連接至一個塊BLK中的(m+l)個選擇晶體管ST2的源極。選擇柵極線SGS共同地連接至每個NAND串NS 的選擇晶體管ST2的柵極。選擇晶體管ST2的漏極連接至存儲器單元晶體 管MTn的源極。
盡管未在圖中示出,但一個塊BLK中的位線BLj (j=0至m)將選擇 晶體管ST1的漏極共同連接在其它塊BLK的位線BLj之間。換句話說, 塊BLK中的同 一列中的NAND串NS通過同 一位線BLj而連接。
接下來解釋DRAM 11和NAND存儲器12的功能配置。圖3A為 DRAM 11的功能配置的示意圖,且圖3B為NAND存儲器12的功能配置 的示意圖。如圖3A中所示,DRAM11包括寫入高速緩沖存儲器區(qū)、讀取 高速緩沖存儲器區(qū)RC、暫時存儲區(qū)111、以及當恢復管理信息時使用的工 作區(qū)112,在該寫入高速緩沖存儲器區(qū)中存儲有主機設備請求寫入的數(shù)據(jù), 在該讀取高速緩沖存儲器區(qū)RC中存儲有主機設備請求讀出的數(shù)據(jù),在該 暫時存儲區(qū)111中存儲有用于管理存儲在DRAM 11和NAND存儲器12 中的數(shù)據(jù)的存儲位置的管理信息。
如圖3B中所示,NAND存儲器12包括數(shù)據(jù)存儲區(qū)125和管理信息存 儲區(qū)126,在該數(shù)據(jù)存儲區(qū)125中存儲有主機設備請求寫入的數(shù)據(jù),在該 管理信息存儲區(qū)126中存儲有在DRAM 11的暫時存儲區(qū)111中所管理的 管理信息。在該實例中,將NAND存儲器12中的數(shù)據(jù)寫入和讀出單位設 定為頁大小的單位。將擦除單位設定為塊大小的單位。因此,將用于存儲 以塊大小的單位管理的NAND存儲器12的各個塊的區(qū)進一步劃分成頁大 小單位的區(qū)。
下面解釋在DRAM 11的暫時存儲區(qū)111中所管理的管理信息。圖4 為用于管理存儲在存儲器系統(tǒng)10中的數(shù)據(jù)的層結構的實例的圖。此處假 定該數(shù)據(jù)為主機設備請求寫入或讀出的數(shù)據(jù)。在存儲器系統(tǒng)10中,通過 以下的三層結構來執(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的壽命延長處理等。
在DRAM 11的寫入高速緩沖存儲器區(qū)WC和讀取高速緩沖存儲器區(qū) RC中,通過由主機設備的地址管理方法所管理的邏輯地址(在下文中為 "LBA (邏輯塊地址)")指定的數(shù)據(jù)被存儲在DRAM ll上的預定范圍中 的物理地址(在下文中為"DRAM內物理地址,,)中。DRAM管理層31中 的數(shù)據(jù)通過高速緩沖存儲器管理信息41來管理,該高速緩沖存儲器管理信 息41包括將要存儲的數(shù)據(jù)的LBA與DRAM內物理地址之間的對應關系 和指示數(shù)據(jù)在頁中的扇區(qū)大小的單位中的存在或不存在的扇區(qū)標志。
圖5以表狀方式示例高速緩沖存儲器管理信息41的實例。高速緩沖存 儲器管理信息41為用于DRAMll的一個頁大小的一個區(qū)的一個條目。條 目的數(shù)目等于或小于適合寫入高速緩沖存儲器區(qū)WC和讀取高速緩沖存儲 器區(qū)RC的頁的數(shù)目。在這些條目中的每一個中,頁大小的數(shù)據(jù)的LBA、 DRAM內物理地址和扇區(qū)標志相關聯(lián),其中該扇區(qū)標志指示通過以扇區(qū)大 小劃分該頁而獲得的區(qū)中的每一個中的有效數(shù)據(jù)的位置。
在NAND存儲器12中,來自DRAM 11的數(shù)據(jù)存儲在NAND存儲器 12上的預定范圍中的物理地址(在下文中為"NAND內物理地址,,)中。在 通過多值存儲器形成的NAND存儲器12中,因為可重寫的次數(shù)有限,所 以通過驅動控制單元14來將構成NAND存儲器12的塊當中的重寫的次數(shù) 控制為均衡的。換句話說,當執(zhí)行在NAND存儲器12中的某一 NAND內 物理地址中寫入的數(shù)據(jù)的更新時,驅動控制單元14執(zhí)行控制以使構成 NAND存儲器12的塊當中的重寫的次數(shù)均衡,以在不同于原始塊的塊中 寫入這樣的數(shù)據(jù)且使原始塊無效,該數(shù)據(jù)反映其中包括有將要更新的數(shù)據(jù) 的塊的需要更新的部分。
如上文所解釋的,在NAND存儲器12中,在數(shù)據(jù)的寫入和讀出處理 與數(shù)據(jù)的擦除處理中,處理單位不同。在數(shù)據(jù)的更新處理中,更新之前的 數(shù)據(jù)的位置(塊)與更新之后的數(shù)據(jù)的位置(塊)不同。因此,在第一實 施例中,除NAND內物理地址之外,還提供在NAND存儲器12中獨立使 用的NAND內邏輯地址(在下文中為"NAND內邏輯地址,,)。因此,邏輯NAND管理層32中的數(shù)據(jù)通過邏輯NAND管理信息42 來管理,該邏輯NAND管理信息42指示從DRAM 11接收的頁大小單位 的數(shù)據(jù)的LBA與NAND內邏輯地址(其指示NAND存儲器12的其中存 儲所接收的數(shù)據(jù)的邏輯頁位置)之間的關系且指示具有與作為NAND存儲 器12中的擦除單位的塊的大小一致的大小的邏輯塊的地址范圍的關系。可 將多個邏輯塊的集合設定為一邏輯塊。物理NAND管理層33中的數(shù)據(jù)通 過NAND內邏輯地址-物理地址轉換信息(在下文中為"邏輯-物理轉換信 息")來管理,該NAND內邏輯地址-物理地址轉換信息包括NAND存儲 器12中的NAND內邏輯地址與NAND內物理地址之間的對應關系。
圖6以表狀方式示例邏輯NAND管理信息42的實例。圖7以表狀方 式示例NAND內邏輯-物理轉換信息43的實例。如圖6中所示,邏輯NAND 管理信息42包括邏輯頁管理信息42a和邏輯塊管理信息42b。邏輯頁管理 信息42a具有用于一個頁大小的一個邏輯區(qū)的一個條目。條目中的每一個 包括一個頁大小的數(shù)據(jù)的LBA、 NAND內邏輯地址,以及指示該頁是否有 效的頁標志。邏輯塊管理信息42b包括為NAND存儲器12的一個塊大小 的區(qū)i殳定的NAND內物理地址。如圖7中所示,在NAND內邏輯-物理轉 換信息43中,NAND存儲器12的NAND內物理地址與NAND內邏輯地 址相關聯(lián)。
通過使用這些種類的管理信息,可建立用于主機設備中的LBA、用于 NAND存儲器12中的NAND內邏輯地址與用于NAND存儲器12中的 NAND內物理地址的對應。這使得可以在主機設備與存儲器系統(tǒng)10之間 交換數(shù)據(jù)。
通過DRAM管理層31管理的管理信息由于斷電或類似的原因而丟 失,使得該管理信息可被稱為易失性表。與此相反,如果通過邏輯NAND 管理層32和物理NAND管理層33管理的管理信息由于斷電或類似的原因 而丟失,則丟失的管理信息阻礙存儲器系統(tǒng)10的成功起動,使得需要采取 措施,以便即使在斷電或類似的情況下也存儲管理信息。因此,該管理信 息可被稱為非易失性表。
14該非易失性表管理存儲在NAND存儲器12中的數(shù)據(jù)。如果不存在非 易失性表,則不能存取存儲在NAND存儲器12中的信息,或者存儲在區(qū) 中的數(shù)據(jù)4皮擦除。因此,需要將非易失性表存儲為最新信息來為突然斷電 作準備。因此,在第一實施例中,將至少包括非易失性表的管理信息以最 新狀態(tài)存儲在NAND存儲器12的管理信息存儲區(qū)126中。下面解釋存儲 在NAND存儲器12的管理信息存儲區(qū)126中的管理信息存儲信息。以下 解釋假定僅非易失性表存儲在管理信息存儲區(qū)126中。
圖8為存儲在管理信息存儲區(qū)126中的管理信息存儲信息的內容的實 例的示意圖。在管理信息存儲區(qū)126中存儲以下項目管理信息存儲信息, 其包括作為某一點處的非易失性表的內容的快照210;更新前日志(在下 文中稱作前日志)220A,其是在下一次取得快照之前的非易失性表的內容 的更新差異信息,且在更新之前獲??;更新后日志(在下文中稱作后日志) 220B,其是與前日志220A的內^目同的內容的日志信息,且在更新之后 被存儲;第二指針230,其指示快照210的位置(塊)、為快照210而獲 取的前日志220A的位置(塊)和從快照210獲取的后日志220B的位置 (塊);以及根指針240,其指示第二指針230被存儲的位置(塊)。快 照210是通過存儲存儲在DRAM 11的暫時存儲區(qū)111中存儲的管理信息 當中的至少包括預定點處的非易失性表的管理信息而獲得的信息。
快照210、前日志220A、后日志220B、第二指針230和根指針240 存儲在不同塊中。這些塊的大小與作為擦除單位的物理塊的大小相同???照210存儲在快照存儲塊中??煺?10包括作為NAND存儲器12的管理 信息存儲區(qū)126中的非易失性表的邏輯NAND管理信息42和NAND內邏 輯-物理轉換信息43。當存儲新快照210時,將快照210存儲在與之前存儲 快照210的塊不同的塊中。
前日志220A和后日志220B是在當存在非易失性表的內容的改變時改 變內容之后的非易失性表與對應于數(shù)據(jù)寫入處理等的快照210 (或者快照 210和已經(jīng)產生的日志)之間的差異信息。具體地,取得快照210之后的 第一前日志MOA和第一后日志220B是非易失性表與快照210之間的差異信息。取得快照210之后的第二或后續(xù)前日志220A是已產生的前日志220A 與快照210的組合與非易失性表之間的差異信息。取得快照210之后的第 二或后續(xù)后日志220B是已產生的后日志220B與快照210的組合與非易失 性表之間的差異信息。
前日志220A是管理信息被實際更新之前所產生的信息。因此,在管 理信息通過數(shù)據(jù)寫入處理或類似處理的執(zhí)行而被實際更新之前,基于關于 管理信息如何被更新的更新安排而產生前日志220A。
后日志220B是管理信息被更新實際之后所產生的信息。因此,在管 理信息根據(jù)數(shù)據(jù)寫入處理或類似處理的執(zhí)行而被實際更新之后,通過使用 實際管理信息來產生后日志220B。
前曰志220A和后日志220B分別被存儲在日志存儲塊中。即使快照的 產生改變,也以一次寫入的方式將前日志220A和后日志220B寫入相同日 志存儲塊中。
圖9描繪日志的實例。因為前日志220A與后日志220B具有相同信息, 所以將前日志220A作為日志的實例來進行解釋。前日志220A包括目標 信息,其為改變目標的管理信息;目標條目,其為作為目標信息中的改變 目標的條目;目標項目,其為作為目標條目中的改變目標的項目;以及改 變內容,其作為目標項目的改變的內容。前日志220A和后日志220B隨著 新快照210的存儲而重新形成,這是因為前日志220A和后日志220B是針 對快照210的更新差異信息。
第二指針230存儲在第二指針存儲塊中。第二指針230僅須為指示用 于指示快照210、前日志220A和后日志220B的存儲位置的塊的頂?shù)刂返?指針。當重新存儲快照210時或當改變快照存儲塊或日志存儲塊時,更新 第二指針230??蓪⑶叭罩?20A和后日志220B的指針存儲在快照210中 而不將其存儲在第二指針存儲塊中。
第二指針230包括用于存取快照存儲塊的快照存取信息、用于存取用 于前日志220A和后日志220B的日志存儲塊的日志存取信息,以及指示存 儲下一個第二指4f的頁位置的下一個指針。通過該下一個指針而將第二指針230改變?yōu)殒溄恿斜硐到y(tǒng)中的信息??梢酝ㄟ^從通過根指針240指定的 第二指針存儲塊的頂頁開始跟蹤下一個指針而到達最新的笫二指針230。
代替鏈接列表系統(tǒng),可以以一次寫入的方式以從第二指針存儲區(qū)的頂頁開 始的順序存儲第二指針230。
根指針240存儲在第一根指針存儲塊中。根指針240是用于存取存儲 有第二指針230的第二指針存儲塊的信息,且是當起動存儲器系統(tǒng)10時在 用于恢復管理信息的處理中首先讀取的信息。當?shù)诙羔槾鎯K改變時, 根指針240改變。根指針240以一次寫入的方式以從塊的頂頁開始的順序 存儲在根指針存儲塊中。在這種情況下,根指針存儲塊中緊接在未被寫入 的頁之前的頁具有最新信息。因此,可以通過檢索(retrieve)未被寫入的 頁的最高次頁而檢索出最新的根指針240。與在第二指針230的情況下一 樣地,還可以使用鏈接列表。
根指針240存儲在NAND存儲器12的固定區(qū)1261中。快照210、前 日志220A、后日志220B和第二指針230存儲在NAND存儲器12的可變 區(qū)1262中。固定區(qū)1261是NAND存儲器12中的受保護區(qū),在該受保護 區(qū)中通過邏輯NAND管理層32管理的邏輯塊與通過物理NAND管理層33 管理的物理塊之間的關系固定,并且,固定區(qū)1261是這樣的區(qū),在該區(qū)中 存儲對于運行存儲器系統(tǒng)10所必要的且具有低更新頻率(其中幾乎不發(fā)生 重寫和寫入)的信息。
可變區(qū)1262是其中NAND存儲器12的除固定區(qū)1261之外的區(qū)中通 過邏輯NAND管理層32管理的邏輯塊與通過物理NAND管理層33管理 的物理塊之間的關系可變的區(qū),且是作為磨損均化(wear leveling)的目 標的區(qū)。
下面解釋驅動控制單元14的功能。圖10為驅動控制單元14的功能配 置的實例的框圖。驅動控制單元14包括數(shù)據(jù)管理單元141、 ATA命令處 理單元142、安全管理單元143、啟動加載器144、初始化管理單元145, 以及除錯支持單元146。數(shù)據(jù)管理單元141執(zhí)行DRAM 11與NAND存儲 器12之間的數(shù)據(jù)傳送和對關于NAND存儲器12的各種功能的控制。ATA命令處理單元142基于從ATA接口接收的指令而與數(shù)據(jù)管理單元141協(xié) 作執(zhí)行數(shù)據(jù)傳送處理。安全管理單元143與數(shù)據(jù)管理單元141和ATA命 令處理單元142協(xié)作管理各種種類的安全信息。啟動加載器144在通電期 間將各種管理程序(固件)從NAND存儲器12加載至未示出的存儲器(例 如,SRAM (靜態(tài)RAM))。初始化管理單元145執(zhí)行對驅動控制單元 14中的控制器和電路的初始化。除錯支持單元146處理通過RS232C接口 而從外部供應的除錯數(shù)據(jù)。
圖11為數(shù)據(jù)管理單元141的功能配置的實例的框圖。數(shù)據(jù)管理單元 141包括數(shù)據(jù)傳送處理單元151、管理信息管理單元152和管理信息恢復單 元155。數(shù)據(jù)傳送處理單元151執(zhí)行DRAM 11與NAND存儲器12之間的 數(shù)據(jù)傳送。管理信息管理單元152根據(jù)存儲在DRAM 11和NAND存儲器 12中的數(shù)據(jù)的改變而執(zhí)4亍管理信息的改變和存儲。管理信息恢復單元155 基于在通電等期間所存儲的管理信息而恢復最新的管理信息。
管理信息管理單元152包括管理信息寫入單元153和管理信息存儲單 元154。當根據(jù)由數(shù)據(jù)傳送處理單元151進行的對存儲在DRAM 11或 NAND存儲器12中的數(shù)據(jù)的改變處理而使得存儲在DRAM 11中的管理信 息的更新有必要時,管理信息寫入單元153執(zhí)行該管理信息的更新。
當存儲器系統(tǒng)10滿足預定M時,管理信息存儲單元154在NAND 存儲器12的管理信息存儲區(qū)126中將管理信息存儲為快照210,將管理信 息中將要更新的信息存儲為前日志220A,且將管理信息中更新后的信息存 儲為后日志220B。當?shù)诙羔?30中的寫入的位置根據(jù)快照210、前日志 220A或后日志220B的存儲而改變時,管理信息存儲單元154對第二指針 230應用更新處理。
當滿足與存儲器系統(tǒng)10有關的預定*時,由管理信息存儲單元154 來執(zhí)行快照210的存儲。例如,當NAND存儲器12的管理信息存儲區(qū)126 中為了存儲日志220 (前日志220A和后日志220B )而提供的日志存儲區(qū) 變滿(即,該區(qū)完全被數(shù)據(jù)填滿)時,執(zhí)行快照210的存儲。
在涉及存儲在DRAM 11中的管理信息(非易失性表)的更新的NAND存儲器12上的數(shù)據(jù)更新期間(當NAND存儲器12中的數(shù)據(jù)寫入為必要 時),由管理信息存儲單元154來執(zhí)行日志220 (前日志220A和后日志 220B)的存儲。
當接通存儲器系統(tǒng)10的電源時,管理信息恢復單元155基于存儲在 NAND存儲器12的管理信息存儲區(qū)126中的管理信息存儲信息而執(zhí)行管 理信息的恢復處理。具體地,管理信息恢復單元155按順序追蹤固定區(qū)1261 中的根指針240和可變區(qū)1262中的第二指針230、快照210、前日志220A 和后日志220B,并判定是否存在與最新的快照210對應的前日志220A和 后日志220B。當不存在前日志220A和后日志220B時,管理信息恢復單 元155在DRAM 11中恢復快照存儲塊的快照210作為管理信息。當存在 前曰志220A和后日志220B時,這意味著已發(fā)生諸如程序錯誤或短時中斷 (電源的異常隔離)的異常結束,管理信息恢復單元155從快照存儲塊獲 取快照210,從日志存儲塊獲取前日志220A和后日志220B,且在DRAM ll上執(zhí)行管理信息(非易失性表)的恢復(將前日志220A和后日志220B 反映在快照210上)。
下面解釋由管理信息管理單元152進行的對存儲器系統(tǒng)10的管理信息 的存儲處理。圖12為對存儲器系統(tǒng)10的管理信息的存儲處理程序的實例 的流程圖。圖13為用于解釋對前日志和后日志的存儲處理的圖。假定存儲 器系統(tǒng)10連接至主機設備且作為主機設備的次級存儲裝置而操作,主機設 備(存儲器系統(tǒng)IO)處于起動狀態(tài)中,且在該起動狀態(tài)之前在存儲器系統(tǒng) 10停止之前存儲快照210。
首先,基于在主機設備(存儲器系統(tǒng)IO)的上一次結束時存儲的快照 210而使主機設備(存儲器系統(tǒng)IO)處于起動狀態(tài)中(步驟Sll)。此后, 在必要時執(zhí)行從主機設備至NAND存儲器12的數(shù)據(jù)讀取或寫入。管理信 息管理單元152判定是否滿足預定的快照存儲條件(步驟S12)。當不滿 足快照存儲條件時(步驟S12處為"否"),管理信息管理單元152判定是 否接收到涉及管理信息的更新的指令(用于NAND存儲器中的數(shù)據(jù)寫入的 指令)(步驟S13 )。當未接收到涉及管理信息的更新的指令時(步驟S13處為"否,,),管理信息管理單元152返回至步驟S12。
當接收到涉及管理信息的更新的指令時(步驟S13處為"是"),管理 信息管理單元152通過執(zhí)行指令判定指示如何更新管理信息的更新安排 (步驟S14 )。管理信息管理單元152將更新安排存儲在NAND存儲器12 的管理信息存儲區(qū)126的日志存儲塊中作為前日志220A (步驟S15 )。
當前日志220A未存儲在日志存儲塊中時,更新安排(前日志)是更 新管理信息的時間處的非易失性表與存儲在快照存儲塊中的快照210之間 的差異信息。當日志220 (在下文中稱作過去的前日志220A)已存儲在日 志存儲塊中時,更新安排(日志)是更新管理信息的時間處的非易失性表 與快照210與過去的前日志220A的組合之間的差異信息。具體地,如圖 13中所示,在執(zhí)行數(shù)據(jù)寫入(X)作為對第X數(shù)據(jù)的寫入處理之前,將與 數(shù)據(jù)寫入(X)對應的前日志(X)存儲在NAND存儲器12中作為前曰志 220A。在該點處,例如,將信息yl存儲為前日志220A。例如,在將前日 志220A (更新安排)日志記錄在DRAM 11上之后,將前日志220A存儲 在NAND存儲器12的管理信息存儲區(qū)126中。
隨后,邏輯NAND管理層32執(zhí)行在步驟S13處所接收的指令(例如, 用于NAND存儲器12的數(shù)據(jù)存儲區(qū)125中的用戶數(shù)據(jù)的寫入(X)的處 理)(步驟S16)。
此后,根據(jù)所執(zhí)行的處理而更新存儲在DRAM 11中的管理信息。管 理信息存儲單元154將NAND存儲器12的管理信息存儲區(qū)126中的管理 信息中的更新后的信息存儲為后日志220B。當后日志220B未存儲在曰志 存儲塊中時,后日志220B是當前點處的非易失性表與存儲在快照存儲塊 中的快照210之間的差異信息。當后日志220B (在下文中稱作"過去的后 曰志220B")已存儲在日志存儲塊中時,后日志220B是當前表處的非易失 性表與快照210與過去的日志的組合之間的差異信息。
將與數(shù)據(jù)寫入(X)對應的后日志220B (X)存儲在NAND存儲器12 中作為后日志220B。在該點處,例如,將信息yl存儲為后日志220B。存 儲為后日志220B的信息yl與存儲為前日志220A的信息yl相同(步驟
20S17)。此后,管理信息管理單元152返回至步驟S12。
當不滿足快照存儲條件時(步驟S12處為"否,,)且當接收到涉及管理 信息的更新的指令時(步驟S13處為"是"),執(zhí)行步驟S14至S17處的處 理。換句話說,以與對第X數(shù)據(jù)的寫入處理相同的方式,執(zhí)行對第(X+l) 數(shù)據(jù)的寫入處理。在執(zhí)行數(shù)據(jù)寫入(X+l)作為對第(X+l)數(shù)據(jù)的寫入處 理之前,將與數(shù)據(jù)寫入(x+l)對應的前日志(X+l)存儲在NAND存儲 器12中作為前日志220A。在此點處,例如,將信息y2存儲為前日志220A。 執(zhí)行NAND存儲器12中的數(shù)據(jù)存儲區(qū)125中的數(shù)據(jù)寫入(X+l)。將與 數(shù)據(jù)寫入(X+l)對應的后日志(X+l)存儲在NAND存儲器12中作為后 日志220B。在此點處,例如,將信息y2存儲為后日志220B。存儲為后日 志220B的信息y2與存儲為前日志220A的信息y2相同。
當在步驟S12處滿足快照存儲條件時(步驟S12處為"是"),管理信 息管理單元152將至少包括DRAM 11的暫時存儲區(qū)111中的非易失性表 的管理信息存儲在NAND存儲器12的管理信息存儲區(qū)126中作為快照210 (步驟S18 )。管理信息管理單元152判定是否指示存儲器系統(tǒng)10的結束 (步驟S19)。當未指示存儲器系統(tǒng)10的結束時,管理信息管理單元152 返回至步驟S12。當指示存儲器系統(tǒng)10的結束時,處理完成。
下面解釋由管理信息恢復單元155執(zhí)行的對存儲器系統(tǒng)10的管理信息 的恢復處理。圖14是對存儲器系統(tǒng)10的管理信息的恢復處理程序的實例 的流程圖。圖15A至圖15D是存儲器單元中的數(shù)據(jù)與存儲器單元的閾值電 壓之間的關系以及NAND存儲器中的寫入的順序的實例的圖。與在上述解 釋中一樣地,存儲器系統(tǒng)10連接至主機設備且作為主機設備的笫二存儲裝 置操作。
首先,由于例如從短時中斷的恢復而接通主機設備的電源,且向存儲 器系統(tǒng)10發(fā)出起動指令(步驟S31)。管理信息恢復單元155順序地讀取 NAND存儲器12的管理信息存儲區(qū)126中的根指針240和第二指針230 (步驟S32 ),獲取其中存儲有快照210以及前日志和后日志(前日志220A 和后日志220B )的塊的地址(步驟S33 ),且獲取快照210 (步驟S34 )。此后,管理信息恢復單元155參考NAND存儲器12中的前日志220A和后日志220B,判定是否已發(fā)生短時中斷(步驟S35)。例如,當前日志220A和后日志220B存在于NAND存儲器12中時,管理信息恢復單元155判定已發(fā)生短時中斷。關于是否已發(fā)生短時中斷的判定可通過例如比較前日志220A與后日志220B來執(zhí)行。在第一實施例中,前日志220A與后日志220B存儲相同信息。因此,例如,當作為前日志220A而存儲的頁的數(shù)目與作為后日志220B而存儲的頁的數(shù)目彼此不一致時,意味著已發(fā)生短時中斷。短時中斷的發(fā)生也可基于ECC錯誤的存在或不存在、作為前日志220A而存儲的頁的數(shù)據(jù)以及作為后日志220B而存儲的頁的數(shù)據(jù)來判定。
當已發(fā)生短時中斷時(步驟S35處為"是"),管理信息恢復單元155基于NAND存儲器12中的最新的前日志220A和最新的后日志220B而檢查已發(fā)生短時中斷的時刻(timing)(步驟S36)。
另外,管理信息恢復單元155判定已發(fā)生短時中斷的時刻是否在后日志220B的存儲期間(步驟S37)。例如,當后日志220B中的最后頁正被寫入時,不能讀出該最后頁。因此,判定在后日志220B的存儲期間已發(fā)生短時中斷。當前日志220A中的最后頁正被寫入時,不能讀出該最后頁。因此,判定在前日志220A的存儲期間已發(fā)生短時中斷。當前日志220A中的最后頁中被寫入日志且后日志220B中的最后頁中未被寫入日志時,判定在數(shù)據(jù)的寫入期間已發(fā)生短時中斷。
當管理信息恢復單元155判定已發(fā)生短時中斷的時刻在后日志220B的存儲期間時(步驟S37處為"是"),管理信息恢復單元155選擇最新的前日志220A (步驟S38)。另一方面,當管理信息恢復單元155判定已發(fā)生短時中斷的時刻不在后日志220B的存儲期間時(步驟S37處為"否,,),管理信息恢復單元155存儲完成存儲的最新的后日志220B (步驟S39 )。換句話說,當前日志220A中的最后頁正被寫入時,或者當前日志220A中的最后頁中被寫入日志且后日志220B中的最后頁中未被寫入日志時,選擇最新的后日志220B。此后,管理信息恢復單元155從日志存儲塊獲取選定的日志(前日志220A或后日志220B )且在DRAM 11的工作區(qū)112中擴展日志(步驟S40 )。管理信息恢復單元155恢復管理信息(非易失性表)(以從最舊日志開始的順序將日志反映在快照210上)(步驟S41),且管理信息恢復處理結束。
另一方面,當尚未發(fā)生短時中斷時(步驟S35處為"否"),管理信息恢復單元155在DRAM 11的暫時存儲區(qū)111中恢復管理信息,且管理信息恢復處理結束。
圖15A至圖15D為存儲器單元中的數(shù)據(jù)與存儲器單元的閾值電壓之間的關系以及NAND存儲器中的寫入的順序的實例的圖。首先,當執(zhí)行擦除操作時,將存儲器單元中的數(shù)據(jù)設定為"O"。隨后,如圖15A中所示,當執(zhí)行低位頁中的寫入時,存儲器單元中的數(shù)據(jù)改變?yōu)閿?shù)據(jù)"0,,和數(shù)據(jù)"2"。如圖15B中所示,在在高位頁中寫入之前,將等于或低于實際數(shù)據(jù)的閾值電壓的數(shù)據(jù)寫入鄰近單元中。接著,通過寫入該單元中的數(shù)據(jù)擴展數(shù)據(jù)"2"的閾值的分布。此后,當寫入高位頁的數(shù)據(jù)時,存儲器單元中的數(shù)據(jù)改變?yōu)榫哂性奸w值電壓的數(shù)據(jù)"0,,至"3",如圖15C中所示。在第一實施例中,從低閾值電壓至高閾值電壓限定存儲器單元中的數(shù)據(jù)。
解釋NAND存儲器12中的寫入處理。如圖15D中所示,對來自塊中與源極線接近的存儲器單元的頁中的每一個執(zhí)行寫入操作。在圖15D中,為了4更于解釋,示出四條字線。
在第一寫入(通過圓圈圍繞的l指示)中,將l-位數(shù)據(jù)寫入存儲器單元1的4氐位頁中。在第二寫入(通過圓圏圍繞的2指示)中,將l-位數(shù)據(jù)寫入在字線方向上鄰近存儲器單元1的存儲器單元2的低位頁中。在第三寫入(通過圓圈圍繞的3指示)中,將1-位數(shù)據(jù)寫入在位方向上鄰近存儲器單元1的存儲器單元3的低位頁中。在第四寫入(通過圓圏圍繞的4指示)中,將1-位數(shù)據(jù)寫入對角地鄰近存儲器單元1的存儲器單元4的低位頁中。
在第五寫入(通過圓圏圍繞的5指示)中,將l-位數(shù)據(jù)寫入存儲器單元l的高位頁中。在第六寫入(通過圓圏圍繞的6指示)中,將l-位數(shù)據(jù)寫入在字線方向上鄰近存儲器單元1的存儲器單元2的高位頁中。在第七寫入(通過圓圏圍繞的7指示)中,將1-位數(shù)據(jù)寫入在位方向上鄰近存儲器單元3的存儲器單元5的低位頁中。在第八寫入(通過圓圏圍繞的8指示)中,將1-位數(shù)據(jù)寫入對角地鄰近存儲器單元3的存儲器單元6的低位頁中。
在第九寫入(通過圓圏圍繞的9指示)中,將l-位數(shù)據(jù)寫入存儲器單元3的高位頁中。在第十寫入(通過圓圏圍繞的IO指示)中,將l-位數(shù)據(jù)寫入在字線方向上鄰近存儲器單元3的存儲器單元4的高位頁中。在第十一寫入(通過圓圏圍繞的ll指示)中,將1-位數(shù)據(jù)寫入在位方向上鄰近存儲器單元5的存儲器單元7的低位頁中。在第十二寫入(通過圓圏圍繞的12指示)中,將1-位數(shù)據(jù)寫入對角地鄰近存儲器單元5的存儲器單元8的低位頁中。
在第十三寫入(通過圓圏圍繞的13指示)中,將l-位數(shù)據(jù)寫入存儲器單元5的高位頁中。在第十四寫入(通過圓圏圍繞的14指示)中,將1-位數(shù)據(jù)寫入在字線方向上鄰近存儲器單元5的存儲器單元6的高位頁中。在第十五寫入(通過圓圏圍繞的15指示)中,將1-位數(shù)據(jù)寫入存儲器單元7的高位頁中。在第十六寫入(通過圓圈圍繞的16指示)中,將l-位數(shù)據(jù)寫入在字線方向上鄰近存儲器單元7的存儲器單元8的高位頁中。
接下來解釋用于管理信息的恢復的日志的選擇方法的特定實例。圖16A至圖16C是用于解釋用于管理信息的恢復的日志的選擇方法的圖。在圖16A至圖16C中,示出這樣的狀態(tài),其中為用于前日志的日志存儲塊(各圖中的每一個的左側上的塊;在下文中稱作前日志塊)和用于后日志的日志存儲塊(各圖中的每一個的右側上的塊;在下文中稱作后日志塊)中的頁中的每一個存儲前日志和后日志。圖16A至圖16C中的一個物理塊中的頁對應于圖15A至圖15D。換句話說,頁1至頁4、頁7至頁8和頁11至頁12為圖15A至圖15D中所示的^(氐位頁。頁5至頁6、頁9至頁10和頁13至頁16為圖15A至圖15D中所示的高位頁。在用于前日志的塊和用于后日志的塊中,這些塊中的行中的每一個對應于一個頁。在圖16A至圖16C中,為了便于解釋,將頁分離為低位頁和高位頁。低位頁與高位頁的組合形成一個物理塊。
在圖16A至圖16C中,正常保存的日志由日志xl表示,由于短時中斷而中斷的日志由日志yl表示,且當前正被寫入的日志由日志zl表示。因為短時中斷在日志zl的寫入期間發(fā)生且日志yl中斷,所以與日志zl的頁對應的存儲器單元和與日志yl的頁對應的存儲器單元相同。日志yl的頁為低位側上的頁(低位頁),而日志zl的頁為高位側上的頁(高位頁)。在這些塊中的每一個的日志(頁)當中,圓圏圍繞的日志是這樣的日志,這些日志-故選定作為用于管理信息的恢復的日志。
圖16A為正常時間處(當不發(fā)生電源的異常隔離且電源斷開時)的前日志和后日志的圖。圖16B和圖16C為已發(fā)生短時中斷的時間處的前日志和后日志的圖。
在圖16A中,示出當在未存儲快照210的情況下斷開存儲器系統(tǒng)10的電源時存儲在NAND存儲器12中的前日志和后日志。在圖16A的情況下,因為數(shù)據(jù)僅寫入低位頁(頁l至4)中,所以即使在在低位頁中的寫入期間發(fā)生短時中斷,也不發(fā)生低位頁數(shù)據(jù)中斷。如圖16A中所示,在第一實施例中,前日志和后日志存儲在不同塊的相同頁中。因此,當電源在正常時間斷開時,前日志的最后頁與后日志的最后頁處于相同頁位置中。因此,在這種情況下,通過4吏用前日志來恢復管理信息。在圖16A中所示的正常時間,可通過使用后日志代替前日志來恢復管理信息。
在圖16B中,在執(zhí)行兩頁上的"日志寫入(1),,作為前日志之后,當執(zhí)行兩頁上的"日志寫入(1),,作為后日志時,在第一頁的寫入期間發(fā)生短時中斷。如圖16B中所示,當在在后日志的高位頁(頁5)中寫入期間發(fā)生短時中斷時,在與被寫入的高位頁對應的低位頁(后日志的頁2)中發(fā)生低位頁數(shù)據(jù)中斷。換句話說,在圖16B的情況下,因為在后日志的存儲期間發(fā)生短時中斷,所以在后日志側上的塊中產生日志yl(例如,頁2 )。在這種情況下,與"日志寫入(1)"對應的日志zl存儲在后日志側上的塊中。與"日志寫入(1)"對應的前日志存儲在前日志側上的塊中(在兩頁 上)。因此,通過使用其中日志不中斷的前日志而恢復管理信息。
在圖16C中,在執(zhí)行"日志寫入(1)"作為前日志之后,在與前日志 對應的數(shù)據(jù)寫入期間發(fā)生錯誤,且執(zhí)行"日志寫入(2 )"作為與數(shù)據(jù)寫入的 重寫處理對應的前日志。另外,在圖16C中,當執(zhí)行"日志寫入(2)"作 為與數(shù)據(jù)寫入的重寫對應的后日志時,發(fā)生短時中斷。如圖16C中所示,
當在在后日志的高位頁(頁5)中寫入期間發(fā)生短時中斷時,在與被寫入
的高位頁對應的低位頁(后日志的頁2)中發(fā)生低位頁數(shù)據(jù)中斷。換句話
說,在圖16C的情況下,因為在后日志的存儲期間發(fā)生短時中斷,所以在
后日志側上的塊中產生日志yl。在這種情況下,與"日志寫入(l)"對應
的日志xl和與"日志寫入(2 )"對應的日志xl存儲在前日志側上的塊中。
另一方面,與"曰志寫入(2)"對應的日志zl存儲在后日志側上的塊中。
因此,通過^f吏用其中日志不中斷的前日志而恢復管理信息。
圖18是用于解釋在正常時間產生前日志和后日志的方法的圖。圖19 是用于解釋在發(fā)生數(shù)據(jù)寫入錯誤時產生日志的方法的實例的圖。圖18對應
于圖16A中所示的情況且表示在執(zhí)行對前日志的"日志寫入(1)"和隨 后對后日志的"日志寫入(1),,之后,在無程序餘溪等的情況下完成數(shù)據(jù)寫 入。另一方面,圖19對應于圖16C中所示的情況。在對前日志的"日志寫 入(l)"之后,當執(zhí)行數(shù)據(jù)寫入時,發(fā)生程序錯誤(數(shù)據(jù)寫入錯誤,例如, 當對數(shù)據(jù)寫入?yún)^(qū)的擦除操作未正常結束且數(shù)據(jù)寫入?yún)^(qū)變?yōu)閴膲K時)。因此,
執(zhí)行"日志寫入(2 )"作為與數(shù)據(jù)重寫處理對應的前日志,且執(zhí)行數(shù)據(jù)寫入。 另外,執(zhí)行"日志寫入(2)"作為與數(shù)據(jù)寫入的重寫處理對應的后日志。在 圖16C中,在此點處發(fā)生短時中斷。當不發(fā)生短時中斷時,如圖19中所 示,在作為后日志的"日志寫入(2)"之后,執(zhí)^f亍與對前日志的"日志寫入 (1)"對應的對后日志的"日志寫入(1)",且處理結束。
下面解釋選擇用于管理信息的恢復的日志的方法的另一特定實例。圖 17A至圖17C是用于解釋選擇用于管理信息的恢復的日志的方法的圖。在 圖17A至圖17C中,與在圖16A至圖16C中一樣地,示出這樣的狀態(tài),其中為用于前日志的日志存儲塊(各圖中的每一個的左側上的塊;在下文 中稱作前日志塊)和用于后日志的日志存儲塊(各圖中的每一個的右側上 的塊;在下文中稱作后日志塊)中的頁中的每一個存儲前日志和后日志。 在圖17A至圖17C中,對前日志和后日志中的每一個示例兩個塊。 一個塊 中的頁對應于圖15A至圖15D。塊中的每一行對應于一個頁。在圖17A至 圖17C中,為了簡化示例,省略低位頁與高位頁之間的區(qū)別且將一個塊的 頁的數(shù)目設定為八。然而,可在與圖15A至圖16C中所示的設定相同的設 定下解釋寫入處理的細節(jié)(諸如,頁寫入的順序)。
在圖17A至圖17C中,與在圖16A至圖16C中一樣地,正常存儲的 日志由日志xl表示,由于短時中斷而中斷的日志由日志yl表示,且正被 寫入的日志由日志zl表示。因為短時中斷已在日志zl的寫入期間發(fā)生且 日志yl中斷,所以與日志zl的頁對應的存儲器單元和與日志yl的頁對應 的存儲器單元含有相同信息。在這些塊中的每一個的日志(頁)當中,圓
圏圍繞的日志是這樣的日志,其^皮選定作為用于管理信息的恢復的日志。
在圖17A中,當在作為后日志的兩個塊(兩頁)上的"日志寫入(l)" 中執(zhí)行第一塊中的日志寫入時,發(fā)生短時中斷。在這種情況下,在后日志 側上的塊中,與"日志寫入(l)"對應的日志zl存儲在第一塊的最后頁中。 因為在后日志的存儲期間發(fā)生短時中斷,所以在后日志側上的塊中產生日 志yl。另一方面,在前日志側上的塊中,已執(zhí)行兩個塊(兩頁)上的"日 志寫入(l)"作為前日志。因此,通過4吏用其中日志不中斷的前日志而恢 復管理信息。
在圖17B中,在在作為前日志的兩個塊(兩個頁)上的"日志寫入(1 ),, 中執(zhí)行第二塊中的日志寫入之后,在與該日志對應的數(shù)據(jù)寫入期間發(fā)生錯 誤,且執(zhí)行"日志寫入(2)"作為與數(shù)據(jù)寫入的重寫處理對應的前日志。 另外,在圖17B中,當執(zhí)行"日志寫入(2),,作為與數(shù)據(jù)寫入的重寫處理 對應的后日志時,發(fā)生短時中斷。在這種情況下,在后日志側上的塊中, 與"日志寫入(2)"對應的日志zl存儲在第一塊的最后頁中。因為在后日 志的存儲期間發(fā)生短時中斷,所以在后日志側上的塊中產生日志yl。因此,通過使用其中日志不中斷的前日志而恢復管理信息。
在圖17C中,在在作為前日志的兩個塊(兩個頁)上的"日志寫入(1 ),, 中執(zhí)行第二塊中的日志寫入之后,在與該日志對應的數(shù)據(jù)寫入期間發(fā)生錯 誤,且執(zhí)^f亍"日志寫入(2)"作為與數(shù)據(jù)寫入的重寫處理對應的前日志。 另外,在圖17C中,執(zhí)行"日志寫入(2)"作為與數(shù)據(jù)寫入的重寫處理對 應的后日志,且當在兩個頁上的"日志寫入(1),,中作為后日志執(zhí)行第一頁 中的日志寫入時,發(fā)生短時中斷。在這種情況下,在后日志側上的塊中, 與"日志寫入(l)"對應的日志zl存儲在第二塊的頂頁中。盡管在后曰志 的存儲期間發(fā)生短時中斷,但因為是在第二塊的頂頁的存儲期間發(fā)生短時 中斷,所以不產生日志yl。通過4吏用其中日志不中斷的前日志而恢復管理
在圖16A至圖17C中,加括號的前日志用于管理信息的恢復。然而, 圖16A至圖17C中通過交叉標記的前日志也可用于恢復,因為前日志是已 存儲的日志。因此,除圓圏圍繞的前日志之外,通過交叉標記的前日志也 可用于管理信息的恢復。
在此實施例中,如參考圖19所解釋的,當在數(shù)據(jù)的寫入期間發(fā)生程序 錯誤時,產生與重寫處理對應的前日志和后日志,且產生與其中發(fā)生4^ 的寫入處理對應的前日志和后日志。以此方式,執(zhí)行短時中斷判定處理和 類似處理,同時確保日志的一致性。這使得即使當在數(shù)據(jù)寫入期間發(fā)生程 序錯誤時也可以確實地恢復管理信息。
在圖19中,因為前日志和后日志根據(jù)程序錯誤的發(fā)生而被冗余地獲 取,所以短時中斷判定處理和類似處理是復雜的。因此,在該實施例中, 參考圖20來解釋在發(fā)生程序錯誤時執(zhí)行的另一處理方法。
圖20是用于解釋在發(fā)生數(shù)據(jù)寫入錯誤時產生日志的方法的另一實例 的圖。如圖20中所示,在對前日志的"日志寫入(1)"之后,當在執(zhí)行數(shù) 據(jù)寫入時發(fā)生程序錯誤(數(shù)據(jù)寫入錯誤)時,不獲取與數(shù)據(jù)重寫處理對應 的前日志,且再次執(zhí)行數(shù)據(jù)寫入。在結束數(shù)據(jù)寫入之后,不產生后曰志, 且獲取快照來替代后日志以結束處理。以此方式,當存儲前日志且數(shù)據(jù)寫入以失敗結束時,在執(zhí)行重寫之后, 不產生后日志,且存儲快照以完成處理。
根據(jù)該實施例,當在前日志的存儲之后及后日志的存儲之前發(fā)生程序 錯誤時,在日志中不存儲由于對抗錯誤的措施的管理信息的更新,且存儲 快照。因此,可以簡化發(fā)生短時中斷期間的恢復處理且簡化日志管理。換 句話說,當執(zhí)行已作為前日志而寫入的更新安排中所不包括的處理時,因 為再次取得快照,所以不必執(zhí)行復雜的日志管理,且可以確實地使用該快 照恢復管理信息。
電荷累積層不限于浮動柵型,且可為包括諸如MONOS (金屬-氧化物 -氮化物-氧化物-半導體)結構的氮化硅膜和其它系統(tǒng)的電荷俘獲型。
如上文所解釋的,根據(jù)本發(fā)明,存在這樣效果即使當在數(shù)據(jù)寫入期 間發(fā)生程序錯誤時,也可以確實地恢復管理信息。
本領域寺支術人員將容易想到其他優(yōu)點和修改。因此,本發(fā)明在其更寬 的方面不限于在此所示和所述的特定細節(jié)和示例性實施例。因此,可在不 偏離由所附權利要求書及其等價物所限定的總發(fā)明構思的精神或范圍的情 況下進行各種修改。
29
權利要求
1.一種存儲器系統(tǒng),其包括易失性第一存儲單元;非易失性第二存儲單元,其包括可存儲多值數(shù)據(jù)的存儲器單元;以及控制器,其通過所述第一存儲單元而執(zhí)行在主機設備與所述第二存儲單元之間的數(shù)據(jù)傳送,將管理信息存儲在所述第一存儲單元中,且在更新所存儲的管理信息時基于所存儲的管理信息而執(zhí)行所述第一和第二存儲單元中的數(shù)據(jù)管理,其中所述管理信息包括在所述存儲器系統(tǒng)的起動操作期間存儲在所述第二存儲單元中的數(shù)據(jù)的存儲位置,所述控制器包括管理信息存儲單元,其在滿足預定條件時將存儲在所述第一存儲單元中的管理信息存儲在所述第二存儲單元中作為快照,且在所述第二存儲單元中存儲作為在所述管理信息中發(fā)生改變之前所存儲的管理信息的更新差異信息的前日志和作為在所述管理信息中發(fā)生所述改變之后所存儲的管理信息的更新差異信息的后日志;以及管理信息恢復單元,當所述前日志或所述后日志在所述起動操作期間存在于所述第二存儲單元中時,所述管理信息恢復單元基于所述快照以及所述日志或所述后日志而執(zhí)行所述第一存儲單元中的管理信息的恢復,并且當所述前日志和所述后日志在所述起動操作期間不存在于所述第二存儲單元中時,所述管理信息恢復單元基于所述快照而執(zhí)行所述第一存儲單元中的管理信息的恢復,其中當在作為所述前日志的存儲之后的更新處理而執(zhí)行所述第二存儲單元中的數(shù)據(jù)的寫入時發(fā)生程序錯誤時,所述管理信息存儲單元在再次執(zhí)行數(shù)據(jù)寫入之后存儲快照而不執(zhí)行新日志的寫入。
2. 根據(jù)權利要求l的存儲器系統(tǒng),其中,當在作為所述前日志的存儲 之后的更新處理而執(zhí)行所述第二存儲單元中的數(shù)據(jù)的寫入時發(fā)生程序g 時,所述管理信息存儲單元存儲所述快照而不執(zhí)行新前日志和新后日志的 寫入。
3. 根據(jù)權利要求2的存儲器系統(tǒng),其中所述第二存儲單元包括 快照存儲區(qū),其用于存儲所述快照;前曰志存儲區(qū),其用于存儲所述前曰志; 后日志存儲區(qū),其用于存儲所述后日志;以及 指針存儲區(qū),其用于存儲指針,所述指針指示所述快照存儲區(qū)、所述 前曰志存儲區(qū)和所述后日志存儲區(qū)的存儲位置。
4. 根據(jù)權利要求3的存儲器系統(tǒng),其中所述快照存儲區(qū)、所述前日志 存儲區(qū)、所述后日志存儲區(qū)和所迷指針存儲區(qū)中的每一個包括作為數(shù)據(jù)擦 除單位的塊。
5. 根據(jù)權利要求4的存儲器系統(tǒng),其中所述前日志和所述后日志中的 每一個以一次寫入的方式以頁單位被寫入所述前日志存儲區(qū)和所述后曰志 區(qū)中,所述頁單位小于所述塊大小,每次獲取所述前日志和所述后日志作 為差異信息。
6. 根據(jù)權利要求l的存儲器系統(tǒng),其中 所述笫一存儲單元為DRAM,并且 所述第二存儲單元為NAND閃速存儲器。
7. —種存儲器系統(tǒng),其包括 易失性第一存儲單元;非易失性第二存儲單元,其包括可存儲多值數(shù)據(jù)的存儲器單元;以及 控制器,其通過所述第 一存儲單元而執(zhí)行在主機設備與所述第二存儲 單元之間的數(shù)據(jù)傳送,將管理信息存儲在所述第一存儲單元中,且在更新 所存儲的管理信息時基于所存儲的管理信息而執(zhí)行所述第一和第二存儲單 元中的數(shù)據(jù)管理,其中所述管理信息包括在所述存儲器系統(tǒng)的起動操作期 間存儲在所述第二存儲單元中的數(shù)據(jù)的存儲位置,其中所述控制器包括管理信息存儲單元,其在滿足預定條件時將存儲在所述第一存儲 單元中的管理信息存儲在所述第二存儲單元中作為快照,且在所述第二存 儲單元中存儲作為在所述管理信息中發(fā)生改變之前所存儲的管理信息的更 新差異信息的前日志和作為在所述管理信息中發(fā)生所述改變之后所存儲的管理信息的更新差異信息的后日志;以及管理信息恢復單元,當所述前日志或所述后日志在所述起動操作 期間存在于所述第二存儲單元中時,所述管理信息恢復單元基于所述快照 以及所述前日志或所述后日志而執(zhí)行所述第一存儲單元中的管理信息的恢 復,并且當所述前日志和所述后日志在所述起動操作期間不存在于所述第 二存儲單元中時,所述管理信息恢復單元基于所述快照而執(zhí)行所述第一存 儲單元中的管理信息的恢復,其中當在作為所述前日志的存儲之后的更新處理而執(zhí)行所述第二存儲單元 中的數(shù)據(jù)的寫入時發(fā)生程序錯誤時,所述管理信息存儲單元再次存儲與數(shù) 據(jù)的重寫處理對應的前日志,并且在完成所述重寫處理之后,在存儲與所 述重寫處理對應的后日志之后,存儲與發(fā)生所述程序錯誤之前所存儲的所 述前日志對應的后日志。
8. 根據(jù)權利要求7的存儲器系統(tǒng),其中所述第二存儲單元包括 快照存儲區(qū),其用于存儲所述快照;前日志存儲區(qū),其用于存儲所述前日志; 后日志存儲區(qū),其用于存儲所述后日志;以及 指針存儲區(qū),其用于存儲指針,所述指針指示所述快照存儲區(qū)、所述 前曰志存儲區(qū)和所述后日志存儲區(qū)的存儲位置。
9. 根據(jù)權利要求8的存儲器系統(tǒng),其中所述快照存儲區(qū)、所述前日志 存儲區(qū)、所述后日志存儲區(qū)和所述指針存儲區(qū)中的每一個包括作為數(shù)據(jù)擦 除單位的塊。
10. 根據(jù)權利要求9的存儲器系統(tǒng),其中所述前日志和所述后日志中 的每一個以一次寫入的方式以頁單位被寫入所述前日志存儲區(qū)和所述后日志區(qū)中,所述頁單位小于所述塊大小,每次獲取所述前日志和所述后曰志 作為差異信息。
11. 根據(jù)權利要求7的存儲器系統(tǒng),其中 所述第一存儲單元為DRAM,并且 所述第二存儲單元為NAND閃速存儲器。
全文摘要
本發(fā)明提供一種即使在在數(shù)據(jù)寫入期間發(fā)生程序錯誤時也可確實地恢復管理信息的存儲器系統(tǒng)。在對前日志的“日志寫入(1)”之后,當在執(zhí)行數(shù)據(jù)寫入時發(fā)生程序錯誤(數(shù)據(jù)寫入錯誤)時,所述存儲器系統(tǒng)再次執(zhí)行所述數(shù)據(jù)寫入而不獲取與數(shù)據(jù)重寫處理對應的前日志。在結束所述數(shù)據(jù)寫入之后,所述存儲器系統(tǒng)在不產生后日志的情況下獲取快照來替代所述后日志,且結束所述處理。
文檔編號G06F12/16GK101681317SQ200980000143
公開日2010年3月24日 申請日期2009年2月10日 優(yōu)先權日2008年3月1日
發(fā)明者初田幸輔, 松崎秀則, 松平弘樹, 矢野純二 申請人:株式會社東芝