23
1.2.5 Порт ввода-вывода
Порт можно определить как точку, через которую осуществляется
взаимодействие с каким-либо блоком в системе ввода-вывода, многоразрядный
вход или выход устройства. Порт ввода-вывода – это логическая адресуемая
единица СВВ, которая характеризуется: адресом, форматом данных и набором
операций, которые к этому порту можно применять. Взаимодействие может
осуществляться как программным путем, так и аппаратным (порт – разъем
устройства).
В случае программного взаимодействия совокупность портов нумеруется и
представляет собой адресное пространство (т.е. к каждому порту доступ
осуществляется по его адресу). Различают порты ввода, вывода и
двунаправленные (ввода-вывода). Управление блоками СВВ через порты
осуществляется путем записи в них
или чтения из них данных. При обращении
к порту на линии системного интерфейса выставляется его адрес, который
распознается специальным блоком – адресным декодером (или селектором
адресов, что то же самое), – расположенным в устройстве, к которому приписан
данный порт. Адресный декодер затем инициирует процесс обмена данными
(запись или чтение, в зависимости от
управляющих сигналов), см. первый
пример на рис. выше. Надо сказать, что кроме наличия «нужного» адреса на
линиях системного интерфейса для начала процесса обмена с устройством
необходимы еще определенные значения управляющих сигналов («чтение»,
«запись», «Chip-Select» и т.п.). Одному и тому же устройству может
соответствовать несколько портов, идущих друг за другом (диапазон
адресов)
или иначе (вразброс по адресному пространству портов), через которые
осуществляется доступ к разным механизмам устройства или к различным
частям одного механизма (например, один порт представляет собой регистр
адреса внутренней памяти устройства, а через другой пересылаются данные).
Примеры: COM-порт в PC/AT, пространство портов ввода-вывода, порт
контроллера ПДП (DMA).
На рис. ниже изображены
два примера взаимодействия с устройством
через порты. Первый пример иллюстрирует механизм распознавания номеров
(адресов) портов, к которым происходит обращение через системный
интерфейс. Этот механизм был описан в предыдущем параграфе. Второй
пример показывает, как через один и тот же порт может осуществляться доступ
к разным ячейкам внутренней памяти устройства. В примере
по каждому факту
записи через порт адрес ячейки внутренней памяти, в которую будет
производиться следующая запись, увеличивается на единицу. Факт записи
устанавливается следующим образом: селектором адреса выделяется адрес
порта устройства в виде активного сигнала на выходе (т.е. на выходе блока СА),
этот сигнал объединяется по «И» с сигналом записи
системного интерфейса. На
рисунке довольно абстрактно изображена работа с блоком памяти: изображены
не все сигналы, не конкретизированы их источники, показано, что из памяти
осуществляется чтение из остальной части устройства и др. – это не