Windows 시스템 정보의 I/O 및 메모리

Windows 시스템 정보의 I/O 및 메모리

Windows 시스템 정보 Msinfo32에서 I/O 및 메모리를 해석하는 방법은 무엇입니까? I/O 주소는 I/O 장치 레지스터에 매핑된 메모리 위치를 나타내며 메모리의 주소는 어떻습니까? 물리 메모리 주소가 있다면 매번 달라져야겠죠?

답변1

"I/O" 아래에 보이는 것은 "주소"이지만 가상 주소도 아니고 물리적 메모리 주소도 아닙니다. I/O 포트 공간에 있습니다. 이는 IN 및 OUT과 같은 특수 명령에만 의미가 있습니다.

"메모리" 페이지에는 물리적 주소 공간 내의 주소가 표시됩니다. 이는 RAM이 존재하는 주소 공간과 동일합니다. 이는 마더보드의 다양한 I/O 장치 및 기타 특정 장치에 의해 정의되는 "레지스터" 주소 및 버퍼 공간입니다. 드라이버는 OS가 이러한 물리적 주소와 연결하는 가상 주소를 참조하여 이러한 장치와 통신합니다.

버스 주소 레지스터에 대한 PCI 표준을 준수하는 장치의 포트 및 메모리 주소는 모두 OS에서 구성할 수 있습니다. 그러나 이 모든 구성은 부팅 시 수행되며 대부분의 장치는 한 부팅부터 다음 부팅까지 동일한 주소로 종료됩니다. 레거시적인 이유로 일부 장치는 잘 알려진 주소에 할당됩니다. 몇 가지 다른 장치(예: 기존 직렬 및 병렬 포트(있는 경우))가 LPC 버스에 있습니다. 프로그래밍적으로 이것은 ISA처럼 보이지만 전기적으로는 직렬 버스이고 ISA와 마찬가지로 소프트웨어로 구성할 수 없습니다. 이러한 장치는 해당 주소에 고정되어 있습니다.

그런데 I/O 포트 공간은 고대 아키텍처의 유물이거나 적어도 고대 뿌리를 가진 아키텍처(예: x86)입니다. 대부분의 현대 아키텍처는 그러한 기능을 구현하지 않습니다. 모든 것이 물리적 메모리 공간에 있습니다.

관련 정보