Digital Logic & Processor Physics
트랜지스터 수준의 물리적 신호 처리부터 논리 게이트, 그리고 연산 장치의 아키텍처를 다루는 학습 노드입니다.
Article
M
Me
hyunyoun's Blog
computer-architecture-embedded-systemscomputer-architectureembedded-systemsdigital-logicprocessor-physicsarchitecture-hardwarelearningcpu-architecture9 min read
1. Overview
디지털 논리 및 프로세서 물리(Digital Logic & Processor Physics, DLP)는 추상적인 하이레벨 소프트웨어 코드가 전기적 펄스(Signal)와 트랜지스터의 물리적 개폐 상태로 변환되어 실질적인 연산을 수행하는 '0과 1의 하드웨어 세계'를 탐구하는 시스템 기저 학문입니다.
이 영역은 컴퓨터 아키텍처의 가장 근본적인 물리적/논리적 계층입니다. 수십억 개의 미세한 반도체 트랜지스터 스위칭이 어떻게 복잡한 불리언 논리식(Boolean Logic)을 형성하고, 나아가 덧셈과 곱셈을 수행하는 산술 논리 장치(ALU), 데이터를 유지하는 레지스터(Register), 그리고 이 모든 것을 지휘하는 중앙 제어 장치(Control Unit)로 거대하게 통합되는지를 추적합니다. 학습자는 단순히 고수준 언어 코딩에 머물지 않고, **명령어 집합 아키텍처(Instruction Set Architecture, ISA)**라는 '소프트웨어와 하드웨어 간의 불변 계약(Contract)'을 해독하며, 극한의 성능 최적화가 요구되는 고성능 서버 컴퓨팅 및 임베디드 기기 제어의 물리적 토대를 마련합니다.
2. Scope & Boundaries
In-Scope
- 디지털 데이터 체계 (Data Representation): 2의 보수(Two's Complement) 기반 정수 표현, 고정 소수점(Fixed-point)과 부동 소수점(IEEE 754)의 물리적 비트 레이아웃 분해.
- 조합 및 순차 논리 회로 (Logic Circuits): 가산기(Adder), 멀티플렉서(MUX), 데이터의 영속성을 보장하는 래치(Latch)와 플립플롭(Flip-Flop), 유한 상태 기계(FSM) 설계.
- 마이크로아키텍처 및 데이터패스 (Microarchitecture): 명령어의 Fetch-Decode-Execute 라이프사이클 물리적 경로, 제어 신호(Control Signal) 테이블, 싱글 사이클/멀티 사이클 아키텍처 구조.
- 파이프라이닝 및 ISA (Pipelining & ISA): 하드웨어 기능을 노출하는 ISA(RISC-V, ARM), 5-Stage 파이프라인 설계, 데이터/제어 해저드(Hazard) 완화(Forwarding, Branch Prediction).
Out-of-Scope
- 순수 반도체 소재 및 물리 화학: 실리콘 웨이퍼 에칭 공정, EUV 리소그래피 노광, MOSFET 트랜지스터의 전자/정공 이동도 분석 → 전자 및 신소재 공학 도메인으로 위임.
- 커널 레벨의 프로세스 추상화: 가상 메모리 매핑(Paging), 커널 선점(Preemption), 스레드 컨텍스트 스위칭 관리 → 03. Operating Systems & System Mechanics 노드로 위임.
- 고급 언어 컴파일 파이프라인: C/Rust 코드를 파싱하여 AST(추상 구문 트리)를 만들고 최적화하는 과정 → 05. Programming Languages & Compilers 영역으로 위임.
Boundaries
- DLP vs OS (03. Kernel): DLP는 한 개의 명령어가 데이터 버스를 타고 들어와 연산기를 거치고 결과를 레지스터에 기록하는 물리적인 '마이크로초 단위의 전기 신호 흐름(Datapath)'에 집중합니다. 반면 OS는 이 한정된 물리적 하드웨어 자원(CPU Core, RAM)을 시분할하여 수십 개의 소프트웨어 프로세스가 마치 독점하는 것처럼 '추상화하고 스케줄링'하는 거시적 통제에 초점을 둡니다.
3. Counterexample
- 맹목적인 어셈블리 문법 암기 (Syntax-only Memory): x86이나 ARM의 어셈블리 니모닉(Mnemonic) 문법을 외워 코드만 짤 줄 아는 것은 본질적인 하드웨어 설계 지식이 아닙니다. 특정 어셈블리 명령어(예:
ADD R1, R2, R3)가 디코딩될 때, 어떤 핀의 제어선(Control Line) 전압이 HIGH가 되어 멀티플렉서의 경로를 열고 ALU 연산 모드를 덧셈으로 변경하는지, 그 물리적인 데이터패스 흐름(Wire)을 도면 위에 그리고 설명할 수 있어야 합니다. - 소프트웨어 관점의 지연율(Latency) 착각: 소스 코드 상에서 명령어 1줄이 항상 1클록(Clock Cycle)에 실행될 것이라 가정하는 것은 안티패턴입니다. L1 캐시 미스나 파이프라인 분기 예측 실패(Branch Misprediction) 시 발생하는 파이프라인 플러시(Flush) 패널티로 인해 수십 사이클이 낭비될 수 있음을 하드웨어 구조적 관점에서 인지해야 합니다.
4. Prerequisites
- 컴퓨터 과학 기본 수리력 (Basic): 2진수/16진수 연산, 비트 마스킹(Bit Masking), 시프트(Shift) 연산에 대한 수학적 및 프로그래밍적 직관력. (ROOT)
- 명제 논리 (Recommended): AND, OR, NOT, XOR 논리 결합과 부울 대수를 최적화할 수 있는 이산 논리적 사고 방식. (01-02. LFV)
5. Learning Map
6. Learning Topics
Basic
Core Topic 01: 디지털 논리 게이트와 이진 데이터 표현 (Logic Gates & Binary Rep.)
- Why to Learn: 프로그램의 모든 변수(Int, Float, Pointer)가 하드웨어 메모리와 레지스터에서 '전압의 On/Off(1과 0) 상태'로 어떻게 물리적으로 사상(Mapping)되는지 깨닫기 위함입니다.
- What to Learn:
- Concepts: 트랜지스터 스위칭, 기본 논리 게이트(AND/OR/NOT/NAND), 부울 대수(Boolean Algebra), 2의 보수법(Two's Complement).
- Skills: 부동 소수점(IEEE 754)의 물리적 비트 분해(Sign, Exponent, Mantissa), 카르노 맵(Karnaugh Map)을 이용한 회로 비용 최적화.
- Tools: Logisim (디지털 논리 시뮬레이터), 진리표 매트릭스.
- Trade-offs: 부동소수점 비트 할당 시, 유효숫자 정밀도(Precision, Mantissa 비트) 확장 vs 표현 가능한 값의 범위(Range, Exponent 비트) 확보 간의 제로섬 트레이드오프.
- How to Learn:
- 1단계: 2진수 덧셈에서 오버플로우(Overflow)가 발생하는 비트 패턴의 조건을 2의 보수 체계 관점에서 증명하고 하드웨어 플래그(Flag)로 도출해 봅니다.
- 2단계: IEEE 754 Single Precision 형식으로 0.1과 0.2를 더할 때 왜 무한 소수로 전개되며 멘티사 비트가 소실(Truncate)되어 미세 오차가 생기는지 원리를 뜯어봅니다.
- Implement: 파이썬으로 특정 실수(예:
-12.625)를 입력받으면, IEEE 754 표준 32비트 이진 문자열(1_10000010_1001010000...)로 정확하게 변환해 내는 하위 레벨 비트 연산기(Bit Manipulator) 구현.
Recommended
Core Topic 02: 조합 및 순차 논리 회로 설계 (Combinational & Sequential Logic)
- Why to Learn: CPU 코어 내에서 상태 없이 즉각적인 계산만 하는 유닛(ALU)과, 데이터를 영구/임시로 기억하며 흐름을 제어하는 유닛(Register)의 설계 원리를 구별하기 위해서입니다.
- What to Learn:
- Concepts: 조합 회로(디코더, 멀티플렉서/MUX, 반가산기, 전가산기), 순차 회로(래치, 플립플롭 D/T/JK), 클록(Clock), 유한 상태 기계(FSM).
- Skills: 클록 엣지(Edge-triggered) 동기화 시스템 타이밍 다이어그램 분석, Moore 및 Mealy 모델에 기반한 하드웨어 컨트롤러 상태 전이도 설계.
- Tools: 하드웨어 기술 언어 기초(Verilog/VHDL 개념적 접근).
- Trade-offs: 비동기식 회로의 극한의 빠른 응답 속도 vs 동기식(클록 기반) 회로의 노이즈 억제 및 안정적 설계 파이프라인 보장 간의 선택.
- How to Learn:
- 1단계: 전가산기(Full Adder) 32개를 직렬로 연결한 리플 캐리 가산기(Ripple Carry Adder)에서, 최하위 비트의 캐리가 최상위까지 도달하는 전파 지연(Propagation Delay) 병목을 시뮬레이터로 측정합니다.
- 2단계: 신호등 제어기나 자판기의 로직을 클록에 맞춰 상태가 전이되는 FSM(Finite State Machine) 회로망으로 설계해 봅니다.
- Implement: 현재의 입력 신호(Input)와 플립플롭에 저장된 현재 상태(State) 비트를 결합하여 다음 상태를 결정하고 출력하는, 객체 지향 기반의 소프트웨어 FSM 시뮬레이션 클래스 작성.
Practical
Core Topic 03: ISA 인터페이스와 데이터패스 물리 제어 (ISA & Datapath Control)
- Why to Learn: 컴파일된 어셈블리 명령어가 CPU에 진입했을 때, 명령어를 해독(Decode)하여 내부 부품들의 스위치를 조작하는 두뇌(Control Unit)의 역할을 이해하기 위함입니다.
- What to Learn:
- Concepts: 명령어 집합 아키텍처 명세, Opcode와 피연산자(Operand) 포맷, 레지스터 파일(Register File), ALU 라우팅, RISC vs CISC 아키텍처 철학.
- Skills: 특정 명령어(예:
ADD,LOAD,BRANCH)의 Fetch-Decode-Execute 라이프사이클 추적, 멀티플렉서 제어 신호표(Control Signal Table) 맵핑. - Tools: RISC-V Instruction Simulator (예: RARS, Venus).
- Trade-offs: 명령어 길이를 고정하여 하드웨어 디코더를 극도로 단순/가속화하는 RISC 구조 vs 복잡 가변 길이 명령어를 써서 메모리 대역폭 점유율(코드 밀집도)을 극대화하는 x86 CISC 구조.
- How to Learn:
- 1단계: RISC-V 프로세서 블록도 위에
LW (Load Word)명령어가 들어왔을 때, 프로그램 카운터(PC)부터 레지스터 파일을 거쳐 데이터 메모리(SRAM)로 가는 와이어(Wire) 활성화 경로를 형광펜으로 그려봅니다. - 2단계: 산술 명령어(
ADD)와 분기 명령어(BEQ)가 각각 ALU 연산기, 레지스터 쓰기 제어핀(RegWrite), 메모리 읽기 핀(MemRead)에 어떤 전압 배정(1/0)을 주는지 테이블로 비교합니다.
- 1단계: RISC-V 프로세서 블록도 위에
- Implement: 32비트 16진수 기계어 코드(Hex) 묶음을 입력받아 비트 마스킹으로 Opcode와 레지스터 번호를 파싱하고, 이를 사람이 읽을 수 있는 어셈블리 문자열로 출력해 내는 미니 역어셈블러(Disassembler) 개발.
Advanced
Core Topic 04: 파이프라이닝 및 유닛 병렬 최적화 (Pipelining & ILP)
- Why to Learn: 현대 클라우드 서버의 멀티 기가헤르츠(GHz) CPU가 한 번에 한 개씩 명령을 처리하지 않고, 공장 컨베이어 벨트처럼 수백 개의 명령어를 겹쳐서 실행(Instruction Level Parallelism)하는 물리적 마법을 통제하기 위함입니다.
- What to Learn:
- Concepts: 5단계 기본 파이프라인(IF-ID-EX-MEM-WB), 구조적(Structural)/데이터(Data)/제어(Control) 해저드(Hazard).
- Skills: 포워딩(Data Forwarding/Bypassing) 회로를 추가하여 데이터 파이프라인 스톨(Stall/Bubble) 없애기, 분기 예측(Branch Prediction) 및 브랜치 타겟 버퍼(BTB) 최적화.
- Tools: 고급 CPU 아키텍처 시뮬레이터 시각화 툴.
- Trade-offs: 파이프라인을 20단계 이상 잘게 쪼개어(Superpipelining) 칩의 클록(Clock) 주파수를 극대화하는 속도 이득 vs 분기 예측에 실패했을 때 파이프라인을 전부 비우면서 발생하는 막대한 지연 패널티.
- How to Learn:
- 1단계: RAW(Read-After-Write) 데이터 의존성이 있는 어셈블리 코드 세트를 작성하고, 만약 포워딩 회로가 없다면 NOP(No-Op) 버블이 몇 사이클이나 삽입되어야 하는지 타이밍 다이어그램(Timing Diagram)을 그립니다.
- 2단계: CPU의 분기 예측기를 속이기 위해 예측하기 힘든 패턴(
if (random % 2))의 반복문 코드를 짜보고, 런타임 성능 저하를perf같은 프로파일링 도구로 관측해 봅니다.
- Implement: 5-Stage 파이프라인 상태 배열을 모사하여, 명령어 시퀀스 입력 시 데이터 의존성(Register ID 충돌)을 검사하고 파이프라인에 발생할 Stall 사이클 횟수를 산출(Detect)하는 시뮬레이터 모듈.
7. Terminology
8. References
Primary References
- [P1] CS2023 - AR/Digital Logic — Fundamental logic and circuit principles.
- [P2] SWEBOK - Computing Foundations — Hardware basics for SE.
Secondary References
- [Computer Organization and Design] Patterson & Hennessy (RISC-V Edition) — Standard architecture text.
- [Digital Design and Computer Architecture] Harris & Harris — Links digital logic with architecture.
Industry References
- [ARM Architecture Reference Manual] — Real-world ISA implementation documentation.
- [IBM Knowledge Center] CPU Architecture Basics — Enterprise computing perspectives.
9. Final Checklist
Primary Checklist
- 트랜지스터 스위칭으로부터 논리 게이트 및 ALU가 형성되는 물리적 계층을 설명 가능한가? (P1)
- 특정 ISA의 명령어가 실행될 때 제어 신호가 아키텍처 내에서 어떻게 전파되는지 이해하는가? (P1)
Secondary Checklist
- 파이프라인 해저드의 원인을 식별하고 하드웨어적 해결책(Forwarding 등)을 제안할 수 있는가?
- 동기식 회로에서 클록 주기가 하드웨어 지연(Latency)에 의해 결정되는 원리를 아는가?
Industry Checklist
- 특정 타겟 하드웨어의 데이터시트를 읽고 사용 가능한 명령어와 레지스터 구조를 코드로 매핑 가능한가? (SFIA)
- 수치 연산 시 부동 소수점 오차 및 오버플로 발생 지점을 하드웨어 사양 기반으로 예측 가능한가?