수정입니다

19. Translation Lookaside Buffers 본문

전공/운영체제

19. Translation Lookaside Buffers

nongdamgom 2024. 1. 14. 20:28

 

TLB

  • Part of the chip's memory-management unit(MMU)
  • 자주 쓰이는 PTE를 TLB에 저장하는 방식 
  • cache memory의 일

  • VA에서 PA 변환하려 page table 보기 전에 TLB를 먼저 보고, TLB에 있으면 굳이 page table을 보려고 memory를 방문하지 않고도, MMU에서 알아서 TLB를 보고 PA로 변환
  • 대신 TLB는 몹시 작다

 

 

TLB Basic Algorithms

  • TLB hit이고, accessible 하면 바로 TLB 내부에서 PFN 추출 후 PA 변환
  • TLB hit이지만 inaccessible이면 exception 발생

  • TLB miss 나면, page table을 봐서 PTE를 꺼냄 
  • 이후 그 miss 난 PTE를 TLB에 insert 하고, retry 해서 TLB hit으로 만들어 줌
  • => PTE에서 physical mem으로 접근하는게 아니라 걍 PTE 정보랑 VPN 같이 TLB에 넣어주고 재실행

 

 

 

Accessing An Array

  • TLB 사용으로 performance 증가 
  • 이 경우는 spatial locality(접근했던 곳의 인접한 곳을 다시 접근할 확률이 높음)

** Temporal locality (방금 접근한 주소를 다시 접근할 확률이 높음)

 

 

 

 

Who Handles The TLB Miss?

  • CISC vs RISC

CISC (Intel)

  • hardware가 자동으로 page table을 보고, 맞는 entry를 찾고 translation 해주고 update, retry 알아서 해줌
  • hardware-managed TLB

RISC(ARM)

  • hardware는 그냥 exception만 띄움 => trap handler 발생
  • OS로 넘어가서 TLB miss 처리
  • prefetch abort exception (명령어 패치할 때)
  • data abort exception(load/store 같은 명령어 처리할 )
  • software-managed TLB

 

 

 

TLB Control Flow algorithm(OS handled)

  • MMU 처리랑 비슷하나, TLB miss가 났을 때, hardware가 exception 처리만 한다는 점이 다름
  • (이후에는 OS가 trap handler로 처리)

 

 

 

TLB entry

  • fully associative method => (VPN의 번호가 어떻든 상관없이 걍 TLB 내의 위치 자유, 정렬x)
  • hardware가 모든 TLB를 병렬적으로 찾음 (빠르게 찾으려고)

 

 

 

TLB Issue : Context Switching 

  • process A가 실행 중에 TLB에 VPN 10에 대한 정보를 넣고
  • process B로 switching 했을 때, B도 같은 VPN 10에 대한 정보를 TLB에 넣을 수 있음(VPN은 process마다 고유하니까)
  • 이 때 TLB table 내에서는 VPN 번호가 같기 때문에 혼란이 올 수 있음

 

To solve Problem

  • address space identifier(ASID) 를 TLB에 부여 
  • 예전에는 switching 할때마다 TLB를 다 날리고 다시 채우는 방식으로 했다고 한다.

 

 

 

TLB Replacement Policy

  • LRU(Least Recently Used)
  • 제일 오랫동안 안 쓴 공간부터 치워버리는 방식

'전공 > 운영체제' 카테고리의 다른 글

26. Concurrency : An Introduction  (1) 2024.01.15
20. Paging: Smaller Tables  (1) 2024.01.14
18. Paging: Introduction  (0) 2024.01.14
17. Free-Space Management  (1) 2024.01.11
16. Segmentation  (2) 2024.01.09