¿Qué puede hacer el dsPIC que el humilde microcontrolador PIC no puede hacer?

10

Todavía no he usado un chip DSP. Todo lo que sé es que su arquitectura es tal que pueden realizar cálculos bastante rápido, generalmente dentro de un ciclo de reloj, tienen instrucciones de acumulación múltiple en su conjunto de instrucciones y tienen DMA para que la CPU no tenga que perder un tiempo precioso moviendo datos alrededor. Creo que hay más, pero estos son algunos puntos básicos.

Puedo ver que Microchip tiene dsPIC, que es su línea de chips DSP. ¿No podemos usar un PIC18 o PIC32 que también ha incorporado multiplicadores para hacer DSP también? ¿En qué se diferencia el dsPIC del PIC normal?

Mi pregunta principal es esta: ¿Por qué necesitamos tener algo separado y distinto llamado chip DSP y no integrar la capacidad de cálculo de unidades de punto flotante de alta precisión en todos los microcontroladores? Seguramente con las tecnologías de proceso que tenemos ahora, esto no debería ocupar mucho espacio.

Además, ¿cómo sé que necesito usar un chip DSP en mi proyecto en lugar de un microcontrolador normal>

quantum231
fuente
1
Hay buenas respuestas a la pregunta similar aquí: electronics.stackexchange.com/questions/3067/…
David

Respuestas:

3

En general, "DSP ..." significa "potencia más relevante y / o hardware más relevante en el momento en que se introdujo el producto ".
Los procesadores generalizados tienden a ponerse al día con los dispositivos especializados más antiguos.
DSPIC tiene p [probablemente más de 10 años, Olin lo sabrá.

[Los elementos entre paréntesis se relacionan con algunos ejemplos DSPIC, no exhaustivos].

En DSP, los productos esperan una combinación de:
Espere cosas como desplazadores de barril,
tuberías rápidas anchas y tiempos de ejecución rápidos de ciclo
único, instrucciones anchas de ciclo único,
DMA [6 u 8 canales, memorias intermedias de RAM de doble puerto] grandes rangos de direccionamiento de memoria lineal [programa 4 Mword , Datos de 64 kB] características especializadas orientadas a la aritmética
Tal vez:
periféricos especializados como control de motores,
hardware para varios estándares de comunicaciones diferentes [CAN, IIC, UART, IIS, AC97, ...] más profundos que los buffers de comunicaciones más habituales [4 bytes] más rápido y / o ADC más anchos de lo habitual [2 Msps, 10 o 12 bit]

Encontrará la mayoría de estos en la familia DSPIC, y cada vez más en las familias de procesadores gp.
En casos extremos, obtiene microcodificación de usuario y más.

Russell McMahon
fuente
1
Si recuerdo bien, escuché por primera vez sobre el esfuerzo de diseño de dsPIC en 1999, las primeras muestras se entregaron a principios de 2002 con piezas de producción a fines de 2002 o principios de 2003. Todavía tengo un 30F2010 con latón a mano en un paquete DIP de cerámica de 28 clavijas fue etiquetado accidentalmente como un 30F6010. Solo corrió a 1/3 de la velocidad máxima eventual, y fue marcado a mano como # 55 o algo así.
Olin Lathrop
1
También se pueden sincronizar hasta 200 o 260MHz, mientras que la línea PIC solo admite hasta 4 a 20MHz. Ser más de 10 veces más rápido es definitivamente un punto a considerar.
Havenard
1
@Havenard - Observando que esta es una sesión de preguntas y respuestas de 2014: mencionó PIC32 como una posible alternativa al DSPIC. El 2007 PIC32MX tiene una Cmax (frecuencia de reloj máxima) de 80 MHz. El PIC32MZ 2013 tiene una Cmax de 252 MHz. || Útil, aunque la comparación incompleta aquí {Wikipedia}.
Russell McMahon
11

Algunas de las ventajas de un dsPIC sobre los PIC de arquitectura anterior, como las familias PIC 16 y 18:

  1. Rutas de datos de 16 bits de ancho y ALU, como se adjunta a 8

  2. Posibilidad de direccionar directamente (versiones posteriores de ambas arquitecturas ampliaron esto de varias maneras poco claras) más memoria de datos. Un PIC 16 básico puede direccionar 128 bytes directamente, 512 con banca. El nuevo PIC 16F1xxx ha ampliado la banca para permitir el direccionamiento de más memoria de datos. La arquitectura PIC 18 está limitada a 4k bytes. La arquitectura dsPIC puede abordar 64k bytes o 32k palabras de 16 bits directamente, aunque por varias razones solo la mitad de eso está disponible para RAM en la arquitectura básica. Un esquema bancario en algunos de los modelos posteriores lo ha extendido.

  3. Más rápido. El 30F original podría funcionar a 30 MIP, con 40 partes de MIP como norma ahora. La nueva serie E puede ejecutar hasta 70 MIP, aunque hay más razones por las que podría detenerse esperando algo que los modelos más lentos anteriores. Todavía son significativamente más rápidos en promedio.

  4. Capacidad DSP. El motor DSP tiene dos acumuladores de 40 bits y el hardware habitual para realizar una secuencia de operaciones MAC en matrices, una MAC por ciclo de instrucción (consulte la respuesta de Dave Tweed). El MAC y las instrucciones relacionadas solapan la indexación de la matriz y la terminación del bucle con la acumulación múltiple real.

  5. 15 "registros de trabajo" de 16 bits utilizables por software en lugar del único registro W de 8 bits de las arquitecturas PIC de 8 bits.

  6. Cambiador de barril.

  7. Monociclo 16x16 -> 32 bits multiplicar.

  8. División de hardware. Una operación de 32 div 16 -> 16 bits toma 18 ciclos.

  9. Muchas instrucciones de 3 operandos. Por ejemplo, puede agregar el contenido de dos registros de trabajo y poner el resultado en un tercero, todo en un solo ciclo. Esto se aplica a la mayoría de las operaciones matemáticas, lógicas y de turno.

  10. Conjunto de instrucciones en general más regular y simétrico.

  11. Interrupciones de vectores. El PIC 16 tiene un solo vector de interrupción, y el PIC 18 tiene dos. En las partes de 16 bits (PIC 24, dsPIC 30 y 33), cada fuente de interrupción tiene su propio vector. Esto reduce la latencia en la rutina de interrupción, ya que no tiene que pasar ciclos para averiguar qué interrupción al servicio.

    Esto también permite una mejor arquitectura de software. La rutina de interrupción para un periférico particular puede estar en el mismo módulo que el otro código que maneja ese periférico, en lugar de tener que tener una rutina de interrupción global.

  12. Varias otras ventajas que se desprenden de la arquitectura más amplia.

Olin Lathrop
fuente
8

Por lo general, la característica distintiva clave de un DSP en comparación con una CPU de propósito general es que el DSP puede ejecutar ciertas operaciones de procesamiento de señal con pocos, si alguno, ciclos de CPU desperdiciados en instrucciones que no calculan resultados.

Una de las operaciones más básicas en muchos algoritmos DSP clave es la operación MAC (multiplicación-acumulación), que es el paso fundamental utilizado en productos de matriz de puntos y cruzados, filtros FIR y IIR, así como FFT. Un DSP generalmente tendrá una organización de registro y / o memoria y una ruta de datos que le permite realizar al menos 64 operaciones MAC en pares de datos únicos en una fila sin desperdiciar ningún reloj en la sobrecarga del bucle o el movimiento de datos. Las CPU de propósito general generalmente no tienen suficientes registros para lograr esto sin usar instrucciones adicionales para mover datos entre los registros y la memoria.

Dave Tweed
fuente
1
+1 por el énfasis en las operaciones MAC. Estos son sin duda el núcleo de la mayoría de las operaciones DSP.
Matt Young