710 likes | 837 Views
第七章 数值运算. 本章需解决的关键问题: 如何以加法器为基础,实现各种 运算处理。 解决思路: 复杂运算. 四则运算. 加法运算. 解决方法: 在加法器的基础上, 增加移位传送 功能,并选择输入控制条件。. 主要内容:补码的定点加减运算,运算的溢出判断;定点一位乘法运算,定点一位除法运算;浮点的加、减、乘、除运算;进位链的产生原理,串行加法器,并行加法器的实现,运算器的基本结构。 重点:加法器的设计,运算器的分析,加减乘除运算过程描述。 难点:浮点数的规格化问题,加法器电路的设计,进位链的产生,运算器的加减乘除运算过程描述。.
E N D
第七章 数值运算 本章需解决的关键问题: 如何以加法器为基础,实现各种 运算处理。 解决思路: 复杂运算 四则运算 加法运算 解决方法: 在加法器的基础上,增加移位传送 功能,并选择输入控制条件。
主要内容:补码的定点加减运算,运算的溢出判断;定点一位乘法运算,定点一位除法运算;浮点的加、减、乘、除运算;进位链的产生原理,串行加法器,并行加法器的实现,运算器的基本结构。主要内容:补码的定点加减运算,运算的溢出判断;定点一位乘法运算,定点一位除法运算;浮点的加、减、乘、除运算;进位链的产生原理,串行加法器,并行加法器的实现,运算器的基本结构。 重点:加法器的设计,运算器的分析,加减乘除运算过程描述。 难点:浮点数的规格化问题,加法器电路的设计,进位链的产生,运算器的加减乘除运算过程描述。
第一节 算术逻辑运算基础 一、定点加减法运算 1、原码加减运算 实际操作取决于操作码和符号 不能将减法转换为加法
一、定点加减法运算 1、原码加减运算 若A、B为绝对值,则有: (+A)+(+B)=(+A)-(-B) (-A)+(-B)=(-A)-(+B) 同号相加、异号相减,实际执行的操作为绝对值相加,结果的符号为被加(减)数的符号。 (+A)+(-B)=(+A)-(+B) (-A)+(+B)=(-A)-(-B) 异号相加、同号相减,实际执行的操作为绝对值相减,结果的符号为实际结果的符号。 [X]原+[Y]原=[X+Y]原 ?不成立
第一节 定点加减运算 2、 补码加减运算 数用补码表示,符号位参加运算。 实际操作能否只取决于操作码? 结果需不需修正? 如何将减法转换为加法?
基本关系式 ( X + Y )补= X补+ Y补(1) ( X - Y )补= X补+ (-Y)补(2) 式(1):操作码为“加”时,两数直接相加。 例. 求(X+Y)补 1) X=3 Y=2 X补=0 0011 Y补=0 0010 2) X= –3 Y= –2 X补=1 1101 Y补=1 1110 0 0101 1 1011 (– 5补码) (+5补码) X补=0 0011 Y补=1 1110 4) X= –3 Y= 2 X补=1 1101 Y补=0 0010 3) X= 3 Y= –2 0 0001 1 1111 (–1补码) (+1补码)
( X + Y )补= X补+ Y补(1) ( X - Y )补= X补+ (-Y)补(2) 式(2):操作码为“减”时,将减转换为加。 即将减数变补后与被减数相加。 将Y补变补 不管Y补为正或负,将其符号连同尾数一起各位变反,末位加1。 Y补 (–Y)补: 例. 求(X – Y)补 2) X= –4 Y= 5 X补=1 1100 Y补=0 0101 (-Y)补=1 1011 X补=1 1100 Y补=0 0101 1) X= 4 Y= –5 X补=0 0100 Y补=1 1011 (-Y)补=0 0101 X补=0 0100 Y补=1 1011 0 1001 1 0111 (–9补码) (+9补码)
注意:某数的补码表示与某数变补的区别。 补码表示 符号位不变; 例. 1 0101原 1 1011 1 0101原 11011 例. 1 0101原 1 1011 负数尾数改变,正数尾数不变。 补码表示 0 0101原 0 0101 0 0101原 0 0101 0 0101原 0 0101 变补 1 0011补0 1101 1 0011补0 1101 1 0011补0 1101 符号位改变, 变补 0 0011补1 1101 0 0011补1 1101 0 0011补1 1101 尾数改变。 补码的机器负数
操作数用补码表示,符号位参加运算 ADD SUB X补+Y补 X补+(-Y)补 结果为补码表示,符号位指示结果正负 (3) 算法流程(补码运算规则)
(3)补码运算的规则 ①参与运算的操作数用补码表示。 ②符号位参与运算。 ③若指令操作码为加(ADD),则两数直接相加。若指令操作码为减(SUB),则将减数连同符号位一起变反加1后(求补)与被减数相加。 ④运算结果用补码表示。
(4) 逻辑实现 +A:打开控制门,将A送 。 +B:打开控制门,将B送 。 A +B:打开控制门,将B送 。 +B +A +B A:打开控制门,将结 果送A输入端。 A B B A(X补) B(Y补) CPA 1)控制信号 2)补码加减运算器粗框 加法器输入端: +1 +1:控制末位加 1 。 加法器输出端: CPA:将结果打入A。
二、溢出判断 在什么情况下可能产生溢出? 字长8位,补码定点整数表示的范围: -128~+127 何为溢出?超出数据的表示范围。 两个异号数相加不会产生溢出(两个同号数相加不会产生溢出); 两个同号数相加可能产生溢出(两个异号数相加可能产生溢出).
二、溢出判断 例.数A有4位尾数,1位符号SA 数B有4位尾数,1位符号SB 符号位参加运算 结果符号Sf 符号位进位Cf 尾数最高位进位C(或最高有效位进位)
(1)A=3 B=2 3+2: (2)A=10 B=7 10+7: 0 0011 0 0010 0 1010 0 0111 0 0101 1 0001 (3)A= -3 B= -2 -3+(-2): (4)A= -10 B= -7 -10+(-7): 1 1101 1 1110 1 0110 1 1001 1 1011 0 1111 (5)A=6 B= -4 6+(-4): (6)A= -6 B=4 -6+4: 0 0110 1 1100 1 1010 0 0100 0 0010 1 1110 正确 正溢 正确 负溢 正确 正确
(2)A=10 B=7 10+7 :0 1010 (4)A= -10 B= -7 -10+(-7): 0 0111 1 0110 1 1001 1 0001 0 1111 1. 采用一个符号位(SA、SB与Sf的关系) 溢出= SA SB Sf SA SB Sf 2. 采用最高有效位的进位和符号位的进位(Cf与C的关系)
(1)A=3 B=2 3+2: (2)A=10 B=7 10+7: 0 0011 0 0010 0 1010 0 0111 0 0101 1 0001 (3)A= -3 B= -2 -3+(-2): (4)A= -10 B= -7 -10+(-7): 1 1101 1 1110 1 0110 1 1001 1 1011 0 1111 (5)A=6 B= -4 6+(-4): (6)A= -6 B=4 -6+4: 0 0110 1 1100 1 1010 0 0100 0 0010 1 1110 1 Cf=0 C =0 Cf=0 C =1 正确 正溢 1 1 1 Cf=1 C =1 Cf=1 C =0 正确 负溢 Cf=1 C =1 1 1 Cf=0 C =0 正确 正确
(2)A=10 B=7 10+7 : 0 1010 1.采用一个符号位(SA、SB与Sf的关系) 0 0111 1 0001 (4)A= -10 B= -7 -10+(-7): 1 0110 1 1001 溢出= SA SB Sf SA SB Sf 0 1111 溢出= Cf C 2.采用最高有效位的进位和符号位的进位(Cf与C的关系) 3. 硬件判断逻辑三(双符号位)
(1)3+2: (2)10+7: 00 0011 00 0010 00 1010 00 0111 00 0101 01 0001 正确 正溢 (3)-3+(-2): (4)-10+(-7): 11 1101 11 1110 11 0110 11 1001 11 0111 10 1111 正确 负溢 (5)6+(-4): (6)-6+4: 00 0110 11 1100 11 1010 00 0100 00 0010 11 1110 正确 正确 第一符号位Sf1 第二符号位Sf2
(2)A=10 B=7 10+7 : 0 1010 1. 硬件判断逻辑一(SA、SB与Sf的关系) 0 0111 1 0001 (4)A= -10 B= -7 -10+(-7): 1 0110 1 1001 溢出= SA SB Sf SA SB Sf 0 1111 溢出= Cf C 溢出= Sf1 Sf2 2. 硬件判断逻辑二(Cf与C的关系) 3. 硬件判断逻辑三(双符号位)
三、移位操作 :左移时低位补0, 右移时高位补0。 移位类型 :数码位置变化,数值不变。 1.逻辑移位 0 0 0 0 1 1 1 1 逻辑左移: 0 0 0 1 1 1 1 0 逻辑右移: 0 0 0 0 0 1 1 1 移位规则
三、移位操作 : 循环左移时,最高位移入 最低位,其余各位依次为左移; 循环右移时,最低位移入 最高位,其余各位依次为右移; 移位类型 :有闭合移位环路。 2. 循环移位 1 0 0 0 1 1 1 1 循环左移: 0 0 0 1 1 1 1 1 移位规则
三、移位操作 :数码位置变化,数值变化, 符号位不变。 移位类型 3. 算术移位 1 0 0 1 1 1 1 (-15)原 算术左移: 1 0 1 1 1 1 0 (-30)原
(1)原码移位规则 左移时,符号位不变,各位依次左移,低位补0。(最高有效位为1将溢出) 右移时,符号位不变,各位依次右移,最高有效位补0。 (2)补码移位规则 左移时,各位依次左移,低位补0。(若溢出,会破坏符号位) 右移时,符号位不变,各位依次右移。(符号位移至最高有效位)
(1)正数补码移位规则 左移 左移 右移 左移 右移 右移 右移 1)单符号位 : 2)双符号位: 0 0111 00 0111 0 1110 00 1110 00111 01 1100 00011 001110 000111 3)移位规则 数符不变 (单:符号位不变;双:第一符号位不变)。 空位补0 (右移时第二符号位移至尾数最高位)。
(2)负数补码移位规则 左移 左移 右移 右移 右移 右移 2)双符号位: 1)单符号位 : 1 1011 11 0110 1 0110 10 1100 11011 110110 11101 111011 3)移位规则 数符不变 (单:符号位不变;双:第一符号位不变)。 左移空位补0 右移空位补1 (第二符号位移至尾数最高位)。
左 左 右 右 易出错处: 00 1110 01 1100 00 1100 00 0110 01 1100 正确: 00 1110 正确: 11 0110 10 1100 11 1100 11 1110 10 1100 11 0110 正确: 正确:
移位逻辑 D4 D3 D2 D1 D4 D3 D2 右移 左移 D3 D2 D1 门4 门3 门2 门1 左斜 右斜 3 1 2 4 移位寄存器: 在寄存器中移位(串行接口中)。 移位寄存器 移位门: 斜位传送(运算器中)。 移位门 加法器
4 舍入方法 1. 0舍1入(原码、补码) 例. 保留4位尾数: 0 00100原 0 0010原 1 00101原 1 0011原 1 11011补 1 1110补 2. 末位恒置1(原码、补码) 例. 保留4位尾数: 0 00100原 0 0011原 1 00101原 1 0011原 1 0011原 1 11011补 1 1101补 1 1101补
四、十进制运算 1. 进制转换 软件实现:二-十进制转化 2. 直接进行十进制运算 计算机内部的十进制数必须采用二-十进制数(BCD码)表示形式。 计算机实现BCD码的运算有两种: (1)BCD码指令(加、减、乘、除) (2)二进制数加、减、乘、除指令,然后进行BCD码的校正。(8086/8088指令系统采用此方法)
3. BCD码的加法运算 校正规律: 例如 2 3 0010 0011 + 6 4 + 0110 0100 ------- -------------- 8 7 1000 0111 例如 4 5 0100 0101 + 6 6 + 0110 0110 ------- -------------- 1 1 1 1010 1011 +0110 0110 --------------- 10001 0001
五、逻辑运算 • 逻辑非 • 逻辑与 • 逻辑或 • 逻辑异或 逻辑运算的特点:按位运算, 位间没有联系。
Ci ∑i 加法单元 i Ai Bi Ci-1 第二节 算术逻辑运算部件ALU 一、 加法单元 加法单元的输入和输出 (本位进位) (本位和) 一个输入为1时, ∑i为1,Ci为0; 两个输入为1时, ∑i为0,Ci为1; 三个输入为1时, ∑i为1,Ci为1。 (本位操作数) (低位进位)
一、 加法单元加法单元的输入和输出 A = A15 A14 • • • Ai • • •A0 B = B15 B14 • • • Bi • • •B0 = 15 14 • • • i • • • 0 (1)逻辑一(用与或非门构成) = AiBi Ci-1 + AiBi Ci-1 + AiBi Ci-1 + AiBi Ci-1 Ci = AiBi Ci-1 + AiBi Ci-1 + AiBi Ci-1 + AiBi Ci-1 Ci-1 Ci
∑i= (Ai + Bi) + Ci-1 Ci = AiBi + (Ai + Bi)Ci-1 Ci ∑i Ai Bi Ci-1 (2)逻辑二(用半加器构成)
∑i= (Ai + Bi) + Ci-1 Ci = Ai + Bi + (Ai + Bi)Ci-1 Ci ∑i Ai Bi Ai Bi Ci-1 逻辑三
(3)串行加法器与并行加法器1)串行加法器 i Ci A Q C D B CP 2)并行加法器
∑8 ∑7 ∑2 ∑1 C0 A8 B8 A7 B7 A2 B2 A1 B1 (4)串行加法器与并行加法器2)并行加法器 (a)特点:各位同时相加。 例. 8位数相加。 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 1 (b)影响速度的主要因素: 进位信号的传递时间。
Ci = AiBi + (Ai + Bi)Ci-1 = AiBi + (Ai + Bi)Ci-1 或 Ci = AiBi + (Ai + Bi)Ci-1 令Gi = AiBi Pi = Ai + Bi = Ai + Bi = Ai + Bi 二、 并行加法器的进位链 1、进位链的基本逻辑关系 进位产生函数 进位传递函数(进位条件) 所以Ci = Gi + Pi Ci-1 本地进位、绝对进位 条件进位、传递进位
∑8 ∑7 ∑2 ∑1 C0 A8 B8 A7 B7 A2 B2 A1 B1 2、并行加法器的串行进位 特点:进位信号逐位形成。 设8位加法器 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 1 提高并行加法器的关键是加快进位的产生和传递。
2、并行加法器的串行进位 特点:进位信号逐位形成,每一级进位 依赖前一级进位。 设n位加法器 1)逻辑式 C1 = G1 + P1C0 C2 = G2 + P2C1 Cn = Gn + PnCn-1 2)结构举例 Gi Pi C2 G2 P2 C1 G1 P1 C0 Ai Bi Ai Bi
3、并行进位(先行进位、同时进位) 特点:各位进位信号同时形成,各位 的Ci的产生仅依赖于C0 。 设n位加法器 1)逻辑式 C1 = G1 + P1C0 C2 = G2 + P2C1 = G2 + P2G1 + P2P1C0 Cn = Gn + PnCn-1 = Gn + PnGn-1 + …+ PnPn-1…P2P1C0 n + 1 项
2)结构举例 C2 C1 C0 G2 P2 G1 P1 Gi Pi Ai Bi Ai Bi
4、组内并行、组间串行 设16位加法器,4位一组,分为4组: C16 C15 C14 C13 C12 C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 4位 4位 4位 4位 第4组 第3组 第2组 第1组 组内采用并行进位结构、 组间采用串行进位传递结构
5、组内并行、组间并行 设16位加法器,4位一组,分为4组: C16 ~ C13 C12 ~ C9 C8 ~ C5 C4 ~ C1 C16 C12 C8 C4 C0 4位 4位 4位 4位 第4组 第3组 第2组 第1组 分级同时进位 1)产生第1小组的C1、C2、C3及所有的GⅣ、PⅣ….GI、PI; 2)产生组间的C4、C8、C12 、C16 3)产生第2、3、4小组的C5、C6、C7; C9、C10、C11; C13、C14、C15;
1)第1组进位逻辑式 组内: C1 = G1 + P1C0 C2 = G2 + P2G1 + P2P1C0 C3 = G3 + P3G2 + P3P2G1 + P3P2P1C0 组间: C4 = G4 + P4G3 + P4P3G2 + P4P3P2G1 + P4P3P2P1C0 GI PI 所以 CI = GI + PIC0
2)第2组进位逻辑式 组内: C5 = G5 + P5CI C6 = G6 + P6G5 + P6P5CI C7 = G7 + P7G6 + P7P6G5 + P7P6P5CI 组间: C8 = G8 + P8G7 + P8P7G6 + P8P7P6G5 + P8P7P6P5CI GⅡ PⅡ 所以 CⅡ = GⅡ + PⅡCI
3)第3组进位逻辑式 组内: C9 = G9 + P9CⅡ C10 = G10 + P10G9 + P10P9CⅡ C11 = G11 + P11G10 + P11P10G9 + P11P10P9CⅡ 组间: C12 = G12 + P12G11 + P12P11G10 + P12P11P10G9 + P12P11P10P9CⅡ GⅢ PⅢ 所以 CⅢ = GⅢ + PⅢCⅡ
4)第4组进位逻辑式 组内: C13 = G13 + P13CⅢ C14 = G14 + P14G13 + P14P13CⅢ C15 = G15 + P15G14 + P15P14G13 + P15P14P13CⅢ 组间: C16 = G16 + P16G15 + P16P15G14 + P16P15P14G13 + P16P15P14P13CⅢ GⅣ PⅣ 所以CⅣ = GⅣ + PⅣCⅢ
5)各组间进位逻辑 CI = GI + PIC0 CⅡ = GⅡ + PⅡCI CⅢ = GⅢ + PⅢCⅡ CⅣ = GⅣ + PⅣCⅢ = GⅡ + PⅡGI+ PⅡPIC0 = GⅢ + PⅢGⅡ + PⅢPⅡGI+ PⅢPⅡPIC0 = GⅣ + PⅣGⅢ + PⅣPⅢGⅡ +PⅣPⅢPⅡGI+ PⅣPⅢPⅡPIC0
组间进位链 ~ ~ ~ ~ ∑12 9 ∑16 13 ∑4 1 ∑8 5 A16 . . . . A13 B16 . . . . B13 A16 . . . . A13 B16 . . . . B13 A12 . . . . A9 B12 . . . . B9 A12 . . . . A9 B12 . . . . B9 A8. . . . A5 B8 . . . . B5 A8. . . . A5 B8 . . . . B5 A4 . . . . A1 B4 . . . . B1 A4 . . . . A1 B4 . . . . B1 6)结构示意 CⅣ CⅣ Co Co CⅢCⅡ CI CⅢCⅡ CI GⅣ PⅣ GⅢ PⅢ GⅡ PⅡ GIPI GⅣ PⅣ GⅢ PⅢ GⅡ PⅡ GIPI C15 ~ 13 C11 ~ 9 C7 ~ 5 C15 ~ 13 C11 ~ 9 C7 ~ 5 C3 ~ 1 C3 ~ 1 7)进位传递过程 Ai、Bi、C0 C3 ~ 1 GⅣ、PⅣ….GI、PI、 C15 ~ 13、C11 ~ 9、C7 ~ 5 CⅣ、CⅢ、CⅡ、CI