2장 전자 회로의 조합 논리

이유정·2022년 11월 27일
0

20221019 수요일 p.91 ~ p.96 반
이번 장에서는 전기 분야의 혁신을 이끌어낸 변화에 대해 말해보자 . 비트를 사용하지 않는 초기 계산 장치를 살펴봄으로써 왜 비트가 오늘날 사용하는 기술에 어울리는 올바른 선택인지 배운다. 비트를 만들기 위해 무엇이 필요할까 릴레이나 진공관 같은 더 오래되고 단순한 기술을 살펴보고, 이런 기술을 전기와 집적 회로를 사용하는 하드웨어를 통한 현대적인 비트 구현과 비교해보자
/비트에 대해 동작하는 장치를 포함해 모든 물리적인 장치를 하드웨어라고 부른다. 우리는 조합 논리를 구현하는 하드웨어에 대해 살펴볼 것이다. 조합논리는 불리언 대수의 또 다른 이름이다.
/디지털 컴퓨터의 사례 : 톱니바퀴의 톱니 비율이 상대적인 회전 속도를 결정하기 때문에 곱셈, 나눗셈, 기타 계산에 톱니바퀴가 유용하다. 안티키테라 기계는 사용자가 다이얼을 돌려서 날짜를 이비력하고 크랭크를 돌려서 천문학 계산을 수행한다. 또, 화기 제어 컴퓨터는 톱니바퀴를 이용해 삼각함수와 미적분을 계산한 예술품이다 ㅋㅋ!
/ 톱니바퀴를 사용하지 않는 기계식 컴퓨터로는 계산자가 있다. 로그를 영리하게 응용한 도구다. 일상적으로 큰 수를 곱해야 하는 중세 천문학자나 엔지니어에게 엄청난 도구였다. 계산자는 대량 생산된 계산 장치로 여겨지며, 비행 컴퓨터라고 부르는 동그란 꼐산자를 비상용 항법 계산 도구로 사용한다.
/ 역사적으로 계수가 계산 장치를 활용하는 주된 용도였다. 손가락이 열개밖에 없기 때문에 탤리 막대를 사용했었다.
/ 복잡한 10진 기계식 계산기 개발 비용인 차분 기관은 부품의 정밀도가 배비지 시대의 금속 가공 기술로는 달성할 수 없었다. 하지만 간단한 기계적 10진수 계산기는 차분 기관 같은 복잡한 금속 기술이 필요하지 않았기 때문에 1600년대에 만들어졌고, 여러 다른 모델이 대량 생산됐고 후기 모델은 손으로 돌리는 핸들을 전동 모터로 바꿨다.
/ 아날로그와 디지털 차이! : 계산자는 연속적이고 손가락은 이산적이다. 연속적이라는 말은 실수를 표현할 수 있다는 뜻이고,
이산적이라는 말은 정수만 표현할 수 있다. 전자기술에 대해 이야기 할 때 아날로그는 연속적인 것을 뜻하고, 디지털은 이산적인 것을
뜻한다. 손가락이 라틴어로 digitus 다. 한편, 실수를 표현할 수 있기 때문에 아날로그가 계산에는 더 적합한 것 같지만 정밀도의
문제가 있다. 이를 해결하기 위해 자를 더 크게 만들 수 잇으나, 큰 물건을 움직이는 데 엄청난 에너지가 필요하고, 우리는 작고 빠르면서전력 소모가 적은 컴퓨터를 원한다.
/ 하드웨어에서 크기가 중요한 이유 : 현대 컴퓨터는 전자를 움직인다. 전기는 빛의 속도로 움직이며 빛의 속도는 초당 3억 미터다. 이런 물리적인 한계를 뛰어넘는 방법을 아직 발견하지 못했기 때문에 부품을 가능한 한 가깝게 위치시킨다. 40억 분의 1초 동안 이동할 수 있는 거리는 75 밀리미터 뿐이다. 전형적인 cpu는 한 면 이 18밀리미터다. 40억분의 1초는 전자가 이 cpu 안을 겨우 두번 왕복할 수 있는 정도의 시간이다. 컴퓨터에서 모든 것을 작게 만들면 더 높은 성능을 달성할 수 있겠죠? 거리가 줄어들면 써야할 에너지가 줄어들며 이는 저 전력 소모와 열 발생 감소로 이어진다. 하지만 하드웨어를 작게 만들다 보니, 여러 가지 문제가 생겼다.


2022-10-20 목요일 p.96반 ~ 100 반

디지털을 사용하면 더 안정적인 장치를 만들 수 있다

하드웨어를 작게 만들면 속도와 효율은 좋아지지만, 물체가 너무 작아지면 서로 간섭하기 쉬워진다. 예를들어 계량컵이 너무 작으면 원자의 운동으로 컵이 흔들린다. 계량컵과 계산자는 모두 아날로그 장치로, 정확하게 값을 읽으려면 흔들림이 없어야 한다. 하지만 손가락이나 탤리 막대, 기계식 계산기 같은 디티털, 이산적인 장치에 영향을 끼치기는 어렵다. 왜냐하면 이산적인 장치는 판정 기준이 있기 때문이다. 결과적으로 판정 기준을 도입하면 값 중에 어떤 범위의 값을 표현할 수 있는 가능성이 사라진다. 현대 cpu에서 신호 간섭은 마치 도로에서 마주 보는 두 차가 서로 스쳐 지나갈 때 느껴지는 바람과 같다. 이런 누화 효과를 방지할 적절한 방법이 없기 때문에 더 높은 판정 기준을 통해 잡음 내성을 갖는 디지털 회로를 사용하는 것이 필수적이다. 판정 기준이라는 장애물을 뛰어넘기 위해서는 추가로 에너지가 필요하기 때문에 연속적인 장치를 사용할 때는 얻을 수 없는 일정 수준의 잡음 내성을 얻을 수 있다. 실제로 판정 기준을 도입해 생기는 안정성이 우리가 디지털 컴퓨터를 만드는 주된 이유다.

아날로그 세계에서 디지털 만들기

자연적으로 발생하는 전이 함수에 대해 설명해볼게요. 전이함수의 x축은 들어오는 빛의 양을 뜻하며 y축은 기록되는 밝기나 센서가 기록하는 빛을 의미한다. 빛의 값이 다르면 전이 함수가 기록하는 빛의 값도 달라진다. 전이함수는 곡선인것에 집중하자. 빛이 곡선의 상단부에 많이 닿으면 밝기 값이 서로 모이면서 이미지 노출이 과해지고 , 하단부에 많이 닿으면 이미지 노출이 부족해진다. 카메라 경우, 노출을 조절해서 빛이 직선부에 많이 닿게 만드는 것이다. 전이함수를 이용해 빛이 선형 영역에 닿게 하기 위해 ㅅ카메라의 셔터 속도나 조리개를 조절하는 장치도 만들었고, 증폭 회로도 전이함수를 이용했다. 볼륨은 게인이나 곡선이 가파른 정도를 조절한다. 게인이 높으면 곡선이 가팔라지고 출력도 커진다. 만약 게인이 11이라면? 왜곡이 발생하고 소리가 이상해진다. 입력이 조금만 변해도 곡선의 가파른 부분 때문에 출력이 확 달라진다. 이때 판정 기준을 문턱값이라고 한다. 출력값이 문턱값의 한쪽에서 반대쪽으로 옮겨가고 중간 정도의 출력값이 나오기는 어렵기 때문에 이런 왜곡이 유용하다. 이 현상은 연속적인 공간을 이산적인 영역으로 나눠준다. 즉, 아날로그는 가능한 한 선형 영역을 크케 만들고, 디지털은 직선부를 가능하면 작게 만드는 것이라고 할 수 있다.


2022-10-23 일요일 p.100 반 ~p. 105 반

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

한 손가락이 한 숫자를 표현하기 때문에 효율적이지 않다. 손가락 대신 비트를 사용하면 100배 더 효율이 좋아진다. 또, 숫자를 이용하면 전이 함수를 각기 다른 10가지 문턱값으로 구분할 수 있는 간단한 방법이 없기 때문이다. 만들더라고 복잡하고 비용이 많이 든다. 즉, 10진 숫자 하나보다는 10비트를 사용하는게 훨 좋다. 이것이 현대적 하드웨어가 작동하는 방식이다. 우리는 전이 함수의 하단부와 상단부 영역을 활용하며, 하단부 영역을 차단, 상단부 영역을 포화라고 한다. 비트를 사용하면 재량권이 아주 커진다. 전이 함수가 아주 가파르기 때문에 출력이 한 값에서 다른 값으로 아주 급하게 바뀐다.

간단한 전기 이론 가이드

현대 컴퓨터는 전기를 조작해 작동된다. 전기를 사용해 컴퓨터를 만들면 더 빠르고 쉽게 만들 수 있다. 컴퓨터 하드웨어에서 전기를 사용하는 방법을 이해하도록 돕겠다.

전기는 수도 배관과 비슷하다.

전기를 물이라고 생각해보자. 물이 물탱크에서 나오는 것처럼 전기는 배터리 같은 에너지 근원에서 나온다. 우리가 사용할 수 잇는 유일한 큰 에너지 근원은 태양뿐이다. 태양에서 온 에너지가 물을 기화시켜 수증기로 만들고, 수증기는 다시 물이 되어 물탱크를 채운다. 우리는 0이 밸브가 닫힌 상태를, 1이 밸브가 열린 상태를 표현한다고 가정한다. 직렬연결은 AND 연산을 구현하고, 병렬 연결은 OR 연산을 구현한다. 물이 파이프로 흘러서 전달되는 데 시간이 걸리는 것처럼, 전기가 컴퓨터 칩 내부에서 전파되는 데도 시간이 걸린다. 물 온도가 따뜻해지기 까지 시간이 걸리는 것처럼 전파지연도 있다. 이런 지연은 상수가 아니다. 물의 경우 온도 변화가 파이프를 확장시키거나 수축시키기 때문에 물의 흐름이 달라지며 그에 따라 지연 시간도 달라진다. 물이 파이프를 흘러가는 것처럼 전기도 선을 통해 이동한다. 다만ㅇ 이런 전기의 이동은 실제로는 전자의 흐름은 아니고 전자기 에너지 반응이 전파되는 현상을 전기라고 불렀다. 내부에 있는 금속을 도체라고 부르고 금속 바깥쪽을 둘러싼 부분을 부도체라고 부른다. 도체는 파이프 내부, 부도체는 파이프 자체라고 할 수 있다. 전기의 흐름을 제어할 수 있는 밸브를 스위치라고 부른다. 물은 압력에 의해 밀려서 움직인다. 압력의 세기는 달라질 수 있다. 전기에서 수압에 해당하는 존재는 전압이며 측정 단위는 볼트다. 전기 흐름의 양은 전류고 측정 단위는 암페어다. 관이 더 가늘수록 관을 통해 흐를 수 있는 물의 양을 제한하는 저항이 더 커진다. 전압이 더 높더라도 너무 가는 도체를 사용함으로 인해 저항이 아주 크면 전류가 커지지 못한다. 저항을 측정할 때는 옴을 쓴다. 이 세가지 변수 전압, 전류, 저항은 옴의 법칙을 통해 전류는 전압을 저항으로 나눈 값과 같다. 저항이 크면 전류가 더 줄어든다. 게다가 저항은 전기를 열로 바꾼다. 이 원리를 이용해 토스터부터 전기담요까지 모든 전열기구가 작동한다.


2022-10-25 화요일 p.105반 ~ p.110반

전기 스위치

전기에 사용할 스위치를 만드는 일은 도체 사이에 부도체를 삽입하거나 제거하는 문제다. 전등 스위치는 스위치 단추를 누르면 붙거나 떨어지는 두 조각의 금속으로 구성된다. 실제로 공기가 상당히 좋은 부도체임이 드러났다. 그래서 두 금속 조각이 서로 붙어 있지 않으면 전기가 흐를 수 없다. 전압이 충분히 높아지면 공기가 이온화되면서 도체로 변한다. 전기 시스템은 회로라고 부르며, 스키매틱을 통해 문서화한다. 단극단투! 극이란 한꺼번에 연결되어 이동하는 스위치의 수를 말한다. 밸브 두 쌍의 손잡이를 땜질해서 두 손잡이가 함께 움직이게 만들면 쌍극으로 만들 수 있다. 단투는 접점이 하나뿐이라는 뜻이다. 접점이 하나이기 때문에 유일한 접점을 연결하거나 끊을 수만 있다. 단투 스위치로는 한쪽은 켜고 반대쪽은 끄는 역할을 할 수는 없고, 이런 스위치가 필요하다면 '단극쌍투'스위치가 필요하다. 전기 시스템도 비슷하다. 에너지 근원에서 나온 전기는 회로 구성요소를 지나서 다시 근원으로 돌아간다. 그래서 이를 회로라고 부른다. 전기는 스위치가 열려 있으면 흐르지 못한다. 스위치가 닫히면 전류가 전원에서 나와 스위치를 통과한 다음 전구를 흐르고 다시 전원으로 돌아간다.

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

하드웨어에 비트를 사용해야 하는 이유를 알았으므로, 비트를 다루는 하드웨어를 만드는 방법을 배울 준비가 됐다!!

릴레이

전기와 자기 사이에는 편리한 관계가 있는데, 선을 둥글게 감아서 코일로 만들고 전기를 흘려보내면 코일이 전자석이 된다. 전자석은 켜고 끌 수 있기 때문에 물건을 움직일 때 이를 활용할 수 있다. 전자석을 사용해 수도 밸브를 제어할 수 있는데, 전기로 움직이는 자동 스프링클러 시스템은 바로 이런 방식으로 작동된다. 전자기를 사용해 모터를 만드는 교묘한 방법이 여러가지 있다. 그리고 선으로 만든 코일 주변에서 자석을 움직이면 발전기는 이런 식으로 작동한다. 현재 우리가 사용하는 전기의 대부분은 이런 방식으로 얻어진다. 자석에서 공급되는 전기를 끄는 것이 코일 근처에서 자석을 아주 빠르게 움직이는 것과 동일하게 작용한다. 이건 역 기전력이라는 효과이고, 전기 펜스나 자동차 점화 코일이 점화 플러그에 불꽃을 튀기게 할 때 사용된다. 릴레이는 스위치를 움직이기 위해 전자석을 사용하는 장치다. 단극쌍투 릴레이 스키매틱 기호 / 코일에 전력이 들어가지 않아서 스위치가 열려있다. 이런 릴레이를 평상시 열린 릴레이라고 부른다. 반대로, 전력이 들어가지 않을 때 스위치가 닫혀있는 릴레이는 평상시 닫힌 릴레이라고 부른다. / 맨 아래의 두 접점은 선으로 만든 코일로 이어진다. 나머지는 스위치의 변종과 상당히 비슷하다. 스위치 부분 중가나의 금속은 코일에 에너지가 가해졌는지 여부에 따라 연결이 움직인다. 그림 2-22에서 두 릴레이가 모두 활성화되어야 두 선이 연결된다는 점에서 AND 함수 정의와 같다. / 릴레이를 사용하면 스위치로는 불가능한 일을 할 수 있다. 릴레이를 사용하면 NOT 함수를 구현하는 인버터를 만들 수 있다. NOT이 없으면 표현 가능한 불리언 연산이 제한된다. (어떤 논리함수가 불리언값에서 가능한 모든 연산을 표현할 수 있으면 해당 함수가 함수적으로 완결이라고 말한다. NOT없이는 다른 모든 불리언 함수를 표현할 방법이 없다. 따라서 AND나 OR은 함수적으로 완결적이지 않다. 하지만 어떤 함수로 NOT을 표현할 수 있다면 다른 모든 불리언 함수를 표현할 수 있다! )위쪽의 AND 회로에서 나온 출력을 아래쪽 OR 회로의 입력 중 하나를 구동하기 위해 연결할 수 있다. 이런 능력을 활용하면 스위치가 다른 스위치를 제어하게 만들 수 있고, 이에 따라 컴퓨터에 필요한 복잡한 논리를 만들 수 있다. 코일을 두개만 사용하는 단극십투, 스태퍼 릴레이가 있다. 코일 하나는 에너지가 들어올 때마다 접점을 다음 위치로 옮긴다. 다른 코일은 접점을 최초 위치로 돌려보내서 릴레이를 재설정한다. 다이얼을 사용하는 전화기를 쓰던 시절에는 전화번호를 세기 위한 스테퍼 릴레이가 가득 찬 빌딩이 있었다. 전화 교환국은 매우 시끄러운 장소였다. 릴레이에서 전이 함수의 문턱값이 수직이라는 사실 역시 흥미롭다. 코일에 가하는 전압을 아무리 천천히 높여도 스위치는 항상 다른 위치로 단숨에 움직인다. 문턱에서 전이 함수의 값이 정의되지 않고, 이로인해 스위치 접점이 순식간에 이동한다. 릴레이는 느리고 전기를 많이 소모하며, 먼지가 스위치 접점에 있으면 제대로 작동하지 않는다는 큰 문제가 있다. 릴레이에 낀 나방을 발견하면서 버그라는 단어가 유명해졌다. 스위치 접점을 시ㅏ용해 다른 릴레이를 제어하기 때문에 생기는 문제는, 코일의 전원을 갑자기 끄면 순간적으로 초고압이 발생한다는 사실과 초고압에서는 전기가 통한다는 사실도 기억하자. 이 현상이 스위치 접점에서 일어나는 경우가 있고, 이로인해 접점이 마모된다. 이때문에 사람들은 릴레이와 같은 일을 하지만 기계적인 부품이 들어있지 않은 다른 물건을 찾기 시작했다.


2022-10-26 수요일 P. 110반~ P.115반

진공관

물체를 충분히 가열하면 전자가 튀어나오는 열전자 방출이라는 현상을 기반으로 진공관을 만들었다. 진공관에는 캐소드와 캐소드를 가열하는 히터가 있다. 캐소드에서 발생한 전자는 진공속에서 애노드로 날아간다. 전자는 자석과 비슷한 성질을 몇 가지 띠는데 그중에는 서로 다른 극이 서로를 끌어당기고 서로 같은 극이 서로를 밀어낸다는 성질이 있다. 그리드라는 녀석은 캐소드에서 나오는 전자를 쫓아내서 애노드에 도착하지 못하게 한다. 그리드를 스위치 손잡이라고 생각할 수 있다. 세 요소 캐소드, 그리드, 애노드가 들어있는 진공관을 삼극관이라고 한다. 진공관은 움직인느 부분이 없어서 릴레이보다 훨씬 빠르다. 단점은 전구와 마찬가지로 진공관도 아주 뜨겁고 깨지기 쉽다. 히터도 타버릴 수도 있고, 진공 튜브도 릴레이에 비하면 더 개선된 것이기 때문에 더 빠르고 안정적인 컴퓨터 구성이 가능해졌다.

트랜지스터

최근에는 트랜지스터가 왕이다. transfer resistor를 줄인 transistor 는 진공관과 비슷하지만 반도체라는 특별한 물질을 사용한다. 반도체는 도체와 부도체 사이를 오갈 수 있는 물질이다. 사실, 히터나 움직이는 부분이 없는 전기 밸브를 만드려면 이런 특성이 꼭 필요하다. 물론 트랜지스터도 완벽하지는 않다. 트랜지스터를 아주 작게 만들 수 있으며 이는 좋은 일이지만, 도체가 가늘고 얇아지면 저항이 더 늘어나기 때무에 열이 발생한다. 반도체는 쉽게 녹을 수 있기 때문에 트랜지스터에서 열을 제거하는 일은 아주 중요한 문제다. 트랜지스터가 반도체 물질로 이뤄진 기판 또는 슬랩 위에 만들어진다는 것을 꼭! 기억하자. 보통은 실리콘이 기판 재료로 쓰인다. 트랜지스터는 개별적으로 생산되는 물체가 아니다. 트랜지스터는 트랜지스터 그림을 실리콘 웨이퍼 위에 투영해서 현상하는 광식각이라는 과정을 통해 만들어진다. 한 실리콘 웨이퍼 기판 위에 수많은 트랜지스터를 투영해 현상한 후 개별적인 부품으로 잘라낼 수 있기 때문에 광식각과정은 대량 생산에 적합하다. 트랜지스터에는 쌍극 접합 트랜지스터, 필드 효과 트랜지스터가 있다. 제조 공정에는 비소처럼 위험한 물질을 기판 물질의 성질을 변화시키기 위해 기판 위에 얇게 분사하는 도핑 과정이 들어간다. 도핑은 p와 n 유형의 물질로 이뤄진 영역을 만들어낸다. 트랜지스터를 만들려면 p와 n의 샌드위치를 만들어야 한다. 샌드위치 구성방법으로 NPN, PNP, N채널, P채널이 있다. 트랜지스터를 밸브나 스위치로 생각할 수 있다. 게이트나 베이스는 스위치 손잡이이며, 손잡이가 올라가면 전기가 위에서 아래로 흐르고, 이는 릴레이의 코일이 접점을 움직이는 것과 비슷하다. 하지만 지금까지 살펴본 밸브나 스위치와 달리, 쌍극 접합 트랜지스터에서는 전기가 한 방향으로만 흐를 수 있다. FET 기호에서 게이트와 트랜지스터의 나머지 부분 사이에 작은 틈을 볼 수 있다. 이 틈은 FET가 정전기를 사용한다는 사실을 보여준다. 이는 마치 정전기 효과를 사용해 스위치를 움직이는 것과 비슷하다. 금속산화물 반도체 전계 효과 트랜지스터 MOSFET는 FET의 일종으로 전력 소모가 적기 때문에 컴퓨터 칩에서 가장 널리 쓰이고 있다. N채널과 P채널 MOSFET을 서로 보완하도록 한 쌍으로 묶어서 사용하는 경우가 많은데 이를 CMOS라고 한다.

집적회로

트랜지스터를 사용하면서 더 작고, 빠르고, 신뢰할 수 있는 전력도 적게 소모하는 논리 회로를 만들 수 있게 됐다. 하지만 트랜지스터를 사용하면 AND 함수 같은 간단한 회로를 만들 때 조차도 부품이 너무 많이 필요하다. 직접 회로를 사용하면 복잡한 시스템을 트랜지스터 하나를 만드는 정도의 비용으로 만들 수 있다. 집적 회로는 생긴 모양 때문에 칩이라고 불린다. 똑같은 유형의 회로를 릴레이, 진공관, 트랜지스터, 집적회로를 통해 만들 수 있으며 새로운 기술이 나올 때마다 회로는 더 작아지고 더 저렴해지고 에너지를 더 효율적으로 사용하게 됐다. 다음 절에서는 조합논리를 위해 만들어진 IC회로 설계에 대해 설명한다.


2022-10-29 P. 115반 ~ 122반

논리 게이트

칩에 논리 연산을 수행하는 회로가 미리 들어가 있고 이 회로를 논리 게이트라고 한다. 그냥 게이트라고도 한다. 게이트를 사용하면 밑바닥부터 모든 회로를 설계할 필요없이 IC를 선으로 연결해 복잡한 회로를 쉽게 만들 수 있다. 논리 설계자도 AND게이트, OR게이트, XOR게이트, 인버터가 들어있는 박스를 얻을 수 있었다. AND 게이트의 출력 Y는 게이트의 입력 A와 B가 참인 경우에만 참이 된다. 인버터 기호에서 동그라미가 없는 삼각형은 버퍼라고 하며, 버퍼는 단지 입력을 출력으로 전달하기만 한다. 인버터 기호는 다른 게이트와는 별도로 독립적으로 사용된다. AND나 OR게이트가 가장 효율적인 게이트는 아니다. TTL이든, CMOS 든 논리 게이트에서 가장 단순한 회로는 NAND나 NOR이다. NAND와 NOR은 TTL을 2개 또는, CMOS을 4개 사용한다. 반면, AND나 OR은 NAND나 DOR 회로 출력에 트랜지스터를 덧붙여서 출력을 반전시켜야 하기 대문에 더 비싸고 반응속도도 느리고 전력도 더 많이 소모된다. 따라서 보통 디지털 회로 설계시 가장 기본적으로 사용하는 게이트는 NAND나 NOR 게이트다. 이 두 게이트의 기호에는 AND나 NOR의 출력을 반전시키는 원이 더 붙는다. 이 논리 회로 설계는 표현할 수 있는 논리가 늘어난다. NAND와 NOR의 두 입력을 같은 입력에 연결하면 인버터를 만들 수 있다. NAND만 있으면 OR, AND, NOT으로 표현할 수 있는 모든 논리를 표현할 수 있다. 입력 개수가 더 많은 게이트들도 있다.

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

디지털 장치를 사용하면 판정 기준에 의해 잡음 내성을 얻을 수 있지만 충분하지 않은 경우가 있다. 게이트를 서로 연결하는 과정에서는 논리 신호가 0에서 1로 순간적으로 바뀌고, 1에서 0으로 순간적으로 바뀐다는 가정이 옳다. 하지만 실제 현실에서는 사용 중인 신호 중에는 천천히 변하는 신호가 많다. 입력 신호에 잡음이 있을 경우, 입력 신호가 문턱값을 여러 번 오락가락하기 때문에 출력 신호에 글리치가 생긴다. 이런 글리치를 이력 현상을 사용해 방지할 수 있다. 이력 현상이란 말은 판정 기준이 이력에 따라 달라진다는 뜻이다. 전이함수는 대칭적이지 않다. 화살표로 표시해놓은 것처럼 올라가는 신호와 내려가는 신호에 대한 전이함수가 다르다. 이렇게 하면 다른 문턱값이 생기고, 이 말은 입력 신호가 두 문턱값 중 하나를 넘어간 경우 반대쪽 문턱값을 지나가며 출력이 반전되려면 값이 상상히 많이 변해야 한다는 뜻이다. 따라서 잡음 내성이 더 커진다. 그럴 때 이력을 사용하는 게이트가 있다. 일반적인 게이트보다 더 복잡하고 비싸기 대문에 슈미트 트리거를 사용한다.

차동 신호

잡음이 많아서 이력을 도입해도 충분하지 못한 경우가 있다. 지금까지는 신호를 절대적인 문턱값을 기준으로 판단하거나 슈미트 트리거처럼 두 가지 절대적인 문턱값을 사용해 판단했다. 하지만 잡음이 많아서 슈미트 트리거의 문턱값을 넘어 신호가 오락가락하는 슈미트 트리거조차 효과가 없는 경우도 있다. 대신 2인조 시스템을 생각해보자. 친구가 내 왼쪽에 잇으면 0 , 오른쪽에 있으면 1이다. 0과 1을 결정하기 위해 측정하는 것은 상대적 위치 뿐이기 때문에, 잡음이 결괏값에 영향을 주지 않는다. 특히나 강력한 연인관게는 강력한 잡음 내성을 만들어낸다. 이런 방식을 차동신호라고 한다. 측정하는 값이 서로 반전관계인 신호 쌍의 차이를 측정하기 대문에 붙은 이름이다. 입력신호를 반전관계 출력들로 변환하는 드라이버와 반전관계인 두 입력을 받아서 단일 신호로 만들어주는 리시버를 볼 수 있다. 물론 한계도 있다. 잡음이 너무 많으면 전기 부품들이 자신의 정격 작동 범위를 넘어갈 수도 있다. 공통모드 판별비는 부품 정격 중 하나로 처리 가능한 잡음의 양을 표시한다. 공통 모드라고 부르는 이유는 두 신호에서 공통인 잡음을 가리키기 때문이다. 전화선 은 차동 신호를 사용한다. 전차가 잡음을 많이 만들어내서 전화 신호를 간섭했기 때문이다. 연선 케이블링이 발명됐는데, 연선은 한 쌍의 선을 설 꼬아서 전기적으로 연인이 서로 허리에 손을 두르는 것 같은 효과를 만들어낸다.

전파 지연

전파 지연은 입력의 변화가 출력에 영향을 미칠 때까지 걸리는 시간을 뜻한다. 전파 지연은 정확한 값은 아니고, 제조 과정과 온도에 따라 생기는 편차와 게이트 출력에 도달하기 가지 연결된 구성 부품의 수에 따라 결정되는 통계적인 측정값이다. 회색 영역은 전파 지연으로 인해 출력을 신뢰할 수 없는 구간이다. 출력이 회색 영역의 맨 왼쪽처럼 더 이른 시점에 변할 수도 있지만반드시 회색 영역의 오른쪽 시점 이전에 변한다고 보장할 수는 없다. 그리고 여러 게이트를 엮으면 회색 영역의 길이가 점점 더 길어진다. 전파 지연 시간은 처리 기술에 따라 아주 많이 달라진다. 이번 절에서는 입력과 입력이 출력으로 전달되면서 생기는 일을 살펴봤다. 다음 절에서는 출력을 살펴보자!

출력 유형

응용에 따라 달리 설계된 몇가지 출력 유형이 있다.
1) 토템폴 출력
일반적인 게이트 출력은 토템폴이다. 트랜지스터가 세로로 나란히 늘어서 있어서 붙은 것이다. 위에 있는 스위치는 출력의 1 을 얻기 위해 출력과 높은 논릿값1을 연결하기 때문에 액티브 풀업이라고 불린다. 토템폴 출력을 서로 연결할 수가 없다. 0인 출력을 1인 출력과 연결하면 음극과 양극을 서로 연결하는 것과 같은 일이 벌어지기 때문에 부품이 타버린다.

2) 오픈 컬렉터
오픈컬렉터나 오픈 드레이. 원하는 출력이 0이라면 아무 문제가 없다. 하지만 원하는 출력이 1이면 출력은 그냥 떠있다. 이런 경우 출력값은 알 수 없다. 오픈 컬렉터나 오픈 드레인 버전은 액티브 풀업이 없기 때문에 출력을 아무 문제 없이 서로 연결할 수 있다. 필요하면 출력을 패시브 풀업에 연결할 수 있다. 패시브 풀업은 단순히 풀업 저항을 논리적인 1 값을 공급해주는 공급 전압에 연결한 것이다. BJT에서는 이런 공급 전압을 VCC라고 부르고 있고, MOS에서는 Vdd라고 부른다. 여러 오픈 컬렉터 출력과 패시브 풀업을 사용하면 와이어드 AND를 만들어낼 수 있다. 오픈컬렉터 입력이 1이면 해당 게이트의 출력과 해당 게이트의 입력 사이는 회로 연결이 끊어진 상태다. 풀업 저항 아래에 오픈 컬렉터 출력이 모여있고, 모든 오픈 컬렉터 출력값이 1이면 전기가 흘러갈 곳이 AND 기호의 출력 쪽밖에 없다. 그런데 저항의 VCC에 연결되어 있으므로 출력은 자동으로 1이 된다, 이때 풀업 저항은 VCC에서 와이어드 AND 출력에 흐르는 전류를 제한하는 역할을 한다. ㅎ오픈 컬렉터 출력값 중 0인 값이 잇다면 해당 게이트는 오픈 컬렉터 출력과 그라운드를 연결해주는 선로가 생긴다. 풀업 저항에서 와이어드 AND로 연결된 전기는 그라운드로 연결되는 선로가 있으면 그리로 흘러가고 와이어드 ㅡAND 출력 쪽으로는 흘러가지 못한다. 따라서 오픈 컬렉터 출력 중 0인 값이 하나 이상 있으면 와이어드 AND 출력은 0이 된다. 이 논리를 부정적인 논리로 해석하면 오픈 컬렉터 출력값 중 출력이 1인 값이 하나라도 있으면 출력이 1이 되기 때문에 와이어드 OR이라고 부르기도 한다. 와이어드 AND를 사용하면 여러 입력이 있는 AND 게이트를 사용하지 않고도 AND 계산이 가능하다.
LED 같은 장치를 구동하는 것도 오픈 컬렉터나 오픈 드레인 출력을 활용하는 방법에 속한다. 토템폴 장치보다 더 좋은 전류를 감당할 수 있다. 일부 오픈 컬렉터 출력은 전압을 논리1에 해당하는 수준보다 더 높게 풀업하도록 허용하기도 한다. 이 성질을 이요하면 여러 다른 회로를 연결할 때 오픈 컬렉터 출력을 사용할 수 있다. 7400 계열 등 같은 계열에 속하는 게이트 사이에는 문턱값이 일정하지만 각기 다른 계열에 속하는 게이트 사이에는 문턱값이 다르기 대문에 이런 식으로 출력 전압을 끌어올리는 기능이 중요하다.

3) 트라이스테이트 출력
오픈컬렉터 회로를 사용하면 출력을 서로 연결할 수 있지만 액티브 풀업을 사용하는 것만큼 응답이 빠르지 않다는 단점이 있다. 따라서 상태가 두가지인 해법을 버리고 상태가 세가지인 트라이스테이트 출력을 사용해보자. 세번째 상태는 꺼진 상태다. 출력을 켜고 그기 위한 추가 입력인 활성화 입력이 존재한다. 꺼진 상태를 hi-Z 라고 한다. Z는 임피던스를 뜻한다. 임피던스는 저항을 수학적으로 복잡하게 부르는 이름이다. 베이스를 제어하면 0,1,hi-Z, 멜트다운 이라는 네가지 상태를 얻을 수 있다. 트라이스테이트 출력을 사용하면 수많은 장치를 서로 선으로 직접 연결할 수 있다. 단점은 한번에 단 하나의 장치만 활


2022-11-05 토요일 p. 126 반 ~ 134

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

게이트를 사용하면서 하드웨어 설계 과정이 아주 단순해졌다. 사람들은 더이상 개별 부품을 가지고 회로를 설계할 필요가 없다. 예를들어, 입력이 2개인 NAND 게이트를 설계하려면 대략 10가지 부품이 필요하다. 하지만 7400 IC 소규모 직접 회로라 불리는 한패키지 안에 네가지 NAND게이트를 제공한다. 따라서 이 패키지 하나는 40개의 부품을 대신할 수 있다. 하드웨어 설계자들은 SSI 게이트를 사용해 자신들이 개별적인 부품을 사용해 설계할 때와 마찬가지로 어떤 것이든 만들 수 있다. 그리고 개별 부품보다 더 싸고 더 작게 원하는 시스템을 만들 수 있다. 그리고 게이트 조합 중에는 특히 자주 사용되는 조합이 있다. 중간 규모 집적 회로 MSI 라고 불리는 부품은 이런 게이트 조합을 제공하기 위해 도입됐다. MSI를 사용하면 필요한 부품의 수를 더 줄일 수 있다. 나중에는 LSI, VLSI등이 나왔다. 앞으로 몇 가지 게이트 조합을 알아볼건데, 부품을 키워나가는 방식과 고수준의 부품을 만드는 방식을 알아보자.!

가산기

2의 보수 가산기를 알아보자. 이 논리를 잘 조작하면 성능을 얼마나 향상시킬 수 있는지 알 수 있다. 두 비트를 더한 값은 각 비트의 XOR이고 올림은 두 비트의 AND라는 사실을 배웠다. 두 비트를 더할 때는 반가산기만으로 충분하지만, 다른 자리에서 올라오는 올림을 처리하려면 세번째 입력이 필요하다. 반가산기를 2개 연결해야 할까? 아니! 세 입력중 2개 이상이 1일 때 올림을 발생하게 만드는 전가산기 진리표를 한번 봐라! 전가산기 회로를 구성하면 반가산기를 2개 사용할 때보다 징연이 적은, 더 나은 회로를 만들 수 있다. 리플 자리올림 가산기란? 자리올림이 아래쪽 비트로부터 바로 위쪽 비트로 물결이 퍼져나가는 것처럼 전달되기 때문에 붙은 이름. 잘 작동하지만, 비트를 하나 처리할 때마다 게이트 2개에 해당하는 출력 시간 지연이 발생한다는 사실을 알 수 있다. 올림 에측 가산기 를 사용하면 이런 지연을 제거할 수 있다. 올림 예측을 어떻게 하는걸까? i번째 비트의 전가산기 올림 출력이 i+1번째 비트의 올림 입력으로 들어간다i+1식에 i번째 식을 대입하면 의존 관계를 줄일 수 있다. and와 or이 아주 많아지지만 전파 지연은 최대 게이트 2개에 해당하게 된다. 올림을 계산하는 시간이 비트 개수에 따라 달라지지 않게 되고, 그로 인해 전체 덧셈이 걸리는 시간도 일정한 수준으로 고정된다. Cn+1은, 항상 Cn으로부터 만들어낼 수 있고, n이 커지면 게이트 수가 점점 더 늘어난다. 게이트는 값이 저렴하지만 전력이 소모된다. 따라서 계산 속도와 전력 소모 사이에 트레이드 오프 관계가 존재한다.

디코더

수를 비트로 인코딩한 것 과 반대로 디코더는 인코딩된 수를 개별 비트의 집합으로 만들어준다. 8진 표현은 각기 다른 여덟 가지 값을 가져다가 3비트로 인코딩한다. 8진 숫자를 단일 비트의 집합으로 되돌려주는 3:8 디코더. 디코더에 이름을 붙일 대는 주로 입력과 출력의 개수를 사용한다. 입력이 3개, 출력이 8개면 3:8디코더다.

디멀티플렉서

디코더를 사용해 디멀티플렉서를 만들 수 있다. 보통은 디먹스라고 줄여 말한다. 디먹스는 입력을 몇 가지 출력 중 한 곳으로 전달한다. 디먹스는 디코더에 몇 가지 게이트를 추가해 만든다. 디먹스는 입력 신호인 D를 디코더 입력 S0-1 에 따라 네 가지 출력 Y0-3중 하나로 전달한다.

실렉터

토스트 오븐을 생각하자. 꺼짐, 토스트, 베이크, 브로일 입력 중에 하나를 선택하면 (실렉터 스위치) 토스트 오븐 위와 아래에 열선이 각각 있기 때문에 위 열선, 아래 열선을 순서대로 (끔, 끔/ 끔/켬, 켬/켬, 켬/끔) 이런식으로 작동하게 한다. 이처럼 실렉터는 여러 입력 중 한 입력을 선택하는 것이다. 게이트를 사용하면 실렉터 또는 멀티플렉서를 만들 수 있다. 멀티플렉서는 먹스라고 부른다. 실렉터 기호는 디먹스를 뒤집은 모양이다.

profile
팀에 기여하고, 개발자 생태계에 기여하는 엔지니어로

0개의 댓글