24
Mentor: Labor Computertechnik Mi, 11. Februar 2004 Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens Labor Computertechnik (LCT) Rechnerstrukturen Eine Einführung in digitale Signalprozessoren(DSP) Ausgearbeitet und Vorgetragen von: Boris Häberlein und Benjamin Martens Mentor: Prof. Dr. T. Risse Vorgetragen am: 14.01.2004 Abgabe der Ausarbeitung am: 21.01.2004 1/24

Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

  • Upload
    hatuyen

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Labor Computertechnik (LCT)Rechnerstrukturen

Eine Einführung in digitale Signalprozessoren(DSP)

Ausgearbeitet und Vorgetragen von:Boris Häberlein

und Benjamin Martens

Mentor:Prof. Dr. T. Risse

Vorgetragen am:14.01.2004

Abgabe der Ausarbeitung am:21.01.2004

1/24

Page 2: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

InhaltsverzeichnisEinleitung............................................................................................................................................. 4Geschichte der Digitalen Signalverarbeitung....................................................................................... 4Vorteile digitaler Signalverarbeitung................................................................................................... 4DSP vs. GPP (General Purpose Computer)..........................................................................................5

Datenpfad.........................................................................................................................................5Befehlssatz....................................................................................................................................... 5Speicherarchitektur.......................................................................................................................... 6

DSP.........................................................................................................................................6GPP.........................................................................................................................................6

Adressierung.................................................................................................................................... 6Weitere Eigenschaften des Digitalen Signalprozessors........................................................................7Anwendungsgebiete digitaler Signalprozessoren................................................................................. 7

Consumerbereich............................................................................................................................. 7Telekommunikation......................................................................................................................... 7Automobilbereich............................................................................................................................ 7Industrie........................................................................................................................................... 7Militär und Forschung..................................................................................................................... 7

Anforderungen an DSPs....................................................................................................................... 8Allgemeiner Aufbau eines DSP[1]....................................................................................................... 8MAC-Operation....................................................................................................................................9Speicherorganisation............................................................................................................................ 9Adressierungsarten............................................................................................................................. 10Schleifenbefehle................................................................................................................................. 10Kommunikation..................................................................................................................................10Der Digitale Signal Prozessor TMS320C50 von Texas Instruments [4]............................................11

Architektur..................................................................................................................................... 11Central Arithmetic Logic Unit (CALU).........................................................................................12Multiplizierer, Produktregister und temporäres Register (TREG0).............................................. 13ALU und Akku's............................................................................................................................ 13Die Parallel Logic Unit (PLU)....................................................................................................... 15Auxiliary Register Arithmetik Unit (ARAU)................................................................................ 16Programm Kontrolle...................................................................................................................... 17

Legende zu Abb. 4................................................................................................................17Program Counter (PC)..........................................................................................................18Hardware Stack.................................................................................................................... 19

Adressierungsarten.........................................................................................................................20Short/Long Immediate Adressierung....................................................................................20Direkte Adressierung............................................................................................................20Indirekte Adressierung......................................................................................................... 21Ringspeicher.........................................................................................................................21

Schleifenbefehle.............................................................................................................................22Pipelining (Beispiele anhand des TMS320C50)................................................................................ 23

Die vier Phasen der C50 Pipeline Struktur sind wie folgt:............................................................ 23Quellenangabe.................................................................................................................................... 24

2/24

Page 3: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

AbbildungsverzeichnisAbbildung 1: Harvard-Architektur....................................................................................................... 6Abbildung 2: Von Neumann Architektur............................................................................................. 6Abbildung 3: Allgemeiner Aufbau eines DSP..................................................................................... 8Abbildung 4: Central Arithmetik Logic Unit..................................................................................... 12Abbildung 5: PLU.............................................................................................................................. 15Abbildung 6: ARAU...........................................................................................................................16Abbildung 7: Programm Kontrolle.....................................................................................................17Abbildung 8: Ringspeicher.................................................................................................................21Abbildung 9- Vierstufige Pipeline......................................................................................................23

3/24

Page 4: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

EinleitungDigitale Signalverarbeitung ist Berechnung digitaler Zahlenwerte nach einer bestimmtenRechenvorschrift, ausgehend von gegebenen Eingangsgrößen .

Erste Anwendungen gab es in den 50er/60er Jahren mit der Simulation analoger Schaltungenauf Digitalrechnern.

Heute können analoge Systeme aufgrund enormer Fortschritte durch in Echtzeit arbeitendedigitale Systeme ersetzt werden.

Die folgende Ausarbeitung bietet eine Einführung in Digitale Signalverarbeitung und imZweiten Teil einen Einblick in den Digitalen Signalprozessor TMS320C50 von TexasInstruments.

Geschichte der Digitalen Signalverarbeitung• Etwa 1970 gab es erste ernsthafte Ansätze in der digitalen Signalverarbeitung. Computer

waren für ernsthafte Anwendungen aber zu groß oder zu langsam, meistens aber beides.

• 1971 entwickelte Lincoln Laboratories den FDP (Fast Digital Processor), dieser benötigte600ns für eine Multiplikation, er war also von Echtzeitanwendungen noch weit entfernt.Der FDP war aus 10000 einzelnen ICs zusammengebaut. Das größte Problem des FDPwar die 'Von Neumann' Architektur, da durch den Flaschenhals des gemeinsamen Daten-und Befehlsbus die eingehenden Daten nicht schnell genug bearbeitet werden konnten.

• Etwa 1980 konnte einfache DSV auch von Mikrocomputern ausgeführt werden. ErsteAnwendung war zum Beispiel Sprachausgabe mit dem Computer. Die Sprachausgabeerfolgte aber in sehr schlechter Qualität, da nur mit 8Bit gerechnet wurde und dieAuflösung somit nicht genau genug war.

• Etwa 1990 kamen erste DSPs auf dem Markt, sie wurden häufig für Modems,Soundkarten und CD-Player verwendet und waren relativ teuer.

• Etwa seit 2000 sind DSPs Massenware und “Kern” von ICs spezieller Baugruppen, z.BModems, ISDN, MP3.

Vorteile digitaler Signalverarbeitung

Digitale Signale sind reproduzierbar (Reproduzierbarkeit), sie können ohne Verlustgespeichert und wiederhergestellt werden. Dieses ist mit analogen Signalen nicht ohneWeiteres möglich (verlustfreie Vervielfältigung). Analoge Schaltungen sind anfällig gegenäußere Einflüsse in Form von Temperatur, Witterung, Erschütterung und ähnlichenEinflüssen. Ein DSP ist robust gegen äußere Einflüsse (Robustheit) und er altert kaum. Eineanaloge Schaltung dient meist einem speziellen Zweck, auf den sie starr ausgerichtet ist; sollsie erweitert oder ergänzt werden, so sind große Eingriffe oder aber auch eine komplett neueBaugruppe nötig. Hiervon unterscheiden sich die DSPs, denn sie sind programmierbar(Programmierbarkeit/Flexibel) und es wird nur eine Hardware für verschiedeneAnwendungen benötigt. DSPs bieten auch neue Möglichkeiten, die mit analoger Techniknicht ohne Weiteres möglich wären, dazu gehören spezielle Filter, digitaleModulationsverfahren (GSM) und Fehlerkorrektur.

4/24

Page 5: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

DSP vs. GPP (General Purpose Computer)Worin unterscheiden sich nun also digitale Signalprozessoren von universal gebräuchlichenProzessoren? Die folgende Gegenüberstellung soll Klarheit darüber schaffen.

DatenpfadDSP GPP

• Wichtige arithmetische Operationenwerden in einem Zyklus ausgeführt

• Hardwareshifter.

• Hardwareaussteuerung1

• Multiplikationen benötigen in der Regelmehr als einen Zyklus

• Shiften benötigt in der Regel mehr als einenZyklus

• Auch andere Operationen (z.B. Runden,Aussteuern) brauchen mehrere Zyklen.

BefehlssatzDSP GPP

• Spezialisierte, komplexe Befehle• Mehrere Operationen pro Instruktion

• Beispiel (TMS320C50)mac x0,y0,a x:(r0)+,x0y:(r1)+,y0

• “Universelle” Befehle• Eine Operation pro Befehl ist typisch

• Beispielmov *r0, x0mov *r1, y0mpy x0, y0, aadd a,binc r0inc r1

1 z.B. Saturation, Normalisierung etc.

5/24

Page 6: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Speicherarchitektur

DSP

• Harvard-Architektur• Mehrere Speicherzugriffe je Zyklus (Mehrere Busse)•

Abbildung 1: Harvard-Architektur

GPP

• Von Neumann Architektur• Ein Speicherzugriff je Zyklus typisch•

Abbildung 2: Von Neumann Architektur

Adressierung

DSP GPP• Extra Adress-ALU's• Spezialisierte Adressierungsarten• Autoinkrement• Modulo• Bit-reversed

• Meist keine extra Adress-ALU• Universelle Adressierungsarten

6/24

ProzessorDaten-

speicher

Programm-speicher

Prozessor Speicher

Page 7: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Weitere Eigenschaften des Digitalen Signalprozessors• Hardware unterstützte Schleifen

• Realzeit debugging unterstützt

• Schleifen

• Hardware unterstützte wiederholte Ausführung eines Befehls oder sogar eines ganzenAnweisungsblocks (Single- und Multiinstruction Hardware Loops)

• Mehre Datenbusse (gleichzeitiges Holen von Befehlen und Operanden)

Anwendungsgebiete digitaler SignalprozessorenIm Folgenden wird ein Überblick über einige Anwendungsgebiete der digitalenSignalprozessoren gegeben: es gibt unzählige weitere Anwendungsgebiete für diese Art vonProzessoren.

ConsumerbereichIm Consumerbereich sind es vor allem DVD, CD-Player, MP3-Player in denen digitaleSignalprozessoren zur Decodierung von Audio und Videosignalen eingesetzt werden.

TelekommunikationIn der Telekommunikation dienen DSPs der Sprach- und Datenübermittlung zum Beispielbei Mobiltelefonen, xDSL-Techniken, ISDN, Modem oder der Satellitenkommunikation.

AutomobilbereichBei Fahrzeugen finden DSP ebenfalls immer mehr Anwendung sie werden in Systemen wieABS, aktive Geräuschreduzierung, digitales Radio, Sprachsteuerung, Airbag oder GPSeingebaut.

IndustrieIn der Industrie wird besonders Computersehen, Meßtechnik und Robotik von DSPsunterstützt, da General Purpose Prozessoren zu groß, zu teuer oder dem Aufgabengebietnicht angepasst wären .

Militär und ForschungMilitär und Forschung nutzen die DSPs ausgiebig in Form von Sonar- und Radarsystemen,Medizinische Ultraschallanwendungen oder für seismische Analysen.

7/24

Page 8: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Anforderungen an DSPs• Schnelle Numerik mit hoher Genauigkeit

• Daten müssen schnell verfügbar sein

• Addition und Multiplikation möglichst in einem Instruktionszyklus

• Laden und Speichern von Daten in einem Zyklus

• Verschiedene Adressierungsarten (z.B. zum einfachen Auslesen von Koeffizienten)

• Möglichst hardwareunterstützte Schleifen

• Leistungsfähige I/O-Schnittstellen

• Geringer Stromverbrauch wünschenswert

Allgemeiner Aufbau eines DSP[1]Das folgende Schaubild zeigt einen verallgemeinerten Aufbau eines DSP, um diesengrundlegend erläutern zu können. Ein spezieller DSP wird zu einem späteren Zeitpunkt nochausführlich beschrieben.

MultipliziererAkku

PeripherieALU

MUX

Add

ress

ALU

DatenROM

DatenRAM

Add

ress

ALU

Prog

ram

mzä

hler

Programm-speicher

Befehlsdecoder

Datenbus

Datenbus

Abbildung 3: Allgemeiner Aufbau eines DSP

8/24

Page 9: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Deutlich erkennbar ist der getrennte Daten- und Programmspeicher. Der Datenspeicher istbei diesem Prozessor noch einmal aufgeteilt in Daten-ROM (z.B. für feststehendeFilterkoeffizienten) und einem Daten-RAM (z.B. für die aufgenommenen Samples). DieAdress-ALU ermöglicht einige interessante Adressierungsarten ohne großen Zeitverlust.Man erkennt deutlich, dass Multiplizierer und Akkumulator in einem gemeinsamenDatenpfad liegen. Dies erlaubt die Ausführung einer Addition und Multiplikation in einemInstruktionszyklus.

MAC-OperationDie so genannte Multiply-Accumulate-Operation (MAC) ist eine der zentralen Operationeneines DSP. Sie erlaubt z.B. die Berechnung eines Vektorprodukts, welches beispielsweisefür digitale Filterfunktionen verwendet wird. Das Vektorprodukt besteht aus einer Summevon Produkten der Vektorelementepaare. In Maschinencode umgesetzt, bedeutet dies diewiederholte Anwendung der MAC-Operation in Verbindung mit der Summenbildung.

Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, mussgewährleistet sein, dass die Multipliziereinheit und ein Akkumulator im Hauptdatenpfad desDSPs eingebettet ist. Um weiterhin sicherstellen zu können, dass es bei einer Serie vonMAC-Operationen nicht zu einem Überlauf des Akkumulators kommt, ist bei den meistenDSPs dieser mit zusätzlichen Bits versehen.

SpeicherorganisationZu einem schnellen Gesamtsystem gehören auch schnelle Teilsysteme, und so darf auch dieSpeicherorganisation kein Nadelöhr des DSPs darstellen. Aus diesem Grund ist ein DSP inder Lage, mehrere Speicherzugriffe in einem Instruktionszyklus gleichzeitig durchzuführen.Parallel zum Holen eines Befehls werden die dazu benötigten Operanden geladen und dieErgebnisse der vorherigen Operation in den Speicher geschrieben. Während der Prozessordie MAC-Operation ausführt, wird parallel dazu der Messwert und der Koeffizient für dieBerechnung geladen. Um dies zu ermöglichen, haben viele Signalprozessoren mehrere on-chip Busse, multi-ported on-chip Speicher und manchmal auch mehrere unabhängigeSpeicherbänke.

Der Name für eine solche Architektur mit getrennten Speicherbereichen für Programmcodeund Daten ist Harvard-Architektur im Gegensatz zu der Von Neumann Architektur, die inherkömmlichen Mikroprozessoren Verwendung findet und in der nur ein Speicherbereich fürProgramm und Daten zur Verfügung steht. Viele neuere DSPs verwenden sogar mehreregetrennte Speicherbereiche für die Daten. Eine solche Anordnung nennt man dann erweiterteHarvard-Architektur.

9/24

Page 10: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

AdressierungsartenDamit die Rechengeschwindigkeit noch einmal gesteigert werden kann, werden auf DSPsAddress Generation Units (AGU) eingesetzt. Ohne den Hauptdatenpfad des Prozessors zunutzen, können die Speicheradressen, z.B. für die Operanden, parallel zu arithmetischenOperationen, wie z.B. der oben erwähnten MAC-Operation, ausgeführt werden. Viele dieserAGUs unterstützen die Register-Indirekte Adressierung mit nachträglicher Inkrementierung,die überall dort eingesetzt wird, wo wiederholte Berechnungen auf Daten durchgeführtwerden sollen, die sequentiell im Speicher angeordnet sind. Oftmals wird auch eine ModuloAdressierung (Ringspeicher) zur Verfügung gestellt. Einige Prozessoren ermöglichen aucheine Bit-reversed Adressierung, die für manche Fast Fourier Transformations (FFT)Algorithmen eingesetzt werden.

SchleifenbefehleManche Prozessoren unterstützen besonders Schleifenbefehle, um die Ausführung vonSchleifen zu beschleunigen. Hierbei gibt es Prozessoren, die nur eine Operation wiederholenkönnen oder auch solche, die die Fähigkeit haben, gleich den ganzen Anweisungsblock aufdiese Weise zu wiederholen. Man spricht hier von Single- und Multiinstruction HardwareLoops. Solche Schleifen werden von der Hardware kontrolliert ausgeführt. DerProgrammierer muss sich weder um die Inkrementierung des Schleifenzählers kümmern,noch um die Abbruchbedingung der Schleife. Einige neuere DSPs verwendenprozessorintern Pipelines und Cachespeicher vergleichbar mit RISC-Prozessoren, um dieSchleifenoperationen schneller ausführen zu können.

KommunikationDie meisten Prozessoren unterstützen außerdem ein oder mehrere serielle bzw. parallele I/O-Interfaces, Interruptausführung mit geringem Overhead oder DMA (Direct Memory Access),um Datentransporte fast ohne Benutzung des restlichen Prozessors zu gewährleisten.

10/24

Page 11: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Der Digitale Signal Prozessor TMS320C50 von Texas Instruments [4]

Die TMS320C5x-DSP-Familie fällt in die Klasse der General-Purpose-Fixed-Point-DSPs, da sievorwiegend mit Festpunktzahlen arbeitet und auf die Signalverarbeitung hin optimiert ist, jedochnicht für einen speziellen Zweck, z.B. zur MP3-Decoderierung, konzipiert wurde. Die Advanced Harvard-Architektur, die den Aufbau der DSP-Familie charakterisiert, sieht on-chipzwei separate Speicherbusse vor, ein Bus für den Programm- und ein Bus für denDatenspeicherbereich. Die TMS320C5x-Familie verfügt über Instruktionen, die Datentransferszwischen diesen beiden Speicherbereichen realisieren. Somit ist es möglich, die zur Berechnunghäufig benötigten Koeffizienten im Programmspeicher abzulegen und dann in den Datenspeicher zuladen. Ein separates Koeffizienten-ROM entfällt folglich.

ArchitekturDer TMS320C50 besteht aus folgenden Komponenten:

• Central Arithmetik Logic Unit (CALU)

• Parallel Logic Unit (PLU)

• Auxiliary Register Arithmetic Unit (ARAU)

• Memory Mapped Registers

• Program Controller

11/24

Page 12: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Central Arithmetic Logic Unit (CALU)

Die CALU enthält einen 16 x 16 Bit Multiplizierer, eine 32 Bit ALU, einen Akku (highACCH und low ACCB) und einen Akku-Puffer(ACCB) sowie Shifter (SFR und zweimalSFL) am Ausgang des Akku's und des Produktregisters.

12/24

Abbildung 4: Central Arithmetik Logic Unit

MUX

ALU(32)

SFL

PREG(32)

Multiplizierer

TREG0 MUX

MUX

SFR

ACCH(16)ACCB(32)

Postscaler

Datenbus

Programmbus

ACCL(16)

SFL

Page 13: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Einer der Operanden für die ALU kommt immer aus dem Akkumulator (ACCx), währendder andere Operand entweder aus dem Produktregister (PREG), dem Akkumulatorpuffer(ACCB) oder den Datenbus kommt.

Der Prescaler (SFL am PREG) hat einen 16 Bit Eingang und

Die CALU enthält folgende Elemente:

• 16-Bit x 16-Bit

• 32 Bit 2er Komplement ALU

• 32 Bit Akku

• 32 Bit Akku-Puffer

• 0-, 1-, or 4-Bit Links oder 6 Bit Rechtsshifter

• 0-16 Bit Links- und 0-16 Bit Rechts-Barrelshifter

• 0-7 Bit Links-Barrelshifter

Multiplizierer, Produktregister und temporäres Register (TREG0)Der Multiplizierer kann signed beziehungsweise unsigned Produkte in einem einzigenZyklus berechnen.

Einer der Operanden für den Multiplizierer kommt vom temporären Register (TREG0;Memory Mapped), der andere Operand kommt vom Daten- oder Programmbus. DasErgebnis wird im Produktregister (PREG) gespeichert und ist für die ALU verfügbar. DieALU kann 16 Bit Wörter vom Datenspeicher, aus Immediate-Instruktionen oder aus demPREG für arithmetische Operationen verwenden. Das Ergebnis der ALU-Operationen wirdim Akku (ACC) abgelegt. Der Akku stellt außerdem den zweiten Operanden für die ALUbereit.

Die Shifter (SFL, SFR und Postscaler) ermöglichen der CALU:

• Numerische Skalierung

• Bit-Extraktion

• Überlaufvermeidung

ALU und Akku'sEiner der für die Verarbeitung benötigten 16-Bit-Operanden wird immer durch denAkkumulator ACC bereitgestellt, während der andere aus dem Produktregister desMultiplizierers PREG, dem Akkumulatorpuffer ACCB oder über den Scaling-Shifter SFLgeholt wird.

Der Scaling-Shifter (SFL) hat einen 16-Bit-Eingang, der an den Datenbus gekoppelt istsowie einen 32-Bit Ausgang, der über einen Multiplexer auf die ALU durchgeschaltet

13/24

Page 14: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

werden kann. Der Shifter kann dabei über den Datenspeicher oder den Immediate-Operanden einer Instruktion versorgt werden und dient wahlweise der vorzeichenbehaftetenbzw. vorzeichenlosen Erweiterung sowie der Ausrichtung eines Datums, bevor es in dieALU, die ausschließlich 32-Bit-Werte verarbeiten kann, eingespeist wird. Die Ausrichtungdes Datums ist u.U. erforderlich, da es sich hier um einen 16/32-Bit-Prozessor handelt, derzwar mit einer Genauigkeit von 32 Bit rechnet, jedoch nur über einen Datenbus von 16 Bitverfügt.Die Ergebnisse der Berechnungen werden im 32 Bit Akku gespeichert. Der Akku ist dabei inje zwei 16-Bit Teile (ACCH u. ACCL) aufgeteilt, um die Daten auf dem nur 16 Bit breitenDatenbus transportieren zu können.Der Akku ist direkt mit dem Akku-Puffer (ACCB) gekoppelt. Dadurch lässt sich z.B. eineschnelle Minimum/Maximum-Suche realisieren. Beispiel:CRLT Befehl des TMS320C50 der wie folgt arbeitet: store ACC in ACCB if ACC < ACCBWeiterhin verfügt die CALU über einen Shifter (SFL) am Ausgang des ProduktregistersPREG. Er erlaubt das Shiften des PREG-Inhalts um eine oder vier Positionen nach linksbzw. sechs Positionen nach rechts (zur Vermeidung eines Überlaufs der ALU beiAkkumulierung von multiplizierten Werten).Weiterhin verfügt die Struktur über einen Postscaling-Shifter, der den Inhalt desAkkumulators um bis zu sieben Positionen links schieben kann, während der Inhalt zurSpeicherung auf den Datenbus gelegt wird. Dies alles geschieht, ohne den Akkumulator zuverändern. Da der Datenbus nur eine Breite von 16 Bit hat, müssen das High-Word und dasLow-Word des Akkumulators getrennt gespeichert und auch geschoben werden. Wird dasHigh-Word durch den Shifter links geschoben, so gehen die MSBs verloren, während dieLSBs mit den MSBs des Low-Words gefüllt werden. Wird dieser Postscaling-Shifter auf dasLow-Word angewandt, so gehen auch hier die MSBs verloren, die LSBs werden mit Nullenaufgefüllt (Erweiterung des Dynamikbereiches durch Erhöhung des Stellenwertes der LSBs).Der Akkumulator wird über einen Scaling-Shifter (SFR), der ausschließlich Rechts schiebenkann, auf den Operandeneingang der ALU zurückgekoppelt.

Ein weiterer integraler Bestandteil der CALU ist die 16x16-Bit-Multiplikationseinheit , diezwei 16-Bit-Werte sowohl mit Vorzeichen als auch ohne Vorzeichen innerhalb eines Taktesmultiplizieren kann. Am Ausgang verfügt der Multiplizierer über einen Schieber (SFL),dessen Funktion weiter oben schon beschrieben wurde. Die vier MAC-Operationen (MAC,MACD, MADD, MADS) nutzen die Berechnungsbandbreite des Multiplizierers vollständigaus, indem beide Operanden simultan verarbeitet werden. Die Daten für diese Operationenwerden dem Multiplizierer in jedem Takt durch den Programm- und den Datenbuszugeführt. Dies ermöglicht MAC-Operationen in nur einem Takt, wenn sie mit Repeat-Instruktionen verwendet werden. In diesen Instruktionen werden die Adressen derKoeffizienten vom Programmzähler (PC) generiert, während die Datenadressen von derHilfsregister-Arithmetik-Einheit (ARAU) erzeugt werden. Diese Technik erlaubt es,sequenziell auf Koeffiziententabellen zuzugreifen und in den indirekten Adressierungsmodidurch die Daten zu schreiten. Die eingelesenen Samples eines Signals können durch Implementierung eines Ringpuffersso abgelegt werden, dass die ältesten Werte mit den neuesten überschrieben werden.

14/24

Page 15: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Die Parallel Logic Unit (PLU)

Abbildung 5: PLU

Die PLU ist eine parallel zur Haupt-ALU existierende Logik-Einheit, die es gestattet,Operationen im gesamten Datenspeicher durchzuführen ohne dabei den Akkumulator zuverändern. Sie verfügt über eine spezielle Fähigkeit zur Bitmanipulation von mehreren Bits(load, set, clear, test, toggle) und vereinfacht Operationen auf Kontroll- und Statusregistern.Die PLU hat zu diesem Zweck einen direkten Pfad zum Datenspeicher, wo sich neben demDatenspeicher auch Kontroll-/Status-Register sowie andere Register, die durchspeicherbezogene Adressierung (memory-mapped addressing) angesprochen werdenkönnen, befinden. Das Resultat einer solchen Berechnung wird an die Speicheradressezurückgeschrieben, von der das zu verarbeitende Datum kam.Die PLU kann entweder über Immediate-Daten über den Programmbus oder mit dem Inhaltdes DBMR (Dynamic Bit Manipulation Register) versorgt werden. Der andere Operandkommt direkt aus dem Datenspeicher.Die Benutzung des DBMR erlaubt es, zur Laufzeit den Operanden der PLU zu erzeugen.PLU-Befehle, die auf das DBMR zurückgreifen, kommen mit einem Takt Ausführungszeitaus, während Long-Immediate-Befehle immer zwei Takte benötigen, da zwei 16-Bit-Teiledes 32-Bit-Befehls aus dem Programmspeicher geholt werden müssen. DieseUnterscheidung kann relevant sein, wenn es um die Programmierung zeitkritischer Routinengeht.

15/24

PLU(16)

MUX

Datenbus

DBMR(16)

Programmbus

Page 16: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Auxiliary Register Arithmetik Unit (ARAU)

Abbildung 6: ARAU

Die TMS320C5x-Familie verfügt über acht Hilfsregister (AR0 – AR7). Jedes dieser Registerkann zur indirekten Adressierung des Datenspeichers sowie zur temporärenDatenspeicherung benutzt werden. Die Hilfsregister erlauben das Ablegen von Zeigern aufden Datenspeicher zur indirekten Adressierung. Angesprochen werden die acht Hilfsregisterüber einen 3-Bit-Hilfsregister-Zeiger ARP. Die Hilfsregister und der Hilfsregisterzeigerkönnen aus dem Datenspeicher, dem Akkumulator, dem Produktregister oder durch einenImmediate-Operanden geladen werden. Die Inhalte der Hilfsregister können imDatenspeicher abgelegt oder als Eingaben für die zentrale ALU (CALU) verwendet werden.Weiterhin sind diese Register als Memory-mapped-Registers direkt im Datenspeicheradressierbar, so dass auch andere Funktionseinheiten wie der Multiplizierer direkt auf dieHilfsregister zugreifen können. Eine weiteres Register dieses Blocks ist das ARCR, das fürAdressvergleiche mit den Hilfsregistern verwendet werden kann. Die ARAU kann dasgerade angewählte Hilfsregister automatisch indizieren, während ein Ort imDatenspeicherbereich adressiert wird. Die Indizierung kann um +/- 1 oder um den Inhalt desIndexregisters INDX geschehen. Der Vorteil ist, dass für den Zugriff auf Informationen inTabellen die CALU nicht belastet wird und somit für andere Operationen parallel frei ist.

16/24

Index Register (INDX)(16)Compare Register (ARCR)(16)Auxiliary Register 7 (AR7)(16)Auxiliary Register 6 (AR6)(16)Auxiliary Register 5 (AR5)(16)Auxiliary Register 4 (AR4)(16)Auxiliary Register 3 (AR3)(16)Auxiliary Register 2 (AR2)(16)Auxiliary Register 1 (AR1)(16)Auxiliary Register 0 (AR0)(16)

Datenbus

MUX

Auxiliary Register Arithmetic Unit (ARAU) (16)In B Out In A

MUX

AuxiliaryRegisterPointer

(ARP) (3)

AuxiliaryRegisterBuffer

(ARB) (3)

3 LSB ofInstructionRegister

(IREG) (16)

8 LSB of Instruction Register (IREG) (16)

Page 17: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Programm Kontrolle

Stack8x16

Program ROMInstruction

PFC

Comp.

PCMCS

PASR

PAER

MUX

AddressMUX

MUX

Con

trolle

r

RBIT

A15-A0

D15-D0

To ARAU

Data Bus

Program Address Bus

GREGBRCR

ST0ST1

PMSTTPTCIMRIFR

IREGBMAR

TREG

Abbildung 7: Programm Kontrolle

Legende zu Abb. 4

• IREG: Instruction Register• BMAR: Block Move Address Register• ST0/ST1: Status Registers• PMST: Processor Mode Status Register• RPTC: Repeat Counter• IMR: Interrupt Mask Register• IFR: Interrupt Flag Register• GREG: Global Memory Allocation• BRCR: Block Repeat Counter Register• TREG: Temorary Registers• PAER: Block Repeat Program Address End Register• PASR: Block Repeat Program Address Start Register• MCS: Microcall Stack• PFC: Prefetch Counter

17/24

Page 18: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Program Counter (PC)

Der Programm Counter (16 Bit) adressiert den Programmspeicher über den ProgrammAddress Bus (PAB). Dabei kann sowohl interner als auch externer Speicher adressiertwerden. Über den PAB wird ein Befehl in das Befehlsregister (IREG) geladen. Der PC istdanach bereit, den nächsten Befehl zu laden.

Der PC kann auf mehrere Arten geladen werden:

1. Sequentiell (PC = PC + 1)

2. Branch (PC wird mit Immediate Wert hinter dem Verzweigungsbefehl geladen)

3. Unterprogramm Aufruf (PC + 2 auf Stack legen und dann den PC mit Immediate Wertaus CALL laden)

4. Rücksprung aus Unterprogramm (PC wird mit Adresse geladen die oben auf Stackliegt)

5. Interrupt (PC wird mit Adresse der ISR geladen)

Der PC kann auch mit Adressen aus dem Programmspeicher geladen werden. Dies ist derFall, wenn Koeffizienten für Single Instruction Repeat Functions geholt werden müssen. Istder zu wiederholende Befehl geladen, können die Koeffizienten so sequentiell geladenwerden (z.B. die MAC Funktion)

18/24

Page 19: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Hardware Stack

Der Stack ist ist acht Ebenen tief. Jede Ebene besteht aus einem 16 Bit Wort. Auf dem Stackkann via PUSH und POP der Inhalt den PCs abgelegt werden. Dabei wird der aktuelle Inhaltum eine Ebene tiefer gerückt. Sind bereits alle acht Ebenen belegt, und wird ein weiteresWort auf den Stack gelegt, so geht der Inhalt der untersten Ebene verloren. Jedes POP holtdas oberste Element vom Stack, und die tiefer liegenden Ebenen rücken wieder nach obennach. Sollen mehr als acht Elemente auf dem Stack abgelegt werden, so besteht dieMöglichkeit, weitere Elemente im Datenspeicher abzulegen.

Der Programmspeicher enthält den Programmcode sowie Datentabellen und Immediate-Werte. Auf den Programmspeicher wird über den Program Address Bus (PAB) zugegriffen.Die Adresse für den PAB wird durch den Programmzähler (PC) erzeugt, wenn aufAnweisungen und auf immediate Werte zugegriffen wird. Der PAB kann auch mitimmediate Werten und den unteren 16 Bit des Akkus (ACCL) für Blockübertragungen,MACs Tabellenzugriffe, Sprünge und Unterprogrammaufrufe geladen werden.

Der C5x holt Anweisungen, indem er den PC auf den PAB legt und so an derentsprechenden Adresse im Speicher liest. Während des Lesens wird der PC schon für dienächste Befehlsholphase erhöht. Bei nicht sequentieller Programmabfolge (zum Beispiel, beiSprüngen, Unterprogrammaufrufen, Rücksprüngen, Interrupt oder Blockwiederholungen)wird die benötigte Adresse in den PC geladen. Der PC wird auch geladen um Operandenvom Programmspeicher zu holen. Einige Anweisungen (MAC, MACD, MADD und MADS)benutzen den Programmbus, um einen zweiten Multiplikanden zu holen.

Das PC kann Daten adressieren, die entweder im Programm- oder im Datenspeichergespeichert sind. So können bei wiederholten Anweisungen Operanden parallel vom Daten-und vom Adressbus geholt werden. Für solche Anweisungen wird die Datentabelle über denPAB ausgelesen. Die Blocktransferanweisungen benutzen beide Busse (Daten undProgrammbus), so dass die Pipeline den nächsten Operanden lesen kann, während sie denaktuellen schreibt.

19/24

Page 20: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Adressierungsarten

Short/Long Immediate Adressierung

Der Wert steht hinter dem Befehl im ProgrammspeicherShort:

Opcode 8 Bit Konstante15 08 7

Long:

16 Bit Konstante

Opcode15 0

Beispiele:ADD #15h (Short Immediate)ADD #FFFh (Long Immediate)

Direkte Adressierung

• Data Memory Page Pointer (DP): 9 Bit verweisen auf eine der 512 möglichenSpeicherseiten, die eine Länge von 128 Wörtern haben.

• Die restlichen 7 Bit werden in der Operation angegeben.IREG:

Opcode dma8 7 6

0015

Adresse:

DP dma7 6 015

Beispiel:ADD 54h; (DP = 1Eh)Addiert den Wert von Speicherzelle 0F54h auf den Akku(1Eh x 80h + 54h = 0F54h)

20/24

Page 21: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Indirekte Adressierung

• Indirekte Adressierung über acht sog. Auxiliary Register (16 Bit gesamterAdressraum).

• Aux. Register Pointer (ARP) bestimmt, welches Register gewählt wird.• Nach Speicherzugriff kann Registerinhalt wie folgt geändert werden:

• Inkrement/Dekrement• Erhöhung um Inhalt des Indexregisters

• Aux. Register Pointer kann auch mit neuem Wert beschrieben werden.

Beispiele: ARP = 2ADD * Addiert den Speicherinhalt, auf den AR2 zeigt, auf den

AkkumulatorADD *+, AR5 Addiert den Speicherinhalt, auf den AR2 zeigt, auf den

Akkumulator und erhöht den Wert von AR2 um eins und setzt den ARP auf 5

ADD *0+,AR4 Addiert den Speicherinhalt, auf den jetzt AR5 zeigt, auf den Akkumulator und addiert zusätzlich den Wert des Index-Register auf AR5. Der ARP zeigt nun auf AR4.

ADD *0- Addiert den Speicherinhalt, auf den AR4 zeigt, auf den Akkumulator und zieht den Indexregister-Inhalt von AR4 ab.

ADD *BR0+ Addiert den jeweiligen Speicherinhalt auf den Akkumulator und erhöht den AR4 um den Wert des Indexregisters mit umgekehrten Übertragsrichtung. (Bit Reversed Addressing. 0110 wird 1001 z.B. zur Adressierung bei Butterfly Algorithmus bei FFT)

Ringspeicher

Abbildung 8: Ringspeicher

21/24

Data in

Data out

Ringpuffer

Speicher

Start Ende

Page 22: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Die zirkulare Adressierung (circular addressing) ist die wohl interessantesteAdressierungsart, die die TMS320C5x-Familie zu bieten hat. Mit ihr ist es nun möglich,Ringpuffer durch die Hardware zu unterstützen. Ringpuffer sind Speicherbereiche, auf diesequenziell mit einem Zeiger zugegriffen wird. Erreicht dieser Zeiger das Ende des Puffers,so findet ein „Wrap-Around“ statt und der Zeiger wird auf den Anfang des Puffers gesetzt.Es werden also im Falle von Schreiboperationen jeweils die ältesten Daten im Puffer durchdie neuesten ersetzt. Da alle Funktionen zur Kontrolle solcher Puffer in Hardwareimplementiert sind, reduziert sich der Aufwand für Applikationen, die Ringpuffer benötigen,erheblich. Es gibt fünf Register, die speziell für diese Adressierungsart geschaffen wurden.Dies sind ein Start-Register (CBSRx, Circular Buffer Start Register) und ein Ende-Register(CBERx, Circular Buffer End Register ) für jede der zwei Ringpuffer plus einKontrollregister für beide Puffer zusammen. Weiterhin wird ein beliebiges Hilfsregisterverwendet, um als Zeiger für den Ringpuffer zu fungieren. Ringpuffer sind in derSignalverarbeitung besonders häufig benutzte Datenstrukturen, mit denen z.B. FIR-Filterund Waveform-Generatoren arbeiten.

SchleifenbefehleDie TMS320C5x-Familie verfügt über Befehle zur Wiederholung von Einzelinstruktionensowie zur Wiederholung von ganzen Programmblöcken, was der digitalenSignalverarbeitung sehr zugute kommt, da sie auf Reihenberechnungen basiert, die sichwiederum mit Schleifen gut programmieren lassen. Universalprozessoren verfügen meistnicht über solche Schleifenbefehle; sie müssen daher mit erhöhtem Rechen- undPlatzaufwand nachgebildet werden. Die Wiederholungsfunktion kann mit Instruktionen wie den MAC-Befehlen, Block-Datentransfers, I/ODatentransfers und Tabellen-Lese- und Schreibzugriffen verwendetwerden. Diese Instruktionen benötigen im Normalfall mehrere Takte zur Ausführung.Werden sie jedoch mittels der Wiederholungsfunktion eingesetzt, so werden sie durch einePipeline geschleust, was den Zeitbedarf pro Befehl auf einen Takt reduziert.Zur Steuerung der Wiederholungsfunktion für Einzelinstruktionen verfügt der DSP über ein16-Bit-Wiederholungszähler-Register (RPTC, siehe Abbildung 7). Die Anzahl derWiederholungen reicht also von 0 bis 65.535. Wenn der RPTC mit einem Wert N geladenwird, so wird die darauf folgende Instruktion (N+1)-mal ausgeführt. Dieses Register kannmit den Befehlen RPT (Repeat next Instruction) und RPTZ geladen werden. RPTZunterscheidet sich insofern von RPT, als dass es bei Ausführung den Akkumulator und dasProduktregister löscht. Sobald einer der Repeat-Befehle decodiert wird, werden alleInterrupts maskiert, bis die Schleife abgearbeitet ist.Weiterhin bietet die TMS320C5x-Familie einen Block-Repeat-Modus an, der FOR- undDO-Schleifen ohne Overhead möglich macht. Die gesamte Schleifensteuerung läuft in derHardware ab. Diese Funktion wird von drei Registern (PASR (Block Repeat Address StartRegister), PAER (Block Repeat Address End Register) und BRCR (Block Repeat Counter);siehe Abbildung 7) und dem BRAF-Bit (Block Repeat Active Flag) im PMST-Register(Processor Mode Status Register; siehe Abbildung 7) gesteuert. Das BRCR kann ebenfallsmit einer Schleifenanzahl von 0 bis 65.535 geladen werden. Sobald dies geschehen ist, kanndie Instruktion RPTB (Repeat Block of Instructions) benutzt werden, um das PASR mit derAdresse der Instruktion, die auf den RPTB-Befehl folgt, zu laden. Weiterhin wird das PAERmit dem Long-Immediate-Operanden der RPTB-Instruktion geladen. Dieser Direktoperand

22/24

Page 23: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

ist die Adresse des Befehls, der auf den letzten Befehl der Schleife folgt, minus eins.Die Ausführung des RPTB-Befehls setzt automatisch das BRAF-Bit und die Schleife wirddurchlaufen. Mit jedem Update des Programmzählers (PC) wird überprüft, ob derProgrammzähler dem Inhalt des PAER entspricht. Ist dies der Fall, so wird überprüft, obBRCR null ist, und im Falle einer Nichtübereinstimmung BRCR dekrementiert und dieSchleife erneut ausgeführt, indem der PC mit dem PASR geladen wird. Soll eine bereitslaufende Schleife unterbrochen werden, so muss lediglich das BRAF-Bit mindestens vierInstruktionen vor dem Ende der Schleife gelöscht werden.

Pipelining (Beispiele anhand des TMS320C50)

Die vier Phasen der C50 Pipeline Struktur sind wie folgt:1. Fetch (F) – Hier wird eine Instruktion aus dem Speicher geholt und der Programmzähler

inkrementiert

2. Decode (D) – Hier wird die Instruktion dekodiert und die Adressen erzeugt. Außerdemaktualisiert die ARAU die Auxiliary Register.

3. Read (R) – In dieser Phase werden, sofern benötigt, Operanden aus dem Speichergeladen. Es wird indirekte Adressierung benutzt, wobei die Speicherstelle gelesen wird,die der ARP in der vorherigen Decode-Phase referenziert hat.

4. Execute (E) – In dieser Phase erfolgt die Ausführung des Befehls. Außerdem wird, sofernnotwendig, das vorherige Ergebnis in den Speicher zurückgeschrieben.

Im Allgemeinen ist die Pipeline für den Benutzer transparent. Die Pipeline hat jedochkeinerlei Schutzmechanismen, so daß es beim Anwender liegt Konflikte durch richtigeAnordnung des Programmcodes zu vermeiden.

23/24

Abbildung 9- Vierstufige Pipeline

N N+1 N+2 N+3N-1 N N+1 N+2N-2 N-1 N N+1N-3 N-2 N-1 N

CLKINFDRE

Page 24: Eine Einführung in digitale Signalprozessoren(DSP) · Um die MAC-Operation in einem Instruktionszyklus berechnen zu können, muss gewährleistet sein, dass die Multipliziereinheit

Mentor: Labor Computertechnik Mi, 11. Februar 2004Prof. Dr. T. Risse Vortrag Digitale Signal Prozessoren Häberlein, Martens

Quellenangabe

• [1] www.jens-rudolph.de/proseminar/dsp.htm >> Seminarunterlagen von Jens Rudolph.Diese Unterlagen bieten einen grundlegenden und leicht verständlichen Einstieg indigitale Signalprozessoren.

• [2] http://atknoll1.informatik.tu- muenchen.de/Zope/tum6/lectures/courses/ws0304/esys/documents/Documents/1068459447.28/ez4.pdf >> Ausarbeitung von G. Schrott. Ausführliche Beschreibung derFunktionsweise von digitalen Signalprozessoren und des TMS320C50.

• [3] http://iseran.rs.uni-siegen.de/cs_ra/pdf_files/30_dsp.pdf >> Ausarbeitung von M.G.Wahl. Gute Einführung in digitale Signalprozessoren, mit einigen gut beschriebenenpraktischen Beispielen

• [4] www.ti.com >> Users-Guide zum TMS320C50

24/24