목적 데이터
, 바로 접근
, Full Associative
, Set Associative
, Direct Map
캐싱 라인은 캐시에 데이터가 저장될 때, 묶이는 기본적인 단위라고 할 수 있습니다. 캐싱 라인은 CPU가 캐시 메모리에서 목적 데이터를 바로 접근하기 위해 만들어졌습니다.
이때, 이 묶음의 방식에는 여러 종류가 있는데, 대표적으로는 Full Associative, Set Associative, Direct Map 등이 있습니다.
캐시 메모리는 메인 메모리에 비해 크기가 매우 작기 때문에, 메인 메모리와 1:1 매칭이 불가능하다. 캐시가 아무리 CPU에 가깝게 위치하더라도, 데이터가 캐시 내의 어느곳에 저장되어 있는지 찾기 어렵다면 비효율적인 시스템이 된다.
그래서 캐시에 데이터를 저장할 때는 캐싱 라인이라는 단위의 묶음으로 저장하는데, 이때 빈번하게 사용되는 데이터의 주소들이 일정한 태그들로 묶여있으면 아무래도 찾기가 쉬워질 것이다.
가장 간단하고 구현도 쉬운 방식의 Mapping 방식이다. 메인 메모리를 일정한 크기의 블록으로 나누어, 각각의 블록을 캐시의 정해진 위치에 mapping하는 방식이다. 하지만 동일한 캐시 메모리 위치로 mapping된 데이터를 사용할 때는 충돌이 발생하게 된다.
캐시 메모리의 빈 공간에 임의로 주소를 저장하는 방식으로, 저장은 쉽지만 데이터 탐색이 어렵다는 단점이 있다.
Direct Mapping과 Full Associative Mapping의 장점을 결합한 방식으로, 빈 공간에 임의로 주소를 저장하되, 미리 정해둔 특정 행에만 저장하는 방식이다. 주로 사용되는 방식이다.
좀 더 자세히 설명하자면, 캐시를 일정한 개수의 집합(set)으로 나눈뒤에, 각 집합마다 캐싱 라인을 할당한다. 그래서 캐시에 데이터를 저장할 때, 어떤 집합에 저장할지를 먼저 결정한 후에, 해당 집합 내에서 빈 캐싱라인을 찾아 데이터를 저장하는 방식이다.
캐시를 어떤 집합에 저장할지 결정하는 과정은 Direct Mapping의 개념을 차용했고, 그 집합 내에서는 Full Associative mapping을 차용했다.