안녕하세요.


오늘도 MMU에 대하여 공부해 보겠습니다.

L1 페이지 테이블 엔트리


페이지 테이블은 


레벨 1 (L1) 과 


레벨 2(L2) 


2가지 레벨이 있다고 공부했습니다 ^^


L1 페이지 테이블은 다음과 같은 4 가지 유형의 엔트리를 지원합니다.


- 1MB 섹션 변환 엔트리


- 파인 L2 페이지 테이블을 가리키는 엔트리


- 코어스 L2 페이지 테이블을 가르키는 엔트리


- abort 익셉션을 발생시키는 fault 엔트리 


시스템은 엔트리 필드 안의 하위 두 비트[1:0]을 가지고 엔트리 유형을 판단 합니다.


다음 그림은 L1 페이지 테이블 엔트리 입니다.



page_table_entry.png  

그림을 보면 하위 2 비트에 따라 


10 -> Section entry(섹션 엔트리)

01 -> Coarse page table(코어스 페이지 테이블)

11-> Fine page table(파인 페이지 테이블)

00 -> Fault


로 나뉘게 됩니다.


섹션 페이지 테이블 엔트리는 메모리 1MB 섹션을 가르키며,


물리 주소를 생성하기 위해 페이지 테이블 엔트리 상위 12 비트들은 가상 메모리의 상위 12비트로 대체됩니다.


섹션 엔트리는 


도메인, 


캐시,


버퍼, 


접근권한


속성을 포함하고 있습니다.


코어스 페이지 엔트리는 두 번째 레벨 코어스 페이지 테이블의 베이스 주소를 가르키는 포인터를 가지고 있습니다.


코어스 페이지 테이블 엔트리는 L1 테이블 엔트리에 의해 표현되는 가상 메모리의 1MB 섹션에 대한 도메인 정보를 포함하고 있습니다.


코어스 페이지에 대해 테이블들은 1KB 배수의 주소로 할당 되어야 합니다.


파인 페이지 테이블은 두 번째 레벨 파인 페이지 테이블의 베이스 주소를 가리키는 포인터를 포함하고 잇습니다.


파인 페이지 테이블 엔트리는 테이블 엔트리에 의해 표현되는 가상 메모리의 1MB 섹션에 대한 도메인 정보도 포함하고 있습니다.


파인 페이지 테이블은 4KB의 배수 주소로 할당되어야 합니다.


fault 페이지 테이블 엔트리는 메모리 페이지 장애를 발생시킵니다.


장애 상태는 시도된 메모리 액세스의 유형에 따라 


prefetch 또는


data abort를 


발생 시킵니다.

앞으로?

 

다음에는 L2 페이지 테이블 인트리에 대하여 공부해 보겠습니다.