ISC・RISC・VLIW・MIMDの違いとは?CPUの仕組みをレストランでわかりやすく解説
はじめに
コンピュータのCPUやプロセッサの仕組みを学んでいると、CISC・RISC・VLIW・MIMDという用語が出てくることがあります。
どれもコンピュータの処理方式に関係する言葉ですが、同じ分類の用語ではありません。
簡単に言うと、CISC・RISC・VLIWは命令の実行方式やCPU設計に関する考え方で、MIMDは並列処理の分類です。
この記事では、CISC・RISC・VLIW・MIMDの違いについて、会話形式でわかりやすく解説します。
まず全体像を確認しよう

CISC、RISC、VLIW、MIMDって、全部CPUの種類なの?

近いけど、全部が同じ分類ではないよ。

どういうこと?

CISC、RISC、VLIWは、主にCPUが命令をどう扱うかに関係する考え方。MIMDは、複数の処理装置が複数の命令やデータを扱う並列処理の分類なんだ。
| 用語 | 主な意味 | 分類 |
|---|---|---|
| CISC | 複雑な命令を持つCPU設計 | 命令セット・CPU設計 |
| RISC | 単純な命令を高速に処理するCPU設計 | 命令セット・CPU設計 |
| VLIW | 複数の処理を1つの長い命令にまとめる方式 | 命令実行方式 |
| MIMD | 複数の命令を複数のデータに対して並列実行する方式 | 並列処理の分類 |

なるほど。MIMDだけ少し別の分類なんだね。

そう。そこを最初に押さえると混乱しにくいよ。
CISCとは?

CISCは、Complex Instruction Set Computerの略だよ。

複雑な命令セットのコンピュータ?

そう。CISCは、1つの命令で複雑な処理をできるようにしたCPU設計の考え方だね。

1つの命令でたくさんのことができるんだ。

そう。例えば、メモリからデータを読み込んで、計算して、結果を書き戻すような処理を、比較的少ない命令数で表せる場合がある。

命令は複雑だけど、プログラムは短く書けそうだね。

その通り。ただし、命令が複雑になる分、CPU内部の制御も複雑になりやすいんだ。

RISCとは?

RISCは、Reduced Instruction Set Computerの略だよ。

命令を減らしたコンピュータ?

そう。RISCは、命令を単純化して、1つ1つの命令を高速に処理しやすくする考え方だね。

CISCとは逆っぽいね。

かなり対照的だね。CISCは複雑な命令を持つ方向、RISCは単純な命令を効率よく実行する方向だよ。

単純な命令だと、複雑な処理には命令数が増えるんじゃない?

その通り。でも、命令が単純なのでパイプライン処理などで高速化しやすいというメリットがあるんだ。

CISCとRISCの違い

CISCとRISCの違いを表で見たいな。

整理するとこんな感じだよ。
| 項目 | CISC | RISC |
|---|---|---|
| 命令の特徴 | 複雑な命令が多い | 単純な命令が多い |
| 命令数 | 少ない命令で複雑な処理を表しやすい | 複雑な処理には命令数が増えやすい |
| CPU内部 | 複雑になりやすい | 比較的単純にしやすい |
| 高速化 | 命令の複雑さが課題になることがある | パイプライン処理に向きやすい |
| 覚え方 | 便利な命令をたくさん持つ | 単純な命令を速く回す |

CISCは多機能な工具箱、RISCはシンプルな工具を高速に使う感じかな。

VLIWとは?

VLIWはCISCやRISCとどう違うの?

VLIWは、Very Long Instruction Wordの略だよ。

とても長い命令語?

そう。複数の処理を1つの長い命令にまとめて、同時に実行する方式だよ。

1つの命令の中に、複数の作業を詰め込む感じ?

そのイメージでOK。例えば、足し算、掛け算、データ移動などを同時に実行できるように、あらかじめ1つの長い命令として並べておくんだ。

誰がその組み合わせを決めるの?

主にコンパイラが決める。どの命令を同時に実行できるかをコンパイラ側で考えて、長い命令として並べるんだ。

VLIWの特徴

VLIWのメリットは?

CPU側の制御を比較的単純にしながら、複数の処理を並列実行しやすいことだね。

CPUが考えるより、コンパイラが事前に考えるんだ。

そう。実行時にCPUが複雑な判断をするのではなく、コンパイル時に並列化できる命令をまとめる考え方だよ。

デメリットは?

コンパイラの性能に大きく依存することだね。うまく並列化できないと、長い命令の中に空きができて効率が落ちることがある。
MIMDとは?

最後にMIMDって何?

MIMDは、Multiple Instruction, Multiple Dataの略だよ。

複数の命令、複数のデータ?

そう。複数のプロセッサやコアが、それぞれ別々の命令を、別々のデータに対して実行する並列処理の方式だよ。

それぞれが別々の仕事を同時にする感じ?

その通り。例えば、1つのコアが画像処理をして、別のコアが通信処理をして、さらに別のコアが計算処理をするようなイメージだね。

CISCやRISCとは分類が違うんだね。

そう。CISCやRISCは命令セット寄り、MIMDは並列処理の分類だよ。

SIMDとの違いも押さえよう

MIMDを調べるとSIMDも出てくるよね。

よく出てくるね。比較すると分かりやすいよ。
| 用語 | 意味 | イメージ |
|---|---|---|
| SIMD | 1つの命令で複数のデータを処理 | 同じ作業を大量のデータに行う |
| MIMD | 複数の命令で複数のデータを処理 | 別々の作業を同時に行う |

SIMDは同じ作業を一斉に、MIMDは別々の作業を並列に、という感じ?

その理解でバッチリ。

4つの違いをまとめて理解する

CISC、RISC、VLIW、MIMDをまとめるとどうなる?

こう整理すると分かりやすいよ。
| 用語 | 見ているポイント | 一言でいうと |
|---|---|---|
| CISC | 命令セット | 複雑な命令を持つCPU設計 |
| RISC | 命令セット | 単純な命令を高速に実行するCPU設計 |
| VLIW | 命令実行方式 | 複数処理を長い命令にまとめて並列実行 |
| MIMD | 並列処理分類 | 複数の命令を複数のデータに並列実行 |

CISCとRISCは命令の作り方、VLIWは命令をまとめて並列実行、MIMDは複数プロセッサの並列処理なんだね。

とても良い整理だね。

レストランで例えると?

レストランで考えてみよう。
CISCの場合

CISCは、「カレーセットを作って」という1つの命令で、ご飯を盛る、ルーをかける、サラダを付ける、飲み物を用意する、まで含まれている感じだね。

1つの命令が高機能なんだ。

RISCの場合

RISCは、「ご飯を盛る」「ルーをかける」「サラダを付ける」のように、単純な命令を組み合わせる感じ。

命令は増えるけど、1つ1つは分かりやすくて速いんだね。

VLIWの場合

VLIWは、「ご飯を盛る、サラダを用意する、飲み物を注ぐ」を1つの長い指示にまとめて、同時に進める感じだよ。

同時にできる作業を先にまとめておくんだ。

MIMDの場合

MIMDは、複数の店員がそれぞれ別々の仕事をする感じ。1人はカレー、1人は会計、1人は配達を同時に行う。

それぞれが別の命令を別の対象に実行するんだね。

試験対策としてのポイント
情報処理技術者試験では、CISC・RISC・VLIW・MIMDはCPU、命令セット、並列処理の文脈で出てくることがあります。
| 用語 | 試験対策ポイント |
|---|---|
| CISC | 複雑な命令セットを持つ |
| RISC | 単純な命令を高速に実行しやすい |
| VLIW | 複数の命令を長い命令語にまとめる |
| MIMD | 複数命令・複数データの並列処理 |
| SIMD | 単一命令・複数データの並列処理 |

試験では、CISCとRISCの違い、MIMDとSIMDの違いを押さえるのが大事そうだね。

そうだね。さらに、VLIWはコンパイラが並列実行できる命令をまとめる方式、と覚えておくと理解しやすいよ。
よくある誤解
MIMDはCISCやRISCと同じ分類ではない

MIMDもCPUの命令セットの種類なの?

そこは違うよ。MIMDは並列処理の分類で、CISCやRISCとは見ている観点が違うんだ。
RISCは低性能という意味ではない

Reducedって聞くと、性能が低いってこと?

違うよ。命令を単純化して効率よく実行しやすくする考え方であって、低性能という意味ではないんだ。
CISCは古いだけの方式ではない

CISCは昔の方式だからダメなの?

そう単純ではないよ。CISCにもメリットがあるし、現代のCPUでは内部的にさまざまな工夫がされている。CISCとRISCを単純に優劣で見るより、設計思想の違いとして理解するのが大事だよ。
まとめ
CISC・RISC・VLIW・MIMDは、どれもコンピュータの処理方式に関係する用語ですが、見ている観点が異なります。
最後にポイントを整理します。
| 用語 | 正式名称 | 意味 | 覚え方 |
|---|---|---|---|
| CISC | Complex Instruction Set Computer | 複雑な命令を持つCPU設計 | 高機能な命令 |
| RISC | Reduced Instruction Set Computer | 単純な命令を高速に処理するCPU設計 | 単純な命令を速く |
| VLIW | Very Long Instruction Word | 複数処理を長い命令にまとめる方式 | 長い命令で並列実行 |
| MIMD | Multiple Instruction, Multiple Data | 複数命令・複数データの並列処理 | 別々の仕事を同時実行 |

CISC、RISC、VLIWは命令の扱い方に関係して、MIMDは並列処理の分類なんだね。

その理解でバッチリ。まとめて覚えるなら、CISCは複雑命令、RISCは単純命令、VLIWは長い命令で並列実行、MIMDは複数命令・複数データの並列処理、と押さえておこう。

