본문 바로가기
Computer Science

[Programming] Cache Memory Systems: Inclusion, Locality

by Henry Cho 2022. 2. 25.
728x90

Memory Systems


포스트 난이도: HOO_Junior

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


 

# Cache Memory System

사람이 무언가를 보고 기억하고 다시 떠올리는 과정이 뇌에서 이루어지듯이 컴퓨터도 뇌와 같이 데이터를 프로세스 하는 데 있어서 Cache memory system이 필요하다.

사람의 뇌가 프로세스 되는 과정과 컴퓨터가 메모리를 읽고 불러오는 과정은 비슷하게 구성되어있다.

메모리 시스템의 전반적인 흐름을 기억할 때 사람이 기억하는 방식을 빗대어 보면 이해하기 훨씬 쉬울 것이다.

Fig01.


# Inclusion

Memory system에 있어서 Inclusion은 모든 단계별 Layer 메모리에 원하는 데이터가 모두 포함되어 있어야 한다는 걸 의미한다.

우선은 메모리 시스템은 효율성 증대를 위하여 단계별로 Layer와 같이 나누어져 있다.

이때 한 단계에서 특정 데이터가 있을 경우에 이 데이터에 대한 부분을 다른 Layer도 포함되어 있어야 한다는 것이다.

예를 들어 Processor가 찾고 있는 데이터가 있다고 가정해보자.

이때 Cache memory에서 L1에 특정 데이터가 있을 경우 프로세서한테 전달해주면 작업이 끝난다.

하지만 L1에 원하는 데이터가 없을 경우 L2한테 물어본다.

이 과정을 반복하여 내부 메모리 시스템 안에 원하는 데이터가 없을 경우 외부 메모리에서 데이터를 가져오는데, 이때 중요한 것은 바로 프로세서로 보내거나 L1 메모리에만 저장하는 것이 아니라 다른 내부 메모리에도 해당 데이터를 load 한다는 것이다.


# Locality

지역성이라고 불리는 Locality는 캐시(Cache)의 큰 특징이자 장점이라고 볼 수 있다.

Locality란 자주 사용할 데이터나 파일의 접근성을 가까이에 두어 효과적인 작업 처리를 한다는 것이다.

한마디로 우리가 흔히 알고 있듯이 캐시에 데이터를 저장해 두고 캐시에 원하는 데이터가 있을 경우 프로세서가 바로 사용하면 되지만 없을 경우 Main memory에서 원하는 데이터를 load 한다는 것이다.

캐시에서 없을 경우 당연히 main memory에서 데이터를 load 하는 시간이 더 걸리겠지만, 캐시에 원하는 데이터가 있는 경우 메모리 처리 속도 효율성을 증가시킬 수 있다는 점에서 Locality는 현재도 사용되고 있는 memory system 중 하나이다.


# High level locality

Locality가 high level이라는 것은 block size가 크다는 것을 의미한다.

따라서 High level locality일수록 load 되어지는 횟수가 줄어들기 때문에 Memory miss가 날 확률이 낮아진다.

예를 들어 block size가 1 word와 8 words가 있다고 가정한다면, High level locality는 8 words가 되고 8 words가 1 words보다 load 되는 횟수가 현저히 적기 때문에 당연히 less cache miss 된다.


728x90

댓글