Computer Science

[Computer Science] 메모리 : 메모리의 주소 공간

WebDevLee 2024. 5. 15. 17:48

메모리의 주소 공간, 주소 체계에 대해 정리하였습니다.


참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'


< 메모리의 주소 공간 >

CPU현재 실행 중인 프로그램은 현재 몇 번지에 어떤 프로그램/명령어가 저장되어 있는지 알지 못합니다.

이러한 점을 극복하기 위해 메모리의 주소 체계를 논리주소물리주소로 나누었습니다.

 

메모리에 저장된 값들은 시시각각 변하기 때문에 CPU와 현재 실행 중인 프로그램은 메모리의 몇번지에 어떤 프로그램/명령어가 저장되어 있는지 알지 못합니다.

  • 새롭게 실행되는 프로그램은 새롭게 메모리에 적재
  • 실행이 끝난 프로그램은 메모리에서 삭제
  • 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라짐

 

 

 


< 논리 주소와 물리 주소 >

논리 주소는 CPU와 실행 중인 프로그램 입장에서 바라본 주소입니다.
=> 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소입니다.

물리 주소는 메모리 입장에서 바라본 주소입니다.

=> 말 그대로 정보가 실제로 저장된 하드웨어 상의 주소입니다.

 

논리 주소와 물리 주소

 

 


< 논리 주소와 물리 주소 >

MMU(Memory Management Unit)라는 하드웨어에 의해 변환

MMU는 논리 주소베이스 레지스터(프로그램의 기준주소) 값을 더하여 논리 주소를 물리 주소로 변환합니다.

 

  • 베이스 레지스터에 실행 중인 프로그램의 가장 작은 물리 주소를 저장합니다.

 

논리주소 > 물리주소 변환

 

 


[ 메모리 보호 ]

한계 레지스터 설정을 통해 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막습니다.

CPU는 메모리에 접근하기 전, 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사합니다.

 

  • 한계 레지스터에 논리 주소의 최대 크기를 저장합니다.

: 한계 레지스터를 통해 위와 같은 명령어의 실행을 막을 수 있습니다.

 

 


 

CPU 메모리 접근 순서