実際の並列プロセッサの特徴を知る

- PR -

第2回「現代のプロセッサと並列実行」では、一般的な汎用プロセッサのハードウェア構成について説明しました。

並列ハードウェアは、構成要素のどの部分が並列に動作するように設計されているのかによって分類されており、効果的な並列プログラミングに当たってハードウェアの基礎知識が求められます。

前回、紹介したスーパースカラー、SIMD、マルチコア／マルチプロセッサ、ハードウェアマルチスレッドといった技術が、実際のプロセッサにどのように組み込まれているのか。

今回は、Intel Core i7、Cell Broadband Engine、NVIDIA T10、そして現在開発中のIntel Larrabeeについて見ていきます。

Intel Core i7

まずは、Intel Core i7（以下i7）を見ていきましょう。i7は、前回説明したひととおりの並列ハードウェアを持ったプロセッサであるといえます。以下に各機能を列記します。

スーパースカラー 4つの命令を同時にデコードでき、6つの命令を同時に実行できます SIMD SSE2、SSE3、SSE4.1といった命令が実装されており、4つの単精度浮動小数値を同時に処理できます。また、次の世代のプロセッサはAVXと呼ばれる拡張が行なわれ、8つの単精度浮動小数値を同時に処理できるようになるといわれています マルチコア 4つのコアを持っています。また、i7と同じコアを持ったXeonではNUMAマルチプロセッサに対応しており、メモリアクセスを並列化できます ハードウェアマルチスレッド 1個のコアあたり2つのスレッドを同時実行することができます（IntelではこれをHyper-Threading Technologyと呼んでいます）

また、並列以外の特徴として、WindowsやMac上で動くデスクトップアプリケーションを高速化しなければならないため、ほかのプロセッサと比べて、シングルスレッド性能も強化されているという点があります。

命令レイテンシ（並列実行しない場合の処理時間）はほかのプロセッサと比べるとやや短かめになっていますし、並列実行以外の方法でプログラムを高速化するために、i7で新しく実装されたSSE4.2では文字列処理を高速化するだけの命令が用意されています。

Intel Core i7 エクストリームエディション（



IntelのWebサイト より）