МИКРОПРОЦЕССОРНАЯ ТЕХНИКА
УДК 621.382.8
Реализация SIMD-распараллеливания в сигнальных процессорах платформы «Мультикор»
А.А. Беляев ОАО НПЦ «ЭЛВИС» (г. Москва)
На примере сигнальных процессоров серий 1891 BMxx, 1892BMxx платформы «Мультикор» проведен сравнительный анализ двух подходов к реализации SIMD-распараллеливания в цифровых процессорах обработки сигналов. Первый подход связан с наращиванием числа процессорных элементов (вычислительных секций) процессора, второй - с увеличением размерности обрабатываемых векторов внутри одной секции.
Ключевые слова: сигнальный процессор, архитектура SIMD, векторные вычислители.
Универсальный метод повышения производительности микропроцессоров состоит в применении принципа параллелизма на различных уровнях их архитектуры [1]. Одним из наиболее эффективных способов организации параллельных вычислений является архитектура SIMD [2, 3]. Суть SIMD-распараллеливания (SIMD - single instruction, multiple data) заключается в том, что одна и та же последовательность, или поток, команд выполняется одновременно над множеством потоков данных.
В классическом варианте SIMD-архитектуры один поток команд выполняется одновременно несколькими процессорными элементами, каждый из которых имеет собственную память данных. К числу процессоров с классической SIMD-архитектурой относятся сигнальные процессоры семейств SHARC (ADSP-21ххх) и TigerSHARC (ADSP-TSххх) фирмы Analog Devices [4]. Другой широко применяемый в настоящее время способ реализации SIMD-распараллеливания состоит в том, что в рамках одного вычислительного устройства вычислительная операция выполняется над векторами (упаковками) данных, содержащими несколько скалярных компонент. В качестве примеров такой архитектуры можно привести SIMD-расширения системы инструкций процессоров Intel - SSE, SSE2, SSE3 (Streaming SIMD Extension) [5], процессоров MIPS [6] и др. В отличие от классической архитектуры SIMD в этом случае имеет значение не количество процессорных элементов (вычислительных блоков), а возможность выполнять с их помощью векторные операции. Оба подхода реализованы в сигнальных процессорах платформы «Мультикор» [7, 8].
Цель настоящей работы - сравнительный анализ достоинств и недостатков описанных подходов на основе опыта их применения в микросхемах указанных серий.
Входящее в состав сигнального процессора 1892ВМ2Я DSP-ядро ELcore-24TM имеет классическую архитектуру SIMD с двумя вычислительными секциями. Структурная схема DSP-ядра ELcore-24TM приведена на рис.1.
© А.А. Беляев, 2012
Рис.1. Структурная схема DSP-ядра ELcore-24 процессора 1892ВМ2Я (PAG - генератор адреса программной памяти; PRAM - память программ; PDC - декодер инструкций; AGU, AGU-Y - генераторы адреса памяти данных; XRAM0, YRAM0, XRAM1, YRAM1 - память данных; RF - регистровый файл; MS, FMU, AU, FASU - операционные устройства; EDBS, IDBS - коммутаторы шин данных; PAB, XAB, YAB - шины адреса; PDB, XDB0, YDB0, XDB1, YDB1, CDB, DDB, GDB, IDB - шины данных)
S1
S2
DSP-ядро ELcore-24TM содержит два вычислительных блока - ALU0 и ALU1, в состав каждого из которых входят реконфигурируемый регистровый файл RF и операционные устройства MS, FMU, AU, FASU. Каждый вычислительный блок может выполнять операции как над скалярами - 16/32-разрядными числами, так и над векторами -парами 16-разрядных чисел, упакованных в 32-разрядный формат. Таким образом, в данном процессорном ядре реализован как первый, так и второй способ SIMD-
распараллеливания. Примером векторной операции является входящая в систему инструкций этого DSP-ядра команда MPF2, по которой выполняются две операции дробного умножения с двумя парами 16-разрядных чисел и два 16-разрядных результата сохраняются в 32-разрядном регистре регистрового файла. Работа реконфигурируемого вычислителя при выполнении этой команды проиллюстрирована на рис.2.
В классической SIMD-архитектуре определенные трудности вызывает необходимость обмена данными между вычислительными секциями. В DSP-ядре ELcore-24TM предусмотрено два способа осуществления таких обменов. Первый состоит в том, что DSP-ядро переключается в режим SCALAR (в этом режиме работает только одна вычислительная секция, для которой доступно все адресное пространство памяти данных), выполняются необходимые данные, после чего процессорное ядро снова возвращается
D
15 0 15 0
15 0 15 0
1 Г 1 г 1 Г 1 г
\ X / \ X /
1 Г 1 Г
15 0 15 0
Рис.2. Работа ра ELc выполнении команды MPF2
вычислителя DSP-ядра ELcore-24TM при
Реализация SIMD-распараллеливания в сигнальных процессорах.
в режим SIMD. Другой способ заключается в переводе DSP-ядра в режим межсекционного обмена SWP, в котором каждая из секций работает с данными, относящимися к другой секции, после чего DSP-ядро возвращается в обычный режим SIMD. Оба способа связаны с выполнением нескольких дополнительных команд управления, что, как следствие, приводит к увеличению длины программного кода, снижению производительности и росту энергетических затрат.
С целью дальнейшего повышения производительности в более поздних модификациях DSP-ядер серии ELcore-ххTM размерность обрабатываемых векторов была увеличена и система команд дополнена операциями с векторными данными, представленными в форматах 16/32/64/128 бит с фиксированной и плавающей точкой (IEEE-754). Возможности DSP-ядер серии ELcore-ххTM по обработке данных различных типов приведены в табл.1. В графах таблицы в виде п^Ж, где п - число компонент вектора, Ж - разрядность каждой компоненты, для всех используемых форматов указаны поддерживаемые скалярные (при п = 1) и векторные (при п > 1) типы данных.
Таблица 1
Скалярные и векторные типы данных, поддерживаемые Б8Р-ядрами серии ELcore-хxTM в различных форматах
Процессор DSP-ядро Форматы данных
16 бит 32 бита 64 бита 128 бит
1892ВМ3Т ББесге-14 1x16 1x32 - -
2x16
1892ВМ2Я ББесге-24 1x16 1x32 - -
2x16
1892ВМ4Я ББесге-26 1x16 1x32 - -
1892ВМ5Я 2x16
1892ВМ7Я ББесге-28 1x16 1x32 1x64 4x32
2x16 2x32 8x16
4x16 16x8
1891ВМ7Я ББесге-09 1x16 1x32 1x64 4x32
2x16 2x32 8x16
4x8 4x16 16x8
1892ВМ10Я ББссге-ЗОМ 1x16 1x32 1x64 4x32
1892ВМ11Я 2x16 2x32 8x16
4x8 4x16 16x8
Указанные возможности по обработке различных типов данных реализуются при помощи разработанного для DSP-ядер этой серии реконфигурируемого тракта обработки данных. Тракт обработки включает в себя реконфигурируемый регистровый файл, предназначенный для хранения данных, и реконфигурируемые вычислительные устройства.
Характеристики пиковой производительности DSP-ядер серии ELcore-хxTM - количество скалярных операций, выполняемых за один процессорный такт при работе с различными типами данных, приведены в табл.2.
Представленные в табл.1 и 2 данные свидетельствуют о том, что наращивание производительности DSP-ядер может эффективно достигаться как за счет увеличения числа вычислительных SIMD-секций, так и за счет увеличения размерности обрабатываемых векторов. При этом использование векторных вычислителей, реализованных в рамках одного тракта обработки, дает возможность избежать затрат на физическое перемещение данных между секциями.
Таблица 2
Характеристики производительности DSP-ядер серии ELcore-xxTM
DSP-ядро Количество Производительность, операций за такт
SIMD-секций float32 int64 int32 int16 int8
ELcore-14 1 3 - 4 8 18
ELcore-24 2 6 - 8 16 36
ELcore-26 2 6 - 8 16 36
ELcore-28 1 6 1 8 24 48
ELcore-09 1 6 1 8 24 48
ELcore-ЗОМ 1 8 1 8 24 48
Таким образом, опыт применения SIMD-распараллеливания в процессорах обработки сигналов серий 1891ВМхх, 1892ВМхх платформы «Мультикор» показывает, что использование векторных вычислителей позволяет уменьшить по сравнению с классической архитектурой SIMD длину программного кода, а также временные и энергетические затраты на его выполнение.
Литература
1. Столлингс В. Структурная организация и архитектура компьютерных систем. Проектирование и производительность. - 5-е изд. - М., 2002. - 896 с.
2. Flynn M. Very high-speed computing system // Proc. of IEEE. - 1966. - N 54. - P. 1901-1909.
3. Flynn M. Some Computer Organizations and Their Effectiveness // Proc. of IEEE Trans. On Computers. -1972. - Vol. 21. - N 9. - P. 948-960.
4. TigerSHARC®Embedded Processor ADSP-TS203S 2006 Analog Devices, Inc.
5. Intel®64 and IA-32 Architectures Software Developer's Manual. Intel Corporation, 2011.
6. MIPS32® Architecture For Programmers. Volume IV-e: The MIPS® DSP Application-Specific Extension to the MIPS64® Architecture. MIPS Technologies. April 06, 2010.
7. Петричкович Я.Я., Солохина Т.В. Цифровые сигнальные контроллеры «МУЛЬТИКОР» - новые отечественные серии систем на кристалле // Цифровая обработка сигналов и ее применение (DSPA-2004): докл. 6-й Междунар. конф. - М., 2004. - Т. 1. - С. 8-15.
8. http://multicore.ru
Статья поступила после доработки 17 ноября 2011 г.
Беляев Андрей Александрович - кандидат технических наук, начальник лаборатории ОАО НПЦ «ЭЛВИС» (г. Москва). Область научных интересов: микроэлектроника, сигнальные процессоры, многоядерные системы на кристалле, цифровая обработка сигналов, сжатие изображений. E-mail: bel@elvees.com