Устройство для интерпретации выражений языков программирования

 

УСТРОЙСТВО ДНЯ ИНТЕРПРЕТАЦИИ ВЫРАЖЕНИЙ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ , содержащее элементы И, ИЛИ, первый, второй, третий к четвертьШ регистры команд, входы ситронизащпкоторых соединены с входом синхронизации устройства, информационный вход первого регистра команд соединен с входом команд устройства, выход первого регисгра команд соединен с информационным входом Второго регистра команд, выход которого соединен с информационным входом третьего регистра команд, выход которого подключен к информационному Входу четвертого регистра команд, выходы регистров команд подключены соответственно к первому. Второму , третьему и четвертому входам первого дешифратора, первый выход шифратора соединен с первым входом первого элемента ИЛИ, выход которого соединен с первьЕч1 входом первого блока элементов И, второй вход которого соединен с выходом второго дешифратора , вход которого подключен к выходу счетчика операндов, выход второго дешифратора соединен с первым входом второго блока элементов И, второй вход которого соединен с выходом второго элемента ИЛИ, первый вход которого соединен с вторым выходом шифратора, третий выход которого соединен с первым входом третьего элемента ИЛИ, четвертый выход соединен с входами установки в нулевое состояние решсгров операШ1Й , регистров операндов, счетчика операндов , с первым входом блока стековой памяти и с входом синхронизации решстра Вьщачи, выход которого является выходом данных устройства, информационный вход регистра выдачи подключен к выходу блока обработки, соединенному с первым входом третьего блока элементов И, пятый вьпсод шифратора через элемент НЕ подключен к выходу синтак синеской ошибки устройства, шестой выход соединен с суммирующим входом S счетчика операндов и через первый элемент задержки - с вторым входом первого элемента ИЛИ, вход операндов устройства подключен к первому входу первого блока элементов ИЛИ, выход которого подключен к информационным входам регистров операндов, управляющий вход шУ1фратора подключен к выходу второго эле мента задержки, выходы первого дешиф эо ратора подключены соответственно к информационным входам шифратора, от со ю личающееся тем, что, с целью упрошешм, в нем первый вход четвертого элемента ИЛР1 соединен с третьим выходом шифратора, который через трютий элемент задержки соединен с вторым входом Второго элемента ИЛИ, второй вход четвертого элемента ИЛИ, второй вход блока стековой памяти и второй вход третьего элемента ИЛИ соединены с седьмым выходом шифратора, выход третьего элемента ИЛИ через четвертый элемент задержки соединен с вычитающим входом счетчика операндов и с входом пятого элемента задержки, выход кото-

СОЮЗ СОВЕТСНИХ

СОЦИАЛИСТИЧЕСНИХ

РЕСПУБЛИК

ГОСУДАРСТВЕННЫЙ НОМИТЕТ СССР

ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТНРЫТИЙ (19) (11

3(5D G 06 F 15/20; G 06 F 15/38 (21) 352871 2/1 8 — 24 (22) 24,1 2.82 (46) 07.03.84. Бюл. ¹ 9 (72) Б. И. Сергеев, A. П. Плахгеев, М. А. Курносов и В. Д. Свисгельников (53) 681.325.22(088.8) (56) 1. Авторское свидетельство СССР № 519715, кл. g 06 F 15/04, 1974.

2 Авторское свидетельство СССР по заявке ¹ 3338385/18 — 24, кл. 06 F 15/20, 1981. (54)(57) УСТРОЙСТВО ДЛЯ ИНТЕРПРЕТАЦИИ ВЫРАЖЕНИЙ ЯЗЫКОВ ПРОГРАМMNPOBAHNH, содержащее элементы И, ИЛИ, первый, второй, третий v. четвертый регистры команд, входы синхрэнизащп1 которых соединены с входом синхрэниза=ции усгрэйства, информационный вход первого регистра команд соединен с входом команд устройства, выход первого регистра команд соединен с инфэрмационным входом второго регистра кэманд, выход которого соединен с информационным входом третьего регистра команд, выход которого подключен к информационному .вхэду четвертого регистра команд, выходы регистров команд подключены соответственно к первому, второму, третьему и четвертому входам первого дешифрагэра, первый выход шифратора соединен с первым входом первого элемента ИЛИ, выход когорэго соединен с первым входом первого блэка элементов И, второй вход которого соединен с выходом второго дешифратора, вход кэгорого подключен к выходу счетчика эперандэв, вьмод второго дешифрагора соединен с первым входом второго блока элеменгэв И, второй вход которого соединен с вькэдэм второго элемента ИЛИ, первый вход кэгорого соединен с вторым выходом шифратора, гретий выход которого соединен с первым входом третьего элемента ИЛИ, четвертый выход соединен с входами установки в нулевое состояние регистров операций, регистров операндов, счетчика оп рандов, с первым входом buona стековой памяти и с входом синхронизации регистра вьщачи, выход которого является выходом данных устройства, информационный вход регистра выдачи подключен к выходу блока обработки, соединенному с первым входом третьего блока элементов И, пятый выход шифратора через элемент HE подключен к выходу синтак сической ошибки устройства, шестой выход соединен с суммирующим входом счетчика операндов и через первый элемент задержки — с вторым входом первого элемента ИЛИ, вход операндов устройства подключен к первому входу первого блэка элементов ИЛИ, выход которого подключен к информационным входам регисгрэв операндов, управляютпий вход шифразора пэдключен к выходу второго элемента задержки, выходы первого дешифратора подключены соответственно к инфэрмалионным входам шифратора, о тл и ч а ю щ е е с я тем, что, с целью упрощения, в нем первый вход четвертого элемента ИЛИ соединен с третьим выходом шифратора, который через третий элемент задержки соединен с вторым входом второго элемента ИЛИ, второй вход четвертого элемента ИЛИ, второй вход блока стековой памяти и второй вход третьего элемента ИЛИ соединены с седьмым выходэм шифратора, выход третьего элемента ИЛИ через четвертый элемент задержки соединен с вычитающим входом счетчика операндов и с входом пятого элемента задержки, выход кото1@78432 рого соединен с третьим входом первого элемента ИЛИ и с вторым входом третьего блока элементов И, выход которого соединен с вторым входом первого блока элементов ИЛИ, третий и четвертый входы блока стековой памяти соединены соответственно с восьмым и девятым выходами шифратора, выход блока стеко вой памяти соединен с пятым входом первого дешифрагора, вход второго элемента задержки соединен с входом синхронизации устройства, первый, второй и третий входы блока обработки соединены соответственно с выходами второго, третьего и четвертого блоков элементов

ИЛИ,вхэды второго блока элементов ИЛИ соединены с выходами каждого (2n + 2)го (n = 1, ) блока элементов И, входы третьего блока элементов WIN соединены с жходами каждого (2тт+ 3)-гэ (е = 1, 1 )блока элементов И, j —,й вход (i = 2, 3 ) четвертого блока элементов

ИЛИ соединен с выходом j -T D блока элементов И (у = 2 (+ 4, 3(+ 3), первый вход которого соединен с выходом второго дешифрагора, второй вход соединен с выходом 1 -го регистра @пераций, вход синхронизации которого соединен с выходом второго блока эле.лентов И, информационный вход соединен с входом операций устройства, выход первого блока элеменгов И соединен с входом синхронизации пт-го регистра операндов, выход первого регистра операндов соединен с первым входом четвертого блока элементов И, второй вход которого подключен к выходу второго дешифратэра, выход i-го (1 = 2, е, ) регистра операндов соединен с первыми входами (2 i +

+ 1)-го. и (2 е + 2)-го блоков элементов И, вторые входы которых соединены с выходом второго дешифратора, выход второго дешифратора соединен с первым входом (2 1 + 3)-го блока элементов И, второй вход которого подключен к выходу (3 + 1) -го регистра операндов, выход четвертого элемента ИЛИ соединен с четвертым входом блока обрабог1

Изобретение относится к вычислительнойй технике и может быть использовано ки, причем блок обработки содержит регистр адреса, узел памяти микропрограмм, регистр микрокоманд, коммутаторы, сдвигатель, регистр суммы, сумматор, группу элементов И-ИЛИ и регистр, выход котэрого является вьпхэдэм блока обработки, выход регистра адреса соединен с входом узла памяти микропрограмм, выход кэторогэ соединен с входом регистра микрокоманд, первый выход которого подключен к первому входу первого коммутатора, первый и второй входы которого соединены соответственно с первым и вторым входами группы элементов И-ИЛИ, с первым и вторым входами сумматэра, выход которого соединен с первым входом сдвигателя, выход кэгорого соединен с вгэрьпл выхэдэм регистра микрокэманд, третий выход которого соединен с управляющим входом регистра, выход второго коммутатора соединен с первым вхэдом третьего коммутатора, первый выхэд кэгорогэ соединен с информационным вхэдом регистра, второй выход третьего коммутатора соединен с первым входэм первого коммутатора, третий и четвертый входы которого являются соответственно первым и вторым входами обработки, второй вход третьего коммутатора соединен с третьим выходом регистра микрэкэманд, третий выход подключен к первому выходу регистра суммы, второй выход кэгэрэгэ соединен с первым входом регистра адреса, чегвергый выход регистра микрокоманд соединен с вторьпл входом регистра адреса, пятый выход соединен с управляющим входом второго коммутатора, шесгэй выход соединен с третьим входом сумматора, седьмой выход пэдклктчен к второму входу сдвигателя, третий и четвертый входы регистра адреса являются соответственно третьим и четвертым входами блэка обработки. выхэпь. группы элементов N-ИЛИ соединены сэогвегственно с инегэрмациэнными езхэцаь. и второго к эм I Y TBT э ра.

2 в быстродействующих операционных системах обработки инфэрмации, в часгнэсги

3 107 в системах с диалоговым режимом разработ ки, отладки и выполнения программ, в электронных вычислительных машинах с языком высокого уровня.

Известно устройство для обработки выражений языков программирования, содержащее регистры операндов, формирователь управляющих сигналов, блок стековой памяти, счетчик операндов, дешифрагор, арифметико-логический блок, выходной регистр Г11.

Недостатком данного устройства явля— ется орагнизация стека, в который заносится вся вычислительная формула, что снижает экономичность устройства.

Наиболее близким по технической сущности и достигаемому результату к предлагаемому является устройство для обработки выражений языков программирования, содержашее вход синхронизации сэ-! 20 единенный с входами синхрэнизации nephoro, второго, третьего и четвертого регистров команд, инфэрмационный вхэд первого из которых соединен с входом команд ycrpoAcrha, а выход — с информа- 2> ционным входом второго регистра команд, выход которого соединен с информационным входом третьего регистра команд, выход которого подключен к информационному входу четвертого регистра команд, Зо выход j-гo (1 = 1,4) регистра команд подключен соответственно к 1-у входу формирователя управляющих сигналов, первый выход которого соединен с первым входом первого элемента ИЛИ, выход когорого соединен с первыми входами пеГ 35 вого блока элементов И, вторые входы которого соединены с соответствующими выходами дешифратора, вход кэторого подключен к выходу счетчика операидов, выходы дешифратора соединены с первыми

40 входами второго блока элементов И, вторые входы которого соединены с выходом второго элемента ИЛИ, первый вход которого соединен с вторым выходом формирователя управляющих сигналов, третий выход которого соединен с первым входом третьего элемента ИЛИ, четвертый выход — со входам установки в нулевое состояние регистров. операции, регистров операндов, счетчика операндов, первым входом блока стековой памяти и входом синхронизации регистра выдачи, выход которого является выходом данных устройства, информационный вхэд регистра выдачи пэдключен к выходу блока обработки, соединенному также с первым входом третьего блэка элементов И, пятый выход формирователя управляющих

8432 4 сигналов является выходом синтаксической ошибки, шестой выход формирователя соединен с суммирующим входом счетчика операндов и через первый элемент задержки с вторым входом nepBoro элемента ИЛИ, вход операндов устройства подключен к первому входу первого блока элементов ИЛИ, выходы которого подключены к информационным входам регистров операндов 2 1.

Недостатком данного устройства является его сложность, вызванная необходимостью реализации 0 блоков обработ ки, (2 1+ 1) элементов выборочного сброса регистров операндов и операций, 6 блоков т рехвх эц овых элементов И, восьми блоков элементов И коммутации выходов дешифратора на управляющие входы и входы установки в нуль регист ров операндов и операций через четыре блока элементов ИЛИ, блока стековой памяти, управляемогэ распределителя импульсов и обусловленных ими связей.

Цель изобретения — упрощение устройства.

Поставленная пель достигается тем, что в устройство, содержащее элементы

И, ИЛИ, первый второй, третий и четвертый регистры команд, входы синхронизации которых соединены с входом синхронизапии устройства, информационный вход первого регистра команд соединен с входом команд устройства, выход первого регистра команд соединен с иформационным входом второго регистра команд, выход которого соединен с информапионньгл входом третьего регистра команд, выход которого подключен к информационному входу четвертого регистра команд, выходы регистров команд подключены соответственно к первому, второму, третьему и четвертому входам первого дешифратора, первый выход шифратора соединен с первым входом первого элемента ИЛИ, выход KoropoI соединен с первым входом первого блока элементов

И, второй вход которого соединен с вык ходом Broporo дешифратора, вход Koropoго подключен к выходу счетчика операндов, выход второго дешифратора соединен с первым входом второго блока элементов

И,второй вход которого соединен г. выходом второго элемента ИЛИ, первый вход которого соединен с вторым входом шифруют тора, третий выход которого соединен с первым входом третьего элемента ИЛИ, четвертый выход соединен с входами ус-. тановки в нулевое состояние регистров

107 8432 операций, регистров операндоВ, счетчика операндов, с первым Входом блока стеко вой памяти и с Входом синхронизации ре гистра выдачи, выход которого является выходом устройства, информационный вход регистра выдачи подключен к выходу блока обработки, соединенному с первым входом третьего блока элементов И, пятый выход шифратора через элемент

HE подключен к выходу синтаксической ошибки устройства, шестой выход соединен с суммирующим входом счетчика операндов и через первый элемент задержки с вторым входом первого элемента

ИЛИ, вход операндов устройства подключен к первому Входу первого блока элементов ИЛИ, выход которого подключен к информационным входам регистров операндов, управляющий вход шифратора подключен к выходу второго элемента задержки, выходы первого дешифратора подключены соответственно к информационным Входам шифратора, первый вход четвертого элемента ИЛИ соединен с третьим выходом шифратора, который через третий элемент задержки соединен с вторым входом второго элемента ИЛИ, второй вход четвертого элемента ИЛИ, второй вход блока стековой п»мяти и второй вход третьего элемента ИЛИ со- ЗО единены с седьмым выходом шифратора, выход третьего элемента ИЛИ через четвертый элемент задержки соединен с вычитающим входом счетчика операндов и с входом пятого элемента задержки, выхсд которого соединен с третьим входом первого элемента ИЛИ и с вторым входом третьего блока элементов И, выход которого соединен с вторым входом первого блока элементов ИЛИ,третий и четвертый 4Q входы блока стековой памяти соединены соответственно с восьмым и девятым выходами шифратора, выход блока стековой памяти соединен с пятым входом первого дешифратора, вход второго элемента задержки соединен с входом синхронизации устройства, гервый, второй и третий входы блока обработки соединены соответственно с выходами ьторого, третьего и четвертого блоков элементов

ИЛИ, входы Второго блока элементов

ИЛИ соединены с выходами каждого (2n+ 2)-го (n = 1, Г ) блока элементов И, входы третьего блока элементов

ИЛИ соединены с выходами каждого .(2п + 3)-го (и = 1, .() блока элемен55 тов И, -й вход (i = 1, (> ) четвертого блока элементов 1Ь1И соединен с вы-ходом j го блэ ка эл емец Гэв И (2 + 4, 3 1+ 3), первый вход которогосоединен с выхопом второго пешифратора, второй вход соединен с выходом i-го регистра операций,вход синхронизации которого соединен с выходом второго блока элементов И, информационный вход соединен с входом операций устройства, выход первого блока элементов И соединен с входом синхронизации щ -го регистра операндов, выход первогэ регистра опе рандов соединен с первым входом четвертого блока элементов И, второй вход которого подключен к выходу второго дешифратора, выход 1-ro (i = 2, () регистра операндов соединен с первыми входами (2 + 1)-го и (2 + 2)-го блоков элементов И, вторые входы которых соединены с выходом второго дешифратора, выход второго дешифратора соединен с первым входом (2 6 + 3)-гэ блока элементов И, второй вход которогэ подключен к выходу (+ 1)-го регистра операндов, выход четвертого Влемента

ИЛИ соединен с четвертым входом блока обработки, причем блок обработки содержит регистр адреса, узел памяти микропрограмм, регистр микрокэманд, коммутаторы, сдвигатель, регистр суммы, сумматор, группу элементов И-ИЛИ и регистр суммы, выход которого является выходом блока обработки, выход регистра адреса соединен с входом узла памяти микропрограмм, выход которого соединен с входом регистра микрэкоманд, первый выход которого подключен к первому входу первого коммутатора, первый и второй выходы ко торого с эединены соо тветственно с первым и вторым входами группы элементов И-ИЛИ, с первым и вторым Bxog»MH сумматора, выход которого соединен с первым входом сдвигателя, выход которого соединен с информационным входом регистра суммы, управляющий Вход которого соединен с вторым выходом регистра микрокоманд, третий выхэд которого соединен с управляющим входом регистра, выход второго коммутатора соединен с первым входом третьего коммутатора, первый выход которого соединен с информационным Входом региcrpa, вторэй выход третьего коммутатора соединен с первым входом первого коммутатора, третий и четвертый входы которого являются соэгветсгвенн-> первым и вторым Входами блока обработки, второй ихэд трегьегo коммутатора соединен с третьим выхэдэм регистра микрэкоманд, третий вход подключен к первому выходу рc>-,,с р» суммы, второй выход к. торэго

7 1078 соединен с первым входом регистра вдресВ четвертый выход регистра микрокоманд соединен с вторым входом регистра адреса, пятый выход соединен с управляющим входом второго коммутатора, шестой выход

5 соединен с третьим входом сумматора, седЬмой выход подключен к второму вхо— ду сдвигагеля, третий и четвертый входы регистра адреса являются соответственно третьим и четвертым входами блока обрв-",0 ботки, выходы группы элементов И-ИЛИ соединены соответственно с информацион— ными входами второго коммутатора, третий элемент ИЛИ с входом блока обработки позволяет запускать блок обработки

I5 для выполнения очередной опера .ии.

На фиг. 1 и 2 прецстввпеыа блок-с:хема устройства; нв фиг. 3 — блок — схема формирователя упрвв июших сигналов; нв фиг. 4 — блок-схема блэка сгековой пв20 мяти; на фиг. 5 — блок-схема блока обработки; нв фиг. 6 — временная дивграм— ма рабо ты ус гройс твв.

Устройство для интерпретации выражений языков программирования (фиг. 1, 2)

25 содержит вход 1 синхронизации устройства, вход 2 команд, регистоы команд 3<- 34, формирователь 4 управляющих сигналов с выходами 4 — 4 9, вход 5 операндов, блок элементов И 6, блок элементов ИЛИ

7, элемент ИЛИ 8, элементы -..адерж30 ки 9 и 10, элемент ИЛИ 11, блок элементов И 12, регистры операндов 13 g—

13 1+ 1, блоки элементов И 14 — 14 блоки элементов ИЛИ 15 и 152, блок обработки 16, регистр выдачи 17, выход 5

18 данных устройства, элемент WIN 19, элемент задержки 20, счетчик операндов 21, дешифратор 22, элемент задержки 23, элемент ИЛИ 24, блок сгековой памяти 25, блок элементов И 26, блок 40 элементов ИЛИ 27, блоки элементов

И 28 < — 28о, регистры операций 29

29, вход 30 устройства, дешифратор 31, шифратор 32, элемент HE 33, элемент задержки 34, элементы И 35 — 35 „, 45 триггеры признака 36 < — 36 p g, элементы И 37 4 — 37g — g, элемент ИЛИ 38, счетчик уровня 39, дешифратор 40, элемент ИЛИ 41, элемент задержки 42, элемент ИЛИ 43, микропрограммное устройство 4-4 управления, регистр 45 адреса, узел 46 памяти микропрограмм, регистр 47 микрокэманд, коммутатор 48, сумматор 49, сдвигвтель 50, регистр 51 суммы, узел 52 логических операций, 55 включающий группу элементов И-ИЛИ

53 < — 53„,, коммутатор 54, регистр 55, коммутатор 56.

432 F3

Коды команд с выходов регистров команд 3 — 3 и разряд признака с вы1 4 хода блока стековой памяти 25„поступают нв входы дешифрвгорв 31, вследствие чего на его выходах формируется унитарный кэд, поступают и далее HB входы шифратора 32, вызывая появление положительного импульса на одном из его выходов. Единичный сигнал на выходе

4 формирователя вырабатывается лишь в случае недопустимой кодовой комбинации нв входах дешифрагора 31, что ведет к формированию нулевого кода нв его выходах. Сигнал, поступающий с входа 1 синхронизации устройства через элемент задержки 34 нв синхрэнизирующий. вход шифратора 32, обеспечивает сгробирэвание рвбогы шифратора лишь после завершения переходных процессов в регистрах команд 3 < — 3< и дешифрагоре 31.

Блок стековой памяти 25 рвботаег следующим образом.

В исходном состоянии счетчик уровня 39 и триггеры признака 36 — 36 находятся в нулевом состоянии, причем на первом выходе дешифрвгорв 40 ycr< новлен единичный сигнал. По сигналу на входе 4, соединенном с одноименным выходом формирователя управляющих сигналов, происходит установка нулевогэ состояния в триггере признака 36, TBK как эгог сигнал поступает нв входы записи нулевого состояния всех триггеров признака одновременно, и также через элемент ИЛИ 4-3, элемент И 35„, выбранный единичным сигналом с первого выхода дешифраторв 40 — на управляющий вход триггера признака 36„. Сит нвл состояния триггера признака 36 через элемент И 37„, выбранный единичньж сигналом с первого выхода дешифрагора 40, и элемент ИЛИ 38 поступает нв выход блока сгековой памяти 25. Сит нвл с входа, соединенногэ выходом 46 формирователя управляющих сигналов через элемент ИЛИ 41 и элемент задерж жки 42, поступает нв суммирующий вход счетчика уровня 39, увеличивая его состояние нв единицу, единичный сигнал появляется на втором выходе дешифрагорв

40, соединенном с входами элементов И

35 и 37, вызывая коммутацию выхода триггера признака 36> через элемент

ИЛИ 38 с выходом блока сгековой памяти 25, а также разрешая запись нулевэгэ или единичного состояния в триггер приз нвкв 36>. Таким образом звфиксируегся отсутствие нс. ч выполненной операции в первом уровне обработки и осуществляется

107 8432 переход на второй уровень . В обшем случае происходит фиксация отсутствия невыполненной операции в прерываемом уровне обработки выражения и переход на более высокий уровень.

Аналогично действует и сигнал на входе блока стековой памяти, соединенном выходом 4 формирователя управляющих сигналов с той разницей, что он поступает на входы записи единичного состояния триггеров признака, вызывая запись единичного сэс тэяния в один из триггеров признака и фиксируя, тем самым, наличие невыполненной операции в прерываемом уровне о бра бо тки. 1S

Сигнал с входа блока стековой памяти, соединенного с выходом 4 формирователя управляюших сигналов, поступает на вычитаюший вход счетчика уровня 39 вызы1 20 вая уменьшение его состояния на единицу. Вследствие этого единичный сигнал появляется на том выходе дешифратора

40, который через соответствуюший элемент И 35 соединен с управляюшим входом триггера признака, соответствуюшего последнему прерванному уровню обработки выражения, а также на вход элеменга И 37, второй вход которого соединен с выходом триггера признака, а выход

30 через элемент ИЛИ 38 — с выходом блока стековой памяти 25, Таким образом фиксируется завершение интерпретации текушего уровня обработки выражения и переход на предшествуюший прерванный уровень обработки.

Сигнал с входа блока стековой памяти, соединенного с выходом 4 формирователя управляющих сигналов, поступает на вход асинхронной установки в нулевое состояние счетчика уровня 39 и на входы асинхронной установки в нулевое состояние триггеров признака, вызывая их обнуление.

В исходном состоянии блок обработки находится B ждущем режиме (сигнал на вхэде, запускающий блок обработки, отсутствует). При поступлении на вход блока обработки единичного. сигнала происходит прием кода операции с соответствующего регистра 29 операций в регистр

45 адреса и запуск микропрограммного устройства управления 44. Л1икрокоманды, считываемые из узла 46 в регистр

47 микрокоманд, имеют семь управляюших полей 47 — 47.. .1

Код на выходе 47 управляет подачей операндов и промежуточных результатов на входы сумматора 49 и узла 52, 10

Код 47 управляет работой сумматора при реализации арифметических операций (сложения, вычитания, умножения, деления) .

Для реализации сложных арифметических операций по итерационными влгэритмам используется сдвигатель 50, осушествляюший передачу кода без сдвига с выхода сумматора 49 на вход регистра 51 суммы или передачу со сдвигом вправо, или со сдвигом влево под дестВием соответствующего управляюшегэ кода с выхода 47 регистра микрокомана

47.

Прием промежуточного кода с выхода сдвигателя 50 в регистр 51 эсушеств ляется пэд действием управляюшего кода с выхода 47, . Управляюший код с выхода

47 . управляет коммутатором 54, который производит передачу экончвтельного результата с выхода регистра 51 суммы или узла логических операций на вход регистра 55 или передачу кэда промежуточного результата арифметических операций с выхода регистра суммы 51 на вход коммутатора 48.

Управляющий код с выхода 47 управ ляет коммутатором 53, Ko TophIA эсушествляет передачу результата логической операции на коммутатор 54.

Код адреса следуюшей микрокоманды с выхода 47 поступает на вход регистра 45 адреса и управляет ходом выполнения микропрэграммы эпераций.

Сигналы переполнения, знака и другие, поступающие с регистра 51 суммы на вход регистра адреса 45, используются для проверки логических условий и ветвлений в микрэпрограммах, После выполнения микропрограммы операции над заданными эперандами результат через коммутатор 54 записывается в выходной регистэ 55 и микропро граммное устройство управления 44 пере ходит в режим ожидания до поступления очереднэго сигнала на вход, ОсНоВоА языка программирования устройства являются элементарные записи, которые в определениях языка Бэкуса записываются следуюшим образом: (запись).:: = (разделитель) (выраж ние ) (раздели тель>; разделитель:: =+; (выражение ):: = (выражение ) (операция) (выражение > (команда завершения ); (выражение ):: = (скобка открыввюшая) выражение) (скобка закрыва;ошая,;

11 1078 (выражение ):: (операнд) (операция) < операнд); (операция ): (êoìaíäa завершения): (скобка открывающая >:: = ( (скобка закрывающая ):: = )

5 роперанд >:: 7i;

fEF= I F<, ...,,„) — множество операций, реализуемых блэком обработки.

Скобки предназначены для изменения порядка вычислений (выделения участ ков выражения с более высоким уровнем).

При этом под уровнем выражения принимается часть выражения, заключенная между открывающей и соответствующей ей

15 закрывающей скобками одной степени вл оже ни ос ти.

Под степенью вложенности понимается число, указывающее количество открытых скобок в последовательности открывающих

20 скобок в выражении при условии равенства числа открывающих и закрывающих скобок. При нулевой степени вложенности скобки отсутствуют.

Обработка очередного уровня может

25 прерываться появлением старшего по степени вложенности уровня. При этом результат обработки прерванного и незавершен-, ного уровня запоминается в регистре операндов данного уровня. Обеспечивается 30 коммутация цепей для приема операндов и промежуточных результатов прерываюшего (старшего ) уровня на регистры one— рандов этого уровня и их подачи на входы блока обработки. 35

Пэ завершении обработки высшего уровня осуществляется переход на обработку низшего (прерванногэ) уровня. Переход с одного уровня на другой сопровож дается изменением состояния счетчика <0 уровня в блоке стековой памяти. Обработка заканчивается командой завершения, по которой окончательный результат поме.лается в первый регистр операнаов.

Элементаоные записи могут эбьепиняться 5 в последовательности записей: (последовательность записей У. — + (запись) х; (последовательность записей ):

= + (запись> (последовательность запи- 50 сей > (запись) +

° Команда (+ ) обеспечивает прием результата обработки предыдущей записи в регистр выдачи и сброс схем устройства перед началом обработки следующей. 55

Записанные указанным образом выражения в случае использования устройства в диалоговых системах отладки и выпэлне432 12 ния программ кодируются позначно и вводятся в блок внешней памяти (не показан). В случае испон зования устройства в ЭВМ с аппаратно реализованным языком высокого уровня к указанному виду выражения приводятся на этапе преобразования исходного текста программы к внутреннему представлению, которое помещается в оперативную память (не показана).

Выборка комайд, операций обработки и операндов из памяти и подача их на соответствующие входы устройства интерпретации осуществляется внешним устройством управления (не показано).

Период следования импульсов синхронизации устройства рассчитывается на длительность интерпретации самой длинной команды, которая в основном определяется длительностью реализации самой продолжительной операции обработки операндов в блоке обработки.

Диаграмма работы устройства при выполнении различных команд показана на фиг. 6, где обозначены следукыгие временные зависимости сигналов:

СИ вЂ” на входе синхронизации устройства; ф fC — на одном из выходов формирователя управляющих сигналов; (CRG — на входе синхронизации 1 -го

1 регистра операндов; э 1 — на выходе элемента ИЛИ 8;

С V 3 ". — на входе синхронизации q -го

1 регистра операций; — на входе синхронизации регист

| 1 ра 17;

RHG, — на входе асинхронной установ; Я(-1) ки нулевого состояния 1 (+ 1 ) регистров операндов;

R R 5," — на входе асинхронной установ1 ки нулевого состояния 1 регистров операций; (" 1) — на входе установки нулевого

7 (R(C 2)) состояния счетчика операндов

21 (счетчтка уровня 39);

R36 — на входе асинхронной установки нулевого состояния триггеров признака 1 — (3 — 1);

Y36 — на входе записи единичного

3 (К 36. ) (нулевого) состояния j -го

1 триггера признака; поги 1) — на суммирующем Входе Счетчнка (псг(Ст2Я операндов 21 (счетчика уровня

39);

Йсг(Ст1) — на вычитаюшем входе счетчика (gecgC 2)) 21 (счетчика 3n).

Диаграммы — 1; соответствуют работе устройства при появлении сигналов

13 1078 иа выходах 4, - Фв формирователя управляюших сигналрв.

Разрешенные комбинации команд сведены в табл. 1.

Соответствие комбинаций команд управлякнцим сигналам на выходах 4

1 — 4> формирователя управляющих сигналов 4 представлено в табл. 2, где введены следуюшие обозначения: (С 1) — состояние счет .ика операн- 10 дов;

1= (Сто/+ f ( (Cr 2) - состояние счетчика уровня блока стековой памяти;

Ст/)"" 15 — сигнал запуска блока обра3 бо тки; — выход блока обработки;

Й0; — >-й регистр операндов;

Р6" — j-é регистр операций;

П вЂ” j -й триггер признака блока

) стековой памя ти;

ЗΠ— время задержки, равное длительности реализации самой продолжительной 25 операции в блоке обработки;

7 время задержки, равное длительности расп рэстранения управляюшего сигнала при установке схем устройства; предназначено для разнесения во времени несовместимых микроопераций;

С вЂ” комбинация на входах 1 — 4 формирователя управляющих

35 сигналов 4.

Интерпретация выражений осуществляется следуюшим образом.

Сигнал синхронизации, поступаюший на вход 1 синхронизации устройства и далее на входы синхронизации регистров

31 — 3 от внешнего устройства управления, вызывает сдвиг кодов команд в регистрах команд 31 — З . Состояние регистра 3 переписывается в регистр 3 45 состояние регистра 32 переписывается в регистр 3 <, состояние регистра 32 переписывается в регистр 3 и код очередной команды с входа 2 записывается в регистр 31.

На входы формирователя 4 управляющих сигналов поступает комбинация четырех кодов команд с выходов регистров 31 — 3 и разряд признака из блока стековой памяти 25. При этом по сигналу55 синхронизации, поступаюшему через время задержки на синхронизируюший вход формирователя, на одном из егэ вы432 14 ходов 4 < — 4 пэявляется положительный

lg импульс. Задержка прохождения синхросигнала HB синхрэнизируюший вход формирователя, на одном из его выходов 4

-4 Ч появляется пэлэжител и имульс

Задержка прэхождения синхросигнала на синхронизируюший вход формирователя исключает возмо>кную неоднозначнэсть срабатывания формирователя при неодновременном срабатывании двухтактнъж триггеров в регистрах команд.

Положительный сигнал на одном из выходов фэрмирователя эбеспечивает выполнение микроопераций в одном такте работы устройства, определяемом периодом следования синхрэнизируюших импульсов. Такт в схемах устройства посредс твом введения временных задержек дели тся на микрэтакты, в которых выпэлняюгся нес эвм ес тимы е ми крэ or. ераци и.

Сигнал с выхода 1< приводит к приему результата вычисленнэг-> выражения с выходов регистра 55 блока обработки 1 6 в регистр 17, эбнулению счетчика операндов 21, c÷åò лка уровня 39 и триггеров признака 36 — 36, „в блоке стеко— вой памяти 25, регистров операндов 13„—

-1;-, о 1 и регистров операций 2 ) 1 — 29 (эсушествляется подготовка схем устройства к началу интерпретации;.эвэй записи) .

Ck|rHB;1 с выхода 4 через элемент

ИЛИ 11 разрешает прохождение сигнала с выхода дешифратора 22 через блэк элементов И 1" на вход синхронизации регистра операндов 13,, вызывая прием операнда с входа .. через бл"ê эле— ментов ИЛИ 7.

Сигнал с выхода 4< вызывает увеличе— ние состояния счетчика 21 на единицу и, следовательно, изменение кода па выходе дешифратора 22, далее через эле— мент задержки 10 элемент ИЛИ 11 раз решает прохождение сигнала с (i - 1)-ro выходы дешифратора 22 через блок элементов И 12 на вход синхронизации регистра операндов 13, разрешая прием операнда с входа 5 через блэк эле— ментов ИЛИ 7.

Сигнал с вгяхода 4 через элемент

ИЛИ 24 разрешает прохэждение сигнала с, -го выхода дешифратора 22 через блок элементов И 26 на ахоп синхронизации регистра операций 29;, вь:зывая прием кода операции с а эаа 30 .пераций.

Сигнал с выхода 4, вызывает уста— новку триггер» при "пака в Глек» ":> -токэ15

1078 вой памяти в нулевое состояние, идентифициру1ошее отсутствие невыполненной операции в данном уровне вложенности, далее через элемент ИЛИ 41, элемент задержки 42 вызывает увеличение сос5 тояния счетчика 39 блока 25 стековой намети на единицу, обеспечивая формирование сигнала разрешения синхронизации на (j+ 1)-м выходе дешифратора

40 (осуществляется переход к обработке старшего уровня вложенности) .

Сигнал с выхода 4; вызывает устаl новку триггера признака 36 j в блоке

25 стековой.памяти в единичное состояние, идентифицирующее наличие невыполненной операции в данном уровне вложенности, далее через элемент ИЛИ 41, элемент задержки 42 вызывает увеличение состояния счетчика 39 блока 25 стековой памяти на епиницу,что свидетельствует о переходе к обработке crарщего уровня вложенности. Сигнал с выхода 4

1 через элемент ИЛИ 8 вызывает запуск блока обработки, на входах которого установлены коды операндов с выходов регистров операндов 13 „4 и 13.; через блок элементов И 14 „4 и блок элементов И 142(„4 соответственно посредством разрешающего сигнала с j-го выхода дешифратора 22 на входы элемен тов И данных блоков, а на входе операций установлен код операции с выхода регистра операции 29; .7 через блок элементов И 28 посредством разрешающего сигнала с 1-го выхода дешифратора 22 на входы элементов И данного блока, и одновременно вызывает уменьшение состояния счетчика 39 уровня на единицу, далее сигнал через элемент

ИЛИ 19, элемент задержки 20 (задерж40 ки на время выполнения самой длинной операции блоком обработки) вызывает уменьшение состояния счетчика 21 операндов на единицу, далее через элемент задержки 9 поступает на вход блока элементов И 6 и через элемент ИЛИ 11

45 на вход блока элементов И 12, разрешает прохождение кода промежуточного результата с выхода блока 16 обработки через блок элементов И 6, блок элементов ИЛИ 7 на информационные входы регистра операндов 13; и обеспечивает синхронизацию приема результата в данный регистр.

Сигнал с выхода 4>, не ocyrgecraляя уменьшения состояния счетчика 39 блока стековой памяти в первом микротакте, действует аналогично сигналу с выхода 41, кроме гого, в третьем

432 16 микротакте одновременно с приемом результата промежуточной операции в регистр операндов 13; происходит прием кода операции с входа 30 операций в регистр операций 29 „- 1.

Сигнал с выхода 49 является сигналом семантической ошибки во входном выражении.

Работу устройства рассматривают по тактам. При этом под тактом понимают последовательность действий, выполняемых между последовательными приемами кодов команд. Рассмотри функционирование предлагаемого устройства на следующем примере.

Пусть на вход команд устройства последовательно поступает элементарная запись

+, (т Я ф (т,. у ; уч, и )) > «

При рассмотрении примера опускают общий для каждого такта этап приема очередного кода команды в регистр 31 и сдвиг информации в регистрах 3

-3 и начинают с момента появления единичного сигнала на одном из выходов формирователя управляющих сигналов, 1 такт. По сигналу с выхода 4 я формирователя управляющих сигналов происходит прием результата интерпретации предыдущего выражения с выхода блока обработки в регистр выдачи 17, обнуление счетчиков 21 и 39, регистров операндов 131 — 13 р 1 и регистров операций 29 — 29 .

2 такт. По сигналу с выхода 4 про3 исходит прием операнда 7„c входи операндов устройства в регистр операндов 131.

3 такт. По сигналу с выхода 4> про исходит прием кода операции (+) с входа операций устройства в регистр операций

29 . такт. По сигналу с выхода 4 проис7 ходит в первом микротакте запись одиночного значения в триггер признака

36>, а во втором микротакте — увеличение состояния счетчика 39 на единицу.

5 такт. По сигналу с выхода 4+ происходит в первом микротакте увелйчение состояния счетчика 21 на единицу и во втором микротакте прием операнда 1,7 в регистр операндов 13 с входа операнд дов устройства.

6 такт. По сигналу с выхода 4 происходит прием кода операции (x) с входа устройства в регистр операций 29 .

7 такт. По сигналу с выхода 4 происходит в первом микротакте увеличение

10784

12 такт. По сигналу с выхода 4 про 5 исходит в первом микротакте запись нулевого состояния в триггер признака 36>, во втором микротакте увеличение состояния счетчика 39 на единицу.

13 такт. По сигналу с выхода 4+ про- исходит в первом микротакте увеличение состояния счетчика 21 на единицу и во втором микротакте прием операнда Т(, в регистр операндов 132.

14 такт. По сигналу с выхода 4 про-" исходит прием кода операции (E) в регистр операции 292.

15 такт. По сигналу с выхода 4 происходит в первом микротакте увеличение состояния счетчика 21 на единицу и во втором микротакте прием операнда в регистр ойерандов 13З.

lg такт. По сигналу с выхода 42 происходит в первом микротакте запуск блока обработки на выполнение операции (X), во втором микротакте уменьшение состояния счетчика 21 на единицу, а в третьем микротакте — прием промежуточного ре17 состояния счетчика 21 на единицу и во втором микротакте прием операнда у с входа операндов в регистр операндов

13 .

8 такт. По сигналу с выхода 4 проис-5 ходит в первом микротакте запуск блока обработки на выполнение операции ()() и уменьшение состояния счетчика 39 на единицу, во втором микротакте уменьшение состояния счетчика 21 на единицу 10 и в третьем микротакте — прием промежуточного результата обработки cl (а =

Ji> Т() с выхода блока обработки

3 в регистр операндов 132.

9 такт. По сигналу с выхода 42 проис- s ходит в первом микротакте запуск блока обработки на выполнение операции (+), во втором микротакте уменьшение состояния счетчика 21 на единицу, а в третьем микротакте — прием промежуточ- т ного результата обработки в (Ь = Т +с )

1 с выхода блока обработки в регистр операндов 13< и кода операции (— ) в регистр операций 29„.

10 такт. По сигналу с выхода 4> про-25 исходит в первом микротакте запись единичного значения в триггер признака 36, во втором микротакте увеличение состояния счетчика 39 на единицу.

11 такт. По сигналу с выхода 4 про-gg исходит в первом микротакте запись нулевого состояния в триггер признака

362, а во втором микротакте — увеличеwe состояния счетчика 39 на единицу.

32 18 зультата обработки с выхода блока обработки С(с = Г / Т -) в регистр операндов 13 и прием кода операции (+ ) в регистр операций 292.

17 такт. По сигналу с выхода 4 происходит в первом микротакте увеличение состояния счетчика 21 на единицу, во

ВТороМ микротакге — прием операнда JIg в регистр операндов 13>.

18 такт. По сигналу с выхода 4., происходит в первом микротакте запуск блока обработки на выполнение операции (+ ) и уменьшение состояния счетчика 39 на единицу, во втором микротакте уменьшение значения счетчика 21 на единицу, а в третьем MHKpoTBKTe— прием промежуточного результата о6работки с -(о = с+ Ti ) в регистр операндов 132.

19 такт. По сигналу с выхода 4> происходит прием кода операции (x ) в регистр операций 292.

20 такт. По сигналу с выхода 4 происходит в первом микротакте увеличение состояния счетчика 21 на единицу и во втором микротакте прием операнда и > в регистр операндов 13>.

21 такт. По "сигналу с выхода 42 . происходит в первом микротакте запуск блока обработки на выполнение операции (х), во втором микротакте уменьшение состояния счетчика 21 на единицу и в третьем микротакте — прием промежуточного результата обработки e (e = о х к л ) в регистр операндов 13 2 и прием кода операции (— ) в регистр операций

292.

22 такт. По сигналу с выхода 4 происходит в первом микротакте увеличение состояния счетчика 21 на единицу, во втором микротакте прием операнда.7 в регистр операндов 13>.

23 такт. По сигналу с выхода 4„ происходи в первом микротакте запуск блока обработки на выполнение операции (— ) и уменьшение состояния счетчика 39 на единицу, во втором микротакте уменьшение состояния счетчика 21 на единицу и в третьем микротакте прием промежуточного результата обработки я (= e — А ) в регистр операнAOB 13z.

24 такт. По сигналу с выхода 4 происходит прием кода операции (к ) в регистр операций 292

25 такт. По сигналу с выхода 4 7 происходит в первом микротакте запись единичного состояния в триггер признака

19 10784

362 и во втором микротакте увеличение состояния счетчика 39 на единицу.

26 такт. По сигналу с выхода 4+ про исходит в первом микротакте увеличение состояния счетчика 21 на единицу, во втором микротакте прием операнда h> в регистр операндов 13З.

27 такт. По сигналу с выхода 4 происходит прием кода операции (+ ) в регистр операций 29.

I0

28такт. По сигналу с выхода 4, происходит в первом микротакте увеличение состояния счетчика 21 на единицу,во втором микротакте прием операнда 7I в регистр

1а операндов 134. 15

29 такт. По сигналу с выхода 41 происходит в первом микротакте запуск блока обработки на выполнение операпии (+ ) и уменьшение состояния счетчика

39 на единицу, во BropoM микротакте 20 уменьшение состояния счетчика 21 на единицу и в третьем микротакте прием промежуточного результата обработки h (h = и + Г„, ) в регистр операндов 13

30 такт. По сигналу с выхода 4 про- 25

1 исходит в первом микротакте запуск блока обработки на выполнение операции (Х ) и уменьшение состояния счетчика 39 на единицу, во втором микротакте уменьшение состояния счетчика 21 З0 на единицу, а втретьем микротакте— прием промежуточного результата с6работки в регистр операндов 13

31 такт. По сигналу с выхода 42 про-З5 исходит в первом микротакте запуск блока обработки на выполнение операции (— ), во втором микротакте уменьшение состояния счетчика 21 на единицу и в третьем микротакте прием результата 40 обработки выражения в(в = Ь вЂ” e ) в регистр операндов 13 и не исполняемого кода операции в регистр операндов

29„.

32 такт.По сигналу с выхоца4 проис45 ходит прием результата интеппретацйи выражения в регистр выдачи 17, обнуление счетчиков 21 и 39, регистров опе32 20 рандов 13 — 13 и регистров операций 29 „— 29.

Таким образом, устройство для интерпретации выражений языков программирования, не снижая функциональных возможностей и скорости обработки выражений, обладает более высокой по сравнению с известным устройством экономичностью.

Синтаксический анализ каждой команды выражения с учетом предшествующих команд требует только одного такта работы устройства, что соответствует скорости обработки выражений известного ус гройс rsa.

Потактовая интерпретация позволяет в процессе интерпретации проводить выполнение операций и накопление промежуточных результатов бесскобочного (получаемого) выражения с получением окончательного результата эа ор- н проход слева направо.

Анализ одновременно четырех кодов команд и состояния триггера признака при переходе на прерванный уровень обработки позволяет производить выполнение прерванных операций обработки непосредственно в ходе последуюшей интерпретации, что повышает скорость обработки, так как исключает многошаговую интерпретацию позволяет экономить оборудование, потому что результат свертки скобочного выражения помещается в самый первый свободный регистр операндов.

Структурное отображение выражений (адаптация устройства к виду выражения) осушествляется установлением соответствия между операциями и соответствующими им операндами, с одной сгороны, а также отображением операций и операндов одного уровня на соответствуюшие регистры операций, операндов и логическим подключением послед-, них в процессе NHrepIIperallMH к соответству ощим входам блока обработки, с другой стороны, что устраняет потери времени на вызов операндов, промежуточных результатов и операций из внешней памяти, а также значительно повышаег экономичность устройства.

1078432

1078432

1078432

1 078432

1078432 а) (И

d) аюс

8( Шесг тД, 1есг/Сто, ® 4 г) 8, deer(i r

С R6), c gr. д) c zs, .

e) incr(tr iJ

С, .

Ж)СЩ, 3) к Уб/;

iincr(Crt и).7 З б/;

ic ncr(rr2

K)C gran, R (Ст!), к с., У Р&,(,g

R Убg,g, Ж- д- 7

Фи гЬ

Составитель A. Жеренов

Редактор М. Янович Техред И.Метелева Корректор А. Тяско

Заказ 1650 Тираж 699 Подписное

ВНИИПИ Государственного комитета СССР по делам изобретений и открытий

113035, Москва, Ж-35, Раушская наб., д. 4/5 филиал ППП "Патент", r.Óæãoðîä, ул.Проектная, 4

Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования Устройство для интерпретации выражений языков программирования 

 

Похожие патенты:

Изобретение относится к компьютерной системе создания и перевода документов, к системе подготовки текста на языке ограничений и перевода на иностранный язык

Изобретение относится к вычислительной технике
Изобретение относится к области электроники и предназначено, например, для использования вспомогательных массивов данных в процессе преобразования и/или верификации компьютерных кодов, выполненных в виде символов, и соответствующих им фрагментов изображения
Изобретение относится к вычислительной технике, в частности к работе в сети Интернет

Изобретение относится к обработке информационных естественно-языковых текстовых материалов

Изобретение относится к системам классификации текстовых сообщений

Изобретение относится к автоматизированному синтезу текстовых документов

Изобретение относится к вычислительной технике, в частности к системе идентификации готовности текстовых документов в сети распределенной обработки данных

Изобретение относится к распознаванию образов из графического изображения, и в частности к распознаванию текста на изображении документа в электронном виде

Изобретение относится к устройствам распознавания написанных знаков
Наверх