一種基于塊狀態(tài)表的磨損均衡方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種基于塊狀態(tài)表的磨損均衡方法及裝置,構(gòu)造了一個結(jié)構(gòu)化的塊狀態(tài)表,其每一行與存儲器的物理塊一一對應(yīng),每一行包括以二進制標識的1位冷塊標志位、1位熱塊標志位和預(yù)定義位數(shù)的擦除計數(shù)位,通過改變不同的標志位,實現(xiàn)了存儲器的各物理塊磨損均衡的同時,由于使用了結(jié)構(gòu)化的塊狀態(tài)表表示物理塊擦除次數(shù),其占用的內(nèi)存大小為固定值,因此,將該塊狀表存儲于內(nèi)存時,可避免內(nèi)存不必要的浪費。
【專利說明】一種基于塊狀態(tài)表的磨損均衡方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲【技術(shù)領(lǐng)域】,特別涉及一種基于塊狀態(tài)表的磨損均衡方法及裝置。
【背景技術(shù)】
[0002]目前,在計算機、通訊和消費電子產(chǎn)品中非易失性存儲器得到了廣泛的應(yīng)用;例如,U盤、MP3、數(shù)碼相機、移動通信終端、固態(tài)硬盤等產(chǎn)品中都使用非易失性存儲器作為存儲介質(zhì)。隨著這些產(chǎn)品對存儲容量的要求不斷提高,非易失性存儲器的工藝尺寸不斷縮小,導(dǎo)致非易失性存儲器的可靠性面臨著越來越嚴峻的挑戰(zhàn),尤其是非易失性存儲器擦除操作的最小單位物理塊的擦除次數(shù)有限,這對非易失性存儲器的使用壽命會造成嚴重影響。對于物理塊擦除次數(shù)有限的問題,現(xiàn)有技術(shù)的做法是對物理塊進行磨損均衡,通過對物理塊的擦除進行控制,盡量平均存儲器中所有物理塊的擦除次數(shù),避免某些物理塊擦除次數(shù)過高,比其它物理塊提前到達擦除次數(shù)上限而失效,造成存儲器在尚有很多物理塊未達壽命的情況下整體失效。
[0003]磨損均衡包括動態(tài)磨損均衡步驟和靜態(tài)磨損均衡步驟。動態(tài)磨損均衡步驟是指針對數(shù)據(jù)寫入過程中通過控制寫入的物理塊,動態(tài)均衡所有物理塊擦除次數(shù)的動態(tài)磨損均衡;靜態(tài)磨損均衡是指通過調(diào)整物理塊上存儲的冷、熱數(shù)據(jù)(經(jīng)常被擦寫的數(shù)據(jù)為熱數(shù)據(jù),不經(jīng)常被擦寫數(shù)據(jù)為冷數(shù)據(jù))的分布,靜態(tài)地均衡所有物理塊擦除次數(shù)。現(xiàn)有的磨損均衡方法中,均是在存儲器上電后,在內(nèi)存中提供固定的內(nèi)存空間,用于對存儲器中的所有物理塊的擦除次數(shù)相關(guān)數(shù)據(jù)進行存儲,以便于磨損均衡流程時的使用。在此過程中,由于擦除相關(guān)數(shù)據(jù)的大小和形式并不確定,因此,存儲器只能通過估計設(shè)定一個足以滿足存儲擦除次數(shù)數(shù)據(jù)的內(nèi)存空間,而在實際使用時,指定的內(nèi)存空間并沒有被完全使用,在無形之中浪費了內(nèi)存資源。對于諸如個人移動終端、EMMC (Embedded Multi Media Card,嵌入式多媒體卡)等設(shè)備,其內(nèi)存資源相對緊張,利用現(xiàn)有技術(shù)中的磨損均衡方法時,由于擦除次數(shù)相關(guān)數(shù)據(jù)的非結(jié)構(gòu)性,使得內(nèi)存的開銷增加,影響設(shè)備的正常運行。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明的主要目的在于提供一種基于塊狀態(tài)表的磨損均衡方法及裝置,在實現(xiàn)存儲器的各物理塊磨損均衡的同時,避免內(nèi)存不必要的浪費。
[0005]為實現(xiàn)上述目的,本發(fā)明提供了一種基于塊狀態(tài)表的磨損均衡方法,所述塊狀態(tài)表的每一行與存儲器的物理塊對應(yīng);所述塊狀態(tài)表中的每一行包括以二進制標識的I位冷塊標志位、I位熱塊標志位和預(yù)定義位數(shù)的擦除計數(shù)位;
[0006]所述方法包括:
[0007]物理塊擦除步驟:
[0008]當一個物理塊被擦除時,查詢所述塊狀態(tài)表中該物理塊對應(yīng)的冷塊標志位,若該物理塊對應(yīng)的冷塊標志位為0,則置為I ;若該物理塊對應(yīng)的冷塊標志位為I,則該物理塊對應(yīng)的擦除計數(shù)位加I ;若該物理塊對應(yīng)的擦除計數(shù)位溢出,則該物理塊對應(yīng)的熱塊標志位置為I ;
[0009]動態(tài)磨損均衡步驟:
[0010]每次數(shù)據(jù)寫入存儲器時,通過查詢所述塊狀態(tài)表中熱塊標志位,選擇對應(yīng)熱塊標志位為O、且其物理頁可用的物理塊寫入數(shù)據(jù);
[0011]靜態(tài)磨損均衡步驟:
[0012]當所述塊狀態(tài)表中熱塊標志位為I的物理塊數(shù)量超過預(yù)設(shè)的靜態(tài)磨損均衡值時,將冷塊標志位為O的物理塊中的數(shù)據(jù)移動至具有可用物理頁且擦除次數(shù)最高的物理塊中,并將冷塊標志位為O的物理塊的冷塊標志位置為I。
[0013]進一步,所述的方法還包括初始化步驟:
[0014]生成所述塊狀態(tài)表,并將所述塊狀態(tài)表存儲于內(nèi)存;
[0015]將所述塊狀態(tài)表中對應(yīng)各物理塊的冷塊標志位、熱塊標志位和擦除計數(shù)位復(fù)位為O0
[0016]進一步,所述的方法還包括塊狀態(tài)表的重構(gòu)步驟:
[0017]當所述塊狀態(tài)表中各物理塊對應(yīng)的冷塊標志位均為I時,將所述塊狀態(tài)表中各物理塊對應(yīng)的擦除計數(shù)位減1,對于擦除計數(shù)位為O的物理塊,擦除計數(shù)位保持不變,并將所述塊狀態(tài)表中擦除計數(shù)位為O的物理塊對應(yīng)的冷塊標志位置為O ;
[0018]將所述塊狀態(tài)表中各物理塊對應(yīng)的熱塊標志位置為O。
[0019]進一步,所述動態(tài)磨損均衡步驟中,每次數(shù)據(jù)寫入存儲器時,查詢當前活動物理塊是否存在可用的物理頁,若存在,則直接將數(shù)據(jù)寫入活動物理塊,其中,所述活動物理塊為前次寫入數(shù)據(jù)時,寫入數(shù)據(jù)的物理塊;若不存在,則由當前活動物理塊開始,按照物理塊序號依次查詢各物理塊是否存在可用的物理頁,且對應(yīng)熱塊標志位為O的物理塊寫入數(shù)據(jù),并將該物理塊設(shè)置為活動物理塊。
[0020]本發(fā)明還提供了一種基于塊狀態(tài)表的磨損均衡裝置,包括:
[0021]塊狀態(tài)表生成模塊,用于生成所述塊狀態(tài)表,所述塊狀態(tài)表的每一行與存儲器的物理塊一一對應(yīng);所述塊狀態(tài)表中的每一行包括以二進制標識的I位冷塊標志位、I位熱塊標志位和預(yù)定義位數(shù)的擦除計數(shù)位;
[0022]物理塊擦除模塊,用于當一個物理塊被擦除時,查詢所述塊狀態(tài)表中該物理塊對應(yīng)的冷塊標志位,若該物理塊對應(yīng)的冷塊標志位為0,則置為I ;若該物理塊對應(yīng)的冷塊標志位為1,則該物理塊對應(yīng)的擦除計數(shù)位加I ;若該物理塊對應(yīng)的擦除計數(shù)位溢出,則該物理塊對應(yīng)的熱塊標志位置為I ;
[0023]動態(tài)磨損均衡模塊,用于每次數(shù)據(jù)寫入存儲器時,通過查詢所述塊狀態(tài)表中熱塊標志位,選擇對應(yīng)熱塊標志位為O且其物理頁可用的物理塊寫入數(shù)據(jù);
[0024]靜態(tài)磨損均衡模塊,用于當所述塊狀態(tài)表中熱塊標志位為I的物理塊數(shù)量超過預(yù)設(shè)的靜態(tài)磨損均衡值時,將冷塊標志位為O的物理塊中的數(shù)據(jù)移動至具有可用物理頁且擦除次數(shù)最高的物理塊中,并將冷塊標志位為O的物理塊的冷塊標志位置為I。
[0025]進一步,所述塊狀態(tài)表生成模塊包括初始化單元,用于將所述塊狀態(tài)表存儲于內(nèi)存,以及用于將所述塊狀態(tài)表中對應(yīng)各物理塊的冷塊標志位、熱塊標志位和擦除計數(shù)位復(fù)位為O。
[0026]進一步,所述裝置還包括塊狀態(tài)表的重構(gòu)模塊,用于當所述塊狀態(tài)表中各物理塊對應(yīng)的冷塊標志位均為I時,將所述塊狀態(tài)表中各物理塊對應(yīng)的擦除計數(shù)位減1,對于擦除計數(shù)位為O的物理塊,擦除計數(shù)位保持不變,并將所述塊狀態(tài)表中擦除計數(shù)位為O的物理塊對應(yīng)的冷塊標志位置為O,以及用于將所述塊狀態(tài)表中各物理塊對應(yīng)的熱塊標志位置為O。
[0027]進一步,所述動態(tài)磨損均衡模塊進一步用于每次數(shù)據(jù)寫入存儲器時,查詢當前活動物理塊是否存在可用的物理頁,若存在,則直接將數(shù)據(jù)寫入活動物理塊,其中,所述活動物理塊為前次寫入數(shù)據(jù)時,寫入數(shù)據(jù)的物理塊;若不存在,則由當前活動物理塊開始,按照物理塊序號依次查詢各物理塊是否存在可用的物理頁,且對應(yīng)熱塊標志位為O的物理塊寫入數(shù)據(jù),并將該物理塊設(shè)置為活動物理塊。
[0028]采用本發(fā)明提供的基于塊狀態(tài)表的磨損均衡方法及裝置,構(gòu)造了一個結(jié)構(gòu)化的塊狀態(tài)表,其每一行與存儲器的物理塊對應(yīng),每一行包括以二進制標識的I位冷塊標志位、I位熱塊標志位和預(yù)定義位數(shù)的擦除計數(shù)位,通過改變不同的標志位,實現(xiàn)了存儲器的各物理塊磨損均衡的同時,由于使用了結(jié)構(gòu)化的塊狀態(tài)表表示物理塊擦除次數(shù),其占用的內(nèi)存大小為固定值,因此,將該塊狀表存儲于內(nèi)存時,可避免內(nèi)存不必要的浪費。
【專利附圖】
【附圖說明】
[0029]圖1為本申請中塊狀態(tài)表示意圖;
[0030]圖2為本發(fā)明基于塊狀態(tài)表的磨損均衡方法中物理塊擦除示意圖;
[0031]圖3為本發(fā)明基于塊狀態(tài)表的磨損均衡方法中動態(tài)磨損均衡步驟示意圖;
[0032]圖4為本發(fā)明基于塊狀態(tài)表的磨損均衡方法中靜態(tài)磨損均衡步驟示意圖;
[0033]圖5為本發(fā)明基于塊狀態(tài)表的磨損均衡方法中塊狀態(tài)表的重構(gòu)步驟示意圖。
【具體實施方式】
[0034]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明作進一步詳細說明。
[0035]本發(fā)明提供了一種基于塊狀態(tài)表的磨損均衡方法,其中,塊狀態(tài)表的示例如圖1所示:
[0036]在塊狀態(tài)表中,塊狀態(tài)表的每一行與存儲器的物理塊--對應(yīng),例如塊狀態(tài)表第二行與序號PBA為I的物理塊對應(yīng);
[0037]每一行包括以二進制標識的I位冷塊標志位CBL、I位熱塊標志位HBL和預(yù)定義位數(shù)的擦除計數(shù)位ECC(圖1中ECC的位數(shù)為4位);其中,冷塊標志位為O時,表示在一定時間內(nèi),其對應(yīng)物理塊始終都沒有被擦除過,冷塊標志位為I時,表示在一定時間內(nèi),其對應(yīng)物理塊被擦除過;擦除計數(shù)位ECC根據(jù)定義的位數(shù)N,通過二進制的規(guī)則,可以對擦除次數(shù)進行計數(shù),共可計數(shù)2~欠,如圖1所示,擦除計數(shù)位ECC的位數(shù)為4,其共可計數(shù)16次擦除;熱塊標志位HBL為O表示該物理塊沒有被頻繁磨損,相反的,當熱塊標志位HBL為I時,認為該物理塊被頻繁磨損。
[0038]在執(zhí)行本發(fā)明的磨損均衡方法時,生成上述塊狀態(tài)表,將狀態(tài)表存儲于內(nèi)存,并將塊狀態(tài)表中對應(yīng)各物理塊的冷塊標志位、熱塊標志位和擦除計數(shù)位復(fù)位為O。
[0039]當對物理塊進行擦除時,查詢塊狀態(tài)表中該物理塊對應(yīng)的冷塊標志位,若該物理塊對應(yīng)的冷塊標志位為0,則置為I ;若該物理塊對應(yīng)的冷塊標志位為I,則該物理塊對應(yīng)的擦除計數(shù)位加I;若該物理塊對應(yīng)的擦除計數(shù)位溢出,則該物理塊對應(yīng)的熱塊標志位置為I ;如圖2所示的塊狀態(tài)表,若對序號PBA為I的物理塊進行擦除,由于其對應(yīng)的冷塊標志位CBL為O,因此,需要將其對應(yīng)的冷塊標志位CBL由O置為I ;若對序號PBA為O的物理塊進行擦除時,由于其對應(yīng)的冷塊標志位已為1,因此,需要將擦除計數(shù)位ECC由OlOl根據(jù)二進制加1,變?yōu)?110 ;若對序號PBA為2的物理塊進行擦除時,由于其對應(yīng)的冷塊標志位CBL為I,因此不變,其擦除計數(shù)位ECC為1111,再加I為10000,其已超出初始化時設(shè)置的擦除計數(shù)位ECC的位數(shù),為溢出,因此,將其熱塊標志位HBL由O置為I。
[0040]本發(fā)明的磨損均衡方法包括動態(tài)磨損均衡步驟:
[0041]每次數(shù)據(jù)寫入存儲器時,通過查詢塊狀態(tài)表中熱塊標志位,選擇對應(yīng)熱塊標志位為O、且其物理頁可用的物理塊寫入數(shù)據(jù)。
[0042]具體的,如圖3所示,每次數(shù)據(jù)寫入存儲器時,首先查詢當前活動物理塊是否存在可用的物理頁,若存在,則直接將數(shù)據(jù)寫入活動物理塊,其中,活動物理塊為前次寫入數(shù)據(jù)時,寫入數(shù)據(jù)的物理塊。
[0043]若不存在,則由當前活動物理塊開始,按照物理塊序號依次查詢各物理塊是否存在可用的物理頁,且對應(yīng)熱塊標志位為O的物理塊寫入數(shù)據(jù),并將該物理塊設(shè)置為活動物理塊。
[0044]上述動態(tài)磨損均衡步驟中,熱塊標志位HBL等于I的物理塊說明在一段時間內(nèi)磨損過于嚴重,通過加入熱塊標志位HBL的判斷,實現(xiàn)了對一定時期內(nèi)磨損過度的物理塊的保護。
[0045]本發(fā)明的磨損均衡方法包括靜態(tài)磨損均衡步驟:
[0046]隨著物理塊不斷被擦除,會有一部分物理塊的熱塊標志位為1,即存儲于該物理塊中的數(shù)據(jù)被頻繁擦除,其存儲的數(shù)據(jù)屬于熱數(shù)據(jù),而另一部分物理塊中存儲的數(shù)據(jù)未被頻繁擦除,其存儲的數(shù)據(jù)屬于冷數(shù)據(jù),為了使存儲有熱數(shù)據(jù)的物理塊減少擦除次數(shù),并使存儲有冷數(shù)據(jù)的物理塊增加擦除次數(shù),平衡各個物理塊被擦除次數(shù),就需要將冷數(shù)據(jù)存儲于擦除次數(shù)多的物理塊中。
[0047]靜態(tài)磨損均衡步驟包括:當塊狀態(tài)表中熱塊標志位為I的數(shù)量超過預(yù)設(shè)的靜態(tài)磨損均衡值時,將冷塊標志位為O的物理塊中的數(shù)據(jù)移動至具有可用物理頁且擦除次數(shù)最高的物理塊中,并將冷塊標志位為O的物理塊的冷塊標志位置為I。
[0048]其中,預(yù)先設(shè)定一個靜態(tài)磨損均衡值,該數(shù)值表示塊狀態(tài)表中熱塊標志位為I的數(shù)量,當實際的熱塊標志位為I的物理塊數(shù)量超過預(yù)設(shè)的靜態(tài)磨損均衡值時,觸發(fā)靜態(tài)磨損均衡流程。
[0049]靜態(tài)磨損均衡的典型示例如圖4所示,序號PBA為I的物理塊,其存儲的數(shù)據(jù)為冷數(shù)據(jù),其在一定時間內(nèi)沒有進行過擦除,而序號PBA為N的物理塊,其存儲的數(shù)據(jù)為熱數(shù)據(jù),其在一定時間內(nèi)擦除次數(shù)頻繁,且其熱塊標志位為1,若序號PBA為N的物理塊具有可用的物理頁時,將序號PBA為I的物理塊中的數(shù)據(jù)移動至序號PBA為N的物理塊中,并將序號PBA為I的物理塊的冷塊標志位CBL置為I。
[0050]本發(fā)明的磨損均衡方法包括塊狀態(tài)表重構(gòu)步驟:
[0051]隨著物理塊不斷被擦除以及靜態(tài)磨損均衡步驟的執(zhí)行,塊狀態(tài)表中各物理塊對應(yīng)的冷塊標志位CBL會出現(xiàn)全部被置為I的情況,表明存儲器中的物理塊均進行過至少一次擦除,針對此情況作如下處理:
[0052]當塊狀態(tài)表中各物理塊對應(yīng)的冷塊標志位CBL均為I時,將塊狀態(tài)表中各物理塊對應(yīng)的擦除計數(shù)位ECC減I,但對于擦除計數(shù)位為O的物理塊,擦除計數(shù)位保持不變,并將塊狀態(tài)表中擦除計數(shù)位ECC為O的物理塊對應(yīng)的冷塊標志位CBL置為O ;
[0053]將塊狀態(tài)表中各物理塊對應(yīng)的熱塊標志位HBL置為O ;
[0054]如圖5所示的一種示例,左側(cè)塊狀態(tài)表中所有物理塊對應(yīng)的冷塊標志位CBL均置為1,表示所有物理塊均進行了至少一次擦除,此時執(zhí)行靜態(tài)磨損均衡步驟,將所有的擦除計數(shù)位ECC中的二進制數(shù)值減I,序號PBA為O的物理塊對應(yīng)的擦除計數(shù)位ECC中的數(shù)值原為0101,減I后為0100 ;序號PBA為2的物理塊對應(yīng)的擦除計數(shù)位ECC中的數(shù)值原為0000,其冷塊標志位CBL為1,因此,將其冷塊標志位CBL置為O。
[0055]采用本發(fā)明提供的基于塊狀態(tài)表的磨損均衡方法,構(gòu)造了一個結(jié)構(gòu)化的塊狀態(tài)表,其每一行與存儲器的物理塊對應(yīng),每一行包括以二進制標識的I位冷塊標志位、I位熱塊標志位和預(yù)定義位數(shù)的擦除計數(shù)位,通過改變不同的標志位,實現(xiàn)了存儲器的各物理塊磨損均衡的同時,由于使用了結(jié)構(gòu)化的塊狀態(tài)表表示物理塊擦除次數(shù),其占用的內(nèi)存大小為固定值,因此,將該塊狀表存儲于內(nèi)存時,可避免內(nèi)存不必要的浪費。
[0056]本發(fā)明還提供了一種基于塊狀態(tài)表的磨損均衡裝置,包括:
[0057]塊狀態(tài)表生成模塊,用于生成所述塊狀態(tài)表,所述塊狀態(tài)表的每一行與存儲器的物理塊一一對應(yīng);所述塊狀態(tài)表中的每一行包括以二進制標識的I位冷塊標志位、I位熱塊標志位和預(yù)定義位數(shù)的擦除計數(shù)位;
[0058]物理塊擦除模塊,用于當一個物理塊被擦除時,查詢所述塊狀態(tài)表中該物理塊對應(yīng)的冷塊標志位,若該物理塊對應(yīng)的冷塊標志位為0,則置為I ;若該物理塊對應(yīng)的冷塊標志位為1,則該物理塊對應(yīng)的擦除計數(shù)位加I ;若該物理塊對應(yīng)的擦除計數(shù)位溢出,則該物理塊對應(yīng)的熱塊標志位置為I ;
[0059]動態(tài)磨損均衡模塊,用于每次數(shù)據(jù)寫入存儲器時,通過查詢所述塊狀態(tài)表中熱塊標志位,選擇對應(yīng)熱塊標志位為O、且其物理頁可用的物理塊寫入數(shù)據(jù);
[0060]靜態(tài)磨損均衡模塊,用于當所述塊狀態(tài)表中熱塊標志位為I的物理塊數(shù)量超過預(yù)設(shè)的靜態(tài)磨損均衡值時,將冷塊標志位為O的物理塊中的數(shù)據(jù)移動至具有可用物理頁且擦除次數(shù)最高的物理塊中,并將冷塊標志位為O的物理塊的冷塊標志位置為I。
[0061 ] 進一步,所述塊狀態(tài)表生成模塊包括初始化單元,用于將所述塊狀態(tài)表存儲于內(nèi)存,以及用于將所述塊狀態(tài)表中對應(yīng)各物理塊的冷塊標志位、熱塊標志位和擦除計數(shù)位復(fù)位為O。
[0062]進一步,所述裝置還包括塊狀態(tài)表的重構(gòu)模塊,用于當所述塊狀態(tài)表中各物理塊對應(yīng)的冷塊標志位均為I時,將所述塊狀態(tài)表中各物理塊對應(yīng)的擦除計數(shù)位減1,但對于擦除計數(shù)位為O的物理塊,擦除計數(shù)位保持不變,并將塊狀態(tài)表中擦除計數(shù)位ECC為O的物理塊對應(yīng)的冷塊標志位CBL置為0,以及用于將所述塊狀態(tài)表中各物理塊對應(yīng)的熱塊標志位置為O。
[0063]進一步,所述動態(tài)磨損均衡模塊進一步用于每次數(shù)據(jù)寫入存儲器時,查詢當前活動物理塊是否存在可用的物理頁,若存在,則直接將數(shù)據(jù)寫入活動物理塊,其中,所述活動物理塊為前次寫入數(shù)據(jù)時,寫入數(shù)據(jù)的物理塊;若不存在,則由當前活動物理塊開始,按照物理塊序號依次查詢各物理塊是否存在可用的物理頁,且對應(yīng)熱塊標志位為O的物理塊寫入數(shù)據(jù),并將該物理塊設(shè)置為活動物理塊。
[0064]需要說明的是,本申請?zhí)峁┑幕趬K狀態(tài)表的磨損均衡裝置所執(zhí)行的功能對應(yīng)于上述的方法;進一步的,裝置中的各個模塊及單元所實現(xiàn)的功能,本領(lǐng)域技術(shù)人員可以通過軟件實現(xiàn),在此不再贅述。
[0065]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
【權(quán)利要求】
1.一種基于塊狀態(tài)表的磨損均衡方法,其特征在于,所述塊狀態(tài)表的每一行與存儲器的物理塊--對應(yīng);所述塊狀態(tài)表中的每一行包括以二進制標識的I位冷塊標志位、I位熱塊標志位和預(yù)定義位數(shù)的擦除計數(shù)位; 所述方法包括: 物理塊擦除步驟: 當一個物理塊被擦除時,查詢所述塊狀態(tài)表中該物理塊對應(yīng)的冷塊標志位,若該物理塊對應(yīng)的冷塊標志位為O,則置為I ;若該物理塊對應(yīng)的冷塊標志位為I,則該物理塊對應(yīng)的擦除計數(shù)位加I;若該物理塊對應(yīng)的擦除計數(shù)位溢出,則該物理塊對應(yīng)的熱塊標志位置為I; 動態(tài)磨損均衡步驟: 每次數(shù)據(jù)寫入存儲器時,通過查詢所述塊狀態(tài)表中熱塊標志位,選擇對應(yīng)熱塊標志位為O且其物理頁可用的物理塊寫入數(shù)據(jù); 靜態(tài)磨損均衡步驟: 當所述塊狀態(tài)表中熱塊標志位為I的物理塊數(shù)量超過預(yù)設(shè)的靜態(tài)磨損均衡值時,將冷塊標志位為O的物理塊中的數(shù)據(jù)移動至具有可用物理頁且擦除次數(shù)最高的物理塊中,并將該冷塊標志位為O的物理塊擦除,同時將冷塊標志位為O的物理塊的冷塊標志位置為I。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括初始化步驟: 生成所述塊狀態(tài)表,并將所述塊狀態(tài)表存儲于內(nèi)存; 將所述塊狀態(tài)表中對應(yīng)各物理塊的冷塊標志位、熱塊標志位和擦除計數(shù)位復(fù)位為O。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括塊狀態(tài)表的重構(gòu)步驟: 當所述塊狀態(tài)表中各物理塊對應(yīng)的冷塊標志位均為I時,將所述塊狀態(tài)表中各物理塊對應(yīng)的擦除計數(shù)位減1,對于擦除計數(shù)位為O的物理塊,擦除計數(shù)位保持不變,并將所述塊狀態(tài)表中擦除計數(shù)位為O的物理塊對應(yīng)的冷塊標志位置為O ; 將所述塊狀態(tài)表中各物理塊對應(yīng)的熱塊標志位置為O。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述動態(tài)磨損均衡步驟中,每次數(shù)據(jù)寫入存儲器時,查詢當前活動物理塊是否存在可用的物理頁,若存在,則直接將數(shù)據(jù)寫入活動物理塊,其中,所述活動物理塊為前次寫入數(shù)據(jù)時,寫入數(shù)據(jù)的物理塊;若不存在,則由當前活動物理塊開始,按照物理塊序號依次查詢各物理塊是否存在可用的物理頁,且對應(yīng)熱塊標志位為O的物理塊寫入數(shù)據(jù),并將該物理塊設(shè)置為活動物理塊。
5.一種基于塊狀態(tài)表的磨損均衡裝置,其特征在于,包括: 塊狀態(tài)表生成模塊,用于生成所述塊狀態(tài)表,所述塊狀態(tài)表的每一行與存儲器的物理塊 對應(yīng);所述塊狀態(tài)表中的每一行包括以二進制標識的I位冷塊標志位、I位熱塊標志位和預(yù)定義位數(shù)的擦除計數(shù)位; 物理塊擦除模塊,用于當一個物理塊被擦除時,查詢所述塊狀態(tài)表中該物理塊對應(yīng)的冷塊標志位,若該物理塊對應(yīng)的冷塊標志位為O,則置為I ;若該物理塊對應(yīng)的冷塊標志位為1,則該物理塊對應(yīng)的擦除計數(shù)位加I ;若該物理塊對應(yīng)的擦除計數(shù)位溢出,則該物理塊對應(yīng)的熱塊標志位置為I ; 動態(tài)磨損均衡模塊,用于每次數(shù)據(jù)寫入存儲器時,通過查詢所述塊狀態(tài)表中熱塊標志位,選擇對應(yīng)熱塊標志位為O、且其物理頁可用的物理塊寫入數(shù)據(jù); 靜態(tài)磨損均衡模塊,用于當所述塊狀態(tài)表中熱塊標志位為I的物理塊數(shù)量超過預(yù)設(shè)的靜態(tài)磨損均衡值時,將冷塊標志位為O的物理塊中的數(shù)據(jù)移動至具有可用物理頁且擦除次數(shù)最高的物理塊中,并將冷塊標志位為O的物理塊的冷塊標志位置為I。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述塊狀態(tài)表生成模塊包括初始化單元,用于將所述塊狀態(tài)表存儲于內(nèi)存,以及用于將所述塊狀態(tài)表中對應(yīng)各物理塊的冷塊標志位、熱塊標志位和擦除計數(shù)位復(fù)位為O。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括塊狀態(tài)表的重構(gòu)模塊,用于當所述塊狀態(tài)表中各物理塊對應(yīng)的冷塊標志位均為I時,將所述塊狀態(tài)表中各物理塊對應(yīng)的擦除計數(shù)位減1,對于擦除計數(shù)位為零的物理塊,擦除計數(shù)位保持不變,并將所述塊狀態(tài)表中擦除計數(shù)位為O的物理塊對應(yīng)的冷塊標志位置為O,以及用于將所述塊狀態(tài)表中各物理塊對應(yīng)的熱塊標志位置為O。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述動態(tài)磨損均衡模塊進一步用于每次數(shù)據(jù)寫入存儲器時,查詢當前活動物理塊是否存在可用的物理頁,若存在,則直接將數(shù)據(jù)寫入活動物理塊,其中,所述活動物理塊為前次寫入數(shù)據(jù)時,寫入數(shù)據(jù)的物理塊;若不存在,則由當前活動物理塊開始,按照物理塊序號依次查詢各物理塊是否存在可用的物理頁,且對應(yīng)熱塊標志位為O的物理塊寫入數(shù)據(jù),并將該物理塊設(shè)置為活動物理塊。
【文檔編號】G06F3/06GK104317527SQ201410513237
【公開日】2015年1月28日 申請日期:2014年9月29日 優(yōu)先權(quán)日:2014年9月29日
【發(fā)明者】潘立陽, 鄒宏飛, 麻昊志, 高忠義 申請人:清華大學(xué)深圳研究生院