2장 전자 회로의 조합 논리

asda주asda·2022년 2월 16일

컴퓨터 지식

목록 보기
3/3

하드웨어에서 크기가 중요한 이유

현대 컴퓨터는 전자를 움직인다. 전기는 빛의 속도로 움직이며 빛의 속도는 초당 3억 미터이다. 우리는 빛의 속도를 조절하지 못하기에 하드웨어의 크기를 줄여 전자의 여행 거리를 단축시킨다. 오늘날 컴퓨터 클록 속도(clock speed)sms 4GHz이며, 이 말은 1초에 40억 가지 계산을 처리 할 수 있다는 뜻이다. 40억 분의 1초 동안 전자가 이동할 수 있는 거리는 75mm뿐이다. 만일 CPU의 한 면이 18mm라면 40억 분의 1초는 전자가 이 CPU 안에 두 번 왕복할 수 있는 정도의 시간이다. 그렇기에 컴퓨터에서 모든 것을 작게 만든다면 더 높은 성능을 기대할 수 있다. 하드웨어를 작게 만들면 필요한 거리가 줄고, 거리가 준다면 에너지 양도 줄어든다. 이는 저 전력 소모와 열 발생 감소를 귀결하기에 하드웨어의 크기를 작게하려는 노력을 하고있다.

10진 숫자 대신 비트를 사용하는 이유

컴퓨터는 전지가 통하냐 안통하냐로 구성된다. 다시말해 트렌지스터에 전류가 흐르냐 안흐르냐에 따라 정보를 구성한다. 즉 애초에 트렌지스터로 구성되어서 2진수를 사용하는 것이다. 트렌지스터는 0과 1밖에 표현을 못한다.
10진수를 사용하는 것은 2진수에 비해 효율적이지 못하다. 10개의 손가락을 예로 들자면 한 손가락이 한 숫자밖에 표현하지 못한다. 만일 각 손가락을 2진수로 생각한다면 손가락으로 1024가지의 정보를 표현할 수 있다.
또 다른 이유로는 2진수는 0혹은 1이기에 간단히 하드웨어를 구성할 수 있다.

왼쪽의 10진수의 하드웨어를 만들 수도 있지만 이것보단 오른쪽을 구현하는 하드웨어를 10개만드는 편이 더 간단하고 비용도 낮다. 앞의 트렌지스터가 오른쪽 하드웨어의 장치이다. 비트를 사용하면 재량권이 아주 커진다. 출력의 한 값을 다른 값으로 급하게 바꾸는 것이 가능하다. 예를 들어 왼쪽에서 4에서 9로 바꾸는 것보다 0에서 1로 바꾸는 것이 훨신 단순하다.

간단한 전기 이론 가이드

전기는 수도 배관과 유사하다.

전기는 눈에 보이지 않아서 시각화가 힘들다. 따라서 전기를 물이라고 생각해보자. 물이 물탱크에서 나오는 것 처럼 전기는 배터리 같은 에너지 근원에서 나온다. 물탱크가 비면 물을 채워 넣어야 하는 것처럼 배터리 에너지가 고갈되면 충전을 해야한다. 우리가 사용할 수 있는 유일한 에너지 근원은 태양뿐이다. 태양에서 온 에너지가 물을 기화시켜 수증기로 만들고, 수증기는 다시 물이 되어 물탱크를 채운다. 여기 물 밸브(valve)가 있다. 손잡이를 통해 물을 흐르게 할수도 있고 멈추게할 수도 있다. 여기서 밸브가 닫힌 상태를 0, 열린 상태를 1을 표현한다고 가정하자. 그러면 다음 그림과 같이 AND연산과 OR 연산이 가능해진다.

위의 그림 처럼 한 밸브의 출력이 다른 밸프의 입력에 연결될 경우, 이런 연결을 직렬연결(series connection)이라 하며 AND연산을 구현한다. 반대로 두 밸브의 입력을 한 관에 함께 연결하고 두 밸브의 출력을 다른 관에 함께 연결한 것을 병렬연결(parallel connection)이라 하며 OR연산을 구현다.

물이 파이프를 흘러서 전달되는 데 시간이 걸리는 것처럼, 전기가 컴퓨터 칩 내부에 전파되는데도 시간이 걸린다. 샤워기 물 온도를 변화시키기 위해 손잡이를 돌리고 원하는 대로 온도가 변할 때까지 시간이 약간 걸리는 것을 전파 지연(propagation deley)전기에 빗댄다면 '논리회로가 입력신호를 받고서 출력 결과를 나타낼 때까지 걸리는 시간을 의미한다.'라고 할 수 있다. 이러한 지연은 상수가 아니다.

물이 파이프를 흘러가는 것 처럼 전기도 선을 통해 이동한다. 다만 이런 전기의 이동은 실제로 전자의 흐름은 아니고 전자기 에너지 반응이 전파되는 현상을 말한다. 전기 선은 두 부분으로 구성된다. 내부에 있는(유동성이 있는 전자가 가득한)금속을 도체(conductor), 금속 바깥쪽을 둘러싼 부분을 부도체(insulator)라고 부른다. 물의 흐름을 배브로 제어할 수 있는 것처럼, 전기의 흐름을 제어할 수 있는 밸브를 스위치(switch)라고한다.

물의 흐름은 압력(pressure), 즉 수압(water pressure) 의해 밀려서 움직인다. 압력의 세기는 달라질 수 있다. 전기에서 수압에 해당하는 존재는 전압(voltage)이며, 측정 단위는 볼트(V,volt)다. 전기 흐름의 양은 전류(I,current)라고 부르고, 측정 단위는 암페어(A, ampere)다.

물은 굵은 관이나 가는 관을 통해 흐를 수 잇다. 하지만 관이 더 가늘수록 관을 통해 흐를 수 있는 물의 양을 제한하는 저항이 더 커진다. 전압이 더 높더라도 너무 가는 도체를 사용함으로 인해 저항이 아주 크면 전류가 커지지 못한다. 저항(R, resistance)을 측정할 때는 옴(Ω,ohm)을 쓴다.

이 세 가지 변수(전압, 전류, 저항)는 옴의 법칙(Ohm's law)를 통해 I=V/R이라는 관계로 이어진다. 따라서 저항이 크면 전류가 더 줄어든다. 게다가 저항은 전기를 열로 바꾼다. 이 원리를 상요해 토스터부터 전기담요까지 모든 전열기구가 작동한다.

전기 스위치

전기에 사용할 스위치를 만드는 일은 도체 사이에 부도체를 삽입하거나 제거하는 문제일 뿐이다. 전등 스위치는 스위치 단추를 누르면 붙거나 떨어지는 두 조각의 금속으로 구성된다.

전기 시스템은 회로(circuit)라고 부르며, 스키매틱(schematic diagrams)을 통해 문서화한다. 스키매틱은 각 구성요소를 기호로 표현한다. 아래의 그림은 단극단추 스위치를 스키매틱으로 표현했다.

그림에서는 단극단투(SPST, single-pole, single-thorw)스위치를 나타낸다. 극(pole)이란 한꺼번에 연결되어 이동하는 스위치의 수를 말한다. 밸브 두 쌍의 손잡이를 땜질해서 두 손잡이가 함께 움직이게 만들면 쌍극(double-pole)으로 만들 수 있다. 단투(single throw)는 접점이 하나뿐이라는 뜻이다. 접점이 하나이기 때문에 유일한 접점을 연결하거나 끊을 수만 있다. 단투 스위치로는 한쪽은 켜고 반대쪽은 크는 역할을 할 수없다. 이런 스위치가 필요하다면 단극쌍투(SPDT, single-pole, double-throw)스위치가 필요하다.
이 스위치는 마치 두 선로 중 한쪽으로 기차를 연결해주는 선로 분기와 같다.

원하는 개수만큼 극이나 접점을 사용해 스위치 관련 용어를 확장할 수 이싿. 예를 들어 쌍극쌍투(DPDT, double-pole, double-throw)스위치는 아래의 그림과 같다. 파선은 두 극이 서로 연계(ganged)됐다는 표시다.

전기 시스템은 에너지 근원에서 나온 전기는 회로 구성요소를 지나서 다시 근원으로 돌아간다. 그래서 이를 회로(回路,circuit)라고 부른다.


위의 회로에서 스위치가 닫히면 전류가 전원에서 나와 스위치를 통과한 다음 전구를 흐르고 다시 전원으로 돌아간다. 병렬이나 직렬로 스위치를 연결할 수 있다.

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

비트를 다루는 하드웨어를 만드는 방법

릴레이

선을 둥글게 감아서 코일을 만들고 전기를 흘려보내면 코일이 전자석(electromamgnet)이 된다. 전자석은 자석의 일종으로 전류가 흐르면 자기력을 가지고 전류가 흐르지 않으면 자기력을 가지지 않는 자성체를 말한다. 전자석은 켜고 끌 수 있기 때문에 물건을 움직일 때 활용할 수 있다.
릴레이(relay, 계전기)는 스위치를 움직이기 위해 전자석을 사용하는 장치다.

위의 그림은 단극쌍투 릴레이의 스키매틱 기호를 보여준다. 기호를 보면 단극쌍투 스위치에 코일을 붙여놓은 것 같이 보인다.

위의 그림은 실제 단극단투 릴레이를 보여준다. 그림에서는 코일에 전력이 들어가지 않았기에(이를 '전력을 인가한다' 라고 한다.) 스위치가 열려 있다. 이런 릴레이를 평상시 열린 릴레이(normally open relay)라고 부른다. 반대로 전력이 들어가지 않을 때 항상 닫혀 있는 릴레이를 평상시 닫힌 릴레이(normally closed relay)라고 한다.

릴레이를 사용하면 논리 함수를 만들 수 있다.

첫 번째 그림에서 두 릴레이가 모두 활성화돼야 두 선이 연결도니다는 사실에서 AND함수 정의와 같다. 아래 그림에서는 두 릴레이 중 하나만 활성화된다면 선이 연결된다는 점에서 OR함수와 같다.

릴레이를 사용하면 NOT함수를 구현하는 인터버(inverter)를 만들 수 있다. NOT연산이 없으면 표현 가능한 불리언 연산이 제한된다. 위의 그림에서 AND 회로에서 나온 출력을 아래쪽 OR 회로의 입력 중 하나를 구독하기 위해 연결 할 수 있다. 이런 능력을 활용하면 스위치가 다른 스위치를 제어하게 만들 수 있다. 이에 따라 복잡한 논리를 만들 수 있다.

릴레이는 느리고 전기를 많이 소모하며, 먼지가 스위치 접점에 있으면 제대로 작동하지 않는 문제가 있다. 과거 한 과학자가 오류를 추적하다가 릴레이에 낀 나방을 발견하면서 버그(bug)라는 단어가 유명해졌다. 스위치 접점을 사용해 다른 릴레이를 제어하기 때문에 다른 문제도 생긴다. 코일의 전원을 갑자기 끄면 순간적으로 초고압이 발생한다는 사실과 초고압에서는 공기에서도 전기가 통한다는 사실이다. 이로 인해 스위치 접점이 점점 마모된다.

진공관

과거 물리학자는 물체를 충분히 가열하면 전자가 튀어나오는 열전자 방출(thermionic emission)이라는 현상을 기반으로 진공관을 만들었다.

진공관 안에는 야구 투수 같은 역할을 하는 캐소드(cathode)와 캐소드를 가열하는 히터(heater)가 있다. 캐소드에서 발생한 전자는 진공관 속에서 애노드(anode)포수 같은 역할로 날아간다. 전자는 자석과 비슷한 성질을 몇 가지 띠는데, 그중에는 서로 다른 극이 서로를 끌어당기고 서로 같은 극이 서로를 밀어낸다는 성질이 있다. 진공관에 추가로 '타자' 역할을 하는 요소를 더할 수 있는데 이를 그리드(grid)라고 한다. 그리드는 캐소드에서 나오는 전자를 쫓아내서 애노드에 도착하지 못하게 한다. 세 요소(캐소드 ,그리드, 애노드)가 들어 있는 진공관을 삼극관(triode)이라고 부른다.


위의 그림은 삼극관을 스키매틱으로 표현한 것이다.
여기서 히터는 캐소드를 가열해 전자가 튀어 나가게 한다. 그리드가 방해하지 않으면 전자가 애노드에 도달한다. 따라서 그리드를 스위치 손잡이로 생각할 수 있다.

진공관의 장점은 움직이는 부분이 없어서 릴레이보다 훨씬 더 빠르다는 점이다. 단점은 전구와 마찬가지로 진공관도 아주 뜨겁게 깨지기 쉽다는 점이다. 전구 필라멘트가 타듯이 히터도 타버릴 수 있다.

트랜지스터

최근에는 트랜지스터가 가장 사용된다. 전송 저항transfer resistor이라는 말을 줄인 트랜지스터transistor는 진공관과 비슷하지만 반도체semiconductor라는 특별한 물질을 사용한다. 반도체는 도체와 부도체 사이를 오갈 수 있는 물질이다. 물론 트랜지스터 또한 완벽한지 않다. 트랜지스터를 아주 작게 만들 수 있으며 이는 좋은 일이지만, 도체가 가늘고 얇아지면 저항이 더 늘어나기 때문에 열이 발생한다. 반도체는 쉽게 녹을 수 있기 때문에, 트랜지스터에서 열을 제거하는 일은 아주 중요한 문제다.

트랜지스터에서 중요한 점은 토랜지스터가 반도체 물질로 이뤄진 기판substrate또는 슬랩slab위에 만들어 진다는 점이다. 트랜지스터는 트랜지스터 그림을 실리콘 웨이퍼wafer(얇은 판)위에 투영해서 현상하는 광식각photolithography이라는 과정을 통해 만들어진다. 한 실리콘 웨이퍼 기판위에 수많은 트랜지스터를 투영해 현상한 후 개별적인 부품으로 잘라낼 수 있기 때문에 광식각과정은 대량 생산에 적합하다.

트랜지스터에는 여러가지 유형이 있지만, 가장 중요한 두 가지 유형은 쌍극 접합 트랜지스터BJT, bipolar junction transistor와 필드 효과 트랜지스터FET, field effect transistor다. 제조 공정에는 비소처럼 위험한 물질을 기판 물질의 성질을 변화시키기 위해 기판 위에 얇게 분사하는 도핑doping과정이 들어간다. 도핑은 p와 n 유형의 물질으로 이뤄진 영역을 만들어낸다. 트랜지스터를 만들려면 p와 n의 샌드위치를 만들어야 한다.

NPN, PNP, N채널, P채널이라는 용어는 샌드위치 구성 방법을 뜻한다. 트랜지스터를 밸브나 스위치로 생각할 수 있다. 게이트gate나 베이스base는 스위치 손잡이이며, 이 손잡이가 올라가면 전기가 위에서 아래로 흐른다.

FET기호에서 게이트와 트랜지스터의 나머지 부분 사이에 작은 틈을 볼 수 있다. 이 틈은 FET가 정전기를 사용한다는 사실을 보옂누다. 이는 마치 정전기 효과를 사용해 스위치를 움직이는 것과 비슷하다.

금속산화물 반도체 전계 효과 트랜지스터MOSFET, metal-oxide semiconductor field effect transistor는 FET의 일종으로, 전력 소모가 적기 때문에 현대 컴퓨터 칩에서 가장 널리 사용된다. N채널과 P채널 MOSFET을 서로 보완하도록 한 쌍으로 묶어서 사용하는 경우가 많은데, 이로부터 CMOScomplementary metal oxide semiconductor라는 말이 나왔다.

집적 회로

트랜지스터를 사용하면서 더 작고, 빠르고, 신뢰할 수 있으며 전력도 적게 소모하는 논리 회로를 만들 수 있게 됐다. 하지만 트랜지스터를 사용하면 AND함수 같은 간단한 회로를 만들 때 조차도 부품이 많이 필요하다.
이에 집적 회로integrated circuit가 발명됬다. 집적 회로를 사용하면 복잡한 시스템을 트랜지스터 하나를 만드는 정도의 비용으로 만들 수 있다. 집적 회로는 생긴 모양 때문에 칩chip이라고 불렸다.

논리 게이트

1960년대 중반 한 인물이 5400과 7400 집적 회로(IC) 패밀리를 발표했다. 이 칩들에는 논리 연산을 수행하는 회로가 미리 들어가 있다. 이런 회로를 논리 게이트logic gate라고 부르며, 그냥 게이트라고도 한다.

논리 게이트를 활용하면 허드웨어 설계에 있어 밑바닥부터 모든 회로를 설계할 필요가 사라졌다. 즉 AND 게이트, OR 게이트, XOR 게이트, 인버터inverter(NOT을 수행하는 게이트)가 들어 있는 '박스'를 얻을 수 있다.

인버터 기호에서 중요한 부분은 삼각형 꼭짓점에 있는 동그라미다. 동그라미가 없는 삼각형은 버퍼buffer라고 하며, 버퍼는 단지 입력을 출력으로 전달하기만 한다.

하지만 AND나 OR게이트가 가장 효율적인 게이트는 아니다. 트랜지스터-트랜지스터 논리TTL, transistor-transistor logic든 CMOS든 논리 게이트에서 가장 단순한 회로는 NANDnot and나 NORnot or이다. NAND나 NOR은 트랜지스터를 2개(TTL)나 4개(CMOS) 사용한다. 반면 AND나 OR은 NAND나 NOR 회로 출력에 트랜지스터를 덧붙여서 출력을 반전시켜야 하기 때문에 더 비싸고 반응 속도도 더 느리며, 전력도 더 많이 소모된다. 따라서 보통 디지털 회로 설계 시 가장 기본적으로 사용하는 게이트는 NAND나 NOR게이트다.

NAND나 NOR은 AND나 OR보다 더 표현할 수 있는 논리가 늘어난다.
https://e-funny.tistory.com/11
NAND나 NOR을 사용하면 '드모르간 법칙(OR은 AND과 NOT으로, AND은 OR과 NOT으로 표현할 수 있음을 가리키는 법칙)'에 의해 OR, AND, NOT으로 표현할 수 있는 모든 논리를 표현할 수 있다.

위의 그림은 드모르간의 법칙을 사용해 NAND 게이트를 다시 그린 것이다. 둘의 기호는 같은 결과를 나타낸다.

이력 현상을 활용한 잡음 내성 향상

논리 신호가 0에서 1로 순간적으로 바뀌고, 1에서 0으로도 순간적으로도 바뀐다고 생각하기 쉽다. 하지만 실제 현실에서 사용 중인 시호 중에는 천천히 변하는 신호가 많다.

왼쪽 그림의 입력은 조용하며 잡음이 없지만, 오른쪽 그림의 입력신호에는 잡음이 있다. 잡음으로 인해 입력 신호가 문턱값을 여러 번 오락가락하기 때문에 출력 신호에글리치glitch가 생긴다.

이런 글리치는 이력 현상hysteresis을 사용해 방지할 수 있다. 이력 현상이란 말은 판정 기준이 이력(과거에 벌어진 일)에 따라 달라진다는 뜻이다.


그림에서 화살표로 표시해놓은 것처럼 올라가는 신호와 내려가는 신호에 대한 전이 함수가 다르다. 출력이 0이면 오른쪽 곡선을 사용하고, 출력이 1이면 왼쪽 곡선을 사용한다.
이렇게 하면 올라가는 신호와 내려가는 신호에 대해 각기 다른 문턱값이 생긴다. 이 말은 입력신호가 두 문턱값 중 하나를 넘어간 경우 반대쪽 문턱값을 지나가며 출력이 반전되려면 값이 상당히 많이 변해야 한다는 뜻이다. 따라서 잡음 내성이 더 커진다.

0개의 댓글