ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 8.5강 : 캐시 미스의 종류
    PC, 하드웨어/PC 이론 2024. 10. 25. 07:55

    8.5강 : 캐시 미스의 종류

    이전의 글에서 다뤘던 캐시미스를 기억하시는지요?

    바로 이전 글이니 기억하실수도 있고, 이 게시물을 처음 보는 분들이라면 이전 게시물을 보는 것을 추천합니다.

    캐시미스는 종류가 있습니다. 그 종류와 원인, 그리고 해결 방법에 대해서 이번 시간에 알아보도록 합시다.

    캐시 미스는 CPU가 요청한 데이터가 캐시에서 발견되지 않을 때 발생하며, 이는 시스템 성능에 부정적인 영향을 미칠 수 있습니다. 캐시 미스는 주로 데이터가 메모리 계층에서 어떻게 저장되고, 접근되며, 관리되는지에 따라 다양한 방식으로 발생할 수 있습니다. 캐시 미스는 크게 세 가지 유형으로 구분됩니다: 컴펄서리 미스(Compulsory Miss), 캐파시티 미스(Capacity Miss), 컨플릭트 미스(Conflict Miss). 각각의 유형은 캐시 메모리의 크기, 데이터 관리 방식, 그리고 캐시 구조와 연관되어 있습니다.


    1. 컴펄서리 미스 (Compulsory Miss)

    컴펄서리 미스는 **첫 번째 참조 미스(First Reference Miss)**라고도 불리며, 데이터가 처음으로 캐시에 요청될 때 발생합니다. 이때 CPU는 해당 데이터를 이전에 한 번도 요청하지 않았으므로, 캐시에 저장되어 있지 않은 상태입니다. 따라서 CPU는 메모리에서 데이터를 가져와 캐시에 저장하고, 이후 동일한 데이터를 다시 요청할 때는 캐시 히트가 발생할 수 있도록 합니다.

    원인

    컴펄서리 미스는 시스템 시작 시나 프로그램에서 처음으로 데이터를 접근하는 상황에서 주로 발생하며, 캐시 구조나 크기와는 무관하게 처음 요청하는 데이터에서는 필연적으로 발생합니다.

    해결 방법

    • 프리페칭(Pre-fetching): 캐시에 데이터를 미리 로드하는 기법을 사용해 컴펄서리 미스를 줄일 수 있습니다. CPU는 자주 사용될 가능성이 있는 데이터를 미리 캐시에 저장하여, 캐시 미스를 최소화하려고 시도합니다.

    2. 캐파시티 미스 (Capacity Miss)

    캐파시티 미스는 캐시의 용량 부족으로 인해 발생합니다. 캐시가 한 번에 저장할 수 있는 데이터의 양이 한정되어 있기 때문에, 더 이상 데이터를 저장할 공간이 없을 경우 오래된 데이터가 **교체(replacement)**되어 캐시에서 삭제됩니다. 이후 삭제된 데이터가 다시 필요하면, CPU는 캐시 미스를 겪고 메모리로부터 데이터를 다시 불러와야 합니다.

    원인

    캐시의 크기 제한으로 인해 발생하며, 대규모 데이터를 처리하는 프로그램이나 작업에서 자주 나타납니다. 캐시가 충분히 크지 않으면 CPU가 자주 사용하던 데이터가 캐시에서 삭제되고, 이로 인해 캐시 미스가 발생합니다.

    해결 방법

    • 더 큰 캐시 사용: 더 큰 용량의 캐시를 사용하여 자주 사용되는 데이터가 캐시 내에 오래 유지되도록 하면 캐파시티 미스를 줄일 수 있습니다.
    • 캐시 계층 설계 최적화: L1, L2, L3 캐시의 효율적인 계층 설계를 통해 캐시 용량을 늘리거나, 더 많은 데이터를 저장할 수 있도록 시스템 구조를 최적화할 수 있습니다.

    3. 컨플릭트 미스 (Conflict Miss)

    컨플릭트 미스는 캐시의 매핑 방식으로 인해 발생하는 미스입니다. 캐시는 데이터를 특정 방식으로 매핑하여 저장하는데, 연관성 사상 방식(Associative Mapping)을 사용하여 데이터를 저장할 수 있는 공간을 지정합니다. 하지만 두 개 이상의 데이터가 동일한 캐시 슬롯을 공유해야 하는 상황이 발생할 때, 이전에 저장된 데이터가 삭제되고 새로운 데이터가 저장됩니다. 이후 삭제된 데이터가 다시 필요할 경우, 캐시 미스가 발생합니다.

    원인

    • 캐시가 데이터를 저장할 때, 여러 데이터가 동일한 캐시 인덱스를 사용할 때 발생합니다. 이는 주로 **직접 사상(Direct Mapping)**이나 부분 연관 사상(Set Associative Mapping) 캐시 구조에서 나타납니다.

    해결 방법

    • 더 높은 연관성 사상(Associative Mapping): 캐시의 연관성 사상 수준을 높이는 방법이 있습니다. 전면 연관 사상(Fully Associative Mapping) 캐시는 컨플릭트 미스를 줄이기 위해 데이터를 캐시의 어느 슬롯에나 저장할 수 있도록 합니다.
    • 스마트한 교체 정책: **LRU(Least Recently Used)**와 같은 교체 알고리즘을 적용해 덜 자주 사용되는 데이터를 먼저 교체함으로써 컨플릭트 미스를 최소화할 수 있습니다.

    도표: 캐시 미스의 종류와 원인

    캐시 미스 유형 원인 해결 방법
    컴펄서리 미스 처음 데이터가 요청될 때 발생 프리페칭을 사용해 미리 데이터를 로드
    캐파시티 미스 캐시 용량이 부족하여 데이터가 삭제될 때 발생 더 큰 캐시 사용 또는 캐시 계층 구조 최적화
    컨플릭트 미스 여러 데이터가 동일한 캐시 슬롯에 매핑될 때 발생 더 높은 연관성 사상 캐시 구조 적용 또는 교체 정책 최적화

    결론: 캐시 미스를 줄이기 위한 최적화 전략

    캐시 미스는 CPU의 성능에 큰 영향을 미치는 요소로, 각 미스 유형에 맞는 최적화 전략을 통해 성능 저하를 방지할 수 있습니다. 컴펄서리 미스는 프리페칭 기법을 사용하여 데이터를 미리 캐시에 로드함으로써 줄일 수 있으며, 캐파시티 미스는 더 큰 캐시를 사용하거나 캐시 계층 구조를 최적화함으로써 해결할 수 있습니다. 마지막으로, 컨플릭트 미스는 더 높은 연관성 사상 캐시를 사용하거나 스마트한 교체 정책을 통해 최소화할 수 있습니다.

    캐시 미스율을 줄이는 것은 시스템의 전반적인 성능 향상에 중요한 역할을 하며, 특히 고성능 작업이나 대규모 데이터 처리가 필요한 환경에서는 필수적인 최적화 요소입니다.

Designed by Tistory.