计算机组成原理辅导与实验

发布时间 : 星期四 文章计算机组成原理辅导与实验更新完毕开始阅读

D. Direct Memory Access直接存储器访问 9. A. 程序中有不能并行的串行计算部分

B. 存在通信开销

10. A.并行 B.串行 C.复用 11. A.字符串 B.压缩的十进制数 C.非数值 12. A.符号 B.非数值 C.ASCII

三、问答题 1. 根据冯·诺依曼计算机体系结构来设计的计算机具有共同的基本配置,即具有五大部件:输入设备、存储器(主存储器)、运算器、控制器和输出设备。运算器与控制器合称为中央处理器(CPU)。CPU和存储器通常组装在一个主板上,合称为主机。输入设备和输出设备统称输入/输出设备,有时也称为外部设备或外围设备。

2. 系统软件用于实现计算机系统的管理、调度、监视和服务等功能,其目的是方便用户,提高计算机使用效率,扩充系统的功能。通常将系统软件分为以下六类: 操作系统、语言处理程序、标准库程序、服务性程序、数据库管理系统和计算机网络软件。

应用软件是用户为解决某种应用问题而编制的程序,如科学计算程序、自动控制程序、工程设计程序、数据处理程序、情报检索程序等。随着计算机的广泛应用,应用软件的种类及数量将越来越多、越来越庞大。

3. 近年来,计算机系统的结构和制造技术发生了极大的变化。但是,就计算机最基本的原理而言,大都沿用冯·诺依曼结构。冯·诺依曼结构的主要特点是主要特点是二进制和存储程序原理。

4. 按信息的表示形式和处理方式分类,可分为数字计算机、模拟计算机和混合计算机。按用途分类,可分为通用计算机和专用计算机。按规模分类,可分为巨型机、大型机、中型机、小型机、微型机和单片机等。按使用方式分类,可分为工作站和服务器。 5. 现代计算机系统可分为五个层次级别:

第一级是微程序设计级。这是一个实在的硬件级,它由机器硬件直接执行微指令。 第二级是一般机器级,也称为机器语言级。由微程序解释机器指令系统。属硬件级。 第三级是操作系统级,它由操作系统程序实现。这一级也称为混合级。 第四级是汇编语言级。这一级由汇编程序支持和执行。

第五级是高级语言级。这是面向用户的,这一级由各种高级语言编译程序支持。

层次结构的特点是上层是下层功能的扩展,下层是上层的基础。另外,站在不同的层次观察计算机系统,会得到不同的概念。

层次的划分不是绝对的。机器指令系统级与操作系统级的界面,又称硬、软件交界面,常常是分不清的,它随着软件硬化和硬件软化而动态变化。操作系统和其他系统软件的界面,也不是很清楚的,例如,数据库软件也部分地起到了操作系统的作用。此外,某些常用的带有应用性质的程序,既可以划归为应用程序层,也可以划归为系统软件层。

6. 计算机的工作特点为:运算速度快、运算精度高、记忆功能强、通用性广、自动运算。

1.4 典型例题精选

例2.1 某机器字长16位,采用两位比较法进行补码乘法运算,此时并行加法器应该是 位

5

加法器,应该进行 次相加移位操作。

分析:

采用两位比较法进行补码乘法运算,设被乘数为[X]补=X0.X1X2?Xn,乘数为[Y]补

=Y0.Y1Y2?Yn,两者的乘积为[Z]补=Z0.Z1Z2?Zn,部分积与被乘数必须采用两位符号位才能保证运算正确,注意,由于乘数只用一位符号位,Booth乘法只需作n+1步乘法。

解:

正确答案为:17,16.

例2.2 多项选择:在下面每小题所列出的若干答案中,选取所有的正确答案(可能没有,也可以有一个或多个)。

补码加法规则如下:

A. 所有的操作数都用补码表示,结果也用补码表示。 B. 若两数同号做加法,异号则做减法。 C. 符号位和操作数一样参与运算。 D. 结果的符号为1,表示溢出。 分析:

补码加(减)法运算规则可归纳如下:参与运算的操作数用补码表示;符号位采用两位,即用变形补码表示;符号位作为数的一部分一起参与运算;运算结果以补码表示,若两符号位相同,结果正常,若符号位为01,表示正溢出,若符号位为10,表示负溢出。

解:

正确答案为:A,C

例2.3 单选:某浮点机,采用规格化浮点数表示,阶码用移码表示(最高位代表符号位),尾数用原码表示。下列哪个数的表示不是规格化浮点数。

A. 阶码:1111111 尾数:1.1000??00 B. 阶码:0011111 尾数:1.0111??01 C. 阶码:1000001 尾数:0.1111??01 D. 阶码:0111111 尾数:0.1000??10 分析:

因为规格化的浮点数,尾数有三种形式: 00.1xx??x (原码、补码、反码都是正数的形式) 11.0xx??x (补码、反码都是负数的形式) 11.1xx??x (原码是负数的形式) 选择项B不符合规格化的形式。 解:

正确答案是:B。

例2.4 设32位字长的浮点数,其中阶符1位,阶码7位,数符1位,尾23位。分别写出机器数采用原码和补码表示时,所对应的最接近0的十进制负数。

分析:

计算机中的数据表示是二进制形式,本题中使用的32位浮点数据表示,阶码共8位,尾数共24位。求最接近0的十进制负数的浮点表示就是数据表示中最大的负数,即绝对值最小的负数。此时,该数的阶码为负,且绝对值最大;该数的尾数为负,且绝对值最小。注意尾数不能为0。

由于原码可以表示正0与负0,当机器采用n位原码数据表示时,定点小数的表示范围为:-(1-21 – n)~(1-21 – n);定点整数的表示范围为:-(2 n –1-1)~(2 n –1-1)。

6

而补码表示0的形式是唯一的,其负数表示的数据比原码表示的数据多一个。当机器采用n位补码数据表示时,定点小数的表示范围为:-1~(1-21 – n);定点整数的表示范围为:(-2 n –1)~(2 n –1-1)。

采用原码数据表示时,最接近0的负数的阶码为-(2 7-1)=-127,尾数为-2 –23。采用补码数据表示时,最接近0的负数的阶码为-128,尾数为-2-23。

最后需要将该数以科学计数法表示出来即可。 解:

最接近0的十进制负数的浮点表示就是数据表示中最大的负数,即绝对值最小的负数。阶码为8位(含 1位符号位),尾数为24位(含1位符号位)。

采用原码数据表示时,阶码为-127,尾数为-2 – 23。该数为-2 – 23×2 – 127。采用补码数据表示时,阶码为-128,尾数为-2 – 23。该数为-2 – 23×2 – 128。 例2.5 用32位表示一个数,阶码部分占8位(含一位符号位),尾数部分占24位(含一位符号位)。设x1=-256.5 ,x2=127/256,试写出x1和x2的补码浮点数表示格式。

9

解:(1) x1=-256.5= -100000000.12=-2×0.1000000001 阶码的补码为 [+9]补=00001001

尾数 1.01111111110000000000000 (规格化补码)

浮点表示的格式为 00001001,1.01111111110000000000000 用十六进制表示的格式为 09BFE00016

-8-1

(2)x2=127/256= (1111111)2×2=2×0.1111111 阶码的补码为 (-1)补=11111111

尾数 0.11111110000000000000000 (规格化补码)

浮点表示的格式为 11111111,0.11111110000000000000000 用十六进制表示的格式为(FF7F0000)16

例2.6 某机字长32位,浮点表示时,指数部分(即阶码)占8位(含一位符号位),尾数部分占24位(含一位符号位),问

(2) 带符号定点小数的最大表示范围是多少? (3) 带符号定点整数的最大表示范围是多少? (4) 浮点表示时,最大正数是多少? (5) 浮点表示时,最大负数是多少?

(6) 浮点表示时,最小的规格化正数是多少? 分析:

采用补码表示时,可表示的数据范围最大。因此本题可用补码来求解。

带符号的定点小数通常就是浮点数。浮点数据表示阶码占8位,尾数占24位,各包含一

23

位符号位。此时阶码的表示范围为:-128 ~ 127;尾数的表示范围为:-1 ~ 1-2–。

31

带符号的定点整数其符号位1位,其余位均用来表示数据。此时的表示范围为:-2 ~ 31

2-1。

浮点表示时,最大正数为阶码最大,尾数最大的正数。最大负数为阶码最小,尾数最小的负数。

采用规格化数据表示时要注意尾数必须保证大于等于0.5,小于1。因此,浮点表示时,最小的规格化正数阶码最小,尾数最小为0.5。 解:

采用补码进行数据表示的范围最大。整数表示时符号位1位,数据位31位。浮点表示时,阶码占8位,尾数占24位,各包含一位符号位。因此:

127 -23127

(1) 带符号定点小数的最大表示范围为:-1×2 ~ (1-2)×2。

7

(2) 带符号定点整数的最大表示范围为:-2 ~ 2-1。

-23127

(3) 浮点表示时,最大正数为:(1-2)×2。

-23-128

(4) 浮点表示时,最大负数为:-2×2。

-128

(5) 浮点表示时,最小的规格化正数为:0.5×2。 例2.7 已知浮点数运算的中间结果如下:

阶码 1 0 1 0 尾数 1 0 0 1 1 1 0 1 其中,阶码是4位补码。问

(1) 如果尾数是8位原码,求其规格化的浮点数的形式。 (2) 如果尾数是8位补码,求其规格化的浮点数的形式。 解:

(1)尾数为8位原码,最高位M-1=0,不是规格化表示形式。所以尾数左移2位,尾数低位补0,阶码减2,由1010变为1000,变换后的规格化浮点数的形式是: 1 000 1 1110100

(2)尾数为8位补码,尾数的最高位与其符号位正好相反,这表明已经是规格化浮点数的形式。

例2.8 设阶码8位(包括一位符号位),用移码表示,尾数为24位(包括一位符号位),用规格化补码表示,则它所能表示的最大正数的阶码为 A ,尾数为 B ;绝对值最小的负数的阶码为 C ,尾数为 D 。

分析:

题目的关键是搞懂阶码是定点整数的移码表示,而尾数是定点小数的补码表示,其中的补码和移码的表示法一定要非常清楚。阶码和补码在形式上的唯一区别就是在表示同一个数时符号刚好相反。 解:

最大正数阶码:11111111(最左符号位,要最大当然阶码要大),尾数当然也要最大,为0111 11111 11111 11111。绝对值最小的负数即是最大的负数,所以要阶码最达到负数的最小,绝对值的最大(即远离数轴原点的最左端),为00000000,而尾数应该达到负数的最大(即最靠近数轴原点的左端),为1011 11111 11111 11111(这里注意其中的0是因为题目规定要用规格化数表示,这点很重要,否则就是1111 11111 11111 11111) 例2.9 试证明 [x]补十[y]补=[x十y]补 (mod 2) 分析:

由于定点整数和定点小数的补码公式不同.因此,对于题中要求的补码加法公式的证明应该区分是定点小数情况还是定点整数情况。这里证明补码加法公式用于定点小数的情况(mod 2)。因为是定点小数加法,所以有|xI<1,|y|<1,且|x+yI<1。证明所需要的理论基础是定点小数补码的定义,即

31 31

x1?x?0?[x]补??(mod2)

2?x?2?|x|0?x??1?由于补码的定义对于正数和负数是不同的,因此,

证明该公式时亦应区分不同的情况进行,见表2.6。

证明:

设x,y为定点小数,且x十y亦为定点小数,故|xI<1,|y|<1,且|x+yI<1。

表2.6 补码加法公式证明的几种情况 1 2 3 4 X =0 >0 >0 <0 Y =0 >0 <0 >0 X︱Y =0 >0 >0或<0 >0或<0 5 0 <<0 <0 8

联系合同范文客服:xxxxx#qq.com(#替换为@)