Устройство для определения старшинства операций

Иллюстрации

Показать все

Реферат

 

Союз Советских

Соцналистичесмнх

Рвспублнн

ОПИСАНИЕ

ИЗОБРЕТЕНИЯ

К АВТОРСКОМУ СВИ ВТИЛЬСТВУ

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