硬件组成原理
一. 数据识别
- 整数的识别方式
1) 原码(8位机为例)
A. 组成:最高位为符号位,剩余位表示数据,符号位0表示正数;1表示负数
B. 例如:00001111(原)15(D)
10101010(原) -42(D)
C. 特点
a) 原码区分正负零(缺点)
例:+0(D):0000 0000(原)
-0(D):1000 0000(原)
b) 运算算数运算出错
例:1+(- 1)= 0000 0001
+ 1000 0001
———————–
1000 0010(原)(-2)错误
c) 8位机:正数0000 0000 ~ 0111 1111
0 ~ 127
负数1000 0000~1111 1111
-0 ~ -127
所以[-127 ,127]
d) 16位机:[-32787 ,32787]
e) 32位机:[-2147483647 ,2147483647]
f) n位机:[- (2n – 1 - 1) , 2n – 1 - 1]
2) 补码
A. 组成:最高位为符号位,0表示正数,1表示负数,正数补码与原码相同,负数补码为符号位为1,剩余位按位取反,末位加1
B. 例: (12 - 14)(补)
= 12(补)+(-14)(补)
=0000 1100 + 1111 0010
=1000 0010(原)
= -2(D)
C. 特点
a) 不区分正负零(优点)
+ 0 0000 0000(补)
-0 0000 0000(补)
b) 范围
n位机:[ - 2 n-1 ,2 n-1 - 1]
c) 计算机中所有整数都使用补码表示
3) 反码
A. 组成
a) 正数:反码 = 原码
b) 负数:原码最高位为1,剩余位按位取反
B. 反码所有特点,同原码
4) 移码
A. 组成:正数及负数先转换为补码,再符号位取反
B. 例:-104(D)
= 11101000(原)
= 10010111 + 1
= 10011000(补)
= 00011000(移)
C. 作用:移码用于表示浮点数中的阶码,又称为偏移量
D. 特点:移码与补码相似
例:3.1415926*************
0.3141 * 101 - 数的分类
1) 定点数
A. 定点整数:小数点位于所有有效位之后,如123
B. 定点小数:小数点位于所有有效位之前,如.123
C. 例:
a) 有8位二进制1111 1111采用不同编码及不同小数点时,其十进制为多少?
1111 1111.(原 定点整数):-127
1111 1111.(补 定点整数):-1
1111 1111.(移 定点整数):127
1.111 1111(原 定点小数):-127/128
1.111 1111(补 定点小数):-1/128
1.111 1111(移 定点小数):127/128
2) 浮点数
A. 概念:小数点位置变化移动
B. 表示:
a) 一般表示:3.14 0.123 36.98
b) 科学计数法:3.14*102 - 浮点数的规格化
1) IEEE754浮点数规格化标准(32位):浮点数二进制总长32b,数符占1位,阶码共占8位,使用移码表示,偏移量+127,尾数占23位,使用原码表示,并设置为1.***结构且省略整数1
2) 结构
0 1 8 9 31
数符 阶码 尾数
3) 分析
A. 数符:浮点数的符号位,0表示正数,1表示负数
B. 阶码:决定浮点数的范围(大小)
C. 尾数:决定浮点数的精确度
4) 规格化过程
A. 例1:使用IEEE754标准规格化浮点数123.75
a) 将123.75转化为二进制
1231111011
.75.11
123.751111011.11
b) 将1111011.11转化为定点小数1.11101111*26
c) 省略整数1后为.11101111*26
d) 数符:0
阶码:6(D)0000 0110(B)1000 0110(移)1000 0110(移)- 1 = 1000 0101(移)
因为偏移量要+127,所以符号位取反后末尾减1,即 + 127了
e) 尾数1.11101111变为.**结构后为.11101111,
补齐23位, .1110 1111 0000 0000 0000 000
识别方式为原码:1110 1111 0000 0000 0000 000
f) 结果:010000101 11101111000000000000000
B. 例二:对 -63.125进行IEEE754规格化
a) 63.125 111111.001
b) 111111.001转化为定点小数(1.**):
1.11111001 * 25
c) 数符:1
d) 阶码:5 0000 0101 10000100(移)
e) 尾数:省略整数1为(27位)11111001000000000000000
f) 11000010011111001000000000000000
g) 例:x = -53/64,采用8位定点机器码表示,则x(原),x(补)为多少?
解:x = -53/64 = -106/128 111.01010(原) 10010110(补) - 逻辑运算
1) 逻辑与运算
A. 符号:AND、∩、∧
B. 又称为逻辑乘
C. 作用
a) 置为全0操作:A•0
b) 将二进制部分置为0:将任意数(8位)高4位置为0应执行A•00001111
2) 逻辑或运算
A. 符号:OR、∨、∪、+
B. 又称逻辑加运算
C. 作用:将二进制置为全1:A + 1
3) 异或运算
A. 符号:XOR
B. 又称为半加运算
C. 规则:相同为0,不同为1
D. 作用:测试内存中二进制的值是否相等
4) 取反运算
A. 符号:NOT、A
B. 单目运算符
C. 注意:优先级最高
5) 真值表
A B A
B
A•B AB A + B A+AB
0 0 1 1 0 0 0 0
0 1 1 0 0 1 1 0
1 0 0 1 0 1 1 1
1 1 0 0 1 0 1 1
5. 校验码
1) 作用
A. 增加数据的自校验能力
B. 增加硬件的兼容性及容错能力
C. 保证程序的健壮性
2) 奇偶校验
A. 原则:在数据编码的首部增加一位校验位,只保证整个二进制校验编码中1的个数为奇数个或偶数个
B. 奇校验
a) 形式:编码中二进制1的个数为奇数个
b) 例如:二进制编码0110110的奇校验:10110110
1100111的奇校验:01100111
C. 偶校验
a) 形式:编码中二进制1的个数为偶数个
b) 例如:1110110的偶校验为:11110110
0110011的偶校验为00110011
D. 特点
a) 由于偶校验会出现全0的编码,则奇校验较为常用,一般用于内存设备的数据
b) 奇偶校验只能检错,不能纠错,即不知道出错位置,且偶数个位出错无法检错
例如:原编码 奇校验 10001100
结果编码 奇校验 10111100
3) 海明码(汉明码)(贝尔实验室发明)
A. 原则:在m位数据中交叉引入k位校验位,组成m + k位海明编码
B. 校验位计算公式:m + k + 1 < 2k
例:12位数据位使用 5 位校验位进行海明码校验
解:因为:12 + k + 1 < 2k km = 5
C. 分析数据0110 1001海明校验过程
a) 已知8位数据,则最少使用4位校验位
b) 校验放置位置原则:放置在海明码的2n(n = 0,1,2…….11)结果位置上
P1位置:20 放置在第1位
P2位置:21 放置在第2位
P3位置:22 放置在第4位
P4位置:23 放置在第8位
海明伪代码(D为数据位,P为校验位)
0 1 1 0 1 0 0 1
D7 D6 D5 D4 P4 D3 D2 D1 P3 D0 P2 P1
12位 11位 10位 9位 8位 7位 6位 5位 4位 3位 2位 1位
c) 校验位值计算
方法一:列表法
P4 P3 P2 P1
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
P1的校验对象:D0、D1、D3、D4、D6
P2的校验对象:D0、D2、D3、D5、D6
P3的校验对象:D1、D2、D3、D7
P1的校验对象:D4、D5、D6、D7
校验位的值:是其校验对象异或的结果
P1 = D0 D1 D3 D4 D6
= 1 0 1 0 1 = 1
P2 = D0 D2 D3 D5 D6
= 1 0 1 1 1 = 0
P3 = D1 D2 D3 D7
= 0 0 1 0 = 1
P4 = D4 D5 D6 D7
= 0 1 1 0 = 0
方法二:第i位校验位连续校验i位,跳跃i位,在连续检验i位……以此类推(i位海明编码的位数从1开始)
d) 海明编码结果:011001001101
D. 特点
a) 海明码既能检错,又能完成纠错
b) 海明码处理效率相对较低,但校验能力较强
4) CRC循环校验
A. 原则:使用r位校验位补在k位数据位之后,组成K+r位CRC检验码
B. 校验位的计算原则:根据多项式结果进行计算
a) 多项式
作用:使计算还原校验位的依据
例如:G(x)= x31 + x30 + …… + x1 + x0
b) 多项式二进制值计算
多项式中必须包括最高权值和最低权值
例:G(x)= x6 + x5 + x2 + 11100101
二进制计算原则:x出现为1,省略为0
例:G(x)= x5 + x3 + x + 1
其多项式二进制为:101011
C. 特点
a) CRC校验只能实现检错,不能实现纠错
b) CRC校验一般用于网络通信系统的数据校验
5) 校验算法的检验能力依赖关系
A. 码距:正确编码系统中两两一组比对不同二进制个数的最小值
码距越大,出错后,错误编码和原编码相同的几率就越低
B. 校验算法的校验能力依赖于编码的码距大小,码距越大,校验能力越强
二. 计算机原理
总线(Bus)
1) 概念:数据通信系统中的公共信息线
2) 分类:
A. 按层次划分
a) 芯片级总线:芯片内部的信号线(CPU、GPU)
b) 元器件级总线:小型板卡中的总线(NIC)
c) 内总线:主板中的总线系统(系统总线)
d) 外总线:连接外部设备的总线(USB:通用串行外部总线)
B. 按传输内容划分
a) 数据总线(DB)
作用:传输数据,其位宽决定一次性通过的二进制位数
注意:数据总线的位宽由CPU的字长决定
例:64位的CPU:指CPU的字长为64
b) 地址总线(AB)
作用:传输内存等设备的空间地址
公式:2n = 容量 (n为AB的位数)
二位二进制00, 01, 10, 114个空间
四位二进制……………………16个空间
32位二进制………………….可以访问232个空间
地址总线宽度决定了内存寻址空间的大小
例:某存储空间描述为32*64M则该存储空间的DB宽度为: 32b ,AB宽度为: 26b
c) 控制总线(CB)
C. 按照工作方式分类
a) 串型总线:适用于远距离,低速率的外部设备
b) 并型总线:适用于近距离,高速率的内部设备
3) 内总线
A. 又称主板总线(系统总线),工作在设备内部主板中
B. 实例:PCI总线
4) 外总线:
A. 连接外部设备的总线
B. 实例:
a) USB(通用串型总线)
版本:USB1.1、USB 2.0、USB3.0(5G5Gbps)
工作原理:+5 data 地
b) IEEE1394火线:传输速率稳定(800M/400M)CPU
1) 作用:CPU用于运算及控制
2) 分析
A. 运算:运算算术运算及逻辑运算(+,-,*,/,%,&&,||,!)
B. 指令的控制
C. 时序控制:指令执行的先后次序
D. 操作控制
3) 组成
A. 运算器&