1Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
2.8.1 Ein einfacher Signalprozessor
NEC Audio-SignalprozessorPD6382
2Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Merkmale:
3Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Arithmetik-Einheit:
4Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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)
5Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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 12 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)
6Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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
7Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Daten- und Koeffizientenspeicher Daten- und Koeffizienten-speicher unterscheiden sich im wesentlichen in ihrer Wortbreite und ihrerAdressierungslogik
8Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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)
9Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Peripherie 5 serielle Audio-Schnittstellenzum 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)
10Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Jede Schnittstelle kann ein Stereo-Signal übertragen
BCLKx: serieller ÜbertragungstaktLRCKx: 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
11Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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)
12Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Neben den seriellen Audio-Schnittstellen verfügt der Prozessor über eine Schnittstellefür ein externes Delay-RAM für Hall-Effekte. max. RAM-Größe :256k x 16 (2 Mbit)
Lesezeiger 2
einstellbareOffsets
Speicherzelle 0Speicherzelle 1
. . .
Speicherzelle n
. . .
Schreibzeiger
Lesezeiger 1
Lesezeiger 64
Delay-RAM
13Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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
14Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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
Signale: SI, SO: Serial In, Out Cn/D: Kommando/Daten SCKn: serieller Übertragungstakt CSn: Chip Select RDY: Schnittstelle bereit für
neues Telegramm
15Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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
Komando Datenwort 1 Datenwort n . . .
Telegrammformat
16Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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
17Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Beispiel: OPA Instruktion ALU1 bestimmt die ALU-OperationP-SEL wählt unter verschiedenen Operanden am Eingang der ALUCPINC bestimmt, ob der Adresszeiger für das C-RAM inkrementiert wirdDPHM ändert die drei höchstwertigen Bits des Adresszeigers für das D-RAMDPL1 ändert die vier niederwertigen Bits des Adresszeigers für das D-RAMDST1 bestimmt, wohin das auf dem internen Datenbus (IDB) befindliche
Datenwort transportiert wirdSRC legt die „Quelle“ des Datums auf dem IDB fest
18Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
Kommando Instr. Write
0 0 0 0 0 0 0 1
Adresse im Prog.-Speicher AAAAAAAA
Instruktion Bits 22-16
0 0 I I I I I I
Instruktion Bits 15-8
I I I I I I I I
Instruktion Bits 7-0
I I I I I I I I SI
Cn/D
SCKn
RDY
. . . . .
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
19Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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
20Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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:
Abtast-frequenz
Abtast-periode
maximale Programmlänge
bei 18.432 Mhz (108 ns)
Beispiel
33 kHz 31.25 s 288 Instruktionen Satellitenrundfunk 44.1 kHz 22.68 s 208 Instruktionen Compact Disk 48 kHz 20.83 s 192 Instruktionen Digital Audio Tape
21Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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
22Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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)
23Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Pipeline-Bearbeitung dieses Programms:
Anwendungsbeispiel
Digitales Stereo Audio Effekt-Gerätmit Signalprozessor und Mikrocontroller
P0
Host-Schnitt- stelle
Delay-Schnitt-stelle
DI1
DO1
BCLK1
LRCK1
fAbtast = 44.1 kHz
fSerial = fAbtast * 16
P1
P2
(Koeffizienten- undProgrammtransfer)
Signalprozessor
NEC PD6382
Tiefpaß
fmax = 20 kHz
AD-Wandler
Analog-Multiplexer
Tiefpaßfmax = 20
kHz
Tiefpaßfmax = 20
kHz
DA-Wandler
Analog-Demultiplexer
Tiefpaßfmax = 20
kHz
Tiefpaßfmax = 20
kHz
Abtast-Takt
Delay-RAM
2 MBit
Mikrocontroller
NEC PD78P312
Bedienfeld
Anzeigefeld
Audio -InLinks Rechts
Links Rechts Audio -Out
25Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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
26Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Blockdiagramm der C6000 Familie
16 Register pro Registerfile
Dual-Port Datenspeicher/Cache
Datenpfad- /Registerbreite 32 Bit (C62x,C67x) oder 64 Bit (C64x)
Single-Port Programmspeicher/ Cache, 256 Bit Zugriffsbreite
27Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Funktionsumfang der ALUs
28Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Funktionsumfang der ALUs (fortg.)
29Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Funktionsumfang der ALUs (fortg.)
30Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Funktionsumfang der ALUs (fortg.)
31Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Befehlsverarbeitung
Es werden immer Pakete zu je 8 Befehlen geholt
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
Instruktion1
Instruktion2
Instruktion3
Instruktion4
Instruktion5
Instruktion6
Instruktion7
Instruktion8
32Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Beispiel:
Treten keine (Daten-, Struktur-) Konflikte auf, so können im besten Fall 8 Befehle gleichzeitig verarbeitet werden
33Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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
34Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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
35Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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 generatePS: Program address sendPW: Program access ready wait PR: Program fetch packet receive
DP: Instruction DispatchDC: Instruction Decode
E1-5: Execute 1-5
36Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Aufgabe der Ausführungsstufen für verschiedene Befehlstypen:
37Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
2.8 Signalprozessor-Beispiele
Pipeline (C67x, Gleitkommaarith.): 16-stufig, 8-fach parallel
Pipelinestufen:
Doppelt so viele Ausführungsstufen