1 / 71

第七章 数值运算

第七章 数值运算. 本章需解决的关键问题: 如何以加法器为基础,实现各种 运算处理。 解决思路: 复杂运算. 四则运算. 加法运算. 解决方法: 在加法器的基础上, 增加移位传送 功能,并选择输入控制条件。. 主要内容:补码的定点加减运算,运算的溢出判断;定点一位乘法运算,定点一位除法运算;浮点的加、减、乘、除运算;进位链的产生原理,串行加法器,并行加法器的实现,运算器的基本结构。 重点:加法器的设计,运算器的分析,加减乘除运算过程描述。 难点:浮点数的规格化问题,加法器电路的设计,进位链的产生,运算器的加减乘除运算过程描述。.

rafiki
Download Presentation

第七章 数值运算

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 数值运算 本章需解决的关键问题: 如何以加法器为基础,实现各种 运算处理。 解决思路: 复杂运算 四则运算 加法运算 解决方法: 在加法器的基础上,增加移位传送 功能,并选择输入控制条件。

  2. 主要内容:补码的定点加减运算,运算的溢出判断;定点一位乘法运算,定点一位除法运算;浮点的加、减、乘、除运算;进位链的产生原理,串行加法器,并行加法器的实现,运算器的基本结构。主要内容:补码的定点加减运算,运算的溢出判断;定点一位乘法运算,定点一位除法运算;浮点的加、减、乘、除运算;进位链的产生原理,串行加法器,并行加法器的实现,运算器的基本结构。 重点:加法器的设计,运算器的分析,加减乘除运算过程描述。 难点:浮点数的规格化问题,加法器电路的设计,进位链的产生,运算器的加减乘除运算过程描述。

  3. 第一节 算术逻辑运算基础 一、定点加减法运算 1、原码加减运算 实际操作取决于操作码和符号 不能将减法转换为加法

  4. 一、定点加减法运算 1、原码加减运算 若A、B为绝对值,则有: (+A)+(+B)=(+A)-(-B) (-A)+(-B)=(-A)-(+B) 同号相加、异号相减,实际执行的操作为绝对值相加,结果的符号为被加(减)数的符号。 (+A)+(-B)=(+A)-(+B) (-A)+(+B)=(-A)-(-B) 异号相加、同号相减,实际执行的操作为绝对值相减,结果的符号为实际结果的符号。 [X]原+[Y]原=[X+Y]原 ?不成立

  5. 第一节 定点加减运算 2、 补码加减运算 数用补码表示,符号位参加运算。 实际操作能否只取决于操作码? 结果需不需修正? 如何将减法转换为加法?

  6. 基本关系式 ( 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补码)

  7. ( 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补码)

  8. 注意:某数的补码表示与某数变补的区别。 补码表示 符号位不变; 例. 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 尾数改变。 补码的机器负数

  9. 操作数用补码表示,符号位参加运算 ADD SUB X补+Y补 X补+(-Y)补 结果为补码表示,符号位指示结果正负 (3) 算法流程(补码运算规则)

  10. (3)补码运算的规则 ①参与运算的操作数用补码表示。 ②符号位参与运算。 ③若指令操作码为加(ADD),则两数直接相加。若指令操作码为减(SUB),则将减数连同符号位一起变反加1后(求补)与被减数相加。 ④运算结果用补码表示。

  11. (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。

  12. 二、溢出判断 在什么情况下可能产生溢出? 字长8位,补码定点整数表示的范围: -128~+127 何为溢出?超出数据的表示范围。 两个异号数相加不会产生溢出(两个同号数相加不会产生溢出); 两个同号数相加可能产生溢出(两个异号数相加可能产生溢出).

  13. 二、溢出判断 例.数A有4位尾数,1位符号SA 数B有4位尾数,1位符号SB 符号位参加运算 结果符号Sf 符号位进位Cf 尾数最高位进位C(或最高有效位进位)

  14. (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 正确 正溢 正确 负溢 正确 正确

  15. (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的关系)

  16. (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 正确 正确

  17. (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. 硬件判断逻辑三(双符号位)

  18. (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

  19. (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. 硬件判断逻辑三(双符号位)

  20. 三、移位操作 :左移时低位补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 移位规则

  21. 三、移位操作 : 循环左移时,最高位移入 最低位,其余各位依次为左移; 循环右移时,最低位移入 最高位,其余各位依次为右移; 移位类型 :有闭合移位环路。 2. 循环移位 1 0 0 0 1 1 1 1 循环左移: 0 0 0 1 1 1 1 1 移位规则

  22. 三、移位操作 :数码位置变化,数值变化, 符号位不变。 移位类型 3. 算术移位 1 0 0 1 1 1 1 (-15)原 算术左移: 1 0 1 1 1 1 0 (-30)原

  23. (1)原码移位规则 左移时,符号位不变,各位依次左移,低位补0。(最高有效位为1将溢出) 右移时,符号位不变,各位依次右移,最高有效位补0。  (2)补码移位规则 左移时,各位依次左移,低位补0。(若溢出,会破坏符号位) 右移时,符号位不变,各位依次右移。(符号位移至最高有效位)

  24. (1)正数补码移位规则 左移 左移 右移 左移 右移 右移 右移 1)单符号位 : 2)双符号位: 0 0111 00 0111 0 1110 00 1110 00111 01 1100 00011 001110 000111 3)移位规则 数符不变 (单:符号位不变;双:第一符号位不变)。 空位补0 (右移时第二符号位移至尾数最高位)。

  25. (2)负数补码移位规则 左移 左移 右移 右移 右移 右移 2)双符号位: 1)单符号位 : 1 1011 11 0110 1 0110 10 1100 11011 110110 11101 111011 3)移位规则 数符不变 (单:符号位不变;双:第一符号位不变)。 左移空位补0 右移空位补1 (第二符号位移至尾数最高位)。

  26. 左 右 右 易出错处: 00 1110 01 1100 00 1100 00 0110 01 1100 正确: 00 1110 正确: 11 0110 10 1100 11 1100 11 1110 10 1100 11 0110 正确: 正确:

  27. 移位逻辑 D4 D3 D2 D1 D4 D3 D2 右移 左移 D3 D2 D1 门4 门3 门2 门1 左斜 右斜 3 1 2 4 移位寄存器: 在寄存器中移位(串行接口中)。 移位寄存器 移位门: 斜位传送(运算器中)。 移位门 加法器

  28. 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补

  29. 四、十进制运算 1. 进制转换 软件实现:二-十进制转化 2. 直接进行十进制运算 计算机内部的十进制数必须采用二-十进制数(BCD码)表示形式。 计算机实现BCD码的运算有两种: (1)BCD码指令(加、减、乘、除) (2)二进制数加、减、乘、除指令,然后进行BCD码的校正。(8086/8088指令系统采用此方法)

  30. 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

  31. 五、逻辑运算 • 逻辑非 • 逻辑与 • 逻辑或 • 逻辑异或 逻辑运算的特点:按位运算, 位间没有联系。

  32. Ci ∑i 加法单元 i Ai Bi Ci-1 第二节 算术逻辑运算部件ALU 一、 加法单元 加法单元的输入和输出 (本位进位) (本位和) 一个输入为1时, ∑i为1,Ci为0; 两个输入为1时, ∑i为0,Ci为1; 三个输入为1时, ∑i为1,Ci为1。 (本位操作数) (低位进位)

  33. 一、 加法单元加法单元的输入和输出 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

  34. ∑i= (Ai + Bi) + Ci-1 Ci = AiBi + (Ai + Bi)Ci-1 Ci ∑i Ai Bi Ci-1 (2)逻辑二(用半加器构成)

  35. ∑i= (Ai + Bi) + Ci-1 Ci = Ai + Bi + (Ai + Bi)Ci-1 Ci ∑i Ai Bi Ai Bi Ci-1 逻辑三

  36. (3)串行加法器与并行加法器1)串行加法器 i Ci A  Q C D B CP 2)并行加法器

  37. ∑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)影响速度的主要因素: 进位信号的传递时间。

  38. 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 本地进位、绝对进位 条件进位、传递进位

  39. ∑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 提高并行加法器的关键是加快进位的产生和传递。

  40. 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

  41. 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 项

  42. 2)结构举例 C2 C1 C0 G2 P2 G1 P1 Gi Pi Ai Bi Ai Bi

  43. 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组 组内采用并行进位结构、 组间采用串行进位传递结构

  44. 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;

  45. 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

  46. 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

  47. 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Ⅱ

  48. 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Ⅲ

  49. 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

  50. 组间进位链 ~ ~ ~ ~ ∑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

More Related