현대적 컴퓨터의 등장

컴퓨터는 모두 튜링머신을 기반으로 하지만 지금 사용하는 범용 컴퓨터 설계의 기반은 미국의 천재 수학자 존 폰 노이만의 설계를 기반으로 하고 있다. 폰 노이만은 1945년 EDVAC이라는 컴퓨터를 설계했다. 폰 노이만의 설계 문서에는 어디에서도 튜링의 논문에 대한 언급은 없지만 우연의 일치인지, 같은 천재끼리 통하는 무언가가 있는지 폰 노이만의 컴퓨터의 설계는 근본적으로 튜링 머신과 동일했다. 많은 이들이 폰 노이만이 튜링의 논문을 읽었다라고 추측은 하고 있지만 진실을 알 수는 없다. 이 컴퓨터가 할 수 있는 일이라면 어떠한 튜링 머신도 할 수 있는 일이다(참고로 이를 튜링 완전Turing Complete 하다고 한다)

폰 노이만 구조

폰 노이만 구조와 튜링 머신과의 가장 큰 차이는 '저장된 프로그램'(stored program)개념 유무다. 폰 노이만이 이 개념을 들고 나온데는 시조새급 컴퓨터 애니악(ENIAC, Electronic Numerical Integrator And Computer)의 프로그래밍 문제 때문이었다. 애니악에서 프로그래밍이라는건 바로 전 섹션에서 설명한 바와 같은 AND, OR, NOT 등의 스위치와 전선을 이어서 논리를 만들어야 하는지라 구현에 며칠씩 걸리곤 했다. 그리고 또 다른 프로그램을 애니악에 실행시키고 싶으면 하드웨어를 전면적으로 바꿔야 했다.

반면 폰 노이만 구조는 프로그램을 하드웨어가 아닌 "임의 접근이 가능한 메모리" 상에 올려서 이를 실행하는 방식이다. 따라서 컴퓨터에 다른 일을 시키고 싶다면 하드웨어 교체가 없이 프로그램만 변경하면 된다.

이 이론을 바탕으로 7년 후인 1952년, 케임브리지 대학교의 의뢰로 세계 최초의 프로그램 내장 방식 컴퓨터 EDSAC을 제작한다. 이후에 나온 컴퓨터는 모두 폰 노이만의 설계를 기본 구조로 설계되고 있다.

진공관과 트랜지스터

초창기의 논리 게이트는 진공관으로 만들어졌다. 진공관은 과거에는 전자회로에 굉장히 많이 사용되었지만 요즘에는 진공관 앰프같은 특수 분야에서만 사용되고 있기 때문에 실생활에서는 쉽게 찾아보기 힘들다. 아마 실물을 못본 사람들이 대다수일 것이다(사실 나도 실물은 본 적이 없다). 간단하게 말하자면 현대의 백열전구와 비슷하다고 보면된다. 아 요즘 LED전구만 봐서 백열전구가 뭐냐구요? 음....

진공관은 장점보다는 단점이 많다. 실제로 백열전구와 구조적으로도 비슷한 물건이기 때문에 비슷한 단점을 가지고 있는데, 전구니까 부피가 크고 유리로 되어 있어서 내구성이 약하다. 또한 전력을 많이 소모해서 열도 많이 났기 때문에 주변 환경에 취약하다. 애니악을 운영할 때도 수시로 터지는 진공관 때문에 운영에 꽤 애를 먹을 정도였으니까. 초기 컴퓨터 애니악은 18,000개의 진공관을 사용했기 때문에 무게만 30톤에 이르렀으며 200KW에 달하는 막대한 전력을 필요로 했다.

이후 진공관이 트랜지스터로 대체되었다. 트랜지스터는 진공관 대비 많은 장점이 있었다. 부피도 작고, 내구성도 강하고, 전력 효율적으로 동작했으며 싸고 대량 생산이 가능했다. 이후 집적회로가 발명되면서 손가락 한 마디만한 크기에 수 십 ~ 수 백 억개의 트랜지스터를 집적시킬 수 있었고, 그 결과 컴퓨터의 소형화가 가능하게 되었다. 요즘 인텔과 AMD의 CPU 경쟁에서 언급되는 몇 나노(nm)공정이 바로 일정 면적 안의 트랜지스터 집적 수준을 나타내는 지표인데, 2017년 10nm 공정을 적용한 스냅드래곤 835 프로세서에 집적된 트랜지스터 수는 약 30억개이며, 이듬해 화웨이가 7nm 공정의 기린 980 프로세서에 집적한 트랜지스터의 수는 약 69억 개 수준으로 2배 이상 증가한 수치를 보여준다. 참고로 1971년 초기 PC 한 대에 사용된 트랜지스터의 수는 약 2300개에 불과했다.

P.S 집적도의 향상이 곧 향상된 성능을 보장하는건 아니다.