별 상관 없을 것 같지만 생각보다 친한 사이
저는 물리학과에서 물리학을 공부하였는데요.
물리학을 배우는 과정에서 제가 관심을 갖게 된 분야는 바로 "컴퓨터와 관련이 있는 분야"였습니다.
그래서 저번 글에서는 도대체 컴퓨터가 어떤 기계이고, 어떤 원리로 동작하고 있는 지에 대해서 아주 간단히 살펴봤습니다.
현대 컴퓨터는 '튜링머신'으로 비롯되어 입출력장치/메모리/중앙처리장치로 구성되어있습니다. 입력장치에 우리가 원하는 명령어를 입력하면, 그것이 기계가 이해하는 논리(이진법)로 변환됩니다. 그리고 메모리에 잠시간 저장되게 됩니다. 이후, 메모리에서 정보를 가지고 와서 CPU(중앙처리장치)에서 연산과 명령을 수행합니다. 그리고 그것을 출력합니다.
문제는 이 '이진법' 그러니까 0과 1로 표현되는 '스위치'를 어떻게 구현할 것인가가 바로 중요한 이슈였습니다.
한편 살펴보도록 하겠습니다.
역사적으로 컴퓨터는 복잡한 연산을 '기계가 단순 노동을 해서' 처리하도록 만든 자동화기계의 일종이었습니다. 그런데 이렇게 연산한 과정과 결과를 저장하고 인간이 이해할 수 있게 하기 위해서 0과 1의 형태로 정보를 표현해야만 했는데요.
인간이 입력하는 신호에 따라서 0과 1을 저장하고 표현할 수 있는 소자(Device)가 따라서 반드시 필수적인 컴퓨터의 구성요소가 됩니다. 현대컴퓨터는 이 '트랜지스터'를 이용해서 동작합니다.
현대의 트랜지스터는 0과 1을 전류로 구분합니다. 전류는 '전자의 흐름' 인데요. 우리 주변의 모든 물질은 원자로 구성되어있고, 그 원자는 원자핵+전자로 구성되어있습니다. 특정 물질에서는 전자가 비교적 자유롭게 움직일 수 있는데요. 이 전자가 움직이고 있는 상황을 1, 전자가 전혀 움직이지 못하는 상황을 0으로 구분하는 것입니다.
그러면 '어떤 물질'을 이용해서 전류를 통제할 수 있을까요? 즉, 전류가 통하는 상황에서는 1을 표현하고, 전류가 통하지 않을 때는 0을 표현할 수 있는 물질이 있어야만 합니다. 인간이 원할때마다 전류를 흘리거나 막을 수 있는 그런 마법의 물질이 필요합니다.
그것이 바로 반도체입니다. 반도체(Semiconductor)는 도체(Conductor)와 부도체(Insulator)의 중간적 성질을 가진 물질입니다. 도체의 경우에는 전위차를 조금만 가해주면 전류가 그냥 흘러버립니다. 이녀석은 '1'을 표현하는데는 적합하지만 0을 표현하는데는 매우 부적합합니다. 반대로 부도체는 '0'을 표현하는데는 매우 적합하지만 1을 표현하려면 대단히 힘듭니다.
오늘날 트랜지스터에 사용되는 반도체는, 도체보다는 전기가 안통하는 부도체에 가깝습니다만, 거기에 여분의 전자(혹은 정공, positive charge)를 갖는 물질을 첨가해서 전류가 비교적 쉽게 흐를 수 있도록 조작을 가한 물질입니다. 이러한 조작을 Doping이라고 부릅니다.
이 반도체로 만든 트랜지스터가 바로 오늘날 컴퓨터의 '스위치'에 해당합니다. 이 스위치로 0과 1을 표현하고, 정보를 저장하고, 연산을 수행합니다.
자, 이제 0과 1을 구현할 현실속의 '물질'도 찾았겠다. 모든 문제가 해결된 것처럼 보입니다. 그러나 그렇게 쉽게 컴퓨터가 뚝딱 만들어지지는 않습니다.
트랜지스터에서는 0과 1을 가지고 전류를 표현하는데, 실제로는 0상태라고 해서 전류가 아예 차단된 것은 아닙니다. 누설 전류라고 미량의 전하가 새어나오게 됩니다. 마찬가지로 1의 상태를 구현하는 것 역시도 만만치 않습니다.충분히 높은 전압을 가해서 전류를 많이 흐르게 한다면 에너지가 너무 낭비되는 셈이고, 그러자고 너무 약하게 흐르자니 0과 1을 구분하기가 대단히 어렵게 됩니다.
게다가 전류로 0과 1을 구현했다고 해도, 그 0과 1을 '읽는 것'은 분명히 다른 문제가 됩니다.'전류가 흐르고 있다면' 기계는 '분명 흐르지 않는 상태'와는 무언가 다른 행동을 해야합니다. 도대체 기계가 사람의 말을 알아들을 것도 아니므로 두 상태를 구분해서 행동하도록 어떻게 조작을 가해야할까요.
이런것들이 물리학과 관련된 기술적인 문제가 되겠습니다. 종합해보면 '우리가 원해는 대로 해줄 물질을 도대체 어떻게 현실적으로 구현할 것인가?'입니다. 전류의 흐름에 반응해서 특성이 '충분히 크게 바뀌는' 물질, 그래서 충분히 작은 전류에도 0과 1을 구분할 수 있는 소자... 등등이 있겠습니다.
소프트웨어적인 부분을 제외하고, 컴퓨터 하드웨어는 이처럼 물리적인 이슈가 꽤 중요한 영역이 있습니다.'어떻게 구현할 것이냐'의 문제 때문입니다. 그래서 물리학/재료공학/전자공학의 협업이 꽤 중요한 분야이기도 합니다.
하드웨어 설계하면 대부분 떠올리시는 것들이 회로설계, 임베디드 시스템, 시스템프로그래밍 등의 영역입니다. 여기는 이제 전자공학과에서 많이들 하는 영역입니다.
컴퓨터의 미세 소자로 쓰이는 물질의 특성과 초소형 소자 개발 등은 물리/응용물리와 재료공학에서 주로 맡는 영역입니다. 신물질, 물성에 집중한다면 물리학과 재료공학에 좀더 가깝고, 소자에 집중한다면 전자공학에 가깝지만 사실 구분이 큰 의미는 없습니다. 학교, 연구진, 연구기관마다 다르므로...
오늘날의 대학원의 물리학과에서는 크게 고체물리학/광학/입자물리학/복잡계물리학으로 나누어서 연구가 진행되는데요. 칠판에서 수식을 풀고 우주를 연구하는 물리학자에 대한 이미지와는 다르게 대체적으로 고체/광학 실험 연구가 50~70%를 차지하는 큰 분야입니다. 바로 이 고체/광학이 전자기기와 매우 큰 관련이 있습니다.
물론 대학원에서는 산업계보다 '물리학 내부'에서 관심 갖는 주제를 연구하는 경우가 많기는 하지만, 그런 주제의 연구를 하기 위해서 최첨단 나노 단위의 장비를 사용하고, 실험적으로 무언가를'구현하는 방법'을 익히게 됩니다.그래서 학계에 남지 않는 물리학과 졸업생들은 이런 경험을 바탕으로 전자계열의 분야로 많이 진출하고, 보통은 하드웨어의 물리적 이슈를 책임지게 됩니다.
(여담으로 고체/다체 물리학이 바로 제가 관심있던 분야이기도 하죠..^^ 지금은 다시 방황하고 있지만요ㅠㅠ)
다음 글에서 이어서 쓰도록 하겠습니다.