памяти ввода/вывода и порта ввода-вывода, отображенных являются двумя взаимодополняющими методами ввода/вывода.
Памяти Ввода/Вывода
в системах с отображением памяти устройство ввода-вывода доступно, как часть памяти. Load
и Store
команды выполняются для чтения и записи на устройства ввода-вывода, так же, как они используются для памяти (port-mapped имеет специальные команды для ввода-вывода). Это означает, что устройства ввода-вывода используют ту же адресную шину, что и память, что означает, что ЦП может ссылаться на память или устройство ввода/вывода на основе значения адреса. Такой подход требует изоляции в адресном пространстве, то есть адреса, зарезервированные для ввода-вывода, не должны быть доступны физической памяти.
ниже изображение простая, базовая компьютерная система. В современных системах дело обстоит гораздо сложнее.
Port-Mapped I / O
по данным Википедия
порт-сопоставленный ввод-вывод часто использует специальный класс инструкций ЦП
специально для выполнения ввода-вывода находится на Intel
микропроцессоры, с инструкций in и out. Следующие инструкции
может читать и писать от одного до четырех байт (занять сист, outw, д) ввода/вывода
устройство. Устройства ввода/вывода имеют отдельное адресное пространство общей памяти,
либо выполняется с помощью дополнительного вывода ввода-вывода на физическом процессоре
интерфейс, или весь предназначенный автобус к I / O. потому что адрес
пространство для ввода / вывода изолировано от пространства для основной памяти, иногда
называется изолированным вводом-выводом
что касается преимуществ и недостатков: поскольку периферийные устройства медленнее, чем память, совместное использование данных и адресных шин может замедлить доступ к памяти. С другой стороны, благодаря простоте ввода-вывода, обеспечиваемой системами с отображением памяти, ЦП требует меньше внутренней логики, и это помогает быстрее, дешевле и потребляет меньше энергии Процессоры должны быть реализованы. Логика аналогична RISC-системам: уменьшите сложность, получите более специализированную и надежную систему, которая, например, очень удобна для встраиваемых систем.
наоборот (опять из Wiki):
инструкции ввода-вывода с сопоставлением портов часто очень ограничены, часто предоставляя
только для простых операций загрузки и хранения между регистрами ЦП и
Порты ввода-вывода, например, для добавления константы в сопоставленный порт
устройство Регистрация потребует трех инструкций: прочтите порт до
Регистр ЦП, добавьте константу в регистр ЦП и запишите
результат возвращается в порт.
я настоятельно рекомендую вам прочитать эту статью wiki для получения дополнительной информации.
ответить на один из ваших вопросов:
что или куда я пишу, если это не в памяти?
запись в регистры интерфейса ввода-вывода через шину данных, которая позже (когда будет готова) отправляет данные на фактическое устройство ввода/вывода. Ниже изображение интерфейса устройства ввода-вывода примера.