2010년 9월 23일 목요일

02. Binary values and Number systems.

지난 글에선 Alan Turing 에 대해서 다뤘는데 이번단원에서도 Alan 과 연결지어서 써보려고 합니다~ Alan Turing이 고안했던 Turing Machine 은 당시에는 완성되지 못했었지만, 현재는 뛰어난 기술력으로 Turing Machine의 완성품들을 만들어냈습니다.

분명 단원 제목은 2진수와 숫자 시스템인데 왜 Turing Machine얘기나 하고 있냐하면 Turing Machine의 입력체계가 2진수로 구성되어 있기 때문입니다. Turing Machine은 1과 0 두가지를 입력받고 출력할 수 있었습니다. 최초의 컴퓨터(물론 가상의)라 불리는 Turing Machine이 현대 컴퓨터의 기반을 미리 정해놨다고 할 수 있다고 봅니다. (물론 앨런 이전에 독일에서 디지털 컴퓨터를 발명했다는 이야기도 들려오지만 역시 증거따윈 없어요.)  하지만 Turing Machine 다음에 나온 컴퓨터인 애니악은 10진법을 사용했습니다. 사람처럼 10진법을 사용하는 컴퓨터인 애니악은 처리속도가 다른 컴퓨터들에 비해서 빨랐습니다. 물론 그래봤자 지금 속도에 비하면 빛과 사람의 속도차이정도 겠지만, 당시에는 굉장히 빠른편에 속했다고 합니다. (애니악 이후의 몇몇 컴퓨터들에 비해서) 애니악을 본 영국의 한 발명가가 애니박이라는 새로운 컴퓨터를 발명했는데 이 컴퓨터가 실존했던 최초의 2진법 컴퓨터라고 합니다. 10진법 컴퓨터인 애니악에 비해서 속도가 느렸지만 10진법보다 간단한 2진법 구조때문에 이후의 컴퓨터들은 모두 애니박의 형태를 따랐다고 하네요.

[[[여기서 중요한 사실!은 애니악을 보고 와 애니박을 발명한 영국의 발명가가 바로 폰 노이만 입니다. (이전 글에 썼던대로 폰 노이만은 Alan Turing의 Turing Machine 구상도를 보고 흥미를 갖게된 뒤 Alan에게 공동제작을 제의했지만 거절당했었죠. Alan 은 Turing Machine을 2진법으로 구상해두었는데, 폰 노이만이 애니박을 만들 때 2진법을 쓴 건 Alan의 구상도를 보고 영향을 받은거라는 생각이 드네요.) 폰 노이만은 Alan의 2진법만을 베낀? 빌린? 어떻게 표현해야될지 모르지만, 어쨋든 2진법만을 배운건 아닙니다. Alan은 자신의 구상도에서 테이프와 액션테이블을 통해서(테이프는 데이터가 저장되는 부분을 말합니다.-혹은 데이터 그 자체. 액션테이블은 테이프를 읽어내고 출력해내는 부분입니다.) Turing Machine의 작동을 고안했습니다. 폰 노이만은 애니박을 발명할 때 테이프와 액션테이블을 데이터와 프로그램이라는 것으로 컴퓨터 내부에 넣어버렸습니다.(프로그램을 컴퓨터 내부에 넣어버리는 것은 폰노이만의 아이디어는 맞지만 에드삭이라는 컴퓨터에서 최초로 시행되었습니다. 또한, 2진법을 컴퓨터에 사용 하는 것도 독일에서 최초로 시행되었다고 합니다. 결국 폰노이만은 다른 사람들의 성공된 결과물들만을 모아서 완성품을 만들었던 것 같네요.) Turing Machine과의 큰 차이 점은 그것 뿐입니다. 글을 쓸수록 폰 노이만이 Alan의 아이디어를 훔쳤다는 생각만 드네요...]]]

아무튼 본론으로 돌아와서 애니박은 최초의 2진법 컴퓨터였습니다. 2진법을 사용한 컴퓨터가 왜 단순한 구조로 구성될 수 있었는지 알아보겠습니다. 일단 컴퓨터는 전기를 이용한 기계입니다. 전기같은 경우 약하게 들어온다 혹은 강하게 들어온다 이런것을 조절하기가 힘듭니다. 일방적으로 들어오기 때문이죠. 컴퓨터 쓰는 사람이 지금은 전기를 조금 넣어서 3이라는 숫자를 입력해야하니 조금만 넣어라 라고 발전소에 전화할 수는 없는 거죠. 따라서 현대의 컴퓨터들은 대부분 전기가 들어온다. 안들어온다 이 두가지로 결정합니다.( 이위의 발전소 예는 좀 과장을 하긴했지만, 컴퓨터 자체에서 전기의 양을 조절하기는 힘들다는 의미였습니다. 컴퓨터 내부에서 전기를 스위치처럼 끊었다 주었다 할수는 있지만요.) 즉 전기가 들어오면 1, 전기가 안들어오면 0 이런 식으로 입력을 받는 것입니다. 전기를 들이거나 막는 이런 것은 컴퓨터 내부에서 해 낼 수 있습니다. 따라서 2진법으로 컴퓨터를 만들면 손쉽게 입력을 할 수 있는 것이죠. 반면에 10진법이나 다른 진법 수를 이용하게 되면, 0, 1이외의 숫자를 입력할 방법을 찾아야합니다. 그런데 이런 방법을 찾기가 힘들죠. 애니악의 경우에는 단순히 큰 계산기 이므로 10개의 버튼이 있는  10진 키보드(처음 들어봐요..)를 이용했기 때문에 10진법이 가능했다고 하네요.


이 글은 컴퓨터의 역사와 2진법의 관계를 다루기 위한 글이라서 다른 진법의 자세한 내용이나 2진법의 보수 같은 것들은 다루지 않도록 하겠습니다. 자꾸 여러가지 내용을 넣으려다보니 주제에서 멀어지는 것 같아서요.

다시 본론으로 가서 미래의 컴퓨터의 진법에 대해 생각해보겠습니다. 1930년대 중반까지는 10진법, 그 이후부터 현재까지는 2진법이 컴퓨터가 사용해오던 방식이었습니다. 그렇다면 앞으로도 계속 2진법의 수만이 컴퓨터에 사용될까요??? 요즈음의 과학자들은 양자컴퓨터의 발전에 큰 관심을 가지고있습니다. 최근의 연구 결과에 의하면 양자 컴퓨터를 이용하면 3진법혹은 4진법을 이용하여 현재 컴퓨터의 속도는 비교도 안될만큼의 빠른 처리능력을 가지게 된다고 합니다. 현재의 컴퓨터로 수백년이 걸리는 것을 양자 컴퓨터를 이용하면 불과 4분만에 끝낼 수 있다고 하네요. 양자 컴퓨터가 그렇게 빠른 속도를 가질 수 있는 이유는 2진법을 넘어 설 수 있기 때문이라고 합니다. 아직 지식이 많지 않아 이해할 수는 없지만 양자 컴퓨터는 현재의 컴퓨터와는 반대방식인 병렬방식이라고 합니다.(확실히 이해는 되지 않아요..) 병렬 방식을 이용한 컴퓨터는 일정 시간동안의 데이터 처리 능력이 덧셈이 아닌 곱셈이라고 하네요. 예를 들어 일반 컴퓨터에서 1초에 16 bit씩 처리할 수 있는 회로가 2개 있을때 1초에 32bit를 처리할 수 있지만, 양자 컴퓨터에선 16*16 즉 256bit씩 처리할 수 있다고 합니다. 결국 양자컴퓨터에 큐비트(양자 컴퓨터에서 쓰이는 데이터 방식을 큐비트 라고 한다네요.)가 2개에서 3개 4개 늘어날수록 기하 급수적으로 늘어나게 되는 것이죠.



미래 컴퓨터의 논리 회로에 대해 다루다가 머리가 터질것 같네요.
그래도 나름대로 애초에 계획한대로 과거의 방식->현재의 방식과 그의 장점-> 미래의 방식 순서대로 글을 쓴것 같아 신나요.
결론을 내리자면 10진법->2진법->3진법 이렇게 내릴 수 있을 것 같아요.
양자컴퓨터가 나오게 된다면 3진법이 가능할테고 아니라면 2진법을 계속 써야 한다고 하네요.

댓글 2개:

  1. 과제 제출할때 제목도 써줘~ "알란튜닝..." 양자역학은 종종 듣는 주제인데 꽤 어려운 면이 있어, 수업시간에 좀더 이야기 해보자

    답글삭제
  2. 네 ㅠㅠ 제목 안쓴거 죄송합니다..

    글고 양자 내용은 정말 이해가 안되요..

    답글삭제