比特派app官方版下载|ecc
什么是ECC校验 - 知乎
什么是ECC校验 - 知乎首发于其他切换模式写文章登录/注册什么是ECC校验李清龙机电一体化工程ECC校验ECC内存即纠错内存,简单的说,其具有发现错误,纠正错误的功能,一般多应用在高档台式电脑/服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。中文名ECC校验应用领域高档台式电脑/服务器功 能使电脑系统趋于安全稳定又 名ECC内存即纠错内存目录1 什么是ECC校验▪ 定义▪ 技术原理▪ 示例2 其它相关资料▪ ECC内存误区▪ 备注定义ECC校验是一种内存纠错原理,它是比较先进的内存错误检查和更正的手段。ECC内存即纠错内存,简单的说,其具有发现错误,纠正错误的功能,一般多应用在高档台式电脑/服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。技术原理内存是一种电子器件,在其工作过程中难免会出现错误,而对于稳定性要求高的用户来说,内存错误可能会引起致命性的问题。内存错误根据其原因还可分为硬错误和软错误。硬件错误是由于硬件的损害或缺陷造成的,因此数据总是不正确,此类错误是无法纠正的;软错误是随机出现的,例如在内存附近突然出现电子干扰等因素都可能造成内存软错误的发生。为了能检测和纠正内存软错误,在ECC技术出现之前,首先出现的是内存“奇偶校验(Parity)”。内存中最小的单位是比特,也称为“位(bit)”,位有只有两种状态分别以1和0来标示,每8个连续的比特叫做一个字节(byte)。不带奇偶校验的内存每个字节只有8位,如果其某一位存储了错误的值,就会导致其存储的相应数据发生变化,进而导致应用程序发生错误。而奇偶校验就是在每一字节(8位)之外又增加了一位作为错误检测位。在某字节中存储数据之后,在其8个位上存储的数据是固定的,因为位只能有两种状态1或0,假设存储的数据用位标示为1、1、1、0、0、1、0、1,那么把每个位相加(1+1+1+0+0+1+0+1=5),结果是奇数。对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU读取存储的数据时,它会再次把前8位中存储的数据相加,计算结果是否与校验位相一致。从而一定程度上能检测出内存错误,奇偶校验只能检测出错误而无法对其进行修正,同时虽然双位同时发生错误的概率相当低,奇偶校验却无法检测出双位错误。通过上面的分析我们知道Parity内存是通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,但随着数据位的增加Parity用来检验的数据位也成倍增加,就是说当数据位为16位时它需要增加2位用于检查,当数据位为32位时则需增加4位,依此类推。特别是当数据量非常大时,数据出错的几率也就越大,对于只能纠正简单错误的奇偶检验的方法就显得力不从心了,正是基于这样一种情况,一种新的内存技术应允而生了,这就是ECC(错误检查和纠正),这种技术也是在原来的数据位上外加校验位来实现的。不同的是两者增加的方法不一样,这也就导致了两者的主要功能不太一样。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。总之,在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断,且ECC具有自动更正的能力,可以将Parity无法检查出来的错误位查出并将错误修正。示例ECC(Error Checking and Correcting,错误检查和纠正)内存,它同样也是在数据位上额外的位存储一个用数据加密的代码。当数据被写入内存,相应的ECC代码与此同时也被保存下来。当重新读回刚才存储的数据时,保存下来的ECC代码就会和读数据时产生的ECC代码做比较。如果两个代码不相同,他们则会被解码,以确定数据中的哪一位是不正确的。然后这一错误位会被抛弃,内存控制器则会释放出正确的数据。被纠正的数据很少会被放回内存。假如相同的错误数据再次被读出,则纠正过程再次被执行。重写数据会增加处理过程的开销,这样则会导致系统性能的明显降低。如果是随机事件而非内存的缺点产生的错误,则这一内存地址的错误数据会被再次写入的其他数据所取代。其它相关资料ECC内存误区一谈到服务器内存,大家都一致强调要买ECC内存,认为ECC内存速度快,其实是一种错误地认识,ECC内存成功之处并不是因为它速度快(速度方面根本不关它事只与内存类型有关),而是因为它有特殊的纠错能力,使服务器保持稳定。ECC本身并不是一种内存型号,也不是一种内存专用技术,它是一种广泛应用于各种领域的计算机指令中,是一种指令纠错技术。它的英文全称是“Error Checking and Correcting”,对应的中文名称就叫做“错误检查和纠正”,从这个名称我们就可以看出它的主要功能就是“发现并纠正错误”,它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行。之所以说它并不是一种内存型号,那是因为并不是一种影响内存结构和存储速度的技术,它可以应用到不同的内存类型之中,就象我们在前面讲到的“奇偶校正”内存,它也不是一种内存,最开始应用这种技术的是EDO内存,SD仍有应用,而ECC内存主要是从SD内存开始得到广泛应用,而新的DDR、RDRAM也有相应的应用,主流的ECC内存其实是一种SD内存。备注1.带ECC校验的内存还得要主板支持,并在BIOS中进行相应的设置,应用在大多数服务器主板。 2.厂商推出的入门级低端服务器使用的内存也是有ECC功能。3. 使用ECC校验的内存,会对系统的性能会造成微弱的降低,但是这种纠错对服务器对应用而言是十分重要的,带ECC校验的内存价格比普通内存要昂贵许多。编辑于 2021-03-13 16:14内存(RAM)手机内存中央处理器 (CPU)赞同 204 条评论分享喜欢收藏申请转载文章被以下专栏收录其他不便於分類的
更正錯誤記憶體 - 維基百科,自由的百科全書
更正錯誤記憶體 - 維基百科,自由的百科全書
跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁分類索引特色內容新聞動態近期變更隨機條目資助維基百科
說明
說明維基社群方針與指引互助客棧知識問答字詞轉換IRC即時聊天聯絡我們關於維基百科
語言
語言連結位於頁面頂端,標題的另一側。
搜尋
搜尋
建立帳號
登入
個人工具
建立帳號 登入
用於已登出編輯者的頁面 了解更多
貢獻討論
目次
移至側邊欄
隱藏
序言
1技術原理
2誤解
3備註
4參考文獻
5外部連結
切換目錄
更正錯誤記憶體
17 種語言
العربيةCatalàČeštinaEnglishEestiفارسیFrançaisItaliano日本語한국어LatviešuNederlandsNorsk bokmålPolskiRomânăРусскийУкраїнська
編輯連結
條目討論
臺灣正體
不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體
閱讀編輯檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀編輯檢視歷史
一般
連結至此的頁面相關變更上傳檔案特殊頁面固定連結頁面資訊引用此頁面取得短網址下載QR碼維基數據項目
列印/匯出
下載為 PDF可列印版
維基百科,自由的百科全書
此條目可能包含原創研究。請協助補充參考資料、添加相關內聯標籤和刪除原創研究內容以改善這篇條目。詳細情況請參見討論頁。
此條目頁的主題是一種記憶體糾錯技術。關於橢圓曲線密碼加密技術(ECC),請見「橢圓曲線密碼學」。
ECC RAM 每面均有9枚記憶體顆粒,比普通的多1枚
更正錯誤記憶體(英語:Error-Correcting Code memory,縮寫:ECC memory或ECC)指能夠實現錯誤檢查和糾正錯誤技術的記憶體。
技術原理[編輯]
在ECC技術出現之前,記憶體中應用最多的另外一種錯誤檢查技術,是奇偶校驗位技術。
在數位電路中,最小的資料單位是「位元(bit)」,也叫「位元」。「位元」也是記憶體中的最小單位,它是通過「1」和「0」來表示資料高、低電頻訊號。在數字電路中8個連續的位元是一位元組,不帶「奇偶校驗」的記憶體中的每個位元組只有8位元,若它的某一位儲存出了錯誤,就會使其中儲存的相應資料發生改變而導致應用程式發生錯誤。
而帶有「奇偶校驗」的記憶體在每一位元組(8位元)外又額外增加了一位用來進行錯誤檢測。比如一個位元組中儲存了某一數值(1、0、1、0、1、0、1、1),把這每一位相加起來(1+0+1+0+1+0+1+1=5)。對於偶校驗,若其結果是奇數,校驗位就定義為1,反之則為0;對於奇校驗則相反。當CPU返回讀取儲存的資料時,它會再次相加前8位元中儲存的資料,計算結果是否與校驗位相一致。當CPU發現二者不同時就會試圖糾正這些錯誤。
但奇偶校驗位技術有個缺點,當記憶體查到某個資料位有錯誤時,由於不一定能確定錯誤在哪一個位,也就不一定能修正錯誤。所以帶有奇偶校驗的記憶體的主要功能僅僅是「發現錯誤」,並不能糾正錯誤。
此外,奇偶校驗技術是通過在原來資料位的基礎上增加一個資料位來檢查當前8位元資料的正確性,但隨著資料位的增加,用來檢驗的資料位也成倍增加,就是說當資料位為16位元時它需要增加2位用於檢查,當資料位為32位元時則需增加4位元,依此類推。特別是當資料量非常大時,資料出錯的機率也就越大,對於只能糾正簡單錯誤的奇偶檢驗的方法就顯得力不從心了。正是基於這樣一種情況,錯誤檢查和糾正(Error Checking and Correcting)應運而生了。
ECC與奇偶校驗不同的是,如果資料位是8位元,則需要增加5位來進行ECC錯誤檢查和糾正。資料位每增加一倍,ECC只增加一位核對位元。也就是說當資料位為16位元時ECC位為6位,32位元時ECC位為7位,資料位為64位元時ECC位為8位元,依此類推。在記憶體中ECC能夠容許錯誤,並可以將錯誤自動更正,使系統得以正常的操作,不致因錯誤而中斷。
誤解[編輯]
部份人認為伺服器必須使用ECC記憶體,認為ECC記憶體效能較高,其實是一種謬誤。ECC記憶體之所以廣泛應用於伺服器領域,並非其效能,而是因為ECC記憶體的糾錯能力,使伺服器保持穩定。
ECC本身並不是一種記憶體型號,也不是一種記憶體專用技術,它是一種廣泛應用於各種領域的電腦中的糾錯技術。
備註[編輯]
截止到2020年8月9日,帶ECC校驗的記憶體還得要電腦其他部件支援才能正常使用,例如主機板和CPU[1](並且可能要在BIOS中進行相應的設定),應用在大多數伺服器CPU和主機板上(一些非伺服器CPU和主機板也支援)。還有,在購買ECC記憶體時,需注意是ECC UDIMM、ECC RDIMM、ECC LRDIMM、ECC 3DS RDIMM還是其他,因為你的電腦其他部件可能不支援某些種類。
參考文獻[編輯]
^ Server Memory: Types and Performance | Crucial.com. Crucial. [2020-08-09] (美國英語).
外部連結[編輯]
SoftECC: A System for Software Memory Integrity Checking (頁面存檔備份,存於網際網路檔案館)
A Tunable, Software-based DRAM Error Detection and Correction Library for HPC (頁面存檔備份,存於網際網路檔案館)
Detection and Correction of Silent Data Corruption for Large-Scale High-Performance Computing (頁面存檔備份,存於網際網路檔案館)
Single-Bit Errors: A Memory Module Supplier’s perspective on cause, impact and detection (頁面存檔備份,存於網際網路檔案館)
Intel Xeon Processor E3 - 1200 Product Family Memory Configuration Guide
Linus Torvalds On The Importance Of ECC RAM, Calls Out Intel's "Bad Policies" Over ECC (頁面存檔備份,存於網際網路檔案館)
取自「https://zh.wikipedia.org/w/index.php?title=纠错内存&oldid=79443855」
分類:電腦記憶體隱藏分類:CS1美國英語來源 (en-us)可能帶有原創研究的條目拒絕當選首頁新條目推薦欄目的條目含有英語的條目
本頁面最後修訂於2023年10月20日 (星期五) 19:59。
本站的全部文字在創用CC 署名-相同方式分享 4.0協議之條款下提供,附加條款亦可能應用。(請參閱使用條款)
Wikipedia®和維基百科標誌是維基媒體基金會的註冊商標;維基™是維基媒體基金會的商標。
維基媒體基金會是按美國國內稅收法501(c)(3)登記的非營利慈善機構。
隱私權政策
關於維基百科
免責聲明
行為準則
開發人員
統計
Cookie 聲明
行動版檢視
切換限制內容寬度
ECC内存_百度百科
存_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心收藏查看我的收藏0有用+10ECC内存播报讨论上传视频应用了错误检查和纠正技术(ECC)的内存条ECC内存,即应用了能够实现错误检查和纠正技术(ECC)的内存条。一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。ECC是“Error Checking and Correcting”的简写,中文名称是“错误检查和纠正”。中文名错误检查和纠正外文名Error Checking and Correcting应 用服务器及图形工作站上简 称ECC内存目录1基本信息▪技术原理▪特点2ECC内存误区3其他信息基本信息播报编辑技术原理ECC内存要了解ECC技术,就不能不提到Parity(奇偶校验)。在ECC技术出现之前,内存中应用最多的是另外一种技术,就是Parity(奇偶校验)。我们知道,在数字电路中,最小的数据单位就是叫“比特(bit)”,也叫数据“位”,“比特”也是内存中的最小单位,它是通过“1”和“0”来表示数据高、低电平信号的。在数字电路中8个连续的比特是一个字节(byte),不带“奇偶校验”的内存中的每个字节只有8位,若它的某一位存储出了错误,就会使其中存储的相应数据发生改变而导致应用程序发生错误。而带有“奇偶校验”的内存在每一字节(8位)外又额外增加了一位用来进行错误检测。比如一个字节中存储了某一数值(1、0、1、0、1、0、1、1),把这每一位相加起来(1+0+1+0+1+0+1+1=5)。若其结果是奇数,对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU返回读取存储的数据时,它会再次相加前8位中存储的数据,计算结果是否与校验位相一致。当CPU发现二者不同时就会试图纠正这些错误,但Parity有个缺点,当内存查到某个数据位有错误时,却并不一定能确定在哪一个位,也就不一定能修正错误,所以带有奇偶校验的内存的主要功能仅仅是“发现错误”,并不能纠正部分简单的错误。通过上面的分析我们知道Parity内存是通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,但随着数据位的增加Parity用来检验的数据位也成倍增加,就是说当数据位为16位时它需要增加2位用于检查,当数据位为32位时则需增加4位,依此类推。特别是当数据量非常大时,数据出错的几率也就越大,对于只能纠正简单错误的奇偶检验的方法就显得力不从心了,正是基于这样一种情况,一种新的内存技术应允而生了,这就是ECC(错误检查和纠正),这种技术也是在原来的数据位上外加校验位来实现的。不同的是两者增加的方法不一样,这也就导致了两者的主要功能不太一样。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。特点在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断,且ECC具有自动更正的能力,可以将Parity无法检查出来的错误位查出并将错误修正。一些厂商推出的入门级低端服务器使用的多是普通PC用的SDRAM,不带ECC功能,在选购时应该注意这个指标。ECC内存误区播报编辑是一谈到服务器内存,大家都一致强调要买ECC内存,认为ECC内存速度快,其实是一种错误地认识,ECC内存成功之处并不是因为它速度快(速度方面根本不关它事只与内存类型有关),而是因为它有特殊的纠错能力,使服务器保持稳定。ECC本身并不是一种内存型号,也不是一种内存专用技术,它是一种广泛应用于各种领域的计算机指令中,是一种指令纠错技术。它的英文全称是“Error Checking and Correcting”,对应的中文名称就叫做“错误检查和纠正”,从这个名称我们就可以看出它的主要功能就是“发现并纠正错误”,它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行。之所以说它并不是一种内存型号,那是因为并不是一种影响内存结构和存储速度的技术,它可以应用到不同的内存类型之中,就象我们在前面讲到的“奇偶校正”内存,它也不是一种内存,最开始应用这种技术的是EDO内存,SD也有应用,而ECC内存主要是从SD内存开始得到广泛应用,而新的DDR、RDRAM也有相应的应用,主流的ECC内存其实是一种SD内存。其他信息播报编辑截止到2020年8月9日,带ECC校验的内存还得要电脑其他部件支持才能正常使用,例如主板和cpu [1](并且可能要在BIOS中进行相应的设置),应用在大多数服务器cpu和主板上(一些非服务器cpu和主板也支持)。还有,在购买ecc内存时,需注意是ecc udimm还是ecc rdimm还是ecc lrdimm还是ecc 3ds rdimm还是其他,你的配置可能不支持某些种类。新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000第13回【科普】:什么是ECC?对内存产品有什么帮助? - 知乎
第13回【科普】:什么是ECC?对内存产品有什么帮助? - 知乎切换模式写文章登录/注册第13回【科普】:什么是ECC?对内存产品有什么帮助?金泰克KimtigoKimtigo金泰克专注数据存储,好存储就要快!大家都注意到去年发布新一代DDR5内存自带ECC纠错功能。过去ECC应用在服务器产品中由特定的主板和CPU才能实现ECC功能,而现在DDR5内存通过内存集成的ECC芯片可以自行检测和纠正内存单元内的数据。今天就来讨论下ECC纠错功能,大家有其他想法的可以在评论区进行补充ECC是什么?ECC的全称是 Error Checking and Correction or Error correctionCoding,是一种用于差错检测和修正的算法。NAND闪存在生产和使用中都会有坏块产生,BBM就是坏块的管理机制。那么为了在使用过程中减少坏块的产生,通过2种方式进行预防:1、利用磨损平衡(WL)提前预防坏块产生;2、已经产生“坏块”的引入ECC,通过ECC对“坏块”进行有效检测及纠正。如果操作时序和电路稳定性不存在问题,NAND闪存出错的时候一般不会造成整个Block或Page不能读取甚至全部出错,而是整个Page中只有一个或几个bit出错,这个时候ECC针对出错的bit进行检测和纠正。从DDR5自带ECC功能来看就是在内存中增加存储芯片,这样能检测和纠正内存单元中的数据错误,同时也能够有效提高DRAM芯片良率。奇偶校验在ECC技术出现之前,内存中应用最多的另外一种错误检查技术,是奇偶校验位(Parity)技术。奇偶校验,即Parity Check,根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验通常用于确定数据是否出错。在数字电路中,最小的数据单位就是叫“比特(bit)”,也叫数据“位”,“比特”也是内存中的最小单位,它是通过“1”和“0”来表示数据高、低电平信号。在数字电路中8个连续的比特是一个字节(byte),如:字节中某一存储数值(1、0、1、0、1、0、1、1)相加是5,结果奇数。采用偶校验,校验位就定义为1,5+1=6为偶数;对于奇校验,则为0,5+0=5奇数。当CPU读取存储的数据时,会再次把前8位中存储的数据相加,计算结果是否与校验位相一致(即下面讲到的与ECC签名是否一致)。但Parity(奇偶校验位)的不足是:当内存查到某个数据位有错误时,不能准确定位存在错误的数据位,也就不一定能修正错误。而且当数据量大时,数据出错的几率也就越大,对于只能纠正简单错误的奇偶检验的方法就无法纠正,由此出现错误检查和纠正(Error Checking and CorrecTIng)。ECC的运作原理:ECC是在奇偶校验的基础上发展起来,与奇偶校验技术一样,ECC纠错技术也需要额外的空间来储存校正码,但其占用的位数跟数据的长度并非成线性关系。具体来说,它是以8位数据、5位ECC码为基准,随后每增加一个8位数据只需另增加一位ECC码即可。也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。所以ECC有更多位数的校验位,容错能力更强。ECC纠错算法分类有哪些?常用的闪存ECC 纠错算法有BCH (Bose–Chaudhuri–Hocquenghem codes)和LDPC(Low Density Parity Check Code)意思是低密度奇偶校验码。目前SSD最普遍使用的ECC码是BCH码。当数据写入的时候,控制器内部的ECC模块计算数据并生成ECC签名(由此提供可信的数据背书),一般来说这个步骤非常快,因此并不会影响整个SSD太多的性能表现。ECC的签名一般来说都保存在NAND页后部的SA区域,当数据从NAND读取的时候ECC模块回去读取ECC签名,并对照相同与否来发现出现的错误。如检测到数据错误就会生成独特的ECC算法(如BCH)进行修改。如ECC纠正不过来, 一般会报ECC Fail, 用户表现为Read Fail,有时候ECC甚至诊测不到出错, 就会导致数据错误。如果如果整个页甚至块出现大面积错误,那么只有RAID(RedundantArrays of Independent Disks磁盘阵列)这类的冗余保护才能修复了。RAID由很多块独立的磁盘,可利用同位检查(Parity Check)的观念,当数组中任意一个硬盘发生故障时,仍可读出数据。在数据重构时,可将数据经计算后重新置入新硬盘中。而关于LDPC处理技术在金泰克纯国产硬盘C320中有所应用,下期会单独讲解LDPC处理技术。ECC的错误认识谈到服务器内存,大家都强调买ECC内存,认为ECC内存速度快,其实是一种错误地认识。ECC内存成功之处并不是因为它速度快(速度只与内存类型有关),而是因为它有特殊的纠错能力,使服务器保持稳定。这种ECC纠错功广泛应用于各种领域的计算机指令中,是一种指令纠错技术。ECC内存插到普通PC主板上吗?目前消费类内存自带ECC功能的产品是DDR5,但DDR5防呆口与D4不同,在现有的DDR4平台上无法使用,需购买支持DDR5的主板。且11代以及以前的处理器不支持DDR5内存,所以需配置新的主板和处理器。去年12月酷睿12代也正是对外发布,支持新一代DDR5内存。发布于 2022-04-29 10:37内存(RAM)ECC 内存ECC赞同 6添加评论分享喜欢收藏申请
ECC 内存是如何进行纠错的? - 知乎
ECC 内存是如何进行纠错的? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册计算机硬件电子数字电路ECC 内存ECC 内存是如何进行纠错的?关注者28被浏览111,314关注问题写回答邀请回答好问题添加评论分享3 个回答默认排序知乎用户ECC内存的定义,就请直接看维基百科.不好翻墙,直接百度百科也一样的.ECC内存的原理,其实没有那么复杂,就是通信原理中的纠错编码.CRC校验和用于检查编码错误,比较常见.比如数据比特2位,最后一个比特的校验位,校验算法直接就是XOR运算.这里最后一个比特是多余的,从信息的角度上讲,是冗余的,其实是一个意思.那么000,就是一个可以通过检查的编码结果.在经过传输或者存储的过程中,有可能改变了一个比特.注意:这里000,已经是一个完整的编码结果了,并不一定要区分原始的数据信息和校验信息,其中的任何一个比特都可能改变.如果改变了一个比特,可能是001,010,或者100,都无法通过校验.如果改变2个比特,011,就可以通过校验规则.也就是2个比特的错误,这种方法无法检查出错误.我们上面编码的结果和原始比特位的个数位(3,2).类似的汉明码,则是4个比特的信息,编码为7个比特.也就是汉明(7,4)编码.纠错编码其实原理比较相似.就是增加更多的冗余信息.比如,我们还是数据比特2位,然后直接重复2个比特,在加上XOR值作为校验位.也就是(5,2)编码.那么00,则编码为00000,10则编码为10101.00 -> 0000001 -> 0101110 -> 1010111 -> 11110这个时候,如果错误了1个比特,比如00000,变为00001,那么我们可以推测,其很大可能性是00000.解码的结果就是00,起到纠错的目的.这里说很大可能性,是因为错误发生是,其实不知道改变了多少个比特的.但是改变2个比特的概率要小于改变1个比特的概率的.所以纠错为00000.如果发生了2个比特的错误,比如00000,改变为00011,这个时候,就会错误的纠错为01011,解码为01.因此上面的(5,2)编码方法,其实只能够纠错1个比特.如果增加更多的比特位,那么可以检验纠错更多比特的错误,但是编码的冗余信息就会多很多.这就是一个平衡的问题了.以上只是一个非常非常简单的例子,如果有兴趣,可以去看通信原理相关的书籍,都会有这方面的介绍.就不展开说了.发布于 2015-06-13 20:02赞同 31添加评论分享收藏喜欢收起知乎用户纠错内存发布于 2013-08-06 15:07赞同 4添加评论分享收藏喜欢收起
ECC内存和普通内存差别有多大? - 知乎
ECC内存和普通内存差别有多大? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册互联网计算机内存(RAM)计算机科学电脑硬件ECC内存和普通内存差别有多大?普通内存和ECC内存用起来时差距主要表现在哪里?差距有多大?显示全部 关注者122被浏览434,887关注问题写回答邀请回答好问题 91 条评论分享15 个回答默认排序路人甲的世界WP Editor.md作者,博客untitled.pw。 关注 笔者有一台服役多年的 X79 芯片组台式机,配备了 E5-2680 处理器,由于最近需要升级更大容量的 ECC 内存,便为其刷入了新的 BIOS。在配置 BIOS 的过程中,突然发现 BIOS 设置里多了一项内存模式,即标题中的 LockStep 模式,好奇心驱使下,笔者在搜索引擎中搜素 LockStep,却所获不多。本文将为读者分享我在探索这一模式过程中的发现,以及解释该模式为什么能让 ECC 内存比可靠更可靠。本文原载于未命名小站,由作者本人同步至知乎,转载请注明原作者博客地址或本链接,谢谢!0x01 现象首先介绍一下笔者的电脑配置:CPU:Intel E5-2680 芯片组:X79 内存:4*8GB DDR3 ECC 1333MHz如序言所述,笔者在 BIOS 的设置中找到了一个名为内存模式(Memory Mode)的选项,其中包含四项:独立(Independent)镜像(Mirroring)锁步(Lock Step)热备(Sparing)独立、镜像、热备都非常直观,可以类比为磁盘阵列中的 JBOD 、RAID10 和RAID 热备,但『锁步』是什么意思呢?笔者抱着好奇心打开了 Lock Step 模式,重启后发现系统一切正常,依旧能够识别 32GB 的内存,但存在两处奇怪的现象:Windows 识别的内存插槽从 4*8GB 变成了 2*16GB ,和物理内存不一致:使用 AIDA64 对内存读写速度进行基准测试,读写速度均从 40GB/s 降低到了 20GB/s以上现象似乎表明,开启了 Lock Step 之后,相邻的内存被合并了,并且通道数也从 4 通道变成了 2 通道。但这个模式到底有什么意义呢?为什么它会在不影响容量的情况下导致通道数下降,进而影响性能呢?它损失了性能,换取了什么呢?0x02 探索1. 寻找思路带着众多疑问,笔者打开了搜索引擎,尝试搜索 Lock Step in Computer(因为 Lock Step 作为一个单词,其实和电脑没有关系,指的是军事上军人紧贴着同步前行的步调),却搜到了大量和内存无关的内容:搜索结果往往指向多处理器架构下的锁步模式,即保证不同处理器的时钟周期同步,避免出现竞态错误。显然这不是我们想要的。于是笔者换了一个思路,尝试在中文互联网中搜索 Lock Step ,搜索到了哔哩哔哩上的一篇文章:如何选择内存模式?(Independent/Mirroring/Lock Step)区别与性能 – in a nutshell - 哔哩哔哩相比笔者上文的发现,这篇文章尽管写了很多,但依旧只流于现象,并没有解释这个模式背后的原理。好在这篇文章并非一无是处,因为它提到了“安全性”和“高级 ECC”,这为我们提供了探索的方向。也就是说,这个模式是只存在于 ECC 内存架构中,它损失了性能,带来更高的“安全性”,而对于 ECC 而言,安全性就是可靠性;此外,既然叫高级 ECC,也就说明了它基于 ECC ,但比 ECC 更可靠。2. 精确搜索找到了突破点,于是笔者开始着重搜索 LockStep Memory ECC 关键词,搜索到了这条 Wikipedia 页面:Lockstep (computing) - Wikipedia。笔者摘录其中较为关键的一部分:Lockstep memory See also: ChipkillSome vendors, including Intel, use the term lockstep memory to describe a multi-channel memory layout in which cache lines are distributed between two memory channels, so one half of the cache line is stored in a DIMM on the first channel, while the second half goes to a DIMM on the second channel. By combining the single error correction and double error detection (SECDED) capabilities of two ECC-enabled DIMMs in a lockstep layout, their single-device data correction (SDDC) nature can be extended into double-device data correction (DDDC), providing protection against the failure of any single memory chip.[2][3][4][5]简而言之:Lock Step 只是一个商业用语,无需钻牛角尖理解其字面意思,本质上是将一个内存通道的缓存线对半平分到两个内存条上,利用 ECC 内存条的纠错能力,可以在双内存条环境下将单设备数据纠正(SDDC)升级为双设备数据纠正(DDDC),以抵御任何单个存储芯片的故障。如果读者此时已经感觉一头雾水:什么是缓存线?ECC 内存条提供了什么纠错能力?基于什么原理纠错?单双设备数据纠正是什么意思?为什么 DDDC 可以抵御任何芯片的故障?没关系,笔者曾和你有一样的感受,尤其在使用上述关键词搜索了大量的技术资料后,接下来就让我们逐一分析这些术语背后的含义。0x03 分析1. 什么是缓存线在了解缓存线之前,笔者希望读者能理解 CPU 访问内存的分层架构,如果不了解,推荐阅读这篇文章:计算机缓存Cache以及Cache Line详解 - 知乎。很多书籍将 Cache Line 翻译成缓存线,会给人一种和流水线类似的错觉,但笔者认为 Cache Line 更应该被翻译为缓存行,即缓存数据的单元。该单元在 64 位处理器中一般是 64Byte,而两条内存共享一个缓存行,也就意味着逻辑上这两条内存可以被合并为一条,在 CPU 或内存控制器看来,这就是一根内存。2. ECC 内存条如果读者没有见过 ECC 内存条,去网上搜索内存条的照片,找到最丑的那一根就是了:如果说将芯片横竖放置是为了尽量利用空间,尚且能够理解,但请读者数一数这根内存条上有多少颗芯片:19 颗!是的,对于习惯了二进制的我们而言,19 无疑是一个不和谐的数字,从标签上体现,这颗内存命名是 16GB 的内存,而搜索颗粒信息我们可以得知,中间那颗芯片是 REG 寄存器,便于 CPU 驱动更大容量的内存(感谢评论区网友任勇勘误),而剩余的 18 个颗粒均为容量 8Gbit,即 1GByte 的颗粒,加起来……明明是 18 呀?容量为什么只剩 16GB 了呢?剩余的 2GB 到哪里去了呢?3. ECC 内存条纠错的原理要想知道为什么 ECC 内存相比普通内存多出了几颗内存颗粒,就要先了解 ECC 内存条是如何纠错的。如果读者有计算机专业背景,且本科没有翘掉计算机组成原理的课程,应该无需笔者重新解释纠错和错误检测的原理,但如果读者和笔者一样,一节计算机组成原理都没去上过,只在考试的时候见了老师一面的话,笔者还是愿意翻出当年的书籍,来稍微解释一下 ECC 内存条在纠错过程中涉及的算法:3.1 奇偶校验奇偶校验,即 Parity Check,通常用于确定数据是否出错,可以被分别分为奇校验和偶校验,以奇校验为例:如果 8Bit 数据采用 1Bit 奇校验,那么当数据为 10100010 时,奇校验结果应该为 1,因为这些数字有奇数个 1,反应在电路上则是对比特进行异或运算获得奇偶校验的结果。3.2 纠错码纠错码,即 Error Correcting Code,其实是一类编码方式的统称,而在内存条中,业界通常会使用汉明码来存储多余的纠错位(其实在计算机网络和存储设备中也会使用同样的算法),在读取数据的时候计算读取出数据的汉明码,与内存中额外存储的汉明码进行比对,如果数据不一致,则说明数据出现错误,此时再利用汉明码的排错原理,获取错误的比特位,进行修复。如果读者想要了解汉明码是如何检测错误的,可以阅读这篇文章:汉明码——计算机网络——全网最通俗的讲解_扬俊的小屋-CSDN博客_汉明码。但由于计算汉明码速度慢于奇偶校验,因此一般不使用汉明码进行错误检测,而是使用奇偶校验进行错误检测,再使用汉明码恢复特定 Bit 的错误。解释完 ECC 内存条纠错的原理,相信读者应该理解了为什么 ECC 内存条需要比一般内存条多一些颗粒了。业界一般会使用 16 个 Bit为一个校验单位,这也就解释了为什么 16GBit 的内存条要使用 18GBit 的颗粒,其中一个颗粒用于存储汉明码,另一个颗粒则用于存储奇偶校验码,即 256Bits 数据最后在内存中的占用为 288Bits(256 + 16 + 16)。借用一张来自超微的说明书便于读者理解:4. 什么是单设备数据纠正(SDDC)?此处单设备是相对双设备而言,读者可以将其理解为一根内存条内实现数据纠正,其纠错过程如下所示:图中 D0 ~ D15 是存储颗粒,而 P 是奇偶校验颗粒,C 是纠错颗粒。此时我们假设 D0 颗粒由于强电磁影响导致一个比特出现了翻转,即数据出现了错误。如果受影响的数据是笔者买煎饼果子的一笔钱,数目使用 64 位整数存储,其中的第 16 位从0 变成了 1。在比特翻转的影响下,这笔数目可能会从 1000b 即 8 元,变成 1000000000001000b 即 32776 元: 由于整个交易系统中的一环出现了错误,这笔交易可能会出现两种结果:携带支付金额的交易出现签名校验错误,或由于笔者的余额不足交易失败。但不管是哪一种,对于追求可靠性的行业,如科学计算、金融、商业甚至是臭打游戏的我们而言,都会带来极大的困扰。更别提比特错误可能导致潜在的数据溢出问题,甚至能够导致巨大的灾难:阿丽亚娜-5运载火箭 - 维基百科,自由的百科全书。但好在有一直在努力的数学家和科学家们,于是我们有了 ECC 内存,也有了“不会溢出”的 Python语言。回到 SDDC 上,如果有一个比特出现错误,那么在下次读取这个区域的时候,其奇偶校验值会出现翻转,此时我们可以使用汉明码找到出现错误的比特,并按照奇偶校验的预期结果对其进行修复。5. 什么是双设备数据纠正(DDDC)?ECC 内存加持下的 SDDC 似乎能够修复由单个比特翻转导致的内存错误,这很不错,但为什么这个颗粒会出现比特翻转呢?会不会是因为这个颗粒已经濒临损坏?每次出现问题都进行修复是否会导致内存稳定性下降?或者如果出现的不是比特翻转而是死比特,无论如何都无法修正区域内的错误,又该怎么办呢?难道就只能坐等数据丢失,或使用昂贵又缓慢的内存镜像吗?双设备数据纠正就是在 ECC 基础上用于解决内存颗粒失效的方案,它不仅可以保证一颗内存颗粒故障时的性能可靠,还能保证两颗内存颗粒故障时的安全性。6. 为什么 DDDC 可以抵御任何两个颗粒的故障? 免责声明:下文小剧场纯属虚构,如有雷同,懂得都懂 。 那么,古尔丹,代价是什么呢?为什么 DDDC 可以如此强大,强大到能抵御两个颗粒的故障?根源在于 DDDC 充分利用两根内存条中可用的四块校验区域,使其能够承担多种职责。通过上文那张超级丑的三星内存条照片,读者应该能看出来,虽然我们人为给两个颗粒设定了校验和纠错的角色,但他们和普通的内存颗粒其实并无区别,上文解释汉明码的时候,有提到过其实汉明码兼有识别错误和纠错的能力,也就意味着奇偶校验在必要情况下可以被舍弃,但多必要算必要呢?一个颗粒出现错误,就要将错误的颗粒迁移到奇偶校验颗粒上,然后损失这根内存条的性能吗?DDDC 就是为了解决这个问题而出现的一种架构:可以看到,两条内存被放置在一个Buffer里(即 Cache Line),其中内存条 0 的冗余颗粒全部用来存储两根内存条中的汉明码,而内存条 1 的冗余颗粒分别用于存储奇偶校验码(数据和校验位的比例翻倍)和冗余。假设可怜的 D0 颗粒背负了无数次算错煎饼果子钱的锅后终于开始『摆烂』,触发了内存控制器的忍受阈值,即“DDDC Device Sparing event”,此时内存控制器会命令 D0 颗粒赶快调岗,于是 D0 颗粒带着它最后一次修复的数据来到了新的场所(即冗余颗粒)上,如下图所示:在冗余颗粒上的 D0 终于愿意安分下来,但在 D0 旁边的 D1 看着 D0 搬进了新房子,却有些不平衡,也开始『摆烂』,触发大量的 ECC 纠错,再次导致“DDDC Device Sparing event”被触发,但此时已经没有新房子能给 D1 住了,于是内存控制器认为保留奇偶校验颗粒带来的性能已经不如保障数据安全重要了,命令奇偶校验颗粒立刻滚蛋,将奇偶校验留下的职责交给 ECC 颗粒进行,尽管 ECC 颗粒有苦难言,但它们的职责实在太重要,一旦请辞就会导致内存可靠性出现问题,为了考虑大局,只得勉强接下校验的任务,并报告系统管理员:咱俩要撑不住了,请求管理员注意并解决,否则后果自负!而 D1 此时已经带着最后一次修复的数据住进了奇偶校验颗粒中,如下图所示:尽管此时该通道的数据安全和性能均处于大厦将倾的状态,但好在每个比特依旧各司其职,只是如果管理员继续放任不管,就不会再有机会给第三个『摆烂』的内存颗粒了……0x04 结论相信笔者介绍到这里,读者应该能理解 BIOS 里那个 Lock Step 内存模式的意义了:在损失一半通道的前提下,保证内存容量不变,还能使得安全性极大提升。该模式在工作正常的时候对内存延迟无影响,对内存容量无影响,对内存读写速度减半,对于个人用户而言,特别适合对内存吞吐量要求不高或通道数较多的环境(如利用白菜价的 X79、X99 平台搭建工作站)。在完成本文写作的过程中,笔者参考了来自互联网上的大量资料,还翻箱倒柜找到了一个字都没写过的,99新计算机组成原理课本,恶补了当年遗漏的知识。此外还想真诚感谢计算机组成原理给了我 61 分的某云华老师,毕竟他的课程伴随了我大学生涯四年,尽管我的签到记录屈指可数,但他从不记恨,甚至在毕业设计阶段最后一次高抬贵手,让我大学生涯最后一程走得同他之前教过我的每堂课一样顺利。本文如有错误或遗漏,纯属笔者水平有限,欢迎在评论区指正,笔者愿意虚心接受并对本文进行必要的修订。0x05 扩展阅读Lockstep (computing) - WikipediaChipkill - WikipediaIndependent Channel vs. Lockstep Mode – Drive your Memory Faster or Safer | Intel® Developer Zone如何选择内存模式?(Independent/Mirroring/Lock Step)区别与性能 – in a nutshell - 哔哩哔哩Memory RAS Configuration User's Guide 1.0.inddThe Benefits of Chipkill-Protect for PC Server Main Memory 内存的可靠性、可用性和诊断功能(内存RAS)-宿迁波仔博客Parity(奇偶校验)和ECC(错误检查和纠正)_IC小鸽的博客-程序员宅基地 - 程序员宅基地编辑于 2021-12-17 10:49赞同 102228 条评论分享收藏喜欢收起34567松鼠 关注纠错的差别。对于需长时间且不能暂停和出错的单次任务,有ECC功能的内存是必然的选择。举个例子,之前用某专业软件,一次模拟需几十个小时,用普通内存时,中途因内存错误导致计算崩溃。虽然浪费时间,但再次运行后,结果仍是中途崩溃。后来申请计算中心才解决。所以对于这种任务,两种内存不是速度的差别,而是能用与不能用的差别。编辑于 2020-01-07 23:04赞同 818 条评论分享收藏喜欢
内存:DDR内存带ECC是什么意思? - 知乎
内存:DDR内存带ECC是什么意思? - 知乎切换模式写文章登录/注册内存:DDR内存带ECC是什么意思?沈琦DDR是内存的类型。目前电脑使用的内存,基本上都是DDR。主流的分为三代,第4代也已经崭露头角逐渐上市了。DDR=Double Data Rate双倍速率同步动态随机存储器。严格的说DDR应该叫DDR SDRAM,人们习惯称为DDR,其中 SDRAM 即同步动态随机存取存储器。而DDR SDRAM是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有效的降低成本。SDRAM_百度百科(扩展资料)同步动态随机存取内存(简称SDRAM)是有一个同步接口的动态随机存取内存(DRAM)。通常DRAM是有一个异步接口的,这样它可以随时响应控制输入的变化。而SDRAM有一个同步接口,在响应控制输入前会等待一个时钟信号,这样就能和计算机的系统总线同步。时钟被用来驱动一个有限状态机,对进入的指令进行管线操作。这使得SDRAM与没有同步接口的异步DRAM相比,可以有一个更复杂的操作模式。SDRAM在计算机中被广泛使用,SDRAM从发展到现在已经历了五代,分别是:第一代SDR SDRAM,第二代DDR SDRAM,第三代DDR2 SDRAM,第四代DDR3 SDRAM,第五代,DDR4 SDRAM。第一代SDRAM采用单端时钟信号,第二代、第三代与第四代由于工作频率比较快,所以采用可降低干扰的差分时钟信号作为同步时钟。SDR SDRAM的时钟频率就是数据存储的频率,第一代内存用时钟频率命名,如pc100,pc133则表明时钟信号为100或133MHz,数据读写速率也为100或133MHz。之后的第二,三,四代DDR(Double Data Rate)内存则采用数据读写速率作为命名标准,并且在前面加上表示其DDR代数的符号,PC-即DDR,PC2=DDR2,PC3=DDR3。如PC2700是DDR333,其工作频率是333/2=166MHz,2700表示带宽为2.7G。DDR的读写频率从DDR200到DDR400,DDR2从DDR2-400到DDR2-800,DDR3从DDR3-800到DDR3-1600。很多人将SDRAM错误的理解为第一代也就是 SDR SDRAM,并且作为名词解释,皆属误导。SDR不等于SDRAM。Pin:模组或芯片与外部电路连接用的金属引脚,而模组的pin就是常说的“金手指”。SIMM:Single In-line Memory Module,单列内存模组。内存模组就是我们常说的内存条,所谓单列是指模组电路板与主板插槽的接口只有一列引脚(虽然两侧都有金手指)。DIMM:Double In-line Memory Module,双列内存模组。是我们常见的模组类型,所谓双列是指模组电路板与主板插槽的接口有两列引脚,模组电路板两侧的金手指对应一列引脚。RIMM:registered DIMM,带寄存器的双线内存模块,这种内存槽只能插DDR或Rambus内存。SO-DIMM:笔记本常用的内存模组。工作电压:SDR:3.3VDDR:2.5VDDR2:1.8VDDR3:1.5VDDR4:1.2VSDR SDRAM内存条的金手指通常是168线,而DDR SDRAM内存条的金手指通常是184线的。几代产品金手指的缺口数及缺口位置也不同有效防止反插与错插,SDR SDRAM有两个缺口,DDR只有一个缺口。DDR内存带ECC是什么意思?是服务器专用的吗?在电子数字的世界里,所有的信息都是以简单的“0”与“1”表示;不过当数据在电子元件间进行传递时,是有可能发生数据“误传”的情形,也就是说原来该是0的比特数据,却被误植为1的比特数据,而产生错误。其可能发生的原因相当多,包括电子噪声、元件硬件上的问题,或是传输接口不稳等,都可能造成如此的结果。这种状况若发生在存储器中,所带来的灾难则是可大可小。比如在游戏中,你可能对画面上突然显色不正常的小方块不以为意,但此时若不是在游戏中,而是正在进行硬盘重组的工作,相信结果将令你花容失色,惊叫起来。也正因为如此,在存储器中便发展出ECC与Parity Check等的检错方式,希望能降低数据传输的错误。Parity工作原理早先所使用的存储器数据检错方式是Parity Check,其是以每8比特增加1比特的方式进行检错。因此若是具备Parity的存储器,其数据宽度将比非parity的存储器为大。不过若以Parity的检错方式看,其多出的奇偶位事实上只用于分辨奇数或偶数个比特数。以表格1为例(假设工作时采用奇数形式),当所有的比特数据在加上奇偶位后,总位数应该是奇数,因此当数据从存储器被读出时,若不为奇数值,系统便能得知在数据中必有某一位发生错误,而达到检错的目的。不过很可惜的是,这种方式仅能得知是某一位发生错误,并无法确定是哪一个位置发生错误。另外奇偶位检错还有一个大问题。在表格1中,读者可以发现11101101与01101111相加后总的位数相同,差别仅在第1个与第7个位置上比特值不同。若此时两者分别代表存在存储器中的数据,与读取存储器后传出的数据时,就发生了前面所说的错误情况。不过此时却无法从Parity校验中得知数据发生错误,因此Parity事实上是无法运用在双数位的检错上!ECC工作原理ECC则是另一种更为进步的存储器数据检错机制。其工作的方式与Parity不同,并不是采用单一比特的方式来进行检错,而是采用数据块(block)概念与复杂的演算方法来修正数据。因此不仅能检测多位比特错误,还能进行修正单一比特的错误。以168针的DIMM存储器模块来说,若以64bits为一数据块单位,便需要8bits的容量来作为ECC之用(32bits则需7bits),因此总数据宽度便与168针的Parity存储器相同。而由于如此,多数主机板可以利用具有Parity功能的168针存储器来执行ECC;不过也有少数的主机板,只能使用经过特殊设计的ECC存储器执行此功能,是读者需要注意的地方。不过若要能确实执行ECC功能,除了所购买的存储器规格要支持外,主机板芯片组(如Intel 440BX、430HX等)也需要支持,且制造厂商也必须在主机板上设计开启此项功能,才能毕尽全功。由于具ECC的存储器在设计上比较复杂一些,因此价格自然也就比较高了。Chipkill 内存简介Chipkill内存最初是由20年前的IBM大型机发展过来的,Chipkill是为美国航空航天局(NASA)的"探路者"探测器赴火星探险而研制的。它是IBM公司为了弥补目前服务器内存中ECC技术的不足而开发的,是一种新的ECC内存保护技术。对比旧ECC内存技术的优点,ECC内存技术虽然可以同时检测和纠正单一比特错误,但如果同时检测出两个以上比特的数据错误,则无能为力。但基于Intel处理器架构的服务器的CPU性能以几何级的倍数提高,而硬盘驱动器的性能同期只提高了5倍,因此为了保证正常运行,服务器需要大量的内存来临时保存从CPU上读取的数据。这样大的数据访问量就导致单一内存芯片在每次访问时通常要提供4(32位)或8(64位)字节以上的数据。一次性读取这么多数据,出现多位数据错误的可能性会大大提高,而ECC又不能纠正双比特以上的错误,这样就很可能造成全部比特数据的丢失,系统就会很快崩溃。IBM的Chipkill技术是利用内存的子结构方法来解决这一难题的。设计原理Chipkill内存子系统的设计原理是这样的:在Chipkill技术支持下,单一内存芯片无论数据宽度是多少,只有一个给定的ECC识别码,它的影响最多为一比特。举个例子来说明,如果使用4比特宽的SDRAM,4比特中的每一位的奇偶性将分别组成不同的ECC识别码,每个ECC单元可单独用一个数据位来保存,也就是说这些识别码分别保存在不同的内存空间中。因此,即使整个内存芯片出了故障,每个ECC单元也将最多出现一比特坏数据。出现这种情况完全可以通过ECC进行逻辑修复,从而保证了内存子系统的容错性,保证了服务器在出现故障时,有强大的自我恢复能力。Chipkill内存控制器所提供的存储保护在概念上和具有校验功能的磁盘阵列类似。在写数据的时候,把数据写到多个DIMM内存芯片上。这样,每个DIMM所起的作用和存储阵列相同。如果其中任何一个芯片失效了,它只影响到一个数据字节的某一比特,因为其他比特存储在另外的芯片上。出现错误后,内存控制器能够从失效的芯片重新构造"失去"的数据,使得服务器可以继续正常工作。采用这种Chipkill内存技术的内存可以同时检查并修复4个错误数据位,进一步提高了服务器的实用性。发展目前支持Chipkill内存技术的不仅是IBM服务器,许多国内的服务器,如宝德公司的64位新至强机架式服务器PR2520,该公司还有许多其他服务器也支持这一内存技术,如PT4050R和PR2520等)、方正公司的方正圆明MT500等也开始支持这一技术。当然实际应用这一技术的服务器厂商远不止这些,可以说Chipkill得到了广泛应用,主要是在中、低端服务器中。新型的第三代Chipkill内存技术已经集成到了IBM的x架构的芯片组中,不必另外定制。最初IBM公司在主机系统中开发了这一技术,到现在已具有20多年的历史。这种新的功能既可以检测,又可以纠正多比特内存错误,可进一步提高服务器的实用性。同时服务器中只需采用便宜的、工业标准的ECC存储器,而不必另外购买专门的内存,所以IBM的Chipkill内存技术的应用非常广。Registered ECCREG ECC内存上面的芯片一般比ECC多出2-3个,主要是PLL (Phase Locked Loop)和Register IC。它们的具体用处如下:PLL(Phase Locked Loop) 琐相环集成电路芯片,内存条底部较小IC,比Register IC小,一般只有一个,起到调整时钟信号,保证内存条之间的信号同步的作用。Register IC内存条底部较小的集成电路芯片(2-3片),起提高驱动能力的作用。服务器产品需要支持大容量的内存,单靠主板无法驱动如此大容量的内存,而使用带Register的内存条,通过Register IC提高驱动能力,使服务器可支持高达32GB的内存。RECC 和 ECC 的区别:1、要求不一样REG ECC,必须用服务器主板才能支持;ECC,普通主板可以用,但是ECC纠错功能不起作用。2、硬件不一样REG ECC 带有一个寄存器。ECC,则没有寄存器。3、价格不一样ECC内存比普通内存贵10%-20%,REG ECC内存比普通内存贵一倍左右。4、读取方式不一样ECC和 是控制器直接读内存颗粒,REG ECC 是控制器读寄存器,寄存器读颗粒。5、延迟不一样REG ECC 因为比 ECC 多了一道程序,所以稍有延迟。扩展资料:REG ECC 缩写是 RECC。REG 是英语 Register 的缩写,意思为寄存器的意思,其功能是通过它来集成更多的内存颗粒达到扩大内存容量的目的。ECC 是英文 Error Checking &Correcting 的缩写,翻译为错误检查和纠正,可以理解为内存条的数据纠错功能,这也是为什么服务器可以连续运行几个月甚至几年不死机的原因。常见的内存类型常见的内存类型有这几种:Non-ECC内存,Un-buffered-ECC内存和Register内存。其中Non-ECC内存为最常见的消费级内存,这种内存不带缓存,也没有寄存器,延迟更小,通常用于台式机。Un-buffered-ECC内存为带错误检查和纠正的无缓冲内存,这种内存也俗称为纯ECC内存,它可以提供单一错误纠正和检测,常用于NAS,小型服务器以及可以支持的平台上。Intel平台的E3,四代以上的i3以及AMD平台的锐龙系列其实也是可以支持这种内存的。Register内存则为带缓存,寄存器和ECC功能的内存,这种内存也分为RDIMM,LRDIMM两种,这两种内存都有用于优化时钟、命令和控制信号的寄存器,通常用于大型服务器上。RDIMM为带存储器的DIMM,通过添加8位的奇偶校验信号来实现错误纠正,LRDIMM则为低负载双列的DIMM,通过放置数据在缓冲区来优化数据信号。而且Register内存的区块组织和普通内存的不一样,例如Register内存就有1Rx4,1Rx8,2Rx4,2Rx8,4Rx4,8Rx4等规格,不同规格的内存颗粒数量是不一样的,例如1Rx4的有18个内存颗粒,2Rx4的有36个内存颗粒,而且兼容性对于不同主板也是不一样的,例如有些主板可以支持1Rx8的,但不一定能支持2Rx4的。Register内存的支持条件则需要满足这几个,其中一个没有满足的话就可能会用不了。1.CPU支持,例如支持Reg内存的X79和X99主板使用i7就不能支持,要使用E5才能支持Reg内存。2.芯片组支持,这个是老平台的条件,因为老平台的内存控制器还没有集成到CPU里面,例如X58芯片组就不一定能支持Reg内存,而服务器的5500,5520芯片组就可以支持,但X79平台开始因为内存控制器集成到CPU里面了,所以就和芯片组的关系不大了。3.主板BIOS支持,主板BIOS如果不支持Reg内存的话可能也无法启动。4.主板内存到CPU的电路布局支持,因为Reg内存和普通内存的走线是不一样的,所以主板电路也是需要支持的。最后总结一下,Non-ECC内存、Un-buffered-ECC都属于无缓冲内存,无缓冲内存其中的内存控制器和RAM芯片之间不存在硬件寄存器。Register内存称为寄存内存,也称为缓冲内存,也就是DRAM模块和内存控制器中间有一个寄存器。缓冲内存比无缓冲内存更稳定,也就是Reg内存相比普通内存和纯ECC内存来说是更稳定的。ECC与RECC内存之间的区别我们知道,在选购服务器内存的时候,相比台式机普通内存型号,通常带有ECC或者RECC的标注,不少用户不知道ECC和RECC到底是什么,那么内存ECC是什么意思?下面宏旺半导体分享一下服务器内存ECC和RECC之间能否兼容及区别科普。 一谈到服务器内存,大家都一致强调要买ECC内存,认为ECC内存速度快,其实是一种错误地认识,ECC内存成功之处并不是因为它速度快,而是因为它有特殊的纠错能力,使服务器保持稳定。ECC本身并不是一种内存型号,也不是一种内存专用技术,它是一种广泛应用于各种领域的计算机指令中,是一种指令纠错技术。ECC 校验是一种内存纠错原理,它是比较先进的内存错误检查和更正的手段。ECC内存即纠错内存,简单的说,其具有发现错误,纠正错误的功能,一般多应用在高档台式电脑/服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。内存是一种电子器件,在其工作过程中难免会出现错误,而对于稳定性要求高的用户来说,内存错误可能会引起致命性的问题。内存错误根据其原因还可分为硬错误和软错误,硬件错误是由于硬件的损害或缺陷造成的,因此数据总是不正确,此类错误是无法纠正的;软错误是随机出现的,例如在内存附近突然出现电子干扰等因素都可能造成内存软错误的发生,ECC技术就是为了纠正内存软错误。ECC 和RECC内存条之间的区别从功能上,ECC有特殊的纠错能力,使服务器保持稳定。ECC是一种校验(奇偶效验),RECC是REG ECC的简写,RECC的R表示register,寄存器,也就是说,RECC就是在ECC的基础上加了个寄存器,大大提高服务器内存工作效率,这个是服务器内存,必须用服务器主板才能支持,一般的主板点不亮。服务器内存ECC和RECC之间能否兼容?两者通常不兼容的,需要看主板支持,RDIMM可以用RECC和普通内存,UDIMM只能ECC,当然也有同时有RDIMM和UDIMM的,那就可以混合了。其中REG就是Register,寄存器,你可以理解为一个订书机,它可以把内存芯片(纸张)集成的更多,简单点就是扩容用的,通过它来集成更多的内存颗粒达到扩大内存容量的目的。至于ECC就是Error Checking &Correcting的缩写,简单的说就是内存条的数据纠错功能,这就是为什么服务器可以连续运行几个月甚至几年不死机的原因。当然RECC内存价格是ECC的一倍,而ECC内存比普通内存贵10%-20%。宏旺半导体旗下嵌入式存储产品均使用了ECC纠错技术,保障存储器的稳定性。内存DIMM ECC什么意思 ?DIMM的意思是“双列直插式存储模块”,ECC是一种能够实现“错误检查和纠正”的技术,ECC内存就是应用了这种技术的内存,一般多应用在服务器及图形工作站上,可使整个电脑系统在工作时更安全稳定。内存DIMM ECC合在一起就是采用双列直插式存储模块并能进行错误检查和纠正的内存!DRAM_360百科三代内存和四代内存有啥区别?怎么看自己的电脑用得是几代得内存条了解内存参数正确的搭配,避免出现内存兼容问题CPU 与内存的匹配羞耻地匿了:DDR5内存条比DDR4内存条厉害在哪里?编辑于 2021-08-25 00:42服务器服务器配置内存条赞同 102 条评论分享喜欢收藏申请
Access Denied
Access Denied
Access Denied
You don't have permission to access "http://www.intel.cn/content/www/cn/zh/support/articles/000096922/processors.html" on this server.
Reference #18.75051c78.1709807116.164ddf82
糾錯內存 - 維基百科,自由的百科全書
糾錯內存 - 維基百科,自由的百科全書
跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁分類索引特色內容新聞動態近期變更隨機條目資助維基百科
說明
說明維基社群方針與指引互助客棧知識問答字詞轉換IRC即時聊天聯絡我們關於維基百科
語言
語言連結位於頁面頂端,標題的另一側。
搜尋
搜尋
建立帳號
登入
個人工具
建立帳號 登入
用於已登出編輯者的頁面 了解更多
貢獻討論
目次
移至側邊欄
隱藏
序言
1技術原理
2誤解
3備註
4參考文獻
5外部連結
切換目錄
糾錯內存
17 種語言
العربيةCatalàČeštinaEnglishEestiفارسیFrançaisItaliano日本語한국어LatviešuNederlandsNorsk bokmålPolskiRomânăРусскийУкраїнська
編輯連結
條目討論
繁體
不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體
閱讀編輯檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀編輯檢視歷史
一般
連結至此的頁面相關變更上傳檔案特殊頁面固定連結頁面資訊引用此頁面取得短網址下載QR碼維基數據項目
列印/匯出
下載為 PDF可列印版
維基百科,自由的百科全書
此條目可能包含原創研究。請協助補充參考資料、添加相關內聯標籤和刪除原創研究內容以改善這篇條目。詳細情況請參見討論頁。
此條目頁的主題是一種內存糾錯技術。關於橢圓曲線密碼加密技術(ECC),請見「橢圓曲線密碼學」。
ECC RAM 每面均有9枚記憶體顆粒,比普通的多1枚
更正錯誤記憶體(英語:Error-Correcting Code memory,縮寫:ECC memory或ECC)指能夠實現錯誤檢查和糾正錯誤技術的內存。
技術原理[編輯]
在ECC技術出現之前,內存中應用最多的另外一種錯誤檢查技術,是奇偶校驗位技術。
在數位電路中,最小的數據單位是「比特(bit)」,也叫「位元」。「比特」也是內存中的最小單位,它是通過「1」和「0」來表示數據高、低電頻信號。在數字電路中8個連續的比特是一字節,不帶「奇偶校驗」的內存中的每個字節只有8位,若它的某一位存儲出了錯誤,就會使其中存儲的相應數據發生改變而導致應用程序發生錯誤。
而帶有「奇偶校驗」的內存在每一字節(8位)外又額外增加了一位用來進行錯誤檢測。比如一個字節中存儲了某一數值(1、0、1、0、1、0、1、1),把這每一位相加起來(1+0+1+0+1+0+1+1=5)。對於偶校驗,若其結果是奇數,校驗位就定義為1,反之則為0;對於奇校驗則相反。當CPU返回讀取存儲的數據時,它會再次相加前8位中存儲的數據,計算結果是否與校驗位相一致。當CPU發現二者不同時就會試圖糾正這些錯誤。
但奇偶校驗位技術有個缺點,當內存查到某個數據位有錯誤時,由於不一定能確定錯誤在哪一個位,也就不一定能修正錯誤。所以帶有奇偶校驗的內存的主要功能僅僅是「發現錯誤」,並不能糾正錯誤。
此外,奇偶校驗技術是通過在原來數據位的基礎上增加一個數據位來檢查當前8位數據的正確性,但隨着數據位的增加,用來檢驗的數據位也成倍增加,就是說當數據位為16位時它需要增加2位用於檢查,當數據位為32位時則需增加4位,依此類推。特別是當數據量非常大時,數據出錯的幾率也就越大,對於只能糾正簡單錯誤的奇偶檢驗的方法就顯得力不從心了。正是基於這樣一種情況,錯誤檢查和糾正(Error Checking and Correcting)應運而生了。
ECC與奇偶校驗不同的是,如果數據位是8位,則需要增加5位來進行ECC錯誤檢查和糾正。數據位每增加一倍,ECC只增加一位檢驗位。也就是說當數據位為16位時ECC位為6位,32位時ECC位為7位,數據位為64位時ECC位為8位,依此類推。在內存中ECC能夠容許錯誤,並可以將錯誤自動更正,使系統得以正常的操作,不致因錯誤而中斷。
誤解[編輯]
部份人認為伺服器必須使用ECC內存,認為ECC內存效能較高,其實是一種謬誤。ECC內存之所以廣泛應用於伺服器領域,並非其效能,而是因為ECC內存的糾錯能力,使伺服器保持穩定。
ECC本身並不是一種內存型號,也不是一種內存專用技術,它是一種廣泛應用於各種領域的計算機中的糾錯技術。
備註[編輯]
截止到2020年8月9日,帶ECC校驗的內存還得要電腦其他部件支持才能正常使用,例如主板和CPU[1](並且可能要在BIOS中進行相應的設置),應用在大多數服務器CPU和主板上(一些非服務器CPU和主板也支持)。還有,在購買ECC內存時,需注意是ECC UDIMM、ECC RDIMM、ECC LRDIMM、ECC 3DS RDIMM還是其他,因為你的電腦其他部件可能不支持某些種類。
參考文獻[編輯]
^ Server Memory: Types and Performance | Crucial.com. Crucial. [2020-08-09] (美國英語).
外部連結[編輯]
SoftECC: A System for Software Memory Integrity Checking (頁面存檔備份,存於網際網路檔案館)
A Tunable, Software-based DRAM Error Detection and Correction Library for HPC (頁面存檔備份,存於網際網路檔案館)
Detection and Correction of Silent Data Corruption for Large-Scale High-Performance Computing (頁面存檔備份,存於網際網路檔案館)
Single-Bit Errors: A Memory Module Supplier’s perspective on cause, impact and detection (頁面存檔備份,存於網際網路檔案館)
Intel Xeon Processor E3 - 1200 Product Family Memory Configuration Guide
Linus Torvalds On The Importance Of ECC RAM, Calls Out Intel's "Bad Policies" Over ECC (頁面存檔備份,存於網際網路檔案館)
取自「https://zh.wikipedia.org/w/index.php?title=纠错内存&oldid=79443855」
分類:電腦記憶體隱藏分類:CS1美國英語來源 (en-us)可能帶有原創研究的條目拒絕當選首頁新條目推薦欄目的條目含有英語的條目
本頁面最後修訂於2023年10月20日 (星期五) 19:59。
本站的全部文字在知識共享 署名-相同方式分享 4.0協議之條款下提供,附加條款亦可能應用。(請參閱使用條款)
Wikipedia®和維基百科標誌是維基媒體基金會的註冊商標;維基™是維基媒體基金會的商標。
維基媒體基金會是按美國國內稅收法501(c)(3)登記的非營利慈善機構。
隱私權政策
關於維基百科
免責聲明
行為準則
開發人員
統計
Cookie 聲明
行動版檢視
切換限制內容寬度
暫存器記憶體 - 維基百科,自由的百科全書
暫存器記憶體 - 維基百科,自由的百科全書
跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁分類索引特色內容新聞動態近期變更隨機條目資助維基百科
說明
說明維基社群方針與指引互助客棧知識問答字詞轉換IRC即時聊天聯絡我們關於維基百科
語言
語言連結位於頁面頂端,標題的另一側。
搜尋
搜尋
建立帳號
登入
個人工具
建立帳號 登入
用於已登出編輯者的頁面 了解更多
貢獻討論
目次
移至側邊欄
隱藏
序言
1效能
2相容性
3緩衝區記憶體
4參考資料
5外部連結
切換目錄
暫存器記憶體
7 種語言
DeutschEnglishFrançaisMagyarItalianoРусскийУкраїнська
編輯連結
條目討論
臺灣正體
不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體
閱讀編輯檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀編輯檢視歷史
一般
連結至此的頁面相關變更上傳檔案特殊頁面固定連結頁面資訊引用此頁面取得短網址下載QR碼維基數據項目
列印/匯出
下載為 PDF可列印版
維基百科,自由的百科全書
此條目需要精通或熟悉相關主題的編者參與及協助編輯。請邀請適合的人士改善本條目。更多的細節與詳情請參見討論頁。
此條目包含過多行話或專業術語,可能需要簡化或提出進一步解釋。請在討論頁中發表對於本議題的看法,並移除或解釋本條目中的行話。
兩片8 GB DDR4-2133 ECC 1.2V 暫存器DIMM(RDIMM)
暫存器記憶體也稱緩衝區記憶體,是一種在動態隨機存取記憶體模組(DRAM)與系統記憶體控制器之間有暫存器的記憶體模組。這可以減少記憶體控制器上的電氣負載,使用多個記憶體模組的單個系統將會更加穩定。為了區分,傳統記憶體通常稱之為無緩衝記憶體(unbuffered memory)或非暫存器記憶體(unregistered memory)。當製造為雙列直插式記憶體模組(DIMM)時,暫存器記憶體模組稱之為RDIMM, 非暫存器記憶體稱之為UDIMM。
因為銷量較少且需要額外電路,暫存器記憶體的價格通常更貴,所以一般只用在可延伸性和強健性需求超過價格要求的應用中,因此暫存器記憶體通常用於伺服器。
儘管大多數暫存器記憶體都配有錯誤糾正(ECC),但暫存器記憶體與配備ECC兩者間並無關聯,兩者可單獨或者同時存在。例如一些非暫存器ECC記憶體會被用於工作站或入門級伺服器主機板。[1]
效能[編輯]
通常來說,使用暫存器記憶體會有些效能損失。記憶體主線與DRAM之間的每次讀寫都被緩衝一個周期,所以暫存器記憶體的執行可被認為等同非暫存器記憶體晚一個時鐘周期。在SDRAM中,這只發生在一次突發讀寫(burst)的首個周期。
不過,這種效能損失並不普遍,記憶體存取速度還涉及其他因素。舉例來說,Intel Westmere 5600系列處理器使用交錯方式(英語:Interleaved memory)存取記憶體,其中記憶體存取分布在三個通道。如果兩個記憶體DIMM共同使用一個通道,2DPC(DIMMs per channel)則會導致最大記憶體頻寬的減少,與RDIMM相比,UDIMM的組態減少約5%。[2]這是由於當每個記憶體通道有兩條DIMM時,由於位址和控制線上的電氣負載過高,記憶體控制器將對UDIMM使用「2T」或「2N」時序。因此,原本需要一個時鐘周期的命令被推遲到兩個時鐘周期。因而,對於每個通道使用兩個或更多DIMM,RDIMM有比UDIMM更低的延遲(英語:Latency vs Bandwidth)和更好的頻寬。[3]
相容性[編輯]
通常來說,主機板必須與暫存器類型相搭配。因此,暫存器記憶體無法在非為其設計的主機板上使用,反之亦然。部分PC主機板接受或需要使用暫存器記憶體,但暫存器記憶體與非暫存器記憶體不能混用。[4]暫存器記憶體與ECC記憶體存在諸多混淆之處;人們普遍認為在沒有ECC功能支援的情況下,ECC記憶體(可能有或無暫存器)完全不能在主機板上正常執行。不過在不支援的PC主機板上嘗試使用暫存器記憶體(也支援ECC而被描述為ECC RAM)時確實會出現相容性問題。
緩衝區記憶體[編輯]
緩衝區記憶體(Buffered Memory)是指暫存器記憶體的一個早期術語。該緩衝區是放在記憶體與記憶體控制器之間。一般來說,暫存器記憶體不能放在非暫存器記憶體的插槽中使用,但同步動態隨機存取記憶體(SDRAM)則可以。
全緩衝DIMM (FB-DIMM)模組是用於一些記憶體容量很大的系統。在普通的暫存器/緩衝區記憶體中,只有控制線被緩衝,而在全緩衝記憶體中,資料線也被緩衝,所有傳輸都以序列方式進行;每個FB-DIMM模組上的附加邏輯晶片將序列輸入轉換為驅動記憶體晶片所需的並列訊號。[5]
低負載DIMM(Load Reduced DIMM,LRDIMM)模組與暫存器/緩衝區記憶體類似,LRDIMM模組緩衝控制線和資料線,同時保持所有訊號的並列特性。因此,LRDIMM記憶體能提供整體來說最大的記憶體容量,同時解決序列與並列訊號轉換引起的FB-DIMM記憶體的一些效能和功耗問題。[6]
FB-DIMM和LRDIMM型號的記憶體主要是為控制指定時間內流入和流出記憶體晶片的電流量而設計。這與暫存器/緩衝區記憶體不相容,其主機板通常也不接受其他任何類型的記憶體。
參考資料[編輯]
^ Servers and workstations: P9D-V motherboard. Asus. [December 4, 2014]. (原始內容存檔於2015-06-03).
^ 存档副本 (PDF). [2017-11-05]. (原始內容 (PDF)存檔於2014-05-29).
^ Dell MyAccount Sign In - Dell US. [2017-11-05]. (原始內容存檔於2011-10-18).
^ Dell servers example (PDF). [2017-11-05]. (原始內容存檔 (PDF)於2017-10-13).
^ What is LR-DIMM, LRDIMM Memory? (Load-Reduce DIMM). [2014-08-29]. (原始內容存檔於2014-09-03).
^ Johan De Gelas. LRDIMMs, RDIMMs, and Supermicro's Latest Twin. AnandTech. 2012-08-03 [2014-09-09]. (原始內容存檔於2014-09-09).
外部連結[編輯]
Memory Decisions, February 8, 2004
Do I Need ECC and Registered Memory(頁面存檔備份,存於網際網路檔案館) (.doc document)
取自「https://zh.wikipedia.org/w/index.php?title=寄存器内存&oldid=67602976」
分類:電腦記憶體隱藏分類:所有需要專家關注的頁面其他需要專家關注的頁面包含過多行話或專業術語的條目
本頁面最後修訂於2021年9月8日 (星期三) 13:46。
本站的全部文字在創用CC 署名-相同方式分享 4.0協議之條款下提供,附加條款亦可能應用。(請參閱使用條款)
Wikipedia®和維基百科標誌是維基媒體基金會的註冊商標;維基™是維基媒體基金會的商標。
維基媒體基金會是按美國國內稅收法501(c)(3)登記的非營利慈善機構。
隱私權政策
關於維基百科
免責聲明
行為準則
開發人員
統計
Cookie 聲明
行動版檢視
切換限制內容寬度