메모리 지역성이란 무엇일까??

박승우·2024년 4월 24일

자, 일곱번째 키워드인 '메모리 지역성'에 대해서 알아보겠다.

알아보기에 앞서 CS 분야의 메모리는 다양하게 접근이 가능하지만
그 분야에 대해서 어떻게 이루어지는건지 알아볼 것이다.

메모리 지역성이 뭐에요?

메모리 지역성(memory locality)은 컴퓨터 과학에서 중요한 개념으로, 프로그램이 메모리를 액세스할 때 특정 데이터나 명령어에 접근하는 경향을 설명한다. 이 개념은 프로그램의 실행 속도와 효율성에 큰 영향을 미친다고 한다.

메모리 지역성은 보통 시간 지역성과 공간 지역성으로 나뉜다.

시간 지역성(Temporal Locality)

시간 지역성은 한 번 액세스한 데이터나 명령어가 가까운 미래에 다시 액세스될 가능성이 높다는 개념이다. 즉, 최근에 액세스한 메모리 위치는 미래에 다시 액세스될 가능성이 높기 때문에 이는 반복문이나 함수 호출 같은 코드 블록에서 변수나 명령어를 반복적으로 사용할 때 발생한다.

공간 지역성(Spatial Locality)

공간 지역성은 한 번 액세스한 메모리 위치 근처의 메모리가 미래에 액세스될 가능성이 높다는 개념이다. 즉, 연속적인 메모리 위치에 접근하는 경향이 있기에 배열이나 리스트와 같은 연속된 메모리 공간에 저장된 데이터에 접근할 때 나타난다.

정리 및 요약

메모리 지역성은 캐시(cache)와 같은 메모리 계층 구조의 성능을 향상시키는 데 중요한 역할을 한다고 한다.
캐시는 주로 메모리에서 빈번하게 액세스되는 데이터를 저장해 두어 CPU가 빠르게 액세스할 수 있도록 한다.
메모리 지역성은 이러한 캐시 동작을 최적화하고 성능을 향상시키는 데 도움이 된다.

일단, 캐시를 사용하기 위해 필요한 개념이며 각각의 지역성이 존재해야
효율적인 사용이 가능하므로 필요한 개념으로 보인다.

결론 - 느낀 점

긴가 민가한 지식이였는데, 이번에 확실히 알게 된거같다.
일단 이런쪽을 이해하기 위해서는 어느정도의 CS지식과 코딩경험이 있어야
그나마 이해할 수 있는 접근이 가능해 보여서 더욱 분발해야겠다는 생각이 든다.

profile
게임을 좋아하는 사람 입니다!

0개의 댓글