计算机硬件: CPU+校验码

1. 计算机硬件

计算机硬件由:运算器、控制器、存储器、输入&输出设备构成。

其中运算器和控制器集成在CPU。

存储设备分为内存和外存。

2. CPU

CPU依据指令的周期不同阶段来区分二进制的指令和数据。

2.1 运算器

执行算术运算和逻辑运算并执行逻辑测试。

  • 算术逻辑单元ARU: 实现对数据算术运算。
  • 累加寄存器AC:存储计算结果或源操作数。
  • 数据缓冲寄存器DR:临时存放内存指出标志。
  • 状态条件寄存器PSW:保存指令运行结果的条码内容。

2.2 控制器

控制CPU工作

  • 指令寄存器IR: 暂时存储CPU执行指令。
  • 程序计数器PC:存放执行执行地址。
  • 地址寄存器:保存CPU访问内存的地址。
  • 指令译码器ID:分析指令操作码。

3. 数据校验

3.1 奇偶校验

在原始数据流的头部或者末尾添加一位bit,此bit用于校验此数据包的正确与否。

优点:原理简单,实现方便。

缺点:

  1. 奇偶校验的检错率只有50%,因为只有奇数个数据位发生变化能检测到,如果偶数个数据位发生变化,奇偶校验方式不能检测出错误。
  2. 奇偶校验只能发现错误,但不能纠正错误。
  3. 每传输一个字节都需要加一位校验位,对传输效率影响很大。
原始数据 奇校验 偶校验
1011000 10110000 10110001
1010000 10100001 10100000

3.2 循环冗余校验CRC

生成多项式

生成多项式将一个任意的二进制数转换为多项式形式得到的一个特征多项式,如101011对应的多项式为:
y(x)=1*x^5+0*x^4+1*x^3+0*x^2+1*x^1+1*x^0 =>y(x)=x^5+x^3+x+1
反之,由多项式转二进制方式为判断x的幕是否存在,存在的位置为1,反之为0。如:y(x)=x^4+x+1

  1. 首先从0开始x^0=1而1在式中存在说明二进制第0位为1,同时最高幕为4可知二进制长度为5。
  2. 同理x^1 和x^4也存在,第二、第五位为1 。
  3. 其他位不存在对应位置为0,因此得到10011

模二运算

模二运算是一种二进制算法。与四则运算相同,模2运算也包括模2加、模2减、模2乘、模2除四种二进制运算。而且,模2运算也使用与四则运算相同的运算符,即“+”表示模2加,“-”表示模2减,“×”或“·”表示模2乘,“÷”或“/”表示模2除。模二加减法运算其实就是异或运算,如:1101 ± 1001 = 0100。

模二除法:

image.png

CRC

CRC校验码求解过程:

  1. 根据多项式得到除数二进制,假设多项式最高幕为n,除数二进制长度则为n+1。
  2. 在原码末尾补充n位0并与除数二进制进行模二除法运算,得到余数R。
  3. 如若R长度小于n,则在R左侧补充0。
  4. 将R添加到原码末尾得到CRC数据帧。

如数据信息1100,多项式为x^3+x+1,则CRC编码:1100010

// 1. 获取除数二进制p
p = 1011
// 2. 原信息补充3位0得到1100000
// 计算模二除法:1100 XOR 1011 = 0111 => 1110 XOR 1011=0101 => 1010 XOR 1011 =  0001 => 10
r = 10
// r长度小于3,前面加0
r = 010
crc = 1100010
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、概要 1、数据的表示:数制及其转换、原码、反码、补码、移码、浮点数、溢出、算...
    _Jason___阅读 3,247评论 0 5
  • 在计算机中,由于机器只能识别二进制数,因此,键盘上所有数字、字母和符号也必须事先为它们进行二进制编码,以便机器对它...
    Levi_moon阅读 1,789评论 0 2
  • 1、TCP为什么需要3次握手,4次断开? “三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端...
    杰伦哎呦哎呦阅读 3,547评论 0 6
  • 机内代码及运算 1 数的进制 十进制:0-9 如:(123)D 、(123)10二进制:0 1,如:(1001)...
    阿墨呦阅读 1,241评论 0 1
  • 1 计算机网络基础知识 [TOC] 第一讲 计算机网络的产生与发展 计算机网络是现代通信技术与计算机技术相结合的产...
    Yancy02阅读 2,778评论 0 0