본문 바로가기
CS/BOOK

[한 권으로 읽는 컴퓨터 구조와 프로그래밍] 2. 전자 회로의 조합 논리

by 벨롭 (valop) 2024. 3. 19.
컴퓨터에서 비트를 사용하는 이유

 

 

전자 기술에서 아날로그라는 것은 연속적인 것을 뜻하며, 디지털은 이산적인 것을 뜻한다. 연속적이라는 말은 실수를 자리수의 제한 없이 표현할 수 있다는 뜻으로, 자와 같은 것은 연속적인 값을 표현할 수 있다. 반면 손가락은 1과 2 사이에 1.5라는 값이 있을 수 없으므로 이산적이다.

 

아날로그적인 컴퓨터는 표현할 수 있는 값이 다양하지만, 정밀도의 문제가 있다. 예를 들어 자에서 1.1은 쉽게 찾을 수 있지만 1.000001은 정밀하게 표현하기가 어렵다. 만약 엄청나게 큰 사이즈로 자를 만들듯이 아날로그 컴퓨터또한 크기를 키우면 정밀도가 높아질 것이다. 하지만 현대의 컴퓨터는 전기로 작동하는데, 컴퓨터의 크기가 커질 수록 전자의 이동 거리또한 길어지기 때문에 작업 시간이 길어져 컴퓨터의 성능에도 악영향을 미치게 된다.

 

또한 아날로그적인 장치가 정확하게 값을 읽으려면 흔들림이 없어야한다. 아주 작은 컵에 담긴 물의 양을 잰다면, 원자가 끊임없이 운동하기 때문에 정확한 값을 재기가 어려울 것이다. 하지만 이산적인 장치는 중간 값이 없으며, 판정 기준이 있으므로 아날로그적인 장치보다 안정적이다.

 

따라서 현대의 컴퓨터는 디지털 컴퓨터의 형태를 띄고 있다. 하지만 현실 세계의 데이터는 아날로그적이다. 이 간극을 어떻게 해결할까?

 

 

바로 전이함수에서 문턱값(threshold) 의 개념을 이용한다. 문턱값을 기준으로 연속적인 공간을 이산적인 영역으로 나누는 것이다. 또한 하드웨어에서 전이함수를 10가지의 문턱값으로 구분하는 것보다 0과 1로 구분하는 것이 훨씬 간단하기 때문에, 컴퓨터에서는 10진법 대신 0과 1의 비트를 사용하고 있다.

 

 

 

 

 

 

 

비트를 처리하기 위한 하드웨어

 

 

릴레이 (계전기)

 

 

출처 : https://namu.wiki/w/%EA%B3%84%EC%A0%84%EA%B8%B0

 

릴레이는 스위치를 움직이기 위해 전자석을 사용하는 장치다. 전자석은 전기를 흘려보내면 자기를 띄게 된다. 이 자기를 이용해 스위치를 띄우거나 붙일 수 있다.

 

코일에 가하는 전압을 아무리 천천히 높여도 스위치는 항상 다른 위치로 단숨에 움직이므로, 아날로그적인 값을 디지털로 나타낼 수 있다. 또한 하나의 회로에서의 출력을 다른 회로의 입력으로 활용할 수 있으므로, NOT처럼 AND와 OR보다 더 복잡한 논리를 만들 수 있다.

 

하지만 릴레이는 스위치 접점에 먼지나 벌레가 있으면 제대로 작동하지 않는다는 문제가 있었다.

 

 

 

 

 

진공관 (삼극관)

 

 

 

진공관 속에는 캐소드와 히터가 있다. 히터는 캐소드를 가열하는 역할을 하는데, 이때 물체를 충분히 가열하면 전자가 튀어나오는 열전자 방출 현상으로 인해 캐소드에서는 전자가 흘러나오게 된다. 캐소드에서 발생한 전자는 진공 속에서 애노드로 날아가 전기를 흐르게 만든다.

 

또한 진공관은 캐소드에서 나오는 전자를 쫓아내서 애노드에 도착하지 못하게 만드는 그리드를 가지고 있다. 즉, 그리드가 스위치의 역할을 할 수 있는 것이다.

 

진공관은 움직이는 부분이 없어서 릴레이보다 훨씬 더 빠르고 안정적인 컴퓨터를 구성할 수 있게 해주었지만, 아주 뜨겁고 깨지기 쉽다는 단점또한 가지고 있었다.

 

 

 

 

 

트랜지스터

 

 

 

트랜지스터는 진공관과 비슷한데, 쌍극 접합 트랜지스터에서는 베이스가, 전계 효과 트랜지스터에서는 게이트가 진공관의 그리드와 같은 역할을 한다. 

 

트랜지스터는 반도채 물질로 이루어진 기판(또는 슬랩) 위에 만들어지는데, 트랜지스터 그림을 얇은 판 위에 투영해서 현상하는 광식각이라는 과정을 통해 만들어지므로 대량 생산에 적합하다.

 

 

 

 

 

집적 회로 (칩)

 

트랜지스터는 간단한 회로를 만들때에도 여러 부품을 사용해야 한다는 단점이 있다. 집적 회로를 사용하면 복잡한 시스템을 트랜지스터 하나를 만드는 정도의 비용으로 만들 수 있다.

 

 

 

위와 같은 하드웨어를 사용하면 다양한 유형의 회로를 만들 수 있다. 대표적으로 알려진 것은 AND 게이트, OR 게이트, XOR 게이트, 인버터 (NOT을 수행하는 게이트) 등이 있으며, NAND 게이트와 NOR 게이트는 가장 단순해 디지털 회로 설계시 가장 기본적으로 사용된다.

 

각 게이트에 대한 자세한 설명은 아래 링크에 포함되어 있다.

2023.10.31 - [CS/컴퓨터구조] - [컴퓨터구조] CPU는 어떻게 작동할까? - ALU

 

[컴퓨터구조] CPU는 어떻게 작동할까? - ALU

CPU가 무엇인지 알지 못한다면 이전 포스팅을 먼저 보고 오시길 바란다. 2023.10.30 - [CS] - [컴퓨터구조] CPU와 메모리의 역할 개괄 [컴퓨터구조] CPU와 메모리의 역할 개괄 들어가며 컴퓨터 구조에 대

kyeong8139.tistory.com

 

 

 

 

 

 

 

 

 

논리 게이트를 사용시 발생할 수 있는 문제

 

 

 잡음 발생

 

 

하드웨어는 부품간의 거리가 매우 가깝기 때문에, 한 선에서 발생한 신호가 다른 선에 영향을 끼치고는 한다. 잡음으로 인해 입력 신호가 문턱 값을 여러번 오락가락할 경우 출력 신호에 글리치(작은 오류)가 발생할 수 있다.

 

이런 글리치는 이력 현상을 사용해 방지할 수 있다. 0에서 1로 올라가는 신호인지, 1에서 0으로 내려가는 신호인지를 구별하고 각기 다른 문턱값을 지정하면 잡음 내성을 더 크게 할 수 있다.

 

 

하지만 잡음이 많은 경우에는 두 가지 절대적인 문턱값을 사용하더라도 효과가 없는 경우가 있다. 이런 경우, 한 개의 입력 신호가 아닌 한 쌍의 신호를 활용하는 것이 유용하다. 차등 신호는 한 쌍의 입력 신호에 대해 두 신호 쌍의 차이를 측정해 단일 신호로 만든다. 

 

차동 신호를 적용한 Twisted-pair cabling은 여전히 USB나 이더넷 케이블에서 일반적으로 활용되고 있다.

 

 

 

 

전파 지연

 

 

입력이 발생했을 때 출력에 영향을 미칠때까지 시간이 걸리는데, 이를 전파 지연이라고 한다. 게이트를 조합한 복잡한 회로 중 가산기로 예를 들어보자.

 

 

 

리플 자리올림 가산기

 

여러 비트의 덧셈을 수행하는 리플 자리올림 가산기의 경우, 자리 올림이 LSB부터 바로 위쪽 비트로 전달되며 계산된다. 즉, 비트를 하나 처리할 때 마다 게이트 2개(AND(올림)와 XOR(합)) 에 해당하는 출력 시간 지연이 발생한다.

 

미리 자리올림 수를 예측하는 올림 예측 가산기를 사용하면 이런 지연을 제거할 수 있다.

 

 

 

 

 

게이트를 조합한 복잡한 회로 

가산기와 같이 게이트를 조합하면 복잡한 회로를 만들어낼 수 있다.

 

 

 

디코더

 

 

디코더는 인코딩된 수를 개별 비트의 집합으로 만든다. 2:4 디코더는 2개의 입력으로 4개의 출력을 만들어낸다.

 

 

 

 

 

 

 

 

멀티플렉서 / 디멀티플렉서

 

 

이외에도 입력을 몇 가지의 출력 중 한 곳으로 전달하는 디멀티플렉서나 여러 입력 중 하나의 입력을 선택하는 멀티플렉서를 구현할 수도 있다.