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

Номер патента: 1115063

Авторы: Ефимов, Нестерук, Потапов

Есть еще 5 страниц.

Смотреть все страницы или скачать ZIP архив

Текст

(56)9 99 кий инстио СССР ог ГОСУДАРСТВЕНН 1)Й КОМИТЕТ СССРПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИИ 681.325(088.8)1. Авторское свидетельств3272, кл. С 06 Р 15/38, 1981.2. Авторское свидетельство СССРпо заявке У 3500457/18-24,кл. С 06 Г 15/38, 1982 (прототип).(54)(57) УСТРОЙСТВО ПЛЯ АППАРАТУРНОЙ ТРАНСЛЯЦИИ, содержащее семьэлементов И, первый элемент ИЛИ,регистры символа, регистр выдачи,схему сравнения, два регистра адреса, дешифратор кода пробела,три триггера, генератор прямоугольных импульсов, четыре элементазадержки, дешифратор и первый блокпамяти, вход записи, информационные входы и информационные выходыкоторого подключены соответственно к первому входу синхроимпульсов устройства, к первой группеинформационных входов устройстваи к первой группе информационныхвходов регистра выдачи, втораягруппа информационных входов которого соединена с выходами разрядов регистров символа, информационные входы которых подключены к второй группе информационных входовустройства, входы и выходы дешифратора соединены соответственнос выходами разрядов первого регистра адреса и с управляющими входами записи регистров символа, выходы разрядов которых подключены кпервой группе информационных входов схемы сравнения, вторая группа информационных входов которойсоединена с информационными выходами первого блока памяти, информационные входы первого и второгорегистров адреса подключены к .информационным выходам первого .блокапамяти, адресные входы которого сое-.динены с выходами разрядов второго регистра адреса, вторая группаинформационных входов устройстваподключена к входам дешифратора кода пробела, выход которого соединен с установочным входом первоготриггера и с управляющим входомзапуска генератора прямоугольных импульсов, выход которого подключенк управляющему входу считыванияпервого блока памяти и через первый элемент задержки - к входувторого элемента задержки и кпервым входам первого и второгоэлементов И, выход первого элемента И соединен с первыми управляющими входами приема первого регйстраадреса и регистра выдачи, выход второго элемента И подключен к управляющему входу схемы сравнения, первыйвыход которой соединен с вторым управляющим входом приема первого регистра адреса и с первым счетнымвходом второго регистра адреса, входустановки исходного состояния устройства подключен к установочнымвходам исходного состояния перв ои второго триггеров и к первому входу первого элемента ИЛИ, второйвход синхроимпульсов устройствасоединен с единичным входом первогок( грекоН Н значение разметкиузлов граФа, в которых записанысимволы рассматриваемой конструкции (максимальноезначение);количество кодовмакрорасширения влисте конструкции, 10количество узлов,расположенных левее узлов, имеющихразметку Ниимеющих тот же порождающий узел,среднее время трансляции конструкции при разныхчастотах исполь К 1 щс зования отдельныхконструкций;время трансляциипрограммы,количество конструкций в программе,длительность такта ввода символав устройство,количество символов в коде 1-й кокконструкции входного языка. М 25 30 Кс 40 45 50 55 Приведенные Формулы имеют одинаковый вид для обоих вариантов составления карты памяти. При выбореконкретного варианта переменная Нзаменяется на соответствующую переменную Н 1 или Н 2,В рассматриваемом устройстве вслучаях совпадения двоичного кодасимвола входного языка из группырегистров 8 символа с двоичным кодом символа с выхода блока 1 памяти, поступающих на входы схемы 6сравнения, устанавливается новоезначение номера регистра символа,указанное в третьем поле ячейки памяти, адрес перехода в блоке 1 памяти на единицу больше предыцущего.В случае же несовпадения номеррегистра символа остается без изменений, а адрес перехода совпадаетсо значением второго поля ячейкипамяти, Это позволяет после перебора всех допустимых значений содержимого анализируемого регистра символа выполнить переход на некоторый Фиксированный адрес, появлениекода которого на выходе регистра 4адреса свидетельствует о наличиизапрещенной комбинации в групперегистров 8 символа. В устройствев качестве такого адреса выбран адрес последней ячейки памяти, распознаваемый элементом И 20 (код адреса 11).Устройство работает следующимобразом,При включении устройства навход 35 подается сигнал, устанавливающий триггеры 14 и 15 и регистр5 адреса в нулевое состояние и поступающий через элемент ИЛИ 16 дляустановки в нуль регистра 4 адреса. Затем производится запись инФормации в блок 1 памяти. На информационные входы 37 устройства поступает первое слово для записи в нулевую ячейку памяти, адрес которойустановлен в регистре 4 адреса. Сопровождающий данное слово синхроимпульс по входу 40 поступает навход элемента 34 задержки и на входуправления записью в блок 1 памяти,в результате чего происходит приемслова в соответствующую ячейку памяти. После этого на счетном входерегистра 4 адреса появляется сигнал, прошедший через элемент 34 задержки, и значение адреса увеличивается на единицу. В следующем такте поступает очередное слово по входам 37 и сопровождающий его синхроимпульс по входу 40. Запись данногослова в блок 1 памяти и увеличениезначения адреса в регистре 4 адреса выполняется также, как и в предыдущем такте. Аналогичным образом выполняется заполнение блока 2 памяти кодами макрорасширений макрокоманд с входов 36, сопровождающий каждый код синхросигнал поступает по входу 39 на вход управления записью блока 2 памяти и через элемент 27 задержки на счетный вход регистра 5 адреса. Этот процесс продолжается до заполнения блоков 1 и 2 памяти, после чего устройство считается подготовленным к работе.Если блок 1 памяти выполнен нев виде программируемого, а в виде постоянного запоминающего устройства, подготовка устройства к работе заключается в установке двух пг,атиз некоторого набора плат, каждая пара из которых ориентирована на определенную пару входного и выходного языков, и в подаче сигнала начальной установки на вход 35 для установки в нуль триггеров 14 и 15 и регистра 4 адреса аналогично описанному.В режиме записи конструкции входного языка в регистры 8 символа с входов 38 последовательно друг за другом поступают символы конструкции входного языка, а по входу 41 сопровождающие их синхроимпульсы. По первому синхроимпульсу происходит запись символа в первый регистр 8 символа следующим образом. Так как на инверсном выходе триггера 15 .единица, то первый синхроимпульс через элемент И 25 и элемент ИЛИ 16 проходит для установки в нуль регистров 3 и 4 адреса и регистра 15. Этот же синхроимпульс поступает на единичный вход триггера 15. К моменту появления импульса на выходе дешифратора 4 триггер 15 переключается в единичное состояние и на входах выбора приема-выдачи регистров 8 символа с выхода триггера15 устанавливается режим приема кода. Таким образом, запись первого символа в первый регистр 8 символа выполнена. Второй синхроимпульс с входа 41 проходит уже через эпемент И 26, так как триггер 15 находится в единичном состоянии, и поступает на счетный вход регистра 3 адреса. В результате этого (появляется сигнал на управляющем входе одного из регистров 8 символа с соответствующего выхода дешифратора 4) производится запись кода очередного символа в следующий регистр 8 символа. Все поступающие символы обрабатываются аналогичным образом до тех пор, пока не поступит код пробела.По коду пробела на выходе дешифратора 12 появляется сигнал, переводящий триггер 15 в инверсное состояние, что меняет уровень напряжения на входах выбора приема-выдачи регистров 8 символа, и производящий запуск генератора 11 прямоугольных импульсов. Синхроимпульс с входа 41, поступивший с символом "Пробел", проходит через элемент И 25 О 15 20 25 30 35 40 45 50 5 и элемент И 1 П 16 и устанавливает в нуль регистр 3 адреса. На этом режим приема конструкции входного языка заканчивается.В режиме трансляции по сигналу с генератора 11 прямоугольных импульсов считывается информация из блока 1 памяти. Кроме того, через элемент 31 задержки и элемент И 24(так как триггер 14 в единичном состоянии на инверсном выходе) он поступает на управляющий вход схемы 6 сравнения, в результате чего сравниваются коды с выходов блока 1 памяти и с выходов регистра 8 символа, адрес которого установлен в регистре 3 адреса. При их совпадении появляется сигнал на выходе схемы 6 сравнения, что приводит к увеличению адреса блока 1 памяти в регистре 4 адреса на единицу и к приему в регистр 3 е выходов блока 1 памяти адреса следующего символа. По следующему синхроимпульсу с выхода генератора 11, если коды на входах схемы 6 сравнения совпадают, в устройстве выполняются те же действия. В случае несовпадения кодов символов на схеме 6 сравнения сигнал появляется не на прямом выходе, а на инверсном. Поэтому значение регистра 3 адреса не меняется, а в регистр 4 адреса принимается адрес перехода в блоке 1 памяти.Режим трансляции продолжается до тех пор, пока при считывании информации из блока 1 памяти на выходе условий, соединенном с входом триггера 14 (четвертое поле ячейки - см. методику) не появится единица, переводящая триггер в единичное состояние на прямом выходе, Высокий уровень напряжения с прямого выхода триггера 14 открывает стробирующие входы элементов И 21-23. В результате этого сигнал с выхода элемента 31 задержки пройдет через элемент И 23 и на вход управления приемом с первой группы входов регистра 9 выдачи, и двоичный код конструкции выходного языка (либо начальный адрес макрорасширения в .блоке 2 памяти) принимается в регистр выдачи. Этот же сигнал приведет к приему в регистр 3 адреса номера вставляемого символа, код которого выдается с соответствующего регистра 8 символа на вторую группу входов регистра 9 выдачи. Ес 19 11ли на выходе условий блока 1 памяти,соединенном с входом элемента И 22(признак вставки - второе поле ячейки памяти), - единица, сигнал с выхода элемента 32 задержкипроходитна вход управления приемом с второйгруппы входов регистра 9 выдачи,и код вставляемого символа принимается в регистр выдачи. Затем сигналс выхода элемента 26 задержки проходит через элемент И 21, на другомвходе которого присутствует единицас прямого выхода триггера 14, навход управления выдачей регистра 9выдачи,Двоичный код (кроме младшего разряда), записанный в регистре 9 выдачи и выданный из него по сигналус выхода элемента И 22, поступаетна входы переключателя 10 и регистра 5 адреса.Если в крайнем правом разрядерегистра 9 выдачи записан нуль,то высокий уровень напряжения с инверсного выхода разряда поступаетна вход элемента И 18 и на управляющий вход переключателя 10, в результате чего на выходы 42 устройствас выходов регистра 9 выдается двоичный код конструкции выходного языка.К моменту поступления сигнала с инверсного выхода младшего разряда регистра 9 выдачи на один из входовэлемента И 18 на его другой вход;через элемент 30 задержки поступаетсигнал с выхода элемента И 21, покоторому бып выдан код из регистра 9выдачи. В результате этого с выхода элемента И 18 через элементИЛИ 17 на вход генератора 11 прямоугольных импульсов поступает логическая единица, приводящая к егоостановке. Эта же единица поступает на вход триггера 14, переводитего в единичное состояние на инверсном выходе и тем самым подготавливает устройство к обработке следующей конструкции входного языка.На этом режим выдачи заканчивается. Если же в младшем разряде регистра 9 выдачи записана единица, то с прямого выхода данного разряда она поступает на вход элемента 28 задержки и элемента И 19, на другом входе которого еще сохраняется высокий уровень напряжения с выхода элемента 29 задержки, Появление15063 20 5 О 15 20 25 30 35 40 45 50 55 единицы на выходе элемента И 19 приводит к приему в регистр 5 адресас выходов регистра 9 выдачи начального адреса макрорасширения транслируемой макрокоманды, После этогос выхода элемента 28 задержки поступает сигнал на вход управлениясчитыванием блока 2 памяти, и с еговыходов двоичный код первой конструкции макрорасширения выдается черезпереключатель 10 на выходы 42 устройства, так как на управляющемвходе переключателя нуль с инверсного выхода младшего разряда регистра 9 выдачи.Следующий импульс с выхода генератора 11 прямоугольных импульсованалогично ранее описанному приводит к выдаче кода из той же ячейки блока 1 памяти и записи его врегистр 9. Значение младшего разряда кода также поступает на счетныйвход регистра 5 адреса, вход элемента 28 задержки и вход элементаИ 19. Поскольку на другом входеэлемента И 19 к этому времени низкий уровень напряжения, поступающего с выхода элемента 29 задержки(из-за переключения триггера 14в нуль на инверсном выходе), навход управления приемом регистраадреса сигнал не поступает. Содержимое регистра 5 адреса увеличивается сигналом, поступившим на егосчетный вход. Затем с выхода элемента 28 задержки на вход управления считыванием поступает сигнал,по которому очередная двоичнаяконструкция выходного языка выдается на выходы 42 через переключатель 10.Описанные действия повторяютсядо тех пор, пока из младшего разряда блока 2 памяти не выдается единица, что соответствует последнему коду макрорасширения, Даннаяединица, пройдя чере= элемент ИЛИ17, останавливает генератор 11 прямоугольных импульсов и переводиттриггер 14. в единичное состояниена инверсном выходе. Таким образом,трансляция макрокоманды законченаи устройство может приступать кприему и трансляции следующей конструкции,Если в процессе трансляции с выхода регистра 4 адреса появляется код 11, элемент И 20 переключает1115063 22 0 ВНИИПИ 6772/36 Т ажФкди ППП По Проектная,4 ал ся в единичное состояние, и на выхо-де 43 индикации ошибки появляетсясигнал, говорящий о том, что введенная в регистры 8 символа конструкция является недопустимой и результат трансляции ошибочный. Предлагаемое устройство для аппаратурной трансляции, в отличие от базового объекта, позволяет существенно упростить и ускорить процесс разработки трансляторов для различных языков, в том числе для макроязыков. Наличие в устройстве дополнительного блока памяти для макро- расширений макрокоманд позволяет, в случае применения используемого раньше макроязыка для нового программируемого вычислительного устройства, которое имеет новую систему команд, переработать лишь макрорасширения с учетом новой системы командмакрокоманды остаются без изменения) и перенастроить лишь дополнительный блок памяти. Перечисленныехарактеристики изобретения позволя"ют экономить рабочее время программистов и операторов (а также дорого-стоящее время мощных вычислительных машин), Для разработки трансляторов с использованием изобретениямогут быть использованы менее квалифицированные специалисты, что вусловиях нехватки квалифицированнойрабочей силы также имеет немаловажное значение.триггера и с первыми входами третьего и четвертого элементов И, первый и второй выходы условий первого блока памяти подключены соответственно к единичному входу второго триггера и к первому входу пятого элемента И, первый вход синхроимпульсов устройства через третий элемент задержки соединен с первым счетным входом второго регистра адреса, нулевой выход первого триггера подключен к второму вхопу четвертого элемента И, единичный выход - к второму входу третьего элемента И и к управляющему входу выбора приема- выдачи регистров символа, вход управления выдачей регистра выдачи соединен с выходом шестого элемента И, единичный выход второго триггера подключен к первому входу шестого элемента И и к вторым входам первого и пятого элементов И, нулевой выход второго триггера соединен с вторым входом второго элемента И, выход второго элемента задержки подключен к третьему входу пятого элемента И и через четвертый элемент задержки - к второму входу шестого элемента И, выход третьего элемента И соединен со счетным входом первого регистра адреса, выход четвертого элемента И подключен к второму входу первого элемента ИЛИ, выход которого соединен с установочными входами третьего триггера, первого и второго регистров адреса, выход пятого элемента И подключен к второму управляющему входу приема регистра выдачи, входы и выход седьмого элемента И соединены соответственно с выходами разрядов второго регистра адреса и с единичным входом третьего триггера, единичный выход которого подключен к выходу индикации ошибки устройства, второй выход схемы сравнения соединен с управляющим входом приема второго регистра адреса, о т л и ч а ю щ ее с я тем, что, с целью расширения функциональных возможностей путем обеспечения трансляции с макроязыков, в него введены третий регистр адреса, второй блок памяти, переключатель, восьмой и девятый1 элементы И, второй элемент ИЛИ ичетыре элемента задержки, причемход шестого элемента И через пятый элемент задержки подключен кпервому входу восьмого элемента И,инверсный выход первого разрядарегистра выдачи подключен к управляющему входу вывода переключателяи к второму входу восьмого элемента И, выход которого соединен спервым входом второго элемента ИЛИ,подключенного выходом к управляющему входу останова генератора прямоугольных импульсов и к единичномувходу второго триггера, прямой выход первого разряда регистра выдачи соединен с первым счетным входом третьего регистра адреса, с первым входом девятого элемента И ичерез шестой элемент задержки - свходом управления считыванием второго блока памяти, первый информационный выход которого подключенк второму входу второго элементаИЛИ, информационные. выходы, начиная с второго, второго блока памятисоединены с первой группой информационных входов переключателя, выходыразрядов регистра выдачи, кромепервого, подключены к второй группе информационных входов переклю/чателя и к информационным входамтретьего регистра адреса, выходыразрядов которого соединены с адресными входами второго блока памя -ти, нулевой выход второго триггерачерез седьмой элемент задержки подключен к второму входу девятогоэлемента И, выход которого соединенс входом управления приемом третьего регистра адреса, информационныевходы второго блока памяти подклю-чены к третьей группе информационных входов устройства, третий входсинхроимпульсов которого соединенс управляющим входом записи второго блока памяти и через восьмойэлемент задержки - с вторым счетнымвходом третьего регистра адреса,вход установки нуля которого подключен к входу установки исходногосостояния устройства, выходы переключателя являются информационными выходами устройства.25 35 1 О 15 20 30 40 45 50 ра соединены соответственно с выходами первого регистра адреса и суправляющими входами регистров символа, входы которых подключены кпервой группе информационных входовсхемы сравнения, вторая группа информационных входов которой соединена с информационными выходами блока памяти, информационныевходы первого и второго регистровадреса подключены к информационнымвыходам блока памяти, адресныевходы которого соединены с выходами второго регистра адреса, втораягруг па информационных входов устройства подключена к входам дешифратора кода пробела, выход которогосоединен с первым входом первоготриггера и с первым входом генератора прямоугольных импульсов, выход которого подключен к входусчитывания блока памяти и черезпервый элемент задержки - к входувторого элемента задержки и к первым входам первого и второго элементов И, выход первого элементаИ соединен с первыми управляющимивходами приема первого регистра адреса .и регистра выдачи, выход второго элемента И подключен к управляющему входу схемы сравнения, первый выход которой соединен с вторымуправляющим входом приема первогорегистра адреса и с первым счетнымвходом второго регистра адреса,второй выход схемы сравнения соединен с управляющим входом приемавторого регистра адреса, вход установки исходного состояния устройства подключен к установочным входампервого и второго триггеров и к первому входу первого элемента ИЛИ,второй вход синхроимпульсов устройства соединен с вторым входом,первого триггера и с первыми входамитретьего и четвертого элементов И,первый и второй выходы условий блока памяти подключены к первому входу второго триггера и к первому входу пятого элемента И, первый входсинхроимпульсов устройства соединен через третий элемент задержкис первым счетным входом второго ре гистра адреса, инверсный выходпервого триггера подключен к второму входу четвертого элемента И,прямой выход - к.второму входутретьего элемента И и к входу выбора приема-выдачи регистров символа,115063 4050 55 з 1 второй вход триггера и вход управления выдачей регистра выдач 1 соединен с выходом шестого элемента И, прямой выход второго триггера подключен к первому входу шестого элемента И и к вторым входам первого и пятого элементов И, инверсный выход второго триггера соединен с вторым входом второго элемента И, выход второго элемента задержки подключен к третьему входу пятого элемента И и через четвертый элемент задержки - к второму входу шестого элемента И, выход третьего элемента И соединен со счетным входом первого регистра адреса, выход четвертого элемента И подключен к второму входу элемента ИЛИ, выход которого соединен с установочными входами третьего триггера, первого и второго регистров адреса, выход пятого элемента И подключен к второму управляющему входу приема регистра выдачи, входы и выход седьмого элемента И соединены соответственно с выходами второго регистра адреса и с информа - цчонным входом третьего триггера, прямой выход которого подключен к выходу индикации ошибки 23.3 Однако известное устройство не позволяет выполнять трансляцию макрокоманд, когда одной конструкции входного языка ставится в соответствие несколько самостоятельных конструкций выходного языка, т.е, оно не позволяет выполнять трансляцию с микроязыков. Это приводит к сужению класса языков, для которых может быть организован процесс трансляции с помощью данного устройства, а следовательно и области его применения. Макропрограммирование является широко распространенным и эффективным методом построения программ в вычислительной технике, поэтому отсутствие возможности трансляции с макроязыков является существенным недостатком.Целью изобретения является расширение функциональных возможнос 1 тей путем обеспечения трансляции с макроязыков.Поставленная цель достигается тем, что в устройство, содержащее семь элементов И, первый элемент ИЛИ, регистры символа, регистр вы 5 10 15 -20 25 30 35 дачи, схему сравнения, два регистра адреса, дешифратор кода пробела, три триггера, генератор прямоугольных импульсов, четыре элемента задержки, дешифратор и первыйблок памяти, управляющий вход записи, информационные входы и информационные выходы которого подключены соответственно к первому входу синхроимпульсов устройства, кпервой группе информационных входов устройства и к первой группеинформационных входов регистра выдачи, вторая группа информационныхвходов которого соединена с выходами разрядов регистров символа, информационные входы которых подключены к второй группе информационныхвходов устройства, входы и выходы дешифратсра соединены соответственно с выходами разрядов первого регистра адреса и с управляющими входами записи регистров символа, выходы разрядов которых подключены к первой группе информационных входов схемы сравнения, втораягруппа информационных входов которой соединена с информационнымивыходами первого .блока памяти, информационные входы первого и второго регистров адреса подключенык информационным выходам первогоблока памяти, адресные входы кото.рого соединены с выходами разрядов второго регистра адреса, вторая группа информационных входовустройства подключена к входам дешифратора кода пробела, выход которого соединен с установочным входом первого триггера и с управляющим входом запуска генератора прямоугольных импульсов, выход которого подключен к управляющему входу считывания первого блока памятии через первый элемент задержки -к входу второго элемента задержкии к первым входам первого и второго элементов И, выход первого элемента И соединен с первыми управляющими входами приема первого регистра адреса и регистра вьдачи,выход второго элемента И подключен к управляющему входу разрешениясравнения схемы сравнения, первыйвыход которой соединен с вторымуправляющим входом приема первогорегистра адреса и с первьп 1 счетным входом второго регистра адреса,вход установки исходного состоя-ния устройства подключен к установочным входам исходного состоянияпервого и второго триггеров и кпервому входу первого элемента ИЛИ,второй вход синхроимпульсов устройства соединен с единичным вхо -дом первого триггера и с первымивходами третьего и четвертого элементов И, первый и второй выходыусловий первого блока памяти подключены соответственно к единичному входу второго триггера и к первому входу пятого элемента И, первый вход синхроимпульсов устройства через третий элемент задержкисоединен с первым счетным входомвторого регистра адреса, нулевойвыход первого триггера подключенк второму входу четвертого элементаИ, единичный выход - к второму входу третьего элемента И и к управляющему входу выбора приема-выдачи регистров символа, вход управления выдачей регистра выдачисоединен с выходом шестого элемента И, единичный выход второго триггера подключен к первому входушестого элемента И и к вторым входам первого и пятого элементов И,нулевой выход второго триггера соединен с вторым входом второго элемента И, выход второго элементазадержки подключен к третьему входу пятого элемента И и через четвертый элемент задержки - к второму входу шестого элемента И, выходтретьего элемента И соединен сосчетным входом первого регистра адреса, выход четвертого элемента Иподключен к второму входу первогоэлемента ИЛИ, выход которого соединен с установочными входами третьего триггера, первого и второго регистров адреса, выход пятого элемента И подключен к второму управляющему входу приема регистра вы-дачи, входы и выход седьмого элемента И соединены соответственнос выходами разрядов второго регист. -ра адреса и с единичным входомтретьего триггера, единичный выходкоторого подключен к выходу индикации ошибки устройства, второйвыход схемы сравнения соединенс управляющим входом приема второго регистра адреса, введены третий регистр адреса, второй блокпамяти, переключатель, восьмой 5 10 15 20 25 30 35 40 45 50 55 и девятый элементы И, второй элемент ИЛИ и четыре элемента задержки, причем выход шестого элементаИ через пятый элемент задержкиподключен к первому входу восьмого элемента И, инверсный выход первого разряда регистра выдачи подключен к управляющему входу выводапереключателя и к второму входувосьмого элемента И, выход которогосоединен с первым входом второгоэлемента ИЛИ, подключенного выходомк управляющему входу останова генератора прямоугольных импульсови к единичному входу второго триггера, прямой выход первого разрядарегистра выдачи соединен с первымсчетным входом третьего регистраадреса, с первым входом девятогоэлемента И и через шестой элементзадержки - с входом управлениясчитыванием второго блока памяти,первый информационный выход которого подключен к второму входу второго элемента ИЛИ, информационныевыходы, начиная с второго, второгоблока памяти соединены с первойгруппой информационных входов переключателя, выходы разрядов регистра выдачи, кроме первого, подключены к второй группе информационнымвходов переключателя и к информационных входам третьего регистраадреса, выходы разрядов которогосоединены с адресными входами второго блока памяти, нулевой выходвторого триггера через седьмой элемент задержки подключен к второмувходу девятого элемента И, выходкоторого соединен с входом управления приемом третьего регистра адреса, информационные вхоДы второгоблока памяти подключены к третьейгруппе информационных входов устройства, третий вход синхроимпульсов которого соединен с управляющимвходом записи второго блока памятии через восьмой элемент задержки -с вторьвю счетным входом третьегорегистра адреса, вход установки нуля,которого подключен к входу установки исходного состояния устройства, выходы переключателя являются информационными выходамиустройства,На чертеже изображена схемапредлагаемого устройства.Устройство содержит блоки 1 и 2памяти, регистры 3-5 адреса, схему7 11 6 сравнения. дешифратор 7, регистры 8 символов, регистр 9 выдачи, переключатель,10, генератор 11 прямоугольных импульсов, дешифратор 12 кода пробела, триггеры 13-15, два элемента ИЛИ 16 и 17, элементы И 18-26, элементы 27-34 задержки. На.схеме также обозначены вход 35 установки исходного состояния устройства, группы информационных входов 36-38 устройства, входы 39-41 синхроимпульсов устройства, группа выходов 42 устройства, выход 43 индикации ошибки.Входы 36 и 37, 39 и 40 могут, например, подключаться к стандартному интерфейсу вычислительной машины типа 2 К, к наборной клавиатуре на пульте улравления устройства или к пишущей машинке типа "Консул", вход 35 и выход 43 - соответственно к кнопке начальной установки и к световому индикатору на пульте управления устройства, выходы 42 - к информационным входам внешнего для устройства блока памяти, хранящего двоичную программу на выходном языке.Перед началом работы в блок 1 памяти заносится информация, позволяющая установить взаимно оцнозначное соответствие между кодами входного и выходного языКов. Для этого на основе анализа конструкций входного языка, представленных в символическом вйде, строится древовидный граф, в узлах которого находятся отдельные символы алфавита входного языка, а связи .между узлами (ветви графа) указывают на символы, являющиеся соседними в символическом коде конструкции, В конечных "узлах графа (листьях) помещается двоичный код выходного языка, соответствующий одной из конструкций входного языка. Узел, имеющий исходящие ветви, является порождающим, более одной исходящей ветви - ветвящимся. По графу составляются карты заполнения блоков 1 и 2 памяти. С целью упрощения и упорядочения процесса решения данной задачи необходимо руководствоваться следующей методикой.1. Если построение графа для выбранного языка программирования не проводилось, то идти к 2. Иначе 15063 8(требуется достройка графа дополнительно введенными конструкциями) идти к 2.9.2. Строится граф для выбранного5 языка программирования следующим образом.2.1. Строится начальный узел гра"фа - корень.2.2. Выбирается произвольная10 символическая конструкция входногоязыка,2.3. Выбирается первый символ конструкции,2.4. Граф достраивается узлом,15 который соединяется ветвью с послед"ним из построенных узлов и имеет наединицу больший ранг. Идти к 2.6.2,5. Производится достройка графа узлом, который соединяется ветвью20 с породившим последний из рассмотренных узлов, имеет тот же ранг, чтои рассмотренный, и располагаетсясправа от него,2.6Если построенный узел не25 является листом (листом узел являет.ся в том случае, если соответствующий ему символ является пробелом),то он помечается выбранным символоми выбирается следующий символ. ИдЗО ти к 2.4. Иначе идти к 2.72,7. В лист записывается группадвоичных кодов (в частном случае -один) конструкций выходного языка,являющихся двоичными эквивалентнымирассмотренной конструкции входногоязыка.2.8. Если рассмотрены все конструкции входного языка, то идти к 3,Иначе идти к 2.9.4 О 2.9. Выбирается следующая конструкция входного языка.2. 10. Выбирается первыйсимвол конструкции.452.11. Выбирается узел нулевогоранга, если таких узлов несколько - то крайний левый.2.12. Если символ конструкциисовпадает с символом выбранногоузла, идти к 2.13. Иначе идти к2.15.2.13. Выбирается следующий сим -вол конструкции.2,14. Выбирается крайний левыйузел из порожденных рассмотреннымузлом, являющийся листом. Идти к2.12. Иначе идти к 2.5,2.15, Если рассмотренный узелимеет справа узлы, порожденные1 О 15063 50 9тем же узлом, что и он сам, выбирается соседний справа, Идти к2.12. Иначе идти к 2.5,3. Если предполагается организовать процесс трансляции с проведением частичного контроля входныхконструкций на наличие недопустимых символических обозначений, идти к 7. Если же необходим полныйконтроль, идти к 4.Для предварительной оценки объема требуемой памяти и времени трансляции по графу можно воспользоваться формулами, приведенными в конце методики, 154. Если основная численная разметка графа не проводилась, идти к 5.В противном случае (проводиласьдостройка графа) идти к 4.1.4.1Выбирается узел из имеющих 20порожденные неразмеченные узлы,значение Н 1 основной разметкикоторого наименьшее.4.2. Переменной М присваивается значение основной разметки листа, находящегося в конце маршрута,начинающегося узлом, порожденнымузлом Б 1 и являющимся соседним скрайним левым из неразмеченных,порожденных тем же узлом. 304.3. Уничтожается основная разметка всех узлов, величины Н 1 которых больше М.4.4. Идти к 5.7.5. Проводится основная разметкаграфа.5.1, Узел нулевого ранга (еслиих несколько, то крайний левый) помечается числом Н 1-1 (корень дерева - нулем) .405,2. Крайний певый узел из порожденных последним помеченным узломпомечается числом Н 1 = Н 1 + 15.3, Если помеченный узел не является листом, идти к 5.2. Иначе 45запоминается значение Н 1 (Н = Н 1).Идти к 5.45.4. Выбирается узел, помеченный числом Н 1 = Н 1-1. 5.5 Если выбранный узел является ветвящимся и имеет порожденные узлы, расположейные правее узла Н 1 + 1, то идти к 5.7. Иначе идти к 5.6. 5.7. Выбирается крайний левый узел из неразмеченных, порожденных узлом Н 1.5.8. Выбранный узел помечается числом Н = Н 1 + 1. Идти к 5.3.6. Составляются основная и дополнительная карты памяти для случая сплошного контроля входных конструкций на наличие недопустимых символических обозначений.6.1. Номера А и А 1 строки карты памяти (т.е, адрес соответствующей ячейки памяти) основного и дополнительного блоков памяти соответственно принимаются равными нулю (А = О; А 1 = О).6.2. Выбирается узел, помеченный номеРом Н 1 = 1.6.3 Если символ выбранного узла имеет. несколько двоичных эквивалентов, то выбирается строка А = Аи значение третьего поля ее увеличивается на единицу, Идти к 6.8. Иначе идти к 6.4.6.4. В первое поле строки А заносится код символа узла Н 1, например, в коде КОИ(выбор кода определяется устройством ввода символических конструкций), если выбранный узел является листом - то код пробела.6.5. Если узел Н порожден ветвящимся узлом и не является крайним правым среди порожденных этим узлом, то во второе поле заносится двоичный код величины Ал + (1 и Н 1 л ) +"ф, Н 1 и где л, п - индексы, обозначающиепринадлежность переменных соответственно узлу Н 1 (левому) и соседнему справа от него, К - число узлов от Н 1 доН НЬНвключительно, являющихся листьями,В противном случае во второе поле заносится код 116.6. В том случае, если выбранный узел является листом, заполнение третьего поля произвольно, иначе в него заносится двоичное значение ранга на единицу большего ранга узла Н 15.6. Если выбранный узел помечен,цислом Н 1 = О, то идти к 6, Иначе идти к 5.7. 6.7. В четвертое поле записывается признак типа формата запол" ненной строки - "нуль".6,8. Если узел Н 1 не лист, то выбирается узел Н 1 = Н 1 + 1 и строка А = А + 1, Идти к 6.3. Иначе идти к 6.9.6.9. В случае, если записанный в листе код является единственным, идти к 6.15. Иначе идти к 6.10,6.10. В крайний правый разряд первого поля строки А основного блока памяти заносится единица, в оставшиеся разряды - код числа А 1.6,11. Выбирается первый код макрорасширения, записанного в листе,6.12. Если двоичный код макро- расширения является последним, то в крайний правый разряд строки А 1 дополнительной карты памяти записывается единица, иначе - нуль. В остальные разряды заносится выбранный код макрорасширения.6,13. Выбирается строка А = А +1.6.14. Если выбранный код макрорасширения не является последним, следующий код считается выбранным. Идти к 6. 12. Иначе идти к 6.16.6.15. В первое поле строки А = = А + 1 заносится выбранный двоичный код конструкции выходного языка.16.16. Второе поле предназначено для признака вставки; если вкод конструкции выходного языкане требуется вставлять код какоголибо символа конструкции входногоязыка, то в поле записывается нулевой код, иначе - единичный.6.17. Если признак вставки равен нулю, то в третье поле записывается произвольный код, иначе внего заносится двоичный код рангаузла, в котором находится вставляемый символ,6.18. В четвертое поле записывается признак формата заполненнойстроки - "единица".619. Если при составлении карты использованы не все узлы .графа= Н 1 + 1 и строка А = А+1. Идти .к 6.3. Иначе идти к 10.7. Если вспомогательная численная разметка графа не проводилась,то идти к 8. Иначе (проводилась достройка графа) идти к 7.1.7.1. Выбирается ветвящийся узел,не имеющий порожденные неразмеченВые узлы, для которого наименьшим является значение разметки Н 2 средиузлов двух типов: крайнего левогоиз размеченных порожденных им иближнего верхнего в направленииот упомянутого ветвящегося узлак корню дерева.7.2. Уничтожается вспомогательная численная разметка всех узловот Н 2 + 1 до Н 2 включительно,107.3, В первом случае (а такжеесли ветвящийся узел относится одновременно к узлам двух типов) идти к 8.5. Иначе выбрать узел Н 2 иидти к 8,2.15 8. Выполняется вспомогательнаячисленная разметка графа.8,1. Узел нулевого ранга (еслиих несколько, то крайний левый)помечается числом Н 1 = 1 (кореньдерева - нулем),8.2. Выбирается крайний левыйузел из порожденных выбранным ранее.25 8.3, Если узел, породивший выбранный, является ветвящимся, выбранный узел помечается числомН 2=Н 2+18.4. Если выбранный узел не яв 30 ляется листом, то идти к 8.2, Иначеидти .к 8.5,8.5. Выбирается узел Н 2, Запоминается значение его разметки(Н = Н 2)3518.6. Если выбранный узел имеетсправа от себя непомеченные узлы,порожденные тем же узлом, что ион сам, то крайний левый из них40помечается номером Н 2 = Н + 1. Идти к 8.4. Иначе, идти к 8.7.8.7. Выбирается узел Н 2 = Н 2-1.8.8. Если Н 21 О, идти к 8.6. Иначе идти к 9.9. Строятся основная и дополнительная карты памяти для случаяорганизации процесса трансляции счастичным контролем входных конструкций на наличие недопустимых символических обозначений.509.1. Номер строки основной и дополнительной карт памяти принимается равным нулю (А = О, А 1 = 0).9.2. Выбирается узел, помеченныйномером Н 2 = 1.559.3. В первое поле строки А записывается код символа узла Н 2,если узел Н 2 является листом - токод пробела.9.4. Если выбранный узел не имеет справа от себя узлов, порожденных тем же ветвящимся, что и выбранный, то во второе поле заносится код 11. Иначе в него записывается двоичный код числа, определяемого по формулеАи = А+ 1 + (Н 2 и- Н 2 л) +Н 2 Н 2 и где л, п - индексы, обозначающиепринадлежность переменных соответственно левому и правому узлу израссматриваемой пары узлов;К - количество листьев, рас"2 л 2 п положенных в конце всехмаршрутов, проходящихчерез узлы от Н 2 л доН 2включительно, ноне проходящих через узлысо значениями разметки,большими Н 2 о. 9.5. Заполнение третьего поля произвольно, если ранг узла Н 2+1 не превышает ранга узла Н 2, иначе в него записывается двоичный код ранга узла Н 2 + 1.9.6. Четвертое поле предназначено для записи признака типа формата заполнения строки - "0".9.7, Если ранг узла Н 2 + 1 больше ранга узла Н 2, выбирается узел Н 2 = Н 2 + 1 и строка А = А + 1. Идти к 8,3. Иначе идти к 9.8.9.8. В случае, если записанный в листе код является единственным, идти к 9.14. Иначе идти к 9.9.9.9. В крайний правый разряд первого поля строки А основного блока памяти заносится единица, в оставшиеся разряды - код числа А 1.9.10. Выбирается первый код макрорасширения, записанный в листе.9.11. Если двоичный код макро- расширения является последним, в крайний правый разряд строки А 1 дополнительной карты памяти записывается единица, иначе - нуль. В остальные разряды заносится выбранный код макрорасширения.9.12. Выбирается строка А 1 = А 1+19.13. Если выбранный код макро- расширения не является последним, выбирается следующий код макрорасширения. Идти к 9.11. Иначе идти к 9.15.9.14. В первое поле строки Л= А+1 заносится выбранный двоичныйкод конструкции выходного языка.9.15. Второе поле предназначено 5 для признака вставки; если в кодконструкции выходного языка не треУбуется вставлять код какого-либосимвола конструкции входного языка,то в поле эаписываегся нулевой код,иначе - единичный.9.16. Если признак вставки равеннулю, в третье поле записываетсяпроизвольный код, иначе в него записывается .двоичный код ранга узла, 15 в котором находится вставляемый символ.9.17. В четвертое поле записывается признак формата заполненнойстроки - "единица".20 9.18. Если при составлении карты использованы не все узлы графа= Н 2 + 1 и строка А = А+1. Идтик 9.3. Иначе идти к 10.25 10. Конец.Оценка объема занимаемой памятии времени трансляции по графу производится следующим образом;Юзз = Никс + Кл (3)мЕл 3К Лгде ЕОу 35404550 НКс иткскцкс Кклкс +К, )"(ЕЛэ ) - объем необходимойпамяти в ячейкахосновного (дополнительного) блокапамятияН- максимальное значение разметкиграфа,К Л - количество листьевграфа,К - количество кодовмакрорасширения,записанных в 1-млисте,Тк - время трансляцииконструкциифТ - длительность такта устройства генератора импульсов,

Смотреть

Заявка

3586495, 05.05.1983

ОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ

ПОТАПОВ ВИКТОР ИЛЬИЧ, НЕСТЕРУК ВАЛЕРИЙ ФИЛИППОВИЧ, ЕФИМОВ СЕРГЕЙ СЕРГЕЕВИЧ

МПК / Метки

МПК: G06F 17/27

Метки: аппаратурной, трансляции

Опубликовано: 23.09.1984

Код ссылки

<a href="https://patents.su/13-1115063-ustrojjstvo-dlya-apparaturnojj-translyacii.html" target="_blank" rel="follow" title="База патентов СССР">Устройство для аппаратурной трансляции</a>

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