对于上题,若计算机M的主存地址为32位,釆用分页存储管理方式,页大小为4KB,则第1行的push指令和第30行的ret指令是否在同一页中(说明理由)?若指令Cache有64行,采用4路组相联映射方式,主存块大小为64B,则32位主存地址中,哪几位表示块内地址?哪几位表示Cache组号?哪几位表示标记(tag)信息?读取第16行的call指令时,只可能在指令Cache的哪一组中命中(说明理由)?
解答:
第一问。第1行指令和...
用户登录可进行刷题及查看答案
第一问。第1行指令和第30行指令的代码在同一页。
因为计算机M的主存地址为32位,釆用分页存储管理方式,虚拟地址格式为 虚页号|页内地址,页大小为4KB= 2^12B,根据上题,计算机M按字节编址,所以页内地址占低12位,虚页号占高32-12=20位。第1行指令地址为 ,第30行指令地址为 ,两者虚页号均为00401H,因此两条指令在同一页中。
第二、三、四问。组相联映射格式为 。若指令Cache有64行,采用4路组相联映射方式,Cache组数为64/4=16= 2^4 ,组号占中间4位,主存块大小为64B= 2^6B,根据题45,计算机M按字节编址,所以块内地址占低6位,在32位主存地址中,物理地址占32位,主存字块标记占高32-4-6=22位。所以物理地址0~5位为块内地址,6~9位为组号,10~31位为标记(tag)信息。
第五问。读取第16行call指令时,只可能在指令Cache第0组中命中。因为第16行指令地址为 ,页大小为4KB,虚拟地址和物理地址的最低12位完全相同,块内地址占6位,组号占4位,两者组合在一起占低10位,所以页内地址包含组号和块内地址。页内地址025H= ,所以对应Cache组号为0000B=0。
登录后提交答案
暂无评论,来抢沙发