Thermal Throttling 분석 — Junction Temp·Trip Point·냉각
#한 줄 요약
“Thermal throttle = CPU 자기보호” 입니다. 정격 온도를 넘기면 frequency가 자동으로 내려갑니다.
#온도 등급
| Grade | Junction T | 용도 |
|---|---|---|
| Commercial | 0 ~ 70°C | 데스크탑·소비자 |
| Industrial | -40 ~ 85°C | 산업 컨트롤러 |
| Extended | -40 ~ 105°C | 자동차 캐빈 |
| Automotive (AEC-Q100) | -40 ~ 125°C | ECU |
| Mil-Spec | -55 ~ 125°C | 군용 |
| Space | -55 ~ 150°C (rad-hard) | 위성·LV |
LV와 항공은 외부 환경이 영하에서 직사광선까지 넓게 변하므로, 패키지와 재료 선택이 결정적입니다.
#Thermal Sensor
On-die diode based: V_BE diff (PTAT — Proportional To Absolute Temp) → ADC conversion → ° C정확도는 ±2~5°C, 해상도는 1°C 수준입니다.
/* STM32 internal TS */HAL_ADC_Start(&hadc1);HAL_ADC_PollForConversion(&hadc1, 100);uint32_t raw = HAL_ADC_GetValue(&hadc1);float temp = ((float)raw * 3.3 / 4096 - V25) / AVG_SLOPE + 25;각 chip에는 factory calibration이 들어 있고, ROM에 25°C와 85°C의 raw 값이 저장됩니다.
#Linux Thermal Framework
# Thermal zone 목록ls /sys/class/thermal/# thermal_zone0 thermal_zone1 thermal_zone2 cooling_device0
cat /sys/class/thermal/thermal_zone0/type# cpu_thermal
cat /sys/class/thermal/thermal_zone0/temp# 47000 (= 47°C)
cat /sys/class/thermal/thermal_zone0/trip_point_0_temp# 75000 (= 75°C, hot)cat /sys/class/thermal/thermal_zone0/trip_point_1_temp# 90000 (= 90°C, critical — shutdown)#Trip Point
75°C "hot" → cpufreq throttle (frequency ↓)85°C "passive" → fan speed ↑90°C "critical" → kernel panic·shutdown각 trip point가 해당하는 cooling action을 trigger합니다.
#Cooling Device
ls /sys/class/thermal/cooling_device*/# thermal-cpufreq-0 thermal-cpufreq-1 thermal-cpufreq-2
cat .../thermal-cpufreq-0/cur_state# 0 (none)
cat .../thermal-cpufreq-0/max_state# 8 (8 throttle level)Step-wise throttling 방식으로, 한 단계당 200 MHz씩 감소시키는 식으로 동작합니다.
#STM32 — Junction T Monitoring
/* CMSIS-style */float temp = read_internal_temp();if (temp > 85.0f) { /* Throttle — clock 분주 ↑ */ RCC->CFGR |= RCC_CFGR_HPRE_DIV2; // AHB /2 → CPU 절반}if (temp > 105.0f) { /* Shutdown — safe mode */ enter_safe_mode();}자동차 ECU는 DAPA 표준에 온도 fault 발생 시 safe state로 진입한다는 동작을 명시합니다.
#big.LITTLE — Thermal Distribution
if (temp > THRESH) { /* Big core off, little만 사용 */ cpu_hotplug_off(BIG_CORE_4, 5, 6, 7); /* → 발열 ½ */}스마트폰은 game이나 burst 구간에서는 big을 쓰고, 평소에는 little만 사용합니다.
#Cooling — Passive·Active
| Type | 동작 |
|---|---|
| Passive | 방열판 (heatsink) — 항상 동작 |
| Active | 팬 (fan) — 변속 가능 |
| Liquid | 액체 냉각 — 서버·고급 |
| Throttling | SW — frequency ↓ |
| Migration | Task 다른 core로 이동 |
자동차 ECU는 먼지와 물 위험 때문에 fanless로 설계하고, heatsink와 enclosure만으로 냉각을 처리합니다.
#TDP·SDP·CTDP
TDP (Thermal Design Power) — sustained 최대 발열 (cooling 설계 기준)SDP (Scenario Design Power) — 일반 workload 평균cTDP (Configurable TDP) — OEM이 BIOS에서 조정 가능Intel i7-12700:
- TDP 65 W (base)
- Max Turbo Power 180 W (peak, short)
- SDP ~30 W (idle + light)
#Cortex-A 모바일 — Heat Map
Snapdragon 865: Big core full load → +35°C GPU full load → +25°C Modem → +10°C
→ peak 75°C, 충분히 throttle 영역게임에서는 5분쯤 지나면 frame rate가 절반으로 떨어지는 경우가 흔하고, 게이밍 폰은 대형 vapor chamber로 이를 보완합니다.
#항공·우주 — Cooling 어려움
지상: 공기 + 방열판 충분비행기: 캐빈 공기 + airflow 활용위성·LV: 진공 → *방열 어려움* → conduction 방열 (heat pipe → 외부 panel → radiation) → 발열 자체 minimize → CPU 50-100 MHz (KSLV-II 누리 등)낮은 전력과 낮은 frequency를 근본 설계 원칙으로 삼습니다.
#Cold Boot — Extreme Cold
-55°C에서 부팅: Crystal oscillator drift (수 ppm) Flash retention 영향 미미 Capacitor (전해질) — *frozen*, ESR 큼 DRAM refresh — 정상 작동군용과 우주 영역에서는 cold start test가 필수입니다.
#측정 — IR Camera
PCB를 적외선으로 촬영하면 다음과 같은 정보를 얻을 수 있습니다.
- Hot spot 식별 (BGA나 QFP의 중심)
- 방열판 효과 확인
- 단락이나 과전류 detect
FLIR이나 Seek Thermal 같은 장비가 임베디드 개발실의 표준 도구로 쓰입니다.
#자주 하는 실수
⚠️ Benchmark 시 thermal 무시
loop_benchmark_5_sec(); // ← 처음 1초만 peak, 후 throttle지속 가능한 성능을 보려면 10분 이상 장시간 측정해야 합니다. CPU specs에 표기된 base clock이 보통 지속 가능 기준입니다.
⚠️ Junction T vs Case T 혼동
데이터시트의 T_J는 die 온도를 가리키고, 사용자가 외부에서 측정하는 값은 T_C입니다. 둘 사이에는 10°C 정도의 차이가 날 수 있습니다.
⚠️ Tair 가정 잘못
/* "데이터시트가 -40~85 °C 작동" *//* → ambient 기준. 내부 발열 시 *junction 100°C* 도달 가능 */thermal margin은 ambient + (P × Rja)로 계산해야 합니다.
⚠️ Throttling 무시한 RT design
/* RT task가 1 ms 안에 끝나야 함 *//* throttle 시 — frequency 절반 → 2 ms → deadline miss */Hard RT는 fixed frequency를 보장하고, 발열도 예산 안에서 관리해야 합니다.
#정리
- Junction T로 chip 자체를 보호하며, trip point 단계별로 throttle이 동작합니다.
- 자동차와 우주 영역은 온도 등급 specification이 매우 엄격합니다.
- Cooling 방식에는 passive, active, throttle, migration이 있습니다.
- TDP와 SDP는 각각 평균과 peak 발열을 가리킵니다.
- IR camera로 PCB의 hot spot을 식별할 수 있습니다.
- 우주에서는 진공에서 방열이 어렵기 때문에 근본적으로 저전력 설계를 채택합니다.
다음 part는 Toolchain & Profiling을 다룹니다.
#관련 항목
- 3-09: Power vs Performance
- 4-01: Compiler Optimization
Embedded Performance Engineering · 29 of 57
- 1 Embedded Performance Engineering — 임베디드 성능 엔지니어링 시리즈 소개
- 2 임베디드 성능 분석 방법론 — Measure → Analyze → Optimize 사이클
- 3 성능 지표 정의 — Latency·Throughput·Utilization 분석
- 4 성능 측정의 기본 — Wall-Clock·CPU Cycle·Instruction Count
- 5 성능 데이터 통계적 분석 — Percentile·Histogram·평균의 함정
- 6 실시간 성능 분석 — WCET·Jitter·Deadline Miss 측정
- 7 임베디드 벤치마킹 기초 — 재현성·Warmup·노이즈 제거
- 8 성능 모델링 — Amdahl·Gustafson·Roofline Model 적용
- 9 프로파일링 기법 개요 — Sampling vs Instrumentation·PGO·LTO
- 10 CPU 파이프라인 분석 — 5-stage·Cortex-M·Cortex-A 비교
- 11 Pipeline Stall 분석 — Data·Structural·Control Hazard·Forwarding
- 12 Branch Prediction 분석 — Static·2-bit·BTB·BHT·Mispredict 비용
- 13 Speculative Execution 분석 — OoO·Reorder Buffer·Register Renaming
- 14 CPU Cache 기초 — L1·L2·L3·Set Associative·Replacement Policy
- 15 Cache Miss 3C Model 분석 — Compulsory·Capacity·Conflict
- 16 Cache Line 최적화 — Alignment·Prefetch·False Sharing 처리
- 17 메모리 대역폭 분석 — STREAM·Roofline·Bus Saturation 측정
- 18 SIMD·NEON 활용 — 128-bit Vector·Auto-Vectorization·SVE/SVE2
- 19 PMU·HPM 하드웨어 카운터 분석 — 정밀 성능 진단
- 20 임베디드 Bus Architecture — AHB·AXI·CHI 진화와 5-Channel
- 21 Bus Contention 진단 — Arbitration·QoS·Starvation 측정
- 22 DMA 성능 최적화 — Burst·Scatter-Gather·Chain·Cache 일관성
- 23 DMA vs CPU Copy 성능 비교 — Break-even·Setup Overhead 실측
- 24 Interrupt Latency 분석 — 진입·종료·Tail-Chaining·Late Arrival
- 25 Interrupt Storm 처리 — NAPI·Rate-Limit·Polling 전환
- 26 MMIO 접근 성능 — Cache Policy·Write-Combining·Volatile·Barrier
- 27 Peripheral Clock 분석 — PLL·Divider·Gating·DVFS
- 28 Power vs Performance 트레이드오프 — DVFS·Race-to-Idle·Big.LITTLE
- 29 Thermal Throttling 분석 — Junction Temp·Trip Point·냉각
- 30 CXL Interconnect 분석 — AI 시대 메모리 대역폭 확장
- 31 Concurrency 기초 — Concurrency vs Parallelism·Race·Memory Model
- 32 False Sharing 진단 — Cache Line Ping-Pong·Padding·측정
- 33 Lock Contention 분석 — Wait·Hold·Convoy·측정 기법
- 34 Spinlock 성능 분석 — Spin-Wait vs Context Switch·Ticket·MCS
- 35 Mutex 성능 분석 — Futex·Adaptive·Priority Inheritance
- 36 Reader-Writer Lock 성능 — Reader/Writer Priority·RCU·Seqlock
- 37 Lock-Free 자료구조 성능 — CAS·ABA·Hazard Pointer·Epoch Reclamation
- 38 Memory Ordering 분석 — Acquire·Release·Seq-Cst·ARM Relaxed Model
- 39 Cache Coherency 프로토콜 — MESI·MOESI·Snoop·Directory
- 40 SMP 성능 분석 — Per-Core·Affinity·Load Balance·Scalability
- 41 Linux perf 기초 — stat·record·report 활용
- 42 Linux perf 고급 — Raw Event·Tracepoint·perf script
- 43 ftrace 활용 — function·function_graph·latency tracer
- 44 eBPF·bpftrace 동적 트레이싱 — 커널 무수정 관측
- 45 Flamegraph 분석 — On-CPU·Off-CPU·Differential
- 46 ARM DS·Lauterbach 분석 — Hardware Trace 전문 도구
- 47 Bare-metal 프로파일링 — GPIO·DWT·SysTick·ITM 활용
- 48 NVIDIA Nsight Systems — GPU·NPU 포함 시스템 분석
- 49 모던 프로파일러 비교 — Tracy·Hotspot·uftrace·Coz
- 50 연속 프로파일링 — Parca·Pixie·Pyroscope·Tetragon
- 51 실전 사례 — ISR Latency 100µs Deadline Miss 추적
- 52 실전 사례 — Matrix Multiply가 예상의 10배 느린 이유
- 53 실전 사례 — 8-core가 4-core를 넘으면 throughput이 떨어지는 이유
- 54 실전 사례 — 카메라 1080p 60fps가 30fps로 떨어지는 이유
- 55 CXL.mem 지연·대역폭 실측 — Direct·Switch·Pooled 토폴로지 비교
- 56 CXL 성능 프로파일링 도구 — cxl-cli·DAMON·perf-mem 활용
- 57 실전 사례 — CXL.mem 추가로 LLM inference KV cache 처리량 회복
관련 글
실전 사례 — CXL.mem 추가로 LLM inference KV cache 처리량 회복
70B 모델 KV cache가 HBM 한계를 넘어 throughput이 무너졌을 때, CXL.mem 256 GB pool 추가로 회복한 실전 케이스.
같은 시리즈에서 이어 읽기
CXL 성능 프로파일링 도구 — cxl-cli·DAMON·perf-mem 활용
CXL.mem 환경 성능 도구 — cxl-cli 토폴로지·DAMON page activity·perf-mem로 보는 CXL 트래픽·numastat 통계.
같은 시리즈에서 이어 읽기
CXL.mem 지연·대역폭 실측 — Direct·Switch·Pooled 토폴로지 비교
CXL.mem 토폴로지별 실측 — Direct attach·Single switch·Multi-host pool의 지연·대역폭 비용 측정.
같은 시리즈에서 이어 읽기
이 글을 참조하는 글 (4)
- Concurrency 기초 — Concurrency vs Parallelism·Race·Memory Model — Embedded Performance Engineering
- CXL Interconnect 분석 — AI 시대 메모리 대역폭 확장 — Embedded Performance Engineering
- Power vs Performance 트레이드오프 — DVFS·Race-to-Idle·Big.LITTLE — Embedded Performance Engineering
- Edge Thermal Management — Throttling·DVFS·Fan Curve·Sustained — Modern Embedded Recipes