본문으로 건너뛰기
학습경로 · 13 단계

컴퓨터는 어떻게 동작하는가

전기 → 논리 → CPU → 캐시 → 메모리 → 인터럽트 → 커널 → 드라이버 → PCIe → FPGA → AI 가속기를 하나의 이야기로.

보통 책은 "CPU까지" 또는 "리눅스까지"에서 멈춘다. 이 경로는 트랜지스터에서 시작해 AI 가속기까지, 같은 주제를 여러 시리즈의 서로 다른 고도(프로그래머 관점 → 설계 원리 → 실제 구현)로 이어서 읽게 배치했다. 각 단계마다 "내가 이 기능을 설계한다면?"을 함께 물으면 암기가 아니라 원리가 남는다.

0부. 논리 기초 — 전기에서 CPU까지

릴레이·논리 게이트·플립플롭에서 아주 작은 CPU가 만들어지기까지, 첫 원리부터.

Code: The Hidden Language 준비 중 · 25편

릴레이·논리 게이트에서 CPU까지, 첫 원리로 쌓는 컴퓨터.

1–2부. CPU와 ISA — 명령어는 어떻게 실행되나

ISA라는 계약 위에서 fetch·decode·execute, 파이프라인·해저드·분기예측이 어떻게 돌아가는지.

Computer Systems: A Programmer's Perspective 준비 중 · 12편

하드웨어를 아는 C 프로그래머 관점의 bottom-up 시스템 입문.

프로그래머 관점 bottom-up

RISC-V ISA 해부 준비 중 · 18편

RV32I/64I부터 특권 아키텍처까지 오픈 ISA 해부.

오픈 ISA로 보는 명령어 인코딩·특권 모드

Embedded Performance Engineering 57/57 발행

왜 느린가 — cache miss·pipeline stall·bus contention부터 프로파일링까지 임베디드 성능 분석.

파이프라인·IPC·분기예측 실측

ARMv8-A Architecture Reference Manual 준비 중 · 2편

AArch64 실행 모델·예외 레벨·메모리 모델 스펙 리뷰.

ARM 레인 — AArch64 ISA

3부. 캐시와 메모리 계층 — 왜 느려지고, 왜 캐시가 있나

Register→L1→L2→L3→DRAM의 지연 사다리, 그리고 멀티코어에서의 일관성.

Computer Systems: A Programmer's Perspective 준비 중 · 12편

하드웨어를 아는 C 프로그래머 관점의 bottom-up 시스템 입문.

캐시 친화적 코드

A Primer on Memory Consistency and Cache Coherence 준비 중 · 11편

Consistency vs Coherence — 두 개념의 출발점과 차이.

멀티코어 MESI·메모리 모델

DDR Memory Deep Dive 준비 중 · 16편

메모리 셀부터 Bank·Row·Column·Rank까지 DDR의 물리적 계층 구조.

HBM·GDDR 심화 12/12 발행

HBM과 GDDR의 분기점 — bandwidth·capacity·cost 트레이드오프.

가속기 대역폭 벽

Embedded Performance Engineering 57/57 발행

왜 느린가 — cache miss·pipeline stall·bus contention부터 프로파일링까지 임베디드 성능 분석.

캐시·대역폭 프로파일링

단일코어 캐시 replacement policy·TLB 아키텍처 (교육용 정리) 예정

→ systems/architecture

4부. 인터럽트 — 하드웨어가 CPU를 가로채는 법

CPU→Interrupt→ISR→Scheduler→Task wakeup. 그리고 ARM GIC·MSI-X까지 연결.

Operating Systems: Three Easy Pieces 준비 중 · 28편

가상화·동시성·영속성 세 축으로 배우는 OS 설계 원리.

설계 원리

리눅스 커널의 구조와 원리 준비 중 · 25편

task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.

softirq·tasklet·workqueue 실제 구현

Linux Device Drivers (LDD3) 준비 중 · 19편

문자·블록·PCI 드라이버를 예제로 익히는 Linux 디바이스 드라이버 고전.

드라이버 관점 인터럽트 처리

RISC-V ISA 해부 준비 중 · 18편

RV32I/64I부터 특권 아키텍처까지 오픈 ISA 해부.

ISA 레벨 예외·인터럽트

Practical RTOS Internals 53/53 발행

RTOS를 쓰는 게 아니라 이해·구현 — 스케줄러·컨텍스트 스위치·할당자를 소스 수준으로.

ISR·컨텍스트 스위치

ARM GIC / MSI-X 전달 경로 예정

ARM 레인

→ systems/arm

5부. 부트 — 전원 ON에서 셸까지

ROM→Bootloader→Kernel→init→systemd→login. "왜 BIOS가, 왜 U-Boot가 필요한가."

Bootloader Internals 37/37 발행

ROM에서 init까지의 전체 흐름과 그 사이 부트로더의 자리(U-Boot·TF-A·PSCI·DT).

U-Boot·TF-A·PSCI·Device Tree

RISC-V 베어메탈 부트 준비 중 · 12편

OpenSBI에서 커널까지, RISC-V 베어메탈 부트 흐름.

OpenSBI 부트 흐름

리눅스 커널의 구조와 원리 준비 중 · 25편

task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.

커널 부트·init

BSP Development 21/21 발행

보드를 부팅 가능한 시스템으로 만드는 Board Support Package의 정의·범위·구성.

Device Tree·보드 초기화

6부. 프로세스 — CPU는 프로세스를 모른다

CPU는 PC·SP·Register만 안다. 커널이 task_struct·컨텍스트 스위치로 "프로세스"를 만든다.

Operating Systems: Three Easy Pieces 준비 중 · 28편

가상화·동시성·영속성 세 축으로 배우는 OS 설계 원리.

리눅스 커널의 구조와 원리 준비 중 · 25편

task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.

task_struct·fork/exec

APUE 준비 중 · 21편

POSIX 시스템 콜로 배우는 UNIX 시스템 프로그래밍 고전.

POSIX 프로세스 제어

7부. 가상 메모리 — MMU와 페이지 테이블

MMU·Page Table·TLB·CoW·Demand Paging·Huge Page. 세 고도로 겹쳐 읽기.

Operating Systems: Three Easy Pieces 준비 중 · 28편

가상화·동시성·영속성 세 축으로 배우는 OS 설계 원리.

페이징 설계 원리

Computer Systems: A Programmer's Perspective 준비 중 · 12편

하드웨어를 아는 C 프로그래머 관점의 bottom-up 시스템 입문.

주소 변환 기초

리눅스 커널의 구조와 원리 준비 중 · 25편

task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.

zone·buddy·slab·swap 구현

RISC-V ISA 해부 준비 중 · 18편

RV32I/64I부터 특권 아키텍처까지 오픈 ISA 해부.

Sv39/48·RVWMO

8부. 시스템콜 — 유저에서 하드웨어까지

printf/malloc/read/write/fork가 libc→syscall→커널→드라이버→하드웨어로 내려가는 경로.

APUE 준비 중 · 21편

POSIX 시스템 콜로 배우는 UNIX 시스템 프로그래밍 고전.

시스템콜 인터페이스

리눅스 커널의 구조와 원리 준비 중 · 25편

task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.

syscall 진입·VFS·io_uring

9부. 드라이버와 PCIe — Enumeration에서 DMA까지

PCIe Enumeration→BAR Mapping→DMA→Interrupt. UIO·VFIO·IOMMU가 왜 필요한가.

Linux Device Drivers (LDD3) 준비 중 · 19편

문자·블록·PCI 드라이버를 예제로 익히는 Linux 디바이스 드라이버 고전.

드라이버 뼈대

PCIe Deep Dive 19/19 발행

point-to-point 직렬 링크·3-Layer 모델·토폴로지, Gen1부터 7.0까지.

TLP·링크 트레이닝·enumeration

NVMe Deep Dive 준비 중 · 17편

AHCI와의 근본 차이에서 출발하는 NVMe 아키텍처 전체 구조.

큐 기반 스토리지 인터페이스

NPU 드라이버 개발 준비 중 · 12편

IOMMU·DMA-BUF·command queue로 가속기를 커널에 붙이는 드라이버 스택.

IOMMU·DMA-BUF·command queue

CXL 4.0 Internals 15/15 발행

CXL이 푸는 문제, 세대별 진화, 4.0의 핵심 변경(128 GT/s).

coherent interconnect

UCIe 심화 준비 중 · 12편

칩렛 시대의 PCIe — UCIe가 푸는 D2D 표준화 문제.

칩렛 인터커넥트

BoW 개요 준비 중 · 6편

Bunch of Wires — OCP ODSA의 royalty-free 저비용 D2D 칩렛 인터페이스.

10부. 스케줄러 — CFS·RT·IRQ

CFS·priority·RT·SoftIRQ·workqueue·bottom half. "여러 프로그램을 동시에 돌리려면?"

Operating Systems: Three Easy Pieces 준비 중 · 28편

가상화·동시성·영속성 세 축으로 배우는 OS 설계 원리.

스케줄링 정책

리눅스 커널의 구조와 원리 준비 중 · 25편

task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.

CFS/RT/Deadline 구현

Practical RTOS Internals 53/53 발행

RTOS를 쓰는 게 아니라 이해·구현 — 스케줄러·컨텍스트 스위치·할당자를 소스 수준으로.

실시간 스케줄링·우선순위 역전

11부. 파일 시스템 — inode에서 NVMe까지

VFS·inode·ext4·page cache·block I/O.

리눅스 커널의 구조와 원리 준비 중 · 25편

task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.

VFS·ext4·block I/O

Operating Systems: Three Easy Pieces 준비 중 · 28편

가상화·동시성·영속성 세 축으로 배우는 OS 설계 원리.

FS 설계·저널링

12부. 네트워크 — Ethernet에서 epoll까지

Ethernet→MAC→IP→TCP→Socket→epoll→Application.

APUE 준비 중 · 21편

POSIX 시스템 콜로 배우는 UNIX 시스템 프로그래밍 고전.

소켓 시스템 프로그래밍

Distributed Systems 준비 중 · 9편

Tanenbaum — 투명성·개방성·확장성으로 보는 분산 시스템의 정의와 목표.

통신·이름·일관성

Designing Data-Intensive Applications 준비 중 · 12편

Reliability·Scalability·Maintainability — 데이터 집약 시스템의 세 품질.

대규모 데이터 흐름

Ethernet→TCP→epoll 커널 네트워크 스택 예정

→ systems/networking

13부. 현대 컴퓨터 — FPGA·가속기·가상화

FPGA·CUDA·NPU·eBPF·io_uring·VFIO. 하나의 이야기가 AI 가속기에서 닫힌다.

The Zynq Book 준비 중 · 13편

PS+PL — ARM Cortex-A와 FPGA가 한 다이에 있다는 것의 의미.

FPGA/SoC — PS+PL

FPGA Driver via QEMU+VFIO 준비 중 · 14편

QEMU+VFIO로 FPGA 디바이스 드라이버를 bring-up.

VFIO로 FPGA bring-up

Driver-RTL Co-simulation 8/8 발행

RTL과 드라이버를 함께 돌려 검증하는 co-simulation.

RTL↔드라이버 공동 검증

NPU 아키텍처 준비 중 · 10편

왜 ML 워크로드가 또 다른 칩을 요구하는가 — 시스톨릭 어레이·데이터플로우.

시스톨릭 어레이·데이터플로우

NPU 드라이버 개발 준비 중 · 12편

IOMMU·DMA-BUF·command queue로 가속기를 커널에 붙이는 드라이버 스택.

ML 컴파일러 준비 중 · 12편

그래프에서 커널까지, ML 컴파일러가 모델을 하드웨어로 낮추는 과정.

가속기 코드젠

Apple Metal Stack 준비 중 · 10편

Apple GPU를 겨냥한 Metal — 셰이더·compute 커널·MPS 스택.

GPU compute 커널

TinyML·Edge AI 준비 중 · 12편

MCU·엣지에서 양자화된 모델을 돌리는 TinyML 실전.

MCU/엣지 추론

CUDA 메모리 계층·warp 실행·cuBLAS/cuDNN 예정

→ ml