• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于flash 的硬件ECC 設(shè)計原理及實(shí)現(xiàn)

      2023-12-28 02:51:32段曦冉
      微處理機(jī) 2023年6期
      關(guān)鍵詞:校驗(yàn)碼校驗(yàn)原理

      段曦冉

      (中國電子科技集團(tuán)公司第四十七研究所,沈陽 110000)

      1 引 言

      隨著芯片技術(shù)的進(jìn)步,對flash 的容量要求也在快速增加。但由于工藝的局限性和復(fù)雜性,往往越大容量的flash 越容易出現(xiàn)位翻轉(zhuǎn)問題。為提高系統(tǒng)可靠性,盡可能避免數(shù)據(jù)錯誤的發(fā)生,不僅要提高工藝可靠性,也要對數(shù)據(jù)進(jìn)行校驗(yàn)。針對這種情況,需要在flash 控制器中加入ECC(Error Checking and Correction)校驗(yàn)糾正設(shè)計。傳統(tǒng)的校驗(yàn)方法有奇偶校驗(yàn)、循環(huán)冗余校驗(yàn)(CRC)和漢明校驗(yàn)。奇偶校驗(yàn)是最常見的校驗(yàn)方法之一,其原理是在數(shù)據(jù)末尾加上1 位校驗(yàn)位。這種算法僅需1 位校驗(yàn)碼就可以檢測出1 位數(shù)據(jù)出錯或奇數(shù)個位出錯。CRC 校驗(yàn)是通過模2(mod 2)運(yùn)算,其特征是信息字段和校驗(yàn)字段可以任意選定長度。這種算法優(yōu)點(diǎn)是錯誤檢測能力很強(qiáng)。漢明校驗(yàn)是在有效信息位中加入校驗(yàn)位形成漢明碼。漢明碼編譯簡單,不僅能校驗(yàn)數(shù)據(jù),還能定位數(shù)據(jù)錯誤位置,因此基于漢明碼的ECC 技術(shù)被廣泛使用[1-2]。在此對flash 控制器中錯誤檢測糾正的設(shè)計原理和實(shí)現(xiàn)過程展開研究。

      2 ECC 工作原理

      對于flash 讀數(shù)據(jù)出現(xiàn)錯誤的情況,1 位錯誤的處理措施是產(chǎn)生單錯誤中斷標(biāo)志、糾正1 位錯誤并記錄錯誤地址;多位錯誤的處理措施是產(chǎn)生多錯誤中斷標(biāo)志并記錄錯誤地址。ECC 工作原理的簡單之處在于,在使用時一定會檢測并糾正1 位錯誤,一定會檢測到2 位錯誤。

      基于漢明碼的ECC 校驗(yàn)由奇偶校驗(yàn)發(fā)展而來,改進(jìn)了以往校驗(yàn)只能檢測出錯誤而無法糾正的弊端。其工作原理為在數(shù)據(jù)后加入校驗(yàn)碼,當(dāng)1 位數(shù)據(jù)發(fā)生翻轉(zhuǎn)時,會發(fā)生半數(shù)校驗(yàn)碼計算值不一致。通過對不一致校驗(yàn)碼進(jìn)行比較,可以確定具體錯誤比特位,進(jìn)而糾正數(shù)據(jù)。當(dāng)2 位發(fā)生翻轉(zhuǎn)時,會發(fā)生校驗(yàn)碼計算值不一致,只可以確定具體地址錯誤,無法判斷具體比特位。當(dāng)多位發(fā)生翻轉(zhuǎn)時,且校驗(yàn)碼計算值不一致時,只可以確定具體地址錯誤,無法判斷具體比特位。多位發(fā)生翻轉(zhuǎn)時校驗(yàn)碼計算值可能不變,但是概率極低、基本不會發(fā)生。

      在此設(shè)計的ECC 是基于144 位flash,以128bit數(shù)據(jù)為單位計算校驗(yàn)碼,將128bit 數(shù)據(jù)分為16 個字節(jié),相應(yīng)的校驗(yàn)位有14 位。在flash 寫入數(shù)據(jù)時,同時寫入校驗(yàn)碼,讀取數(shù)據(jù)后就可進(jìn)行校驗(yàn)碼比較。當(dāng)校驗(yàn)碼不一致時便可判定數(shù)據(jù)錯誤,此時判斷數(shù)據(jù)錯誤是1 位錯誤或是多位錯誤。1 位錯誤產(chǎn)生中斷、記錄地址并在糾正錯誤后輸出正確數(shù)據(jù),多位錯誤數(shù)據(jù)產(chǎn)生中斷、記錄地址輸出錯誤數(shù)據(jù)。具體流程參考ECC 校驗(yàn)流程圖,如圖1 所示。

      圖1 ECC 校驗(yàn)流程圖

      為直觀描述校驗(yàn)碼計算過程,將128bit 數(shù)據(jù)分為16 個字節(jié)并排列為計算矩,共計8 列16 行數(shù)據(jù)。ECC 校驗(yàn)碼計算如表1 所示。

      表1 ECC 校驗(yàn)碼計算表

      相應(yīng)的ECC 校驗(yàn)碼計算為一系列的異或操作,算式如下(Cn代表n 列數(shù)據(jù),Rn代表n 行數(shù)據(jù)):

      計算后將數(shù)據(jù)位和校驗(yàn)位存儲在flash 中,讀出后根據(jù)數(shù)據(jù)位重新計算校驗(yàn)碼比較。

      3 ECC 設(shè)計與實(shí)現(xiàn)

      基于設(shè)計和實(shí)際的硬件情況,ECC 整體上由三個模塊組成,即:ECC 校驗(yàn)碼計算模塊、ECC 校驗(yàn)糾正模塊和ECC 寄存器模塊。其中,ECC 校驗(yàn)碼計算模塊在寫flash 時起作用,ECC 校驗(yàn)糾正模塊在讀flash 時起作用,ECC 寄存器模塊則用于存儲ECC標(biāo)志位和flash 錯誤地址。所設(shè)計的ECC 的結(jié)構(gòu)框圖如圖2 所示。

      圖2 ECC 結(jié)構(gòu)框圖

      ECC_en 是ECC 寄存器中ECC 使能位,可以由系統(tǒng)總線控制。信號data_e 為數(shù)據(jù)錯誤標(biāo)志。ADDR為flash 地址。

      ECC 校驗(yàn)碼設(shè)計便于實(shí)現(xiàn)。此處給出部分flash控制器ECC 模塊的verilogHDL 的RTL 級實(shí)現(xiàn)。flash控制器的ECC 校驗(yàn)碼計算模塊設(shè)計采用分半異或,同時計算14 次,得出ECC 校驗(yàn)碼。校驗(yàn)碼計算過程如下述代碼[3-8]:

      在ECC 糾正模塊設(shè)計中校驗(yàn)碼計算方法與校驗(yàn)碼計算模塊計算方法相同,增加了1 位錯誤糾正功能,其糾正原理如表2 所示(以正確數(shù)據(jù)為144'h9 995_0000_0014_0000_0013_0000_0012_0000_0011,錯誤數(shù)據(jù)為144'h9995_0000_0014_0000_0013_0000_0002_0000_0011 為例)。

      表2 糾錯原理表

      對比表1 的ECC 校驗(yàn)碼計算表,便可以清楚地看出錯誤位位數(shù)為bit36,將該錯誤位取反即可得出正確數(shù)據(jù)。

      對于2 位及2 位以上錯誤,目前還沒有方法進(jìn)行糾正,但本設(shè)計可以檢測大部分的數(shù)據(jù)錯誤情況并記錄錯誤數(shù)據(jù)存放地址。

      4 功能仿真

      在ECC 模塊設(shè)計完成后,將其與其他IP 進(jìn)行整合,并掛接到Cortex-M4 為核心處理器的一款MCU 設(shè)計中,搭建仿真驗(yàn)證平臺進(jìn)行功能驗(yàn)證以及FPGA 驗(yàn)證。仿真結(jié)果如下:

      (1) 寫數(shù)據(jù)

      使用總線寫flash,使能ECC,對flash 寫操作進(jìn)行功能仿真,仿真結(jié)果如圖3 表示(以正確數(shù)據(jù)為144'h9995_0000_0014_0000_0013_0000_0012_0000_0011,錯誤數(shù)據(jù)為144'h9995_0000_0014_0000_001 3_0000_0002_0000_0011 為例)。

      圖3 校驗(yàn)碼計算

      (2) 讀數(shù)據(jù)1 位錯誤

      使用總線讀flash,使能ECC,對讀flash 模式進(jìn)行功能仿真,強(qiáng)制翻轉(zhuǎn)1 位數(shù)據(jù),仿真結(jié)果如圖4 表示(以正確數(shù)據(jù)為144'h9995_0000_0014_0000_0013_0000_0012_0000_0011,錯誤數(shù)據(jù)為144'h9995_000 0_0014_0000_0013_0000_0002_0000_0011 為例)。

      圖4 讀數(shù)據(jù)1 位錯誤

      在仿真中,強(qiáng)制將第36 位置0,使flash 輸出結(jié)果錯1 位。32'h810_c040~32'h810_c04C 地址為數(shù)據(jù)128'h 0000_0014_0000_0013_0000_0012_0000_0011地址,所以在系統(tǒng)總線中32'h810_c044 為32'h0000_0012 地址。

      5 結(jié)束語

      通過對設(shè)計的研究與分析,完成了基于144 位flash 的硬件ECC 設(shè)計,并將設(shè)計集成在flash 控制器中。設(shè)計采用VerilogHDL 硬件描述語言設(shè)計并實(shí)現(xiàn)了ECC 校驗(yàn)。該設(shè)計方法簡單且易于實(shí)現(xiàn),可1位錯誤檢測糾正、2 位錯誤檢測并記錄錯誤地址。記錄錯誤地址也可以避免其繼續(xù)使用,在芯片實(shí)際應(yīng)用時可以優(yōu)化flash 壞區(qū)管理策略。

      猜你喜歡
      校驗(yàn)碼校驗(yàn)原理
      了解咳嗽祛痰原理,有效維護(hù)健康
      平均場正倒向隨機(jī)控制系統(tǒng)的最大值原理
      爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
      化學(xué)反應(yīng)原理全解讀
      基于Excel實(shí)現(xiàn)書號校驗(yàn)碼的驗(yàn)證
      通信原理教學(xué)改革探索
      基于FPGA的循環(huán)冗余校驗(yàn)碼設(shè)計
      電子世界(2015年14期)2015-11-07 05:32:29
      身份證號碼中的數(shù)學(xué)
      大型電動機(jī)高阻抗差動保護(hù)穩(wěn)定校驗(yàn)研究
      電測與儀表(2015年1期)2015-04-09 12:03:02
      基于加窗插值FFT的PMU校驗(yàn)方法
      临泽县| 长白| 宾阳县| 虎林市| 曲靖市| 长兴县| 兴化市| 同江市| 江陵县| 康马县| 绥宁县| 盈江县| 舒兰市| 甘孜县| 延吉市| 华亭县| 北海市| 兴化市| 赤壁市| 平阳县| 叶城县| 永平县| 花莲市| 健康| 安远县| 依安县| 尚志市| 龙门县| 万盛区| 屯留县| 英德市| 铁岭县| 克什克腾旗| 桓仁| 藁城市| 青川县| 桦甸市| 和顺县| 漳平市| 射阳县| 老河口市|