Pentium处理器中的Cache分为了代码Cache和数据Cache两组,采用了二路组相联的结构。见图5-9。我们称这两个高速缓存存储体为0路和1路。0路和1路各包含128个Cache行,并且都拥有一个由128个目录项组成的目录与它相关联,每路Cache的每个行都有一个目录项与之对应。Cache的目录有三个可以同步访问的端口。其中两个端口分别对应于流水线U和V,这就可以支持对两路组兼容的访问。也就是说每条流水线通过一个端口每次只能访问一个Cache组中的内容,不能同时访问;但是如果两条流水线并行,通过两个端口分别访问相应的组,就可以同时进行。另一个端口用于监听系统中其他处理器对存储器的操作。每个Cache行都包含32字节,如果是代码Cache,处理器每次从Cache读取32个字节的数据,将它们送到预取队列。
  代码Cache是只读的,它只使用了MESI协议的一部分(S和I)。数据Cache的结构和代码Cache基本相同,由于数据Cache是可读写的,它使用了完全的MESI协议。下面以数据Cache为例对Cache结构以及Pentium 微处理器与存储器的关系进行讨论。

    图5-9 Pentium内部数据Cache的结构