1. 计算机硬件
计算机硬件由:运算器、控制器、存储器、输入&输出设备构成。
其中运算器和控制器集成在CPU。
存储设备分为内存和外存。
2. CPU
CPU依据指令的周期不同阶段来区分二进制的指令和数据。
2.1 运算器
执行算术运算和逻辑运算并执行逻辑测试。
- 算术逻辑单元ARU: 实现对数据算术运算。
- 累加寄存器AC:存储计算结果或源操作数。
- 数据缓冲寄存器DR:临时存放内存指出标志。
- 状态条件寄存器PSW:保存指令运行结果的条码内容。
2.2 控制器
控制CPU工作
- 指令寄存器IR: 暂时存储CPU执行指令。
- 程序计数器PC:存放执行执行地址。
- 地址寄存器:保存CPU访问内存的地址。
- 指令译码器ID:分析指令操作码。
3. 数据校验
3.1 奇偶校验
在原始数据流的头部或者末尾添加一位bit,此bit用于校验此数据包的正确与否。
优点:原理简单,实现方便。
缺点:
- 奇偶校验的检错率只有50%,因为只有奇数个数据位发生变化能检测到,如果偶数个数据位发生变化,奇偶校验方式不能检测出错误。
- 奇偶校验只能发现错误,但不能纠正错误。
- 每传输一个字节都需要加一位校验位,对传输效率影响很大。
原始数据 | 奇校验 | 偶校验 |
---|---|---|
1011000 | 10110000 | 10110001 |
1010000 | 10100001 | 10100000 |
3.2 循环冗余校验CRC
生成多项式
生成多项式将一个任意的二进制数转换为多项式形式得到的一个特征多项式,如101011
对应的多项式为:
反之,由多项式转二进制方式为判断x的幕是否存在,存在的位置为1,反之为0。如:
- 首先从0开始而1在式中存在说明二进制第0位为1,同时最高幕为4可知二进制长度为5。
- 同理x^1 和x^4也存在,第二、第五位为1 。
- 其他位不存在对应位置为0,因此得到
10011
模二运算
模二运算是一种二进制算法。与四则运算相同,模2运算也包括模2加、模2减、模2乘、模2除四种二进制运算。而且,模2运算也使用与四则运算相同的运算符,即“+”表示模2加,“-”表示模2减,“×”或“·”表示模2乘,“÷”或“/”表示模2除。模二加减法运算其实就是异或运算,如:1101 ± 1001 = 0100。
模二除法:
CRC
CRC校验码求解过程:
- 根据多项式得到除数二进制,假设多项式最高幕为n,除数二进制长度则为n+1。
- 在原码末尾补充n位0并与除数二进制进行模二除法运算,得到余数R。
- 如若R长度小于n,则在R左侧补充0。
- 将R添加到原码末尾得到CRC数据帧。
如数据信息1100
,多项式为,则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