Translate lookaside buffer

Ahn9807 (토론 | 기여)님의 2023년 2월 5일 (일) 08:53 판 (새 문서: 분류: 메모리 관리 == 개요 == TLB란 CPU에 있는 page만을 위한 캐시를 지칭하는 말이다. 변환 색인 버퍼(Translation Lookaside Buffer, TLB)는 가상 메모리 주소를 물리적인 주소로 변환하는 속도를 높이기 위해 사용되는 캐시로, 약칭은 TLB이다. TLB는 최근에 일어난 가상 메모리 주소와 물리 주소의 변환 테이블을 저장하기 때문에 일종의 주소 변환 캐시라고 할 수 있다. TLB...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


개요

TLB란 CPU에 있는 page만을 위한 캐시를 지칭하는 말이다.

변환 색인 버퍼(Translation Lookaside Buffer, TLB)는 가상 메모리 주소를 물리적인 주소로 변환하는 속도를 높이기 위해 사용되는 캐시로, 약칭은 TLB이다. TLB는 최근에 일어난 가상 메모리 주소와 물리 주소의 변환 테이블을 저장하기 때문에 일종의 주소 변환 캐시라고 할 수 있다. TLB는 CPU와 CPU 캐시 사이, CPU 캐시와 메인 메모리 사이 등 여러가지 다른 레벨의 캐시들 사이에서 주소를 변환하는데 사용할 수 있다. 현재 모든 데스크탑 및 서버용 프로세서는 하나 또는 그 이상의 TLB를 메모리 관리 하드웨어에 가지고 있다. 페이지 단위나 세그먼트 단위로 처리하는 가상 메모리를 사용하는 거의 모든 하드웨어는 TLB를 사용한다. CPU는 1차적으로 TLB에 접근하여 원하는 페이지가 존재하는지 탐색하고, TLB에 존재하지 않을 경우 MMU의 페이지 테이블을 참조한다.

Cyclestlbhit = TLBHitRate * TLBHitPenalty

Cyclestlbmiss_cache = TLBMissRatecache * TLBMissPenaltycache

Cyclestlbmiss_full = TLBMissRatefull * TLBMissPenaltyfull

TLBMissCycles = Cyclestlbmiss_cache + Cycles_tlbmiss_full

TLBMissTime = (TLB Miss Cycles)/(Clock rate)

TLB 101

  • 아키텍쳐에 따라서 TLB가 Huge Page를 위해서 사용되는 양과, 일반적인 크기의 page의 할당을 위해서 사용하는 양이 다를 수 있다. 이런 구조에서는 오히려 Huge Page를 사용하는 것이 성능을 하락 시킬 수 있다.