19340

СИСТЕМА ВВОДА-ВЫВОДА

Лекция

Информатика, кибернетика и программирование

АК ЛЕКЦИЯ № 17 СИСТЕМА ВВОДАВЫВОДА Помимо центрального процессора ЦП и памяти третьим ключевым элементом архитектуры ВМ является система ввода/вывода СВВ. Система ввода/вывода призвана обеспечить обмен информацией между ядром ВМ и разнообразными внешними устройс...

Русский

2013-07-11

222.5 KB

21 чел.

АК ЛЕКЦИЯ № 17 СИСТЕМА ВВОДА-ВЫВОДА

Помимо центрального процессора (ЦП) и памяти, третьим ключевым элементом архитектуры ВМ является система ввода/вывода (СВВ). Система ввода/вывода призвана обеспечить обмен информацией между ядром ВМ и разнообразными внешними устройствами (ВУ). Технические и программные средства СВВ несут ответственность за физическое и логическое сопряжение ядра вычислительной машины и ВУ.

В процессе эволюции вычислительных машин системам ввода/вывода по сравнению с прочими элементами архитектуры уделялось несколько меньшее внимание. Косвенным, подтверждением этого можно считать, например, то, что многие программы контроля производительности (бенчмарки) вообще не учитывают влияние операций ввода/вывода (В/ВЫВ) на эффективность ВМ. Следствием подобного отношения стал существенный разрыв в производительности процессора и памяти, с одной стороны, и скоростью ввода/вывода — с другой.

Технически система ввода/вывода в рамках ВМ реализуется комплексом модулей ввода/вывода (МВВ). Модуль ввода/вывода выполняет сопряжение ВУ с ядром ВМ и различные коммуникационные операции между ними. Две основные функции МВВ:

- обеспечение интерфейса с ЦП и памятью ("большой" интерфейс), - обеспечение интерфейса с одним или несколькими периферийными устройствами ("малый" интерфейс).

Анализируя архитектуру известных ВМ, можно выделить три основных способа подключения СВВ к ядру процессора (рис. 8.1).

Рис. 8.1 Место системы ввода/вывода в архитектуре вычислительной машины: а — раздельными шинами памяти и ввода/вывода; б—с совместно используемыми линиями данных и адреса; в — подключение на общих правах с процессором и памятью

В варианте с раздельными шинами памяти и ввода/вывода (см. рис. 8.1, а) обмен информацией между ЦП и памятью физически отделен от ввода/вывода, поскольку обеспечивается полностью независимыми шинами. Это дает возможность осуществлять обращение к памяти одновременно с выполнением ввода/вывода.

Кроме того, данный архитектурный вариант ВМ позволяет специализировать каждую из шин, учесть формат пересылаемых данных, особенности синхронизации обмена и т. п. В частности, шина ввода/вывода, с учетом характеристик реальных ВУ, может иметь меньшую пропускную способность, что позволяет снизить затраты на ее реализацию. Недостатком решения можно считать большое количество точек подключения к ЦП.

Второй вариант — с совместно используемыми линиями данных и адреса (см. рис. 8.1, б). Память и СВВ имеют общие для них линии адреса и линии данных, разделяя их во времени. В то же время управление памятью и СВВ, а также синхронизация их взаимодействия с процессором осуществляются независимо по раздельным линиям управления. Это позволяет учесть особенности процедур обращения к памяти и к модулям ввода/вывода и добиться наибольшей эффективности доступа к ячейкам памяти и внешним устройствам.

Последний тип архитектуры ВМ предполагает подключение СВВ к системной шине на общих правах с процессором и памятью (см. рис. 8,1, в). Преимущества и недостатки такого подхода обсуждались при рассмотрении вопросов организации шин (глава 4). Потенциально возможен также вариант подключения внешних устройств к системной шине напрямую, без использования МВВ, но против него можно выдвинуть сразу несколько аргументов. Во-первых, в этом случае ЦП пришлось бы оснащать универсальными схемами для управления любым ВУ. При большом разнообразии внешних устройств, имеющих к тому же различные принципы действия, такие схемы оказываются чересчур сложными и избыточными. Во-вторых, пересылка данных при вводе и выводе происходит значительно медленнее, чем при обмене между ЦП и памятью, и было бы невыгодно задействовать для обмена информацией с ВУ высокоскоростную системную шину. И, наконец, в ВУ часто используются иные форматы данных и длина слова, чем в ВМ, к которым они подключены.

Адресное пространство системы ввода/вывода

Как и обращение к памяти, операции ввода/вывода также предполагают наличие некоторой системы адресации, позволяющей выбрать один из модулей СВВ, а также одно из подключенных к нему внешних устройств. Адрес модуля и ВУ является составной частью соответствующей команды, в то время как расположение данных на внешнем устройстве определяется пересылаемой на ВУ информацией.

Адресное пространство ввода/вывода может быть совмещено с адресным пространством памяти или быть выделенным.

При совмещении адресного пространства для адресации модулей ввода/вывода отводится определенная область адресов (рис. 8.2). Обычно все операции с модулем ввода/вывода осуществляются с использованием входящих в него внутренних регистров: управления, состояния, данных. Фактически процедура ввода/вывода сводится к записи информации в одни регистры МВВ и считыванию ее из других регистров. Это позволяет рассматривать регистры МВВ как ячейки основной памяти и работать с ними с помощью обычных команд обращения к памяти, при этом в системе команд ВМ вообще могут отсутствовать специальные команды ввода в вывода. Так, модификацию регистров МВВ можно производить непосредственно с помощью арифметических и логических команд. Адреса регистрам МВВ назначаются в области адресного пространства памяти, отведенной под систему ввода/вывода.

Рис. 8.2. Распределение совмещенного адресного пространства

Такой подход представляется вполне оправданным, если учесть, что ввод/вывод обычно составляет малую часть всех операций, выполняемых вычислительной машиной, чаще всего не более 1% от общего числа команд в программе.

Реализация концепции совмещенного адресного пространства в ВМ с кэш-памятью и виртуальной адресацией сопряжена с определенными проблемами. В частности, усложняется отображение виртуального адреса устройства ввода/вывода на физическое ВУ. Сложности также возникают и с кэшированием регистров МВВ.

Сформулируем преимущества и недостатки совмещенного адресного пространства.

Достоинства совмещенного адресного пространства:

- расширение набора команд для обращения к внешним устройствам, что позволяет сократить длину программы и повысить быстродействие;

- значительное увеличение количества подключаемых внешних устройств;

- возможность внепроцессорного обмена данными между внешними устройствами, если в системе команд есть команды пересылки между ячейками памяти;

-возможность обмена информацией не только с аккумулятором, но и с любым регистром центрального процессора.

Недостатки совмещенного адресного пространства:

- сокращение области адресного пространства памяти;

- усложнение декодирующих схем адресов в СВВ;

- трудности распознавания операций передачи информации при вводе/выводе среди других операций. Сложности в чтении и отладке программы, в которой простые команды вызывают выполнение сложных операций ввода/вывода;

- трудности при построении СВВ на простых модулях ввода/вывода: сигналы управления не смогут координировать сложную процедуру ввода/вывода. Поэтому МВБ часто должны генерировать дополнительные сигналы под управлением программы.

Совмещенное адресное пространство используется в вычислительных машинах MIPS и SPARC.

В случае выделенного адресного пространства для обращения к модулям ввода/вывода применяются специальные команды и отдельная система адресов. Это позволяет разделить шины для работы с памятью и шины ввода/вывода, что дает возможность совмещать во времени обмен с памятью и ввод/вывод. Кроме того, адресное пространство памяти может быть использовано по прямому назначению в полном объеме.

Достоинства выделенного адресного пространства:

- адрес внешнего устройства в команде ввода/вывода может быть коротким.

В большинстве СВВ количество внешних устройств намного меньше количества ячеек памяти. Короткий адрес ВУ подразумевает такие же короткие команды ввода/вывода и простые дешифраторы;

- программы становятся более наглядными, так как операции ввода/вывода выполняются с помощью специальных команд;

- разработка СВВ может проводиться отдельно от разработки памяти.

Недостатки выделенного адресного пространства:

- ввод/вывод производится только через аккумулятор центрального процессора. Для передачи информации от ВУ в РОН, если аккумулятор занят, требуется выполнение четырех команд (сохранение содержимого аккумулятора, ввод из ВУ, пересылка из аккумулятора в РОН, восстановление содержимого аккумулятора);

-перед обработкой содержимого ВУ это содержимое нужно переслать в ЦП.

Внешние устройства

Связь ВМ с внешним миром осуществляется с помощью самых разнообразных внешних устройств. Каждое ВУ подключается к МВВ посредством индивидуальной шины. Интерфейс, по которому организуется такое взаимодействие МВБ и ВУ, часто называют малым. Индивидуальная шина обеспечивает обмен данными и управляющими сигналами, а также информацией о состоянии участников обмена.

Внешнее устройство, подключенное к МВБ, обычно называют периферийным устройством (ПУ). Все множество ПУ можно свести к трем категориям:

- для общения с пользователем;

- для общения с ВМ;

- для связи с удаленными устройствами.

Примерами первой группы служат видеотерминалы и принтеры. Ко второй группе причисляются внешние запоминающие устройства (магнитные и оптические диски, магнитные ленты и т, п.), датчики и исполнительные механизмы. Отметим двойственную роль внешних ЗУ, которые, с одной стороны, представляют собой часть памяти ВМ, а с другой — являются внешними устройствами. Наконец, устройства третьей категории позволяют ВМ обмениваться информацией с удаленными объектами, которые могут относиться к двум первым группам. В роли удаленных объектов могут выступать также другие ВМ.

Рис. 8.3. Структура внешнего устройства

Обобщенная структура ВУ показана на рис. 8.3. Интерфейс с МВВ реализуется в виде сигналов управления, состояния и данных. Данные представлены совокупностью битов, которые должны быть переданы в модуль ввода/вывода или получены из него. Сигналы управления определяют функцию, которая должна быть выполнена внешним устройством. Это может быть стандартная для всех устройств функция — посылка данных в МВВ или получение данных из него, либо специфичная для данного типа ВУ функция, такая, например, как позиционирование головки магнитного диска или перемотка магнитной ленты. Сигналы состояния характеризуют текущее состояние устройства, в частности включено ли ВУ и готово ли оно к передаче данных.

Логика управления — это схемы, координирующие работу ВУ в соответствии с направлением передачи данных. Задачей преобразователя является трансформация информационных сигналов, имеющих самую различную физическую природу, в электрические сигналы, а также обратное преобразование. Обычно совместно с преобразователем используется буферная память, обеспечивающая временное хранение данных, пересылаемых между МВВ и ВУ.

Модули ввода/вывода Функции модуля

Модуль ввода/вывода в составе вычислительной машины отвечает за управление одним или несколькими ВУ и за обмен данными между этими устройствами с одной стороны, и основной памятью или регистрами ЦП — с другой. Основные функции МВБ можно сформулировать следующим образом:

- локализация данных;

- управление и синхронизация;

- обмен информацией;

- буферизация данных;

- обнаружение ошибок.

Локализация данных

Под локализацией данных будем понимать возможность обращения к одному из ВУ, а также адресации данных на нем.

Адрес ВУ обычно содержится в адресной части команд ввода/вывода. Как уже отмечалось, в состав СВВ могут входить несколько модулей ввода/вывода. Каждому модулю назначается определенный диапазон адресов, независимо от того, является ли пространство адресов совмещенным или раздельным. Старшие разряды в адресах диапазона, выделенного модулю, обычно одинаковы и обеспечивают выбор одного из МВБ в рамках системы ввода/вывода. Младшие разряды адреса представляют собой уникальные адреса регистров данного модуля или подключенных к нему ВУ.

Одной из функций МВВ является проверка вхождения поступившего по шине адреса в выделенный данному модулю диапазон адресов. При положительном ответе модуль должен обеспечить дешифровку поступившего адреса и перенаправление информации к адресуемому объекту или от него.

Для простейших внешних устройств (клавиатура, принтер и т. п.) адрес ВУ однозначно определяет и расположение данных на этом устройстве. Для более сложных ВУ, таких как внешние запоминающие устройства, информация о местонахождении данных требует детализации. Так, для ЗУ на магнитной ленте необходимо указать номер записи, а для магнитного диска — номер цилиндра, номер сектора и т. п. Эта часть адресной информации передается в МВВ не по шине адреса, а в виде служебных сообщений, пересылаемых по шине данных. Обработка такой информации в модуле, естественно, сложнее, чем выбор нужного регистра или ВУ. В частности, она может требовать от МВВ организации процедуры поиска на носителе информации.

Управление и синхронизация

Функция управления и синхронизации заключается в том, что МВВ должен координировать перемещение данных между внутренними ресурсами ВМ и внешними устройствами. При разработке системы управления и синхронизации модуля ввода/вывода необходимо учитывать целый ряд факторов.

Прежде всего, нужно принимать во внимание, что ЦП может взаимодействовать одновременно с несколькими ВУ, причем быстродействие подключаемых к МВБ внешних устройств варьируется в очень широких пределах — от нескольких байтов в секунду в терминалах до десятков миллионов байтов в секунду при обмене с магнитными дисками. Если в системе используются шины, каждое взаимодействие между ЦП и МВБ включает в себя одну или несколько процедур арбитража.

В отличие от обмена с памятью процессы ввода/вывода и работа ЦП протекают не синхронно. Очередная порция информация может быть выдана на устройство вывода лишь тогда, когда это устройство готово их принять. Аналогично, ввод от устройства ввода допустим только в случае доступности информации на устройстве ввода. Несинхронный характер процессов ввода/вывода предполагает обмен сигналами, аналогичный процедуре ォрукопожатияサ (handshake), которая будет рассматриваться в лекциях по внутренней организации памяти. Для двухпроводной системы синхронизации эта процедура состоит из четырех шагов, которые применительно к операции вывода можно описать следующим образом:

1. Центральный процессор с помощью сигнала ДД - 1 (данные достоверны) извещает устройство вывода о передаче данных.

2. Приняв данные, устройство вывода сообщает процессору об их получении сигналом ДП = 1 (данные приняты).

3. Получив подтверждение, ЦП обнуляет сигнал ДД и снимает данные с шины, после чего может выставить на шину новые данные.

4. Обнаружив, что ДД = 0, устройство вывода, в свою очередь, устанавливает в нулевое состояние сигнал ДП, после чего оно готово для обработки принятых данных все время до получения очередного сигнала ДД = 1.

Описанную процедуру иллюстрирует рис. 8.4 (в скобках указаны номера шагов).

Рис. 8.4. временная диаграмма процедуры ォрукопожатияサ

Таким образом, модуль ввода/вывода обязан снабдить центральный процессор информацией о собственной готовности к обмену, а также о готовности подключенных к модулю ВУ. Помимо этого, процессор должен обладать оперативными сведениями и об иных происходящих в СВВ событиях.

Обмен информацией

Основной функцией МВВ является обеспечение обмена информацией. Со стороны ォбольшогоサ интерфейса — это обмен с ЦП, а со стороны ォмалогоサ интерфейса — обмен с ВУ. В таком плане требования к МВВ непосредственно проистекают из типовой последовательности операций, выполняемых процессором при вводе/выводе:

1. Выбор требуемого внешнего устройства.

2. Определение состояния МВБ и ВУ.

3. Выдача указания модулю ввода/вывода на подключение нужного ВУ к процессору.

4. Получение от МВБ подтверждения о подключении затребованного ВУ к процессору.

5. Распознавание сигнала готовности устройства к передаче очередной порции информации.

6. Прием (передача) порции информации.

7. Циклическое повторение двух предшествующих пунктов до завершения передачи информации в полном объеме.

8. Логическое отсоединение ВУ от процессора.

С учетом описанной процедуры функция обмена информацией с ЦП включает в себя:

- дешифровку команды: МВБ получает команды из ЦП в виде сигналов на шине управления;

- пересылку данных между МВБ и ЦП по шине данных;

- извещение о состоянии: из-за того, что ВУ — медленные устройства, важно знать состояние модуля ввода/вывода. Так, в момент получения запроса на пересылку данных в центральный процессор МВБ может быть не готов выполнить эту пересылку, поскольку еще не завершил предыдущую команду. Этот факт должен быть сообщен процессору с помощью соответствующего сигнала. Возможны также сигналы, уведомляющие о возникших ошибках;

- распознавание адреса; МВБ обязан распознавать адрес каждого ВУ, которым он управляет.

Наряду с обеспечением обмена с процессором МВВ должен выполнять функцию обмена информацией с ВУ, Такой обмен также включает в себя передачу данных, команд и информации о состоянии.

Буферизация

Важной задачей модуля ввода/вывода является буферизация данных, необходимость которой иллюстрирует табл. 8.1.

Таблица 8.1. Примеры устройств ввода/вывода, упорядоченные по режиму работы, субъекту и скорости передачи данных

Несмотря на различия в скорости обмена информацией для разных ВУ, все они в этом плане значительно отстают от ЦП и памяти. Такое различие компенсируется за счет буферизации. При выводе информации на ВУ данные пересылаются из основной памяти в МВБ с большой скоростью. В модуле эти данные буферизируются и затем направляются в ВУ со скоростью, свойственной последнему. При вводе из ВУ данные буферизируются так, чтобы не заставлять память работать в режиме медленной передачи.

Обнаружение ошибок

Еще одной из важнейших функций МВВ является обнаружение ошибок, возникающих в процессе ввода/вывода. Центральный процессор следует оповещать о каждом случае обнаружения ошибки. Причинами возникновения последних бывают самые разнообразные факторы, которые в первом приближении можно свести к следующим группам:

- воздействие внешней среды;

- старение элементной базы;

- системное программное обеспечение;

- пользовательское программное обеспечение.

Из наиболее "активных", факторов окружения ВМ следует выделить:

- загрязнение и влагу;

- повышенную или пониженную температуру окружающей среды;

-электромагнитное облучение;

- скачки напряжения питания.

Степень влияния каждого из этих факторов зависит от типа и конструкции МВВ и ВУ, Так, к загрязнению наиболее чувствительны оптические и механические элементы ВУ, в то время как работа электронных компонентов СВВ в большей степени зависит от температуры внешней среды, электромагнитного воздействия и стабильности питающего напряжения.

Фактор старения характерен как для механических, так и для электронных элементов СВВ. В механических элементах он выражается в виде износа, следствием чего может быть неточное позиционирование головок считывания/записи на внешних запоминающих устройствах или неправильная подача бумаги в принтерах.

Старение электронных элементов обычно выражается в изменении электрических параметров схем, приводящем к нарушению управления и синхронизации. Так, отклонения в параметрах электронных компонентов в состоянии вызвать недопустимый "перекос" сигналов, передаваемых между ЦП и МВБ или внутри МВБ.

Источником ошибок может стать и несовершенство системного программного обеспечения (ПО):

- непредвиденные последовательности команд или кодовые комбинации;

- некорректное распределение памяти;

- недостаточный размер буфера ввода/вывода;

- недостаточно продуманные и оттестированные комбинации системных модулей.

Среди ошибок, порождаемых пользовательским ПО, наиболее частыми являются:

- нарушение последовательности выполнения программы;

- некорректные процедуры.

Вероятность возникновения ошибки внутри процессора для современных ЦП оценивается величиной порядка 10-18 в то время как для остальных составляющих ВМ она лежит в диапазоне 10-8  - 10-12 .

Методы управления вводом/выводом

В ВМ находят применение три способа организации ввода/вывода (В/ВЫВ):

- программно управляемый ввод/вывод;

- ввод/вывод по прерываниям;

- прямой доступ к памяти.

При программно управляемом вводе/выводе все связанные с этим действия происходят по инициативе центрального процессора и под его полным контролем. ЦП выполняет программу, которая обеспечивает прямое управление процессом ввода/вывода, включая проверку состояния устройства, выдачу команд ввода или вывода. Выдав в МВВ команду, центральный процессор должен ожидать завершения ее выполнения, и, поскольку ЦП работает быстрее, чем МВВ, это приводит к потере времени.

Ввод/вывод по прерываниям во многом совпадает с программно управляемым методом. Отличие состоит в том, что после выдачи команды ввода/вывода ЦП не должен циклически опрашивать МВВ для выяснения состояния устройства. Вместо этого процессор может продолжать выполнение других команд до тех пор, пока не получит запрос прерывания от МВВ, извещающий о завершении выполнения ранее выданной команды В/ВЫВ. Как и при программно управляемом В/ВЫВ, ЦП отвечает за извлечение данных из памяти (при выводе) и запись данных в память (при вводе).

Повышение как скорости В/ВЫВ, так и эффективности использования ЦП обеспечивает третий способ В/ВЫВ — прямой доступ к памяти (ПДП). В этом режиме основная память и модуль ввода/вывода обмениваются информацией напрямую, минуя процессор.

Программно управляемый ввод/вывод

Наиболее простым методом управления вводом/выводом является программно управляемый ввод/вывод, часто называемый также вводом/выводом с опросом. Здесь ввод/вывод происходит под полным контролем центрального процессора и реализуется специальной процедурой ввода/вывода. В этой процедуре ЦП с помощью команды ввода/вывода сообщает модулю ввода/вывода, а через него и внешнему устройству о предстоящей операции. Адрес модуля и ВУ, к которому производится обращение, указывается в адресной части команды ввода или вывода. Модуль исполняет затребованное действие, после чего устанавливает в единицу соответствующий бит в своем регистре состояния. Ничего другого, чтобы уведомить ЦП, модуль не предпринимает. Следовательно, для определения момента завершения операции или пересылки очередного элемента блока данных процессор должен периодически опрашивать и анализировать содержимое регистра состояния МВВ.

Иллюстрация процедуры программно управляемого ввода блока данных с устройства ввода приведена на рис. 8.6. Данные читаются пословно. Для каждого читаемого слова ЦП должен оставаться в цикле проверки, пока не определит, что слово находится в регистре данных МВВ, то есть доступно для считывания.

Процедура начинается с выдачи процессором команды ввода, в которой указан адрес конкретного МВВ и конкретного ВУ. Существуют четыре типа команд В/ВЫВ, которые может получить МВВ: управление, проверка, чтение и запись.

Команды управления используются для активизации ВУ и указания требуемой операции. Например, в устройство памяти на магнитной ленте может быть выдана команда перемотки или продвижения на одну запись. Для каждого типа ВУ характерны специфичные для него команды управления.

Команда проверки применяется для проверки различных ситуаций- возникающих в МВВ и ВУ в процессе ввода/вывода. С помощью таких команд ЦП способен выяснить, включено ли ВУ, готово ли оно к работе, завершена ли последняя операция ввода/вывода и не возникли ли в ходе ее выполнения какие-либо ошибки. Действие команды сводится к установке или сбросу соответствующих разрядов регистра состояния МВВ.

Команда чтения побуждает модуль получить элемент данных из ВУ и занести его в регистр данных (РД). ЦП может получить этот элемент данных, запросив МВВ поместить его на шину данных.

Команда записи заставляет модуль принять элемент данных (байт или слово) с шины данных и переслать его в РД с последующей передачей в ВУ.

Рис. 8.6. Программно управляемый ввод данных

Если к МВВ подключено несколько ВУ, то в процедуре ввода/вывода нужно производить циклический опрос всех устройств, с которыми в данный момент производятся операции В/ВЫВ.

Из блок-схемы (см. рис. 8.6) явно виден основной недостаток программно управляемого В/ВЫВ — неэффективное использование процессора из-за ожидания готовности очередной порции информации, в течение которого никаких иных полезных действий ЦП не выполняет. Кроме того, пересылка даже одного слова требует выполнения нескольких команд. ЦП должен тратить время на анализ битов состояния МВВ, запись в МВВ битов управления, чтение или запись данных со скоростью, определяемой внешним устройством. Все это также отрицательно скахзывается на эффективности ввода/вывода.

Главным аргументом в пользу программно управляемого ввода/вывода является простота МВВ, поскольку основные функции по управлению В/ВЫВ берет на себя процессор. При одновременной работе с несколькими ВУ приоритет устройств легко изменить программными средствами (последовательностью опроса). Наконец, подключение к СВВ новых внешних устройств или отключение ранее подключенных также реализуется без особых сложностей.

Ввод/вывод по прерываниям

Как уже отмечалось, основным недостатком программно управляемого В/ВЫВ являются простои процессора в ожидании, пока модуль ввода/вывода выполнит очередную операцию. Альтернативой может быть вариант, когда ЦП выдает команду В/ВЫВ, а затем продолжает делать другую полезную работу. Когда ВУ готово к обмену данными, оно через МВБ извещает об этом процессор с помощью запроса на прерывание. ЦП осуществляет передачу очередного элемента данных, после чего возобновляет выполнение прерванной программы.

Обсудим процесс ввода блока данных с использованием В/ВЫВ по прерываниям (рис. 8,7)." Оставим без внимания такие подробности, как сохранение и восстановления контекста, действия, выполняемые при завершении пересылки блока данных, а также в случае возникновения ошибок.

Процедура ввода блока данных по прерываниям реализуется следующим образом. ЦП выдает команду чтения, а затем продолжает выполнение других заданий, например другой программы. Получив команду, МВБ приступает к вводу элемента данных с ВУ. Когда считанное слово оказывается в регистре данных модуля, МВВ формирует на управляющей линии сигнал прерывания ЦП. Выставив запрос, МВБ помещает введенную информацию на шину данных, после чего он готов к следующей операции В/ВЫВ. ЦП в конце каждого цикла команды проверяет наличие запросов прерывания. Когда от МВВ приходит такой сигнал, ЦП сохраняет контекст текущей программы и обрабатывает прерывание. В рассматриваемом случае ЦП читает слово из модуля, записывает его в память и выдает модулю команду на считывание очередного слова. Далее ЦП восстанавливает контекст прерванной программы и возобновляет ее выполнение.

Рис. 8.7. Ввод данных по прерыванию

Этот метод эффективнее программно управляемого В/ВЫВ, поскольку устраняет ненужные ожидания, однако обработка прерывания занимает достаточно много времени ЦП. Кроме того, каждое слово, пересылаемое из памяти в модуль В/ВЫВ или в противоположном направлении, как и при программно управляемом В/ВЫВ, проходит через ЦП.

Реализация ввода/вывода по прерываниям

При реализации ввода/вывода по прерываниям необходимо дать ответы на два вопроса. Во-первых, определить, каким образом ЦП может выяснить, какой из МВБ и какое из подключенных к этому модулю внешних устройств выставили запрос. Во-вторых, при множественных прерываниях требуется решить, какое из них должно быть обслужено в первую очередь.

Сначала рассмотрим вопрос идентификации устройства. Здесь возможны три основных метода:

- множественные линии прерывания;

- программная идентификация;

- векторное прерывание.

Наиболее простой подход к решению проблемы определения источника запроса — применение множественных линий прерывания между ЦП и модулями ввода/вывода, хотя выделение слишком большого количества управляющих линий для этих целей нерационально. Более того, даже если присутствует несколько линий прерывания, желательно, чтобы каждая линия использовалась всеми МВБ, при этом для каждой линии действует один из двух остальных методов идентификации устройства.

При программной идентификации, обнаружив запрос прерывания, ЦП переходит к общей программе обработки прерывания, задачей которой является опрос всех МВБ с целью определения источника запроса. Для этого может быть выделена специальная командная линия опроса. ЦП помещает на адресную шину адрес опрашиваемого МВБ и формирует на этой линии сигнал опроса. Реакция модуля зависит от того, выставлял он запрос или нет. Возможен и иной вариант, когда каждый МВБ включает в себя адресуемый регистр состояния. Тогда ЦП считывает содержимое PC каждого модуля, после чего выясняет источник прерывания. Когда источник прерывания установлен, ЦП переходит к программе обработки прерывания, соответствующей этому источнику. Недостаток метода программной идентификации заключается в больших временных потерях.

Наиболее эффективную процедуру идентификации источника прерывания обеспечивают аппаратурные методы, в основе которых лежит идея векторного прерывания. В этом случае, получив подтверждение прерывания от процессора, выставившее запрос устройство выдает на шину данных специальное слово, называемое вектором прерывания. Слово содержит либо адрес МВБ, либо какой-нибудь другой уникальный идентификатор, который ЦП интерпретирует как указатель на соответствующую программу обработки прерывания. Такой подход устраняет необходимость в предварительных действиях с целью определения источника запроса прерывания. Реализуется он с помощью хранящейся в ОП таблицы векторов прерывания (рис. 8.8), где содержатся адреса программ обработки прерываний.

Входом в таблицу служит вектор прерывания. Начальный адрес таблицы (база) обычно задается неявно, то есть под таблицу отводится вполне определенная область памяти.

Наиболее распространены два варианта векторной идентификации источника запроса прерывания: цепочечный опрос и арбитраж шины.

Рис. 8.8. Идентификация запроса с помощью вектора прерывания

При цепочечном методе для передачи запроса прерывания модули ввода/вывода совместно используют одну общую линию. Линия подтверждения прерывания последовательно проходит через все МВБ. Когда ЦП обнаруживает запрос прерывания, он посылает сигнал по линии подтверждения прерывания. Этот сигнал двих жется через цепочку модулей, пока не достигнет того, который выставил запрос. Запросивший модуль реагирует путем выдачи на шину данных своего вектора прерывания.

В варианте арбитража шины МВВ, прежде чем выставить запрос на линии запроса прерывания, должен получить право на управление шиной. Таким образом, в каждый момент времени активизировать линию запроса прерывания может только один из модулей. Когда ЦП обнаруживает прерывание, он отвечает по линии подтверждения. После этого запросивший модуль помешает на шину данных свой вектор прерывания.

Перечисленные методы служат не только для идентификации запросившего МВВ, но и для назначения приоритетор, когда прерывание запрашивают несколько устройств. При множественных линиях запроса ЦП начинает с линии, имеющей наивысший приоритет. В варианте программной идентификации приоритет модулей определяется очередностью их проверки. Для цепочечного метода приоритет модулей определяется порядком их следования в цепочке. Порядок задания приоритетов при арбитраже был рассмотрен ранее в главе 4.

Прямой доступ к памяти

Хотя ввод/вывод по прерываниям эффективнее программно управляемого, оба этих метода страдают двумя недостатками:

- темп передачи при вводе/выводе ограничен скоростью, с которой ЦП в состоянии опросить и обслужить устройство;

- ЦП вовлечен в управление передачей, для каждой пересылки он должен выполнить определенное количество команд.

Когда пересылаются большие объемы данных, требуется более эффективный способ ввода/вывода — прямой доступ к памяти (ПДП). ПДП предполагает наличие на системной шине дополнительного модуля — контроллера прямого доступа к памяти (КПДП), способного брать на себя функции ЦП по управлению системной шиной и обеспечивать прямую пересылку информации между ОП и ВУ, без участия центрального процессора. В сущности, КПДП — это и есть модуль ввода/вывода, реализующий режим прямого доступа к памяти.

Если ЦП желает прочитать или записать блок данных, он прежде всего должен поместить в КПДП (рис. 8.9) информацию, характеризующую предстоящее действие. Этот процесс называется инициализацией КПДП и включает в себя занесение в контроллер следующих четырех параметров:

- вида запроса (чтение или запись);

- адреса устройства ввода/вывода;

- адреса начальной ячейки блока памяти, откуда будет извлекаться или куда будет вводиться информация;

- количества слов, подлежащих чтению или записи.

Рис. 8.9. Организация прямого доступа к памяти

Первый параметр определяет направление пересылки данных: из ОП в ВУ или наоборот. За исходную точку обычно принимается память, поэтому под чтением понимают считывание данных из ОП и выдачу их на устройство вывода, а под записью — прием данных из устройства ввода и запись в ОП. Вид запроса запоминается в схеме логики управления контроллера.

К КПДП обычно могут быть подключены несколько ВУ, а адрес УВВ конкретизирует, какое из них должно участвовать в предстоящем обмене данными. Этот адрес запоминается в логике управления КПДП.

Третий параметр — адрес начальной ячейки — хранится в регистре адреса (РА) контроллера. После передачи каждого слова содержимое РА автоматически увеличивается на единицу, то есть в нем формируется адрес следующей ячейки ОП.

Размер блока в словах заносится в счетчик данных (СД) контроллера. После передачи каждого слова содержимое СД автоматически уменьшается на единицу. Нулевое состояние СД свидетельствует о том, что пересылка блока данных завершена.

После инициализации процесс пересылки информации может быть начат в любой момент. Инициаторами обмена вправе выступать как ЦП, так и ВУ. Устройство, желающее начать В/ВЫВ, извещает об этом контроллер подачей соответствующего сигнала. Получив такой сигнал, КПДП выдает в ЦП сигнал ォЗапрос ПДПк В ответ ЦП освобождает шины адреса и.данных, а также те линии шины управления, по которым передаются сигналы, управляющие операциями на шине адреса (ША) и шине данных (ШД). К таким, прежде всего, относятся линии ЧтЗУ, ЗпЗУ, Выв, Вв и линия выдачи адреса на ША. Далее ЦП отвечает контроллеру сигналом «Подтверждение ПДП», который для последнего означает, что ему делегированы права на управление системной шиной и можно приступать к пересылке данных.

Процесс пересылки каждого слова блока состоит из двух этапов.

При выполнении операции чтения (ОП -> ВУ) на первом этапе КПДП выставляет на шину адреса содержимое РА (адрес текущей ячейки ОП) и формирует сигнал ЧтЗУ. Считанное из ячейки ОП слово помещается на шину данных. На втором этапе КПДП выставляет на Ш А адрес устройства вывода и формирует сигнал Выв, который обеспечивает передачу слова с шины данных в ВУ.

При выполнении операции записи (ВУ —>ОП) КПДП сначала выдает на шину данных адрес устройства ввода и формирует сигнал Вв, по которому введенные данные поступают на шину данных. На втором этапе КПДП помещает на ША адрес ячейки ОП, куда должны быть занесены данные, и выдает сигнал ЗпЗУ. Этим сигналом информация с ШД записывается в ячейку ОП.

Как при чтении, так и при записи происходит буферизация пересылаемого слова в регистре данных (РД) контроллера. Это необходимо для компенсации различий в скорости работы ОП и ВУ, в силу чего сигналы Выв и Вв формируются контроллером лишь при получении от ВУ подтверждения о готовности. Буферизация сводится к тому, что после первого этапа слово с ШД заносится в РД, а перед вторым — возвращается из РД на шину данных.

После пересылки каждого слова логика управления прибавляет единицу к содержимому РА (формирует адрес следующей ячейки ОП) и уменьшает на единицу содержимое СД (ведет подсчет переданных слов).

Когда пересылка завершена (при нулевом значении в СД), КПДП снимает сигнал ォЗапрос ПДПサ, в ответ на что ЦП снимает сигнал ォПодтверждение ПДПサ и вновь берет на себя управление системной шиной, то есть ЦП вовлечен в процесс ввода/вывода только в начале и конце передачи.

Эффективность ПДП зависит от того, каким образом реализовано распределение системной шины между ЦП и КПДП в процессе пересылки блока. Здесь может применяться один из трех режимов:

- блочная пересылка;

- пропуск цикла;

- прозрачный режим.

При блочной пересылке КПДП полностью захватывает системную шину с момента начала пересылки и до момента завершения передачи всего блока. На весь этот период ЦП не имеет доступа к шине.

В режиме пропуска цикла КПДП после передачи каждого слова на один цикл шины освобождает системную шину, предоставляя ее на это время процессору. Поскольку КПДП все равно должен ждать готовности ПУ, это позволяет ЦП эффективно распорядиться данным обстоятельством,

В прозрачном режиме КПДП имеет доступ к системной шине только в тех циклах, когда ЦП в ней не нуждается. Это обеспечивает наиболее эффективную работу процессора, но может существенно замедлять операцию пересылки блока данных. Здесь многое зависит от решаемой задачи, поскольку именно она определяет интенсивность использования шины процессором.

В отличие от обычного прерывания в пределах цикла команды имеется несколько точек, где КПДП вправе захватить шину (рис 8.10). Отметим, что это не прерывание: процессору не нужно запоминать контекст задачи.

Механизм ПДП может быть реализован различными путями. Некоторые возможности показаны на рис. 8.11.

В первом примере (см. рис. 8.11, а) все ВУ совместно используют общую системную шину. КПДП работает как заменитель ЦП и обмен данными между памятью и ВУ через КПДП производит через программно управляемый ввод/вывод. Хотя этот вариант может быть достаточно дешевым, эффективность его невысока. Как и в случае программно управляемого ввода/вывода, осуществляемого процесором, каждая пересылка требует двух циклов шины.

Число необходимых циклов шины может быть уменьшено при объединении функций КПДП и ВУ. Как видно из рис. 8.11,6, это означает, что между КПДП и одним или несколькими ВУ есть другой тракт, не включающий системную шину.

Логика ПДП может быть частью ВУ, либо это может быть отдельный КПДП, управляющий одним или несколькими внешними устройствами. Допустим и еще один шаг в том же направлении (см. рис, 8.11, в) — соединение КПДП с ВУ посредством шины ввода/вывода. Это уменьшает число интерфейсов В/ВЫВ в КПДП и делает такую конфигурацию легко расширяемой. В двух последних вариантах системная шина задействуется КПДП только для обмена данными с памятью. Обмен данными между КПДП и ВУ реализуется минуя системную шину. Число необходимых циклов шины может быть уменьшено при объединении функций КПДП и ВУ. Как видно из рис. 8.11,6, это означает, что между КПДП и одним или несколькими ВУ есть другой тракт, не включающий системную шину.

Логика ПДП может быть частью ВУ, либо это может быть отдельный КПДП, управляющий одним или несколькими внешними устройствами. Допустим и еще один шаг в том же направлении (см. рис, 8.11, в) — соединение КПДП с ВУ посредством шины ввода/вывода. Это уменьшает число интерфейсов В/ВЫВ в КПДП и делает такую конфигурацию легко расширяемой. В двух последних вариантах системная шина задействуется КПДП только для обмена данными с памятью. Обмен данными между КПДП и ВУ реализуется минуя системную шину.


 

А также другие работы, которые могут Вас заинтересовать

39964. Отчет по учебной геологической практике 69 KB
  Целью проведения полевой практики по инженерной геологии является закрепление теоретического материала и ознакомление с природными условиями залегания различных типов горных пород а также с формами проявления геологических и инженерногеологических процессов. Ее учебными задачами являются: Приобретение навыка визуального определения геологических особенностей горных пород. В течении практики в полевых условиях изучаются: Вещественный состав и строение пород. Условия формы залегания пород.
39965. Учебная геологическая практика 865 KB
  4 Порядок проведения практики. Оценка практики. Цели и задачи практики Учебная геологическая практика проводится в летнее время после изучения студентами курса Инженерная геология.
39966. ГИДРОПНЕВМОПРИВОД МЕТАЛЛУРГИЧЕСКИХ МАШИН 3.27 MB
  Руководитель курсовой работы сообщает каждому студенту номер задания и номер варианта. Расчетно-пояснительная записка должна содержать оглавление с наименованием всех основных разделов записки; задание; введение, в котором излагаются достоинства и недостатки объемного гидропривода
39967. Гидропривод металлургических машин 8.17 MB
  Рисунок 1 Схемы иллюстрирующие принцип действия объёмного гидропривода. Из рисунка 1а следует что при приложении силы Р к закрытому сосуду через поршень эта сила уравновешивается силой давления жидкости силой трения пренебрегаем и силой тяжести тоже Положение сохраняется если в качестве сосуда возьмём два гидроцилиндра соединённых гидролинией рисунок 1б При перемещении поршня 1 произойдёт вытеснение жидкости под поршнем 2. Реверсирование гидромотора можно осуществить также изменением направления потока жидкости направляемого насосом...
39968. Проектирование привода технологического оборудования 1.54 MB
  Модуль числа зубьев колес и коэффициенты смещения . Модуль числа зубьев колес и коэффициенты смещения. Определим размеры характерных сечений заготовок по формулам тогда мм Кm = 20 – коэффициент учитывающий вид передачи; Диаметр заготовки колеса равен Выбираем материал для колеса и шестерни – сталь 45 термообработка – улучшение твердость поверхности зуба шестерни 269302 HB Dm1 = 80 мм Dm1 Dm твердость поверхности зуба колеса 235262 НВ Sm1 = 80 мм Sm1 Sm. Для их определения используем зависимость Пределы контактной...
39969. Расчет эффективности проекта реконструкции установки АВТ-4 547.41 KB
  Приведены расчеты: анализ использования производственной мощности расчеты производственной программы и производственной мощности материального баланса установки до и после реконструкции расчет ФЗП и себестоимости продукции а также расчет основных техникоэкономических показателей и эффективность инвестиционного проекта кроме того приводится анализ рынка продукции нефтеперерабатывающих заводов. Введение 3 1 Анализ рынка продукции нефтеперерабатывающих заводов 5 2 Анализ использования производственной мощности 9 3 Расчет производственной...
39970. Расчет эффективности проекта реконструкции ОАО «Газпром нефтехим Салават» установка АВТ-4, цех №14 642.35 KB
  При общем объеме экспорта дизельного топлива из России в дальнее зарубежье в количестве 386 млн тонн дизельное топливо класса Евро5 составляет около 22 т. На российских НПЗ около половины всех печных агрегатов имеют КПД 50 – 60 при среднем показателе на зарубежных заводах – 90. Рисунок 4 Индекс Нельсона на НПЗ в РФ Наличие на НПЗ процессов прямой перегонки нефти и установок улучшающих качество прямогонных фракций позволяют получить глубину не более 60 наличие процессов переработки вакуумного газойля увеличивает глубину...
39971. Разработка организации технического обслуживания и ремонта МТП в ЦРМ хозяйства с годовым объемом работ 56000 часов 205.66 KB
  В курсовом проекте рассчитана центральная ремонтная мастерская хозяйства обоснован технологический процесс технического обслуживания и ремонта машинного парка в ЦРМ хозяйства с годовым объемом работ 56000 часов разработан компоновочный план ЦРМ технологическая планировка участка ТО и диагностики разработан генеральный план РОБ хозяйства спроектирован технологический процесс восстановления оси произведена техникоэкономическая оценка ЦРМ. Распределение годового объема работ по объектам ремонта 1. Технологический процесс ТО и ремонта...
39972. Процесс деятельности предприятия, в области управления персоналом, отраженный на диаграммах нотации IDEF0 692.17 KB
  В рамках деятельности по управлению персоналом возникает закономерная потребность оценки состояния человеческого ресурса. Соответственно основной целью является не только проведение процедуры оценки но и процесс использования результатов. В рамках данной темы планируется рассмотреть в теоретической части: привязка процесса оценки к конкретной категории персонала или подразделению организации; установление взаимосвязи деловой оценки с другими направлениями деятельности службы управления персоналом: обучением управлением карьерой...