Leistungsfähigkeit aktueller CPU's gegenüber DSP's

Gast #1244071
Ich habe vom Fraunhoferinstitut in Erlangen (Institut für Integrierte 
Systeme) die Auskunft erhalten das aktuelle CPU's in etwa die 
Leistungsfähigkeit aktueller DSP's erreichen und ein Einsatz von DSP's 
nur durch den geringeren Leistungsbedarf begründet ist.
Es geht um den Einsatz in der Signalverarbeitung bei der Modulation und 
Demodulation von Wellenformen.
Andersherum gefragt: Welche Wellenformen wie z.B. GMSK wie bei GSM 
können mit normalen CPU's "verarbeitet" werden und welche anderen 
Wellenformen (OFDM ?) erfordern den Einsatz von DSP`s ?
Wo liegen die Grenzen aktueller Mehrkernprozessoren ? Wer kennt 
entsprechende Anwendungen, Projekte, Vergleiche ?
Gast #1244570
Die groessten Knackpunkte sind wohl beim Vergleich DSP <-> PC-Prozessor 
folgender:

- Echtzeitfaehigkeit (Antwortzeit auf Interrupts)
- Kontrollierter Ablauf von Berechnungen (eigentlich auch wieder Thema 
Echtzeit)
- (Kein) Betriebssystem und virtuelles Memory. Beim DSP will man's, je 
"duemmer",  aber latenzkontrollierter die Prozesse werden, eher nicht.

Damit waere man auch bei der Zuverlässigkeit der Systeme (kein digitaler 
PID-Regler eines Flugzeugs wuerde auf einem embedded Intel mit Windows 
CE laufen...)
Gast #1244590
@Strubi
> Damit waere man auch bei der Zuverlässigkeit der Systeme (kein digitaler
> PID-Regler eines Flugzeugs wuerde auf einem embedded Intel mit Windows
> CE laufen...)

Sicher? Immerhin ist es ein Echtzeitbetriebssystem.

http://de.wikipedia.org/wiki/Windows_CE
...
Windows CE, oft auch als WinCE abgekürzt, ist eine Familie von 
Betriebssystemen von Microsoft für PDA und embedded Systems. Es ähnelt 
in der Bedienung MS-Windows für PCs, verwendet aber einen anderen 
Kernel. Somit funktionieren auch keine herkömmlichen Windows-Programme. 
CE unterstützt die Prozessorarchitekturen Intel x86, MIPS, ARM (mit 
Intel PXA) und Hitachi SuperH. Es handelt sich in der letzten Version 
(Windows CE 6.0) um ein Echtzeitbetriebssystem.
...

Von den CPUs her würde ich kein Problem sehen.
Die Interrupt antwortzeiten sollten auch ermittelbar sind. Mit Cache 
kann es ja bloss schneller werden.
Auch ein virtuelles Memory spricht nicht unbedingt dagegen, weil man 
auch dort speicher anfordern kann der NIE ausgelagert wird.

Das Hauptproblem ist die Software, entweder macht man alles ohne BS was 
sehr aufwendig ist, oder man verlässt sich eben auf das BS.
Gast #1245293
Peter:

Ich wuerde mal sagen, nicht ueberall, wo 'Echtzeit' draufsteht, ist auch 
Echtzeit fuer jedermann drin. Manche Anwendungen erfordern eine 
Antwortzeit im Bereich von Nanosekunden und eine garantierte Abarbeitung 
binnen einer gewissen Zeit. Caches machen die Sache schon schneller, 
aber weniger deterministisch (vergroessern also den Jitter). Beim 
DSP-Hybriden Blackfin z.B. hast Du eine sehr genaue Kontrolle darueber, 
wo Caches aktiv sind, wo der Code ablaeuft, usw. Die hast Du z.B bei 
einem i86 rein von der Architektur her nicht.
Kann schon sein, dass neuere Versionen von WindowsCE in die richtige 
Richtung laufen und einzelne Prozesse das System nicht blockieren. 
Leider hatte ich bisher mit der Code-Qualitaet von Windows-Kernels so 
meine Probleme. Nicht ohne Grund gibt es 'echte' Echtzeitsysteme wie 
RTEMS oder die Xenomai-Erweiterungen fuer uClinux...
Aber auch diese bieten bestenfalls Latenzzeiten ueber 500nS und einen 
gewissen Jitter, allerdings auch die Garantie, dass ein Echtzeitprozess 
binnen einer wohldefinierten Zeitspanne ans Ruder darf.
Wers genauer braucht, muss eben zum DSP greifen und sein 'OS' selber 
schreiben. Und genau dafuer sind die Dinger ja auch da..

Gruss,

- Strubi
#1245883
Naja normale CPUs haben eh DSP-Einheiten zB Floatingpoint Units und die 
SSEx Befehlssätze usw sind nur rein für Signal/ Multimediadaten 
entworfen worden. Aber das Problem ist die Architekturen von CPUs 
(Superskalar, benötigen externes Hühnerfutter und ein Know How bei den 
Entwicklern) -> zu teuer/ zu oversized. Außerdem sind manchmal kleine 
DSP/DSC oder Hybriden besser wegen der Ausfallsicherheit, 
Energieverbrauch usw.

MFG Patrick
Gast #1251066
>Ich wuerde mal sagen, nicht ueberall, wo 'Echtzeit' draufsteht, ist auch
>Echtzeit fuer jedermann drin. Manche Anwendungen erfordern eine
>Antwortzeit im Bereich von Nanosekunden und eine garantierte Abarbeitung
>binnen einer gewissen Zeit.

Wann werden die Leute endlich kapieren, was der Begriff "Echtzeisystem" 
bedeutet?

Die Definition für Echtzeitsystem ist nicht Schnelligkeit, sondern 
garantierte Antwortzeit. Ein Echzeitsystem kann auch eine Antwortzeit 
von einer Stunde haben, wenn es deterministisch nach einer Stunde 
antwortet.
#1254992
>
> Wann werden die Leute endlich kapieren, was der Begriff "Echtzeisystem"
> bedeutet?
>
> Die Definition für Echtzeitsystem ist nicht Schnelligkeit, sondern
> garantierte Antwortzeit. Ein Echzeitsystem kann auch eine Antwortzeit
> von einer Stunde haben, wenn es deterministisch nach einer Stunde
> antwortet.

Genau das wurde ja schon gesagt.
Nur bringt ein Echtzeitsystem mit einer langen Antwortzeit eben keinem 
was.
Der Originalposter wollte schliesslich implizit wissen, warum man fuer 
gewisse Zwecke DSPs einsetzt, und keine (embedded) Windows- oder 
Linux-PCs.
Admin Persönliche Seite #1255796
DSPs lohnen sich dann, wenn schnelle Echtzeit (→ Motorsteuerung), 
geringer Energieverbrauch des Gesamtsystems (→ MP3-Player), wenig 
Platzbedarf (→ Handy) oder niedrige Kosten in Massenproduktion (→ 
Video-Player) gefordert sind. Bei vielen Laboranwendungen ist das nicht 
der Fall, da werden FPGAs oder DSPs allenfalls für die Datenerfassung 
und -vorverarbeitung (Downsampling) verwendet, für die eigentliche 
Rechenarbeit ist der PC günstiger.
Gast #1255822
Deswegen gibts auch Soft und Hard - RTS!

Hard-RTS muss eine Antwort nach eine bestimmten Zeit geben!

WinCE 6.0 gehört zu den Hard-RTOS dazu!

WinCE6.0 ist wirklcih sehr fein, hab jahre lang mit Linux gewerkelt, hab 
dann Kunden bedingt auf Win CE6.0 umsteigen müssen (anfangs gewehrt) 
jetzt bin ich sehr überzeugt davon und verwende je nachdem was der Kunde 
braucht bzw. wünscht Linux oder WinCE dort hin wos gewünscht wird, wenn 
um RTOS geht empfehle ich (außer man hat viel Geld) WinCE6.0.

lg
Gast #1276116
... und wenn man wirklich harte Echtzeit realisieren will, nimmt man gar 
kein OS. Beispiel: Wir haben in 2004 mal ein MP3-Radio entwickelt, das 
aus einem DVB-C-Kanal mit Daten versorgt wurde. Neben 300 tausend (!) 
Interrupts pro Sekunde vom DVB-Frontend haben wir den MP3-Decoder und 
das User-Interface auf einem 100MHz-DSP realisiert, der knapp 500mW 
Verlustleistung (TMS320C5409) hatte und nicht einmal externen Speicher 
brauchte.

Der Code war in C geschrieben (Ausnahme die Interrupt-Routine, die die 
Daten vom DVB-Empfänger entgegen nahm).

Mit einem PC-Prozessor geht das natürlich auch, aber zu welchem Preis?

Gruß,
Andreas

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.