새소식

Computer Science/Computer Architecture

[혼자 공부하는 컴퓨터 구조] Chapter 06. 메모리의 주소 공간

  • -

 

본 게시물은 ‘강민철, ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022’ 을 인용하였습니다.

 

  • 메모리에 저장된 정보는 변함 -> CPU와 실행 중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 다 알지 못함
  • 물리 주소(physical address) : 실제로 저장된 하드웨어 상의 주소(실제 주소)로 메모리가 사용하는 주소
  • 논리 주소(logical address) : 실행 중인 프로그램에게 각각 부여된 0번지부터 시작되는 주소로 CPU와 실행 중인 프로그램이 사용하는 주소
  • 메모리 관리 장치(MMU; Memory Management Unit)
    • CPU가 메모리와 상호작용하려면 논리 주소와 물리 주소 간의 변환 필요
    • MMU는 논리 주소와 물리 주소 간의 변환을 담당하는 하드웨어
    • CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더해 논리 주소를 물리 주소로 변환함

▶ 메모리 관리 장치(MMU) 예시 : 베이스 레지스터에 15000 저장, CPU가 발생시킨 논리 주소 100번지

논리 주소 100은 물리 주소 15100번지(100+15000)으로 변환됨

물리 주소 15000번지부터 적재된 프로그램 A의 논리 주소 100번지에 접근O

  • 베이스 레지스터는 프로그램의 가장 작은 물리주소 즉, 프로그램의 첫 물리 주소를 저장
    논리 주소는 프로그램의 시작점으로부터 떨어진 거리

 

메모리 보호 기법

  • 한계 레지스터(limit register)
    • 다른 프로그램의 영역을 침범할 수 있는 명령어는 위험함
    • 논리 주소를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향 받지 않도록 보호
  • 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장함
  • 즉, 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, 베이스 레지스터 값 + 한계 레지스터 값 미만이 됨

  • CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 크면 안됨
    • 한계 레지스터보다 높은 주소 값에 접근하는 것은 프로그램의 범위에 벗어난 메모리 공간에 접근하는 것과 같기 때문

▶ 한계 레지스터 예시 : 베이스 레지스터에 100, 한계 레지스터에 150 저장

물리 주소 시작점이 100번지, 프로그램의 크기(논리 주소의 최대 크기)가 150이라는 것

이 프로그램은 150번지를 넘어서는 논리 주소를 가질 수 없음

  • 만약 CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면, 인터럽트(트랩)를 발생시켜 실행을 중단함

 

 

 

 

 

확인 문제

1. 주소와 관련된 설명으로 옳은 것을 고르세요. : 프로그램이 실행될 때마다 다른 주소에 적재될 수 있다.

2. 논리 주소와 물리 주소에 대한 설명 중 옳지 않은 것을 고르세요. : 물리 주소는 모든 프로그램의 시작 주소를 0번지로 간주합니다.

    실행 중인 프로그램에 각각 부여된 0번지부터 시작되는 주소는 논리 주소임

3. MMU에 대한 설명으로 옳은 것을 고르세요. : MMU는 논리 주소를 물리 주소로 변환해 줍니다.

4. 다음 그림은 논리 주소가 물리 주소로 변환되는 과정을 나타냅니다. 다음 빈칸에 알맞은 단어를 쓰세요.

   ① 한계 레지스터 : 명령어가 다른 프로그램 범위를 침범하는지 검사

   ② 베이스 레지스터 : 논리 주소와 더해져 물리 주소로 변환됨

   

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.