Memory Management Unit

Posted 2012. 10. 18. 12:22

MMU : 메모리 관리의 핵심적인 역할을 담당한다. 실제 메모리와 가상 메모리 사이에서 주소 변환

역할을 한다.


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이후 운영체제를 만들때 소프트웨어적인 부담을 훨씬줄여주기 위해서 였다.