RightMark Memry Analyzer 3.8
RightMark.org
http://cpu.rightmark.org/
折角なので、少し内部についても確認しておこうと思う。まずはRMMTを使ってのメモリアクセスである。グラフ28がRead、グラフ29がWriteである。どちらも10MB/Threadで測定を行っている。
結果はというとご覧の通り、Lynnfieldの結果は綺麗にNehalemの結果と重なっており、殆ど差が見られない。Readに関しては、純粋にピーク値で言えば、やはりCore i7-9xxシリーズの性能は高く、19.5GB/sec近くに達しており、18.5GB/sec程度のLynnfieldと明確な差があるが、これはあくまでHyper-Threadingが無効な場合。有効な場合はほぼ18GB/sec前後で飽和しており、この点では殆ど差が無いといえる。これはWriteについても同じで、2Threadあたりにピークがあり、ここでは多少ばらけるものの、最終的には8GB/secあたりで収束するという綺麗なグラフになっており、もはやNehalemもLynnfieldも一緒になってしまっている。どちらのケースでも、同じDDR3-1333を2ch接続するPhenom II X4が健闘はしているが、今一歩及ばないといったスコアになっているのも興味深い。ことメモリコントローラの出来栄え、という観点ではLynnfieldのそれは良く出来ていると思う(単にメモリコントローラだけの問題ではないのだろうが)。
さて、次はRMMAを使っての内部確認だが、その前に一つ読者の皆様にお詫びと訂正を。以前このあたりで、「Nehalemは内部が最大18Bytes/cycleに設定されている」旨を紹介したが、あれは大嘘でした。謹んでお詫びすると共に、最大16Bytes/cycleですと訂正いたします。
なんでこれが判ったかというと、今回Core i7-870で最大19Bytes/cycle超という結果が出てきてしまったから。幾らなんでもこれはおかしすぎる。しばらく理由を考えていて、ハタと気がついたのがTurbo Boostである。RMMAの場合、起動時にまずシステムの速度をタイマーを使って測定し、以後はその測定値を使ってスコアの算出を行うわけだが、ここにTurbo Boostが絡んでくると、
(1) RMMA起動時に周波数測定←ここではタイマー待ちなので、Turbo Boost動かず
(2) Bandwidth測定←ここは1コアがフル稼働するので、Turbo Boostが5bin upする
ということになる。だから、例えばCore i7-870ならばタイマー測定時は2.93GHz、Bandwidth測定時は最大3.60GHzで動作するわけで、ここで16Bytes/cycleで転送を行った場合、RMMAは、
16×(3.60÷2.93)≒19.66Bytes/cycle
なるスコアをレポートすることになる。これを避けるためには、BIOS SetupでTurbo Boostそのものを無効にしなければならない。実際、Core i5-750を使い、Turbo Boostを有効にした場合と無効にした場合でRMMAのD-Cache/RAM Bandwidthを計測した結果がグラフ30である。本来16Bytes/cycleだったのが、動作周波数の差で下駄が履かされてしまった形になる。そんなわけで、以前のレポートは大嘘でした。申し訳ありません。
ということで気を取り直して一応確認。Core 2 QX9770とCore i5-750、Core i7-870とCore i7-975、及びPhenom II X4 975という5つの製品について、D-Cache/RAM BandwidthとD-Cache/RAM Latencyを測定した結果がグラフ31~37となる。
メモリアクセスの部分では多少ばらつきがあるが、それ以外の部分でCore i5/i7はほぼ完全にグラフが一致しており、そういう意味ではNehalem→Lynnfieldで特に何かを変えたといった事はないと判断される。