
하드웨어 연구자, 가장 느린 단일 x86 명령어를 찾기 위한 'CPU 역최적화 (CPU deoptimization)' 프로젝트 시작 및
요약
하드웨어 연구자 Christopher Domas가 가장 느린 단일 x86 명령어를 찾기 위한 'CPU 역최적화' 프로젝트를 시작했습니다. 이 프로젝트는 명령어를 빠르게 실행하는 대신, 지연 시간을 극대화하여 아키텍처의 성능 한계를 측정하는 것을 목표로 합니다.
핵심 포인트
- CPU 역최적화: 가장 높은 지연 시간을 가진 단일 명령어를 찾는 연구
- 최고 기록: SIMD 레지스터 상태를 메모리로 복구하는 명령어가 62초 소요
- 방법론: MMIO 도구를 사용하여 PCIe 패브릭 내 고지연 영역을 탐색
- 목적: 저수준 명령어의 실행 시간을 조사하여 아키텍처 최적화 연구에 기여
소프트웨어가 하드웨어에서 실행되는 방식을 최적화하기 위해, 명령어 지연 시간 (instruction latency) 분석은 아키텍처를 최적화하거나 특정 아키텍처에서 실행되는 애플리케이션을 최적화하기 위해 저수준 명령어 (low-level instructions)가 프로세서에서 실행되는 데 걸리는 시간을 조사합니다. 한 하드웨어 연구자인 Christopher Domas (@xoreaxeaxeax on GitHub)는 CPU 역최적화 (CPU Deoptimization) 리더보드를 통해 다른 접근 방식을 취하고 있습니다. 이는 어셈블리 (Assembly) 명령어를 가능한 한 빠르게 실행하는 것이 아니라, 가능한 한 느리게 실행하여 가장 높은 지연 시간을 가진 단일 명령어를 측정하는 것을 목표로 합니다.
TH Premium으로 더 깊이 알아보기: CPU

(이미지 출처: Tom's Hardware)
- DLSS와 함께하는 CPU 스케일링 (CPU scaling with DLSS)
- 최정상에 오른 Ryzen: AMD가 게이밍 CPU 시장에서 혁신한 방법
- ARM이 PC 시장에 진입하는 방식
- AMD CES 2026 게이밍 트렌드 기자 Q&A 라운드테이블 녹취록
이 분야의 승자는 62초, 즉 1,980억 사이클 이상이 소요된 fxrstor64입니다. 이 명령어는 SIMD 계산에 사용된 레지스터의 상태를 512바이트 메모리 위치로 복구합니다. 가장 높은(가장 느린) 점수를 달성하기 위해, Domas는 먼저 자신의 mmiotic 도구를 사용하여 내부 PCIe 패브릭(fabric)에서 높은 지연 시간(high-latency) 영역을 찾은 다음, CPU가 MMIO (Memory-Mapped I/O)로부터 512바이트 상태를 로드하도록 강제하여 본질적으로 그 512바이트 전체를 가능한 한 느리게 처리하도록 만들었습니다. 이 과정은 완료하는 데 740억 사이클, 즉 23초가 조금 넘게 걸렸습니다.
그 후, 그들은 "로드(load)가 진행되는 동안 패브릭을 굶기는(starving) 방식"으로 한 단계 더 나아갔습니다. 그들은 다른 고지연 MMIO 레지스터로부터 일련의 4바이트 읽기 작업을 수행하여 CPU의 PCIe 루트 컴플렉스(root complex)를 압도하고, 상태 복구 작업이 사소한 읽기 작업(frivolous read ops) 뒤에 대기하도록 강제함으로써 이를 수행했습니다. 다음 단계는 Intel의 Sapphire Rapids에서 사용 가능한 AMX 명령어를 xrstore64에 사용하는 것입니다. 상태 영역이 512바이트에서 8KB로 증가하며, 이로 인해 명령어가 1조 사이클 이상 멈춰 있을(hang) 수도 있습니다.
모두가 CPU를 더 빠르게 만들려고 노력합니다. 저는 CPU를 더 나쁘게 만들려고 합니다. 새로운 프로젝트: CPU 역최적화 (CPU deoptimization). 가능한 가장 느린 머신 명령어(machine instructions)를 찾는 중. x86 단일 명령어 기록: 198,002,498,236 사이클, 62초. 어셈블리 명예의 전당 (Hall of shame): https://t.co/G4QnFQjsZx pic.twitter.com/WNaRPf2kRC 2026년 8월 7일
GitHub에 x86 리더보드가 공개되었으며, Domas가 ARM과 RISC-V 리더보드도 계획하고 있는 것으로 보입니다. 몇 가지 실행 규칙이 있습니다. Domas는 단일 명령어의 실행만을 점수화하는 한 어떤 설정이든 괜찮다고 말합니다. 인터럽트 가능한 명령어는 허용되지 않으며, 핸들러에서 실행된 에뮬레이션 명령어에 대한 점수화도 금지됩니다. 모든 시간은 CPU의 기본 클럭을 기준으로 정규화되었고, 플랫폼들은 모두 하드웨어 수정 없이 실행되었습니다.
우리는 어셈블리 코리를 다루고 있으므로, 순위는 특정 명령어 자체보다는 그 명령어를 가지고 무엇을 하는지에 더 가깝습니다.
Domas는 테스트를 위해 주로 두 개의 CPU를 사용했습니다: Intel Core i7-8559U와 AMD Ryzen 7 5800H (Trigkey S5 내부). 하지만 rdmsr 명령어의 경우, 2000년대 초반의 임베디드 프로세서 시리즈였던 VIA Eden 칩을 사용했습니다. rdmsr 명령어는 모델 특정 레지스터(Model-Specific Register) 또는 MSR을 읽는 데 사용됩니다. Domas에 따르면, VIA는 "0x133에서 문서화되지 않은 레지스터를 사용하여 매우 높은 응답 시간을 제공합니다." 이 명령은 실행하는 데 202 마이크로초 또는 161,602 사이클이 걸렸습니다.
이는 개발자가 저수준 명령어에 대한 거친 실험을 처음 시도한 것이 아닙니다. 이전 프로젝트인 movfuscator는 오직 mov(move) 명령만을 사용하는 C 컴파일러입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Tom's Hardware의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기