본문 바로가기
cs

[혼공운영체제] 캐시메모리

by 이쟝 2023. 4. 26.
인프런의 개발자를 위한 컴퓨터 공학1 : 혼자 공부하는 컴퓨터 구조 + 운영체제 강의를 듣고, 학습 및 요약

 

CPU가 메모리에 접근하는 시간은 CPU 연산 속도보다 느리다.

저장 장치 계층 구조(Memory hierarchy, 메모리 계층 구조: 여기서 '메모리'는 RAM이 아닌 일반적인 저장 장치를 의미함)

각기 다른 용량과 선능의 저장 장치들을 계층화해 표현한 구조

 

  • 저장 장치들은 CPU에 얼마나 가까운가를 기준으로 계층적으로 나타낼 수 있음
  • CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
  • 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.

=> 낮은 가격대의 대용량 저장 장치를 원한다면 느린 속도는 감수해야 하고, 빠른 속도의 저장 장치를 원한다면 작은 용량과 비싼 가격은 감수해야 한다.

 

저장 장치 계층 구조

 

캐시 메모리

CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장 장치(속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리)

 

  • CPU와 메모리 사이에 위치한, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
  • CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 만들어짐
  • "CPU가 매번 메모리에 왔다 갔다 하는 건 시간이 오래 걸리니, 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 쓰자"
  • 캐시 메모리 크기가 작은 이유는, SRAM 가격이 매우 비싸기 때문

캐시메모리의 예시
저장 장치 구조 계층

  • 캐시메모리는 CPU 내부에 위치할 수도 있고 외부에 위치할 수도 있다.
  • 일반적으로 L1캐시와 L2캐시는 코어 내부에, L3캐시는 코어 외부에 위치해 있다.
  • 계층적 캐시 메모리(L1-L2-L3 캐시) 

계층적 캐시 메모리

멀티코어 프로세서의 캐시 메모리

멀티코어 프로세서의 캐시 메모리

분리형 캐시

  • L1 캐시를 조금 더 빨리 하기 위해서 명령어만을 담기 위한 L1I(L1Instruction), 데이터만을 담기 위한 L1D(L1Data)

분리형 캐시

계층적 캐시 메모리까지 반영한 저장 장치 계층 구조

계층적 캐시 메모리까지 반영한 저장 장치 계층 구조


참조 지역성의 원리

CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리
1. 시간 지역성 : for나 while 같은 반복문에 사용하는 조건 변수처럼 한번 참조된 데이터는 잠시후 또 참조될 가능성이 높다.
2. 공간 지역성 : A[0], A[1]과 같은 연속 접근 시, 참조된 데이터 근처에 있는 데이터가 잠시후 또 사용될 가능성이 높다.

 

  • 캐시 메모리는 메모리보다 용량이 작기 때문에 메모리의 모든 내용을 저장할 수 없다. (일부 내용을 복사해서 가져옴)
  • CPU가 자주 사용할 법한 내용을 예측해 저장하는데, 
CPU가 캐시메모리에 저장된 값을 활용할 경우(예측이 들어맞을 경우) CPU가 메모리에 접근해야 하는 경우(예측이 틀렸을 경우) : 성능 하락
캐시 히트(Cache Hit) 캐시 미스(Cache Miss)

 

  • 캐시 적중률 : 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수), 캐시 적중률이 높으면 높을 수록 성능 향상!
  • 캐시 적중률이 높을 수록 성능 향상! => CPU가 사용할 법한 데이터를 잘 예측해야 한다!!
  • 캐시메모리는 참조 지역성의 원리를 바탕으로 CPU가 자주 사용할 법한 내용을 예측해서 저장한다!!