ノイマン型アーキテクチャ
ノイマン型アーキテクチャは、現代の
コンピュータの基本的な構成法の一つであり、プログラム内蔵方式を採用しています。このアーキテクチャは、
CPU、アドレス指定可能なメモリ、およびそれらを接続するバスで構成され、命令(プログラム)とデータを区別せずにメモリに格納します。この概念は、現代の
コンピュータの基盤となっており、その重要性は計り知れません。
概要
ノイマン型アーキテクチャの核心は、プログラムとデータを同じメモリ空間に格納することです。これにより、
CPUはメモリから命令を読み出し、順次実行することができます。このシンプルながら強力な仕組みが、
コンピュータの汎用性を支えています。このアーキテクチャは、
ジョン・フォン・ノイマンによって提案されたとされていますが、その貢献度については議論の余地があり、実際に
コンピュータを開発した他の研究者の功績も考慮に入れるべきだという意見もあります。
理論
理論的には、ノイマン型
コンピュータは、メモリを必要に応じて無制限に拡張できると仮定した場合、
チューリング完全であるとみなすことができます。これは、ノイマン型
コンピュータが、理論的にあらゆる計算問題を解決できる可能性を示唆しています。また、
二進法を採用することで、
論理演算を組み合わせるだけで、あらゆるデジタル処理が可能になります。ノイマン型
コンピュータを計算モデルとして定義したものとして、RAMマシンがあります。
ノイマンの思考は、チューリングマシンよりも
ゲーデル数からの直接的な影響を受けているという説もあります。また、プログラムの
チューリング完全性は、命令の書き換えなしに、
インタプリタの原理で実現できることがわかっています。近年では、セキュリティ上の理由から、命令が置かれたメモリ領域への書き込みが禁止されることもあります。このような状況から、
組み込みシステムのようなプログラムを書き換える必要がないシステムでは、命令とデータを分離するハーバードアーキテクチャが採用されることがあります。しかし、汎用
コンピュータでは、プログラムの柔軟な変更や、
システムソフトウェアの実行のために、ノイマン型のアーキテクチャが依然として重要です。
性能面では、バスの帯域幅が
ボトルネックになり、
コンピュータ全体の性能を制限してしまうことがあります。これは、フォン・ノイマン・
ボトルネックと呼ばれています。
歴史
EDVACの開発は遅れ、世界初のプログラム内蔵方式の電子式
コンピュータはSSEM、実用的なマシンとしては
EDSACとなりました。これらのマシンは、ノイマンの報告書に影響を受けているとされています。EDVACの開発が遅れた理由の一つとして、エッカートとモークリーの離脱が挙げられます。ノイマンの草稿に近いマシンとしては、EDVACの他にIASマシンがあります。
池田敏雄は、1965年の報告で、電子計算機の基本概念はノイマンによるプログラム内蔵方式であると述べています。さらに、ノイマンは「
コンピュータはすべて
二進法であるべきだ」と主張したとしていますが、池田は、十進演算とのバランスも考慮すべきだと指摘しています。
現状
21世紀初頭の
コンピュータのほとんどはノイマン型です。データフローマシンなどの非ノイマン型アーキテクチャも存在しますが、主流ではありません。ノイマン型アーキテクチャでは、次に実行する命令がメモリに順番に並んでおり、
CPUがバスを通して順番に取り出して実行します。データフローマシンでは、必要なデータが揃った命令を検出する仕組みがあります。
アウト・オブ・オーダー実行は、部分的に非ノイマン的であると言えます。
ハーバードアーキテクチャを非ノイマン型とみなすことは一般的ではありません。
再構成可能コンピューティング、
光コンピューティング、量子
コンピュータなどの新しい計算手法を指す言葉として「非ノイマン」という言葉が使われることもありますが、具体的な意味は文脈によって異なります。データフロープロセッサの一例として、NECのμPD7281(ImPP)があります。これは画像処理への応用を目的としたもので、非ノイマン型として言及されています。
また、キャッシュ、主記憶と補助記憶のようなメモリ階層、割り込み、チャネルコントローラやDMAのような
CPUを介さない入出力なども、ノイマン型の改良とみなされており、非ノイマン型とは見なされません。
まとめ
ノイマン型アーキテクチャは、そのシンプルさと汎用性から、現代の
コンピュータの基盤となっています。プログラムとデータを同じメモリに格納するという基本的なアイデアは、多くの
コンピュータの動作原理を支えています。しかし、性能の
ボトルネックや、新しい計算手法への対応など、課題も存在します。今後も、ノイマン型アーキテクチャをベースにした様々な技術革新が進むことが予想されます。