缓存层次结构全解析:原理、策略与性能评估
1. 全关联缓存
全关联缓存的结构与组关联缓存有很大不同。在全关联缓存中,一个内存块可以映射到任何缓存行,因此块地址的任何位都不会限制在缓存中的搜索范围。目录中的缓存标签就是整个块地址。为了在缓存中找到该块,必须同时并行检查所有目录项。
1.1 访问步骤
读取或写入访问分两步进行:
- 第一步,将块地址标签(即块地址)与目录中存储的所有标签进行匹配。为此,目录由内容可寻址存储器(CAM)构成。RAM 和 CAM 的区别在于,RAM 通过地址访问,而 CAM 通过其某个字段的内容(这里是块地址)访问。标签总线线路贯穿整个目录,总线上的值会与目录中每个标签存储的值并行比较。
- 第二步,如果一个比较器检测到匹配,数据存储器中的行线将被激活,然后返回相应的数据。需要注意的是,搜索目录和匹配标签不能像组关联缓存那样与获取数据并行进行。而且,目录访问(包括信号在目录中传播和逻辑比较的 CAM 访问)比 RAM 访问(包括地址解码)慢。
1.2 优缺点
全关联缓存的目录每个条目都需要一个比较器,因此其密度低于 RAM。不过,由于内存块到缓存行的映射完全灵活,其命中率应该比组关联缓存更好。因此,在热点集冲突可能影响性能的情况下,全关联映射更适合小型缓存。全关联缓存可以看作是只有一个包含整个缓存的组的组关联缓存。
2. 替换策略
当访问一个内存块而该块不在缓存中时,会触发缓存未命中,并选择一个牺牲块在缓存中进行替换。牺牲块必须位于缺失块地址映射到的缓存行之一中。
超级会员免费看
订阅专栏 解锁全文
522

被折叠的 条评论
为什么被折叠?



