Computer_science/Memory

[메모리] 메모리의 계층적 구조

neck392 2024. 12. 8. 00:10

프로그램 혹은 데이터는 시스템이 실행하거나 참조하기 전에 반드시 메인 메모리에 적재되는 과정이 선행되어야 하며 시스템에서 당장 필요하지 않은 프로그램과 데이터는 필요한 시점까지 2차 저장소(HDD 등)에 보관한다. 이후, 필요한 시점에 메인 메모리에 로드해 실행하고 참조한다.

 

메모리 계층은 메모리를 속도와 비용에 따라 여러 수준으로 나눌 수 있다. 시스템은 프로그램과 데이터를 나눈 수준 사이로 옮기며 이와 같은 이동을 수행하기 위해서는 다른 생산적인 일에 사용할 수 있는 프로세서 시간 같은 시스템 자원을 소비해야 한다. 따라서 위 작업에 특화된 메모리 이동 기능을 담당하는 메모리 컨트롤러(Memory Controller)라는 하드웨어 장치를 내장하여 사용한다. 이를 통해 메모리 계층의 장점을 살려 메모리 효율성을 높힐 수 있다.

 

메모리 계층에 캐시(Cache)라는 추가적인 수준을 추가하여 메인 메모리보다 훨씬 빠르게 동작할 수 있게하며 각 프로세서에 위치한다. 프로세서는 자신의 캐시에서 프로그램과 데이터를 직접 참조할 수 있다. 캐시에 있는 프로그램을 실행하는 것이 메인 메모리에 있는 프로그램을 실행하는 방법보다 훨씬 빠르다.

데이터와 명령어에 접근한 프로세스는 향후 다시 한 번 이에 접근할 가능성이 크기 때문에(시간적 지역성) 교적 용량이 작은 캐시가 존재하기만 해도 캐시 없이 프로그램을 실행하는 것보다 일반적으로 성능을 크게 향상시킬 수 있다.

<메모리 계층 정리>


Reference

  • Harvey M. Deitel, Paul J. Deitel, and David R. Choffnes, Operating Systems, 3rd ed., Pearson, 2003.
  • Hyun-Hoe Koo, Operating System: Principles and Structure Illustrated, 1st ed., Hanbit Academy, 2016. (7th printing, 2022).