【问题标题】:Why do we even need a cache? [closed]为什么我们甚至需要缓存? [关闭]
【发布时间】:2016-03-21 20:23:22
【问题描述】:

据我所知,缓存是 RAM 的副本,它组合在一起,以便在空间和时间局部性的情况下更快地执行。但是为什么不直接访问 RAM 并去掉中间人呢?为什么我们需要访问缓存,它会复制内存(有时甚至不是正确的部分)?

【问题讨论】:

  • 缓存比内存快。
  • 好吧,怎么更快?具体原因是什么?我现在才刚刚了解这一切,所以我只是想弄清楚。
  • 您第一次尝试自己研究这个问题并没有发现缓存和DRAM之间的任何区别?也许与延迟有关?

标签: caching cpu-architecture


【解决方案1】:

这是给你的数字,希望他们能回答你的问题

          0.5 ns - Execute typical instruction
          1   ns - Fetch from L1 cache memory
          5   ns - CPU L1 CACHE branch misprediction
          7   ns - Fetch from L2 cache memory
        100   ns - Mutex lock/unlock
        100   ns - Fetch from main memory
     20,000   ns - Send 2K bytes over 1Gbps network
    250,000   ns - Read 1MB sequentially from memory
 10,000,000   ns - Fetch from new disk location (seek)
 10,000,000   ns - Read 1MB sequentially from disk
150,000,000   ns - Send packet US to Europe and back

Source

【讨论】:

    【解决方案2】:

    如果您的硬盘有 TB,为什么还需要 RAM? :)

    【讨论】:

    • 怎么样?它们是完全不同的东西。
    猜你喜欢
    • 2021-11-30
    • 2010-09-20
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 2021-06-27
    • 2017-05-07
    相关资源
    最近更新 更多