Memory Management Unit
Posted 2012. 10. 18. 12:22MMU : 메모리 관리의 핵심적인 역할을 담당한다. 실제 메모리와 가상 메모리 사이에서 주소 변환
역할을 한다.
cpu가 사용 하는 주소 : 가상주소 ( virtual address )
memory가 사용하는 주소 : 물리적 주소( physical address )
컴퍼는 수행할 명령어의 주소를 가르켜야 하는데 이떄 가지는 값이 virtual address다.
MMU의 중요한 기능인 두 가지 이다.
1) HAT( Hardware Address Translation )
세그먼트와 페이징을 담당한느 하드웨어 부분.
실질적인 주소변환연산을 한다. H/W레벨에서 모두 처리 하며 연산된 결과는 TLB에
저장된다.
2) TLB( Translation Lookaside Buffer )
가상 메모리 시스템에서 페이징 작업을 수행하기 위해 가상 메모리의 내용을 실제 메모리값으로
변환하는데에는 많은 시간이 소요된다. TLB는 캐시의 개념을 이용 한 것으로 일정 개수만큼의
변환 내용을 버퍼에 보관하여 놓음으로써 변환에 드는 시간을 주여준다.
둘 다 MMU내에 존재한다.
TBL 미스 발생시 우선 페이지 테이블을 찾는다. 페이지 테이블도 페이지 프레임에 있기때문에
TLB검색이 발생한다. 만약 페이지 테이블을 담고있는 페이지 프레임의 정보가 TLB에 없다면
추가적인 TBL미스가 발생한다. 이런 반복이 큰 문제가 된다. 해결 방안으로 TLB엔트리를
위한 큰 소프트웨어 캐시를 사용하는 것이다. 이 개시는 고정된 위치에 있다.
이를 위한 페이징 저보는 항상 TLB에 존한다. OS는 소프트웨어 캐시를 먼저 검색함으로써
반복적인 TLB 미스를 줄일 수 있다.
soft miss : 참조하려는 페이지가 메모리에 있지만 TLB에 정보가 없어서 발생하는 결함
hard miss : TLB뿐만 아니라 메모리에도 참조하려는 페이지가 없으면 디스크I/O 발생
이런 MMU가 나온 이유는 메모리관리를 위해 완전히 소프트웨어가 담당하였던 것을
x86 386이후 운영체제를 만들때 소프트웨어적인 부담을 훨씬줄여주기 위해서 였다.
- Filed under : 윈도우즈 프로그래밍/MMU