Parity(奇偶校验)和ECC(错误检查和纠正)_ecc parity_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

智能推荐

shell在指定目录下执行nohup_Linux Shell nohup命令用法_weixin_39786617的博客-程序员宅基地

在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld_safe –user=mysql &。可是有很多程序并不想mysqld一样,这样我们就需要nohup命令,怎样使用nohup命令呢?这里讲解nohup命令的一些用法。nohup /r...

python一对一多对多一对多_基于Django ORM、一对一、一对多、多对多的全面讲解..._weixin_39781930的博客-程序员宅基地

上篇博客也提到这些知识点,可能大家还是不太清楚,这篇博客为大家详细讲解ORM中的几个知识点1.1首先我们先看一个小案例:#_*_coding:utf-8_*_from django.db import models# Create your models here.class Colors(models.Model):colors=models.CharField(max_length=10) #...

Vue.js——vue-resource全攻略_sinat_33245198的博客-程序员宅基地

Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery。vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应。也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,而且vue-resource的API更为简洁。另外,vue-resource还提供了非常有用的inteceptor功能,使用inteceptor可以在请求前和请求后附加一些行为,比如

python向量化和c哪个快_在python中向量化6 for循环累积和_weixin_39562615的博客-程序员宅基地

编辑3:最终(我认为)版本,更清晰,更快速地融入max9111’s answer的创意.import numpy as npfrom numba import as [email protected]()def func1_jit(a, b, c, d):# Precomputeexp_min = 5 - (a + b + c + d)exp_max = bexp = 2. ** np.arange(exp_m...

STL--pair_return___0的博客-程序员宅基地

Pair类型概述pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair a;表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。 pair a("James", "Joy");也可以像上面一样在定义的时候直接

Python利用Numpy读取文本文件,存储文本文件_xiaoshayu520ly的博客-程序员宅基地

# Author: Baozi#-*- codeing:utf-8 -*-'''数据文件:ttt.txt内容:(以空格分开每个数据)0.26 1.00 0.410.57 0.40 0.140.04 0.72 0.45'''import numpy,sysdef matrix_transpose(inpath,outpath): matrix = numpy.loadtxt...

随便推点

PHP Warning之max_input_vars_php max_input_vars is too low, please increase it _IT黑旋风的博客-程序员宅基地

以下是报错信息PHP Warning:  Unknown: Input variables exceeded 4000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0公司内一个php的后台管理系统,之前运行在apache上,后来我给转到nginx+php上后,其他功能运行正常,有一个

diskpython_python – shutil.disk_usage()中的差异_weixin_39522312的博客-程序员宅基地

我正在使用shutil.disk_usage()函数来查找特定路径的当前磁盘使用情况(可用,使用的数量等).据我所知,这是os.statvfs()调用的包装器.我发现它没有给出我期望的答案,与Linux中“du”的输出相比.出于公司隐私原因,我已经模糊了下面的一些路径,但输出和代码在其他方面都没有被删除.我使用的是Python 3.3.2 64位版本.#!/apps/python/3.3.2_64...

Guiding High-Performance SAT Solvers with Unsat-Core Predictions 2020-05-03_zjy2015302395的博客-程序员宅基地

Guiding High-Performance SAT Solvers with Unsat-Core PredictionsAbstractNeuroSAT is a method to improve CDCL solvers with predictions of unsat-cores.can provide effective guidance to high-performance SAT solvers on real problems.代码: https://github.com/

java程序片的元素符号_UML 中的 基本画图元素及符号_weixin_39558804的博客-程序员宅基地

在Visio里,包和类的关系是包含关系,将类拖入包的文件夹之后,关系就建立了,二元关联符号可以设置为:聚合、合成。接口:空心圆+直线(唐老鸭类实现了‘讲人话’);依赖:虚线+箭头(动物和空气的关系);关联:实线+箭头(企鹅需要知道气候才迁移);聚合:空心四边形+实线+箭头(雁群和大雁的关系);合成:实心四边形+实线+箭头(鸟和翅膀的关系);泛化:空心三角形+实线(动物和鸟的继承关系);实现:空心三...

php中h语言是什么意思,stdio.h是什么意思?_weixin_39602005的博客-程序员宅基地

stdio.h全称“standard input output.header”,中文意思为“标准输入输出头文件”,在用到标准输入输出函数时,就要调用这个头文件;stdio.h文件的内容就是一些基本输入输出函数的声明。一般地,在C语言或C++中,会把用来#include的文件的扩展名叫 .h,称其为头文件。 #include文件的目的就是把多个编译单元(也就是c或者cpp文件)公用的内容,单独放在一...

关于python异常处理、以下说法正确的是_以下关于Python高级特性说法正确的是(_____)。..._weixin_39630048的博客-程序员宅基地

【单选题】制作油脂含量高、不易成熟的蛋糕时,选择的模具()过高、过大【单选题】面粉由( )加工而成,是制作糕点、面包的主要原料。【单选题】若在 Excel 的同一单元格中输入的文本有两个段落,则在第一段落输完后应使用( )键【判断题】创新兴趣是对挑战陈规、创造新事物、提出新方法等感兴趣、热衷于创新活动。【判断题】为了增加混酥面坯的酥松性,可加大面粉用量或加入大量的膨松剂。【判断题】纯牛奶的蛋白质含...

推荐文章

热门文章

相关标签