摘要
该笔记解析了MOVE指令的缺页次数。宏观上MOVE指令由取指令、取Data1、取Data2三部分组成。微观执行时,取指令读取跨页0、1的机器码产生1次缺页;取操作数Data1(跨页2、3)和Data2(跨页4、5)各产生2次缺页。核心在于区分“指令整体”与CPU“取指令/取操作数”的访存阶段,最终总计为1+2+2=5次缺页中断。
目录
题目
核心思路
大白话讲解
题目
核心思路
解题的要害在于“化整为零,按页排查”:不能把指令或操作数看作一个整体,必须根据“起始地址 + 字节长度”将其拆解到具体的物理页面中。当访问跨越页面边界时(本题中的起始地址均在页尾,4字节内容恰好跨越两页),需要分别查询页表中这些页面的状态。只要访问到的页面状态为“不在内存”(0),就会产生一次缺页中断。最后,将“取指令”、“取源操作数”、“取目的操作数”这三个阶段产生的缺页次数进行累加即可。
大白话讲解
1、根据题目描述,一共有如下三个指令:
- MOVE Data1,Data2 (取指令):将Data1赋值给Data2
- Data1(取操作数Data1):取出Data1
- Data2(取操作数Data2):取出Data2
说白了,上面三个指令共同完成了一件事:将Data1赋值给Data2
2、直接看上面的图a,可得以下结论:
- MOVE Data1,Data2这条指令,分布在页号为0、1的页面
- Data1这条指令,分布在页号为2、3的页面
- Data2这条指令,分布在页号为4、5的页面
3、直接看上面的图b,可得以下结论:
页号为0的页面在内存中,页号为1、2、3、4、5的页面不在内存中
4、关键点:
- 题中说的MOVE指令:指的是这三条指令加起来的整体,共同构成MOVE指令
- 取指令:指的是MOVE Data1,Data2这条指令,表明我要开始执行将Data1赋值给Data2的逻辑了
综上:MOVE指令(整体)一共产生5次缺页,其中:
- MOVE Data1,Data2(取指令)共产生1次缺页
- Data1这条指令共产生2次缺页
- Data2这条指令共产生2次缺页
故本题的三个选择题,答案分别是:C、B、C
以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~~