page table을 사용함에 있어 메모리 접근 횟수를 줄이기 위해 사용한다.
자주 사용되는 메모리에 대한 정보를 Cache에 넣어 관리한다.
- CPU 안의 MMU에 상주한다.
(Temporal) Locality를 이용한다.
Fully associative cache
Associative Memory
- Parallel하게 search한 후, 짝을 이루는 값을 도출한다.
- CAM(Content Addressable Memory)
Cache tag는 logical page number이며, value는 PTEs이다.
MMU는 PTE + offset으로 물리 주소를 계산한다.
TLB miss가 나면 page table을 참조한다.
메모리를 많이 사용하는 경우
Outer page table : int의 경우 4KB 필요
Page table : 4MB 필요
→ Single-level보다 성능이 나쁘다
메모리를 적게 사용하는 경우
Outer page table : 4KB 필요
Page table : 4KB 필요
필요할 때마다 동적으로 추가한다.
→ Single-level page보다 효율적
성능상의 문제로 사용되지 않는다
Hash table의 값이 같은 것을 순차적으로 기록하고 linked list로 연결한다
→ 오버헤드가 커서 사용하지 않는다.
Page가 shared memory를 만들기에 적합하다.
page가 공통적으로 사용하는 부분은 중복되지 않게 메모리에 올려 메모리 효율을 올릴 수 있다.