Stored Program Concept

A design where program instructions and data are stored in the same memory.

Stored Program Concept는 컴퓨터 아키텍처의 기본 원칙으로, John von Neumann 등이 개척했으며, 컴퓨터 명령어(프로그램)가 프로그램이 작동하는 데이터와 동일한 메모리에 저장된다는 것을 명시합니다. 이는 이전의 전자 컴퓨팅 장치와는 대조적인데, 당시에는 명령어가 하드와이어링되거나 물리적 스위치 및 플러그보드를 통해 설정되었습니다. Stored Program 컴퓨터에서 CPU(Central Processing Unit)는 메모리에서 명령어를 가져와(fetch) 디코딩하고 순차적으로 실행할 수 있습니다. 이를 통해 컴퓨터는 이진 형태로 표현되고 메모리에 로드될 수 있는 모든 프로그램을 실행할 수 있는 범용 기계가 될 수 있습니다. 메모리에서 프로그램을 수정할 수 있는 능력은 self-modifying code도 가능하게 하지만, 보안 및 유지보수상의 이유로 현대 프로그래밍에서는 일반적으로 권장되지 않습니다. 이 개념에 기반한 von Neumann architecture는 일반적으로 CPU, 메모리(명령어 및 데이터 모두용), 입출력 메커니즘, 그리고 이 구성 요소 간의 통신을 위한 system bus를 포함합니다. 이 아키텍처는 거의 모든 현대 디지털 컴퓨터의 기반을 형성합니다.

        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;

      

🧠 지식 테스트

1 / 4

🧒 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.

🔗 관련 용어

선행 지식:

📚 출처