Применение реконфигурируемых вычислений в аудио и видео обработке. Реконфигурируемые процессоры: настоящее и будущее



МИНИСТРЕСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

 

 

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«XXXXXXXXXXXXXXXXXXXXXXXXXXXX»

 

 

 

 

 

Кафедра XXX

 

 

 

Реферат по курсу «Системы обработки аудио/речевых сигналов»

На тему:

«Применение реконфигурируемых вычислений в аудио и видео обработке. Реконфигурируемые процессоры: настоящее и будущее»

 

 

 

 

 

 

 

 

 

 

Выполнил:

Проверил:

 

 

 

 

 

 

Минск 2010

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1 Реконфигурируемые вычисления

1.1 Классификация реконфигурируемых устройств

1.1.1 Полевая настройка

1.1.2 Медленные системы адаптации

1.1.3 Быстрая адаптация

1.2 Типы аппаратных исполнений реконфигурируемых блоков

1.2.1 Тип FPGA +

1.2.2 Реконфигурируемая система на P-ASSP

1.2.3 Параллельный массив процессоров

1.3 FPFA устройство

2 Архитектура ACM фирмы QuickSilver

3 Реконфигурируемый процессор фирмы Elixent

4 Сводная таблица для рассмотренных вариантов реконфигурируемых устройств

ЗАКЛЮЧЕНИЕ

Список используемой литературы

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

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

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

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

С такими проблемами сталкиваются разработчики в области мультимедиа, связи, графики и шифрования.

Реконфигурируемые вычисления предлагают параллельно/пространственную модель вычислений. Архитектура, реализующая модель реконфигурируемых вычислений, позволяет сохранять часть кода (или весь код) в специальной реконфигурируемой среде, объединяющей в себе множество процессорных элементов и коммутационную среду. Т.е. на время выполнения сохраненной части кода пользователь получает спецвычислитель, реализующий заданный алгоритм. Такая модель вычислений позволяет: использовать параллелизм выполняемого алгоритма; организовывать конвейерные схемы вычислений.

Программы для реконфигурируемых систем являются, по сути, потоковыми схемами. Они позволяют одновременно в реальном времени обрабатывать множество независимых (или зависимых) потоков данных.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 Реконфигурируемые вычисления

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

Первоначально перспективной элементной базой для реконфигурируемых вычислителей считалось FPGA. По этому пути следовали такие фирмы как Xilinx, Elixent и Altera. Однако, несмотря на прорыв в достижении высоких тактовых частот и уменьшении стоимости, база FPGA не оправдала надежд на высокую скорость конфигурирования. Также недостатком данной базы являлась и по сей день является избыточность вычислительных ресурсов.

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

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

1.1 Классификация реконфигурируемых устройств

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

По способам реконфигурации существует ряд основных подходов, влияющих на реализацию реконфигурируемых устройств [1]:

                полевая настройка;

                медленные системы адаптации;

                быстрая адаптация.

 

1.1.1 Полевая настройка

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

1.1.2 Медленные системы адаптации

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

1.1.3 Быстрая адаптация

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

1.2 Типы аппаратных исполнений реконфигурируемых блоков

Аппаратное исполнение реконфигурируемых блоков можно условно разделить на 3 типа:

                FPGA +

                Реконфигурируемая система, основанная на «Программируемом Прикладном Стандартном Изделии» (P-ASSP)

                Параллельный массив процессоров

Ниже приводится детальное описание аппаратного исполнения реконфигурируемых блоков.

1.2.1 Тип FPGA +

В данном случае, устройство должно содержать большое количество блоков высокой сложности или более высокого уровня [1]. Поставщиком реконфигурируемых устройств на FPGA с различными функциональными блоками или архитектурой может быть фирма Hameleon. Фирма Elixent, другая компания в области реконфигурируемых устройств, увеличила свой конфигурируемый блок добавлением 4-х битового арифметического логического устройства (ALU) и заменой 4-входной таблицы соответствия (look up table, LUT) на триггер. Поддержка функциональных возможностей более высокого уровня и многосторонности FPGA придают гибкость этим устройствам. Что в свою очередь, позволяет разработчикам использовать их в собственных IP-блоках.

FPGA позволяют проектировать реконфигурируемые приложения для DSP, которые обладают большей производительностью и мощностью обработки данных, чем у DSP процессоров [2]. При реализации DSP в аппаратных средствах FPGA можно настроить архитектуру, структуру шин данных, память, аппаратные блоки акселератора и переменное число блоков умножения/накопления (Multiply And Accumulate, MAC).

Несмотря на все эти преимущества, у FPGA существует один недостаток – отсутствие возможности программирования проекта на языке программировании C, при котором не требуется знаний ни FPGA архитектуры, ни аппаратного языка описания (HDL). Однако фирма Altera предоставила новые инструментальные средства проектирования и аппаратные решения, которые облегчат проблему проектирования на FPGA, в том числе и программирование проекта на языке C [3].

FPGA устройства состоят из логических элементов и памяти, которая может быть конфигурируема для работы в различных режимах, соответствующих различным функциональным возможностям. Такая аппаратная гибкость позволяет разработчикам описывать любой проект, ни смотря на его аппаратную сложность, на любом языке описания (VHDL или Verilog HDL).

С введением фирмой Altera высокоплотного FPGA, законченный проекты можно создавать на системе FPGA, получая систему на программируемом чипе (SOPC). Так же производители FPGA устройств предпочитают встраивать такие блоки как кодирующие устройства, декодеры, компенсаторы и блоки обработки функций фильтров конечной импульсной характеристики (finite impulse response, FIR), быстрого Фурье преобразования (FFT) и арифметические функции.

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

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

Устройства FPGA обеспечивают реконфигурируемое решение для различных приложений DSP. Они содержат разнообразные внедренные особенности типа внедренных блоков, DSP блоков и блоков памяти. Эти особенности обеспечивают высокую производительность DSP процессоров в FPGA. Используя FPGA, проектировщики могут настраивать аппаратные средства DSP для оптимального выполнения приложений.

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

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

1.2.2 Реконфигурируемая система на P-ASSP

Такая система обычно состоит из общего ядра с добавленными к ним оптимизированными сопроцессорами или дополнительными ядрами. Примером такой структуры может являться процессор фирмы Morphics [1]. В процессоре этой фирмы ядра оптимизированы для поддержания классов операций найденных в алгоритмах.

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

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

1.2.3 Параллельный массив процессоров

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

В такой структуре задачи очень легко отображаются на центральные процессоры. Очень привлекательным в этом подходе является то, что такая структура поддерживает параллелизм, свойственный DSP алгоритмам [1].

Фирма PACT дополнила массив 32-х битных процессоров с плавающей точкой RISC ядрами и собственным подходом программирования. Структура фирмы QuickSilver основана на связанном массиве конфигурируемых процессоров. Конфигурируемые массивы функциональных модулей QuickSilver описывает как «рекурсивную архитектуру». Устройство фирмы picoChip содержит гетерогенный массив программируемых 16-ти битных функциональных элементов, с детерминированной быстродействующей матрицей переключения. Каждый элемент имеет свои собственные арифметические модули и индивидуально запрограммирован в структуре всего устройства.

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

 

 

 

 

Рис. 1. Обобщенная структура для конфигурируемого вычисления

Определив основные структуры реконфигурируемых блоков, рассмотрим более подробную их реализацию на примерах.

1.3 FPFA устройство

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

FPFA был предложен в качестве реконфигурируемой части устройства для гетерогенной системы-на-кристалле (SoC). Помимо реконфигурируемого FPFA, такая SoC также содержит:

                встроенный сопроцессор;

                встроенные подсистемы ввода – вывода;

                встроенный FPGA [4].

 

 

Рис. 2. Архитектура не перекрывающего расположения процессора

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

Многократные процессы могут сосуществовать параллельно на различных не перекрывающих расположениях. В пределах не перекрывающего расположения многократные потоки данных могут быть обработаны параллельно. Каждое, не перекрывающее расположение процессора, содержит многократные реконфигурируемые части обработки, которые совместно используют блок управления. Архитектура отдельного не перекрывающего расположения изображена на рис. 2.

FPFA может легко приспосабливаться к модификациям его программного обеспечения. Также, нет никакой потребности в его перепроектировании, чтобы использовать все преимущества от следующего поколения CMOS процессов. FPFA может выполнять DSP задачи с минимальными затратами мощности.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 Архитектура ACM фирмы QuickSilver

Архитектура ACM, разработанная фирмой QuickSilver, позволяет довольно быстро приспособить любую часть устройства – от нескольких маленьких частей до полного чипа – под определенную задачу. Она позволяет преобразовывать динамически программируемые алгоритмы в динамические аппаратные ресурсы, что ведет к наиболее эффективному использованию аппаратных средств, уменьшению стоимости, размера, потребления мощности и увеличению быстродействия. Благодаря архитектуре ACM может значительно уменьшиться или совсем исчезнуть потребность в заказных ASIC структурах для стандартной быстродействующей SoC [5].

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

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

 

 

 

 

 

 

 

 

Рис. 3. Узловая архитектура [5]

В итоге была разработана гетерогенная архитектура на основе узла, она представлена на рис. 3:

В архитектуре рассмотрено 5 типов узлов:

                арифметический;

                разрядной манипуляции;

                автомат конечных состояний (FSM);

                скалярный;

                конфигурируемый ввод – вывод, который имел обыкновение соединяться с внешним миром (не показан на рис. 3).

Каждый узел состоит из множества вычислительных модулей и собственной внутренней памяти (приблизительно 75% узла находятся в форме памяти). Дополнительно, каждый узел включает в себя некоторую память конфигурации. В отличие от FPGA с их последовательным разрядным потоком конфигурации, ACM имеет шину данных на 256 битов или на 128 битов.

Важно понять, что каждый узел исполняет задачи на уровне законченных алгоритмических элементов. Например, один арифметический узел может использоваться, чтобы осуществить различные линейные арифметические функции типа FIR фильтра, дискретные преобразования (DCT), FFT, и т.д. Такой узел может также использоваться, чтобы осуществить нелинейные арифметические функции типа (1/sine A) x (1/x).

Точно так же узел манипуляции может использоваться, чтобы осуществить различные функции разрядной манипуляции, типа сдвига обратной связи линейного регистра (LRSR), последовательного генератора кода Уолша, генератора кода Голда, TCP/IP различителя пакета, и т.д.

Конечный узел FSM, может использоваться, чтобы осуществить любой класс FSM. Не менее важный, скалярный узел может использоваться, чтобы выполнить код наследства, в то время как конфигурируемый узел ввода–вывода (не показанный на рисунке 3) может использоваться, чтобы осуществить ввод–вывод в форме UART или интерфейсов шин типа PCI, USB, или Firewire.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 Реконфигурируемый процессор фирмы Elixent

Суть реконфигурируемого алгоритма процессора (RAP) заключается в том, что он помогает разработчикам концентрировать внимание на развитии прикладного уровня IP вместо перепроектирования готовых блоков и их тестирования. Все это помогает эффективно проектировать устройства на базе ASIC.


Реконфигурируемый блок позволяет изменять свою структуру

Рис. 4. Реконфигурируемый процессор фирмы Elixent

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

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

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

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

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

Вопрос создания устройства с лучшей спецификацией решается путем создания дополнительных ячеек RAP в начале разработки проекта.

Пример такого обновления – арифметические ячейки, которые позволят устройству модернизировать сжатие изображения от JPEG до JPEG 2000.

Преимущества RAP:

                Непрерывная реконфигурация для минимизации избыточности

                Возможность обработки итерационных операций

                Параллелизм обеспечивает высокую пропускную способность для обработки итерационных операций

                Уменьшение избыточности ИС

                Уменьшение стоимости проекта

                Формирование итогового технического задания после проектирования

                Обнаружение ошибок без проектирования

                Быстрая адаптация к изменяющимся спецификациям

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

Один реконфигурируемый блок может заменять три и более различных модуля. Он так же может обрабатывать разнообразные стандарты программного обеспечения. 

Таким образом, RAP – новая аппаратная архитектура, обеспечивающая радикальную альтернативу проектам для различных приложений. Это обеспечивает массив ALU и буферные блоки, которые располагаются каскадом для удовлетворения различной длины данных.


ALU располагаются в стиле шахматной доски чередуясь со смежными блоками переключения. Дальнейшие 256 – байтовые блоки памяти могут

Рис. 5. Архитектура ALU и блоков переключения

быть расположены как угодно (рис. 5). Такая схема облегчает связь между блоками, наличие шин ввода/вывода на всех четырех сторонах ALU позволяет получать и передавать данные от любого окружения ALU. Это позволяет уменьшить площадь кристалла для программирования.

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 Сводная таблица для рассмотренных вариантов реконфигурируемых устройств

Мною были рассмотрены возможные варианты реализации реконфигурируемых устройств.

Составим сводную таблицу для рассмотренных вариантов реконфигурируемых устройств (Табл. 1). В Таблице 1 представлены параметры, позволяющие дать качественные сравнительные характеристики для различных реализаций реконфигурируемых DSP. Быстродействие часто является наиболее критическим системным требованием, так как DSP устройства часто имеют ограничения по времени. В прошлых двух десятилетиях, более существенной была стоимость, поскольку DSP мигрировал от военных и научных приложений в многочисленные приложения потребителя. За прошлые десять лет, потребление мощности стало важным параметром, поскольку DSP методы широко начали применяться в портативных системах с батарейным питанием типа телефонов и портативных ЭВМ [8]. Каждая опция представляет различные значения для быстродействия, стоимости, мощности и гибкости.

Применение реконфигурируемых вычислений в аудио и видео обработке. Реконфигурируемые процессоры: настоящее и будущее