RU2519387C2 - Method and apparatus for supporting alternative computations in reconfigurable system-on-chip - Google Patents
Method and apparatus for supporting alternative computations in reconfigurable system-on-chip Download PDFInfo
- Publication number
- RU2519387C2 RU2519387C2 RU2012133011/08A RU2012133011A RU2519387C2 RU 2519387 C2 RU2519387 C2 RU 2519387C2 RU 2012133011/08 A RU2012133011/08 A RU 2012133011/08A RU 2012133011 A RU2012133011 A RU 2012133011A RU 2519387 C2 RU2519387 C2 RU 2519387C2
- Authority
- RU
- Russia
- Prior art keywords
- processor element
- alternative
- data processing
- input
- processing unit
- Prior art date
Links
Images
Landscapes
- Logic Circuits (AREA)
Abstract
Description
ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY
Изобретение относится к области микроэлектроники и вычислительной техники, в частности к вычислительным системам-на-кристалле на основе архитектуры реконфигурируемых вычислительных сред, и может быть использовано для построения высокопроизводительных вычислительных систем для обработки потоков данных в режиме реального времени и для обработки больших массивов данных.The invention relates to the field of microelectronics and computing, in particular to on-chip computing systems based on the architecture of reconfigurable computing environments, and can be used to build high-performance computing systems for processing data streams in real time and for processing large amounts of data.
УРОВЕНЬ ТЕХНИКИBACKGROUND
Направление однородных вычислительных сред (структур) получило дополнительные возможности развития по мере совершенствования развития технологий производства систем - на - кристалле, позволяющих значительно повысить степень интеграции - до сотен миллионов логических вентилей на одном кристалле.The direction of homogeneous computing environments (structures) has received additional development opportunities as the development of technologies for the production of systems - on - chip has improved, which can significantly increase the degree of integration - up to hundreds of millions of logic gates on a single chip.
В общем случае реконфигурируемая вычислительная система-на-кристалле (РСНК) представляет собой матрицу процессорных элементов (ячеек) с межпроцессорными связями между ближайшими процессорными элементами (ячейками) и возможно с глобальными межпроцессорными связями в матрице. При этом каждый процессорный элемент матрицы может выполнять заданный набор функций из заданного множества возможных функций над операндами, поступающими на заданные входы из множества всех входов процессорного элемента, и выдавать выходные данные на заданные выходы из множества всех выходов процессорного элемента. В общем случае функции процессорного элемента могут включать, в том числе, функции обработки данных - логические и арифметические функциональные операторы над одним, двумя, тремя или больше входными операндами, функции хранения входных, внутренних и выходных данных и функции передачи входных данных с заданных входов процессорного элемента на заданные выходы - функции транзита данных.In the general case, a reconfigurable computing system-on-chip (RSNA) is a matrix of processor elements (cells) with interprocessor communications between the nearest processor elements (cells) and possibly with global interprocessor communications in the matrix. In this case, each processor element of the matrix can perform a given set of functions from a given set of possible functions on operands arriving at given inputs from the set of all inputs of the processor element, and provide output data to given outputs from the set of all outputs of the processor element. In the general case, the functions of a processor element can include, but are not limited to, data processing functions — logical and arithmetic functional operators on one, two, three, or more input operands, functions for storing input, internal and output data, and functions for transmitting input data from specified processor inputs element to given outputs - data transit functions.
Для реализации конкретного вычислительного алгоритма в необходимом для этого подмножестве ячеек матрицы РСНК настраиваются межпроцессорные связи и необходимые функции используемых ячеек. Заданный набор функций из множества возможных функций, используемый в конкретном процессорном элементе для реализации прикладного алгоритма, определяется ее настройкой. Битовые поля процессорного элемента управляют конкретным аппаратным ресурсом процессорного элемента - входным коммутатором для выбора входов процессорного элемента для приема входных операндов, блоком обработки данных для задания функционального оператора, блоком хранения данных, выходным коммутатором для выбора выходов процессорного элемента, на которые передаются результаты вычислений, и т.д. Для настройки процессорного элемента на выполнение заданного набора функций используется регистр настройки, в который при процедуре конфигурировании матрицы РСНК загружается соответствующий код настройки процессорного элемента. Таким образом, загружая соответствующие настройки в соответствующее подмножество (множество) ячеек достигается конфигурирование РСНК на выполнение заданного прикладного алгоритма. Для реализации вычислений по другому прикладному алгоритму должны быть загружены другие настройки в общем случае в другое подмножество ячеек матрицы, что обеспечивает таким образом реконфигурирование вычислительной системы.To implement a specific computational algorithm in the required subset of cells of the RSNA matrix, interprocessor communications and the necessary functions of the cells used are configured. A given set of functions from the set of possible functions used in a particular processor element to implement an applied algorithm is determined by its setting. The bit fields of the processor element control the specific hardware resource of the processor element - the input switch for selecting the inputs of the processor element for receiving input operands, the data processing unit for specifying the functional operator, the data storage unit, the output switch for selecting the outputs of the processor element to which the calculation results are transmitted, and etc. To configure the processor element to perform a given set of functions, a tuning register is used, into which, during the procedure for configuring the RSNA matrix, the corresponding tuning code of the processor element is loaded. Thus, loading the appropriate settings into the corresponding subset (set) of cells, the RSNA is configured to perform a given application algorithm. To implement calculations using a different application algorithm, other settings in the general case must be loaded into another subset of the matrix cells, which thus provides reconfiguration of the computing system.
Известно (см. Edsger W. Dijkstra. Notes on structured programming, [1]), что для реализации любого прикладного вычислительного алгоритма достаточно использовать ограниченный набор вычислительных структур, составленных из простейших функциональных операторов, и включающий «конкатенацию», «выбор» и «повторение». «Конкатенация» представляет собой последовательное выполнение в заданном порядке заданного набора функциональных операторов над входными операндами. «Выбор» представляет собой вычислительную структуру, в которой только один из, в общем случае, множества возможных операторов выполняется в зависимости от состояния программы или какого-то результата промежуточных вычислений - условия. В частности, к «выбору» относится вычислительная структура типа IF <условие> THEN S1 ELSE S2. «Условие» в данном случае есть однобитовая булева переменная, принимающая значения TRUE и FALSE. При этом если ее значение TRUE, то вычислительная структура выполняет вычисления S1, в противном случае - вычисления S2. Вычисления S1, S2 могут быть как простыми функциональными операторами, так и сложными композитными или иерархическими вычислительными структурами, включающими структуры «конкатенации», «выбора» или «повторения» и функциональные операторы в том числе. «Повторение» обозначает выполнение вычислительной структуры или в пределе одного заданного функционального оператора, пока не будет достигнуто определенное состояние программы - прекращение вычислений по условию, или пока он не будет приложен ко всем элементам массива входных операндов.It is known (see Edsger W. Dijkstra. Notes on structured programming, [1]) that for the implementation of any applied computational algorithm it is sufficient to use a limited set of computational structures composed of simple functional operators, including “concatenation”, “choice” and “ reiteration". "Concatenation" is the sequential execution in a given order of a given set of functional operators on input operands. “Choice” is a computational structure in which only one of, in the general case, the set of possible operators is executed depending on the state of the program or some result of intermediate calculations — conditions. In particular, the computational structure of the IF <condition> THEN S1 ELSE S2 type refers to the “choice”. The “condition” in this case is a one-bit Boolean variable that takes the values TRUE and FALSE. Moreover, if its value is TRUE, then the computational structure performs calculations S1, otherwise - calculations S2. Calculations S1, S2 can be either simple functional operators, or complex composite or hierarchical computational structures, including structures of “concatenation”, “choice” or “repetition” and functional operators as well. “Repetition” means the execution of a computational structure, or in the limit of one given functional operator, until a certain state of the program is reached — termination of calculations by condition, or until it is applied to all elements of the array of input operands.
Известные вычислительные системы, построенные с использованием архитектуры реконфигурируемых однородных вычислительных сред (Шмойлов В.И., Русин Б.П., Кузьо М.Н. «Ячейка пульсирующих информационных решеток», [2], Патент Российской Федерации №2180969, Бачериков Г.И., Геворкян В.И., Крохин В.М., Татур В.Ю., «Процессор однородной вычислительной среды,» [3]), обладают одним существенным недостатком в случае реализации на них прикладных алгоритмов, в которых широко используется вычислительная структура с ветвлением по условию - структура типа «выбор»: IF <условие> THEN S1 ELSE S2.Known computing systems built using the architecture of reconfigurable homogeneous computing environments (Shmoilov VI, Rusin BP, Kuzio MN “Cell pulsating information gratings”, [2], Patent of the Russian Federation No. 2180969, G. Bacherikov I., Gevorkyan V.I., Krokhin V.M., Tatur V.Yu., “A processor of a homogeneous computing environment,” [3]), have one significant drawback in the case of the implementation of applied algorithms on them, in which computing is widely used structure with branching by condition - structure of type "choice": I F <condition> THEN S1 ELSE S2.
В данных системах, например, в самом простом случае для реализации функциональных операторов S1 и S2 потребуется использовать два процессорных элемента и один дополнительный процессорный элемент для выбора правильного результата, в зависимости от состояния внешней однобитовой булевой переменной условия, из двух результатов вычислений по S1 и S2. Вычисление в матрице переменной «условия» может рассматриваться как внешнее по отношению к реализации вычислений по операторам S1 и S2 и может быть реализовано на некотором количестве ячеек, в пределе - на одной. Таким образом, при реализации прикладных вычислительных алгоритмов, в которых широко используется вычислительная структура IF…THEN…ELSE, большое количество вычислительных ресурсов матрицы - ячеек, будет использовано для реализации альтернативных вычислительных структур и альтернативных функциональных операторов.In these systems, for example, in the simplest case, for the implementation of functional operators S1 and S2, it will be necessary to use two processor elements and one additional processor element to select the correct result, depending on the state of the external one-bit Boolean condition variable, from the two results of calculations on S1 and S2 . The calculation of the variable “conditions” in the matrix can be considered external to the implementation of calculations by the operators S1 and S2 and can be implemented on a number of cells, in the limit - on one. Thus, in the implementation of applied computational algorithms, which widely use the computational structure IF ... THEN ... ELSE, a large number of computational resources of the matrix - cells will be used to implement alternative computational structures and alternative functional operators.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
Эффективность вычислений в РСНК определяется, с одной стороны, возможностями распараллеливания прикладных вычислительных алгоритмов, а с другой - функциональными возможностями ячеек РСНК и размерностью матрицы РСНК, реализуемой в отдельном кристалле заданной площади. Таким образом, для отдельного взятого алгоритма существует возможность максимального распараллеливания вычислений, ограничиваемая размерностью матрицы и функциональными возможностями ячеек, что выражается в количестве ячеек, требуемых для реализации заданного алгоритма. Уменьшение количества ячеек, требуемых для реализации прикладного алгоритма при заданной степени распараллеливания, открывает возможности для дополнительного распараллеливания вычислений по алгоритму в рамках матрицы заданной размерности, что обеспечит повышение производительности вычислительной системы относительно вычислений по данному алгоритму. С другой стороны, уменьшение количества ячеек для реализации различных алгоритмов открывает возможности использования одной матрицы для одновременного выполнения нескольких прикладных алгоритмов, что также повышает производительность вычислительной системы относительно заданного множества вычисляемых прикладных алгоритмов.The efficiency of computing in RSNCs is determined, on the one hand, by the parallelization capabilities of applied computational algorithms, and on the other hand, by the functionality of RSNC cells and the dimension of the RSNC matrix implemented in a separate crystal of a given area. Thus, for a single taken algorithm, there is the possibility of maximum parallelization of calculations, limited by the dimension of the matrix and the functionality of the cells, which is expressed in the number of cells required to implement the given algorithm. Reducing the number of cells required to implement the applied algorithm for a given degree of parallelization opens up opportunities for additional parallelization of calculations by the algorithm within the matrix of a given dimension, which will increase the performance of the computing system relative to calculations by this algorithm. On the other hand, reducing the number of cells for implementing various algorithms opens up the possibility of using one matrix for the simultaneous execution of several applied algorithms, which also increases the performance of the computing system relative to a given set of calculated applied algorithms.
Для повышения эффективности вычислений в РСНК предложено, в отличие от указанных известных прототипов ячеек однородной вычислительной среды, которые обеспечивают обработку потоков входных операндов в соответствии с единственным настроенным функциональным оператором, реализовывать в каждом процессорном элементе РСНК альтернативные функциональные операторы. Это позволит уменьшить количество ячеек, используемых для реализации вычислительных структур типа «выбор», поскольку в зависимости от состояния булевой переменной можно выполнять вычисления либо одного, либо другого функционального оператора в одном процессорном элементе РСНК, а не в двух.In order to increase the computational efficiency in RSNCs, it was proposed, in contrast to the known prototypes of cells of a homogeneous computing environment, which provide processing of input operand flows in accordance with the only configured functional operator, to implement alternative functional operators in each processor element of the RSNC. This will reduce the number of cells used for the implementation of computational structures of the “choice” type, since depending on the state of the Boolean variable, it is possible to perform calculations of either one or the other functional operator in one processor element of the RSNA, and not in two.
Для реализации ветвей альтернативных вычислений с использованием более сложных вычислительных структур, кроме реализации альтернативных функциональных операторов, предложено также использовать альтернативные внешние входы для приема альтернативных входных операндов для оператора S1 и оператора S2 и альтернативные внешние выходы, задающие альтернативные направления выдачи результатов вычислений по оператору S1 или по оператору S2.To implement the branches of alternative calculations using more complex computational structures, in addition to implementing alternative functional operators, it is also proposed to use alternative external inputs for receiving alternative input operands for the operator S1 and operator S2 and alternative external outputs that specify alternative directions for outputting the results of calculations by the operator S1 or by the operator S2.
При осуществлении предложенного способа повышения эффективности вычислений, во-первых, расширяется код настройки процессорного элемента и регистр кода настройки процессорного элемента для его загрузки и хранения на время выполнения конкретного прикладного вычислительного алгоритма путем введения дополнительных альтернативных полей для управления соответствующих аппаратных ресурсов процессорного элемента - входного коммутатора, блока обработки данных и выходного коммутатора. Использование прямого или альтернативного поля настройки для конкретного аппаратного ресурса процессорного элемента определяется либо состоянием внешней по отношению к процессорному элементу булевой однобитовой переменной, сигнал которой поступает на один из множества входов процессорного элемента, либо состоянием внутренней переменной, сигнал которой формируется с помощью других аппаратных ресурсов процессорного элемента, например, внутренним устройством управления процессорного элемента. Также, вводятся коммутаторы альтернативных кодов настройки для управления соответствующими аппаратными ресурсами процессорного элемента, управляемые сигналом булевой переменной условия. Также, вводится коммутатор выбора сигнала булевой переменной условия из множества возможных, включая сигналы, поступающие на все внешние входы процессорного элемента, и возможные внутренние сигналы процессорного элемента и константы «0» и «1». Кроме того, для управления коммутатором выбора сигнала булевой переменной условия в код настройки процессорного элемента вводится еще одно дополнительное поле. Таким образом, при использовании предложенного процессорного элемента при относительно небольших аппаратных издержках по сравнению с аппаратурой исходного процессорного элемента РСНК в зависимости от конкретного прикладного алгоритма в пределе может достигаться двукратное уменьшение аппаратных ресурсов (количества ячеек) для реализации алгоритма.When implementing the proposed method for increasing the efficiency of calculations, firstly, the processor element tuning code and the processor element tuning code register are expanded to load and store it for the duration of a specific applied computing algorithm by introducing additional alternative fields for controlling the corresponding hardware resources of the processor element - the input switch , data processing unit and output switch. The use of a direct or alternative setting field for a particular hardware resource of the processor element is determined either by the state of the Boolean one-bit variable external to the processor element, the signal of which is supplied to one of the multiple inputs of the processor element, or by the state of the internal variable, the signal of which is generated using other hardware resources of the processor element, for example, the internal control device of the processor element. Also, switches of alternative tuning codes are introduced to control the corresponding hardware resources of the processor element, controlled by the signal of the Boolean variable of the condition. Also, a switch is introduced for selecting a signal of a Boolean variable from a set of possible conditions, including signals arriving at all external inputs of the processor element, and possible internal signals of the processor element and constants “0” and “1”. In addition, to control the switch for selecting the signal of the Boolean condition variable, one additional field is introduced into the setup code of the processor element. Thus, when using the proposed processor element at relatively low hardware costs compared to the hardware of the original RSNA processor element, depending on the specific application algorithm, a twofold reduction in hardware resources (number of cells) for the implementation of the algorithm can be achieved.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
Фиг.1. Обобщенная структурная схема исходного процессорного элемента РСНК.Figure 1. Generalized block diagram of the initial processor element of RSNA.
Фиг.2. Конфигурация РСНК для реализации вычислительной структуры IF…THEN…ELSE на основе исходного процессорного элемента.Figure 2. RSNA configuration for the implementation of the computational structure IF ... THEN ... ELSE based on the original processor element.
Фиг.3. Обобщенная структурная схема модифицированного процессорного элемента РСНК.Figure 3. Generalized block diagram of a modified processor element RSNA.
Фиг.4. Конфигурация РСНК для реализации вычислительной структуры IF…THEN…ELSE на основе модифицированного процессорного элемента.Figure 4. RSNA configuration for implementing the computing structure IF ... THEN ... ELSE based on a modified processor element.
Фиг.5. Схема реализации входного и выходного коммутаторов на основе элемента управляемого мультиплексора.Figure 5. The implementation scheme of the input and output switches based on the element of a controlled multiplexer.
Фиг.6. Схема элемента управляемого мультиплексора.6. Scheme of the controlled multiplexer element.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION
Обобщенная структурная схема процессорного элемента (ячейки) РСНК, содержащей, в том числе, входной коммутатор 1, блок обработки данных 2 и выходной коммутатор 3, представлена на Фиг.1. Процессорный элемент, помимо иной возможной аппаратуры, содержит входной коммутатор 1, на вход которых поступают K сигналов 20, включающие все внешние входы процессорного элемента и возможно набор внутренних сигналов процессорного элемента - выходы аппаратных блоков и других узлов процессорного элемента, включая или нет, M выходов блока обработки данных 2, выходы элементов внутренней памяти, выходы транзитных каналов и выходы устройства управления процессорным элементом, a L выходов которого с помощью сигналов 21 подключены к соответствующим входам блока обработки данных 2, блок обработки данных 2, M выходов которого с помощью сигналов 22 подключены к соответствующим входам выходного коммутатора 3, выходной коммутатор 3, выходы которого поступают на S внешних выходов 23 процессорного элемента, и регистр 4 кода настройки процессорным элементом, который, в том числе, включает поле управления 5 входным коммутатором 1, поле управления 6 блоком обработки данных 2 и поле управления 7 выходным коммутатором.A generalized structural diagram of a processor element (cell) RSNA, including, including, the
Поля управления кода настройки представляют собой двоичные коды требуемой размерности для управления соответствующими аппаратными ресурсами процессорного элемента, включая представленные блоки процессорного элемента, а также любые другие - например, блоки памяти, каналы транзита, устройство управления процессорным элементом и т.д. Каждый бит кода настройки хранится в отдельном триггере регистра кода настройки 4. Каждое поле регистра кода настройки подключено к управляющим входам коммутаторов и блока обработки данных - поле 5 с помощью сигналов 24 подключается к управляющим входам входного коммутатора 2, поле 6 с помощью сигналов 25 подключается к управляющим входам блока обработки данных 2 и поле 7 с помощью сигналов 26 подключается к управляющим входам выходного коммутатора 3.The control code control fields are binary codes of the required dimension for controlling the corresponding hardware resources of the processor element, including the presented blocks of the processor element, as well as any others - for example, memory blocks, transit channels, a processor element control device, etc. Each bit of the setup code is stored in a separate trigger of the
Блок обработки данных 2 может быть как простым устройством, например, арифметико-логическим устройством (АЛУ), так и составным и иерархическим, и включать множество блоков обработки данных - АЛУ, умножитель, делитель и т.д., каждый из которых может быть сконфигурирован на выполнение одного функционального оператора из заданного множества определенных для данного блока возможных функциональных операторов. В этом случае соответствующее поле управления из регистра кода настройки будет состоять из подполей для управления всеми блоками, входящими в состав иерархического блока обработки данных 2.
Для простоты дальнейшего изложения будем считать, что в данном случае блок обработки данных является простым блоком, выполняющим один функциональный оператор из множества определенных для него операторов, в зависимости от соответствующего поля кода настройки процессорного элемента.For simplicity, we will assume that in this case the data processing unit is a simple unit that executes one functional operator from the set of operators defined for it, depending on the corresponding field of the processor element setting code.
Код настройки процессорного элемента на выполнение заданного функционального оператора над входными операндами параллельно или последовательно загружается в регистр кода настройки 4 перед началом обработки данных.The setup code of the processor element to execute the specified functional operator on the input operands is loaded in parallel or sequentially into the register of
Процессорный элемент выполняет функцию преобразования данных - операндов, последовательно поступающих на внешние входы по одному разряду за один такт сигнала синхронизации, в течение определенного количества тактов сигнала синхронизации. Число тактов обработки определяется собственно выполняемым функциональным оператором и форматом обрабатываемых данных, который является переменным, от 1 до N разрядов. Между операндами могут быть паузы в P тактов сигналов синхронизации.The processor element performs the function of converting data - operands, sequentially supplied to the external inputs one bit per clock cycle of the synchronization signal, for a certain number of clock cycles of the synchronization signal. The number of processing clocks is determined by the functional operator that is actually executed and the format of the processed data, which is variable, from 1 to N bits. Between operands there can be pauses in P clock cycles of synchronization signals.
Поле кода настройки 5 регистра кода настройки 4, управляющее входным коммутатором 1, задает адреса источников входных операндов для функционального оператора, заданного в блоке обработки данных 2 полем кода настройки 6 регистра кода настройки 4. Поле кода настройки 7 регистра настройки 4, управляющее выходным коммутатором 3, задает адреса внешних выходов процессорного элемента, на которые будут выдаваться результаты вычислений из блока обработки данных 2, последовательно, по одному разряду за один такт сигнала синхронизации.The
Таким образом, на данном процессорном элементе выполняется обработка потока данных, поступающих на ее входы до тех пор, пока не закончится массив входных данных, или пока выполняемый алгоритм не достигнет заданного состояния, или пока процессорный элемент не будет перенастроена на выполнение другого функционального оператора над данными путем загрузки нового кода настройки в регистр кода настройки 4.Thus, on this processor element, the flow of data arriving at its inputs is processed until the array of input data is completed, or until the executed algorithm reaches the specified state, or until the processor element is reconfigured to execute another functional operator on the data by loading the new setup code into the
В случае необходимости реализации в матрице РСНК на основе рассмотренного процессорного элемента вычислительной структуры типа «выбор» - IF C THEN S1 ELSE S2, где C - однобитовая булева переменная условия ветвления, S1 и S2 - альтернативные функциональные операторы, должно быть использовано как минимум четыре процессорных элементов в соответствии с Фиг.2 (на Фиг.2 показаны только используемые межпроцессорные связи). Допустим, что каждый процессорный элемент имеет по два входа и по два выхода на каждую сторону для связи со смежными процессорными элементами и имеет как минимум один транзитный канал. Тогда для выполнения указанной вычислительной структуры процессорный элемент Я2 должен быть настроен для обработки потоков данных A и B с использованием функционального оператора S1, а процессорный элемент Я3 должен быть настроена для выполнения обработки потоков данных E и D с использованием функционального оператора S2. Процессорный элемент Я1 исходя из определяемого в вычислительном алгоритме условия формирует сигнал булевой переменной условия C, который определяет выдачу окончательного результата на выходе процессорного элемента Я4 из двух входных результатов S1(A,B) и S2(E,D). В процессорном элементе Я5 используется только канал транзита для передачи результата S2(E,D) на вход процессорного элемента Я4. Отметим, что сигнал булевой переменной условия должен находиться в одном состоянии («0» - FALSE или «1» - TRUE) в течение такого количества тактов сигнала синхронизации, которое достаточно для последовательной пересылки по одному биту за один такт как минимум одного результата заданной разрядности.If it is necessary to implement in the RSNA matrix on the basis of the considered processor element a computational structure of the choice type — IF C THEN S1 ELSE S2, where C is a one-bit Boolean variable of the branching condition, S1 and S2 are alternative functional operators, at least four processor elements in accordance with FIG. 2 (only used interprocess communications are shown in FIG. 2). Suppose that each processor element has two inputs and two outputs on each side for communication with adjacent processor elements and has at least one transit channel. Then, to execute the indicated computing structure, the processor element Я2 must be configured to process the data streams A and B using the functional operator S1, and the processor element Y3 must be configured to perform the processing of the data streams E and D using the functional operator S2. Based on the condition defined in the computational algorithm, the processor element Я1 generates a signal of the Boolean variable of condition C, which determines the output of the final result at the output of the processor element Я4 from two input results S1 (A, B) and S2 (E, D). In the processor element R5, only the transit channel is used to transmit the result S2 (E, D) to the input of the processor element R4. Note that the signal of the Boolean variable of the condition must be in one state (“0” - FALSE or “1” - TRUE) for such a number of clock cycles of the synchronization signal that is sufficient for sequentially sending one bit per cycle of at least one result of a given bit depth .
Модифицированный процессорный элемент, позволяющий в соответствии с изложенным способом повысить эффективность вычислений в РСНК, представлен на Фиг.3.A modified processor element, which allows, in accordance with the above method, to increase the efficiency of calculations in RSNA, is presented in Figure 3.
В соответствии с предложенным способом повышения эффективности вычислений в модифицированный процессорный элемент РСНК дополнительно введены поля 8, 9, 10, 11 в регистр кода настройки и мультиплексоры 12, 13, 14, 15. Таким образом, поля 5 и 8 используются для управления входным коммутатором 1 и задают альтернативные адреса внешних входов, являющихся источниками входных операндов для альтернативных функциональных операторов, поля 6 и 9 задают пару альтернативных функциональных операторов, используемых в блоке обработки данных 2, а поля 7 и 10 задают альтернативные адреса внешних выходов процессорного элемента, на которые будут выдаваться результаты вычислений из блока обработки данных 2 по альтернативным функциональным операторам. Таким образом, блок обработки данных выполнен с возможностью настройки на выполнение одного из двух альтернативных функциональных операторов из заданного множества возможных операторов в зависимости от состояния булевой переменной условия. Альтернативный функциональный оператор выбирает для управления блоком обработки данных соответствующее поле из двух альтернативных полей кода настройки. В частном случае поля 5 и 8 и 7 и 10 могут попарно совпадать. Поле 11 используется для определения источника сигнала булевой переменой условия.In accordance with the proposed method of increasing the efficiency of calculations, the fields 8, 9, 10, 11 are additionally introduced into the modified processor element of the RSNA, and the multiplexers 12, 13, 14, 15 are entered into the register of the setup code. Thus, fields 5 and 8 are used to control the
Мультиплексоры 12, 13 и 14 используются для подачи управляющих полей регистра кода настройки на соответствующие аппаратные ресурсы в зависимости от состояния сигнала булевой переменной условия 16, формируемого мультиплексором 15. На многоразрядные информационные входы мультиплексора 12 приходят сигналы 24 и 27, несущие информацию о значении соответственно полей регистра настройки 5 и 8, а выходы мультиплексора 12 с помощью сигналов 31 подключаются к управляющим входам входного коммутатора 1. На управляющий вход мультиплексора 12 подается сигнал переменной условия 16. На многоразрядные информационные входы мультиплексора 13 приходят сигналы 25 и 28, несущие информацию о значении соответственно полей регистра настройки 6 и 9, а выходы мультиплексора 13 с помощью сигналов 32 подключаются к управляющим входам блока обработки данных 2. На управляющий вход мультиплексора 13 подается сигнал переменной условия 16. На многоразрядные информационные входы мультиплексора 14 приходят сигналы 26 и 29, несущие информацию о значении соответственно полей регистра настройки 7 и 10, а выходы мультиплексора 14 с помощью сигналов 33 подключаются к управляющим входам выходного коммутатора 3. На управляющий вход мультиплексора 14 подается сигнал переменной условия 16.Multiplexers 12, 13 and 14 are used to supply control fields of the setup code register to the corresponding hardware resources depending on the condition of the signal of the Boolean variable of condition 16 generated by the multiplexer 15.
Мультиплексор 15 формирует сигнал булевой переменной условия с помощью поля 11 регистра кода настройки. При этом входами 34 мультиплексора 15 являются К внешних входов процессорного элемента, и возможный набор внутренних сигналов процессорного элемента - выходов аппаратных блоков и других узлов процессорного элемента, включая или нет, М выходов блока обработки данных 2, выходы элементов внутренней памяти, выходы транзитных каналов и выходы устройства управления процессорным элементом, а также две константы «0» и «1». Поле 11 регистра кода настройки подключается с помощью сигналов 30 к управляющим входам мультиплексора 15.The multiplexer 15 generates a signal of the Boolean variable of the condition using field 11 of the register settings code. The inputs 34 of the multiplexer 15 are K external inputs of the processor element, and a possible set of internal signals of the processor element - the outputs of the hardware units and other nodes of the processor element, including or not, M outputs of the
Таким образом, основное отличие от рассмотренного выше процессорного элемента заключается в том, что функционирование модифицированного процессорного элемента может динамически изменяться в зависимости от состояния сигнала булевой переменной условия и заданных альтернативных полей кода настройки процессорного элемента. Длительность одного состояния переменной условия, измеряемая в тактах сигнала синхронизации работы матрицы, должна быть согласована с необходимым количеством тактов для вычисления и выдачи наружу результата вычислений, что определяется используемыми альтернативными функциональными операторами, задаваемым парой полей 6 и 9 кода настройки, и разрядностью результатов вычислений.Thus, the main difference from the processor element considered above is that the operation of the modified processor element can dynamically change depending on the state of the signal of the Boolean condition variable and the specified alternative fields of the processor element setting code. The duration of one state of a variable condition, measured in clock cycles of the matrix synchronization signal, must be consistent with the required number of clock cycles for calculating and outputting the calculation result, which is determined by the alternative functional operators used, defined by a pair of
На Фиг.4 (на Фиг.4 показаны только используемые межпроцессорные связи) представлена конфигурация матрицы РСНК для реализации с использованием модифицированного процессорного элемента вычислительной структуры типа «выбор» - IF C THEN S1 ELSE S2, где C - однобитовая булева переменная условия ветвления, S1 и S2 - альтернативные функциональные операторы, аналогичной, рассмотренной на Фиг.2. При этом входные потоки данных A, B, D, E подаются на внешние входы модифицированного процессорного элемента Я2, который в зависимости от сигнала условия С, поступающего как и в предыдущем случае с выхода процессорного элемента Я1, формирует на выходе результат вычисления S1(A,B) или S2(E,D). В этом случае используемое для реализации вычислительной структуры количество ячеек меньше в 2 раза и также не требуется вспомогательный процессорный элемент для транзита.Figure 4 (Figure 4 shows only the used interprocessor communications) shows the configuration of the RSNA matrix for implementation using a modified processor element of the computing structure of the choice type - IF C THEN S1 ELSE S2, where C is a one-bit Boolean variable of the branch condition, S1 and S2 are alternative functional operators similar to those described in FIG. 2. In this case, the input data streams A, B, D, E are fed to the external inputs of the modified processor element I2, which, depending on the signal of condition C, which, as in the previous case, comes from the output of the processor element I1, generates the output of the calculation S1 (A, B) or S2 (E, D). In this case, the number of cells used to implement the computational structure is 2 times less and an auxiliary processor element for transit is also not required.
На Фиг.5 представлен вариант реализации входного 1 или выходного коммутатора 2 с использованием элемента управляемого мультиплексора. Коммутатор имеет внешние входы, включающие информационные входы 41, входы двух альтернативных полей 42 и 43, поступающие из регистра настройки процессорного элемента и вход 44 сигнала булевой переменой условия выбора управляющих полей 42 и 43 и N выходов 46. Коммутатор содержит N элементов управляемых мультиплексоров 45, входы которых подключены к внешним входам коммутатора, а N выходов которых являются внешними выходами 46.Figure 5 presents an embodiment of an
Таким образом, в зависимости от состояния на входе 44 в элементе 45 выбирается одно из полей 42 или 43 для управления подключением одного из информационных входов к выходу элемента 45, а все выходы элементов 45 формируют набор из N внешние выходы коммутатора.Thus, depending on the state of
На Фиг.6 представлен вариант реализации элемента управляемого мультиплексора для построения входного и выходного коммутаторов 1 и 2 модифицированного процессорного элемента.Figure 6 presents an embodiment of a controlled multiplexer element for constructing the input and
Элемент содержит мультиплексор 51 и многоразрядный мультиплексор 52. Информационные входы мультиплексора 51 являются внешними входами 53 элемента управляемого мультиплексора, а его информационный выход является выходом 54 элемента. Мультиплексор 51 управляется с помощью двоичного кода 55, поступающего с выхода многоразрядного мультиплексора 52, который управляется входным сигналом 56, а на информационные входы которого поступают входные коды 57 и 58.The element comprises a
Таким образом, в зависимости от состояния входного сигнала 56 на управляющий вход мультиплексора 51 подается либо код, определяемый состоянием входа 57, либо код, определяемый состоянием входа 58. В зависимости от состояния управляющего входа мультиплексора 51 один из выбранных входных сигналов передается на выход элемента управляемого мультиплексора.Thus, depending on the state of the
ИСТОЧНИКИSOURCES
1. Edsger W. Dijkstra. «Notes on structured programming». In Ole-Johan Dahl, Edsger W. Dijkstra, and C.A.R. Hoare, editors, Structured Programming. Academic Press, 1972.1. Edsger W. Dijkstra. "Notes on structured programming." In Ole-Johan Dahl, Edsger W. Dijkstra, and C.A.R. Hoare, editors, Structured Programming. Academic Press, 1972.
2. Шмойлов В.И., Русин Б.П., Кузьо М.Н. «Ячейка пульсирующих информационных решеток». - Львов: Меркатор, 2001. - 34 с.2. Shmoilov V.I., Rusin B.P., Kuzio M.N. "A cell of pulsating information gratings." - Lviv: Mercator, 2001 .-- 34 p.
3. Патент №2180969 от 2002.03.27, Бачериков Г.И., Геворкян В.И., Крохин В.М., Татур В.Ю., «Процессор однородной вычислительной среды».3. Patent No. 2180969 from 2002.03.27, G. Bacherikov, V. I. Gevorkyan, V. M. Krokhin, V. Yu. Tatur, “Processor of a homogeneous computing environment”.
Claims (7)
формируют булевую переменную условия, используя в качестве источника как внешние, так и внутренние сигналы процессорного элемента и константы «0» и «1»,
задают дополнительное поле кода настройки процессорного элемента и определяют адрес источника упомянутой булевой переменной условия, используя данное дополнительное поле,
выбирают одно из двух альтернативных полей исходя из булевой переменной условия,
вводят в код настройки процессорного элемента указанные альтернативные поля, управляющие входным коммутатором, блоком обработки данных и выходным коммутатором,
и представляющие собой альтернативные ветви вычислений в одном процессорном элементе РСНК.1. A method for providing support for alternative computations in reconfigurable on-chip systems (RSNCs), which provides for a reduction in the number of cells of the RSNA matrix necessary for implementing applied branching algorithms, in the implementation of which
form a Boolean variable of the condition, using both external and internal signals of the processor element and the constants “0” and “1” as a source,
set an additional field of the setting code of the processor element and determine the source address of the said Boolean condition variable using this additional field,
choose one of two alternative fields based on the Boolean variable of the condition,
enter into the setup code of the processor element the indicated alternative fields that control the input switch, the data processing unit and the output switch,
and representing alternative branches of computing in one processor element of the RSNA.
причем входной и выходной коммутаторы и блок обработки данных управляются парами альтернативных полей кода настройки, выбор одного из которых обеспечивается соответствующим многоразрядным мультиплексором, управляемым одноразрядным сигналом переменной условия.2. A processor element of a reconfigurable homogeneous computational RSNA containing sets of external single-bit inputs and outputs and including a setup code register, an input switch, a data processing unit, and an output switch controlled by the corresponding fields of the setup code,
moreover, the input and output switches and the data processing unit are controlled by pairs of alternative fields of the setup code, the selection of one of which is provided by the corresponding multi-bit multiplexer, controlled by a single-bit signal of a variable condition.
причем на его информационные входы подаются все внешние входы процессорного элемента, а также подаются внутренние сигналы с выходов операционного блока и прочих аппаратных блоков процессорного элемента - элементов памяти, регистров, транзитных каналов и устройства управления.4. The processor element according to claim 2, characterized in that it further comprises a multiplexer for generating a single-bit variable condition signal,
moreover, all external inputs of the processor element are supplied to its information inputs, as well as internal signals from the outputs of the operating unit and other hardware units of the processor element - memory elements, registers, transit channels and control devices.
причем альтернативный функциональный оператор выбирает для управления блоком обработки данных соответствующее поле из двух альтернативных полей кода настройки.5. The processor element according to claim 2, characterized in that the data processing unit is configured to perform one of two alternative functional operators from a given set of possible operators depending on the state of the Boolean condition variable,
moreover, an alternative functional operator selects the corresponding field from two alternative fields of the setup code for controlling the data processing unit.
причем число указанных элементов равно числу выходов коммутатора, к входам каждого элемента подключены все внешние входы коммутатора, включая информационные входы, вход управления и сигналы двух соответствующих альтернативных полей из регистра кода настройки;
выходы всех таких элементов подключены к внешним выходам коммутатора;
а элемент управляемого коммутатора включает мультиплексор, информационные входы которого подключены к внешним входам элемента, его выход подключен к внешнему выходу элемента,
а его управляющий вход подключен к выходу многоразрядного мультиплексора, на информационные входы которого подаются два двоичных кода альтернативных полей управления,
а на управляющий вход подается однобитовый сигнал булевой переменной условия выбора полей, поступающий с соответствующего внешнего входа элемента. 7. The processor element according to claim 2, characterized in that the input and output switches are implemented using a managed multiplexer element with one output,
moreover, the number of these elements is equal to the number of outputs of the switch, all external inputs of the switch are connected to the inputs of each element, including information inputs, control input and signals of two corresponding alternative fields from the setup code register;
the outputs of all such elements are connected to the external outputs of the switch;
and the managed switch element includes a multiplexer, the information inputs of which are connected to the external inputs of the element, its output is connected to the external output of the element,
and its control input is connected to the output of a multi-bit multiplexer, to the information inputs of which two binary codes of alternative control fields are supplied,
and a single-bit signal of the Boolean variable of the field selection condition coming from the corresponding external input of the element is supplied to the control input.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2012133011/08A RU2519387C2 (en) | 2012-08-02 | 2012-08-02 | Method and apparatus for supporting alternative computations in reconfigurable system-on-chip |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2012133011/08A RU2519387C2 (en) | 2012-08-02 | 2012-08-02 | Method and apparatus for supporting alternative computations in reconfigurable system-on-chip |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2012133011A RU2012133011A (en) | 2014-02-10 |
RU2519387C2 true RU2519387C2 (en) | 2014-06-10 |
Family
ID=50031900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2012133011/08A RU2519387C2 (en) | 2012-08-02 | 2012-08-02 | Method and apparatus for supporting alternative computations in reconfigurable system-on-chip |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2519387C2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5524222A (en) * | 1992-03-27 | 1996-06-04 | Cyrix Corporation | Microsequencer allowing a sequence of conditional jumps without requiring the insertion of NOP or other instructions |
US5623650A (en) * | 1989-12-29 | 1997-04-22 | Cray Research, Inc. | Method of processing a sequence of conditional vector IF statements |
RU2180969C1 (en) * | 2000-10-18 | 2002-03-27 | Бачериков Геннадий Иванович | Processor of uniform computation environment |
RU2449347C2 (en) * | 2010-02-12 | 2012-04-27 | Государственное Образовательное Учреждение Высшего Профессионального Образования "Дагестанский Государственный Технический Университет" (Дгту) | Programmable structure homogeneous register media |
-
2012
- 2012-08-02 RU RU2012133011/08A patent/RU2519387C2/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623650A (en) * | 1989-12-29 | 1997-04-22 | Cray Research, Inc. | Method of processing a sequence of conditional vector IF statements |
US5524222A (en) * | 1992-03-27 | 1996-06-04 | Cyrix Corporation | Microsequencer allowing a sequence of conditional jumps without requiring the insertion of NOP or other instructions |
RU2180969C1 (en) * | 2000-10-18 | 2002-03-27 | Бачериков Геннадий Иванович | Processor of uniform computation environment |
RU2449347C2 (en) * | 2010-02-12 | 2012-04-27 | Государственное Образовательное Учреждение Высшего Профессионального Образования "Дагестанский Государственный Технический Университет" (Дгту) | Programmable structure homogeneous register media |
Also Published As
Publication number | Publication date |
---|---|
RU2012133011A (en) | 2014-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10445098B2 (en) | Processors and methods for privileged configuration in a spatial array | |
US20030023830A1 (en) | Method and system for encoding instructions for a VLIW that reduces instruction memory requirements | |
US8078833B2 (en) | Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions | |
US6108760A (en) | Method and apparatus for position independent reconfiguration in a network of multiple context processing elements | |
US5915123A (en) | Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements | |
US7464251B2 (en) | Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements | |
US6122719A (en) | Method and apparatus for retiming in a network of multiple context processing elements | |
KR20160073335A (en) | Space-multiplexing dram-based reconfigurable logic device | |
US7734896B2 (en) | Enhanced processor element structure in a reconfigurable integrated circuit device | |
US11507531B2 (en) | Apparatus and method to switch configurable logic units | |
Verdoscia et al. | A Data‐Flow Soft‐Core Processor for Accelerating Scientific Calculation on FPGAs | |
RU2519387C2 (en) | Method and apparatus for supporting alternative computations in reconfigurable system-on-chip | |
Kashimata et al. | Efficient and scalable architecture for multiple-chip implementation of simulated bifurcation machines | |
US20070260805A1 (en) | Computer with a Reconfigurable Architecture for Integrating a Global Cellular Automaton | |
Abdelhamid et al. | MITRACA: A next-gen heterogeneous architecture | |
US11171651B2 (en) | Mixed signal computer | |
Khanzadi et al. | A data driven CGRA Overlay Architecture with embedded processors | |
RU2284568C2 (en) | Cell of homogeneous computing environment | |
RU2681365C1 (en) | Computational module for multi-stage multithreaded processing of digital data and method of processing using this module | |
KR100821918B1 (en) | Digital signal processor equipped with reconfigurable data path | |
US20230252106A1 (en) | Exploiting shared dimensions in matrix computations | |
US11327753B2 (en) | Processor instructions to accelerate FEC encoding and decoding | |
Corsonello et al. | Variable precision multipliers for FPGA-based reconfigurable computing systems | |
Ito et al. | A uniform partitioning method for Mono-Instruction Set Computer (MISC) | |
Sklyarov et al. | Design and implementation of communicating fixed and variable instruction set processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20150803 |