Ich habe noch keinen DSP-Chip verwendet. Alles was ich weiß ist, dass ihre Architektur so ist, dass sie Berechnungen ziemlich schnell ausführen können, normalerweise innerhalb eines Taktzyklus, sie haben mehrfach akkumulierte Befehle in ihrem Befehlssatz und sie haben DMAs, so dass die CPU keine kostbare Zeit damit verschwenden muss, Daten zu verschieben um. Ich denke, da steckt noch mehr dahinter, aber das sind ein paar grundlegende Punkte.
Ich kann sehen, dass Microchip dsPIC hat, was ihre DSP-Chiplinie ist. Können wir nicht einfach einen PIC18 oder PIC32 verwenden, der auch Multiplikatoren für DSP eingebaut hat? Wie unterscheidet sich der dsPIC vom normalen PIC?
Meine Hauptfrage lautet: Warum müssen wir einen separaten und eindeutigen DSP-Chip haben und nicht auf allen Mikrocontrollern hochpräzise Gleitkomma-Berechnungsfunktionen integrieren? Mit den heutigen Prozesstechnologien sollte dies sicherlich nicht viel Platz beanspruchen.
Woher weiß ich auch, dass ich in meinem Projekt einen DSP-Chip anstelle eines normalen Mikrocontrollers verwenden muss?
Antworten:
Im Allgemeinen bedeutet "DSP ..." "relevantere Leistung und / oder relevantere Hardware zum Zeitpunkt der Einführung des Produkts" .
Verallgemeinerte Prozessoren neigen dazu, alte Spezialgeräte einzuholen.
DSPIC ist wahrscheinlich über 10 Jahre alt - Olin wird es wissen.
[Die Angaben in Klammern beziehen sich auf einige DSPIC-Beispiele - nicht erschöpfend].
In DSP-Produkten erwarten Sie eine Mischung aus:
Erwarten Sie Dinge wie Barrel Shifter,
breite, schnelle Pipelines und schnelle Ausführungszeiten für einen Zyklus,
breite Anweisungen für einen einzelnen Zyklus,
DMA [6 oder 8 Kanäle, Dual-Port-RAM-Puffer], große lineare Speicheradressierungsbereiche [4 Mword-Programm , 64 kB Daten] arithmetisch spezialisierte Spezialfunktionen
Möglicherweise:
Spezialperipheriegeräte wie Motorsteuerung,
Hardware für verschiedene Kommunikationsstandards [CAN, IIC, UART, IIS, AC97, ...], die tiefer und üblicher als übliche Kommunikationspuffer [4 Byte] sind, schneller und schneller / oder breiter als übliche ADCs [2 Msps, 10 oder 12 Bit]
Die meisten davon finden Sie in der DSPIC-Familie - und zunehmend auch in GP-Prozessorfamilien.
In extremen Fällen erhalten Sie Benutzer-Mikrocodierung und mehr.
quelle
Einige der Vorteile eines dsPIC gegenüber PICs früherer Architektur wie den PIC 16- und 18-Familien:
Dies ermöglicht auch eine bessere Softwarearchitektur. Die Interruptroutine für ein bestimmtes Peripheriegerät kann sich im selben Modul befinden wie der andere Code, der dieses Peripheriegerät verarbeitet, anstatt eine globale Interruptroutine zu haben.
quelle
Normalerweise besteht das Hauptunterscheidungsmerkmal eines DSP im Vergleich zu einer Allzweck-CPU darin, dass der DSP bestimmte Signalverarbeitungsvorgänge mit wenigen, wenn überhaupt, CPU-Zyklen ausführen kann, die für Anweisungen verschwendet werden, die keine Ergebnisse berechnen.
Eine der grundlegendsten Operationen in vielen wichtigen DSP-Algorithmen ist die MAC-Operation (Multiply-Accumulate), die den grundlegenden Schritt darstellt, der in Matrixpunkt- und Kreuzprodukten, FIR- und IIR-Filtern sowie FFTs verwendet wird. Ein DSP verfügt normalerweise über eine Register- und / oder Speicherorganisation und einen Datenpfad, der es ihm ermöglicht, mindestens 64 MAC-Operationen an eindeutigen Datenpaaren in einer Reihe auszuführen, ohne dass Uhren durch Schleifen-Overhead oder Datenbewegung verschwendet werden. Allzweck-CPUs verfügen im Allgemeinen nicht über genügend Register, um dies zu erreichen, ohne zusätzliche Anweisungen zum Verschieben von Daten zwischen Registern und Speicher zu verwenden.
quelle