Bychkov Igor Vyacheslavovich - Matrosov Institute for System Dynamics and Control Theory of SB RAS; e-mail: idstu @icc.ru; 134, Lermontov street, Irkutsk, 664033, Russia; phone: 427100; director; academician of RAS; dr. of eng. sc.; professor.
Oparin Gennadiy Anatolyevich - e-mail: prn51@icc.ru; phone: 428925; deputy director; dr. of eng. sc.; professor.
Bogdanova Vera Gennadyevna - e-mail: bvg@icc.ru; phone: +79248349573; senior researcher; cand. of eng. sc.; associate professor.
Pashinin Anton Alekseevich - e-mail: apcrol@gmail.com; phone: +79148868361; junior researcher.
УДК 004.4.242 DOI 10.23683/2311-3103-2019-7-132-142
С.А. Дудко, И.И. Левин
АВТОМАТИЧЕСКАЯ РАССТАНОВКА ТРИГГЕРОВ СИНХРОНИЗАЦИИ ПРИ СИНТЕЗЕ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ ДЛЯ РЕКОНФИГУРИРУЕМЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
В настоящее время одной из проблем, возникающих при решении прикладных задач на программируемых логических интегральных схемах, является необходимость выравнивания (синхронизации) цифровых сигналов по фронтам для устойчивой (стабильной) работы вычислительной схемы. Существующие подходы к решению данной проблемы имеют ряд недостатков - требуют большего количества аппаратного ресурса или значительно увеличивают время разработки. Для эффективного решения этой проблемы необходимо объединить в одном методе преимущества существующих систем (получить гарантированное решение в сжатые временные сроки) и при этом избавиться от их недостатков. В данной работе рассматривается возможность реализации такого метода - метода автоматической расстановки триггеров синхронизации. В основе предложенного метода лежит учет коэффициента максимального ветвления при расстановке триггеров синхронизации, так как существующие средства автоматизированного проектирования не могут справиться с синтезом задач, имеющих высокий коэффициент ветвления элементов, при заполнении кристалла, близком к максимальному (80-90 %). Основной задачей разработанного метода является соблюдение баланса между устойчивой работой схемы и оптимизацией занимаемого аппаратного ресурса, требующегося для синхронизации сигналов. Предлагаемый метод был реализован в многокристальном синтезаторе схемотехнических решений Fire!Constructor, который является частью среды проектирования COLAMO, позволяющей создавать эффективные параллельные программы с производительностью, близкой к производительности решений, полученных при программировании с использованием языков описания аппаратуры. Оценка эффективности полученного решения проводилась на задачах из области линейной алгебры, цифровой обработки сигналов, а также символьной обработки данных. Применение предложенного метода позволило получить решения, которые были успешно синтезированы с помощью средств автоматизированного проектирования Xilinx Vivado 2018.2 на частотах в диапазоне от 250 до 400 МГц. В результате проведенных исследований было выявлено, что применение разработанного метода приводит к сокращению времени на разработку и тестирование программ для РВС при решении прикладных задач от нескольких дней (2-3) при ручной расстановке триггеров (из-за необходимости перетрансляции решений средствами САПР), до нескольких (1-2) минут. При этом суммарный аппаратный ресурс не более чем на 5 % превышает ресурс, получаемый при ручной (условно оптимальной) расстановке.
Оптимизирующий синтезатор; программируемые логические интегральные схемы; реконфигурируемые вычислительные системы.
S.A. Dud ko, I.I. Levin
AUTOMATIC PLACING OF SYNCHRONIZATION FLIPFLOPS DURING PARALLEL PROGRAMS SYNTHESIS FOR RECONFIGURABLE COMPUTER
SYSTEMS
At present, one of the problems of application implementation in the field ofprogrammable gate arrays is edge-triggered clocking for stable operation of computing circuits. The existing approaches to solution of the problem have several shortcomings; they require larger hardware resource or significantly increase the design time. For efficient solution of this problem, it is necessary to combine advantages of existing CADs (a guaranteed solution, obtained in tight time limits) in one method, and avoid their shortcomings. In the paper we consider implementability of such method of automatic placing of synchronization flipflops. The suggested method is based on accounting of the maximal fanout coefficient at placing of synchronization flipflops, because the existing CAD-tools are not capable to synthesize tasks with the high fanout coefficient, when a chip is filled up to 80-90 %. The main purpose of the developed method is keeping balance between stable operation of a circuit and optimization of occupied hardware, which is required for edge-triggered clocking. The suggested method was implemented as a part of the multichip synthesizer of circuit solutions Fire!Constructor, which in its turn is a part of the COLAMO development environment, used for creation of efficient parallel applications. Their performance is close to the performance of solutions, designed with the help of architecture description languages. We estimated the efficiency of the obtained solution with the help of tasks from such problem domains as linear algebra, digital signal and symbolic processing. Owing to application of the suggested method, we obtained solutions which were successfully wired by the Xilinx Vivado 2018.2 CAD tools for the frequency range from 250 to 400 MHz. Our research has shown, that application of the developed method provides decreasing of the development time and the debugging time for RCS applications from several days (2-3 days, required for re-translation of designed solutions by CAD-tools because of manual placing of synchronization flipflops) to several minutes (1-2). In this case, the total hardware resource exceeds the resource, occupied by manual (suboptimal) placing, not more than by 5 %.
Optimizing synthesizer; field programmable gate arrays; reconfigurable computer systems.
Введение. В последнее время интенсивно развиваются реконфигурируемые вычислительные системы (РВС), основным аппаратным ресурсом которых является поле связанных программируемых логических интегральных схем (ПЛИС) [1-3]. Рост производительности кристаллов ПЛИС, опережающий рост традиционных микропроцессоров, и архитектурные особенности кристаллов ПЛИС позволяют при более низкой частоте на целых классах задач существенно превосходить по реальной производительности кластерные вычислительные системы [4].
В настоящее время при разработке программ для РВС используются языки HDL-группы [5, 6] и различные средства автоматизированного проектирования (САПР), предназначенные для программирования отдельных кристаллов ПЛИС [7], но не их совокупности. При проектировании многокристальных решений разработчику приходится самостоятельно разбивать исходную задачу на фрагменты, каждый из которых может быть структурно реализован в отдельной ПЛИС РВС, что требует дополнительных временных затрат на анализ и тестирование полученного решения.
Перспективным направлением в области программирования многокристальных РВС является использование среды программирования языка высокого уровня COLAMO [8-10]. В состав среды входит транслятор языка COLAMO [11], который преобразует текст исходной программы в информационный граф [12], а также многокристальный синтезатор схемотехнических решений Fire!Constructor [13], выполняющий компоновку информационного графа по кристаллам ПЛИС [14] и синхронизацию цифровых сигналов.
При программировании ПЛИС используются схемотехнические элементы, обладающие различными характеристиками латентности и быстродействия, которые приводят к задержке распространения цифрового сигнала в схеме [15, 16]. Расхождение между задержками может привести к неправильной или нестабильной работе схемы [17]. Для обеспечения стабильности схемы в схемотехнике используются так называемые «триггеры синхронизации», которые выравнивают цифровые сигналы по фронтам, что позволяет увеличить частоту работы получаемого решения.
В настоящее время применяются два подхода для синхронизации сигналов: использование схемотехнических элементов с установленными триггерами на выходе и ручная расстановка триггеров в тексте программы. Первый подход позволяет гарантированно получить работающую на высокой частоте схему, но при этом приводит к значительному росту суммарной латентности схемы и нерациональному использованию аппаратных ресурсов кристалла ПЛИС для синхронизации сигналов. Второй подход требует не только высокой квалификации специалиста, но и больших временных затрат для получения работающего решения: 1-2 дня в зависимости от сложности схемы.
Поэтому создание метода автоматической расстановки триггеров синхронизации, учитывающего коэффициент максимального ветвления элементов и позволяющего получить решение прикладной задачи на заданной частоте в короткие сроки, является актуальным для программирования многокристальных РВС.
Анализ особенностей автоматической расстановки триггеров синхронизации. Проблема, возникающая при расстановке триггеров синхронизации, заключается в том, что для повышения частоты и, соответственно, общего быстродействия необходимо сокращать длину несинхронизированных участков цепи установкой триггеров синхронизации, что приводит к росту числа триггеров и увеличению аппаратных затрат, уменьшая при этом число возможных для размещения устройств и общую производительность схемы. Поэтому важно соблюсти баланс между числом триггеров синхронизации, необходимых для устойчивой работы схемы, и накладными расходами - аппаратным ресурсом, отводимым для синхронизации.
В связи с этим основная задача метода автоматической расстановки триггеров синхронизации - это выбор рационального положения и необходимого количества триггеров при соблюдении баланса между аппаратными затратами и устойчивой работой схемы на заданной частоте.
При реализации метода автоматической расстановки триггеров синхронизации важно учитывать блоки с логическими элементами или непосредственно сами логические элементы, так как именно данные блоки при синтезе будут представлены в виде LUT таблиц (Look-up table) [18, 19], которые характеризуются большим коэффициентом ветвления - количеством связей между данным элементом и соседними.
Под коэффициентом ветвления (K) будем понимать предельное количество ветвлений каждого разряда входных/выходных потоков внутри блока в одном из направлений.
Для несинхронизированных соседних блоков (без триггера синхронизации между ними) рассчитывается суммарный коэффициент ветвления. Суммарный коэффициент ветвления нескольких блоков (SK) будет равен произведению выходной разрядности триггера (TR) на произведение коэффициентов ветвления каждого из блоков в отдельности
sK = TRnji=0Ki- (1)
Если между двумя триггерами нет ветвлений, то коэффициент ветвления между триггерами (TK) совпадает с SK. Если сигнал одного триггера разветвляется на несколько триггеров, то рассчитывается суммарный коэффициент ветвления, равный сумме коэффициентов ветвления SK на каждой из ветвей
TK = IÍ=oV (2)
Максимальное количество последовательно расположенных связных логических элементов в блоке, считая от входа до выхода, будем называть «внутренней латентностью» блока, которая показывает задержку распространения первого данного цифрового сигнала внутри блока.
Введем максимально возможное значение коэффициента ветвления
Ктах ~ Ртах * П ¿=оВтах > (3)
где Ртах - максимальная разрядность данных, Втах - максимальное значение ветвления внутри блока, j - количество элементов, обладающих Втах, которые могут быть расположены последовательно друг за другом без прореживания триггерами синхронизации
. _ коэф.прореживания
Lmax
где Lтах - «внутренняя латентность» блока, обладающего Втах.
Высокое значение коэффициента ветвления негативно влияет на способность средств САПР к синтезу загрузочных конфигурационных файлов ПЛИС, особенно для многокристальных проектов с высоким (80-90 %) заполнением. Практически чем выше значение коэффициента ветвления, тем ниже вероятность получить решение на заданной частоте средствами САПР (Xilinx Vivado).
Метод синхронизации вычислительных схем для РВС. Разрабатываемый метод автоматической расстановки триггеров синхронизации должен учитывать коэффициент ветвления и включать в себя следующие этапы:
1) расчет ветвлений элемента в двух направлениях;
2) расстановку опорных триггеров в местах наибольшего ветвления;
3) расстановку триггеров синхронизации (прореживание) вычислительной структуры дополнительными триггерами при необходимости.
Обобщенная блок-схема разработанного алгоритма представлена на рис. 1.
)
Привести граф к ЯПФ
Удалить из таблицы ветвления строки с максимальным значением коэф. ветвления
Выделить элементы с «внутренней латентностью» большей 1
Создать таблицу ветвления
1 ~
Выделить элементы с максимальным «ветвлением»
Установить «опорные» синхронизирующие триггеры
Расставить триггеры между «опорными триггерами»
Конец
э
Рис. 1. Алгоритм автоматической расстановки триггеров синхронизации
Первый этап метода заключается в расчете коэффициента ветвлений элемента в двух направлениях. Данный этап состоит из следующих шагов.
1.1) Привести информационный граф задачи к ярусно-параллельной форме (ЯПФ) [20], в котором соблюдаются следующие условия:
♦ начальная вершина каждой дуги расположена на ярусе с номером меньшим, чем номер яруса конечной вершины;
♦ между вершинами, расположенными на одном ярусе, не может быть дуг.
Применительно к данному исследованию вершинам графа присваивается
значение, равное задержке сигнала перед поступлением на вход данной вершины, и, соответственно, на одном ярусе находятся вершины, имеющие одинаковую задержку цифрового сигнала. Представление графа в ЯПФ позволяет установить связи между элементами и рассчитать необходимую задержку сигнала между связанными элементами, находящимися на разных ярусах графа.
1.2) На основе полученной ЯПФ и коэффициента прореживания (максимальная суммарная «внутренняя латентность» нескольких, расположенных друг за другом блоков, в пределах которой не требуется синхронизировать потоки) задаваемого пользователем или автоматически определяемого на основе рабочей тактовой частоты проекта необходимо выделить в промежуточный список элементы информационного графа, которые имеют «внутреннюю латентность» большую, либо равную 1. К таким элементам относятся логические блоки (XOR, OR, AND), блоки распределенной памяти (ROM_DISTR), а также блоки, выполняющие арифметические операции с фиксированной запятой (SUM, SUB, MUL, DIV). Это необходимо для отделения требующих рассмотрения вычислительных элементов от коммутационных, имеющих нулевую «внутреннюю латентность».
1.3) В соответствии с формулами (1) и (2) создать для вычислительных элементов из сформированного в пункте 1.2 списка общую таблицу ветвления, в которую необходимо занести значение коэффициента ветвления данного элемента. Отметим, что коэффициент ветвления может учитываться в двух направлениях (от входа к выходу - прямое направление, и от выхода к входу - обратное направление). Таким образом, полученная таблица ветвления содержит n строк, где n - количество найденных на втором шаге элементов, и 3 столбца, где 1-й столбец -уникальный идентификатор элемента (номер вершины), 2-й - значение коэффициента ветвления в прямом направлении, 3 -й - значение коэффициента ветвления в обратном направлении. Данная таблица будет использоваться при выборе места установки триггеров синхронизации.
На этом первый этап работы метода заканчивается. После успешного выполнения первого этапа, на втором этапе необходимо провести расстановку «опорных» триггеров. Под «опорными» триггерами будем понимать триггеры, расположенные после элементов с максимальным ветвлением (если коэффициент максимального ветвления имеет прямое направление), или триггеры, расположенные до элемента с максимальным ветвлением (если коэффициент максимального ветвления имеет обратное направление). Данный этап включает в себя следующие шаги.
2.1) Выделить из сформированного в пункте 1.2 списка элементы с максимальным значением коэффициента ветвления в одном из направлений. Отметим, что выбранное направление сохраняется в течение всего времени работы алгоритма. Это означает, что если при первом выборе максимального ветвления было выбрано прямое направление, то последующий поиск будет проводиться только с учетом данного направления. Если несколько элементов имеют одинаковый коэффициент ветвления, но отличаются направлениями, проверяется следующий за ними элемент.
2.2) Установить «опорные» триггеры в соответствии с выбранным направлением.
2.3) Удалить рассмотренные элементы с максимальным значением коэффициента ветвления из таблицы ветвления и списка, полученного в пункте 1.2, чтобы избежать их повторного рассмотрения.
После успешной расстановки «опорных» триггеров можно переходить к третьему этапу разработанного метода - прореживанию вычислительной структуры дополнительными триггерами.
3.1) Рассчитать расстояние между опорными триггерами. «Расстоянием» между опорными триггерами будем называть разность между «внутренней латентно-стью» элементов, до/после которых установлены триггеры.
3.2) Для всех пар «опорных» триггеров, у которых вычисленное расстояние превышает значения коэффициента прореживания, расставить дополнительные триггеры синхронизации. Для этого необходимо:
♦ рассчитать количество триггеров, необходимое для установки между «опорными» триггерами (разница между «внутренней латентностью» элементов, деленная на коэффициент прореживания);
♦ если полученное значение не превышает максимально возможное количество триггеров, которые могут быть оптимально расставлены в результате обхода заданного участка информационного графа за приемлемое время (для данной реализации было принято значение равное пяти триггерам), то провести расстановку триггеров;
♦ иначе установить новые «опорные» триггеры до/после элементов с максимальным значением из таблицы ветвления.
После обработки на третьем этапе всех пар «опорных» триггеров работа метода заканчивается, и полученный информационный граф передается следующим функциям обработки синтезатору Fire!Constructor для компоновки решения.
Пример работы метода автоматической расстановки триггеров синхронизации. Рассмотрим пример работы предложенного метода на фрагменте вычислительной структуры задачи из области символьной обработки данных (рис. 2). Для данного фрагмента «внутренняя латентность» логических блоков (AND, OR) равняется единице, «внутренняя латентность» арифметических блоков (сложение «+», умножение «*») равна двум, а «внутренняя латентность» блока коммутации (К) равна нулю. Разрядность обрабатываемых данных равна 32 битам. Ветвление разрядов внутри сумматоров и умножителей равняется «32», внутри логических блоков «1». Коэффициент прореживания, заданный пользователем для данной задачи, равен 4. Рассмотрим пример фрагмента вычислительной структуры, представленной на рис. 2.
Рассчитаем в соответствии с формулой (3) максимальное значение коэффициента ветвления для данного фрагмента
Рис. 2. Фрагмент вычислительной структуры задачи
Ктпг = 32 * 32 * 32 = 32768.
■max
Как можно заметить из схемы, представленной на рисунке 2, сумматор, расположенный после блока коммутации, обладает наибольшим ветвлением, так как его выход является входным сразу для 5-ти элементов. Таким образом, для данного случая суммарный коэффициент ветвления между триггером (1) и группой триггеров (2) (так как триггер (1) попадает в каждый из триггеров из группы (2)) в соответствии с формулой (2) будет равен:
1) Для ветвей с логическими элементами:
^лог. = 32 (выходная разрядность триггера)
* 32 (коэффициент ветвления сумматора) * 1 * 1(коэффициент ветвления логических элементов) = 1024.
Так как три ветви имеют одинаковую структуру, то суммарный коэффициент ветвления равен:
Кло г = 1 0 2 4*3 = 3 0 7 2 .
2) Для двух ветвей с арифметическими элементами:
К.
ариф
= 32 * 32 * 32 2 = 65536.
3) Итого общий суммарный коэффициент ветвления данного участка по формуле (2) равен:
К(1)(2) = 32 * 32 * 1 * 1 * 3 + 32 * 32 * 32 * 2 = 68 608.
Как можно заметить, полученное значение примерно в два раза выше , это говорит о том, что для данного участка необходимо провести перестановку триггеров или установить дополнительные триггеры синхронизации.
Применив для данного фрагмента предложенный метод автоматической расстановки триггеров синхронизации с учетом максимального коэффициента ветвления, получим следующий фрагмент (рис. 3):
Рис. 3. Результат работы предложенного метода автоматической расстановки
триггеров синхронизации
В результате, установив дополнительный триггер синхронизации Т1, удалось уменьшить коэффициент ветвления между соседними триггерами. В итоге коэффициент ветвления между триггерами (1) и (Т1) равняется 1024, а между триггером (Т1) и группой триггеров (2) (вычисления аналогичны прошлым)
К(1)(2) = 32 * 3 + 32 * 32 * 2 = 2144.
Полученное значение меньше , а значит, может быть использовано в качестве рабочего. Как можно заметить из расчетов, суммарный коэффициент ветвления был снижен в 32 раза по сравнению с предыдущим результатом, при этом дополнительные аппаратные затраты составили 32 триггера (по одному на каждый разряд). На практике средства САПР не могут эффективно справляться с отображением элементов с большим коэффициентом ветвления, поэтому установка триггеров в местах с наибольшим ветвлением (что соответствует второму этапу работы
метода) является обязательной. Дополнительные триггеры устанавливаются по критерию минимизации аппаратных затрат, т.е. при выборе одного из нескольких возможных вариантов расположения триггеров при условии, что коэффициент ветвления между ними не превышает Ктах, приоритет будет отдан варианту, требующему меньшее количество аппаратного ресурса.
Экспериментальная проверка разработанного метода. Описанный метод автоматической расстановки триггеров синхронизации с учетом максимального значения коэффициента ветвления был реализован в виде функции многокристального синтезатора схемотехнических решений Fire!Constructor. Входным параметром разработанной функции является список элементов, представляющий собой вершины информационного графа. Для каждого элемента описаны его связи с другими (соседними) элементами. Выходным параметром является преобразованный входной список элементов с расставленными триггерами синхронизации.
Экспериментальная проверка разработанного метода проводилась на трех задачах из области линейной алгебры (решение СЛАУ методами Якоби, LU-разложения, Гаусса), пяти задачах символьной обработки, а также одной задаче из области цифровой обработки сигналов (КИХ-фильтр). При попытках развести данные задачи средствами САПР Xilinx Vivado 2018.2 без расстановки триггеров синхронизации были получены следующие результаты: ни одна из рассматриваемых задач не была разведена даже на частоте 100 МГц. Применив к задачам предложенный метод, синтезатор Fire!Constructor для всех задач сформировал файлы VHDL-описаний и файлы проектных ограничений (XDC - Xilinx Design Constraints). После успешной работы синтезатора полученное решение было успешно разведено с помощью средств САПР Xilinx Vivado 2018.2. на частотах от 250 до 400 МГц.
Заключение. В статье были описаны метод и алгоритм автоматической расстановки триггеров синхронизации, учитывающий коэффициент максимального ветвления элементов и позволяющий получить готовые к работе решения прикладных задач на заданных частотах.
Отличительной особенностью рассмотренного алгоритма автоматической расстановки триггеров синхронизации, помимо учета коэффициента ветвления, является возможность установки триггеров синхронизации на любом расстоянии друг от друга при условии соблюдения коэффициента прореживания. Это позволяет выбирать места установки дополнительных триггеров, учитывая как коэффициент ветвления, так и возможные аппаратные затраты (чем чаще ставить триггеры, тем больше аппаратные затраты).
Проведенные экспериментальные исследования показали, что при решении прикладных задач суммарная латентность схемы при автоматической расстановке триггеров синхронизации предложенным методом не более чем на 7 % превышает латентность, получаемую в случае ручной расстановки. В то же время суммарный аппаратный ресурс не более чем на 5 % превышает аппаратный ресурс, получаемый при ручной расстановке триггеров синхронизации. При этом время расстановки триггеров синхронизации снижается с нескольких дней при работе специалиста схемотехника до 1-2 минут.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Каляев И.А., Левин И.И., Семерников Е.А., Шмойлов В.И. Реконфигурируемые мульти-конвейерные вычислительные структуры. - Ростов-на-Дону: Изд-во ЮНЦ РАН, 2008. - С. 197-206.
2. Compton K. Reconfigurable Computing: A Survey of Systems and Software // ACM Computing Surveys. - June 2002. - Vol. 34, No. 2. - P. 171-210.
3. Дордопуло А.И., Каляев И.А., Левин И.И., Семерников Е.А. Семейство многопроцессорных вычислительных систем с динамически перестраиваемой архитектурой // Многопроцессорные вычислительные и управляющие системы: Матер. научно-технической конференции. - Таганрог, 2007. - С. 11-17.
4. Каляев А.В. Модульно-наращиваемые многопроцессорные системы со структурно-процедурной организацией вычислений. - М.: Янус-К, 2003. - 380 с.
5. Botros N. HDL with digital design. VHDL and Verilog. - Mercury Learning & Information, 2015. - 750 p.
6. David F. Bacon, Rodric Rabbah, Sunil Shukla. FPGA Programming for the Masses // Communications of the ACM. - 2013. - Vol. 56, Issue 4. - P. 56-63.
7. Левин И.И., Дордопуло А.И., Каляев И.А., Доронченко Ю.И., Раскладкин М.К. Современные высокопроизводительные вычислительные системы с реконфигурируемой архитектурой на основе ПЛИС Xilinx Virtex-7 и Virtex UltraScale // Тр. Международной конференции "Суперкомпьютерные дни в России" Москва, 28-29 сентября 2015 г. - М.: Изд-во МГУ, 2015. - С. 435-446.
8. Гузик В.Ф., Левин И.И., Сафронов О.О. Язык программирования высокого уровня для многопроцессорной системы с программируемой архитектурой // Сб.: «Распределенная обработка информации». - Новосибирск, 1991. - С. 13.
9. Левин И.И., Дордопуло А.И., Коваленко В.Б., Гудков В.А., Гуленок А.А. Средства программирования реконфигурируемых вычислительных систем на основе ПЛИС VIRTEX-7 с использованием софт-архитектур // Вестник ЮУрГУ. Серия «Вычислительная математика и информатика». - 2015. - № 4:2. - С. 20-32.
10. Левин И.И., Гудков В.А. Расширение языка высокого уровня COLAMO для программирования реконфигурируемых вычислительных систем на уровне логических ячеек ПЛИС // Вестник компьютерных и информационных технологий. - 2010. - № 12. - С. 10-17.
11. Гудков В.А. Транслятор модифицированного языка программирования высокого уровня с неявным описанием параллелизма для реконфигурируемых вычислительных систем: дис. ... канд. тех. наук. - Таганрог, 2010. - 150 с.
12. Левин И.И., Дордопуло А.И. и др. Современные и перспективные высокопроизводительные вычислительные системы с реконфигурируемой архитектурой // Вестник ЮУрГУ. Серия «Вычислительная математика и информатика». - 2015. - № 4:3. - C. 24-49.
13. Гуленок А.А. Синтезатор структурных параллельных прикладных программ для многокристальных реконфигурируемых вычислителей: дис. ... канд. тех. наук. - Таганрог, 2011. - С. 8-9.
14. Гузик В.Ф., Каляев И.А., Левин И.И. Реконфигурируемые вычислительные системы: учеб. пособие / под общ. Ред. И.А. Каляева. - Ростов-на-Дону: Изд-во ЮФУ, 2016. - 472 с.
15. Лехин С.Н. Схемотехника ЭВМ. - СПб.: БХВ-Петербург, 2010. - 672 с.
16. Shah R. Glitch Analysis and Reduction in Digital Circuits // International Journal of VLSI design & Communication Systems (VLSICS). - August 2016. - Vol. 7, No. 4. - P. 47-55.
17. Кулибаба А.Я., Огурцов А.А. Контроль задержек распространения сигналов в программируемых логических интегральных схемах // Ракетно-космическое приборостроение и информационные системы. - 2014. - № 1:3. - С. 42-47.
18. Maxfield C. The Design Warrior's Guide to FPGAs: Devices, Tools and Flows. - Publisher: Newnes, 2004. - 542 p.
19. Zia R., Rao M., Aziz A., Akhtar P. Efficient utilization of FPGA using LUT-6 Architecture // Applied Mechanics and Materials. - 2013. - Vol. 241-244. - P. 2548-2554.
20. ВоеводинВ.В., ВоеводинВл.В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002.
REFERENCES
1. Kalyaev I.A., Levin I.I., Semernikov E.A., Shmoylov V.I. Rekonfiguriruemye mul'tikonveyernye vychislitel'nye struktury [Multiconference reconfigurable computing structure]. Rostov-on-Don: Izd-vo YuNTS RAN, 2008, pp. 197-206.
2. Compton K. Reconfigurable Computing: A Survey of Systems and Software, ACM Computing Surveys, June 2002, Vol. 34, No. 2, pp. 171-210.
3. Dordopulo A.I., Kalyaev I.A., Levin I.I., Semernikov E.A. Semeystvo mnogoprotsessornykh vychislitel'nykh sistem s dinamicheski perestraivaemoy arkhitekturoy [Family of multiprocessor computing systems with dynamically tunable architecture], Mnogoprotsessornye vychislitel'nye i upravlyayushchie sistemy: Mater. nauchno-tekhnicheskoy konferentsii [Multiprocessor computing and control systems: Proceedings of the scientific and technical conference]. Taganrog, 2007, pp. 11-17.
4. Kalyaev A.V.Modul'no-narashchivaemye mnogoprotsessornye sistemy so strukturno-protsedurnoy organizatsiey vychisleniy [Modular-scalable multiprocessor system with structural-procedural organization of computing]. Moscow: Yanus-K, 2003, 380 p.
5. Botros N. HDL with digital design. VHDL and Verilog. Mercury Learning & Information, 2015, 750 p.
6. David F. Bacon, Rodric Rabbah, Sunil Shukla. FPGA Programming for the Masses, Communications of the ACM, 2013, Vol. 56, Issue 4, pp. 56-63.
7. Levin I.I., Dordopulo A.I., Kalyaev I.A., Doronchenko Yu.I., Raskladkin M.K. Sovremennye vysokoproizvoditel'nye vychislitel'nye sistemy s rekonfiguriruemoy arkhitekturoy na osnove PLIS Xilinx Virtex-7 i Virtex UltraScale [Modern high-performance computing systems with reconfigurable architecture based on XILINX Virtex-7 and Virtex UltraScale FPGAs], Tr. Mezhdunarodnoy konferentsii "Superkomp'yuternye dni v Rossii" Moskva, 28-29 sentyabrya 2015 g. [Proceedings of the international conference "Supercomputing days in Russia" Moscow, September 28-29, 2015]. Moscow: Izd-vo MGU, 2015, pp. 435-446.
8. Guzik V.F., Levin I.I., Safronov O.O. Yazyk programmirovaniya vysokogo urovnya dlya mnogoprotsessornoy sistemy s programmiruemoy arkhitekturoy [A high-level programming language for a multiprocessor system with a programmable architecture], Sb.: «Raspredelennaya obrabotka informatsii» [Collection: "Distributed information processing"]. Novosibirsk, 1991, pp. 13.
9. Levin I.I., Dordopulo A.I., Kovalenko V.B., Gudkov V.A., Gulenok A.A. Sredstva programmirovaniya rekonfiguriruemykh vychislitel'nykh sistem na osnove PLIS VIRTEX-7 s ispol'zovaniem soft-arkhitektur [Software for reconfigurable computing systems based ON Virtex-7 FPGAs using soft architectures], Vestnik YuUrGU. Seriya "Vychislitel'naya matematika i informatika" [Bulletin of the South Ural State University. Series "Computational Mathematics and Software Engineering"], 2015, No. 4:2, pp. 20-32.
10. Levin I.I., Gudkov V.A. Rasshirenie yazyka vysokogo urovnya COLAMO dlya programmirovaniya rekonfiguriruemykh vychislitel'nykh sistem na urovne logicheskikh yacheek PLIS [Extension of the COLAMO high-level language for programming reconfigurable computing systems at the level of logical cells of the FPGA], Vestnik komp'yuternykh i informatsionnykh tekhnologiy [Bulletin of computer and information technologies], 2010, No. 12, pp. 10-17.
11. Gudkov V.A. Translyator modifitsirovannogo yazyka programmirovaniya vysokogo urovnya s neyavnym opisaniem parallelizma dlya rekonfiguriruemykh vychislitel'nykh sistem: dis. ... kand. tekh. nauk [Translator of a modified high-level programming language with an implicit description of parallelism for reconfigurable computing systems: cand. of eng. sc. diss.]. Taganrog, 2010, 150 p.
12. Levin I.I., Dordopulo A.I. i dr. Sovremennye i perspektivnye vysokoproizvoditel'nye vychislitel'nye sistemy s rekonfiguriruemoy arkhitekturoy [Modern and promising highperformance computing systems with reconfigurable architecture], Vestnik YuUrGU. Seriya "Vychislitel'naya matematika i informatika" [Bulletin of the South Ural State University. Series "Computational Mathematics and Software Engineering"], 2015, No. 4:3, pp. 24-49.
13. Gulenok A.A. Sintezator strukturnykh parallel'nykh prikladnykh programm dlya mnogokristal'nykh rekonfiguriruemykh vychisliteley: dis. ... kand. tekh. nauk [Synthesizer of structural parallel applications for multi-chip reconfigurable computers: cand. of eng. sc. diss.]. Taganrog, 2011, pp. 8-9.
14. Guzik V.F., Kalyaev I.A., Levin I.I. Rekonfiguriruemye vychislitel'nye sistemy: ucheb. posobie [Reconfigurable computing systems: a textbook], ed. by I.A. Kalyaeva. Rostov-on-Don: Izd-vo YuFU, 2016, 472 p.
15. Lekhin S.N. Skhemotekhnika EVM [The circuitry of the computer]. Saint Petersburg: BKhV-Peterburg, 2010, 672 p.
16. Shah R. Glitch Analysis and Reduction in Digital Circuits, International Journal of VLSI design & Communication Systems (VLSICS), August 2016, Vol. 7, No. 4, pp. 47-55.
17. Kulibaba A.Ya., Ogurtsov A.A. Kontrol' zaderzhek rasprostraneniya signalov v programmiruemykh logicheskikh integral'nykh skhemakh [Control of signal propagation delays in programmable logic integrated circuits], Raketno-kosmicheskoe priborostroenie i informatsionnye sistemy [.Rocket and space instrumentation and information systems], 2014, No. 1:3, pp. 42-47.
18. Maxfield C. The Design Warrior's Guide to FPGAs: Devices, Tools and Flows. Publisher: Newnes, 2004, 542 p.
19. Zia R., Rao M., Aziz A., Akhtar P. Efficient utilization of FPGA using LUT-6 Architecture, Applied Mechanics and Materials, 2013, Vol. 241-244, pp. 2548-2554.
20. Voevodin V.V., Voevodin Vl.V. Parallel'nye vychisleniya [Parallel computation]. Saint Petersburg: BKhV-Peterburg, 2002.
Статью рекомендовал к опубликованию д.т.н. С.Г. Капустян.
Дудко Сергей Анатольевич - ООО "НИЦ супер-ЭВМ и нейрокомпьютеров"; e-mail: dudko@sfedu.ru; 347900, г. Таганрог, ул. Социалистическая, 150Г; тел.: +79034318173; программист.
Левин Илья Израилевич - Южный федеральный университет; e-mail: levin@superevm.ru; 347900, г. Таганрог, пер. Итальянский, 106; тел.: +78634612111; кафедра интеллектуальных и многопроцессорных систем; зав. кафедрой; д.т.н.; профессор.
Dudko Sergei Anatolievich - Supercomputers and Neurocomputers Research Center; e-mail: dudko@sfedu.ru; 150G, Sotsialisticheskaya street, Taganrog, 347900, Russia; phone: +79034318173; programmer.
Levin Ilya Izrailevich - Southern Federal University; e-mail: levin@superevm.ru; 106, Italyansky lane, Taganrog, 347900, Russia; phone: +78634612111; the department of intellectual and multiprocessor systems; head of department; dr. of eng. sc.; professor.
УДК 004.382.2 DOI 10.23683/2311-3103-2019-7-142-152
А.В. Касаркин, И.И. Левин
РЕАЛИЗАЦИЯ АЛГОРИТМА БРОНА-КЕРБОША НА РЕКОНФИГУРИРУЕМЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ
Поиск максимальных клик графа является одной из фундаментальных проблем теории графов и играет важную роль во многих приложениях. Задача о клике решается при анализе социальных сетей для обнаружения некоторого сообщества, в биоинформатике -для структурного выравнивания белка в трех измерениях, в САПР электрических схем - для размещения элементов и оптимизации. При этом данная задача является NP-полной, а это значит, что из-за ее высокой трудоемкости не всегда можно найти решение за приемлемое время. Целью работы, описанной в статье, является минимизация времени решения задачи поиска максимальных клик графа с использованием реконфигурируемых вычислительных систем (РВС). Предложен новый способ структурной реализации алгоритма Бро-на-Кербоша на РВС с применением оптимизации, помогающей в балансировке рабочей нагрузки между вычислительными ядрами и основанной на сортировке вершин по порядку вырождения. При реализации был выбран битовый способ представления множеств, когда позиция бита соответствует номеру элемента множества, а его значение является признаком присутствия либо отсутствия элемента во множестве. Выполнен анализ информационного графа одной итерации алгоритма и полного информационного графа всей задачи. Предложена вычислительная структура, реализующая информационный граф задачи на РВС с типом вычислений вложенный конвейер. Оценка скорости решения задачи на РВС выполнена на имитационной модели, которая моделирует выполнение