[CS스터디]캐시 메모리

지영·2023년 5월 15일
0

CS

목록 보기
4/77
post-custom-banner

👀 캐시메모리란 무엇인가..

1. 캐시 메모리란,

CPU와 주기억장치 사이에 위차한 고속 버퍼 메모리

2. 왜 캐시 메모리가 필요할까?

  • CPU와 메모리간의 속도 차이!를 극복하기 위해서 쓴다. (병목 현상 해결)
  • 속도가 빠른 CPU와 속도가 느린 메모리 차이를 완화하기 위해 씀
    +) 웹 브라우저 캐시 파일 : 웹페이지와 하드디스크 사이의 병목 현상을 완화

3. 그렇다면 CPU는 캐시 메모리를 어떻게 쓰는가?

  • CPU가 주기억장치에서 데이터를 읽어오면서, 자주 사용하는 데이터는 캐시 메모리에 저장한다.
  • 다음에 이용할 때는 주기억장치(멀다)까지 갈 필요없이 캐시 메모리에서 먼저 가져와 속도를 향상 시킬 수 있다.
  • 다만, 캐시 메모리는 용량이 적고 비용이 비싸다..

4. 📜 자세히 알아보기

! 보통 CPU에는 2~3개의 캐시 메모리를 사용한다. 이것을 L1, L2, L3라고 한다. 일반적으로 L1 - L2 - L3순으로 사용된다

  • L1 : CPU 내부에 존재
  • L2 : CPU와 RAM 사이에 존재
    - 듀얼 코어 프로세서의 캐시 메모리에서 사용
    • 각 코어마다 독립된 L1을 가지고, 두 코어가 공유하는 L2가 내장되어 있음
    • 듀얼 코어이기 때문에 L1이 128KB라면 64KB = 명령어 처리 전 임시 저장, 나머지 64KB = 명령어 실행 후 임시 저장의 역할을 분담한다.
  • L3 : 보통 메인보드에 존재한다고 함

캐시메모리의 적중률, Hit rate🎯

  • Hit rate : CPU가 원하는 데이터를 예측하는 정도, 높을 수록 좋은 캐시 메모리임
  • Hit rate (캐시 hit 횟수 / 전체 메모리 접근 횟수)를 높일 수 있는 방법?!
    : 지역성의 원리를 사용하기 -> 프로그램은 모든 코드, 데이터를 균등하게 접근한지 않는다는 특성

1) 시간 지역성 : 최근에 참조된 주소의 내용은 곧 다시 참조될 가능성이 높은 특성
2) 공간 지역성 : 실제 프로그램이 참조된 주소와 인접한 주소의 내용이 다시 참조되는 특성
3) 순차 지역성 : 데이터가 순차적으로 액세스되는 특성

캐시 미스(Cache Miss)가 되는 경우

  • Cache Hit : cpu가 요청한 데이터가 캐시에 있음
  • Cache Miss : 없어서 DRAM에서 가져옴
  1. Cold Miss
    : 해당 메모리 주소를 처음 접근하는 경우

  2. Conflict Miss
    : 캐시 메모리에 A 데이터와 B 데이터를 저장해야 하는데, A와 B가 같은 캐시 메모리 주소에 할당되어서 나는 캐시 미스다. 하나의 캐시 메모리에 둘 이상의 메인 메모리 주소와 그 데이터가 들어갔다면 충돌하게됨으로 이해할 수 있다. set way가 부족해서 발생함.(=주소 할당 문제)

  3. Capacity Miss
    : 캐시 메모리의 공간 부족한 경우

캐시의 작동 방식

1. Direct Mapped Cache

: 현재 그림에서는 메모리 공간이 32개(00000~11111)이고, 캐시 메모리 공간은 8개, 즉 (000~111)인 상황
ex) 00000, 01000, 10000, 11000인 메모리 주소는 000 캐시 메모리 주소에 맵핑

: 가장 일반적인 방식! DRAM의 여러 주소가 캐시 메모리의 한 주소에 대응되는 다대일 방식
Confict Miss의 원인이기도 하다.

2. Fully Associative Cache

: 비어있는 캐시 메모리에 마음대로 주소를 저장하는 방식!
저장할 땐 좋지만, 찾을 때 규칙이 없어 모든 블록을 검색해야 하는 단점이 있음

3. Set Associative Cache

: 특정 행을 지정하고 그 행 안의 어떤 열이 비어있는 경우에 저장
: Direct에 비해 속도는 느리지만 검색이 빠르고, Fully에 비해 저장이 느리지만 검색이 빠름 (Direct + Fully)

profile
꾸준함의 힘을 아는 개발자📍
post-custom-banner

0개의 댓글