Циклы обмена по прерыванию и в режиме
прямого доступа к памяти

Выполнение команд программы – основной режим работы процессора. Но, кроме этого, в компьютерах предусматривают обмен данными с различными устройствами в режиме прерывания. Инициатором обмена является устройство, посылающее для этого процессору сигнал INTR запроса на прерывание его работы (рис. 2.15).


Получив этот сигнал, процессор сохраняет состояние текущей программы, затем прерывает ее выполнение и формирует сигнал INTE разрешения прерывания. В процессорах Pentium для этого используется линия M/IO (низкий уровень). Собственно обмен производится с помощью обработчика прерывания – программы обмена с данным устройством, которая по сигналу INTE начинает выполняться вместо прерванной программы. Обмен в режиме прерывания позволяет процессору более оперативно взаимодействовать с такими устройствами, не загружая систему периодическим анализом их состояния.


















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

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

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

Для быстродействующих устройств наиболее эффективным вариантом обмена с оперативной памятью является режим DMA, т.е. обмен с памятью без участия процессора (рис. 2.16).

Чтобы блокировать обращение процессора к памяти на это время устройство, стремящееся произвести обмен с памятью, формирует к процессору сигнал HOLD запроса на DMA. По нему процессор завершает начатый цикл, отключается от шин AB и DB, а затем формирует сигнал HLDA (Hold Acknowledge), разрешая произвести обмен. По сигналу HLDA устройство, выставившее запрос, получает доступ к системным шинам и может самостоятельно организовывать циклы обмена с памятью, включая формирование адресов и управляющих сигналов. Закончив обмен, устройство снимает сигнал HOLD, тем самым разрешая процессору продолжить выполнение прерванной программы.



Рис. 2.16















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

Существуют 2 способа арбитража:

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

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

Сайт управляется системой uCoz