강좌 & 팁
안녕하세요.
오늘도 MMU에 관하여 하나 공부해 보겠습니다 ^^
변환 참조 버퍼
변환 참초 버퍼(Translation Lookaside Buffer)는
한마디로 요약해,
최근 사용된 페이지 변환을 저장하고 있는
특별한!
캐시 입니다.^^
위에서 말한 최근 사용된 페이지 변환은
페이지 테이블에(메모리)
존재 합니다.
MMU가 항상 페이지 테이블에 접근 한다면,
컴퓨터에서 가장 중요한(?)
속도가 느려 지겠죠!?
그래서 페이지 테이블에 접근하기 전에
캐쉬 형태로
만들어 놓은 것이!
"변환 참조 버퍼" 입나다!!
좀 더 이해가 가시나요!?
TLB가 어떤 동작을 하는지 기능을 살짝 알아보겠습니다.
1. ARM Core에서의 TLB
ARM 코어에서는 TLB는 동작 제어를 위해
두 가지 유형의
소프트웨어 커맨드를
지원합니다.
첫 번째는
TLB를 플러시
하는 것이며,
두 번째는
TLB를 락(lock)
하는 것입니다.
쉽게 말하자면,
ARM 코어에서 TLB를 제어하기위해 두가지 유형의 소프트웨어를 지원하는데,
이 지원으로 할 수 있는 기능(?)은 2가지가 있는데,
하나는 TLB를 플러시 하는 것이며,
둘은 TLB를 락 하는 것이다!
정도 겠죠!^^?
2. TLB 가 유효한 변환을 포함 하고 있지 않다면..
MMU가 메모리에 있는 페이지 테이블을 접근하기 전에 먼저 접근 하는 곳이
TLB 라고 공부 했습니다.
그렇다면 TLB 안에 MMU가 원하는 주소가 없다면!?
이것을 유식한 말로,
TLB 미스
라고 합니다 ^^
그렇다면 TLB 미스가 나면 MMU는 어떻게 할까요?
MMU는 TLB 미스가 나면,
하드웨어가 자동으로
TLB 미스를
처리합니다.(우리가 할게 없다는 뜻이네요 ^^)
자, 다시한번 유식한 말로 표현하자면,
유효한 변환을 위해
주 메모리 안의 페이지 테이블을 검색 하여,
TLB 안의 있는 64라인 중 하나로
로드 합니다 ^^
TLB 미스가 날 경우 이를 처리하는 과정을
"페이지 테이블 워크(page Table walk)"라고
부른답니다 ^^
3. 요약
오늘은 TLB 에 대하여 공부해 보았습니다.
오늘 공부를 요약해 보면,
1. MMU에는 TLB 라는 것이 존재 한다.
2. TLB는 주 메모리에 있는 페이지 테이블에 접근하기 전에 MMU가 들리는 곳이다.
3. TLB는 ARM 코어에서 2가지 소프트웨어 유형으로 제어가 가능하다.
4. MMU가 원하는 유효한 주소를 TLB가 갖고 있지 않을 경우 "TLB 미스" 라고 한다.
5. TLB 미스가 나는 것을 처리하는 과정을 "페이지 테이블 워크(page table walk)" 라고 한다.
위 5 가지로 요약이 가능합니다 ^^
앞으로?
다음에는 페이지 테이블 워크에 대하여 공부해 봐야겠지요!?
그럼 다음 시간에는 페이지 테이블 워크에 대하여 공부해 보겠습니다 ^^