질문에대하여 자세하고 친절하게 답변해주셔서 너무나 감사드립니다.
답변 내용(http://jake.dothome.co.kr/pt/)과 레퍼런스 메뉴얼을 참고하여 공부하던 도중 궁금한점이 있어서 질문 드립니다.
현재 Sabre Lite(Cortex-A9)을 사용하고 있습니다. Sabre Lite는 32bit short descripor page table format을 사용하고 있습니다.
1. "TTBR0은 유저 태스크마다 생성되는 해당 유저 태스크의 pgd 페이지 테이블을 가리킨"다고 하셨습니다. 그러면 프로세스가 여러 개가 존재하는 경우 PGD 역시 여러 개가 존재할 수 있는 건가요? 지금까지 저는 PGD는 최상위 페이지 테이블로서 하나만 존재하는 것으로 이해하고 있었습니다.
2. 블로그 내용에서 "가상 주소 vs 물리 주소 변환" 항목에서 TTBR은 TTBR1을 의미하는 것으로 이해하였습니다. 아래 그림은 TTBR1 레지스터입니다.
"인터럽트가 발생할 때 TTBR1으로 전환하지 않고, 그냥 TTBR0를 사용한다" 내용을 참고하면 1st page directory_base 주소를 구할 때 TTBR0의 'Translation table base 0 address'를 사용하는 것이 맞는 지 궁금합니다. 아래 그림은 TTBR0 레지스터 입니다.