国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種nand閃存及其數(shù)據(jù)的校驗(yàn)方法和裝置的制作方法

      文檔序號(hào):6581345閱讀:151來(lái)源:國(guó)知局
      專利名稱:一種nand閃存及其數(shù)據(jù)的校驗(yàn)方法和裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于存儲(chǔ)器領(lǐng)域,尤其涉及一種NAND閃存及其數(shù)據(jù)的校驗(yàn)方法和裝置。
      背景技術(shù)
      由于NAND閃存的工藝不能保證NAND閃存內(nèi)的存儲(chǔ)排列(MemoryArray)在其生命 周期中保持性能的可靠性,因此,在NAN型閃存的生產(chǎn)和使用過(guò)程中會(huì)產(chǎn)生壞塊。當(dāng)操作 時(shí)序和電路穩(wěn)定性較差時(shí),如果NAND閃存存在壞塊,則可能將造成整個(gè)閃存塊或者閃存頁(yè) 不能讀取或者全部出錯(cuò),則NAND如果操作時(shí)序和電路穩(wěn)定性較好,一般存在壞塊的閃存頁(yè) (如512字節(jié))中只有一個(gè)或者幾個(gè)位的數(shù)據(jù)將出錯(cuò)。在NAND閃存處理中,一般采用錯(cuò)誤 檢查和糾正算法(Error Checking and Correction, ECC)來(lái)檢查甚至糾正NAND閃存中存 在的錯(cuò)誤?,F(xiàn)有技術(shù)提供了 ECC的硬件實(shí)現(xiàn)電路,該ECC的硬件實(shí)現(xiàn)電路可以糾正NAND閃存 中的單比特錯(cuò)誤和檢測(cè)雙比特錯(cuò)誤,而且計(jì)算速度快,但對(duì)1比特以上的錯(cuò)誤無(wú)法糾正,對(duì) 2比特以上的錯(cuò)誤不保證能檢測(cè)。由于現(xiàn)有技術(shù)是通過(guò)硬件電路實(shí)現(xiàn)NAND閃存的ECC的, 其在制作和生產(chǎn)燒片文件時(shí),只能在開(kāi)發(fā)板上完成,因此,效率低,且由于無(wú)法移植到其他 平臺(tái)上完成,從而使得ECC校驗(yàn)的使用受到限制。

      發(fā)明內(nèi)容
      本發(fā)明實(shí)施例的目的在于提供一種NAND閃存中數(shù)據(jù)的校驗(yàn)方法,旨在解決現(xiàn)有 的硬件實(shí)現(xiàn)校驗(yàn)方法無(wú)法移植到其他平臺(tái)的問(wèn)題。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種NAND閃存中數(shù)據(jù)的校驗(yàn)方法,所述方法包括下 述步驟在向NAND閃存頁(yè)中寫(xiě)入數(shù)據(jù)時(shí),對(duì)寫(xiě)入的每256字節(jié)的數(shù)據(jù)分別進(jìn)行列校驗(yàn)和行 校驗(yàn),生成第一校驗(yàn)碼,所述第一校驗(yàn)碼包括第一列校驗(yàn)碼和第一行校驗(yàn)碼;在從NAND閃存頁(yè)中讀取數(shù)據(jù)時(shí),對(duì)從NAND閃存中讀取的每256字節(jié)的數(shù)據(jù)分別 進(jìn)行列校驗(yàn)和行校驗(yàn),生成第二校驗(yàn)碼,所述第二校驗(yàn)碼包括第二列校驗(yàn)碼和第二行校驗(yàn) 碼;將第一校驗(yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理,并根據(jù)異或處理結(jié)果判斷NAND 閃存中的數(shù)據(jù)是否出錯(cuò)。本發(fā)明實(shí)施例的另一目的在于提供一種NAND閃存中數(shù)據(jù)的校驗(yàn)裝置,所述裝置 包括第一校驗(yàn)碼生成單元,用于在向NAND閃存頁(yè)中寫(xiě)入數(shù)據(jù)時(shí),對(duì)寫(xiě)入的每256字節(jié) 的數(shù)據(jù)分別進(jìn)行列校驗(yàn)和行校驗(yàn),生成第一校驗(yàn)碼,所述第一校驗(yàn)碼包括第一列校驗(yàn)碼和 第一行校驗(yàn)碼;第二校驗(yàn)碼生成單元,用于在從NAND閃存頁(yè)中讀取數(shù)據(jù)時(shí),對(duì)從NAND閃存中讀取 的每256字節(jié)的數(shù)據(jù)分別進(jìn)行列校驗(yàn)和行校驗(yàn),生成第二校驗(yàn)碼,所述第二校驗(yàn)碼包括第二列校驗(yàn)碼和第二行校驗(yàn)碼;數(shù)據(jù)校驗(yàn)單元,用于將第一校驗(yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理,并根據(jù)異或 處理結(jié)果判斷NAND閃存中的數(shù)據(jù)是否出錯(cuò)。本發(fā)明實(shí)施例的另一目的在于提供一種NAND閃存,所述閃存包括所述NAND閃存 中數(shù)據(jù)的校驗(yàn)裝置。在本發(fā)明實(shí)施例中,通過(guò)根據(jù)上述方法流程執(zhí)行的軟件來(lái)實(shí)現(xiàn)NAND閃存中的數(shù) 據(jù)進(jìn)行校驗(yàn),在制作NAND閃存的映像文件時(shí),通過(guò)為數(shù)據(jù)增加該根據(jù)上述方法流程執(zhí)行的 數(shù)據(jù)校驗(yàn)軟件,即可實(shí)現(xiàn)對(duì)NAND閃存的數(shù)據(jù)的校驗(yàn),該校驗(yàn)方法由于通過(guò)軟件實(shí)現(xiàn),從而 與平臺(tái)無(wú)關(guān),使其可適用于任何平臺(tái)。


      圖1是本發(fā)明實(shí)施例提供的NAND閃存中數(shù)據(jù)的校驗(yàn)方法的實(shí)現(xiàn)流程圖;圖2是本發(fā)明實(shí)施例提供的列校驗(yàn)規(guī)則的示例圖;圖3是本發(fā)明實(shí)施例提供的行校驗(yàn)規(guī)則的示例圖;圖4是本發(fā)明實(shí)施例提供的NAND閃存中數(shù)據(jù)的校驗(yàn)裝置的結(jié)構(gòu)框圖。
      具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。在本發(fā)明實(shí)施例中,在向NAND閃存頁(yè)中寫(xiě)入數(shù)據(jù)時(shí),根據(jù)寫(xiě)入的每256字節(jié)的數(shù) 據(jù)生成第一校驗(yàn)碼,該第一校驗(yàn)碼包括第一行校驗(yàn)碼與第二列校驗(yàn)碼,在從NAND閃存頁(yè)中 讀取數(shù)據(jù)時(shí),根據(jù)從NAND閃存中讀取的每256字節(jié)的數(shù)據(jù)生成第二校驗(yàn)碼,該第二校驗(yàn)碼 包括第二行校驗(yàn)碼與第二列校驗(yàn)碼,將第一校驗(yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理,并根 據(jù)異或處理結(jié)果判斷NAND閃存中的數(shù)據(jù)是否出錯(cuò)。圖1示出了本發(fā)明實(shí)施例提供的NAND閃存中數(shù)據(jù)的校驗(yàn)方法的實(shí)現(xiàn)流程,詳述如 下在步驟SlOl中,在向NAND閃存頁(yè)中寫(xiě)入數(shù)據(jù)時(shí),對(duì)寫(xiě)入的每256字節(jié)的數(shù)據(jù)分別 進(jìn)行列校驗(yàn)和行校驗(yàn),生成第一校驗(yàn)碼,該第一校驗(yàn)碼包括第一列校驗(yàn)碼和第一行校驗(yàn)碼。其中對(duì)寫(xiě)入的每256字節(jié)的數(shù)據(jù)進(jìn)行列校驗(yàn)的步驟具體如下請(qǐng)參閱圖2,為本發(fā)明實(shí)施例提供的列校驗(yàn)規(guī)則的示例圖,詳述如下A、將寫(xiě)入的每256字節(jié)的數(shù)據(jù)排列成256行和8列的矩陣,矩陣中每個(gè)元素代表 256字節(jié)中的一個(gè)比特位。B、采用預(yù)設(shè)的列校驗(yàn)規(guī)則對(duì)矩陣中的比特位進(jìn)行列校驗(yàn),生成第一列校驗(yàn)碼,其 中預(yù)設(shè)的列校驗(yàn)規(guī)則具體為Bi、對(duì)上述矩陣中異或處理1列的比特位再跳過(guò)1列的比特位,循環(huán)進(jìn)行,直到矩 陣中所有列均處理完畢,生成對(duì)應(yīng)的列極性碼;如可采用下述列極性生成公式表示CPO = BitO"Bit2"Bit4"Bit6 ;其中 CPO 為生成的列極性碼。BitO、Bit2、Bit4、Bit6 分別為上述矩陣中的第0列、第2列、第4列、第6列中的比特位。符號(hào)表示進(jìn)行異或處理。因此公式CPO = BitO"Bit2"Bit4"Bit6是指將該矩陣中第0列、第2列、第4列和第 6列中的所有比特位進(jìn)行異或處理,得到對(duì)應(yīng)的列極性碼。即CPO實(shí)際是256*4 = 1024個(gè) 比特位進(jìn)行異或處理后生成的列極性碼。B2、對(duì)上述矩陣中跳過(guò)1列的比特位后再異或處理1列的比特位,循環(huán)進(jìn)行,直到 矩陣中所有列均處理完畢,生成對(duì)應(yīng)的列極性碼;如可采用下述列極性生成公式表示CPl = BitrBit3"Bit5"Bit7 ;其中 CPl 為生成的列極性碼。Bitl、Bit3、Bit5、Bit7 分別為上述矩陣中的第1列、第3列、第5列、第7列中的比特位。符號(hào)表示進(jìn)行異或 處理。因此公式CPl = BitrBit3"Bit5"Bit7是指將該矩陣中第1列、第3列、第5列和第 7列中的所有比特位進(jìn)行異或處理,得到對(duì)應(yīng)的列極性碼。即CPO實(shí)際是256*4 = 1024個(gè) 比特位進(jìn)行異或處理后生成的列極性碼。B3、對(duì)上述矩陣中異或處理2列的比特位再跳過(guò)2列的比特位,循環(huán)進(jìn)行,直到矩 陣中所有列均處理完畢,生成對(duì)應(yīng)的列極性碼;如可采用下述列極性生成公式表示CP2 = BitO"BitrBit4"Bit5 ;其中 CP2 為生成的列極性碼。B4、對(duì)上述矩陣中跳過(guò)2列的比特位再異或處理2列的比特位,循環(huán)進(jìn)行,直到矩 陣中所有列均處理完畢,生成對(duì)應(yīng)的列極性碼;如可采用下述列極性生成公式表示CP3 = Bit2"Bit3"Bit6"Bit7 ;其中 CP3 為生成的列極性碼。B5、對(duì)上述矩陣中異或處理4列的比特位再跳過(guò)4列的比特位,循環(huán)進(jìn)行,直到矩 陣中所有列均處理完畢,生成對(duì)應(yīng)的列極性碼;如可采用下述列極性生成公式表示CP4 = BitO"BitrBit2"Bit3 ;其中 CP4 為生成的列極性碼。B6、對(duì)上述矩陣中跳過(guò)4列的比特位再異或處理4列的比特位,循環(huán)進(jìn)行,直到矩 陣中所有列均處理完畢,生成對(duì)應(yīng)的列極性碼;如可采用下述列極性生成公式表示CP5 = Bit4"Bit5"Bit6"Bit7 ;其中 CP5 為生成的列極性碼。C、將得到的所有列極性碼組合成第一列校驗(yàn)碼。其中組合的方式就是將得到每個(gè) 比特的列極性碼直接組合成一個(gè)包含多個(gè)比特的第一列校驗(yàn)碼。如通過(guò)步驟B即可得到6 個(gè)比特的列極性碼,將得到的6個(gè)比特的列極性碼直接組合,得到一個(gè)包含6比特的第一列 校驗(yàn)碼。其中對(duì)寫(xiě)入的每256字節(jié)的數(shù)據(jù)進(jìn)行行校驗(yàn)的步驟具體如下請(qǐng)參閱圖3,為本發(fā)明實(shí)施例提供的列校驗(yàn)規(guī)則的示例圖,詳述如下D、將寫(xiě)入的每256字節(jié)的數(shù)據(jù)排列成256行和8列的矩陣,矩陣中每個(gè)元素代表 256字節(jié)中的一個(gè)比特位。E、采用預(yù)設(shè)的行校驗(yàn)規(guī)則對(duì)矩陣中的比特位進(jìn)行行校驗(yàn),生成對(duì)應(yīng)的行極性碼, 在本發(fā)明實(shí)施例中,采用RP0-RP15表示對(duì)應(yīng)的行極性碼。其中預(yù)設(shè)的行校驗(yàn)規(guī)則具體如 下E1、對(duì)上述矩陣中異或處理1行的比特位再跳過(guò)1行的比特位,循環(huán)進(jìn)行,直到矩 陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼;E2、對(duì)上述矩陣中跳過(guò)1行的比特位后再異或處理1行的比特位,循環(huán)進(jìn)行,直到 矩陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼;E3、對(duì)上述矩陣中異或處理2行的比特位再跳過(guò)2行的比特位,循環(huán)進(jìn)行,直到矩 陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼;
      E4、對(duì)上述矩陣中跳過(guò)2行的比特位再異或處理2行的比特位,循環(huán)進(jìn)行,直到矩 陣中所有行均處理完畢,生成對(duì)應(yīng)的列極性碼;E5、對(duì)上述矩陣中異或處理4行的比特位再跳過(guò)4行的比特位,循環(huán)進(jìn)行,直到矩 陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼;E6、對(duì)上述矩陣中跳過(guò)4行的比特位再異或處理4行的比特位,循環(huán)進(jìn)行,直到矩 陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼;E7、對(duì)上述矩陣中異或處理8行的比特位再跳過(guò)8行的比特位,循環(huán)進(jìn)行,直到矩 陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼;E8、對(duì)上述矩陣中跳過(guò)8行的比特位后再異或處理8行的比特位,循環(huán)進(jìn)行,直到 矩陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼;E9、對(duì)上述矩陣中異或處理16行的比特位再跳過(guò)16行的比特位,循環(huán)進(jìn)行,直到 矩陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼;E10、對(duì)上述矩陣中跳過(guò)16行的比特位再異或處理16行的比特位,循環(huán)進(jìn)行,直到 矩陣中所有行均處理完畢,生成對(duì)應(yīng)的列極性碼;E11、對(duì)上述矩陣中異或處理32行的比特位再跳過(guò)32行的比特位,循環(huán)進(jìn)行,直到 矩陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼;E12、對(duì)上述矩陣中跳過(guò)32行的比特位再異或處理32行的比特位,循環(huán)進(jìn)行,直到 矩陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼;E13、對(duì)上述矩陣中異或處理64行的比特位再跳過(guò)64行的比特位,循環(huán)進(jìn)行,直到 矩陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼;E14、對(duì)上述矩陣中跳過(guò)64行的比特位再異或處理64行的比特位,循環(huán)進(jìn)行,直到 矩陣中所有行均處理完畢,生成對(duì)應(yīng)的列極性碼;E15、對(duì)上述矩陣中異或處理1 行的比特位再跳過(guò)1 行的比特位,循環(huán)進(jìn)行,直 到矩陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼;E16、對(duì)上述矩陣中跳過(guò)1 行的比特位再異或處理1 行的比特位,循環(huán)進(jìn)行,直 到矩陣中所有行均處理完畢,生成對(duì)應(yīng)的行極性碼。F、將得到的所有行極性碼組合成第一行校驗(yàn)碼。其中組合的方式就是將得到每個(gè) 比特的行極性碼直接組合成一個(gè)包含多個(gè)比特的第一行校驗(yàn)碼。如通過(guò)步驟E即可得到16 個(gè)比特的列極性碼,將得到的16個(gè)比特的列極性碼直接組合,得到一個(gè)包含16比特的第一 行校驗(yàn)碼。綜上所述,當(dāng)對(duì)寫(xiě)入至NAND閃存頁(yè)的數(shù)據(jù)進(jìn)行行校驗(yàn)碼列校驗(yàn)后,即可生成6個(gè) 比特的第一列校驗(yàn)碼和16個(gè)比特的第一行校驗(yàn)碼,將生成的列校驗(yàn)碼和行結(jié)果直接組合, 即可得到第一校驗(yàn)碼。為了保存將生成的第一校驗(yàn)碼,每個(gè)NAND閃存頁(yè)中一般包含512字 節(jié)的數(shù)據(jù)區(qū)和16字節(jié)的帶外數(shù)據(jù)區(qū)(out-of-band,00B),在本發(fā)明實(shí)施例中,將生成的第 一校驗(yàn)碼存儲(chǔ)至NAND閃存頁(yè)的OOB區(qū)。由于NAND閃存頁(yè)中一般包含512字節(jié)的數(shù)據(jù)區(qū), 因此,根據(jù)上述方法,即可根據(jù)寫(xiě)入至NAND閃存頁(yè)的前256字節(jié)的數(shù)據(jù)生成3字節(jié)的第一 校驗(yàn)碼,寫(xiě)入至NAND閃存頁(yè)的后256字節(jié)的數(shù)據(jù)生成3字節(jié)的第一校驗(yàn)碼,因此,根據(jù)寫(xiě)入 至NAND閃存頁(yè)的所有數(shù)據(jù)即可得到兩個(gè)3字節(jié)的第一校驗(yàn)碼,將該兩個(gè)3字節(jié)的第一校驗(yàn) 碼存儲(chǔ)至NAND閃存頁(yè)的OOB區(qū)。如可以將NAND閃存頁(yè)的OOB區(qū)的第0、1、2和第3、6、7字節(jié)用于存儲(chǔ)第一校驗(yàn)碼。在步驟S102中,在從NAND閃存頁(yè)中讀取數(shù)據(jù)時(shí),對(duì)從NAND閃存中讀取的每256 字節(jié)的數(shù)據(jù)分別進(jìn)行列校驗(yàn)和行校驗(yàn),生成第二校驗(yàn)碼,該第二校驗(yàn)碼包括第二列校驗(yàn)碼 和第二行校驗(yàn)碼。其中對(duì)從NAND閃存中讀取的每256字節(jié)的數(shù)據(jù)分別進(jìn)行列校驗(yàn)碼行校驗(yàn)的具體 過(guò)程與對(duì)寫(xiě)入的每256字節(jié)的數(shù)據(jù)分別進(jìn)行列校驗(yàn)碼行校驗(yàn)相同,在此不再贅述。在步驟S103中,將第一校驗(yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理,并根據(jù)異或處理 結(jié)果判斷NAND閃存中的數(shù)據(jù)是否出錯(cuò)。其具體步驟如下當(dāng)?shù)谝恍r?yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理后,異或處理結(jié)果為0,則判定 NAND閃存不存在錯(cuò)誤,或者出現(xiàn)了無(wú)法檢測(cè)的錯(cuò)誤;當(dāng)?shù)谝恍r?yàn)碼與第二校驗(yàn)碼按位進(jìn)行 異或處理后,異或處理結(jié)果中存在11個(gè)比特位為1,判定存在一個(gè)比特錯(cuò)誤,且可糾正;當(dāng) 第一校驗(yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理后,異或處理結(jié)果中只存在1個(gè)比特位為1,判 定OOB區(qū)出錯(cuò);其他情況均判定出現(xiàn)了無(wú)法糾正的錯(cuò)誤。在本發(fā)明實(shí)施例中,通過(guò)根據(jù)上述方法流程執(zhí)行的軟件來(lái)實(shí)現(xiàn)NAND閃存中的數(shù) 據(jù)進(jìn)行校驗(yàn),在制作NAND閃存的映像文件時(shí),通過(guò)為數(shù)據(jù)增加該根據(jù)上述方法流程執(zhí)行的 數(shù)據(jù)校驗(yàn)軟件,即可實(shí)現(xiàn)對(duì)NAND閃存的數(shù)據(jù)的校驗(yàn),該校驗(yàn)方法由于通過(guò)軟件實(shí)現(xiàn),從而 與平臺(tái)無(wú)關(guān),使其可適用于任何平臺(tái)。圖4示出了本發(fā)明實(shí)施例提供的NAND閃存中數(shù)據(jù)的校驗(yàn)裝置的結(jié)構(gòu),為了便于說(shuō) 明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。該裝置可以是內(nèi)置于NAND閃存中的軟件單元、 硬件單元或者軟硬件相結(jié)合的單元,或者作為獨(dú)立的掛件集成到NAND閃存中。其中第一校驗(yàn)碼生成單元1在向NAND閃存頁(yè)中寫(xiě)入數(shù)據(jù)時(shí),對(duì)寫(xiě)入的每256字節(jié)的數(shù) 據(jù)分別進(jìn)行列校驗(yàn)碼行校驗(yàn),生成第一校驗(yàn)碼,該第一校驗(yàn)碼包括第一列校驗(yàn)碼和第一行 校驗(yàn)碼。該第一校驗(yàn)碼生成單元1包括第一列校驗(yàn)?zāi)K11和第一行校驗(yàn)?zāi)K12。其中第一列校驗(yàn)?zāi)K11將寫(xiě)入的每256字節(jié)的數(shù)據(jù)排列成256行和8列的矩陣,并采 用預(yù)設(shè)的列校驗(yàn)規(guī)則對(duì)矩陣中的比特位進(jìn)行列校驗(yàn),生成對(duì)應(yīng)的列極性碼,將生成的列極 性碼組合成第一列校驗(yàn)碼。其中矩陣中每個(gè)元素代表256字節(jié)中的一個(gè)比特位。預(yù)設(shè)的列 校驗(yàn)規(guī)則如上所述,在此不再贅述。第一行校驗(yàn)?zāi)K12將寫(xiě)入的每256字節(jié)的數(shù)據(jù)排列成256行和8列的矩陣,采用 預(yù)設(shè)的行校驗(yàn)規(guī)則對(duì)矩陣中的比特位進(jìn)行行校驗(yàn),生成對(duì)應(yīng)的行極性碼,將生成的所有行 極性碼組合成第一行校驗(yàn)碼。其中矩陣中每個(gè)元素代表256字節(jié)中的一個(gè)比特位。預(yù)設(shè)的 行校驗(yàn)規(guī)則如上所述,在此不再贅述。 第二校驗(yàn)碼生成單元2在從NAND閃存頁(yè)中讀取數(shù)據(jù)時(shí),對(duì)從NAND閃存中讀取的 每256字節(jié)的數(shù)據(jù)分別進(jìn)行列校驗(yàn)碼行校驗(yàn),生成第二校驗(yàn)碼,該第二校驗(yàn)碼包括第二列 校驗(yàn)碼和第二行校驗(yàn)碼。該第二校驗(yàn)碼生成單元2包括第二列校驗(yàn)?zāi)K21和第二行校驗(yàn) 模塊22。其中第二列校驗(yàn)?zāi)K21將讀取的每256字節(jié)的數(shù)據(jù)排列成256行和8列的矩陣,并采 用預(yù)設(shè)的列校驗(yàn)規(guī)則對(duì)矩陣中的比特位進(jìn)行列校驗(yàn),生成第二列校驗(yàn)碼。其中矩陣中每個(gè) 元素代表256字節(jié)中的一個(gè)比特位。預(yù)設(shè)的列校驗(yàn)規(guī)則如上所述,在此不再贅述。第二行校驗(yàn)?zāi)K22將讀取的每256字節(jié)的數(shù)據(jù)排列成256行和8列的矩陣,采用預(yù)設(shè)的行校驗(yàn)規(guī)則對(duì)矩陣中的比特位進(jìn)行行校驗(yàn),生成第二行校驗(yàn)碼。其中矩陣中每個(gè)元 素代表256字節(jié)中的一個(gè)比特位。預(yù)設(shè)的行校驗(yàn)規(guī)則如上所述,在此不再贅述。數(shù)據(jù)校驗(yàn)單元3將第一校驗(yàn)碼生成單元生成的第一校驗(yàn)碼與第二校驗(yàn)碼生成的 第二校驗(yàn)碼按位進(jìn)行異或處理,并根據(jù)異或處理結(jié)果判斷NAND閃存中的數(shù)據(jù)是否出錯(cuò)。其 具體步驟如上所述,在此不再贅述。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以 通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì) 中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁 碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory, RAM)等。在本發(fā)明實(shí)施例中,通過(guò)根據(jù)上述方法流程執(zhí)行的軟件來(lái)實(shí)現(xiàn)NAND閃存中的數(shù) 據(jù)進(jìn)行校驗(yàn),在制作NAND閃存的映像文件時(shí),通過(guò)為數(shù)據(jù)增加該根據(jù)上述方法流程執(zhí)行的 數(shù)據(jù)校驗(yàn)軟件,即可實(shí)現(xiàn)對(duì)NAND閃存的數(shù)據(jù)的校驗(yàn),該校驗(yàn)方法由于通過(guò)軟件實(shí)現(xiàn),從而 與平臺(tái)無(wú)關(guān),使其可適用于任何平臺(tái)。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      權(quán)利要求
      1.一種NAND閃存中數(shù)據(jù)的校驗(yàn)方法,其特征在于,所述方法包括下述步驟在向NAND閃存頁(yè)中寫(xiě)入數(shù)據(jù)時(shí),對(duì)寫(xiě)入的每256字節(jié)的數(shù)據(jù)分別進(jìn)行列校驗(yàn)和行校 驗(yàn),生成第一校驗(yàn)碼,所述第一校驗(yàn)碼包括第一列校驗(yàn)碼和第一行校驗(yàn)碼;在從NAND閃存頁(yè)中讀取數(shù)據(jù)時(shí),對(duì)從NAND閃存中讀取的每256字節(jié)的數(shù)據(jù)分別進(jìn)行 列校驗(yàn)和行校驗(yàn),生成第二校驗(yàn)碼,所述第二校驗(yàn)碼包括第二列校驗(yàn)碼和第二行校驗(yàn)碼;將第一校驗(yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理,并根據(jù)異或處理結(jié)果判斷NAND閃存 中的數(shù)據(jù)是否出錯(cuò)。
      2.如權(quán)利要求1所述的方法,其特征在于,對(duì)寫(xiě)入的每256字節(jié)的數(shù)據(jù)進(jìn)行列校驗(yàn)的步 驟具體為將寫(xiě)入的每256字節(jié)的數(shù)據(jù)排列成256行和8列的矩陣,矩陣中每個(gè)元素代表256字 節(jié)中的一個(gè)比特位;采用預(yù)設(shè)的列校驗(yàn)規(guī)則對(duì)矩陣中的比特位進(jìn)行列校驗(yàn),生成對(duì)應(yīng)的列極性碼; 將生成的所有列極性碼組合成第一列校驗(yàn)碼。
      3.如權(quán)利要求2所述的方法,其特征在于,所述預(yù)設(shè)的列校驗(yàn)規(guī)則為對(duì)矩陣中異或處理1列的比特位再跳過(guò)1列的比特位,循環(huán)進(jìn)行,直到矩陣中所有列均 處理完畢,生成對(duì)應(yīng)的列極性碼;對(duì)矩陣中跳過(guò)1列的比特位后再異或處理1列的比特位,循環(huán)進(jìn)行,直到矩陣中所有列 均處理完畢,生成對(duì)應(yīng)的列極性碼;對(duì)矩陣中異或處理2列的比特位再跳過(guò)2列的比特位,循環(huán)進(jìn)行,直到矩陣中所有列均 處理完畢,生成對(duì)應(yīng)的列極性碼;對(duì)矩陣中跳過(guò)2列的比特位再異或處理2列的比特位,循環(huán)進(jìn)行,直到矩陣中所有列均 處理完畢,生成對(duì)應(yīng)的列極性碼;對(duì)矩陣中異或處理4列的比特位再跳過(guò)4列的比特位,循環(huán)進(jìn)行,直到矩陣中所有列均 處理完畢,生成對(duì)應(yīng)的列極性碼;對(duì)矩陣中跳過(guò)4列的比特位再異或處理4列的比特位,循環(huán)進(jìn)行,直到矩陣中所有列均 處理完畢,生成對(duì)應(yīng)的列極性碼。
      4.如權(quán)利要求1所述的方法,其特征在于,對(duì)寫(xiě)入的每256字節(jié)的數(shù)據(jù)進(jìn)行行校驗(yàn)的步 驟具體為將寫(xiě)入的每256字節(jié)的數(shù)據(jù)排列成256行和8列的矩陣,矩陣中每個(gè)元素代表256字 節(jié)中的一個(gè)比特位;采用預(yù)設(shè)的行校驗(yàn)規(guī)則對(duì)矩陣中的比特位進(jìn)行行校驗(yàn),生成對(duì)應(yīng)的行極性碼; 將生成的所有行極性碼組合成第一行校驗(yàn)碼。
      5.如權(quán)利要求4所述的方法,其特征在于,所述預(yù)設(shè)的行校驗(yàn)規(guī)則為對(duì)矩陣中異或處理1行的比特位再跳過(guò)1行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行均 處理完畢,生成對(duì)應(yīng)的行極性碼;對(duì)矩陣中跳過(guò)1行的比特位后再異或處理1行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行 均處理完畢,生成對(duì)應(yīng)的行極性碼;對(duì)矩陣中異或處理2行的比特位再跳過(guò)2行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行均 處理完畢,生成對(duì)應(yīng)的行極性碼;對(duì)矩陣中跳過(guò)2行的比特位再異或處理2行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行均 處理完畢,生成對(duì)應(yīng)的列極性碼;對(duì)矩陣中異或處理4行的比特位再跳過(guò)4行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行均 處理完畢,生成對(duì)應(yīng)的行極性碼;對(duì)矩陣中跳過(guò)4行的比特位再異或處理4行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行均 處理完畢,生成對(duì)應(yīng)的行極性碼;對(duì)矩陣中異或處理8行的比特位再跳過(guò)8行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行均 處理完畢,生成對(duì)應(yīng)的行極性碼;對(duì)矩陣中跳過(guò)8行的比特位后再異或處理8行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行 均處理完畢,生成對(duì)應(yīng)的行極性碼;對(duì)矩陣中異或處理16行的比特位再跳過(guò)16行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行 均處理完畢,生成對(duì)應(yīng)的行極性碼;對(duì)矩陣中跳過(guò)16行的比特位再異或處理16行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行 均處理完畢,生成對(duì)應(yīng)的列極性碼;對(duì)矩陣中異或處理32行的比特位再跳過(guò)32行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行 均處理完畢,生成對(duì)應(yīng)的行極性碼;對(duì)矩陣中跳過(guò)32行的比特位再異或處理32行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行 均處理完畢,生成對(duì)應(yīng)的行極性碼;對(duì)矩陣中異或處理64行的比特位再跳過(guò)64行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行 均處理完畢,生成對(duì)應(yīng)的行極性碼;對(duì)矩陣中跳過(guò)64行的比特位再異或處理64行的比特位,循環(huán)進(jìn)行,直到矩陣中所有行 均處理完畢,生成對(duì)應(yīng)的列極性碼;對(duì)矩陣中異或處理1 行的比特位再跳過(guò)1 行的比特位,循環(huán)進(jìn)行,直到矩陣中所有 行均處理完畢,生成對(duì)應(yīng)的行極性碼;對(duì)矩陣中跳過(guò)1 行的比特位再異或處理1 行的比特位,循環(huán)進(jìn)行,直到矩陣中所有 行均處理完畢,生成對(duì)應(yīng)的行極性碼。
      6.如權(quán)利要求1-5任一項(xiàng)所述的方法,其特征在于,所述將第一校驗(yàn)碼與第二校驗(yàn)碼 按位進(jìn)行異或處理,并根據(jù)異或處理結(jié)果判斷NAND閃存中的數(shù)據(jù)是否出錯(cuò)的步驟具體為當(dāng)?shù)谝恍r?yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理后,異或處理結(jié)果為0,判定NAND閃存 不存在錯(cuò)誤,或者出現(xiàn)了無(wú)法檢測(cè)的錯(cuò)誤;當(dāng)?shù)谝恍r?yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理后,異或處理結(jié)果中存在11個(gè)比特位 為1,判定存在一個(gè)比特錯(cuò)誤,且可糾正;當(dāng)?shù)谝恍r?yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理后,異或處理結(jié)果中只存在1個(gè)比特位 為1,判定OOB區(qū)出錯(cuò);當(dāng)?shù)谝恍r?yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理后,異或處理結(jié)果為其他情況均判定出 現(xiàn)了無(wú)法糾正的錯(cuò)誤。
      7.—種NAND閃存中數(shù)據(jù)的校驗(yàn)裝置,其特征在于,所述裝置包括第一校驗(yàn)碼生成單元,用于在向NAND閃存頁(yè)中寫(xiě)入數(shù)據(jù)時(shí),對(duì)寫(xiě)入的每256字節(jié)的數(shù) 據(jù)分別進(jìn)行列校驗(yàn)和行校驗(yàn),生成第一校驗(yàn)碼,所述第一校驗(yàn)碼包括第一列校驗(yàn)碼和第一行校驗(yàn)碼;第二校驗(yàn)碼生成單元,用于在從NAND閃存頁(yè)中讀取數(shù)據(jù)時(shí),對(duì)從NAND閃存中讀取的每 256字節(jié)的數(shù)據(jù)分別進(jìn)行列校驗(yàn)和行校驗(yàn),生成第二校驗(yàn)碼,所述第二校驗(yàn)碼包括第二列校 驗(yàn)碼和第二行校驗(yàn)碼;數(shù)據(jù)校驗(yàn)單元,用于將第一校驗(yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理,并根據(jù)異或處理 結(jié)果判斷NAND閃存中的數(shù)據(jù)是否出錯(cuò)。
      8.如權(quán)利要求7所述的裝置,其特征在于,所述第一校驗(yàn)碼生成單元包括第一列校驗(yàn)?zāi)K,用于將寫(xiě)入的每256字節(jié)的數(shù)據(jù)排列成256行和8列的矩陣,并采用 預(yù)設(shè)的列校驗(yàn)規(guī)則對(duì)矩陣中的比特位進(jìn)行列校驗(yàn),生成對(duì)應(yīng)的列極性碼,將生成的所有列 極性碼組合成第一列校驗(yàn)碼;第一行校驗(yàn)?zāi)K,用于將寫(xiě)入的每256字節(jié)的數(shù)據(jù)排列成256行和8列的矩陣,并采用 預(yù)設(shè)的行校驗(yàn)規(guī)則對(duì)矩陣中的比特位進(jìn)行行校驗(yàn),生成對(duì)應(yīng)的行極性碼,將生成的所有行 極性碼組合成第一行校驗(yàn)碼。
      9.一種NAND閃存,其特征在于,所述閃存包括所述權(quán)利要求7或8所述的NAND閃存中 數(shù)據(jù)的校驗(yàn)裝置。
      全文摘要
      本發(fā)明適用于存儲(chǔ)領(lǐng)域,提供了一種NAND閃存及其數(shù)據(jù)的校驗(yàn)方法和裝置,該方法包括在向NAND閃存頁(yè)中寫(xiě)入數(shù)據(jù)時(shí),對(duì)寫(xiě)入的每256字節(jié)的數(shù)據(jù)分別進(jìn)行列校驗(yàn)和行校驗(yàn),生成第一校驗(yàn)碼;在從NAND閃存頁(yè)中讀取數(shù)據(jù)時(shí),對(duì)從NAND閃存中讀取的每256字節(jié)的數(shù)據(jù)分別進(jìn)行列校驗(yàn)和行校驗(yàn),生成第二校驗(yàn)碼;將第一校驗(yàn)碼與第二校驗(yàn)碼按位進(jìn)行異或處理,并根據(jù)異或處理結(jié)果判斷NAND閃存中的數(shù)據(jù)是否出錯(cuò)。本發(fā)明實(shí)施例由于通過(guò)軟件形式實(shí)現(xiàn)NAND閃存中數(shù)據(jù)的校驗(yàn)方法,因此,不僅可以校驗(yàn)NAND閃存中的數(shù)據(jù),而且可適用于任何平臺(tái)。
      文檔編號(hào)G06F11/10GK102110028SQ20091018947
      公開(kāi)日2011年6月29日 申請(qǐng)日期2009年12月25日 優(yōu)先權(quán)日2009年12月25日
      發(fā)明者王叢華 申請(qǐng)人:康佳集團(tuán)股份有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1