보키_기록용

캐시 메모리 본문

공부/IT 기타 상식

캐시 메모리

bokki0117 2023. 3. 9. 13:00

1. 메모리 계층구조 (Memory Hierarchy)

  • 위에서 부터 CPU에 가까움.
  • CPU에 멀어질수록 속도가 느리고 용량이 커짐
  • 메모리 계층구조를 나눈 이유 : 전체 메모리 시스템의 가격 최소화, 가능한 최고의 평균 접근 속도를 달성
    • Register가 제일 빠르지만 이걸 늘리기엔 돈이 매우 많이 듦..

 

2. Cache가 생긴 이유

처음엔 캐시(Cache)가 없었고 CPU, RAM, HDD(하드디스크) 셋이서 데이터를 주고 받았는데, CPU가 버스에 데이터를 주고받는 속도와 Main Memory가 버스에 데이터를 주고받는 속도 차이가 너무 나서 CPU는 Main Memory의 반응을 기다리느라 성능이 뒤쳐지게됨. 

 

Cache는 Main Memory보다 속도가 빨라서 평균 접근 속도를 올릴 수 있었다.

 

3. Cache?

Cache는  Locality Principle(참조 지역성)을 따른다. 간단히 말하면 자신이 자주 사용한 것을 앞으로도 자주 사용하게 된다.

  • 참조 지역성(principle of locality) : 동일한 값 또는 해당 값에 관계된 스토리지 위치가 자주 액세스되는 특성. 
    • 참조 지역성의 기본형 3가지
      • 시간 지역성(Temporal Locality) : 최근 사용되었던 기억 장소들이 집중적으로 액세스되는 경향. 참조했던 메모리는 빠른 시간에 다시 참조될 확률이 높다.
      • 공간 지역성(SpatialLocality) : 특성 클러스터의 기억 장소들에 대해 참조가 집중적으로 이루어지는 경향. 참조된 메모리 근처의 메모리를 참조
      • 순차 지역성(SequentialLocality) : 데이터가 순차적으로 액세스되는 경향. 프로그램 내의 명령어가 순차적으로 구성되어 있는것이 대표적. (공간 지역성에 편입되어 설명되기도 함.)

 

4. 페이지 교체 알고리즘

  • Frame : 물리 메모리를 일정한 크기로 나눈 블록
  • Page : 가상 메모리를 일정한 크기로 나눈 블록
    • 가상 메모리 : 메모리 관리 기법의 하나로, 기계에 실제로 이용 가능한 기억 자원을 이상적으로 추상화하여 사용자들에게 매우 큰 (주) 메모리로 보이게 만드는 것. 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식.
  • Cache Hit : CPU가 참조하고자 하는 메모리가 캐시에 존재하고 있을 경우
  • Cache Miss : CPU가 참조하고자 하는 메모리가 캐시에 존재하지 않을 경우
  • 당연히 Miss일 때보다 Hit일 때가 시간이 오래걸린다.

컴퓨터 자원은 제한이 확실하며, 그 한도 내에서 최고의 효율을 얻기 위해 여러 알고리즘이 존재한다. 

 

페이지 교체 알고리즘의 종류

  • FIFO (First In First Out)
    • 가장 먼저 메모리에 올라온 페이지를 가장 먼저 내보내는 알고리즘.
    • 구현은 간단하지만 성능은 좋지 않은 편
    • Belady`s Anomaly 현상이 발생할 수 있다.

  • OPT (OPTimal Page Replacement)
    • 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 알고리즘
    • 모든 페이지 교체 알고리즘 중 page-fault 발생이 가장 적다.
    • Belady`s Anomaly 현상이 발생하지 않는다.
    • 실제로 구현하기 거의 불가능한 알고리즘 (실제로 사용하기 보다는 연구 목적을 위해 사용)

  • LRU (Least Recently Used)
    • 가장 오랫동안 사용하지 않은 페이지를 교체하는 알고리즘
    • 성능이 좋은 편
    • 많은 운영체제가 채택하는 알고리즘

  • Count-Based
  • LFU (Least Frequently Used)
    • 참조횟수가 가장 적은 페이지를 교체하는 알고리즘
    • 교체 대상이 여러 개라면 가장 오랫동안 사용하지 않은 페이지를 교체

  • MFU (Most Frequently Used)
    • LFU와 반대로 참조 횟수가 가장 많은 페이지를 교체하는 알고리즘

 

 

 

참조

https://blog.naver.com/heojh93/220017068447

 

Memory Hierarchy

      위 그림은 여기저기서 보이는 메모리 계층 구조 그림이다.   위 그림 중 피라미...

blog.naver.com

https://jwprogramming.tistory.com/18

 

참조 지역성의 원리란?(Locality of reference)

이번에는 메모리에 대한 참조 지역성에 대해 공부 해보겠습니다. - 참조 지역성의 정의 : 동일한 값 또는 해당 값에 관계된 스토리지 위치가 자주 액세스되는 특성으로, 지역성의 원리(principle of

jwprogramming.tistory.com

메모리 계층 구조에 대한 자세한 내용 : https://it-eldorado.tistory.com/48

 

[CSAPP] Memory Hierarchy

1. 메모리 계층 (Memory Hierarchy) DRAM은 비트 당 가격이 저렴하지만 접근 속도가 매우 느리고, SRAM은 비트 당 가격이 비싸지만 접근 속도가 매우 빠르다. 이때 뒤에서 설명할 지역성(Locality)을 잘 활용

it-eldorado.tistory.com

https://gomguard.tistory.com/115

 

페이지 교체 알고리즘 - LRU

페이지 교체 알고리즘 사회의 자원은 한정되어 있고 그 한정된 자원을 효율적으로 사용하기 위해 각종 법과 규칙이 존재합니다. 눈에 확연히 보이지 않아 무한할 것만 같은 컴퓨터 자원도 사실

gomguard.tistory.com

https://code-lab1.tistory.com/60

 

[운영체제] 페이지 교체 알고리즘 (FIFO/OPT/LRU/LFU/MFU)

페이지 교체 알고리즘 (Page Replacement Algorithm) 이전 포스팅으로 요구 페이징(Demand Paging)에 대해 알아보았다. 필요한 페이지가 메모리에 없을 때 page-falut가 발생하고 Backing Store에서 해당 페이지를

code-lab1.tistory.com

 

'공부 > IT 기타 상식' 카테고리의 다른 글

CI/CD 개념 정리  (0) 2022.08.18
DevOps 관련 정리  (0) 2022.08.18
Comments