R10000
R10000は4ウェイ・スーパースケーラ設計で、レジスタ・リネーミングとアウト・オブ・オーダー実行機能を実装している。それまでのR4000などのMIPSマイクロプロセッサは単純な設計が多かったが、R10000の設計はそれらとは一線を画すものだった。
R10000は命令キャッシュから1サイクルに4命令をフェッチする。命令をデコードするとその種類によって、整数演算、浮動小数点演算、ロード/ストアそれぞれの命令キューに入れる。デコード部の補助として、命令キャッシュに命令を格納する際に事前に一部デコードし、命令毎に4ビットの情報を付加しており、その命令をどの演算ユニットで実行すればよいかがすぐわかるようになっている。また、命令のフォーマットを再構成してデコード処理を最適化している。
各命令キューはデコーダから最大4命令まで受け付けることができ、ボトルネックにならないようにしている。命令キューは、オペランドやリソースの動的依存関係を考慮して、実行できるものから対応する演算ユニットに命令を発行する。ロード/ストア命令キュー以外は、1サイクルに最大2命令を演算ユニットに対して発行できる。ロード/ストア命令キューは1サイクルに1命令しか発行できない。全体として1サイクルに最大5命令を発行できる。
R18000は、R10000マイクロアーキテクチャのさらなる改良としてSGIが2001年の Hot Chips シンポジウムで発表したが、開発は中止された。SGIのccNUMAサーバやスーパーコンピュータ向けに設計されていた。それらのシステムは1ノードに2個のR18000を密結合型で搭載し、ノード間をハイパーキューブ型ネットワークで相互接続する構成である。
R18000では浮動小数点命令キューを改善し、2つの積和演算ユニットを追加してFLOPS値を4倍にすることを想定していた。システムインタフェースとメモリ階層も大幅に見直される予定だった。仮想アドレスは52ビット、物理アドレスは48ビットとされている。システムバスを2つの一方向DDRリンクに置き換え、アドレスと書き込みには64ビットのリンク、読み取りには128ビットのリンクを使用する。