한 권으로 읽는 컴퓨터 구조와 프로그래밍 (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로 세대 교체 중