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

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

Ввод-вывод через порты (англ. I/O ports) — схемотехническое решение, организующее взаимодействие процессора и устройств ввода-вывода. Противоположность вводу-выводу через память.

Во многих моделях процессоров ввод-вывод организуется теми же функциями, что и чтение-запись в память — так называемый «ввод-вывод через память». Соответственно, схемотехнически устройства ввода-вывода располагаются на шине памяти, и часть адресов памяти направляются на ввод-вывод. В процессорах Intel, микроконтроллерах AVR и некоторых других существуют отдельные команды для ввода-вывода — IN и OUT — и, соответственно, отдельное адресное пространство: в процессорах Intel — от 000016 до FFFF16.

Порты ввода/вывода создаются в системном оборудовании, которое циклически декодирует управляющие, адресные и контакты данных процессора. Затем порты настраиваются для обеспечения связи с периферийными устройствами ввода-вывода.

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

Порты или память?

Преимущества портов:

  • Возможна совсем другая схемотехническая организация ввода-вывода.
  • Человек, читающий ассемблерный листинг, сразу же видит, что это работа не с памятью, а с внешним устройством.
  • Всё адресное пространство машины можно пустить на ОЗУ, без всяких «дыр» наподобие UMB.
  • Для машин низкой разрядности, у которых адрес в памяти задаётся регистровой парой, а на порт хватает и одного регистра, ускоряется работа с внешними устройствами.

Преимущества памяти:

  • Упрощение конструкции процессора.
  • Более широкий набор возможных инструкций: все инструкции, способные записать данные в память, в том числе автоинкрементные и SIMD, могут заниматься вводом-выводом.
  • Удобнее работа с функциями, оперирующими большими объёмами данных (например, чтение-запись на диск, в видеоадаптер).

Порты в архитектуре IA-32

Процессор позволяет осуществлять ввод-вывод как через память, так и через порты. Доступ к портам осуществляется особыми командами IN, INS, INSB, INSW, INSD, OUT, OUTS, OUTSB, OUTSW и OUTSD; доступ к памяти — обычными функциями работы с памятью (MOV, ADD, LODSB и прочими). Два последовательных порта могут объединяться в один двухбайтовый порт, четыре — в один четырёхбайтовый. Как и с памятью, для максимальной производительности номера портов должны быть выровнены соответственно по 2- и 4-байтовой границе. Если требуется записывать данные в два соседних порта в определённом порядке, этого нельзя делать многобайтовыми командами (на выровненных портах ввод-вывод происходит параллельно, на невыровненных — порядок вызова не определён).

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

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



Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Порт ввода-вывода" в других словарях:

  • порт ввода-вывода — — [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN I/O port …   Справочник технического переводчика

  • порт принтера (ввода-вывода) — Используется для подключения принтера, например Centronics, RS 232C. [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN printer port …   Справочник технического переводчика

  • Устройства ввода-вывода — Компьютерное устройство ввода вывода  компонент типовой архитектуры ЭВМ, предоставляющее компьютеру возможность взаимодействия с внешним миром и, в частности, с пользователями и другими компьютерами. Устройства ввода/вывода Устройство ввода… …   Википедия

  • Устройство ввода/вывода — Компьютерное устройство ввода вывода  компонент типовой архитектуры ЭВМ, предоставляющее компьютеру возможность взаимодействия с внешним миром и, в частности, с пользователями и другими компьютерами. Устройства ввода/вывода Устройство ввода… …   Википедия

  • Последовательные и параллельные порты ввода-вывода — Наружные разъёмы материнской платы: PS/2 (1 мышь, 2 клавиатура), сетевой R …   Википедия

  • Порт (значения) — Порт: В Викисловаре есть статья «порт» Порт (лат. portus  «гавань», «пристань») …   Википедия

  • Порт (компьютер) — У этого термина существуют и другие значения, см. Порт (значения). Порт  обычно соединение (физическое или логическое), через которое принимаются и отправляются данные в компьютерах. Наиболее часто портом называют: Аппаратный порт … …   Википедия

  • порт данных — Шлюз ввода/вывода данных пользователя, передаваемых по каналу или подканалам службы в соответствии с Рекомендацией МСЭ T H.221 (МСЭ Т Н.320). [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN …   Справочник технического переводчика

  • ПОРТ — (1) естественный или искусственно оборудованный инженерными сооружениями транспортный узел на берегу водного пространства (акватории) моря, озера, реки или водохранилища, достаточно безопасный и защищённый от воздействия волн, ветров, наноса… …   Большая политехническая энциклопедия

  • порт — 3.32 порт (port): Конечная точка соединения. Примечание В контексте Интернет протокола порт представляет собой конечную точку логического канала TCP или UDP соединения. Протоколы приложений на основе TCP или UDP обычно имеют назначенные по… …   Словарь-справочник терминов нормативно-технической документации


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»