[Computer Structure] 캐시 메모리

박시은·2023년 12월 2일
0

Computer Structure

목록 보기
12/17
post-thumbnail
post-custom-banner

🥲질문할것

시험 끝나고 교수님한테 꼭!! 질문드리기

  • "세트- 연관 사상"에서 V(캐시의 세트)는 어떻게 판단하는가 ①번? ②번?

  • 아래 그림 "세트 - 연관 사상" 에서 V=4가 맞는지와,
    V =4 로 계산했을 때 i = 24 mod (4)가 나오는데, 이는 어디에 해당하는지




▶ 캐시 메모리

▷ 개요

  • 캐시란?


  • 특징

    • 주기억장치보다 액세스 속도 높음
    • 가격 및 제한된 공간 때문에 용량 적음

  • 캐시 설계시 고려 사항

    • 캐시 적중 (Cache hit)
      • CPU가 원하는 데이터가 이미 캐쉬에 있는 상태

    • 캐시 미스 (Cache miss)
      • CPU가 원하는 데이터가 캐쉬에 없어 메인 메모리에 다시 갔다가 와야하는 상태

    • 캐시 적중률(Hit Ratio)
      • 캐시에 적중도(H)
      • H = 캐시 적중 횟수/전체 기억장치 액세스 횟수

    • 캐시 미스율 (Miss Ratio)
      • 미스율 = 1 - H

    • 평균 기억장치 액세스 시간 ( Ta )
      • Tc는 캐시 액세스 시간, Tm은 주기억 장치 액세스 시간
    • 예제 ①
      • H (캐시 적중도)가 높아지면 평균 기억장치 액세스 시간은 감소 (캐시 액세스 시간에 접근)
      • 캐시 적중률은 프로그램과 데이터의 지역성(Locality)에 크게 의존 (지역성 높을시 좋아짐)

  • 캐시 블록 변경시 주기억장치에 갱신하는 방법(일관성 유지)
    • Write-Through
      • 개념
        • 캐시가 변경될 때, 주기억장치도 데이터를 동시에 변경해주는 방식
      • 장점
        • 캐시 적재 블록 내용이 주기억장치 블록 내용과 항상 같음
      • 단점
        • 캐시 뿐만 아니라 주기억장치도 쓰기 동작을 동시에 진행하기 때문에 쓰기 시간 증가

    • Write-Back
      • 개념
        • 일정한 텀을 두고 캐시가 제거될때나 CPU가 대기시간에 들어갈 때 데이터를 변경해 주는 방식
        • 캐시에서 데이터가 변경되어도 주기억장치에는 갱신X
      • 장점
        • 기억장치에 대한 쓰기 동작 횟수 최소화, 쓰기 시간 단축
      • 단점
        • 캐시의 내용과 주기억장치 내용 불일치 (동기화x)
          → 블록 교체 시 캐시 상태를 확인해 갱신하는 동작이 선행되어야 함, 추가 시간 소요

▷ 사상(mapping) 방식

  • 개념
    • 어떤 메인메모리 블록이 어느 캐시 슬롯에 들어갈지 결정하는 방법을 사상이라고 한다.
    • 즉, 메인메모리에 있는 값을 어떤 매핑 방법에 의거해 캐시에 올릴건지를 결정하는 것을 말한다.
    • 메인메모리와 캐시메모리가 어떻게 매핑(사상)될까? 알아보자.

① 직접 사상 (Direct Mapping)

  • 개념
    • 메모리 블록들이 정해진 하나의 캐시 블록에만 매핑

    • 예시
      • 메모리 공간이 32개(0000011111)이고, 캐시 메모리 공간은 8개(000111)인 상황이라면,
        00000, 01000, 10000, 11000인 메모리 주소는 다른 슬롯들이 비어있어도 무조건 000 캐시 메모리 주소에 맵핑
      • 이때, 000이 '인덱스 필드', 인덱스 제외한 앞의 나머지(00, 01, 10, 11)를 '태그 필드'


  • 문제
    • 10110이 적재될 수 있는 캐시 슬롯을 찾아보자
      • 공식 : i = mod m (i = 주기억장치 블록(슬롯) 번호, m = 캐시 슬롯의 전체 수)
      • i = 10110(2) mod 8
      • 즉, 22 mod 8 => 6번째 슬롯!

  • 장점
    • 구현이 단순하고, 접근 속도가 빠르다.
    • 구현 비용이 적게 든다.
      => 슬롯의 위치가 정해져 있기 때문

  • 단점⭐
    • 주기억장치 블록이 적재 가능한 캐시 슬롯이 한개뿐이기 때문에, 이미 적재된 슬롯이 있으면 Swap-Out이 된다. (메모리 빼야함)

② 완전-연관 사상 (Fully Associate Mapping)

  • 개념
    • 비어있는 캐시 메모리가 있으면, 마음대로 주소를 저장하는 방식이다.
    • 직접매핑에서는 인덱스가 필요했지만, 완전 연관 사상에서는 빈자리 찾아가면 끝!
    • 메모리 블록을 어떤 캐시 블록에도 사상 가능 (슬롯 필드 존재 x)

  • 장점
    • 슬롯 선택 자유로움; 지역성이 높을 때 적중률 극대화

  • 단점
    • 캐시 슬롯들의 태그를 동시에 검사하기 위해 매우 복잡하고 비용이 높은 회로가 필요

③ 세트-연관 사상 (Set Associate Mapping)

  • 개념
    • 직접 사상 + 완전 연관 사상으로 특정 행을 지정(set 할당)하고, 그 행안의 어떤 열이든 비어있을 때 사상(비어있는 slot 할당)
    • 즉, 직접 사상 + 완전 사상의 혼합 방식이다!
    • 블록 그룹이 캐시 세트 공유(묶음): 캐시는 v개의 세트로 구성, 각 세트는 k개의 슬롯으로 구성
  • 공식
    • 전체 주기억장치 블록수 : m,
    • 주기억장치 블록이 적재될 수 있는 캐시 세트 번호 : i,
    • 주기억장치 블록 번호 : j
    • m = v x k, i = j mod (v)



📎참조

profile
블로그 이전했습니다!
post-custom-banner

0개의 댓글