NO IMAGE

L1 cache reference                                               0.5ns
一級快取引用

Branch mispredict                                                    5ns
分支錯誤預測

L2 cache reference                                                  7ns
二級快取引用

Mutex lock                                                           100ns
互斥鎖定

Main memory reference                                       100ns
主存引用

Compress 1K bytes with Zippy                            10,000ns
用Zippy壓縮1K位元組

Send 2K bytes over 1 Gbps network                   20,000ns
通過1Gbps網路傳送2K位元組

Read 1 MB sequentially from memory              250,000ns
從記憶體中讀取1MB

Round trip within same datacenter                    500,000ns
資料中心的往返路程

Disk seek                                                        10,000,000ns
磁碟尋道

Read 1 MB sequentially from network            10,000,000ns
從網路連續讀取1MB

Read 1 MB sequentially from disk                   30,000,000ns
從磁碟連續讀取1MB

Send packet CA->Netherlands->CA                150,000,000ns

在CA向荷蘭發包再返回

 

補充一段關於Branch mispredict的介紹:來自Wiki

Branch misprediction occurs when a central
processing unit
 (CPU) mispredicts the next instruction to process in branch
prediction
, which is aimed at speeding up execution.

During the execution of certain programs there are places where the program execution flow can continue in several ways. These are called branches,
or conditional jumps. The CPU also uses a pipeline which allows several
instructions to be processed at the same time. When the code for a conditional jump is read we do not yet know the next instruction to execute and insert into the execution pipeline. This is where branch
prediction
 comes in.