본문 바로가기

운영체제

캐시 메모리

캐시 메모리란

캐시 메모리는 속도가 빠른 장치와 느린 장치간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리

이러한 역할을 수행하기 위해서는 CPU 가 어떤 데이터를 원할 것인가를 어느 정도 예측할 수 있어야 하는데,

이를 시간적, 공간적 지역성을 기반으로 판단

 

시간적 지역성 - 최근에 접근된 데이터

공간적 지역성 - 최근에 접근된 데이터의 주변 데이터

 

캐시 메모리에 역활

시간적, 공간적 지역성을 기반으로 가까운 미래에 접근될 확률이 높은 데이터를 작지만 빠른 캐시 메모리에 미리 보관하여 전체적인 시스템의 성능을 높여주는 것

 

캐시 라인이란

프로세서는 다양한 주소에 있는 데이터를 사용하므로 일반적으로 빈번하게 사용하는 데이터의 주소는 흩어져 있다
따라서 캐시에 저장하는 데이터는 해당 데이터의 메모리 주소 등을 쓴 태그를 달아 놓을 필요가 있다
메모리로부터 가져오는 데이터 묶음(단위)을 캐시 라인이라고 한다

 

캐시 라인 방식

1. Full Associative 방식

비어있는 캐시 메모리에 마음대로 주소를 저장하는 방식
간단하지만 찾을 때 모든 블럭을 순회해야 됨

 

2. direct map 방식

여러개 주소가 캐시메모리의 한 주소에 대응되는 다대일(n:1)방식

00000₂, 01000₂, 10000₂, 11000₂인 곳의 데이터를 캐시 메모리의 주소가 000₂인 곳에만 읽고 쓰는 방식

이때 000₂는 인덱스 필드

00, 01, 10, 11은 태그 필드

 

Ex) 캐시 메모리가 비워진 상태로 CPU가 메인 메모리의 00000₂ 주소의 데이터를 두 번 연속으로 읽기

요청한 주소가 00000₂이므로 CPU는 캐시 메모리의 주소가 000₂인 곳을 확인

확인 후 아무것도 없는 것을 확인하고 직접 메인 메모리의 00000₂ 주소를 참조하여 데이터를 읽어옴

이때 캐시 메모리의 000₂(인덱스 필드)인 공간에 00₂태그비트와 아까 읽은 메인 메모리 00000₂의 데이터를 저장

그 다음 바로 같은 동작을 수행하면서 똑같이 캐시 메모리의 000₂ 인 곳을 확인하는데 이번엔 데이터가 들어있으니

데이터가 CPU가 요구한 주소의 데이터와 일치하는지 태그 비트를 비교하는 검사를 한 뒤 태그 비트마저 일치하면 캐시 메모리에서 데이터를 가져온다.

3. Set Associative 방식 (Full Associative와 direct map에 중간)

캐쉬의 성능의 향상을 위한 방식으로 Set Associative 사용, 대응하는 캐시라인을 여러개 만듬

Direct Map도 Set Associative의 극단적인 사례(대응하는 집합이 하나인 경우가 Direct Map)

 

반응형