콘텐츠로 바로가기

Interrupt Latency & Jitter Physics

하드웨어 이벤트에 대한 시스템의 반응 속도를 결정짓는 인터럽트 지연 시간의 물리적 구성 요소와 그 불확실성(Jitter)을 분석하고 제어하는 학습 노드입니다.

sys.entry
M

Me

hyunyoun's Blog

posts7 min read

1. Overview

인터럽트 지연 및 지터 물리(Interrupt Latency & Jitter Physics, ILJ)는 "긴급한 호출이 왔을 때 시스템이 얼마나 빨리, 그리고 얼마나 규칙적으로 하던 일을 멈추고 대응할 수 있는가"에 대한 하드웨어 응답성 과학입니다.

자율주행차의 장애물 감지나 고속 통신 제어에서 지연 시간은 생명과 직결됩니다. 학습자는 하드웨어 핀에 전기 신호가 들어온 후 첫 번째 인터럽트 서비스 루틴(ISR) 명령이 실행되기까지의 지연 시간(Latency) 구성을 배웁니다. 또한, 매번 지연 시간이 미세하게 달라지는 지터(Jitter) 현상의 원인인 캐시 미스, 명령어 파이프라인 정지 등의 물리적 불확실성을 익힙니다. 이를 통해 '평균적인 속도'가 아닌 '최악의 경우(Worst-case)'에도 응답 속도를 보장해야 하는 결정론적(Deterministic) 하드웨어 설계 능력을 갖춥니다.

2. Scope & Boundaries

In-Scope

  • Interrupt Path Physics: 하드웨어 트리거 -> 인터럽트 컨트롤러(NVIC/GIC) -> CPU 코어 전파 물리
  • Latency Components: 하드웨어 전파 지연, 파이프라인 플러시, 레지스터 저장(Stacking) 비용
  • Jitter Factors: 명령어 원자성(Atomicity), 캐시 상태, 다중 인터럽트 경합 물리
  • Vectoring Mechanics: 인터럽트 벡터 테이블 참조 및 분기 지연 분석

Out-of-Scope

  • 운영체제의 스케줄링 알고리즘 (06-01-01 RTOS 영역으로 위임)
  • 인터럽트 처리 소프트웨어(ISR) 내부의 로직 최적화

Boundaries

  • ILJ vs. Response Time: 응답 시간이 '전체 작업 완료 시간'을 뜻한다면, ILJ는 하드웨어가 '작업에 착수하기까지의 순수 물리 시간'에 집중합니다.

3. Counterexample

  • 단순히 "인터럽트가 빠르면 좋다"는 인식은 ILJ 학습이 아닙니다. 왜 인터럽트 발생 시 CPU가 레지스터를 스택에 넣는(Context Saving) 하드웨어 시퀀스가 지연 시간의 핵심인지 수리적으로 설명할 수 있어야 하며, 소프트웨어가 cli/sti 명령으로 인터럽트를 잠시 끄는 것이 왜 전체 시스템의 Jitter Max 수치를 폭증시키는지 물리적 파급력을 분석하지 못한다면 ILJ의 실체를 놓친 것입니다.

4. Prerequisites

  • ALU & Data Path Design (Basic): 명령어 실행 사이클 및 파이프라인 기초 지식이 필수입니다. (02-01-03 ADP)
  • Bare-metal Memory Mapping (Recommended): 벡터 테이블 배치 및 주소 점유 이해가 권장됩니다. (02-05-01 BMM)

5. Learning Map

  1. The Signal Journey: 외부 물리 신호가 CPU 코어까지 도달하는 전기적 경로를 추적합니다.
  2. Hard-wired Stacking: CPU가 하던 일을 일시 정지하고 상태를 백업하는 물리적 '의식(Ritual)'을 익힙니다.
  3. Uncertainty Tracking: 캐시 상태나 앞선 명령어 종류에 따라 반응 속도가 흔들리는 현상(Jitter)을 계측합니다.
  4. Deterministic Tuning: 하드웨어 설정을 통해 반응 시간을 일정하게 묶어버리는(Hardening) 기술을 완성합니다.

6. Learning Topics

Basic

Core: 인터럽트 지연 시간의 하드웨어 구성 (Latency Breakdown)

  • Why to Learn: 어디서 지연이 발생하는지 알아야 하드웨어 한계를 돌파할 지점을 찾을 수 있기 때문입니다.
  • What to Learn:
    • 하드웨어 전파 지연: 신호 인지부터 인터럽트 요청(IRQ) 생성까지의 클록
    • Pipeline Flush: 실행 중인 긴 명령어 시퀀스를 비우는 물리적 시간
    • Context Save (Hardware Stacking): PC,PSR,R0R3PC, PSR, R0-R3 등을 하드웨어가 자동으로 스택에 밀어 넣는 속도
  • How to Learn:
    • ARM Cortex-M4 데이트시트의 인터럽트 응답 사이클(보통 12사이클) 표를 보고, 각 클록이 무엇을 수행하는지 분석 실습
    • 오실로스코프로 외부 신호 발생 시점과 GPIO 토글 시점의 시간차 측정
  • Implement: 클록 주파수와 하드웨어 사이클 수를 입력하면 이론적 최소 지연 시간을 계산하는 도구

Core: 지터의 원인과 물리적 불확실성 (Sources of Jitter)

  • Why to Learn: 지연 시간이 널뛰면 정교한 실시간 제어(모터, 통신 등)가 불가능해지기 위해서입니다.
  • What to Learn:
    • Instruction Jitter: LDM처럼 실행 시간이 긴 명령어 도중 인터럽트가 걸렸을 때의 대기 시간
    • Cache/Memory Jitter: 스택 저장 위치가 캐시 히트일 때와 미스일 때의 물리적 시차
    • NVIC/GIC 중재 지연: 여러 인터럽트가 동시에 들이닥쳐 우선순위를 다투는 시간
  • How to Learn:
    • 인터럽트를 백 번 발생시켰을 때 응답 시간의 분포(Histogram)를 도시하고, 최댓값(T-max)과 최솟값(T-min)의 차이(Jitter) 분석 실습
    • 캐시 사용 여부에 따라 지터 폭이 어떻게 변하는지 관찰
  • Implement: 지연 시간 샘플 데이터를 받아 지터(표준편차 및 범위)를 산출하고 통계적 리포트를 출력하는 모듈

Practical

Core: 벡터링 기법과 분기 지연 (Vectoring Physics)

  • Why to Learn: 인터럽트 처리를 위해 '주소'를 찾아가는 방식에 따라 물리적 속도가 결정되기 때문입니다.
  • What to Learn:
    • Vector Table Lookup: 메모리에서 ISR 주소를 가져오는 읽기 지연
    • Tail-Chaining: 인터럽트가 끝나자마자 다음 인터럽트를 처리할 때 중복된 스택 작업을 생략하는 물리 기술
    • Late-arriving: 고순위 인터럽트가 늦게 도착했을 때 실행을 즉각 가로채는 기법
  • How to Learn:
    • 하드웨어가 지원하는 Tail-chaining 성능(보통 6사이클 감소)이 연속된 이벤트 처리량에 미치는 영향 분석 실습
    • 벡터 테이블을 Flash가 아닌 RAM으로 옮겼을 때(Zero-wait state)의 속도 이득 측정
  • Implement: 벡터 테이블 참조부터 첫 ISR 명령 실행까지의 물리 주소 전이 과정을 시뮬레이션하는 로직

Advanced

Core: 결정론적 응답 보장 기술 (Deterministic Hardening)

  • Why to Learn: 어떤 상황에서도 하드웨어가 정해진 시간 내에 응답할 것임을 물리적으로 증명하기 위해서입니다.
  • What to Learn:
    • Tightly-Coupled Memory (TCM): 지터 방지를 위해 지연 시간이 고정된 최속 메모리에 스택/코드 배치
    • Constant-time ISA: 인터럽트 가로채기 효율을 높이기 위해 명령어 길이를 통제하는 물리
    • 하드웨어 격리 및 전용 제어기: 특정 코어에 인터럽트를 고정(Affinity)하여 간섭 최소화
  • How to Learn:
    • 일반 RAM과 TCM에 동일한 인터럽트 스택을 두었을 때, 시스템 부하 상태에서의 응답성 유지력 비교 실습
    • 인터럽트 비활성화(Critical Section) 시간이 물리적 Jitter에 미치는 수리적 영향도 모델링 분석
  • Implement: 메모리 배치 전략(RAM vs TCM)에 따른 최악의 상황(Worst-case) 지연 시간을 예측하는 엔지니어링 도구

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Interrupt Latency 하드웨어 이벤트 발생부터 실제 첫 처리 명령어(ISR)가 수행되기까지의 물리적 소요 시간입니다. 기본 지연 척도 ISR / Cycle Delay '코드 실행 시간' 아님 P3:CyBOK core
Jitter (지터) 인터럽트 응답 시간이 매 시점 미세하게 변하는 물리적인 불규칙성 또는 그 폭을 의미합니다. 추천 응답 편차 Wait-state Skew '단순 지연'과는 다른 개념 Industry Sys core
Tail-Chaining 연속된 인터럽트 처리 시, 스택 복구와 재저장 과정을 생략하여 물리적 시간을 단축하는 하드웨어 기술입니다. 실무 가속화기 Stacking Chain '소프트웨어 최적화'와 무관 Industry NVIC core
TCM CPU에 밀착되어 캐시 미스 없이 고정된 클록 내에 데이터를 읽고 쓸 수 있게 하는 특수 물리 저장소입니다. 심화 결정성 확보 Cache / RAM SRAM '일반 캐시'와 작동 방식 다름 Industry Proc core

8. References

Primary

Secondary

  • [The Definitive Guide to ARM Cortex-M3/M4 Processors] Joseph Yiu — The gold standard for Interrupt internals.
  • [Real-Time Systems Design and Analysis] Laplante — Jitter and Latency theory.

Industry

  • [ARM Application Note 179: Cortex-M3/M4 Interrupt Latency] — Detailed cycle breakdown.
  • [Texas Instruments: Enhancing Real-time Response in Embedded Processors] — Industry whitepaper.

9. Final Checklist

Primary

  • 하드웨어 인터럽트가 발생했을 때, CPU 파이프라인에서 현재 수행 중인 '긴 명령어'가 즉각 중단되는지 아니면 끝날 때까지 기다리는지 물리적 차이를 설명 가능한가? (P1)
  • 'Context Save' 과정에서 왜 하드웨어가 특정 레지스터들만 자동으로 스택에 쌓는지, 그 기준을 물리적 실행 상태 보존 관점에서 입증할 수 있는 가? (P1)

Secondary

  • 시스템에 캐시(Cache)가 추가되었을 때, 전체적인 평균 성능은 향상되지만 왜 'Interrupt Jitter'는 더 악화될 수 있는지 물리적 이유를 소통 가능한가?
  • 인터럽트 처리 도중 더 높은 우선순위의 신호가 들어왔을 때, 하드웨어가 다시 스택 작업을 하는 'Preemption'의 물리적 오버헤드를 수리적으로 계산할 수 있는 가?

Industry

  • 0.1ms 단위의 정밀한 모터 제어가 필요한 임베디드 시스템 설계 시, 최악의 지연 시간(Worst-case Latency)을 제한하기 위한 하드웨어 설정값을 제안할 수 있는 가? (SFIA)
  • 테일 체이닝(Tail-chaining) 기능을 켰을 때와 껐을 때, 센서 데이터 수집 주기의 지동(Jitter) 수치 변화를 측정하고 안정성을 기술할 수 있는 가?