Stored Program Concept
A design where program instructions and data are stored in the same memory.
Stored Program Conceptは、コンピュータアーキテクチャにおける基本的な原則であり、John von Neumannらによって提唱されました。この原則は、コンピュータの命令(プログラム)が、プログラムが操作するデータと同じメモリに格納されることを規定しています。これは、命令がハードワイヤードであったり、物理的なスイッチやプラグボードで設定されていた以前の電子計算機とは対照的です。Stored Program Computerでは、CPU(Central Processing Unit)はメモリから命令をフェッチし、デコードし、シーケンシャルに実行することができます。これにより、コンピュータは汎用マシンとなり、バイナリ形式で表現されメモリにロードできるあらゆるプログラムを実行できるようになります。メモリ内のプログラムを変更できる能力は、self-modifying codeも可能にしますが、この手法はセキュリティと保守性の理由から、現代のプログラミングでは一般的に推奨されていません。このコンセプトに基づいたVon Neumann architectureは、通常、CPU、メモリ(命令とデータの両方)、入出力メカニズム、およびこれらのコンポーネント間の通信のためのsystem busを含みます。このarchitectureは、事実上すべての現代のデジタルコンピュータの基盤を形成しています。
graph LR
Center["Stored Program Concept"]:::main
Pre_computer_science["computer-science"]:::pre --> Center
click Pre_computer_science "/terms/computer-science"
Rel_advanced_propulsion_systems["advanced-propulsion-systems"]:::related -.-> Center
click Rel_advanced_propulsion_systems "/terms/advanced-propulsion-systems"
Rel_file_systems["file-systems"]:::related -.-> Center
click Rel_file_systems "/terms/file-systems"
Rel_pointer["pointer"]:::related -.-> Center
click Rel_pointer "/terms/pointer"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 理解度チェック
🧒 5歳でもわかるように説明
それは、キッチンの中にレシピ本があるようなものです。食事ごとに新しいキッチンを建てる代わりに、キッチン(コンピュータ)に、本の中からどのレシピ(プログラム)に従うかを伝えるだけで、そこにある材料(データ)を使ってくれます。
🤓 Expert Deep Dive
The Stored Program Concept, embodied by the von Neumann architecture, revolutionized computing by decoupling instruction logic from hardware configuration. The core innovation lies in treating instructions as data, enabling them to be fetched, processed, and even modified by the CPU itself. This unified memory space, however, leads to the 'von Neumann bottleneck,' where the shared bus between the CPU and memory limits throughput, as instructions and data compete for access. Architectures like the Harvard architecture, which use separate memory spaces and buses for instructions and data, mitigate this bottleneck but sacrifice the flexibility of unified memory. The concept's significance lies in its enabling of programmability, leading to the development of operating systems, compilers, and the vast software ecosystem we rely on today. Its theoretical underpinnings relate to Turing completeness and the universality of computation.