Parity(奇偶校验) vs ECC(错误检查和纠正)
来源:互联网 发布:梵语发音软件 编辑:程序博客网 时间:2024/06/05 09:39
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的不足是:当内存查到某个数据位有错误时,却并不一定能确定在哪一个位,也就不一定能修正错误,所以带有奇偶校验的内存的主要功能仅仅是“发现错误”,并能纠正部分简单的错误。
ECC(错误检查和纠正)
通过上面的分析我们知道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更强大的自动识别、更正的能力,可以将Parity无法检查出来的错误位查出并将错误修正。
- Parity(奇偶校验) vs ECC(错误检查和纠正)
- ECC --- Error Correcting Code,错误检查和纠正
- Parity和ECC
- 奇偶校验ECC
- s3c2416 8 bit ECC校验(二)—— 纠正位错误
- parity checking 奇偶校验 笔记
- ECC奇偶校验原理
- FZU 2152 文件系统(错误已经纠正)
- 处理器核心 错误源: 已更正的计算机检查 错误类型: 内部奇偶校验错误
- hdoj 2700 (奇偶校验)(水题)
- Hamming Code ECC (汉明码错误检测与修正)
- 《程序员面试宝典3》大量错误(50+)纠正表
- 《程序员面试宝典3》大量错误(50+)纠正表
- MSP430F5529 番外(二)纠正XT1配置错误
- 《程序员面试宝典3》大量错误(50+)纠正表
- 《程序员面试宝典3》大量错误(50+)纠正表
- 《程序员面试宝典3》大量错误(50+)纠正表
- 计算图像直方图方法,纠正calcHist调用错误(OpenCV)
- flex code behind
- JDBC批处理的三种方式
- Oracle新建用户、角色,授权,建表空间
- C/C++发展历史简单介绍
- Leetcode: Populating Next Right Pointer in Each Node
- Parity(奇偶校验) vs ECC(错误检查和纠正)
- IOS开发之深拷贝与浅拷贝(mutableCopy与Copy)详解
- ubuntu12.04的NFS配置
- 定时自动按键
- check out the psk from wpa wireless network
- 乱码
- 基于 OSGi 的面向服务的组件编程
- 折半查找法
- Objective-C中的NSObject对象经常使用到的方法