
有关ECC内存的定义,请直接参考Wikipedia。克服这堵墙并不容易,直接在百度百客上也是如此。
ECC存储器的原理实际上并不复杂,它是通信原理中的纠错编码。
CRC校验和用于检查编码错误,这很常见。例如,2个数据位,最后一位的校验位,校验算法直接是XOR操作。从信息的角度来看,这里的最后一位是多余的。在上面,这是多余的,但实际上意味着一件事。

那么000是可以通过检查的编码结果。在传输或存储过程中,一位可能会更改。注意:这里000已经是一个完整的编码结果,不需要区分原始数据信息和校验信息,任何一位都可以更改。如果更改一位,则它可能是001、010或100,它将不会通过检查。如果更改2位011,则可以通过检查规则。即2位错误。此方法无法检测到错误。
我们上面的编码结果和原始位数(3,2)。类似的汉明码是4位信息,编码为7位。即汉明(7,4)Encoding。
纠错编码的原理相似。这是为了添加更多的冗余信息。

例如,我们仍然有2个数据位,然后直接重复2个位,并将XOR值添加为校验位。也就是说,是(5,2)编码。
然后,00,代码为00000,而10则编码为10101.
00-> 00000

01-> 01011
10-> 10101
11-> 11110

这时,如果1位错误(例如00000)变为00001,那么我们可以推测00000.解码的结果很有可能是00,这是为了纠错的目的。
据说很可能是因为发生错误。实际上,我不知道更改了多少位。但是更改2位的概率小于更改1位的概率。因此,纠错为00000.。如果发生2位错误,例如00000,则更改为00011,此时纠错为01011,解码为01.
因此,上述编码方法(5,2)只能校正1位。如果添加更多位,则可以检查更多位的错误,但是编码后的冗余信息将更多。是一个平衡问题。
以上只是一个非常非常简单的示例。如果您有兴趣,可以阅读与沟通原理相关的书籍,并且将对此方面进行介绍。我不会去研究它。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-324432-1.html
权威