《计算机系统结构课后习题.pdf》由会员分享,可在线阅读,更多相关《计算机系统结构课后习题.pdf(68页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课后习题第一章计算机系统结构的基本概念1.有-个计算机系统可按功能分成4级,每级的指令互不相同,每一级的指令都比其下一级的指令在效能上强M倍,即第i级的一条指令能完成第i-1级的M条指令的计算量。现若需第i级的N条指令解释第i +1级的一条指令,而有一段第1级的程序需要运行K s,问在第2、3和4级上一段等效程序各需要运行多长时间?答:第2级上等效程序需运行:(N/*K s。第3级上等效程序需运行:(N/M)*(N/M)*Ks。第 4 级上等效程序需运行:(N/*(N/M)*(N/M)*Ks。note:由题意可知:第i级的一条指令能完成第i-1级的M条指令的计算量。而现在第i级有N条指令解释第
2、i +1级的一条指令,那么,我们就可以用N/M来表示N/M表示第i +1级需(N/M)条指令来完成第i级的计算量。所以,当有一段第1级的程序需要运行K s时,在第2级就需要(N/M)K s,以此类推2.硬件和软件在什么意义上是等效的?在什么意义上又是不等效的?试举例说明。答:软件和硬件在逻辑功能上是等效的,原理上,软件的功能可用硬件或固件完成,硬件的功能也可用软件模拟完成。但是实现的性能价格比,实现的难易程序不同。在D O S操作系统时代,汉字系统是一个重要问题,早期的汉字系统的字库和处理程序都固化在汉卡(硬件)上,而随着CPU、硬盘、内存技术的不断发展,UCDOS把汉字系统的所有组成部份做成
3、一个软件。3.试以实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系与影响。答:计算机系统结构、计算机组成、计算机实现互不相同,但又相互影响。(1)计算机的系统结构相同,但可采用不同的组成。如1BM370系列有115、125、135、158、1 6 8等由低档到高档的多种型号机器。从汇编语言、机器语言程序设计者看到的概念性结构相同,均是由中央处理机/主存,通道、设备控制器,外 设4级构成。其中,中央处理机都有相同的机器指令和汇编指令系统,只是指令的分析、执行在低档机上采用顺序进行,在高档机上采用重叠、流水或其它并行处理方式。(2)相同的组成可有多种不同的实现。如主存器件可用双极型的,
4、也可用MOS型的;可用VLS工单片,也可用多片小规模集成电路组搭。(3)计算机的系统结构不同,会使采用的组成技术不同,反之组成也会影响结构。如为实 现A:=B+CD:=E*F,可采用面向寄存器的系统结构,也可采用面向主存的三地址寻址方式的系统结构。要提高运行速度,可让相加与相乘并行,为此这两种结构在组成上都要求设置独立的加法器和乘法器。但对面向寄存器的系统结构还要求寄存器能同时被访问,而对面向主存的三地址寻址方式的系统结构并无此要求,倒是要求能同时形成多个访存操作数地址和能同时访存。又如微程序控制是组成影响结构的典型。通过改变控制存储器中的微程序,就可改变系统的机器指令,改变结构。如果没有组成
5、技术的进步,结构的进展是不可能的。综上所述,系统结构的设计必须结合应用考虑,为软件和算法的实现提供更多更好的支持,同时要考虑可能采用和准备采用的组成技术。应避免过多地或不合理地限制各种组成、实现技术的采用和发展,尽量做到既能方便地在低档机上用简单便宜的组成实现,又能在高档机上用复杂较贵的组成实现,这样,结构才有生命力;组成设计上面决定于结构,下面受限于实现技术。然而,它可与实现折衷权衡。例如,为达到速度要求,可用简单的组成但却是复杂的实现技术,也可用复杂的组成但却是一般速度的实现技术。前者要求高性能的器件,后者可能造成组成设计复杂化和更多地采用专用芯片。组成和实现的权衡取决于性能价格比等因素;
6、结构、组成和实现所包含的具体内容随不同时期及不同的计算机系统会有差异。软件的硬化和硬件的软件都反映了这一事实。VLSI的发展更使结构组成和实现融为一体,难以分开。4.什么是透明性概念?对计算机系统结构,下列哪些是透明的?哪些是不透明的?存储器的模m交叉存取;浮点数据表示;工/。系统是采用通道方式还是外围处理机方式;数据总线宽度;字符行运算指令;阵列运算部件;通道是采用结合型还是独立型;PDP-11系列的单总线结构;访问方式保护;程序性中断;串行、重叠还是流水控制方式;堆栈指令;存储器最小编址单位;Cache存储器。答:透明指的是客观存在的事物或属性从某个角度看不到。透明的有:存储器的模m交叉存
7、取;数据总线宽度;阵列运算部件;通道是采用结合型还是独立型;PDP-11系列的单总线结构串行、重叠还是流水控制方式;Cache存储器。不透明的有:浮点数据表示;I/O系统是采用通道方式还是外围处理机方式;字符行运算指令;访问方式保护;程序性中断;堆栈指令;存储器最小编址单位。5.从 机 器(汇编)语言程序员看,以下哪些是透明的?指令地址寄存器;指令缓冲器;时标发生器;条件寄存器;乘法器;主存地址寄存器;磁盘外设;先行进位链;移位器;通用寄存器;中断字寄存器。答:透明的有:指令缓冲器、时标发生器、乘法器、先进先出链、移位器、主存地址寄存器。6.下列哪些对系统程序员是透明的?哪些对应用程序员是透明
8、的?系列机各档不同的数据通路宽度;虚拟存储器;Cache存储器;程序状态字;启动I/O”指令;执行 指令;指令缓冲寄存器。答:对系统程序员透明的有:系列机各档不同的数据通路宽度;Cache存储器;指令缓冲寄存器;对应用程序员透明的有:系列机各档不同的数据通路宽度;Cache存储器;指令缓冲寄存器;虚拟存储器;程序状态字;启动工/。”指令。n o t e:系列机各档不同的数据通路宽度、Cache存贮器、指令缓冲寄存器属于计算机组成,对系统和程序员和应用程序员都是透明的。虚拟存贮器、程序状态字、启动工/。”指令,对系统程序员是不透明的,而对应用程序员却是透明的。执行指令则对系统程序员和应用程序员都
9、是不透明的。7.想在系列机中发展一种新型号机器,你认为下列哪些设想是可以考虑的,哪些则不行的?为什么?新增加字符数据类型和若干条字符处理指令,以支持事务处理程序的编译。(2)为增强中断处理功能,将中断分级由原来的4 级增加到5 级,并重新调整中断响应的优先次序。(3)在 CPU和主存之间增设C ach e存储器,以克服因主存访问速率过低而造成的系统性能瓶颈。(4)为解决计算误差较大,将机器中浮点数的下溢处理方法由原来的恒置1 法,改为用R OM存取下溢处理结果的查表舍入法。(5)为增加寻址灵活性和减少平均指令字长,将原等长操作码指令改为有3 类不同码长的扩展操作码;将源操作数寻址方式由操作码指
10、明改成如VAX-11那种设寻址方式位字段指明。(6)将 CPU与主存间的数据通路宽度由1 6 位扩展成3 2 位,以加快主机内部信息的传送。(7)为减少公用总路线的使用冲突,将单总线改为双总线。(8)把 原 0 号通用寄存器改作堆栈指示器。答:可以考虑的有:1,3,4,6,7 o 不可以考虑的有:2,5,8。原则是看改进后能否保持软件的可移植性。P.S.为了能使软件长期稳定,就要在相当长的时期里保证系统结构基本不变,因此在确定系列结构时要非常慎重。其中最主要是确定好系列机的指令系统、数据表示及概念性结构。既要考虑满足应用的各种需要和发展,又要考虑能方便地采用从低速到高速的各种组成的实现技术,即
11、使用复杂、昂贵的组成实现时,也还能充分发挥该实现方法所带来的好处。8.并行处理计算机除分布处理、MPP和机群系统外,有 哪 4 种基本结构?列举它们各自要解决的主要问题。答:除了分布处理,MPP和机群系统外,并行处理计算机按其基本结构特征可分为流水线计算机,阵列处理机,多处理机和数据流计算机四种不同的结构。流水线计算机主要通过时间重叠,让多个部件在时间上交划重叠地并行招待运算和处理,以实现时间上的并行。它主要应解决:拥塞控制,冲突防止,流水线调度等问题。阵列处理机主要通过资源重复实现空间上的并行。它主要应解决:处理单元灵活、规律的互连模式和互连网络设计,数据在存储器中的分布算法等问题。多处理机
12、主要通过资源共享,让一组计算机在统一的操作系统全盘控制下,实现软件和硬件各级上的相互作用,达到时间和空间上的异 步并行。它主要应解决:处理机间互连等硬件结构,进程间的同上步和通讯,多处理机调度等问题。数据流计算机设有共享变量的概念,指令执行顺序只受指令中数据的相关性制约。数据是以表示某一操作数或参数已准备就绪的数据令牌直接在指令之间传递。它主要应解决:研究合适的硬件组织和结构,高效执行的数据流语言等问题。9.计算机系统的3 T性能目标是什么?答:计算机系统的3 T性 能 目 标 是1T FL 0PS计 算 能 力,1TBYTE主 存 容 量 和1TBYTES的I/O带宽课 后 习 题 第 二
13、章 数 据 表 示 与 指 令 系 统1.数据结构和机器的数据表示之间是什么关系?确定和引入数据表示的基本原则是什么?答:数据表示是能由硬件直接识别和引用的数据类型。数据结构反映各种数据元素或信息单元之间的结构关系。数据结构要通过软件映象变换成机器所具有的各种数据表示实现,所以数据表示是数据结构的组成元素。不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性不同。数据表示和数据结构是软件、硬件的交界面。除基本数据表示不可少外,高级数据表示的引入遵循以下原则:(1)看系统的效率有否提高,是否养活了实现时间和存储空间。(2)看引入这种数据表示后,其通用性和利用率是否高。2.标志符
14、数据表示与描述符数据表示有何区别?描述符数据表示与向量数据表示对向量数据结构所提供的支持有什么不同?答:标志符数据表示与描述符数据表示的差别是标志符与每个数据相连,合存于同一存储单元,描述单个数据的类型特性;描述符是与数据分开存放,用于描述向量、数组等成块数据的特征。描述符数据表示为向量、数组的的实现提供了支持,有利于简化高级语言程序编译中的代码生成,可以比变址法更快地形成数据元素的地址。但描述符数据表示并不支持向量、数组数据结构的高效实现。而在有向量、数组数据表示的向量处理机上,硬件上设置有丰富的赂量或阵列运算指令,配有流水或阵列方式处理的高速运算器,不仅能快速形成向量、数组的元素地址,更重
15、要的是便于实现把向量各元素成块预取到中央处理机,用一条向量、数组指令流水或同时对整个向量、数组高速处理.如让硬件越界判断与元素运算并行。这些比起用与向量、阵列无关的机器语言和数据表示串行实现要高效的多。3.堆栈型机器与通用寄存器型机器的主要区别是什么?堆栈型机器系统结构为程序调用的哪些操作提供了支持?答:通用寄存器型机器对堆栈数据结构实现的支持是较差的。表现在:(1)堆栈操作的指令少,功能单一;(2)堆栈在存储器内,访问堆栈速度低;(3)堆栈通常只用于保存于程序调用时的返回地址,少量用堆栈实现程序间的参数传递。而堆栈型机器则不同,表现在:(1)有高速寄存器组成的硬件堆栈,并与主存中堆栈区在逻辑
16、上组成整体,使堆栈的访问速度是寄存器的,容量是主存的;(2)丰富的堆栈指令可对堆栈中的数据进行各种运算和处理;(3)有力地支持高级语言的编译;(4)有力地支持子程序的嵌套和递归调用。堆栈型机器系统结构有力地支持子程序的嵌套和递归调用。在程序调用时将返回地址、条件码、关键寄存器的内容等全部压入堆栈,待子程序返回时,再从堆栈中弹出。4.设某机阶值6位、尾 数48位,阶符和数符不在其内,当尾数分别以2、8、1 6为基时,在非负阶、正尾数、规格化数情况下,求出其最小阶、最大阶、阶的个数、最小尾数值、最大尾数值、可表示的最小值和最大值及可表示的规格化数的总个数。解:依题意知:p=6 m=4 8 r m=
17、2,8,16,m 1=m/l o g 2 (r m),列下表:p=6,m=4 8,r m=2 (m,=4 8)p=6,m=4 8,r m=8 (m,=16)p=6,m=4 8,r m=16 (m,=12)最小阶(非负阶,最小为0)000最大阶(2-P-1)2 6-l26-l2*6-1n o t e :司.表示的最小值二皿人(最小阶)*最小尾数值=r m/x0*r m/(-1)=r mA(-1);最小尾数值(r m-(-1)1/21/81/16最大尾数值(1-r n T (-m,)1-2(-48)1_8 (_16),即(1-2 (-48)1_16 (_12)9 即(1-27-48)可表示的最小值
18、1/21/81/16可表示的最大值2*6 3*(1-2*(-48)8*6 3*(1-8 7-16)16 6 3*(1-16-(-12)阶的个数(2 p)262飞26可表示的尾数的个数2.48*(2T)/28 16*(8-1)/816 12*(16-1)/16可表示的规格化数的个数26*2-48*(2-1)/22*6*8 16*(8-1)/82 飞*16 12*(16-1)/16可表示的最大值=1!1人(最大阶)*最大尾数值=r m八(2Ap-l)*(l-r mA(-m1);可表示的尾数的个数=r mAm,*(r m-1)/r m;可表示的规格化数的个数=阶的个数*尾数的个数=2八p*r m,*
19、(r m-1)/r m。5.(1)浮点数系统使用的阶基r p=2,阶值位数p=2,尾数基值r m=10,以r m为基的尾数位数按照使用的倍数来说,等价于m=4,试计算在非负阶、正尾数、规格化情况下的最小尾数值、最大尾数值、最大阶值、可表示的最小值和最大值及可表示数的个数。(2)对 于r p=2,p=2,r m=4,m =2,重复以上计算。解依题意列下表:p=2,r m=10,m,=1p=2,r m=4,m,=2最小尾数值0-1=0.11=0.25最大尾数值1-10-1=0.91-4=2=15/16最大阶值2p-l=33可表示的最小值0.10.25可表示的最大值10*3*0.9=9 004 3*
20、15/16=6 0可表示数的个数3 648题中按照使用的倍数来说,等价于m=4,这个m=4,因为2人3103-4-2的例子寺返回勺现场23 23 22223.若机器共有5级中断,中断响应优先次序为1-2-3-4-5,现要求其实际的中断处理次求序1*4 5-2 3 o(1)设计各级中断处理程序的中断级屏蔽位(令、1”对应于开放,、0”对应于屏蔽);(2)若在运行用户程序时,同时出现第4,2级中断请求,而在处理第2级中断未完成时,又同时出现第1,3,5级中断请求,请画出此程序运行过程示意图。答:(1)中断级屏蔽位设置如下图:中断处理程序级别中断级屏蔽位1级2级3级4级5级第1级11111第2级01
21、100第3级00100第4级01111第5级01101(2)中断过程示意图:如图2、4中断同时出现,进行排队器。首先响应第2级中断请求,屏蔽字为01100,表明其对第4级中断请求开放,所以转去响应第4级中断请求并进行处理。响应4,中断4运行结束,回2。1、3、5进入排队器。第2级中断请求的处理请求被中断,转去响应 第1级中断请求并进行处理。响应第5级中断请求并进行处理。继续响应并处理第2级中断处理请求,结束后返回用户程序。最后处理第3级中断请求。中断 用反 中断处理程序请 录 程 序 12 3 44.简述字节多路,数组多路和选择通道的数据传送方式。答:字节多路通道适用于连接大量的像光电机等字符
22、类低速设备。这些设备传送一个字符(字节)的时间很短,但字符(字节)间的等待时间很长。通道 数据宽度为单字节,以字节交叉方式轮流为多台设备服务,使效率提高。字节多路通道可有多个子通道,同时执行多个通道程序。数组多路通道适合于连接多台象磁盘等高速设备。这些设备的传送速率很高,但传送开始前的寻址辅助操作时间很长。通道 数据宽度”为定长块,多台设备以成组交叉方式工作,以充分利用并尽可能重叠各台高速设备的辅助操作时间。传送完K个字节数据,就重新选择下个设备。数组多路通道可有多个子通道,同时执行多个通道程序。选择通道适合于连接象磁盘等优先级高的高速设备,让它独占通道,只能执行一道通道程序。通道 数据宽度为
23、可变长块,-次将N个字节全部传送完,在数据传送期只选择一次设备。5.如果通道在数据传送期中,选择设备需9.8.,传送一个字节数据需0.2R S。某低速设备每 隔500R S发出一个字节数据传送请求,问至多可接几台这种低速设备?对于如下A F 6种高速设备,一次通讯传送的字节数不少于1024个字节,问哪些设备可以挂在此通道上?哪些则不能?其中A-F设备每发出一个字节数据传送请求的时间间隔分别为(单位为RS):表 3-51设备ABCDEF发申请间隔(u S)_ _ _ _ _ _0.20.2 50.50.1 90.40.2 1答:(1)至多可连接50台低速的外设。剖析:根据题意可知:低速设备应挂接
24、在字节多路通道上,字节多路通道的通道极限流量为:fmax.byte=l/(TS+TD)=fbyte通道极限流量应大于或等于设备对通道要求的流量fbyteo如果字节多路通道上所挂设备台数为m,设备的速率为fi,为了不丢失信息,应满足:1/(TS+TD)=m*fifi也就是设备发出字节传送请求间隔时间(500R S)的倒数,所以:m80%,H(1 0 5-5/4 )/(10A5-l)(.这样的命中率很难达到。为了降低对H 的要求,可以选择高命中率的算法,可以减少相邻两级的访问速度差和容量差(这样做不利于降低存储器的平均每位价格),可在主、辅存储器间加一层电子磁盘,使存储体系中相邻两级的访问时间比不
25、太大。2、程序存放在模3 2 单字交叉存储器中,设访存申请队的转移概率人为25%,求每个存储周期能访问到的平均字数。当模数为1 6呢?由此你可得到什么结论?解:B=1-(1-X)-m /入解:由人=0.25,m=32 求得:B=4-4*(3/4)A32同理,m=16 时,B=4-4*(3/4)-16可得出,在入=0.2 5时,m=32的平均访问字数大于m=16时的平均访问字数。3、设主存每个分体的存取周期为2 p s,宽度为4个字节。采用模m多分体交叉存取,但实际频宽只能达到最大频宽的0.6倍。现要求主存实际频宽为4M B/S,问主存模数m应取多少方能使两者速度基本适配?其中m取2的塞。解:m
26、=4剖析:根据题意,模m多分体交叉的最大频宽为:分体数*单体频宽=m*分体的宽度/分体的存取周期=111*48/2口s,所以有 0.6*m*4/2=4。4.某虚拟存储器共8个页面,每页1 0 2 4个字,实际主存为4 0 9 6个字,采用页表法进行地址映象。映象表的内容如下表所示。虚页号01234567实页号31232100装入位11001010注:我把虚页号加上了。(1)列出会发生页面失效的全部虚页号;(2)按以下虚地址计算主存实地址:0,3728,1023,1024,2055,7800,4096,6800。解:(1)会发生页面失效的全部虚页号为:2,3,5,7o(2)虚地址虚页号页内位移装
27、入位实页号页内位移实地址0001303072327836560页面失效页面失效无102301023131023409510241011010242055270页面失效页面失效无780076320页面失效页面失效无40964012020486800665610656656剖析:(1)根据页表法列出表2,当装入位为0时、即为页面失效,再找出相对应的虚页号即可。(2)虚页号=虚地址/页面大小页内位移量=虚地址一虚页号*页面大小实地址=实页号*页面大小十页内位移量由于可以用替换算法解决页面失效的问题,所以,发生页面失效的虚页2,3,5,7仍然可以有相应的实地址,但这样要在页表中建立新的虚实地址对应关系
28、,新的虚实地址对应关系和原来的对应关系相同的可能性就很小了。5、一个段页式虚拟存储器。虚地址有2位段号、2位页号、1 1位页内位移(按字编址),主存容量为3 2 K字。每段可有访问方式保护,其页表和保护位如下表所示。(1)此地址空间中共有多少个虚页?段号0123访问方式只读可读/执行可读/写/执行可读/写虚页0 所在位置实页9在辅存上页表不在主存内实页14虚页1所在位置实页3实页0页表不在主存内实页1虚页2 所在位置在辅存上实页15页表不在主存内实页6虚页3 所在位置实页12实页8页表不在主存内在辅存上(2)当程序中遇到下列情况时写出由虚地址计算出实地址。说明哪个会发生段失效、页面或保护失效失
29、效。方式段页页内位移取数011取数1110取数332047存数014存数212存数1014转移至此13100取数0250取数205转移至此3060解答:(1)该地址空间中共有1 6个虚页。(2)程序中遇到上表中各情况时,是否会发生段失效、页失效或保护失效及相应的主存实地址的情况如下表所示:方式段页页内位移段失效页失效实页号实地址保护失效取数011无无36145无取数1110无无010无取数332047无有无无/存数014无无36184有存数212有/无无/存数1014无有无无/转移至此13100无无816484无取数0250无有无无/取数205有/无无/转移至此3060无无1428732有剖析
30、:(1)虚地址中段号有2 位,页号有2 位,也就是每个程序最多只能有2人 2=4 个段,每个段至多只能有2-2=4 页,所以该地址空间中共有4*4=1 6 个虚页。(2)先从题意得知:实地址:1 5 位,其中实页号4 位,页内位移1 1 位页大小为2K字(由页内位移得知)6.设某程序包含5 个虚页,其页地址为4,5,3,2,5,1,3,2,2,5,1,3。当使用LR U算法替换时一,为获得最高命中率,至少应分配给该程序几个实页?其可能的最高命中率为多少?325135325145325443222513332511132555132堆栈页地址流 453 2513225S(1)SS(3)S(4)S
31、(5)S(6)n=1n=2n=3n=4 H数 n=5 H使用LRU算法对页地址流进行堆栈处理7.采用页式管理的虚拟存储器,分时运行两道程序。其中,程 序 X 为D O 5 0 1=1,3B(I)=A(I)-C(I)I F(B(I)L E 0)G 0 T 0 4 0D(I)=2*C(I)-A(I)I F(D(I)E Q O)G O T O 5 04 0 E(I)=05 0 C O N T I N U ED at a:A=(-4,+2,0)C=(-3,0,+l)每个数组分别放在不同的页面中;而程序丫在运行过程中,其数组将依次用到程序空间的第3,5,4,2,5,3,1,3,2,5,1,3,1,5,2
32、页。如果采用LRU算法,实存却只有8 页位置可供存放数组之用。试问为这两首程序的数组分别分配多少个实页最为合适?为什么?解答:分别分配给程序X 和丫的数组4 个实页最为合适。根据题意,程 序 X 依次调用数组A,C,B,B,C,A,D,D,E,A,C,B,B,E中的数据。设程序X 中的数组A,B,C,D,E 分别存放于程序空间的第1,2,3,4,5页,则程序的页地址流为:1,3,2,2,5,1 3,2,2,3,1 4,4,5 1,3 2,2,5。分析使用LRU算法对程序X 的页地址流进行堆栈处理的过程可知,分配给程序X 的数组5个实页最为合适;分析使用LRU算法对程序Y 的页地址流进行堆栈处理
33、的过程可知,分配给程序丫的数组4 个实页最为合适。但实存只有8 页位置可供存放数组之用,所以,分别分配给程序X 和丫的数组4 个实页。note:分时运行在微观上是串行的,就是说,分时运行时把时间划分为若干时间片,每个程序轮流占用时间片;在宏观上是并行的,就是说,每个程序在一个时间片内并不能运行完。总的来看,是同时运行的,所以两个程序分配的实页和不能大于8。我不了解FORTRAN,找朋友把上面的源代码转成C 了:m a i n ()i n t A =-4,2,0 ;int C=-3,0,1);for(i=0,100)Ei=0;););)8 .设一个按位编址的虚拟存储器,它应可对应1 K个任务,但
34、在一段较长时间内,一般只有4个任务在使用,故用容量为4行的相联寄存器组硬件来缩短被变换的虚地址中的用户位位数;每个任务的程序空间最大可达4 0 9 6页,每页为5 1 2个字节,实主存容量为2-2 0位;设快表用按地址访问存储器构成,行数为3 2,快表的地址是经散列形成;为减少散列冲突,配有两套独立相等比较电路。请设计该地址变换机构,内容包括:(1)画出其虚、实地址经快表变换之逻辑结构示意图;(2)相联寄存器组中每个寄存器的相联比较位数;(3)相联寄存器组中每个寄存器的总位数;(4)散列变换硬件的输入位数和输出位数;(5)每个相等比较器的位数;(6)快表的总容量(以位为单位)。解:(1)依题意
35、得知:虚地址为3 4位,其中用户号为1 0位(对应1 K的任务)、虚页号1 2位(每个任务4 0 9 6页)、页内位移1 2位(每页5 1 2字节,5 1 2字节=5 1 2*8 =1 0 2 4*4 =2-1 2)实地址为2 0位,其中实页号8位,页内位移1 2位(与虚页页内位移对应)相联寄存器的作用:把1 0位的用户号转换为2位的工D(因为一般只有4个任务在使用),并把I D与虚地址的虚页号合并到快表中查实页号。快表的作用:相当于页表,即虚页号对实页号的对应关系。但又有所简化(原因是如果用用户号和虚页号与实页号对应,前者就有2 2 位,现改进后虚页号只有1 4 位了)快表(按地址访问)虚拟
36、存储器快表示意图相联比较U1(1晦)00U201u310U411(2)相联寄存器组中每个寄存器的相联比较位数为10(与虚地址中的用户号宽度对应)(3)相联寄存器组中每个寄存器的总数为12(用户号宽度+1D宽度)(4)散列变换硬件的输入位数为1 4 位(虚页号宽度+相联寄存器中工D 的宽度),输出位数为8位(与主存中的实页号宽度对应)(5)每个相等比较器的位数=1D+用户虚页号nv=2+12=14(位)。(6)快表的总容量:3 2 行*(1 4(输入位数)+8(输出位数)*2=32*22*29.考虑一个9 2 0 个字的程序,其访问虚存的地址流为20,22,208,214,146,618,370
37、,490,492,868,916,728=(1)若页面大小为2 0 0 字,主存容量为4 0 0 字,采 用 F IF O 替换算法,请按访存的各个时刻,写出其虚页地址流,计算主存的命中率;(2)若页面大小为1 0 0 字,再做一遍;(3)若页面大小为4 0 0字,再做一遍;(4)由(1)、(2)、(3)的结果可得出什么结论?(5)若把主存容量增加到8 0 0 字,按第(1)小题再做一遍,又可得出什么结论?解:(1)主存容量4 0 0 字,页面大小2 0 0 字,所以主存实页数为2;把地址流转换为页地址流,以第一个虚地址流转换为页地址流为例说明:求模公式为:INT(地址/页 面 大 小),就是
38、把地址整除于页面大小,得 I N T(2 0/2 0 0 )=0 ,下 同,所以页地址流为:0,0,1,1,0,3,1,2,2,4,4,3按 F I F O 算法得出替换过程为:0 (调入),0 (命中),1 (调入),1 (命中),0 (命中),3(替 换 0,0比 1先入队,所以被替换,下同),1 (命中),2 (替 换 1),2 (命中),4 (替 换 3),4 (命中),3 (替 换 2),所以总共命中6次。故命中率H=6/1 2 =5 0%(2)方 法 同(1)H=2 5%(3)H=5 0%(4)由以上结论可得,F I F O 算法的条件下,当页面大小发生变化时,其命中率变化是:一开
39、始随页面大小增大命中率(第一步与第二步比较),但当页面大小增到一定时,命中率不再增加(第一步与第三步比较)。(5)命中率为5 8%,结论是如果分配给主存容量增加时可以搞高命中率。10.在一个页式二级虚拟存储器中,采 用 F I F O 算法进行页面替换,发现命中率H太低,因此有下列建议:(1)增大辅存容量;(2)增大主存容量(页数);(3)F I F O 改为 L R U;(4)FIFO改为LRU,并增大主存容量(页数);(5)FIFO改为LRU,并增大页面大小。试分析上述各建议对命中率的影响情况。解答:(1)增大辅存容量,对命中率H无影响。(2)增大主存容量(页数),可普遍提高命中率。(3)
40、F1F。改为LRU,一般可提高命中率。(4)F1F。改为LRU,并增大主存容量(页数),一般可使命中率有较大提高。(5)F1FO改为LRU,并增大页面大小,如果原来页面很小,则会使命中率显著上升,如果原来页面很大,则会使命中率下降。11.采用组相联映象的Cache存储器,Cache为1KB,要 求Cache的每一块在一个主存周期内能从主存取得。主存模4交叉,每个分体宽为32位,总容量为256KB。用按地址访问存储器构成相联目录表实现主存地址到Cache地址的变换,并约定用4个外相等比较电路。请设计此相联目录表,求出该表之行数、总位数及每个比较电路的位数。解 答:设Cache地 址 中 的 组
41、内 块 号 为s,相 联 目 录 表 的 行 数 是2入(13-s),总 位 数 是(8+2s)*2人(15-s),每个比较电路的位数为8 +s。剖析:在一个主存周期内主存能访问到的字节数为mW=4*32/8=16(Byte)。要 求Cache的每一块在一个主存周期内能从主存取得,所以,Cache中每块的块内字数不能大于16Bytes。为了加速调块,一般让每块的大小等于在一个主存周期内主存能访问到的字数,即16Bytes。设Cache地址中的组内块号为s,相联目录表的行数=Cache地址内的组数Q=Cache容量/(每组块数*每块大小)=1KB/(S*4*32)=2A13/(2入s*2入7)=
42、2入(6-s)。主存块数/Cache块数=256=2*8,所 以,主 存 地 址 中 的 区 号nd=8。每个比较电路的位数=nd+s1=nd+s=8+so相 联 目 录 表 的 总 位 数=表 中 子 目 录 表 的 个 数*每 个 子 目 录 表 的 位 数*相 联 目 录 表 的 行 数=4*(nd+sf+s)*Q=4*(8+2s)*2人(6-s)=(8+2s)*2A(8-s)on o te:若认为相等比较电路的个数=组内块数,则相联目录表的行数=2-4,每个比较电路的位数=10,相联目录表的总位数=12*2A6o12.有一个Cache存储器。主存共分8个 块(07),Cache为4个
43、块(03),采用组相联映象,组内块数 为2块,替换算法为近期最少使用算法(LRU)o(1)画出主存、Cache地址的各字段对应关系(标出位数)图;(2)画出主存、Cache空间块的映象对应关系示意图;(3)对于如下主存块地址流:1,2,4,1,3,7,0,1,2,5,4,6,4,7,2,如主存中内容一开始未装入Cache中,请列出Cache中各块随时间的使用状况;(4 )对于(3),指出块失效又发生块争用的时刻;(5)对于(3),求出此期间Cache的命中率。解答:(1)主存地址、Cache地址的各字段的位数及其对应关系如下图所示Cache块号neb 主存地址nm区号nd(1位)组号q(1位)
44、组 内 块 号 位)块内地址nmr-相联查找直接查找主存块号nmb W W Cache地址nc组号q(1位)组内块号s1(1位)块内地址nmr主存地址和Cache地址的对应关系(2)主存块、Cache块的映象对应关系如下图所示组 间 直 接 财 主 存 块 号0组一1组。组 一1组-组内各块之间全相联映象岖1区主存块和Cach e块的对应关系(3)Cache中各块随时间的使用状况如下图所示。图中标*号的是候选替换块的块号,H:命中;R:替换;L:失效。tine t主 存 块 地 址 流12 3 4 5 68 9 10 11 12 13 14 15Cachet夬命中情况Cache的使用情况7 2
45、(4)发生块失效又发生块争用的时刻有6、7、9、10、11、12、14、15o(5)Cache 的块命中率 Hc=3/15=0.2。剖析:由于主存块、Cache块之间存在上述的映象对应关系,主存的第0、1、4、5块只能映象装入或替换物理Cache的 第0、1块;主存的第2、3、6、7块只能映象装入或替换物理Cache的 第2、3块。13.采用组相联映象,LRU替换算法的Cache存储器,发现等效访问速度不高,为此建议:(1)增大主存容量;(2)增 大Cache的块数(块的大小不变);(3)增大组相联组的大小(块的大小不变);(4)增大块的大小(组的大小和Cache总容量不变);(5)提 高Ca
46、che本身器件的访问速度。解答:(1)增大主存容量对Cache的访问时间ta基本不影响,从而对Cache的等效访问速度基本不影响。(2)增 大Cache的块数(块的大小不变)一般将使Cache的命中率He上升,从而使ta下降,从而提高Cache的等效访问速度。(3)增大组相联组的大小(块的大小不变)一般将使Cache的命中率He上升,从而使ta下降,从而提高Cache的等效访问速度。(4)增大块的大小(组的大小和Cache总容量不变)一般将使ta下降,从而提高Cache的等效访问速度。(5)提 高Cache本身器件的访问速度一般将缩短ta,从而提高Cache的等效访问速度。14.你 对Cach
47、e存储器的速度不满,于是申请到一批有限的经费,为能发挥其最大经济效益,有人建议你再买一些同样速度的Cache片子以扩充其容量;而另有人建议你干脆去买更高速的Cache片子将现有的低速Cache片子全部换掉。你认为哪种建议可取?你如何做决定?为什么?解答:Cache本身的速度与容量都会影响Cache存储器的等效访问速度。如 果 对Cache存储器的等效访问速度不满,需要改进的话,就要作具体分析,看看现在Cache存储器的等效访问速度是否已接近 于Cache本身的速度。如果差得较远,说 明Cache的命中率低,应从提高Cache命中率着手,包括调整组的大小、块的大小、替换算法以及增大Cache容量
48、等。如 果Cache存储器的等效访问速度已经非常接近于Cache本身的速度还不能满足需要,就应该更换更高速的Cache片子。课后习题第 五 章 重 叠、流水和向量处理机1.假设指令的解释分取指、分析与执行3 步,每步的时间相应为t 取指、t 分析、t 执行,(1)分别计算下列几种情况下,执 行 完 100条指令所需时间的一般关系式:a.顺序方式;b.仅 执行k 与 取指k+1”重叠;c.仅 执行k 、分 析 k+1、取 指 k+2”重叠;(2)分别在t 取指=t 分析=2、t 执行=1 及 t 取指=t 执行=5、t 分析=2 两种情况下,计算出上述各结果。解:(1)执行完 100条指令所需时
49、间:a.100*(t 取指+t 分析+t 执行);b.t 取指+1 0 0*t分析+99*max(t 取指+t 执行)+t 执行;c.t 取指+max(t 取指+t 分析)+98*max(t 取指+t 分析+t 执行)+max(t 分析+t 执行)+t 执行。(2)在 t 取指=t 分析=2、t 执行=1 的情况下,执 行 完 100条指令所需时间:a.500b.401c.203在 t 取指=t 执行=5、t 分析=2 的情况下,执 行 完 100条指令所需时间:a.1200b.705c.5102.流水线有4 个功能部件组成,每 个 功 能 部 件 的 延 迟 时 间 为 当 输 入 1 0
50、个数据后间歇5A t 又输入 1 0 个数据,如此周期性地工作,求此时流水线的吞吐率,并画出时空图。解:TP=10/14At=5/7A t时空图:3.有一个浮点乘流水线如图5.3 5(a)所示,其乘积可直接返回输入端或暂存于相应缓冲寄存器中,画出 实 现 A*B*C*D 的时空图以及输入端的变化,并求出该流水线的吞吐率和效率;当流水线改为图5.3 5(b)形式实现同一计算时,求该流水线的效率及吞吐率。图 5.3 5 (a)t 3 Z操作数:|阶 加 卜 T 尾 乘 T 规 格 化 一 积(a)图 5.3 5(b)(b)解:按 图 5.3 5(a)组织的流水线时,T P=3/1 3 A t;r)