MIPSアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
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年、ヘネシーは将来商業レベルとなる可能性のあるデザインを確立し、スタンフォードを退職してMIPSコンピュータシステムズを設立する。 彼らは1985年、最初のデザインであるR2000を完成させ、1988年にそれを進化させたR3000を完成させた。 これらの32ビットCPUによってMIPS社は1980年代に基盤を築くことが出来た。 これらの商用デザインはスタンフォードでの学術研究的なものとは方針を変更し、ハードウェアにインターロック機構を装備し、掛け算も割り算もサポートしていた。 単にひとつのプログラムを実行するだけなら上述のディレイスロットの考え方でなんとかなるのだが、商用としてはマルチタスクや割り込みへの対応は必須であり、インターロック機構の付加は必然であった。また、半導体プロセス技術の急速な進歩がそれを可能にしていった。インターロック機構を備えたとしても、インターロックをなるべく発生させないコンパイラ技術は高速化に必須である。これらのプロセッサはSGI、DEC DECstation、ソニー NEWS、NEC EWS4800などに使われた。
1991年、MIPSは最初の64ビットマイクロプロセッサR4000をリリースする。 このデザインは当時のMIPS社の最大の顧客であるSGIにとって非常に重要であったため、1992年にMIPS社が資金繰りに行き詰まると即座にSGIが会社を買い取って、MIPSアーキテクチャが存続することを保証した。 こうしてMIPS コンピュータシステムズはSGIの子会社ミップス・テクノロジーズとなった。
1990年初頭、MIPSはデザインをサードパーティにライセンス供与しはじめた。 コアの単純さのため、この方針は成功を収め、従来は同等のゲート数と価格のCISCプロセッサが占めていた様々な分野でMIPSコアが使われるようになった。 ゲート数と価格は密接な関係があり、CPUの価格はゲート数とピン数でほぼ決まっていた。 サン・マイクロシステムズも追随してSPARCコアのライセンス供与を開始したが、成功したとは言い難い。 1990年代後半にはMIPSは機器組み込み用プロセッサ分野の勝者となっていた。 1997年、4800万個目のMIPSベースのチップが出荷され、MIPS CPUファミリはモトローラの68000ファミリを出荷個数で抜いたのである。 この成功により、SGIはMIPSテクノロジーズを1998年にスピンオフさせた。 MIPSの収入の半分はライセンス料であり、残りはサードパーティが生産するコアの設計から来ている。
1999年、MIPSはライセンス体系を整理し、32ビットのMIPS32と64ビットのMIPS64に分けた。このアナウンスと同時に、NEC、東芝、SiByte(後にBroadcomが買収)がMIPS64のライセンス供与を受けた。フィリップス、LSI Logic、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はBroadcomに買収され、AlchemyはAMDに買収されている(⇒後にRaza Microelectronics(RMI)に売却)。 LexraはMIPSに似たアーキテクチャをベースにDSP機能を付加したチップをオーディオ機器市場向けに、マルチスレッド機能を付加したチップをネットワーク機器市場向けに出している。 LexraはMIPSからライセンス供与を受けていなかったため、MIPSとの間で2件の訴訟となった。 1件はLexraがMIPS互換であることを宣伝しないという条件ですぐさま解決した。 2件目は長引き、両社を疲弊させた。結局、MIPSテクノロジーズが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年
- R10000:1995年
- R12000 (R10000の動作周波数アップ版)
- R14000 (クロップアップ&DDR-SRAMを外部キャッシュに使用可能)
- R16000/R16000A (クロックアップ&内蔵キャッシュ増加)
MIPS マイクロプロセッサの仕様 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
モデル | 動作周波数[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 |
注意:主なプロセッサの仕様のみ掲載。クロック周波数と二次キャッシュ(サイズおよび有無)はバリエーションが存在する。
[編集] 参考文献
- Patterson and Hennessy: Computer Organization and Design. The Hardware/Software Interface. Morgan Kaufmann Publishers. ISBN 1-55860-604-1
- コンピュータの構成と設計(上、下) ISBN 4-8222-8001-2 、 ISBN 4-8222-8002-0 (上記の日本語版)
- 本書はコンピュータの設計全般について、特にRISCについて書かれており、その例としてMIPSアーキテクチャが紹介されている。MIPS開発者である前述のジョン・L・ヘネシーも著者の一人である。
- Dominic Sweetman: See MIPS Run. Morgan Kaufmann Publishers. ISBN 1-55860-410-3
- MIPSアーキテクチャについての決定版的な本。ハードウェアアーキテクチャだけでなく、コンパイラやOSについても詳述している。