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

Работа периферийных устройств (ПУ) не синхронизирована с работой процессора. Запросы со стороны ПУ на установление связи и обмен данными могут поступать в произвольные моменты времени. Для организации обмена требуются специальные электронные средства согласования форматов и синхронизации процессов. В вычислительных машинах используется три способа обмена данными между ПУ и процессором и памятью /1,17/:

1) программно-управляемая передача, инициируемая процессором;

2) передача информации с прерыванием программы, активизируемая по запросу прерывания от ПУ;

3) передача информации в режиме прямого доступа к памяти.

При программно-управляемой передаче данных обмен осуществляется под управлением процессора, который реализует операции ввода-вывода с помощью соответствующих команд. Программно-управляемый обмен бывает синхронным и асинхронным.

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

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

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

Программно-управляемая передача является самым быстрым способом обмена данными между процессором и ПУ. Однако ему присущи следующие недостатки:

1) вынужденные непроизводительные затраты времени процессора на ожидание готовности ПУ к обмену;

2) блокирование работы процессора в результате бесконечного ожидания готовности ПУ (когда сигнал готовности не может быть сформирован, например, из-за неисправности ПУ).

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

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

Реализация такого обмена по сравнению с рассмотренным выше требует более сложной аппаратной и программной поддержки. При готовности к обмену ПУ формирует запрос прерывания и посылает его процессору. Последний, обнаружив сигнал запроса, завершает выполнение операций, которые нельзя прервать, и выполняет определённую последовательность действий. По её завершении процессор восстанавливает состояние на момент прерывания и возвращает управление прерванной программе. Более подробно организация работы ВМ при обработке прерываний рассматривалась в разделе 5.3 настоящего конспекта.

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

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

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: