Digitale Filter

Inhaltsverzeichnis

1. Allgemeines 1

2. Filter mit "diskreter" Logik 1

2.1 Multiplizierer 1
2.2 Ausf├╝hrung von digitalen Filtern ohne
R├╝ckf├╝hrung (Finite Duration Response - FIR) 5
2.2.1 Kaskadiertes FIR - Filter 8
2.2.2 Vollparallele Form eines FIR - Filters 10
2.3 Ausf├╝hrung von digitalen Filtern mit R├╝ck -
f├╝hrung (Infinite Impulse Response - IIR) 11
2.3.1 Kaskadiertes IIR - Filter 12
2.4 gemultiplexte Filterb├Ąnke 13

3. Digitale Filter mit Digitalen Signal -
prozessor IC's (DSP) 16

3.1 Allgemeine Features von DSP 16
3.2 DSP mit Harvard - Architektur 18
3.3 DSP mit Datenflu├č - Methode 20
3.3.1 Datenflu├čmethode 20
3.3.2 NEC uPD7281 "Image Pipelined Processor" 23

Anhang Literaturverzeichnis 27

1. Allgemeines

Digitale Filter k├Ânnen entweder off - line ("Filterung" eines gespeicherten Datensatzes) oder on - line (Echtzeitverarbeitung der ankommenden Datens├Ątze) ausgef├╝hrt werden. Bei off - line Verarbeitung sind die Anspr├╝che an die Hardware gering, es kann problemlos ein herk├Âmmlicher Computer mit geeignetem Programm eingesetzt werden. Die on - line Verarbeitung wird bereits bei relativ geringen zu verarbeitenden Frequenzen zeitkritisch (bei 20kHz: Abtastung mit 40 kHz => 25 us Verarbeitungszeit f├╝r einen Abtastpunkt). Diese Geschwindigkeit ist aufgrund der umfangreichen Rechenoperationen f├╝r einen Abtastpunkt f├╝r einen herk├Âmmlichen uP nicht mehr erreichbar. Hier werden spezielle Ausf├╝hrungen ben├Âtigt.
Fr├╝her wurde bei off - line Verarbeitung prinzipiell "diskrete" Logik verwendet, heute werden vielfach spezielle Prozessoren f├╝r digitale Signalverarbeitung verwendet.

2. Filter mit "diskreter" Logik

2.1 Multiplizierer

Zur Erreichung hoher Verabeitungsgeschwindigkeiten sind schnelle arithmetische Einheiten notwendig. Hierbei sind speziell die Multiplizierer beachtenswert, da sie meist auf mehrfaches Addieren zur├╝ckgef├╝hrt werden, und deshalb wesentlich mehr Rechenzeit ben├Âtigen, als die Addierer.
Die einfachste M├Âglichkeit w├Ąre ein Multiplizierer aus einem Addierer und Schieberegistern.























Bild 2.1 Addier - Schiebe - Multiplizierer

Bei diesem Aufbau wird mit Clock 1 der eine Faktor in einem Schieberegister bitweise weitergeschoben. Wenn an den Gattern eine 1 ansteht, wird zum Akkumulator (Ergebnis) der Wert des anderen Faktors dazuaddiert. Nach jedem Additions - oder Nichtadditionsvorgang wird der Akkumulator um eine Stelle nach rechts geschoben (Erniedrigung des Stellenwerts).
Dieser Multiplizierer ist zwar vom Aufbau her sehr einfach, aber sehr langsam.
Eine schnellere M├Âglichkeit ist der Array - Multiplizierer, der g├Ąnzlich aus Addierern aufgebaut ist.




















Bild 2.2 Array - Multiplizierer

Auch dieser Multiplizierer ist noch nicht sehr zeiteffizient, da er mit Ripple - Carry arbeitet, d. h. der am weitesten links befindliche Addierer liefert erst dann eine g├╝ltige Summe, wenn alle Addierer weiter rechts fertig sind.























Bild 2.3 Schnellerer Array - Multiplizierer
Dieser Multiplizierer arbeitet mit diagonalem Carry, sodass die Summen von niedrigeren Stufen gleichzeitig zu den Addierern auf den h├Âheren Stufen gelangen. Dieses Prinzip hei├čt Carry - Save und ist auch auf andere als Array - Multiplizierer anwendbar. Die h├Âchste Berechnungszeit ergibt sich hierbei entweder aus 8 Carry - Zeiten, oder 5 Summier - Zeiten, je nach dem welches l├Ąnger dauert. Im Gegensatz dazu ben├Âtigt der Multiplizierer von Bild 2.2 mindestens 2 x 5 Carry - Zeiten + 8 Summier - Zeiten.
Eine weitere M├Âglichkeit zum Aufbau eines Multiplizierers w├Ąre eine Baum - Struktur, mit der sich die Anzahl der Summier - Zeiten stark verringern lie├če. Bild 2.4 zeigt den prinzipiellen Aufbau eines solchen n x 16 Bit - Multiplizierers, wobei jedes Plus - Symbol n Bit repr├Ąsentiert. Bei diesem Aufbau sind nur 4 Summier - Zeiten n├Âtig. Es wird hier die selbe Anzahl von Addierern verwendet, aber es arbeiten mehr parallel.




















Bild 2.4 Multiplizierer mit Baum - Struktur






















Bild 2.5 Realisierung eines 6 x 8 Bit - Multiplizierers
mit Baum - Struktur
Bild 2.5 zeigt die Realisierung eines 6 x 8 Bit - Multiplizierers mit Baum - Struktur, wobei die Carries reihenweise verarbeitet werden. Dadurch ben├Âtigt jede Reihe die gesamte Carry - Ripple - Zeit. Da 4 Reihen vorhanden sind, wird f├╝r die gesamte Multiplikation 4 x die Carry - Ripple - Zeit einer Reihe ben├Âtigt. Dadurch ist diese Methode nicht so effizient, wie die in Bild 2.3 gezeigte, au├čer wenn die Summier - Zeit sehr hoch ist. Es ist jedoch auch beim Multiplizierer mit Baumstruktur der ├ťbergang auf Diagonal - Carry m├Âglich.






















Bild 2.6 Array - Multiplizierer mit Diagonal - Carry und
Baumstruktur

Diese Kombination von Baumstruktur und diagonale Weitergabe des Carrys ist die wahrscheinlich schnellste M├Âglichkeit einen Multiplizierer auszuf├╝hren.
Die Diskussion der anderen M├Âglichkeiten des Aufbaus eines Multiplizierers ist aber trotz des eindeutigen Geschwindigkeitsvorteils der letztgenannten Methode notwendig, da der Aufwand an ICs bei den einzelnen Methoden stark unterschiedlich ist.
2.2 Ausf├╝hrung von digitalen Filtern ohne R├╝ckf├╝hrung (Finite Duration Impuls Response - FIR)














Bild 2.7 Prinzipschaltbild eines Filters ohne R├╝ckf├╝hrung

Man k├Ânnte dieses Prinzipschaltbild praktisch direkt in eine Schaltung ├╝bernehmen, es w├Ąren dann aber 6 Multiplizierer und 7 Addierer n├Âtig, was einen sehr hohen Hardware - Aufwand bedeuten w├╝rde. Dieses System wird sp├Ąter noch beschrieben.
Die hardwarem├Ą├čig einfachste Struktur besteht aus einem ROM zur Speicherung der Koeffizienten, einem Schieberegister f├╝r die Amplitudenwerte, einem Multiplizierer und einem Addierer - Akkumulator.































Bild 2.8 Struktur, Programm und Zust├Ąnde eines einfachen
Filters ohne R├╝ckf├╝hrung
Hierbei sind die letzten 6 digitalisierten Amplitudenwerte in einem Schieberegistersatz, bei dem jede Stufe ein ganzes Wort fa├čt, gespeichert.
Zun├Ąchst wird x(n - 6) mit dem Koeffizienten a_6 verkn├╝pft. Das Ergebnis wird im Akkumulator abgelegt. Mit dem ersten Takt wird x(n - 6) aus dem Schieberegister herausgeschoben, und x(n - 5) steht am Multiplizierer an. Gleichzeitig wurde der aktuelle Amplitudenwert in das Schieberegister hereingenommen. x(n - 5) wird mit a_5 multipliziert und zum Akkumulator dazuaddiert. Mit dem n├Ąchsten Takt wird das Schieberegister wieder um 1 weitergeschoben, wobei aber x(n - 5) nicht aus dem Register hinausgeschoben wird, sondern an den Anfang des Registers zur├╝ckgef├╝hrt wird. Dieser Vorgang findet nun solange statt, bis x(n)a_0 zum Akkumulator dazuaddiert und an die erste Stelle des Schieberegisters geschoben ist. Dann steht im Akkumulator der richtige Ausgangswert, und der n├Ąchste Auswertezyklus kann beginnen.
In der Schaltung aus Bild 2.8 wurde aber noch keine R├╝cksicht auf die Verf├╝gbarkeit geeigneter Schieberegister genommen. Die hier dargestellte Methode w├╝rde entweder mehrere parallele 1 Bit Schieberegister mit einer relativ einfachen Logik ben├Âtigen, oder ein RAM mit einer relativ komplizierten Logik. Es ist aber relativ einfach m├Âglich, auf einem IC tausende von seriell angeordneten Speicherzellen anzuordnen. Hierbei w├╝rde dann aber eine serielle Verarbeitung der einzelnen W├Ârter n├Âtig.




















Bild 2.9. Schaltung aus Bild 2.8. mit rein serieller
Speicherung

In diesem Fall w├Ąre jeder Amplitudenwert seriell gespeichert, obwohl es nur f├╝r x(n - 6) explizit dargestellt ist. Die Multiplikationsroutine sollte hierbei nach der Addier - Schiebe - Methode durchgef├╝hrt werden, da die Daten bereits in serieller Form vorliegen. Hierbei w├╝rden die Amplitudenwerte zur Ansteuerung der Register verwendet, da diese Faktoren ohnehin geschoben werden m├╝ssen. Diese Methode ist sehr einfach f├╝r positive Zahlen, ben├Âtigt aber f├╝r vorzeichenbehaftete Zahlen, die nicht in 2er - Komplementdarstellung gespeichert sind eine relativ komplizierte Logik, weshalb meist die 2er - Komplement - Darstellung gew├Ąhlt wird.
Wie bereits bei der Diskussion erw├Ąhnt wurde, ist dieser Multiplizierer relativ langsam, weshalb diese Methode in dieser Ausf├╝hrung bald an die Grenzen ihrer M├Âglichkeiten gelangt. Wenn die Schiebezeit pro Bit 100ns betr├Ągt (=> Addierzeit des oberen Addierers <100ns), die Wortgr├Â├če 16 Bit betr├Ągt, und 16 Amplitudenwerte verarbeitet werden m├╝ssen (Filter 16.Ordnung), dann ist die h├Âchste verarbeitbare Datenrate

R=1 / (Wortgr├Â├če x Ordnung des Filters x Schiebezeit)=
=10_9 / (16 x 16 x 100) = 39062.5 Hz

Mit dieser Datenrate k├Ânnten h├Âchstens Frequenzen bis etwa 20kHz verarbeitet werden (Abtasttheorem).
Die Datenrate kann vergr├Â├čert werden, indem man Parallelverarbeitung einf├╝hrt.
Durch Verwendung mehrerer Schieberegister kann die Geschwindigkeit proportional vergr├Â├čert werden, ebenso durch Verwendung mehrerer Arithmetikeinheiten (AE)




































Bild 2.10 Struktur, Programm und Zust├Ąnde eines
FIR - Filters mit 2 AE's
Diese Schaltung w├Ąre nicht ganz doppelt so schnell wie die in Bild 2.9 dargestellte, wenn man die gleichen AE's voraussetzt. Hier w├╝rden x(n) bis x(n - 3) und x(n - 4) bis x(n - 6) getrennt und gleichzeitig bearbeitet, und anschlie├čend die beiden Ergebnisse addiert werden.

2.2.1 Kaskadiertes FIR - Filter

Die selbe Basisstruktur wie in Bild 2.10. kann auch f├╝r kaskadierte FIR - Filter verwendet werden. Bild 2.11 zeigt ein Beispiel f├╝r ein dreistufiges Filter, wobei jedes Filter 4. Ordnung ist, und Bild 2.12 zeigt die Realisierung mit einer AE.








Bild 2.11 Kaskadiertes FIR - Filter
























Bild 2.12 Realisierung mit einer AE

Der einzige Trick, der hierbei ben├Âtigt wird, ist das Retten der Ausg├Ąnge jeder Sektion, um sie zu geeigneter Zeit in das Schieberegister einzuspeisen.
F├╝r gr├Â├čere Geschwindigkeitsanspr├╝che kann das Filter aus Bild 2.11 ebenfalls durch Parallelverarbeitung beschleunigt werden. Hierbei gibt es eine besonders ins Auge springende M├Âglichkeit: Die Realisation jeder Filterstufe mit einer eigenen AE.

























































Bild 2.13 Programm und Zust├Ąnde f├╝r Filter aus Bild 2.12
























Bild 2.14 Struktur, Programm und Zust├Ąnde des Filters von
Bild 2.11 mit 3 AE's

2.2.2 Vollparallele Form eines FIR - Filters

Wie bereits in der Einleitung zu diesem Kapitel erw├Ąhnt, gibt es die M├Âglichkeit, das Prinzipschaltbild unter Verwendung von 6 Multiplizierern und 7 Addierern bei einem Filter 6. Ordnung praktisch direkt zu ├╝bernehmen.




















Bild 2.15 Verwendung von N parallelen Zweigen f├╝r ein
Filter N - ter Ordnung

In diesem Fall ist keine Zirkulation der Amplitudenwerte n├Âtig, sodass das Schieberegister nur mehr als angezapfte Verz├Âgerungsleitung ben├╝tzt wird. Wegen der Notwendigkeit dieser Anzapfungen verschwindet aber der Vorteil der LSI - Bausteine, die zwar s├Ąmtliche Amplitudenwerte problemlos speichern k├Ânnen, aber nicht auch gleichzeitig ausgeben. Die Schieberegister k├Ânnen auch hier gleichzeitig bitweise arbeiten, sodass eine Addier - Schiebe - Multiplikation m├Âglich wird. Hierbei w├Ąre es aber kaum ein zus├Ątzlicher Aufwand, wenn man alle Amplitudenwerte parallel speichert, und einen Schieberegistersatz mit voller Wortbreite verwendet, wodurch auch die Multiplizierer parallel arbeiten k├Ânnten (Array - Multiplizierer). Wenn man annimmt, dass die Multiplikationszeit zur Schiebezeit hinzuaddiert wird, wird noch zus├Ątzliche Zeit zum Addieren ben├Âtigt. Diese zus├Ątzliche Zeit kann aber vermieden werden, indem man Buffer (in diesem Fall=Speicher) an den gekennzeichneten Stellen einf├╝gt. Wenn man annimmt, dass die Addierzeit exakt gleich der Multiplikationszeit ist, dann tritt dadurch nur eine Verz├Âgerung des Ausgangssignals um eine Abtastperiode ein.

2.3. Ausf├╝hrung von digitalen Filtern mit R├╝ckf├╝hrung
(Infinite Impulse Response IIR)

Die Ausf├╝hrung von IIR - Filtern unterscheidet sich von jener von FIR - Filtern nur sehr wenig. Bild 2.16 zeigt ein IIR - Filter, das die selbe Grundstruktur wie das FIR - Filter von Bild 2.9. ben├╝tzt.


















Bild 2.16 Struktur eines IIR - Filters mit einer AE

Die Gleichung, nach der dieses Filter arbeitet ist:



Hierbei wird w├Ąhrend der ersten Multiplikation (Addier - Schiebe - Prinzip) das Wort y(n - 12) aus dem Schieberegister hinausgeschoben. W├Ąhrend der n├Ąchsten 11 Multiplikationen zirkuliert das Schieberegister, d.h. die am Ende herausgeschobenen Bits werden am Anfang wieder eingef├╝gt. Das Ergebnis y(n) ist nicht verf├╝gbar, solange nicht bx(n) berechnet ist. Deshalb darf w├Ąhrend der Berechnung von bx(n) das Schieberegister nicht rotiert werden. Im letzten Schiebezyklus wird dann keine Berechnung mehr durchgef├╝hrt, sondern nur mehr y(n) in das Schieberegister hineingeschoben.
In typischen Anwendungen betr├Ągt die Abtastfrequenz 8kHz und die Abtastzeit 125us. Bei einer Wortl├Ąnge von 16 Bit werden 16 x (12 + 2) Taktzyklen f├╝r einen Abtastvorgang eines Filters 12.Ordnung ben├Âtigt, was zu einer Taktfrequenz von etwa 2MHz f├╝hrt, die mit LSI - Bausteinen leicht zu bew├Ąltigen ist.

2.3.1 Kaskadierte IIR - Filter

Bild 2.17 zeigt das Prinzipschaltbild einer Kaskade von 3 Filtern 2. Ordnung, von denen jedes 2 Pole und 2 Nullstellen hat.










Bild 2.17 IIR - Filter als Kaskade 3er Filter 2.Ordnung

Bild 2.18 zeigt Struktur, Programm und Zust├Ąnde einer Realisation dieses Filters mit 2 AE's. Die Struktur ist vergleichbar mit dem fr├╝her gezeigten mit 1 Bit breiten Schieberegister und Addier - Schiebe Multiplizierer. Die Aufgabenstellung der beiden AE's ist so verteilt, dass eine die Vorw├Ąrts - Summen berechnet (AE2) und die andere die in das Schieberegister einzuspeisenden Summen (AE1).
Da die in das Schieberegister einzuspeisenden Daten vorhanden sein m├╝ssen, bevor die Vorw├Ąrtssummen endg├╝ltig berechnet werden k├Ânnen, folgen auf 2 Schiebezyklen 2 Zyklen, in denen nicht geschoben wird, sondern nur die AE's arbeiten. W├Ąhrend dieser Zeit wird zun├Ąchst das in das Schieberegister einzuspeisende Datum berechnet, und anschlie├čend unter Verwendung dieses Datums die Vorw├Ąrtssumme berechnet, die f├╝r die ersten beiden Filter im x_i - Register abgelegt wird, und f├╝r das letzte Filter an den Ausgang gelangt.
Dieses Filter ben├Âtigt insgesamt 7 Schiebezyklen mit Berechnungen und 6 Zyklen, in denen nur gerechnet wird. Die reinen Schiebezyklen, in denen nur die x_0(n), x_1(n) und x_2(n) weitergeschoben werden, k├Ânnen w├Ąhrend der zweiten reinen Berechnung stattfinden.












































Bild 2.15 IIR - Filter von 2.17 mit 2 AE's

2.4. gemultiplexte Filterb├Ąnke

Nur sehr selten sind in der Praxis so einfache Konfigurationen wie die hier gezeigten in Verwendung. Wesentlich h├Ąufiger sind Filterb├Ąnke, die IIR oder FIR - Filter verwenden, wo m├Âglicherweise jedes Filter eine Kaskade oder eine parallele Ausf├╝hrung ist. Desto mehr Filter gemultiplext werden k├Ânnen, desto gr├Â├čer ist der Vorteil, der durch die Verwendung von digitalen Filtern erzielt werden kann, da man speziell die Speicher leicht an die speziellen Erfordernisse der zus├Ątzlichen Zust├Ąnde anpassen kann. Vorsicht ist hierbei nur geboten, wenn man zu viele verschiedene Funktionen mit einer Filtereinheit realisieren will, da dann die Kontrollogik schnell anw├Ąchst.
Die Bilder 2.19 und 2.20 zeigen ein Beispiel der Realisation von 3 getrennten FIR - Filtern mit einer Filtereinheit.























Bild 2.19 Filter, die zu multiplexen sind

Bei der gezeigten Konfiguration wird der AE jeweils das passende Eingangsdatum zugef├╝hrt, und ├╝ber den Distributor werden jeweils die richtigen Daten an die Ausg├Ąnge verteilt. Im Schieberegister zirkulieren jeweils die Daten aller 3 Filter.






































Bild 2.20 Hardware - Konfiguration und Programm f├╝r
gemultiplexte FIR - Filter
3. Digitale Filter mit Digitalen Signalprozessor IC's
(DSP)

3.1 Allgemeine Features von DSP

Digitale Signalprozessoren m├╝ssen f├╝r Echtzeitverarbeitung einen sehr hohen Datendurchsatz haben, der gr├Â├čer ist als jener von herk├Âmmlichen Mikroprozessoren. Da aber die Taktraten bei Mikroprozessoren in der Regel bereits knapp am technologisch sinnvoll Machbaren liegen, stellt sich die Frage welche Mittel man anwenden kann, um einen DSP schneller zu machen?
Zum einen liegt die Antwort in der Architektur der DSP's. Diese Prozessoren werden immer mit einer relativ gro├čen Wortbreite (16 oder 32 Bit) ausgef├╝hrt, und haben Fest - oder Flie├čkomma - Arithmetik bereits hardwarem├Ą├čig implementiert. Dadurch ist bereits eine gewisse Parallelverarbeitung von Informationen m├Âglich.
Au├čerdem werden sie oft mit einer Pipeline - Architektur gebaut, die zwar noch keine vollst├Ąndige Parallelverarbeitung ausmacht, aber immerhin garantiert, dass Arbeitsschritte, die nicht zwingend hintereinander ablaufen m├╝ssen, gleichzeitig erfolgen. Diese F├Ąhigkeit sei an folgendem Beispiel erkl├Ąrt: Um einen Befehl abzuarbeiten ist es notwendig, dass dieser erst einmal aus dem Programmspeicher in den Prozessor geladen wird (Instruction - fetch), dann entschl├╝sselt wird, was auszuf├╝hren ist, (instruction - decode) und schlie├člich muss der Befehl auch abgearbeitet werden (execution). Der Prozessor gewinnt an Geschwindigkeit, wenn er die F├Ąhigkeit besitzt. w├Ąhrend der Ausf├╝hrung eines Befehls den n├Ąchsten bereits zu laden und zu dekodieren. Dieses Verfahren verwenden ├╝brigens nicht nur DSP, sondern auch die Mikroprozessoren der letzten Generation (Intel 80386).
Eine weitere Methode zur Beschleunigung eines Prozessors ist die Implementierung der Harvard - Architektur. Auch diese stellt einen Schritt in Richtung Parallelverarbeitung dar. Dabei werden Programm und Daten in getrennten Bereichen gespeichert, und auch ├╝ber eigene Busse gef├╝hrt. Allerdings f├╝hrt dieses Verfahren schnell zu hoher Komplexit├Ąt der Hardware, weshalb oft folgender Weg beschritten wird: Innerhalb des Prozessors wird der Bus getrennt gef├╝hrt, au├čerhalb wird durch Multiplextechnik die doppelte Busstruktur auf eine einfache reduziert, um den Aufwand an extern erforderlicher Hardware gering zu halten. Welcher Architektur im konkreten Anwendungsfall der Vorzug zu geben ist, h├Ąngt davon ab, wie zeitkritisch die Applikation ist, bzw. wie weit ├Âkonomische Gesichtspunkte ber├╝cksichtigt werden m├╝ssen. Der Zeitfaktor wird aber in der Regel dadurch gemildert, dass die meisten DSP's bereits internes RAM und ROM besitzen, das sie ├╝ber die getrennten Busse ansprechen k├Ânnen. Ein wesentlicher Faktor zur Erh├Âhung der Arbeitsgeschwindigkeit ist die Implementierung eines Hardware - Multiplizierers, da die Multiplikation als typischer Befehl in signalverarbeitenden Algorythmen bei einer Realisierung ├╝ber Software sehr viel Zeit in Anspruch nehmen w├╝rde. Ein moderner 16x16 Bit Hardware - Multiplizierer ben├Âtigt zur Produktbildung etwa 100 bis 200ns, w├Ąhrend selbst moderne Mikroprozessoren daf├╝r einige Mikrosekunden ben├Âtigen. Wenn man bedenkt, dass etwa in einem digitalen Audiosystem zur Abarbeitung einfacher Filteralgorythmen maximal 30us zu Verf├╝gung stehen und dass dabei mehrere Multiplikationen sowie Additionen und Schiebeoperationen (neben Ein - Ausgabebefehlen) durchzuf├╝hren sind, wird der Einsatz spezieller Prozessoren unentbehrlich, wenn man nicht auf eine "diskrete" Logik wie in Abschnitt 2 beschrieben zur├╝ckgreifen will.


























Bild 3.1 Blockschaltbild eines gebr├Ąuchlichen DSP IC's
mit Harvard - Architektur und Hardware Multiplizierer
(Texas Instruments TMS 32010)

Die bisher genannten Methoden zur Vergr├Â├čerung des Datendurchsatzes sind nicht unbedingt typisch f├╝r DSP's, sondern der Technologie von Gro├črechnern entlehnt. Die zweite Kategorie von Ma├čnahmen, die einen Signalprozessor f├╝r eine bestimmte Aufgabe geeignet oder ungeeignet erscheinen l├Ąsst, wird dadurch gesetzt, dass sein Anwendungsgebiet bekannt ist. Der Zugang dazu wird sowohl ├╝ber Hard - als auch Software erm├Âglicht.
Von der Softwareseite erfolgt die Probleml├Âsung ├╝ber die Gestaltung des Befehlssatzes. Da der Prozessor ja nur f├╝r ein ganz bestimmtes Anwendungsgebiet gedacht ist, kann der Befehlssatz spezielle Instruktionen enthalten, die die Verarbeitung bestimmter Algorythmen beg├╝nstigen. Dar├╝ber hinaus kann eine Instruktion mehrere Operationen ausf├╝hren. Damit kann der f├╝r einen speziellen Anwendungsfall gedachte DSP unter Umst├Ąnden mit einem einzigen Befehl das erreichen, wof├╝r ein herk├Âmmlicher Mikroprozessor ein ganzes Unterprogramm ben├Âtigen w├╝rde. So kann z.B. bei einem Signalprozessor in einem einzigen Befehl ein gerade erstelltes Produkt zum Akkumulator addiert werden, das Multiplikanden - Register mit dem n├Ąchsten Wert geladen und dieser Wert im Datenram auf die n├Ąchste Seite kopiert werden. Alle drei Einzeloperationen sind bei der Realisierung eines Digitalfilters von gr├Â├čter Wichtigkeit, und die Ausf├╝hrungszeit liegt bei einem DSP in der Gr├Â├čenordnung von etwa 200ns. Au├čerdem beschleunigen Bit - Testbefehle, die ein bestimmtes Bit in einem Wort testen k├Ânnen ohne vorher maskieren zu m├╝ssen, den Ablauf.
Das Wissen um das spezielle Einsatzgebiet erlaubt die entsprechende Gestaltung des Prozessor - Hardwareaufbaus. Die M├Âglichkeiten reichen hier vom Einsatz verschiedener ALU's f├╝r verschiedene Aufgaben, die dann gleichzeitig gel├Âst werden k├Ânnen ├╝ber spezielle Register, die bestimmte Befehle abarbeiten, ohne dass die Daten dazu in den Akkumulator transportiert werden m├╝ssen, bis zu R├╝ckkopplungswegen, die bestimmte Befehle (z.B. multipliziere und akkumuliere) erst erm├Âglichen. Daneben k├Ânnen noch Wiederholz├Ąhler (f├╝r rekursive Algorithmen) und Barrelshifter (der Befehl enth├Ąlt die Anzahl der Stellen, um die der Operand verschoben wird, und erspart damit mehrmaligen Aufruf eines Befehls, der nur imstande ist, um ein Bit zu verschieben) vorgesehen sein. Ein entsprechend gro├čer RAM - Bereich auf dem Prozessorchip erm├Âglicht die sinnvolle Nutzung der getrennten Programm - und Datenbusstruktur, wobei auch hier der Befehlssatz den Datenaustausch zwischen Programm und Datenbus wirksam unterst├╝tzt. So kann mit einem einfachen Befehl ein Abschnitt des Programmspeichers in den Datenspeicher ├╝bertragen werden. Filterkoeffizienten k├Ânnen damit in vergleichsweise gro├če externe Programm - RAM's (oder EPROM's) abgelegt werden und bei Bedarf in den kleinen internen Datenspeicher des Signalprozessors geholt werden, da die ALU oft nur Daten vom internen RAM direkt verarbeiten kann. Einige Hersteller bieten auch erweiterte Versionen an, bei denen ein schneller Analog - Digital - Wandler auf dem Chip integriert ist, was bei qualitativ weniger kritischen Anwendungen Vorteile bringen kann.

3.2 DSP mit Harvard - Architektur

Diese Art von DSP soll am TMS 320xx von TI dargestellt werden.

Das Blockschaltbild dieses Prozessors ist bereits in Bild 3.1 dargestellt.
Die wichtigsten Merkmale dieses Einchip - Computers sind: 200ns Instruktionszyklus, 32 Bit Arithmetikeinheit, 16x16 Bit Parallelmultiplizierer (ben├Âtigt f├╝r eine Multiplikation nur einen Zyklus), 0..16 Bit Barrel - Shifter, 288 Byte Daten RAM (144x16), 3kByte Programm - Rom (1,5k x 16), die extern auf 8 kByte erweiterbar sind.
Dieser Prozessor arbeitet mit einer Harvard Architektur mit 2 getrennten 16 Bit - Bussen f├╝r Programm und Daten. Durch diese Struktur ist es m├Âglich, Befehle zeitlich ├╝berlappend aufzunehmen und auszuf├╝hren.

Architektur:

Das Herzst├╝ck des Prozessors ist eine schnelle Arithmetik - einheit, die aus einer 32 Bit - ALU, einem 16 Bit Shifter, dem 16x16 Bit Parallelmultiplizierer sowie einem 32 Bit Akkumulator besteht. Daten werden entweder aus dem RAM ├╝ber den Shifter oder aus dem Produktregister P in die ALU geladen. Daten aus dem RAM mit einer Wortbreite von 16 Bit werden nach Schiebeoperationen mit Vorzeichenzusatz f├╝r Zweierkomplement - Arithmetik auf 32 Bit erweitert. Arithmetik - Operationen mit 32 Bit aus dem RAM werden auch durch eine Kombination spezieller Befehle, bei denen die Vorzeichenerweiterung im Shifter unterdr├╝ckt wird, unterst├╝tzt. Die ALU verf├╝gt auch ├╝ber logische Operationsanwendungen f├╝r Steueranwendungen. Eine S├Ąttigungs - ├ťberlauf - Betriebsart dient zur Simulation von S├Ąttigungsereignissen in Signalverarbeitungssystemen. Der 32 Bit Akkumulator wird im Multiplexbetrieb auf den 16 Bit Datenbus umgeschaltet, damit die Resultate im RAM gespeichert werden k├Ânnen. Die h├Âherwertigen Akkumulatorwerte k├Ânnen auch mit einem vorgegebenen Offset gespeichert werden, um die Skalierung der Resultate zu erm├Âglichen.

Adressierungsarten:

Der Prozessor unterst├╝tzt 4 Adressierungsarten. Die erste ist die direkte Adressierung, sie erfolgt von einem 7 Bit - Feld der Instruktion und einem Page - Register.Der Speicher ist f├╝r die direkte Adressierung in 128 Wort - Seiten aufgeteilt.
Die zweite ist die indirekte Adressierung, bei der eines der 2 Hilfsregister (AR) Verwendung findet. Diese Register unterst├╝tzen die automatischen Inkrement - /Dekrement - Operationen parallel zu Speicherbez├╝gen und Arithmetikoperationen. Daraus ergeben sich zwei verschiedene Adressierungsarten. Die Auswahl des AR - Registers als Quelle f├╝r eine Adresse wird durch das ARP - Register festgelegt. Der Datenspeicher ist so aufgebaut, dass ein Wort auf die n├Ąchsth├Âhere Adresse vom derzeitigen Speicherplatz in einem Maschinenzyklus dupliziert werden kann, w├Ąhrend andere Operationen parallel ablaufen. Au├čerdem sind einige direkte Operationen m├Âglich, bei denen Teile des Instruktionsworts als Daten Verwendung finden. Aus diesem Grund k├Ânnen Konstanten wie z.B. Filterkoeffizienten Teil des Programms sein.
Da Programm - und Datenbus getrennt sind, verf├╝gt der Programm - Z├Ąhler ├╝ber einen eigenen Inkrementer und einen 4 - Ebenen - Stack f├╝r die Unterprogrammsteuerung.

Software:

Der Prozessor verwendet 16 und 32 Bit Instruktionen. Bei Unterprogrammen und Interrupts wird der gesamte Maschinen - Kontext gesichert. Verzweigungen k├Ânnen bei den meisten arithmetischen Bedingungen, bei ├ťberlauf, bei Register = 0 und ohne Bedingung erfolgen. Es ist ebenfalls m├Âglich, den Akkumulator - Inhalt als Programm - ROM - Adresse zu verwenden, um an Konstanten, die im ROM gespeichert sind, zu gelangen, oder zum Unterprogrammaufruf bei datenabh├Ąngigen Verarbeitungsvorg├Ąngen. Der Prozessor ist zur Unterst├╝tzung von 2 Arten der Programm - Speicher - Operationen konfiguriert. Die erste Konfiguration (TMS320M10) besitzt ein Programm - ROM auf dem Chip, und eignet sich daher f├╝r Einchip - Anwendungen mit hoher St├╝ckzahl. Eine Kombination von internem ROM (1,5 k Worte) und externem Programmspeicher (2,5 k Worte) ist ebenfalls m├Âglich, und kann z.B. bei Systemen mit festen Kernroutinen und unterschiedlichen Anwendungs - System - Konfigurationen verwendet werden. Die zweite Ausf├╝hrung (TMS 32010) unterst├╝tzt 4 k Worte externen Programmspeicher und unterdr├╝ckt das interne ROM. Diese Ausf├╝hrung erm├Âglicht, dass das Benutzer - Programm in einem externen 4 k Speicher untergebracht ist, und die Entwicklungssystem - Software in dem Programm - ROM auf dem Chip. Daher kann dieses Bauelement nicht nur zur Unterst├╝tzung der Eigen - Emulation, sondern auch als das eigene Entwicklungssystem verwendet werden. Das Interface des externen Programmspeichers arbeitet mit der selben Geschwindigkeit, wie das interne ROM, wodurch Echtzeit - Entwicklung und - Ausf├╝hrung m├Âglich ist.
Ein - /Ausgangsoperationen werden ├╝ber einen parallelen 16 Bit Bus ausgef├╝hrt, auf dem 8 Kan├Ąle definiert sind. Der Prozessor kann E/A - Operationen mit einer Rate von 40 MBaud ausf├╝hren. Ein Polling - Eingang erm├Âglicht softwarem├Ą├čige E/A - Steuerung, au├čerdem ist ein Interrupt - Anschlu├č f├╝r Hardware E/A und Multitasking vorgesehen.

Chip

Hergestellt wird der Prozessor in einem 3um Silizium - Gate - NMOS - Poze├č. Er umfa├čt eine Chipfl├Ąche von 43,81 mm_2. Die Bausteine sind in einem 40poligem DIL - Geh├Ąuse untergebracht und weisen eine Verlustleistung von 950mW auf. Bei einer maximalen Taktfrequenz von 20MHz betr├Ągt die Befehls - Rate 5 Millionen Instruktionen/s. Verschiedene Testarten sind zur Produktions├╝berwachung und Ausbeuteanalyse vorgesehen. F├╝r Pr├╝fzwecke und Zuverl├Ą├čigkeitsanalysen sind Prozessor, Datenspeicher und PROM auf dem Chip getrennt ansprechbar.

3.3 DSP mit Datenflu├č - Methode

Der bisher besprochene 320xx ist trotz verbesserter Architektur ein Von - Neumann - Computer, bei dem ein Zyklus das Senden der Adresse, Empfangen des Datums, Entschl├╝sseln und Verarbeiten umfa├čt. Der hier beschriebene uPD7281 ("Image - Pipelined - Processor") verwendet die Datenflu├č - Methode.

3.3.1 Datenflu├čmethode

Der Unterschied in der Arbeitsweise eines Computers, der die Datenflu├čmethode anwendet sei an einem einfachen Beispiel dargestellt; der Berechnung des folgenden Ausdrucks:

Y = AxB + CxD

Ein von Neumann Computer berechnet zun├Ąchst beide Produkte, die er anschlie├čend addiert (Bild 3.2). Hierbei ist nicht einzusehen, warum er eigentlich die beiden Multiplikationen Y1 = AxB und Y2 = CxD nicht gleichzeitig ausf├╝hrt.













Bild 3.2 Flu├čdiagramm einer Berechnung mit einem
Von - Neumann - Computer

Ein Datenflu├č - Computer erm├Âglicht diese Art von Parallel - Operationen. Er verf├╝gt ├╝ber eine Anzahl datengetriebener Arithmetik - Einheiten, die die Operationen beginnen, sobald Daten einlangen. Dieser Vorzug erm├Âglicht den asynchronen Betrieb jeder Arithmetik - Einheit. Zus├Ątzlich zu diesen Arithmetik - Einheiten besitzt der Datenflu├č - Computer einen Flu├č - Controller, dessen Aufgabe es ist zu bestimmen, wohin welche Daten gesandt werden sollen. Die Daten selbst sind mit einer ID (Identifikation) versehen und bezeichnen ihren Ursprung.













Bild 3.3 Datenflu├č - Methode

Aus diesem Grund ist es nicht erforderlich, die Instruktionen durch das Programm zu beschreiben, und es ist nicht n├Âtig, die Reihenfolge der Abarbeitung anzugeben. Es muss lediglich der Flu├č der zu verarbeitenden Daten beschrieben werden.
Da die Flu├čdiagramme f├╝r Von - Neumann - Computer weniger geeignet sind, Datenfl├╝sse und Parallelverarbeitung innerhalb eines Programmes auszudr├╝cken, werden sogenannte Flowgraphs_*) angewendet, um solche Programme schematisch
_ *) Flowgraphs bestehen aus Knoten, die den Operanden eines Ausdrucks entsprechen (den auszuf├╝hrenden Befehlen) und Richtungssegmenten, oder "arcs", die den Datenfl├č bezeichnen. Flowgraphs bringen weniger eine sequentielle Abarbeitung zum Ausdruck, als vielmehr die Parallelverarbeitung bestimmter Prozesse. Die DAten, die zwischen den Knoten flie├čen werden als Token bezeichnet. Jene Information, die die Hardware steuert, wird den Token hinzugef├╝gt, sobald sie durch die verschiedenen Hardware - Stufen flie├čen
darzustellen. Der Flowgraph f├╝r die Berechnung von

Y = AxB + CxD

ist in Bild 3.4 dargestellt.













Bild 3.4 Flowgraph einer Berechnung mit einem Datenflu├č -
Computer

Hier wird veranschaulicht, dass die beiden Operationen f├╝r Y1 = AxB und Y2 = CxD parallel ausgef├╝hrt werden. Der Unterschied zu einem Von - Neumann - Computer wird noch augenf├Ąlliger, wenn die Instruktionen tats├Ąchlich auf einem Datenflu├č - Computer ausgef├╝hrt werden. Um in einem Von - Neumann - Computer eine Instruktion ausf├╝hren zu k├Ânnen, muss das Objekt - Programm zun├Ąchst von jener Stelle des Speichers ausgelesen werden, an der es abgelegt wurde. Die abgerufene Instruktion wird decodiert, und die f├╝r die Ausf├╝hrung erforderlichen Daten werden zusammengestellt. Ein Gro├čteil der Ausf├╝hrungszeit f├Ąllt damit dem Speicherzugriff zum Opfer. Daher ist die traditionelle Computer - Architektur f├╝r Hochgeschwindigkeitsverarbeitung nicht ideal. Im Datenflu├č - Computer werden dagegen, sobald das Objekt - Programm gesetzt ist, die Instruktionen ausgef├╝hrt, sobald die n├Âtigen Daten anstehen.
Als weiteres Beispiel sei die logische UND - Verkn├╝pfung zweier Daten angef├╝hrt. Hier nimmt man an, dass die Ausf├╝hrungszeit eines herk├Âmmlichen Von - Neumann - Computers gleich sei mit der eines Datenflu├č - Computers (von den bereitgestellten Daten ausgehend) Bild 3.5 zeigt, dass auch hier der Datenflu├č - Computer den herk├Âmmlichen Computer bei weitem ├ťbertrifft.









Bild 3.5 Zeitdiagramm f├╝r einen Von - Neumann - und einen
Datenflu├č - Computer

Ein weiterer Vorzug von Computern, die sich der Datenflu├čmethode bedienen, ist der hohe ├ťberschneidungsgrad der abgearbeiteten Operationen. W├Ąhrend beispielsweise ein Proze├č ausgef├╝hrt wird, kann gleichzeitig die Zusammenstellung von Daten f├╝r den n├Ąchsten Proze├č ablaufen. Befinden sich diese Daten in einem Speicher, kann die effektive Zugriffszeit nach au├čen hin nahezu auf Null gesenkt werden.













Bild 3.6 Prozessausf├╝hrungen in einem Datenflu├č - und
einem Von - Neumann - Computer

Zusammenfassend kenn ein Datenflu├č - Computer, verglichen mit einem Von - Neumann - Computer die Anzahl der Speicherzugriffe drastisch reduzieren, und die Zugriffszeit besonders effektiv nutzen.

3.3.2 NEC uPD7281 "Image Pipelined Processor"

Der Datenflu├č - Computer in Bild 3.2 enth├Ąlt mehrere Arithmetik - Einheiten. Wird diese Vielzahl von Einheiten in einem einzelnen Bauteil zusammengefa├čt, bedeutet das eine betr├Ąchtliche Steigerung der Verarbeitungsgeschwindigkeit. Der Flu├čcontroller in einem solchen Baustein m├╝sste aber ├╝ber alle Ma├čen komplex sein; da jede Einheit nur eine spezifische Operation ausf├╝hrt, ist bei komplizierteren Operationen eine entsprechend hohe Anzahl solcher Einheiten beteiligt. Zus├Ątzlich weist das System einen weiteren Schwachpunkt auf: auch wenn viele Einheiten zum Einsatz kommen, ist das Risiko sehr gro├č, dass durch Datenkonzentration an einer Arithmetik - Einheit die Verarbeitung zusammenbricht. Aus diesem Grund findet im uPD7281 eine einzige universelle ALU Verwendung.
Im vorher beschriebenen Computer ist jeder Einheit eine bestimmte Aufgaabe zugedacht. Welche Einheit angesprochen wird, h├Ąngt vom Identifizier - Feld des Token ab. Im Fall des uPD7281 m├╝ssen jedoch die Daten, die die Art der Operation bestimmen, im Token enthalten sein. Der an die ALU kommende Token enth├Ąlt daher einen Operationscode. Weiters kann der in Bild 3.3 gezeigte Flow - Controller in folgende vier Bl├Âcke gegliedert werden:

Link Table: Checkt die IDs der ankommenden Token und leitet den n├Ąchsten ID - Wert und die OP - Code Adresse zum Token
Function Table: F├╝gt dem Token einen OP - Code hinzu
Data Memory: Steuert die Daten, die zwei Token f├╝r eine bestimmte Operation zusammengetragen haben
Queue: Steuert den Eingang der Token zu den Verarbeitungseinheiten






















Bild 3.7 Blockschaltbild des uPD7281

Wenn die Token die erw├Ąhnten Bl├Âcke durchlaufen, werden ihnen Daten hinzugef├╝gt und einige Token zu Einzel - Token zusammengefa├čt. Anschlie├čend gelangen sie in die Verarbeitungseinheit oder den Ausgangscontroller. Das Format der den uPD7281 verlassenden Token (entweder ├╝ber den Ausgangscontroller oder ├╝ber die Verarbeitungseinheit zur Link - Table) ist gleich dem Format jener Token, die als Eingangsinformation an den Eingangscontroller gelangen. Alle diese Konzepte sind in Bild 3.7 dargestellt. Durch den pipelineartigen Datenflu├č zwischen den Funktionsbl├Âcken wird die Weiterleitung der Daten zwischen den Bl├Âcken vereinfacht. Jeder dieser Link - Table -, Function - Table - und Data - Memory - Bl├Âcke ist im RAM konfiguriert, sodass Programme einfach modifiziert werden k├Ânnen, indem die Inhalte dieser Speicher neu geschrieben werden. Diese Methode wird auch programmierbare Pipeline - Methode genannt.
Obwohl der uPD7281 nur eine einzige Arithmetik - Einheit besitzt, k├Ânnen mehrere Prozesse glechzeitig ablaufen. Da der externe Speicherzugriff, anders als bei Von - Neumann - Computern, nur aus dem Lesen und Schreiben von Daten besteht, kann die Gesamtanzahl von Speicherzugriffen auch bei dieser Realisation eines Datenflu├č - Computers drastisch gesenkt werden. Au├čerdem ist durch die Parallelverarbeitung die Speicherzugriffszeit als Teil der Bearbeitungszeit nahezu nicht mehr erkennbar.

Funktionsbeschreibung

Wie Bild 3.7 zeigt, besteht die ringf├Ârmige Pipeline aus 5 Funktionsbl├Âcken:
- Link Table (LT)
- Function Table (FT)
- Data Memory (DM)
- Queue (Q)
- Processing Unit (PU)
Der durch den Input Controller (IC) einlangende Token wird an die Link - Table weitergef├╝hrt und im Pipeline - Ring so oft als n├Âtig bearbeitet. Ist diese Bearbeitung abgeschlossen, so wird der Token im Output Queue abgestellt und ├╝ber den Output Controller (OC) zum Ausgang weitergef├╝hrt.
Bevor irgendeine Bearbeitung beginnt, l├Ądt der Host - Prozessor den Objekt - Code in die Link - Table und die Function Table des uPD7281 unter Verwendung speziell formatierter Eingangs - Token. Zu diesem Zeitpunkt k├Ânnen auch Konstanten zur Abspeicherung an den Datenspeicher gesandt werden. Die Inhalte der Link - Table und der Function - Table sind eng verwandt mit der grafischen Darstellung einer Berechnung. Wenn ein Rechenprozess grafisch dargestellt wird, zeigt er gew├Âhnlich einen gerichteten Datenflu├č. In einer derartigen Darstellung bedeuten die B├Âgen (Ecken, Verbindungen usw.) den Eintritt in die Link - Table. Ein Knoten im grafischen Datenflu├č bezeichnet eine Operation. Die Art der Operation wird zusammen mit der Identifikations - Information ├╝ber den austretenden Bogen in der Function - Table angegeben.
Da der uPD7281 in einem Multiprozessorsystem kaskadiert werden kann, muss ihm w├Ąhrend des Reset eine Modul - Nummer zugeteilt werden. Wenn nun w├Ąhrend des normalen Betriebs ein Token zum Input - Controller gelangt, dann entscheidet dieser anhand der Information im Modul - Nummer - Feld des ankommenden Token, ob er ihn akzeptiert, oder nicht. Wenn die Modul - Nummer des Token von der des uPD7281 abweicht, wird der Token ├╝ber den Output - Controller wieder nach au├čen geschickt. Besitzt der Token die selbe Modul - Nummer,















Bild 3.7 Kaskadierung von uPD7281 (maximal 14)

entfernt der Input - Controller das Modul - Nummern - Feld, und schickt den verbleibenden Teil des Token in die Link - Table zur Weiterverarbeitung. Sobald ein Token in die Pipeline eintritt, indem er Zugang zur Link - Table erhlaten hat, ben├Âtigt er 7 Pipeline - Clockzyklen, um den Ring einmal zu durchlaufen. Je einen Pipeline - Zyklus ben├Âtigen die Link - Table, die Function - Table und das Data - Memory, um einen Token zu bearbeiten; zwei Pipeline - Zyklen beanspruchen der Queue und die Processing - Unit. Die Queue und die Processing - Unit sind aus zweistufigen Pipelines aufgebaut. Wenn sich sieben Token gleichzeitig in der Ring - Pipeline befinden, ist diese voll besetzt, und h├Âchstm├Âgliche Parallelverarbeitung findet statt.
Wenn ein Token durch alle Funktionsbl├Âcke des uPD7281 flie├čt, ├Ąndert sich dessen Struktur gewaltig. Ein innerhalb der Ring - Pipeline flie├čender Daten - Token besitzt mindestens ein 7 Bit breites Identifizier - Feld (ID), und ein 18 Bit breites Datenfeld. Das Identifizier - Feld dient als Zugriffsadresse auf das Link - Table - Memory. Wenn ein Token auf das LT - Memory zugreift, wird dessen ID - Feld durch ein im LT - Memory gespeichertes ID - Feld ersetzt.
Das Datenfeld eines Token besteht aus einem Control - Bit, Vorzeichen - Bit und 16 Bit Daten. Ein Token kann bis zu zwei Datenfelder sowie je nach Bedarf auch noch ein OP - Code - Feld besitzen.

Prozessoreigenschaften

Schnelle Datenverarbeitung

Die hier verwendete Architektur ist besonders geeignet zur schnellen Handhabung von iterativen Operationen, wie sie zum Beispiel in der Bildverarbeitung vorkommen. Bei bisherigen Prozessoren, die nach dem Pipeline - Verfahren arbeiteten, waren die ausf├╝hrbaren Operationen durch die Hardware bereits festgelegt. Im uPD7281 k├Ânnen alle Operationen im User - Programm beliebig ge├Ąndert werden, au├čerdem k├Ânnen mehrere Prozesse gleichzeitig ablaufen.

Schnelle Arithmetik - Operationen

Der uPD 7281 ben├Âtigt f├╝r alle Operationen (einschlie├člich Multiplikation) eine Verarbeitungszeit von 200ns (bei 10MHz), was einer Arbeitsgeschwindigkeit von 5MIPS (Millionen Instruktionen pro Sekunde) entspricht.

Problemlose Multiprozessor - Konfiguration

Die Hochgeschwindigkeitsverarbeitung l├Ąsst sich durch den Einsatz mehrerer uPD7281 noch verbessern. Hierbei ist die einfache Zusammenschaltung (vergleiche Bild 3.8) besonders g├╝nstig.

Schnelle Daten I/O

In einer Multiprozessor - Konfiguration stellt oft der Datenbus den leistungsbegrenzenden Engpass dar. Um dies Auszuschalten verwendet der uPD7281 getrennte Ein - und Ausgangsleitungen und erreicht so wesentlich verbessete ├ťbertragungsraten. Eine asynchrone Handshaking - Methode auf 2 Leitungen verringert hierbei den externen Schaltungsaufwand wesentlich.
Anhang: Literaturverzeichnis

Theory and Application of Digital Signal Processing
Lawrence R. Rabiner
Bernard Gold
Verlag: Prentice - Hall Inc.

32 Bit Mikrocomputer f├╝r Signalverarbeitung und
Prozessteuerung
P. von Bechen
TI Sonderdruck aus Elektronik 22 / 5.11.1982

DSP: Ein zugeschnitzter uP
J. Thoma
F. Pavuza
ES 6 / Juni 1986

Signalprozessor f├╝r die Bildverarbeitung
R. Hell
ES 6 / Juni 1986

5752 Worte in "deutsch"  als "hilfreich"  bewertet