ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS 지식
    CS지식 2025. 9. 7. 15:26

    메모리 주소 공간

    - 논리 주소 VS 물리 주소 

    - CPU와 실행중인 프로그램은 현제 메모리 몇번지에 저장되어있는지 다 알까?? 🤔

    메모리에 저장된 값은 시시각각 변화한다. 

    - 새롭게 실행되는 프로그램은 새롭게 메모리에 적재

    - 실행이 끝난 프로그램은 메모리에서 삭제 

    - 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라 짐

     

    물리주소, 논리주소 

    물리주소 

    - 메모리 입장에서 바라본 주소 

    - 말 그대로 정보가 실제로 저장되어 있는 하드웨어상 주소 

     

    논리주소

    - CPU와 실행중인 프로그램 입장에서 바라본 주소 

    - 실행중인 프로그램 각각에게 부여된 0번지 부터 시작하는 주소

    - 위 그림에서 하나 이상한점은 주소 번지가 중복이 되는데 메모리에는 0번지가 하나밖에 없다 😮 그렇다면 주소변환은 어떻게 되는걸까? 

     

    MMU

    - MMU(메모리 관리 장치)라는 하드웨어에 의해 변환

    - MMU는 논리주소베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환

    - 위 사진을 보면 간단하게 실제로 물리 주소가 되는 15100이 있다. 

    - 우선 데이터는 15000번지서 부터 시작이 되어 베이스 레지스터는 15000이 된다. 이 때 논리주소는 100만큼 떨어진 15100이니 논리주소는 100이 된다. 

     

    베이스 레지스터 : 프로그램의 가장 작은 물리주소(프로그램의 첫 물리주소)를 저장 

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

     

    - 위 그림에서 이상한 점이 있는데... 바로 논리주소의 범위를 벗어나 버린 것인데, 메모리 주소는 999번지 까지 있는데, 베이스 레지스터는 1000번지이다.이를 1500번지를 더해 2500번지에 있는 데이터를 삭제한다면??? 

    -> 이로 인해 메모리를 보호 해야하는데

     

    메모리 보호(한계 레지스터)

    - 프로그램 영역을 침범할 수 있는 명령어의 실행을 막음

    - 베이스 레지스터가 실행중인 프로그램의 가장 작은 물리주소를 저장한다면, 논리주소의 최대 크기를 저장한다.

    - 그래서 CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 크면 안된다 

    'CS지식' 카테고리의 다른 글

    CS 지식  (0) 2025.09.07
    CS지식 (캐시 메모리)  (0) 2025.09.07
    CS 지식  (0) 2025.09.07
    CS 지식 9일차  (0) 2025.09.07
    CS지식 (명령어 병렬처리 기법)  (0) 2025.09.03
Designed by Tistory.