Home 2장 전자회로의 조합 논리
Post
Cancel

2장 전자회로의 조합 논리

디지털 컴퓨터의 사례

근대의 톱니바퀴를 사용하는 기계적인 계산 장치를 살펴보면 두 톱니바퀴가 돌아가면 각 톱니바퀴의 톱니 비욜이 두 바퀴의 상대적인 회적 속도를 결정하기 때문에 곱셈, 나눗셈 기타 계산에 유용하다. 톱니바퀴를 기반으로 만들어진 계산기로는 그리스 제도에서 발견된 안티키테라, 2차 세계대전 즈음 화기 제어 컴퓨터, 톱니바퀴를 사용하지 않는 기계식 컴퓨터로는 계산자(slide rule)가 있다. 또 요즘엔 비행기 조종사들은 비행 컴퓨터라고 부르는 비상용 항법 계산 도구로 사용한다.

1) 아날로그와 디지털의 차이

계산자는 수학적으로 연속적이기 때문에 실수를 표현할 수 있고, 손가락은 이산적이라고 부르는 성질을 가졌기 때문에 정수만 표현할 수 있다.

전자기술에 대해 이야기할 때 아날로그는 연속적인 것을 뜻하며 디지털은 이산적인 것을 뜻한다. 실수를 표현할 수 있기 때문에 아날로그가 계산에 더 적합할 것 같지만 정밀도의 문제가 있다.

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

현대 컴퓨터는 전자를 움직이는데 전기는 빛의 속도로 움직이며 빛의 속도는 초당 3억 미터다. 컴퓨터에서 전자의 여행 시간을 최소화하는 방법은 부품을 가능한 한 가깝게 위치시키는 것 뿐이다. 하드웨어를 작게 만들면 필요한 여행 거리가 줄어들고, 여행 거리가 줄어들면 필요한 에너지 양도 줄어든다. 그렇게 되면 저 전력 소모와 열 발생 감소로 드러난다. 하지만 하드웨어를 아주 작게 만들다 보니 여러 가지 문제가 생기게 된다.

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

하드웨어를 작게 만들면 속도와 효율은 좋아지지만 물체가 너무 작아지면 서로 간섭하기 아주 쉬워진다. 간섭은 내부적인 근원이 존재한다. 전자 기력은 중려고가 마찬가지로 멀리 떨어진 물체에 영향을 끼칠 수 있다. 이런 영향은 좋은 것이다. 특히 두 선의 거리가 아주 가까우면 영향이 더 커진다. 그래서 더 높은 판정 기준(이산적인 장치는 판정기준이 있다.)을 통해 잡음 내성을 갖는 디지털 회로를 사용하는 것이 필수적이다.

실제로 판정 기준을 도입해 생기는 안정성이 우리가 디지털 컴퓨터를 만드는 주된 이유다.

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

전이 함수란 수학시간에 배우는 함수와 같지만 실제 세계에서 벌어지는 현상을 표현한다. 디지털 카메라를 생각해보면 빛의 값이 다르면 전이 함수가 기록하는 빛의 값도 달라진다. 빛이 곡선의 상단부에 많이 닿으면 밝기 값이 서로 모이면서 이미지 노출이 과해진다. 반대로 빛의 곡선이 하단부에 많이 닿으면 이미지 노출이 부족해진다. 따라서 카메라의 경우 노출을 조절해서 빛이 직선부에 많이 닿게 만드는 것이다.

엔지니어들은 전이 함수를 활용하는 온갖 트릭을 만들었다. 예를 들면 카메라의 셔터 속도나 조리개를 조절하는 장치, 이어폰이나 스피커를 구동하는 증폭 회로도 있다.

입력이 조금만 변해도 곡선의 가파른 부분 때문에 출력이 확 달라진다. 이때 판정기준을 ‘문턱값’이라고 부른다.

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

컴퓨터에서 10진 숫자가 아닌 비트를 사용하는 이유는 무엇일까? 분명한 이유는 컴퓨터에는 손가락이 없기 때문이다. 손가락 대신 비트를 사용하면 100배보다 더 효율이 좋아진다. 또 숫자보다 비트가 더 좋은 이유는 숫자를 사용하면 전이 함수를 각기 다른 10가지 문턱값으로 구분할 수 있는 간단한 방법이 없다. 또 전이 함수가 아주 가파르기 때문에 출력이 한 값에서 다른 값으로 아주 급하게 바뀐다. 따라서 비트를 사용하면 재량권이 아주 커진다.

간단한 전기 이론 가이드

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

전기를 물이라고 생각하면 물이 물탱크에서 나오는 것처럼 전기는 배터리 같은 에너지 근원에서 나온다. 물탱크가 텅 비면 물을 채워 넣어야 하는 것처럼 배터리 에너지가 고갈되면 충전을 해야한다.

파이프를 사용하여 AND 연산을 수행하는 모습을 보면 두 벨브가 열려있을 경우에만 물이 흐른다. 이렇게 한 밸브의 출력이 다른 밸브의 입력에 연결될 경우 ‘직렬 연결’이라고 한다.

두 밸브의 입력을 한 관에 함께 연결하고 두 밸브의 출력을 다른 관에 함께 연결하면 OR 연산을 수행하는 ‘병렬 연결’이 된다.

물이 파이프를 흘러서 전달되는 데 시간이 걸리는 것처럼 전기가 컴퓨터 칩 내부에서 전파되는데도 시간이 걸린다. 이런 효과를 전파지연이라고 부른다. 전기는 선을 통해 이동하고, 전기선 내부에 있는 금속을 ‘도체’ 금속 바깥쪽을 둘러싼 부분을 ‘부도체’라고 부른다. 또 전기의 흐름을 제어할 수 있는 밸브 역할을 스위치라 한다.

전기에서 수압에 해당하는 존재를 전압이라 하고, 측정 단위는 볼트다. 전기 흐름의 양은 전류이고 측정 단위는 암페어다. 그리고 저항을 측정할 때는 옴을 사용한다.

2) 전기 스위치

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

‘극’이란 한꺼번에 연결되어 이동하는 스위치의 수를 말한다. 위 예에서 나왔던 수도관 밸브는 모두 단극이였다. 밸브 두 쌍의 손잡이를 함께 움직이게 만들면 ‘쌍극’으로 만들 수 있다. ‘단투’는 접점이 하나뿐이라는 뜻이다. 단투 스위치로 한쪽은 켜고 반대쪽은 끄는 역할을 하려면 ‘단극쌍투’ 스위치가 필요하다. 예)두 선로 중 한쪽으로 기차를 연결해주는 선로 분기

또 원하는 개수만큼 극이나 접점을 사용해 스위치 관련 용어를 확장할 수 있다. ‘쌍극쌍투’ 스위치는 두 극이 서로 연계되어 두 스위치가 함께 움직인다.

에너지 근원에서 나온 전기는 회로 구성요소를 지나서 다시 근원으로 돌아간다.

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

1) 릴레이

선을 둥글게 감아서 코일로 만들고 전기를 흘려보내면 코일이 전자석이 된다. 전자석은 켜고 끌 수 있기 때문에 물건을 움직일 때 이를 활용할 수 있다. 그리고 선으로 만든 코일 주변에서 자석을 움직이면 전기가 생긴다. 발전기는 이런 식으로 작동한다.

릴레이는 스위치를 움직이기 위해 전자석을 사용하는 장치다. 릴레이를 사용하면 스위치로는 불가능한 일을 할 수 있다. 릴레이를 사용하면 NOT 함수를 구현하는 인버터를 만들 수 있다. 또 위쪽의 AND 회로에서 나온 출력을 아래쪽에 OR 회로의 입력 중 하나를 구동하기 위해 연결할 수 있다. 이런 능력을 활용하면 스위치가 다른 스위치를 제어하게 만들 수 있고, 컴퓨터에 필요한 복잡한 논리를 만들 수 있다.

릴레이는 느리고 전기를 많이 소모하며, 먼지나 벌레가 스위치 접점에 있으면 제대로 작동하지 않는다는 큰 문제가 있다. 또 코일의 전원을 갑자기 끄면 순간적으로 초고압이 발생하고, 이때는 공기에서도 전기가 통한다. 여러 단점 때문에 사람들은 릴레이와 같은 일을 하지만 기계적인 부품이 들어있지 않은 다른 물건을 찾기 시작했다.

2) 진공관

진공관은 물체를 충분히 가열하면 전자가 튀어나오는 열전자 방출이라는 현상을 기반으로 만들어졌다. 진공관 안에는 야구에서 투수 같은 캐소드와 캐소드를 가열하는 히터가 있다. 캐소드에서 발생한 전자는 진공속에서 애노드로 날아간다. 이때 서로 다른 극이 서로를 끌어당기고 서로 같은 극이 서로를 밀어낸다는 성질이 발생한다.

또 추가로 타자 역할을 하는 그리드가 있는데 그리드는 캐소드에서 나오는 전자를 쫓아내서 애노드에 도착하지 못하게 만든다. 이런 세 요소가 있는 진공관을 ‘삼극관’이라고 부른다.

정리) 히터는 캐소드를 가열해 전자가 튀어나가게 한다 > 그리드가 방해하지 않으면 전자가 애노드에 도달 (그리느를 스위치 손잡이로 생각할 수 있음)

진공관의 장점은 움직이는 부분이 없어서 릴레이보다 훨씬 더 빠르고 단점은 전구와 마찬가지로 진공관도 아주 뜨겁고 깨지기 쉽다.

3) 트랜지스터

전송저항이라는 말을 줄인 트랜지스터는 진공관과 비슷하지만 반도체라는 특별한 물질을 사용한다. 반도체는 도체와 부도체 사이를 오갈 수 있는 물질이다. 반도체는 쉽게 녹을 수 있기 때문에 트랜지스터에서 열을 제거하는 일은 아주 중요하다. 또 중요한 것은 트랜지스터가 반도체 물질로 이뤄진 기판 또는 슬랩 위에 만들어진다는 점이다.

트랜지스터는 실리콘 웨이퍼 위에 투영해서 현상하는 광식각이라는 과정을 통해 만들어진다. 그래서 광식각 과정은 대량 생산에 적합하다.

트랜지스터에 가장 중요한 두가지 유형으로 1)쌍극 접합 트랜지스터(BJT), 2)필드 효과 트랜지스터(FET)

금속산화물 반도체 전계 효과 트랜지스터는 FET의 일종으로 전력소모가 적기 때문에 현대 컴퓨터 칩에서 가장 널리 쓰이고 있다.

4) 집적 회로

트랜지스터를 사용하면 AND 함수 같은 간단한 회로를 만들 때 조차도 부품이 너무 많이 필요하다. 그래서 직접 회로가 발명됐는데 직접 회로를 사용하면 복잡한 시스템을 트랜지스터 하나를 만드는 정도의 비용으로 만들 수 있다. 이는 ‘칩’이라고 불렸다.

논리 게이트

텍사스 인스트루먼츠가 5400과 7400 집적회로 패밀리를 발표했다. 이 칩들에는 논리 연산을 수행하는 회로가 미리 들어가 있고 이런 회로를 ‘논리 게이트’라고 한다. 게이트를 사용하면 하드웨어 설계자가 밑바닥부터 모든 회로를 설계할 필요 없이 IC를 선으로 연결해 복잡합 회로를 쉽게 만들 수 있다.

인버터 기호에서 중요한 부분은 삼각형 꼭짓점에 있는 동그라미 기호이다. 이 기호가 없는 삼각형은 ‘버퍼’라고 하며 버퍼는 단지 입력을 출력으로 전달하기만 한다. 인버터 기호는 인버터를 다른 논리 게이트와 별도로 독립적으로 사용할 때만 쓰인다.

논리 게이트에서 가장 단순한 회로는 NAND(not and), NOR(not or) 이다. AND, OR은 NAND, NOR 회로 출력에 트랜지스터를 덧붙여서 출력을 반전시켜야 하기 때문에 더 비싸고 반응 속도도 더 느리며, 전력도 더 많이 소모된다.

NAND로 만든 인버터를 사용해 입력을 반전시키면 OR을 만들 수 있다. 역으로 NAND의 출력에 NAND로 만든 인버터를 연결하면 AND가 된다. 따라서 NAND만 있으면 OR, AND, NOT으로 표현할 수 있는 모든 논리를 표현할 수 있다.

게이트를 사용할 때 발생할 수 있는 복잡한 문제로는 다음과 같은 것이 있다.

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

디지털 장치를 사용하면 판정 기준에 의해 잡음 내성을 얻을 수 있다. 실제 현실에서 사용중인 신호 중에는 천천히 변하는 신호가 많다. 입력 신호에 잡음이 있는 경우 입력 신호가 문턱값을 여러번 오락가락하기 때문에 출력 신호에 ‘글리치(작은 오류)’가 생긴다. 이런 글리치는 이력 현상을 사용해 방지할 수 있다. (이력현상: 판정기준이 이력에 따라 달라진다는 뜻)

2) 차동 신호

친구와 함께 길을 걷는데 친구가 나의 왼쪽에 있으면 0, 오른쪽에 있으면 1 이라고 했을 때 여러 방해요소에 의해 인도의 한쪽으로 밀려나게 되도 두 사람이 상대적인 위치를 바꾸지 않았기 때문에 방해요소가 결과값에 영향을 미치지 못한다. 그래서 두사람이 함께 연인관계처럼 붙어있으면 강력한 잡음 내성을 만들어 내고 이런 방식을 ‘차동신호’ 라고 한다.

연선 케이블링이 발명 됐는데 연선은 한쌍의 선을 서로 꼬아서 전기적으로 연인이 서로 허리에 손을 두르는 것 같은 효과를 만들어 낸다.

3) 전파 지연

전파지연은 입력의 변화가 출력에 영향을 미칠 때까지 걸리는 시간을 뜻한다. 정확한 값은 아니고 제조 과정과 온도에 따라 생기는 편차와 게이트 출력에 도달하기까지 연결된 구성 부품의 수에 따라 결정되는 통계적인 측정 값 이다.

4) 출력 유형

토템폴 출력 : 일반적인 게이트 출력은 토템폴이라고 부른다. 트렌지스터가 세로로 나란히 늘어서 있어서 붙은 것이다.

오픈 컬렉터 출력 : 오픈 컬렉터나 오픈 트레인 버전은 액티브 풀업이 없기 때문에 출력을 아무 문제 없이 서로 연결할 수 있다. 필요하면 출력을 패시브 풀업에 연결할 수 있다. 패시브 풀업은 단순히 풀업 저항을 논리적인 1 값을 공급해주는 공급 전압에 연결한 것이다.

오픈 컬렉터 출력과 패시브 풀업을 사용하면 와이어드 AND를 만들어낼 수 있다. 오픈 컬렉터 입력이 1이면 해당 게이트의 출력과 해당 게이트의 입력 사이는 회로 연결이 끊어진 상태라는 점에서 유의하라. 오픈 컬렉터 출력 값 중 0인 값이 있다면 해당 게이트는 오픈 컬렉터 출력과 그라운드를 연결해주는 선로가 생긴다. 따라서 오픈 컬렉터 출력 중 0인 값이 하나 이상 있으면 와이어드 AND의 출력은 0이 된다. 이 논리를 부정적인 논리로 해석하면 오픈 컬렉터 출력값 중 출력이 1인 값이 하나라도 있으면 출력이 1이 되는 것과 같기 때문에 이를 ‘와이어드 OR’이라고 부르기도 한다.

트라이스테이트 출력 : 오픈 컬렉터 회로를 사용하면 출력을 서로 연결할 수 있지만 액티브 폴업을 사용하는 것만큼 응답이 빠르지 않다는 단점이 있다. 따라서 상태가 세 가지인 트라이스테이트 출력을 사용한다. 이 출력을 사용하면 수많은 장치를 서로 선으로 직접 연결할 수 있다. 단점은 한 번에 단 하나의 장치만 활성화해야 한다는점이다.

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

게이트를 사용하면서 하드웨어 설계 과정이 아주 단순해졌다. 더 이상 개별 부품을 가지고 회로를 설계할 필요가 없다. 하드웨어 설계자들은 SSI 게이트를 사용해 자신들이 개별적인 부품을 사용해 설계할 때와 마찬가지로 어떤 것이든 만들 수 있다.

1) 가산기

2) 디코더

디코더는 인코딩된 수를 개별 비트의 집합으로 만들어진다.

3) 디멀티플렉서

디코더를 사용해서 디멀티플렉서를 만들 수 있다. 줄여서 디먹스라고도 부른다. 디먹스는 입력을 몇 가지 출력 중 한 곳으로 전달한다.

4) 실렉터

여러 입력 중 한 입력을 선택하는 기능을 실렉터라고 한다. 예를 들어 토스터 오븐기를 생각했을 때 꺼짐, 토스트, 베이크, 브로일 이라는 기호가 있는데 이 네 가지 선택지가 있는 버튼을 실렉터 스위치이다.

This post is licensed under CC BY 4.0 by the author.

1장 컴퓨터 내부의 언어체계

3장 메모리와 디스크의 핵심- 순차 논리