코딩일상

[하드웨어]캐시 란?? 본문

Study/CS

[하드웨어]캐시 란??

solutionMan 2022. 7. 30. 11:17
반응형

캐시:  데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다

중앙처리장치가 명령이 필요하게 되면, 맨 먼저 액세스 하는 것이 캐시 메모리인 셈이다. 최근에 사용한 데이터자주 액세스하는 데이터나 프로그램 명령을 반복해서 검색하지 않고도 즉각 사용할 수 있도록 저장해두는 영역이다.

캐싱: 데이터를 더 빨리 읽어 올 수 있도록 캐시 기억 장치에 저장하는 일

 

캐시에는 L1, L2, L3이 있고, L3에서 L1로 갈수록 빠르지만, 저장할 수 있는 데이터의 양은 줄고 가격이 비싸진다.

레지스터 > L1 > L2 > L3 순서대로 원하는 데이터를 찾고, 여기서까지 못 찾게 되면 캐시 미스라고 한다.

캐싱 과정에서는 대개 블록 단위로 동시에 불러온다.

단일 바이트에 대한 요청이 들어오면. 연속된 메모리 위치를 포함한 블록을 불러온다.

메인 메모리에서 캐시로 블록단위로 전해주고 되고, cpu에서는 캐시와 단어 단위로 전달을 해준다.

 

메인 메모리에서 캐시로 데이터를 저장할 때 참조의 지역성 때문에 한번 퍼낼 때 인접한 곳까지

한꺼번에 캐시 메모리에 저장하고 이때 단위를 블록(Block)이라고 한다.

 

그리고 캐시는 메인 메모리의 몇 번째 블록인지를 알려주는 태그(Tag)도 함께 저장한다.

메모리 주소 중에 가장 뒷부분(붉은색)은 블록의 크기를 의미한다.

 

만일 위의 예에서 붉은 영역이 01이라면 블록의 두 번째 내용을 CPU에서 요청한 것이다.

같은 라인에 위치하는 데이터는 파란색 색칠한 영역에 의하여 구별이 가능하다.

예를 들면 메모리에 첫 번째 요소 00000과 다섯 번째 주소 00100은 캐시 내에 같은 위치에 자리 잡고 있어서 구별이 필요한데, 앞의 세 자리 000과 001로 구별을 할 수 있다.

지역성

캐시가 효율적으로 동작하려면, 캐시에 저장할 데이터가 지역성을 가져야 한다.

지역성이란 데이터 접근이 시간적, 혹은 공간적으로 가깝게 일어나는 것을 의미한다.

 

적중률을 높이기 위해 어느 한순간에 특정 부분을 집중적으로 참조하는 특성

 

시간적 지역성

특정 데이터가 한 번 접근되었을 경우, 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것을 말한다. 메모리 상의 같은 주소에 여러 차례 쓰기를 수행할 경우 상대적으로 작은 크기의 캐시를 사용해도 효율성을 꾀할 수 있다.

 

시간 지역성은 지금 1번지 메모리에 접근된 적이 있으면 가까운 시일 내에도 1번지 메모리에 접근될 확률이 높다는 것.

 

공간적 지역성

특정 데이터와 가까운 주소가 순서대로 접근되었을 경우를 공간적 지역성이라고 한다. CPU 캐시나 디스크 캐시의 경우 한 메모리 주소에 접근할 때 그 주소뿐 아니라 해당 블록을 전부 캐시에 가져오게 된다.

이때 메모리 주소를 오름차순이나 내림차순으로 접근한다면, 캐시에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 캐시의 효율성이 크게 향상된다.

 

1번지 메모리에 접근된 적이 있다면, 그 근처의 2번 3번지 메모리에도 접근될 확률이 있다는 것이다.

 

반응형
Comments