Процессор, структурно ориентированный на алгоритмический язык

 

0П ИС

ИЗОБР

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

Сощивлкстических

Республик .

К АВТОРСКОМУ (61) Дополнительное к (22) Заявлено 14.11.75 с присоединением (23) Приоритет

Опубликовано 30.04.77.

Дата опубликования о

М. Кл. G 06F 15.„1 06

Гасударственный комитет

Совета Министров СССР во делам иэооретений и открытий

УДК 681.322(088.8) (72) Авторы изобретения

М, А. Боярченков, В. С. Зонис, А. H. Кабалевский, Н. Д. Кабанов, В. В. Родионов, М. H. Тарасов и А. С, Шумей

Институт электронных управляющих машин (71) Заявитель (><4) ПРОЦЕССОР, СТРУКТУРНО ОРИЕНТИРОВАННЫЙ

НА АЛГОРИТМИЧЕСКИЙ ЯЗЫК

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

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

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

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

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

3 способны воспринимать ЭВМ. Указанные функции контроля и преобразования являются основными при построении транслирующих программ. Эти программы занимают большие объемы памяти, а при пх работе тре10 буется много машинного времени. Кроме того, программы, написанные на языке высокого уровня, после пх трансляции в машинные программы становятся слишком громоздкими, совершенно непохожими на их представ13 ление на входном языке и, следовательно, необозримы для пользователя.

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

20 является метод проб п ошибок. Для повышения эффективности отладки программ необходимо, чтобы рабочие программы в памяти машины по форме прямо соответствовали исходным программам, написанным на язы25 К0 высокого уровня.

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

556445 управления. В нем осуществляется динамическая подготовка структур данных, начинающихся с любого разряда памяти и имеющих произвольную длину; команды выполняются не в порядке пх следования, а в соответствии с присвоенными приоритетами, Однако нельзя присвоить приоритеты всем элементам языков программирования. Например, приоритет знака «+», стоящего перед «(», должен быть ниже приоритета» (», а приоритет знака «+», стоящего после «(», должен быть выше приоритета «(».

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

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

Например, рассмотрим оператор обращения к процедуре Абсмакс (Л, Л; М, Y„1, К).

Идентификатор Абсмакс указывает адрес процедуры. Фактические переменные А, Л, М, У„ l, К в общем случае могут быть выражениями, идентификаторами массивов, идентификаторами переключателей и идентификаторами процедур. При их вычислении в стеке должны оставаться либо вычисленные значения фактических параметров (в случае передачи их в процедуру по значению), либо вычисленные адреса (в случае передачи их по наименованию), После вычисления всех фактических параметров управление должно быть передано по адресу, соответствующему идентификатору Абсмакс. Если хранить адрес процедуры в том же стеке, где хранятся вычисленные фактические параметры, то возникает трудность его нахождения, так как количество фактических параметров в процедуре может быть различным.

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

Зо

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

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

Кроме того, не предусмотрено устройство для синтаксического контроля исходных программ.

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

Это достигается тем, что в предлагаемый процессор введены блок анализа приоритетных отношений, блок синтаксического контроля и перекодировки, стек команд и стек данных, соединенные двусторонними связями с устройством управления, первые и вторые входы стеков команд и данных подключены соответственно к информационному входу процессора и второму информационному выходу арифметическо-логического устройства, адресный, первые и вторые выходы — соответственно к адресному, информационному выходу процессора и к второму информационному входу арифметическо-логического устройства, входы блока анализа приоритетных отношений соединены с соответствующими выходами блока регистров и стека команд.

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

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

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

556445

G0

65 обозначение QA; на фиг. 3 — матрица приоритетных отношений (в матрице имеются строки не для всех команд, так как не все команды могут быть записаны в стек команд (например, такими командами являются

«LA», «L», » )», «; »).

На схеме показаны информационный вход

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. Код считанной команды по линии ll подается в блок 10 анализа приоритетных отношений, где используется для выбора столбца матрицы приоритетных отношений. Эта матрица хранит приоритетные отношения между элементами программы, приоритетные отношения исчисляются по формальной грамматике языка при помощи специальной методики. Каждый элемент матрицы может иметь два значения

По линии 12 из аппаратного стека 4 команд поступает код верхнего элемента стека команд, который в блоке 10 используется для выбора строки матрицы приоритетных отношений. Если считанный элемент матрицы имеет отношения ), верхняя команда

Ф стека команд поступает на исполнение. При исполнении таких команд под управлением устройства 13 управления используются блоктт 2,3тт 5.

Если считанный элемент матрицы имеет .4 отношение то считанная команда в зависимости от своего кода либо записывается в стек команд, либо исполняется. При исполнении таких команд под управлением устройства 13 используются блоки 2, 3, 4 и о.

При запуске начальный адрес программы заносится в блок 3, стеки очищаются, и в стек 4 команд заносится код начального oI раничителя

Блок 20 реализует синтаксический контроль и перекодировку входной программы.

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

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

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

Пример. Пусть на входном языке был записан оператор А . =А+В": (С вЂ )/F, где A. В. С. D u F — целочисленные переменные, равные, соответственно «5», «4», «3», «1» и «2».

Под управлением блока 20 данный оператор будет преобразован в программу:

LAA Загрузить в стек данных адрес переменной А.

; = Присвоить.

LA Загрузить в стек данных переменн то А.

+ CJIOA(IlTb

1 В Загрузить в ную В.

" Умножить (Открыть скобку

1 С Загрузить в ную С. — Вычесть

LD Загрузить в стек ную D.

) Закрыть скобку

/ Разделить

LF Загрузить ную F.

: Конец оператора.

Последовательность выполнения

556445

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

Процессор имеет следующие преимуще- 5 ства.

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

Отпадает необходимость хранен1" я программ в объективной форме, так как перевод программ из символьнй формы в команды машины и компоновку рабочей ппограммы можно совместить с работой устройств вво- 20 да — вывода.

Представляется возмо>кность проведения отладки программ непосредственно на алгоритмическом языке.

Обеспечивается доступность электронных 25 вычислительных машин (ЭВМ1 на уровне интер претирующих систем с алгоритмических языков, но с быстродействием, свойствен.ным программам, оттранслированным в команды машины. 30

Перечисленные преимущества позволят повысить эффективность использования ЭВМ, сделать их более дост пными для широкого круга пользователей. Для написания эффективных программ от программиста не потре- 35 буется знания специальных машинных языков, достаточно знания стандартного алгоритмического языка. Более того, ЭВМ может быть использована как учебное пособие прп обучении этому языку, особенно при реалпза- 10 ции режима «прокрутки», т. е. при синхронной распечатке исполняемой программы на алгоритмическом языке >r результатов ее работы.

Формула изобретения

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

556445 фиг.2

Ф и.г.з

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

Корректор Н. Аук

Техред Л, Котова

Редактор E. Караулова

Типография, пр. Сапунова, 2

Заказ 11! 2/17 Изд. Хя 419 Тираж 815 Подписное

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

113035, Москва, Ж-35, Payurc;:. наб., д. 4/5

Процессор, структурно ориентированный на алгоритмический язык Процессор, структурно ориентированный на алгоритмический язык Процессор, структурно ориентированный на алгоритмический язык Процессор, структурно ориентированный на алгоритмический язык Процессор, структурно ориентированный на алгоритмический язык Процессор, структурно ориентированный на алгоритмический язык 

 

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

Процессор // 526902

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

Изобретение относится к автоматике и вычислительной технике

Изобретение относится к автоматике и вычислительной технике

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

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

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

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

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

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

Изобретение относится к автоматике и вычислительной технике, предназначено для выполнения требуемых функций программного управления с автоматическим перезапуском при «зависании» прикладной программы и автоматическим переходом в режим сохранения оперативной информации с помощью резервного источника напряжения питания при отключении или аварии основного источника напряжения питания и может быть использовано, например, в качестве ядра микроконтроллерной или микропроцессорной системы (М-системы) обработки информации и управления в реальном времени с поддержкой режима аппаратного сторожевого таймера для перезапуска при «зависании» прикладной программы М-системы, проектируемой с учетом следующих основных принципов [1]: программного управления, магистрального обмена информацией, модульного построения и наращивания вычислительной мощности
Наверх