개발자 면접 공부/운영체제,CS

캐시메모리와 지역성 그리고 캐시라인

chogyujin 2023. 11. 30. 20:42
728x90

1. 개요

오늘은 캐시 메모리, 지역성, 캐시라인에 대해서 공부하겠습니다.


2. 캐시?

캐시 메모리란(Cache Memory)?

 

  • 주기억장치에서 자주 사용하는 프로그램과 데이터를 저장해놓고 속도를 빠르게 하는 메모리
  • 속도가 빠른 장치와 느린 장치간의 병목 현상을 줄여주며, 메인 메모리의 CPU사이에 위치한다.
  • 캐시가 효율적으로 동작하기 위해서는 CPU가 참조할 정보에 대한 예측이 잘 되어있어야 한다.
    • 즉, 캐시의 적중률(Hit-rate)을 극대화 시키는것이 포인트이다.
    • 이때 나오는 개념이 캐시의 지역성(Locality)

3. 캐시의 지역성?

그렇다면 캐시의 지역성(Locality)란?

  • 데이터에 대한 접근이 시간적-공간적으로 가깝게 발생하는 것을 뜻한다.
  • 이때 프로그램은 정보를 균일하게 참조하는 것이아니라, 어느 한 순간에 특정 부분을 집중 참조 할 것이라는 전재 조건이 존재한다.
    • 시간지역성 : 최근에 참조된 데이터가 곧 다시 참조되는 특성
    • 공간지역성 : 최근에 참조된 데이터와 인접한 데이터가 참조될 가능성이 높은 특성

4. 캐시 라인?

그렇다는 캐시의 라인이란?

  • 캐시는 프로세서 가깝게 위치하며 자주 사용 되는 데이터들은 저장하는 것
  • 목적 데이터를 바로 접근하여 출력할 수 있어야 캐시가 의미가 있기때문에, 특정 자료구조를 사용하여 묶음으로 저장해놓는데, 이를 캐싱라인이라 칭함
  • 즉, 캐시 메모리의 매핑 프로세스라고 말할 수 있음

캐시의 라인 종류

 

1. 직접 매핑(Direct Mapping)

  • 메모리 주소와 캐시의 순서를 일치 시켜 지정된 캐시 라인으로만 사상하는 방식
  • 즉, 캐시 1에는 메모리를 110번을, 캐시2에는 메모리 1120을 위치시키는것
  • 하지만 특정메모리 위치의 값을 자주 불러다 사용한다면 저장할 캐시 공간은 1개이므로 매번 캐시 교체가 일어남
  • 즉 적중률 성능이 낮지만 구현이 간단하고 쉬운방법

2. 연관 매핑( Associative Mapping)

  • 순서를 일치시키지 않고 필요한 메모리 값을 캐시의 어디든 편하게 저장한다.
  • 찾는 과정은 복잡하고 느리지만 필요한 캐시 위주로 저장하기에 적중률을 높다.
    • 캐시는 일반메모리보다 속도가 빠르므로 캐시의 검색량보다 적중률을 신경쓰는게 바람직함

3. 직접 연관 매핑 ( Set Associative Mapping)

  • 연관매핑과 직접매핑을 합쳐놓은 방식.
  • 순서를 일치시키면서 일정 그룹을 두지만, 그 그룹내에서는 편하게 저장하는 방식이다.
  • 블록화가 되어있어 검색에 조금더 효율적이며 적중률이 많이 떨어지지도 않는다.

5. Ref

https://coding-zzang.tistory.com/38

 

[운영체제/OS] 캐시(Cache)와 지역성(Locality) & 캐싱라인(Caching Line)

Cache 캐시 메모리(cache Memory) 캐시 메모리란 ? 주기억장치에서 자주 사용하는 프로그램과 데이터를 저장해두고 속도를 빠르게 하는 메모리 속도가 빠른 장치와 느린 장치간의 병목 현상을 줄여주

coding-zzang.tistory.com

 

'개발자 면접 공부 > 운영체제,CS' 카테고리의 다른 글

TCB  (0) 2023.12.14
가상메모리 관리  (2) 2023.12.08
Race Condition 경쟁상태  (0) 2023.10.28
라이브러리 vs 프레임워크  (0) 2023.05.21
RBT(Red Black Tree) VS 힙  (0) 2022.11.21