计算机组成原理——主存储器考研题
(2009)
14.某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块)。每个主存块大小为32字节,按字节编制。主存129号单元所在主存块应装入到的Cache组号是
A.0 B. 2 C. 4 D.6
答案:C
考点:Cache组相联映射方式
主存按字节变址,第129号单元代表第129个字节。主存129单元,所在的块号为129/32=4(从0开始编号);
由于Cache共有16块,采用2路组相联,因此共有8组,0,1,2,…,7。
主存的某一字块按模8映像到Cache某组的任一字块中,即主存的第0,8,16…字块可以映像到Cache第0组2个字块的任一字块中,而129号单元是位于第4块主存块中,因此将映射到Cache第4组2个字块的任一字块中。
21.假设某计算机的存储系统由 Cache 和主存组成,某程序执行过程中访存 1000 次,其中访问 Cache 缺失(未命中)50 次,则 Cache 的命中率是
A 5% B.9.5%
C. 50% D.95%
答案:D
考点:Cache命中率的计算
17.下列命令组合情况,一次访存过程中,不可能发生的是( )
A.TLB未命中,Cache未命中,Page未命中
B.TLB未命中,Cache命中,Page命中
C.TLB命中,Cache未命中,Page命中
D.TLB命中,Cache命中,Page未命中
答案:D
考点:TLB,Cache,Page的含义。
TLB即为快表,快表只是慢表(Page)的小小副本,因此TLB命中,必然Page也命中,而当Page命中,TLB则未必命中,故D不可能发生;而Cache的命中与否与TLB、Page的命中与否并无必然联系。
(2012)
17.假设某计算机按字编址,Cache 有 4 个行,Cache 和主存之间交换的块为 1 个字。若 Cache 的内容初始为空,采用 2 路组相联映射方式和 LRU 替换算法。当访问的主存地址依次为 0,4,8,2,0,6,8,6,4,8 时,命中 Cache 的次数是
A. 1 B. 2 C. 3 D. 4
答案:C
4行表示有4个组,每块有一个字,每组有两块。
在组相联映像中,组间是直接映像,组内字块为全相联映像
命中后的字块就是被使用了的字块了
(2013)
16.某主存地址空间大小为 256 MB,按字节编址。虚拟地址空间大小为 4 GB,采用页式管理,页面大小为 4KB,TLB(快表)采用全相联映射,有 4 个页表项,内容如下表所示。则对虚拟地址 03FF F180H 进行虚实地址变换的结果是
A. 015 3180H B. 003 5180H C. TLB 缺失 D. 缺页
答案:A
虚地址有32位(4GB=2^32B),页面大小为 4KB(2^12B),那么虚页号有20位。页内地址有32-20=12位。
实地址有28位(256MB=2^28B),实地址由页框号和页内地址组成,其页内地址与虚地址的页内地址相同都为12位不变,则页框号有16位。
虚拟地址为03FF F180H,其中页号为03FFFH,页内地址为180H,根据题目中给出的页表项可知页标记为03FFFH所对应的页框号为0153H,页框号与页内地址之和即为物理地址015 3180 H。
若有效位为0,那么应该去选C. TLB 缺失。
(2014)
16. 采用指令Cache与数据Cache分离的主要目的是
A 减低Cache的缺失损失
B 提高Cache的命中率
C 减低CPU平均访问时间
D 减少指令流水线资源冲突
答案:D
解析:Cache分为一级L1和二级L2。L1集成在CPU中,称为片内Cache。在L1中还分数据Cache和指令Cache。分别用来存放数据和执行这些数据的指令,两个Cache可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。
(2011)
44.某存储器按字节编址,虚拟(逻辑)地址空间大小为16MB,主存(物理)地址空间大小为1MB,页面大小为4KB;Cache采用直接映射方式,共8行;主存与Cache之间交换的块大小为 32B。
(1)虚拟地址共有几位,哪几位表示页号?物理地址共有几位,哪几位表示页框号(物理页号)?
答:
页面大小为4KB=2^12B,故页内地址12位
虚拟地址空间大小为16MB=2^24B,故虚地址共24位,低12位为页内地址,高24-12=12位为虚页号。
主存地址空间大小为1MB=2^20B,故实地址共20位,低12位为页内地址,高20-12=8位为页框号(物理页号)
(2)使用物理地址访问Cache时,物理地址应划分成哪几个字段?要求说明每个字段的位数及在物理地址中的位置。
答:
主存与 Cache之间交换的块大小为32B=2^5B,故cache块内地址5位
Cache共8行=2^3行,故Cache块数占3位。
主存地址空间大小为1MB=220B,故主存地址共20位,
标记位数=20-5-3=12位
故物理地址分三个字段:高12位为标记tag,中间3位为Cache行号,最低5位为块内地址。
(3)虚拟地址001C60H所在的页面是否在主存中?若在主存中,则该虚拟地址对应的物理地址是什么?访问该地址时是否 Cache 命中?要求说明理由。
答:虚地址001C60H的低12位C60H为页内地址,高12位001H为虚页号。查页表可知,虚页001H对应的有效位为1,故该页已调入主存,主存页号为04H,故主存地址为04C60H。
主存地址04C60H=000001001100 011 00000b的低5位00000b为行内地址,中间3位011b为Cache行号,高12位04CH为标记。查Cache标记可知,第3行的有效位为1,但标记为105H,故该地址Cache不命中。若为04CH则命中。
(4)假定为该机配一个4路组相联的TLB,该TLB共可存放8个页表项,若内容如图所示,则此时虚拟地址024BACH所在的页面是否在主存中?要求说明理由。
答:
4路组相联的TLB,共可存放8个页表项,故TLB共2组,每组可存放4个页表项。
虚地址高12位为虚页号,故慢表的表项数为2^12=4096,慢表地址12位。
TLB共2组,故慢表12位地址中的最低1位选择TLB的组,也即慢表的4096个表项中,偶地址表项可映射到TLB的第0组中的四个表项中的任意一个,奇地址表项可映射到TLB的第1组中的四个表项中的任意一个。
慢表12位地址中的高11位为访问TLB的标记。
虚拟地址024BACH的高12位024H=000000100100b为虚页号,其中最低1位0选择TLB第0组,高11位00000010010b=012H。查TLB表可知,第0组最后一项标记为012H,其有效 位为1,说明该虚页已调入主存,其页框号为1FH,故其实地址为1FBACH