튜링상 관련 업적

윌크스 교수는 프로그램을 내부에 저장한 최초의 컴퓨터인 EDSAC의 설계자이자 제작자로 잘 알려져 있다. 1949년에 완성된 EDSAC은 수은 지연선 메모리를 사용했다. 또한 그는 휠러, 길과 함께 1951년에 Preparation of Programs for Electronic Digital Computers라는 책을 발표했다. 이 책은 프로그램 라이브러리를 효과적으로 소개했다.

1967년 튜링상 선정 이유

윌크스가 튜링상 수상자로 선정된 이유는 크게 두 가지이다. 하나는 최초의 저장형 프로그램stored program 방식 전자식 컴퓨터를 만들었기 때문이고, 다른 하나는 프로그래밍에 라이브러리library라는 개념을 도입했기 때문이다.

저장형 프로그램 방식 전자식 컴퓨터

당연하다고 느껴지는 것들이 처음부터 당연했던 경우는 드물 듯 싶다. 예를 들어 바퀴는 동그랗다고 누구나 생각하지만 처음부터 바퀴가 동그랗지는 않았다. 누군가 바퀴를 동그랗게 만들어서 그 가치를 보여줬기 때문에 그후부터 당연해졌다.

현재(2022년 9월)의 시대에 살고 있는 우리에게 컴퓨터란, 소프트웨어가 실행되는 하드웨어 기계로 이해된다. 그래서 소프트웨어를 바꾸면 컴퓨터가 사무용 기기도 되고, 오락 기기도 되고, 미디어 재생 기기도 되는 상황을 당연하게 여긴다.

최초의 전자식 컴퓨터는 이런 다재다능함을 염두에 두지 않았다. 우리가 흔히 최초의 전자식 컴퓨터로 생각하는 ENIAC을 들어보자.​§​ ENIAC의 목적은 수치 계산에 있었다. 정확하게 말하자면 포탄의 궤적을 계산하는 용도였다. 특정 방정식에 대해서 변수값을 바꿔가면서 그 결과값을 뽑아내는 일이 목적이었다.

ENIAC에서도 프로그래밍은 가능했다. 방정식의 계수, 차수, 상수를 변경하여 다양한 방정식을 계산할 수 있게 만들 수 있었다. 하지만 그렇게 방정식의 형태를 바꾸려면, 즉 프로그래밍을 하려면, 전선을 다시 연결하고 중앙계기판의 스위치를 조작해야 했다. 또한 방정식을 구성하는 각 항의 값을 계산하고 일시 저장하기 위해서 메모리의 역할을 하는 요소들이 있었다. 데이터를 잃어버리지 않고 유지하기 위함이었다. 하지만 현재의 컴퓨터에서 말하는 메모리와는 달랐다. 현재의 컴퓨터에서 쓰이는 메모리와는 달리 ENIAC의 저장 공간은 주소를 가지지 않았다.

ENIAC은 많은 이들에게 영감을 불어 넣어 주었다. ENIAC을 직접 설계하고 제작한 존 모클리와 프레스트 에커트는 물론이고 이를 직접 사용해 본 폰 노이만도 그러했다. 전자식 컴퓨터는 현실적으로 불가능했던 계산을 가능하게 해주었다. 대표적인 것이 수소폭탄 개발을 위한 편미분방정식 계산이었다.​8​ 하지만 프로그래밍이 너무도 힘들었다.​¶​ 전선을 연결하는 육체적인 고됨만 문제가 아니라, 서로 독립적인 구성요소들끼리 데이터를 주고 받는 타이밍을 맞추기가 너무 어려웠다. (ENIAC의 하드웨어 구조는 병렬처리 컴퓨터에 가깝다.)​#​

이를 해결하기 위한 방법으로 고안한 것이 명령어instruction라는 코드를 사용하는 것이었다. 시스템의 구성요소들을 세밀하게 제어하는 신호들을 정의하고 한 줄의 명령어 코드를 통해 이 신호들의 값을 지정할 수 있게 하는 방식이었다. 명령어에 따라 시스템의 구성요소 중 어떤 것은 동작하고 어떤 것은 멈춰 있게 되며, 구성요소와 구성요소 사이의 데이터 전달도 제어되었다. 따라서 어떤 일련의 내부 동작들은 각 단계를 표현하는 명령어들을 차례로 수행하는 방식으로 구현될 수 있었다.

그렇다면 이 명령어들을 시스템의 어디에 두고 어떻게 사용해야 할까? 모클리, 에커트, 폰 노이만이 고안해낸 것은 다름 아닌 주소를 가지는 메모리였다. 시스템 내의 메모리에 명령어들을 저장해놓고 차례차례 하나씩 수행하는 방식이었다. 차례차례 접근하기 위해서는 일련의 번호를 붙여줘야 했고 그것이 결국 주소였다. 이로써 오늘날 우리가 흔히 보게 되는 저장형 프로그램 방식의 전자식 컴퓨터가 탄생했다.

일부 선구자의 머릿속에만 들어 있었던 저장형 프로그램 방식의 전자식 컴퓨터가 구체적으로 세상에 모습을 드러낸 계기는 등사기로 밀어서 조악하게 인쇄한 어떤 논문 초고 때문이었다. 존 폰 노이만이 작성한 메모를 토대로 골드스타인이 정리했다고 알려지는, <First Draft of a Report on the EDVAC>은 말그대로 EDVAC의 구조에 관한 보고서의 첫 초안이다. EDVAC은 ENIAC의 후속 모델로 펜실베이니아 대학교 무어 공대에서 추진 중이던 시스템이었다. 이 논문은 결국 정식 논문으로 발표되지 않았다. 하지만 두 가지 점에서 컴퓨터 역사상 가장 중요한 논문이다. 첫 번째는 저장형 프로그램 방식의 시스템 구조를 처음 세상에 알렸다는 것이고, 두 번째는 이 논문으로 인해서 저장형 프로그램 방식 구조에 대한 특허가 받아들여지지 않게 되었다는 것이다. 저장형 프로그램 방식이 폰 노이만의 독자적인 아이디어였는가에 대해서 오늘날 보편적인 의견은 그렇지 않다로 모아진다. 특허를 둘러싼 법적 공방 속에 나온 자료를 보면 ENIAC의 설계자였던 모클리와 에커트가 폰 노이만에게 그 아이디어를 공유한 것으로 나온다.​8​ 그런데 세기적 천재라고 불렸으며 여러 분야에서 존경을 받던 폰 노이만이 왜 남의 아이디어에 자신의 이름을 붙여서 급히 세상에 논문으로 발표했을까? 그것은 특허를 막기 위한 의도적인 행보였다는 해석이 호소력이 있다. 그 덕분에 현대의 컴퓨터는 그 누구에게도 특허료를 내지 않고 다양하게 만들어질 수 있었다.

초고라서 철자도 많이 틀리고 편집 상태도 엉망이었던 이 논문은 알음알음 빠르게 퍼졌다. 논문을 손에 입수한 사람 중에는 모리스 윌크스도 있었다. 모리스 윌크스가 결국 최초의 저장형 프로그램 방식 전자식 컴퓨터를 만들 수 있었던 이유로는 몇 가지를 들 수 있다.

첫 번째는 그가 현장형 사람이었다는 점이다. 어릴 때부터 라디오를 만들고 무선 통신 자격증을 딸 정도로 뭔가를 실제로 붙들고 만지는 일을 좋아했다. 비록 그가 수학을 전공하기는 했지만, 추상적인 것보다는 실체가 있는 것에 관심이 많았다. 제2차 세계대전 중에 영국은 블레츨리 파크Bletchley Park에서 비밀리에 컴퓨터를 만들었고 여기에 몸 담았던 이들은 전쟁 후에 다들 컴퓨터 개발에 뛰어들었다. 이 집단에 속해 있지 않았던 윌크스가 그들보다 먼저 제대로 된 컴퓨터를 만들게 된 것은 그가 직접 소매를 걷고 뛰어드는 사람이었기 때문으로 보인다.

두 번째는 우호적인 제반 상황이었다. 사실 저장형 프로그램 방식의 컴퓨터는 미국에서 먼저 개발되었어야 맞다. 하지만 특허를 놓고 불화가 생기면서 주도 세력 간에 다툼이 있었고 그로 인해 개발이 지연되었다. 영국에서는 상당히 일찍 앨런 튜링과 맥스 뉴먼이 각자 컴퓨터 개발에 뛰어들었지만 상급자의 이해 부족이나 간섭으로 어려움을 겪었다. 이에 비해 윌크스는 수학적 연구소의 소장을 맡으면서 비교적 자유롭게 활동할 수 있었고, 수학적 연구소는 재정적인 지원도 충분히 확보한 상태였다.​4​


수은지연선 장치를 보고 있는 모리스 윌크스​**​

EDSAC의 메모리는 수은 지연선mercury delay line으로 구현되었다. 수은 지연선은 이미 1946년의 무어 공대 여름 특별 강좌에서 메모리로 언급되었고 폰 노이만의 논문에서도 후보로 거론된 장치이다. 수은 지연선은 원래 레이더 정보를 저장하기 위한 용도로 사용되던 것으로 정보를 음파 형태로 저장했고 임의 접근이 아닌 순차 접근만 가능했다. EDSAC의 메모리는 18비트 단위로 최대 1024개까지 가능하게 설계되었지만 실제 구현은 512개까지만 지원했다. 메모리에 저장되는 18비트의 값은 명령어이거나 데이터였는데 명령어로 사용될 때는 명령어 코드 부instruction code field가 5비트, 명령어 오퍼랜드 부insturction operand field가 10비트, 안쓰는 비트가 2비트였으며, 나머지 1비트는 그 값이 명령어용임을 표시했다. 만약 값이 데이터로 사용될 때는 17비트를 쓰거나 아니면 연달아 두 개를 할당하여 35비트를 썼다.

프로그램을 메모리에 로딩하기 위해서 펀치 테이프가 사용되었다. 프로그램 코드는 펀치 테이프에 구멍을 뚫어 기록되었고 이 테이프를 읽어서 그 값을 메모리에 로딩했다.

1 2 3 4 5 6 7 8