标签: cpu-cache

L2 对比 L3 CPU 缓存速度和性能

在过去的几年里,看看 Intel CPU,已经从大尺寸 L2 缓存转向大尺寸 L3 缓存。这在很大程度上是由于 CPU 上有更多内核并希望在它们之间共享缓存(L3 优势)。

但是假设我有一个单线程应用程序,并且我想比较在共享相同时钟速度的 2 个不同 CPU 上运行它的速度:

  1. 具有 6MB L2缓存 @3.1Ghz的 CPU (例如,Core 2 Duo E8500)

  2. 具有 6MB L3缓存 @3.1Ghz的 CPU (例如,Core i5 2400)

不考虑涡轮增压效应和更快的 DDR 因素, 似乎第一个(较旧的)CPU 应该执行得更快(因为它更接近核心级别),不是吗?

另一个让我感兴趣的问题,在过去,在 CPU 中 L2 缓存的最初几天我似乎记得 L2 缓存是以 CPU 时钟速度的一半访问的,今天仍然如此吗?L3速度呢?

cpu performance speed cpu-cache

6
推荐指数
1
解决办法
1万
查看次数

如何了解 Windows 7 上的 CPU 缓存大小

WMIC CPU命令显示有关机器上 CPU 的大量信息。它只显示有关 L3 缓存的信息,有没有办法在 Windows 7 上使用命令或工具计算出 L1 和 L2 缓存的大小?

windows cpu cpu-cache

6
推荐指数
1
解决办法
6万
查看次数

为什么我们需要多级缓存?

一般来说,高速缓存是有用的,因为处理器的速度高于 ram 的速度(它们都在增加速度,但差异仍然存在)。因此,减少内存访问次数对于提高性能是可取的。

我的问题是为什么我们需要多级缓存(L1、L2、L3)而不是一个?

我知道 L1 是最快和最小的,L2 有点慢但有点大等等......但他们为什么要以这种方式创建硬件?

memory cpu performance cpu-architecture cpu-cache

6
推荐指数
1
解决办法
2万
查看次数

某些 CPU 上的 L4 缓存是什么?

所有现代多核 CPU 都至少有三级缓存(请参阅为什么我们需要多级缓存?)。

L1 是最快和最小的,L2 的延迟稍大但更大,L3 保存在处理器中所有内核之间共享的数据(甚至更大,甚至更慢)。一切都很好。

然而,谷歌搜索短语“L4 Cache”不会产生空结果。显然有些 CPU 确实包含 L4 缓存(显然 Intel Broadwell i7-5775C 确实有 128MB eDRAM 实现为 L4 缓存)。

有谁知道L4缓存是做什么用的?我找不到任何关于其目的和功能的文档。

cpu cache cpu-cache

6
推荐指数
1
解决办法
2万
查看次数

进程在不同内核之间切换吗?

进程是否会在不同内核之间切换以提高性能?如果进程确实在内核之间跳转,那么内核之间共享哪些组件?L1-L3 缓存、寄存器还是内存?

cpu cache cpu-architecture cpu-cache

5
推荐指数
1
解决办法
1735
查看次数

微操作缓存是如何标记的?

根据Real World Technologies关于“英特尔的 Sandy Bridge 微架构”的文章:

“Sandy Bridge 的 uop 缓存被组织成 32 组和 8 路,每行 6 uop,总共 1.5K uop 容量。uop 缓存严格包含在 L1 指令缓存中。每行还保存元数据,包括行中有效 uop 的数量和对应于 uop 缓存行的 x86 指令的长度。映射到 uop 缓存的每个 32B 窗口可以跨越一组 8 路中的 3 条,最多 18 路 uop – 大约 1.8B/uop。如果一个 32B 的窗口有超过 18 个 uop,它就无法放入 uop 缓存中,必须使用传统的前端。微码指令不保存在 uop 缓存中,而是由指向微码 ROM 的指针和可选的前几个 uop 表示。”

'每个 32B 窗口(来自指令缓存)被映射到 uop 缓存中,可以跨越一组 8 路中的 3 路'

因此,假设我们有一个 32B 指令窗口,它将是 L1 指令缓存行的一半,在该行上,只有偏移位不同,但该行上所有字节的标记位和设置位都相同。

解码 32 字节窗口后,uop 将使用与用于从 L1 指令缓存中检索 …

cache intel-core-i7 cpu-architecture cpu-cache

5
推荐指数
1
解决办法
1173
查看次数

linux cpu文件夹中文件的含义

文件夹中的文件是什么意思/sys/devices/system/cpu/cpu0/cache/index0?我在文件夹中看到这些文件:

coherency_line_size  number_of_sets           shared_cpu_list  size  ways_of_associativity
level                physical_line_partition  shared_cpu_map   type
Run Code Online (Sandbox Code Playgroud)
  1. 它们的含义是什么?
  2. 我怎么知道 L2 缓存是否共享。如果是这样,我怎么知道它与哪个 cpu 共享?
  3. index0 index1 .. index3 的含义是什么?index3 代表 L3 缓存,index2 代表 L2 缓存吗?

/sys/devices/system/cpu/cpu0/cache/index3有这些文件:

cache_disable_0      level                    shared_cpu_list  subcaches
cache_disable_1      number_of_sets           shared_cpu_map   type
coherency_line_size  physical_line_partition  size             ways_of_associativity
Run Code Online (Sandbox Code Playgroud)

为什么我在 index1 或 index2 中看不到子缓存?并且 shared_cpu_list 显示 0_7。是不是说这个缓存是和cpu0到cpu7共享的?

linux cpu cpu-cache

2
推荐指数
1
解决办法
2143
查看次数

如何查看 Windows 中 L2 缓存的数量?

我知道在哪里可以找到 CPU 级别和速度以及 RAM 量。但是我在计算机属性或设备管理器中没有看到 CPU 缓存的数量。Windows(目前的XP)是否提供此信息,或者是否有一个很好的程序来检索它?

windows cpu-cache

1
推荐指数
1
解决办法
3624
查看次数

高速缓存是位于 CPU 中还是位于主板上?

我怀疑缓存是位于处理器中还是位于主板上?

memory cpu-cache

1
推荐指数
1
解决办法
2万
查看次数

RAM 大小 > L2 缓存大小 > L1 缓存大小 > CPU 的内部寄存器

我知道内部寄存器的访问速度与 L1 Cache 相比非常高,而且 L1 Cache 的访问速度比 L2 缓存快,而 L2 缓存的访问速度又比 RAM 快。但是,我想知道为什么内部寄存器的大小总是小于 L1 缓存的大小,为什么 L1 缓存的大小大多小于 L2 缓存的大小,而 L2 缓存的大小又总是小于 RAM 大小的大小?

memory cpu speed cpu-cache

0
推荐指数
1
解决办法
2836
查看次数

我的 L3 缓存大小在 wmic (cmd) 中显示为零

我购买了一个具有 6 MB 缓存的桌面系统。当我检查 BIOS 中的 L3 缓存时,没有找到 L3 缓存。
我尝试使用命令行中的另一种方法来确认 L3 缓存大小。

这是我尝试获取 L3cache 值的命令:

wmic cpu get L3CacheSize
Run Code Online (Sandbox Code Playgroud)

它显示零结果 (0)。但相同的命令显示在我的其他系统(我的 Dell Inspiron 3521)上也有效,它显示 3MB 的 L3 缓存,这是绝对正确的。

我不明白这是什么意思。我以前从未见过这个。
这是否意味着我没有 L3 缓存?

windows-7 cache wmic cpu-cache cmd.exe

0
推荐指数
1
解决办法
1103
查看次数