某计算机的Cache共有16块,采用2路-组相联映射方式(即每组包括2块)。存储器按字节编址,每个主存块大小为32字节。请计算129号主存单元所在的主存块应装入到的Cache组号。
·
某计算机的Cache共有16块,采用2路-组相联映射方式(即每组包括2块)。存储器按字节编址,每个主存块大小为32字节,请问:
- Cache如何分组、分块?
- 主存如何分组、分块?
- 计算129号主存单元所在的主存块应装入到的Cache组号。
解答思路一:
1.组相联映射方式下,主存块按模Q(Q为Cache组数)映射到Cache对应组中的任一块;
Cache共有16块,采用2路组相联映射,故Cache共分16/2=8组,每组2块。每块32B。
2.主存分为若干组,每组又分成8块。每块32字节。
3.129的二进制表示为10000001→0...010000001(组内块序号为100)如下图,所以组号为4
解答思路二:
1.cache共有16块,采用2路组相联映射,所以共有8组,每组2块,每块32B。
2.主存分为若干组,每组又分成8块。每块32字节。
3..由于主存块大小为32字节,所以129号单元位于第4块上(129/32取整等于4)。
而cache共有16块,采用2路组相联映射,所以共有8组。
主存块号i与Cache组号j映射关系为:j=i mod 8,所以j=4 mod 8=4,即129号单元装入到第4组。
PS:本人也是在学习过程中,如有不对的地方,希望大家可以指正,谢谢。
更多推荐
所有评论(0)