夜雨聆风学习资料网

ARTICLE · 1280042

这题真的难哭了,408真题会这么难吗?

这题真的难哭了,408真题会这么难吗?

上次给大家分享了王道27考研冲刺模考:通知:27考研下周一408全真模考!快来看你考多少分?

王道线下考研训练营同学模考也是考的这套试卷。

下一期模考也开始报名了,这次的试卷跟上次不一样,上次模考错过的同学可以扫码报名了:

王道408报考估分卷,线下200多人参加,最高分130多,100分以上只有50多个。其中第44题,没有一个人拿满分——连出题老师自己第一次做,都错在最后一问。

不是这道题出得怪,而是它把存储方向几乎所有考点揉进了一道题:二级页表、TLB、Cache映射、替换算法、写回、脏位、访存流程,一题全覆盖。今天我们把这道题从头拆一遍,拆完你会发现,存储方向的大题其实就一套思路。

01 做题方法先行:长题干别先读透,先看问题再回找

这道题题干很长,很多同学的习惯是把整道题分析透彻再动手,结果越读越乱。呼呼老师给的方法是:先大致看一遍题目,然后像做英语阅读理解一样——第一问问什么,就回题干找对应的条件,逐问定位。

近两年408的题目越来越长,几乎每一道大题都是长阅读量。先看问题、再回题干找信息,比把整题啃透再下笔要快得多,也更不容易被无关信息带偏。

02 第一问:地址怎么拆,两套拆法都要会

第一问考的是物理地址位数和虚拟地址拆分,属于送分题,但它是后面所有计算的基础。

物理地址位数:页框号16位,加页内偏移量12位(页大小4KB,2的12次方),一共28位。

虚拟地址32位:页内偏移12位,剩下20位分给页目录号和页表索引。题目给出页目录和每个二级页表都有1024个页表项,1024等于2的10次方,所以页目录号10位、页表索引10位,10加10加12,正好32位。

物理地址还有第二种拆法——按Cache来拆:块内偏移5位(块大小32B),组号3位(Cache共8组),剩下的20位做标记位。28减5减3,正好20位。

记牢这两套拆法:一套按页拆(页框号加页内偏移),一套按块拆(标记位加组号加块内偏移),存储大题的地址题基本都能拿下。

03 第二问:TLB全相联,Cache容量算成字节

题目说TLB查询时"同时比较所有有效表项",同时和所有项比较,就是全相联映射。TLB和Cache一样追求速度,都用SRAM实现。

Cache容量是这一问的计算重点。每一行数据部分32B,即256位。控制位要算四样:有效位1位、标记位20位、脏位1位(采用写回法必须记录脏位)、替换算法位1位(2路组相联,每组两行,用1位就能标记下次替换哪一路)。一行合计279位,共8组乘2行等于16行,总容量4464位,除以8就是558字节。

这里有个容易丢分的细节:题目问的是字节,不是位。算出4464位后要记得换算,很多同学栽在这一步。

04 第三问:四次访问逐次追踪,看命中更要看缺页

第三问给四次访问的虚拟地址,要求依次写出物理地址、Cache组号、TLB和Cache的命中情况,最后还要给出所读取页目录项、页表项的物理地址,并判断是否缺页。我们逐条过。

第一次访问00012044H:虚页号00012查TLB命中,页框号1234H,物理地址1234044H;组号010,标记位12340H命中,TLB和Cache双双命中。

第二次访问0002A048H:虚页号0002A查TLB命中,页框号2345H,物理地址2345048H;Cache同样命中。注意这是一次写操作,写命中后脏位要从0变1,后面第四问要用到这个状态。

第三次访问0043B04CH:虚页号0043B在TLB中缺失,必须查页表。先查页目录表,页目录号01H,第1项有效,指向起始地址0010000H的二级页表;再查二级页表的03BH项,页框号1234H,物理地址123404CH。TLB虽然缺失,Cache却命中了——记住,TLB缺失不代表Cache一定缺失,二者内容来源不同。这一问还要算页目录项和页表项的物理地址:页目录起始0008000H,第1项加4B,得到0008004H;二级页表起始0010000H,第03BH项乘4B,得到00100ECH。全程页表项都有效,没有缺页。

第四次访问00056050H:虚页号00056查TLB命中,页框号3456H,物理地址3456050H;组号还是010,但标记位34560H在Cache中找不到,Cache缺失,需要触发替换。

05 第四问:LRU换谁、要不要写回、访存几次

第四问是整道题的难点,也是出题老师唯一算错的地方。

Cache缺失要替换。采用LRU算法,最近一次命中的是12340H,也就是第0路,所以换出第1路。第1路的脏位是1吗?是。因为第二次访问是对它的写命中,写回法下脏位已经置1,替换时数据必须先写回主存。

主存读写次数:前两次访问TLB和Cache全部命中,不访存;第三次TLB缺失,查页目录和二级页表各一次读,Cache命中不访存;第四次Cache缺失,读入一个主存块32B,同时把脏块写回32B。合计3次读、1次写,总字节数4加4加32加32,等于72字节。

出题老师第一遍算出的答案是68,错在哪?漏了查二级页表那4个字节。所以做访存统计时,页目录、二级页表、Cache替换三个环节一个都不能漏,这也是这道题最想训练大家的点。

06 这道题的价值:一题打通存储方向

回头看这道44题,它把Cache的写回法、脏位、一致性、映射与替换、LRU、TLB、访存流程、缺页处理全串起来了。这道题要是会做,基本上就没有存储方向不会做的题了。

26考研408真题风格是阅读量比较大,因此这次模考出的这道题贴合26真题的风格,这道题的阅读量和计算量比较大,也是一次高强度训练。把这道题研究透,比刷十道同类型的题都值。

这道题视频讲解已经准备好,需要看视频解析的同学可以扫码找老师免费领取:

下一套模拟卷已经在准备了,11月10日14:00开考,难度贴近26考研真题,可以扫码报名:

最后说句心里话:除了最后一次考试,其他任何一次模考的成绩都没有意义,它的价值只在查缺补漏。考好了不飘,考砸了不慌,把每一道错题吃透,才是冲刺阶段最该做的事。

推荐阅读:

408大纲解析上线!最后2个月的重要备考资料!

最后2个多月,咸鱼老师想对你们说:

相关学习资料