Порты ввода-вывода используются для обмена данными между процессором и устройствами. Порты ввода-вывода реализуется как буферные области или регистры контроллера размером в один или несколько байт, непосредственно подключенные к шине ввода-вывода компьютера.
Адреса портов ввода-вывода, так же, как и адреса прерываний, закреплены за устройствами и задаются как шестнадцатеричные числа в диапазоне от 0 до 3FF (от 0 до 65536). Так клавиатура и мышь PS/2 имеют адрес 060 (или 064), а динамик компьютера имеет адрес 061. Однако подавляющее большинство устройств используют несколько портов. Так первый и второй контроллер прерываний используют по два порта, с адресами соответственно 020, 021 и 0A0, 0A1, а контроллеры ATA для каждого устройства используют 8 портов. В этом случае задается либо диапазон адресов, либо в качестве адреса порта задается базовый адрес – адрес самого младшего байта группы портов. Адреса остальных портов устройства задаются как смещения относительно базового адреса.
1.3.2.5.3. Технология Plug&Play
|
|
Число прерываний, которые могут использовать устройства, ограничено, поэтому может возникнуть ситуация, если одно и то же IRQ задано для нескольких устройств. То же касается и портов ввода-вывода, поскольку разные изготовители могут задать в своих устройствах одни и те же порты. Некоторые из таких конфликтных ситуаций очень трудно распознать и исправить.
Чтобы разрешить эти проблемы, корпорация Microsoft в сотрудничестве с Intel и другими производителями компьютерного оборудования разработала спецификацию Plug&Play (дословно – включи и играй), или сокращенно PnP. Основной целью разработки этой спецификации было создание компьютера с автоматической конфигурацией устройств и автоматическим назначением ресурсов.
В реализации спецификации PnP принимают участие следующие компоненты компьютера:
· устройства, подключаемые к компьютеру;
· шина;
· BIOS;
· операционная система.
Устройства PnP могут идентифицировать себя по запросу BIOS или операционной системы и конфигурироваться в соответствии с назначенными им системными ресурсами.
Контроллеры шины компьютера должны распознавать устройства PnP и взаимодействовать с ними.
BIOS в процессе загрузки собирает сведения о подключенных к компьютеру устройствах (как выполненных по спецификации PnP, так и не поддерживающих эту спецификацию) и назначает каждому устройству PnP системные ресурсы (устройства не PnP получают жестко закрепленные за ними ресурсы). Затем BIOS передает эту информацию операционной системе.
Операционная система, поддерживающая технологию Plug&Play (например, Windows 95/98/2000/XP), берет на себя управление всеми внешними устройствами, загружая соответствующие драйверы. Кроме того, операционная система сообщает о конфликтах устройств, которые не были устранены BIOS. С помощью соответствующих средств операционной системы можно настроить параметры устройств вручную (программно или аппаратно).