计算机组成原理第四版第二章_第1页
计算机组成原理第四版第二章_第2页
计算机组成原理第四版第二章_第3页
计算机组成原理第四版第二章_第4页
计算机组成原理第四版第二章_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

2.1数据与文字的表示方法

2.2

定点加法、减法运算

2.3定点乘法运算

2.4定点除法运算

2.5定点运算器的组成

2.6浮点运算方法和运算器第二章运算方法和运算器Back2.1数据与文字的表示方法选择计算机中数据的表示,依据:p16计算机中常用的数据表示格式有两种,一是定点格式,二是浮点格式。1.定点数的表示方法2.浮点数的表示方法3.十进制数串表示法4.数的机器码表示5.字符与字符串的表示法6.汉字表示法Back1.定点数的表示方法定点表示:约定机器中所有数据的小数点位置是固定不变的。通常将数据表示成纯小数或纯整数。计算机采用定点数表示时,对于既有整数又有小数的原始数据,需要设定一个比例因子,数据按其缩小成定点小数或扩大成定点整数再参加运算,运算结果,根据比例因子,还原成实际数值。若比例因子选择不当,往往会使运算结果产生溢出或降低数据的有效精度。Back为便于软件移植,按照IEEE754标准,32位浮点数和64位浮点数的标准格式为:

2.浮点数的表示方法浮点表示法:与科学计数法相似,任意一个R进制数N,总可以写成N

=

R

e

把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示,这种把数的范围和精度分别表示的方法,数的小数点位置随比例因子的不同而在一定范围内自由浮动。next同一个浮点数的表示方法不是唯一的,如:

(1.75)10=1.11×20

(IEEE规格化表示)

=0.111×21

(传统规格化表示)

=0.0111×22

=0.00111×23规格化数:p17IEEE754标准的规格化:机器零:当浮点数的尾数为0,不论其阶码为何值,或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,称为机器零next数值的表示范围:浮点表示法所能表示的数值范围将远远大于定点表示法精度:对于字长相同的定点数与浮点数来说,浮点数虽然扩大了数的表示范围,但这是以降低精度为代价的,也就是数轴上各点的排列更稀疏了数的运算:浮点运算要比定点运算复杂溢出处理:定点运算时,当运算结果超出数的表示范围,就发生溢出;而在浮点运算时,运算结果超出尾数的表示范围却并不一定溢出,只有当阶码也超出所能表示的范围时,才发生溢出。定点数与浮点数的比较Back3.十进制数串的表示方法

目前,大多数通用性较强的计算机都能直接处理十进制形式表示的数据。十进制数串在计算机内主要有两种表示形式:1.字符串形式2.压缩的十进制数串形式

Back字符串形式:一个字节存放一个十进制的数位或符号位。为了指明这样一个数,需要给出该数在主存中的起始地址和位数(串的长度)。压缩的十进制数串形式:一个字节存放两个十进制的数位。它比前一种形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。Back4.数的机器码表示原码反码补码移码Back原码原码定义:原码的性质:1.

符号位+数的绝对值。

2.

0有两个编码。3.

加减运算规则复杂,乘除运算规则简单。

4.

表示简单,易于和真值之间进行转换。

Back反码反码定义:反码性质:1.0有2个编码。

2.现在计算机中,较少使用反码。Back补码Back移码移码定义:移码性质:

1.

最高位为符号位。

2.

0有唯一编码。

3.

保持了数据原有的大小顺序。

4.

移码只用于浮点数的阶码部分,故只用于表示整数。Back5.字符与字符串的表示法字符:目前国际上普遍采用的字符系统是七单位的ASCII码(美国国家信息交换标准字符码)字符串:是指连续的一串字符,通常方式下,它们占用主存中连续的多个字节,每个字节存一个字符。当主存字由2个或4个字节组成时,在同一个主存字中,既可按从低位字节向高位字节的顺序存放字符串的内容,也可按从高位字节向低位字节的次序顺序存放字符串的内容。Back6.汉字表示法汉字的输入码汉字内码汉字字模码这三种编码是计算机中用于输入、内部处理、输出三种不同用途的编码。Back2.2定点加法、减法运算

A补码加法

B补码减法

C溢出及其判断

D基本的二进制加法/减法器

E十进制加法器BackA补码加法公式:

[x+y]补=

[x]补+[y]补

举例

已知x=+0.1001,y=0.0101,求x+y。解:

[x]补=0.1001,[y]补=0.0101[x]补

0.1001+[y]补

0.0101

[x+y]补

0.1110

所以x+y=+0.1110

第二章运算方法和运算器BackB补码减法公式:

[x-y]补=[x]补-[y]补=[x]补+[-y]补举例已知x=+0.1101,y=+0.0110,求x-y。解:[x]补=0.1101[y]补=0.0110,[-y]补=1.1010[x]补

0.1101+[-y]补

1.1010[x-y]补

10.0111

所以x-y=+0.0111

第二章运算方法和运算器next补充:移码的加减法

[x

+

y]移=[x]移

+[y]补

(mod

2n+1)同理

[x

-

y]移=[x]移

+[-y]补

BackC溢出及其判断

定义:当定点数加减运算的结果超出定点数所能表示的范围时就会产生溢出。两个正数相加,结果大于机器所能表示的最大正数,称为“上溢”或“正溢出”两个负数相加,结果小于机器所能表示的最小负数,称为“下溢”或“负溢出”判断方法Back举例说明溢出检测方法常用以下两种方法:

1.采用双符号位(变形补码)判断方法:

变形补码:“00”表示正数、“11”表负数,两符号位同时参加运算,运算结果符号出现01或10表明溢出。

1)若结果的符号为10表负溢出,说明运算结果为负数,其绝对值超出能表示的最大数值(即结果小于机器所能表示的最小负数)。也称下溢〉2)若结果的符号01表下溢出,说明运算结果为正数,其大于所能表示的最大正数。也称上溢〉

溢出实现:V=Sf1⊕Sf22.利用进位值的判断方法:

判断规则是:两补码数进行加减运算(减法转化为加法)时,若最高数值位有进位Cn而符号位无进位Cf时,发生正溢出。若最高数值位无进位而符号位有进位时,发生负溢出。溢出实现:V=Cn⊕CfBack第二章运算方法和运算器2.3.1原码乘法

1.定点乘法原理

2.不带符号的阵列乘法器

3.带符号的原码阵列乘法器2.3.2补码乘法

1.补码间接乘法

2.补码直接乘法2.3定点乘法运算Back设:被乘数[x]原=xf.x1x2···xn

乘数[y]原

=yf.y1y2···yn

则:乘积z=(xf⊕yf).(0.x1x2··xn)*(0.y1y2··yn)式中,xf为被乘数符号,yf为乘数符号。乘积符号的运算法则是:同号相乘为正,异号相乘为负。Back1.定点乘法原理2.不带符号的阵列乘法原理设有两个不带符号的二进制整数:A=am-1…a1a0

B=bn-1…b1b0实现这个乘法过程所需要的操作和人们的习惯方法非常类似,如下计算过程:Next2.不带符号的阵列乘法器BackBack举例1:5*5不带符号的阵列乘法器逻辑电路图Next第二章运算方法和运算器举例2:已知两个不带符号的二进制整数A

=11011,B

=10101,求每一部分乘积项aibj的值与p9p8……p0的值。解:p34例19Back3.带符号的原码阵列乘法器Back1.补码间接乘法器二进制对2求补器电路图:Next(N+1)*(N+1)位带求补级的阵列乘法器两个算前求补器的作用是:将两个操作数A和B在被不带符号的乘法阵列(核心部件)相乘以前,先变成正整数。而算后求补器的作用则是:当两个输入操作数的符号不一致时,把运算结果变成带符号的数。BackNextBack[例17]

设x=+15,y=-13,用带求补器的原码阵列乘法器求出乘积x·y=?[解:]设最高位为符号位,则输入数据为

[x]原=01111

[y]原=11101①符号位单独考虑,算前求补级后|x|=1111,|y|=1101②计算过程:③经算后求补级输出并加上乘积符号位1,则原码乘积值为111000011。④换算成二进制数真值是x·y=(-11000011)2=(-195)10⑤十进制数验证:x×y=15×(-13)=-195相等。

[例18]

设x=+15,y=-13,用带求补器的补码阵列乘法器求出乘积x·y=?[解:]设最高位为符号位,则输入数据用补码表示为

[x]补=01111

[y]补=10011

①符号位单独运算,x0⊕y0=0+1=1

尾数部分算前求补器输出为:|x|=1111,|y|=1101

②计算过程:

③经算后求补器输出为00111101,加符号位1,得

[x·y]补=100111101

④补码二进制数真值是x·y=-1×28+1×25+1×24+1×23+1×22+1×20=(-195)10

十进制数验证:

x×y=(+15)×(-13)=-195相等。Back2.并行直接补码乘法补码与真值得转换公式:

定点补码整数[N]补=anan-1…a1a0,这里an是符号位。根据[N]补的符号,补码数[N]补和真值N的关系可以表示成:表达式合并成下面的统一形式:Next一般化的全加器形式:

常规的一位全加器可假定它的3个输入和2个输出都是正权。这种加法器通过把正权或负权加到输入/输出端,可以归纳出四类加法单元。符号见P43表2.3:0类全加器没有负权输入;1类全加器有1个负权输入和2个正权输入;依次类推。对0类、3类全加器而言有:

S=/X/YZ+/XY/Z+X/Y/Z+XYZ

C=XY+YZ+ZX对1类、2类全加器,则有

S=/X/YZ+/XY/Z+X/Y/Z+XYZ

C=XY+X/Z+Y/ZNextBack3.直接补码阵列乘法器

设被乘数A和乘数B是两个5位的二进制补码数,即如果我们用括号来标注负的被加项,那么A和B相乘过程中所包含的操作步骤如下面矩阵所示:Next举例:例已知[x]补=01101,[y]补=11011求[x·y]补。

解:计算过程如下:

Back1.手算方法2.原码除法原理3.举例4.逻辑实现2.4定点除法运算Back2.4.1手算方法及过程2.4定点除法运算Back2.4.2原码除法原理

两个原码数相除时,商的符号由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得。设有被除数x,其原码为[x]原=xf.x1x2···xn

除数y,其原码为[y]原=yf.y1y2···yn

则有商q=x/y,其原码为

[q]原=(xf⊕yf).(x1x2···xn/y1y2···yn)

商的符号运算qf=xf⊕

yf与原码乘法一样,用模2求和得到。2.4定点除法运算NextBack当余数为正时,商“1”,余数左移一位,减除数;当余数为负时,商“0”,余数左移一位。加除数。流程图如下:方法1:原码加减交替法规则及其流程图Back规则需要指出的是,在定点小数除法运算时,为了防止溢出,要求被除数的绝对值小于除数的绝对值,即|X|<|Y|,且除数不能为0。另外,在原码加减交替法中,当最终余数为负数时,必须恢复一次余数,使之变为正余数,注意此时不需要再左移了。2.4.3并行除法器--原码加减交替除法逻辑结构图NextBack已知:x=0.1001,y=0.1011,用加减交替法x/y.

解:[|x|]原=[|x|]补=0.1001,[|y|]补=0.1011,[-|y|]补=1.0101

被除数x/余数r商数q00.1001+[-|y|]补

11.0101

11.111011.11000+[|y|]补

00.1011

00.011100.11100.1+[-|y|]补

11.0101

00.001100.01100.11+[-|y|]补11.0101

11.1011

11.01100.110+[|y|]补

00.1011

00.00010.1101得:q=x÷y=0.1101,余数r=2-4×0.0001Back原码一位除法——加减交替法举例2.5定点运算器组成1.逻辑运算2.多功能算数/逻辑运算单元3.内部总线4.定点运算器的基本结构BackBack2.6浮点运算方法和运算器

1浮点加法和减法

2举例

3浮点运算器的一般结构

4浮点乘法、除法运算规则

Back浮点加法和减法:

设有两个浮点数x和y,它们分别为

x=2Ex·Mxy=2Ey·My

运算规则是:x±y=(Mx2Ex-Ey±My)2Ey,Ex≦Ey其中Ex和Ey分别为数x和y的阶码,Mx和My为数x和y的尾数。

运算步骤为:1.0操作数的检查;

2.比较阶码大小并完成对阶;

3.尾数进行加或减运算;

4.结果规格化并进行舍入处理。Back例:设x=2010×0.11011011,y=2100×(-0.10101100),求x+y.

解:假设两数均以补码表示,且采用双符号位,则它们的浮点表示分别为

[x]浮=00010,00.11011011[y]浮=00100,11.01010100(1)求阶差并对阶△E=Ex-Ey[Ex-Ey]补=[Ex]补+[-Ey]补=00010+11100=11110即△E为-2,x的阶码小,应使Mx右移2位,Ex加2,

[x]浮=00100,00.00110110(11)其中(11)表示Mx右移2位后移出的最低两位数。(2)尾数求和

00.00110110(11)+11.0101010011.10001010(11)(3)规格化处理尾数运算结果的符号位与最高数值为同值,应执行左规处理,结果为11.00010101(10),阶码为00011。(4)舍入处理采用0舍入法处理,则有

11.00010101+111.00010110(5)判溢出阶码符号位为00,不溢出,故得最终结果为

x+y=2011×(-0.11101010)BackE2ACE1MQDRE加法器加法器尾码部件阶码部件浮点运算器的一般结构:BackNext浮点运算流水线:1.流水原理2.流水线浮点加法器3.举例Back浮点乘法、除法运算规则:设有两个浮点数x和y:x=Mx·2Exy=My·

2Ex则浮点乘法运算的规则是:x×y=2(Ex+Ey)·(Mx×My)则浮点除法的运算规则是:x÷y=2(Ex-Ey)·(Mx÷My)Back溢出举例【例1】已知x=+1100,y=+1000,求x+y。解:[x]补=01100[y]补=01000[x]补

01100+[y]补

0100010100两个正数相加的结果成了负数。溢出

BackNext【例2】x=-0.1101,y=-0.1011,求x+y。解:[x]补=1.0011[y]补=1.0101

[x]补

1.0011+[y]补

1.0101

0.1000两个负数相加的结果成了正数,这同样是错误的。溢出Back溢出举例一位全加器两个二进制数字Ai,Bi和一个进位输入Ci相加,产生一个和输出Si,以及一个进位输出Ci+1。表2-2中列出一位全加器进行加法运算的输入输出真值表。根据表2-2所示的真值表,三个输入端和两个输入端可按如下逻辑方程进行联系:Si=Ai⊕Bi⊕C

温馨提示

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

评论

0/150

提交评论