임베디드

MMU와 페이지 테이블의 이해: 가상 메모리 관리의 핵심

embeddedworld 2024. 12. 21. 20:51

SoC(System on Chip)와 같은 임베디드 시스템을 깊이 이해하려면 MMU와 페이지 테이블 개념을 이해하는 것이 매우 중요합니다. 특히, 임베디드 시스템에서의 자원 제한 및 효율적인 메모리 사용을 고려할 때 이들 개념은 필수적입니다. 이를 더 구체적으로 설명하겠습니다.

현대 컴퓨터 및 수많은 임베디드 시스템은 효율적이고 안전한 메모리 관리를 위해 가상 메모리(Virtual Memory)를 사용합니다. 가상 메모리의 핵심은 바로 MMU(Memory Management Unit)페이지 테이블(Page Table)입니다. 이번 글에서는 이 두 개념을 중심으로 가상 메모리가 어떻게 동작하는지 이해해보겠습니다.

1. MMU (Memory Management Unit)란?


MMU는 CPU와 물리 메모리(RAM) 사이에서 가상 주소를 물리 주소로 변환해주는 하드웨어 장치입니다. 가상 메모리를 활용하기 위해 필수적인 역할을 담당하며, 시스템의 성능과 안정성을 유지하는 데 중요한 역할을 합니다.

MMU의 주요 기능


MMU가 하는 일은 크게 네 가지로 나눌 수 있습니다.
1. 주소 변환 (Address Translation)
CPU가 참조하는 가상 주소(Virtual Address)를 물리 메모리 상의 물리 주소(Physical Address)로 변환합니다. 변환 과정에서 페이지 테이블을 활용합니다.
2. 메모리 보호 (Memory Protection)
프로세스가 자신에게 허용된 메모리 영역만 접근하도록 제한합니다. 이를 통해 프로세스 간의 메모리 침범을 방지할 수 있습니다.
3. 캐싱 및 메모리 속성 관리
특정 메모리 영역에 대한 캐싱 정책을 설정하거나 I/O 메모리 접근과 같은 특수한 동작을 제어합니다.
4. TLB(Translation Lookaside Buffer) 사용
주소 변환 과정의 성능을 높이기 위해, 최근 변환된 주소 정보를 TLB라는 고속 캐시에 저장합니다.

2. 페이지 테이블 (Page Table)이란?


페이지 테이블은 가상 메모리와 물리 메모리를 매핑하는 데이터 구조입니다. 프로세스마다 독립적인 페이지 테이블이 존재하며, MMU는 이 페이지 테이블을 참조해 주소 변환을 수행합니다.

페이지 테이블의 구성 요소


페이지 테이블은 여러 페이지 엔트리(Page Table Entry, PTE)로 구성되며, 각 엔트리는 다음 정보를 포함합니다:
물리 주소 (Physical Address): 가상 페이지에 대응하는 물리 페이지의 시작 주소.
접근 권한 (Access Rights): 읽기(Read), 쓰기(Write), 실행(Execute) 권한 정보.
• 페이지 상태 비트:
      1) Present Bit: 해당 페이지가 메모리에 존재하는지 여부.
      2) Dirty Bit: 페이지가 수정되었는지 여부.
       3) Accessed Bit: 페이지가 최근에 접근되었는지 여부.

다단계 페이지 테이블 (Multi-level Page Table)


현대 컴퓨터 및 많은 임베디드 시스템은 주소 공간이 크기 때문에 페이지 테이블 크기도 커집니다. 이를 해결하기 위해 다단계 페이지 테이블 구조를 사용하여 메모리 사용량을 최적화합니다.
예를 들어, 4단계 페이지 테이블을 사용하는 시스템에서는 가상 주소를 4개의 인덱스로 나눠 점진적으로 물리 주소를 찾습니다.

3. 주소 변환 과정

MMU 주소 변환 과정


MMU가 페이지 테이블을 이용해 가상 주소를 물리 주소로 변환하는 과정은 다음과 같습니다:
1. 가상 주소 분리:
가상 주소는 두 부분으로 나뉩니다.
페이지 번호 (Page Number): 페이지 테이블에서 항목을 찾는 데 사용.
페이지 오프셋 (Page Offset): 페이지 내부의 특정 위치를 나타냄.
2. 페이지 테이블 검색:
MMU는 페이지 번호를 기반으로 페이지 테이블을 조회해 물리 주소를 찾습니다.
3. 최종 물리 주소 계산:
페이지 테이블에서 얻은 물리 페이지 주소에 페이지 오프셋을 더해 최종 물리 주소를 계산합니다.

이 과정에서 변환 속도를 높이기 위해 TLB(Translation Lookaside Buffer)라는 캐시 메모리가 사용됩니다. TLB는 최근 변환된 가상 주소와 물리 주소의 매핑 정보를 저장하여 반복적인 주소 변환을 빠르게 처리합니다.

4. MMU와 페이지 테이블의 관계


MMU와 페이지 테이블은 가상 메모리 시스템의 핵심적인 파트너입니다. MMU는 주소 변환을 실시간으로 처리하며, 페이지 테이블은 그에 필요한 매핑 정보를 제공합니다. 이 둘의 협력을 통해 다음과 같은 장점을 제공합니다.

1. 프로세스 간 메모리 보호
각 프로세스는 독립적인 가상 메모리 공간을 가지며, 다른 프로세스의 메모리에 접근할 수 없습니다.
2. 효율적인 메모리 사용
필요할 때만 물리 메모리를 할당하고, 사용하지 않는 페이지는 디스크에 저장(스왑)하여 메모리 효율을 높입니다.
3. 주소 공간 확장
물리 메모리 크기와 관계없이 큰 가상 주소 공간을 제공하여 유연한 프로세스 관리가 가능합니다.

마무리


MMU와 페이지 테이블은 시스템에서 보이지 않는 곳에서 매우 중요한 역할을 수행합니다. 가상 메모리 시스템을 통해 현대의 컴퓨터 및 임베디드 시스템은 더욱 안정적이고 효율적인 동작이 가능해졌습니다. 이번 글을 통해 MMU와 페이지 테이블의 개념을 이해하는 데 도움이 되셨길 바랍니다.