上海交通大学“计算机组成与系统结构”(第2章 运算方法和运算器)_第1页
上海交通大学“计算机组成与系统结构”(第2章 运算方法和运算器)_第2页
上海交通大学“计算机组成与系统结构”(第2章 运算方法和运算器)_第3页
上海交通大学“计算机组成与系统结构”(第2章 运算方法和运算器)_第4页
上海交通大学“计算机组成与系统结构”(第2章 运算方法和运算器)_第5页
已阅读5页,还剩141页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成与系统结构

上海交通大学网络教育学院

陈泽宇博士、副教授

刖百

第1章计算机系统概论

第2章运算方法和运算器

第3章存储系统

第4章指令系统

第5章中央处理器

第6章总线系统

X第7章外围设备

第8章输入输出系统

第9章并行组织

2

第2章运算方法和运算器

2.1数据与文字的表示方法

2.2定点加法减法运算

2.3定点乘法运算

2.4定点除法运算

2.5定点运算器的组成

2.6浮点运算方法和浮点运算器

3

2.1数据与文字的表示方法

2.1.1数据格式

2」.2数的机器码表示

2.1.3字符与字符串的表示方法

2.1.4汉字的表示方法

2.1.5校验码

4

2.1.1数据格式

1.定点数的表示方法

2.浮点数的表示方法

3.十进制数串的表示方法

5

•计算机中常用的数据表示格式有两种

・定点格式

-容许的数值范围有限,但要求的处理硬件

比较简单

•浮点格式

-容许的数值范围很大,但要求的处理硬件

比较复杂

6

1.定点数的表示方法

•所谓定点格式,即约定机器中所有数据的

小数点位置是固定不变的

•由于约定在固定的位置,小数点就不再使

用记号来表示

•通常将数据表示成纯小数或纯整数

7

•假设用一个n+1位字来表示一个定点数x,其

中一位X。用来表示数的符号位,其余位数代

表它的量值

•符号位X。放在最左位置,并用数值0和1分别

代表正号和负号

8

•如果数X表示的是纯小数

-小数点位于X。和~之间

-数的表示范围为:0<|x|<1-2'n

•如果数X表示的是纯整数

-小数点位于最低位X”的右边

-数的表示范围为:00|x|02n.i

9

•目前计算机中多采用定点纯整数表

示,因此将定点数表示的运算简称

为整数运算

10

2.浮点数的表示方法

•示例

-电子的质量(9X10-28克)和太阳的质量

(2X1033克)相差甚远,在定点计算机中无

法直接来表示这个数值范围

-为了送入定点计算机进行某种运算,必须

对它们分别取不同的比例因子,使其数值部

分绝对值小于1,即:

9X10—28=0.9X10—27

2X1033=0.2X1034

•浮点表示法

-把一个数的有效数字和数的范围在计算机

的一个存储单元中分别予以表示

-这种把数的范围和精度分别表示的方法,

相当于数的小数点位置随比例因子的不同

而在一定范围内自由浮动,所以称为浮点

表示法

12

浮点数的一般表示

•一个十进制数N可以写成:N=10e.M

•一个二进制数N可以写成:N=2e.M

-其中,

•M称为浮点数的尾数,是一个纯小数;

•e是比例因子的指数,称为浮点的指数,是

一个整数

13

■在机器中表示一个浮点数时

-一是要给出尾数

•用定点小数形式表示

•尾数部分给出有效数字的位数,因而决定了浮点

数的表示精度

-二是要给出指数

•用整数形式表示,常称为阶码

•阶码指明小数点在数据中的位置,因而决定了浮

点数的表示范围

14

IEEE754标准格式

313023220

32位浮点数S/•M

•32位的浮点数中

-S是浮点数的符号位

•占1位,安排在最高位

•S=0表示正数,S=1表示负数

-M是尾数

•放在低位部分,占用23位

•用小数表示,小数点放在尾数域的最前面

15

-E是阶码

•占用8位

•阶符采用隐含方式,即采用移码方式来表

示正负指数

・将浮点数的指数真值e变成阶码E时,应

将指数e加上一个固定的偏移值127

(01111111),BPE=e+127

16

浮点数的规格化表示

•若不对浮点数的表示做出明确规定,

同一个浮点数的表示就不是唯一的

•例如,

(1.75)10=1.11X20(IEEE规格化表示)

=0.111X21(传统规格化表示)

=0.0111X22

=0.00111X23

17

传统规格化表示

•为了提高数据的表示精度,当尾数不

为。时,尾数域的最高有效位应为1,

否则要以修改阶码同时左右移小数点

的办法,使其变成符合这一要求的表

示形式,这称为浮点数的规格化表示

18

IEEE规格化表示

・IEEE754标准中,一个规格化的32位浮点

数X的真值可表示为

x=(-l)sX(l.M)X2ET27e=E-127

其中尾数域所表示的值是1.M

•因为规格化的浮点数的尾数域最左(最高

有效位)总是1,故这一位经常不予存储,

而认为隐藏在小数点的左边,这可以使尾

数表示范围多一位,达24位

19

机器零

•当一个浮点数的尾数为0,不论其阶

码为何值,

­或者当阶码的值遇到比它能表示的最

小值还小时,不管其尾数为何值,

•计算机都把该浮点数看成零值,称为

机器零

20

浮点数表示范

符号位S(1位)阶码E(8位)尾数MQ3位)真值x(共32位)

0/100零(正零/负零)

0/1255(全1)0无穷大(+oo/-oo)

0/11-254刈(-l)sX(l.M)X2E-127为IEEE规格化数

•在32位浮点数表示中,要除去E用全0和全1(2551。)

表示零和无穷大的特殊情况,指数的偏移值不选128

(10000000),而选127(01111111)

•对于规格化浮点数,E的范变为1到254,真正的指

数值e则为-126到+127

因此32位浮点数表示的绝对值的范|是

2-126〜2127仁10-38〜1()38(以1。的幕表示)

21

浮点数的采用

•浮点数所表示的范围远比定点数大

•一般在高档微机以上的计算机中同时

采用定点、浮点表示,由使用者进行

选择

•而单片机中多采用定点表示

22

十进制数、二进制数转换(补充)

•十进制数■二进制数转换方法

-将十进制数的整数部分除以2,每除一次取一次余数,

无余数取零,按逆序取值

-将十进制数的小数部分乘以2,每乘一次取一次整数,

无整数取零,按顺序取值

-例:

(235.25)10=11101011.01

•二进制数■十进制数转换方法

-按权相加

-例:

5422

110101.01=2+2+2+1+2-=32+16+4+1+0,25=(53.25)10

23

3

z

®s

sM

d

P21例1

[例1]若浮点数X的754标准存储格式为(41360000)16,求其

浮点数的十进制值。

[解:]

将16进制数展开后,可得二进制数格式为

0too0001001101100000000000000000

S阶码(8位)尾数(23位)

指数e二阶码-127=10000010-01111111=00000011=(3)10

包括隐藏位1的尾数l.M=L01101100000000000000000=1.011011

于是有

se3

x=(-l)Xl.MX2=+(l.011011)X2=+1011.011=(11.375)10

25

P21例2

[例2]将十进制数20.59375转换成754标准的32位浮点数的二

进制存储格式。

[解:]

首先分别将整数和分数部分转换成二进制数:

20.59375=10100.10011

然后移动小数点,使其在第L2位之间

10100.10011=1.010010011X24e=4

于是得到:

S=0,E=4+127=131,M=010010011

最后得到32位浮点数的二进制存储格式为:

01000001101001001100000000000000=(41A4C000)i6

26

3.十进制数串的表示方法

•十进制数串在计算机内主要有两种表示形式:

­字符串形式

-一个字节存放一个十进制的数位或符号位

-占用连续的多个字节

-主要用在非数值计算的应用领域中

­压缩的十进制数串形式

-一个字节存放两个十进制的数位

-节省存储空间

-便于直接完成十进制数的算术运算

27

2.1.2数的机器码表示

1.原码表示法

2.补码表示法

3.反码表示法

4.移码表示法

28

•符号位如何表示?是否也同数值位一道参

加运算操作?

•为了妥善的处理好这些问题,就产生了把

符号位和数值位一起编码来表示相应的数

的各种表示方法,如原码、补码、反码、

移码等

•为了区别一般书写表示的数和机器中这些

编码表示的数,通常将前者称为真值,后

者称为机器数或机器码

1.原码表示法

•定点小数

-若定点小数的原码形式为Xo.xxx2...,贝!J原

码表示的定义是

x1>x>0

[x]原一jl—x=]+1刈O>X>-1

-例如,

x=+0.1001,贝(j[x]原=0.1001

x=-0.1001,贝(j[x]原=1.1001

30

-对于正数x=+0.x1x2..n

[x]原=0・X/2…Xn

-对于负数X=-0.X/2・.

[x]原=l・XiX2…Xn

-对于0

原码机器中往往有“+0,“-0”之分,故

有两种形式:

[+0]原=0.000...0

[―0]原=1.000...0

31

•定点整数

-若定点整数的原码形式为XoX/2…,则原码

表示的定义是

x2">x>0

[%]原-

2〃一x=2〃+x0>X>-2"

•特点

-采用原码表示法简单易懂,但它的最大缺点

是加法运算复杂

-为了解决这些矛盾,人们找到了补码表示法

32

2.补码表示法

•负数用补码表示时,可以把减法转化为加法。

这样,在计算机中实现起来就比较方便

•定点小数

-若定点小数补码形式为Xo.X/2…Xn,则补码表示的

定义是

fx1>x>0

H补八、

—I1Qd2)

I2+x—2Ix0>x2—1

-例如,

X=+O.ion,贝!j[x]补=0.1011

X=-0.1011,贝!)[x]补=10+x=10.0000-0.1011=1.0101

33

-对于正数x=+0.x1x2...xn

[x]补=0.xrx2...xn

~对于负数X=-0.X/2…乂口

[x]^=10.00...0-0.x1x2...xn(mod2)

-对于0

[+0]补=[-0]补=0.0000(mod2)

0的补码表示只有一种形式

34

•定点整数

-对定点整数,补码表示的定义是

_fx2n>x>0

“补一j+x=2〃+i-1x|0>x>-2z(mod2〃+i)

•特点

-采用补码表示法进行减法运算就比原码方便得多了。

因为不论数是正还是负,机器总是做加法,减法运算可

变为加法运算

-但为了用加法代替减法,结果还得在求补码时作一次

减法,这显然是不方便的

-反码表示法可以解决负数的求补问题

35

3.反码表示法

•定点小数

-对定点小数,反码表示的定义为

X1>x>0

国反二

(2-2-n)+x0>x>-1

36

-对于正数x=+0.x1x2...xn

[x]反=0・X/2…Xn

-对于负数X=-0.X/2…Xn

[x]反=1・再工2.・・4

-对于0

有[+0]反和[-0]反之分:

[+0]反=0.00...0

[-0]反=1.11…1

37

・定点整数

-对定点整数,反码表示的定义为

X2n>x>0

国反二

(2〃+i—1)+x0>x>—2〃

38

反码、补码计算方法(补充)

•反码

-正数的反码与原码相同;

-负数的反码是:符号位不变,数值位逐位取反

•补码

-正数的补码与原码相同;

-负数的补码是:符号位不变,数值位逐位取反

加1

39

4.移码表示法

•移码通常用于表示浮点数的阶码

・定点整数

-假定定点整数移码形式为X0X/2…X”时,

移码的传统定义是

nn

H移=2、x2>x>-2

式中,2n是一个固定的偏移值

40

-例如,

当正数x=+10101时,[x]移=1,10101

当负数x=-10101时,[x]移=25+x=25-10101=0,01011

-移码中的逗号不是小数点,而是表示左边一位

是符号位

-移码中符号位X。表示的规律与原码、补码、

反码相反

41

•数据四种机器表示法中,移码表

示法主要用于表示浮点数的阶码

•由于补码表示对加减运算十分方

便,因此目前机器中广泛采用补

码表示法

42

co

寸9

鼠222

888

P25例3

[例3]以定点整数为例,用数轴形式说明原码、反码、补码表

示范围和可能的数码组合情况。

[解:]

表示范围:原码(-2'2n),反码(-212n),补码[-2n,2n)

在补码表示中“0”只有一种形式,且用补码表示负数时范围可到-

Cn

11...110...0110…0…000...0101...1

I________I_________1__________I______n_I

-(2a-D-10颠+1+(2"-1)

一人人000101...1

10・r01L・・1I00・・・0UU..JI।

nU

-(2-D-io反码+1+(2-D

10...0io...0111...100...000...0101...1

I________L________L_

-2n-(2n-D-io补码+i+(2"-D

44

P26例4

[例4]将十进制真值x(・127,-1,0,+1,+127)列表表示成二进制数

及原码、反码、补码、移码值。

[解:]

真值X(十进制)真值X(二进制)[x]原㈤反[x]补[x]移

-127-0111111111111111100000001000000100000001

-1-0000000110000001111111101111111101111111

1000000011111111

0000000000000000010000000

0000000000000000

+1+0000000100000001000000010000000110000001

+127+0111111101111111011111110111111111111111

其中,0在[x]原,[x]反中有两种表示,[x]移=x+27=x+10000000

由表中数据可向,补码值与移码值差别仅在于符号位不同

45

P26例5

[例5]设机器字长16位,定点表示,尾数15位,数符1位,问:

⑴定点原码整数表示时,最大正数是多少?最小负数是多少?

(2)定点原码小数表示时,最大正数是多少?最小负数是多少?

[解:]

(1)定点原码整数表示

最大正数值二⑵5一1)w=(+32767)10

0111111111111111

最小负数值=-(215-1)10=(-32767)10

1111111111111111

(2)定点原码小数表示

最大正数值=(1-2-15)1。=(+0.111...Il%

最小负数值=-(1-2-15)]0=(-0・111・・・11)2

P26例6

[例6]假设由S,E,M三个域组成的一个32位二进制数所表示的非零规格化

浮点数x,真值表示为(注:非IEEE754标准):x=(-l)sX(LM)X2E-128

问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是

多少?

[解:]

(1)最大正数:S=0,E=255,M=-2-23

23127

01111111111111111111111111111111x=[l+(l-2-)]X2

(2)最小正数:S=0,E=0,M=0

00000000000000000000000000000000x=l.0X2—128

(3)最小负数:S=l,E=255,M=l-2-23

23127

11111111111111111111111111111111x=-[l+(l-2-)]X2

(4)最大负数:S=l,E=0,M=0

10000000000000000000000000000000x=-1.0X2T28

47

2.1,3字符与字符串的表示方法

•字符表示

•字符串表示

48

字符表示

•目前国际上普遍采用的字符系统是

ASCH码

-美国国家信息交换标准字符码

—P27表2」

•包括

-10个十进制数码

-26个英文字母

-一定数量的专用符号

-总共128个元素

因此二进制编码需要7位

49

表2.1ASCH字符编码表

000001010on100101no111

b3b2bl

0000NULDLESP0@Pp

0001SOHDC1*!1AQaq

0010STXDC2,,2BRbr

0011ETXDC3#3CScs

0100EOTDC4$4DTdt

0101ENQNAK%5EUeu

0110ACKSYN&6FVfV

0111DELETB7GWgw

1000BSCAN(8HXhX

1001HTEM)9IYiy

**

1010LFSUB*JZjz

1011VTESC+*K[k(

1100FFFS9<L\11

1101CRGS-—M1m}

1110SORS•>Nn

/?

miSIUSO_0DEL50

•ASCH码规定8个二进制位的最高一位为0,

余下的7位可以给出128个编码,表示128个

不同的字符

其中95个编码,对应着计算机终端能敲入并且

可以显示的95个字符,打印机设备也能打印这

95个字符

-另外的33个字符,不对应任何一个可以显示或

打印的实际字符,它们被用作控制码,控制计算

机某些外围设备的工作特性和某些计算机软

件的运行情况

51

字符串表示

•字符串是指连续的一串字符

-通常方式下,它们占用主存中连续的多个字

节,每个字节存一个字符

-当主存字由2个或4个字节组成时,在同一个

主存字中,既可按从低位字节向高位字节的

顺序存放字符串的内容,也可按从高位字节

向低位字节的次序顺序存放字符串的内容

52

•例如:

-字符串IFuA>BuTHENuREAD(C)可以按图所

示从高位字节到低位字节依次存在主存中

IFUA

>BUT

HENu

READ

(C)

•其中设主存单元长度由4个字节组成

•每个字节中存放相应字符的ASCH值,文字表达式中的

空格“口”在主存中也占一个字节的位置

53

2.1.4汉字的表示方法

1.汉字的输入编码

2.汉字内码

3.汉字字模码

54

1-汉字的输入编码

•为了能直接使用西文标准键盘把汉

字输入到计算机,就必须为汉字设计

相应的输入编码方法

■当前采用的方法主要有以下三类:

-数字编码

-拼音码

-字形编码

55

数字编不

•常用的是国标区位码,用数字串代表一个汉字输入

-区位码是将国家标准局公布的6763个两级汉字分为94

个区,每个区分94位,实际上把汉字表示成二维数组,每

个汉字在数组中的下标就是区位码。

-区码和位码各两位十进制数字,因此输入一个汉字需按

键四次

•数字编码输入的优点是无重码,且输入码与内部编

码的转换比较方便,缺点是代码难以记忆

56

拼音彳闫

•拼音码是以汉语拼音为基础的输入方法

但汉字同音字太多,输入重码率很高,因此

按拼音输入后还必须进行同音字选择,

影响了输入速度

57

字形编码

•字形编码是用汉字的形状来进行的编码

•把汉字的笔划部件用字母或数字进行编码

按笔划的顺序依次输入,就能表示一个汉字

•例如五笔字型编码

58

•为了加快输入速度,在上述方法基础上,发

展了词组输入、联想输入等多种快速输

入方法

•理想的输入方式是利用语音或图象识别

技术“自动”将拼音或文本输入到计算

机内,使计算机能认识汉字,听懂汉语,并

将其自动转换为机内代码表示

59

2.汉字内石

•汉字内码是用于汉字信息的存储、交换、

检索等操作的机内代码,一般采用两个字节

表示

英文字符的机内代码是七位的ASCH码,当

用一个字节表示时,最高位为“0”

为了与英文字符能相互区别,汉字机内代码

中两个字节的最高位均规定为“1”

60

3.汉字字模码

字模码是用点阵表示的汉字字形代码,它是汉

字的输出形式

•根据汉字输出的要求不同,点阵的多少也不同

-16X16、24X24、32X32,甚至更高

•字模点阵的信息量很大,所占存储空间也很大

61

示例(P29图2.1)

004,10

/I£10

FF

0410

0490

□0080

IFFC

1084

1084

1084

10FF

7F40

0120

0210

04

08,

70.

图2.1汉字的字模点阵及编码

62

•汉字的输入编码、汉字内码、

字模码是计算机中用于输入、

内部处理、输出三种不同用途

的编码

63

24.5校验码

•元件故障、噪声干扰等各种因素常常导致计算机

在处理信息过程中出现错误

•为了防止错误,可将信号采用专门的逻辑线路进

行编码以检测错误,甚至校正错误

­通常的方法是,在每个字上添加一些校验位,用来

确定字中出现错误的位置

•计算机中常用这种检错或纠错技术进行存储器读

写正确性或传输信息的检验

64

奇偶校验

最简单且应用广泛的检错码是采用一位校验

位的奇校验或偶校验

・只有当X中包含有奇数个1时,奇校验位C=0

•只有当x中包含有偶数个1时,偶校验位C=0

•奇偶校验可提供奇数个错误检测,但无法检

测偶数个错误,更无法识别错误信息的位置

65

示例

•假设一个字X从部件A传送到部件B

-在源点A,把X与校验位C合在一起(X0X1...Xn—C)送

到B

-假设在B点真正接收到的是x=(x°,x「…xn_;C')

—然后计算

F=x°,㊉xJs…〶xn_;©C'©代表按位力口

-若F=l,意味着收到的信息有错

•例如(X0X1…Xn—)中正巧有一位变“反”时就会出现这种

情况

-若F=O,表明x字传送正确

66

P30例7

[例7]已知下表中左面一栏有5个字节的数据。请分别用奇校

验和偶校验进行编码,填在中间一栏和右面一栏。

[解:]

假定最低一位为校验位,其余高8位为数据位,列表如下

从中看出,校验位的值取0还是取1,是由数据位中1的个数决定的

数据1的个数偶校验编码c奇校验编码C

101010104101010100101010101

010101003010101001010101000

000000000000000000000000001

011111117011111111011111110

111111118111111110111111111

67

2.2定点加法减法运算

2.2.1补码加法

2.2.2补码减法

2.2.3溢出概念与检测方法

X2.2.4基本的二进制加法/减法器

X2.2.5十进制加法器

68

2.2.1补码加法

•负数用补码表示后,可以和正数一样来处理

-这样,运算器里只需要一个加法器就可以了,不必为了

负数的加法运算,再配一个减法器

•补码加法的公式:

冈补+[力补=[*+力补(mod2)

•在模2意义下,任意两数的补码之和等于该两数

之和的补码,这是补码加法的理论基础

69

o

86

LL

总88

dd

P31例8

[例8]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

71

P31例9

[例9]x=+0.1011,y=—0.0101,求x+y。

[解:]

[x]补=0.1011,[y]补=1.1011

[x]补0.1011

+[y]补1.1011

[x+y]补10,0110

所以,x+y=0.0110

72

•补码加法的特点

-一是符号位要作为数的一部分一起

参加运算

-二是要在模2的意义下相加,即超过

2的进位要丢掉

73

2.2.2补码减法

­负数的减法运算也要设法化为加法来做,而不使

用直接减法

-可以和常规的加法运算使用同一加法器电路,从而简化

了计算机的设计

•补码减法的公式:

[X—口补=[X]补一[月补=[*]补+[—力补(mod2)

•从[y]补求[・y]补的法则:

对[打补包括符号位“求反且最末位加1”,即可得到卜力

74

LO

鼠2£2

s

P32例10

[例已知求:

10]xx=-0.1110,x2=+0.1101,

[xj补,[―xJ补,补,[―*2]补。

[解:]

[xj补=1.0010

[一X1]补=0.1101+0.0001=0.1110

[牙21补=0.1101

[一彳21补=1・0010+0.0001=1.0011

76

P33例11

[例11]X=+O.1101,F=+0.0110,求X—y。

[解:]

[x]补=0.1101

[y]补=0.0110,[―尸]补=1.1010

[x]补0.1101

+[-y]#1.1010

[x—y]补10.0111

所以,X—y=+0.0111

77

223溢出概念与检测方法

•在定点小数机器中,数的表示

范围为|x|<1

•在运算过程中如出现大于1的

现象,称为“溢出”

•在定点机中,正常情况下溢出

是不允许的

78

2

P33例12

[例12]x=+0.1011,y=+0.1001,求x+y。

[解:]

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

[才]补0.1011

+[力补0.1001

[x+力补1.0100

两个正数相加的结果成为负数,这显然是错误的

80

P33例13

[例13]^=-0.1101,y=-0.1011,求x+yo

[解:]

[x]补=1.0011,[y]#=1.0101

[x]补1.0011

+[力补1.0101

[x+y]补0.1000

两个负数相加的结果成为正数,这同样是错误的

81

溢出概念

•两个正数相加,结果大于机器所能表示的最大正数,称为正溢

•两个负数相加,结果小于机器所能表示的最小负数,称为负溢

•定点小数的溢出(P33图2.2)

负溢出正溢出

负小数里掇爰

-10+1

图2.2定点小数的溢出

•对定点整数而言,也同样存在正溢、负溢问题

82

溢出检测方法

•双符号位法(变形补码、模4补码)

-如果两个数相加后,其结果的符号位出

现“01”或“10”两种组合时,表示发生溢

-最高符号位永远表示结果的正确符号

83

s

寸9

。b

8g寸

dd

P34例14

[例14]x=+0.1100,y=+0.1000,求x+y。

[解:]

[x]补=00.1100,[内补=00.1000

[x]补00.1100

+[y]补00.1000

01,0100

两个符号位出现“01”,表示正溢

85

P34例15

[例15]^=-0.1100,y=-0.1000,求x+y。

[解:]

[x]补=11.0100,[内补=11.1000

[才]补11.0100

+[力补11.1000

10.1100

两个符号位出现“10”,表示负溢

86

结论

1.当以模4补码运算,运算结果的二符号位相异

时,表示溢出;相同时,表示未溢出

2.模4补码相加的结果,不论溢出与否,最高符万

位始终指示正确的符号

•在定点机中,当运算结果发生溢出时,机

器通过逻辑电路自动检查出溢出,并进行

中断处理

87

2.3定点乘法运算

2.3.1原码并行乘法

232补码并行乘法

88

2.3.1原码并行乘法

1.人工算法与机器算法的同异性

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

X3.带符号的阵列乘法器

89

1.人工算法与机器算法的同异性

在定点计算机中,两个原码表示的数相乘的

运算规则

-乘积的符号位由两数的符号位按异或运算得到

-而乘积的数值部分则是两个正数相乘之积

-乘积符号的运算法则:

•同号相乘为正

•异号相乘为负

90

例题(人工算法)

•设x=0.1101,?=0.1011,用习惯方法求其乘

积,其过程如下:

0.1101(X)

x0.1011(y)

1101

1101

0000

+1101

a~~loooiiii~(T)-

91

•人们习惯的人工算法对机器并不完

全适用

-机器通常只有n位长,两个n位数相乘,

乘积可能为2n位

-只有两个操作数相加的加法器,难以

胜任将各n位积一次相加起来的运算

­串行算法

-早期计算机中为了简化硬件结构,采用串行的1位乘

法方案,即多次执行“加法一移位”操作来实现

-这种方法并不需要很多器件

-然而串行方法毕竟太慢,不能满足科学技术对高速乘

法所提出的要求

•并行算法

-自从大规模集成电路问世以来,高速的单元阵列乘法

器应运而生,出现了各种形式的流水式阵列乘法器,

它们属于并行乘法器

93

232补码并行乘法

X1.补码与真值的转换公式

X2.一般化的全加器形式

X3.直接补码阵列乘法器

94

・补码乘法因符号位参与运算,

•可以完成补码数的“直接”乘法,

•因而大大加速了乘法过程

95

2.4定点除法运算

2.4.1原码除法算法原理

242并行除法器

96

2.4.1原码除法算法原理

•两个原码表示的数相除时

-商的符号由两数的符号按位相加求得

-商的数值部分由两数的数值部分相除求得

97

•串行算法

-早期计算机中,为了简化结构,硬件除法器

的设计采用串行的1位除法方案,即多次

执行“减法一移位”操作来实现,并使用

计数器来控制移位次数

-由于串行除法器速度太慢,目前已被淘汰

98

2.4.2并行除法器

X1.可控加法/减法(CAS)单元

X2.不恢复余数的阵列除法器

99

•并行算法

-和阵列乘法器相似,阵列式除法器也是一种

并行运算部件,采用大规模集成电路制造

-与早期的串行除法器相比,阵列除法器不仅

所需要的控制线路少,而且能够提供令人满

意的高速运算速度

100

2.5定点运算器的组成

2.5.1逻辑运算

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

2.5.3内部总线

2.5.4定点运算器的基本结构

101

•运算器是数据的加工处理部件,是CPU

的重要组成部分

■其最基本的结构中必须有算术/逻辑运

算单元、数据缓冲寄存器、通用寄存器、

多路转换器和数据总线等逻辑构件

102

2.5.1逻辑运算

•计算机中除了进行加、减、乘、除等基本

算术运算以外,还可对两个或一个逻辑数进

行逻辑运算

-所谓逻辑数,是指不带符号的二进制数

-利用逻辑运算可以进行两个数的比较,或者从

某个数中选取某几位等操作

-在非数值应用的广大领域中,逻辑运算是非

常有用的

103

计算机中的逻辑运算

•主要是指逻辑非、逻辑加、逻辑乘、逻辑

异等四种基本运算

逻辑非运算(NOT)

-对某数进行逻辑非运算,就是按位求它的反

-逻辑非也称求反

-常用变量上方加一横“一”来表示

•逻辑加运算(OR)

-对两个数进行逻辑加,就是按位求它们的“或”

-逻辑加又称逻辑或

-常用记号“V”或“+”来表示

104

•逻辑乘运算(AND)

-对两数进行逻辑乘,就是按位求它们的“与”

-逻辑乘又称逻辑与

-常用记号或来表示

逻辑异运算(XOR)

-对两数进行逻辑异就是按位求它们的模2和

-逻辑异又称按位加

-常用记号“〶”来表示

105

例题

•P50例21

•P51例22

•P51例23

•P52例24

106

温馨提示

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

评论

0/150

提交评论