본문으로 건너뛰기

TLB에 대해서 설명해주세요.

페이지 테이블은 메모리에 존재하는데 그렇다면 CPU는 메인 메모리에 최소 2번은 접근해야 원하는 데이터를 얻을 수 있다.

  1. 페이지 테이블에 한번 접근
  2. 페이지 테이블을 기반으로 실제 메모리 접근

이와 같은 문제를 해결하기 위해 CPU 곁에(일반적으로 MMU 내에) TLB(Translation Lookaside Buffer)라는 페이지 테이블의 캐시 메모리를 둔다. TLB는 페이지 테이블의 캐시이기 때문에 페이지 테이블의 일부 내용을 저장한다.

참조 지역성에 근거해 주로 최근에 사용된 페이지 위주로 저장한다.


CPU에서 나온 정보를 가지고 TLB를 탐색하고, 있다면 바로 물리주소에 접근하고 없다면 페이지 테이블로 들어간다.

CPU가 발생한 논리 주소에 대한 페이지 번호가 TLB에 있을 경우 이를 TLB 히트라고 한다. 이 경우에는 페이지가 적재된 프레임을 알기 위해 메모리에 접근할 필요가 없다. 그렇기에 메모리에 접근을 한 번만 하면 된다. 하지만 단일 페이지 번호가 TLB에 없을 경우 어쩔 수 없이 페이지가 적재된 프레임을 알기 위해 메모리 내의 페이지 테이블에 접근하는 수밖에 없다. 이를 TLB 미스라고 한다.

Reference