RU2184389C1 - System for controlling conveyor cycle of large instruction word processor - Google Patents
System for controlling conveyor cycle of large instruction word processor Download PDFInfo
- 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
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
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
Система управления конвейеризованным циклом процессора широкого командного слова является составной частью многопроцессорной вычислительной системы, которая включает процессоры 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
Кроме того, система содержит двунаправленную шину 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
Дешифратор 3, устройство 4, КЭШ память 5, блок 6, устройства 7-i и 8-i могут быть выполнены аналогично соответствующим блокам процессора прототипа (Фиг.2 и 4 патента США 5794029). Дешифратор 3 представляет собой стандартный дешифратор, предназначенный для распаковки (декодирования) всех операций, входящих в состав текущей широкой команды, поступающей на его информационный вход, и выработки (формирования) сигналов запуска исполнительных устройств процессора, в том числе устройств 7-i и 8-i. КЭШ память 5 может быть выполнена как стандартное ассоциативное запоминающее устройство, предназначенное в данном случае для выборки и хранения широких команд. Блок 6 регистров может содержать как минимум 2•М регистров (М - число исполнительных устройств процессора) с объединенными управляющими и информационными входами, которые предназначены для хранения промежуточных результатов вычислений.
Устройство 4 управления также может быть выполнено как устройство управления 2 согласно патенту СССР 1804645 (Фиг.2) и обеспечивает передачу управления (переход) с текущей широкой команды на широкую команду по произвольному адресу. The
Блок 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 соответственно.
Устройство 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
К управляющему входу 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
Блок 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
К первому управляющему входу 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
Блок 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 соответственно.
К первому управляющему входу 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
Блок 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
К первому управляющему входу 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
Блок 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
Синхронизация всех устройств и блоков системы осуществляется от однофазного генератора тактовой частоты, который, как и цепи синхронизации, не показан на чертежах. 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
Если текущая широкая команда не относится к телу конвейеризованного цикла, сигналы запуска устройств 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
При выполнении операции записи в оперативную память 2 запускается одно из устройств 8-i. Высокий уровень сигнала на управляющем входе 20 данного устройства разрешает считывание адресных операндов из входных портов адреса, суммирование их в адресном сумматоре и выдачу адреса с его выхода через информационный выход 22 устройства 8-i на шину 23. Одновременно с суммированием адреса шинный формирователь получает на свой вход из блока 6 через информационный вход-выход 21 устройства данные на запись, которые с его выхода поступают на шину 23 через информационный выход 22 устройства 8-i вслед за адресом. When performing a write operation to
Работа устройства 4 возможна в двух режимах (см. Фиг.5) в зависимости от кода операции: подготовка передачи управления или собственно передача управления. При подготовке передачи управления устройство 4 обеспечивает запись адреса перехода и маски условия, поступающих в устройство 4 с шины 17, в соответствующие регистры блока 10. При этом дальнейшее выполнение программы продолжится с декодирования следующей широкой команды в дешифраторе 3. The operation of the
При выполнении операции передачи управления (перехода) устройство 4 разрешает работу блока 10. Высокий уровень сигнала на управляющем входе 16 сравнивается компаратором блока 10 со значением, находящимся в регистре маски условия. Совпадение логических уровней на входе компаратора означает истинность условия перехода. Компаратор разрешает выдачу адреса перехода с одного из регистров адресов назначения блока 10 на его выход, связанный с управляющим входом 11-2 дешифратора 3. При этом на дешифрацию поступит широкая команда по указанному адресу назначения, а дальнейшее исполнение команд пойдет в порядке возрастания адресов до следующей команды перехода. When performing the operation of transferring control (transition),
Перед началом выполнения тела конвейеризованного цикла устройство 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
Широкие команды тела цикла поступают для исполнения из КЭШ памяти 5 в дешифратор 3 в порядке возрастания адресов команд. Естественный порядок исполнения команд изменяется в случае срабатывания блока 10, выдающего адрес команды, на которую выполняется передача управления (переход). В частности, в последней команде тела цикла содержится переход на первую команду тела цикла. Wide commands of the body of the loop are received for execution from the cache of
При декодировании команд тела цикла дешифратор 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
По мере выполнения стадий конвейеризованнного цикла единица, записанная в исходном состоянии в разряде 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
По истечении 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
После срабатывания компаратора 31 начинает работать сумматор 35, который отсчитывает стадии эпилога конвейеризованного цикла. По истечении еще S-1 периодов сигнала КС значение на информационном входе компаратора 36 становится равным "0" и он срабатывает. Элемент И 37 при этом вырабатывает высокий уровень сигнала КЦ, поступающий с выхода 51 по выходной шине 15 устройства 9 на вход блока 10, который не выдает в данном случае адрес первой команды тела цикла и управление передается на команду, следующую за телом цикла. Выполнение конвейеризованного цикла заканчивается. After the
Таким образом, расширение функциональных возможностей системы управления конвейеризованным циклом, например, для нескольких переходов в теле цикла или нескольких параллельно работающих устройств записи и считывания оперативной памяти позволяет сохранить высокое быстродействие, так как не требует использования дополнительных критических цепей в устройстве управления, определяющих тактовую частоту процессора в составе многопроцессорной вычислительной системы. 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)
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)
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 |
-
2001
- 2001-06-04 RU RU2001114929/09A patent/RU2184389C1/en active IP Right Revival
Cited By (2)
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 |