Процессор, структурно ориентированный на алгоритмический язык
Похожие патенты | МПК / Метки | Текст | Заявка | Код ссылки
Номер патента: 556445
Авторы: Боярченков, Зонис, Кабалевский, Кабанов, Родионов, Тарасов, Шумей
Текст
56445 Союз СоветскихСощивлкстических ЗОБР АВТОРСКОМУ публик .) Приоритет Гасудврственныи комитетСовета Министров СССРво делам иэооретенийи открытий Опубликовано 30,04.77,ДК 681.322(088 та опуоликовани ов, В. С. Зонис, А. Н. Кабалевск Родионов, М. Н. Тарасов и А, С,баи Н. ме Институ 71) Заявител ктронных уп авляющ 54) ПРОЦЕССОР, СТРУКТУРНО ОРИЕНТИ НА АЛГОРИТМИЧЕСКИЙ ЯЗЫК ННЫЙ Изобретение относится к вычислительнойтехнике и мокет риеяься для оораооткидацных, хранящихся в оперативной памяти,по программе, запоминаемой также в оперативной памяти.Известны процессоры, которые содержатарифметцческо-логическое устройство, устройство управления и внутренние регистры.Однако в таких процессорах представлениепрограммы в машинных командах не соответствует представлению этой программы ца алгоритмическом языке. Последовательностьопераций в машинных командах це совпадаетс последовательностью операций во входномязыке.Это объясняется тем, что, с одной стороны,любое арифметическое выражение должновычисляться с учетом приоритетов арифметических действий, а, с другой - тем, чтокоманды программ в перечисленных вышемашинах исполняются последовательно помере того, как они записаны в теле программы, Поэтому последовательность команд дляарифметического выражения составляетсятак, как это выражение должно вычисляться,а це так, как оно записано на входном алгоритмическом языке,Другая проблема, которая стоит перед современной вычислительной техникой, связанас трансляцией, Широко известны способыпрограммного контроля сцнтакспческои правильности программ, записанных на языке высокого уровня, ц цх преобразования в последовательность машинных команд, которые 5 способны воспринимать ЭВМ, Указанныефункции контроля и преобразования являются основными при построенци транслирующих программ. Этц программы занимают большце объемы памяти, а при цх работе тре буется много машинного времени, Кроме того, программы, написанные на языке высокого уровня, после цх трансляции в машинные программы становятся слишком громоздкими, совершенно непохожими на их представд ление на входном языке и, следовательно, необозримы для пользователя.Все это приводит к тому, что отладка намашине этих программ вызывает серьезные затруднения, а основным методом отладки 20 является метод проб п ошибок. Для повышения эффективности отладки программ необходимо, чтобы рабочие программы в памяти машины по форме прямо соответствовали исходным программам, написанным на язы кс высокого уровня.Известен процессор, обеспечивающий функцию языков программирования высокого уровня. Этот процессор содержит буферные устройства, ассоциативную память, арифме- ЗО тическо-логическое устройство, устройствоуправления. В нем осуществляется динамическая подготовка структур данных, начинающихся с любого разряда памяти и имеющих произвольную длину; команды выполняются не в порядке их следования, а в соответствии с присвоенными приоритетами,Однако нельзя присвоить приоритеты всем элементам языков программирования. Например, приоритет знака +, стоящего перед (, должен быть ниже приоритета (, а приоритет знака +, стоящего после (, должен быть выше приоритета (.Эти трудности преодолевают либо при помощи специальных схем, либо при помощи анализирующей микропрограммы, что усложняет аппаратуру и замедляет работу вычислительного устройства.Кроме того, в указанном процессоре аппаратно реализован только один стек. Это приводит к тому, что в одном стеке приходится хранить команды, операнды в различных форматах, а также адреса переходов и операндов, что существенно затрудняет организацию стека и усложняет алгоритмы работы с ним, или приводит к необходимости организации в памяти дополнительных стеков, работа с которыми осуществляется с помощью программ или микропрограмм, что замедляет работу процессора.Например, рассмотрим оператор обращения к процедуре Абсмакс (А, Л; М, УУ, К), Идентификатор Абсмакс указывает адрес процедуры. Фактические переменные А, У, М, У, 1, К в общем случае могут быть выражениями, идентификаторами массивов, идентификаторами переключателей и идентификаторами процедур. При их вычислении в стеке должны оставаться либо вычисленные значения фактических параметров (в случае передачи их в процедуру по значению), либо вычисленные адреса (в случае передачи их по наименованию), После вычисления всех фактических параметров управление должно быть передано по адресу, соответствующему идентификатору Абсмакс. Если хранить адрес процедуры в том же стеке, где хранятся вычисленные фактические параметры, то возникает трудность его нахождения, так как количество фактических параметров в процедуре может быть различным.Из известных процессоров наиболее близким по технической сущности к изобретению является процессор, содержащий устройство управления, соединенное двусторонними связями с блоком регистров и арифметическо-логическим устройством, первые информационные входы которых подключены к информационному входу процессора, адресные и первые информационные выходы - соответственно к адресному и информационному выходам процессора, вторые информационные вход и выход арифметическо-логического устройства соединены соответственно с вторым информационным выходом и вторым информационным входом блока регистров,10 15 20 25 Зо 35 40 45 50 55 60 65 Кроме того, процессор включает стековую память для временного запоминания данных и команд, устройство определения относительного приоритета между двумя соседними командами программы и дополнительное устройство управления скобками,Однако в этом процессоре усложнен алгоритм работы со стеком, что существенно понижает быстродействие, устройство определения относительного приоритета команд не является универсальным, так как невозможно присвоить приоритеты всем элементам языка программирования, Из-за этого, в частности, процессор не имеет возможности аппаратно реализовать многие операторы алгоритмического языка (например, операторы процедур). Кроме того, не предусмотрено устройство для синтаксического контроля исходных программ.Цель изобретения - повышение быстродействия и улучшение эксплуатационных характеристик при отладке и синтаксическом контроле программ.Это достигается тем, что в предлагаемый процессор введены блок анализа приоритетных отношений, блок синтаксического контроля и перекодировки, стек команд и стек данных, соединенные двусторонними связями с устройством управления, первые и вторые входы стеков команд и данных подключены соответственно к информационному входу процессора и второму информационному выходу арифметическо-логического устройства, адресный, первые и вторые выходы - соответственно к адресному, информационному выходу процессора и к второму информационному входу арифметическо-логического устройства, входы блока анализа приоритетных отношений соединены с соответствующими выходами блока регистров и стека команд.Наличие аппаратных стеков данных и команд позволяет упростить алгоритмы работы со стеками и тем самым повысить бы. стродействие,Наличие блока анализа приоритетных от. ношений позволяет аппаратно определять приоритетные отношения между всеми элементами языка программирования и тем самым сэкономить оборудование(например, исключить устройство управления скобками) и в совокупности со стеками добиться прямого соответствия между исходными программами на алгоритмическом языке и программами в машинных командах, что непосредственно приводит к повышению эффективности отладки программ.Включение в состав процессора блока синтаксического контроля и перекодировки и использование при его построении формальных методов синтаксического контроля позволяет существенно ускорить синтаксический контроль и совместить его с вводом программы,На фиг, 1 показана схема предлагаемого процессора; на фиг. 2 - пример выполнения программы, где адрес переменной А имеетобозначение ВА; на фиг. 3 - матрицаприоритетных отношений в матрице имеются строки не для всех команд, так как не все команды могут быть записаны в стек команд (наприхтер, такими командами являются 1.А, 1., ), ; .На схеме показаны информационный вход 1 процессора, арифметическо-логическое устройство 2, блок 3 регистров, стек 4 команд, стек 5 данных, внутренние информационные шины 6, 7, адресный выход 8 тл информационный выход 9 процессора, блок 10 анализа приоритетных отношений, выходные линии 11, 12 блоков 3 и 4, устройство 13 управления, линии 14 - 19 управления анализа состояния, блок 20 синтаксического контроля и пеоекодтлровктл,Процессор работает следующим образом.Выставляя адрес на шину, подключенную к выходу 8, процессор может принимать извне тнапример, из оперативной памяти) информацию (вход 1) или выдавать ее (вьтход 9).В блоке 3 регистров содержится текущий адрес программы.Выставляя его на адресный выход 8, процессор считывает очередную команду, и по входу 1 она подается на входной регистр в блоке 3. Код считанной команды по линии 11 подается в блок 10 анализа приоритетных отношений, где используется для выбора столбца матрицы приоритетных отношений, Эта матрица хранит приоритетные отношения между элементами программы, приоритетные отношения исчисляются по формальной грамматике языка при помощи специальной методики. Каждый элемент матрицы может иметь два значенияС ц ЪПо линии 12 из аппаратного стека 4 команд поступает код верхнего элемента стека команд, который в блоке 10 используется для выбора строки матрицы приоритетных отношений. Если считанный элемент матрицыимеет отношения ), верхняя командаФстека команд поступает на исполнение. При исполнении таких команд под управлением устройства 13 управления используются блоктл 2, 3 тл 5.Если считанный элемент матрицы имеет.йотношение то считанная командав зависимости от своего кода либо записывается в стек команд, либо исполняется. При исполнении таких команд под управлением устройства 13 используются блоки 2, 3,4 и о.При запуске начальный адрес программы заносится в блок 3, стеки очищаются, и в стек 4 команд заносится код начального ог- раничителя Блок 20 реализует синтаксический контроль и перекодировку входной программы. При построении этого блока используются формальные методы синтаксического контроля, например метод, который позволяет по формальному описанию языка быстро строить компактные алгоритмы синтаксического контроля, Эти алгоритмы затем легко реализуются в аппаратуре, например. в виде последовательности микрокоманд. Такая реализация блока 20 позволяет осуществить синтаксический контроль с большой скоростью и практически совместить его с вводом исходной программы, т. е. на проведение контроля не потреб ется дополнительного времени,Кроме того, этот же блок перекодирует каждую строку исходной программы на языке в машинную строку, запоминаемую в памяти машины, так, чтобы сохранить максимальное соответствие между ними, а также резервирует в памяти необходимые объемы для запоминания массивов и переменных и составляет таблицы соответствия переменных их идентификаторам. Эти операции также выполняются во время ввода исходной программы.При работе блока 20 используются все остальные узлы процессора,П р и м е р, Пусть на входном языке был записан оператор А . =А+Вф (С - Р)/Р,где А. В. С. Р и Г - целочисленные переменные, равные, соответственно 5, 4, 3,1 и 2.Под управлением блока 20 данный оператор будет преобразован в программу:.АА Загрузить в стек данных адрес переменной А.Прттсвоттть.1.А Загрузить в стек данных переменнуто А.( Открыть скобку1.С Загрузить вн то С.- Вычесть1.Р Загрузить в стекную Р.: Конец оператора.Последовательность выполнения 40 45 50 55 данных переменданной 65 программы приведена на фиг, 2. 10 15 20 25 30 35 стек данных переменстек данных переменв стек данных переменТаким образом, в процессоре представление программы в машинных командах прямо соответствуют представлению программына алгоритмическом языке.Процессор имеет следующие преимущества,Прп сохранении такого же быстродействияисполнения программ, как п в существующихмашинах, сокращается время, необходимоена перевод программ с алгоритмического языка в команды машины, а также на компоновку рабочей программы с библиотечными подпоограммамп. В результате сокращается иобщее время прохождения программы (т. е.от начала ввода до получения результатов). 15Отпадает необходимость хранения программ в объективной форме, так как переводпрограмм из символьнй формы в командымашины и компоновку рабочей ппогоаммыможно совместить с работой устройств ввода - вывода.Представляется возмокность проведенияотладки программ непосредственно на алгоритмическом языке.Обеспечивается доступность электронных 25вычислительных машин (ЭВМ 1 на уровнеинтер претирующих систем с алгоритмических языков, но с быстродействием, свойствен.ным программам, оттранслированным вкоманды машины. 30Перечисленные преимущества позволятповысить эффективность использования ЭВМ,сделать их более доступными для широкогокруга пользователей. Для написания эффективных программ от программиста не потрсбуется знания специальных машинных языков, достаточно знания стандартного алгоритмического языка, Более того, ЭВМ можетбыть использована как учебное пособие прпобучении этому языку, особенно при реалпза ции режима прокрутки, т. е. при синхронной распечатке исполняемой программы на алгоритмическом языке и результатов ее работы.Формула изобретенияПроцессор, стпуктурно ориентированный на алгоритмический язык, содержащий устройство управления, соединенное двусторонними связями с блоком регистров и арифметическо-логическим устройством, первые информационные входы которых подключены к информационному входу процессора, адресные и первые информационные выходы - соответственно к адресному и информационному выходам процессора, вторые информационные вход и выход арифметическо-логического устройства соединены соответственно с вторым информационным выходом н вторым информапионным входом блока регистров, отлич а ю щ и й с я тем, что, с целью повышения быстродействия и улучцления эксплуатационных характеристик при отладке и синтаксическом контроле программ, в него введены блок анализа приоритетных отношений, блок синтаксического контроля и перекодировки, стек команд и стек данных, соединенные двухсторонними связями с устройством управления, первые и вторые входы стеков команд и данных подкзючены соответственно к информационному входу процессора и второму информационному выходу арифметическо-логического устройства, адресный, первые и вторые выходы - соответственно к адресному, информационному выходу процессора и к второму информационному входу арифметическо-логического устройства, входы блока анализа приоритетных отношений соединены с соответствующими выходами блока регистров и стека команд.556445 ренов ставител ед Л, Котова Караулов едак ПодписноР Тираж 815а Совета Министров Си открытийшс.ая нас., д. 4/5 Типография, пр. Сапчюва, 2 каз 1112/17ЦНИИП Изд, Хв 419 Государственного комите по делаги изобретени 13035, Москва, Ж, Ра
СмотретьЗаявка
2189513, 14.11.1975
ИНСТИТУТ ЭЛЕКТРОННЫХ УПРАВЛЯЮЩИХ МАШИН
БОЯРЧЕНКОВ МИХАИЛ АЛЕКСАНДРОВИЧ, ЗОНИС ВЛАДИМИР СЕМЕНОВИЧ, КАБАЛЕВСКИЙ АЛЕКСАНДР НИКОЛАЕВИЧ, КАБАНОВ НИКОЛАЙ ДМИТРИЕВИЧ, РОДИОНОВ ВЛАДИМИР ВЛАДИМИРОВИЧ, ТАРАСОВ МИХАИЛ НИКОЛАЕВИЧ, ШУМЕЙ АЛЕКСАНДР СЕРГЕЕВИЧ
МПК / Метки
МПК: G06F 9/22
Метки: алгоритмический, ориентированный, процессор, структурно, язык
Опубликовано: 30.04.1977
Код ссылки
<a href="https://patents.su/6-556445-processor-strukturno-orientirovannyjj-na-algoritmicheskijj-yazyk.html" target="_blank" rel="follow" title="База патентов СССР">Процессор, структурно ориентированный на алгоритмический язык</a>
Предыдущий патент: Устройство управления обращением к памяти
Следующий патент: Устройство для вычисления полиномов
Случайный патент: Шихта для получения синтетического шлака