EDVAC — 프로그램을 메모리에 저장한다는 새로운 컴퓨터 구조의 탄생
컴퓨터의 역사를 이야기할 때 ENIAC은 흔히 최초의 전자식 범용 컴퓨터로 소개됩니다. 하지만 오늘날 우리가 사용하는 컴퓨터의 기본적인 동작 원리를 이해하려면 ENIAC과 함께 반드시 살펴봐야 할 컴퓨터가 있습니다. 바로 EDVAC(Electronic Discrete Variable Automatic Computer)입니다.
EDVAC은 단순히 더 빠른 컴퓨터를 만드는 데 그치지 않고, 프로그램을 메모리에 저장하고 필요할 때 불러와 실행하는 방식을 채택했습니다. 이 아이디어는 이후 현대 컴퓨터의 기본 구조가 된 프로그램 내장 방식(Stored-Program Architecture)의 중요한 출발점이 되었습니다.
오늘날 우리가 사용하는 PC, 스마트폰, 서버, 슈퍼컴퓨터까지 대부분의 컴퓨터가 프로그램과 데이터를 메모리에 저장하고 CPU가 이를 읽어 실행하는 이유도 바로 이와 같은 컴퓨터 구조의 발전에서 시작되었습니다.
1. ENIAC의 한계에서 새로운 컴퓨터가 탄생하다
1940년대 초반 미국에서는 제2차 세계대전과 함께 복잡한 탄도 계산을 빠르게 처리할 수 있는 기계가 필요했습니다. 당시 개발된 대표적인 컴퓨터가 ENIAC입니다. ENIAC은 수많은 진공관을 이용해 기존의 기계식 계산기보다 훨씬 빠른 전자식 계산을 가능하게 했습니다. 하지만 한 가지 큰 문제가 있었습니다. 바로 프로그램을 변경하는 일이 매우 어려웠다는 것입니다. ENIAC은 특정 계산을 수행하도록 프로그램을 설정하기 위해 케이블을 연결하거나 스위치를 조작해야 했습니다.
즉,
"계산할 데이터를 바꾸는 것"과
"컴퓨터가 어떤 계산을 할 것인지 바꾸는 것"
이 상당히 번거로운 작업이었습니다. 새로운 계산을 하려면 작업자가 직접 컴퓨터의 배선과 설정을 변경해야 했습니다. 오늘날에는 프로그램을 실행할 때 파일을 클릭하거나 명령어를 입력하면 되지만, 당시에는 프로그램 자체를 기계의 하드웨어 구성에 가깝게 설정해야 했던 것입니다. 이러한 문제를 해결하기 위해서는 프로그램 역시 데이터처럼 메모리에 저장하면 어떨까?라는 새로운 생각이 필요했습니다.
2. EDVAC의 등장
이러한 새로운 컴퓨터 구조를 구현하기 위해 개발된 컴퓨터가 EDVAC입니다. EDVAC은 Electronic Discrete Variable Automatic Computer의 약자로, ENIAC과 마찬가지로 미국에서 개발된 초기 전자식 컴퓨터입니다. EDVAC 개발에는 여러 과학자와 공학자들이 참여했으며, 특히 존 폰 노이만(John von Neumann)의 이름이 컴퓨터 역사에서 매우 중요하게 등장합니다. 폰 노이만은 EDVAC과 관련된 설계 아이디어를 정리하면서 컴퓨터가 프로그램과 데이터를 어떻게 처리해야 하는지에 대한 중요한 개념을 제시했습니다. 이 과정에서 등장한 핵심 개념이 바로 프로그램 내장 방식(Stored Program)입니다.
3. 가장 중요한 변화 — 프로그램을 메모리에 저장하다
EDVAC이 컴퓨터 역사에서 중요한 이유는 단순히 전자식 계산을 수행했기 때문이 아닙니다.
가장 중요한 변화는 프로그램을 메모리에 저장한다는 개념이었습니다.
기존 방식에서는 컴퓨터의 계산 방법을 변경하기 위해 하드웨어 설정을 변경해야 했습니다.
하지만 프로그램 내장 방식에서는 프로그램을 숫자나 데이터와 같은 형태로 메모리에 저장합니다.
컴퓨터는 메모리에서 명령어를 읽고 그 명령어에 따라 계산을 수행합니다.
개념적으로 보면 다음과 같습니다.
프로그램 → 메모리에 저장 → CPU가 명령어를 읽음 → 명령어 실행 → 다음 명령어 실행
이 방식이 자리 잡으면서 컴퓨터는 특정 계산만 수행하는 기계가 아니라 다양한 프로그램을 실행할 수 있는 범용적인 기계로 발전할 수 있게 되었습니다.
4. 프로그램과 데이터가 같은 메모리에 들어간다는 발상
프로그램 내장 방식의 또 다른 중요한 특징은 프로그램과 데이터를 동일한 메모리 공간에서 다룰 수 있다는 것입니다.
예를 들어 어떤 프로그램이 숫자 100과 200을 더한다고 생각해 보겠습니다.
메모리에는 계산에 필요한 데이터뿐만 아니라 다음과 같은 명령어도 저장될 수 있습니다.
- 데이터를 메모리에서 읽어라
- 두 숫자를 더하라
- 결과를 저장하라
- 다음 명령어로 이동하라
CPU는 메모리에서 명령어를 하나씩 가져와 해석하고 실행합니다.
이 구조 덕분에 프로그램을 바꾸고 싶다면 컴퓨터의 배선을 다시 연결할 필요 없이 메모리에 저장된 프로그램을 변경하면 됩니다.
이것은 컴퓨터 사용 방법을 근본적으로 바꾼 혁신이었습니다.
5. 폰 노이만 구조와 EDVAC
EDVAC의 역사에서 빠질 수 없는 개념이 폰 노이만 구조(Von Neumann Architecture)입니다.
오늘날 흔히 폰 노이만 구조라고 부르는 컴퓨터의 기본 개념은 대략 다음과 같은 구성으로 설명할 수 있습니다.
① CPU
② 메모리
③ 입력 장치
④ 출력 장치
그리고 CPU 내부에는 일반적으로 제어 장치와 산술논리연산장치(ALU)가 포함됩니다.
가장 중요한 것은 메모리에 프로그램과 데이터가 함께 저장될 수 있다는 점입니다.
CPU는 메모리에 저장된 명령어를 순서대로 읽어 실행합니다.
이를 간단하게 표현하면 다음과 같습니다.
메모리 → 명령어 가져오기(Fetch) → 명령어 해석(Decode) → 명령어 실행(Execute) → 다음 명령어
오늘날 CPU의 기본적인 명령어 처리 과정에서도 이러한 개념을 찾아볼 수 있습니다.
6. EDVAC이 ENIAC보다 혁신적이었던 이유
ENIAC과 EDVAC은 모두 초기 전자식 컴퓨터의 발전 과정에서 중요한 위치를 차지하지만 두 컴퓨터가 갖는 역사적 의미에는 차이가 있습니다.
ENIAC
ENIAC은 전자식 계산기의 가능성을 보여주었습니다.
진공관을 이용해 매우 빠른 전자식 계산을 수행했고, 거대한 규모의 계산 작업을 자동화할 수 있다는 것을 증명했습니다.
하지만 프로그램 변경에는 상당한 수작업이 필요했습니다.
EDVAC
EDVAC은 컴퓨터가 프로그램 자체를 메모리에 저장하고 실행할 수 있다는 개념을 구현하는 방향으로 발전했습니다.
따라서 컴퓨터를 새로운 용도로 사용하기 위해 하드웨어를 다시 구성하는 대신 프로그램을 변경하면 되었습니다.
이 차이는 매우 중요합니다.
ENIAC이
"전자식으로 계산할 수 있는 컴퓨터"
의 가능성을 보여줬다면,
EDVAC은
"프로그램을 바꾸어 다양한 일을 할 수 있는 컴퓨터"
라는 현대적인 컴퓨터의 방향을 제시했다고 볼 수 있습니다.
7. EDVAC의 개발 과정
EDVAC의 개발은 1940년대 후반 진행되었습니다.
ENIAC 개발에 참여했던 존 모클리(John Mauchly)와 J. 프레스퍼 에커트(J. Presper Eckert) 등이 EDVAC 개발에도 중요한 역할을 했습니다.
여기에 존 폰 노이만이 컴퓨터의 논리적 구조와 프로그램 내장 방식에 관한 아이디어를 정리하면서 EDVAC 프로젝트는 컴퓨터 역사에서 중요한 의미를 갖게 됩니다.
1945년에는 폰 노이만이 **「First Draft of a Report on the EDVAC」**라는 문서를 작성했습니다.
이 문서는 EDVAC 자체의 완성된 사용 설명서라기보다는 새로운 컴퓨터의 논리적 구조를 설명한 문서였으며, 이후 컴퓨터 구조를 설명하는 중요한 역사적 자료로 평가받게 됩니다.
특히 이 문서를 통해 메모리에 프로그램과 데이터를 저장하고 CPU가 이를 순차적으로 처리하는 개념이 널리 알려지는 계기가 되었습니다.
다만 흔히 "폰 노이만이 EDVAC을 혼자 만들었다"고 이해하는 것은 정확하지 않습니다.
EDVAC은 여러 과학자와 공학자들의 공동 작업으로 개발되었으며, 프로그램 내장 방식 역시 한 사람의 단독 발명이라기보다 당시 여러 연구자들이 발전시킨 아이디어가 결합된 결과로 보는 것이 적절합니다.
8. EDVAC은 어떤 메모리를 사용했을까?
초기 컴퓨터에서 가장 어려운 문제 중 하나는 프로그램과 데이터를 저장할 수 있는 빠르고 안정적인 메모리를 만드는 것이었습니다.
EDVAC에서는 당시 개발되고 있던 수은 지연선 메모리(Mercury Delay Line Memory) 기술이 사용되었습니다.
수은 지연선 메모리는 전기 신호를 수은 속에서 음파 형태로 전달하고 일정 시간 지연시켜 정보를 저장하는 방식입니다.
오늘날의 RAM과 비교하면 매우 원시적인 기술이지만 당시에는 전자식 정보를 저장하기 위한 중요한 기술이었습니다.
이러한 저장 기술이 있었기 때문에 프로그램 역시 메모리에 저장하고 읽어오는 것이 가능했습니다.
9. 프로그램 내장 방식이 만들어낸 변화
프로그램을 메모리에 저장할 수 있게 되면서 컴퓨터의 활용 방식은 완전히 달라졌습니다.
예를 들어 한 대의 컴퓨터에서 다음과 같은 작업을 수행한다고 생각해 보겠습니다.
프로그램 A
→ 수학 계산
프로그램 B
→ 통계 계산
프로그램 C
→ 데이터 정렬
프로그램 D
→ 과학 계산
하드웨어 자체를 변경하지 않고 메모리에 다른 프로그램을 넣어주면 됩니다.
즉, 컴퓨터는 특정 목적만 수행하는 기계가 아니라 소프트웨어에 따라 다양한 작업을 수행할 수 있는 범용 기계가 되었습니다.
이것이 현대 컴퓨터 산업을 만들어낸 가장 중요한 변화 중 하나입니다.
10. 오늘날의 컴퓨터와 EDVAC의 연결
흥미로운 점은 EDVAC 시대의 아이디어가 오늘날에도 계속 사용되고 있다는 것입니다.
예를 들어 우리가 PC에서 프로그램을 실행하면 프로그램은 저장장치에서 메모리로 로드됩니다.
그리고 CPU는 메모리에 있는 명령어를 읽어 처리합니다.
스마트폰에서도 마찬가지입니다.
앱을 실행하면 프로그램 코드와 필요한 데이터가 메모리에 올라오고 CPU가 명령어를 처리합니다.
서버와 슈퍼컴퓨터 역시 기본적인 컴퓨터 구조에서는 같은 원리를 사용합니다.
물론 현대 CPU는 단순한 초기 폰 노이만 구조보다 훨씬 복잡합니다.
캐시 메모리, 파이프라인, 분기 예측, 병렬 처리, 다중 코어 등 수많은 기술이 추가되었습니다.
그럼에도 프로그램과 데이터를 메모리에 저장하고 CPU가 명령어를 가져와 실행한다는 기본적인 개념은 여전히 컴퓨터 구조의 핵심으로 남아 있습니다.
11. EDVAC이 컴퓨터 역사에서 중요한 이유
EDVAC의 진정한 의미는 계산 속도 자체보다 컴퓨터를 바라보는 방식의 변화에 있습니다.
ENIAC과 같은 초기 컴퓨터는 거대한 전자식 계산 장치였습니다.
하지만 프로그램 내장 방식이 등장하면서 컴퓨터는 단순한 계산 기계에서 소프트웨어를 실행하는 범용 시스템으로 발전하기 시작했습니다.
오늘날 우리가 컴퓨터를 사용하는 방식도 이 개념을 기반으로 합니다.
게임을 실행할 때는 게임 프로그램을 메모리에 올리고, 문서 작업을 할 때는 워드프로세서를 메모리에 올립니다.
같은 컴퓨터에서 수많은 프로그램을 실행할 수 있는 이유가 바로 프로그램과 데이터를 전자적으로 저장하고 필요할 때 실행하는 구조가 발전했기 때문입니다.
마무리 - EDVAC은 '컴퓨터가 소프트웨어를 실행하는 시대'를 열었다
EDVAC은 오늘날의 PC처럼 작고 편리한 컴퓨터는 아니었습니다.
거대한 장비였고, 메모리 기술도 현재와 비교하면 매우 제한적이었습니다.
하지만 컴퓨터 역사에서 EDVAC이 중요한 이유는 하드웨어의 크기나 계산 속도 때문만은 아닙니다.
가장 중요한 것은 프로그램을 메모리에 저장하고 CPU가 그것을 읽어 실행한다는 새로운 컴퓨터 구조를 제시했다는 점입니다.
이 아이디어를 통해 컴퓨터는 특정 계산을 수행하는 고정된 기계에서 벗어나 프로그램에 따라 무엇이든 수행할 수 있는 범용 컴퓨터로 발전하기 시작했습니다.
오늘날 우리가 사용하는 Windows PC, Mac, 스마트폰, 서버, 클라우드 컴퓨터까지 모두 프로그램을 메모리에 올려 실행합니다.
결국 우리가 컴퓨터에서 프로그램을 설치하고 실행하는 아주 당연한 과정의 역사적 뿌리를 따라가면 EDVAC과 프로그램 내장 방식이라는 중요한 순간을 만나게 됩니다.
ENIAC이 전자식 컴퓨터 시대의 가능성을 보여줬다면, EDVAC은 현대 컴퓨터의 기본적인 사고방식을 제시한 컴퓨터라고 할 수 있습니다.
댓글
댓글 쓰기