- •Глава 24. Общие вопросы организации ввода-вывода
- •24.1. Характеристики внешних устройств
- •24.2. Типы интерфейсов ввода-вывода
- •24.3. Конструктивная реализация внешних устройств
- •24.4. Адресация периферийных устройств
- •24.5. Функции контроллера пу и информационная модель взаимодействия
- •24.6. Типичные действия операции контроллера пу при выполнении операции
- •24.8. Буферизация данных в устройствах
- •24.9. Контрольные вопросы
24.3. Конструктивная реализация внешних устройств
Современное внешнее устройство (ВУ) обычно состоит из:
- контроллера внешнего интерфейса (его периферийная часть);
- устройства управления (контроллера);
- собственно устройства.
Обобщенная структура внешнего устройства приведена на рис. 24.7.
Рис. 24.7. Обобщенная структура внешнего устройства.
Конструктивно внешнее устройство может быть реализовано:
- в виде отдельного устройства, подключающегося к разъему одного из контроллеров интерфейса подсистемы ввода-вывода кабелем с разъемом. В этом случае контроллер интерфейса и контроллер ВУ находятся в конструктиве внешнего устройства.
- в виде интерфейсной карты, на которой может располагаться либо весь контроллер ВУ, либо его часть, и, обязательно, контроллер интерфейса;
- в виде интерфейсной карты, на которой расположено само ВУ, его контроллер и контроллер интерфейса. Интерфейсная карта подключается к разъему одного из контроллеров интерфейса подсистемы ввода-вывода;
- в виде одной из микросхем, расположенных, например, на материнской плате. Микросхема соединяется с интерфейсом подсистемы ввода-вывода печатными проводниками;
- в виде электронной схемы, интегрированной в одну из микросхем подсистемы ввода-вывода.
24.4. Адресация периферийных устройств
В составе компьютерной системы, как правило, имеется много периферийных устройств. Для того чтобы их различать, каждому периферийному устройству присваивается необходимое количество уникальных адресов. Соответственно, в контроллере интерфейса устройства предусматриваются схемы для распознавания адресов.
В компьютере периферийные устройства могут адресоваться через:
специальное адресное пространство ввода-вывода;
адресное пространство оперативной памяти.
В случае использования адресного пространства оперативной памяти для адресации периферийных устройств выделяется часть адресов из общего адресного пространства оперативной памяти.
Достоинства такого подхода следующие:
практически неограниченные возможности по выделению адресов для периферийных устройств;
использование для работы с периферийными устройствами в драйверах любых команд и регистров общего назначения архитектуры процессора, а не только специализированных;
использование для программирования драйверов языков высокого уровня, если это целесообразно.
Недостатки такого подхода:
усложнение схем дешифрации адреса в контроллере интерфейса в периферийном устройстве. Так как размер адресного пространства оперативной памяти в современных вычислительных системах составляет величину не менее 4 Гбайт, то количество дешифрируемых разрядов адреса составляет не менее 32-х.
так как каждая адресуемая функция периферийного устройства работает по алгоритму ячейки оперативной памяти и на одинаковом интерфейсе оперативной памяти, то и требования к быстродействию схем контроллера периферийного устройства такие же, как и для микросхем оперативной памяти;
некоторое уменьшение адресного пространства, которое будет использовано для работы оперативной памяти;
повышение стоимости контроллеров периферийных устройств, особенно простых.
В случае использования специального адресного пространства ввода-вывода для работы с периферийными устройствами в системе команд предусматриваются специальные команды ввода-вывода. В архитектуре IA-32/64 такими командами являются команды: IN; OUT; INS; OUTS. Эти команды выполняют обмен информацией между регистром RАХ и регистром (буфером) данных устройства. Адрес устройства задается либо непосредственно в команде ввода-вывода, либо в регистре RDX.
Достоинства использования специального адресного пространства ввода-вывода:
адрес функции периферийного устройства может быть коротким, значит, и необходимы меньшие аппаратурные затраты на дешифрацию адреса. Достаточно распространен случай, когда адрес равен 10 разрядам. При задании в командах IN; OUT; INS; OUTS адреса периферийного устройства через регистр используется 16 младших разрядов регистра RDX.
программы становятся более наглядными по сравнению с вариантом единого адресного пространства, так как операции ввода-вывода выполняются с помощью специальных команд;
разработка подсистемы ввода-вывода может выполняться отдельно от разработки подсистемы памяти.
Недостатки использования специального адресного пространства ввода-вывода:
ввод-вывод осуществляется только с использованием в процессоре одного регистра RАХ;
для обработки введеной из периферийного устройства порции информации (если аккумулятор – регистр RАХ – занят) требуются дополнительные команды.
Исторически более широкое распространение получил вариант со специализированным адресным пространством ввода-вывода. Это объясняется, в основном, меньшими аппаратурными затратами для его реализации. 20 – 30 лет назад ограничения по затратам аппаратуры имели преобладающее влияние. Стремление уменьшить длину команды, уменьшить затраты на контроллер интерфейса в периферийном устройстве, особенно для относительно простых периферийных устройств, и обусловили широкое распространение такого варианта.
Вариант единого адресного пространства для оперативной памяти и периферийных устройств использовался в некоторых компьютерах, преимущественно в тех, где для связи с оперативной памятью и периферийными устройствами использовалась системная магистраль.
В связи с успехами в развитии микроэлектроники в 90-е годы 20-го века ограничения на аппаратурные затраты для реализации контроллеров интерфейсов (и контроллеров периферийных устройств в целом) перестали играть существенную роль. На первый план при разработке подсистем ввода-вывода, контроллеров интерфейсов, контроллеров периферийных устройств выдвинулись преимущества единого адресного пространства. Особенно отчетливо эти преимущества проявились при внедрении интерфейса PCI и последующих интерфейсов. Поэтому в современных подсистемах ввода-вывода преобладающее влияние получило использование для адресации периферийных устройств единого с оперативной памятью адресного пространства.
