테마
컴퓨터 구조
컴퓨터 구조(computer architecture)는 CPU·메모리·저장 장치가 어떻게 생겼고 서로 어떻게 데이터를 주고받는지를 다룬다. 운영체제와 자료구조(data structure)의 성능 이야기는 결국 "CPU가 메모리에서 데이터를 얼마나 빨리 가져오는가"로 돌아오므로, 이 대주제가 나머지 CS의 바닥이 된다.
학습 순서
- 컴퓨터 구조의 큰 그림 — 프로그램 내장 방식(stored-program)과 폰 노이만 구조(von Neumann architecture), 네 가지 핵심 부품 (면접 비중: 중간)
- 컴퓨터 구조의 큰 그림 2 — 부품을 잇는 버스(bus)의 세 갈래와, 주소를 실어 나르는 선의 개수(주소 버스 폭)가 정하는 메모리 범위 (면접 비중: 중간)
- 컴퓨터가 이해하는 정보 — 2진수(binary number), 음수를 담는 2의 보수(two's complement), 실수를 담는 부동소수점(floating point) (면접 비중: 중간)
- 컴퓨터가 이해하는 정보 2 — 문자 인코딩(character encoding), 바이트 순서인 엔디언(endianness), 소스 코드가 기계어(machine code)가 되는 과정 (면접 비중: 중간)
- CPU의 동작 — CPU의 세 부품과 레지스터(register), 주소 지정 방식(addressing mode), 명령어 사이클(instruction cycle) (면접 비중: 중간)
- CPU의 동작 2 — 인터럽트(interrupt)의 종류와 처리 과정 (면접 비중: 중간)
- CPU 성능 높이기 — 클럭(clock), 멀티코어(multi-core), 하드웨어 스레드(hardware thread) (면접 비중: 중간)
- CPU 성능 높이기 2 — 파이프라이닝(pipelining)과 파이프라인 해저드(pipeline hazard), CISC(Complex Instruction Set Computer, 복잡 명령어 집합 컴퓨터)와 RISC(Reduced Instruction Set Computer, 축소 명령어 집합 컴퓨터) (면접 비중: 중간)
- 메모리와 캐시 — 메모리의 종류, 메모리 계층(memory hierarchy), 캐시 메모리(cache memory)와 적중률(hit ratio) (면접 비중: 높음)
- 메모리와 캐시 2 — 캐시(cache)에 쓰는 시점과, 메모리 데이터를 캐시의 어느 칸에 둘지 정하는 사상 방식(mapping), 지역성(locality), 캐시 일관성(cache coherence) (면접 비중: 높음)
- 보조기억장치와 입출력 — HDD·SSD의 구조와 속도를 좌우하는 것 (면접 비중: 중간)
- 보조기억장치와 입출력 2 — RAID(Redundant Array of Independent Disks, 독립 디스크 중복 배열), 폴링(polling)·인터럽트·DMA(Direct Memory Access, 직접 메모리 접근) (면접 비중: 중간)
