CISC/RISCとは(全体像)
CPUが理解する命令の作り方には、大きく2つの考え方がある。
- CISC … 複雑な命令もたくさん用意し、1命令でいろいろこなせるようにする考え方。
- RISC … 命令を単純なものにしぼり、1つずつを高速にこなす考え方。
身近にたとえると、CISCは万能ナイフ(1本で多用途だが構造が複雑)、RISCは専用工具セット(単純な道具を組み合わせて手早く作業する)。料理でいえば、CISCは万能包丁1本、RISCは出刃・刺身・牛刀の使い分けのイメージだ。
押さえたいのは、スマホや省電力の場面ではRISC(ARM)、パソコンの互換性ではCISC(x86)が主流という住み分けだ。
詳しく:命令長・Load/Store・省電力だけ覚えれば戦える
ここが記事の心臓部。まず2つを表で対比しよう。
CISCとRISCの違い
| 項目 | CISC | RISC |
|---|---|---|
| 命令の長さ | 可変長(命令ごとに長さが違う) | 固定長(4バイトでそろう) |
| 1命令の中身 | 複雑(1つでいろいろ) | 単純(1つは小さな処理) |
| 代表 | x86(パソコン) | ARM・RISC-V(スマホなど) |
| 電力 | やや大きめ | 省電力 |
RISCの大きな特徴がLoad/Store型。これは、メモリの読み書きは「Load(読む)」「Store(書く)」の専用命令だけで行い、計算はレジスタの中だけでするという決まりだ。役割を分けることで、命令が単純になり、流れ作業(パイプライン)と相性がよくなる。
RISCのLoad/Store型
| 命令 | できること |
|---|---|
| Load | メモリからレジスタへ読み込む |
| Store | レジスタからメモリへ書き出す |
| 計算命令 | レジスタの中だけで計算(メモリは触らない) |
つまり、RISCは「単純な命令を速く・省電力に」こなす設計。だからスマホや組込み機器で広く使われる、というわけだね。なお、RISCは命令が単純だからといって低性能ではない。クロックを上げたり並行で実行したりして、CISCと同等以上の性能を出している。
わかりやすく言い換えると
要するに、CISCとRISCは「複雑な命令をそろえるか、単純な命令を速くこなすか」の違いだ。
①CISC … 可変長で複雑な命令(万能ナイフ・x86・パソコン)
②RISC … 固定長で単純な命令(専用工具・ARM・スマホ)。省電力
③Load/Store型 … RISCはメモリの出し入れは専用命令だけ、計算はレジスタ内で
「RISCは単純でも低性能ではない」だけは取り違えやすい。
試験のツボ
🔴 一番出る:可変長(CISC)と固定長(RISC)
①CISCは可変長で複雑、代表はx86
②RISCは固定長4バイトで単純、代表はARM
🔴 次に出る:RISCのLoad/Store型
①メモリの読み書きはLoad/Store命令だけ
②計算はレジスタの中だけで行う
🟡 押さえると安定:省電力と性能
①RISCは省電力でスマホ・組込みに強い
②単純でも低性能ではない(高クロック・並行実行)
よくある間違い
①「RISCは命令が単純だから低性能」→ ✗ 高クロック化や並行実行で、CISCと同等以上の性能を出す。
②「CISCは固定長、RISCは可変長」→ ✗ 逆。CISCが可変長、RISCが固定長(4バイト)。
③「RISCは計算でも自由にメモリを読み書きできる」→ ✗ メモリはLoad/Storeだけ。計算はレジスタの中で行う(Load/Store型)。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(命令長の違い)
CISCとRISCの違いに関する次の記述のうち、正しいものはどれか。
- CISCは固定長で単純な命令、RISCは可変長で複雑な命令を使うものとされている
- CISCもRISCもまったく同じ設計で、命令の長さにも違いはないものとされている
- CISCは可変長で複雑な命令、RISCは固定長で単純な命令を使うという違いがある
- CISCはスマホ専用、RISCはパソコン専用と、使う機器だけで分かれているものだ
解答は 3 である。
CISCは可変長で複雑な命令、RISCは固定長で単純な命令なのだ。CISCの代表はx86、RISCの代表はARMなるぞ。
選択肢1は可変長・固定長が逆。選択肢2の「同じ設計」、選択肢4の「機器だけで分かれる」も誤りである。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 可変長・固定長が逆 |
| 2 | ✗ | 命令長に違いがある |
| 3 | ✓ | CISC=可変長・RISC=固定長 |
| 4 | ✗ | 設計思想の違い |
オリジナル問題2(Load/Store型)
RISCのLoad/Store型に関する次の記述のうち、正しいものはどれか。
- RISCはメモリの読み書きをLoad/Storeだけで行い、計算はレジスタの中で行う
- RISCは計算命令でも自由にメモリを読み書きでき、Load/Storeは使わないとされる
- RISCはメモリをいっさい使わず、すべてのデータをディスクに保存するものである
- Load/StoreはCISCだけのしくみで、RISCにはいっさい関係がないものとされている
解答は 1 である。
RISCはメモリの読み書きをLoad/Storeだけで行い、計算はレジスタの中で行うのだ。役割を分けるから命令が単純で、流れ作業と相性がよいなるぞ。
選択肢2の「自由に読み書き」、選択肢3の「ディスクに保存」、選択肢4の「CISCだけ」はどれも誤りである。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | メモリはLoad/Store・計算はレジスタ内 |
| 2 | ✗ | 計算ではメモリを触らない |
| 3 | ✗ | メモリは使う |
| 4 | ✗ | Load/StoreはRISCの特徴 |
オリジナル問題3(省電力と性能)
RISCの省電力と性能に関する次の記述のうち、正しいものはどれか。
- RISCは命令が単純なので必ず低性能で、CISCにはまったく追いつけないものとされる
- RISCは省電力でスマホにも強く、単純でも高クロックや並行実行で高い性能を出せる
- RISCは電力を大量に使うため、スマホのような省電力の機器には向かないものである
- RISCもCISCも省電力や性能はまったく同じで、選ぶ理由は存在しないものとされる
解答は 2 である。
RISCは省電力でスマホに強く、命令が単純でも高クロックや並行実行で高性能を出せるのだ。「単純=低性能」は古い見方なるぞ。
選択肢1の「必ず低性能」、選択肢3の「電力を大量に使う」、選択肢4の「まったく同じ」はどれも誤りである。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 単純でも低性能ではない |
| 2 | ✓ | 省電力かつ高性能を出せる |
| 3 | ✗ | RISCは省電力 |
| 4 | ✗ | 省電力や性能傾向に違いがある |
まとめ
押さえどころ
- 🔴 命令長 = CISCは可変長で複雑(x86)、RISCは固定長4バイトで単純(ARM)。
- 🔴 Load/Store型 = RISCはメモリの読み書きをLoad/Storeだけで行い、計算はレジスタ内。
- 🟡 省電力と性能 = RISCは省電力でスマホに強い。単純でも低性能ではない。
次に学ぶ
- CPUアーキテクチャ ── 命令を実行するCPUの基本構成。CISC/RISCはこの命令の作り方の違い。
- パイプライン処理 ── 命令を流れ作業で速くするしくみ。固定長のRISCが相性のよい理由が分かる。
執筆: SikakuQuest編集部