计算机组成原理 第二章_第1页
计算机组成原理 第二章_第2页
计算机组成原理 第二章_第3页
计算机组成原理 第二章_第4页
计算机组成原理 第二章_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章第二章 运算方法和运算器运算方法和运算器 2 第二章第二章 运算方法和运算器运算方法和运算器 数据与文字的表示方法数据与文字的表示方法 2.12.1 定点的除法运算定点的除法运算 定点的加、减法运算定点的加、减法运算 2.22.2 定点的乘法运算定点的乘法运算 2.32.3 2.42.4 定点的运算器的组成定点的运算器的组成 2.52.5 浮点运算方法和浮点运算器浮点运算方法和浮点运算器 2.62.6 3 计算机中常用数据表示格式:计算机中常用数据表示格式:定点数和浮点数定点数和浮点数。 1.1.定点数表示方法:定点数表示方法:约定机器中所有数据的小数点位置是固约定机器中所有数据的小数点

2、位置是固 定不变的。通常将数据表示成纯小数或纯整数。定不变的。通常将数据表示成纯小数或纯整数。 设设n+1n+1位定点数位定点数n nn-1 n-1 n-2 n-2 0 0 ,则,则在定点在定点 机中表示如下:机中表示如下: 符号符号 量值(尾数)量值(尾数) 定点数表示范围:定点数表示范围: 纯小数的表示范围为:纯小数的表示范围为: 0|0| |1 12 2 n n 纯整数的表示范围为:纯整数的表示范围为: 0|0| |2 2n n-1-1 x xn n X Xn-1 n-1 x xn-2 n-2 x x1 1 x x0 0 2.1.1 2.1.1 数据格式数据格式 4 2.2.浮点表示法:

3、数的计阶表示方法,把数的范围和精度分开浮点表示法:数的计阶表示方法,把数的范围和精度分开 表示的方法,小数点的位置随阶数的不同而浮动,表示的方法,小数点的位置随阶数的不同而浮动, 设任意一个进制数设任意一个进制数 用计阶法表示为:用计阶法表示为: e e. .其中其中 :尾数,规定是一个纯小数,且计算机中一般约:尾数,规定是一个纯小数,且计算机中一般约 定为最高有效位为定为最高有效位为1 1 ,称为,称为规格化规格化。 e e :指数,是一个整数,计算机中称为:指数,是一个整数,计算机中称为阶码阶码。 R R :基数,计算机中一般为:基数,计算机中一般为2 2,隐含表示。则计算机,隐含表示。则

4、计算机 中浮点数可以表示为中浮点数可以表示为: E Es s E Em-1 m-1 E Em-2 m-2 E E1 1 E E0 0 M Ms s M Mn-1 n-1 M Mn-2 n-2 M M1 1 M M0 0 5 实用浮点数格式:实用浮点数格式: IEEE754IEEE754标准标准 3232位表示法:位表示法: 6464位表示法:位表示法: 规则:规则:浮点数的符号位,:浮点数的符号位,1 1 位,位,0 0表示正数,表示正数,1 1表示负表示负 数。数。 :尾数,:尾数,2323或或5252位,用规格化小数表示,小数点放在尾位,用规格化小数表示,小数点放在尾 数域的最前面,小数点

5、第数域的最前面,小数点第1 1位位1 1隐含。隐含。 :阶码:阶码(8 (8 或或1111位位) ),采用隐含移码方式来表示。,采用隐含移码方式来表示。 E=eE=e(真值)(真值)+127/1023+127/1023 则:一个规格化的则:一个规格化的3232位浮点数位浮点数的真值可表示为:的真值可表示为: ( (1)1)s s(1.(1.) )2 2 127127 一个规格化的一个规格化的6464位浮点数位浮点数的真值为的真值为 ( (1)1)s s(1.(1.) )2 2 10231023 6 例例61 61 若浮点数若浮点数的的754754标准存储格式为标准存储格式为(41360000)

6、(41360000)16 16,求其浮点数的 ,求其浮点数的 十进制数值。十进制数值。 解解: : 十六进制数展开后,可得二进制数格式为十六进制数展开后,可得二进制数格式为 0 0 100 0001100 0001 0 0011 0110 0000 0000 0000 0000 011 0110 0000 0000 0000 0000 则:指数则:指数e e阶码阶码127127 10000010100000100111111101111111 00000011=(3)00000011=(3)10 10 尾数为:尾数为:1.1.M M1.011 0110 0000 0000 0000 00001

7、.011 0110 0000 0000 0000 0000 1.0110111.011011 浮点数为:浮点数为: ( (1)1)s s1.1.M M2 2e e (1.011011)(1.011011)2 23 3 1011.0111011.011(11.375)(11.375)10 10 7 例例72 72 将将(20.59375)(20.59375)10 10转换成 转换成754754标准的标准的3232位浮点数的二进制存储格式。位浮点数的二进制存储格式。 解解: : (20.5937520.59375)10 10( (10100.1001110100.10011)2 2 1.01001

8、00111.0100100112 24 4 则则 S S0 0, E Ee+127=4e+127=4127127131131, E =10000011E =10000011 M M010010011010010011 3232位浮点数存储格式为:位浮点数存储格式为: 0 0 100 0001100 0001 1 1010 0100 1100 0000 0000 0000010 0100 1100 0000 0000 0000 (41A4C000)(41A4C000)16 16 8 真值与机器数 v 真值:根据书写习惯,用正负号加绝对值表示的数值。 v 机器数:计算机内用的,将数符一起数码化的数

9、。计算机 常用机器数又分成原码、补码、反码和移码表示法。 v 机器数形式的二进制位数因受机器字长的限制,其数的表 示范围和精度相应受到限制,无法表示时,便产生溢出。 v 例8:真值: +1011 -1011 8位字长定点数:0 0001011 1 0001011 真值: +0.1011 -0.1011 8位字长定点数: 0 .1011000 1 .1011000 2.1.2 2.1.2 数的机器码表示数的机器码表示 9 1 原码原码 X 0X1 X X原 = = 1-X -1X0 一、小数原码的定义一、小数原码的定义 设二进制小数X = 0.x-1x-2x-m,则其原码定义为 二二、整数原码的

10、定义整数原码的定义 设二进制整数 X = xn-1xn-2x0,则其原码定义为 X 0 X 2n X X原 = = 2n-X -2n X 0 10 v 原码的特点 符号位用0表示正数,1表示负数,数值部分用 二进制数的绝对值表示的方法。 0的原码有两个,“正零”和“负零”。 +0原=00000000, -0原=10000000。 n+1位字长原码的数值范围: 整数: -(2n-1)X(2n-1) 小数: -(1-2-n)X(1-2-n) 11 原码的优点优点: 简单易懂,求取方便; 缺点:缺点:加、减运算不方便。 当进行两数加、减运算时,要根据运算及参加运算的两个 数的符号来确定是加还是减;如

11、果是做减法,还需根据两数的 大小确定被减数和减数,以及运算结果的符号。显然,这将增 加运算的复杂性。 为了克服原码的缺点,引入了补码。为了克服原码的缺点,引入了补码。 12 2 补码补码 设二进制小数X = 0.x-1x-2x-m,则其补码定义为 一一、小数补码的定义小数补码的定义 X 0 X 1 X X补 = = 2+X -1 X 0 13 例如,例如,若X 1= +0.1011 , X 2 = -0.1011, 则X1和X2的 补码为 X1补 = 0.1011 X2补 = 2 + X = 10.0000 - 0.1011 = 1.0101 注意:注意:小数“0”的补码只有一种表示形式,即0

12、.00。 即 -0-0 . . 1 0 1 1 1 0 1 1 1 . 0 1 0 01 . 0 1 0 0 + 1+ 1 1 . 0 1 0 11 . 0 1 0 1 14 二、二、整数补码的定义整数补码的定义 设二进制整数X = xn-1xn-2x0,则其补码定义为 X 0 X X 0 X 2 2n n X X补 补 = = 2 2n+1 n+1+X -2 +X -2n n X X 0 0 例如,例如,若X1 = +1010 , X2 = -1010, 则X1和X2的补码为 X1补= 01010(正数补码的数值位与真值相同。) X2补= 25 + X = 100000-1010 = 101

13、10(负数补码的数值位是真值 的数值位按位变反,并在最低位加1。) 整数“0”的补码也只有一种表示形式,即00000 0。 15 补码特点:补码特点: 可实现变减为加运算,且补码的可实现变减为加运算,且补码的符号位由计算获得符号位由计算获得。 0 0的补码只有的补码只有一个一个,就是就是n n位的零位的零。 N+1N+1位字长补码的数值范围位字长补码的数值范围 整数:整数: - -2 2n nX X(2 2n n-1-1) 小数:小数: -1-1X X(1-1-2 2- -n n) 运算规则如下运算规则如下: X1 + X2补 =X1补 +X2补 X1 X2补 =X1补 +-X2补 16 带符

14、号二进制数的补码表示带符号二进制数的补码表示: 符号位符号位用0表示正,用1表示负; 数值位数值位正数补码的数值位与真值相同;负数补码的负数补码的 数值位是真值的数值位按位变反,并在最低位加数值位是真值的数值位按位变反,并在最低位加1 1。 17 v 定义:正数反码与原码相同,负数的反码将数除符号位外 按位求反。 v 反码的特点: 0的反码也有两个, +0反=00000000, -0反=11111111。 反码的数值范围与原码相同。 3 反码 18 v 原码转化成补码方法: 正数的补码与原码相同; 负数时: 符号位不变,尾数先按位取反,然后在末位加1。 符号位不变,尾数部分自低位向高位数,第一

15、个1 及以前的各位0保持不变,以后的各位按位取反。 v 补码转换成原码、真值方法: 正数的原码与补码相同; 负数时,符号位不变,尾数先按位取反,然后在末位加1。 将原码的符号位用“+”、“-”号表示即为真值 v 上述转换不包括-0及补码的负数最小值。 19 v 定义:计算机中对n+1位字长的带符号数,其真值X所对应的移码为: X移= 2n+X, -2nX2n-1。 v 例10,求8位长59的移码 +59移=10000000+111011=10111011 -59移=10000000-111011=01000101 v 移码的符号位与原码、补码相反,1为正,0为负。 v X的移码和补码符号位相反

16、其余位相同,故移码可以先求数的补码,再 将符号取反即得。 v 0的移码只有一个, 0移=10000000。 v 移码一般用于浮点数的阶码表示。 v 移码一般以整数形式出现,其数值范围与补码相同。 4 移码 20 例例119119假设由假设由S S, ,E E, ,M M三个域组成的一个三个域组成的一个3232位二进制字所表示的位二进制字所表示的非零规格非零规格 化浮点数化浮点数, ,真值表示为:真值表示为: ( (1)1)s s(1.(1.M M) )2 2E E 128128 问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是问:它所表示的规格化的最大正数、最小正数、最大负数、最

17、小负数是 多少?多少? 解解: 阶码用移码表示,阶码用移码表示,8 8位;尾数用原码,位;尾数用原码,2323位。位。 (1)(1)最大正数最大正数 阶码阶码为最大正数,为最大正数, 尾数为最大正数尾数为最大正数 存储码:存储码: 0 0 11 111 11111 111 111 111 111 111 111 111 111 111 11 111 111 111 111 111 111 111 11 真值:真值: 11(1(12 2-23 -23) )2 2127 127 21 (2)(2)最小正数最小正数 阶码阶码为最小负数(绝对值最大)为最小负数(绝对值最大) , 尾数为最小正数尾数为最

18、小正数 0 0 00 00000 000 000 000 000 000 000 000 000 000 000 00 000 000 000 000 000 000 000 00 1.01.02 2 128128 (3)(3)最小负数(绝对值最大)最小负数(绝对值最大) 阶码阶码为最大正数,为最大正数, 尾数为最小负数(绝对值最大)尾数为最小负数(绝对值最大) 1 1 11 111 11111 111 111 111 111 111 111 111 111 111 11 111 111 111 111 111 111 111 11 11(1(12 2 2323) )2 2127 127 (4

19、)(4)最大负数(绝对值最小)最大负数(绝对值最小) 阶码阶码为最小负数(绝对值最大)为最小负数(绝对值最大) , 尾数为最大负数(绝对值最尾数为最大负数(绝对值最 小)小) 1 1 00 000 00000 000 000 000 000 000 000 000 000 000 00 000 000 000 000 000 000 000 00 1.01.02 2 128128 22 v 输入码输入码 数字码数字码 拼音码拼音码 字形码字形码 v 机内码机内码 v 输出码输出码 点阵式点阵式 矢量式矢量式 2.1.4 2.1.4 汉字的表示方法汉字的表示方法 23 2.1.5 校验技术 校验

20、的方法是让写入的信息符合某种规律,在读 出时检验信息是否符合这一规律,如符合可判定读 出信息正确,否则有误。 目前使用的校验方法常采用冗余校验思想,即: 有效信息位有效信息位+ +校验位校验位校验码校验码译码纠错译码纠错 24 奇偶校验码 例如:待编有效信息例如:待编有效信息 1011000110110001 编码规则:编码规则: 校验码校验码有效信息位有效信息位+1+1位校验位位校验位 奇校验码奇校验码 10110001101100011 1 约定校验码中约定校验码中1 1的个数为奇数的个数为奇数/ /偶数。偶数。 偶校验码偶校验码 10110001101100010 0 校验位公式:校验位

21、公式: C0 1 n 1。 。 25 偶校验判错实现电路 26 奇偶校验实现简单,但缺点是不能纠错。其他奇偶校验实现简单,但缺点是不能纠错。其他 校验方式如循环冗余校验码校验方式如循环冗余校验码(CRC)可以实现纠可以实现纠 错。错。 27 28 第2节 定点加、减运算 29 v 补码加法规则 两个相加的数无论正负,其和的补码等于两数补码之和 X+Y补=X补+Y补 v 例1211:设X=+1001,Y=+0101,用补码求Z=X+Y。 X补=01001,Y补=00101; X+Y补= X补+Y补 =01001+00101=01110 故:X+Y=+1110 v 例13:设X=0.1001,Y=

22、-0.0101 ,用补码求Z=X+Y。 X补=0.1001,Y补=1.1011; X+Y补= X补+Y补 =0.1011+1.1011 =0.0110 故:X+Y=+0.011 2.2.1 2.2.1 补码加法补码加法 30 v 补码减法规则 两个相减的数无论正负:两个相减的数无论正负: XY补= X+(-Y)补X补+-Y补 -Y-Y补 补为 为YY补 补的机器负数 的机器负数, ,转换方法转换方法: :将连同符号位一起变反将连同符号位一起变反, ,末位加末位加1 1。 例例1411 1411 1101,1101,0110,0110,求求- -。 解解: : 补 补 01101 01101 补

23、 补 00110,00110, 补 补 1101011010 补 补 0110101101 补 补 1101011010 补 补 1 10011100111 x - x -01110111 2.2.2 补码减法 31 v 补码加减运算规则小结补码加减运算规则小结 参加运算的操作数用补码表示。参加运算的操作数用补码表示。 符号位参加运算。符号位参加运算。 若指令操作码为加,则两数直接相加;若操作码为减,若指令操作码为加,则两数直接相加;若操作码为减, 则将减数连同符号位一起变反加则将减数连同符号位一起变反加1 1后再与被减数相加。后再与被减数相加。 运算结果用补码表示。运算结果用补码表示。 32

24、 例例1515 1515 1011, 1011, 1001,1001,求求。 解解: 补 补 01011 01011 补 补 0100101001 补 补 0101101011 补 补 01001 01001 补 补 10100 10100 v 两个两个正数相加正数相加的结果成为的结果成为负数负数, ,这显然是错误的。这显然是错误的。 溢出溢出 33 v 基本规律:两个异号数相加或两个同号数相减不会发生溢出;只有两个 同号数相加或两个异号数相减才可能发生溢出。 正溢:运算结果为正且大于所能表示的最大正数; 负溢:运算结果为负且小于所能表示的最小负数; v 溢出判断法: 方法一:采用一个符号位判

25、断(最高有效位判断法) 两个补码数相加、减时,若最高数值位向符号位送的进位值与 符号位送向更高位进位不相同,则运算结果溢出。 溢出 00 CCCCV ff 2.2.32.2.3、溢出判断、溢出判断 34 方法二:采用双符号位法(变形补码法) 变形补码定义: x补=2n+2+x 变形补码的符号用两位来表示。 变形补码的两个符号位都可以参与运算,运算结果 根据两个符号位是否一致来判断是否溢出。 溢出 “01”表示正溢,“10”表示负溢,最高符号永远 表示结果的正确符号。 2121ffff SSSSV 35 例例1617 1617 01100, 01100, 01000,01000,求求。 解解:

26、: 补补00001100,1100, 补补000010001000 补补00 110000 1100 补补00 100000 1000 01 010001 0100 v两个符号位不一致两个符号位不一致, ,结果溢出。结果溢出。 例例19151915 0.1100, 0.1100, -0.1000,-0.1000,求求。 解解: 补补1111.0100,.0100, 补补1111.1000.1000 补补11.010011.0100 补补11.100011.1000 10.110010.1100 v两个符号位不一致两个符号位不一致, ,结果溢出。结果溢出。 36 v1 1位加法器设计位加法器设计

27、 = A= Ai iBBi i C Ci i = A= Ai iB Bi i + +( (A Ai iBBi i)C Ci i 输入输入输出输出 A Ai i B Bi i C Ci i Si Ci+1 0 0 00 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 1 0 01 0 0 1 0 11 0 1 1 1 01 1 0 1 1 11 1 1 0 00 0 1 01 0 1 01 0 0 10 1 1 01 0 0 10 1 0 10 1 1 11 1 iiiiiiiiiiii CBACBACBACBASi iiiiiiiiiiii1i CBACBACBACB

28、AC FA Si Ai Bi Ci Ci+1 =AiBi+BiCi+CiAi 2.2.4 2.2.4 基本二进制加法基本二进制加法/ /减法器减法器 37 n n位加法器可由多个位加法器可由多个1 1位加法器级联实现(行波进位位加法器级联实现(行波进位 加法器)加法器) 优点是优点是: :节省器件,成本低,缺点是有延时传递,速度慢。节省器件,成本低,缺点是有延时传递,速度慢。 补码减法器可由加法器实现。补码减法器可由加法器实现。 FA S0 A0 B0 M C1 FA S1 A1 B1 C2 FA Sn-2 An-2 Bn-2 Cn-2Cn-1 FA Sn-1 An-1 Bn-1 CiCn 3

29、8 第第3 3节节 定点乘法运算定点乘法运算 1 1、原码乘法、原码乘法 v规则:规则:符号与数值分开计算符号与数值分开计算, 乘积的数值部分是两个正数相乘之积。乘积的数值部分是两个正数相乘之积。 乘积符号的运算法则是:同号相乘为正乘积符号的运算法则是:同号相乘为正, ,异号相乘为负。异号相乘为负。 可由异或实现。可由异或实现。 v例例1101,1101,1011. 1011. 求求x x* *y.y. 39 v 例例5x55x5阵列阵列 a a4 4 a a3 3 a a2 2 a a1 1 a a0 0 x b x b4 4 b b3 3 b b2 2 b b1 1 b b0 0 a a4

30、 4b b0 0 a a3 3b b0 0 a a2 2b b0 0 a a1 1b b0 0 a a0 0b b0 0 a a4 4b b1 1 a a3 3b b1 1 a a2 2b b1 1 a a1 1b b1 1 a a0 0b b1 1 a a4 4b b2 2 a a3 3b b2 2 a a2 2b b2 2 a a1 1b b2 2 a a0 0b b2 2 a a4 4b b3 3 a a3 3b b3 3 a a2 2b b3 3 a a1 1b b3 3 a a0 0b b3 3 + a+ a4 4b b4 4 a a3 3b b4 4 a a2 2b b4 4 a

31、a1 1b b4 4 a a0 0b b4 4 . . P P9 9 P P8 8 P P7 7 P P6 6 P P5 5 P P4 4 P P3 3 P P2 2 P P1 1 P P0 0 m m位的位的A A和和n n位的位的B B相乘,结果相乘,结果P P为为m+nm+n位位 1.11.1、不带符号的阵列乘法器、不带符号的阵列乘法器 40 FA Ai Bi Ci Ci+1Si a1b0 0 P0 a4b3 a0b1 a0b2 a1b1a2b1 a1b2a2b2 a3b1 a1b3a2b3 a3b2 a0b3 a0b4a1b4 a4b0 a2b4 a1b3 a4b1 a3b4 a4b2

32、 a4b4 a3b0a2b0 000 a0b0 P1P2P3P4P5P6P7P8 0 5x5阵列乘法器原理图 P9 41 42 v 原码数据可以直接运算;原码数据可以直接运算; v 补码数据需转换成原码后再运算。补码数据需转换成原码后再运算。 求补器设计。求补器设计。 1.21.2、带符号的阵列乘法器、带符号的阵列乘法器 符号符号与与数值数值分开处理,符号采用异或电路,数值采用无符号阵列乘法分开处理,符号采用异或电路,数值采用无符号阵列乘法 器。器。 43 带符号的阵列乘法器设计带符号的阵列乘法器设计 44 例例20 20 设设x=+15,y=-13,x=+15,y=-13,用原码阵列乘法器求

33、用原码阵列乘法器求x x* *y y 解解: x x原原=01111=01111,yy原原=11101=11101 符号部分符号部分 x xn nyyn n=01=1=01=1 数值部分数值部分 1 11 11 11 1 1515 ) ) 1 11 10 01 1 13 13 1 11 11 11 1 0 0 0 00 00 0 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 . . 1 1 0 0 1 1 0 00 00 01 11 1 x x* *y y -11000011-11000011 x x* *y = -195y = -195 45 v 例例21 21 设设x=-1

34、5,y=-13,x=-15,y=-13,用补码阵列乘法器求用补码阵列乘法器求x x* *y y 解解: x x补补=10001=10001,yy补补=10011=10011 符号部分符号部分 x xn ny yn n=1=11=01=0 数值部分算前求补器数值部分算前求补器 |x|=1111,|y|=1101|x|=1111,|y|=1101 1 11 11 11 1 1515 ) ) 1 11 10 01 1 13 13 1 11 11 11 1 0 00 00 00 0 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 . . 1 1 0 0 1 1 0 00 00 01 11

35、 1 vxx* *yy补 补 0 0 11000011 11000011 v x x* *y = 195y = 195 46 第第4 4节节 定点除法运算定点除法运算 1 1、原码除法、原码除法 v规则:规则:符号与数值分开计算符号与数值分开计算, 商的数值部分由两数相除获得。商的数值部分由两数相除获得。 商的符号:同号为正商的符号:同号为正, ,异号相除为负。可由异或异号相除为负。可由异或 实现。实现。 47 v例例0.1001,0.1001,0.1011.0.1011.求求x xy y v 0.1 1 01 0.1 0 1 1 0.1 0 0 1 0 0.0 0 1 0 1 1 0.0 0

36、 1 1 1 0 0.0 0 0 0 1 0 1 1 0.0 0 0 0 1 1 0 0.0 0 0 0 0 0 1 0 1 1 0.0 0 0 0 1 1 0 0 0.0 0 0 0 0 0 0 0 1 0 1 1 0.0 0 0 0 0 0 0 1 v 得的商q0.1101, v 余数为r0.00000001 开始 被除数A(2n) 除数B A0? A+BA 商0 商1 B右移,重复n次? Y Y N N 结束 A-BA 48 v 恢复余数除法器:依次比较被除数和除数,判定商。恢复余数除法器:依次比较被除数和除数,判定商。 v 不恢复余数除法器。不恢复余数除法器。 开始 被除数A 除数B

37、A0? A+BA 商0 商1 B右移,重复n次? Y Y N N 结束 A-BA 开始 被除数A 除数B A0? A+BA 商1,B右移 重复n-1次? Y N N 结束 A-BA 商0,B右移 A-BA A0? 商0 商1 A+BA 49 例例20 20 0.101001, 0.101001, 0.111, 0.111, 求求q q = =。 v 解解: xx补 补 0.1010010.101001 v 补 补 0.1110.111 补 补 1.0011.001 v 0. 1 0 1 0 0 10. 1 0 1 0 0 1 + 补 补 1. 0 0 1 . 1. 0 0 1 . 0 0 1.

38、 1 1 0 0 0 1 1. 1 1 0 0 0 1 + + 补 补 0. 00. 0 1 1 1 . 1 1 1 . 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 + + 补 补 1. 1 11. 1 1 0 0 1 . 0 0 1 . 0 0 1 .1 1 1 1 1 1 1 .1 1 1 1 1 1 + + 补 补 0. 0 0 00. 0 0 0 1 1 1 . 1 1 1 . 1 1 0. 0 0 0 1 1 0 0. 0 0 0 1 1 0 商商 q q0.1010.101 余数余数 r r0.000110 0.000110 q=0,下步做加法,下步做加法,y右

39、移右移1位位 q=1,下步做减法,下步做减法,y右移右移1位位 q=1, q=0,下步做加法,下步做加法,y右移右移1位位 50 不恢复余数阵列除法器 可控加法/减法(CAS) 4位除法阵列器 x=0.x6x5x4x3x2x1 y=0.y3y2y1 q=0.q3q2q1 r=0.00r6r5r4r3 51 第第5 5节节 定点运算器的组成定点运算器的组成 1 1、计算机运算器功能、计算机运算器功能 v完成对二进制代码的完成对二进制代码的定点定点算术和逻辑运算。算术和逻辑运算。 算术运算:加、减、乘、除算术运算:加、减、乘、除 ; 逻辑运算:逻辑非、逻辑加、逻辑乘、逻辑异。逻辑运算:逻辑非、逻辑

40、加、逻辑乘、逻辑异。 v根据运算结果给出状态:有无溢出、有无进位、结根据运算结果给出状态:有无溢出、有无进位、结 果是否为零等。果是否为零等。 52 2 2、算术逻辑运算部件的实现、算术逻辑运算部件的实现 v核心部件:1位全加器; vn n位全加器连同进位信号传送位全加器连同进位信号传送 逻辑,可构成一个逻辑,可构成一个n n位加法器。位加法器。 v以加法器为核心,通过输入以加法器为核心,通过输入 选择逻辑扩展为具有多种算选择逻辑扩展为具有多种算 术和逻辑运算功能的术和逻辑运算功能的ALUALU。 53 vn n位加法器设计位加法器设计 串行进位:优点是设计简单,成本低,缺点是速度慢,串行进位

41、:优点是设计简单,成本低,缺点是速度慢, 瓶颈在进位链。瓶颈在进位链。 FAFAFA A0B0 C0 An-1Bn-1A1B1 Cn-1C1Cn S0S1Sn-1 C2 54 设相加的两个设相加的两个n n位操作数为位操作数为: : 021 AAAAA inn 021 BBBB inn B iiiiii )CB(ABAC 1 进位为:进位为: 设设: iii BAG iii BAP 则:则: iiii CPGC 1 进位发生输出信号进位发生输出信号 进位传送输出信号进位传送输出信号 55 v 并行进位(先行进位、同时进位) C1= G0+P0C0 C2= G1+P1C1 = G1+P1(G0+

42、P0C0)= G1+P1G0+P1P0C0 C3= G2+P2C2= G2+P2(G1+P1(G0+P0C0) = G2+P2G1+P2P1G0+P2P1P0C0 C4= G3+P3C3= G3+P3(G2+P2(G1+P1(G0+P1(G0+P0C0) = G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0 4位进位链线路图 00000001 CGPGCPGC 56 v4位并行进位并行加法器设计 速度的加快是以增加速度的加快是以增加 硬件成本为代价的硬件成本为代价的 FA S0 A0 B0 C0 C1 先行进位逻辑 FA S1 A1 B1 C2 FA S2 A2 B2 C3

43、 FA S3 A3 B3 57 v 16位并行进位加法器设计 组内并行、组间串行的进位链 四位并行加法器 A11B11A8B8 111098 C12 四位并行加法器 A7B7A6B6A5B5A4B4 7654 C8 四位并行加法器 A3B3A2B2A1B1A0B0 3210 C4 四位并行加法器 A15B15A12B12 15141312 C16 C0 58 v16位并行进位加法器设计 组内并行、组间并行的进位链 C4= G3+P3C3= G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0 = G0+P0C0 G0:成组进位发生输出信号 P0:成组进位传送输出信号 四位并行加

44、法器 A11B11A8B8 S11S8 C12 四位并行加法器 A7B7A4B4 S7S4 C8 四位并行加法器 A3B3A0B0 S3S0 C4 四位并行加法器 A15B15A12B12 S15S12 C16 C0 组间先行进位链 G3P3G2P2G1P1G0P0 59 v7418174181多功能多功能算术逻辑运算单元算术逻辑运算单元 4位,分成正逻辑和负逻辑两种。 60 v 1616位组内、组间先行进位加法器设计位组内、组间先行进位加法器设计 74181 A118B118 F11F8 Cn+Z 74181 A74B74 F7F4 Cn+Y 74181 A30B30 F3F0 Cn+X 7

45、4181 A1512B1512 F15F12 G C0 74182 G3P3G2P2G1P1G0P0 P 61 4 4、定点运算器的基本结构、定点运算器的基本结构 v运算器的组成:运算器的组成:ALUALU、阵列乘除器、寄存器、数据、阵列乘除器、寄存器、数据 总线等。总线等。 62 2.5.3 2.5.3 内部总线内部总线 总线:是连接计算机系统各个部件和装置的线路,是总线:是连接计算机系统各个部件和装置的线路,是多多 个个信息源传送信息到信息源传送信息到多个多个目的地的数据通路。目的地的数据通路。 总线的分类:总线的分类: 根据总线所在位置分:根据总线所在位置分: 内部总线内部总线:指:指C

46、PUCPU内各部件的连线内各部件的连线, , 外部总线外部总线:也称系统总线,是:也称系统总线,是CPUCPU与存储器、与存储器、I/OI/O 系统之间的连线。系统之间的连线。 63 按总线的逻辑结构分:按总线的逻辑结构分: 单向传送总线单向传送总线:指信息只能向一个方向传送;:指信息只能向一个方向传送; 双向传送总线双向传送总线:指信息可以分两个方向传送。:指信息可以分两个方向传送。 64 v定点运算器的基本结构:定点运算器的基本结构: 单总线结构运算器:单总线结构运算器: 优点优点:设计、控制简单;:设计、控制简单; 缺点缺点:速度慢。:速度慢。 A B C 65 双总线结构运算器:双总线

47、结构运算器: 缺点缺点:设计、控制较复杂;:设计、控制较复杂; 优点优点:速度快。:速度快。 A C B 66 三总线结构运算器:三总线结构运算器: 缺点缺点:设计、控制复杂;:设计、控制复杂; 优点优点:速度最快。:速度最快。 67 第6节 浮点运算方法和浮点运算器 1 1 浮点加、减运算浮点加、减运算 v 设有两个浮点数:设有两个浮点数:X=MX=MX X* *2 2Ex Ex, ,Y=MY=MY Y* *2 2Ey Ey v 加减运算规则流程:加减运算规则流程: 0 0 操作数的检查;操作数的检查; 比较阶码大小并完成对阶;比较阶码大小并完成对阶; 提升小的阶码,尾数相应右移变小。提升小

48、的阶码,尾数相应右移变小。 尾数进行加或减运算;尾数进行加或减运算; 采用补码运算,变减为加。判断溢出。采用补码运算,变减为加。判断溢出。 结果规格化(结果规格化(1.M1.M,补码为:,补码为:0.1xxx0.1xxx或或1.0 xxx1.0 xxx) 尾数非规格化,尾数左移,阶码做减调整。尾数非规格化,尾数左移,阶码做减调整。 尾数溢出,尾数右移,阶码做加调整。尾数溢出,尾数右移,阶码做加调整。 68 v 加减运算规则流程(续):加减运算规则流程(续): 舍入处理。舍入处理。 0 0舍舍1 1入法入法 末位恒末位恒1 1法。法。 IEEE754IEEE754标准:就近舍入、朝标准:就近舍入

49、、朝0 0舍入、朝舍入、朝+ +舍入、舍入、朝朝- -舍入舍入 溢出处理溢出处理 阶码上溢:超出最大正数,认为为阶码上溢:超出最大正数,认为为+ +或或- -数。数。 阶码下溢:超出最小负数,认为为数据阶码下溢:超出最小负数,认为为数据0 0。 尾数溢出:尾数右移,同时进行尾数溢出:尾数右移,同时进行 舍入处理,阶码加舍入处理,阶码加1 1 。 69 例例22 22 设设2 2010 010 0.11011011,0.11011011, 2 2100 100 ( (0.10101100),0.10101100),求求。 设阶码和尾数均用补码表示,阶码采用双符号位,字长设阶码和尾数均用补码表示,

50、阶码采用双符号位,字长5 5位;尾数单符号位,位;尾数单符号位, 字长字长9 9位。位。 浮 浮 00 010,00 010,0.110110110.11011011 浮 浮 00 100,00 100,1.010101001.01010100 对阶对阶 E EEx-Ey=Ex-Ey= ExEx 补 补+- +-EyEy 补 补 0001000010111001110011 11011 110 E=E=2,2,的阶码小的阶码小, , MxMx右移两位右移两位, ,ExEx加加2,2, 浮 浮 00 100,0.00110110(11)00 100,0.00110110(11) 尾数求和尾数求和

51、 0.00110110(11)0.00110110(11)1.01010100=1.10001010(11)1.01010100=1.10001010(11) 规格化处理规格化处理 v 尾数非规格化尾数非规格化,左规处理后:,左规处理后:1.000101011.00010101(10),(10),阶码为阶码为 00 01100 011。 舍入处理舍入处理 v 采用采用0 0舍舍1 1入法处理入法处理, ,:1.000101101.00010110 溢出判断溢出判断 v 阶码符号位为阶码符号位为00,00,不溢出。不溢出。 v 结果为结果为:2 2011 011 ( (0.11101010)0.

52、11101010) 70 2 2 浮点乘、除运算浮点乘、除运算 v 设有两个浮点数:设有两个浮点数:X=MX=MX X* *2 2Ex Ex, ,Y=MY=MY Y* *2 2Ey Ey v 浮点乘法运算规则:浮点乘法运算规则: 2 2( (Ex ExEyEy) )( (Mx MxMyMy) ) v 浮点除法运算规则浮点除法运算规则: : 2 2(Ex-Ey) (Ex-Ey)( (Mx MxMyMy) ) v 浮点数的乘除运算规则:浮点数的乘除运算规则: 0 0 操作数检查;操作数检查; 阶码加阶码加/ /减操作;减操作; 尾数乘尾数乘/ /除操作;除操作; 结果规格化处理;结果规格化处理;

53、舍入处理。舍入处理。 溢出处理。溢出处理。 71 v移码运算规则:移码运算规则: x+yx+y移 移 xx移 移 yy补 补 (mod 2(mod 2n+1 n+1) ) x-y x-y移 移 移 移 -y-y补 补 v移码溢出判断规则:移码溢出判断规则: 采用采用双符号位双符号位, ,并规定移码的第二个符号位,即并规定移码的第二个符号位,即最高符最高符 号位恒用号位恒用 0 0 参加加减运算参加加减运算, , 阶码的最高符号位为阶码的最高符号位为1 1时时 产生溢出。当两位符号位为产生溢出。当两位符号位为 1010时时, ,表明表明上溢上溢, ,为为1111时时, , 表明表明下溢下溢。当最

54、高符号位为。当最高符号位为0 0时时, ,表明没有溢出;两位表明没有溢出;两位 符号位为符号位为0101时时, ,结果为正结果为正;为;为 0000 时时, ,结果为负。结果为负。 72 例例23 23 设有浮点数设有浮点数= =2 2-5 -5x0.0110011 x0.0110011,= =2 23 3x(-0.1110010)x(-0.1110010),阶码用,阶码用4 4位移位移 码表示码表示, ,尾数尾数( (含符号位含符号位) )用用8 8位补码表示。求位补码表示。求 浮。要求用浮。要求用原码原码完完 成尾数乘法运算成尾数乘法运算, ,运算结果尾数保留高运算结果尾数保留高8 8位位

55、( (含符号位含符号位),),并用尾数低位字并用尾数低位字 长值处理舍入操作。长值处理舍入操作。 解解: MxMx 原 原 0.0110011, 0.0110011, MyMy 原 原 1.1110010,1.1110010, E E 移 移 0 00 011,0 011,EyEy 移 移 0 01 011, 1 011, E E 补 补 00 011, 00 011, 浮浮00 011, 0.0110011,00 011, 0.0110011, 浮浮01 011, 1.000111001 011, 1.0001110 (1)(1)求阶码和求阶码和 E EE E 移 移 E E 移 移 E E

56、 补 补 00 01100 01100 01100 01100 110, 00 110, (2) (2) 尾数相乘(用原码阵列乘法器)尾数相乘(用原码阵列乘法器) M M 原原 M M 原原0.0110011 0.0110011 1.11100101.1110010 1.01011011.0101101,01101100110110 73 (1)(1)求阶码和求阶码和 E EE E 移移00 11000 110。 (2) (2) 尾数相乘尾数相乘 M M 原原 M M 原原1.01011011.0101101,01101100110110 (3) (3) 规格化处理规格化处理 非规格化数,尾数左移,阶码减非规格化数,尾数左移,阶码减1 1; 乘积的尾数规格化后乘积的尾数规格化后, ,阶码变为阶码变为00 101(-3),00 101(-3), 尾数变为尾数变为 1.10110101.1011010,110

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论