计算机系统结构课后习题答案解析.docx
《计算机系统结构课后习题答案解析.docx》由会员分享,可在线阅读,更多相关《计算机系统结构课后习题答案解析.docx(62页珍藏版)》请在冰豆网上搜索。
![计算机系统结构课后习题答案解析.docx](https://file1.bdocx.com/fileroot1/2023-1/22/78dd4b07-863a-4174-8baa-bfbe8fd7fa60/78dd4b07-863a-4174-8baa-bfbe8fd7fa601.gif)
计算机系统结构课后习题答案解析
第一章 计算机系统结构的基本概念
1.有一个计算机系统可按功能分成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。
note:
由题意可知:
第i级的一条指令能完成第i-1级的M条指令的计算量。
而现在第i级有N条指令解释第i+1级的一条指令,那么,我们就可以用N/M来表示N/M表示第i+1级需(N/M)条指令来完成第i级的计算量。
所以,当有一段第1级的程序需要运行Ks时,在第2级就需要(N/M)Ks,以此类推
2.硬件和软件在什么意义上是等效的?
在什么意义上又是不等效的?
试举例说明。
答:
软件和硬件在逻辑功能上是等效的,原理上,软件的功能可用硬件或固件完成,硬件的功能也可用软件模拟完成。
但是实现的性能价格比,实现的难易程序不同。
在DOS操作系统时代,汉字系统是一个重要问题,早期的汉字系统的字库和处理程序都固化在汉卡(硬件)上,而随着CPU、硬盘、存技术的不断发展,UCDOS把汉字系统的所有组成部份做成一个软件。
3.试以实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系与影响。
答:
计算机系统结构、计算机组成、计算机实现互不相同,但又相互影响。
(1)计算机的系统结构相同,但可采用不同的组成。
如IBM370系列有115、125、135、158、168等由低档到高档的多种型号机器。
从汇编语言、机器语言程序设计者看到的概念性结构相同,均是由中央处理机/主存,通道、设备控制器,外设4级构成。
其中,中央处理机都有相同的机器指令和汇编指令系统,只是指令的分析、执行在低档机上采用顺序进行,在高档机上采用重叠、流水或其它并行处理方式。
(2)相同的组成可有多种不同的实现。
如主存器件可用双极型的,也可用MOS型的;可用VLSI单片,也可用多片小规模集成电路组搭。
(3)计算机的系统结构不同,会使采用的组成技术不同,反之组成也会影响结构。
如为实现A:
=B+CD:
=E*F,可采用面向寄存器的系统结构,也可采用面向主存的三地址寻址方式的系统结构。
要提高运行速度,可让相加与相乘并行,为此这两种结构在组成上都要求设置独立的加法器和乘法器。
但对面向寄存器的系统结构还要求寄存器能同时被访问,而对面向主存的三地址寻址方式的系统结构并无此要求,倒是要求能同时形成多个访存操作数地址和能同时访存。
又如微程序控制是组成影响结构的典型。
通过改变控制存储器中的微程序,就可改变系统的机器指令,改变结构。
如果没有组成技术的进步,结构的进展是不可能的。
综上所述,系统结构的设计必须结合应用考虑,为软件和算法的实现提供更多更好的支持,同时要考虑可能采用和准备采用的组成技术。
应避免过多地或不合理地限制各种组成、实现技术的采用和发展,尽量做到既能方便地在低档机上用简单便宜的组成实现,又能在高档机上用复杂较贵的组成实现,这样,结构才有生命力;组成设计上面决定于结构,下面受限于实现技术。
然而,它可与实现折衷权衡。
例如,为达到速度要求,可用简单的组成但却是复杂的实现技术,也可用复杂的组成但却是一般速度的实现技术。
前者要求高性能的器件,后者可能造成组成设计复杂化和更多地采用专用芯片。
组成和实现的权衡取决于性能价格比等因素;结构、组成和实现所包含的具体容随不同时期及不同的计算机系统会有差异。
软件的硬化和硬件的软件都反映了这一事实。
VLSI的发展更使结构组成和实现融为一体,难以分开。
4.什么是透明性概念?
对计算机系统结构,下列哪些是透明的?
哪些是不透明的?
存储器的模m交叉存取;浮点数据表示;I/O系统是采用通道方式还是外围处理机方式;数据总线宽度;字符行运算指令;阵列运算部件;通道是采用结合型还是独立型;PDP-11系列的单总线结构;访问方式保护;程序性中断;串行、重叠还是流水控制方式;堆栈指令;存储器最小编址单位;Cache存储器。
答:
透明指的是客观存在的事物或属性从某个角度看不到。
透明的有:
存储器的模m交叉存取;数据总线宽度;阵列运算部件;通道是采用结合型还是独立型;PDP-11系列的单总线结构串行、重叠还是流水控制方式;Cache存储器。
不透明的有:
浮点数据表示;I/O系统是采用通道方式还是外围处理机方式;字符行运算指令;访问方式保护;程序性中断;;堆栈指令;存储器最小编址单位。
5.从机器(汇编)语言程序员看,以下哪些是透明的?
指令地址寄存器;指令缓冲器;时标发生器;条件寄存器;乘法器;主存地址寄存器;磁盘外设;先行进位链;移位器;通用寄存器;中断字寄存器。
答:
透明的有:
指令缓冲器、时标发生器、乘法器、先进先出链、移位器、主存地址寄存器。
6.下列哪些对系统程序员是透明的?
哪些对应用程序员是透明的?
系列机各档不同的数据通路宽度;虚拟存储器;Cache存储器;程序状态字;“启动I/O”指令;“执行”指令;指令缓冲寄存器。
答:
对系统程序员透明的有:
系列机各档不同的数据通路宽度;Cache存储器;指令缓冲寄存器;
对应用程序员透明的有:
系列机各档不同的数据通路宽度;Cache存储器;指令缓冲寄存器;虚拟存储器;程序状态字;“启动I/O”指令。
note:
系列机各档不同的数据通路宽度、Cache存贮器、指令缓冲寄存器属于计算机组成,对系统和程序员和应用程序员都是透明的。
虚拟存贮器、程序状态字、“启动I/O”指令,对系统程序员是不透明的,而对应用程序员却是透明的。
“执行”指令则对系统程序员和应用程序员都是不透明的。
7.想在系列机中发展一种新型号机器,你认为下列哪些设想是可以考虑的,哪些则不行的?
为什么?
新增加字符数据类型和若干条字符处理指令,以支持事务处理程序的编译。
(2)为增强中断处理功能,将中断分级由原来的4级增加到5级,并重新调整中断响应的优先次序。
(3)在CPU和主存之间增设Cache存储器,以克服因主存访问速率过低而造成的系统性能瓶颈。
(4)为解决计算误差较大,将机器中浮点数的下溢处理方法由原来的恒置“1”法,改为用ROM存取下溢处理结果的查表舍入法。
(5)为增加寻址灵活性和减少平均指令字长,将原等长操作码指令改为有3类不同码长的扩展操作码;将源操作数寻址方式由操作码指明改成如VAX-11那种设寻址方式位字段指明。
(6)将CPU与主存间的数据通路宽度由16位扩展成32位,以加快主机部信息的传送。
(7)为减少公用总路线的使用冲突,将单总线改为双总线。
(8)把原0号通用寄存器改作堆栈指示器。
答:
可以考虑的有:
1,3,4,6,7。
不可以考虑的有:
2,5,8。
原则是看改进后能否保持软件的可移植性。
P.S.为了能使软件长期稳定,就要在相当长的时期里保证系统结构基本不变,因此在确定系列结构时要非常慎重。
其中最主要是确定好系列机的指令系统、数据表示及概念性结构。
既要考虑满足应用的各种需要和发展,又要考虑能方便地采用从低速到高速的各种组成的实现技术,即使用复杂、昂贵的组成实现时,也还能充分发挥该实现方法所带来的好处。
8.并行处理计算机除分布处理、MPP和机群系统外,有哪4种基本结构?
列举它们各自要解决的主要问题。
答:
除了分布处理,MPP和机群系统外,并行处理计算机按其基本结构特征可分为流水线计算机,阵列处理机,多处理机和数据流计算机四种不同的结构。
流水线计算机主要通过时间重叠,让多个部件在时间上交划重叠地并行招待运算和处理,以实现时间上的并行。
它主要应解决:
拥塞控制,冲突防止,流水线调度等问题。
阵列处理机主要通过资源重复实现空间上的并行。
它主要应解决:
处理单元灵活、规律的互连模式和互连网络设计,数据在存储器中的分布算法等问题。
多处理机主要通过资源共享,让一组计算机在统一的操作系统全盘控制下,实现软件和硬件各级上的相互作用,达到时间和空间上的异步并行。
它主要应解决:
处理机间互连等硬件结构,进程间的同上步和通讯,多处理机调度等问题。
数据流计算机设有共享变量的概念,指令执行顺序只受指令中数据的相关性制约。
数据是以表示某一操作数或参数已准备就绪的数据令牌直接在指令之间传递。
它主要应解决:
研究合适的硬件组织和结构,高效执行的数据流语言等问题。
9.计算机系统的3T性能目标是什么?
答:
计算机系统的3T性能目标是1TFLOPS计算能力,1TBYTE主存容量和1TBYTES的I/O带宽
第二章 数据表示与指令系统
1.数据结构和机器的数据表示之间是什么关系?
确定和引入数据表示的基本原则是什么?
答:
数据表示是能由硬件直接识别和引用的数据类型。
数据结构反映各种数据元素或信息单元之间的结构关系。
数据结构要通过软件映象变换成机器所具有的各种数据表示实现,所以数据表示是数据结构的组成元素。
不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性不同。
数据表示和数据结构是软件、硬件的交界面。
除基本数据表示不可少外,高级数据表示的引入遵循以下原则:
(1)看系统的效率有否提高,是否养活了实现时间和存储空间。
(2)看引入这种数据表示后,其通用性和利用率是否高。
2.标志符数据表示与描述符数据表示有何区别?
描述符数据表示与向量数据表示对向量数据结构所提供的支持有什么不同?
答:
标志符数据表示与描述符数据表示的差别是标志符与每个数据相连,合存于同一存储单元,描述单个数据的类型特性;描述符是与数据分开存放,用于描述向量、数组等成块数据的特征。
描述符数据表示为向量、数组的的实现提供了支持,有利于简化高级语言程序编译中的代码生成,可以比变址法更快地形成数据元素的地址。
但描述符数据表示并不支持向量、数组数据结构的高效实现。
而在有向量、数组数据表示的向量处理机上,硬件上设置有丰富的赂量或阵列运算指令,配有流水或阵列方式处理的高速运算器,不仅能快速形成向量、数组的元素地址,更重要的是便于实现把向量各元素成块预取到中央处理机,用一条向量、数组指令流水或同时对整个向量、数组高速处理.如让硬件越界判断与元素运算并行。
这些比起用与向量、阵列无关的机器语言和数据表示串行实现要高效的多。
3.堆栈型机器与通用寄存器型机器的主要区别是什么?
堆栈型机器系统结构为程序调用的哪些操作提供了支持?
答:
通用寄存器型机器对堆栈数据结构实现的支持是较差的。
表现在:
(1)堆栈操作的指令少,功能单一;
(2)堆栈在存储器,访问堆栈速度低;(3)堆栈通常只用于保存于程序调用时的返回地址,少量用堆栈实现程序间的参数传递。
而堆栈型机器则不同,表现在:
(1)有高速寄存器组成的硬件堆栈,并与主存中堆栈区在逻辑上组成整体,使堆栈的访问速度是寄存器的,容量是主存的;
(2)丰富的堆栈指令可对堆栈中的数据进行各种运算和处理;(3)有力地支持高级语言的编译;(4)有力地支持子程序的嵌套和递归调用。
堆栈型机器系统结构有力地支持子程序的嵌套和递归调用。
在程序调用时将返回地址、条件码、关键寄存器的容等全部压入堆栈,待子程序返回时,再从堆栈中弹出。
4.设某机阶值6位、尾数48位,阶符和数符不在其,当尾数分别以2、8、16为基时,在非负阶、正尾数、规格化数情况下,求出其最小阶、最大阶、阶的个数、最小尾数值、最大尾数值、可表示的最小值和最大值及可表示的规格化数的总个数。
解:
依题意知:
p=6m=48rm=2,8,16,m'=m/log2(rm),列下表:
p=6,m=48,rm=2(m'=48)
p=6,m=48,rm=8(m'=16)
p=6,m=48,rm=16(m'=12)
最小阶(非负阶,最小为0)
0
0
0
最大阶(2^p-1)
2^6-1
2^6-1
2^6-1
最小尾数值(rm^(-1))
1/2
1/8
1/16
最大尾数值(1-rm^(-m'))
1-2^(-48)
1-8^(-16),即(1-2^(-48))
1-16^(-12),即(1-2^(-48))
可表示的最小值
1/2
1/8
1/16
可表示的最大值
2^63*(1-2^(-48))
8^63*(1-8^(-16))
16^63*(1-16^(-12))
阶的个数(2^p)
2^6
2^6
2^6
可表示的尾数的个数
2^48*(2-1)/2
8^16*(8-1)/8
16^12*(16-1)/16
可表示的规格化数的个数
2^6*2^48*(2-1)/2
2^6*8^16*(8-1)/8
2^6*16^12*(16-1)/16
note:
可表示的最小值=rm^(最小阶)*最小尾数值=rm^0*rm^(-1)=rm^(-1);
可表示的最大值=rm^(最大阶)*最大尾数值=rm^(2^p-1)*(1-rm^(-m'));
可表示的尾数的个数=rm^m'*(rm-1)/rm;
可表示的规格化数的个数=阶的个数*尾数的个数=2^p*rm^m'*(rm-1)/rm。
5.
(1)浮点数系统使用的阶基rp=2,阶值位数p=2,尾数基值rm=10,以rm为基的尾数位数m''=1,按照使用的倍数来说,等价于m=4,试计算在非负阶、正尾数、规格化情况下的最小尾数值、最大尾数值、最大阶值、可表示的最小值和最大值及可表示数的个数。
(2)对于rp=2,p=2,rm=4,m'=2,重复以上计算。
解 依题意列下表:
p=2,rm=10,m'=1
p=2,rm=4,m'=2
最小尾数值
10^-1=0.1
4^-1=0.25
最大尾数值
1-10^-1=0.9
1-4^-2=15/16
最大阶值
2p^-1=3
3
可表示的最小值
0.1
0.25
可表示的最大值
10^3*0.9=900
4^3*15/16=60
可表示数的个数
36
48
题中“按照使用的倍数来说,等价于m=4,”这个m=4,因为2^3<10<2^4,等价为实际要4个二进制位,表示RM=10为基的一位
6.由4位数(其中最低位为下溢附加位)经ROM查表舍入法,下溢处理成3位结果,设计使下溢处理平均误差接近于零的ROM表,列出ROM编码表地址与容的对应关系。
解:
ROM编码表地址与容的对应关系
地址
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
容
000
001
001
010
010
011
011
100
100
101
101
110
110
111
111
111
7.变址寻址和基址寻址各适用于何种场合?
设计一种只用6位地址码就可指向一个址空间中任意64个地址之一的寻址机构。
答:
基址寻址是对逻辑地址空间到物理地址空间变换的支持,以利于实现程序的动态再定位。
变址寻址是对数组等数据块运算的支持,以利于循环。
将址空间64个地址分块,用基址寄存器指出程序所在块号,用指令中6位地址码表示该块64个地址之一,这样基址和变址相结合可访问址任意64个地址之一。
比如地址空间很大,为0-1023,只用6位地址码就可以指向这1024个地址中的任意64个。
剖析:
比如地址空间很大,1024,就是分成16个块,块号放在寄存器中,块地址放在地址位中,寄存器容和地址位结合,就能达到要求了。
8.经统计,某机器14条指令的使用频度分别为:
0.01,0.15,0.12,0.03,0.02,0.04,0.02,0.04,0.01,0.13,0.15,0.14,0.11,0.03。
分别求出用等长码、Huffman码、只有两种码长的扩展操作码3种编码方式的操作码平均码长。
解:
等长操作码的平均码长=4位;Huffman编码的平均码长=3.38位;只有两种码长的扩展操作码的平均码长=3.4位。
9.若某机要求:
三地址指令4条,单地址指令255条,零地址指令16条。
设指令字长为12位.每个地址码长为3位。
问能否以扩展操作码为其编码?
如果其中单地址指令为254条呢?
说明其理由。
答:
①不能用扩展码为其编码。
∵指令字长12位,每个地址码占3位;
∴三地址指令最多是2^(12-3-3-3)=8条,现三地址指令需4条,
∴可有4条编码作为扩展码,
∴单地址指令最多为4×2^3×2^3=2^8=256条,
现要求单地址指令255条,∴可有一条编码作扩展码
∴零地址指令最多为1×2^3=8条
不满足题目要求
∴不可能以扩展码为其编码。
②若单地址指令254条,可以用扩展码为其编码。
∵依据①中推导,单地址指令中可用2条编码作为扩展码
∴零地址指令为2×2^3=16条,满足题目要求
note:
三地址指令格式:
操作码地址码地址码地址码
3位3位3位3位
单地址指令格式:
操作码地址码
9位3位
所以前面9位由于三地址指令用了最前面3位,还有中间6位可作为编码(也就是总共可以有9位作为单地址指令的指令操作码的编码)。
减去3地址指令的4条,有4*2^6=256条,但由于韪目要求要有255条,所以剩下一个编码,已经用了9位的全部编码,最后零地址指令(全部12位都可作为操作码的编码)还有1*2^3=8(这是12位编码中最后三位的)若只要求254种,则可以有(256-254)*2^3=16条
10.某机指令字长16位。
设有单地址指令和双地址指令两类。
若每个地址字段为6位.且双地址指令有X条。
问单地址指令最多可以有多少条?
答:
单地址指令最多为(16-X)×2^6
P.S.双地址指令最多是2^(16-6-6)=2^4=16条,现双地址指令有X条,
∴可有(16-X)条编码作为扩展码,
∴单地址指令最多为(16-X)×2^6=256条
11.何谓指令格式的优化?
简要列举包括操作码和地址码两部分的指令格式优化可采用的各种途径和思路。
答:
指令格式的优化指如何用最短位数表示指令的操作信息和地址信息,使程序中指令的平均字长最短。
①操作码的优化
采用Huffman编码和扩展操作码编码。
②对地址码的优化:
采用多种寻址方式;
采用0、1、2、3等多种地址制;
在同种地址制再采用多种地址形式,如寄存器-寄存器型、寄存器-主存型、主存-主存型等;
在维持指令字在存储器按整数边界存储的前提下,使用多种不同的指令字长度。
12.某模型机9条指令使用频率为:
ADD(加)30%SUB(减)24%JOM(按负转移)6%
STO(存)7%JMP(转移)7%SHR(右移)2%
CIL(循环)3%CLA(清加)20%STP(停机)1%
要求有两种指令字长,都按双操作数指令格式编排,采用扩展操作码,并限制只能有两种操作码码长。
设该机有若干通用寄存器,主存为16位宽,按字节编址,采用按整数边界存储。
任何指令都在一个主存周期中取得,短指令为寄存器-寄存器型,长指令为寄存器-主存型,主存地址应能变址寻址。
(1)仅根据使用频率,不考虑其它要求,设计出全Huffman操作码,计算其平均码长;
(2)考虑题目全部要求,设计优化实用的操作形式,并计算其操作码的平均码长;
(3)该机允许使用多少可编址的通用寄存器?
(4)画出该机两种指令字格式,标出各字段之位数;
(5)指出访存操作数地址寻址的最大相对位移量为多少个字节?
解:
第
(1)和
(2)中Huffman和扩展操作码的编码及平均码长如下表:
指令Ii
使用频度Pi
Huffman编码
扩展操作码编码
I1
I2
I3
I4
I5
I6
I7
I8
I9
30%
24%
20%
7%
7%
6%
3%
2%
1%
10
00
01
1100
1101
1110
11110
111110
111111
00
01
10
11000
11001
11010
11011
11100
11101
西个马pili
2.61
2.78
(3)8个。
(4)两种指令格式如下图所示:
2位3位3位
OPR1R2
操作码寄存器1寄存器2
5位3位3位5位
OPR1Xd
操作码寄存器1变址寄存器相对位移
主存逻辑地址
(5)访存操作数地址寻址的最大相对位移量为32个字节。
13.设计RISC机器的一般原则及可采用的基本技术有那些?
答:
一般原则:
(1)确定指令系统时,只选择使用频度很高的指令及少量有效支持操作系统,高级语言及其它功能的指令;
(2)减少寻址方式种类,一般不超过两种;
(3)让所有指令在一个机器周期完成;
(4)扩大通用寄存器个数,一般不少于32个,尽量减少访存次数;
(5)大多数指令用硬联实现,少数用微程序实现;
(6)优化编译程序,简单有效地支持高级语言实现。
基本技术:
(1)按RISC一般原则设计,即确定指令系统时,选最常用基本指令,附以少数对操作系统等支持最有用的指令,使指令精简。
编码规整,寻址方式种类减少到1、2种。
(2)逻辑实现用硬联和微程序相结合。
即大多数简单指令用硬联方式实现,功能复杂的指令用微程序实现。
(3)用重叠寄存器窗口。
即:
为了减少访存,减化寻址方式和指令格式,简单有效地支持高级语言中的过程调用,在RISC机器中设有大量寄存嚣,井让各过程的寄存器窗口部分重叠。
(4)用流水和延迟转移实现指令,即可让本条指令执行与下条指令预取在时间上重叠。
另外,将转移指令与其前面的一条指令对换位置,让成功转移总是在紧跟的指令执行之后发生,使预取指令不作废,节省一个机器周期。
(5)优化设计编译系统。
即尽力优化寄存器分配,减少访存次数。
不仅要利用常规手段优化编译,还可调整指令执行顺序,以尽量减少机器周期等。
14.简要比较CISC机器和RISC机器各自的结构特点,它们分别存在哪些不足和问题?
为什么说今后的发展应是CISC和RISC的结合?
答:
CISC结构特点:
机器指令系统庞大复杂。
RISC结构特点:
机器指令系统简单,规模小,复杂度低。
CISC的问题:
(1)指令系统庞大,一般200条以上;
(2)指令操作繁杂,执行速度很低;
(3)难以优化生成高效机器语言程