캐시(Cache)
Cache는 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소이다. 다음과 같은 경우에 사용
- 캐시 접근 시간에 비해 데이터를 직접 접근하는 시간이 오래 걸리는 경우
- 반복적으로 동일한 결과를 돌려주는 상황에서 계산 시간을 절약하고 싶을 경우
메모리
컴퓨터 메모리의 속도와 용량은 반비례(trade-off)관계이다.
- 속도가 빠른 메모리는 용량이 작다 ㅡ> 비싸다
- 용량이 큰 저장 장치는 속도가 느림 ㅡ> 싸다
- 데이터 저장 공간은 속도와 용량에 따라 특성에 맞게 역할을 나누어서 사용하는 것이 적절
캐시의 필요성
위 그래프는 파레토의 법칙을 나타내는 그래프입니다. 20%에 해당하는 빨간 부분이 시스템이 사용하는 데이터의 대부분이라는 의미입니다. 위와 같은 데이터 분포가 나타나기 때문에 우리는 Cache에 자주 사용되는 값들을 미리 옮겨두고 접근할 수 있다면 리소스 사용량은 줄이고 성능은 향상시키는 것이 가능해집니다.
캐시의 지역성(Cache Locality)
캐시 메모리를 적절히 활용하기 위해서는 위에서 말한 것처럼 CPU가 어떤 데이터를 원할 것인지를 예측하여 쓸모 있는 데이터들 위주로 캐시에 옮겨줄 필요가 있습니다. 이를 위해 우리는 데이터의 지역성(Locality)를 사용합니다. 여기서 지역성은 기억 장치 내의 정보를 균일하게 Access하는 것이 아닌 어느 한 순간에 특정 부분을 집중적으로 참조하는 특성입니다.
- 캐시 적중(Cache Hit) : CPU가 접근하려는 데이터가 이미 캐시에 있는 상태
- 캐시 미스(Cache Miss) : CPU가 접근하려는 데이터가 캐시에 없어 속도가 느린 주기억 장치에서 가져와야 하는 상태
- 캐시 적중률(Cache Hit rate) : CPU가 원하는 데이터가 캐시에 있을 확률
ㅡ> Cache Hit / (Cache Miss+Cache Hit) - 미스율(Miss rate) : CPU가 원하는 데이터가 캐시에 없을 확률
ㅡ> 1-Cache Hit rate
지역성(Locality)
시간적 지역성(Temporal Locality)
특정 데이터에 접근했을 때, 가까운 미래에 다시 해당 데이터에 접근할 가능성이 높다.
ㅡ> 처음 접근한 데이터를 캐시에 로드해 두면 시간적 지역성에 따라 반복하여 접근할 경우 캐시의 효율성 향상
공간적 지역성(Spatial Locality)
특정 데이터에 접근했을 때, 기억 장치에서 해당 데이터에 인접하여 저장되어 있던 데이터들이 연속적으로 접근될 가능성이 높다.
ㅡ> 메모리 주소 접근 시 해당하는 데이터 뿐만 아니라 해당 블록을 전부 캐시에 로드하면 메모리 주소를 오름차순, 내림차순으로 접근할 경우에 이미 캐시에 로드된 블록의 데이터를 접근하게 되니 캐시의 효율성 향상
참고자료
https://mangkyu.tistory.com/69
[Server] Cache(캐시)란?
1. 캐시(Cache)란? [ Cache ] Cache란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 아래와 같은 저장공간 계층 구조에서 확인할 수 있듯이, 캐시는 저장 공간이 작고 비용이
mangkyu.tistory.com
캐시(Cache)와 캐싱(Caching) 정리 from 10분 테크톡
캐시(Cache) 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶
readinggeneral.tistory.com
https://ko.wikipedia.org/wiki/%EC%BA%90%EC%8B%9C
캐시 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 동적 CPU 메모리 캐시 그림 캐시(cache, 문화어: 캐쉬, 고속완충기, 고속완충기억기)는 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다.
ko.wikipedia.org
https://velog.io/@lob3767/%EC%BA%90%EC%8B%9C%EC%9D%98-%EC%A7%80%EC%97%AD%EC%84%B1Cache-Locality
캐시의 지역성(Cache Locality)
캐시 메모리는 속도가 빠른 장치와 느린 장치간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리이다. 캐시메모리는 주기억장치에서 자주 사용하는 프로그램과 데이터를 저장해두어 처
velog.io
'컴퓨터구조(CS)' 카테고리의 다른 글
[CS] 네트워크 #2 (0) | 2025.03.11 |
---|---|
[CS] 네트워크 #1 (0) | 2025.03.10 |