정보시스템감리사/토픽모음

직접사상캐시_완전연관캐시

론리나잇 2025. 4. 17. 03:29

직접 사상 캐시(Direct-mapped Cache)와 완전 연관 캐시(Fully associative Cache)는 모두 CPU 캐시 메모리 구조에서 데이터를 빠르게 검색하기 위한 기술입니다. 이 두 캐시 구조는 메모리 블록을 캐시 라인에 어떻게 매핑하는지에 따라 차이를 보입니다. 각 캐시의 특징과 장단점을 비교해 보겠습니다.

직접 사상 캐시 (Direct-mapped Cache) vs 완전 연관 캐시 (Fully associative Cache)

1. 직접 사상 캐시 (Direct-mapped Cache)

특징:

  • 메모리 블록과 캐시 라인 간의 매핑1:1로 고정됩니다.
  • 메모리 주소의 일부 비트를 사용하여 특정 캐시 라인을 결정합니다.
  • 하나의 메모리 블록정해진 위치하나의 캐시 라인에만 매핑됩니다.

장점:

  • 검색 속도가 빠르다. 메모리 블록이 특정 캐시 라인에만 매핑되므로, 캐시 라인 번호만 알면 바로 해당 캐시 라인에서 데이터를 찾을 수 있습니다.
  • 구현이 간단하고 비용이 저렴합니다.

단점:

  • 충돌 발생 가능성이 높습니다. 여러 메모리 블록이 동일한 캐시 라인에 매핑될 수 있습니다.
  • 교체 정책이 필요 없거나 매우 제한적입니다. 대부분 덮어쓰기 방식으로 처리됩니다.

예:

  • 메모리 주소의 하위 비트는 캐시 라인을 결정하고, 상위 비트는 다른 정보(예: 태그)로 사용됩니다.

2. 완전 연관 캐시 (Fully associative Cache)

특징:

  • 메모리 블록은 캐시의 어느 위치에도 배치될 수 있다.
  • 메모리 주소의 어떤 부분도 캐시 라인을 결정하는 데 사용되지 않으며, 모든 캐시 라인에 대해 자유롭게 매핑될 수 있습니다.
  • 메모리 블록을 캐시에서 찾을 때, 모든 캐시 라인을 순차적으로 검사해야 하므로 검색 시간이 더 길어질 수 있습니다.

장점:

  • 충돌이 거의 없다. 메모리 블록이 캐시의 어떤 위치에나 배치될 수 있기 때문에 충돌 가능성이 줄어듭니다.
  • 캐시 적중률이 높습니다. 캐시 라인 수가 많고, 각 메모리 블록이 자유롭게 배치되기 때문에, 다양한 데이터가 동시에 캐시에 존재할 수 있습니다.

단점:

  • 검색 시간이 길다. 메모리 블록을 찾기 위해 모든 캐시 라인을 검색해야 하므로, 검색 시간이 더 길어집니다.
  • 비용이 비쌉니다. 모든 캐시 라인에 대해 비교를 해야 하므로, 하드웨어 구현이 복잡하고 비용이 많이 듭니다.

예:

  • 캐시에서 메모리 블록을 찾을 때는 전체 캐시 라인을 검색하여 태그 값이 일치하는지 확인합니다.

3. 직접 사상 캐시와 완전 연관 캐시 비교

항목 직접 사상 캐시 (Direct-mapped Cache) 완전 연관 캐시 (Fully associative Cache)
메모리 블록 매핑 각 메모리 블록은 고정된 특정 캐시 라인에만 매핑 메모리 블록은 자유롭게 캐시의 모든 라인에 매핑될 수 있음
검색 속도 빠름 (정해진 라인만 검색) 느림 (모든 라인 검색 필요)
충돌 충돌 발생 가능성 높음 (동일한 캐시 라인에 여러 블록 매핑됨) 충돌 발생 가능성 낮음
교체 정책 필요 없음 (덮어쓰기 방식) LRU, 임의 교체 등 다양한 교체 정책 사용 가능
적합한 상황 저비용, 빠른 속도 중시, 작은 캐시에서 유리 높은 캐시 적중률 중시, 고성능 시스템에 적합
비용 및 구현 복잡도 저비용, 간단한 구현 고비용, 복잡한 구현

4. 결론

  • 직접 사상 캐시속도와 비용을 중시하는 시스템에 적합하고, 충돌이 있을 수 있지만 간단하고 빠른 구현을 제공합니다.
  • 완전 연관 캐시적중률과 성능이 중요한 시스템에 적합하며, 충돌을 최소화하고 효율적으로 캐시할 수 있지만, 검색 시간이 길고 비용이 더 많이 듭니다.