「プログラム内蔵方式」の版間の差分

削除された内容 追加された内容
Undo revision 21698348 by ちぇす (会話)
Undo revision 22999037 by 218.42.68.37 (会話) 標記に対する個人の評論文に差し替えられているためリバート
1行目:
'''プログラム内蔵方式'''(—ないぞうほうしき)は[[主記憶装置|メモリ]]上に[[プログラム (コンピュータ)|プログラム]]を配置し(ほとんどの場合それを[[キャッシュメモリ|キャッシュ]]などに移動してから)読み込んで実行する[[コンピュータ・アーキテクチャ]]である。'''ストアドプログラム方式'''とも言う。
 
以下のようなタイプが存在する。
「プログラム内蔵」の原語の stored program には内蔵という意味はないため不適当な和訳だと言われている。本来の stored program はさまざまな実行可能形式のプログラムを外部記憶から主記憶にロードしてすぐに使えるようにする機能のことである。 stored program は主記憶装置に入れ替え可能なプログラムのことである。 コンピュータに次々と別のプログラムを入れ替えて実行することで万能計算機として使うことができる。
*[[ノイマン型|ノイマン・アーキテクチャ]]
*[[ハーバード・アーキテクチャ]]
 
プログラム内蔵方式以前の計算機では、プログラムは配線によって行われていたが、プログラム内蔵方式の計算機では、プログラムの変更は、記憶装置上に保存されている命令情報の書き換えに過ぎない。つまり、[[ハードウェア]]の改変をすることなくコンピュータにさまざまな機能をもたせることが可能となった。それは即ち、コンピュータは、[[ソフトウェア]]という概念なしには語れなくなったということでもある。
日本語の「プログラム内蔵方式」を直に解釈すれば、もともと全てのコンピュータは「プログラム内蔵」で動作するため、間違いではないが意味がない。stored program かどうかの違いは、「内蔵プログラム」を外部からロードするだけで可変にできるか、ロードできないからプログラム固定なのか、ロードできないから毎回プログラミングをやり直すかの違いである。
 
1970年代以降のほとんど全ての計算機はプログラム内蔵方式である。
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 ではない。
 
このように「プログラム内蔵」は厳密な意味で用いることのできない言葉であるため技術用語、専門用語としてはあまり使えない。きわめて曖昧な意味で使われている。
 
[[Category:コンピュータの仕組み|ふろくらむないそうほうしき]]