캐시 메모리 쓰기 정책
Write-Through
Through 의 의미는 관통한다 라는 의미로 받아들이면 이해가 수월해집니다.
Write-Through는 쓰기를 할때 Cache Memory 와 Main Memory 모두 업데이트 하는 방식입니다.
일관성을 유지할 수 있다는 장점과 동시에 일관성을 유지하기위해 메모리에 쓰는 시간동안 CPU가 대기해야하는 시간이 발생합니다.
위와 같은 단점을 보완하기위해 Write Buffer 를 추가로 사용합니다.
위와 같이 Buffer를 두면 CPU가 Buffer 에 업데이트할 데이터를 적재해놓으면 Memory가 업데이트 되는 동안 CPU는 다른 일을 할 수 있습니다.
장단점
- 장점 : 캐시 일관성을 유지할 수 있다.
- 단점 : 처리 속도가 느리며 CPU 대기시간이 늘어난다. Write Buffer 를 사용하여 개선할 수 있다.
Write-Back
Write-Back은 캐시 메모리에만 데이터를 Write 하고 있다가, 캐시 메모리가 새로운 데이터 블록으로 교체 되는 때 데이터를 주기억장치에 업데이트 하는 정책입니다.
장단점
- 장점 : Write-Through 보다 훨씬 처리속도가 빠르다.
- 단점 : 구현하기 어렵고, 캐시 일관성을 유지하기 쉽지 않다.
캐시 미스 정책
no-Allocate
캐시 미스가 발생하면 Main Memory의 블록만 수정해주는 방식입니다.
Allocate
캐시 미스가 발생하면 Main Memory의 블록을 Cache Memory에 할당해 write 하는 방식입니다.
버퍼란 무엇인가?
프로그래밍이나 운영체제에서 사용하는 버퍼는 거의 대부분 CPU 와 보조기억장치 사이에서 사용되는 임시 저장 공간을 의미합니다.
CPU 는 매우 빠른 속도를 가지지만 보조기억 장치의 경우 데이터를 주고 받는데에 많은 시간이 필요합니다.
위 예제를 보면 CPU는 1초에 100개의 데이터를 처리할 수 있지만 정작 처리할 데이터를 가지고 있는 보조 기억 장치는 데이터를 1초에 세개밖에 보내주지 않으므로 CPU 입장에서 97 개 만큼의 효율을 잃게 됩니다.
이와 같은 비효율을 해결하기위해 버퍼를 사용합니다. 버퍼는 CPU 내부에 있는 캐시 메모리 보다는 느리지만 보조 기억 장치보다 훨씬 빠른 주기억 장치 (RAM)을 사용합니다. 보조기억장치는 주기억장치의 버퍼로 마련해둔 공간에 데이터를 열심히 보내 둡니다. CPU는 처리가 빠르므로 밀려있는 다른일을 처리한 후 시간이 남을때 가끔 버퍼를 확인하여 데이터가 모두 쌓여있다면 한꺼번에 처리합니다.
버퍼 와 캐시
공통점
추가적인 메모리를 소모함으로써 속도차이를 보상받는다.
차이점
버퍼는 일반적으로 캐시에 비해 처리크기가 크기 때문에 데이터를 저장하지 않고 한번의 연산이 끝나면 데이터를 폐기한다. 이에 반해 캐시는 캐시메모리에 해당 데이터를 저장하여 추후에도 계속 사용할 수 있도록한다.
캐시는 주로 읽기 부분에, 버퍼는 쓰기 부분에 사용된다.
참고자료
'CS > 컴퓨터구조' 카테고리의 다른 글
패리티 비트 & 해밍 코드 (0) | 2023.04.04 |
---|---|
CPU의 구조와 기능 (0) | 2023.04.04 |
컴퓨터 시스템의 개요 (0) | 2023.04.03 |
캐시 메모리 (2) | 2023.04.01 |
부동소수점에 대한 이해 (0) | 2023.03.31 |