RU2820034C1 - Method for time synchronization of operation of reconfigurable architecture computer system - Google Patents

Method for time synchronization of operation of reconfigurable architecture computer system Download PDF

Info

Publication number
RU2820034C1
RU2820034C1 RU2023101913A RU2023101913A RU2820034C1 RU 2820034 C1 RU2820034 C1 RU 2820034C1 RU 2023101913 A RU2023101913 A RU 2023101913A RU 2023101913 A RU2023101913 A RU 2023101913A RU 2820034 C1 RU2820034 C1 RU 2820034C1
Authority
RU
Russia
Prior art keywords
data processing
operators
time
multiparallel
control unit
Prior art date
Application number
RU2023101913A
Other languages
Russian (ru)
Inventor
Алексей Александрович Толмачев
Дмитрий Сергеевич Викторов
Original Assignee
Федеральное государственное казённое военное образовательное учреждение высшего образования "Военная академия воздушно-космической обороны имени Маршала Советского Союза Г.К. Жукова" Министерства обороны Российской Федерации
Filing date
Publication date
Application filed by Федеральное государственное казённое военное образовательное учреждение высшего образования "Военная академия воздушно-космической обороны имени Маршала Советского Союза Г.К. Жукова" Министерства обороны Российской Федерации filed Critical Федеральное государственное казённое военное образовательное учреждение высшего образования "Военная академия воздушно-космической обороны имени Маршала Советского Союза Г.К. Жукова" Министерства обороны Российской Федерации
Application granted granted Critical
Publication of RU2820034C1 publication Critical patent/RU2820034C1/en

Links

Images

Abstract

FIELD: digital data processing.
SUBSTANCE: disclosed is a method for time synchronization of operation of a reconfigurable architecture computer system, in which a control device, an instruction sampling unit, an arithmetic logic unit perform operations, on which descriptors are formed for a set of lexemes, an ordered selection of lexeme descriptors from the set of descriptors formed at the previous stage is obtained, developing new structures of the program specification with detail to operations/functions, checking the equivalence of the textual specification of the task program and its representation with new specification structures, determining priority values for operators of a new specification, generating a plurality of operators-applicants for the beginning of execution at a moment in time, assigning an operator for implementation to a free processor, text specifications of threads of a parallel program with time parameterization are developed, the correctness of results of parallel solution of the problem with time parameterization is estimated.
EFFECT: shorter time for solving a problem by a computer system owing to time synchronization of the operation of a computer system with a reconfigurable architecture.
1 cl, 1 dwg

Description

Изобретение относится к области обработки цифровых данных с помощью электронных устройств, а именно к способам временной синхронизации работы вычислительной системы, предназначенных для вычислительных систем с реконфигурируемой архитектурой и может быть использовано для сокращения времени обработки цифровой информации вычислительными системами с реконфигурируемой архитектурой.The invention relates to the field of processing digital data using electronic devices, namely to methods for time synchronization of the operation of a computer system intended for computer systems with reconfigurable architecture and can be used to reduce the time of processing digital information by computer systems with reconfigurable architecture.

Известен способ автоматического распараллеливания программ, заключающийся в том, что в алгоритмической части программы предварительно получают граф потока управления, дерево доминаторов, дерево циклов, граф потока данных; выполняют подстановки промежуточного представления процедур в места вызовов; выполняют межпроцедурный анализ потока данных; для обнаружения эквивалентных операций выполняют анализ потока данных, предпочтительно способом нумераций значений; выполняют анализ переменных цикла на инвариантность и индуктивность; выполняют анализ операций доступа в массивы, строят индексы доступа в массивы в виде канонических форм сумм произведений; выполняют слияния циклов; выполняют вынос инвариантных условий; изменяют порядок обхода итерационного пространства циклов; выполняют анализ параллельных циклов [1].There is a known method for automatically parallelizing programs, which consists in the fact that in the algorithmic part of the program a control flow graph, a dominator tree, a loop tree, and a data flow graph are first obtained; perform substitutions of intermediate representations of procedures into call places; perform interprocedural data flow analysis; to detect equivalent operations, data flow analysis is performed, preferably in a value numbering manner; perform analysis of loop variables for invariance and inductance; perform analysis of array access operations, construct array access indexes in the form of canonical forms of sums of products; perform cycle merges; carry out the removal of invariant conditions; change the order of traversal of the iterative loop space; perform analysis of parallel loops [1].

Известен способ создания параллельной программы с временной параметризацией многопроцессорных вычислительных систем с одинаковым доступом к памяти, заключающийся в том, что для реализации способа устройство управления, блок выборки инструкций и арифметико-логическое устройство выполняют следующие операции: получает упорядоченный выбор лексем исходной последовательной программы и формирует для лексемы ее дескриптора; получает упорядоченный выбор дескрипторов лексем из сформированного на предшествующем этапе множества дескрипторов; формирует новые структуры спецификации программы с детализацией до операций/функций; формирует новые структуры спецификации программы с детализацией до фрагментов; проверяет эквивалентности текстовой спецификации программы задачи и ее представления новыми структурами спецификации; рассчитывает для операторов новой спецификации значения приоритетов; формирует множества операторов-претендентов на начало выполнения в момент времени; назначает операторы для реализации на свободный процессор; разрабатывает текстовые спецификации нитей параллельной программы с временной параметризацией; оценивает корректность результатов разработки параллельных программ с временной параметризацией; компилирует созданный параллельный код с временной параметризацией [2].There is a known method for creating a parallel program with time parameterization of multiprocessor computer systems with the same access to memory, which consists in the fact that to implement the method, the control device, the instruction fetch unit and the arithmetic-logical unit perform the following operations: receives an ordered selection of tokens of the original sequential program and forms for tokens of its descriptor; receives an ordered selection of lexeme descriptors from the set of descriptors generated at the previous stage; forms new program specification structures with detail down to operations/functions; forms new program specification structures with detail down to fragments; checks the equivalence of the text specification of the task program and its representation by new specification structures; calculates priority values for operators of the new specification; generates sets of operators-candidates for the start of execution at a moment in time; assigns operators for implementation on a free processor; develops text specifications of parallel program threads with time parameterization; evaluates the correctness of the results of developing parallel programs with time parameterization; compiles the generated parallel code with time parameterization [2].

Недостатками данных способов являются отсутствие учета вычислительных систем с реконфигурируемой архитектурой и отсутствие учета параметра времени.The disadvantages of these methods are the lack of consideration of computing systems with reconfigurable architecture and the lack of consideration of the time parameter.

Одним из возможных путей повышения эффективности обработки информации является создание в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы. Однако при создании в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы возникают проблемы временной синхронизации компонентов архитектуры вычислительной системы, что приводит к снижению эффективности цифровой обработки информации, что необходимо учитывать при работе вычислительной системы с реконфигурируемой архитектурой.One of the possible ways to increase the efficiency of information processing is to create in each time cycle of a parallel computing process all dynamic connections between the components of the computer system architecture. However, when creating all dynamic connections between the components of the computer system architecture in each time cycle of a parallel computing process, problems arise with the time synchronization of the components of the computer system architecture, which leads to a decrease in the efficiency of digital information processing, which must be taken into account when operating a computer system with a reconfigurable architecture.

Цель изобретения - повысить эффективность цифровой обработки информации (снизить время обработки информации) за счет временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой при создании в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы.The purpose of the invention is to increase the efficiency of digital information processing (reduce information processing time) due to the time synchronization of the operation of a computer system with a reconfigurable architecture when creating in each time cycle of a parallel computing process all dynamic connections between the components of the computer system architecture.

Указанная цель достигается способом временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой, заключающимся в выполнении следующих процедур:This goal is achieved by a method of time synchronization of the operation of a computer system with a reconfigurable architecture, which consists in performing the following procedures:

1. Упорядоченный выбор лексем исходной последовательной программы, определение их принадлежности к тому или иному классу лексем языка программирования высокого уровня, проверке принадлежности лексемы сформированному (к рассматриваемому моменту времени) множеству лексем, включении лексемы в формируемое множество лексем соответствующего типа (в случае ее отсутствия в составе множества), формировании для лексемы ее дескриптора, задающего числовое кодирование необходимых атрибутов.1. Ordered selection of tokens of the original sequential program, determination of their belonging to one or another class of tokens of a high-level programming language, verification of the token's membership in the generated (at the considered point in time) set of tokens, inclusion of the token in the generated set of tokens of the corresponding type (if it is not present in composition of the set), the formation of its descriptor for the lexeme, which specifies the numeric encoding of the necessary attributes.

2. Упорядоченный выбор дескрипторов лексем из сформированного на предшествующем этапе множества дескрипторов, определении соответствующей рассматриваемому дескриптору конструкции языка программирования высокого уровня, формировании для этой конструкции постфиксной спецификации на основе метода формирования обратной польской записи в соответствии с алгоритмом Дейкстры на основе применения «механизма стека» с приоритетами, позволяющего изменить порядок следования символов операндов и операций.2. Ordered selection of lexeme descriptors from the set of descriptors formed at the previous stage, determining the high-level programming language construction corresponding to the descriptor under consideration, forming a postfix specification for this construction based on the method of generating reverse Polish notation in accordance with Dijkstra’s algorithm based on the use of the “stack mechanism” with priorities, which allows you to change the order of symbols of operands and operations.

3. Формирование новых структур спецификации программы, описывающих исходную программу с детализацией до операций/функций:3. Formation of new program specification structures that describe the original program with detail down to operations/functions:

- выделение из множества элементов постфиксной спецификации программы подмножества операторов операций/функций программы;- selection from a set of elements of a postfix program specification of a subset of program operation statements/functions;

- сквозную нумерацию операторов;- continuous numbering of operators;

- сквозную нумерацию входов для каждого оператора и выходов;- continuous numbering of inputs for each operator and outputs;

- ввод числового кодирования типов операторов на основе постфиксного представления каждой операции/функции;- input of numeric coding of operator types based on the postfix representation of each operation/function;

- формирование для каждого оператора сформированной числовой спецификации множества номеров его операндов и задание его мощности;- formation for each operator of a generated numerical specification of a set of numbers of its operands and setting its power;

- формирование для каждого оператора множества его внешних операторов (использующих результаты выполнения оператора) и задание его мощности;- forming for each operator a set of its external operators (using the results of the operator’s execution) and setting its power;

- формирование, исходя из постфиксного представления операций/функций, для каждого оператора соответствующих меток.- formation, based on the postfix representation of operations/functions, for each operator of the corresponding labels.

4. Формирование новых структур спецификации программы, описывающих исходную программу с детализацией до фрагментов:4. Formation of new program specification structures that describe the original program with detail down to fragments:

- выделение из множества операторов основной структуры подмножеств операторов, имеющих одинаковое значение номера фрагмента:- selection from the set of operators of the main structure of subsets of operators that have the same fragment number value:

- определение для каждого подмножества номеров и типов входных и выходных операторов, фиксация их управляющих связей и соответствующих меток передач управления;- determination for each subset of numbers and types of input and output operators, fixation of their control connections and corresponding control transfer labels;

- формирование в числовом формате основной и связной структуры, специфицирующих типы и схему управляющих связей фрагментов.- formation in numerical format of the main and connected structure, specifying the types and scheme of control connections of the fragments.

Результатами являются следующие новые структуры спецификации программы на этом уровне:The results are the following new program specification structures at this level:

- основная структура фрагментов: номер фрагмента; метки фрагментов; типы фрагментов; указатели на номер фрагмента; мощность сопряженного множества для фрагмента; указатель на начало последовательности номеров фрагментов, образующих внешнее множество фрагмента; мощность внешнего множества для фрагмента; метки фрагментов безусловного перехода и условного перехода по значению «истина»; метки фрагментов условного перехода по значению «ложь» программы.- basic structure of fragments: fragment number; fragment labels; types of fragments; pointers to the fragment number; cardinality of the conjugate set for a fragment; pointer to the beginning of the sequence of fragment numbers that form the external set of the fragment; cardinality of the outer set for the fragment; labels of fragments of unconditional transition and conditional transition by value “true”; labels of fragments of a conditional jump based on the value “false” of the program.

- связная структура фрагментов: номер строк структуры связей; указатель на продолжение последовательности номеров фрагментов, образующих сопряженное множество фрагмента для рассматриваемого фрагмента; сопряженное множество фрагмента для рассматриваемого фрагмента; указатель на продолжение последовательности номеров фрагмента, образующих внешнее множество фрагмента для рассматриваемого фрагмента; внешнее множество фрагмента.- connected structure of fragments: number of lines of the connection structure; a pointer to the continuation of the sequence of fragment numbers forming the conjugate fragment set for the fragment in question; the conjugate set of a fragment for the fragment under consideration; a pointer to the continuation of the sequence of fragment numbers forming the external fragment set for the fragment in question; the outer set of the fragment.

5. Оценка корректности сформированных новых структур спецификаций исходной программы с целью проверки эквивалентности текстовой спецификации программы задачи и ее представления новыми структурами спецификации, т.е. оценку типов данных, типов операций/функций над данными, связей операций по данным и по управлению, корректность единиц измерения физических величин, корректность моментов начала и длительности вычислительных операций/функций и операторов передач управления и синхронизации временных параллельных процессов.5. Assessing the correctness of the generated new specification structures of the original program in order to check the equivalence of the text specification of the task program and its representation by new specification structures, i.e. assessment of data types, types of operations/functions on data, connections between data and control operations, correctness of units of measurement of physical quantities, correctness of the start and duration of computational operations/functions and operators of control transfers and synchronization of temporary parallel processes.

6. Расчет для операторов новой спецификации значения приоритетов, определяющего важность оператора по отношению к другим операторам, из множества и тем самым очередность его рассмотрения при решении задачи вы- деления оборудования с целью его реализации.6. Calculation of priority values for operators of the new specification, which determines the importance of the operator in relation to other operators from the set and thereby the order of its consideration when solving the problem of selecting equipment for the purpose of its implementation.

В общем случае во множество операторов могут входить операторы, принадлежащие различным задачам, для которых рассматривается задача параллельной реализации. В таких случаях рассчитывается общий приоритет оператора, приоритеты всех алгоритмов, имеющих по сравнению с данным алгоритмом более высокий приоритет, а также корректируются для каждого из таких алгоритмов частные приоритеты его операторов.In the general case, the set of operators may include operators belonging to various tasks for which the problem of parallel implementation is considered. In such cases, the general priority of the operator is calculated, the priorities of all algorithms that have a higher priority compared to this algorithm, and the private priorities of its operators are adjusted for each of these algorithms.

Для различных «частных» алгоритмов задач приоритеты операторов могут определяться в соответствии с различными стратегиями (по максимальному времени выполнения ветвей алгоритма, содержащих данный оператор в качестве начального оператора ветви; по времени выполнения оператора; присвоение абсолютных приоритетов некоторым операторам; «динамические приоритеты» (приоритет оператора может изменяться с течением времени и устанавливаться в определенные моменты времени в зависимости от выполнения некоторых условий)).For various “private” algorithms of problems, the priorities of operators can be determined in accordance with various strategies (by the maximum execution time of branches of the algorithm containing this operator as the initial operator of the branch; by the execution time of the operator; assignment of absolute priorities to some operators; “dynamic priorities” (priority operator may change over time and be set at certain points in time depending on the fulfillment of certain conditions)).

7. Выбор рациональной совокупности алгоритмов параллельной обработки данных (совмещение независимых операций, конвейерная обработка, декомпозиционная обработка) для заданных требований и ограничений:7. Selection of a rational set of parallel data processing algorithms (combination of independent operations, pipeline processing, decomposition processing) for given requirements and restrictions:

а) для одной задачи:a) for one task:

- алгоритм совмещение независимых операций: время выполнения задачи; время выполнения задачи и сложность аппаратных средств;- algorithm for combining independent operations: task execution time; task execution time and hardware complexity;

- алгоритм конвейерной обработки и алгоритм декомпозиционной обработки: период обновления исходных данных; период обновления исходных данных и сложность аппаратных средств;- pipeline processing algorithm and decomposition processing algorithm: period of updating the source data; the period of updating the initial data and the complexity of the hardware;

- алгоритм совмещение независимых операций, алгоритм конвейерной обработки и алгоритм декомпозиционной обработки: время выполнения задачи и период обновления исходных данных; время выполнения задачи и период обновления исходных данных и сложность аппаратных средств;- algorithm for combining independent operations, pipeline processing algorithm and decomposition processing algorithm: task execution time and source data update period; task execution time and initial data update period and hardware complexity;

б) для двух и более задач:b) for two or more tasks:

- алгоритм конвейерной обработки и алгоритм декомпозиционной обработки: период обновления исходных данных; период обновления исходных данных и сложность аппаратных средств;- pipeline processing algorithm and decomposition processing algorithm: period of updating the source data; the period of updating the initial data and the complexity of the hardware;

- алгоритм совмещение независимых операций, алгоритм конвейерной обработки и алгоритм декомпозиционной обработки: время выполнения задач; время выполнения задачи и период обновления исходных данных; время выполнения задачи и сложность аппаратных средств; время выполнения задачи и период обновления исходных данных и сложность аппаратных средств.- algorithm for combining independent operations, pipeline processing algorithm and decomposition processing algorithm: task execution time; task execution time and source data update period; task execution time and hardware complexity; task execution time and initial data update period and hardware complexity.

8. Формирование множества операторов-претендентов на начало выполнения в момент времени, которое состоит из множества операторов, реализация которых не была начата ранее в связи с отсутствием данного одного и более операндов и множества операторов, выполнение которых может быть начато в текущий момент времени в связи с наличием всех необходимых для них данных с учетом ранее выполненных операторов и информационно- управляющих связей между операторами, при использовании алгоритма совмещения независимых операций.8. Formation of a set of operators-candidates for the start of execution at a point in time, which consists of a set of operators, the implementation of which was not started earlier due to the absence of one or more operands and a set of operators, the execution of which can be started at the current point in time due to with the availability of all the data necessary for them, taking into account previously executed operators and information and control connections between operators, when using an algorithm for combining independent operations.

9. Формирование множества операторов-претендентов для реализации на соответствующем ярусе в момент времени и формирование множества операторов памяти, обеспечивающих запись значений данных программы для определения времени начала выполнения конвейерных ступеней, при использовании алгоритма совмещения независимых операций и алгоритма конвейерной обработки.9. Formation of a set of candidate operators for implementation on the corresponding tier at a time and the formation of a set of memory operators that provide recording of program data values to determine the start time of execution of pipeline stages, using an algorithm for combining independent operations and a pipeline processing algorithm.

В основе реализации процедуры лежит выполнение следующих условий и действий:The implementation of the procedure is based on the fulfillment of the following conditions and actions:

- первый временной ярус и ярусное время равное единице - ввод интерфейсных входных операторов памяти и их атрибутов;- the first time tier and the tier time equal to one - input of interface input memory operators and their attributes;

- второй временной ярус и ярусное время равное сумме единицы и времени задержки операторов памяти - ввод входных операторов памяти первой конвейерной ступени и их атрибутов;- the second time tier and the tier time equal to the sum of one and the delay time of memory operators - input of input memory operators of the first pipeline stage and their attributes;

- для первого или следующего яруса ступени конвейера с ярусным временем больше одного такта при выполнении условий, когда ярусное время больше или равно сумме периода обновления данных предшествующей ступени и времени задержки операторов памяти и меньше или равно разности текущей и времени задержки операторов памяти - формирование множества операторов-претендентов на ярус из операторов с необходимой коррекцией их атрибутов;- for the first or next tier of a conveyor stage with a tier time of more than one clock cycle, if the conditions are met when the tier time is greater than or equal to the sum of the data update period of the previous stage and the delay time of memory operators and less than or equal to the difference between the current and the delay time of memory operators - formation of a set of operators -candidates for the tier of operators with the necessary correction of their attributes;

- для второго и следующего яруса ступени конвейера при выполнении условия, когда ярусное время равно разности произведения номера яруса на период обновления входных данных и времени задержки операторов памяти -ввод выходных операторов памяти конвейерной ступени и их атрибутов; при выполнении условия, когда ярусное время равно произведению номера предшествующей ступени на период обновления входных данных - ввод входных операторов памяти конвейерной ступени и их атрибутов;- for the second and next tier of the conveyor stage, when the condition is met when the tier time is equal to the difference between the product of the tier number and the period of updating the input data and the delay time of the memory operators - input of output memory operators of the conveyor stage and their attributes; when the condition is met when the tier time is equal to the product of the number of the previous stage and the period of update of the input data - input of input memory operators of the conveyor stage and their attributes;

- при выполнении условия, когда ярусное время равно произведению номера последней ступени на период обновления входных данных - ввод интерфейсных выходных операторов памяти и их атрибутов.- when the condition is met when the tier time is equal to the product of the number of the last stage and the period of update of the input data - input of interface output memory operators and their attributes.

10. Расчет для каждого оператора новой спецификации значения коэффициента декомпозиции, как отношение время выполнения оператора к требуемому значению периода обновления данных и определение максимального значения коэффициента декомпозиции.10. Calculation of the decomposition coefficient value for each operator of a new specification, as the ratio of the operator execution time to the required value of the data update period and determination of the maximum value of the decomposition coefficient.

11. Формирование подмножества декомпозиционных операторов со следующими атрибутами: тип оператора; время выполнения; момент начала выполнения оператора; структура сопряженных и внешних связей основного оператора с операторами основного множества.11. Formation of a subset of decomposition operators with the following attributes: operator type; lead time; the moment at which the operator starts executing; structure of conjugate and external connections of the main operator with operators of the main set.

12. Формирование множества операторов демультиплексирования временной последовательности входных наборов данных на входные операторы соответствующих копий основного множества операторов.12. Formation of a set of operators for demultiplexing a temporal sequence of input data sets into input operators of the corresponding copies of the main set of operators.

13. Формирование множества операторов мультиплексирования временной последовательности выходных наборов результатов выполнения различных копий основного множества операторов.13. Formation of a set of multiplexing operators for the time sequence of output sets of results from executing various copies of the main set of operators.

14. Формирование множества операторов управления, обеспечивающих ввод сигналов временной синхронизации и операторов подсчета суммы тактовых сигналов и формирование сигналов для управления операторами демультиплексирования.14. Formation of a set of control operators that provide input of time synchronization signals and operators for calculating the sum of clock signals and generation of signals for controlling demultiplexing operators.

15. Формирование множества значений ярусного времени смежных временных ярусов: для первого яруса равно единице; для второго и последующего ярусов равно сумме времени первого яруса и произведения номера предшествующего яруса на период обновления входных данных.15. Formation of a set of tier time values of adjacent time tiers: for the first tier it is equal to one; for the second and subsequent tiers is equal to the sum of the time of the first tier and the product of the number of the previous tier by the period of updating the input data.

16. Расчет для операторов расширенного множества значений приоритетов, определяющих очередность рассмотрения операторов при решении задачи назначения на выполнение.16. Calculation of an extended set of priority values for operators that determine the order of consideration of operators when solving the task of assignment to execution.

17. Добавление оператора синхронизации на нулевой ярус, оператора памяти исходных данных и операторов управления на первый ярус и операторов связи на второй ярус.17. Adding a synchronization operator to the zero tier, a source data memory operator and control operators to the first tier, and communication operators to the second tier.

18. Выделение из расширенного множества подмножества операторов, для начала выполнения которых на ярусе фрагмента готовы соответствующие операнды.18. Selecting from the extended set a subset of operators for which the corresponding operands are ready to begin execution at the fragment tier.

19. Оценка доступного в текущий момент дискретного времени ресурса функциональных блоков или процессоров.19. Estimation of the currently available discrete time resource of functional blocks or processors.

20. Формирование множества операторов, начинающих выполняться на соответствующем ярусе в момент времени (при наличии в момент времени необходимого для их выполнения свободного ресурса).20. Formation of a set of operators that begin to be executed on the corresponding tier at a time (if there is a free resource necessary for their execution at the time).

21. Формирование сопряженно-внешних связей входных операторов памяти временного яруса декомпозиционного фрагмента и входных основных операторов этого фрагмента (при выполнении условия, что, все операторы множества являются входными для фрагмента).21. Formation of conjugate-external connections of the input memory operators of the temporary tier of the decomposition fragment and the input main operators of this fragment (subject to the condition that all set operators are input for the fragment).

22. Расчет очередного номера временного яруса и определение ближайшего момента времени появления свободного ресурса, определяющий значение ярусного времени.22. Calculation of the next number of the temporary tier and determination of the nearest moment in time of the appearance of a free resource, which determines the value of the tier time.

23. Проверка условия, что номер очередного декомпозиционного фрагмента больше максимального значения коэффициента декомпозиции, в случае невыполнения условия формирование номера очередного декомпозиционного фрагмента и очередной номер временного яруса, процедуры 10-23 при использовании алгоритма совмещения независимых операций, алгоритма конвейерной обработки, алгоритма декомпозиционной обработки или оптимальной комбинации этих алгоритмов.23. Checking the condition that the number of the next decomposition fragment is greater than the maximum value of the decomposition coefficient; if the condition is not met, the formation of the number of the next decomposition fragment and the next number of the temporary tier, procedures 10-23 when using an algorithm for combining independent operations, a pipeline processing algorithm, a decomposition processing algorithm, or optimal combination of these algorithms.

24. Формирование множества свободных и множества занятых в момент времени функциональных блоков / процессоров.24. Formation of many free and many functional blocks/processors occupied at a given time.

25. Расчет очередных моментов времени освобождения каждого из задействованных функциональных блоков (процессоров) для случая конвейерной и декомпозиционной обработки для всех функциональных блоков любого фрагмента определяется как сумма ярусного времени входного яруса рассматриваемого фрагмента и заданного периода обновления данных. Ярусное время входного яруса любого фрагмента определяется как минимальное время операторов рассматриваемого фрагмента, реализация которых была начата на временных ярусах текущего и предшествующего фрагментов.25. Calculation of the next time instants of release of each of the involved functional blocks (processors) for the case of pipeline and decomposition processing for all functional blocks of any fragment is determined as the sum of the tier time of the input tier of the fragment in question and the specified data update period. The tier time of the input tier of any fragment is defined as the minimum time of the operators of the fragment in question, the implementation of which was started on the time tiers of the current and previous fragments.

26. Коррекция приоритетов операторов новой спецификации с учетом введенных при конвейерной и/или декомпозиционной обработке данных.26. Correction of the priorities of the operators of the new specification, taking into account the data entered during pipeline and/or decomposition processing.

27. Выбор одного множества операторов-претендентов на начало выполнения в момент времени из множеств, сформированных ранее при использовании различных алгоритмов обработки данных.27. Selection of one set of operators-candidates for the start of execution at a moment in time from sets formed earlier using various data processing algorithms.

28. Выбор из множества оператора-претендента с наивысшим приоритетом, фиксации типа соответствующей операции, проверке наличия свободного в момент времени функционального блока (процессора) и назначение оператора для реализации на свободный функциональный блок (процессор). При отсутствии необходимого для выполнения оператора свободного функционального блока (процессора), такой оператор включается в состав претендентов на начало реализации в очередной момент времени, путем его включения в формируемое процедурой множество.28. Selection from a set of a candidate operator with the highest priority, fixing the type of the corresponding operation, checking the presence of a free functional block (processor) at the moment of time, and assigning an operator for implementation to a free functional block (processor). If there is no free functional block (processor) required to execute the operator, such an operator is included in the list of candidates for the start of implementation at the next point in time, by including it in the set generated by the procedure.

Одновременно с назначением оператора на реализацию с помощью соответствующего функционального блока (процессора) этот функциональный блок (процессор) переводится в состояние «занят» и рассчитывается момент завершения выполнения им оператора и перехода функционального блока (процессора) в состояние «свободен».Simultaneously with the assignment of the operator for implementation using the corresponding functional block (processor), this functional block (processor) is transferred to the “busy” state and the moment when it completes execution of the operator and the transition of the functional block (processor) to the “free” state is calculated.

Эта последовательность действий повторяется для каждого следующего по приоритету оператора-претендента множества. Процесс назначения операторов на выполнение заканчивается либо при завершении рассмотрения всех операторов множества, либо при отсутствии свободных функциональных блоков (процессоров).This sequence of actions is repeated for each next priority candidate operator in the set. The process of assigning operators for execution ends either when the consideration of all operators in the set is completed, or when there are no free functional blocks (processors).

Процедура завершается при окончании рассмотрения и расстановки на временных ярусах всех операторов задачи в новом формате.The procedure ends when all task operators in the new format are reviewed and placed on temporary tiers.

29. Формирование текстовых спецификаций нитей параллельной программы с временной параметризацией включает формирование следующих объектов:29. Formation of text specifications of threads of a parallel program with time parametrization includes the formation of the following objects:

- текстовых спецификаций временных нитей параллельной программы со встроенными средствами управления временной синхронизации, тактового сиг- нала, операторы связи;- text specifications of temporary threads of a parallel program with built-in controls for time synchronization, clock signal, communication operators;

- структур временной спецификации параллельной программы в виде индивидуальных текстов нитей программ функциональных блоков (процессоров) вычислительной системы со встроенными средствами управления времен- ной синхронизации, тактового сигнала, операторы связи;- structures of the time specification of a parallel program in the form of individual texts of program threads of functional blocks (processors) of a computer system with built-in controls for time synchronization, clock signal, communication operators;

- оценок суммарного количества обращений к каждому данному, необходимое для выполнения исходной программы.- estimates of the total number of calls to each data required to execute the original program.

Исходные данные этапа формирования текстовых спецификаций временных нитей параллельной программы: новые структуры (основная, связная) параллельного процесса с временной параметризацией, удовлетворяющие заданным требованиям (время выполнения операций/функций, количество одновременно/параллельно выполняемых операций/функций задачи, время решения задачи и/или ограничения на интервал ввода данных, состав используемых алгоритмов параллельной обработки, в т.ч. состав может быть не определен); закрепление операторов за нитями или функциональными блоками (процессорами); характеристики вычислительной системы с реконфигурируемой архитектурой: периода обновления данных, время реализации, сложность аппаратных средств, библиотеки аппаратных блоков, время выполнения операций (функций), состав алгоритмов параллельной обработки данных.Initial data of the stage of forming text specifications of temporary threads of a parallel program: new structures (main, connected) of a parallel process with temporal parameterization, satisfying the specified requirements (execution time of operations/functions, number of simultaneously/parallelly performed operations/functions of a task, time to solve a problem and/or restrictions on the data entry interval, the composition of the parallel processing algorithms used, including the composition may not be determined); assigning operators to threads or functional blocks (processors); characteristics of a computing system with a reconfigurable architecture: data update period, implementation time, hardware complexity, hardware block libraries, execution time of operations (functions), composition of parallel data processing algorithms.

30. Основные этапы формирования текстовых спецификаций временных нитей программ параллельной программы включают:30. The main stages of the formation of text specifications of temporary program threads of a parallel program include:

- цикл по номерам операторов, фрагментов основной структуры;- cycle by numbers of operators, fragments of the main structure;

- определение номера функционального блока (процессора), реализующего оператор, фрагмент;- determination of the number of the functional block (processor) implementing the operator, fragment;

- формирование текстовой спецификации оператора/операции, фрагмента, включающее:- generation of a text specification of an operator/operation, fragment, including:

1) выборка из связной структуры имен сопряженных операторов, фрагментов и запись текстовой спецификации оператора, фрагмента;1) sampling from a coherent structure the names of conjugate operators, fragments and recording the text specification of the operator, fragment;

2) выборка из связной структуры имен сопряженных операторов, фрагментов, замена имен операторов, фрагментов на их действительные адреса и запись текстовой спецификации оператора, фрагмента;2) sampling the names of conjugate operators and fragments from a coherent structure, replacing the names of operators and fragments with their actual addresses and recording the text specification of the operator and fragment;

3) временная параметризация операторов, фрагментов процессных нитей программ;3) temporary parameterization of operators, fragments of process threads of programs;

4) представление текстовых спецификаций нитей программ с временной параметризацией каждого из функциональных блоков (процессоров) для программ в виде: основной структуры с дополнением массива фрагментов, массива временных ярусов, связной структуры и дополнительно введенных групп операторов (основных, памяти, переименованных переменных, управления синхронизации, связи данных).4) presentation of text specifications of program threads with temporal parameterization of each of the functional blocks (processors) for programs in the form of: the main structure with the addition of an array of fragments, an array of temporary tiers, a connected structure and additionally introduced groups of operators (main, memory, renamed variables, synchronization control , data communications).

31. Оценка корректности результатов создания параллельных программ с временной параметризацией, т.е. оценка корректности типов данных, типов операций/функций над данными, связей операций по данным и по управлению, корректность единиц измерения физических величин, корректность моментов начала и длительности вычислительных операций/функций, фрагментов и операторов передач управления и синхронизации временных параллельных процессов.31. Assessing the correctness of the results of creating parallel programs with time parameterization, i.e. assessment of the correctness of data types, types of operations/functions on data, connections between data and control operations, correctness of units of measurement of physical quantities, correctness of the start and duration of computational operations/functions, fragments and operators of control transfers and synchronization of temporary parallel processes.

32. Компилирование созданного параллельного кода с временной параметризацией.32. Compiling the generated parallel code with time parameterization.

Таким образом, для повышения эффективности цифровой обработки информации (снижения времени решения задачи) следует сформировать временные нити программы с учетом требования создания в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы при параллельном решении задачи и обеспечить необходимую временную синхронизацию работы вычислительной системы с реконфигурируемой архитектурой.Thus, in order to increase the efficiency of digital information processing (reduce the time for solving a problem), it is necessary to form temporary program threads taking into account the requirement to create in each time step of a parallel computing process all dynamic connections between the components of the computer system architecture when solving a problem in parallel and to ensure the necessary time synchronization of the work of the computer systems with reconfigurable architecture.

Новыми признаками, обладающими существенными отличиями, являются:New features with significant differences are:

1. Учет вычислительной системы с реконфигурируемой архитектурой.1. Accounting for a computing system with a reconfigurable architecture.

2. Учет состава используемых алгоритмов параллельной обработки данных при параллельном решении задачи2. Taking into account the composition of the parallel data processing algorithms used when solving the problem in parallel

3. Учет параметра времени начала выполнения операторов и операндов параллельного алгоритма в вычислительной системе с реконфигурируемой архитектурой.3. Taking into account the parameter of the start time of execution of operators and operands of a parallel algorithm in a computing system with a reconfigurable architecture.

Данные признаки обладают существенными отличиями, так как в известных способах не обнаружены.These signs have significant differences, since they were not found in known methods.

Применение новых признаков, в совокупности с известными позволит повысить эффективность цифровой обработки информации за счёт создания в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы с реконфигурируемой архитектурой при параллельном решении задачи.The use of new features, in combination with the known ones, will improve the efficiency of digital information processing by creating in each time cycle of a parallel computing process all dynamic connections between the components of the architecture of a computer system with a reconfigurable architecture while solving the problem in parallel.

Способ временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой реализуется следующим образом.The method for time synchronization of the operation of a computer system with a reconfigurable architecture is implemented as follows.

На фиг.1 показана схема основных компонентов вычислительной системы с реконфигурируемой архитектурой, состоящей из подсистемы реконфигурации программно-аппаратных средств 1 и подсистемы реализации мультипараллельной обработки данных 2. Подсистема реконфигурации программно-аппаратных средств 1 включает блок входных данных 11, блок управления реконфигурацией вычислительной системы 12, блок реконфигурации функциональных блоков / процессоров вычислительной системы 13, блок реконфигурации программного обеспечения вычислительной системы 14, блок оценки программно-аппаратной реконфигурации вычислительной системы 15, подсистема реализации мультипараллельной обработки данных 2 включает блок статической и динамической реконфигурации 21, блок управления мультипараллельной обработки данных 22, многоуровневую память 23, блок контроля мультипараллельной обработки данных 24, блок мультипараллельной обработки данных 25, блок оценки эффективности 26. Подсистема реконфигурации программно-аппаратных средств 1 обеспечивают решение задач автоматического создания архитектуры мультипараллельных аппаратно-программных средств для подстройки вычислительной системы к особенностям решаемых задач, изменениям требований и ограничений, а также к изменению доступного вычислительного ресурса вычислительной системы. Блок входных данных 11 обеспечивает прием из внешних данных информации, используемой различными блоками вычислительной системы при выполнении реконфигурации параллельного аппаратно-программного обеспечения и реализации мультипараллельной обработки данных. Блок управления реконфигурацией вычислительной системы 12 выполняет общее управление подсистемами и блоками вычислительной системы, обеспечивающими реконфигурацию функциональных блоков / процессоров вычислительной системы 13, реконфигурацию программного обеспечения 14, а также управление блоком оценки программно-аппаратной реконфигурации вычислительной системы 15. Блок реконфигурации функциональных блоков / процессоров вычислительной системы 13 предназначен для автоматического создания аппаратных средств, выполняющих при решении задач параллельную обработку данных, а также обеспечивающих выполнение заданных требований и ограничений. Блок реконфигурации программного обеспечения вычислительной системы 14 обеспечивает автоматическое создание статического и временного мультипараллельного программного обеспечения, специфицирующих параллельную обработку данных и удовлетворяющих заданным требованиям и ограничениям. Блок оценки программно-аппаратной реконфигурации вычислительной системы 15 обеспечивает автоматическую оценку корректности результатов реконфигурации программно-аппаратных средств вычислительной системы на каждом этапе и в целом и формирует информацию, необходимую для оценки оператором вычислительной системы достоверности результатов реконфигурации. Подсистема реализации мультипараллельной обработки данных 2 предназначена для выполнения мультипараллельных вычислительных процессов над данными при удовлетворении заданных требований и ограничений. Блок статической и динамической реконфигурации 21 предназначен для выделения всех статических связей модулей многоуровневой памяти 23 и функциональных блоков мультипараллельной обработки данных 25 и создания в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы, используемыми в данном такте для одновременного выполнения соответствующего множества операций/функций, необходимых для выполнения мультипараллельного процесса решения задач. Блок управления мультипараллельной обработки данных 22 обеспечивает управление реализацией временных мультипараллельных программ решения задач, созданных на этапе реконфигурации программного обеспечения вычислительной системы блоком 14 и реализуется с помощью блока мультипараллельной обработки данных 25 с конкретной архитектурой определенной блоком статической и динамической реконфигурации 21. Блок мультипараллельной обработки данных 25 предназначен для реализации мультипараллельного процесса решения задач с использованием оптимального или задаваемого состава алгоритмов параллельной обработки данных путем выполнения на каждом такте множества операций. Блок оценки эффективности 26 предназначен для проверки корректности мультипараллельной обработки данных.Figure 1 shows a diagram of the main components of a computer system with a reconfigurable architecture, consisting of a software and hardware reconfiguration subsystem 1 and a subsystem for implementing multiparallel data processing 2. The software and hardware reconfiguration subsystem 1 includes an input data block 11, a computer system reconfiguration control block 12 , block for reconfiguring functional blocks/processors of the computing system 13, block for reconfiguring the software of the computing system 14, block for evaluating the software and hardware reconfiguration of the computing system 15, subsystem for implementing multi-parallel data processing 2 includes a block of static and dynamic reconfiguration 21, control block for multi-parallel data processing 22, multi-level memory 23, multi-parallel data processing control unit 24, multi-parallel data processing unit 25, efficiency evaluation unit 26. The software and hardware reconfiguration subsystem 1 provides a solution to the problems of automatically creating an architecture of multi-parallel hardware and software for adjusting the computing system to the characteristics of the tasks being solved, changes requirements and restrictions, as well as changes in the available computing resource of the computer system. The input data block 11 provides reception from external data of information used by various blocks of the computing system when performing reconfiguration of parallel hardware and software and implementing multi-parallel data processing. The computer system reconfiguration control unit 12 performs general control of the subsystems and blocks of the computer system that provide reconfiguration of the functional blocks / processors of the computer system 13, reconfiguration of the software 14, as well as control of the evaluation unit for the software and hardware reconfiguration of the computer system 15. Reconfiguration unit of the functional blocks / processors of the computer system 13 is designed to automatically create hardware that performs parallel data processing when solving problems, as well as ensuring the fulfillment of specified requirements and restrictions. The computer system software reconfiguration unit 14 provides automatic creation of static and temporary multiparallel software that specifies parallel data processing and satisfies specified requirements and restrictions. The computer system software and hardware reconfiguration evaluation unit 15 provides automatic assessment of the correctness of the computer system software and hardware reconfiguration results at each stage and as a whole and generates the information necessary for the computer system operator to assess the reliability of the reconfiguration results. The subsystem for implementing multiparallel data processing 2 is designed to perform multiparallel computational processes on data while meeting specified requirements and restrictions. The static and dynamic reconfiguration block 21 is designed to isolate all static connections of multi-level memory modules 23 and functional blocks of multi-parallel data processing 25 and create in each time cycle of the parallel computing process all dynamic connections between the components of the computer system architecture used in this cycle for the simultaneous execution of the corresponding set operations/functions necessary to perform a multiparallel problem solving process. The multiparallel data processing control unit 22 provides control of the implementation of temporary multiparallel problem solving programs created at the stage of reconfiguration of the computer system software by unit 14 and is implemented using the multiparallel data processing unit 25 with a specific architecture determined by the static and dynamic reconfiguration unit 21. Multiparallel data processing unit 25 is designed to implement a multiparallel problem solving process using an optimal or specified composition of parallel data processing algorithms by performing multiple operations at each clock cycle. The efficiency evaluation unit 26 is designed to check the correctness of multi-parallel data processing.

Рассмотрим пошаговое выполнение предложенного способа временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой в описанной выше системе (Фиг. 1). Блок входных данных 11 получает последовательный код программы. Блок управления мультипараллельной обработки данных 25 от блока входных данных 11 получает упорядоченный выбор лексем исходной последовательной программы и формирует для лексем их дескрипторы (шаг 1). Блок управления мультипараллельной обработки данных 22 получает упорядоченный выбор дескрипторов лексем из сформированного на предшествующем этапе множества дескрипторов (шаг 2) и передает в блок статической и динамической реконфигурации 21. Блок статической и динамической реконфигурации 21 формирует новые структуры спецификации программы с детализацией до операций/функций (шаг 3) и формирует новые структуры спецификации программы с детализацией до фрагментов (шаг 4). Блок оценки эффективности 26 оценивает корректность сформированных новых структур спецификаций исходной программы (шаг 5). Блок управления мультипараллельной обработки данных 22 рассчитывает для операторов новой спецификации значения приоритетов (шаг 6), выбирает рациональные совокупности алгоритмов параллельной обработки данных (шаг 7), формирует множества операторов-претендентов на начало выполнения в момент времени (шаг 8), формирует множества операторов- претендентов для реализации на соответствующем ярусе в момент времени и формирует множества операторов памяти (шаг 9). Блок мультипараллельной обработки данных 25 рассчитывает для каждого оператора новой спецификации значения коэффициента декомпозиции (шаг 10). Блок управления мультипараллельной обработки данных 22 формирует подмножества декомпозиционных операторов (шаг 11), формирует множества операторов демультиплексирования временной последовательности входных наборов данных (шаг 12), формирует множества операторов мультиплексирования временной последовательности выходных наборов результатов выполнения различных копий основного множества операторов (шаг 13), формирует множества операторов управления (шаг 14), формирует множества значений ярусного времени смежных временных ярусов (шаг 15). Блок мультипараллельной обработки данных 25 рассчитывает для операторов расширенного множества значений приоритетов (шаг 16). Блок управления мультипараллельной обработки данных 22 добавляет операторы синхронизации, памяти, управления, связи (шаг 17), выделяет множества операторов, начинающих выполняться на соответствующем ярусе в момент времени (шаг 18). Блок оценки эффективности 26 оценивает доступность в текущий момент дискретного времени ресурса функциональных блоков или процессоров (шаг 19). Блок управления мультипараллельной обработки данных 22 формирует множества операторов, начинающих выполняться на соответствующем ярусе в момент времени (шаг 20), формирует сопряженно-внешние связи входных операторов памяти временного яруса декомпозиционного фрагмента и входных основных операторов этого фрагмента (шаг 21). Блок мультипараллельной обработки данных 25 рассчитывает очередной номер временного яруса и определяет ближайший момент времени появления свободного ресурса (шаг 22). Блок контроля мультипараллельной обработки данных 24 сравнивает номер очередного декомпозиционного фрагмента и максимальное значение коэффициента декомпозиции (шаг 23). Блок управления мультипараллельной обработки данных 22 формирует множества свободных и множества занятых в момент времени функциональных блоков / процессоров (шаг 24). Блок мультипараллельной обработки данных 25 рассчитывает очередные моменты времени освобождения каждого из задействованных функциональных блоков / процессоров (шаг 25) и корректирует приоритеты операторов новой спецификации (шаг 26). Блок управления мультипараллельной обработки данных 22 выбирает одно множество операторов-претендентов на начало выполнения в момент времени (шаг 27) и выбирает из множества оператор-претендент с наивысшим приоритетом (шаг 28). Блок мультипараллельной обработки данных 25 формирует текстовые спецификации нитей параллельной программы с временной параметризацией (шаг 29). Блок оценки эффективности 26 оценивает корректность результатов создания параллельных программ с временной параметризацией (шаг 30). Блок мультипараллельной обработки данных 25 компилирует созданный параллельный код с временной параметризацией (шаг 31).Let us consider the step-by-step implementation of the proposed method for time synchronization of the operation of a computing system with a reconfigurable architecture in the system described above (Fig. 1). Input data block 11 receives the serial program code. The multiparallel data processing control unit 25 from the input data block 11 receives an ordered selection of tokens of the original sequential program and generates their descriptors for the tokens (step 1). The multiparallel data processing control unit 22 receives an ordered selection of lexeme descriptors from the set of descriptors generated at the previous stage (step 2) and transmits it to the static and dynamic reconfiguration unit 21. The static and dynamic reconfiguration unit 21 generates new program specification structures with detail down to operations/functions ( step 3) and forms new program specification structures with detail down to fragments (step 4). The efficiency evaluation unit 26 evaluates the correctness of the generated new specification structures of the original program (step 5). The multi-parallel data processing control unit 22 calculates the priority values for the operators of the new specification (step 6), selects rational sets of parallel data processing algorithms (step 7), generates sets of operators-candidates for starting execution at the moment of time (step 8), generates sets of operators - candidates for implementation on the corresponding tier at a time and forms sets of memory operators (step 9). The multiparallel data processing unit 25 calculates the decomposition coefficient values for each operator of the new specification (step 10). The multiparallel data processing control unit 22 generates subsets of decomposition operators (step 11), generates sets of demultiplexing operators for the time sequence of input data sets (step 12), generates sets of multiplexing operators for the time sequence of output sets of results from executing various copies of the main set of operators (step 13), generates sets of control operators (step 14), generates sets of tiered time values of adjacent time tiers (step 15). The multiparallel data processing unit 25 calculates priority values for the operators of the extended set (step 16). The multiparallel data processing control unit 22 adds synchronization, memory, control, communication operators (step 17), selects a set of operators that begin to be executed on the corresponding tier at a time (step 18). The efficiency evaluation unit 26 evaluates the current discrete time resource availability of functional blocks or processors (step 19). The multi-parallel data processing control unit 22 forms sets of operators that begin to be executed on the corresponding tier at a time (step 20), forms conjugate-external connections of the input memory operators of the temporary tier of the decomposition fragment and the input main operators of this fragment (step 21). The multiparallel data processing unit 25 calculates the next number of the temporary tier and determines the nearest moment in time when a free resource appears (step 22). The multiparallel data processing control unit 24 compares the number of the next decomposition fragment and the maximum value of the decomposition coefficient (step 23). The multi-parallel data processing control unit 22 generates a set of free and a set of functional blocks/processors occupied at a time (step 24). The multi-parallel data processing unit 25 calculates the next time instants of release of each of the involved functional blocks/processors (step 25) and adjusts the priorities of the operators of the new specification (step 26). The multi-parallel data processing control unit 22 selects one set of candidate operators to begin execution at a time (step 27) and selects the highest priority candidate operator from the set (step 28). The multiparallel data processing unit 25 generates text specifications of parallel program threads with time parameterization (step 29). The efficiency evaluation unit 26 evaluates the correctness of the results of creating parallel programs with time parameterization (step 30). The multiparallel data processing unit 25 compiles the generated parallel code with time parameterization (step 31).

Таким образом, предлагаемый способ позволит снизить время решения задачи в вычислительной системе с реконфигурируемой архитектурой до 26% при работе вычислительной системы с реконфигурируемой архитектурой, то есть повысить эффективность цифровой обработки информации за счет временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой при создании в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы при параллельном решении задачи.Thus, the proposed method will reduce the time for solving a problem in a computer system with a reconfigurable architecture to 26% when operating a computer system with a reconfigurable architecture, that is, increase the efficiency of digital information processing due to the time synchronization of the operation of a computer system with a reconfigurable architecture when created in each time step parallel computing process of all dynamic connections between the components of the computer system architecture while solving the problem in parallel.

Источники информацииInformation sources

1. Яковлев С.В., Сафонов И.В., Быкова Т.В. Способ построения программы. Патент на изобретение №2406112, бюл. №34, 2010 г. (аналог).1. Yakovlev S.V., Safonov I.V., Bykova T.V. Method of constructing a program. Patent for invention No. 2406112, bulletin. No. 34, 2010 (analogue).

2. Викторов Д.С., Брежнев Д.Ю., Толмачев А.А., Калачников А.С., Якунина Г.Р. Способ автоматического создания параллельной программы с временной параметризацией многопроцессорных вычислительных систем с одинаковым доступом к памяти. Патент на изобретение №2786347, бюл. №35, 2022 г. (прототип)2. Viktorov D.S., Brezhnev D.Yu., Tolmachev A.A., Kalachnikov A.S., Yakunina G.R. A method for automatically creating a parallel program with time parameterization of multiprocessor computer systems with identical memory access. Patent for invention No. 2786347, Bulletin. No. 35, 2022 (prototype)

Claims (32)

Способ временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой, заключающийся в том, что для реализации способа устройствами вычислительных систем выполняются следующие операции:A method for time synchronization of the operation of a computing system with a reconfigurable architecture, which consists in the fact that to implement the method, the following operations are performed by devices of computing systems: получение блоком входных данных последовательного кода программы, получение от блока входных данных блоком управления мультипараллельной обработки данных упорядоченного выбора лексем исходной последовательной программы и формирование для лексем их дескрипторов;receipt by the input data block of the sequential program code, receipt from the input data block by the multiparallel data processing control block of an ordered selection of tokens of the original sequential program and formation of their descriptors for the tokens; получение блоком управления мультипараллельной обработки данных упорядоченного выбора дескрипторов лексем из сформированного на предшествующем этапе множества дескрипторов, передача в блок статистической и динамической реконфигурации;receipt by the multiparallel data processing control unit of an ordered selection of lexeme descriptors from the set of descriptors formed at the previous stage, transmission to the statistical and dynamic reconfiguration unit; формирование блоком статической и динамической реконфигурации новых структур спецификации программы с детализацией до операций/функций;formation by the static and dynamic reconfiguration unit of new program specification structures with detail down to operations/functions; формирование блоком статической и динамической реконфигурации новых структур спецификации программы с детализацией до фрагментов;formation by the static and dynamic reconfiguration block of new program specification structures with detail down to fragments; оценка блоком оценки эффективности корректности сформированных новых структур спецификаций исходной программы;the efficiency assessment unit evaluates the correctness of the generated new specification structures of the original program; расчёт блоком управления мультипараллельной обработки данных для операторов новой спецификации значений приоритетов;calculation by the control unit of multiparallel data processing for operators of a new specification of priority values; выбор блоком управления мультипараллельной обработки данных рациональной совокупности алгоритмов параллельной обработки данных;selection by the multiparallel data processing control unit of a rational set of parallel data processing algorithms; формирование блоком управления мультипараллельной обработки данных множества операторов-претендентов на начало выполнения в момент времени;formation by the control unit of multiparallel data processing of a plurality of operators-candidates for the start of execution at a moment in time; формирование блоком управления мультипараллельной обработки данных множества операторов-претендентов для реализации на соответствующем ярусе в момент времени и множества операторов памяти;formation by the multiparallel data processing control unit of a plurality of candidate operators for implementation on the corresponding tier at a time and a plurality of memory operators; расчет блоком мультипараллельной обработки данных для каждого оператора новой спецификации значения коэффициента декомпозиции;calculation by the multiparallel data processing unit for each operator of a new specification of the decomposition coefficient value; формирование блоком управления мультипараллельной обработки данных подмножества декомпозиционных операторов;formation by the multiparallel data processing control unit of a subset of decomposition operators; формирование блоком управления мультипараллельной обработки данных множества операторов демультиплексирования временной последовательности входных наборов данных;generation by the multiparallel data processing control unit of a plurality of demultiplexing operators for the time sequence of input data sets; формирование блоком управления мультипараллельной обработки данных множества операторов мультиплексирования временной последовательности выходных наборов результатов выполнения различных копий основного множества операторов;formation by the multiparallel data processing control unit of a set of multiplexing operators of a time sequence of output sets of results of executing various copies of the main set of operators; формирование блоком управления мультипараллельной обработки данных множества операторов управления;formation by the control unit of multiparallel data processing of a plurality of control operators; формирование блоком управления мультипараллельной обработки данных множества значений ярусного времени смежных временных ярусов;generation by the multiparallel data processing control unit of a set of tiered time values of adjacent time tiers; расчёт блоком мультипараллельной обработки данных для операторов расширенного множества значений приоритетов;calculation by the multiparallel data processing block for operators of an extended set of priority values; добавление блоком управления мультипараллельной обработки данных операторов синхронизации, памяти, управления, связи;addition by the control unit of multiparallel data processing of synchronization, memory, control, communication operators; выделение блоком управления мультипараллельной обработки данных множества операторов, начинающих выполняться на соответствующем ярусе в момент времени;allocation by the multiparallel data processing control unit of a plurality of operators that begin to be executed on the corresponding tier at a time; оценка блоком оценки эффективности доступности в текущий момент дискретного времени ресурса функциональных блоков или процессоров;assessment by the block of efficiency assessment of the resource availability of functional blocks or processors at the current moment of discrete time; формирование блоком управления мультипараллельной обработки данных множества операторов, начинающих выполняться на соответствующем ярусе в момент времени;formation by the control unit of multiparallel data processing of a set of operators that begin to be executed on the corresponding tier at a time; формирование блоком управления мультипараллельной обработки данных сопряженно-внешних связей входных операторов памяти временного яруса декомпозиционного фрагмента и входных основных операторов этого фрагмента;formation by the multiparallel data processing control unit of conjugate-external connections of the input memory operators of the temporary tier of the decomposition fragment and the main input operators of this fragment; расчёт блоком мультипараллельной обработки данных очередного номера временного яруса и определение ближайшего момента времени появления свободного ресурса;calculation by the multiparallel data processing block of the next number of the temporary tier and determination of the nearest moment in time when a free resource appears; сравнение блоком контроля мультипараллельной обработки данных номера очередного декомпозиционного фрагмента и максимального значения коэффициента декомпозиции;comparison by the multiparallel data processing control unit of the number of the next decomposition fragment and the maximum value of the decomposition coefficient; формирование блоком управления мультипараллельной обработки данных множества свободных и множества занятых в момент времени функциональных блоков / процессоров;formation by the multiparallel data processing control unit of a plurality of free and a plurality of functional blocks/processors occupied at a given time; расчёт блоком мультипараллельной обработки данных очередных моментов времени освобождения каждого из задействованных функциональных блоков / процессоров;calculation by the multiparallel data processing unit of the next time instants of release of each of the involved functional blocks / processors; коррекция блоком мультипараллельной обработки данных приоритетов операторов новой спецификации;correction by the multiparallel data processing unit of priorities of operators of the new specification; выбор блоком управления мультипараллельной обработки данных одного множества операторов-претендентов на начало выполнения в момент времени;selection by the multiparallel data processing control unit of one set of operators-candidates to begin execution at a time; выбор блоком управления мультипараллельной обработки данных из множества оператор-претендента с наивысшим приоритетом;selection by the control unit of multiparallel data processing from a set of operator-applicants with the highest priority; формирование блоком мультипараллельной обработки данных текстовых спецификаций нитей параллельной программы с временной параметризацией;generation by the multiparallel data processing unit of text specifications of threads of a parallel program with time parameterization; оценка блоком оценки эффективности корректности результатов создания параллельных программ с временной параметризацией;the efficiency evaluation unit evaluates the correctness of the results of creating parallel programs with time parameterization; компилирование блоком мультипараллельной обработки данных созданного параллельного кода с временной параметризацией.compilation of the created parallel code with time parameterization by the multiparallel data processing unit.
RU2023101913A 2023-01-27 Method for time synchronization of operation of reconfigurable architecture computer system RU2820034C1 (en)

Publications (1)

Publication Number Publication Date
RU2820034C1 true RU2820034C1 (en) 2024-05-28

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100281078A1 (en) * 2009-04-30 2010-11-04 Microsoft Corporation Distributed data reorganization for parallel execution engines
EP2657839A3 (en) * 2005-04-12 2014-08-20 Waseda University Multiprocessor system and multigrain parallelizing compiler
RU2745018C1 (en) * 2019-12-24 2021-03-18 Федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина)" Method for paralleling intellectual data analysis in computer environment
RU2748454C1 (en) * 2020-10-02 2021-05-25 Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" Reconfigurable computing system with multi-level monitoring subsystem and automatic control
RU2786347C1 (en) * 2022-03-09 2022-12-20 Федеральное государственное казённое военное образовательное учреждение высшего образования "Военная академия воздушно-космической обороны имени Маршала Советского Союза Г.К. Жукова" Министерства обороны Российской Федерации Method for automatic creation of a parallel program with temporal parameterization of multiprocessor computing systems with the same memory access

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2657839A3 (en) * 2005-04-12 2014-08-20 Waseda University Multiprocessor system and multigrain parallelizing compiler
US20100281078A1 (en) * 2009-04-30 2010-11-04 Microsoft Corporation Distributed data reorganization for parallel execution engines
RU2745018C1 (en) * 2019-12-24 2021-03-18 Федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина)" Method for paralleling intellectual data analysis in computer environment
RU2748454C1 (en) * 2020-10-02 2021-05-25 Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" Reconfigurable computing system with multi-level monitoring subsystem and automatic control
RU2786347C1 (en) * 2022-03-09 2022-12-20 Федеральное государственное казённое военное образовательное учреждение высшего образования "Военная академия воздушно-космической обороны имени Маршала Советского Союза Г.К. Жукова" Министерства обороны Российской Федерации Method for automatic creation of a parallel program with temporal parameterization of multiprocessor computing systems with the same memory access

Similar Documents

Publication Publication Date Title
US11550591B2 (en) Scheduling tasks in a multi-threaded processor
US11113060B2 (en) Combining states of multiple threads in a multi threaded processor
Zimmermann The MIMOLA design system: A computer aided digital processor design method
JP4042604B2 (en) Program parallelization apparatus, program parallelization method, and program parallelization program
US5339420A (en) Partitioning case statements for optimal execution performance
JP2015207318A (en) Method and system for parallelization of sequential computer program codes
JP2011096107A (en) Parallelizing method, system, and program
JP2019049843A (en) Execution node selection program and execution node selection method and information processor
US10606641B2 (en) Scheduling tasks in a multi-threaded processor
US8959498B2 (en) Parallelization method, system and program
US5129037A (en) Neural network for performing beta-token partitioning in a RETE network
US20110271290A1 (en) Method for calling an instance of a function, and corresponding device and computer software
RU2820034C1 (en) Method for time synchronization of operation of reconfigurable architecture computer system
Nicolau et al. Using an oracle to measure potential parallelism in single instruction stream programs
JP2009211424A (en) Optimization point determining device, optimization point determination system, computer program, and optimization point determination method
RU2786347C1 (en) Method for automatic creation of a parallel program with temporal parameterization of multiprocessor computing systems with the same memory access
RU2802777C1 (en) Method for distributing data over memory levels of a computing system with multi-level shared memory
Mohammed et al. Performance reproduction and prediction of selected dynamic loop scheduling experiments
US11573777B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
RU2815189C1 (en) Method for time synchronization of operation of massively parallel computing system with distributed memory
RU2820032C1 (en) Method of distributing data on monofunctional units of processors of computer system with data flow control
RU2818498C1 (en) Method of distributing data on multifunctional processor units with very long command line
RU2818497C1 (en) Method of distributing data on monofunctional processor units with data flow control
CN110795075A (en) Data processing method and device for software programming
CN117809849B (en) Analysis method and system for walking postures of old people with cognitive dysfunction