專(zhuān)利名稱(chēng):維持非易失性存儲(chǔ)系統(tǒng)中的平均擦除計(jì)數(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及大量數(shù)字?jǐn)?shù)據(jù)存儲(chǔ)系統(tǒng)。更明確地說(shuō),本發(fā)明涉及有效維持擦除計(jì)數(shù)的系統(tǒng)和方法,其用于允許與非易失性存儲(chǔ)系統(tǒng)的存儲(chǔ)區(qū)域相關(guān)聯(lián)的損耗在大體上所有的存儲(chǔ)區(qū)域中擴(kuò)展。
背景技術(shù):
歸因于存儲(chǔ)器系統(tǒng)壓縮的物理尺寸和非易失性存儲(chǔ)器可反復(fù)編程的能力,如閃存存儲(chǔ)系統(tǒng)的非易失性存儲(chǔ)器系統(tǒng)的使用量在日漸增長(zhǎng)。閃存存儲(chǔ)系統(tǒng)的壓縮的物理尺寸促進(jìn)了這些存儲(chǔ)系統(tǒng)在越來(lái)越流行的裝置中的應(yīng)用。使用閃存存儲(chǔ)系統(tǒng)的裝置包括(但不限于)數(shù)字相機(jī)、數(shù)字?jǐn)z像機(jī)、數(shù)字音樂(lè)播放器、手提式個(gè)人計(jì)算機(jī)和全球定位裝置。反復(fù)重編程閃存存儲(chǔ)系統(tǒng)中包括的非易失性存儲(chǔ)器的能力使得可以使用和再使用閃存存儲(chǔ)系統(tǒng)。
一般來(lái)說(shuō),閃存存儲(chǔ)系統(tǒng)可包括閃存卡和閃存芯片組。閃存芯片組一般包括閃存組件和控制器組件。通常可配置閃存芯片組以裝配在一個(gè)嵌入式系統(tǒng)中。所述等裝配件或主機(jī)系統(tǒng)的制造商通常要求組件形式的閃存(flashmemory)以及其它組件,然后將閃存和其它組件裝配成一個(gè)主機(jī)系統(tǒng)。
盡管非易失性存儲(chǔ)器或,更具體地說(shuō),閃存系統(tǒng)中的閃存存儲(chǔ)區(qū)塊可以反復(fù)編程和擦除,但是該區(qū)塊損壞之前(即,存儲(chǔ)器開(kāi)始變小之前),每個(gè)區(qū)塊或物理位置僅可擦除一定的次數(shù)。也就是說(shuō),每個(gè)區(qū)塊具有一個(gè)編程和擦除循環(huán)極限。在某些存儲(chǔ)器中,在認(rèn)為區(qū)塊不能使用之前可以將區(qū)塊擦除近一萬(wàn)次。在其它存儲(chǔ)器中,在認(rèn)為區(qū)塊損壞之前可以將該區(qū)塊擦除高達(dá)約十萬(wàn)次或者甚至一百萬(wàn)次。當(dāng)一個(gè)區(qū)塊損壞,從而導(dǎo)致閃存系統(tǒng)的整個(gè)存儲(chǔ)容量的一部分使用量損失或性能顯著下降時(shí),閃存系統(tǒng)的使用者可能受到不利影響,例如丟失存儲(chǔ)數(shù)據(jù)或不能存儲(chǔ)數(shù)據(jù)。
在閃存系統(tǒng)內(nèi)的區(qū)塊或物理位置的損耗取決于每個(gè)區(qū)塊編程的次數(shù)。如果將一個(gè)區(qū)塊,更一般地說(shuō)一個(gè)存儲(chǔ)元件編程一次,然后實(shí)際上永不重編程,那么與所述區(qū)塊相關(guān)聯(lián)的編程和擦除循環(huán)的次數(shù)且因此損耗通常相對(duì)低些。然而,如果反復(fù)寫(xiě)入和擦除一個(gè)區(qū)塊(例如,循環(huán)地),那么與所述區(qū)塊相關(guān)聯(lián)的損耗通常將相對(duì)高些。因?yàn)橹鳈C(jī)(例如,訪問(wèn)或使用閃存系統(tǒng)的系統(tǒng))使用邏輯區(qū)塊地址(LBA)訪問(wèn)存儲(chǔ)在閃存系統(tǒng)中的數(shù)據(jù)時(shí),所以如果主機(jī)反復(fù)使用相同的LBA寫(xiě)入和重寫(xiě)數(shù)據(jù),那么閃存系統(tǒng)內(nèi)的相同物理位置或區(qū)塊就被反復(fù)寫(xiě)入和擦除,其應(yīng)為所屬領(lǐng)域的技術(shù)人員所了解。
因此,所需要的是用于有效地且大體上“透明地”在閃存存儲(chǔ)系統(tǒng)中執(zhí)行損耗平衡的一種方法和一種設(shè)備。也就是說(shuō),所需要的是一種促進(jìn)損耗平衡處理的系統(tǒng),其促使與閃存存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的物理位置中的更為平均的損耗,而不需要顯著使用計(jì)算資源。
發(fā)明內(nèi)容
本發(fā)明涉及用于維持非易失性存儲(chǔ)器系統(tǒng)的系統(tǒng)存儲(chǔ)器中的平均擦除計(jì)數(shù)的系統(tǒng)和方法。根據(jù)本發(fā)明的一個(gè)方面,一種用于判定存儲(chǔ)器系統(tǒng)的非易失性存儲(chǔ)器中的多個(gè)區(qū)塊中的每個(gè)區(qū)塊擦除的平均次數(shù)的方法包括獲得指示每個(gè)區(qū)塊擦除的次數(shù)的每個(gè)區(qū)塊的擦除計(jì)數(shù)。一旦獲得所有的擦除計(jì)數(shù),就對(duì)該等擦除計(jì)數(shù)求和,且通過(guò)大體上使該總和除以區(qū)塊的數(shù)目而產(chǎn)生指示多個(gè)區(qū)塊中的每個(gè)區(qū)塊擦除的平均次數(shù)的平均擦除計(jì)數(shù)。
在一個(gè)實(shí)施例中,擦除計(jì)數(shù)是從區(qū)塊獲得的。在這個(gè)實(shí)施例中,擦除計(jì)數(shù)可從區(qū)塊的冗余或耗用區(qū)域獲得。在另一個(gè)實(shí)施例中,擦除計(jì)數(shù)是從存儲(chǔ)器系統(tǒng)中的擦除計(jì)數(shù)區(qū)塊獲得的,該擦除計(jì)數(shù)區(qū)塊含有多個(gè)區(qū)塊中的每個(gè)區(qū)塊的擦除計(jì)數(shù)。
通過(guò)維持一個(gè)平均擦除計(jì)數(shù),可容易獲得整個(gè)存儲(chǔ)器系統(tǒng)中的區(qū)塊的平均擦除次數(shù)的特征。當(dāng)擦除區(qū)塊時(shí),可不指示區(qū)塊被擦除了多少次。結(jié)果,與區(qū)塊相關(guān)聯(lián)的損耗量不易于判定或估計(jì)。使用平均擦除計(jì)數(shù)來(lái)指示這樣的區(qū)塊可能擦除的次數(shù)允許判定區(qū)塊的損耗的合理的估計(jì)。同樣,損耗平衡可更為有效地實(shí)現(xiàn)。
根據(jù)本發(fā)明的另一方面,數(shù)據(jù)結(jié)構(gòu)包括第一指示符,其提供復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)可用區(qū)塊的擦除次數(shù)的指示;和第二指示符,其指示復(fù)數(shù)個(gè)區(qū)塊中所包括的區(qū)塊的總數(shù)。在一個(gè)實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)還包括含有第一指示符和第二指示符的標(biāo)頭。
根據(jù)本發(fā)明的另一方面,用于大體上準(zhǔn)備擦除區(qū)塊以供使用的方法包括獲得擦除區(qū)塊,獲得表征復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊擦除的次數(shù)的指示符,和將表征復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊擦除的次數(shù)的指示符存儲(chǔ)在擦除區(qū)塊中作為擦除區(qū)塊擦除的次數(shù)的指示。在一個(gè)實(shí)施例中,所述方法還包括判定擦除區(qū)塊的擦除次數(shù)的指示符何時(shí)有效,和當(dāng)判定擦除區(qū)塊擦除的次數(shù)的指示符有效時(shí),將擦除區(qū)塊擦除的次數(shù)的指示符存儲(chǔ)在擦除區(qū)塊中。在這個(gè)實(shí)施例中,獲得表征復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊擦除的次數(shù)的指示符包括大體上僅當(dāng)判定擦除區(qū)塊的擦除次數(shù)的指示符無(wú)效時(shí),獲得表征復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊擦除的次數(shù)的指示符,且存儲(chǔ)表征復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊擦除的次數(shù)的指示符包括大體上僅當(dāng)判定擦除區(qū)塊的擦除次數(shù)的指示符無(wú)效時(shí),存儲(chǔ)表征復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊擦除的次數(shù)的指示符。
通過(guò)閱讀以下詳細(xì)描述且學(xué)習(xí)圖式的各種圖,本發(fā)明的這些和其它優(yōu)點(diǎn)將會(huì)變得顯而易見(jiàn)。
通過(guò)參考與隨附圖式相結(jié)合的以下描述可最佳理解本發(fā)明,其中圖1a是根據(jù)本發(fā)明的一個(gè)實(shí)施例的包括一個(gè)非易失性存儲(chǔ)器裝置的通常的主機(jī)系統(tǒng)的圖解表示。
圖1b是根據(jù)本發(fā)明的一個(gè)實(shí)施例的存儲(chǔ)器裝置(例如,圖1a的存儲(chǔ)器裝置120)的圖解表示。
圖1c是包括一個(gè)嵌入式非易失性存儲(chǔ)器的主機(jī)系統(tǒng)的圖解表示。
圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一部分閃存的圖解表示。
圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一個(gè)處理流程圖,其說(shuō)明與處理一個(gè)和一個(gè)閃存系統(tǒng)相關(guān)的初始化請(qǐng)求相關(guān)聯(lián)的步驟。
圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的處理流程圖,其說(shuō)明與處理靜態(tài)區(qū)塊的一種方法相關(guān)聯(lián)的步驟。
圖5a是根據(jù)本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)存儲(chǔ)器的圖解結(jié)構(gòu)圖表示。
圖5b是根據(jù)本發(fā)明的一個(gè)實(shí)施例的普通區(qū)塊、最不頻繁擦除區(qū)塊和最頻繁擦除區(qū)塊的圖解表示。
圖6是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一種在整個(gè)存儲(chǔ)器系統(tǒng)的系統(tǒng)存儲(chǔ)器中執(zhí)行區(qū)塊交換/更新以允許區(qū)塊更為平均的損耗的方法的圖解表示。
圖7是根據(jù)本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)架構(gòu)的圖解結(jié)構(gòu)圖表示。
圖8a是根據(jù)本發(fā)明的一個(gè)實(shí)施例的擦除計(jì)數(shù)區(qū)塊的圖解表示。
圖8b是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一個(gè)擦除計(jì)數(shù)區(qū)塊中的一個(gè)頁(yè)(例如,圖8a的擦除計(jì)數(shù)區(qū)塊800的頁(yè)810a)的圖解表示,且該頁(yè)大體上被劃分成多個(gè)位置。
圖8c是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一個(gè)擦除計(jì)數(shù)區(qū)塊中的一個(gè)頁(yè)(例如,圖8a的擦除計(jì)數(shù)區(qū)塊800的頁(yè)810a)的圖解表示,且該頁(yè)大體上被劃分成多個(gè)字節(jié)。
圖8d是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一個(gè)擦除計(jì)數(shù)區(qū)塊中的一個(gè)頁(yè)(例如,圖8a的擦除計(jì)數(shù)區(qū)塊800的頁(yè)810a)的圖解表示,其含有擦除計(jì)數(shù)和指示一個(gè)特定的區(qū)塊不可用的一項(xiàng)。
圖9是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一個(gè)擦除計(jì)數(shù)區(qū)塊的一個(gè)標(biāo)頭(例如,圖8a的擦除計(jì)數(shù)區(qū)塊800的標(biāo)頭820)的圖解表示。
圖10是根據(jù)本發(fā)明的一個(gè)實(shí)施例說(shuō)明與在首先格式化非易失性存儲(chǔ)器系統(tǒng)的非易失性存儲(chǔ)器時(shí),初始化一個(gè)擦除計(jì)數(shù)區(qū)塊的一種方法相關(guān)聯(lián)的步驟的處理流程圖。
圖11是根據(jù)本發(fā)明的一個(gè)實(shí)施例說(shuō)明與響應(yīng)一個(gè)初始化要求而更新一個(gè)擦除計(jì)數(shù)區(qū)塊的一種方法相關(guān)聯(lián)的步驟的處理流程圖。
圖12根據(jù)本發(fā)明的一個(gè)實(shí)施例說(shuō)明與獲得一個(gè)備用區(qū)塊的擦除計(jì)數(shù)的一種方法相關(guān)聯(lián)的步驟的處理流程圖。
圖13是根據(jù)本發(fā)明的一個(gè)實(shí)施例說(shuō)明一種計(jì)算平均擦除計(jì)數(shù)的方法的處理流程圖。
具體實(shí)施例方式
閃存存儲(chǔ)系統(tǒng)中的非易失性存儲(chǔ)器存儲(chǔ)區(qū)塊可以反復(fù)編程和擦除,但在區(qū)塊損壞前每個(gè)區(qū)塊通常僅可被擦除有限次,當(dāng)區(qū)塊損壞時(shí),與包括損壞區(qū)塊的閃存存儲(chǔ)系統(tǒng)的總存儲(chǔ)量的部分相關(guān)聯(lián)的性能會(huì)發(fā)生相對(duì)顯著的降級(jí),而且存儲(chǔ)在該部分的數(shù)據(jù)可能會(huì)丟失,或不可能在該部分存儲(chǔ)數(shù)據(jù)。
為了增加區(qū)塊在閃存存儲(chǔ)系統(tǒng)中較為平均損壞的可能性,可以更為平均地利用區(qū)塊。通過(guò)跟蹤每個(gè)區(qū)塊擦除的次數(shù)(例如通過(guò)利用擦除計(jì)數(shù)),可以更平均地使用系統(tǒng)中的存儲(chǔ)器。一種擦除計(jì)數(shù)管理技術(shù)可以在與區(qū)塊相關(guān)聯(lián)的冗余區(qū)域中存儲(chǔ)擦除計(jì)數(shù),其跟蹤特定區(qū)塊的擦除次數(shù)??稍谙到y(tǒng)存儲(chǔ)器中建立表格,其大體上使在使用中的區(qū)塊與具有相對(duì)高的擦除計(jì)數(shù)的區(qū)塊和具有相對(duì)低的擦除計(jì)數(shù)的區(qū)塊有效分開(kāi)。當(dāng)擦除使用中的區(qū)塊時(shí),該區(qū)塊可在適當(dāng)時(shí)被“添加”到具有相對(duì)高的擦除計(jì)數(shù)的區(qū)塊表或具有相對(duì)低的擦除計(jì)數(shù)的區(qū)塊表中。同樣,可從具有相對(duì)高的擦除計(jì)數(shù)的區(qū)塊表或者具有相對(duì)低的擦除計(jì)數(shù)的區(qū)塊表中將區(qū)塊“移動(dòng)”到區(qū)塊映射表中,以大體上取代已從區(qū)塊映射表進(jìn)行重新指派的任何區(qū)塊,區(qū)塊映射表即使用中的一組區(qū)塊表。
通過(guò)對(duì)區(qū)塊進(jìn)行分類(lèi),因?yàn)榭梢愿行У毓芾砻總€(gè)區(qū)塊的使用而平均化與區(qū)塊相關(guān)聯(lián)的損耗,所以可以更平均地利用區(qū)塊。另外,將區(qū)塊分類(lèi)為表使得能容易識(shí)別具有低擦除計(jì)數(shù)的區(qū)塊和具有高擦除計(jì)數(shù)的區(qū)塊,而且因此不必利用大量的計(jì)算資源。因此,損耗平衡相對(duì)有效的進(jìn)行。結(jié)果可大體上延長(zhǎng)了閃存系統(tǒng)的壽命而沒(méi)有顯著影響閃存系統(tǒng)的性能。
為了促進(jìn)區(qū)塊分類(lèi),在閃存系統(tǒng)中可分配一個(gè)擦除計(jì)數(shù)區(qū)塊。這個(gè)區(qū)塊可經(jīng)配置以含有大體上所有區(qū)塊的擦除計(jì)數(shù),該等區(qū)塊可以用于在閃存系統(tǒng)中存儲(chǔ)數(shù)據(jù)。當(dāng)擦除區(qū)塊時(shí),通常擦除了區(qū)塊的擦除計(jì)數(shù)。通過(guò)在擦除計(jì)數(shù)區(qū)塊中存儲(chǔ)具有關(guān)聯(lián)擦除計(jì)數(shù)的大體所有區(qū)塊的擦除計(jì)數(shù),可易于獲得擦除區(qū)塊的擦除計(jì)數(shù),例如,通過(guò)讀取來(lái)自擦除計(jì)數(shù)區(qū)塊的擦除計(jì)數(shù)。
閃存系統(tǒng)或更為普遍的非易失性存儲(chǔ)器裝置一般包括閃存卡和芯片組。通常閃存系統(tǒng)和一個(gè)主機(jī)系統(tǒng)結(jié)合使用,使得主機(jī)系統(tǒng)可以將數(shù)據(jù)寫(xiě)入閃存系統(tǒng)或從閃存系統(tǒng)讀取數(shù)據(jù)。然而,某些閃存系統(tǒng)包括嵌入式閃存系統(tǒng)和軟件,該軟件在主機(jī)上執(zhí)行來(lái)大體上充當(dāng)嵌入式閃存的控制器。先參看圖1a,將描述包括一個(gè)非易失性存儲(chǔ)器裝置(例如,壓縮閃存卡或嵌入式系統(tǒng))的通常的主機(jī)系統(tǒng)。主機(jī)或計(jì)算機(jī)系統(tǒng)100通常包括系統(tǒng)總線104,其允許微處理器108、隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)112和輸入/輸出電路116進(jìn)行通信。應(yīng)了解,主機(jī)系統(tǒng)100一般可包括其它組件,例如,顯示裝置和連網(wǎng)裝置,其出于說(shuō)明目的而未圖示。
一般來(lái)說(shuō),主機(jī)系統(tǒng)100可以獲取以下信息,其包括(但不限于)靜態(tài)圖像信息、音頻信息和視頻圖像信息。這些信息可以實(shí)時(shí)獲取,且可以無(wú)線方式傳輸?shù)街鳈C(jī)系統(tǒng)100。雖然主機(jī)系統(tǒng)100大體上可以是任何系統(tǒng),但主機(jī)系統(tǒng)100一般是如數(shù)字相機(jī)、攝像機(jī)、蜂巢式通信裝置、音頻播放器或視頻播放器的系統(tǒng)。然而,應(yīng)了解,主機(jī)系統(tǒng)100通常大體上可以是存儲(chǔ)數(shù)據(jù)或信息和檢索數(shù)據(jù)或信息的任何系統(tǒng)。
應(yīng)了解,主機(jī)系統(tǒng)100也可以是只能獲取數(shù)據(jù)或只能檢索數(shù)據(jù)的系統(tǒng)。也就是說(shuō),主機(jī)系統(tǒng)100可以是存儲(chǔ)數(shù)據(jù)的專(zhuān)用系統(tǒng),或主機(jī)系統(tǒng)100可以是讀取數(shù)據(jù)的專(zhuān)用系統(tǒng)。舉例而言,主機(jī)系統(tǒng)100可以是經(jīng)配置僅用于寫(xiě)入或存儲(chǔ)數(shù)據(jù)的存儲(chǔ)記錄器?;蛘?,主機(jī)系統(tǒng)100可以是如MP3播放器的裝置,其通常經(jīng)配置來(lái)讀取或檢索數(shù)據(jù),且不獲取數(shù)據(jù)。
非易失性存儲(chǔ)器裝置120(在一個(gè)實(shí)施例中是一個(gè)可移除非易失性存儲(chǔ)器裝置)經(jīng)配置而與總線104連接來(lái)存儲(chǔ)信息。一種可選的接口區(qū)塊130可允許非易失性存儲(chǔ)器裝置120直接和總線104連接。當(dāng)存在時(shí),輸入/輸出電路區(qū)塊130用于減少總線104上的負(fù)載,如所屬領(lǐng)域的技術(shù)人員將會(huì)了解的。非易失性存儲(chǔ)器裝置120包括非易失性存儲(chǔ)器124和一個(gè)可選的存儲(chǔ)器控制系統(tǒng)128。在一個(gè)實(shí)施例中,非易失性存儲(chǔ)器裝置120可實(shí)施于單個(gè)芯片或電路小片上。或者,可在一個(gè)多芯片模塊上實(shí)施非易失性存儲(chǔ)器裝置120或在多個(gè)離散組件上實(shí)施,該等離散組件可以形成一個(gè)芯片組且可以一起用作非易失性存儲(chǔ)器裝置120。下文將關(guān)于圖1b更詳細(xì)地描述非易失性存儲(chǔ)器裝置120的一個(gè)實(shí)施例。
非易失性存儲(chǔ)器124(例如,如NAND閃存的閃存)經(jīng)配置以存儲(chǔ)數(shù)據(jù),使得如果需要可以訪問(wèn)及讀取數(shù)據(jù)。適當(dāng)時(shí)也可以擦除存儲(chǔ)在非易失性存儲(chǔ)器124中的數(shù)據(jù),但應(yīng)了解,非易失性存儲(chǔ)器124中的某些數(shù)據(jù)可以是不可擦除的。一般可通過(guò)存儲(chǔ)器控制系統(tǒng)128控制存儲(chǔ)數(shù)據(jù),讀取數(shù)據(jù)和擦除數(shù)據(jù)的過(guò)程,或當(dāng)沒(méi)有存儲(chǔ)器控制系統(tǒng)128時(shí),可通過(guò)由微處理器108執(zhí)行的軟件來(lái)控制??梢怨芾矸且资源鎯?chǔ)器124的運(yùn)作,使得通過(guò)實(shí)質(zhì)促使非易失性存儲(chǔ)器124的區(qū)產(chǎn)生大體平均的損壞而大體上最大化非易失性存儲(chǔ)器124的壽命。
通常將非易失性存儲(chǔ)器裝置120描述為包括一個(gè)可選的存儲(chǔ)器控制系統(tǒng)128,即一個(gè)控制器。通常,非易失性存儲(chǔ)器裝置120可以包括獨(dú)立芯片用于非易失性存儲(chǔ)器124和存儲(chǔ)器控制系統(tǒng)128(即,控制器)功能。舉例而言,當(dāng)包括(但不限于)PC卡、壓縮快閃卡、多媒體卡和安全數(shù)字卡的非易失性存儲(chǔ)器裝置包括可在一個(gè)獨(dú)立的芯片上實(shí)施的控制器時(shí),其它非易失性存儲(chǔ)器裝置可不包括在一個(gè)獨(dú)立的芯片上實(shí)施的控制器。在一個(gè)實(shí)施例中,其中非易失性存儲(chǔ)器裝置120不包括獨(dú)立的存儲(chǔ)器和控制器芯片,可將存儲(chǔ)器和控制器功能集成在單個(gè)芯片中,如所屬領(lǐng)域的技術(shù)人員將會(huì)了解的?;蛘撸捎晌⑻幚砥?08提供存儲(chǔ)器控制系統(tǒng)128的功能,例如在一個(gè)實(shí)施例中,其中非易失性存儲(chǔ)器裝置120不包括存儲(chǔ)器控制器128,如上文所討論的。
參考圖1b,根據(jù)本發(fā)明的一個(gè)實(shí)施例將更詳細(xì)地描述非易失性存儲(chǔ)器裝置120。如上所述,非易失性存儲(chǔ)器裝置120包括非易失性存儲(chǔ)器124且可包括存儲(chǔ)器控制系統(tǒng)128。存儲(chǔ)器124和控制系統(tǒng)128或控制器可以是非易失性存儲(chǔ)器裝置120的組件,但是當(dāng)存儲(chǔ)器124是嵌入式NAND裝置時(shí),非易失性存儲(chǔ)器裝置120可不包括控制系統(tǒng)128,如參考圖1c將論述的。存儲(chǔ)器124可以是形成于半導(dǎo)體基板上的存儲(chǔ)器單元的陣列,其中通過(guò)在存儲(chǔ)器單元的個(gè)別存儲(chǔ)元件上存儲(chǔ)兩個(gè)或兩個(gè)以上電荷電平之一,將一個(gè)或一個(gè)以上的數(shù)據(jù)位存儲(chǔ)在該等個(gè)別的存儲(chǔ)器單元上。對(duì)于該等系統(tǒng)來(lái)說(shuō),非易失性快閃電可擦除可編程只讀存儲(chǔ)器(EEPROM)是普通類(lèi)型存儲(chǔ)器的一個(gè)實(shí)例。
當(dāng)存在時(shí),控制系統(tǒng)128通過(guò)總線15與正在使用存儲(chǔ)器系統(tǒng)來(lái)存儲(chǔ)數(shù)據(jù)的主計(jì)算機(jī)或其它系統(tǒng)通信??偩€15通常是圖1a的總線104的一部分??刂葡到y(tǒng)128還控制存儲(chǔ)器124(其可包括存儲(chǔ)器單元陣列11)的運(yùn)作來(lái)寫(xiě)入主機(jī)提供的數(shù)據(jù),讀取主機(jī)請(qǐng)求的數(shù)據(jù)且執(zhí)行操作存儲(chǔ)器124的各種內(nèi)務(wù)處理功能??刂葡到y(tǒng)128通常包括一個(gè)通用微處理器,其具有關(guān)聯(lián)的非易失性軟件存儲(chǔ)器、各種邏輯電路等。一般還包括一個(gè)或一個(gè)以上狀態(tài)機(jī)用于控制特定例行程序的性能。
一般由控制系統(tǒng)128或微處理器108通過(guò)地址解碼器17定址存儲(chǔ)器單元陣列11。解碼器17可對(duì)門(mén)極和陣列11的位線施加校正電壓以將數(shù)據(jù)編程到由控制系統(tǒng)128定址的一組存儲(chǔ)器單元中,從其中讀取數(shù)據(jù)或?qū)ζ溥M(jìn)行擦除操作。額外的電路19可包括控制施加到陣列元件的電壓的編程驅(qū)動(dòng)器,其取決于待編程入一組定址的單元的數(shù)據(jù)。電路19還可包括感應(yīng)放大器和必要用于從一組定址的存儲(chǔ)器單元讀取數(shù)據(jù)的其它電路。待編程入陣列11的數(shù)據(jù)或最近從陣列11讀取的數(shù)據(jù)可存儲(chǔ)在緩沖存儲(chǔ)器21中,該緩沖存儲(chǔ)器既可在控制系統(tǒng)128的外部也可在控制系統(tǒng)128的內(nèi)部,如圖示??刂葡到y(tǒng)128通常還可含有用于臨時(shí)存儲(chǔ)命令和狀態(tài)數(shù)據(jù)等的各種寄存器。
陣列11被劃分為許多區(qū)塊0-N個(gè)存儲(chǔ)器單元。對(duì)于快閃EEPROM系統(tǒng)來(lái)說(shuō),可將區(qū)塊作為擦除的最小單元。也就是說(shuō),每個(gè)區(qū)塊可含有最小數(shù)目的一起擦除的存儲(chǔ)器單元。每個(gè)區(qū)塊通常被劃分為許多頁(yè),如圖2中說(shuō)明。頁(yè)可以是編程的最小單元。也就是說(shuō),一個(gè)基本的編程操作可將數(shù)據(jù)寫(xiě)入存儲(chǔ)器單元的最小值一個(gè)頁(yè)中或從其中讀取數(shù)據(jù)。數(shù)據(jù)的一個(gè)或一個(gè)以上的區(qū)段通常存儲(chǔ)在每個(gè)頁(yè)內(nèi)。如圖1b所示,一個(gè)區(qū)段包括使用者數(shù)據(jù)和耗用數(shù)據(jù)。耗用數(shù)據(jù)通常包括錯(cuò)誤校正代碼(ECC),其從區(qū)段的使用者數(shù)據(jù)計(jì)算而得。當(dāng)將數(shù)據(jù)編程入陣列11時(shí),控制系統(tǒng)128的一部分23可計(jì)算ECC,且當(dāng)從陣列11讀取數(shù)據(jù)時(shí)也可檢查ECC?;蛘?,ECC可存儲(chǔ)在與其所屬的使用者數(shù)據(jù)不同的頁(yè)或不同的區(qū)塊中。
使用者數(shù)據(jù)的區(qū)段通常是512個(gè)字節(jié),對(duì)應(yīng)于磁盤(pán)驅(qū)動(dòng)器中的扇區(qū)的大小。盡管應(yīng)了解,耗用數(shù)據(jù)中所包括的字節(jié)數(shù)目可以有很大變化,但是耗用數(shù)據(jù)通常是附加的16個(gè)字節(jié)。數(shù)據(jù)的一個(gè)區(qū)段最一般是包括在每個(gè)頁(yè)中,但兩個(gè)或兩個(gè)以上的區(qū)段可形成一個(gè)頁(yè)。通常任何數(shù)目的頁(yè)都可形成一個(gè)區(qū)塊。舉例而言,可由8個(gè)到512,1024個(gè)頁(yè)或更多的頁(yè)形成一個(gè)區(qū)塊。選擇區(qū)塊數(shù)目來(lái)為存儲(chǔ)器系統(tǒng)提供所要的數(shù)據(jù)存儲(chǔ)容量。陣列11可被劃分為一些子陣列(未圖示),每個(gè)子陣列含有一定比例的區(qū)塊,其在某種程度上相互獨(dú)立運(yùn)作以增加執(zhí)行各種存儲(chǔ)器操作的并行度。在美國(guó)專(zhuān)利第5,890,192號(hào)中描述了使用多個(gè)子陣列的實(shí)例,其全文以引用的方式并入本文中。
在一個(gè)實(shí)施例中,將如NAND閃存的非易失性存儲(chǔ)器嵌入系統(tǒng)中,例如,主機(jī)系統(tǒng)。圖1c是包括一個(gè)嵌入式非易失性存儲(chǔ)器的主機(jī)系統(tǒng)的圖解表示。主機(jī)或計(jì)算機(jī)系統(tǒng)150通常包括系統(tǒng)總線154,其允許微處理器158、RAM 162和輸入/輸出電路166及主機(jī)系統(tǒng)150的其它組件(未圖示)進(jìn)行通信。非易失性存儲(chǔ)器174(例如,閃存)允許將信息存儲(chǔ)在主機(jī)系統(tǒng)150中。在非易失性存儲(chǔ)器174與總線154之間可以提供接口180以使信息可從非易失性存儲(chǔ)器174中讀取或?qū)⑵鋵?xiě)入非易失性存儲(chǔ)器174中。
通過(guò)微處理器158可以管理非易失性存儲(chǔ)器174,該微處理器有效地執(zhí)行經(jīng)配置以控制非易失性存儲(chǔ)器174的軟件和固件之一或兩者。也就是說(shuō),微處理器158可以運(yùn)行代碼裝置(未圖示),即,軟件代碼裝置或固件代碼裝置,其允許控制非易失性存儲(chǔ)器174。這些代碼裝置,可以使非易失性存儲(chǔ)器174中的物理區(qū)塊被定址,并可以使信息存儲(chǔ)在物理區(qū)塊中或從其中讀取或從其中擦除,這些代碼裝置可以是封裝有微處理器158內(nèi)部CPU、獨(dú)立快閃ROM或在非易失性存儲(chǔ)器174內(nèi)部的閃存,其將在下文中描述。
當(dāng)連續(xù)對(duì)圖1a的非易失性存儲(chǔ)器124的一個(gè)特定區(qū)(例如存儲(chǔ)元件)編程(例如反復(fù)地寫(xiě)入和擦除)時(shí),這個(gè)特定區(qū)域一般比不連續(xù)編程的區(qū)域損壞得快。為了有效地“平均化”非易失性存儲(chǔ)器124中的不同的區(qū)域的損耗,可大體上自動(dòng)地執(zhí)行損耗平衡,使得連續(xù)編程的區(qū)域進(jìn)行較少的編程,而不連續(xù)編程的區(qū)域進(jìn)行較多的編程。
一般地,為了執(zhí)行損耗平衡,一個(gè)區(qū)塊,例如,與反復(fù)編程的物理位置關(guān)聯(lián)的一組區(qū)段可以和與不反復(fù)編程的物理位置關(guān)聯(lián)的一個(gè)區(qū)塊進(jìn)行交換。也就是說(shuō),經(jīng)過(guò)反復(fù)編程且隨之擦除的物理區(qū)塊可以與不經(jīng)常編程和擦除的物理區(qū)塊進(jìn)行交換。
在本發(fā)明的一個(gè)實(shí)施例中,為了易于判定一個(gè)特定的物理區(qū)塊是不是經(jīng)過(guò)反復(fù)編程和擦除,而將一個(gè)擦除計(jì)數(shù)存儲(chǔ)在區(qū)塊中。也就是說(shuō),維持一個(gè)跟蹤區(qū)塊發(fā)生多少次擦除的計(jì)數(shù)器且在區(qū)塊每次擦除時(shí)加1。這樣的擦除計(jì)數(shù)可以用來(lái)便于判定一個(gè)特定的區(qū)塊是否應(yīng)該和另一個(gè)不經(jīng)常擦除的區(qū)塊進(jìn)行交換。圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一部分閃存的圖解表示。閃存200可被劃分為多個(gè)頁(yè)204。一般含有大約512個(gè)字節(jié)的使用者數(shù)據(jù)的每個(gè)頁(yè)204實(shí)際上包括一個(gè)冗余區(qū)域206,例如,頁(yè)204a包括冗余區(qū)域206a。每個(gè)冗余區(qū)域206或耗用區(qū)域可包括高達(dá)約16個(gè)字節(jié)的信息,該信息通常包括(但不限于)一個(gè)組識(shí)別符216、一個(gè)更新索引212和一個(gè)擦除計(jì)數(shù)214。
通常,區(qū)塊210中包括任何數(shù)目的頁(yè)204。盡管應(yīng)了解,區(qū)塊210中所包括的頁(yè)204的數(shù)目可以有很大變化,但為了便于說(shuō)明,區(qū)塊210中顯示為包括頁(yè)204a、204b。在所述實(shí)施例中,區(qū)塊210可經(jīng)配置以包括約64個(gè)頁(yè)。舉例而言,當(dāng)閃存200包括約512兆位(Mb)時(shí),閃存200可實(shí)際被劃分為約2048個(gè)區(qū)塊,每個(gè)區(qū)塊具有64個(gè)頁(yè)。
如先前所提到的,每次從關(guān)聯(lián)的區(qū)塊擦除使用者數(shù)據(jù)時(shí)擦除計(jì)數(shù)214會(huì)加1。舉例而言,每次從區(qū)塊210擦除數(shù)據(jù)時(shí),擦除計(jì)數(shù)214(其與區(qū)塊210關(guān)聯(lián))會(huì)加1。因?yàn)閰^(qū)塊210中所包括的每個(gè)頁(yè)204a、204b通常具有擦除計(jì)數(shù)214,所以在擦除區(qū)塊210時(shí)與每個(gè)頁(yè)204a、204b相關(guān)聯(lián)的擦除計(jì)數(shù)214會(huì)遞增。
一般來(lái)說(shuō),當(dāng)擦除含有數(shù)據(jù)的區(qū)塊時(shí),區(qū)塊的數(shù)據(jù)區(qū)域和冗余區(qū)域都被擦除或清空。通常將擦除區(qū)塊添加到備用區(qū)塊池中,所述備用區(qū)塊池含有具有比其它擦除區(qū)塊(例如,其它表的擦除區(qū)塊)的擦除計(jì)數(shù)小的擦除計(jì)數(shù)的擦除區(qū)塊。備用區(qū)塊表實(shí)質(zhì)上可以是最不頻繁擦除區(qū)塊表,在下文會(huì)有所描述。在本發(fā)明的一個(gè)實(shí)施例中,將具有大擦除計(jì)數(shù)的擦除區(qū)塊添加到含有比其它表的擦除區(qū)塊大的擦除計(jì)數(shù)的擦除區(qū)塊的池中。含有具有大擦除計(jì)數(shù)的擦除區(qū)塊的池可以是最頻繁擦除區(qū)塊表,其在下文也有所描述。一個(gè)剛擦除的區(qū)塊的擦除計(jì)數(shù)會(huì)遞加1,且取決于計(jì)數(shù)值而被保存在最不頻繁擦除區(qū)塊表或最頻繁擦除區(qū)塊表中。
返回到圖2,在初始化請(qǐng)求期間可訪問(wèn)擦除計(jì)數(shù),例如擦除計(jì)數(shù)214。當(dāng)出現(xiàn)下列情況時(shí)可發(fā)出初始化請(qǐng)求,例如,當(dāng)向一個(gè)系統(tǒng)(例如包括嵌入式閃存的系統(tǒng))供電時(shí),當(dāng)系統(tǒng)內(nèi)的備用區(qū)塊運(yùn)行減慢時(shí),當(dāng)使用者發(fā)出平衡區(qū)塊分配的請(qǐng)求時(shí),以及當(dāng)使用者發(fā)出使區(qū)塊使用更平均的請(qǐng)求時(shí)。圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一個(gè)處理流程圖,其說(shuō)明與處理一個(gè)有關(guān)閃存系統(tǒng)的初始化請(qǐng)求相關(guān)聯(lián)的步驟。一般來(lái)說(shuō),可以通過(guò)使用者起始初始化請(qǐng)求或(例如)周期性地或當(dāng)滿(mǎn)足觸發(fā)條件時(shí)通過(guò)與閃存系統(tǒng)相關(guān)聯(lián)的控制器大體上自動(dòng)起始初始化請(qǐng)求。響應(yīng)初始化請(qǐng)求的程序300在步驟304開(kāi)始,其中實(shí)際接收初始化請(qǐng)求??赏ㄟ^(guò)與待初始化的閃存通信的控制器或處理器來(lái)接收初始化請(qǐng)求。例如,可由使用者通過(guò)主機(jī)在供電時(shí)或當(dāng)平衡區(qū)塊分配時(shí)提出這個(gè)請(qǐng)求。
一旦接收到初始化請(qǐng)求,就在步驟306中獲得平均擦除計(jì)數(shù)。在一個(gè)實(shí)施例中,將平均擦除計(jì)數(shù)存儲(chǔ)被寫(xiě)入與該系統(tǒng)相關(guān)聯(lián)的NAND存儲(chǔ)器中的擦除計(jì)數(shù)區(qū)塊中,但應(yīng)了解,平均擦除計(jì)數(shù)可被存儲(chǔ)在或?qū)懭肱c結(jié)構(gòu)相關(guān)聯(lián)的NAND存儲(chǔ)器中的大體上任何的數(shù)據(jù)結(jié)構(gòu)中。所述擦除計(jì)數(shù)區(qū)塊(ECB)含有平均擦除計(jì)數(shù)且每個(gè)區(qū)塊的擦除計(jì)數(shù)存儲(chǔ)于閃存的一個(gè)區(qū)塊中。應(yīng)了解,當(dāng)創(chuàng)建一個(gè)擦除計(jì)數(shù)區(qū)塊時(shí)(例如,當(dāng)最初格式化所述系統(tǒng)時(shí)),通常將在表中的平均擦除計(jì)數(shù)和每一區(qū)塊的擦除計(jì)數(shù)初始化為零值。在下文將關(guān)于圖8a描述擦除計(jì)數(shù)區(qū)塊。獲得平均擦除計(jì)數(shù)之后,便獲得系統(tǒng)中的大體上所有區(qū)塊的擦除計(jì)數(shù)。如上文關(guān)于圖2所述,含有數(shù)據(jù)的特定區(qū)塊的擦除計(jì)數(shù)可以存儲(chǔ)在與該區(qū)塊相關(guān)聯(lián)的冗余區(qū)域中。因此,獲得含有數(shù)據(jù)的大體上所有區(qū)塊的擦除計(jì)數(shù)可以包括訪問(wèn)與每個(gè)區(qū)塊相關(guān)聯(lián)的冗余區(qū)域,并將每個(gè)擦除計(jì)數(shù)存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中。
在初始化請(qǐng)求時(shí),從擦除計(jì)數(shù)區(qū)塊獲得擦除區(qū)塊的擦除計(jì)數(shù)。因?yàn)閰^(qū)塊的冗余區(qū)域已被擦除,所以擦除計(jì)數(shù)區(qū)塊通常保持其值。當(dāng)關(guān)閉整個(gè)系統(tǒng)時(shí),通常產(chǎn)生一個(gè)終止請(qǐng)求,使得擦除計(jì)數(shù)表經(jīng)更新而含有大體上所有的區(qū)塊的最新的擦除計(jì)數(shù)。在任何給定時(shí)刻,一個(gè)區(qū)塊屬于最頻繁擦除區(qū)塊表、最不頻繁擦除區(qū)塊表、擦除計(jì)數(shù)區(qū)塊或?qū)儆趨^(qū)塊映射表。屬于擦除計(jì)數(shù)區(qū)塊的區(qū)塊的擦除計(jì)數(shù)存儲(chǔ)在區(qū)塊的冗余區(qū)域中。含有數(shù)據(jù)的區(qū)塊的擦除計(jì)數(shù)通常屬于區(qū)塊映射表且存儲(chǔ)在冗余區(qū)域中。屬于區(qū)塊映射表的擦除區(qū)塊的擦除計(jì)數(shù)具有零擦除計(jì)數(shù),這是因?yàn)樵搮^(qū)塊實(shí)際從未使用。從最不頻繁擦除區(qū)塊表或最頻繁擦除區(qū)塊表中的區(qū)塊獲得擦除計(jì)數(shù)涉及從該表中得到該值,這是因?yàn)樵摰缺淼拿恳豁?xiàng)通常含有擦除區(qū)塊的區(qū)塊號(hào)與其擦除計(jì)數(shù)。當(dāng)完成初始化請(qǐng)求的處理時(shí),通常使用所有區(qū)塊的當(dāng)前擦除計(jì)數(shù)更新該擦除計(jì)數(shù)區(qū)塊。
在步驟320中,在系統(tǒng)存儲(chǔ)器(例如,主機(jī)系統(tǒng)存儲(chǔ)器)中分配區(qū)塊映射表。所屬領(lǐng)域的技術(shù)人員應(yīng)了解,區(qū)塊映射表可經(jīng)配置以提供在邏輯區(qū)塊地址(LBA)與物理區(qū)塊地址(PBA)之間的映射。此外,在步驟320中也分配最頻繁擦除區(qū)塊表和最不頻繁擦除區(qū)塊表。
通常確定最頻繁擦除區(qū)塊表的大小或另外配置最頻繁擦除區(qū)塊表以有效地保持與經(jīng)過(guò)最頻繁擦除的擦除區(qū)塊有關(guān)的信息。也就是說(shuō),最頻繁擦除區(qū)塊經(jīng)配置以保持有關(guān)系統(tǒng)中具有最高擦除計(jì)數(shù)的擦除區(qū)塊的信息,例如,擦除計(jì)數(shù)和映射信息。類(lèi)似地,通常確定最不頻繁擦除區(qū)塊表的大小或另外配置最不頻繁擦除區(qū)塊表以容納有關(guān)具有最低擦除計(jì)數(shù)的擦除區(qū)塊的信息。盡管最頻繁擦除區(qū)塊表的大小和最不頻繁擦除區(qū)塊表的大小可以有很大變化,但是該等大小取決于待指派為最頻繁擦除的區(qū)塊的數(shù)目和待指派為最不頻繁擦除的區(qū)塊的數(shù)目。通常,一般確定最頻繁擦除區(qū)塊表的大小以容納比最不頻繁擦除區(qū)塊表少的擦除區(qū)塊的信息。
舉例而言,可確定最頻繁擦除區(qū)塊表的大小以容納約十八個(gè)擦除區(qū)塊的信息,而可確定最不頻繁擦除區(qū)塊表的大小以容納與約七十個(gè)擦除區(qū)塊相關(guān)的信息?;蛘?,可確定最頻繁擦除區(qū)塊表的大小以容納約十個(gè)擦除區(qū)塊的信息,而可確定最不頻繁擦除區(qū)塊表的大小以容納約五十個(gè)擦除區(qū)塊的信息。
在步驟320分配表之后,在步驟324中識(shí)別擦除區(qū)塊。接著,在步驟328中,可以將“N”擦除區(qū)塊指派為最頻繁擦除區(qū)塊并實(shí)質(zhì)上指派給最頻繁擦除表。在一個(gè)實(shí)施例中,“N”擦除區(qū)塊可以是通過(guò)比較所有的擦除計(jì)數(shù)而判定的具有最高擦除計(jì)數(shù)的“N”擦除區(qū)塊?;蛘撸苫谂c在步驟306所獲得的平均擦除計(jì)數(shù)的比較而判定存儲(chǔ)在最頻繁擦除區(qū)塊表中的“N”擦除區(qū)塊。例如,“N”擦除區(qū)塊可以是具有至少比平均擦除計(jì)數(shù)高一個(gè)給定百分比(例如,約25%)的擦除計(jì)數(shù)的“N”擦除區(qū)塊。
一旦實(shí)際填充最頻繁擦除區(qū)塊表,就可以識(shí)別“M”擦除區(qū)塊且實(shí)際上在步驟332中將其指派給最不頻繁擦除區(qū)塊表。該等“M”擦除區(qū)塊一般可以是具有與該系統(tǒng)相關(guān)聯(lián)的所有擦除區(qū)塊的最低擦除計(jì)數(shù)的“M”擦除區(qū)塊,或該等“M”擦除區(qū)塊可以是具有至少比平均擦除計(jì)數(shù)低一個(gè)給定百分比的擦除計(jì)數(shù)的“M”擦除區(qū)塊。該等“M”擦除區(qū)塊實(shí)際上是備用區(qū)塊,在適當(dāng)時(shí)會(huì)將其指派給區(qū)塊映射表。
在步驟336中將剩余的擦除區(qū)塊(即,未指派給最不頻繁擦除區(qū)塊表或最頻繁擦除區(qū)塊表的擦除區(qū)塊)與“未擦除”區(qū)塊一起指派給區(qū)塊映射表。換句話說(shuō),使剩余擦除區(qū)塊和含有非相關(guān)冗余區(qū)域中的數(shù)據(jù)的區(qū)塊與區(qū)塊映射表產(chǎn)生關(guān)聯(lián)。
在(例如)用與對(duì)應(yīng)的區(qū)塊相關(guān)的擦除計(jì)數(shù)和映射信息有效填充區(qū)塊映射表、最不頻繁擦除區(qū)塊表和最頻繁擦除區(qū)塊表之后,在步驟338中可以判定平均擦除計(jì)數(shù)。判定平均擦除計(jì)數(shù)通常涉及對(duì)在步驟308中獲得的個(gè)別區(qū)塊的擦除計(jì)數(shù)求和,并用區(qū)塊總數(shù)除該總和。雖然可響應(yīng)初始化請(qǐng)求而判定平均擦除計(jì)數(shù),但應(yīng)了解,可大體上在任何時(shí)候更新或另外判定平均擦除計(jì)數(shù)。下文將相關(guān)圖13描述與計(jì)算平均擦除計(jì)數(shù)的一種方法關(guān)聯(lián)的步驟。
將在步驟338中計(jì)算出的平均擦除計(jì)數(shù)存儲(chǔ)在與該系統(tǒng)相關(guān)聯(lián)的擦除計(jì)數(shù)區(qū)塊中。如先前所提到的,將該平均擦除計(jì)數(shù)存儲(chǔ)在一個(gè)擦除計(jì)數(shù)區(qū)塊中,該平均擦除計(jì)數(shù)被寫(xiě)入與該系統(tǒng)相關(guān)聯(lián)的NAND存儲(chǔ)器中。在將平均擦除計(jì)數(shù)存儲(chǔ)在該擦除計(jì)數(shù)區(qū)塊中后,可以在步驟342中處理靜態(tài)區(qū)塊或含有數(shù)據(jù)并具有相對(duì)低的關(guān)聯(lián)擦除計(jì)數(shù)的區(qū)塊。下文將相關(guān)圖4描述與處理靜態(tài)區(qū)塊的一種方法相關(guān)聯(lián)的步驟。一旦處理完靜態(tài)區(qū)塊,就完成了處理初始化請(qǐng)求的過(guò)程。
在與閃存關(guān)聯(lián)的一組區(qū)塊中,通常在任何給定時(shí)刻具有被擦除的區(qū)塊和含有數(shù)據(jù)(即使用者數(shù)據(jù))的區(qū)塊。含有數(shù)據(jù)的某些區(qū)塊可認(rèn)為是“普通”區(qū)塊,而其它區(qū)塊可認(rèn)為是靜態(tài)區(qū)塊。靜態(tài)組態(tài)是含有很少改變的數(shù)據(jù)的區(qū)塊。換句話說(shuō),很少擦除靜態(tài)區(qū)塊。通常,靜態(tài)區(qū)塊可以與存儲(chǔ)在閃存中的相對(duì)舊的文獻(xiàn)、與存儲(chǔ)在閃存中的可執(zhí)行程序或與存儲(chǔ)在閃存中的操作系統(tǒng)相關(guān)聯(lián)。靜態(tài)區(qū)塊一般具有大體上比在閃存內(nèi)的大部分區(qū)塊的擦除計(jì)數(shù)低的擦除計(jì)數(shù)。在一個(gè)實(shí)施例中,如果區(qū)塊的擦除計(jì)數(shù)低于與閃存系統(tǒng)關(guān)聯(lián)的平均擦除計(jì)數(shù)一定百分比(例如大約20%),就可以認(rèn)為含有數(shù)據(jù)的區(qū)塊是靜態(tài)區(qū)塊。
因?yàn)殪o態(tài)區(qū)塊含有很少改變的數(shù)據(jù),所以可以將包含在靜態(tài)區(qū)塊中的數(shù)據(jù)復(fù)制到具有相當(dāng)高的擦除計(jì)數(shù)的區(qū)塊中。也就是說(shuō),當(dāng)特定物理區(qū)塊的內(nèi)容相對(duì)是靜態(tài)的且因此,一般不改變時(shí),實(shí)際上可以將該等內(nèi)容重新指派給具有相對(duì)高的擦除計(jì)數(shù)的不同物理區(qū)塊以便使用具有相對(duì)低的擦除計(jì)數(shù)的原物理區(qū)塊用于存儲(chǔ)較頻繁改變的內(nèi)容。將參看圖4,根據(jù)本發(fā)明的一個(gè)實(shí)施例描述與處理靜態(tài)區(qū)塊相關(guān)聯(lián)的步驟,即圖3的步驟342。在步驟404開(kāi)始處理系統(tǒng)的靜態(tài)區(qū)塊的過(guò)程342,在步驟404中訪問(wèn)未擦除區(qū)塊(例如,區(qū)塊“A”)的擦除計(jì)數(shù)。一旦訪問(wèn)了區(qū)塊“A”的擦除計(jì)數(shù),就在步驟408中作出有關(guān)未擦除區(qū)塊“A”的擦除計(jì)數(shù)和與該系統(tǒng)相關(guān)聯(lián)的平均擦除計(jì)數(shù)相比是否很低的判定。
盡管可以基于大體上任何適當(dāng)?shù)臉?biāo)準(zhǔn)判定未擦除區(qū)塊“A”的擦除計(jì)數(shù)與平均擦除計(jì)數(shù)相比是否低,但是在一個(gè)實(shí)施例中,基于區(qū)塊“A”的擦除計(jì)數(shù)是否具有比與平均擦除計(jì)數(shù)的幾分之一相關(guān)聯(lián)的值低的值作出該判定。舉例而言,當(dāng)擦除計(jì)數(shù)小于平均擦除計(jì)數(shù)的預(yù)定百分比時(shí),可以認(rèn)為區(qū)塊“A”的擦除計(jì)數(shù)低。
如果在步驟408中判定區(qū)塊“A”的擦除計(jì)數(shù)與平均擦除計(jì)數(shù)相比不是很低,就指示該區(qū)塊“A”很可能不是靜態(tài)區(qū)塊。
應(yīng)了解,盡管即使不認(rèn)為區(qū)塊“A”的擦除計(jì)數(shù)很低,區(qū)塊“A”也可以是靜態(tài)區(qū)塊,但是在這種情況下的區(qū)塊“A”的擦除計(jì)數(shù)實(shí)際上不觸發(fā)區(qū)塊“A”與另一區(qū)塊的交換。從而完成靜態(tài)區(qū)塊的處理過(guò)程。
或者,如果在步驟408中判定區(qū)塊“A”的擦除計(jì)數(shù)與平均擦除計(jì)數(shù)相比很低,就暗示可以將區(qū)塊“A”的內(nèi)容寫(xiě)入具有相對(duì)高的擦除計(jì)數(shù)的區(qū)塊中,使得具有其低擦除計(jì)數(shù)的區(qū)塊“A”可以自由的用于存儲(chǔ)相對(duì)頻繁改變的數(shù)據(jù)。換句話說(shuō),當(dāng)與平均擦除計(jì)數(shù)相比區(qū)塊“A”的擦除計(jì)數(shù)很低時(shí)指示該區(qū)塊“A”是靜態(tài)區(qū)塊。同樣,處理流程從步驟408移到步驟412,其中將區(qū)塊“A”識(shí)別為靜態(tài)區(qū)塊。一旦將區(qū)塊“A”識(shí)別為靜態(tài)區(qū)塊,在步驟416中,可從由最頻繁擦除區(qū)塊表識(shí)別的一組最頻繁擦除區(qū)塊中獲得一個(gè)區(qū)塊,即區(qū)塊“B”。
獲得區(qū)塊“B”之后,在步驟420中將區(qū)塊“A”的內(nèi)容復(fù)制到區(qū)塊“B”中。也就是說(shuō),在步驟420中將區(qū)塊“A”中含有的使用者數(shù)據(jù)復(fù)制到區(qū)塊“B”中。一旦將區(qū)塊“A”的內(nèi)容復(fù)制到區(qū)塊“B”中,就在步驟424擦除區(qū)塊“A”。通常,當(dāng)擦除區(qū)塊“A”時(shí),與區(qū)塊“A”相關(guān)聯(lián)的擦除計(jì)數(shù)遞增。在步驟428中,將一個(gè)區(qū)塊(例如區(qū)塊“C”)從最不頻繁擦除區(qū)塊組移到最頻繁擦除區(qū)塊組中,使得區(qū)塊“C”的關(guān)聯(lián)從最不頻繁擦除區(qū)塊表變?yōu)樽铑l繁擦除區(qū)塊表。換句話說(shuō),從最不頻繁擦除區(qū)塊表分離區(qū)塊“C”且使其與最頻繁擦除區(qū)塊表產(chǎn)生關(guān)聯(lián)。此移動(dòng)允許有效地打開(kāi)最不頻繁擦除區(qū)塊表中的空間以容納區(qū)塊“A”,其具有低擦除計(jì)數(shù)并因此是該系統(tǒng)中最不頻繁擦除區(qū)塊之一。通常,區(qū)塊“C”是最不頻繁擦除區(qū)塊表中的具有最高擦除計(jì)數(shù)的區(qū)塊。
在將區(qū)塊“C”從最不頻繁擦除區(qū)塊組中移出或另外將區(qū)塊“C”從最不頻繁擦除區(qū)塊表中分離后,處理流程從步驟428移到步驟432,其中在步驟432中實(shí)際上將區(qū)塊“A”從區(qū)塊映射表移到最不頻繁擦除區(qū)塊表中。接著,在步驟434中,使包括先前在區(qū)塊“A”中含有的內(nèi)容的區(qū)塊“B”與區(qū)塊映射表產(chǎn)生關(guān)聯(lián)。所屬領(lǐng)域的技術(shù)人員應(yīng)了解,將區(qū)塊“B”“移動(dòng)”到區(qū)塊映射表通常包括將與區(qū)塊“A”相關(guān)聯(lián)的邏輯區(qū)塊地址映射更新為目前與區(qū)塊“B”相關(guān)聯(lián)。當(dāng)在最頻繁擦除區(qū)塊表中出現(xiàn)有關(guān)區(qū)塊“C”的信息,在區(qū)塊映射表中出現(xiàn)有關(guān)區(qū)塊“B”的信息,且在最不頻繁擦除區(qū)塊表中出現(xiàn)有關(guān)區(qū)塊“A”的信息時(shí),就完成了處理靜態(tài)區(qū)塊的過(guò)程。應(yīng)了解,可以重復(fù)過(guò)程342直到已識(shí)別并處理完與系統(tǒng)相關(guān)聯(lián)的大體上所有的靜態(tài)區(qū)塊。
一般來(lái)說(shuō),當(dāng)將初始化請(qǐng)求發(fā)送到整個(gè)閃存系統(tǒng)時(shí),在系統(tǒng)存儲(chǔ)器(例如圖1a的RAM 112)中可創(chuàng)建區(qū)塊映射表、最不頻繁擦除區(qū)塊表和最頻繁擦除區(qū)塊表。為了建立表,可以首先在系統(tǒng)存儲(chǔ)器中分配空間以容納該等表。
如上所提到的,在系統(tǒng)存儲(chǔ)器中創(chuàng)建區(qū)塊映射表、最不頻繁擦除區(qū)塊表和最頻繁擦除區(qū)塊表,以及平均擦除計(jì)數(shù)。平均擦除計(jì)數(shù)和每個(gè)區(qū)塊的擦除計(jì)數(shù)也會(huì)寫(xiě)入擦除計(jì)數(shù)區(qū)塊。圖5a是根據(jù)本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)存儲(chǔ)器的圖解結(jié)構(gòu)圖表示。系統(tǒng)存儲(chǔ)器454和閃存460包括在整個(gè)系統(tǒng)中,且(例如)實(shí)際上可以是存儲(chǔ)卡的組件或如NAND存儲(chǔ)器的閃存460嵌入的主機(jī)裝置的組件。系統(tǒng)存儲(chǔ)器454經(jīng)配置以存儲(chǔ)區(qū)塊可能相關(guān)聯(lián)的區(qū)塊映射表462。通常,可使用區(qū)塊映射表462以使LBA與和閃存460相關(guān)聯(lián)的物理區(qū)塊產(chǎn)生關(guān)聯(lián)。
系統(tǒng)存儲(chǔ)器454還保持有最不頻繁擦除區(qū)塊表466和最頻繁擦除區(qū)塊表470,該等表和區(qū)塊映射表462一樣,一般響應(yīng)初始化請(qǐng)求而形成。當(dāng)格式化整個(gè)閃存系統(tǒng)時(shí)創(chuàng)建平均擦除計(jì)數(shù)474,其經(jīng)配置以保持閃存460中的區(qū)塊的平均擦除計(jì)數(shù)。在一個(gè)實(shí)施例中,擦除計(jì)數(shù)區(qū)塊480經(jīng)配置以含有在閃存460中的大體上所有區(qū)塊465的擦除計(jì)數(shù)。每發(fā)出一次初始化請(qǐng)求,可計(jì)算出更新的平均擦除計(jì)數(shù),并將其存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊480中。
圖5b是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一組“普通”區(qū)塊、一組最不頻繁擦除區(qū)塊和一組最頻繁擦除區(qū)塊的圖解表示。一組區(qū)塊502包括區(qū)塊514,其可以是通常含有使用者數(shù)據(jù)的普通或靜態(tài)區(qū)塊,或其可以被擦除但不是最頻繁擦除區(qū)塊或最不頻繁擦除區(qū)塊。一組最不頻繁擦除區(qū)塊506通常包括具有整個(gè)系統(tǒng)中的擦除區(qū)塊的最低的擦除計(jì)數(shù)的區(qū)塊518,而一組最頻繁擦除區(qū)塊510通常包括具有整個(gè)系統(tǒng)中的擦除區(qū)塊的最高的擦除計(jì)數(shù)的區(qū)塊522。一般來(lái)說(shuō),區(qū)塊518實(shí)際用作備用區(qū)塊。
當(dāng)擦除區(qū)塊514時(shí),可判定擦除區(qū)塊514是具有相對(duì)低的關(guān)聯(lián)的擦除計(jì)數(shù)或相對(duì)高的關(guān)聯(lián)的擦除計(jì)數(shù)。當(dāng)擦除區(qū)塊514具有相對(duì)低的關(guān)聯(lián)的擦除計(jì)數(shù)時(shí),可將擦除區(qū)塊514添加到最不頻繁擦除區(qū)塊組506。另一方面,當(dāng)擦除區(qū)塊514具有相對(duì)高的關(guān)聯(lián)的擦除計(jì)數(shù)時(shí),可將擦除區(qū)塊514重新指派給最頻繁擦除區(qū)塊組510。
可大體上具有任何大小的最不頻繁擦除區(qū)塊組506可以是一個(gè)排序組。也就是說(shuō),可基于擦除計(jì)數(shù)來(lái)大體上對(duì)區(qū)塊518排序。通常在一個(gè)對(duì)應(yīng)的最不頻繁擦除區(qū)塊表中(未圖示)反映該排序,該表中含有和區(qū)塊518相關(guān)聯(lián)的項(xiàng)。舉例而言,每次一個(gè)新的區(qū)塊518被移到最不頻繁擦除區(qū)塊組506或經(jīng)添加到其中或另外與其相關(guān)聯(lián)時(shí),可基于擦除計(jì)數(shù)實(shí)質(zhì)上對(duì)區(qū)塊518排序,使得在最不頻繁擦除區(qū)塊組506中的最不頻繁擦除區(qū)塊518可以是將被重新指派給(例如)組502的下一個(gè)區(qū)塊518。換句話說(shuō),當(dāng)需要將復(fù)制入數(shù)據(jù)的一個(gè)新區(qū)塊時(shí),使用最不頻繁擦除區(qū)塊表識(shí)別區(qū)塊518的擦除最少的區(qū)塊518,且將其從最不頻繁擦除區(qū)塊組506中取出。通常,當(dāng)擦除含有不需要的數(shù)據(jù)的區(qū)塊514時(shí),該區(qū)塊514可存儲(chǔ)在最不頻繁擦除區(qū)塊組506中,且因此可更新最不頻繁擦除區(qū)塊表,也就是說(shuō),對(duì)應(yīng)于添加區(qū)塊的一項(xiàng)會(huì)包括在最不頻繁擦除區(qū)塊表中。
和存儲(chǔ)在最不頻繁擦除區(qū)塊組506中的區(qū)塊518類(lèi)似的最頻繁擦除區(qū)塊組510中的區(qū)塊522也可基于擦除計(jì)數(shù)而進(jìn)行大體上排序。通常可通過(guò)對(duì)用于識(shí)別區(qū)塊522的最頻繁擦除區(qū)塊表中的項(xiàng)(未圖示)進(jìn)行排序而實(shí)施排序。在一個(gè)實(shí)施例中,可計(jì)算出與區(qū)塊522相關(guān)聯(lián)的平均擦除計(jì)數(shù),即可判定最頻繁擦除區(qū)塊組510的平均擦除計(jì)數(shù)。當(dāng)擦除組502的區(qū)塊514,且發(fā)現(xiàn)擦除區(qū)塊514的擦除計(jì)數(shù)超過(guò)最頻繁擦除區(qū)塊組510的平均擦除計(jì)數(shù)一個(gè)給定的百分比(例如大于約20%)時(shí),可將擦除區(qū)塊514添加到最頻繁擦除區(qū)塊組510。當(dāng)新區(qū)塊522被實(shí)際添加到最頻繁擦除區(qū)塊組510中時(shí),可將具有最低擦除計(jì)數(shù)的頻繁擦除的區(qū)塊組510中的區(qū)塊522重新指派給組502中。通??赏ㄟ^(guò)更新關(guān)聯(lián)區(qū)塊映射表、最不頻繁擦除區(qū)塊表和最頻繁擦除區(qū)塊表(未圖示)而反應(yīng)該等重新指派。
當(dāng)擦除或更新組502中所包括的區(qū)塊514時(shí),通常發(fā)生組502、最不頻繁擦除區(qū)塊組506和最頻繁擦除區(qū)塊組510之間的區(qū)塊的交換或更新。或者,對(duì)于將經(jīng)分配而用于組502中的備用區(qū)塊來(lái)說(shuō),可大體上在任何需要的時(shí)候發(fā)生區(qū)塊的交換或更新。下面參考圖6,將根據(jù)本發(fā)明的一個(gè)實(shí)施例描述在整個(gè)存儲(chǔ)器系統(tǒng)中(例如具有嵌入式閃存的主機(jī)系統(tǒng))執(zhí)行區(qū)塊交換或更新以允許區(qū)塊的更為平均的損耗的一種方法。在步驟604開(kāi)始執(zhí)行區(qū)塊交換或更新的過(guò)程600,在步驟604中,從區(qū)塊映射表“獲得”一個(gè)區(qū)塊(例如區(qū)塊“Y”)或另外使用區(qū)塊映射表進(jìn)行識(shí)別。所獲得的區(qū)塊是將被實(shí)際上從區(qū)塊映射表中交換出用于復(fù)制或更新其內(nèi)容的區(qū)塊。
一旦獲得區(qū)塊“Y”,在步驟608中,從最不頻繁擦除區(qū)塊表有效獲得一個(gè)區(qū)塊(例如區(qū)塊“X”)。也就是說(shuō),使用最不頻繁擦除區(qū)塊表來(lái)識(shí)別適當(dāng)?shù)膫溆脜^(qū)塊以從最不頻繁擦除區(qū)塊組中獲得備用區(qū)塊。一般來(lái)說(shuō),區(qū)塊“X”是在最不頻繁擦除區(qū)塊組中具有最低擦除計(jì)數(shù)的區(qū)塊,但應(yīng)了解,區(qū)塊“X”可以大體上是和最不頻繁擦除區(qū)塊組且隨之的最不頻繁擦除區(qū)塊表相關(guān)聯(lián)的任何區(qū)塊。在步驟612中,將存儲(chǔ)在區(qū)塊“Y”中的數(shù)據(jù)內(nèi)容或即將取代區(qū)塊“Y”的原內(nèi)容的新內(nèi)容復(fù)制到區(qū)塊“X”中。
在步驟616中,在將區(qū)塊“Y”的內(nèi)容復(fù)制到區(qū)塊“X”中之后,將區(qū)塊“X”實(shí)際上移到區(qū)塊映射表中或與其相關(guān)聯(lián)。換句話說(shuō),有效更新與區(qū)塊“Y”和區(qū)塊“X”相關(guān)聯(lián)的映射,使得先前映射到區(qū)塊“Y”的LBA重新映射到區(qū)塊“X”。當(dāng)區(qū)塊“X”被實(shí)際上移到區(qū)塊映射表中時(shí),在步驟620中擦除區(qū)塊“Y”。詳細(xì)來(lái)說(shuō),可使用大體上任何適合的技術(shù)擦除存儲(chǔ)在區(qū)塊“Y”中的數(shù)據(jù)內(nèi)容(例如,使用者內(nèi)容)。在步驟624中存儲(chǔ)在與區(qū)塊“Y”相關(guān)聯(lián)的冗余區(qū)域中的與區(qū)塊“Y”相關(guān)聯(lián)的擦除計(jì)數(shù)加1以指示區(qū)塊“Y”已再一次被擦除。應(yīng)了解,在一個(gè)實(shí)施例中,實(shí)際存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中的“Y”的擦除計(jì)數(shù)可以更新。
在步驟628中,識(shí)別在最頻繁擦除區(qū)塊表中具有最低擦除計(jì)數(shù)的區(qū)塊。如上所述,在一個(gè)實(shí)施例中,在最頻繁擦除區(qū)塊表中參考的區(qū)塊根據(jù)其各自的擦除計(jì)數(shù)進(jìn)行排序。對(duì)區(qū)塊排序可包括在最頻繁擦除區(qū)塊表中根據(jù)區(qū)塊的擦除計(jì)數(shù)定位區(qū)塊的參考。因此,識(shí)別具有最低擦除計(jì)數(shù)的區(qū)塊通常涉及訪問(wèn)經(jīng)配置以容納具有最低擦除計(jì)數(shù)的區(qū)塊參考的最頻繁擦除區(qū)塊表中的位置的區(qū)塊參考。
一旦識(shí)別出在最頻繁擦除區(qū)塊表中參考的具有最低擦除計(jì)數(shù)的區(qū)塊,處理流程從步驟628移到步驟632,在該步驟中,判定區(qū)塊“Y”的擦除計(jì)數(shù)是否大于在最頻繁擦除區(qū)塊表中參考的具有最低擦除計(jì)數(shù)的區(qū)塊的擦除計(jì)數(shù)。如果判定區(qū)塊“Y”的擦除計(jì)數(shù)不大于在最頻繁擦除區(qū)塊表中參考的具有最低擦除計(jì)數(shù)的區(qū)塊的擦除計(jì)數(shù),那么指示區(qū)塊“Y”不能認(rèn)為是頻繁擦除的。因此,處理流程從步驟632進(jìn)行到步驟636,在步驟636中,將區(qū)塊“Y”移到最不頻繁擦除區(qū)塊組中且實(shí)際上移到最不頻繁擦除區(qū)塊表中,即,將對(duì)應(yīng)于區(qū)塊“Y”的一項(xiàng)添加到最不頻繁擦除區(qū)塊表中。應(yīng)了解,在一個(gè)實(shí)施例中,將區(qū)塊“Y”移到最不頻繁擦除區(qū)塊組中可包括使用每個(gè)區(qū)塊的擦除計(jì)數(shù)大體上重新對(duì)最不頻繁擦除區(qū)塊表中的所有的區(qū)塊參考進(jìn)行排序。在將區(qū)塊“Y”實(shí)際上移到最不頻繁擦除區(qū)塊表中之后,便完成了交換或更新區(qū)塊的過(guò)程。
回到步驟632,如果步驟632的判定是區(qū)塊“Y”的擦除計(jì)數(shù)超過(guò)了與最頻繁擦除區(qū)塊表相關(guān)聯(lián)的最低擦除計(jì)數(shù),那么指示區(qū)塊“Y”應(yīng)該被移到最頻繁擦除區(qū)塊組中且實(shí)際上移到最頻繁擦除區(qū)塊表中。為了給最頻繁擦除區(qū)塊表中待參考的區(qū)塊“Y”留出空間,實(shí)際上需要從最頻繁擦除區(qū)塊表中移除一個(gè)區(qū)塊,例如最頻繁擦除區(qū)塊表中參考的具有最低擦除計(jì)數(shù)的區(qū)塊。同樣,在步驟640中,在最頻繁擦除區(qū)塊表中參考的具有最低擦除計(jì)數(shù)的區(qū)塊被移到最不頻繁擦除區(qū)塊組中,且實(shí)際上被移到最不頻繁擦除區(qū)塊表中。將區(qū)塊移到最不頻繁擦除區(qū)塊組中可包括根據(jù)每個(gè)區(qū)塊的擦除計(jì)數(shù)對(duì)最不頻繁擦除區(qū)塊表中的區(qū)塊參考重新排序。
在將最頻繁擦除區(qū)塊表中的具有最低擦除計(jì)數(shù)的區(qū)塊移出最頻繁擦除區(qū)塊表之后,在步驟644中,將區(qū)塊“Y”實(shí)際上移到最頻繁擦除區(qū)塊表中。在一個(gè)實(shí)施例中,將區(qū)塊“Y”移到最頻繁擦除區(qū)塊組中且因此實(shí)際上移到最頻繁擦除區(qū)塊表中可包括根據(jù)每個(gè)區(qū)塊的擦除計(jì)數(shù)對(duì)最頻繁擦除區(qū)塊重新排序,包括區(qū)塊“Y”。當(dāng)區(qū)塊“Y”實(shí)際上被移到最頻繁擦除區(qū)塊表中時(shí),便完成了交換或更新區(qū)塊的過(guò)程。
一般來(lái)說(shuō),以軟件提供與維護(hù)表、處理初始化請(qǐng)求和執(zhí)行損耗平衡相關(guān)聯(lián)的功能(例如,響應(yīng)交換或更新區(qū)塊的請(qǐng)求)作為(例如)程序代碼裝置或作為主機(jī)系統(tǒng)的固件。圖7顯示與提供到一個(gè)主機(jī)系統(tǒng)以進(jìn)行損耗平衡的軟件或固件相關(guān)聯(lián)的一個(gè)合適的系統(tǒng)架構(gòu)的一個(gè)實(shí)施例。一個(gè)系統(tǒng)架構(gòu)700通常包括各種模塊,該等模塊可包括(但不限于)應(yīng)用接口模塊704、系統(tǒng)管理器模塊708、數(shù)據(jù)管理器模塊712、數(shù)據(jù)完整性管理器716和裝置管理器和接口模塊720。一般來(lái)說(shuō),可使用可由處理器(例如圖1a的處理器108)訪問(wèn)的軟件代碼裝置或固件來(lái)實(shí)施系統(tǒng)架構(gòu)700。一般來(lái)說(shuō),應(yīng)用接口模塊704可經(jīng)配置來(lái)與閃存(未圖示)進(jìn)行通信,或更一般的,與媒體進(jìn)行通信以在初始化請(qǐng)求的過(guò)程期間初始化媒體。應(yīng)用接口模塊704還可從與媒體相關(guān)聯(lián)的區(qū)段、簇或頁(yè)進(jìn)行讀取和寫(xiě)入。通常,除了與媒體進(jìn)行通信之外,應(yīng)用接口模塊704還與系統(tǒng)管理器模塊708和數(shù)據(jù)管理器模塊712進(jìn)行通信。
一般來(lái)說(shuō),應(yīng)用接口模塊704經(jīng)配置以與主機(jī)、操作系統(tǒng)或使用者直接進(jìn)行通信。應(yīng)用接口模塊704還與系統(tǒng)管理器模塊708和數(shù)據(jù)管理器模塊712進(jìn)行通信。當(dāng)使用者要讀取、寫(xiě)入或格式化閃存時(shí),使用者發(fā)送請(qǐng)求到操作系統(tǒng),該等請(qǐng)求傳到應(yīng)用接口模塊704。應(yīng)用接口模塊704依據(jù)請(qǐng)求而將請(qǐng)求引導(dǎo)到系統(tǒng)管理器模塊708或數(shù)據(jù)管理器模塊712。
系統(tǒng)管理器模塊708包括系統(tǒng)初始化子模塊724、擦除計(jì)數(shù)區(qū)塊管理子模塊726和電源管理區(qū)塊子模塊730。系統(tǒng)初始化子模塊724通常經(jīng)配置以能處理初始化請(qǐng)求,且通常與擦除計(jì)數(shù)區(qū)塊管理子模塊726進(jìn)行通信。在一個(gè)實(shí)施例中,系統(tǒng)初始化子模塊724允許更新區(qū)塊的擦除計(jì)數(shù),且大體上負(fù)責(zé)創(chuàng)建最不頻繁擦除區(qū)塊表和最頻繁擦除區(qū)塊表。
擦除計(jì)數(shù)區(qū)塊管理子模塊726包括促使存儲(chǔ)區(qū)塊的擦除計(jì)數(shù)的功能(例如,在擦除計(jì)數(shù)區(qū)塊中)和促使計(jì)算平均的擦除計(jì)數(shù)的功能及使用個(gè)別的擦除計(jì)數(shù)進(jìn)行更新的功能。換句話說(shuō),擦除計(jì)數(shù)區(qū)塊管理子模塊726實(shí)際上允許對(duì)擦除計(jì)數(shù)分類(lèi)并允許維持一個(gè)平均的擦除計(jì)數(shù)。另外,在一個(gè)實(shí)施例中,擦除計(jì)數(shù)區(qū)塊管理子模塊726也大體上在整個(gè)系統(tǒng)初始化請(qǐng)求期間使擦除計(jì)數(shù)區(qū)塊中大體上所有區(qū)塊的擦除計(jì)數(shù)同步。雖然擦除計(jì)數(shù)區(qū)塊管理子模塊726可經(jīng)配置以使平均擦除計(jì)數(shù)存儲(chǔ)于擦除計(jì)數(shù)區(qū)塊中,但是應(yīng)了解,電源管理區(qū)塊子模塊730可作為替代用于存儲(chǔ)平均擦除計(jì)數(shù)。
除了與應(yīng)用接口模塊704通信之外,系統(tǒng)管理器模塊708還與數(shù)據(jù)管理器模塊712和裝置管理器和接口模塊720進(jìn)行通信。與系統(tǒng)管理器模塊708和應(yīng)用接口模塊704通信的數(shù)據(jù)管理器模塊712可包括提供頁(yè)或區(qū)塊映射的功能。數(shù)據(jù)管理器模塊712還可包括與操作系統(tǒng)和文件系統(tǒng)接口層相關(guān)聯(lián)的功能。
裝置管理器和接口模塊720通常提供一個(gè)閃存存儲(chǔ)器接口,且包括與硬件提取相關(guān)聯(lián)的功能,例如I/O接口,所述裝置管理器和接口模塊與系統(tǒng)管理器模塊708、數(shù)據(jù)管理器712和數(shù)據(jù)完整性管理器716進(jìn)行通信。數(shù)據(jù)完整性管理器模塊716提供ECC處理及其它功能。
如上所述,非易失性存儲(chǔ)器系統(tǒng)中的每個(gè)區(qū)塊的擦除計(jì)數(shù)可存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中,其為存儲(chǔ)在系統(tǒng)中或與該非易失性存儲(chǔ)器系統(tǒng)關(guān)聯(lián)的NAND存儲(chǔ)器中的保留區(qū)塊。所述擦除計(jì)數(shù)區(qū)塊除含有每個(gè)區(qū)塊的擦除計(jì)數(shù)之外還可以含有平均擦除計(jì)數(shù)。圖8a是根據(jù)本發(fā)明的一個(gè)實(shí)施例的擦除計(jì)數(shù)區(qū)塊的圖解表示。一般確定擦除計(jì)數(shù)區(qū)塊800的大小使得擦除計(jì)數(shù)區(qū)塊800對(duì)包括擦除計(jì)數(shù)區(qū)塊800的整個(gè)非易失性系統(tǒng)中每個(gè)區(qū)塊(即物理區(qū)塊)包括一定數(shù)目的位??梢赃x擇實(shí)際上分配給每個(gè)區(qū)塊的位數(shù)使得通過(guò)已分配的位可容納區(qū)塊的整個(gè)擦除計(jì)數(shù)。在一個(gè)實(shí)施例中,擦除計(jì)數(shù)區(qū)塊800可對(duì)每個(gè)區(qū)塊包括約三個(gè)字節(jié),這是因?yàn)槿齻€(gè)字節(jié)一般足以容納約一百萬(wàn)的擦除計(jì)數(shù)。當(dāng)在包括每區(qū)塊64個(gè)頁(yè)的約2048個(gè)區(qū)塊的512Mb系統(tǒng)中為每個(gè)區(qū)塊分配三個(gè)字節(jié)時(shí),可以確定擦除計(jì)數(shù)區(qū)塊800的大小以包括約12個(gè)頁(yè),例如,約六千個(gè)字節(jié)。
擦除計(jì)數(shù)區(qū)塊800包括頁(yè)810,如所屬領(lǐng)域的技術(shù)人員應(yīng)了解的,該等頁(yè)常包括可用于存儲(chǔ)如擦除計(jì)數(shù)的數(shù)據(jù)的約512個(gè)字節(jié)。如圖示,第一頁(yè)810a可經(jīng)配置以含有區(qū)塊“0”到“169”的擦除計(jì)數(shù)項(xiàng),而第二頁(yè)810b可經(jīng)配置以含有區(qū)塊“170”到“339”的擦除計(jì)數(shù)項(xiàng)。如下文將有關(guān)圖8b和8c所描述的,因?yàn)榈谝豁?yè)810a的字節(jié)3-5經(jīng)配置以含有對(duì)應(yīng)于區(qū)塊“1”的擦除計(jì)數(shù)項(xiàng),所以當(dāng)寫(xiě)入或讀取區(qū)塊“1”(即,物理區(qū)塊“1”)的擦除計(jì)數(shù)時(shí),可以訪問(wèn)第一頁(yè)810a的字節(jié)3-5。
除了包括頁(yè)810之外,擦除計(jì)數(shù)區(qū)塊800還包括一般可處于擦除計(jì)數(shù)區(qū)塊800中的大體任何地方的標(biāo)頭820。下文將參考圖9討論標(biāo)頭820,標(biāo)頭820可以是擦除計(jì)數(shù)區(qū)塊800中的頁(yè),其包括和非易失性閃存相關(guān)的信息,該非易失性閃存包括與存儲(chǔ)在頁(yè)810中的擦除計(jì)數(shù)相關(guān)聯(lián)的區(qū)塊。
圖8b是根據(jù)本發(fā)明的一個(gè)實(shí)施例在一個(gè)擦除計(jì)數(shù)區(qū)塊中的一個(gè)頁(yè)(例如,圖8a的擦除計(jì)數(shù)區(qū)塊800的頁(yè)810a)的圖解表示。頁(yè)810a經(jīng)配置以保持有對(duì)應(yīng)于約一百七十個(gè)物理區(qū)塊的項(xiàng)830。如圖示,項(xiàng)830含有區(qū)塊的擦除計(jì)數(shù)使得頁(yè)810a中的第一項(xiàng)830a經(jīng)配置以含有區(qū)塊“0”的擦除計(jì)數(shù),且第二項(xiàng)830b經(jīng)配置以含有區(qū)塊“1”的擦除計(jì)數(shù)。頁(yè)810a的最末項(xiàng)830d經(jīng)配置以保持區(qū)塊“169”的擦除計(jì)數(shù)。
每一項(xiàng)830包括大體上相同的字節(jié)數(shù)。如圖8c所示,對(duì)應(yīng)于區(qū)塊“0”的項(xiàng)830a可以是在頁(yè)810a中的字節(jié)0-2,而對(duì)應(yīng)于區(qū)塊“2”的項(xiàng)830c可以是在頁(yè)810a中的字節(jié)6-8。如先前提到的,每一項(xiàng)830可以包括大約三個(gè)字節(jié),但應(yīng)了解,在每一項(xiàng)830中的字節(jié)數(shù)和隨之的頁(yè)810a中的項(xiàng)830的數(shù)目可以變化。舉例而言,在一個(gè)實(shí)施例中,每一項(xiàng)830可以包括大約四個(gè)字節(jié)。
盡管頁(yè)810a中的每一項(xiàng)830經(jīng)配置以含有一個(gè)擦除計(jì)數(shù),但是項(xiàng)830可不必含有一個(gè)擦除計(jì)數(shù)。舉例而言,當(dāng)(如)由于生產(chǎn)或制造缺陷導(dǎo)致特定區(qū)塊不可用且不可以寫(xiě)入或從其中讀取時(shí),該區(qū)塊一般將不具有擦除計(jì)數(shù)。因而,如圖8a的擦除計(jì)數(shù)區(qū)塊800的擦除計(jì)數(shù)區(qū)塊一般不會(huì)具有含有用于不可用區(qū)塊的擦除計(jì)數(shù)的項(xiàng)。或者,替代保持擦除計(jì)數(shù),不可用區(qū)塊的項(xiàng)830可以保持經(jīng)配置以將區(qū)塊識(shí)別為不可用的指示符或標(biāo)記。
圖8d是根據(jù)本發(fā)明的一個(gè)實(shí)施例在一個(gè)擦除計(jì)數(shù)區(qū)塊中的一個(gè)頁(yè)(例如,圖8a的擦除計(jì)數(shù)區(qū)塊800的頁(yè)810a)的圖解表示,其含有擦除計(jì)數(shù)和指示一個(gè)特定的區(qū)塊不可用的一項(xiàng)。當(dāng)一個(gè)區(qū)塊可用時(shí),或可以寫(xiě)入或讀取時(shí),該區(qū)塊一般將具有擦除計(jì)數(shù)。舉例而言,當(dāng)擦除區(qū)塊“0”一百次時(shí),頁(yè)810a的項(xiàng)830a可以含有值“100”,該頁(yè)經(jīng)配置以含有對(duì)應(yīng)于區(qū)塊“0”的一個(gè)擦除計(jì)數(shù)。類(lèi)似地,當(dāng)擦除區(qū)塊“1”三十次時(shí),頁(yè)810a的項(xiàng)830b可含有值“30”。
如果已經(jīng)將區(qū)塊“2”識(shí)別為不可用的區(qū)塊,例如通過(guò)存儲(chǔ)在區(qū)塊“2”中的標(biāo)記,那么對(duì)應(yīng)于區(qū)塊“2”的頁(yè)810a的項(xiàng)830c可以含有經(jīng)配置以指示區(qū)塊“2”不可用的標(biāo)記。在一個(gè)實(shí)施例中,在項(xiàng)830c中的標(biāo)記“FFFFFF”可指示由于制造缺陷區(qū)塊“2”不可用。應(yīng)了解,大體上任何標(biāo)記可用于指示區(qū)塊不可用。
如上文的討論,如圖8a中的擦除計(jì)數(shù)區(qū)塊800的擦除計(jì)數(shù)區(qū)塊一般包括標(biāo)頭820,在一個(gè)實(shí)施例中,該標(biāo)頭是擦除計(jì)數(shù)區(qū)塊800中的頁(yè),其含有一般涉及非易失性存儲(chǔ)器系統(tǒng)中的區(qū)塊的信息。下面參考圖9,將根據(jù)本發(fā)明的一個(gè)實(shí)施例描述擦除計(jì)數(shù)區(qū)塊的標(biāo)頭,例如,圖8a的擦除計(jì)數(shù)區(qū)塊800的標(biāo)頭820。標(biāo)頭820可包括可用于存儲(chǔ)信息的約512個(gè)字節(jié),該標(biāo)頭可處于擦除計(jì)數(shù)區(qū)塊中的大體任何地方。存儲(chǔ)在標(biāo)頭820中的信息一般包括簽名850a和劃分信息850b。簽名850a可用于安全核查。
雖然平均擦除計(jì)數(shù)可存儲(chǔ)在非易失性存儲(chǔ)器系統(tǒng)的系統(tǒng)存儲(chǔ)器中的大體任何地方,但是,在所述實(shí)施例中,平均擦除計(jì)數(shù)存儲(chǔ)成標(biāo)頭820中的信息850b。
當(dāng)將電源提供給包括擦除計(jì)數(shù)區(qū)塊的非易失性存儲(chǔ)器系統(tǒng)時(shí),一般初始化或另外創(chuàng)建擦除計(jì)數(shù)區(qū)塊。換句話說(shuō),當(dāng)首先格式化非易失性存儲(chǔ)器系統(tǒng)的非易失性存儲(chǔ)器時(shí)一般初始化擦除計(jì)數(shù)區(qū)塊。參考圖10,將根據(jù)本發(fā)明的一個(gè)實(shí)施例描述與在首先格式化非易失性存儲(chǔ)器系統(tǒng)的非易失性存儲(chǔ)器時(shí),初始化擦除計(jì)數(shù)區(qū)塊的一種方法相關(guān)聯(lián)的步驟。過(guò)程1000在步驟1004開(kāi)始,其中檢查非易失性存儲(chǔ)器系統(tǒng)中的所有區(qū)塊,或更明確地說(shuō),所有的物理區(qū)塊。檢查該等區(qū)塊可包括檢查所述區(qū)塊的內(nèi)容以判定哪些區(qū)塊可能不可用,即,由非易失性存儲(chǔ)器的制造商識(shí)別為不可用。從而,在步驟1008中,識(shí)別非易失性存儲(chǔ)器中不可用的區(qū)塊。識(shí)別該等不可用的區(qū)塊可涉及識(shí)別含有標(biāo)記(例如,如“FFFFFF”的特定標(biāo)記)的每個(gè)區(qū)塊,已知該等標(biāo)記將該區(qū)塊識(shí)別為具有或另外包括制造缺陷的區(qū)塊。
一旦識(shí)別出大體上所有不可用的區(qū)塊,就在步驟1012中在擦除計(jì)數(shù)區(qū)塊中將不可用的區(qū)塊標(biāo)記為或以其他方式識(shí)別為不可用。將特定區(qū)塊標(biāo)記為不可用可包括將一特定標(biāo)記或代碼放入該擦除計(jì)數(shù)區(qū)塊中為該區(qū)塊保留的用于該區(qū)塊為不可用的部分中。應(yīng)了解,在擦除計(jì)數(shù)區(qū)塊中標(biāo)記不可用的區(qū)塊通常還包括更新該擦除計(jì)數(shù)區(qū)塊的標(biāo)頭以包括非易失性存儲(chǔ)器中的不可用區(qū)塊的總數(shù)的計(jì)數(shù)。
在擦除計(jì)數(shù)區(qū)塊中標(biāo)記不可用的區(qū)塊之后,在步驟1016中初始化未擦除的可用區(qū)塊或不具有制造缺陷的區(qū)塊的擦除計(jì)數(shù)。初始化所述擦除計(jì)數(shù)可包括將未擦除的每個(gè)區(qū)塊的擦除計(jì)數(shù)設(shè)定為零值。區(qū)塊的擦除計(jì)數(shù)通常存儲(chǔ)在與該區(qū)塊相關(guān)聯(lián)的冗余或開(kāi)銷(xiāo)區(qū)域的至少一個(gè)中。然后,在步驟1020中可以在擦除計(jì)數(shù)區(qū)塊中設(shè)定對(duì)應(yīng)于可用區(qū)塊(已擦除和未擦除的可用區(qū)塊)的擦除計(jì)數(shù)。通常,可以將存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中的擦除計(jì)數(shù)設(shè)定或另外初始化為零值,或?qū)τ谝晃床脸膮^(qū)塊來(lái)說(shuō),將擦除計(jì)數(shù)設(shè)定為與存儲(chǔ)在其對(duì)應(yīng)未擦除區(qū)塊的擦除計(jì)數(shù)相同的值。換句話說(shuō),未擦除的區(qū)塊的擦除計(jì)數(shù)一般與存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中的對(duì)應(yīng)于該區(qū)塊的位置中的擦除計(jì)數(shù)相同。一旦將擦除計(jì)數(shù)設(shè)定為擦除計(jì)數(shù)區(qū)塊中的項(xiàng)時(shí),就可以在步驟1024中在擦除計(jì)數(shù)區(qū)塊中設(shè)定平均擦除計(jì)數(shù)。如先前所討論的,平均擦除計(jì)數(shù)可存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊的標(biāo)頭中。當(dāng)將可用區(qū)塊的擦除計(jì)數(shù)都初始化為零值時(shí),就可以最初將平均擦除計(jì)數(shù)設(shè)定為零值。在設(shè)定完平均擦除計(jì)數(shù)之后,就完成了格式化非易失性存儲(chǔ)器系統(tǒng)中包括的非易失性存儲(chǔ)器的過(guò)程。
在非易失性存儲(chǔ)器系統(tǒng)中每處理初始化過(guò)程一次,就可以更新擦除計(jì)數(shù)區(qū)塊中的項(xiàng)。然而,應(yīng)了解,一般可在大體上任何時(shí)候(例如,響應(yīng)由使用者發(fā)出的命令)更新擦除計(jì)數(shù)區(qū)塊。下面參考圖11,將根據(jù)本發(fā)明的一個(gè)實(shí)施例描述與響應(yīng)一個(gè)初始化請(qǐng)求而更新一個(gè)擦除計(jì)數(shù)區(qū)塊的一種方法相關(guān)聯(lián)的步驟。在步驟1108開(kāi)始更新擦除計(jì)數(shù)區(qū)塊的過(guò)程1100,其中獲得一個(gè)未擦除的可用區(qū)塊。所屬領(lǐng)域的技術(shù)人員應(yīng)了解,未擦除的可用區(qū)塊一般含有數(shù)據(jù),且實(shí)際上處于使用中。在步驟1108中獲得擦除計(jì)數(shù)區(qū)塊中所存儲(chǔ)的未擦除的可用區(qū)塊的擦除計(jì)數(shù)項(xiàng)。換句話說(shuō),讀取擦除計(jì)數(shù)區(qū)塊中的對(duì)應(yīng)于未擦除的可用區(qū)塊的擦除計(jì)數(shù)中的項(xiàng)。一旦讀取在步驟1108中獲得的未擦除的可用區(qū)塊的擦除計(jì)數(shù)的項(xiàng),就在步驟1116中判定擦除計(jì)數(shù)項(xiàng)是否具有比存儲(chǔ)在未擦除的可用區(qū)塊中的擦除計(jì)數(shù)小的一個(gè)值。
如果在步驟1116中判定存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中的未擦除的可用區(qū)塊中的擦除計(jì)數(shù)項(xiàng)小于存儲(chǔ)在未擦除的可用區(qū)塊的擦除計(jì)數(shù),那么就指示存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中的擦除計(jì)數(shù)項(xiàng)不是最新的。因此,處理流程從步驟1116移到步驟1120,其中,更新作為對(duì)應(yīng)于未擦除的可用區(qū)塊的項(xiàng)而存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中的擦除計(jì)數(shù)。更新擦除計(jì)數(shù)項(xiàng)一般涉及將未擦除的可用區(qū)塊的當(dāng)前擦除計(jì)數(shù)存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中。一旦更新了擦除計(jì)數(shù)項(xiàng),在步驟1124中作出有關(guān)是否有更多的未擦除的可用區(qū)塊要處理的判定。
當(dāng)在步驟1124中判定有更多未擦除的可用區(qū)塊要處理時(shí),處理流程就返回到步驟1108,在該步驟中獲得另一個(gè)未擦除的可用區(qū)塊?;蛘撸?dāng)判定已處理完大體上所有的未擦除的可用區(qū)塊時(shí),例如,當(dāng)已更新擦除計(jì)數(shù)區(qū)塊中的大體上所有的未擦除的可用區(qū)塊的擦除計(jì)數(shù)項(xiàng)時(shí),在步驟1128中重新計(jì)算非易失性存儲(chǔ)器中的所有可用區(qū)塊的平均擦除計(jì)數(shù)。所屬領(lǐng)域的技術(shù)人員應(yīng)了解,可通過(guò)對(duì)存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中的所有擦除計(jì)數(shù)求和,接著將該和除以存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中的擦除計(jì)數(shù)的數(shù)目來(lái)判定平均擦除計(jì)數(shù),如下文相關(guān)圖13將描述的。重新計(jì)算平均擦除計(jì)數(shù)之后,在步驟1132中將重新計(jì)算出的平均擦除計(jì)數(shù)存儲(chǔ)在所述擦除計(jì)數(shù)區(qū)塊中。如先前所討論的,平均擦除計(jì)數(shù)可存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊的標(biāo)頭中。一旦存儲(chǔ)了平均擦除計(jì)數(shù),就完成了響應(yīng)初始化請(qǐng)求而更新擦除計(jì)數(shù)區(qū)塊的過(guò)程。
返回到步驟1116,當(dāng)判定擦除計(jì)數(shù)區(qū)塊中的所獲得的未擦除可用區(qū)塊的擦除計(jì)數(shù)項(xiàng)不小于存儲(chǔ)在所獲得的未擦除的可用區(qū)塊中的擦除計(jì)數(shù)時(shí),就暗示在擦除計(jì)數(shù)區(qū)塊中的擦除計(jì)數(shù)項(xiàng)是最新的。同樣,處理流程從步驟1116大體上直接移到步驟1124,在該步驟中判定是否有更多未擦除的可用區(qū)塊要處理。
如先前所討論的,區(qū)塊的擦除計(jì)數(shù)存儲(chǔ)在與該區(qū)塊相關(guān)聯(lián)的冗余或耗用區(qū)域的至少一個(gè)中。舉例而言,區(qū)塊的擦除計(jì)數(shù)可至少存儲(chǔ)在與該區(qū)塊的第一頁(yè)相關(guān)聯(lián)的冗余區(qū)域中。然而,當(dāng)擦除區(qū)塊時(shí),通常擦除區(qū)塊的包括擦除計(jì)數(shù)的大體上所有的內(nèi)容。因此,當(dāng)獲得擦除區(qū)塊以供使用時(shí),即,當(dāng)從如最不頻繁擦除區(qū)塊表的備用區(qū)塊池中獲得擦除區(qū)塊時(shí),該擦除區(qū)塊將不包括擦除計(jì)數(shù)。
通常,可從擦除計(jì)數(shù)區(qū)塊中讀取從可用的備用區(qū)塊池中所獲得的擦除區(qū)塊(即,備用區(qū)塊)的擦除計(jì)數(shù)。圖12是根據(jù)本發(fā)明的一個(gè)實(shí)施例說(shuō)明與獲得一個(gè)備用區(qū)塊的擦除計(jì)數(shù)的一種方法相關(guān)聯(lián)的步驟的處理流程圖。在步驟1204開(kāi)始獲得備用區(qū)塊的擦除計(jì)數(shù)1200的過(guò)程,在該步驟中從擦除計(jì)數(shù)區(qū)塊中讀取所獲得的備用區(qū)塊的擦除計(jì)數(shù)項(xiàng)。明確地說(shuō),讀取存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中的對(duì)應(yīng)于備用區(qū)塊的擦除計(jì)數(shù)的位。接著在步驟1208中作出有關(guān)擦除計(jì)數(shù)項(xiàng)中的位是否有效的判定。也就是說(shuō),判定備用區(qū)塊的擦除計(jì)數(shù)項(xiàng)中的位是否表示先前所存儲(chǔ)的擦除計(jì)數(shù),或備用區(qū)塊的擦除計(jì)數(shù)項(xiàng)中的位是否表示其它事務(wù),例如,該等位是否將備用區(qū)塊識(shí)別為由于成長(zhǎng)缺陷而成為先前不可用。
如果在步驟1208中判定從擦除計(jì)數(shù)區(qū)塊讀取的擦除計(jì)數(shù)項(xiàng)或擦除計(jì)數(shù)實(shí)際上并不是有效的擦除計(jì)數(shù),那么處理流程從步驟1208移到步驟1212,在該步驟中,如果該擦除區(qū)塊是從該備用區(qū)塊池獲得的,那么從備用區(qū)塊池中移除這個(gè)擦除區(qū)塊,或者如果該擦除區(qū)塊不是從該備用區(qū)塊池獲得的,那么不將其添加到備用區(qū)塊池。
或者,如果在步驟1208中判定擦除計(jì)數(shù)區(qū)塊中的備用區(qū)塊的擦除計(jì)數(shù)項(xiàng)的內(nèi)容可有效用于擦除計(jì)數(shù),那么處理流程從步驟1208進(jìn)行到步驟1216,在該步驟中將擦除計(jì)數(shù)項(xiàng)的內(nèi)容設(shè)定為備用區(qū)塊的擦除計(jì)數(shù)。換句話說(shuō),如果從擦除計(jì)數(shù)區(qū)塊中讀取的備用區(qū)塊的擦除計(jì)數(shù)是有效的擦除計(jì)數(shù),那么將從擦除計(jì)數(shù)區(qū)塊中讀取的擦除計(jì)數(shù)設(shè)定為備用區(qū)塊的實(shí)際擦除計(jì)數(shù)。將備用區(qū)塊的擦除計(jì)數(shù)設(shè)定為從擦除計(jì)數(shù)區(qū)塊中所讀取的擦除計(jì)數(shù)之后,就完成了獲得備用區(qū)塊的擦除計(jì)數(shù)的過(guò)程。
一般來(lái)說(shuō),與計(jì)算或重新計(jì)算平均擦除計(jì)數(shù)相關(guān)聯(lián)的步驟可大不相同。圖13是根據(jù)本發(fā)明的一個(gè)實(shí)施例說(shuō)明計(jì)算平均擦除計(jì)數(shù)的一種方法的處理流程圖。在步驟1304開(kāi)始計(jì)算平均擦除計(jì)數(shù)區(qū)塊的過(guò)程1300,在該步驟中獲得所有可用區(qū)塊的擦除計(jì)數(shù)。未擦除的可用區(qū)塊和已擦除的可用區(qū)塊具有相關(guān)聯(lián)的擦除計(jì)數(shù),而不可用的區(qū)塊通常既不具有擦除計(jì)數(shù)也不具有可得的擦除計(jì)數(shù),大體上只能獲得可用區(qū)塊的擦除計(jì)數(shù)。通常從擦除計(jì)數(shù)區(qū)塊獲得擦除計(jì)數(shù),但應(yīng)了解,可替代從未擦除的可用區(qū)塊的冗余區(qū)域獲得未擦除的可用區(qū)塊的擦除計(jì)數(shù)。
一旦獲得可用區(qū)塊的擦除計(jì)數(shù),就在步驟1308中對(duì)可用區(qū)塊的擦除計(jì)數(shù)求和。也就是說(shuō),將可用區(qū)塊的擦除計(jì)數(shù)加在一起。然后,在步驟1312中,判定可用區(qū)塊的總數(shù)。通過(guò)從擦除計(jì)數(shù)區(qū)塊獲得區(qū)塊的總數(shù)和不可用的區(qū)塊的總數(shù),然后從區(qū)塊的總數(shù)減去不可用的區(qū)塊的總數(shù),來(lái)判定可用區(qū)塊的總數(shù)?;蛘?,可通過(guò)在所有區(qū)塊中的有效循環(huán)和維持所有可用區(qū)塊的運(yùn)行計(jì)數(shù)獲得可用區(qū)塊的總數(shù)。
在獲得可用區(qū)塊的總數(shù)之后,在步驟1316中將所有的可用區(qū)塊的擦除計(jì)數(shù)的總和除以可用區(qū)塊的總數(shù)來(lái)產(chǎn)生一個(gè)平均的擦除計(jì)數(shù)。一旦可用區(qū)塊的總數(shù)與擦除計(jì)數(shù)的總和相除,就完成了產(chǎn)生一個(gè)平均的擦除計(jì)數(shù)的過(guò)程。
雖然僅描述了本發(fā)明的一些實(shí)施例,但是應(yīng)了解在不偏離本發(fā)明的精神或范疇的情況下可以許多其它具體形式來(lái)體現(xiàn)本發(fā)明。舉例而言,擦除計(jì)數(shù)區(qū)塊的大小和該擦除計(jì)數(shù)區(qū)塊中的標(biāo)頭的位置會(huì)有很大變化。另外,擦除計(jì)數(shù)區(qū)塊的標(biāo)頭的內(nèi)容還可以依據(jù)特定系統(tǒng)的需要而變化。
雖然將非易失性存儲(chǔ)器系統(tǒng)描述成通過(guò)關(guān)聯(lián)存儲(chǔ)器控制器來(lái)控制或使用與主機(jī)系統(tǒng)相關(guān)聯(lián)的軟件或固件來(lái)控制,但是應(yīng)了解,包括擦除計(jì)數(shù)管理的損耗平衡處理可應(yīng)用于下述非易失性存儲(chǔ)器系統(tǒng),其與大體上位于非易失性存儲(chǔ)器系統(tǒng)外部的控制器進(jìn)行通信。使用控制器的合適的存儲(chǔ)器系統(tǒng)包括(但不限于)PC卡、壓縮快閃卡、多媒體卡、安全數(shù)字卡和包括閃存和閃存控制器的嵌入式芯片組。通過(guò)使用加載到主機(jī)系統(tǒng)上的軟件或固件來(lái)控制的存儲(chǔ)器系統(tǒng)包括嵌入式存儲(chǔ)器裝置。在一個(gè)實(shí)施例中,可以使用上文描述的擦除管理技術(shù)和擦除計(jì)數(shù)區(qū)塊管理技術(shù)而不使用與存儲(chǔ)器系統(tǒng)相關(guān)聯(lián)的控制器的存儲(chǔ)器系統(tǒng)可以使用與主機(jī)(例如主計(jì)算機(jī)系統(tǒng))相關(guān)聯(lián)的控制器來(lái)實(shí)施損耗平衡。也就是說(shuō),主機(jī)可直接定址和管理存儲(chǔ)器,其中通過(guò)使用主機(jī)上的控制器來(lái)實(shí)現(xiàn)損耗平衡。
一般將擦除計(jì)數(shù)區(qū)塊描述成包括很多頁(yè)的區(qū)塊。然而,應(yīng)了解,可配置系統(tǒng)存儲(chǔ)器中的大體上任何合適的數(shù)據(jù)結(jié)構(gòu)以保持擦除計(jì)數(shù)和平均擦除計(jì)數(shù)。
在一個(gè)實(shí)施例中,擦除計(jì)數(shù)區(qū)塊可大體上僅包括對(duì)應(yīng)于非易失性存儲(chǔ)器系統(tǒng)中的區(qū)塊的擦除計(jì)數(shù)的項(xiàng)。在這個(gè)實(shí)施例中,擦除計(jì)數(shù)區(qū)塊的標(biāo)頭中通常含有的信息可存儲(chǔ)在與擦除計(jì)數(shù)區(qū)塊分開(kāi)的數(shù)據(jù)結(jié)構(gòu)或區(qū)塊中。也就是說(shuō),當(dāng)配置擦除計(jì)數(shù)區(qū)塊大體上僅含有有關(guān)與區(qū)塊相關(guān)聯(lián)的擦除計(jì)數(shù)的項(xiàng)時(shí),如平均擦除計(jì)數(shù)的信息可不必存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊中,或更明確地說(shuō),不必存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊的標(biāo)頭中。
或者,替代存儲(chǔ)在擦除計(jì)數(shù)區(qū)塊的標(biāo)頭中,可在擦除計(jì)數(shù)區(qū)塊中的大體上任何地方存儲(chǔ)平均擦除計(jì)數(shù)。
將平均擦除計(jì)數(shù)描述為通過(guò)對(duì)所有的可用區(qū)塊的擦除計(jì)數(shù)求和,然后使可用區(qū)塊的擦除計(jì)數(shù)的總和除以可用區(qū)塊的總數(shù)而判定。應(yīng)了解,代替將總和除以可用區(qū)塊的總數(shù),該總和也可以除以區(qū)塊的總數(shù)。另外,在一個(gè)實(shí)施例中,可通過(guò)使用當(dāng)前的平均擦除計(jì)數(shù)來(lái)表示每個(gè)不可用區(qū)塊的擦除計(jì)數(shù),使得平均的擦除計(jì)數(shù)中實(shí)質(zhì)上慮及每個(gè)區(qū)塊而有效地對(duì)所有的區(qū)塊的擦除計(jì)數(shù)求和來(lái)判定平均擦除計(jì)數(shù)。所有的擦除計(jì)數(shù)的總和,包括可用區(qū)塊的實(shí)際擦除計(jì)數(shù)和每個(gè)不可用區(qū)塊的當(dāng)前平均擦除計(jì)數(shù),然后可除以區(qū)塊的總數(shù)而產(chǎn)生一個(gè)新的或更新的平均擦除計(jì)數(shù)。
代替計(jì)算實(shí)際反應(yīng)區(qū)塊總數(shù)中的每個(gè)區(qū)塊的平均擦除次數(shù)的平均擦除計(jì)數(shù),可計(jì)算每個(gè)區(qū)塊擦除次數(shù)的其它特征。舉例而言,可判定區(qū)塊(例如可用區(qū)塊)的總數(shù)中的每個(gè)區(qū)塊擦除的中間次數(shù)。
雖然已描述了使用擦除計(jì)數(shù)區(qū)塊來(lái)維持存儲(chǔ)器系統(tǒng)中的區(qū)塊的擦除計(jì)數(shù),但應(yīng)了解,還可以使用擦除計(jì)數(shù)區(qū)塊來(lái)維持會(huì)被擦除的大體上任何存儲(chǔ)器元件的擦除計(jì)數(shù)。舉例而言,在一個(gè)實(shí)施例中,擦除計(jì)數(shù)區(qū)塊或數(shù)據(jù)結(jié)構(gòu)可維持頁(yè)而不是區(qū)塊的擦除計(jì)數(shù)。
通常,與損耗平衡的各種處理和方法相關(guān)聯(lián)的步驟可以有很大變化。在不偏離本發(fā)明的范疇的精神下,通??商砑?、移除、改變和重新排序步驟。因此,應(yīng)認(rèn)識(shí)到,本發(fā)明的實(shí)例僅具有說(shuō)明性而不具有限制性,而且本發(fā)明并不限于本文給出的詳細(xì)描述,且在附加權(quán)利要求范圍的范疇內(nèi)可對(duì)本發(fā)明進(jìn)行修改。
權(quán)利要求
1.一種數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)被配置在與一非易失性存儲(chǔ)器系統(tǒng)相關(guān)聯(lián)的一系統(tǒng)存儲(chǔ)器中,所述非易失性存儲(chǔ)器系統(tǒng)包括一個(gè)包括復(fù)數(shù)個(gè)區(qū)塊的非易失性存儲(chǔ)器,所述數(shù)據(jù)結(jié)構(gòu)包括一第一指示符,所述第一指示符經(jīng)配置以提供所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除次數(shù)的一指示;和一第二指示符,所述第二指示符經(jīng)配置以指示所述復(fù)數(shù)個(gè)區(qū)塊中所包括的區(qū)塊的一總數(shù)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其進(jìn)一步包括一標(biāo)頭,其中所述標(biāo)頭經(jīng)配置含有所述第一指示符和所述第二指示符。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其中所述第一指示符是一個(gè)平均擦除計(jì)數(shù),所述平均擦除計(jì)數(shù)經(jīng)配置以指示所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除的平均次數(shù)。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其中所述非易失性存儲(chǔ)器是一個(gè)NAND閃存。
5.一種非易失性存儲(chǔ)器系統(tǒng),其包括一非易失性存儲(chǔ)器,所述非易失性存儲(chǔ)器包括復(fù)數(shù)個(gè)區(qū)塊;一系統(tǒng)存儲(chǔ)器;和用于在所述系統(tǒng)存儲(chǔ)器中指示所述復(fù)數(shù)個(gè)區(qū)塊中所包括的每個(gè)區(qū)塊被擦除的平均次數(shù)的構(gòu)件。
6.根據(jù)權(quán)利要求5所述的非易失性存儲(chǔ)器系統(tǒng),其中,用于在所述系統(tǒng)存儲(chǔ)器中指示所述復(fù)數(shù)個(gè)區(qū)塊中所包括的每個(gè)區(qū)塊被擦除的平均次數(shù)的構(gòu)件包括用于在一個(gè)數(shù)據(jù)結(jié)構(gòu)中指示所述復(fù)數(shù)個(gè)區(qū)塊中所包括的每個(gè)區(qū)塊被擦除的平均次數(shù)的構(gòu)件。
7.根據(jù)權(quán)利要求6所述的非易失性存儲(chǔ)器系統(tǒng),其中所述數(shù)據(jù)結(jié)構(gòu)是一個(gè)擦除計(jì)數(shù)區(qū)塊。
8.根據(jù)權(quán)利要求5所述的非易失性存儲(chǔ)器系統(tǒng),其中所述非易失性存儲(chǔ)器是一個(gè)NAND閃存。
9.一種判定一存儲(chǔ)器系統(tǒng)的一非易失性存儲(chǔ)器中的多個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除的平均次數(shù)的方法,所述方法包括獲得所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊的一擦除計(jì)數(shù),所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊的所述擦除計(jì)數(shù)經(jīng)配置以指示所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除的次數(shù),其中區(qū)塊的所述數(shù)目是所述非易失性存儲(chǔ)器中可用區(qū)塊的一總數(shù);產(chǎn)生所述多個(gè)區(qū)塊的所述擦除計(jì)數(shù)的一個(gè)總和;和產(chǎn)生所述平均擦除計(jì)數(shù),所述平均擦除計(jì)數(shù)經(jīng)配置以指示所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除的平均次數(shù),其中產(chǎn)生所述平均擦除計(jì)數(shù)包括大體上將所述總和除以區(qū)塊的所述數(shù)目。
10.根據(jù)權(quán)利要求9所述的方法,其中所述多個(gè)區(qū)塊中的一第一區(qū)塊的所述擦除計(jì)數(shù)是從所述第一區(qū)塊獲得的。
11.根據(jù)權(quán)利要求10所述的方法,其中所述第一區(qū)塊的所述擦除計(jì)數(shù)是從所述第一區(qū)塊的一個(gè)冗余區(qū)域獲得的。
12.根據(jù)權(quán)利要求9所述的方法,其中所述多個(gè)區(qū)塊的一第一區(qū)塊的所述擦除計(jì)數(shù)是從所述存儲(chǔ)器系統(tǒng)中的一擦除計(jì)數(shù)區(qū)塊獲得的,所述擦除計(jì)數(shù)區(qū)塊經(jīng)配置以含有所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊的所述擦除計(jì)數(shù)。
13.根據(jù)權(quán)利要求9所述的方法,其中所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊是一個(gè)可用區(qū)塊。
14.根據(jù)權(quán)利要求9所述的方法,其中所述非易失性存儲(chǔ)器是一個(gè)NAND閃存。
15.一種用于從一非易失性存儲(chǔ)器系統(tǒng)的一非易失性存儲(chǔ)器中大體上準(zhǔn)備一擦除區(qū)塊以供使用的方法,所述非易失性存儲(chǔ)器包括復(fù)數(shù)個(gè)區(qū)塊,其中所述復(fù)數(shù)個(gè)區(qū)塊包括所述擦除區(qū)塊,所述方法包括獲得所述擦除區(qū)塊;獲得一個(gè)表征所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除次數(shù)的指示符;和將表征所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除次數(shù)的所述指示符存儲(chǔ)在所述擦除區(qū)塊中作為所述擦除區(qū)塊被擦除次數(shù)的一指示。
16.根據(jù)權(quán)利要求15所述的方法,其進(jìn)一步包括判定所述擦除區(qū)塊的被擦除次數(shù)的一指示符何時(shí)可用,其中獲得表征所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除次數(shù)的所述指示符包括在判定所述擦除區(qū)塊被擦除次數(shù)的所述指示符無(wú)效時(shí),獲得表征所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除次數(shù)的指示符,且存儲(chǔ)表征所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除次數(shù)的所述指示符包括在判定所述擦除區(qū)塊的被擦除次數(shù)的所述指示符可用時(shí),存儲(chǔ)表征所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除次數(shù)的所述指示符。
17.根據(jù)權(quán)利要求16所述的方法,其進(jìn)一步包括當(dāng)判定所述擦除區(qū)塊的被擦除次數(shù)的所述指示符可用時(shí),將所述擦除區(qū)塊的被擦除次數(shù)的所述指示符存儲(chǔ)在所述擦除區(qū)塊中,其中當(dāng)將所述擦除區(qū)塊的被擦除次數(shù)的所述指示符存儲(chǔ)在所述擦除區(qū)塊中時(shí),表征所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊的被擦除次數(shù)的所述指示符不存儲(chǔ)在所述擦除區(qū)塊中。
18.根據(jù)權(quán)利要求17所述的方法,其中表征所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊的被擦除次數(shù)的所述指示符是一個(gè)平均擦除計(jì)數(shù),其大體上指示所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊擦除的平均次數(shù)。
19.根據(jù)權(quán)利要求17所述的方法,其中存儲(chǔ)所述擦除區(qū)塊的被擦除次數(shù)的所述指示符包括將所述擦除區(qū)塊的被擦除次數(shù)的所述指示符存儲(chǔ)在所述擦除區(qū)塊的一開(kāi)銷(xiāo)區(qū)域中。
20.根據(jù)權(quán)利要求17所述的方法,其中將表征所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊的被擦除次數(shù)的所述指示符存儲(chǔ)在所述擦除區(qū)塊中包括將表征所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊的被擦除次數(shù)的所述指示符存儲(chǔ)在所述擦除區(qū)塊的一開(kāi)銷(xiāo)區(qū)域中。
21.根據(jù)權(quán)利要求15所述的方法,其進(jìn)一步包括判定所述擦除區(qū)塊的被擦除次數(shù)的一指示符何時(shí)可用;和當(dāng)判定所述擦除區(qū)塊的被擦除次數(shù)的所述指示符可用時(shí),將所述擦除區(qū)塊的被擦除次數(shù)的所述指示符存儲(chǔ)在所述擦除區(qū)塊中。
22.一種非易失性存儲(chǔ)器系統(tǒng),其包括一非易失性存儲(chǔ)器,所述非易失性存儲(chǔ)器包括多個(gè)區(qū)塊;用于獲得所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊的一擦除計(jì)數(shù)的構(gòu)件,所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊的所述擦除計(jì)數(shù)經(jīng)配置以指示所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊的被擦除次數(shù);用于產(chǎn)生所述多個(gè)區(qū)塊的所述擦除計(jì)數(shù)的一總和的構(gòu)件;和用于產(chǎn)生所述平均擦除計(jì)數(shù)的構(gòu)件,所述平均擦除計(jì)數(shù)經(jīng)配置以指示所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除的平均次數(shù),其中,用于產(chǎn)生所述平均擦除計(jì)數(shù)的所述構(gòu)件包括用于大體上將所述總和除以區(qū)塊的所述數(shù)目的構(gòu)件。
23.根據(jù)權(quán)利要求22所述的非易失性存儲(chǔ)器系統(tǒng),其中所述多個(gè)區(qū)塊的一第一區(qū)塊的所述擦除計(jì)數(shù)是從所述非易失性存儲(chǔ)器系統(tǒng)中的所述第一區(qū)塊和一擦除計(jì)數(shù)區(qū)塊之一獲得的,所述擦除計(jì)數(shù)區(qū)塊經(jīng)配置含有所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊的所述擦除計(jì)數(shù)。
24.一種非易失性存儲(chǔ)器系統(tǒng),其包括一非易失性存儲(chǔ)器,其包括復(fù)數(shù)個(gè)區(qū)塊;用于從所述復(fù)數(shù)個(gè)區(qū)塊獲得一個(gè)擦除區(qū)塊的構(gòu)件;用于獲得表征所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除次數(shù)的一指示符的構(gòu)件;和用于將表征所述復(fù)數(shù)個(gè)區(qū)塊中的每個(gè)區(qū)塊的被擦除次數(shù)的所述指示符存儲(chǔ)在所述擦除區(qū)塊中作為所述擦除區(qū)塊的被擦除次數(shù)的一個(gè)指示的構(gòu)件。
25.根據(jù)權(quán)利要求24所述的非易失性存儲(chǔ)器系統(tǒng),其進(jìn)一步包括用于判定所述擦除區(qū)塊的被擦除次數(shù)的一指示符何時(shí)可用的構(gòu)件;和用于在判定所述擦除區(qū)塊的被擦除次數(shù)的所述指示符可用時(shí),將所述擦除區(qū)塊的被擦除次數(shù)的所述指示符存儲(chǔ)在所述擦除區(qū)塊中的構(gòu)件。
26.一種存儲(chǔ)器系統(tǒng),其包括一非易失性存儲(chǔ)器,其包括復(fù)數(shù)個(gè)存儲(chǔ)器元件;代碼裝置,其獲得所述多個(gè)存儲(chǔ)器元件中的每個(gè)存儲(chǔ)器元件的一擦除計(jì)數(shù),所述多個(gè)存儲(chǔ)器元件中的每個(gè)存儲(chǔ)器元件的所述擦除計(jì)數(shù)經(jīng)配置以指示所述多個(gè)存儲(chǔ)器元件中的每個(gè)存儲(chǔ)器元件的被擦除次數(shù),其中存儲(chǔ)器元件的所述數(shù)目是非易失性存儲(chǔ)器中可用存儲(chǔ)器元件的一總數(shù);代碼裝置,其產(chǎn)生所述多個(gè)存儲(chǔ)器元件的所述擦除計(jì)數(shù)的一總和;代碼裝置,其產(chǎn)生所述平均擦除計(jì)數(shù),所述平均擦除計(jì)數(shù)經(jīng)配置以指示所述多個(gè)存儲(chǔ)器元件中每個(gè)存儲(chǔ)器元件被擦除的平均次數(shù),其中產(chǎn)生所述平均擦除計(jì)數(shù)的所述代碼裝置包括大體上將所述總和除以存儲(chǔ)器元件的所述數(shù)目的代碼裝置;和一存儲(chǔ)區(qū)域,其存儲(chǔ)所述代碼裝置。
27.根據(jù)權(quán)利要求26所述的存儲(chǔ)器系統(tǒng),其中所述存儲(chǔ)器元件是區(qū)塊。
28.根據(jù)權(quán)利要求27所述的存儲(chǔ)器系統(tǒng),其中所述多個(gè)存儲(chǔ)器元件中的一第一存儲(chǔ)器元件的所述擦除計(jì)數(shù)是從所述第一存儲(chǔ)器元件和一擦除計(jì)數(shù)區(qū)塊之一獲得的,所述擦除計(jì)數(shù)區(qū)塊經(jīng)配置含有所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊的所述擦除計(jì)數(shù)。
29.根據(jù)權(quán)利要求27所述的存儲(chǔ)器系統(tǒng),其中所述多個(gè)存儲(chǔ)器元件中的每個(gè)存儲(chǔ)器元件是一個(gè)可用區(qū)塊。
30.根據(jù)權(quán)利要求26所述的存儲(chǔ)器系統(tǒng),其中所述非易失性存儲(chǔ)器是一個(gè)NAND閃存。
31.一種存儲(chǔ)器系統(tǒng),其包括一非易失性存儲(chǔ)器,所述非易失性存儲(chǔ)器包括復(fù)數(shù)個(gè)存儲(chǔ)器元件,其中所述復(fù)數(shù)個(gè)存儲(chǔ)器元件包括所述擦除存儲(chǔ)器元件;代碼裝置,其獲得所述擦除存儲(chǔ)器元件;代碼裝置,其獲得表征所述復(fù)數(shù)個(gè)存儲(chǔ)器元件中的每個(gè)存儲(chǔ)器元件的被擦除次數(shù)的一指示符;代碼裝置,其將表征所述復(fù)數(shù)個(gè)存儲(chǔ)器元件中的每個(gè)存儲(chǔ)器元件的被擦除次數(shù)的所述指示符存儲(chǔ)在所述擦除存儲(chǔ)器元件中作為所述擦除存儲(chǔ)器元件的被擦除次數(shù)的一指示;和一存儲(chǔ)區(qū)域,其存儲(chǔ)所述代碼裝置。
32.根據(jù)權(quán)利要求31所述的存儲(chǔ)器系統(tǒng),其進(jìn)一步包括代碼裝置,其判定所述擦除存儲(chǔ)器元件的被擦除次數(shù)的一指示符何時(shí)可用;和代碼裝置,其在判定所述擦除存儲(chǔ)器元件的被擦除次數(shù)的所述指示符可用時(shí),將所述擦除存儲(chǔ)器元件的被擦除次數(shù)的所述指示符存儲(chǔ)在所述擦除區(qū)塊中。
33.根據(jù)權(quán)利要求31所述的存儲(chǔ)器系統(tǒng),其中所述復(fù)數(shù)個(gè)存儲(chǔ)器元件是復(fù)數(shù)個(gè)區(qū)塊。
34.根據(jù)權(quán)利要求33所述的存儲(chǔ)器系統(tǒng),其中所述復(fù)數(shù)個(gè)區(qū)塊是復(fù)數(shù)個(gè)可用區(qū)塊。
35.根據(jù)權(quán)利要求31所述的存儲(chǔ)器系統(tǒng),其中所述非易失性存儲(chǔ)器是一個(gè)NAND閃存。
36.一種用于維持一存儲(chǔ)器系統(tǒng)中的一平均擦除計(jì)數(shù)的方法,所述平均擦除計(jì)數(shù)經(jīng)配置以指示與所述存儲(chǔ)器系統(tǒng)相關(guān)聯(lián)的一非易失性存儲(chǔ)器的多個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除的平均次數(shù),所述存儲(chǔ)器系統(tǒng)進(jìn)一步包括一系統(tǒng)存儲(chǔ)器,所述方法包括對(duì)與所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊相關(guān)聯(lián)的擦除計(jì)數(shù)求和,每個(gè)擦除計(jì)數(shù)經(jīng)配置以指示所述多個(gè)區(qū)塊中的一個(gè)關(guān)聯(lián)區(qū)塊的被擦除次數(shù),其中對(duì)所述擦除計(jì)數(shù)求和產(chǎn)生一總和;使所述總和除以區(qū)塊的所述數(shù)目,其中使所述總和除以區(qū)塊的所述數(shù)目產(chǎn)生所述平均擦除計(jì)數(shù);和將所述平均擦除計(jì)數(shù)存儲(chǔ)在所述系統(tǒng)存儲(chǔ)器中。
37.根據(jù)權(quán)利要求36所述的方法,其進(jìn)一步包括響應(yīng)所述存儲(chǔ)器系統(tǒng)中的一初始化請(qǐng)求而初始化所述平均擦除計(jì)數(shù)。
38.根據(jù)權(quán)利要求37所述的方法,其中初始化所述平均擦除計(jì)數(shù)包括將所述平均擦除計(jì)數(shù)設(shè)定為約為零的一個(gè)值。
39.根據(jù)權(quán)利要求36所述的方法,其進(jìn)一步包括在將所述平均擦除計(jì)數(shù)存儲(chǔ)在所述系統(tǒng)存儲(chǔ)器中之后,更新所述平均擦除計(jì)數(shù)。
40.根據(jù)權(quán)利要求39所述的方法,其中更新所述平均擦除計(jì)數(shù)包括對(duì)與所述多個(gè)區(qū)塊中的每個(gè)區(qū)塊相關(guān)聯(lián)的更新的擦除計(jì)數(shù)求和,每個(gè)更新的擦除計(jì)數(shù)經(jīng)配置以指示所述多個(gè)區(qū)塊中的一關(guān)聯(lián)區(qū)塊被擦除的次數(shù),其中對(duì)所述更新的擦除計(jì)數(shù)求和產(chǎn)生一個(gè)更新的總和;使所述更新的總和除以區(qū)塊的所述數(shù)目,其中使所述更新的總和除以區(qū)塊的所述數(shù)目產(chǎn)生一個(gè)更新的平均擦除計(jì)數(shù);和將所述平均擦除計(jì)數(shù)和所述更新的擦除計(jì)數(shù)一起存儲(chǔ)在所述系統(tǒng)存儲(chǔ)器中。
全文摘要
本發(fā)明揭示用于維持非易失性存儲(chǔ)器系統(tǒng)的系統(tǒng)存儲(chǔ)器中的平均擦除計(jì)數(shù)的方法和設(shè)備。根據(jù)本發(fā)明的一個(gè)方面,一種用于判定存儲(chǔ)器系統(tǒng)的非易失性存儲(chǔ)器中的多個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除的平均次數(shù)的方法包括獲得指示每個(gè)區(qū)塊被擦除的次數(shù)的每個(gè)區(qū)塊的擦除計(jì)數(shù)。一旦獲得所有的擦除計(jì)數(shù),就對(duì)該等擦除計(jì)數(shù)求和,且通過(guò)將該總和實(shí)質(zhì)上除以區(qū)塊的數(shù)目而產(chǎn)生指示多個(gè)區(qū)塊中的每個(gè)區(qū)塊被擦除的平均次數(shù)的平均擦除計(jì)數(shù)。
文檔編號(hào)G11C16/34GK1701389SQ03824782
公開(kāi)日2005年11月23日 申請(qǐng)日期2003年9月10日 優(yōu)先權(quán)日2002年10月28日
發(fā)明者羅伯特·張, 巴赫曼·卡瓦邁, 法施德·薩伯特-沙吉 申請(qǐng)人:桑迪士克股份有限公司