Cache Memory

00SNU3K·2021년 8월 6일
0
  • Cache Memory = CPU와 주기억장치(메모리) 사이에 속도 차이를 극복하기 위해서 사이에 존재하는 고속 버퍼 메모리

    • CPU - 캐쉬메모리 - 메모리
  • 캐쉬메모리 Mapping 방식

    • 직접사상(Direct Mapping)

      • 메인메모리를 여러 구역으로 분할, 케시 슬롯과 매핑
      • 높은 캐시 미스율
    • 연관사상(Associative Mapping)

      • 메인메모리의 각 블록이 캐시의 어느 슬롯이든 적재 가능
      • 성능/캐시적중률이 높음, 구현 하드웨어가 복잡하여 구현 비용 상승 (하드웨어를 통해서 구현됨), 유연성이 떨어짐
    • 직접/연관(Direct/Associative Mapping)

      • 캐시와 메모리가 M대 1로 대응하여 절충 방식
      • 캐시 Fin/Fout 발생 증가, 구현 비용이 많이 듬
    • 연관 > 직접/연관 > 직접

  • 여기서 CPU가 연산하는 과정에서 케쉬메모리와 메모리 사이의 저장된 값들이 순간적으로 다를 수도 있다

    • 캐쉬-메모리의 일관성 문제

    • 해결방법?

      • CPU가 케쉬메모리 바꿀때 메모리도 같이 바꾸는법 - Write-through
      • CPU가 케쉬메모리만 바꿨다가 일정시간이 지나면 메모리를 한꺼번에 바꾸는법 - Write-back


** 한편, 케시 메모리가 꽉차면 무언가는 주기억장치에 다시 접근하여 올리고 어떤 무언가는 내려야함.

  • FIFO(First In First Out)

    • 캐시내에 오래 있었던 Page 교체
  • LRU(Least Recently Used)

    • 가장 오랫동안 사용되지 않은 Page 교체
  • LFU(Least Frequently Used)

    • 참조횟수를 가장 적은놈을 내리자
  • NUR(Not Used Recently)

    • 참조비트와 수정비트가 Set, 즉 미사용한 놈을 내리자
  • SCR(Second Chance Replacement)

    • 참조비트만 둬서 1이 default인데 참조할경우 1->0. 0->교체 / 이런 방식으로 기회를 한번 더주고 놈을 내리자
  • Optimal

    • 향후 가장 참조되지 않을 Page 교체
    • 실현 불가능함
profile
네트워크 전문가를 꿈꾸며

0개의 댓글