Раздел II. Многопроцессорные вычислительные
системы
И.И. Левин, П.М. Коновальчик, А.И. Иванов, А.Д. Малеванчук МАКРООБЪЕКТНАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА
Для решения сложных прикладных задач, требующих обработки больших информационных массивов в короткие промежутки времени, необходимо использовать параллельные вычислительные системы. В то же время реальная производительность традиционных многопроцессорных вычислительных систем (МВС) не превышает 10-15% от заявляемой пиковой производительности [1] вследствие необходимости реализации множества процедур межпроцессорного обмена, а также синхронизации последовательных процессов, выполняемых в процессорах системы. Максимальная скорость обработки информации может быть обеспечена в специализированной вычислительной системе, как правило, аппаратно реализующей решение задачи или ее фрагментов. Однако, появление новых алгоритмов обработки информации требует разработки и создания различных проблемноориентированных вычислителей, что приводит к увеличению стоимости решения как отдельной прикладной задачи, так и всего комплекса решаемых задач.
В этой связи актуальной является разработка реконфигурируемых вычислительных систем, в рамках архитектуры которых пользователь мог бы синтезировать виртуальные параллельно-конвейерные вычислители со структурой, адекватной информационной структуре задачи или ее фрагменту [2].
Синтез виртуальной проблемно-ориентированной архитектуры в рамках универсальной многопроцессорной системы осуществляется путем соответствующей настройки компонентов системы: процессоров - на выполнение определенных арифметико-логических операций; контроллеров распределенной памяти - на определенные процедуры обращений к каналам распределенной памяти; коммутаторов - на определенные коммутационные структуры, обеспечивающие пространственное соединение между собой множества процессоров и каналов распределенной памяти в соответствии с информационным графом задачи.
В то же время наиболее производительной будет система, архитектура которой адаптирована к структуре решаемой задачи на уровне логических элементов, однако такой подход потребует чрезвычайно сложного управления и может привести к резкому увеличению времени перестройки системы с одной вычислительной структуры на другую.
За последнее десятилетие сформировалось мнение, что комбинация микропроцессор/программные средства служит основой гибкости и функциональности и лишь в некоторых случаях обеспечивает решение проблемы быстродействия, в то время как аппаратные средства обеспечивают необходимое быстродействие при функциональной неизменности [3]. Согласно принципу дуальности аппаратно-программной реализации вычислений [4,5] любой вычислительный компонент может быть выполнен как программно, так и аппаратно. Появившиеся в последние годы системы с реконфигурируемой структурой подтверждают данную гипотезу. В то же время появление программируемых логических интегральных схем (ПЛИС) не изменило ситуацию: устройства, построенные с применением микропроцессоров, называют универсальными, а устройства, использующие аппаратные ускорения, - специализированными или проблемно-ориентированными. Даже
комплексные системы, которые содержат как микропроцессоры, так и ПЛИС, не выделены в отдельный класс. Такие устройства называют гибридными, различая даже в одной архитектуре две независимые подсистемы.
Такое разделение связано с некорректным предположением, что программируемые логические устройства являются технологически удачной заменой специализированных устройств. Это справедливо, но только отчасти, ведь и микропроцессоры разрабатывались как замена специализированных устройств. Можно утверждать, что микропроцессоры и ПЛИС являются полуфабрикатами, оба класса устройств не могут функционировать без дополнительных информационных средств. Такую специфику микросхем принято называть программированием. Для макропроцессоров присуще программирование во времени, а для ПЛИС - программирование в пространстве [3].
В процессе работы процессор последовательно получает команды и в соответствии с каждой из них осуществляет преобразование информации. Усложнение алгоритма приводит к увеличению типов команд и времени обработки. Для ПЛИС алгоритм выполняется в единой структуре (максимально параллельно). Усложнение алгоритма приводит к увеличению числа задействованных логических элементов и площади кристалла.
Микропроцессоры и ПЛИС можно рассматривать в качестве граничных элементов, реализующих алгоритмы в различных физических пространствах (временные модели). Промежуточным решением, которое позволило бы объединить преимущества обоих методов обработки информации, являются динамически перестраиваемые программируемые логические элементы, у которых должна существовать возможность динамически в процессе решения задачи заменять всю структуру устройства или ее часть.
В ряде современных ПЛИС уже встраиваются макропроцессоры.
В основе предлагаемой компанией Altera микросхемы Excalibur может находиться как ядро ARM922, так и ядро MIPS32 4Kc. Названная Системой на Программируемом Кристалле (system on a programmable chip), она содержит несколько фиксированных периферийных узлов типа универсальных асинхронных приемопередатчиков и таймеров. Обмен данными между процессором и имеющимися на кристалле памятью и периферийными узлами, а также между процессором и программируемой логической матрицей осуществляется по двухуровневой 32разрядной шине конвейерного типа AMBA с тактовой частотой до 200 МГц. Микросхема Excalibur поддерживает несколько вариантов конфигурирования. В варианте PLD first загрузка статической аппаратной конфигурации в микросхему осуществляется из предварительно запрограммированной ПМЛ (программируемая матричная логика PLD array).
Производитель программируемых логических устройств компания Xilinx предлагает свой вариант подобных устройств, названный ею Platform FPGA. Микросхема Platform FPGA является комбинацией программируемой логической архитектуры Virtex-II от Xilinx и процессорного ядра IBM PowerPC 405. Для реализации на базе FPGA за пределами процессора других аппаратных IP-блоков используются две технологии: IP Immersion, обеспечивающая размещение аппаратных IP-ядер в любом месте матрицы, и Active Interconnect, на базе которой создаются каналы передачи данных между аппаратными и программируемыми элементами независимо от их местоположения в матрице. Используя Platform FPGA, отдельные элементы можно разрабатывать на базе программируемой логики. Затем, из соображений объема производства, необходимости снижения размеров кристалла и/или стоимости их можно реализовать в виде жёсткой логики. Элементы схемного решения, обеспечивающие гибкость дизайна, можно держать в виде программируемой логики, одновременно снижая себестоимость и размеры уже «зашитых» элементов. Поскольку программируемая матрица - это своего
рода ОЗУ, ее можно перепрограммировать, используя как внутрикристальный процессор, так и внешние источники.
Компания Xilinx предлагает также технологию ExtremeDSP, в основе которой заложены архитектура Virtex-II и такие базовые элементы как таблицы поиска и регистры, из которых могут строиться различные функциональные устройства типа умножителей-аккумуляторов. Пользуясь этой технологией, алгоритмы цифровой обработки сигналов можно создавать в программируемой матрице в виде конвейеров из подобных устройств, которые могут обеспечивать производительность до 160 миллионов выборок в секунду. Модификация алгоритма при этом может осуществляться путем динамичной загрузки в FPGA новой конфигурации.
Примером еще одной из систем на кристалле с высокой степенью конфигурируемости является реконфигурируемый коммуникационный процессор CS2000 компании Chameleon Systems. В состав CS2000 входят RISC-процессор и программируемая матрица (RFP reconfigurable processing fabric). Однако это не обычная программируемая логическая матрица, а более специализированная ориентированная исключительно на беспроводные телекоммуникационные цифровые системы. Интересной особенностью является и то, что сам процессор (ядро ARC компании Advanced RISC Cores) тоже конфигурируемый. Кроме процессора и реконфигурируемой вычислительной структуры, в состав CS2000 входят 32разрядный PCI-контроллер, 64-разрядный контроллер памяти и 16-канальный контроллер прямого доступа в память. Внутренний обмен данными между различными подсистемами осуществляется по шине RoadRunner, представляющей собой 128-разрядную шину с разделением транзакций и пропускной способностью 2 Гбайт/с (в обменах между подсистемами на одном кристалле). Кроме того, имеется 160 выводов для подключения программируемых устройств ввода/вывода.
Структура RFP делится на четыре полосы (slice), каждая из которых представляет отдельный независимо конфигурируемый базовый компонент. Каждая полоса состоит из трех пластин (tile), которые, в свою очередь, состоят из семи 32-разрядных узлов передачи данных DPU (data path unit), двух однотактных устройств умножения 16-разрядного числа на 24-разрядное, четырех внутренних 32разрядных буферов памяти на 128 элементов и блока управления (CLU). Друг с другом все модули соединяются динамическими линиями связи.
Не исключено, что в ближайшее время определяющее значение будет иметь динамическая реконфигурируемая система, поэтому разработка комплекса аппаратно-программных средств, учитывающих программирование в пространстве (конфигурации структур) и во времени (последовательности команд), перспективна и актуальна, если учесть, что удельная производительность ПЛИС на 2-3 порядка превышает данный показатель для микропроцессоров.
Реконфигурируемая многопроцессорная система должна строиться из модулей, связанных между собой пространственной коммутационной структурой. В общем случае структура модулей системы может быть различной, хотя для повышения технологичности целесообразно, чтобы реконфигурируемая система строилась из унифицированных базовых модулей.
Базовый модуль состоит из множества макрообъектов, каждый из которых представляет собой ПЛИС высокой степени интеграции, содержащую несколько миллионов эквивалентных вентилей.
Если для МВС со структурно-процедурными вычислениями можно обозначить реализуемые функциональные блоки (макропроцессоры, реализующие обработку информации, макропамять, обеспечивающую хранение информационных массивов, а также скоростной параллельный доступ и макрокоммутатор, реализующие соединение компонентов системы, в том числе и динамически), то для адаптируемых многопроцессорных систем даже функции объекта могут изме-
няться в процессе решения задачи. Устройство обработки информации может быть в следующий момент времени преобразовано в память, а коммутатор - стать функциональным устройством. Разумеется, кроме ПЛИС базовый модуль должен содержать стандартные микросхемы памяти, которые фиксированно связаны с одной или несколькими ПЛИС. Архитектура базового модуля и системы в целом может произвольным образом изменяться.
Каждый макрообъект, входящий в состав базового модуля, содержит множество разнородных объектов, объединенных между собой некоторой внутренней коммутационной структурой, которая позволяет соединить объекты в функционально законченный блок, а также обеспечивает транзит информации между различными макрообъектами. Кроме того, каждый макрообъект обязательно содержит интерфейсную схему, которая обеспечивает корректное взаимодействие между объектами, принадлежащими различным макрообъектам.
Объектами могут быть: элементарный процессор (ЭП), контроллер распределенной памяти (КРП), преобразователь информации (П) или динамический коммутатор (ДК).
Элементарный процессор осуществляет обработку пары операндов в соответствии с кодом операции, а также обеспечивает синхронизацию потоков операндов и реализацию структур операций (операции с константой, с обратной связью, с запаздыванием). Преобразователь информации обеспечивает реализацию фиксированной функции, которая не может быть изменена при данной конфигурации ПЛИС. Следует отметить, что функциональное преобразование может быть выполнено над группой операндов (например, скалярное произведение векторов, численное интегрирование, умножение матриц, решение системы логических уравнений), при этом в преобразователе информации синхронизация информационных потоков, как правило, не обеспечивается.
Совокупность элементарных процессоров, настроенных на выполнение определенных арифметико-логических операций и преобразователей информации, входы которых соединены внутренней пространственной коммутационной структурой в соответствии с информационным графом решаемой задачи, образуют вычислительную структуру, реализующую обработку информационных массивов в соответствии алгоритмом решения задачи (фрагмента решения задачи). В вычислительную структуру могут быть включены дополнительные узлы и блоки, например, буферы данных для синхронизации информационных потоков или компараторы-переключатели.
Информационные потоки в вычислительной структуре образуются с помощью контроллеров распределенной памяти, которые организуют скоростные параллельные обращения к сегментированной внутренней и внешней памяти макрообъекта. Динамические коммутаторы обеспечивают переключение информационных потоков между источниками и приемниками, причем изменение адреса источника (приемника) может производиться произвольно с каждым данным.
На рис.1 представлена структурная схема макрообъекта.
В макрообъект может быть введено логическое устройство управления (ЛУУ), которое дополняет архитектуру перестраиваемого параллельного конвейера и делает систему практически универсальной.
Логическое устройство управления обслуживает параллельный конвейер макрообъекта, а также реализует обработку нештатных ситуаций. Необходимость введения ЛУУ в состав макрообъекта объясняется тем, что наличие только одной ИоБ^машины приведет к проблеме «узкого горла». Загрузка данных и программ в макрообъекты, а также управление и диспетчеризация множеством конвейеров от единственного устройства управления может привести к значительному снижению производительности.
Рис.1.
Введение ЛУУ в каждый макрообъект снимает указанные проблемы. Управление процессом вычислений реализуется по иерархическому принципу: Ио81;-машина передает указания ЛУУ, которые непосредственно управляют вычислительными процессами в макрообъектах.
Информационная связь между базовыми модулями осуществляется с помощью коммутационной пространственной системы, которая реализована внутри базового модуля. Коммутационная система базового модуля реализует не только информационные связи между компонентами базового модуля, но и информационные связи между БМ. Подобная организация коммутационной структуры обеспечивает однородность вычислительной системы (система состоит только из базовых модулей) и высокую технологичность организации вычислительных процессов.
Обмен информацией между объектами, принадлежащими разным базовым модулям, организуется точно так же, как и обмен между объектами внутри базового модуля.
Адаптированная система может реализовать самые разнообразные структуры даже при условии, что связи между макрообъектами останутся неизменными, что соответствует соединению выводов ПЛИС на плате базового модуля. В более общем случае это не так, поскольку коммутационная структура макрообъектов может обеспечивать не только соединение объектов макрообъекта в единую вычислительную систему, но и коммутацию внешних входов/выходов для обеспечения транзита информации.
Рассмотрим базовый модуль адаптивной МВС, содержащей пхш макрообъектов, образующих цилиндрическое соединение (рис.2); вертикальные связи первой и последней строк макрообъектов используются для наращивания.
Перестраивая макрообъекты на функции обработки информации и функции информационных потоков, можно получить различные конфигурации базового модуля, представленные на рис. 3. Здесь черный макрообъект соответствует элементу распределенной памяти, а белый - функции обработки информации.
г н
г п
г л
г л
Рис.2.
При перераспределении функциональных блоков можно получить различные проблемно-ориентированные архитектуры, эффективно реализующие определенный класс задач.
Конвейерная обработка информации на базовом модуле адаптивной многопроцессорной системы приведена на рис 3а. Здесь имеется единственный источник информационного массива, который проходит через последовательность функцио- . нальных блоков. Результат преобразования информации записывается в приемник.
Более сложная схема параллельного конвейера обработки информационных структур показана на рис.Зб. В данном примере реализовано два независимых конвейера. Подобная организация вычислений характерна для решения задач символьной обработки информации, цифровой обработки изображений и сигна- , лов. Следует отметить, что между функциональными макрообъектами, образующим вычислительный конвейер, может быть сложная взаимосвязь.
На рис.Зв приведена вычислительная структура базового модуля, настроенного на реализацию четырех независимых конвейеров, а на рис. Зг - .четырех взаимосвязанных конвейеров. Такая организация вычислений характерна для задач математической физики.
На основании принципов адаптации структуры многопроцессорной системы ' ' можно получить векторную архитектуру (рис. Зд) или матричную (рис.Зе). Принципиальным отличием от традиционных архитектур является то, что элемент об-
ЗЗ
работки информации представляет собой не процессор, последовательно осуществляющий преобразование информации, а сложное функциональное устройство, состоящее из множества взаимосвязанных пространственной коммутационной структурой объектов. Обработка информации осуществляется структурно.
Для задач математической физики функциональный макрообъект осуществляет обработку информации в узле сеточной области, при этом элементарный процессор настроен на выполнение определенной операции, выполняемой в узле сетки. Динамические коммутаторы и контроллеры распределенной памяти организуют подачу данных, соответствующих значению информационных массивов в узлах сеточной области. При этом возможно, что макрообъект реализует несколько узловых процессоров.
Для задачи цифровой обработки сигналов функциональный макрообъект осуществляет структурную реализацию базовых операций, например, процедуры быстрого преобразования Фурье, процедуры Уолша, косинусного преобразования. Размерность базового преобразования определяется вычислительным ресурсом макрообъекта. При решении задач цифровой обработки сигналов целесообразно использовать не только элементарные процессоры, способные динамически перестраиваться на выполнение различных команд, но и проблемно-ориентированные преобразователи информации с неизменной структурой, применение которых позволяет увеличить скорость обработки информации от двух до десяти раз.
44 =Е 44 ПТ
-И-4- II 1 -И-4- II тт т Нї
М-4 =С -П-4- 1 1
а)
44 =Е 4^
44 +4-
і і =Е ЬЫ: 4+
=С
а)
41- ггА
и 1 44 —і 44 ТУ *
■П-4- 44 =с 44! II 1 тгА
3= М-4 ТТ Т
б)
б) Рис. 3.
*4- =: +4-
44 гп -Н4
11_ -4 ^— — -44
44- -44
1 'с 44£ в і —1 11 ) и 44
И-1, Щ 1_т 44
№-*-Н і 1 ? | Г
Д-1 ——і 'у т
в)
Для задач символьной обработки информации использование специализированных преобразователей информации является обязательным. Это обеспечивает увеличение производительности на два-три порядка.
Матричная и векторная организация связей эффективны не только для задач линейной алгебры, но и для решения систем логических уравнений и функционального моделирования. Кроме того, матричная структура может быть эффективно использована для реализации нейросетевых алгоритмов.
Если учесть, что топология межмакрообъектных связей может ' быть более сложной, чем цилиндрическая, например гиперкуб, то тогда число возможных :
проблемно-ориентированных архитектур, потенциально реализуемых в базовом модуле МВС, многократно возрастает.
Топология связей гиперкуба приведена на рис 4.
0 1
14 15
Рис. 4.
4
6
Следует отметить, что для базового модуля, содержащего 16 макрообъектов (большее количество вряд ли удастся реализовать на одной плате) топология гиперкуба реализуется в тороидальной структуре, представленной на рис 5. Номера вершин гиперкуба (рис. 4) и макрообъектов (рис. 5) совпадают.
Рис 5.
Каждый макрообъект связан по четырем направлениям с макрообъектами, номера которых, записанные в двоичном коде отличаются инверсией отдельного бита. Макрообъект, имеющий номер <х0,х1,х2,х3>, связан с объектами
{< х0,х1,х2,х3 >,< х0,х1,х2,х3 >,< х0,х1,х2,х3 >,< х0,х1,х2,х3 >}
Наличие внутренней коммутационной системы позволяет реализовать различные топологии межпроцессорных связей. Таким образом, система, состоящая из макрообъектов, соединенных топологией 2Б-тора, обеспечивает высокую скорость обработки информации за счет реализации принципа близкодействия, высокой
(0000)
1
(0001)
2 3
(0010) (0011)
удельной производительности и конвейерной обработки данных и может быть основой для создания высокопроизводительных вычислительных комплексов.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Аладышев О. С., Дикарев Н.И., Овсянников А.П., Телегин П.Н., Шабанов Б.М. СуперЭВМ: области применения и требования к производительности. // Известия ВУЗов. Электроника, 2004. №1. С. 13-17.
2. Каляев А.В. Программирование виртуальных архитектур в суперкомпьютерах с массовым параллелизмом. //Информационные технологии и вычислительные системы. М.: Изд-во , 2000. № 2.
3. Т. МактЫв. ТЪе Rising Wave of Field Programmability. Proceeding of Tehth International Conference on Field-Programmable Logic and Applications FLP-2000. Vil-lach. Austria. August 2000.Springer Lecture Notes in Computer Science 1996. Р. 1-6.
4. Ясинявичус Р. Параллельные пространственно-временные вычислительные структуры. Вильнюс: Мокслас, 1988. 183 с.
5. Каляев А.В. Многопроцессорные вычислительные системы с программируемой архитектурой. - М.: Радио и Связь, 1984. 240 с.
Н.А.Лукин РЕКОНФИГУРИРУЕМЫЕ ПРОЦЕССОРНЫЕ МАССИВЫ ДЛЯ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ: АРХИТЕКТУРЫ, ЭФФЕКТИВНОСТЬ, ОБЛАСТИ ПРИМЕНЕНИЯ Назначение, выполняемые функции и типы
Непрерывное усложнение алгоритмов, реализуемых системами реального времени, приводит к необходимости введения в состав вычислительного оборудования новых процессоров. Это процессоры, архитектуры которых ориентированы на максимально эффективную реализацию определенных функций или процедур [1]. В этом случае возможно вычисление требуемых процедур с максимальной скоростью, что обеспечивает решение с помощью бортовых ЦВМ таких задач, которые еще недавно считались нереализуемыми в условиях малогабаритного приборного отсека. В качестве примеров можно привести задачу мониторинга конструкции летательного аппарата в полете и задачу обработки двумерных протяженных изображений в реальном времени на борту высокоманевренных объектов ракетно-космической техники.
Повышение эффективности бортовых систем управления в части решения основных задач невозможно без применения микроминиатюрных и высокопроизводительных специализированных процессоров, архитектура которых ориентирована на быструю реализацию базовых функций алгоритмов обработки информации с датчиков различных типов. Такие процессоры называются функционально-ориентированными (ФОП), они представляют собой основной предмет настоящей статьи.
В современных системах реального времени можно выделить некоторые подсистемы, где требуется сейчас или может потребоваться в ближайшем будущем производительность порядка миллиардов операций в секунду. Это контуры первичной обработки данных и управления в составе электроники навигационных датчиков, оптические информационно-измерительные каналы, предназначенные для обработки в реальном времени изображений, многоканальные тракты обработки радиолокационной информации (ФАР), системы сжатия в реальном времени сверхбольших объемов информации для космических аппаратов.