이 글을 혼자 공부하는 컴퓨터구조 + 운영체제 (한빛미디어) 책을 읽고 혼자 공부한 내용입니다.
잘못 이해한 부분이 있을 수 있고, 문제가 있는 부분 댓글로 알려주시면 수정하겠습니다.
물리 주소와 논리 주소
"CPU와 실행 중인 프로그램은 현재 메모리 몇 번지에 무엇이 저장되어 있는지 다 알고 있을까?"
No. 알지 못한다.
메모리에 저장된 정보는 시시각각 변하기 때문
1. 메모리에는 새롭게 실행되는 프로그램이 시시때때로 적재
2. 실행이 끝난 프로그램은 삭제
3. 게다가 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소가 달라짐
물리주소 : 정보가 실제로 저장된 하드웨어상의 주소
논리주소 : 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소
CPU가 이해하는 주소가 논리 주소라고 해도 CPU가 메모리와 상호작용하려면 논리 주소와 물리 주소 간의 변환이 이루어져야 함
-> CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU)라는 하드웨어에 의해 수행
MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터(프로그램의 기준 주소) 값을 더하여 논리 주소를 물리 주소로 변환
베이스 레지스터는 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장
논리 주소는 프로그램의 시작점으로부터 떨어진 거리
메모리 보호 기법
다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하기 때문에 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호하는 방법 -> 한계 레지스터가 담당
한계 레지스터는 논리 주소의 최대 크기를 저장
프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, 베이스 레지스터 값 + 한계 레지스터 값 미만
CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안됨
한계 레지스터보다 높은 주소 값에 접근하는 것은 곧 프로그램의 범위에 벗어난 메모리 공간에 접근하는 것과 같기 때문
CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사
만약 높은 논리 주소에 접근하려고 하면 인터럽트를 발생시켜 실행 중단
'CS > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] 7-1 다양한 보조기억장치 (0) | 2024.08.11 |
---|---|
[컴퓨터 구조] 6-3 캐시 메모리 (0) | 2024.08.10 |
[컴퓨터 구조] 6-1 RAM의 특징과 종류 (0) | 2024.08.08 |
[컴퓨터 구조] 5-3 CISC와 RISC (0) | 2024.08.07 |
[컴퓨터 구조] 5-2 명령어 병렬 처리 기법 (0) | 2024.08.06 |