RISC

読み:リスク
外語:RISC: Reduced Instruction Set Computer 英語
発音:rísk 英語
品詞:名詞

命令セットを単純なものに限定したマイクロプロセッサーのこと。縮小命令セットコンピューター。

目次

起源

米IBM社のジョン・クック(John Cocke)により、1974(昭和49)年に考案された。

この功績により彼は、1987(昭和62)年度のA.M.チューリング賞を受賞している。

RISCの原型はスパコン分野にあり、その後のMIPSで一般化した。

着想

CISCと呼ばれる元々のマイクロプロセッサーは、アセンブリ言語による開発を想定し、多種多様な命令を用意していた。

様々な処理を一度にこなす命令を持っていたが、しかし、そういった複雑な命令は、実際には殆ど使われていなかった。

アセンブリ言語でのプログラミングが廃れ、高級言語が普及するようになると更にこの現象は顕著となった。初期の高級言語コンパイラーが出力するコードは限られた命令を組み合わせたものであり、複雑多様な命令を持ったCPUの機能を生かしきれていなかったからである。

また当時のCISCにも問題はあり、複雑な命令は必ずしも高速ではなく、単純な命令を組み合わせたほうが高速に処理できることもあった。

これらの知見が見いだされてから、命令は必要なものに絞り、それを高速に処理できるようにすれば、全体として高速処理が可能になると導かれた。こうして徐々にそのためのアイディアが生み出され、やがてRISCと呼ばれるようになった。

単純な命令

RISCは、Reduced Instruction Set Computer(縮小命令セットコンピューター)というように、主として単純で基本的な命令語を搭載する。

基本的には単純な命令しかないため、CISCでは1命令でできる処理も、RISCでは結果的に複数の命令が必要となることがある。それでも、命令一つあたりの処理速度が高速であるため、命令数が増えてもなおCISCより高速に処理できることが多い。

なお、命令語数が増えれば、その分プログラムも肥大化し、実行時に要するメモリーの量も増加することになる。CISCが生まれた当時はメモリーは高価だったため機械語サイズを縮めるべく多種多様な命令が可変長で実装された。その後の技術革新でメモリーが安価になったことも、RISCが生まれた背景にある。

複雑な命令

RISCといえども、複雑な命令も搭載される。

昨今では、浮動小数点演算(実数演算)を高速化するため、ハードウェアで実装したFPUが搭載されるのが一般的である。

更に、SIMD命令なども実装されるなどしており、今や命令の多様性はCISCと大差ない状態となっている。

パイプライン

パイプラインなどの並列処理技術と組み合わせることに適しているため、CISCより高速化が可能だと言われている。

このためか、RISCは、いかにしてパイプライン処理の処理効率を向上させるか、を重視して設計されることが多いようである。

傾向

CISCやRISCというのはあくまで概念的な区分に過ぎないので、具体的にCISCとRISCの区分法というものは存在しない。

つまり、メーカーがCISCであると言えばCISCであり、RISCだと言えばRISCであるとしか言えない。

そのような中で、RISCでは概ね次のようなコンセプトを持っていることが多いようだが、しかしそもそも定義がないため、例外もある。

  • 命令セットがシンプルである(かつ命令語は固定長)

    命令ビット列中のオペコード・オペランドの配置をできるかぎり共通化し、命令デコードを高速化する。

    結果として、命令語(機械語)は固定長であることが多い(一部に例外あり)

  • 殆どの命令を1クロックで実行する

    これにより、パイプラインに遅延を生じさせない。

    分岐命令は時間が掛かることが多い。

    また乗算命令、除算命令も時間が掛かることが多い。

  • ロードストアアーキテクチャ(演算はレジスター間が基本)

    演算によるメモリーアクセスでパイプラインに遅延を生じさせるのを防ぐため。

  • ワイヤードロジック

    命令の解析と実行をゲートの組み合わせのみで実現し、マイクロコードを使わない。

    従来型マイクロコード方式の否定がRISCの由来と考えると、RISCの必須要件とも言える。

  • 遅延スロットの存在

    初期のRISCでは、分岐遅延スロットを代表として、他にロード遅延スロットなどがあった。

    最近のRISCでは人気がなく、遅延スロットを持たないものが多い。

  • 多数の汎用レジスターを用意する

    レジスター不足によるメモリーアクセスでパイプラインに遅延を生じさせるのを防ぐため。

  • 3オペランド以上の命令の存在

    3オペランド命令(A+B→C)や4オペランド命令(A×B+C→D)などの特徴を持った命令が搭載されることもある。

    可能な限りレジスターのみで演算を済ませ、メモリーアクセスでパイプラインに遅延を生じさせるのを防ぐため。

代表

この技術を使った代表的なプロセッサーには、次のようなものがある(ABC順)。

ARM (ARM)

組み込み向けで、低消費電力を重視したシリーズ。

iPhoneシリーズや、Android搭載機の殆どで採用されている。

可変長命令や多様なアドレッシングの存在など、RISCらしくないRISCと呼ばれている。

MIPS (MIPS)

初代PlayStationNINTENDO64などのゲーム専用機で使われたため、過去最も出荷されたRISCチップとなった。

POWERPowerPC (IBM)

スーパーコンピューターなどでも使われているPOWER系列と、これをシンプルにしたPowerPCの系列がある。

PowerPCはMacinoshのCPUとして使われたほか、PLAYSTATION 3のCPUとして開発された東芝Cell Broadband Engineのコアとしても使われている。

SPARC (サン・マイクロシステムズ)

サンのワークステーション用プロセッサーとして一世を風靡した。

ワークステーションがパソコンに敗れ去った後も、サーバー用途として細々と継続している。

SuperH (日立製作所→ルネサス)

組み込み向けで、16ビット固定長の命令セットを特徴とする。

セガサターンドリームキャストなどセガのゲーム用ハードウェアでも使われた。

その他

現役のもの。

  • AVR (Atmel)
  • eSi-RISC
  • M32R (三菱電機→ルネサス)
  • OpenRISC
  • V850 (NEC→ルネサス)

過去のもの。

RISCではないがRISC的とされるもの

IntelのPentiumなどはRISCの技術が応用されたCISCと呼ばれ、従来のCISC用の機械語を、内部に持つRISCに翻訳しながら実行することで高速な処理を実現している。

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club