CPU-1运算部件(10级).ppt_第1页
CPU-1运算部件(10级).ppt_第2页
CPU-1运算部件(10级).ppt_第3页
CPU-1运算部件(10级).ppt_第4页
CPU-1运算部件(10级).ppt_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

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

文档简介

第三章 CPU子系统 运算部件 寄存器 寄存器 控制部件 运算器控制器 本章主要讨论: 运算器 控制器 数据通路结构 与外部的连接 指令的执行过程 CPU组成 CPU工作原理 第一节 算术逻辑运算基础 3.1.1.1 补码加减法 数用补码表示,符号位参加运算。 实际操作能否只取决于操作码? 结果需不需修正? 如何将减法转换为加法? 3.1.1 定点加减运算 1. 基本关系式 X补+ Y 补 = X + Y补 (mod 2)(1 ) X-Y补=X补 Y 补= X 补 +-Y补(2 ) 式(1):操作码为“加”时,两数直接相加。 公式证明: 根据补码的定义,现分四种情况来证明。假设采用定点 小数 表示,因此证明的先决条件是 1, 1, 1。 (1) 0, 0,则 0。 补 补 补 (mod 2) (2) 0, 0,则0或0时,2 () 2,进位2必丢失,又因()0, 故 补 补 补 当0,则0或 BE,则BE+1 BE,BM,直到BE=AE 1.1010 (2) 0.0101 +0.1101 AM + BM AM 4.结果规格化 M 1 应左移规格化应右移规格化 AE-1 AE 若 Af1Af2=1,则右规: (1) 11.0001 +00.1001 11.1010 (2) 00.0101 +00.1101 01.0010 (-1/2除外) Af1Af2 A1 AM 11.1010 若 Af1Af2A1+Af1Af2A1=1,则左规 : 01.0010 Af1Af2 AM AE+1 AE (5)舍入 在对阶或者向右规格化时,尾数右移,字的低位部分 可能移出字外而被丢掉,从而引起误差。因此需要进 行舍入处理。 舍入处处理方法很多,如截断法、恒置1法、0舍1入法等 。 (6)溢出判断 (注意:浮点数的溢出是以阶码溢出表现出来的) 如果阶码正常,加减运算即可正常结束; 如果阶码超过了可能表示的最大正指数值,阶码上溢,认为 数据为,发生溢出中断。 如果阶码超过了可能表示的最小负指数值,阶码下溢,一般 认为数据为0。 两个同号尾数相加,出现的最高位向上的进位,在浮点数中 不算溢出。 浮点加减运算示例 例: A = 0.1011102-01, B = - 0.1010112-10,求A+B。 解:假设这两个数的格式为: 阶码4位,用移码(偏置量23)表示; 尾数8位,用补码表示,含一位符号位。 A浮 = 0111;0.1011100 B浮 = 0110;1.0101010 浮点加减运算示例(续) 对阶 E = EA-EB = -1 - (-2) = 1 EAEB,MB右移, EB+1EB,对阶得到: MB浮= 0111;1.1010101 尾数求和 00.1011100 + 11.1010101 00.0110001 规格化 尾数需要左规: A+B浮 = 0110;0.110001 A+B = 0.1100012-10 未发生溢出。 3.3.5.2浮点乘法运算步骤 l 乘法运算的步骤如下: 两浮点数相乘,乘积积的阶码为阶码为 相乘两数的阶码阶码 之和,而乘积积 的尾数为为相乘两数尾数之积积。 阶码阶码 相加 如果阶码阶码 用补码补码 表示,阶码阶码 相加之和无需校正; 如果阶码阶码 用移码码表示,阶码阶码 相加后要减去一个偏置量2n。 另外,如果相加后,和发生溢出,也要进行处理。 尾数相乘 如果相乘两数都不为0,则可进行尾数相乘,尾数相乘的规则 与定点数乘法相同。 尾数规格化 如果尾数不是规格化数,则需要规格化,一般需要进行左规。 左规时,如果阶码发生下溢,做机器零处理。 X移=2n+X, Y移=2n+Y X移+Y移= 2n+X+2n+Y=2n +(2n+(X+Y ) =2n +X+Y移 Y补=2n+1+Y X移+Y补= 2n+X+2n+1+Y=2n+1 +(2n+(X+Y ) =2n+1 +X+Y移 即X+Y移= X移+Y补(mod 2n+1) 同理X-Y移= X移+-Y补 例 已知:设阶码为4位(其中1位阶符),用移码表 示,尾数为7位(其中一位数符),用补码表示。已知 两个浮点数,X=0.1001102101,Y=(-0.110110)2-10, 求XY的值,运算中移码采用双符号位,尾数相乘采 用补码一位乘,要求写出运算步骤。 解:X浮=1101,0.100110 Y浮=0110,1.001010 (1)用双符号位移码(最高符号位恒以0参加运算)求阶码 之和 EX+ EY移=EX移+EY补=01101+11110=01011 即 E= +3 (2)尾数相乘 采用补码一位乘,运算过程略 MX.MY 补=1.011111111100 即XY 补=0011, 1.011111111100 (3) 结果规格化 结果不需要规格化。 (4)舍入处理 尾数为负,丢失一个字长,则丢失的6位为 111100,所以最终结果为: XY 补=0011, 1.100000 XY=2+011(0.100000) 步数 条件 操作 A C 00.000000 1.0010100 1)0 0+0 Cn + 00.000000 00.000000 00.000000 01.001010 2)1 0-B+ 11.011010 11.011010 11.101101 001.00101 3)0 1+B+ 00.100110 00.010011 00.001001 1001.0010 4)1 0-B+ 11.011010 11.100011 11.110001 11001.001 Cn+1 CnCn+1 MX.MY 补=1.011111111100 5)0 1 +B+ 00.100110 00.010111 00.001011 111001.00 6)0 0 -B + 11.011010 11.011111 111100 修正 00.000101 1111001.0 7) 1 0 3.3.5.3浮点数除法运算步骤 l 除法运算的步骤如下: 两浮点数相除,商的阶码为阶码为 相除两数的阶码阶码 之差,商的尾数 为为相除两数的尾数之商。 尾数调调整 被除数尾数的绝对值要小于除数尾数的绝对值,否则要通过过被 除数尾数的右移作出调调整,每右移一次,其阶码阶码 加1。 阶码阶码 相减 如果阶码阶码 用补码补码 表示,阶码阶码 相减之后无需校正; 如果阶码用移码表示,阶码相减后要加上一个偏移量2n。 另外,如果相减后发生溢出,需另作处理。 尾数相除 如果相除两数的尾数都不为0,则可进行尾数相除。由于第一 步进行了调整,运算结果就是规格化数。 例设阶为4位(其中1位阶符),用补码表示, 尾数为5位(其中一位数符),用补码表示。 已知两个浮点数,X=(-0.0100)2-101, Y=(-0.1111)2-010, 求XY的值。运算中阶码采用双符号位, 尾数相除采用补码除法,要求写出运算步骤。 解:X补=11011,11.1100 Y补=11110,11.0001 (1)阶码相减 EX补- EY补=EX补+ -EY补 =11011+00010=11101 (2)尾数相除 采用补码除法,运算过程略 假商=1.010 真商=1.010+1.001=0.011 R=0.10112-4 (3)结果规格化 将尾数左移一位,阶码减1。 X/Y 补=11100,00.110 X/Y=0.1102-100 余数=0.10112-4 浮点运算器由阶码运算部件和尾数运算部件组成。阶码运算部件执行加 减两种运算、同时配合对阶或者规格化完成阶码的调整(1);尾数 运算部件完成加、减、乘、除运算,以及尾数规格化和溢出处理。 CPU之外的浮点运算器 例如80x87是美国Intel公司为处理浮点数的运算生产的专用算术运算 处理器,它是配合80x86 CPU进行算术运算的,又称为协处理器。它 相当于CPU的一个I/O设备设备 ,虽然有自己的指令,但不能单独使用。 CPU之内的浮点处理器 例如奔腾CPU将浮点处理器包含在芯片内部,并且采用流水设计。它 有U、V两条流水线,指令执行过程分为8个过程段。 浮点流水运算部件 根据浮点运算步骤,分别设置专门硬件来完成特定的运算。例如,浮 点数加减操作,设设置4套硬件,分别别完成求阶阶差、对阶对阶 、尾数求和

温馨提示

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

评论

0/150

提交评论