TLB and Cache Interaction
CPU가 주는 address는 virtual address이다.
그런데 main memory와 cache memory는 physical address를 사용한다.
따라서 TLB를 이용해서 address translation을 해야 한다.
Address Translation 과정
- CPU는 virtual address(VPN + page offset)을 준다.
- 들어온 VPN을 TLB에서 parallel matching을 한다.
- TLB hit : 해당 entry에서 PPN을 얻는다.
- TLB miss : main memory의 page table에서 해당 virtual page의 PTE를 찾는다. → page hit/miss
- physical address를 완성한다.
- physical address를 cache에 맞는 address로 쪼개서 cache access를 한다.
- PPN + Page offset → tag + index + block offset + byte offset
- cache hit/miss를 판단한다.
- index를 통해서 block을 찾고,
- 그 block의 index가 내가 원하는 block의 index와 같은지,
- valid bit이 1인지 확인한다.
- cache hit/miss
- cache hit : byte offset을 이용해서 원하는 내용을 반환한다.
- cache miss : main memory에서 block을 fetch 한다.
전체 과정
TLB가 cache와 virtual memory의 연결고리 역할을 한다.
전체 과정은 아래 그림과 같다.
- CPU는 virtual address를 내보내고, TLB를 이용해서 physical address로 바꾼다.
- physical address를 이용해서 cache에 접근해서 원하는 내용을 얻는다.
전체 과정 중에서 발생할 수 있는 경우는 다음과 같다.
- Best case
- TLB hit, cache hit
- clock cycle time을 결정한다.
- 중간
- TLB hit, cache miss : L2 cache(혹은 main memory)에 가서 block을 가져와야 함
- TLB miss
- main memory에 가서 새로운 VPN, PPN pair을 만들고 TLB에 update 한다.
- cache에 가서 hit/miss를 판단한다.
- Worst case
- All miss : TLB miss, page table miss(page fault), cache miss
- TLB miss가 나서 translation을 위해 main memory에 가서 page를 가져와야 함
- page table에도 원하는 virtual page가 caching 되어있지 않아서 disk에 가서 가져와야 함
- address translation을 해서 cache에 갔더니 cache miss가 나서 L2 cache(혹은 main memory)에 가서 block을 가져와야 함
Physical Cache vs. Virtual Cache
요즘 범용 컴퓨터는 physical cache를 사용한다.
Virtual cache의 성능이 잘 나오지 않기 때문이다.
- Physical cache
- TLB를 이용해서 physical address로 바꾸고, cache는 physical address를 이용하는 것을 말한다.
- Virtual cache
- address translation 과정 없이 cache가 virtual address를 사용하는 것을 말한다.
- 장점
- address translation time을 줄일 수 있다.
- 그로인해 hit time이 빨라진다.
- 그로인해 processor의 speed가 빨라진다.
- 단점
- virtual address는 모든 process에서 같은 주소를 가질 수 있다.
- 따라서 cache가 virtual address를 사용하기 위해서는 어느 process의 주소값인지를 구분해야 한다.(aliasing)
- 따라서 이에 따른 overhead가 발생하게되고, 실제 성능은 잘 나오지 않는다.
'Computer Science > Computer Architecture' 카테고리의 다른 글
5. Virtual Memory (0) | 2021.06.13 |
---|---|
5. Multilevel Caches (0) | 2021.06.11 |
5. Write Strategy (0) | 2021.06.11 |
5. Set-Associative Mapping (1) | 2021.06.11 |
5. Direct Mapping (0) | 2021.06.11 |
댓글