在CPU数据路径中,有称为数据存储器和指令存储器的块吗? 这些块是 L1 指令和 L1 数据缓存吗?
例如,检查链接中的图 4.10。
我们知道,通常 L1 和 L2 缓存位于核心中,如本链接中所指定。
还在下面的 CPU 布局中,我们看到 L1 和 L2 缓存与管道阶段和控制单元一起发生在 CPU 内部。
我的问题是我们在数据路径中看到的这些数据和指令内存是否对应于内核内部的L1指令和数据缓存?
是的,如果CPU有缓存,加载/存储执行单元会访问L1d缓存。如果CPU有L1i高速缓存,则取指单元访问L1i。或者,如果它有一个统一的 L1,比如旧的 P5 Pentium 或旧的 ARM,它就会访问它。大多数 CPU 使用分离式 L1 缓存(“改进的哈佛”),而不是在单个统一的 L1d 缓存中使用更多读/写端口。但仍然是一个统一的内存地址空间,而不是完整的哈佛,其中相同的数字地址是代码与数据的不同存储。
无论如何,框图中的“数据存储器”块是现代 CPU 的加载/存储执行单元,如 https://www.realworldtech.com/sandy-bridge/10/
缓存未命中时,将发生对统一 L2 的访问。如果错过了,请访问 L3 或 DRAM。 (有些CPU只有两级缓存。有些老CPU只有一级。)
另请参阅 现代微处理器 90 分钟指南! 很好地概述了各种概念如何组合在一起。