当说L1高速缓存参考或主内存参考时是什么参考

问题描述 投票:1回答:1

因此,我试图学习计算机各种组件的性能指标,例如L1缓存,L2缓存,主内存,以太网,磁盘等,如下所示:

Latency Comparison Numbers
--------------------------
L1 cache **reference**                       0.5 ns
Branch mispredict                            5   ns
L2 cache **reference**                       7   ns                      14x L1 cache
Mutex lock/unlock                           25   ns
Main memory **reference**                  100   ns                      20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy            10,000   ns       10 us
Send 1 KB bytes over 1 Gbps network     10,000   ns       10 us
Read 4 KB randomly from SSD*           150,000   ns      150 us          ~1GB/sec SSD
Read 1 MB sequentially from memory     250,000   ns      250 us
Round trip within same datacenter      500,000   ns      500 us
Read 1 MB sequentially from SSD*     1,000,000   ns    1,000 us    1 ms  ~1GB/sec SSD, 4X memory
Disk seek                           10,000,000   ns   10,000 us   10 ms  20x datacenter roundtrip
Read 1 MB sequentially from 1 Gbps  10,000,000   ns   10,000 us   10 ms  40x memory, 10X SSD
Read 1 MB sequentially from disk    30,000,000   ns   30,000 us   30 ms 120x memory, 30X SSD
Send packet CA->Netherlands->CA    150,000,000   ns  150,000 us  150 ms

我不认为上面提到的参考是关于读取多少数据的位或字节。但是实际上是关于访问缓存或内存中的一个地址。有人可以更好地解释一下此参考在0.5 n / s中发生了什么吗?

performance latency cpu-cache
1个回答
0
投票
  • 该表列出了某些代表性系统的典型数字,因为实际示例系统的实际值很难达到“平滑的数字”,而是在CPU和/或总线时钟周期的某些非偶数倍上进行复杂的求和。我们可以在教科书中找到用于教育用途的表格。显然,这是对系统设计进行一般介绍的方法[1]。从一些会议演讲中,Google AI的负责人,Jeff Dean在2009年举行的3,4

  • 两个演示文稿PDF

    3,4

  • 没有给出明确的定义,这些表中“引用”的确切含义。取而代之的是,列出这些表是为了指出“信封背面计算”的能力对于成功的系统设计至关重要。
  • 术语“

    reference

  • ”可能意味着如果在其中保留了所请求的值,则从相应的内存级别中检索一条信息,因此不必从较慢的源中重新加载它:] >L1缓存

    上层源(RAM,磁盘)只是一个粗略的草图,因为在这里您会发现很多子层和变体(大容量设备的类型,磁盘芯片组上的内部缓存,总线/桥等)。等)。目前的数字似乎是Google数据中心经验的总结。因此,假设它们基于2009年(或更早)推出的一些高性能类硬件。在今天(2020年),这些数字不应该从字面上理解,而应在其他级别的数据传输的相应值的背景下证明数量级。

  • 标签“ branch mispredict”表示需要从下一级进行提取操作的所有情况,因为对于这样的提取操作至关重要的情况,错误预测的分支决策是最重要的原因。河t。延迟。在其他情况下,分支预测基础结构应该及时触发数据获取操作,因此所有超出低“参考”值的延迟都将隐藏在管道操作之后。

  • 1

    您在评论讨论中提供给我们的网址
["Latency numbers every programmer should know" in:“系统设计入门”中的]

引用以下来源:

2Jeff Dean"Latency Numbers Every Programmer Should Know",2012年5月31日。

“最初由Peter Norvig"Teach Yourself Programming in Ten Years")撰写,并从Brendan进行了一些更新”,2012年6月1日。

3

Jeff Dean: "Designs, Lessons and Advice from Building Large Distributed Systems", 13 Oct 2009,第24页。

4

Jeff Dean: "Software Engineering Advice from Building Large-Scale Distributed Systems", 17 Mar 2009,第13页。
© www.soinside.com 2019 - 2024. All rights reserved.