Digitale Signalverarbeitung

Digitale Signalverarbeitung

Digitale Signalprozessoren

  • Neben Rechnersystemen, die generisch/universell eingesetzt werden können (Desktop Rechner, Notebook) gibt es spezialisierte Rechnersysteme für die Signalverarbeitung Digitale Signalprozessoren (DSP)

Analoge (physikalische) Signale

  • Analoge Signale sind zeit- und wertkontinuierlich, d.h. man findet in einem beliebig kleinen Intervall [a,b] immer eine Zahl c für die gilt: a c b.

  • Ein analoges Signal besitzt aufgrund physikalischer Vorgänge die Eigenschaft keinen exakten und zeitlich konstanten Wert zu besitzten, sondern setzt sich zusammen aus einer Ãœberlagerung mit einem stochastischen Rauschsignal.

Digitale Signalverarbeitung

figanazoom


Abb. 1. Zoom eines analogen Signals in Zeit- und Wertdimension (vereinfacht)

Digitale Signalverarbeitung

Beispiele für analoge Signale

  • Spannung, Strom, Druck, Temperatur

  • Position eines Robotergelenks

figanarot

  • Entfernung eines Gegenstandes

figanadist

  • Lichtintensität und Lichtbilder (Bildverabeitung!)

Digitale Signalverarbeitung

Signalverarbeitung

  • Die Signalaufnahme und Erzeugung stellt die Ein-/Ausgabeeinheiten dar.
  • Die Signalverabeitung besteht aus einer Signal- oder Zielvorgabe verknüpft mit einem Algorithmus, der dieses Ziel erreichen soll.

Die digitale Signalverabeitung erfordert:

  1. Digitalisierung der analogen Eingangssignale (Analog-Digital-Wandler).
  2. Erzeugung von analogen Signalen aus digitaler Information (Digital-AnalogWandler).

figsigproc1

Digitale Signalverarbeitung

Digitalisierung als erste Stufe der Signalverarbeitung

  • Die AD-Wandlung setzt i.A. ein Frequenzfilter (Tiefpaß) am Eingang voraus, mit dem der zu erfassende Spektralbereich des Signals begrenzt wird.
  • In der sog. Sample&Hold- Schaltung wird das analoge Signal zeitdiskretisiert, und anschließend mit dem eigentlichen AD-Wandler in einen diskreten i.A. binärkodierten Digitalwert umgesetzt.

figdsp1

Digitale Signalverarbeitung

Digitale Signalverarbeitung als zweite Stufe

  • Die Eingangsdaten stehen als kontinuierlicher Datenstrom für die weitere Verarbeitung zur Verfügung. Ein Eingangsdatenstrom wird in einen Ausgangsdatenstrom transformiert.

Erzeugung analoger Signale als dritte Stufe

  • Die DA-Wandlung kann nur ein quasi-analoges Signal (immer noch zeit- und wertdiskret!) erzeugen. Eine Zeit- und Wertglättung findet hier ebenfalls unter Verwendung eines Tiefpaß-Frequenzfilters statt.

figdsp2

Digitale Signalverarbeitung

Anwendungen der Digitalen Signalverarbeitung (DSP)

  • Digitale Filterung
  • Faltungsoperationen
  • Korrelationsanalyse
  • Zeit Frequenztransformationen (FFT)
  • Wellenformerzeugung
  • Bildverarbeitung
    1. Digitale Filterung
    2. Mustererkennung
    3. 3D-Operationen
  • Spracherkennung
  • Steuerungs- und Regelungsaufgaben
    1. Positionsregelung
    2. Spannungsregelung
    3. Motorsteuerung (z.B. Drehzahl)
    4. Navigation

Analog-Digital-Wandler (ADC)

Ein AD-Wandler ist in drei Stufen unterteilt:

  1. Der Sampler führt eine Diskretisierung in der Zeitdimension durch;
  2. Der Quantisierer führt eine Diskretisierung in der Wertdimension durch, derart, daß ein quantisierter Wert einem Wertintervall q(n-Δ) q(n) < q(n+Δ), mit Δ/2 als Auflösung des Quantisierers, entspricht,
  3. und einem Kodierer, der das quantisierte Signal in ein Digitalwert kodiert, i.A. Kodierung nach dem Dualzahlensystem oder Graycode-Kodierung mit der Eigenschaft, daß aufeinanderfolgende Werte immer nur eine Änderung eines einzigen Bits hervorrufen.

Aufbau eines ADC

figadc1

Analog-Digital-Wandler (ADC)

Diskretisierung eines analogen Signals

figanadisc1

Sampler

figanasampl

Analog-Digital-Wandler (ADC)

Sampling Theorem

Im allgemeinen wird in der digitalen Signalverarbeitung ein analoges Signal periodisch mit einer festen Abtastfrequenz fsample=1/Tsample abgetastet.

  • Das Sampling-Theorem besagt, daß das zu digitalisierende Signal nur ein Frequenzspektrum bis zu einer maximalen Frequenz fsignal besitzen darf, ansonsten treten Artifakte bei der Signalerfassung auf:
\[f_{sample} > 2f_{signal}
\]

Analog-Digital-Wandler (ADC)

Artifakte (Aliasing)

figsamparti


Abb. 2. Frequenzen oberhalb fsample/2 werden im Frequenzspektrum gespiegelt - es treten Signalartifkate auf

Analog-Digital-Wandler (ADC)

ADC Verfahren und Architekturen

figadc2


Abb. 3. AD Verfahren (Parallel-, Wäge- und Zählverfahren) [HST, Tietze, 2002]

Analog-Digital-Wandler (ADC)

Zooming ADC

  • Resistive Sensoren, z.B. Strain-Gauge Sensoren, liefern eine nur kleine relative Änderung ihres Widerstandes in der Größenordung von 1%.
  • Annahme: Verwendung eines unkalibrierten und unkompensierten Sensors mit kleinen relativen Messbereich
  • Ein Fensterverfahren kann verwendet werden um einen solchen Sensor an das Messsystem anzupassen hohe Auflösung und Nutzung des vollen Bereichs
\[W(s) = k(s-off)
\]

figadczoom

Analog-Digital-Wandler (ADC)

Algorithm 1. (Autokalibration mit sukzessiver Approximation)

\[\begin{mdmathpre}%mdk
\mathid{sar}~\leftarrow \mathid{DIGITALRANGE}/2\\
\mathid{DAC}_{1}~\leftarrow \mathid{GAIN}_{0},~\mathid{DAC}_{2}~\leftarrow 0\\
\mathkw{WHILE}~\mathid{sar}~<>~0~\mathkw{DO}\\
\mdmathindent{2}\mathkw{IF}~\mathid{ADC}~>~\mathid{DIGITALRANGE}/2\\
\mdmathindent{2}\mathkw{THEN}~\mathid{DAC}_{2}~\leftarrow \mathid{DAC}_{2}~+~\mathid{sar}~\\
\mdmathindent{2}\mathkw{ELSE}~\mathid{DAC}_{2}~\leftarrow \mathid{DAC}_{2}~-~\mathid{sar}~\\
\mdmathindent{2}\mathkw{END}\\
\mdmathindent{2}\mathid{sar}~\leftarrow \mathid{shift}_\mathid{right}(\mathid{sar},1)~\\
\mathkw{END}\\
\mathid{off}~\leftarrow \mathid{DAC}_{2}-\mathid{DAC}_{1}
\end{mdmathpre}%mdk
\]

Daten- und Kontrollfluß

Daten- und Kontrollfluß in der digitalen Signalverarbeitung

  • Ein Algorithmus für digitale Signalverarbeitung (Digital Signal Processing DSP) besteht aus drei Komponenten:

    1. Signalerfassung - zeitlich diskret
    2. Signalverarbeitung
    3. Signalerzeugung
  • Es gibt verschiedene Darstellungsmethoden, um einen Algorithmus symbolisch zu veranschaulichen:

Signalflussdiagramm

  • Ein Signalflussdiagramm ist ein gerichteter Graph mit Knoten (Verabeitunsgelementen) und Kanten (Signalfluss) und beschreibt den Datenfluss explizit und den Kontrollfluss implizit.

  • Ein Signalflussdiagramm besteht aus folgenden Komponenten:

    • Arithmetische Operationen (Berechnung)
    • Verzögerungsglieder (Digitaler Sample&Hold, Register, Speicher)

Signalflussdiagramm

  1. Arithmetische Operationen:
    • Addition (Summierer)
\[y(n) = \sum_i x_i(n)
\]
  • Multiplikation (Verstärker, Skalierer)
\[y(n) = x(n) k
\]
  1. Verzögerungsglieder für eine Akquisitionsperiode Ts
\[y(n) = x(n-1)
\]

figsigflowZ

Signalflussdiagramm

figsigflowelem


Abb. 4. Elemente eines Signalflussgraphen [SODA,Constantinides et al.,2004]

Signalflussdiagramm

Z-Transformation

  • Signale können dual im Zeit- und Frequenzbereich/Raum beschrieben und manipuliert werden.

  • Signalverarbeitungssysteme können dual im Zeit- und Frequenzbereich entworfen werden Frequezraum i.A. beim filternetwurf bevorzugt

  • Die Z-Transformation ersetzt die Variablen des Signals, eine Zeitgröße, durch eine komplexe Frequenzvariable Z (Transformation von Signal- in den Spektralbereich):

\[F(z) = \sum_{n=0}^{\infty} f(n) Z^{-n}
\]
  • Zeit- und Spektralbereiche sind äquivalent, in jedem ist die vollständige Information über das Signal enthalten:
\[Z^{-1} \equiv 1/Ts \equiv \Delta n=-1 \; \mathrm{mit}\; T_s : \mathrm{Disketrisierungszeit}
\]

Signalflussdiagramm

Beispiel: Tiefpassfilter

  • Näherung einer Mittelwertbildung eines Signals S als exponentieller Mittelwertbildung Tiefpaß-Filter 1. Ordnung:
\[\bar S(n) = S(n)(1 - {b_1}) + \bar S(n - 1){b_1}
\]

figsigtp1


Abb. 5. Signalflussdiagramm eines Tiefpaß-Filter 1. Ordnung
Aufgabe
  1. Welchen Einfluss hat der Parameter b1 auf das Ãœbertragungsverhalten?

Signalflussdiagramm

Annotation

  • Bisherige Annahme: Fliesskommaarithmetik mit beliebiger Auflösung und Wertebereich

  • In der Realität werden aber Berechnungen in Werteintervallen verarbeitet, z.B. Datentyp integer[8] bedeutet ein Werteintervall (Wertemenge) {-128,..,127}

  • Signal- und Datenflussgraphen erlauben Annotierungen für und Propagationsanalyse von Datenwortbreiten und Skalierungen, die für den RTL Entwurf genutzt werden können.

  • RTL Entwurf vermeidet die Verwendung von Fliesskommaarithmetik (Ressourcenbedarf!), und verwendet stattdessen skalierte Ganzzahl- oder Festpunktarithmetik.

  • Daher müssen beim RTL Entwurf die Wortbreiten von Registern und arithmetischen Verarbeitungseinheiten festgelegt werden Werteberiche von Funktionseinheiten nicht immer unmittelbar ableitbar

Signalflussdiagramm

  • Festlegung und Skalierung der Datenwortbreite im Datenpfad findet in Abhängikeit von benötigten Wertebereichen und Operation statt (n: Bitbreite inkl. Vorzeichenbit):
\[\begin{gathered}
   + (n,n) \equiv n + 1 \hfill \\
  *(n,n) \equiv 2n \hfill \\
   - 100,99,..,0,..,100 \equiv n = 8 \hfill \\ 
\end{gathered}
\]

figwordscale


Abb. 6. Skalierung und Wortlängenverschiebung durch Bitstellenverschiebung mit Quantisierern [SODA,Constantinides et al.,2004]

Signalflussdiagramm

figwordscalex


Abb. 7. Beispiel einer Annotierung eines Berechnungsgraphens mit Wordlängen-Propagierung (n-bit,scale) [SODA,Constantinides et al.,2004]

Simulation von Signalflussdiagrammen

SIGFLOW

  • Dieser Simulator beschreibt einen Signalflussdiagramm textuel über einer Netzliste

  • Alle Berechnungselement können annotiert werden (Datenwortbreite) Integerarithmetik

  • Die Simulation erfolgt ereignisbasiert und schrittweise

  • Der zeitliche Verlauf von Signalen kann tabellarisch aufgelistet werden

Diagrammelemente

  • Summierer SUM(?width,?monitor)
  • Verstärker MUL(k:number,?width,?monitor)
  • Verzögerung R(?width,?monitor)
  • Generator GEN(options)
  • Monitor MON(options)

Simulation von Signalflussdiagrammen

figsimsigflow1


Abb. 8. Fensterbasierte GUI vom SIGFLOW Simulator (WEB App)

Simulation von Signalflussdiagrammen

Beispiel eines Simulationsmodells

var C = 0.5
var nodes = {
  // x:GEN({type:'pulse',start:20,end:60,on:100,off:0,bit:8,monitor:true}),
  x:GEN({type:'sin',min:20,max:60,period:10,bit:8,monitor:true}),
  m:MUL(C,8,true),
  s:SUM(10,true),
  r:Z(10,true),
  y:OUT(8,true),
  mon:MON('y(rms)','rms')
}
var net = {
  m:[nodes.x],
  s:[nodes.m,nodes.r],
  r:[nodes.s],
  y:[nodes.s],
  mon:[nodes.y],
}
model={nodes:nodes,net:net}

Simulation von Signalflussdiagrammen

Kodierung von Zahlenwerten

Ganzzahlkodierung

  • Gewichtete Binärzahlenkodierung und Wertebereich
\[{z_{(10)}} =  - {b_{N - 1}}{2^{N - 1}} + \sum\limits_{i = 0}^{N - 2} {{2^i}{b_i},} {\text{ }}W = \{-{2^{N -1}},..,0,..,{2^{N - 1}} - 1\}
\]
  • Negative Zahlen: Zweierkomplement bilden!

Festpunktkodierung

\[v{b_{n - 2}}{b_{n - 1}}..{b_0} = {( - 1)^v}{2^k} + \sum\limits_{i = 0}^{N - 2} {{2^i}{b_i},} {\text{ }k < 0}
\]
  • 2k ist ein Skalierungsfaktor mit k < 0 und verschiebt den Dezimalpunkt (Verscheibung von gebrochenen Teil in Ganzzahlteil)

Kodierung von Zahlenwerten

figfixedpoint1


Abb. 9. Beispiele für Wertebereiche und Auflösung bei der Festpunktkodierung

Kodierung von Zahlenwerten

Fliesskommakodierung

figieee754[5]

Kodierung von Zahlenwerten

figfloatpoint1

figfloatpoint2


Abb. 10. (A) Beispiele für Wertebereiche und Auflösung bei der Fliesspunktkodierung (oben ohne, unten mit Denormalisierung und lückenlosen Wertebereich um Nullpunkt) (B) Relative Abstände von Zahlenwerten in Abhängigkeit vom absoluten Wertebreich [5]

Signalflussdiagramm: Kombinatorische Logik

Ein einfacher Mittelwertfilter für drei Eingangssignale {x0,x1,x2} und einer Gleichrich- tungsfunktion f(x).

A. Spezifikation

Definition des Problems mit mathematischen Formalismus:

\[\begin{gathered}
  {x  =  x_0 c_0  +  x_1  c_1  +  x_2 c_2} \hfill \\
  {y  =  f(x)} \hfill \\
  {f(x)= }\left\{ {\begin{array}{*{20}{c}}
  {x,x > 0} \\ 
  {0,x \leqslant 0 } 
\end{array}} \right. \hfill \\ 
\end{gathered}
\]

wobei {c0,c1,c2} Konstanten sind.

B. Algorithmus

  • Auf algorithmischer Ebene wird das Problem in einzelne atomare Teilschritte zerlegt.

Signalflussdiagramm: Kombinatorische Logik

  • Das Datenflußdiagramm zerlegt dabei die Aufgabe in Teilprozesse und führt eine Partitionierung durch, das Kontrollflußdigramm nimmt eine zeitliche Ordnung vor.

  • Das Kontrollflußdiagramm beschreibt den sequenziellen Kontrollfluß, der sich aus dem Algorithmus und der Spezifikation ergibt.

  • Aus einem Flussdiagramm lassen sich direkt imperative Programme ableiten.

Kontrollfluss

  • Einer linearen Sequenz,
  • einer bedingten Verzweigung, und
  • Schleifen als sequenzielles Implementierungsmittel eines Algorithmus.

figflussdia1

Signalflussdiagramm: Kombinatorische Logik

Programm

Die Implementierung obiger Problemspezifikation in einer imperativen Programmiersprache könnte wie folgt aussehen:

\[\begin{mdmathpre}%mdk
\mdmathindent{2}\\
\mathid{y}~\leftarrow \mathid{x}_{0}*\mathid{c}_{0}\\
\mathid{y}~\leftarrow \mathid{y}+\mathid{x}_{1}*\mathid{c}_{1}\\
\mathid{y}~\leftarrow \mathid{y}+\mathid{x}_{2}*\mathid{c}_{2}\\
\mathkw{IF}~\mathid{y}~<~0~\mathkw{THEN}~\mathid{y}~\leftarrow 0~\mathkw{END}\\
\mdmathindent{2}
\end{mdmathpre}%mdk
\]

Alternativ mit Schleife (die eine Form lässt sich immer die andere transformieren):

\[\begin{mdmathpre}%mdk
\mdmathindent{2}\\
\mathid{y}~\leftarrow 0;\\
\mathkw{FOR}~\mathid{i}~=~0~\mathkw{TO}~2~\mathkw{DO}\\
\mdmathindent{2}\mathid{y}~\leftarrow \mathid{y}~+~\mathid{x}(\mathid{i})*\mathid{c}(\mathid{i});\\
\mathkw{END}\\
\mathkw{IF}~\mathid{y}~<~0~\mathkw{THEN}~\mathid{y}~\leftarrow 0~\mathkw{END}\\
\mdmathindent{2}
\end{mdmathpre}%mdk
\]

Signalflussdiagramm: Kombinatorische Logik

  • Ein Mikroprozessor besitzt i.A. nur eine arithmetische Logikeinheit und kann zu einem bestimmten Zeitpunkt nur eine arithmetische Operation durchführen.

  • Für die Summation werden daher mindestens 5 sequenzielle Operationen benötigt, unabhängig ob das Programm mit einer Schleife oder linear ausgeführt wird. Zusätzlich wird mindestens eine Operation für die Funktion f(x) benötigt.

  • Wenn ein Mikroprozessor ein Maschinenbefehl pro Taktzyklus ausführen kann, werden hier wenigstens 6 Taktzyklen benötigt. Nicht optimierte Mikroprozessoren benötigen für die Befehlsausführung jeweils 6 Taktzyklen, insgesamt 36 Taktzyklen für diese einfache Mittelwertbildung!

Signalflussdiagramm

  • Das Signalflußdiagramm ist unabhängig von einer Technologie oder Implementierung eines Problems, und beschreibt nur die wesentlichen Funktionen, aber nicht deren Verhalten oder Struktur.

Signalflussdiagramm: Kombinatorische Logik

figsigflowex1

Kombinatorische Digitallogik

Man kann nun zeigen, daß eine für dieses Problem angepaßte und spezifizierte Digitallogikschaltung aus dem Signalflussdiagramm direkt abgeleitet werden kann

  • Es stehen in der Digitaltechnik Systemblöcke für arithmetische und boolesche Operationen zur Verfügung, die durch sog. kombinatorische Logik realisiert werden können

Signalflussdiagramm: Kombinatorische Logik

  • Kombinatorische Logik besteht nur aus Grundlogikfunktionen wie Und, Oder- und Negierungsverknüpfung, deren Ausgänge nur eine Funktion der aktuell anliegenden Eingangssignale sind

    • Ausnutzung von Nebenläufigkeit von Teilprozessen
    • Parallelisierte Digitallogik

figsigflowex1dig


Abb. 11. Digitallogikschaltung direkt aus dem Signalflussdiagramm abgeleitet

Signalflussdiagramm: Kombinatorische Logik

Hardware Modell

  • Mit einer Hardware-Beschreibungssprache wie VHDL kann das Verhalten mi wenigen Anweisungen beschrieben werden.
  • VHDL-Beschreibung der kombinatorischen Logik aus dem vorherigen Beispiel:
signal x0,x1,x2: bit_vector(7 downto 0);
constant c0,c1,c2: bit_vector(7 downto 0) := X"12";
signal s1,s2,s3: bit_vector(7 downto 0);
signal s,y: bit_vector(7 downto 0);
...
s1 <= x0*c0; s2 <= x1*c1; s3 <= x2*c2;
s <= s1+s2+s3;
y <= s when s > X"00" else X"00";

Signallaufzeit

  • Die Bearbeitungszeit, d.h. die Zeitdifferenz zwischen dem gültigen Anliegen der Eingangsdaten/signale und dem gültigen Anliegen der Ausgangsdaten/signale, ist aber in der Realität ungleich Null.

  • Grund liegt in elektronischen Signalverzögerungen in den einzelnen Digitallogikbausteinen.

  • Die Signallaufzeiten summieren sich in der Bearbeitungskette auf und setzen sich zusammen aus Signallaufzeit TL(kein Signal breitet sich schneller als mit Lichtgeschwindigkeit aus) und einer elektronischen Signalverzögerung TE, die technologisch bedingt ist:

\[T_{signal} = \sum\limits_i {T_i^L + \sum\limits_j {T_j^E} }
\]

Signallaufzeit

  • Signalverzögerung zwischen Ein- und Ausgang einer Digitallogikschaltung:

figsigdelay1

Signalflussdiagramm: Sequenzielle Logik

Am Beispiel der Mittelwertbildung eines zeitlich sequenziellen Datenstroms soll die Signal- auswertung und deren Umsetzung in Digitallogik betrachtet werden.

Diskrete Abtastung eines analogen Signals und Mittelwert

figsigacq1

  • Berechnung des Mittelwerts einer Folge diskreter Werte mittels:
\[\bar S(N) = \frac{1}{N}\sum\limits_{n = 1}^{N \to \infty } {S(n)}
\]

Signalflussdiagramm: Sequenzielle Logik

  • Nicht geschlossen mit einem Signalflußdiagramm darstellbar, da es einen ausgewiesenen Anfangs- und Auswertezustand geben muß (Initialisierung erforderlich)

  • N ist die Anzahl der Samples und ist variabel!

Signalflussdiagramm: Sequenzielle Logik

Diskrete Abtastung eines analogen Signals und Mittelwert

  • Näherung: Exponentielle Mittelwertbildung mit einem Tiefpaß-Filter 1. Ordnung (Exponentielle Mittelwertbildung):
\[\bar S(n) = S(n)(1 - b) + b \bar S(n - 1)
\]

Exponentielle Mittelwertbildung mit rückgekoppelten Filter 1. Ordnung

figsigtp1

Signalflussdiagramm: Sequenzielle Logik

  • Sequenzielle Systeme benötigen Datenspeicher, sog. Register, um eine Evaluierung beim aktuellen Zeitpunkt mit retardierten Daten [n-1,n-2,…] zu ermöglichen.

  • Je größer der Parameter b im Tiefpaßfilter gewählt wird, desto größer ist der Einfluß von Signalwerten aus der Vergangenheit.

Signalflussdiagramm: Sequenzielle Logik

Abbildung des Signalflussdiagramms auf Register-Transfer Logik

  • Z-Glieder werden mit taktgesteuerten Registern implementiert

figsigtprtl1

Signalflussdiagramm: Sequenzielle Logik

VHDL

signal Z:signed(8);
signal X:signed(8);
signal Y:signed(8);
signal S1:signed(8);
signal M1:signed(8); signal M2:signed(8);
...
Zreg: process (CLK)
begin
  if CLK'event and CLK='1' then
    Z <= S1;
  end if;
end process;
M1 <= X * B1;
S1 <= M2 + M1;
M2 <= Z * B;
Y <= Z;
...

Signalflussdiagramm: FIR Filter

FIR-Filter (Finite-Impulse-Response)

figsigfir1

  • Spektraler Filter mit höherer Ordnung >1 benötigen Verzögerungsglieder.
  • Die Verzögerungsglieder bilden ein Schieberegister.
  • Schieberegister lassen sich mit generischen Mikroprozessoren und imperativen Programmiersprachen nur aufwendig realisieren, aber in Digitiallogik sehr effizienz umsetzen.

Signalflussdiagramm: Digitallogik

Aufgabe

  1. Erstelle das Signalflussdiagramm eines IR TP 1. Ordnung in DSP DIGFLOW

  2. Ermittle für verschiedene Frequenzen das Verhältnis der Größe von Eingangs- und Ausgangssignal (verwende einen rms Monitor)

  3. Wiederhole Aufgabe 2. für drei verschiedene b Werte

  4. Erstelle ein Frequenz-Signalstärke Diagramm (Verhältnis E/A) und bestimme die Grenzfrequenz bei der E/A=0.5 ( -3dB)

  5. Erstelle das Signalflussdiagramm eines FIR TP 3. Ordnung in DSP DIGFLOW

  6. Wiedehole 2-4

Sequenzielle Systeme

Schieberegister

Man unterscheidet zwei verschiedene Verfahren, Schieberegister zu implementieren:

Ripple Delay

  • Bei diesem Verfahren wird das Schieberegister linear im Speicher abgelegt.

  • Ein Schiebezyklus erfordert 2(-1)+1 Speicherzugriffe bei einem -tiefen Schieberegister, um die Daten zu verschieben.

  • Hardware

Cyclic Delay

  • Bei diesem Verfahren wird das Schieberegister als Ringpuffer mit einem Head- und einem Tail-Zeiger realisiert.

  • Es werden jeweils nur noch 2+1 Speicherzugriffe für eine Verschiebung benötigt.

  • Software

Sequenzielle Systeme

Ripple Delay

figsrripple

Cyclic Delay

figsrcyclic

Sequenzielle Systeme

Schieberegister

  • Die Realisierung eines Schieberegisters mit Digitallogik ist direkt möglich unter Verwendung von sog. D-Flip-Flop-Speichern. Ein D-Flip-Flop besitzt einen Datenein- und Ausgang.

  • Das Datum D (1 Bit) wird bei einem Taktereignis gespeichert und am Ausgang Q ausgegeben.

  • Nach dem Taktereignis (z.B. Wechsel des Taktsignals 0 1) ist das Ausgangssignal unabhängig vom Eingangssignal.

figsrdig


Abb. 12. Digitales Schieberegister (Links höchstes, rechts niederwertigstes Bit → rechtsschiebend)

Sequenzielle Systeme

  • Mit einer Hardwarebeschreibungssprache wie VHDL kann das Verhalten eines -tiefen und R-bit breiten Schieberegisters mit wenigen Verhaltensanweisungen beschrieben werden.

Example 1. (VHDL Beschreibung eines Schieberegisters)

signal shift_reg: std_logic_vector(7 downto 0);
...
process()
begin
  if clk'event and clk='1' then
    for i in 7 downto 1 loop
      shift_reg(i) <= shift_reg(i 1);
    end loop;
    shift_reg(0) <= d;
  end if;
end;
y <= shift_reg(7);

Hardware- und Softwarentwurf

Kategorien

Programmgesteuerte generische Maschinen

Hardware ist Mikroprozessor der für generische Anwendungen ausgelegt ist und programmgesteuert ist. Das Programm ist die Software die die Anwendung beschreibt.

Erweiterbare Prozessoren

Generische Prozessoren die durch Erweiterungen (i.A. Optimierungen) spezialisiert werden können. Die Anwendung ist teils in Hardware, überwiegend in Software enthalten.

Konfigurierbare Prozessoren

Hardware-Software-Codesign. Sowohl der Prozesor als auch das Programm sind anwendungsspezifisch.

Register Transfer Logik

Die Anwendung befindet sich vollständig in Hardware, die nicht mehr programmgesteuert sondern vollstädnig anwendungsspezifisch ist Reine Digitallogikschaltung und reines Hardwaredesign.

Hardware- und Softwarentwurf

Erweiterbare Mikroprozessoren

  • Als Kompromiss-Lösung bieten sich sog. erweiterbare Prozessoren an: μP-Kern ist vorgegeben, kann aber erweitert werden durch

    • Spezielle Befehle, z.B. ×R-Schieberegister;
    • Register (Anzahl und Datenbreite);
    • Funktionen/Operatoren.
  • μP-Peripherie kann anwendungsspezifisch entworfen und hinzugefügt werden (Anzahl, Funktion).

Vorteile

  • Compiler existieren und sind getestet;
  • μP-Kern ist verifiziert;
  • Flexbilität durch Softwareentwurf.

Nachteile

  • Immer noch generischer Ansatz mit Nachteilen: Peformanz, Energieeffizienz

Hardware- und Softwarentwurf

Konfigurierbare Mikroprozessoren

  • Als Kompromisslösung bieten sich weiterhin sog. vollständig konfigurierbare Prozessoren an.
  • μP-Kern ist frei definierbar und anwendungsspezifisch:
    • Spezielle und generische Befehle, z.B. ×R-Schieberegister,
    • Allgemeine und spezielle Register (Anzahl und Datenwortbreite);
    • Funktionen/Operatoren (Datenwortbreite, Stelligkeit);
    • Anwednungsspezifische μP-Peripherie (Anzahl, Funktion).

Vorteile

  • Flexbilität durch optimale Anpassung des Mikroprozessors an Problemspezifikation

Nachteile

  • Compiler existieren nicht, müssen erst aus Prozessorspezifikation abgeleitet werden
  • μP-Kern ist nicht getestet und verifiziert.
  • Weiterhin eingeschränkte Parallele Datenverarbeitung

Parallele Datenverarbeitung

Parallelisierung

Partitionierung eines Algorithmus und Programms in mehrere nebenläufige Einheiten (Prozesse), die auf N Prozessoren parallel ausgeführt werden.

  • Anwendungsspezifisch angepasste Architektur (Speicher,..) erfordferlich!

figparalg1


Abb. 13. Parallelisierung eines Algorithmus (hier verschachtelte Schleife)

Parallele Datenverarbeitung

Parallelität durch Multiprozessorsysteme

Die einzelnen Prozessoren führen Teilprozesse aus. Ein wichtiger Bestandteil bei der Parallelisierung auf Prozeßebene ist die Interprozeßkommunikation die zwei Funktionen erfüllt:

  1. Datenaustausch (Input- und Output-Daten)

  2. Synchronisation von einzelnen Prozessoren (IPC, Schutz von kritischen Programmbereichen, z.B. gemeinsame genutzte Datenstrukturen, Abhängigkeiten der Instruktionsreihenfolge usw.)

Es gibt zwei verschiedene Hardware/Software-Lösungen für eine N-Prozessor-Realisierung:

Shared Memory Systems

  • Die einzelnen Mikroprozessoren teilen sich gemeinsamen Hauptspeicher.
  • Gemeinsamer Speicherbus ist Engpaß
  • Geringer Kommunikationsoverhead der Prozeßsynchronisation, Datenaustausch zwischen einzelnen Mikroprozessoren durch Speicherzeiger.

Parallele Datenverarbeitung

Distributed Memory Systems

  • Hier werden N unabhängige Rechnersysteme mit jeweils eigenen Hauptspeicher über ein Netzwerk miteinander zu einer virtuellen Maschine gekoppelt.
  • Lokal maximale Rechenleistung und maximaler Datendurchsatz, aber hoher Kommunikationsoverhead der Prozesssynchronisation und geringerer Datendurchsatz bei Datenaustausch zwischen einzelnen Knoten.

Parallelisierung

Der Programmfluss kann in Daten- und Kontrollfluss zerlegt werden, die jeweils im Daten- und Kontrollpfad eines Datenverarbeitungssystems verarbeitet werden.

Kontrollpfad

Parallelität auf Prozessebene (Multithreading) mit Interprozesskommunikation Mittlere bis geringe Beschleunigung, mittlerer Overhead

Datenpfad

Parallelität auf Dateninstruktionsebene ohne explizite Kommunikation Hohe Beschleunigung, geringer Overhead

Register Transfer Logik (RTL)

Jeder generische Mikroprozessor und i.A. jedes anwendungsspezifische Digitallogiksystem läßt sich in die zwei funktionale Bereiche aufteilen:

  1. Datenfluss Datenpfade
  2. Kontrollfluss Kontrollpfad Zustandsautomat
  • Beide Bereiche bilden einen sog. Systemblock. Ein Gesamtsystem kann in eine Vielzahl von Systemblöcken partitioniert werden.

Elemente des Datenpfades

  1. Arithmetische, logische und boolesche Funktionsblöcke (Operatoren),
  2. Datenregister zur Speicherung von Daten, z.B. für Zwischenergebnisse von arithmetischen Operationen,
  3. Multiplexer zur Steuerung des Datenflusses,
  4. Speicherblöcke (RAM) für den Datenaustausch zwischen verschiedenen Systemblöcken
  • Der Datenpfad belegt größten Anteil von Logikgattern, der Zustandsautomat den kleinsten Anteil.

Register Transfer Logik (RTL)

Zustandsautomat

  • Der Zustandsautomat ist für die Ablaufsteuerung in einem Systemblock zuständig und ist zentraler Bestandteil.

    1. Der Zustandsautomat steuert den Datenfluß im Datenpfad;
    2. Er ist für die Ein- und Ausgabesteuerung zuständig,
    3. Implementierung von Handshake-Protokollen für den Datenaustausch mit anderen Systemblöcken (auch IPC), und
    4. Er behandelt Ausnahmesignale und Fehler.
  • Taktgesteuert findet der Ãœbergang zwischen verschiedenen Zuständen des Systems statt.

Register Transfer Logik (RTL)

figfsmex1


Abb. 14. Beispiel Zustandsdiagramm und Ablaufsteuerung

Register Transfer Logik (RTL)

  • In der Register-Transfer-Logik (RTL) werden Daten- und Kontrollpfade werden mit kombinatorischer Logik und Registern implementiert
  • Bei der RTL findet eine schrittweise und taktgesteuerte Bearbeitung des Datenflusses mittels Registern statt.

figrtlex1


Abb. 15. Beispiel RTL (Links) Datenpfad (Rechts) Kontrollpfad