SU556445A1 - Processor structured for algorithmic language - Google Patents
Processor structured for algorithmic languageInfo
- Publication number
- SU556445A1 SU556445A1 SU2189513A SU2189513A SU556445A1 SU 556445 A1 SU556445 A1 SU 556445A1 SU 2189513 A SU2189513 A SU 2189513A SU 2189513 A SU2189513 A SU 2189513A SU 556445 A1 SU556445 A1 SU 556445A1
- Authority
- SU
- USSR - Soviet Union
- Prior art keywords
- processor
- information
- stack
- output
- address
- Prior art date
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Description
1one
Изобретение относитс к вычислительной технике и может примен тьс дл обработки данных, хран щихс в оперативной нам ти, но программе, запоминаемой также в оперативной пам ти.The invention relates to computing and can be used for processing data stored in the operative type, but a program that is also stored in the operative memory.
Известны процессоры, которые содержат арифметическо-логическое устройство, устройство управлени и внутренние регистры. Однако в таких процессорах представление ирограммы в машинных командах не соответствует представлению этой программы на алгоритмическом зыке. Последовательность Онераций в машинных командах не совпадает с последовательностью операций во входном зыке.Processors are known which contain an arithmetic logic unit, a control unit and internal registers. However, in such processors, the representation of the program in machine instructions does not correspond to the representation of this program in an algorithmic language. The sequence of Onertia in machine commands does not coincide with the sequence of operations in the input language.
Это объ сн етс тем, что, с одной стороны, любое ариф.метическое выражение должно вычисл тьс с учетом приоритетов арифметических действий, а, с другой - тем, что команды программ в перечисленных выше машинах исполн ютс последовательно по мере того, как они записаны в теле программы . Поэтому последовательность команд дл арифметического выражени составл етс так, как это выражение должно вычисл тьс , а не так, как оно записано иа входном алгоритмическом зыке.This is explained by the fact that, on the one hand, any arithmetic expression must be calculated taking into account the priorities of arithmetic operations, and, on the other hand, that the instructions of the programs in the machines listed above are executed sequentially as they are written. in the body of the program. Therefore, the sequence of commands for an arithmetic expression is constructed in the way this expression is to be calculated, not in the way it is written in the input algorithmic language.
Друга проблема, котора стоит перед современной вычислительной техникой, св зана с трансл цией. Широко известны способыAnother problem that confronts modern computer technology is translation. Methods are widely known.
программного контрол синтаксической правильности программ, записанных иа зыке высокого уровн , и их преобразовани в последовательность машинных команд, которыеprogram control of the syntactic correctness of programs written in a high-level language and their transformation into a sequence of machine instructions
способны воспринимать ЭВМ. Указанные функции контрол и преобразовани вл ютс основными нри ностроенин транслнруюш ,их программ. Эти программы занимают большие объемы пам ти, а при их работе требуетс много машинного времени. Кроме того , программы, написанные на зыке высокого уровн , после их трансл ции в машинные программы станов тс слишком громоздкими , совершенно ненохожнми иа их представление иа входном зыке и, следовательно, необозрнмы дл пользовател .able to perceive computers. These control and transformation functions are the main components of their programs. These programs take up large amounts of memory, and their work requires a lot of computer time. In addition, programs written in a high level language, after being translated into machine programs, become too cumbersome, completely unremarkable, and their representation in the input language and, therefore, are not comprehensible to the user.
Все это приводит к тому, что отладка иа машине этих нрограмм вызывает серьезные затруднени , а основным методом отладкиAll this leads to the fact that debugging of these programs in the machine causes serious difficulties, and the main method of debugging
вл етс метод нроб и ошибок. Дл повышеин эффективиости отладки программ необходимо , чтобы рабочие нрограммы в нам ти машины но форме пр мо соответствовали исходным программам, написанным иа зыКС высокого уровн .is the method of nrob and error. To improve the efficiency of debugging programs, it is necessary that the working programs in us and the machines directly correspond to the source programs written in high-level textbooks.
Известен процессор, обеспечивающий функцию зыков программировани высокого уроЕ5н . Этот процессор содержит буферные устройства, ассоциативную пам ть, арнфметическо-логическое устройство, устройствоA processor is known that provides the function of programming languages of high uro5n. This processor contains buffer devices, an associative memory, an arithmetic logic unit, a device
управлени . В нем осзществл етс динамическа подготовка структур данных, начинающихс с любого разр да пам ти н имеющих произвольную длииу; команды выиоли ютс ие в пор дке их следовани , а в соответстВИИ с присвоенными приоритетами.management It implements a dynamic preparation of data structures starting with any memory bit of arbitrary length; the teams are etiolated in the order of their following, and in accordance with the assigned priorities.
Однако нельз присвонть приоритеты всем элементам зыков программировани . Например , приоритет знака «+, сто щего перед « (, должен быть ниже приоритета (, а приоритет знака «+, сто щего после « ( , должен быть выще приоритета « ( .However, it is not possible to assign priorities to all elements of the programming languages. For example, the priority of the “+” sign that stands before “(must be lower than the priority (, and the priority of the“ + sign that stands after “(must be higher than the priority” (.
Эти трудности преодолевают либо при помощи спецнальных схем, либо при помощи анализирующей микропрограммы, что усложн ет аппаратуру и замедл ет работу вычислительного устройства.These difficulties are overcome either with the help of special schemes or with the help of an analyzing firmware, which complicates the hardware and slows down the operation of the computing device.
Кроме того, в указанном процессоре аппаратно реализован только один стек. Это приводит к тому, что в одном стеке приходитс хранить команды, операнды в различных форматах, а также адреса нереходов и операндов , что существенно затрудн ет организацию стека и усложн ет алгоритмы работы с ним, или приводит к необходимости организации в пам ти дополнительных стеков, работа с которыми осуществл етс с помощью программ или микропрограмм, что замедл ет работу процессора.In addition, only one stack is implemented in the specified processor. This leads to the fact that in one stack you need to store instructions, operands in various formats, as well as addresses of non-transitions and operands, which significantly complicates the organization of the stack and complicates the algorithms of working with it, operation with which is carried out by means of programs or firmware, which slows down the operation of the processor.
Например, рассмотрИ1 1 оператор обращени к процедуре Абсмакс (А, N, М, Yy, I, К). Идентификатор Абсмакс указывает адрес процедуры. Фактические неременные А, N, М, Yy, I, К в общем случае могут быть выражени ми , идентификаторами массивов, идентификаторами переключателей и идентификаторами процедур. При их вычислении в стеке должны оставатьс либо вычисленные значени фактических параметров (в случае передачи их в процедуру по зиачению), либо вычисленные адреса (в случае передачи их по наименованию). После вычислени всех фактических параметров управление должно быть передано по адресу, соответствующему идентификатору Абсмакс. Если хранить адрее процедуры в том же стеке, где хран тс вычисленные фактические параметры, то возникает трудность его нахождени , так как количество фактических параметров в процедуре может быть различным.For example, consider the AND1 1 operator accessing the Absmax procedure (A, N, M, Yy, I, K). ID Absmaks specifies the address of the procedure. Actual non-temporary A, N, M, Yy, I, K in the general case can be expressions, array identifiers, switch identifiers and procedure identifiers. When calculating them, the stack should contain either the calculated values of the actual parameters (in the case of transferring them to the extraction procedure) or the calculated addresses (in the case of transferring them by name). After calculating all the actual parameters, the control must be transferred to the address corresponding to the identifier Absmax. If you store the address of the procedure in the same stack where the calculated actual parameters are stored, then it becomes difficult to find it, since the number of actual parameters in the procedure may be different.
Из известных нроцессоров наиболее близким по технической сущности к изобретению вл етс процессор, содержащий устройство управлени , соединенное двустороппими св з ми с блоком регистров и арифметическо-логическим устройством, первые информационные входы которых нодключены к информационному входу процессора, адресные и первые информационные выходы - соответственно к адресному и информационному выходам процессора, вторые информационные вход и выход арифметическо-логического устройства соединены соответственно с вторым информационным выходом и вторым информационным входом блока регистров.Of the known processors, the closest in technical essence to the invention is a processor containing a control device connected by two-way communications with a register block and an arithmetic-logic device, the first information inputs of which are connected to the information input of the processor, the address and first information outputs - respectively the address and information outputs of the processor, the second information input and output of the arithmetic-logical device are connected respectively to the second information by the output and the second information input of the register block.
Кро.ме того, ироцессор включает стековую пам ть дл вре.менного запоминани данных и команд, устройство определени относительного приоритета между двум соседними командами програм.мы и дополнительное устройство управлени скобка.ми.In addition, the microprocessor includes a stack memory for temporarily storing data and commands, a device for determining relative priority between two adjacent program commands, and an additional control device, bracket.
Однако в этом процессоре усложнен алгоритм работы со стеком, что существенно понижает быстродействие, устройство определени относительного приоритета команд не вл етс универсальным, так как невозможно присвоить приоритеты всем элементам зыка программировани . Из-за этого, в частности, процессор не имеет возможности аппаратно реализовать многие операторы алгоритмического зыка (например, операторы процедур). Кроме того, не предусмотрено устройство дл синтаксического контрол исходных программ .However, the stack handling algorithm is complicated in this processor, which significantly reduces performance, the device for determining the relative priority of commands is not universal, since it is impossible to assign priorities to all elements of the programming language. Because of this, in particular, the processor does not have the hardware to implement many algorithmic language operators (for example, procedure statements). In addition, there is no device for syntactic control of source programs.
Цель изобретени - новышение быстродействи и улучщение эксплуатационных характеристик при отладке и синтаксическом контроле программ.The purpose of the invention is to improve performance and improve performance when debugging and syntactically monitoring programs.
Это достигаетс тем, что в предлагаемый процессор введены блок анализа приоритетных отнощений, блок синтаксического контрол и перекодировки, стек команд и стек данных , соединенные двусторонними св з ми с устройством управлени , первые и вторые входы стеков команд и данных подключены соответственно к информационному входу процессора и второму информационному выходу арифметическо-логического устройства, адресный, цервые и вторые выходы - соответственно к адресному, информационному выходу процессора и к второму информационному входу ариф.метическо-логического устройства , входы блока анализа нриоритетных отнощений соединены с соответствующими выходами блока регистров н стека команд.This is achieved by the fact that a priority analysis block, a syntax control and transcoding block, a command stack and a data stack connected by two-way communications with a control device are entered into the processor, the first and second inputs of the command and data stacks are connected respectively to the information input of the processor and the second information output of the arithmetic logic unit, address, first time and second outputs, respectively, to the address, information output of the processor and to the second information input y arif.metichesko logic unit inputs nrioritetnyh otnoscheniya analysis unit coupled to corresponding outputs of n registers block command stack.
Наличие аппаратных стеков данных и команд позвол ет упростить алгоритмы работы со стеками и тем самым повысить быстродействие .The presence of hardware data and command stacks allows us to simplify the algorithms for working with stacks and thereby increase the speed.
Наличие блока анализа приоритетных отнощений позвол ет аппаратно онредел ть нриоритетные отношени между всеми элементами зыка программировани и тем самым сэкономить оборудование (например, исключить устройство управлени скобками) и в совокупности со стеками добитьс пр мого соответстви между исходными программами на алгоритмическом зыке и программами в мащинных командах, что непосредственно приводит к повыщению эффективности отладки программ.The presence of the priority analysis block allows the hardware to determine the priority relations between all elements of the programming language and thus save equipment (for example, eliminate the brace control device) and, in combination with the stacks, achieve a direct correspondence between the original programs on the algorithmic language and programs in the machine commands , which directly leads to an increase in the efficiency of debugging programs.
Включение в состав процессора блока синтаксического контрол и перекодировки и использоваиие при его построении формальных методов синтаксического контрол позвол ет существенно ускорить синтаксический контроль и совместить его с вводом программы.The inclusion of a block of syntactic control and transcoding into the processor and the use of formal methods of syntactic control in its construction allows us to significantly speed up syntactic control and combine it with the input of the program.
На фиг. 1 показана схема предлагаемого процессора; на фиг. 2 - пример выполнени программы, где адрес переменной А имеетFIG. 1 shows the scheme of the proposed processor; in fig. 2 is an example of program execution, where the address of variable A is
на фиг. 3 - матрицаin fig. 3 - matrix
обозначение (5)А ,designation (5) A,
приоритетных отношений в матрице имеютс строки не дл всех команд, так как не все команды могут быть занисаны в стек команд (наиример, такими командами вл ютс «LA, «L, ) , « ; .The priority relationships in the matrix have rows for not all commands, since not all commands can be placed into a stack of commands (for example, such commands are "LA," L,), "; .
На схеме показаны информационный вход 1 процессора, арифметическо-логическое устройство 2, блок 3 регистров, стек 4 команд, стек 5 данных, внутренние информационные шины 6, 7, адресный выход 8 и информационный выход 9 процессора, блок 10 анализа приоритетных отношений, выходные линии 11, 12 блоков 3 и 4, устройство 13 управлени , линии 14-19 управлени анализа состо ни , блок 20 синтаксического контрол и перекодировки.The diagram shows information input 1 of the processor, arithmetic logic unit 2, block 3 registers, stack of 4 commands, data stack 5, internal information buses 6, 7, address output 8 and information output 9 of the processor, block 10 for analysis of priority ratios, output lines 11, 12 blocks 3 and 4, control device 13, lines 14-19 of state analysis control, block 20 of syntactic control and transcoding.
Процессор работает следующим образом.The processor works as follows.
Выставл адрес на шину, подключенную к выходу 8, процессор может принимать извне (например, из оперативной пам ти) информацию (вход 1) или выдавать ее (выход 9).By setting the address on the bus connected to output 8, the processor can receive information (input 1) from the outside (for example, from main memory) or output it (output 9).
В блоке 3 регистров содержитс текущий адрес программы.In block 3 of registers contains the current address of the program.
Выставл его на адресный выход 8, процессор считывает очередную команду, и по входу 1 она подаетс на входной регистр в блоке 3. Код считанной команды по линии 11 подаетс в блок 10 анализа приоритетных отношений , где используетс дл выбора столбца матрицы приоритетных отнощений. Эта матрица хранит приоритетные отношени между элементами программы, приоритетные отношени исчисл ютс по формальной грамматике зыка при помощи специальной методики. Каждый элемент матрицы может иметь два значени Exposing it to address output 8, the processor reads the next command, and input 1 sends it to the input register in block 3. The code of the read command on line 11 is sent to the priority relationship analysis unit 10, where it is used to select the column of the priority relationship matrix. This matrix stores priority relations between program elements, priority relations are calculated according to the formal grammar of the language using a special technique. Each element of the matrix can have two values.
U . U.
По линии 12 из аннаратного стека 4 команд поступает код верхнего элемента стека команд, который в блоке 10 используетс дл выбора строки матрицы приоритетных отношений . Если считанный элемент матрицыOn line 12, from the annotated stack of 4 commands, the code of the upper element of the command stack is received, which in block 10 is used to select the row of the priority relationship matrix. If the read element of the matrix
и.меет отношени верхн командаand has a top team relationship
стека команд поступает на исполнение. При исполнении таких команд иод унравлением устройства 13 управлени используютс блоки 2, 3 и 5.command stack arrives for execution. When executing such commands by iodation by control unit control 13, blocks 2, 3 and 5 are used.
Если считанный элемент матрицы имеетIf the read element of the matrix has
м отношение ,то считанна командаm attitude, then the team read
в зависимости от своего кода либо записываетс в стек команд, либо иснолн етс . При исполнении таких команд нод управлением устройства 13 используютс блоки 2, 3, 4 и 5.depending on its code, it is either written to the command stack or it is executed. When executing such commands by the control node of the device 13, blocks 2, 3, 4 and 5 are used.
При запуске начальный адрес программы заноситс в блок 3, стеки очищаютс , и в стек 4 команд заноситс код начального ограничител When running, the starting address of the program is entered into block 3, the stacks are cleared, and the initial limiter code is put on the stack of 4 commands
,-., -.
Блок 20 реализует синтаксический контроль и перекодировку входной программы.Block 20 implements syntactic control and recoding of the input program.
При построении этого блока используютс формальные методы синтаксического контрол , например метод, который позвол ет но формальному описанию зыка быстро строить компактные алгорнтмы синтаксическогоFor the construction of this block, formal methods of syntactic control are used, for example, a method that allows a formal description of the language to quickly build compact algorithms of the syntax
контрол . Эти алгоритмы затем легко реализуютс в аппаратуре, например, в виде последовательности микрокоманд. Така реализаци блока 20 нозвол ет осуществить синтаксический контроль с большой скоростью иcontrol These algorithms are then easily implemented in hardware, for example, as a sequence of micro-instructions. Such an implementation of block 20 allows for syntactic control at high speed and
практически совместить его с вводом исходной программы, т. е. на проведение контрол не потребуетс дополнительного времени.practically combine it with the input of the original program, i.e., no additional time is required for monitoring.
Кроме того, этот же блок перекодирует каждую строку исходной программы на зыке в машинную строку, запомннаемую в пам ти машины, так, чтобы сохранить максимальное соответствие между ними, а также резервирует в пам ти необходимые объемы дл запоминани массивов и переменных иIn addition, the same block recodes each line of the original program in the language into the machine string stored in the machine’s memory so as to preserve the maximum correspondence between them, and also reserves the necessary volumes in memory for storing arrays and variables and
составл ет таблицы соответстви переменных их идентификаторам. Эти операции также выполн ютс во врем ввода исходной программы . При работе блока 20 используютс все остальные узлы процессора.compiles tables of variables to their identifiers. These operations are also performed during input of the source program. When block 20 is running, all other processor nodes are used.
Пример. Пусть на входном зыке был записан операторА : А+В (С-D)/F, где А. В. С. D и F - целочнсленные переменные , равные, соответственно «5, «4, «3, «1 и «2.Example. Let the operator A: A + B (C – D) / F be written on the input language, where A. C C. D and F are integer variables equal, respectively, to “5,” 4, “3,” 1 and “2 .
Под управлением блока 20 данный оператор будет преобразован в программу:Under the control of block 20, this operator will be converted into a program:
LAA Загрузить в стек данных адрес неременной А.LAA. Load address data in time stack A.
: Присвоить.: Assign.
L.4 Загрузить в стек данных переменную А.L.4 Load variable A. into the data stack.
+ Сложить+ Fold
LB Загрузить в стек данных переменную В.LB Load variable B into the data stack.
Умножить ( Открыть скобку Multiply (Open parenthesis
LC Загрузить в стек данных переменную С.LC Load variable C. into the data stack.
- Вычесть- Subtract
LD Загрузить в стек данных переменную D.LD Load variable D to the data stack.
) Закрыть скобку / Разделить) Close the bracket / Split
LF Загрузить в стек данных переменную Р.LF Load P variable into the data stack.
: Конец оператора.: The end of the operator.
Последовательность выполнени данной программы приведена на фиг. 2.The sequence of this program is shown in FIG. 2
Таким образом, в процессоре представление программы в машинных командах пр мо соответствуют представлению программы на алгоритмическом зыке.Thus, in the processor, the representation of the program in machine instructions directly corresponds to the representation of the program in an algorithmic language.
Процессор имеет следующие преимущества .The processor has the following advantages.
При сохранении такого же быстродействи исполнени программ, как и в существующих машинах, сокращаетс врем , необходимое на перевод программ с алгоритмического зыка в команды машины, а также на компоновку рабочей программы с библиотечными подпоограммами . В результате сокращаетс и общее врем прохождени программы (т. е. от начала ввода до получени результатов).While maintaining the same speed of program execution as in existing machines, the time required for translating programs from algorithmic language to machine commands, as well as for building a work program with library sub-programs, is reduced. As a result, the total program time is also reduced (i.e., from the start of input to the receipt of results).
Отпадает необходимость хранени программ в объективной форме, так как перевод программ из символьий формы в команды машины и компоновку рабочей программы можно совместить с работой устройств ввода - вывода.There is no need to store programs in an objective form, since the transfer of programs from a form to machine commands and the layout of a working program can be combined with the operation of input / output devices.
Представл етс возможность проведени отладки программ непосредственно на алгоритмическом зыке.It is possible to debug programs directly on the algorithmic language.
Обеспечиваетс доступность электронных вычислительных машин (ЭВМ) на уровне интерпретирующих систем с алгоритмических зыков, но с быстродействием, свойственным программам, оттранслированным в команды машины.The availability of electronic computers (computers) is ensured at the level of interpreting systems from algorithmic languages, but with the speed characteristic of programs translated into machine commands.
Перечисленные преимущества позвол т повысить эффективность использовани ЭВМ, сделать их более ДОСТУПНЫМИ дл щирокого круга пользователей. Дл написани эффективных программ от программиста не потребуетс знани спецпальных машинных зыков , достаточно знани стандартного алгоритмического зыка. Более того, ЭВМ может быть использована как учебпое пособие при обучении этому зыку, особенно при реализа8The listed advantages will allow to increase the efficiency of computer use, to make them more AVAILABLE for a wide circle of users. To write effective programs, the programmer does not require knowledge of special machine languages, knowledge of a standard algorithmic language is sufficient. Moreover, a computer can be used as a study guide for learning this language, especially when implementing8
ции режима «прокрутки, т. е. при синхронной ра-спечатке исполн емой программы на алгоритмическом зыке и результатов ее работы .scrolling mode, i.e., with synchronous processing of the executable program on the algorithmic language and the results of its operation.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU2189513A SU556445A1 (en) | 1975-11-14 | 1975-11-14 | Processor structured for algorithmic language |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU2189513A SU556445A1 (en) | 1975-11-14 | 1975-11-14 | Processor structured for algorithmic language |
Publications (1)
Publication Number | Publication Date |
---|---|
SU556445A1 true SU556445A1 (en) | 1977-04-30 |
Family
ID=20637303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SU2189513A SU556445A1 (en) | 1975-11-14 | 1975-11-14 | Processor structured for algorithmic language |
Country Status (1)
Country | Link |
---|---|
SU (1) | SU556445A1 (en) |
-
1975
- 1975-11-14 SU SU2189513A patent/SU556445A1/en active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4334269A (en) | Data processing system having an integrated stack and register machine architecture | |
US5347636A (en) | Data processor which efficiently accesses main memory and input/output devices | |
US20060259744A1 (en) | Method for information processing | |
KR910001447B1 (en) | Main storage access control system for virtual computing function system | |
JPS59501684A (en) | Accelerated instruction mapping outside the source and destination instruction streams for near real-time insertion into the destination instruction stream | |
US20100095286A1 (en) | Register reduction and liveness analysis techniques for program code | |
KR900006008B1 (en) | Information processing system having smart memories | |
JPH0512126A (en) | Device and method for address conversion for virtual computer | |
US3737864A (en) | Method and apparatus for bypassing display register update during procedure entry | |
JPS6122817B2 (en) | ||
JPS623461B2 (en) | ||
SU556445A1 (en) | Processor structured for algorithmic language | |
KR102658600B1 (en) | Apparatus and method for accessing metadata when debugging a device | |
JPH04149658A (en) | Information processor | |
Calderbank et al. | A portable language for system development | |
JPH04268928A (en) | Emulation device and semiconductor device | |
SU742942A1 (en) | Information handling device | |
JPS60134937A (en) | Address extension device | |
KR970011897B1 (en) | Words interpretating device | |
JPS5918787B2 (en) | TLB partition method | |
JPH0784797A (en) | Method and device for registering source code row number to load module | |
JPS5931733B2 (en) | central processing unit that executes variable length instructions | |
JPH02308330A (en) | Knowledge information processing device | |
JPS6042968B2 (en) | information processing equipment | |
JPS6113615B2 (en) |