第2章 运算方法和运算器-2
计算机组成原理第二章课后习题答案

第二章运算方法和运算器练习一、填空题1. 补码加减法中,(符号位)作为数的一部分参加运算,(符号位产生的进位)要丢掉。
2. 为判断溢出,可采用双符号位补码,此时正数的符号用(00)表示,负数的符号用(11)表示。
3. 采用双符号位的方法进行溢出检测时,若运算结果中两个符号位(不相同),则表明发生了溢出。
若结果的符号位为(01),表示发生正溢出;若为(10),表示发生负溢出。
4. 采用单符号位进行溢出检测时,若加数与被加数符号相同,而运算结果的符号与操作数的符号(不一致),则表示溢出;当加数与被加数符号不同时,相加运算的结果(不会产生溢出)。
5. 利用数据的数值位最高位进位C和符号位进位Cf的状况来判断溢出,则其表达式为over=(C⊕Cf)。
6. 在减法运算中,正数减(负数)可能产生溢出,此时的溢出为(正)溢出;负数减(正数)可能产生溢出,此时的溢出为(负)溢出。
7. 补码一位乘法运算法则通过判断乘数最末位Yi和Yi-1的值决定下步操作,当YiYi-1=(10)时,执行部分积加【-x】补,再右移一位;当YiYi-1=(01)时,执行部分积加【x】补,再右移一位。
8. 浮点加减运算在(阶码运算溢出)情况下会发生溢出。
9. 原码一位乘法中,符号位与数值位(分开运算),运算结果的符号位等于(两操作数符号的异或值)。
10. 一个浮点数,当其补码尾数右移一位时,为使其值不变,阶码应该(加1)。
11. 左规的规则为:尾数(左移一位),阶码(减1)。
12. 右规的规则是:尾数(右移一位),阶码(加1)。
13. 影响进位加法器速度的关键因素是(进位信号的传递问题)。
14. 当运算结果的补码尾数部分不是(11.0×××××或00.1×××××)的形式时,则应进行规格化处理。
当尾数符号位为(01)或(10)时,需要右规。
计算机原理第二章运算方法和运算器

算术移位时,符号位保持不变,其 余位进行相应移动。算术左移相当 于乘以2,算术右移相当于除以2并 向下取整。
乘法运算方法
原码一位乘法
将被乘数和乘数均取原码,从乘数的最低位开始逐位判断,若为1则加上被乘 数的原码,若为0则不变。重复此过程直至乘数所有位均判断完毕。
补码一位乘法
将被乘数和乘数均取补码,从乘数的最低位开始逐位判断,若为1则加上被乘数 的补码并考虑进位,若为0则只考虑进位。重复此过程直至乘数所有位均判断完 毕。
节能技术
采用节能技术,如动态电压调整、睡眠模式等, 以降低运算器在空闲或低负载时的功耗。
06
计算机中数的表示和运算 方法扩展
大数表示和运算方法
大数的概念
超出计算机基本数据类型表示范围的整数或浮点数。
大数表示方法
采用多精度表示法,将大数拆分成多个基本数据类型的数进行表示 和存储。
大数运算方法
设计相应的大数运算算法,如大数加法、减法、乘法、除法等。
转换方法
根据机器数的表示方法,通过相应的运算将其转换为真值。
定点数与浮点数
定点数
表示范围与精度
小数点位置固定的数,可表示整数或 小数。
定点数表示范围有限,精度较高;浮 点数表示范围大,但精度相对较低。
浮点数
小数点位置可变的数,由阶码和尾数 两部分组成,可表示大范围的数值。
02
基本运算方法
定点加减法运算
运算流水线设计
在算术逻辑单元(ALU)中采用流 水线技术,将复杂的运算过程分解 为多个简单的运算步骤,提高运算 速度。
超标量流水线设计
在一个周期内同时发射多条指令, 通过多个功能部件并行执行,进一 步提高处理器的性能。
《计算机组成原理-白中英版》习题答案

第二章运算方法和运算器1.写出下列各数的原码、反码、补码、移码表示(用8位二进制数)。
其中MSB是最高位(又是符号位)LSB是最低位。
如果是小数,小数点在MSB之后;如果是整数,小数点在LSB之后。
(1) -35/64 (2) 23/128 (3) -127 (4) 用小数表示-1 (5) 用整数表示-1解:(1)先把十进制数-35/64写成二进制小数:(-35/64)10=(-100011/1000000)2=(-100011×2-6)2=(-0.100011)2令x=-0.100011B∴ [x]原=1.1000110 (注意位数为8位) [x]反=1.0111001[x]补=1.0111010 [x]移=0.0111010(2) 先把十进制数23/128写成二进制小数:(23/128)10=(10111/10000000)2=(10111×2-111)2=(0.0001011)2令x=0.0001011B∴ [x]原=0.0001011 [x]反=0.0001011[x]补=0.0001011 [x]移=1.0001011(3) 先把十进制数-127写成二进制小数:(-127)10=(-1111111)2令x= -1111111B∴ [x]原=1.1111111 [x]反=1.0000000[x]补=1.0000001 [x]移=1.0000001(4) 令x=-1.000000B∴ 原码、反码无法表示[x]补=1.0000000 [x]移=0.0000000(5) 令Y=-1=-0000001B∴ [Y]原=10000001 [Y]反=11111110[Y]补=11111111 [Y]移=011111115.已知X和Y, 用变形补码计算X+Y, 同时指出运算结果是否溢出。
(2)X=0.11011 Y= -0.10101解:x+y = 0.00110无溢出6.已知X 和Y, 用变形补码计算X-Y, 同时指出运算结果是否溢出。
计算机组成原理第2章4-定点原码一位乘法运算

从例中可知:(1)两个n位数参加乘法运算要做n次加法和移位操作。 (2)用循环累加和移位操作实现乘法运算。
信 息 科 学 与 工 程 学 院9
第二章 运算方法和运算器
原码一位乘法逻辑结构原理图
部分积Z R0
加数器
LDR0 ∑/2Z
Yn
乘数Y R1
Yn Yn
LDR1 Y/2Y
Zs
计数器i T1 , T2, … +1
信 息 科 学 与 工 程 学 院5
第二章 运算方法和运算器
原码一位乘法(4/7)
令Zi表示第i次部分积,则上式可写成如下递推公式:
z0=0
z1=2-1(ynx+z0)
z2=2-1(yn-1x+z1) i+1
iቤተ መጻሕፍቲ ባይዱ
:
zi=2-1(yn-i+1x+zi-1) :
zn=x•y=2-1(y1x+zn-1)
显然,欲求x·y,则需设置一个保存部分积的累加器。乘法开始时,令部分积 的初值z0=0,然后求ynx加上z0,右移1位得第1个部分积z1。又将yn-1加上z1, 再右移1位得第2个部分积z2.依此类推,直到求得y1x加上zn-1并右移1位得最 后部分积zn,即得乘积x·y=zn。显然,两个n位数相乘,需重复进行n次“加” 及"右移”操作,才能得到最后乘积。这就是实现原码一位乘法的规则.
Ti
R
Cx
S
Q 乘法启动
被乘数X
R2
Xs Ys
信 息 科 学 与 工 程 学 1院0
第二章 运算方法和运算器
原码一位乘法(6/7)
工作原理 (I) 乘法开始时,“启动”信号使控制触发器Cx置“1”,于是开启时序脉冲T。 (II) 当乘数寄存器R1最末位为“1”时,部分积Zi和被乘数X在加法器中相加,其 结果输出至R0的输入端。 (III)一旦打入控制脉冲T到来,控制信号LDR0使部分积右移一位,与此同时,R1 也在控制信号LDR1作用下右移一位,且计数器i计数一次。 (IV)当计数器i=n时,计数器的溢出信号使触发器Cx置“0”,关闭时序脉冲T, 乘法宣告结束。 若将R0和R1连接起来,乘法结束时乘积的高n位部分在R0,低n位部分在R1,R1中 原来的乘数Y由于移位而全部丢失。所得乘积为2n+1位(其中包括1位符号位).
计算机组成原理第2章-二进制加减法器

X←F 选通门
X ← X-Y
F← X
减
F← Y F← 1
X← F
4/12/2021
实现补码加运算的执行过程
X ← X+Y
Fs
00000111
OVR
Z
Fs 加法器
C
完成加运算,需 要把被加数和加 数送ALU的输入
端,运算结果要
F←X
选通门
F←Y 接收到累加器,
二选一
需要给出命令:
X
CP
01001001101
基本的二进制加/减法器
全加器的表达式为:
Si = Ai Bi Ci Ci+1 = AiBi + BiCi + AiCi 一位全加器内部逻辑图
Ci+
Si
C
1
AB C
Ci
Ai
Bi A
B
3
信 息 科 学 与 工 程 学 院3
第二章 运算方法和运算器
数据与文字的表示 定点加减法运算 定点乘法运算 定点除法运算 定点运算器的组成 浮点运算与浮点运算器
4/12/2021
单符号位判断
数值位向符 号位有进位
OV= C0 C1 + C0 C1 判断电路
但符号位无 进位输出或
c0
数值位向符 号位没有进 位但符号位 本身有进位 输出是溢出
x0 y0
x1 y1
FA
z0
c1
FA
z1
OV
4/12/2021
双符号位判断
OV= z0' z0 + z'0 z0 = z0' z0
5
信 息 科 学 与 工 程 学 院5
计算机组成原理第四版第二章

+ [y]补 0. 0 1 0 1 [x+y]补 0. 1 1 1 0
所以x+y=+0.1110
Back
第二章 运算方法和运算器
B 补码减法
➢ 公式:
[x-y]补=[x]补-[y]补=[x]补+[-y]补
➢ 举例
已知 x=+0.1101 , y=+0.0110,求x-y。 解: [x]补=0.1101 [y]补=0.0110 ,[-y]补=1.1010 [x]补 0. 1 1 0 1 + [-y]补 1. 1 0 1 0 [x-y]补 1 0. 0 1 1 1
最大正数,称为“上溢” 或“正溢出”
两个负数相加,结果 小于机器所能表示的最
小负数,称为“下溢” 或“负溢出”
判断方法
举例说明
Back
第二章 运算方法和运算器
溢出检测方法常用以下两种方法:
1.采用双符号位(变形补码)判断方法:
变形补码: “00”表示正数、“11”表负数,两符号位同时参加运算, 运算结果符号出现01或10表明溢出。
发生溢出;而在浮点运算时,运算结果超出尾数的表示范围 却并不一定溢出,只有当阶码也超出所能表示的范围时,才 发生溢出。
Back
3.十进制数串的表示方法
➢ 目前,大多数通用性较强的计算机都能直接 处理十进制形式表示的数据。十进制数串 在计算机内主要有两种表示形式:
➢ 1.字符串形式 ➢ 2.压缩的十进制数串形式
➢ 计算机采用定点数表示时,对于既有整数又有小数的原始数据,需要设 定一个比例因子,数据按其缩小成定点小数或扩大成定点整数再参加运 算,运算结果,根据比例因子,还原成实际数值。若比例因子选择不当, 往往会使运算结果产生溢出或降低数据的有效精度。
第2章_运算方法和运算器74181
01100111z
x⊕y = 01100111
2.5.1 逻辑运算(续9)
事实上,逻辑加还可以通过逻辑乘和逻辑 非来实现:
zi=xi∨yi =xi∧yi
同样,逻辑乘也可以用逻辑加和逻辑非来 实现 :
zi=xi∧yi =xi∨yi
2.5.2 多功能算术/逻辑运算单元(ALU)
由一位全加器(FA)构成的行波进位加法器, 它可以实现补码数的加法运算和减法运算。
Fi=Xi⊕Yi⊕Cn+i Cn+i+1=XiYi+YiCn+i+Cn+iXi
图2.10 ALU的逻辑结构原理框图
2.5.2 多功能算术/逻辑运算单元(ALU)续2
上式中进位下标用n+i代替原来全加 器中的i,i代表集成在一片电路上的ALU的
二进制位数。对于4位一片的ALU,i= 0,1,2,3。
=G*+P*Cn 其中: 成组进位传送输出: P*=P0P1P2P3 成组进位发生输出:G*=G3+G2P3+G1P2P3+G0P1P2P3
根据以上表达式,用TTL器件实现的成组 先行进位部件74182的逻辑电路图如图2.12所 示 其中G*称为成组进位发生输出,P*称为成组 进位传送输出。
这种加法/减法器存在两个问题:
一是由于串行进位,它的运算时间很长。假如加 法二器是由就n行位波全进加位器加构法成器,本每身一来位说的,进它位只延能迟完时成间为
计算机组成原理前3章课后习题参考答案-
白中英第五版计算机组成原理课后习题参考答案第一章计算机系统概述4、冯•诺依曼型计算机的主要设计思想是什么它包括哪些主要组成部分答:冯•诺依曼型计算机的主要设计思想是存储程序和程序控制,其中存储程序是指将程序和数据事先存放到存储器中,而程序控制是指控制器依据存储的程序来控制全机协调地完成计算任务。
总体来讲,存储程序并按地址顺序执行,这就是冯•诺依曼型计算机的主要设计思想。
5、什么是存储容量什么是单元地址什么是数据字什么是指令字答:见教材P8和P10。
7、指令和数据均存放在内存中,计算机如何区分它们是指令还是数据答:见教材P10。
第二章运算方法和运算器】1、写出下列各整数的原码、反码、补码表示(用8位二进制数)。
3、有一个字长为32位的浮点数,符号位1位,阶码8位,用移码表示,尾数23位,用补码表示,基数为2,请写出:(1)最大数的二进制表示阶码用移码表示,题中并未说明具体偏移量,故此处按照移码的定义,即采用偏移量为27=128,则此时阶码E的表示范围为0000 0000~1111 1111,即0~255,则在上述条件下,浮点数为最大数的条件如下:所以最大数的二进制表示为:0 1111 1111 1111 1111 1111 1111 1111 1111 111对应十进制真值为:+(1-2-23)×2127(2)最小数的二进制表示浮点数为最小数的条件如下:所以最小数的二进制表示为:1 1111 1111 0000 0000 0000 0000 0000 000对应十进制真值为:-1×2127(3)规格化数所表示数的范围规格化要求尾数若为补码表示,则符号位和最高有效位符号必须不同。
(A)浮点数为最大正数的条件如下:所以最大正数的二进制表示为:0 1111 1111 1111 1111 1111 1111 1111 1111 111 对应十进制真值为:+(1-2-23)×2127(B)浮点数为最小正数的条件如下:所以最小正数的二进制表示为:0 0000 0000 1000 0000 0000 0000 0000 000对应十进制真值为:+2-1×2-128=+2-129(C)浮点数为最大负数的条件如下:所以最大负数的二进制表示为:0 0000 0000 0111 1111 1111 1111 1111 111对应十进制真值为:-(2-1+2-23)×2-128(D)浮点数为最小负数的条件如下:所以最小负数的二进制表示为:0 0000 0000 0000 0000 0000 0000 0000 000对应十进制真值为:-1×2127所以,规格化数所表示数的范围如下:正数+2-129~+(1-2-23)×2127负数-2127 ~-(2-1+2-23)×2-1284、将下列十进制数表示成IEEE754标准的32位浮点规格化数。
计算机组成原理第12-浮点数的运算2
CK=TL/TK=(n·k)/(k+(n-1)) 当 n>>k 时, Ck->k 。这就是说,理论上k级线性流水线处理几乎 可以提高k倍速度。但实际上由于存储器冲突、数据相关,这个理想的加速比不一定能 达到。
[解:] (1)加法器的流水线时钟周期至少为 τ=90ns+10ns=100ns
如果采用同样的逻辑电路,但不是流水线方式,则浮点加法所需的时间为 τ1+τ2+τ3+τ4 =300ns
因此,4级流水线加法器的加速比为 Ck=300/100=3
(2) 当每个过程段的时间都是75ns时,加速比为 Ck=300/75=4
[例30] 已知计算一维向量x,y的求和表达式如下:
x
y
z
56
65
20.5
14.6
0
336
121 35.1 336
114.3 + 7.2 = 121.5
69.6
72.8
142.4
3.14
1.41
4.55
试用4段的浮点加法流水线来实现一维向量的求和运算,这4段流水线是阶码比较、 对阶操作、尾数相加、规格化。只要求画出向量加法计算流水时空图。
2.CPU之内的浮点运算器
奔腾CPU将浮点运算器包含在芯片内。浮点运算部件采用流水线设计。
指令执行过程分为8段流水线。前4 段为指令预取(DF)、指令译码(D1)、地址生 成(D2)、取操作数(EX),在U、V流水线中完成;后4段为执行1(X1)、执行2(X2) 、结果写回寄存器堆(WF)、错误报告(ER),在浮点运算器中完成。一般情况下 ,由U流水线完成一条浮点数操作指令。
(NEW)白中英《计算机组成原理》(第5版)配套题库【考研真题精选+章节题库】
目 录第一部分 考研真题精选一、选择题二、综合应用题第二部分 章节题库第1章 计算机系统概论第2章 运算方法和运算器第3章 多层次的存储器第4章 指令系统第5章 中央处理器第6章 总线系统第7章 外存与I/O设备第8章 输入输出系统第9章 并行组织与结构第一部分 考研真题精选一、选择题1下列关于冯·诺依曼结构计算机基本思想的叙述中,错误的是( )。
[2019年408统考]A.程序的功能都通过中央处理器执行指令实现B.指令和数据都用二进制表示,形式上无差别C.指令按地址访问,数据都在指令中直接给出D.程序执行前,指令和数据需预先存放在存储器中【答案】C根据冯·诺依曼体系结构的基本思想可知,所有的数据和指令序【解析】列都是以二进制形式存放在存储器中,计算机根据周期来区分指令和数据,因此数据是从存储器读取而非在指令中给出,因此C项是错误的。
2下列有关处理器时钟脉冲信号的叙述中,错误的是( )。
[2019年408统考]A.时钟脉冲信号由机器脉冲源发出的脉冲信号经整形和分频后形成B.时钟脉冲信号的宽度称为时钟周期,时钟周期的倒数为机器主频C.时钟周期以相邻状态单元间组合逻辑电路的最大延迟为基准确定D.处理器总是在每来一个时钟脉冲信号时就开始执行一条新的指令【答案】D【解析】计算机完成一条指令的时间称为指令周期,而一条指令通常是由几个时钟周期组成的,因此计算机不可能每来一个时钟脉冲就执行一个新指令,所以D项是错误的。
3某指令功能为R[r2]←R[r1]+M[R[r0]],其两个源操作数分别采用寄存器、寄存器间接寻址方式。
对于下列给定部件,该指令在取数及执行过程中需要用到的是( )。
[2019年408统考]Ⅰ.通用寄存器组(GPRs)Ⅱ.算术逻辑单元(ALU)Ⅲ.存储器(Memory)Ⅳ.指令译码器(ID)A.仅Ⅰ、ⅡB.仅Ⅰ、Ⅱ、ⅢC.仅Ⅱ、Ⅲ、ⅣD.仅Ⅰ、Ⅲ、Ⅳ【答案】B一条指令的执行过程为取指令、分析指令、执行指令。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
证明
当x>0,y>0,则 x+y>0
[x]补+ [y]补= x+y=[x+y]补
当x>0,y<0,则 x+y>0 或 x+y<0,
[x]补+ [y]补= x+2+y = 2+x+y
• 当x+y>0,进位2丢失, [x]补+ [y]补= x+y =[x+y]补 • 当x+y<0, [x]补+ [y]补= 2+x+y =[x+y]补 当x<0,y>0,当x<0,y<0,(略)
包括符号位,各位取反,末位加1。
23
补码减法举例
x=0.1001,y= - 0.0101,求x + y 解:[x]补= [y]补= [-y]补= [x]补 [-y]补 [x-y]补 x-y=
24
+
2.2.3 溢出概念与 检测方法
25
2.2.3 溢出概念与检测方法
在定点小数机器中,数的表示范围为|x|<1。 在运算过程中如出现大于1的现象,称为溢出。 在定点机中,正常情况下溢出是不允许的。
由于众多芯片很快采纳了 IEEE754,反而给人造成一个错觉, 就是以为IEEE754和其他许多标准 一样,只要照着它提出的要求去 做,很容易就可以实现。然而事 实却并非如此。
12 ——David A. Patterson《计算机组成和设计》
实际上,要正确地实现它, 就必须非常认真,必须注意到各 个细节。而如果要设计出快速的 符合IEEE754标准的浮点芯片,那 就必须具备非常出众的才能了。
2.2.5 十进制加法器
43
二进制到十进制的“校正”
BCD码用4位二进制数表示一位十进制数。 • 1~9的表示如表所示。 • 10~15表示成 0000 ~ 0101,同时进位=1 当Xi+Yi+Ci<10时, Si=S'i 当Xi+Yi+Ci≥10时, Si=S'i +6
十进 制数 0 1 2 BCD 0000 0001 0010
——吴鹤龄《ACM图灵奖》
10
如今,IEEE754标准得到了厂 商们非常忠实的支持。1982年, 摩托罗拉发布了支持该标准的 68881芯片,苹果公司从一开始就 是这一标准的支持者。北美所有 计算机制造商至少都在自己的一 部分产品中采用了这个标准。
11 ——David A. Patterson《计算机组成和设计》
——William M. Kahan
15
第二章 运算方法和运算器-2
赵力 2007年2月
16
2.2 定点加法、减法运算
17
加法、减法是运算器的基本功能。
补码可以将减法转换为加法,运算器中
只需一个加法器,不再另配减法器。
本节我们将
• 学习补码加法器的算法、电路;
• 讨论可能存在的问题:溢出、延迟。
1989年的图灵奖选择了一 位加拿大计算机科学家——威 廉.卡亨(William M.Kahan), 他是因为在浮点运算部件的设 计和浮点运算标准的制定上的 突出贡献而获此殊荣的。
——吴鹤龄《ACM图灵奖》
1
卡亨1933年生于多伦多, 完成中学学业以后,进入著名 的多伦多大学。在那里,他实 现了“三级跳”,分别于1954 年、1956年、1958年拿到学士、 硕士和博士学位。
V=Cf⊕Co
31
在定点机中当运算结果发生 溢出时,机器通过逻辑电路自动 检查出溢出,并进行中断处理。
32
2.2.4 基本的二进制 加法/减法器
33
1位半加器
1位半加器是加法器中最简单的情况,即: • 只是两个二进制1位数Ai和Bi相加, • 不考虑低位来的进位。 逻辑符号
Ci+1 Si
• 非门、与非门、或非门的延时为1T;
• 与门、或门为2T;
• 异或门为3T。
延时越小越好。
40
一位全加器内部延时
由Ai Bi到Si
• 经过2级异或门,延时为6T;
由Ci到Si
• 经过1级异或门,延时为3T;
由Ai Bi到Ci+1
• 经过2级与非门和1级异或门,延时为5T;
由Ci到Ci+1
——吴鹤龄《ACM图灵奖》
2
学成以后,卡亨既在大学从 事过教学和科研,又在一些著名 的计算机整机厂和元器件厂从事 过重要的技术工作。它们是多伦 多大学、IBM公司、HP公司、 Intel公司、加州大学伯克利分校 和美国国家半导体公司。
——吴鹤龄《ACM图灵奖》
3
卡亨在Intel工作期间, 主持设计与开发了8087芯片, 成功地实现了高速、高效的浮 点运算部件。IEEE在制定浮点 运算标准的时候,很自然地任 命卡亨为这个课题的负责人。
——吴鹤龄《ACM图灵奖》
4
作为一名科学家,卡亨在 教学与研究工作中素以作风严 密、严谨、严格著称。卡亨获 图灵奖以后的一个小插曲很能 说明这个问题。
——吴鹤龄《ACM图灵奖》
5
卡亨获图灵奖之后,ACM收到 了一名读者对卡亨获奖表示异议 的信。这名读者曾在伯克利分校 念研究生,入学考试时与卡亨教 授发生过龃龉。按照“言论自由” 的原则,ACM把这封信不加评论地 发表在ACM论坛上。
——吴鹤龄《ACM图灵奖》
8
这位读者的来信发表以后, ACM论坛又相继发表了另一位读者 的来信,他认为,上述读者介绍 的情况,恰恰说明了卡亨教授对 学生高标准、严要求,是值得称 道的。解题步数与运算结果的精 度相比何者更为重要?
——吴鹤龄《ACM图灵奖》
9
正确的一方显然是卡亨教 授。争论由此结束。 在这个过程中,图灵奖的 评奖委员会和卡亨教授本人都 没有出来就此说任何话。
正数相加得负数,负数相加得正数。 然而,计算机并不知道发生的错误。
27
检测溢出
方法一、双符号位法 原理:采用变形补码(模4补码),使模2补码 所能表示的数的范围扩大一倍。
x 补
x 4 x 4 | x | 2 x 0 0 x 2 (mod 4 )
21
补码加法举例
x=0.1001,y= - 0.0101,求x + y 解:[x]补= [y]补= [x]补 [y]补 [x+y]补 x + y=
22
+
2.2.2 补码减法算法
补码减法的运算公式
[x -y]补= [x]补+ [-y]补 (mod 2) 从[y]补求 [-y]补的法则:
Ci+1 Si
FA
Ai Bi Ci
36
1位全加器
真值表
输入 Ai Bi 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 输出 Ci Si Ci+! 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1
逻辑表达式 Si=Ai⊕Bi⊕Ci Ci+1=AiBi+BiCi+CiAi 电原理图
37
n位加法/减法器
数据输入
• 被加(减)数A (n位补码)
• 加(减)数B (n位补码) 数据输出 • 和(差)S (n位补码) • 溢出判别位(1位) 加减控制信号M (1位)
B M A
加/减法器
S
38
行波进位加法/减法器
39
延时问题
为什么会产生延时? 从稳定的输入到产生稳定的输出,逻辑 门状态的改变需要一定的时间。
• 一位全加器 • 行波加法器 • 延时
十进制加法器
47
2.3 定点乘法运算
48
手工运算
从手工运算看乘法器的实现,
• 假定被乘数、乘数都为n位,
A 1 1 0 1
• 实际上乘法可以转换为加法。 × B
需要一个特殊的加法器:
• n个加数的输入端,
1
• 暗示n个数据暂存器,
• 加法器的总位数需要2n位。
n位十进制数字的 行波进位BCD加法器
Sn-1
4
S2
4
S1
4
Cn
一位BCD 加法器单元
4 4
Cn-1
…
C2
一位BCD 加法器单元
4 4
C1
一位BCD C0 加法器单元
4 4
Xn-1 Yn-1
X2
Y2
X1
Y1
46
小结
补码定点加、减运算方法
• 教材以定点小数为例,可推广到定点整数。
溢出判别 行波加法/减法器
18
2.2.1~2.2.2 补码加法/减法 运算方法
19
2.2.1 补码加法算法
补码加法的运算公式 [x+y]补= [x]补+ [y]补 (mod 2)
公式成立的条件:|x|<1, |y|<1, |x+y|<1
说明:
• 符号位要作为数的一部分一起参与运算;
• 在模2的意义下相加,超过2的进位丢掉。
模4补码有2个符号位。 模2补码的加法算法也适用于模4补码。
28
双符号位法判溢出
当以模4补码运算运算结果的二符号位
• 相异时,表示溢出; • 相同时,表示未溢出。 溢出逻辑表达式为 V=Sf1⊕Sf2 Sf1 Sf2
⊕ V
其中Sf1和Sf2分别为最高符号位和第二符号位。
模4补码相加的结果,不论溢出与否,最高符号位始 终指示正确的符号。
3
4 5 6 7 8 9