여덟 편에 걸쳐 소자 하나를 만들었습니다. 실리콘에 불순물을 넣어 P형과 N형을 얻고, 둘을 붙여 접합을 만들고, 그 위에 게이트를 얹어 전류를 조절하는 트랜지스터까지 왔습니다. 지난 편에서는 그것을 작게 만들 때 무엇이 따라오는지도 보았습니다.
그런데 트랜지스터 하나는 아직 아무것도 계산하지 못합니다. 그것은 켜고 끌 수 있는 스위치일 뿐입니다. 이 편의 질문은 하나입니다 — 스위치를 몇 개 이어 붙이면 어떻게 계산이 되는가.
답은 단출합니다. 스위치 두 개로 「아니다」를 만들고, 네 개로 「둘 다는 아니다」와 「둘 다 아니다」를 만듭니다. 그리고 그 네 개짜리 부품 한 종류만 있으면 나머지 모든 논리를 만들 수 있습니다.
본문의 조건 값은 계산 과정을 보이기 위한 예시이며 특정 회사의 사양이 아닙니다. 인용한 수치는 모두 공개 문헌에서 확인한 값이고 출처를 글 끝에 남깁니다.
먼저, 아날로그 소자를 디지털로 쓰겠다는 약속
앞 편들에서 본 트랜지스터는 아날로그 소자입니다. 게이트 전압을 조금 올리면 전류가 조금 늘고 더 올리면 더 늘었습니다. 중간값이 얼마든지 있습니다.
디지털 회로는 그 중간을 버립니다. 전압이 전원 쪽에 가까우면 1, 접지 쪽에 가까우면 0으로 읽기로 정하고 그 사이 구간은 쓰지 않습니다. 위키백과 「Inverter (logic gate)」 문서는 디지털 회로가 논리 0과 1에 대응하는 고정된 전압 준위에서 동작한다고 적고, 예로 TTL 회로의 0 V와 +5 V를 듭니다.
위키백과 「Logic gate」 문서는 논리 게이트가 다이오드나 트랜지스터를 전자 스위치로 써서 만들어진다고 기술합니다. 출력이 높다는 것은 양의 전원 단자에서 전류를 끌어오는 것이고 낮다는 것은 음의 전원 단자로 흘려보내는 것이라고 「Logic gate」 문서는 설명합니다.
정리하면 이렇습니다. 소자는 아날로그지만 읽는 방식을 두 값으로 제한해 디지털로 씁니다. 이 제한이 왜 이득인지는 뒤에서 잡음 이야기를 할 때 드러납니다.
인버터 — 스위치 둘로 만드는 「아니다」
가장 간단한 논리는 부정입니다. 위키백과 「Inverter (logic gate)」 문서는 NOT 게이트를 논리 부정을 구현하는 게이트로 정의하고, 입력 비트와 반대 값을 가진 비트를 출력한다고 적습니다. 진리표는 두 줄뿐입니다 — 0이 들어오면 1, 1이 들어오면 0.
한쪽이 열리면 다른 쪽은 닫힌다
만드는 방법은 여럿입니다. 「Inverter (logic gate)」 문서는 NMOS 하나에 저항을 붙이는 방식을 먼저 소개하고 약점을 짚습니다 — 두 상태 가운데 한쪽에서 저항에 전류가 계속 흐르므로 전력과 처리 속도에서 불리하다는 것입니다.
대안이 CMOS입니다. 저항 자리에 PMOS를 놓습니다. 위키백과 「CMOS」 문서가 기술하는 배선은 이렇습니다. 위에 PMOS, 아래에 NMOS를 놓고 두 게이트를 같은 입력에 함께 연결합니다. 위는 전원 Vdd에, 아래는 접지 Vss에 닿아 있고 둘이 만나는 지점이 출력입니다.
「CMOS」 문서가 적는 동작은 두 줄입니다.
- 입력이 낮을 때 — NMOS의 채널이 높은 저항 상태가 되어 접지가 출력에서 끊기고, PMOS의 채널이 낮은 저항 상태가 되어 전원이 출력에 연결됩니다. 출력은 1입니다.
- 입력이 높을 때 — 반대입니다. PMOS가 높은 저항 상태가 되어 전원을 끊고, NMOS가 낮은 저항 상태가 되어 접지를 연결합니다. 출력은 0입니다.
같은 입력을 받는데 반응이 정반대입니다. 「상보(complementary)」라는 이름이 여기서 나옵니다. 위키백과 「Inverter (logic gate)」 문서는 이 구성이 두 논리 상태 모두에서 트랜지스터 하나가 늘 꺼져 있기 때문에 전력 소비를 크게 줄인다고 적습니다.
왜 하필 위가 PMOS이고 아래가 NMOS인가
순서를 바꿔도 되는지 물을 수 있습니다. 되지 않습니다. 두 소자가 잘 전달하는 값이 서로 다르기 때문입니다.
위키백과 「Transmission gate」 문서는 이 성질을 한 문장으로 적습니다 — PMOS는 강한 1을 전달하지만 0은 부실하게 전달하고, NMOS는 강한 0을 전달하지만 1은 부실하게 전달한다는 것입니다.
그래서 배치가 정해집니다. 1을 내보내는 일은 1을 잘 전달하는 PMOS에게, 0을 내보내는 일은 0을 잘 전달하는 NMOS에게 맡깁니다. 위가 PMOS이고 아래가 NMOS인 이유입니다. 두 소자는 서로의 약한 쪽을 덮습니다.
그래서 전력을 거의 쓰지 않는다
전원에서 접지까지 전류가 흐르려면 길이 이어져야 합니다. CMOS 인버터에서는 위아래 가운데 하나가 늘 끊겨 있어 그 길이 없습니다. 위키백과 「CMOS」 문서는 이렇게 적습니다 — MOSFET 쌍 가운데 하나는 항상 꺼져 있으므로 이 직렬 조합은 켜짐과 꺼짐 사이를 오가는 순간에만 유의미한 전력을 끌어온다는 것입니다.
「CMOS」 문서는 정적 CMOS 게이트가 쉬고 있을 때 거의 0에 가까운 전력을 소모한다고 기술합니다. NMOS 논리는 트랜지스터가 켜져 있는 동안 Vdd에서 Vss로 가는 전류 경로가 늘 있어 전력을 계속 씁니다.
전력은 값이 바뀌는 순간에 쓰인다
그러면 전력은 어디에 쓰일까요. 네 번째 편에서 본 것이 여기서 돌아옵니다. 접합이 있는 곳에는 원하지 않아도 커패시터가 딸려 옵니다.
위키백과 「CMOS」 문서는 CMOS 회로가 스위칭될 때마다 여러 부하 용량을 채우면서 전력을 소모한다고 적습니다. 게이트 용량과 배선 용량이 대부분이고 드레인·소스 용량도 있다고 덧붙입니다. 한 번의 완전한 주기에서 전류는 VDD에서 부하 용량으로 흘러 그것을 채우고, 방전할 때는 채워진 용량에서 접지로 흘러 나갑니다.
「CMOS」 문서는 한 주기에 옮겨지는 전하를 Q = CLVDD로 적고, 여기에 스위칭 주파수와 평균 전압을 곱해 전력을 얻습니다.
P = 0.5 C V2 f
대부분의 게이트가 매 클록마다 값을 바꾸지는 않으므로, 「CMOS」 문서는 활동률 α를 붙여 P = α C V2 f로 다시 씁니다.
이 식이 말하는 것은 분명합니다. 전력은 값이 바뀐 횟수에 비례합니다. 가만히 있으면 거의 쓰지 않습니다. 그리고 전압이 제곱으로 들어갑니다 — 전원 전압을 낮추는 일이 전력을 줄이는 가장 센 수단입니다.
다만 「거의 0」이 「0」은 아닙니다. 「CMOS」 문서는 속도를 위해 문턱 전압을 낮춘 현대 소자에서 부문턱 누설 전류가 유의미해졌고, 활발히 스위칭하지 않는 회로를 많이 담은 설계에서도 이 누설 때문에 전력이 소모된다고 적습니다. 지난 편에서 본 짧은 채널의 문제가 전력 항목으로 다시 나타난 것입니다.
전달 특성 곡선 — 가운데가 가파를수록 좋다
인버터의 품질은 그림 한 장으로 잽니다. 입력 전압을 0에서 전원 전압까지 천천히 올리며 출력 전압을 그린 곡선입니다. 위키백과 「Inverter (logic gate)」 문서는 이를 전압 전달 곡선(VTC, voltage transfer curve)이라 부르고, 여기서 잡음 허용치·이득·동작 논리 준위를 얻을 수 있다고 적습니다.
「Inverter (logic gate)」 문서는 이상적인 VTC가 뒤집힌 계단 함수라고 기술합니다. 어느 한 점에서 출력이 수직으로 떨어지는 모양입니다. 실제 소자에서는 완만한 전이 구간이 생깁니다. 그리고 덧붙입니다 — 이 전이 구간의 기울기가 품질의 척도이며 가파를수록 정확한 스위칭이 된다.
기울기가 왜 품질인가
기울기가 완만하면 「1도 0도 아닌」 입력 구간이 넓어집니다. 그 구간에 들어온 신호는 다음 게이트가 어느 쪽으로도 읽을 수 있습니다. 계산이 틀리는 자리입니다.
이 여유를 수치로 정한 것이 잡음 여유(noise margin)입니다. 위키백과 「Noise margin」 문서는 이를 잡음 없는 최악의 입력 준위에 더해도 출력이 허용 논리 준위를 벗어나지 않게 하는 최대 잡음 진폭으로 정의합니다.
기준점은 네 개입니다.
- VOH — 출력이 1일 때의 전압. 「Noise margin」 문서는 CMOS 인버터에서 이 값이 VDD와 같아진다고 적습니다.
- VOL — 출력이 0일 때의 전압. CMOS에서는 접지 전위와 같아집니다.
- VIH — VTC의 기울기가 −1이 되는 가장 높은 입력 전압으로 정의됩니다.
- VIL — 기울기가 −1이 되는 가장 낮은 입력 전압입니다.
여유는 두 번의 뺄셈입니다.
NMH = VOH − VIH 그리고 NML = VIL − VOL
「Noise margin」 문서는 이 값이 양수여야 정상 동작이 보장되고 음수이면 동작이 훼손되거나 아예 실패한다고 적습니다.
여기서 곡선의 모양과 여유가 이어집니다. 기울기가 −1이 되는 두 점 VIH와 VIL이 가운데로 모일수록 두 뺄셈의 결과가 커집니다. 전이 구간이 가파르다는 말은 곧 잡음 여유가 넓다는 말입니다.
「Noise margin」 문서는 CMOS의 잡음 여유가 TTL보다 훨씬 큰 이유도 적습니다 — VOH의 최솟값이 전원 전압에 더 가깝고 VOL의 최댓값이 0에 더 가깝기 때문입니다. 출력을 위아래 끝까지 밀어붙이는 CMOS의 구조가 그대로 여유가 됩니다. 「CMOS」 문서가 이 기술의 중요한 특성 두 가지로 높은 잡음 내성과 낮은 정적 소비 전력을 드는 것도 같은 맥락입니다.
앞의 「중간을 버린다」는 약속이 여기서 값을 합니다. 아날로그라면 잡음이 그대로 오차로 남습니다. 두 값만 쓰면, 여유 안에서 흔들린 신호는 다음 게이트를 지나며 다시 끝값으로 밀려 사라집니다.
스위치를 잇는 두 가지 방법 — NAND와 NOR
인버터에서 입력을 둘로 늘립니다. 방법은 두 가지뿐입니다 — 직렬로 잇거나 병렬로 잇거나입니다.
직렬은 「둘 다 켜져야 통한다」이고 병렬은 「하나만 켜져도 통한다」입니다. 이 두 문장이 그대로 논리곱과 논리합입니다. CMOS는 위아래가 반대여야 하므로, 아래를 직렬로 놓으면 위는 저절로 병렬이 됩니다.
NAND — 아래를 직렬로
위키백과 「NAND gate」 문서는 CMOS 구현을 이렇게 기술합니다. 스위치 노릇을 하는 것은 n형 트랜지스터 두 개이고, 풀업 저항 노릇을 하는 것은 p형 트랜지스터 두 개인데 이 p형 쌍은 n형 쌍의 보수를 이룹니다.
보수라는 말이 배치를 정합니다. 아래 NMOS 둘이 직렬이면 위 PMOS 둘은 병렬입니다. 네 가지 입력을 따라가 봅니다.
- A=0, B=0 — 아래 NMOS가 둘 다 꺼져 접지로 가는 길이 없습니다. 위 PMOS는 둘 다 켜져 전원이 출력에 닿습니다. 출력 1.
- A=0, B=1 — 아래 NMOS 하나만 켜졌습니다. 직렬이므로 길은 여전히 끊겨 있습니다. 위는 병렬이라 한쪽만 켜져 있어도 전원이 닿습니다. 출력 1.
- A=1, B=0 — 앞 줄과 좌우 대칭입니다. 출력 1.
- A=1, B=1 — 아래 NMOS 둘이 다 켜져 직렬 길이 이어집니다. 위 PMOS는 둘 다 꺼졌습니다. 출력 0.
둘 다 1일 때만 0입니다. 위키백과 「NAND gate」 문서가 싣는 2입력 진리표와 같고, 「NAND gate」 문서는 이 함수를 NOT(A AND B)와 논리적으로 같다고 적습니다.
NOR — 아래를 병렬로
반대로 놓으면 반대 게이트가 됩니다. 위키백과 「NOR gate」 문서는 CMOS 구현에서 풀업 저항의 기능을 위쪽 p형 트랜지스터 두 개의 직렬 연결이 맡는다고 기술합니다. 아래는 그 보수인 병렬 NMOS 둘입니다.
「NOR gate」 문서는 동작을 이렇게 요약합니다 — 입력 가운데 어느 하나라도 높으면 해당 n채널 소자가 켜져 출력이 낮게 당겨지고, 그렇지 않으면 출력이 위로 당겨집니다.
- A=0, B=0 — 아래가 둘 다 꺼져 접지로 가는 길이 없고, 위의 직렬 PMOS 둘이 모두 켜져 전원이 닿습니다. 출력 1.
- A=0, B=1 — 아래는 병렬이라 하나만 켜져도 접지로 이어집니다. 위는 직렬이라 하나만 꺼져도 끊깁니다. 출력 0.
- A=1, B=0 — 앞 줄과 좌우 대칭입니다. 출력 0.
- A=1, B=1 — 아래 두 길이 모두 이어지고 위는 완전히 끊깁니다. 출력 0.
둘 다 0일 때만 1입니다. 「NOR gate」 문서는 NOR을 두 입력이 모두 낮을 때만 높은 출력이 나오는 게이트로 정의합니다.
두 회로도를 나란히 놓으면 위아래를 뒤집은 그림입니다. 직렬과 병렬이 자리를 맞바꾼 것뿐입니다.
둘 중 하나면 충분한데, 그 하나는 NAND다
한 종류로 전부 만든다
위키백과 「NAND gate」 문서는 NAND가 기능적 완전성을 갖는다고 적습니다. AND든 OR든 다른 어떤 논리 함수든 NAND만으로 구현할 수 있다는 뜻이고, 같은 성질을 NOR도 가집니다. 「NAND gate」 문서는 프로세서 전체를 NAND 게이트만으로 만들 수 있다고 덧붙입니다.
「Logic gate」 문서는 이 사실의 내력까지 적어 둡니다. 퍼스(Charles Sanders Peirce)가 1880~1881년에 NOR 게이트만으로, 또는 NAND 게이트만으로 다른 모든 논리 게이트의 기능을 재현할 수 있음을 보였다는 것입니다. 그래서 이 둘을 보편 논리 게이트라 부릅니다.
실제로 그렇게 만든 기계도 있습니다. 「NOR gate」 문서는 초기 아폴로 유도 컴퓨터가 3입력 NOR 게이트 두 개만 든 집적회로 4,100개로 만들어졌다고 적습니다. 달에 다녀온 계산기가 게이트 한 종류였습니다.
그런데 CMOS에서는 NAND 쪽이 유리하다
둘 다 보편 게이트라면 아무 쪽이나 써도 될 것 같습니다. 그런데 갈립니다. 이유는 일곱 번째 편에 이미 나왔습니다 — 정공이 전자보다 느립니다.
위키백과 「Electron mobility」 문서의 표는 결정질 실리콘의 이동도를 전자 1,400, 정공 450 cm2/(V·s)로 적습니다. 세 배가 넘는 차이입니다. 「Electron mobility」 문서는 정공 이동도가 전반적으로 더 낮다고 기술합니다.
이동도가 낮다는 것은 같은 크기로는 같은 전류를 내지 못한다는 뜻입니다. PMOS는 NMOS와 맞추려면 더 넓어야 하고, 넓어지면 게이트 용량이 커집니다. 용량은 앞 절에서 본 대로 그대로 지연과 전력이 됩니다. 여기에 직렬로 이은 소자는 저항이 더해집니다. 이미 느린 PMOS를 둘씩 직렬로 놓는 쪽이 그래서 불리합니다.
위키백과 「NAND gate」와 「NOR gate」 두 문서가 같은 문장으로 이를 적습니다 — CMOS에서 NAND 게이트가 NOR 게이트보다 효율적인데, 이는 n채널 MOSFET의 전하 이동도가 p채널보다 빠르기 때문에 NAND에서 실현되는 두 p채널 소자의 병렬 연결이 NOR에서의 직렬 연결보다 유리하다는 것입니다. 그래서 CMOS 회로에서는 NAND가 NOR보다 선호된다고 두 문서 모두 같은 문장으로 끝맺습니다.
재료의 성질 하나가 회로 선택까지 밀고 온 셈입니다. 정공이 느리다 → PMOS를 넓혀야 한다 → 직렬 PMOS를 피하고 싶다 → 칩 안에서 NAND를 더 자주 보게 된다.
정리
- 디지털은 소자의 성질이 아니라 약속입니다. 아날로그 소자의 전압을 두 값으로만 읽기로 정한 것입니다.
- CMOS 인버터는 PMOS와 NMOS를 위아래로 쌓고 게이트를 함께 묶습니다. 문헌은 두 논리 상태 모두에서 하나가 늘 꺼져 있다고 적습니다. 위는 1을, 아래는 0을 잘 전달하는 쪽입니다.
- 정적 상태에서 전원과 접지를 잇는 길이 없어 쉴 때 거의 0에 가까운 전력을 씁니다. 전력은 값이 바뀔 때 용량을 채우고 비우며 쓰이고 P = α C V2 f 를 따릅니다.
- 전압 전달 곡선의 가파른 가운데가 품질입니다. 기울기가 −1이 되는 두 점이 VIH·VIL 이고, 잡음 여유는 NMH = VOH − VIH, NML = VIL − VOL 로 정해집니다.
- 아래를 직렬로 놓으면 NAND, 병렬로 놓으면 NOR입니다. 둘 다 기능적으로 완전해 한 종류만으로 모든 논리를 만듭니다. 다만 정공이 느려 직렬 PMOS가 불리하므로 CMOS 회로에서는 NAND가 선호됩니다.
여기서 시리즈를 닫습니다. 돌이켜 보면 한 줄로 이어집니다. 재료의 저항이 금속과 부도체 사이에 있다는 사실에서 출발해, 불순물을 넣어 P형과 N형을 만들고, 둘을 붙여 한쪽으로만 흐르는 접합을 얻고, 거기 딸려 오는 커패시터를 보고, 단자를 셋으로 늘려 흐름을 조절하는 트랜지스터에 이르렀습니다. 그것을 켜짐과 꺼짐 둘로만 읽기로 하고 네 개를 이어 붙이자 논리가 나왔습니다. 돌 하나에서 계산까지 온 길입니다.
다음 시리즈 「TFT 특성 파라미터」에서는 이 트랜지스터가 얼마나 잘 만들어졌는지를 재는 숫자들 — 문턱 전압·이동도·점멸비·부문턱 기울기 — 를 하나씩 뜯어봅니다.
참고 자료
- CMOS — Wikipedia : 인버터 배선과 입력 고저에 따른 채널 저항, 쌍 가운데 하나가 항상 꺼져 스위칭 순간에만 전력을 쓴다는 서술, 대기 전력이 거의 0, P = 0.5 C V2 f · P = α C V2 f, 부문턱 누설
- Inverter (logic gate) — Wikipedia : NOT 게이트의 정의와 진리표, 저항 부하 방식의 약점, 두 논리 상태 모두 하나가 항상 꺼져 있다는 서술, 고정된 논리 전압 준위(TTL 0 V·+5 V), 전압 전달 곡선과 전이 구간 기울기가 품질의 척도라는 서술
- Noise margin — Wikipedia : 잡음 여유의 정의, VIH·VIL이 VTC 기울기 −1 지점이라는 정의, NMH·NML 식, CMOS에서 VOH가 VDD·VOL이 접지와 같아진다는 서술과 TTL보다 여유가 큰 이유
- Transmission gate — Wikipedia : PMOS가 강한 1과 부실한 0을, NMOS가 강한 0과 부실한 1을 전달한다는 서술
- NAND gate — Wikipedia : 2입력 진리표와 NOT(A AND B) 동치, n형 둘이 스위치·p형 둘이 그 보수라는 CMOS 구현, 기능적 완전성, NAND가 NOR보다 효율적인 이유
- NOR gate — Wikipedia : 2입력 정의와 진리표, 위쪽 p형 두 개가 직렬이라는 CMOS 구현, 입력 하나라도 높으면 출력이 낮게 당겨진다는 설명, 아폴로 유도 컴퓨터의 집적회로 4,100개
- Logic gate — Wikipedia : 다이오드·트랜지스터를 전자 스위치로 쓴다는 서술, 높은 출력·낮은 출력의 의미, 퍼스가 1880~1881년에 NOR 또는 NAND만으로 모든 게이트를 재현할 수 있음을 보였다는 기술
- Electron mobility — Wikipedia : 결정질 실리콘의 전자 이동도 1,400 · 정공 이동도 450 cm2/(V·s)
- ※ 위 목록 가운데 Wikipedia 문서에서 인용한 부분은 CC BY-SA 4.0 라이선스를 따릅니다.