把《王道考研》的 Cache 相关习题总结一下
考研路漫漫,写篇文章权当放松
1. Cache 映射的基础知识
综述(比较杂乱,随想随写的,没有体系,请见谅)
-
首先,Cache 的存储容量扩充了整个计算机存储容量么?答案是否定的。因为 Cache 只不过是主存存储内容的一部分副本。在主存中保存着进程(线程)运行所需的资源,例如指令、数据等等,为了加快 cpu 和主存的信息交换速度而进入 Cache - 主存 存储层级。
-
关于存储设备的分类,有好多,可以按存储介质、存储方式等等,重点注意一下按存储方式分类。
随机存取指的是存储器的任何一个存储单元的内容都可以随机存取,而与存储单元的位置无关。RAM 和 ROM 的存储方式都是随机存取。
第二条跑题了
- 之前做的一个思维导图没有跑题。可以看一下。后续的题目会用到这里的部分内容。
2. 题目
- 某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块).每个主存块大小为32字节,按字节编址.主存129号单元所在主存
块应装入到的Cache组号是()
A. 0 B.2 C.4 D.6
观点分享:
首先,Cache 和主存的信息交换是以 Cache 行为单位、或者说主存块大小为单位。所以“每个主存块大小为32字节”就是在说Cache一行有32B的数据,那么,Cache的行内地址多少位呢,这取决于数据是以字为单位,还是以字节为单位编址,很好,题目说以字节为单位,那么Cache行内地址有5b。既然按字节编址,主存原本一个存储单元有一个字节的数据,现在需要合并32个存储单元为一个主存块,129号存储单元对应着129/32 = 4号主存块。
然后,组相联映射一共有8组,组号可以确定为3b。
最后,4号主存块对应的组号 = 4 % 8 = 4.
待续。。。