フリンの分類でアーキテクチャを丸裸にしてみよう

こんにちは。ゆうせいです。

スーパーコンピュータから、あなたの手の中にあるスマートフォンのプロセッサまで、世の中には多種多様なコンピュータが存在します。これだけ種類があると、「一体どうやって整理すればいいんだろう?」と疑問に思うかもしれませんね。

実は、コンピュータの「計算の仕方」や「考え方」の根本的な性格を、とてもシンプルに分類する方法があるんです。それが、今回ご紹介する「フリンの分類(Flynn's Taxonomy)」です。

なんだか難しそうな名前ですか? 大丈夫!これはコンピュータの性格を4タイプに診断する、とても分かりやすいものさしです。この記事を読めば、あなたもコンピュータアーキテクチャの専門家へ一歩近づけますよ!

分類のための「2つのものさし」

フリンの分類を提唱したのは、マイケル・J・フリンという計算機科学者です。彼は、コンピュータのアーキテクチャを、たった2つの「流れ」に着目して分類することを考えました。

  1. 命令の流れ(Instruction Stream)
  2. データの流れ(Data Stream)

いきなり専門用語が出てきましたが、焦らないでくださいね。例えるなら、料理のレシピブックです。

「命令の流れ」は、レシピそのものです。「玉ねぎを切れ」「肉を炒めろ」といった、コンピュータが実行すべき一連の指示やコマンドのことですね。これが1種類なら「単一(Single)」、複数種類なら「複数(Multiple)」となります。

「データの流れ」は、レシピで使う食材です。玉ねぎや肉といった、命令によって処理される対象のことです。これも、処理する食材が1セットなら「単一(Single)」、複数セット同時なら「複数(Multiple)」と考えます。

フリンの分類は、この2つの流れの組み合わせで、コンピュータを4つのタイプに分類するのです。

4つの性格タイプを見てみよう!

それでは、いよいよ4つのタイプを一つずつ見ていきましょう。それぞれの性格を、身近な職業に例えてみますね。

1. SISD (Single Instruction, Single Data)

  • 命令の流れ:単一
  • データの流れ:単一

これは「一つの指示」で「一つのデータ」を順番に処理していく、最も古典的なタイプです。

例え話:孤高の時計職人

SISDは、一人の時計職人が、一つの設計図(単一の命令)に従って、一つの時計の部品(単一のデータ)を一つずつ、コツコツと組み立てていく様子に似ています。非常にシンプルで、一つの作業に集中する職人気質な性格ですね。昔のシングルコアCPUなどがこれにあたり、すべてのコンピュータの基本形とも言えます。

2. SIMD (Single Instruction, Multiple Data)

  • 命令の流れ:単一
  • データの流れ:複数

これは「一つの指示」で「たくさんのデータ」を一度に処理する、効率重視のタイプです。

例え話:有能な指揮官と兵士の集団

SIMDは、一人の指揮官(単一の命令)が「進め!」と号令をかけると、100人の兵士(複数のデータ)が一斉に前進するようなイメージです。同じ作業をたくさんの対象に一気に行うのが得意で、特に画像処理や科学技術計算といった分野で大活躍します。GPUやCPUの拡張機能は、まさにこの性格を持っています。

3. MIMD (Multiple Instruction, Multiple Data)

  • 命令の流れ:複数
  • データの流れ:複数

これは「複数の指示」で「たくさんのデータ」をそれぞれ同時に処理する、最も柔軟でパワフルなタイプです。

例え話:巨大な厨房で働くシェフ軍団

MIMDは、巨大な厨房でたくさんのシェフたちが、それぞれ違うレシピ(複数の命令)を手に、各自の食材(複数のデータ)を使って、和食、中華、フレンチなどを同時に作っている状態です。非常に柔軟性が高く、全く違う種類のタスクを並行してこなせます。現代のマルチコアCPUやスーパーコンピュータは、このMIMDの代表格です。

4. MISD (Multiple Instruction, Single Data)

  • 命令の流れ:複数
  • データの流れ:単一

これは「複数の指示」が「一つのデータ」を同時に処理するという、少し特殊なタイプです。

例え話:航空機のフライトデータを分析する専門家パネル

MISDは、少しイメージしにくいかもしれませんが、例えば一つのフライトデータ(単一のデータ)を、複数の専門家(複数の命令)が同時に分析するような状況です。Aさんは「天候要因」、Bさんは「機械の故障」、Cさんは「パイロットの操作」というように、それぞれ違う観点から同じデータをチェックするわけですね。

実用化されている例は非常に稀で、主にシステムの信頼性を高めるための耐故障システムなど、特殊な分野で理論的に検討されることがある、少しミステリアスな性格の持ち主です。

まとめ:コンピュータの家系図

4つのタイプを、もう一度表で整理してみましょう。

分類命令の流れ (Instruction)データの流れ (Data)アナロジー主な例
SISD単一 (Single)単一 (Single)一人の時計職人初期のコンピュータ、単純なマイコン
SIMD単一 (Single)複数 (Multiple)指揮官と兵士の集団GPU、CPUのベクトル演算
MIMD複数 (Multiple)複数 (Multiple)巨大な厨房のシェフ軍団マルチコアCPU、スパコン
MISD複数 (Multiple)単一 (Single)専門家パネル非常に稀、耐故障システムなど

これからの学習のために

フリンの分類、いかがでしたか? このシンプルな「4つの性格診断」を知っているだけで、コンピュータの仕組みに関するニュースや技術記事が、ぐっと身近に感じられるようになるはずです。

もちろん、現代のコンピュータはもっと複雑です。例えば、MIMDであるマルチコアCPUの各コアの中に、SIMDの機能が搭載されている、といったハイブリッドな構造が当たり前になっています。

しかし、その複雑な構造も、元をたどればこの4つの基本タイプの組み合わせに過ぎません。まずはこの分類をしっかりと理解することが、コンピュータアーキテクチャという広大な世界を探検するための、最高の「地図」になるでしょう。

次はこの知識を元に、CPUやGPUがなぜそれぞれ違うタスクを得意とするのか、改めて考えてみると面白い発見があるかもしれませんよ!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。