Automotive Software

캐시 기본 본문

프로그래밍 (Programming)/컴퓨터 구조

캐시 기본

AutoSW 2023. 11. 3. 18:48
  • 캐시 구조
    • 직접 주소 매핑 (direct mapped cache) : 가장 간단한 방식으로 메인 메모리상의 주소가 하나의 캐시 블록에 매핑
    • 전 연관 캐시 (fully associative cache) : 지정된 캐시 블록 없이 사용가능한 캐시에 동적으로 데이터 저장
    • 집합 연관 캐시 (set associative cache) : 캐시 블록을 집합이라는 그룹으로 나누고 각 주소 영역의 하나의 집합에 매핑, 데이터는 해당 집합 내의 어느 주소에 저장 가능
    • 예, 1블록으로 이루어진 8 세트 캐시가 있을 경우,
      • 1 Way associative cache : direct mapped와 동일
      • 2 - 4 way associative cache : 각각 2 블록(4 세트) / 4 블록(2세트)
      • 8 way associative cache : fully associative와 동일
  • 쓰기 동작
    • 즉시 쓰기 (Write-through)
      • 메인 메모리와 캐시 양쪽에 데이터를 동시에 기록하지만, 메인 메모리 접근 비용이 성능 저하로 나타나며, 이를 보완하기 위해 쓰기 버퍼를 (Write buffer)를 설계할 수 있으나 버퍼의 크기가 쓰기 요청주기를 처리하지 못하면 성능 개선이 어려움
    • 나중 쓰기 (Write-back)
      • 새로운 데이터는 캐시 내에만 저장되고, 쓰인 블록이 교체될 때 메인 메모리로 쓰임
  • 읽기 동작
    • 명령 캐시 실패 시의 동작
      • 명령어 접근 실패 -> 하위 메모리 계층에 읽기 수행 요청 -> ALU를 이용하여 실패한 명령어 주소 산출 -> 주 기억 장치에 읽기 수행 요청 -> 메모리 응답 대기 (시간 소요) -> 읽어온 데이터 캐시로 복사 -> 실패한 명령어를 다시 캐시에서 실행
    • 데이터 캐시 실패 시의 동작
      • 기본적으로 명령 캐시 실패와 같이 프로세스를 지연시켜 필요한 데이터가 캐시로 복사되기를 기다리지만, 명령 캐시 실패와는 다르게 필요 데이터를 기다리는 동안 프로세서가 명령어를 수행할 수 있도록 허용
        • 결국은 데이터가 필요하므로 실제 많은 사이클을 줄일 수는 없음
  • 참조