본문 바로가기
컴퓨터공학

13. 메모리의 주소 공간

by 이면지91 2024. 10. 9.

 

 

메모리 내 주소 체계는 크게 논리주소와 물리주소로 나뉜다.

 

"CPU와 실행 중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 알 수 있을까?"

> 알 수 없다.

 

왜냐하면 메모리에 저장된 값들은 아래의 이유로 시시각각 변하기 때문이다.

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

물리 주소와 논리 주소

물리 주소

  • 메모리 입장에서 바라본 주소
  • 말 그대로 정보가 실제로 저장된 하드웨어상의 주소

논리 주소

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

물리 주소와 논리 주소의 변환

  1. MMU라는 메모리 관리 장치 하드웨어에 의해 변환
    CPU -> MMU -> 메모리
  2. MMU는 논리 주소베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환

베이스 레지스터 : 프로그램의 가장 작은 물리 주소를 저장. 프로그램의 기준 주소

논리 주소 : 프로그램의 시작점으로부터 떨어진 거리

메모리 보호

한계 레지스터

  • 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막음
  • 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장
  • 베이스 레지스터 값 <= 프로그램의 물리 주소 범위 < 베이스 레지스터 +한계 레지스터 값

CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안 된다.

 

CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은 지를 항상 검사하여 실행 중인 프로그램의 독립적인 실행 공간을 확보하고 하나의 프로그램이 다른 프로그램을 침범하지 못하게 보호한다.

'컴퓨터공학' 카테고리의 다른 글

15. 다양한 보조기억장치  (1) 2024.10.12
14. 캐시 메모리  (0) 2024.10.10
12. RAM의 특징과 종류  (1) 2024.10.08
11. 명령어 집합 구조, CISC와 RISC  (1) 2024.10.07
10. 명령어 병렬 처리 기법  (0) 2024.10.06