我知道内部寄存器的访问速度与 L1 Cache 相比非常高,而且 L1 Cache 的访问速度比 L2 Cache 快,而 L2 Cache 的访问速度又比 RAM 快。但是,我想知道为什么内部寄存器的大小总是小于 L1 Cache,为什么 L1 Cache 的大小大多小于 L2 Cache,而 L2 Cache 的大小又总是小于 RAM 的大小?
答案1
主要是因为成本。内存越快,制造成本就越高。出于性能原因,您希望寄存器尽可能快,但您也希望保持处理器成本低。因此,设计师决定为内存采用足够好的措施,以控制成本并将性能保持在可接受的范围内。
为了使性能更好,有人决定使用比 RAM 便宜一点但仍然更快的内存来制作 L1 缓存。当然,由于它更便宜,我们可以将它放置在比寄存器更多但仍然比廉价 RAM 更少的地方。因此设计师也在这里找到了平衡点。
故事继续在 Lx 缓存中进行......
答案2
基本上,寄存器是内置在 CPU 中的,因此可以直接操作处理单元。如果你想构建这样的 L1,那么布线会太多——而且布线延迟会影响访问如此大的寄存器的速度。
此外,使 RAM 的速度与 L1/L2 缓存一样快的成本很高。
有关更准确和详细的信息请阅读每个程序员都应该知道的关于内存的知识。