MMU에 관련해서.
글쓴이: zasxer / 작성시간: 토, 2018/05/26 - 3:10오후
arm 코어프로세서를 보고 잇는데 이해가 안되는 부분이 잇습니다.
책에서 MMU 관련해서 cp15 레지스터 설정하는 부분만 나와있습니다.
제가 궁금한거는
1) cp15 레지스터는 ap 내부에 있는 레지스터인가? 흔히 얘기하는 c1, c2 레지스터가 ap 내부에 있는 레지스터인가요??
2) 가상메모리를 만드는 개념에서 MMU는 RAM 메모리의 정보를 담고 잇는 pagetable(4gb 기준 16kb)의 주소만 가지고 있나요???
3) 여기서 MMU 내부에 따로 메모리를 들고 있고 그 안에 pagetable의 주소값들을 저장하여 가상메모리를 만드는 건가요?? 아니면 가상 메모리를 만들기위해 ram에 일부분을 할당 받아서 비연속적인 pagetable의 주소들을 저장하는 건가요?
4) cache는 MMU 내부에 있는 거 같은데, cache는 페이지 단위로 일어나나요?
Forums:
coprocessor 여러 개가 내장될 수 있는데
coprocessor 여러 개가 내장될 수 있는데 coprocessor #15 슬롯에 연결된 것을 지칭할 때 cp15 라는 이름을 사용합니다.
c1 이니 c2 니 하는 것들은 remote procedure call 때 넘겨주는 커맨드, 혹은 ioctl system call 때 넘겨주는 커맨드 같은 것이라 이해하세요.
cortex-A9, CP15 system control registers grouped by CRn order:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0360f/BIHGGAFJ.html
MMU 에게는 root table 의 주소를 알려줍니다.
root table 의 크기는 딱히 고정되어 있지는 않지만, ARM32 nonLPAE 에선 주소가 16KiB 경계에 align 되어 있어야만 합니다.
pagetable '들' 은 MMU 입장에서 MMIO random access 가 가능한 아무 곳에 있어도 됩니다.
DRAM, SRAM, ROM, NOR flash 등등.
cache line size 단위 입니다. 따라서 flush/invalidate 도 cache line size 로 수행해야 합니다.
댓글 달기