Chapter 7: Microarchitecture | 프로세서 내부를 설계하다
⚙️ Chapter 7: Microarchitecture
단일사이클, 다중사이클, 파이프라인 — 프로세서 내부를 설계하다
Chapter 6에서 ISA가 “무엇을 할 것인가”를 정의했다면, Chapter 7은 “어떻게 구현할 것인가”를 다룹니다. 같은 ISA(예: MIPS)를 구현하더라도, 내부 설계(마이크로아키텍처)에 따라 성능, 면적, 전력이 완전히 달라집니다. 이 포스트에서는 교과서가 비교하는 3가지 구현 방법론(단일사이클, 다중사이클, 파이프라인)의 핵심과 해저드 해결법을 정리하고, 2026년 현대 프로세서의 비순차 실행(Out-of-Order) 기술이 이 기초 위에서 어떻게 발전했는지 살펴봅니다.
📏 1. 성능의 기본 수식
프로세서 성능을 평가하는 근본 수식입니다. 마이크로아키텍처 설계의 모든 결정은 이 세 가지 요소의 트레이드오프로 귀결됩니다.
| 요소 | 정의 | 영향 요인 |
|---|---|---|
| Instructions | 프로그램의 총 명령어 수 | ISA, 컴파일러 최적화 |
| CPI | 명령어당 평균 클럭 사이클 수 | 마이크로아키텍처 (핵심!) |
| Tc | 클럭 주기 (= 1/주파수) | 마이크로아키텍처, 공정 기술 |
🏗️ 2. 세 가지 구현 방법론
⏱️ 단일 사이클 클럭 주기
⏱️ 다중 사이클 평균 CPI
🚄 3. 파이프라인 프로세서
파이프라인은 Ch.3에서 배운 시간적 병렬성의 프로세서 적용입니다. MIPS 파이프라인은 5단계로 구성되며, 각 단계 사이에 파이프라인 레지스터를 두어 이전 단계의 결과를 다음 단계로 넘깁니다.
CC5 시점: 3개 명령어가 동시에 실행 중. 이상적 처리량 = 매 사이클 1개 명령어 완료
⚠️ 4. 해저드와 해결법
파이프라인의 가장 큰 도전은 해저드(Hazard) — 명령어 간 충돌로 인해 파이프라인이 의도대로 작동하지 않는 상황 — 입니다. 이를 해결하지 못하면 잘못된 결과가 나오거나 성능이 급격히 저하됩니다.
🔧 데이터 해저드 해결: 전방 전달 (Forwarding)
ALU 결과가 레지스터에 기록되기를 기다리지 않고, 계산 즉시 다음 단계의 ALU 입력으로 바이패스하는 회로입니다. 대부분의 데이터 해저드를 0-사이클 페널티로 해결합니다.
lw 명령어 직후에 그 데이터를 바로 사용하는 경우, 데이터가 MEM 단계 끝에야 나오므로 전방 전달로도 해결할 수 없습니다. 이때 1사이클 스톨(Stall, bubble)이 불가피합니다. 컴파일러는 이를 회피하기 위해 명령어 순서를 재배치(Schedule)합니다.
🔧 제어 해저드 해결: 분기 예측 (Branch Prediction)
분기 결과를 기다리지 않고 예측(Predict)하여 명령어를 계속 Fetch합니다. 예측이 맞으면 페널티 0, 틀리면 파이프라인을 Flush(잘못 들어온 명령어 무효화)합니다. 교과서에서는 분기 판별을 Decode 단계로 당겨 플러시 대상을 1개 명령어로 최소화합니다.
| 해저드 유형 | 원인 | 해결법 | 페널티 |
|---|---|---|---|
| RAW (Read After Write) | 이전 명령어 결과 미기록 | Forwarding | 0 cycle |
| Load-Use | lw 직후 데이터 사용 | 1-cycle Stall + Forward | 1 cycle |
| Control (분기) | 분기 결과 미확정 | Branch Prediction + Flush | 1 cycle (오예측 시) |
📊 5. 세 가지 구현 성능 비교
| 항목 | 단일 사이클 | 다중 사이클 | 파이프라인 |
|---|---|---|---|
| CPI | 1 (고정) | ~4.12 (가변) | ~1.0 (이상적) |
| Tc | 가장 김 (lw 기준) | 짧음 (1단계) | 짧음 (1단계) |
| 하드웨어 복잡도 | 간단 (중복 HW) | 중간 (재사용) | 높음 (해저드 HW) |
| 제어 | 조합 논리 | FSM | 조합 + 해저드 검출 |
| 상대 성능 | 1x (기준) | ~1.13x | ~3.6x |
🚀 6. 2026년 산업 동향: 교과서 파이프라인에서 현대 비순차 실행까지
교과서의 5단계 순차(In-order) 파이프라인은 마이크로아키텍처의 기초입니다. 현대 프로세서는 이 개념을 비순차 실행(Out-of-Order Execution, OoO), 슈퍼스칼라(Superscalar), 투기적 실행(Speculative Execution) 등으로 극한까지 확장합니다.
📊 교과서 → 현대 프로세서 진화 매핑
| 교과서 개념 | 현대 프로세서 진화 | 2026 예시 |
|---|---|---|
| 5단계 in-order 파이프라인 | 14~20단계 OoO 파이프라인 | Intel Lion Cove ~20단계, ARM X925 ~12단계 |
| Forwarding (데이터 해저드) | Register Renaming + ROB + Reservation Station | X925 ROB > AMD Zen 5 |
| 정적 분기 예측 | TAGE + Perceptron 동적 예측 | 99%+ 예측 정확도 |
| 단일 이슈 (1 instr/cycle) | 슈퍼스칼라 N-wide | ARM X925: 10-wide, Zen 5: 6-wide |
| CPI ≈ 1 (이상적) | IPC > 1 (사이클당 여러 명령어 완료) | IPC 5~8+ (워크로드 의존) |
2026년 ARM의 최고 성능 코어인 Cortex X925는 데스크톱급 성능에 도달했습니다. 10-wide 슈퍼스칼라 디스패치, AMD Zen 5보다 큰 리오더링 용량, 최대 3MB L2 캐시를 갖추고 있습니다. 교과서의 5단계 MIPS 파이프라인에서 시작한 개념이 수십 년간의 최적화를 거쳐 이 수준에 도달한 것입니다. 기초가 탄탄해야 이 복잡한 현대 마이크로아키텍처를 이해할 수 있습니다.
📋 핵심 요약
| 주제 | 핵심 포인트 | 수식 / 키워드 |
|---|---|---|
| 성능 수식 | 실행시간 = 명령어 수 × CPI × Tc | Iron Law of Performance |
| 단일 사이클 | CPI=1, Tc 길다 (lw 기준) | 조합 논리 제어 |
| 다중 사이클 | CPI 가변, Tc 짧다. HW 재사용 | FSM 제어, CPIavg=Σ(F×CPI) |
| 파이프라인 | CPI≈1, Tc 짧다. 최고 성능 | IF/ID/EX/MEM/WB 5단계 |
| 데이터 해저드 | Forwarding으로 해결. Load-Use는 1-stall | Bypassing, Stall |
| 제어 해저드 | Branch Prediction + Flush | 오예측 시 1-cycle 페널티 |
| 2026 트렌드 | OoO, 슈퍼스칼라, TAGE 예측, 하이브리드 코어 | ARM X925, Zen 5/6, Lion Cove |
댓글
댓글 쓰기