폰 노이만 아키텍처와 프로그램 내장 방식의 출발점

폰 노이만의 프로그램 내장 방식과 EDVAC 보고서, 실행 사이클, 병목 및 현대 컴퓨팅에 남긴 영향을 정리한다.

2026-08-14 · 최초 발행 2026-01-02

프로그램을 메모리에 넣는다는 발상

존 폰 노이만(John von Neumann, 1903-1957)은 프로그램 내장 방식(Stored Program Concept)을 제안하며 현대 컴퓨터 아키텍처의 토대를 만들었다. 1945년의 EDVAC 보고서는 명령어와 데이터를 동일한 메모리에 두고 순서대로 실행하는 구조를 제시했다. 작업을 바꾸기 위해 하드웨어를 다시 배선하지 않고 소프트웨어를 바꾸는 범용 컴퓨터의 출발점이었다.

폰 노이만은 헝가리 부다페스트에서 1903년에 태어났다. 본명은 Neumann János Lajos이며, 6세에는 8자리 암산을 했고 8세에는 미적분학을 습득했으며 10대에는 수학 논문을 발표했다. 베를린 대학과 ETH 취리히에서 공부한 뒤 1926년 수학 박사 학위를 받았고, 1933년 프린스턴 고등연구소 교수가 됐다. 양자역학, 게임 이론, 집합론에도 기여했다.

1943-1945년 맨해튼 프로젝트에서는 폭발 렌즈 계산처럼 복잡한 수치 계산이 필요했다. 그는 1944년 펜실베이니아 대학에서 ENIAC(Electronic Numerical Integrator and Computer)를 접했고, 프로그램을 바꾸는 일이 어려운 방식을 목격했다. 이 경험은 1945년 발표된 First Draft of a Report on the EDVAC와 프로그램 내장 방식의 제안으로 이어졌다.

노이만(1903-1957)수학자양자역학, 게임이론맨해튼 프로젝트원자폭탄 계산컴퓨터 과학Stored Program복잡한 계산필요성ENIAC만남EDVAC 보고서(1945)현대 컴퓨터아키텍처 확립

재배선하던 컴퓨터를 범용 기계로 바꾼 구조

ENIAC은 1946년 이전의 고정 프로그램(Fixed Program) 방식으로 동작했다. 작업을 바꾸려면 플러그와 케이블을 다시 연결해야 했고, 이 과정에는 수일이 걸렸다. Charles Babbage가 1837년에 설계한 해석 기관은 펀치 카드 프로그램과 하드웨어·프로그램 분리의 개념을 담았지만 실제로 제작되지는 못했다.

프로그램 내장 방식은 명령어를 데이터처럼 취급해 메모리에 저장한다. Program Counter(PC)가 명령어를 하나씩 인출하고 다음 명령어로 진행하므로, 작업 변경은 하드웨어 재배선이 아니라 소프트웨어 변경으로 처리할 수 있다. 하나의 하드웨어가 계산, 문서 작성, 게임, 통신 등 다양한 일을 맡을 수 있게 된 이유다.

기존 컴퓨터(ENIAC)고정 프로그램하드웨어 재배선작업 변경수일 소요Stored Program(폰 노이만)메모리에 저장한프로그램소프트웨어변경특수 목적컴퓨터범용컴퓨터

EDVAC이 제시한 컴퓨터의 뼈대

EDVAC 보고서는 중앙 연산 장치(CA: Central Arithmetic), 중앙 제어 장치(CC: Central Control), 메모리(M: Memory), 입력(I: Input), 출력(O: Output)을 구분했다.

CA는 산술·논리 연산을 담당하며 오늘날 ALU의 원형에 해당한다. CC는 명령어를 해석하고 실행을 제어하며 Program Counter를 관리한다. 메모리는 명령어와 데이터를 단일 주소 공간에 저장한다. 입력은 펀치 카드와 테이프처럼 외부 데이터를 받아들이고, 출력은 프린터와 디스플레이로 결과를 내보낸다.

명령어 실행은 Fetch-Decode-Execute Cycle로 설명된다. 메모리에서 명령어를 가져오고(Fetch), 해석한 뒤(Decode), 연산을 수행하고(Execute), 결과를 저장한다(Store). 이 구조는 70년 이상 유지됐으며 파이프라이닝과 슈퍼스칼라 같은 발전에도 근본 원리는 남아 있다.

노이만아키텍처중앙 연산 장치(CA)중앙 제어 장치(CC)메모리(M)입력(I)출력(O)ALU제어 장치PC프로그램 +데이터펀치 카드테이프프린터디스플레이

하나의 사람에게 귀속되지 않는 발명

Stored Program 개념의 기여를 두고 Eckert와 Mauchly, 폰 노이만 사이에는 논쟁이 있었다. ENIAC 개발자인 Eckert와 Mauchly는 이 개념을 먼저 구상했으며 폰 노이만이 아이디어를 도용했다고 주장했고, 특허 분쟁도 있었다.

폰 노이만은 EDVAC 보고서의 단독 저자로서 개념에 수학적 엄밀성과 이론적 기반을 부여했고, 보고서의 공개 배포는 확산에 영향을 미쳤다. 역사적으로는 협업의 산물로 평가된다. Eckert-Mauchly의 엔지니어링과 폰 노이만의 이론적 체계화가 모두 중요했다.

Alan Turing도 1936년 Turing Machine으로 범용 계산 모델과 프로그램 개념을 제시했다. 그는 1945년 영국에서 Automatic Computing Engine(ACE)을 통해 Stored Program 설계를 진행했으며, 이는 폰 노이만과 독립적인 병렬 개발이었다.

현재의 컴퓨터에 남은 흔적

PC, Mac, Linux와 x86, ARM 아키텍처는 폰 노이만 구조를 기반으로 한다. 데이터 센터, 클라우드 컴퓨팅, 분산 시스템도 이 계보 위에 놓여 있다. 스마트폰·IoT·자동차·가전제품 같은 임베디드 시스템에서는 일부 Harvard 구조를 결합한 Modified 폰 노이만 방식을 쓴다.

어셈블리는 기계어에 가까운 언어로 이 구조를 직접 반영한다. C, Python, Java처럼 추상화 수준이 높은 언어도 실행 환경에서는 여전히 폰 노이만 하드웨어 모델과 맞닿아 있다. Lisp와 Haskell 같은 함수형 프로그래밍은 비 폰 노이만 모델을 제안하지만, 실행 자체는 여전히 폰 노이만 하드웨어에서 이뤄진다.

운영체제의 프로세스 관리와 메모리 관리 역시 이 구조를 가정한다. 하드웨어와 독립적으로 애플리케이션을 개발할 수 있게 된 조건은 소프트웨어 산업과 소프트웨어 시장의 형성으로 이어졌다.

공유 메모리가 만드는 제약

폰 노이만 병목(Von Neumann Bottleneck)은 CPU 속도와 메모리 속도의 차이, 그리고 명령어와 데이터가 같은 버스를 공유하는 구조에서 발생한다. 메모리 대역폭은 처리 성능을 제한하는 요인이 된다.

이를 완화하기 위해 L1, L2, L3 캐시 메모리를 두고, 파이프라이닝으로 명령어를 병렬 처리한다. 슈퍼스칼라는 다중 실행 유닛을 사용하며, 분기 예측은 명령어를 미리 인출한다.

Harvard 아키텍처는 명령어 메모리와 데이터 메모리를 분리해 이 병목을 완화하며 DSP와 마이크로컨트롤러에서 사용된다. 멀티코어 프로세서, Massively Parallel 방식의 GPU, 분산 컴퓨팅도 병렬 처리의 방향을 보여 준다. 양자 컴퓨터는 중첩과 얽힘을 사용하는 비 폰 노이만 모델로 제시된다.

컴퓨터 밖으로 뻗은 연구

폰 노이만은 1928년 Minimax Theorem을 통해 제로섬 게임 이론을 다뤘고, 이는 경제학과 정치학에 응용됐다. Nash와 함께 노벨 경제학상의 기반으로도 언급된다.

양자역학에서는 힐베르트 공간, 연산자 이론, 측정 이론에 기여했다. Self-Replicating Automata는 생명 현상 모델링과 인공 생명의 시작에 영향을 주었고 Conway's Game of Life에도 영향을 미쳤다. 맨해튼 프로젝트에서는 원자폭탄 설계 계산과 폭발 렌즈 시뮬레이션을 수행하며 초기 컴퓨터 사용을 촉진했다.

노이만업적컴퓨터과학수학물리학경제학Stored Program아키텍처게임 이론집합론양자역학셀룰러 오토마타게임 이론경제 모델

1957년 그는 53세에 암으로 사망했다. 핵실험 방사선 노출이 원인으로 추정된다. 그의 프로그램 내장 방식은 폰 노이만 병목이라는 한계에도 불구하고 오늘날 수조 달러 시장으로 표현되는 컴퓨터 산업과 디지털 혁명의 토대가 됐다.

폰 노이만컴퓨터 구조EDVAC프로그램 내장 방식게임 이론