한 권으로 읽는 컴퓨터 구조와 프로그래밍 (Jonathan E. Steinhart 저, 책만 사) 를 읽고 정리하는 요약 글입니다.

2장 - 전자 회로의 조합 논리

2.0. 전자 회로의 조합 논리

  • 컴퓨터는 2진법을 적용한 비트를 내부 언어로 사용함.
  • 컴퓨터는 비트를 기반으로 새로운 비트를 표현하고 연산하는 불리언대수 또는 조합논리(combinatorial logic)을 통해 구현한 기능을 통해 동작함.

2.1. 논리 게이트

  • 1960년대 개발된 논리 연산을 수행하는 회로. 간단하게 게이트라고도 함.
  • 앞서 1장에서 다루었던 기본적인 부울대수의 연산을 수행하며, 이들의 결합으로 더욱 복합적인 기능을 구현할 수 있음.

2.2. 게이트를 조합한 회로

  • 가산기 adder
    • 덧셈연산을 하는 논리회로
    • 종류
      • 반가산기
      • 전가산기
      • 리플 자리올림 가산기
      • 올림 예측 가산기
  • 디코더 decoder
    • 인코딩된 수를 비트의 집합으로 변환하는 회로
  • 디멀티플렉서 demultiplexer (dmux)
    • 하나의 입력을 받아 몇가지의 출력 중 한 곳으로 전달하는 회로
  • 설렉터 selector (multiplexer)
    • 여러 입력 중 하나의 입력을 선택하는 회로

3장. 순차 논리

3.0. 순차 Sequence

  • 앞서 다룬 조합논리는 입력의 현재 시점의 상태만을 다룸.
  • 반면 순차 논리는 시간의 흐름에 따른 값을 다룸. 입력값의 현재 상태 뿐만 아니라 과거의 입력값 또는 입력값의 과거 상태를 함께 고려해야하는 것을 의미함.
  • 순차 논리를 통해 데이터를 저장하는 메모리 등을 구현함.

3.1. 시간의 표현

  • 발진자
    • 발진자 (또는 진동자)가 진동하는 특정 주기를 기준으로 두어 시간을 측정할 수 있음.
  • 클록
    • 발진자에서 제공되는 시간을 셀 수 있게 해주는 신호.
    • 신호를 통해서 발진자에서 표현되는 전기적 신호의 진동 속도를 측정할 수 있음.
    • 컴퓨터 부품이 고장나지 않는 선에서 클록의 속도를 더욱 빨리 하여 단위 시간당 진동횟수를 늘리는 것을 오버클럭이라고 함.
  • 래치: 1비트의 정보를 기억, 보관할 수 있는 회로
  • 플립플롭: 데이터의 전이(에지)를 통해서 시점을 반영하는 래치
  • 레지스터: 클록을 공유하는 복수개의 플립플롭을 묶은 기억장치 또는 메모리

3.2. 메모리

3.2.1. 임의 접근 메모리 RAM

  • 임의 접근, 휘발성의 특성을 가진 메모리

3.2.2. 읽기 전용 메모리 ROM

  • 휘발성인 RAM과 달리 한번 쓰기가 적용된 이후에는 여러번 읽을 수 있는 메모리

3.2.3. 플래시 메모리

  • EEPROM의 한종류로, 블록으로 나누는 것이 가능함.
  • 읽을 때 임의접근, 쓸 때 블록 접근의 구조를 가진 장치.

3.3. 블록 장치

  • 우리가 흔히 아는 디스크 드라이브
  • 원판 또는 플래터에 비트를 저장함.
  • 플로피 디스크, 광학 디스크(CD, DVD), 자기 테이프, 하드 드라이브 등이 모두 블록 장치에 해당함
  • SSD로 세대 교체 중