FE EXAM

RISC(縮小命令セットコンピュータ)

単純で固定長の命令に絞り高速実行を狙うCPUの設計思想(ARMなど)

DIAGRAM
単純な命令固定長命令
単純な命令を組み合わせて仕事をするCISC: 1命令MUL [X],[Y]メモリ同士を直接演算RISCはLOAD R1, [X]LOAD R2, [Y]MUL R3, R1, R2STORE [X], R3← 単純な命令だけで  同じ仕事を実現  演算はレジスタ間のみ命令の長さが揃っている(固定長)ADD R3,R1,R24バイトSUB R4,R1,R24バイトLOAD R1,[X]4バイトSTORE [Y],R34バイト全命令が同じ長さ → 解読が単純で速い1命令1クロックで流れ作業IFIDIDEXEXEXMEMMEMMEMWBWBWB命令が等間隔で重なる(パイプライン)代表例ARM(スマホ)RISC-VApple SiliconRISC の特徴まとめ命令が単純(1命令1処理)命令の種類が少ない(数十種類)命令長が固定(解読が高速)演算はレジスタ間のみ(ロード/ストア)パイプラインで高速・省電力
CISC と RISC の比較
項目CISCRISC
命令の数多い(数百種類)少ない(数十種類)
命令の長さ可変長(バラバラ)固定長(同じ長さ)
1命令の機能高機能(複数処理)単純(1つの処理)
実行速度命令ごとにバラつく1命令1クロックで高速
パイプライン適性低い(解読が複雑)高い(流れ作業向き)
回路の複雑さ複雑単純
解説

📌
RISCとは

単純な命令を並べて仕事をするLOADLOADMULSTORE1命令ずつは単純だが高速に流れる

RISC(Reduced Instruction Set Computer = 縮小命令セットコンピュータ)とは、命令を単純なものだけに絞り込み、その分1命令を高速に実行することを狙ったCPU(=コンピュータの計算の中心となる部品)の設計思想です。「リスク」と読みます。

身近な例で考えると、「工場の流れ作業(ベルトコンベア)」に似ています。1人ひとりの作業者がやることをごく単純な1工程に絞ると、誰も手が止まらず、製品が次々に流れていきます。RISCも、命令を「これ以上分けられない単純な作業」に揃えることで、命令を途切れなく高速に処理できるようにしているのです。

上の図解では、CISCなら MUL [X],[Y] という1命令で済む処理を、RISCでは「読む・読む・掛ける・書く」という単純な命令の組み合わせで実現する様子を示しています。命令1つあたりの仕事は減りますが、その分すべての命令が高速に流れます。

📌
命令の特徴

RISCの命令には、CISCと対照的な次の特徴があります。
命令の種類が少ない:本当に必要な数十種類の単純な命令だけに絞る
命令長が固定長:すべての命令が同じ長さ(例:4バイト)で揃っている
1命令1クロックで実行:単純なので、ほぼ1命令を1クロック(CPUの最小時間単位)で処理できる
ロード/ストアアーキテクチャ:計算はレジスタ(CPU内部の小さな記憶場所)同士でのみ行い、メモリとのやり取りは専用命令だけに限定する

特に重要なのが固定長命令です。図解の中段左にあるように、すべての命令が同じバイト数なので、CPUは「次の命令がどこから始まるか」を一定の間隔で判断できます。これにより命令の解読が単純になり、パイプライン処理(命令を流れ作業で重ねて実行する高速化手法)と非常に相性が良くなります。図解の中段右が、命令が等間隔で重なって流れる様子です。

メリットとデメリットを整理すると、メリットは「回路が単純なので高速・省電力にしやすく、パイプラインで性能を上げやすい」点。デメリットは「1命令の機能が小さいため、同じ処理に必要な命令数(プログラムの長さ)が増える」点です。コンパイラ(=人が書いたプログラムをCPUの命令に変換するソフト)の進化で、この弱点はかなり補われています。

📌
代表例(ARM・RISC-V等)

スマホ・組込み機器はほぼRISC(ARM)ARMRISC-VApple M系

RISCの最も身近な代表例が、スマートフォンやタブレットに使われているARMアーキテクチャです。消費電力が小さく発熱も抑えられるため、バッテリー駆動の機器に向いており、世界中のスマホのほぼすべてがARM系CPUを搭載しています。

代表例として覚えておきたいのは次の通りです。
ARM:スマホ・タブレット・組込み機器で圧倒的シェア
RISC-V(リスクファイブ):誰でも無償で使えるオープンな命令セットとして近年注目
Apple Silicon(M系チップ):MacにもARM系RISCが採用された例
MIPS・SPARC・PowerPC:古くからの代表的RISC

上の比較表のとおり、CISCとRISCは「命令数・命令長・実行速度・パイプライン適性」のすべてで対照的です。「CISC=x86=多機能・可変長」「RISC=ARM=単純・固定長・高速」とペアで整理するとわかりやすく、RISCはパイプライン処理と相性が良い、という関係も合わせて押さえておくとよいでしょう。

📌
なぜRISCは高速化できるのか

CISC: 1命令が長いため解読に時間がかかる長い命令解読待ち長い命令…RISC: 固定長・単純命令が次々と流れるIFIDEXMEMWBパイプライン5段階が途切れず流れる

結論:RISCが高速な理由は「命令を解読する手間が少なく、パイプラインが詰まらないから」です。

CPUは命令を実行するとき、① 命令を取得(Fetch)→ ② 内容を解読(Decode)→ ③ 計算(Execute)→ ④ メモリ操作(Memory)→ ⑤ 結果を書込み(Write Back)の5段階で処理します。これをパイプライン(=流れ作業)と呼びます。

CISCでは命令の長さがバラバラ(可変長)なため、②の解読ステップで「この命令は何バイトか?」を毎回調べる必要があります。長い命令や複雑な命令が混じると解読に時間がかかり、後続の命令が待たされてパイプラインが渋滞(ストール)します。

RISCでは全命令が固定長(例:必ず4バイト)で、内容も単純です。CPUは「次の命令は必ず4バイト先」と分かるため、解読を待たずに次の命令をどんどん先読みできます。結果として5段階が途切れなく流れ、複数の命令を同時並行で処理することができるのです。上の図の下段が、5段階がすき間なく重なって流れる様子です。

📌
CISCとRISCの設計思想の違い

CISCハードウェアが複雑命令1つで多くをこなすRISCハードウェアを単純にソフトで命令を組合せvs

CISCとRISCは、「複雑さをハードウェアで吸収するか、ソフトウェアで吸収するか」という根本的な設計思想の違いがあります。

CISCの考え方:「プログラマの負担を減らすため、CPUに高機能な命令を持たせよう」。メモリとメモリを直接計算する命令など、複雑な命令を1つにまとめてCPU回路に焼き込みます。プログラムの行数は短くなりますが、CPU回路が複雑になり、消費電力も増えます。代表はパソコンやサーバに使われているx86(インテル・AMD系)です。

RISCの考え方:「CPUはとにかく単純・高速にして、複雑な処理はコンパイラ(プログラムをCPU命令に変換するソフト)に組み合わせさせよう」。回路が単純になる分、省電力・高速・低発熱を実現しやすくなります。

どちらが絶対に優れているというわけではなく、用途によって使い分けられています。大量計算を省電力でこなしたいスマホや組込み機器にはRISC(ARM)、互換性を重視するパソコン・サーバにはCISC(x86)が多く採用されています。最近はx86のCPUも内部でRISC的な処理に変換してから実行するなど、両者の境界は薄れてきています。

関連コンテンツ