プログラム内蔵方式
出典: フリー百科事典『ウィキペディア(Wikipedia)』
プログラム内蔵方式(—ないぞうほうしき)はメモリ上にプログラムを配置してから実行するコンピュータ・アーキテクチャである。ストアドプログラム方式とも言う。
「プログラム内蔵」の原語の stored program には内蔵という意味はないため不適当な和訳だと言われている。本来の stored program はさまざまな実行可能形式のプログラムを外部記憶から主記憶にロードしてすぐに使えるようにする機能のことである。 stored program は主記憶装置に入れ替え可能なプログラムのことである。 コンピュータに次々と別のプログラムを入れ替えて実行することで万能計算機として使うことができる。
日本語の「プログラム内蔵方式」を直に解釈すれば、もともと全てのコンピュータは「プログラム内蔵」で動作するため、間違いではないが意味がない。stored program かどうかの違いは、「内蔵プログラム」を外部からロードするだけで可変にできるか、ロードできないからプログラム固定なのか、ロードできないから毎回プログラミングをやり直すかの違いである。
stored program 方式でない古い計算機では、プログラムを配線によって行っていたが、これをハードウェアの改変や、「プログラム固定」と誤解している例も多い。配線プログラムはソフトウェアを配線しているのであり、ロードモジュールを直接、配線で変更するのである。stored program 方式でなければプログラムを入れ替えるとき、全てのプログラムを毎回、人手で変更することになる。実際の配線プログラミングの問題とは再配線でプログラムを入れ替えることは可能だけれども、毎回、人手で機械語プログラミングを繰り返すような作業になり、とてつもなく無駄であること。
またROMを記憶装置と解釈してしてROMプログラムを stored program の範疇に入れるのも間違っている。ROMはプログラムを入れ替えることができないので「プログラム固定」であり stored program ではない。実際にマスクROMとはマイクロチップ化した配線であり、しかも再配線による再プログラムさえ不可能である。ROMがソケットで換装できても stored program とは呼ばない。ROMが開発機によってオンボードで書き換えられても stored program とは呼ばない。
ところが日本語の「プログラム内蔵方式」を解釈してROMプログラムを「組み込み=プログラム内蔵」としてしまい、本来の stored program をRAMにロードする手間があるから「プログラム内蔵方式」ではないとする誤用も多い。
配線プログラムもマスクROMもメモリマッピングされ、実行されることに違いはないため「プログラム内蔵」であるが、どちらも入れ替え可能なロードモジュールではないので stored program ではない。
このように「プログラム内蔵」は厳密な意味で用いることのできない言葉であるため技術用語、専門用語としてはあまり使えない。きわめて曖昧な意味で使われている。