CPU 如何确定将数据放入 L1i 还是 L1d
CPU 如何决定使用哪个缓存来存储刚从内存中检索的数据? 据我所知,CPU 可以访问(读取或写入)的最小内存单位是 64 字节(x86_64、DDR3/DDR4),以 8 次传输(64 位 x 8 次)突发传输。这个 64B 单元称为缓存行,因为它一到达就立即存储到 L1 中(每个条目为 64B + 标签)。 编译后的代码充满了交错的指令和数据 - 许多指令将数据作为指令本身的一部分 - 操作码后面跟着立即数据。这是否被视为完整的指令并因此存储在 L1i 中?L1i 和 L1d 条目都是 64B 宽吗?整个缓存行是存储在 L1i 还是 L1d 中?或者 ...