计算机组成原理第六章运算方法_第1页
计算机组成原理第六章运算方法_第2页
计算机组成原理第六章运算方法_第3页
计算机组成原理第六章运算方法_第4页
计算机组成原理第六章运算方法_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

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

文档简介

1、第第章章 计算机的运算方法计算机的运算方法6.1 无符号数和有符号数无符号数和有符号数6.3 定点运算定点运算6.2 数的定点表示和浮点表示数的定点表示和浮点表示6.4 浮点四则运算浮点四则运算6.5 算术逻辑单元算术逻辑单元 一、无符号数的表示一、无符号数的表示寄存器的位数字长寄存器的位数字长反映无符号数的表示范围反映无符号数的表示范围 8 位位 0 25516 位位 0 655352551 1 1 1 1 1 1 110 0 0 0 0 0 0 11 1 1 1 1 1 1 10 0 0 0 0 0 0 00 0 0 0 0 0 0 10 0 0 0 0 0 0 06.1 无符号数和有符号

2、数无符号数和有符号数带符号的数带符号的数 符号数字化的数符号数字化的数+ 0.10110 1011小数点的位置小数点的位置+ 11000 1100小数点的位置小数点的位置 11001 1100小数点的位置小数点的位置 0.10111 1011小数点的位置小数点的位置真值真值 机器数机器数机器数机器数与与真值真值二、有符号数二、有符号数 对于对于正数正数,符号位为符号位为 0,其其 数值为真值。数值为真值。 对于对于负数负数 ,符号位为,符号位为 1,其其数值为真值。数值为真值。 最高位最高位为为符号位符号位,书写上用,书写上用“,”(整数)(整数)或或“.”(小数)将数值部分和符号位隔开(小数

3、)将数值部分和符号位隔开1. 原码表示法原码表示法整数表示法整数表示法x = +1110 x原原 = 0 , 1110 x原原 = 1 , 1110 x = 1110用用 逗号逗号 将符号位将符号位和数值部分隔开和数值部分隔开x = + 0.1101x原原 = 0 . 1101 x = 0.1101x原原 = 1 . 1101 用用 小数点小数点 将符号将符号位和数值部分隔开位和数值部分隔开小数表示法小数表示法原码表示法数学定义原码表示法数学定义带符号的绝对值表示带符号的绝对值表示整数整数x 为真值为真值n 为整数的位数为整数的位数如如x = +1110 x原原 = 0 , 1110 x原原

4、= 24 + 1110 = 1 , 1110 x = 1110 x原原 = 0,x 2n x 02n x 0 x 2n用用 逗号逗号 将符号位将符号位和数值部分隔开和数值部分隔开小数小数x 为真值为真值如如x = + 0.1101x原原 = 0 . 1101 x = 0.1101x原原 = 1 ( 0.1101) = 1 . 1101 x 1 x 0 x原原 = 1 x 0 x 1用用 小数点小数点 将符号将符号位和数值部分隔开位和数值部分隔开 原码的特点:原码的特点:简单、直观简单、直观但是用原码作加法时,会出现如下问题:但是用原码作加法时,会出现如下问题:能否能否 只作加法只作加法 ? 找

5、到一个与负数等价的正数找到一个与负数等价的正数 来代替这个负数来代替这个负数就可使就可使 减减 加加加法加法 正正 正正加加加法加法 正正 负负加法加法 负负 正正加法加法 负负 负负减减减减加加 要求要求 数数1 数数2 实际操作实际操作 结果符号结果符号正正可正可负可正可负可正可负可正可负负负 对于对于正数,符号位为正数,符号位为 0,其其 数值为真值。数值为真值。 对于对于负数负数 ,符号位为,符号位为 1,其其数值为真值数值为真值取反末位加取反末位加1。 最高位最高位为为符号位符号位,书写上用,书写上用“,”(整数)(整数)或或“.”(小数)将数值部分和符号位隔开(小数)将数值部分和符

6、号位隔开2. 补码表示法补码表示法整数表示整数表示x = +1110 x = 1110小数表示小数表示x = + 0.1101x = 0.1101(1)当补码符号位为)当补码符号位为1时时,对应的真值符号,对应的真值符号位为位为负负,数值位由补码数值位,数值位由补码数值位取反加取反加1得到。得到。 (2) 当补码符号位为当补码符号位为0时时,对应真值符号位,对应真值符号位为为正正,数值位为补码的数值位,数值位为补码的数值位本身本身。根据补码求真值根据补码求真值练习练习已知已知 x补补 = 1,1110 ;求;求 x 已知已知 x补补 = 0,1110 ;求;求 x 整数整数x 为真值为真值n

7、为整数的位数为整数的位数x补补 = 0,x 2n x 02n+1 + x 0 x 2n(mod 2n+1)如如x = +1110 x = 1110 补补 码表示法公式法码表示法公式法x = 0000小数小数x 为真值为真值x = + 0.1101x补补 = x 1 x 02 + x 0 x 1(mod 2)例例x = 0.1101x = 0.0000解:解:x = + 0.0001解:由定义得解:由定义得x = x补补 2 = (10.0000- 1.0001 )x原原 = 1.1111例例 6.6 已知已知 x补补 = 1.0001求求 xx补补 x原原 ?由定义得由定义得例例 6.5 已知

8、已知 x补补 = 0.0001求求 x x = 0.1111 例例 6.7解:解:x = x补补 24+1 = 1,1110 100000 x原原 = 1,0010当真值为当真值为 负负 时,时,原码原码 可用可用 补码除符号位外补码除符号位外每位取反,末位加每位取反,末位加 1得到得到x补补 x原原 ? x = 0010= 0010求求 x已知已知 x补补 = 1,1110由定义得由定义得真值真值练习练习求下列真值的补码求下列真值的补码小数补码定义小数补码定义x补补 x原原x = 0.0000 x = 0.0000 x = 1.0000 x = - 10000 x补补 = x 1 x 02+

9、 x 0 x 1(mod 2)x = 0000 x = 0000 对于对于正数正数,符号位为符号位为 0,其其 数值为真值。数值为真值。 对于对于负数负数 ,符号位为,符号位为 1,其其数值为真值数值为真值取反。取反。 最高位最高位为为符号位符号位,书写上用,书写上用“,”(整数)(整数)或或“.”(小数)将数值部分和符号位隔开(小数)将数值部分和符号位隔开3. 反码表示法反码表示法 练习练习5 已知已知 x = - 1110, 求求 x反反 x = 1110,求求 x反反 x = -0.1101, 求求 x反反 x = 0.1101,求求 x反反 x = - 0000, 求求 x反反 x =

10、 0000, 求求 x反反 (1)当反码符号位为)当反码符号位为1时时,对应的真值符号,对应的真值符号位为位为负负,数值位由反码数值位取反得到。,数值位由反码数值位取反得到。 (2) 当反码符号位为当反码符号位为0时时,对应真值符号位,对应真值符号位为为正正,数值位为反码的数值位,数值位为反码的数值位本身本身。根据反码求真值根据反码求真值三种机器数的小结三种机器数的小结 对于对于正数正数,原码原码 = 补码补码 = 反码反码 对于对于负数负数 ,符号位为,符号位为 1,其其 数值部分数值部分原码数值位每位取反末位加原码数值位每位取反末位加 1 补码数值补码数值原码数值位每位取反原码数值位每位取

11、反 反码数值反码数值 最高位最高位为为符号位符号位,书写上用,书写上用“,”(整数)(整数)或或“.”(小数)将数值部分和符号位隔开(小数)将数值部分和符号位隔开 例例6.11 000000000000000100000010011111111000000010000001111111011111111011111111128129-0-1-128-127-127-126二进制代码二进制代码 无符号数无符号数对应的真值对应的真值原码对应原码对应 的真值的真值补码对应补码对应 的真值的真值反码对应反码对应 的真值的真值012127253254255-125-126-127-3-2-1-2-1-0

12、+0+1+2+127+0+1+2+127+0+1+2+127+0 设机器数字长为设机器数字长为 8 位(其中位为符号位)位(其中位为符号位)对于整数,当其分别代表无符号数、原码、补码和对于整数,当其分别代表无符号数、原码、补码和反码时,对应的真值范围各为多少?反码时,对应的真值范围各为多少? 补码求相反数法则补码求相反数法则 根据根据补码补码求求对应相反数对应相反数的补码:将符号位和数值的补码:将符号位和数值位一起,取反加位一起,取反加1(适用于正数,也适用于负数适用于正数,也适用于负数)。)。 例例1:已知:已知 x补补 = 0,1110 ,求,求-x补补 例例2:已知:已知 x补补 = 1

13、,1110 ,求,求-x补补4. 移码表示法移码表示法补码表示很难直接判断其真值大小补码表示很难直接判断其真值大小如如 十进制十进制x = +21x = 21x = +31x = 31x + 25+10101 + 100000+11111 + 10000010101 + 10000011111 + 100000大大大大错错错错大大大大正确正确正确正确0,101011,010110,111111,00001+10101 10101+11111 11111= 110101= 001011= 111111= 000001二进制二进制补码补码(1) 移码定义(只对整数定义)移码定义(只对整数定义)x

14、为真值,为真值,n 为为 整数的位数整数的位数移码在数轴上的表示移码在数轴上的表示x移码移码2n+112n2n 12n00真值真值如如x = 10100 x移移 = 25 + 10100用用 逗号逗号 将符号位将符号位和数值部分隔开和数值部分隔开x = 10100 x移移 = 25 10100 x移移 = 2n + x(2nx 2n)= 1,10100= 0,01100(2) 移码和补码的比较移码和补码的比较设设 x = +1100100 x移移 = 27 + 1100100 x补补 = 0,1100100设设 x = 1100100 x移移 = 27 1100100 x补补 = 1,0011

15、100补码与移码只差一个符号位补码与移码只差一个符号位= 1,1100100= 0,00111001001- 1 0 0 0 0 0- 1 1 1 1 1- 1 1 1 1 0- 0 0 0 0 1 0 0 0 0 0+ 0 0 0 0 1+ 0 0 0 1 0+ 1 1 1 1 0+ 1 1 1 1 1真值真值 x ( n = 5 )x补补x移移(3) 真值、补码和移码的对照表真值、补码和移码的对照表0 0 0 0 0 00 0 0 0 1 00 0 0 0 0 10 1 1 1 1 11 0 0 0 0 01 0 0 0 0 11 0 0 0 1 01 1 1 1 1 01 1 1 1 1

16、 10 1 1 1 1 10 1 1 1 1 00 0 0 0 1 00 0 0 0 0 10 0 0 0 0 01 1 1 1 1 11 0 0 0 1 01 0 0 0 0 11 0 0 0 0 0- 1 0 0 0 0 0 0 0 0 0 0+ 1 1 1 1 10 0 0 0 0 01 1 1 1 1 10 0 0 0 0 01 0 0 0 0 0 当当 x = 0 时时 +0移移 = 25 + 0 当当 n = 5 时时可见,可见,最小真值的移码为全最小真值的移码为全 0(4) 移码的特点移码的特点用用移码移码表示表示浮点数的阶码浮点数的阶码能方便地判断浮点数的阶码大小能方便地判断浮

17、点数的阶码大小= 1,00000= 1,00000= 000000 0移移 = 25 0 +0移移 = 0移移 100000移移= 25 100000最小的真值为最小的真值为 25= 1000006.2 数的定点表示和浮点表示数的定点表示和浮点表示小数点按约定方式标出小数点按约定方式标出一、定点表示一、定点表示Sf S1S2 Sn数符数符数值部分数值部分小数点位置小数点位置Sf S1S2 Sn数符数符数值部分数值部分小数点位置小数点位置或或定点机定点机小数定点机小数定点机整数定点机整数定点机原码原码补码补码反码反码(1 2-n) +(1 2-n)(2n 1) +( 2n 1) 1 +(1 2-

18、n) 2n +( 2n 1)(1 2-n) +(1 2-n)(2n 1) +( 2n 1) 注意问题:注意问题: 数值位为数值位为n位的补码表示范围:位的补码表示范围: -2n , -(2n-1 ) 2n-1 (整数) -1, -(1 -2-n) (1 -2-n) (小数) 数值位为数值位为n位的原码和反码表示范围:位的原码和反码表示范围: -(2n-1) 2n-1 (整数) - (1 -2-n) (1 -2-n) (小数) 补码由于补码由于+0和和-0一样,多出的一个数用来表示一样,多出的一个数用来表示-2n和和-1 假设n=4 1,0000表示-10000 1.0000表示-1 将一个数字

19、表示成将一个数字表示成 a10的的n次幂的形式,次幂的形式,其中其中1|a| 最大阶码最大阶码下溢下溢 阶码阶码 1)时,需)时,需 右规右规即尾数出现即尾数出现 01. 或或 10. 时时尾数右移一位,阶码加尾数右移一位,阶码加 1例例 x+y补补 = 00, 011; 01. 10010左规后左规后 x+y补补 = 00, 100;00. 11001 x + y = 0.110012100 4. 舍入舍入在在 对阶对阶 和和 右规右规 过程中,可能出现过程中,可能出现 尾数末位丢失尾数末位丢失引起误差,需考虑舍入引起误差,需考虑舍入(1) 0 舍舍 1 入法入法 (2) 恒置恒置 “1”

20、法法例例 6.28x = ( )2-5 y = () 2-4 5878求求 x y(除阶符、数符外,阶码取除阶符、数符外,阶码取 3 位,尾数取位,尾数取 6 位)位)解:解:x补补 = 11, 011; 11. 011000y补补 = 11, 100; 00. 111000 对阶对阶j补补 = jx补补 jy补补 = 11, 011 00, 100 11, 111阶差为阶差为 1 Sx 1, jx+ 1 x补补 = 11, 100; 11. 101100 x = ( 0.101000)2-101y = ( 0.111000)2-100+ 尾数求和尾数求和Sx补补 = 11. 101100Sy

21、补补 = 11. 001000+110. 110100 右规右规x y补补 = 11, 100; 10. 110100 x y补补 = 11, 101; 11. 011010右规后右规后 x y = (0.100110)2-11= ( )2-319325. 溢出判断溢出判断 设机器数为补码,尾数为设机器数为补码,尾数为 规格化形式规格化形式,并假并假设设阶符取阶符取 2 位位,阶码的数值部分,阶码的数值部分取取 7 位位,数符取数符取 2 位位,尾数,尾数取取 n 位位,则该,则该 补码补码 在数轴上的表示为在数轴上的表示为上溢上溢下溢下溢上溢上溢 对应对应负浮点数负浮点数 对应对应正浮点数正

22、浮点数00,1111111;11.00 0 00,1111111;00.11 111,0000000;11.011 111,0000000;00.100 02127(1) 2-128(2-1+ 2-n)2-1282-12127(12-n)最小负数最小负数最大负数最大负数最小正数最小正数最大正数最大正数0阶码阶码01, 阶码阶码01, 阶码阶码 10, 按机器零处理按机器零处理 设机器数为补码,尾数为设机器数为补码,尾数为 规格化形式规格化形式,并假并假设阶符取设阶符取 2 位,阶码的数值部分取位,阶码的数值部分取 7 位,数符取位,数符取 2 位,尾数取位,尾数取 n 位,则该位,则该 补码补

23、码 在数轴上的表示为在数轴上的表示为 阶码阶码 10, 下溢,按机器零处理下溢,按机器零处理阶码阶码 01, 上溢,无穷大上溢,无穷大Int x=-1;Printf(“ x =%u=%dn”, x, x);Unsigned int m=2147483648Printf(“ m=%u=%dn”, m, m); X=4294967295=-1m=2147483648=-2147483648例例6.31 设机器字长设机器字长16位,阶码位,阶码5位(含位(含1位阶符),位阶符),基值为基值为2,尾数,尾数11位(含位(含1位数符)。对于两个阶位数符)。对于两个阶码相等的数按补码浮点加法完成后,由于规

24、格化码相等的数按补码浮点加法完成后,由于规格化操作可能出现的最大误差的绝对值是多少?操作可能出现的最大误差的绝对值是多少?一、一、ALU 电路电路组合逻辑电路组合逻辑电路 Ki 不同取值不同取值 Fi 不同不同ALUAiBiFiKi6.5 算术逻辑单元算术逻辑单元 ALU机器字长机器字长16位,用位,用4片片4位的位片结构的位的位片结构的Am2901组成组成,可支持,可支持5种逻辑运算和种逻辑运算和3种算种算术运算。术运算。80二选一二选一 B 16个个 A 通用寄存器通用寄存器三选一三选一二选一二选一三选一三选一三选一三选一 A L U S RB锁存器锁存器A锁存器锁存器乘商寄存器乘商寄存器

25、QCn/OEQ3Q0RAM0RAM3F输出输出YF3F=0000OVRCn+4输入输入DA口地址口地址B口地址口地址Am2901内部组成与功能内部组成与功能组成组成算逻运算算逻运算 部件部件1 6 个个 累加器累加器乘商寄存器乘商寄存器 Q5组多路选择门组多路选择门功能功能8 种种 运算功能运算功能8 种种 数据组合数据组合8 种种 结果处理结果处理81 A L U S RCnFF3F=0000OVRCn+4输出为输出为 F两路输入为两路输入为 S、R最低位进位最低位进位Cn, 4 个状态输出信号个状态输出信号符号位符号位结果为零结果为零结果溢出结果溢出进位输出进位输出R+SS RR SRSR

26、SR SR SR S8种运算功能种运算功能0000010100111001011101113位功能选择码位功能选择码82 B 16个个 A 通用寄存器通用寄存器三选一三选一二选一二选一 A L U S RB锁存器锁存器A锁存器锁存器Q寄存器寄存器CnFF3F=0000OVRCn+4输入输入DA口地址口地址B口地址口地址8种数据组合种数据组合(R,S) AQ AB 0Q 0B 0A DA DQ D0 3位数据选择码位数据选择码000 001 010 011 100 101 110 111ALU的的 R、S输入输入端的数据来源,端的数据来源,包括:包括:Q寄存器、寄存器、 A口、口、 B口数据、口

27、数据、 外部输入外部输入D数据数据共共 8 种不同组合。种不同组合。83 B 16个个 A 通用寄存器通用寄存器B锁存器锁存器A锁存器锁存器A口地址口地址B口地址口地址二选一二选一三选一三选一二选一二选一三选一三选一三选一三选一Q3Q0RAM0RAM3 A L U S RCnFF3F=0000OVRCn+4数据组合选择数据组合选择 I2 I1 I0运算功能选择运算功能选择 I5 I4 I3运算结果处理运算结果处理 I8 I7 I6Q寄存器寄存器输入输入D/OE输出输出Y84Y15Y0D15D0RAM15Q15RAM0Q0CPOECinCyF=0OverF15运运 算算 器器 部部 件件A3A0

28、B3B0I8I6 I5I3 I2I0SW1 Micro swichSW2 Micro swichSW3 Micro swichT3-T0 REQ/MIO/WEI2-I0I8-I7 I6-I3 B PORTA PORTSST SSH SCI(6位)位)DC2 DC1表表1 微控制开关微控制开关 与控制信号对应关系表与控制信号对应关系表I8 I7 I6REGQY000F-QF001F010F-BA011F-BF100F/2-BQ/2-QF101F/2-BF1102F-B2Q-QF1112F-BFI5 I4 I3000R + S001S - R010R - S011RS100RS101/RS110

29、R S111/RS 表表2 数据选择开关数据选择开关I2I1I0RS000AQ001AB0100Q0110B1000A101DA110DQ111D0SSTCZVS000CZVS001CYF=0OVRF15010内部总线内部总线0110ZVS1001ZVS101RAM0ZVS110RAM15ZVS111Q0ZVS表表3 状态标志位结果状态标志位结果SSH SCI 进位进位/移位移位000Cin =0001Cin=1010Cin=C100逻辑移位逻辑移位101循环移位循环移位表表4 运算器进位输入、移位输入运算器进位输入、移位输入二、快速进位链二、快速进位链1. 并行加法器并行加法器= Ai Bi

30、 + (Ai+Bi)Ci-1di = Ai Bi 本地进位本地进位ti = Ai + Bi 传送条件传送条件则则 Ci = di + tiCi-1 Si = Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1Ci = Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1FAn FAn-1FA1FA0 FAn-2CnSnCn-1Sn-1Cn-2Sn-2C1S1C0S0C-1A0B0A1B1An-2Bn-2An-1Bn-1AnBn2. 串行进位链串行进位链进位链进位链传送进位的电路传送进位的电路串行进位链串行进位链加法器中的进位

31、信号采用串行传送加法器中的进位信号采用串行传送以以 4 位全加器为例,每一位的进位表达式为位全加器为例,每一位的进位表达式为C0 = d0 + t0C-1 C1 = d1 + t1C0C2 = d2 + t2C1C3 = d3 + t3C2= d0 t0C-1 4 位位 全加器产生进位的全部时间为全加器产生进位的全部时间为 8tyn 位全加器产生进位的全部时间为位全加器产生进位的全部时间为 2nty&C3t3t2t1t0C2C1C0C-1d3d2d1d0设设与非门与非门的级延迟时间为的级延迟时间为ty3. 并行进位链并行进位链n 位加法器的进位同时产生位加法器的进位同时产生以以 4 位加法器为例位加法器为例C0 = d0 + t0C-1 C1 = d1 + t1C0 C2 = d2 + t

温馨提示

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

评论

0/150

提交评论