国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于固態存儲器的ECC算法分析及實現

發布時間:2010-11-18 11:22    發布者:eetech
關鍵詞: ECC , 分析 , 固態存儲器 , 實現 , 算法
評評價存儲器的一個重要指標就是它的可靠性,在一般的數據存儲中,幾個位的錯誤可能不是很關鍵的問題,如果但是發生在某個敏感的數據上,這個小小的故障可能會導致嚴重的后果。因此,必須采取一些措施來及時檢出并糾正出錯的數據。目前常用的方法有:奇偶校驗、CRC校驗、重復碼校驗等。

ECC校驗是在奇偶校驗的基礎上發展而來的,它將數據塊看作一個矩陣,利用矩陣的行、列奇偶信息生成ECC校驗碼。它能夠檢測并糾正單比特錯誤和檢測雙比特錯誤,但對雙比特以上的錯誤不能保證檢測。它克服了傳統奇偶校驗只能檢出奇數位出錯、校驗碼冗長、不能糾錯的局限性。文中在高速大容量固態存儲器的硬件結構基礎上,詳細介紹了ECC校驗碼的生成規則以及ECC校驗流程,并用C語言VHDL語言兩種方法實現了該算法。

1 存儲器的硬件結構及芯片介紹

本存儲器是以FPGA為控制核心,用64片Flash芯片構成存儲陣列,采用CPCI接口實現數據的高速率存儲。Flash存儲陣列分為16組,每組4片,每組Flash芯片共用數據和控制總線。該存儲器的硬件結構圖,如圖1所示。





存儲板上的存儲芯片用的是Samsung公司的高速大容量固態存儲芯片K9W8G08U1 M Nand Flash Memory,其容量為1 G×8 bit,分為8 192個塊,每個塊又分為64頁,1頁有(2 k+64)Byte,其中一頁有64 bit的空閑區。存儲板上的控制芯片是Ahera公司的高端FPGA芯片EP3SE110F1152C4,它負責數據的緩沖和整個存儲器的時序控制,并負責以頁為單位生成校驗碼,并把校驗碼存人到頁的空閑區內。下面以1頁2 048 bit為單位介紹校驗碼的生成以及校驗流程。

2 EGG算法分析及校驗流程

2.1 EGG校驗碼生成規則

Flash在讀寫數據的時候是以頁為單位進行的,一頁有2 048個數據,所以可以以2 048 bit為單位生成校驗碼。每個數據有8位信息組成,可以把這2 048個數據看成2 048×8的矩陣,這樣就可以分別生成行校驗碼和列校驗碼來分別校驗。ECC校驗中,每2 048個數據生成4個字節的校驗碼,這32位的校驗碼分成3個部分:6位的列校驗信息,22位的行校驗信息,其余的4位置1,ECC校驗碼組成,如表1所示。





其中P4_l,P4_2,P2_1,P2_2,P1_1,P1_2是列校驗碼,而P8_1,P8_2,P16_1,P16_2,P32_1,P32_2,P64_1,P64_2,P128_1,P128_2,P256_1,P256_2, P512_1,P512_2,P1024_1,P1 024_2, P2 048_1, P2 048_2, P4 096_1,P4096_2,P8192_1,P8192_2是行校驗碼。行列校驗碼生成表,如表2所示。













列校驗碼生成用數學表達式表示為









行校驗碼生成用數學表達式表示為





這里xor表示異或操作。

因為發生錯誤的數據位在該數據塊中的字節的偏移量為





發生錯誤的數據位在所處的字節中的位偏移量為P4_1,P2_1,P1_1

所以根據字節的偏移量和字節中的位的偏移量即可確定該頁數據中哪一位發生了變化。

2.2 ECC校驗流程

當向NAND Flash的頁中寫入數據的時候,每2 048 bit生成4 bit的ECC校驗碼,稱之為寫ECC校驗碼,保存到每一頁的空閑數據區中。

當從NAND Flash中讀取數據的時候,每2 048 bit生成4 bit的ECC校驗碼,稱之為讀ECC校驗碼。校驗的時候,根據上述ECC生成原理不難推斷:將從頁空閑區中讀出的寫ECC校驗碼和讀ECC校驗碼按位異或,若結果為0,則表示不存在錯;若4 bit的異或結果中存在14 bit為1,表示存在1 bit錯誤,且可糾正;若4個bit的異或結果中只存在1 bit為1,表示空閑區中的校驗碼出錯;其他情況均表示出現了無法糾正的錯誤,校驗流程圖,如圖2所示。






3 ECC算法的實現

3.1 C語言實現ECC算法

以一頁數據2 048個字節作為測試數據產生ECC校驗碼,數據是0x00~0xFF,循環8次產生2048個數據,數據序列,如圖3所示。





 按前面的ECC校驗碼生成規則,2 048個數據應該生成4個校驗碼,生成的校驗碼,如圖4所示,其中ecccode1,ecccode2,ecccode3,ecccode4是生成的4個校驗碼。





現在假設讀出的數據中有一位數據發生了翻轉,出現了一位數據錯誤的情況,即假設數據的第2 bit的最低位發生了翻轉,0×0l變成了O×00,此時讀出的數據序列,如圖5所示。









3.2 利用VHDL語言實現EGG算法



文中以0x00"OxFF循環8次產生2 048個數據,利用VHDL語言編程,在QuartusII7.2下進行了仿真,得到了如圖7所示的校驗碼。其中ecccodel =00000000,ecccode2=00000000,ecccode3=11000000,ecccode4=000000ll是生成的4個校驗碼,從圖中可以看到利用VHDL語言得到的校驗碼和用C語言得到的ECC校驗碼是相同的。





4 結束語

文中介紹了ECC算法的一種實現方法,說明了ECC的校驗流程,最后用兩種方法實現ECC校驗算法。ECC校驗算法簡單,軟硬件均能實現,它能夠檢測并糾正單比特錯誤和檢測雙比特錯誤,所以可以為數據存儲和通信系統提供一種強有力的差錯檢測手段。
本文地址:http://m.qingdxww.cn/thread-40431-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 了解一下Microchip強大的PIC18-Q24 MCU系列
  • 5分鐘詳解定時器/計數器E和波形擴展!
  • 基于CEC1712實現的處理器SPI FLASH固件安全彈性方案培訓教程
  • 想要避免發生災難,就用MPLAB® SiC電源仿真器!
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 恐怖星球在线观看完整版免费 | 天空之城动漫在线观看完整版免费 | 国亚洲欧美日韩精品 | 国产综合成人亚洲区 | 欧美成人手机在线 | 逼逼无毛 | 第四色播日韩第一页 | 亚洲综合久 | 欧美精品亚洲精品日韩经典 | 四虎影视最新 | 四虎精品影院永久在线播放 | 中文国产成人精品久久下载 | 韩国高清不卡一区二区 | 免费人成网站 | 1992侠盗高飞免费全集 | 亚洲日本天堂 | 欧美中文在线视频 | 亚洲区一二三四区2021 | 色网站在线看 | 一级毛片一级毛片一级毛片 | 四虎影视免费观看免费观看 | 国产的一级毛片完整 | 一级毛片不卡片免费观看 | 男女一进一出免费视频 | 国产亚洲区 | 国产精品久久久久久久成人午夜 | 久久99精品久久久 | 久久精品国产影库免费看 | 日韩在线一区高清在线 | 国产在线观看a | 欧美大片网址 | 大香线蕉97久久 | 精品手机在线视频 | 欧美麻豆久久久久久中文 | 尹人久久久香蕉精品 | 日产精品卡2卡三卡乱码网站 | 日韩亚洲人成网站 | 国产精品视频一区牛牛视频 | 欧美网站免费 | 四虎黄色网 | sss亚洲国产欧美一区二区 |