[컴퓨터 구조] Cache Hit / Miss 처리 방식 비교

November 29, 2023


메모리 계층 구조

이전 글인 메모리 계층 구조에서 우리는 메모리 계층 구조, 용어 정리cache에 대해서 배울 수 있었습니다.

이번 글에서는 cache hit, miss 처리 방식miss왜 발생하고 어떻게 줄일 수 있는지 분석해 봅니다.

처리 방식 비교

Cache Hit 처리 방식 비교

정책 설명
write-through 1 사이클만에 완료
hit이면 just write
miss면, 그 자리의 L1 cache의 정보를 다른 곳으로 복사해두고 그 자리에 새로운 정보를 write해야함
write-back write시 2 사이클 필요

write-allocate vs. write-no-allocate 정리 글

Cache Miss 원인 분석

Issue Description Resolution
Compulsory cold start 또는 first reference 때문에 처음에는 무조건 miss가 발생 Block 사이즈를 키우면 compulsory를 줄일 수 있지만, miss penalty가 커질 수 있다.
Capacity 캐시에 프로그램의 모든 block이 들어가지 못하는 경우 Cache 크기를 키우면 됨.
단, access time이 길어지고 비용 상승
Conflict 같은 cache 위치로 향해 여러 개의 메모리가 위치하면 충돌이 발생할 수 있음 Cache 크기를 키우고 associativity를 늘리면 됨.
associativity: 한 군데로 치우치지 않게 배치 정책을 조절 → Hit time이 증가

Cache Miss 처리 방식 비교

Single word blocks 사례

Read miss 발생

I cache & D cache

  1. pipeline을 전체 멈춤 (단, cache에 의한 것으로 hazard는 아님)

  2. 다음 메모리 계층에서 block을 fetch

  3. cache에 삽입

    • I cache: just insert
    • D cache: write-back vs. write-through

    write-back 캐시인 경우, dirty block을 교체할 가능성이 있는데 이런 경우 하위 계층 메모리에 쓰기 연산을 하고 교체를 해야 함

    write-through 캐시라면, just insert

Write miss 발생

D cache only

pipeline

Harvard 구조로, I cache와 D cache로 나누었기 때문에, cache를 동시에 접근할 수 있습니다.

Multi-word block 사례

Read miss 발생

I cache & D cache

Block 크기가 커질수록 Miss penalty가 증가

Early restart

  • 요청된 block의 word가 돌아오는데로 프로세서가 명령어 수행

Critical word first

  • 요청된 word는 메모리에서 캐시로 바로 전달되어서 프로세서가 실행

Non-blocking cache

  • 어느 명령어에 필요한 정보가 캐시에서 miss가 발생하더라도, 다음 명령어가 무관한 명령어라면 다음 명령어를 그대로 실행시킴

Write miss 발생

D cache only

write-through + no-write allocate라면, just write

write-back + write allocate라면, 그 block 전체를 메모리로부터 fetch해야 함. 그리고 불러온 해당 block내의 필요한 word를 block으로 write

또는, 필요한 word만 메모리에서 가져오는 방법이 존재

→ block별 tag가 아닌, 각 word별 태그를 구성해야 함

main memory interface

  • 1 word bus + 1 word block: 데이터를 받는 동안 정지해야 함

one word one block

1 cycle to send address + 15 cycles to read DRAM + 1 cycle to return data

  • 1 word bus + 4 word block

    • Different DRAM

    1 word- 4 block

    • Same DRAM

    1 word- 4 block-same dram

  • Interleaved memory

    word interleaving

    interleaved memory cycles

    Bank가 4개라서 4개 동시에 시작하고, 메모리 bus가 작아서 받을 때는 순차적으로 받습니다.

Word interleaving: DRAM은 주기적으로 refreshing 해야 하는데, Word interleaving 기법으로 메모리 주소의 특정 부분에 대한 접근을 동시에 수행함으로써 성능을 최적화함

Memory bank

  • memory device에 독립적으로 동작
  • 다른 bank와는 상관없이 독립적으로 동시 접근이 가능

참고

https://en.wikipedia.org/wiki/Interleaved_memory


Profile picture

이재원

이해하기 쉬운 코드를 작성하려 고민합니다.


© 2024 Won's blog Built with Gatsby