《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的NAND Flash ECC校驗
基于FPGA的NAND Flash ECC校驗
摘要: 本文將ECC校驗算法通過硬件編程語言VHDL在AheraQuanusⅡ7.0開發環境下進行了后仿真測試,實現了NANDFlash的ECC校驗功能。本程序可實現每256Byte數據生成3ByteECC校驗數據,且通過與原始ECC數據對比,能夠保證檢測出1bit的錯誤及其出錯位置,進一步結合對此錯誤的糾正,可應用于NANDFlash讀寫控制器的FPGA設計,實現對數據的ECC校驗,確保數據準備有效地傳輸。經硬件實驗結果反饋,該算法硬件適應性良好。
關鍵詞: FPGA NAND Flash ECC
Abstract:
Key words :
 

  移動產品應用領域,NANDFlash設備已成為人們解決高密度固態存儲的專用方法。信息技術的飛速發展,人們對信息的需求量也越來越大。因此,大量數據在系統內部以及網絡之間存儲和傳遞時,對數據進行檢測并更正可能出現的錯誤尤為重要。糾錯碼ECC(ErrorCorrect-ionCode)滿足這一需求,其被稱為ECC校驗,是一種常用于NANDFlash讀寫控制器的校驗編碼。

  ECC校驗負責檢測錯誤、維護ECC信息、更正由原數值改變了的單比特錯誤。所有ECC的操作處理都可由一個ECC模塊來控制,其作為一種簡單地存儲一映射接口,放置在NAND器件和處理器接口之間。該模塊一般包含Hamming編碼產生模塊和出錯位置模塊,分別用于產生ECC校驗碼和計算出錯位置。

  1Haremina編碼

  Hamming編碼計算簡單。廣泛用于NANDFlash的Hamming算法,通過計算塊上數據包得到2個ECC值。為計算ECC值,數據包中的比特數據要先進行分割,如1/2組、1/4組、1/8組等,直到其精度達到單個比特為止,以8bit即1Byte的數據包為例進行說明,如圖1所示。

a.JPG

  該數據按圖1所示方式進行比特分割,分別得到上方的偶校驗值ECCe和下方的奇校驗值ECCo。其中,1/2校驗值經“異或”操作構成ECC校驗的最高有效位,同理1/4校驗值構成ECC校驗的次高有效位,最低有效位由具體到比特的校驗值填補。圖2展示了兩個ECC校驗值的計算過程。

h.JPG

  即偶校驗值ECCe為“101”,奇校驗值ECCo為“010”。圖1所示為只有1Byte數據的數據包,更大的數據包需要更多的ECC值。事實上,每nbit的ECC數值可滿足2nbit數據包的校驗要求。又由于這種Hamming碼算法要求一對ECC數據(奇偶),所以總共要求2nbit的ECC校驗數據來處理2nbit的數據包。

  計算之后,原數據包和ECC數值都要寫入NAND器件。稍后,原數據包將從NAND器件中讀取,此時ECC值將重新計算。如果新計算的ECC不同于先前編入NAND器件的ECC,那么表明數據在讀寫過程中出錯。

  例如,原始數據01010001中有1個單一的比特出現錯誤,出錯后的數據是01010101。經前面所示方法計算,從圖3中可以清楚地看到由于數據發生了變化,2個新的ECC數值已不同與原來的ECC值。

i.JPG

  此時把所有4個ECC數值進行按位“異或”,就可以判斷是否出現了1個單一比特的錯誤或者是多比特的錯誤。如果計算結果為全“0”,說明數據在讀寫過程中未發生變化。如果計算的結果為全“1”,表明發生了1bit錯誤,如圖4所示。如果計算結果是除了全“0”和全“1”的任何一種情況,那么就是2bit出錯的情況。2bit錯誤總可以檢測到,然而,Hamming碼算法僅能夠保證更正單一比特的錯誤。如果兩個或是更多的比特出錯,那么就不能修改該出錯的數據包,在這種情況下,Hamming算法就可能不能夠指示出已經出現的錯誤。不過,考慮到SLCNAND器件的比特錯誤的情況,出現2、3bit錯誤的可能性非常低。

j.JPG

  對于1bit錯誤的情況,出錯地址可通過將原有ECCo值和新ECCo值進行按位“異或”來識別獲取。通過圖5中的計算,結果為2,表明原數據第2bit位出現了問題。該計算采用奇校驗數據ECCo,這是因為它們可以直接地反映出出錯比特的位置。

m.jpg

  找到出錯比特后,只要通過翻轉它的狀態就可修復數據包,具體操作也就是將該位與“1”進行異或操作,如圖6所示。

k.JPG

  2擴展數據包

  在上述舉例中,校驗1個8bit數據包需要6bit的ECC數據。在這種情況下,校驗數據量達到原始數據包的數據量的75%,看上去并不令人滿意。然而,隨著數據包大小的增加,Hamming算法將表現得越來越有效率。由前面2nbit數據需要2nbitECC校驗的關系推知,每增加一倍的數據要求兩個額外的ECC信息比特。這樣,當數據增加到,比如512Byte時,僅產生24bit的ECC,此時用于校驗的數據占原數據的比例降為0.06%,效率較高。下面,以1個8Byte的數據包為例說明擴展數據包的校驗情況。

  在這里,由于異或操作滿足交換律,用一種更為有效的方法進行校驗。如圖7所示,首先將該8Byte數據排為1個矩陣的形式,每行為1B-yte。分別計算每行各bit的異或結果記為字節校驗碼(Byte-Wise),計算每列各bit的異或結果記為比特校驗碼(Bit-Wise)。接下來,將兩個校驗碼分別按上述方法分割計算得到ECC校驗碼,并將字節校驗碼的ECC結果作為ECCe和ECCo的高有效位(MSB)、比特校驗碼的ECC結果做為低有效位(LSB)進行組合,最終得到8Byte數據包的ECC校驗碼。

b.JPG

  當數據包發生錯誤時,錯誤檢測和更正所使用的方法與先前所描述的方法相似,這里仍以1bit錯誤來說明校驗過程,具體如圖8所示。

  經步驟1~步驟4的計算,新的數據包存在錯誤且出錯位置為“110010”,由于前面將字節校驗碼設為ECC值的高位,比特校驗碼設為低位,因此,“110010”的高有效位表示出錯的字節地址,低有效位代表出錯的比特地址,即字節地址為6、比特地址為2的數據發生了錯誤,與設定的錯誤情況相符。此時,只需將該位的數據比特與“1”異或即可完成數據包的修正。

e.JPG

  將8Byte數據包擴展到512Byte數據包,雖然數據量大大增加,但僅添加了數據分割的情況,算法仍然一樣。計算所得奇偶ECC數據均為12bit長,其中,3個低有效位代表bit地址(7~0),9個高有效位代表512Byte的地址(255~0)。

  3實驗分析

  本實驗處理對像為256Byte的數據包,對其進行ECC校驗共生成22bit校驗數據。為方便讀取,可以在末尾添加兩位,形成完整的3Byte校驗數據。這3Byte共24bit,分成兩部分:6bit的比特校驗和16bit的字節校驗,多余的兩個比特置1并置于校驗碼的最低位,在進行異或操作時此兩比特忽略。

  當往NANDFlash頁中寫人數據時,每256bit生成一個ECC校驗,稱之為原ECC校驗和,并保存到頁的OOB數據區中;當從NANDFlash中讀取數據的時,每256bit又生成一個新ECC校驗,稱之為新的ECC校驗和。校驗時,將從OOB區中讀出的原ECC校驗和與新ECC校驗和并執行按位異或操作,若計算結果為全“0”,則表示不存在出錯,并將出錯狀態變量errSTATUS賦值為“00”;若結果為全“1”,表示出現1個比特錯誤,將errSTATUS賦值為"01”并進行糾正;除全“0”和全“1”外的其他情況將errSTATUS賦值為“10”表示出現了無法糾正的2bit錯誤,如表1所示。

l.JPG

  實驗仿真環境為AlteraQuartusII7.0,編程語言為VHDL。VHDL語言為硬件編程語言,具有并行處理的特點,而原程序中有大量的需要并行處理的異或操作,因此程序執行效率高,非常有利于硬件實現。

  圖9給出了數據包發生1bit錯誤的校驗情況。其中,DATAin表示待讀取的數據,HammingCALC表示在寫入NANDFlash頁時計算好的原始ECC,HAMMINGout表示后面在讀取DATAin數據時計算的新的ECC,errSTATUS為出錯狀態,ERRIoc為計算所得出錯的位置。為滿足1bit錯誤的條件且易于觀察,將256Byte數據(0~255)的最后一個Byte由“11110110”變為“11111110”,如圖9中陰影部分所示。此時,errSTATUS結果為"01”,表明程序檢測出了該1bit錯誤,且ERRloc輸出為“111111111O11”,即出錯位置為第255Byte的比特3發生了錯誤。為糾正該錯誤,此時,只要將該位置的比特取反輸出即可。

f.JPG

  在原來1bit錯誤的情況下,將其相鄰的第254bit的數據由“11110101”變為“01110101”,如圖10陰影部分所示,整個數據包有2bit發生了變化。此時,errSTATUS結果顯示為“10”,即檢測出了有2bit錯誤。但此時的ERRloe無效,不能表征出兩個出錯的位置,也就是為什么ECC校驗只能檢測出2bit錯誤而不能對其進行更正的原因。

c.JPG

  當然,如果數據包沒有發生任何錯誤,也就是若讀出的數據與先前寫入的數據完全一致,ECC校驗也是能夠保證檢測出來的。如圖11所示,當未發生任何錯誤時,errSTATUS為“00”,驗證了數據的一致性。此時,ERPloe無意義。

d.JPG

  值得說明的是,如果數據包發生的錯誤多于2bit,該算法并不適宜。測定了更多比特(≥3)出錯的情況,結果證明,errSTATUS的結果可能為“00”、“01”、“10”中的任何一個,也就是說在這種情況下,該算法很可能出現誤檢。因此,在這里,可以得出與ECC校驗原理相符的結論:ECC能夠保證糾正1bit錯誤和檢測2bit錯誤,但對于1bit以上的錯誤無法糾正,對2bit以上的錯誤不保證能檢測。

  4結束語

  本文將ECC校驗算法通過硬件編程語言VHDL在AheraQuanusⅡ7.0開發環境下進行了后仿真測試,實現了NANDFlash的ECC校驗功能。本程序可實現每256Byte數據生成3ByteECC校驗數據,且通過與原始ECC數據對比,能夠保證檢測出1bit的錯誤及其出錯位置,進一步結合對此錯誤的糾正,可應用于NANDFlash讀寫控制器的FPGA設計,實現對數據的ECC校驗,確保數據準備有效地傳輸。經硬件實驗結果反饋,該算法硬件適應性良好。

  ECC是一種在NANDFlash處理中比較專用的校驗,其原理簡便、易于執行、計算速度快并且數據量越大,其算法越有效。但這樣一個高效的算法仍存在缺陷,那就是其有限的糾錯能力。本文也驗證了其對于2bit以上錯誤是無效的,盡管這種情況在Flash中發生的幾率很低,但就校驗原理來說,是否存在一種改進的算法可用于多比特錯誤的糾正還有待進一步研究和驗證。



 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美日韩视频第一区| 另类激情亚洲| 亚洲免费在线观看视频| 亚洲电影av| 欧美高清视频在线观看| 亚洲国产精品综合| 国产欧美精品xxxx另类| 国产一区二区三区免费不卡| 在线观看日韩av| 国产视频一区欧美| 欧美黄色成人网| 日韩网站在线看片你懂的| 久久久亚洲国产天美传媒修理工| 精品动漫av| 亚洲欧美中文字幕| 亚洲国产精品t66y| 国产精品午夜在线| 欧美久久九九| 欧美美女bb生活片| 黄色精品在线看| 国产日韩精品久久久| 欧美1级日本1级| 欧美日韩午夜视频在线观看| 国产精品久久久久久亚洲毛片| 亚洲视频精品| 久久中文精品| 激情综合五月天| 狼人天天伊人久久| 欧美v国产在线一区二区三区| 亚洲国产日韩美| 99国产欧美久久久精品| 欧美日韩国产电影| 在线视频亚洲欧美| 国产精品久久777777毛茸茸| 亚洲国产精品ⅴa在线观看| 欧美午夜精品久久久久久孕妇| 尤物yw午夜国产精品视频| 久久噜噜亚洲综合| 欧美日韩亚洲天堂| 国产主播一区| 欧美一级淫片播放口| 国内精品免费在线观看| 亚洲字幕在线观看| 久久激情久久| 嫩草成人www欧美| 亚洲国产高清aⅴ视频| 国产亚洲人成网站在线观看| 欧美88av| 久久久精品免费视频| 9色porny自拍视频一区二区| 亚洲欧美日韩国产一区二区三区| 在线观看成人小视频| 欧美日本韩国一区二区三区| 亚洲永久字幕| 韩国av一区二区| 亚洲经典一区| 久久久久久网| 午夜精品久久久久久久99热浪潮| 国产精品免费视频观看| 久久久青草青青国产亚洲免观| 久久九九精品99国产精品| 亚洲精品久久| 欧美一区二区三区在线观看视频| 99天天综合性| 一区二区视频免费完整版观看| 欧美一二三区在线观看| 国产无一区二区| 欧美日本亚洲韩国国产| 裸体丰满少妇做受久久99精品| 免费黄网站欧美| 欧美国产乱视频| 欧美一级成年大片在线观看| 欧美激情在线有限公司| 一区二区三区精品视频| 99re热这里只有精品视频| 国产精品免费一区二区三区在线观看| 亚洲永久在线观看| 亚洲日本在线观看| 国产精品私拍pans大尺度在线| 欧美一级片在线播放| 国产情人节一区| 国产网站欧美日韩免费精品在线观看| 亚洲伊人伊色伊影伊综合网| 欧美日韩亚洲一区二区| 欧美在线91| 激情久久久久久久| 国产一区二区三区在线观看网站| 亚洲国产精品一区二区第四页av| 久久精品水蜜桃av综合天堂| 99精品视频免费全部在线| 一本色道久久综合狠狠躁篇怎么玩| 日韩视频在线免费观看| 国产欧美日本一区二区三区| 欧美—级高清免费播放| 国产精品成av人在线视午夜片| 久久疯狂做爰流白浆xx| 国产精品久久久久久福利一牛影视| 欧美日韩久久| 欧美精品一区二区久久婷婷| 欧美色123| 国产一区在线免费观看| 久久久久综合| 亚洲欧美第一页| 亚洲大片免费看| 久久久免费av| 欧美激情综合亚洲一二区| 久久亚洲二区| 欧美日韩高清在线一区| 欧美精品色一区二区三区| 亚洲国产精品黑人久久久| 欧美日韩mp4| 国产深夜精品福利| 亚洲精品美女91| 亚洲福利视频一区二区| 国产精品视频免费观看www| 含羞草久久爱69一区| 亚洲欧美国产日韩中文字幕| 国产日韩在线看片| 欧美视频在线观看免费| 国产精品乱子久久久久| 欧美日韩免费在线观看| 欧美日韩亚洲视频| 欧美成人免费全部观看天天性色| 一区二区三区欧美日韩| 伊人一区二区三区久久精品| 亚洲视频一二区| 快播亚洲色图| 欧美肥婆在线| 国产精品综合av一区二区国产馆| 久久综合色天天久久综合图片| 欧美中文字幕视频在线观看| 欧美亚洲免费高清在线观看| 一区二区三区在线免费视频| 亚洲第一精品在线| 欧美一级欧美一级在线播放| 欧美激情精品| 国产欧美日韩在线| 91久久极品少妇xxxxⅹ软件| 亚洲一区二区三区精品视频| 国外成人在线| 有码中文亚洲精品| av成人天堂| 国产精品专区h在线观看| 在线精品视频免费观看| 一区二区高清视频在线观看| 久久天堂av综合合色| 欧美大成色www永久网站婷| 亚洲小说春色综合另类电影| 久久久综合激的五月天| 免费欧美日韩国产三级电影| 裸体女人亚洲精品一区| 亚洲国产一区二区在线| 欧美暴力喷水在线| 亚洲欧洲精品一区| 老巨人导航500精品| 欧美激情无毛| 欧美亚洲一区二区三区| 亚洲电影欧美电影有声小说| 亚洲国产日韩在线一区模特| 欧美激情一区二区三区不卡| 亚洲网站在线| 91久久中文字幕| 夜夜嗨一区二区| 国内精品伊人久久久久av一坑| 一本色道久久综合亚洲精品小说| 你懂的视频一区二区| 欧美日韩免费在线视频| 在线播放亚洲| 制服诱惑一区二区| 亚洲福利视频网站| 亚洲欧美中日韩| 亚洲激情二区| 亚洲第一区中文99精品| 在线视频亚洲| 亚洲亚洲精品三区日韩精品在线视频| 永久555www成人免费| 99精品黄色片免费大全| 国产精品热久久久久夜色精品三区| 国产精品久久久久久久电影| 久久成人av少妇免费| 亚洲欧美另类国产| 久久精品国产96久久久香蕉| 久久九九热免费视频| 久久久777| 欧美在线视频免费观看| 免费在线观看精品| 欧美一区二区私人影院日本| 欧美精品啪啪| 一本一本久久| 国产精品海角社区在线观看| 国语自产在线不卡| 亚洲欧美日韩国产综合| 国产精品午夜av在线| 国产日韩欧美91| 国产午夜精品一区理论片飘花| 久久免费黄色| 亚洲精品一区在线观看| 亚洲欧美日韩高清| 亚洲视频大全| 国语自产偷拍精品视频偷| 国产伦精品一区二区三区照片91| 亚洲午夜视频在线| 国产精品蜜臀在线观看| 国产精品视频999| 亚洲一级二级在线| 国产精品极品美女粉嫩高清在线| 亚洲欧洲日本在线| 国产欧美日韩亚洲精品| 国内在线观看一区二区三区| 亚洲人成亚洲人成在线观看| 欧美一区二区三区日韩| 亚洲国产一区在线| 亚洲午夜精品网| 亚洲欧美综合精品久久成人| 国产精品久久久一区二区| 美日韩精品视频免费看| 久久九九精品99国产精品| 久久久久久久国产| 亚洲欧美日韩国产综合在线| 欧美日本在线一区| 欧美日韩免费区域视频在线观看| 性高湖久久久久久久久| 国产午夜一区二区三区| 欧美日韩视频| 欧美色另类天堂2015| 亚洲人成在线影院| 欧美在线免费一级片| 欧美经典一区二区三区| 欧美日韩国产一区二区三区| 久久精品色图| av成人免费| 欧美日韩福利在线观看| 国产精品永久免费观看| 亚洲国产片色| 女人天堂亚洲aⅴ在线观看| 亚洲欧美不卡| 欧美激情日韩| 国产精品五月天| 影音先锋日韩精品| 国产日韩在线看| 欧美日韩性生活视频| 在线看无码的免费网站| 亚洲国产天堂久久国产91| 免费在线看成人av| 韩国视频理论视频久久| 亚洲国产精品一区二区www| 欧美高清视频在线观看| 国产精品系列在线| 99视频国产精品免费观看| 欧美激情第9页| 香港成人在线视频| 欧美性猛交xxxx乱大交退制版| 欧美日韩亚洲一区二区| 亚洲欧美日韩第一区| 欧美日韩国产成人| 欧美日韩另类在线| 欧美一区二区成人6969| 国产一区深夜福利| 国产日韩一区二区| 国产精品户外野外| 一本色道88久久加勒比精品| 欧美在线播放一区| 久久婷婷成人综合色| 欧美特黄一级大片| 久久激情视频免费观看| 欧美日韩专区在线| 久久久久久久一区二区三区| 欧美专区在线观看一区| 欧美黑人国产人伦爽爽爽| 国产欧美在线视频| 久久久一本精品99久久精品66| 黄色亚洲精品| 国产一区二区三区丝袜| 久久亚洲视频| 欧美人与禽性xxxxx杂性| 国产日韩欧美日韩大片| 国产小视频国产精品| 狠狠入ady亚洲精品经典电影| 国产精品一区2区| 欧美区日韩区| 亚洲欧美国产毛片在线| 91久久久亚洲精品| 影音先锋欧美精品| 99在线精品视频在线观看| 欧美一区二区三区视频免费播放| 国产精品蜜臀在线观看| 免费久久精品视频| 一区二区欧美国产| 亚洲免费av观看| 亚洲一区二区三区影院| 欧美怡红院视频一区二区三区| 久久这里只有精品视频首页| 亚洲制服av| 亚洲精品国产精品乱码不99按摩| 久久久99免费视频| 欧美日本国产| 欧美国产日本高清在线| 亚洲视频精品在线| 激情久久综合| 国产精品久久久久久影院8一贰佰| 欧美成年人视频| 国产精品久久久久久久久久久久久久| 国产精品电影网站| 欧美国产乱视频| 亚洲国产精品久久久久秋霞影院| 美女黄色成人网| 久久久久高清| 欧美久久成人| 欧美激情一区三区| 欧美激情在线观看| 国产精品一区二区久久国产| 亚洲欧洲日夜超级视频| 欧美天堂亚洲电影院在线播放| 国产视频在线观看一区二区三区| 欧美日韩精品伦理作品在线免费观看| 国产精品v欧美精品∨日韩| 亚洲亚洲精品在线观看| 玉米视频成人免费看| 欧美激情综合五月色丁香小说| 美女主播精品视频一二三四| 亚洲性感激情| 在线亚洲精品| 欧美韩国一区| 欧美福利在线| 国产日韩欧美一区二区三区在线观看| 国产中文一区二区三区| 国产麻豆综合| 亚洲欧洲偷拍精品|