두 가지 종류의 가상 메모리와 실제 메모리가 있고 그 사이에 MMU 매핑이 있습니다.하지만 이해할 수없는 것은 입니다. 여기에은 가상 주소가 " 가상 ". 나는 1 개의 프로세스가 있고 그는 그의 가상 주소 0x00000004에서 읽어야 할 것이있다. 그런 다음 MMU는이 가상 주소를 실제 물리적 주소의 0xSomeWhere에 매핑 할 것이다. 내가 알고 싶은 무엇 은 WHERE이 정보가 저장되어있다 -> 0x00000004 < - 어딘가에 다른 유사한 과정을 가지고 그는 또한 자신의 가상 주소에서 읽을 수있는 명령을 가지고 인정하는 그 비트 00000000000000000000000000000100.가상 주소 지정 MMU, 어디에 저장되어 있습니까
이해야하기 때문에 0x00000004, 여기가 어디입니까? 2 개의 프로세스는 어떻게 분리되어 있습니까?
MMU를 활성화하기 전에 시스템에서 구성한 (다중 레벨) 테이블이 있습니다. 전통적인 ARM의 경우 기본 테이블 항목은 1MB (20 비트)이며 테이블이 32-20 = 12bits 또는 4K * 4bytes/entries가 16K (정렬 제약 조건)임을 의미합니다. 세밀한 제어를 위해 주 항목은 1,4,64k 크기의 2 단계 테이블을 가리킬 수 있습니다. 구성된 테이블은 물리적 (주소는 MMU에 전달됨)이고 각 엔트리/주소는 물리적 인 위치를 나타내는 테이블의 컨텐트와 함께 가상입니다. 또한 TLB는이 정보를 캐시합니다. –
많은 정보가 [태그 ARM + MMU] (http://stackoverflow.com/questions/tagged/arm+mmu?sort=votes&pageSize=50) –
에 포함되어 있습니다. 암 설명서에 아슬 아슬한 소리가 언급 된 이러한 테이블이 설명되어 있으며 논리는 테이블은 액세스가 발생할 때마다 캐시를 가지고있어 고통스럽게 느리게 만들지 않습니다. –