PCI 장치에 메모리가 너무 많아서 BIOS가 이를 할당할 적절한 빈 물리적 주소 영역을 찾을 수 없으면 어떻게 됩니까?

PCI 장치에 메모리가 너무 많아서 BIOS가 이를 할당할 적절한 빈 물리적 주소 영역을 찾을 수 없으면 어떻게 됩니까?

32비트 시스템은 최대 4GiB의 물리적 메모리를 가질 수 있습니다. 옳은? 아뇨, 가상 주소에만 4GB 제한이 있으며 MMU는 페이지 번호에 더 많은 주소 비트를 추가할 수 있으므로 더 많은 물리적 주소를 사용할 수 있습니다. 예를 들어 sparc32 아키텍처에서는 페이지 테이블 항목에 4비트가 추가되므로 최대 16*4GB = 64GB까지 사용할 수 있습니다.
PCI 시스템에서 BIOS는 BAR(기본 주소 레지스터)에 오프셋을 할당하여 PCI 장치 뒤의 메모리 영역이 일부 물리적 주소에서 표시되도록 합니다. PCI 장치에 메모리가 너무 많아 최대 64GB의 적절한 빈 물리적 영역을 할당할 수 없으면 어떻게 됩니까? (아니면 많은 PCI 장치에 영역이 너무 많아서 합계가 너무 클 수도 있습니다.) 주소 공간 버스는 독립적인가요?

답변1

그런 다음 BIOS는 무엇을 할지 결정할 수 있습니다. 즉, 장치의 일부만 매핑하거나 매핑하지 않은 상태로 두고 운영 체제의 장치 드라이버가 이를 파악하도록 합니다.

그런데 네가 말한 건물리적 주소 확장(PAE). 4GiB 제한을 초과하는 데 도움이 되지만 메모리 관리가 더욱 복잡해지고 동시에 모든 메모리를 볼 수는 없습니다. 각 개별 프로세스는 고유한 메모리 맵을 가질 수 있어 서로 다른 메모리 맵을 제공할 수 있습니다. 메모리 맵. 64GiB 물리적 주소 공간의 일부입니다.

64GiB 이상이 필요한 경우 이론적으로 PAE 구성표를 추가로 확장할 수 있지만 현 시점에서는 더 많은 문제가 발생하므로 제조업체에서는 아직 그렇게 하지 않았습니다. 이때는 64비트 시스템 아키텍처를 사용하는 것이 더 적합한 경우가 많습니다.

관련 정보