專利名稱:具有閃存設(shè)備的系統(tǒng)及其數(shù)據(jù)恢復(fù)方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及存儲(chǔ)媒體,更具體地,本發(fā)明涉及用于恢復(fù)非易失性存 儲(chǔ)器中的數(shù)據(jù)的方法和系統(tǒng)。
對(duì)2006年10月25日提交的韓國(guó)專利申請(qǐng)No.2006-104152要求35U.S.C
§下的優(yōu)先權(quán),在此并入其整體內(nèi)容作為參考。
背景技術(shù):
根據(jù)存儲(chǔ)器單元用位線相互連接的方式,閃存通常被分類為NOR型或 NAND型。NOR閃存能夠進(jìn)行相對(duì)快的讀操作,因此通常用作代碼存儲(chǔ)器。 另一方面,NAND閃存能有相對(duì)高的寫頻率,并且通常用作低成本、高容量 數(shù)據(jù)存儲(chǔ)媒體。
在NOR型閃存和NAND型閃存兩者中,每個(gè)單位存儲(chǔ)器單元在編程之 前必須處于擦寫狀態(tài)。另外,通常以擦寫塊或者包含大量存儲(chǔ)器單元的擦寫 區(qū)為單位執(zhí)行擦寫功能。閃存的這些和其他特性必須使用設(shè)備的閃存和文件 系統(tǒng)之間的"快閃翻譯層"(FTL)。 FTL通常用于隱藏閃存的擦寫操作,并且 用于仿效諸如盤驅(qū)動(dòng)器的存儲(chǔ)設(shè)備或其他海量存儲(chǔ)設(shè)備。例如,在寫操作期 間,F(xiàn)TL用于使用文件系統(tǒng)生成的邏輯地址來映射閃存的物理地址。為了實(shí) 現(xiàn)快速映射操作,F(xiàn)TL使用通常由靜態(tài)隨機(jī)存取存儲(chǔ)器(RAM)組成的地址映 射表。FTL的地址映射功能允許主機(jī)識(shí)別作為硬盤驅(qū)動(dòng)器(HDD)或靜態(tài)RAM 的閃存,并且允許主機(jī)以與HDD或靜態(tài)RAM相同的方式存取閃存。
作為FTL的塊地址映射示例,圖1是虛擬塊映射方案的圖表示出。如所 示,"n"個(gè)邏輯地址域塊LBN—0至LBN—n-l被映射到"n + m"個(gè)物理地址 域塊PBN一0至PBN—n-l以及RBN—0至RBN—m-l 。超過"n"個(gè)邏輯域塊的 "m"個(gè)物理地址域塊可被認(rèn)為是代替異常("壞")塊采用的備用塊。
在邏輯地址域塊映射到物理地址域塊未被固定地定義的意義上,邏輯地 址域塊映射到物理地址域塊是動(dòng)態(tài)的。例如,"耗損平衡(wear-leveling)"方案 可被用來延長(zhǎng)閃存的存儲(chǔ)器塊的壽命。例如,耗損平衡可以包含存儲(chǔ)指示對(duì)
每個(gè)存儲(chǔ)器塊的擦寫計(jì)數(shù)(erase count)的信息、和將邏輯塊地址分配給具有最 小擦寫計(jì)數(shù)的那些存儲(chǔ)器塊。
同時(shí), 一旦發(fā)生因疏忽所致的(inadvertent)電源失去(例如電源故障),則 在重新啟動(dòng)期間必須恢復(fù)FTL映射信息。這通常通過執(zhí)行這樣的處理來完成, 即,通過掃描所有塊來讀取來自每個(gè)塊中包含的特定字段的映射信息,然后 恢復(fù)RAM(隨機(jī)存取存儲(chǔ)器)中組成的映射表。該處理引起在重新啟動(dòng)期間消 耗時(shí)間和資源的缺點(diǎn)。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的 一方面,提供了 一種在包括閃存設(shè)備的系統(tǒng)中恢復(fù)塊映射 表的方法,其中所述塊映射表采用根據(jù)耗損平衡方案的地址映射。所述方法 包括對(duì)于耗損平衡方案從閃存設(shè)備讀取塊排列信息;參考所述塊排列信息 中包含的分配塊信息恢復(fù)所述塊映射表;參考所述塊排列信息中包含的擦寫
并且根據(jù)掃描的地址分配信息更新所述塊映射表。
根據(jù)本發(fā)明的另一方面,提供了一種存儲(chǔ)器系統(tǒng),包括非易失性存儲(chǔ) 設(shè)備,其存儲(chǔ)塊排列信息;中央處理單元;和隨機(jī)存取存儲(chǔ)器,其存儲(chǔ)塊映 射表,所述塊映射表被配置成對(duì)應(yīng)于從所述中央處理單元提供的邏輯塊地址 而分配所述非易失性存儲(chǔ)設(shè)備的物理塊地址,其中所述塊映射表采用根據(jù)耗 損平衡方案的地址映射。所述中央處理單元參考非易失性存儲(chǔ)設(shè)備的塊排列 信息中包含的分配塊信息來恢復(fù)塊映射表,參考擦寫塊信息來定位擦寫塊的 備用區(qū)域中包含的地址信息,并且根據(jù)所定位的地址信息來更新塊映射表。
根據(jù)本發(fā)明的再一方面,提供了一種系統(tǒng),包括中央處理單元;混合 硬盤,其存儲(chǔ)數(shù)據(jù)并包含非易失性高速緩沖存儲(chǔ)器;和隨機(jī)存取存儲(chǔ)器,其 存儲(chǔ)塊映射表,所述塊映射表被配置成對(duì)應(yīng)于從所述中央處理單元提供的邏 輯塊地址而分配所述非易失性高速緩沖存儲(chǔ)器的物理塊地址,其中所述塊映 射表采用根據(jù)耗損平衡方案的地址映射。所述中央處理單元參考非易失性高 速緩沖存儲(chǔ)器的塊排列信息中包含的分配塊信息來恢復(fù)塊映射表,參考擦寫 塊信息定位擦寫塊的備用區(qū)域中包含的地址信息,并且根據(jù)所定位的地址信 息來更新塊映射表。
將參考附圖描述本發(fā)明的非限制性和非窮盡的實(shí)施例,其中,貫穿各個(gè) 附圖,除非相反規(guī)定,否則相同的附圖標(biāo)記指代相同的部件。附圖中
圖1是用于解釋虛擬塊(virtualblock)映射方案的圖表; 圖2是用于解釋根據(jù)本發(fā)明實(shí)施例的恢復(fù)塊映射表的方法的圖表; 圖3是圖解說明圖2的圖表中所示的閃存區(qū)的示例性配置的圖表; 圖4是用于解釋圖3的圖表中所示的耗損分類塊列表(WSBL)的圖表; 圖5是用于解釋圖3的圖表中所示的樹信息區(qū)域的圖表; 圖6是用于解釋根據(jù)本發(fā)明實(shí)施例的樹信息區(qū)域的恢復(fù)操作的圖表; 圖7是圖解說明根據(jù)本發(fā)明實(shí)施例的塊映射表的恢復(fù)方法的操作過程的 流程圖;和
圖8是示意性圖解說明可按根據(jù)本發(fā)明實(shí)施例的塊映射表的恢復(fù)方法操 作的系統(tǒng)的方框圖。
具體實(shí)施例方式
下面將參考附圖更詳細(xì)地描述本發(fā)明的優(yōu)選實(shí)施例。然而,本發(fā)明能夠 以不同的方式體現(xiàn),并且不應(yīng)當(dāng)被曲解為限制于此處所陳述的實(shí)施例。相反, 提供這些實(shí)施例,使得本公開透徹完整,并且將向本領(lǐng)域的普通技術(shù)人員完 全傳達(dá)本發(fā)明的范圍。貫穿附圖,相同的附圖標(biāo)記指代相同的元件。
根據(jù)本發(fā)明的實(shí)施例,在失去電源之后的重新啟動(dòng)期間,通過利用閃存 設(shè)備中存儲(chǔ)的耗損分類塊列表(wear-sorted block list, WSBL)(即,塊排列信息) 來執(zhí)行映射表的恢復(fù)。首先,恢復(fù)存儲(chǔ)WSBL中包含的有效數(shù)據(jù)的分配塊的 地址信息。然后,參考地址信息,根據(jù)搜索在與其對(duì)應(yīng)的塊的備用字段中記 錄的地址映射信息,高速恢復(fù)在發(fā)生電源失去時(shí)的全部數(shù)據(jù)結(jié)構(gòu)。
現(xiàn)在將參考圖2來描述根據(jù)本發(fā)明實(shí)施例的在閃存設(shè)備的電源失去之后 恢復(fù)塊映射表的方法。
圖2圖解說明了塊映射表10和閃存存儲(chǔ)區(qū)。如所示,塊映射表包括被映 射到物理地址PBN的邏輯地址LBN。例如,對(duì)主設(shè)備提供的邏輯地址^皮映射 表10翻譯為物理地址PBN。物理地址PBN識(shí)別閃存存儲(chǔ)區(qū)的多個(gè)存儲(chǔ)塊 BLK—0至BLK—n-l之一。
塊映射表10可以由諸如移動(dòng)設(shè)備或計(jì)算機(jī)之類的系統(tǒng)的RAM形成,并
且可被周期性地存儲(chǔ)在閃存設(shè)備中或者遵從來自主機(jī)的命令。
塊BLK一O至BLK一n-l中的每個(gè)構(gòu)成閃存設(shè)備的擦寫單元。而且,每個(gè) 塊包括多個(gè)頁(yè),并且每一頁(yè)構(gòu)成閃存設(shè)備的寫單元。在圖2的示例中,塊 BLK—0至BLK—n-l被劃分為分區(qū)信息字段20、元數(shù)據(jù)字段30和用戶數(shù)據(jù)字 段40。分區(qū)信息字段20存儲(chǔ)與閃存的所有文件相關(guān)的分區(qū)信息以及與壞塊 的位置相關(guān)的信息。元數(shù)據(jù)字段30包含具有從主機(jī)提供的邏輯地址和閃存的 物理地址的映射信息、以及耗損分類塊列表WSBL。用戶數(shù)據(jù)字段40被提供 用于存儲(chǔ)從主機(jī)輸入的數(shù)據(jù)。各個(gè)字段的每個(gè)塊可以包括用于存儲(chǔ)數(shù)據(jù)的主 區(qū)域、和用于存儲(chǔ)與主區(qū)域的數(shù)據(jù)相關(guān)的信息的備用區(qū)域。
下面將舉例來描述使用閃存設(shè)備作為硬盤驅(qū)動(dòng)器(HDD)的高速緩沖存儲(chǔ) 器的本發(fā)明的映射表恢復(fù)方法。閃存設(shè)備輔助垃圾收集的操作,所述垃圾收 集操作利用各個(gè)塊上分散的數(shù)據(jù)來填滿塊。而且,它還提供沖刷(flush)操作, 用于將高速緩沖數(shù)據(jù)從用作高速緩沖存儲(chǔ)器的閃存設(shè)備存儲(chǔ)到盤。塊映射表 IO被形成在配備有閃存設(shè)備的系統(tǒng)的RAM上,構(gòu)成文件系統(tǒng)。塊映射表IO 在其每次修改時(shí)被預(yù)留在閃存設(shè)備的特定字段中,并且當(dāng)發(fā)生失敗時(shí)被用作 用于恢復(fù)的數(shù)據(jù)。然而,在映射表10的每次修改時(shí)將修改的數(shù)據(jù)存儲(chǔ)到閃存 設(shè)備的該操作模式會(huì)引起明顯的操作開銷。因此,為了減少操作開銷,可以 改變塊映射表10的更新條件。而且,僅當(dāng)產(chǎn)生垃圾收集或沖刷操作時(shí)才可以 更新閃存設(shè)備中包含的WBSL。本發(fā)明實(shí)施例的系統(tǒng)首先通過WBSL恢復(fù)映 射表。進(jìn)而,經(jīng)由通過參考WSBL的耗損計(jì)數(shù)(wearcount)直接存取相應(yīng)的塊 來讀取映射信息的掃描操作,恢復(fù)在電源失去之前更新WSBL之后修改的映 射信息。
如此,參考具有相對(duì)較小的更新計(jì)數(shù)的WSBL來完成產(chǎn)生電源失去時(shí)塊 映射表10的恢復(fù)。參考WSBL(即,塊排列信息),首先在更新WSBL時(shí)恢復(fù) 塊映射表10。然后,順序進(jìn)行參考WSBL信息對(duì)擦寫塊搜索空白字段(space field),并且讀出從WSBL更新時(shí)間到電源失去時(shí)修改的塊地址信息。而且, 參考所讀出的修改的塊地址信息,可以將塊映射表IO恢復(fù)到電源失去時(shí)間的 狀態(tài)。
圖3是圖解說明圖2中所示的閃存區(qū)的示例性配置的示意圖表。參考圖 3,如先前所描述的,閃存區(qū)由分區(qū)信息字段20、元數(shù)據(jù)字段30和用戶數(shù)據(jù) 字|殳40組成。
分區(qū)信息字段20包含用于分區(qū)地管理物理存儲(chǔ)區(qū)域的分區(qū)信息。分區(qū)信
息由文件系統(tǒng)讀出并且被安裝在系統(tǒng)的RAM上。而且,在形成塊映射表的 同時(shí),壞塊信息被提供給分區(qū)信息字段20并被安裝在其上。
元數(shù)據(jù)字段30包括具有其位置信息的表指針區(qū)域31。元數(shù)據(jù)字段30還 包括區(qū)域32,其包含耗損平衡信息(WSBL)。耗損平衡信息區(qū)域(WSBL)32存 儲(chǔ)基于擦寫計(jì)數(shù)而將被排列的塊的分區(qū)信息。樹表33包含閃存設(shè)備的各個(gè)塊 的映射和扇區(qū)地址信息。樹表33變成形成塊映射表10的真正數(shù)據(jù)。
用戶數(shù)據(jù)字段40由與塊映射表IO分配的物理地址對(duì)應(yīng)的塊組成,用于 存儲(chǔ)輸入數(shù)據(jù)。而且,在將輸入數(shù)據(jù)存儲(chǔ)到用戶數(shù)據(jù)字段40的同時(shí)產(chǎn)生的沖 刷或垃圾收集操作期間,更新耗損平衡信息區(qū)域32的WSBL和樹表33。
根據(jù)本發(fā)明實(shí)施例的文件系統(tǒng),在沖刷或垃圾收集操作期間,使用RAM
中形成的最新信息將WSBL更新到閃存。而且,當(dāng)產(chǎn)生樹信息的變化時(shí),在
RAM中立即更新樹表33,但是僅用周期性修改的信息更新閃存?;謴?fù)RAM
中的映射表是將樹表33返回到已經(jīng)發(fā)生電源失去時(shí)的以前狀態(tài)。根據(jù)本發(fā)明
實(shí)施例的存儲(chǔ)設(shè)備能夠首先在發(fā)生電源失去時(shí)通過WSBL恢復(fù)樹表33,然后
通過最少的塊掃描操作恢復(fù)在電源失去之前RAM中組織的樹表33的以前狀 太
心o
圖4是用于圖解說明圖3中所示的耗損分類塊列表(WSBL)的示例的方框 圖。參考圖4, WSBL包括分配信息區(qū)(Alloc)320、自由信息區(qū)(Free)321和垃 圾信息區(qū)(Garbage)322。
分配信息區(qū)320存儲(chǔ)有關(guān)其中從主機(jī)傳送的數(shù)據(jù)已被編程并且由此被存 儲(chǔ)在其中的塊的信息。這時(shí)存儲(chǔ)數(shù)據(jù)的模式符合擦寫計(jì)數(shù)的順序(下文中稱作 EC)。即,具有較低EC的塊首先被分配在從主機(jī)提供的邏輯塊地址LBN之 前。在分配信息區(qū)320中包含的塊上,符號(hào)為OxAA的WSBL—mark被呈現(xiàn) 來表示塊中編程的數(shù)據(jù)有效。
在自由信息區(qū)321中,有關(guān)擦寫塊、即自由塊的全部信息被設(shè)置為基于 EC大小而排列。在從主機(jī)提供的邏輯地址LBN之前,物理地址PBN被分配 給具有較低EC的塊。自由塊用OxA5的WSBL—mark標(biāo)記。
垃圾信息區(qū)322被組織來存儲(chǔ)有關(guān)為在系統(tǒng)中生成的垃圾收集指定的塊 的信息,即,有關(guān)垃圾塊的信息。垃圾收集是用于檢測(cè)和消除不再使用條件 下的數(shù)據(jù)的對(duì)象的系統(tǒng)操作。每當(dāng)文件系統(tǒng)可用的存儲(chǔ)容量下降在固定水平
以下時(shí)自動(dòng)進(jìn)行垃圾收集。自動(dòng)的垃圾收集發(fā)現(xiàn)數(shù)據(jù)的所有對(duì)象之間存在相
關(guān)性,然后與閃存的高速緩沖數(shù)據(jù)無關(guān)的數(shù)據(jù)或塊由垃圾標(biāo)記0x55表示。在 這期間,垃圾標(biāo)記的數(shù)據(jù)的位置可以是以頁(yè)或塊為單位的數(shù)據(jù)。垃圾標(biāo)記0x55 表示的數(shù)據(jù)被認(rèn)為是不必要的數(shù)據(jù),代表那些數(shù)據(jù)對(duì)應(yīng)于將被歸還到系統(tǒng)的 存儲(chǔ)器區(qū)域。因此,具有垃圾標(biāo)記Ox55的存儲(chǔ)器區(qū)域是將被擦寫的區(qū)域。如 果具有垃圾標(biāo)記0x55的塊被擦寫,則標(biāo)記改變?yōu)橹甘咀杂蓧K(或擦寫塊)。擦
現(xiàn)在,參考WSBL的上述配置和排列,通過從閃存讀取WSBL能夠恢復(fù) 對(duì)應(yīng)于已經(jīng)發(fā)生沖刷或垃圾收集操作時(shí)刻的塊映射信息。這是因?yàn)閃SBL的 分配信息區(qū)320包括這樣的信息以EC順序排列已發(fā)生沖刷或垃圾收集時(shí) 刻的物理塊地址到邏輯塊地址。然而,如果在沖刷或垃圾收集操作之后發(fā)生 電源失去,則WSBL不足以完全恢復(fù)已發(fā)生電源失去時(shí)刻的映射表。即,需 要另外以EC順序來掃描WSBL的自由信息區(qū)321的擦寫塊,以便完成塊映 射表的成功恢復(fù)。
圖5是圖解說明存儲(chǔ)所有文件或塊的地址信息(或映射信息)的樹信息區(qū) 域(即樹表)33的示意圖。參考圖5,樹區(qū)域33包含與閃存的文件系統(tǒng)相關(guān)的 樹信息(iTree)。樹信息(iTree)包含地址映射信息。具體地,在組織用于文件管 理的樹和在RAM上加載的文件系統(tǒng)的層結(jié)構(gòu)中使用樹信息(iTree)。樹區(qū)域中 存儲(chǔ)的樹信息(iTree)包括引導(dǎo)系統(tǒng)和安裝其他文件系統(tǒng)必需的文件。這些文 件被加載在系統(tǒng)的RAM中,形成樹結(jié)構(gòu)。結(jié)果,通過重新啟動(dòng)系統(tǒng)恢復(fù)數(shù) 據(jù)的特征是指將RAM的樹結(jié)構(gòu)(iTree)恢復(fù)到與在電源故障之前的狀態(tài)對(duì)應(yīng) 的樹結(jié)構(gòu)。包含閃存的文件系統(tǒng)的樹信息(iTree)的樹區(qū)域33包括備份區(qū)331, 在引導(dǎo)系統(tǒng)的同時(shí)存儲(chǔ)當(dāng)中斷正常電源時(shí)備份的樹信息;和更新區(qū)332(Updta l~UpdateM),存儲(chǔ)后來修改的樹信息。因?yàn)樵谝淮尉幊棠J街锌刹僮鏖W存 設(shè)備,不能將數(shù)據(jù)重寫到其存儲(chǔ)單元。因此,修改的樹信息被寫入更新區(qū)。 盡管可以按頁(yè)為單位寫更新信息,作為替換可以寫其他存儲(chǔ)單元。
編程到更新區(qū)332的數(shù)據(jù)包括對(duì)安裝在RAM上的樹信息修改的信息。 首標(biāo)區(qū)(Header)334包含一般ID信息336、變量337、代表更新節(jié)點(diǎn)的數(shù)量的 信息338、和更新節(jié)點(diǎn)索引339。
在具有如此數(shù)據(jù)結(jié)構(gòu)的閃存設(shè)備的樹區(qū)域33中,樹信息(iTree)與第一塊 映射表對(duì)應(yīng)地被存儲(chǔ)在備份區(qū)(或樹信息區(qū))中。之后,順序更新的樹信息區(qū)形
成樹結(jié)構(gòu)。當(dāng)在樹信息區(qū)中沒有要寫入的空間時(shí),擦信息區(qū)331被擦除,然
后用在RAM中呈現(xiàn)的最近樹信息來編程樹信息區(qū)331。
圖6是圖解說明通過根據(jù)本發(fā)明實(shí)施例的WSBL的樹信息區(qū)域33的恢 復(fù)操作的方框圖。參考圖6,在文件系統(tǒng)中,如果在因疏忽所致的電源失去 之后重新啟動(dòng)系統(tǒng),則通過WSBL32的分配塊信息320來恢復(fù)樹區(qū)域的備份 區(qū)331(參考圖5),并且之后通過參考樹信息區(qū)321掃描頁(yè),用普通樹信息或 塊映射表來恢復(fù)更新區(qū)332。
如果重新啟動(dòng)系統(tǒng),則從閃存設(shè)備讀出最后更新的WSBL,并且基于最
后更新的WSBL恢復(fù)樹信息。這對(duì)應(yīng)于樹區(qū)域33的備份區(qū)331。通過WSBL
的讀取操作將所有樹區(qū)域數(shù)據(jù)恢復(fù)到塊PBN27。然后,對(duì)于排除了 WSBL32
的分配信息區(qū)320的剩余塊執(zhí)行掃描操作。該操作通過參考EC掃描WSBL
中包含的自由塊(freeblock)來完成。因此,通過以EC順序直接存取自由塊和
讀取來自備用區(qū)域的樹信息獲得了從WSBL的最近更新到電源失去的樹信 自
圖6示意性示出了塊PBN37的掃描操作。該塊掃描操作可以對(duì)應(yīng)包含在 塊的第一頁(yè)的備用區(qū)域中存儲(chǔ)的塊信息的樹信息。具體地,更新區(qū)332可以 通過讀它的相應(yīng)塊的邏輯地址和扇區(qū)信息而被恢復(fù)。對(duì)于自由塊的該掃描操 作被執(zhí)行,直到檢測(cè)垃圾塊為止。在對(duì)所有自由塊讀取樹信息或塊映射信息 之后,完成塊映射表的恢復(fù)?;诨謴?fù)的塊映射表,可以將文件系統(tǒng)的樹結(jié) 構(gòu)安裝在RAM上。
掃描操作包括從閃存設(shè)備的塊信息區(qū)讀取數(shù)據(jù),譯解讀出數(shù)據(jù),并且確 定是否存在垃圾標(biāo)記。掃描操作繼續(xù),直到發(fā)現(xiàn)在閃存設(shè)備的塊信息區(qū)中存 儲(chǔ)的垃圾標(biāo)記(GM)。如果發(fā)現(xiàn)垃圾標(biāo)記(GM),恢復(fù)直到相應(yīng)塊的映射表。即, 通過WBSL的順序來恢復(fù)電源失去之前的沖刷或垃圾收集時(shí)刻的塊映射表。 而且,通過剩余塊的掃描操作恢復(fù)從沖刷或垃圾收集的時(shí)刻到電源失去時(shí)刻 的映射信息。這里,盡管處理了對(duì)自由塊的備用區(qū)域的掃描操作直到發(fā)現(xiàn)垃 圾標(biāo)記(GM),但是也允許僅掃描作為自由塊的用WSBL—mark (0xA5)表示的 塊。
圖7是示出本發(fā)明的塊映射表的恢復(fù)方法的操作過程的流程圖。參考圖 7,將描述通過WSBL順序首先恢復(fù)塊映射表、隨后隨時(shí)間通過塊掃描操作 恢復(fù)剩余映射信息的過程。將結(jié)合下面的附圖詳述恢復(fù)塊映射表的順序。
如果由于因疏忽所致的電源失去而重新啟動(dòng)系統(tǒng),則數(shù)據(jù)恢復(fù)操作由文
件管理器(或固件)開始。 一旦數(shù)據(jù)恢復(fù)操作開始,從閃存設(shè)備的WSBL區(qū)域 讀出電源失去之前的最近更新的WSBL(SIO)。參考讀出的WSBL中包含的 EC(即擦寫計(jì)數(shù)),系統(tǒng)恢復(fù)與更新時(shí)間對(duì)應(yīng)的塊映射表。WSBL在產(chǎn)生沖刷 或垃圾收集操作時(shí)刻在RAM上被更新,并且隨后被編程到閃存設(shè)備的元數(shù) 據(jù)字段30。因此,由于因疏忽所致的電源失去,系統(tǒng)應(yīng)當(dāng)被設(shè)置來在重新啟 動(dòng)模式中讀取WSBL。根據(jù)WSBL指定的所有塊的EC的順序首先完成RAM 上形成的塊映射表(S20)。在參考讀出的WSBL完成塊映射表的恢復(fù)之后,針 對(duì)仍未被WSBL指定的物理塊執(zhí)行掃描操作,以便獲取映射信息。該掃描操 作開始讀取未被WSBL定義的塊的塊信息區(qū)(S30)。然后,包含在未被WSBL 定義的物理塊的備用區(qū)域中的塊映射信息被讀取并且被添加到RAM上構(gòu)成 的塊映射表(S40)。如果根據(jù)掃描每個(gè)塊的塊信息區(qū)發(fā)現(xiàn)垃圾標(biāo)記,則執(zhí)行恢 復(fù)塊映射表的順序,直到具有垃圾標(biāo)記的塊。因此,它檢測(cè)是否存在垃圾標(biāo) 記(S50)。如果在掃描的塊中不存在垃圾標(biāo)記(GM),則掃描操作的過程移動(dòng)到 未被WSBL定義的剩余塊。然后,它讀取在用于移動(dòng)的塊的塊信息區(qū)中包含 的映射數(shù)據(jù),并且基于讀出的映射數(shù)據(jù)更新RAM的塊映射表(S60)。 一旦檢 測(cè)具有垃圾標(biāo)記(GM)的塊,通過給RAM的塊映射表提供映射信息來完成全 部映射表的恢復(fù)過程,直到被垃圾標(biāo)記表示的塊(S7)。
圖8是示意性圖解說明可按根據(jù)本發(fā)明實(shí)施例的塊映射表的上述恢復(fù)方 法操作的計(jì)算機(jī)系統(tǒng)的示例的方框圖。參考圖8,計(jì)算機(jī)系統(tǒng)包括中央處理 單元110、 RAM(即,對(duì)應(yīng)于上述的RAM)120、輸入/輸出設(shè)備.130、和使用 閃存設(shè)備作為寫高速緩沖存儲(chǔ)器(即,非易失性高速緩沖存儲(chǔ)器102)的混合硬 盤100。在由于因疏忽所致的電源失去引起的重新啟動(dòng)模式中,系統(tǒng)通過從 閃存設(shè)備的非易失性高速緩沖存儲(chǔ)器102讀取WSBL來恢復(fù)塊映射表。而且, 通過直到檢測(cè)垃圾標(biāo)記(GM)時(shí)刻進(jìn)行的掃描操作可以恢復(fù)WSBL未分配的 塊?;旌嫌脖P100通常通過系統(tǒng)總線130的方式被提供命令、地址和數(shù)據(jù)。 盤控制器101暫時(shí)存儲(chǔ)將被提供給非易失性高速緩沖存儲(chǔ)器102的數(shù)據(jù),并 且當(dāng)非易失性高速緩沖存儲(chǔ)器102不能進(jìn)一步存儲(chǔ)數(shù)據(jù)時(shí)將高速緩存數(shù)據(jù)沖 刷到磁盤103。而且,盤控制器101與從中央處理單元110或操作系統(tǒng)提供 的邏輯地址相應(yīng)地映射閃存設(shè)備的物理地址。
當(dāng)發(fā)生因疏忽所致的電源失去時(shí),系統(tǒng)從非易失性高速緩沖存儲(chǔ)器102
讀取編程的WSBL,并且參考WSBL中包含的EC將物理塊地址分配給在 RAM 120中組成的塊映射表。而且,系統(tǒng)對(duì)未由WSBL定義的塊讀取塊信息 區(qū)。繼續(xù)讀取塊信息區(qū)的這一操作,直到檢測(cè)具有垃圾標(biāo)記的塊。
通過上述方案,當(dāng)發(fā)生因疏忽所致的電源失去時(shí),系統(tǒng)能夠快速地恢復(fù) 塊映射數(shù)據(jù)或者塊映射表。盡管重新啟動(dòng)系統(tǒng),也可以從非易失性高速緩沖 存儲(chǔ)器102調(diào)用最近更新的WSBL,并且然后參考WSBL首先恢復(fù)塊映射數(shù) 據(jù)。而且,執(zhí)行對(duì)剩余塊的恢復(fù)映射信息的恢復(fù)操作,直到從剩余塊檢測(cè)到 垃圾標(biāo)記。
如上所述,根據(jù)本發(fā)明的恢復(fù)方案,當(dāng)恢復(fù)閃存設(shè)備的塊映射表或數(shù)據(jù) 時(shí),可能實(shí)現(xiàn)能夠提高操作速度的高速緩沖存儲(chǔ)器。而且,因?yàn)椴槐貙⒏郊?的映射信息恢復(fù)到閃存設(shè)備,因此能夠減少高速緩沖操作的開銷。
上述主題事務(wù)將被認(rèn)為是圖解性的,而不是限制性,并且所附權(quán)利要求 旨在覆蓋落入本發(fā)明的真正精神和范疇之內(nèi)的所有修改、改進(jìn)和其他實(shí)施例。 因此,為了法律允許的最大延伸,本發(fā)明的范圍由所附權(quán)利要求及其等效物 的最廣可能解釋而確定,并且不應(yīng)當(dāng)受前面詳細(xì)描述的限制。
權(quán)利要求
1.一種用于在包括閃存設(shè)備的系統(tǒng)中恢復(fù)塊映射表的方法,所述塊映射表采用根據(jù)耗損平衡方案的地址映射,所述方法包括對(duì)于所述耗損平衡方案從閃存設(shè)備讀取塊排列信息;參考所述塊排列信息中包含的分配塊信息恢復(fù)所述塊映射表;參考所述塊排列信息中包含的擦寫塊信息,掃描在所述閃存設(shè)備的擦寫塊的備用區(qū)域中包含的地址分配信息,并且根據(jù)掃描的地址分配信息更新所述塊映射表。
2. 如權(quán)利要求l所述的方法,其中所述塊排列信息包括指示所述閃存設(shè) 備的塊的擦寫計(jì)數(shù)的信息。
3. 如權(quán)利要求2所述的方法,其中所述塊排列信息以擦寫計(jì)數(shù)的順序排 列,并且其中具有最小擦寫計(jì)數(shù)的塊首先被分配給從主機(jī)提供的邏輯塊地址。
4. 如權(quán)利要求l所述的方法,其中所述塊映射表組成在系統(tǒng)的隨機(jī)存取 存儲(chǔ)器中。
5. 如權(quán)利要求l所述的方法,其中所述塊排列信息包括 指示初步分配給邏輯塊地址并且以擦寫計(jì)數(shù)的順序排列的信息; 包含指示擦寫塊并且以擦寫計(jì)數(shù)的順序排列的信息的自由塊信息;和 指示存儲(chǔ)副本或無效數(shù)據(jù)的垃圾塊的信息。
6. 如權(quán)利要求5所述的方法,其中除了垃圾塊以外,執(zhí)行地址分配信息 的掃描。
7. 如權(quán)利要求6所述的方法,垃圾塊的備用區(qū)域包括指示垃圾塊狀態(tài)的 垃圾標(biāo)記。
8. —種存儲(chǔ)器系統(tǒng),包括 非易失性存儲(chǔ)設(shè)備,其存儲(chǔ)塊排列信息; 中央處理單元;和隨機(jī)存取存儲(chǔ)器,其存儲(chǔ)塊映射表,所述塊映射表被配置成對(duì)應(yīng)于從所 述中央處理單元提供的邏輯塊地址而分配所述非易失性存儲(chǔ)設(shè)備的物理塊地 址,所述塊映射表采用根據(jù)耗損平衡方案的地址映射,其中所述中央處理單元參考非易失性存儲(chǔ)設(shè)備的塊排列信息中包含的分 配塊信息來恢復(fù)塊映射表,參考擦寫塊信息來定位擦寫塊的備用區(qū)域中包含 的地址信息,并且根據(jù)所定位的地址信息來更新塊映射表。
9. 如權(quán)利要求8所述的存儲(chǔ)器系統(tǒng),其中所述塊排列信息包括才艮據(jù)非易 失性存儲(chǔ)設(shè)備的塊的擦寫計(jì)數(shù)而排列的地址信息,其中所述地址信息包括指示存儲(chǔ)有效數(shù)據(jù)的塊的分配塊信息、指示擦寫 塊的擦寫塊信息、和指示存儲(chǔ)無效數(shù)據(jù)的塊的垃圾塊信息。
10. 如權(quán)利要求9所述的存儲(chǔ)器系統(tǒng),其中所述塊排列信息在垃圾收集 操作期間被從隨機(jī)存取存儲(chǔ)器更新到非易失性存儲(chǔ)設(shè)備中。
11. 如權(quán)利要求IO所述的存儲(chǔ)器系統(tǒng),其中所述塊映射表由包含非易失 性存儲(chǔ)設(shè)備的數(shù)據(jù)結(jié)構(gòu)的樹結(jié)構(gòu)定義。
12. 如權(quán)利要求11所述的存儲(chǔ)器系統(tǒng),其中所述樹結(jié)構(gòu)被周期性地存儲(chǔ) 在非易失性存儲(chǔ)設(shè)備中。
13. 如權(quán)利要求8所述的存儲(chǔ)器系統(tǒng),其中所述非易失性存儲(chǔ)設(shè)備包括 NAND閃存設(shè)備。
14. 如權(quán)利要求8所述的存儲(chǔ)器系統(tǒng),其中所述非易失性存儲(chǔ)設(shè)備包括 oneNAND閃存設(shè)備。
15. 如權(quán)利要求8所述的存儲(chǔ)器系統(tǒng),還包括用于進(jìn)行數(shù)據(jù)輸入/輸出操 作的輸入/輸出設(shè)備。
16. 如權(quán)利要求15所述的存儲(chǔ)器系統(tǒng),還包括互連輸入/輸出設(shè)備、中 央處理單元、隨機(jī)存取存儲(chǔ)器和非易失性存儲(chǔ)設(shè)備的系統(tǒng)總線。
17. —種系統(tǒng),包括 中央處理單元;混合硬盤,其存儲(chǔ)數(shù)據(jù)并包含非易失性高速緩沖存儲(chǔ)器;和 隨機(jī)存取存儲(chǔ)器,其存儲(chǔ)塊映射表,所述塊映射表被配置成對(duì)應(yīng)于從所 述中央處理單元提供的邏輯塊地址而分配所述非易失性高速緩沖存儲(chǔ)器的物 理塊地址,所述塊映射表采用根據(jù)耗損平衡方案的地址映射,其中所述中央處理單元參考非易失性高速緩沖存儲(chǔ)器的塊排列信息中包 含的分配塊信息來恢復(fù)塊映射表,參考擦寫塊信息定位擦寫塊的備用區(qū)域中 包含的地址信息,并且根據(jù)所定位的地址信息來更新塊映射表。
18. 如權(quán)利要求17所述的系統(tǒng),其中所述混合硬盤包括 磁盤,其存儲(chǔ)非易失性高速緩沖存儲(chǔ)器的高速緩沖數(shù)據(jù);和 盤控制器,其連接外部數(shù)據(jù),并且控制從非易失性高速緩沖存儲(chǔ)器將被沖刷到;茲盤的高速緩沖數(shù)據(jù)。
19. 如權(quán)利要求18所述的系統(tǒng),其中所述塊排列信息包括根據(jù)非易失性 高速緩沖存儲(chǔ)器的塊的擦寫計(jì)數(shù)排列的地址信息,其中所述地址信息包括指示存儲(chǔ)有效數(shù)據(jù)的塊的分配塊信息、指示擦寫 塊的擦寫塊信息、和指示存儲(chǔ)無效數(shù)據(jù)的塊的垃圾塊信息。
20. 如權(quán)利要求19所述的系統(tǒng),其中所述塊排列信息在沖刷操作或垃圾 收集操作期間從隨機(jī)存取存儲(chǔ)器被更新到非易失性高速緩沖存儲(chǔ)器。
21. 如權(quán)利要求19所述的系統(tǒng),其中所述塊映射表由包含非易失性高速 緩沖存儲(chǔ)器的數(shù)據(jù)結(jié)構(gòu)的樹結(jié)構(gòu)定義。
22. 如權(quán)利要求21所述的系統(tǒng),其中所述樹結(jié)構(gòu)在非易失性高速緩沖存 儲(chǔ)器中被周期性地更新。
23. 如權(quán)利要求17所述的系統(tǒng),其中所述非易失性高速緩沖存儲(chǔ)器包括 NAND閃存。
24. 如權(quán)利要求17所述的存儲(chǔ)器系統(tǒng),其中所述非易失性高速緩沖存儲(chǔ) 器包括oneNAND閃存。
25. 如權(quán)利要求17所述的系統(tǒng),還包括用于進(jìn)行數(shù)據(jù)輸入/輸出操作的 輸入/輸出設(shè)備。
26. 如權(quán)利要求24所述的系統(tǒng),還包括互連輸入/輸出設(shè)備、中央處理 單元、隨機(jī)存取存儲(chǔ)器和混合硬盤的系統(tǒng)總線。
全文摘要
提供了一種用于在包括閃存設(shè)備的系統(tǒng)中恢復(fù)塊映射表的方法,其中所述塊映射表根據(jù)耗損平衡方案來采用地址映射。所述方法包括對(duì)于所述耗損平衡方案讀取來自閃存設(shè)備的塊排列信息;參考所述塊排列信息中包含的分配塊信息恢復(fù)所述塊映射表;參考所述塊排列信息中包含的擦寫塊信息,掃描在所述閃存設(shè)備的擦寫塊的備用區(qū)域中包含的地址分配信息,并且根據(jù)掃描的地址分配信息更新所述塊映射表。
文檔編號(hào)G06F11/14GK101169751SQ20071018143
公開日2008年4月30日 申請(qǐng)日期2007年10月25日 優(yōu)先權(quán)日2006年10月25日
發(fā)明者宋東顯, 李時(shí)潤(rùn), 牟然振, 鄭明珍, 金莊煥, 黃在顯 申請(qǐng)人:三星電子株式會(huì)社