第五章 大容量和高速度: 开发存储器层次结构
无论在最快的计算机还是最慢的计算机中,构成主存的原材料--DRAM 本质是相同的,并且是最便宜的,这使得构建一个和快速处理器保持同步的存储系统变得更加困难。
局部性原理可以用来克服存储器访问的长延迟--这个策略的正确性已经在存储器层次结构的各级都得到了证明。尽管层次结构中的各级从量的角度来看非常不同,但是在它们的执行过程中都遵循相似的策略,并且利用相同的局部性原理。
多级 cache 可以更方便的使用更多的优化,这有两个原因。第一,较低级 cache 的设计参数与一级 cache 不同。例如,由于较低级 cache 的容量一般很大,因此可能使用更大容量的块。第二,较低级 cache 并不像一级 cache 那样经常被处理器用到。这让我们考虑当较低级 cache 空闲时让它做一些事情以预防将来的缺失。
另一个趋势是寻求软件的帮助。使用大量的程序转换和硬件设备有效地管理存储器层次结构是增强编译器作用的主要焦点。现在有两种不同的观点。一种是重新组织程序结构以增强它的空间和时间局部性。这种方法主要针对以大数组为主要数据结构的面向循环的程序;大规模的线性代数问题就是一个典型的例子,例如 DGEMM。通过重新组织访问数组的循环增强了局部性--也因此改进了 cache 性能。
希望我的总结可以帮助大家,感谢阅读我的博客!