Learning
토픽 24 / 111·CPU (Central Processing Unit)

비순차 실행 (Out-of-Order Execution)

비순차 실행 (Out-of-Order Execution)

명령어 스트림에서 데이터 의존성이 없는 명령어를 프로그램 순서와 무관하게 먼저 실행하여 파이프라인 정체를 최소화하는 기법

목적: 파이프라인 효율 향상, 실행유닛 활용률 증대, 지연 숨김, IPC 증가

특징: 동적 스케줄링, 의존성 분석, 투기적 실행, 순차 커밋

구성요소

  • 재정렬 버퍼(ROB): 명령어 순서 유지, 순차 커밋, 예외 처리
  • 예약 스테이션(Reservation Station): 명령어 대기, 피연산자 준비 감시
  • 레지스터 리네이밍: 물리 레지스터 매핑, WAR/WAW 제거
  • 로드/스토어 큐: 메모리 연산 순서 제어

동작과정: ① 인출/디코드 → ② ROB 할당 → ③ 예약 스테이션 발행 → ④ 피연산자 준비 시 실행 → ⑤ ROB 순차 커밋

장점: 높은 IPC, 지연 숨김, 하드웨어 활용 극대화, 메모리 지연 완화

단점: 복잡한 HW, 높은 전력, 투기실행 비용, 보안 취약점(Spectre)

적용사례: Intel Core, AMD Ryzen, ARM Cortex-A76+, Apple M시리즈

비교: OoO(동적/HW복잡/고성능) vs In-Order(순차/단순/저전력/Cortex-A53)

연관: 슈퍼스칼라, 레지스터 리네이밍, ROB, 투기실행