專利名稱:一種固態(tài)盤靜態(tài)磨損平衡算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種固態(tài)盤靜態(tài)磨損平衡算法,具體涉及主要應(yīng)用于基于NandFlash 的閃存控制器中的一種固態(tài)盤靜態(tài)磨損平衡算法,對嵌入式系統(tǒng)中需要nand flash芯片進(jìn)行存儲時也能應(yīng)用本發(fā)明。
背景技術(shù):
固態(tài)盤是一種把Nand flash芯片作為存儲介質(zhì)的存儲器。它具有數(shù)據(jù)存取速度快、經(jīng)久耐用、防震抗摔、工作時非常安靜沒有任何噪音產(chǎn)生等優(yōu)點。Nand Flash的讀寫是以頁為單位進(jìn)行的,而擦除是以塊為單位的。而對于NandFlash的自身特點來說,對于一個物理塊的擦除次數(shù)是有限的。一般的NandFlash對于一個物理塊的可反復(fù)擦除次數(shù)為100K 次,最多可以擦除1000K次,如果反復(fù)的對某一個物理塊反復(fù)多次的擦除,將會導(dǎo)致這些物理塊無法正常工作,甚至導(dǎo)致這些物理塊不可以使用。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種固態(tài)盤靜態(tài)磨損平衡算法,其解決了背景技術(shù)中物理塊擦除次數(shù)有限,反復(fù)多次會導(dǎo)致這些物理塊無法正常工作的技術(shù)問題,其減少對于某一物理塊反復(fù)擦除的幾率,延長了物理塊使用壽命。靜態(tài)磨損平衡是對一個通道內(nèi)的物理塊進(jìn)行擦除平衡調(diào)整的算法。它記錄一個通道內(nèi)進(jìn)行擦除操作的次數(shù)和已被擦除物理塊的個數(shù),通過計算這兩個值的比值達(dá)到預(yù)定義的閥值時就進(jìn)行物理的調(diào)整。如果所有塊都被擦除過后即開始新的一個調(diào)整周期。在一些應(yīng)用中會出現(xiàn)靜態(tài)數(shù)據(jù)的情況,這種數(shù)據(jù)一旦寫入某些物理塊后,以后就很少進(jìn)行使用,而另外一種數(shù)據(jù)寫入到某些物理塊后,經(jīng)常會被反復(fù)改寫。本發(fā)明就是將這兩個物理塊進(jìn)行調(diào)整,從而達(dá)到靜態(tài)磨損平衡。本發(fā)明的技術(shù)方案是一種固態(tài)盤靜態(tài)磨損平衡算法,其特殊之處在于,它是通過在內(nèi)存中分別記錄擦除塊的次數(shù)、擦除操作的次數(shù)以及記錄每個物理塊是否擦除過的標(biāo)志來實現(xiàn)靜態(tài)磨損平衡;其中,物理塊擦除表為一個數(shù)組,按位記錄每個物理塊的擦除標(biāo)志,0代表未擦除過,1代表已擦除過;本算法包括1)當(dāng)對Nand Flash進(jìn)行擦除操作時,擦出操作次數(shù)加1,根據(jù)記錄物理塊擦除的標(biāo)志判斷當(dāng)前擦除的塊是否已經(jīng)擦除過,如果沒有擦除過,則擦除塊次數(shù)加1,同時設(shè)置記錄當(dāng)前物理塊擦除的標(biāo)志;2)計算擦除次數(shù)與擦除塊個數(shù)的比值是否達(dá)到預(yù)定一的閥值,如果達(dá)到則開始調(diào)整;如果未大于閥值,則不作處理。上述固態(tài)盤靜態(tài)磨損平衡算法,其特殊之處在于,所述調(diào)整包括
1)如果擦除塊個數(shù)等于總物理塊個數(shù)時,表明所有塊都被擦除過,則需要重新復(fù)位擦除塊個數(shù)、擦除次數(shù)以及物理塊擦除記錄表;2)如果擦除塊個數(shù)不等于總物理塊個數(shù),則通過物理塊記錄表分別找到物理塊上有有效數(shù)據(jù)并且物理塊記錄表中對應(yīng)的標(biāo)志為0和物理塊上沒有有效數(shù)據(jù)并且物理塊記錄表中對應(yīng)的標(biāo)志為1的2個物理塊;并將這2個物理塊分別定義為塊1和塊23)將塊1的有效數(shù)據(jù)拷貝到塊2上;4)將塊1擦除并將對應(yīng)的物理塊記錄表中的標(biāo)志設(shè)置為1。上述閥值是一個經(jīng)驗值。對于4通道16G的固態(tài)盤,上述閥值定義為1000。本發(fā)明的優(yōu)點在于將這兩個物理塊進(jìn)行調(diào)整,從而達(dá)到靜態(tài)磨損平衡,減少對于某一物理塊反復(fù)擦除的幾率,延長了物理塊使用壽命。
圖1為本發(fā)明原理示意圖;圖2為本發(fā)明具體流程示意圖。
具體實施例方式參見圖1,一種固態(tài)盤靜態(tài)磨損平衡算法,它是通過在內(nèi)存中分別記錄擦除塊的次數(shù)、擦除操作的次數(shù)以及記錄每個物理塊是否擦除過的標(biāo)志來實現(xiàn)靜態(tài)磨損平衡;其中,物理塊擦除表為一個數(shù)組,按位記錄每個物理塊的擦除標(biāo)志,0代表未擦除過,1代表已擦除過;本算法包括1)當(dāng)對Nand Flash進(jìn)行擦除操作時,擦出操作次數(shù)加1,根據(jù)記錄物理塊擦除的標(biāo)志判斷當(dāng)前擦除的塊是否已經(jīng)擦除過,如果沒有擦除過,則擦除塊次數(shù)加1,同時設(shè)置記錄當(dāng)前物理塊擦除的標(biāo)志;2)計算擦除次數(shù)與擦除塊個數(shù)的比值是否達(dá)到預(yù)定一的閥值,如果達(dá)到則開始調(diào)整;如果未大于閥值,則不作處理。參見圖2,本發(fā)明具體流程如下1)擦除一個物理塊時,擦除次數(shù)加1。2)在物理塊擦除記錄表中查詢當(dāng)前物理塊的擦除狀態(tài),如果當(dāng)前塊的未被擦除過則擦除塊個數(shù)加1,并將物理塊擦除記錄表中對應(yīng)的當(dāng)前物理塊的標(biāo)志記錄為1。3)擦除次數(shù)除以擦除塊個數(shù),如果大于閥值,則開始靜態(tài)磨損調(diào)整。如果未大于閥值,則不作處理。4)如果擦除塊個數(shù)等于總物理塊個數(shù)時,表明所有塊都被擦除過,則需要重新復(fù)位擦除塊個數(shù)、擦除次數(shù)以及物理塊擦除記錄表。如果擦除塊個數(shù)不等于總物理塊個數(shù),則通過物理塊記錄表分別找到物理塊上有有效數(shù)據(jù)并且物理塊記錄表中對應(yīng)的標(biāo)志為0 (定義為塊1)和物理塊上沒有有效數(shù)據(jù)并且物理塊記錄表中對應(yīng)的標(biāo)志為1 (定義為塊2~)的2個塊。
5)將塊1的有效數(shù)據(jù)拷貝到塊2上。6)將塊1擦除并將對應(yīng)的物理塊記錄表中的標(biāo)志設(shè)置為1。7)調(diào)整結(jié)束。對于本算法中閥值的確定,一般是一個經(jīng)驗值,在工作過程中,發(fā)現(xiàn)對于4通道 16G的固態(tài)盤上,此閥值定義為1000,效果最好。
權(quán)利要求
1.一種固態(tài)盤靜態(tài)磨損平衡算法,其特征在于,它是通過在內(nèi)存中分別記錄擦除塊的次數(shù)、擦除操作的次數(shù)以及記錄每個物理塊是否擦除過的標(biāo)志來實現(xiàn)靜態(tài)磨損平衡;其中,物理塊擦除表為一個數(shù)組,按位記錄每個物理塊的擦除標(biāo)志,0代表未擦除過,1 代表已擦除過; 本算法包括1)當(dāng)對NandFlash進(jìn)行擦除操作時,擦出操作次數(shù)加1,根據(jù)記錄物理塊擦除的標(biāo)志判斷當(dāng)前擦除的塊是否已經(jīng)擦除過,如果沒有擦除過,則擦除塊次數(shù)加1,同時設(shè)置記錄當(dāng)前物理塊擦除的標(biāo)志;2)計算擦除次數(shù)與擦除塊個數(shù)的比值是否達(dá)到預(yù)定一的閥值,如果達(dá)到則開始調(diào)整; 如果未大于閥值,則不作處理。
2.根據(jù)權(quán)利要求1所述固態(tài)盤靜態(tài)磨損平衡算法,其特征在于,所述調(diào)整包括1)如果擦除塊個數(shù)等于總物理塊個數(shù)時,表明所有塊都被擦除過,則需要重新復(fù)位擦除塊個數(shù)、擦除次數(shù)以及物理塊擦除記錄表;2)如果擦除塊個數(shù)不等于總物理塊個數(shù),則通過物理塊記錄表分別找到物理塊上有有效數(shù)據(jù)并且物理塊記錄表中對應(yīng)的標(biāo)志為0和物理塊上沒有有效數(shù)據(jù)并且物理塊記錄表中對應(yīng)的標(biāo)志為1的2個物理塊;并將這2個物理塊分別定義為塊1和塊23)將塊1的有效數(shù)據(jù)拷貝到塊2上;4)將塊1擦除并將對應(yīng)的物理塊記錄表中的標(biāo)志設(shè)置為1。
3.根據(jù)權(quán)利要求1或2所述固態(tài)盤靜態(tài)磨損平衡算法,其特征在于所述閥值是一個經(jīng)驗值。
4.根據(jù)權(quán)利要求3所述固態(tài)盤靜態(tài)磨損平衡算法,其特征在于對于4通道16G的固態(tài)盤,所述閥值定義為1000。
全文摘要
一種固態(tài)盤靜態(tài)磨損平衡算法,它是通過在內(nèi)存中分別記錄擦除塊的次數(shù)、擦除操作的次數(shù)以及記錄每個物理塊是否擦除過的標(biāo)志來實現(xiàn)靜態(tài)磨損平衡;其中,物理塊擦除表為一個數(shù)組,按位記錄每個物理塊的擦除標(biāo)志,0代表未擦除過,1代表已擦除過。本發(fā)明將這兩個物理塊進(jìn)行調(diào)整,從而達(dá)到靜態(tài)磨損平衡,減少對于某一物理塊反復(fù)擦除的幾率,延長了物理塊使用壽命。
文檔編號G11C16/02GK102543177SQ20101060130
公開日2012年7月4日 申請日期2010年12月17日 優(yōu)先權(quán)日2010年12月17日
發(fā)明者劉升, 王更磊 申請人:西安奇維測控科技有限公司