1943년, 폰 노이만은 폭발과 충격파에 관한 전문가로 영국을 방문했다. 그는 미국에 돌아왔을 때, 메릴랜드 기차역에서 우연히 초당 333번의 곱셈을 수행할 수 있는 전자 컴퓨팅 기계가 불과 120km 떨어진 필라델피아에서 제작 중이라는 소식을 들었다. 그 기계가 바로 에니악(ENIAC)이었다. 궁금함을 참지 못한 폰 노이만은 바로 달려갔다. 에니악 제작을 이끌었던 존 에커트(J. Presper Eckert)는 폰 노이만을 본 적은 없었으나 그의 명성은 익히 알고 있었다. 에커트는 폰 노이만의 질문을 들으면 질문의 수준으로 그가 정말 천재인지 알 수 있다고 말했다. 폰 노이만의 첫 번째 질문은 에니악의 논리 구조에 관한 것이었다. 에커트의 기준에서도 그는 두말할 나위 없는 천재였다.
에니악은 아타나소프가 만든 전자 컴퓨팅 기계보다 훨씬 컸다. 에니악은 클록에 맞추어 동작하는 동기식 동작 방식 덕택에 고성능으로 동작할 수 있었고, 프로그램이 가능해 이전의 컴퓨팅 기계보다 훨씬 다양한 일을 수행할 수 있었다.
에니악을 프로그래밍하려면 봄브와 같이 전선을 복잡하게 연결해야 했으며, 다이얼을 돌려 숫자를 입력해야 했다. 문제를 푸는 데는 몇 시간 걸리지 않았으나 에니악 프로그래밍에는 며칠씩 걸렸다. 에니악 프로그래밍이 워낙 복잡했기 때문에 에니악 프로그래머는 최고 수준의 기술자로 인정받는 특별한 전문 직업이었다.
에니악이 컴퓨터 구조의 성공적인 표본이 되지 못한 이유는 단순히 프로그래밍이 어려웠기 때문만은 아니다. 구조와 제한된 메모리 용량 또한 문제였다. 결론적으로 폰 노이만이 머릿속에서 풀 수 있는 복잡한 문제를 에니악을 사용해 풀려면 상당한 시간과 노력이 필요했다(절대 과장이 아니다).
컴퓨터의 탄생
폰 노이만은 1930년대에 앨런 튜링과 함께 일했을 뿐만 아니라, 튜링에게 뉴저지주 프린스턴 고등 연구소에 들어올 것을 제안하기도 했다. 폰 노이만은 튜링의 논문 「계산 가능한 수와 결정 문제의 응용에 관하여」를 읽었는데, 그는 논문을 이해했을 뿐만 아니라 논문을 읽고 내장형 프로그램을 떠올렸다. 데이터뿐만 아니라 컴퓨터 프로그램도 코드로 만들어 컴퓨터에 입력해야 한다는 생각이었다. 새로운 구조의 컴퓨팅 기계를 고민해 만들 때가 되었다. 1945년 초여름 폰 노이만과 에니악 개발 팀 사이의 논의는 점점 구체화되기시작했다. 새로운 개념의 컴퓨팅 기계 에드박(EDVAC)이 제안되었다. 오늘날 기준으로 본다면 에드박이란 이름은 촌스럽고 유치하게 들릴지 모르겠지만 사실 굉장히 중요한 의미가 담겨 있다.
에니악 개발 팀과의 논의가 끝나자 폰 노이만은 계획을 정리해 기록했다. 「에드박 보고서 1차 초안」이라는 제목의 보고서는 100쪽에 달했다. 타자기로 복사본을 찍어내는 데에는 한계가 있었기 때문에 보고서의 복사본을 그리 많이 만들지 못했지만, 모든 지식 결과물은 발표돼야 한다는 폰 노이만의 생각에 따라 특별한 제약없이 공개했다. 폰 노이만의 이런 행동은 이후 새로운 분쟁의 씨앗이 되었다.
「에드박 보고서 1차 초안」의 표지에는 존 폰 노이만의 이름만 적혀 있었기 때문에 사람들은 전자식 내장형 프로그램 컴퓨터의 구조를 ‘폰 노이만 아키텍처’라 불렀다. 컴퓨터는 각기 다른 기능을 가진 여러 부품으로 이루어져 있어서, 부품들간의 결합 구조, 명령어, 데이터, 결괏값의 이동 원리를 이해하는 것이 매우 중요하다. 기계식 시스템이나 전자기계식 시스템에서는 구조와 동작이 직관적이어서 비교적 쉽게 이해할 수 있다. 그러나 전자식 시스템에서는 거의 모든 일이 빛의 속도로 일어나는데, 메모리에서 데이터를 읽거나 할 때는 기다려야 하므로 일의 처리 순서가 잘못될 수 있다. 이런 문제를 해결하기 위해 폰 노이만 아키텍처에서는 컴퓨터 내부에 일정한 주기로 신호를 생성하는 ‘클록 장치’를 넣고 모든 일들이 클록 신호에 맞추어 동작하도록 했으며, 데이터 흐름 규칙을 정의해 메모리에서 읽은 명령어가 처리 중인 데이터와 뒤섞이지 않도록 했다.
최신 콘텐츠