Computer Architecture - Ch5

컴퓨터 아키텍처 Chapter 5: 스레드 수준 병렬성 (TLP) | 멀티코어, 캐시 일관성, SMT 2026
CHAPTER 5 · TLP

스레드 수준 병렬성
Thread-Level Parallelism

멀티코어 아키텍처, 캐시 일관성, 동기화, 메모리 일관성 모델 — 단일 코어의 한계를 넘어 수백 코어가 협력하는 병렬 컴퓨팅의 핵심

192 AMD EPYC 9965 최대 코어
288 Intel Xeon 6 Sierra Forest 코어
CXL 2.0 차세대 메모리 인터커넥트

1. 🎯 왜 스레드 수준 병렬성(TLP)이 필요한가?

Chapter 3에서 살펴본 ILP(명령어 수준 병렬성)는 하나의 프로세서 내에서 독립적인 명령어들을 동시에 실행하는 접근법이었습니다. 하지만 2000~2005년 사이, 더 많은 ILP를 찾아내려는 시도는 전력 효율과 실리콘 활용 효율이 급락하는 결과를 낳았습니다. 성능은 느리게 증가하는데 전력과 칩 면적은 빠르게 증가한 것입니다.

이 교착 상태의 해결책이 바로 멀티프로세싱입니다. 복잡한 단일 코어를 더 크게 만드는 대신, 상대적으로 단순한 코어를 여러 개 배치하여 여러 스레드를 동시에 실행합니다. 2005년 Intel CEO Paul Otellini는 "우리는 미래의 모든 제품 개발을 멀티코어 설계에 헌정한다"고 선언했고, 이것은 업계 전체의 방향이 되었습니다.

💡 ILP vs TLP의 근본적 차이: ILP는 하나의 프로그램 스트림에서 독립적인 명령어를 하드웨어가 자동으로 찾아 병렬 실행합니다. TLP는 여러 개의 프로그램 카운터(PC)가 존재하며, 각각이 독립적인 명령어 스트림을 실행합니다. ILP는 프로그래머에게 투명하지만, TLP는 소프트웨어(컴파일러 또는 프로그래머)의 명시적 참여가 필요합니다.

1.1 ⚠️ 병렬 처리의 두 가지 도전

교과서는 암달의 법칙(Amdahl's Law)으로 설명 가능한 두 가지 핵심 장애물을 제시합니다:

🔒 제한된 병렬성

100개 프로세서로 80배 속도 향상을 얻으려면, 순차 실행 부분이 전체의 0.25% 이하여야 합니다. 극소량의 순차 코드도 대규모 병렬 시스템의 성능을 극적으로 제한합니다.

🌐 높은 통신 비용

원격 메모리 접근 비용이 수백 사이클에 달합니다. 교과서 예시에서 명령어의 단 0.2%만 원격 통신을 필요로 해도, 성능이 3.4배 저하되는 결과를 보입니다.

Speedup = 1 / (Fraction_sequential + (1 - Fraction_sequential) / N)
N=100, Speedup=80 → Fraction_sequential = 0.0025 (0.25%)

2. 🏗️ 멀티프로세서 아키텍처의 분류

멀티프로세서는 메모리의 물리적 배치와 접근 방식에 따라 크게 두 가지로 나뉩니다. 이 분류는 설계의 확장성(Scalability)과 프로그래밍 복잡성을 결정짓는 핵심 요소입니다.

2.1 🔄 대칭형 멀티프로세서 (SMP / UMA)

모든 프로세서가 단일 공유 메모리에 동일한 지연 시간으로 접근하는 구조입니다. UMA(Uniform Memory Access)라고도 부르며, 현대의 단일 멀티코어 칩 내부가 대표적인 SMP 아키텍처입니다.

🔄 SMP (UMA) 아키텍처 구조
Core 0
L1/L2 캐시
Core 1
L1/L2 캐시
Core 2
L1/L2 캐시
Core 3
L1/L2 캐시
공유 버스 / 인터커넥트
공유 L3 캐시
메인 메모리 (동일 지연 시간)

모든 코어가 동일한 메모리 접근 지연 시간 → 프로그래밍이 비교적 단순

SMP의 장점은 프로그래밍 모델의 단순성입니다. 모든 코어가 동일한 관점에서 메모리를 보므로, 데이터 배치를 크게 신경 쓰지 않아도 됩니다. 그러나 코어 수가 증가하면 공유 버스와 공유 캐시의 대역폭 병목이 심화되어, 일반적으로 4~8코어 이내에서 효율적입니다.

2.2 🌐 분산 공유 메모리 (DSM / NUMA)

물리적 메모리가 각 프로세서 노드에 분산되어 장착되지만, 논리적으로는 하나의 거대한 공유 주소 공간을 형성하는 구조입니다. NUMA(Non-Uniform Memory Access)라고 불리며, 자신의 노드에 있는 로컬 메모리는 빠르게, 다른 노드의 원격 메모리는 네트워크를 통해 느리게 접근합니다.

🌐 DSM (NUMA) 아키텍처 구조
Node 0
Core
Core
로컬 메모리
Node 1
Core
Core
로컬 메모리
Node 2
Core
Core
로컬 메모리
인터커넥션 네트워크 (Infinity Fabric, UPI, CXL)

로컬 접근 ≈ 수십 ns / 원격 접근 ≈ 수백 ns → 데이터 배치가 성능의 핵심

NUMA의 핵심 이점은 확장성(Scalability)입니다. 메모리가 분산되어 있으므로, 노드를 추가할 때 메모리 대역폭도 함께 증가합니다. 2025년 현재, 듀얼 소켓 서버부터 이미 NUMA 구조를 사용합니다. AMD EPYC은 Infinity Fabric으로, Intel Xeon은 UPI(UltraPath Interconnect)로 멀티소켓 NUMA를 구현합니다.

3. 🔍 캐시 일관성 (Cache Coherence)

멀티코어의 가장 근본적인 하드웨어 과제가 캐시 일관성입니다. 각 코어가 전용 L1/L2 캐시를 가지므로, 동일한 메모리 주소의 데이터가 여러 캐시에 복사될 수 있습니다. 한 코어가 이 값을 수정하면, 다른 코어의 캐시에는 오래된 데이터(Stale Data)가 남습니다.

🔍 캐시 일관성 문제 시나리오

T=0: 메모리 X=1

T=1: Core A가 X를 읽음 → A의 캐시에 X=1

T=2: Core B가 X를 읽음 → B의 캐시에 X=1

T=3: Core A가 X=0으로 수정! → A의 캐시 X=0, 메모리 X=0

⚠️ B의 캐시에는 여전히 X=1 (Stale!)

교과서는 일관성 있는 메모리 시스템의 3대 조건을 제시합니다. 첫째, 프로세서가 쓴 값을 자신이 다시 읽으면 반드시 그 값이 반환되어야 합니다(프로그램 순서 보존). 둘째, 한 프로세서의 쓰기가 충분한 시간 후에 다른 프로세서에게 반드시 보여야 합니다(일관성의 정의). 셋째, 동일 위치에 대한 모든 쓰기가 모든 프로세서에게 동일한 순서로 관찰되어야 합니다(쓰기 직렬화).

3.1 📡 스누핑 프로토콜 (Snooping Protocol)

버스 기반 SMP에서 사용되는 가장 직관적인 해결책입니다. 모든 캐시 컨트롤러가 공유 버스를 "엿듣기(Snooping)"하며 다른 코어의 메모리 접근을 감시합니다.

Write-Invalidate 방식

가장 널리 사용되는 일관성 방식입니다. 한 코어가 공유 데이터를 수정할 때, 버스에 무효화(Invalidate) 신호를 브로드캐스트하여 다른 모든 캐시의 해당 데이터 복사본을 무효화합니다. Write-Update(모든 복사본을 갱신)보다 대역폭 소비가 적어 현대 프로세서에서 표준으로 채택되었습니다.

MSI 프로토콜

캐시 블록의 3가지 기본 상태 모델입니다:

📊 MSI 상태 전이 다이어그램
M
Modified

유일한 복사본
메모리와 다름(Dirty)

S
Shared

여러 캐시에 존재
읽기 전용, Clean

I
Invalid

유효하지 않음
사용 불가

S→M: 쓰기 시 무효화 브로드캐스트 후 독점 소유

M→S: 다른 코어의 읽기 요청 시 데이터 제공 후 공유 전환

→I: 다른 코어의 쓰기/무효화 신호 수신 시

MESI와 MOESI 확장

기본 MSI에서 두 가지 중요한 확장이 현대 프로세서에서 사용됩니다:

프로토콜추가 상태설명사용 프로세서
MESIExclusive (E)이 캐시에만 존재하되 Clean 상태. 쓰기 시 버스 트래픽 없이 바로 M으로 전환 가능Intel Core i7 (MESIF 변형)
MOESIOwned (O)Modified 블록을 공유할 때, 메모리에 Write-back 없이 O 상태로 유지. 다른 캐시는 S 상태AMD Opteron / EPYC

💡 MESI Exclusive 상태의 가치: 한 코어만 읽은 블록에 쓰기를 수행할 때, E 상태라면 버스에 무효화를 보낼 필요가 없습니다(다른 복사본이 없으니까!). 이는 "Read-Modify-Write" 패턴에서 버스 트래픽을 크게 줄여줍니다. E 상태가 없다면 S→M 전환 시 항상 무효화가 필요합니다.

3.2 📁 디렉터리 프로토콜 (Directory-based Protocol)

코어 수가 수십~수백 개로 확장되는 NUMA 시스템에서는 모든 코어가 버스를 스누핑하는 것이 물리적으로 불가능합니다. 스누핑의 브로드캐스트 트래픽은 코어 수에 비례하여 증가하므로, 확장성에 치명적입니다.

디렉터리 프로토콜은 이 문제를 메모리 블록별 추적 자료구조인 디렉터리로 해결합니다.

📁 디렉터리 기반 일관성 동작 흐름

① 쓰기 요청: Core A가 블록 X에 쓰기를 요청

② 디렉터리 조회: X의 홈 노드가 디렉터리를 확인 → "X는 Core B와 Core D에 공유 중"

③ 점대점 무효화: Core B와 Core D에게만 무효화 메시지 전송 (브로드캐스트 아님!)

④ 확인 응답: B와 D가 무효화 완료 확인 → Core A가 쓰기 진행

디렉터리에는 각 메모리 블록에 대해 공유 비트 벡터(Sharing Bit Vector)가 존재합니다. N개의 프로세서가 있으면 각 블록마다 N비트가 필요하여, 디렉터리 오버헤드가 메모리 크기의 일정 비율을 차지합니다. 이 오버헤드는 코어 수가 많아질수록 증가하는 현실적 한계입니다.

⚠️ 실제 구현: 현대 멀티코어 칩 내부에서는 공유 L3 캐시에 스누핑 기반 디렉터리를 사용하는 것이 일반적입니다. Intel Core i7과 Xeon은 L3 캐시에 디렉터리를 내장하여 코어별 무효화를 효율적으로 처리합니다. 칩 간(멀티소켓) 연결에서는 본격적인 분산 디렉터리 프로토콜이 사용됩니다.

4. 🔐 동기화 (Synchronization)

여러 스레드가 공유 데이터에 동시에 접근할 때, 경쟁 상태(Race Condition)를 방지하기 위해 상호 배제(Mutual Exclusion)를 구현해야 합니다. 이를 위해 하드웨어가 제공하는 원자적 연산(Atomic Operations)이 핵심입니다.

4.1 ⚛️ 원자적 연산

메모리의 읽기와 쓰기가 분리되지 않고 하나의 쪼갤 수 없는 단위로 실행되어야 합니다. 두 코어가 동시에 같은 위치를 수정하려 할 때, 하드웨어가 순서를 보장합니다.

LL/SC (Load-Linked / Store-Conditional)

최근 아키텍처(ARM, MIPS, RISC-V)에서 표준으로 채택된 원자적 연산 방식입니다. 버스를 잠그지 않으면서도 안전한 원자적 갱신을 보장합니다.

📝 LL/SC를 이용한 원자적 스왑 (Atomic Swap) 구현 ; R1에 새 값, R4에 lock 주소 try: MOV R3, R4 ; lock 주소 복사 LL R2, 0(R3) ; Load-Linked: lock 값 읽기 SC R1, 0(R3) ; Store-Conditional: 새 값 쓰기 시도 BEQZ R1, try ; 실패(R1=0)면 재시도 MOV R1, R2 ; 성공! 원래 값을 R1에 저장

LL은 메모리에서 값을 읽으면서 해당 주소를 "감시"합니다. SC는 LL 이후 다른 코어가 해당 주소를 건드리지 않았을 때만 쓰기가 성공하고 1을 반환합니다. 다른 코어가 개입했다면 0을 반환하여 실패를 알립니다. 이를 통해 낙관적 동시성(Optimistic Concurrency)을 구현합니다.

4.2 🔄 스핀 락과 최적화

가장 단순한 락 구현인 스핀 락(Spin Lock)은 락이 해제될 때까지 루프를 돌며 상태를 확인합니다:

📝 기본 스핀 락 vs 최적화된 스핀 락 // 나쁜 예: 단순 스핀 락 — 무효화 트래픽 폭발! lock: LL R2, 0(R1) BNEZ R2, lock ; lock이 1이면 계속 재시도 DADDUI R2, R0, #1 SC R2, 0(R1) BEQZ R2, lock // 좋은 예: Test-and-Test-and-Set — 로컬 캐시에서 스핀 lockit: LD R2, 0(R1) ; 일반 Load: 캐시 히트! BNEZ R2, lockit ; 로컬 캐시에서 스핀 (버스 트래픽 없음) LL R2, 0(R1) ; lock이 0이면 LL로 확인 BNEZ R2, lockit DADDUI R2, R0, #1 SC R2, 0(R1) BEQZ R2, lockit

최적화된 버전은 먼저 일반 Load로 로컬 캐시에서 스핀합니다. 락이 해제되어 무효화가 발생할 때만 LL/SC를 시도하므로, 버스 트래픽이 대폭 감소합니다. 추가로 지수 백오프(Exponential Back-off)를 적용하면, 락 획득 실패 시 대기 시간을 지수적으로 늘려 경합을 더욱 줄일 수 있습니다.

5. 📏 메모리 일관성 모델 (Memory Consistency Models)

캐시 일관성(Coherence)이 하나의 메모리 주소에 대한 규칙이라면, 메모리 일관성(Consistency)은 서로 다른 주소들에 대한 메모리 연산들이 다른 프로세서에게 어떤 순서로 관찰되는가에 대한 규칙입니다. 이 구분은 매우 미묘하지만 올바른 병렬 프로그램 작성에 절대적으로 중요합니다.

5.1 📐 순차 일관성 (Sequential Consistency)

Lamport(1979)가 정의한 가장 직관적인 모델입니다: 모든 프로세서의 모든 메모리 연산이 마치 하나의 프로세서에서 순차적으로 인터리빙된 것처럼 모든 코어에게 관찰되어야 합니다.

💡 순차 일관성의 대가: SC를 엄격히 보장하려면, 쓰기 버퍼(Write Buffer), 명령어 재배치(Reordering), 투기적 로드(Speculative Load) 등 현대 프로세서의 핵심 최적화 기법을 극도로 제한해야 합니다. 이로 인해 심각한 성능 저하가 발생하므로, 상용 프로세서는 SC를 그대로 구현하지 않습니다.

5.2 🔓 완화된 일관성 (Relaxed Consistency)

성능을 위해 특정 메모리 연산 순서의 재배치를 허용하는 모델입니다:

모델허용하는 재배치대표 아키텍처엄격도
SC없음 (모든 순서 보존)MIPS (교과서 기준)최고
TSOW→R (쓰기 후 읽기 순서)x86, SPARC높음
Weak / ReleaseW→R, W→W, R→R, R→WARM, RISC-V, PowerPC낮음

x86의 TSO(Total Store Order)는 쓰기 버퍼 때문에 쓰기 이후의 읽기가 쓰기보다 먼저 완료될 수 있는 것만 허용합니다. ARM과 RISC-V의 약한 일관성 모델은 거의 모든 재배치를 허용하여 하드웨어 설계의 자유도를 극대화합니다.

메모리 펜스/배리어 (Memory Fence/Barrier)

완화된 모델에서 프로그래머가 "이 시점에서 이전의 모든 메모리 연산이 완료되어야 한다"고 명시적으로 선언하는 명령어입니다.

📝 메모리 배리어 사용 예시 (ARM) // 스레드 A: flag를 사용한 데이터 전달 data = 42; // ① 데이터 쓰기 DMB ISH // ② Data Memory Barrier: ①이 완료된 후에만 ③ 진행 flag = 1; // ③ flag 설정 // 스레드 B: flag 확인 후 데이터 읽기 while(flag == 0); // flag 대기 DMB ISH // ④ 배리어: flag 읽기가 완료된 후에만 data 읽기 print(data); // ⑤ 반드시 42가 출력됨

배리어 없이는 ARM에서 스레드 B가 flag=1을 보면서도 data=0(이전 값)을 읽을 수 있습니다. 하드웨어의 재배치 최적화가 프로그래머의 의도와 충돌하는 것입니다. 이것이 병렬 프로그래밍이 어려운 근본 이유 중 하나입니다.

6. 🧵 동시 멀티스레딩 (Simultaneous Multithreading, SMT)

멀티코어가 물리적 코어를 추가하는 방식이라면, SMT는 하나의 물리적 코어를 논리적으로 여러 코어처럼 보이게 하는 기술입니다. 슈퍼스칼라 프로세서의 다중 발행 슬롯 중 사용되지 않는 빈 슬롯에 다른 스레드의 명령어를 채워 넣어 활용도를 높입니다.

6.1 멀티스레딩의 세 가지 변형

🧵 멀티스레딩 방식 비교 (발행 슬롯 활용)

슈퍼스칼라 (단일 스레드)

회색 = 빈 슬롯 (ILP 한계로 낭비)

SMT (2-way, 예: Hyper-Threading)

스레드 A   스레드 B → 빈 슬롯이 크게 감소!

방식스레드 전환 시점지연 은닉하드웨어 비용
Fine-grained MT매 사이클마다 라운드로빈짧은 지연도 은닉스레드별 PC/레지스터
Coarse-grained MT긴 지연 발생 시만 전환L3 미스 같은 긴 지연만Fine-grained보다 적음
SMT같은 사이클에 여러 스레드 동시 발행모든 유형의 지연스레드별 PC/레지스터 + 공유 자원 분할

SMT의 핵심은 물리 코어의 연산 유닛, 캐시, 분기 예측기를 여러 스레드가 시분할(Time-sharing)하면서도, 같은 사이클 내에서 서로 다른 스레드의 명령어를 동시 발행할 수 있다는 점입니다. Intel의 Hyper-Threading은 2-way SMT로, 하나의 물리 코어가 OS에 2개의 논리 코어로 보입니다.

7. 🔮 2026년 TLP 기술 최신 동향

7.1 🔴 AMD EPYC 9005 "Turin" — 192코어의 위력

AMD EPYC 9005(코드명 Turin)은 Zen 5 아키텍처를 기반으로 2024년 10월 출시되었습니다. 교과서가 설명한 TLP의 모든 개념이 이 칩에서 극한의 규모로 구현됩니다.

192 최대 코어 (Zen 5c)
16 CCD (Core Chiplet Die)
12ch DDR5-6400 메모리
17% IPC 향상 (vs Zen 4)

칩렛 아키텍처와 NUMA: EPYC 9005의 핵심은 교과서의 DSM/NUMA 개념이 단일 소켓 내부에서 구현된 것입니다. 최대 16개의 CCD(Core Compute Die)가 중앙의 IOD(I/O Die)에 GMI(Global Memory Interconnect)로 연결됩니다. IOD에는 12개의 메모리 컨트롤러가 배치되어 있고, NPS(NUMA Per Socket) 설정을 통해 메모리를 1/2/4개의 NUMA 노드로 분할할 수 있습니다.

Zen 5 vs Zen 5c: Zen 5 CCD는 8코어/32MB L3 캐시를 가진 TSMC 4nm 다이이고, Zen 5c CCD는 16코어/32MB L3 캐시를 가진 TSMC 3nm 다이입니다. Zen 5c는 코어당 L3 캐시가 절반(2MB vs 4MB)이지만 동일한 ISA를 지원하므로, 소프트웨어적으로 투명한 밀도 최적화를 제공합니다.

캐시 일관성: AMD EPYC은 MOESI 프로토콜을 사용합니다. Owned 상태 덕분에 수정된 캐시 블록을 공유할 때 메모리까지 Write-back하지 않아도 되어, 코어 간 데이터 공유 시 대역폭을 절약합니다. 멀티소켓 구성에서는 Infinity Fabric xGMI 링크(32 Gbps)를 통해 칩 간 일관성을 유지합니다.

7.2 🔵 Intel Xeon 6 — P-Core와 E-Core의 분리

Intel은 Xeon 6 세대부터 P-Core(성능)와 E-Core(효율)를 별도 제품으로 분리하는 파격적 결정을 내렸습니다:

🏔️ Granite Rapids (P-Core)

최대 128 P-코어 (Redwood Cove). 3개의 Intel 3 공정 컴퓨트 다이 + 2개의 Intel 7 공정 I/O 다이. AVX-512, AMX(AI Matrix Extensions), SMT 지원. 12채널 DDR5-6400/MCR-8800, 최대 504MB L3 캐시.

🌲 Sierra Forest (E-Core)

최대 288 E-코어 (Crestmont). 밀도 최적화로 클라우드-네이티브 워크로드에 특화. AVX-512/AMX 미지원, SMT 미지원. 와트당 성능에서 2.4배 향상. 동일 Birch Stream 소켓 호환.

CXL 2.0 지원: Granite Rapids와 Sierra Forest 모두 CXL(Compute Express Link) 2.0을 지원합니다. CXL은 교과서의 공유 메모리 개념을 칩 외부로 확장한 기술로, PCIe 물리 계층 위에 캐시 일관성 프로토콜을 구현하여 DRAM 확장 모듈이나 가속기의 메모리를 CPU의 메모리 공간에 일관성 있게 통합합니다. CXL Type 3 디바이스는 서버의 메모리 용량을 물리적 DIMM 슬롯의 한계를 넘어 확장할 수 있게 합니다.

7.3 🏗️ SMT의 미래: 폐지인가, 진화인가?

흥미롭게도, Intel의 차세대 클라이언트 아키텍처(Lunar Lake, Arrow Lake)에서는 SMT가 제거되었습니다. P-Core(Lion Cove)가 넓은 발행 폭과 깊은 파이프라인으로 단일 스레드 성능을 극대화하면서, SMT의 이점이 줄어들고 보안 취약점(Spectre, MDS)에 대한 우려가 커졌기 때문입니다.

반면 서버 영역에서 SMT는 여전히 유효합니다. Granite Rapids Xeon 6은 2-way SMT를 유지하며, AMD EPYC Turin Zen 5도 코어당 2스레드를 지원합니다. 서버 워크로드(VM, 컨테이너, 데이터베이스)는 스레드 수가 성능에 직접적으로 비례하는 경우가 많기 때문입니다. 단, Sierra Forest의 E-Core(Crestmont)는 SMT를 지원하지 않습니다.

7.4 📊 2026 서버 프로세서 비교

사양AMD EPYC 9965
(Zen 5c Turin)
AMD EPYC 9755
(Zen 5 Turin)
Intel Xeon 6980P
(Granite Rapids)
Intel Xeon 6900E
(Sierra Forest)
코어/스레드192/384128/256128/256288/288
코어 유형Zen 5c (3nm)Zen 5 (4nm)Redwood Cove (Intel 3)Crestmont (Intel 3)
L3 캐시384 MB512 MB504 MB-
메모리12ch DDR5-640012ch DDR5-640012ch DDR5-880012ch DDR5-6400
TDP500W500W500W350W
SMT✅ 2-way✅ 2-way✅ 2-way❌ 없음
인터커넥트Infinity FabricInfinity FabricUPI 24 GT/sUPI 24 GT/s
일관성 프로토콜MOESIMOESIMESIFMESIF
CXL--CXL 2.0CXL 2.0

7.5 🔗 칩렛과 인터커넥트의 진화

교과서가 설명한 SMP 대 DSM의 구분이 2026년에는 칩 내부에서도 적용됩니다. AMD EPYC의 CCD-IOD 구조는 본질적으로 칩 내부 NUMA입니다. Intel Granite Rapids의 3개 컴퓨트 다이 + 2개 I/O 다이 구조도 EMIB(Embedded Multi-die Interconnect Bridge)로 연결된 칩렛 설계입니다.

향후 UCIe(Universal Chiplet Interconnect Express) 표준이 보급되면, 서로 다른 벤더의 칩렛을 하나의 패키지에 결합하는 것이 가능해지며, 캐시 일관성 프로토콜의 중요성은 더욱 커질 것입니다. CXL 3.0은 메모리 풀링과 하드웨어 레벨의 메모리 공유를 지원하여, 교과서의 DSM 개념을 랙 규모로 확장합니다.

8. 📝 핵심 요약

🎯 Chapter 5 핵심 키워드 정리

멀티프로세서 분류: SMP(UMA, 동일 지연) vs DSM(NUMA, 로컬/원격 차이) — 코어 수 증가에 따라 NUMA가 필수

캐시 일관성: MSI→MESI→MOESI 프로토콜, 스누핑(SMP)과 디렉터리(DSM) — 멀티코어의 정확성 보장

동기화: 원자적 연산(LL/SC), 스핀 락, 지수 백오프 — 경쟁 상태 방지의 하드웨어 지원

메모리 일관성: SC vs TSO vs Weak — 성능과 프로그래밍 난이도의 트레이드오프, 배리어로 제어

SMT: 단일 코어의 빈 발행 슬롯을 다른 스레드로 채움 — 서버에서 여전히 유효, 클라이언트에서는 퇴조

2026 트렌드: 192/288코어 서버 CPU, 칩렛 NUMA, CXL 2.0 메모리 확장, UCIe 칩렛 표준화

교과서가 2~32개 코어를 중심으로 설명한 TLP의 원리는 2026년 192~288코어 서버에서도 그대로 적용됩니다. 캐시 일관성 프로토콜은 더 정교해졌고(MESIF, MOESI), 인터커넥트는 버스에서 포인트-투-포인트 링크로 진화했지만, 공유 메모리의 일관성을 보장하면서 확장성을 확보한다는 근본 과제는 변하지 않았습니다.

특히 칩렛 아키텍처의 보편화는 교과서의 SMP/DSM 경계를 흐리게 만들고 있습니다. 단일 패키지 안에서도 NUMA 특성이 나타나며, CXL로 인해 메모리 계층이 칩 외부까지 확장됩니다. 아키텍처를 이해하는 것은 곧 이 복잡한 메모리 계층에서 데이터를 어디에 배치할 것인가를 결정하는 능력입니다.

TLP Multiprocessor SMP / UMA DSM / NUMA Cache Coherence Snooping Protocol Directory Protocol MSI / MESI / MOESI Write-Invalidate Synchronization LL/SC Spin Lock Memory Consistency TSO Memory Barrier SMT Hyper-Threading AMD EPYC Turin Intel Xeon 6 CXL 2.0 Chiplet Infinity Fabric

댓글