存儲器的數(shù)據(jù)校驗方法
【專利摘要】一種存儲器的數(shù)據(jù)校驗方法,包括:對目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行首次錯誤檢查和糾正;若所述首次錯誤檢查和糾正發(fā)現(xiàn)可糾正的錯誤,輸出原始數(shù)據(jù)和已進(jìn)行糾錯的標(biāo)識信號,并對所述目標(biāo)存儲區(qū)域進(jìn)行擦除操作;將所述原始數(shù)據(jù)和所述原始數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù)重新寫入所述目標(biāo)存儲區(qū)域;對所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行再次錯誤檢查和糾正;若所述再次錯誤檢查和糾正發(fā)現(xiàn)可糾正的錯誤,輸出原始數(shù)據(jù)和已進(jìn)行糾錯的標(biāo)識信號。本發(fā)明提供的存儲器的數(shù)據(jù)校驗方法能夠提高存儲器的數(shù)據(jù)的可靠性。
【專利說明】存儲器的數(shù)據(jù)校驗方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲器【技術(shù)領(lǐng)域】,特別涉及一種存儲器的數(shù)據(jù)校驗方法。
【背景技術(shù)】
[0002]由于存儲器的制造工藝不能保證存儲陣列在其生命周期中保持性能的可靠,因而在存儲器的生產(chǎn)及使用過程中會產(chǎn)生壞塊。為了檢測數(shù)據(jù)的可靠性,在應(yīng)用存儲器的系統(tǒng)中通常會采用一定的壞區(qū)管理策略,而管理壞區(qū)的前提是能比較可靠的進(jìn)行壞區(qū)檢測。如果操作時序和電路穩(wěn)定性不存在問題的話,存儲器出錯的時候一般不會造成整個存儲陣列不能讀取或是全部出錯,而是只有一個或幾個比特位出錯。數(shù)據(jù)校驗通常包括奇偶校驗、CRC校驗等,而在存儲器處理中,一般使用錯誤檢查和糾正(ECC, Error Correcting Code)對數(shù)據(jù)進(jìn)行校驗。
[0003]具體地,對存儲器進(jìn)行編程操作時,按照一定的算法對原始數(shù)據(jù)進(jìn)行編碼以獲得所述原始數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù),將所述原始數(shù)據(jù)和所述校驗數(shù)據(jù)寫入存儲陣列的目標(biāo)存儲區(qū)域。圖1是現(xiàn)有存儲器的數(shù)據(jù)校驗方法的流程示意圖,需要獲取所述原始數(shù)據(jù)時,執(zhí)行步驟SlO:對所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行錯誤檢查和糾正;若所述錯誤檢查和糾正未發(fā)現(xiàn)錯誤,執(zhí)行步驟Sll:輸出原始數(shù)據(jù)和未進(jìn)行糾錯的標(biāo)識信號;若所述錯誤檢查和糾正發(fā)現(xiàn)可糾正的錯誤,執(zhí)行步驟S12:輸出原始數(shù)據(jù)和已進(jìn)行糾錯的標(biāo)識信號;若所述錯誤檢查和糾正發(fā)現(xiàn)不可糾正的錯誤,執(zhí)行步驟S13:輸出警示信號。
[0004]ECC能糾正N比特錯誤和檢測(N+1)比特錯誤,而且計算速度很快,但對N比特以上的錯誤無法糾正,對(N+1)比特以上的錯誤不保證能檢測,N為正整數(shù),通常N的取值為I。然而,采用現(xiàn)有存儲器的數(shù)據(jù)校驗方法僅能對可糾正的錯誤進(jìn)行糾正,不能對錯誤數(shù)據(jù)進(jìn)行修復(fù),存儲器的數(shù)據(jù)可靠性低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明解決是現(xiàn)有的數(shù)據(jù)校驗方法不能對數(shù)據(jù)進(jìn)行修復(fù)的問題。
[0006]為解決上述問題,本發(fā)明提供一種存儲器的數(shù)據(jù)校驗方法,包括:
[0007]對目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行首次錯誤檢查和糾正;
[0008]若所述首次錯誤檢查和糾正發(fā)現(xiàn)可糾正的錯誤,輸出原始數(shù)據(jù)和已進(jìn)行糾錯的標(biāo)識信號,并對所述目標(biāo)存儲區(qū)域進(jìn)行擦除操作;
[0009]將所述原始數(shù)據(jù)和所述原始數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù)重新寫入所述目標(biāo)存儲區(qū)域;
[0010]對所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行再次錯誤檢查和糾正;
[0011]若所述再次錯誤檢查和糾正發(fā)現(xiàn)可糾正的錯誤,輸出原始數(shù)據(jù)和已進(jìn)行糾錯的標(biāo)識信號。
[0012]可選的,所述存儲器的數(shù)據(jù)校驗方法還包括:
[0013]在所述對目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行首次錯誤檢查和糾正前,對所述原始數(shù)據(jù)進(jìn)行編碼以獲得所述校驗數(shù)據(jù),并將所述原始數(shù)據(jù)和所述校驗數(shù)據(jù)寫入所述目標(biāo)存儲區(qū)域。
[0014]可選的,所述存儲器的數(shù)據(jù)校驗方法還包括:
[0015]若所述首次錯誤檢查和糾正未發(fā)現(xiàn)錯誤,輸出原始數(shù)據(jù)和未進(jìn)行糾錯的標(biāo)識信號。
[0016]可選的,所述存儲器的數(shù)據(jù)校驗方法還包括:
[0017]若所述首次錯誤檢查和糾正發(fā)現(xiàn)不可糾正的錯誤,輸出警示信號。
[0018]可選的,所述存儲器的數(shù)據(jù)校驗方法還包括:
[0019]若所述再次錯誤檢查和糾正未發(fā)現(xiàn)錯誤,輸出原始數(shù)據(jù)和修復(fù)數(shù)據(jù)的標(biāo)識信號。
[0020]可選的,所述存儲器的數(shù)據(jù)校驗方法還包括:
[0021]若所述再次錯誤檢查和糾正發(fā)現(xiàn)不可糾正的錯誤,輸出警示信號。
[0022]可選的,所述校驗數(shù)據(jù)為漢明碼、BCH碼或者瑞德所羅門碼。
[0023]可選的,所述存儲器為閃存。
[0024]可選的,所述存儲器為EEPR0M。
[0025]可選的,所述存儲器包括至少一個字節(jié)存儲區(qū)域;
[0026]所述字節(jié)存儲區(qū)域包括照行方向排列的M條字線、按照列方向排列的L條位線、按照行方向排列的N條源線以及M行、L列呈矩陣排列的存儲單元,所述存儲單元包括柵極、漏極以及源極,M、L和N為正整數(shù);其中,
[0027]位于同一行的存儲單元的柵極連接至同一字線,位于每相鄰兩行的存儲單元的源極連接至同一源線,位于同一列的存儲單元的漏極連接至同一位線。
[0028]與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)方案具有以下優(yōu)點(diǎn):
[0029]本發(fā)明提供的存儲器的數(shù)據(jù)校驗方法,在對目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行首次ECC發(fā)現(xiàn)可糾正的錯誤時,擦除所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù),重新將原始數(shù)據(jù)和原始數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù)寫入所述目標(biāo)存儲區(qū)域,再次對所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行ECC。由于進(jìn)行了重新寫入,所述目標(biāo)存儲區(qū)域出現(xiàn)的錯誤數(shù)據(jù)可能被修復(fù),提高了存儲器的數(shù)據(jù)可靠性。
【專利附圖】
【附圖說明】
[0030]圖1是現(xiàn)有存儲器的數(shù)據(jù)校驗方法的流程示意圖;
[0031]圖2是本發(fā)明實施例的相鄰兩個EEPROM存儲單元的剖面結(jié)構(gòu)示意圖;
[0032]圖3是本發(fā)明實施例的字節(jié)存儲區(qū)域的電路圖;
[0033]圖4是本發(fā)明實施例的存儲器的數(shù)據(jù)校驗方法的流程示意圖。
【具體實施方式】
[0034]正如【背景技術(shù)】中所描述的,為了提高存儲器的數(shù)據(jù)可靠性,現(xiàn)有技術(shù)中將原始數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù)也存入目標(biāo)存儲區(qū)域。需要獲取原始數(shù)據(jù)時,對所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行ECC,從而可以獲取正確的數(shù)據(jù)?,F(xiàn)有的數(shù)據(jù)校驗方法采用ECC可以糾正N比特錯誤,即原始數(shù)據(jù)在傳輸或者存儲過程中有N比特發(fā)生錯誤,經(jīng)過數(shù)據(jù)校驗仍可以獲得原始數(shù)據(jù)。然而,由于ECC對N比特以上的錯誤無法糾正,若原始數(shù)據(jù)在傳輸或者存儲過程中再有其他比特出錯,則不能再獲取原始數(shù)據(jù)。
[0035]本發(fā)明提供一種存儲器的數(shù)據(jù)校驗方法,通過在ECC發(fā)現(xiàn)可糾正的錯誤時對目標(biāo)存儲區(qū)域重新寫入原始數(shù)據(jù)和原始數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù),對目標(biāo)存儲區(qū)域進(jìn)行物理修復(fù),提高存儲器的數(shù)據(jù)可靠性。
[0036]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施例做詳細(xì)的說明。需要說明的是,本發(fā)明提供的存儲器的數(shù)據(jù)校驗方法適用于所有類型的存儲器,尤其適用于閃存和EEPR0M。在本發(fā)明實施例中,以一種具體的EEPROM結(jié)構(gòu)為例說明所述存儲器的數(shù)據(jù)校驗方法。
[0037]圖2是本發(fā)明實施例的相鄰兩個EEPROM存儲單元的剖面結(jié)構(gòu)示意圖,所述EEPROM存儲單元包括襯底20、漏極21、源極22、浮柵FG以及柵極。具體地,所述漏極21和源極22形成于所述襯底20的內(nèi)部,所述漏極21連接位于所述襯底20表面的位線BL,所述源極22連接位于所述襯底20表面的源線SL,所述柵極位于所述源線SL和所述位線BL之間,并與字線WL連接,所述浮柵FG位于所述柵極連接的字線WL與所述漏極21連接的位線BL之間的襯底表面。
[0038]本發(fā)明實施例提供一種存儲器的數(shù)據(jù)校驗方法,所述存儲器為EEPR0M,包括至少一個字節(jié)存儲區(qū)域。圖3是本發(fā)明實施例的字節(jié)存儲區(qū)域的電路圖,所述字節(jié)存儲區(qū)域包括照行方向排列的M條字線、按照列方向排列的L條位線、按照行方向排列的N條源線以及M行、L列呈矩陣排列的存儲單元,M、L和N為正整數(shù)。所述存儲單元的剖面結(jié)構(gòu)如圖2所示,在此不再贅述。
[0039]所述M條字線包括:字線WL1、字線WL2、字線WIA、字線WL4、…、字線WLsh、字線WLm ;所述L條位線包括:位線BL1、位線BL2、…、位線BLn、位線BI^ ;所述N條源線包括:源線SL1、源線SL2、…、源線SLn。
[0040]進(jìn)一步,位于同一行的存儲單元的柵極連接至同一字線,位于每相鄰兩行的存儲單元的源極連接至同一源線,位于同一列的存儲單元的漏極連接至同一位線。
[0041]具體地,位于第一行的存儲單元的柵極連接字線WL1,位于第二行的存儲單元的柵極連接字線WL2,位于第三行的存儲單元的柵極連接字線WL3,位于第四行的存儲單元的柵極連接字線WL4,…,位于第(M-1)行的存儲單元的柵極連接字線WLsh,位于第M行的存儲單元的柵極連接字線WLm ;位于第一行的存儲單元的源極和第二行的存儲單元的源極連接至源線SL1,位于第三行的存儲單元的源極和第四行的存儲單元的源極連接至源線SL2,…,位于第(M-1)行的存儲單元的源極和第M行的存儲單元的源極連接至源線SLn ;位于第一列的存儲單元的漏極連接至位線BL1,位于第二列的存儲單元的漏極連接至位線BL2,…,位于第(L-1)列的存儲單元的漏極連接至位線BLh,位于第L列的存儲單元的漏極連接至位線BLl。
[0042]圖4是本發(fā)明實施例的存儲器的數(shù)據(jù)校驗方法的流程示意圖。
[0043]執(zhí)行步驟S40,對目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行首次錯誤檢查和糾正。具體地,為對存儲器的數(shù)據(jù)進(jìn)行校驗,對所述存儲器進(jìn)行編程操作時,按照一定的算法對原始數(shù)據(jù)進(jìn)行編碼以獲得所述原始數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù),并將所述校驗數(shù)據(jù)與所述原始數(shù)據(jù)一起寫入所述字節(jié)存儲區(qū)域中的目標(biāo)存儲區(qū)域。需要說明的是,對所述原始數(shù)據(jù)進(jìn)行編碼有多種編碼方式,所述校驗數(shù)據(jù)可以為漢明碼、BCH碼或者瑞德所羅門碼。本領(lǐng)域技術(shù)人員知曉每種編碼方式的編碼規(guī)則,在此不再贅述。當(dāng)操作實體(例如CPU等)需要獲取所述原始數(shù)據(jù)時,對所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行首次ECC。ECC的具體方法與對所述原始數(shù)據(jù)進(jìn)行編碼的編碼方式對應(yīng),即對所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行解碼,本領(lǐng)域技術(shù)人員知曉如何進(jìn)行ECC,在此不再贅述。
[0044]若首次ECC未發(fā)現(xiàn)錯誤,表示原始數(shù)據(jù)在傳輸或者存儲過程中均未出錯,則執(zhí)行步驟S41,輸出原始數(shù)據(jù)和未進(jìn)行糾錯的標(biāo)識信號。所述未進(jìn)行糾錯的標(biāo)識信號可以用二進(jìn)制數(shù)據(jù)表示,具體形式可根據(jù)實際需求進(jìn)行設(shè)置。例如,可以用一位二進(jìn)制數(shù)據(jù)“O”表示所述未進(jìn)行糾錯的標(biāo)識信號。
[0045]若首次ECC發(fā)現(xiàn)不可糾正的錯誤,表示原始數(shù)據(jù)在傳輸或者存儲過程中較多比特位出錯導(dǎo)致ECC不能糾正且無法輸出原始數(shù)據(jù),則執(zhí)行步驟S42,輸出警示信號。所述警示信號可以用聲音、圖像等方式表示,具體形式可根據(jù)實際需求進(jìn)行設(shè)置。例如,可以用字符“ERROR”表示所述警示信號。
[0046]若首次ECC發(fā)現(xiàn)可糾正的錯誤,表示原始數(shù)據(jù)在傳輸或者存儲過程中較少比特位出錯且出錯的比特位能夠被ECC糾正,則執(zhí)行步驟S43,輸出原始數(shù)據(jù)和已進(jìn)行糾錯的標(biāo)識信號,并對所述目標(biāo)存儲區(qū)域進(jìn)行擦除操作。所述已進(jìn)行糾錯的標(biāo)識信號也可以用二進(jìn)制數(shù)據(jù)表示,具體形式可根據(jù)實際需求進(jìn)行設(shè)置,只要與所述未進(jìn)行糾錯的標(biāo)識信號區(qū)分開即可。例如,可以用一位二進(jìn)制數(shù)據(jù)“I”表示所述未進(jìn)行糾錯的標(biāo)識信號。
[0047]對所述目標(biāo)存儲區(qū)域進(jìn)行擦除操作后,所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)被清空,執(zhí)行步驟S44,將所述原始數(shù)據(jù)和所述原始數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù)重新寫入所述目標(biāo)存儲區(qū)域。具體地,根據(jù)步驟S43輸出的原始數(shù)據(jù),可以獲得所述原始數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù),將所述原始數(shù)據(jù)和所述原始數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù)重新寫入所述目標(biāo)存儲區(qū)域。
[0048]執(zhí)行步驟S45,對所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行再次錯誤檢查和糾正。再次ECC的具體方法與首次ECC的具體方法相同,都是對所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行解碼,在此不再進(jìn)行詳細(xì)說明。
[0049]若再次ECC未發(fā)現(xiàn)錯誤,表示出現(xiàn)錯誤的比特位經(jīng)過重新寫入后已經(jīng)被修復(fù),則執(zhí)行步驟S46,輸出原始數(shù)據(jù)和修復(fù)數(shù)據(jù)的標(biāo)識信號。所述修復(fù)數(shù)據(jù)的標(biāo)識信號也可以用二進(jìn)制數(shù)據(jù)表示,具體形式可根據(jù)實際需求進(jìn)行設(shè)置。例如,可以用兩位二進(jìn)制數(shù)據(jù)“10”表示所述修復(fù)數(shù)據(jù)的標(biāo)識信號。
[0050]若再次ECC發(fā)現(xiàn)不可糾正的錯誤,表示經(jīng)過重新寫入后較多比特位出錯導(dǎo)致ECC不能糾正且無法輸出原始數(shù)據(jù),則執(zhí)行步驟S47,輸出警示信號。
[0051]若再次ECC發(fā)現(xiàn)可糾正的錯誤,表示經(jīng)過重新寫入后較少比特位出錯且出錯的比特位能夠被ECC糾正,則執(zhí)行步驟S48,輸出原始數(shù)據(jù)和已進(jìn)行糾錯的標(biāo)識信號。
[0052]需要說明的是,步驟S41、步驟S42、步驟S46以及步驟S47并非本發(fā)明實施例的必要步驟。在首次ECC和再次ECC未發(fā)現(xiàn)錯誤或者發(fā)現(xiàn)不可糾正的錯誤,也可以采用其他處理方式,本發(fā)明對此不作限定。
[0053]本發(fā)明實施例提供的存儲器的數(shù)據(jù)校驗方法,通過在首次ECC發(fā)現(xiàn)可糾正的錯誤時,擦除所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù),重新將原始數(shù)據(jù)和原始數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù)寫入所述目標(biāo)存儲區(qū)域,再次對所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行ECC,提高了存儲器的數(shù)據(jù)可靠性。
[0054]雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。
【權(quán)利要求】
1.一種存儲器的數(shù)據(jù)校驗方法,其特征在于,包括: 對目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行首次錯誤檢查和糾正; 若所述首次錯誤檢查和糾正發(fā)現(xiàn)可糾正的錯誤,輸出原始數(shù)據(jù)和已進(jìn)行糾錯的標(biāo)識信號,并對所述目標(biāo)存儲區(qū)域進(jìn)行擦除操作; 將所述原始數(shù)據(jù)和所述原始數(shù)據(jù)對應(yīng)的校驗數(shù)據(jù)重新寫入所述目標(biāo)存儲區(qū)域; 對所述目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行再次錯誤檢查和糾正; 若所述再次錯誤檢查和糾正發(fā)現(xiàn)可糾正的錯誤,輸出原始數(shù)據(jù)和已進(jìn)行糾錯的標(biāo)識信號。
2.如權(quán)利要求1所述的存儲器的數(shù)據(jù)校驗方法,其特征在于,還包括: 在所述對目標(biāo)存儲區(qū)域存儲的數(shù)據(jù)進(jìn)行首次錯誤檢查和糾正前,對所述原始數(shù)據(jù)進(jìn)行編碼以獲得所述校驗數(shù)據(jù),并將所述原始數(shù)據(jù)和所述校驗數(shù)據(jù)寫入所述目標(biāo)存儲區(qū)域。
3.如權(quán)利要求1所述的存儲器的數(shù)據(jù)校驗方法,其特征在于,還包括: 若所述首次錯誤檢查和糾正未發(fā)現(xiàn)錯誤,輸出原始數(shù)據(jù)和未進(jìn)行糾錯的標(biāo)識信號。
4.如權(quán)利要求1所述的存儲器的數(shù)據(jù)校驗方法,其特征在于,還包括: 若所述首次錯誤檢查和糾正發(fā)現(xiàn)不可糾正的錯誤,輸出警示信號。
5.如權(quán)利要求1所述的存儲器的數(shù)據(jù)校驗方法,其特征在于,還包括: 若所述再次錯誤檢查和糾正未發(fā)現(xiàn)錯誤,輸出原始數(shù)據(jù)和修復(fù)數(shù)據(jù)的標(biāo)識信號。
6.如權(quán)利要求1所述的存儲器的數(shù)據(jù)校驗方法,其特征在于,還包括: 若所述再次錯誤檢查和糾正發(fā)現(xiàn)不可糾正的錯誤,輸出警示信號。
7.如權(quán)利要求1所述的存儲器的數(shù)據(jù)校驗方法,其特征在于,所述校驗數(shù)據(jù)為漢明碼、BCH碼或者瑞德所羅門碼。
8.如權(quán)利要求1所述的存儲器的數(shù)據(jù)校驗方法,其特征在于,所述存儲器為閃存。
9.如權(quán)利要求1所述的存儲器的數(shù)據(jù)校驗方法,其特征在于,所述存儲器為EEPROM。
10.如權(quán)利要求9所述的存儲器的數(shù)據(jù)校驗方法,其特征在于,所述存儲器包括至少一個字節(jié)存儲區(qū)域; 所述字節(jié)存儲區(qū)域包括照行方向排列的Μ條字線、按照列方向排列的L條位線、按照行方向排列的Ν條源線以及Μ行、L列呈矩陣排列的存儲單元,所述存儲單元包括柵極、漏極以及源極,M、L和Ν為正整數(shù);其中, 位于同一行的存儲單元的柵極連接至同一字線,位于每相鄰兩行的存儲單元的源極連接至同一源線,位于同一列的存儲單元的漏極連接至同一位線。
【文檔編號】G11C29/42GK104269190SQ201410425717
【公開日】2015年1月7日 申請日期:2014年8月26日 優(yōu)先權(quán)日:2014年8月26日
【發(fā)明者】顧靖, 張永福 申請人:上海華虹宏力半導(dǎo)體制造有限公司