본문 바로가기
Computer Science

[Memory System] Cache Coherence: Write-through, Write-back

by Henry Cho 2022. 2. 26.
728x90

Cache Coherence: Write-through, Write-back


포스트 난이도: HOO_Junior

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


 

# Cache Coherence

Cache coherence(캐시 일관성)이란, 데이터가 write(쓰일 때) 캐시를 어떤 식으로 활용할 것인지에 대한 걸 의미한다.

캐시를 사용함으로써 전반적인 Computing 효율성을 증가시키는 것인데 이때 데이터를 캐시에 어떤 방식과 방법으로 저장할지에 대해서 메모리 처리 속도에 영향을 미친다.

Cache coherence에는 대표적으로 Write-through 와 Write-back 방식이 있다. 


# Write-through

Write-through policty는 cache에 새로운 데이터가 쓰일 때, cache에만 데이터를 write 하는 것이 아니라 동시에 main memory에도 데이터를 write 하는 것을 의미한다.

이 경우 사실상 메모리 처리 자체의 효율성이 비교적 떨어진다.

그럼에도 불구하고 write through 방식은 데이터 보전에 있어서 안정적이라는 장점을 가지고 있다.

예를 들어, cache가 내부나 외부적 요인으로 망가져 데이터가 손실되더라도 Main memory 자체에 데이터가 write되어져 있다 보니 데이터 유실 걱정이 없다.


# Write-back

Write-back policy는 데이터를 cache에 우선적으로 write한다는 점에서 write-through 방식과 다르다.

캐시에만 우선적으로 데이터를 write함으로써 메모리 처리 과정의 효율성을 증가시킨다.

이때 중요한 점은 캐시라인에 새로운 업데이트가 이루어지고 교체가 필요할 경우에 Main memory에도 데이터가 전달되어 write가 이루어진다.

한마디로 변동사항이 없다면 프로세서가 메인 메모리까지 확인할 필요 없이 캐시에서 데이터를 불러올 수 있다는 장점을 가지고 있다.

이 과정에서 데이터의 수정 유무를 확인하기 위해서 Dirty bit이라는 걸 사용한다.

수정이 되지 않은 Clean한 상태인지 수정된 상태인 Dirty 상태인지를 비교하여 캐시와 memory의 wrtie 여부를 판단하는 것이다.

이 경우 잦은 write이 이루어질 확률을 줄여주기 때문에 메모리 처리 자체의 효율성 증가뿐만 아니라 메모리 처리 과정에서 발생할 오류를 줄여주는 역할도 수행한다.

하지만 Write-back의 경우에는 외부적인 요인이나 내부 캐시 자체의 문제가 발생하여 데이터가 손실될 경우 수정된 데이터가 손실될 수 있다는 위험성을 가지고 있다.

캐시 메모리의 경우는 복구가 어렵기 때문에 데이터 손실이 일어날 경우 데이터를 복구가하기가 현실적으로 어렵다.


728x90

댓글