본문 바로가기

학교/컴퓨터 구조

11. 캐시 메모리 (1/4) 개요

cpu에서 데이터를 처리하기 위해 메모리까지 접근하기에는 시간이 너무너무 오래 걸린다.

그렇기 때문에 중간에 CPU 캐시 메모리를 둬서 빠르게 꺼내 쓸 수 있게 한다.

 

만약 캐시에 없다면?? 그러면 메모리까지 가야한다.

메모리에도 없으면... 보조 기억 장치까지 가야하는데 이렇게 되면 속도가 많이 느리다

 

캐시 메모리는 일반적으로 조작할 수 있는 명령어를 프로그래머에게 제공하지 않아, 투명성을 가지고,

컴퓨터의 기능과는 상관없이 성능에만 영향을 준다.

 

 

1. 적중과 실패

캐시메모리는 메모리에 비해 적은 용량을 가지고 있으므로, 메모리에는 있는 내용이, 캐시엔 없을 수 있다.

이런 현상을 캐시 미스(Cache miss)라고 하고, 반대로, 캐시에도 존재하면 캐시 히트(Cache hit)라고 한다.

 

캐시 메모리의 성공 여부는 지역성 원리에 달려 있다.

지역성 원리는 짧은 시간에 제한된 주소 공간의 일부만 참조되는 것을 말한다.

 

물론 이것도 제한된 주소 공간에 비해 캐시 메모리가 작다면 캐시 미스가 나긴 하지만, 적당한 크기라면

높은 성공률을 보일 수 있다.

 

적중률 공식은 간단하다.

적중률 = (캐시 메모리의 적중 횟수) / (전체 메모리 참조 휫수)

 

예를 들자면, 메모리 100번 참조하는데, 99번이 캐시에 있다면,

99번의 캐시 히트와 1번의 캐시 미스가 발생한다.

 

 

캐시의 메모리 접근에 대한 과정이다.

1. CPU는 캐시에 워드(WORD)를 요청한다.

2. 캐시는 메모리에 있는 워드 내용을 CPU 레지스터에 복사한다.

(밑에서부턴 캐시 미스)

3. 메모리에 접근한다.

4. 메모리는 해당 워드가 있는 블록을 캐시에 전송한다.

(밑에서부턴 메모리에도 없을 때)

5. 보조 기억 장치로 접근한다.

6. 보조 기억 장치는 해당 블록이 있는 페이지를 메모리에 전송한다.

 

크기는 당연히

페이지 > 블록 > 워드 이다.

 

2. 캐시 메모리의 기본 구성과 동작

 

캐시 메모리는 요청받은 데이터를 가지고 있는지 탐색할 수 있어야 한다.

어떤 데이터를 가지고 있는지를 관리하기 위해 캐시는

데이터 메모리 뿐만 아니라, 태그 메모리도 사용한다.

보통 캐시 메모리 용량은 데이터 메모리 용량만을 말한다.

 

데이터 메모리는 블록으로 구성되있고, 블록은 캐시와 메모리간 데이터 전송의 기본 단위이다.

태그 메모리는 데이터 메모리의 블록을 탐색할 수 있는 정보를 가지고,

태그 메모리의 각 엔트리는 데이터 메모리의 블록과 쌍을 이루고, 다음 3가지 정보를 가지고 있다.

 

1. 태그 : CPU가 요청한 블록을 탐색하는 데 사용하는 주소 정보의 일부. 이게 없으면 캐시 미스

2. 유효 비트 : valid bit 라고 하며, 캐시 블록이 유효한 데이터인지를 나타냄

3. 갱신 비트 : dirty bit 라고 하며, CPU가 블록을 수정했는지 유무를 나타냄

 

 

출처 : 컴퓨터 아키텍처 컴퓨터 구조 및 동작 원리 (한빛 아카데미)