группой входов группы синхровходов устройства, группа выходов первого блока элементов И подключена к группе информационных входов первого блока памяти, группа адресных входов которого соединена с группой выходов приоритетного шифратора и группой адресных входов второго блока памяти группа выходов которого подключена к первой группе входов второго блока элементов И, вторая группа входов которого соединена с группой выходов первого блока памяти, группа выходов второго блока элементов И подключена к группе входов второго элемента ИЛИ, выход первого элемента ИЛИ блока управления соединен с первым входом второго элемента ИЛИ блока управления, второй вход второго элемента ИЛИ блока управления подключен к выходу третьего элемента И, выход второго элемента ИЛИ блока управле1
Изобретение относится к вычислительной технике, к устройствам приоритетного обслуживания запросов и может найти применение в вычислительных системах, работающих в реальном масштабе времени.
Цель изобретения - расширение области применения за счет формирования не только номеров запросов, но и номеро в разрешенных к запуску задач, соответствующих номерам поступивших запросов.
На фиг.1 изображена структурная схема устройства; на фиг.2 - структурная схема блока управления.
Устройство содержит регистр f прерываний, регистр 2 масок, блок 3 : элементов И, приоритетный шифратор 4, элемент ИЛИ 5, триггер 6, блок 7 памяти, блок 8 памяти, блок 9 элементов И, элемент ШШ 10 и блок 11 управления, группу запросных входов 12 устройства, группу выходов 13 регистра 1, группу выходов 14 регистра 2, группу выходов 15 блока 3, группу информационных выходов 16 устройства, группу кодовых входов 17 устройства, rpjmny синхровходов 18
ния соединен с прямым входом второго элемента И, выход которого подключен к прямому входу третьего элемента И и первому входу третьего элемента ИЛИ, второй вход которого является четвертым входом группы синхровходов устройства, третья группа входов второго блока элементов И подключена к группе выходов дешифратора, группа входов которого соединена с группой информационных выходов счетчика и является второй группой информационных выходов устройства, выход третьего элемента ШШ соединен со счетным входом счетчика, выход переполнения которого подключен к четвертому информационному входу регистра состояний и к инверсному входу третьего элемента И, выход второго элемента ИЛИ соединен с инверсным входом второго элемента И.
устройства, выходы 19 блока 7, выход 20 элемента НШ 5, выход 21 прерывания устройства, выходы 22 блока 8, выходы 23 блока 9, входы 24 блока 9, выход 25 элемента ИЛИ 10, установочный вход 26 триггера 6, груп- .пу кодовых выходов 27 устройства, группу информационных выходов 28 устройства.
Блок 11 управления (фиг.2) содержит дешифратор 29, регистр 30 состояний, элемент ШШ 31, элемент
ШШ 32, элементы И 33-35, счетчик 36, элемент ШШ 37,
Устройство используется совмест- но с цифровой ЭВМ. Все его выходы и входы, кроме входа 12, подключаются к этой ЭВМ.
. Группа запросных входов 12 необходима для приема сигналов внешних запросов и дальнейшей записи их в регистр прерываний.
Группа информационных выходов 16 служит для вьадачи в ЭВМ кодов номеров поступивших запросов.
Группа кодовых входов 17 используется для приема параллельного кода иэ ЭВМ и передачи этого кода на
31
группы входов регистра прерываний и регистра масок. Один разряд этого кода подается на кодовый вход первого и второго блоков памяти. Группа синхровходов 18 предназначена дпя передачи управляющих сигналов в устройство. Причем первый вход этой группы является входом управления записью в регистр масок, второй вход - входом управления запи- СЬЮ в регистр прерываний, третий и четвертый входы - входами синхронизации работы блока 11 управления. Остальные входы группы синхровходов 13аявляются входами-управления записью в первый и во второй блоки памяти.
Выход 21 прерывания необходим дпя передачи сигнала прерьгаания в ЭВМ. Группа кодовых выходов 27 слу- жит для вывода в ЭВМ слова состояния устройства.
Вторая группа информационных выходов 28 используется для передачи в ЭВМ номеров запускаемьпс задач.
Регистр 1 прерываний необходим дпя фиксации и хранения сигналов внених запросов на прерывание.
Регистр 2 масок служит дпя хранения кода, разрешающего или запрещающего обработку поступивших запросов.
Первый блок 7 памяти предназначен дпя хранения информации о поступивших запросах и дпя учета задач, которые в связи с этим бьши запуще- ны. Этот блок можно представить в виде триггерной матрицы. I .
Количество столбцов блока 7 памяти равно количеству разрядов регист- ра 1,и каждый столбец этого блока связан соответственно с одноименным разрядом регистра посредством блока 3. Количество строк блока 7 определяет максимальное число задач, ко- торые могут быть запущены при наличии внешних запросов. В каждом столбце содержится информация о поступившем, но еще не обработанном запросе. Каждая строка соответствует номе ру задачи, которая Может быть запущена при наличии внешних запросов.
При поступлении запроса в регистр 1 единичный сигнал проходит через блок 3 и воздействует на вход группы информационных входов блока 7 памяти. Это приводит к записи единиц во все триггеры соответствукндего столбца, что означает наличие внеш
5
1
5
0
5
0
244
них условий для запуска любой из задач.
Для адресации при вьгооде информации из блока 7 памяти служит группа его адресных входов 16, подключенная к группе выходов приоритетного шифратора. Поступающий адрес позволяет прочитать код всего адресованного столбца.
Второй блок 8 памяти необходим для хранения информации о разрешении на запуск задачи при наличии запроса. По своему устройству второй блок памяти аналогичен первому блоку памяти. Разница заключается в том, что во втором блоке памяти не используется группа информационных входов для записи единиц во все триггеры fстолбцов. Второй блок памяти также можно представить в виде триггерной матрицы. Каждому столбцу и здесь соответствует запрос, а строке - номер задачи. Наличие единицы в каком-либо триггере этого блока означает разрешающее условие для запуска задачи при наличии запроса. Запись единиц и нулей во второй блок памяти производится так же, как и в первый блок памяти. Занесение нескольких единиц.в столбец блока в означает разрешение запуска задач с номерами, равными номерам строк, на пересечении которых со столбцом в матрице записаны единицы. Запись нескольких единиц в строку означает разрешение запуска задачи при появ- лении запросов с номерами, равными номерам столбцов, которые имеют единичное значение в триггерах матрицы на пересечении со строкой.
Считывание информации второго блока памяти производится аналогично с первым блоком памяти.
При сравнении в блоке 9 столбцов наличие единичного уровня вj-м разряде выходных кодов первого и второго блоков памяти означает, что поступил i-й запрос и имеется разрешение на запуск j-й задачи, связанной с i-M запросом. Таким образом, блок 9 формирует М-разрядный позиционный код, показывающий наличие всех условий для запуска j-й задачи.
: Регистр 30 необходим для регистрации и хранения информации о готовности устройства к выдаче в ЭВМ номеров поступивших запросов и задач. Этот регистр двухразрядный,
н имеет четыре информационных вхоа и два выхода. Коды на группе выодов регистра означают: 00 - устойство в исходном состоянии; 01 - стройство готово к выводу; 10 - 5 устройство не готово к выводу; 11 - номера поступивших запросов выведены полностью.
Счетчик 36 служит дпя перебора кодов, являювщхся номерами задач, 10 которые могут быть запущены при наличии необходимых условий.
Устройство работает следующим образом.
Перед началом работы устройства J5 ЭВМ производит обнуление блоков 7 и 8, регистров, счетчика и триггера, причем в результате обнуления регистра 2 уровни с группы выходов этого регистра блокируют все разря- 20 ды в блоке 3 элементов. Цепи, по. которым производится обнуление, не показаны. Далее ЭВМ осуществляет занесение единиц в триггеры блока 8, т.е. запись информации о разреше- 25 НИИ пуска задач при появлении запросов. Устройство готово к работе после установки с помощью ЭВМ необходимых разрядов регистра 2 в разрешающее состояние. Поступающие на группу 30 входов 12 сигналы внешних запросов фиксируются в регистре 1, группа выходов которого соединена с первой группой входов блока 3. Появление на группе входов 12 устройства внеш- них запросов приводит к формированию на группе выходов блока 3 позиционного кода, имеющего единичные уровни только в тех разрядах, которым соответствуют единичные состояния регист- 40 ра 1 и разрешающие состояния регистра 2. Полученный позиционный код с группы выходов блока 3 поступает на группу входов приоритетного шифратора 4, который формирует на группе 45 выходов 16 номер наиболее приоритетного своего входа с единичным уровнем, что соответствует номеру наиболее приоритетного поступившего внеш- него запроса. Код на группе выходов 50 16 непозиционный. Позиционный код с группы выходов блока 3 поступает на группу информационных входов блока 7 памяти, что приводит к установке в единичное состояние всех триггеров 55 тех столбцов блока 7 памяти, которым соответствуют единичные состояния разрядов поступившего позиционного кода. И, наконец, позиционный код
с группы выходов 3 блока поступает на группу входов элемента ИЛИ 5. При наличии хотя бы одного единичного уровня в поступившем коде этот уровень появляется на выходе элемента ИЛИ 5, что приводит к снятию нулевого потенциала с инверсного сбросового входа триггера 6. В дальнейшем это позволяет установить триггер 6 в единичное состояние при наличии сигнала на его входе 26. Единичный уровень с выхода элемента 5 поступает на вход 20 блока управления,что приводит к снятию сбросового нулевого потенциала с первого информационного входа (уст.00 ) регистра 30. Теперь этот регистр может быть установлен в одно из возможных его состоний при появлении сигналов на его информационных входах. При наличии в регистре 1 зафиксированных внешних запросов на группе выходов приоритетного шифратора находится код самого приоритетного единичного разряда регистра 1. Этот код поступает на группу адресных входов блока 7 памяти и в отсутствие сигналов на группе входов 18 производит считывание адресованного столбца, т.е. кода содержащего информацию о поступившем запросе и об уже запущенных .задачах. Так как рассматривается начало работы устройства, то ни одна задача еще не запущена, запрос уже поступает, что и приводит к адресации столбца. В данный момент времени все триггеры столбца имеют единичные состояния, обусловленные поступившим запросом. Код номера столбца с выхода приоритетного шифратора поступает также на группу адресных входов блока 8 памяти, что приводит аналогично первому блоку памяти к считьшанию кода столбца, содержащего информацию о разрешенных к запуску задачах при наличии запросов. В этом коде единичное состояние имеют те триггеры, которые ранее установлены в это состояние с помощью ЭВМ. Допустим, что самым приоритетным является первый разряд регистра 1, имекнций в рассматриваемый момент единичное состояние. В данном случае адресуются : первые столбцы блоков 7 и 8. Коды этих столбцов поступают на две группы входов блока 9 элементов И для поразрядного сравнения. Так как каждый отдельный элемент И этого блока является трех-
входовым, то сравнение производится при наличии разрешающего уровня на третьем входе каждого элемента И. Сравнение кодов осуществляется последовательно. Перебор этих селектируемых элементов производится с помощью счетчика 36, код которого преобразуется дешифратором 29 в позиционный.
Предположим, что в первом столбце блока 8 памяти единичное состояние имеет только один триггер (второй по порядку). В этом случае при поступлении запроса в первый разряд регистра 1 имеется разрешение на запуск только одной второй задачи. Так как в рассматриваемый момент времени код счетчика 36 имеет нулевое значение (перед началом работы устройства произведено его обнуление) , то селектируется первый элемент И блока 9. При сепектирова- нии этого элемента на выходе первого разряда блока 9 присутствует ну20 И 33 и 34. Так как к этому моменту производится селектирование уже второго разряда, а ранее было установлено, что второй триггер второго блока памяти имеет единичное состояние.
левой уровень, поскольку первый триг-25 то выход второго разряда блока 9 име30
гер блока 7 имеет единичное значение, а первьй триггер блока 8 - нулевое значение. Поступление кода с нулевым уровнем в первом разряде блока 9 на группу входов элемента ИЛИ 5 приводит к появлению на выходе этого элемента нулевого уровня, который подается в блок управления на вход 25, что отражает результат сравнения одноименных триггеров в блоках 7 и 8. В данном случае совпадения не происходит и на входе 25 имеется нулевой потенциал. Поступление хотя бы одного внешнего запроса
в регистр 1 приводит к появлению еди-40 прерьшает ЭВМ и вызывает программу ничного уровня на входе 20 блока уп- обслуживания устройства, которая равления. Передний фронт этого уровня происходит через элемент ИЛИ 31 и устанавливает регистр 30 в состояние 10. Этот же передний фронт с выхода элемента ИЛИ 31 проходит через элемент ИЛИ 32 и поступает на входы
ет единичный уровень, который проходит через элемент ИЛИ 5 и устанавливается на входе 25 блока управления. Рассматриваемый в данный момент сигнал с выхода элемента ИЛИ 32 проходит через элемент И 33 и устанавливает регистр 30 в состояние 01, что означает готовность информации о номерах запросов и задач к выводу. 35 Кроме того, сигнал с выхода элемента И 33 поступает на установочный вход триггера 6, что приводит к появлению единичного уровня на выходе 21 прерьшания. Это, в свою очередь.
сначала считает состояние регистра 30 с группы кодовых выходов 27.
Таким образом, при появлении еди- 45 ничного уровня на входе 20 блока управления производятся дешифрация нулевого содержимого счетчика 36, уста- нов регистра 30 в состоянии 10, анализ уровня входа 25, который в первый момент имел нулевое состояние, увеличение на единицу содержимого счетчика 36, которое теперь равно 1, задержка сигнала с выхода элемента И 34 и очередной анализ уровня
элементов И 33 и 34. Дальнейшее прохождение этого сигнала определяется уровнем на входе 25. Так как в рас- сматриваемом случае этот уровень, имеет нулевое значение, то сигнал проходит через элемент И 34, а затем через элемент ИЛИ 37 на счетный вход
счетчика 36. Передний фронт поступив-55 входа 25 уже со второго разряда блошего сигнала увеличивает на единицу содержимое счетчика, код которого преобразуется дешифратором 29, что приводит к сепектированию очередного
(р данном случае второго) элемента блока 9. Выход 38 счетчика - это выход переполнения, на котором только с момента переполнения устанавливается единичный уровень.
Сигнал с выхода элемента И 34 поступает также на прямой вход элемента И 35, на другом инверсном входе которого имеется нулевой разрешающий
уровень с выхода переполнения счетчика. Сигнал с выхода элемента И 34 на прямой вход элемента И 35 проходит через задержку, элемент которой не показан. Сигнал на выходе элемента ИДИ 32 возникает благодаря его появлению на одном из входов этого элемента, соединенного с выходом элемента И 35. С выхода элемента ИЛИ 32 сигнал поступает на входы элементов
И 33 и 34. Так как к этому моменту производится селектирование уже второго разряда, а ранее было установлено, что второй триггер второго блока памяти имеет единичное состояние.
то выход второго разряда блока 9 име
прерьшает ЭВМ и вызывает программу обслуживания устройства, которая
ет единичный уровень, который проходит через элемент ИЛИ 5 и устанавливается на входе 25 блока управления. Рассматриваемый в данный момент сигнал с выхода элемента ИЛИ 32 проходит через элемент И 33 и устанавливает регистр 30 в состояние 01, что означает готовность информации о номерах запросов и задач к выводу. Кроме того, сигнал с выхода элемента И 33 поступает на установочный вход триггера 6, что приводит к появлению единичного уровня на выходе 21 прерьшания. Это, в свою очередь.
прерьшает ЭВМ и вызывает программу обслуживания устройства, которая
сначала считает состояние регистра 30 с группы кодовых выходов 27.
Таким образом, при появлении еди- ничного уровня на входе 20 блока управления производятся дешифрация нулевого содержимого счетчика 36, уста- нов регистра 30 в состоянии 10, анализ уровня входа 25, который в первый момент имел нулевое состояние, увеличение на единицу содержимого счетчика 36, которое теперь равно 1, задержка сигнала с выхода элемента И 34 и очередной анализ уровня
ка 8, уставов регистра 30 в состоянии 01.
Рассмотрим алгоритм программы обслуживания, которая начинает свою
работу при наличии единичного уров- i ня прерывания на выходе 2.1 триггера. Программа обслуживания считьгеает код состояния регистра 30 с группы выходов 27 и анализирует этот код, который может иметь состояния 00, 01, 10 или 11, Если считанньй код имеет значение 01, то программа . обслуживания производит считывание номера обрабатьшаемого запроса с группы выходов 28, На этой группе выходов находится код содержимого счетчика 36, который и является кодом номера запускаемой задачи. При этом -ЭВМ производит считывание кода с группы выходов 28, т,е, кода номера запускаемой задачи.
Далее программа обслуживания выдает команду, которая в виде сигнала поступает с группы входов 18 на вход элемента ИЛИ 37, ас его выхода - на счетный вход счетчика 36, Это приводит к увеличению на единицу содержимого счетчика, которое становится равным 2, и к селектированию следующего (в данном случае третьего)/ разряда блока.
Затем программа обслуживания выдает команду, которая в виде сигнала поступает с группы входов 18 на вход элемента ИПИ 31, ас его выхода - на вход 10 регистра 30, что позволяет установить этот регист в Состояние 10, С выхода элемента ИЛИ 31 этот же сигнал поступает на вход элемента ИПИ 32, что приводит к продолжению работы устройства. Далее осуществляется переход в режим ожидания состояний 11 или .
Выберем максимальное число разрядов в столбцах, равное 4, что соответствует наибольшему числу запускаемых задач, равному 4, Это допущение позволяет рассмотреть окончание анализа одного столбца и переход к следующему. Так в рассматриваемый момент времени с приходом сигнала от Команды в счетчике 36 устанавливается код, равный 2, Так как в первом столбце блока 8 только второй тригге имеет единичное значение, то новому содержимому счетчика соответствует нулевой уровень на входе 25 блока 11, Сигнал команды проходрт через элементы 31, 32, 34 и 37, что делает содержимое счетчика 36 равным 3, Этому коду счетчика также соответствует нулевой уровень на выходе 25, Сигнал с выхода элемента И 34, проходя после задержки через элементы 35 и 32, снова поступает на выход элемента И 34, затем на выход элемента ИПИ 37 и на вход счетчика 36, что приводит к переполнению этого счетчика (его содержимое становится равным нулю), Уровень переполнения на выходе 38 блокирует прохождение сигнала с выхода элемента И 34 через элемент И 35 и передним фронтом устанавливает регистр 30 в состояние 11 Программа обслуживания устройства, сосчитавшая код состояния, равный 11, производит установку маски первого обработанного запроса в запрещающее состояние, выдавая соответствующий код на группу информационных входов 17 регистра масок и сигнал управления записью в регистр масок на вход группы синхровходов 18, Это приводит к тому, что приоритетный шифратор выбирает очередной наиболее приоритетный свой единичный вход и вьщает на первую группу информационных выходов 16, этот номер. Продолжается поиск номеров задач для очередного запроса с первого элемента столбца, так как счетчик снова находится в нулевом состоянии.
Код, сформированный приоритетным шифратором, адресует столбцы блоков 7 и 8. Так как содержимое счетчика в этот момент равно нулю, то селектируется первый элемент блока 9, т,е, сравниваются первые разряды считанных кодов памяти. На входе 25 блока 1 1 появляется единичный уровень, Сигнал команды проходит через элементы 31-33 и устанавливает регистр 30 в состояние 01, Поступление еще одного сигнала с выхода 26 элемента И 33 на установочный вход триггера 6 не имеет значения, так как триггер находится в единичном состоянии до обработки всех запросов и появления в связи с этим нулевого потенциала на его инверсном входе. Программа {обслуживания производит все действия описанные ранее, для обработки состояния 01, в том числе считывает номер запроса с группы выходов 16 и номер запускаемой задачи с группы выходов 28, что означает мость запуска первой задачи при наличии запроса. После считьшания ЭВМ вьщает команду, что приводит к увеличению содержимого счетчика на
1112821
единицу (код счетчика становится равным 1). Это приводит к селектирова- нию второго разряда блока 9. На входе 25 блока 11 единичный.уровень.
После выдачи ЭВМ команды регистр с 30 устанавливается в состояние 10. Одновременно с этим сигнал команды проходит через элементы 32 и 33 и устанавливает регистр 30 снова в состояние 01, так как уровень 25 Ш имеет единичное значение. Программа обслуживания снова производит считывание кодов с выходов 16 и 28, что дает информацию о необходимости запуска второй задачи при наличии запроса. 5
24-12,
Взаимодействие устройства и ЭВМ происходит аналогично до тех пор, пока установ маски в запрещакицее состояние дпя последнего обработанного разряда регистра 1 не приводит к появлению нулевого уровня на выходе 20 элемента 5, к сбросу тригге- I
ра 6 и установлению нулевого потенциала на выходе 21 прерьшаний. Появление нулевого уровня на входе 20 блока 1 1 производит установ регистра 30 в состояние 00, что означает окончание работы программы обслуживания.
Фиг.1
Редактор О.Бугир
Составитель М.Кудряшев
Техред Л. Сердюков а Корректор А.Обручар
Заказ 7267/47Тираж 670Подписное
ВНИШТИ Государственного койитета СССР по делам изобретений и открытий 113035, Москва, Ж-35, Раушская наб., д. 4/5
Производственно-полиграфическое предприятие, г. Ужгород , ул. Проектная, 4
IPU2,2
название | год | авторы | номер документа |
---|---|---|---|
Устройство для обслуживания запросов | 1987 |
|
SU1437864A1 |
УСТРОЙСТВО ПЕРЕМЕННОГО ПРИОРИТЕТА | 1999 |
|
RU2152072C1 |
Устройство для обслуживания запросов | 1988 |
|
SU1571588A1 |
Устройство приоритета | 1979 |
|
SU805313A1 |
Устройство для приоритетного обслуживания запросов абонентов | 1987 |
|
SU1495792A1 |
Устройство переменного приоритета | 1987 |
|
SU1462308A1 |
Устройство для сопряжения многопроцессорной вычислительной системы с внешними устройствами | 1984 |
|
SU1241245A2 |
Микропрограммное устройство управления с контролем | 1983 |
|
SU1136162A1 |
Устройство для сопряжения каналов ввода-вывода с внешними устройствами | 1985 |
|
SU1277128A1 |
Многоканальное устройство для ввода аналоговых данных и буферная память | 1987 |
|
SU1453397A1 |
Устройство для обработки прерываний | 1979 |
|
SU873243A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Устройство для обработки прерываний | |||
М.: препринт ИТЭФ, S 179. |
Авторы
Даты
1987-01-07—Публикация
1985-01-10—Подача