1、计算机系统结构 第三章习题解答分析1. 什么是存储系统?对于一个由两个存储器M1和M2构成的存储系统,假设M1的命中率为h,两个存储器的存储容量分别为s1和s2,存取时间分别为t1和t2,每千字节的成本分别为c1和c2。在什么条件下,整个存储系统的每千字节平均成本会接近于c2?该存储系统的等效存取时间ta是多少?假设两层存储器的速度比r=t2/t1,并令e=t1/ta为存储系统的访问效率。试以r和命中率h来表示访问效率e。 如果r=100,为使访问效率e0.95,要求命中率h是多少? 对于中的命中率实际上很难达到,假设实际的命中率只能达到0.96。现在采用一种缓冲技术来解决这个问题。当访问M1
2、不命中时,把包括被访问数据在内的一个数据块都从M2取到M1中,并假设被取到M1中的每个数据平均可以被重复访问5次。请设计缓冲深度(即每次从M2取到M1中的数据块的大小)。答:整个存储系统的每千字节平均成本为:不难看出:当s1/s2非常小的时候,上式的值约等于c2。即:s2s1时,整个存储器系统的每千字节平均成本会接近于c2。存储系统的等效存取时间ta为: 将数值代入上式可以算得:h99.95% 通过缓冲的方法,我们需要将命中率从0.96提高到0.9995。假设对存储器的访问次数为5,缓冲块的大小为m。那么,不命中率减小到原来的1/5m,列出等式有:解这个方程得:m=16,即要达到中的访问效率,
3、缓冲的深度应该至少是16(个数据单位)。2. 要求完成一个两层存储系统的容量设计。第一层M1是Cache,其容量有三种选择:64KB、128KB和256KB,它们的命中率分别为0.7、0.9和0.98;第二层M2是主存储器,其容量为4MB。并设两个存储器的存取时间分别为t1和t2,每千字节的成本分别为c1和c2。如果c1=20c2和t2=10t1。在t1=20ns的条件下,分别计算三种存储系统的等效存取时间。 如果c2=0.2美元/KB,分别计算三种存储系统每千字节的平均成本。对三种存储系统的设计作一个比较,并分别按平均成本和等效存取时间指出它们性能的排列次序。根据等效存取时间和平均成本的乘积
4、,选择最优的设计。答: 三种存储系统的等效存取时间分别为: 三种存储系统每千字节的平均成本为:按照平均成本来说ca1ca2ca3,按照等效存取时间来说ta3ta2ta1。方案ta(ns)ca($/KB)乘积比较1740.2619.24最差2380.3212.16中等323.60.429.912最优3. 有16个存储器模块,每个模块的容量为4M字节,字长为32位。现在要用这16个存储器模块构成一个主存储器,有如下几种组织方式:方式1:16个存储器模块采用高位交叉方式构成存储器。方式2:16个存储器模块构成并行访问存储器。方式3:16个存储器模块采用低位交叉方式构成存储器。方式4:2路高位交叉8路
5、低位交叉构成存储器。方式5:4路高位交叉4路低位交叉构成存储器。方式6:4路并行访问4路低位交叉构成存储器。 写出各种存储器的地址格式。 比较各种存储器的优缺点。 不考虑访问冲突,计算各种存储器的频带宽度。 画出各种存储器的逻辑示意图。答: 各种存储器的地址格式如下:方式1:16个模块高位交叉高 低4bit模块号20bit模块内地址2bit字地址方式2:16个模块并行访问高 低20bit模块内地址2bit字地址4bit多路选择方式3:16个模块低位交叉高 低20bit模块内地址2bit字地址4bit模块号方式4:2路高位交叉8路低位交叉高 低1bit组号20bit模块内地址2bit字地址3bi
6、t模块号方式5:4路高位交叉4路低位交叉高 低2bit组号20bit模块内地址2bit字地址2bit模块号方式6:4路并行访问4路低位交叉高 低20bit模块内地址2bit字地址2bit组号2bit多路选择 这几种存储器都能够并行工作,因此一般而言都可以用来提高内存的吞吐率。但他们也有所区别:并行访问存储器的优点是实现简单、容易,缺点是访问冲突大;高位交叉访问存储器的优点是扩充方便,但是因为访问冲突太大,一般不用于并行存取,缺点是访问效率不高;低位交叉访问存储器可以用分时的方法来提高速度,但扩充不方便。 各种存储器的频带宽度和他们的并行程度有关,在不考虑冲突的情况下,如果有足够多的独立控制电路
7、和寄存器,那么,他们的频带宽度是相同的。但是,高位交叉访问存储器一般不用于并行存取,因此频带宽度最小。 方式1:16个模块高位交叉方式2:16个模块并行访问方式3:16个模块低位交叉注意:并行访问存储器和低位交叉访问存储器很相象,只不过,并行访问存储器使用存储模块号(存储体号)来对已经输出的结果进行选择,而低位交叉访问存储器则用来生成对存储模块(存储体)的片选信号,他通过流水的方式来提高访问的速度。前者用一套存储器控制电路,后者用多套(与交叉模块数相等)存储器控制电路。方式4:2路高位交叉8路低位交叉方式5:4路高位交叉4路低位交叉方式6:4路并行访问4路低位交叉4. 一个程序由5个虚页组成,
8、采用LRU替换算法,在程序执行过程中依次访问的页地址流如下:P4,P5,P3,P2,P5,P1,P3,P2,P3,P5,P1,P3 可能的最高页命中率是多少? 至少要分配给该程序多少个主存页面才能获得最高的命中率? 如果在程序执行过程中每访问一个页面,平均要对该页面内的存储单元访问1024次,求访问存储单元的命中率。答: 在分配的主存页面数目足够大的情况下,除了第一次调入不命中,以后的访问均命中,可以达到最高的页面命中率,即:实际命中的次数为7次,所以可能达到的最高页面命中率为: 由于在页面数大于等于5的情况下,肯定可以达到最高命中率,所以我们来看页面数小于5时能否达到该命中率:若分配的主存页
9、面数等于4时,调度过程如下:访问流P4P5P3P2P5P1P3P2P3P5P1P3统计LRU算法4444*4*11111*11命中7次5555555*5*5553333*3333332222*2222*2*调入调入调入调入命中调入命中命中命中命中命中命中此时也可以达到最高命中率;若分配的主存页面等于3时,调度过程如下:访问流P4P5P3P2P5P1P3P2P3P5P1P3统计LRU算法444*222*33*333*3命中3次555*555*222*11333*1111*555调入调入调入调入命中调入调入调入命中调入调入命中此时不能达到最高命中率。所以至少应该分配4个主存页面。 我们假设程序每次
10、只访问一个存储单元,这样,对每一个特定页面的访问过程可以描述如下:因为第一次总是不命中的,而平均起来,随后的1023次总是命中的,然后再次被调出主存,并再次重复先前的过程。所以访问存储单元的命中率为:5. 假设在一个采用组相联映象方式的Cache中,主存由B0B7共8块组成,Cache有2组,每组2块,每块的大小为16个字节,采用LRU块替换算法。在一个程序执行过程中依次访问这个Cache的块地址流如下:B6,B2,B4,B1,B4,B6,B3,B0,B4,B5,B7,B3 写出主存地址的格式,并标出各字段的长度。 写出Cache地址的格式,并标出各字段的长度。 画出主存与Cache之间各个块
11、的映象对应关系。 如果Cache的各个块号为C0、C1、C2和C3,列出程序执行过程中Cache的块地址流情况。 如果采用FIFO替换算法,计算Cache的块命中率。 如果采用LRU替换算法,计算Cache的块命中率。 如果改用全相联映象方式,再做和,可以得到什么结论? 如果在程序执行过程中,每从主存装入一块到Cache,则平均要对这个块访问16次。请计算在这种情况下的Cache命中率。答: 主存地址的格式为:高 低1bit区号1bit组号1bit组内块号4bit块内地址Cache地址的格式为:高 低1bit组号1bit组内块号4bit块内地址主存的组到Cache的组之间是直接映象,对应组的块
12、之间是全相联映象。即:主存块0、1、4、5只能装入Cache块0、1的任何块位置上,主存块2、3、6、7只能装入Cache块2、3的任何块位置上。由于主存按Cache大小分区,因此去掉主存块地址中的区号就可以得出满足组相联映象关系的一种Cache块地址,所以该主存块地址流相应的一种Cache的块地址流为:主存B6B2B4B1B4B6B3B0B4B5B7B3110010100001100110011000100101111011Cache101000010010110000011111C2C2C0C1C0C2C3C0C0C1C3C3采用FIFO替换算法,Cache的块命中率为:3/12=0.25
13、。访问流B6B2B4B1B4B6B3B0B4B5B7B3统计C0B4B4*B4*B4*B4*B0B0*B5B5B5命中3次C1B1B1B1B1B1*B4B4*B4*B4*C2B6B6*B6*B6*B6*B6*B3B3B3B3B3*B3*C3B2B2B2B2B2B2*B2*B2*B2*B7B7动作调入调入调入调入命中命中调入调入调入调入调入命中采用LRU替换算法,Cache的块命中率为:4/120.33。访问流B6B2B4B1B4B6B3B0B4B5B7B3统计C0B4B4*B4B4B4B4*B4B4*B4*B4*命中4次C1B1B1*B1*B1*B0B0*B5B5B5C2B6B6*B6*B6*
14、B6*B6B6*B6*B6*B6*B7B7*C3B2B2B2B2B2*B3B3B3B3B3*B3动作调入调入调入调入命中命中调入调入命中调入调入命中采用全相联映象、FIFO替换算法,Cache的块命中率为:4/120.33。访问流B6B2B4B1B4B6B3B0B4B5B7B3统计C0B6B6*B6*B6*B6*B6*B3B3B3B3B3*B3*命中4次C1B2B2B2B2B2B2*B0B0B0B0B0C2B4B4B4B4B4B4*B4*B5B5B5C3B1B1B1B1B1B1B1*B7B7动作调入调入调入调入命中命中调入调入命中调入调入命中采用全相联映象、LRU替换算法,Cache的块命中率为:3/12=0.25。访问流B6B2B4B1B4B6B3B0B4B5B7B3统计C0B6B6*B6*B6*B6*B6B6B6B6*B5B5B5命中3次C1B2B2B2B2B2*B3B3B3B3*B7B7C2B4B4B4B4B4B4*B4B4B4B4*C3B1B1B1B1*B0B0B0B0*B3动作调入调入调入调入命中命中调入调入命中调入调入调入结论:Cache的命中率与地址流分布情况、替换算法、相联度等因素有关。Cache命中率为:H=15/16=93.75%
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1