プログラム内蔵方式
プログラム内蔵方式(プログラムないぞうほうしき)、ストアドプログラム方式は、主記憶に置かれたプログラムを実行する、という、コンピュータ・アーキテクチャの方式の一つである。 プログラム内蔵方式のうちENIACプロジェクトで考案されたものは、プロジェクトに加わっていた有名な数学者フォン・ノイマンの名を冠してノイマン型アーキテクチャともいう[1]。
経緯
編集エッカートとモークリーの率いるENIACプロジェクトで、プログラムの変更をする際に生じていた結線の手間を減らすために考案されたという説が有力である[1]。
初期の計算機において、プログラム内蔵でプログラムは全てROMに置いた、というものはないため、ノイマン型で実現されるプログラムが書き換え可能という性質を含めて指すこともある。
しかし、プログラム内蔵方式か否かについては、今日一般に、プログラムを置く記憶装置が書き換え可能か否かは問わず、またいわゆるハーバード・アーキテクチャも普通プログラム内蔵方式とすることが多い。一方、プログラムを内蔵している、と見えるものの一種であるが、記憶装置に置かれた命令ではなく、ワイヤードロジックでプログラミングをしているものは普通プログラム内蔵方式としない。
プログラムを置く直接の記憶装置が、CPUが普通に読む(読み書きする)電子的(ないし電気的)な主記憶か、そうでない補助記憶か、という点は、今日そんなデザインはまずないが、この分類では重視する。次のような歴史的理由による。
歴史的には、初期のプログラム駆動型の計算機には、主記憶(ROM含む)はデータの置き場としてのみ使い、プログラムは全てパンチカードや鑽孔テープのような補助記憶で与えられ、それを直接読み込みながら実行する、というものがあった。当然ながらジャンプが極端に制限されるなどプログラミング的に非常に制限され、プログラムの実行速度が読み込み装置の速度に制限されるため、すぐに古いデザインとみなされるようになった。そのような設計を、プログラム内蔵方式でない、とする分類であった。電子式でない、リレーを使ったコンピュータなど、機器自体の動作が紙テープリーダと比してたいして速くなく、素子のコストが記憶装置として使うには高い機械では、テープを直接実行するものが多かった[2]。リレー式コンピュータの例としては、日本で建造されたものにFACOM 128やETL MarkIとII[3]がある。