缓存是否具有CPU的字节序?

Leo*_*aar 5 cpu endianness cpu-cache

换句话说,L1,L2,L3等缓存是否总是反映其CPU字节顺序

或者总是将数据存储在某些特定字节序的缓存中更有意义吗?

是否有一般设计决定

Lee*_*eor 5

大多数现代缓存不会将数据存储为连续的字节块,而是出于布局规划或时序考虑而使用存储和交错技术。此外,大多数高速缓存采用纠错技术,因此额外的位可以与数据交错。

因此,讨论缓存的字节顺序没有任何实际意义,因为内部顺序通常会受到设计考虑的影响。最重要的是,在大多数情况下,缓存以全行粒度提供数据,因此询问您从哪个偏移量开始读取也是没有意义的。

最后,字节序是架构问题,它是您如何解释从 CPU 获得的数据。它的存在是为了描述您可以在其中解释数据的可能选项。缓存是微架构,因此根据定义,您的 CPU 功能行为应该忽略它们,并且它们可以自由地实现它们想要的任何内部结构。如果您有一些方法可以从内部查看缓存,并希望将其转换为值,则该问题可能仍然有意义,在这种情况下,上述考虑适用,并且每个处理器可能不同。