컴퓨터는 어떻게 동작하는가
전기 → 논리 → CPU → 캐시 → 메모리 → 인터럽트 → 커널 → 드라이버 → PCIe → FPGA → AI 가속기를 하나의 이야기로.
보통 책은 "CPU까지" 또는 "리눅스까지"에서 멈춘다. 이 경로는 트랜지스터에서 시작해 AI 가속기까지, 같은 주제를 여러 시리즈의 서로 다른 고도(프로그래머 관점 → 설계 원리 → 실제 구현)로 이어서 읽게 배치했다. 각 단계마다 "내가 이 기능을 설계한다면?"을 함께 물으면 암기가 아니라 원리가 남는다.
0부. 논리 기초 — 전기에서 CPU까지
릴레이·논리 게이트·플립플롭에서 아주 작은 CPU가 만들어지기까지, 첫 원리부터.
릴레이·논리 게이트에서 CPU까지, 첫 원리로 쌓는 컴퓨터.
1–2부. CPU와 ISA — 명령어는 어떻게 실행되나
ISA라는 계약 위에서 fetch·decode·execute, 파이프라인·해저드·분기예측이 어떻게 돌아가는지.
하드웨어를 아는 C 프로그래머 관점의 bottom-up 시스템 입문.
프로그래머 관점 bottom-up
RV32I/64I부터 특권 아키텍처까지 오픈 ISA 해부.
오픈 ISA로 보는 명령어 인코딩·특권 모드
왜 느린가 — cache miss·pipeline stall·bus contention부터 프로파일링까지 임베디드 성능 분석.
파이프라인·IPC·분기예측 실측
AArch64 실행 모델·예외 레벨·메모리 모델 스펙 리뷰.
ARM 레인 — AArch64 ISA
3부. 캐시와 메모리 계층 — 왜 느려지고, 왜 캐시가 있나
Register→L1→L2→L3→DRAM의 지연 사다리, 그리고 멀티코어에서의 일관성.
하드웨어를 아는 C 프로그래머 관점의 bottom-up 시스템 입문.
캐시 친화적 코드
Consistency vs Coherence — 두 개념의 출발점과 차이.
멀티코어 MESI·메모리 모델
메모리 셀부터 Bank·Row·Column·Rank까지 DDR의 물리적 계층 구조.
HBM과 GDDR의 분기점 — bandwidth·capacity·cost 트레이드오프.
가속기 대역폭 벽
왜 느린가 — cache miss·pipeline stall·bus contention부터 프로파일링까지 임베디드 성능 분석.
캐시·대역폭 프로파일링
→ systems/architecture
4부. 인터럽트 — 하드웨어가 CPU를 가로채는 법
CPU→Interrupt→ISR→Scheduler→Task wakeup. 그리고 ARM GIC·MSI-X까지 연결.
가상화·동시성·영속성 세 축으로 배우는 OS 설계 원리.
설계 원리
task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.
softirq·tasklet·workqueue 실제 구현
문자·블록·PCI 드라이버를 예제로 익히는 Linux 디바이스 드라이버 고전.
드라이버 관점 인터럽트 처리
RV32I/64I부터 특권 아키텍처까지 오픈 ISA 해부.
ISA 레벨 예외·인터럽트
RTOS를 쓰는 게 아니라 이해·구현 — 스케줄러·컨텍스트 스위치·할당자를 소스 수준으로.
ISR·컨텍스트 스위치
ARM 레인
→ systems/arm
5부. 부트 — 전원 ON에서 셸까지
ROM→Bootloader→Kernel→init→systemd→login. "왜 BIOS가, 왜 U-Boot가 필요한가."
ROM에서 init까지의 전체 흐름과 그 사이 부트로더의 자리(U-Boot·TF-A·PSCI·DT).
U-Boot·TF-A·PSCI·Device Tree
OpenSBI에서 커널까지, RISC-V 베어메탈 부트 흐름.
OpenSBI 부트 흐름
task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.
커널 부트·init
보드를 부팅 가능한 시스템으로 만드는 Board Support Package의 정의·범위·구성.
Device Tree·보드 초기화
6부. 프로세스 — CPU는 프로세스를 모른다
CPU는 PC·SP·Register만 안다. 커널이 task_struct·컨텍스트 스위치로 "프로세스"를 만든다.
가상화·동시성·영속성 세 축으로 배우는 OS 설계 원리.
task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.
task_struct·fork/exec
POSIX 시스템 콜로 배우는 UNIX 시스템 프로그래밍 고전.
POSIX 프로세스 제어
7부. 가상 메모리 — MMU와 페이지 테이블
MMU·Page Table·TLB·CoW·Demand Paging·Huge Page. 세 고도로 겹쳐 읽기.
가상화·동시성·영속성 세 축으로 배우는 OS 설계 원리.
페이징 설계 원리
하드웨어를 아는 C 프로그래머 관점의 bottom-up 시스템 입문.
주소 변환 기초
task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.
zone·buddy·slab·swap 구현
RV32I/64I부터 특권 아키텍처까지 오픈 ISA 해부.
Sv39/48·RVWMO
8부. 시스템콜 — 유저에서 하드웨어까지
printf/malloc/read/write/fork가 libc→syscall→커널→드라이버→하드웨어로 내려가는 경로.
POSIX 시스템 콜로 배우는 UNIX 시스템 프로그래밍 고전.
시스템콜 인터페이스
task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.
syscall 진입·VFS·io_uring
9부. 드라이버와 PCIe — Enumeration에서 DMA까지
PCIe Enumeration→BAR Mapping→DMA→Interrupt. UIO·VFIO·IOMMU가 왜 필요한가.
문자·블록·PCI 드라이버를 예제로 익히는 Linux 디바이스 드라이버 고전.
드라이버 뼈대
point-to-point 직렬 링크·3-Layer 모델·토폴로지, Gen1부터 7.0까지.
TLP·링크 트레이닝·enumeration
AHCI와의 근본 차이에서 출발하는 NVMe 아키텍처 전체 구조.
큐 기반 스토리지 인터페이스
IOMMU·DMA-BUF·command queue로 가속기를 커널에 붙이는 드라이버 스택.
IOMMU·DMA-BUF·command queue
CXL이 푸는 문제, 세대별 진화, 4.0의 핵심 변경(128 GT/s).
coherent interconnect
칩렛 시대의 PCIe — UCIe가 푸는 D2D 표준화 문제.
칩렛 인터커넥트
Bunch of Wires — OCP ODSA의 royalty-free 저비용 D2D 칩렛 인터페이스.
10부. 스케줄러 — CFS·RT·IRQ
CFS·priority·RT·SoftIRQ·workqueue·bottom half. "여러 프로그램을 동시에 돌리려면?"
가상화·동시성·영속성 세 축으로 배우는 OS 설계 원리.
스케줄링 정책
task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.
CFS/RT/Deadline 구현
RTOS를 쓰는 게 아니라 이해·구현 — 스케줄러·컨텍스트 스위치·할당자를 소스 수준으로.
실시간 스케줄링·우선순위 역전
11부. 파일 시스템 — inode에서 NVMe까지
VFS·inode·ext4·page cache·block I/O.
task_struct·CFS·buddy 등 Linux 커널 실제 구현 소스 리딩.
VFS·ext4·block I/O
가상화·동시성·영속성 세 축으로 배우는 OS 설계 원리.
FS 설계·저널링
12부. 네트워크 — Ethernet에서 epoll까지
Ethernet→MAC→IP→TCP→Socket→epoll→Application.
POSIX 시스템 콜로 배우는 UNIX 시스템 프로그래밍 고전.
소켓 시스템 프로그래밍
Tanenbaum — 투명성·개방성·확장성으로 보는 분산 시스템의 정의와 목표.
통신·이름·일관성
Reliability·Scalability·Maintainability — 데이터 집약 시스템의 세 품질.
대규모 데이터 흐름
→ systems/networking
13부. 현대 컴퓨터 — FPGA·가속기·가상화
FPGA·CUDA·NPU·eBPF·io_uring·VFIO. 하나의 이야기가 AI 가속기에서 닫힌다.
PS+PL — ARM Cortex-A와 FPGA가 한 다이에 있다는 것의 의미.
FPGA/SoC — PS+PL
QEMU+VFIO로 FPGA 디바이스 드라이버를 bring-up.
VFIO로 FPGA bring-up
RTL과 드라이버를 함께 돌려 검증하는 co-simulation.
RTL↔드라이버 공동 검증
왜 ML 워크로드가 또 다른 칩을 요구하는가 — 시스톨릭 어레이·데이터플로우.
시스톨릭 어레이·데이터플로우
IOMMU·DMA-BUF·command queue로 가속기를 커널에 붙이는 드라이버 스택.
그래프에서 커널까지, ML 컴파일러가 모델을 하드웨어로 낮추는 과정.
가속기 코드젠
Apple GPU를 겨냥한 Metal — 셰이더·compute 커널·MPS 스택.
GPU compute 커널
MCU·엣지에서 양자화된 모델을 돌리는 TinyML 실전.
MCU/엣지 추론
→ ml