第 3 章 运算方法与运算器._第1页
第 3 章 运算方法与运算器._第2页
第 3 章 运算方法与运算器._第3页
第 3 章 运算方法与运算器._第4页
第 3 章 运算方法与运算器._第5页
已阅读5页,还剩297页未读 继续免费阅读

下载本文档

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

文档简介

1、2022-5-23第9版 2013.09 顾一禾 1第第 3 3 章章 运算方法与运算器运算方法与运算器2022-5-232本章学习内容 基本算术逻辑运算电路基本算术逻辑运算电路 定点加、减、乘、除运算定点加、减、乘、除运算 浮点加、减、乘、除运算浮点加、减、乘、除运算 十进制数的运算十进制数的运算2022-5-2333.1 3.1 运算器的设计方法运算器的设计方法 运算器所具有的只是简单的算术、逻辑运算器所具有的只是简单的算术、逻辑运算以及移位、计数等功能。运算以及移位、计数等功能。 计算机中对数据信息的加工的基本思想:计算机中对数据信息的加工的基本思想: 将各种复杂的运算处理分解为最基本的

2、将各种复杂的运算处理分解为最基本的算术运算和逻辑运算。算术运算和逻辑运算。 例如在算术运算中,可以通过补码运算例如在算术运算中,可以通过补码运算将减法化为加法;利用加减运算与移位将减法化为加法;利用加减运算与移位功能的配合实现乘除运算;通过阶码与功能的配合实现乘除运算;通过阶码与尾数的运算组合实现浮点运算。尾数的运算组合实现浮点运算。 2022-5-234运算器逻辑组织结构设计的层次运算器逻辑组织结构设计的层次 根据机器的字长,将根据机器的字长,将N个一位全加器通过加个一位全加器通过加法进位链连接构成法进位链连接构成N位并行加法器。位并行加法器。 利用多路选择逻辑在加法器的输入端实现多利用多路

3、选择逻辑在加法器的输入端实现多种输入组合,将加法器扩展为多功能的算术种输入组合,将加法器扩展为多功能的算术/ /逻逻辑运算部件。辑运算部件。 根据乘除运算的算法,将加法器与移位器组根据乘除运算的算法,将加法器与移位器组合,构成定点乘法器与除法器。将计算定点整合,构成定点乘法器与除法器。将计算定点整数的阶码运算器和计算定点小数的尾数运算器数的阶码运算器和计算定点小数的尾数运算器组合构成浮点运算器。组合构成浮点运算器。 在算术在算术/逻辑运算部件的基础上,配合各类相逻辑运算部件的基础上,配合各类相关的寄存器,构成计算机中的运算器。关的寄存器,构成计算机中的运算器。 2022-5-2353.2 3.

4、2 定点补码加减运算定点补码加减运算 原码加减运算规则:原码加减运算规则: 首先判断参加运算的两个操作数的符号,再根首先判断参加运算的两个操作数的符号,再根据操作的要求决定进行相加还是相减操作。运据操作的要求决定进行相加还是相减操作。运算时,符号位不参加运算,只有两数的绝对值算时,符号位不参加运算,只有两数的绝对值参加运算。最后根据两个操作数绝对值的大小参加运算。最后根据两个操作数绝对值的大小决定结果的符号。决定结果的符号。 大多数计算机中只设置加法器大多数计算机中只设置加法器 做原码减法运算时做原码减法运算时用用|x|x|y|y|变补变补代替代替|x|x|y|y|2022-5-236原码加减

5、运算步骤原码加减运算步骤 判断参加运算的两个操作数的符号,决定进判断参加运算的两个操作数的符号,决定进行相加还是相减操作。行相加还是相减操作。 取参加运算的操作数的绝对值。取参加运算的操作数的绝对值。 若做加法,则两数直接相加;若做减法,则若做加法,则两数直接相加;若做减法,则将减数先变一次补,再进行加法运算。将减数先变一次补,再进行加法运算。2022-5-237 运算结果的处理:运算结果的处理: 加法运算:加法运算: 无进位,即得到正确结果。无进位,即得到正确结果。 有进位,结果溢出。有进位,结果溢出。 减法运算:减法运算: 有进位,结果为正,即得到正确结果。有进位,结果为正,即得到正确结果

6、。 无进位,结果为负,需将结果再变一次补,无进位,结果为负,需将结果再变一次补, 得到正确结果。得到正确结果。 取绝对值大的操作数的符号作为结果的符号,取绝对值大的操作数的符号作为结果的符号,给结果加上符号位。给结果加上符号位。2022-5-2383.2.1 3.2.1 补码运算的基础补码运算的基础 由于原码加减算法复杂,而补码表示可以把由于原码加减算法复杂,而补码表示可以把加法、减法均转换为加法,大大简化了加减加法、减法均转换为加法,大大简化了加减运算算法,所以在计算机中均采用补码加减运算算法,所以在计算机中均采用补码加减运算。运算。 补码运算补码运算:参加运算的操作数均用补码表示:参加运算

7、的操作数均用补码表示并且运算结果也以补码表示。并且运算结果也以补码表示。2022-5-2391. 1. 补码加法补码加法 补码加法的基本关系:补码加法的基本关系: xx补补yy补补xxyy补补 (mod M) (3-1)(mod M) (3-1) 即两数补码之和等于两数之和的补码。即两数补码之和等于两数之和的补码。 式式(3-1)(3-1)中:中: 若若x x,y y是定点小数,则是定点小数,则ModMod2 2; 若若x x,y y是定点整数,则是定点整数,则ModMod2 2n n1 1,n n为为定点整数数值部分的位数。定点整数数值部分的位数。2022-5-2310 以定点小数为例证明式

8、以定点小数为例证明式(3-1)(3-1)的正确性。的正确性。 证明证明: : 设设x x,y y的取值范围分别为的取值范围分别为1x1x1 1,1y1y1 1;两数之和;两数之和x xy y的值在正常范围的值在正常范围之内,即:之内,即:1x1xy y1 1。 (1) (1) 设设x0 x0,y0y0,则,则x xy0y0 由补码定义:由补码定义: xx补补x x,yy补补y y, 得:得:xx补补yy补补x xy yxxyy补补2022-5-2311 (2) (2) 设设x0 x0,y y0 0 且且 |x|y|x|y| 由补码定义由补码定义 xx补补x x,yy补补2 2y (mod2)y

9、 (mod2) 得:得:xx补补yy补补2 2x xy y |x|y|x|y|, xxy0y0,xxyy补补x xy y 22x xy2 y2 xx补补yy补补x xy (mod2)y (mod2) 即证得即证得 xx补补yy补补xxyy补补2022-5-2312 (3) (3) 设设x0 x0,y y0 0 且且|x|x|y|y| 由补码定义由补码定义 xx补补x x,yy补补2 2y (mod2) y (mod2) 得:得:xx补补yy补补2 2x xy y |x|x|y| |y| x xy y 0 0 xxyy补补2 2x xy yxx补补yy补补 (mod2)(mod2)2022-5-

10、2313 (4)(4)设设x x0 0,y y0 0 由补码定义:由补码定义: xx补补2 2x x,yy补补2 2y (mod2)y (mod2) 得:得:xx补补yy补补2 2x x2 2y y2 22 2x xy y 舍去模舍去模2 2,得,得 xx补补yy补补2 2x xy y xx0 0,y y0 0 , x xy y 0 0 xxyy补补2 2x xy yxx补补yy补补 当当x x0 0,y0y0时,证明方法与时,证明方法与(2)(2)、(3)(3)相同。相同。 到此得证:到此得证:xx补补yy补补xxyy补补2022-5-2314 补码减法的基本关系:补码减法的基本关系: xx

11、补补yy补补xx补补 yy补补xxyy补补 (3-2)(3-2) 即两数补码之差等于两数之差的补码。即两数补码之差等于两数之差的补码。 式式(3-2)(3-2)中,中, 如果如果x x,y y是定点小数,则是定点小数,则ModMod2 2; 如果如果x x,y y是定点整数,则是定点整数,则ModMod2 2n n1 1,n n为定为定点整数数值部分的位数。点整数数值部分的位数。 2. 2. 补码减法补码减法 2022-5-2315 以定点小数为例证明式以定点小数为例证明式(3-2)(3-2)的正确性。的正确性。 根据式根据式(3-1)(3-1),可知:,可知: xx补补 yy补补xx( (y

12、)y)补补xxyy补补 xxyy补补xx补补yy补补 xx补补 yy补补xxyy补补, 对于对于xx补补yy补补xx补补 yy补补 只要证明只要证明 yy补补yy补补成立,成立, 由由xx补补yy补补xx补补 yy补补xxyy补补 就可得式就可得式(3-2)(3-2)成立。成立。2022-5-2316 证明:证明: xxyy补补xx补补yy补补 yy补补xxyy补补xx补补 xxyy补补xx补补 yy补补 yy补补xxyy补补xx补补 yy补补 yy补补 xxyy补补xxyy补补xx补补xx补补 xxy yx xyy补补xx补补xx补补 xxxx补补xx补补xx补补 xx补补xx补补xx补补x

13、x补补0 0 yy补补 yy补补2022-5-2317 参加运算的各个操作数均以补码表示,运算参加运算的各个操作数均以补码表示,运算结果仍以补码表示。结果仍以补码表示。 符号位与数值位一样参加运算。符号位与数值位一样参加运算。 若求和,则将两补码数直接相加,得到两数若求和,则将两补码数直接相加,得到两数之和的补码;之和的补码; 若求差,则将减数变补若求差,则将减数变补( (由由yy补补求求 yy补补) ),然后与被减数相加,得到两数之差的补码。然后与被减数相加,得到两数之差的补码。 补码总是对确定的模而言,若运算结果超过补码总是对确定的模而言,若运算结果超过模模( (有从符号位上产生的进位有从

14、符号位上产生的进位) ),则将模自动丢,则将模自动丢掉。掉。补码运算的基本规则补码运算的基本规则2022-5-2318 例例3.1 x3.1 x0.10010.1001,y y0.01010.0101,求,求x xy y? 解:解:xx补补0.10010.1001, yy补补0.01010.0101, yy补补1.10111.1011 xxyy补补xx补补yy补补0.10010.10010.01010.01010.11100.1110 x xy y0.11100.11100.10010.10010.01010.01010.11100.11100.10010.10011.10111.10110.

15、01000.01001 1丢模丢模 xxyy补补xx补补 yy补补0.10010.10011.10111.10110.01000.0100 x xy y0.01000.01002022-5-2319 例例3.2 x3.2 x0.01100.0110,y y0.00110.0011,求,求x xy y? 解:解:xx补补1.10101.1010, yy补补1.11011.1101, yy补补0.00110.0011 xxyy补补xx补补yy补补1.10101.10101.11011.11011.01111.0111 x xy y0.10010.10011.10101.10101.11011.11

16、011.01111.01111.10101.10100.00110.00111.11011.11011 1丢模丢模 xxyy补补xx补补 yy补补1.10101.10100.00110.00111.11011.1101 x xy y0.00110.00112022-5-2320 例例3.3 x3.3 x0.10100.1010,y y0.10010.1001,求求x xy y? 解:解:xx补补0.10100.1010, yy补补0.10010.1001, xxyy补补xx补补yy补补0.10100.10100.10010.10010.10100.10100.10010.10011.00111

17、.00111 1 结果溢出结果溢出2022-5-2321 例例3.4 x3.4 x0.11010.1101,y y0.10110.1011,求求x xy y? 解:解:xx补补1.00111.0011, yy补补1.01011.0101, xxyy补补xx补补yy补补1.00111.00111.01011.01011.00111.00111.01011.01010.10000.10001 1 结果溢出结果溢出2022-5-2322 如果两个正数相加,得到结果的符号为负;两个如果两个正数相加,得到结果的符号为负;两个负数相加,得到的结果为正,则运算结果是错误负数相加,得到的结果为正,则运算结果是

18、错误的。的。 造成错误的原因,是因为运算结果超出了机器所造成错误的原因,是因为运算结果超出了机器所能表示的数据范围,数值位侵占了符号位,正确能表示的数据范围,数值位侵占了符号位,正确符号被挤走了。符号被挤走了。 正溢出正溢出:两个正数相加的结果超出机器所能表示:两个正数相加的结果超出机器所能表示的最大正数。的最大正数。 负溢出负溢出:两个负数相加的结果小于机器所能表示:两个负数相加的结果小于机器所能表示的最小负数。的最小负数。 出现溢出后,机器将无法正确表示,因此必须正出现溢出后,机器将无法正确表示,因此必须正确判别溢出并及时加以处理确判别溢出并及时加以处理。2022-5-2323 3.2.2

19、 3.2.2 溢出判别与变形补码溢出判别与变形补码 设参加运算的操作数为设参加运算的操作数为 xx补补x xf f.x.xn nx x2 2x x1 1 y y补补y yf f.y.yn ny y2 2y y1 1 xx补补yy补补的的和为:和为: ss补补s sf f.s.sn ns s2 2s s1 1 发生溢出时发生溢出时 OVROVR1 1 常用判断溢出的方法常用判断溢出的方法 1. 1. 根据两个操作数的符号与结果的符号判别溢出根据两个操作数的符号与结果的符号判别溢出 由于参加运算的数都是定点数,所以只有两数同号由于参加运算的数都是定点数,所以只有两数同号时相加才可能溢出。所以溢出的

20、条件为:时相加才可能溢出。所以溢出的条件为: OVROVRx xf fy yf fs sf fx xf fy yf fs sf f(x(xf fssf f)(y)(yf fssf f) (3-3) ) (3-3) 即即x xf f和和y yf f均与均与s sf f不同时,产生溢出。不同时,产生溢出。2022-5-23241.00111.00111.01011.01010.10000.10001 1 如如 x xf fy yf fs sf fx xf fy yf fs sf f 1 1 C Cf fC Cn-1n-1 1 1 2. 2. 根据两数相加时产生的进位判别溢出根据两数相加时产生的进位

21、判别溢出 设设C Cf f为符号位上产生的进位,为符号位上产生的进位,C Cn-1n-1为最高数值为最高数值位上产生的进位,则溢出的条件为:位上产生的进位,则溢出的条件为: OVROVRC Cf fC Cn-1n-1C Cf fC Cn-1n-1 C Cf fCCn-1n-1 (3-4) (3-4) 即若进入符号位的进位和从符号位上产生的进即若进入符号位的进位和从符号位上产生的进位不相等,则产生溢出。位不相等,则产生溢出。 有的资料中将有的资料中将C Cf f写为写为C Cn n,所以溢出条件为,所以溢出条件为 OVROVRC Cn nC Cn-1n-1C Cn nC C1 1C Cn nCC

22、n-1n-12022-5-2325溢出判断电路溢出判断电路&=1=1XfSfYfOVR=1OVRCfCn-12022-5-23263. 3. 采用变形补码进行运算采用变形补码进行运算 使用一个符号位进行运算,当出现溢出时,正确使用一个符号位进行运算,当出现溢出时,正确的符号将被数值位侵占,符号位含义就会发生混的符号将被数值位侵占,符号位含义就会发生混乱。如果采用两个符号位进行运算,即使因出现乱。如果采用两个符号位进行运算,即使因出现溢出侵占了一个符号位,仍能保持最左边符号是溢出侵占了一个符号位,仍能保持最左边符号是正确的。正确的。 变形补码变形补码:用两个符号位表示的补码。也称:用两个

23、符号位表示的补码。也称双符双符号位补码号位补码。 2022-5-2327变形补码的定义变形补码的定义 纯小数的变形补码纯小数的变形补码 纯整数的变形补码纯整数的变形补码 4) (mod 0 x1- x41x0 xx变形补 )2 (mod 0 x2- x22x0 xx2nn2nn变形补2022-5-2328 变形补码的形式:变形补码的形式: xx变形补变形补x xf1f1x xf2f2.x.xn nx x2 2x x1 1 设和的变形补码设和的变形补码为为 ss变形补变形补s sf1f1s sf2f2.s.sn ns s2 2s s1 1 变形补码的溢出判断条件变形补码的溢出判断条件: OVRO

24、VRs sf1f1ssf2f2 即当结果的两个符号位不一致时,出现溢出。即当结果的两个符号位不一致时,出现溢出。其中:其中: s sf1f1s sf2f200 00 或或 11 11 表示正常补码表示正常补码 s sf1f1s sf2f201 01 表示正溢出表示正溢出 s sf1f1s sf2f210 10 表示负溢出表示负溢出2022-5-2329 例例3.5 x3.5 x0.10010.1001,y y0.01010.0101,求,求x xy y? 解:解: xx变形补变形补00.100100.1001, yy变形补变形补00.0101 00.0101 00.100100.100100.

25、010100.010100.111000.1110 xxyy变形补变形补00.100100.100100.010100.010100.111000.1110 x xy y0.11100.11102022-5-2330 例例3.6 x3.6 x0.01100.0110,y y0.00110.0011,求,求x xy y? 解:解: xx变形补变形补11.101011.1010, yy变形补变形补11.110111.1101, 11.101011.101011.110111.110111.011111.01111 1丢模丢模 xxyy变形补变形补11.101011.101011.110111.11

26、0111.011111.0111 x xy y0.10010.10012022-5-2331 例例3.7 3.7 x x0.10100.1010,y y0.10010.1001 x x0.11010.1101,y y0.10110.1011 求求x xy y? 解:解: xx变形补变形补00.101000.1010, yy变形补变形补00.100100.1001, xxyy变形补变形补00.101000.101000.100100.1001 s sf1f1ssf2f21 1 运算结果溢出运算结果溢出00.101000.101000.100100.100101.001101.0011正溢出正溢出

27、2022-5-2332 x x变形补变形补11.001111.0011, yy变形补变形补11.010111.0101, xxyy变形补变形补11.001111.001111.010111.0101 s sf1f1ssf2f21 1 运算结果溢出运算结果溢出11.001111.001111.010111.010110.100010.10001 1负溢出负溢出2022-5-2333 分析分析s sf1f1、s sf2f2的含义可知,无论运算结果的含义可知,无论运算结果是否产生溢出,第一符号位是否产生溢出,第一符号位s sf1f1始终指示始终指示结果的正确的正负符号。结果的正确的正负符号。 变形补

28、码在正常情况下,变形补码在正常情况下,s sf1f1s sf2f2 ,所以,所以存储数据时采用正常补码,只在运算时存储数据时采用正常补码,只在运算时采用变形补码,以便判别溢出。采用变形补码,以便判别溢出。 变形补码的溢出判断电路变形补码的溢出判断电路:=1OVRSf1Sf22022-5-23343.2.3 3.2.3 算术逻辑运算部件算术逻辑运算部件 运算器的基本功能是进行算术逻辑运算,运算器的基本功能是进行算术逻辑运算,其最基本也是最核心的部件是加法器。其最基本也是最核心的部件是加法器。 在加法器的输入端加入多种输入控制功能,在加法器的输入端加入多种输入控制功能,就能将加法器扩展为多功能的算

29、术就能将加法器扩展为多功能的算术/逻辑运逻辑运算部件。算部件。 2022-5-23351. 1. 补码加减运算的逻辑实现补码加减运算的逻辑实现 根据根据 AA补补BB补补AABB补补 AA补补BB补补AA补补 BB补补 AA补补BB补补1 1AABB补补 补码加减运算的硬件实现电路的基本原理仍是补码加减运算的硬件实现电路的基本原理仍是加法器,只要在加法器的加法器,只要在加法器的A A、 B B输入端增加控制输入端增加控制信号,即可控制实现加法和减法。信号,即可控制实现加法和减法。 B1B1B B 在需要作减法时,将输入到加法器在需要作减法时,将输入到加法器B B端的内端的内容的取反(容的取反(

30、B1B1)后送入加法器,并使最低进)后送入加法器,并使最低进位位C C0 01 1,即可实现减法运算。,即可实现减法运算。2022-5-2336采用串行进位的补码加减运算逻辑电路采用串行进位的补码加减运算逻辑电路 Cn FA Fn An Bn Cn1 Fn1 An1 Bn1 Cn2 FA F2 A2 B2 C1 F1 C0 C2 M A1 B1 FA FA 1 1 1 1 2022-5-2337 M M0 B0 Bi i通过异或门与通过异或门与0 0异或异或,B Bi i00B Bi i, C C0 00 0 作作 A AB B M M1 B1 Bi i通过异或门与通过异或门与1 1异或异或,

31、B Bi i11B Bi i, C C0 01 1 作作 A AB B 电路中采用进出符号位的进位进行溢出判断。电路中采用进出符号位的进位进行溢出判断。 OVROVRC Cn nCCn n1 12022-5-23382. 2. 实现补码加减运算的逻辑电路实现补码加减运算的逻辑电路 在实际应用中,两个操作数需要存放在在实际应用中,两个操作数需要存放在寄存器中,运算时送到运算器中进行运寄存器中,运算时送到运算器中进行运算,运算结果再送到寄存器中保存。算,运算结果再送到寄存器中保存。 在实际的运算器中,参加运算的操作数在实际的运算器中,参加运算的操作数和运算结果通常都存放在寄存器中,控和运算结果通常

32、都存放在寄存器中,控制器通过对指令译码得到控制信号,控制器通过对指令译码得到控制信号,控制将操作数输入加法器及将运算结果写制将操作数输入加法器及将运算结果写回寄存器。回寄存器。 2022-5-2339 并行加法器 F C01 & A Q Q FA B Q Q FB FB & 1 & AF 补码加减运算的逻辑电路补码加减运算的逻辑电路 A(A)A(A)(B) (B) 2022-5-2340 A A寄存器:运算前存放操作数,运算后存放运寄存器:运算前存放操作数,运算后存放运算结果。也称为累加器。算结果。也称为累加器。 B B寄存器:有两个输出端寄存器:有两个输出端 B B

33、和和 B B 。 由加、减法指令控制产生由加、减法指令控制产生ADDADD和和SUBSUB信号。信号。 执行加法指令:执行加法指令:ADDADD1 1 执行减法指令:执行减法指令:SUBSUB1 1 ADDADD0 & SUB0 & SUB0 0 执行的不是加、减法指令执行的不是加、减法指令 参加运算的两个补码数分别存放在寄存器参加运算的两个补码数分别存放在寄存器A A、B B中,运算结果保存在寄存器中,运算结果保存在寄存器A A中。中。2022-5-2341 运算控制信号的逻辑条件为:运算控制信号的逻辑条件为: FAFAADDADDSUBSUB FB FBADDADD FB

34、FBSUBSUB C C0 011SUB SUB AF AFADDADDSUBSUB2022-5-23422. 2. 算术逻辑运算部件举例算术逻辑运算部件举例 除了加减运算,运算器还需要完成其它算除了加减运算,运算器还需要完成其它算术逻辑运算,在加法器的输入端加以多种术逻辑运算,在加法器的输入端加以多种输入控制,就可以将加法器的功能进行扩输入控制,就可以将加法器的功能进行扩展。展。 算术逻辑运算单元(简称算术逻辑运算单元(简称ALUALU)是一种以)是一种以加法器为基础的多功能组合逻辑电路。加法器为基础的多功能组合逻辑电路。 ALUALU的的基本设计思想基本设计思想:在加法器的输入端:在加法器

35、的输入端加入一个函数发生器,这个函数发生器可加入一个函数发生器,这个函数发生器可以在多个控制信号的控制下,为加法器提以在多个控制信号的控制下,为加法器提供不同的输入函数,从而构成一个具有较供不同的输入函数,从而构成一个具有较完善的算术逻辑运算功能的运算部件。完善的算术逻辑运算功能的运算部件。 2022-5-2343ALUALU组件组件 SN74181 SN74181 F3 F2 F1 F0 SN74181 4 位 ALU S3 S2 S1 S0 M Cn4 AB G P B3B2B1B0 A3A2A1A0Cn 图 3-4 SN74181 的外部特性图 2022-5-2344 SN74181SN

36、74181: 4 4位位ALUALU组件,可以实现组件,可以实现1616种算术运算功种算术运算功能和能和1616种逻辑运算功能,其具体功能由种逻辑运算功能,其具体功能由S S3 3S S2 2S S1 1S S0 0和和M M信号控制实现。信号控制实现。 SN74181SN74181有正逻辑和负逻辑两种芯片。有正逻辑和负逻辑两种芯片。 图图3-43-4为采用负逻辑方式工作的为采用负逻辑方式工作的SN74181SN74181芯片的外部特性。芯片的外部特性。 2022-5-2345 A A3 30 0、B B3 30 0:参加运算的两组:参加运算的两组4 4位操作数;位操作数; C Cn n:低位

37、来的进位;:低位来的进位; F F3 30 0:输出的运算结果;:输出的运算结果; C Cn n4 4:向高位的进位;:向高位的进位; G G:小组本地进位;:小组本地进位; P P:小组传递函数;:小组传递函数; A AB B:两个操作数的相等。:两个操作数的相等。 如果将多个如果将多个7418174181的的“A AB”B”端按端按“与与”逻逻辑连接,就可以检测两个字长超过辑连接,就可以检测两个字长超过4 4位的操位的操作数的相等情况。作数的相等情况。2022-5-2346 S S3 3S S2 2S S1 1S S0 0:控制产生:控制产生1616种不同的逻辑函数;种不同的逻辑函数; M

38、 M:控制芯片执行算术运算还是逻辑运算。:控制芯片执行算术运算还是逻辑运算。 M M0 0:允许加法器位间进位,执行算术运:允许加法器位间进位,执行算术运算;算; M M1 1:封锁加法器位间进位,执行逻辑运:封锁加法器位间进位,执行逻辑运算。算。2022-5-2347 多片多片SN74181SN74181组合,可以构成更多位数的组合,可以构成更多位数的ALUALU。 将将SN74181SN74181与并行进位链芯片与并行进位链芯片SN74182SN74182配合,配合,可以组成快速的并行加法器。可以组成快速的并行加法器。 SN74182 P3 G3 C12 P2G2 C8 P1G1 C4 P

39、0G0 C0 74181 74181 74181 74181 74181 C0 P G 2022-5-23483.3 3.3 定点乘法运算定点乘法运算 计算机中实现乘除运算通常采用以的三计算机中实现乘除运算通常采用以的三种方式:种方式: 利用乘除运算子程序利用乘除运算子程序 在加法器的基础上增加左、右移位及在加法器的基础上增加左、右移位及计数器等逻辑线路构成乘除运算部件计数器等逻辑线路构成乘除运算部件。 设置专用的阵列乘除运算器设置专用的阵列乘除运算器 2022-5-2349 3 3.3.1 .3.1 原码乘法运算原码乘法运算 原码乘法:原码乘法:参加运算的被乘数和乘数均用参加运算的被乘数和乘

40、数均用原码表示;运算时符号位单独处理,原码表示;运算时符号位单独处理,被乘被乘数与乘数的绝对值相乘;所得的积也采用数与乘数的绝对值相乘;所得的积也采用原码表示。原码表示。 在定点机中,两个数的原码乘法运算包括:在定点机中,两个数的原码乘法运算包括: 乘积的符号处理乘积的符号处理 两数绝对值相乘两数绝对值相乘2022-5-2350 设设 被乘数:被乘数:x原原xf . x1x2xn 乘数:乘数: y原原yf . y1y2yn 乘积:乘积: z原原x原原y原原 xy原原zf . z1z2zn 根据根据“同号相乘,乘积为正;异号相乘,乘积同号相乘,乘积为正;异号相乘,乘积为负为负”,得乘积的符号:,

41、得乘积的符号: zfxf yf2022-5-2351 例例3.83.8:x x0.11010.1101,y y0.1011 0.1011 求求x xy y? ? 解:根据二进制乘法规律,可得解:根据二进制乘法规律,可得x xy y的手算过的手算过程如下:程如下: 得:得:x xy y0.10001111 0.10001111 0.1101 0.1011 1101 y41 得部分积为x 1101 y31 得部分积为x 0000 y20 得部分积为0 1101 y11 得部分积为x 0.10001111 将所有部分积相加,得到最后的乘积 2022-5-2352 从例从例3.83.8可以看出,两个可

42、以看出,两个4 4位数相乘得位数相乘得8 8位乘积,位乘积,共共4 4个部分积需个部分积需8 8位加法器相加。位加法器相加。 由此可见,两个由此可见,两个n n位数相乘,得位数相乘,得2n2n位乘积,共有位乘积,共有n n个部分积。个部分积。 2n 2n位乘积需用位乘积需用2n2n位加法器进行相加运算。位加法器进行相加运算。 两个两个n n位数相乘位数相乘, ,需需n n个寄存器保存个寄存器保存n n个部分积。个部分积。 显然所需硬件太多,不适合用硬件去实现,为显然所需硬件太多,不适合用硬件去实现,为此需对算法加以改进。此需对算法加以改进。2022-5-23531. 1. 一位原码乘法运算一位

43、原码乘法运算 设参加运算的设参加运算的被乘数为被乘数为 x x0.x0.x1 1x x2 2x x4 4,乘数为乘数为 y y0.y0.y1 1y y2 2y y4 4,有:,有: x xy yx x0.y0.y1 1y y2 2y y3 3y y4 4 x x(2(2-1-1y y1 12 2-2-2y y2 22 2-3-3y y3 32 2-4-4y y4 4) ) 2 2-1-1x xy y1 12 2-2-2x xy y2 22 2-3-3x xy y3 32 2-4-4x xy y4 4 2 2-1-122-3-3x xy y4 42 2-2-2x xy y3 32 2-1-1x

44、xy y2 2x xy y1 1 2 2-1-122-1-122-2-2x xy y4 42 2-1-1x xy y3 3x xy y2 2 x xy y1 1 2 2-1-122-1-122-1-1(2(2-1-1x xy y4 4x xy y3 3) )x xy y2 2 x xy y1 1 2 2-1-122-1-122-1-1(2(2-1-10 x xy y3 3) )x xy y2 2 x xy y1 1 2022-5-2354 根据上式,可将乘法转换为一系列加法与移位根据上式,可将乘法转换为一系列加法与移位操作。将递推公式推广到操作。将递推公式推广到n n位,得:位,得: Z Z0

45、 00 0 (初始部分积为(初始部分积为0 0) Z Z1 12 2-1-1(Z(Z0 0 xyxyn n) ) Z Z2 22 2-1-1(Z(Z1 1xyxyn-1n-1) ) Z Zn n2 2-1-1(Z(Zn-1n-1xyxy1 1) )x xy y 其中,其中,Z Z0 0、Z Z1 1、Z Zn n称为部分积。称为部分积。 根据上述推导过程可知,可以把乘法转换为一根据上述推导过程可知,可以把乘法转换为一系列加法与移位操作。系列加法与移位操作。 2022-5-2355原码一位乘法的算法原码一位乘法的算法 积的符号单独按两操作数的符号模积的符号单独按两操作数的符号模2 2加(异或)加

46、(异或)得到。用被乘数和乘数的数值部分进行运算。得到。用被乘数和乘数的数值部分进行运算。 以乘数的最低位作为乘法判别位,若判别位以乘数的最低位作为乘法判别位,若判别位为为1 1,则在前次部分积(初始部分积为,则在前次部分积(初始部分积为0 0)上加)上加上被乘数,然后连同乘数一起右移一位;若判上被乘数,然后连同乘数一起右移一位;若判别位为别位为0 0,则在前次部分积上加,则在前次部分积上加0 0(或不加),(或不加),然后连同乘数一起右移一位。然后连同乘数一起右移一位。 重复第重复第步直到运算步直到运算n n次为止。次为止。(n n为乘数数为乘数数值部分的长度值部分的长度) 将乘积的符号与数值

47、部分结合,即可得到最将乘积的符号与数值部分结合,即可得到最终结果。终结果。 2022-5-2356 例例3.9 3.9 设设 x x0.11010.1101,y y0.10110.1011,根,根据原码一位乘法的算法计算据原码一位乘法的算法计算x xy y? ? 解:解:xx原原0.11010.1101,yy原原1.10111.1011, 乘积乘积 zz原原xxyy原原 符号位单独处理得符号位单独处理得 z zf f0 01 11 1 将被乘数和乘数的绝对值的数值部分将被乘数和乘数的绝对值的数值部分相乘。相乘。 |x|x|原原0.1101 |y|0.1101 |y|原原0.1011 0.101

48、1 数值部分为数值部分为4 4位,共需运算位,共需运算4 4次。次。 2022-5-2357 部分积部分积 乘数乘数 y yn n 说明说明 0.0000 1 0 1 0.0000 1 0 1 1 1 初始部分积初始部分积 Z Z0 00 0 0.1101 0.1101 乘数乘数y yn n1 1, 加加x x; 0.1101 0.1101 0.0110 0.0110 1 1 1 0 1 0 1 1 部分积与乘数同时右移一位;部分积与乘数同时右移一位; 0.1101 0.1101 乘数乘数y yn n1 1, 加加x x; 1.0011 1.0011 0.1001 0.1001 1 11 1

49、1 1 0 0 部分积与乘数同时右移一位;部分积与乘数同时右移一位; 0.0000 0.0000 乘数乘数y yn n0 0, 加加0 0; 0.1001 0.1001 0.0100 0.0100 1 1 11 1 1 1 1 部分积与乘数同时右移一位部分积与乘数同时右移一位 0.1101 0.1101 乘数乘数y yn n1 1, 加加x x; 1.0001 1.0001 0.1000 0.1000 1 1 1 11 1 1 1 部分积与乘数同时右移一位,部分积与乘数同时右移一位, 运算了运算了4 4次,计算结束。次,计算结束。2022-5-2358 得:得:|x|xy|y|0.100011

50、110.10001111 加上符号部分得:加上符号部分得:xxyy原原1.10001111 1.10001111 即即:x xy y0.100011110.100011112022-5-2359原码一位乘法算法的硬件逻辑电路原码一位乘法算法的硬件逻辑电路 寄存器A C Cn ALU 1 寄存器B CR & 移 位 脉 冲 时钟脉冲 CT 启动 结束 Q Cn S R & Cj Cn Bf Cf Af Q 2022-5-2360 A A寄存器:存放部分积高位部分,初始为寄存器:存放部分积高位部分,初始为0 0 B B寄存器:存放被乘数寄存器:存放被乘数 C C寄存器:存放乘数和部

51、分积低位部分,初始为寄存器:存放乘数和部分积低位部分,初始为乘数乘数 CRCR:计数器。用于记录乘法次数:计数器。用于记录乘法次数 运算初始时,运算初始时,CRCR0 0,每进行一次运算,每进行一次运算CRCR1 1,当,当计数到计数到CRCRn n时,时,将将C CT T清清0 0,结束运算,结束运算。 C Cj j:进位位:进位位 C CT T:乘法控制触发器,:乘法控制触发器, C CT T1 1,允许发出移位脉冲,进行乘法运算,允许发出移位脉冲,进行乘法运算 C CT T0 0,不允许发出移位脉冲,停止乘法运算,不允许发出移位脉冲,停止乘法运算2022-5-2361 寄存器寄存器C C

52、通常是具有左移、右移功能的移通常是具有左移、右移功能的移位寄存器。位寄存器。 寄存器寄存器A A一般不具有移位功能,部分积的一般不具有移位功能,部分积的移位采用斜送的方法实现移位。移位采用斜送的方法实现移位。2022-5-2362具有左、右斜送和直接传送的移位器具有左、右斜送和直接传送的移位器 FiFi:加法器的:加法器的i i位输出位输出 A2FA2F: 左移控制信号左移控制信号 A1/2FA1/2F:右移控制信号:右移控制信号 AFAF: 直接传送控制信号直接传送控制信号 1 A 21F Fi1 Fi Fi1 A 2F A F Ai 图 3-8 实 现 移 位 功 能 的 逻 辑 电 路

53、2022-5-2363原码一位乘法的运算流程原码一位乘法的运算流程 B |被 乘 数 |, C |乘 数 | A、 CR、 Cj 0 Cn 1? A21(A 0), C21C A21(A B), C21C CR CR 1 CR n? Af Bf Cf Y N 开 始 结 束 2022-5-23642. 2. 原码两位乘法原码两位乘法 多位乘法的思想多位乘法的思想 原码一位乘法每次判别乘数的一位,因此原码一位乘法每次判别乘数的一位,因此n n位位乘数需做乘数需做n n次加法与移位,从而使乘法速度较次加法与移位,从而使乘法速度较慢。如果一次判别乘数的多位,就会提高乘法慢。如果一次判别乘数的多位,就

54、会提高乘法速度。速度。 原码两位乘法的算法原码两位乘法的算法: 每次判别乘数的两位,将一位乘法中的两步用每次判别乘数的两位,将一位乘法中的两步用一步替代一步替代。2022-5-2365原码两位乘法的算法原码两位乘法的算法Y Yn-1n-1Y Yn n部分积部分积 Z Zi i 0 0 0 0 (Z(Zi-1i-10)0)0=1/4(Z0=1/4(Zi-1i-10)0) 0 1 0 1 (Z(Zi-1i-1x)x)0=1/4(Z0=1/4(Zi-1i-1x)x) 1 0 1 0 (Z(Zi-1i-10)0)x=1/4(Zx=1/4(Zi-1i-12x)2x) 1 1 1 1 (Z(Zi-1i-1

55、x)x)x=x=1/4(Z1/4(Zi-1i-13x)3x)= =1/4(Z1/4(Zi-1i-1x)x)x x2022-5-2366 由于加三倍被乘数难以实现,所以需要进行适由于加三倍被乘数难以实现,所以需要进行适当变换。当变换。 本次仅本次仅作作1/4(Z1/4(Zi-1i-1x)x),x x到下次再做,本次到下次再做,本次先欠着。为此设一个欠帐触发器先欠着。为此设一个欠帐触发器C CJ J,记录本次,记录本次欠帐的情况。欠帐的情况。 若若C CJ J1 1,则下次需多加一个,则下次需多加一个x x C CJ J0 0,下次就不,下次就不多加多加x x2022-5-2367Y Yn n1

56、1Y Yn nC CJ J操操 作作0 0 00 0 0ZZi-1 i-1 C CJ J000 0 10 0 1(Z(Zi-1i-1x x) ) C CJ J0 0 还上次欠帐还上次欠帐0 1 00 1 0(Z(Zi-1i-1x x) ) C CJ J000 1 10 1 1(Z(Zi-1i-12x2x) ) C CJ J0 0 还上次欠帐还上次欠帐1 0 01 0 0(Z(Zi-1i-12x2x) ) C CJ J001 0 11 0 1(Z(Zi-1i-1x x) ) C CJ J1 1 为了为了3x3x,欠帐,欠帐1 1 01 1 0(Z(Zi-1i-1x x) ) C CJ J1 1

57、留下欠帐留下欠帐1 1 11 1 1ZZi-1 i-1 C CJ J1 1 还上次欠帐,再留下欠帐还上次欠帐,再留下欠帐原码两位乘法的运算规则原码两位乘法的运算规则2022-5-2368原码两位乘法的运算次数的控制方法原码两位乘法的运算次数的控制方法 当数值部分长度当数值部分长度n n为奇数时,将乘数加一为奇数时,将乘数加一符号且为符号且为0 0,以便形成偶数位,此时共,以便形成偶数位,此时共做做(n(n1)/21)/2次运算次运算,最后一次仅移一位最后一次仅移一位。 若数值部分长度若数值部分长度n n为偶数,则为偶数,则共做共做n/2n/2次。次。 若最后一次若最后一次C CJ J仍为仍为1

58、 1,则需再做一次加,则需再做一次加x x操操作,以便还清欠帐作,以便还清欠帐。2022-5-2369 因为在二位乘法中,需要作因为在二位乘法中,需要作2x2x,即左移,即左移2 2位,位,会侵占符号位。而作加法时,进位不能丢失,会侵占符号位。而作加法时,进位不能丢失,所以二位乘法需要使用三个符号位。所以二位乘法需要使用三个符号位。 000 000 表示表示 111 111 表示表示 注意:注意: 操作数本身的符号不参加运算操作数本身的符号不参加运算。在运算初。在运算初始时,被乘数和乘数的符号位均为始时,被乘数和乘数的符号位均为000000。 因为在运算过程中,需要作因为在运算过程中,需要作x

59、 x操作,因此操作,因此在作减法时,需要用到在作减法时,需要用到-|x|-|x|补补。2022-5-2370 例例3.10 3.10 按原码两位乘法的算法,计算按原码两位乘法的算法,计算xxyy原原。 xx原原0.11010.1101,yy原原1.1011 1.1011 x x原原1.011011.01101,yy原原1.10111 1.10111 解:解: |x|x|000.1101000.1101,|y|y|0.10110.1011, |x|x|补补1.00111.0011111.0011 111.0011 2|x|2|x|001.1010 001.1010 积的符号积的符号 z zf f

60、0 01 11 1。 2022-5-2371 部分积部分积 乘数乘数 C CJ J 说明说明 000.0000 1 0 000.0000 1 0 1 11 1 0 0 初始部分积初始部分积 Z Z0 00 0 111.0011 111.0011 y yn n1 1y yn nC CJ J110110, 减减x x;C CJ J1 1; 111.0011 111.0011 111.1100 111.1100 1 11 1 1 01 0 1 1 部分积与乘数同时右移两位;部分积与乘数同时右移两位; 111.0011 111.0011 y yn n1 1y yn nC CJ J101101, 减减x x;C CJ J1 1; 110.1111 110.1

温馨提示

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

评论

0/150

提交评论