高速缓存预取允许处理器在快速本地高速缓存中准备好数据和/或指令以供使用,而不必等待提取请求流过系统 RAM 并再次返回。 Intel 8088(及其老大哥 8086)处理器是首批在硬件中实现(指令)预取的微处理器之一,[Ken Shirriff] 分析了 基于这款著名处理器的芯片图像。这如下 去年的深度探索 8086 的预取硬件,这两个微处理器之间有许多相似之处(毫不奇怪),也有一些差异,这些差异主要是由于 8088 的缩减的 8 位数据总线造成的。
8086 在指令预取器中有 3 个 16 位插槽,而 8088 有 4 个插槽,每个插槽 8 位。预取硬件是总线接口单元 (BIU) 的一部分,它有效地将实际处理器(执行单元或 EU)与系统 RAM 解耦。虽然以前的 MPU 是完全确定性的,指令从 RAM 加载并随后执行,但 8086 和 8088 的预取意味着这种假设不再成立。 BIU 中添加的功能还意味着指令指针 (IP) 和相关寄存器移至 BIU,而队列周围的环形缓冲区逻辑必须以某种方式保持 RAM 中的排队和指针偏移量正常工作。
尽管现在的 CPU 具有更复杂的多级缓存(以千字节和兆字节为单位),但看到这一切的开始是很有趣的,只有几个字节和相对直接的硬件逻辑,您可以在显微镜下轻松跟踪。