计算机组成原理ppt课件.ppt_第1页
计算机组成原理ppt课件.ppt_第2页
计算机组成原理ppt课件.ppt_第3页
计算机组成原理ppt课件.ppt_第4页
计算机组成原理ppt课件.ppt_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

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

文档简介

第三章计算机中的算术运算 第1讲 算术逻辑单元ALU第2讲 定点加减运算第3讲 定点乘除运算第4讲 运算器组织 浮点运算 本章复习 1 3 1算术逻辑单元ALUALU是运算器的核心组成部分 以逻辑运算为基础 ALU的核心部件是加法器 3 1 1加法器及其进位结构 2 门电路的几种表示方法 3 一 半加器 图3 1半加器框图及真值表 4 图3 2半加器逻辑电路图 Ci 1 Si 5 图3 3全加器框图及真值表 二 全加器 6 Si Ai Bi CiCi 1 AiBi AiCi BiCi AiBi Ai Bi Ci AiBi Ai Bi Ci 图3 4全加器逻辑电路图 3ty 4ty 1ty 1 5ty 1 5ty 7 Fulladderconstructedfrom2HalfAdders 8 三 串行加法器 图3 5串行加法器框图 9 四 并行加法器 进位公式分析Ci 1 AiBi Ai Bi Ci AiBi Ai Bi Ci定义两个辅助函数Gi AiBiPi Ai BiGi CarryGenerateFunction Pi CarryPropagateFunction 10 Ci 1 Gi PiCi 串行进位加法器 RippleCarryAdder 图3 6四位串行进位加法器框图 11 C1 G0 P0C0C2 G1 P1C1C3 G2 P2C2 Cn Gn 1 Pn 1Cn 1最长进位延迟时间为 4 2 5 n 1 ty 形成最后和的时间是 4 2 5 n 2 1 5 ty 与n成正比 12 先行进位加法器提高加法器运算速度的关键是消除行波进位中进位逐位串行传播 让各位进位独立同时形成 13 C1 G0 P0C0C2 G1 P1C1 G1 P1 G0 P0C0 C3 G2 P2C2 G2 P2 G1 P1 G0 P0C0 C4 G3 P3C3 G3 P3 G2 P2 G1 P1 G0 P0C0 14 展开并整理得到C1 G0 P0C0C2 G1 P1G0 P1P0C0C3 G2 P2G1 P2P1G0 P2P1P0C0C4 G3 P3G2 P3P2G1 P3P2P1G0 P3P2P1P0C0 图3 8 先行进位CLA CarryLookAhead 加法器 图3 9 15 3 8 16 3 9 17 组间行波进位加法器 图3 11组间行波进位形成过程 18 3 10 19 两级先行进位加法器Gi 为第i组先行进位加法器的进位产生函数 Pi 为第i组先行进位加法器的进位传递函数Gi G4i 3 P4i 3G4i 2 P4i 3P4i 2G4i 1 P4i 3P4i 2P4i 1G4iPi P4i 3P4i 2P4i 1P4i i 0 1 2 3 20 小组间产生四个进位C4 G0 P0 C0C8 G1 P1 G0 P1 P0 C0C12 G2 P2 G1 P2 P1 G0 P2 P1 P0 C0C16 G3 P3 G2 P3 P2 G1 P3 P2 P1 G0 P3 P2 P1 P0 C0 21 3 12 22 3 13 23 3 14 24 3 15 25 其它的并行加法器 图3 1632位进位选择加法器 1 0 26 五 一位8421码十进制加法器1 十进制数的8421码加法运算规则 1 和 1001时 不必修正 27 28 2 和 1010时 需要修正 29 30 2 8421码十进制加法器的组成 31 表3 18421码加法器修正关系 32 需要修正的项为 C4 S3 S2 S3 S1 1 33 图3 178421码十进制加法器 34 3 1 2多功能算术逻辑单元ALU一 多功能算术逻辑单元74181Fi Ai Bi Ci Pi CiCi 1 Gi M Pi M Ci 35 3 18 36 表3 2XiYi与AiBi的关系 37 对于任一Xi Yi都满足Xi Yi XiXi Yi Yi Gi XiYiPi Xi Yi Xi Yi则Yi GiXi PiCi 1 Gi PiCi Yi XiCi 38 则C1 Y0 X0C0C2 Y1 X1C1 Y1 X1Y0 X1X0C0C3 Y2 X2C2 Y2 X2Y1 X2X1Y0 X2X1X0C0 39 3 19 40 二 先行进位发生器74182图中G0 G3即 即 41 Cn x G0 P0 Cn Cn y G1 P1 G0 P0 Cn Cn Z G2 P2 G1 P1 G0 P0 Cn G G G3 P3 G2 P3 P2 G1 P3 P2 P1 G0 P P P3 P2 P1 P0 42 3 20 43 3 21 44 SN74181是4位先行进位ALU芯片 中规模集成电路 SN74182是4位BCLA 组间先行进位 芯片 多芯片级联构成先行进位ALU4个SN74181芯片串行构成一个16位单级先行进位ALU4个SN74181芯片与1个SN74182芯片可构成16位两级先行进位ALU16个SN74181芯片与5个SN74182芯片可构成64位先行进位ALU现代主流计算机中ALU并非通过芯片级联而成一个CPU芯片中有多个处理器核一个核中有多个32位 64位ALU 多功能算逻单元总结 45 3 2定点运算3 2 1定点加减运算一 补码加减法所依据的关系式1 加法 x 补 y 补 x y 补 1 x 0 y 0 则x y 0 x 补 y 补 x y x y 补 46 2 x 0 y 0 x 补 x y 补 2 y则 x 补 y 补 2 x y i x y 0 x y 1 正数 x 补 y 补 2 x y x y x y 补 0 47 ii x 0与 2 类似 4 x 0 y 0 x y 0 x 补 2 x y 补 2 y 则 x 补 y 补 2 x 2 y 2 2 x y 48 x y 0 而且其绝对值又小于1 则1 2 x y 22 2 x y 2 x y x 补 y 补 2 x y x y 补2 减法 xy 补 x y 补 x 补 y 补 1 49 1 0 y 1 正数 y 补 y 原 0 y1y2 yn y 原 1 y1y2 yn y 补 1 y1y2 yn 2n 2 1 y 0 负数 y 补 1 y1y2 yn 50 因 y 补 2 y则y y 补2 21 y1y2 yn 1 11 1 2n1 y1y2 yn 0 y1y2 yn 2n y 0 y1y2 yn 2n y 为正数 y 补 0 y1y2 yn 2n 1 11 1 1 y1y2 yn 51 52 二 运算规则 参加运算的操作数用补码表示 符号位参加运算 对于两数相加减的各种情况 计算机都执行求和操作 当操作码为加运算时 两数直接相加 当操作码为减运算时 将减数连同符号位一起求反加1与被减数相加 运算结果以补码表示 53 例1已知 x 0 1001 y 0 0110 求 x y 54 55 56 57 三 实现补码加减运算的逻辑电路 图3 23 58 图3 22四位串行进位补码加减法器 59 四 溢出检测1 溢出的概念加法器和寄存器由多少个二进制位组成通常称为定点运算器的字长 计算机执行算术运算所产生的结果超出机器数所能表示的数据范围 称为溢出 60 例如x 0 110 y 0 011 则 x 补0 110 y 补0 011 x y 补1 001 溢出 x y 7正溢负溢 61 d 1 100 4 1 011 5 10 111溢出 62 2 溢出检测方法 1 采用一个符号位A an 1an 2 a0B bn 1bn 2 b0S sn 1sn 2 s0OVR an 1bn 1sn 1 an 1bn 1sn 1 63 图3 24溢出检测电路 64 2 用cn 1和cn判断OVR cn 1 cn 3 采用双符号位 模4补码或变形补码 模4补码的定义为 x 补 x 补 y 补 x y 补 x0 x 2 4 x2 x 0 65 两数相加后结果符号为 00或11没有溢出 01正溢 10负溢 OVR sf1 sf2 66 67 68 69 70 3 3 2定点乘法运算通过多次相加和移位来实现乘除运算 一 移位操作1 移位操作的种类逻辑移位循环移位算术移位 71 2 逻辑移位 图3 25 左移低位补0 右移高位补0如1011010101101010010110103 循环移位 图3 25 100110010011001111001100 72 4 算术移位算术移位则数的符号不变而数量发生变化 左移一位将使数值扩大一倍 乘以2 在不产生溢出的情况下 右移一位则使数值缩小一倍 乘以1 2 如果不考虑舍入的情况 1 正数移位后的空位均补0 符号不变 73 例0 01100 11000 0011例 某变量初值 01111111 127 左移1位后为 11111110 126 254 溢出 错误 74 2 负数 负数的原码移位后的空位补0 负数的补码左移后的空位补0 右移后的空位补1 负数的反码移位后的空位补1 75 图3 25移位操作 76 二 原码一位乘法设 x 原 xs x1x2 xn y 原 ys y1y2 yn则 x 原 y 原 xs ys 0 x1x2 xn 0 y1y2 yn 77 乘数寄存器 78 2 1 x 2 1 0 x 2 1 x 2 1 x 0 P1 P2 P3 P4 x y x 0 1011 0 1 x 0 00 x 0 001 x 0 0001 x 0 1 x 0 1 0 x 0 1 x 0 1 x 79 80 81 举例 x 0 1101y 0 1011 x y 原 xs ys Pn 0 10001111x y 0 10001111 82 83 流程图 84 2 原理框图 3 28 85 三 补码一位乘法1 补码与真值之间的关系设 x 补 xs x1x2 xn则x xs 0 x1x2 xn 86 2 补码乘法算法的推导设被乘数 x 补 xs x1x2 xn 乘数 y 补 ys y1y2 yn则 x y 补 x 补 y 87 3 补码乘法比较法 布斯 Booth 乘法 1 运算规则 x y 补 x 补 ys y121 y222 yn2n x 补 ys y1y121 y221y222 yn2 n 1 yn2n x 补 y1ys y2y1 21 ynyn 1 2 n1 0yn 2n 88 x 补 y1 ys 2 1 x 补 y2 y1 2 1 x 补 y3 y2 2 1 x 补 yn yn 1 2 1 0 x 补 yn 1 yn yn 1 0 89 其递推公式为 P0 补 0 P1 补 2 1 P0 补 yn 1 yn x 补 P2 补 2 1 P1 补 yn yn 1 x 补 Pi 补 2 1 Pi 1 补 yn i 2 yn i 1 x 补 Pn 补 2 1 Pn 1 补 y2 y1 x 补 Pn 1 补 Pn 补 y1 ys x 补 x y 补 90 ysy1y2y3y40yi 1 yi 0 0yi 1 yi 1 x 补yi 1 yi 1 x 补 91 Booth算法描述如下 参加运算的数用补码表示 符号位参加运算 乘数最低位后面增加一位附加位yn 1 初值为0 以后逐次比较相邻两位并按下列规则运算 92 按上述算法进行n 1步 n是不包括符号位在内的字长 但n 1步不移位 93 移位要按补码的移位规则进行例已知 x 0 0101 y 0 1101 求x y 解 x 补 0 0101 y 补 1 0011 x 补 1 1011 x y 补 1 10111111xy 0 01000001 94 95 流程图 96 2 原理框图 3 30 97 四 快速乘法 1 Booth两位乘法根据补码一位乘法的规则 将比较ynyn 1的状态与比较yn 1yn的状态所执行的操作合并成一步 98 部分积 0 右移两位部分积 x 补 右移两位部分积 x 补 右移两位部分积 2 x 补 右移两位部分积 2 x 补 右移两位部分积 x 补 右移两位部分积 x 补 右移两位部分积 0 右移两位 000001010011100101110111 操作 yn 1ynyn 1 99 2 被加数进位保留乘法 阵列乘法器 串行进位 100 进位保留阵列乘法器 101 例 两个无符号整数 四位二进制表示 相乘 被乘数X 1111 乘数 1101 假设乘积过程中产生的四个被加数分别用A D表示 则按照被加数进位保留乘法的计算 可把被加数的相加分为三次来完成 a 四位二进制数乘法 b 采用被加数进位保存加法分解 10 102 图3 34被加数进位保存乘法计算过程 10 103 对六位数乘法 104 3 2 3定点除法运算一 原码除法设 x 原 xs x1x2 xn y 原 ys y1y2 yn 则 q 原 xs ys x1x2 xn y1y2 yn 1 恢复余数法例x 0 1011 y 0 1101 求x y 105 106 计算机实现除法 直接作减法试探 根据所得余数的符号来判断被除数 余数 与除数的大小 用左移被除数 余数 实现 把求得的每一位商上到商值寄存器的最低一位 被除数 余数 减除数的操作用加 y 补实现 107 2 不恢复余数法 加减交替法 1 运算方法ri 2ri 1 y ri 0 商 1 ri 1 2ri y ri 0 商 0 ri 1 2 ri y y 2ri y 108 余数为正 商 1 2ri y 余数为负 商 0 2ri y 例x 0 1011y 0 1101求 x y 原 解 x 0 1011 y 0 1101 y 补 1 0011 109 110 图3 35流程图 111 3 36 112 3 4浮点运算非规格化浮点运算规格化浮点运算3 4 1浮点加减运算设有两个浮点数x和y 113 1 对阶对阶的第一步是求阶差 对阶的规则是小阶向大阶看齐例两浮点数为x 0 1101 201y 0 1010 211求x y 114 E 00 01 11 01 11 10 2 x 补 00 11 00 001101 115 2 求和 差 x 补 00 11 00 001101 y 补 00 11 11 0110 116 3 规格化 1 左规 x y 补 00 11 11 100101 x y 补 00 10 11 00101x y 0 1110 210 2 右规例x 0 1101 210 y 0 1011 201求x y x y 补 00 10 01 0010 117 x y 补 00 11 00 1001则x y 0 1001 2114 舍入 1 0舍1入01 0100 21000 1010 21101 1011 20100 1110 2101 011010001 0110 2 恒置1法00 1011 21100 1101 210 118 5 浮点数的溢出判断阶码有m位 包括一位符号位 采用补码或移码表示 则表数范围为2m1 E 2m11 流程图 119 3 41 120 3 4 2浮点乘除运算设两个浮点数分别为 则 121 图3 43浮点数乘法运算流程图 Z X Y 122 3 4 3浮点运算所需要的硬件1 阶码运算部件 定点整数运算 阶码大小的比较 阶码加法运算 阶码调整时的增量与减量2 尾数运算部件 定点小数运算 左移 右移 尾数加法运算 尾数乘除运算 123 关于运算器的补充内容 1 CPU之外的浮点运算器8087是美国Intel公司为处理浮点数等数据的算术运算和多种函数计算而设计生产的专用算术运算处理器 由于其算术运算是配合8086CPU进行的 所以8087又称为协处理器 Co processor 以下说明8087浮点运算器的特点和内部结构 1 以异步方式与8086并行工作 8087相当于8086的一个I O部件 本身有它自己的指令 但不能单独使用 它只能作为8086主CPU的协处理器才能运算 如果8086从主存读取的指令是8087的浮点运算指令 则它们以输出的方式把该指令送到8087 8087接受指令后进行译码并执行浮点运算 8087进行运算期间 8086可取下一条其他指令予以执行 因而实现了并行工作 如果在8087执行浮点运算指令过程中 8086又取来了一条8087指令 则8087给出 忙 标志信号加以拒绝 使80

温馨提示

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

评论

0/150

提交评论