明示的並列命令コンピューティング( EPIC ) は、1997 年にHP-Intel アライアンス[1]によって造られた用語であり、研究者が 1980 年代初頭から研究してきたコンピューティング パラダイムを表します。 [2]このパラダイムは独立アーキテクチャとも呼ばれます。これは、IntelとHP によるIntel Itaniumアーキテクチャの開発の基礎となり、[3] HPは後に、「EPIC」は Itanium アーキテクチャの古い用語に過ぎないと主張しました。[4] EPIC により、マイクロプロセッサは、複雑なオンダイ回路ではなくコンパイラを使用して並列命令実行を制御することで、ソフトウェア命令を並列に実行できます。これは、より高いクロック周波数に頼ることなく、単純なパフォーマンス スケーリングを可能にすることを目的としていました。
VLIWのルーツ
1989年までに、HPの研究者は、縮小命令セットコンピュータ(RISC)アーキテクチャが1サイクルあたり1命令の限界に達していることを認識しました。[説明が必要]彼らは、後にEPICと名付けられた新しいアーキテクチャの研究を始めました。[3]研究の基礎となったのは、すべての命令に複数の操作がエンコードされ、複数の実行ユニットによって処理される VLIWでした。
EPIC の目標の 1 つは、命令スケジューリングの複雑さを CPU ハードウェアからソフトウェアコンパイラに移すことでした。ソフトウェア コンパイラは、トレース フィードバック情報を利用して命令スケジューリングを静的に実行できます。これにより、CPU の複雑なスケジューリング回路が不要になり、追加の実行リソースなど、他の機能にスペースと電力を充てることができます。同様に重要な目標は、コンパイラを使用して並列実行の追加のチャンスを見つけて活用することで、命令レベルの並列処理( ILP ) をさらに活用することでした。
VLIW (少なくとも元の形式) には、主流になることを妨げたいくつかの欠点があります。
- VLIW命令セットは、実装間で下位互換性がありません。より幅広い実装 (より多くの実行ユニット) が構築されると、より幅広いマシンの命令セットは、より古く、より狭い実装との下位互換性がなくなります。
- CPU キャッシュとDRAM を含むメモリ階層からのロード応答には、確定的な遅延がありません。[なぜ? ]これにより、コンパイラによるロード命令の静的スケジューリングが非常に困難になります。
EPIC アーキテクチャは VLIW アーキテクチャから進化しましたが、スーパースカラーアーキテクチャの多くの概念を保持しています。
VLIWを超えて
EPICアーキテクチャは、VLIW の欠点を回避するためにいくつかの機能を追加します。
- 複数のソフトウェア命令の各グループは、バンドルと呼ばれます。各バンドルには、この一連の操作が後続のバンドルによって依存されているかどうかを示すストップ ビットがあります。この機能により、将来の実装では複数のバンドルを並列に発行するように構築できます。依存関係情報はコンパイラによって計算されるため、ハードウェアはオペランドの依存関係チェックを実行する必要がありません。
- ソフトウェア プリフェッチ命令は、データ プリフェッチの一種として使用されます。このプリフェッチにより、ロード時のキャッシュ ヒットの可能性が高まり、キャッシュのさまざまなレベルで必要な時間的局所性の程度を示すことができます。
- 投機的ロード命令は、データが使用されるかどうか (制御の依存関係をバイパス)、またはデータが使用される前に変更されるかどうか (データの依存関係をバイパス) が判明する前に、データを投機的にロードするために使用されます。
- チェック ロード命令は、投機的ロードが後のストアに依存していたかどうか、したがって再ロードする必要があるかどうかをチェックすることで、投機的ロードを支援します。
EPICアーキテクチャには、ILP を向上させるためのさまざまなアーキテクチャ コンセプトも含まれています。
- 述語実行は、分岐の発生を減らし、命令の投機的実行を増やすために使用されます。この機能では、分岐条件が述語レジスタに変換され、分岐が実行されなかった側から実行された命令の結果を破棄するために使用されます。
- 遅延例外は、汎用レジスタ内のゼロビットを使用して、起こりうる例外を超えた投機的実行を可能にします。
- 非常に大きなアーキテクチャレジスタ ファイルにより、レジスタ名の変更が不要になります。
- 多方向分岐命令は、多くの代替分岐を 1 つのバンドルに組み合わせることで分岐予測を改善します。
Itaniumアーキテクチャでは、レジスタを手動で展開して名前を変更する必要がないため、ソフトウェアのパイプライン処理に役立つツールであるローテーション レジスタ ファイルも追加されました。
その他の研究開発
Itanium アーキテクチャの開発に直接関係のない EPIC アーキテクチャに関する他の調査も行われています。
- ウェンメイ・フー氏が率いるイリノイ大学アーバナ・シャンペーン校のIMPACTプロジェクトは、このテーマに関する非常に影響力のある研究の源となった。
- HP-labs の PlayDoh アーキテクチャは、もう 1 つの主要な研究プロジェクトでした。
- Gelato は、学術研究者と商業研究者が Itanium サーバー上で実行される Linux アプリケーション用のより効果的なコンパイラーの開発に取り組んだオープン ソース開発コミュニティでした。
参照
- 複合命令セットコンピュータ(CISC)
- 縮小命令セットコンピュータ(RISC)
- 最小命令セットコンピュータ(MISC)
- 非常に長い命令語(VLIW)
- コンピュータアーキテクチャ
- スーパースカラー
- ワイドイシュー
参考文献
- ^ Schlansker および Rau (2000 年 2 月)。「EPIC: 命令レベル並列プロセッサのアーキテクチャ」(PDF)。HP Laboratories Palo Alto、HPL-1999-111。2008年 5 月 8 日閲覧。
- ^ US 4847755、Morrison, Gordon E.、Brooks, Christopher B.、Gluck, Frederick G.、「自然な同時実行性を持つ低レベル命令を並列処理することによって処理のスループットを向上させる並列処理方法および装置」、1989 年 7 月 11 日発行、MCC Development Ltd. に譲渡。
- ^ ab 「Itanium の発明: HPラボが次世代チップ アーキテクチャの作成にどのように貢献したか」。HPラボ。2001 年 6 月。2012 年 3 月 4 日時点のオリジナルよりアーカイブ。2007年 12 月 14 日閲覧。
- ^ De Gelas, Johan (2005 年 11 月 9 日)。「Itanium – トンネルの終わりに光はあるか?」AnandTech。2008年 5 月 8 日閲覧。
外部リンク
- EPICの歴史的背景
- Mark Smotherman (2002)「EPIC アーキテクチャと実装の理解」
