콘텐츠로 바로가기

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

  1. Digital Logic: 논리 게이트에서 파이프라인 프로세서까지의 연산 물리 엔진을 구축합니다. (P1)
  2. Memory Hierarchy: CPU와 RAM 사이의 속도 격차를 다단계 캐시와 예측 기법으로 격파합니다. (P1)
  3. Parallel Mechanics: 멀티코어와 SIMD 가속기를 통한 하드웨어 병렬 처리의 물리적 한계를 탐구합니다. (P1)
  4. Hardware Security: 부채널 공격 방어 및 신뢰 실행 환경(TEE)의 아키텍처적 무결성을 증명합니다. (P1, Security)
  5. HW-SW Interface: 장치 드라이버와 MMIO를 통해 커널과 하드웨어가 통신하는 물리 접점을 이해합니다. (P1)
  6. Real-Time Physics: 마이크로초 단위의 결정론적 반응성을 보장하는 실시간 제어 스케줄링을 익힙니다. (P1)
  7. Edge Intelligence: 제한된 자원의 IoT 기기에서 지능형 연산을 수행하는 엣지 컴퓨팅을 구현합니다. (P1)
  8. 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: 특정 시퀀스 검출기 설계도 및 게이트 수준 회로도.

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

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Instruction Set Architecture (ISA) 하드웨어가 이해하는 유일한 언어이자 소프트웨어와 하드웨어 사이의 추상적 계약입니다. 기본 인터페이스 Microarchitecture x86 vs. ARM 특정 칩 모델(SoC) 자체와 혼동 Primary core
Pipeline Hazard, 파이프라인 해저드 이전 명령어의 실행이 완료되지 않아 다음 명령어가 실행되지 못하는 지연 상황입니다. 권장 성능 병목 Stall, Forwarding vs. Branch Misprediction 단순한 논리 버그와 혼동 Primary core
Memory Mapped I/O (MMIO) 하드웨어 장치의 레지스터를 일반 메모리 주소 공간에 매핑하여 접근하는 방식입니다. 실무 HW 제어 Peripheral vs. Port-Mapped I/O 일반 RAM 영역으로 오인하여 캐싱 활성화 Primary core
Cache Coherence, 캐시 일관성 다중 프로세서 환경에서 동일 데이터에 대한 여러 캐시 복사본들 간의 일치성을 보장하는 성질입니다. 심화 데이터 무결성 MESI Protocol vs. Consistency Model OS 수준의 뮤텍스 동기화와 동일시 함 Primary core

8. References

Primary References

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)의 원리를 이해하고 안전한 메모리 접근 패턴을 고안했는가?