CS공부/컴퓨터구조 / / 2025. 5. 27. 14:32

6-2. 메모리의 주소 공간

CPU와 메모리에 저장되어 실행 중인 프로그램은 메모리에 저장된 정보는 계속 변하기 떄문에 메모리의 주소에 무엇이 저장되어 있는지 다 알지 못한다.

그래서 물리 주소와 논리 주소를 통해 CPU는 데이터의 위치를 알 수 있다.

물리 주소와 논리 주소

물리주소는 정보가 실제로 저장된 하드웨어상의 주소를 의미한다.

논리주소는 CPU와 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 의미한다.

즉, CPU가 이해하는 주소는 논리 주소이다.

메모리 관리 장치 (MMU)

그리고 논리주소와 물리 주소의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU)라는 하드웨어에서 수행된다.

CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다.

베이스 레지스터에 프로그램의 가장 작은 물리주소, 즉 프로그램의 첫 물리주소를 저장한다.

예를 들어 베이스 레지스터에 15000이 저장 되어 있고 CPU가 발생시킨 논리 주소가 100이라면 논리 주소는 베이스 레지스터에 저장되어 있는 첫 물리주소에 논리주소를 더하여 15100에 저장이 된다.

하지만 논리주소와 베이스 레지스터를 더한 값이 메모리의 물리주소 범위를 넘게되면 다른 프로그램에 이상을 줄 수 있는데 이를 방지하기 위해 메모리 보호 기법을 사용한다.

메모리 보호 기법

논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호하는 방법으로 한계 레지스터라는 레지스터를 사용해 보호 한다.

한계 레지스터는 논리 주소의 최대 크기를 저장하여 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 작은지를 항상 검사하여 그 값보다 높다면 인터럽트를 발생시켜 실행을 중단한다.

'CS공부 > 컴퓨터구조' 카테고리의 다른 글

7-1. 보조기억장치  (0) 2025.05.29
6-3. 캐시메모리  (0) 2025.05.27
6-1. RAM의 종류  (0) 2025.05.27
5-3. CISC, RISC  (0) 2025.05.23
5-2. 명령어 병렬 처리  (1) 2025.05.23
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유