计算机体系结构课后答案.docx
《计算机体系结构课后答案.docx》由会员分享,可在线阅读,更多相关《计算机体系结构课后答案.docx(20页珍藏版)》请在冰豆网上搜索。
计算机体系结构课后答案
计算机体系结构课后答案
【篇一:
计算机体系结构习题(含答案)】
1、尾数用补码、小数表示,阶码用移码、整数表示,尾数字长p=6(不包括符号位),阶码字长q=6(不包括符号位),为数基值rm=16,阶码基值re=2。
对于规格化浮点数,用十进制表达式写出如下数据(对于前11项,还要写出16进值编码)。
(1)最大尾数(8)最小正数
(2)最小正尾数(9)最大负数
(3)最小尾数(10)最小负数
(4)最大负尾数(11)浮点零
(5)最大阶码(12)表数精度
(6)最小阶码(13)表数效率
(7)最大正数(14)能表示的规格化浮点数个数
2.一台计算机系统要求浮点数的精度不低于10-7.2,表数范围正数不小于1038,且正、负数对称。
尾数用原码、纯小数表示,阶码用移码、整数表示。
(1)设计这种浮点数的格式
(2)计算
(1)所设计浮点数格式实际上能够表示的最大正数、最大负数、表数精度和表数效率。
3.某处理机要求浮点数在正数区的积累误差不大于2-p-1,其中,p是浮点数的尾数长度。
(1)选择合适的舍入方法。
(2)确定警戒位位数。
(3)计算在正数区的误差范围。
4.假设有a和b两种不同类型的处理机,a处理机中的数据不带标志符,其指令字长和数据字长均为32位。
b处理机的数据带有标志符,每个数据的字长增加至36位,其中有4位是标志符,它的指令数由最多256条减少到不到64条。
如果每执行一条指令平均要访问两个操作数,每个存放在存储器中的操作数平均要被访问8次。
对于一个由1000条指令组成的程序,分别计算这个程序在a处理机和b处理机中所占用的存储空间大小(包括指令和数据),从中得到什么启发?
5.一台模型机共有7条指令,各指令的使用频率分别为35%,25%,20%,10%,5%,3%和2%,有8个通用数据寄存器,2个变址寄存器。
(1)要求操作码的平均长度最短,请设计操作码的编码,并计算所设计操作码的平均长度。
6.某处理机的指令字长为16位,有双地址指令、单地址指令和零地址指令3类,并假设每个地址字
段的长度均为6位。
(1)如果双地址指令有15条,单地址指令和零地址指令的条数基本相同,问单地址指令和零地址指令各有多少条?
并且为这3类指令分配操作码。
(2)如果要求3类指令的比例大致为1:
9:
9,问双地址指令、单地址指令和零地址指令各有多少条?
并且为这3类指令分配操作码。
7.别用变址寻址方式和间接寻址方式编写一个程序,求c=a+b,其中,a与b都是由n个元素组成的一维数组。
比较两个程序,并回答下列问题:
(1)从程序的复杂程度看,哪一种寻址方式更好?
(2)从硬件实现的代价看,哪一种寻址方式比较容易实现?
(3)从对向量运算的支持看,哪一种寻址方式更好?
8.假设x处理机的数据不带标志符,其指令字长和数据字长均为32位。
y处理机的数据带有标志符,每个数据的字长增加至35位,其中有3位是标志符,其指令字长由32位减少至30位。
并假设一条指令平均访问两个操作数,每个操作数平均被访问r次。
现有一个程序,它的指令条数为i,分别计算在这两种不同类型的处理机中程序所占用的存储空间,并加以比较。
9.一种浮点数表示方式的精度不低于10-19,能表示的最大正数不小于104000,而且正负数对称。
尾数用原码、小数表示,阶码用移码、整数表示,尾数和阶码的基值都是2。
(1)设计这种浮点数的格式,给出各字段的名称和长度。
(2)计算
(1)所设计的浮点数格式能够表示的最大正数、最大负数和表示数的精度。
(3)如果在运算器中没有设置硬件警戒位,则这种浮点数可能采用了哪一种舍入方法?
给出这种舍入方法的舍入规则,在正数区的误差范围和积累误差。
10.有研究人员指出,如果在采用通用寄存器结构的计算机里加入寄存器-存储器寻址方式可能提高计算机效率。
做法是用:
addr2,0(rb)
代替指令序列
loadr1,0(rb)
addr2,r2,r1
假定使用新的指令能使时钟周期增加10%,并且假定只对时钟产生影响,而不影响cpi那么:
(1)采用新的指令,要达到与原来同样的性能需要去掉的load操作所占的百分比?
(假定load指令占总指令的22.8%)
(2)举出一种多指令序列,该序列不能使用上述的寄存器-存储器寻址方式。
即使得loadr1后面紧接着执行对r1的操作(该操作可以是任意某一操作码),但这一指令序列不能被一条指令(假定存在
这条指令)代替。
11.试比较下面4种不同类型的指令结构的存储效率:
(1)累加型:
所有的操作都在单个寄存器和单个内存地址之间进行
(2)存储器-存储器型:
每个指令的3个操作数都在内存中进行
(3)堆栈型:
所有的操作都在栈顶进行。
只有push和pop操作会访问内存,其它的指令执行时都会删除栈中的操作数,然后写入执行结果。
(4)通用寄存器型:
所有的操作都在寄存器中进行。
这些寄存器-寄存器指令中的每个指令都包含3个操作数。
通用寄存器一共有16个,寄存器标志符占4位长。
为比较存储效率,我们对以上4种指令集作了如下约定:
操作码占一个字节(8位)
内存地址占2个字节(16位)
操作数占4字节(32位)
所有指令的长度都以整数个字节计算
另外,还假定访问内存不使用其它的优化措施,变量a、b、c和d的初值都已经放在内存中。
针对以上4种不同的指令系统,回答下列问题:
(1)分别用汇编指令写出下面3个赋值语句:
a=b+c;
b=a+c;
d=a–b;
(2)分别计算所执行指令的字节数和转移内存数据的字节数,并指出如果根据代码的大小来计算的话,哪种结构的效率是最高的?
如果按需要的总内存带宽(代码+数据)来计算,又是哪种结构的效率最高?
12.考虑为dlx结构的计算机增加一个新的寻址模式。
即使得地址模式增加两个寄存器和一个11位长的带符号的偏移量来得到有效地址。
这样,编译器就会用新的寻址模式来代替
addr1,r1,r2
lwrd,0(r1)(或是store指令)
如果已知在dlx结构的计算机上对测得一些程序的load和store指令分别平均占26%和9%,在此基础上,计算:
(1)假定10%的load和store指令可以用新的寻址模式代替,那么采用新的寻址模式后的指令计数与采用前之比为多少?
(2)如果新的寻址模式使得时钟周期增长5%,那么采用了新的寻址模式的机器和未采用新的寻址模式的机器相比,哪种机器会更快一些,快多少?
1、解答:
在尾数采用补码、小数表示且p=6,阶码采用移码、整数表示且q=6,尾数基rm为16,阶码基re为2的情况下:
(1)最大尾数为:
1-rm-p=1-16-6,0.ffffff
(2)最小正尾数为:
1/rm=1/16,0.100000
(3)最小尾数为:
-1,1.000000
(4)最大负尾数为:
-(rm-1+rm-p)=(16-1+16-6),1.efffff
(5)最大阶码为:
req-1=26-1=63,7f,包括符号位共7个1
(6)最小阶码为:
-req=-26=-64,00,包括符号位共7个0
(7)最大正数为:
(1-16-6)1663,7fffffff
(8)最小正数为:
16-65,00100000
(9)最大负数为:
-(16-1+16-6)16-64,80efffff
(10)最小负数为:
-1663,ff000000
(11)浮点零为:
00000000
(12)表数精度为:
16-5/2=2-21
(13)表数效率为:
15/16=93.75%
2、解答:
(1)取尾数和阶码的基都为2,即:
rm=2且re=2
根据表示数精度的要求:
于是可以取p=24;
根据表示数范围的要求:
即
因此可以取q=7
数据格式可以表示如下(尾数采用隐藏位):
-24
(2)能够表示的最大正数:
(1-2
能够表示的最大负数:
-2
表示数的精度:
2-24-129)2127,,,
表数效率:
100%。
3、解答:
(1)舍入方法:
下舍上入法、查表法
(2)警戒位位数:
2位
(3)正数区的误差范围:
-2-p-1(1-2-g+1)~2-p-1
4、解答:
我们可以计算出数据的大致数量:
1000条指令访问的数据总数为1000*2=2000个;
对于a处理机,所用的存储空间的大小为:
由此我们可以看出,由于数据的平均访问次数要大于指令,所以,通过改进数据的格式来减少指令的长度,可以减少总的存储空间大小。
5、解答:
(1)要使得到的操作码长度最短,应采用huffman编码,构造huffman树如下:
由此可以得到7条指令的编码分别如下:
【篇二:
计算机体系结构课后习题原版答案_张晨曦著】
s=txt>1.1解释下列术语
计算机系统结构:
传统机器程序员所看到的计算机属性,即概念性结构与功能特性。
计算机组成:
计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。
计算机实现:
计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。
系统加速比:
对系统中某部分进行改进时,改进后系统性能提高的倍数。
amdahl定律:
当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。
并行性:
计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。
只要在时间上相互重叠,就存在并行性。
它包括同时性与并发性两种含义。
1.2试用实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系。
答:
如在设计主存系统时,确定主存容量、编址方式、寻址范围等属于计算机系统结构。
确定主存周期、逻辑上是否采用并行主存、逻辑设计等属于计算机组成。
选择存储芯片类型、微组装技术、线路设计等属于计算机实现。
计算机组成是计算机系统结构的逻辑实现。
计算机实现是计算机组成的物理实现。
一种体系结构可以有多种组成。
一种组成可以有多种实现。
1.6某台主频为400mhz的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下:
1.7将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?
解由题可知:
可改进比例=40%=0.4部件加速比=10根据amdahl定律可知:
1
系统加速比?
?
1.5625
0.4
?
1?
0.4?
?
10
采用此增强功能方法后,能使整个系统的性能提高到原来的1.5625倍。
1.8计算机系统中有三个部件可以改进,这三个部件的部件加速比为:
部件加速比1=30;部件加速比2=20;部件加速比3=10
(1)如果部件1和部件2的可改进比例均为30%,那么当部件3的可改进比例为多少时,系统加速比才可以达到10?
(2)如果三个部件的可改进比例分别为30%、30%和20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少?
解:
(1)在多个部件可改进情况下,amdahl定理的扩展:
sn?
(1?
1
?
fi)?
?
fi
si
已知s1=30,s2=20,s3=10,sn=10,f1=0.3,f2=0.3,得:
10?
1
1(-0.3?
0.3?
f3)?
(0.3/30?
0.3/20?
f3/10)
得f3=0.36,即部件3的可改进比例为36%。
(2)设系统改进前的执行时间为t,则3个部件改进前的执行时间为:
(0.3+0.3+0.2)t=0.8t,不可改进部分的执行时间为0.2t。
已知3个部件改进后的加速比分别为s1=30,s2=20,s3=10,因此3个部件改进后的执行时间为:
tn?
0.3t0.3t0.2t
?
?
?
0.045t302010
改进后整个系统的执行时间为:
tn=0.045t+0.2t=0.245t
那么系统中不可改进部分的执行时间在总执行时间中占的比例是:
0.2t
?
0.82
0.245t
1.9假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。
具体数据如下表所示:
(2)各类操作单独改进后,程序获得的加速比分别是多少?
(3)4类操作均改进后,整个程序的加速比是多少?
解:
根据amdahl定律sn?
1fe
(1?
fe)?
se
可得
4类操作均改进后,整个程序的加速比:
1
sn?
?
2.16
fi
(1?
?
fi)?
?
si
第2章指令集结构的分类
2.1解释下列术语
堆栈型机器:
cpu中存储操作数的单元是堆栈的机器。
累加器型机器:
cpu中存储操作数的单元是累加器的机器。
通用寄存器型机器:
cpu中存储操作数的单元是通用寄存器的机器。
2.2区别不同指令集结构的主要因素是什么?
根据这个主要因素可将指令集结构分为哪3类?
答:
区别不同指令集结构的主要因素是cpu中用来存储操作数的存储单元。
据此可将指令系统结构分为堆栈结构、累加器结构和通用寄存器结构。
2.4指令集应满足哪几个基本要求?
答:
对指令集的基本要求是:
完整性、规整性、高效率和兼容性。
完整性是指在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令集所提供的指令足够使用。
规整性主要包括对称性和均匀性。
对称性是指所有与指令集有关的存储单元的使用、操作码的设置等都是对称的。
均匀性是指对于各种不同的操作数类型、字长、操作种类和数据存储单元,指令的设置都要同等对待。
高效率是指指令的执行速度快、使用频度高。
2.7简述risc指令集结构的设计原则。
答
(1)选取使用频率最高的指令,并补充一些最有用的指令;
(2)每条指令的功能应
尽可能简单,并在一个机器周期内完成;(3)所有指令长度均相同;(4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行;(5)以简单有效的方式支持高级语言。
2.10通常有哪几种指令格式,请简述其适用范围。
答:
(1)变长编码格式。
如果系统结构设计者感兴趣的是程序的目标代码大小,而不是性能,就可以采用变长编码格式。
(2)固定长度编码格式。
如果感兴趣的是性能,而不是程序的目标代码大小,则可以选择固定长度编码格式。
(3)混合型编码格式。
需要兼顾降低目标代码长度和降低译码复杂度时,可以采用混合型编码格式。
第3章流水线技术
3.1解释下列术语
流水线:
将一个重复的时序过程,分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其它子过程同时执行。
吞吐率:
在单位时间内流水线所完成的任务数量或输出结果的数量。
流水线的加速比:
使用顺序处理方式处理一批任务所用的时间与按流水处理方式处理同一批任务所用的时间之比。
数据相关:
考虑两条指令i和j,i在j的前面,如果下述条件之一成立,则称指令j与指令i数据相关:
(1)指令j使用指令i产生的结果;
(2)指令j与指令k数据相关,而指令k又与指令i数据相关。
数据冲突:
当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。
定向:
用来解决写后读冲突的。
在发生写后读相关的情况下,在计算结果尚未出来之前,后面等待使用该结果的指令并不见得是马上就要用该结果。
如果能够将该计算结果从其产生的地方直接送到其它指令需要它的地方,那么就可以避免停顿。
链接技术:
具有先写后读相关的两条指令,在不出现功能部件冲突和vi冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。
分段开采:
当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。
3.3简述先行控制的基本思想。
答:
先行控制技术是把缓冲技术和预处理技术相结合。
缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲器,用以平滑它们的工作。
预处理技术是指预取指令、对指令进行加工以及预取操作数等。
采用先行控制方式的处理机内部设置多个缓冲站,用于平滑主存、指令分析部件、运算器三者之间的工作。
这样不仅使它们都能独立地工作,充分忙碌而不用相互等待,而且使指令分析部件和运算器分别能快速地取得指令和操作数,大幅度地提高指令的执行速度和部件
的效率。
这些缓冲站都按先进先出的方式工作,而且都是由一组若干个能快速访问的存储单元和相关的控制逻辑组成。
采用先行控制技术可以实现多条指令的重叠解释执行。
3.4设一条指令的执行过程分成取指令、分析指令和执行指令三个阶段,每个阶段所需的时间分别为△t、△t和2△t。
分别求出下列各种情况下,连续执行n条指令所需的时间。
(1)顺序执行方式;
(2)只有“取指令”与“执行指令”重叠;(3)“取指令”、“分析指令”与“执行指令”重叠。
解:
(1)每条指令的执行时间为:
△t+△t+2△t=4△t
连续执行n条指令所需的时间为:
4n△t
(2)连续执行n条指令所需的时间为:
4△t+3(n-1)△t=(3n+1)△t(3)连续执行n条指令所需的时间为:
4△t+2(n-1)△t=(2n+2)△t
3.5简述流水线技术的特点。
答:
流水技术有以下特点:
(1)流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现。
因此,流水线实际上是把一个大的处理功能部件分解为多个独立的功能部件,并依靠它们的并行工作来提高吞吐率。
(2)流水线中各段的时间应尽可能相等,否则将引起流水线堵塞和断流。
(3)流水线每一个功能部件的前面都要有一个缓冲寄存器,称为流水寄存器。
(4)流水技术适合于大量重复的时序过程,只有在输入端不断地提供任务,才能充分发挥流水线的效率。
(5)流水线需要有通过时间和排空时间。
在这两个时间段中,流水线都不是满负荷工作。
3.6解决流水线瓶颈问题有哪两种常用方法?
答:
细分瓶颈段与重复设置瓶颈段
3.10简述三种向量处理方式,它们对向量处理机的结构要求有何不同?
答
(1)横向处理方式:
若向量长度为n,则水平处理方式相当于执行n次循环。
若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水处理。
(2)纵向处理方式:
将整个向量按相同的运算处理完毕之后,再去执行其他运算。
适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成m-m型的运算流水线。
(3)纵横处理方式:
把长度为n的向量分为若干组,每组长度为n,组内按纵向方式处理,依次处理各组,组数为「n/n」,适合流水处理。
可设长度为n的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成r-r型运算流水线。
3.11可采用哪些方法来提高向量处理机的性能?
答:
可采用多种方法:
(1)设置多个功能部件,使它们并行工作;
(2)采用链接技术,加快一串向量指令的执行;
【篇三:
计算机体系结构课后详解王志英】
=txt>1.1解释下列术语层次机构:
按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征。
这些层次依次为:
微程序机器级,传统机器语言机器级,汇编语言机器级,高级语言机器级,应用语言机器级等。
虚拟机:
用软件实现的机器。
翻译:
先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在这低一级机器上运行,实现程序的功能。
解释:
对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。
执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。
计算机系统结构:
传统机器程序员所看到的计算机属性,即概念性结构与功能特性。
在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。
计算机组成:
计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。
计算机实现:
计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。
系统加速比:
对系统中某部分进行改进时,改进后系统性能提高的倍数。
amdahl定律:
当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。
程序的局部性原理:
程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。
包括时间局部性和空间局部性。
cpi:
每条指令执行的平均时钟周期数。
测试程序套件:
由各种不同的真实应用程序构成的一组测试程序,用来测试计算机在各个方面的处理性能。
系列机:
由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的
计算机。
软件兼容:
一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上运行。
差别只是执行时间的不同。
向上(下)兼容:
按某档计算机编制的程序,不加修改就能运行于比它高(低)档的计算机。
向后(前)兼容:
按某个时期投入市场的某种型号计算机编制的程序,不加修改地就能运行于在它之后(前)投入市场的计算机。
兼容机:
由不同公司厂家生产的具有相同系统结构的计算机。
模拟:
用软件的方法在一台现有的计算机(称为宿主机)上实现另一台计算机(称为虚拟机)的指令系统。
仿真:
用一台现有计算机(称为宿主机)上的微程序去解释实现另一台计算机(称为目标机)的指令系统。
并行性:
计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。
只要在时间上相互重叠,就存在并行性。
它包括同时性与并发性两种含义。
时间重叠:
在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
资源重复:
在并行性概念中引入空间因素,以数量取胜。
通过重复设置硬件资源,大幅度地提高计算机系统的性能。
资源共享:
这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。
耦合度:
反映多机系统中各计算机之间物理连接的紧密程度和交互作用能力的强弱。
紧密耦合系统:
又称直接耦合系统。
在这种系统中,计算机之间的物理连接的频带较高,一般是通过总线或高速开关互连,可以共享主存。
松散耦合系统:
又称间接耦合系统,一般是通过通道或通信线路实现计算机之间的互连,可以共享外存设备(磁盘、磁带等)。
计算机之间的相互作用是在文件或数据集一级上进行。
异构型多处理机系统:
由多个不同类型、至少担负不同功能的处理机组成,它们按照作业要求的顺序,利用时间重叠原理,依次对它们的多个任务进行加工,各自完成规定的功能动作。
同构型多处理机系统:
由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务。
计算机组成是计算机系统结构的逻辑实现。
计算机实现是计算机组成的物理实现。
一种体系结构可以有多种组成。
一种组成可以有多