STEP UP - 한 권으로 읽는 컴퓨터 구조와 프로그래밍 #2

연정·2022년 5월 25일
0

STUDY

목록 보기
2/4
post-thumbnail

CH 2. 전자 회로의 조합 논리

전자기술을 이야기할 때,

  • 아날로그 : 연속적인 것 (ex. 계산자, 계량컵)
  • 디지털 : 이산적인 것 (ex. 손가락)

하드웨어에서 크기가 중요한 이유
사람과 같이 컴퓨터도 물리적인 이동이 필요하다.
사람이 거리를 왔다갔다 하는 것처럼 컴퓨터는 전자를 이동시키며, 빛의 속도라는 물리적 한계를 벗어날 방법이 없기 때문에 움직여야하는 실제 거리를 줄임으로써 시간을 최소화 시킬 수 있다.
(시간 최소화 = 성능 극대화)

하드웨어가 작아질 수록 전자의 물리적 이동 거리가 줄어들고 필요한 에너지의 양이 줄어든다. 이에 따라 저 전력 소모 & 열 발생 감소의 효과를 보이게 된다.

다만, 하드웨어가 작아질수록 간섭하는 요소가 많아지기 때문에 아날로그로는 정확한 값을 읽어내기가 점점 어려워진다. (아날로그는 연속적인 값을 모두 측정할 수 있으나, 외부적 요인에 취약 / 디지털은 정확한 판정 기준을 가지고 있어 간섭 요소에 영향을 적게 받으나(안정적), 중간값 측정 불가)

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

  • 같은 수여도 10진 숫자보다 비트가 더 많은 수를 표현할 수 있기 때문
  • 더 간단하게 전이함수를 문턱값(판정기준)으로 구분할 수 있기 때문 (0 혹은 1)

비트를 처리하기 위한 하드웨어
뒤로 갈 수록 더 빠르고 작고 비용효율적!!

  • 릴레이
    : 스위치를 움직이기 위해 전자석을 사용하는 장치
    : 느리고 전기를 많이 소모하며 먼지나 벌레가 스위치 접점에 있으면 제대로 작동하지 않음
    : 코일의 전원을 갑자기 끌 경우 순간적으로 초고압이 발생하여 접접이 마모

  • 진공관
    : 물체를 충분히 가열하면 전자가 튀어나오는 열전자 방출 현상을 기반으로 제작
    : 전자를 포함하는 캐소드 / 캐소드를 가열하는 히터 / 전자를 받는 애노드 / 중간에서 스위치 역할을 하는 그리드로 구성
    : 움직이는 부분이 없어 릴레이보다 빠름
    : 단 가열이 필요하기 때문에 매우 뜨겁고 깨지기 쉬움

  • 트랜지스터
    : 진공관과 비슷하지만 도체와 부도체를 오갈 수 있는 물질 반도체를 사용
    : 도체가 가늘고 얇아지면 저항이 늘어나 열이 발생하는데, 반도체는 열에 쉽게 녹으므로 트랜지스터에서 열을 제거하는 일은 매우 중요
    : 더 작고 빠르고 신뢰가능하고 전력소모도 적지만 간단한 회로 제작에도 많은 부품이 필요

  • 집적회로 (IC칩)
    : 여러 독립된 요소를 집적해서 하나의 칩으로 만든 것 (하나의 반도체 기판에 분리될 수 없는 형태로 부착되며, 모든 요소가 붙어있는 실리콘이 전선의 역할을 대신함)
    : 트랜지스터의 단점을 보완하여 복잡한 시스템을 적은 비용으로 만들 수 있게 됨

논리게이트
조합논리*를 위해 만들어진 IC칩(집적 회로)은 내부에 논리 연산을 수행하는 회로인 논리게이트(불리언대수를 물리적 장치에 구현한 것)가 포함되어 있다

*조합논리
내부 상태(메모리)가 없어 입력만 보면 어떤 값이 나올지 알 수 있는 논리
(입력 신호만으로 출력이 결정!)

논리게이트를 사용하면 하드웨어 설계자가 모든 회로를 처음부터 설계하는게 아니라 IC를 선으로 연결하여 복잡한 회로를 쉽게 만들어낼 수 있음

  • AND 게이트
  • OR 게이트
  • XOR 게이트
  • 인버터 (NOT을 수행하는 게이트)
  • 버퍼 : 단순히 입력을 출력으로 전달하는 게이트
  • NAND 게이트 : AND 게이트의 값을 반전
  • NOR 게이트 : OR 게이트의 값을 반전

논리게이트에서 NAND & NOR 게이트가 가장 단순한 회로이자 디지털 회로 설계시 가장 기본적으로 사용하는 게이트.
-> 더 빠르고 더 효율적이고 (전력 소모가 적음) 모든 논리를 표현할 수 있다!

NAND & NOR 만으로도 OR, AND, NOT 으로 표현할 수 있는 모든 논리 표현가능 (드모르간의 법칙!!!)

NAND & NOR의 두 입력을 같은 입력에 연결하면 인버터를 만들 수 있다.
ex) a NAND a = NOT a / a NOR a = NOT a

이력 현상을 통한 잡음 내성 향상
디지털(이산적인) 장치를 활용하면 판정기준(문턱값)에 의해 잡음 내성을 얻을 수 있다.
하지만 입력이 문턱값을 여러번 오가는 경우 글리치가 발생하게되는데, 이력현상을 통해 이를 방지할 수 있다.

이력 현상
이력(과거에 벌어진 일)에 따라 판정 기준이 달라지는 현상

올라가는 신호(0 > 1)와 내려가는 신호(1 > 0)에 각각 문턱값을 주어 잡음에 대한 내성을 키우는 것!
슈미트 트리거 게이트가 이력을 사용한다 (매우 복잡하고 비쌈)

차동신호 (differential signaling)
측정하는 값이 서로 반전 관계인 신호 쌍의 차이를 측정
반전관계 출력으로 변환해주는 드라이버는 2개의 신호를 전달하며 리시버가 두 입력을 받아 두 입력의 차로 단일 신호를 만들어준다

ex) 
5v의 신호를 보내고 싶은 상황
드라이버 : 각 10v & 5v 전달
리시버 : 10 - 5 = 5v 신호 수신

신호 쌍을 사용하는 이유는, 잡음으로 신호가 방해받게 되면 한 쌍 모두가 영향을 받게 되므로 결과적으로 원하는 값의 출력을 얻을 수 있기 때문 (잡음 내성 Good)

ex) 
5v의 신호를 보내고 싶은 상황 + 2v의 잡음
드라이버 : 각 10v & 5v 전달
노이즈 : 각 12v & 7v 로 변경
리시버 : 12 - 7 = 5v 신호 수신

다만, 잡음이 너무 많으면 각 부품들이 자신의 정격(설계할 때 정해둔 규격)을 벗어날 수 있다.

연선 케이블링
한쌍의 선을 서로 꼬아서 잡음 내성을 키운 케이블 제작 방법
예전의 전화선, USB 등이 연선 케이블링을 활용하였다고 한다.


전파 지연
입력의 변화가 출력에 영향을 미칠 때까지 걸리는 시간

특정하게 정해진 값이 아니라, 외부 상황 + 연결된 구성 부분의 수에 따라 결정되는 통계적인 값
실제지연 = 최대 지연과 최소 지연 사이의 어떤 값

전파지연은 논리 회로의 최대 속도를 제한한다. 최소 지연과 최대 지연 사이의 출력값은 신뢰할 수 없기 때문에 최악의 상황을 가정하여 회로 설계를 진행해야한다.


출력
전기 회로는 음극에 연결되면 그 전압을 0으로 보고, 양극과 음극 사이의 상대적인 전압 차이를 전압으로 본다.

  • 토템폴 출력
    : 일반적인 게이트 출력
    : 트랜지스터가 세로로 나란히 늘어서 있음
    : 토템폴 출력은 서로 연결할 수 없음 (연결하면 음극와 양극을 연결하는 효과)

  • 오픈 컬렉터 출력
    : 하나의 트랜지스터로 이루어짐
    : 출력 중 0인 값이 하나라도 있으면 전체 출력은 0 / 출력이 모두 논리 1일 때에만 전체 출력이 1 와이어드 AND
    : 와이어드 AND을 활용하면 여러 입력이 있는 AND 게이트를 사용하지 않아도 계산 가능
    : 출력이 0이 아니라면 출력은 떠있는 상태(float)이며 출력값은 알 수 없음
    : 떠있는 상태의 출력값을 확인하기 위해 풀업저항이 필요
    : 액티브 풀업이 없기때문에 응답이 빠르지 않음

  • 트라이스테이트 출력
    : 3가지 상태 보유 (0 / 1 / 꺼짐)
    : 출력을 켜고 끄기 위한 추가 입력인 활성화 입력 존재
    : 다수의 장치를 선으로 직접 연결할 수 있으나, 단 하나의 장치만 활성화 가능

액티브 풀업
출력 1을 얻기 위해, 출력과 높은 논리값 1을 연결


논리 부품(게이트)을 효율적으로 더해서 더 빠르고 작고 복잡한 장치를 만들수 있음!!

profile
성장형 프론트엔드 개발자

0개의 댓글