더북(TheBook)

그림 9-12에서 논리 주소는 프로그램 카운터에 저장된 인스트럭션의 주소 값입니다. 논리 주소는 페이지 넘버(VPN)와 오프셋으로 이루어져 있습니다. 페이지 테이블에는 해당 페이지 넘버와 그에 대응하는 프레임 넘버(PPN)가 있습니다. 또한 컨트롤 비트 항목도 보입니다. 이 중에서 가장 중요한 것은 프레임이 실제 메인 메모리에 있는지 아니면 하드디스크에 있는지를 나타내는 유효 비트(valid bit)입니다. 프레임이 메인 메모리에 존재하면 유효 비트가 1이고 존재하지 않으면 0입니다.

논리 주소에 대응하는 물리 주소는 페이지 넘버(VPN)를 프레임 넘버(PPN)로 대체하고 논리 주소의 오프셋과 합쳐 구할 수 있습니다.

이전 절에서 MMU가 논리 주소를 물리 주소로 바꾼다고 했습니다. MMU가 페이지 테이블을 통해서 논리 주소를 물리 주소로 바꾸는 과정을 조금 더 자세히 살펴보겠습니다. MMU는 PTBR(Page Table Base Register)에 저장된 페이지 테이블의 시작 주소를 참조합니다. 이제 프로그램 카운터에서 VPN 비트(상위 20비트)를 참조합니다. 페이지 테이블에서 페이지 넘버(VPN)를 찾고 이에 상응하는 프레임 넘버(PPN)를 가져와 프로그램 카운터의 오프셋 비트(하위 12비트)와 합쳐 물리 주소를 만듭니다. 이 물리 주소를 또 다른 레지스터인 MAR(Memory Address Register)에 저장한 다음, CPU는 이 레지스터의 주소 값을 읽어와 메인 메모리에서 인스트럭션을 가져오고(fetch) 실행(execute)합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.