FE EXAM

ノイマン型コンピュータ(プログラム内蔵方式)

プログラムとデータを同じメモリに格納し逐次実行する基本方式

DIAGRAM
CPUプログラムデータ入出力
プログラム内蔵方式(ストアドプログラム方式)CPU中央処理装置制御装置命令を解読し各装置に指令演算装置(ALU)計算・論理演算を実行レジスタPC(次の命令番地)など逐次実行1命令ずつ順番に処理MEMORY主記憶(プログラム+データが同居)プログラム領域[0]LOAD 100[1]ADD 101[2]STORE 102データ領域[100]5[101]3[102]0入力装置キーボードマウス など出力装置ディスプレイプリンタ など命令フェッチデータ読み書きバス(bus)特徴① プログラムもデータも同じメモリに数値(2進数)として記憶する(プログラム内蔵方式)② CPUがメモリから命令を1つずつ取り出して順番に実行(逐次実行)

ノイマン型 と ハーバードアーキテクチャの違い

ノイマン型(メモリ1つ)CPU1つのメモリ命令+データ同居命令とデータが同じバスを通る → 構造が単純・安価ハーバード(メモリ2つ)CPU命令用メモリデータ用メモリ命令とデータを別々のバスで同時アクセス → 高速だが複雑
解説

📌
ノイマン型コンピュータとは

CPUプログラムデータ同じメモリに両方を記憶するのがノイマン型

ノイマン型コンピュータとは、プログラム(命令の並び)とデータを同じメモリ(=主記憶のこと)に記憶し、CPU(=中央処理装置のこと)が命令を1つずつ取り出して順番に実行する方式のコンピュータです。数学者のフォン・ノイマンが提唱したことからこの名で呼ばれます。今あなたが使っているパソコンやスマートフォンも、ほとんどがこのノイマン型です。

身近な例で考えると、料理人が1冊のノートに「レシピ(手順)」と「材料リスト(データ)」を一緒に書き留めて、上から1行ずつ読んで作業する様子に似ています。レシピも材料メモも同じノートにある(同じメモリ)、そして1行ずつ順に読む(逐次実行)――これがノイマン型の本質です。

上の図解では、CPUメモリ入出力装置がバス(bus=データの通り道)で結ばれています。メモリの中にプログラム領域データ領域が同居している点が最大の特徴です。

📌
プログラム内蔵方式

PCが指す番地の命令を順に実行[0] LOAD[1] ADD[2] STORE命令もデータも 2 進数の数値としてメモリに記憶

プログラム内蔵方式(ストアドプログラム方式)とは、実行する命令の並びをあらかじめメモリに記憶しておき、CPUがそれを読み出して動かす仕組みのことです。命令もデータも、メモリの中では同じ「2進数の数値」として区別なく記憶されています。

この方式の利点を整理すると次のとおりです。
柔軟性が高い:メモリの内容(プログラム)を書き換えるだけで、ハードウェアを変えずに別の処理を実行できる
汎用性がある:1台のコンピュータで計算・文書作成・ゲームなど何でもこなせる
逐次実行と相性が良い:命令が番地(アドレス)順に並ぶので、PC(プログラムカウンタ)で位置を管理しやすい

プログラム内蔵方式が登場する前のコンピュータは、配線をつなぎ替えて動作を変える(=処理ごとに人が物理的に組み替える)必要がありました。プログラムをメモリに置けるようになったことで、ソフトウェアを入れ替えるだけで動作を変えられるようになったのが大きな進歩です。

📌
ハーバードアーキテクチャとの違い

ハーバードアーキテクチャとは、命令用メモリとデータ用メモリを分け、それぞれ別のバスでアクセスする方式です。ノイマン型がメモリ1つを共用するのに対し、ハーバード型はメモリを2つに分けている点が決定的な違いです。

項目ノイマン型ハーバード型
メモリ1つ(命令+データ同居)2つ(命令用・データ用に分離)
バス共用(同時アクセス不可)別々(同時アクセス可能)
速度命令とデータが取り合いになる同時に読めるため高速
構造単純・安価複雑・コスト高
主な用途PC・スマホなど汎用機DSP・マイコンなど高速処理

ノイマン型には「ノイマンボトルネック」と呼ばれる弱点があります。命令とデータが同じバスを通るため、CPUが命令を取り出している間はデータを読めず、処理速度の上限になってしまうのです。1本道の通路を、荷物(データ)と作業指示書(命令)が交互に通る渋滞をイメージすると分かりやすいです。

ハーバード型は通路を2本に分けることでこの渋滞を解消し、高速化します。両者は「ノイマン型=メモリ共用・逐次実行・プログラム内蔵」「ハーバード型=命令とデータでメモリ/バスを分離」という対比で整理できます。

📌
ノイマンボトルネック(なぜ速度に限界があるのか)

CPU超高速バス(1本道)ここで詰まるMEM低速CPUは高速でも、バス経由のメモリ読み書きが追いつかない

ノイマンボトルネックとは、CPUとメモリをつなぐバス(データの通り道)が1本しかないため、命令の取り出しとデータの読み書きが取り合いになって処理速度が頭打ちになる現象です。

なぜボトルネックになるのかを順を追って説明すると次のとおりです。
・CPUは毎秒何十億回もの計算ができるほど高速
・しかしメモリから命令やデータを読み込む速さは、CPUの計算速度に追いつかない
・さらにノイマン型では命令もデータも同じバスを共有するため、「命令を取りに行く間はデータを運べない」という状態が続く
・結果として、CPUはメモリの応答を待って止まる(待ち時間)ことが多くなる

この問題を和らげるために、現代のCPUはキャッシュメモリ(CPUのすぐそばに置く超高速の小さなメモリ)を搭載しています。よく使うデータをキャッシュに入れておくことで、バス経由でメモリに取りに行く回数を減らし、待ち時間を短縮しています。

📌
コンピュータの5大装置

CPU制御装置演算装置記憶装置入力装置出力装置制御装置・演算装置 = CPU、記憶装置・入力・出力で合計5大装置

コンピュータは5大装置から構成されています。ノイマン型の図解と照らし合わせると、それぞれの役割がはっきりします。

装置主な役割具体例
制御装置命令を解読し、各装置に指令を出すCPUの中(命令デコーダなど)
演算装置計算・論理判断を行う(ALU)CPUの中(ALU)
記憶装置プログラムやデータを記憶するメモリ(RAM)、ハードディスク
入力装置外部から情報を取り込むキーボード、マウス
出力装置処理結果を外部に出すディスプレイ、プリンタ

制御装置と演算装置をまとめたものがCPU(=中央処理装置)です。5大装置のうち入力→記憶→演算→制御→出力という流れがノイマン型コンピュータの基本的な処理の流れです。プログラムは記憶装置に置かれ、制御装置が読み出して演算装置に実行させ、結果を出力装置に渡します。

関連コンテンツ