R8000は、MIPS Technologies, Inc. (MTI)、東芝、Weitekによって開発されたマイクロプロセッサ チップセットです。[1]これは、 MIPS IV命令セットアーキテクチャの最初の実装でした。R8000は、開発中の名称であるTremendous Floating-Point (TFP)としても知られています。
歴史
R8000 の開発は、1990 年代初頭にSilicon Graphics社 (SGI)で開始されました。R8000 は、ゲートアレイなどの多数の個別コンポーネントから構成される中央処理装置 (CPU) の代わりにマイクロプロセッサを使用して、 1990 年代頃のスーパーコンピュータのパフォーマンスを提供できるように特別に設計されました。当時、従来のスーパーコンピュータのパフォーマンスは、縮小命令セット コンピュータ(RISC) マイクロプロセッサほど急速には進歩していませんでした。RISC マイクロプロセッサは、最終的には、コストとサイズが数分の 1 で、より高価で大規模なスーパーコンピュータのパフォーマンスに匹敵し、このレベルのパフォーマンスを備えたコンピュータがより入手しやすくなり、多くの状況でデスクサイド ワークステーションとサーバーがスーパーコンピュータに取って代わるようになるだろうと予測されていました。
R8000 の最初の詳細は、1992 年 4 月に MIPS Computer Systems が将来の MIPS マイクロプロセッサの詳細を発表した際に明らかになりました。1992 年 3 月、SGI は MIPS Computer Systems を買収すると発表しました。MIPS Computer Systems は 1992 年半ばに SGI の子会社となり、MIPS Technologies, Inc. (MTI) となりました。R8000 の開発は MTI に移管され、そこで継続されました。R8000 は 1993 年に発表される予定でしたが、1994 年半ばまで延期されました。最初の R8000 は 75 MHz の部品で、1994 年 6 月 7 日に発表されました。当時の価格は 2,500 米ドルでした。1995 年半ばには、90 MHz の部品が SGI のシステムに登場しました。 R8000 は高価で市場が狭かった (技術および科学計算) ため、市場シェアが限られていました。対象市場では人気があったものの、1996 年 1 月に発表された、より安価で全般的に性能の優れたR10000に大部分が置き換えられました。
R8000 のユーザーは SGI で、Power Indigo2 ワークステーション、Power Challengeサーバー、Power ChallengeArrayクラスター、Power Onyx視覚化システムで使用されていました。1994 年 11 月のTOP500リストでは、500 のうち 50 のシステムが R8000 を使用していました。R8000 ベースのシステムで最高ランクだったのは、154 位から 157 位の 4 つの Power Challenge でした。それぞれ 18 個の R8000 が搭載されていました。[2] SGI は、浮動小数点スループットが3 億命令/秒、SPECfp92 評価が 310、より控えめな SPECint92 評価が 108 であると主張しました。[3]
説明
チップ セットは、R8000 マイクロプロセッサ、R8010 浮動小数点ユニット、2 つのタグ RAM、およびストリーミング キャッシュで構成されます。R8000 はスーパースカラーであり、1 サイクルあたり最大 4 つの命令を発行でき、プログラム順序で命令を実行します。5 段の整数パイプラインを備えています。
R8000
R8000 はチップ セットを制御し、整数命令を実行しました。これには、整数実行ユニット、整数レジスタ ファイル、プライマリ キャッシュ、命令フェッチ、分岐予測、トランスレーション ルックアサイド バッファ(TLB) 用のハードウェアが含まれていました。
ステージ 1 では、命令キャッシュから 4 つの命令がフェッチされます。命令キャッシュは 16 KB の大きさで、直接マップされ、仮想的にタグ付けされ、仮想的にインデックス付けされ、32 バイトのライン サイズを持ちます。ステージ 2 では命令のデコードとレジスタの読み取りが行われ、分岐命令も解決されるため、1 サイクルの分岐予測ミス ペナルティが発生します。ロード命令とストア命令はステージ 3 で実行を開始し、整数命令はステージ 4 で実行を開始します。整数実行はステージ 4 まで延期され、ロードの結果をオペランドとして使用する整数命令をロード後のサイクルで発行できるようにします。結果はステージ 5 で整数レジスタ ファイルに書き込まれます。
整数レジスタ ファイルには、9 つの読み取りポートと 4 つの書き込みポートがあります。4 つの読み取りポートは、2 つの整数実行ユニットにオペランドを供給します (分岐ユニットは整数ユニットの一部と見なされます)。別の 4 つの読み取りポートは、2 つのアドレス ジェネレータにオペランドを供給します。MIPS IV ISA で追加されたベース (レジスタ) + インデックス (レジスタ) アドレス スタイルのため、2 つではなく 4 つのポートが必要です。R8000 は、1 サイクルあたり最大 1 つの整数ストアを発行し、最後の 1 つの読み取りポートは整数ストア データを提供します。
2 つのレジスタ ファイル書き込みポートは、2 つの整数機能ユニットからの結果を書き込むために使用されます。R8000 はサイクルごとに 2 つの整数ロードを発行し、他の 2 つの書き込みポートは、整数ロードの結果をレジスタ ファイルに書き込むために使用されます。
レベル 1 データ キャッシュは 2 つの冗長アレイとして構成され、各アレイには 1 つの読み取りポートと 1 つの書き込みポートがありました。整数ストアは両方のアレイに書き込まれました。各アレイで 1 つずつ、2 つのロードを並列に処理できました。
整数機能ユニットは、2 つの整数ユニット、シフト ユニット、乗算除算ユニット、および 2 つのアドレス ジェネレータ ユニットで構成されます。乗算命令と除算命令は、パイプライン化されていない乗算除算ユニットで実行されます。その結果、乗算命令のレイテンシは、32 ビット オペランドの場合は 4 サイクル、64 ビットの場合は 6 サイクルになります。除算命令のレイテンシは、結果の有効桁数によって異なり、21 ~ 73 サイクルの範囲になります。
ロードとストア
ロードとストアはステージ 3 で実行を開始します。R8000には、ロードとストアの仮想アドレスを計算するアドレス生成ユニット(AGU) が 2 つあります。ステージ 4 では、仮想アドレスが、384 エントリを含む 3 ウェイ セット アソシエイティブのデュアル ポート TLB によって物理アドレスに変換されます。16 kB のデータ キャッシュは、同じサイクルでアクセスされます。これはデュアル ポートであり、2 つの 64 ビット バスを介してアクセスされます。サイクルごとに 2 つのロード、または 1 つのロードと 1 つのストアを処理できます。キャッシュは、パリティまたはエラー訂正コード(ECC) によって保護されていません。キャッシュ ミスが発生した場合、8 サイクルのペナルティでストリーミング キャッシュからデータをロードする必要があります。キャッシュは、仮想的にインデックス付けされ、物理的にタグ付けされ、直接マップされ、32 バイトのライン サイズを持ち、割り当てプロトコルによるライトスルーを使用します。ロードがデータ キャッシュでヒットした場合、結果はステージ 5 で整数レジスタ ファイルに書き込まれます。
R8010
R8010 は、R8000 の命令キューによって提供される浮動小数点命令を実行しました。キューは、浮動小数点パイプラインを整数パイプラインから分離し、同じグループの整数命令が発行された後または前に可能な場合に浮動小数点命令を実行できるようにすることで、限定的な形式のアウトオブオーダー実行を実装しました。パイプラインが分離されたのは、ストリーミング キャッシュのレイテンシの一部を軽減するためです。
これには、浮動小数点レジスタ ファイル、ロード キュー、ストア キュー、および 2 つの同一の浮動小数点ユニットが含まれています。除算と平方根を除くすべての命令はパイプライン化されています。R8010 は、乗算器をキー部分として使用する反復除算および平方根アルゴリズムを実装しており、操作中はパイプラインをユニットで停止させる必要があります。
比較を除く算術命令のレイテンシは4サイクルです。単精度と倍精度の除算のレイテンシはそれぞれ14サイクルと20サイクルです。 [1]単精度と倍精度の平方根のレイテンシはそれぞれ14サイクルと23サイクルです。[4]
ストリーミングキャッシュとタグRAM
ストリーミング キャッシュは、R8000 の L2 統合キャッシュと R8010 の L1 データ キャッシュとして機能する 1 ~ 16 MB の外部キャッシュです。R8000 と同じクロック レートで動作し、市販の同期スタティック RAM から構築されています。[1]この方式は、データへの頻繁なアクセスを必要とする持続的な浮動小数点パフォーマンスを実現するために使用されました。小さな低レイテンシのプライマリ キャッシュでは十分なデータが含まれず、頻繁にミスが発生するため、パフォーマンスを低下させる長いレイテンシの再ファイルが必要になります。
ストリーミング キャッシュは双方向インターリーブです。独立した 2 つのバンクがあり、それぞれに偶数または奇数アドレスのデータが格納されます。したがって、2 つのアクセスが別々のバンクに対して行われる限り、1 サイクルごとに 2 回の読み取り、2 回の書き込み、または読み取りと書き込みを 1 回ずつ実行できます。[1] [5]各バンクは、2 つの 64 ビット単方向バスを介してアクセスされます。1 つは読み取り用、もう 1 つは書き込み用です。この方式は、双方向バスに必要なバスのターンオーバーを回避するために使用されました。バスのターンオーバーを回避することで、1 つのサイクルでキャッシュを読み取り、次のサイクルで書き込みを行うことができ、ターンオーバーのための介在サイクルがなくなるため、パフォーマンスが向上します。[5]
ストリーミング キャッシュのタグは、各バンクに 1 つずつ、合計 2 つのタグ RAM チップに格納されています。両方のチップには、同一のデータが格納されています。各チップには、4 トランジスタ SRAM セルで実装された 1.189 Mbit のキャッシュ タグが含まれています。チップは、 2 レベルのポリシリコンと 2 レベルのアルミニウム相互接続を備えた 0.7 μm BiCMOSプロセスで実装されています。サイクル タイムを短縮するために、デコーダーとチップの結合センス アンプおよびコンパレーター部分には BiCMOS 回路が使用されています。各タグ RAM は 14.8 mm x 14.8 mm の大きさで、155 ピン CPGA にパッケージ化されており、75 MHz で 3 W を消費します。[6]キャッシュ タグの提供に加えて、タグ RAM は、ストリーミング キャッシュを 4 ウェイ セット アソシエティブにする役割を担っています。ピン数の増加を避けるため、キャッシュ タグは 4 ウェイ セット アソシエティブであり、通常のセット アソシエティブ キャッシュの実装方法ではなく、ルックアップ後にアクセスするセットをロジックで選択します。[1]
ストリーミング キャッシュへのアクセスはパイプライン化されており、レイテンシをいくらか軽減します。パイプラインには 5 つのステージがあります。ステージ 1 では、アドレスがタグ RAM に送信され、ステージ 2 でアクセスされます。ステージ 3 では、タグ RAM からの信号が SSRAM に伝わります。ステージ 4 では、SSRAM にアクセスし、ステージ 5 でデータが R8000 または R8010 に返されます。
物理的な
R8000 には 260 万個のトランジスタが含まれ、サイズは 17.34 mm x 17.30 mm (299.98 mm 2 ) でした。R8010 には 83 万個のトランジスタが含まれていました。合計すると、2 つのチップには 343 万個のトランジスタが含まれていました。どちらも東芝のVHMOSIII プロセス (0.7 μm、3 層金属相補型金属酸化膜半導体(CMOS) プロセス) で製造されました。どちらも 591 ピンのセラミック ピン グリッド アレイ(CPGA) パッケージにパッケージ化されています。どちらのチップも 3.3 V 電源を使用し、R8000 は 75 MHz で 13 W を消費しました。
注記
- ^ abcde スー 1994
- ^ ドンガラ 1994
- ^ ラビン、ポール (1995 年 10 月)。「インディはハリウッドへ行く」。コンピュータ ショッパー。pp. 556–559。
- ^ MIPSテクノロジーズ社、1994年
- ^ MIPS 1994より
- ^ 宇根川 1993
参考文献
- 「多重ディスパッチの命令の整列」。Pountain, Dick 著「The Last Bastion」のサイドバー、Byte、1994 年 8 月。
- ドンガラ、ジャック・J。ハンス・W・マイヤーとエーリッヒ・シュトローマイヤー(1994年11月9日)。TOP500 スーパーコンピュータ サイト。
- Gwennap, Linley (1993 年 2 月 15 日)。「SGI が TFP CPU の概要を提供」。マイクロプロセッサ レポート、第 7 巻、第 2 号。
- Gwennap, Linley (1993 年 8 月 23 日)。「TFP は驚異的な浮動小数点演算を実現するように設計されました」。マイクロプロセッサ レポート、第 7 巻、第 11 号。
- Hsu, Peter Yan-Tek (1994 年 6 月 2 日). R8000 マイクロプロセッサの設計[ permanent dead link ]。
- MIPS Technologies, Inc. (1994 年 8 月)。R8000 マイクロプロセッサ チップ セット製品概要[ permanent dead link ]。
- パウンテン、ディック (1994 年 9 月)。「最後の砦」。Byte。
- Shen, John Paul; Lipasti, Mikko H. (2005). 「現代のプロセッサ設計: スーパースカラー マイクロプロセッサの基礎」 McGraw-Hill Professional. pp. 418–419.
- 宇根川 康雄 他 (1993)。「110MHz / 1Mbit 同期タグ RAM」。VLSI回路シンポジウム。pp. 15–16。
さらに読む
- Ikumi, N. 他 (1994 年 2 月)。「300 MIPS、300 MFLOPS の 4 発行 CMOS スーパースカラ マイクロプロセッサ」。ISSCC技術論文ダイジェスト。
- 畝川 裕也 ほか(1994年4月)。 「110 MHz/1 Mb 同期タグRAM」。IEEE Journal of Solid-State Circuits 29 (4): pp. 403–410。
- VLIW が消滅寸前になった経緯
- Peter Hsu R8000 IEEE Micro 1994 の設計
