Leo*_*aar 5 cpu endianness cpu-cache
换句话说,L1,L2,L3等缓存是否总是反映其CPU的字节顺序?
或者总是将数据存储在某些特定字节序的缓存中更有意义吗?
是否有一般设计决定?
大多数现代缓存不会将数据存储为连续的字节块,而是出于布局规划或时序考虑而使用存储和交错技术。此外,大多数高速缓存采用纠错技术,因此额外的位可以与数据交错。
因此,讨论缓存的字节顺序没有任何实际意义,因为内部顺序通常会受到设计考虑的影响。最重要的是,在大多数情况下,缓存以全行粒度提供数据,因此询问您从哪个偏移量开始读取也是没有意义的。
最后,字节序是架构问题,它是您如何解释从 CPU 获得的数据。它的存在是为了描述您可以在其中解释数据的可能选项。缓存是微架构,因此根据定义,您的 CPU 功能行为应该忽略它们,并且它们可以自由地实现它们想要的任何内部结构。如果您有一些方法可以从内部查看缓存,并希望将其转换为值,则该问题可能仍然有意义,在这种情况下,上述考虑适用,并且每个处理器可能不同。