查看现代 CPU 中的 Cache 结构的源代码
←
现代 CPU 中的 Cache 结构
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
=== 相联方式 === ==== 组相联 ==== 通俗地讲就是 Cache 行的分组,比如 4 路组相联,就是 4 行一组,4 行一组。。。。。。 比如 32KB 的 4 路组相联 Cache,行大小为 16Bytes 的话,他就有 32*1024/(16 * 4)= 512 组 CPU 访问组相联 Cache 时,就先用地址索引到组,然后组内同时匹配 Tag,进行路选。一个典型的组相联 Cache 如下: [[文件:Cache.way .set .png]] 内存逻辑上也按 Cache 行大小分块,按地址由低向高,依次编号。因此 Cache 与内存就会有个映射问题,如:第四个内存行中的数据被CPU访问时,该行将缓存于 Cache 中的哪一行? 组相联的 Cache 是先索引组,其规则为: Cache 组号 = 内存行号 % Cache 总组数 [[文件:C2.png]] 对于上图这个只有 2 个组的 Cache,假设其行大小为 16Bytes,这个组索引的过程,实际上就是用地址的第 5 位(ADDR[4]) 索引的过程,0 就在第一组,1 就在第二组。地址的低 4 位用于行内索引数据 (ADDR[3:0]) 尔后,内存行可以映射到该组内的任意行上。缓存数据时,有空占空,如组内所有行被占用,则使用替换算法(LRU, Random, FIFO, LFU)替换掉一行。 <br><br> ==== 直接相联 ==== 略. 或可参阅 The MIPS Cache Architecture 的相关部分 <br><br> ==== 全相联 ==== 略. 或可参阅 The MIPS Cache Architecture 的相关部分 <br><br>
返回到
现代 CPU 中的 Cache 结构
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面