002--软考程序员之硬件组成原理

硬件组成原理

一. 数据识别

  1. 整数的识别方式
    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
  2. 数的分类
    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
  3. 浮点数的规格化
    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转化为二进制
     1231111011
     .75.11
     123.751111011.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(补)
  4. 逻辑运算
    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 AB 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 + 11100101
 二进制计算原则:x出现为1,省略为0
 例:G(x)= x5 + x3 + x + 1
其多项式二进制为:101011
C. 特点
a) CRC校验只能实现检错,不能实现纠错
b) CRC校验一般用于网络通信系统的数据校验
5) 校验算法的检验能力依赖关系
A. 码距:正确编码系统中两两一组比对不同二进制个数的最小值
码距越大,出错后,错误编码和原编码相同的几率就越低
B. 校验算法的校验能力依赖于编码的码距大小,码距越大,校验能力越强

二. 计算机原理

  1. 总线(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, 114个空间
    四位二进制……………………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(5G5Gbps)
     工作原理:

    +5 data 地
    b) IEEE1394火线:传输速率稳定(800M/400M)

  2. CPU
    1) 作用:CPU用于运算及控制
    2) 分析
    A. 运算:运算算术运算及逻辑运算(+,-,*,/,%,&&,||,!)
    B. 指令的控制
    C. 时序控制:指令执行的先后次序
    D. 操作控制
    3) 组成
    A. 运算器&

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值