RISC(reduced instruction set computer、縮小命令セットコンピュータ)とは、CPUの設計方針の一つである。今日の(32bit以上の)CPUは、CISCとされるIntel/AMDのx64系以外は、ほぼ全てRISCであると考えて差し支えない。
概要
単純な命令を組み合わせ、スループットを向上させる思想に基づいて構築された機械語の命令セット(ISA)、およびそれに基づいて設計されたCPUである。1980年代にデイビッド・パターソン(RISC-Iの開発者)とジョン・ヘネシー(MIPSの開発者)によって提示されたコンセプトで、命令を細かいステップに小分けして並列実行する「パイプライン」を円滑に動作させることを主眼にしている。概ね次のような特徴を持つ。
固定命令語長: メモリから読み込んだ機械語を解読し、どのユニットで実行するべきか決める「デコード」を効率化するため、命令のビット長を固定する。これにより回路を単純化できる。従来の命令セット(CISC)では命令語長が可変長であるため、ある一つの命令のデコードが終わらなければ次の命令の語の位置が判らず、複数の命令を同時にデコードするのが困難であった。
全ての命令を1クロックサイクルで実装する:パイプライン処理をスムーズに進めるため。複雑な命令は単純な命令を組み合わせて実行する。
命令はワイヤードロジックのみで実装:複雑な命令を持つCISCプロセッサは一部の複雑な命令をマイクロプログラムとしてソフト的に実装しているが、RISCはハード的な論理回路(ワイヤードロジック)で実装できるものに命令を限っている。これもパイプラインの処理時間を揃えるためである。
ロード/ストア・アーキテクチャ:メモリへアクセスする命令をロード命令とストア命令だけに限定。演算はレジスタ同士でしか行わない。これによりパイプラインの処理時間が揃い、またデコーダーが簡単になる。
多数の汎用レジスタを備える:ロード/ストア・アーキテクチャを採用すると必然的に多数のレジスタが必要になるため。またこれによりプログラムの自由度が高まる。
この他、MIPSやSPARCなどのやや古い典型的なRISCでは分岐命令の直後の命令を先行して実行する遅延分岐スロットなどの特徴もあったが、あまり好まれず、RISC-Vなどの最近の設計では採用されない。PowerPCやARMなどの非典型的なRISCプロセッサは元々採用していない。
主なRISCプロセッサ
「機械語」の項目と重複するが、主なRISCプロセッサの系譜を列挙する。
- 801: IBMが1970年代に設計したRISCの先駆け。従来のマイクロプロセッサが豊富に備えていた機械語命令がごく一部しか使われていないことを見出し、頻繁に使われる命令に絞り込むことで回路を簡素化するとともに、ロード/ストア・アーキテクチャを採用した。時代が時代なのでマイクロプロセッサではなくディスクリート部品で実装されたが、これが後のPOWER/PowerPCの礎となった。
- Berkeley RISC:カリフォルニア大学バークレー校で行われた、パターソンとヘネシーの論文の忠実な実装である。初期のRISC-IとRISC-IIはRISCの元祖とされ、マイクロプロセッサの設計に絶大な影響を与えた。レジスタ・ウィンドウと呼ばれる多数のレジスタを切り替えて使う設計が特徴。RISC-Vはこの発展系として命名された。
- MIPS :上記のジョン・ヘネシーらが立ち上げたMIPSテクノロジー社がライセンスする形態で実装されているマイクロプロセッサであり、Berkeley RISCと同様レジスタ・ウィンドウ方式を採用している。32bitと64bitの実装がMIPSテクノロジーの親会社であったシリコングラフィックス (SGI) のワークステーションで採用されたほか、PlayStationやNintendo64、PlayStation2で使われたことで知られる。2000年代までは組み込みシステムでもよく採用されたが、競合のARMに押されてほとんど使われなくなった。
- SPARC:サン・マイクロシステムズが自社ワークステーションに搭載していた68kの後継として開発したマイクロプロセッサ。初期の実装はMIPSとの共通点が多かったが、度々拡張が重ねられ、中途から64bit化されている。富士通など他社も採用している。2010年のオラクルによるサン買収後も開発が続いており、オープン実装もある。
- Am29000: AMDが1980年代に開発した32bitRISCプロセッサ。プリンタなどの組み込みシステムによく使われた。マイクロアーキテクチャはAMD K5に流用された。
- i960: Intelが1980年代後半にRISCの流行に乗って設計した32bitマイクロプロセッサ。Berkeley RISCに倣った設計を持っていた。Intelはこの頃次世代のマイクロプロセッサの設計を決めかねていたらしく、VLIW設計に基づくi860、x86の拡張である80486を同時期にリリースし、市場に選ばせようとしたのだが、i860は完全にコケ、i960も組み込み向けにわずかな成功を遂げるにとどまり、結局従来のx86の拡張である486が成功した。
- Alpha: ディジタル・イクイップメント・コーポレーション (DEC)が1990年代に自社ワークステーション向けに開発したマイクロプロセッサ。世界初の64bitプロセッサでもある。その性能は当時としては圧倒的なものがあったが商業的に成功したとは言えず、1998年のDECのコンパックへの買収、同社のHPへの買収を経て終息した。
- POWER Architectures(POWER/RS64/PowerPC/PowerQUICC/Cellなど): いずれも上記の801の発展系である32/64bitマイクロプロセッサ。POWERはIBMのワークステーション・サーバ・スーパーコンピューター向けマイクロプロセッサであり、PowerPCはパソコン・組み込み向けに展開した。PowerPCは68kの性能に行き詰まりを感じていたAppleがIBM、モトローラと組んでPReP/CHRPなる標準仕様を打ち出しパソコン市場の覇権を狙ったものの採用はMacintoshとその互換品のみにほぼとどまった。一時期はPlayStation3、Wii/WiiU、Xbox360で揃って採用され、ゲーム機市場を席巻した。PowerPCは現在も組み込みシステムで展開しているほか、POWERはIBMのハイエンドサーバー向け製品としてハイエンド市場で健在である。実装は各ファミリーで異なるが、一部の命令をマイクロコードで実装するなどRISCの典型から外れた部分が目立つ。
- ARMアーキテクチャ: MOS 6502の後継として設計され、のちにGSM携帯電話に採用されたことを足がかりに組み込み市場を席巻した。現在では64bit版がスマートフォンをはじめパソコンやスーパーコンピューターなどのハイエンド向けにも採用される。32bit版は低消費電力と高いコード密度を実現するため、教科書的なRISCとはかけ離れた特異な設計を採用しており、しばしばRISCなのにCISCっぽいとか変態的と評される。64bitの命令セットは比較的RISCの定石に則った設計だが、それでもプログラムサイズを抑え消費電力を減らすための独自の工夫が随所に凝らされている。
- RISC-V:(読みはリスク-ファイブ)カリフォルニア大学バークレー校が開発しオープンソースライセンスで提供されている命令セットアーキテクチャで、ユーザーによる独自命令の追加に制限がないことが特徴。Berkeley RISCの発展としてのネーミングだが、従来のBerkeley RISCと異なりコンピュータ工学の研究というより実用的なコンピュータに最適化した設計である。
関連動画
関連項目
- 0
- 0pt