별 상관 없을 것 같지만 생각보다 친한 사이
저는 물리학과에서 물리학을 공부하였는데요.
물리학을 배우는 과정에서 제가 관심을 갖게 된 분야는 바로 "컴퓨터와 관련이 있는 분야"였습니다.
엥? 물리학과 컴퓨터가 무슨 상관이??
한편 살펴보도록 하겠습니다.
물리학과에서 배우는 내용이 컴퓨터와 어떻게 이어지는지 살펴보기 위해서는, 먼저 컴퓨터에 대해서 이해를 하고 출발해야합니다. 지금도 제가 글을 쓰기 위해서 앉아있는 이 컴퓨터라는 존재는 도대체 뭘까요?
현대의 컴퓨터 구조를 처음으로 고안한 사람의 이름은 "앨런 튜링"입니다. 앨런 튜링은 수학과 학부 출신으로, 당시 수학계의 문제를 증명하기 위한 방법으로 가상의 기계를 논문에서 제시합니다.
이 기계는 아래 그림과 같이 생겼습니다.
튜링 머신은 총 다섯가지의 구성요소로 이루어져있습니다.
(무한히 긴) 테이프,
테이프에 적힌 기호들(A,B,C..),
테이프에 적힌 기호를 읽는 장치,
그 장치의 상태(Q1,Q2...)
장치가 기호를 읽고나서 작동하는 규칙표
이를테면 처음 상태 Q1에 있던 장치가 테이프의 기호 A를 읽었다고 합시다. 미리 준비된 '규칙표'에서는 Q1일 때 A를 읽으면 "A를 지우고 B를 쓴 다음, 테이프 오른쪽의 기호를 새로 읽고 장치의 상태를 Q3로 바꾼다"고 저장되어있다고 합시다. 그러면 장치의 바뀐 상태와 새로운 기호에 맞는 명령을 "규칙표"에서 찾아서 계속 동작하게 됩니다.
이렇게 "규칙표"를 근거로 테이프를 읽고, 테이프의 정보를 다시 쓰면서 연산을 수행하는 기계를 튜링머신이라고 합니다.
현대의 컴퓨터는 이 가상의 기계 튜링머신에 기반을 두고 만들어졌는데요, 튜링머신의 각각의 구성요소에 대응되는 컴퓨터의 부품들이 바로 아래의 그림과 같습니다.
튜링머신과 오늘날의 컴퓨터가 비교가 되시나요? 저장된 정보와 연산 규칙을 가지고 연산을 하고, 그 결과를 새롭게 저장하거나 출력하는 기계, 그것이 오늘날의 컴퓨터입니다.
그렇다면 이러한 튜링머신, 기계가 어떻게 우리가 원하는 일을 해줄 수 있을까요? 우선 우리가 원하는 대로 규칙표를 만들면 기계가 이걸 알아먹어야합니다. 그래서 필요한 정보를 읽고 연산을 수행해야하는데요. 기계가 이를 알아먹게 하고, 계산을 수행하기 위해서 우리는 이진법을 사용합니다.
왜 이진법이냐구요? 이진법은 0과 1만으로 정보를 표현할 수 있기 때문입니다. 즉, On 혹은 Off로 동작하는 '스위치'들 만으로 정보를 저장할 수 있습니다. 버튼1과 버튼2가 둘 다 꺼져있을 때 00, 둘 다 켜져있을 때 11등의 방식으로 정보가 표현됩니다.
게다가, 논리적인 연산까지도 가능한데요. 둘 중 하나만 켜져 있어도 OK라면 OR 연산입니다. 반드시 둘 다 켜져있어야한다면 AND 연산입니다. NOT 연산은 0을 입력하면 1을 반환하는 연산입니다. 이렇게 간단한 논리연산만으로 저장된 정보를 수정할 수 있으면 이 논리연산을 수십수백만번 시행해서 복잡한계산까지도 수행할 수 있게 됩니다.
이러한 대수체계를 불 대수"Boolean algebra"라고 합니다.
그런데 이제 ON-OFF를 표현할 수 있는 '스위치'를 실제로 구현하는 방법이 문제가 됩니다. 실제세계에 스위치를 구현하는 것은 물리학과 더이상 무관할 수가 없게됩니다. ^^
다음 글에서 이어서 쓰도록 하겠습니다.
읽어주셔서 감사합니다.