迅维网

查看: 1778|回复: 1
打印 上一主题 下一主题
[内存维修]

内存中的ECC详解

[复制链接]
跳转到指定楼层
1#
发表于 2008-10-21 21:54:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 福建厦门 来自 福建厦门

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x

为什么市场上买的普通标准内存装入我的机器中,机器不认,更何况是正常工作呢?

为什么工作站和服务器所用的内存和台式机不同呢?都是因为ECC。究竟什么是ECC呢?

什么是ECC

ECC Error Checking and Correcting(错误检查和纠正)的简写。它广泛应用于各种领域的计算机指令中。而本文主要讲解ECC在计算机内存中的应用。ECC和奇偶校验(Parity)类似。然而,在那些Parity只能检测到错误的地方,ECC实际上可以纠正绝大多数错误。经过内存的纠错,计算机的操作指令才可以继续执行。

在内存中会发生什么样的错误呢?

绝大多数常见的内存出错都是:单位错,多位错,列错,行错。它们都比较相似。单位错大多发生在读一个完整的比特或词的时候有一位比特出错。当读相同的比特和词时总是同一位数据出错,则称为多位错。单位错发生在很多词中,就称列错或行错。

这些错误是怎样被纠正的?

ECC内存使用额外的比特(bit)存储一个用数据加密的代码。当数据被写入内存,相应的ECC代码与此同时也被保存下来。当重新读回刚才存储的数据时,保存下来的ECC代码就会和读数据时产生的ECC代码做比较。如果两个代码不相同,他们则会被解码,以确定数据中的那一位是不正确的。然后这一错误位会被抛弃,内存控制器则会释放出正确的数据。被纠正的数据很少会被放回内存。假如相同的错误数据再次被读出,则纠正过程再次被执行。重写数据会增加处理过程的开销,这样则会导致系统性能的明显降低。如果是随机事件而非内存的缺点产生的错误,则这一内存地址的错误数据会被再次写入的其他数据所取代。

ECC到底需要多少额外的空间呢?

加密ECC代码以及纠正一位错误,只需要很少的额外存储空间。和Parity不同的是ECC不会以数据位数的增加速度而增加。例如:数据的位数增加一倍,Parity也得增加一倍,而ECC只需增加一位。所以,一个系统中用8位数据,则需1位用于Parity检验,5位用于ECC。然而,一个32位数据需要4位作Parity7位作ECC。当数据带宽增加到64位则同时各需要8位分别作ParityECC。下表列出了不同带宽的数据所需要的不同位数的ECCParity






就如您们所看见的一样,当数据为64位时所用的ECCParity位数相同。这就是为什么内存制造商用一对或几对36位内存模块造就ECC。例如:EDO+ECC就是36位内存模块。成对上就是72位,存储64位数据,多余的8位作ECC用。而SDRAM+ECC72位内存模块。因而它是成单上,多余的8位作ECC用。可能有的系统会应用到额外的ECC内存模块,但是工业标准的36SIMM条在成本和实用性上更加吸引设计者和最终用户。

ECC是怎样被应用于现实世界中的?

含有ECC的系统可能对于ECC有着不同的用法。通常,当错误数据需要被纠正时,系统会记录下错误并把错误报告给系统管理者。如果数据被多次读出而没有被其他数据取代,则许多出错会被报告于相同的内存单元。如果系统关闭后这一相同的内存单元被纠正,一个故障很可能发生在内存中而且必须被替代。


[ 本帖最后由 米奇 于 2008-10-21 21:56 编辑 ]

转-ECC详解.rar

4.32 KB, 下载次数: 6, 下载积分: 下载分 -2 分, 下载 1 次


评分

参与人数 1下载分 +10 威望 +1 收起 理由
贝贝 + 10 + 1

查看全部评分

2#
发表于 2008-10-21 23:14:51 | 只看该作者 来自: 广西柳州 来自 广西柳州
挺不错的,呵呵,谢谢分享

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长提醒 上一条 /1 下一条

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复