캐시 이론

Eunho Bae·2022년 2월 23일
0

Temporal Locality

가장 최근에 사용된 그 변수가 또다시 사용될 확률이 높다

Spacial Locality

방금 접근한 변수와 인접한 주소에 있는 변수에 접근할 확률이 높다


  • 쓰레드마다 각각의 코어로 실행되고 있고, 코어마다 ALU, 캐시를 가진다.

  • 직원들은 주문이 변경되면 바로 주문현황판(RAM)에 기입하지 않고 (거리가 있기 때문에) 주문을 자신들의 수첩(캐시)에 좀 더 받다가 기입을 하러 가게 된다. 그런데 한 테이블에서 콜라를 주문받고 그 뒤에 또다른 직원이 와서 같은 주문을 받은 상태에서 갑자기 그 테이블에서 주문을 콜라에서 사이다로 바꾼다면, 최종적으로 주문현황판에 기입을 하러갈때 직원끼리 최종주문이 콜라인지 사이다인지 어리둥절하는 상황을 겪게될 수 있다.

2차원 배열은 메모리 상에서 1차원의 형태로 존재한다.
즉 5x5배열은 메모리 상에서 ooooo ooooo ooooo ooooo ooooo 이렇게 존재하게 된다.
첫번째 for문에서 x값을 먼저 증가시키고 있기 때문에 Spacial Locality 특성으로 인해 굳이 저멀리 메인메모리(RAM)에 저장하지 않게 되고 캐시에 있는 값을 바로바로 업데이트하여 상대적으로 빠르게 동작한다.

두번째 for문에서
ooooo ooooo ooooo ooooo ooooo
ooooo ooooo ooooo ooooo ooooo
이런식으로 띄엄띄엄 접근하고 있기 때문에 캐시를 활용할 수 없어 시간이 더 소요가 된다.

profile
개인 공부 정리

0개의 댓글

관련 채용 정보