Научная статья на тему 'РЕКОНФИГУРИРУЕМЫЕ ВЫЧИСЛЕНИЯ: ОБЗОР'

РЕКОНФИГУРИРУЕМЫЕ ВЫЧИСЛЕНИЯ: ОБЗОР Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
105
17
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РЕКОНФИГУРИРУЕМЫЕ ВЫЧИСЛЕНИЯ / АППАРАТНОЕ УСКОРЕНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гонзалез Мауризио Фаюла

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гонзалез Мауризио Фаюла

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

RECONFIGURABLE COMPUTING: A REVIEW

Reconfigurable computing is defined as the capability of a computing unit to modify its structure dynamically, according to the tasks being executed. The concept was introduced several decades ago, but supporting platforms only started to be available more recently, and a true interest by the industry and the broad scientific community has only awaken in the last decade, resulting in a fertile area of research with numerous articles published recently. This review article intends to capture the current state of the art, classifying the different works on the subject into three categories according to different areas of knowledge within the Computer Science.

Текст научной работы на тему «РЕКОНФИГУРИРУЕМЫЕ ВЫЧИСЛЕНИЯ: ОБЗОР»

УДК 004.2

DOI: 10.24412/2071-6168-2023-2-42-49

РЕКОНФИГУРИРУЕМЫЕ ВЫЧИСЛЕНИЯ: ОБЗОР

М.Ф. Гонзалез

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

Ключевые слова: реконфигурируемые вычисления, аппаратное ускорение.

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

Следует отметить многолетние усилия многочисленных исследователей по созданию своего рода компилятора, способного синтезировать схемы устройств на основе программы, написанной на стандартном языке высокого уровня, таком как C или Java. Некоторые из таких автоматизированных инструментов синтеза, представленных в настоящее время на рынке, являются прямым результатом академических исследований. Однако во многих случаях ни этот, ни другие аналогичные языки, такие как OpenCL, по-прежнему не предлагают такого эффективного и точного решения, как описание архитектуры непосредственно на языке описания оборудования (HDL).

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

эн ер го эффект явность 3 Н(1р ги эффективность

(MOPS/МВТ) (МО<Р£/МВТ)

( FPGA )

ПОСТОЯННЫЙ Ниэгоуробн. ВЫССКОурСвН. HtlKOf ть

(^CPU J

.________________Прон*воднтельно<ть

11 ' 1 {программирование) (60Р5)

Рис. 1. Сравнение энергоэффективности различных вычислительных устройств,

как представлено в [2]

Реконфигурируемые вычисления были задуманы как способность вычислительного процессора общего назначения преобразовывать свою структуру, чтобы адаптироваться к различным выполняемым приложениям [1]. Одна из первых платформ, поддерживающих такую концепцию, была разработана в начале 1990-х годов [3], через несколько лет после появления на рынке первых реконфигурируемых устройств. Несмотря на то, что аналогичные платформы также были разработаны в исследовательских

42

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

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

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

Анализ уровня развития техники позволяет выявить некоторые из возможных факторов, которые ограничивают ее дальнейшее развитие. Пропускную способность памяти часто называют технологическим барьером, и различные исследователи предлагают широкий спектр инновационных решений, будь то с точки зрения производства новых видов запоминающих устройств, предложения архитектур, таких как процессорные блоки внутри блоков памяти, или интеграция статических процессорных ядер, реконфигурируемой структуры и памяти, или даже разработка методов, позволяющих максимально избежать перемещения данных. Несколько авторов также указывают на нехватку инженеров по аппаратному обеспечению по сравнению с изобилием инженеров-программистов, иногда предполагая недостатки системы образования в этой области в качестве ограничивающего фактора [4] [5]: если языки программирования высокого уровня, такие как C или Java, позволяют вводить код на языке ассемблера, OpenCL и другие также допускают описание реконфигурируемого оборудования с помощью HDL; однако, в то время как большинство школ считают язык ассемблера необходимым для обучения специалиста по информатике, это не всегда относится к HDL, таким как VHDL или Verilog. Другим важным фактором является отсутствие стандартизации, поскольку широкий спектр различных архитектур вынуждает исследователей либо предлагать решение, оптимизированные для одной из немногих платформ, либо разрабатывать решения, которые неоптимально используют доступные ресурсы.

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

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

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

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

- Комплексные решения, объединяющие первые три направления.

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

1. Архитектуры реконфигурируемых платформ. Архитектуры, отраженные в литературе, в основном определяются производителями реконфигурируемых устройств. В зависимости от размера элементарного блока или степени детализации реконфигурируемого блока архитектура обычно делится на два класса: мелкозернистая (а именно ПЛИС) и крупнозернистая (CGRAs). Однако существуют гибридные архитектуры, в которых крупнозернистым блокам «помогает» небольшая мелкозернистая реконфигурируемая область.

Мелкозернистые платформы, или ПЛИС, во многих случаях используются исследователями для реализации более крупнозернистых архитектур, обычно для доказательства концепций (использование, которое напоминает первоначальное назначение ПЛИС, где они применялись, среди прочего, для реализации прототипов). Эти более крупнозернистые архитектуры варьируются от ограниченного числа целых микропроцессоров или мягких ядер, таких как те, что основаны на архитектуре LEON, до более значительного числа более простых процессорных блоков или CGRA, которые вполне можно было бы назвать CGRA с мягким ядром.

Кроме того, большая часть источников ссылается на использование одного узла или чипа с ре-конфигурируемой структурой и обычно дополнительными вычислительными блоками, включенными в него. Однако в некоторых случаях, когда система предназначена для высокопроизводительных вычислений (HPC) используется несколько ПЛИС. Например, модуль «Арктур» [6], построенная на семействе Xilinx UltraScale+ с новым модулем памяти HBM2 DDR, встроенным в чип (рис. 2).

Рис. 2. Схема печатной платы «Арктур» [6]

«Арктур» - это вычислительный модуль для реконфигурируемых суперкомпьютеров, вмещающий 8 ПЛИС, одна из которых действует как контроллер, управляя такими процессами, как загрузка конфигураций ПЛИС, для чего требуется до 5% реконфигурируемой структуры. Данный модуль разработан для поддержки масштабируемости суперкомпьютера с помощью распределенной сети аналогичных модулей, соединенных между собой оптическими каналами. Был протестирован вычислительный блок, состоящий из 12 модулей «Арктур», и была предусмотрена возможность построения распределенной системы из 16 таких модулей, производительность которой оценивалась примерно 2,4 Pflops для определенных приложений.

Другие исследования посвящены развертыванию Soft-CGRA или Soft-микропроцессоров на платформах ПЛИС [7]. В данном конкретном случае было разработано несколько простых программных ядер, поддерживающих различные наборы команд на основе архитектуры RISC-V, чтобы динамически размещать их на определенных участках кристалла (тайлах) с общими интерфейсами, отвечая требованиям запущенных в данный момент приложений. Также в этом подходе существует узел, который действует как контроллер, отвечающий за динамическую реконфигурацию и другие задачи, но в данном случае такая функция назначается определенному тайлу, который управляет другими в пределах одного чипа.

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

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

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

Оценка концепции проводилась на основе ПЛИС Xilinx Zynq Ultrascale+, на наиболее сложных и реалистичных тестах, в качестве операционной системы использовалась FreeRTOS. Результаты указывают на производительность от 90% до 95% по сравнению с микропроцессором, на основе жестких ядер реализующим все расширения. По сравнению с микропроцессором на жестки ядра, реализующим некоторые, но не все команды, ускорение теоретически может превысить 3 раза.

Представлено исследование возможности реализации кэша битовых образов конфигураций, показывающее, что ограниченное число пропусков достижимо с помощью кэша в 768 КБ, что сопоставлено с кэшами L2 некоторых последних микропроцессоров.

Другие авторы предложили использовать множество микропроцессоров с мягким ядром и тесно связанных реконфигурируемых ускорителей в рамках реконфигурируемой структуры [9]. В частности, Leon3 использовался в качестве ядра общего назначения, а реконфигурируемый ускоритель, как и в предыдущем примере, позволял расширить систему команд SPARC v8, реализованную в Leon3. Эта архитектура была протестирована под ОС Linux и показала ограниченную масштабируемость.

TaPaSCo - это платформа с открытым исходным кодом для реконфигурируемых вычислений, поддерживающая как жестко, так и слабо связанное аппаратное ускорение, которая была протестирована на платформе, состоящей из главного микропроцессора и платы Xilinx Alveo на основе ПЛИС, подключенной через шину PCIe. Авторы недавно реализовали ряд ее возможностей непосредственно в аппаратном обеспечении, добившись значительного улучшения характеристик, с помощью расширения, которое они назвали Cascabel [10].

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

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

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

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

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

Другие исследователи изучают и совершенствуют виртуальные ПЛИС. Эта концепция появилась в последнее десятилетие. В этом случае функциональность, реализованная на главной ПЛИС, представляет собой другую ПЛИС с другими характеристиками. Хотя производительность аппаратной реализации на виртуальной ПЛИС ниже, чем если бы она была реализована непосредственно на основной ПЛИС, виртуальные ПЛИС предоставляют ряд возможностей, таких как включение частичной динамической реконфигурации в устройства, которые ее не поддерживают, или изучение новых архитектур ПЛИС.

Как и ожидалось, при использовании виртуальных ПЛИС возникает ряд ограничений. Чтобы смягчить их, предлагаются различные стратегии ручного размещения [12], направленные на размещение участков виртуальной ПЛИС по регулярным шаблонам. Показатели, основанные на площади и, что более важно, на задержках между участками, используются сначала для руководства размещением вручную и, наконец, для оценки качества полученного результата с помощью максимальной задержки через структуру, которая определяет максимально достижимую частоту.

Авторы определяют несколько ограничений и параметров, введенных с помощью сценариев TCL, чтобы управлять инструментом Xilinx Vivado, а также показывать задержки, полученные после размещения. Предложены три стратегии, и их результаты сравниваются с помощью определенных показателей, делая вывод о том, что более высокая однородность структуры виртуальных ПЛИС приводит к меньшей результирующей глобальной задержке и, следовательно, к возможности работы на более высокой частоте.

Также в последние несколько лет появилось направление, связанное с использованием графических процессоров с программируемым ядром, реализованных на ПЛИС (FGPU),. Недавно была изучена реализация нейронных сетей на гетерогенных реконфигурируемых устройствах [13]. Авторы предложили библиотеку ядер OpenCL, которые адаптируются пользователем либо к FGPU, либо к микропроцессору путем незначительной модификации. Представленные результаты включают разницу в произво-

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

2. Компиляторы поддержка для реконфигурируемых вычислений. Недавно был разработан фреймворк компилятора для различных CGRA, поддерживающий OpenMP и его аннотации [14]. Авторы расширили компилятор LLVM с открытым исходным кодом, который позволяет использовать C/C++ и Fortran в качестве входных языков. Такой входной код преобразуется инструментом в промежуточное представление LLVM и подразделяется на код, предназначенный для центрального процессора и CGRA. Оба кода проходят фазу оптимизации, а затем части, предназначенные для CGRA, проверяются с помощью модели CGRA, чтобы определить, подходят ли они для выполнения на CGRA; создаются их графы потоков данных, и обрабатывающая часть кода передается компоновщику для конкретного CGRA, чтобы сгенерировать битовые образы конфигураций. Управляющая часть кода объединяется с промежуточным представлением кода центрального процессора, чтобы сгенерировать объектные файлы, которые связаны с нужными библиотеками и битовыми образами конфигураций, генерируя конечный исполняемый файл.

Hardware Join Java (HJJ) [15] - это расширение Java, которое позволяет описывать и синтезировать аппаратное обеспечение на языке высокого уровня с синтаксисом Java, включая возможность управлять динамической частичной реконфигурацией устройства во время выполнения. Данное расширение было разработано на основе Join Java, которая сама по себе является расширением Java с дополнительными функциями, такими как определение асинхронных методов или шаблонов join, которые подразумевают совместное выполнение нескольких методов, позволяя обмениваться сообщениями между ними.

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

Те же авторы позже предложили фреймворк для разработки приложений в области обработки изображений [17], основанный на суперкомпьютерах с реконфигурируемой архитектурой. С помощью COLAMO приложения компилируются в битовые образы конфигураций для загрузки на несколько ПЛИС, а также генерируется параллельная программа, которая управляет потоком выполнения. Загрузка аппаратных ресурсов при этом составляет более 60%.

3. Поддержка операционными системами реконфигурируемых вычислений. ReconOS64 - это драйвер для реконфигурируемого оборудования, а также ряд библиотек, которые эффективно расширяют 64-разрядную версию Xilinx Petalinux OS. Он основан на разнородных платформах, состоящих как из процессоров, так и из реконфигурируемой структуры для реализации ускорителей [18]. Это обновление предыдущей работы авторов, ReconOS, которая рассматривает аппаратные ускорители как потоки в многопоточной среде в рамках гетерогенной архитектуры, таким образом достигается бесшовная интеграция программных и аппаратных ресурсов, т.е. программного обеспечения, работающего на процессорах, и вычислительных возможностей реконфигурируемых ускорителей. Самая последняя версия операционной системы ориентирована на новое поколение реконфигурируемых СнК с 64-разрядными ядрами.

Другие авторы сосредоточились на поддержке операционной системы для мобильных устройств, таких как телефоны или планшеты. Например, представлен сервис ускорения, разработанный для ОС Android [19], поддерживающий распределение задач по аппаратным ускорителям, реализованным на реконфигурируемой структуре. Поскольку реализация применяется в гетерогенной системе, основанной на реконфигурируемом СнК (содержащем как аппаратные микропроцессоры, так и реконфигу-рируемую структуру), новая служба ускорения самостоятельно решает, распределять ли входящую задачу на ускоритель, реализованный на реконфигурируемой структуре, или на аппаратный микропроцессор, таким образом, действуя как планировщик. Нескольким приложениям разрешено одновременно использовать различные виды ускорителей.

ReConfigME [20] - это операционная система, предназначенная для реконфигурируемых вычислений. Была разработана незадолго до того, как первые ПЛИС начали поддерживать возможность динамической реконфигурации, таким образом, ReConfigME эмулировала процесс динамической реконфигурации, сохраняя состояние всех запущенных приложений и выполняя полную загрузку битового образа конфигурации каждый раз, когда это требовалось.

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

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

FOS [22] - это операционная система с открытым исходным кодом, основанная на PetaLinux и Ubuntu, разработанная для гетерогенных вычислительных систем, которые включают ПЛИС в число своих процессорных блоков. Ключевой целью авторов было избежать редизайна всей системы при обновлении компонента (например, функциональности ускорителя). С этой целью они изолируют процесс проектирования на каждом уровне - от разработки аппаратного обеспечения до программирования программного обеспечения - с помощью стандартизированных интерфейсов (API) между ними, так что изменения на одном этапе предоставляют пользователю новую функциональность, но не требуют какого-либо редизайна на других этапах. Этот процесс называется модулизацией.

4. Комплексные решения для реконфигурируемых вычислений. ERA (Встроенные реконфигури-руемые архитектуры) [23] - это крупнозернистая динамически реконфигурируемая платформа с поддержкой пользовательского компилятора, операционной системы и среды выполнения, отвечающей за динамические реконфигурации, ориентированная на портативные устройства. Несмотря на сложность архитектуры, абстрагированной от обычного пользователя, она, тем не менее, позволяет настраивать ее пользователем с точки зрения требований к производительности или малому энергопотреблению и позволяет управлять возможностями реконфигурирации на всех уровнях программного обеспечения, включая даже API, который позволяет пользователю перенастраивать по желанию ядра в пределах их программы.

Выбран процессор p-VEX - реконфигурируемый VLIW-процессор. Этот процессор позволяет настраивать его элементарные параметры, такие как степень параллелизма, количество вычислительных структур различных видов и регистров. Приложение компилируется с помощью специального компилятора, и симулятор, предоставляемый бесплатно, используется для того, чтобы многократно имитировать различные запуски приложения с различными параметрами конфигурации, предоставляя файл журнала с соответствующей статистикой, которая позволяет оценить его производительность. Когда найдена оптимальная конфигурация, ее параметры используются как в соответствующем коде VHDL для его синтеза, так и во время компиляции программного приложения. В дополнение к реконфигурируемым процессорам в качестве главного ядра входит программное ядро Microblaze. Кэш-память L1 в процессорах также была изучена с целью их статической перенастройки или динамического включения и отключения канал кэширования по запросу.

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

5. Выводы. Термин «Реконфигурируемые вычисления» постепенно перешел от своей первоначальной теоретической концепции к совсем недавней реализации, когда некоторые из крупнейших предприятий используют прототипы гетерогенных реконфигурируемых архитектур для самых требовательных приложений с точки зрения вычислений с большими объемами данных, включая суперкомпьютеры и облачные вычисления. При нынешнем уровне техники отсутствие стандартизации затрудняет дальнейшее распространение реконфигурируемых вычислений и их внедрение в более широкий спектр применений. Однако интерес как специалистов отрасли, так и многочисленных исследователей из различных областей знаний приводит к быстрому прогрессу и внедрению таких вычислений.

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

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

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

Список литературы

1. Estrin G. Organization of computer systems-the fixed plus variable structure computer. In Proceedings of the Western Joint IRE-AIEE-ACM Computer Conference. 1960. P. 33-40.

2. LEIBO LIU, JIANFENG ZHU, ZHAOSHI LI, YANAN LU. A Survey of Coarse-Grained Reconfigurable Architecture and Design: Taxonomy, Challenges, and Applications // aCm Computing SurveysVol-ume 52. Issue 6. Article No.: 118. P. 1-39.

3. Hartenstein R.W., Hirschbiel A.G., Riedmuller M., Schmidt K. A novel ASIC design approach based on a new machine paradigm. IEEE J. Solid-State Circ. 26, 7. 1991. P. 975-989.

4. Ferlin Edson, Pilla Jr Valfredo. The Learning of Reconfigurable Computing in the Computer Engineering Program. Proceedings - Frontiers in Education Conference. 2006. P. 16 - 20. DOI: 10.1109/FIE.2006.322352.

5. Hartenstein, Reiner. (2004). Reconfigurable HPC: torpedoed by deficits in education? P. 428 - 429. DOI: 10.1109/HPCASIA.2004.1324068.

6. Дордопуло А.И., Раскладкин М.К., Доронченко Ю.И., Левин И.И., Федоров А.М., Гудков В.А., Гуленок А.А., Бовкун А.В., Сластен Л.М. Высокопроизводительный реконфигурируемый вычислительный блок на основе ПЛИС Xilinx UltraScale+ [Электронный ресурс] URL: https://2019.nscf.ru/TesisAll/02 Apparatura/018 DordopuloAI.pdf (дата обращения: 10.02.2023).

7. A. Kamaleldin and D. Gohringer. Design For Agility: A Modular Reconfigurable Platform for Heterogeneous Many-Core Architectures, 2021 31st International Conference on Field-Programmable Logic and Applications (FPL), Dresden, Germany, 2021. P. 265-266. DOI: 10.1109/FPL53798.2021.00050.

8. Papaphilippou Philippos, Shah Myrtle. FPGA-extended General Purpose Computer Architecture (slides). 2022. DOI: 10.13140/RG.2.2.24902.55360.

9. Serres O., Narayana V.K., El-Ghazawi T. An Architecture for Reconfigurable Multi-core Explorations // 2011 International Conference on Reconfigurable Computing and FPGAs, Cancun, Mexico, 2011. P. 105-110. DOI: 10.1109/ReConFig.2011.10.

10. Heinz Carsten, Koch, Andreas. On-Chip and Distributed Dynamic Parallelism for Task-based Hardware Accelerators. Journal of Signal Processing Systems. 94. 2022. P. 1-11. DOI: 10.1007/s11265-022-01759-2.

11. Wang Ying, Zhou Xuegong, Wang Lingli, Yan Jian, Luk Wayne, Peng Chenglian, Tong Jiarong. SPREAD: A Streaming-Based Partially Reconfigurable Architecture and Programming Model. Very Large Scale Integration (VLSI) Systems, IEEE Transactions on. 21. 2013. P. 2179-2192. DOI: 10.1109/TVLSI.2012.2231101.

12. Pfau J., Zaki P.W., Becker J. Evaluation of Different Manual Placement Strategies to Ensure Uniformity of the V-FPGA. In: Derrien, S., Hannig, F., Diniz, P.C., Chillet, D. (eds) Applied Reconfigurable Computing. Architectures, Tools, and Applications. ARC 2021. Lecture Notes in Computer Science(), vol 12700. Springer, Cham. DOI: 10.1007/978-3-030-79025-7_3.

13. Muñoz Hernandez, Hector Gerardo, Veleski Mitko, Brandalero Marcelo, Hübner Michael. Accelerating Convolutional Neural Networks in FPGA-based SoCs using a Soft-Core GPU. 2021. DOI: 10.1007/978-3-030-79025-7_20.

14. Kojima T., Adhi B., Cortes C., Tan Y., Sano K. An Architecture- Independent CGRA Compiler enabling OpenMP Applications, 2022 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), Lyon, France, 2022. P. 631-638. DOI: 10.1109/IPDPSW55747.2022.00112.

15. Hopf J., Itzstein G.S., Kearney D. Hardware Join Java: a high level language for reconfigurable hardware development // 2002 IEEE International Conference on Field-Programmable Technology, 2002. (FPT). Proceedings, Hong Kong, China, 2002. P. 344-347. DOI: 10.1109/FPT.2002.1188707.

16. Dordopulo Alexey, Levin I.I., Kalyaev I.A., Gudkov V.A., Gulenok A.A. Programming of hybrid computer systems in the programming language colamo // Izvestiya SFedU. Engineering sciences. 2016. DOI: 10.18522/2311-3103-2016-11-3954.

17. Levin I.I., Kalyaev I.A., Dordopulo Alexey, Slasten L.M., Gudkov V.A., Kovalenko V.B. FPGA-based reconfigurable computer systems for digital image processing. 2015. 9. P. 27-32.

18. Clausing L., Platzner M. ReconOS64: A Hardware Operating System for Modern Platform FPGAs with 64-Bit Support // 2022 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), Lyon, France, 2022. P. 120-127. DOI: 10.1109/IPDPSW55747.2022.00029.

19. Ting H. -Y., Sani A.A., Bozorgzadeh E. System Services for Reconfigurable Hardware Acceleration in Mobile Devices // 2018 International Conference on ReConFigurable Computing and FPGAs (ReCon-Fig). Cancun, Mexico, 2018. P. 1-6. DOI: 10.1109/RECONFIG.2018.8641700.

20. Wigley Grant, Kearney David, Jasiunas Mark. ReConfigME: a detailed implementation of an operating system for reconfigurable computing. 2006. DOI: 10.1109/IPDPS.2006.1639475.

21. Panagiotis Miliadis, Dimitris Theodoropoulos, Dionisios N. Pnevmatikatos, Nectarios Koziris. VenOS: A Virtualization Framework for Multiple Tenant Accommodation on Reconfigurable Platforms. ARC 2022. P. 181-195.

22. Vaishnav Anuj, Pham Khoa, Powell Joseph, Koch Dirk. FOS: A Modular FPGA Operating System for Dynamic Workloads. 2020.

23. Keramidas Georgios, Wong Stephan, Anjam Fakhar, Brandon Anthony, Seedorf R.A.E, Scordino Claudio, Carro Luigi, Matos Debora, Giorgi Roberto, Kavvadias Stamatis, McKee Sally, Goel Bhavishya, Spiliopoulos Vasileios. Embedded reconfigurable computing: The ERA approach. 2013. P. 827-832. DOl: 10.1109/INDIN.2013.6889116.

Гонзалез Мауризио Фаюла, магистр, faiu@sfedu.ru, Россия, Ростов-на-Дону, Южный федеральный университет

RECONFIGURABLE COMPUTING: A REVIEW M.F. Gonzalez

Reconfigurable computing is defined as the capability of a computing unit to modify its structure dynamically, according to the tasks being executed. The concept was introduced several decades ago, but supporting platforms only started to be available more recently, and a true interest by the industry and the broad scientific community has only awaken in the last decade, resulting in a fertile area of research with numerous articles published recently. This review article intends to capture the current state of the art, classifying the different works on the subject into three categories according to different areas of knowledge within the Computer Science.

Key words: reconfigurable computing, hardware accelerators.

Gonzalez Mauricio Fayula, master, _faiu@sfedu.ru, Russia, Rostov-on-Don, Southern Federal Univers

УДК 004.942

DOI: 10.24412/2071-6168-2023-2-49-54

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

СИСТЕМА ВЫБОРА СРЕДСТВ И СПОСОБОВ ЗАЩИТЫ ЭЛЕМЕНТОВ КОМПЬЮТЕРНЫХ СЕТЕЙ ОТ ГРУППОВЫХ РАЗНОРОДНЫХ КОМПЬЮТЕРНЫХ АТАК

М.М. Добрышин, Д.Е. Шугуров, А.А. Горшков, А.А. Струев

Анализ существующей статистики по обнаружению компьютерных атак на объекты критической информационной инфраструктуры России и расследования компьютерных инцидентов по отчетам российских компаний позволяет судить о том, что количество этих атак за 2022 год в сравнении с 2021 годом увеличилось в десятки раз. Также, учитывая характер действенности со стороны нарушителя, наиболее эффективными были групповые разнородные компьютерные атаки. В связи этим возникает одна из важных задача по качественной проработке вопроса выбора средств и способов защиты от них. В данной статье представлен подход по оценке разнородных атак, позволяющий для экспертов идентифицировать и оценить стратегию нарушителя и осуществить правильный выбор защиты, что в конечно счете позволит обеспечить требуемую защищённость объекта критической информационной инфраструктуры.

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

Анализ инцидентов информационной безопасности показывает, что существенный ущерб причиняют групповые разнородные компьютерные атаки (КА) [1, 2]. Под групповыми разнородными информационно-техническими воздействиями понимается применение в ходе одного воздействия нескольких классов компьютерных атак, таких как компьютерная разведка, МГГМ-атака, DDoS-атаки, Фишинговая-атака, SQL-инъекции и др. [3].

Стратегия применения указанных атак - скоординированное во времени, цели воздействия (блокирование, модификация или подмена защищаемой информации) и осуществляемые как на один уровень ЭМВОС, так и на разные уровни [4]. Стратегия защиты от групповых разнородных КА -последовательность применения (в том числе и автоматическое) средств и способов защиты от выявленных угроз.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.