Seonghyeon

0과 1은 어떻게 랜선을 통해 전달될까 1

개발

0과 1로 이루어진 데이터는 어떻게 랜선을 통해 전달될 수 있는 걸까?

네트워크를 공부하다가 들었던 궁금증이다.

난 컴퓨터를 더 잘 이해하고 싶었는데 컴퓨터과학 서적이나 유튜브를 보면 중간 중간 이해가 안되는 게 너무 많았다. 그래서 요즘엔 모르는 게 생기면 그냥 분야를 안 가리고 닥치는 대로 공부하고 있다.

고급 언어로 작성된 프로그램도 결국 0과 1로 이루어진 기계어로 컴파일되니 기계어가 가장 밑바닥이겠구나 생각했는데, 이 0과 1이라는 것도 결국엔 사람들이 논리를 표현하기 위해 사용했다는 걸 알았다.

  • 진짜 메모리에 0, 1 텍스트 그대로 저장되는 거야?
  • 컴퓨터는 어떻게 0과 1을 판단하는건데?

이런 저런 자료를 찾아볼수록 끝이 없다는 걸 느꼈고, 이해할 수 있는 범위까지만 적어봤다. 논리적으로 매우 빈약한 설명이지만 적어도 클로드 돌려서 쓴 글은 아니고, 최대한 쉽게 설명하고자 노력했다. 궁금한 분들에게 참고가 된다면 좋겠다. 틀린 설명이나 보완하고 싶은 내용이 있다면 언제든 댓글로 남겨주면 감사하겠다!

1. 왜 하필 0과 1일까?

컴퓨터는 왜 2진법을 사용할까? 듣기론 전압이 있으면 1, 전압이 없으면 0이라고 하는데 이것도 엄밀히 말하면 틀린 말이다. 그리고 이 전기는 어디서 오는지도 궁금했다.

컴퓨터가 사용하는 전기는 어디서 올까?

먼저 간단한 배경지식인 전류와 전압, 전자기 유도에 대해 살펴보자.

전류

I=ΔQΔtI = \frac{\Delta Q}{\Delta t}

전류는 단위 시간 동안 이동한 전하량을 말한다. 전자의 흐름이라고 생각하자.

전압

전기장 안에서 두 지점 간의 전기적 위치 에너지 차이인 전위차를 말한다?

처음에는 전압을 명확히 이해하기 어려웠다. 압력이라고 하면 어떤 결과나 현상이 일으키는 힘으로 생각할 수 있다. 전압의 크기는 '전기적인 압력의 크기'라기보단, 전자를 얼마나 힘차게 움직일 수 있는가를 말한다. 회로가 연결되지 않았더라도 '그러한 힘을 가지고 있다!'는 의미다.

그래서 전압은 두 지점 사이에 전하를 이동시킬 수 있는 에너지 차이가 존재한다는 뜻이다. 이 차이가 있으면 회로가 연결되었을 때 전하를 이동시킬 수 있기 때문이다.

전자기 유도

전원 장치 없이도 전류를 흐르게 할 수 있을까?

중학교 때 배운 내용을 생각해보자. 코일에 전류계를 연결시켜놓고 코일 안으로 막대 자석을 통과시키면 전류계 바늘이 움직이는 걸 볼 수 있었다.

자석에서는 우리 눈에 보이지 않는, N극에서 S극으로 향하는 수많은 자기력선이 나오는데, 코일을 통과하는 자기력선의 수가 많아지거나 적어지면 전압이 생기면서 전류가 발생한다. 자연은 자기장의 변화를 싫어하기 때문에 코일에서는 자기장의 변화를 방해하는 방향으로 자기장을 만들어낸다.

사실 자석 주변에 자기장이 형성되는 것이지만 자기력선으로 쉽게 표현했다. 이걸 보면 전류와 자석이 연관성이 있다는 게 신기한 것 같다. 그래서 전자기학이 있나보다 싶었다.

실생활에서 활용하는 전자기 유도 법칙

우리가 버스 단말기에 티머니 카드를 찍어서 요금을 결제하는 것도 이 전자기 유도에 의한 것이다. 버스 단말기에 교류 자기장을 만들어내는 코일이 있고, 티머니 카드 안에 코일이 있다. 카드를 단말기에 가까이 가져가면 코일을 통과하는 자기력선이 많아지면서 카드의 코일에 전류가 흐르고, 이렇게 얻은 전력으로 IC칩이 작동되고 단말기와 통신해 요금을 지불한다.

발전소에서도 이 전자기 유도 법칙을 이용한다. 발전기를 보면 코일(전선)이 감싸고 있는 자석이 끊임없이 회전한다. 이렇게 만들어진 전압이 전력망이라는 회로에 전달되면 전선 안에 가득한 전자들이 진동하면서 전류가 흐르게 된다.

직류와 교류

일상에서 자주 사용하는 건전지는 내부 화학 반응을 통해 전압이 한 방향으로만 유지된다. 따라서 회로에 연결되면 전자가 한 방향으로 흐른다. 이걸 직류(DC, Direct Current)라고 한다.

그런데 발전소에서 만들어지는 전기는 직류와 달리 전압의 방향이 시간에 따라 주기적으로 변한다. 이에 따라 회로에 흐르는 전류의 방향도 주기적으로 바뀌는데, 이러한 전기를 교류(AC, Alternating Current)라고 한다. 한국은 60Hz이므로 전류의 방향이 초당 60번 바뀐다고 볼 수 있다.

전류의 방향이 초당 60번이나 바뀐다면 전자가 이동하지 못하고 제자리를 맴도는 게 아닐까?라는 생각이 들었다. 근데 실제로 그렇다. 교류에서 전자는 진동하고, 직류에서도 0.1mm/s 정도의 느린 속도로 움직인다고 한다. 실제로 전압이 걸리면 전기장이 빛의 속도에 가깝게 전선을 따라 퍼지면서 전선에 가득한 전자가 움직인다.

왜 교류를 사용할까?

발전소에서 전기를 생산할 때 처음에 만들어지는 전압은 보통 수천 볼트 이상이다. 하지만 이대로 보내진 않고 변전소의 변압기를 통해 수십만 볼트로 전압을 끌어올린다.

왜 그럴까? 전력 손실을 줄이기 위함이다. 전선에는 미세한 저항(R)이 존재하는데, 이 저항으로 인해 전력이 손실되고 에너지가 열로 낭비된다. 이때 손실되는 전력(P)은 전류(I)의 제곱에 비례한다.

Ploss=I2×RP_{\text{loss}} = I^2 \times R

P=V×IP = V \times I 라는 공식을 보면 총 전력의 양은 전압 * 전류 다. 발전소에서 도시로 보내야 할 총 전력은 이미 정해져있으므로 전류를 줄이는 대신 전압을 높여 손실되는 전력의 양을 최소화하는 것이다.

이렇게 교류를 사용하면 변압과 송전에 유리한데, 이때도 전자기 유도 법칙이 적용된다. 앞서 살펴봤듯이 자기장의 변화가 없다면 원래 상태로 돌아가려는 자연 법칙이 일어나지 않으므로 전압도 생성되지 않는다. 직류는 한 방향으로만 흐른다. 따라서 두 개의 코일을 가까이 놓았을 때 한 코일에 일정한 상태로 직류가 흐른다면 다른 코일에 유도기전력을 생성할 수 없다는 뜻이다. 따라서 이걸 변압하려면 다른 복잡한 방법을 써야 한다. 하지만 교류를 사용하면 전류의 크기와 방향이 계속 바뀌기 때문에 자연스럽게 다른 코일에 유도기전력이 생기고, 코일의 감은 횟수를 다르게 해서 쉽게 변압할 수 있다.

참고로 코일을 많이 감을수록 같은 자기장 변화가 생겼을 때 전압이 더 크게 발생한다. 코일마다 감은 횟수를 다르게 해서 결국 수십만 볼트의 전압이 차례차례 변압기를 거쳐 가정에서 사용 가능한 220V 또는 110V로 낮추어진다.

하지만 교류는 불안정하므로 이 전기를 컴퓨터에서 사용하려면 안정적인 직류로 변환해야 하고, 이후 정제 과정을 거쳐서 컴퓨터의 각 부품에 전기가 공급된다.

Q2. 0과 1이 의미하는 건 뭘까?

시스템에서 정보를 표현하는 방식

디지털논리회로 수업 첫 시간에서 배운 시스템의 정의가 떠올랐다.

시스템은 통일된 전체를 형성하기 위해 일련의 규칙에 따라 작동하며 상호작용하거나 상호관련된 요소들의 집합이다.

컴퓨터도 시스템이다. 수많은 부품과 회로들이 일정한 규칙에 따라 전기를 주고받고 상호작용하면서 데이터 처리에 대한 목적을 달성한다.

시스템은 정보를 표현하거나 처리할 때 아날로그 방식 또는 디지털 방식을 사용한다. 체중계의 눈금이나 전기를 측정할 때 눈금이 연속적으로 변하면서 움직이는 건 아날로그다. 컴퓨터 시스템은 디지털 방식을 사용한다. 연속된 값을 그대로 쓰지 않고 딱 떨어지는 명확한 값으로 정보를 표현하고 처리한다.

2진법을 사용하는 이유

전압은 완벽히 0V 또는 5V로 정확히 떨어지지 않는다. 전선에는 항상 미세한 떨림이 존재하기 때문이다. 그래서 컴퓨터공학에서는 전압을 정확한 수치로 따지지 않고 구간을 정해서 LOW와 HIGH로 구분한다. 0과 1은 이 두 가지 물리적 상태에 붙인 논리적인 이름이다.

컴퓨터가 만약 2진법이 아닌 4진법을 사용했다고 가정하면 0, 1, 2, 3을 표현하기 위해 전압을 나누는 구간이 더욱 많아졌을 것이다. 2진법을 사용하면 전압의 상태를 구분하기 쉽고 회로 설계 비용 또한 줄어들기 때문에 2진법을 채택했다고 볼 수 있다.

2. 컴퓨터는 어떻게 전류를 제어할 수 있을까?

전류가 어떻게 만들어져서 어떤 과정을 거쳐서 우리 집 컴퓨터까지 왔는지는 대강은 이해했다. 물리적인 측면에서 컴퓨터가 이 전류를 어떻게 제어할 수 있을까?가 궁금해졌다.

반도체

반도체는 쉽게 말하면 불안정하게 전류가 흐르는 물질로, 어떨 땐 전류가 흐르고 어떨 땐 전류가 흐르지 않는 물질로 생각할 수 있다.

도체와 부도체 중간 정도의 전도성을 갖고, 그 전도성을 인위적으로 조절할 수 있는 물질

사실 순수한 실리콘은 상온에서 전류가 쉽게 흐르는 물질은 아니다. 실리콘의 최외각 전자 4개가 주변 실리콘 원자들과 공유 결합을 하기에 구조가 안정적이기 때문이다.

하지만 실리콘에 실리콘보다 전자가 1개 많은 인(P)이나 전자가 1개 적은 붕소(B)같은 불순물을 섞어주면 공유 결합 과정에서 전자가 하나 남거나 부족하게 된다. 전자가 쉽게 이동할 수 있는 공간이 생기면서 전류를 형성한다. 이런 원리로 P형 반도체, N형 반도체가 만들어진다. 실리콘 웨이퍼를 매입해서 불순물을 넣는 등 공정을 거쳐서 반도체를 만드는 회사가 회사가 삼전, 하이닉스다(지금인가?)

다이오드: 반도체 2개를 접합하면?

P형 반도체와 N형 반도체를 붙여보면 어떨까? N형 반도체의 전자(-)와 P형 반도체의 홀(+)이 결합을 해서 움직일 수 있는 전하 운반자가 사라진다.

이때 N형 반도체쪽은 전자를 잃었기 때문에 양전하를 띠는 이온이 남고, P형 반도체쪽은 홀이 빠져나가면서 음전하를 띠는 이온이 남는다. 이로 인해 더 이상 N형 반도체의 전자가 P형 반도체 쪽으로 넘어가지 못하는 공핍 영역이 생긴다. 이때 전압을 걸어주면 +, - 방향에 따라 공핍영역을 뛰어넘는 힘에 의해 전류가 흐를수도 있고, 공핍 영역이 더욱 커져 전류가 흐르지 못할수도 있게 된다. 이러한 PN 접합을 이용한 물체를 다이오드라고 한다.

다이오드는 한 방향으로만 전류가 흐르는 특성을 가지기 때문에 앞서 얘기했던 교류 전류를 컴퓨터가 사용할 수 있는 직류 전류로 바꾸는데도 사용된다.

트랜지스터: 반도체를 더 많이 접합하면?

다이오드로도 논리회로를 만들 수 있는데, 트랜지스터는 왜 필요했을까?

실제로 다이오드로 AND나 OR게이트를 만들기도 했다고 한다. 하지만 다이오드는 입력 신호를 이용해서 반대 신호를 만들어낼 수 없기 때문에 NOT 게이트는 만들 수 없다. 또한 다이오드를 여러 번 거칠수록 전압도 낮아진다고 한다.

트랜지스터 동작 원리? 이 영상보면 끝!ㅣ반도체 스토리 5편 트랜지스터의 간단한 원리는 이 영상을 참고하면 좋다! 2-3번 정도 보니 조금 이해가 됐다. 관심이 있다면 1-6편을 다 보는 걸 추천한다.

요약하면 트랜지스터는 외부에서 가하는 전압을 조절해 전류의 흐름을 제어하는 스위치다. 인간이 만든 제품 중 가장 많이 팔렸다는 MOSFET이라는 트랜지스터엔 소스, 드레인, 게이트라는 단자가 있다. 게이트에 전압을 세게 걸면 소스와 드레인 사이에 전자가 흐를 수 있는 통로가 생기고, 게이트 전압이 약하거나 걸리지 않으면 통로가 막힌다. 이러한 특성을 이용해 전류를 증폭시키거나 ON/OFF 스위치 역할을 할 수 있다.

기본동작으로는 양쪽에 위치한 소스와 드레인 사이에 흐르는 전류의 양을 게이트에 인가되는 전압의 양을 통해서 조절하는 것입니다. 쉽게 말해 물이 지나가는 통로를 손으로 누르고 풀어 줌에 따라 흘러가는 물의 양을 조절 하는 것과 같은 원리로 이해를 하면 편하실 것 같아요!

출처: 하이닉스 - 반도체의 기초, MOSFET의 모든 것

지금의 컴퓨터가 되기까지

컴퓨터 역사는 더 작고 효율적인 방법으로 이 전류의 흐름(결국 디지털 전기 신호)을 제어하기 위한 과정이었다는 걸 알았다. 애니악같은 1세대 컴퓨터는 트랜지스터가 없으니 진공관으로 전기 신호를 제어했다. 2세대 컴퓨터는 트랜지스터를 통해 제어하고, 이후 3세대 컴퓨터부터는 여러 트랜지스터를 칩에 집적한 집적회로가 사용되기 시작했고, 현대에는 수십억 개에 달하는 트랜지스터를 하나의 칩에 집적한 CPU를 사용한다.

2편 예고

이제야 디지털논리회로까지 왔다.. 틈틈히 쓰느라 거의 일주일이 걸렸다. 이제 0과 1을 제어해서 논리회로를 만드는 건 알겠는데, 이걸 어떻게 메모리에 묶어둘 수 있을까? 결국 1010101같은 걸 기억한다는 건 전자들을 묶어둔다는 것으로 생각되는데 정확히 어떻게 되는지 모르겠다.

OSI 7계층까지 언제 갈 수 있을지 모르겠지만.. 다음 시간에는 SRAM, DRAM, 순차 논리회로, 플립플롭 등 메모리와 디지털논리회로에 대한 궁금증을 해결해보려고 한다.

참고자료