Je n'ai pas encore utilisé de puce DSP. Tout ce que je sais, c'est que leur architecture est telle qu'ils peuvent effectuer des calculs assez rapidement, généralement dans un cycle d'horloge, ils ont des instructions de multiplication-accumulation dans leur jeu d'instructions et ils ont des DMA pour que le CPU n'ait pas à perdre un temps précieux à déplacer des données environ. Je pense qu'il y a plus, mais ce sont quelques points de base.
Je peux voir que Microchip a dsPIC qui est leur ligne de puces DSP. Ne pouvons-nous pas simplement utiliser un PIC18 ou PIC32 qui a également des multiplicateurs intégrés pour faire également du DSP? En quoi le dsPIC est-il différent du PIC normal?
Ma principale question est la suivante: pourquoi avons-nous besoin d'avoir quelque chose de séparé et distinct appelé puce DSP et de ne pas intégrer de capacité de calcul d'unité à virgule flottante de haute précision sur tous les microcontrôleurs? Certes, avec les technologies de processus que nous avons actuellement, cela ne devrait pas prendre beaucoup de place.
De plus, comment savoir que je dois utiliser une puce DSP dans mon projet plutôt qu'un microcontrôleur normal>
Réponses:
Généralement, «DSP ...» signifie «puissance et / ou matériel plus pertinent au moment de l'introduction du produit ».
Les processeurs généralisés ont tendance à rattraper les anciens appareils spécialisés.
DSPIC a p [10 ans et plus de manière robeable - Olin le saura.
[Les éléments entre parenthèses concernent certains exemples DSPIC - non exhaustifs].
Dans les produits DSP, attendez-vous à un mélange de:
Attendez - vous à des choses comme des barillets,
des pipelines rapides et larges et des temps d'exécution
à cycle unique, des instructions à cycle unique large,
DMA [6 ou 8 canaux, tampons RAM à double port] de grandes plages d'adressage de mémoire linéaire [programme de 4 Mword , 64 ko de données] fonctionnalités orientées arithmétiques spécialisées
Peut-être:
des périphériques spécialisés tels que la commande de moteur, du
matériel pour plusieurs normes de communication différentes [CAN, IIC, UART, IIS, AC97, ...] plus profonds que les tampons de communication habituels [4 octets] plus rapidement et / ou ADC plus larges que d'habitude [2 Msps, 10 ou 12 bits]
Vous en trouverez la plupart dans la famille DSPIC - et de plus en plus dans les familles de processeurs gp.
Dans les cas extrêmes, vous obtenez le microcodage utilisateur et plus encore.
la source
Certains des avantages d'un dsPIC par rapport aux PIC à architecture antérieure, comme les familles PIC 16 et 18:
Cela permet également une meilleure architecture logicielle. La routine d'interruption pour un périphérique particulier peut être dans le même module que l'autre code gérant ce périphérique, au lieu d'avoir à avoir une routine d'interruption globale.
la source
Habituellement, la principale caractéristique d'un DSP par rapport à un CPU à usage général est que le DSP peut exécuter certaines opérations de traitement du signal avec peu ou pas de cycles CPU gaspillés sur des instructions qui ne calculent pas les résultats.
L'une des opérations les plus élémentaires de nombreux algorithmes DSP clés est l'opération MAC (multiplication-accumulation), qui est l'étape fondamentale utilisée dans les produits matriciels et croisés, les filtres FIR et IIR ainsi que les FFT. Un DSP aura généralement une organisation de registre et / ou de mémoire et un chemin de données qui lui permet d'effectuer au moins 64 opérations MAC sur des paires de données uniques d'affilée sans que les horloges soient gaspillées sur la surcharge de la boucle ou le mouvement des données. Les processeurs à usage général n'ont généralement pas suffisamment de registres pour y parvenir sans utiliser d'instructions supplémentaires pour déplacer les données entre les registres et la mémoire.
la source