Кіріспе

Процессорлық байланыс әдісі

Жадқа бейнеленген I/O (MMIO) және портқа бейнеленген I/O (PMIO) – компьютердегі орталық процессор (CPU) мен сыртқы құрылғылар арасындағы кіріс/шығыс (I/O) операцияларын жүзеге асырудың екі толықтыратын әдісі (әдетте чипсет арқылы қол жеткізуді қамтамасыз етеді). Баламалы тәсіл – арнайы I/O процессорларын пайдалану, олар өздік нұсқауларын орындайтын, эВМ-дердегі арналар ретінде кеңінен танымал. Жадқа бейнеленген I/O, негізгі жад пен I/O құрылғыларын адрестеу үшін бірдей адрес кеңістігін пайдаланады.

Шолу

Различные методы связи ЦП с устройствами, такие как отображение в память, не влияют на прямой доступ к памяти (DMA) устройства, поскольку, по определению, DMA — это метод связи устройства с памятью, который обходит ЦП. Аппаратные прерывания — это еще один метод связи между ЦП и периферийными устройствами, однако по ряду причин прерывания всегда рассматриваются отдельно. Прерывание инициируется устройством, в отличие от вышеупомянутых методов, которые инициируются ЦП. Оно также однонаправленное, поскольку информация передается только от устройства к ЦП. Наконец, каждая линия прерывания несет только один бит информации с фиксированным значением, а именно: «в устройстве на этой линии прерывания произошло событие, требующее внимания». Операции ввода-вывода могут замедлить доступ к памяти, если шины адреса и данных используются совместно. Это связано с тем, что периферийное устройство обычно работает медленнее, чем основная память. В некоторых архитектурах ввод-вывод с отображением портов работает через выделенную шину ввода-вывода, что облегчает эту проблему. Одним из преимуществ ввода-вывода с отображением в память является то, что, устраняя дополнительную сложность, которую вносит ввод-вывод с отображением портов, ЦП требует меньше внутренней логики и, следовательно, дешевле, быстрее, проще в изготовлении, потребляет меньше энергии и может быть физически меньше; это соответствует основным принципам вычислений с уменьшенным набором команд и также выгодно во встроенных системах. Другое преимущество заключается в том, что поскольку для адресации устройств используются обычные инструкции памяти, все режимы адресации ЦП доступны как для ввода-вывода, так и для памяти, и инструкции, которые выполняют ALU-операцию непосредственно над операндом памяти (загрузка операнда из места в памяти, сохранение результата в место в памяти или и то, и другое), могут использоваться с регистрами устройств ввода-вывода. Напротив, инструкции ввода-вывода с отображением портов часто очень ограничены, часто предоставляя только простые операции загрузки и сохранения между регистрами ЦП и портами ввода-вывода, так что, например, для добавления константы к регистру устройства с отображением портов потребуется три инструкции: прочитать порт в регистр ЦП, добавить константу к регистру ЦП и записать результат обратно в порт. Поскольку 16-битные процессоры устарели и были заменены 32-битными и 64-битными процессорами для общего использования, резервирование диапазонов адресного пространства памяти для ввода-вывода является меньшей проблемой, поскольку адресное пространство памяти процессора обычно намного больше, чем пространство, необходимое для всей памяти и устройств ввода-вывода в системе. Поэтому стало более практичным использовать преимущества ввода-вывода с отображением в память. Однако, даже если адресное пространство больше не является серьезной проблемой, ни один из методов отображения ввода-вывода не является универсально превосходящим другой, и будут случаи, когда использование ввода-вывода с отображением портов все еще предпочтительнее.

x86

x86 негізіндегі архитектураларда жадқа бейнеленген I/O артықшылықты, себебі порт арқылы I/O-ны жүзеге асыратын командалар бір ғана регистрмен шектеледі: деректерді оқуға немесе жазуға болатын жалғыз регистрлер – EAX, AX және AL, ал деректерді қай портқа жіберу немесе алу керектігін нұсқаудағы бір байттық дереу мән немесе DX регистріндегі мән анықтайды.