概要

フォン・ノイマン・アーキテクチャは、プログラム命令とデータが同じメモリ空間を共有するデジタルコンピュータ設計の概念モデルである。1940年代に最初に明確に示され、中央処理装置が、命令が作用するデータと同じメモリに格納された命令を選択し、解読し、実行する仕組みを説明する。このモデルはしばしばストアドプログラム概念と呼ばれ、汎用コンピュータの大多数の基礎となっている。

基本構成と動作

最も単純な形のフォン・ノイマン機では、いくつかの基本部品が繰り返しの動作サイクルの中で相互に働く。主な構成要素は次のとおりである。

  • 中央処理装置(CPU): メモリから命令を取り出し、解読し、算術演算や論理演算を行う部品。関連項目としてプロセッサも参照。
  • 主記憶: プログラムコードとデータの両方を保持する、ひとつのアドレス可能な記憶領域。
  • 制御装置: フェッチ、デコード、実行の順序を調整し、プログラムの流れを管理する。
  • 算術論理演算装置(ALU): 数学的処理と論理演算を実行する。
  • I/O機構: 周辺機器と通信するための入力・出力経路。

典型的な実行ループは、命令を取り出し、解読し、実行し、その結果を保存するという流れであり、この構成は実装しやすく、動作を理解しやすい。実際の機械では、性能向上のためにレジスタやキャッシュがよく追加される。

歴史と発展

ストアドプログラムの考え方は、1940年代にジョン・フォン・ノイマンと共同研究者たちが初期の電子計算機プロジェクトに取り組む中で発展し、広く推進された。こうした研究の多くがプリンストンで行われたため、この設計はプリンストン・アーキテクチャとも呼ばれることがある。もともとの概念については、このモデルジョン・フォン・ノイマンに関する資料を参照。コードとデータを同じメモリに置くという発想は、プログラムを変更するたびに配線を変えたり手動で再構成したりする必要があったそれ以前の機械からの、決定的な転換だった。

利点・限界・適応

フォン・ノイマン方式の利点には、設計の単純さ、プログラムを格納できる柔軟性、コンパイラやオペレーティングシステムの概念との広い互換性がある。よく知られた限界としては、いわゆるフォン・ノイマン・ボトルネックが挙げられる。共有されたメモリ経路では命令とデータが同じ帯域を競合するため、スループットが制限されうる。実用システムでは、キャッシュ、命令パイプライン、並列実行ユニット、分離されたメモリ階層などによってこの問題を緩和する。

変種と関連アーキテクチャ

主要な代替案はハーバード・アーキテクチャであり、命令メモリとデータメモリを分離して独立にアクセスできるようにする。これにより、特定の用途では競合が減り、スループットが向上する。多くの現代システムは、ストアドプログラムの利便性と、命令キャッシュや専用バスの分離を組み合わせたハイブリッド方式を採用している。このモデルが現代のコンピュータにどう適用されるかについては、コンピュータに関する一般的な資料や、プリンストンのような機関による技術要約を参照。

重要性と現代的意義

フォン・ノイマン・アーキテクチャは、今日でも基礎的な教育モデルであり、多くのデスクトップ、サーバー、そして多くの組み込みプロセッサの実用的なひな形である。その明快さは、オペレーティングシステム、コンパイラ設計、プログラミング・パラダイムの形成にも寄与した。さらに読む場合は、入門書や、モデルの解説主要人物の伝記に結びつく史料を参照するとよい。

関連項目: 現代の計算機システムにおけるプロセッサ設計、メモリ階層、アーキテクチャ上のトレードオフに関する議論。

モデルの詳細 | コンピュータ概説 | ジョン・フォン・ノイマン | プロセッサ | プリンストン