캐시 메모리(Cache Memory)

yebeen·2022년 8월 8일
0

CS

목록 보기
4/5
post-thumbnail

캐시 메모리란?

캐시 메모리는 CPU의 처리 속도와 주 기억 장치의 접근 속도 차이를 줄이기 위해 사용합니다. 데이터 지역성을 활용하여 메인 메모리에 있는 데이터를 캐시 메모리에 불러와 두고, 프로세서가 필요한 데이터를 캐시 메모리에서 먼저 찾도록 하면 시스템 성능을 향상할 수 있습니다.

데이터 요청이 들어오면, 먼저 캐시에서 데이터를 탐색합니다. 캐시가 없거나 오래된 경우 원본 데이터가 저장된 곳에서 데이터를 조회하게 됩니다. 이후 캐시에도 데이터를 복사/갱신하게 되며 오래된 데이터는 삭제합니다.


작동 원리(데이터 지역성)

* 캐시의 지역성

지역성이란 기억장치 내의 정보를 균일하게 접근하는 것이 아닌 어느 한순간에 특정 부분을 집중적을 참조하는 특성 합니다. 데이터의 접근이 시간적, 공간적으로 가깝게 일어나는 것을 의미하며 캐시가 효율적으로 동작하려면, 캐시의 적중률을 극대화시켜야 합니다.

  • 적중(Hit) : CPU가 주기억장치 메모리에 접근하기 전에 캐시 메모리에서 원하는 데이터가 존재한 경우,
    • 적중률(Hit Ratio) = 캐시 메모리 적중 횟수 / 전체 메모리 참조 횟수 * 100
  • 부적중(Miss): CPU가 요청한 데이터가 캐시 메모리에 없어 주기억장치에서 데이터를 찾은 경우,
    • 부적중률(Miss Ratio) = 1 - 적중률
    • Cold miss : 해당 메모리 주소를 처음 불러서 나는 미스
    • Conflict miss : 캐시 메모리에 A와 B 데이터를 저장해야 하는데, A와 B가 같은 캐시 메모리 주소에 할당되어 있어서 나는 미스
    • Capacity miss : 캐시 메모리의 공간이 부족해서 나는 미스

* 시간적 지역성

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

  • for, while 같은 반복문에 사용되는 조건 변수처럼 한번 참조된 데이터는 잠시 후 또 참조될 가능성이 높습니다.

* 공간적 지역성

특정 데이터와 가까운 주소가 순서대로 접근되었을 경우를 공간적 지역성이라고 합니다. CPU 캐시나 디스크 캐시의 경우 한 메모리 주소에 접근할 때 그 주소뿐 아니라 해당 블록을 전부 캐시에 가져오게 됩니다. 이때 메모리 주소를 오름차순이나 내림차순으로 접근한다면, 캐시에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 캐시의 효율성이 크게 향상됩니다.

  • A[0], A[1]과 같은 연속 접근 시, 참조된 데이터 근처에 있는 데이터가 잠시 후 또 사용될 가능성이 높습니다.

* 순차적 지역성

데이터가 기억장치에 저장된 순서대로 인출되고 실행될 가능성이 높은 현상을 말합니다.


메모리의 종류

* DRAM

  • 축전기로 이루어지며 이것의 충전 상태로 정보를 기록합니다.
  • 가격이 싸고 용량 대비 크기가 작지만 속도가 느립니다.
  • 구조가 간단하여 집적도를 쉽게 높일 수 있습니다.
  • 트랜지스터 하나와 캐패시터 하나로 만들어져 있기에 고집적화가 가능합니다.
  • 주기억 장치에 주로 사용됩니다.

* SRAM

  • 정적 램이라고도 부르며, 내용을 한번 기록하면 전원이 공급되는 한 내용을 그대로 가지고 있는 램입니다.
  • 기억 능력을 가진 논리 회로를 특별히 플립플롭이라고 부릅니다.
    • Flip-Flop : 입력을 받으면 그 입력을 초기화 명령을 받기 전까지 내부에서 루프를 돌려서 유지하는 것으로 외부의 에너지 공급이 없으면 에너지 손실로 빠른 시간 안에 정지합니다.
  • 속도가 빠르지만 가격이 비싸고 용량 대비 크기가 크다.
  • 빠른 속도가 요구되는 캐시 메모리에 주로 사용되며 CPU 스펙에 표시되는 L1, L2, L3 등의 캐시 메모리가 대표적입니다.
  • DRAM을 사용자가 직접 장착하게 하는 대신, CPU와 DRAM 사이에 SRAM을 별도로 두어서 DRAM의 데이터를 직접 접근하는 것보다는 빠르게 접근할 수 있도록 한다.

멀티 레벨 캐시 메모리

시스템에 장착된 캐시의 용량과 성능이 점점 증가하면서 캐시의 캐시로 사용되는 메모리가 추가되었는데, 이것을 적용된 순서대로 L(Level) 1, L2, L3 … 라고 호칭합니다.

  • L1 : 처리된 데이터를 저장하고 수행해야 하는 작업에 대한 정보를 저장합니다.
  • L2 : CPU가 곧 사용할 명령과 데이터를 저장합니다.
  • L3 : 가장 크면서도 가장 느립니다. L3 캐시 메모리가 마지막 레벨의 캐시 메모리일 경우, L3 캐시 메모리를 LLC라고 부르기도 한다.

캐시 메모리 특징

  • 캐시는 주기억장치와 CPU사이에 위치하며, 자주 사용하는 프로그램과 데이터를 기억합니다.
  • 캐시 메모리는 메모리 계층 구조에서 가장 빠른 소자이며, 처리속도가 거의 CPU의 속도와 비슷할 정도의 속도를 가지고 있습니다.
  • 캐시 메모리를 사용하면 주 기억장치를 접근하는 횟수가 줄어들어 컴퓨터의 처리속도가 향상됩니다.
  • 캐시 주소 표는 검색시간을 단축시키기 위해 주로 연관 기억장치를 사용합니다.
  • 캐시의 크기는 보통 수십 KByte ~ 수백 KByte입니다.
profile
🐣🐥

0개의 댓글