计算机组成与体系结构 课件 07运算方法与运算器_第1页
计算机组成与体系结构 课件 07运算方法与运算器_第2页
计算机组成与体系结构 课件 07运算方法与运算器_第3页
计算机组成与体系结构 课件 07运算方法与运算器_第4页
计算机组成与体系结构 课件 07运算方法与运算器_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

运算方法与运算器计算机组成与体系结构定点运算及其运算器定点加减法补码加法:[X

Y]补

[X]补

[Y]补

补码减法:[X

Y]补

[X]补

[

Y]补

由[Y]补求[

Y]补补:求一个数相反数的补码只需连符号在内依次按位取反,末位加1即可补码加减运算的规则参加运算的操作数用补码表示。补码的符号位与数值位同时进行加运算。若做加,则两数补码直接相加;若做减,将减数补码连同符号位一起按位取反,末位加1,然后再与被减数相加。运算结果即为和/差的补码。溢出所谓溢出是指运算结果超过了机器数能表示的范围结果大于机器所能表示的最大正数,称为上溢结果小于机器所能表示的最小负数,称为下溢溢出检测双符号位法单符号位法一位二进制全加器Ci+1全加器(FA)CiBiSiAi输入输出CiAiBiSiCi+10000000110010100110110010101011100111111一位二进制全加器实现Ci+1全加器(FA)CiBiSiAi基本二进制加减法器

一位8421-BCD十进制加法器

多位十进制加法器定点乘除法的实现方式软件实现指令系统中无乘除法指令程序实现硬件实现在加/减法器的基础上,增加左移、右移位及其他一些逻辑线路实现乘法,指令系统中设置乘除法指令设置专用的高速阵列乘除运算器,指令系统中设置乘除法指令无符号数乘法被乘数乘数部分积乘积原码一位乘法将被乘数左移一位相加变为部分积与被乘数相加后右移一位将k个部分积同时相加转换为k次“累加与右移”,即每一步只求一位乘数所对应的新部分积,并与原部分积做一次累加,然后右移一次,这样操作重复k次,得到最后的乘积一位乘示例原码一位乘硬件结构图原码一位乘流程Booth算法流程Booth算法举例【例】X=-5(1011),Y=-3(1101),用Booth算法求X·Y。解:[-X]补=0101部分积Q0Q-1说明0000

运算开始,初始Q-1=001010010110+[-X]补算术右移1101111101101+[X]补算术右移001111000111110+[-X]补算术右移0000111111直接算术右移[X·Y]补=00001111=+15

原码两位乘法乘数yn-1yn

新的部分积00等于原部分积右移两位01等于原部分积加被乘数后右移两位10等于原部分积加2倍被乘数后右移两位11等于原部分积加3倍被乘数后右移两位原码两位乘法运算规则乘数判断位yn-1yn

标志位Cj

操作内容

000z→2,y→2,Cj保持“0”010z+x→2,y→2,Cj保持“0100z+2x→2,y→2,Cj保持“0”110z-x→2,y→2,置“1”Cj001z+x→2,y→2,置“0”Cj011z+2x→2,y→2,置“0”Cj101z-x→2,y→2,Cj保持“1”111z→2,y→2,Cj保持“1”5×5无符号乘法阵列求补器

使用求补器实现带符号乘法无符号数除法除数部分余部分余商被除数余数除数定点除法的一般性原则定点小数除法除数≠0|被除数|<|除数|位数关系被除数2n位除数n位商n位余数n位定点除法运算规则恢复余数法:进行每一步运算时,不论是否够减,都将被除数(或余数)减去除数,若所得符号位为0(即为正数)表明够减,上商1,左移一位再做下一步运算;若余数符号为为1(即为负数)表明不够减,因此上商0,由于已做减法,因此要把除数加回去(恢复余数),然后余数左移一位再做下一步运算。加减交替法:当余数为正时,商1,余数左移一位,减除数;当余数为负时,商0,余数左移一位,加除数。原码加减交替除法硬件结构图原码加减交替除法流程补码加减交替法运算规则[R]补与[y]补商新余数[Ri+1]补同号1[Ri+1]补=2[Ri]补+[-y]补异号0[Ri+1]补=2[Ri]补+[y]补补码加减交替除法流程可控加法/减法单元(CAS)除法阵列算术/逻辑单元(ALU)算术/逻辑单元(ALU)是计算机实际完成数据算术和逻辑运算的部分,是运算器的核心部件ALU寄存器寄存器控制器标志ALU组成需要考虑的问题ALU多功能的实现二进制加减法器只能进行算术运算,而不能进行逻辑运算ALU实现快速运算的方法行波进位速度慢计算的位数与计算时间成正比多功能运算的实现不将输入直接进行全加,而是先组合成由控制参数控制的组合函数,然后再进行全加74181控制参数与输入量S0S1YiS2S3Xi00001010110101101174181功能表74181逻辑表达式化简,得代入一位全加器的逻辑表达式得到先行进位的实现将低位进位直接传送到最高进位上去行波进位公式:先行进位公式:四位先行进位ALU74181(1)四位先行进位ALU74181(2)74181逻辑结构多级先行进位以74181为例,上述进位公式可改写为其中成组先行进位逻辑成组先行进位实例内部总线单总线结构双总线结构三总线结构单总线结构双总线结构三总线结构功能简单的运算器结构单总线移位乘除运算器三总线阵列乘除法运算器结构浮点运算及其运算器浮点运算的溢出阶码上溢(Exponentoverflow)+∞或-∞阶码下溢(Exponentunderflow)0尾数下溢(Significandunderflow)左移,规格化,舍入尾数上溢(Significandoverflow)右移,规格化浮点数加减运算方法0操作数检查对阶大阶向小阶看齐小阶向大阶看齐尾数加减舍入与规格化处理判溢出示例假设浮点数阶码、尾数均用补码表示,阶码采用双符号位,尾数采用单符号位,x=2010×0.11011011,y=2100×(-0.10101100),求x+y浮点表示分别为:x=000100.11011011y=001001.01010100(1)对阶x的阶码小,应使x的尾数右移2位,x的阶码加2x=001000.00110110(11)其中(11)表示x的尾数右移2位后移出的最低两位数。(2)尾数求和0.00110110(11)

1.01010100

1.10001010(11)(3)规格化处理尾数运算结果的符号位与最高数值位为同值,应执行左规处理,结果为1.00010101(1),阶码为00011。(4)舍入处理采用0舍1入法处理,则应进1,结果为1.00010110。(5)判断溢出阶码符号位为00,不溢出,故得最终结果为:x+y=2011×(-0.11101010)浮点数乘除运算方法0操作数检查阶码加减尾数乘除舍入与规格化处理判溢出常用的舍入方法截断法:将欲保留的末位数据右面的数据统统截掉,无论是0还是1。末位恒置1法:将欲保留的末位数据恒置1,无论右面是0还是1,也无论现在末位的值是0还是1。以上两种方法很简单,但容易产生积累误差效应。0舍1入法:一种比较合理的方法。但当尾数为0.11…1时,会造成尾数溢出,从而需要调整阶码,使运算步骤不规整。查表法浮点运算器floatingpointunit,FPU浮点运算器通常由处理阶码的和处理尾数的两个定点运算器线路组成在早期的小或微型机中,浮点运算器通常以任选件方式提供给用户,主要用于计算浮点数在现代架构中,CPU内置FPU,浮点运算功能会与SIMD(单指令流多数据流)计算集成在一起SSE指

温馨提示

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

评论

0/150

提交评论