R3000は PlayStationを支えたRISCプロセッサ

1988年出荷開始
R3000
R3000
R3000 は、MIPS Computer Systems が1988年(昭和63年)6月に発表した32ビットRISCマイクロプロセッサである。前身R2000 の後継として、ワークステーションから組み込み機器まで幅広く採用され、とくにソニーの「NEWS」や家庭用ゲーム機「PlayStation」のCPUとして広く知られる。

目次

MIPSの開発経緯

R3000のダイ写真
R3000のダイ写真
スタンフォード大学ジョン・ヘネシー は1981年(昭和56年)、後にRISCの潮流を作る「MIPS」プロジェクトを開始した。1984年(昭和59年)にはMIPS Computer Systems を設立し、1986年(昭和61年)に最初の製品R2000 を出荷。1988年(昭和63年)6月にはその後継となるR3000 を発表した。
R3000 は1.2μmのCMOSプロセスで製造され、チップ面積56mm2に約11万5千個のトランジスタを集積した。動作周波数は20~40MHzで、実際には30MHzや33MHzでの使用が多かった。浮動小数点演算ユニット(FPU)はR3010 という別チップで用意され、密結合して使用された。
MIPS Computer Systemsは自社工場を持たないファブレス 企業であり、設計に専念してR3000の量産はIDTLSI LogicNEC東芝 など複数の半導体メーカーに委託した。各社が独自の改良を加えたため、同じ「R3000」でも製造元によって細部の仕様が異なった。

アーキテクチャの特徴

R3000のレジスタ構成
R3000のレジスタ構成
R3000 は32ビット汎用レジスタを32本備え、演算はすべてレジスタ間で行い、メモリとのやり取りをロード・ストア命令に限定する「ロード・ストア型アーキテクチャ」を採用した。命令長は32ビット固定で、フェッチとデコードが単純化されている。
R3000 のパイプラインは、命令フェッチ(IF)→レジスタ読み出し(RD)→ALU演算・アドレス計算(ALU)→メモリアクセス(MEM)→レジスタ書き込み(WB)の5段で構成される。5個の命令が同時に異なる段階で処理されるため、理想的には1クロックにつき1命令が完了する。
32本の汎用レジスタの役割は、ハードウェアが強制するものではなく、MIPS社が提供するコンパイラ やアセンブラなどのソフトウェアツール群が呼出規約として定めたものである。ほとんどの開発者がこの規約に従ったため、事実上の標準として扱われた。

汎用レジスタの用途

名称 番号 用途
$zero$0常に0(読み出し専用)
$at$1アセンブラが一時的に使用
$v0~$v1$2~$3関数の戻り値
$a0~$a3$4~$7関数への引数
$t0~$t7$8~$15一時変数(呼び出し先が保存不要)
$s0~$s7$16~$23一時変数(呼び出し先が保存必須)
$t8~$t9$24~$25一時変数(呼び出し先が保存不要)
$k0~$k1$26~$27OSカーネル専用
$gp$28グローバルポインタ
$sp$29スタックポインタ
$fp$30フレームポインタ
$ra$31リターンアドレス
メモリ管理ユニット(MMU)と例外処理を担うコプロセッサCP0を内蔵し、64エントリのTLBで仮想アドレス変換を行った。コプロセッサは最大4基まで接続可能で、CP1にはFPUR3010 を割り当てた。この空きコプロセッサ領域が、後にPlayStationのGTE実装に活用されることになる。

RISCとCISCの違い

CISC(Complex Instruction Set Computer)は、1個の命令で複雑な処理を行える代わりに命令の種類が多く、解読(デコード)に時間がかかる設計思想である。代表例はインテルの808680286 である。
対してRISC(Reduced Instruction Set Computer)は、命令を単純化・固定長化し、演算をレジスタ間に限定することでパイプライン処理を効率化する設計思想である。R3000 はこの思想を徹底し、1命令1サイクルに近い実行効率を実現した点が高く評価された。
性能面でも差は明白だった。同時期のインテル製80386 は25MHz動作時で約7MIPSにとどまり、1命令の実行に平均4.4クロックを要した。一方、同じ25MHzのR3000 は約20MIPSを記録し、クロックあたりの処理効率でおよそ3倍の差があった。

ソニーNEWSワークステーションへの採用

ソニー NEWSワークステーション
ソニー NEWSワークステーション
ソニーのUNIXワークステーション「NEWS」は、当初モトローラの68020・68030を2基搭載していたが、1990年代に入るとMIPSアーキテクチャへ移行した。1991年(平成3年)発売のNWS-3860は R3000 を、可搬型のNWS-3250はR3000とFPU R3010 を組み合わせて搭載した。

ワークステーション市場では、サン・マイクロシステムズのSPARC やヒューレット・パッカードのPA-RISC などRISC陣営との競争が激しかった。ソニーは複数の半導体メーカーがセカンドソース生産するR3000 を採用することで、供給の安定と価格競争力を確保した。NEWSはその後、R4000系へと移行していく。

PlayStationへの採用とソニーとの関係

PlayStation
PlayStation
1994年(平成6年)12月3日、ソニー・コンピュータエンタテインメントは家庭用ゲーム機「PlayStation」を発売した。CPUにはLSI Logic 社が製造したR3000A ベースのカスタムチップ(33.8688MHz)を採用し、リアルタイム3D描画を実現した。

設計上は未使用だったコプロセッサ領域CP2には、ベクトル演算ユニット「ジオメトリエンジン(GTE)」を割り当て、3D座標変換を高速化した。ワークステーション向けNEWSで培われたMIPSアーキテクチャの知見が、家庭用ゲーム機にも生かされた形である。
PlayStationのメイン基板
PlayStationのメイン基板
① CD-ROMコントローラ/SONY CXD2516Q
② CD DSP/SONY CDX1199BQ
③ SPU(Sound Processing Unit)/SONY CXD2922Q
④ 4Mbit DRAMサウンドメモリ/TOSHIBA TC51V4260BJ-80
⑤ Audio DAC/旭化成 AK4309AVM
⑥ 4Mbit BIOS ROM/Ricoh RS534340F
⑦ Video DAC/SONY CXD2923AR
⑧ 4Mb SGRAM/Samsung KM4216V256G-60×2
⑨ GPU/SONY CXD8514Q
⑩ CPU/SONY CXD8530AQ
⑪ 4Mb EDO DRAM/Samsung KM48V5148J-6×4
1994年(平成6年)末から始まった家庭用ゲーム機の32ビット戦争では、ARM 系CPUを採用した3DO や、日立製SH-2 を2基搭載したセガサターン が競合した。R3000A とGTEを組み合わせた実効ポリゴン描画性能は、サターンの公称約90万ポリゴン/秒に対しPlayStationは約150万ポリゴン/秒とされ、優位に立った。3DOはテクスチャマッピングにも難があり、性能面で見劣りした。

仕事で NEWS を使っており、その後に PlayStation を購入したのだが、互換チップとはいえ、こんなに早いタイミングでワークステーション用CPUが自宅に来るとは思わなかった。

1996年(平成8年)発売のNINTENDO64 は、理論値でR3000Aの約4倍にあたるR4300i(93.75MHz、64ビット)を採用し、単純な演算性能ではPlayStationを大きく上回った。しかし、メモリバス幅の狭さとテクスチャキャッシュの小ささが足かせとなり、実際のゲーム画面ではその性能を十分に発揮できなかった。

CD-ROMによる低コストなソフト供給と、実用上十分な3D性能を両立させたPlayStationは、1996年度時点で国内出荷台数がセガサターンを約180万台上回るなど、次世代ゲーム機戦争における最終的な勝者となった。

2000年(平成12年)発売の後継機PlayStation 2でも、R3000A は初代機との互換性を保つための入出力プロセッサ(IOP)として引き続き採用された。メインCPUは新開発の「Emotion Engine」に置き換わったが、R3000 系の設計はソニーのゲーム機の中に長く残ることになった。

海外ワークステーションへの採用

シリコングラフィックス Indigo
シリコングラフィックス Indigo
R3000 は、シリコングラフィックス のProfessional IRIS・Personal IRIS・Indigoをはじめ、DEC のDECstation・DECsystem、日本電気 のEWS4800・UP4800、タンデムコンピューターズのCyclone/Rなど、内外の主要ワークステーション・サーバーに広く採用された。
R3000 搭載機の一部では、マイクロソフトのWindows NT も動作した。Windows NT 3.1の初期ビルドはMIPS Magnum R3000上での動作が確認されており、後継のR4000 世代では正式にサポートされた。ただし、MIPSアーキテクチャへの対応はWindows NT 4.0を最後に打ち切られている。

アーケード・組み込みでの採用

コナミ System 573基板
コナミ System 573基板
アーケード分野では、コナミの音楽ゲーム基板「System 573」がR3000A を採用した。組み込み分野でも、東芝のマイクロコントローラTX3900 やIDTの「RISController」シリーズなど、低コスト機器向けの派生品が数多く開発された。

宇宙用途にも派生品が使われ、放射線耐性を高めたMongoose-V(12MHz)は、冥王星探査機「ニュー・ホライズンズ」の制御用CPUに採用された。ワークステーションからゲーム機、探査機まで、R3000 の設計は幅広い分野に浸透した。

後継・派生

MIPS R4000
MIPS R4000
1989年(昭和64年)には改良版のR3000A が登場し、20~40MHzで動作した。1991年(平成3年)、MIPSは64ビット化したR4000(MIPS III)を発表し、シリコングラフィックス のワークステーションなどに採用が進んだ。以降もR4400・R4600・R10000とMIPSアーキテクチャは進化を続けた。

現在のMIPS

開発元のMIPS Computer Systemsは1992年(平成4年)にシリコングラフィックス に買収され、1998年(平成10年)にMIPS Technologies として独立した。2013年(平成25年)には英Imagination Technologies の傘下に入り、その後Tallwood Venture Capitalやウェーブ・コンピューティングへと所有者が変遷した。
2020年(令和2年)、経営破綻したウェーブ・コンピューティングの技術を継承する形でMIPS社が再出発したが、この際MIPSアーキテクチャ自体の開発は終了し、RISC-V ベースの製品開発へ方針転換した。そして2025年(令和7年)8月、半導体受託製造大手のGlobalFoundries がMIPSを買収し、傘下の一事業として設計・ライセンス事業を続けている。

主要スペック

項目 仕様
メーカー MIPS Computer Systems
発表 1988年6月
製造プロセス 1.2μm CMOS
トランジスタ数 約115,000
チップ面積 56mm2
データ幅 32ビット
汎用レジスタ 32ビット×32本
パイプライン 5段
外部キャッシュ 命令・データ各最大256KB
CPUクロック 20~40MHz(主に30/33MHz)
コプロセッサ 最大4基(MMU/FPUなど)
動作電圧 5V単一

CPUの歴史

発表年 メーカー CPU名 ビット数 最大クロック
1970年Garrett
AiResearch
MP944 (軍用)20bit375KHz
1971年インテル40044bit750KHz
1974年インテル80808bit3.125MHz
1975年モステクノロジーMOS 65028bit3MHz
1976年ザイログZ808bit20MHz
1978年インテル808616bit10MHz
1979年モトローラMC68098bit2MHz
1979年ザイログZ800016bit10MHz
1980年モトローラMC6800016bit20MHz
1983年NECV3016bit16MHz
1984年インテル8028616bit12MHz
1985年インテル8038632bit40MHz
1985年インテルi96032bit100MHz
1985年サン・マイクロシステムズSPARC32bit150MHz
1985年エイコーンARM132bit6MHz
1986年MIPSR200032bit15MHz
1987年ザイログZ28016bit12MHz
1987年モトローラMC6803032bit50MHz
1988年MIPSR300032bit40MHz
1989年インテル8048632bit100MHz
1989年インテルi86032bit50MHz
1990年モトローラMC6804032bit40MHz
1991年MIPSR400064bit200MHz
1992年DECAlpha 2106464bit200MHz
1993年IBM, モトローラ, ApplePowerPC 60132bit120MHz
1993年インテルPentium32bit300MHz
1994年IBM, モトローラ, ApplePowerPC 60332bit300MHz
1995年サイリックスCyrix Cx5x8632bit133MHz
1995年AMDAm5x8632bit160MHz
1995年サン・マイクロシステムズUltraSPARC64bit200MHz
1999年IBM, モトローラPowerPC G432bit1.67GHz
1999年AMDAthlon32bit2.33GHz
2000年インテルPentium 432bit3.8GHz
2001年インテルItanium64bit800MHz
2003年AMDOpteron64bit3.5GHz
2003年インテルPentium M32bit2.26GHz
2006年SCE,ソニー,IBM,東芝Cell64bit3.2GHz
2006年インテルCore Duo32bit2.33GHz
2006年インテルCore 2 Duo64bit3.33GHz
2008年インテルCore i9/i7/i5/i364bit5.8GHz
2017年AMDRyzen64bit5.7GHz
2020年AppleM1/M2/M3/M4/M564bit3.49GHz
2023年インテルCore Ultra 9 / 7 / 564bit5.1GHz

参考サイト

(この項おわり)
header