欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

存儲塊的擦除方法及裝置的制作方法

文檔序號:6781914閱讀:152來源:國知局
專利名稱:存儲塊的擦除方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及閃存的管理技術(shù),特別是存儲塊擦除方法及裝置。
技術(shù)背景 Flash存儲卡(閃存)主要應(yīng)用于智能電話、數(shù)碼相機(jī)、PDA等相 關(guān)領(lǐng)域,由Flash存儲芯片和存儲卡控制電路這兩部分的組成。其中, Flash存儲芯片是Flash存儲卡的存儲實體,它是一種基于半導(dǎo)體的存儲 器,具有功耗低、容量大、訪問速度高、無機(jī)械故障,以及數(shù)據(jù)非易失 的優(yōu)點。隨著Flash存儲芯片容量的飛速增長,人們對數(shù)據(jù)操作的靈活 性提出了越來越高的要求,對Flash存儲芯片中的數(shù)據(jù)存儲管理已成為 一個不容回避的問題。 在閃存經(jīng)過反復(fù)讀寫之后,塊內(nèi)與塊間會有大量的文件碎片,這時 需要進(jìn)行垃圾收集。因為,在很多塊中,含有臟數(shù)據(jù)-即無效數(shù)據(jù)-的 塊需要將臟數(shù)據(jù)占據(jù)的存儲空間回收,這時就需要將含有臟數(shù)據(jù)的塊回 收,將塊中的有效數(shù)據(jù)重寫到其他空閑塊中,并擦除該塊。這個過程稱 為垃圾收集。在垃圾收集過程時,首先要重寫塊的全部有效數(shù)據(jù),然后 再擦除整個塊。盡管Flash存儲芯片作為非易失性存儲器,可以反復(fù)地 編程并擦除,但是在其每個存儲塊被磨損壞之前,只能對其進(jìn)行一定次 數(shù)的擦除。在某些系統(tǒng)中,在存儲塊被認(rèn)定為不可用之前,可對其進(jìn)行 約一萬次的擦除。當(dāng)存儲塊被磨壞時,會進(jìn)而導(dǎo)致整個閃存存儲容量的 一部分無法使用或其性能的重大下降,導(dǎo)致丟失已存儲數(shù)據(jù)或無法存儲 數(shù)據(jù),使用戶受到不良影響。
每個閃存存儲塊可以根據(jù)其擦除次數(shù)分為年老和年輕的區(qū)塊,擦除 次數(shù)越多年齡越老,反之則越年輕。在閃存文件系統(tǒng)中,需要考慮對閃 存芯片的磨損平衡,其目的就是將整個閃存中的各個塊的年齡差異控制 在一定的范圍,使整個閃存磨損程度趨于一致,延長閃存的壽命。如果 總是擦除年老的塊,那么會導(dǎo)致年老塊的加速損壞,影響整個閃存的使 用。因此在垃圾收集擦除閃存塊時,應(yīng)該盡量回收年輕的區(qū)塊來擦除。
塊的利用率是指存儲塊上有效數(shù)據(jù)所占的比例。垃圾收集首先把待 擦除塊的有效數(shù)據(jù)寫到當(dāng)前塊中,再對那個待擦出快進(jìn)行擦除。其中擦 除操作時間是固定的,重寫數(shù)據(jù)耗費的時間與重新寫入的數(shù)據(jù)量有關(guān), 并決定著垃圾收集時間的長短。隨著區(qū)塊利用率的提高,每次重寫的數(shù) 據(jù)量越大,那么重寫所耗費的時間也越長,回收的效率也越低。據(jù)資料
顯示,當(dāng)閃存塊的利用率達(dá)到80%以上時,重寫的代價會迅速提高。因 此在垃圾收集中,選擇擦除塊時,考慮磨損平衡的同時,還要考慮到回 收效率的問題。應(yīng)該盡量選擇利用率低,且年齡較小的塊。
一種典型的磨損平衡算法是貪婪算法,它根據(jù)各舊數(shù)據(jù)塊被標(biāo)記的 時間,每次回收最先被標(biāo)記的舊數(shù)據(jù)塊,直到所有的舊數(shù)據(jù)區(qū)塊都被成 功擦除回收。這種算法資源占用率低,避免了回收操作時無序的回收舊 數(shù)據(jù)塊,但是它沒有考慮年齡因素,有可能每次回收最先標(biāo)記的舊數(shù)據(jù) 塊,而該舊數(shù)據(jù)塊恰好是年齡較大的塊,這就會使得對該塊的磨損加劇。
在垃圾收集過程中,需要考慮塊的年齡和塊的利用率兩個因素。為 了修正貪婪算法的不足,KimandLee重新定義了選擇擦除塊的指標(biāo),定 義了清潔索引的概念,彌補了貪婪算法的不足。清潔索引的定義如公式 所示,其中w,表示塊i的利用率、s,表示當(dāng)前擦除次數(shù)、^,,和、m表示
塊的最小擦除次數(shù)和最大擦除次數(shù)。<formula>formula see original document page 7</formula> (公式1 )公式1中的/為正規(guī)下齊平度,其計算方法使用下面的公式2,其 中<formula>formula see original document page 7</formula>表示磨損傾斜度,反應(yīng)了磨損的平衡程度,ke為 一個常量。<formula>formula see original document page 7</formula>(公式2)
Kim and Lee算法中選擇具有較低清潔索引值的塊首先擦除,既考慮 了回收的效率,也考慮磨損的平衡,通過它來選擇擦除塊比貪婪算法更為準(zhǔn)確高效。但是以上算法存在一個缺點,即當(dāng)塊的當(dāng)前擦除次數(shù)接近擦除極限, 即s,時,該算法將忽略擦除次數(shù),而偏重塊的利用率,這是由于<formula>formula see original document page 7</formula>即當(dāng)塊的擦除次數(shù)越靠近最大擦除次數(shù)時,該極限越趨近于1 。這 也就意味著對該塊來說,其擦除次數(shù)在此清潔索引的算法中變?yōu)闊o效,清潔索引值僅由塊的利用率w'來判斷。舉個例子,取正規(guī)下齊平度/為0.9,以下為采用KimandLee算法 計算的清潔索引值塊A: "'=0.7, e,=96000, smax=96350, sm,n=92950 Cleaninglndex=(l-0.9)x0,7+0.9x[96000/(96350+l)]=0,96672 塊B: "'=0.4, f, =96300, smax=96350, 、,n=92950CleaningIndex=(l-0.9)x0.4+0.9x[96300/(96350+l)]=0.93952根據(jù)該算法,這時該選擇清潔索引較低的塊B擦除,而實際上它的
擦除次數(shù)比A還高,這反而加劇了B的磨損。
以上這種情況下,使得高擦除次數(shù),低利用率的塊有可能被反復(fù)擦 除,嚴(yán)重增加了其磨損,而這種情形在實際應(yīng)用中肯定是不能被允許的。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供存儲塊的擦除方法和裝置,避免 當(dāng)擦除次數(shù)接近最大擦除次數(shù)時,出現(xiàn)的稿擦除次數(shù)、低利用率的塊會 被反復(fù)擦除而嚴(yán)重增加其磨損的問題。
為實現(xiàn)上述目的,本發(fā)明提供了一種存儲塊的擦除方法,包括以下
步驟
根據(jù)含有無效數(shù)據(jù)的存儲塊的磨損均勻程度,動態(tài)調(diào)整回收效率與 磨損平衡間的傾向,獲取所述存儲塊的清潔索引值,根據(jù)所述清潔索引 值確定要擦除的存儲塊進(jìn)行數(shù)據(jù)擦除。
本發(fā)明還提供了一種存儲塊的擦除裝置,包括
動態(tài)調(diào)整模塊,用于根據(jù)含有無效數(shù)據(jù)的存儲塊的磨損均勻程度, 動態(tài)調(diào)整回收效率與磨損平衡間的傾向;
清潔索引模塊,用于獲取所述存儲塊的清潔索引值;
擦除模塊,用于根據(jù)所述清潔索引值確定要擦除的存儲塊并進(jìn)行數(shù) 據(jù)擦除。
本發(fā)明通過采用改進(jìn)的清潔索引算法,很好地解決了 Kim and Lee 算法中由于清潔索引計算方法方面的一些瑕瘋,而導(dǎo)致的低利用率高擦 除次數(shù)的塊依據(jù)清潔索引選擇出來,所造成的磨損加劇問題。它定義了 一種新的清潔索引計算方法,引入了新的參量,使得當(dāng)區(qū)塊擦除次數(shù)接 近擦除極限時,杜絕了 KimandLee算法在該情況下的負(fù)面影響。
衡的性能以及自適應(yīng)能力。


圖1為本發(fā)明的實施例中進(jìn)行存儲塊擦除的方法流程圖; 圖2為本發(fā)明實施例中一種存儲塊擦除裝置的結(jié)構(gòu)圖。
具體實施方式
由于Kim and Lee算法固有的 一些瑕瘋,導(dǎo)致低利用率高擦除次數(shù) 的塊依據(jù)清潔索引被選擇出來,從而造成了磨損更為加劇。另外,KimandLee算法中的正規(guī)下齊平度/^l一個靜態(tài)值,這使得 其清潔索引值的計算被單一化,不能考慮到一些特殊的情況。如在芯片 擦除次數(shù)較少時,應(yīng)該盡可能地提高回收效率,即回收盡可能多的空間; 而在芯片擦除次數(shù)較多時,就更應(yīng)該考慮磨損平衡的因素。本發(fā)明的實施例通過采用改進(jìn)的清潔索引算法,很好地解決了 Kim and Lee算法中由于清潔索引計算方法方面的一些瑕瘋,而導(dǎo)致的低利用 率高擦除次數(shù)的塊依據(jù)清潔索引選擇出來,所造成的磨損加劇問題。它 定義了一種新的清潔索引計算方法,引入了新的參量,使得當(dāng)區(qū)塊擦除 次數(shù)接近擦除極限時,杜絕了 KimandLee算法在該情況下的負(fù)面影響。同時,還提出了一種動態(tài)的調(diào)整方法,根據(jù)塊的磨損均勻程度,動 態(tài)調(diào)整回收效率與磨損平衡之間的傾向,保證閃存的垃圾回收中有較平 衡的性能以及自適應(yīng)能力。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本 發(fā)明作進(jìn)一步的詳細(xì)描述。在本發(fā)明實施例中,根據(jù)改進(jìn)的清潔索引方法進(jìn)行存儲塊擦除的流 程如圖1所示步驟IOI、檢查可回收塊鏈表dirtylist是否為空,如果為空,則結(jié)束
回收;否則執(zhí)行下一步。
本發(fā)明實施例建立了新的存儲含有臟數(shù)據(jù)_即無效數(shù)據(jù)-應(yīng)被回收 的塊信息的數(shù)據(jù)結(jié)構(gòu),在該數(shù)據(jù)結(jié)構(gòu)里面保存有該塊的清潔索引的值, 并采用鏈表的方式存儲,從而方便了增加或刪除塊信息,該鏈表稱為
dirtylist。并且不同的臟數(shù)據(jù)塊信息按照清潔索引的值進(jìn)行排序,值小的 排在鏈表的前面。通過對此鏈表排序,在進(jìn)行臟數(shù)據(jù)塊擦除時,從此鏈 表取出隊首元素來擦除就可以了 。該數(shù)據(jù)結(jié)構(gòu)具體為
struct dirtyblock
{
uint cleanindex;、.
如果臟數(shù)據(jù)塊鏈表為空,表明此時系統(tǒng)中沒有可擦除的塊,應(yīng)結(jié)束
本流程。
同樣,本發(fā)明實施例也定義了不含臟數(shù)據(jù)的非空閑數(shù)據(jù)塊信息的數(shù) 據(jù)結(jié)構(gòu),以如下結(jié)構(gòu)體保存,這些信息也以鏈表形式存儲,稱為blocklist。
其中free—size表示塊的空閑空間,用來計算"',erase—cnt用來記錄擦除 次數(shù),當(dāng)該非空閑數(shù)據(jù)塊存儲了臟數(shù)據(jù)需要擦除時,這兩個值會被用來 計算清潔索引值,并根據(jù)清潔索引值,放入dirtylist。 struct block
uint32一t free—size; uint32 t erase cnt; 步驟102、計算系統(tǒng)的磨損傾斜度,即塊的最大擦除次數(shù)和最小擦 除次數(shù)之差,判斷該差值是否超過閾值TH,如果超過則執(zhí)行步驟03; 否則4丸行步驟104。 閾值TH稱為磨損平衡閾值,磨損傾斜度反映整個系統(tǒng)所有存儲塊 的磨損平衡程度,當(dāng)這個值較大時,表明不同存儲塊的磨損程度相差較 大,此時應(yīng)當(dāng)采用較大的/值,使得對清潔索引值的計算偏向于對擦除 次數(shù)的考慮,也就是擦除次數(shù)值在清潔索引值的計算中占較大比重。反 之,當(dāng)磨損傾斜度值較小時,表明不同存儲塊的磨損程度較為均勻,此 時應(yīng)當(dāng)采用較小的M直,使得對清潔索引值的計算偏向于對存儲空間利 用率-即塊的使用率-的考慮,應(yīng)盡量去回收使用率高的塊。磨損平衡 閾值TH就是為了衡量到底應(yīng)優(yōu)先考慮平衡塊間的磨損,還是優(yōu)先考慮 回收存儲空間。即,當(dāng)磨損傾斜度大于TH時,選擇較大/值;反之選 擇較小/值。 TH值是一個經(jīng)驗值,根據(jù)不同的應(yīng)用場景而采用不同的設(shè)置,在 本實施例中為2000。而較大和較小/值的確定,同樣要根據(jù)具體應(yīng)用, 在本實施例中為0.9和0.1 。 步驟103、根據(jù)步驟102中的動態(tài)調(diào)整策略,計算當(dāng)前情況下的正 規(guī)下齊平度/,按計算出的正規(guī)下齊平度/,同時考慮塊的擦除次數(shù)和塊 的利用率來計算每個dirtylist中的塊的清潔索引值,并執(zhí)行步驟105。因 為超過了閾值TH,應(yīng)選擇較大/值。 本發(fā)明實施例提出了一種改進(jìn)的清潔索引的算法,通過對公式1進(jìn) 行修正,引入新的參量,來對清潔索引值作微調(diào)。改進(jìn)后的清潔索引算 法如/^式3所示 <formula>formula see original document page 11</formula> (公式3 ) 其中,用^,-smm代替s,,使得對清潔索引的計算更為精確。修正后
的清潔索引算法,避免了 KimandLee算法的負(fù)面影響。
依然以背景技術(shù)中的例子為例,塊A: "'二0.7, £,=96000, smax=96350, ^,,,=92950,因為As大于2000,則選擇較大/值0.9,于是
CleaningIndex=(l-0.9)x0.8+0.9x[96000-92950/(96350-92950+l)]=0.8
8711
塊B: <formula>formula see original document page 12</formula>根據(jù)該結(jié)果,塊A會被先擦除。這就避免了 KimandLee算法中擦 除次數(shù)接近極限情況下出現(xiàn)的問題。
可見,改進(jìn)的清潔索引算法考慮了特殊情況下對清潔索引的計算, 性能較為優(yōu)秀,具有較大的實用價值。同時還提出了一種動態(tài)的調(diào)整方 法,根據(jù)塊的磨損均勻程度,動態(tài)調(diào)整回收效率與磨損平衡之間的傾向, 保證閃存的垃圾回收中有較平衡的性能以及自適應(yīng)能力。
步驟104、按計算出的正規(guī)下齊平度/,同時考慮塊的擦除次數(shù)和塊 的利用率來計算每個dirtylist中的塊的清潔索引值。此時應(yīng)應(yīng)選擇較小/ 值,來計算清潔索引值。
步驟105、對dirtylist中的每個塊按計算出的清潔索引值進(jìn)行從小到 大的排序。
步驟106、從dirtylist的鏈表頭節(jié)點中取出清潔索引最小的塊信息, 該塊將被擦除并被回收,選擇該塊能夠使得閃存的磨損差異盡量平均, 盡管它的數(shù)據(jù)利用率比較高。
步驟107、將待擦除的塊中的有效數(shù)據(jù)轉(zhuǎn)移到一個空閑塊上,并對 原有數(shù)據(jù)作標(biāo)記,標(biāo)記為無效數(shù)據(jù)。
在本發(fā)明實施例中,同樣需要維護(hù)freeblock數(shù)據(jù)結(jié)構(gòu)保存空閑塊的 塊信息,保存在freelist鏈表中。用badblock保存擦除失敗的塊信息,保存在badlist中。Freeblock和badblock的結(jié)構(gòu)這里不再贅述。
每次在閃存塊內(nèi)分配數(shù)據(jù)后,修改blocklist中的free—size。當(dāng)塊內(nèi) 部有臟數(shù)據(jù),滿足可擦除條件時,利用blocklist中的erase—cnt和free—size 可以計算出清潔索引的值,從而可以采用插入排序方法插入到dirtylist鏈表。步驟108、由于原有應(yīng)被4察除的塊已經(jīng)失效,這時通過對該塊進(jìn)行 數(shù)據(jù)擦除,以回收作為空閑空間塊使用。步驟109、判斷擦除是否成功,如果成功則執(zhí)行下一步驟;擦除失 敗則該塊凈皮加入到badlist壞塊鏈表,結(jié)束本流程。步驟110、塊的擦除已經(jīng)成功,這時它的擦除次數(shù)加1,用于該塊被 再次使用后,計算新的清潔索引值。步驟111、塊的擦除已經(jīng)成功,該塊已經(jīng)轉(zhuǎn)變?yōu)樵嫉目臻e狀態(tài), 寫入Cleanmarker標(biāo)記。Cleanmarker標(biāo)記是一種校驗保護(hù)策略,用于標(biāo) 記塊的擦除成功,可以直接寫入新的數(shù)據(jù)。步驟112、該塊的各種標(biāo)記已經(jīng)標(biāo)記完畢,這時已經(jīng)可以凈皮再次利 用,被插入到freelist,以供分配操作使用。本發(fā)明實施例通過采用改進(jìn)的清潔索引算法,很好地解決了 KL算 法中由于清潔索引計算方法方面的一些瑕疵,而導(dǎo)致的低利用率高擦除 次數(shù)的塊依據(jù)清潔索引選擇出來,所造成的磨損加劇問題。它定義了一 種新的清潔索引計算方法,引入了新的參量,使得當(dāng)區(qū)塊擦除次數(shù)接近 擦除極限時,杜絕了 KL算法在該情況下的負(fù)面影響。同時,還提出了一種動態(tài)的調(diào)整方法,根據(jù)塊的磨損均勻程度,動 態(tài)調(diào)整回收效率與磨損平衡之間的傾向,保證閃存的垃圾回收中有較平 衡的性能以及自適應(yīng)能力。需要說明的是,在本發(fā)明的優(yōu)選實施例中,可以對/值采用更為精 確的動態(tài)調(diào)整策略,該動態(tài)調(diào)整策略為
通過進(jìn)一 步對&分段,使得在擦除次數(shù)較低的情況下(低于 一 閾值), 使用較大的/,增大清潔索引值以避免被回收,來提高回收效率。高于所 述一閾值時,同時根據(jù)As反映的磨損平衡程度,設(shè)置另一閾值來控制, 在磨損較為均勻時,即低于另一閾值時,采用較小的/,對清潔索引的計
算更偏向空間利用率,而盡量去回收空間;在磨損均勻程度高于另一閾 值時,采用較大的/,使得對清潔索引的計算偏向于對擦除次數(shù)的考慮。 圖2為本發(fā)明實施例中一種存儲塊擦除裝置的結(jié)構(gòu)圖,該裝置具體 包括
動態(tài)調(diào)整模塊21,用于根據(jù)含有無效數(shù)據(jù)的存儲塊的磨損均勻程
度,動態(tài)調(diào)整回收效率與磨損平衡間的傾向;
清潔索引模塊22 ,用于獲取所述存儲塊的清潔索引值; 擦除模塊23,用于根據(jù)所述清潔索引值確定要擦除的存儲塊并進(jìn)行
數(shù)據(jù)擦除。
動態(tài)調(diào)整模塊主要用于根據(jù)磨損傾斜度的值動態(tài)調(diào)整選擇較大/值 還是較小/值,清潔索引模塊采用本發(fā)明實施例中的改進(jìn)清潔索引算法 計算各存儲塊的清潔索引值,確定擦除存儲塊的順序。
其中,所述動態(tài)調(diào)整模塊21具體包括
判決單元211,用于獲得磨損傾斜度的值,判斷該值是否超過一閾
值;
選擇單元212,用于根據(jù)所述判決單元的判斷結(jié)果,如果該值超過 所述閾值,則采用較大的正規(guī)下齊平度;否則釆用較小的正規(guī)下齊平度。 所述擦除模塊23具體包括
排序單元231,用于對含有無效數(shù)據(jù)存儲塊的鏈表中的每個存儲塊 根據(jù)其清潔索引值進(jìn)行從d 、到大的排序;
定位單元232,用于在所述鏈表的頭節(jié)點中取出清潔索引最小的存
儲塊信息;
數(shù)據(jù)遷移單元233,用于將所述存儲塊中的有效數(shù)據(jù)轉(zhuǎn)移到一個空 閑塊上,并對所述存儲塊的原有數(shù)據(jù)作標(biāo)記,標(biāo)記為無效數(shù)據(jù);
數(shù)據(jù)擦除單元234,用于對所述存儲塊進(jìn)行數(shù)據(jù)擦除。
通過以上裝置,能夠?qū)崿F(xiàn)當(dāng)區(qū)塊擦除次數(shù)接近擦除極限時,杜絕KL 算法在該情況下的負(fù)面影響。
同時,該裝置還采用了根據(jù)塊的磨損均勻程度,動態(tài)調(diào)整回收效率 與磨損平衡之間的傾向,保證了閃存的垃圾回收中有較平衡的性能以及 自適應(yīng)能力。
總之,以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā) 明的保護(hù)范圍。
權(quán)利要求
1、一種存儲塊的擦除方法,其特征在于,包括以下步驟根據(jù)含有無效數(shù)據(jù)的存儲塊的磨損均勻程度,動態(tài)調(diào)整回收效率與磨損平衡間的傾向,獲取所述存儲塊的清潔索引值,根據(jù)所述清潔索引值確定要擦除的存儲塊進(jìn)行數(shù)據(jù)擦除。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進(jìn)一步包括 建立含有無效數(shù)據(jù)的存儲塊的塊信息的數(shù)據(jù)結(jié)構(gòu),在該數(shù)據(jù)結(jié)構(gòu)里面保存有該存儲塊的清潔索引的值,并采用鏈表的方式存儲,該鏈表根 據(jù)清潔索引的值進(jìn)行排序;建立不含無效數(shù)據(jù)的非空閑數(shù)據(jù)的塊信息的數(shù)據(jù)結(jié)構(gòu),在該數(shù)據(jù)結(jié) 構(gòu)里面保存有該存儲塊的空閑空間及當(dāng)前存儲塊擦除次數(shù)。
3、 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述獲取清潔索 引值具體包括采用如下公式獲取各個存儲塊的清潔索引值c/<formula>formula see original document page 2</formula>其中,W,表示存儲塊i的利用率、S,表示當(dāng)前存儲塊擦除次數(shù)、6:,和 &,表示所有存儲塊的最小擦除次數(shù)和最大擦除次數(shù),/為正規(guī)下齊平度。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述動態(tài)調(diào)整回收效 率與磨損平衡間的傾向具體包括獲得磨損傾斜度的值,所述磨損傾斜度的獲取方法為<formula>formula see original document page 2</formula>判斷該磨損傾斜度的值是否超過一閾值,并調(diào)整清潔索引值的計算 參數(shù)/。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)清潔索引值確定要擦除的存儲塊進(jìn)行數(shù)據(jù)擦除操作具體包括行從小到大的排序;在所述鏈表的頭節(jié)點中取出清潔索引最小的存儲塊信息;將所述存儲塊中的有效數(shù)據(jù)轉(zhuǎn)移到 一個空閑塊上,并對所述存儲塊的原有數(shù)據(jù)作標(biāo)記,標(biāo)記為無效數(shù)據(jù);對所述存儲塊進(jìn)行數(shù)據(jù)擦除,以回收作為空閑塊使用。
6、 根據(jù)權(quán)利要求5所述的方法,其特征在于,該方法進(jìn)一步包括 判斷對所述存儲塊的擦除操作是否成功,如果是,則將該存儲塊的當(dāng)前存儲塊擦除次數(shù)值加1,并寫入清潔標(biāo)記,加入空閑塊鏈表;否則 將所述存儲塊加入壞存儲塊鏈表。
7、 根據(jù)權(quán)利要求4所述的方法,其特征在于, 所述計算參數(shù)的調(diào)整方式為判斷磨損傾斜度是否超過一閾值,如果是,則采用較大的正規(guī)下齊平度,使得當(dāng)前存儲塊擦除次數(shù)值在清潔 索引值的計算中占較大比重;否則采用較小的正規(guī)下齊平度,使得塊的 利用率在清潔索引值的計算中占較大比重;當(dāng)要進(jìn)行更精確的控制時,對當(dāng)前存儲塊擦除次數(shù)進(jìn)行分段,當(dāng)所 述當(dāng)前存儲塊擦除次數(shù)值低于另一閾值時,也使用較大的正規(guī)下齊平度。
8、 一種存儲塊的擦除裝置,其特征在于,包括動態(tài)調(diào)整模塊,用于根據(jù)含有無效數(shù)據(jù)的存儲塊的磨損均勻程度,動態(tài)調(diào)整回收效率與磨損平衡間的傾向; '-主、-士擦除模塊,用于根據(jù)所述清潔索引值確定要擦除的存儲塊并進(jìn)行數(shù)據(jù)擦除。
9、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述動態(tài)調(diào)整模塊具 體包括滑話索引模塊,用于獲取所述存儲塊的清潔索引值:3 判決單元,用于獲得磨損傾斜度的值,判斷該值是否超過一閾值;選擇單元,用于根據(jù)所述判決單元的判斷結(jié)果,如果該值超過所述闊值,則采用較大的正規(guī)下齊平度;否則采用較小的正規(guī)下齊平度。
10、根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述擦除模塊 具體包括排序單元,用于對含有無效數(shù)據(jù)存儲塊的鏈表中的每個存儲塊根據(jù) 其清潔索引值進(jìn)行從d 、到大的排序;定位單元,用于在所述鏈表的頭節(jié)點中取出清潔索引最小的存儲塊信息;數(shù)據(jù)遷移單元,用于將所述存儲塊中的有效數(shù)據(jù)轉(zhuǎn)移到 一 個空閑塊 上,并對所述存儲塊的原有數(shù)據(jù)作標(biāo)記,標(biāo)記為無效數(shù)據(jù); 數(shù)據(jù)擦除單元,用于對所述存儲塊進(jìn)行數(shù)據(jù)擦除。
全文摘要
本發(fā)明公開了一種存儲塊的擦除方法,包括根據(jù)含有無效數(shù)據(jù)的存儲塊的磨損均勻程度,動態(tài)調(diào)整回收效率與磨損平衡間的傾向,獲取所述存儲塊的清潔索引值,根據(jù)所述清潔索引值確定要擦除的存儲塊進(jìn)行數(shù)據(jù)擦除。本發(fā)明還公開了一種存儲塊的擦除裝置,包括動態(tài)調(diào)整模塊、清潔索引模塊和擦除模塊。本發(fā)明通過設(shè)置一種新的清潔索引計算方法,引入了新的參量,使得當(dāng)區(qū)塊擦除次數(shù)接近擦除極限時,仍然能有效計算塊間的磨損平衡。同時,還提出了一種動態(tài)的調(diào)整方法,根據(jù)塊的磨損均勻程度,動態(tài)調(diào)整回收效率與磨損平衡之間的傾向,保證閃存的垃圾回收中有較平衡的性能以及自適應(yīng)能力。
文檔編號G11C16/06GK101339808SQ20081004859
公開日2009年1月7日 申請日期2008年7月28日 優(yōu)先權(quán)日2008年7月28日
發(fā)明者鑫 余, 吳小龍 申請人:華中科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
天津市| 通海县| 周宁县| 大荔县| 林芝县| 巴中市| 彩票| 怀来县| 大余县| 京山县| 安丘市| 寿宁县| 中江县| 哈巴河县| 禄丰县| 牟定县| 延津县| 扎囊县| 宁都县| 邛崃市| 喀什市| 东方市| 海南省| 华蓥市| 赫章县| 搜索| 邹城市| 团风县| 神农架林区| 延寿县| 图木舒克市| 天柱县| 基隆市| 云安县| 前郭尔| 武定县| 含山县| 平邑县| 灵台县| 东兰县| 汉寿县|