2.8 signalprozessor-beispiele

37
1 Goethe-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-Signalprozess PD6382

Upload: sopoline-vance

Post on 01-Jan-2016

39 views

Category:

Documents


1 download

DESCRIPTION

2.8 Signalprozessor-Beispiele. 2.8.1 Ein einfacher Signalprozessor. NEC Audio-Signalprozessor PD6382. 2.8 Signalprozessor-Beispiele. Merkmale:. 2.8 Signalprozessor-Beispiele. Arithmetik-Einheit:. 2.8 Signalprozessor-Beispiele. Festkomma-Arithmetik, Multiplizierer: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 2.8 Signalprozessor-Beispiele

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

Page 2: 2.8 Signalprozessor-Beispiele

2Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.8 Signalprozessor-Beispiele

Merkmale:

Page 3: 2.8 Signalprozessor-Beispiele

3Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.8 Signalprozessor-Beispiele

Arithmetik-Einheit:

Page 4: 2.8 Signalprozessor-Beispiele

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)

Page 5: 2.8 Signalprozessor-Beispiele

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)

Page 6: 2.8 Signalprozessor-Beispiele

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

Page 7: 2.8 Signalprozessor-Beispiele

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

Page 8: 2.8 Signalprozessor-Beispiele

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)

Page 9: 2.8 Signalprozessor-Beispiele

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)

Page 10: 2.8 Signalprozessor-Beispiele

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

Page 11: 2.8 Signalprozessor-Beispiele

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)

Page 12: 2.8 Signalprozessor-Beispiele

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

Page 13: 2.8 Signalprozessor-Beispiele

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

Page 14: 2.8 Signalprozessor-Beispiele

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

Page 15: 2.8 Signalprozessor-Beispiele

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

Page 16: 2.8 Signalprozessor-Beispiele

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

Page 17: 2.8 Signalprozessor-Beispiele

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  

Page 18: 2.8 Signalprozessor-Beispiele

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 

   

Page 19: 2.8 Signalprozessor-Beispiele

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 

   

Page 20: 2.8 Signalprozessor-Beispiele

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

Page 21: 2.8 Signalprozessor-Beispiele

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

   

Page 22: 2.8 Signalprozessor-Beispiele

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)  

   

Page 23: 2.8 Signalprozessor-Beispiele

23Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.8 Signalprozessor-Beispiele

Pipeline-Bearbeitung dieses Programms: 

   

Page 24: 2.8 Signalprozessor-Beispiele

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

Page 25: 2.8 Signalprozessor-Beispiele

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

   

Page 26: 2.8 Signalprozessor-Beispiele

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

Page 27: 2.8 Signalprozessor-Beispiele

27Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.8 Signalprozessor-Beispiele

Funktionsumfang der ALUs

Page 28: 2.8 Signalprozessor-Beispiele

28Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.8 Signalprozessor-Beispiele

Funktionsumfang der ALUs (fortg.)

Page 29: 2.8 Signalprozessor-Beispiele

29Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.8 Signalprozessor-Beispiele

Funktionsumfang der ALUs (fortg.)

Page 30: 2.8 Signalprozessor-Beispiele

30Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte

2.8 Signalprozessor-Beispiele

Funktionsumfang der ALUs (fortg.)

Page 31: 2.8 Signalprozessor-Beispiele

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

Page 32: 2.8 Signalprozessor-Beispiele

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

Page 33: 2.8 Signalprozessor-Beispiele

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

Page 34: 2.8 Signalprozessor-Beispiele

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

Page 35: 2.8 Signalprozessor-Beispiele

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

Page 36: 2.8 Signalprozessor-Beispiele

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:

Page 37: 2.8 Signalprozessor-Beispiele

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