본문 바로가기
Computer Science/Computer Architecture

[컴퓨터 구조] 메모리 계층 구조, 캐시 메모리

by 진현개발일기 2024. 12. 1.

■ 메모리 계층 구조 (Memory Hierarchy)

저장 장치의 예로 레지스터, 메모리(RAM), USB 메모리가 있다. 이러한 저장 장치의 대표적인 특징 두 가지로는 

 

첫째, CPU와 가까울 수록 저장 장치의 접근 속도는 빠르고, 멀리있을 수록 느리다.

둘째, 속도가 빠른 저장 장치는 비싸고 용량이 작으며 거리가 멀어질수록 반대된다.

 

이러한 특징으로 인하여 컴퓨터는 여러 개의 저장 장치를 혼용해서 사용한다. 그 여러 개의 저장 장치의 계층 구조를 세 가지 특성을 기준으로 나타낸 것을 메모리 계층 구조(Memory Hierarchy)라고 한다.

* 여기서 말하는 Memory 는 Ram이 아니라 저장 장치 Memory를 의미한다.

 

■ 캐시 메모리 (Cache Memory)

CPU가 메모리에 접근하는 시간은 CPU의 연산 속도보다 느리다. 이를 극복하기 위한 저장 장치로 캐시 메모리(Cache Memory)가 있다. 캐시 메모리는 CPU와 메모리 사이에 위치해 있으며 레지스터보다는 용량이 크고 메모리보다는 속도가 빠른 SRAM 기반의 저장 장치이다.  

 

CPU가 매번 메모리를 접근 한다면 시간이 오래 걸린다. 그러므로 CPU가 사용할 일부 데이터는 캐시 메모리에 저장되고 CPU는 메모리에 접근하기 전에 캐시 메모리에 먼저 접근하여 원하는 데이터가 있는 지를 체크한다.

 

캐시 메모리는 여러 개의 종류로 구성되어 있다. 각각 CPU와 가까운 순서대로 L1, L2, L3 캐시로 불린다.

L1, L2 캐시는 CPU 각 코어 내에 존재하고 L3는 코어 외부에서 모든 코어가 공유하는 캐시이다.

 

*여기서 말하는 L은 Level을 뜻한다.

■ 참조 지역성의 원리 (Locality of Reference)

메모리는 실행 중인 프로그램을 저장한다면 캐시 메모리는 CPU가 사용할 법한 데이터를 예측하여 저장한다.

이때 CPU가 실제로 캐시 메모리 내에 데이터를 활용하게 되는 경우를 캐시 히트(Cache Hit)라고 한다.

 

반대로, 예측이 틀려 캐시 메모리에 접근 했으나 필요한 데이터가 없어서 메모리로 우회하여 접근할 경우 캐시 미스(Cache Miss)라고 한다. 캐시 미스가 발생하면 캐시 메모리의 이점을 활용할 수 없을 뿐더러 성능이 떨어지게 된다.

 

위 두 가지를 갖고 캐시가 히트되는 비율을 나타낸 것을 캐시 적중률 (Cache Hit Ratio)라고 일컫는다.

 

* Cache Hit Ratio = Cache Hit / (Cache Hit + Cache Miss)

 

캐시히트 적중률이 높을 수록 메모리 접근 횟수를 줄여주므로 성능이 높은 것을 뜻한다.

캐시 메모리의 이점을 제대로 활용하려면 참조 지역성의 원리를 이해해야 한다.

 

참조 지역성의 원리란 CPU의 메모리 접근 시 주된 특성을 바탕으로 만들어진 원리를 뜻하고 아래 두 가지가 해당된다.

 

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

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

 

▼ 관련 내용에 대해 C++로 실습 및 공부한 것을 포스팅한 적이 있다.

https://yjhdevelopdiary.tistory.com/205

 

[MultiThread] 캐시 및 CPU 명령어 파이프라인

■ CPU와 RAM왔다갔다 계속 사용하기엔 시간이 다소 많이 소요되니 이 둘 사이에 저장공간인 레지스터 및 캐시를 이용한다. [CPU 코어 구성](1) ALU (연산장치)(2) 캐시 장치- 레지스터 - L1 캐시

yjhdevelopdiary.tistory.com

 

(1) 시간 지역성 (Temporal Locality)

CPU는 변수가 저장된 메모리 공간을 언제든 다시 참조할 수도 있다는 가정을 갖는다.

즉, 최근에 사용된 변수에 저장된 값은 일반적으로 한 번만 사용되지 않고 캐시 메모리 공간에 저장되어 여러 번 다시 접근 시도가 된다.

 

(2) 공간 지역성 (Spatial Locality)

CPU가 특정 데이터를 접근했을 때 비슷한 종류의 데이터는 해당 메모리 공간의 주변에 있을 확률이 높다.

이를 가정해 해당 공간 근처를 집중적으로 접근하려는 경향을 공간 지역성이라고 일컫는다. 예시 코드는 위에 올려 놓은 이전 포스팅 링크를 타고 들어가면 존재한다.

 

728x90