Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_з_1.doc
Скачиваний:
15
Добавлен:
01.03.2025
Размер:
2.57 Mб
Скачать

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

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

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

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

Рис. 6.7. Способы обмена информацией между периферийными устройствами и вычислительным ядром

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

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

Программно-управляемая передача является идеальным (самым быстрым) способом обмена данными между периферийным уст­ройством и процессором. Недостатком такого способа обмена яв­ляются вынужденные непроизводительные затраты времени про­цессора на ожидание готовности периферийного устройства к обмену. Ограничения по использованию программно-управляемого ввода можно проиллюстрировать на примере работы процессора при вводе данных с клавиатуры, например при наборе текста. Скорость ввода отдельных символов на клавиатуре редко превы­шает 5-10 символов в секунду. Процессор последовательно пере­сылает каждый символ в ОП и отображает его на экране компь­ютера, затрачивая на эти операции единицы микросекунд. Чтобы иметь возможность реагировать на каждое нажатие клавиши, про­цессор должен постоянно следить за состоянием клавиатуры, и поскольку он не выполняет никаких других действий, то в основ­ном простаивает. Это допустимо, если в процессе ввода не требу­ется выполнять другую обработку, в противном случае приходит­ся искать иные решения.

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

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

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

Рис. 6.8. Организация ввода-вывода при обменах данными: а - синхронный; 6 - асинхронный; в - с прерыванием программы

Алгоритмы организации ввода-вывода при программно-управляемом обмене и обмене с преры­ванием программы показаны на рис. 6.8.

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

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

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