Черновицкий А.С. , Филоненко В.А., Петров В.В.
ПРИНЦИПЫ ПОСТРОЕНИЯ АДАПТИВНЫХ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ СПЕЦИАЛИЗИРОВАННЫХ ВЫЧИСЛИТЕЛЕЙ ДЛЯ ВСТРАИВАЕМЫХ
И СТАЦИОНАРНЫХ ПРИЛОЖЕНИЙ
1. ВВЕДЕНИЕ
В статье речь идет о разработке и производстве вычислительных модулях специального назначения для различных образцов военной и гражданской техники, а также о технических решениях, позволяющих создавать наиболее эффективное оборудование этого класса.
Рассматриваемые технические решения одинаково эффективно могут быть использованы как во встраиваемых (бортовых) применениях, так и в стационарных системах.
Область разработки и производства специализированных вычислительных модулей в настоящий момент освоена недостаточно, в то время как круг задач, их требующих, непрерывно растет. Растет потребность в высокоэффективных бортовых вычислителях, а также стационарных высокопроизводительных вычислительных системах.
В то же время, современная элементная, технологическая и методологическая база позволяет создавать изделия высокого уровня, оптимальным образом аккумулируя в них наиболее эффективные элементы и технические решения.
Немаловажное внимание при разработке эффективных вычислительных систем уделяется вопросам надежности и отказоустойчивости. В данной работе они также учтены.
2. АНАЛИЗ ОБЛАСТЕЙ ПРИМЕНЕНИЯ И СУЩЕСТВУЮЩИХ ТЕНДЕНЦИЙ
Специализированные встраиваемые вычислительные системы применяются в различных областях военной и гражданской техники. Это - различные комплексы и системы вооружений, авиация, космическая техника, флот, сложное промышленное оборудование, телекоммуникационные устройства, радиолокационное и навигационное оборудование, автоматизированные и дистанционно управляемые системы и др.
Стационарные высокопроизводительные вычислительные среды широко используются для решения вычислительно-емких задач, таких как математическое моделирование, обработка статистических данных, обработка больших массивов данных и высокоскоростных потоков.
Задачи, выполняемые встраиваемыми вычислительными системами различного назначения, очень разнообразны, но, в то же время, между ними есть много общих черт:
- Большие объемы входящих данных;
- Функциональная гибкость (различные задачи и многозадачный режим);
- Гетерогенная, мультипротокольная интерфейсная среда;
- Необходимость обработки данных в режиме реального времени, поступающих как в синхронном, так и в асинхронном режиме;
- Необходимость улучшения массогабаритных показателей и параметров энергопотребления;
- Необходимость обеспечения высокой надежности, отказоустойчивости и живучести;
- Распределение задач по степени их критичности;
В данном случае мы рассматриваем в первую очередь задачи, характеризуемые высокими требованиями к производительности и объемам обрабатываемых данных. Таких приложений становится все больше, хотя следует отметить, что существует и другая ниша - низко производительные малопотребляющие встраиваемые и бортовые устройства, для которых дальнейшие рассуждения мало применимы и которые строятся по несколько другим принципам.
Стационарные сверхпроизводительные вычислительные системы характеризуются несколько другими требованиями и особенностями:
- Максимально достижимая пиковая производительность на специализированных задачах, ограниченная только возможностями применяемой элементной базой, но не архитектурой построения системы;
- Возможность адаптации к широкому кругу задач с обеспечением максимальной пиковой производительности;
- Гибкость и удобство средств разработки прикладных задач;
- Наращивание ресурсов путем масштабирования;
- Разумные массогабаритные параметры;
- Устойчивость функционирования.
Сложные вычислительные системы требуются в малых, средних, редко - больших партиях. Наиболее распространены небольшие серии, исчисляемые сотнями и тысячами экземпляров. Это накладывает ограничения на применяемую элементную базу.
Разработка устройств на базе БМК при таких партиях экономически не оправданна, кроме этого, российская технологическая база в настоящий момент недостаточно развита для производства аналогов современным зарубежным образцам.
Таким образом, выбор существует между процессорами общего назначения достаточной производительности, специализированными процессорами и ПЛИС.
На сегодняшний день ключевая элементная база, то есть, отвечающие современным требованиям процессоры и контроллеры общего и специального назначения, в России не производятся.
Попытки создать адекватные современным требованиям процессоры и процессорные комплекты пока что не увенчались успехом.
Таким образом, как показывает практика выполнения многих проектов по разработке вычислительных систем, наибольшая часть задач пока покрывается элементной базой зарубежного производства.
Рассматривая примерный круг приложений, можно утверждать, что оптимальным образом подобрать ключевую элементную базу для данных задач не представляется возможным.
Процессоры общего назначения распространенных типов, например, с архитектурой Х8 6, создавались для принципиально произвольного круга задач. То есть, процессоры универсального, общего назначения можно применять как для обработки баз данных, так, например, и для потоковой обработки сигналов в реальном времени. В то же время, в каждой из этих задач, а точнее для каждого класса задач, эффективность использования ресурсов процессора будет достаточно низкой.
В рассматриваемых нами задачах круг выполняемых функций ограничен, областью применения разрабатываемого вычислителя, что требует определенной степени оптимизации архитектуры процессорных элементов.
По этой же причине для построения высокопроизводительных вычислителей специального назначения непригодны узкоспециализированные контроллеры, не обладающие достаточной производительностью и адаптированные к крайне узкому, недостаточному для наших задач, кругу приложений.
Существует промежуточный класс процессорных элементов. Это сравнительно высокопроизводительные процессоры специализированного назначения, например, телекоммуникационные процессоры FreeScale, процессоры цифровой обработки сигналов TMS и др. Их производительность в настоящее время уже сопоставима с производительностью последних поколений процессоров общего назначения, а функциональные возможности достаточны, чтобы максимально охватывать круг возможных задач для определенной области применения.
Недостатком процессоров этих типов является их большое разнообразие, отсутствие достаточного количества программных средств, слабая изученность разработчиками.
Таким образом, для выполнения требований оптимальности и эффективности вычислительных архитектур в специализированных приложениях целесообразно использовать аппаратно адаптируемые к задачам процессорные элементы. Этими элементами могут быть специальным образом проектируемые кристаллы в виде БМК (ASIC), либо ПЛИС. Разработка и производство БМК, как было сказано выше, для малых и средних серий нецелесообразна, в том время как использование ПЛИС в подобных задачах, наоборот, весьма эффективно. Применение ПЛИС позволит обеспечить требуемую аппаратную гибкость и способности адаптировать вычислительную архитектуру к заданному кругу задач.
Одного только применения ПЛИС для построения эффективных вычислительных систем недостаточно, и для достижения высоких характеристик разрабатываемых вычислителей необходимо применять целый ряд сопутствующих технических решений, речь о которых пойдет далее.
3. КЛЮЧЕВЫЕ ЧЕРТЫ
1) Эффективная и высокопроизводительная элементная база
Как для встраиваемых, так и для стационарных вычислителей предлагается использовать наиболее современные и производительные ПЛИС класса Xilinx Virtex5,
Altera Stratix
III. Эти элементы
характеризуются большим объемом логических ячеек, высокой скоростью работы, наличием высокоскоростных системных шин, встроенных типовых процессорных ядер.
Возможности ПЛИС последних поколений позволяют аппаратно создавать различные логические, арифметические или процессорные элементы. Например, в ПЛИС могут быть реализованы процессорные ядра, такие как PPC, ARM и др. Могут быть реализованы блоки обработки данных, как последовательные, так и параллельные. Могут быть реализованы контроллеры практически всех существующих интерфейсов - системных (RapidIO, RocketIO, HyperTransport, USART, USB, FireWire, PCIe, InfiniBand, Ethernet), промышленных (LONWORKS, DeviceNet, SDS BACnet, Modbus), телекоммуникационных (Ethernet 10/100/1000, E1/T1, E3/T3, STM), бортовых (ARINC429, AFDX,
MIL1553, CAN).
ПЛИС позволяет создавать нестандартные блоки ввода/вывода данных, основанные на применении специфических (пользовательских интерфейсов).
При использовании ПЛИС становятся практически неограниченными возможности создания специальных блоков обработки данных, оптималь но адаптированных под выполнение определенного набора задач. Адаптация выполняется на аппаратном уровне, благодаря чему ресурсы вычислительного блока используются максимально.
В этом проявляется ключевое преимущество по отношению к стандартному процессору. Процессор, в зависимости от выполняемой задачи, задействует только часть своих компонентов (регистров, АЛУ, схем ввода/вывода). При смене задачи задействуются другие компоненты и в другом составе, но всегда загруженность процессора будет составлять лишь часть от его потенциальных возможностей. Отсюда также может вытекать нехватка ресурсов, когда те или иные компоненты загружены полностью, а другие простаивают. ПЛИС же можно аппаратно программировать таким образом, чтобы все его ячейки находились в работе, формируя требуемые на данный момент структуры.
Применение современных ПЛИС позволяет получить в одной микросхеме возможности большой многокомпонентной системы, аналогичной сложной печатной плате, включающие модули обработки данных, ввода/вывода, конфигурирования, мониторинга.
Рис.1
общая структура процессорного модуля
Фактически, вне этой «системы на кристалле» остаются только контроллеры (формирователи) физического уровня внешних интерфейсов и «обвязка» (память и др.), в то время как логический и транспортный уровни реализованы в структурах ПЛИС.
Реализация полноценного типового процессорного ядра в ПЛИС хотя и возможна, но не всегда оправдана с точки зрения технологичности разработки и достигаемой производительности. В этой связи стоит упомянуть о новых свойствах ПЛИС последних поколений - наличии одного или нескольких физически встроенных процессорных ядер (например, PowerPC 4 05 в Virtex4).
Рис.
- общая структура плис
Эти ядра можно эффективно использовать, запуская на них программные управляющие приложения и операционную систему. В такой структуре в ПЛИС создаются компоненты обработки данных и ввода/вывода, то есть, специальные функции, подключаемые (аппаратно и программно) к процессору. Функции могут логически быть представлены в виде сопроцессоров, либо устройств, подключаемых к процессору по системной шине.
При этом достигается оптимальность, когда к процессору, выполняющему типовую программу
системой,
управления эффективно.
В зависимости от арифметические блоки, реализовывать весьма
подключается «обвязка»,
решающая
специфические задачи
максимально
задачи, в структуре ПЛИС могут создаваться различные логические и например, блоки умножителей сумматоров, деления, БПФ и др. Можно вычислительно емкие функции, «тяжелые» для последовательной логики, например, перемножение больших матриц за один такт.
Состав этих блоков может быть произвольным и определяется требованиями задачи (набора задач).
Для примера, арифметический блок, выполняющий операцию деления с плавающей точкой двух 64-разрядных чисел, занимает 7 77 ячеек (блок без оптимизации по количеству ячеек). Он выполняет операцию деления за один такт с частотой 190 МГц.
Объем логических ячеек ПЛИС класса Virtex4 позволяет реализовать около 150 таких блоков. То есть, теоретическая общая производительность будет составлять порядка 28 ГФЛОПС. Это условная цифра, так как в структуре ПЛИС определенный объем необходимо отвести на модули межпроцессорного взаимодействия, ввода-вывода данных, обработку интерфейсов и пр. реально количество внешних выводов ПЛИС позволит создать только несколько десятков таких блоков.
Тем не менее, к основным двум процессорным ядрам PowerPC добавляется возможность создавать дополнительные функциональные элементы, своего рода «сопроцессоры», берущие на себя ряд задач. Даже с учетом того, что не каждый алгоритм можно распараллелить, и даже те, которые можно - не целиком, производительность системы значительно возрастает.
2) Модульно-структурированная архитектура
Любая вычислительная система состоит из двух типов логических модулей - модулей ввода/вывода и модулей обработки (вычислительных, процессорных модулей).
В предлагаемой архитектуре используется унифицированная схема разделения модулей, построенная на следующих принципах.
Первый тип модулей - процессорные модули. Они содержат вычислительное ядро, построенное на ПЛИС, быстродействующую оперативную памятв болвшого объема, ПЗУ в виде флэш-памяти.
Рис.3
модульная структура
Главной характеристикой процессорного модуля является его интерфейсная среда. В процессорном модуле отсутствуют специфические внешние интерфейсы, и он не имеет прямых связей с внешними системами. В то же время, он оборудован унифицированным межмодульным интерфейсом, объединяющим вычислительные модули, в том случае, если их несколько; и унифицированным интерфейсом для подключения модулей ввода/вывода (модулей расширения). Оба интерфейса обеспечивают высокую скорость обмена данными, достаточную для выполнения практически любых задач.
По сути, процессорный модуль является самостоятельным вычислительным устройством, выполняющим прикладные и системные задачи, а также обрабатывающий протоколы обмена с модулями расширения.
Модуль расширения - простая система. В обобщенном виде он состоит из двух подсистем -подсистемы обмена с процессорным модулем по унифицированному интерфейсу, и подсистемой обмена с внешними системами по специфическим интерфейсам, состав которых зависит от задачи.
Таким образом, модуль расширения выполняет только функции ввода/вывода по внешним каналам и на физическом (иногда и транспортном) уровне. В блоке интерфейсов есть возможность производить предобработку поступающих данных.
Рис.4 интерфейсная среда и взаимодействие модулей
Рис.5
две подсистемы модуля расширения
Подсистема обмена с процессорным модулем унифицирована и не зависит от типов и состава внешних интерфейсов. Состав внешних интерфейсов определяется задачей.
Для межмодульного обмена создается специальная модель сетевого взаимодействия, позволяющая инкапсулировать/декапсулировать любые протоколы.
3) Гибкость и функциональная масштабируемость
Рассмотренная модульная архитектура подразумевает построение вычислительных сред большой гибкости. Состав модулей расширения может быть произвольным, образующим любые сочетания внешних интерфейсов и функций обработки/управления. При этом процессорный модуль остается неизменным, меняется только состав модулей расширения.
Интерфейсы взаимодействия с внешними системами добавляются путем присоединения к системе новых модулей расширения, функциональные возможности - добавлением в процессорный модуль соответствующих программных модулей и структур ПЛИС.
Ядро вычислителя на программном уровне содержит операционную систему, встраиваемые и системные компоненты, в состав которых входят и драйверы устройств. При добавлении какой-либо аппаратной функции обработки или нового модуля расширения необходимо добавить в систему соответствующие программные компоненты.
Архитектура системы позволяет использовать различные конфигурации, отличающиеся не только составом модулей расширения, но и количеством процессорных модулей и организацией внутрисистемного обмена.
4) Масштабирование производительности и кластерные системы
Архитектура предлагаемых вычислителей позволяет наращивать производительность, увеличивая количество процессорных модулей в корпусе вычислителя, либо объединяя группу вычислителей внешними высокоскоростными каналами. Таким образом, поддерживаются режимы работы в локальном и распределенном кластере. В зависимости от задачи, могут быть реализованы различные типы кластера
- с равноправными узлами, с ведущим узлом, режим горячего N-кратного резервирования, режим теплого резервирования, SMP и пр.
5) Стандартизированная системная архитектура на основе общепринятых спецификаций
Для повышения технологичности разработки и производства изделий целесообразно ориентироваться на современные общепринятые спецификации телекоммуникационного оборудования.
Использования стандартных спецификаций позволит создавать решения, которые либо в целом, либо в виде компонентов интегрируемы в другие системы. Например, модули, создаваемые в рамках выбранной спецификации, могут в дальнейшем использоваться во вновь создаваемом оборудовании, при условии, что это оборудование также соответствует спецификации.
Применение стандартных спецификаций повышает эффективность разработки и снижает трудозатраты, так как значительная часть инженерно-конструкторских, схемотехнических, программных решений уже отработана и приведена в спецификации.
Более того, постепенное появление линейки модулей различного функционального назначения, соответствующих спецификации, позволит строить модульные системы большой гибкости, то есть, функциональность оборудования можно будет изменять и расширять путем изменения модульного состава и модернизации только программной среды, отвечающей за взаимодействие модулей и выполняющей прикладные задачи.
Среди существующих спецификаций создания стационарного оборудования наиболее привлекательна спецификация высокопроизводительного оборудования PICMG 3 (AdvancedTCA) и входящая в нее спецификация на мезонинные заменяемые модули AMC (Advanced Mezzanine Card).
Спецификации PICMG 3.0 описывают следующие параметры:
организация межмодульного обмена данными и механизмы высокоскоростной коммутации;
внутрисистемная коммутация;
форм-факторы модулей и корпусов;
питание и охлаждение;
комплексное управление системой;
обеспечение электронной идентификации и совместимости модулей; механизмы централизованного управления платформой.
AdvancedTCA - это стандарт, оптимизированный для вычислительно-емких приложений и призванный удовлетворить требования к масштабированию систем. В частности, спецификация предусматривает пропускную способность внутренней соединительной шины корпуса до 4,5 терабит в секунду, поддержку оперативной памяти свыше 8 ГБ на плату, повышенную готовность системы и запас ресурсов для дальнейшего наращивания производительности.
Спецификация AdvancedTCA формируется с учетом растущих требований к вычислительным системам, определяет новую архитектуру их модульного построения и использует пакетный принцип коммутации, обеспечивая высокую степень масштабируемости коммутирующих структур. Подсистемы резервирования улучшают надежность всей системы.
Соответствующие стандартам AdvancedTCA модульные конструктивные компоненты, включая монтажные стойки, платы, модули управления и блоки для замены в условиях эксплуатации, призваны обеспечивать на протяжении всего жизненного цикла оборудования такие важные преимущества, как упрощенное техническое обслуживание, облегченная модернизация, поддержка нескольких протоколов, расширенные возможности взаимодействия, а также возможность резервирования подсистем для повышения надежности и готовности систем.
Спецификация AdvancedTCA в самой своей основе разработана как недорогая альтернатива современным закрытым архитектурам высокопроизводительного оборудования. Использование модульных конструктивных компонентов, совместимых со спецификациями AdvancedTCA, уже сегодня позволит производителям вычислительных систем создавать высокопроизводительные решения с высокой
пропускной способностью, обладающие запасом ресурсов для гибкого решения широкого круга задач. Дополнительное преимущество модульных конструктивных компонентов стандарта AdvancedTCA состоит в снижении стоимости разработки и сокращении времени выхода продукции на рынок.
Применение этой технологии в построении аппаратуры обеспечивает низкую стоимость внедрения, простоту модернизации и адаптации к меняющимся требованиям.
AdvancedTCA является открытым стандартом, таким образом, в одном корпусе могут использоваться модули различного функционального назначения разных производителей, при этом сохраняется полностью прозрачное взаимодействие модулей.
Среди преимуществ, обеспечиваемых применением стандарта AMC, можно выделить следующие:
Таким образом, применение этих спецификаций в данном проекте и последующих работах позволит обеспечить следующие преимущества по сравнению с проприетарными решениями: снижение сроков и затрат на разработку нового оборудования; унификация оборудования и открытость;
расширение возможностей проектирования с использованием ранее разработанных модулей и модулей других производителей;
упрощенное техническое обслуживание; облегченная модернизация;
поддержка набора протоколов внутреннего обмена
высокоэффективная архитектура, основанная на высокоскоростной коммутации пакетов;
расширенные возможности взаимодействия;
резервирование подсистем;
гибкость и открытость архитектуры;
высокая надежность и готовность;
масштабируемость;
горячая замена модулей;
встроенные средства диагностики;
запас ресурсов для развития.
Аналога спецификации AdvancedTCA для бортовых применений пока что не существует, а решения на основе PC104 стремительно устаревают. Возможно создание подобных спецификаций при выполнении разработки специальных бортовых вычислителей нового поколения, концепция построения которых описывается в данной статье.
6) Адаптивная аппаратная реконфигурация
Возможности современных ПЛИС в плане аппаратного программирования позволяют реализовать функции адаптивной аппаратной реконфигурации, которая может задаваться не только при начальной настройке системы, но и в процессе ее функционирования, в том числе - без остановки работы.
Реконфигурация осуществляется в зависимости от набора внешних и внутренних факторов и их изменения. Например, причиной для реконфигурации системы может быть неравномерное распределение ресурсов между задачами, изменение объемов поступающих данных по внешним интерфейсам, отказ модулей и компонентов системы.
4 ОРГАНИЗАЦИЯ ВНУТИСИСТЕМНОГО ВЗАИМОДЕЙСТВИЯ
Технология внутрисистемного взаимодействия основана на следующих принципах:
Свободный и гарантированный доступ каждого процессорного к общим разделяемым ресурсам;
Высокоскоростная многопортовая коммутация/маршрутизация данных, обеспечивающая доступ к любым данным с минимальной задержкой;
Распределение задач между процессорными модулями оптимальным образом;
Адаптивность к условиям внешней среды (система может управляться входными данными);
Распределение задач между процессорными модулями в зависимости от специфики их архитектур (разных);
ЗАКЛЮЧЕНИЕ
Таким образом, прорисовываются основные черты встраиваемых и стационарных специализированных вычислительных систем нового поколения.
Кроме особенностей аппаратной и программной архитектуры, обеспечивающих высокую эффективность разрабатываемых вычислительных систем, важную роль играют такие факторы как наличие соответствующего информационного и методологического обеспечения, позволяющего реализовывать проекты различного назначения.