русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Проектирование соединения УСО с МП в случае нескольких ведущих устройств


Дата добавления: 2015-08-14; просмотров: 1822; Нарушение авторских прав


Рассмотрим систему, представленную следующей схемой (рис. 1):

Рис. 1.

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

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

На рис. 1 представляет упрощенное представление системы с несколькими микропроцессорами. В реальности, системы будет выглядеть следующим образом (рис. 2):

Рис. 2.

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

Магистрали (шины), соединяющие все эти устройства, имеют свою классификацию (рис. 3):

Рис. 3.

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

Очевидно, для подключения УСО к микропроцессору в данном случае мы должны использовать специальную схему — схему шинного интерфейса (СШИ). Она должна располагаться в месте соединения всех трех шин (см. рис. 3). СШИ должна решать следующие задачи:



  1. Демультиплексирование локальной ШАД;
  2. Хранение адреса в течение всего цикла обмена;
  3. Подключение микропроцессора (локальной шины) к системной или резидентной шине, в зависимости от того, по какой шине будет происходить обмен.

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

Очевидно, что СШИ должно быть две — одна будет обеспечивать подключение к СШ, другая — к РШ. Естественно, в каждом цикле обмена работать будет либо одна, либо другая СШИ (рис. 4):

Рис. 4.

Рассмотрим более детально саму схему шинного интерфейса (рис. 5):

Рис. 5.

Если посмотреть на сформулированные ранее три задачи, которые должна решать СШИ, мы можем увидеть, что две первые из них совпадают с задачами, которые решала рассмотренная в предыдущем разделе схема демультиплексирования. Следовательно, она может быть положена в основу СШИ.

Остается третья задача: обеспечение подключения/отключения от локальной шины (в соответствии с сигналом, передаваемым по специальной линии "Разрешение подключения к шине"). На выходе СШИ мы имеем три шины: адреса, данных и управления. Задача отключения шины данных фактически уже решена в схеме демультиплексирования: при неактивном сигнале DEN шина данных отключена от локальной шины. Отключение шины адреса также может быть выполнено в рамках известной нам схемы демультиплексирования путем подачи сигнала "Разрешение подключения к шине" на вход OE буферного регистра.

Для отключения шины управления используется специальное устройство, называемое контроллером шины (рис. 6).

Контроллер шины

Контроллер шины предназначен для решения задач управления шинным интерфейсом.

Рис. 6.

Контроллер шины (КШ) состоит из следующих блоков:

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

Контроллер шины позволяет выполнять подключение/отключение шины управления в зависимости от сигнала разрешения AEN. А вся схема шинного интерфейса будет выглядеть следующим образом (рис. 7):

Рис. 7.

Здесь мы видим уже знакомую нам схему демультиплексирования, которая в данном случае управляется контроллером шины. Он же решает задачу "подключения/отключения" шины управления. Схема шинного интерфейса "открывается", то есть подключает микропроцессор к соответствующей шине, с помощью сигнала "Разрешение подключения к шине". Этот сигнал подается на контроллер шины, заставляя его "подключить" микропроцессор к шине управления и сформировать сигналы, управляющие буферным регистром и шинным формирователем. Этот же сигнал подается на буферный регистр для "отключения" его от шины данных в случае, когда схема шинного интерфейса находится в "закрытом" состоянии.

Как же формируется сигнал "Разрешение подключения к шине"? Если посмотреть на рис. 4 мы увидим, что у нас имеется две СШИ — одна для подключения к системной шине, другая для подключения к резидентной шине. Обе схемы имеют вход "Разрешение подключения к шине". Следовательно, должно быть некое устройство, которое в каждом цикле обмена определяло бы, будет ли вестись обмен по системной или резидентной шине. Определить это можно на основании адреса ведомого устройства. Поэтому для решения рассматриваемой задачи используется дешифратор адреса (рис. 8):

Рис. 8.

На вход дешифратора адреса подается адрес устройства, с которым будет происходить обмен. Не углубляясь в нюансы технической реализации дешифратора адреса, мы можем представить его в виде некоей таблицы из двух столбцов. В первом — все значения адресов, с которыми возможен обмен, во втором — для каждого адреса признак: к системной или резидентной шине он относится. Получив значение адреса и определив его принадлежность, дешифратор активизирует одну из линии "Разрешение подключения к шине" (на схеме обозначена AEN), "отпирая" таким образом одну из СШИ.

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

Синхронизация схемы шинного интерфейса и микропроцессора

Представим себе теперь следующую ситуацию. Микропроцессор начинает цикл обмена по системной шине. Дешифратор формирует сигнал AEN, но подключение к шине невозможно — она занята. Устройство, отмеченное на рис. 8 знаком вопроса, не открывает СШИ, обмен начаться не может. Но ведь микропроцессор не знает об этом! Возникает необходимость синхронизации шинного интерфейса с микропроцессором. В случае, когда доступ к запрашиваемому устройству по системной шине не может быть получен, микропроцессор должен быть извещен об этом для того, чтобы приостановить цикл обмена до того момента, когда системная шина станет доступна. Как это можно сделать? Для воздействия на цикл асинхронного обмена микропроцессора есть только один способ — использование сигнала готовности READY, который проверяется в конце второго такта обмена. Как мы помним, если сигнал READY к этому моменту неактивен, микропроцессор не приступает собственно к обмену, переходя к выполнению холостых тактов до перехода READY в активное состояние. Следовательно, в нашем случае сигнал READY должен быть неактивен, если доступ к системной шине невозможен. Реализовать этот принцип можно, например, с помощью следующей схемы (рис. 9):

Рис. 9.

Использование логической микросхемы "ИЛИ" с инверсными входами (на ее выходе будет "1" только если на одном или на обоих входах "0") позволяет формировать активное значение сигнала READY только в том случае, если хотя бы один из сигналов AEN (для системной или резидентной шины) активен (на нем присутствует сигнал логического "0").

Арбитр шины

Вернемся к рис. 9. Устройство, обозначенное на этом рисунке знаком вопроса и определяющее возможность подключения к системной шине, называется арбитром шины (АШ). Каждая МПС, подключенная к системной шине имеет в своем составе арбитр шин. Таким образом, количество арбитров шин (АШ) равно количеству МПС (микропроцессоров) в многопроцессорной системе. Образно выражаясь, АШ является "представителем" МПС по вопросам доступа к системной шине. Получив от микропроцессора информацию о желании использовать системную шину (СШ), АШ "вступает в переговоры" с другими АШ и в результате определяет момент времени, когда ему (его микропроцессору) будет разрешено использование СШ. (рис. 10)

Рис. 10.

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

Рассмотрим АШ более подробно (рис. 11):

Рис. 11.

От микропроцессора к АШ по специальным линиям приходит информация о состоянии микропроцессора (аналогично КШ, рассмотренному ранее). От дешифратора адреса поступает сигнал о том, что в данном цикле обмен будет вестись по СШ (сигнал SYSB). Когда разрешение на занятие шины получено, АШ "открывает" СШИ уже известным нам сигналом AEN. Общая схема соединения АШ с микропроцессором и СШИ приведена на рис. 12.

Рис. 12.

В общем случае АШ решает следующие задачи:

  • Проверка занятости СШ. Так как обмен по СШ в каждый конкретный момент времени может вести только один микропроцессор, подключение микропроцессора к СШ возможно только в том случае, если она в данный момент не используется другим микропроцессором. Таким образом, АШ должен проверить свободность СШ, если она свободна – разрешить "своему" микропроцессору ее использовать, если занята – дождаться ее освобождения.
  • Задача разрешения конфликтов (задача арбитража). В случае, если одновременно два или более АШ претендуют на занятие СШ, среди них должен быть выбран какой-то один и ему предоставлено право работы с СШ, а остальные переведены в режим ожидания освобождения шины

Рассмотрим первую задачу. Для определения занятости СШ используется специальная сигнальная линия BUSY, к которой параллельно подключаются все АШ (рис. 13):

Рис. 13.

Получив от микропроцессора и дешифратора адреса информацию о необходимости использования СШ, АШ проверяет ее занятость, анализируя состояние линии BUSY. Наличие логической "1" говорит о том, что СШ свободна, наличие "0" — о том, что СШ занята. Если СШ занята, АШ ожидает ее освобождения, "прослушивая" линию BUSY. Если СШ свободна, АШ сам выдает на линию BUSY сигнал логического "0", сообщая таким образом остальным АШ о том, что шина им занята. По окончании использования шины АШ, "захвативший" шину, переводит сигнал BUSY в неактивное состояние (логической "1"), сообщая другим АШ об освобождении СШ.

Решение второй задачи основано на использовании понятия "приоритет". Каждому АШ назначается некий приоритет и при одновременном запросе СШ доступ получает АШ с более высоким приоритетом. Рассмотрим две основные схемы, используемые для решения этой задачи: схему последовательного и параллельного арбитража.

Последовательный арбитраж

Схема включения АШ при использовании последовательного арбитража приведена на рис. 14.

Рис. 14.

Каждый арбитр имеет вход BPRN — разрешение занятия шины. Если на этом входе присутствует активный сигнал (в данном случае это сигнал логического "0"), АШ разрешается занять СШ.

Посмотрим на рис. 14. У самого левого АШ вход BPRN соединен с "землей" — это эквивалентно подаче на него логического "0". То есть самый левый АШ всегда имеет право занять СШ — он имеет наивысший приоритет. Но возможна ситуация, когда АШ не нуждается в использовании СШ (его микропроцессор не выполняет в данный момент циклов обмена по СШ). В этом случае данный АШ может "передать" свое право на занятие СШ следующему АШ. Внутри АШ расположен воображаемый логический ключ (рис. 15), который в этом случае "замыкается", соединяя вход BPRN с выходом BPRO.

Рис. 15.

Выход BPRO соединен со входом BPRN следующего АШ и разрешение на занятие СШ передается ему за счет подачи уровня "0" на вход BPRN. Второй АШ может начать использование СШ (если его микропроцессору это нужно), а может "передать" право использования СШ дальше. Очевидно, что самый правый АШ имеет наименьший приоритет и получит право работы с СШ только в том случае, если все предыдущие АШ "отказались" ее использовать.

Достоинства последовательного арбитража: простота реализации — не нужно никаких дополнительных устройств, достаточно лишь соединить в определенной последовательности выходы и входы АШ.

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

  • Каждый АШ имеет жестко заданный приоритет. Следовательно, если АШ с высоким приоритетом будут интенсивно использовать СШ, АШ с низким приоритетом может долго не получать доступа к ней.
  • "Передача" разрешения от одного АШ к другому ("замыкание" внутреннего "логического ключа") занимает некоторое время. Следовательно, при большом количестве АШ, включенных в цепь последовательного арбитража, "разрешение" на занятие шины к последнему АШ поступит со значительной задержкой. С другой стороны, протокол обмена по системной шине ограничивает время, отведенное на решение задачи арбитража. Следовательно, количество АШ, которые могут быть включены в цепь последовательного арбитража, ограничено.

Параллельный арбитраж

Схема включения АШ при использовании параллельного арбитража приведена на рис. 16.

Рис. 16.

При необходимости получения доступа к шине АШ устанавливает активный уровень на линии BREQ — сигнал запроса на занятие шины. Эти сигналы от всех АШ поступают в специальное устройство — контроллер арбитража, которое в соответствии с заложенными в него приоритетами выбирает один из АШ и разрешает ему работать с СШ, устанавливая в активное состояние сигнал BPRN для этого АШ. Внутри контроллера арбитража каждому АШ может быть назначен жесткий приоритет, либо может использоваться система циклически меняющихся приоритетов, когда АШ, последним использовавший СШ, получает наинизший приоритет, а тот, который дольше всего не обращался к СШ — наивысший.

Достоинства данной схемы:

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

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

Функционирование арбитра шины при захвате системной шины

Арбитр шины начинает процедуру захвата системной шины при наступлении следующих событий:

  • микропроцессор начинает цикл обмена (эта информация поступает в АШ по линиям состояния микропроцессора);
  • дешифратор адреса сообщает АШ, что обмен будет производиться по системной шине (установкой в активной состояние сигнала SYSB, рис. 12).

Функционирование АШ при захвате СШ иллюстрируется рис. 17:

Рис. 17.

В момент времени (1) информация о состоянии микропроцессора сигнализирует о начале цикла обмена, в момент времени (2) сигнал SYSB переходит в активное состояние. АШ выдает сигнал запроса системной шины BREQ (3). После этого АШ ожидает наступления следующих условий: перехода сигнала BUSY в состояние логической "1" (говорит об освобождении СШ) и перехода сигнала BPRN в активное состояние логического "0" (означает, что занятие шины разрешено именно этому АШ). Наступление этих двух условий (моменты времени (4) и (5)) означает, что АШ может занять СШ. Он переводит сигнал BUSY в состояние логического "0" (момент (6)), сообщая тем самым другим АШ о занятии шины, и переводит в активное состояние сигнал AEN, "отпирая" схему шинного интерфейса и сигнализируя микропроцессору о возможности продолжения обмена (момент времени (7)).

Функционирование арбитра шины при освобождении системной шины

Освобождение СШ арбитром происходит при наступлении одного из следующих условий:

  • по линиям состояния микропроцессор сообщает АШ, что он не будет производить очередной цикл обмена;
  • сигнал BPRN на входе АШ переходит в неактивное состояние (логической "1"). Это говорит о том, что какой-то из АШ с более высоким приоритетом запросил доступ к СШ.

Процедура освобождения СШ иллюстрируется рис. 18:

Рис. 18.

АШ переводит в неактивное состояние сигналы BREQ, AEN и устанавливает на линии BUSY сигнал логической "1", показывая другим арбитрам, что он освободил СШ.

Сигнал блокировки шины

Если в процессе обмена по СШ сигнал BPRN на входе АШ переходит в неактивное состояние, СШ немедленно (по завершении текущего цикла обмена) освобождается, и использовавший ее микропроцессор вынужден ждать, пока ему снова будет предоставлен доступ к системной шине. Однако существуют операции ввода-вывода, которые нежелательно прерывать до их полного завершения. Например, при вводе данных с 20-разрядного цифрового датчика положения нужно произвести два цикла обмена, так как за один цикл может быть введено только одно машинное слово (16 разрядов для 16-разрядного микропроцессора). Если доступ к датчику осуществляется по СШ и после первогого цикла доступ к СШ будет прерван, только часть данных окажется введенной. И микропроцессор должен будет ожидать неопределенное время для ввода оставшейся порции данных и продолжения вычислений. Такой ситуации можно избежать, если иметь возможность запретить АШ освобождать СШ при выполнении "критических" операции ввода-вывода. Для этого служит специальная управляющая линия блокировки шины LOCK (рис. 19):

Рис. 19.

Установка активного состояния линии LOCK на выходе микропроцессора производится программно с помощью специального префикса блокировки шины LOCK, например:

LOCK IN AL, 0001

Таким образом, при составлении программы имеется возможность защиты "критических" операции ввода-вывода от прерывания, вызванного отказом в доступе к СШ.



<== предыдущая лекция | следующая лекция ==>
Проектирование соединения УСО с микропроцессором | Основные принципы построения УСО


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 4.401 сек.