我画了一张计算机速率全景图

我是cloud3,我画了一张图。

这张图非常重要,展示了从CPU到外设的各个部件的速率,尤其是处理器内部的速率和延迟。从这里就可以看出cpu为什么要加那么多的告诉缓存L1 L2 L3了,相对于内存和其他外设,CPU实在是太快了。

另外各个外设的速率也在图中标注了,大家可以自己算算和CPU的速率差距。

备注:下面以Intel i7-4470处理器速率举例:

Intel i7-4770 (Haswell), 3.4 GHz (Turbo Boost off), 22 nm.

RAM: 32 GB (PC3-12800 cl11 cr2).

  • L1 Data cache = 32 KB, 64 B/line, 8-WAY.
  • L1 Instruction cache = 32 KB, 64 B/line, 8-WAY.
  • L2 cache = 256 KB, 64 B/line, 8-WAY
  • L3 cache = 8 MB, 64 B/line
  • L1 Data Cache Latency = 4 cycles for simple access via pointer
  • L1 Data Cache Latency = 5 cycles for access with complex address calculation (size_t n, *p; n = p[n]).
  • L2 Cache Latency = 12 cycles
  • L3 Cache Latency = 36 cycles (3.4 GHz i7-4770)
  • L3 Cache Latency = 43 cycles (1.6 GHz E5-2603 v3)
  • L3 Cache Latency = 58 cycles (core9) - 66 cycles (core5) (3.6 GHz E5-2699 v3 - 18 cores)
  • RAM Latency = 36 cycles + 57 ns (3.4 GHz i7-4770)
  • RAM Latency = 62 cycles + 100 ns (3.6 GHz E5-2699 v3 dual)

另外关于CPU和Cache的关系可以看看我的系列文章:

1高速缓存基本原理:

图解 | CPU-Cache

2高速缓存中的歧义和别名:

图解 | CPU-Cache | 2

3高速缓存一致性:

图解 | CPU-Cache | 一致性

4理解高速缓存对写代码的重要性:

图解Cache | 一个月代码白写了

5高速缓存是如何走入CPU的:

L1 L2 L3 Cache到底放在哪里好呢?

6自旋锁的发展和高速缓存的关系:

等待的艺术 | 自旋锁的前世今生

我是cloud3