Порт ввода-вывода

Одни порты используются для передачи данных (например, приём данных от клавиатуры или чтение времени системных часов), другие — для управления периферийными устройствами (команда чтения данных с диска). Исходя из этого порт ввода-вывода может быть портом только для ввода, только вывода, а также двунаправленным портом.

Процессор умеет проецировать порты в память; при этом процессор гарантирует, что операция ввода-вывода через порт завершится до того, как начнёт выполняться следующая команда. С вводом-выводом через память такой гарантии нет. Впрочем, процессор не проверяет ошибок чётности на портах, поэтому в системах высокой надёжности программист должен быть готов к ошибкам чётности.

Физически адрес порта подаётся через ту же адресную шину, что и адрес памяти. В процессорах Intel архитектуры x86 (до Pentium) была линия MI/O# (1 — память, 0 — порт); в более поздних эту функцию выполняют линии запроса команды.