0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RAM的 Parity與ECC

FPGA自習(xí)室 ? 來源:FPGA自習(xí)室 ? 作者:FPGA自習(xí)室 ? 2020-11-02 16:41 ? 次閱讀

RAM的 Parity 與 ECC

一、概念介紹

1.1 Parity的概念

Parity,即奇偶校驗位,指在數(shù)據(jù)存儲和傳輸中,字節(jié)中額外增加一個比特位,用來檢驗錯誤。它常常是從兩個或更多的原始數(shù)據(jù)中產(chǎn)生一個冗余數(shù)據(jù)。一個字節(jié)數(shù)據(jù)的校驗位等于8bit數(shù)據(jù)異或即:p=x0^x1^x2^x3^x4^x5^x6^x7。此時,實際的數(shù)據(jù)傳輸序列為9bit:數(shù)據(jù)+奇偶校驗位。

Parity 這個概念可能最初接觸到可能是在使用串口調(diào)試助手時,它有個可選的奇偶校驗,就是為了指示數(shù)據(jù)傳輸過程中,發(fā)送方和接受方數(shù)據(jù)序列1的個數(shù)是否一致。如果不一致,說明數(shù)據(jù)在傳輸?shù)逆溌分锌赡艹鲥e了。

優(yōu)點:

結(jié)構(gòu)簡單,只需異或計算就可以實現(xiàn),數(shù)據(jù)量小時實現(xiàn)代價小。

缺點:

1、不能修正錯誤:只知道校驗的數(shù)據(jù)中有部分比特發(fā)生錯誤,無法判斷哪幾個比特發(fā)送錯誤。

2、有偶數(shù)個比特位時,則無法判斷出錯。

3、數(shù)據(jù)位寬較大時實現(xiàn)代價大:如1024比特數(shù)據(jù),需要256bit的校驗位。

1.2 ECC的概念

ECC是“Error Correcting Code”的簡寫,ECC是一種能夠?qū)崿F(xiàn)“錯誤檢查和糾正”的技術(shù)。通過上面的分析我們知道Parity機制是通過在原來數(shù)據(jù)位的基礎(chǔ)上增加一個數(shù)據(jù)位來檢查當前8位數(shù)據(jù)的正確性,隨著數(shù)據(jù)位每增加8比特,檢驗位需要增加1比特。當數(shù)據(jù)量為256字節(jié)時,需要256個比特位,并且出錯的數(shù)據(jù)無法恢復(fù)。由此,一種存儲檢錯糾錯機制出現(xiàn)了,這就是ECC。ECC同樣通過增加校驗位來進行錯誤判斷,但是能夠進行錯誤糾正。

優(yōu)點:

1):大量數(shù)據(jù)位實現(xiàn)代價低:8比特數(shù)據(jù)需要5個校驗位,256字節(jié)(256*8比特)的數(shù)據(jù)值需要5個列校驗位和11行校驗位

2)能夠糾正錯誤:在內(nèi)存中ECC能夠容許錯誤,并可以將錯誤更正,使系統(tǒng)得以持續(xù)正常的操作,不致因錯誤而中斷

缺點:

1):只能修復(fù)1比特錯誤

當數(shù)據(jù)只有單比特錯誤時,ECC能夠進行錯誤修復(fù);超過2比特的數(shù)據(jù)錯誤,將無法修復(fù),ECC只能輸出多比特錯誤信號。

2):不保證能檢測超過2比特的錯誤。

超過2比特的錯誤不一定能檢測出來。

3):算法復(fù)雜,邏輯級數(shù)比較深,時序不好收斂。

二、應(yīng)用場景

IC設(shè)計中RAM模塊需要輸出信號有Parity信號和ECC信號。這樣能夠在一定程度上確保芯片的可測性以及可靠性。特別是在邏輯設(shè)計中使用的鏈表RAM或者控制RAM,如果這類RAM底層有壞塊而導(dǎo)致RAM讀出的數(shù)據(jù)某bit發(fā)生錯誤,可能會導(dǎo)致系統(tǒng)掛死。為了減少出現(xiàn)這種情況的風(fēng)險,一般會對這類RAM做ECC計算邏輯,而像數(shù)據(jù)流RAM或者配置RAM可以只做Parity校驗。

事實上,在做Parity計算時,并不需要嚴格按照每字節(jié)增加1bit Parity校驗位,這樣對于大位寬的RAM而言,僅僅為了實現(xiàn)校驗錯誤,實現(xiàn)代價太大。因此,可以一個RAM做一個Parity校驗位。而對于ECC而言,一般針對位寬較小的RAM。

三、實現(xiàn)細節(jié)

Parity是同一個data所有比特的異或,在data_in寫入的時候進行異或計算得到parity_in,同時寫入到RAM中,讀出data的得到data_out,對data_out進行異或計算得到parity_out,若parity_out與parity_in(ram讀出數(shù)據(jù)所攜帶)不相等,則表示數(shù)據(jù)有錯誤。

此外,在RAM的寫側(cè)和讀側(cè)加入Parity計算邏輯時,特別是大位寬的RAM,則需要考慮reg2mem和mem2reg時序是否收斂的問題,一般情況下處理是寫側(cè)計算Parity后打拍后寫入,讀側(cè)打拍后再做Parity計算邏輯。

ECC負責(zé)糾錯,能夠修正1bit的數(shù)據(jù)。算法比較復(fù)雜,可以參考以下博客,不在敘述。

參考博客:

https://blog.csdn.net/wzsalan/article/details/79842220

https://blog.csdn.net/icxiaoge/article/details/79996456

責(zé)任編輯:xj

原文標題:IC基礎(chǔ):RAM 的 Parity 與 ECC

文章出處:【微信公眾號:FPGA自習(xí)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • IC
    IC
    +關(guān)注

    關(guān)注

    36

    文章

    5950

    瀏覽量

    175613
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1368

    瀏覽量

    114701
  • ECC
    ECC
    +關(guān)注

    關(guān)注

    0

    文章

    97

    瀏覽量

    20569

原文標題:IC基礎(chǔ):RAM 的 Parity 與 ECC

文章出處:【微信號:FPGA_Study,微信公眾號:FPGA自習(xí)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何檢測電腦的RAM內(nèi)存

    在現(xiàn)代計算機系統(tǒng)中,隨機存取存儲器(RAM)是至關(guān)重要的組件之一。它負責(zé)存儲當前正在使用的程序和數(shù)據(jù),以便CPU可以快速訪問。隨著技術(shù)的發(fā)展,RAM的速度和容量都有了顯著的提升,但如何準確地檢測
    的頭像 發(fā)表于 11-11 09:51 ?511次閱讀

    什么是RAM內(nèi)存 RAM內(nèi)存對電腦性能的影響

    什么是RAM內(nèi)存? RAM(Random Access Memory,隨機存取存儲器)是電腦中的一種易失性存儲器,它用于存儲電腦運行時的數(shù)據(jù)和程序。與硬盤等非易失性存儲器不同,RAM在斷電后會丟失
    的頭像 發(fā)表于 11-11 09:38 ?934次閱讀

    TDAxx上的ECC/EDC

    電子發(fā)燒友網(wǎng)站提供《TDAxx上的ECC/EDC.pdf》資料免費下載
    發(fā)表于 10-11 10:19 ?0次下載
    TDAxx上的<b class='flag-5'>ECC</b>/EDC

    DDR Inline ECC在Jacinto7 SoC中的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《DDR Inline ECC在Jacinto7 SoC中的應(yīng)用.pdf》資料免費下載
    發(fā)表于 09-27 11:04 ?0次下載
    DDR Inline <b class='flag-5'>ECC</b>在Jacinto7 SoC中的應(yīng)用

    ram和eeprom各有什么特點

    RAM(Random Access Memory,隨機存取存儲器)和EEPROM(Electrically Erasable Programmable Read-Only Memory,電
    的頭像 發(fā)表于 09-18 11:11 ?914次閱讀

    PSoC5LP:ECC總是返回失敗的原因?

    ECC 后,使用 AN78175 項目提供的示例和 SelfTest_FlashECC() 函數(shù)應(yīng)該很容易: uint8_t SelfTest_FlashECC(void) { uint8_t
    發(fā)表于 05-30 08:15

    CYT4BF的監(jiān)管區(qū) (SFlash) 是否支持 ECC?

    CYT4BF 的監(jiān)管區(qū) (SFlash) 是否支持 ECC? 如果支持 ECC, 控制 ECC 的寄存器是否與 FLASHC/FLASHC1_FLASH_CTL.MAIN_ECC_EN
    發(fā)表于 05-23 07:26

    MCU重新上電后,如何進行ECC初始化?

    如題,在重新上電之后,需要讀取ram地址,讀取時進入異常,查閱資料后發(fā)現(xiàn)是由于重新上電,需要進行ECC初始化,請問這該如何進行
    發(fā)表于 03-19 07:53

    fpga雙口ram的使用

    FPGA雙口RAM的使用主要涉及配置和使用雙端口RAM模塊。雙端口RAM的特點是有兩組獨立的端口,可以對同一存儲塊進行讀寫操作,從而實現(xiàn)并行訪問。
    的頭像 發(fā)表于 03-15 13:58 ?1010次閱讀

    ECC功能開啟后如何驗證這個功能是否正常開啟呢?

    各位大佬,現(xiàn)在我這邊一個項目,代碼層面開啟ECC監(jiān)控和中斷后,如何驗證當真實應(yīng)用環(huán)境下,Ram區(qū)或者Flash區(qū)某個位被打翻后,會正常觸發(fā)中斷,實現(xiàn)讀和回寫的功能呢?
    發(fā)表于 03-11 06:39

    如何通過為TC332微控制器注入ECC錯誤來測試RAM錯誤?

    我們使用的是 TC332 微控制器,我們使用了 MBIST 測試和無損測試方法。 這些測試提供了在測試期間沒有錯誤的肯定答案。 根據(jù) fuSA 的指導(dǎo)方針,我們需要通過注入 ECC 錯誤來測試 RAM 錯誤和 Pflash 錯誤。
    發(fā)表于 01-31 06:39

    求助,如何在aurix中測試Flash ECC?

    嗨英飛凌??! 我需要在閃存中測試 TC39x 微控制器的 ECC 錯誤檢測,有一些文檔描述了注入錯誤的正確程序?
    發(fā)表于 01-31 06:27

    Pflash和Dflash都有閃存ECC保護,ECC內(nèi)存在哪里?

    在用戶手冊中,Pflash 和 Dflash 都有閃存 ECC 保護,我想知道 ECC 內(nèi)存在哪里? 它會占用 pflash 空間還是存儲在用戶無法訪問的地方? 在此先謝謝!
    發(fā)表于 01-26 08:12

    Aurix pFlash內(nèi)存部分是如何在微控制器級別上創(chuàng)建ECC寫入錯誤的?

    我正在查看 Aurix pFlash 內(nèi)存部分是如何在微控制器級別上創(chuàng)建 ECC 寫入錯誤的,以及他們是如何通過故障注入技術(shù)使用它產(chǎn)生多位錯誤的 通常 ecc 錯誤是使用高電壓和其他方法產(chǎn)生的,但
    發(fā)表于 01-22 07:37

    MCU內(nèi)部SRAM的ECC初始化竟可由ROM完成

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是i.MXRT1170內(nèi)部RAMECC初始化工作可全部由ROM完成。
    的頭像 發(fā)表于 01-04 15:39 ?1462次閱讀