Computer Architecture & Embedded Systems
디지털 논리, 프로세서 마이크로아키텍처, 병렬 처리 및 실시간 임베디드 제어를 다루는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts7 min read
1. Overview
컴퓨터 구조와 임베디드 시스템(Computer Architecture & Embedded Systems, CAES)은 하드웨어와 소프트웨어의 교차 지점에서 시스템의 물리적 실행 효율성을 극대화하는 원리를 다룹니다. 본 카테고리는 단순한 부품 조합을 넘어, 프로세서의 명령어 실행 메커니즘, 메모리 계층의 병목 해결, 그리고 제한된 자원 환경에서의 실시간 제어 성능을 보장하는 엔지니어링 설계를 탐구합니다.
CS2023의 Architecture and Organization (AR) 및 Computer Engineering (CE) 영역을 근간으로 삼아, 현대 컴퓨팅 인프라의 성능적 토대와 IoT/임베디드 기기의 하드웨어 중심 소프트웨어 설계를 체계적으로 다룹니다.
2. Scope & Boundaries
In-Scope
- 프로세서 아키텍처(Processor Design): 명령어 집합 아키텍처(ISA), 파이프라이닝, 분기 예측, 비순차 실행 등 연산 엔진의 내부 설계.
- 메모리 계층 구조(Memory Hierarchy): 캐시 설계, 가상 메모리 관리(MMU), 메모리 일관성 프로토콜.
- 임베디드 제어(Embedded Systems): RTOS(실시간 운영체제), 인터럽트 처리 기전, 하드웨어 추상화 계층(HAL), 전용 통신 프로토콜(I2C, SPI).
- 병렬 아키텍처(Parallelism): 멀티코어 시스템, SIMD 가속기, GPU 아키텍처 기초 및 벡터 프로세싱.
Out-of-Scope
- 범용 커널 알고리즘: 운영체제의 고수준 프로세스 스케줄링 및 파일 시스템 추상화 (03. OS&SM 노드로 위임).
- 순수 반도체 물리: VLSI 공정 설계 및 소자 물리학적 특성 탐구.
- 상위 응용 프레임워크: React, Django와 같은 하드웨어와 격리된 고수준 애플리케이션 개발 로직.
Boundaries
- CAES는 물리적 제약 공간(Power, Time, Area) 내에서의 **'최적 하드웨어 구동'**에 집중하며, 운영체제(OS)는 이 물리 자원을 응용 프로그램에 공정하게 **'추상화 및 배분'**하는 데 집중합니다.
3. Counterexample
- 단순 C 언어 문법 학습: 임베디드 핵심은 언어 문법이 아니라 **메모리 맵 I/O(MMIO)**의 주소와 인터럽트 레이턴시를 수치적으로 통제하는 것입니다.
- 쓰레드 생성이 곧 병렬성: 멀티코어 하드웨어에서 **캐시 무효화(Invalidation)**와 메모리 배리어에 대한 이해 없이 쓰레드만 만드는 것은 하드웨어 경쟁 상태(Race Condition)를 무시한 위험한 접근입니다.
4. Prerequisites
- 디지털 논리 및 컴퓨팅 기초 (Basic): 게이트, 플립플롭, 이진 산술 연산에 대한 이해가 필수적입니다. (P1-AR)
- C/C++ 인터널 (Recommended): 포인터 작업과 메모리 레이아웃(Code/Data/Stack/Heap)에 대한 명확한 인지 능력이 요구됩니다. (P2)
- 수학 및 복잡도 기초 (Practical): 알고리즘의 실행 시간 분석 및 논리적 추론 역량이 필요합니다.
5. Learning Map
- Digital Logic: 논리 게이트에서 파이프라인 프로세서까지의 연산 물리 엔진을 구축합니다. (P1
) - Memory Hierarchy: CPU와 RAM 사이의 속도 격차를 다단계 캐시와 예측 기법으로 격파합니다. (P1
) - Parallel Mechanics: 멀티코어와 SIMD 가속기를 통한 하드웨어 병렬 처리의 물리적 한계를 탐구합니다. (P1
) - Hardware Security: 부채널 공격 방어 및 신뢰 실행 환경(TEE)의 아키텍처적 무결성을 증명합니다. (P1
, Security) - HW-SW Interface: 장치 드라이버와 MMIO를 통해 커널과 하드웨어가 통신하는 물리 접점을 이해합니다. (P1
) - Real-Time Physics: 마이크로초 단위의 결정론적 반응성을 보장하는 실시간 제어 스케줄링을 익힙니다. (P1
) - Edge Intelligence: 제한된 자원의 IoT 기기에서 지능형 연산을 수행하는 엣지 컴퓨팅을 구현합니다. (P1
) - Robotic Mechanics: 센서-액추에이터 피드백 루프를 통한 자율 제어 시스템의 물리적 모델을 완성합니다. (P1
)
6. Learning Topics
Basic
Core Topic 01: 디지털 논리와 상태 머신 설계 (Digital Logic & FSM)
- Why to Learn: 디지털 장치의 모든 동작은 명확히 정의된 상태의 변화(Transition)로 규정되며, 이를 제어하기 위한 수리적/물리적 최소 단위이기 때문입니다.
- What to Learn:
- Concepts: 논리 게이트(NAND/NOR complete), 플립플롭(SR/D/JK), 클럭 동기화, 유한 상태 기계(FSM: Moore & Mealy).
- Skills: 부울 대수 최적화(K-maps), 진리표 기반 회로 합성, 타이밍 다이어그램 분석.
- Tools: Logisim-evolution, HDL 기초(Verilog/VHDL) 개념.
- Trade-offs: 게이트 지연(Latency)과 면적(Area) 사이의 설계 타협.
- How to Learn:
- 1단계: 간단한 4-bit 카운터나 인코더를 시뮬레이터 상에서 설계하고 동작을 검증합니다.
- 2단계: 신호등 제어 로직과 같은 현실 문제를 FSM 상태 전이도로 변환합니다.
- Implement: 특정 시퀀스 검출기 설계도 및 게이트 수준 회로도.
Recommended
Core Topic 02: 명령어 파이프라인과 해저드 관리 (Instruction Pipeline & Hazards)
- Why to Learn: 명령어 실행 과정을 세분화하고 병렬화함으로써 프로세서의 처리량(Throughput)을 비약적으로 높이는 현대 아키텍처의 정수입니다.
- What to Learn:
- Concepts: 표준 5단계 파이프라인(IF-ID-EX-MEM-WB), 데이터 해저드(RAW/WAR/WAW), 제어 해저드(Branch), 구조적 해저드.
- Skills: 파이프라인 스톨(Stall) 최소화 기법, 바이패싱/포워딩(Forwarding) 로직 설계.
- Tools: RISC-V/MIPS 프로세서 시뮬레이터.
- Trade-offs: 파이프라인 단계의 깊이 증대와 클럭 속도 향상 vs 회로 복잡도 증가.
- How to Learn:
- 1단계: 어셈블리 명령어가 파이프라인 단계별로 어떻게 점유되는지 시공간 차트(Pipeline Diagram)로 그립니다.
- 2단계: 데이터 의존성이 있는 코드에서 스톨을 제거하기 위해 명령어를 재배치하는 연습을 합니다.
- Implement: 파이프라인 스톨 유발 사례 분석 보고서 및 최적화된 어셈블리 실행 로그.
Practical
Core Topic 03: 하드웨어 연동과 DMA 제어 (Hardware Interfacing & DMA)
- Why to Learn: CPU의 개입 없이 대량의 데이터를 수신하거나 하드웨어를 직접 제어함으로써 전체 시스템의 결정론적 반응성(Determinism)을 확보하기 위함입니다.
- What to Learn:
- Concepts: 메모리 맵 I/O(MMIO), 인터럽트 벡터 테이블(IVT), Direct Memory Access(DMA) 메커니즘, HAL 드라이버 구조.
- Skills: 인터럽트 우선순위 설계, 실시간 지연 시간(Latency) 측정 및 관리.
- Tools: STM32, Arduino(AVR/ARM), Saleae Logic Analyzer.
- Trade-offs: 폴링 방식의 단순성 vs 인터럽트 방식의 효율성 vs DMA의 고속 처리량.
- How to Learn:
- 1단계: MCU 보드에서 인터럽트를 이용해 버튼 입력을 비동기적으로 처리합니다.
- 2단계: DMA를 사용하여 UART 또는 SPI 버스를 통해 CPU 대기 없이 센서 데이터를 대량으로 수집합니다.
- Implement: 가중치가 부여된 인터럽트 핸들러 및 DMA 기반 고속 데이터 전송 드라이버 코드.
Advanced
Core Topic 04: 멀티코어 캐시 일관성과 동기화 (Cache Cohesion & Synchronization)
- Why to Learn: 현대의 모든 고성능 시스템은 멀티코어 구조이며, 코어 간 공유 데이터의 무결성을 깨뜨리는 하드웨어 수준의 버그를 방지하고 극한의 병렬 성능을 뽑아내기 위함입니다.
- What to Learn:
- Concepts: 캐시 일관성 프로토콜(MESI), 메모리 배리어(Memory Barriers), 거짓 공유(False Sharing) 문제, 캐시 라인 정렬.
- Skills: 캐시 미스(L1/L2/L3) 프로파일링, 하드웨어 아토믹 연산 활용.
- Tools: Intel VTune, Valgrind(Cachegrind), Perf.
- Trade-offs: 강한 일관성(Strong Consistency) 유지 비용 vs 지연 시간 최적화.
- How to Learn:
- 1단계: 코어 간 캐시 바운싱(Bouncing)이 성능에 미치는 영향을 벤치마킹 도구로 관찰합니다.
- 2단계: 메모리 장벽(Fence)을 사용하여 명령어 재배치(Reordering) 현상을 억제하고 데이터 무결성을 증명합니다.
- Implement: 캐시 라인 패딩(Padding)을 통한 False Sharing 제거 최적화 샘플 코드 및 벤치마크 결과.
7. Terminology
8. References
Primary References
- [P1] CS2023: AR — Processor Microarchitecture and System Organization.
- [P1] CS2023: CE — Computer Engineering Knowledge Areas.
- [P2] SWEBOK v4: Computing Foundations.
Secondary References
- [H&P] Computer Architecture: A Quantitative Approach — Hennessy & Patterson (The Bible).
- [Nand2Tetris] The Elements of Computing Systems — Noam Nisan, Shimon Schocken.
Industry References
- [ARM Developer] Cortex-M Technical Reference Manual — 임베디드 실무 표준 가이드.
- [Intel 64 Architectures Software Developer’s Manual] — x86 최적화 및 보안 아키텍처 상세.
9. Final Checklist
Primary Checklist
- 특정 ISA의 명령어 실행 과정을 단계별(Fetch-Decode-Execute)로 상세히 설명할 수 있는 있는가? (P1-AR)
- 캐시 미스(Cache Miss)가 발생하는 원인을 식별하고 이를 소프트웨어 데이터 구조 최적화로 완화할 수 있는가? (P1-AR-MH)
Secondary Checklist
- 어셈블리 수준의 정적 분석을 통해 파이프라인 스톨(Stall) 유발 요인을 정의하고 재배치 전략을 제시할 수 있는는가?
- 실시간 제어 루프의 최악 사례 실행 시간(WCET)을 측정하고 시스템 제약 조건을 수치적으로 검증했는가?
Industry Checklist
- DMA 설정을 통해 대량의 I/O 처리 시 CPU 부하를 30% 이상 절감하는 최적화 시나리오를 설계했는가?
- 하드웨어 부채널 공격(Side-channel attacks: Spectre/Meltdown)의 원리를 이해하고 안전한 메모리 접근 패턴을 고안했는가?