(53) Hardware support
### Hardware support ###
: page table 기본 register(PTBR)는 page table을 가리킨다.
: page table 길이 register(PLTR)는 page table의 크기를 나타낸다.
: 모든 data/instruction acess에는 두 번 memory access가 필요하다.(문제)
=> 1. table table 2. data/instruction => TLB사용으로 해결
< Translation look-aside buffer (TLB) >
: paging 기반 성능을 끌어 올리기 위한 작고 data 속도가 빠른 하드웨어 cache이다.
(cpu 내에 위치, associative high-speed memory)
: 각 항목은 key(page number) 와 value(page number에 대응되는 frame) 두 부분으로 구성된다.
: 일반적으로 main memory보다 용량이 작다(64 to 1,024 entries)
=> 일부 entries만 TLB에 올라간다.
: TLB miss(요청한 page number가 TLB에 없는 경우)에서는
다음에 더 빠르게 access 할 수 있도록 TLB에 값이 load된다.
=> Repacement 정책을 고려해야한다.
=> 일부 항목은 영구적으로 빠르게 access 할 수 있도록 유선으로 연결할 수 있다.
: 주소 공간 식별자(ASID,Address-space identifiers)는 TLB내에 저장된 page number가 어떤 process에 속해있는지 알려주는 식별자
: ASID가 있으면 TLB를 여러 process가 공용으로 사용할 수 있다. => context switching이 발생해도 다른 data를 넣기 위해 TLB에 flush할 필요가 없다
=> 삭제 필요 없이 TLB계속 사용하면 된다. => TLB교체 시간 없어진다
=> context switching overhead가 줄어든다. but TLB를 나눠 쓰기 때문에 각 process가 사용하는 공간은 적어진다.
: ASID 지원이 없으면 다음 실행 process가 잘못된 변환 정보를 사용하지 않도록 TLB를 flush해야 한다.