ノイマン型コンピュータ 【von Neumann architecture】 ストアードプログラム方式 / stored-program computer / プログラム内蔵方式 / プログラム格納方式
概要
ノイマン型コンピュータ(von Neumann architecture)とは、プログラムをデータとして記憶装置に格納し、これを順番に読み込んで実行するコンピュータ。現在のコンピュータのほとんどがこの方式を採用している。「コンピュータの父」とも呼ばれるアメリカの数学者、ジョン・フォン・ノイマン(John von Neumann)の名に由来する。第二次大戦前後に生まれた最初期の電子式コンピュータは真空管の配列や配線が計算内容をそのまま反映したものになっており、別の計算を行うためには配線をすべてやり直さなければならず、汎用性が著しく乏しかった。
ノイマンら新型コンピュータ「EDVAC」開発チームは、計算手順や入力値をハードウェアから独立させてデータとして外部から与え、汎用の回路群でこれを処理する方式を構想した。ソフトウェア(コンピュータプログラム)という概念もこのとき誕生した。
この方式が「ノイマン型」と呼ばれるのは、最初に発表された “First Draft of a Report on the EDVAC” という文書の著者がノイマンだったからだが、ノイマン自身はEDVAC開発プロジェクトには後から参加しており、プログラム内蔵方式というアイデアの確立には当初から関わっていたジョン・エッカート(John Presper Eckert)とジョン・モークリー(John William Mauchly)の功績の方が大きかったとされる。
フォンノイマンボトルネック (von Neumann bottleneck)
ノイマン型コンピュータでは、演算装置および制御装置(現代ではCPUとして単一の装置になっている)と主記憶装置(メインメモリ)の間の伝送路(バス)を通じて命令やデータを運んでおり、その速度が性能の律速となる隘路(ボトルネック)となりやすい。これを「フォンノイマンボトルネック」あるいは「ノイマンボトルネック」という。
ノイマン型コンピュータでは主記憶に命令が置かれているため、次の命令を実行するためには必ずバスを通じて主記憶から命令を取り出さなければならない。CPU内部の処理性能がいくら向上しても、主記憶からの読み込み速度が追いつかなければ読み込み待ち時間が長くなるだけで性能の向上には繋がらなくなってしまう。
現代のコンピュータではこの問題を緩和するため、CPU内部に高速に読み書きできる少容量のキャッシュメモリを内蔵し、これをさらに何段階も階層的に設ける(1次キャッシュ/2次キャッシュ/3次キャッシュ)ことで、同じ命令やデータを何度も繰り返し主記憶から取り出さなくてもよいように工夫されている。