无言沙漠
5y6s Inc.
级别: 管理员
精华:
2
发帖: 389
威望: 4 点
金钱: 749 RMB
贡献值: 0 点
在线时间:474(小时)
注册时间:2006-01-01
最后登录:2018-07-27
|
详细讲解ECC内存
为什么市场上买的普通标准内存装入我的机器中,机器不认,更何况是正常工作呢?为什么工作站和服务器所用的内存和台式机不同呢?
都是因为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位作Parity,7位作ECC。当数据带宽增加到64位则同时各需要8位分别作Parity和ECC。下表列出了不同带宽的数据所需要的不同位数的ECC和Parity。
就如您们所看见的一样,当数据为64位时所用的ECC和Parity位数相同。这就是为什么内存制造商用一对或几对36位内存模块造就ECC。例如:EDO+ECC就是36位内存模块。成对上就是72位,存储64位数据,多余的8位作ECC用。而SDRAM+ECC是72位内存模块。因而它是成单上,多余的8位作ECC用。可能有的系统会应用到额外的ECC内存模块,但是工业标准的36位SIMM条在成本和实用性上更加吸引设计者和最终用户。
ECC是怎样被应用于现实世界中的?
含有ECC的系统可能对于ECC有着不同的用法。通常,当错误数据需要被纠正时,系统会记录下错误并把错误报告给系统管理者。如果数据被多次读出而没有被其他数据取代,则许多出错会被报 告于相同的内存单元。如果系统关闭后这一相同的内存单元被纠正,一个故障很可能发生在内存中而且必须被替代。
看了以上对ECC内存的介绍,大家可能对ECC有了更多的了解,希望对您有所裨益。
|
常州电信/网通机房,100M共享/10M独享/1000M共享/100M独享/电信+网通双线路服务器托管
Tel:0519-89991155 企业QQ:4006023839
|
[楼 主]
|
Posted: 2006-06-20 04:15 |
| |