RISC
読み:リスク
外語:RISC: Reduced Instruction Set Computer
命令セットを単純なものに限定した
マイクロプロセッサー
のこと。縮小命令セットコンピューター。
目次
概要
起源
着想
特徴
単純な命令
複雑な命令
パイプライン
傾向
製品例
代表
その他
概要
起源
米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
)
初代PlayStation
や
NINTENDO64
などのゲーム専用機で使われたため、過去最も出荷されたRISCチップとなった。
POWER
、
PowerPC
(IBM)
スーパーコンピューター
などでも使われているPOWER系列と、これをシンプルにしたPowerPCの系列がある。
PowerPCはMacinoshのCPUとして使われたほか、
PLAYSTATION 3
のCPUとして開発された
東芝
の
Cell Broadband Engine
のコアとしても使われている。
SPARC
(サン・マイクロシステムズ)
サンの
ワークステーション
用プロセッサーとして一世を風靡した。
ワークステーションがパソコンに敗れ去った後も、サーバー用途として細々と継続している。
SuperH
(日立製作所→ルネサス)
組み込み向けで、16ビット固定長の命令セットを特徴とする。
セガサターン
、
ドリームキャスト
など
セガ
のゲーム用ハードウェアでも使われた。
その他
現役のもの。
AVR (Atmel)
eSi-RISC
M32R (三菱電機→ルネサス)
OpenRISC
V850 (NEC→ルネサス)
過去のもの。
PA-RISC
(HP)
Alpha
(DEC)
RISCではないがRISC的とされるもの
PIC
(Microchip)
R800
(ASCII)
IntelのPentiumなどはRISCの技術が応用されたCISCと呼ばれ、従来のCISC用の
機械語
を、内部に持つRISCに翻訳しながら実行することで高速な処理を実現している。
再検索