Virtual Address와 Physical Address 사이의 Mapping


CPU가 가지고 있는 Virtual Address와 Main Memory의 실제 데이터를 가리키는 Physical Address가 있다.

운영체제(OS)는 이와 같은 메모리 가상화를 제공한다.

가상화를 통해서, 각각의 프로세스는 개별적으로 고유한 메모리를 할당받아 사용할 수 있으며, 이를 통해서 다수의 프로세스를 실행할 때 발생하는 잘못된 메모리 접근으로부터의 보안과 효율적인 메모리 관리가 가능해졌다.

 

 

 

Segment와 Page


Segment(세그먼트)는 메모리를 서로 크기가 다른 논리적 블록 단위이다.

이렇게 세그멘트를 나누어 메모리를 관리하는 기법을 세그멘테이션이라고 하며,

 

세그멘테이션과 가상 메모리를 고정된 크기의 블록으로 나누어 관리하는 것이 페이징 기법이다.

따라서 Page(페이지)는 메모리를 잘게 쪼갠 일정한 크기의 블록 단위이다.

 

 

 

 

Page Table


Page Table은 Virtual Address와 Physical Address 사이에서 Page 단위의 memory address를 Mapping하는 역할을 한다.

Main Memory에 상주하고 있으며 이로 인해 CPU는 불가피하게 Main Memory에 한 번 더 접근해야 한다.

 

1. Virtual Address에 해당하는 Physical Address를 Main Memory의 Page Table로부터 조회한다.

2. 조회한 Physical Address로부터 데이터를 가져온다. 이 때, 해당 데이터가 Cache에 있을 경우 Cache로부터, 없을 경우 Main Memory로부터 가져온다.

 

즉, 1번 단계에서 반드시 Main Memory에 접근해야 하므로 성능 측면에서 비효율적이다.

 

 

 

Translation Look-aside Buffer


데이터를 가져올 때, CPU와 Main Memory사이의 간극을 줄이기 위해 캐시 메모리를 도입한 것처럼 

데이터를 가져오기 위한 address를 조회할 때, CPU와 Main Memory사이의 간극울 줄이기 위해 도입한 것이 TLB(Translation Look-aside Buffer)이다. Page Table의 cache라고 볼 수 있다.

 

이를 통해서 가상 메모리 주소(virtual address)로부터 물리적 메모리 주소(physical address) 변환하는 속도를 높일 수 있다.

 

 

 

+ Recent posts