반응형
캐시 별로,
Write-Through Cache
- Cache에 데이터를 업데이트 하면 Main Memory(원본)과 값이 달라진다.
- 이때 이를 해결하기 위해 캐시 업데이트 시 메인 메모리를 같이 업데이트 하는 정책이다.
- 프로세서가 메인 메모리 업데이트를 기다린다면 매우 비효율적이다
- e.g. base CPI = 1, 10% inst = store, write to mem takes 100 cycles
- CPI = 1 + 0.1 * 100 = 11 cycles
- 이를 방지하기 위해 Write Buffer 사용
- Write Buffer에 Memory에 업데이트 되어야 할 Data를 저장
- CPU는 다음 명령어 실행하러 가고 DMA로 업데이트
- store -> cache hit -> Write Buffer full 시에만 Stall이 발생한다.
- CPU와 메모리의 Speed Mismatch를 해소하는 역할
Write-Back Cache
- Write-Through Cache의 단점을 보완할 목적으로 만들어짐
- Cache에 데이터를 업데이트 하면 나중에 Main Memory에 업데이트 하기 위해 일단 표시한다.
- 표시를 위해 Cache Block마다 새로운 Status Bit(= Dirty Bit)을 설정한다.
- Cache Block이 Replace 될 때 해당 Cache가 가리키는 Main Memory에 값을 업데이트 한다.
- 다른 Tag를 가진 Data가 Cache Block에 할당될 때
- 데이터를 업데이트한 뒤 새로운 데이터를 저장하여야 하는데, 업데이트 속도가 느림
- 업데이트 될 데이터를 일단 Write Buffer로 옮기고 새로운 데이터를 받는다.
- Write-Through보다 Write Buffer의 부담이 덜할 듯
Write Allocation
- Write Miss가 발생했을 때의 정책
- Write-Through일 때 Cache Miss
- Allocate on miss: Cache로 가져와서 store 후 Write-Through (Fetch the Block)
- Write Around: 메모리에 직접 쓰기 (Don't Fetch the Block)
- Write-Back일 때 Cache Miss
- Fetch the Block
Main Memory Supporting Caches
- DRAM을 메인 메모리로 사용한다
- DRAM에서 한 번에 읽어올 수 있는 width가 고정되어 있다. (1 word)
- fixed-width clocked bus로 연결되어 있다
- bus clock은 CPU clock보다 느림
- 예시
- 1 bus cycle for addr transfer
- 15 bus cycle per DRAM Access
- 1 bus cycle per data transfer
- 4-word block 데이터 받아오기, 1-word-wide DRAM
- 연속된 데이터이니 주소는 1번만 전송
- Mem Access와 Transfer는 4번씩 발생
- miss penalty = 1 + 4*15 + 4x1 = 65 bus cycle
- bandwidth = 16 bytes / 65 cycles = 0.25 B/cycle
- 4-word-wide DRAM이라면
- miss penalty = 1 + 15 + 1 = 17 bus cycles
- bandwidth = 16 / 17 = 0.94 B/Cycle
- 하드웨어 구성이 비싸서 4-bank interleaved 방식을 주로 사용
- 4-bank interleaved DRAM
- 1 + 15 + 4 * 1 = 20 bus cycles
- 0.8 B/cycle Bandwidth
반응형
'대학 수업' 카테고리의 다른 글
Virtual Memory, TLB, Cache Interacton - 임베디드 컴퓨터 구조 (1) | 2020.12.13 |
---|---|
DRAM 구조와 Cache Performance 측정 - 임베디드 컴퓨터 구조 (0) | 2020.12.13 |
Cache Architecture - 임베디드 컴퓨터 구조 (0) | 2020.12.11 |
Speculative Tomasulo Algorithm - 임베디드 컴퓨터 구조 (0) | 2020.12.11 |
Tomasulo's Algorithm - 임베디드컴퓨터구조 (0) | 2020.12.02 |