Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

2.8 Signalprozessor-Beispiele

Ähnliche Präsentationen


Präsentation zum Thema: "2.8 Signalprozessor-Beispiele"—  Präsentation transkript:

1 2.8 Signalprozessor-Beispiele
2.8.1 Ein einfacher Signalprozessor NEC Audio-Signalprozessor PD6382

2 2.8 Signalprozessor-Beispiele
Merkmale:

3 2.8 Signalprozessor-Beispiele
Arithmetik-Einheit:

4 2.8 Signalprozessor-Beispiele
Festkomma-Arithmetik, Multiplizierer: multipliziert einen 16-Bit und einen 19-Bit Operanden in einem Instruktionszyklus (108 ns) Operandenquellen: K-Register, 16 Bit, kann entweder vom internen Datenbus (obere 16 Bit) oder Koeffizientenspeicher geladen werden L-Register, 19 Bit, kann vom internen Datenbus geladen werden Datentransfer in die K- und L-Register sind mit Multiplikation in einer Instruktion kombinierbar Ergebnis: M-Register, 31 Bit (eigentlich 35-Bit, es doch nur 31 Bit verarbeitet)

5 2.8 Signalprozessor-Beispiele
ALU: erlaubt Addition, Subtraktion, logische Verknüpfungen, ... von zwei 34-Bit Operanden Operandenquellen: Operand P:  M-Register (31 Bit, zusätzliche obere 3 Bit mit 0 gefüllt)  interner Datenbus (19 Bit, zusätzliche obere 3 und untere Bit mit 0 gefüllt Operand P kann zusätzlich durch einen Barrel-Shifter verschoben werden (1 Bit nach rechts, 17/18 Bit nach links)

6 2.8 Signalprozessor-Beispiele
Operand Q:  Akkumulator-Register (34 Bit) Ergebnis: Akkumulator-Register Durch zwei Overflow-Einheiten kann zusätzlich überwacht werden, ob das Ergebnis einer ALU-Operation (OVC') oder ein Wert im Akkumulator (OVC) mehr als 31 Bit zur Darstellung benötigt

7 2.8 Signalprozessor-Beispiele
Daten- und Koeffizientenspeicher Daten- und Koeffizienten- speicher unterscheiden sich im wesentlichen in ihrer Wortbreite und ihrer Adressierungslogik

8 2.8 Signalprozessor-Beispiele
Koeffizientenspeicher: 128 x 16 Bit 7-Bit Adresslogik, erlaubt Laden der Adresse vom internen Datenbus und Inkrementieren der Adresse Datentransfer: zum K-Register, Datenbus (obere 16 Bit) Datenspeicher: 128 x 19 Bit 7-Bit Adresslogik, erlaubt Laden, Inkrementieren, Dekrementieren und Maskieren der Adresse Daneben über zwei 7-Bit Preset Register (PR1, PR2) eine automatische Zählschleife programmierbar (PR1: Startadresse, PR2: Stopadresse, sobald PR2 erreicht  PR1 nachladen) Datentransfer: zum Datenbus, Akkumulator (untere 13 Bit)

9 2.8 Signalprozessor-Beispiele
Peripherie 5 serielle Audio-Schnittstellen zum Anschluss von DA-/AD-Wandlern 2 Eingangs- und 3 Ausgangsschnittstellen Jede Schnittstelle verfügt über ein 19-Bit Datenregister (SI1 - SI2, SO1 - SO3) Die Steuerung der seriellen Schnittstelle erfolgt wahlweise über die Signale BCLK1 / LRCK1 oder BCLK2 / LRCK2 Die Auswahl hierüber erfolgt durch interne Kontrollregister (CNT-R1/2)

10 2.8 Signalprozessor-Beispiele
Jede Schnittstelle kann ein Stereo-Signal übertragen BCLKx: serieller Übertragungstakt LRCKx: Kanalauswahl (links/rechts) Die Daten der Stereo-Kanäle werden nacheinander übertragen Ist LRCKx = 0, so wird gerade der linke Kanal übertragen, anderenfalls der rechte Kanal

11 2.8 Signalprozessor-Beispiele
Die Übertragungswortlänge beträgt wahlweise 16- oder 19-Bit Für die Software wird die Übertragung des linken bzw. rechten Kanals durch das LEFTF-Flag angezeigt Sie muss dann jeweils den zugehörigen Wert in ein SOx-Register laden bzw. aus einem SIx-Register holen ==> das LEFTF-Flag sowie das LRCKx-Signal sind wichtige Steuerelemente zur Programmablaufkontrolle (näheres hierzu im Abschnitt Programmsteuerung)

12 2.8 Signalprozessor-Beispiele
Neben den seriellen Audio-Schnittstellen verfügt der Prozessor über eine Schnittstelle für ein externes Delay-RAM für Hall-Effekte. max. RAM-Größe : 256k x 16 (2 Mbit)

13 2.8 Signalprozessor-Beispiele
Für das Delay-RAM gibt es einen Schreibzeiger und 64 Lesezeiger Der Schreibzeiger kann gesetzt und inkrementiert werden Jeder Lesezeiger bewegt sich automatisch mit einem einstellbaren Offset hinter dem Schreibzeiger her ==> Ringspeicher mit 64 einstellbaren Verzögerungsleitungen für Verzögerungs-, Hall- und Echo-Effekte

14 2.8 Signalprozessor-Beispiele
Als weitere periphere Schnittstelle ist eine serielle Host-Schnittstelle vorhanden Funktionen der Host-Schnittstelle: Schreiben des Programmspeichers Schreiben des Koeffizientenspeichers Schreiben und Lesen der Kontrollregister

15 2.8 Signalprozessor-Beispiele
Über diese Schnittstelle können mehrere Signalprozessoren mit einem Host verbunden werden, der die Programme in die Signalprozessoren überträgt und ihre Arbeitsweise kontrolliert Die Übertragung erfolgt in Form von Telegrammen

16 2.8 Signalprozessor-Beispiele
Programmsteuerung Eine Instruktion des PD6382 ist 22 Bit breit und besteht aus mehreren Feldern, welche einzelne Komponenten des Prozessors steuern Die Instruktionen sind in verschiedene Gruppen aufgeteilt: OPA: Datentransfer, RAM-Zugriff und Adressierung, ALU-Operationen OPB: Datentransfer und bedingte ALU- Operationen RET: wie OPA, zusätzlich Rückkehr von Unterprogramm JMP: bedingte Sprünge, Calls und Operationen Ldx: div. Datentransfers von Immediate Daten EXR: Zugriff auf externes Delay-RAM

17 2.8 Signalprozessor-Beispiele
Beispiel: OPA Instruktion ALU1 bestimmt die ALU-Operation P-SEL wählt unter verschiedenen Operanden am Eingang der ALU CPINC bestimmt, ob der Adresszeiger für das C-RAM inkrementiert wird DPHM ändert die drei höchstwertigen Bits des Adresszeigers für das D-RAM DPL1 ändert die vier niederwertigen Bits des Adresszeigers für das D-RAM DST1 bestimmt, wohin das auf dem internen Datenbus (IDB) befindliche Datenwort transportiert wird SRC legt die „Quelle“ des Datums auf dem IDB fest

18 2.8 Signalprozessor-Beispiele
Der Programmspeicher umfasst maximal 256 Instruktionen (256 x 22 Bit) Er ist ein RAM und somit zunächst von undefiniertem Inhalt ==> Ein Programm wird über die Host-Schnittstelle mittels Instruction-Write Telegrammen seriell geladen

19 2.8 Signalprozessor-Beispiele
Ist eine Instruktion in die Host-Schnittstelle übertragen, wird RDY solange inaktiv (0), bis die Instruktion in den Programmspeicher übernommen wurde. Übernahme einer Instruktion von der Host-Schnittstelle in den Programmspeicher: automatisch per Hardware, während Reset aktiv ist => Initiales Laden eines Programms per Befehl (Teil der OPB-Instruktion) während des Betriebs => Ersetzung von Programmteilen während des normalen Programmablaufs Bleibt Cn/D auf 1, können direkt weitere Instruktionen an nachfolgende Adressen geladen werden  

20 2.8 Signalprozessor-Beispiele
Typischer Programmablauf: Im allgemeinen wird ein Programm innerhalb einer Abtastperiode abgearbeitet und beginnt in der nächsten Abtastperiode von vorne ==> kurze Programme, wenige Schleifen o. Verzweigungen, Programmsteuerung durch den Abtasttakt Maximale Programmlänge bei verschiedenen Abtastraten:

21 2.8 Signalprozessor-Beispiele
 die Größe des vorhandenen Programmspeichers ist in den meisten Fällen ausreichend Die Steuerung des Programmablaufs erfolgt durch den LRCKx-Takt der seriellen Audio-Schnittstellen Dieser Takt zur Kennzeichnung des linken und rechten Kanals entspricht dem Abtasttakt Die steigende Flanke von LRCKx setzt deshalb den Programmzähler hardwaremäßig auf 0 zurück  die Programmbearbeitung beginnt von vorne Bei Stereo-Signalen kann mittels des LEFTF-Flags zwischen linkem und rechtem Kanal unterschieden werden

22 2.8 Signalprozessor-Beispiele
Typisches Programm für ein Stereo-Signal: Programm für den linken Kanal Warteschleife bis LEFTF=0 Programm für den rechten Kanal Endloswarteschleife (bis PC=0 durch steigenden Flanke von LRCKx)

23 2.8 Signalprozessor-Beispiele
Pipeline-Bearbeitung dieses Programms:

24 Anwendungsbeispiel Digitales Stereo Audio Effekt-Gerät mit Signalprozessor und Mikrocontroller

25 2.8 Signalprozessor-Beispiele
2.8.2 Ein Hochleistungs-Signalprozessor (Texas Instruments TMS320C6000)   8fach VLIW-CPU EPIC-ähnliche Erweiterungen (Marken im Befehlswort) Bedingte Ausführung aller Befehle (Predication) 2 32x32 Bit Multiplizierer 6 ALUs 32- und 64-Bit Gleitkommaoperationen (C67x) Erweiterung der Ganzzahlgenauigkeit auf 40 Bit möglich Integrierter Daten- und Programmspeicher bis 7 MBits Integrierte serielle Schnittstellen und Timer

26 2.8 Signalprozessor-Beispiele
Blockdiagramm der C6000 Familie 16 Register pro Registerfile Dual-Port Datenspeicher/Cache Datenpfad- /Registerbreite 32 Bit (C62x,C67x) oder Bit (C64x) Single-Port Programmspeicher/ Cache, 256 Bit Zugriffsbreite

27 2.8 Signalprozessor-Beispiele
Funktionsumfang der ALUs

28 2.8 Signalprozessor-Beispiele
Funktionsumfang der ALUs (fortg.)

29 2.8 Signalprozessor-Beispiele
Funktionsumfang der ALUs (fortg.)

30 2.8 Signalprozessor-Beispiele
Funktionsumfang der ALUs (fortg.)

31 2.8 Signalprozessor-Beispiele
Befehlsverarbeitung Es werden immer Pakete zu je 8 Befehlen geholt Instruktion 1 Instruktion 2 Instruktion 3 Instruktion 4 Instruktion 5 Instruktion 6 Instruktion 7 Instruktion 8 Das p-Bit bestimmt hierbei, ob die Befehle parallel ausgeführt werden dürfen pi = 1  Instruktion i+1 darf parallel zu Instruktion i ausgeführt werden pi = 0  Instruktion i+1 muss eine Takt nach Instruktion i ausgeführt werden

32 2.8 Signalprozessor-Beispiele
Treten keine (Daten-, Struktur-) Konflikte auf, so können im besten Fall 8 Befehle gleichzeitig verarbeitet werden

33 2.8 Signalprozessor-Beispiele
Format eines Befehls am Beispiel der .L-Einheit: dst: Zieloperand src2: 2. Quelloperand src1/cst: 1. Quelloperand / Konstante op: Befehlscode x: Kreuzpfade benutzen (.L1,.S1,.M1,D1, -Einheiten greifen auf Register File B zu, .L2,.S2,.M2,D2, -Einheiten auf Register File A s: Auswahl Seite A oder B für Zieloperand

34 2.8 Signalprozessor-Beispiele
creg und z: Bedingte Befehlsausführung, Predication creg spezifiziert das Bedingungsregister z legt fest, ob auf =0 oder 0 getestet wird Jeder Befehl kann so bedingt ausgeführt werden

35 2.8 Signalprozessor-Beispiele
Pipeline (C62x, C64x; Ganzzahlarith.): 11-stufig, 8-fach parallel Jede Pipelinestufe verarbeitet ein Paket, das aus bis zu 8 verschiedenen Instruktionen bestehen kann (VLIW-Pipeline) Pipelinestufen: PG: Program address generate PS: Program address send PW: Program access ready wait PR: Program fetch packet receive DP: Instruction Dispatch DC: Instruction Decode E1-5: Execute 1-5

36 2.8 Signalprozessor-Beispiele
Aufgabe der Ausführungsstufen für verschiedene Befehlstypen:

37 2.8 Signalprozessor-Beispiele
Pipeline (C67x, Gleitkommaarith.): 16-stufig, 8-fach parallel Pipelinestufen: Doppelt so viele Ausführungsstufen


Herunterladen ppt "2.8 Signalprozessor-Beispiele"

Ähnliche Präsentationen


Google-Anzeigen