版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-3-1 第7版 2011.091第第 3 3 章章 运算方法与运算器运算方法与运算器2022-3-12本章学习内容 基本算术逻辑运算电路基本算术逻辑运算电路 定点加、减、乘、除运算定点加、减、乘、除运算 浮点加、减、乘、除运算浮点加、减、乘、除运算 十进制数的运算十进制数的运算2022-3-133.1 3.1 运算器的设计方法运算器的设计方法 运算器所具有的只是简单的算术、逻辑运算器所具有的只是简单的算术、逻辑运算以及移位、计数等功能。运算以及移位、计数等功能。 计算机中对数据信息的加工的基本思想:计算机中对数据信息的加工的基本思想: 将各种复杂的运算处理分解为最基本的将各种复杂的运
2、算处理分解为最基本的算术运算和逻辑运算。算术运算和逻辑运算。 例如在算术运算中,可以通过补码运算例如在算术运算中,可以通过补码运算将减法化为加法;利用加减运算与移位将减法化为加法;利用加减运算与移位功能的配合实现乘除运算;通过阶码与功能的配合实现乘除运算;通过阶码与尾数的运算组合实现浮点运算。尾数的运算组合实现浮点运算。 2022-3-14运算器逻辑组织结构设计的层次运算器逻辑组织结构设计的层次 根据机器的字长,将根据机器的字长,将N个一位全加器通过加个一位全加器通过加法进位链连接构成法进位链连接构成N位并行加法器。位并行加法器。 利用多路选择逻辑在加法器的输入端实现多利用多路选择逻辑在加法器
3、的输入端实现多种输入组合,将加法器扩展为多功能的算术种输入组合,将加法器扩展为多功能的算术/ /逻逻辑运算部件。辑运算部件。 根据乘除运算的算法,将加法器与移位器组根据乘除运算的算法,将加法器与移位器组合,构成定点乘法器与除法器。将计算定点整合,构成定点乘法器与除法器。将计算定点整数的阶码运算器和计算定点小数的尾数运算器数的阶码运算器和计算定点小数的尾数运算器组合构成浮点运算器。组合构成浮点运算器。 在算术在算术/逻辑运算部件的基础上,配合各类相逻辑运算部件的基础上,配合各类相关的寄存器,构成计算机中的运算器。关的寄存器,构成计算机中的运算器。 2022-3-153.2 3.2 定点补码加减运
4、算定点补码加减运算 原码加减运算规则:原码加减运算规则: 首先判断参加运算的两个操作数的符号,再根首先判断参加运算的两个操作数的符号,再根据操作的要求决定进行相加还是相减操作。运据操作的要求决定进行相加还是相减操作。运算时,符号位不参加运算,只有两数的绝对值算时,符号位不参加运算,只有两数的绝对值参加运算。最后根据两个操作数绝对值的大小参加运算。最后根据两个操作数绝对值的大小决定结果的符号。决定结果的符号。 大多数计算机中只设置加法器大多数计算机中只设置加法器 做原码减法运算时做原码减法运算时用用|x|x|y|y|变补变补代替代替|x|x|y|y|2022-3-16原码加减运算步骤原码加减运算
5、步骤 判断参加运算的两个操作数的符号,决定进判断参加运算的两个操作数的符号,决定进行相加还是相减操作。行相加还是相减操作。 取参加运算的操作数的绝对值。取参加运算的操作数的绝对值。 若做加法,则两数直接相加;若做减法,则若做加法,则两数直接相加;若做减法,则将减数先变一次补,再进行加法运算。将减数先变一次补,再进行加法运算。2022-3-17 运算结果的处理:运算结果的处理: 加法运算:加法运算: 无进位,即得到正确结果。无进位,即得到正确结果。 有进位,结果溢出。有进位,结果溢出。 减法运算:减法运算: 有进位,结果为正,即得到正确结果。有进位,结果为正,即得到正确结果。 无进位,结果为负,
6、需将结果再变一次补,无进位,结果为负,需将结果再变一次补, 得到正确结果。得到正确结果。 取绝对值大的操作数的符号作为结果的符号,取绝对值大的操作数的符号作为结果的符号,给结果加上符号位。给结果加上符号位。2022-3-183.2.1 3.2.1 补码运算的基础补码运算的基础 由于原码加减算法复杂,而补码表示可以把由于原码加减算法复杂,而补码表示可以把加法、减法均转换为加法,大大简化了加减加法、减法均转换为加法,大大简化了加减运算算法,所以在计算机中均采用补码加减运算算法,所以在计算机中均采用补码加减运算。运算。 补码运算补码运算:参加运算的操作数均用补码表示:参加运算的操作数均用补码表示并且
7、运算结果也以补码表示。并且运算结果也以补码表示。2022-3-191. 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-3-110 以定点小数为例证明式以定点小数为例证明式(3-1
8、)(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-3-111 (2) (2) 设设x0 x0,y y0 0 且且 |x|y|x|y| 由补码定义由补码定义 xx补补x x,yy补补2 2y (mod2)y (mod2) 得:得:xx补
9、补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-3-112 (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-3-113 (4)(4)设设x x0
10、 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-3-114 补码减法的基本关系:补码减法的基本关系: xx补补yy补补xx补补 yy补补xxy
11、y补补 (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-3-115 以定点小数为例证明式以定点小数为例证明式(3-2)(3-2)的正确性。的正确性。 根据式根据式(3-1)(3-1),可知:,可知: xx补补 yy补补xx( (y)y)补补xxyy补补 xxyy补补x
12、x补补yy补补 xx补补 yy补补xxyy补补, xx补补yy补补xx补补 yy补补xxyy补补 只要证明只要证明 yy补补yy补补成立,成立, 由由xx补补yy补补xx补补 yy补补xxyy补补 就可得式就可得式(3-2)(3-2)成立。成立。2022-3-116 证明:证明: 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补补xx补补0 0 yy补补 yy补补20
13、22-3-117 参加运算的各个操作数均以补码表示,运算参加运算的各个操作数均以补码表示,运算结果仍以补码表示。结果仍以补码表示。 符号位与数值位一样参加运算。符号位与数值位一样参加运算。 若求和,则将两补码数直接相加,得到两数若求和,则将两补码数直接相加,得到两数之和的补码;之和的补码; 若求差,则将减数变补若求差,则将减数变补( (由由yy补补求求 yy补补) ),然后与被减数相加,得到两数之差的补码。然后与被减数相加,得到两数之差的补码。 补码总是对确定的模而言,若运算结果超过补码总是对确定的模而言,若运算结果超过模模( (有从符号位上产生的进位有从符号位上产生的进位) ),则将模自动丢
14、掉。,则将模自动丢掉。补码运算的基本规则补码运算的基本规则2022-3-118 例例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.01000.01001 1丢模丢模 xx
15、yy补补xx补补 yy补补0.10010.10011.10111.10110.01000.0100 x xy y0.01000.01002022-3-119 例例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.11011.01111.01111.10101
16、.10100.00110.00111.11011.11011 1丢模丢模 xxyy补补xx补补 yy补补1.10101.10100.00110.00111.11011.1101 x xy y0.00110.00112022-3-120 例例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.00111 1 结果溢出结果溢出2022-
17、3-121 例例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-3-122 如果两个正数相加,得到结果的符号为负;两个如果两个正数相加,得到结果的符号为负;两个负数相加,得到的结果为正,则运算结果是错误负数相加,得到的结果为正,则运算结果是错误的。的。 造成错误的原因,是因为运算结果超出
18、了机器所造成错误的原因,是因为运算结果超出了机器所能表示的数据范围,数值位侵占了符号位,正确能表示的数据范围,数值位侵占了符号位,正确符号被挤走了。符号被挤走了。 正溢出正溢出:两个正数相加的结果超出机器所能表示:两个正数相加的结果超出机器所能表示的最大正数。的最大正数。 负溢出负溢出:两个负数相加的结果小于机器所能表示:两个负数相加的结果小于机器所能表示的最小负数。的最小负数。 出现溢出后,机器将无法正确表示,因此必须正出现溢出后,机器将无法正确表示,因此必须正确判别溢出并及时加以处理。确判别溢出并及时加以处理。2022-3-123 3.2.2 3.2.2 溢出判别与变形补码溢出判别与变形补
19、码 设参加运算的操作数为设参加运算的操作数为 xx补补x xf f.x.x1 1x x2 2xxn n y y补补y yf f.y.y1 1y y2 2yyn n xx补补yy补补的和为:的和为: ss补补s sf f.s.s1 1s s2 2ssn n 发生溢出时发生溢出时 OVROVR1 1 常用判断溢出的方法常用判断溢出的方法 1. 1. 根据两个操作数的符号与结果的符号判别溢出根据两个操作数的符号与结果的符号判别溢出 由于参加运算的数都是定点数,所以只有两数同号由于参加运算的数都是定点数,所以只有两数同号时相加才可能溢出。所以溢出的条件为:时相加才可能溢出。所以溢出的条件为: OVRO
20、VRx 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-3-1241.00111.00111.01011.01010.10000.10001 1 如如 x xf fy yf fs sf fx xf fy yf fs sf f 1 1 C Cf fCC1 11 1 2. 2. 根据两数相加时产生的进位判别溢出根据两数相加时产生的进位判别溢出 设设C Cf f为符号位上产生的进位,为符号位上产生的进
21、位,C C1 1为最高数值位为最高数值位上产生的进位,则溢出的条件为:上产生的进位,则溢出的条件为: OVROVRC Cf fC C1 1C Cf fC C1 1C Cf fCC1 1 (3-4) (3-4) 即若进入符号位的进位和从符号位上产生的进即若进入符号位的进位和从符号位上产生的进位不相等,则产生溢出。位不相等,则产生溢出。 有的资料中将有的资料中将C Cf f写为写为C C0 0,所以溢出条件为,所以溢出条件为 OVROVRC C0 0C C1 1C C0 0C C1 1C C0 0CC1 12022-3-125溢出判断电路溢出判断电路&=1=1XfSfYfOVR=1OVRC
22、fC12022-3-1263. 3. 采用变形补码进行运算采用变形补码进行运算 使用一个符号位进行运算,当出现溢出时,正确使用一个符号位进行运算,当出现溢出时,正确的符号将被数值位侵占,符号位含义就会发生混的符号将被数值位侵占,符号位含义就会发生混乱。如果采用两个符号位进行运算,即使因出现乱。如果采用两个符号位进行运算,即使因出现溢出侵占了一个符号位,仍能保持最左边符号是溢出侵占了一个符号位,仍能保持最左边符号是正确的。正确的。 变形补码变形补码:用两个符号位表示的补码。也称:用两个符号位表示的补码。也称双符双符号位补码号位补码。 2022-3-127变形补码的定义变形补码的定义 纯小数的变形
23、补码纯小数的变形补码 纯整数的变形补码纯整数的变形补码 4) (mod 0 x1- x41x0 xx变形补 )2 (mod 0 x2- x22x0 xx2nn2nn变形补2022-3-128 变形补码的形式:变形补码的形式: xx变形补变形补x xf1f1x xf2f2.x.x1 1x x2 2xxn n 设和的变形补码为设和的变形补码为 ss变形补变形补s sf1f1s sf2f2.s.s1 1s s2 2ssn n 变形补码的溢出判断条件:变形补码的溢出判断条件: OVROVRs sf1f1ssf2f2 即当结果的两个符号位不一致时,出现溢出。即当结果的两个符号位不一致时,出现溢出。其中:
24、其中: s sf1f1s sf2f200 00 或或 11 11 表示正常补码表示正常补码 s sf1f1s sf2f201 01 表示正溢出表示正溢出 s sf1f1s sf2f210 10 表示负溢出表示负溢出2022-3-129 例例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.010100.010100.111000.1110 xxyy变形补变形补00.100100.100100.010100.
25、010100.111000.1110 x xy y0.11100.11102022-3-130 例例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.110111.011111.0111 x xy y0.10010.10012022-3-131 例例3.7 3.7 x x0.
26、10100.1010,y y0.10010.1001 x x0.11010.1101,y y0.10110.1011 求求x xy y? 解:解: x x变形补变形补00.101000.1010, yy变形补变形补00.100100.1001, xxyy变形补变形补00.101000.101000.100100.1001 s sf1f1ssf2f21 1 运算结果溢出运算结果溢出00.101000.101000.100100.100101.001101.0011正溢出正溢出2022-3-132 x x变形补变形补11.001111.0011, yy变形补变形补11.010111.0101, x
27、xyy变形补变形补11.001111.001111.010111.0101 s sf1f1ssf2f21 1 运算结果溢出运算结果溢出11.001111.001111.010111.010110.100010.10001 1负溢出负溢出2022-3-133 分析分析s sf1f1、s sf2f2的含义可知,无论运算结果的含义可知,无论运算结果是否产生溢出,第一符号位是否产生溢出,第一符号位s sf1f1始终指示始终指示结果的正确的正负符号。结果的正确的正负符号。 变形补码在正常情况下,变形补码在正常情况下,s sf1f1s sf2f2 ,所以,所以存储数据时采用正常补码,只在运算时存储数据时采
28、用正常补码,只在运算时采用变形补码,以便判别溢出。采用变形补码,以便判别溢出。 变形补码的溢出判断电路:变形补码的溢出判断电路:=1OVRSf1Sf22022-3-1343.2.3 3.2.3 算术逻辑运算部件算术逻辑运算部件 运算器的基本功能是进行算术逻辑运算,运算器的基本功能是进行算术逻辑运算,其最基本也是最核心的部件是加法器。其最基本也是最核心的部件是加法器。 在加法器的输入端加入多种输入控制功能,在加法器的输入端加入多种输入控制功能,就能将加法器扩展为多功能的算术就能将加法器扩展为多功能的算术/逻辑运逻辑运算部件。算部件。 2022-3-1351. 1. 补码加减运算的逻辑实现补码加减
29、运算的逻辑实现 根据根据 AA补补BB补补AABB补补 AA补补BB补补AA补补 BB补补 AA补补BB补补1 1AABB补补 补码加减运算的硬件实现电路的基本原理仍是补码加减运算的硬件实现电路的基本原理仍是加法器,只要在加法器的加法器,只要在加法器的A A、 B B输入端增加控制输入端增加控制信号,即可控制实现加法和减法。信号,即可控制实现加法和减法。 B1 B1B B 在需要作减法时,将输入到加法器在需要作减法时,将输入到加法器B B端的内端的内容的取反(容的取反(B1B1)后送入加法器,并使最低进)后送入加法器,并使最低进位位C C0 01 1,即可实现减法运算。,即可实现减法运算。20
30、22-3-136采用串行进位的补码加减运算逻辑电路采用串行进位的补码加减运算逻辑电路 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-3-137 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异或,异或,B Bi i11B Bi i, C C0 01 1 作作 A AB B 电路中采用进出符号位的进位进行溢出判断。电路中采用进出
31、符号位的进位进行溢出判断。 OVROVRC Cn nCCn n1 12022-3-1382. 2. 实现补码加减运算的逻辑电路实现补码加减运算的逻辑电路 在实际应用中,两个操作数需要存放在在实际应用中,两个操作数需要存放在寄存器中,运算时送到运算器中进行运寄存器中,运算时送到运算器中进行运算,运算结果再送到寄存器中保存。算,运算结果再送到寄存器中保存。 在实际的运算器中,参加运算的操作数在实际的运算器中,参加运算的操作数和运算结果通常都存放在寄存器中,控和运算结果通常都存放在寄存器中,控制器通过对指令译码得到控制信号,控制器通过对指令译码得到控制信号,控制将操作数输入加法器及将运算结果写制将操
32、作数输入加法器及将运算结果写回寄存器。回寄存器。 2022-3-139 并行加法器 F C01 & A Q Q FA B Q Q FB FB & 1 & AF 补码加减运算的逻辑电路补码加减运算的逻辑电路 A(A)A(A)(B) (B) 2022-3-140 A A寄存器:运算前存放操作数,运算后存放运寄存器:运算前存放操作数,运算后存放运算结果。也称为累加器。算结果。也称为累加器。 B B寄存器:有两个输出端寄存器:有两个输出端 B B 和和 B B 。 由加、减法指令控制产生由加、减法指令控制产生ADDADD和和SUBSUB信号。信号。 执行加法指令:执行加法指令:
33、ADDADD1 1 执行减法指令:执行减法指令:SUBSUB1 1 ADDADD0 & SUB0 & SUB0 0 执行的不是加、减法指令执行的不是加、减法指令 参加运算的两个补码数分别存放在寄存器参加运算的两个补码数分别存放在寄存器A A、B B中,运算结果保存在寄存器中,运算结果保存在寄存器A A中。中。2022-3-141 运算控制信号的逻辑条件为:运算控制信号的逻辑条件为: FAFAADDADDSUBSUB FB FBADDADD FB FBSUBSUB C C0 011SUB SUB AF AFADDADDSUBSUB2022-3-1422. 2. 算术逻辑运算部件举
34、例算术逻辑运算部件举例 除了加减运算,运算器还需要完成其它算除了加减运算,运算器还需要完成其它算术逻辑运算,在加法器的输入端加以多种术逻辑运算,在加法器的输入端加以多种输入控制,就可以将加法器的功能进行扩输入控制,就可以将加法器的功能进行扩展。展。 算术逻辑运算单元(简称算术逻辑运算单元(简称ALUALU)是一种以)是一种以加法器为基础的多功能组合逻辑电路。加法器为基础的多功能组合逻辑电路。 ALUALU的的基本设计思想基本设计思想:在加法器的输入端:在加法器的输入端加入一个函数发生器,这个函数发生器可加入一个函数发生器,这个函数发生器可以在多个控制信号的控制下,为加法器提以在多个控制信号的控
35、制下,为加法器提供不同的输入函数,从而构成一个具有较供不同的输入函数,从而构成一个具有较完善的算术逻辑运算功能的运算部件。完善的算术逻辑运算功能的运算部件。 2022-3-143ALUALU组件组件 SN74181 SN74181 F3 F2 F1 F0 SN74181 4 位 ALU S3 S2 S1 S0 M Cn4 AB G P B3B2B1B0 A3A2A1A0Cn 图 3-4 SN74181 的外部特性图 2022-3-144 SN74181SN74181: 4 4位位ALUALU组件,可以实现组件,可以实现1616种算术运算功种算术运算功能和能和1616种逻辑运算功能,其具体功能由
36、种逻辑运算功能,其具体功能由S S3 3S S2 2S S1 1S S0 0和和M M信号控制实现信号控制实现, ,见见P77 P77 表表3-13-1。 SN74181SN74181有正逻辑和负逻辑两种芯片。有正逻辑和负逻辑两种芯片。 图图3-43-4为采用负逻辑方式工作的为采用负逻辑方式工作的SN74181SN74181芯片的外部特性。芯片的外部特性。 2022-3-145 A A3 30 0、B B3 30 0:参加运算的两组:参加运算的两组4 4位操作数;位操作数; C Cn n:低位来的进位;:低位来的进位; F F3 30 0:输出的运算结果;:输出的运算结果; C Cn n4 4
37、:向高位的进位;:向高位的进位; G G:小组本地进位;:小组本地进位; P P:小组传递函数;:小组传递函数; A AB B:两个操作数的相等。:两个操作数的相等。 如果将多个如果将多个7418174181的的“A AB”B”端按端按“与与”逻逻辑连接,就可以检测两个字长超过辑连接,就可以检测两个字长超过4 4位的操位的操作数的相等情况。作数的相等情况。2022-3-146 S S3 3S S2 2S S1 1S S0 0:控制产生:控制产生1616种不同的逻辑函数;种不同的逻辑函数; M M:控制芯片执行算术运算还是逻辑运算。:控制芯片执行算术运算还是逻辑运算。 M M0 0:允许加法器位
38、间进位,执行算术运:允许加法器位间进位,执行算术运算;算; M M1 1:封锁加法器位间进位,执行逻辑运:封锁加法器位间进位,执行逻辑运算。算。2022-3-147 多片多片SN74181SN74181组合,可以构成更多位数的组合,可以构成更多位数的ALUALU。 将将SN74181SN74181与并行进位链芯片与并行进位链芯片SN74182SN74182配合,配合,可以组成快速的并行加法器。可以组成快速的并行加法器。 SN74182 P3 G3 C12 P2G2 C8 P1G1 C4 P0G0 C0 74181 74181 74181 74181 74181 C0 P G 2022-3-14
39、83.3 3.3 定点乘法运算定点乘法运算 计算机中实现乘除运算通常采用以下三计算机中实现乘除运算通常采用以下三种方式:种方式: 利用乘除运算子程序利用乘除运算子程序 在加法器的基础上增加左、右移位及在加法器的基础上增加左、右移位及计数器等逻辑线路构成乘除运算部件。计数器等逻辑线路构成乘除运算部件。 设置专用的阵列乘除运算器设置专用的阵列乘除运算器 2022-3-149 3 3.3.1 .3.1 原码乘法运算原码乘法运算 原码乘法:原码乘法:参加运算的被乘数和乘数均用参加运算的被乘数和乘数均用原码表示;运算时符号位单独处理,原码表示;运算时符号位单独处理,被乘被乘数与乘数的绝对值相乘;所得的积
40、也采用数与乘数的绝对值相乘;所得的积也采用原码表示。原码表示。 在定点机中,两个数的原码乘法运算包括:在定点机中,两个数的原码乘法运算包括: 乘积的符号处理乘积的符号处理 两数绝对值相乘两数绝对值相乘2022-3-150 设设 被乘数:被乘数:x原原xf . x1x2xn 乘数:乘数: y原原yf . y1y2yn 乘积:乘积: z原原x原原y原原 xy原原zf . z1z2zn 根据根据“同号相乘,乘积为正;异号相乘,乘积同号相乘,乘积为正;异号相乘,乘积为负为负”,得乘积的符号:,得乘积的符号: zfxf yf2022-3-151 例例3.83.8:x x0.11010.1101,y y0
41、.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-3-152 从例从例3.83.8可以看出,两个可以看出,两个4 4位数相乘得位数相乘得8 8位乘积,位乘积,共共4 4个部分积需个部分积需8 8位加法器相加。位加
42、法器相加。 由此可见,两个由此可见,两个n n位数相乘,得位数相乘,得2n2n位乘积,共有位乘积,共有n n个部分积。个部分积。 2n 2n位乘积需用位乘积需用2n2n位加法器进行相加运算。位加法器进行相加运算。 两个两个n n位数相乘位数相乘, ,需需n n个寄存器保存个寄存器保存n n个部分积。个部分积。 显然所需硬件太多,不适合用硬件去实现,为显然所需硬件太多,不适合用硬件去实现,为此需对算法加以改进。此需对算法加以改进。2022-3-1531. 1. 一位原码乘法运算一位原码乘法运算 设参加运算的设参加运算的被乘数为被乘数为 x x0.x0.x1 1x x2 2xx4 4,乘数为乘数为
43、 y y0.y0.y1 1y y2 2yy4 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 xy y2 2x xy y1 1 2 2-1-122-1-122-2-2x xy y4 42 2-1-1x xy y3
44、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-3-154 根据上式,可将乘法转换为一系列加法与移位根据上式,可将乘法转换为一系列加法与移位操作。将递推公式推广到操作。将递推公式推广到n n位,得:位,得: Z Z0 00 0 (初始部分积为(初始部分积为0 0) Z Z1 12 2-1-1(Z(Z0 0 xyxyn n) ) Z Z2
45、 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-3-155原码一位乘法的算法原码一位乘法的算法 积的符号单独按两操作数的符号模积的符号单独按两操作数的符号模2 2加(异或)加(异或)得到。用被乘数和乘数的数值部分进行运算。得到。用被乘数和乘数的数值部分进行运算。 以乘数的最低位作为乘法判别位,若判
46、别位以乘数的最低位作为乘法判别位,若判别位为为1 1,则在前次部分积(初始部分积为,则在前次部分积(初始部分积为0 0)上加)上加上被乘数,然后连同乘数一起右移一位;若判上被乘数,然后连同乘数一起右移一位;若判别位为别位为0 0,则在前次部分积上加,则在前次部分积上加0 0(或不加),(或不加),然后连同乘数一起右移一位。然后连同乘数一起右移一位。 重复第重复第步直到运算步直到运算n n次为止。次为止。(n n为乘数数为乘数数值部分的长度)值部分的长度) 将乘积的符号与数值部分结合,即可得到最将乘积的符号与数值部分结合,即可得到最终结果。终结果。 2022-3-156 例例3.9 3.9 设设
47、 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.1011 数值部分为数值部分为4 4位,共需运算位,共需运算4 4次。次。 2022-3-157 部分积部分积 乘数乘数 y
48、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 1 1 0 0 部分积与乘数同时右移一位;部分积与乘数同时右移一位; 0.0000 0.0000 乘数乘数y yn n0
49、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-3-158 得:得:|x|xy|y|0.100011110.10001111 加上符号部分得:加上符号部分得:xxyy原原1.10001111 1.10001111 即:即:x
50、 xy y0.100011110.100011112022-3-159原码一位乘法算法的硬件逻辑电路原码一位乘法算法的硬件逻辑电路 寄存器A C Cn ALU 1 寄存器B CR & 移 位 脉 冲 时钟脉冲 CT 启动 结束 Q Cn S R & Cj Cn Bf Cf Af Q 2022-3-160 A A寄存器:存放部分积高位部分,初始为寄存器:存放部分积高位部分,初始为0 0 B B寄存器:存放被乘数寄存器:存放被乘数 C C寄存器:存放乘数和部分积低位部分,初始为寄存器:存放乘数和部分积低位部分,初始为乘数乘数 CRCR:计数器。用于记录乘法次数:计数器。用于记录乘法
51、次数 运算初始时,运算初始时,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-3-161 寄存器寄存器C C通常是具有左移、右移功能的移通常是具有左移、右移功能的移位寄存器。位寄存器。 寄存器寄存器A A一般不具有移位功能,部分积的一
52、般不具有移位功能,部分积的移位采用斜送的方法实现移位。移位采用斜送的方法实现移位。2022-3-162具有左、右斜送和直接传送的移位器具有左、右斜送和直接传送的移位器 FiFi:加法器的:加法器的i i位输出位输出 A2FA2F: 左移控制信号左移控制信号 A1/2FA1/2F:右移控制信号:右移控制信号 AFAF: 直接传送控制信号直接传送控制信号 1 A 21F Fi1 Fi Fi1 A 2F A F Ai 图 3-8 实 现 移 位 功 能 的 逻 辑 电 路 Ff.F1F2F3F42022-3-163原码一位乘法的运算流程原码一位乘法的运算流程 B |被 乘 数 |, C |乘 数 |
53、 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-3-164作业作业 用原码一位乘法完成用原码一位乘法完成 P132 3.4 (2) (3)2022-3-1653.2.2 3.2.2 补码乘法运算补码乘法运算 因为补码加减运算简单,在实际机器中因为补码加减运算简单,在实际机器中都采用补码加减运算,因此不少机器也都采用补码加减运算,因此不少机器也采用补码乘法,以减少原码与补码之间采用补码乘法,以减少原码与补码之间的不断转换。的不断转换。 计算机中常用的补码乘法算法,称为
54、比计算机中常用的补码乘法算法,称为比较法或加减交替乘法。因为是由布斯夫较法或加减交替乘法。因为是由布斯夫妇提出的,所以也称布斯乘法。妇提出的,所以也称布斯乘法。2022-3-1661.1.补码一位乘法补码一位乘法 以定点小数为例以定点小数为例. . 设被乘数设被乘数x x的补码为的补码为 xx补补x x0 0.x.x1 1x x2 2x xn n, 乘数乘数y y的补码为的补码为 yy补补y y0 0.y.y1 1y y2 2y yn n, 乘积为乘积为ZZ补补xxyy补补。 被乘数被乘数x x的符号任意,乘数的符号任意,乘数y y为正数,即:为正数,即: xx补补x x0 0.x.x1 1x
55、 x2 2x xn n yy补补0.y0.y1 1y y2 2y yn n 有:有:xx补补2 2x x2 2n n1 1x x (Mod 2Mod 2) yy补补y y 2022-3-167 xx补补yy补补2 2n n1 1y yx xy y 2 2(y(y1 1y y2 2yyn n) )x xy y (Mod 2Mod 2) y y1 1y y2 2yyn n为大于为大于0 0的正整数,根据模的正整数,根据模2 2性质:性质: 2 2(y(y1 1y y2 2yyn n) )2 2 (Mod 2Mod 2) xx补补yy补补2 2x xy yxxyy补补 y y0 0,yy补补y y,
56、y y0 00 0 x xyy补补xx补补yy补补xx补补y y xx补补(0.y(0.y1 1y y2 2yyn n) )xx补补 n1iii2y2022-3-168 设被乘数设被乘数x x的符号任意,乘数的符号任意,乘数y y为负数:为负数: xx补补x x0 0.x.x1 1x x2 2xxn n yy补补1.y1.y1 1y y2 2yyn n2 2y y (Mod 2Mod 2) y yyy补补2 20.y0.y1 1y y2 2yyn n1 1 x xy yx x(0.y(0.y1 1y y2 2yyn n) )x x, 得:得:xxyy补补xx(0.y(0.y1 1y y2 2y
57、yn n)补补xx补补 0.y 0.y1 1y y2 2yyn n0 0, x x(0.y(0.y1 1y y2 2yyn n)补补xx补补(0.y(0.y1 1y y2 2yyn n) ) 得:得:xxyy补补xx补补(0.y(0.y1 1y y2 2yyn n) )xx补补 2022-3-169 设被乘数设被乘数x x和乘数和乘数y y均为的任意符号数,将情况均为的任意符号数,将情况、综合,可得:综合,可得: xxyy补补xx补补(0.y(0.y1 1y y2 2yyn n) )xx补补y y0 0 xx补补(0.y(0.y1 1y y2 2yyn ny y0 0) ) xx补补( (y
58、y0 0 ) ) y y0 0 xx补补2 21 1y y1 1xx补补2 22 2y y2 2xx补补 2 2n ny yn nxx补补 (y(y1 1y y0 0 )x )x补补2 21 1(y(y2 2y y1 1)x)x补补 2 22 2(y(y3 3y y2 2)x)x补补 2 2(n(n1)1)(y(yn ny yn n1 1)x)x补补2 2n n(y(yn n1 1y yn n)x)x补补 (初始(初始y yn n1 10 0) n1iii2y2022-3-170 令部分积的初始值令部分积的初始值 ZZ0 0 补补0 0,得部分积的递,得部分积的递推形式:推形式: ZZ0 0
59、补补0 0 (初始部分积为(初始部分积为0 0) ZZ1 1 补补2 21 1ZZ0 0 补补(y(yn n1 1y yn n)x)x补补 ZZ2 2 补补2 21 1ZZ1 1 补补(y(yn ny yn n1 1)x)x补补 ZZi i 补补2 21 1ZZi i1 1 补补(y(yn ni i2 2y yn ni i1 1)x)x补补 ZZn n 补补2 21 1ZZn n1 1 补补(y(y2 2y y1 1)x)x补补 ZZn n1 1 补补ZZn n 补补(y(y1 1y y0 0)x)x补补 xxyy补补 2022-3-171 (1) (1) 参加运算的数均以补码表示,符号位参加
60、运参加运算的数均以补码表示,符号位参加运算且部分积与被乘数采用双符号位。算且部分积与被乘数采用双符号位。 (2) (2) 乘数末位增设附加位乘数末位增设附加位y yn+1n+1,且初始,且初始y yn+1n+10 0。 (3) (3) 以以y yn ny yn+1n+1作为乘法判别位:作为乘法判别位: 若若y yn ny yn+1n+10000或或1111,则前次部分积,则前次部分积( (初始部分积为初始部分积为0)0)加加0(0(或不加或不加) ),然后连同乘数右移一位。,然后连同乘数右移一位。 若若y yn ny yn+1n+10101,则前次部分积加,则前次部分积加xx补补,然后连同乘,然后连同乘数右移一位;数右移一位; 若若y yn ny yn+1n+11010,则前次部
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国移动内蒙古公司春季校园招聘20人易考易错模拟试题(共500题)试卷后附参考答案
- 2026中国石化河南油田分公司毕业生招聘32人易考易错模拟试题(共500题)试卷后附参考答案
- 2026中国电信校园招聘岗位易考易错模拟试题(共500题)试卷后附参考答案
- 心脏骤停的急救技能竞赛
- 2026中国化学建设投资集团限公司所属单位公开招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2026中国人寿晴隆支公司银行招聘项目经理10人(贵州)易考易错模拟试题(共500题)试卷后附参考答案
- 咨询行业客户需求分析与管理方案
- 心肺复苏的全球视野与本土化
- 子痫紧急情况下的护理配合
- 26年寡转移用药选择指南
- 2026第18个防灾减灾日提高防灾减灾救灾能力宣传
- 2026年劳动工资统计考核试题题库及答案
- DB35∕2324-2026 畜禽养殖业污染排放与控制标准
- 2026青海海东市互助县招聘乡镇社会救助经办服务人员40人笔试参考试题及答案详解
- 2025年广东肇庆市地理生物会考真题试卷(+答案)
- 2026中国联合健康医疗大数据有限责任公司相关岗位招聘笔试历年参考题库附带答案详解
- 前交叉韧带过顶位重建技术共识解析2026
- 河北金融行业分析报告
- 血液内科三基三严考试题库及答案
- 【《中国智能手机出口现状分析概述》3000字】
- DB43-T 3447-2025 烟花爆竹生产企业对标改造技术指南
评论
0/150
提交评论