Machineboy空
메모리 ② 메모리의 주소 공간 - 논리 주소, 물리 주소 본문
논리 주소 (Logical Address) : CPU와 실행중인 프로그램 입장에서 바라본 논리 주소
실제 주소는 아니지만 논리적으로 이런 주소야!
*논리 프로세서 : 하드웨어 스레드의 다른 말로, 실제 스레드가 몇 개인지 모르고 일을 하는 양으로 미루어 볼 때 몇개쯤이다 추측하는 것 처럼 CS학문에서 무언가 추상적 추측을 논리적(Logical)이라고 말하나 봄
https://machineboy0.tistory.com/95
CPU 성능 향상 ① 빠른 CPU를 위한 설계 기법 - 클럭(clock), 코어(core), 스레드(thread)
방법 1)클럭(clock) 속도 컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직인다. CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행한다. → 빠른 CPU를 위해 클럭신호를 빨리
machineboy0.tistory.com
물리 주소 (Physical Address): 실제 하드웨어의 주소.
논리 주소와 물리 주소로 주소 공간을 나눈 이유?
논리 주소를 물리 주소로 변환하는 방법?
CPU와 실행 중인 프로그램은 현재 메모리 몇 번지에 무엇이 저장되어 있는지 알까?
NO!
메모리에 저장된 값들은 시시각각 변하기 때문이다.
- 새롭게 실행되는 프로그램은 새롭게 메모리에 적재된다.
- 실행이 끝난 프로그램은 메모리에서 삭제된다.
- 같은 프로그램을 실행하더라도 실행할 떄마다 적재되는 주소는 달라진다.
그래서 물리 주소와 논리 주소의 개념을 나누었다.
논리 주소 (Logical) | 물리 주소 (Physical) |
CPU와 실행 중인 프로그램 입장에서 바라본 주소 | 메모리 입장에서 바라본 주소 |
실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소 | 말 그대로 정보가 실제로 저장된 하드웨어 상의 주소 |
0번지 여러 개 | 0번지는 하나이며 겹치는 주소가 없다 |
물리주소와 논리 주소의 변환
MMU(Memory Managament Unit, 메모리 관리 장치)라는 하드웨어에 의해 변환
내부 과정
MMU는 논리 주소와 베이스 레지스터(프로그램의 기준 주소)값을 더하여 논리 주소를 물리 주소로 변환한다.
* 베이스 레지스터 : 프로그램의 가장 작은 물리 주소(프로그램의 첫 물리 주소)를 저장하는 셈
* 논리 주소: 프로그램의 시작점으로부터 떨어진 거리인 셈
메모리 보호, 명령어 검수해서 실행!
다른 프로그램의 영역을 침범하는 명령어를 실행하면 안된다.
한계 레지스터 (limit register)
- 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막음
*베이스 레지스터(base register): 실행 중인 프로그램의 가장 작은 물리 주소 저장
*한계 레지스터(storage limit register): 논리 주소의 최대 크기 저장
CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사하고,
클 경우 인터럽트를 발생시킨다.
'Computer > CS' 카테고리의 다른 글
보조기억장치 ① 하드디스크와 플래시 메모리, Garbage Collection (2) | 2024.01.09 |
---|---|
메모리 ③ 캐시 메모리, 참조 지역성(Locality of Reference)의 원리 (1) | 2024.01.08 |
메모리 ① RAM의 특징과 종류 - DRAM 과 SRAM (1) | 2024.01.08 |
CPU 성능 향상 ③ 명령어 집합 구조, CISC와 RISC (1) | 2024.01.06 |
CPU 성능 향상 ② 명령어 병렬 처리 기법 - 명령어 파이프라인(Instruction Pipeline), 슈퍼스칼라(Superscalar), 비순차적 명령어 처리(OOOE) (0) | 2024.01.05 |