포스트

Cache memory

Cache memory

Cache Memory

병목을 줄이자!

  • 데이터를 저장하는 공간의 속도와 용량은 반비례 구조이다..
  • 메모리는 계층적으로 사옹되어야한다.
  • 가장 빠른 저장공간인 Cache를 사용!
  • 자주 사용하는 데이터를 Cache에 저장!
  • 일반적으로 CPU는 2~3개의 cahce 메모리를 사용
    • L1, L2 ,L3 라고 불림

L1, L2 ,L3

  • 일반적으로 다중 CPU 환경일 경우 L1 Cache의 경우는 별도로 사용함
  • L1 Cache가 128kb라면?
    • 64kb는 명령어를 처리하기 전 명령어를 임시 저장
    • 나머지 64kb는 명령어를 실행 후 에 임시 저장
  • I - Cache , D - Cache
  • L2, L3는 공유 캐시이다.
    • L2 : CPU와 RAM 사이의 어딘가…
    • L3 : 메인보드

Cache 메모리의 작동원리

  • 시간 지역성
    • 한번 참조된 데이터는 또 참조 된다.
  • 공간 지역성
    • 한번 참조된 데이터의 근처에는 또 다시 사용된다.

Cache의 적중

Cache Hit

  • Cache에 원하는 데이터가 있을때

Cach Miss

  • Cold Miss
    • 한번도 요청 한적 없는 메모리 주소라서 miss
  • Conflict Miss
    • A와 B 모두 저장 해야하는데 서로 같은 캐시 메모리 주소에 할당 된 경우
  • Capacity Miss
    • 캐시 메모리의 공간이 부족해서 나는 문제

Cahce의 구조 및 작동 방식

Direct Mapped Cache

Untitled

  • 각 메모리의 위치가 캐시 내의 정확히 한곳만을 가리침 ( Many to One )
    • 001의 주소는 모두 001 cache에 매핑
    • 001이 인덱스 필드 나머지 주소를 태그 필드라고 한다.
    • 만약 001 라면 이건 00001인가? 01001인가?
    • 태그 필드를 확인!
  • Conflict Miss 가 발생하는 것이 치명적 단점

Fully Associative Cache

  • 그냥 무지성 캐시 메모리 저장
  • 저장은 간단 찾는게 문제…

Set Associative Cache

  • Direct + Fully 방식
  • Direct에 비해 검색 속도는 느리지만, 저장이 빠르고 Fully에 비해 저장이 느린 대신 검색이 빠른 중간형

Valid Bit

  • cache는 추가적으로 유효 비트라는 것을 운영한다.
  • 이것이 정말 쓸모 있는 data인지 아닌지
  • 단순히 초기화 하는것보단 이게 효율적!
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.