Введение
1. Архитектура систем и алгоритмы цифровой обработки сигналов 11
1.1. Архитектура цифровых сигнальных процессоров 11
1.2. Архитектура СнК, предназначенных для цифровой обработки сигналов 13
1.3. Архитектура параллельных процессоров 16
1.4. Архитектура процессоров с поддержкой явного параллелизма на уровне инструкций (VLIW) 19
1.5. Базовые алгоритмы цифровой обработки сигналов 21
1.5.1. Дискретное и быстрое преобразование Фурье 21
1.5.2. Операции над векторами и матрицами 27
1.5.3. Корреляция и КИХ-фильтры 28
1.5.4. БИХ-фильтры
1.6. Вычисления с плавающей точкой 32
1.7. Выводы и постановка задачи 34
2. Исследование проблем построения параллельных сопроцессоров для ЦОС с использованием многопоточной архитектуры 37
2.1. Модель исполнения OpenCL 37
2.2. Модель сопроцессора Ml с поддержкой многопоточной модели исполнения
2.2.1. Структура и набор инструкций модели сопроцессора Ml 41
2.2.2. Блок выбора исполняемого варпа и выборки инструкции 44
2.2.3. Блок доступа к разделяемой памяти з
2.2.4. Производительность модели сопроцессора Ml с использованием различных параметров архитектуры при реализации алгоритмов ЦОС 51
2.3. Модель сопроцессора М2 с поддержкой многопоточной модели
исполнения и параллелизма на уровне инструкций по принципу VLIW 55
2.3.1. Структура модели сопроцессора М2 55
2.3.2. Набор инструкций модели М2 57
2.3.3. Блок планирования выполнения инструкций и влияние алгоритмов планирования на производительность сопроцессора М2 61
2.3.4. Производительность модели сопроцессора М2 с использованием различных параметров архитектуры при реализации алгоритмов ЦОС 67
2.4. Выводы 70
3. Способы повышения эффективности реализации алгоритмов ЦОС на параллельных сопроцессорах 73
3.1. Применение конвертируемой адресации памяти 73
3.1.1. Расположение матриц в регистровой памяти модели М2 74
3.1.2. Реализация БПФ и свертки для сопроцессора М2 с применением конвертируемой адресации регистров 76
3.1.3. Расположение матриц в векторной памяти с применением скошенной адресации 78
3.2. Применение векторов переменной длины 81
3.2.1. Модель исполнения программы при использовании векторов переменной длины 82
3.2.2. Структура планировщика выполнения инструкций, использующих вектора переменной длины 83
3.2.3. Производительность выполнения программ при использовании векторов переменной длины 88
3.3. Применение инструкций, работающих с комплексными числами 90
3.3.1. Сокращение объема кода алгоритмов ЦОС и числа обращений к памяти 91
3.3.2. Многофункциональный векторный вычислительный блок с изменяемой структурой конвейера 93
3.3.3. Многофункциональный вычислительный конвейер на основе сумматора с 3 операндами 97
3.4. Выводы 102
4. Разработка высокопроизводительного векторного сопроцессора с поддержкой векторов переменной длины и конвертируемой адресации памяти... 105
4.1. Сопроцессор МЗ с поддержкой векторов переменной длины и конвертируемой адресации памяти 105
4.1.1. Структура и модель исполнения сопроцессора МЗ 106
4.1.2. Набор инструкций сопроцессора МЗ 111
4.2. Реализация алгоритмов ЦОС для сопроцессора МЗ 114
4.2.1. Реализация БПФ по алгоритму двумерного разложения 114
4.2.2. Реализация свертки 116
4.2.3. Реализация умножения матрицы на вектор 118
4.2.4. Реализация параллельной редукции
4.3. Производительность сопроцессора МЗ с использованием различных параметров архитектуры при реализации алгоритмов ЦОС 124
4.4. Результаты синтеза RTL-модели сопроцессора МЗ 129
4.5. Сравнение сопроцессоров Ml, М2 и МЗ 132
4.6. Выводы 135
Заключение 136
Перечень используемых сокращений 139
Литература


