Parity(奇偶校验)和ECC(错误检查和纠正)_IC小鸽的博客-程序员宅基地

技术标签: ECC  parity  IC设计  RAM  

Parity(奇偶校验)

1、什么是parity?

奇偶校验是一种数据校验机制,用于判断数据在存储过程中是否发生了比特位错误。常用于存储结构中,如RAM。存储结构的最小单元为“字节”,即Byte。每个字节含有8比特,另外增加1比特作为校验位。如下图(1)所示,校验位为所以比特位异或产生,即当8比特有奇数个1时,校验位为1,当有偶数个1时校验位为0。

存储数据时,会对8比特数据进行异或运算得到校验位y0,并且随8比特数据一块存到RAM中。

当读取存储数据时,会对读出的8比特数据进行异或运算得到新的校验位y1,并与校验位y0进行对比,如果y1和y0不一致,则表示数据存取不一致,出现错误。

 

校验位:         y=x0^x1^x2^x3^x4^x5^x6^x7

2、parity有什么特点

优点

结构简单,只需异或计算就可以实现,数据量小时(8比特)实现代价小。

缺点

1、不能修正错误:只知道8比特中有部分比特发生错误,无法判断哪几个比特发送错误。

2、有偶数个比特位时,无法判断出错。如图所示,x5和x2均发生变化时,校验位仍未1,无法检测出错误。

3、数据位宽较大时实现代价大:如1024比特数据,需要256bit的校验位。

 

X7

X6

X5

X4

X3

X2

X1

X0

y

 

1

0

1

1

0

1

1

0

1

 

1

0

0

1

0

0

1

0

1

 

 

ECC(错误检查和纠正)

 

1、什么是ECC

通过上面的分析我们知道Parity机制是通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,随着数据位每增加8比特,检验位需要增加1比特。当数据量为256字节时,需要256个比特位,并且出错的数据无法恢复。由此,一种存储检错纠错机制出现了,这就是ECC。ECC同样通过增加校验位来进行错误判断,但是能够进行错误纠正。

2、ECC有什么特点:

优点

1):大量数据位实现代价低8比特数据需要5个校验位,256字节(256*8比特)的数据值需要5个列校验位和11行校验位

2)能够纠正错误:在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断

缺点:

1):只能修复1比特错误

当数据只有单比特错误时,ECC能够进行错误修复;超过2比特的数据错误,将无法修复,ECC只能输出多比特错误信号。

2)不保证能检测超过2比特的错误

超过2比特的错误不一定能检测出来

 3、ECC是如何实现的:

 

实现细节

为什么能够单比特纠错

为什么不能纠正两比特的数据

为什么不能保证检测出多比特数据?

https://blog.csdn.net/qq_30866297/article/details/52104197--ECC原理

https://blog.csdn.net/nhczp/article/details/1700031

 

Parity与ECC的应用场景

 

IC设计中RAM模块输出信号有Parity信号和ECC信号。

parity 信号表示RAM中写入的数据data_in跟读出的数据是否一致。

ECC负责纠错,能够修正1bit的数据。

Parity是同一个data所有比特的异或,在data_in写入的时候进行异或计算得到parity_in,同时写入到RAM中,读出data的得到data_out,对data_out进行异或计算得到parity_out,若parity_out与parity_in不相等,则表示数据有错误

 

 

https://blog.csdn.net/ysmz4/article/details/9309287

https://blog.csdn.net/nhczp/article/details/1700031

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/icxiaoge/article/details/79996456

智能推荐

Why choose buy cheap fut coins fifa 15 within 3-5 minutes_cheapfifapal的专栏-程序员宅基地

Notwithstanding, you have to depict what you have to buy fifa 15 coins online attain with your fifa pal great trade show giveaways, in spite of fifa 15 coins cheapest pulling in individuals to your

【转】浅谈编译器优化_系统运维-程序员宅基地

“memory”比较特殊,可能是内嵌汇编中最难懂部分。为解释清楚它,先介绍一下编译器的优化知识,再看C关键字volatile。最后去看该描述符。1、编译器优化介绍 内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,...

组成一个偶数最接近的两个素数_愿世界和平的IT劝退师-程序员宅基地

bool isprime(int a){  for(int i=2; i    if(a%i==0) return false;    return true;}  int main(){    int n;    int prime1,prime2;        while(cin>>n)        {         if(n

解密ThreadLocal_diaoyuanrui9456的博客-程序员宅基地

相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误的认知!看看JDK中的源码是怎么写的:This class provides thread-l...

Flume-自定义拦截器_clearlxj的博客-程序员宅基地

自定义拦截器Interceptor拦截器一般与选择器共同使用,来对数据进行拦截处理,并可以根据数据的不同来进行区分处理。需求:使用Flume采集服务器本地日志,需要根据日志类型的不同,将不同种类的日志发往不同的分析系统(HDFS)。此时会用到Flume拓扑结构中的Mutiplexing结构,其原理是根据event中的header的某个key的值,将不同的event发送到不同的channel中,因此我们需要自定义一个interceptor,为不同类型的event的header中的key赋予不同的值。在

centos GPG简单使用_weixin_33973609的博客-程序员宅基地

一.生成密钥 gpg –gen-key 二.查看密钥 查看公钥:gpg --list-key查看私钥:gpg --list-secret-keys 三.导出密钥: 提取公钥:gpg -a --exportnewkey>newkey.asc 提取私钥:gpg -a --export-secret-keysnewkey>newkey_pirv.asc...

随便推点

【异常】Caused by: java.lang.IllegalStateException: Zip64 archives are not supported_a1346277的博客-程序员宅基地

1 自己打包Spring boot项目依赖了第三方的Phoenix jar包过大,导致启动后报错参考了这篇博客:https://cloud.tencent.com/developer/ask/135010发现是不支持文件数过多,然后根据文章:说到需要改变文件创建方式,自己再点击进去去查询问题:https://github.com/spring-projects/spr...

pycharm 解决python3.8运行tornado项目报NotImplementedError错误_1594231563的博客-程序员宅基地_pycharm tornado

pycharm 解决python3.8运行tornado项目报NotImplementedError错误报错如下解决方法找到python的目录,然后进入Lib -> site-packages -> tornado -> platform,在platform中找到asyncio.py文件用记事本打开在此处添加if sys.platform == 'win32': asyncio.set_event_loop_policy(asyncio.WindowsSelec

网络工程师未来几年必备的10大网络技术_weixin_34032827的博客-程序员宅基地

1、IP语音出于成本和便捷因素的考虑,目前很多公司和消费者都已经开始使用VoIP的电话服务。根据SearchVoIP网站在2007年6月份进行的一项调查,纯IP PBX系统在2007年第一季度的销售比上一季度上涨了76%。越来越多的公司期待加入VoIP阵营,让VoIP设备作为对传统固定电话的补充或者干脆替代后者。因为VoIP运行在TCP/IP网络,所以...

linux实验十shell程序设计,实验二Linux Shell编程.doc_木东森的博客-程序员宅基地

实验二Linux Shell编程湖北工业大学工程技术学院实验报告课程名称: 操作系统 实验内容: 实验二Linux学院: 工程技术学院 专业班级: 日期:教师: 成绩:一、实验目的1、掌握Linux环境下vi、vim和emacs的用法。2、掌握Linux环境下Shell程的编写。二、预习内容1、shell的基本功能:(1)命令的解释执行(2)环境变量的设置(3)输入/输出的...

在淘宝,我们是这样衡量代码质量的_<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd-程序员宅基地

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲来源丨阿里云云栖号越高级别的程序员往往越看重代码质量...

计算机网络物联网论文,物联网对计算机网络技术发展分析_天盗盗的博客-程序员宅基地

摘要:随着科学技术和计算机网络技术的快速发展,物联网行业呈现出了巨大的发展潜力并且不断完善。这几年在物联网概念的强力刺激下,很多的公共服务和商业服务也加入到这一技术的应用当中,计算机网络是构成物联网的基础,所以计算机网络技术的发展和物联网是紧密相连,密不可分的。文中对物联网和计算机网络技术的发展进行研究,简要分析了物联网对计算机网络技术发展造成的影响以及计算机网络未来的发展方向。关键词:物联网;计...