Развитие параллельного и последовательного интерфейсов
Начиная с середины 80-х XX века было очевидно, что последовательный (RS-232С) и параллельный (Centronics) порты не обеспечивают достаточной скорости для подключения периферии, за исключением простейших устройств типа мыши, принтера и прочих не чувствительных к полосе пропускания устройств. Развитие параллельного интерфейса привело к принятию стандарта IEEE-1284 (ECP/EPP).
Усовершенствованный параллельный порт (EPP-Enhanced Parallel Port) разработан в 1991 году. Этот быстродействующий двунаправленный порт имеет пропускную способность в десять раз выше, чем стандартный параллельный порт. Разработан специально для подключения к параллельному порту таких устройств, как сетевые адаптеры, дисководы и накопители на магнитных лентах. Скорость передачи данных 1 – 2 Мбайт/с.
Порт с расширенными возможностями (ECP-Enhanced Capabilities Port) разработан в 1992 году. Порт обладает повышенной производительностью, как и EPP. Основная цель разработки этого порта – поддержка недорогого подключения к компьютеру высокоскоростных принтеров, а не широкого спектра устройств, как в случае EPP порта. Существенным отличием ECP от EPP является использование канала прямого доступа к памяти. Это может вызывать конфликты с другим оборудованием, которое тоже использует DMA.
В современных компьютерах используются микросхемы для параллельных портов, которые могут работать как в режиме EPP, так и ECP.
Дальнейшее развитие параллельного интерфейса привело к появлению спецификации периферийной шины USB (Universal Serial Bus). Она разработана для подключения компьютерной периферии вне корпуса машины по стандарту plug-and-play, в результате отпадает необходимость в установке дополнительных плат в слоты расширения и в переконфигурировании системы. Персональные компьютеры, имеющие шину USB, позволяют подключать периферийные устройства и осуществляют их автоматическое конфигурирование, как только устройство физически будет присоединено к машине. При этом нет необходимости перезагружать или выключать компьютер, а также запускать программы установки и конфигурирования. USB-кабель содержит четыре проводника: два – витая пара, питание 5 В и общий провод. Таким образом, устройства разделяют одну сигнальную линию. Для коррекции одиночных ошибок на линии используется циклический код CRC. Помимо общего канала шириной в 12 Мбит/с в USB имеется так называемый подканал шириной в 1,5 Мбит/с для медленных устройств, таких как клавиатура, мышь, джойстик, перо и т.д. Это позволяет снизить стоимость медленных USB-портов в этих устройствах, поскольку более высокая скорость для них не нужна. Шина USB позволяет одновременно подключать последовательно до 127 устройств, или концентраторов (т.е. устройств, через которые подключается еще несколько). Этими устройствами могут быть: телефоны, модемы, клавиатуры, мыши, устройства чтения CD-ROM, джойстики, ленточные и дисковые накопители, сканеры и принтеры. USB версии 2.0 обладает пропускной способностью до 480 Мбит/с.
Поддержка USB впервые была встроена в операционную систему в конце 1996 года (операционная система Windows 95 OSR 2.1). Включение поддержки USB в состав аппаратного обеспечения и операционной системы при режиме максимального благоприятствования производителям привело к огромному росту количества USB-устройств на рынке.
4.5. ПДП – прямой доступ к памяти
В системах ввода-вывода ЭВМ используется два основных способа организации передачи данных между памятью и периферийными устройствами: программно-управляемая передача и прямой доступ к памяти.
Программно-управляемая передача данных осуществляется при непосредственном участии и под управлением процессора, который при этом выполняет специальную подпрограмму процедуры ввода-вывода. Данные между памятью и периферийным устройством пересылаются через процессор. Операция ввода-вывода инициируется текущей командой программы или запросом прерывания от периферийного устройства. При этом процессор на все время выполнения операции ввода-вывода отвлекается от выполнения основной программы.
Кроме того, при пересылке блока данных процессору приходится для каждой единицы передаваемых данных выполнять несколько команд, чтобы обеспечить буферизацию, преобразование форматов данных, подсчет количества переданных данных, формирование адресов в памяти и т.п. Это сильно снижает скорость передачи данных (не выше 100 Кб/сек), что недопустимо при работе с высокоскоростными ПУ.
Между тем, потенциально возможная скорость обмена данными при вводе-выводе определяется пропускной способностью памяти. Для быстрого ввода-вывода блоков данных используется прямой доступ к памяти (DMA – Direct Memory Access).
Прямой доступ к памяти (ПДП) – система для быстрой передачи данных между памятью и периферийным устройством, минуя процессор.
При этом МП освобождается от участия в обмене данными. ОЗУ связывается с МП и с аппаратурой, руководящей обменом данных, разными шинами. Обмен данными полностью управляется с помощью аппаратных средств. Инициатором обмена данными является ПУ, которое посылает запрос об обмене данными на флажок запроса ПДП. Флажок запроса активизирует блок ПДП. Блок ПДП посылает в память сигнал чтения или записи и определяет ячейку ОЗУ, с которой начнется обмен данными. Блок ПДП посылает эти сигналы, после того, как получит от МП сигнал подтверждения. Регистр данных передает данные из ОЗУ в ПУ и из ПУ в ОЗУ. При ПДП процессор освобождается от управления операциями ввода - вывода и может параллельно выполнять основную программу. ПДП обеспечивает более высокое быстродействие и более высокую производительность работы ЭВМ.
Прямым доступом к памяти управляет контроллер ПДП, который выполняет следующие функции:
1. Управление инициируемой процессором или ПУ передачей данных между ОП и ПУ.
2. Задание размера блока данных, который подлежит передаче, и области памяти, используемой при передаче.
3. Формирование адресов ячеек ОП, участвующих в передаче.
4. Подсчет числа переданных единиц данных (байт или слов) и определение момента завершения операции ввода-вывода.
Указанные функции реализуются контроллером ПДП с помощью одного или нескольких буферных регистров, регистра – счетчика текущего адреса данных и регистра – счетчика подлежащих передаче данных.
При инициировании операции ввода-вывода в счетчик подлежащих передаче данных заносится размер передаваемого блока (число байт или слов), а в счетчик текущего адреса - начальный адрес области памяти, используемой при передаче. При передаче каждого байта содержимое счетчика адреса увеличивается на 1, при этом формируется адрес очередной ячейки памяти, участвующей в передаче. Одновременно уменьшается на 1 содержимое счетчика подлежащих передаче данных; обнуление этого счетчика указывает на завершение передачи.
В компьютерах, совместимых с IBM PC и PC/XT, для организации прямого доступа в память используется одна 4-канальная микросхема 8237, канал 0 которой предназначен для регенерации динамической памяти. Каналы 2 и 3 предназначены для управления высокоскоростной передачей данных между дисководами гибких дисков, винчестером и оперативной памятью соответственно. Только канал 1 доступен для дополнительного оборудования.
IBM РС/АТ – совместимые компьютеры имеют уже 7 каналов прямого доступа к памяти. В первых компьютерах это достигалось каскадным включением двух микросхем 8237, как и в случае контроллеров прерываний. Поскольку прямой обмен данными между оперативной памятью и периферийными устройствами в IBM PC-совместимых компьютерах имеет некоторые существенные ограничения (в том числе и по скорости), то в PC/AT задействован только канал 2 – для обмена с приводом флоппи-диска. Заметим, что для первых четырех каналов ПДП (0–3) передача данных осуществляется побайтно, а для каналов 5–7 – 16-разрядными словами.
Контроллер ПДП обычно имеет более высокий приоритет в занятии цикла обращения к памяти по сравнению с процессором. Управление памятью переходит к контроллеру ПДП, как только завершается цикл обращения к памяти для текущей команды процессора.
Прямой доступ к памяти обеспечивает высокую скорость обмена данными за счет того, что управление обменом производится не программными, а аппаратными средствами.
Организация прерываний
Механизм прерываний