导航菜单
首页 >  408考研真题解析pdf  > 计算机考研408统考真题模拟考试

计算机考研408统考真题模拟考试

已知计算机M字长为32位,按字节编址,采用请求调页策略的虚拟存储管理方式,虚拟地址为32位,页面大小为4KB;数据Cache采用4路组相联映射,数据区大小为8KB,主存块大小为32B。现有C语言程序段如下:

for (i = 0; i < 24; i++)for (j = 0; j < 64; j++) a[i][j] = 10;

已知二维数组a按行优先存放,在虚拟地址空间中分配的起始地址为0042 2000H,sizeof(int)=4,假定在M上执行上述程序段之前数组a不在主存,且在该程序段执行过程中不会发生页面置换。请回答下列问题。

(1) 数组a分为几个页面存储?对于数组a的访问,会发生几次缺页异常?页故障地址各是什么?

(2) 不考虑变量i和j,该程序段的数据访问是否具有时间局部性?为什么?

(3) 计算机M的虚拟地址(A31~A0)中哪几位用作块内地址?哪几位用作Cache组号?a[1][0]的虚拟地址是多少?其所在主存块对应的Cache组号是多少?

(4) 数组a占用多少主存块?假设上述程序段执行过程中数组a的访问不会和其他数据发生Cache访问冲突,则数组a的Cache命中率是多少?若将循环中i和j的次序按如下方式调换:

for (j = 0; j < 64; j++)for (i = 0; i < 24; i++) a[i][j] = 10;

则数组a的Cache命中率又是多少?

相关推荐: