¿Cómo interpretar E/S y memoria en la información del sistema de Windows Msinfo32? ¿Las direcciones de E/S representan la ubicación de la memoria que asignó el registro del dispositivo de E/S y qué pasa con las direcciones en la memoria? Si hay direcciones de memoria física, entonces deberían ser diferentes cada vez, ¿verdad?
Respuesta1
Lo que ve en "E/S" son "direcciones", pero no son direcciones virtuales ni direcciones de memoria física. Están en el espacio del puerto de E/S. Sólo son significativos para instrucciones especiales como IN y OUT.
La página "memoria" muestra direcciones dentro del espacio de direcciones físicas. Este es el mismo espacio de direcciones en el que vive la RAM. Estas son las direcciones de "registros" y espacio de búfer que están definidos por varios dispositivos de E/S y algunos otros dispositivos en la placa base. Los controladores hablan con estos dispositivos haciendo referencia a direcciones virtuales que el sistema operativo asocia con estas direcciones físicas.
El sistema operativo puede configurar tanto las direcciones de puerto como de memoria para dispositivos que cumplen con los estándares PCI para registros de direcciones de bus. Sin embargo, toda esta configuración se realiza en el momento del arranque y la mayoría de los dispositivos terminan en las mismas direcciones de un arranque al siguiente. Algunos dispositivos están asignados a direcciones conocidas por motivos heredados. Algunos otros dispositivos (como los puertos seriales y paralelos heredados, si los tiene) están en el bus LPC. Desde el punto de vista programático, esto se parece a ISA, pero eléctricamente es un bus serie y, al igual que ISA, no se puede configurar mediante software; Estos dispositivos están cableados a sus direcciones.
Por cierto, el espacio del puerto de E/S es una reliquia de arquitecturas antiguas, o al menos arquitecturas con raíces antiguas (como x86). La mayoría de las arquitecturas modernas no implementan tal cosa; todo está en el espacio de la memoria física.