본문 바로가기

source-code/software

한 권으로 읽는 컴퓨터 구조와 프로그래밍

논리 게이트

= 논리 연산을 수행하는 회로가 미리 들어가 있는 회로!

→ 하드웨어 설계자가 밑바닥부터 모든 회로를 설계할 필요 없이, IC를 선으로 연결해 복잡한 회로를 쉽게 만들 수 있게 해 줌.

  • 논리 게이트에서 가장 단순한 회로 → NAND(not and) 나 NOR(not or)
    • 트랜지스터를 2개나 4개 사용. AND나 OR은 이보다 더 비싸고, 느리며, 전력 소비도 큼
  • 이력 현상을 활용한 잡음 내성 향상
    • 잡음으로 인해 입력 신호가 문턱값을 여러 번 오락가락해 출력 신호에 작은 오류 발생하는 문제 존재
    • 이력 현상 을 사용해 이를 방지
      • 판정 기준이 이력(과거에 벌어진 일)에 따라 달라짐
      • 입력 신호가 두 문턱값 중 하나를 넘어간 경우, 반대쪽 문턱값을 지나가며 출력이 반전되려면 값이 크게 변해야 함
  • 차동 신호
    • 측정하는 값이 서로 반전관계인 신호 쌍의 차이를 측정
  • 전파 지연
    • 입력의 변화가 출력에 영향을 미칠 때까지 걸리는 시간
      • 정확한 값은 X, 통계적인 측정값
  • 출력 유형
    • 토템폴 출력
    • 오픈 컬렉터 출력
    • 트라이스테이트 출력

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

게이트의 조합 중, 특히 자주 사용되는 조합들이 존재!

중간 규모 집적 회로(MSI) → 이러한 게이트 조합을 제공하기 위해 도입

이후 대규모 집적 회로, 초대규모 집적 회로 등이 등장

=> 게이트 조합으로 만든 고수준 기본 기능 요소를 사용해, 더 고수준의 부품을 만들 수 있음!

 

3장. 메모리와 디스크의 핵심 : 순차논리 - 컴퓨터는 비트를 어떻게 기억하는가

조합 논리 - 흐름을 따름, 즉 입력에 의해서만 출력이 결정

순차 논리 - 입력의 현재 상태와 과거 상태를 함께 고려! → 시간을 만들어내는 회로와 과거를 기억하기 위한 회로!

 

시간 표현과 상태 기억

주기 함수를 사용해 → 시간 측정이 가능해짐.

전자 공학을 사용하는 컴퓨터 → 주기적인 전기 신호를 통해 시간 측정 가능!

  • 발진자
    • 인버터의 출력을 입력에 연결
      • 인버터 출력은 다시 인버터 입력으로 들어가며, 이 입력은 다시 출력에 반영
      • 이로 인해 출력이 0과 1 사이를 진동!
  • 클록
    • 발진자는 컴퓨터에 클록(clock, 시간을 셀 수 있게 해주는 신호)을 제공
    • 클록은 회로의 pace를 결정, 회로의 최대 클록 속도나 가장 빠른 템포는 회로의 전파 지연 시간에 의해 결정
  • 래치
    • 정보를 1비트 기억하는 방안
    • OR 게이트의 출력을 입력에 묶는 방식의 되먹임(feedback)을 사용하면 정보를 기억할 수 있음!
    • S-R 래치
      • set-reset
  • 게이트가 있는 래치
    • 어느 시점에 무언가를 기억하기 위한 방안
  • 플립플롭
    • 데이터 변경으로 인해 잘못된 결과가 생길 수 있는 가능성 최소화 위한 수단
    • 논리 수준이 특정 값에 머무는 동안 데이터를 잡아내지 않고, 논리 수준이 한 수준에서 다른 수준으로 전이되는 중간에 데이터를 잡아 내는 것(에지, edge)
      • 시간에 대한 판정 기준
    • 플립플롭 = 에지에 의해 데이터 변화가 촉발되는 래치
    • D 플립플롭
  • 카운터
  • 레지스터
    • 클록을 공유하는 여러 D 플립플롭을 한 패키지에 넣은 것