D-Cache/RAM Banndwidth・Latency(グラフ25~35)

次はキャッシュ/メモリアクセスまわり。まずグラフ25~27がRead/Write/CopyでのBandwidthであるが、先ほどの15~19と異なり、L2がReadで18Bytes/cycle、Writeで9~10Bytes/cycleとだいぶ盛り上がっている。ここから判断するに、L2/LLCの帯域そのものは大きく変わらない(とは言えグラフ26を見ると、L2のWriteに関しては多少手が入っている様にも見受けられる)が、ここから実行パイプラインへのFetchの効率化が図られた、とい判断すべきなのだろう。絶対的な帯域という話では、グラフ25~27を見る限り差が無いように思える。

ではLatencyは? ということで、グラフ28~31がその結果であるが、L1/L2に関してはほぼ同等なのに、LLCに関してはCore i7-3770Kが一番低いという結果になった。これは先のSandraとちょっと異なる傾向である。またLLCもMissしてからのLatencyもかなり低めに抑えられており、総じて優秀な結果と言って良いのではないかと思われる。

グラフ32~35は、8MB~32MBにおけるRAM Accessの部分を拡大した結果である。Core i7-3960Xのみ15MBのLLCを搭載している関係で傾きがちょっと異なるが、それを除いて見て見るとまず判るのは、Core i7-3770KのLatencyの絶対もさることながら、増え方がCore i7-2700Kよりも緩やかなことで、このあたりはデータフェッチのアルゴリズムが少し変化しているのかもしれない。

ところでちょっと話をL1に戻す。先ほどグラフ9~11で、L1におけるLatencyがそれぞれ3.6~3.7cycleとなったが、グラフ25では明確に4cycleとなっている。この違いはどこから来るか、といえばTurbo Boostの有無である。SandraではTurbo Boostを有効にしているから、タイマーが正確に動かない。たとえばCore i7-2700Kなら3.5GHzの定格に併せて時間を計測するが、実際には3.7GHzとか3.8GHzでコアが動いていると、Latencyは相対的に短く計測されることになる。では実際にどの程度の速度で動いていると考えられるか、というとLatencyから想像される実質的な動作速度は、

定格 実質
Core i7-2700K 3.5GHz 3.5×(4÷3.6)=3.888...≒3.9GHz
Core i7-3700K 3.5GHz 3.5×(4÷3.7)=3.784...≒3.8GHz
Core i7-3960X 3.3GHz 3.3×(4÷3.6)=3.666...≒3.7GHz

という計算が成立する。実際にはTurbo Boostは細かく上下する筈だからここまできっちり上がるわけではないだろうが、ことSandraに関して言えばCore i7-2700Kが一番Turboが利きやすく、これが性能の上乗せに繋がっていると考えられる。