inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

TTBR0_EL1과 TTBR1_EL1 레지스터

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

해결된 질문

457

토끼야놀자

작성한 질문수 20

0

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

arm-architecture memory-management armv8 cortex-a

답변 2

1

김동현 (Austin Kim)

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

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

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

감사합니다.

0

인프런 AI 인턴

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

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

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

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

강의자료 요청

0

39

4

안녕하세요. 계속 프로젝트를 해야지 하다가 결제하고 환경 설정 중입니다.

0

46

1

SP와 SP_ELn의 관계

0

80

2

stm32cubeide 관련 문의

0

106

2

5장 Armv7 동작모드와 6장 Armv8 익셉션 레벨 차이

0

91

2

강의 업로드 오류 확인 요청

0

87

2

시스템 소프트웨어 직무 관련 질문드려요

0

119

2

책관련 질문드려요

0

110

2

4.2.1. 실습을 어떻게 진행하는것인가요?

0

90

2

DMA 관련한 강의도 제작해주실 수 있으신가요 ?

0

130

1

3.2.1.4 실습과 관련한 질문

0

99

2

56강 bcm2835-mailbox.c 파일 질문

0

82

2

'drivers/soc/bcm/bcm2835-power.o 에러 입니다.

0

110

3

TRACE 32만을 이용한 출력 Callstack 의 cpu 번호 파악

0

96

1

라즈베리파이5 도 상관없을까요

0

138

1

드라이버 작성 포맷

0

98

2

Arm Architecture 관련 공부

0

76

1

스택에 PUSH되는 PC 값

0

84

2

MMU와 캐시의 관계

0

170

2

실무적인 내용 문의드립니다!

0

106

1

MMU의 Page Table과 관련된 질문이 있습니다.

0

246

2

mmu table 위치

0

174

2

mmu page walk

0

98

2

폴트 설정 비트 필드 질문

0

300

2