티스토리 뷰

반응형

낮은 가격대의 대용량 저장 장치를 원한다면 느린 속도는 감수해야 한다.

빠른 속도의 저장 장치를 원한다면 작은 용량과 비싼 가격을 감수해야 한다.

 

메모리 계층 구조 (Memory Hierachy)

레지스터 > 메모리 > 보조 기억 장치 순으로 연산 속도가 줄어드는 걸 의미하는 것.

 

캐시 메모리

CPU와 메모리 사이에 위치한, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치

 

한마디로 도매상이다(대형 마트)

 

따라서 메모리 계층 구조가 레지스터 > 캐시 메모리 > 메모리 > 보조기억장치 순서로 

속도가 빠름 -> 느림

용량이 작음 -> 큼

가격이 비쌈 -> 쌈

이 된다.

 

계층적 캐시 메모리

L1 - L2- L3 캐시

CPU와 가까울수록 숫자가 낮다.

일반적으로 L1 캐시와 L2 캐시는 CPU 코어 내부에, L3 캐시는 코어 외부에 위치해 있다.

 

멀티코어 프로세서에서의 캐시 메모리는 L1,L2가 여러 개의 코어 내부에 각각 있기 때문에 동일한 내용을 가지게 끔 싱크를 맞춰주는 내용이 중요하다.

 

 L1 캐시를 더 빨리 만들기 위해서 명령어만 가지고 있는 캐시 메모리, 데이터만 가지고 있는 캐시 메모리로 구분하는 경우도 있다.

 

따라서 여기까지 최종 메모리 계층 구조는 다음과 같다.

 

레지스터 > L1 캐시 > L2 캐시 > L3 캐시 > 주기억장치 > 보조기억장치

 

여기에 반영되어 있지 않은 저장장치도 있을 수 있다(클라우드 스토리지)

 

참조 지역성의 원리(중요)

캐시 메모리는 메모리보다 용량이 작다.

당연하게도 메모리의 모든 내용을 저장할 수 없다.

 

그렇다면 뭘 저장해야 할까?

> CPU가 자주 사용할 법한 내용을 예측하여 저장

 

예측이 들어맞는 걸 캐시 히트라고 한다.

예측이 들어맞지 않는 걸 캐시 미스라고 한다.(성능이 떨어진다.)

 

캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

높을수록 성능이 높다.

요즘 CPU는 최소 80% 이상은 넘긴다.

 

CPU가 사용할 법한 데이터를 잘 예측해야 한다.

그 원칙이 참조 지역성의 원리이다.

 

참조 지역성의 원리란?

CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리

  1. CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
  2. CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다(공간 지역성).

 

소스코드에서 for을 쓸 때 num이라는 변수의 주소 공간에 다시 접근한다.

 

공간 지역성의 경우에는 프로그램이 기능들마다 모여서 저장되기 때문에 그런 방식으로 캐시 적중률을 높인다.

 

 

 

반응형