Скачать презентацию Digital Signal Processor Цифровой сигнальный процессор DSP ЦСП Скачать презентацию Digital Signal Processor Цифровой сигнальный процессор DSP ЦСП

13 DSP.pptx

  • Количество слайдов: 22

Digital Signal Processor Цифровой сигнальный процессор DSP ЦСП Digital Signal Processor Цифровой сигнальный процессор DSP ЦСП

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

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

Общие сведения • За счет применения в DSP специальных средств ускорения алгоритмов ЦОС обеспечивается Общие сведения • За счет применения в DSP специальных средств ускорения алгоритмов ЦОС обеспечивается большая простота программного обеспечения, а значит, снижается себестоимость разработки и убыстряется выход на рынок.

Архитектурные особенности • Адресация по модулю – позволяет создавать кольцевые буферы без необходимости контроля Архитектурные особенности • Адресация по модулю – позволяет создавать кольцевые буферы без необходимости контроля указателей. • Direct Memory Access (DMA). • Гарвардская архитектура. • Специальные инструкции для характерных операций ЦОС, например, Multiply and Accumulate (MAC).

Архитектурные особенности • Блок вычислений с плавающей точкой (Floating-point unit) включен в конвейер. • Архитектурные особенности • Блок вычислений с плавающей точкой (Floating-point unit) включен в конвейер. • Архитектура Pipelined – конвейерная. • Специальные инструкции для создания циклов. • Арифметические операции с ограничением (Saturation arithmetic) для предотвращения переполнения.

Архитектурные особенности • Операции Single Instruction, Multiple Data (SIMD). • Very Long Instruction Word Архитектурные особенности • Операции Single Instruction, Multiple Data (SIMD). • Very Long Instruction Word (VLIW). • Суперскалярная архитектура.

Адресация по модулю • Модульная арифметика – это математическая система, в которой число по Адресация по модулю • Модульная арифметика – это математическая система, в которой число по достижении определенного значения сбрасывается в ноль. • Пример – часы: после 23 часов следует 0 часов. • Второй пример – 8 -битное число: максимальное значение 255, а 255+1 = 0.

Адресация по модулю • Создадим массив Buffer[256]. Его индексы – от 0 до 255. Адресация по модулю • Создадим массив Buffer[256]. Его индексы – от 0 до 255. • Для движения по элементам массива будем просто инкрементировать индекс: 0, 1, 2, …, 254, 255, 0, 1, 2… • Таким образом, нет нужды вводить проверку на выход за пределы массива: if (i >= 256) i = 0;

Адресация по модулю • Однако в обычных процессорах такой фокус пройдет только для определенных Адресация по модулю • Однако в обычных процессорах такой фокус пройдет только для определенных чисел: 255, 16535, 4294967296, 18446744073709551616. • При наличии модульной арифметики можно задать в качестве границы любое число.

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

Конвейерная обработка инструкций • Обычная обработка инструкции занимает четыре такта: Такты → Считать Декодировать Конвейерная обработка инструкций • Обычная обработка инструкции занимает четыре такта: Такты → Считать Декодировать Выполнить Записать результат 1 2 3 4 5 6 7 8 9

Конвейерная обработка инструкций • Вторая инструкция будет выполнена после завершения выполнения первой: Такты → Конвейерная обработка инструкций • Вторая инструкция будет выполнена после завершения выполнения первой: Такты → Считать Декодировать Выполнить Записать результат 1 2 3 4 1 5 6 7 8 2 1 3 2 1 9 2

Конвейерная обработка инструкций • В каждый момент времени загружен только один блок процессора, остальные Конвейерная обработка инструкций • В каждый момент времени загружен только один блок процессора, остальные простаивают: Такты → 1 2 3 4 5 6 7 8 9 Считать 1 ? ? ? 2 ? ? ? 3 Декодировать ? 1 ? ? ? 2 ? ? ? Выполнить ? ? 1 ? ? ? 2 ? ? Записать результат ? ? ? 1 ? ? ? 2 ?

Конвейерная обработка инструкций • Будем выполнять инструкции параллельно: Такты → Считать Декодировать Выполнить Записать Конвейерная обработка инструкций • Будем выполнять инструкции параллельно: Такты → Считать Декодировать Выполнить Записать результат 1 1 2 3 4 5 6 7 8 9

Конвейерная обработка инструкций • Будем выполнять инструкции параллельно: Такты → Считать Декодировать Выполнить Записать Конвейерная обработка инструкций • Будем выполнять инструкции параллельно: Такты → Считать Декодировать Выполнить Записать результат 1 2 1 3 4 5 6 7 8 9

Конвейерная обработка инструкций • Будем выполнять инструкции параллельно: Такты → Считать Декодировать Выполнить Записать Конвейерная обработка инструкций • Будем выполнять инструкции параллельно: Такты → Считать Декодировать Выполнить Записать результат 1 2 3 1 2 1 4 5 6 7 8 9

Конвейерная обработка инструкций • Будем выполнять инструкции параллельно: Такты → Считать Декодировать Выполнить Записать Конвейерная обработка инструкций • Будем выполнять инструкции параллельно: Такты → Считать Декодировать Выполнить Записать результат 1 2 3 4 1 2 3 1 2 1 5 6 7 8 9

 • Так можно добиться четырех инструкций за такт: Такты → Считать Декодировать Выполнить • Так можно добиться четырех инструкций за такт: Такты → Считать Декодировать Выполнить Записать результат 1 2 3 4 5 1 2 3 4 1 2 3 1 2 6 7 8 9

 • Так можно добиться четырех инструкций за такт: Такты → Считать Декодировать Выполнить • Так можно добиться четырех инструкций за такт: Такты → Считать Декодировать Выполнить Записать результат 1 2 3 4 5 6 1 2 3 4 1 2 3 7 8 9

Суперскалярная архитектура • Эта архитектура обеспечивает параллелизм на уровне инструкций. • Из памяти считывается Суперскалярная архитектура • Эта архитектура обеспечивает параллелизм на уровне инструкций. • Из памяти считывается одновременно несколько инструкций (например, две). • Специальные блоки процессора проверяют эти инструкции на наличие связанных данных. • Если мешающих связей нет, инструкции отправляются на выполнение на соответствующие блоки процессора.

Скаляр, суперскаляр, вектор • Скалярная архитектура: считывается одна инструкция. • Суперскалярная архитектура: считывается несколько Скаляр, суперскаляр, вектор • Скалярная архитектура: считывается одна инструкция. • Суперскалярная архитектура: считывается несколько инструкций. • Векторная архитектура: считывается одна инструкция с большим набором данных на обработку.