Как интерпретировать ввод / вывод и память в windows Системная информация Msinfo32? Адреса ввода-вывода представляют собой область памяти, в которой отображается устройство ввода-вывода, и как насчет адресов в памяти? Если есть адреса физической памяти, то они должны каждый раз отличаться, верно?

1 ответ1

1

То, что вы видите под «I /O» - это "адреса", но они не являются ни виртуальными, ни физическими адресами памяти. Они находятся в пространстве портов ввода / вывода. Они имеют смысл только для специальных инструкций, таких как IN и OUT.

На странице "память" отображаются адреса в физическом адресном пространстве. Это то же адресное пространство, в котором живет ОЗУ. Это адреса "регистров" и буферного пространства, которые определяются различными устройствами ввода-вывода и некоторыми другими устройствами на материнской плате. Драйверы общаются с этими устройствами, ссылаясь на виртуальные адреса, которые ОС связывает с этими физическими адресами.

Адреса портов и памяти для устройств, соответствующих стандартам PCI для регистров адреса шины, настраиваются ОС. Тем не менее, вся эта конфигурация выполняется во время загрузки, и большинство устройств в конечном итоге имеют одинаковые адреса от одной загрузки к другой. Несколько устройств назначены на общеизвестные адреса по устаревшим причинам. Несколько других устройств (таких как устаревшие последовательные и параллельные порты, если они у вас есть) находятся на шине LPC. Программно это выглядит как ISA, но электрически это последовательная шина, и как ISA не может быть сконфигурирован программно; эти устройства подключены к своим адресам.

Кстати, пространство портов ввода / вывода является пережитком древних архитектур или, по крайней мере, архитектур с древними корнями (например, x86). Большинство современных архитектур не реализуют ничего подобного; все находится в физическом пространстве памяти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .