Woodcrest と Dempsey の違いとして忘れてはならないのがマイクロアーキテクチャーの違いである。前回、冒頭で触れたとおり、インテル Core マイクロアーキテクチャーでは、プリフェッチからリタイアメントに至るパスが約 33 % 拡大されている。そのため Intel NetBurst マイクロアーキテクチャーでは、最大 3 つだった μOP (マイクロオペレーション) の同時処理数は、インテル Core マイクロアーキテクチャーでは 4 つになった。因みに Dempsey には、ハイパー・スレッディング (HT) テクノロジーがある。しかし、これは余った実行リソースを利用することで‘複数スレッド’の並列実行を実現する技術であり、コアの物理的なリソースが拡大されているわけではないので、同時に処理できる命令の最大数 (3 命令) が増えるわけではない。
また、デコード処理のアプローチも異なっている。Intel NetBurst マイクロアーキテクチャーでは、デコード後の μOP を格納する実行トレース・キャッシュと、デコード済み μOP が書き込まれたマイクロ・コード ROM により、1 つの x86 命令を「見かけ上」 1 クロックでデコードする。一方のインテル Core マイクロアーキテクチャーでは、x86 命令と、デコード後の μOP がほぼ「1 対 1」になるように設計されている。そのため、毎回素直にデコードしても 1 クロックで済む (※マイクロ・コード ROM はインテル Core マイクロアーキテクチャーにもある)。加えて、“マクロフュージョン”により、組み合わせて使う頻度が高い x86 命令のペアを 1 つの μOP として表現されるため、場合によっては 4 つのデコード・ユニットで 5 つの x86 命令が処理されることもある。
ほとんどの場合、1 つの x86 命令が 1 クロックで 1 つの μOP に変換される。マクロフュージョンにより、場合によっては 5 つの x86 命令が命令キューからデコード・ユニットに送られることもある。そのため Intel NetBurst マイクロアーキテクチャーにあった「実行トレース・キャッシュ」のような仕掛けは無い。因みに Woodcrest の共有 L2 キャッシュは 4 MB。 (出典) IDF Japan 2006 におけるベンソン・インクリー氏の講演より。
少々乱暴な計算だが、キャッシュ・ミスや分岐予測ミスなどが一切発生せず、デコード処理もすべて 1 クロックで完了するという、(虫のいい)状態を想定した場合、Dempsey が 1 秒間に処理できる命令数は「3.73 (GHz) × 3 (命令) × 2 (コア)」で約 22×109 命令、一方の Woodcrest では「3.0 (GHz) ×4 (命令) ×2 (コア)」で約 24×109 命令、その差は 2×109 (20億) 命令となる。クロックばかりに目を奪われているとわからないが、実は、同時に処理できる命令数を 1 つ増やすだけでも、GHz (ギガヘルツ) という世界では意外と侮れない効果があることがわかる。
現実にはこれほどの差にならないにしても、実際のベンチマークで Woodcrest が、クロックの差を凌駕するパフォーマンスを発揮しているのは、やはり、こうした並列処理性能の違いによるところも大きいだろう。
次回もマイクロアーキテクチャーの違いがパフォーマンスに及ぼす影響を見ていく。
富士通 PRIMERGY BX920 S2 2010/06/08 UP
富士通 PRIMERGY RX200 S6 2010/06/08 UP
富士通 PRIMERGY RX600 S5 2010/06/08 UP
日本コンピューティングシステム Type 4U-XVEQ 2010/06/08 UP
日本電気 Express5800/R110b-1 2010/02/01 UP
デル Dell Vostro 3400 2010/04/02 UP
デル Dell Vostro 3500 2010/04/02 UP
デル Dell Vostro 3700 2010/04/02 UP
デル Dell Vostro 3300 2010/04/02 UP
日本ヒューレット・パッカード HP Compaq 8000 Elite MT/CT 2010/02/18 UP