Основы микропроцессорной техники

Раздел 2. Организация обмена информацией


«Структура курса | Раздел 1 | Раздел 2 | Раздел 3 | Раздел 4 | Раздел 5 | Раздел 6 | Раздел 7 | Глава 8 | Дополнения

Раздел 2 - Страницы: «| 1 | 2 | 3 | 4 | 5 | 6

2.2. Циклы обмена информацией

2.2.1. Циклы программного обмена

Рассмотрим для примера два довольно типичных случаях программного обмена магистралью микропроцессорной системы:

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

Отметим, что в дальнейшем в тексте знак "минус" перед названием сигнала говорит о том, что активный уровень сигнала низкий, пассивный - высокий, т.е. сигнал негативный. Если минус перед названием сигнала отсутствует, сигнал положительный, его низкий уровень пассивный, а высокий - активный.

На шине адреса / данных (AD) в начале цикла обмена (в фазе адреса) процессор (Задатчики) выставляет код адреса. На этой шине используется отрицательная логика. Средний уровень сигналов на шине AD обозначает, что сословные сигналов на шине в данные временные интервалы не важны. Для строб адреса используется негативный Синхросигнал-SYNC, выставляемый также процессором. Его передний (отрицательный) фронт соответствует действительному кода адреса на шине AD. Фаза адреса одинакова в обоих циклах записи и чтения.


Рис. 2.3. Цикл чтения на магистрали Q-bus.

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


Рис. 2.4. Цикл записи на магистрали Q-bus.

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

Для сигнала-RPLY используется тип выходного каскада ВК, чтобы не было конфликтов между устройствами-исполнителями. Процессор, получив сигнал-RPLY, заканчивает цикл обмена. Для этого он снимает сигнал-DIN и сигнал-SYNC. Устройство-исполнитель в ответ на снятие сигнала-DOUT должен снять код данных с шины AD и закончить сигнал подтверждения-RPLY. После этого процессор снимает сигнал-SYNC.

В фазе данных цикла записи (Рис. 2.4) процессор выставляет на шину AD код записываемых данных и сопровождает его негативным сигналом строб записи данных-DOUT. Устройство-исполнитель должен по этому сигналу принять данные от процессора и сформировать сигнал подтверждения обмена-RPLY. Процессор, получив сигнал-RPLY, заканчивает цикл обмена. Для этого он снимает код данных с шины AD и сигнал-DOUT. Устройство-исполнитель в ответ на снятие сигнала-DIN должен закончить сигнал подтверждения-RPLY. После этого процессор снимает сигнал-SYNC.

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

Кроме циклов чтения и записи на магистрали Q-bus используются также и циклы типа "ввод-пауза-вывод" ( "чтение-модификация-запись"). Упрощенная временная диаграмма этого цикла представлена на Рис. 2.5.


Рис. 2.5. Цикл "ввод-пауза-вывод" на магистрали Q-bus.

В этом цикле адресная фаза происходит точно так же, как и в циклах чтения (ввода) и записи (вывода). Но в фазе данных процессор проводит сначала чтения с заданной в адресной фазе адреса, а затем запись по той же адресу. Для чтения используется строб чтения-DIN, а для записи - строб записи-DOUT. В ответ на сигнал-DIN устройство-исполнитель выдает свои данные на шину AD, а по сигналу-DOUT - принимает данные с шины AD. Как и в циклах чтения и записи, устройство-исполнитель подтверждает выполнение каждой операции сигналом подтверждения-RPLY. Понятно, что цикл "ввод-пауза-вывод" требует больше времени, чем каждый из циклов чтения или записи, но меньше времени, чем два последовательно выполненных циклы чтения и записи (так как для него нужна только одна адресная фаза). Сигнал-SYNC товары процессором в начале цикла "ввод-пауза-вывод" и держится до окончания всего цикла.

В качестве второго примера рассмотрим циклы обмена на синхронной немультиплексований магистрали ISA (Industrial Standard Architecture), которая предложена фирмой IBM и широко используется в персональных компьютерах. Упрощенные циклы записи в устройство ввода / вывода и чтения с устройства ввода / вывода приведены на Рис. 2.6 и 2.7.

Оба цикла начинаются с выставления процессором (Задатчики) кода адреса на шину адреса SA (логика на этой шине положительная). Адрес остается на шине SA до конца цикла. Фаза адреса, одинакова для обоих циклов, заканчивается с началом строб обмена данными-IOR чи-IOW. В течение фазы адреса устройство-исполнитель должен принять код адреса и распознать или не распознать его. Если адрес распознана, исполнитель готов тся к обмену.

В фазе данных цикла чтения (Рис. 2.6) процессор выставляет негативный сигнал чтения данных с устройства ввода / вывода-IOR. В ответ на него устройство-исполнитель должен выдать на шину данных SD свой код данных (данные, которые читаются). Логика на шине данных положительная. Через установленное время строб обмена-IOR снимается процессором, после чего снимается также и код адреса с шины SA. Цикл заканчивается без учета быстродействия исполнителя.


Рис. 2.6. Цикл чтения из ПВВ на магистрали ISA.


Рис. 2.7. Цикл записи в ПВВ на магистрали ISA.

Но так происходит только в случае основного, синхронного обмена. Кроме него на магистрали ISA также предусмотрена возможность асинхронного обмена. Для этого применяется сигнал готовности канала (магистрали) I / O CH RDY. Тип выходного каскада для данного сигнала - ВК, для предотвращения конфликтов между устройствами-исполнителями. При синхронном обмене сигнал I / O CH RDY всегда положительный. Но медленное устройство-исполнитель, который не успевает работать в темпе процессора, может этот сигнал снять, то есть сделать нулевым сразу после начала строб обмена. Тогда процессор до того момента, пока сигнал I / O CH RDY не станет снова положительным, прекращает завершения цикла, продолжает строб обмена. Конечно, слишком большая продолжительность этого сигнала рассматривается как аварийная ситуация. Для простоты понимания можно считать, что устройство-исполнитель формирует в данном случае негативный сигнал неготовности завершить обмен. На время этого сигнала обмен на магистрали прекращается.

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

В фазе данных цикла записи магистралью ISA (Рис. 2.7) процессор выставляет на шину данных SD код записываемых данных и сопровождает их строб записи данных в устройство ввода / вывода-IOW. Получив этот сигнал, устройство-исполнитель должен принять с шины SD код записываемых данных. Если он не успевает сделать это в темпе процессора, то может снять на нужное время сигнал I / O CH RDY после получения переднего фронта сигнала-IOW. Тогда процессор приостановит окончания цикла записи.

Рассмотренные примеры, конечно, не раскрывают всех тонкостей обмена упомянутыми магистралями. Они всего лишь иллюстрируют основные принципы обмена ими.

2.2.2. Циклы обмена с помощью прерываний

Циклы обмена в режиме прерываний строятся по тем же принципам, что и циклы программного обмена, но имеют ряд специфических особенностей.

Прерывание в микропроцессорных системах бывают двух основных типов:

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

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

При векторном прерывании код номера прерывания передается процессору тем устройством ввода / вывода, что данное прерывание пригласил. Для этого процессор проводит цикл чтения магистралью, и по шине данных получает код номера прерывания. Шина адреса в данном цикле обычно не используется, так как устройство, пригласивший прерывания, и так знает, что процессор будет обращаться именно к нему. В этом случае в магистрали достаточно всего одной линии запроса прерывания для всех устройств ввода / вывода. Так организованы прерывания, например, в магистрали Q-bus.


Рис. 2.8. Сигналы запроса и предоставления прерывания в магистрали Q-bus.

Схема распространения сигналов, участвующих в прерываниям на магистрали Q-bus, показана на Рис. 2.8. Упрощенная временная диаграмма цикла запроса и предоставления магистрали представлено на Рис. 2.9.


Рис. 2.9. Цикл запроса / предоставления векторного прерывания на магистрали Q-bus.

Запрос прерывания осуществляется негативным сигналом-VIRQ, который может формироваться каждым из устройств, которые запрашивают прерывания. Тип выходного каскада для этого сигнала - ВК, чтобы избежать конфликтов между вопрошающим прерывания устройствами. Получив сигнал-VIRQ, процессор предоставляет прерывание (закончив предыдущее выполнения текущей команды). Для этого он выставляет сигнал чтения данных-DIN и сигнал предоставления прерывания IAKO. Этот сигнал IAKO последовательно проходит через все устройства, которые могут запрашивать прерывания. Если устройство пригласил прерывания, то он не пропускает через себя этот сигнал. В результате получается, что если прерывание одновременно пригласили два или более устройств, сигнал предоставления прерывания получит только одно устройство, а именно тот, который ближе к процессору. Такой механизм разрешения конфликтов называется иногда географическим приоритетом (или цепным приоритетом, Daisy Chain). Получив сигнал IAKO, устройство, пригласил прерывания, должен снять свой сигнал-VIRQ.

Затем процессор проводит цикл безадресного чтения номера прерывания. В ответ на полученные сигналы-DIN и IAKO устройство, которому предоставлено прерывания, должен выдать на шину адреса / данных AD код номера прерывания (адреса вектора прерывания) и выставить сигнал подтверждения-RPLY. Процессор читает код номера прерывания и заканчивает цикл безадресного чтения снятием сигналов-DIN и IAKO.


Рис. 2.10. Структура связей для организации радиальных прерываний на магистрали ISA.

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

Упрощенная структура связей между устройствами, участвующих в обмене по прерываниями, на магистрали ISA показана на Рис. 2.10. Процессор общается с контроллером прерываний как по магистрали (чтобы задать ему режимы работы), так и за магистралью (при обработке запросов на прерывание). Сигналы запросов прерываний IRQ распределяются между всеми устройствами магистрали. На каждую линию IRQ приходится одно устройство. Тип выходного каскада для этих линий - 2С, потому что конфликты здесь не предусмотрены. Запросом прерывания является передний, положительный фронт сигнала IRQ. При одновременном поступлении сигналов IRQ от нескольких устройств порядок их обслуживания определяется контроллером прерываний.

Какой тип прерываний лучше - векторный или радиальный?

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

Радиальных прерываний в системе обычно не очень много (от 1 до 16). При этом типе прерываний, как правило, необходимо введение в систему специального контроллера прерываний. Каждое радиальное прерывания требует введения дополнительной линии в шину управления системной магистрали. Но работать с радиальными прерываниями проще, так как все сводится только к выработке единого сигнала IRQ, и никаких циклов обмена магистралью не нужно.

2.2.3. Циклы обмена в режиме ПДП

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

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

На магистрали Q-bus запрос и предоставление ПДП организуются подобно запросам и предоставлению прерывания. Упрощенная структура связей устройств, участвующих в ПДП, показана на Рис. 2.11. Временная диаграмма запроса / предоставления ПДП очень близка к временной диаграммы запроса / предоставления прерывания (см. Рис. 2.9).


Рис. 2.11. Структура связей запроса / предоставления ПДП на магистрали Q-bus.

Сигнал запроса ПДП, который носит название-DMR, передается всеми устройствами, которые требуют ПДП, одной линией магистрали. Тип выходного каскада на этой линии - ВК. Процессор, получив сигнал-DMR, выдает сигнал предоставления ПДП DMGO, аналогичный сигналу IAKO. Этот сигнал также проходит через все устройства последовательно, в результате чего ПДП получает только то устройство, которое находится ближе к процессору (географический приоритет). А пот м устройство, получившее ПДП, проводит циклы обмена магистралью, аналогично циклам программного обмена. В циклах ПДП информация читается из памяти и записывается в устройство ввода / вывода, или наоборот - читается с устройства ввода / вывода и передается в память.

На магистрали ISA запрос / предоставления ПДП очень напоминает организацию радиальных прерываний (Рис. 2.12). Точно так же в системе существует контроллер ПДП, к которому сходятся сигналы запроса ПДП, которые носят название DRQ, и от которого расходятся сигналы предоставления ПДП, называемые-DACK. К каждому каналу ПДП (пары сигналов DRQ и-DACK) подключается только одно устройство, запрашивающей ПДП. Тип выходных каскадов для этих сигналов-2С. Устройство, нуждается ПДП, посылает сигнал запроса DRQ и получает в ответ сигнал предоставление-DACK. После этого контроллер ПДП проводит циклы обмена магистралью между устройством ввода / вывода и памятью.

Упрощенная временная диаграмма циклов ПДП на магистрали ISA показана на Рис. 2.13.

На магистрали ISA используются раздельные строб записи в память (-MEMW) и записи в устройства ввода / вывода (-IOW), а также раздельные строб чтения из памяти (-MEMR) и чтения с устройств ввода / вывода (-IOR . Это позволяет за один цикл обмена ПДП читать информацию из памяти и записывать ее в устройство ввода / вывода или же читать информацию с устройства ввода / вывода и записывать ее в память. При этом на шине адреса выставляется адрес памяти, а адрес устройства ввода / вывода заменяется одним-единственным сигналом AEN. Естественно, в цикле обмена в режиме ПДП участвует только то устройство ввода / вывода, что предварительно пригласил ПДП и которому ПДП были предоставлены. Поэтому никаких конфликтов между устройствами ввода / вывода через такую упрощенную адресацию не возникает.


Рис. 2.12. Структура связей запроса / предоставления ПДП на магистрали ISA.


Рис. 2.13 Цикл ПДП на магистрали ISA.


«Структура курса Раздел 2 - Страницы:« | 1 | 2 | 3 | 4 | 5 | 6 | »