강좌 & 팁
안녕하세요.
오늘은 MMU의 컴포넌트들을 하나하나 살펴기로 했죠!?
오늘은 컴포넌트 중 하나인 페이지 테이블에 대하여 공부해 보겠습니다.
페이지 테이블
ARM MMU 하드웨어는 다단계 페이지 테이블 아키텍쳐를 가지고 있습니다.
페이지 테이블은
레벨 1 (L1) 과
레벨 2(L2)
2가지 레벨이 있습니다.
레벨 1 은
마스터 페이지 테이블 혹은 섹션 페이지 테이블이라 고도 불리며,
2가지 유형의 페이지 테이블 엔트리를
포함하고 있습니다.
레벨 2는
페이지 테이블들의 시작 주소를 가리키고 있는 포인터이고
1MB 페이지의변환을 위한
페이지 테이블 엔트리입니다.
1. 마스터 페이지 테이블
마스터 페이지 테이블은
4GB의 주소 공간을 (32비트 주소 체계를 가지고 있을 경우 이겠죠!?)
1MB의 섹션들로
나눕니다.
그러므로 페이지 테이블은
4096개의 페이지 테이블 엔트리를
포함하고 있습니다.
위 내용을 정리하여 페이지 테이블은 어떻게 계산하는지 알아보겠습니다 ^^
페이지 테이블은
4GB 주소 공간을 나타낼 수 있어야 하며,
페이지 테이블 엔트리(32bit)는 1MB 씩 가르킬 수 있어야 하며,
4GB를 표현하기 위해서는 페이지 테이블 엔트리는 4096개
필요합니다.
그러므로 페이지 테이블의 크기는
4096 * 32bit =
(4*1024) * 4byte =
16KB 입니다.
위와 같은 계산으로 MMU에 의해 사용되는 페이지 테이블의 크기는 16KB로 입니다 ^^
마스터 페이지 테이블은
가상 페이지를 전환하는 페이지 테이블로도 동작할 수 있는
하이브리드 테이블 입니다.
예를 들어
마스터 페이지 테이블이 디렉토리 페이지로 동작한다면,
페이지 테이블 엔트리는 가상 메모리의 1MB를 표현하는
L2 코어스(coarse) 또는 L2 파인(fine) 테이블을 가리키는
포인터를 포함합니다.
이것 저것 말했지만,
요점을 말하자면 다음과 같습니다.
MMU에 의해서 사용하는 마스터 페이지 테이블의 크기는 16KB 이며,
마스터 페이지 테이블안에 L2 페이지 테이블이 공존 하고 있다는
것입니다 ^^
앞으로?
다음글은 L2 페이지 테이블에 대하여 공부해 보겠습니다 ^^