캐시

mohadang·2023년 5월 1일
0

System

목록 보기
10/12
post-thumbnail

캐시

캐시 메모리는 다른 메모리에 비해서 빠른 접근 성능을 보여준다.
캐시는 지역성을 이용하여 성능을 향상 시킨다.

지역성(Locality)

Temporal Locality : 반복 접근
Saptial Locality : 주변 접근

프로그램은 한번 메모리에 접근하면 그 메모리에 다시 접근하거나 그 근처 메모리를 접근할 가능성이 크다

다음 그림을 보더라도 한번 접근한 메모리와 그 근처 메모리를 반복적으로 접근 하는 것을 볼 수 있다.

캐시 데이터 전송

캐시는 블록 단위로 데이터를 주고 받는다. 이는 Saptial Locality 특성때문에 접근한 메모리 근처를 같이 캐시 메모리에 올린다.

cache friendly code

이런 캐시의 특성을 고려하여 코드를 작성할 때도 메모리 접근은 근처 메모리에 접근 하도록 해야한다.
위 코드에서 arr[j][i] 대신 arr[i][j] 를 사용하면 루프를 돌면서 접근한 메모리 근처가 아닌 떨어져 있는 메모리 접근이 발생하여 캐시 적중률이 낮아진다(물론 10 * 10 루프내에서는 캐시 적중이 다 되겠지만 극단적으로 생각 해봤을 때이다)

profile
mohadang

0개의 댓글