尽管第一版出版已经四年了,令人惊讶的是缓存设计的基础原理基本保持不变。尽管处理器芯片上的晶体管数量有了很大进展,其中大部分用于缓存存储器,但我们发现片上缓存使用的策略几乎没有变化。除了在处理写周期时进行了一些较小的改进外,结构相对来说仍然很简单。第一版中详细介绍的几乎所有内容现在都在使用。
那么,为什么需要第二版呢?无论书籍写得多么永恒,科技书籍也需要不断修订,这本书也不例外。原始文本中使用的许多示例处理器现在要么已经过时,要么在不久的将来有可能过时。第一版包含了一个完整的章节,展示了示例缓存设计,现在的设计者可以比当时更简洁地实现这些设计所需的芯片更少。在第一版的引言中,我说这一章“将比其他章节更早过时”(我比预期的更正确)。此外,这些示例中的几乎没有一种处理器还在外部使用缓存芯片,因为它们的速度更快的后继型号现在更适用于高性能系统。不过,我选择保留最旧的一个缓存示例,在第一章中进行演示,以说明真实的缓存设计的门数并不高,而且不必回避缓存设计。
我还添加了一个新的第五章,展示了其他人是如何应对遇到的某些难题的。看到其他人是如何绕过特别棘手的问题的,甚至可能是你自己会遇到的问题,是很有趣的。这些解决方案没有一个过于复杂,但它们显示了极大的创造力。
我已经在词汇表和文本中添加了一些词语;然而,这个领域似乎越来越向着统一,可能是由于现在缓存设计师之间的交流更多了。随着领域变得更加广泛,公司之间的交流变得更加频繁和开放,公司特定的行话被更标准化的行话所取代,人们发现自己需要发明一个新的行话之前,会先了解别人的行话。
最后,与我用来创建第一版的无缓存系统相反,第二版正在一台Windows 95机器上制作,该机器采用133 MHz Pentium处理器,有8KB的一级缓存和256KB的二级缓存。令人惊讶的是,我用来创建修订文本和图形的软件的新版本将速度减慢到了用户界面在新旧机器之间没有太大差异的程度。