Способ временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой Российский патент 2024 года по МПК G06F8/30 

Описание патента на изобретение RU2820034C1

Изобретение относится к области обработки цифровых данных с помощью электронных устройств, а именно к способам временной синхронизации работы вычислительной системы, предназначенных для вычислительных систем с реконфигурируемой архитектурой и может быть использовано для сокращения времени обработки цифровой информации вычислительными системами с реконфигурируемой архитектурой.

Известен способ автоматического распараллеливания программ, заключающийся в том, что в алгоритмической части программы предварительно получают граф потока управления, дерево доминаторов, дерево циклов, граф потока данных; выполняют подстановки промежуточного представления процедур в места вызовов; выполняют межпроцедурный анализ потока данных; для обнаружения эквивалентных операций выполняют анализ потока данных, предпочтительно способом нумераций значений; выполняют анализ переменных цикла на инвариантность и индуктивность; выполняют анализ операций доступа в массивы, строят индексы доступа в массивы в виде канонических форм сумм произведений; выполняют слияния циклов; выполняют вынос инвариантных условий; изменяют порядок обхода итерационного пространства циклов; выполняют анализ параллельных циклов [1].

Известен способ создания параллельной программы с временной параметризацией многопроцессорных вычислительных систем с одинаковым доступом к памяти, заключающийся в том, что для реализации способа устройство управления, блок выборки инструкций и арифметико-логическое устройство выполняют следующие операции: получает упорядоченный выбор лексем исходной последовательной программы и формирует для лексемы ее дескриптора; получает упорядоченный выбор дескрипторов лексем из сформированного на предшествующем этапе множества дескрипторов; формирует новые структуры спецификации программы с детализацией до операций/функций; формирует новые структуры спецификации программы с детализацией до фрагментов; проверяет эквивалентности текстовой спецификации программы задачи и ее представления новыми структурами спецификации; рассчитывает для операторов новой спецификации значения приоритетов; формирует множества операторов-претендентов на начало выполнения в момент времени; назначает операторы для реализации на свободный процессор; разрабатывает текстовые спецификации нитей параллельной программы с временной параметризацией; оценивает корректность результатов разработки параллельных программ с временной параметризацией; компилирует созданный параллельный код с временной параметризацией [2].

Недостатками данных способов являются отсутствие учета вычислительных систем с реконфигурируемой архитектурой и отсутствие учета параметра времени.

Одним из возможных путей повышения эффективности обработки информации является создание в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы. Однако при создании в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы возникают проблемы временной синхронизации компонентов архитектуры вычислительной системы, что приводит к снижению эффективности цифровой обработки информации, что необходимо учитывать при работе вычислительной системы с реконфигурируемой архитектурой.

Цель изобретения - повысить эффективность цифровой обработки информации (снизить время обработки информации) за счет временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой при создании в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы.

Указанная цель достигается способом временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой, заключающимся в выполнении следующих процедур:

1. Упорядоченный выбор лексем исходной последовательной программы, определение их принадлежности к тому или иному классу лексем языка программирования высокого уровня, проверке принадлежности лексемы сформированному (к рассматриваемому моменту времени) множеству лексем, включении лексемы в формируемое множество лексем соответствующего типа (в случае ее отсутствия в составе множества), формировании для лексемы ее дескриптора, задающего числовое кодирование необходимых атрибутов.

2. Упорядоченный выбор дескрипторов лексем из сформированного на предшествующем этапе множества дескрипторов, определении соответствующей рассматриваемому дескриптору конструкции языка программирования высокого уровня, формировании для этой конструкции постфиксной спецификации на основе метода формирования обратной польской записи в соответствии с алгоритмом Дейкстры на основе применения «механизма стека» с приоритетами, позволяющего изменить порядок следования символов операндов и операций.

3. Формирование новых структур спецификации программы, описывающих исходную программу с детализацией до операций/функций:

- выделение из множества элементов постфиксной спецификации программы подмножества операторов операций/функций программы;

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

- сквозную нумерацию входов для каждого оператора и выходов;

- ввод числового кодирования типов операторов на основе постфиксного представления каждой операции/функции;

- формирование для каждого оператора сформированной числовой спецификации множества номеров его операндов и задание его мощности;

- формирование для каждого оператора множества его внешних операторов (использующих результаты выполнения оператора) и задание его мощности;

- формирование, исходя из постфиксного представления операций/функций, для каждого оператора соответствующих меток.

4. Формирование новых структур спецификации программы, описывающих исходную программу с детализацией до фрагментов:

- выделение из множества операторов основной структуры подмножеств операторов, имеющих одинаковое значение номера фрагмента:

- определение для каждого подмножества номеров и типов входных и выходных операторов, фиксация их управляющих связей и соответствующих меток передач управления;

- формирование в числовом формате основной и связной структуры, специфицирующих типы и схему управляющих связей фрагментов.

Результатами являются следующие новые структуры спецификации программы на этом уровне:

- основная структура фрагментов: номер фрагмента; метки фрагментов; типы фрагментов; указатели на номер фрагмента; мощность сопряженного множества для фрагмента; указатель на начало последовательности номеров фрагментов, образующих внешнее множество фрагмента; мощность внешнего множества для фрагмента; метки фрагментов безусловного перехода и условного перехода по значению «истина»; метки фрагментов условного перехода по значению «ложь» программы.

- связная структура фрагментов: номер строк структуры связей; указатель на продолжение последовательности номеров фрагментов, образующих сопряженное множество фрагмента для рассматриваемого фрагмента; сопряженное множество фрагмента для рассматриваемого фрагмента; указатель на продолжение последовательности номеров фрагмента, образующих внешнее множество фрагмента для рассматриваемого фрагмента; внешнее множество фрагмента.

5. Оценка корректности сформированных новых структур спецификаций исходной программы с целью проверки эквивалентности текстовой спецификации программы задачи и ее представления новыми структурами спецификации, т.е. оценку типов данных, типов операций/функций над данными, связей операций по данным и по управлению, корректность единиц измерения физических величин, корректность моментов начала и длительности вычислительных операций/функций и операторов передач управления и синхронизации временных параллельных процессов.

6. Расчет для операторов новой спецификации значения приоритетов, определяющего важность оператора по отношению к другим операторам, из множества и тем самым очередность его рассмотрения при решении задачи вы- деления оборудования с целью его реализации.

В общем случае во множество операторов могут входить операторы, принадлежащие различным задачам, для которых рассматривается задача параллельной реализации. В таких случаях рассчитывается общий приоритет оператора, приоритеты всех алгоритмов, имеющих по сравнению с данным алгоритмом более высокий приоритет, а также корректируются для каждого из таких алгоритмов частные приоритеты его операторов.

Для различных «частных» алгоритмов задач приоритеты операторов могут определяться в соответствии с различными стратегиями (по максимальному времени выполнения ветвей алгоритма, содержащих данный оператор в качестве начального оператора ветви; по времени выполнения оператора; присвоение абсолютных приоритетов некоторым операторам; «динамические приоритеты» (приоритет оператора может изменяться с течением времени и устанавливаться в определенные моменты времени в зависимости от выполнения некоторых условий)).

7. Выбор рациональной совокупности алгоритмов параллельной обработки данных (совмещение независимых операций, конвейерная обработка, декомпозиционная обработка) для заданных требований и ограничений:

а) для одной задачи:

- алгоритм совмещение независимых операций: время выполнения задачи; время выполнения задачи и сложность аппаратных средств;

- алгоритм конвейерной обработки и алгоритм декомпозиционной обработки: период обновления исходных данных; период обновления исходных данных и сложность аппаратных средств;

- алгоритм совмещение независимых операций, алгоритм конвейерной обработки и алгоритм декомпозиционной обработки: время выполнения задачи и период обновления исходных данных; время выполнения задачи и период обновления исходных данных и сложность аппаратных средств;

б) для двух и более задач:

- алгоритм конвейерной обработки и алгоритм декомпозиционной обработки: период обновления исходных данных; период обновления исходных данных и сложность аппаратных средств;

- алгоритм совмещение независимых операций, алгоритм конвейерной обработки и алгоритм декомпозиционной обработки: время выполнения задач; время выполнения задачи и период обновления исходных данных; время выполнения задачи и сложность аппаратных средств; время выполнения задачи и период обновления исходных данных и сложность аппаратных средств.

8. Формирование множества операторов-претендентов на начало выполнения в момент времени, которое состоит из множества операторов, реализация которых не была начата ранее в связи с отсутствием данного одного и более операндов и множества операторов, выполнение которых может быть начато в текущий момент времени в связи с наличием всех необходимых для них данных с учетом ранее выполненных операторов и информационно- управляющих связей между операторами, при использовании алгоритма совмещения независимых операций.

9. Формирование множества операторов-претендентов для реализации на соответствующем ярусе в момент времени и формирование множества операторов памяти, обеспечивающих запись значений данных программы для определения времени начала выполнения конвейерных ступеней, при использовании алгоритма совмещения независимых операций и алгоритма конвейерной обработки.

В основе реализации процедуры лежит выполнение следующих условий и действий:

- первый временной ярус и ярусное время равное единице - ввод интерфейсных входных операторов памяти и их атрибутов;

- второй временной ярус и ярусное время равное сумме единицы и времени задержки операторов памяти - ввод входных операторов памяти первой конвейерной ступени и их атрибутов;

- для первого или следующего яруса ступени конвейера с ярусным временем больше одного такта при выполнении условий, когда ярусное время больше или равно сумме периода обновления данных предшествующей ступени и времени задержки операторов памяти и меньше или равно разности текущей и времени задержки операторов памяти - формирование множества операторов-претендентов на ярус из операторов с необходимой коррекцией их атрибутов;

- для второго и следующего яруса ступени конвейера при выполнении условия, когда ярусное время равно разности произведения номера яруса на период обновления входных данных и времени задержки операторов памяти -ввод выходных операторов памяти конвейерной ступени и их атрибутов; при выполнении условия, когда ярусное время равно произведению номера предшествующей ступени на период обновления входных данных - ввод входных операторов памяти конвейерной ступени и их атрибутов;

- при выполнении условия, когда ярусное время равно произведению номера последней ступени на период обновления входных данных - ввод интерфейсных выходных операторов памяти и их атрибутов.

10. Расчет для каждого оператора новой спецификации значения коэффициента декомпозиции, как отношение время выполнения оператора к требуемому значению периода обновления данных и определение максимального значения коэффициента декомпозиции.

11. Формирование подмножества декомпозиционных операторов со следующими атрибутами: тип оператора; время выполнения; момент начала выполнения оператора; структура сопряженных и внешних связей основного оператора с операторами основного множества.

12. Формирование множества операторов демультиплексирования временной последовательности входных наборов данных на входные операторы соответствующих копий основного множества операторов.

13. Формирование множества операторов мультиплексирования временной последовательности выходных наборов результатов выполнения различных копий основного множества операторов.

14. Формирование множества операторов управления, обеспечивающих ввод сигналов временной синхронизации и операторов подсчета суммы тактовых сигналов и формирование сигналов для управления операторами демультиплексирования.

15. Формирование множества значений ярусного времени смежных временных ярусов: для первого яруса равно единице; для второго и последующего ярусов равно сумме времени первого яруса и произведения номера предшествующего яруса на период обновления входных данных.

16. Расчет для операторов расширенного множества значений приоритетов, определяющих очередность рассмотрения операторов при решении задачи назначения на выполнение.

17. Добавление оператора синхронизации на нулевой ярус, оператора памяти исходных данных и операторов управления на первый ярус и операторов связи на второй ярус.

18. Выделение из расширенного множества подмножества операторов, для начала выполнения которых на ярусе фрагмента готовы соответствующие операнды.

19. Оценка доступного в текущий момент дискретного времени ресурса функциональных блоков или процессоров.

20. Формирование множества операторов, начинающих выполняться на соответствующем ярусе в момент времени (при наличии в момент времени необходимого для их выполнения свободного ресурса).

21. Формирование сопряженно-внешних связей входных операторов памяти временного яруса декомпозиционного фрагмента и входных основных операторов этого фрагмента (при выполнении условия, что, все операторы множества являются входными для фрагмента).

22. Расчет очередного номера временного яруса и определение ближайшего момента времени появления свободного ресурса, определяющий значение ярусного времени.

23. Проверка условия, что номер очередного декомпозиционного фрагмента больше максимального значения коэффициента декомпозиции, в случае невыполнения условия формирование номера очередного декомпозиционного фрагмента и очередной номер временного яруса, процедуры 10-23 при использовании алгоритма совмещения независимых операций, алгоритма конвейерной обработки, алгоритма декомпозиционной обработки или оптимальной комбинации этих алгоритмов.

24. Формирование множества свободных и множества занятых в момент времени функциональных блоков / процессоров.

25. Расчет очередных моментов времени освобождения каждого из задействованных функциональных блоков (процессоров) для случая конвейерной и декомпозиционной обработки для всех функциональных блоков любого фрагмента определяется как сумма ярусного времени входного яруса рассматриваемого фрагмента и заданного периода обновления данных. Ярусное время входного яруса любого фрагмента определяется как минимальное время операторов рассматриваемого фрагмента, реализация которых была начата на временных ярусах текущего и предшествующего фрагментов.

26. Коррекция приоритетов операторов новой спецификации с учетом введенных при конвейерной и/или декомпозиционной обработке данных.

27. Выбор одного множества операторов-претендентов на начало выполнения в момент времени из множеств, сформированных ранее при использовании различных алгоритмов обработки данных.

28. Выбор из множества оператора-претендента с наивысшим приоритетом, фиксации типа соответствующей операции, проверке наличия свободного в момент времени функционального блока (процессора) и назначение оператора для реализации на свободный функциональный блок (процессор). При отсутствии необходимого для выполнения оператора свободного функционального блока (процессора), такой оператор включается в состав претендентов на начало реализации в очередной момент времени, путем его включения в формируемое процедурой множество.

Одновременно с назначением оператора на реализацию с помощью соответствующего функционального блока (процессора) этот функциональный блок (процессор) переводится в состояние «занят» и рассчитывается момент завершения выполнения им оператора и перехода функционального блока (процессора) в состояние «свободен».

Эта последовательность действий повторяется для каждого следующего по приоритету оператора-претендента множества. Процесс назначения операторов на выполнение заканчивается либо при завершении рассмотрения всех операторов множества, либо при отсутствии свободных функциональных блоков (процессоров).

Процедура завершается при окончании рассмотрения и расстановки на временных ярусах всех операторов задачи в новом формате.

29. Формирование текстовых спецификаций нитей параллельной программы с временной параметризацией включает формирование следующих объектов:

- текстовых спецификаций временных нитей параллельной программы со встроенными средствами управления временной синхронизации, тактового сиг- нала, операторы связи;

- структур временной спецификации параллельной программы в виде индивидуальных текстов нитей программ функциональных блоков (процессоров) вычислительной системы со встроенными средствами управления времен- ной синхронизации, тактового сигнала, операторы связи;

- оценок суммарного количества обращений к каждому данному, необходимое для выполнения исходной программы.

Исходные данные этапа формирования текстовых спецификаций временных нитей параллельной программы: новые структуры (основная, связная) параллельного процесса с временной параметризацией, удовлетворяющие заданным требованиям (время выполнения операций/функций, количество одновременно/параллельно выполняемых операций/функций задачи, время решения задачи и/или ограничения на интервал ввода данных, состав используемых алгоритмов параллельной обработки, в т.ч. состав может быть не определен); закрепление операторов за нитями или функциональными блоками (процессорами); характеристики вычислительной системы с реконфигурируемой архитектурой: периода обновления данных, время реализации, сложность аппаратных средств, библиотеки аппаратных блоков, время выполнения операций (функций), состав алгоритмов параллельной обработки данных.

30. Основные этапы формирования текстовых спецификаций временных нитей программ параллельной программы включают:

- цикл по номерам операторов, фрагментов основной структуры;

- определение номера функционального блока (процессора), реализующего оператор, фрагмент;

- формирование текстовой спецификации оператора/операции, фрагмента, включающее:

1) выборка из связной структуры имен сопряженных операторов, фрагментов и запись текстовой спецификации оператора, фрагмента;

2) выборка из связной структуры имен сопряженных операторов, фрагментов, замена имен операторов, фрагментов на их действительные адреса и запись текстовой спецификации оператора, фрагмента;

3) временная параметризация операторов, фрагментов процессных нитей программ;

4) представление текстовых спецификаций нитей программ с временной параметризацией каждого из функциональных блоков (процессоров) для программ в виде: основной структуры с дополнением массива фрагментов, массива временных ярусов, связной структуры и дополнительно введенных групп операторов (основных, памяти, переименованных переменных, управления синхронизации, связи данных).

31. Оценка корректности результатов создания параллельных программ с временной параметризацией, т.е. оценка корректности типов данных, типов операций/функций над данными, связей операций по данным и по управлению, корректность единиц измерения физических величин, корректность моментов начала и длительности вычислительных операций/функций, фрагментов и операторов передач управления и синхронизации временных параллельных процессов.

32. Компилирование созданного параллельного кода с временной параметризацией.

Таким образом, для повышения эффективности цифровой обработки информации (снижения времени решения задачи) следует сформировать временные нити программы с учетом требования создания в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы при параллельном решении задачи и обеспечить необходимую временную синхронизацию работы вычислительной системы с реконфигурируемой архитектурой.

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

1. Учет вычислительной системы с реконфигурируемой архитектурой.

2. Учет состава используемых алгоритмов параллельной обработки данных при параллельном решении задачи

3. Учет параметра времени начала выполнения операторов и операндов параллельного алгоритма в вычислительной системе с реконфигурируемой архитектурой.

Данные признаки обладают существенными отличиями, так как в известных способах не обнаружены.

Применение новых признаков, в совокупности с известными позволит повысить эффективность цифровой обработки информации за счёт создания в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы с реконфигурируемой архитектурой при параллельном решении задачи.

Способ временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой реализуется следующим образом.

На фиг.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 предназначен для проверки корректности мультипараллельной обработки данных.

Рассмотрим пошаговое выполнение предложенного способа временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой в описанной выше системе (Фиг. 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).

Таким образом, предлагаемый способ позволит снизить время решения задачи в вычислительной системе с реконфигурируемой архитектурой до 26% при работе вычислительной системы с реконфигурируемой архитектурой, то есть повысить эффективность цифровой обработки информации за счет временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой при создании в каждом временном такте параллельного вычислительного процесса всех динамических связей между компонентами архитектуры вычислительной системы при параллельном решении задачи.

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

1. Яковлев С.В., Сафонов И.В., Быкова Т.В. Способ построения программы. Патент на изобретение №2406112, бюл. №34, 2010 г. (аналог).

2. Викторов Д.С., Брежнев Д.Ю., Толмачев А.А., Калачников А.С., Якунина Г.Р. Способ автоматического создания параллельной программы с временной параметризацией многопроцессорных вычислительных систем с одинаковым доступом к памяти. Патент на изобретение №2786347, бюл. №35, 2022 г. (прототип)

Похожие патенты RU2820034C1

название год авторы номер документа
Способ распределения данных по уровням памяти вычислительной системы с разноуровневой общей памятью 2022
  • Толмачев Алексей Александрович
  • Викторов Дмитрий Сергеевич
RU2802777C1
Способ автоматического создания параллельной программы с временной параметризацией многопроцессорных вычислительных систем с одинаковым доступом к памяти 2022
  • Викторов Дмитрий Сергеевич
  • Брежнев Дмитрий Юрьевич
  • Толмачёв Алексей Александрович
  • Калачников Андрей Сергеевич
  • Якунина Гаяне Размиковна
RU2786347C1
Способ временной синхронизации работы массивно-параллельной вычислительной системы с распределенной памятью 2022
  • Толмачев Алексей Александрович
  • Викторов Дмитрий Сергеевич
RU2815189C1
Способ распределения данных по монофункциональным блокам процессоров вычислительной системы с управлением потоком данных 2024
  • Толмачев Алексей Александрович
  • Викторов Дмитрий Сергеевич
  • Хапёрский Алексей Андреевич
  • Дергунов Андрей Михайлович
RU2820032C1
Способ распределения данных по монофункциональным блокам процессора с управлением потоком данных 2024
  • Толмачев Алексей Александрович
  • Викторов Дмитрий Сергеевич
  • Почтарев Андрей Александрович
RU2818497C1
Способ распределения данных по многофункциональным блокам процессора со сверхдлинной командной строкой 2024
  • Толмачев Алексей Александрович
  • Викторов Дмитрий Сергеевич
  • Почтарев Андрей Александрович
RU2818498C1
Система и способ обработки данных и распознавания объектов в режиме реального времени 2022
  • Верютин Максим Викторович
  • Иванов Юрий Викторович
RU2802280C1
ЦИФРОВОЙ ВЫЧИСЛИТЕЛЬНЫЙ КОМПЛЕКС ДЛЯ ОБРАБОТКИ СИГНАЛОВ В ГИДРОАКУСТИЧЕСКИХ СИСТЕМАХ 2001
  • Бетелин В.Б.
  • Капустин Г.И.
  • Кокурин В.А.
  • Корякин Ю.А.
  • Лисс А.Р.
  • Немытов А.И.
  • Першин А.С.
  • Рыжиков А.В.
  • Челпанов А.В.
  • Шалин С.А.
RU2207620C2
Реконфигурируемый вычислительный модуль 2018
  • Андрюшин Дмитрий Валентинович
  • Биконов Дмитрий Владиленович
  • Бутов Алексей Александрович
  • Гаврилов Святослав Андреевич
  • Горбунов Виктор Станиславович
  • Никитин Анатолий Иванович
  • Панасенков Алексей Викторович
  • Равчеев Андрей Валерьевич
  • Семенов Александр Александрович
  • Степанов Антон Сергеевич
  • Пеплов Илья Сергеевич
  • Шмаленко Дмитрий Сергеевич
  • Эйсымонт Леонид Константинович
RU2686017C1
УСТРОЙСТВО, СИСТЕМА И СПОСОБ КОНФИГУРИРОВАНИЯ РАДИОПРИЕМОПЕРЕДАТЧИКА 2015
  • Мюк Маркус Доминик
  • Иванов Владимир
RU2644990C2

Иллюстрации к изобретению RU 2 820 034 C1

Реферат патента 2024 года Способ временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой

Изобретение относится к области обработки цифровых данных. Заявлен способ временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой, в котором устройство управления, блок выборки инструкций, арифметико-логическое устройство выполняют операции, на которых формируют для набора лексем дескрипторы, получают упорядоченный выбор дескрипторов лексем из сформированного на предшествующем этапе множества дескрипторов, разрабатывают новые структуры спецификации программы с детализацией до операций/функций, проверяют эквивалентности текстовой спецификации программы задачи и ее представления новыми структурами спецификации, определяют для операторов новой спецификации значения приоритетов, формируют множества операторов-претендентов на начало выполнения в момент времени, назначают оператора для реализации на свободный процессор, разрабатывают текстовые спецификации нитей параллельной программы с временной параметризацией, оценивают корректность результатов параллельного решения задачи с временной параметризацией. Техническим результатом является снижение времени решения задачи вычислительной системой за счет временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой. 1 ил.

Формула изобретения RU 2 820 034 C1

Способ временной синхронизации работы вычислительной системы с реконфигурируемой архитектурой, заключающийся в том, что для реализации способа устройствами вычислительных систем выполняются следующие операции:

получение блоком входных данных последовательного кода программы, получение от блока входных данных блоком управления мультипараллельной обработки данных упорядоченного выбора лексем исходной последовательной программы и формирование для лексем их дескрипторов;

получение блоком управления мультипараллельной обработки данных упорядоченного выбора дескрипторов лексем из сформированного на предшествующем этапе множества дескрипторов, передача в блок статистической и динамической реконфигурации;

формирование блоком статической и динамической реконфигурации новых структур спецификации программы с детализацией до операций/функций;

формирование блоком статической и динамической реконфигурации новых структур спецификации программы с детализацией до фрагментов;

оценка блоком оценки эффективности корректности сформированных новых структур спецификаций исходной программы;

расчёт блоком управления мультипараллельной обработки данных для операторов новой спецификации значений приоритетов;

выбор блоком управления мультипараллельной обработки данных рациональной совокупности алгоритмов параллельной обработки данных;

формирование блоком управления мультипараллельной обработки данных множества операторов-претендентов на начало выполнения в момент времени;

формирование блоком управления мультипараллельной обработки данных множества операторов-претендентов для реализации на соответствующем ярусе в момент времени и множества операторов памяти;

расчет блоком мультипараллельной обработки данных для каждого оператора новой спецификации значения коэффициента декомпозиции;

формирование блоком управления мультипараллельной обработки данных подмножества декомпозиционных операторов;

формирование блоком управления мультипараллельной обработки данных множества операторов демультиплексирования временной последовательности входных наборов данных;

формирование блоком управления мультипараллельной обработки данных множества операторов мультиплексирования временной последовательности выходных наборов результатов выполнения различных копий основного множества операторов;

формирование блоком управления мультипараллельной обработки данных множества операторов управления;

формирование блоком управления мультипараллельной обработки данных множества значений ярусного времени смежных временных ярусов;

расчёт блоком мультипараллельной обработки данных для операторов расширенного множества значений приоритетов;

добавление блоком управления мультипараллельной обработки данных операторов синхронизации, памяти, управления, связи;

выделение блоком управления мультипараллельной обработки данных множества операторов, начинающих выполняться на соответствующем ярусе в момент времени;

оценка блоком оценки эффективности доступности в текущий момент дискретного времени ресурса функциональных блоков или процессоров;

формирование блоком управления мультипараллельной обработки данных множества операторов, начинающих выполняться на соответствующем ярусе в момент времени;

формирование блоком управления мультипараллельной обработки данных сопряженно-внешних связей входных операторов памяти временного яруса декомпозиционного фрагмента и входных основных операторов этого фрагмента;

расчёт блоком мультипараллельной обработки данных очередного номера временного яруса и определение ближайшего момента времени появления свободного ресурса;

сравнение блоком контроля мультипараллельной обработки данных номера очередного декомпозиционного фрагмента и максимального значения коэффициента декомпозиции;

формирование блоком управления мультипараллельной обработки данных множества свободных и множества занятых в момент времени функциональных блоков / процессоров;

расчёт блоком мультипараллельной обработки данных очередных моментов времени освобождения каждого из задействованных функциональных блоков / процессоров;

коррекция блоком мультипараллельной обработки данных приоритетов операторов новой спецификации;

выбор блоком управления мультипараллельной обработки данных одного множества операторов-претендентов на начало выполнения в момент времени;

выбор блоком управления мультипараллельной обработки данных из множества оператор-претендента с наивысшим приоритетом;

формирование блоком мультипараллельной обработки данных текстовых спецификаций нитей параллельной программы с временной параметризацией;

оценка блоком оценки эффективности корректности результатов создания параллельных программ с временной параметризацией;

компилирование блоком мультипараллельной обработки данных созданного параллельного кода с временной параметризацией.

Документы, цитированные в отчете о поиске Патент 2024 года RU2820034C1

Способ автоматического создания параллельной программы с временной параметризацией многопроцессорных вычислительных систем с одинаковым доступом к памяти 2022
  • Викторов Дмитрий Сергеевич
  • Брежнев Дмитрий Юрьевич
  • Толмачёв Алексей Александрович
  • Калачников Андрей Сергеевич
  • Якунина Гаяне Размиковна
RU2786347C1
РЕКОНФИГУРИРУЕМАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА С МНОГОУРОВНЕВОЙ ПОДСИСТЕМОЙ МОНИТОРИНГА И АВТОМАТИЧЕСКИМ УПРАВЛЕНИЕМ 2020
  • Будкина Ольга Анатольевна
  • Воротников Константин Игоревич
  • Демин Федор Вячеславович
  • Парамонов Виктор Викторович
  • Симонов Аркадий Васильевич
  • Титов Александр Георгиевич
  • Цыбов Александр Альбертович
RU2748454C1
СПОСОБ РАСПАРАЛЛЕЛИВАНИЯ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА ДАННЫХ В ВЫЧИСЛИТЕЛЬНОЙ СРЕДЕ 2019
  • Холод Иван Иванович
  • Малов Алексей Викторович
  • Родионов Сергей Васильевич
RU2745018C1
СИСТЕМА И СПОСОБ УПРАВЛЕНИЯ РАДИОМОДУЛЕМ ТРАНСПОРТНОГО СРЕДСТВА 2014
  • Макдэниел Джерри Уэйн
RU2657839C2
US 20100281078 A1, 04.11.2010.

RU 2 820 034 C1

Авторы

Толмачев Алексей Александрович

Викторов Дмитрий Сергеевич

Даты

2024-05-28Публикация

2023-01-27Подача