[컴퓨터구조] 캐시 실패의 처리

2023. 6. 1. 17:23· SKKU SW/Computer Architecture

On cache hit, CPU proceeds normally (additional delay 없이)

On cache miss,

-stall the CPU pipeline

-fetch block from next level of hierarchy

-instruction cache miss: restart instruction fetch

-data cache miss: complete data access

 

명령어 캐시 실패의 처리 단계

1. 원래의 pc값을 메모리로 보낸다.

2. 메인 메모리에 읽기 동작을 지시하고 메모리가 접근을 끝낼 때까지 기다린다.

3. 캐시 엔트리에 쓴다. 이때 메모리에서 인출한 데이터를 데이터 부분에 쓰고, 태그 필드에 주소의 상위 비트를 쓰고, 유효 비트를 1로 한다.

4. 명령어 수행을 첫 단계부터 다시 시작한다. 캐시에서 명령어를 다시 인출하는데, 이번에는 필요한 명령어를 캐시에서 찾을 수 있다.

데이터 접근을 위한 캐시 제어도 기본적으로는 같아서, 실패가 발생하면 메모리가 데이터를 보내줄 때까지 프로세서를 지연시킨다.

 

<쓰기의 처리>

1. write-through (즉시 쓰기)
항상 데이터를 메모리와 캐시에 같이 써서 메인 메모리와 캐시를 일치시킴

이러한 방식은 쓰기를 매우 간단히 처리하기는 하지만 좋은 성능을 제공하기는 어려움

모든 쓰기가 메인 메모리에 데이터를 써야만 하고 프로세서의 성능을 심하게 저하시킨다

만약 명령어의 10%가 저장 명령어라고 가정할 때, 캐시 실패가 없으면 CPI가 1.0이고 모든 쓰기에 100개의 추가 사이클이 필요하다면 CPI는 1.0 + 100 x 10% = 11이 되어 10배 이상의 성능 저하가 생기게 된다.

 

이러한 문제를 해결하기 위한 한 가지 방법은 쓰기 버퍼(write buffer)를 이용하는 것

쓰기 버퍼는 데이터가 메모리에 써질 때까지 기다리는 동안 이 데이터를 저장한다.

그리고 프로세서는 데이터를 캐시와 쓰기 버퍼에 쓰고 난 후에 바로 수행을 계속할 수 있다. 메인 메모리에 쓰기를 완료하면 쓰기 버퍼의 엔트리는 지워진다.

 

2. write-back (나중 쓰기)

쓰기가 발생했을 때 새로운 값은 캐시 내의 블록에만 쓴다.

keep track of whether each block is dirty (D bit)

V D Tag Data

D: add new information for cache block

distinguish whether the cache line has been updated within the cache memory. start with 0

그러다가 나중에 캐시에서 쫓겨날 때 쓰기에 의해 내용이 바뀌었으면 이 블록을 하위 메모리 계층에 쓴다.

(When a dirty block is replaced, write it back to memory

this also uses the write buffer)

Main memory update only once when the cache line keep out of cache memory

 

<Handling Store Miss>

1. No write allocate

Just go to the memory and update memory only (메모리의 있는 블록의 해당 부분만 갱신하고 캐시에는 쓰지 않는 방식)

Cache is unchanged

 

2. Write allocate

Fetch the line from memory as if we have a load miss (캐시 실패시 캐시에 블록을 할당)

일단 전체 블록을 메모리에서 읽어온 후, 블록 중에서 쓰기 실패를 발생시킨 워드만 덮어 쓴다.

...and then do the same thing as a store hit

'SKKU SW > Computer Architecture' 카테고리의 다른 글

[컴퓨터구조] 캐시 성능의 측정 및 향상  (0) 2023.06.02
[컴퓨터구조] 5. Memory Hierarchy 메모리 계층구조  (0) 2023.05.28
[컴퓨터구조] Procedure Calling  (0) 2023.04.17
[컴퓨터구조] RISC-V Instruction Formats(2)  (0) 2023.04.15
[컴퓨터구조] RISC-V Instruction Formats(1)  (0) 2023.04.14
'SKKU SW/Computer Architecture' 카테고리의 다른 글
  • [컴퓨터구조] 캐시 성능의 측정 및 향상
  • [컴퓨터구조] 5. Memory Hierarchy 메모리 계층구조
  • [컴퓨터구조] Procedure Calling
  • [컴퓨터구조] RISC-V Instruction Formats(2)
효딩
효딩
개ㄱ발은 기세다. 줄여서 객기.
효딩
hyoding
효딩
전체
오늘
어제
  • 분류 전체보기 (245)
    • SKKU SW (30)
      • Computer Architecture (14)
      • Database (4)
      • Computer Network (3)
      • Operating System (7)
      • Mobile App Programming (2)
    • SuperCoding (68)
    • CS (8)
    • Web Programming (19)
    • Cloud (13)
    • Languages (45)
      • Python (8)
      • Java (37)
    • Supporters (8)
      • MoteMote (6)
      • NHN Cloud (2)
    • Certification (27)
      • Network Advisor (14)
      • ADsP (10)
      • Engineer Information Proces.. (3)
    • Finance (9)
      • 경제금융용어 (3)
    • Woori FISA (14)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 글로벌소프트웨어캠퍼스
  • AWS
  • 클라우드서비스개발
  • 봐
  • 네트워크관리사 커트라인
  • 코틀린문법
  • 앱개발
  • 클라우드
  • 네트워크관리사2급
  • apppaas
  • Kotlin
  • 우리에프아이에스
  • 네트워크관리사 준비물
  • 서버배포
  • 서버생성
  • 네트워크관리사2급 공부방법
  • 우리FISA
  • rds local 접속
  • 클라우드 서비스
  • 우리fis아카데미
  • 코틀린
  • 네트워크관리사
  • 네트워크관리사2급 필기
  • 인프라
  • nhn cloud
  • 서버개발
  • K-디지털트레이닝
  • 네트워크관리사 후기
  • 인프라개발
  • 네트워크관리사 합격

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
효딩
[컴퓨터구조] 캐시 실패의 처리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.