인프런 커뮤니티 질문&답변

토끼야놀자님의 프로필 이미지
토끼야놀자

작성한 질문수

Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]

TTBR0_EL1과 TTBR1_EL1 레지스터

멀티레벨테이블로 운영하는 이유

해결된 질문

작성

·

260

0

안녕하세요. 가상메모리를 물리주소로 변환하기 위해서 멀티레벨페이지로 운영하는 이유가 궁금합니다. 멀티레벨페이지로 운영했을때 어떤 장점들이 있는지 궁금합니다.

답변 2

1

김동현 (Austin Kim)님의 프로필 이미지
김동현 (Austin Kim)
지식공유자

Arm을 비롯한 대부분 CPU 아키텍처는 멀티 레벨로 가상 주소를 물리 주소로 변환합니다. 그 이유는 아래와 같습니다;

1) 페이지를 유연하게 관리할 수 있습니다. 2~3 레벨에 존재하는 페이지 테이블 하나만 제거하거나 업데이트하면 단일 페이지 변환 구조에 비해 더 효율적으로 관리할 수 있습니다.

2) 메모리를 효율적으로 사용할 수 있습니다. 페이지 테이블도 결국에 메모리를 사용하는데, 페이지 테이블도 연속적인 공간에 위치해야 합니다. 단약 단밀 페이지 테이블로 운용할 경우 큰 사이즈의 연속적인 메모리 공간을 사용해야 하는데, 이는 메모리 성능 관점으로 효율적이지 않습니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.
멀티레벨 페이지 테이블 구조를 사용하는 주요 이유 중 하나는 메모리 사용의 효율성을 증가시키기 위함입니다. 멀티레벨 페이지 테이블은 전체 주소 공간을 나누어 관리할 수 있게 해주어, 사용하지 않는 메모리 영역에 대한 페이지 테이블을 생성하지 않아도 됩니다. 이는 대량의 메모리를 요구하는 모던 컴퓨팅 환경에서 필요한 메모리 양을 절약할 수 있게 해줍니다.

또 다른 장점으로는 메모리 접근시간의 최적화입니다. 애플리케이션은 일반적으로 메모리의 작은 부분만을 활발하게 사용하기 때문에, 멀티레벨 테이블 구조를 통해 활성화된 부분의 주소 변환 정보만을 빠르게 접근할 수 있게 되어 전체적인 성능을 향상시킬 수 있죠.

마지막으로 보안과 격리 측면에서도 이점을 제공합니다. 멀티레벨 페이지 테이블을 통해 각 프로세스별로 독립된 페이지 테이블을 유지함으로써, 프로세스들 사이의 메모리 영역을 서로 격리시켜 보안성을 강화할 수 있습니다.

멀티레벨 페이지 테이블은 이와 같은 다양한 장점들로 인해 현대 컴퓨터 시스템에서 널리 사용되고 있는 핵심 메모리 관리 기법인 것이죠. 토끼야놀자님의 학습에 도움이 되길 바랍니다!

토끼야놀자님의 프로필 이미지
토끼야놀자

작성한 질문수

질문하기