第五章存储层次知识点汇总存储器层次结构、存储层次性能参数(平均每位价格、命中率、平均访存时间)、存储层次4个问题、CPU 访存地址分割、全相联映像、直接映像、组相联映像、查找方法、替换算法(随机、先进先出、最近最少使用法)、写直达法、写回法、按写分配、不按写分配、Cache性能分析、3C失效(强制失效、容量失效、冲突失效)、Victim Cache、伪相联映像Cache、硬件预取、编译器优化(数组合并、内外循环交换、循环融合、分块)、写缓冲合并、单字宽存储器、多字宽存储器、多体交叉存储器、存储体、虚拟存储器(页式、段式)、快表(TLB)简答题1.单级存储器的主要矛盾是什么?通常采取什么方法来解决?(知识点:多级存储器)答:主要矛盾:(1) 速度越快,每位价格就越高。
(2) 容量越大,每位价格就越低。
(3) 容量越大,速度越慢。
采取多级存储层次方法来解决。
2.“Cache-主存”和“主存-辅存”层次的主要区别是什么?(知识点:存储层次)3.在存储层次中应解决哪四个问题?(知识点:存储层次的四个问题)答:(1)映像规则:当把一个块调入高一层存储器时,可以放到哪些位置上。
(2)查找算法:当所要访问的块在高一层存储器中时,如何找到该块。
(3)替换算法:当发生失效时,应替换哪一块。
(4)写策略:当进行写访问时,应进行哪些操作。
4.地址映像方法有哪几种?它们各有什么优缺点?(知识点:地址映像)(1)全相联映像。
实现查找的机制复杂,代价高,速度慢。
Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。
(2)直接映像。
实现查找的机制简单,速度快。
Cache空间的利用率较低,块冲突概率较高,因而Cache 的失效率也高。
(3)组相联映像。
组相联是直接映像和全相联的一种折中。
5.Cache的3C失效是哪三种失效?针对每种失效给出一种降低失效率的方法。
(知识点:3C失效)答:强制性失效、容量失效、冲突失效。
6.简述Cache的两种写策略(知识点:写直达、写回)写直达法:执行“写”操作时,不仅写入Cache,而且也写入存储器写回法:执行“写”操作时,只写入Cache,并将对应Dirty Flag位置1。
当任意一个Cache块将要被替换时,若Dirty Flag位为1,则先将该Cache块写回存储器,再进行替换动作;否则不用写回,直接替换。
7.简述Cache写失效的两种处理方法(知识点:按写分配、不按写分配)经过cache法(按写分配):发生写失效时,先把地址对应的内存块调入Cache,再进行写操作。
绕过cache法(不按写分配):发生写失效时,不把地址对应的内存块调入Cache,而是绕过cache直接将数据写入存储器选择题1.虚拟存储器中,可采用如下映像规则:(D )(知识点:映像规则、虚拟存储器)A.直接映像;B.组相联映像;C.全相联映像;D.上述三者均可。
2.衡量一个存储器性能可从( A )方面考虑。
(知识点:存储器层次结构)A.容量、速度、价格B.制造工艺、封装、材料C.容量、速度、功耗D.Cache-主存存储层次、主存-辅存存储层次、辅存-磁带存储层次3.当发生Cache写失效时,是否调入相应的块,有哪两种选择?(D )(知识点:写直达法、写回法、按写分配、不按写分配)A.按写分配法和写回法B.按写分配法和写直达法C.写回法和写直达法D.按写分配法和不按写分配法4.虚拟存储器主要是为了解决( A )。
(知识点:存储器层次结构、虚拟存储器)A.扩大存储系统的容量B.提高存储系统的速度C.扩大存储系统的容量和提高存储系统的速度D.便于程序的访存操作5.与全相联映像相比,组相联映像的优点是(A )。
(知识点:全相联映像、组相联映像)A.目录表短,实现成本低B.块冲突概率低C.C ache命中率高D.主存利用率高6.Cache 存储器主要是为了解决( B )。
(知识点:存储器层次结构)A.扩大存储系统的容量B.提高存储系统的速度C.扩大存储系统的容量和提高存储系统的速度D.便于程序的访存操作7.容量和块大小均相同的Cache,块冲突概率由高到低的顺序是(B )。
(知识点:全相联映像、直接映像、组相联映像)A.全相联映像、直接映像、组相联映像B.直接映像、组相联映像、全相联映像C.全相联映像、组相联映像、直接映像D.组相联映像、直接映像、全相联映像8.容量和块大小均相同的Cache,主存地址中索引位的位数由少到多的顺序是(C )。
(知识点:全相联映像、直接映像、组相联映像、CPU访存地址分割)A.全相联映像、直接映像、组相联映像B.组相联映像、直接映像、全相联映像C.全相联映像、组相联映像、直接映像D.直接映像、组相联映像、全相联映像9.以下(B)的值不能从CPU发出的主存地址中直接获得。
(知识点:CPU访存地址分割)A.主存块地址B.主存物理页号C.用于选择Cache块/组的索引D.用于匹配Cache块的标识填空题1.存储层次中的写策略主要有两种,它们是:(写直达)和(写回)。
(知识点:写策略)2.在全相联映像、直接映像和组相联映像中,块冲突最小的是(全相联)。
Cache存储器的地址映像规则一般不能用(全相联),否则,主存Cache的地址映像表太大,查表速度太慢,硬件难以实现。
(知识点:全相联映像、直接映像、组相联映像)3.评价存储层次的主要参数有(存储层次的平均每位价格)、(命中率)和(平均访存时间)。
(知识点:平均每位价格、命中率、平均访存时间)4.Cache存储器采用的组相联映像是指组间是(全相联)映像,组内各块之间是(直接)映像。
(知识点:组相联映像)5.“主存-辅存”层次的目的主要是为了弥补主存的(容量)的不足。
(知识点:存储器层次结构)计算题1.某机器主存为2KB,采用直接映像方式,指令cache容量为32B,每个块为16B。
在该机器上执行如下循环程序:FOO:LD F2, 0(R1)MULTD F4, F2, F0LD F6, 0(R2)ADDD F6, F4, F6SD 0(R2), F6ADDI R1, R1, #8ADDI R2, R2, #8ADDI R3, R1, R2BEQZ R3, FOO每条指令长度均为4B,程序执行前,指令cache的内容为空。
(1)假设该程序加载到内存的00000100000地址上,给出该循环退出前每个cache块所对应的标识。
(2)如果该循环执行循环体10次,则指令cache的命中率为多少?(知识点:Cache和主存映像,命中率)答:Cache块数=32B/16B=2(块)主存块数=2KB/16B=211B/24B=27=128(块)Cache块(1)所以,循环退出前每个Cache块所对应标识如下:(2)块地址流为0,1,2,0,1,2,0……所以,循环体执行10次,未命中次数为3+9×2=21次,命中率=(90-21)/90×100%=76.67%2.某计算机主存为1KB,采用两路组相联(2-Way)映像,指令Cache容量为32B,每个块为8B。
在该机执行如下循环程序:OK: LD F2,0(R1)MULTD F4,F2,F0LD F6,0(R2)ADDD F6,F4,F6SD 0(R2),F6ADDI R1,R1,#8ADDI R2,R2,#8SGTI R3,R1,DONEBEQZ R3,OK每条指令长度均为4B,程序执行前指令Cache的内容为空,Cache采用LRU替换算法。
(1)假设该程序加载道0010100000地址上,试给出该循环推出前每个Cache块所对应的主存区号标识,以及其组内块号;(2)如果该循环执行20次,则Cache命中率为多少?(知识点:Cache和主存映像,命中率)答:(1)由映像图可见,退出循环前0组0块 对应主存区号标识为 001 100 0组1块 对应主存区号标识为 001 010 1组0块 对应主存区号标识为 001 010 1组1块对应主存区号标识为 001 011(2)循环20次地址分别为0,1,2,3,4,0,1,2,3,4,0,1,2,……0 1 2 3 4 0 1 2 3 4 0 1 … 0组 0 0 0 0 4 4 4 4 4 4 4 4 … 2 2 2 0 0 2 2 2 0 0 … 1组 1 1 1 1 1 1 1 1 1 1 1 … 3 3 3 3 3 3 3 3 3 …装入 装入装入装入替换替换命中替换命中命中替换命中…命中率=(9⨯20-5-2⨯19)/(9⨯20)=137/180≈76%0 1 010010100000 主存 Cache I1 I2 I3 I4 I5 I6 I7 I8I90组1组 001010 001010 001011 001011 0011000 1 0 1 0主存区 号标示 Cache 块号3.假设某台计算机具有如下特性:(1)cache的命中率为95%;(2)cache块大小为4个字,cache失效时整块调入;(3)CPU发出访存请求的速率为1MBps;(4)25%的访存为写访存;(5)CPU每次只能读写一个字;(6)采用写直达cache,写失效时采用不按写分配;(7)主存可支持的最大访问流量为1MBps。
问在此情况下主存频带的平均使用率为多少?(知识点:平均访存时间、写直达)答:分析,CPU每次只能读写1个字,说明数据字宽是1个字,也就是CPU每秒钟访存1M次。
每次访存需要访问内存字数是5%*75%*4+95*25%*1+5%×25%×1CPU读时,(1)命中,此时不访存(2)不命中,整块调入f CPUR=5%×75%×4×1=0.15MBpsCPU写时,(1)命中,写直达,访存f CPUW1=95%×25%×1×1=0.2375MBps(2)不命中,不按写分配,访存f CPUW2=5%×25%×1×1=0.0125MBpsf CPU=f CPUR+f CPUW1+f CPUW2=0.4MBps所以,主存频带使用率为f CPU/f MEM Max=0.4MBps/1MBps=0.44.有三个Cache存储器,每个Cache均由4个块组成,每个块只有一个字。
第一个Cache采用全相联映像,第二个Cache采用2-Way组相联映像,第三个Cache采用直接映像。
程序执行过程中访问的块地址分别为:0、8、0、6、8(1)试计算三种结构的未命中次数;(2)可得到什么样的结论?(知识点:全相联映像、直接映像、组相联映像)答:全相联映像缺页次数是:第1、2、4次,共缺失了3次。
2-Way组相联映像,由于0、6、8都映射在组号0,所以相当于一个2块的全相联映像Cache,缺失的次数是第1、2、4、5次,共缺失了4次。