我知道l1和l2缓存是多级缓存中的级别 我想知道每个级别缓存的放置位置,允许的最大缓存级别数是多少?
答案 0 :(得分:16)
这两者都取决于CPU。有些CPU根本没有缓存,有CPU在芯片上有L1缓存,L2缓存在同一芯片上的单独芯片上,甚至在单独的芯片上,或者有CPU同时具有L1和L2缓存在与CPU核心相同的芯片上。
有多核,多芯片CPU,每个核心在芯片上有自己的L1缓存,一个多核芯片的4个核心共享一个片上的L2缓存,但是在一个单独的芯片上, 2个芯片共享一个L3缓存,它位于一个单独的芯片上,但是在同一个封装中。有时,还有所谓的 CPU book ,其中包含多个芯片包,这些芯片包可能有也可能没有自己的共享缓存,这些缓存就是L4缓存。
当然,多核芯片不必共享其L2缓存,它们也可以拥有私有L2缓存。
并不总是很明显,某个缓存是什么级别,甚至一块RAM是否都是缓存。
例如,在后来的Intel 80486处理器上,芯片上有一个L1缓存,主板上有一个L2缓存。但随后AMD推出了兼容插槽的CPU,芯片上同时具有L1和L2缓存。因此,主板上完全相同的缓存芯片可能是L2或L3缓存,具体取决于您使用的CPU类型。
在Cell BE CPU上,SPE各有256 KiByte的RAM。除了这个RAM与典型的L2缓存具有大致相同的大小和相同的速度,并且由于SPE没有任何其他缓存,您还可以将其视为缓存。但是,缓存通常由CPU自动管理,而RAM通常由用户程序,语言运行时或OS管理,而不是CPU。那么,这个RAM还是缓存?事实证明,为了获得最佳性能,您应该不将其视为RAM,而更多地将其视为软件控制的缓存。
答案 1 :(得分:1)
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中都可用。
答案 2 :(得分:-2)