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!!!
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.
Was ist den eine DSP-typische Speicheradressierung? Kannst du auch was zu sinnvollen und weniger sinnvollen Topologien sagen ?
> warum verwendet man ihn nicht gleich für alles?
kostet teuer Geld und Strom.
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.
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! :)
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
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)
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.
Für größere moderne DSPs gibt es jedenfalls Linux Portierungen und das läuft ziemlich gut.
Sind das dann noch spezielle DSPs, oder ähneln die von der Architektur her eher normalen Prozessoren mit Schwerpunkt auf DSP-Verarbeitung?
Hast du ein Beispiel für einen größeren modernen DSP und eine solche Linux-Portierung?
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.
Vielen Dank soweit! :) Wie es scheint ein interessantes Thema.... Weiß jemand in wiefern so ein DSP-Betriebssystem multiprozessorfähig ist?
> 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.
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.
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.
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.
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.
> 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.