[OS] TLB(Translation Lookaside Buffer)

jh Seo·2026년 3월 14일

운영체제

목록 보기
11/16

TLB(Translation Lookaside Buffer)

정의

페이지 테이블의 임시 저장소 역할을 하는 고속 하드웨어 캐시.

목적

가상 주소 → 물리 주소 변환 시 발생하는 메모리 접근 오버헤드 최소화.

특징

  • 고속 성질: SRAM 기반으로 CPU와 가까이 위치해 검색 시간이 극히 짧음.

  • 병렬 검색: TLB 내의 모든 엔트리를 동시에 검색(Associative Mapping)하여 속도를 극대화함.

  • 성능: TLB Hit 시 메모리 접근 시간을 절반 가까이 단축함.

  • 참조 지역성: 프로그램은 한 번 참조한 근처의 메모리를 반복해서 참조하는 경향이 있기 때문에, 64~1024개의 작은 엔트리만으로도 높은 Hit Ratio를 유지 가능하다.

TLB 구성

VPN(virtual page number)

  • 가상 페이지 번호

PFN(Page Frame Number)

  • 물리 페이지의 프레임 번호

Other Bits

  • Valid bit
    • 페이지가 물리 메모리에 저장되어 있다면 1, 아니면 0 값을 가지는 비트
  • Protection bit
    • 읽기(read), 쓰기(write), 실행(execute) 등의 권한을 설정하여 메모리와 시스템을 보호한다.
  • Recently Used bit
    • 해당 엔트리가 최근에 사용되었는 지 여부를 나타낸다.
    • 보통 LRU 알고리즘을 사용하기 때문에 이 비트를 사용한다.
      • 비트가 0인 엔트리를 우선적으로 교체
  • Dirty bit
    • 페이지에 write 작업이 시행되었으면 1 아니면 0값을 가진다.
  • ASID(Address Space Identifier)
    • 프로세스를 구분하기 위해 사용한다.

TLB 과정

MMU 내부에 TLB가 포함되어 있으며, 주소 변환 시 TLB를 먼저 확인한다.
CPU가 가상 주소로 메모리에 접근하려고 할 때, 우선 TLB에 접근해 가상 주소에 해당하는 물리주소를 찾는다.
-> TLB에 매핑이 존재하지 않으면 , MMU가 페이지 테이블에서 해당되는 물리 주소로 변환한 후 메모리에 접근

  1. Virtual Address를 이용해 테이블 엔트리를 찾는다.
    • Page Number과 ASID를 이용한다.
    • MMU는 CPU 내부의 레지스터 값을 통해 실행 중인 PID를 알 수 있다.
      • 이를 TLB의 ASID와 비교한다.
  2. TLB에 해당 페이지 엔트리를 찾으면 (TLB HIT), 해당 프레임 번호를 반환한다.
    • TLB Miss의 경우
      • page table에 접근하여 필요한 페이지 테이블 Entry를 찾는다.
        • Page Fault 발생 시 paging 기법과 동일한 방법으로 Page를 로드한다.
      • 찾은 page Table Entry를 TLB를 적재한다.
      • 이후 다시 해당 페이지를 찾으면 TLB Hit 된다.
  3. Frame Number과 Offset을 결합해 물리 메모리 접근에 성공한다.

TLB Hit

  • TLB에서 필요한 페이지 정보를 찾은 상황을 의미한다.

TLB Miss

  • TLB에 필요한 페이지 정보가 존재하지 않아 찾지 못한 상황을 의미한다.

TLB Flushing

  • TLB를 강제로 초기화하는 것을 의미한다.
    • Full Flushing - 전부 초기화
    • Partial Flushing - qnqns chrlghk
  • Context Switching이 발생하면 이전 프로세스의 Entry는 필요하지 않으므로 초기화한다.
  • 페이지 테이블이 변경되면 페이지 위치가 변할 수 있으므로 초기화한다.

MMU (Memory Management Unit)

정의

CPU 코어 안에 탑재되어 가상 주소를 물리 주소로 변환하고 메모리를 보호하는 하드웨어 장치.

주요 역할

  • 주소 번역: CPU가 생성한 가상 주소를 실제 RAM의 물리 주소로 매핑.

  • 메모리 보호: 각 페이지에 대한 접근 권한(Read/Write/Execute)을 체크하여 잘못된 접근 차단.

  • 부하 관리: 메모리를 페이지(Page) 단위로 관리하여, 수많은 주소를 일일이 번역하는 대신 효율적인 테이블 구조로 처리.

도입 이점

  • 주소 공간의 독립성: 모든 프로세스가 자신만의 가상 주소 공간을 가지므로, 서로 같은 가상 주소를 사용해도 충돌하지 않음.

  • 논리적 연속성: 물리적으로는 파편화(Fragmentation)되어 흩어져 있는 메모리라도, 가상 주소상에서는 하나의 연속된 공간처럼 보여줌.

TLB (Translation Lookaside Buffer) 이점

  • 메모리 접근 횟수 감소: TLB Hit 시, 메인 메모리의 페이지 테이블을 거치지 않고 물리 주소로 직행할 수 있어 성능이 대폭 향상됨.

    TLB가 없으면 매번 [페이지 테이블 접근 1회 + 실제 데이터 접근 1회 = 총 2회]의 메모리 접근이 필요함.

  • 하드웨어적 속도: SRAM 기반의 고속 전용 회로로 설계되어, 일반 RAM 조회보다 훨씬 빠른 검색 속도를 보장.
  • 참조 지역성(Locality) 활용: CPU가 한 번 접근한 페이지 근처를 다시 접근할 확률이 높다는 특성을 이용해, 작은 크기로도 90% 이상의 높은 적중률(Hit Rate)을 유지.

  • 병렬 탐색: TLB 내부의 엔트리들을 한 번에 동시 비교(Associative Search)하여 탐색 시간을 극소화함.

profile
코딩 창고!

0개의 댓글