本节书摘来自异步社区《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》一书中的第2章,第2.12节,作者:【美】Curt Schimmel著,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.12 各种高速缓存体系的差异
在当今的计算机系统上可找到的各种高速缓存五花八门。它们最明显的区别体现在如下几个领域:
- 缓存大小;
- 行大小;
- 组大小;
- 写分配的使用;
- 替换策略;
- 通过虚拟还是物理地址来查找;
- 如何标记行(通过虚拟地址、物理地址还是其他信息);
- 写直通或者写回策略。
前5项影响高速缓存的性能,而且从保持高速缓存一致性的角度来看,除了一项(组大小)之外,其他的项对操作系统都没有直接影响。偶尔必须考虑一下组的大小,这将在3.3.2、4.2.2和4.2.6节中介绍。清单中的最后3项也影响性能,但是它们还影响操作系统。这几项决定了操作系统为了对其上运行的程序完全隐藏高速缓存的存在而需要显式执行的高速缓存冲洗操作的数量。
下面的几章介绍了四种不同的高速缓存组织结构,而且描述了在什么样的条件下操作系统必须明确执行冲洗操作。所研究的不同高速缓存组织结构在采用虚拟地址还是物理地址来查找和标记行方面会有些变化。在每种情况下还需要考虑写直通和写回高速缓存机制之间的差异。