본문 바로가기
Computer Science/Computer Architecture

5. Write Strategy

by Gofo 2021. 6. 11.

Write Strategy

Cache에 write를 할 때 cache의 내용과 memory의 내용이 달라진다.(inconsistent)

따라서 이를 맞춰줘야 한다.

 

2개의 방법이 있다.

  • write-through
  • write-back

 


Write-Through

Cache에 write 할 때 main memory에도 write를 하는 방법이다.

그런데 main memory는 access 속도가 매우 느리기 때문에 CPI가 매우 커지게 된다.

 

예를 들어, CPI가 1이고, 10%의 instruction이 sw이고, memory access time이 50cycle이라 하자.

그렇게 되면 effective CPI = 1 + 0.1 * 50 = 6 이 된다.

 

이를 해결하기 위해서 write buffer를 이용한다.

 

Write Buffer

write buffer는 캐시보다 작은 크기의 메모리이다.

 

CPU는 cache와 write buffer에 병렬로 write를 진행한다.

이후 write buffer에서 main memory에 write를 하게 된다.

 

Cache와 write buffer에 병렬로 write하기 때문에 시간 손실이 일어나지 않는다.

Write buffer에서 main memory에 다 안썼는데 또 들어올 경우, 즉, write buffer가 이미 차있는 경우에만 stall이 발생하게 된다.

 

개념적으로 단순하고 구현이 쉽다는 장점이 있다.

 


Write-Back

우선 cache에만 write하고, 나중에 main memory에 write 하는 방법이다.

 

Dirty Bit

Cache에 write하지 않았으면, 이후에 main memory에 write 할 필요가 없다.

이를 구분하기 위해 dirty bit을 사용한다.

 

Dirty bit이 1(dirty)이면 내용이 변경된 것으로, 이후에 main memory에도 write 해야 함을 의미한다.

Dirty bit이 0(clean)이라면 main memory와 cache가 같은 값을 가지므로 write 할 필요가 없다.

 

Main memory에서 caching 하면 clean 상태이고 cache에 write하면 dirty 상태가 된다.

 

Write Buffer

이후 다른 block과 교체될 때 dirty bit이 1이면 memory에 write를 수행한다.

이 때 main memory access 속도가 느리기 때문에 miss penalty가 늘어나게 된다.

이를 방지하기 위해서 write buffer를 이용한다.

 

Cache에서 write buffer로 write를 하고, write buffer에서 main memory로 write를 한다.

비록 cache→write buffer로 write하는 시간이 조금 걸리긴 하지만, cache→main memory로 write 하는 것 보다는 훨씬 빠르다.

 

장/단점

  • 장점
    • 평소에 cache에만 write 하면 된다. 평소에는 cache 속도로 진행할 수 있다.
    • Block 단위로 write를 진행한다.
      • 한번에 write가 가능하고, block transfer가 가능하다.
      • high-bandwidth transfer를 더 효율적으로 사용할 수 있다.
  • 단점
    • overhead가 발생한다. : cache miss가 나서 block을 교체할 때 그 block이 dirty인지 아닌지를 판단해야 한다.

 

 

 

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

5. Virtual Memory  (0) 2021.06.13
5. Multilevel Caches  (0) 2021.06.11
5. Set-Associative Mapping  (1) 2021.06.11
5. Direct Mapping  (0) 2021.06.11
5. Memory Design  (0) 2021.06.11

댓글