티스토리 뷰
1. MMU는 메모리 관리의 핵심적인 역할(가상 메모리와 실제 메모리사이에서 주소 변환)을 한다.
2. CPU에서 memory를 access하기 위해 virtual address를 발생하면 MMU는 이 virtual address를 받아서 page table(가상과 실제 메모리를 연결하는 table)을 통해 physical address에 access 한다. memory는 해당 physical address안의 data를 출력하여 cpu에게 전달 한다.
2-1. table이 존재하는 위치는 TTB(Translation table base address)라고 해서 MMU의 레지스터 중 하나에 저장되어 있다. table은 외부 memory에 존재 한다. or MCU내부 TCM memory에 위치시킬 수도 있다.(성능을 위해)
3. 32bit address system이므로 virtual address는 2^32=4GB를 나타낼 수 있다. page table도 4GB를 나타낼 수 있어야 한다. page table의 한개 entry(32bit)로 메모리의 1MB씩 가르킬 수 있다고 한다면 이런 entry는 4096개가 필요하다.
4. page table의 크기는 4096 * 32bit = 16KB가 기본이 된다.
5. virtual address는 1MB 단위로 기본설정이 되어 있고 이를 section이라고 한다. 더 작은 단위로 나눌 수 있는 option이 있다. 64KB(Fine page table), 4KB(Coarse page table)
6. 1MB단위로 4096개로 나뉘어진 page table(0~1MB, 1~2MB, 2~3MB ......)을 Level 1 page table이라고 부른다. 각 32bit씩의 단위를 Level 1 page table entry라고 부른다.
7. Level 1 page table
8. Level 2 Page Table
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
-출처
http://recipes.egloos.com/5232056