컴퓨팅 기술 이노베이션에 관한 첫 글 (부제: 공대생이 힘든 이유)
시작하는 입장인만큼 '어떤 글을 올리면 좋을까' 하는 고민을 해보았습니다. 기존의 글쓰기 연습하던 티스토리 서평과는 달리 주제를 집중하는 것이 좋다는 생각이 들어서, 평소에 관심이 많은 물리/전자공학의 기술 혁신에 대해 이야기 해볼까 합니다. 물론 제게 친숙한 하드웨어 부분에 한정된 내용일 것 같습니다.
기술 혁신.
뭔가 멋져 보이는 말이지만, 사실 수많은 과학자들과 공대생들이 불철주야 공부하고 연구하고 밤을 샌 희생의 산물입니다. 물리, 수학, 화학, 생물학 등등의 자연과학을 바탕으로 하여, 시장의 소비자들의 요구에 따라 (혹은 없는 요구를 상상해서) 기술을 디자인하고 이를 구현하는 과정을 말합니다. 만드는 사람 입장에서는 고된 작업입니다.
앞으로 쓸 글은 이런 구성으로 가져가려고 합니다.
- 생각하는 기계를 만들자! 는 간단한 아이디어의 소개 : 폰노이만 컴퓨터 구조
- 컴퓨터를 가능하게 한 기술들
- 컴퓨터 혁신의 한계
- 그 '혁신'이란 단어가 만들어낸 수많은 가능성들 (=공대생들이 헤딩한 수많은 맨땅들)
- 관련한 시장/산업계/학계의 동향
아마 2번과 4번에서 다양한 이야기들을 할 수 있지 않을까 합니다.
무어의 법칙을 따르는 반도체 관련 기술들과, 기존 반도체 기술과는 차별화된 새로운 물리적 원리를 활용하는 기술들,
그리고 기존의 컴퓨터 구조를 바꾸려는 시도들을 조금씩 담아볼 생각입니다.
어쩌면 이 모든 이야기는 헝가리 부다페스테에서 태어난 한 외계인으로부터 시작되었다 해도 과언이 아닐 것 같습니다. 그 이름도 빛나는 John von Neumann!
어린시절부터 역사책 읽기를 좋아했고, 헝가리어/독어/불어/그리스어/라틴어 등 여러 언어에 능통했던 폰노이만은 고난도 언어인 수학을 접하고 매료됩니다. 고등학교 시절 터졌던 세계 1차대전에도 불구하고, 공무원 아버지의 보호 아래 무탈한 대학생활을 즐기던 폰노이만은 24세에 박사학위를 취득하고, 25세부터 대학 강사로 수학자의 삶을 시작합니다.(응?)
폰노이만은 힐베르트 호텔로 잘 알려진 석학 힐베르트의 지도를 받아 수리 논리학을 연구에 몰두하고 있었습니다. 그러던 어느날, 괴델의 '불완전성원리'를 보고 수리논리학에 대한 열정이 식게 되고 (머야? 생각보다 불완전하네?) 응용학문에 관심을 기울이게 됩니다.
응용에 관심을 기울이자마자 며칠 만에 양자역학을 수학적으로 재해석해버리더니, 게임이론, 각종 전산학의 기초를 다져가기 시작합니다. 31살에는 프린스턴 고등과학원의 교수로 임용되어 아인슈타인과 어깨를 나란히 하게 되죠. 그의 천재성을 다 논하자면 글이 너무 길어질 듯하여 이만 끊고, 본론으로 들어가 폰노이만이 제안한 컴퓨터 구조에 대한 이야기를 드리겠습니다.
원자폭탄 제조로 유명한 '맨하탄 프로젝트'에 참여한 폰노이만.
원자폭탄의 기본 원리와 구현은 물리학자들이 맡았고, 폰 노이만을 비롯한 수학자 그룹은 폭탄 제조에 필요한 계산을 맡습니다. 당시, 또 다른 천재 파인만이 제안한 원자폭탄의 내파 기법은 해석적으로 풀기 힘들어서, 기계를 이용한 수치계산법으로 풀어야 할 필요가 있었습니다. 하지만, 당시의 IBM펀치카드 장비(종이에 구멍을 뚫어서 컴퓨터에 명령을 내리는 기계)는 너무 느려서 폰노이만이 머리로 계산하는 것보다 느렸다(!)고 합니다. 최첨단 컴퓨터에 실망한 폰노이만은 컴퓨터를 만들기로 결심합니다. IBM 펀치카드머신의 업그레이드 방법을 제안하는 한편, ENIAC의 뒤를 잇는 두번째 컴퓨터 EDVAC의 설계에도 참여합니다.
전쟁이 마치고 나서, 폰노이만은 컴퓨터 공학자인 골드스타인, 벅스와 함께 현재 '폰노이만의 컴퓨터 구조'(Von Neumann Architecture) 라고 불리는 컴퓨터 구조의 뼈대를 세우게 됩니다. 1946년 6월 출판되고, 1947년 9월 두번째 판으로 재출간된 <전자식 컴퓨팅 장비의 논리설계에 대한 예비논의>(Preliminary Discussion of the Logical Design of an Electronic Computing Instrument)에서 제안된 컴퓨터 구조는 첨단을 달리는 지금의 컴퓨터에서도 고스란히 사용되고 있지요.
그가 제안한 자동 컴퓨팅 시스템은 산술/저장/제어/입력/출력을 위한 단위장치를 포함했고, 논문에는 이를 위한 기본 메모리 기관, 산술연산 기관, 제어기관등의 추상적 장치기관에 대한 설명을 담았두었습니다.
컴퓨터 구조에 대해 간단히 설명하면 이렇습니다. 단위 유닛에는 입력, 출력, 메모리, 중앙연산장치 네 가지가 있습니다. 중앙연산장치 내부에는 명령어나 데이터의 흐름을 제어하는 제어유닛, 그리고 논리연산이나 계산을 맡는 연산 유닛이 있고요.
중앙연산장치 (CPU) 안에 있는 산술연산 기관(Arithmetic unit)에는 덧셈, 뺄셈, 곱셈을 할 수 있는 연산 유닛 뿐 아니라 연산값을 저장할 수 있는 레지스터(소수정예 메모리)도 포함해야 합니다. 레지스터는 연산 유닛의 속도에 맞춰 데이터를 읽고 쓸 수 있어야 하므로, 비싸더라도 매우 빠른 동작 속도를 가져야만 하겠지요. 한편, 제어 장치는 CPU에 입력된 명령어를 수행하고 산술연산기관과 데이터의 흐름을 제어하는 역할을 합니다.
데이터의 흐름은 대략 이렇습니다. 데이터나 명령을 입력하면 그 입력사항이 메모리에 저장되고, 계산할 일이 있으면 메모리에서 연산식과 데이터를 CPU로 전송합니다. 계산된 결과는 다시 메모리로 전송되고, 출력장치를 통해 결과가 출력됩니다.
폰노이만의 구조에서는 메모리가 중요한 역할을 하는데 이는 '프로그램이 메모리에 내장되어야 한다'는 폰노이만의 철학 때문입니다. 당시 IBM의 펀치카드 기계는 필요한 연산이 달라지면 컴퓨터 회사 직원이 펀치카드를 바꿔야하는 문제를 갖고 있었습니다. 폰노이만은 이를 해결하기 위해 아예 연산 방법까지 메모리 넣고 싶었던 거죠. 그러면 메모리의 성능이 매우 중요해지겠죠?
폰 노이만은 메모리 기술을 이렇게 이해합니다. 빠른 것은 비싸고, 느린 것은 싸다.
그렇다면 비싼 메모리와 싼 메모리를 적절히 섞어서 최대의 성능 내야 할 것입니다. 이를 위해 메모리를 계층적으로 구성하는 설계방식을 제안합니다. 비싼 1차 메모리는 빠른 속도로 임의 접근(random access) 할 수 있는 소자로, CPU 내부에 진행될 연산의 준비물과 결과물을 저장하고, 기계어로 번역된 내장프로그램을 저장하고 있습니다. 한 마디로 당장 쓸 것들을 저장했다가 빨리 쓰자는 것이죠.
값이 싸고 용량이 높은 2차 메모리는 지금의 하드디스크에 해당하는 메모리로, 자주 사용되지 않는 대용량의 데이터를 저장하는데 쓰입니다. 각종 영상, 문서자료, 당장은 사용하지 않지만 언제가 사용할 프로그램들을 담았다가 필요할 때, 1차 메모리로 데이터를 전송하는 목적입니다.
여기서 드는 질문이 있습니다. 폰노이만이 머 그렇게 대단한 일을 한건가? 그냥 우리집 컴퓨터 얘기 같은데..
폰노이만이 대단한 이유는, 앞서 설명드린 컴퓨터 구조를 제안할 당시 이 구조를 구현할 수 있는 물리적 소자들이 아직 발명되지 않았기 때문입니다. CPU내부의 로직 유닛을 위한 트랜지스터, 레지스터에 넣기 위한 S-RAM, 1차 메모리를 만들 D-RAM, 2차 메모리에 해당하는 자성 HDD 디스크 등등. 입력 유닛 (키보드)과 출력유닛 (텔레비젼) 말고 변변한 장치가 없었는데 이런 정교한 구조를 상상해 낸다는 건 대단한 일이 아닐 수 없습니다.
말하자면, 폰 노이만 구조는 발명이라기 보다는 일종의 예언이라고 보는게 더 어울릴 것 같습니다. (혹은 전세계 공대생들에 던지는 야근 명령으로 볼수도..)
이 구조로 인해 세상이 변합니다. 빠른 속도로 동작하는 컴퓨터가 발명되고, 많은 프로그래머들이 다양한 소프트웨어를 만들어 3차/4차 산업혁명을 만들어 내고 맙니다. 사람들은 컴퓨터를 매개로 하여 더 빠른 속도로 소통하고, 민주주의를 구현하고 있습니다. 이제 시장은 IT기술이 없이 돌아갈 수 없을 정도로 컴퓨팅 기술은 우리 삶에 많은 영향을 주고 있습니다. 그 덕에 저도 공대 연구실에서 먹고 살고 있고요.
이 정도로 폰노이만 구조에 대한 설명은 마무리 할까 합니다.
이에 이어질 자연스런 질문은, '그거 어떻게 만드는데?' 가 아닐까 싶습니다. 다음에는 이 질문에 답하기 위해, 폰노이만 구조를 구현하기 위해 이뤄졌던 기술 혁신들을 차근차근 설명할까합니다. 부족한 글 읽어주셔서 감사합니다 :)
저도 폰 노이만 참 좋아합니다. 개인적으로 파인만이나 아인슈타인보다 좀 더 마음에 드는 학자입니다.
(어떠한 현재를 기점으로) 물리적으로 구현되지 않은 방법론을 바탕으로, 예언한다는 것이, 결국 학문의 지평을 열고 길을 보여주는 멋진 일이 아닐까 싶습니다.
앞으로의 글도 기대하겠습니다. :)
없는 것을 있게 만드는 힘. 모든 연구자의 꿈인 것 같습니다. 학문의 지평을 열고 길을 보여주는데 조금이라도 일조할 수 있다면 좋겠네요. 부족한 글 읽어주셔서 감사합니다 :)
kr-science를 풍성하게 만드는 좋은 글입니다!! 정말 재미있게 읽고 갑니다.
안녕하세요~ 재미있게 읽으셨다니 그것만으로 정말 감사합니다. @sleeprince님 블로그에 좋은 글이 많네요! 앞으로 자주 들리겠습니다.
재미있게 읽었어요!!! 후속글이 기다려집니다 특히 4번이...ㅎㅎㅎ
많이들 보시면 좋을텐데 혹시 묻힐까봐 걱정되네요 ㅠㅠ
@홍보해
재밌게 읽으셨다니 다행입니다. 홍보도 해주시고 몸둘바를 모르겠네요~ 감사합니다!
감사합니다 ^^!!
메모리 기반의 컴퓨팅은 튜링머신이 시초가 아닐까 생각됩니다.
계층구조를 고안한 사람은 폰노이만입니다.
폰노이만은 천재중의 천재라고 하더군요.
좋은 의견 감사합니다. 저도 글의 시작을 튜링으로 할지, 폰노이만으로 할지 잠시 고민했었습니다. 제가 소프트웨어보다는 하드웨어에 친숙하다보니 이 쪽으로 글이 기울어졌네요. 앞으로 글을 올리면서, 튜링을 포함한 (전혀 모르는) 오토마타 이론이나 다양한 컴퓨터 구조론도 공부해보고 싶네요. ^^
그렇군요. 몰랐던 얘기를 알게 되었내요. 좋은 글 감사합니다.
네 들려주셔서 감사해요!! :)
좋은 글 감사합니다.
공학에 대한 이해도가 높지는 않지만, 한때 공학도를 꿈꿨기에 관심이 많이 가네요. 앞으로도 좋은글 부탁드립니다.
공학도임에도 불구하고 이해도가 높지는 않지만, 꾸준히 글 올려볼 생각입니다. 감사해요 ^^
재미있게 읽었습니다. 다음 포스팅도 기대가 되는 글입니다.
팔로우하고 갈께요~^^
들려주셔서 감사합니다 ~ 저도 팔로 했습니다 ! 물리학에도 관심이 많아서 앞으로 찾아가겠습니다~