Cache memory
캐시 메모리
캐시 메모리는 속도가 빠른 장치와 느린 장치 사이의 병목현상을 줄이기 위한 메모리입니다.
메인메모리(RAM)와 CPU사이에서 자주 사용되는 데이터를 캐시에 저장해서 사용해서 속도를 향상시킵니다.
대신 용량이 작고 비싸다는 단점이 있습니다.
역할과 목적
캐시 메모리의 주요 목적은 주 메모리로부터 데이터를 빠르게 읽고 쓰는 것입니다. 주 메모리에 비해 캐시 메모리는 더 빠른 액세스 시간을 가지며, 프로세서가 빈번하게 사용하는 데이터와 명령어를 저장합니다. 이를 통해 프로세서가 더 빠른 실행 속도를 제공하고 주 메모리에 대한 액세스 지연 시간을 줄입니다.
구조와 계층 구조
캐시 메모리는 주로 세 가지 유형으로 나뉩니다.
레벨 1 캐시 (L1 Cache): L1 캐시는 프로세서와 가장 가깝게 위치하며 작고 빠른 캐시입니다. 주로 명령어와 데이터를 분리하여 저장하며, 프로세서 코어마다 하나씩 있을 수 있습니다.
레벨 2 캐시 (L2 Cache): L2 캐시는 L1 캐시보다 크고 상대적으로 느린 캐시로, 여러 코어에서 공유하거나 각 코어에 별도로 제공될 수 있습니다. 레벨 2 캐시는 주로 데이터를 저장하며 L1 캐시보다 큰 용량을 가집니다.
레벨 3 캐시 (L3 Cache): 다단계 캐시 메모리 구조에서 가장 높은 계층의 캐시로, 주로 멀티코어 프로세서와 다중 코어 프로세서 시스템에서 사용됩니다. L3 캐시는 프로세서의 성능을 향상시키고 캐시 계층 구조의 효율성을 개선하는 데 기여합니다.
작동 원리
캐시 메모리는 주 메모리에서 데이터를 읽어와 캐시 라인(Cache Line)에 저장합니다. 캐시 라인은 작은 블록 단위로 분할되며, 프로세서가 액세스한 데이터 주변의 데이터도 함께 저장됩니다.
프로세서가 데이터를 요청할 때, 캐시 메모리에 그 데이터가 이미 존재하는지 확인합니다. 만약 데이터가 캐시에 있으면 (캐시 히트(Cache Hit)), 주 메모리로 가는 대신 캐시에서 데이터를 읽어옵니다. 데이터가 캐시에 없는 경우(캐시 미스(Cache Miss)), 데이터를 주 메모리에서 가져와 캐시에 쓰고 나서 프로세서에 전달합니다.
캐시 라인
캐시 라인(Cache Line)은 캐시 메모리의 작은 저장 단위입니다. 캐시 메모리는 데이터 및 명령어를 효율적으로 관리하기 위해 주 메모리로부터 데이터를 블록 단위로 가져와 저장
특징
고정크기
블록 단위 저장
캐시 정책
캐시 메모리에서 데이터를 관리하기 위한 다양한 정책이 존재합니다. 이러한 정책에는 LRU(Least Recently Used, 시간참조성과 연관해서 얘기하면 좋을것 같음), FIFO(First-In, First-Out), 랜덤 폐기(Random Replacement) 등이 포함됩니다. 이러한 정책은 캐시의 효율성과 성능에 영향을 미칩니다.
캐시 미스
캐시 미스란 가져오려는 데이터가 캐시메모리에 없는 경우를 의미합니다.
캐시 미스의 종류는 Cold miss, Conflict miss, Capacity miss가 있습니다.
Cold miss는 해당 데이터를 처음 호출해서 없는 경우를 의미합니다.
Conflict miss는 여러개의 명령어 주소가 같은 캐시메모리 주소에 저장되어있는 경우 발생합니다.
Capacity miss는 캐시메모리의 공간이 부족해서 발생합니다.
캐시 매핑
캐시에 데이터 주소를 저장하는 방식을 의미합니다.
직접(direct),연관(associate),집합 연관(set associate) 맵핑이있습니다.
직접 사상
직접 사상은 캐시와 메모리를 같은 크기로 나누어서 순서대로 매핑하는 것을 말합니다.
블럭단위로 저장하기 때문에 캐시의 공간활용을 제대로 할수 없다는 단점이있습니다.
연관 사상
연관 사상은 비어있는 캐시 메모리 공간이 있으면 저장하는 방식입니다.
적중률이 높다는 장점이 있고 저장할때는 간단하다는 장점이 있습니다.
하지만 데이터를 규칙이 없어서 검색할때 시간이 오래걸립니다.
세트 연관 사상
세트 연관 사상은 직접사상과 연관사상의 장점을 합친 사상방법입니다.
캐시 메모리는 세트로 구분되고 세트내에 2개 이상의 슬롯을 가집니다.
만약 세트가 n개있고 세트당 슬롯이 1개라면 직접 연관사상입니다.
세트가 1개있고 세트당 슬롯이 n개라면 연관사상입니다.
따라서 세트번호로 먼저 탐색해서 탐색 수를 줄이고 무작위로 배치해서 직접사상의 단점을 보완하였습니다.
Last updated