《组成第七章答案版本.doc》由会员分享,可在线阅读,更多相关《组成第七章答案版本.doc(68页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date组成第七章答案2010版本计算机组成试题卷(14章)一、选择题1)已知虚拟内存地址32bit,物理内存为64MB。内存编址最小单位为字节。段页式虚拟内存管理,每页16KB。一个程序代码段长度45KB。问一共需要 C 个段与 个页。A:2,2B:1,1C:1,3D:以上答案都不对过程:段页式内存管理,是结合了段式与页式存储管理。页的大小是固定的,段的大小等于n个页。n为
2、整数。45/16=3,所以需要1个段,段内3个页。2)一CACHEMEM系统中,命中率为95,MEM访问时间为10ns,CACHE访问时间为1ns。问平均存储访问时间为 C ns。(判断命中时间忽略不计)A:(110)/2 B:105195C:(101)5195D:109515过程:访问Cache到:95%1访问cache不中,先访问内存,送数据到cache,然后再由cpu访问cache。所以时间为5%(110)表达式也可以写成11053)对系统程序员不透明的是 D 。A:cache存储器B:系列机各档不同的数据通道宽度C:指令缓冲寄存器D:虚拟存储器过程:系统程序员不能对cache、数据通道
3、、指令缓冲进行编程,能够对虚拟内存进行编程。2003年以后出现的处理器可以对cache编程。4)直接映射的cache主存构成的存储层次,已知是八入口,每块1B,内存变址最小单元为B。初始时cache为空。问以下存储器访问序列:1、5、8、17、1、0、5、2、6、1,失效率是 B 。A:70B:80C:90C:60 访问序列Cache内容1miss5miss8Miss17Miss1Miss0Miss5Hit2Miss6Miss1Hit编号0(8)(8)(8)(0)(0)(0)(0)(0)编号1(1)(1)(1)(17)(1)(1)(1)(1)(1)(1)编号2(2)(2)(2)编号3编号4编号
4、5(5)(5)(5)(5)(5)(5)(5)(5)(5)编号6(6)(6)编号75)已知虚拟内存地址32bit,物理内存为64MB。内存变址最小单位为字节。页式虚拟内存管理,每页32KB。问页表大小为 D 。A:128KBB:32KBC:64KBD:以上答案都不对过程:每页32KB,推导出页内偏移15bit虚地址32bit,虚页号需要321517bit,一共有217页,即页表入口217个物理内存64M,实地址26bit,推导出实页号261511bit,但是这个没有用处,因为页表每个入口访问是字对齐,即一个入口需要1W,4B页表大小入口数目每入口大小2174B512KB6)已知一cache是直接
5、映射方式,每块数据为2W,cache入口为1K,则cache容量为 C KB。A:2B:4C:8D:以上答案都不对过程:参见7)7)已知一cache是2路组相联映射方式,每块数据为2W,cache入口为1K,则cache容量为 C KB。A:4B:8C:16D:以上答案都不对过程:每块数据2W即8BCache容量关联度入口块大小21K8B=16KB8)已知内存32位,cache是2路组相联映射方式,数据容量为16KB。每块数据为2W,cache需要有效位、脏数据位各1位,则cache器件需要的总容量(总容量需要包括数据、标记、有效位、脏数据位)为 A bit。A:2路(1位有效位1位脏数据位1
6、9位标记位88数据位)1K入口B:2路(1位有效位1位脏数据位21位标记位88数据位)2K入口C:2路(1位有效位1位脏数据位21位标记位)4K入口D:以上答案都不对过程:数据容量16KB,2路,则每路16KB28KB每块大小2W8B,块内偏移位数3bit入口数目每路大小每块大小8KB8B1K,即入口位数10bit标记位(tag)地址位数块内偏移位数入口位数32-3-1019bitCache总容量关联度入口数目(有效位脏数据位tag位+数据块大小)21K(1位有效位1位脏数据位19位标记位88数据位)注意:cache总容量计算需要以bit为单位,而cache容量表示数据容量,数据容量可以以By
7、te为单位。9)已知内存32位,cache是4路组相联映射方式,数据容量为32KB。每块数据为2W,则cache的标记位为 A bit。A:19 B:21 C:25D:以上答案都不对过程:数据容量32KB,4路组相联映射方式,每组8KB每数据块2W8B,块内字节偏移3bit入口数目8KB8B1K,入口位数10bit标记位数内存位数入口位数块内字节偏移3210319二、判断题1、内存中的SDRAM是用CACHE制作的。(F)内存是DRAM做的,Cache是SRAM2、在CACHE系统中,写分配法一般配合写回法使用。(T)是啊。写分配是写cache失效时,取数据到cache,然后写cache。3、
8、存储器采用单体单字,还是多体交叉并行存取,对系统结构设计是透明的。(F)体系结构可以看到各个组成器件,显然能够看到存储器4、块大小越大,命中率越高。(F)容量一定的时候,块大小太大,块数量减少,hit rate也会下降。5、cacheMEM存储层次中,内存的数据不会比cache的数据新。(F)Cache是mem的子集。但是有特殊情况,一些mem映射到外设,外设输入时直接写mem,而不知道该mem已经被cache了。所以有外设的情况下,mem数据可能是新的,而cache数据可能是脏数据。三、计算设计题类型1:容量计算,给出一些条件,计算容量。1)有一cache存储器,每块4 Word。主存地址3
9、2bit,cache有8K个入口,采用4路组相联映射。cache除了tag标记外,还需要1bit的有效位,1bit脏数据位。问cache总容量(包括所有的信息存储)与cache容量(仅仅数据)。答案:4W/Block - 2 bit Word offset for Block1W=4B -2bit Byte offset for word8K入口,Index has 13 bits.Tag has 32-2-2-13=15bits.Total size = index(tag size + dirty +valid +data size)associate =8K(15+11448)44640
10、K bitTotal data size= indexdata sizeassociate 8K44844Mbit2)已知一计算机虚拟内存地址40bit,物理内存地址36bit,页式虚拟内存管理,每页64Kbyte。问页表大小。Answer:64Kbyte=216byteVirtual page number=240-16=224physical page number236-16=220, 20bit 32bit, use 4Byte=1W store physical page numberSo page size = 224464MB类型2:已知访问序列,问结果1)某计算机内存字节编址,
11、内存容量64字节,有容量为8字节cache,组织形式2路组相联。Cache替换策略为LRU(最近最少使用)。Cache初始时为空。已知内存访问序列如下:3,5,7,2,4,6,3,11,10,14,4,2,7。问:1、cache的命中率,那几次cache访问是命中的(5分),2、画出最后cache组织结构及其存储的数据图。(5分)Memory block Hit or missContents after each referenceSet 0Set 1Set 2Set 3Block 0Block 1Block 2Block 3Block 4Block 5Block6Block 73MissM
12、35MissM5M37MissM5M3M72MissM5M2M3M74MissM4M5M2M3M76MissM4M5M2M6M3M73HitM4M5M2M6M3(Hit)M711MissM4M5M2M6M3M11注意,这里替换掉M7,因为M3最近访问过了10MissM4M5M10M6M3M1114MissM4M5M10M14M3M114HitM4 (Hit)M5M10M14M3M112MissM4M5M2M14M3M117Miss M4M5M2M14M7M11Cache结构详细图为:V为1bit,tag为6(64字节内存,所以内存6位)2(入口4,需要2bit)4bitVTagDataVTag
13、Data10001M(4)010001M(5)010000M(2)10011M(14)10001M(7)10010M(11)Set 0set 1对比下题2)某计算机内存字节编址,内存容量64字节,有容量为8字节cache,组织形式直接映射,块大小为2字节。Cache初始时为空。已知内存访问序列如下:3,5,7,2,4,6,3,11,10,14,4,2,7。问:1、cache的命中率,那几次cache访问是命中的(5分),2、画出最后cache组织结构及其存储的数据图。(5分)本题与上题cache结构类似,但是块作为整体进行存取。所以有差别Memory block Hit or missCont
14、ents after each referenceBlock 0=2BBlock 1=2BBlock 2=2BBlock 3=2B3(000011)MissM2M3注意,最后1bit是块内偏移,内存地址3的入口是01,标注成红色的那个01,同时把内存2(000010)也copy到cache。因为内存2与内存3标注为红色的部分是一样的,前面的tag也是一样的。5(000101)MissM2M3M4M57(000111)MissM2M3M4M5M6M72(000010)HitM2(hit)M3M4M5M6M74(000100)HitM2M3M4(hit)M5M6M76(000110)HitM2M3
15、M4M5M6(hit)M73(000011)HitM2M3(Hit)M4M5M6M711(001011)MissM10M11M4M5M6M710(001010)HitM10(Hit)M11M4M5M6M714(001110)MissM10M11M4M5M14M154(000100)HitM10M11M4(hit)M5M14M152(000010)MissM2M3M4M5M14M157(000111)Miss M2M3M4M5M6M7Cache结构详细图为:V为1bit,tag为6(64字节内存,所以内存6位)2(入口4,需要2bit)1(块内偏移)3bitVTagDataData01000M(
16、2)M(3)1000M(4)M(5)1000M(6)M(7)3)某程序包含了5个虚页,页地址访问流为4,5,3,2,5,1,3,2,2,5,1,3。当使用LRU替换,为了获得最高的命中率,至少给该程序分配几个实页,其可能的最高命中率是多少?If there were one physic pages, page faults=11/12If there were two physic pages, page faults=11/12If there were three physic pages, page faults=10/12If there were four physic pages
17、, page faults=5/12If there were five physic pages, page faults=5/12所以4页即可。命中率7/124)已知一计算机的cache系统,4个入口,每块1字,采用2路组相联。试设计一内存访问序列,使得,替换策略为FIFO的方法比LRU的命中率高。FIFOMemory block Hit or missContents after each referenceSet 0Set 1Block 0Block 1Block 2Block 30MissM08MissM0M80HitM0M86MissM6M88HitM6M8LRUMemory bl
18、ock Hit or missContents after each referenceSet 0Set 1Block 0Block 1Block 2Block 30MissM08MissM0M80HitM0M86MissM0M68MissM8M65)OPT(optimal replacement algorithm)称为最优替换算法,其方法是选择将来最近不被访问的页面作为被替换的页,常常用于虚拟内存的替换策略中。已知一计算机有主存4页,问有以下虚拟页号访问流,问箭头指向的位置,主存辅存的状态,用图表示。1,2,1,5,4,1,3, 4,2,4,2,3,5,2,8,1,2,3,4Virtual
19、 Memory block Hit or missContents after each referenceM0M1M2M31MissV12MissV1V21HitV1V25MissV1V2V54MissV1V2V5V41HitV1V2V5V43MissV3(Because V1 will be visited latest in the reference 1/2/5/4)V2V5V4替换哪个数据好呢?现有1,2,5,4。看后续的序列4,2,4,2,3,5,2,8,1,2,3,4,将来第9个才是出现“1”,将来第2个出现“2”,将来第6个出现“5”,将来第1个出现“4”,显然“1”是将来最晚
20、使用到的,替换“1”6)某计算机内存字节编址,内存容量64字节,有容量为16字节cache,组织形式2路组相联,块大小为2Byte。Cache替换策略为LRU(最近最少使用)。Cache初始时为空。已知程序如下,问hit率Main() char i,j;char a16;for (i=0;i13;i+)ai=j;答案类型3:问内存各bit含义。1)32位内存地址,512kB的cache构成cache-mem存储层次,cache采用2路组相联映射方式,每块4word。问内存地址的各bit的意义。3102路,所以每路512KB2256KB每块4W,块内字偏移2bit,字内字节偏移2bit(也可以简
21、单的说,块内字节偏移4bit)。每块16字节。所以入口数目256KB16B16K,即14bit所以标记(tag)位32221414bit所以,内存地址的3118这14bit为tag内存地址的174这14bit为index内存地址的32这2bit为块内字偏移内存地址的10这2bit为字内字节偏移其中最后两行也可以写成:内存地址的30这4bit为块内字节偏移2)40位虚拟内存地址,36位物理内存地址,16k字节每页,TLB容量为64k,直接映射方式,每块8word。问虚拟内存地址的各bit的意义。Page offset: 16KB=214KB, so page offset=14 bitsVirt
22、ual page number: 40-14=26 bits所以虚拟内存的3914这26bit为Virtual page number,130为page offset注意,没有完,因为还有TLB因为TLB直接映射,容量为64K,每块8W32B,所以TLB入口64KB32B2K,即需要11bitTLB每1W可以记录一个物理页号,所以1块8W可以记录8个物理页号,块内物理页偏移编号需要3bit。所以TLB的标记(tag)位虚页号bit数入口块内物理页偏移编号2611312所以虚地址的3928这12bit为TLB的标记位虚地址的2717这11bit为TLB的入口虚地址的1614这3bit为TLB的块
23、内物理页偏移编号总体上,虚地址的3914这26bit为虚页号虚地址的130这14bit为页内偏移。装入位实页号13110203120110003)某虚拟存储器共8个页面,每页1024个字,实际主存为4096字,已知页表如右:a) 列出会产生页面失效的全部虚页号b) 按以下虚地址访问字地址:17,3078,计算对应的主存地址。2,3,4,5 结题过程:1、未说几个辅存,没有关系。2、虚地址字编码,虚地址17就是0号虚页,17偏移。(170102417)看表格中第0行标记为红色部分,由于装入位为1,表示在物理内存中,对应的实页号为3,所以虚地址5表示的是3号实页,5偏移(偏移不变)。物理地址就是3
24、1024173089。3、虚地址3078310245,即3号虚页,偏移5,查表紫色为第三行,装入位为0,表示不在物理内存,所以主存地址不存在,页失效。(另外一个也可以正确的答案是:该内存在辅存中,查表知道对应的实页号为3,则辅存地址为3102453078)类型4:计算存储速度1)已知一计算机,理想状态下CPI为1.2。由于cache有miss,导致性能有所下降。已知指令cache命中率为99.9,数据cache命中率96%。cache访问可以在1cc完成,内存访问需要10cc。已知指令中有40%是内存访问型指令。问实际该计算机的CPI? 若该计算机内存采用虚拟内存方式管理,已知内存访问中物理内
25、存命中率为99.9999%,且使用快表进行加速。硬盘访问时间是内存的106倍。已知快表命中率为98,问实际计算机的CPI。Question 1:CPU time=(CPU execution clock cycles+ Memory-stall clock cycles)clock cycle time=CPU execution clock cyclesclock cycle time+ Memory-stall clock cyclesclock cycle timeCPI=CPU time / clock cycle time= CPU execution clock cycles+ M
26、emory-stall clock cyclesCPI=1.2100%(199.9%)1040(196)10Question 2:把上个公式中的10改成MAT。因为引入虚拟内存后,内存等效访问时间不是“10”了。CPI=1.2100%(199.9%)MAT40(196)MATMemory Access time=物理内存命中率(物理内存命中判断时间内存访问时间)物理内存不命中率(快表访问发现不命中慢表访问发现物理内存不命中辅存访问时间)物理内存命中率(快表命中时访问物理内存的时间快表不命中访问内存的时间)物理内存不命中率(快表访问发现不命中慢表访问发现物理内存不命中辅存访问时间)=物理内存命中
27、率(快表命中率(快表访问时间物理内存的时间)(1快表命中率)(快表访问时间慢表访问时间内存访问时间)物理内存不命中率(快表访问时间慢表访问时间辅存访问时间内存访问时间)因为:快表访问时间cache访问时间1cc慢表访问时间物理内存访问时间10cc所以MAT99.9999%(98(110)2(11010)0.0001%(1+10+10710)注意:1、命中物理内存,有两种情况,一是快表命中,然后去访问内存即可。二是快表不中,慢表命中,需要把慢表数据送入快表,同时?去访问内存。为什么在同时后面打个问号,是因为题目没有说是同时,还是先把慢表数据送快表,然后?再去访问内存。所以第二种情况的时间可以是前
28、面的(快表访问时间慢表访问时间内存访问时间),也可以是(快表访问时间慢表访问时间快表访问时间内存访问时间)。一般题目没有明确是同时还是然后,两个解答都算对。仔细讨论的话,慢表送快表与访问物理内存,是可以overlap的,所以前一种答案较好。2、类似的问题也在物理内存不命中的情况,其流程是:访问快表不命中,然后访问慢表不命中,了解是页失效,从辅存传送数据到内存(花的时间为辅存时间,但是更新的是一个页,不是一个数据,所以后面还需要读取某一个内存数据,需要内存访问时间),然后更新慢表,更新快表,访问物理内存。完全不overlap的情况下时间是(快表访问时间慢表访问时间辅存访问时间慢表更新时间快表更新
29、时间内存访问时间),由于慢表更新与快表更新的时间,可以在辅存与主存交换数据时overlap,所以本题目参考答案中给出的是(快表访问时间慢表访问时间辅存访问时间内存访问时间)3、注意是107而不是106,因为题目硬盘访问时间是内存的106倍,内存是10,所以。2) 已知一台计算机采用3级cache策略,一级cache命中率为95,访问时间为1cc;二级为90,访问时间为2cc,三级为80,访问时间为3cc。内存访问需要40cc。问:用一个一级cache来等效该三级cache,等效的命中率是多少?Suppose the hit rate is x%1+ (1-95%)*(2+ (1-90%)*(3
30、+ (1-80%)*40) = (1+ (1-x %) * 40)综合类型:往往是把cache,页表、快表一起来,综合题目要小心,容易出错。尽可能把过程写清楚1)已知一计算机访问内存地址序列为0000 0100 1010,0000 0100 1011,1000 0100 1010,0000 0100 1010。初始化时页表、cache、TLB均为空。页式虚拟内存管理,页大小为256字节,辅存有8个页,物理内存为4页。cache为4路组相联,数据容量为16个字,块大小为2字。TLB 4入口,块大小为两个页表入口。问各次访问后的页表、TLB、cache的命中情况与结构。过程:1、 首先把三个cac
31、he,页表、快表画出来,这就有部分分数了。1) 对cache:结论1、cache为4路组相联,数据容量为16个字,所以每路4个字结论2、块大小为2字,块内偏移为3bit,内存地址的最后3bit结论3、所以入口数目每路大小块大小2入口,需要1bit结论4、tag位数12318bitCache结构为(v为1bit,tag为8bit,Data1为1W,Data2为1W,图上不标注)2)慢表第10路VTAGData1Data2第01路VTAGData1Data2第11路VTAGData1Data2第00路VTAGData1Data2The page is 256 bytes, so the page
32、offset is 8 bits一共有2416个虚页,内存地址最高4bit为虚页号。辅存有8个页,物理内存为4页,所以物理页号3bit足够了。页表为,一共16入口装入位1bit实页号3bit3)快表TLB 4入口,块大小为两个页表入口。由于题目未提及TLB的组织,则使用直接映射。每个页表入口就是慢表的实页号3bit。由于块大小2页表入口,需要1bit块内页表偏移4入口需要2bit作为index而虚页号一个4bitTag位数4121TLB结构为VTAG(1bit)页表入口1(3bit)页表入口2(3bit)以上就把所有静态状态画好了。下面开始访问第一个内存地址2、 访问0000 0100 101
33、0。1) cache显然由于刚刚初始化,cache没有数据,一定miss。那么访问后cache是什么样子呢?分析内存地址各个bit的含义:0000 0100 1010如上看到,红色的最后2bit是字内字节偏移。紫色的1bit是块内字偏移,绿色的1bit是入口,前面蓝色的8bit为tag。所以画出cache的结果。存储的内存数据从M0000 0100 1000到M0000 0100 1111即M72到M79这里的内存都是字节编码的。2) 慢表内存0000 0100 1010,属于虚页号0000,由于页表初始化空,必然调入物理内存。物理内存有4页,足够空间。由于快表中每块2页表入口,意味着每次从慢表调数据到快表,都是连续两个虚页号的入口调入快表,所以要调入两个页到快表,到快表的入口必须在物理内存中,所以需要将其连续的虚页调入物理内存。使用2页物理内存。页表如下:装入位1bit实页号3bit10113) 快表分析虚页号各bit含义0000 红色这1bit表示块内页表入口偏移,紫色2bit表示入口索引,前面的蓝色1bit表示tag。所以快表为VTAG(1bit)页表入口1(3bit)页表入口2(3bit)1001其中紫色的数据“0,1”来源于慢表的第0行、第1行中的物理页号。3、 访问其他地址,类似上述过程。-
限制150内