상세 컨텐츠

본문 제목

05. 기억장치 (5) [캐시 메모리 - 사상방식]

Computer Science/Computer Architecture

by RACC8N 2020. 5. 8. 10:18

본문

5.5.3 사상 방식

- 각 주기억장치 블록이 어느 캐시 라인에 적재될 것인 지를 결정해주는 방식으로서, 캐시 내부 조직을 결정

 

1. 직접 사상(direct mapping)

2. 완전-연관 사상(fully-associative mapping)

3. 세트-연관 사상(set-associative mapping)

 

 

1. 직접 사상

- 각 주기억장치의 블록이 지정된 하나의 캐시 라인으로만 적재됨

- 주기억장치 주소 형식

 > 태그 필드(t 비트) : 태그 번호(라인에 적재되어 있는 블록의 번호)

 > 라인 번호(l 비트) : 캐시의 m = 2^t 개의 라인들 중의 하나를 지정

 > 단어 필드(w 비트) : 각 블록 내 2^w 개 단어들 중의 하나를 구분

 

- 주기억장치의 블록 j가 적재될 수 있는 캐시라인의 번호 i :

라인을 공유하는 주기억장치 블록들

- 각 캐시 라인은 2^t개의 블록들에 의하여 공유

- 같은 라인을 공유하는 블록들은 서로 다른 태그를 가짐

직접 사상 캐시의 조직

동작 원리 

- 캐시로 기억장치 주소가 보내지면, 그 중 l비트의 라인 번호를 이용하여 캐시의 라인을 선택

- 선택된 라인의 태그 비트들을 읽어서 주소의 태그 비트들과 비교

  • 두 태그 값이 일치하면 (캐시 적중) -> 주소의 w 비트들을 이용하여 라인 내의 단어들 중에서 하나를 인출하여 CPU로 전송
  • 태그 값이 일치하지 않는다면 (캐시 미스)
    • 주소를 주기억장치로 보내어 한 블록을 엑세스
    • 인출된 블록을 지정된 캐시 라인에 적재하고, 주소의 태그 비트들을 그 라인의 태그 필드에 기록
    • 만약 그 라인에 다른 블록이 이미 적재되어 있다면, 그 내용은 지워지고 새로이 인출된 블록을 적재하고 태그도 갱신

[EXAMPLE]

  • 주기억장치 용량 = 128 (2^7)바이트
  • 주기억장치 주소 = 7 비트 (바이트 단위 주소 지정)
  • 블록 크기 = 4바이트 -> 주기억장치는 128/4 = 32개의 블록들로 구성
  • 캐시 용량 = 32바이트
  • 캐시 라인 크기 = 4바이트 (블록 크기와 동일)
  • 전체 캐시 라인의 수, m = 32/4 = 8 개

기억장치 주소 형식

각 기억장치 블록이 공유하게 될 캐시 라인의 번호 :  i = j mod 8 

직접 사상 흐름

- 장점  : 하드웨어가 간단하고, 구현 비용이 적게 든다

- 단점 : 각 주기억장치 블록이 적재될 수 있는 캐시 라인이 한 개 뿐이기 때문에, 그 라인을 공유하는 다른 블록이 적재되는 경우에는 overwrite되거나, swap-out 됨

 

 

 

 

관련글 더보기

댓글 영역