若计算机M的主存地址为32位,采用分页存储管理方式,页大小为4KB,则第1行push指令和第30行ret指令是否在同一页中(说明理由)?若指令Cache有64行,采用4路组相联映射方式,主存块大小为64B,则32位主存地址中,哪几位表示块内地址?哪几位表示

admin2020-06-17  24

问题 若计算机M的主存地址为32位,采用分页存储管理方式,页大小为4KB,则第1行push指令和第30行ret指令是否在同一页中(说明理由)?若指令Cache有64行,采用4路组相联映射方式,主存块大小为64B,则32位主存地址中,哪几位表示块内地址?哪几位表示Cache组号?哪几位表示标记(tag)信息?读取第16行call指令时,只可能在指令Cache的哪一组中命中(说明理由)?

选项

答案因为页大小为4KB,所以虚拟地址的高20位为虚拟页号。第1行的push指令和第30行的ret指令的虚拟地址的高20位都是00401H,因此两条指令在同一页中。指令Cache有64块,采用4路组相联映射方式,故指令Cache共有64/4=16组,Cache组号共4位。主存块大小为64B,故块内地址为低6位。综上所述,在32位主存地址中,低6位为块内地址,中间4位为组号,高22位为标记。因为页大小为4KB,所以虚拟地址和物理地址的最低12位完全相同,因而call指令虚拟地址0040 1025H中的025H=0000 0010 0101B为物理地址的低12位,对应的7~10位为组号,故对应的Cache组号为0。

解析
转载请注明原文地址:https://kaotiyun.com/show/cU3i777K
0

相关试题推荐
最新回复(0)