✔️ 캐시
캐시란?
- 주기억장치에 저장된 내용의 일부를 임시로 저장해두는 기억장치 (범용 메모리)
- CPU와 주기억장치의 속도 차이로 인한 성능 저하를 방지하기 위한 방법으로
CPU가 이미 봤던 걸 다시 재접근할 때, 메모리 참고 및 인출 과정에 대한 비용을 줄이기 위해 캐시에 저장해둔 데이터를 활용 - CPU에서 주소를 전달했을 때
캐시 기억장치에 명령이 존재한다면(Hit) 해당 명령어를 CPU로 전송하여 완료함
만약 존재하지 않는다면(Miss) 명령어를 주기억장치에 접근하여 해당 명령어를 가진 데이터를 인출하고
이를 캐시에 저장한 후 CPU로 전송하여 완료함 - 캐시를 잘 활용한다면 비용을 줄일 수 있으므로
CPU가 어떤 데이터를 원할지 예측하여 캐시에 많이 활용되는 쓸모 있는 정보가 들어있도록 해야 함
캐시의 지역성
- 기억 장치 내의 정보를 균일하게 액세스 하는 것이 아니라 한 순간에 특정 부분을 집중적으로 참조하는 특성
- 시간 지역성 : 최근에 참조한 주소의 내용은 곧 다음에도 참조되는 특성
- 공간 지역성 : 실제 프로그램이 참조된 주소와 인접한 주소의 내용이 다시 참조되는 특성
- 캐시의 지역성을 통해 CPU가 어떤 데이터를 원할지 적중률(Hit rate)을 극대화시킬 수 있음
- 하지만 캐시가 아무리 가까이 잇더라도 찾고자 하는 데이터가 어느 곳에 저장되어 있는지 모르면 시간이 오래 걸리게 됨
- 즉, 캐시에 목적 데이터가 저장되어 있다면 바로 접근하여 출력할 수 있어야 캐시가 의미 있어진다는 것
- 그러므로 캐싱 라인을 통해 내가 필요한 데이터를 캐시에서 찾을 때 모든 데이터를 순회하면서 찾지 않고
자료구조를 활용해 캐시에 저장하는 데이터에 데이터의 메모리 주소를 함께 묶어서 저장하여 빠르게 원하는 정보를 찾도록 함- Fill Associative : 인덱스가 모든 공간을 가리키는 경우
- Set Associative : 인덱스가 가리키는 공간이 두 개 이상인 경우
- Direct Map : 인덱스가 가리키는 공간이 하나인 경우
'Tech Interview > Operating System' 카테고리의 다른 글
[Operating System] 목차 (0) | 2023.12.26 |
---|---|
[Operating System] 파일 시스템 (0) | 2023.12.26 |
[Operating System] 가상 메모리 (0) | 2023.12.19 |
[Operating System] 메모리 관리 (0) | 2023.12.18 |
[Operating System] 동기와 비동기 (0) | 2023.12.16 |