N03-定点除法浮点运算_第1页
N03-定点除法浮点运算_第2页
N03-定点除法浮点运算_第3页
N03-定点除法浮点运算_第4页
N03-定点除法浮点运算_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

第二章运算方法与运算器

数据与文字的表示方法定点加法、减法运算定点乘法运算定点除法运算定点运算器的组成浮点运算方法和浮点运算器2.4定点除法运算

2.4.1原码除法运算原理

两个原码表示的数相除时,商的符号由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得。

设有n位定点小数(定点整数也同样适用):被除数x的原码为[x]原=xf.xn-1…x1x0除数y的原码为[y]原=yf.yn-1…y1y0则有商q=x/y,其原码为[q]原=(xf⊕yf)+(0.xn-1…x1x0/0.yn-1…y1y0)商的符号运算qf=xf⊕yf0.1101

商q

0.10110.10010

x(r0)被除数小于除数,商0

-0.01011

2-1y除数右移1位,减除数,商1

0.001110

r1得余数r1

-0.0

01011

2-2y除数右移1位,减除数,商1

0.0000110

r2

得余数r2

-0.0

001011

2-3y除数右移1位,不减除数,商0

0.00001100

r3

得余数r3

-0.0

0001011

2-4y除数右移1位,减除数,商1

0.00000001

r4得余数r4得x÷y的商q=0.1101,余数为r=0.00000001。设被除数x=0.1001,除数y=0.1011

设被除数x=0.1001,除数y=0.1011,模仿十进制除法运算,得x÷y的商q=0.1101,余数为r=0.00000001。1.判断x是否小于y?现在x<y,故商的整数位商“0”,x的低位补0,得余数r0。2.比较r0和2-1y,因r0>2-1y,表示够减,小数点后第一位商“1”,作r0-2-1y,得余数r1。3.比较r1和2-2y,因r1>2-2y,表示够减,小数点后第二位商“1”,作r1-2-2y,得余数r2。4.比较r2和2-3y,因r2<2-3y,不够减,小数点后第三位商“0”,不作减法,得余数r3(=r2)。5.比较r3和2-4y,因r3>2-4y,表示够减,小数点后第四2位商“1”,作r3-2-4y,得余数r4。

“除数右移”“右移上商”机器不会心算,须先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。不够减时必须恢复原来的余数,以便再继续往下运算。这种方法称为恢复余数法。要恢复原来的余数,只要当前的余数加上除数即可。

实际中常用不恢复余数法,又称加减交替法。其特点是运算过程中如出现不够减,则不必恢复余数,根据余数符号,可以继续往下运算,因此步数固定,控制简单。串行除法器速度太慢,目前已被淘汰。

设有n位定点小数(定点整数也同样适用):被除数x的原码为[x]原=xf.xn-1…x1x0除数y的原码为[y]原=yf.yn-1…y1y0则有商q=x/y,其原码为

[q]原=(xf⊕yf)+(0.xn-1…x1x0/0.yn-1…y1y0)商的符号运算qf=xf⊕yf

设被除数x=0.1001,除数y=0.1011,模仿十进制除法运算,得x÷y的商q=0.1101,余数为r=0.00000001。

“除数右移” “右移上商”

恢复余数法 加减交替法2.4.2并行除法器

阵列除法器有多种多样形式:不恢复余数阵列除法器补码阵列除法器

1.可控加法/减法(CAS)单元Bi⊕PAi⊕(Bi⊕P)CiSi=Ai⊕(Bi⊕P)⊕CiCi+1=(Ai+Ci)·(Bi⊕P)+AiCiCiAi(Ai+Ci)AiCi(Ai+Ci)·(Bi⊕P)Ai

CAS单元的输入与输出的关系可用如下一组逻辑方程来表示:

Si=Ai⊕(Bi⊕P)⊕CiCi+1=(Ai+Ci)·(Bi⊕P)+AiCi

当P=0时,方程式(2.27)就等于式(2.23),即得我们熟悉的一位全加器(FA)的公式:

Si=Ai⊕Bi⊕Ci

Ci+1=AiBi+BiCi+AiCi(2.27)当P=1时,则得求差公式:

Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+AiCi其中Bi=Bi⊕1。在减法情况下,输入Ci称为借位输入,而Ci+1称为借位输出。(2.28)

为说明CAS单元的实际内部电路实现,将方程式(2.28)加以变换,可得如下形式:

Si=Ai⊕(Bi⊕P)⊕Ci

=AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP+

AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP

Ci+1=(Ai+Ci)(Bi⊕P)+AiCi

=AiBiP+AiBiP+BiCiP+BiCiP+AiCi2.不恢复余数的阵列除法器

[例20]将余数固定除数右移等效成除数固定余数左移码制填补代码正数原码、反码、补码0负数原码0补码左移添0右移添1反码1算术移位运算(有符号数的移位)逻辑移位运算(无符号数的移位)

不管左移还是右移都添0

原码除法(加减交替运算规则)1、被除数(或余数)减除数,当余数为正时商上1,余数左移减除数;当余数为负时商上0,余数左移加除数;2、原码运算时,商的符号运算qf=xf⊕yf,商的值为q=|x|/|y|,采用双符号位,运算中余数左移n位,则r=2-n.[r]3、对于n位数除法需进行n+1次加法和n次移位。补码除法(加减交替运算规则)1、符号位参加运算,被除数与除数均采用双符号位。2、第一步,被除数与除数同号时,减除数;被除数与除数异号时,加除数;3、当余数与除数同号时,商上1,余数左移,减除数;当余数与除数异号时,商上0,余数左移,加除数;4、包括符号位在内n+1,重复3,共作n+1步。商和余数的校正1、商的校正(仅对补码运算)刚好除尽时(余数为0),若除数为正,则商不校正,若除数为负则商需加上2-n进行校正;不能除尽时,若商为正则不校正;商为负则商需加上2-n进行校正2、余数校正(对原码和补码):前提是,余数和被除数异号若商为正,将余数加上除数进行校正;若商为负,将余数减去除数进行校正。原码除法对绝对值进行运算,结果商一定为正。因此当运算结果余数为负时,与x的绝对值异号,余数加上除数进行校正,且校正后,余数符号应与被除数x相同2.5定点运算器的组成

2.5.1逻辑运算

计算机中的逻辑运算,主要是指逻辑非、逻辑加、逻辑乘、逻辑异四种基本运算。1.逻辑非运算

逻辑非也称求反。对某数进行逻辑非运算,就是按位求反,常用变量上方加一横来表示。2.逻辑加运算

对两个数进行逻辑加,就是按位求它们的“或”,所以逻辑加又称逻辑或,常用记号“V”或“+”来表示。

[例22]

3.

逻辑乘运算

对两数进行逻辑乘,就是按位求它们的“与”,所以逻辑乘又称“逻辑与”,常用记号“∧”或“·”来表示。

[例23]4.逻辑异运算

对两数进行异就是按位求它们的模2和,所以逻辑异又称“按位加”,常用记号“⊕”表示。事实上,逻辑加还可以通过逻辑乘和逻辑非来实现:

同样,逻辑乘也可以用逻辑加和逻辑非来实现:Xi,Yi与控制参数和输入量的关系

表中紫色为该数的非运算根据上面所列的函数关系,即可列出Xi和Yi的逻辑表达式S0S1YiS2S3Xi0

0

0

1

1

0

1

1AiAiBi

AiBi000

0

1

1

0

111

Ai+Bi

Ai+Bi

Ai

2.5.2多功能算术/逻辑运算单元(ALU)

1.基本思想一位全加器(FA)的逻辑表达式为

Fi=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi因此,一位算术/逻辑运算单元的逻辑表达式为

Fi=Xi⊕Yi⊕Cn+iCn+i+1=XiYi+YiCn+i+Cn+iXiFi=Xi⊕Yi⊕Cn+iCn+i+1=Yi+XiCn+i2.逻辑表达式Xi和Yi的逻辑表达式:

Xi=S2S3+S2S3(Ai+Bi)+S2S3(Ai+Bi)+S2S3Ai

Yi=S0S1Ai+S0S1AiBi+S0S1AiBiALU的某一位逻辑表达式如下:

Xi=S3AiBi+S2AiBiYi=Ai+S0Bi+S1Bi设

G=Y3+Y2X3+Y1X2X3+Y0X1X2X3

进位发生输出

P=X0X1X2X3进位传送输出则

Cn+4=G+PCnG、P,有利于实现多片(组)ALU之间的先行进位先行进位发生器(CLA)(2.37)3.算术逻辑运算的实现M=0××××××××××M=14.两级先行进位的ALUCn+x=G0+P0CnCn+y=G1+P1Cn+x=G1+G0P1+P0P1CnCn+z=G2+P2Cn+y=G2+G1P2+G0P1P2+P0P1P2Cn

Cn+4=G3+P3Cn+z=G3+G2P3+G1P1P2+G0P1P2P3+

P0P1P2P3Cn

=G*+P*Cn

(2.32)其中 P*=P0P1P2P3 G*=G3+G2P3+G1P1P2+G0P1P2P3图2.13用两个16位全先行进位部件级联组成的32位ALU2.5.3内部总线根据总线所在位置,总线分为:内部总线外部总线按总线的逻辑结构来说,总线可分为:单向传送总线双向传送总线2.5.4定点运算器的基本结构运算器包括ALU、阵列乘除器、寄存器、多路开关、三态缓冲器、数据总线等逻辑部件。计算机的运算器大体有如下三种结构形式:单总线结构的运算器双总线结构的运算器三总线结构的运算器

1.单总线结构的运算器ABABC2.双总线结构的运算器ABC3.三总线结构的运算器ABC2.6浮点运算方法和浮点运算器

2.6.1浮点加法、减法运算设有两个浮点数x和y,它们分别为 x=2Ex·Mx y=2Ey·My其中Ex和Ey分别为数x和y的阶码,Mx和My为数x和y的尾数。两浮点数进行加法和减法的运算规则是x±y=(Mx2Ex-Ey

±My)2Ey,Ex<=Ey(2.39)浮点加减运算操作流程对阶操作小阶向大阶看齐,大阶不变。即小阶的尾数向右移位(相当于小数点左移),每右移一位,其阶码加1,直到两数的阶码相等为止,右移的位数等于阶差△E。

原因是什么?结果规格化右规处理:

01.x1…xn 10.x1…xn尾数右移1位,阶码加1,左边补1位左规处理:

11.x1…xn 00.x1…xn尾数左移1位,阶码减1,右边补1位[例25]舍入处理“0舍1入”法“恒置一”法在IEEE754标准中,舍入处理有四种可选方法:就近舍入朝0舍入朝+∞舍入朝-∞舍入浮点数的溢出

阶码上溢阶码下溢尾数上溢尾数下溢2.6.2浮点乘法、除法运算设有两个浮点数x和y:x=2Ex·Mxy=2Ey·My

浮点乘法运算的规则是 x×y=2(Ex+Ey)·(Mx×My)浮点除法运算的规则是 x÷y=2(Ex-Ey)·(Mx÷My)(2.41)(2.40)浮点数的乘除运算大体分为四步: 第一步,0操作数检查; 第二步,阶码加/减操作; 第三步,尾数乘/除操作; 第四步,结果规格化及舍入处理。(1)浮点数的阶码运算[x+y]移

=[x]移+[y]补

(mod2n+1)

(2.42)

[x-y]移=[x]移+[-y]补(2.43)10上溢11下溢00负01正(2)尾数处理

浮点加减法对结果的规格化及舍入处理也适用于浮点乘除法。

截断处理

舍入处理2.6.3浮点运算流水线1.流水线原理流水线的分类:线性流水线和非线性流水线

设过程段Si所需的时间为τi,缓冲寄存器的延时为τl,线性流水线的时钟周期定义为

τ=max{τi}+τl=τm+τl

(2.44)

故流水线处理的频率为f=1/τ。

从理论上说,一个具有k级过程段的流水线处理n个任务需要的时钟周期数为

Tk=k+(n-1)

(2.45)

如果用非流水线的硬件来处理这n个任务,时间上只能串行进行,则所需时钟周期数为

TL=n·k

(2.46)

将TL和Tk的比值定义为k级线性流水线的加速比:

Ck=TL/Tk=n·k/[k+(n-1)] (2.47)

当n>>k时,Ck→k。这就是说,理论上k级线性流水线处理几乎可以提高k倍速度。但实际上由于存储器冲突、数据相关,这个理想的加速比不一定能达到。2.流水线浮点加法器

[例29] [例30]2.6.4浮点运算器实例1.CPU之外的浮点运算器(1)以异步方式与80386并行工作,80x87相当于386的一个I/O部件,本身有它自己的指令,但不能单独使用,它只能作为386主CPU的协处理器才能运算。(2)可处理包括二进制浮点数、二进制整数、和压缩十进制数串三大类7种数据,其中浮点数的格式符合IEEE754标准。字整数(16位整数)短整数(32位整数)长整数(64位整数)短实数(32位浮点数)长实数(64位浮点数)临时实数(80位浮点数)十进数串(十进制18位)7种数据类型在寄存器中表示如下:S15位(二进制补码)S31位(二进制补码)S63位(二进制补码)S指数尾数(23位)S指数尾数(52位)S指数尾数(64位)S-d17d16…d1d080x87的内部结构逻辑框图用每两位表示寄存器堆栈中每个寄存器的状态,即特征值为00—11四种组合时表明相应的寄存器有正确数据、数据为0、数据非法、无数据四种情况。加速移位操作处理浮点数的指数和尾数八个80位字长以“先进后出”方式管理的寄存器组用于表示80287的结果处理情况,例如当“忙”标志为1时,表示正在执行一条浮点运算指令,为0则表示80×87空闲。状态寄存器的低6位指出异常错误的6种类型,与控制寄存器低6位相对应。当对应的控制寄存器位为0(未屏蔽)而状态寄存器位为1时,因发生某种异常错误而产生中断请求。用于控制80287的内部操作。2.CPU之内的浮点运算器

奔腾CPU将浮点运算器包含在芯片内。浮点运算部件采用流水线设计。指令执行过程分为8段流水线。一般情况下,由U流水线完成一条浮点数操作指令。浮点部件内有浮点专用加法器、乘法器和除法器、寄存器堆等。对于浮点数的取数、加法、乘法等操作,采用了新的算法,其执行速度是80486的10倍多。假设有4个过程段组成流水线浮点加法器,每个过程段所需的时间为:求阶差τ1=70ns,对阶τ2=60ns,相加τ3=90ns,规格化τ4=80ns,缓冲寄存器L的延时为tl=10ns,求4级流水线加法器的加速比为多少?(2)如果每个过程段的时

温馨提示

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

评论

0/150

提交评论