2

페이지 크기가 ISA의 일부로 지정된 이유를 이해하려고합니다.Page Size가 Instruction Set Architecture의 일부로 지정되는 이유는 무엇입니까?

특히, 운영 체제와 별도로 하드웨어 모듈 (MMU, TLB) 중 일부가 페이지 크기 정보를 사용하여 특정 기능을 제공하는 세부 정보를 찾고 있습니다.

페이지 크기가 OS에 의해 결정되는 대신 ISA의 일부가되어야하는 이유를 알려주십시오.

감사합니다.

+2

프로그래밍 질문이 아니기 때문에이 질문을 주제와 관련이없는 것으로 종료하도록 투표합니다. –

답변

0

TLB 하드웨어는 변환이 주소에 적용되는지 여부를 알아 내기 위해 페이지 크기를 알아야합니다. 예 : 번역이 주어지면 2500 바이트 이상의 주소에서 해당 번역을 사용합니까? 아닙니다.

다른 방식으로 말해서, TLB는 어떤 주소 비트가 페이지 오프셋 (페이지 내)의 일부인지, 어떤 비트가 가상에서 물리적으로 변환되어야 하는지를 알아야합니다.

또한 HW 페이지 워크가있는 아키텍처에서 전체 페이지 테이블 형식은 ISA의 일부입니다.

+0

가설적인 시나리오는 하드웨어 TLB가없고 hw 페이지 보행이 아니라 MMU가 번역을 지원한다고 가정하면 페이지 크기가 ISA의 일부가 될 필요가 없습니다. 맞습니까? OS가 페이지 테이블과 페이지 워크를 관리하기 때문에 MMU는 오프셋을 제외한 VPN 부분을 변환합니다. 또는 아키텍처의 다른 곳에서 페이지 크기 정보가 필요합니까? –

+0

@UchiaItachi : 그 밖의 다른 생각은 없습니다. 물리로의 변환은 일찍 일어나고 나머지는 캐시/메모리 시스템은 물리적 주소를 사용합니다. 페이지 기반 TLB가없는 설계는 소프트웨어가 관리하는 기본/제한 변환 항목을 사용할 수 있습니다. 모든 번역에 고정 크기로 사용할 수 있지만 HW는 번역 슬롯을 몇 개만 제공하므로 익스텐트와 같이 사용하는 것이 훨씬 낫습니다. 매핑하는 전체 범위에 대한 번역입니다. –

+0

HW 변환없이 MMU가 할 수있는 모든 작업은 모든 * 메모리 액세스에서 소프트웨어 변환을 호출합니다. 일반 CPU의 대부분 작업 부하의 경우 가상 메모리 비용은 몇 % 정도입니다. 모든 메모리 액세스에서 소프트웨어 미스 핸들러를 호출하면 해당 처벌을 최소 100 %, 아마도 1000 %로 만들 수 있습니다. 오, 코드를 가져와야 할 것입니다. 아마도 10의 요소가 과소 평가 될 수 있습니다. 전체 CPU가 예외를 처리하는 대신 처리기가없는 장치에 펌웨어를 제공 할 수 있거나 페이지 크기를 간단하게 구성 할 수 있다면 더 그럴듯합니다. –