Learning
토픽 40 / 85·메모리 관리

TLB (Translation Lookaside Buffer)

TLB (Translation Lookaside Buffer)

가상 주소를 물리 주소로 변환하는 페이지 테이블 엔트리를 캐싱하는 하드웨어 캐시로, MMU 내부에 위치하며 주소 변환을 고속화하여 메모리 접근 성능을 크게 향상

목적: 주소 변환 가속, 페이지 테이블 접근 감소, 메모리 성능 향상

특징: 하드웨어 캐시, MMU 내부, 연관 캐시(Associative), 빠른 검색(1-2 사이클), 작은 크기(64-512 엔트리)

구성: VPN(Virtual Page Number) → PFN(Physical Frame Number) 매핑, Valid 비트, Dirty 비트, Protection 비트

동작

  • TLB Hit: VPN이 TLB에 있음 → PFN 즉시 반환 → 1-2 사이클
  • TLB Miss: VPN이 TLB에 없음 → 페이지 테이블 워크 → TLB 갱신 → 수십-수백 사이클

TLB Miss 처리: 하드웨어(x86, ARM) 또는 소프트웨어(MIPS, RISC-V) 페이지 테이블 워크

TLB 플러시: 컨텍스트 스위칭 시 TLB 무효화(전체 또는 선택적), ASID(Address Space ID)로 완화

ASID (Address Space Identifier): 각 프로세스에 ID 부여 → TLB 엔트리에 ASID 추가 → 컨텍스트 스위칭 시 플러시 불필요

성능 지표: TLB Hit Rate(보통 95-99%), TLB Miss Penalty(수십-수백 사이클)

TLB 크기: 작음(64-512 엔트리), 연관도(4-way, 8-way, Fully Associative), 다단계(L1 TLB, L2 TLB)

장점: 주소 변환 고속화(1-2 사이클), 메모리 접근 성능 향상, 하드웨어 지원

단점: 작은 크기(커버리지 제한), 플러시 오버헤드, Huge Page로 완화

적용사례: 모든 현대 CPU(x86-64, ARM, RISC-V), 가상 메모리, 페이징

비교: TLB Hit(1-2사이클/빠름) vs Page Table Walk(수십-수백사이클/느림) vs Huge Page(TLB 압력 감소)

연관: MMU, 페이징, 가상 메모리, ASID, Huge Page