專利名稱:用于操作計(jì)算機(jī)化存儲器的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于操作計(jì)算機(jī)化存儲器的方法、計(jì)算機(jī)程序產(chǎn)品和設(shè)備。
背景技術(shù):
固態(tài)存儲器設(shè)備包括可以將電子電路用于存儲數(shù)據(jù)的可改寫非易失性存儲器設(shè)備。目前,固態(tài)存儲器設(shè)備已經(jīng)開始在某些領(lǐng)域例如用于筆記本電腦或臺式電腦的大容量存儲應(yīng)用中代替常規(guī)存儲設(shè)備例如硬盤驅(qū)動(dòng)器和光盤驅(qū)動(dòng)器。也在研究將固態(tài)存儲器設(shè)備用于代替其他領(lǐng)域例如企業(yè)級存儲系統(tǒng)中的常規(guī)存儲設(shè)備。這是因?yàn)楣虘B(tài)存儲器設(shè)備提供了出色的帶寬和優(yōu)異的隨機(jī)1/0(輸入/輸出)性能以及由于缺少可移動(dòng)部件而帶來的很有價(jià)值的魯棒性。但是,向固態(tài)存儲器設(shè)備例如閃存存儲器中寫入數(shù)據(jù)需要注意到閃存技術(shù)中的細(xì)節(jié)NAND閃存存儲器以頁面和塊為單位組織。多個(gè)頁面構(gòu)成ー個(gè)塊。盡管讀寫操作能夠應(yīng)用于頁面作為此類操作的最小単位,但是擦除操作只能應(yīng)用于整個(gè)塊。并且盡管在其他的存儲技術(shù)中過時(shí)數(shù)據(jù)可以簡單地重寫為新數(shù)據(jù),但是閃存技術(shù)需要先進(jìn)行擦除操作,然后才能將新數(shù)據(jù)寫入已擦除的塊。閃存技術(shù)中的另ー個(gè)細(xì)節(jié)是如今的閃存存儲器設(shè)備被限定為有限次數(shù)的編程擦除(PE)周期。閃存存儲器設(shè)備通常具有定義其PE周期最大次數(shù)的耐用規(guī)格。因此,寫入技術(shù)在被稱為“異地寫入”的應(yīng)用中是將新數(shù)據(jù)或更新數(shù)據(jù)寫入由自由頁面分配器提供的某些自由頁面,而不是將其寫入駐留有過時(shí)數(shù)據(jù)的相同頁面。包含過時(shí)數(shù)據(jù)的頁面被標(biāo)記為無效頁面。通過這樣的手段,由于避免了在塊內(nèi)直接重寫數(shù)據(jù)所需的擦除循環(huán),因此可以延長基于閃存的固態(tài)驅(qū)動(dòng)器(SSD)并且還有日志結(jié)構(gòu)文件系統(tǒng)的預(yù)期壽命。但是,可用的自由頁面可能會隨著時(shí)間而耗盡。閃存存儲器設(shè)備中的塊也可能由混合的有效和無效頁面占據(jù)。新的自由空間需要通過塊回收過程建立,塊回收過程也被稱為垃圾收集過程,該過程回收由過時(shí)數(shù)據(jù)也就是無效數(shù)據(jù)占據(jù)的空間。塊回收過程首先基于指定策略識別出要擦除的塊。然后,駐留在這種塊內(nèi)的有效數(shù)據(jù)被復(fù)制/重新定位到包含自由頁面的其他塊,并最后擦除目標(biāo)塊以使它們變?yōu)榭捎糜谥貙?。塊回收機(jī)構(gòu)引入了額外的讀寫操作,其范圍取決于具體部署的策略以及系統(tǒng)參數(shù)。這種額外的寫入也被稱作“寫入放大”現(xiàn)象。寫入放大將不利地影響SSD的壽命和耐用度,原因在于它會在別處生成遲早需要再次擦除的數(shù)據(jù),并且它會降低閃存存儲器設(shè)備的整體性能。閃存存儲器設(shè)備甚至可能會在僅消耗了其塊的ー小部分時(shí)就停止工作。在此情況下,仍然可能有尚未使用或未充分使用的塊。損耗均衡算法確保擦除更加均勻地分布在閃存存儲器塊上。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的ー種應(yīng)用,提供了一種用于操作計(jì)算機(jī)化存儲器的方法,其中存儲器被組織用于在存儲器的単元集合內(nèi)存儲數(shù)據(jù)。針對集合中的每ー個(gè)單元確定損耗水平,并且在確定的損耗水平中識別出最大損耗水平。接收選擇用于數(shù)據(jù)擦除的一個(gè)或多個(gè)單元的推薦子集。在子集中識別出其損耗水平小于最大損耗水平的至少ー個(gè)単元用于后續(xù)的數(shù)據(jù)擦除。識別步驟可以優(yōu)選地包括如果子集中每ー個(gè)単元的損耗水平都等于最大損耗水平,那么除非是集合中其他的每ー個(gè)単元的損耗水平都等于最大損耗水平,否則就放棄將子集中的每ー個(gè)単元選擇用于數(shù)據(jù)擦除。在實(shí)施例中,所述方法可以包括以下的一種或多種特征-単元的損耗水平由過去應(yīng)用于單元的擦除次數(shù)表示;與ー個(gè)單元相關(guān)聯(lián)的擦除次數(shù)在每一次擦除該單元后都增加;-根據(jù)存儲在所述子集中所述ー個(gè)或多個(gè)單元內(nèi)的數(shù)據(jù)特征推薦所述子集中的一個(gè)或多個(gè)單元以供選擇用于數(shù)據(jù)擦除;-単元集合中的每ー個(gè)単元都包括子単元的集合,并且根據(jù)所述子集的一個(gè)或多個(gè)單元中包含有效數(shù)據(jù)的子単元數(shù)量推薦所述子集中的所述ー個(gè)或多個(gè)單元以供選擇用 于數(shù)據(jù)擦除;-識別步驟包括針對子集中的至少ー個(gè)單元將所述單元的損耗水平與最大損耗水平相比較;-所述子集包括多于ー個(gè)単元,其中根據(jù)與子集中単元相關(guān)聯(lián)的不同于損耗水平的特征將子集中的單元排序,并且識別出子集中具有優(yōu)選特征且損耗水平小于最大損耗水平的至少ー個(gè)単元用于后續(xù)的數(shù)據(jù)擦除;-子集包括推薦供選擇用于數(shù)據(jù)擦除的單個(gè)單元;-所述子集包括多于ー個(gè)単元,并且子集中的這些單元被連續(xù)地考察用于后續(xù)的數(shù)據(jù)擦除;-第一識別器根據(jù)與子集中単元相關(guān)聯(lián)的不同于損耗水平的特征識別出當(dāng)前優(yōu)選的単元,并且第二識別器根據(jù)與子集中単元相關(guān)聯(lián)的損耗水平識別出當(dāng)前優(yōu)選的選擇用于擦除的單元;-単元集合中的每ー個(gè)単元都包括子単元集合,并且其中第一識別器根據(jù)其包含有效數(shù)據(jù)的子単元數(shù)量識別出當(dāng)前優(yōu)選的単元;-如果集合中每ー個(gè)単元的損耗水平都等于最大損耗水平,那么就根據(jù)與子集中単元相關(guān)聯(lián)的不同于損耗水平的特征識別出用于數(shù)據(jù)擦除的優(yōu)選單元;-単元集合中的每ー個(gè)単元都包括子単元集合,并且選擇用于擦除的単元在其包含有效數(shù)據(jù)的子単元數(shù)量方面是優(yōu)選的。根據(jù)本發(fā)明的另ー種應(yīng)用,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括其中實(shí)施有計(jì)算機(jī)可讀取程序代碼的計(jì)算機(jī)可讀取介質(zhì),計(jì)算機(jī)可讀取程序代碼包括被設(shè)置用于實(shí)現(xiàn)以上介紹的任何ー種方法的計(jì)算機(jī)可讀取程序代碼。根據(jù)本發(fā)明的再ー種應(yīng)用,提供了一種存儲設(shè)備。存儲設(shè)備包括有包含単元集合的存儲器??刂破鬟m合用于確定集合中每ー個(gè)単元的損耗水平并在確定的損耗水平中識別出最大損耗水平。控制器進(jìn)ー步適合用于接收一個(gè)或多個(gè)單元中選擇用于數(shù)據(jù)擦除的推薦子集??刂破鬟M(jìn)ー步適合用于在子集中識別出其損耗水平小于最大損耗水平的至少ー個(gè)單元用于后續(xù)的數(shù)據(jù)擦除,其中識別優(yōu)選地包括對于子集中的每ー個(gè)単元,如果所述每ー個(gè)単元的損耗水平都等于最大損耗水平,那么除非是集合中其他的每ー個(gè)単元的損耗水平都等于最大損耗水平,否則就放棄將所述子集中的每ー個(gè)単元選擇用于數(shù)據(jù)擦除。在一個(gè)實(shí)施例中,存儲設(shè)備中的存儲器是閃存存儲器,包括形式為模塊的單元并且每ー個(gè)模塊都包括形式為頁面的子単元。應(yīng)該理解方法步驟可以用不同于方法權(quán)利要求中列舉步驟的順序執(zhí)行。這種不同的順序也應(yīng)該被包括在步驟順序如當(dāng)前所列的此類權(quán)利要求的范圍內(nèi)。介紹的涉及方法應(yīng)用的實(shí)施例也應(yīng)該被認(rèn)為是結(jié)合任何其他種類例如裝置、計(jì)算機(jī)程序產(chǎn)品等公開的實(shí)施例。
通過參照當(dāng)前為優(yōu)選但仍然只是根據(jù)本發(fā)明結(jié)合附圖獲得的示范性實(shí)施例的下述詳細(xì)說明可以更加完整地理解本發(fā)明及其實(shí)施例。 附圖示出了 圖I是根據(jù)本發(fā)明實(shí)施例的方法流程圖,圖2是根據(jù)本發(fā)明實(shí)施例的存儲設(shè)備的方塊圖,圖3是根據(jù)本發(fā)明實(shí)施例的存儲器控制器的方塊圖,以及圖4是表示通過本發(fā)明的方法實(shí)現(xiàn)的改進(jìn)的損耗均衡的兩張示意圖。
具體實(shí)施例方式作為以下說明內(nèi)容的引言,首先要指出的是本發(fā)明的主要方面涉及受損耗影響的存儲器設(shè)備中的損耗均衡。這樣的存儲器設(shè)備優(yōu)選地可以是固態(tài)存儲器設(shè)備例如閃存存儲器、相變存儲器、磁隨機(jī)存儲器等。在下文中例如涉及塊而不是単元時(shí)以及涉及頁面而不是子単元,但是提及的可能都是閃存的技術(shù)術(shù)語。但是,仍然應(yīng)該理解對于整個(gè)申請來說,無論是內(nèi)容還是保護(hù)范圍都不應(yīng)該受限于閃存存儲器技術(shù)。任何其他的固態(tài)存儲技術(shù)都應(yīng)該被涵蓋在內(nèi),以日志方式利用存儲設(shè)備的任何日志結(jié)構(gòu)的文件系統(tǒng)也都應(yīng)該被涵蓋在內(nèi)。在這樣的存儲器設(shè)備中,監(jiān)測存儲器單元的集合的損耗以使得可以觀測瞬時(shí)最大損耗。存儲器単元的集合可以優(yōu)選地包括存儲器設(shè)備中所有的可用単元,或者可以包括用于在存儲器設(shè)備中存儲用戶數(shù)據(jù)的所有可用単元,或者一般性地可以包括少于存儲器設(shè)備中可用単元數(shù)量的多個(gè)單元。本文語境中的損耗可能更多地是使用問題而不是純粹的年限問題??梢杂懈鞣N方式用于確定損耗,但是,在優(yōu)選的實(shí)施例中,可以將單元在過去經(jīng)歷的擦除周期的數(shù)量用作損耗水平的表示。在該示例中,損耗水平并不是關(guān)于允許或可實(shí)現(xiàn)的最大損耗水平的相對量度,而是可以與其他単元的損耗水平相比較的絕對量度。優(yōu)選的是針對每ー個(gè)単元確定、監(jiān)測并存儲瞬時(shí)損耗水平。因此,単元的當(dāng)前損耗狀態(tài)每當(dāng)需要時(shí)均為可用。在表示単元集合中相關(guān)單元瞬時(shí)損耗水平的所有變量中,捜索出指示最大損耗水平的變量??梢杂胁煌姆绞接糜诖_定最大損耗水平以表示単元集合中損耗最嚴(yán)重的ー個(gè)或多個(gè)單元。假設(shè)變量表明水平越高損耗就越大,那么對最大損耗水平的捜索可能會導(dǎo)致變量中的最大捜索。優(yōu)選地,識別器識別出集合中每ー個(gè)単元的瞬時(shí)最大損耗水平。根據(jù)目前的觀點(diǎn),針對集合內(nèi)各単元確定的所有損耗水平識別出表示最大損耗的值可能就足夠了,以至于學(xué)習(xí)這些単元中哪ー個(gè)的損耗最嚴(yán)重可能并不那么重要。
經(jīng)過整體處理之后,在某個(gè)時(shí)間點(diǎn)即可請求驗(yàn)證是否有一個(gè)或多個(gè)單元可以適合進(jìn)行擦除并使所述單元可用于新的寫入。接收這樣的請求在下文中也可以被稱為推薦用于數(shù)據(jù)擦除的一個(gè)或多個(gè)單元的子集。子集通常表示単元集合中一定數(shù)量的単元,該數(shù)量小于屬于該集合的単元數(shù)量。但是,在不同的實(shí)施例中,単元子集可以與單元集合相同。在一個(gè)實(shí)施例中,可以有例如用于預(yù)選可供將來數(shù)據(jù)擦除的単元的過程,例如単元回收過程。在一個(gè)實(shí)施例中,這樣的預(yù)選可以包括使某些單元與其他単元相比可以更好地適于擦除的特征,其中這樣的特征可以不同于損耗,并且具體地不同于分配給相應(yīng)単元的損耗水平。這樣的特征例如可以是駐留在單元內(nèi)的有效數(shù)據(jù)量,這是由于在異地寫入的概念中任何仍然有效的數(shù)據(jù)都需要被重新定位到其他位置。在這樣的方式中,預(yù)選可以包括對于單元有效性特征的評估。如果單元包括用于存儲數(shù)據(jù)的子単元集合,那么這樣的有效性特征可以取決于分配給相應(yīng)単元中各個(gè)子單元的有效性特征。例如,可以為每一個(gè)子單元分配指示子單元包括有效或無效數(shù)據(jù)的標(biāo)記。這樣的標(biāo)記可以被解讀為子単元的特征。単元的特征可以得自于相關(guān)子單元特征的累加,并且可以得到表示其包含有效數(shù)據(jù)的子単元數(shù)量的整數(shù)。 推薦用于數(shù)據(jù)擦除的単元子集優(yōu)選地可以包括以下情形之一單個(gè)單元;多個(gè)單元;單元集合中的所有単元。只要子集包含多于ー個(gè)単元,單元即可被接收為列表,或者以順序方式逐一接收。由于單元的損耗水平可以與最大損耗水平相比較,因此可以評估任何一個(gè)推薦単元。在損耗水平小于最大損耗水平的情況下,目標(biāo)單元通常可以適合用于進(jìn)行擦除;但是,可以應(yīng)用附加標(biāo)準(zhǔn)來確定是否最終選擇目標(biāo)單元進(jìn)行擦除,或者是否還有生成的損耗水平小于最大損耗水平的其他単元可以遵照這樣的不同標(biāo)準(zhǔn)而更好地適用。在此情形下,應(yīng)嘗試在子集中識別出用于后續(xù)數(shù)據(jù)擦除的至少ー個(gè)単元,這至少一個(gè)單元的損耗水平小于最大損耗水平。另ー方面,放棄將子集中其損耗水平等于最大損耗水平的某個(gè)單元或每ー個(gè)単元選擇用于數(shù)據(jù)擦除可能是優(yōu)選的。但是,在推薦用于選擇進(jìn)行數(shù)據(jù)擦除的子集中的所有單元都表現(xiàn)為損耗水平等于最大損耗水平的情況下,優(yōu)選的是從子集以外的単元中識別出損耗水平小于最大損耗水平的単元。在識別出這種單元的情況下,這種單元就可以作為用于后續(xù)數(shù)據(jù)擦除的優(yōu)選單元。在此情形下,単元集合中的所有単元可能都需要就其損耗水平進(jìn)行審查。優(yōu)選的是只有在集合中其他的每ー個(gè)単元的損耗水平都等于最大損耗水平吋,可以將推薦單元子集中的當(dāng)前考慮單元識別用于數(shù)據(jù)擦除——盡管推薦單元子集中當(dāng)前考慮單元的相關(guān)聯(lián)損耗水平等于最大損耗水平,但是由于在單元集合中無法識別出損耗水平小于最大損耗水平的其他単元。在此情形下,根據(jù)不同于損耗的標(biāo)準(zhǔn)從単元子集中識別出至少ー個(gè)単元用于擦除可能是優(yōu)選的,原因在于從損耗的角度看在子集內(nèi)推薦的單元中沒有優(yōu)選項(xiàng);或者根據(jù)不同于損耗的標(biāo)準(zhǔn)從単元集合中識別出其中一個(gè)單元用于擦除可能是優(yōu)選的,原因在于從損耗的角度看在集合內(nèi)推薦的單元中沒有優(yōu)選項(xiàng)。因此,在子集內(nèi)推薦的所有単元都表現(xiàn)為損耗水平等于最大損耗水平的情況下,優(yōu)選的是不擦除子集內(nèi)推薦的任何塊,而是改為將并非子集內(nèi)推薦但是表現(xiàn)為損耗水平小于最大損耗水平的一個(gè)或多個(gè)塊選擇用于擦除,原因在于這樣的單元仍然可以存在于單元集合中。在處理方面,這可以通過用損耗均衡過程取代塊回收方案并且搜索這樣的塊來實(shí)施,或者通過使損耗均衡過程返回塊回收方案并且請求推薦ー個(gè)或多個(gè)另外的塊來實(shí)施。在塊/頁面技術(shù)中,損耗均衡過程從塊集合中選擇表現(xiàn)出的損耗水平小于集合內(nèi)塊中的瞬時(shí)最大損耗水平的一個(gè)或多個(gè)塊進(jìn)行擦除。這種方法與先前的方法相比具有以下優(yōu)點(diǎn)本方法能夠與可以重點(diǎn)集中在不同于損耗的標(biāo)準(zhǔn)上的任何塊回收方案相結(jié)合,并且因此可以與任何垃圾收集方案相結(jié)合,同時(shí)仍然為整體處理中的損耗問題分配足夠的權(quán)重。為此,即可實(shí)施重點(diǎn)集中在避免寫入放大上的用于回收塊的過程,并且這種損耗均衡方法可以對由以損耗為代價(jià)不恰當(dāng)?shù)貎A向于塊選擇的塊回收方案做出的任何決策進(jìn)行校正。吧
另外,本方法提供了出色的損耗均衡度,原因在于所有塊中的損耗失衡在存儲器設(shè)備的操作期間始終得以最小化。它避免了為保持塊中充分的損耗均衡度而追加成本的操作。它延長了存儲器設(shè)備的壽命,原因在于當(dāng)存儲器設(shè)備因?yàn)橐粋€(gè)或多個(gè)塊總體上超過了損耗水平閾值而被宣布為不可用時(shí),所有塊的使用度基本上是相同的。因此,提出了一種用于在SSD設(shè)備中實(shí)現(xiàn)高效損耗均衡的新方法。通過監(jiān)測塊集合內(nèi)每一個(gè)塊的損耗水平,通過識別瞬時(shí)最大損耗水平并且通過選擇表現(xiàn)出的損耗水平小于瞬時(shí)最大損耗水平的一個(gè)或多個(gè)塊用于擦除,提出了一種適合用于固態(tài)存儲設(shè)備的高效損耗均衡方法,由此使監(jiān)測集合內(nèi)的所有塊都經(jīng)歷基本相同的使用度以延長設(shè)備壽命。同樣的機(jī)制可以應(yīng)用于其中被異地寫入新數(shù)據(jù)或更新數(shù)據(jù)的任何存儲器結(jié)構(gòu),也就是,對過時(shí)數(shù)據(jù)進(jìn)行更新的數(shù)據(jù)不是被寫入包含過時(shí)數(shù)據(jù)的子單元,而是被寫入提供一系列將向其中寫入數(shù)據(jù)的自由子單元的日志中。這樣的子單元通??梢圆皇谴鎯υO(shè)備的組織結(jié)構(gòu)中彼此連續(xù)的子單元,而是可以分散在存儲設(shè)備中并且由分配引擎提供。這樣的系統(tǒng)可以被稱作日志結(jié)構(gòu)的文件系統(tǒng)。通常,這種損耗均衡過程是與塊回收過程一起觸發(fā)或者從塊回收過程中出發(fā),塊回收過程相應(yīng)地在需要重新組織自由塊以用于向其寫入新數(shù)據(jù)時(shí)開始,這需要預(yù)先擦除此類塊上的所有數(shù)據(jù)。隨著時(shí)間而寫入設(shè)備的數(shù)據(jù)越多,可用的自由頁面就越少,并且就可能需要回收新塊用于自由塊隊(duì)列,也就是用于提供向其寫入新數(shù)據(jù)或更新數(shù)據(jù)的自由已擦除塊的隊(duì)列。新的自由塊需要從填充有有效和/或無效數(shù)據(jù)的塊中回收。塊回收過程首先基于指定策略識別出要清理的塊。然后,仍然駐留在這些塊內(nèi)的有效數(shù)據(jù)被復(fù)制/重新定位到其他塊,并最后擦除現(xiàn)已沒有有效數(shù)據(jù)的塊且使其重新變?yōu)榭捎糜谥貙憽1M管該過程需要一些額外增多的寫操作,但是很明顯通過這樣的方法就可以避免立即擦除操作,而立即擦除操作可以導(dǎo)致比這些額外寫操作的開銷大得多的整體處理時(shí)間。提出的實(shí)時(shí)損耗均衡方案能夠與任何塊回收方案相結(jié)合,并且在一個(gè)實(shí)施例中可以如下所述進(jìn)行工作每一個(gè)塊的損耗水平都被寄存在一個(gè)單獨(dú)的計(jì)數(shù)器中。稱作最大值計(jì)數(shù)器的附加計(jì)數(shù)器被設(shè)置用于跟蹤所有計(jì)數(shù)器中的瞬時(shí)最大值。在擦除塊時(shí),對應(yīng)計(jì)數(shù)器的內(nèi)容加一。而且,如果該新值超過了最大值計(jì)數(shù)器中的值,那么最大值計(jì)數(shù)器也加一。為了識別出用于再利用的塊,塊回收過程可以根據(jù)特定順序考察塊并且例如可以檢查它們的有效頁面數(shù)量。該過程在發(fā)現(xiàn)包含有效頁面的數(shù)量且該數(shù)量滿足指定標(biāo)準(zhǔn)的塊時(shí)終止。根據(jù)提出的方案,該過程優(yōu)選地在發(fā)現(xiàn)塊的損耗小于到該時(shí)間點(diǎn)為止監(jiān)測到的寄存在最大值計(jì)數(shù)器內(nèi)的瞬時(shí)最大損耗時(shí)終止。圖I示出了根據(jù)本發(fā)明實(shí)施例的方法流程圖。在初始化步驟50,表示用于塊i損耗水平的變量的擦除計(jì)數(shù)器〈C (i) >針對塊集合中的每一個(gè)塊都被設(shè)定為零。擦除計(jì)數(shù)器〈C (i)>表示過去應(yīng)用于塊i的擦除周期的變量,并且因此表示了塊i的損耗水平,該損耗水平在某些情況下也被稱作塊的年齡。計(jì)數(shù)器<c_max〉也被設(shè)定為零。計(jì)數(shù)器<c_max>給出表示分配給任何一個(gè)計(jì)數(shù)器〈C (i) >的最大損耗水平。在步驟51,例如考慮到用于寫入新數(shù)據(jù)的資源有限而開始塊回收過程。初始化步驟50當(dāng)然也可以集成到開始步驟51中。在步驟52,〈last〉識別器也就是第一識別器被設(shè)定為-I?!磍ast〉識別器是用于目前已經(jīng)可以由塊回收過程選擇(也就是當(dāng)缺少提出的損耗均衡功能時(shí)可以由垃圾收集過程回收)的塊的識別器。在同一步驟52,<last_WL>識別器也就是第二識別器被設(shè)定為-I。<last_WL>識別器是當(dāng)存在提出的損耗均衡功能時(shí)用于被選擇為由塊回收過程回收的塊的識別器。在下文中,認(rèn)為塊回收過程可以根據(jù)指定順序檢查存儲器設(shè)備中的塊集合。順序例如在其中要檢查所有塊的所謂貪婪垃圾收集過程的情況下可以是固定的,或者在滿足一組標(biāo)準(zhǔn)時(shí)就停止搜索的情況下可以是動(dòng)態(tài)的。搜索的結(jié)束在步驟59進(jìn)行驗(yàn)證。在本示例中,塊回收過程以指定順序逐一考察塊。塊集合中的任何塊在塊回收過程中都要進(jìn)行考察并且被推薦給損耗均衡功能,以使推薦用于數(shù)據(jù)擦除的塊子集代表在塊回收方案中檢查的整個(gè)塊集合。損耗均衡功能由包括隨后將要介紹的步驟54至56的大括號部分表示?!と绻麚p耗均衡功能無法實(shí)施,那么塊回收過程就將塊序列內(nèi)的樣本塊j與到目前為止根據(jù)指定標(biāo)準(zhǔn)識別出的最佳塊相比較。該比較在步驟57完成。到目前為止的最佳塊被寄存在〈last〉識別器內(nèi)。如果樣本塊j在所述標(biāo)準(zhǔn)方面優(yōu)于〈last〉塊,那么塊j即可成為新的〈last〉塊,也就是last=j,參見步驟58。如果樣本塊j表明在所述標(biāo)準(zhǔn)方面并不優(yōu)于〈last〉塊,那么最佳塊就仍然是由〈last〉識別器指向的塊,并且在步驟59可以驗(yàn)證在等候推薦的隊(duì)列中是否還有另外的塊。但是,提出的方法引入了由步驟54至56實(shí)現(xiàn)的損耗均衡功能。由此,只要推薦了新的塊j,就在步驟54確定該塊j在識別出〈last〉塊所依據(jù)的標(biāo)準(zhǔn)方面是否優(yōu)于<last_WL>塊。換句話說,確定正在考察的當(dāng)前塊j在所述標(biāo)準(zhǔn)方面是否優(yōu)于到目前為止在損耗方面識別出的最佳塊。如果不是這種情況(否),那么就跳轉(zhuǎn)至步驟57,在此確定新塊j是否優(yōu)于到目前為止該類別中在所述標(biāo)準(zhǔn)方面識別出的最佳塊。這是反映了目前在損耗方面的優(yōu)選塊同樣也優(yōu)于在其他標(biāo)準(zhǔn)方面的新塊j的情況。但是,如果新塊j在這些標(biāo)準(zhǔn)方面優(yōu)于當(dāng)前在損耗方面的最佳塊,那么就執(zhí)行步驟55并且將由變量c(j)表示的用于塊j的損耗水平與由分配給計(jì)數(shù)器〈c_max>的值表示的最大損耗水平相比較。如果塊j的損耗水平不等于<c_max>內(nèi)存儲的最大水平,那么塊j就成為新的<last_WL>塊。當(dāng)序列用盡也就是已經(jīng)沒有更多推薦的塊時(shí),參見步驟59(否),那么除非是<last_WL>識別器等于-I或者是任何其他的表示無效損耗內(nèi)容的值,否則<last_WL>識別器就包含有要回收的塊,參見步驟62。當(dāng)所有的塊都產(chǎn)生相同的損耗時(shí),這就等價(jià)于在步驟60中確認(rèn)<last_WL>=-l,由于所有這樣的塊都產(chǎn)生由<c_max>指示的最大損耗,因此在步驟55中就沒有識別出滿足損耗標(biāo)準(zhǔn)的新塊。在此情況下,要回收的塊就是塊回收過程在沒有考慮損耗均衡功能,也就是<last_WL>=〈last>時(shí)應(yīng)該回收的塊,參見步驟61。最后,在步驟62回收由<last_WL>識別器指示的塊之后,其損耗計(jì)數(shù)器<c (last_WL) >也在步驟62加一,并且如果損耗計(jì)數(shù)器<c(last_WL)>隨后超過了瞬時(shí)最大損耗水平<c_max>,那么<c_max>變量也要在步驟62中更新。然后,過程可以在步驟63結(jié)束,直至接收到用于塊回收動(dòng)作的新請求并且在步驟50觸發(fā)初始化和在步驟51啟動(dòng)該過程為止。
顯然,也可以設(shè)想其他的實(shí)施方式例如不使用〈last〉識別器的實(shí)施例。不考慮損耗就將塊識別為要回收的塊所依據(jù)的上述標(biāo)準(zhǔn)可以包括以下的一項(xiàng)或多項(xiàng)內(nèi)容-塊中的有效頁面數(shù)量;-塊中的無效頁面數(shù)量;-塊中的自由頁面數(shù)量;-塊的年齡; -對該塊最近寫操作的時(shí)間;-對該塊最早寫操作的時(shí)間;-對該塊寫操作的頻率(也就是該塊的損耗)。標(biāo)準(zhǔn)可以包括兩種或多種上述參數(shù)的任意組合。標(biāo)準(zhǔn)可以包括將上述參數(shù)中的任何一種與閾值相比較并且標(biāo)準(zhǔn)可以在參數(shù)高于或低于閾值時(shí)得到滿足。標(biāo)準(zhǔn)可以可選地在發(fā)現(xiàn)某一參數(shù)低于閾值時(shí)得到滿足。標(biāo)準(zhǔn)可以包括將多個(gè)上述參數(shù)與單獨(dú)分配的閾值相比較,或者標(biāo)準(zhǔn)可以在所有參數(shù)都高于或低于其對應(yīng)閾值時(shí)得到滿足。樣本標(biāo)準(zhǔn)可以包括“塊內(nèi)的有效頁面數(shù)量少于12并且塊的年齡小于100”。閾值可以是預(yù)定閾值并且在操作期間可以不變。閾值可以預(yù)先確定并且取決于存儲器系統(tǒng)的特征。有利地,閾值可以根據(jù)存儲器系統(tǒng)提供的每一個(gè)塊中的頁面數(shù)量而確定;和/或根據(jù)所有塊內(nèi)的有效子單元平均數(shù)與存儲器內(nèi)子單元總數(shù)之間的比值而確定。閾值可以是在操作期間可以取不同值的變量閾值。例如閾值可以取決于所有塊內(nèi)有效子單元的絕對數(shù)量或浮點(diǎn)(平均)數(shù)量與存儲器內(nèi)子單元總數(shù)之間的比值。閾值可以是可取決于其他參數(shù)的自適應(yīng)閾值。閾值也可以相對于先前的閾值自適應(yīng),或者可以相對于先前識別塊中有效子單元的實(shí)際數(shù)量自適應(yīng),具體地,在于是否采用先前識別塊中有效子單元的數(shù)量作為用于閾值的新數(shù)值。或者,采用先前識別塊中有效子單元數(shù)量的移動(dòng)平均值作為用于閾值的新數(shù)值。圖2示出了根據(jù)本發(fā)明實(shí)施例的存儲設(shè)備的方塊圖。存儲設(shè)備I包括基于閃存的固態(tài)存儲器2,具有塊/頁面式的存儲器空間結(jié)構(gòu)。其中幾個(gè)塊被標(biāo)記為21。存儲器控制器3控制閃存存儲器2的動(dòng)作,因此存儲器可以被描述為計(jì)算機(jī)化的存儲器。存儲器控制器3具體地適合用于向存儲器2寫入數(shù)據(jù)和從存儲器2讀取數(shù)據(jù),以及用于結(jié)合讀寫數(shù)據(jù)來執(zhí)行所有的管理任務(wù)。具體地,存儲器控制器3對塊中的不同于其中包含有過時(shí)數(shù)據(jù)的一個(gè)或多個(gè)塊(“異地寫入”)的某一頁面的更新寫入。在這樣做時(shí),存儲器控制器3將包含過時(shí)數(shù)據(jù)的一個(gè)或多個(gè)子單元標(biāo)記為無效。存儲器控制器3可以時(shí)常在塊中執(zhí)行搜索-而這樣的搜索可能受限于包含有至少一個(gè)無效數(shù)據(jù)頁面的塊和/或根據(jù)其他標(biāo)準(zhǔn)受限-目的是為了識別出符合預(yù)定標(biāo)準(zhǔn)的一個(gè)或多個(gè)塊。在優(yōu)選的實(shí)施例中,搜索可以在識別出一個(gè)或指定數(shù)量個(gè)塊符合指定標(biāo)準(zhǔn)時(shí)停止。這樣的塊隨即建立起推薦給損耗均衡程序以供擦除的塊子集。存儲器控制器3可以隨后執(zhí)行損耗均衡程序以通過將每一個(gè)塊的損耗水平與最大損耗水平相比較而在推薦塊中識別出一個(gè)或多個(gè)塊。只有在一個(gè)或多個(gè)推薦塊表明損耗水平低于由根據(jù)損耗考察的任意塊表現(xiàn)出的最高損耗水平時(shí),這樣的一個(gè)或多個(gè)塊才可以被擦除。在擦除之前,存儲器控制器3首先將該識別塊中的有效頁面的數(shù)據(jù)重新定位到另一個(gè)塊中的頁面,并且甚至可以重新定位到多個(gè)其他的塊。在此情形下,存儲器控制器3負(fù)責(zé)用于運(yùn)行如上述實(shí)施例中的任意一個(gè)所述的方法。存儲器控制器3進(jìn)一步被連接至利用存儲設(shè)備I來存儲數(shù)據(jù)的主機(jī)4。因此,主機(jī)4向存儲設(shè)備I發(fā)出讀和/或?qū)懙闹噶睢榱藢?shí)施如上述實(shí)施例中的任意一個(gè)所述的方法,存儲器控制器3優(yōu)選地提供優(yōu)選存儲在非易失性不可改寫的存儲介質(zhì)(例如參見圖3的ROM 31)內(nèi)的計(jì)算機(jī)程序代碼。存儲控制器進(jìn)一步提供RAM 32用于將程序代碼載入,并且提供處理單元33用于運(yùn)行RAM32內(nèi)的程序代碼。內(nèi)部通信系統(tǒng)34被設(shè)置用于存儲器控制器3中部件之間的通信,并且接口35被設(shè)置用于與閃存存儲器通信,而另一個(gè)接口 36可以被設(shè)置用于與主機(jī)之間的任何通 目。在圖4a)的示意圖中,示出了應(yīng)用于塊編號為O至1000的多個(gè)塊(也就是用于上千個(gè)塊)的等價(jià)于擦除周期數(shù)量的損耗。證實(shí)了提出的損耗均衡方法可以確保系統(tǒng)內(nèi)的所有塊在設(shè)備操作期間始終具有基本相同的損耗。在本示例中,存儲器設(shè)備被認(rèn)為是每一個(gè)塊有16個(gè)頁面,共有1000個(gè)塊,占用率為O. 8并且在隨機(jī)少量寫入的情況下工作。圖4a)以小點(diǎn)示出了示出了在以等于10的窗口大小應(yīng)用窗口式貪婪垃圾收集方案的假設(shè)下經(jīng)過 3千萬次用戶寫操作之后的塊損耗。這就意味著選擇用于擦除的塊就是前10個(gè)最老塊中具有有效頁面數(shù)量最少的塊。根據(jù)圖4a)中的示意圖能夠看出,塊的損耗是在每一個(gè)塊有4998到5017次擦除之間變化。相比之下,通過應(yīng)用提出的損耗均衡方案,所有塊都可以實(shí)現(xiàn)每一個(gè)塊有5011或5012次擦除的基本均勻的損耗,正如圖4a)中的兩條水平線所示。實(shí)際上,提出的方法在存儲器設(shè)備達(dá)到其壽命終點(diǎn)時(shí)實(shí)現(xiàn)基本均勻地利用所有塊,而如果沒有應(yīng)用提出的方法,那么將會有相當(dāng)數(shù)量的塊不能充分利用。參照圖4b)中的示意圖,考慮熱流量和冷流量的情況并且假設(shè)有9%的塊也就是90個(gè)塊包含靜態(tài)(冷)地址。靜態(tài)地址包含隨著存儲器設(shè)備的壽命不會有過多改變的數(shù)據(jù)。圖4b)以小點(diǎn)示出了在以等于100的窗口大小應(yīng)用窗口式貪婪垃圾收集方案時(shí)經(jīng)過6千萬次用戶寫操作之后的塊損耗。能夠觀察到9%的塊只有I次損耗(未示出),而其余塊的損耗則在每一個(gè)塊有9878到9938次擦除之間變化(小點(diǎn))。應(yīng)用提出的方法得到的是如圖4b)中的水平線所示的所有塊中每一個(gè)塊有9607或9608次擦除的均勻損耗。實(shí)際上,提出的方法在存儲器設(shè)備達(dá)到其壽命終點(diǎn)時(shí)實(shí)現(xiàn)基本均勻地利用所有塊,而如果沒有應(yīng)用提出的方法,那么將會有相當(dāng)數(shù)量的塊不能充分利用。在本示例中,可以示意性地假設(shè)塊的耐用度等于9918個(gè)周期并且如果有15%的塊不再有效就將該設(shè)備宣布為不可用。因此,在缺少給出的損耗均衡方法的情況下,設(shè)備將在6千萬次用戶寫入之后被宣布為不可用。相比之下,鑒于應(yīng)用提出的損耗均衡方法在6千萬次用戶寫入之后沒有塊達(dá)到其耐用度,因此就允許相當(dāng)數(shù)量的額外寫入。針對考慮的示例,這就允許在宣布設(shè)備不可用之前有額外的(9918-9607)*1000*16=5百萬次用戶寫入,對應(yīng)于將設(shè)備壽命增加了 8%。這種壽命的增加無需引入額外的過程和復(fù)雜度即可獲得,從而確保將損耗保持在極限范圍內(nèi)以避免設(shè)備被宣布為不可用。正如本領(lǐng)域技術(shù)人員能夠理解的那樣,本發(fā)明的應(yīng)用可以實(shí)施為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明特別是控制器形式的應(yīng)用可以采用完全為硬件的實(shí)施例、完全為軟件的實(shí)施例(包括固件、常駐軟件、微型代碼等)或者組合了軟件和硬件應(yīng)用的實(shí)施例的形式,它們基本上在本文中全都可以稱為“電路”、“塊”或“系統(tǒng)”。而且,本發(fā)明的應(yīng)用例如讀寫方法可以采用在其上實(shí)施有計(jì)算機(jī)可讀取程序代碼的一種或多種計(jì)算機(jī)可讀取介質(zhì)內(nèi)實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式??梢允褂靡环N或多種計(jì)算機(jī)可讀取介質(zhì)的任意組合。計(jì)算機(jī)可讀取介質(zhì)可以是計(jì)算機(jī)可讀取信號介質(zhì)或者計(jì)算機(jī)可讀取存儲介質(zhì)。計(jì)算機(jī)可讀取存儲介質(zhì)例如可以是但不局限于電、磁、光學(xué)、電磁、紅外或半導(dǎo)體系統(tǒng)、裝置或設(shè)備,或者是上述內(nèi)容任意合適的組合。計(jì)算機(jī)可讀取存儲介質(zhì)的更多具體示例(非窮舉性列表)可以包括以下內(nèi)容具有一條或多條線路的電連接,便攜式計(jì)算機(jī)磁盤,硬盤,隨機(jī)存取存儲器(RAM),只讀存儲器(R0M),可擦除可編程只讀存儲器(EPR0M或閃存存儲器),光纖,便攜光盤只讀存儲器(CD-ROM),光存儲設(shè)備,磁存儲設(shè)備或上述內(nèi)容任意合適的組合。在本文獻(xiàn)的語境中,計(jì)算機(jī)可讀取存儲介質(zhì)可以是能夠包含或者存儲程序以供使用或者與指令執(zhí)行系統(tǒng)、裝置或設(shè)備結(jié)合使用的任何實(shí)體介質(zhì)。計(jì)算機(jī)可讀取信號介質(zhì)可以包括例如在基帶中或者作為載波的一部分與其中實(shí)施的計(jì)算機(jī)可讀取程序代碼一起傳播的數(shù)據(jù)信號。這樣的傳播信號可以采用多種形式中的任何一種,包括但不限于電磁信號、光信號或其任意合適的組合。計(jì)算機(jī)可讀取信號介質(zhì)可以是并非計(jì)算機(jī)可讀取存儲介質(zhì)并且能夠通信、傳播或者輸送程序以供使用或者與指令執(zhí) 行系統(tǒng)、裝置或設(shè)備結(jié)合使用的任意計(jì)算機(jī)可讀取介質(zhì)。在計(jì)算機(jī)可讀取介質(zhì)上實(shí)施的程序代碼可以利用任意合適的介質(zhì)傳輸,包括但不限于無線、有線線路、光纖光纜、RF等或者上述內(nèi)容任意合適的組合。用于實(shí)現(xiàn)本發(fā)明應(yīng)用中操作的計(jì)算機(jī)程序代碼可以用一種或多種編程語言的任意組合編寫,包括面向?qū)ο蟮木幊陶Z言例如Java、Smalltalk、C++等以及傳統(tǒng)的過程編程語言例如C編程語言或類似的編程語言。程序代碼可以完全在用戶的計(jì)算機(jī)上運(yùn)行,部分在用戶的計(jì)算機(jī)上運(yùn)行,作為單獨(dú)的軟件包運(yùn)行,部分在用戶的計(jì)算機(jī)上運(yùn)行并且部分在遠(yuǎn)程計(jì)算機(jī)上運(yùn)行,或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上運(yùn)行。在后兩種情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任何類型的網(wǎng)絡(luò)連接至用戶的計(jì)算機(jī),包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN),或者連接可以通往外部計(jì)算機(jī)(例如使用互聯(lián)網(wǎng)服務(wù)供應(yīng)商通過互聯(lián)網(wǎng)實(shí)現(xiàn))。以下根據(jù)本發(fā)明的實(shí)施例參照方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方塊圖來介紹本發(fā)明的各種應(yīng)用。應(yīng)該理解流程圖和/或方塊圖中的每一個(gè)塊以及流程圖和/或方塊圖中的塊組合都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以被提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或用于生產(chǎn)機(jī)械的其他可編程數(shù)據(jù)處理裝置的處理器以使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令建立起用于實(shí)現(xiàn)流程圖和/或方塊圖的一個(gè)或多個(gè)塊中列舉的功能/動(dòng)作的方法。這些計(jì)算機(jī)程序指令也可以被存儲在能夠引導(dǎo)計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或以特定方式工作的其他設(shè)備的計(jì)算機(jī)可讀取介質(zhì)內(nèi),以使存儲在計(jì)算機(jī)可讀取介質(zhì)內(nèi)的指令生產(chǎn)出的制品包括有實(shí)現(xiàn)了流程圖和/或方塊圖中的一個(gè)或多個(gè)塊中列舉的功能/動(dòng)作的指令。計(jì)算機(jī)程序指令也可以被載入到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備上以促使在計(jì)算機(jī)、其他可編程裝置或其他設(shè)備上執(zhí)行一系列操作步驟,從而生成計(jì)算機(jī)實(shí)現(xiàn)的過程,以使得在計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或方塊圖中的一個(gè)或多個(gè)塊中列舉的功能/動(dòng)作的過程。附圖中的流程圖和方塊圖根據(jù)本發(fā)明的不同實(shí)施例示出了系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的結(jié)構(gòu)、功能和可以實(shí)施的操作。在這方面,流程圖或方塊圖中的每一個(gè)塊均可表示程序塊、程序段或代碼部分,其中包括用于實(shí)現(xiàn)一種或多種特定邏輯功能的一條或多條可執(zhí)行指令。還應(yīng)該注意到在某些可選的實(shí)施方式中,塊中注明的功能可以脫離附圖中標(biāo)明 的順序完成。例如,相繼示出的兩個(gè)塊實(shí)際上可以基本上同時(shí)執(zhí)行,或者這兩個(gè)塊有時(shí)可以用相反的順序執(zhí)行,這取決于所涉及到的功能。還應(yīng)該注意到方塊圖和/或流程圖中的每一個(gè)塊以及方塊圖和/或流程圖中的塊組合均可通過專用的基于硬件的系統(tǒng)實(shí)現(xiàn)以執(zhí)行特定功能或動(dòng)作,或者通過專用硬件和計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
權(quán)利要求
1.用于操作計(jì)算機(jī)化存儲器的方法,所述存儲器被組織用于在存儲器的單元集合內(nèi)存儲數(shù)據(jù),所述方法包括 -確定集合中每一個(gè)單元α)的損耗水平(C(i))并且在確定的損耗水平(c(i))當(dāng)中識別出最大損耗水平(c_max), -接收被選擇用于數(shù)據(jù)擦除的一個(gè)或多個(gè)單元(i)的推薦子集;并且 -在所述子集中識別出其損耗水平(c(i))小于最大損耗水平(c_max)的至少一個(gè)單元(i)用于后續(xù)的數(shù)據(jù)擦除, -其中識別優(yōu)選地包括對于子集中的每一個(gè)單元(i),如果所述每一個(gè)單元(i)的損耗水平(c(i))都等于最大損耗水平(c_max),那么除非所述集合中其他的每一個(gè)單元(i)的損耗水平(c(i))都等于最大損耗水平(c_max),否則就放棄將所述每一個(gè)單元(i)選擇用于數(shù)據(jù)擦除。
2.如權(quán)利要求I所述的方法,其中所述集合中至少一個(gè)單元(i)的損耗水平(c(i))是根據(jù)應(yīng)用于所述至少一個(gè)單元(i)的擦除次數(shù)確定的,擦除次數(shù)在每一次擦除單元(i)后都增加。
3.如權(quán)利要求I或權(quán)利要求2所述的方法,其中根據(jù)存儲在所述子集中的所述一個(gè)或多個(gè)單元(i)內(nèi)的數(shù)據(jù)特征推薦所述子集中的一個(gè)或多個(gè)單元(i)以供選擇用于數(shù)據(jù)擦除。
4.如以上權(quán)利要求中的任意一項(xiàng)所述的方法,其中單元(i)的集合中的每一個(gè)單元(i)都包括子單元的集合,并且其中根據(jù)所述子集的一個(gè)或多個(gè)單元中包含有效數(shù)據(jù)的子單元數(shù)量,推薦所述子集中的所述一個(gè)或多個(gè)單元(i)以供選擇用于數(shù)據(jù)擦除。
5.如以上權(quán)利要求中的任意一項(xiàng)所述的方法,其中識別步驟包括針對子集中的至少一個(gè)單元(i)將所述單元(i)的損耗水平(c(i))與最大損耗水平(c_max)相比較。
6.如權(quán)利要求5所述的方法,其中所述子集包括多于一個(gè)單元(i),其中根據(jù)與子集中單元(i)相關(guān)聯(lián)的不同于損耗水平(c(i))的特征將子集中的單元(i)排序,并且其中識別出子集中具有優(yōu)選特征且損耗水平(c(i))小于最大損耗水平(Cjnax)的至少一個(gè)單元(i)用于后續(xù)的數(shù)據(jù)擦除。
7.如以上權(quán)利要求中的任意一項(xiàng)所述的方法,其中所述子集包括推薦供選擇用于數(shù)據(jù)擦除的單個(gè)單元(i)。
8.如權(quán)利要求I至6中的任意一項(xiàng)所述的方法,其中所述子集包括多于一個(gè)單元(i),并且其中子集內(nèi)的單元(i)被連續(xù)地考察用于后續(xù)的數(shù)據(jù)擦除。
9.如權(quán)利要求8所述的方法,其中第一識別器(last)根據(jù)與子集中單元(i)相關(guān)聯(lián)的不同于損耗水平(c(i))的特征識別出當(dāng)前優(yōu)選的單元(i),并且其中第二識別器(last_WL)根據(jù)與子集中單元(i)相關(guān)聯(lián)的損耗水平(c(i))識別出當(dāng)前優(yōu)選供選擇用于擦除的單
10.如權(quán)利要求9所述的方法,其中單元(i)的集合中的每一個(gè)單元(i)都包括子單元集合,并且其中所述第一識別器(last)根據(jù)其包含有效數(shù)據(jù)的子單元數(shù)量識別出當(dāng)前優(yōu)選的單元⑴。
11.如以上權(quán)利要求中的任意一項(xiàng)所述的方法,其中如果集合中每一個(gè)單元(i)的損耗水平(c(i))都等于最大損耗水平(c_max),那么就識別出根據(jù)與子集中單元(i)相關(guān)聯(lián)的不同于損耗水平(C(i))的特征是優(yōu)選的、用于數(shù)據(jù)擦除的優(yōu)選單元(i)。
12.如權(quán)利要求11所述的方法,其中單元(i)的集合中的每一個(gè)單元(i)都包括子單元集合,并且其中選擇用于擦除的單元(i)在其包含有效數(shù)據(jù)的子單元數(shù)量方面是優(yōu)選的。
13.—種系統(tǒng),包括被設(shè)置用于執(zhí)行如權(quán)利要求I至11中任意一項(xiàng)所述方法步驟的裝置。
14.一種存儲設(shè)備,包括 -包含單元⑴集合的存儲器⑵,以及 -控制器(3),用于 -確定集合中每一個(gè)單元(i)的損耗水平(c(i))并且在確定的損耗水平(c(i))當(dāng)中識別出最大損耗水平(c_max), -接收選擇用于數(shù)據(jù)擦除的一個(gè)或多個(gè)單元(i)的推薦子集; -在子集中識別出其損耗水平(c(i))小于最大損耗水平(c_max)的至少一個(gè)單元(i)用于后續(xù)的數(shù)據(jù)擦除,其中識別優(yōu)選地包括對于子集中的每一個(gè)單元(i),如果所述每一個(gè)單元(i)的損耗水平(c(i))都等于最大損耗水平(c_max),那么除非集合中其他的每一個(gè)單元(i)的損耗水平(c(i))都等于最大損耗水平(c_max),否則就放棄將所述每一個(gè)單元(i)選擇用于數(shù)據(jù)擦除。
15.如權(quán)利要求14所述的存儲設(shè)備,其中存儲器(2)是閃存存儲器,包括具有塊形式的單元(i),并且其中每一個(gè)塊都包括具有頁面形式的子單元。
全文摘要
在一種用于操作計(jì)算機(jī)化存儲器的方法中,存儲器被組織用于在這種存儲器的單元內(nèi)存儲數(shù)據(jù)。針對單元(i)的集合中的每一個(gè)單元(i)確定損耗水平(c(i))。確定損耗水平(c(i))中的最大損耗水平(c_max)。接收選擇用于數(shù)據(jù)擦除的一個(gè)或多個(gè)單元(i)的推薦子集,并且在子集中識別出其損耗水平(c(i))小于最大損耗水平(c_max)的至少一個(gè)單元(i)用于后續(xù)的數(shù)據(jù)擦除。
文檔編號G06F12/02GK102841849SQ20121015651
公開日2012年12月26日 申請日期2012年5月18日 優(yōu)先權(quán)日2011年5月19日
發(fā)明者I·伊利亞迪斯, G·謝呂比尼 申請人:國際商業(yè)機(jī)器公司