Устройство для определения старшинства операций
Иллюстрации
Показать всеРеферат
Союз Советских
Соцналистичесмнх
Рвспублнн
ОПИСАНИЕ
ИЗОБРЕТЕНИЯ
К АВТОРСКОМУ СВИ ВТИЛЬСТВУ
857994 (61) Дополнительное к авт. саид-ву (22) Заявлено 14. 12. 79 (21) 2850990/18-24 с присоединением заявки ¹ (23) Приоритет
Опубликовано 2108.81. Бюллетень № 31
Дата опубликованию описания 23. 08. 81 (51)М. Хл.З
G 06 F 9/46
Государственный комитет
СССР но делам изобретений и открытий (53) УДК 681. 325 (088.8) (72) Авторы изобретеиия
В.П. Кошелев, И.Г. Грибков и .--В. Сидоров
I
t (71) заявители (54) УСТРОИСТВО ДЛЯ ОПРЕДЕЛЕНИЯ СТАРШИНСТВА
ОПЕРАЦИИ
Изобретение относится к вычислительной технике и может применяться в вычислительных машинах, ориентированных на выполнение программ на
5 алгоритмических языках.
Известно устройство для определения старшинства операций, содержащее регистр знака, соединенный со стеком операционных знаков, два элемента
ИЛИ, элемент И, линию задержки, формирователь и триггер, причем регистр знака и сток операционных знаков подключены через элемент И, линию задержки и формирователь к одному из входов первого элемента ИЛИ,второй 1е вход которого соединен со стеком операционных знаков, а выход — с единичным входом триггера, нулевой вход которого через второй элемент
ИЛИ подключен к выходу регистра зна- 20 ка (1) .
К недостаткам известного устройства относится информационная избыточность при представлении кодов операционных знаков, ограниченность класса языков программирования, которые могут обрабатываться этим уст! ройством, и большое время определения старшинства операций. 30
Наиболее близким к предлагаемому изобретению по технической сущности и достигаемому эффекту является устройство для определения старшинства операций, содержащее регистр зна ка, первый вход которого соединен с первым входом устройства, второй вход =- с вторым входом устройства, первый выход регистра знака подключен к первому входу стека, второй вход которого подключен к третьему входу устройства, первый выход стека соединен с первым выходом устройства, элементы И, ИЛИ, НЕ и триггер, нулевой вход которого подключен к четвертому входу устройства, единичный вход — к пятому входу устройства, единичный выход триггера соединен с первым входом первого элемента И, второй вход которого подключен к шестому входу устройства, выход первого элемента И соединен со вторым входом устройства, единичный выход триггера через линию задержки подключен к первому входу второго элемента И и к первому входу третьего элемента И, второй выход регистра знака через элемент НЕ соединен с первым входом четвертрго элемента И и с вторым входом третьего элемента:
857994
И, второй выход стека подключен к второму входу второго и второму входу четвертого элементов И, третий вход второго, третьего и четвертого элементов И подключен к седьмому входу устройства, выход второго, третьего и четвертого элементов И через элемент ИЛИ соединен с единичным входом триггера Г2«.
Недостатком устройства является то, что оно работает последовательно, т.е. в каждом такте его работы осуществляется обработка только одного разряда кода, задающего приоритет операционных знаков.
Цель изобретения — повышение быстродействия.
Поставленная цель достигается тем, что в устройство для определения старшинства операций, содержащее регистр знака, информационный вход которого соединен с информационным входом устройства, блок магазинной памяти, первый выход которого соединен с первым информационным выходом устройства, причем управляющие входы регистра знака и блока магазинной памяти соединены соответственно с первым и вторым выходами блока управления, а первый выход регистра знака соединен с информационным входом блока магазинной памяти, введен регистр адреса и блок оперативной памяти, причем вторые выходы регистра знака и блока магазинной памяти соединены с входами соответственно старших и младших разрядов регистра адреса, выход которого и третий выход блока управления соединены соответственно с адресным и запускающим входами блока оперативной памяти,а информационный выход блока оперативной памати соединен с входом блока управления.
Кроме того, блок управления содержит регистр адреса, первый вход которого является входом блока, а выход соединен с адресным входом памяти микрокоманд, выход которой соединен с входом регистра микрокоманд, первый и второй выходы которого соединены соответственно с вторым входом регистра адреса и с входом дешифратора микрокоманд, выход которого соединен с информационным входом формирователя функциональных сигналов, выходы которого являются соответственно первым, вторым и третьим выходами блока, узел синхронизации, выход которого соединен с синхровходами регистра адреса, памяти микрокоманд и формирователя функциональных сигналов.
На фиг. 1 приведена структурная схема устройства; на фиг. 2 — один из вариантов построения блока управления. !
Устройство (фиг. 1) содержит ре гистр 1 знака „ блок 2 магазинной памяти, регистр 3 адреса, блок 4 оперативной памяти, информационный вход 5, управляющие входы 6-8, информационный выход 9, вход 10 блока управления, вход 11 блока магазинной памяти, блок 12 управления.
Блок управления (фиг.2) может быть построен в виде регистра 13 адреса, памяти 14 микрокоманд, регистра 15 микрокоманд, дешифратора
16 микроопераций, формирователя 17 функциональных сигналов и узла 18 синхронизации.
Устройство работает следующим образом.
Код очередного знака программы на алгоритмическом языке поступает через информационный вход 5 устройства на регистр 1 знака. Под воздействием управляющего сигнала, выдаваемого по шине 6 блока 12 управле20 ния, этот код передается в старшие разряды регистра 3 адреса. Одновременно, при помощи управляющего сигнала на входе 7 блока 12, осуществляется передача «.ода знака из верд шины блока 2 магазинной памяти в младшие разряды регистра 3 адреса.
При поступлении сигнала по входу 8 выполняется чтение информации из ячейки блока 4 оперативной памяЗ ти, адрес которой определяется кодом, находящимся на регистре 3. Считанная информация выдается на вход
10 блока 12.
В зависимости от полученной информации об относительном приоритете операционных знаков может возникнуть потребность в обработке знака из блока 2 магазинной памяти, который выдается на выходе 9, или в записи кода знака иэ регистра 1 знака в
40 блок 2 магазинной памяти, которая производится по входу 11 под воздействием управляющих сигналбв на входах 6 и 7.
В таблице представлен пример со4 держимого ячеек блока 4 оперативной памяти для анализа оператора присваивания (знак 1. обозначает начальный символ в блоке 2 магазинной памяти). Эначениями этой таблицы яв () ляются коды, соответствующие определенной комбинации знаков на регистре 1 знака и в блоке 2 магазинной памяти.
Коды интерпретируются следующим образом: 01 — приоритет знака на регистре 1 выше приоритета знака из блока 2; 10 — приоритет знака на регистре 1 меньше приоритета знака из блока 2; 11 - знаки имеют один
g) и тот же приоритет; 00 — недопустимое сочетание знаков.
Рассмотрим работу устройства на примере обработки оператора A:=
=Бх(С+Д); при условии, что в предлагаемое устройство поступают толь857994
0 00
10 00 ко знаки операций, как и в известном устройстве.
Код первого знака := поступает на регистр 1 знака, а затем передается на регистр 3 адреса, куда поступает код знака из блока 2 магазинной памяти . ° После этого осуществляется чтение иэ блока 4 оперативной памяти.
При считывании кода 01 выполняется передача кода с регистра 1 в блок
2 магазинной памяти и запись на регистр 1 знака кода следующего знака программы. Затем коды из регистра и из блока 2 магазинной памяти передаются на регистр 3 адреса и осуществляется чтение из блока 4 оперативной памяти.
При считывании кода 10 или 11 из устройства на выход 9 выдается код знака, находящийся в блоке 2 магазинной памяти. Если выдан код от- Щ крывающейся скобки, на регистр 1 знака записывается очередной знак операции программы. Затем коды из регистра 1 и иэ блока 2 передаются на регистр 3 адреса и осуществляется чтение из блока 4 оперативной памяти.
В результате этих действий скобки исключаются из дальнейшего рассмотрения. Если из блока 2 магазинной памяти выдан код знака :=, то устройством выполняются те же действия, что и в случае открывающейся скобки.
Отличие заключается в том, что код знака := используется для выполнения соответствующей операции в других устройствах вычислительной машины. В случае выдачи из блока 2 магазинной памяти любого другого знака, он используется для выполнения соответствующей операции, а в устройстве выполняется передача старого кода с 40 регистра 1 и нового кода иэ блока 2 магазинной памяти на регистр 3 адре са. Далее осуществляется чтение из блока 4 оперативной памяти.
При считывании кода 00 анализ программы перерывается для обработки появившейся ошибки и принятия мер по ее устранению.
В результате выполнения указанных процедур последовательность знаков
:=х(+); на входе 5 устройства, соответствующая исходному оператору
A:=Вх(С+Д), будет преобразована в последовательность +х:= на выходе 9 устройства. Эта последовательность соответствует порядку выпол11 11 01 01 01 нения операций в рассматриваемом операторе.
Блок управления (фиг.2) работает следующим образом.
Поступающий на вход блока управления код передается в регистр 13 адреса, где определяется фиксированный адрес ячейки памяти 14 микрокоманд, начиная с которой записана микропрограмма обработки поступившего кода. Иэ памяти 14 микрокоманд последовательно выбираются микрокоманды на регистр 15 микрокоманд, дешифрируются дешифратором 16 и по ним формирователем 17 функциональных сигналов формируются функциональные сигналы, которые используются для управления по входам 6, 7 и 8 работой регистра 1 знака, блока 2 и блока 4. Действия, выполняемые блоком
12 управления, синхрониэируются узлом 18 синхронизации.
Приведенный пример работы устройства не отражает всех его возможностей. Расширение множества анализируемых знаков и процедур позволяет осуществлять полный синтаксический анализ программ на языках с грамматиками предшествования.
Рассмотренные аналоги предлагаемого изобретения отличаются общим недостатком — невысоким быстродействием, так как анализ приоритета выполнения операции производится путем последовательного поразрядного сравнения кода операционных знаков, несущего информацию о приоритете.
Поскольку этот код занимает 5-6 двоичных разрядов, сравнение происходит за 5-6 тактов. В предлагаемом изобретении сравнение производится за один та.кт.
Применение предлагаемого технического решения позволяет, кроме того, значительно уменьшить затраты памяти для хранения программ. Так для 32-разрядной ЦВМ, работающей с
8-разрядными кодами операций, избыточная информация для указания приоритета операции (с применением изветных устройств анализа) составпяет 5-6 разрядов, а объем памяти цВМ на 15% больше, чем в случае применения предлагаемого технического решения.
857994
Продолжение таблицы
Знак на регистре 1
Знак из блока 2
+ — х — L () 1О 1О 11 11 Ог 1О
ОО 1О
10 10 11 11 01 10 00 10
01 01 01 01 01 10
00 00 00 00 00 00
00 00
00 00
01 01 01 01
01 00 10
00 00 00 00 00 00
00 00 00 00 00 00
00 00
01 00
Формула изобретения
1. Устройство для определения. старшинства операций, содержащее регистр знака, информационный вход которого соединен с информационным входом устройства, блок магазинной памяти, первый выход которого соединен с первым информационным выходом устройства, причем управляющие входы регистра знака и блока магазинной памяти соединены соответственно с первым и вторым выходами блока управления,а первый выход регистра знака соединен с информационным входом блока магазинной памяти, о т л и ч а ю щ е е с я тем, что, с целью повышения быстродействии, оно содержит регистр адреса и блок оперативной памяти,причем вторые выходы регистра знака и блока магазинной памяти соединены с входами соответственно старших и младших разрядов регистра адреса, выход которого и третий выход блока управления соединены соответственно с адресным и запускающим входами блока оперативной памяти, а информационный выход блока оперативной па2О мяти соединен с входом блока управления.
2. Устройство по п.1, о т л ич а ю щ е е с я тем, что блок управ ления содержит регистр адреса, первый вход которого является входом блока, а выход соединен с адресным входом памяти микрокоманд, выход которой соединен со входом регистра микрокоманд, первый и второй выходы которого соединены соответственно с втоЗО рым входом регистра адреса и с входом дешифратора микрокоманд, выход которого соединен с информационным входом формирователя функциональных сигналов, выходы которого являются
35 соответственно первым, вторью и третьим выходами блока, узел синхронизации, выход которого соединен с синхровходами регистра адреса, памяти микрокоманд и формирователя функциональных сигналов.
Источники информации, принятые во внимание при экспертизе
1. Авторское свидетельство СССР
Р 388259, кл. G 06 F 9/00, 1973.
2. Авторское свидетельство СССР
Р 407312, кл. G 06 F 9/18,,1973 (прототип).
857994
Фе 2
Составитель Ф. Шагиахметов
Техред Ж. Кастелевич Корректор М- Коста редактор П. Ортутай
Тираж 745 Подписное
ВНИИПИ Государственного комитета СССР по делам иэобретений и открытий
113035, Москва, Ж-35, Раушсная наб., д. 4/5
Закаэ 7245/79 филиал ППП "Патент", r. Ужгород, ул, Проектная,4