Контроллер с переменным приоритетом

 

Союэ Советсинк

Соцнапнстнчесинк

Рвспубпни

ОП ИСАНИЕ

ИЗОБРЕТЕНИЯ

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (iu907550 (61) Дополнительное к авт. свид-ву— (22) Заявлено 23. 05. 80 (21 ) 2972199/18-24 с присоединением заявки,%— (23) Приоритет— (5 М ) М. Кл.

G Об F 9/46

Гаеударетнкнный квинтет

СССР

Опубликовано 23. 02. 82. Бнмлетень J6 7 ао делан нзобретеннН н еткрытнй (53) УДК681.327 (088. 8) Дата опубликования описания 25. 02, 82

Э. П. Овсянникова-Панченко, Л. И. Петрова и Б. В. Ыевкопляс (72) Авторы изобретения (71) Заявитель (54) КОНТРОЛЛЕР С ПЕРЕМЕННЫМ ПРИОРИТЕТОИ

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

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

Известна вычислительная система, содержащая параллельно соединенные двунаправленными и однонаправленными связями процессор, и ряд конт- 1 роллеров, объединенных между собой дополнительными двунаправленными свя" зями, причем каждый контроллер содержит первичные и вторичные адресные переключатели, первичный и вто- ричный блоки сравнения, а также два блока приемопередатчиков, соединенных с входами соответствующих блоков сравнения, включенных последовательно и подключенных к соответст" вующим адресным переключателям (1 ).

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

907550

Недостатки этой системы — жесткость приоритетной структуры, повышенная сложность контроллеров, наличие дополнительной информационной магистрали.

Наиболее близким по технической сущности к предлагаемому является контроллер, содержащий триггер запроса, соединенный с входом кабельного усилителя, выход которого па- 1о раллельно соединен с выходами аналогичных кабельных усилителей остальных контроллеров и с одним из входов процессора посредством одной из однонаправленных связей, регистр приоритета и блок формирования максимального кода„ группа входов блока формирования максимального кода соединена с группой выходов регистра приоритета, группа входов-выходов блока формирования максимального кода параллельно. соединена с аналогичными группами входов-выходов блоков формирования максимального кода остальных контроллеров и с соответствующей груп пой входов-выходов процессора посредством указанных двунаправленных связей, причем один из выходов процессора параллельно соединен с входами разрешения работы всех контроллеров посредством другой однонаправленной связи (2).

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

4О блоков формирования максимального кода, объединенных общей магистралью.

Запросы на обслуживание поступают от периферийных устройств через соответствующие контроллеры в общую линию запросов. При наличии сигнала

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

После завершения выполнения этой подпрограммы процессор переходит к выполнению основной программы с прерванного места.

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

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

Цель изобретения — сокращение времени обслуживания.

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

20 стробирующих импульс, триггер режима, регистр кода вероятности, регистр кода режима, блок выработки векторов прерывания, триггер выбора вектора прерывания,дешифратор и элемент И, причем выход элемента И подключен к разрешающему входу блока формирования максимального кода, вход которого соединен с выходом блока выработки векторов прерывания, первый инфор- 15 мационный вход которого соединен с выходом регистра приоритета, вход которого соединен с информационным входом-выходом контроллера и входом регистра кода вероятности, выход которого подключен к генератору стробирующих импульсов, выход которого соединен с информационным входом триггера выбора вектора прерывания, выход которого подключен ко входу пере-2s ключения вектора блока выработки векторов прерывания, вход синхронизации триггера выбора вектора прерывания подключен к первому входу элемента

И, входу синхронизации триггера ре- З0 жима и входу синхронизации контроллера, выход триггера режима соединен со вторым входом элемента И, информационный вход триггера режима соединен с выходом триггера запроса, вход регистра кода режима подключен к информационному входу-выходу контроллера, выход регистра кода режима соединен со вторым информационным входом блока выработки векторов прерывания, информационный вход дешифратора подключен к адресному входу контроллера, выходы дешифратора подключены к управляющим входам регистра кода режима, регистра приоритета, 4 регистра кода вероятности и к входу сброса триггера режима, разрешающий вход дешифратора соединен с разрешающим входом контроллера.

Кроме того, блок выработки векторов прерывания содержит последовательно соединенные группу двухвходовых элементов И и группу двухвходовых элементов ИСКЛЮЧАЮЦЕЕ ИЛИ, выходы которых подключены к выходу блока выработки векторов прерываний, а. первые входы - к первому информационному входу этого блока, первые входы двухвходовых элементов И объединены и подключены к входу переклю чения вектора блока, вторые входы двухвходовых элементов И подкгючены ко второму информационному входу блока, выходы элементов И соединены со вторыми входами соответствующих элементов ИСКЛЮЧАЮЩЕЕ ИЛИ.

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

На фиг. 1 представлена структурная схема типовой вычислительной системы; на фиг. 2 — структурная схема контроллера; на фиг. 3 — структурная схема блока формирования максимального кода; на фиг. 4 - структурная схема блока выработки векторов прерывания; на фиг. 5 - структурная схема соединенных между собой генератора стробирующих импульсов и регистра кода вероятности; на фиг. 6-8 - диаграммы колебаний векторов прерывания, соответствующие различным кодам регистра кода режима;на фиг. 9 — временные диаграммы работы генератора стробирующих импульсов.

Вычислительная система построена по общепринятой схеме (фиг.1) и содержит процессор I и ряд контроллеров 24, 2>,...,2п, объединенные общей магистралью 3, представляющей собой набор однонаправленных и двунаправленных связей. Каждый контроллер 2(, 2,, ....,2, соединен с одним или несколькими периферийными устройствами (на фиг.1 не показаны).

Контроллер 2, I i n (фиг.2) содержит триггер 4 запроса, выход которого соединен с входом кабельного усилителя 5 и с L — входом триггера 6 режима. Выход кабельного усилителя

5 параллельно соединен с выходами аналогичных кабельных усилителей остальных контроллеров и с одним из входов процессора посредством однонаправленной связи 7, входящей в состав магистрали 3. Термин однонаправленная связь используется в том смысле, что источником сигнала логической единицы может быть любой контроллер или группа контроллеров, а приемником - лишь процессор. Синхронизирующий вход С триггера 6 соединен с синхронизирующим входом С триг907550 максимального кода. Группа входов-вы- 1О

ЗО

40

50 гера 8 выбора вектора прерывания,с, первым входом элемента И 9 и с общей для всех контроллеров однонаправленной связью 10, входящей в магистраль

3 и предназначенной для передачи сигнала разрешения работы из процессора одновременно во все контроллеры.Выход элемента И9 соединен с управляющим входом 11 блока 12 формирования ходов блока 12 параллельно соединена с аналогичными группами входоввыходов блоков формирования максималь ного кода остальных контроллеров и с соответствующей группой входов-выходов процессора посредством двунаправленных связей 13, представляющих собой общую шину данных. К этой же шине 13 в каждом контроллере подключена группа входов регистра 14 кода вероятности, группа входов регистра 15 приоритета и группа входов регистра 16 кода режима. Группа выходов регистра 14 соединена с группой входов генератора 17 стробирующих импульсов, выход которого соединен с

0-входом триггера 8. Группа входов блока 12 формирования максимального кода соединена с группой выходов блока 18 выработки векторов прерывания, первая группа входов которого соединена с группой выходов регистра 15, а вторая группа входов - с группой выходов регистра 16. Выход триггера

6 соединен с вторым входом элемента

И9, выход триггера 8 соединен с входом 19 блока 18. Вход 20 сброса триггера 6, а также входы 2l, 22 и 23 синхронизации регистров 14, 15 и 16 соответстзенно соединены с выходами дешифратора 24, группа адресных входов которого соединена с группой однонаправленных связей 25 (или с "шиной адреса") магистрали 3. Вход 26 разрешения работы дешифратора 24 соединен с однонаправленной связью

27, входящей в состав магистрали 3 и предназначенной для передачи признака интенсивности адерса, установившегося на шине 25 адреса. Входы 28 и 29 триггера 4 предназначены соответственно для установки и сброса этого триггера. Сигналы на эти входы поступают от периферийного устройства (на фиг.? не показано).

Блок 12 формирования максимального кода (фиг.3) содержит три однотипные логические ячейки 30,1, 30 и

30, а также кабельный усилитель

20 элемент И31. Логическая ячейка 30

1 содержит кабельный усилитель - элемент И32,1, инвертор 33, элемент

ИЛИ 34 1, и элемент 835„

Блок 18 выработки векторов прерывания (фиг.4 ) содержит элементы

И36, 37, 38, 39 и элементы ИСКЛОЧАЮЩЕЕ ИЛИ 40, 41, 42, 43, выходы которых являются группой выходов блока 18 и соединены с входами блока 12.

Генератор 17 импульсов (фиг.5) содержит инверторы 44-46, конденсатор 47, резистор 48, 4-х разрядный счетчик 49, элемент И-ИЛИ 50 и элемент ИСКЛЮЧАЮЩЕЕ ИЛИ 51.

Рассмотрим принцип действия отдельных составных частей контроллера 2„.

Триггеры 6 и 8 принимают информацию с входов 0 под действием положительного фронта сигнала на линии

10 и хранят ее вплоть до поступления очередного положительного фронта сигнала на входы С. Сброс триггера 6 производится при поступлении сигнала логической единицы на вход 20 с соответствующего выхода дешифратора 24.

Регистры 14, 15 и l6 принимают информацию с магистрали данных по положительным фронтам сигналом соответственно на входах 21, 22 и 23.

Дешифратор 24 открывается при наличии логической единицы на входе 26.

При наличии определенных кодовых комбинаций на адресной шине 25 на одном из выходов дешифратора 24 формируется сигнал логической единицы. Эти кодовые комбинации (адреса) различны для разных контроллеров и задаются на этапе технического проектирования конкретной вычислите.чьной системы. Таким образом, регистры 14, 15 и l6 являются программно-доступными по записи, а т риггер 6 может быть сброшен программным путем.

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

Блок 12 формирования максимального кода функционирует при наличии логической единицы на входе 11 (при нуле на этом входе блок 12 отключен от шины данных), Далее предполагается, что каждая из линий реализует функцию проводное ИЛИ по отношению к сигналам логических единиц. Други907550 ми словами, логическая единица, сформированная например элементом И32 передается s линию независимо от состояния выходов аналогичных элементов И, расположенных в других контроллерах или в процессоре ° Такая функция может быть реализована на элементах с открытым эмиттером с общим эмиттерным резистором, в отличие от магистрали, реализующей функцию 30 проводное И, и реализованной на элементах с открытым коллектором и общим коллекторным резистром. Указанное отличие не является принципиальным - магистраль типа проводнос ИЛИ 15 принята за основу, как и в известном контроллере для упрощения описания.

Совокупность блоков 12, объединенных шиной данных, представляет собой, по существу распределенное приоритет- 20 ное устройство. В результате взаимодействия блоков, у которых на входы

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

0101, 1001, 1011 (коды представлены в двоичной форме) . После подачи сигналов на входы 11 соответствующих блоков, спустя время успокоения системы (заранее известное и подсчитанное по наихудшему случаю при проектировании), на шине 13 установится код

1. 11, который может быть прочитан процессором.

Формирование кода на шине .13 данных происходит последовательно, на- 4 чиная со старшего разряда. Если в старшем разряде кода на шинах какоголибо контроллера присутствует логическая единица, то срабатывает соответствующий элемент 32, в результате чего в линию выдается единица.

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

55 элементом 33, на выходе элемента

ИЛЙ 34,1 формируется логический нуль, закрывающий через элемент И 35 пос" ледующие разрядные ячейки 3,, 30

10 и элемент И31. Если ни один из бло ков 12 не получил на вход сигнала логической единицы, то в старшем разряде результирующего кода будет сформирован логический "0", В этом случае сигнал логического нуля с этой линии, пройдя через инвектор 33 в виде логической единицы проходит через элемент ИЛИ 34 1 и совместно с сигналом на входе 11 открывает вход запуска следующего разряда. Запуск ячейки 30 осуществляется также и при наличии единицы на входе по цепи: 341- 35 . Таким образом, при равных условиях в старшем разряде борьба переносится в следующий разряд. При этом в линию выдают сигналы логических единиц все те блоки 12, которые. выдержали первый тур отбора (по старшему разряду) и, кроме того, имеют единицы на входах. Подобные операции выполняются последовательно во всех остальных разрядах;

Блок 18 выполняет функцию передачи кода t)4+Ь2Ь„на выходы (код СФСйС Ь

С1).без инвертирования или с инвертированием отдельных разрядов, или одновременно всех разрядов. Сигнал

d=1 разрешает инвертирование, а единичные позиции кода <440>OQ

1.0 — 15) можно превратить в любое число из этого же диапазона, инвер Ю тируя некоторые (или все) его разряды. 8 приведенном выше примере число

9 превращается в число 2.1<>.

В общем виде С„ =(cT М 5 ) h. 40,; V

М(с1 AO1)I 5 1 =1,2у3у4 °

Генератор стробирующих импульсов (Фиг.5) вырабатывает последовательности импульсов, приведенные на фиг. 9. Частота генератора Г опреде" ляется в основном емкостью конденсатора 47. Частоты Га генераторов раз-. ных контроллеров выбираются различными, например, из ряда: 10 мГц, 6,2 мГц, 2,1 мГц и т.д.; допуски на стабильность частоты могут быть достаточно большими, например +204.

Эта свобода связана с тем, что каждый генератор используется как датS

ЗО

11 90 чик случайного одноразрядного двоич; ного числа. В произвольные моменты времени выход генератора опрашивается сигналом, поступающим из процессора по линии 10, и результат опроса запоминается в триггере 8.

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

Е"-ЕС/ Г .

{обозначения приведены на фиг.9), Из рассмотренных диаграмм, привведенных на Фиг.9, следует, что для данного примера реализации генератора вероятность обнаружения логической единицы на выходе генератора зависит от кода в регистре 14 и может принимать девять различных значений в диапазоне от 0 до 1.

Рассмотрим основную идею построения предлагаемой вычислительной системы.

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

Рассмотрим вопрос о выборе непересекающихся множеств спектров векторов прерывания. Для определенности будем считать, что имеются восемь контролеров, каждый из которых может генерировать лишь два различных век7550 12 тора; Так как в этом случае суммарное число различных векторов составляет 8х2=16, то разрядность кода, отображающего эту величину, должна быть равна 4 или превышать 4 - в последнем случае открываются дополнительные возможности по формированию спектров. Далее предполагается, что разрядность равна 4.

Исходная информация для построения спектров с учетом принятых ограничений приведена в таблице. Все коды представлены в виде десятичных чисел. Таблица позволяет определить дополнительный веткор по известному основному вектору, записанному в регистр приоритета, и содержимому регистра режима. Пусть, например, в регистр 15 приоритета одного из контроллеров записан код 14, а в регистр 16 режима этого контроллера вод В=7. Выбирая элемент таблицы на пересечении соответствующей строки и столбца, получим код 9. Это означает, что при такой настройке данный контроллер способен генерировать два вектора - 14 и 9. Заметим,что те же векторы генерируются и при записи кода 9 в регистр приоритета с сохранением кода 7 в регистре режима.

Полученная пара векторов 9 и 14 закрепляется за данным контроллером и не может быть использована в других контроллерах в силу необходимости соблюдения условия однозначной идентификации периферийного устройства. Далее для простоты предполагается, что во всех контроллерах системы в регистры режима всегда записан один и тот же код — a данном примере код 7.

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

1 и 6; 2 и ; 3 и 4; 8 и 15; 10 и 13;

I1 и 12.

Диаграммы, показанные на фиг.6-8 дают наглядное представление о распределении пар векторов между контроллерами. Каждому контроллеру соответствует дуга, соединяющая основной и дополнительный векторы, представленные десятичными .числами, размещенными

13

90755 в порядке возрастания на числовои оси. Рассмотренному примеру для В=7 соответствует диаграмма, показанная на фиг.7а. Из этой диаграммы видно, что все восемь контроллеров делятся на две одинаковые группы — верхнюю и нижнюю. Контроллеры верхней группы обладают безусловным приоритетом над контроллерами нижней группы, а внутри группы (при равновероятном вы- 1О боре из двух векторов в каждом контроллере) наибольшим приоритетом обладает контроллер с наибольшей дугой.

Пусть контроллеры К, K и К генерируют, соответственно следующие векторы: 0 и 9; 3 и 1О; 6 и 15 (согласно фиг.7в ). При отработке прерывания каждый контроллер фиксирует одно из двух случайных положений вектора и поддерживает его неизменным до окончания процедуры арбитража, Пусть в интересующий нас промежуток времени контроллер К выбрал вектор

9, контроллер К вЂ” вектор 3, контроллер К вЂ” вектор 6, а процессор выполняет команду, выбранную из ячейки памяти с адресом 2110 (все коды и адреса приводятся в десятичной записи). Получив сигнал запроса на обслуживание одновременно от трех контроллеров, процессор приостанавливает выполнение основной программы и запускает эти контроллеры в режиме распределенного арбитра, 35 в результате чего на шине данных устанавливается максимальных код — 9.

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

12111, а затем считывает с шины данных код 9. Рассматривая этот код как

1 адрес ячейки памяти, проффесор извлекает из нее код 00412, который в свою очередь, рассматривается как адрес начала подпрограммы обслуживания контроллера К . Таким образом, процессор переходит к выполнению последовательности команд, начиная

50 с команды, эаписаннои в ячеике па" мяти с адресом 00412.

Эта последовательность завершается командой "ВЫХСД ИЗ ПРЕРЫВАНИЯ", которая записана в ячейке памяти с адресом 698. При выполнении этой команды ранее упрятанная в память информация помещается в соответствующие регистры процессора, и он пе0 14 реходит к выполнению последовательности команд, начиная с команды в ячейке 2111.

Контроллеры К и Кз, не полУчив обслуживания, продолжают формирование сигнала запроса. Процессор, обнаружив, что запрос не снят, повторяет описанную ранее процедуру и oGслуживает один из контроллеров К или К. !,;àêoé именно - зависит от того, в каком сочетании выпали пары чисел на этот раэ: 3-6; 3-15; 10-6 или 10-15)

Загрузка регистров 14, 15 и 16 производится последовательно. Для загрузки одного из трех регистров процессор выставляет на шине 13 данных нужный код, а на адресной шине

25 — адрес, присвоенный соответствующему регистру. Спустя время, достаточное для окончания переходных процессоров в адресной шине и для дешифрации адреса, процессор формирует сигнал истинности адре.-а на линии 27, который открывает выходы дешифратора, s результате чего информация с шины данных записывается в соответствующий регистр.

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

В каждом контроллере триггер 4 находится в сброшенном состоянии, кабельный усилитель 5 выключен, в линиях 7 и 10 сигналы логических "0" > триггер 6 сброшен, в триггере 8 хранится "0" или "1" в зависимости от предыстории(предыстория не учитывается), регистры 14, 15 и 16 хранят информацию о настройке системы, на выходе блока 18 основной или дополнительный векторы в зависимости от состояния триггера 8, блок 12 включен от магистрали, так как на вход

11 подан логический "0" с выхода закрытого элемента И9.

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

Сигнал с периферийного устройства поступает на вход 28, устанавливает в единицу триггер 4 и в виде логической единицы передается кабельным усилителем 5 по линии 7 запроса в процессор. Процессор, как было описано выше, прерывает выполнение текущей программы и выдает сигнал разрешения по линии 10. По этому сигналу состояние триггера 4 переписывается

Код в регистре режима (В ) Код в реги13 14 стре 0 приОри тета

6 7

1 2

9 1О

10

9075 в триггер 6 во всех контроллерах системы. В тех контроллерах, у которых триггер 4 не был установлен в единицу, триггер 6 также остается в сброшенном сбстоянии, закрывая через

Ф элемент И9 блок 12 формирования максимального кода, т,е. сохраняя отключенное состояние этого блока. В контроллере, у которого триггер 4 был установлен в единицу, при полу- 1о чении сигнала по линии 10 и после срабатывания триггера 6 открывается элемент И9 и блок 12 подключается к магистрали. В то же время триггер

8 фиксирует случайное значение сигнала ("0" или "1"), снимаемого с выхода генератора 17 в момент прихода фронта разрешающего импульса по линии t0. В зависимости от значения этого сигнала с выходов блока 18 на ур входы блока 12 передается либо основной (при нулевом сигнале), либо дополнительный вектор прерывания. Так как в данном случае конкуренты на магистрали отсутствуют, соответст- 2s вующий вектор передается через блок

12 в шину 13 данных. После окончания переходных процессоров в цепи: 10-8-19-18-12-13 процессор опрашивает шину 13 данных и, как показано выше, зв переходит на соответствующую подпрограмму через одну из двух ячеек памяти, отведенных данному контроллеру. После выхода на эту подпрограмму процессор программным путем сбра- 35 сывает триггер 6 через дешифратор 24 и приступает к обслуживанию периферийного устройства, которое заключается, например, в перемотке ленты, снятию информации с датчиков, выдаче кода на цифро-аналоговые преобразователи и т.n.. Если периферийное

0 1 2 3 4 5 6

1 0 3 2 5 4

2 3 0 1 6 7 4

3 2 1 0 7 6 5

50 16 устройство удовлетворено обслуживанием и если в процессе обслуживания в этом устройстве не сложились ситуации, требующие повторного вмешательства со стороны процессора, то на вход 29 триггера 4 с периферийного устройства поступает сигнал сброса, в результате чего усилитель

5 выключается. Сигнал разрешения снимается процессором с линии 10 после считывания вектора с шины 13 данных. При этом контроплеры (в данном случае — один контроллер) отключаются от шины данных. Заметим,что переход к подпрограмме через нулевой вектор возможен лишь при отсуствии конкурирующих контроллеров.

В случае, если к моменту запуска контроллеров по линии 10 сигналом разрешения в системе имеются несколько контроллеров, требующих обслуживания (в этих контроллерах триггеры 4 установлены в единицу), все процессы, описанные ранее для одного контроллера, протекают параллельно в каждом контроллере и завершаются процедурой формирования максимального вектора на шине 13 данных. Эта процедура рассмотрена при описании работы блока 12.

Эффективность использования предлагаемого контроллера зависит от

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

10 11 12 13 14 15

8 11 10 13 12 15 14

11 8 9 14 15 12 13

10 9 8 15 14 13 12

18

Продолжение таблицы

907550

Код в регистре

Код в регистре режима (В) 3 4 5 6

7 8

11 112

13 14

9 10

15 приоритета

7 0 1 2 3 12 13

4 5 6

14 15 8 9 10 11

> 5

5 4 7 8 1 0 3 2 13 12 15 14 9 8 11 10

6 7 4 5 2 3 0 1 14 15 12 13 10 11 8 9

7 6 5 4 3 2 1 0 15 14

8 9 10 11 12 13 14 15 0 1

l3 ) 12

2 3

l1 10 9 8

4 5 6 7

9 9 8 11 10 13 12 15 14 1 0 3 2 5 4 7 6

10 10 11 8 9 14 15 12 13 2 3 0 1 6 7 4 5

11 11 10 9 8 15 14 13 12 3 2 1 0 7 6 5 4

12 12 13 14 15 8 9 10 11 4 5 6 7 0 1 2 3

13 13 12 15 14 9 8 11 10 5 4 7 6 1 0 3 2

14 14 15 12 13 10 11 8 9 6 7 " 5 2 3 0 1

15 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Формула изобретения

1. Контроллер с переменным приоритетом, содержащий триггео за о проса, регистр приоритета, блок фор" мирования максимального кода, выход триггера запроса соединен с выходом запроса контроллера, выход блока формирования максимального кода подключен к информационному входу45 выходу контроллера, о т л и ч а ю,ц и и с я тем, что, с целью сокращения времени обслуживания, в него введены генератор стробирующих импульсов, триггер режима, регистр кода вероятности, регистр кода режима, блок выработки векторов прерывания, триггер выбора вектора прерывания, дешифратор и элемент И, причем выход элемента И подключен к разрешающему входу блока формирования максимального кода, вход которого соединен с выходом блока выработки векторов прерывания, первый информационный вход которого соединен с выходом регистра приоритета, вход которого соединен с информационным входом-выходом контроллера и входом регистра кода вероятности, выход которого подключен к генератору стробирующих импульсов, выход которого соединен с информационным входом триггера выбора вектора прерывания, выход которого подключен ко входу переключения вектора блока выработки векторов прерывания, вход синхронизации триггера выбора вектора прерывания подключен к первому входу элемента И, входу синхронизации триггера режима и входу синхронизации контроллера, выход триггера режима соединен со вторым входом элемента И, информационный вход триггера режима соединен с выходом триггера запроса, вход регистра кода режима подключен к информационному входу-выходу кон19 907 троллера, выход регистра кода режима соедине" со вторым информационным входом блока выработки векторов прерывания информационный вход дешифратора подключен к адресному входу контроллера, выходы дешифратора ,подключены к управляющим входам регистра кода режима, регистра присритета, регистра кода вероятности и к входу сброса триггера режима, разрешающий вхо 1 дешифратора соединен с разрешающим входом контроллера.

2. Контроллер по п.1, о т л и ч а ю шийся тем, что блок выработки векторов прерывания содержит последовательно соединенные группу двухвходовых элементов И и группу двухвходовых элементов ИСКЛЮЧАЮЩЕЕ

550 20

ИЛИ, выходы которых подключены к выходу блока выработки векторов прерываний, а первые входы — к первому информационному входу этого блока, первые входы двухвходовых элементов

И объединены и подключены к входу переключения вектора блока, вторые входы двухвходовых элементов И подключены ко второму информационному

1о входу блока, выходы элементов И соединены с вторыми входами соответствующих элементов ИСКЛЮЧАЮЩЕЕ ИЛИ.

Источники информации, 35 принятые во внимание при экспертизе

1. Патент ClilA N 3983550, кл. 340- 172 ° 5, опублик. 1976.

2. Патент Великобритании и l508854, кл. 5 4А, опублик. 1978.

907550

Я

Ю

5

6

9

3 г г г

12

3

6

3

0 ю

3

7

$ ф у г

В д 15

19

t0

3

5

». д г

ФФГ. 7

Ю

3

7 б

Х

2

О

8

3

Р ,1

5 ю

907550

F) Fg

Х 00001

Х = 11110

=0,068$

Х 11100

Е О, 1ГХ

М =11ОоО

К - toooo

E =0,5

Е= g7f

Х 11001

0= Q67$

)С= Я01

Е -09375

Х= 1111 1

Е=1

ХаОЮО

Заказ 592/58 Тираж 732 Подписное

ВНИИПИ Государственного комитета СССР по делам изобретений и открытий

113035, Москва, Ж-35, Раушская наб., д. 4/5 филиал ППП "Патент", г. Ужгород, ул. Проектная, 4

Составитель П. Чистобородов

Редактор В;Лазаренко Техред М.Тепер Корректор Н. Швыдкая:

Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом Контроллер с переменным приоритетом 

 

Похожие патенты:

Изобретение относится к области электронной обработки данных, в частности к системе и способу арбитража шины

Изобретение относится к способу перехвата информации и к соответствующему устройству для этого

Изобретение относится к вычислительной технике и может быть использовано для поочередного подключения абонентов к общим магистралям, например, в многбмаИйИйых вычислительных системах

Изобретение относится средствам управления доступом к среде передачи применительно к управлению доступом абонентской станции шинной системы, имеющей первый и второй каналы, ко второму каналу шинной системы, совместно используемому несколькими абонентскими станциями. Технический результат заключается в повышении объема передаваемых данных без ухудшения характеристик работы системы в условиях реального времени. Первый канал открывают для монопольного доступа к нему абонентской станции в течение по меньшей мере одного временного интервала разрешения доступа, начало которого определяется абонентской станцией посредством побитового арбитража первого канала, конец которого задается, как только абонентская станция после успешного арбитража первого канала снова освободит его. Доступом ко второму каналу, совместно используемому несколькими абонентскими станциями, управляют таким образом, чтобы открывать второй канал для доступа к нему абонентской станции только в течение вышеупомянутого временного интервала разрешения доступа без проведения отдельного арбитража для получения доступа ко второму каналу. 3 н. и 10 з.п. ф-лы, 5 ил.

Изобретение относится к средствам автоматического обмена сигналами. Технический результат заключается в расширении арсенала технических средств за счет реализации средств автоматического обмена сигналами. Результат достигается при реализации способа автоматического обмена сигналами между несколькими встроенными процессорными платами. Способ предусматривает этапы: разделение процессорных плат в распределенной системе, где плата ЦП с функцией сигнала управления используется в качестве ведущей платы, а остальные процессорные платы используются в качестве ведомых плат; и при инициализации каждая ведомая плата посылает сигнал регистрации информации на ведущую плату; которая представлена соединяющей линией между именами сигналов, расчет и назначение адреса шины передачи данных, к которым привязываются выходной и входной сигналы, и отправка записанных адресов, типов данных и адресов шины сигналов на каждую ведомую плату; сохраняют те же данные как таблицы выходных и входных сигналов, записывание значения выходного сигнала в соответствующей выделенной адресной шине в соответствии с таблицами выходных сигналов и считывание получателем значения входного сигнала из соответствующей адресной шины в соответствии с таблицами входных сигналов. 2 н. и 10 з.п. ф-лы, 6 ил.

Изобретение относится к автоматике и вычислительной технике и может быть использовано при построении управляющих и вычислительных систем высокой производительности

Изобретение относится к области параллельной обработки информации при обращении вычислительных устройств к общим ресурсам и может быть использовано при обработки информации в радиотехнических системах

Изобретение относится к техническим средствам информатики и вычислительной технике и может быть использовано для решения задач по распределению ресурсов и параметров в экономике, распределения памяти в ЭВМ, вычислительных системах и комплексах, в сетях ЭВМ

Изобретение относится к области вычислительной техники и может найти применение в конвейерных потоковых машинах и многопроцессорных вычислительных системах

Изобретение относится к вычислительной технике, в частности к устройствам приоритета, и может быть использовано для управления доступом нескольких абонентов к коллективно используемому ресурсу
Наверх