Что может сделать dsPIC, чего не может сделать простой микроконтроллер PIC?

10

Я еще не использовал чип DSP. Все, что я знаю, это то, что их архитектура такова, что они могут выполнять вычисления довольно быстро, обычно в пределах тактового цикла, у них в наборе команд есть команды с множественным накоплением, и у них есть DMA, поэтому ЦПУ не нужно тратить драгоценное время на перемещение данных. около. Я думаю, что это еще не все, но это несколько основных моментов.

Я вижу, что у Microchip есть dsPIC, который является их чиповой линейкой DSP. Разве мы не можем просто использовать PIC18 или PIC32, которые также имеют встроенные множители, для выполнения DSP? Чем dsPIC отличается от обычного PIC?

Мой главный вопрос заключается в следующем: почему нам нужно иметь что-то отдельное и отличное, называемое DSP-чипом, а не интегрировать высокоточные вычисления с плавающей запятой во все микроконтроллеры? Конечно, с технологиями процесса, которые мы имеем сейчас, это не должно занимать много места.

Кроме того, как я знаю, что мне нужно использовать чип DSP в моем проекте, а не обычный микроконтроллер>

quantum231
источник
1
Здесь можно найти хорошие ответы на аналогичный вопрос: electronics.stackexchange.com/questions/3067/…
Дэвид

Ответы:

3

Обычно «DSP ...» означает «более релевантная мощность и / или более подходящее оборудование на момент выпуска продукта» .
Генерализованные процессоры имеют тенденцию догонять старые специализированные устройства.
DSPIC старше 10 лет, - будет знать Олин.

[Пункты в скобках относятся к некоторым примерам DSPIC - не являются исчерпывающими].

В продуктах DSP ожидают некоторого сочетания: ожидайте таких
вещей, как переключатели бочек,
широкие быстрые конвейеры и быстрое время выполнения одного цикла,
широкие инструкции одиночного цикла,
DMA [6 или 8 каналов, двухпортовые буферы ОЗУ] большие линейные диапазоны адресации памяти [программа 4 Mword , Данные 64 кБ] специализированные арифметически ориентированные функции
Может быть:
специализированные периферийные устройства, такие как управление двигателем,
аппаратное обеспечение для нескольких различных стандартов com [CAN, IIC, UART, IIS, AC97, ...] глубже, чем обычные буферы coms [4 байта] быстрее и / или шире, чем обычные АЦП [2 Msps, 10 или 12 бит]

Вы найдете большинство из них в семействе DSPIC - и все чаще в семействах процессоров gp.
В крайних случаях вы получаете пользовательское микрокодирование и многое другое.

Рассел МакМахон
источник
1
Если я правильно помню, я впервые услышал о разработке dsPIC в 1999 году, первые образцы были выпущены в начале 2002 года с серийными деталями в конце 2002 или начале 2003 года. У меня все еще где-то есть 30F2010 с ручной оплеткой в ​​28-контактном керамическом DIP-корпусе, который был случайно помечен как 30F6010. Он работал только на 1/3 возможной полной скорости и был помечен рукой как № 55 или что-то в этом роде.
Олин Латроп
1
Они также могут работать на частоте до 200 или 260 МГц, в то время как линия PIC поддерживает только до 4-20 МГц. Быть в 10 и более раз быстрее, безусловно, стоит учитывать.
Havenard
1
@Havenard - отмечая, что это вопрос-ответ 2014 года: он упомянул PIC32 в качестве возможной альтернативы DSPIC. PIC32MX 2007 года имеет Cmax (максимальная тактовая частота) 80 МГц. PIC32MZ 2013 года имеет Cmax 252 МГц. || Полезное, хотя и неполное сравнение здесь {Wikipedia}.
Рассел МакМахон
11

Некоторые из преимуществ dsPIC перед PIC более ранней архитектуры, например семейства PIC 16 и 18:

  1. 16-битные тракты данных и ALU, в отличие от 8.

  2. Возможность напрямую адресовать (более поздние версии обеих архитектур расширяли это различными хитрыми способами) больше памяти данных. Базовый PIC 16 может адресовать 128 байтов напрямую, 512 - с банковскими операциями. Более новые PIC 16F1xxx расширили банковские операции, чтобы разрешить адресацию большего объема памяти данных. Архитектура PIC 18 ограничена 4k байтами. Архитектура dsPIC может адресовать 64 Кбайт или 32 Кбайт 16-разрядных слов напрямую, хотя по разным причинам только половина этого объема доступна для ОЗУ в базовой архитектуре. Банковская схема в некоторых более поздних моделях расширила это.

  3. Быстрее. Оригинальный 30F мог работать с 30 MIP, с 40 MIP частями теперь нормой. Новая серия E может работать до 70 MIP, хотя есть больше причин, по которым она может что-то ожидать, чем более ранние более медленные модели. Они все еще значительно быстрее в среднем.

  4. Возможность DSP. Механизм DSP имеет два 40-битных аккумулятора и обычное аппаратное обеспечение для выполнения последовательности операций MAC над массивами по одному MAC за цикл команд (см. Ответ Дейва Твида). MAC и связанные инструкции перекрывают индексирование массива и завершение цикла с фактическим многократным накоплением.

  5. 15 программно-используемых 16-разрядных «рабочих регистров» вместо одного 8-разрядного регистра W 8-разрядных архитектур PIC.

  6. Ствол переключения.

  7. Один цикл 16x16 -> 32-битное умножение.

  8. Аппаратное деление. Операция 32 деления 16 -> 16 бит занимает 18 циклов.

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

  10. В целом более регулярный и симметричный набор команд.

  11. Векторные прерывания. PIC 16 имеет один вектор прерывания, а PIC 18 имеет два. В 16-битных частях (PIC 24, dsPIC 30 и 33) каждый источник прерываний имеет свой собственный вектор. Это уменьшает задержку в процедуре прерывания, потому что она не должна тратить циклы, выясняя, какое прерывание обслуживать.

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

  12. Различные другие преимущества, которые выпадают из более широкой архитектуры.

Олин Латроп
источник
8

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

Одной из самых основных операций во многих ключевых алгоритмах DSP является операция MAC (умножение с накоплением), которая является фундаментальным шагом, используемым в матричных точечных и перекрестных произведениях, фильтрах FIR и IIR, а также FFT. DSP обычно имеет организацию регистра и / или памяти и тракт данных, который позволяет ему выполнять как минимум 64 операции MAC с уникальными парами данных в строке без потери времени на издержки цикла или перемещения данных. ЦП общего назначения обычно не имеют достаточно регистров, чтобы выполнить это без использования дополнительных инструкций для перемещения данных между регистрами и памятью.

Дэйв Твид
источник
1
+1 за акцент на операциях MAC. Это, без сомнения, ядро ​​большинства операций DSP.
Мэтт Янг