当前位置:文档之家› 计算机组成与系统结构复习第2章

计算机组成与系统结构复习第2章

计算机组成与系统结构复习第2章
计算机组成与系统结构复习第2章

计算机组成与系统结构

上海交通大学继续教育学院

陈泽宇博士副教授

第1章计算机系统概论

第2章运算方法和运算器

第3章存储系统

第4章指令系统

第5章中央处理器(CPU)

第6章总线系统

第7章输入输出(I/O)系统

第8章并行计算机系统

第2章运算方法和运算器

2.1 数据信息的表示

2.2 定点运算和定点运算器

2.3 浮点运算和浮点运算器

2.1 数据信息的表示

2.1.1 数值数据的表示

2.1.2 非数值数据的表示

2.1.3 数据信息的校验

数据有两大类

数值数据,有“量”的概念

非数值数据

数据在计算机中用二进制数码表示

信息的数字化编码

用“0”和“1”按照一定的组合规则来表示数据、文字、声音、图像、视频等复杂信息

2.1.1 数值数据的表示

1. 进位计数制

2. 各种进制数之间的转换

3. 数的机器码表示

4. 定点数的表示

5. 浮点数的表示

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

在计算机系统中,

通常将十进制数作为人机交互的媒介,

而数据则以二进制数的形式存储和运算

计算机采用二进制的原因

易于物理实现

具有两种稳定状态的物理器件很多(如门电路的导通/截止、电压的高/低),恰好可以对应表示“1”和“0”采用十进制,就要制造具有10种稳定状态的物理电路,非常困难

运算规则简单

数学推导已经证明,对R进制数进行算术求和或求积运算,其运算规则各有R(R+1)/2种

采用十进制(R=10),就有55种求和或求积的运算规则

采用二进制(R=2),仅有3种求和或求积的运算规则,可以大大简化运算器等物理器件的设计

机器可靠性高

电压高/低、电流有/无都是质的变化,两种物理状态稳定、分明

因此二进制码传输的抗干扰能力强,鉴别信息的可靠性高

逻辑判断方便

二进制的“1”和“0”正好与逻辑命题的“真”和“假”相对应,能够方便地使用逻辑代数工具来分析和设计计算机的逻辑电路

但是,用二进制表示一个数所使用的位数比十进制长得多

通常使用十六进制来弥补二进制的这一不足

1. 进位计数制

1)十进制

2)二进制

3)十六进制

进位计数制

采用从低位向高位进位的方式进行计数的数据表示方法

讨论进位计数制要涉及两个基本概念

基数(Radix)

每个数位所用到的数码符号的个数

权(Weight)

数码在不同的数位上所表示的数值是不同的

每个数码所表示的数值等于该数码本身乘以一个与它所在数位有关的常数, 这个常数叫做权

1)十进制

基数为10,逢10进1

一个数的数值大小就是它的各位数码按权相加之和

(6543.21)10 = 6×103 + 5×102 + 4×101 + 3×100 + 2×10-1 + 1×10-2

任何一个十进制数都可以用一个多项式来表示:

式中:Ki的取值是0~9中的一个数码;m和n为正整数

推而广之,一个基数为R的R进制数可表示为

式中:Ri是第i位的权;Ki取值可以是0,1,…,R-1共R个数码中的任意一个

进位原则:逢R进1

2)二进制

二进制只有两个不同的数码“0”和“1”

基数为2,逢2进1

任意数位的权是2i

任何一个二进制数都可表示为

3)十六进制

基数为16,逢16进1

每个数位可取0,1,…,9,A,B,…,F共16个不同的数码和符号中的任意一个

其中A~F分别表示十进制数值10~15

任何一个十六进制数可表示为

不同进制的表示

用下标表示

(1010)2、(1010)10、(1010)16

用后缀字母表示

B:二进制(Binary)数

H:十六进制(Hexadecimal)数

D:十进制(Decimal)数,可省略

375D、101B、AFEH

三种常用进位计数制的对应关系

2. 各种进制数之间的转换

1)二进制数转换为十六进制数

2)十六进制数转换为二进制数

3)二进制数转换为十进制数

4)十进制数转换为二进制数

1)二进制数转换为十六进制数

整数部分和小数部分分别转换

以小数点为界,

整数部分:从小数点开始往左数,每4位分成一组(可在最左边添“0”)

小数部分:从小数点开始往右数,每4位分成一组(可在最右边添“0”)

最终使二进制数的总的位数是4的倍数

然后用相应的十六进制数取而代之

111011.1010011011B = 0011 1011.1010 0110 1100B

= 3B.A6CH

2)十六进制数转换为二进制数

将1位十六进制数写成4位二进制数,去除整数最左边和小数最右边的“0”3B.328H

= 0011 1011.0011 0010 1000B

= 111011.001100101B

3)二进制数转换为十进制数

按权展开相加法

把各位数码与它们的权相乘,再把乘积相加,就得到对应的十进制数100011.1011B

= 1×25 + 1×21 + 1×20 + 1×2-1 + 1×2-3 + 1×2-4

= 35.6875D

4)十进制数转换为二进制数

基数乘除法

对整数和小数部分分别处理

整数部分用除基取余法

小数部分用乘基取整法

最后将它们拼接起来即可

⑴十进制整数转换为二进制整数

(除基取余法)

除以基数(2)取余数,先得到的余数为低位,后得到的余数为高位

用2连续去除十进制整数,直到商等于0为止

然后按逆序排列每次的余数(先取得的余数为低位)

例如,将175D转换成二进制数:

所以,175D=10101111B

⑵十进制小数转换为二进制小数

(乘基取整法)

乘以基数(2)取整数,先得到的整数为高位,后得到的整数为低位

用2连续去乘十进制数的小数部分,直至乘积的小数部分等于0为止

然后按顺序排列每次乘积的整数部分(先取得的整数为高位)

例如,将0.3125D转换成二进制数:

所以,0.3125D = 0.0101B

若要将十进制数175.3125转换成二进制数,应对整数部分和小数部分分别进行转换,然后再进行整合:175.3125D=10101111.0101B

注意:十进制小数常常不能准确地换算为等值的二进制小数,存在有一定的换算误差

根据精度要求,截取一定的数位,其误差值小于截取的最低一位数的权

当要求二进制数取m位小数时,一般可求m+1位,然后对最低位作0舍1入处理

3. 数的机器码表示

1)机器数和真值

2)原码

3)补码

4)反码

5)移码

1)机器数和真值

符号位

把正负符号用1位二进制数码来表示

机器数(或称机器码)

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

“0”表示正号,“1”表示负号,符号位置于最高数值位之前

表示形式包括原码、补码、反码、移码

真值

用“+”、“-”来表示符号的数

例如:

N1 = +0.101101,N2 = -0.101101,这是真值,

表示成机器数(以原码为例)就是[N1]原= 0.101101,[N2]原= 1.101101

2)原码

符号位为0表示正数,为1表示负数,数值部分用二进制数的绝对值表示

假设机器数的位数8位(即机器的字长为8位),最高位是符号位,其余7位是数值位,那么,+59和-59的原码分别表示为

[+59]原=00111011 [-59]原=10111011

字长为n的整数原码的定义式

注意:0的原码有“正零”和“负零”之分,机器遇到这两种情况都当作0处理

[+0]原=00000000 [-0]原=10000000

原码的表示方法简单易懂,与真值转换方便,但在进行加减法运算时,符号位不能直接参加运算,而是要分别计算符号位和数值位

为了解决这些问题,人们引进了数的补码表示法

3)补码

日常生活中的实例

假如现在时间是7点,而你的手表却指向了9点,如何调整手表的时间?

有两种方法拨动时针

一种是顺时针拨,即向前拨动10个小时

另一种是逆时针拨,即向后拨2个小时

从数学的角度可以表示为:(9+10) -12=19-12=7 或9-2=7

对钟表来说,向前拨10个小时和向后拨2个小时的结果是一样的,减2可以用加10来代替

这是因为钟表是按12进位的,12就是它的“模”

对模12来说,-2与+10是“同余”的

也就是说,-2与+10对于模12来说是互为补数的

计算机中的加法器是以2n为模的有模器件,因此可以引入补码,把减法运算转换为加法运算,以简化运算器的设计

补码的定义

把某数X加上模数K,称为以K为模的X的补码

[X]补=K+X

正数的补码的最高位为符号“0”,数值部分为该数本身

负数的补码的最高位为符号“1”,数值部分为用模减去该数的绝对值

【例2-1】若X = +0111011,Y = -0111011,求[X]补、[Y]补。

【解】

[X]补=00111011

[Y]补=100000000 - 0111011

=11000101 (mod 28 )

通过用模2n减去某数的绝对值的方法来求某数的补码比较麻烦,求一个二进制数的补码的简便方法是

正数的补码与其原码相同

负数的补码是符号位不变,数值位逐位取反(即求其反码),然后在最低位加1

例如,[+59]补=[+59]原=00111011,而[-59]原=10111011,

因此,[-59]补= 11000100+1 = 11000101

字长为n的整数补码的定义式

注意:0的补码只有一种形式,就是n位0

采用补码表示法进行加减法运算,比原码运算方便多了

符号位可以和数值位一起参加运算

不论数是正还是负,计算机总是做加法,减法运算可转换为加法运算

4)反码

引入反码的目的是便于求负数的补码

正数的反码与原码相同,负数的反码是符号位不变,数值位逐位取反

例如:

[+59]反=[+59]原=00111011,而[-59]原=10111011,

因此,[-59]反=11000100。

字长为n的整数反码的定义式

注意:

0的反码也有两个,[+0]反=00000000,[-0]反=11111111

在计算机中,求一个数的反码很容易,因此,求一个数的补码也就易于实现

采用补码运算,计算机的控制线路较为简单

所以,目前大多数计算机均采用补码存储、补码运算,其运算结果仍为补码形式

综上所述,

在n位机中,用n位二进制数补码表示一个带符号的整数时,最高位为符号位,后面n-1位为数值部分

n位二进制数补码表示的范围为-2n-1~+2n-1-1

例如,在8位机中,补码表示的范围为-128~+127

【例2-2】以整数为例,用数轴形式说明原码、反码、补码的表示范围和可能的数码组合情况。

【解】表示范围:原码-(2n-1-1)~ 2n-1-1,反码-(2n-1-1)~ 2n-1-1,补码-2n-1 ~ 2n-1-1 在补码表示中“0”只有一种形式,且用补码表示负数时范围可到-2n-1

【例2-3】在字长为8位的计算机中,下列数的原码、反码及补码各为多少?

+18,-18,+31,-31,+127,-127

【解】字长为8位的计算机所能表示的机器数是8位,最高位为符号位,后面7位为数值位。因此:

[+18]原= [+18]反= [+18]补= 00010010

[-18]原=10010010 [-18]反=11101101 [-18]补=11l01110

[+31]原= [+31]反= [+31]补= 000111111

[-31]原=10011111 [-31]反=11100000 [-31]补=11100001

[+127]原= [+127]反= [+127]补= 011111111

[-127]原=11111111 [-127]反=10000000 [-127]补=10000001

5)移码

移码也称为增码或偏码,常用于表示浮点数中的阶码

对于字长为n的计算机,若最高位为符号位,数值位为n-1位,当偏移量取2n-1时,则其真值X所对应的移码的定义式

[X]移=2n-1 + X (-2n-1≤X<2n-1)

将移码定义与整数补码的定义相比较,可以得到移码和补码之间的关系

当0≤X<2n-1时,

[X]移=2n-1+X= 2n-1+[X]补

当-2n-1≤X<0时,

[X]移=2n-1+X= (2n+X ) -2n-1 = [X]补-2n-1

可见,移码可由补码求得,只要把补码的符号位取反就得到了移码

【例2-4】X=+101101,Y=-101101,求[X]移和[Y]移。

【解】[X]补=0101101,所以[X]移=1101101

[Y]补=1010011,所以[Y]移=0010011

【例2-5】将十进制真值X(-127,-1,0,+1,+127)列表表示成二进制数及原码、反码、补码、移码值。【解】

4. 定点数的表示

计算机中常用的数据表示格式有两种:定点和浮点

定点数:一个数中小数点的位置是固定的

浮点数:一个数中小数点的位置是浮动的

定点格式可表示的数值的范围有限,但要求的处理硬件简单

浮点格式可表示的数值的范围很大,但要求的处理硬件复杂

定点格式

约定机器中所有数据的小数点位置是固定不变的

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

为了将数表示成纯小数,通常把小数点固定在数值部分的最高位之前

为了把数表示成纯整数,则把小数点固定在数值部分的最后面

图中所标示的小数点“.”,在机器中是不表示出来的,而是事先约定在固定的位置

假设用一个n位字来表示一个定点数x= x0 x1 x2 …xn-1

符号位x0通常放在最左位置,并用数值0和1分别代表正号和负号

如果x表示的是纯小数,那么小数点位于x0和x1之间,数的表示范围为:0≤|x|≤1-2-(n-1)

如果x 表示的是纯整数,则小数点位于最低位xn-1的右边,数的表示范围为:0≤|x|≤2n-1-1

目前计算机中大多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算

5. 浮点数的表示

1)规格化浮点数

2)IEEE-754标准浮点格式

定点数难以表示数值很大和数值很小的数据

例如

电子的质量(9×10-28克)

太阳的质量(2×1033克)

为了表示更大范围的数据,数学上通常采用科学计数法

把数据表示成一个小数乘以一个以10为底的指数

电子的质量和太阳的质量可以分别取不同的比例因子,以使其数值部分的绝对值小于1,即:

9×10-28 =0.9×10-27

2×1033 =0.2×1034

浮点表示法

把一个数的有效数字(精度)和数的范围在计算机中分别表示

相当于数的小数点位置随比例因子的不同而在一定范围内自由浮动

改变指数部分的数值相当于改变小数点的位置

浮点数的一般表示形式

十进制数:N = 10e×M

二进制数:N = 2e×M

其中,

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

e是比例因子的指数,称为浮点数的指数,是一个整数,常称为阶码

尾数部分给出有效数字的位数,因而决定了浮点数的表示精度

阶码部分指明了小数点在数据中的位置,因而决定了浮点数的表示范围

浮点数是有符号数

其中,

S为尾数的符号位,放在最高一位

E为阶码,紧跟在符号位之后,占m位

M为尾数,放在低位部分,占n位

1)规格化浮点数

若不对浮点数的表示做出明确规定,同一个浮点数的表示就不是惟一的

例如:(1.75)10= (1.11)2 = 1.11×20

= 0.111×21

= 0.0111×22

= 0.00111×23

浮点数的规格化

为了提高数据的表示精度,需要充分利用尾数的有效位数

当尾数的值不为0时,尾数域的最高有效位应为1

否则就要用修改阶码同时左右移动小数点的办法,使其变成符合这一要求的表示形式

2)IEEE-754标准浮点格式

在IEEE-754标准出现之前,业界并没有一个统一的浮点数标准

很多计算机制造商都在设计自己的浮点数规则以及运算细节,不便于软件的移植

1985年,IEEE(Institute of Electrical and Electronics Engineers,美国电气和电子工程师协会)提出了IEEE-754

标准,并以此作为浮点数表示格式的统一标准

目前,几乎所有的计算机都支持该标准,从而大大改善了科学应用程序的可移植性

IEEE标准从逻辑上采用一个三元组{S, E, M}来表示一个数N,规定

基数为2

符号位S用0和1分别表示正和负

尾数M用原码表示

阶码E用移码表示

根据浮点数的规格化方法,尾数域的最高有效位总是1

由此,该标准约定这一位不予存储,而是认为隐藏在小数点的左边

因此,尾数域所表示的值是1.M(实际存储的是M)

这样可使尾数的表示范围比实际存储多一位

为了表示指数的正负,

阶码E通常采用移码方式来表示,将数据的指数e 加上一个固定的偏移量后作为该数的阶码

这样做既可避免出现正负指数,又可保持数据的原有大小顺序,便于进行比较操作

IEEE-754标准规定,

单精度格式(32位)

符号位(S)1位

阶码(E)8位,阶码的偏移量为127(7FH)

尾数(M)23位,用小数表示,小数点放在尾数域的最前面

双精度格式(64位)

符号位(S)1位

阶码(E)11位,阶码的偏移量为1023(3FFH)

尾数(M)52位,用小数表示,小数点放在尾数域的最前面

浮点数的真值表示

规格化的32位浮点数

X = (-1)s×(1.M)×2E-127 e = E-127

规格化的64位浮点数

X = (-1)s×(1.M)×2E-1023 e = E-1023

机器零

当一个浮点数的尾数为0,不论其阶码为何值,

或者当阶码的值遇到比它所能表示的最小值还小时,不管其尾数为何值,

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

为什么指数的偏移量不选128?

当阶码E为全0且尾数M也为全0时,表示的真值X为零,结合符号位S为0或1,有正零和负零之分

当阶码E为全1且尾数M也为全0时,表示的真值X为无穷大(∞),结合符号位S为0或1,有+∞和-∞之分

这样,在32位浮点数表示中,要除去E用全0和全1(255)表示零和无穷大的特殊情况,因此,阶码E的取值范围变为1~254,指数的偏移量不选128(10000000B),而选127(01111111B)

对于32位规格化浮点数,真正的指数值e为-126~+127

因此,数的绝对值的范围是2-126~2127≈10-38~1038

【例2-6】若浮点数X的IEEE-754标准格式为42E48000H,求其十进制数值表示。

【解】

①将十六进制数42E48000H转换为二进制数:

②IEEE-754标准使用1位符号位,8位阶码,23位尾数,因此可以分别提取这些内容:

符号位S=0,表示正数

阶码E=10000101B = 133D,则实际的指数e = E-127 = 133-127 = 6D

尾数M=11001001000000000000000B=11001001B,则包括隐含位1的尾数1.M = 1.11001001B

③根据公式写出实际数值大小:

X = (-1)S×(1.M)×2e = +(1.11001001) ×26 = 1110010.01B = 114.25D

【例2-7】将十进制数100.25转换成IEEE-754标准的32位浮点数的十六进制表示。

【解】

①将十进制数转换为二进制数:

100.25D=1100100.01B

②规格化二进制数(移动小数点,使其在第1、2位之间):

1100100.01B=1.10010001×26 e=6,1.M=1.10010001B

③计算出阶码(e+偏移量):

E=e+127=133D=10000101B

④以32位浮点数格式来表示该数:

因为:S =0,E= 10000101B,M = 10010001000000000000000B

所以,32位浮点数的二进制格式和十六进制格式为:

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

1)字符串形式

2)压缩的十进制数串形式

1)字符串形式

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

一个十进制数占用连续的多个字节

为了明确表示一个字符串,需要给出该数在主存中的起始地址和位数(串的长度)

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

2)压缩的十进制数串形式

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

节省存储空间,便于直接完成十进制数的算术运算

一个数连续占用主存的多个字节

每个数位占用4个二进制位,其值可用数字的ASCII码值的低4位表示

符号位也占半个字节

要指明一个压缩的十进制数串,必须给出它在主存中的首地址和数字位个数(又称位长,不含符号位)

位长为0的数其值为0

优点

位长可变,许多机器中规定该长度从0到31,有的甚至更长

2.1.2 非数值数据的表示

1. 字符与字符串的表示

2. 汉字的编码方法

1. 字符与字符串的表示

1)ASCII字符

2)Unicode码

3)字符串

非数值数据

通常指的是字符、字符串、图形符号、汉字等数据

不用来表示数值的大小,一般也不进行算术运算

1)ASCII字符

字符必须按照一定的规则用一组二进制编码来表示

ASCII

美国国家标准局(ANSI)制定的ASCII(American Standard Code for Information Interchange,美国信息交换标准码)是现今最为通用的单字节编码系统

主要用于显示现代英文字母和符号

已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准

ASCII字符编码表

横轴为7位ASCII码高3位b6b5b4的二进制表示

纵轴为ASCII码低4位b3b2b1b0的二进制表示

ASCII码用7位二进制编码(0~127)表示一个字符,总共可以表示128个字符

有95个是可显示和打印的字符,包括10个十进制数字(0~9)、52个英文大写和小写字母(A~Z,a~z)、以及若干个运算符和标点符号

除此之外的33个字符是不可显示和打印的控制符号,原先用于控制计算机外围设备的某些工作特性,现在多数已被废弃

计算机通常用一个字节(8位)来存放一个ASCII字符

字节的低7位表示不同的ASCII字符

字节的最高1位固定为0

在有些情况下,字节的最高1位也可以用作奇偶校验位以检验错误,或用作西文字符和汉字的区分标识

扩展ASCII码

除了使用字节最高位为0的标准ASCII码(0~127)之外,通过使用字节最高位为1的另外128个编码(128~255),许多公司和组织还自行定义了不少互不兼容的扩展ASCII码系统

扩展ASCII码用8位二进制表示一个字符,总共可以表示256个不同的字符

2)Unicode码

Unicode

现今人类使用了接近6800种不同的语言,即使是扩展ASCII码这类8位代码也不能满足需要

解决问题的最佳方案是设计一种全新的编码方法,而这种方法必须有足够的能力来容纳全世界所有语言中任意一种语言的所有符号,这就是Unicode(统一码)

Unicode为每种语言中的每个字符设定了统一并且惟一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求

UCS-2

目前实际应用的Unicode对应于UCS-2(2-byte Universal Character Set,2字节通用字符集)

每个字符占用2个字节

使用16位的编码空间,理论上允许表示216=65536个字符,可以基本满足各种语言的使用需要

实际上目前版本的Unicode尚未填充满这16位编码,从而为特殊的应用和将来的扩展保留了大量的编码空间UCS-4

每个字符占用4个字节(实际上只用了31位,最高位必须为0)

理论上可以表示231=2 147 483 648个字符

在PC机中,若使用扩展ASCII码、Unicode UCS-2和UCS-4方法分别表示一个字符,则三者之间的差别为:扩展ASCII码用8位表示

Unicode UCS-2用16位表示

Unicode UCS-4用32位表示

3)字符串

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

通常占用主存中连续的多个字节,每个字节存放一个字符(以ASCII字符为例)

当主存字由2个或4个字节组成时,在同一个主存字中,既可按从低位字节向高位字节的顺序存放字符串的内容,也可按从高位字节向低位字节的顺序存放字符串的内容

例如:

IF└┘A>=B└┘THEN└┘READ(C)

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

主存单元长度是4个字节

每个字节中存放相应字符的ASCII值

2. 汉字的编码方法

1)输入码

2)交换码

3)机内码

4)字形输出码与汉字库

5)汉字编码的发展

1)输入码

⑴数字码

⑵拼音码

⑶字形码

⑷混合码

直接从键盘输入的各种汉字输入方法的编码,属于机外码,简称外码

一般用西文标准键盘上的字母和数字描述

要求便于记忆,码长短,重码少

按照编码原理和规则,汉字输入码主要分为4类:数字码、音码、形码和混合码

⑴数字码

将待编码的汉字集以一定的规则排序以后,依次逐个赋予相应的数字串,以此作为汉字输入码

区位码和电报码是典型的数字码,用4个数字对一个汉字进行编码

优点是无重码,致命缺点是代码难以记忆

⑵拼音码

以我国文字改革委员会公布的汉语拼音方案为基础的汉字输入码

最大优点是简单易学,只要会汉语拼音就能输入汉字,并且输入时不影响思考,适合于业务人员和专业技术人员使用

全拼输入法——双拼输入法——增加联想功能——以词为单位的智能拼音输入法——以句子为单位的智能语句输入法

全拼输入法是以字为单位输入的,汉字同音字多,重码率高,影响输入速度

双拼、智能拼音等输入方法,使输入速度大大提高

以句子为单位的智能语句输入法,极大提高输入速度和准确度

目前,拼音码输入方法是主流的汉字输入方法

⑶字形码

以汉字的形状为基础而确定的编码,编码规则复杂

把汉字的笔画或部件用字母或数字进行编码,按笔画书写顺序依次输入

最大特点是能广泛地服务于使用汉字且方言较重的国内外不同地区的人们

由于汉字的形是固定的,因此不认识的字也可以拆分并输入

常用的字形码有五笔字型码、郑码、表形码等

码长较短,重码率低,输入速度快

要求记住大量的编码规则和汉字拆分规则,需要学习和记忆

⑷混合码

将汉字的字形与字音相结合,也称为音形码或结合码,常用的有自然码等

一般以音为主,以形为辅,音形结合,取长补短

兼顾音码和形码的优点,降低重码率,不需要大量记忆,使用简单方便,输入速度快,效率高

由此可见,由于汉字编码方法的不同,一个汉字可以有许多种不同的输入码

2)交换码

也称为汉字国标码,主要用于汉字信息处理系统或通信系统之间的信息交换

1981年,国家标准总局公布GB2312-80,即《信息交换用汉字编码字符集-基本集》

共收集常用汉字6763个

一级汉字3755个(常用字,按拼音顺序排列)

二级汉字3008个(次常用字,按部首排列)

各种图形符号682个(包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母等)

共计7445个

在GB2312-80中,

全部汉字与图形符号组成一个94×94的矩阵,矩阵的每一行称为一个“区”,每一列称为一“位”

这样就形成了94个区(01~94区)、每个区内有94位(01~94位)的汉字字符集

一个汉字所在位置的区号和位号组合在一起就构成一个4位数的代码

前两位数字为“区码”(01~94),独占一个字节

后两位数字为“位码”,也独占一个字节

这种代码称为“区位码”

例如,

汉字“啊”的区位码为1601(或1001H),表示该汉字在16区的01位

如果在区位码的区码与位码上分别加20H,就形成了国标码

这主要是为了避免与标准ASCII码中的控制码发生冲突

国标码与区位码的关系如下所示:

国标码高位= 区码+20H

国标码低位= 位码+20H

所以,汉字“啊”的国标码为3021H

3)机内码

计算机内部对汉字信息进行各种加工、处理所使用的编码,简称内码

汉字可以通过不同的输入码输入,但在计算机内部其内码是惟一的

因为汉字处理系统要保证中西文的兼容,当系统中同时存在ASCII码和汉字国标码时,将会产生二义性

例如:

有两个字节的内容分别为30H和21H,它既可表示汉字“啊”的国标码(3021H),又可表示西文“0”和“!”的ASCII码(30H和21H)

为此,汉字机内码应对国标码进行适当的处理和变换

一个汉字的机内码一般用两个字节表示

高位字节和低位字节分别是在区码与位码的基础上加A0H

即在国标码两个字节值的基础上再加80H(即每个字节的最高位均置“1”)

机内码与区位码、国标码的关系如下所示:

机内码高位= 国标码高位+80H = (区码+20H)+80H = 区码+A0H

机内码低位= 国标码低位+80H = (位码+20H)+80H = 位码+A0H

其中,加80H是为了区别于标准ASCII码

例如,

汉字“啊”的区位码为1001H,其国标码为3021H,其机内码为B0A1H

4)字形输出码与汉字库

⑴点阵字库

⑵矢量字库

为了能显示和打印汉字,必须先存储汉字的字形,这就是汉字字形码

汉字字形码在存储器中与其存储地址是一一对应的

输出时,只要找到汉字的存储地址就可以取出存储的汉字字形码,并送至输出设备

⑴点阵字库

每个汉字字符包含m列n行,用一个由m×n个像素组成的位图表示,定义成一个被称为字模(Mask)的m×n点阵

点阵中的每个点都只有两种状态,即有笔画和无笔画

用二进制数字来表示,即1表示有笔画,对应像素应置为字符颜色;0表示无笔画,对应像素应置为背景颜色或不改变

点阵字型库可分为低分辨率和高分辨率两大类

低分辨率用于一般的信息处理系统:16×16点阵、24×24点阵、32×32点阵

高分辨率用于印刷系统,在64×64点阵以上

表示一个汉字,

用16×16点阵需要256位(即32字节)

用64×64点阵需要4096位(即512字节)

汉字“英”的16×16点阵字形

图右侧列出了每一行像素的十六进制编码

⑵矢量字库

点阵字库

复原字形速度快,但缩放后的字形质量难以保证,字体放大后可能出现边缘锯齿或笔画损失,影响字体的美观矢量字库

存储不同字体文字的外部形态的矢量信息

计算机可根据字号变更矢量值,并根据轮廓充填而形成文字

保存的是对每一个汉字的描述信息

比如一个笔画的起始坐标、终止坐标、半径、弧度等等

改变文字的字号只需要改变缩放系数即可

汉字字形是通过数学曲线来描述的

包含了字形边界上的关键点、连线的导数信息等

在显示、打印这一类字库时,要经过一系列的数学运算才能输出结果

好处

字体可以无限放大而不产生变形

5)汉字编码的发展

⑴GB2312 字符集

⑵BIG5 字符集

⑶GBK字符集

⑷GB18030 字符集

⑴GB2312 字符集

国标码字符集GB2312-80

全称为《信息交换用汉字编码字符集-基本集》

由中国国家标准总局发布,1981年5月1日起实施

是中国国家标准的简体中文字符集

所收录的汉字已经覆盖99.75%的使用频率,基本满足了汉字的计算机处理需要

GB12345-90

国家标准总局1990年颁布的繁体字编码标准

全称为《信息交换用汉字编码字符集-第一辅助集》

共收录6866个汉字(比GB2312多103个字),纯繁体的字大概有2200余个

⑵BIG5 字符集

又称大五码

1984年由台湾财团法人信息工业策进会和5家软件公司宏碁(Acer)、神通(MiTAC)、佳佳、零壹(Zero One)、大众(FIC)创立,故称大五码

共收录13053个中文字

⑶GBK字符集

GBK(汉字内码扩展规范)编码

1995年底推出,是中文编码扩展国家标准

兼容GB2312

共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库

主要扩展了对繁体中文字的支持

⑷GB18030 字符集

全称GB18030-2000《信息交换用汉字编码字符集-基本集的扩充》

2000年3月17日发布

解决了汉字、日文假名、朝鲜语和中国少数民族文字组成的大字符集计算机编码问题

采用单字节、双字节和四字节三种编码方式,字符总编码空间超过150万个编码位

收录了27484个汉字,覆盖中文、日文、朝鲜语和中国少数民族文字

能满足中国大陆、香港、台湾、日本和韩国等东亚地区信息交换多文种、大字量、多用途、统一编码格式的要求

与Unicode 3.0版本兼容,与以前的国家字符编码标准兼容

2.1.3 数据信息的校验

1. 奇偶校验的概念

2. 简单奇偶校验

3. 交叉奇偶校验

数据在存取和传送的过程中可能会发生错误

产生错误的原因可能有很多种

设备的临界工作状态

外界高频干扰

收发设备中的间歇性故障

电源偶然的瞬变现象等

为减少和避免错误,

除了提高硬件本身的可靠性之外,

还可以对数据采用专门的逻辑电路进行编码,以检测错误,甚至校正错误

通常的方法

在每个字上添加一些校验位,用来确定字中出现错误的位置

计算机中常用这种检错或纠错技术来进行存储器读写或信息传输正确性的检验

1. 奇偶校验的概念

奇偶校验码是一种最简单且应用广泛的数据校验码

硬件成本很低

可以检测出一位或奇数位错误,但不能确定出错位置,也不能检测出偶数位错误

事实上,一位出错的概率比多位同时出错的概率要高得多

虽然奇偶校验的检错能力很低,但仍然是一种很有效的校验方法

常用于存储器读写检查或ASCII字符传送过程检查

奇偶校验的实现方法

由若干位有效信息(如1个字节)再加上1位校验位组成校验码

校验位的取值(0或1)将使整个校验码中“1”的个数为奇数或偶数,所以有两种可供选择的校验规律

奇校验:当有效信息位中“1”的个数为奇数时,奇校验位为0,否则为1

偶校验:当有效信息位中“1”的个数为偶数时,偶校验位为0,否则为1

校验位可以放在有效信息位的右面,也可以放在有效信息位的左面

2. 简单奇偶校验

1)校验位形成

2)校验检测

简单奇偶校验仅能实现横向的奇偶校验

在实际应用中,较多采用奇校验

因为奇校验中不存在全“0”代码,在某些场合下更便于判别

1)校验位形成

奇偶校验码的编码和校验由专门逻辑电路实现

当把一个字节的代码D7~D0写入主存时,也同时将它们送往奇偶校验电路

该电路将产生“奇形成”、“偶形成”、“奇校验出错”和“偶校验出错”等信号

“奇形成”/“偶形成”信号就是奇/偶校验位,并将与8位代码一起作为奇/偶校验码写入主存

奇校验位(奇形成)= D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕D1⊕D0

偶校验位(偶形成)= D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕D1⊕D0

⊕表示逻辑异或(或称按位加)

若D7~D0中有奇数个“1”,则奇校验位=0,偶校验位=1

若D7~D0中有偶数个“1”,则奇校验位=1,偶校验位=0

2)校验检测

读出数据时,将读出的9位代码(8位信息位和1位校验位)同时送入奇偶校验电路进行检测奇校验出错= D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕D1⊕D0⊕D奇

偶校验出错= D7⊕D6⊕D5⊕D4⊕D3⊕D2⊕D1⊕D0⊕D偶

若读出代码无错误,则“奇校验出错”/“偶校验出错”=0

若读出代码出现错误,则“奇校验出错”/“偶校验出错”=1,从而指示这个9位代码中一定有某一位出现了错误,但具体的错误位置无法确定

【例2-8】已知下表中左面一栏有5个字节的数据。请分别用奇校验和偶校验进行编码,填在右面2栏。【解】假定最低一位为校验位,其余高8位为数据位,列表如下:

3. 交叉奇偶校验

交叉校验

纵向、横向同时校验的方法

计算机在进行大量字节(数据块)传送时,不仅每个字节有一个奇偶校验位做横向校验,而且全部字节的同一位也设置一个奇偶校验位做纵向校验

例如,4个字节组成的一个信息块,纵、横向均约定为偶校验,各校验位取值如下:

交叉校验可以发现两位同时出错的情况

假设第2字节的D6、D4两位均出错,横向校验位无法检出错误

2.2 定点运算和定点运算器

2.2.1 定点加、减法运算

2.2.2 定点乘、除法运算

2.2.3 逻辑运算

2.2.4 定点运算器的组成

计算机中的基本运算

算术运算

加、减、乘、除四则运算

要考虑符号和编码格式(即原码、反码还是补码)

可分为定点数四则运算和浮点数四则运算

逻辑运算

逻辑与、或、非、异或等运算

针对不带符号的二进制数

2.2.1 定点加、减法运算

1. 补码加法

2. 补码减法

3. 溢出及其判断

定点加、减法运算属于算术运算,要考虑参加运算数据的符号和编码格式

原码

符号位不能直接参加加减运算,实现起来很麻烦

反码

符号位可以和数值位一起参加运算,但是符号位一旦有进位,结果就会发生偏差

要采用循环进位法进行修正,即符号位的进位要加到最低位上去

补码

运算时可以把符号位与数值位一起处理,显得很简单

只要最终运算结果不超出机器数允许的表示范围,运算结果一定是正确的

不需要事先判断参加运算数据的符号位,运算结果的符号位如果有进位,也只要将进位数据舍弃即可,不需做任何特殊处理

现代计算机的运算器一般都采用补码形式进行加减法运算

1. 补码加法

补码加法的公式

[x]补+[y]补=[x+y]补(mod 2)

在模2意义下,任意两数的补码之和等于该两数之和的补码——这是补码加法的理论基础

之所以说是模2运算,是因为最高位(即符号位x0和y0)相加结果中的向上进位是要舍去的

【例2-9】x=0.1010,y=0.0011,求x+y。

【解】

[x]补=0.1010 [y]补=0.0011

∴x+y=0.1101

【例2-10】x= -0.1010,y= -0.0011,求x+y。

【解】

[x]补=1.0110 [y]补=1.1101

∴x+y= -0.1101

【例2-11】x= -0.1010,y= 0.0011,求x+y。

【解】

[x]补=1.0110 [y]补=0.0011

∴x+y= -0.0111

由此可见,

当两数以补码形式相加时,符号位可以作为数据的一部分参加运算而不用单独处理

运算的结果将直接得到两数之和的补码

符号位有进位也只要丢弃即可

这样的运算规则十分方便,这也是补码在计算机内大量使用的原因

2. 补码减法

由于减去一个数就是加上这个数的负数,

∴[x-y]补=[x+(-y)]补=[x]补+[-y]补(mod 2)

从[y]补求[-y]补的法则

将[y]补连同符号位“取反且最低位加1”

【例2-12】x= -0.1010,y= -0.0011,求x-y。

【解】

[x]补=1.0110 [y]补=1.1101 [-y]补=0.0011

∴x-y= -0.0111

由此可见,

补码定点减法和补码定点加法在本质上是相同的

因此,减法运算可以转换成加法运算,使用同一个加法器电路,无需再配减法器,从而可以简化计算机的设计3. 溢出及其判断

在计算机中,由于机器码的位数是有限的,所以数的表示范围也是有限的

如果两数进行加减运算之后的运算结果超出了给定的取值范围,这就称为溢出

在定点数运算中,正常情况下溢出是不允许的

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

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

溢出的判定方法

一般有单符号位法和双符号位法两种,以下只讨论双符号位法

双符号位法用两个符号位表示一个数据

用双符号位法进行溢出判断的方法

如果两个数相加后,其结果的两个符号位一致(00或11),则没有发生溢出

如果两个符号位不一致(10或01),则发生溢出

两个符号位为01时为正溢,10时为负溢

不论溢出与否,运算结果的最高符号位始终指示正确的符号

【例2-13】x=-0.1010,y=-0.0111,求x+y(用双符号位法)。

【解】

[x]补=11.0110 [y]补=11.1001

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

在双符号位方式下,只要将两个符号位进行异或运算,

异或结果为0的就表示正常,异或结果为1的就表示溢出

由此,机器就可以通过逻辑电路自动检查出这种溢出,并进行相应的中断处理

2.2.2 定点乘、除法运算

从实现角度来说,实现乘除法运算一般有三种方式:

采用软件实现乘除法运算

利用基本运算指令,编写实现乘除法的循环子程序

这种方法所需的硬件最简单,但速度最慢

采用硬件实现乘除法运算

在原有的基本运算电路的基础上,通过增加左右移位和计数器等逻辑电路来实现乘除法运算

同时增加专门的乘除法指令

这种方式的速度比第一种方式快

并行乘除法器

自从大规模集成电路问世以来,高速的单元阵列乘除法器应运而生,出现了各种形式的流水式阵列乘除法器它们属于并行乘除法器,也有专门的乘除法指令

这种方法依靠硬件资源的重复设置来赢得乘除运算的高速,是三种方式中速度最快的一种

从编码角度考虑,

由于乘除法结果的符号位确定比较容易,运算结果的绝对值和参加运算的数据的符号无关,所以用原码实现也很简单

但在现代计算机中一般还是采用补码进行乘除法运算

2.2.3 逻辑运算

1. 逻辑非运算(NOT)

2. 逻辑与运算(AND)

3. 逻辑或运算(OR)

4. 逻辑异或运算(XOR)

在计算机中,运算器除了要进行加、减、乘、除等算术运算外,还要完成各种逻辑运算

参加逻辑运算的数据称为逻辑数,是不带符号位的二进制数

或者不用考虑是否有符号位以及数据格式,只是把它当成一种简单的数字“0”和“1”的组合

通常用“1”表示逻辑真,用“0”表示逻辑假

利用逻辑运算可以进行两个数的比较,或者从某个数中选取某几位等操作

在文本、图片、声音等非数值数据中有着广泛的应用

1. 逻辑非运算(NOT)

逻辑非运算又称为取反运算

就是对某个操作数的各位按位取反,使每一位0变成1,1变成0

逻辑非运算的运算符一般写成“ˉ”

设x=x0x1x2…xn,则逻辑非标记为:

【例2-14】设x=10100010,求。

【解】=01011101

2. 逻辑与运算(AND)

逻辑与运算也叫逻辑乘

表示两个操作数相同位的数据进行按位“与”运算

两个都是1则结果为1,两个中只要有1个为0结果就是0

逻辑与运算的运算符一般写成“∧”或“·”

逻辑与的特点

对任何数据逻辑与0都会变成0,而逻辑与1则保持原有数据不变

可用于对一个数据的某几位清0,而其他位保持不变

【例2-15】设x=01011101,y=10011001,求x∧y。

【解】0 1 0 1 1 1 0 1

∧ 1 0 0 1 1 0 0 1

0 0 0 1 1 0 0 1

∴x∧y=00011001

3. 逻辑或运算(OR)

逻辑或运算也叫逻辑加

表示两个操作数相同位的数据进行按位“或”运算

两个都是0则结果为0,两个中只要有1个为1结果就是1

逻辑或运算的运算符一般写成“∨”或“+”

逻辑或的特点

对任何数据逻辑或1都会变成1,而逻辑或0则保持原有数据不变

可用于对一个数据的某几位置1,而其他位保持不变

计算机组成与系统结构第二章习题及答案

、填空题(20 每空 2 分) 1. 计数制中使用的数据个数被称为________ 。(基) 2. 移码常用来表示浮点数的_ 部分,移码和补码比较,它们除_外, 其他各位都相同。(阶码,符号位) 3. 码值80H: 若表示真值0, 则为_; 若表示-128 ,则为_ ; 若表示-127 ,则为____ ; 若表示-0, 则为 ____ 。(移码补码反 码原码) 4. 在浮点运算过程中,如果运算结果的尾数部分不是_ 形式,则需要进行规格化处理。设尾数采用补码表示形式,当运算结果—时, 需要进行右规操作;当运算结果________________________________ 时,需要进行左规操作。 (规格化溢出不是规格化数) 二、选择题(20 每题 2 分) 1. 以下给出的浮点数,_______ 规格化浮点数。(B ) A. 2 八-10 X 0.010101 B . 2 八-11 X 0.101010 C. 2 八-100 X 1.010100 D . 2 八-1 X 0.0010101 2. 常规乘除法器乘、除运算过程采用部分积、余数左移的做法,其好处是 。( C )

A. 提高运算速度 B. 提高运算精度 C.节省加法器的位数 D. 便于控制 3. 逻辑异运算10010011 和01011101 的结果是_____ 。(B) A.01001110 B.11001110 C.11011101 D.10001110 4. _________浮点数尾数基值rm=8, 尾数数值部分长 6 位,可表示的规 格化最小正尾数为。(Q 1. A.0.5 B.0.25 C.0.125 D.1/64 5?当浮点数尾数的基值rm=16, 除尾符之外的尾数机器位数为8 位时, 可表示的规格化最大尾数值是_____________ 。(D) A.1/2 B.15/16 C.1/256 D.255/256 6. 两个补码数相加,采用1 位符号位,当_时表示结果溢出。(D) A、符号位有进位 B、符号位进位和最高数位进位异或结果为0 C符号位为1D、符号位进位和最高数位进位异或结果为1 7. 运算器的主要功能时进行_ 。(0 A、逻辑运算 B、算术运算 C、逻辑运算和算术运算 D、只作加法 8. 运算器虽有许多部件组成,但核心部件是_______ 。(B) A、数据总线 B、算术逻辑运算单元 C、多路开关 D、累加寄存器9?在定

计算机组成与系统结构

计算机组成与系统结构 1.冯·诺依曼计算机设计思想:依据存储程序,执行程序并实现控制。 2.早期计算机由运算器、控制器、存储器、输入设备和输出设备五大部分组成。 3.软件系统爆过两大部分:系统软件和应用软件。 4.计算机的层次结构分为:微程序或逻辑硬件、机器语言、操作系统、汇编语言、高级语言、应用语言。 5.计算机系统结构、组成与实现之间的区别与联系: ①计算机结构:也称为计算机体系结构,是一个系统在其所处环境中最高层次的概念;是对计算机系统中各机器级之间界面的划分和定义,以及对各级界面上、下的功能进行分配。 ②计算机组成:也常译为计算机组织或成为计算机原理、计算机组成原理。在计算机系统结构确定了分配给硬件子系统的功能及其概念之后,计算机组成的任务是研究硬件子系统各部分的内部结构和相互联系,以实现机器指令级的各级功能和特性。 ③计算机实现:指的是计算机组成的物理实现,主要研究个部件的物理结构,机器的制造技术和工艺等,包括处理机、主存等部件的物理结构,器件的集成度、速度和信号。器件、模块、插件、底板的划分与连接,专用器件的设计,电源、冷却、装配等技术。 6.Flynn分类法:按照计算机在执行程序时信息流的特征分为单指令单数据流计算机(SISD)、单指令多数据流计算机(SIMD)、多指令单数据流计算机(MISD)、多

指令多数据流计算机(MIMD). 7.加速比Sp=1/{(1-Fe)+Fe/Re},Fe为可改进比例,Re为部件加速比。 8.在计算机中有两种信息在流动,一种是控制流,即控制命令,由控制器产生并流向各个部件;另一种是数据流,它在计算机中被加工处理。 9.摩尔定律得以延续的理由:集成电路芯片的集成度每18个月翻一番。 10.冯·诺依曼计算机的执行过程:将要处理的问题用指令编程成程序,并将程序存放在存储器中,在控制器的控制下,从存储器中逐条取出指令并执行,通过执行程序最终解决计算机所要处理的问题。 11.数据编码的好处:用更少的数据表示更多的信息。 12.定点数:若约定小数点的位置固定不变,则成为定点数。定点数分为两种:定点整数(纯整数,小数点在最低有效数值位之后)和定点小数(纯小数,小数点最高有效数值位之前)。 13.浮点数:基数为2的数F的浮点表示为:F=M*2^E.其中M称为尾数,E称为阶码。尾数为带符号的纯小数,阶码为带符号的纯整数。 14.补码:非负数整数的补码为其原码,负数整数的补码在原码基础上取反加1. 15.n位补码表示的整数数值范围为-2^(n-1)~+(2^(n-1)-1),n位补码表示的小数数职的范围为-1~+(1-2^(-n+1))。 16.补码的特点: ①0的表示是唯一的。②变形码。③求补运算。 ④简化加减法。⑤算术或逻辑左移。⑥算术右移。 17.反码:正整数反码与原码相同。负整数反码即原码取反。 18.汉字编码分为三类:汉字输入编码、国际码和汉字内码以及汉字字模码。

吉林大学 计算机系统结构题库 第二章

第二章计算机指令集结构 知识点汇总: 指令集设计、堆栈型机器、累加器型机器、通用寄存器型机器、CISC、RISC、寻址方式、数据表示 简答题 1.增强CISC机器的指令功能主要从哪几方面着手?(CISC) (1) 面向目标程序增强指令功能。 (2) 面向高级语言和编译程序改进指令系统。 (3) 面向操作系统的优化实现改进指令系统。 2.简述CISC存在的主要问题。(知识点:CISC) 答:(1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。 (2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。 (3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 (4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高系统的性能。 3.简述RISC的优缺点及设计RISC机器的一般原则。(知识点:RISC) 答:(1)选取使用频率最高的指令,并补充一些最有用的指令。 (2)每条指令的功能应尽可能简单,并在一个机器周期内完成。 (3)所有指令长度均相同。 (4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行。 (5)以简单、有效的方式支持高级语言。 4.根据CPU内部存储单元类型,可将指令集结构分为哪几类?(知识点:堆栈型机器、累加器型机器、通用寄存器型机器) 答:堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。 5.常见的三种通用寄存器型指令集结构是什么?(知识点:通用寄存器型机器) 答:(1)寄存器-寄存器型。 (2)寄存器-存储器型。 (3)存储器-存储器型。

计算机组成与系统结构书本答案

C1: 以下哪些设备不属于冯?诺伊曼体系结构计算机的五大部件?寄存器, 缓冲器 适配器的作用是保证_____用计算机系统特性所要求的形式发送或接收信息。正确答案是:I/O设备 1966年,Flynn从计算机体系结构的并行性能出发,按照_____的不同组织方式,把计算机系统的结构分为SISD、SIMD、MISD和MIMD四类。指令流, 数据流 具有相同_____的计算机,可以采用不同的_____ 。:计算机体系结构,计算机组成 冯?诺伊曼型计算机的设计思想是_____。正确答案是:存储程序并按地址顺序执行 1958年开始出现的第二代计算机,使用_____作为电子器件。晶体管 在计算机系统的层次结构中,_____采用符号语言。高级语言级, 汇编语言级 世界上第一台通用电子数字计算机ENIAC使用_____作为电子器件电子管 在计算机系统的层次结构中,属于硬件级的是_____。微程序设计级, 机器语言级 C2: 为了提高浮点数的表示精度,当尾数不为_____时,通过修改阶码并移动小数点,使尾数域的最高有效位为_____,这称为浮点数的规格化表示。0,1 在我国使用的计算机汉字操作平台中,_____字符集未收录繁体汉字。GB2312 在定点_____运算中,为了判断溢出是否发生,可采用双符号位检测法。不论溢出与否,其_____符号位始终指示正确的符号。小数,最高, 整数,最高 在定点二进制运算器中,减法运算一般通过_____来实现。补码运算的二进制加法器 在奇偶校验中,只有当数据中包含有_____个1时, 偶校验位=_____。偶数,0, 奇数,1 奇偶校验无法检测_____个错误,更无法识别错误信息的_____。偶数,位置, 偶数,内容在PC机中,若用扩展ASCII码、Unicode UCS-2和UCS-4方法表示一个字符,则三者之间的差异为:扩展ASCII码用_____位表示,Unicode UCS-2用_____位表示,Unicode UCS-4用_____位表示。8,16,32 C3: 相联存储器是以______来访问存储器的。关键字, 内容 Cache由高速的______组成。SRAM Cache存储器在产生替换时,可以采用以下替换算法:______。LFU算法, LRU算法, 随机替换 Cache的功能由______实现,因而对程序员是透明的。硬件 MOS半导体存储器中,______的外围电路简单,速度______,但其使用的器件多,集成度不高。SRAM,快 EPROM是指______。光擦可编程只读存储器 虚拟地址空间的大小实际上受到______容量的限制。辅助存储器 相联存储器是以______来访问存储器的。关键字, 内容 从CPU来看,增加Cache的目的,就是在性能上使______的平均读出时间尽可能接近Cache 的读出时间。主存, 内存 虚拟地址由______生成。编译程序 MOS半导体存储器中,______可大幅度提高集成度,但由于______操作,外围电路复杂,速度慢。DRAM,刷新 虚拟存储器可看作是一个容量非常大的______存储器,有了它,用户无需考虑所编程序在

计算机系统结构-第二章自考练习题答案

计算机系统结构-第二章自考练习题答案

第二章数据表示与指令系统 历年真题精选 1. 计算机中优先使用的操作码编码方法是( C )。 A. BCD码 B. ASCII码 C. 扩展操作码 D. 哈夫曼编码 2.浮点数尾数基值r m=16,除尾符之外的尾数机器位数为8位时,可表示的规格化最大尾数值为( D )。 A. 1/2 B. 15/16 C. 1/256 D. 255/256 3. 自定义数据表示包括(标志符)数据表示和(数据描述符)两类。 4. 引入数据表示的两条基本原则是:一看系统 的效率是否有提高;二看数据表示的(通

用)性和(利用)率是否高。 5. 简述设计RISC的一般原则。 6. 简述程序的动态再定位的思想。 7. 浮点数表示,阶码用二进制表示,除阶符之外 的阶码位数p=3,尾数基值用十进制表示,除尾符外的尾数二进制位数m=8,计算非负阶、规格化、正尾数时, (1)可表示的最小尾数值;(2)可表示的最大值;(3)可表示的尾数个数。 8. (1)要将浮点数尾数下溢处理成K—1位结 果,则ROM表的单元数和字长各是多少? 并简述ROM表各单元所填的内容与其地址之间的规则。

(2)若3位数,其最低位为下溢处理前的附 加位,现将其下溢处理成2位结果,设 计使下溢处理平均误差接近于零的 ROM表,以表明地址单元与其内容的 关系。 同步强化练习 一.单项选择题。 1. 程序员编写程序时使用的地址是( D )。 A.主存地址B.有效地址C.辅存实地址D.逻辑地址 2. 在尾数下溢处理方法中,平均误差最大的是( B )。 A.舍入法B.截断法C.恒置“1”法

计算机组成与设计第五版答案

计算机组成与设计(2010年机械工业出版社出版的图书): 《计算机组成与设计》是2010年机械工业出版社出版的图书,作者是帕特森(DavidA.Patterson)。该书讲述的是采用了一个MIPS 处理器来展示计算机硬件技术、流水线、存储器的层次结构以及I/O 等基本功能。此外,该书还包括一些关于x86架构的介绍。 内容简介: 这本最畅销的计算机组成书籍经过全面更新,关注现今发生在计算机体系结构领域的革命性变革:从单处理器发展到多核微处理器。此外,出版这本书的ARM版是为了强调嵌入式系统对于全亚洲计算行业的重要性,并采用ARM处理器来讨论实际计算机的指令集和算术运算。因为ARM是用于嵌入式设备的最流行的指令集架构,而全世界每年约销售40亿个嵌入式设备。 采用ARMv6(ARM 11系列)为主要架构来展示指令系统和计算机算术运算的基本功能。 覆盖从串行计算到并行计算的革命性变革,新增了关于并行化的一章,并且每章中还有一些强调并行硬件和软件主题的小节。 新增一个由NVIDIA的首席科学家和架构主管撰写的附录,介绍了现代GPU的出现和重要性,首次详细描述了这个针对可视计算进行了优化的高度并行化、多线程、多核的处理器。 描述一种度量多核性能的独特方法——“Roofline model”,自带benchmark测试和分析AMD Opteron X4、Intel Xeo 5000、Sun Ultra SPARC T2和IBM Cell的性能。

涵盖了一些关于闪存和虚拟机的新内容。提供了大量富有启发性的练习题,内容达200多页。 将AMD Opteron X4和Intel Nehalem作为贯穿《计算机组成与设计:硬件/软件接口(英文版·第4版·ARM版)》的实例。 用SPEC CPU2006组件更新了所有处理器性能实例。 作者简介: David A.Patterson,加州大学伯克利分校计算机科学系教授。美国国家工程研究院院士。IEEE和ACM会士。曾因成功的启发式教育方法被IEEE授予James H.Mulligan,Jr教育奖章。他因为对RISC 技术的贡献而荣获1 995年IEEE技术成就奖,而在RAID技术方面的成就为他赢得了1999年IEEE Reynold Johnson信息存储奖。2000年他~13John L.Hennessy分享了John von Neumann奖。 John L.Hennessy,斯坦福大学校长,IEEE和ACM会士。美国国家工程研究院院士及美国科学艺术研究院院士。Hennessy教授因为在RISC技术方面做出了突出贡献而荣获2001年的Eckert-Mauchly奖章.他也是2001年Seymour Cray计算机工程奖得主。并且和David A.Patterson分享了2000年John von Neumann奖。

计算机组成与系统结构课后答案版全(清华大学袁春风主编)

第 1 章习题答案 5.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000 请回答下列问题: (1)对于P1,哪台机器的速度快?快多少?对于P2呢? (2)在M1上执行P1和P2的速度分别是多少MIPS?在M2上的执行速度又各是多少?从执行速度来看,对于P2,哪台机器的速度快?快多少? (3)假定M1和M2的时钟频率各是800MHz和1.2GHz,则在M1和M2上执行P1时的平均时钟周期数CPI各是多少? (4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,应该选择M1还是M2?为什么?(提示:从性价比上考虑)(5)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2?为什么? 参考答案: (1)对于P1,M2比M1快一倍;对于P2,M1比M2快一倍。 (2)对于M1,P1的速度为:200M/10=20MIPS;P2为300k/0.003=100MIPS。 对于M2,P1的速度为:150M/5=30MIPS;P2为420k/0.006=70MIPS。 从执行速度来看,对于P2,因为100/70=1.43倍,所以M1比M2快0.43倍。 (3)在M1上执行P1时的平均时钟周期数CPI为:10×800M/(200×106)=40。 在M2上执行P1时的平均时钟周期数CPI为:5×1.2G/(150×106)=40。 (4)考虑运行P1时M1和M2的性价比,因为该用户主要关心系统的响应时间,所以性价比中的性能应考虑执行时间,其性能为执行时间的倒数。故性价比R为: R=1/(执行时间×价格) R越大说明性价比越高,也即,“执行时间×价格”的值越小,则性价比越高。 因为10×5000 > 5×8000,所以,M2的性价比高。应选择M2。 (5)P1和P2需要同等考虑,性能有多种方式:执行时间总和、算术平均、几何平均。 若用算术平均方式,则:因为(10+0.003)/2×5000 > (5+0.006)/2×8000,所以M2的性价比高,应选择M2。 若用几何平均方式,则:因为sqrt(10×0.003) ×5000 < sqrt(5×0.006) ×8000, 所以M1的性价比高,应选择M1。 6.若机器M1和M2具有相同的指令集,其时钟频率分别为1GHz和1.5GHz。在指令集中有五种不同类型的指令A~E。下表给出了在M1和M2上每类指令的平均时钟周期数CPI。

计算机系统结构作业答案第三章(张晨曦)

3.1 -3.3为术语解释等解答题。 3.4 设一条指令的执行过程分为取指令,分析指令和执行指令3个阶段,每个阶段所需时间分别为ΔT, ΔT, 2ΔT,分别求出下列各种情况下,连续执行N条指令所需的时间。 (1) 顺序执行方式 (2) 只有“取指令”与“执行指令”重叠 (3) “取指令”,“分析指令”与“执行指令”重叠 解: (1) 4NΔT (2) (3N+1) ΔT (3) 2(N+1) ΔT 3.6 解决流水线瓶颈问题有哪两种常用方法? 解: (1) 细分瓶颈段 将瓶颈段细分为若干个子瓶颈段 (2) 重复设置瓶颈段 重复设置瓶颈段,使之并行工作,以此错开处理任务 3.9 列举下面循环中的所有相关,包括输出相关,反相关,真数据相关。 for(i = 2; i < 100; i=i+1) { a[i] = b[i] + a[i]; -----(1) c[i+1] = a[i] + d[i]; -----(2) a[i-1] = 2*b[i]; -----(3) b[i+1] = 2*b[i]; -----(4) } 解: 输出相关:第k次循环时(1)与第k+1轮时(3) 反相关:第k次循环时(1)和(2)与第k-1轮时(3) 真数据相关:每次循环(1)与(2),第k次循环(4)与k+1次循环(1),(3),(4) 3.12 有一指令流水线如下所示 50ns 50ns 100ns 200ns (1)求连续如入10条指令的情况下,该流水线的实际吞吐率和效率 (2)该流水线的“瓶颈”在哪一段?请采用两种不同的措施消除此“瓶颈”。对于你所给出 的两种新的流水线连续输入10条指令时,其实际吞吐率和效率各是多少? 解:(1)(m表示流水线级数,n 表示任务数)

计算机系统结构第二章自考练习题答案

计算机系统结构第二章自考练习题答案

第二章数据表示与指令系统 历年真题精选 1. 计算机中优先使用的操作码编码方法是( C )。 A. BCD码 B. ASCII码 C. 扩展操作码 D. 哈夫曼编码 2.浮点数尾数基值r m=16,除尾符之外的尾数机器位数为8位时,可表示的规格化最大尾数值为( D )。 A. 1/2 B. 15/16 C. 1/256 D. 255/256 3. 自定义数据表示包括(标志符)数据表示和(数据描述符)两类。 4. 引入数据表示的两条基本原则是:一看系统 的效率是否有提高;二看数据表示的(通

用)性和(利用)率是否高。 5. 简述设计RISC的一般原则。 6. 简述程序的动态再定位的思想。 7. 浮点数表示,阶码用二进制表示,除阶符之外 的阶码位数p=3,尾数基值用十进制表示,除尾符外的尾数二进制位数m=8,计算非负阶、规格化、正尾数时, (1)可表示的最小尾数值;(2)可表示的最大值;(3)可表示的尾数个数。 8. (1)要将浮点数尾数下溢处理成K—1位结 果,则ROM表的单元数和字长各是多少? 并简述ROM表各单元所填的内容与其地址之间的规则。 (2)若3位数,其最低位为下溢处理前的附 加位,现将其下溢处理成2位结果,设

计使下溢处理平均误差接近于零的 ROM表,以表明地址单元与其内容的 关系。 同步强化练习 一.单项选择题。 1. 程序员编写程序时使用的地址是( D )。 A.主存地址B.有效地址C.辅存实地址D.逻辑地址 2. 在尾数下溢处理方法中,平均误差最大的是( B )。 A.舍入法B.截断法C.恒置“1”法D.ROM查表法 3. 数据表示指的是( C )。A.应用中要用到的数据元素之间的结构关系

吉林大学计算机系统结构题库第三章

第三章流水线技术 知识点汇总 先行控制、流水线、单功能流水线、多功能流水线、静态流水线、动态流水线、部件级流水线、处理机级流水线、处理机间流水线、线性流水线、非线性流水线、顺序流水线、乱序流水线、时空图、流水线性能评价(吞吐率、加速比、效率)、解决流水线瓶颈问题方法、相关(数据相关、名相关、控制相关)、换名技术、流水线冲突(结构冲突、数据冲突、控制冲突)、流水线互锁机制、定向技术、指令调度、预测分支失败、预测分支成功、延迟分支(从前调度、从失败处调度、从成功处调度)、流水寄存器、3种向量处理方式(横向、纵向、纵横)、链接技术。 简答题 1.流水技术有哪些特点?(答出4个即可)(知识点:流水线) 答:1.将处理过程分解为若干子过程,由专门的功能部件来实现,2各段的时间尽可能相等,3各部件间都有一个缓冲寄存器,4适用于大量重复的时序过程,5需要通过时间和排空时间。 2.什么是静态流水线?什么是动态流水线?(知识点:静态流水线、动态流水线) 答:同一时间段内,多功能流水线中的各段只能按同一种功能的连接方式工作;同一时间段内,多功能流水线中的各段可以按照不同的方式连接同时执行多种功能。 3.什么是单功能流水线?什么是多功能流水线?(知识点:单功能流水线、多功能流水线) 答:只能完成一种固定功能的流水线。流水线的各段可以进行不同的连接,以实现不同的功能。 4.什么是线性流水线?什么是非线性流水线?(知识点:线性流水线、非线性流水线) 答:流水线的各段串行连接,没有反馈回路。流水线中除了有串行的连接外,还有反馈回路。 5.列举3种相关。(知识点:相关) 答:数据相关,名相关,控制相关。 6.流水线中有哪三种冲突?各是什么原因造成的?(知识点:流水线冲突) 答:结构冲突,硬件资源满足不了指令重叠执行的要求;数据冲突,指令在流水线中重叠执行时需要用到前面指令的执行结果;控制冲突,流水线遇到分支指令和其他会改变PC值的指令。 7.选择至少2种解决流水线结构冲突的方法简述。(知识点:结构冲突) 答:流水线停顿一个时钟周期,推迟后面的指令操作。设置相互独立的指令存储器和数据存储器。 8.选择至少2种解决流水线数据冲突的方法简述。(知识点:数据冲突) 答:定向技术,将计算结果从其产生的地方直接送到其他指令需要的地方。通过编译时让编译器重新组织指令顺序来消除冲突。

计算机组织与系统结构 (A-1 卷)

考试科目名称 计算机组织与系统结构 (A-1卷)2007——2008学年第 2 学期 教师 袁春风/窦万春考试方式:闭卷系(专业) 计算机科学与技术年级 2006班级 学号 姓名 成绩 题号一二三四五六 分数 一、填空题(本大题共15小题,每空1分,共20分) 得分 1. 二进制指令代码的符号化表示被称为汇编语言源程序。必须通过相应的翻译程序把它转 换为机器语言程序才能被计算机执行。 2. 通常用一个寄存器来存放当前执行指令的地址,MIPS结构中将该寄存器简写为PC。由于历史的原 因,PC寄存器通常被称为程序计数器(或Program Counter)。 3. 在MIPS中,分支指令的转移目标地址是由分支指令的下条指令地址加上一个位移量决定的。通常 把这种方式称为(PC)相对寻址方式。 4. 假定寄存器$s1中存放二进制信息为0000 0000 0000 0000 0000 0000 1101 1000,则在屏幕上用 16进制显示为0x 0000 00D8。若该信息是一个无符号整数,则表示的值为 216。 5. 过程调用时,涉及到调用过程和被调用过程之间的数据交换和程序切换,所以要有相应的存储空间 来存放调用参数、返回数据和返回地址等信息。这种用于过程调用的存储空间被称为堆栈Stack (或栈帧Stack Frame)。 6. 衡量CPU性能好坏的一个重要指标是CPU执行时间。它与程序包含的指令条数和每条指令的平均 时钟数以及时钟周期有关。通常用英文缩写CPI 来表示每条指令的平均时钟数。有时也用基准程序来测试处理器的性能,“基准程序”对应的英文单词是Benchmark。 7. 进行基本加/减等算术运算和与/或/非等逻辑运算的部件被称为算术逻辑部件。用英文缩写表示为 ALU。 8. 由于Cache数据是主存数据的副本,所以Cache和主存之间存在一致性问题,可以采用两种不同的 写策略来解决。这两种写策略是Write Back(或写回法/一次性写)和Write Through(或写通过法)。 9. 在流水线中,如果多条指令同时需要用到同一个功能部件,就发生了流水线冒险,会引起流水线的 阻塞。通常把这种流水线冒险称为结构(或资源冲突)冒险。

计算机系统结构第二章第一部分

第二章指令系统 ?指令系统是计算机系统结构的主要组成部分 ?指令系统是软件与硬件分界面的一个主要标志 ?指令系统软件与硬件之间互相沟通的桥梁 ?指令系统与软件之间的语义差距越来越大 2.1 数据表示 2.2 寻址技术 2.3 指令格式的优化设计 2.4 指令系统的功能设计 2.5 RISC指令系统 2.1 数据表示 ?新的研究成果,如浮点数基值的选择 ?新的数据表示方法,如自定义数据表示 2.1.1 数据表示与数据类型 2.1.2 浮点数的设计方法 2.1.3 自定义数据表示 2.1.1 数据表示与数据类型 ?数据的类型:文件、图、表、树、阵列、队列、链表、栈、向量、串、实数、整数、布尔数、字符 ?数据表示的定义:数据表示研究的是计算机硬件能够直接识别,可以被指令系统直接调用的那些数据类型。 例如:定点、逻辑、浮点、十进制、字符、字符串、堆栈和向量 ?确定哪些数据类型用数据表示实现,是软件与硬件的取舍问题 ?确定数据表示的原则: 一是缩短程序的运行时间, 二是减少CPU与主存储器之间的通信量, 三是这种数据表示的通用性和利用率。 例2.1:实现A=A+B,A和B均为200×200的矩阵。分析向量指令的作用解:如果在没有向量数据表示的计算机系统上实现,一般需要6条指令,其中有4条指令要循环4万次。因此,CPU与主存储器之间的通信量:取指令2+4×40,000条, 读或写数据3×40,000个, 共要访问主存储器7×40,000次以上 如果有向量数据表示,只需要一条指令 减少访问主存(取指令)次数:4×40,000次 缩短程序执行时间一倍以上

N m m e r =?? 数据表示在不断扩大,如字符串、向量、堆栈、图、表 ? 用软件和硬件相结合的方法实现新的数据表示 例如:用字节编址和字节运算指令来支持字符串数据表示 用变址寻址方式来支持向量数据表示 2.1.2 浮点数的设计方法 1、浮点数的表示方式 ? 一个浮点数N 可以用如下方式表示: 需要有6个参数来定义。 两个数值: m :尾数的值,包括尾数的码制(原码或补码)和数制(小数或整数) e :阶码的值,移码(偏码、增码、译码、余码等)或补码,整数 两个基值: r m :尾数的基值,2进制、4进制、8进制、16进制和10进制等 r e :阶码的基值,通常为2 两个字长: p :尾数长度,当r m =16时,每4个二进制位表示一位尾数 q :阶码长度,阶码部分的二进制位数 p 和q 均不包括符号位 ? 浮点数的存储式 注:m f 为尾数的符号位,e f 为阶码的符号位,e 为阶码的值,m 为尾数的值。 2、浮点数的表数范围 ? 尾数为原码 尾数用原码、纯小数,阶码用移码、整数时,规格化浮点数N 的表数范围: ---?≤≤-?-111r r N r r m m p m m q e q e r r () ? 尾数为补码 尾数用补码表示时,正数区间的表数范围与尾数采用原码时完全相同,而负数区间的表数范围为: q e q e r r r N r r r m m p m m ----≤≤-+?-11() ? 浮点数在数轴上的分布情况 min max min max 例2.2:设p =23,q =7,r m =r e =2,尾数用原码、纯小数表示,阶码用移码、整数表示,求规格化浮点数N 的表数范围。 解:规格化浮点数N 的表数范围是:

计算机系统结构李学干版习题答案

第一章 1- 1如有一个经解释实现的计算机,可以按功能划分成4级。每一级为了执行一条指令需要下一级的N条指令解释。若执行第1级的一条指令需K ns时间,那么执行第2、3、4级的一条指令各需要多少时间? 答:执行第2、3、4级的一条指令各需KN ns、(N*N)*K ns、(N*N*N)*K ns 的时间。 1- 2操作系统机器级的某些指令就用传统机器级的指令,这些指令可以用微程序直接解释实现,而不必有操作系统自己来实现。更具你对1-1题的回答,你认为这样做有哪些好处? 答:这样做,可以加快操作系统中操作命令解释的速度,同时也节省了存放解释操作命令这部分解释程序所占的存储空间,简化了操作系统机器级的设计,也有利于减少传统机器级的指令条数。 1- 3有一个计算机系统可按功能分成4级,每级的指令互不相同,每一级的指令都比其下一级的指令在效能上强M倍,即第i级的一条指令能完成第i-1级的M条指令的计算量。 现若需第i级的N条指令解释第i+1级的一条指令,而有一段第1级的程序需要运行Ks,问在第2、3和4级上一段等效程序各需要运行多长时间? 答:第2级上等效程序需运行:(N/M)*Ks。第3级上等效程序需运行:(N/M)*(N/M)*Ks。 第4级上等效程序需运行:(N/M)*(N/M)*(N/M)*Ks。 1- 4硬件和软件在什么意义上是等效的?在什么意义上又是不等效的?试举例说明。 答:软件和硬件在逻辑功能上是等效的,原理上,软件的功能可用硬件或固件完成,硬件的功能也可用软件模拟完成。但是实现的性能价格比,实现的难易程序不同。

例如,编译程序、操作系统等许多用机器语言软件子程序实现的功能完全可以用组合电路硬件或微程序固件来解释实现。它们的差别只是软件实现的速度慢,软件的编制复杂,编程工作量大,程序所占的存储空间量较多,这些都是不利的;但是,这样所用硬件少,硬件实现上也就因此而简单容易,硬件的成本低,解题的灵活性和适应性较好,这些都是有利的。 又如,乘除法运算可以经机器专门设计的乘法指令用硬件电路或乘除部件来实现。向量、数组运算在向量处理机中是直接使用向量、数组类指令和流水或陈列等向量运算部件的硬件方式来实现的,但在标量处理机上也可以通过执行用标量指令组成的循环程序的软件方式来完成。 浮点数运算可以直接通过设置浮点运算指令用硬件来实现,也可以用两个定点数分别表示浮点数的阶码和尾数,通过程序方法把浮点数阶码和尾数的运算映像变换成两个定点数的运算,用子程序软件的方式实现。十进制数的运算可以通过专门设置十进制数运算类指令和专门的十进制运算部件硬的方式来完成,或者通过设置BCD数的表示和若干BCD数运算的校正指令来软硬结合地实现,也可以先经十转二的数制转换子程序将十进制数转成二进制数,再用二进制运算类指令运算,所得结果又调用二转十的数制转换子程序转换成十进制数结果,用全软件的方式实现。 1- 5试以实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系与影响。 答:计算机系统结构、计算机组成、计算机实现互不相同,但又相互影响。 (1)计算机的系统结构相同,但可采用不同的组成。如IBM370系列有115、125、135、158、168等由低档到高档的多种型号机器。从汇编语言、机器语言程序设计者看到的概念性结构相同,均是由中央处理机/主存,通道、设备控制器,外设4级构成。其中,中央处理机都有相同的机器指令和汇编指令系统,只是指令的分析、执行在低档机上采用顺序进行,在高档机上采用重叠、流水或其它并行处理方式。

计算机组成与系统结构

1:__计算机体系结构__是机器语言程序员所看到的传统机器级所具有的属性,其实质是确定计算机系统中软硬件的界面。 2:虚拟存储器可看作是一个容量非常大的___逻辑___存储器,有了它,用户无需考虑所编程序在__主存__中是否放得下或放在什么位置等问题。 3:指令的跳跃寻址方式,是指下一条指令的地址由本条指令直接给出,因此,_程序计数器_的内容必须相应改变,以便及时跟踪新的指令地址。 4:指令格式中的地址码字段,通常用来指定参与操作的___操作数___或其地址。 5:在定点__小数、整数___运算中,为了判断溢出是否发生,可采用双符号位检测法。不论溢出与否,其__最高__符号位始终指示正确的符号。 6:1966年,M.J.Flynn从计算机体系结构的并行性能出发,按照__指令流, 数据流__的不同组织方式,把计算机系统的结构分为SISD、SIMD、MISD和MIMD四类。 7:具有相同___计算机体系结构__的计算机,可以采用不同的__计算机组成___。 8:MOS半导体存储器中,__SRAM _的外围电路简单,速度___快___,但其使用的器件多,集成度不高。 9:Cache的功能由___硬件___实现,因而对程序员是透明的。 10:冯?诺伊曼型计算机的设计思想是__存储程序并按地址顺序执行___。 11:到目前为止,使用最为广泛的计算机形态是__嵌入式计算机___。 12:从CPU来看,增加Cache的目的,就是在性能上使__主存, 内存__的平均读出时间尽可能接近Cache的读出时间。 13:在主存与Cache间建立地址映射,有几种不同的地址映射方式,它们是_全相联映射方式, 直接映射方式, 组相联映射方式_。 14:部分在计算机系统的层次结构中,属于硬件级的是__微程序设计级, 机器语言级_。 15:在计算机系统的层次结构中,属于软件级的是_高级语言级, 汇编语言级_。 16:在计算机系统的层次结构中,___微程序设计级, 操作系统级, 机器语言级__采用二进制数语言。 17:一种__计算机组成___可以采用多种不同的__计算机实现___。 18:世界上第一台通用电子数字计算机ENIAC使用_电子管_作为电子器件。 19:MOS半导体存储器中,__ DRAM __可大幅度提高集成度,但由于__刷新__操作,外围电路复杂,速度慢。 20:指令格式就是___指令字__用二进制代码表示的结构形式。 1:当CPU和主存进行信息交换,即CPU___向主存存入数据, 从主存读出数据, 从主存读出指令___时,都要使用地址寄存器和数据寄存器。 2:取出和执行任何一条指令所需的最短时间为_2_个CPU周期。 3:1997年,Intel在其Pentium MMX CPU中集成了MMX技术,使用了8个___64___位宽的MMX寄存器。 4:当代总线是一些标准总线,追求与___技术, 结构, CPU, 厂家___无关的开发标准。 5:在CPU中,运算器通常由___算术逻辑单元, 累加寄存器, 数据寄存器, 状态条件寄存器___组成。 6:在对流水CPU基本概念的描述中,正确的是__流水CPU是一种非常经济而实用的时间并行技术____。 7:相对于硬连线控制器,微程序控制器的优点在于__结构比较规整, 复杂性和非标准化程度较低, 增加或修改指令较为容易____。 8:在CPU中,数据寄存器用来暂时存放__由主存读出的一条指令, 由主存读出的一个数据字, 向主存存入的一条指令, 向主存存入的一个数据字____。 9:以下句子中,正确的是__各条指令的取指阶段所用的CPU周期是完全相同的。由于各条指令的功能不同,指令的执行阶段所用的CPU周期是各不相同的____。 10:在CPU中,程序计数器用来保存___下一条指令的地址___。 11:在对RISC机器基本概念的描述中,正确的是___ RISC机器一定是流水CPU ___。 12:在一个计算机系统中,算术流水线是指运算操作步骤的并行,是__部件___级流水线。 13:流水CPU通常由_指令部件, 指令队列, 执行部件_等几个部分组成,这几个功能部件可以组成一个多级流水线。14:奔腾CPU的大多数简单指令用硬连线控制实现,在1个时钟周期内执行完毕。而对于用微程序实现的指令,也在__2, 3__个时钟周期内执行完毕。 15:第一台RISC计算机于___1981__年在美国加州大学伯克利分校问世。

计算机系统结构-第二章(习题解答)

1. 数据类型、数据表示和数据结构之间是什么关系?在设计一个计算机系统 时,确定数据表示的原则主要有哪几个? 答: 略 2. 假设有A 和B 两种不同类型的处理机,A 处理机中的数据不带标志位,其 指令字长和数据字长均为32位。B 处理机的数据带有标志位,每个数据的字长增加至36位,其中有4位是标志符,它的指令条数由最多256条减少至不到64条。如果每执行一条指令平均要访问两个操作数,每个存放在存储器中的操作数平均要被访问8次。对于一个由1000条指令组成的程序,分别计算这个程序在A 处理机和B 处理机中所占用的存储空间大小(包括指令和数据),从中得到什么启发? 答: 我们可以计算出数据的总数量: ∵ 程序有1000条指令组成,且每条指令平均要访问两个操作数 ∴ 程序访问的数据总数为:1000×2=2000个 ∵ 每个数据平均访问8次 ∴ 程序访问的不同数据个数为:2000÷8=250 对于A 处理机,所用的存储空间的大小为: bit 4000032250321000Mem Mem Mem data n instructio A =?+?=+= 对于B 处理机,指令字长由32位变为了30位(条数由256减少到64),这样,所用的存储空间的大小为: bit 3900036250301000Mem Mem Mem data n instructio B =?+?=+=

由此我们可以看出,由于数据的平均访问次数要大于指令,所以,采用带标志符的数据表示不会增加总的存储空间大小。 3. 对于一个字长为64位的存储器,访问这个存储器的地址按字节编址。假设 存放在这个存储器中的数据中有20%是独立的字节数据(指与这个字节数据相邻的不是一个字节数据),有30%是独立的16位数据,有20%是独立的32位数据,另外30%是独立的64位数据;并且规定只能从一个存储字的起始位置开始存放数据。 ⑴计算这种存储器的存储空间利用率。 ⑵给出提高存储空间利用率的方法,画出新方法的逻辑框图,并计算这种方法 的存储空间利用率。 答: ⑴ 由于全是独立数据,有20%浪费56位(7/8);30%浪费48位(6/8);20%浪费32位(4/8);30%浪费0位(0/8)。 总共浪费:0.2×7/8+0.3×6/8+0.2×4/8+0.3×0/8=0.5 即:存储器的存储空间利用率为50%,浪费率为50%。 ⑵ 方案为:数据从地址整数倍位置开始存储,即,双字地址000结尾,单字地址00结尾,半字地址0结尾,字节地址结尾任意。 可能出现的各种情况如下:

计算机组织与系统结构第六章习题答案

习题 1.给出以下概念的解释说明。 指令周期(Instruction Cycle)机器周期(Machine Cycle) 同步系统(Synchronous system)时序信号(Timing signal) 控制单元(Control Unit, CU)执行部件(Execute Unit,EU) 组合逻辑元件(Combinational logic element)或操作元件(Operate element) 时序逻辑元件(Sequential logic circuit)或状态元件(State element) 多路选择器(Multiplexor)扩展器(Extension unit) “零”扩展(0- extend)“符号”扩展(Sign extend) 算术逻辑部件ALU(Arithmetic Logic Unit)加法器(Adder) CPU总线(CPU Bus)寄存器堆(Register file) 定时方式(Clocking methodology)边沿触发(Edge-triggered) 寄存器写信号(Register Write)指令存储器(Instruction Memory)数据存储器(Data Memory)程序计数器(Program Counter) 指令寄存器(Instruction Register)指令译码器(Instruction Decoder)时钟周期(Clock Cycle)主频(CPU Clock Rate / Frequency 转移目标地址(Branch target address)控制信号(Control signal) 微程序控制器(Microprogrammed control)硬布线控制器(Hardwared control)控制存储器(Control Storage,控存CS)微代码(Microcode) 微指令(Microinstruction)微程序(Microprogram) 固件(Firmware)中断过程(Interrupt Processing) 异常(Exception)故障(fault) 自陷(Trap) 终止(Abort) 中断(Interrupt)中断服务程序(Interrupt Handler)中断允许位(Interrupt Enable Bit)关中断(Interrupt OFF) 开中断(Interrupt ON)中断响应(Interrupt Response) 向量中断(Vector Interrupt)中断向量(Interrupt vector) 中断向量表(Interrupt vector table)向量地址(vector Address) 中断类型号(Interrupt number) 2. 简单回答下列问题。 (1)CPU的基本组成和基本功能各是什么? (2)取指令部件的功能是什么? (3)控制器的功能是什么? (4)为什么对存储器按异步方式进行读写时需要WMFC信号?按同步方式访问存储器时,CPU如何实现存储器读写? (5)单周期处理器的CPI是多少?时钟周期如何确定?为什么单周期处理器的性能差?元件在一个指令周期内能否被重复使用?为什么? ? 156 ?

相关主题
文本预览
相关文档 最新文档