《计算机系统的体系结构》课后答案李学干清华大学出版社.docx
《《计算机系统的体系结构》课后答案李学干清华大学出版社.docx》由会员分享,可在线阅读,更多相关《《计算机系统的体系结构》课后答案李学干清华大学出版社.docx(58页珍藏版)》请在冰豆网上搜索。
《计算机系统的体系结构》课后答案李学干清华大学出版社
《计算机系统的体系结构》课后答案1-8章
Ps:
此文制作人:
风微凉了;
毕业在即、希望大家过好大学的每分每秒,珍惜身边人;
祝福你,相识既有缘,本人QQ:
251418310。
期待与你的相识!
第1章计算机系统结构的基本概念
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。
2、硬件和软件在什么意义上是等效的?
在什么意义上又是不等效的?
试举例说明。
答:
软件和硬件在逻辑功能上是等效的,原理上,软件的功能可用硬件或固件完成,硬件的功能也可用软件模拟完成。
只是反映在速度、价格、实现的难易程度上这两者不同。
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系统是采用通道方式还是外围处理机方式;字符行运算指令;访问方式保护;程序性中断;堆栈指令;存储器最小编址单位。
P.S.
属于计算机系统结构的属性有:
数据表示、寻址方式、寄存器组织、指令系统、存储组织、中断机构、I/O结构、保护机构等。
属于组成的属性有:
数据通路宽度、专用部件设置、功能部件并行度、控制机构的组成方式,可靠性技术等。
它着眼于机器内各事件的排序方式,控制机构的功能及部件间的关系。
属于实现的属性有:
部件的物理结构、器件、模块的划分与连接、微组装技术、信号传输技术等,它着眼于器件技术和微组装技术。
5、从机器(汇编)语言程序员看,以下哪些是透明的?
指令地址寄存器;指令缓冲器;时标发生器;条件寄存器;乘法器;主存地址寄存器;磁盘外设;先行进位链;移位器;通用寄存器;中断字寄存器。
答:
透明的有:
指令缓冲器、时标发生器、乘法器、主存地址寄存器、先进先出链、移位器
6、下列哪些对系统程序员是透明的?
哪些对应用程序员是透明的?
系列机各档不同的数据通路宽度;虚拟存储器;Cache存储器;程序状态字;“启动I/O”指令;“执行”指令;指令缓冲寄存器。
答:
对系统程序员透明的有:
虚拟存储器;Cache存储器;程序状态字;
对应用程序员透明的有:
系列机各档不同的数据通路宽度;“启动I/O”指令;“执行”指令;指令缓冲寄存器。
该题答案纯属本人个人见解。
对系统程序员透明是否意味着有计算机系统结构透明,而对应用程序员透明则对应着对计算机组成透明呢?
----lanjing
以下摘自南京大学出版社出版,李学干主编的辅导书
分析系统程序员是编写诸如操作系统、编译程序等各种系统软件的人员。
应用程序员是指利用计算机及所配的系统软件支持来编写解决具体应用问题的程序员。
他们都可以使用汇编语言或机器语言来编写程序,当然也可以用高级语言来编写程序。
所以,对系统程序员或应用程序员不透明的,应包括计算机系统结构所包含的方面。
而属全硬件实现的计算机组成所包含的方面,如系列机各档不同的数据通路宽度、Caceh存储器、指令缓冲寄存器等,无论是对系统程序员,还是对应用程序员都应当是透明的。
对目前高性能计算机系统来讲,大多数都是多用户环境,应用程序(也称算态、目态或用户态程序)中是不允许使用管态(也称系统态、监督态)中所用的特权指令。
例如,大型多用户系统中,程序状态字是用于反映计算机系统在当前程序的各种关键状态(它并不是IBMPC计算机那种狭义的所谓程序状态字),它是操作系统用于管理计算机系统资源及其使用状况的,用户不能直接对程序状态字内容进行读、写和访问的,只能由系统来管理。
“启动I/O”指令是大型机中的一种管态指令,属于特权指令,只能在操作系统程序中使用(见教材中第3章的3.4.1节所介绍)。
用户程序是不能用它来直接启动I/O通道和设备的。
虚拟存储器(参看教材第4章4.1.3节)是一个主存-辅存两级存储层次。
它对应用程序是完全透明的,使应用程序不必作任何修改就可以在系统上运行。
但是,在操作系统中必须配置有相应的管理软件,能对其虚实外部地址的映象和变换、程序的换道、程序由辅存调入主存、主存页面的替换、存储保护等进行管理,所以对系统程序员来说是不透明的。
“执行”指令(参看教材中第5章5.1.2节)是IBM370等系列机上用于解决程序在执行过程中不准修改指令,又允许将指令放在操作数区中做修改,以满足指令在执行过程中允许修改的要求。
这种指令无论是用户程序,还是系统程序,都希望可以被使用的,所以,“执行”指令应设计成对应用程序和系统程序都是不透明的。
解答系列机各档不同数据通路宽度、Cache存储器、指令缓冲寄存器属计算机组成,对系统程序员和应用程序员都是透明的。
虚拟存储器、程序状态字、“启动I/O”指令,对系统程序员是不透明的,而对应用程序员却是透明的。
“执行”指令则对系统程序员和应用程序员都是不透明的。
7、想在系列机中发展一种新型号机器,你认为下列哪些设想是可以考虑的,哪些则不行的?
为什么?
(1)新增加字符数据类型和若干条字符处理指令,以支持事务处理程序的编译。
(2)为增强中断处理功能,将中断分级由原来的4级增加到5级,并重新调整中断响应的优先次序。
(3)在CPU和主存之间增设Cache存储器,以克服因主存访问速率过低而造成的系统性能瓶颈。
(4)为解决计算误差较大,将机器中浮点数的下溢处理方法由原来的恒置“1”法,改为用ROM存取下溢处理结果的查表舍入法。
(5)为增加寻址灵活性和减少平均指令字长,将原等长操作码指令改为有3类不同码长的扩展操作码;将源操作数寻址方式由操作码指明改成如VAX-11那种设寻址方式位字段指明。
(6)将CPU与主存间的数据通路宽度由16位扩展成32位,以加快主机内部信息的传送。
(7)为减少公用总路线的使用冲突,将单总线改为双总线。
(8)把原0号通用寄存器改作堆栈指示器。
答:
可以考虑的有:
13467。
不可以考虑的有:
258。
原则很简单,看改进后能否保持软件的可移植性。
P.S.
为了能使软件长期稳定,就要在相当长的时期里保证系统结构基本不变,因此在确定系列结构时要非常慎重。
其中最主要是确定好系列机的指令系统、数据表示及概念性结构。
既要考虑满足应用的各种需要和发展,又要考虑能方便地采用从低速到高速的各种组成的实现技术,即使用复杂、昂贵的组成实现时,也还能充分发挥该实现方法所带来的好处。
8、并行处理计算机除分布处理、MPP和机群系统外,有哪4种基本结构?
列举它们各自要解决的主要问题。
答:
除了分布处理,MPP和机群系统外,并行处理计算机按其基本结构特征可分为流水线计算机,阵列处理机,多处理机和数据流计算机四种不同的结构。
流水线计算机主要通过时间重叠,让多个部件在时间上交划重叠地并行招待运算和处理,以实现时间上的并行。
它主要应解决:
拥塞控制,冲突防止,流水线调度等问题。
阵列处理机主要通过资源重复实现空间上的并行。
它主要应解决:
处理单元灵活、规律的互连模式和互连网络设计,数据在存储器中的分布算法等问题。
多处理机主要通过资源共享,让一组计算机在统一的操作系统全盘控制下,实现软件和硬件各级上的相互作用,达到时间和空间上的异步并行。
它主要应解决:
处理机间互连等硬件结构,进程间的同上步和通讯,多处理机调度等问题。
数据流计算机设有共享变量的概念,指令执行顺序只受指令中数据的相关性制约。
数据是以表示某一操作数或参数已准备就绪的数据令牌直接在指令之间传递。
它主要应解决:
研究合适的硬件组织和结构,高效执行的数据流语言等问题。
9、计算机系统的3T性能目标是什么?
答:
计算机系统的3T性能目标是1TFLOPS计算能力,1TBYTE主存容量和1TBYTES的I/O带宽
第2章数据表示与指令系统
1、数据结构和机器的数据表示之间是什么关系?
确定和引入数据表示的基本原则是什么?
答:
数据表示是能由硬件直接识别和引用的数据类型。
数据结构反映各种数据元素或信息单元之间的结构关系。
数据结构要通过软件映象变换成机器所具有的各种数据表示实现,所以数据表示是数据结构的组成元素。
不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性不同。
数据表示和数据结构是软件、硬件的交界面。
除基本数据表示不可少外,高级数据表示的引入遵循以下原则:
(1)看系统的效率有否提高,是否养活了实现时间和存储空间。
(2)看引入这种数据表示后,其通用性和利用率是否高。
2、标志符数据表示与描述符数据表示有何区别?
描述符数据表示与向量数据表示对向量数据结构所提供的支持有什么不同?
答:
标志符数据表示指将数据类型与数据本身直接联系在一起,让机器中每个数所都带类型樗位。
其优点是:
(1)简化了指令系统和程序设计;
(2)简化了编译程序;(3)便于实现一致性校验;(4)能由硬件自动变换数据类型;(5)支持数据库系统的实现与数据类型无关;(6)为软件调试和应用软件开发提供支持。
缺点是:
(1)会增加程序所点的主存空间;
(2)在微观上对机器的性能(运算速度)不利。
数据描述符指数据的描述与数据分开存放,描述所访问的数据是整块还是单个的,及访问该数据块或数据元素的地址住处它具备标志符数据表示的优点,并减少了标志符数据表示所占的空间,为向量和数组结构的实现提供支持。
数据描述符方法优于标志符数据表示,数据的描述与数据分开,描述所访问的数据是整块还是单个的,及访问该数据块或数据元素的地址信息,减少了樗符数据表示所占的窨。
用描述符方法实现阵列数据的索引比用变址方法实现要方便,且便于检查出程序中的阵列越界错误。
但它不能解决向量和数组的高速运算问题。
而在有向量、数组数据表示的向量处理机上,硬件上设置有丰富的赂量或阵列运算指令,配有流水或阵列方式处理的高速运算器,不仅能快速形成向量、数组的元素地址,更重要的是便于实现把向量各元素成块预取到中央处理机,用一条向量、数组指令流水或同时对整个向量、数组高速处理.如让硬件越界判断与元素运算并行。
这些比起用与向量、阵列无关的机器语言和数据表示串行实现要高效的多。
3、堆栈型机器与通用寄存器型机器的主要区别是什么?
堆栈型机器系统结构为程序调用的哪些操作提供了支持?
答:
有堆栈数据表示的机器称为堆栈机器。
它与一般通用寄存器型机器不同。
通用寄存器型机器对堆栈数据结构实现的支持是较差的。
表现在:
(1)堆栈操作的指令少,功能单一;
(2)堆栈在存储器内,访问堆栈速度低;(3)堆栈通常只用于保存于程序调用时的返回地址,少量用堆栈实现程序间的参数传递。
而堆栈机器为堆栈数据结构的实现提供有力的支持.表现在:
(1)有高速寄存器组成的硬件堆栈,并与主存中堆栈区在逻辑上组成整体,使堆栈的访问速度是寄存器的,容量是主存的;
(2)丰富的堆栈指令可对堆栈中的数据进行各种运算和处理;(3)有力地支持高级语言的编译;(4)有力地支持子程序的嵌套和递归调用。
堆栈型机器系统结构有力地支持子程序的嵌套和递归调用。
可将以下信息全部压栈,包括:
保存子程序的返回地址,保存条件码,保存关键寄存器内容,保存必要的全局型、局部型参数,为子程序开辟存放局部变量和中间结果的工作区。
4、设某机阶值6位、尾数48位,阶符和数符不在其内,当尾数分别以2、8、16为基时,在非负阶、正尾数、规格化数情况下,求出其最小阶、最大阶、阶的个数、最小尾数值、最大尾数值、可表示的最小值和最大值及可表示的规格化数的总个数。
解:
依题意知:
p=6m''=48rm=2,8,16
lanjing:
lanjing:
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''=1p=2,rm=4,m''=2
最小尾数值10^-1=0.14^-1=0.25
最大尾数值1-10^-1=0.91-4^-2=15/16
最大阶值2p^-1=33
可表示的最小值0.10.25
可表示的最大值10^3*0.9=9004^3*15/16=60
可表示数的总个数3648
P.S
不明白题中“按照使用的倍数来说,等价于m=4,”这句话是什么意思,有什么作用呢?
6、由4位数(其中最低位为下溢附加位)经ROM查表舍入法,下溢处理成3位结果,设计使下溢下
处理平均误差接近于零的ROM表,列出ROM编码表地址与内容的对应关系。
解:
地址0000000100100011010001010110011110001001101010111100110111101111
内容000001001010010011011100100101101110110111111111
7、变址寻址和基址寻址各适用于何种场合?
设计一种只用6位地址码就可指向一个大地址空间中
任意64个地址之一的寻址机构。
解:
基址寻址是对逻辑地址空间到物理地址空间变换的支持,以利于实现程序的动态再定位。
变址寻址是对数组等数据块运算的支持,以利于循环。
将大地址空间64个地址分块,用基址寄存器指出程序所在块号,用指令中6位地址码表示该块内64
个地址之一,这样基址和变址相结合可访问大地址任意64个地址之一。
以下摘自南京大学出版社出版,李学干主编的辅导书
变址寻址适合在标量计算机中,通过循环程序访问变址寄存器,修改其变址值来对向量或数组等数据结构中的各元素进行访问和处理。
基址寻址则主要是用于程序的逻辑地址空间到物理地址空间的变换,以支持程序使用动态再定位的技术。
设计一种只用6位地址码就可以指向一个大地址空间中任意64个地址之一的寻址机构,意味着指令中为寻址该操作数的地址码只有6位,只好用来表示这64个地址中的任一个。
那么这64个地址之一应当是在哪个大的地址空间的,就得使用其他办法来指明。
这里可列举常见的两种做法。
一种是采用隐含寻址,让标志这64个地址是相对哪个基点地址的区域用指令隐式规定的某个专门的寄存器中所存放的基址值来给出。
例如,可约定某个变址寄存器或某个基址器。
程序执行时,每当要访存时,就可以经硬件加法器将隐含寄存器的基址值与指令中给出的6位相对位移量相加来形成其访存单元的物理地址。
另一种是规定基点地址就是程序计数器,程序计数器(PC)存放的是当前所执行指令的下一条指令所在主存中的地址(或偏移地址)。
因此,可以通过使用无条件转移指令来修改PC的内容,实现在一个大的地址空间中的访问,这就是所谓的PC自相对寻址。
做法是通过将PC的内容与指令中所提供的6位相对位移量相加来形成主存单元的物理地址。
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条,满足题目要求
10、某机指令字长16位。
设有单地址指令和双地址指令两类。
若每个地址字段为6位.且双地址指
令有X条。
问单地址指令最多可以有多少条?
答:
双地址指令最多是2^(16-6-6)=2^4=16条,现双地址指令有X条,
∴可有(16-X)条编码作为扩展码,
∴单地址指令最多为(16-X)×2^6
11.何谓指令格式的优化?
简要列举包括操作码和地址码两部分的指令格式优化可采用的各种途径
和思路。
答:
指令格式的优化指如何用最短位数表示指令的操作信息和地址信息,使程序中指令的平均字
长最短。
为此用到Huffman压缩概念。
其基本思想是,当各种事件发生概率不均等时,采用优化技术对
发生概率最高的事件用最短的位数(时间)来表示(处理),而对出现概率较低的事件,允许采用较
长位数(时间)来表示(处理),会导致表示(处理)的平均位数(时间)的缩短。
①用此思想可对操作码进行优化。
首先通过大量已有典型程序进行统计,可得到每种指令在
程序中出现的概率(使用频度)。
然后构造它们的Huffman树。
方法如下:
a)被统计指令按使用频由小到大排列;
b)每次选择其中最小的二个频度合成一个频度是它们二者之和的新结点,并将该结点按频度
大小插到余下的未参与结合的频度值中;
c)如此继续,直至全部频度结合完毕形成根结点。
最后从根结点开始对每个结点的两个分支分别用0、1表示,则到达各频度指令的代码序列就
构成该频度指令的Huffman码。
Huffman码是最优化的编码,但这种编码码长种类太多.不便于译码,不能实用,为此可采用
下面的扩展操作码编码。
扩展操作码编码是介于定长二进制编码和全Huffman编码之间的一种编
码,仍利用Huffman压缩思想,使操作码平均长度缩短。
其操作码长度不定,但只有有限几种码
长,是一种可实用的优化编码方法。
扩展方法应根据指令使用频度pi的分布而定.如pi值在头15
种指令中都比较大,但在30种指令以后急剧减少,则宜选15/15/15法;若pi值在头8种指令中较
大,之后的64种指令pi值也不低时,则宜选8/64/512法。
衡量标准是哪种编码使平均长度最短。
②对地址码的优化:
操作码的优化表示可以使指令总位数减少,但为不降低访存指令的速度.必须维持指令字按
整数边界存储,所以首先应考虑地址码也用可变长.让长操作码与短地址码配合.即使是定长指
令字,也可利用操作码优化腾出的空白。
减少存储空间的浪费。
如果最常用的操作码最短,其地
址码个数越多指令功能越强。
如为实现A+B→C,若采用单地址指令需经取A,加B,送C三条指令
完成,而用了三地址指令只需一条,减少程序占用空间。
其次考虑多种寻址方式在满足很大寻址空间前提下,缩短地址码位数。
如在IBM370中用16位
地址码可通过基址寻址形成24位访存物理地址。
以20位地址码通过基址+变址形成24位访存物理地
址。
还可采用相对寻址,分段存储管理方式。
另外可考虑在同种地址制下的多种地址形式.如让空白处放直接操作数或常数。
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