计算机组成原理知识点-第二章
文章目录
计算机组成原理(第二章)
第二章思维导图如下:
0. 数据类型
- 按数制分:二值进制、十进制、八进制、十六进制。
- 按数据格式分: 真值、机器数。
- 按数据的表示范围分:定点数、浮点数。
- 按能否标识负数分:无符号数、有符号数。
1. 数据与文字的表示方法
1.1 数据格式
定点数
- 定点数:小数点固定在某一位置的数据。
- 纯小数:
- 表示形式: 为符号位 ;为0。
有符号数:
无符号数:
- 表示形式: 为符号位 ;为0。
- 纯整数:
- 表示形式: 为符号位 ;为数值位。
有符号数:$x=x_sx_{n-1}……x_{1}x_{0} $
无符号数:
- 表示形式: 为符号位 ;为数值位。
- 纯小数:
- 定点机的特点:
- 所能表示的数据范围小;
- 数据精度较低;
- 存储单元利用率低。
浮点数
-
浮点数:小数点位置可变,形如科学计数法中的数据表示。
-
格式定义:
- M:尾数,是一个纯小数,表示数据的全部有效数位,其位数决定数值的精度;
- R:基数,可以取2、8、10、16,表示当前的数制;
- e:阶码,是一个整数,用于指出小数点在该书中的位置,其位数决定数据的取值范围;
-
机器数的一般表示形式:
阶符 阶码 数符 尾数 数符 阶符 阶码 尾数 -
规格化表示:
- 要求:|尾数| 0.5,( 是否为规格化浮点数与阶码无关 );
- 尾数原码表示:最高数值位为1;
- 尾数补码表示:最高数值位与符号位相反;
- 处理:
- 左规处理(数值向左移动);
- 右规处理(数值向右移动);
- 要求:|尾数| 0.5,( 是否为规格化浮点数与阶码无关 );
-
最值:
-
32位浮点数的IEEE754标准表示:
| 数符S | 阶码E | 尾数M |- 数符S:1位,表示浮点数的符号;
- 尾数M:23位,原码纯小数表示,小数点在尾数域的最前面;
- 阶码E:8位,采用有偏移值的移码表示(移127码);
- 真值:
-
S E M 正零 0 0000 0000 000……000 负零 1 0000 0000 000……000 正无穷 0 1111 1111 000……000 负无穷 1 1111 1111 000……000
1.2 数的机器码表示
原码
- 定义:
- 定点小数:
- 定点整数:
- 定点小数:
- 特点:
- 0的有两种表示法;
- 数据表示范围:
- 定点小数:
- 定点整数:
- 符号位与数值位不能一起参与运算
补码
-
定义:
- 定点小数:
- 定点整数:
- 定点小数:
-
特点:
- 0的编码唯一:0000
- 数据表示范围:
- 定点小数:
- 定点整数:
- 只要结果不溢出,符号位可与数值位一起参与运算
-
有原码求补码
- 除符号位以外,其余各位按位取反,末位加一;
- 除符号位以外,从最低位开始,遇到的第一个1以前各位保持不变,之后各位取反。
-
求相反数的补码:由求 (连同符号位的所有位一起取反,末位加一)。
移码
- 定义:
- 特点:
- 0的表示方法唯一:1000;
- 与补码符号位相反,数值位相同;
- 最高位为0表示负数,为1表示整数;
- 可以较为直观的判断两个数据的大小(全为0时所对应真值最小,全为1时所对应真值最大);
- 表示浮点数阶码时,容易判断是否下溢。
1.3 字符与字符串的表示方法
- ASCII码:8位,可表示128个字符,最高位为0,最高位可进行奇偶校验。
- 字符串:连续的一串字符,每个字节存一个字符。
1.4 校验码
- 数据校验的基本原理是扩大码距。
- 码距:任意两个合法码之间不同的二进制位的最少位数。
奇偶校验码
- 原理:在数据中增加1位奇偶校验位,是码距有1增到2。
- 类型:
- 偶校验:每个码字(包括校验位)中1的数目为偶数;
- 奇校验:每个码字(包括校验位)中1的数目为奇数。
- 过程:
- 发送端:按照校验类型,在发送数据后添加校验位P;
- 接收端:对接收到的数据(包括校验位)进行同样类型的校验,决定数据传输中是否存在错误。
- 特点:具有检错能力(只能检测有奇数个错误的情况),但无纠错能力。
海明校验码
- 原理:在一个数据中加入几个校验位,每个校验位和某几个特定的信息位构成偶校验的关系;接收端对每个偶关系进行校验,产生校验因子;通过校验因子区分无错和码字中的n个不同位置的错误;
- 过程:
-
确定校验位的位数:
- 设K为有效信息的位数,r为校验位的位数,则整个码字的位数N应满足不等式:
- 设K为有效信息的位数,r为校验位的位数,则整个码字的位数N应满足不等式:
-
确定校验位的位置:
- 每个校验位从低到高被分在海明码中位号的位置。
-
校验分组:
- 海明码的每一位Hi有多个校验位校验,其关系是被校验的每一位位号等于校验它的各校验位的位号之和;
- 每个信息位的位置写成用2的幂次之和的形式 ;
例如下图:
-
校验位的形成:
- =第i组中所有位(除)求异或;
- 为了能检测两个错误,增加一位校验,放在最高位;
- =所有位(包括P)求异或。
-
接收端校验:
- 接收端接收到数据后,分别求 :
=第j组中所有位(包括)求异或
⊕所有位(包括)求异或;
当时,有一位出错;
由的编码指出出错位号,将其取反,即可纠错。
当时,无错或有偶数个错(两个错的可能性比较大);
当时,接收的数无错,否则有两个错。
- 接收端接收到数据后,分别求 :
-
- 特点:既能检错,又能纠错。
2. 定点加法、减法运算
2.1 补码加法
- 定点整数:
- 定点小数:
2.2 补码减法
- 定点整数:
- 定点小数:
2.3 溢出概念与检测方法
- 溢出:在定点数机器中,数的大小超出了定点数能表示的范围。
- 上溢:数据大于机器所能表示的最大正数;
- 下溢:数据小于机器所能表示的最小负数。
- 判别方法:
-
直接判别法:
- 同号补码相加,结果符号位与加数相反;
- 异号补码相减,结果符号位与减数相同。
-
变形补码判别法:采用双符号位表示补码。
符号位 结果 00 正 01 上溢 10 下溢 11 负 -
进位判别法:最高数值位的进位与符号位的进位是否相同。
-
3. 定点乘法运算
3.1 串行乘法
- 乘法运算 = 加法+移位。
若乘数数值位n = 4,则累加 4 次,移位4 次。 - 乘法过程
- 由乘数的末位决定被乘数是否与原部分积相加;
- 被乘数只与部分积的高位相加;
- 部分积右移一位形成新的部分积;
- 同时乘数右移一位(末位移丢);
- 空出高位存放部分积的低位。
- 硬件构成
3个具有移位功能的寄存器、一个全加器。
原码乘法(符号位与数值位分开计算)
-
原码一位乘
数值位运算规则:- 被乘数和乘数均取绝对值参加运算,符号位单独考虑;
- 被乘数取双符号位,部分积的长度同被乘数,初值为0;
- 从乘数的最低位Yn开始判断:
- 若Yn=1,则部分积加上被乘数|X|,然后右移一位;
- 若Yn=0,则部分积加上0,然后右移一位。
- 重复,判断n次。
-
原码两位乘
数值位运算规则:- 部分积和被乘数均采用三位符号位;
- 乘数末位增加1位C,其初值为0,运算过程见表;
乘数字长与运算步骤:
- 若乘数字长为偶数(不含符号),最多做n/2+1次加法,需做n/2次移位,最后一步不移位;
- 若尾数字长n为奇数(不含符号),增加一位符号0,最多做n/2+1次加法,需做n/2+1次移位,最后一步右移一位。