MIPSアーキテクチャ
MIPSアーキテクチャの最新ニュースをまとめて検索!
MIPSアーキテクチャはミップス・コンピュータシステムズおよびミップス・テクノロジーズが開発したRISCマイクロプロセッサのアーキテクチャである。
目次 |
[編集] 概要
MIPSは、Microprocessor without Interlocked Pipeline Stages(パイプラインステージがインターロックされないマイクロプロセッサ)の略であり、その設計思想を端的に表している。
MIPSのデザインはSGIのコンピュータ製品群に使われていた。日本では、ソニーのNEWSや日本電気(NEC)のEWS4800で使われた。また、DECはごく短期間だけMIPSを使ったワークステーションを製品化していたが、R4000が登場するころに自社製RISCマイクロプロセッサAlphaを完成させ、Alphaに移行した。 また、機器組み込み分野で成功し、Windows CE製品、シスコシステムズのルーター、プリンタのエンジンなどに使われた。 ゲーム機分野でも成功を収め、NINTENDO64、ソニーのプレイステーション、プレイステーション2、プレイステーション・ポータブルでもMIPSアーキテクチャのプロセッサが使われた。 1999年ごろ、RISCマイクロプロセッサの出荷個数ベースで3分の1がMIPSアーキテクチャのチップだった。
初期のMIPSアーキテクチャは32ビットの実装(32ビット幅のレジスタとデータパスを持つ)だったが、後に64ビット実装も実現している。 MIPSアーキテクチャには5段階の下位互換のあるアーキテクチャが存在する。それぞれ、MIPS I、MIPS II、MIPS III、MIPS IV、MIPS 32/64と称する。 最も新しいMIPS 32/64では命令セットだけでなく制御レジスタについても定義している。 いくつかのアドオン拡張も用意されている。例えば、MIPS-3Dは一般的な3Dタスクのための簡単な浮動小数点SIMD命令のセットである。MDMXは64bit浮動小数点レジスタを使用した複雑な整数SIMD命令セットである。MIPS16は命令列を圧縮してプログラム格納域を小さくするための拡張である(ARMアーキテクチャのThumbエンコーディングに対抗したもの)。MIPS MTはインテルのハイパースレッディング・テクノロジーに対応した新しいマルチスレッドのための拡張である。
命令セットが非常にきれいなので、アメリカ合衆国ではコンピュータ・アーキテクチャを学校で教えるときに教材としてMIPSアーキテクチャを使うことが多い。 MIPS CPUファミリのデザインは、もうひとつの初期からのRISCアーキテクチャであるSPARCと共に、後発のRISC(例えばDEC Alpha)の設計に影響を及ぼした。 また、高速化のためのキャッシュやパイプラインの設計手法はRISCに止まらずあらゆるコンピュータに影響を与えたと言っても過言ではない。
[編集] 歴史
1981年、スタンフォード大学のジョン・L・ヘネシー(現学長)率いるチームは後に最初のMIPSプロセッサを生むプロジェクトを開始した。基本コンセプトは、命令パイプラインを深くすることで劇的に性能を向上させることである。この手法はよく知られていたが、実装するのは困難だった。一般に、パイプラインはひとつの命令の実行過程を分割し、各段階を並行して動作可能にして前の命令の実行が完全に終わる前に次の命令の第一ステップを開始するといった形で命令の並列実行を可能にするものである。それに対して従来の設計では、前の命令の実行が終わらなければ次の命令の処理は開始できず、CPUの大部分は暇な状態になっていた。
パイプラインを実現する上での大きな障害は、命令の処理が完了するのに複数クロックサイクルかかる場合にパイプラインをインターロックして次の命令がステップを進まないように止めなければならないことだった。 インターロックがかかるだけでパイプラインのセッティングには多大な時間がかかり、性能向上はおぼつかないと考えられていた。MIPSの設計上の重要なポイントとして、すべての命令の本体処理が1クロックサイクルで完了するようにすることが挙げられた。そうすれば、インターロックの必要性を無くすことができる。
このような設計にすることで掛け算や割り算などの有用な命令がいくつか実装できなくなるが、チップを高速なクロックで動作させることで全体の性能が向上すると予想された。ロックをかける回路を付加すると回路が増えてダイサイズ(チップの面積)が増え、クロックを上げることが困難になるため、クロックの高速化のためにはインターロックを排除することは必須だった。
それらの命令の排除は議論の中心になった。「複雑な掛け算を単純な多くの足し算にして、どうして速度が向上するのか?」と、多くの人がこの設計手法、そしてRISC一般の謳い文句は誇大広告だと言った。このような過度の単純化はこの設計における速度向上のポイントが命令にあるのではなくパイプラインにあるということを無視したものだった。解決のポイントはディレイスロットの導入にあった。例えば、2クロックサイクルかかる命令があった場合、次の命令をディレイスロットとし、前の命令が完了していないことを前提として全く関係のない、つまり前の命令の結果を必要としない、かつ前の命令に関わっているレジスタを使用しない命令を置くことでパイプラインを止めないようにした。これを実現するためには、コンパイラが各命令にかかるクロックサイクルを把握して、可能な限りディレイスロットを有効な命令で埋めるようにする必要があった。といっても大部分の命令は1クロックサイクルで実行できた。また、コンパイラ技術の進展はこれを可能にした。
1984年、ヘネシーは将来商業レベルとなる可能性のあるデザインを確立し、教え子、友人らとミップス・コンピュータシステムズを設立する。彼らは1985年、最初のデザインであるR2000を完成させ、1988年にそれを進化させたR3000を完成させた。これらの32ビットCPUによってミップス・コンピュータシステムズは1980年代に基盤を築くことが出来た。これらの商用デザインはスタンフォード大学での学術研究的なものとは方針を変更し、ハードウェアにインターロック機構を装備し、掛け算も割り算もサポートしていた。単にひとつのプログラムを実行するだけなら上述のディレイスロットの考え方で何とかなるが、商用としてはマルチタスクや割り込みへの対応は必須であり、インターロック機構の付加は必然だった。また、半導体プロセス技術の急速な進歩がそれを可能にしていった。インターロック機構を備えたとしても、インターロックをなるべく発生させないコンパイラ技術は高速化に必須である。これらのプロセッサはSGI、DEC DECstation、ソニー NEWS、NEC EWS4800などに使われた。
1991年、ミップス・コンピュータシステムズは最初の64ビットマイクロプロセッサR4000をリリースする。 このデザインは当時のミップス・コンピュータシステムズの最大の顧客であるSGIにとって非常に重要だったため、1992年にミップス・コンピュータシステムズが資金繰りに行き詰まると即座にSGIが会社を買い取って、MIPSアーキテクチャが存続することを保証した。こうしてミップス・コンピュータシステムズはSGIの子会社となり、社名もミップス・テクノロジーズと変更された。
1990年初頭、ミップス・テクノロジーズはデザインをサードパーティーにライセンス供与しはじめた。コアの単純さのため、この方針は成功を収め、従来は同等のゲート数と価格のCISCプロセッサが占めていた様々な分野でMIPSコアが使われるようになった。ゲート数と価格は密接な関係があり、CPUの価格はゲート数とピン数でほぼ決まっていた。サン・マイクロシステムズも追随してSPARCコアのライセンス供与を開始したが、成功したとは言い難い。1990年代後半にはMIPSは機器組み込み用プロセッサ分野の勝者となっていた。1997年、4800万個目のMIPSベースのチップが出荷され、MIPS CPUファミリはモトローラの68000ファミリを出荷個数で抜いた。この成功により、SGIはミップス・テクノロジーズを1998年にスピンオフさせた。ミップス・テクノロジーズの収入の半分はライセンス料であり、残りはサードパーティーが生産するコアの設計から来ている。
1999年、ミップス・テクノロジーズはライセンス体系を整理し、32ビットのMIPS32と64ビットのMIPS64に分けた。このアナウンスと同時に、NEC、東芝、SiByte(後にブロードコムが買収)がMIPS64のライセンス供与を受けた。フィリップス、LSIロジック、IDTもすでに参加している。成功に成功が続き、MIPSはコンピュータに近い機器(ハンドヘルドコンピュータやセットトップボックスなど)の市場で最も使われているヘビー級CPUコアとなっている。この成功の証拠として、モトローラは自身のセットトップボックスにPowerPCではなくMIPSコアを使っている。
MIPSアーキテクチャはライセンス供与を受けることが出来るため、いくつかのベンチャー企業も参入してきた。最初にMIPSプロセッサを設計したベンチャー企業はQuantum Effect Devicesだった。MIPS社でR4300を設計したチームはSandCraft社を設立し、NEC向けにR5432を設計し、後にSR7100を作った。これは、組み込み分野向けの最初のアウト・オブ・オーダー実行プロセッサである。DECで最初にStrongARMを設計したチームはふたつのMIPS関連ベンチャーを設立した。ひとつはSiByteでSB-1250というMIPSベースで最初のSystem-on-a-chip (SOC) を実現した製品を作った。もうひとつのAlchemy SemiconductorはAu-1000という低電力のSOCを作った。SiByteはブロードコムに買収された。AlchemyはAMDに買収されたが、後にAMDはAlchemyをRaza Microelectronics (RMI) に売却した。LexraはMIPSに似たアーキテクチャをベースにDSP機能を付加したチップをオーディオ機器市場向けに、マルチスレッド機能を付加したチップをネットワーク機器市場向けに出している。LexraはMIPSからライセンス供与を受けていなかったため、MIPSとの間で2件の訴訟となった。 1件はLexraがMIPS互換であることを宣伝しないという条件ですぐさま解決した。2件目は長引き、両社を疲弊させた。結局、ミップス・テクノロジーズがLexraに対してフリーライセンスと賠償金を払うことで決着した。
[編集] MIPS CPU ファミリ
- R2000:1985年
- R3000:1988年
- R4000:1991年
- R4400:1993年
- R4200(低コストデザイン、外部32ビットバス)
- R4300(低コストデザイン、NINTENDO64で使用)
- R4600(QEDが設計、低コストだがキャッシュ大)
- R4700(QEDが設計、R4600の強化版)
- R4650(QEDが設計、WebTVが使用)
- R5000(QEDが設計、FPUを強化)
- RM7000シリーズ(QEDが設計、組み込み用)
- RM9000シリーズ(QEDが設計、組み込み用)
- R8000(1994年)- ミップス・テクノロジーズの設計による初のスーパースケーラ方式。ワンチップではなく、CPU+一次キャッシュ、FPU、二次キャッシュのタグRAMチップ×3、キャッシュコントローラの6個のチップで構成される。このためコストが高く、SGIのサーバやワークステーション以外では使われなかった。浮動小数点演算性能は高いが、整数演算性能はあまり高くない。
- R10000(1995年) - シングルチップ、高クロック周波数で、一次キャッシュは命令とデータがそれぞれ32KBだった。スーパースケーラだが、さらに重要な点はアウト・オブ・オーダー実行方式となった点である。
- R12000(R10000の動作周波数アップ版)
- R14000(クロップアップ&DDR-SRAMを外部キャッシュに使用可能)
- R16000/R16000A(クロックアップ&内蔵キャッシュ増加)
| モデル | 動作周波数[MHz] | 登場年 | プロセス[μm] | トランジスタ[millions] | ダイサイズ[mm2] | ピン数 | 電力[W] | 電圧 | データキャッシュ[k] | 命令キャッシュ[k] | 二次キャッシュ[k] |
|---|---|---|---|---|---|---|---|---|---|---|---|
| R2000 | 16.7 | 1985 | 2.0 | 0.11 | -- | -- | -- | -- | 32 | 64 | none |
| R3000 | 25 | 1988 | 1.2 | 0.11 | 66.12 | 145 | 4 | -- | 64 | 64 | none |
| R4000 | 100 | 1991 | 0.8 | 1.35 | 213 | 179 | 15 | 5 | 8 | 8 | 1024 |
| R4400 | 150 | 1992 | 0.6 | 2.3 | 186 | 179 | 15 | 5 | 16 | 16 | 1024 |
| R4600 | 133 | 1994 | 0.64 | 2.2 | 77 | 179 | 4.6 | 5 | 16 | 16 | 512 |
| R5000 | 180 | 1996 | 0.35 | 3.7 | 84 | 223 | 10 | 3.3 | 32 | 32 | 1024 |
| R8000 | 90 | 1994 | 0.5 | 2.6 | 299 | 591 | 30 | 3.3 | 16 | 16 | 1024 |
| R10000 | 200 | 1995 | 0.35 | 6.8 | 299 | 599 | 30 | 3.3 | 32 | 32 | 512 |
| R12000 | 300 | 1998 | 0.18-0.25 | 6.9 | 204 | 600 | 20 | 4 | 32 | 32 | 1024 |
| R14000 | 600 | 2001 | 0.13 | 7.2 | 204 | 527 | 17 | -- | 32 | 32 | 2048 |
| R16000 | 700 | 2002 | 0.11 | -- | -- | -- | 20 | -- | 64 | 64 | 4096 |
| R16000A | 800 | 2004 | 0.11 | -- | -- | -- | -- | -- | 64 | 64 | 4096 |
注意:主なプロセッサの仕様のみ掲載。クロック周波数と二次キャッシュ(サイズおよび有無)はバリエーションが存在する。
[編集] 関連項目
- en:Advanced Computing Environment (ACE): 1990年代初頭、IntelプロセッサベースのPCに対抗してMIPSプロセッサベースのコンピューティング環境を作るために、Compaq他多数の企業によってコンソーシアムが設立された
- μClinux
- プレイステーション - CPUとしてR3000Aを搭載。
[編集] 文献
- David A. Patterson and John L. Hennessy (2007). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann Publishers. ISBN 978-0-12-370606-5.
-
- David A. Patterson and John L. Hennessy (2006). コンピュータの構成と設計 第3版(上) ハードウエアとソフトウエアのインタフェース. 日経BP. ISBN 4-8222-8266-X.
- David A. Patterson and John L. Hennessy (2006). コンピュータの構成と設計 第3版(下) ハードウエアとソフトウエアのインタフェース. 日経BP. ISBN 4-8222-8267-8.
- プロセッサを中心としたコンピュータの設計全般に関する書籍で、命令セットの例としてMIPSアーキテクチャを取り上げている。MIPS開発者であるジョン・L・ヘネシーも著者の一人である。
- Dominic Sweetman. See MIPS Run. Morgan Kaufmann Publishers. ISBN 1-55860-410-3.
- MIPSアーキテクチャについての決定版的な本。ハードウェアアーキテクチャだけでなく、コンパイラやOSについても詳述している。
- James Larus. "SPIM MIPS Simulator". 2007年3月4日 閲覧。
- MIPS 32の命令レベルシミュレータ。
最終更新 2009年10月21日 (水) 06:48 (日時は個人設定で未設定ならばUTC)。
【MIPSアーキテクチャ】変更履歴

