본문 바로가기
Computer Science/Computer Architecture

5. Cache - Virtual Memory Interaction

by Gofo 2021. 6. 13.

TLB and Cache Interaction

CPU가 주는 address는 virtual address이다.

그런데 main memory와 cache memory는 physical address를 사용한다.

 

따라서 TLB를 이용해서 address translation을 해야 한다.

 

Address Translation 과정

  1. CPU는 virtual address(VPN + page offset)을 준다.
  2. 들어온 VPN을 TLB에서 parallel matching을 한다.
    • TLB hit : 해당 entry에서 PPN을 얻는다.
    • TLB miss : main memory의 page table에서 해당 virtual page의 PTE를 찾는다. → page hit/miss
  3. physical address를 완성한다.
  4. physical address를 cache에 맞는 address로 쪼개서 cache access를 한다.
    • PPN + Page offset → tag + index + block offset + byte offset
  5. 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

댓글