RU2184389C1 - System for controlling conveyor cycle of large instruction word processor - Google Patents

System for controlling conveyor cycle of large instruction word processor Download PDF

Info

Publication number
RU2184389C1
RU2184389C1 RU2001114929/09A RU2001114929A RU2184389C1 RU 2184389 C1 RU2184389 C1 RU 2184389C1 RU 2001114929/09 A RU2001114929/09 A RU 2001114929/09A RU 2001114929 A RU2001114929 A RU 2001114929A RU 2184389 C1 RU2184389 C1 RU 2184389C1
Authority
RU
Russia
Prior art keywords
control
output
block
cycle
input
Prior art date
Application number
RU2001114929/09A
Other languages
Russian (ru)
Inventor
н Б.А. Баба
Б.А. Бабаян
В.Ю. Волконский
В.Г. Горохов
Ф.А. Груздов
А.К. Ким
А.Ю. Останевич
Ю.Х. Сахин
Original Assignee
Бабаян Борис Арташесович
Волконский Владимир Юрьевич
Горохов Валерий Григорьевич
Груздов Федор Анатольевич
Ким Александр Киирович
Останевич Александр Юрьевич
Сахин Юлий Хананович
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Бабаян Борис Арташесович, Волконский Владимир Юрьевич, Горохов Валерий Григорьевич, Груздов Федор Анатольевич, Ким Александр Киирович, Останевич Александр Юрьевич, Сахин Юлий Хананович filed Critical Бабаян Борис Арташесович
Priority to RU2001114929/09A priority Critical patent/RU2184389C1/en
Application granted granted Critical
Publication of RU2184389C1 publication Critical patent/RU2184389C1/en

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

FIELD: automation engineering. SUBSTANCE: system has device for controlling conveyor cycle prologue and epilogue, large instruction decoder unit, register unit, units for reading from random access memory, units for writing to random access memory and transition address output unit. EFFECT: wide range of functional applications; retained high clock frequency. 5 cl, 5 dwg

Description

Изобретение относится к области вычислительной техники, в частности к архитектуре процессоров конвейерного типа, предназначенных для использования при осуществлении параллельных вычислений на уровне элементарных операций, в том числе к технике аппаратной поддержки конвейеризованных циклов для архитектур с использованием широких команд. The invention relates to the field of computer engineering, in particular to the architecture of conveyor-type processors intended for use in parallel computing at the level of elementary operations, including the technique of hardware support for pipelined loops for architectures using wide commands.

Из уровня техники известно, что отдельные независимые операции объединяются в параллельные группы, называемые широкими командами, которые выполняются аппаратурой как единое целое в каждом машинном такте (см. патент США 5418975, кл. G 06 F 009/00 от 23 мая 1995 г.). Высокая производительность вычислительной системы на базе процессоров широкого командного слова достигается при помощи оптимизирующего компилятора - системной программы, осуществляющей перевод прикладного математического обеспечения с языков программирования в параллельный объектный код. При этом при использовании широких команд обеспечивается оптимизация процессов обработки, главным образом состоящая в выявлении параллельных операций исходной программы и наборе из них широкого командного слова (см. патент СССР 1804645, кл. G 06 F 15/76 от 27.03.91). It is known from the prior art that separate independent operations are combined into parallel groups called wide teams, which are performed by the apparatus as a single unit in each machine cycle (see US patent 5418975, CL G 06 F 009/00 of May 23, 1995) . High performance computing system based on processors of a wide command word is achieved using an optimizing compiler - a system program that translates applied mathematical software from programming languages to parallel object code. At the same time, when using wide commands, optimization of processing processes is provided, mainly consisting in identifying parallel operations of the original program and a set of a wide command word from them (see USSR patent 1804645, class G 06 F 15/76 of 03/27/91).

Производительность современных вычислительных систем в значительной степени определяется скоростью обработки регулярно повторяющихся участков программ (циклов). Совокупность вычислений, реализующих регулярно повторяющееся действие цикла, называют итерацией цикла (loop iteration), а машинный код итерации - телом цикла (loop body). Скорость вычислений для таких участков обычно определяется временем выполнения одной итерации цикла и числом повторений цикла, которое задано алгоритмом программы. Ускорить обработку цикла можно путем совмещения во времени вычислений с нескольких соседних итераций цикла. При этом очередная итерация цикла начинается не ожидая окончания текущей итерации, как бы образуя конвейер. Оптимизация такого рода получила название программной конвейеризации цикла, а оптимизированный цикл считается конвейеризованным (pipelined loop). Исходная итерация цикла разбивается на одинаковые интервалы времени, содержащие фрагменты вычислений и называемые стадиями конвейера (pipeline stage). Конвейеризованный цикл содержит параллельный код всех стадий конвейера. Количество стадий и их продолжительность (в машинных тактах) определяются исходя из вычислительных возможностей архитектуры процессора и характеристик самого цикла. The performance of modern computing systems is largely determined by the processing speed of regularly repeating program sections (cycles). The set of computations that implement the regularly repeating action of the loop is called the loop iteration, and the machine iteration code is called the loop body. The calculation speed for such sections is usually determined by the execution time of one iteration of the cycle and the number of repetitions of the cycle, which is set by the program algorithm. You can speed up the processing of a cycle by combining in time the calculations from several adjacent iterations of the cycle. In this case, the next iteration of the cycle begins without waiting for the end of the current iteration, as if forming a pipeline. This kind of optimization is called a software loop pipelining, and an optimized loop is considered a pipelined loop. The initial iteration of the cycle is divided into equal time intervals containing fragments of calculations and called pipeline stages. The conveyed loop contains parallel code for all stages of the pipeline. The number of stages and their duration (in machine cycles) are determined based on the computational capabilities of the processor architecture and the characteristics of the cycle itself.

При работе конвейеризованного цикла за время, равное длительности стадии конвейера, выполняется первая стадия текущей i-й итерации исходного цикла, вторая стадия предыдущей (i-1)-й итерации, третья стадия (i-2)-й и т. д. При числе стадий конвейера цикла, равном S, параллельно выполняются вычисления сразу для S соседних итераций, смещенных по времени друг относительно друга на одну стадию конвейера. Для разгона и остановки конвейера, как правило, строится отдельный код. Можно выполнить эту функцию и с помощью кода самого конвейеризованного цикла при наличии специальной аппаратной поддержки (системы управления конвейеризованным циклом). Данная система обеспечивает плавное включение в работу вычислений первых S-1 стадий, которые принято называть периодом пролога (loop prologue period) конвейеризованного цикла, и плавное выключение вычислений последних S-1 стадий опорожнения конвейера, образующих период эпилога (loop epilogue period) конвейеризованного цикла. Между периодами пролога и эпилога неограниченно долго цикл может работать с полностью загруженным конвейером (ядро конвейеризованного цикла - loop kernel). Например, для цикла с числом стадий S=3 и числом повторений N=5 периоды пролога и эпилога будут длиться в течение 2-х стадий, а ядро займет К= 3 стадий. Число повторений конвейеризованного цикла с учетом разгона и остановки конвейера в этом случае составит Nk=7 раз (см. фиг.4). Управление работой конвейеризованного цикла в течение периодов пролога и эпилога осуществляется путем отмены операций обращения в оперативную память и изменения условий операций перехода, относящихся к несуществующим итерациям исходного цикла. When the conveyed cycle is operating for a time equal to the duration of the pipeline stage, the first stage of the current i-th iteration of the original cycle is performed, the second stage of the previous (i-1) -th iteration, the third stage of the (i-2) -th, etc. the number of stages of the loop pipeline equal to S, parallel calculations are performed immediately for S neighboring iterations, time-shifted relative to each other by one stage of the conveyor. To accelerate and stop the conveyor, as a rule, a separate code is built. You can also perform this function using the code of the pipelined cycle itself with special hardware support (pipelined loop control system). This system provides a smooth inclusion in the work of calculations of the first S-1 stages, which is usually called the prologue period of the conveyed cycle, and smoothly turns off the calculations of the last S-1 stages of the conveyor emptying, forming the epilogue period of the conveyed cycle. Between the periods of the prologue and the epilogue, the cycle can work with a fully loaded pipeline for an unlimited time (the core of the pipelined cycle is the loop kernel). For example, for a cycle with the number of stages S = 3 and the number of repetitions N = 5, the periods of prologue and epilogue will last for 2 stages, and the kernel will take K = 3 stages. The number of repetitions of the conveyed cycle, taking into account acceleration and stop of the conveyor in this case, will be Nk = 7 times (see figure 4). The operation of the pipelined cycle during the periods of prologue and epilogue is controlled by canceling the operations of accessing the main memory and changing the conditions of transition operations related to nonexistent iterations of the original cycle.

Известна система управления работой конвейеризованного цикла процессора широкого командного слова, содержащая КЭШ память широких команд, регистровую матрицу, дешифратор широких команд, устройство управления, устройство команд, исполнительное устройство, подключенные к системной шине (см. статью "The Cydra 5 Minisupercomputer: Architecture and Implementation", Journal of Supercomputing, 7, 143-180 (1993)). A well-known system for controlling the operation of a conveyed cycle of a wide command word processor, containing a cache of wide commands, a register matrix, a wide command decoder, a control device, a command device, an executive device connected to the system bus (see "The Cydra 5 Minisupercomputer: Architecture and Implementation ", Journal of Supercomputing, 7, 143-180 (1993)).

Указанная система рассчитана на построение кода цикла без программного пролога и эпилога. The specified system is designed to build loop code without a program prologue and epilogue.

Однако функции разгона и остановки программного конвейера цикла выполняются дополнительными командами, закодированными в самом теле цикла, что при определенных обстоятельствах может привести к росту времени выполнения цикла. Замедление исполнения цикла происходит в силу двух причин: во-первых, увеличивается количество операций в теле цикла и для выполнения каждой стадии программного конвейера требуется больше машинных тактов; во-вторых, растет число стадий конвейера, необходимых для выполнения одной итерации цикла. Особенно сильно это замедление может проявиться для циклов с малым количеством операций и большим числом повторений. However, the functions of accelerating and stopping the program pipeline loop are performed by additional commands encoded in the body of the cycle, which under certain circumstances can lead to an increase in the execution time of the cycle. The execution of a cycle is slowed down for two reasons: firstly, the number of operations in the body of the cycle increases and more machine cycles are required to complete each stage of the software pipeline; secondly, the number of pipeline stages necessary to complete one iteration of the cycle is growing. This slowdown can be especially pronounced for cycles with a small number of operations and a large number of repetitions.

По технической сущности наиболее близким к заявляемому изобретению является система управления конвейеризованным циклом процессора широкого командного слова (ARCHITECTURAL SUPPORT FOR EXECUTION CONTROL OF PROLOGUE AND EPILOGUE PERIODS OF LOOPS IN A VLIW PROCESSOR), содержащая КЭШ память широких команд, блок регистров общего назначения, дешифратор широких команд, устройство управления, блок выдачи адреса перехода, как минимум одно устройство считывания из оперативной памяти, как минимум одно устройство записи в оперативную память, при этом информационный вход КЭШ памяти команд, первые входы-выходы устройств считывания и выходы устройств записи подключены к шине оперативной памяти, информационный выход КЭШ памяти - к информационному входу дешифратора широких команд, блок регистров связан двунаправленной шиной данных с информационным входом-выходом устройства управления, со вторыми информационными входами-выходами устройств считывания и с информационными входами-выходами устройств записи (см. патент США 5794029, кл. G 06 F 9/445 от 18 октября 1996 г.). By technical nature, the closest to the claimed invention is a conveyor cycle control system for a broad command word processor (ARCHITECTURAL SUPPORT FOR EXECUTION CONTROL OF PROLOGUE AND EPILOGUE PERIODS OF LOOPS IN A VLIW PROCESSOR), containing a cache of wide commands, a general-purpose register block, a wide command decoder , a control device, a unit for issuing a transition address, at least one reader from random access memory, at least one device for writing to random access memory, while the information input of the instruction cache cache the input-outputs of the readers and the outputs of the recorders are connected to the RAM bus, the information output of the cache cache is connected to the information input of the wide command decoder, the register block is connected by a bi-directional data bus with the information input-output of the control device, and the second information inputs and outputs of the readers and with information inputs / outputs of recorders (see US patent 5794029, CL G 06 F 9/445 of October 18, 1996).

Данная система рассчитана на применение в процессоре с аппаратной поддержкой предикатных вычислений и позволяет исключить из цикла операции, связанные с разгоном и остановкой программного конвейера. This system is designed for use in a processor with hardware support for predicate calculations and allows you to exclude from the cycle operations associated with accelerating and stopping the software pipeline.

Однако данная система имеет ограниченные функциональные возможности при конвейеризации цикла со сложной структурой управления, поскольку рассчитана на выполнение лишь одной команды перехода в теле цикла. Для расширения функциональных возможностей данной системы применительно ко всем циклам потребуется значительное усложнение устройства управления и, как следствие, понижение тактовой частоты, что приведет к ограничению быстродействия процессора. However, this system has limited functionality when pipelining a cycle with a complex control structure, since it is designed to execute only one transition command in the body of the cycle. To expand the functionality of this system in relation to all cycles, a significant complication of the control device will be required and, as a result, a decrease in the clock frequency, which will limit the processor speed.

Техническим результатом изобретения является расширение функциональных возможностей системы управления конвейеризованным циклом процессора широкого командного слова при сохранении высокой тактовой частоты. The technical result of the invention is to expand the functionality of the conveyor cycle control system of the processor of a wide command word while maintaining a high clock frequency.

Для этого в системе управления конвейеризованным циклом процессора широкого командного слова, содержащей КЭШ память широких команд, блок регистров, дешифратор широких команд, устройство управления, блок выдачи адреса перехода, как минимум одно устройство считывания из оперативной памяти, как минимум одно устройство записи в оперативную память, причем информационный вход КЭШ памяти команд, первый вход-выход устройств считывания из оперативной памяти и выход устройств записи в оперативную память подключены к шине оперативной памяти, информационный выход КЭШ памяти команд подключен к информационному входу дешифратора широких команд, управляющий вход которого подключен к выходу блока выдачи адреса перехода, блок регистров связан двунаправленной шиной данных с информационным входом-выходом устройства управления, со вторым информационным входом-выходом устройств считывания из оперативной памяти и с информационным входом-выходом устройств записи в оперативную память, согласно изобретению введено устройство управления прологом и эпилогом конвейеризованного цикла, подключенное управляющим входом к выходной шине дешифратора широких команд, информационным входом - к двунаправленной шине данных блока регистров, а устройства считывания из оперативной памяти, записи в оперативную память и блок выдачи адреса перехода подключены управляющим входом к выходной шине устройства управления прологом и эпилогом конвейеризованного цикла. To do this, in the control system of the conveyed cycle of the processor of a wide command word containing a cache of wide commands, a register block, a decoder of wide commands, a control device, a block for issuing a transition address, at least one reader from random access memory, at least one device for writing to random access memory moreover, the information input of the instruction cache cache, the first input-output of the readers from the RAM and the output of the write devices to the RAM are connected to the RAM bus, in The instruction output cache of the command memory is connected to the information input of the wide command decoder, the control input of which is connected to the output of the transition address issuing unit, the register block is connected by a bi-directional data bus with the information input-output of the control device, with the second information input-output of the reading devices from the main memory and according to the invention, a prologue and epilogue control device for a pipelined loop is introduced with connected by the control input to the output bus of the wide command decoder, the information input to the bi-directional data bus of the register block, and the readers from the main memory, write to the RAM and the block for transferring the address are connected by the control input to the output bus of the prolog and epilogue of the conveyed cycle.

При этом устройство управления прологом и эпилогом конвейеризованного цикла содержит блок фиксации периода эпилога конвейеризованного цикла, блок фиксации момента окончания эпилога конвейеризованного цикла, блок фиксации периода пролога конвейеризованного цикла и блок задания режимов работы, причем первые управляющие входы блока фиксации периода эпилога конвейеризованного цикла, блока фиксации момента окончания эпилога конвейеризованного цикла и блока фиксации периода пролога конвейеризованного цикла подключены к управляющему входу устройства, второй управляющий и информационный входы блока фиксации периода эпилога конвейеризованного цикла, блока фиксации момента окончания эпилога конвейеризованного цикла, блока фиксации периода пролога конвейеризованного цикла, информационный и управляющий входы блока задания режимов работы подключены к информационному входу устройства, первый управляющий выход блока фиксации периода эпилога конвейеризованного цикла, управляющий выход блока фиксации момента окончания эпилога конвейеризованного цикла и управляющий выход блока фиксации периода пролога конвейеризованного цикла подключены к выходной шине устройства управления прологом и эпилогом конвейеризованного цикла, второй управляющий выход блока фиксации периода эпилога конвейеризованного цикла подключен к третьему управляющему входу блока фиксации момента окончания эпилога конвейеризованного цикла, первый и второй управляющие выходы блока задания режимов работы подключены к третьему управляющему входу блока фиксации периода эпилога конвейеризованного цикла и блока фиксации периода пролога конвейеризованного цикла соответственно. At that, the prologue and epilogue control device of the conveyed cycle contains a block for fixing the epilogue period of the conveyed cycle, a block for fixing the end time of the epilogue of the conveyed cycle, a block for fixing the period of the prologue of the conveyed cycle, and a unit for setting operating modes, the first control inputs of the block for fixing the period of the epilogue of the conveyed cycle the moment of completion of the epilogue of the conveyed cycle and the block of fixation of the prologue period of the conveyed cycle are connected to the control the device’s progress, the second control and information inputs of the block of fixation of the epilogue of the conveyed cycle, the block of fixation of the moment of the end of the epilogue of the conveyed cycle, the block of fixation of the period of the prologue of the conveyed cycle, the information and control inputs of the block for specifying operating modes are connected to the information input of the device, the first control output of the block of period fixing the epilogue of the conveyed cycle, the control output of the block fixing the moment of the end of the epilogue of the conveyed cycle and controlling the output of the block for fixing the period of the prologue of the conveyed cycle is connected to the output bus of the prolog and epilogue of the conveyed cycle, the second control output of the block for fixing the period of the epilogue of the conveyed cycle is connected to the third control input of the block for fixing the moment of the end of the epilogue of the conveyed cycle, the first and second control outputs of the unit for specifying operating modes connected to the third control input of the block of fixation of the period of the epilogue of the conveyed cycle and the block of fixation of the period of log pipelined cycle respectively.

Кроме того, блок фиксации периода эпилога конвейеризованного цикла содержит мультиплексор, регистр, сумматор, компаратор и элемент И, причем к первому управляющему входу блока подключены первый и второй управляющие входы сумматора и элемента И, управляющий вход мультиплексора является вторым управляющим входом блока, третий управляющий вход элемента И и его выход являются соответственно третьим управляющим входом и первым управляющим выходом блока, второй управляющий выход которого подключен к выходу компаратора и четвертому управляющему входу элемента И, первый информационный вход мультиплексора является информационным входом блока, информационный выход мультиплексора подключен к информационному входу регистра, информационный выход которого подключен к информационному входу сумматора, информационный выход которого подключен к информационному входу компаратора и второму информационному входу мультиплексора. In addition, the block for fixing the period of the epilogue of the conveyed cycle contains a multiplexer, a register, an adder, a comparator, and an I element, with the first and second control inputs of the adder and the And element connected to the first control input of the block, the control input of the multiplexer is the second control input of the block, and the third control input element And and its output are respectively the third control input and the first control output of the unit, the second control output of which is connected to the output of the comparator and the fourth control to the input input of the And element, the first information input of the multiplexer is the information input of the unit, the information output of the multiplexer is connected to the information input of the register, the information output of which is connected to the information input of the adder, the information output of which is connected to the information input of the comparator and the second information input of the multiplexer.

Кроме того, блок фиксации момента окончания эпилога конвейеризованного цикла содержит мультиплексор, регистр, сумматор, компаратор и элемент И, причем к первому управляющему входу блока подключены первый и второй управляющие входы сумматора и элемента И, выход которого является управляющим выходом блока, ко второму управляющему и информационному входам которого подключены соответственно управляющий и первый информационный входы мультиплексора, выход которого подключен к информационному входу регистра, информационный выход которого подключен к информационному входу сумматора, информационный выход которого подключен к информационному входу компаратора и второму информационному входу мультиплексора, третий управляющий вход сумматора является третьим управляющим входом блока, выход компаратора подключен к третьему управляющему входу элемента И. In addition, the unit for fixing the moment of completion of the epilogue of the conveyed cycle contains a multiplexer, register, adder, comparator, and element I, and the first and second control inputs of the adder and element And, the output of which is the control output of the block, are connected to the second control input and the information inputs of which are connected respectively to the control and first information inputs of the multiplexer, the output of which is connected to the information input of the register, the information output of which connected to the information input of the adder, the information output of which is connected to the information input of the comparator and the second information input of the multiplexer, the third control input of the adder is the third control input of the unit, the output of the comparator is connected to the third control input of element I.

Кроме того, блок фиксации периода пролога конвейеризованного цикла содержит первый и второй мультиплексоры, сдвиговый регистр, триггер и элемент И, причем к первому управляющему входу блока подключены первый и второй управляющие входы сдвигового регистра и элемента И, ко второму управляющему входу блока подключены управляющие входы первого и второго мультиплексоров, к информационному входу блока подключены первые информационные входы первого и второго мультиплексоров, вторые информационные входы которых подключены соответственно к первому и второму информационным выходам сдвигового регистра, информационный вход которого соединен с выходом первого мультиплексора, третий управляющий вход и выход элемента И являются соответственно третьим управляющим входом и выходом блока, а выход второго мультиплексора подключен ко входу триггера, выход которого подключен к четвертому управляющему входу элемента И. In addition, the block for fixing the period of the prologue of the conveyed cycle contains the first and second multiplexers, a shift register, a trigger, and the And element, and the first and second control inputs of the shift register and the And element are connected to the first control input of the block, and the control inputs of the first are connected to the second control input of the block and the second multiplexers, the first information inputs of the first and second multiplexers are connected to the information input of the unit, the second information inputs of which are connected respectively to the first and second information outputs of the shift register, the information input of which is connected to the output of the first multiplexer, the third control input and the output of the And element are the third control input and output of the unit, respectively, and the output of the second multiplexer is connected to the trigger input, the output of which is connected to the fourth control input of the element AND.

Кроме того, блок задания режима работы содержит первый и второй регистры, причем информационный вход первого и второго регистров подключен к информационному входу блока, управляющий вход первого и второго регистров подключен к управляющему входу блока, первым и вторым управляющими выходами которого являются выход второго и выход первого регистров соответственно. In addition, the operation mode setting unit contains first and second registers, wherein the information input of the first and second registers is connected to the information input of the unit, the control input of the first and second registers is connected to the control input of the unit, the first and second control outputs of which are the second and the first registers respectively.

Сущность изобретения заключается в том, что введение устройства управления прологом и эпилогом конвейеризованного цикла и соответствующее его подключение позволяют при организации конвейеризованного цикла получить без усложнения устройства управления и при сохранении высокого быстродействия процессора длительность одной стадии конвейера, равную одному машинному такту, в то время как в прототипе такой же цикл имел бы размер стадии не менее двух машинных тактов. The essence of the invention lies in the fact that the introduction of a prologue and epilogue control device for a pipelined cycle and its corresponding connection allows, when organizing a pipelined cycle, to obtain without complicating the control device and while maintaining high processor speed, the duration of one stage of the conveyor equal to one machine cycle, while a prototype of the same cycle would have a stage size of at least two machine cycles.

Сравнение с ближайшим аналогом позволяет утверждать о выполнении критерия "новизна", а отсутствие в аналогах отличительных признаков заявляемой системы позволяет говорить о выполнении критерия "изобретательский уровень". Предварительные испытания подтверждают возможность широкого промышленного использования изобретения. Comparison with the closest analogue allows us to state that the criterion of "novelty" is fulfilled, and the lack of distinctive features of the inventive system in analogs allows us to talk about the fulfillment of the criterion of "inventive step". Preliminary tests confirm the possibility of wide industrial use of the invention.

На Фиг.1 представлена блок-схема многопроцессорной вычислительной системы, на Фиг.2 представлена система управления конвейеризованным циклом процессора широкого командного слова, на Фиг.3 представлено устройство управления прологом и эпилогом конвейеризованного цикла, на Фиг.4 приведены пример реализации конвейеризованного цикла и сравнение с неоптимизированным случаем, на Фиг.5 представлена блок-схема алгоритма работы устройства 4 и дешифратора 3 при выполнении команд передачи управления. Figure 1 shows a block diagram of a multiprocessor computing system, Figure 2 shows a control system for a conveyed cycle of a broad command word processor, Figure 3 shows a prologue and epilogue control device for a conveyed cycle, Figure 4 shows an example implementation of a conveyed cycle with an unoptimized case, FIG. 5 shows a block diagram of the algorithm of the device 4 and the decoder 3 when executing control transfer commands.

Система управления конвейеризованным циклом процессора широкого командного слова является составной частью многопроцессорной вычислительной системы, которая включает процессоры 1-1...1-N широкого командного слова и оперативную память 2. Система содержит дешифратор 3 широких команд, устройство 4 управления, КЭШ память 5 широких команд, блок 6 регистров, устройства 7-1. . . 7-К считывания из оперативной памяти, устройства 8-1...8-К записи в оперативную память, устройство 9 управления прологом и эпилогом конвейеризованного цикла, блок 10 выдачи адреса перехода. Дешифратор 3 широких команд содержит информационный вход 11-1, управляющий вход 11-2 и выходную шину 12. Устройство 9 управления прологом и эпилогом конвейеризованного цикла содержит управляющий вход 13, информационный вход 14 и выходную шину 15. Блок 10 выдачи адреса перехода содержит управляющий вход 16 и управляющий выход, подключенный к управляющему входу 11-2 дешифратора 3. The control system for the conveyed cycle of the processor of a wide command word is an integral part of a multiprocessor computing system, which includes processors 1-1 ... 1-N of a wide command word and random access memory 2. The system contains a decoder 3 wide commands, a control device 4, a cache memory 5 wide commands, block 6 registers, devices 7-1. . . 7-K read from the RAM, the device 8-1 ... 8-K write to the RAM, the device 9 control the prologue and epilogue of the pipelined cycle, block 10 issuing the transition address. The decoder 3 wide commands contains the information input 11-1, the control input 11-2 and the output bus 12. The device 9 for controlling the prologue and epilogue of the conveyed cycle contains the control input 13, the information input 14 and the output bus 15. The transition address output unit 10 contains the control input 16 and the control output connected to the control input 11-2 of the decoder 3.

Кроме того, система содержит двунаправленную шину 17 данных, обеспечивающую связь информационного входа-выхода блока 6 с устройством 4 через его информационный вход-выход и с устройством 9 через его информационный вход 14. Каждое из устройств 7-i содержит управляющий вход 18 и первый и второй информационные входы-выходы 19-1 и 19-2 соответственно. Каждое из устройств 8-i содержит управляющий вход 20, информационный вход-выход 21 и информационный выход 22. К шине 23 связи с оперативной памятью 2 подключены первые информационные входы-выходы 19-1 устройств 7-i, информационные выходы 22 устройств 8-i и информационный вход КЭШ памяти 5, информационный выход которой подключен к информационному входу 11-1 дешифратора 3, выходная шина 12 которого подключена к управляющему входу 13 устройства 9. Выходная шина 15 последнего подключена к управляющим входам 18 и 20 устройств 7-i и 8-i соответственно и к управляющему входу 16 блока 10. Двунаправленная шина 17 также обеспечивает связь информационных входов-выходов 19-2 и 21 устройств 7-i и 8-i соответственно с информационным входом-выходом блока 6. In addition, the system includes a bi-directional data bus 17, which provides communication of the information input-output of unit 6 with device 4 through its information input and output and with device 9 through its information input 14. Each of devices 7-i contains a control input 18 and the first and the second information inputs and outputs 19-1 and 19-2, respectively. Each of the devices 8-i contains a control input 20, information input-output 21 and information output 22. The first information inputs and outputs 19-1 of devices 7-i, information outputs 22 of devices 8-i are connected to the communication bus 23 with RAM 2 and an information input of the memory cache 5, the information output of which is connected to the information input 11-1 of the decoder 3, the output bus 12 of which is connected to the control input 13 of the device 9. The output bus 15 of the latter is connected to the control inputs 18 and 20 of the devices 7-i and 8- i respectively to the manager 16 entry unit 10. Bidirectional bus 17 also provides communication information input-output device 19-2 and 21-i and 7-i respectively 8, an information input-output unit 6.

Дешифратор 3, устройство 4, КЭШ память 5, блок 6, устройства 7-i и 8-i могут быть выполнены аналогично соответствующим блокам процессора прототипа (Фиг.2 и 4 патента США 5794029). Дешифратор 3 представляет собой стандартный дешифратор, предназначенный для распаковки (декодирования) всех операций, входящих в состав текущей широкой команды, поступающей на его информационный вход, и выработки (формирования) сигналов запуска исполнительных устройств процессора, в том числе устройств 7-i и 8-i. КЭШ память 5 может быть выполнена как стандартное ассоциативное запоминающее устройство, предназначенное в данном случае для выборки и хранения широких команд. Блок 6 регистров может содержать как минимум 2•М регистров (М - число исполнительных устройств процессора) с объединенными управляющими и информационными входами, которые предназначены для хранения промежуточных результатов вычислений. Decoder 3, device 4, cache memory 5, block 6, devices 7-i and 8-i can be performed similarly to the corresponding processor units of the prototype (FIGS. 2 and 4 of US patent 5794029). Decoder 3 is a standard decoder designed to unpack (decode) all operations that are part of the current wide command received at its information input and generate (generate) trigger signals for executive devices of the processor, including devices 7-i and 8- i. The cache memory 5 can be performed as a standard associative storage device, designed in this case for fetching and storing wide instructions. Block 6 registers may contain at least 2 • M registers (M is the number of executive devices of the processor) with combined control and information inputs, which are designed to store intermediate results of calculations.

Устройство 4 управления также может быть выполнено как устройство управления 2 согласно патенту СССР 1804645 (Фиг.2) и обеспечивает передачу управления (переход) с текущей широкой команды на широкую команду по произвольному адресу. The control device 4 can also be implemented as a control device 2 according to the USSR patent 1804645 (Figure 2) and provides control transfer (transition) from the current wide command to a wide command at an arbitrary address.

Блок 10 может быть выполнен как в прототипе и может содержать как минимум один регистр адреса назначения, регистр маски условия (регистр, определяющий условие перехода), а также логическую схему (компаратор) проверки истинности условия перехода, причем первый вход компаратора является входом 16 блока 10, его второй вход соединен с выходом регистра маски условия, а выход компаратора соединен с управляющим входом каждого регистра адреса назначения, информационный выход которых подключен к выходу блока 10. Регистр маски может быть выполнен в виде стандартного регистра, в который по шине 17 из блока 6 через информационный вход-выход устройства 4 производится запись "0" или "1" для задания условия перехода. Информационные входы регистров адреса назначения аналогично подключены к шине 17 для занесения и хранения соответствующей адресной информации о переходе. Устройства 7-i могут содержать двунаправленный шинный формирователь, подключенный первым входом-выходом к входу-выходу 19-1, а вторым - к входу-выходу 19-2 устройства 7-i, два порта адреса (выполненные, например, как регистры), подключенные информационными входами к входу-выходу 19-2, а также сумматор адреса, подключенный входами к информационным входам портов адреса, а выходом - к входу-выходу 19-1 устройства 7-i соответственно. Двунаправленный шинный формирователь может быть выполнен в виде двух инверторов, включенных встречно-параллельно, с объединенными прямым и инверсным входами управления для обеспечения прохождения импульсов в прямом или обратном направлении. Устройства 8-i могут быть построены аналогично устройствам 7-i, за исключением шинного формирователя, который может не иметь функции двунаправленности и подключен своим информационным входом к входу-выходу 21, а информационным выходом к выходу 22 устройства 8-i соответственно. Block 10 can be performed as in the prototype and can contain at least one register of the destination address, the register of the condition mask (the register that defines the transition condition), as well as the logic circuit (comparator) for verifying the truth of the transition condition, and the first input of the comparator is input 16 of block 10 , its second input is connected to the output of the condition mask register, and the comparator output is connected to the control input of each destination address register, the information output of which is connected to the output of block 10. The mask register can be made in the form e standard register, in which on the bus 17 from block 6 through the information input-output of the device 4 is recorded "0" or "1" to specify the conditions for the transition. The information inputs of the destination address registers are similarly connected to the bus 17 for recording and storing the corresponding address information about the transition. Devices 7-i may contain a bi-directional bus driver connected by the first input-output to input-output 19-1, and the second to input-output 19-2 of device 7-i, two address ports (made, for example, as registers), connected by information inputs to input-output 19-2, as well as an address adder connected by inputs to information inputs of address ports, and output to input-output 19-1 of device 7-i, respectively. Bidirectional bus driver can be made in the form of two inverters connected counter-parallel, with combined direct and inverse control inputs to ensure the passage of pulses in the forward or reverse direction. Devices 8-i can be constructed similarly to devices 7-i, with the exception of the bus driver, which may not have a bi-directional function and is connected by its information input to input-output 21, and information output to the output 22 of device 8-i, respectively.

Устройство 9 управления прологом и эпилогом конвейеризованного цикла содержит блок 24 фиксации периода эпилога конвейеризованного цикла, блок 25 фиксации момента окончания эпилога конвейеризованного цикла, блок 26 фиксации периода пролога конвейеризованного цикла, блок 27 задания режимов работы устройства. Блок 24 содержит первый, второй и третий управляющие входы 45-1, 45-2 и 45-3 соответственно, информационный вход 46, первый и второй управляющие выходы 47-1 и 47-2 соответственно. Блок 25 содержит первый, второй и третий управляющие входы 48-1, 48-2 и 49 соответственно, информационный вход 50 и управляющий выход 51. Блок 26 содержит первый, второй и третий управляющие входы 52-1, 52-2 и 52-3 соответственно, информационный вход 53 и управляющий выход 54. Блок 27 содержит информационный вход 55, управляющий вход 56 и первый и второй управляющие выходы 57-1 и 57-2 соответственно. The prologue and epilogue control device of the conveyed cycle 9 includes a block 24 for fixing the epilogue period of the conveyed cycle, a block 25 for fixing the end time of the epilogue of the conveyed cycle, a block 26 for fixing the period of the prologue of the conveyed cycle, and a unit 27 for setting the device operation modes. Block 24 contains the first, second and third control inputs 45-1, 45-2 and 45-3, respectively, information input 46, the first and second control outputs 47-1 and 47-2, respectively. Block 25 contains the first, second and third control inputs 48-1, 48-2 and 49, respectively, the information input 50 and control output 51. Block 26 contains the first, second and third control inputs 52-1, 52-2 and 52-3 accordingly, information input 53 and control output 54. Block 27 contains information input 55, control input 56, and first and second control outputs 57-1 and 57-2, respectively.

К управляющему входу 13 устройства 9 подключены первые управляющие входы 45-1, 48-1 и 52-1 блоков 24, 25 и 26 соответственно. К информационному входу 14 устройства 9 подключены информационные входы 46, 50, 53 и 55 блоков 24, 25, 26 и 27 соответственно, вторые управляющие входы 45-2, 48-2 и 52-2 блоков 24, 25 и 26 соответственно, а также управляющий вход 56 блока 27. К выходной шине 15 устройства 9 подключены первый управляющий выход 47-1 блока 24, а также управляющие выходы 51 и 54 блоков 25 и 26 соответственно. Второй управляющий выход 47-2 блока 24 соединен с третьим управляющим входом 49 блока 25, первый управляющий выход блока 27 соединен с третьим управляющим входом 45-3 блока 24, второй управляющий выход 57-2 блока 27 соединен с третьим управляющим входом 52-3 блока 26. To the control input 13 of the device 9 is connected to the first control inputs 45-1, 48-1 and 52-1 of blocks 24, 25 and 26, respectively. The information inputs 46, 50, 53 and 55 of blocks 24, 25, 26 and 27, respectively, the second control inputs 45-2, 48-2 and 52-2 of blocks 24, 25 and 26, respectively, are connected to the information input 14 of device 9, respectively, and control input 56 of block 27. The first control output 47-1 of block 24, as well as control outputs 51 and 54 of blocks 25 and 26, respectively, are connected to the output bus 15 of device 9. The second control output 47-2 of block 24 is connected to the third control input 49 of block 25, the first control output of block 27 is connected to the third control input 45-3 of block 24, the second control output 57-2 of block 27 is connected to the third control input 52-3 of block 26.

Блок 24 фиксации периода эпилога конвейеризованного цикла содержит мультиплексор 28, регистр 29, сумматор 30, компаратор 31 и элемент И 32. Мультиплексор 28 имеет первый и второй информационные входы 58-1 и 58-2, а также управляющий вход 58-3 соответственно. Сумматор 30 имеет первый и второй управляющие входы 59-1 и 59-2, а также информационный вход 59-3 соответственно. Элемент И 32 имеет первый, второй, третий и четвертый управляющие входы 60-1, 60-2, 60-3 и 60-4 соответственно. The block 24 for fixing the period of the epilogue of the conveyed cycle contains a multiplexer 28, a register 29, an adder 30, a comparator 31, and an I 32 element. The multiplexer 28 has a first and second information inputs 58-1 and 58-2, as well as a control input 58-3, respectively. The adder 30 has a first and second control inputs 59-1 and 59-2, as well as information input 59-3, respectively. Element And 32 has a first, second, third and fourth control inputs 60-1, 60-2, 60-3 and 60-4, respectively.

К первому управляющему входу 45-1 блока 24 подключены первый и второй управляющие входы 59-1 и 59-2 сумматора 30 и первый и второй управляющие входы 60-1 и 60-2 элемента И 32, управляющий вход 58-3 мультиплексора 28 является вторым управляющим входом 45-2 блока 24, третий управляющий вход 60-3 элемента И 32 и его выход являются соответственно третьим управляющим входом 45-3 и первым управляющим выходом 47-1 блока 24, второй управляющий выход 47-2 которого подключен к выходу компаратора 31 и четвертому управляющему входу 60-4 элемента И 32, первый информационный вход 58-1 мультиплексора 28 является информационным входом 46 блока 24, информационный выход мультиплексора 28 подключен к информационному входу регистра 29, информационный выход которого подключен к информационному входу 59-3 сумматора 30, информационный выход которого подключен к информационному входу компаратора 31 и второму информационному входу 58-2 мультиплексора 28. The first and second control inputs 59-1 and 59-2 of the adder 30 and the first and second control inputs 60-1 and 60-2 of the And 32 element are connected to the first control input 45-1 of block 24, the control input 58-3 of multiplexer 28 is the second control input 45-2 of block 24, the third control input 60-3 of the And 32 element and its output are respectively the third control input 45-3 and the first control output 47-1 of block 24, the second control output 47-2 of which is connected to the output of the comparator 31 and the fourth control input 60-4 of the element And 32, the first information input 58-1 mu multiplexer 28 is an information input 46 of block 24, the information output of multiplexer 28 is connected to the information input of register 29, the information output of which is connected to information input 59-3 of adder 30, the information output of which is connected to information input of comparator 31 and second information input 58-2 of multiplexer 28.

Блок 25 фиксации момента окончания эпилога конвейеризованного цикла содержит мультиплексор 33, регистр 34, сумматор 35, компаратор 36 и элемент И 37. Мультиплексор 33 имеет первый и второй информационные входы 61-1 и 61-2, а также управляющий вход 61-3 соответственно. Сумматор 35 имеет первый, второй и третий управляющие входы 62-1, 62-2 и 62-3, а также информационный вход 62-4 соответственно. Элемент И 37 имеет первый, второй и третий управляющие входы 60-1, 60-2 и 60-3 соответственно. Block 25 fixing the end time of the epilogue of the conveyed cycle contains a multiplexer 33, a register 34, an adder 35, a comparator 36, and an I 37 element. The multiplexer 33 has first and second information inputs 61-1 and 61-2, as well as a control input 61-3, respectively. The adder 35 has a first, second and third control inputs 62-1, 62-2 and 62-3, as well as information input 62-4, respectively. Element And 37 has a first, second and third control inputs 60-1, 60-2 and 60-3, respectively.

К первому управляющему входу 48-1 блока 25 подключены первый и второй управляющие входы 62-1 и 62-2 сумматора и первый и второй управляющие входы 63-1 и 63-2 элемента И 37, выход которого является управляющим выходом 51 блока 25, ко второму управляющему 48-2 и информационному 50 входам которого подключены соответственно управляющий 61-3 и первый информационный 61-1 входы мультиплексора 33, выход которого подключен к информационному входу регистра 34, информационный выход которого подключен к информационному входу сумматора 35, информационный выход которого подключен к информационному входу компаратора 36 и второму информационному входу 61-2 мультиплексора 33, третий управляющий вход 62-3 сумматора 35 является третьим управляющим входом 49 блока 25, выход компаратора 36 подключен к третьему управляющему входу 63-3 элемента И 37. The first and second control inputs 62-1 and 62-2 of the adder and the first and second control inputs 63-1 and 63-2 of the And 37 element, the output of which is the control output 51 of the block 25, are connected to the first control input 48-1 of block 25 the second control 48-2 and information 50 inputs of which are connected respectively the control 61-3 and the first information 61-1 inputs of the multiplexer 33, the output of which is connected to the information input of the register 34, the information output of which is connected to the information input of the adder 35, the information output of which connected to the information input of the comparator 36 and the second information input 61-2 of the multiplexer 33, the third control input 62-3 of the adder 35 is the third control input 49 of the block 25, the output of the comparator 36 is connected to the third control input 63-3 of the And 37 element.

Блок 26 фиксации периода пролога конвейеризованного цикла содержит первый и второй мультиплексоры 38 и 41 соответственно, сдвиговый регистр 39, триггер 42 и элемент И 40. Первый мультиплексор 38 имеет первый и второй информационные входы 64-1 и 64-2 и управляющий вход 64-3 соответственно. Сдвиговый регистр 39 имеет первый и второй управляющие входы 65-1 и 65-2 и информационный вход 65-3 соответственно, а также имеет первый и второй информационные выходы 66-1 и 66-2 соответственно. Элемент И 40 имеет первый, второй, третий и четвертый управляющие входы 67-1, 67-2, 67-3 и 67-4 соответственно. Второй мультиплексор 41 имеет первый и второй информационные входы 68-1 и 68-2 и управляющий вход 68-3 соответственно. The block 26 for fixing the period of the prologue of the conveyed cycle contains the first and second multiplexers 38 and 41, respectively, a shift register 39, a trigger 42, and an element 40. The first multiplexer 38 has a first and second information inputs 64-1 and 64-2 and a control input 64-3 respectively. The shift register 39 has first and second control inputs 65-1 and 65-2 and information input 65-3, respectively, and also has first and second information outputs 66-1 and 66-2, respectively. Element And 40 has a first, second, third and fourth control inputs 67-1, 67-2, 67-3 and 67-4, respectively. The second multiplexer 41 has first and second information inputs 68-1 and 68-2 and control input 68-3, respectively.

К первому управляющему входу 52-1 блока 26 подключены первый и второй управляющие входы 65-1 и 65-2 сдвигового регистра 39 и первый и второй управляющие входы 67-1 и 67-2 элемента И 40 соответственно. Ко второму управляющему входу 52-2 блока 26 подключены управляющие входы 64-3 и 68-3 первого и второго мультиплексоров 38 и 41 соответственно, к информационному входу 53 блока 26 подключены первые информационные входы 64-1 и 68-1 первого и второго мультиплексоров 38 и 41, вторые информационные входы 64-2 и 68-2 которых подключены соответственно к первому и второму информационным выходам 66-1 и 66-2 сдвигового регистра 39. Информационный вход последнего соединен с выходом первого мультиплексора 38, третий управляющий вход 67-3 и выход элемента И 40 являются соответственно третьим управляющим входом 52-3 и выходом 54 блока 26, а выход второго мультиплексора 41 подключен ко входу триггера 42, выход которого подключен к четвертому управляющему входу 67-4 элемента И 40. The first and second control inputs 65-1 and 65-2 of the shift register 39 and the first and second control inputs 67-1 and 67-2 of the And 40 element are connected to the first control input 52-1 of block 26, respectively. To the second control input 52-2 of block 26, control inputs 64-3 and 68-3 of the first and second multiplexers 38 and 41 are connected, respectively, to the information input 53 of block 26, the first information inputs 64-1 and 68-1 of the first and second multiplexers 38 are connected and 41, the second information inputs 64-2 and 68-2 of which are connected respectively to the first and second information outputs 66-1 and 66-2 of the shift register 39. The information input of the latter is connected to the output of the first multiplexer 38, the third control input 67-3 and output element And 40 are respectively enno third control input 52-3 and an exit 54 the unit 26, and the output of the second multiplexer 41 is connected to the input of flip-flop 42, whose output is connected to a fourth control input 40 of the AND 67-4.

Блок 27 задания режима работы содержит первый и второй регистры 43 и 44 соответственно. Информационные входы 69-1 и 70-1 регистров 43 и 44 подключены к информационному входу 55 блока 27, управляющие входы 69-2 и 70-2 регистров 43 и 44 подключены к управляющему входу 56 блока 27. Первым управляющим выходом 57-1 блока 27 является выход второго регистра 44, вторым управляющим выходом 57-2 блока 27 является выход первого регистра 43. The operation mode setting unit 27 comprises first and second registers 43 and 44, respectively. Information inputs 69-1 and 70-1 of registers 43 and 44 are connected to the information input 55 of block 27, control inputs 69-2 and 70-2 of registers 43 and 44 are connected to control input 56 of block 27. The first control output 57-1 of block 27 is the output of the second register 44, the second control output 57-2 of block 27 is the output of the first register 43.

Синхронизация всех устройств и блоков системы осуществляется от однофазного генератора тактовой частоты, который, как и цепи синхронизации, не показан на чертежах. Synchronization of all devices and system blocks is carried out from a single-phase clock generator, which, like the synchronization circuit, is not shown in the drawings.

Работа системы
В исходном состоянии код программы, содержащий конвейеризованный цикл, находится в оперативной памяти 2 многопроцессорной вычислительной системы. Исполнение программы начинается с загрузки широких команд из оперативной памяти 2 по шине 23 связи с оперативной памятью в один из процессоров 1-i широкого командного слова. Считанные из оперативной памяти 2 широкие команды заносятся в КЭШ память 5 широких команд. Выдача команд из КЭШ памяти 5 на информационный вход 11-1 дешифратора 3 широких команд осуществляется в порядке возрастания адресов команд. Дешифратор 3 осуществляет распаковку операций, закодированных в текущей широкой команде, в частности операций считывания и записи в память, а также операций перехода. При этом на выходной шине 12 дешифратора 3 вырабатываются высокие уровни сигналов запуска устройств 7-i считывания из оперативной памяти 2, устройств 8-i записи в оперативную память 2 и блока 10 выдачи адреса перехода соответственно, которые поступают на управляющий вход 13 устройства 9.
System operation
In the initial state, the program code containing the pipelined loop is located in the RAM 2 of the multiprocessor computing system. The execution of the program begins with the loading of wide instructions from the RAM 2 via the communication bus 23 with the RAM into one of the processors 1-i of the wide instruction word. The 2 wide commands read from the RAM are stored in the cache memory of the 5 wide commands. The issuance of commands from the cache 5 memory to the information input 11-1 of the decoder 3 wide commands is carried out in ascending order of the addresses of the commands. The decoder 3 decompresses the operations encoded in the current wide command, in particular, read and write operations in memory, as well as transition operations. At the same time, on the output bus 12 of the decoder 3, high levels of triggering signals of the reading devices 7-i from the main memory 2, the devices 8-i of writing to the main memory 2 and the block 10 for outputting the transition address, respectively, which are received at the control input 13 of the device 9, are generated.

Если текущая широкая команда не относится к телу конвейеризованного цикла, сигналы запуска устройств 7-i, 8-i и блока 10 не блокируются устройством 9 и появляются на его выходной шине 15, разрешая выполнение соответствующих операций. В частности, при выполнении операции считывания из оперативной памяти 2 запускается одно из устройств 7-i. Высокий уровень сигнала на управляющем входе 18 данного устройства разрешает считывание адресных операндов из входных портов адреса, суммирование их в адресном сумматоре и выдачу адреса с его выхода через информационный вход-выход 19-1 устройства 7-i на шину 23. В момент поступления данных, считанных по указанному адресу из оперативной памяти 2, двунаправленный шинный формирователь переключается на прием и осуществляет передачу данных с входа-выхода 19-1 на вход-выход 19-2 устройства 7-i и последующую запись их в блок 6 для дальнейшей обработки. If the current wide command does not apply to the body of the conveyed cycle, the triggering signals of devices 7-i, 8-i and block 10 are not blocked by device 9 and appear on its output bus 15, allowing the execution of the corresponding operations. In particular, when performing a read operation from RAM 2, one of the devices 7-i is started. A high signal level at the control input 18 of this device allows reading address operands from the address input ports, summing them in the address adder and outputting the address from its output through the information input-output 19-1 of device 7-i to bus 23. At the time of receipt of data, read at the specified address from RAM 2, the bi-directional bus driver switches to reception and transfers data from input-output 19-1 to input-output 19-2 of device 7-i and their subsequent recording in block 6 for further processing.

При выполнении операции записи в оперативную память 2 запускается одно из устройств 8-i. Высокий уровень сигнала на управляющем входе 20 данного устройства разрешает считывание адресных операндов из входных портов адреса, суммирование их в адресном сумматоре и выдачу адреса с его выхода через информационный выход 22 устройства 8-i на шину 23. Одновременно с суммированием адреса шинный формирователь получает на свой вход из блока 6 через информационный вход-выход 21 устройства данные на запись, которые с его выхода поступают на шину 23 через информационный выход 22 устройства 8-i вслед за адресом. When performing a write operation to RAM 2, one of the 8-i devices is launched. A high signal level at the control input 20 of this device allows the reading of address operands from the address input ports, summing them in the address adder and issuing the address from its output through the information output 22 of device 8-i to bus 23. At the same time as summing the address, the bus driver receives the input from block 6 through the information input-output 21 of the device records data that from its output goes to the bus 23 through the information output 22 of the device 8-i after the address.

Работа устройства 4 возможна в двух режимах (см. Фиг.5) в зависимости от кода операции: подготовка передачи управления или собственно передача управления. При подготовке передачи управления устройство 4 обеспечивает запись адреса перехода и маски условия, поступающих в устройство 4 с шины 17, в соответствующие регистры блока 10. При этом дальнейшее выполнение программы продолжится с декодирования следующей широкой команды в дешифраторе 3. The operation of the device 4 is possible in two modes (see Figure 5), depending on the operation code: preparation of the transfer of control or the actual transfer of control. In preparation for the transfer of control, the device 4 provides a record of the transition address and the mask of the condition arriving at the device 4 from the bus 17 in the corresponding registers of block 10. In this case, further execution of the program will continue with the decoding of the next wide command in decoder 3.

При выполнении операции передачи управления (перехода) устройство 4 разрешает работу блока 10. Высокий уровень сигнала на управляющем входе 16 сравнивается компаратором блока 10 со значением, находящимся в регистре маски условия. Совпадение логических уровней на входе компаратора означает истинность условия перехода. Компаратор разрешает выдачу адреса перехода с одного из регистров адресов назначения блока 10 на его выход, связанный с управляющим входом 11-2 дешифратора 3. При этом на дешифрацию поступит широкая команда по указанному адресу назначения, а дальнейшее исполнение команд пойдет в порядке возрастания адресов до следующей команды перехода. When performing the operation of transferring control (transition), device 4 enables the operation of unit 10. A high signal level at control input 16 is compared by the comparator of unit 10 with the value in the condition mask register. The coincidence of the logical levels at the input of the comparator means the truth of the transition condition. The comparator allows the transfer address from one of the destination address registers of block 10 to be output to its output associated with the control input 11-2 of the decoder 3. At the same time, a wide command will be sent to the decryption at the specified destination address, and further execution of the commands will go in ascending order of addresses until the next transition teams.

Перед началом выполнения тела конвейеризованного цикла устройство 9 находится в следующем состоянии. В регистр 29 записано число повторений N исходного цикла по алгоритму программы. В регистр 34 записано число стадий конвейера цикла без единицы (S-1). В сдвиговом регистре 39 находится число следующего вида: бит с номером, соответствующим числу стадий S конвейера цикла, равен "1", остальные биты равны "0". Однобитовые регистры 43 и 44 содержат "1". Запись в регистры 29, 34, 39, 43 и 44 осуществляется при наличии данных на информационном входе 14 устройства 9 и высокого уровня сигнала на управляющих входах 45-2, 48-2, 52-2 и 56. Указанные регистры являются программно доступными и при помощи команд записи в регистры процессора должны быть проинициализированы в ходе работы программы до начала конвейеризованного цикла. Сигналы ЗС (запрет считываний) на выходе 47-1, КЦ (конец цикла) на выходе 51 и РЗ (разрешение записей) на выходе 54 устройства 9 до начала работы цикла имеют низкий уровень. Before starting the execution of the body of the conveyed cycle, the device 9 is in the following state. In the register 29 recorded the number of repetitions N of the original cycle according to the algorithm of the program. In the register 34 recorded the number of stages of the pipeline conveyor without unit (S-1). The shift register 39 contains a number of the following form: a bit with a number corresponding to the number of stages S of the loop pipeline is “1”, the remaining bits are “0”. Single-bit registers 43 and 44 contain "1". Record in the registers 29, 34, 39, 43 and 44 is carried out if there is data on the information input 14 of the device 9 and a high signal level at the control inputs 45-2, 48-2, 52-2 and 56. These registers are programmatically accessible even using instructions, writes to processor registers must be initialized during program operation before the start of the pipelined cycle. The signals ZS (prohibition of readings) at the output 47-1, CC (end of the cycle) at the output 51 and RE (resolution of records) at the output 54 of the device 9 before the start of the cycle are low.

Широкие команды тела цикла поступают для исполнения из КЭШ памяти 5 в дешифратор 3 в порядке возрастания адресов команд. Естественный порядок исполнения команд изменяется в случае срабатывания блока 10, выдающего адрес команды, на которую выполняется передача управления (переход). В частности, в последней команде тела цикла содержится переход на первую команду тела цикла. Wide commands of the body of the loop are received for execution from the cache of memory 5 to the decoder 3 in ascending order of the addresses of the commands. The natural order of execution of commands is changed in case of operation of block 10, issuing the address of the command to which the transfer of control (transition) is performed. In particular, the last command of the cycle body contains a transition to the first command of the cycle body.

При декодировании команд тела цикла дешифратор 3 вырабатывает высокий уровень сигнала РЦ (режим цикла), поступающий на входы 59-1, 62-1 и 65-1 сумматоров 30, 35 и сдвигового регистра 39 соответственно. По сигналу КС (конец стадии), вырабатываемому дешифратором 3 при обнаружении команды перехода в конце тела цикла и поступающему на входы 59-2, 62-2 и 65-2 сумматоров 30, 35 и сдвигового регистра 39 соответственно, сумматоры 30 и 35 вычитают "1" из величины, находящейся в регистрах 29 и 34 соответственно, а значение в сдвиговом регистре 39 сдвигается на один бит вправо. При этом старший бит регистра 39 принимает значение "0". When decoding the commands of the body of the cycle, the decoder 3 generates a high level of the RC signal (cycle mode), which is supplied to the inputs 59-1, 62-1, and 65-1 of the adders 30, 35 and the shift register 39, respectively. According to the signal of the COP (the end of the stage), generated by the decoder 3 upon detection of the transition command at the end of the cycle body and arriving at the inputs 59-2, 62-2 and 65-2 of the adders 30, 35 and the shift register 39, respectively, the adders 30 and 35 subtract " 1 "from the value found in registers 29 and 34, respectively, and the value in the shift register 39 is shifted one bit to the right. In this case, the high bit of register 39 takes the value "0".

По мере выполнения стадий конвейеризованнного цикла единица, записанная в исходном состоянии в разряде S сдвигового регистра 39, перемещается к младшему значащему разряду. По истечении S-1 периодов сигнала КС младший разряд сдвигового регистра 39 принимает значение "1", что соответствует окончанию периода пролога конвейеризованного цикла. В этот момент триггер 42 переключается и элемент И 40 вырабатывает на выходе 54 высокий уровень сигнала РЗ (разрешение записей). Сигнал с выхода 54 по выходной шине 15 устройства 9 поступает на управляющий вход устройств 8-i, разрешая их работу в обычном режиме по истечении периода пролога конвейеризованного цикла. As the stages of the conveyed cycle are completed, the unit recorded in the initial state in bit S of the shift register 39 moves to the least significant bit. After S-1 periods of the CS signal have elapsed, the least significant bit of the shift register 39 takes the value "1", which corresponds to the end of the prologue period of the conveyed cycle. At this point, the trigger 42 is switched and the element And 40 generates at the output 54 a high level of the signal RH (resolution records). The signal from the output 54 through the output bus 15 of the device 9 is fed to the control input of the devices 8-i, allowing them to work in normal mode after the prologue period of the conveyed cycle.

По истечении N периодов сигнала КС значение на выходе сумматора 30 становится равным "0". В этот момент, соответствующий началу периода эпилога конвейеризованного цикла, срабатывает компаратор 31 и элемент И 32 выдает высокий уровень сигнала ЗС на выходе 47-1, который с выхода 47-1 по выходной шине 15 устройства 9 поступает на управляющий вход устройств 7-i, запрещая их работу на период эпилога конвейеризованного цикла. After N periods of the CS signal, the value at the output of the adder 30 becomes equal to "0". At this moment, corresponding to the beginning of the period of the epilogue of the conveyed cycle, the comparator 31 is activated and the And 32 element gives a high level of the signal ZS at the output 47-1, which from the output 47-1 on the output bus 15 of the device 9 goes to the control input of the devices 7-i, forbidding their work for the period of the epilogue of the conveyed cycle.

После срабатывания компаратора 31 начинает работать сумматор 35, который отсчитывает стадии эпилога конвейеризованного цикла. По истечении еще S-1 периодов сигнала КС значение на информационном входе компаратора 36 становится равным "0" и он срабатывает. Элемент И 37 при этом вырабатывает высокий уровень сигнала КЦ, поступающий с выхода 51 по выходной шине 15 устройства 9 на вход блока 10, который не выдает в данном случае адрес первой команды тела цикла и управление передается на команду, следующую за телом цикла. Выполнение конвейеризованного цикла заканчивается. After the comparator 31 is activated, the adder 35 starts to work, which counts the stages of the epilogue of the conveyed cycle. After another S-1 CS signal periods have elapsed, the value at the information input of the comparator 36 becomes "0" and it is triggered. In this case, the And 37 element generates a high level of the CC signal, coming from the output 51 via the output bus 15 of the device 9 to the input of the block 10, which in this case does not give out the address of the first command of the loop body and control is transferred to the command following the loop body. The execution of the pipelined loop ends.

Таким образом, расширение функциональных возможностей системы управления конвейеризованным циклом, например, для нескольких переходов в теле цикла или нескольких параллельно работающих устройств записи и считывания оперативной памяти позволяет сохранить высокое быстродействие, так как не требует использования дополнительных критических цепей в устройстве управления, определяющих тактовую частоту процессора в составе многопроцессорной вычислительной системы. Thus, the expansion of the functionality of the conveyerized cycle control system, for example, for several transitions in the loop body or several parallel working memory recording and reading devices, allows maintaining high speed, since it does not require the use of additional critical circuits in the control device that determine the processor clock frequency as part of a multiprocessor computing system.

Claims (5)

1. Система управления процессора широкого командного слова, выполняющего конвейеризованный цикл вычислений, содержащая КЭШ память широких команд, блок регистров, дешифратор широких команд, устройство управления, блок выдачи адреса перехода, как минимум одно устройство считывания из оперативной памяти, как минимум одно устройство записи в оперативную память, причем информационный вход КЭШ памяти команд, первые входы-выходы устройств считывания из оперативной памяти и выходы устройств записи в оперативную память подключены к шине оперативной памяти, информационный выход КЭШ памяти широких команд подключен к информационному входу дешифратора широких команд, управляющий вход которого подключен к выходу блока выдачи адреса перехода, блок регистров связан двунаправленной шиной данных с информационным входом-выходом устройства управления, со вторыми информационными входами-выходами устройств считывания из оперативной памяти и с информационными входами выходами устройств записи в оперативную память, отличающаяся тем, что введено устройство управления прологом и эпилогом конвейеризованного цикла, подключенное управляющим входом к выходной шине дешифратора широких команд, информационным входом - к двунаправленной шине данных блока регистров, а устройства считывания из оперативной памяти, записи в оперативную память и блок выдачи адреса перехода подключены управляющими входами к выходной шине устройства управления прологом и эпилогом конвейеризованного цикла, при этом устройство управления прологом и эпилогом конвейеризованного цикла содержит блок фиксации периода эпилога конвейеризованного цикла, блок фиксации момента окончания эпилога конвейеризованного цикла, блок фиксации периода пролога конвейеризованного цикла, блок задания режимов работы устройства управления прологом и эпилогом конвейеризованного цикла, причем первые управляющие входы блока фиксации периода эпилога конвейеризованного цикла, блока фиксации момента окончания эпилога конвейеризованного цикла и блока фиксации периода пролога конвейеризованного цикла подключены к управляющему входу устройства управления прологом и эпилогом конвейеризованного цикла, второй управляющий и информационный входы блока фиксации периода эпилога конвейеризованного цикла, блока фиксации момента окончания эпилога конвейеризованного цикла, блока фиксации периода пролога конвейеризованного цикла, информационный и управляющий входы блока задания режимов работы подключены к информационному входу устройства управления прологом и эпилогом конвейеризованного цикла, первый управляющий выход блока фиксации периода эпилога конвейеризованного цикла, управляющий выход блока фиксации момента окончания эпилога конвейеризованного цикла и управляющий выход блока фиксации периода пролога конвейеризованного цикла подключены к выходной шине устройства управления прологом и эпилогом конвейеризованного цикла, второй управляющий выход блока фиксации периода эпилога конвейеризованного цикла подключен к третьему управляющему входу блока фиксации момента окончания эпилога конвейеризованного цикла, первый и второй управляющие выходы блока задания режимов работы устройства управления прологом и эпилогом конвейеризованного цикла подключены к третьим управляющим входам блока фиксации периода эпилога конвейеризованного цикла и блока фиксации периода пролога конвейеризованного цикла. 1. The control system of the processor of a wide command word, performing a pipelined cycle of calculations, containing a cache of wide commands, a register block, a decoder of wide commands, a control device, a block for issuing a transition address, at least one reader from RAM, at least one write device to RAM, moreover, the information input of the instruction cache cache, the first inputs and outputs of the readers from the RAM and the outputs of the recorders into the RAM are connected to the bus Of the true memory, the information output of the wide command cache is connected to the information input of the wide command decoder, the control input of which is connected to the output of the transition address issuing unit, the register block is connected by a bi-directional data bus with the information input-output of the control device, with the second information inputs and outputs of the reader from RAM and with information inputs, outputs of recording devices into RAM, characterized in that a prolog and epilo control device is introduced the loop of the conveyed cycle, connected by the control input to the output bus of the wide command decoder, by the information input - to the bi-directional data bus of the register block, and the readers from the main memory, write to the RAM and the output address transition block are connected by the control inputs to the output bus of the prolog control device and an epilogue of the conveyed cycle, while the prolog and epilogue control device of the conveyed cycle contains a block for fixing the period of the epilogue of the conveyed cycle la, block fixing the end time of the pipelined loop epilogue, block fixing the prologue period of the conveyed cycle, block setting the operating modes of the prolog and epilogue control system of the conveyed cycle, the first control inputs of the block fixing the period of the epilogue of the conveyed cycle, block fixing the end time of the epilogue of the conveyed cycle and the fixing block the prologue period of the pipelined loop is connected to the control input of the prologue and epilogue control device of the pipelined loop a, the second control and information inputs of the block for fixing the epilogue of the conveyed cycle, the block for fixing the end time of the epilogue of the conveyed cycle, the block for fixing the period of the prologue of the conveyed cycle, the information and control inputs of the block for specifying operating modes are connected to the information input of the control device for the prolog and epilogue of the conveyed cycle control output of the block of fixation of the epilogue period of the conveyed cycle, control output of the block of fixation of the moment of the end of the epilogue the conveyed cycle and the control output of the block of fixation of the prolog period of the conveyed cycle are connected to the output bus of the prolog and epilogue of the conveyed cycle, the second control output of the block of the block of the epilogue of the conveyed cycle is connected to the third control input of the block of fixation of the moment of the end of the epilogue of the conveyed cycle, the first and second control outputs unit for setting the operating modes of the prolog and epilogue control of the conveyed cycle are connected to tim control inputs of block fixation period pipelined loop epilogue and prologue block fixation period pipelined cycle. 2. Система по п. 1, отличающаяся тем, что блок фиксации периода эпилога конвейеризованного цикла содержит мультиплексор, регистр, сумматор, компаратор и элемент И, причем к первому управляющему входу блока подключены первые и вторые управляющие входы сумматора и элемента И, управляющий вход мультиплексора является вторым управляющим входом блока, третий управляющий вход элемента И и его выход являются соответственно третьим управляющим входом и первым управляющим выходом блока, второй управляющий выход которого подключен к выходу компаратора и четвертому управляющему входу элемента И, первый информационный вход мультиплексора является информационным входом блока, информационный выход мультиплексора подключен к информационному входу регистра, информационный выход которого подключен к информационному входу сумматора, который осуществляет вычитание единицы из величины, находящейся в регистре, при этом информационный выход сумматора подключен к информационному входу компаратора и второму информационному входу мультиплексора. 2. The system according to claim 1, characterized in that the block for fixing the period of the epilogue of the conveyed cycle contains a multiplexer, a register, an adder, a comparator, and an I element, with the first and second control inputs of the adder and the And element controlling the input of the multiplexer connected to the first control input of the block is the second control input of the block, the third control input of the element And and its output are respectively the third control input and the first control output of the block, the second control output of which is connected to the output of the compar at the input and the fourth control input of the And element, the first information input of the multiplexer is the information input of the unit, the information output of the multiplexer is connected to the information input of the register, the information output of which is connected to the information input of the adder, which subtracts the unit from the value in the register, while the information output the adder is connected to the information input of the comparator and the second information input of the multiplexer. 3. Система по п. 1, отличающаяся тем, что блок фиксации момента окончания эпилога конвейеризованного цикла содержит мультиплексор, регистр, сумматор, компаратор и элемент И, причем к первому управляющему входу блока подключены первые и вторые управляющие входы сумматора и элемента И, выход которого является управляющим выходом блока, ко второму управляющему и информационному входам которого подключены соответственно управляющий и первый информационный входы мультиплексора, выход которого подключен к информационному входу регистра, информационный выход которого подключен к информационному входу сумматора, который осуществляет вычитание единицы из величины, находящейся в регистре, при этом информационный выход сумматора подключен к информационному входу компаратора и второму информационному входу мультиплексора, третий управляющий вход сумматора является третьим управляющим входом блока, выход компаратора подключен к третьему управляющему входу элемента И. 3. The system according to claim 1, characterized in that the unit for fixing the moment of completion of the epilogue of the conveyed cycle contains a multiplexer, register, adder, comparator and element And, moreover, the first and second control inputs of the adder and element And, the output of which is connected to the first control input of the block is the control output of the unit, to the second control and information inputs of which the control and first information inputs of the multiplexer are connected, the output of which is connected to the information input of the register, inf whose output is connected to the information input of the adder, which subtracts a unit from the value in the register, while the information output of the adder is connected to the information input of the comparator and the second information input of the multiplexer, the third control input of the adder is the third control input of the unit, the output of the comparator is connected to third control input element I. 4. Система по п. 1, отличающаяся тем, что блок фиксации периода пролога конвейеризованного цикла содержит первый и второй мультиплексоры, сдвиговый регистр, триггер и элемент И, причем к первому управляющему входу блока подключены первые и вторые управляющие входы сдвигового регистра и элемента И, ко второму управляющему входу блока подключены управляющие входы первого и второго мультиплексоров, к информационному входу блока подключены первые информационные входы первого и второго мультиплексоров, вторые информационные входы которых подключены к первому и второму информационным выходам сдвигового регистра, информационный вход которого соединен с выходом первого мультиплексора, третий управляющий вход и выход элемента И являются соответственно третьим управляющим входом и выходом блока, а выход второго мультиплексора подключен ко входу триггера, выход которого подключен к четвертому управляющему входу элемента И. 4. The system according to p. 1, characterized in that the block fixing the period of the prologue of the conveyed cycle contains the first and second multiplexers, a shift register, a trigger and an element And, moreover, the first and second control inputs of the shift register and the element And are connected to the first control input of the block, control inputs of the first and second multiplexers are connected to the second control input of the block, the first information inputs of the first and second multiplexers are connected to the information input of the block, the second information inputs of which are connected to the first and second information outputs of the shift register, the information input of which is connected to the output of the first multiplexer, the third control input and the output of the element And are respectively the third control input and output of the unit, and the output of the second multiplexer is connected to the input of the trigger, the output of which is connected to the fourth control input element I. 5. Система по п. 1, отличающаяся тем, что блок задания режима работы содержит первый и второй регистры, причем информационные входы первого и второго регистров подключены к информационному входу блока, управляющие входы первого и второго регистров подключены к управляющему входу блока, первым и вторым управляющими выходами которого являются выход второго и выход первого регистров соответственно. 5. The system according to claim 1, characterized in that the operation mode setting unit comprises first and second registers, wherein the information inputs of the first and second registers are connected to the information input of the unit, the control inputs of the first and second registers are connected to the control input of the unit, the first and second whose control outputs are the output of the second and the output of the first registers, respectively.
RU2001114929/09A 2001-06-04 2001-06-04 System for controlling conveyor cycle of large instruction word processor RU2184389C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2001114929/09A RU2184389C1 (en) 2001-06-04 2001-06-04 System for controlling conveyor cycle of large instruction word processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2001114929/09A RU2184389C1 (en) 2001-06-04 2001-06-04 System for controlling conveyor cycle of large instruction word processor

Publications (1)

Publication Number Publication Date
RU2184389C1 true RU2184389C1 (en) 2002-06-27

Family

ID=20250285

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2001114929/09A RU2184389C1 (en) 2001-06-04 2001-06-04 System for controlling conveyor cycle of large instruction word processor

Country Status (1)

Country Link
RU (1) RU2184389C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2816094C1 (en) * 2024-01-18 2024-03-26 Акционерное общество "МЦСТ" Vliw processor with additional preparation pipeline and transition predictor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2816094C1 (en) * 2024-01-18 2024-03-26 Акционерное общество "МЦСТ" Vliw processor with additional preparation pipeline and transition predictor
RU2820021C1 (en) * 2024-02-09 2024-05-28 Акционерное общество "МЦСТ" Method for pipeline processing of instructions for computer with vliw processor and optimizing compiler and computer for implementing method

Similar Documents

Publication Publication Date Title
JP3098071B2 (en) Computer system for efficient execution of programs with conditional branches
US5293500A (en) Parallel processing method and apparatus
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
US5450560A (en) Pointer for use with a buffer and method of operation
KR0133238B1 (en) Computer processing system and instruction execution method
US5299321A (en) Parallel processing device to operate with parallel execute instructions
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
JPS6351287B2 (en)
JPH0622035B2 (en) Vector processor
JP2008181551A (en) Vector tailgating for computer provided with vector register
RU2375768C2 (en) Processor and method of indirect reading and recording into register
GB2293670A (en) Instruction cache
US4639866A (en) Pipelined data processing apparatus
KR19990013383A (en) Method and apparatus for address pipeline in pipeline machine
US4958274A (en) System with a N stages timing silo and P stages information silo for soloing information
US5907693A (en) Autonomously cycling data processing architecture
US20050102659A1 (en) Methods and apparatus for setting up hardware loops in a deeply pipelined processor
US5715425A (en) Apparatus and method for prefetching data into an external cache
US4430708A (en) Digital computer for executing instructions in three time-multiplexed portions
US3480917A (en) Arrangement for transferring between program sequences in a data processor
US4896264A (en) Microprocess with selective cache memory
RU2184389C1 (en) System for controlling conveyor cycle of large instruction word processor
EP0797803B1 (en) Chunk chaining for a vector processor
US5363490A (en) Apparatus for and method of conditionally aborting an instruction within a pipelined architecture
EP0292188B1 (en) Cache system

Legal Events

Date Code Title Description
PC4A Invention patent assignment

Effective date: 20060404

MM4A The patent is invalid due to non-payment of fees

Effective date: 20110605

NF4A Reinstatement of patent

Effective date: 20130110