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

Номер патента: 907550

Авторы: Овсянникова-Панченко, Петрова, Шевкопляс

Есть еще 9 страниц.

Смотреть все страницы или скачать ZIP архив

Текст

Опубликовано 23, 02. 82. Бюллетень Я 7 ао делан нзобретеннй н етнрытнйДата опубликования описания 2, 02, 82 Э. П.Овсянникова-Панченко, Л. И. Петрова и Б, В. Юевкопляс(54) КОНТРОЛЛЕР С ПЕРЕМЕННЫМ ПРИОРИТЕТОИ Изобретение относится к цифровой вычислительной технике .и может быть использовано в вычислительных системах, построенных по принципу об" щей шины, с развитой периферийной частью.В таких системах центральный процессор периодически прерывает выполнение основной программы для. обслуживания периферийных устройств, от которых поступают заявки на обслуживание. Если интенсивность поступления заявок велика, то возможно образование очереди, в этом случае для ее ликвидации принимается та или иная дисциплина обслуживания.Известна вычислительная система, содержащая параллельно соединенные двунаправленными и однонаправлен" ными связями процессор, и ряд контроллеров, объединенных между собой дополнительными двунаправленными свя" зями, причем каждый контроллер со" держит первичные и вторичные адресные переключатели, первичный и вто- ричный блоки сравнения, а также два блока приемопередатчиков, соединенных с входами соответствующих блоков сравнения, включенных последова" тельно и подключенных к соответст" вующим адресным переключателям 11. В процессе работь 1 системы осуществляется автоматический выбор наиболее приоритетного контроллера ( из числа требующих обслуживания) без вмешательства процессора в акт выбора 1,арбитража ). Эта процедура оказывается возможной благодаря оперативному обмену информацией между всеми контроллерами через дополнительные двунаправленные связи, вследствие чего каждый контроллер знает о состоянии всех остальных контроллеров системы и самостоятельно оценивает исход конкурентной борьбы. В случае успеха победивший контроллер обменивается информацией с процессором.19 907троллера, выход регистра кода режима соедине" со вторым информационнымвходом блока выработки векторов прерывания информационный вход дешифратора подключен к адресному входу контроллера, выходы дешифратора,подключены к управляющим входам регистра кода режима, регистра приоритета, регистра кода вероятностии к входу сброса триггера режима,разрешающий вхо 1 дешифратора соединенс разрешающим входом контроллера,2. Контроллер по п,1, о т л ич а ю щ и й с я тем, что блок выработки векторов прерывания содержитпоследовательно соединенные группудвухвходовых элементов И и группудвухвходовых элементов ИСКЛЮЧАЮЩЕЕ 550 20ИЛИ, выходы которых подключены к выходу блока выработки векторов прерываний, а первые входы - к первому информационному входу этого блока,первые входы двухвходовых элементовИ объединены и подключены к входупереключения вектора блока, вторыевходы двухвходовых элементов И подключены ко второму информационному 1 О входу блока, выходы элементов И соединены с вторыми входами соответствующих элементов ИСКЛЮЧАЮЩЕЕ ИЛИ,Источники информации,35 принятые во внимание при экспертизе1. Патент СШЯ 1 3983550,кл. 340- 172 5, опублик, 1976.2. Патент Великобритании1508854, кл, 8 4 А, опублик, 1978.=МИ кэз 592/58 Тираж 732 ВНИИПИ Государственного комитета по делам изобретений. и открыти 113035, Москва Ж, Раушская н907550 3Недостатки этой системы - жесткость приоритетной структуры, повышенная сложность контроллеров, наличие дополнительной информационной магистрали.Наиболее близким по технической сущности к предлагаемому является контроллер, содержащий триггер запроса, соединенный с входом кабельного усилителя, выход которого па раллельно соединен с выходами аналогичных кабельных усилителей остальных контроллеров и с одним иэ входов процессора посредством одной из однонаправленных связей, регистр приори тета и блок формирования максимального кода группа входов блока Формирования максимального кода соединена с группой выходов регистра приоритета, группа входов-выходов блока формирования максимального кода параллельно соединена с аналогичными группами входов-выходов блоков формирования максимального кода остальных контроллеров и с соответствующей груп 5 пой входов-выходов процессора посредством указанных двунаправленных связей, причем один из выходов процессора параллельно соединен с входами разрешения работы всех контроллеров посредством другой однонаправленной связи 2. Идея построения известного устройства состоит в децентрализации функций арбитража, т.е, идентифика 35 ции источника прерывания, имеющего максимальный приоритет, Арбитр как таковой в системе отсутствует, его функции выполняются совокупностью40 блоков формирования максимального кода, объединенных общей магистралью. Запросы на обслуживание поступают от периферийных устройств через соответствующие контроллеры в общую линию запросов. При наличии сигнала45 на этой линии процессор посылает сигнал разрешения работы параллельно всем контроллерам. Одновременно с этим процессор приостанавливает выполнение текущей программы и запоми нает слово состояния программыпараметры возврата). К этому времени в результате одновременной и совместной работы всех контроллеров, посылавших запросы, на шине данных устанавливается код, равный коду приоритета Одного из устройств, посылавших запрос, а именно, того уст 4ройства, чей код приоритета максимален. Процессор считывает этот код( вектор прерывания)с шины данных и,как обычно, использует его в качестве косвенного адреса начала подпрограммы обслуживания соответствующего периферийного устройства,После завершения выполнения этой подпрограммы процессор переходит к выполнению основной программы с прерванного места,Основной недостаток известногоконтроллера состоит в том, что приперегрузках вычислительной системы,связанных с интенсивными потоками запросов от различных периферийных устройств (каналов), может еказаться,что некоторые низкоприеритетные контроллеры в течение некэтерого времени вообще не получат обслуживания,так как они постоянно оттесняютсяболее приоритетными контроллерами,что не всегда допустимо. Этот недостаток может быть компенсирован эасчет снижения производительности системы и резкого увеличения времениреакции на прерывание. В этом случае на программное обеспечение возлагаются функции динамического перераспределения приоритетов каналовпутем записи кодов в регистры приоритетов контроллеров и соответствующего динамического изменения таблицы начальных адресов подпрограммобслуживания каналов. В процессе такой перестройки прерывания обрабатываться не .могут, так как возможна неоднозначная идентификация источникапрерывания. Указанная перестройкадолжна выполняться по. возможности чаще, чтобы дисциплина обслуживания каналов была более демократичной, Однако с увеличением частоты перестройкив конечном счете окажется, что этаперестройка стала самоЦелью и у процессора не остается времени на выполнение основной с фоновой) задачи.Таким образом, недостатком контроллера является большое время обслуживания при работе с высокоинтенсивными источниками запросных сигналов.Цель изобретения - сокращениевремени обслуживания.Укаэанная цель достигается тем,что в контроллер с переменным приоритетом, содержащий триггер запроса,регистр приоритета, блок формирования максимального кода, выход тригстробирующих импульс, триггер режима,регистр кода вероятности, регистркода режима, блок выработки векторовпрерывания, триггер выбора векторапрерывания,дешифратори элемент И,причем выход элемента И подключен кразрешающему входу блока формирования максимального кода, вход которого соединен с выходом блока выработ 1 О ки векторов прерывания, первый инфор мационный вход которого соединен свыходом регистра приоритета, входкоторого соединен с информационнымвходом-выходом контроллера и входомрегистра кода вероятности, выход которого подключен к генератору стробирующих импульсов, выход которого 20 соединен с информационным входом триггера выбора вектора прерывания, выход которого подключен ко входу пере-гз ключения вектора блока выработки векторов прерывания, вход синхронизации триггера выбора вектора прерывания подключен к первому входу элемента И, входу синхронизации триггера ре- зо жима и входу синхронизации контроллера, выход триггера режима соединен со вторым входом элемента И, информационный вход триггера режима соединен с выходом триггера запроса, вход регистра кода режима подключен к информационному входу-выходу контроллера, выход регистра кода режима соединен со вторым информационным входом блока выработки векторов прерывания, информационный вход дешифратора подключен к адресному входу контроллера, выходы дешифратора подключены к управляющим входам регистра кода режима, регистра приоритета, 4 регистра кода вероятности и к входу сброса триггера режима, разрешающий вход дешифратора соединен с разрешающим входом контроллера.Кроме того, блок выработки векторов прерывания содержит последовательно соединенные группу двухвходо" вых элементов И и группу двухвходовых элементов ИСКЛЮЧАЮЦЕЕ ИЛИ, выходы которых подключены к выходу блока выработки векторов прерываний, а. первые входы - к первому информационному входу этого блока, первые входы двухвходовых элементов И объе 5 90755 гера запроса соединен с выходом Запроса контроллера, выход блока формирования максимального кода подключен к информационному входу-выходу контроллера, введены генератор динены и подключены к входу переклю чения вектора блока, вторые входы двухвходовых элементов И подкгючены ко второму информационному входу блока, выходы элементов И соединены со вторыми входами соответствующих элементов ИСКЛЮЧАЮЩЕЕ ИЛИ.Благодаря новым признакам обеспечивается вероятностный выбор одного из конкурирующих каналов, в результате чего низкоприоритетные каналы периодически реализуют шансы на обслуживание ( без дополнительных потерь времени), а не грубо оттесняют ся более приоритетными каналами.На фиг. 1 представлена структурная схема типовой вычислительной системы; на фиг. 2 - структурная схема контроллера; на фиг. 3 - структурная схема блока формирования максимального кода; на фиг, 1 - структурная схема блока выработки векторов прерывания; на фиг. 5 - структурная схема соединенных между собой генератора стробирующих импульсов и регистра кода вероятности; на фиг. 6-8 - диаграммы колебаний векторов прерывания, соответствующие различным кодам регистра кода режима;на фиг. 9 - временные диаграммы работы генератора стробирующих импульсов.Вычислительная система построена по общепринятой схеме ( фиг.1) и содержит процессор 1 и ряд контроллеров 24, 222 г объединенные общей магистралью 3, представляющей собой набор однонаправленных и двунаправленных связей. Каждый контроллер 2,(, 2 21, соединен с одни или несколькими периферийными устрой. ствами ( на фиг.1 не показаны).Контроллер 2, 11и (фиг,2) содержит триггер ч запроса, выход которого соединен с входом кабельного усилителя 5 и с О - входом триггера 6 режима. Выход кабельного усилителя 5 параллельно соединен с выходами аналогичных кабельных усилителей остальных контроллеров и с одним из входов процессора посредством однонаправленной связи , входящей в состав магистрали 3. Термин однонаправленная связь используется в том смысле, что источником сигнала логической единицы может быть любой контроллер или группа контроллеров, а приемником - лишь процессор. Синхро" низирующий вход С триггера 6 соединен с синхронизирующим входом С триг 907550максимального кода, Группа входов-вы О ЗО 35 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, а также входы 21, 22 и 23синхронизации регистров 14, 15 и 16соответстзенно соединены с выходамидешифратора 24, группа адресных входов которого соединена с группой однонаправленных связей 25 ( или с "шиной адреса" ) магистрали 3. Вход 26разрешения работы дешифратора 24соединен с однонаправленной связью27, входящей в состав магистрали 3и предназначенной для передачи признака интенсивности адерса, установившегося на шине 25 адреса. Входы 28и 29 триггера 4 предназначены соответственно для установки и сбросаэтого триггера. Сигналы на эти входы поступают от периферийного устройства (на фиг.2 не показано).Блок 12 формирования максимального кодаФиг.3) содержит три однотипные логические ячейки 301, 30 и 30 а также кабельный усилитель 15 20 элемент И 31. Логическая ячейка 30Эсодержит кабельный усилитель - элемент И 32,1, инвертор 33, элементИЛИ 34 1, и элемент И 35,Блок 18 выработки векторов прерывания 1 фиг.4 ) содержит элементыИ 36, 37, 38, 39 и элементы ИСК 10 ЧАЮЩЕЕ ИЛИ 40, 41, 42, 43, выходыкоторых являются группой выходов блока 18 и соединены с входами блока 12,Генератор 17 импульсов ( Фиг.5)содержит инверторы 44-46, конденсатор 47, резистор 48, 4-х разрядныйсчетчик 49, элемент И-ИЛИ 50 и элемент ИСКЛЮЧАЮЩЕЕ ИЛИ 51.Рассмотрим принцип действия отдельных составных частей контроллера 2 .Триггеры 6 и 8 принимают информацию с входов О под действием положительного фронта сигнала на линии10 и хранят ее вплоть до поступленияочередного положительного Фронта сигнала на входы С. Сброс триггера 6производится при поступлении сигнала логической единицы на вход 20 ссоответствующего выхода дешифратора 24.Регистры 14, 15 и 16 принимаютинформацию с магистрали данных поположительным фронтам сигналом соответственно на входах 21, 22 и 23.Дешифратор 24 открывается при наличии логической единицы на входе 26,При наличии определенных кодовых комбинаций на адресной шине 25 на одном из выходов дешифратора 24 формируется сигнал логической единицы, Этикодовые комбинации адреса) различны для разных контроллеров и задаютсяна этапе технического проектирования конкретной вычислите.чьной системы. Таким образом, регистры 14,15 и 16 являются программно-доступными по записи, а т риггер 6 можетбыть сброшен программным путем,В качестве дешифратора может бытьиспользована программируемая логическая матрица, постоянное или полупостоянное запоминающее устройство,вентильная схема и т.п.Блок 12 формирования максимального кода функционирует при наличиилогической единицы на входе 11 (принуле на этом входе блок 12 отключенот шины данных), Далее предполагается, что каждая из линий реализуетфункцию проводное ИЛИ по отношениюк сигналам логических единиц. Други907550 ми словами, логическая единица, сформированная например элементом И 32 передается в линию независимо от состояния выходов аналогичных элементов И, расположенных в других контроллерах или в процессореТакая функция может быть реализована на элементах с открытым эмиттером с общим эмиттерным резистором, в отличие от магистрали, реализующей функцию 10 проводное И, и реализованной на элементах с открытым коллектором и общим коллекторным резистром. Указанное отличие не является принципиальным - магистраль типа проводнос ИЛИ 15 принята за основу, как и в известном контроллере для упрощения описания.Совокупность блоков 12, объединенных шиной данных, представляет собой, по существу распределенное приоритет ное устройство. В результате взаимодействия блоков, у которь 1 х на входы 11 подана логическая единица, на шине данных устанавливается код, равный коду на шинах одного из блоков 1225 а именно, того блока, у которого этот код максимален. Пусть, например, коды на линиях трех различных контроллеров постоянны и имеют следующий вид: 0101, 1001, 1011 (коды представлены в двоичной форме), После подачи сигналов на входы 11 соответствующих блоков, спустя время успокоения системы (заранее известное и подсчитанное по наихудшему случаю при проектировании), на шине 13 установится код 1.и 11, который может быть прочитан процессором.формирование кода на шине 13 данных происходит последовательно, на чиная со старшего разряда. Если в старшем разряде кода на шинах какого. либо контроллера присутствует логическая единица, то срабатывает соответствующий элемент 32, в результате чего в линию выдается единица. Таким образом, в эту ливию выдает единицы все те блоки 12, у которых на входе старшего разряда присутствует логическая единица. Блоки 12,50 у которых на входах присутствуют логические нули, не выдерживают конкурентной борьбы и отключаются от магистрали, так как сигнал логической единицы от чужих блоков инвертируется55 элементом 334, на выходе элемента ИЛЙ 34,1 формируется логический нуль, закрывающий через элемент И 35 пос" ледующие разрядные ячейки 3, 30 10 и элемент И 31. Если ни один из блоков 12 не получил на вход сигналалогической единицы, то в старшемразряде результирующего кода будетсформирован логический "О", В этомслучае сигнал логического нуля сэтой линии, пройдя через инвектор 33в виде логической единицы проходитчерез элемент ИЛИ 34 1 и совместнос сигналом на входе 11 открываетвход запуска следующего разряда. Запуск ячейки 30 осуществляется такжеи при наличии единицы на входе поцепи: 341- 35,1, Таким образом, приравных условиях в старшем разрядеборьба переносится в следующий разряд, При этом в линию выдают сигналылогических единиц все те блоки 12,которые. выдержали первый тур отбора( по старшему разряду) и, кроме того,имеют единицы на входах, Подобныеоперации выполняются последовательно во всех остальных разрядах;Блок 18 выполняет функцию передачикода Ь 4 ЬЬ 2 Ьна выходы (код С ССС 1) без инвертирования или с инвертированием отдельных разрядов, илиодновременно всех разрядов. Сигнал0=1 разрешает инвертирование, а единичные позиции кодас 44 ОС 1 С 1 определяют позиции разрядов кода ЪЬЬЬподлежащие инвертированию, Например,пр 0=1 О 4 С 1 с 1 а С 1 =1011,Ь 4 Ьфу на выходе блока 18 будет сформированкод С С С С 4=.0010, так как остается неизменным лищь значение третьегоразряда входного кода ЬЬЬ Др остальные разряды инверторируются. Такимобразом, любое число из диапазона1.0 - 151 можно превратить в любоечисло из этого же диапазона, инвер 4 атируя некоторые (или все) его разряды. 8 приведенном выше примере число91 превращается в число 2,В общем виде С,=(Ю М б )/ Ь,; У1(Д ДС 1) Х 1 -1,2,3,4,Генератор стробирующих импульсов(фиг.5) вырабатывает последовательности импульсов, приведенные нафиг, 3. Частота генератора Г опреде"ляется в основном емкостью конденсатора 47. Частоты Га генераторов разных контроллеров выбираются различными, например, из ряда: 10 мГц,6,2 мГц, 2,1 мГц и т.д.; допускина стабильность частоты могут бытьдостаточно большими, например +204.Эта свобода связана с тем, что каждый генератор используется как дат5 1 О 15 20 25 ЗО 35 40 45 50 55 11 90чу случайного одноразрядного двоич;ного числа. В произвольные моментывремени выход генератора опрашивается сигналом, поступающим из процессора по линии 10, и результатопроса запоминается в триггере 8.Вероятность (Е) обнаружения логической единицы на выходе генератора определяется степенью заполнения диаграммы положительными импульсамиЕ"-ЕС т(обозначения приведены на фиг.9),Из рассмотренных диаграмм, привведенных на Фиг.9, следует, что дляданного примера реализации генератора вероятность обнаружения логической единицы на выходе генераторазависит от кода в регистре 14 и может принимать девять различных значений в диапазоне от 0 до 1,Рассмотрим основную идею построения предлагаемой вычислительнойсистемы.Функционирование контроллера осуществляется следующим образом. Каждый контроллер, многократно участвуя в конкурентной борьбе за правополучения обслуживания со стороныпроцессора, случайным образом изменяет свой приоритет или вектор прерывания (эти поняти применительнок данной системе можно считать идентичными). Это, однако, не приводитк неоднозначному выбору одного изконтроллеров, так как процессор знает спектры изменения векторов прерываний всех контроллеров, входящихв систему, а сами эти спектры не пересекаются. Спектры векторов и вероятности выбора каждого вектора задаются при предварительной настройке контроллеров загрузкой соответствующей информации в программно-доступные регистры всех контроллеровсистемы. Такой подход к проектированию вычислительной системы обеспечивает реализацию разнообразныхдемократичных дисциплин обслуживания при которых все без исключенияпериферийные устройства так или иначе получают обслуживание, а не оттесняются более сильными.Рассмотрим вопрос о выборе непересекающихся множеств спектров векторов прерывания. Для определенностибудем считать, что имеются восемьконтролеров, каждый из которых можетгенерировать лишь два различных век 7550 12 тора. Так как в этом случае суммарное число различных векторов составляет 8 х 2=16, то разрядность кода, отображающего эту величину, должна быть равна 4 или превышать 4 - в последнем случае открываются дополнительные возможности по формированию спектров. Далее предполагается, что разрядность равна 4.Исходная информация для построения спектров с учетом принятых ограничений приведена в таблице. Все коды представлены в виде десятичных чисел. Таблица позволяет определить дополнительный веткор по известному основному вектору, записанному в регистр приоритета, и содержимому регистра режима. Пусть, например, в регистр 15 приоритета одного из контроллеров записан код 14, а в регистр 16 режима этого контроллера вод В=7, Выбирая элемент таблицы на пересечении соответствующей строки и столбца, получим код 9. Это означает, что при такой настройке данный контроллер способен генерировать два вектора - 14 и 9.Заметим,что те же векторы генерируются и при записи кода 9 в регистр приоритета с сохранением кода 7 в регистре режима. Полученная пара векторов 9 и 14 закрепляется за данным контроллером и не может быть использована в других контроллерах в силу необходимости соблюдения условия однозначной идентификации периферийного устройства. Далее для простоты предполагается, что во всех контроллерах системы в регистры режима всегда записан один и тот же код - в данном примере код 7.Использование разных кодов приводит к значительному увеличению числа способов задания спектров и поэтому в рамках данного описания не рассматриваетсл. Указанное ограничение закрепляет столбец, соответствующий коду 7 в регистре режима. При этом для оставшихся контроллеров выделяются следующие пары векторов: 0 и 7;1 и 6; 2 и 5; 3 и 4; 8 и 15; 10 и 13 11 и 12.Диаграммы, показанные на фиг.6-8 дают наглядное представление о распределении пар векторов между контроллерами. Каждому контроллеру соответствует дуга, соединяющая основной и дополнительный векторы, представленные десятичными, числами, размещенными45 1390755в порядке возрастания на числовоиоси. Рассмотренному примеру для В=7соответствует диаграмма, показаннаяна фиг.7 а. Из этой диаграммы видно,что все восемь контроллеров делятсяна две одинаковые группы - верхнююи нижнюю. Контроллеры верхней группыобладают безусловным приоритетомнад контроллерами нижней группы, авнутри группы ( при равновероятном вы Оборе из двух векторов в каждом контроллере) наибольшим приоритетом обладает контроллер с наибольшей дугой,Пусть контроллеры К, К и Кгенерируют , соответственно следующиевекторы: 0 и 9; 3 и 1 О; 6 и 15 согласно фиг.7 в ). При отработке прерывания каждый контроллер фиксируетодно из двух случайных положенийвектора и поддерживает его неизменным до окончания процедуры арбитража,Пусть в интересующий нас промежутоквремени контроллер К 1 выбрал вектор9, контроллер К 2 - вектор 3, контроллер К - вектор 6, а процессорвыполняет команду, выбранную изячейки памяти с адресом 2110 ( всекоды и адреса приводятся в десятичной записи). Получив сигнал запросана обслуживание одновременно оттрех контроллеров, процессор приостанавливает выполнение основной программы и запускает эти контроллерыв режиме распределенного арбитра,35в результате чего на шине данных устанавливается максимальных код - 9,После запуска контроллеров процессор упрятывает в память информацию,необходимую для последующего продоложения выполнения программы с адреса12111, а затем считывает с шины данных код 9. Рассматривая этот код какадрес ячейки памяти, проффесор извлекает из нее код 00412, который всвою очередь, рассматривается какадрес начала подпрограммы обслуживания контроллера К . Таким образом,процессор переходит к выполнениюпоследовательности команд, начинаяч ч 50с команды, эаписаннои в ячеике па"мяти с адресом 00412.Эта последовательность завершается командой нВЫХСД ИЗ ПРЕРЫВАНИЯ",которая записана в ячейке памяти садресом 698. При выполнении этойкоманды ранее упрятанная в памятьинформация помещается в соответствующие регистры процессора, и он пе 0 14реходит к выполнению последовательности команд, начиная с команды вячейке 2111.Контроллеры К и КЗ, не получивобслуживания, продолжают формирование сигнала запроса, Процессор, обнаружив, что запрос не снят, повторяет описанную ранее процедуру и обслуживает один из контроллеров Кили К ,;акой именно - зависит от того, в каком сочетании выпали парычисел на этот раэ: 3-6; 3-15; 10-6или 10-15Загоузка регистров 14, 15 и 16производится последовательно. Длязагрузки одного из трех регистровпроцессор выставляет на шине 13 данных нужный код, а на адресной шине25 - адрес, присвоенный соответствующему регистру, Спустя время, достаточное для окончания переходныхпроцессоров в адресной шине и длядешифрации адреса, процессор формирует сигнал истинности адре -а налинии 27, который открывает выходыдешифратора, в результате чего информация с шины данных записываетсяв соответствующий регистр,Пусть в исходном состоянии заявкина обслуживание не поступают, а процессор выполняет основную программу.В каждом контроллере триггер 4 находится в сброшенном состоянии, кабельный усилитель 5 выключен, в линиях 7 и 10 сигналы логических "0",триггер 6 сброшен, в триггере 8 хранится "0" или "1" в зависимости отпредысториипредыстория не учитывается), регистры 14, 15 и 16 хранятинформацию о настройке системы, навыходе блока 18 основной или дополнительный векторы в зависимости отсостояния триггера 8, блок 12 включен от магистрали, так как на вход11 подан логический "0" с выхода закрытого элемента И 9.Рассмотрим сналаца случай, при котором лишь один контроллер требуетобслуживания,Сигнал с периферийного устройствапоступает на вход 28, устанавливаетв единицу триггер 4 и в виде логической единицы передается кабельнымусилителем 5 по линии 7 запроса впроцессор. Процессор как было описано выше, прерывает выполнение текущей программы и выдает сигнал разрешения по линии 10. По этому сигналусостояние триггера 4 переписывается15 Код в регистре режима ( В ) Код в реги 14 0 1 10 15 12 13 стреприоритета 10 9075 в триггер 6 во всех контроллерах системы. В тех контроллерах, у которых триггер 4 не был установлен в единицу, триггер 6 также остается в сброшенном сбстоянии, закрывая через 5 (элемент И 9 блок 12 формирования максимального кода, т,е. сохраняя отключенное состояние этого блока. В контроллере, у которого триггер был установлен в единицу, при полу чении сигнала по линии 10 и после срабатывания триггера 6 открывается элемент И 9 и блок 12 подключается к магистрали. В то же время триггер 8 фиксирует случайное значение сигнала ("0" или "1"), снимаемого с выхода генератора 17 в момент прихода фронта разрешающего импульса по линии 10. В зависимости от значения этого сигнала с выходов блока 18 на 20 входы блока 12 передается либо основной ( при нулевом сигнале), либо дополнительный вектор прерывания. Так как в данном случае конкуренты на магистрали отсутствуют, соответст вующий вектор передается через блок 12 в шину 13 данных. После окончания переходных процессоров в цепи: 10-8- -19-18-12-13 процессор опрашивает ши. ну 13 данных и, как показано выше, переходит на соответствующую подпрограмму через одну из двух ячеек памяти, отведенных данному контроллеру. После выхода на эту подпрограмму процессор программным путем сбрасывает триггер 6 через дешифратор 24 и приступает к обслуживанию периферийного устройства,которое заключается, например, в перемотке ленты, снятию информации с датчиков, выдаче кода на цифро-аналоговые преобразователи и т.п Если периферийное 0 1 2 3 4 5 6 1 0 3 2 5 4 7 2 3 0 1 6 7 3 2 1 0 7 6 5 50 16устройство удовлетворено обслуживанием и если в процессе обслуживания в этом устройстве не сложились ситуации, требующие повторного вмешательства со стороны процессора, то на вход 29 триггера 4 с периферийного устройства поступает сигнал сброса в результате чего усилитель 5 выключается. Сигнал разрешения снимается процессором с линии 10 после считывания вектора с шины 13 данных. При этом контроплеры ( в данномслучае - один контроллер) отключаются от шины данных, Заметим,чтопереход к подпрограмме через нулевой вектор возможен лишь при отсуствии конкурирующих контроллеров,В случае, если к моменту запуска контроллеров по линии 10 сигналом разрешения в системе имеются несколько контроллеров, требующих обслуживания ( в этих контроллерах триггеры 4 установлены в единицу), все процессы, описанные ранее для одного контроллера, протекают параллельно в каждом контроллере и завершаются процедурой формирования максимального вектора на шине 13 данных. Эта процедура рассмотрена при описании работы блока 12.Эффективность использования предлагаемого контроллера зависит от его архитектурных и структурных особенностей, определяемых на стадии технического проектирования. Выигрыш в производительности за счет перераспределения функций между программным обеспечением и аппаратурой оценивается для каждой конкретной системы с использованием приведенных выше количественных характеристик и может достигать 20-40/. 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 1218Продолжение таблицы 907550 Код врегистре Код в регистре режима (В) 3 4 5 6 7 8 0 11 1 1 г 13 14 10 при- ори- тета 17 0 1 2 3 12 13 5 б 14 15 8 9 10 5 4 7 8 1 0 3 2 13 12 15 14 9 8 11 1 Об 7 4 5 2 3 0 1 14 15 12 13 10 11 8 9 7 6 5 4 3 2 1 0 15 148 9 10 11 12 13 14 15 0 1 13122 3 11 10 9 85 б 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 12 12 13 14 15 8 9 10 11 4 5 б 7 0 1 2 3 13 13 12 15 14 9 8 11 10 5 4 7 б 1 0 3 2 14 14 15 12 13 10 11 8 9 6 7 4 5 2 3 0 1 15 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 О Формула изобретения 1. Контроллер с переменным приоритетом, содержащий триггео заао проса, регистр приоритета, блок Фор" мирования максимального кода, выход триггера запроса соединен с выходом запроса контроллера, выход блока формирования максимального кода подключен к информационному входу 45 выходу контроллера, о т л и ч а ю,ц и й с я тем, что, с целью сокращения времени обслуживания, в него введены генератор стробирующих импульсов, триггер режима, регистр ко- о да вероятности, регистр кода режима, блок выработки векторов прерывания, триггер выбора вектора прерывания, дешифратор и элемент И, причем выход элемента И подключен к разрешающему Ы входу блока формирования максимального кода, вход которого соединен с выходом блока выработки векторов прерывания, первый информационныйвход которого соединен с выходом регистра приоритета, вход которогосоединен с информационным входом-выходом контроллера и входом регистракода вероятности, выход которого подключен к генератору стробирующих импульсов, выход которого соединен синформационным входом триггера выбора вектора прерывания, выход которого подключен ко входу переключения вектора блока выработки векторов прерывания, вход синхронизации триггера выбора вектора прерывания подключен к первому входу элемента И, входу синхронизации триггера режима и входу синхронизации контроллера, выход триггера режима соединен со вторым входом элемента И,информационный вход триггера режимасоединен с выходом триггера запроса,вход регистра кода режима подключенк информационному входу-выходу кон

Смотреть

Заявка

2972199, 23.05.1980

ПРЕДПРИЯТИЕ ПЯ Р-6429

ОВСЯННИКОВА-ПАНЧЕНКО ЭЛИНА ПАВЛОВНА, ПЕТРОВА ЛЮДМИЛА МИХАЙЛОВНА, ШЕВКОПЛЯС БОРИС ВЛАДИМИРОВИЧ

МПК / Метки

МПК: G06F 13/362, G06F 9/50

Метки: контроллер, переменным, приоритетом

Опубликовано: 23.02.1982

Код ссылки

<a href="https://patents.su/17-907550-kontroller-s-peremennym-prioritetom.html" target="_blank" rel="follow" title="База патентов СССР">Контроллер с переменным приоритетом</a>

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