(S) КОНТРОЛЛЕР С ПЕРЕМЕННЫМ ПРИОРИТЕТОМ
название | год | авторы | номер документа |
---|---|---|---|
Устройство для контроля блоков памяти | 1991 |
|
SU1833920A1 |
Устройство для программного управления технологическим оборудованием | 1989 |
|
SU1714575A1 |
Устройство микропроцессорного управления и обработки информации | 1979 |
|
SU947867A1 |
Электронная вычислительная машина для ускоренной обработки запросов прерываний | 1988 |
|
SU1621029A1 |
Станция локальной вычислительной сети | 1990 |
|
SU1805474A1 |
Устройство для сопряжения ЭВМ с магистралью внешних устройств | 1985 |
|
SU1408440A1 |
Устройство для программного управления объектом | 1988 |
|
SU1605211A1 |
Система для контроля микропроцессорных устройств | 1983 |
|
SU1228108A1 |
Аналого-цифровая вычислительная система и аналоговая вычислительная машина (ее варианты) | 1983 |
|
SU1259300A1 |
Устройство для сопряжения магистрали ЭВМ с периферийными устройствами | 1990 |
|
SU1751775A1 |
I
Изобретение относится к цифровой вычислительной технике .и может быть использовано в вычислительных системах, построенных по принципу общей шины, с развитой периферийной частью.
В таких системах центральный процессор периодически прерывает выполнение основной программы для. обслуживания периферийных устройств, от которых поступают заявки на обслуживание. Если интенсивность поступления заявок велика, то возможно образование очереди, в этом случае для ее ликвидации принимается та или j иная дисциплина обслуживания.
Известна вычислительная система, содержащая параллельно соединенные двунаправленными и однонаправленными связями процессор, и ряд контроллеров, объединенных между собой дополнительными двунаправленными связями, причем каждый контроллер содержит первичные и вторичные адресные переключатели, первичный и вторичный блоки сравнения, а также два блока приемопередатчиков, соединен- иых с входами соответствующих блоков сравнения, включенных последовательно и подключенных к соответствующим адресным переключателям ,1 J.
В процессе работы системы осуществляется автоматический выбор наиболее приоритетного контроллера ( из числа требующих обслуживания) без вмешательства процессора в акт выбораЧарбитража). Эта процедура оказывается возможной благодаря оперативному обмену информацией между всеми контроллерами через дополнительные двунаправленные связи, вследствие чего каждый контроллер знает о состоянии всех остальных контроллеров системы и самостоятельно оценивает исход конкурентной борьбы. В случае успеха победивший контроллер обменивается информацией с процессором. Недостатки этой системы - жесткость приоритетной структуры, повышенная сложность контроллеров, наличие дополнительной информационной магистрали. Наиболее близким по технической сущности к предлагаемому является контроллер, содержащий триггер запроса, соединенный с входом кабельного усилителя, выход которого параллельно соединен с выходами аналогичных кабельных усилителей остал ных контроллеров и с одним из входо процессора посредством одной из одн направленных связей, регистр приори тета и блок формирования максимального кода, группа входов блока форм рования максимального кода соединен с группой выходов регистра приорите та, группа входов-выходов блока фор мирования максимального кода параллельно, соединена с аналогичными гру пами входов-выходов блоков формирования максимального кода остальных контроллеров и с соответствующей гру пой входов-выходов процессора посредством указанных двунаправленных связей, причем один из выходов процессора параллельно соединен с входами разрешения работы всех контрол леров посредством другой однонаправ ленной связи f2. Идея построения известного устройства состоит в децентрализации функций арбитража, т.е. идентификации источника прерывания, имеющего максимальный приоритет. Арбитр как таковой в системе отсутствует, его функции выполняются совокупностью блоков формирования максимального кода, объединенных общей магистраль Запросы на обслуживание поступают от периферийных устройств через соответствующие контроллеры в общую линию запросов. При наличии сигнала на этой линии процессор посылает си нал разрешения работы параллельно всем контроллерам. Одновременно с этим процессор приостанавливает выполнение текущей программы и запоми нает слово состояния программы ( параметры возврата). К этому времени в результате одновременной и f.osместной работы всех контроллеров, п сылавших запросы, на шине данных .. устанавливается код, равный коду пр оритета одного из устройств, посылавших запрос, а именно, того устр ойства, чей код приоритета максимален. Процессор считывает этот код (вектор прерывания)с шины данных и, как обычно, использует его в качестве косвенного адреса начала подпрограммы обслуживания соответствующего периферийного устройства. После завершения выполнения этой подпрограммы процессор переходит к выполнению основной программы с прерванного места. Основной недостаток известного контроллера состоит в том, что при перегрузках вычислительной системы, связанных с интенсивными потоками запросов от различных периферийных устройств (каналов), может ©казаться, что некоторые низкопри®ритетные конТ|эоллеры в течение нек®т®рого времени вообще не получат обслуживания, так как они постоянно оттесняются более приоритетными контроллерами, что не всегда допустимо. Этот недостаток может быть компенсирован за счет снижения производительности системы и резкого увеличения времени реакции на прерывание. В этом случае на программное обеспечение возлагаются функции динамического перераспределения приоритетов каналов путем записи кодов в регистры приоритетов контроллеров и соответствующего динамического изменения таблицы начальных адресов подпрограмм обслуживания каналов. В процессе такой перестройки прерывания обрабатываться не .могут, так как. возможна неоднозначная идентификация источника прерывания. Указанная перестройка должна выполняться по возможности чаще, чтобы дисциплина обслуживания каналов была более демократичной. Однако с увеличением частоты перестройки в конечном счете окажется, что эта перестройка стала самоцелью и у процессора не остается времени на выполнение основной (фоновой задачи. Таким образом, недостатком контроллера является большое время обслуживания при работе с высокоинтенсивными источниками запросных сигналов. Цель изобретения - сокращение времени обслуживания. Указанная цель достигается тем, что в контроллер с переменным приоритетом, содержащий триггер запроса, регистр приоритета, блок формирования максимального кода, выход три1 repd запроса соединен с выходом Запроса контроллера, выход блока формирования максимального кода подключен к информационному входу-выходу контроллера, введены генератор стробирующих импульс, триггер режима регистр кода вероятности, регистр кода режима, блок выработки векторов прерывания, триггер выбора вектора прерывания,дешифратори элемент И, причем выход элемента И подключен к разрешающему входу блока формирования максимального кода, вход которого соединен с выходом блока выработки векторов прерывания, первый инфор мационный вход которого соединен с выходом регистра приоритета, вход которого соединен с информационным входом-выходом контроллера и входом регистра кода вероятности, выход которого подключен к генератору стробирующих импульсов, выход которого соединен с информационным входом три гера выбора вектора прерывания, выход которого подключен ко входу пере ключения вектора блока выработки век торов прерывания, вход синхронизации триггера выбора вектора прерывания подключен к первому входу элемента И, входу синхронизации триггера режима и входу синхронизации контроллера, выход триггера режима соединен со вторым входом элемента И, информационный вход триггера режима соединен с выходом триггера запроса, вход регистра кода режима подключен к информационному входу-выходу контроллера, выход регистра кода режима соединен со вторым информационным входом блока выработки векторов прерывания, информационный вход дешифратора подключен к адресному входу контроллера, выходы дешифратора подключены к управляю1цим входам регистра кода режима, регистра приоритета регистра кода вероятности и к входу сбросатриггера режима, разрешающий вход дешифратора соединен с разрешающим входом контроллера. Кроме того, блок выработки векторов прерывания содержит последовательно соединенные группу двухвходовых элементов И и группу двухвходовых элементов ИСКЛОЧАЮЩЕЕ ИЛИ, выходы которых подключены к выходу бло ка выработки векторов прерываний, а первые входы - к первому информационному входу этого блока, первые входы двухвходовых элементов И объединены и подключены к входу переклю чения вектора блока, вторые входы двухвходовых элементов И подключены ко второму информационному входу блока, выходы элементов И соединены со вторыми входами соответствующих эле ментов ИСКЛЮЧАЮЩЕЕ ИЛИ. Благодаря новым признакам обеспечивается вероятностный выбор одного из конкурирующих каналов, в результате чего низкоприоритетные каналы периодически реализуют шансы на обслуживание { без дополнительных потерь времени), а не грубо оттесняют ся более приоритетными каналами. На фиг. 1 представлена структурная схема типовой вычислительной системы; на фиг. 2 - структурная схема контроллера; на фиг. 3 - структурная схема блока формирования максимального кода; на фиг. k - структурная схема блока выработки векторов прерывания; на фиг. 5 - структурная схема соединенных между собой генератора стробирующих импульсов и регистра кода вероятности; на фиг. 6-8 - диа:- ра.чк.ы колебаний векторов прерывания, соответствующие различным кодам регистра кода режима;на фиг. 9 временные диаграммы работы генератора стробирующих импульсов. Вычислительная система построена по общепринятой схеме (фиг.1) и содержит процессор 1 и ряд контроллеров 2, 22, ...,2л, объединенные общей магистралью 3, представляющей собой набор однонаправленных и двунаправленных связей. Каждый контроллер 2, 2,..., соединен с одним или несколькими периферийными устройствами (на фиг.1 не показаны). Контроллер 2, (фиг.2) содержит триггер запроса, выход которого соединен с входом кабельного усилителя 5 и с D - входом триггера 6 режима. Выход кабельного усилителя 5 параллельно соединен с выходами аналогичных кабельных усилителей остальных контроллеров и с одним из входов процессора посредством однонаправленной связи 7, входящей в состав магистрали 3. Термин однонаправленная связь используется в том смь1сле, что источником сигнала логической единицы может быть любой контроллер или группа контроллеров, а приемником - лишь процессор. Синхронизирующий вход С триггера 6 соединен с синхронизирующим входом С триггера 8 выбора вектора прерывания с. первым входом элемента И 9 и с общей для всех контроллеров однонаправленной связью 10, входящей в магистраль 3 и предназначенной для передачи сигнала разрешения работы из процессора одновременно во все контроллеры.Выход элемента И9 соединен с управляющим входом 11 блока 12 формирования максимального кода. Группа входов-выходов блока 12 параллельно соединена с аналогичными группами входоввыходов блоков формирования максималь ного кода остальных контроллеров и с соответствующей группой входов-выходов процессора посредством двунаправленных связей 13, представляющих собой общую шину данных. К этой же шине 13 в каждом контроллере подключена группа входов регистра 1 кода вероятности, группа входов регистра 15 приоритета и группа входов регистра 1б кода режима. Группа вы:ходов регистра И соединена с, группой входов генератора 17 стробирующих импульсов, выход которого соединен с D-ВХОДОМ триггера 8. Группа входов блока 12 формирования максимального кода соединена с группой выходов блока 18 выработки векторов прерывания, первая группа входов которого соединена с группой выходов регистра 15 а вторая группа входов - с группой выходов регистра 16. Выход триггера b соединен с вторым входом элемента И9, выход триггера 8 соединен с входом 19 блока 18. Вход 20 сброса триг гера 6, а входы 21, 22 и 23 синхронизации регистров 1, 15 и 16 соответст-зенно соединены с выходами дешифратора 2, группа адресных входов которого соединена с группой однонаправленных связей 25 (или с шиной адреса) магистрали 3. Вход 2б разрешения работы дешифратора 2k соединен с однонаправленной связью 27, входящей в состав магистрали 3 и предназначенной для передачи признака интенсивности адерса, установив шегося на шине 23 адреса. Входы 28 и 29 триггера i предназначены соответственно для установки и сброса этого триггера. Сигналы на эти входы поступают от периферийного устрой ства (на фиг.2 не показано). Блок 12 формирования максимального кода (фиг.З) содержит три однотипные логические ячейки 30, 30 и а также кабельный усилитель 30ц, элемент И31. Логическая ячейка 30,, содержит кабельный усилитель - элемент И32, инвертор 33, элемент ИЛИ , и элемент И35. Блок 18 выработки векторов прерывания (фиг.l ) содержит элементы изб, 37, 38, 39 и элементы ИСКЛЮЧАЮЩЕЕ ИЛИ kO, ft1, k2, k3, выходы которых являются группой выходов блока 18 и соединены с входами блока 12. Генератор 17 импульсов (фиг. 5/) содержит инверторы , конденсатор 7, резистор 48, ij-x разрядный счетчик 9, элемент И-ИЛИ 50 и элемент ИСКЛЮЧАЮЩЕЕ ИЛИ 51. Расс/Ютрим принцип действия отдельных составных частей контроллера 2: . Триггеры 6 и 8 принимают информацию с входов О под действием положительного фронта сигнала на линии 10 и хранят ее вплоть до поступления очередного положительного фронта си|- нала на входы С. Сброс триггера 6 производится при поступлении сигнала логической единицы на вход 20 с соответствующего выхода дешифратора 2. Регистры 1, 15 и 16 принимают информацию с магистрали данных по положительнь1м фронтам сигналогц соответственно-на .входах 21, 22 и 23. Дешифратор 24 открывается при наличии логической единицы на входе 26. При наличии определенных кодовых комбинаций на адресной шине 25 на одном из выходов дешифратора формируется сигнал логической единицы. Эти кодовые комбинации (адреса) различны для разных контроллеров и задаются на этапе технического проектирования конкретной вычислительной системы. Таким образом, регистры , 15 и 1б являются программно-доступными по записи, а лриггёр 6 может быть сброшен программным путем. В качестве дешифратора может быть использована программируемая логическая матрица, постоянное или полупостоянное запоминающее устройство, вентильная схема и т.п. Блок 12 формирования максимального кода функционирует при наличии логической единицы на входе 11 (при нуле на этом входе блок 12 отключен от шины данных). Далее предполагается, что каждая из линий реализует функцию проводное ИЛИ по отношению к сигналам логических единиц. Други 907
ми словами, логическая единица, сформированная например элементом И32 , передается в линию независимо от состояния выходов аналогичных элементов И, расположенных в других контроллерах или в процессоре. Такая функция может быть реализована на элементах с открытым эмиттером с общим эмиттерным резистором, в отличие от магистрали, реализующей функцию проводное И, и реализованной на элементах с открытым коллектором и общим коллекторным резистром. Указанное отличие не является принципиальным - магистраль типа проводное ИЛИ принята за основу, как и в известном контроллере для упрощения описания.
Совокупность блоков 12, объединенных шиной данных, представляет собой, по существу распределенное приоритетное устройство. В результате взаимодействия блоков, у которых на входы 11 подана логическая единица, на шине данных устанавливается код, равный коду на шинах одного из блоков 12 а именно, того блока, у которого этот код максимален. Пусть, например, коды на линиях трех различных контроллеров постоянны и имеют следующий вид: 0101, 1001, 1011 (коды представлены в двоичной форме). После подачи сигналов на входы 11 соответствующих блоков, спустя время успокоения системы (заранее известное и подсчитанное по наихудшему случаю при проектировании), на шине 13 установится код 1G1I, который может быть прочитан процессором.
Формирование кода на шине -13 дэнных происходит последовательно, начиная со старшего разряда. Если в старшем разряде кода на шинах какоголибо контроллера присутствует гюгическая единица, то срабатывает соответствующий элемент 32, в результате чего в линию выдается единица. Таким образом, в эту линию выдают единицы все те блоки 12, у которых на входе старшего разряда присутствует логическая единица. Блоки 12, у которых на входах присутствуют логические нули, не выдерживают конкурентной борьбы и отключаются от магистрали, так как сигнал логической единицы от чужих блоков инвертируется элементом 33/f, на выходе элемента ИЛИ ЗЧ формируется логический нуль, закрывающий через элемент И 35 последующие разрядные ячейки 3(, 30 3
10
и элемент И31. Если ни один из бло ков 12 не получил на вход сигнала логической единицы, то в старшем разряде результирующего кода будет сформирован логический О. В этом случае сигнал логического нуля с этой линии, пройдя через инвектор 33 в виде логической единицы проходит через элемент ИЛИ и совместно с сигналом на входе 11 открывает вход запуска следующего разряда. Запуск ячейки 302 осуществляется также и при наличии единицы на входе по цепи: 3kj Таким образом, при равных условиях в старшем разряде борьба переносится в следующий разряд. При этом в линию выдают сигналы логических единиц все те блоки 12, которые выдержали первый тур отбора (по старшему разряду) и, кроме того, имен5т единицы на входах. Подобные операции выполняются последовательно во всех остальных разрядах;
Блок 18 выполняет функцию передач кода .b2. выходы (коц, ( о, С/)-без инвертирования или с инвертированием отдельных разрядов, или одновременно всех разрядов. Сигнал разрешает инвертирование, а единичные позиции кодаС(4СЛ-3|С1, определяют гюзиции разрядов кода Ъ }Ъ%Ь/гЬ подлежащие инвертированию. Например,
при ,,b4t),b2tefl001
на выходе блока 18 будет сформирован код СА. С С 2.-0010, так как остается неизменным лишь значение третьего разряда входного кода ЬА. остальные разряды инверторируются. Таким образом, любое число из диапазона to - 153 можно превратить в любое число из этого же диапазона, инвертируя некоторые (или все) его разряды. В приведенном выше примере число °ijQ превращается в число 2 .
В общем лиде С, (3 V б ) Л Ъ V
VCdftai)Ab, i 1,2,3,.
Генератор стробирующих импульсов (фиг.5) вырабатывает последовательности импульсов, приведенные на фиг. 9. Частота генератора F определяется в основном емкостью конденса тора ij. Частоты Fp генераторов разных контроллеров выбираются различными, например, из ряда: 10 мГц, 6,2 мГц, 2,1 мГц и т.д.; допуски на стабильность частоты могут быть достаточно большими, например i:20%. Эта свобода связана с тем, что каждый генератор используется как датчих случайного одноразрядного двоим него числа. В произвольные моменты времени выход генератора опрашивается сигналом, поступающим из про цессора по линии 10, и результат опроса запоминается в триггере 8. Вероятность (Е) обнаружения логичес кой единицы на выходе генератора оп ределяется степенью заполнения диаграммы положительными импульсами Е - S tr / Т . t6T / {обозначения приведены на фиг.9). Из рассмотренных диаграмм, привзедеиныхяа фиг.9, следует, что для данного примера реализации генератора вероятность обнаружения логической единицы на выходе генератора зависит от кода в регистре 1 и может принимать девять различны значений в диапазоне от О до 1. Рассмотрим основную идею построения предлагаемой вычислительной системЬ. Функционирование контроллера осу ществляется следующим образом. Каждый контроллер, многократно участвуя в конкурентной борьбе за право получения обслуживания со стороны процессора, случайным образом изменяет свой приоритет или вектор прерывания (эти поняти применительно к данной системе можно считать иден тичными). Это, однако, не приводит к неоднозначному выбору одного из контроллеров, так как процессор зна ет спектры изменения векторов прерываний всех контроллеров, входящих в систему, а сами эти спектры не пе ресекаются. Спектры векторов и вероятности выбора каждого вектора за даются при предварительной настройке контроллеров загрузкой соответст вующей информации в программно-доступные регистры всех контроллеров системы. Такой подход к проектированию вычислительной системы обеспечивает реализацию разнообразных демократичных дгсциплин обслуживания, при которых все без исключения периферийные устройства так или ина че получают обслуживание, а не оттесняются более сильными. Рассмотрим вопрос о выборе непересекающихся множеств спектров векторов прерывания. Для определенност будем считать, что имеются восемь контролеров, каждый из которых може генерировать лишь два различных век тора; Так как в этом случае суммарное число различных векторов составляет , то разрядность кода, отображающего эту величину, должна быть равна i или превышать k - в последнем случае открываются дополнительные возможности по формированию спектров. Далее предполагается, что разрядность равна , Исходная информация для построения спектров с учетом принятых ограничений приведена в таблице. Все коды представлены в виде десятичных чисел. Таблица позволяет определить дополнительный веткор по известному основному вектору, записанному в регистр приоритета, и содержимому регистра режима. Пусть, например, в регистр 15 приоритета одного из контроллеров записан код 1, а в регистр 1б режима этого контроллера вод . Выбирая элемент таблицы на пересечении соответствующей строки и столбца, получим код 9. Это означает, что при такой настройке данный контроллер способен генерировать два вектора - И и 9.Заметим,что те же векторы генерируются и при записи кода 9 в регистр приоритета с сохранением кода 7 в регистре режимаПолученная пара векторов 9 и I закрепляется за данным контроллером и не может быть использована в других контроллерах в силу необходимости соблюдения ус:ловия однозначной идентификации периферийного устройства. Далее для простоты предполагается, что во всех контроллерах системы в регистры режима всегда записан один и тот же код - в данном примере код 7. Использование разных кодов приводит к значительному увеличению числа способов задания спектров и поэтому в рамках данного описания не рассматривается. Указанное ограничение закрепляет столбец, соответствующий коду 7 в регистре режима. При этом для оставшихся контроллеров выделяются следующие пары векторов: О и 7; 1 и 6; 2 и 5; 3 и it; 8 и 13; 10 и 13; П и 12. Диаграммы, показанные на фиг,6-8 дают наглядное представление о распределении пар векторов между конт-, роллерами. Каждому контроллеру соответствует дуга, соединяющая основной и дополнительный векторы, представленные десятичными .числами, размещенными в порядке возрастания на числовой оси. Рассмотренному примеру для соответствует диаграмма, показанная на фиг.Уа, Из этой диаграммы видно, чтовсе восемь контроллеров делятся на две одинаковые группы - верхнюю и нижнюю. Контроллеры верхней группы обладают безусловным приоритетом над контроллерами нижней группы, а внутри группы (при равновероятном вы боре из двух векторов в каждом контроллере) наибольшим приоритетом обладает контроллер с наибольшей дугой. Пусть контроллеры К., К„ и К, генерируют , соответственно следующие векторы: О и 9; 3 и Ю; 6 и 15 (согласно ФИГ.УВ). При отработке прерывания каждый контроллер фиксирует одно из двух случайнь1х положений вектора и поддерживает его неизменным до окончания процедуры арбитража Пусть в интересующий нас проме)(уток времени контроллер К. выбрал вектор 9, контроллер К2 - вектор 3, контроллер К - вектор 6, а процессор выполняет команду, выбранную из ячейки памяти с адресом 2110 (все коды и адреса приводятся в десятичной записи). Получив сигнал запроса на обслуживание одновременно от трех контроллеров, процессор приостанавливает выполнение основной программы и запускает эти контроллеры в режиме распределенного арбитра, в результате чего на шине данных устанавливается максимальных код - 9. После запуска контроллеров процессор упрятывает в память информацию, необходимую для последующего продолжения выполнения программы с адреса 2111, а затем считывает с шины данIных код Э. Рассматривая этот код как :адрес ячейки памяти, проффесор извле кает из нее код OOtlZ, который в свою очередь, рассматривается как адрес начала подпрограммы обслуживания контроллера К« . Таким образом процессор переходит к выполнению последовательности команд, начиная с команды, записанной в ячейке памяти с адресом . Эта последовательность завершается командой ВЫХОД ИЗ ПРЕРЫВАНИЯ, которая записана в ячейке памяти с адресом 698. При выполнении этой команды ранее упрятанная в память информация помещается в соответствующие регистры процессора, и он пе90Н рггходит к выполнению последовательности команд, начиная с команды в ячейке 2111. Контроллеры К и К,, не получив обслуживания, продолжают формирование сигнала запроса. Процессор, обнаружив, что запрос не снят, повторяет описанную ранее процедуру и обслуживает один из контроллеров К или К,( именно - зависит от тоГО, в каком сочетании выпали пары чисел на этот раз: 3-15; 10-6 или 10-15) Загрузка регистров k, 15 и 16 производится последовательно. Для загрузки одного из трех регистров процессор выставляет на шине 13 данных нужный код, а на адресной шине 25 - адрес, присвоенный соотеетствующему регистру. Спустя время, достаточное для окончания переходных процессоров в адресной шине и для дешифрации адреса, процессор формирует сигнал истинности адреса на линии 27, который открывает выходы дешифратора, в результате чего информация с шины данных записывается в соответствующий регистр. Пусть в исходном состоянии заявки на обслуживание не поступают, а процессор выполняет основную программу. В каждом контроллере триггер находится в сброшенном состоянии, кабельный усилитель 5 выключен, в линиях 7 и 10 сигналы логических О триггер 6 сброшен, в триггере 8 хранится -О или 1 в зависимости от предыстории(предыстория не учитывается), регистры 1ч, 15 и 1б хранят информацию о настройке системы, на выходе блока 18 основной или дополнительный векторы 8 зависимости от состояния триггера В, блок 12 включен от магистрали, так как на вход 11 подан логический О с выхода закрытого элемента И9. Рассмотрим сналача случай, при котором лишь один контроллер требует обслуживания. Сигнал с периферийного устройства поступает на вход 28, устанавливает в единицу триггер k и в виде логической единицы передается кабельным усилителем 5 по линии 7 запроса в процессор. Процессор, как было описано выше, прерывает выполнение текущей программы и выдает сигнал разрешения по линии 10. По этому сигналу состояние триггера А переписывается
в триггер 6 во всех контроллерах системы. В тех контроллерах, у которых триггер t не был установлен в единицу, триггер 6 также остается в . сброшенном состоянии, закрывая через элемент ИЗ блок 12 формирования максимального кода, т.е. сохраняя отключенное состояние этого блока. В контроллере, у которого триггер 1 был установлен в единицу, при получении сигнала по линии 10 и после срабатывания триггера 6 открывается элемент И9 и блок 12 подключается к магистрали. В то же время триггер 8 фиксирует случайное значе4ние си1- нала (О или 1), снимаемого с выхода генератора 17 в момент прихода фронта разрешающего импульса по линии 10. В зависимости от значения этого сигнала с выходов блока 18 на входы блока 12 передается либо основной ( при нулевом сигнале),либо дополнительный вектор прерывания. Так как в данном случае конкуренты на магистрали отсутствуют, соответствующий вектор передается через блок 12 в шину 13 данных. После окончания переходных процессоров в цепи: 10-8-19 l8-12-13 процессор опрашивает шину 13 данных и, как показано выше, переходит на соответствующую подпрограмму через одну из двух ячеек памяти, отведенных данному контроллеру. После выхода на эту подпрограмму процессор программным путем сбрасывает триггер 6 через дешифратор 2 и приступает к обслуживанию периферийного устройства ,которое заключается, например, в перемотке ленты, снятию информации с датчиков, выдаче кода на цифро-аналоговые преобразователи и т.п.. Если периферийное
устройство удовлетворено обслуживанием и если в процессе обслуживания в этом устройстве не сложились ситуации, требующие повторного вмешательства со стороны процессора, то на вход 29 триггера с -периферийного устройства поступает сигнал сброса, в результате чего усилитель 5 выключается. Сигнал разрешения снимается процессором с линии 10 после считывания вектора с иины 13 данных. При этом контроллеры ( в данном случае - один контроллер) отключаются от шины данных. Заметим,что переход к подпрограмме через нулевой вектор возможен лишь при отсуствии конкурирующих контроллеров.
В случае, если к моменту запуска контроллеров по линии 10 сигналом разрешения в системе имеются несколько контроллеров, требующих обслуживания в этих контроллерах триггеры k установлены в единицу), все процессы, описанные ранее для одного контроллера, протекают параллельно в -каждом контроллере и завершаются процедурой формирования максимального вектора на шине 13 данных. Эта процедура рассмотрена при описании работы блока 12.
Эффективность использования предлагаемого контроллера зависит от его архитектурных и структурных особенностей, определяемых на стадии технического проектирования. Выигрыш в производительности за счет перераспределения функций между программным обеспечением и аппаратурой оценивается для каждой конкретной системы с использованием приведенных выше количественных характеристик и может достигать .
17 Формула изобретения 1. Контроллер с переменным приоритетом, содержащий триггер запроса, регистр приоритета, блок фор мирования максимального кода, выход триггера запроса соединен с выходом запроса контроллера, выход блока формирования максимального ко да подключен к информационному вход выходу контроллера, о т л и ч а юд и и с я тем, что, с целью сокращения времени обслуживания, в него введены генератор стробирующих импульсов, триггер режима, регистр ко да вероятности, регистр кода режима блок выработки векторов прерывания, триггер выбора вектора прерывания, дешифратор и элемент И, причем выхо элемента И подключен к разрешающему входу блока формирования максимального кода, вход которого соединен с выходом блока выработки векторов
18
907550 Продолжение таблицы прерывания, первый информационный вход которого соединен с выходом регистра приоритета, вход которого соединен с информационным входом-выходом контроллера и входом регистра кода вероятности, выход которого подключен к генератору стробирующих импульсов, выход которого соединен с информационным входом триггера выбора вектора прерывания, выход которого подключен ко входу переключения вектора блока выработки векторов прерывания, вход синхронизации триггера выбора вектора прерывания подключен к первому входу элемента И, входу синхронизации триггера режима и входу синхронизации контроллера, выход триггера режима соединен со вторым входом элемента И, информационный вход триггера режима соединен с выходом триггера запроса, вход регистра кода режима подключен к информационному входу-выходу контроллера, выход регистра кода режима соедине со вторым информационны входом блока выработки векторов пре рывания, информационный вход дешифратора подключен к адресному входу контроллера, выходы дешифратора ,подключены к управляющим входам регистра кода режима, регистра приоритета регистра кода вероятности и к входу сброса триггера режима, разрешающий вхот дешифратора соединен с разрешающим входом контроллера. 2. Контроллер по п.1, о т л и чающийся тем, что блок выра ботки векторов прерывания содержит последовательно соединенные группу двухвходовых элементов И и группу двухвходовых элементов ИСК/ЮЧЛЮЩЕЕ 9 20 ИЛИ, выходы которых подключены к выходу блока выработки векторов прерываний, а первые входы - к первому информационному входу этого блока, первые входы двухвходовых элементов И объединены и подключены к входу переключения вектора блока, вторыевходы двухвходовых элементов И подключены ко второму информационному входу блока, выходы элементов И соединены с вторыми входами соответствующих элементов ИСКЛОЧАЮЩЕЕ ИЛИ. Источники информации, принятые во вни |ание при экспертизе 1.Патент США № 3983550, кл, ЗЛО-172.5, опублик. 1976. 2.Патент Великобритании № 150885, кл. б lA, опублик, 1978.
Л
b,d
ь/,
)
Сч
W
J
1
37
38
|55Фиг.}
f
di
аз
Ог
ац
/7
li
f
A2
С Д {С Д c Д jc Д I с p
7 V /V / / / / 4/
X
Xy
Фиг. 5
а
Фиг. 6
Щ
П Т2
П W 3 0 7 6
5 i 3 Z
Авторы
Даты
1982-02-23—Публикация
1980-05-23—Подача