캐시는 데이터의 지역성이라는 특성을 이용해서 성능 개선을 달성한다. 지역성에는 공간 지역성과 시간 지역성이 존재하는데, 공간 지역성은 한 번 접근한 데이터의 인근에 저장되어 있는 데이터가 다시 접근될 가능성이 높은 특성을 의미한다. 시간 지역성은 한 번 접근된 데이터가 가까운 시간내에 다시 접근될 가능성이 높다는 의미.
즉, 자주 쓰거나 쓸 가능성이 높은 데이터를 캐시메모리에 저장한여 빠르게 접근해서 사용할 수 있게하는 것.
- 데이터를 어떻게 두느냐가 성능에 영향을 미침
- 자료구조를 잘 만들어서 처리하려는 값이 메모리 내에서 서로 가까이 붙어 있도록 하는 것이 유리
- 만약 멀테스레드 애플리케이션에서 근처 데이터를 고쳐야 한다면, 코어마다 다른 캐시라인에 데이터를 두는게 빠르다. 두 스레드에서 같은 캐시 라인에 들어있는 데이터를 고치려 든다면 두 코어 모두 비싼 캐시 동기화 작업을 해야함
- 포인터 배열은 흩어진 여러 메모리를 찾아야하기 때문에 캐시미스가 발생
'컴퓨터 지식' 카테고리의 다른 글
마이크로 서비스 (0) | 2024.06.04 |
---|---|
lazy initialize(지연 초기화, 게으른 초기화) (0) | 2024.05.01 |
메모리 단편화 (0) | 2023.10.01 |
CPU bound & GPU bound (0) | 2023.09.29 |
SIMD(Single Instruction Multi Data) (0) | 2023.09.28 |