■ 물리 주소 & 논리 주소
(1) 물리주소 : 메모리 하드웨어가 사용하는 주소 (정보가 실제로 저장된 하드웨어상의 주소)
(2) 논리주소 : CPU와 프로세스가 사용하는 주소 (프로세스 각각에 부여된 0번지 부터 시작되는 주소)
* CPU와 프로세스는 현재, 물리적 주소인, 메모리 몇 번지에 무엇이 저장되어 있는지 다 알고 있지 않다.
그 이유는 프로그램이 메모리에 적재될 때마다 주소가 달라지고, 다른 프로그램이 실행되거나 삭제될 때마다 모든 주소가 달라지기 때문이다. 이런 상황에서 현재 프로세스와 CPU가 특정 메모리 주소에 접근할 때 어떻게 동작할까?
먼저 CPU가 이해하는 주소는 논리주소이기 때문에 메모리와 상호작용을 하려면 논리주소와 물리주소 간의 변환이 이루어져야 한다. 서로 다른 주소 체계를 갖고 있으므로 이 과정이 없다면 동작할 수가 없기 때문이다.
이를 위해 논리주소와 물리주소 간의 변환을 담당하는 하드웨어가 있다.
메모리 관리 장치 (MMU; Memory Management Unit)라는 하드웨어에 의해 이러한 변환이 이루어지는데 CPU와 주소 버스 사이에 위치해 있다.
■ 메모리 관리 장치 (MMU)
MMU의 동작 원리는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다.
※ 여기서 베이스 레지스터(Base Register)는 프로세스의 가장 작은 물리 주소로 시작 번지를 의미한다. 논리 주소는 프로세스의 시작점으로 부터 떨어진 거리를 의미한다.
■ 메모리 보호
하지만 위와 같이 메모리에 접근할 때 현재 실행중인 프로그램의 메모리 범위를 벗어나 접근하려고 한다면? 다른 프로세스의 영역을 침범하는 크리티컬한 이벤트가 발생할 수 있다. 이를 위해 한계 레지스터 (Limit Register)가 사용되어 실행 중인 프로그램이 다른 프로그램에 영향을 주지 않도록 방지하고 있다.
한계 레지스터란, 한 프로세스의 논리 주소 최대 크기를 의미한다.
이런 한계 레지스터를 이용해 메모리 접근 시 프로세스 영역을 벗어나는지, 아래와 같이, 체크할 수 있다.
'Computer Science > Computer Architecture' 카테고리의 다른 글
[컴퓨터 구조] 플래시 메모리 (1) | 2024.12.01 |
---|---|
[컴퓨터 구조] 메모리 계층 구조, 캐시 메모리 (0) | 2024.12.01 |
[컴퓨터 구조] RAM (0) | 2024.12.01 |
[컴퓨터 구조] ISA, CISC, RISC (1) | 2024.10.06 |
[컴퓨터 구조] 명령어 병렬 처리기법 (ILP) (2) | 2024.10.06 |