mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Was können DSPs NICHT?


Autor: Name (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo miteinander!

Meine Frage(n):
Da ein DSP ja super schnell rechnen kann... warum verwendet man ihn 
nicht gleich für alles?
Was kann ein DSP also schlecht bzw garnicht?

Wie sieht es aus mir Speicherverwaltung?
Welche Topologien sind für mehrere DSPs geeignet bzw ungeeignet? 
(Warum?)

Würd mich freuen wenn ihr helfen könnt!!!

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Allgemeingültige Antworten sind schwierig, weil der Terminus DSP keine 
bestimmte Architektur beschreibt, sondern nur ein bestimmtes 
Anwendungsgebiet, bzw die Eignung dafür. Damit wird eine konkrete 
DSP-Implementierung nicht automatisch für andere Anwendungen ungeeignet.

Ein Extremfall in dieser Hinsicht sind beispielsweise Microchips dsPICs. 
Denn das sind ganz normale 16bit Microcontroller mit zusätzlicher 
DSP-Funktionalität. Konsequenterweise gibt es sie deshalb mittlerweise 
auch doppelt, als dsPIC33 mit und als PIC24 ohne DSP-Funktionalität, 
ohne weitere Unterschiede. Eingeschränkt ist man da durch DSP folglich 
nicht.

Das anderere Extrem sind DSP der ersten Generationen, die so sehr auf 
DSP-spezifische Datenbreiten und Programmiertechniken optimiert waren, 
dass 8/16/32bit Datentypen nur sehr begrenzt unterstützt wurden und 
Speicheradressierung in nicht DSP-typischer Weise schon mal zum Erlebnis 
werden konnte.

Autor: Name (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist den eine DSP-typische Speicheradressierung?

Kannst du auch was zu sinnvollen und weniger sinnvollen Topologien sagen 
?

Autor: Zed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> warum verwendet man ihn nicht gleich für alles?

kostet teuer Geld und Strom.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DSPs sind schnell bei Aufgaben mit einer einfachen, linearen Struktur, 
bei der immer die selben Schleifen durchlaufen und Daten in 
gleichmaessigen Haeppchen verarbeitet werden. Wenn das Programm dagegen 
hauptsaechlich aus Zustandsautomaten und weniger aus Berechnungen 
besteht, auf externe Ereignisse reagieren soll, wahlfreier Zugriff auf 
grosse Speichermengen gewuenscht ist, dann ist ein DSP ungeeignet.

Autor: Bender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DSP können NICHT Kaffee kochen.

Autor: Zed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja wenn nen DSP eine Kaffeemaschin steuert schon ;)

Autor: Name (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ist es den mit Synchronisation in einem Mehr-Prozessor(DSP)-System?
Sind DSPs in der Synchronisation bzw Speicherzugriffen langsamer?
Lohnt es sich viele DSPs zu verknüpfen? Oder würden diese zu lange mit 
Synchronisation beschäftigt sein? Das ist ja ein allgemeines Problem, 
aber ist das bei DSPs noch schlimmer?

Und vielen Dank soweit! :)

Autor: FL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

zu Synchronisation kann ich nicht viel sagen, da fehlt mir das 
Fachwissen...

Aber generell glaube ich, dass Du "in die falsche Richtung fragst".

Es gibt einfach nicht den "reinen DSP", welcher Features A und B gut 
kann und bei C und D schlecht ist.

Ein DSP ist zunächst einmal ein Prozessor, dessen zentrale Einheiten 
(also ALU, Daten- und Adressbusse) etc. dafür optimiert sind, sehr 
effektiv und schnell numerische Berechnungen durchzuführen. Das kann ein 
DSP um Längen besser als ein "normaler" Prozessor.

Da es aber viele Einsatzbereiche gibt, wo der DSP neben reiner 
Signalverarbeitung auch Steuerungsaufgaben übernehmen soll (damit man 
eben nicht einen DSP und einen Mikrocontroller braucht), haben viele 
DSPs auch jede Menge Peripherie mit auf dem Chip, um eben auch noch "uC 
zu spielen".

Umgekehrt sei aber auch nicht verschwiegen, dass "normale" Prozessoren 
zum Teil mit zusätzlichen Recheneinheiten ausgestattet werden, welche 
auch effektivere Signalverarbeitung ermöglichen.

Eine generelle Aussage ist also wohl unmöglich. Man muss sich wohl den 
genauen Einsatzzweck angucken und dann einen dazu möglichst optimal 
passenden Prozessor finden.

Gruß
FL

Autor: Name (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist den z.B. mit Betriebssystemstrukturen (Scheduling, 
Speicherverwaltung)? Oder sogar einem Betriebssystem. Geht dadurch viel 
Leistung eines DSPs verloren? Macht das bei DSPs überhaupt Sinn? 
(Angenommen wir betrachten echte DSPs und nicht Prozessoren die um 
DSP-Recheneinheiten erweitert sind)

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Name wrote:

> Was ist den z.B. mit Betriebssystemstrukturen (Scheduling,
> Speicherverwaltung)? Oder sogar einem Betriebssystem. Geht dadurch viel
> Leistung eines DSPs verloren? Macht das bei DSPs überhaupt Sinn?

Wenn du unter einem Betriebssystem Windows oder Linux verstehst - das 
ergibt wenig Sinn. Ein einfacher Scheduler hingegen vernichtet kaum 
Leistung, eher im Gegenteil. Speicherverwaltung ist weitgehend 
performanceneutral solange damit nicht virtueller Speicher gemeint ist.

DSP Anwendungen haben allerdings oft recht harte Echtzeitbedingungen, 
immerhin kann Audioverarbeitung nicht einfach mal Pause machen ohne das 
man das hört. Inwieweit sich das mit einem Scheduler verträgt weiss nur 
der Einzelfall.

Autor: Zed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für größere moderne DSPs gibt es jedenfalls Linux Portierungen und das 
läuft ziemlich gut.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sind das dann noch spezielle DSPs, oder ähneln die von der Architektur 
her eher normalen Prozessoren mit Schwerpunkt auf DSP-Verarbeitung?

Autor: Name (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du ein Beispiel für einen größeren modernen DSP und eine solche 
Linux-Portierung?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Blackfin. Das ist aber schon ein ziemlicher 
Allround-Multimedia-Prozessor, auch wenn er viele DSP-Funktionen 
beinhaltet. Bei kleineren, "klassischen" DSPs kann ich mir Probleme mit 
dem Speichermanagement vorstellen; man hat oft keinen zusammenhaengenden 
Speicherbereich in dem man nach Belieben herumwerkeln kann, sondern muss 
zwischen internem/externem Speicher und verschiedenen Speicherbaenken 
unterscheiden um die maximale Performance zu erreichen, internen 
Speicher an verschiedenen Stellen wiederverwenden, usw. Das schraenkt 
die Einsetzbarkeit von Betriebssystemen etwas ein.

Autor: Name (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank soweit! :) Wie es scheint ein interessantes Thema....

Weiß jemand in wiefern so ein DSP-Betriebssystem multiprozessorfähig 
ist?

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Weiß jemand in wiefern so ein DSP-Betriebssystem multiprozessorfähig
> ist?

Linux ist es bekanntlich.

Und manche DSPs wurden schon vor vielen Jahren als Multicores 
implementiert.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Schwarz wrote:

> Allround-Multimedia-Prozessor, auch wenn er viele DSP-Funktionen
> beinhaltet.

Wobei man auch alle PC-Prozessoren der letzten ~10 Jahre so bezeichnen 
kann. Was diese ganze Fragerei schlussendlich ins Absurde führt. Denn 
DSP ist eben nicht DSP und diese ganzen allgemeinen gehaltenen Fragen 
führen deshalb ins Nichts.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da kann man kaum eine global gültige Aussage machen, was DSPs nicht 
können. Aber zum Beispiel Strom sparen und I/O-Pins schnell schalten 
(Bit-Banging) zählen meist nicht zu den Stärken.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die meisten DSPs dürften heutzutage in mobilen Geräten stecken, und da 
ist ein geringer Stromverbrauch eine der wichtigsten Anforderungen. 
Extrembeispiele wären Bluetooth-Headsets oder Hörgeräte.

Autor: I_ H. (i_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch extremeres Beispiel: Digitalkameras

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, die haben meist einen dicken Li-Io der sowieso schon ein paar 
Motoren und ein Display versorgen muss. Da macht der DSP das Kraut auch 
nicht mehr fett.

Autor: Andreas Bayer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Weiß jemand in wiefern so ein DSP-Betriebssystem multiprozessorfähig ist?

Es gab vor Jahren richtige Multiprozessor-Betriebssysteme, z.B. von der 
Fa. Eonic. Manche SHARCs und TigerSHARCs haben Hardware-Links, die sich 
an Transputer-Topologien orientieren und für solche Betriebssysteme 
gedacht waren. Es hat sich aber nicht als vorteilhaft erwiesen, den 
Compiler die Zuweisung von Tasks machen zu lassen.

VisualDSP unterstützt aber die Entwicklung von Software auf mehreren 
Cores parallel, allerdings nur rudimentär, ohne Verwendung eines 
Betriebssystems.

Sinnvoller und effizienter ist es, jedem Core seine Aufgaben explizit 
zuzuweisen, denn anders als bei PCs wechseln die Aufgaben eines 
DSP-Systems nicht im Sekundentakt. Meist sind die Anwendung sehr 
deterministisch und verlaufen in geordneten Bahnen.

Im Vergleich zu X86-Architekturen sollte man auch immer das 
MIPS/Watts-Verhältnis im Blick behalten. Ein Dualcore-Blackfin (BF561) 
braucht gerade mal gut 1 Watt bei 1200 MIPS Rechenleistung. Diese 
Rechenleistung reicht für ca. 50 Kanäle von Sprach-Codecs wie sie in 
Handys verwendet werden (G.723.1). Ein PC-Prozessor braucht ein 
Vielfaches an Leistung, kostet dazu viel mehr und ist erheblich viel 
größer.

µCLinux funktioniert ganz ordentlich auf Blackfins, allerdings geht - 
wie bei PCs - die für Anwendungen verfügbare Rechenleistung in die Knie.

Gruß,
Andreas
www.dsp-bayer.de

Autor: I_ H. (i_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt auch effiziente x86er. Transmeta hat bis vor ein paar Jahren den 
Efficeon vertrieben, der hatte schon alles mögliche integriert und lag 
glaub bei 5W@2GHz. Intern ein VLIW mit sicher genug Rechenleistung, per 
Codemorphing wurde x86 in VLIW übersetzt, sogar recht performant.
VIAs C3 ist auch recht sparsam, oder AMDs Geode. Liegen auch im 
einstelligen Bereich.


Die DSPs in Digitalkameras müssen schon ganz gut rechnen, bei meiner 
glaub 6 Jahre alten kann ich problemlos 5 Bilder in serie mit je 4MPix 
machen. Das muss auch erstmal komprimiert werden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.