cache write방식에 대해서 알아보자
Cache Write는 어떤 방식으로 동작할까?
만약 cache에 write를 했는데 hit가 발생한 경우
- Write-through : cache에 데이터를 입력하고 메모리에 바로 작성한다. (cache와 메모리의 정보는 항상 같음) 비용이 많이 든다는 단점이 존재.
- Write-back : 일단 cache에 수정사항을 입력하고 메모리에는 반영하지 않는다. dirty bit를 사용해서 수정이 되었다는 정보만 가지고 있다가, 해당 block이 방출될 때 메모리에 업데이트한다. cache가 replacement될 때 한 번만 업데이트 하면 되므로 비용은 적게 든다. 하지만 cache의 정보와 메모리의 정보의 일관성이 깨진다는 단점이 존재.
+ 데이터를 잃을 가능성이 있다는 뜻이다. 그래서 대부분의 저장소 제품에서는 이 캐시를 별도의 캐시와 미러링해서 안정성을 높인다. (23.06.17 update)
만약 cache에 write를 했는데 miss가 발생한 경우
- Write-allocate : 메모리를 cache로 모두 가져온 뒤 cache에 write를 해준다.
- No-write-allocate : cache로 읽어오지 않고 메모리에 바로 write를 해준다.
Write-through + No-write-allocate
Write-back + Write-allocate : 더 일반적으로 사용된다.
'CS > SystemSoftware' 카테고리의 다른 글
SystemSoftware - Exceptional Control Flow #3 (0) | 2021.06.09 |
---|---|
Cache Lab csim.c #1 (1) | 2021.06.07 |
SystemSoftware - Cache Memory #1 (1) | 2021.06.06 |
SystemSoftware - Creating Processes #2 (0) | 2021.06.06 |
SystemSoftware - Creating Processes #1 (0) | 2021.06.06 |