Диплом, курсовая, контрольная работа
Помощь в написании студенческих работ

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

ДиссертацияПомощь в написанииУзнать стоимостьмоей работы

Использование потоковой модели вычислений, представленной в сопроцессоре МЗ в виде двухуровневой системы команд, позволяет организовать безопасные асинхронные передачи данных во время работы сопроцессора над какой-либо вычислительной задачей. Безопасность передач обеспечивается разделением внутренней памяти на сегменты и блокированию операций, которые могут изменить данные в сегментах, с которыми… Читать ещё >

Содержание

  • Научная новизна диссертации
  • Практическая значимость диссертации
  • Основные положения, выносимые на защиту
  • 1. Архитектура систем и алгоритмы цифровой обработки сигналов
    • 1. 1. Архитектура цифровых сигнальных процессоров
    • 1. 2. Архитектура СнК, предназначенных для цифровой обработки сигналов
    • 1. 3. Архитектура параллельных процессоров
    • 1. 4. Архитектура процессоров с поддержкой явного параллелизма на уровне инструкций (VLIW)
    • 1. 5. Базовые алгоритмы цифровой обработки сигналов
      • 1. 5. 1. Дискретное и быстрое преобразование Фурье
      • 1. 5. 2. Операции над векторами и матрицами
      • 1. 5. 3. Корреляция и КИХ-фильтры
      • 1. 5. 4. БИХ-фильтры
    • 1. 6. Вычисления с плавающей точкой
    • 1. 7. Выводы и постановка задачи
  • 2. Исследование проблем построения параллельных сопроцессоров для ЦОС с использованием многопоточной архитектуры
    • 2. 1. Модель исполнения OpenCL
    • 2. 2. Модель сопроцессора М1 с поддержкой многопоточной модели исполнения
      • 2. 2. 1. Структура и набор инструкций модели сопроцессора М
      • 2. 2. 2. Блок выбора исполняемого варпа и выборки инструкции
      • 2. 2. 3. Блок доступа к разделяемой памяти
      • 2. 2. 4. Производительность модели сопроцессора М1 с использованием различных параметров архитектуры при реализации алгоритмов ЦОС
    • 2. 3. Модель сопроцессора М2 с поддержкой многопоточной модели исполнения и параллелизма на уровне инструкций по принципу УЫ¥
      • 2. 3. 1. Структура модели сопроцессора М
      • 2. 3. 2. Набор инструкций модели М
      • 2. 3. 3. Блок планирования выполнения инструкций и влияние алгоритмов планирования на производительность сопроцессора М
      • 2. 3. 4. Производительность модели сопроцессора М2 с использованием различных параметров архитектуры при реализации алгоритмов ЦОС
    • 2. 4. Выводы
  • 3. Способы повышения эффективности реализации алгоритмов ЦОС на параллельных сопроцессорах
    • 3. 1. Применение конвертируемой адресации памяти
      • 3. 1. 1. Расположение матриц в регистровой памяти модели М
      • 3. 1. 2. Реализация БПФ и свертки для сопроцессора М2 с применением конвертируемой адресации регистров
      • 3. 1. 3. Расположение матриц в векторной памяти с применением скошенной адресации
    • 3. 2. Применение векторов переменной длины
      • 3. 2. 1. Модель исполнения программы при использовании векторов переменной длины
      • 3. 2. 2. Структура планировщика выполнения инструкций, использующих вектора переменной длины
      • 3. 2. 3. Производительность выполнения программ при использовании векторов переменной длины
    • 3. 3. Применение инструкций, работающих с комплексными числами
      • 3. 3. 1. Сокращение объема кода алгоритмов ЦОС и числа обращений к памяти
      • 3. 3. 2. Многофункциональный векторный вычислительный блок с изменяемой структурой конвейера
      • 3. 3. 3. Многофункциональный вычислительный конвейер на основе сумматора с 3 операндами
    • 3. 4. Выводы
  • 4. Разработка высокопроизводительного векторного сопроцессора с поддержкой векторов переменной длины и конвертируемой адресации памяти
    • 4. 1. Сопроцессор МЗ с поддержкой векторов переменной длины и конвертируемой адресации памяти
      • 4. 1. 1. Структура и модель исполнения сопроцессора МЗ
      • 4. 1. 2. Набор инструкций сопроцессора МЗ
    • 4. 2. Реализация алгоритмов ЦОС для сопроцессора МЗ
      • 4. 2. 1. Реализация БПФ по алгоритму двумерного разложения
      • 4. 2. 2. Реализация свертки
      • 4. 2. 3. Реализация умножения матрицы на вектор
      • 4. 2. 4. Реализация параллельной редукции
    • 4. 3. Производительность сопроцессора МЗ с использованием различных параметров архитектуры при реализации алгоритмов ЦОС
    • 4. 4. Результаты синтеза RTL-модели сопроцессора МЗ
    • 4. 5. Сравнение сопроцессоров Ml, М2 и МЗ
    • 4. 6. Выводы

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

Цифровая обработка сигналов (ЦОС) — область науки и техники, занимающаяся анализом, синтезом и преобразованием сигналов, представленных в цифровой форме. Сигналы в цифровой форме состоят из отсчетов, представляющих значение сигнала в определенные моменты времени, т. е. являются дискретизованными по времени. Каждый отсчет представляется в виде числа с ограниченной точностью, т. е. сигналы также являются квантованными по уровню. Чем выше частота дискретизации и количество уровней квантования, тем точнее представляется сигнал, тем меньше в него вносится шума при дискретизации и обработке [1].

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

Оптимизация архитектуры программируемых устройств (процессоров и сопроцессоров) часто приводит к необходимости разрабатывать и оптимизировать алгоритмы для новой архитектуры. Появление в 2006 году графических процессоров с поддержкой вычислений общего назначения (технология NVIDIA CUD, А [4]) привело к реализации разработчиками по всему миру огромного количества высокопроизводительных параллельных алгоритмов для решения самых разных задач, включая ЦОС [5, 6]. Многие сложные алгоритмы цифровой обработки сигналов строятся из обычных, базовых алгоритмов [7]. Такими базовыми алгоритмами являются дискретное и быстрое преобразование Фурье, фильтрация и корреляция сигналов, а также простые векторные и матричные операции. Подходы к параллельной реализации этих алгоритмов в настоящее время достаточно хорошо изучены.

При реализации алгоритмов цифровой обработки сигналов применяется как представление чисел в формате с фиксированной точкой, так и в формате с плавающей точкой. Серийно выпускаются процессоры, поддерживающие как тот, так и другой формат. Выбор формата используемых данных связан с различными факторами, определяемыми приложением, такими как необходимая точность результата, производительность, скорость разработки, стоимость и энергопотребление микросхемы. Реализация алгоритмов ЦОС с использованием формата с плавающей точкой часто значительно проще [8], т.к. в большинстве случаев не приходится дополнительно учитывать изменение масштаба чисел, переполнение или потерю точности: всё это делается вычислительным устройством динамически, обычно в соответствии со стандартом IEEE 754 [9, 10]. При современных технологических нормах на одном кристалле можно разместить тысячи блоков, производящих вычисления с фиксированной или плавающей точкой, но передача данных между разными частями большого чипа за один такт уже невозможна из-за больших задержек распространения сигнала по проводникам, что приводит к рассинхрони-зации приемного и передающего устройств [11]. Поэтому сейчас одна из основных проблем заключается в эффективной передаче данных между устройствами, расположенными на одном чипе — как с точки зрения реализации алгоритмов, так и с точки зрения размещения устройств на кристалле и уменьшения задержек и потерь энергии на проводниках [12]. Для решения этой проблемы применяются различные подходы, такие как применение многоядерных систем, синхронных коммутаторов и сетей на кристалле.

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

Научная новизна диссертации.

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

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

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

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

Практическая значимость диссертации.

1) Разработана RTL-модель векторного сопроцессора для цифровой обработки сигналов, которая может быть использована в качестве сложнофункционального блока при реализации СБИС класса «система на кристалле». Разработанная модель обеспечивает возможность эффективной реализации основных алгоритмов цифровой обработки сигналов (быстрое преобразование Фурье, свертка, умножение вектора на матрицу и др.) с применением чисел формата с плавающей точкой. Функционирование данной модели проверено путем выполнения на ней набора функциональных и алгоритмических тестов с использованием различных симуляторов Verilog HDL.

2) Проведен логический синтез и получена логическая структура сопроцессора с 4 вычислительными конвейерами и 96 КБ внутренней памяти данных, которая при изготовлении СБИС по технологическому процессу с проектной нормой 40 нм занимает на кристалле площадь 1,88 мм² и может работать при тактовой частоте до 1 ГГц. Эффективность работы сопроцессора при реализации алгоритмов цифровой обработки сигналов достигает 98% и при увеличении числа вычислительных конвейеров снижается незначительно, что позволяет при необходимости получить логическую структуру сопроцессоров, имеющих в 2 или в 4 раза большую производительность.

В ЗАО НТЦ «Модуль» проводилась ОКР «Процессор-1-Модуль» по разработке архитектуры СФ-блока NM-кластера на основе матрично-векторных процессорных ядер. В состав процессорного ядра NM-кластера входит программируемый сопроцессор векторной обработки данных в формате с плавающей точкой, в котором использовались результаты разработки модели сопроцессора МЗ. Применение такого сопроцессора в составе NM6407 позволяет организовать выполнение алгоритмов цифровой обработки сигналов в числах стандартного 32-битного формата с плавающей точкой с высокой производительностью — до 20 операций за такт при тактовой частоте в 1 ГГц при реализации по технологическим нормам 40 нм. В частности, данный сопроцессор позволяет выполнять быстрое преобразование Фурье размерностью в 1024 точки за 3130 процессорных тактов, что существенно превосходит существующие процессоры цифровой обработки сигналов. Сопроцессор эффективно реализует и другие функции, такие как КИХ-фильтрация и вычисление фрагментов нейросетей.

Основные положения, выносимые на защиту.

1) Архитектура и структура масштабируемого векторного сопроцессора, предназначенного для применения в составе СБИС класса «система на кристалле» для цифровой обработки сигналов.

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

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

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

4.6. Выводы.

По результатам разработки сопроцессора МЗ сделаны следующие выводы:

1) Сопроцессор МЗ обеспечивает возможность эффективной реализации основных алгоритмов ЦОС (БПФ, свертка, умножение вектора на матрицу и др.) с применением чисел формата «с плавающей точкой». Максимальная производительность рассматриваемых вариантов сопроцессора составляет от 20 до 80 вычислительных операций за такт, а реальная производительность достаточно хорошо масштабируется при увеличении количества вычислительных блоков. При реализации на ASIC по технологическим нормам 40 нм сопроцессор позволяет получить производительность вычисления БПФ от сигнала размерностью в 1024 отсчета на уровне 327 миллионов отсчетов в секунду, что превосходит существующие процессоры цифровой обработки сигналов, такие как ADI TigerSHARC и TI TMS320C674x, в 4.9 и более раз.

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

Заключение

.

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

Частные научные результаты:

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

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

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

4) Предложен способ построения быстродействующего конвейерного арифметического блока, выполняющего составные вычислительные операции в действительных и комплексных числах формата с плавающей точкой, такие как умножение со сложением и вычитанием, путем различного соединения арифметических блоков, выполняющих по отдельности сложение и умножение действительных чисел того же формата. Блок, построенный таким образом, обеспечивает небольшую латентность простых операций (от 1 такта) и быструю смену типа выполняемых операций (более чем в половине случаев переключение операций выполняется без задержки). Также предложен способ построения конвейерного арифметического блока, основанного на использовании ассоциативного сумматора 3 чисел формата с плавающей точкой, который характеризуется большей точностью получаемых результатов, что приводит к уменьшению погрешности вычисления БПФ на 7−14%, но такой блок существенно сложнее в реализации.

Основной практический результат диссертации состоит в разработке и внедрении ЮЪ-модели сопроцессора МЗ, в котором использованы решения, предложенные в диссертации. Такой сопроцессор обеспечивает возможность эффективной реализации основных алгоритмов цифровой обработки сигналов с применением чисел формата с плавающей точкой. В частности, при реализации алгоритма БПФ от 1024 точек производительность сопроцессора с 4 вычислительными конвейерами достигает 97,6% от максимальной, а при вычислении свертки в комплексных числах с размерностью ядра 32 точки — 98,3%. При увеличении числа конвейеров эффективность работы сопроцессора при достаточно больших размерах решаемых задач снижается незначительно.

Проведен логический синтез ЫТЬ-модели сопроцессора МЗ и получена логическая структура сопроцессора с 4 вычислительными конвейерами и 96 КБ внутренней памяти данных, которая при изготовлении СБИС по технологическому процессу с проу ектной нормой 40 нм занимает на кристалле площадь 1,88 мм и может работать при тактовой частоте до 1 ГГц. С учетом вышеуказанных показателей эффективности реализации алгоритмов, данный сопроцессор существенно (более чем в 4 раза) превосходит по производительности существующие серийные ЦСП.

Перечень используемых сокращений.

АЦП — аналого-цифровой преобразователь.

БИХ — бесконечная импульсная характеристика.

БПФ — быстрое преобразование Фурье.

ДПФ — дискретное преобразование Фурье.

КИХ — конечная импульсная характеристика.

САПР — система автоматизированного проектирования.

СБИС — сверхбольшая интегральная схема.

СнК — система на кристалле.

СФ-блок — сложнофункциональный блок.

ЦОС — цифровая обработка сигналов.

ЦСП — цифровой сигнальный процессор

ALU — Arithmetic and Logic Unit.

ASIC — Application-Specific Integrated Circuit.

BRAM — Block Random Access Memory.

CPE — Cycles per Element.

CPU — Central Processing Unit.

CUDA — Compute Unified Device Architecture.

DMA — Direct Memory Access.

FFT — Fast Fourier Transform.

FIR — Finite Impulse Response.

FLOPS — Floating-Point Operations per Second.

FMA — Fused Multiply-Add.

FPGA — Field Programmable Gate Array.

FPU — Floating-Point Unit.

GPU — Graphics Processing Unit.

LSU — Load-Store Unit.

LUT-Look-Up Table.

MAC — Multiply-Accumulate.

MAD — Multiply-Add.

MIMD — Multiple Instructions Multiple Data MMX — Multimedia Extensions N1 — Number of Independent Instructions NL — Number of Lanes RF — Register File.

RISC — Reduced Instruction Set Computer.

RTL — Register Transaction Level.

SIMD — Single Instruction Multiple Data.

SPMD — Single Program Multiple Data.

SRAM — Static Random Access Memory.

UART — Universal Asynchronous Receiver-Transmitter.

VL — Vector Length.

VLIW — Very Long Instruction Word.

Показать весь текст

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

  1. Smith S.W. The Scientist and Engineer’s Guide to Digital Signal Processing // California Technical Publishing, San Diego, Calif, USA — 640 p., 1997.
  2. International Technology Roadmap for Semiconductors, 2011 Edition. URL: http://www.itrs.net/Links/2011TTRS/Home201 l. htm (дата обращения: 14.10.2012).
  3. Asanovic К., Bodik R., Demmel J. et al. A View of the Parallel Computing Landscape // Communications of the ACM, Vol. 52, no. 10, Oct. 2009.
  4. NVIDIA CUD A. URL: http://www.nvidia.com/obiect/cuda homenew. html (дата обращения: 14.10.2012).
  5. Garland M., Le Grand S., Nickolls J. et al. Parallel Computing Experiences with CUDA // IEEE Micro, Vol. 28 no. 4, pp. 13−27, 2008.
  6. А.Ю. Цифровая обработка сигналов на современных графических процессорах // Цифровая обработка сигналов. — 2012. № 3. — С. 65—71.
  7. Constantinides G.A., Cheung P.Y.K., Luk W. Synthesis and Optimization of DSP Algorithms // Kluwer Academic Publishers, USA, 162 p., 2004.
  8. Inacio C., Ombres D. The DSP Decision: Fixed Point or Floating? // IEEE Spectrum, Vol. 33, no. 9, pp. 72−74, September 1996.
  9. IEEE Standard for Binary Floating-Point Arithmetic (IEEE Std. 754−1985) // IEEE Computer Society, 1985.
  10. IEEE Standard for Floating-Point Arithmetic (IEEE Std. 754−2008) // IEEE Computer Society, 2008.
  11. Matzke D. Will Physical Scalability Sabotage Performance Gains? // Computer, Vol. 30, no. 9, pp. 37−39, September 1997.
  12. Ho R. On-Chip Wires: Scaling and Efficiency. Ph.D. dissertation // Dept. of Electrical Engineering, Stanford University, August 2003.
  13. Choosing a DSP Processor // Berkeley Design Technology, Inc., 2000.
  14. Eyre J., Bier J. DSP Processors Hit the Mainstream // Computer, Vol. 31, no. 8, pp. 51−59, August 1998.
  15. Lilja D.J. Reducing the Branch Penalty in Pipelined Processors // Computer, Vol. 21, no. 7, pp. 47−55, July 1988.
  16. Hennessy J.L., Patterson D.A. Computer Architecture: A Quantitative Approach. Fourth edition // Morgan Kaufmann, USA, 2007.
  17. О. Обзор микроархитектур современных десктопных процессоров // iXBT.com, 2006. URL: http://www.ixbt.com/cpu/cpu-microarchitecture-part-l.shtml (дата обращения: 14.10.2012).
  18. Bergamaschi R.A., Lee W.R. Designing Systems-on-Chip Using Cores // Proc. 37th Annual Design Automation Conference, pp. 420−425, 2000.
  19. И. Системы на кристалле. Особенности реализации и перспективы применения // Электронные компоненты № 1, с. 37−39, 2009.
  20. В., Мартин Г. Системы на кристалле. Проектирование и развитие // М.: Техносфера, 2004.
  21. Kuon I., Rose J. Measuring the gap between FPGAs and ASICs // IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, Vol. 62, no. 2, pp. 203 215,2007.
  22. Shang L., Kaviani A.S., Bathala K. Dynamic Power Consumption in Virtex-II FPGA Family // Proc. 10th international symposium on Field-programmable gate arrays, pp. 157−164,2002.
  23. Li F., Chen D., He L., Cong J. Architecture Evaluation for Power-Efficient FPGAs // Proc. 11th international symposium on Field programmable gate arrays, pp. 175−184, 2003.
  24. Sebek F. The state of the art in Cache Memories and Real-Time Systems // Technical Report, Malardalen Unirversity, Sweden, 2001.
  25. Носко M., Kalibera T. Reducing Performance Non-determinism via Cache-aware Page Allocation Strategies // Proc. first joint WOSP/SIPEW international conference on Performance engineering, pp. 223−234, 2010.
  26. Starner J. Controlling Cache Behavior to Improve Predictability in Real-Time Systems // Proc. 10th Euromicro Workshop on real-time systems, 1998.
  27. PrimeCell Single Master DMA Controller (PL081) Technical Reference Manual // ARM, 2001.
  28. Tilera Processor Family. URL: hUp://www.tilera.com/products/processors (дата обращения: 14.10.2012).
  29. Mattson T.G., Van der Wijngaart R., Frumkin M. Programming the Intel 80-core network-on-a-chip Terascale Processor // Proc. 2008 ACM/IEEE Conference on Supercomputing (SC'08), Art. 38,2008.
  30. Evans J.B. An Efficient FIR Filter Architecture // 1993 IEEE International Symposium on Circuits and Systems (ISCAS '93), Vol. 1, pp. 627−630, May 1993.
  31. Lerner B. Computing Module for Efficient FFT and FIR Hardware Accelerator // United States patent application US 2010/36 898 Al, February 2010.
  32. Song-Nien Tang, Jui-Wei Tsai, Tsin-Yuan Chang. A 2.4-GS/s FFT Processor for OFDM-Based WPAN Applications // IEEE Transactions on Circuits and Systems II: Express Briefs, Vol. 57, no. 6,2010
  33. He S., Torkelson M. A New Approach to Pipeline FFT Processor // Proceedings of IPPS '96, The 10th International Parallel Processing Symposium, pp. 766−770, 1996.
  34. Patil В., Patil G. et al. FPGA Based Design of a High Speed 32-Bit Floating Point FFT Processor with Performance Comparison with traditional FFT // International Journal of Computer Applications, Vol. 1, No. 29, 2010.
  35. Altera FFT MegaCore Function User Guide // Altera, 2011.
  36. П.С., Ивасюк E.B., Аряшев С. И. Сопроцессор комплексных вычислений // Проблемы разработки перспективных микро- и наноэлектронных систем -2010. Сборник трудов / под общ. ред. академика РАН A.JI. Стемпковского. М.: ИППМ РАН, 2010. С. 356−359.
  37. Т., Александров Ю. и др. Отечественные трехъядерные сигнальные микроконтроллеры с производительностью 1.5 GFLOPS // Электронные компоненты, № 6 2006. С. 73−78.
  38. Valero М., Lang Т., Ayguade Е. Conflict-free access of vectors with power-of-two strides // 6th international conference on Supercomputing, New York: ACM, 1992.
  39. Shahbahram A., Juurlink В., Vassiliadis S. Efficient Vectorization of the FIR Filter // 16th Annual Workshop on Circuits, Systems and Signal Processing (ProRISC), 2005.
  40. Culler D.E., Singh J.P., Gupta A. Parallel Computer Architecture: a Hardware/Software Approach //Morgan Kaufmann, USA, 1999.
  41. Kapasi U.J., Rixner S., Dally W.J. et al. Programmable Stream Processors // Computer, Vol. 36, no. 8, pp. 54−62, August 2003.
  42. Ciricescu S., Essick R., Lucas B. et al. The Reconfigurable Streaming Vector Processor (RSVP) // Proc. 36th International Symposium on Microarchitecture, 2003.
  43. Wen M., Wu N., Zhang C. et al. FT64: Scientific Computing with Streams // High Performance Computing, 2007.
  44. Stream Processing: Enabling the new generation of easy to use, high-performance DSPs. White paper // Stream Processors, Inc., June 2008.
  45. Smith J.E., Sohi G.S. The Miroarchitecture of Superscalar Processors // Proc. IEEE, Vol. 83, no. 12, pp. 1609−1624, December 1995.
  46. Duncan R. A Survey of Parallel Computer Architectures // Computer, Vol. 23, no. 2, pp. 5−16, Feb. 1990.
  47. Flynn M.J. Very High-Speed Computing Systems // Proc. IEEE, Vol. 54, no. 12, pp. 1901−1909, Dec. 1966.
  48. Intel 64 and IA-32 Architectures Software Developer Manual // Intel Corporation, May 2012.
  49. AltiVec Technology Programming Environments Manual // Freescale, April 2006.
  50. RealView Compilation Tools Version 4.0 Assembler Guide // ARM, 2010.
  51. Darema F., George D.A., Norton V.A., Pfister G.F. A single-program-multiple-data computational model for EPEX/FORTRAN // Parallel Computing, Vol. 7, no. 1, pp. 11−24, April 1988.
  52. Owens J.D., Houston M., Luebke D. et al. GPU Computing // Proc. IEEE, Vol. 96, no. 5, pp. 879−899, May 2008.
  53. Intel Xeon E7−8800/4800/2800 Product Families Datasheet // Intel Corporation, April 2011.
  54. Intel Many Integrated Core (MIC) Architecture. URL: http://www.intel.com /conient/w^wAv/us/enyarchitecture-and-technology/manv-integrated-core/intel-many-integrated-core-architecture.html (дата обращения: 14.10.2012).
  55. SHARC Processor ADSP-21161N // Analog Devices, Inc., 2009.
  56. TigerSHARC Embedded Processor ADSP-TS201S // Analog Devices, Inc., 2006.
  57. ChipWrights CWvX Systems-on-Chip. URL: http://www.chipwrights.com /comp chart. php (дата обращения: 14.10.2012).59. eLite DSP Project. URL: http://researcher.watson.ibm.com/researcher /viewproject.php?id=2899 (дата обращения: 14.10.2012).
  58. Cichon G., Robelly P., Seidel H. et al. SAMIRA: A SIMD-DSP Architecture Targeted to the Matlab Source Language // Proc. Global Signal Processing Expo & Conference (GSPX'04), Santa Clara, USA, July 2004.
  59. Matiis E., Seidel H., Limberg T. et al. A GFLOPS Vector-DSP for Broadband Wireless Applications // IEEE Custom Integrated Circuits Conference (CICC'06), pp. 543−546, 2006.
  60. Kozyrakis C.E., Patterson D.A. Scalable Vector Proecessors for Embedded Systems // IEEE Micro, Vol. 23, no. 6, pp. 36−45, 2003.
  61. Процессор цифровой обработки сигналов NM6406. URL: http://wvw.module.ru/ruproducts/pi'oc/nm6406.shtrnl (дата обращения: 14.10.2012).
  62. В., Виксне П., Фомин Д. Однокристальный цифровой нейропроцес-сор с переменной разрядностью операндов // Приборостроение, 1996.
  63. Kozyrakis С.Е., Patterson D.A. Vector vs. Superscalar and VLIW Architectures for Embedded Multimedia Benchmarks // Proc. 35th International Symposium on Microarchitecture, Istanbul, Turkey, November 2002.
  64. Jones D.L. DFT Definition and Properties // Connexions, 2006.
  65. В.А., Мушкаев С. В. Организация параллельных вычислений в алгоритмах БПФ на процессоре NM6403 // Цифровая обработка сигналов № 1, 2001.
  66. Cooley J.W., Tukey J.W. An Algorithm for the Machine Calculation of Complex Fourier Series // Mathematics of Computation, Vol. 19, no. 90 (Apr., 1965), pp. 297−301.
  67. Jones D.L. Decimation-in-Time (DIT) Radix-2 FFT // Connexions, 2006.
  68. Jones D.L. Decimation-in-Frequency (DIF) Radix-2 FFT // Connexions, 2006.
  69. Takahashi D. A Radix-16 FFT Algorithm Suitable for Multiply-Add Instruction Based on Goedecker Method // Proc. of International Conference on Multimedia and Expo, 2003.
  70. P., Hollmann H. 'Split-Radix' FFT algorithm // Electronics Letters, Vol. 20, no. 1, 1984.
  71. Takahashi D. An extended split-radix FFT algorithm // Signal Processing Letters, IEEE, Vol. 8, no. 5, 2001.
  72. Bergland G.D. A fast fourier transform algorithm for real-valued series // Communications of the ACM, Vol. 11, no. 1, 1968.
  73. Rabiner L.R. On the Use of Symmetry in FFT Computation // IEEE Transactions on Acoustics, Speech and Signal Processing, Vol. 27, no. 3, 1979.
  74. Frigo M., Johnson S.G. The Design and Implementation of FFTW3 // Proc. IEEE, Vol. 93, no. 2, pp. 216−231, 2005.
  75. Gupta S.K.S., Huang C.-H., Sadayappan P., Johnson R.W. Implementing Fast Fourier Transforms on Distributed-Memory Multiprocessors using Data Redistributions // Parallel Processing Letters, Vol. 4, pp. 477188, 1994.
  76. Swarztrauber P.N. Multiprocessor FFTs // Parallel Computing, no. 5, pp. 197−210,1987.
  77. Lerner B. Parallel Implementation of Fixed-Point FFTs on TigerSHARC Processors // Analog Devices Technical Notes, February 2005.
  78. Volkov V., Kazian B. Fitting FFT onto the G80 architecture. URL: httpi/A^^v.cs.berkelev.edu/~kubitron/courses/cs258-S08/proiects/reports /project6 report. pdf (дата обращения: 14.10.2012).
  79. Govindaraju N., Lloyd B. et al. High Performance Discrete Fourier Transforms on Graphics Processors // Proc. ACM/IEEE conference on Supercomputing, 2008.
  80. Ren G., Wu P., Padua D. Optimizing Data Permutations for SIMD Devices // Proc. ACM SIGPLAN conference on Programming language design and implementation, pp. 118 131,2006.
  81. Nguyen H., John L.K. Exploiting SIMD parallelism in DSP and multimedia algorithms using the AltiVec technology // Proc. ICS'99 13th international conference on Supercomputing, pp. 11−20, 1999.
  82. Ruetsch G., Micikevicius P. Optimizing Matrix Transpose in CUDA // NVIDIA, 2009.
  83. Choi G., Dongarra J.J., Walker D.W. Parallel Matrix Transpose Algorithms on Distributed Memory Concurrent Computers // Proc. Scalable Parallel Libraries Conference, pp. 245−252, 1993.
  84. В., Ни X. Linear-time Matrix Transpose Algorithms Using Vector Register File With Diagonal Registers // Proc. 15th International Parallel and Distributed Processing Symposium, 2001.
  85. Hassanieh H., Indyk P., Katabi D., Price E. Simple and Practical Algorithm for Sparse Fourier Transform // Proc. 23rd Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 1183−1194, 2012.
  86. Kunis S., Melzer I. A Stable and Accurate Butterfly Sparse Fourier Transform // SIAM Journal on Numerical Analysis, Vol. 50, no. 3, pp. 1777−1880, 2012.
  87. Ying L. Sparse Fourier Transform via Butterfly Algorithm // arXiv.org, 2008. URL: http://arxiv.org/abs/0801.1524 (дата обращения: 14.10.2012).
  88. Demanet L., Ferrara M., Maxwell N. et al. A Butterfly Algorithm for Synthetic Aperture Radar Imaging // SIAM Journal on Imaging Sciences, Vol. 5, no. 1, pp. 203−243, 2012.
  89. Lawson C.L., Hanson R.J., Kincaid D.R., Krogh F.T. Basic Linear Algebra Subprograms for Fortran Usage // ACM Transactions on Mathematical Software, Vol. 5, no. 3, pp. 308−323, 1979.
  90. Библиотека BLAS. URL: http://www.netlib.org/blas/ (дата обращения: 14.10.2012).
  91. Harris M. Optimizing Parallel Reduction in CUDA //NVIDIA, 2007.
  92. Chevtchenko P.A., Fomine D.V., Tchernikov V.M., Vixne P.E. Using of Microprocessor NM6403 for Neural Net Emulation // SPIE Proceedings, Vol. 3728, 1999.
  93. Sorensen H. Auto-Tuning Dense Vector and Matrix-Vector Operations for Fermi GPUs // Technical University of Denmark, 2012.
  94. Volkov V., Demmel J. Benchmarking GPUs to Tune Dense Linear Algebra // International Conference for High Performance Computing, Networking, Storage and Analysis, 2008.
  95. P. Цифровая обработка сигналов: Второе издание. Пер. с англ. // М.: ООО «Бином-Пресс», 2007.
  96. TigerSHARC Processor Benchmarks. URL: http://wwv.analog.com/en /processors-DSP/TigerSHARC/processors/TigerSHARCbenchmarks/fca.html (дата обращения: 14.10.2012).
  97. TMS320C674x Low Power DSP Benchmarks. URL: http://www.ti.com/dsp /docs/dspcontent.tsp'?contentId=55 649 (дата обращения: 14.10.2012).
  98. Stockham Т. G. High-Speed Convolution and Correlation // Proc. AFIPS '66 (Spring), 1966, pp. 229−233.
  99. Burrus C.S. Fast Fourier Transforms // Connexions, 2008.
  100. Podlozhnyuk V. Image Convolution with CUDA // NVIDIA, 2007.
  101. Podlozhnyuk V. FFT-based 2D Convolution // NVIDIA, 2007.
  102. Anwar S., Sung W. Digital Signal Processing Filtering with GPU // The Institute of Electronics Engineers of Korea, 2009.
  103. Oppenheim A.V. Realization of Digital Filters Using Block-Floating-Point Arithmetic // IEEE Transactions on Audio and Electroacoustics, Vol. 18, no. 2, pp. 130−136, Jun 1970.
  104. Berkeley Design Technology, Inc. DSP Dictionary. URL: http://www.bdti.com/resources/dspdictionary (дата обращения: 14.10.2012).
  105. Whitehead N., Fit-Florea A. Precision and Performance: Floating Point and IEEE 754 Compliance for NVIDIA GPUs.
  106. Lang Т., Bruguera J.D. Floating-Point Multiply-Add-Fused with Reduced Latency // IEEE Transactions on Computers, Vol. 53, no. 8, pp. 988−1003, August 2004.
  107. Сох R.G., Yeager M.W., Flake L.L. Single Chip Complex Floating Point Numeric Processor//United States Patent 4,996,661, February 1991.
  108. OpenCL 1.2 Specification. URL: hitp://www.khronos.om/re^istry/cl/specs /opencl-1.2.pdf (дата обращения: 14.10.2012).
  109. Coon B.W., Lindholm J.E. System and Method for Managing Divergent Threads using Synchronization Tokens and Program Instructions That Include Set-Synchronization Bits //United States Patent no. 7,543,136 Bl, June 2009.
  110. Bouknight W.J., Denenberg S.A., Mclntyre D.E. et al. The Illiac IV System // Proceedings of the IEEE, Vol. 60, No. 4, April 1972, pp. 369−388.
  111. Tenca A.F. Multi-operand Floating-point Addition // 19th IEEE International Symposium on Computer Arithmetic, 2009.
  112. Библиотека CUFFT. URL: http://developer.nvidia.com/cufft (дата обращения: 17.11.2012).
  113. А.Ю., Литвинов Е. И. Верификация и тестирование сложнофунк-циональных СБИС. Часть 1 // Электронные компоненты. 2012. — № 7. — С. 20−24.
  114. А.Ю., Литвинов Е. И. Верификация и тестирование сложнофунк-циональных СБИС. Часть 2 // Электронные компоненты. 2012. — № 8. — С. 101−105.
Заполнить форму текущей работой