컴퓨터구조에 대해 본격적으로 설명하기에 앞서 현대 컴퓨터의 구조에 대해 간단히 표현하자면 다음 그림과 비슷할 것입니다:

(실제로는 더 복잡하지만, 대체로 프로그래머 입장에서는 위 그림처럼 생각해도 됩니다.)
처음 보는 입장에서는 뭔가 복잡해 보이고, 별로 와닿지도 않는 것 같습니다. 그런데, 컴퓨터를 사용하는 입장에서는 해당 컴퓨터에서 원하는 프로그램이 잘 돌아가기만 한다면 컴퓨터가 어떻게 구성되어 있는지는 사실 별로 중요하지 않습니다.

그렇다면 컴퓨터를 만드는 사람의 입장에서 나름의 이유가 있었겠지요. 그럼에도 여전히 컴퓨터의 구조는 그다지 직관적이지는 않은 것 같습니다. 도대체 어떻게 저런 구조가 나오게 된 것일까요? 컴퓨터의 역사를 살펴보며 그 실마리를 한 번 찾아보도록 합시다. (바쁘신 분들은 1944년 Harvard Mark I부터 보셔도 됩니다.)
컴퓨터의 역사
인간이 수를 세기 시작한 이래 선사시대에 이미 수를 세기 위한 도구가 사용되었고, 기원전 27~23세기 경 수메르에서 60진법 주판이 발명되었습니다다. 그러나 이러한 도구는 사람의 계산을 보조하기 위한 용도로 기능이 제한적이었습니다. 이후 톱니바퀴가 발명되면서 톱니바퀴를 사용한 수동 계산기가 나타나게 됩니다.
기원전 1세기 초, 안티키테라 기계

안티키테라 기계는 존재가 확인된 가장 오래된 계산기로, 태양계의 여러 천체의 움직임을 계산하기 위해 사용되었습니다.
1642년, 파스칼 계산기

파스칼 계산기는 덧셈/뺄셈이 가능한 최초의 계산기로 후대의 기계식 계산기에 많은 영향을 주게 됩니다. 받아올림(carry)을 위한 기계 장치를 설치하여 별도의 조작 없이 여러 자리 연산을 할 수 있다는 특징이 있습니다. 12진법, 20진법 등이 혼용된 당시 단위 체계에 맞춰 용도별로 과학용(10진수), 회계용, 측량용의 3가지 구성이 존재한다고 합니다.
1672년, 라이프니츠 계산기

라이프니츠는 길이가 다른 여러 개의 톱니가 달린 원통을 이용하여 덧셈/뺄셈 외에도 곱셈/나눗셈이 가능한 기계식 계산기를 발명했습니다. 그러나 당시 제작 기술의 한계 및 받아올림 메커니즘(carry mechanism)의 설계 결함 등으로 인해 안정적으로 동작하지는 못하였습니다.
1820년, Arithmometer

1820년 사무용으로 적합한 수준의 신뢰성을 갖춘 최초의 디지털 기계식 계산기인 Arithmometer가 발명되었고, 1851년 만국 박람회에 소개되며 동년 생산을 시작하였다. Arithmometer의 발명으로 비로소 기계식 탁상용 계산기가 일상 업무에 사용되기 시작하였습니다. 초창기 사칙연산 기계로써 설계되었으나 초기 생산품에서는 곱셈기(multiplier)가 제거되었고 이후 제네바 기어의 도입, 빠른 초기화 메커니즘 등의 개량이 이루어지며 꾸준히 팔리다가 1차 세계대전으로 인해 생산이 중단되었습니다. 1857년 잡지 기사에 따르면 8자릿수 숫자 사이의 곱셈에 18초가 걸렸다고 합니다.
1822년, 차분기관

1822년 찰스 배비지(Charles Babbage)는 영국 왕립학회에서 차분기관을 발표하였습니다. 차분기관은 덧셈을 사용해* 다항식을 계산하는 기계로, 차분기관 1호(No. 1)는 6차식을 최대 20자리까지 계산할 수 있도록 설계되었습니다. 이후 영국 정부의 지원으로 1823년부터 자금이 지원되어 1832년 2차식을 6자리까지 계산할 수 있는 시제품이 제작되기도 하였으나, 너무 많은 시간과 예산이 소모된 데 비해 차분기관이 완성되지 않자 1842년 지원이 중단되었습니다.
*N차식에 대해 일정한 간격을 두고 그 차이를 구하면 N-1차식을 얻을 수 있습니다. 역으로 N-1차식에서 일정한 간격으로 값을 취해 더하여 얻는 급수는 N차식이 될 것입니다. 이러한 원리를 이용하여 N차식의 N번째 차이(=상수)를 매 차례 더해가며 N-1번째 차이를 얻고, N-1번째 차이로부터 N-2번째 차이를 얻고, ... 1번째 차이로부터 원하는 식을 구성할 수 있습니다.
이후 배비지는 더 일반적인 연산을 수행할 수 있는 해석기관의 개발에 집중하였으나, 1846년~1849년 경 7차식을 최대 31자리까지 계산할 수 있는 차분기관 2호(No. 2)를 설계하기도 하였습니다. 배비지의 차분기관에 영향을 받아 제작된 차분기관이 로그표나 이자 계산표 등을 제작하는 데 사용되었다고 합니다.
1833년, 해석기관
1833년 찰스 배비지는 천공 카드로 프로그래밍 가능한 해석기관의 개발을 시작합니다. 그러나 1871년 배비지의 사망으로 인해 완성되지 못한 채로 작업이 중단되었습니다. 최초의 튜링 완전한(Turing-complete) 기계로 알려져 있으며 1842년 에이다 러브레이스(Ada Lovelace)가 해석기관에서 작동하는 최초의 컴퓨터 프로그램을 작성한 것으로 유명합니다.
이후 20세기 들어 전기 기술을 도입해 속도를 높인 컴퓨터가 등장하였으나 80년대 PC가 보급되기 전까지 컴퓨터는 군대, 관공서, 기업, 대학 등 기관의 전유물이었습니다.

1941년, Z3

1941년 독일의 콘라트 추제(Konrad Zuse)는 프로그래밍 가능한 최초의 전자동 컴퓨터인 Z3을 선보입니다. Z3은 전자석을 사용해 기계적으로 작동하는 스위치인 계전기(relay) 2200개를 사용해 제작되었으며 약 5 Hz 속도*로 동작하면서 22-bit 부동소수점 데이터에 대해 연산을 수행할 수 있었습니다. 다만 점프(jump)나 분기(branch) 명령어 없이 테이프에 적힌 프로그램을 순차적으로 수행했습니다. Z3 컴퓨터에는 64개의 데이터를 저장할 수 있는 메모리가 존재합니다.
*덧셈: 3 사이클, 뺄셈: 4-5 사이클 = 약 0.8초, 곱셈: 16 사이클 = 약 3초, 나눗셈: 18 사이클, 제곱근: 20 사이클, ...


1943년, 콜로서스

영국 정보부는 독일 최고사령부에서 사용한 로렌츠 암호를 해독하기 위해 1943년 1,500개의 진공관을 사용한 콜로서스 1호기(Colossus Mark 1)의 운영을 시작하였습니다. 콜로서스는 1초에 5,000개의 문자를 처리할 수 있었는데 이는 1940년대 당시 기계식 계산기의 연산 속도인 분당 1,300회(= 초당 약 21.67회, Marchant Silent Speed ACR-10M)에 비해 월등히 빠른 속도였습니다. 콜로서스 2호기에서는 병렬 처리를 도입하여 암호 해독 속도를 크게 높였습니다. 콜로서스는 세계 최초의 프로그래밍 가능한 전자식(electronic) 디지털 컴퓨터로 간주됩니다.


1944년, Harvard Mark I

1944년 IBM은 전기-기계식 컴퓨터인 Automatic Sequence Controlled Calculator를 하버드 대학에 보냅니다. Harvard Mark I는 천공카드로부터 프로그램을 읽어 계산을 수행하며 72개의 23자리 숫자 데이터를 저장할 수 있는 저장장치를 갖췄습니다. 덧셈 및 뺄셈은 초당 3회 속도로 수행되며 곱셈은 6초, 나눗셈은 15.3초, 로그 및 삼각함수 계산에는 1분 이상이 소요되었습니다. 프로그램과 데이터가 분리된 Mark I의 구조는 현대 컴퓨터에서 명령어 메모리와 데이터 메모리가 분리된 구조를 통틀어 일컫는 하버드 아키텍처(harvard architecture)라는 명칭의 유래가 되었습니다.
1946년, ENIAC

1945년 최초의 프로그래밍 가능한 전자식 '범용' 디지털 컴퓨터인 ENIAC이 등장합니다. ENIAC은 약 18000개의 진공관과 기타 다이오드, 저항, 축전기 등의 수많은 소자로 구성되었으며 프로그램은 소자들 사이의 배선으로 구성됩니다. 즉 새 프로그램을 구현하기 위해서는 배선을 직접 연결해야 했고, 이에 많은 시간이 들었습니다. 그럼에도 10자리 숫자의 덧셈/뺄셈 및 데이터 이동과 같은 간단한 작업은 초당 5000번, 곱셈의 경우 초당 357번, 나눗셈 및 제곱근은 초당 35번의 속도로 수행 가능해 이전의 전기-기계식 컴퓨터에 비해 월등히 빨랐습니다. 그러나 ENIAC을 구성하는 진공관의 내구성 문제로 인해 절반 정도의 시간만 가동할 수 있었다고 합니다.

1949년, EDVAC

1944년 ENIAC을 설계한 모클리와 에커트는 EDVAC 컴퓨터를 제안하고, 1946년 계약을 체결하여 1949년 미군 탄도연구소에 EDVAC을 전달합니다. EDVAC은 프로그램을 데이터와 같은 메모리에 저장하는 stored-program 구조를 채택하였는데, EDVAC 제작의 자문을 맡은 존 폰 노이만이 1945년 작성한 "First Draft of a Report on the EDVAC"라는 보고서에 이 구조가 등장하기 때문에 stored-program 구조를 '폰 노이만 구조'(von Neumann architecture)라고도 합니다. 현대의 대부분의 컴퓨터는 stored-program 구조를 따릅니다.
다음 글에서는 EDVAC의 영향을 받은 EDSAC(1949)과 PDP-8(1965), PDP-11(1970) 등의 구조에 대해 살펴보며 컴퓨터의 구조가 어떻게 발전해 왔는지에 대해 다룰 것입니다. 감사합니다.
참고자료 및 웹사이트
(정리중)
'컴퓨터공학 > 컴퓨터구조' 카테고리의 다른 글
A 1.05: 둘러보기 & 위대한 발상들 (0) | 2023.07.20 |
---|---|
A 1.02: 컴퓨터의 역사 [2] (0) | 2023.07.04 |
A 1.00: 컴퓨터 시스템의 추상화 (0) | 2023.06.07 |
A 0.00: 들어가며 (0) | 2023.06.04 |