Locality

프로그램이 수행할 때, 메모리 안의 데이터를 전부 균일하게 참조하는 것이 아니라 한 시기에 특정 메모리 일부분을 집중적으로 참조한다는 특성을 말한다.

이 principle of locality는 cache에서도 page를 관리할 때도 모두 적용된다.

Spatial Locality

"최근에 읽어온 애들과 인접한 주소의 데이터를 읽어올 가능성이 높다!"

공간적으로 가까이 있는 애들이 쓰일 가능성이 높다

Ex. 배열

Temporal Locality

"최근에 읽어온 애들은 가까운 미래에 다시 읽어올 가능성이 높다!"

시간적으로 가까이 있는 애들이 쓰일 가능성이 높다

Ex. loop counter

Sequential Locality

"저장된 순서대로 데이터에 접근할 가능성이 높다!"

대게 명령어가 순차적으로 진행되므로 이런 특성이 나타남. (spatial locality로 퉁쳐서 설명되기도함)

(branch나 procedure call 같이 코드를 '점프'하는 명령은 다른 명령어에 비해 비교적 적게 수행되므로, 프로그램이 순차적으로 실행되는 경향이 많다)