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


von Name (Gast)


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!!!

von Andreas K. (a-k)


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.

von Name (Gast)


Lesenswert?

Was ist den eine DSP-typische Speicheradressierung?

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

von Zed (Gast)


Lesenswert?

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

kostet teuer Geld und Strom.

von Andreas S. (andreas) (Admin) Benutzerseite


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.

von Bender (Gast)


Lesenswert?

DSP können NICHT Kaffee kochen.

von Zed (Gast)


Lesenswert?

Naja wenn nen DSP eine Kaffeemaschin steuert schon ;)

von Name (Gast)


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! :)

von FL (Gast)


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

von Name (Gast)


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)

von Andreas K. (a-k)


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.

von Zed (Gast)


Lesenswert?

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

von Andreas K. (a-k)


Lesenswert?

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

von Name (Gast)


Lesenswert?

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

von Andreas S. (andreas) (Admin) Benutzerseite


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.

von Name (Gast)


Lesenswert?

Vielen Dank soweit! :) Wie es scheint ein interessantes Thema....

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

von Andreas K. (a-k)


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.

von Andreas K. (a-k)


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.

von Christian R. (supachris)


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.

von Andreas S. (andreas) (Admin) Benutzerseite


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.

von I_ H. (i_h)


Lesenswert?

Noch extremeres Beispiel: Digitalkameras

von Andreas S. (andreas) (Admin) Benutzerseite


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.

von Andreas Bayer (Gast)


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

von I_ H. (i_h)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.