конспект лекций. Конспект лекций по МДК 02.02 Установка и конфигурирование перифе. 3 содержание тема ведение 5
Скачать 4.73 Mb.
|
Тема 3. АППАРАТНЫЕ СРЕДСТВА СИСТЕМЫ ВВОДА-ВЫВОДА ИНФОРМАЦИИ В АРХИТЕКТУРЕ МИКРО ЭВМ. 3.1 Система ввода – вывода информации. Типы интерфейсов, типы шин, контролеры адаптеры, мосты. Интерфейс ввода-вывода - это понятие, которое включает логическую и аппаратную часть. В качестве физической части выступают линии связи и электроника, обслуживающая эти линии (усилители, формирователи, коммутаторы и т.п.). Логическая часть интерфейса определяет набор правил обмена сигналами между устройствами, работающими в этом интерфейсе. Набор этих правил в некоторых случаях называются протоколом. Интерфейс - это связь устройств автоматизированных систем друг с другом осуществляется с помощью средств сопряжения. Все интерфейсы можно разделить на внутренние и внешние: Внутренние интерфейсы 45 Стандарт Типичное применение Пиковая пропускная способность Примечания ISA Звуковые карты, модемы 2Мбит/сдо8,ЗЗМбит/с Практически не используется начиная с 1999 г. EISA Сети, адаптеры SCSI 33 Мбит/с Практически не используется, замещается PCI PCI Графические карты, адаптеры SCSI, звуковые карты новых поколений 133 Мбит/с (32- битовая шина с частотой 33 МГц) Стандарт для периферийных устройств PCI-X 1 Гбит/с (64-битовая шина с частотой 133 МГц) Расширение PCI , предложенное IB M, HP, Compaq. Увеличена скорость и количество устройств PCI Express До 16 Гбит/с Разработка "интерфейса 3-го поколения" ( Third generation Input/Output - 3GIO ), заменяет AGP. Последовательная шина AGP Графические карты 528 Мбит/с, 2х- графика (2х- графические карты) Стандарт для Intel- PC начиная с Pentium II, сосуществует с PCI AGP PRO ЗD -графика 800 Мбит/с (4х- графика) Поддерживает видеокарты, потребляющие мощность до 100BT( AGP- flo25BT ) Внешние интерфейсы 46 Для интерфейса, соединяющего (физически или логически) два устройства, различают три возможных режима обмена - дуплексный, полудуплексный и симплексный. Режимы обмена информации Дуплексный режим позволяет по одному каналу связи одновременно передавать информацию в обоих направлениях. Он может быть асимметричным, если пропускная способность в противоположных направлениях имеет существенно различающиеся значения, или симметричным. Полудуплексный режим позволяет передавать информацию в противоположных направлениях поочередно, при этом интерфейс имеет средства переключения направления канала. Симплексный (односторонний) режим предусматривает только одно направление передачи информации (во встречном направлении передаются только вспомогательные сигналы интерфейса). Параллельный интерфейс IEEE 1284 (параллельный порт, LPT) - международный стандарт параллельного интерфейса для подключения периферийных устройств персонального компьютера. В основном используется для подключения к компьютеру принтера, сканера и других внешних устройств (часто использовался для подключения внешних устройств хранения данных), однако может применяться и для других целей, например для организации связи между двумя компьютерами и т.д.. В основе данного стандарта лежит интерфейс Centronics и его расширенные версии ( ECP, EPP ). 47 Интерфейс Centronics и стандарт IEEE 1284 Параллельный порт Centronics - порт, используемый с 1981 года в персональных компьютерах фирмы IBM для подключения печатающих устройств, разработан фирмой Centronics Data Computer Corporation. Изначально этот порт был разработан только для симплексной (однонаправленной) передачи данных, так как предполагалось, что порт Centronics должен использоваться только для работы с принтером. Впоследствии разными фирмами были разработаны дуплексные расширения интерфейса ( byte mode, EPP, ECP ). Затем был принят международный стандарт IEEE 1284, описывающий как базовый интерфейс Centronics, так и все его расширения. Разъeмы Порт на стороне управляющего устройства (компьютера) имеет 25- контактный 2-рядный разъeм DB-25-female (IEEE 1284-A) . На периферийных устройствах обычно используется 36-контактный разъeм Centronics (IEEE 1284-B) , поэтому кабели для подключения периферийных устройств к компьютеру по параллельному порту обычно выполняются с 25-контактным разъeмом DB-25-male на одной стороне и 36-контактным IEEE 1284-B на другой (AB-кабель). Изредка применяется AC-кабель с 36-контактным разъемом MiniCentronics (IEEE 1284-C) . Длина соединительного кабеля не должна превышать 3 метров. Конструкция кабеля: витые пары в общем экране, либо витые пары в индивидуальных экранах. Физический интерфейс Базовый интерфейс Centronics является однонаправленным параллельным интерфейсом, содержит характерные для такого интерфейса сигнальные линии 8 для передачи данных, строб, линии состояния устройства). Данные передаются в 48 одну сторону: от компьютера к внешнему устройству. Но полностью однонаправленным его назвать нельзя. Так, 4 обратные линии используются для контроля за состоянием устройства. Centronics позволяет подключать одно устройство, поэтому для совместного очерeдного использования нескольких устройств требуется дополнительно применять селектор. Скорость передачи данных может варьироваться и достигать 1,2 Мбит/с. Режимы работы Стандарт IEEE-1284 включает в себя следующие документы: IEEE 1284-1994: Standard Signaling Method for a Bi-directional Parallel Peripheral Interface for Personal Computers - двунаправленная передача данных IEEE 1284.1-1997: Transport Independent Printer/System Interface- a protocol for returning printer configuration and status - стандартизованный метод получения информации о состоянии принтера IEEE 1284.2: Standard for Test, Measurement and Conformance to IEEE 1284 (not approved) -тестирование на соответствие стандарту (так и не был принят) IEEE 1284.3-2000: Interface and Protocol Extensions to IEEE 1284- Compliant Peripherals and Host Adapters- a protocol to allow sharing of the parallel port by multiple peripherals (daisy chaining) - протокол и схема к одному порту многих устройств, объединeнных в "цепочку" (позволяет выбрать нужное устройство и работать с ним). IEEE 1284.4-2000: Data Delivery and Logical Channels for IEEE 1284 Interfaces- allows a device to carry on multiple, concurrent exchanges of data - протокол одновременной передачи информации многим устройствам (позволяет работать одновременно с несколькими устройствами в цепочке). В настоящее время стандарт IEEE-1284 не развивается. Последовательный интерфейс Последовательный порт или COM-порт (произносится "ком-порт", от англ. COMmunication port ) - двунаправленный последовательный интерфейс, предназначенный для обмена байтовой информацией. Последовательный потому, что информация через него передаeтся по одному биту, бит за битом (в отличие от 49 параллельного порта). Наиболее часто для последовательного порта персональных компьютеров используется стандарт RS-232C. Ранее последовательный порт использовался для подключения терминала, позже для сканера, модема или мыши. Сейчас он используется для соединения с источниками бесперебойного питания, для связи с аппаратными средствами разработки встраиваемых вычислительных систем. Варианты разъeма COM-порта типа DB-9F наиболее часто используются Д-образные разъeмы: 9- и 25-контактные, (DB-9 и DB-25 соответственно). Раньше использовались также DB-31 и круглые восьмиконтактные DIN-8. Максимальная скорость передачи обычно составляет 115 200 бит/с. Стандарт на него был разработан в 1969 году. Универсальный асинхронный приeмопередатчик ( УАПП, UART, Universal Asynchronous Receiver/Transmitter ) - вид приeмопередатчика, устройства, которое переводит данные из последовательной в параллельную форму (и обратно). UART представляет собой отдельное устройство или является частью интегральной схемы, используется для передачи данных через последовательный порт компьютера или периферийного устройства. UART часто встраивают в микроконтроллеры. Протокол RS-232 (англ. Recommended Standard 232) -стандарт последовательной синхронной и асинхронной передачи двоичных данных между терминалом (англ. Data Terminal Equipment, DTE ) и конечным устройством (англ. Data Communications Equipment, DCE ). RS-232 - интерфейс передачи информации между двумя устройствами на расстоянии до 15 м. Информация передается по проводам с уровнями сигналов, отличающимися от стандартных 5В, для обеспечения большей устойчивости к помехам. Асинхронная передача данных осуществляется с установленной скоростью при синхронизации уровнем сигнала стартового импульса. По структуре это обычный асинхронный последовательный протокол, то есть передающая сторона по очереди выдает в линию 0 и 1, а принимающая отслеживает их и запоминает. Данные передаются пакетами по одному байту (8 бит). Вначале передаeтся стартовый бит, противоположной полярности состоянию 50 незанята ( idle ) линии, после чего передаeтся непосредственно полезная информация, от 5 до 8-ми бит. Увидев стартовый бит, приемник выжидает интервал T1 и считывает первый бит, потом через интервалы T2 считывает остальные информационные биты. Последний бит - стоповый бит, говорящий о том, что передача завершена. В конце байта, перед стоп битом, может передаваться бит четности ( parity bit ) CRC (для контроля качества передачи). На практике, в зависимости от качества применяемого кабеля, требуемое расстояние передачи данных в 15 метров может не достигаться, составляя, к примеру, порядка 1,5 м на скорости 115200 бод для неэкранированного плоского или круглого кабеля. Для преодоления этого ограничения, а также возможного получения гальванической развязки между узлами, можно применить преобразователи RS-232-RS-422 (с сохранением полной программной совместимости) или RS-232-RS-485 (с определeнными программными ограничениями). При этом расстояние может быть увеличено до 1 км на скорости 921600 бод и использовании кабеля типа "витая пара" категории 3. P - Контрольный бит - этот бит используется для правильной передачи данных. SP-используются о окончании передачи данных. Используемые биты P, SP, ST задают формат передачи данных уровня RS232C. UART - это микросхема используемая как универсальный асинхронный приемодатчик. Соединение DTE (Data terminal equipment) - компьютер DCE (Data communication equipment) - периферийные устройства а) DTE-DCE б) DTE-DTE 51 Состояние устройства линия BUSY (занятость) сигнализирует компьютеру о том, что принтер занят; линия SELECT (выбор) показывает, что принтер выбран (т. е. режим online); линия FDXT - автоматический перевод строки; линия Error (ошибки) - принтер сообщает об ошибке (например, кончилась бумага); линия Ink - компьютер переводит принтер в то состояние, в котором он находился после включения питания (т. е. начальное состояние); линия Slctin - по этой линии компьютеру сообщается, готов ли принтер принимать данные - при низком уровне сигнала принтер готов принимать данные, при высоком - нет. USB USB (англ. Universal Serial Bus) - универсальная последовательная шина, предназначенная для подключения периферийных устройств. Шина USB представляет собой последовательный интерфейс передачи данных для среднескоростных и низкоскоростных периферийных устройств. Для подключения периферийных устройств к шине USB используется четырeхпроводный кабель, при этом два провода в дифференциальном включении используются для приeма и передачи данных, а два провода - для питания периферийного устройства. Благодаря встроенным линиям 52 питания, USB позволяет подключать периферийные устройства без собственного источника питания (максимальная сила тока, потребляемого устройством по линиям питания шины USB, не должна превышать 500 мА). К одному контроллеру шины USB можно подсоединить до 127 устройств через цепочку концентраторов (они используют топологию "звезда"). USB 1.0 Спецификация выпущена в ноябре 1995 года. Технические характеристики: два режима передачи данных: o режим с высокой пропускной способностью ( Full-Speed ) - 12 Мбит/с o режим с низкой пропускной способностью ( Low-Speed ) - 1,5 Мбит/с максимальная длина кабеля для режима с высокой пропускной способностью - 3м максимальная длина кабеля для режима с низкой пропускной способностью - 5 м максимальное количество подключeнных устройств (включая размножители) - 127 напряжение питания для периферийных устройств - 5 В максимальный ток, потребляемый периферийным устройством - 500 мA USB 1.1 Спецификация выпущена в сентябре 1998 года. Исправлены проблемы и ошибки, обнаруженные в версии 1.0. 53 USB 2.0 Спецификация выпущена в апреле 2000 года. Для устройств USB 2.0 регламентировано три режима работы: 1. Low-speed, 10-1500 Кбит/c (используется для интерактивных устройств: клавиатуры, мыши, джойстики) 2. Full-speed, 0,5-12 Мбит/с (аудио-, видеоустройства) 3. Hi-speed, 25-480 Мбит/с (видеоустройства, устройства хранения информации) USB OTG USB OTG (аббр. от On-The-Go) - дальнейшее расширение спецификации USB 2.0, предназначенное для лeгкого соединения периферийных USB-устройств друг с другом без необходимости подключения к ПК. Например, цифровой фотоаппарат можно подключать к фотопринтеру напрямую, если они оба поддерживают стандарт USB OTG USB wireless - технология USB (официальная спецификация доступна с мая 2005 года). Позволяет организовать беспроводную связь с высокой скоростью передачи информации (до 480 Мбит/с на расстоянии 3 метра и до 110 Мбит/с на расстоянии 10 метров). USB 3.0 Финальная спецификация USB 3.0 появилась в 2008 году. Спецификации USB 3.0 разъeмы и кабели обновлeнного стандарта будут физически и функционально совместимы с USB 2.0. Кабель USB 2.0 содержит в себе четыре линии - пару для приeма/передачи данных, одну - для питания и ещe одну - для заземления. В дополнение к ним USB 3.0 добавляет пять новых линий (в результате чего кабель стал гораздо толще), однако новые контакты расположены параллельно по отношению к старым на другом контактном ряду. Скорость передачи информации до 4,8 Гбит/с - что на порядок больше 480 Мбит/с, которые может обеспечить USB 2.0. USB 3.0 может похвастаться не только более высокой скоростью передачи информации, но и увеличенной силой тока с 500 мА до 900 мА. 54 Кабели и разъeмы USB 1.0 и 2.0 USB Тип A - 4x12 мм,USB Тип B - 7x8 мм, USB mini A - 2x7 мм, USB mini B - 2x7 мм. Сигналы USB передаются по двум проводам четырeхпроводного кабеля Здесь GND - цепь "корпуса" для питания периферийных устройств, VBus - +5 В, Номер контакта Обозна чение Цвет провода 1 V BUS красный 2 D- белый 3 D+ зелeный 55 4 GND чeрный Недостатки USB Хотя пиковая пропускная способность USB 2.0 составляет 480 Мбит/с (60 Мбайт/с), на практике обеспечить пропускную способность, близкую к пиковой, не удаeтся. Это объясняется достаточно большими задержками шины USB между запросом на передачу данных и собственно началом передачи. Например, шина FireWire хотя и обладает меньшей пиковой пропускной способностью 400 Мбит/с, что на 80 Мбит/с меньше, чем у USB 2.0, в реальности позволяет обеспечить большую пропускную способность для обмена данными с жeсткими дисками и другими устройствами хранения информации. 3.2. Реализация запросов на захват или передачи данных с помощью контроллера прерываний. Понятие протокола обмена информацией по прерыванию Система прерываний - это совокупность программных и аппаратных средств, реализующих механизм прерываний. К аппаратным средствам системы прерываний относятся: выводы микропроцессора - на них формируются сигналы, извещающие микропроцессор либо о том, что некоторое внешнее устройство «просит уделить ему внимание» (INTR), либо о том, что требуется безотлагательная обработка некоторого события или катастрофическая ошибка (NMI) INTR - вывод для входного сигнала запроса на прерывание, NMI - вывод для входного сигнала немаскируемого прерывания INTA - вывод для выходного сигнала подтверждения получения сигнала прерывания микропроцессором (этот сигнал поступает на одноименный вход микросхемы контроллера 8259А; программируемый контроллер прерываний 8259А (предназначен для фиксирования сигналов прерываний от восьми различных внешних устройств; он выполнен в виде микросхемы; обычно используют две последовательно соединенные микросхемы, поэтому кол-во возможных источников внешних 56 прерываний до 15 плюс одно немаскируемое прерываний; именно он формирует номер вектора прерывания и выдает его шину данных); внешние устройства (таймер, клавиатура, магнитные диски и т.п.) Обработка прерываний Прерывание вызывает ряд событий, которые происходят как в аппаратном, так и в программном обеспечении. На рис. 1 показана типичная последовательность этих событий. После завершения работы устройства ввода-вывода происходит следующее: Устройство посылает процессору сигнал прерывания. Перед тем как ответить на прерывание, процессор должен завершить исполнение текущей команды (см. рис. 1). Процессор производит проверку наличия прерывания, обнаруживает его и посылает устройству, приславшему это прерывание, уведомляющий сигнал об успешном приеме. Этот сигнал позволяет устройству снять свой сигнал прерывания. Рисунок 1. Временная диаграмма программы: медленный ввод-вывод Теперь процессору нужно подготовиться к передаче управления обработчику прерываний. Сначала необходимо сохранить всю важную информацию, чтобы в дальнейшем можно было вернуться к тому месту текущей программы, где она была приостановлена. Минимальная требуемая информация — это слово состояния программы и адрес очередной выполняемой команды, который 57 находится в программном счетчике. Эти данные заносятся в системный управляющий стек. Рисунок 2. Обработка простого прерывания Далее в программный счетчик процессора загружается адрес входа программы обработки прерываний, которая отвечает за обработку данного прерывания. В зависимости от архитектуры компьютера и устройства операционной системы может существовать как одна программа для обработки всех прерываний, так может быть и своя программа обработки для каждого устройства и каждого типа прерываний. Если для обработки прерываний имеется несколько программ, то процессор должен определить, к какой из них следует обратиться. Эта информация может содержаться в первоначальном сигнале прерывания; в противном случае для получения необходимой информации процессор должен по очереди опросить все устройства, чтобы определить, какое из них отправило прерывание. Как только в программный счетчик загружается новое значение, процессор переходит к следующему циклу команды, приступая к ее извлечению из памяти. Так как команда извлекается из ячейки, номер которой задается содержимым программного счетчика, управление переходит к программе обработки прерываний. Исполнение этой программы влечет за собой следующие операции. Содержимое программного счетчика и слово состояния прерываемой программы уже хранятся в системном стеке. Однако это еще не вся информация, имеющая отношение к состоянию исполняемой программы. Например, нужно 58 сохранить содержимое регистров процессора, так как эти регистры могут понадобиться обработчику прерываний. Поэтому необходимо сохранить всю информацию о состоянии программы. Обычно обработчик прерываний начинает свою работу с записи в стек содержимого всех регистров. Другая информация, которая должна быть сохранена, обсуждается в главе 3, "Описание процессов и управление ими". На рис. показан простой пример, в котором программа пользователя прерывается после выполнения команды из ячейки N. Содержимое всех регистров, а также адрес следующей команды (N+1), в сумме составляющие М слов, заносятся в стек. Указатель стека при этом обновляется, указывая на новую вершину стека. Обновляется и программный счетчик, указывая на начало программы обработки прерывания. Теперь обработчик прерываний может начать свою работу. В процесс обработки прерывания входит проверка информации состояния, имеющая отношение к операциям ввода-вывода или другим событиям, вызвавшим прерывание. Сюда может также входить пересылка устройствам ввода-вывода дополнительных инструкций или уведомляющих сообщений. После завершения обработки прерываний из стека извлекаются сохраненные ранее значения, которые вновь заносятся в регистры, возобновляя таким образом то состояние, в котором они пребывали до прерывания. Последний этап — восстановление из стека слова состояния программы и содержимого программного счетчика. В результате следующей будет выполняться команда прерванной программы. Из-за того, что прерывание не является подпрограммой, вызываемой из программы, для полного восстановления важно сохранить всю информацию состояния прерываемой программы. Однако прерывание может произойти в любой момент и в любом месте программы пользователя. Это событие непредсказуемо [2]. Контроллер прерываний Контроллер прерываний предназначен для обработки и арбитража поступающих запросов на обслуживание к центральному процессору от переферийных устройств. По аналогии функции контроллера прерываний можно 59 сравнить с секретарѐм какого–нибудь начальника. Секретарь должен решить, кого из посетителей допустить к боссу в первую очередь, а кого и потом, исходя из приоритетов, отдаваемых боссом и статуса самого посетителя. Так и в компьютерной системе, возможна такая ситуация, когда несколько переферийных устройств послали сигнал прерывания или запрос на прерывание. В компьютерной литературе этот сигнал обозначается IRQ (Interrupt Request). Как уже выше говорилось, прерывания имеют определѐнный приоритет, который позволяет контроллеры прерываний отдавать предпочтение в данный момент времени одному устройству, а не другому. В современном компьютере существует до 16 внешних и периферийных устройств, генерирующие прерывания. Вот эти устройства: –IRQ 0, системный таймер; –IRQ 1, клавиатура; –IRQ 2, исползуется для запросов устройств, подключенных каскадом; –IRQ 8, часы реального времени; –IRQ 9, зарезервировано; –IRQ 10, зарезервировано; –IRQ 11, зарезервировано; –IRQ 12, ps/2–мышь; –IRQ 13, сопроцессор; –IRQ 14, контроллер «жѐсткого» диска; –IRQ 15, зарезервировано; –IRQ 3, порты COM2,COM4; –IRQ 4, порты COM1,COM3; – IRQ 5, порт LPT2; –IRQ 6, контроллер дисковода; –IRQ 7, порт LPT1,принтер. Здесь сигналы приведены в порядке убывания приоритетов. Можно заметить, что после IRQ 2, следует IRQ 8. Дело в том, что в своѐ время контроллер прерываний состоял из двух микросхем, одна была подключена к другой. Вот эта вторая микросхема и подключается к линии IRQ 2, образуя каскад. Она обслуживает линии IRQ8–IRQ 15. А затем следуют линии первой микросхемы [3]. Работа контроллера прерывания Работа контроллеов прерываний рассматривается на основе микросхем фирмы Intel 8259A, которые применялись в теперь уже очень старых компьютерах с процессорами до 386 серии. В этих компьютерах обычно было 2 микросхемы 8259A, подключенных каскадно, то–есть одна к другой. Одна из микросхем, подключенная по линии запроса на прерывание непосредственно к процессору является ведущей или мастером. Остальные,подключаются к ведущей через аналогичные выводы, называются ведомыми. 60 Рисунок 3. Схема подключения контроллеров прерываний и их взаимодействие с центральным процессором На рисунке 3 изображена схема подключения контроллеров прерываний и их взаимодействие с центральным процессором. Сигналы на прерывание от переферийных устройств или ведомых контроллеров поступают на входы IR0–IR7 ведущего контроллера. Внутренняя логика ведущего контроллера обрабатывает поступившие запросы с точки зрения приоритета. Если приоритет запроса устройства достаточен, то на выходе INT контроллера вырабатывается сигнал, поступающий на вход INTR процессора. В противном случае, запрос блокируется. Если процессор разрешает прерывания, то после завершения выполнения текущей команды, он вырабатывает по линии INTA последовательность сигналов, которая переводит ведомый контроллер в состояние невосприимчивости к поступающим новым запросам на прерывание, а кроме того, на линию данных выводится информация из внутренних регистров контроллера по которой процессор распознаѐт тип прерывания. Разрешение на прерывание процессор передаѐт контроллеру прерываний через контроллер шины. Сигнал RD предназначен для того, чтобы контроллер прерываний поместил на шину данных содержимое внутренних регистров. По сигналу WR контроллер прерываний, наоборот, принимает данные с одноимѐнной шины и записывает их во внутренние регистры. Соответственно, это влияет на режим работы контроллера прерываний. 61 Вход CS подключается к шине адреса и по этому сигналу происходит идентификация конкретного контролллера прерываний. Вход A0 указывает на порт контроллера прерываний в пространстве ввода–вывода. Входы IR0–IR7 предназначены для приѐма запросов на прерывание от переферийных устройств и ведомых контроллеров. 3.3 Протокол обмена информацией по прерыванию. Прямой доступ к памяти. BIOS. Модернизация BIOS. Практически любая развитая микропроцессорная система (в том числе и компьютер) поддерживает три основных режима обмена по магистрали: · программный обмен информацией; · обмен с использованием прерываний (Interrupts); · обмен с использованием прямого доступа к памяти (ПДП, DMA — Direct Memory Access). Программный обмен информациейявляется основным в любой микропроцессорной системе. Он предусмотрен всегда, без него невозможны другие режимы обмена. В этом режиме процессор является единоличным хозяином (или задатчиком, Master) системной магистрали. Все операции (циклы) обмена информацией в данном случае инициируются только процессором, все они выполняются строго в порядке, предписанном исполняемой программой. Процессор читает (выбирает) из памяти коды команд и исполняет их, читая данные из памяти или из устройства ввода/вывода, обрабатывая их, записывая данные в память или передавая их в устройство ввода/вывода. Путь процессора по программе может быть линейным, циклическим, может содержать переходы (прыжки), но он всегда непрерывен и полностью находится под контролем процессора. Ни на какие внешние события, не связанные с программой, процессор не реагирует (рис. 1.). Все сигналы на магистрали в данном случае контролируются процессором. 62 Рис. 1.Программный обмен информацией. Обмен по прерываниямиспользуется тогда, когда необходима реакция микропроцессорной системы на какое-то внешнее событие, на приход внешнего сигнала. В случае компьютера внешним событием может быть, например, нажатие на клавишу клавиатуры или приход по локальной сети пакета данных. Компьютер должен реагировать на это, соответственно, выводом символа на экран или же чтением и обработкой принятого по сети пакета. В общем случае организовать реакцию на внешнее событие можно тремя различными путями: · с помощью постоянного программного контроля факта наступления события (так называемый метод опроса флага или polling); · с помощью прерывания, то есть насильственного перевода процессора с выполнения текущей программы на выполнение экстренно необходимой программы; · с помощью прямого доступа к памяти, то есть без участия процессора при его отключении от системной магистрали. Проиллюстрировать эти три способа можно следующим простым примером. Допустим, вы готовите себе завтрак, поставив на плиту кипятиться молоко. Естественно, на закипание молока надо реагировать, причем срочно. Как это организовать? Первый путь — постоянно следить за молоком, но тогда вы ничего другого не сможете делать. Правильнее будет регулярно поглядывать на молоко, делая одновременно что-то другое. Это программный режим с опросом флага. Второй путь — установить на кастрюлю с молоком датчик, который подаст звуковой сигнал при закипании молока, и спокойно заниматься другими делами. Услышав сигнал, вы выключите молоко. Правда, возможно, вам придется сначала закончить то, что вы начали делать, так что ваша реакция будет медленнее, чем в 63 первом случае. Наконец, третий путь состоит в том, чтобы соединить датчик на кастрюле с управлением плитой так, чтобы при закипании молока горелка была выключена без вашего участия (правда, аналогия с ПДП здесь не очень точная, так как в данном случае на момент выполнения действия вас не отвлекают от работы). Первый случай с опросом флага реализуется в микропроцессорной системе постоянным чтением информации процессором из устройства ввода/вывода, связанного с тем внешним устройством, на поведение которого необходимо срочно реагировать. Во втором случае в режиме прерывания процессор, получив запрос прерывания от внешнего устройства (часто называемый IRQ — Interrupt ReQuest), заканчивает выполнение текущей команды и переходит к программе обработки прерывания. Закончив выполнение программы обработки прерывания, он возвращается к прерванной программе с той точки, где его прервали (рис. 2). Здесь важно то, что вся работа, как и в случае программного режима, осуществляется самим процессором, внешнее событие просто временно отвлекает его. Реакция на внешнее событие по прерыванию в общем случае медленнее, чем при программном режиме. Как и в случае программного обмена, здесь все сигналы на магистрали выставляются процессором, то есть он полностью контролирует магистраль. Для обслуживания прерываний в систему иногда вводится специальный модуль контроллера прерываний, но он в обмене информацией не участвует. Его задача состоит в том, чтобы упростить работу процессора с внешними запросами прерываний. Этот контроллер обычно программно управляется процессором по системной магистрали. Рис. 2.Обслуживание прерывания. 64 Естественно, никакого ускорения работы системы прерывание не дает. Его применение позволяет только отказаться от постоянного опроса флага внешнего события и временно, до наступления внешнего события, занять процессор выполнением каких-то других задач. Прямой доступ к памяти (ПДП, DMA)— это режим, принципиально отличающийся от двух ранее рассмотренных режимов тем, что обмен по системной шине идет без участия процессора. Внешнее устройство, требующее обслуживания, сигнализирует процессору, что режим ПДП необходим, в ответ на это процессор заканчивает выполнение текущей команды и отключается от всех шин, сигнализируя запросившему устройству, что обмен в режиме ПДП можно начинать. Операция ПДП сводится к пересылке информации из устройства ввода/ вывода в память или же из памяти в устройство ввода/вывода. Когда пересылка информации будет закончена, процессор вновь возвращается к прерванной программе, продолжая ее с той точки, где его прервали (рис. 3). Это похоже на режим обслуживания прерываний, но в данном случае процессор не участвует в обмене. Как и в случае прерываний, реакция на внешнее событие при ПДП существенно медленнее, чем при программном режиме. Рис. 3. Обслуживание ПДП. Понятно, что в этом случае требуется введение в систему дополнительного устройства (контроллера ПДП), которое будет осуществлять полноценный обмен по системной магистрали без всякого участия процессора. Причем процессор предварительно должен сообщить этому контроллеру ПДП, откуда ему следует брать информацию и/или куда ее следует помещать. Контроллер ПДП может 65 считаться специализированным процессором, который отличается тем, что сам не участвует в обмене, не принимает в себя информацию и не выдает ее (рис. 4). Рис. 4. Информационные потоки в режиме ПДП. В принципе контроллер ПДП может входить в состав устройства ввода/вывода, которому необходим режим ПДП или даже в состав нескольких устройств ввода/вывода. Теоретически обмен с помощью прямого доступа к памяти может обеспечить более высокую скорость передачи информации, чем программный обмен, так как процессор передает данные медленнее, чем специализированный контроллер ПДП. Однако на практике это преимущество реализуется далеко не всегда. Скорость обмена в режиме ПДП обычно ограничена возможностями магистрали. К тому же необходимость программного задания режимов контроллера ПДП может свести на нет выигрыш от более высокой скорости пересылки данных в режиме ПДП. Поэтому режим ПДП применяется редко. Если в системе уже имеется самостоятельный контроллер ПДП, то это может в ряде случаев существенно упростить аппаратуру устройств ввода/ вывода, работающих в режиме ПДП. В этом, пожалуй, состоит единственное бесспорное преимущество режима ПДП. |