캐시 메모리
캐시 메모리란?
캐시 메모리는 CPU와 메인 메모리 간에 데이터 접근 시 속도 차이를 줄이기 위해 사용
속도가 빠른 장치와 느린 장치 사이에서 버퍼 역할을 하며 속도 차에 따른 병목 현상을 줄여, 컴퓨터 시스템의 성능을 향상시키기 위해 별도로 탑재된 일종의 범용 메모리이다.
ex1) CPU 코어와 메모리 사이의 병목 현상 완화
ex2) 웹 브라우저 캐시 파일은, 하드디스크와 웹페이지 사이의 병목 현상을 완화
램보다 훨씬 빠르고 작고 매우 비싼 메모리이며, 레지스터와 함께 메모리 계층 구조의 전통적인 핵심 계층 중 하나이다.
지역성
CPU가 자주 참조하는 데이터가 고르게 분포되어 있지 않고 특정 부분에 몰려있는 것
캐시 메모리에 어떤 데이터를 저장할지는 지역성을 바탕으로 결정한다.
- 시간 지역성(Temporal locality) : 최근 참조한 내용을 다시 참조할 가능성이 높다
- 공간 지역성(Spatial locality) : 실제 참조한 주소 근처의 내용을 참조할 가능성이 높다.
캐시에 데이터를 저장할 때는, 이러한 참조 지역성(공간)을 최대한 활용하기 위해 해당 데이터뿐만 아니라, 옆 주소의 데이터도 같이 가져와 미래에 쓰일 것을 대비한다.
Cache Metrics
캐시의 성능을 측정할 때는 히트 레이턴시(Hit latency)와 미스 레이턴시(Miss latency)가 중요한 요인으로 꼽힌다.
캐시 히트(Hit)
: CPU에서 요청한 데이터가 캐시에 존재하는 경우.
- 히트 레이턴시 : 히트가 발생해 캐싱된 데이터를 가져올 때, 소요되는 시간을 의미한다.
캐시 미스(Miss)
: 요청한 데이터가 캐시에 존재하지 않는 경우.
- 미스 레이턴시 : 미스가 발생해 상위 캐시에서 데이터를 가져오거나(L1 캐시에 데이터가 없어서 L2 캐시에서 데이터를 찾는 경우) 메모리에서 데이터를 가져올 때, 소요되는 시간
캐시의 성능을 높이기 위해서는 캐시의 크기를 줄여 히트 레이턴시를 줄이거나, 캐시의 크기를 늘려 미스 비율을 줄이거나, 더 빠른 캐시를 이용하여 레이턴시를 줄이는 방법이 있다.
Reference
- 기술 면접 대비 CS 전공 핵심요약집
- https://parksb.github.io/article/29.html
- https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Computer%20Architecture/%EC%BA%90%EC%8B%9C%20%EB%A9%94%EB%AA%A8%EB%A6%AC(Cache%20Memory).md
- https://it.donga.com/215/
- https://namu.moe/w/%EC%BA%90%EC%8B%9C%20%EB%A9%94%EB%AA%A8%EB%A6%AC
- https://namu.moe/w/%EB%A9%94%EB%AA%A8%EB%A6%AC%20%EA%B3%84%EC%B8%B5%20%EA%B5%AC%EC%A1%B0#s-3.3
- https://velog.io/@rnjsrntkd95/%EC%BA%90%EC%8B%9C-%EB%A9%94%EB%AA%A8%EB%A6%ACCache-Memory
- https://aidanbae.github.io/code/devops/computer/cpucache/
'CS > 운영체제' 카테고리의 다른 글
12. 가상기억장치 구현 기법 (0) | 2024.08.03 |
---|---|
11. 주기억장치 할당 기법 (0) | 2024.08.03 |
10. 메모리 관리 전략 (0) | 2024.08.03 |
9. 스케줄링 (0) | 2024.08.03 |
8.좀비 프로세스와 고아 프로세스 (0) | 2024.07.12 |