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
在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld_safe –user=mysql &。可是有很多程序并不想mysqld一样,这样我们就需要nohup命令,怎样使用nohup命令呢?这里讲解nohup命令的一些用法。nohup /r...
上篇博客也提到这些知识点,可能大家还是不太清楚,这篇博客为大家详细讲解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是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery。vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应。也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,而且vue-resource的API更为简洁。另外,vue-resource还提供了非常有用的inteceptor功能,使用inteceptor可以在请求前和请求后附加一些行为,比如
编辑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...
Pair类型概述pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair a;表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。 pair a("James", "Joy");也可以像上面一样在定义的时候直接
# 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: 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上后,其他功能运行正常,有一个
我正在使用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 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/
在Visio里,包和类的关系是包含关系,将类拖入包的文件夹之后,关系就建立了,二元关联符号可以设置为:聚合、合成。接口:空心圆+直线(唐老鸭类实现了‘讲人话’);依赖:虚线+箭头(动物和空气的关系);关联:实线+箭头(企鹅需要知道气候才迁移);聚合:空心四边形+实线+箭头(雁群和大雁的关系);合成:实心四边形+实线+箭头(鸟和翅膀的关系);泛化:空心三角形+实线(动物和鸟的继承关系);实现:空心三...
stdio.h全称“standard input output.header”,中文意思为“标准输入输出头文件”,在用到标准输入输出函数时,就要调用这个头文件;stdio.h文件的内容就是一些基本输入输出函数的声明。一般地,在C语言或C++中,会把用来#include的文件的扩展名叫 .h,称其为头文件。 #include文件的目的就是把多个编译单元(也就是c或者cpp文件)公用的内容,单独放在一...
【单选题】制作油脂含量高、不易成熟的蛋糕时,选择的模具()过高、过大【单选题】面粉由( )加工而成,是制作糕点、面包的主要原料。【单选题】若在 Excel 的同一单元格中输入的文本有两个段落,则在第一段落输完后应使用( )键【判断题】创新兴趣是对挑战陈规、创造新事物、提出新方法等感兴趣、热衷于创新活动。【判断题】为了增加混酥面坯的酥松性,可加大面粉用量或加入大量的膨松剂。【判断题】纯牛奶的蛋白质含...