Post

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

컴퓨터는 어떤 논리로 비트를 다루는가

디지털 컴퓨터의 사례

아날로그와 디지털의 차이

아날로그

  • 연속적
  • 실수를 표현할 수 있지만 정밀도의 문제 존재

디지털

  • 이산적

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

  • 현대 컴퓨터는 전자를 움직인다.
  • 전기는 빛의 속도로 움직이며 이를 뛰어넘을 수 없기 때문에 전자의 여행 시간을 최소화하기 위해 부품을 가능한 가깝게 위치시켜야 한다.
  • 따라서 모든 것을 작게 만들면 더 높은 성능을 달성할 수 있다.
  • 하드웨어를 작게 만들면 거리가 줄어들며 필요한 에너지 양도 줄어들어 저 전력 소모와 열 발생 감소를 가능하게 한다.

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

  • 하드웨어를 작게 만들면 물체간 간섭이 쉬워지는 단점 발생
  • 이산적인 장치는 판정 기준(decision criteria)이 존재하기 때문에 간섭의 영향을 받지 않지만 어떤 범위의 값은 표현을 못하게 된다.
  • 외부의 간섭에서 보호받기 위해 더 높은 판정 기준을 통해 잡음 내성(noise immunity)을 갖는 디지털 회로를 사용해야 한다.
    • 판정 기준을 넘기 위해선 추가적인 에너지가 필요하기 때문에 연속적인 장치를 사용할 때에는 얻을 수 없는 일정 수준 이상의 잡음 내성을 얻을 수 있다.

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

  • 자연적으로 발생하는 전이 함수(transfer function)의 직선부 이용
  • 왜곡이 발생하면 문턱값이 생기고 연속적인 공간을 이산적인 영역으로 나눔
    • 이로인해 안정성과 잡음 내성을 얻음
  • 아날로그는 선형 영역을 크게 만들기 위해서, 디지털은 작게 만들기 위해서 노력한다.

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

  • 비트를 사용하는 것이 더 효율적이다.
  • 10진 숫자를 사용하면 전이 함수를 10가지 문턱값으로 간단하게 구분하기 어렵다.
    • 비트는 이에 비해 전이 함수가 매우 가파르다.

간단한 전기 이론 가이드

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

  • 직렬 연결은 AND 연산을, 병렬 연결은 OR 연산을 구현한다.
  • 전파 지연은 전기가 컴퓨터 칩 내부에서 전파되는데 걸리는 시간이며, 상수가 아니다.
  • 옴의 법칙
    • I = V/R

전기 스위치

  • 도체 사이에 부도체를 삽입하거나 제거해 스위치로 사용할 수 있다.
  • 단극단투(single-pole, single-throw) 스위치: 한꺼번에 연결되어 이동하는 스위치의 수가 하나이고 접점이 하나인 스위치

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

릴레이

  • 스위치를 움직이기 위해 전자석을 사용하는 장치
    • 선을 둥글게 감아 코일을 만들고 전기를 흘려보내면 코일이 전자석이 된다.
  • 평상시 열린 릴레이와 평상시 닫힌 릴레이가 존재
  • 스위치로는 불가능한 NOT 함수를 구현하는 인버터를 만들 수 있다.
  • 전이 함수 문턱값이 수직이다.
  • 느리고 전기를 많이 소모하며 먼지가 스위치 접점에 있으면 제대로 작동하지 않는다. 또한 코일의 전원을 갑자기 끄면 초고압이 발생해 스위치의 접점이 점점 마모된다.

진공관

  • 물체를 충분히 가열하면 전자가 튀어나오는 열전자 방출 현상을 기반으로 한다.
  • 히터는 캐소드를 가열하고 가열된 캐소드에서 발생한 전자는 진공속에서 애노드로 날아간다.
  • 그리드는 캐소드에서 나오는 전자가 애노드로 도달하지 못하게 한다. 즉 스위치로 생각할 수 있다. 캐소드, 그리드, 애노드가 들어있는 진공관을 삼극관이라고 부른다.
  • 움직이는 부분이 없어 릴레이보다 훨씬 빠르지만 진공관은 매우 뜨겁고 깨지기 쉽다.

트랜지스터

  • 반도체 물질로 이루어진 기판 위에 만들어짐
  • 트랜지스터를 작게 만들면 도체가 가늘고 얇아져 저항이 늘어나 열이 발생해 반도체가 쉽게 녹기 때문에 열을 제거가 중요
  • 쌍극 접합 트랜지스터(BJT)와 필드 효과 트랜지스터(FET)가 존재
  • 금속산화물 반도체 전계 효과 트랜지스터(MOSFET)은 전력 소모가 적어 가장 널리 쓰인다. N채널과 P채널 MOSFET을 한 쌍으로 묶은 CMOS를 사용하는 경우가 많다.

집적 회로

  • 트랜지스터는 간단한 회로를 만들 때에도 많은 부품이 필요하다. 집적 회로를 이용하면 복잡한 시스템을 싸게 만들 수 있다.

논리 게이트

논리 게이트(게이트)

  • 논리 연산을 수행하는 회로가 미리 들어가있는 칩
  • AND 게이트, OR 게이트, XOR 게이트, 인버터가 들어있는 박스

NAND 게이트, NOR 게이트

  • 가장 단순한 회로이며 두 개의 조합으로 모든 게이트를 만들 수 있어 universal gates라고도 한다.
  • AND나 OR은 NAND나 NOR 회로 출력에 트랜지스터를 덧붙여서 출력을 반전시켜야 한다.
    • 따라서 AND나 OR는 더 비싸고 반응 속도도 더 느리며, 전력도 더 많이 소모된다.
  • 두 입력을 같은 입력에 연결하면 인버터가 된다.

    aaANDNAND
    FFFT
    TFFT
    FTFT
    TTTF
    aaORNOR
    FFFT
    TFTF
    FTTF
    TTTF
  • 드모르간의 법칙에 의해 a AND b는 NOT(NOT a OR NOT b)이다
    • ⇒ a NAND b는 NOT a OR NOT b이다
    • ⇒ NAND 게이트는 OR 게이트로 바꿀 수 있다
    • 여기서 NAND로 만든 인버터를 사용해 입력을 반전시키면 OR을 만들 수 있다.
  • NAND의 출력에 NAND로 만든 인터버를 연결하면 AND가 된다.

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

글리치

  • 잡음으로 인해 입력 신호가 문턱값을 여러 번 오락가락해 생기는 작은 오류

이력 현상(hysteresis)

  • 판정 기준을 과거 이력에 따라 달리 만들어 글리치를 방지하는 방법
  • 입력 신호에 따라 문턱값을 달리 만든다면 출력의 반전을 위해 값을 크게 변경해야 하고 이는 잡음 내성을 키우게 된다.
    • 즉 문턱값을 여러 번 오락가락 하지 않도록 만든다.

차동 신호

  • 잡음이 많아 이력을 도입해도 효과가 없는 경우 사용
  • 0과 1을 결정하기 위해 상대적 위치를 측정한다.

차동 신호 회로

  • 드라이버: 입력 신호를 반전관계 출력(complementary output)들로 변환
  • 리시버: 반전관계인 두 입력을 받아 단일 신호를 만듦

한계

  • 잡음이 너무 많으면 전기 부품의 정격(specific) 작동 범위를 넘을 수 있다.
    • 공통 모드 판별비(CMRR, common-mode rejection ratio)는 부품 정격 중 하나로 처리 가능한 잡음의 양을 표시한다.

연선 케이블링(twisted-pair cabling)

  • 한 쌍의 선을 서로 꼬아 강력한 잡음 내성 효과를 얻는다.

전파 지연

  • 입력의 변화가 출력에 영향을 미칠 때까지 걸리는 시간으로, 통계적인 측정값이다. 게이트에는 최대 지연과 최소 지연이 있다.
  • 논리 회로의 최대 속도를 제한하는 요소 중 하나
  • 전자 부품의 정격표(datasheet)에서 지연 시간은 t_PLH와 t_PHL으로 표시한다.
    • PLH: 0(low)에서 1(high)로 가는 경우 걸리는 지연 시간
    • PHL: 1에서 0으로 가는 경우 걸리는 지연 시간

출력 유형

토템폴 출력

  • 일반적인 게이트 출력
  • 트랜지스터를 세로로 나란히 붙인 형태
  • 출력의 1을 얻기 위해 출력과 높은 논릿값을 연결하는 스위치를 액티브 풀업이라고 한다.
  • 출력을 서로 연결할 수 없다.

오픈 컬렉터 출력(BJT 트랜지스터), 오픈 드레인 출력(MOS 트랜지스터)

  • 출력 값으로 0을 갖거나 하이 임피던스를 갖는다.
  • 액티브 풀업이 없기 때문에 출력을 서로 연결할 수 있다. 필요하면 패시브 풀업에 연결할 수 있다.
    • 패시브 풀업은 풀업 저항을 논리적인 1 값을 공급해주는 공급 전압에 연결한 것이다.
  • 와이어드 AND(와이어드 OR)
    • 오픈 컬렉터 출력 중 0인 값이 하나 이상 있으면 와이어드 AND의 출력은 0이 된다.
    • 즉 오픈 컬렉터 출력값 중 출력이 1인 값이 하나라도 있으면 출력은 1이 된다.
  • 출력을 서로 연결할 수 있지만 액티브 풀업을 사용하는 것만큼 응답이 빠르지 않다.

트라이스테이트 출력

  • 상태가 세 가지인 출력으로 세 번째 상태는 꺼진 상태(hi-Z)다.
  • 출력을 켜고 끄기 위한 추가 입력인 활성화(enable) 입력이 존재한다.
  • 수 많은 장치를 서로 선으로 직접 연결할 수 있다는 장점과 한 번에 단 하나의 장치만 활성화해야 한다는 단점이 있다.

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

  • 게이트 조합
    • 소규모 직접 회로, SSI
    • 중간 규모 직접 회로, MSI
    • 대규모 집접 회로, LSI
    • 초대규모 집적 회로, VLSI

가산기

2의 보수 가산기

  • 두 비트를 더한 값은 각 비트의 XOR이고 올림은 두 비트의 AND이다. 두 게이트를 사용해 반가산기를 만들 수 있다.
  • 다른 자리에서 올라오는 올림을 처리하기 위해 세 번째 입력이 필요하다. 이를 고려해 전가산기를 만들 수 있다.

리플 자리올림 가산기

  • 자리올림이 아래쪽 비트로부터 바로 위쪽 비트로 물결이 퍼져나가는 것처럼 전달된다.
  • 비트를 하나 처리할 때마다 게이트 2개에 해당하는 출력 시간 지연이 발생한다.

올림 예측 가산기

  • 리플 자리올림 가산기의 시간 지연을 제거할 수 있다.
  • 올림을 계산하는 시간이 비트 개수에 따라 달라지지 않게 되어 전체 덧셈에 걸리는 시간이 일정한 수준으로 고정된다.

디코더

  • 인코딩된 수를 개별 비트의 집합으로 만듦

디멀티플렉서(demux)

  • 디코더를 사용해 만든다.

실렉터(selector) 또는 멀티플렉서(mux)

  • 게이트를 사용해 여러 입력 중 한 입력을 선택
This post is licensed under CC BY 4.0 by the author.