【发布时间】:2011-04-11 14:31:16
【问题描述】:
我知道 l1 和 l2 缓存是多级缓存中的级别。
我想知道每一级缓存放在什么位置,允许的最大缓存级数是多少?
【问题讨论】:
标签: caching
我知道 l1 和 l2 缓存是多级缓存中的级别。
我想知道每一级缓存放在什么位置,允许的最大缓存级数是多少?
【问题讨论】:
标签: caching
这两者都依赖于 CPU。有的 CPU 根本没有缓存,有的 CPU 在芯片上具有 L1 缓存,而 L2 缓存在同一芯片上的单独芯片上,甚至在单独的芯片上,或者有 L1 和 L2 缓存的 CPU在与 CPU 内核相同的芯片上。
有多核、多芯片 CPU,其中每个内核在芯片上都有自己的 L1 缓存,一个多核芯片的 4 个内核共享一个芯片上的 L2 缓存,但在单独的芯片上,并且2 个芯片共享一个位于单独芯片上但在同一个封装中的 L3 缓存。有时,也有所谓的 CPU 书籍,其中包含多个芯片封装,它们可能有也可能没有自己的共享缓存,然后是 L4 缓存。
当然,多核芯片不必共享它们的二级缓存,它们也可以有私有二级缓存。
而且并不总是很明显,某个缓存是什么级别,甚至一块 RAM 是否是缓存。
例如,在后来的 Intel 80486 处理器上,芯片上有一个 L1 缓存,主板上有一个 L2 缓存。但随后 AMD 推出了与插槽兼容的 CPU,其芯片上同时具有 L1 和 L2 缓存。因此,主板上完全相同的缓存芯片是 L2 或 L3 缓存,具体取决于您使用的 CPU 类型。
在 Cell BE CPU 上,每个 SPE 有 256 KiByte 的 RAM。除了这个 RAM 的大小和速度与典型的 L2 缓存大致相同,而且由于 SPE 没有任何其他缓存,您也可以将其视为缓存。但是,缓存通常由 CPU 自动管理,而 RAM 通常由用户程序、语言运行时或操作系统管理,而不是 CPU。那么,这是 RAM 还是缓存?事实证明,为了获得最佳性能,您真的应该不将其视为 RAM,而应更多地将其视为软件控制的缓存。
【讨论】:
L1和L2缓存的区别
虽然 L1 和 L2 都是高速缓存存储器,但它们有其关键区别。 L1 和 L2 是缓存级别层次结构中的第一和第二缓存。
L1 的内存容量比 L2 小。
另外,L1 的访问速度比 L2 快。
仅当在 L1 中找不到请求的数据时才访问 L2。**
L1 通常内置于芯片中,而 L2 焊接在芯片上 主板离芯片很近。
因此,与 L2 相比,L1 的延迟非常小。因为 L1 是 使用 SRAM 实现,L2 使用 DRAM 实现,L1 没有 需要刷新,而L2需要刷新。
如果缓存是严格包含的,则 L1 中的所有数据都可以在 L2 也是如此。但是,如果缓存是独占的,相同的数据将不会 可在 L1 和 L2 中使用。
【讨论】: