MIPSアーキテクチャ
これらの設計にはソフトウェアアーキテクトのアール・キリアンも参加している。彼は後に MIPS III 64ビット命令セットを設計し、R4000のマイクロアーキテクチャ開発にも関わった。
1991年、ミップス・コンピュータシステムズ社は、最初の64ビットマイクロプロセッサR4000をリリースした。R4000は仮想アドレスだけでなく仮想空間IDを格納できる進んだTLBを採用していた。それによって頻繁なコンテキストスイッチの度にTLBをフラッシュする必要性をなくし、他の競合するアーキテクチャ(Pentium、PowerPC、Alpha)に対して劣っていたマイクロカーネル実装時の大きな性能問題を低減させることができた。
しかし、ミップス社は、R4000を市場に提供しようとしたころ、財政危機に陥った。そこで、当時のミップス社の最大の顧客であった米SGI社は、1992年にミップス社を買い取り、これによりMIPSアーキテクチャの存続が保証された。こうしてミップス・コンピュータシステムズ社はSGIの子会社となり、社名もミップス・テクノロジーズと変更された。
しかし、クロック周波数を上げるために一次キャッシュは命令とデータそれぞれ8KBに減らされ、キャッシュアクセスに3サイクルかかるようになった。動作周波数を上げるため、スーパーパイプラインと呼ばれるパイプライン段数を増やす工夫を行っている。改良版のR4400は1993年に登場。一次キャッシュが16KBに倍増され、64ビット関連のバグ(エラッタ)が一掃され、より大きな二次キャッシュをサポートしている。
SGIの一部門となったミップスは外部バスを32ビットに縮小した低価格のR4200を設計し、さらに安価なR4300iのベースとなった。R4300iをベースとしてNECが開発したVR4300はゲーム機のNINTENDO64に採用された。
ミップスの元従業員が創業した Quantum Effect Devices (QED) は、R4600 Orion、R4700 Orion、R4650、R5000を設計した。R4000がクロック周波数を上げるためにキャッシュ容量を犠牲にしたのに対して、QEDは2サイクルでアクセスできる大きなキャッシュを搭載し、シリコンの面積の効率的利用を達成した。R4600とR4700は SGI Indy の低価格版で採用され、シスコのルーター(36x0、7x00など)でもMIPSアーキテクチャとして初めて採用された。R4650はWebTVのセットトップボックスで採用された。R5000は単精度浮動小数点演算性能を向上させており、同クロック周波数のR4400を搭載した同型機(SGI Indy)よりもグラフィックス描画が高速になった。
SGIは同じグラフィックスボードでもR5000向けは名称を変更し、性能が高いことを強調した。QEDはその後、ネットワーク機器やレーザープリンターなどの組み込み市場向けにRM7000とRM9000というファミリーを設計した。RM7000は256KBの二次キャッシュをチップ上に搭載し、三次キャッシュのコントローラも備えていた。RM9xx0はSOCファミリーで、CPUにメモリコントローラ、PCIコントローラ、ギガビット・イーサネットのコントローラ、HyperTransportポートなどの高速I/Oといったノースブリッジ機能を集積している。QEDは2000年8月、半導体企業 PMC-Sierra に買収され、PMC-SierraがMIPSアーキテクチャのプロセッサ開発を継続している。
R8000(1994年)はミップスの設計による初のスーパースケーラ方式で、複数の命令を同時に実行可能となった。ワンチップではなく、CPU+一次キャッシュ(命令・データそれぞれ16KB)、FPU、二次キャッシュのタグRAMチップ×3(2個はキャッシュアクセス用、1つはバススヌープ用)、キャッシュコントローラの6個のチップで構成されている。完全にパイプライン化された加算・乗算ユニットを2つ持ち、外付けの4MBの二次キャッシュからFPUが直接データを取ってくる設計である。SGIの POWER Challenge サーバで採用され、後に POWER Indigo2 ワークステーションでも採用された。
しかし、これらの意見は、この設計における速度向上のポイントが命令の機能にあるのではなく、パイプラインにあるということを無視したものだった。時間のかかる処理にまつわる問題は、ディレイスロットで一応解決された。例えば、2クロックサイクルかかる命令があった場合、次の命令をディレイスロットとし、そこに、前の命令と依存関係の無い、つまり前の命令の結果を必要とせず、かつ前の命令に関わっているレジスタを使用しない命令を配置することで、パイプラインを止めないようにした。これを実現するためには、プロセッサに与える命令列を生成するコンパイラが、あらかじめ各命令ごとのクロックサイクル数を把握して、可能な限りディレイスロットを有効な命令で埋めるようにする必要があった。それでも大部分の命令は1クロックサイクルで実行できた。また、コンパイラ技術の進展はディレイスロットの活用頻度を向上させた。
初期のMIPSと並び、RISCの典型であり代表とされるバークレーRISC(英語版)(SPARCへの影響が大きい)と比べると、サブルーチンコールの扱い方が大きく異なる。バークレーRISCは頻繁に実行され性能への影響が大きいサブルーチンコールの性能向上を図るために、大きなレジスタファイルを持つと同時にレジスタ・ウィンドウというメカニズムを導入したが、それによってサブルーチンコールの入れ子段数が制限されている。サブルーチンコールは、それぞれのルーチンで専用に用いるローカルのレジスタ群を必要とし、その割り当てをハードウェアでサポートするということはチップにさらなるリソースを必要とし、設計も複雑化することを意味する。