가상 메모리 주소를 물리적인 주소로 변환하는 속도를 높이기 위해 사용되는 캐시다.
페이지 테이블은 메인 메모리에 존재하므로 CPU가 메인 메모리에 최소 2번 접근해야 원하는 데이터를 얻을 수 있다.
한 번은 페이지 테이블에 접근, 또 한 번은 페이지 테이블을 기반으로 실제 메모리에 접근한다.
이런 메모리의 접근을 줄이고자 나온 게 TLB (Translation Look-aside Buffer)다.
하드웨어적으로 지원하여 page table의 임시저장 cache 역할을 한다.
Translation Lookaside Buffer
TLB(Translation Lookaside Buffer, 페이지 정보 캐시)
TLB는 최근에 읽었던 page table을 매핑하여 저장하는데 크기는 64 ~ 1024 entry 정도로 굉장히 작다.
이유는 하드웨어 복잡성과 접근 시간을 최소화하여 메모리에 빠르게 접근 가능하게 하기 위함이다.
CPU가 가상 주소로 메모리에 접근하려고 할 때 우선 TLB에 접근하여 가상 주소에 해당되는 물리주소를 찾고 TLB에 매핑이 존재하지 않으면 MMU가 페이지 테이블에서 해당되는 물리 주소로 변환한 후 메모리에 접근한다.
이점으로 TLB가 물리주소를 갖고 있으면 메모리에 두번 들릴 필요없이 바로 해당 물리주소를 찾아갈 수 있습니다.
동작 원리
- CPU에서의 정보로 TLB를 탐색한다.
- TLB에 있으면 바로 물리 주소에 접근한다.
- TLB에 없으면 페이지 테이블로 들어간다.
'CS > 운영체제' 카테고리의 다른 글
교착상태(DeadLock) (0) | 2024.07.04 |
---|---|
스핀락, 뮤텍스, 세마포어 (0) | 2024.07.04 |
요구 페이징과 페이지 교체 알고리즘 (0) | 2024.06.23 |
페이징 (0) | 2024.06.23 |
가상 메모리와 주소 공간 (0) | 2024.06.18 |