小编use*_*278的帖子

为什么 RAM 的写入速度低于读取速度?缓存是如何出现的?

首先,这是真的,对吧?我觉得读取总是比写入快,这里的这个人也做了一些实验来“证明”它。他没有解释原因,只是提到了“缓存问题”。(而且他的实验似乎并不担心预取)

但我不明白为什么。如果重要的话,让我们假设我们谈论的是 Nehalem 架构(如 i7),它为每个内核提供 L1、L2 缓存,然后是共享的包容性 L3 缓存。

可能这是因为我没有正确理解读写是如何工作的,所以我会写下我的理解。请告诉我是否有问题。

If I read some memory, following steps should happen: (assume all cache misses)

    1. Check if already in L1 cache, miss
    2. Check if in L2 cache, miss
    3. Check if in L3 cache, miss
    4. Fetch from memory into (L1?) cache
Run Code Online (Sandbox Code Playgroud)

不确定最后一步。数据是否会渗透到缓存中,这意味着在缓存未命中的情况下,内存首先被读入 L3/L2/L1,然后从那里读取?或者它可以“绕过”所有缓存,然后缓存并行发生以备后用。(读取 = 访问所有缓存 + 从 RAM 获取到缓存 + 从缓存读取?)

Then write:

    1. All caches have to be checked (read) in this case too
    2. If …
Run Code Online (Sandbox Code Playgroud)

memory bandwidth nehalem cache

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

标签 统计

bandwidth ×1

cache ×1

memory ×1

nehalem ×1