Устройство для управления подпрограммами
Изобретение относится к вычислительной технике и может быть использовано в устройствах управления ЭВМ. Цель изобретения - расширение области применения устройства за счет обеспечения возможности обращения к подпрограммам по динамическому адресу. В устройство введены блок памяти, содержимое которого монет меняться в процессе работы устройства, два регистра, два дешифратора, генератор импульсов, распределитель импульсов , два триггера, пять элементов И, три элемента ИЛИ, блок элементов ИЛИ. Устройство позволяет в случае применения его в многопроцессорных ЭВМ обращаться к подпрограммам, выполняемым параллельно с основной программой, по динамически устанавливаемому адресу. 1 ил
СОЮЗ СОВЕТСНИХ
ФИЛИ
РЕСПУБЛИК (53)5 С 06 F 9 46
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Н А ВТОРСНОМУ СВИДЕТЕЛЬСТВУ
ГОСУДАРСТВЕННЫЙ НОМИТЕТ
Il0 ИЗОБРЕТЕНИЯМ И OTKPblTHSIM
ПРИ ГКНТ СССР (21) 4693801/24 (22) 22.05.89 (46) 15.05.91. Бюл. Р 18 (72) М.И.Гвоздик и В.В. Казимир (53) 68.1 . 325 (088. 8) (56) Авторское свидетельство СССР
Ф 1144110, кл. С 06 F 9/46, 1985„
Авторское свидетельство СССР
Ф 849214, кл. G 06 F 9/46, 1979. ! (54) УСТРОЙСТВО ДЛЯ УПРАВЛЕНИЯ ПОДПРОГРЙЧИАИИ (57) Изобретение относится к вычислительной технике и может быть использовано в устройствах управления
ЭВИ. Цель изобретения — расширение
Изобретение относится к вычислительной технике и может быть использовано в устройствах управления ЭВИ.
Цель изобретения — расширение области применения устройства путем обеспечения возможности обращения к подпрограммам по динамическому адресу.
На чертеже показана схема устройства.
Устройство содержит счетчик счетчик 2, регистр 3, регистр 4, схемы 5 и 6 сравнения, регистр 7, регистр 8, блоки 9-11 элементов И, счетчик 12, регистр 13, распределитель 14 импульсов, регистр 15, блок
16 памяти, депифраторы 17 и 18, группу 19 элементов И, триггеры 20-23, элементы И 24-29 группы 19, элементй
„,SU„, 1649542 А1
2 области применения устройства за счет обеспечения возможности обращения к подпрограммам по динамическому адресу. В устройство введены блок памяти, содержимое которого может меняться в процессе работы устройства, два регистра, два дешифратора, генератор импульсов, распределитель импульсов, два триггера, пять элементов И, три элемента ИЛИ, блок элементов ИЛИ. Устройство позволяет в случае применения его в многопроцессорных ЭИ1 обращаться к подпрограммам, выполняемым параллельно с основной программой, по динамически устанавливаемому адресу. 1 ил., И 30-35 генератор импульсов 36 блок
37 элементов ИЛИ, элементы ИЛИ 38-40, группы информационных входов 41 и 42 устройства, группы адресных входов
43 и 44 устройства, группы адресных {© выводов 45-48 устройства, группы информационных выходов 49 и 50 устройства, выходы 51-58 распределителя 14 импульсов, выход 59 элемента И 24, выход 60 элемента И 26, выход 61 элемента ИЛИ 39, выход 62 элемента И 28, выход 63 элемента И 29, вход 64 запуска устройства и группу входов 65 начально условий устройства.
Устройство работает следующим образом.
В исходном состоянии триггеры 1 и 3 установлены в "1", триггеры 2 н 4в "0",. ни на один из выходов распре1649542 целителя 14 сигнал- не выдается. По специальной команде информация о подпрограммах заносится по группе входов
65 в блок 16 памяти. При этом для каждой программы отводятся две ячейки памяти, первая иэ которых содержит адресную и информационную части, а, вторая .- две информацнойкые части . Адресная часть первой ячейки хранит адрес точки входа в подпрограмму и служит для выбора ячеек ассоциативной памяти, относящихся к данной подпрограмме. Информационная часть первой, ячейки содержит адрес, с которого
jpолжно начаться выполнение подпро грамм после очередного обращения к ней, После начальной записи адресная и информационная части первой ячейки- содержат одинаковую информа» 20 цию. Первая и вторая информационные ,части второй ячейки содержат соответственно адрес списка параметров и адрес точки выхода данной подпрограммы и в процессе выполнения программ, как и адресная часть первой ячейки, не изменяются.
Адрес первой команды основной программы записывается по группе входов
43 в счетчик 1 ° Этот адрес поступает через блок 9 элементов И на группу
;выходов 45, которая годключается к запоминающему устройству. Из запоми нающего устройства на регистр 7 по группе входов 41 считывается первая команда основной программы. После
35 этого устройство готово к управлению подпрограммами, информация о которых записана в блок 16. Команды обращения к подпрограммам и возврата из
10 подпрограмм в основную программу выполняются в предлагаемом устройстве, а остальные — в других узлах устрой ства управления, йричем коды операций команд основной программы и подпрограммы поступают на группы выходов !
49 и 50, а адресные части — на группы выходов 47 и 48 соответственно.
После приема кода команды на регистр 7 подается импульс на вход .64, который устанавливает триггер 23 в 50 единичное состояние. При этом открывается элемент И 35 и импульсы с выхода генератора 36 проходят на вход распределителя 14. Если на регистр 7 принята команда обращения к подпрограмме, то появляется сигнал на выходе дешифратора 17. Другие коды операций дешифратор 17 не расшифровывает. Распределитель 14 начинает выдавать импульсы последовательно на своих выходах, начиная с 51 и кончая
58, По импульсу иа выходе 51, проходящему через элемент И 34, содержимое счетчика 1 увеличивается на единицу, т.е. формируется адрес следующей команды основной программы. Если в регистре 7 не находится команда управления подпрограммами, то больше никакие операции в устройстве не выполняются, По импульсу с выхода 58 распределителя 14 триггер 23 устанавливается в "0" и прохождение импульсов через элемент И 35 запрещается.
Распределитель 14 после появления импульса на выходе 58 приходит в исходное состояние.
Пусть на регистр 7 прочитана кома ца обращения К подпрограмме. Она иг т вид С А, где С вЂ” код операции, А адрес точки входа в подпрограмму.
После расшиФровки кода операции сигнал с выхода дешифратора 17 проходит на выход элемента И 31 и подготавливает к работе элементы И 28 и 29 группы 19. Этим же сигналом с выхода элемента И 31 триггер 22 устанавливается в нулевое состояние, в котором он находится до тех нор, пока не произойдет возврат из подпрограммы в основную программу, т.е. пока не создадутся условия для нового обращения к подпрограммам. Адрес точки входа в подпрограмму поступает на регистр 13 и через него на группу адрес-. ных входов блока 16, По импульсу с входа 64 запускается распределитель
14. В результате этого в первую очередь увеличивается на единицу содержимое счетчика 1 . Затем импульс с вьг хода 56 распределителя 14 проходит на выход 62 элемента И 28.и происходит считывание содержимого информационных частей первой и второй ячеек блока 16, относящихся к данной подпрограмме и выбираемых по адресу точки входа в подпрограмму,, записанному в регистр 13. Содержимое информационной части первой ячейки, равное адресу входа в подпрограмму, считывается на счетчик 2. Содержимое первой и второй информационных частей второй ячейки заносится в регистр адреса списка параметров и регистр точки выхода соответственно. По импульсу. с выхода 57 распределителя 14, проходящему на выход 63 элемента И 29, 1649542 триггер 21 переводится в единичное состояние и адрес первой команды подпрограммы через блок 10 элементов И поступает на труппу выходов 46, подключенную к запоминающему устрой5 ству. Кроме того, с установлением триггера 21 в "1" открывается элемент
И 33, через который проходит сигнал плюс единица в счетчик 2. Начинается выполнение подпрограммы, одновременно с которым продолжается выполнение основной программы. По группе входов
44 на вход схемы б сравнения постуI пают адреса областей памяти, к кото- 15 рым обращается основная программа.
При совгадении адреса списка параметров с кодом адреса, поступающим по группе входов 44, на выходе схемы 6 появляется сигнал, который, проходя через элементы И 30 и ИЛИ 38, перево.дит триггер 20 в нулевое состояние, и выполнение основной программы прерывается. В счетчике 1 сохраняется адрес команды, при которой произошло 25 прерывание и с которой возобновится выполнение основной программы. Прерывание выполнения основной программы происходит также и в том.случае, если при одновременной работе подпрограммы 30 и основной программы в основной.программе встречается команда перехода к подпрограмме, в результате чего сигнал с выхода дешифратора 17 через элементы И 32 и ИЛИ 38 поступает на нулевой вход триггера 20. Таким образом, обеспечивается исключение ограничений на использование команд переходов к подпрограммам в основной программе. 40
Из запоминающего устройства по группе входов 42 на регистр 8 считываются команды подпрограммы, коды операций поторых расшифровываются дешифратором 18. Если поступившая команда 45 является командой возврата к основной программе, состоящая из одного кода операций, то на выходе деши@ратора 18 .появляется импульс, который, проходя через элемент ИЛИ 40, подготавливает к работе элементы И 24 и 25 группы 19, триггеры 20 и 22 устанавливает в "1". а триггер 21 — в "0".
Таким образом прекращается выполнение подпрограммы и возобновляется выполнение основной программы. По сигналу на входе 64 распределитель 14 начи- нает выдавать импульсы на своих выходах. Импульсом с выхода 51 добавт ляется единица в счетчик 1. Следующий импульс с выхода 52 распределителя 14 через открытый элемент И 24 проходит на егo выход 59 и добавляет единицу в счетчик 12, формируя адрес команды подпрограммы, следующей непосредственно за командой возврата к основной программе. Именно с этого адреса начинается выполнение подпрограммы после очередного обращения к ней. Импульсом с выхода 53 распределителя 14, проходящим через элементы И 25 и ИЛИ 39 на выход 61, происходит запись адреса входа в подпрограмму в информационную часть первой из двух ячеек блока 16, относящихся к данной подпрограмме и выбираемых по адресу точки входа, записанному s регистре 13.
В том случае, когда на счетчике 2 находится адрес, совпадающий с адресом точки выхода, появляется импульс на выходе схемы 5, который подготавливает. к работе элементы И 26 и 27, а также, проходя через элемент ИЛИ 40, прекращает выполнение подпрограммы и возобновляет выполнение основной программы подобно тому, как это происходило при расшифровке команды возврата. Однако при этом по импульсу с выхода 54 распределителя 14, проходящему через элемент И 26 на вы ход 60, осуществляется прием адреса точки входа.вынолнявшейся подпрограммы в регистр 15 через блок 11 элементов И и блок 37 элементов ИЛИ. Импульс с выхода 55 распределителя 14 проходит через. элемент .И 27 и элемент
ИЛИ 39 на вход записи блока 16, При этом в информационную часть первой ячейки блока 16, выбираемой по адресу точки входа в подпрограмму, записывается этот же адрес точки входа, т.е. восстанавливается первоначальное содержимое соответствующей ячейки, в результате чего при следующем обращении к этой подпрограмме ее выполнение начинается с точки входа.
Таким образом, при вызове подпрограи мы в счетчик 2 не обязательно запи» сывается адрес точки входа в эту под программу. Он записывается только в том случае, когда происходит первое обращение к подпрограмме либо предыдущее выполнение этой подпрограммы закончилось на точке выхода, Если предыдущее выполнение подпроГДаммы было прервано командой возвра
1649542 та к основной программе, то при последующем обращении к прерванной подпрограмме в счетчик 2 заносится адрес команды, следующей за последней вы полнившейся при предыдущем обращении к ней команды. Такое обращение к подпрограммам по динамическому адресу обеспечивает изменение содержимого блока 16 в процессе работы устройства.
Формула изобретения
Устррйство для управления подпрограммами, содержащее два счетчика, четыре регистра, две схемы сравнения, три блока элементов И, первый элемент И, первый и второй триггеры, причем группа выходов первого блока элементов И соединена с первой группой адресных выходов устройства, первая. группа адресных входов которого . соединена с группой входов первого счетчика, выходы которого соединены с группой информационных входов первого блока. элементов И, управляющий вход которого соединен с выходом первого триггера, выходы первого регистра соединены с первой группой входов первой схемы сравнения, вторая группа входов которой соединена с второй группой адресных выходов устройства и с группой выходов второго блока элементов И, группа информационных входов которого соединена с группой выходов второго счетчика, управляющий вход второго блока элементов И соединен с выходом второго триггера,и с первым входом первого элемента И, второй вход которого со40 единен с выходом второй схемы сравнения, первая группа входов которой соединена с группой выходов второго регистра, вторая группа входов второй схемы сравнения соединена с второй
5 группой адресных входов устройства, о т л и М а ю щ е е с я тем, что, . с целью расширения области применения устройства путем обеспечения возможности обращения к подпрограммам по динамическому адресу, в него введены пятый и шестой регистры, два дешифратора, блок памяти, группа элементов Ц, генератор импульсов, распределитель импульсов, третий счетчик, тре- 5 тий и четвертый триггеры, второй, третий, четвертый, пятый и шестой элементы И, блок элемента ИЛИ, первый, второй и третий элементы ИЛИ, причем группа входов начальных условий устройства соединена с группой установочных входов блока памяти, группа информационных входов которого соединена с группой выходов .третьего регистра, группа входов которого соединена с группой выходов блока элементов
ИЛИ, первая группа входов которого соединена с группой выходов третьего счетчика, группа информационных sxoдов которого соединена с группой выходов второго блока элементов И, первая группа информационных входов устройства соединена с группой входов четвертого регистра, первая группа выходов которого соединена с первой группой информационнь|х выходов устройства и группой входов первого дешифратора, выход которого соединен с первыми входами. второго и третьего элементов И, второй вход третьего элемента И соединен с выходом второго триггера, с вторым входом первого элемента И и первым входом четвертого элемента И, выход .которого соединен со счетным входом второго счетчика, группа информационных входов которого соединена с первой группой информационных выходов блока памяти, вторая группа информационных выходов которого соединена с группой входов второго регистра, выход третьего элемента И соединен с первым входом первого элемента ИПИ, второй вход которого соединен с выходом первого элемента И, выход первого элемента
ИЛИ соединен с нулевым входом первого триггера, единичный вход которого соединен с выходом второго элемента
ИЛИ, с первыми входами первого и второго элементов И группы, с нулевым входом второго триггера и единичным входом третьего триггера, выход которого соединен с вторым входом второго элемента И, выход которого соединен с нулевым входом третьего триггера и первыми входами третьего и четвертого элементов И группы, выход первого элемента И которой соединен со счетным входом третьего счетчика, выход второго элемента И группы соединен с первым входом третьего элемента ИЛИ, выход которого соедйнен с входом записи блока памяти, третья группа информационных выходов которого соединена с группой входов первого регистра, выход пятого элемента
164954?
9
И группы соединен с управляющим входом третьего блока элементов И, выходы которого соединены с второй группой входов блока элементов ИЛИ, выход шестого элемента И группы соеди5 нен с вторым входом третьего элемента ИЛИ, выход третьего элемента И группы соединен с входом чтения блока памяти, первые входы пятого и шес- 10 того элементов И группы соединены с выходом первой схемы сравнения, выход генератора импульсов соединен с первым входом пятого элемента И, выход которого соединен с входом распределителя импульсов, первый выход которого соединен с вторым входом четвертого элемента И и с первым входом шестого элемента И, второй вход которого соединен с выходом первого триггера, выход шестого элемента И соединен со счетным входом первого счетчика, второй, третий, четвертый, пятый, шестой и седьмой выходы распределителя импульсов соединены с. вторыми входами первого, второго, . пятого, шестого, третьего и четвертого элементов И группы соответственно, третья группа адресных выходов устройства соединена с второй группой выходов четвертого регистра и группой входов пятого регистра, группа выходов которого соединена с группой адресных входов блока памяти и группой информационных входов третьего блока элементов И, четвертая группа адресных выходов устройства соединена с первой группой выходов шестого регистра, вторая группа выходов которого соединена с второй группой информационных выходов устройства и группой входов второго дешифратора, выход кбторого соединен с первым входом второго элемента ИЛИ, второй вход которого соединен с выходом первой схемы сравнения, выход четвертого элемента И группы соединен с единичным входом второго триггера, восьмой выход распределителя импульсов соединен с нулевым входом четвертого триггера, единичный вход которого соединен с входом запуска устройства, выход четвертого триггера соединен с вторым входом пятого элемента И, вторая группа информационных вхОдов устройства соединена с группой входов шестого регистра.
1649542
Составитель М. Кудряшев
Техр ед Д. Олийнык Корректор Н. Король
Редактор А. Огар
Заказ 1522. Тираж 410 Подписное
ВНИИПИ Государственного комитета по изобретениям и открытиям при ГКНТ СССР
113035, Москва, Ж-35, Раушская наб., д. 4/5
Производственно-издательский комбинат "Патент", г, Ужгород, ул. Гагарина, 101





