一種嵌入式存儲(chǔ)器的數(shù)據(jù)保護(hù)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于存儲(chǔ)器技術(shù)領(lǐng)域,尤其涉及一種嵌入式存儲(chǔ)器的數(shù)據(jù)保護(hù)方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有的嵌入式存儲(chǔ)器,如eMMC等,在經(jīng)過表面組裝技術(shù)(Surface MountTechnology, SMT)之后,由于回流爐的高溫,會(huì)造成嵌入式存儲(chǔ)器中某些寫入有數(shù)據(jù)的存儲(chǔ)塊的錯(cuò)誤比特?cái)?shù)顯著上升,從而使得預(yù)先寫入所述嵌入式存儲(chǔ)器的數(shù)據(jù)變得不穩(wěn)定,進(jìn)而影響嵌入式存儲(chǔ)器性能的穩(wěn)定性。
【發(fā)明內(nèi)容】
[0003]鑒于此,本發(fā)明實(shí)施例提供一種嵌入式存儲(chǔ)器的數(shù)據(jù)保護(hù)方法及裝置,以解決預(yù)先寫有數(shù)據(jù)的嵌入式存儲(chǔ)器在經(jīng)過SMT工藝過爐之后錯(cuò)誤比特?cái)?shù)上升造成預(yù)先寫入嵌入式存儲(chǔ)器的數(shù)據(jù)不穩(wěn)定,從而使得嵌入式存儲(chǔ)器的性能不穩(wěn)定的問題。
[0004]第一方面,本發(fā)明實(shí)施例提供了一種嵌入式存儲(chǔ)器的數(shù)據(jù)保護(hù)方法,所述嵌入式存儲(chǔ)器至少包括一多層單元閃存,所述方法包括:
[0005]在嵌入式存儲(chǔ)器上電后,選取所述嵌入式存儲(chǔ)器中有效數(shù)據(jù)量大于或等于第一閾值的存儲(chǔ)塊作為校驗(yàn)塊,并對所述校驗(yàn)塊進(jìn)行ECC校驗(yàn);
[0006]將校驗(yàn)后錯(cuò)誤比特?cái)?shù)大于或等于第二閾值的校驗(yàn)塊或者出現(xiàn)重讀的校驗(yàn)塊標(biāo)記為問題塊,并對所述問題塊上的有效數(shù)據(jù)進(jìn)行預(yù)替換。
[0007]第二方面,本發(fā)明實(shí)施例提供了一種嵌入式存儲(chǔ)器的數(shù)據(jù)保護(hù)裝置,所述嵌入式存儲(chǔ)器至少包括一多層單元閃存,所述裝置包括:
[0008]校驗(yàn)單元,用于在嵌入式存儲(chǔ)器上電后,選取所述嵌入式存儲(chǔ)器中有效數(shù)據(jù)量大于或等于第一閾值的存儲(chǔ)塊作為校驗(yàn)塊,并對所述校驗(yàn)塊進(jìn)行ECC校驗(yàn);
[0009]替換單元,用于將校驗(yàn)后錯(cuò)誤比特?cái)?shù)大于或等于第二閾值的校驗(yàn)塊或者出現(xiàn)重讀的校驗(yàn)塊標(biāo)記為問題塊,并對所述問題塊上的有效數(shù)據(jù)進(jìn)行預(yù)替換。
[0010]本發(fā)明實(shí)施例與現(xiàn)有技術(shù)相比存在的有益效果是:本發(fā)明實(shí)施例通過對錯(cuò)誤比特?cái)?shù)達(dá)到第二閾值的存儲(chǔ)塊上的數(shù)據(jù)或者出現(xiàn)重讀的閃存塊上的數(shù)據(jù)進(jìn)行預(yù)替換,能大大減少嵌入式存儲(chǔ)器中存儲(chǔ)塊上數(shù)據(jù)出錯(cuò)的概率,從而有效提高嵌入式存儲(chǔ)器性能的穩(wěn)定性,具有較強(qiáng)的易用性和實(shí)用性。
【附圖說明】
[0011]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0012]圖1是本發(fā)明實(shí)施例提供的嵌入式存儲(chǔ)器的數(shù)據(jù)保護(hù)方法的實(shí)現(xiàn)流程示意圖;
[0013]圖2是本發(fā)明實(shí)施例提供的嵌入式存儲(chǔ)器的數(shù)據(jù)保護(hù)裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0014]以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、技術(shù)之類的具體細(xì)節(jié),以便透切理解本發(fā)明實(shí)施例。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,在沒有這些具體細(xì)節(jié)的其它實(shí)施例中也可以實(shí)現(xiàn)本發(fā)明。在其它情況中,省略對眾所周知的系統(tǒng)、裝置、電路以及方法的詳細(xì)說明,以免不必要的細(xì)節(jié)妨礙本發(fā)明的描述。
[0015]為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。
[0016]圖1為本發(fā)明實(shí)施例提供的嵌入式存儲(chǔ)器的數(shù)據(jù)保護(hù)方法的實(shí)現(xiàn)流程,其主要包括以下步驟:
[0017]在步驟SlOl中,在嵌入式存儲(chǔ)器上電后,選取所述嵌入式存儲(chǔ)器中有效數(shù)據(jù)量大于或等于第一閾值的存儲(chǔ)塊作為校驗(yàn)塊,并對所述校驗(yàn)塊進(jìn)行ECC校驗(yàn)。
[0018]示例性的,本發(fā)明實(shí)施例可以選取有效數(shù)據(jù)量大于或等于50%的存儲(chǔ)塊作為校驗(yàn)塊,并對所述校驗(yàn)塊進(jìn)行錯(cuò)誤檢查和糾正(Error Correcting Code,ECC)校驗(yàn)。其中50%只是舉例說明,在此并不用以限定本發(fā)明。
[0019]需要說明的是,本發(fā)明實(shí)施例所述有效數(shù)據(jù)是相對無效數(shù)據(jù)而言的,本領(lǐng)域技術(shù)人員可以理解的,由于閃存的特性,某些存儲(chǔ)塊在寫入一定數(shù)據(jù)量之后才會(huì)更穩(wěn)定,所以在寫入一些有效數(shù)據(jù)之后,會(huì)填充一些無效的數(shù)據(jù);還有一些閃存頁上面的數(shù)據(jù)因?yàn)橹匦聦戇^之后,閃存只能整塊擦除,所以無效數(shù)據(jù)還會(huì)繼續(xù)留在閃存頁上。
[0020]另外,所述嵌入式存儲(chǔ)器包括控制器和閃存,所述閃存至少包括一多層單元閃存。
[0021]由于單層單元閃存(Single-Level Cell,SLC)(每個(gè)單元(cell)存儲(chǔ)一個(gè)位(bit)的信息)中所有的頁均穩(wěn)定可靠,多層單元閃存(Mult1-Level Cell,MLC)(每個(gè)單元(cell)至少存儲(chǔ)兩個(gè)位(bit)的信息)中部分頁穩(wěn)定可靠。這里稱多層單元閃存中穩(wěn)定可靠的頁為最低有效位頁,其他頁為非最低有效位頁。在本發(fā)明實(shí)施例中,為了便于理解,把單層單元閃存中的存儲(chǔ)塊以及多層單元閃存中只在最低有效位頁中寫入數(shù)據(jù)的存儲(chǔ)塊稱為SLC塊;多層單元閃存中既在最低有效位頁寫入數(shù)據(jù)也在非最低有效位頁上寫入數(shù)據(jù)的存儲(chǔ)塊稱為MLC塊。為了提高效率,由于SLC塊中的數(shù)據(jù)穩(wěn)定可靠,即使所述SLC塊中的有效數(shù)據(jù)量達(dá)到第一閾值也不作為校驗(yàn)塊,因此本發(fā)明實(shí)施例可以只選取所述多層單元閃存中有效數(shù)據(jù)量大于或等于第一閾值的存儲(chǔ)塊作為校驗(yàn)塊。
[0022]在步驟S102中,將校驗(yàn)后錯(cuò)誤比特?cái)?shù)大于或等于第二閾值的校驗(yàn)塊或者出現(xiàn)重讀的校驗(yàn)塊標(biāo)記為問題塊,并對所述問題塊上的有效數(shù)據(jù)進(jìn)行預(yù)替換。
[0023]其中,所述重讀是指在ECC校驗(yàn)失敗后,通過預(yù)設(shè)的閃存指令調(diào)整參考電壓,重新讀取存儲(chǔ)塊中的有效數(shù)據(jù)。
[0024]示例性的,本發(fā)明實(shí)施例所述第二閾值可以設(shè)定為ECC最大值的1/2。其中1/2只是舉例說明,在此并不用以限定本發(fā)明。
[0025]另外,在本發(fā)明實(shí)施例中,所述對所述問題塊上的有效數(shù)據(jù)進(jìn)行預(yù)替換可以包括:
[0026]選取所述嵌入式存儲(chǔ)器中空的存儲(chǔ)塊作為替換塊;
[0027]將所述問題塊上的有效數(shù)據(jù)搬移到所述替換塊。
[0028]其中,所述空的存儲(chǔ)塊指的是未寫入任何數(shù)據(jù)的存儲(chǔ)塊或者寫入數(shù)據(jù)后又擦除為空的存儲(chǔ)塊。
[0029]優(yōu)選的是,本發(fā)明實(shí)施例可以在所述嵌入式存儲(chǔ)器空閑時(shí)對所述問題塊上的有效數(shù)據(jù)進(jìn)行預(yù)替換;所述嵌入式存儲(chǔ)器空閑是指所述嵌入式存儲(chǔ)器不需要執(zhí)行所述主機(jī)的命令。
[0030]進(jìn)一步的,本發(fā)明實(shí)施例在將校驗(yàn)后錯(cuò)誤比特?cái)?shù)大于或等于第二閾值的校驗(yàn)塊或者出現(xiàn)重讀的校驗(yàn)塊標(biāo)記為問題塊之后,還包括:
[0031]檢測連續(xù)出現(xiàn)問題塊的個(gè)數(shù);
[0032]在連續(xù)出現(xiàn)問題塊的個(gè)數(shù)大于或等于第三閾值時(shí),將所述嵌入式存儲(chǔ)器中所有寫入有效數(shù)據(jù)的MLC塊標(biāo)記為問題塊,所述MLC塊是指多層單元閃存中既在最低有效位頁寫入數(shù)據(jù)也在非最低有效位頁上寫入數(shù)據(jù)的存儲(chǔ)塊。
[0033]例如,可以設(shè)定在所述嵌入式存儲(chǔ)器上電后連續(xù)檢測到3個(gè)或3個(gè)以上的問題塊時(shí),將所述嵌入式存儲(chǔ)器中所有寫入有效數(shù)據(jù)的MLC塊標(biāo)記為問題塊,并對所述問題塊上的有效數(shù)據(jù)進(jìn)行預(yù)替換。
[0034]作為本發(fā)明的另一較佳實(shí)施例,本發(fā)明實(shí)施例在將所述問題塊上的有效數(shù)據(jù)搬移到所述替換塊之后,還可以包括:
[0035]對搬移到所述替換塊上的有效數(shù)據(jù)進(jìn)行ECC校驗(yàn),判斷搬移到所述替換塊上的有效數(shù)據(jù)的錯(cuò)誤比特?cái)?shù)是否小于第二閾值,若是,則擦除該問題塊;若否,將該替換塊標(biāo)記為壞塊,并將該問題塊上的有效數(shù)據(jù)搬移到新的替換塊。
[0036]重復(fù)執(zhí)行上述步驟,直到搬移到所述替換塊上的有效數(shù)據(jù)的錯(cuò)誤比特?cái)?shù)小于第二閾值或者全部空的存儲(chǔ)塊都替換完。
[0037]進(jìn)一步的,由于頻繁的讀寫、擦除會(huì)影響存儲(chǔ)塊的使用壽命,從而影響嵌入式存儲(chǔ)器的使用壽命,為了減少預(yù)替換對嵌入式存儲(chǔ)器使用壽命的影響,本發(fā)明實(shí)施例還包括:
[0038]在嵌入式存儲(chǔ)器上電后,檢測所述嵌入式存儲(chǔ)器的上電次數(shù),當(dāng)所述嵌入式存儲(chǔ)器的上電次數(shù)小于第四閾值(例如100次)時(shí),執(zhí)行上述步驟SlOl和步驟S102;當(dāng)檢測到所述嵌入式存儲(chǔ)器上電次數(shù)大于或等于第四閾值時(shí),不執(zhí)行上述步驟SlOl和步驟S102。
[0039]進(jìn)一步的,本發(fā)明實(shí)施例還可以包括:當(dāng)所述嵌入式存儲(chǔ)器中所有寫入有有效數(shù)據(jù)的MLC塊都進(jìn)行了 ECC校驗(yàn),且對所有標(biāo)記為問題塊上的有效數(shù)據(jù)全部完成了預(yù)替換操作之后,不執(zhí)行上述步驟SlOl和步驟S102。
[0040]另外,應(yīng)理解,上述實(shí)施例中各步驟的序號(hào)的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實(shí)施例的實(shí)施過程構(gòu)成任何限定。
[0041]圖2為本發(fā)明實(shí)施例提供的嵌入式存儲(chǔ)器的數(shù)據(jù)保護(hù)裝置的結(jié)構(gòu)示意圖。為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。
[0042]所述嵌入式存儲(chǔ)器的數(shù)據(jù)保護(hù)裝置包括:校驗(yàn)單元21以及替換單元22。所述嵌入式存儲(chǔ)器的數(shù)據(jù)保護(hù)裝置可以是內(nèi)置于嵌入式存儲(chǔ)器(所述嵌入式存儲(chǔ)器至少包括一多層單元閃存)內(nèi)的軟件單元、硬件單元或者是軟硬結(jié)合的單元。
[0043]所述校驗(yàn)單元21,用于在嵌入式存儲(chǔ)器上電后,選取所述嵌入式存儲(chǔ)器中有效數(shù)據(jù)量大于或等于第一閾值的存儲(chǔ)塊作為校驗(yàn)塊,并對所述校驗(yàn)塊進(jìn)行ECC校驗(yàn);
[0044]所述替換單元22,用于將校驗(yàn)后錯(cuò)誤比特?cái)?shù)大于或等于第二閾值的校驗(yàn)塊或者出現(xiàn)重讀的校驗(yàn)塊標(biāo)記為問題塊,并對所述問題塊上的有效數(shù)據(jù)進(jìn)行預(yù)替換。
[0045]進(jìn)一步的,所述替換單元22包括:
[0046]選取模塊221,用于選取所述嵌入式存儲(chǔ)器中空的存儲(chǔ)塊作為替換塊;
[0047]替換模塊222,用于將所述問題塊上的有效數(shù)據(jù)搬移到所述替換塊。
[0