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

8

Todavía no he usado un chip DSP. Lo único 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 que eso, pero estos son algunos puntos básicos.

Puedo ver que Microchip tiene dsPIC, que es su línea de chip DSP. ¿No podemos usar un PIC18 o PIC32 que también tiene multiplicadores integrados 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.

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

    
pregunta quantum231

3 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. DSPIC es p [robably 10+ años viejo - Olin sabrá.

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

En los productos DSP esperan una mezcla de:
Esperar cosas como cambiador de barriles,
Amplias tuberías rápidas y rápidos tiempos de ejecución de un solo ciclo,
instrucciones anchas de un solo ciclo,
DMA [6 u 8 canales, búferes de RAM de doble puerto] grandes rangos de direccionamiento de memoria lineal [4 programa Mword, 64 kB datos] Especialidades aritméticas orientadas a las características
Tal vez:
Periféricos especializados como control motor,
hardware para varios estándares de coms diferentes [CAN, IIC, UART, IIS, AC97, ...] más profundos de lo habitual coms buffers [4 bytes] ADCs más rápidos y / o más anchos de lo normal [2 Msps, 10 o 12 bits]

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

    
respondido por el Russell McMahon
10

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, según se adjunta a 8.

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

  3. más rápido. El 30F original podría funcionar a 30 MIP, con 40 partes de MIP la norma ahora. La nueva serie E puede ejecutar hasta 70 MIP, aunque hay más razones por las que puede atascarse 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, un MAC por ciclo de instrucción (consulte la respuesta de Dave Tweed). El MAC y las instrucciones relacionadas se superponen a 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. palanca de cambios del barril.

  7. 16x16 de ciclo único - > 32 bits se multiplican.

  8. División de hardware. A 32 div 16 - > La operación de 16 bits lleva 18 ciclos.

  9. Un montón de instrucciones de 3 operandos. Por ejemplo, puede agregar el contenido de dos registros de trabajo y colocar 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 desplazamiento.

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

  11. interrupciones vectoriales. 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 porque no tiene que gastar ciclos para determinar qué interrupción de servicio.

    Esto también permite una mejor arquitectura de software. La rutina de interrupción para un periférico en 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.

respondido por el Olin Lathrop
7

Por lo general, la característica distintiva clave de un DSP cuando se compara con una CPU de propósito general es que el DSP puede ejecutar ciertas operaciones de procesamiento de señales con pocos ciclos de CPU, si es que se pierde alguno, en instrucciones que no computan los resultados.

Una de las operaciones más básicas en muchos algoritmos DSP clave es la operación MAC (acumulación múltiple), que es el paso fundamental utilizado en los productos de matriz de puntos y cruzados, los filtros FIR y IIR, así como las FFT. Un DSP normalmente tendrá un registro y / o una organización de memoria y una ruta de datos que le permitirá realizar al menos 64 operaciones MAC en pares de datos únicos en una fila sin perder 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 registros y memoria.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas

Comentarios Recientes

Simplemente incluye leer los datos de entrada enviados a través de MOSFET a través de un UART (Universal Serial Bus). También hay un dispositivo de acceso a archivos opcional que permite que el hWAD vea el flujo de bits seleccionado (una capacidad muy deseable en el código de aplicación incorporado). Para lograr el acabado micrométrico con el que sus escritores han soñado, necesita una base de código respetable y subprocesamiento múltiple, que el mismo conjunto de chips podría lograr fácilmente al explotar... Lees verder