본문 바로가기
CS 공부/컴퓨터구조

컴퓨터 구조_메모리 지역성(memory locality)

by 꼬질꼬질두부 2023. 6. 9.

컴퓨터는 어떤 기준으로 메모리를 저장하고 위치시킬까요?

 

바로 "지역성"에 따라 메모리를 위치시킵니다.

 

지역성이란?

프로그램이 실행되는 동안 메모리의 특정 부분에 반복적으로 접근하는 경향
캐시 같은 고속 메모리를 효율적으로 사용하여 프로그램의 성능을 향상시키는데 중요한 역할을 함.

 

- 시간 지역성

어떤 메모리 주소에 접근했을 때, 똑같은 주소에 다시 접근할 가능성이 높다.

ex) loop문

 

- 공간 지역성

어떤 메모리 주소에 접근했을 때,  해당 메모리 근처의 주소에 접근할 가능성이 높다.

ex) array data

 

쉽게 말하면,  자주 쓰이는 메모리 자주 쓰일 것 같은 메모리

CPU가 빠르게 접근 가능한 저장 장치에 저장시킨다는 것 입니다.

 

메모리 지역성의 활용

 

디스크에 모든 데이터를 저장합니다.
디스크에서 DRAM(메인 메모리)으로 locality가 높은 items(혹은 그 주변 items)을 복사해 저장합니다.
- 디스크에서 메인 메모리로 page 단위의 데이터를 복사해 저장합니다.
DRAM에서 locality가 높은 items를 SRAM(캐시)로 복사해 저장합니다.
- 메인 메모리에서 캐시로 block 단위의 데이터를 복사해 저장합니다.
locality가 낮은 데이터는 locality가 높은 데이터로 대체합니다.
접근하려는 데이터가 이미 *상위 메모리 레벨에 존재하는 경우, "HIT" 이라고 합니다.
- 이미 데이터가 존재하기 때문에(메모리에 저장되어있기 때문에) 따로 불러올 필요가 없습니다.
- 히트 비율(Hit ratio) = 히트 횟수 / 총 접근 횟수
접근하려는 데이터가 상위 메모리 레벨에 없는 경우, "MISS" 라고 합니다.
- 데이터가 존재하지 않으므로 하위 레벨에서 해당 데이터를 복사해옵니다.
- 하위 레벨에서 데이터를 가져오는 시간을 미스 패널티(Miss penalty)라고 합니다.
- 미스 비율(Miss ratio) = 미스 횟수 / 총 접근 횟수 =  1 - 히트 비율(Hit ratio)

* 상위 메모리 레벨이란 메모리 계층 구조에서 상위에 위치하는 메모리를 의미합니다.(하위는 그 반대)

댓글