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