Изобретение относится к вычислительной технике и может быть использовано в устройствах управления ЭВМ
Цель изобретения - расширение функциональных возможностей за счет обращения к подпрограммам в произвольной последовательности.
На чертеже приведена функциональная схема предлагаемого устройства.
Устройство содержит счетчик 1 команд, блок 2 стековой памяти, группы 3 и 4 элементов ИЛИ, .блок 5 ассоциативной памяти,регистр 6 команд, регистр 7 адреса, буферньй регистр8, группы 9-11 элементов И, эле- мен-ты И 12-18, триггер 19, элементы ИЛИ 20 и 21, дешифратор 22, распределитель 23 импульсов, генератор 24 импульсов, элемент И 25, группу 26 элементов ИЛИ, входы 27 адреса команды основной программы, 28 кода команды основной программы, 29 начальной загрузки устройства, выходы 30 адреса очередной команды, 31 адресной части команды, 32 кода операции устройства, входы 33 начальной установки, 34 признака постуцления очередной команды устройства.
Первая и вторая группы информационных уходов блока 2 являются информационными входами этого блока. Из кодов, подаваемых на эти группы, путем конкатенации (сцепления) формируется слово, записываемое в блок 2. Первая и вторая группы информационных выходов блока 2 являготся информационными вьпсодами этого блока. Считьшаемое слово разделяется на две части, причем одна часть слова выдается на первую, а другая на вторую группу выходов блока 2.
Устройство работает следующим образом.
При включении питания импульсом с входа 33 регистр 7 и триггер 19 обнуляются, а распределитель 23 устанавливается в исходное состояние (при этом ни на одном из его выходов сигнал не выдается). Адрес первой команды управляющей программы запйсьшается через группу 3 элементов ИЛИ в счетчик 1 с входа 27 устройства. Этот адрес поступает на выход 30 устройства, который подключается к запоминающему устройству. Из запоминающего устройства на триггер 6 по входу 28 устройства считьшается первая команда управляющей программы. Команды обращения к подпрограмме и возврата выполняются в предлагаемом устройстве, а остальные в других узлах внешнего устройства управления, причем код операции из регистра 6 вьщается на выход 32 устройства, а адресная часть - на выход 31 устройства.
После приема команды на регистр 6 подается импульс на вход 34, который устанавливает триггер 19 в единичное состояние , Открывается элемент И 18, и импульсы с выхода генератора 24 начинают проходить на вход распределителя 23. Если на регистр 6 принята команда обращения к подпрограмме, то появляется сигнал на первом выходе дешифратора 22, а если команда возврата - то на втором. Другие коды операций дешифратор 22 не расшифровывает. Распределитель 23 начинает вьщавать импульсы последовательно на своих выходах, начиная с первого и кончая восьмым. По импульсу на первом выходе распределителя 23 содержимое счетчика 1 увеличивается на единицу, т.е. формируется адрес следующей команды. Если в регистре 6 не находится команда управления подпрограммами, то больше никаких операций в устройстве не выполняется. По импульсу с восьмого выхода распределителя 23 триггер 19 устанавливается в нулевое состояние и прохождение импульсов через элемент И 18 запрещается. Распределитель 23 после появления импульса на своем восьмом выходе переходит в исходное состояние.
По специальной команде информация о подпрограммах по входу 29 устройства заносится в блок 5 ассоциаТИВНО11 памяти. При этом для каждой подпрограммы отводится одна ячейка ассоциативной памяти. Адресная и информационная части каждой ячейки после начальной записи содержат одинаковую информацию, а именно, адрес точки входа, в соответствующую подпрограмму, находящуюся в запоминающем устройстве.
После этого устройство готово к управлению подпрограммами, адреса точек входа в которых записаны в блок 5. Пусть на регистр 6 прочитана .
5 команда обращения к подпрограмме. Она имеет вид С А, где С - код операции; А - адрес точки входа в подпрограмму. При этом открьшаются элементы И 12 - 15. По импульсу с входа 34 запускается распредели тель 23 В результате этого в первую очередь содержимое счетчика 1 увеличивается на единицу. После этого импульс с второго выхода распределителя 23 проходит на выход элемента И 12, открывает группу 9 элементов И и содержимое счетчика 1 (адрес команды, следующей за командой обращения к подпрограмме) через группу 4 элементов ИЛИ записывается в регистр 8 По этому же импульсу в вершину блока 2 стековой памяти записывается слово, состоя1чее из нулевого содержимого регистра 7 и этого же адреса. Импульс с третьего выхода распределителя 23 проходит через элементы И 13 и ИЛИ 21, в результате чего осуществ ляется попытка записи содержимого регистра 8 в блок 5 по адре су (с признаком) содержимого регистра 7, но так как первоначально он был обнулен, то запись не производится. Регистр 7 хранит адрес точки входа в активную (выполняющуюся в настоящее время) подпрограмму, но в данный момент активна управляющая программа. Импульс с четвертого выхода распределителя 23 проходит через элемент И 14 и открывает группу 10 элементов И, вследствие чего адрес точки входа в подпрограмму заносится в регистр 7. По импульсу на пятом выходе распределителя 23 содер жимое ячейки блока 5 с адресной частью, определяемой содержимым регистра 7, т.е. адрес точки входа в подпрограмму, через блок 3 элементов ИЛИ записывается в счетчик I, чем за вершается переход к подпрограмме. Первоначальный вход в подпрограмму осуществляется через ее начало (через точку входа). Последующие команды обращения к подпрограмме выполняются аналогично за исключением того, что по импульсу с вьтхода элемента И 12 в блок 2 осуществляется запись слова, содержащего адрес точки входа в вызывающую подпрограмму и адрес точки возврата в эту подпрограмму (содержимое регистра 7 и счетчика 1 соответственно), а по импульсу с выхода элемента ИЛИ 21 осуществляется запись адреса точки возврата в вызывающзпо подпрограмму из регистра 8 в ячейку блока 5 с адресной частью, равной адресу точки входа в вызываю294щую подпрограмму. В конце цикла выполнения этой команды в счетчик 1 не обязательно записывается только адрес точки входа в вызываемую подпрограмму. Он записывается только в том случае, когда происходит первое обращение к подпрограмме, или когда предьщущее выполнение этой подпрограммы закончилось командой возврата, а не командой обращения к другой подпрограмме. Если предьщущее выполнение подпрограммы было прервано командой обращения к другой подпрограмме , то при последующем обращении к прерванной подпрограмме в счетчик 1 заносится адрес точки возврата, т.е. адрес команды, следующей за последней командой, выполнивщейся при предьщущем обра1);ении. Это происходит вследствие изменения содержимого блока 5 в процессе работы устройства. Если на регистр 6 считывается команда возврата, состоящая только из одного кода операции, то открываются элементы И 16, 17 и 25. После запуска распределителя 23 содержимое счетчика 1 увеличивается на единицу. Импульсы с второго, третьего, чет- вертого и пятого выходов распределителя 23 на выходы элементов И 12 15 не проходят. По импульсу с шеетого выхода распределителя 23 осуществляется прием адреса выполняющейся сопрограммы в регистр 8 через 11 элементов И и группу 4 элементов ИЛИ. Импульс с седьмого выхода распределителя 23 проходит через элементы И 17 и ИЛИ 2I на вход записи блока 5. При этом по адресу точки входа в подпрограмму, вьтолнение которой заверщается, записывается этот же адрее точки входа, т.е. восстанавливается первоначальное содержимое соответствующей ячейки для того, чтобы следующее обращение к этой подпрограмме привело к передаче управления в ее точку входа. По импульсу на восьмом выходе распределителя 23 происходит считьтание слова из вершины блока 2, в результате чего адрес точки возврата в подпрограмму, в которую осуществляется возврат, через группу 3 элементов ИЛИ заносится в счетчик 1, а в регистр 7 через группу 26 элементов ИЛИ записьшается адрес точки входа в эту подпрограмму (т.е. восстанавливается
предыдущее состояние регистра 7), чем заврепшется возврат от подпрограммы.
Формула изобретения
Устройство управления обращением к подпрограммам, содержащее счетчик команд, блок стековой памяти, две группы элементов И, блок ассоциативной памяти, регистр команд, регистр адреса, буферный регистр, три группы элементов И, семЬ элементов И, триггер, два элемента ИЛИ, дешифратор, распределитель импульсов, генератор импульсов, причем вход начальной установки устройства подключен к первому входу первого элемента ИЛИ, к входам установки в ноль регистра адреса и входу сброса распределителя импульсов, первый выход которого подключен к счетному входу счетчика команд, выход которого подключен к выходу адреса очередной команды устройства и к .информационному входу старших разрядов блока стековой памяти, выход К-го разряда первой группы .блока стековой памяти подключен к первому входу К-го элемента ИЛИ первой группы, выход которого подключен к К-му установочному входу счетчика команд (К 1, М, где М разрядность адреса команды), выход К-го разряда счетчика команд подключен к.первому входу К-го элемента И первой группы, выход которого подключен к первому входу К-го элемента ИЛИ второй группы, выход которого подключен к информационному входу К-го разряда буферного регистра, выход которого подключен к информационному входу блока ассоциативной памяти, выходы с второго по седьмой распределителя импульсов подключены соответственно к первым входам элементов И с первого по шестой, восьмой выход распределителя импульсов подключен к второму входу первого элемента ИЛИ, выход которого подключен к входу установки в ноль триггера, вход установки в единицу и выход которого подключены соответствен но к входу признака поступления очередной команды устройства и к первому входу седьмого элемента И, второй вход и вькод которого подключены соответственно к выходу генератора импульсов и к тактовому входу распреде лителя импульсов, вход кода команды
739296
основной программы устройства подключен к информационному входу регистра команд, выход кода операции которого подключен к выходу кода 5 операции устройства и к входу дешифратора, первый выход которого подключен к вторым входам первого, второго, третьего и четвертого элементов И, второй выход дешифратора подключен к вторым входам пятого и шес того элементов И, выходы второго и шестого элементов И подключены к входам второго элемента ИЛИ, выход которого подключен к входу записи
5 блока ассоциативной памяти, выходы третьего и пятого элементов И подключены к первым входам элементов И соответственно второй и третьей групп, адресный выход К-го разряда регист20 ра команды подключен к второму входу К-го элемента И второй группы и соединен с выходом К-го разряда адресной части команды устройства, выход первого элемента И подключен
5 к входу записи блока стековой памяти и к вторым входам элементов И первой группы, вход К-го разряда адреса команды основной программы устройства подключен к второму входу
30 К-го элемента ИЛИ первой группы, третий вход которого подключен к выходу К-го разряда блока ассоциативной памяти, .вход, загрузки ассоциативных признаков которого подключен
35 к входу начальной загрузки устройства, выход К-го разряда регистра адреса .подключен к второму входу К-го элемента И третьей группы и соединен с адресным входом К-го раз40 ряда блока ассоциативной памяти,
вход считывания которого подклЕочен к выходу четвертого элемента И, выход К-го элемента И третьей группы подключен к второму входу К-го элемен-.
45 та ИЛИ второй группы, о т л и ч а ющ е е с я тем, что, с целью расширения функциональных возможностей за счет обеспечения возможности обращения и возврата из подпрограммы в
50 произвольной последовательности, в него введены восьмой элемент И и третья группа элементов ИЛИ, причем восьмой выход распределителя импульсов подключен к первому входу вось55 мого элемента И, второй вход и выход которого подключены соответственно к второму выходу дешифратора и к входу чтения блока стековой памяти, инфор712739298
мационный вход младших разрядов ко- первый и второй входы которого подторого подключен к выходу регистра ключены соответственно к выходу К-го адреса, информационный вход К-го элемента И второй группы и к выходу разряда которого подключен к выхо- К-го разряда второго выхода блока ду К-го элемента ИЛИ третьей группы, j стековой памяти.
название | год | авторы | номер документа |
---|---|---|---|
Устройство для управления сопрограммами | 1983 |
|
SU1144110A1 |
Устройство для поиска информации в памяти | 1985 |
|
SU1352494A1 |
Устройство для управления подпрограммами | 1989 |
|
SU1649542A1 |
Устройство для отладки программ | 1988 |
|
SU1511750A1 |
Устройство для сопряжения центрального процессора с группой арифметических процессоров | 1984 |
|
SU1254495A1 |
Микропрограммное устройство управления | 1987 |
|
SU1522203A1 |
Устройство для синтаксически-управляемого перевода | 1982 |
|
SU1062721A1 |
Устройство для контроля микропроцессорной системы | 1987 |
|
SU1474650A2 |
Устройство для синтаксического анализа программ | 1980 |
|
SU918950A1 |
Устройство для контроля микропроцессорной системы | 1990 |
|
SU1753474A1 |
Изобретение относится к области вычислительной техники и может быть использовано в устройствах управления ЭВМ. Целью изобретения является расширение функциональных возможностей за счет обращения к подпрограммам в произвольной последовательности. Устройство содержит счетчик 1 команд, блок 2 стековой памяти, группы 3,4,26 элементов ИЛИ, блок 5 ассоциативной памяти, регистр 6 команд, регистр 7 адреса, буферный регистр 8, элементы 12-18, 25 И, триггер 19, два элемента 20, 21 ИЛИ, дешифратор 22, распределитель импульсов 23, генератор импульсов 24, входы и выходы устройства. Указанная цель достигается с помощью указанной совокупности признаков. с 1 ил. ел
Устройство для управления прерыванием программ | 1981 |
|
SU978150A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Устройство для управления сопрограммами | 1983 |
|
SU1144110A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Авторы
Даты
1986-11-30—Публикация
1984-12-29—Подача