Cosa può fare il dsPIC che l'umile microcontrollore PIC non può fare?


10

Non ho ancora usato un chip DSP. Tutto quello che so è che la loro architettura è tale che possono eseguire calcoli abbastanza velocemente, di solito all'interno di un ciclo di clock, hanno istruzioni per l'accumulo multiplo nel loro set di istruzioni e hanno DMA, quindi la CPU non deve perdere tempo prezioso nello spostamento dei dati in giro. Penso che ci sia dell'altro, ma questi sono alcuni punti di base.

Vedo che Microchip ha dsPIC che è la sua linea di chip DSP. Non possiamo semplicemente usare un PIC18 o PIC32 che ha anche moltiplicatori integrati per fare anche DSP? In che modo dsPIC è diverso dal normale PIC?

La mia domanda principale è questa: perché dobbiamo avere qualcosa di separato e distinto chiamato chip DSP e non integrare la capacità di calcolo dell'unità in virgola mobile ad alta precisione su tutti i microcontrollori? Sicuramente con le tecnologie di processo che abbiamo ora, questo non dovrebbe occupare molto spazio.

Inoltre, come faccio a sapere che devo utilizzare un chip DSP nel mio progetto anziché un normale microcontrollore>


1
Ci sono buone risposte alla domanda simile qui: electronics.stackexchange.com/questions/3067/…
David

Risposte:


3

Generalmente "DSP ..." significa "potenza più rilevante e / o hardware più rilevante al momento dell'introduzione del prodotto ".
I processori generalizzati tendono a mettersi al passo con i vecchi dispositivi specializzati.
DSPIC ha p [robily 10+ anni - Olin lo saprà.

[Le voci tra parentesi si riferiscono ad alcuni esempi DSPIC - non esaustivi].

Nei prodotti DSP ci si aspetta un mix di:
Aspettatevi cose come cambi di barilotto,
tubazioni larghe e veloci e tempi di esecuzione rapidi a
ciclo singolo, istruzioni a ciclo singolo ampio,
DMA [6 o 8 canali, buffer RAM a doppia porta] ampie gamme di indirizzamento della memoria lineare [programma Mword 4 , 64 kB di dati] caratteristiche orientate all'aritmetica specialistica
Forse:
periferiche specializzate come controllo motore,
hardware per diversi standard coms [CAN, IIC, UART, IIS, AC97, ...] più profondi dei normali buffer coms [4 byte] più veloci e / o più ampio dei normali ADC [2 Msps, 10 o 12 bit]

Troverai la maggior parte di questi nella famiglia DSPIC - e sempre più nelle famiglie di processori gp.
In casi estremi ottieni microcodifica utente e altro ancora.


1
Se ricordo bene, ho sentito parlare per la prima volta dello sforzo di progettazione di dsPIC nel 1999, i primi campioni sono stati distribuiti all'inizio del 2002 con parti di produzione alla fine del 2002 o all'inizio del 2003. Ho ancora da qualche parte un 30F2010 brasato a mano in un pacchetto DIP in ceramica a 28 pin che è stato accidentalmente etichettato come 30F6010. Funzionava solo a 1/3 dell'eventuale velocità massima ed era contrassegnato a mano come # 55 o qualcosa del genere.
Olin Lathrop,

1
Possono anche essere sincronizzati fino a 200 o 260 MHz, mentre la linea PIC supporta solo da 4 a 20 MHz. Essere 10+ volte più veloci è sicuramente un punto da considerare.
Havenard,

1
@Havenard - Notando che si tratta di una domanda e risposta del 2014: ha menzionato PIC32 come possibile alternativa al DSPIC. Il PIC32MX 2007 ha Cmax (frequenza di clock massima) di 80 MHz. Il PIC32MZ 2013 ha una Cmax di 252 MHz. || Utile anche se confronto incompleto qui {Wikipedia}.
Russell McMahon,

11

Alcuni dei vantaggi di un dsPIC rispetto ai PIC di architettura precedente, come le famiglie PIC 16 e 18:

  1. Percorsi di dati a 16 bit e ALU, come indicato a 8.

  2. Capacità di indirizzare direttamente (le versioni successive di entrambe le architetture hanno esteso questo in vari modi kludgy) più memoria di dati. Un PIC 16 di base può indirizzare direttamente 128 byte, 512 con operazioni bancarie. Il nuovo PIC 16F1xxx ha esteso il sistema bancario per consentire di indirizzare più memoria di dati. L'architettura PIC 18 è limitata a 4k byte. L'architettura dsPIC può indirizzare direttamente 64k byte o 32k parole a 16 bit, sebbene per vari motivi solo la metà di ciò sia disponibile per la RAM nell'architettura di base. Uno schema bancario in alcuni dei modelli successivi lo ha esteso.

  3. Più veloce. Il 30F originale poteva funzionare a 30 MIP, con 40 parti MIP ora la norma. La nuova serie E può eseguire fino a 70 MIP, anche se ci sono più motivi per cui potrebbe rimanere in attesa di qualcosa rispetto ai precedenti modelli più lenti. Sono ancora significativamente più veloci in media.

  4. Funzionalità DSP. Il motore DSP ha due accumulatori a 40 bit e il solito hardware per eseguire una sequenza di operazioni MAC su array un MAC per ciclo di istruzioni (vedere la risposta di Dave Tweed). Il MAC e le relative istruzioni si sovrappongono all'indicizzazione dell'array e alla terminazione del loop con l'effettivo multiply-accumulate.

  5. 15 "registri di lavoro" a 16 bit utilizzabili dal software anziché il singolo registro W a 8 bit delle architetture PIC a 8 bit.

  6. Cambio canna.

  7. Moltiplicazione a ciclo singolo 16x16 -> 32 bit.

  8. Divisione hardware. Un'operazione a 32 div 16 -> 16 bit richiede 18 cicli.

  9. Molte istruzioni per 3 operandi. Ad esempio, è possibile aggiungere il contenuto di due registri di lavoro e inserire il risultato in un terzo, il tutto in un singolo ciclo. Questo vale per la maggior parte delle operazioni matematiche, logiche e di spostamento.

  10. Set di istruzioni complessivamente più regolare e simmetrico.

  11. Interrupt vettoriali. Il PIC 16 ha un singolo vettore di interrupt e il PIC 18 ne ha due. Sulle parti a 16 bit (PIC 24, dsPIC 30 e 33), ogni sorgente di interrupt ha il suo vettore. Ciò riduce la latenza nella routine di interruzione perché non deve impiegare cicli per capire quale interruzione deve essere eseguita.

    Ciò consente anche una migliore architettura software. La routine di interrupt per una determinata periferica può trovarsi nello stesso modulo dell'altro codice che gestisce quella periferica, invece di dover disporre di una routine di interruzione globale.

  12. Vari altri vantaggi che emergono dall'architettura più ampia.


8

Di solito, la caratteristica distintiva chiave di un DSP rispetto a una CPU per uso generico è che il DSP può eseguire determinate operazioni di elaborazione del segnale con pochi, se del caso, cicli della CPU sprecati in istruzioni che non calcolano i risultati.

Una delle operazioni di base in molti algoritmi DSP chiave è l'operazione MAC (moltiplica-accumula), che è il passaggio fondamentale utilizzato nei prodotti a matrice di punti e incrociati, filtri FIR e IIR e FFT. Un DSP in genere avrà un registro e / o un'organizzazione di memoria e un percorso di dati che gli consente di eseguire almeno 64 operazioni MAC su coppie di dati univoche in una riga senza alcun clock sprecato in sovraccarico del loop o spostamento dei dati. Le CPU per uso generico non dispongono in genere di registri sufficienti per raggiungere questo obiettivo senza utilizzare istruzioni aggiuntive per spostare i dati tra i registri e la memoria.


1
+1 per l'enfasi sulle operazioni MAC. Questi sono senza dubbio il nucleo della maggior parte delle operazioni DSP.
Matt Young,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.