Technische Grundlagen der Informatik WS 2008/2009 18. Vorlesung Klaus Kasper WS 2008/2009 Technische Grundlagen der Informatik 1 Inhalt • Wiederholung: Endliche Automaten – Moore M – Mealy – Zwei Beispiele • Codierung – Huffman-Codierung – Codesicherung – Hamming-Distanz g WS 2008/2009 Technische Grundlagen der Informatik 2 Automaten • Ein endlicher Automat ist ein Modell, das zur Modellierung diverser g verwendet werden Problemstellungen kann. • Ursprung: Biologie (McCulloch, (McCulloch Pitts 1943), Elektrotechnik (Mealy, 1955), Linguistik (Chomsky, 1956). WS 2008/2009 Technische Grundlagen der Informatik 3 Anwendung in der Digitaltechnik • Mit endlichen Automaten kann eine abstrakte Beschreibung von Schaltwerken realisiert werden. • auch: Finite State Machine (FSM) • Zur Z Darstellung D t ll d der M Modellierung d lli werden häufig Zustandsdiagramme und Zustandsfolgetabellen verwendet. WS 2008/2009 Technische Grundlagen der Informatik 4 Prinzip • Aktuelle Zustand des Automaten wird in einem Speicher p (Register) gehalten. • Aus dem aktuellen Zustand und den Eingangssignalen wird ein Folgezustand g berechnet. • Der neue Zustand wird (synchronisiert) in den Speicher geschrieben. WS 2008/2009 Technische Grundlagen der Informatik 5 Definition • Ein endlicher Automat ist ein Fünftupel A=(X,Y,S,f,g). • X ist ein endliches nichtleeres Eingabealphabet. • Y ist ein endliches nichtleeres Ausgabealphabet. • S iistt eine i endliche dli h nichtleere i htl M Menge von Zuständen. • f: Zustands(überführungs)funktion • g: Ausgabefunktion WS 2008/2009 Technische Grundlagen der Informatik 6 Moore Automat Moore-Automat Ausgangssignale A i l sind i d nur vom Zustand abhängig. hängig S = f(S*,X) Y = g(S) g( ) WS 2008/2009 Technische Grundlagen der Informatik 7 Mealy Automat Bei Mealy-Automaten wechselt das Ausgangsg g signal schon bei der Veränderung des Eingangssignals. S = f(S*,X) Y = g(S g(S,X) X) WS 2008/2009 Technische Grundlagen der Informatik 8 Zustandsgraphen g p (Zustandsdiagramme) • Ein Zustandsgraph besteht aus Knoten und gerichteten Kanten. • Die Knoten beschreiben die Z Zustände. stände • Die Kanten stellen die Übergänge zwischen den Zuständen dar. • Vor dem ‚/‘ steht die Eingangsbedingung, hinter dem ‚/‘ steht das Ausgangssignal. WS 2008/2009 Technische Grundlagen der Informatik 9 Beispiel: SR Flip-Flop (S ∧ R ) /1 S /0 WS 2008/2009 (S ∧ R ) / 0 Technische Grundlagen der Informatik R /1 10 Endliche Automaten für Schaltwerke WS 2008/2009 Technische Grundlagen der Informatik 11 Zyklische Folgeschaltung t A B 0 0 0 1 1 1 2 1 0 3 1 1 4 0 0 5 0 1 6 0 0 7 1 1 WS 2008/2009 C 0 1 1 0 1 0 0 1 Das System wird vom Takt getrieben 6 Zustände Zustände, zyklische Wiederholung 3 Flip-Flops können 8 Zustände realisieren Realisierung mit SR Flip Flip-Flops Flops Technische Grundlagen der Informatik 12 Zyklische Folgeschaltung AS = C ∧ B BS = B CS = C ∧ (B ∨ A) AR = C ∧ B BR = B CR = C ∧ B WS 2008/2009 Technische Grundlagen der Informatik 13 Endliche Automaten für Schaltwerke WS 2008/2009 Technische Grundlagen der Informatik 14 Zyklische Folgeschaltung A B C 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 0 1 0 D1 D2 D3 Erstellen Sie die Zustandsfolgetabelle WS 2008/2009 Technische Grundlagen der Informatik 15 Zyklische Folgeschaltung A B C D1 D2 D3 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 •Ermitteln Ermitteln Sie die Minimalformen •Skizzieren Sie die Schaltung g Zustandsgraphen g p •Zeichnen Sie den vollständigen WS 2008/2009 Technische Grundlagen der Informatik 16 D1 A B C D1 D2 D3 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 D2 B C 1 1 1 * 0 * 0 0 D2 = B WS 2008/2009 A C B 1 0 1 * 0 * 1 0 A D1 = (C ∧ A) ∨ (C ∧ B ) D3 C B 1 0 0 * 0 * 1 1 A D3 = (B ∧ A) ∨ (C ∧ B ) Technische Grundlagen der Informatik 17 Endliche Automaten für Schaltwerke WS 2008/2009 Technische Grundlagen der Informatik 18 Schaltungsaufbau Verknüpfungsnetzwerk (VN) WS 2008/2009 Technische Grundlagen der Informatik 19 vollständiger Aufbau WS 2008/2009 Technische Grundlagen der Informatik 20 Zustandsgraph Bedingungen? vollständig? WS 2008/2009 Technische Grundlagen der Informatik 21 Vollständiger g Zustandsgraph g p WS 2008/2009 Technische Grundlagen der Informatik 22 Übung Es sollll eine E i zyklische kli h F Folgeschaltung l h lt mit it JK JK-FlipFlops Fli Fl realisiert werden, die in Einerschritten von 0 bis 2 aufwärts zählt und anschließend wieder abwärts: {Y1,Y0} = { 0, 1, 2, 1, …ab hier wiederholen } Skizzieren Sie einen vollständigen Zustandsgraphen der geforderten Folgeschaltung. Geben Sie die Ausgangssignale in der Form -/Y1Y0 an den Übergängen g g an. Nummerieren Sie die FlipFlops mit A, B, .. und erstellen Sie die Wertetabellen für alle J- und K-Eingänge g g und die gewünschten Ausgänge Y1, Y0 Erstellen Sie die KV-Diagramme g für alle J- und K-Eingänge g g und die Ausgänge Y1 und Y0 und geben Sie die Gleichungen (DMF) für die Eingangsbeschaltungen an. WS 2008/2009 Technische Grundlagen der Informatik 23 Übung Skizzieren Sie ein vollständiges Zustandsübergangsdiagramm der geforderten Folgeschaltung. Geben Sie die Ausgangssignale in der Form -/Y1Y0 an den Übergängen an. {Y1,Y0} = { 0, 1, 2, 1, …ab hier wiederholen } WS 2008/2009 Technische Grundlagen der Informatik 24 Übung Nummerieren Sie die FlipFlops mit A A, B B, .. und erstellen Sie die Wertetabellen für alle J- und K-Eingänge und die gewünschten Ausgänge g g g Y1,, Y0 QB QA JB KB JA KA Y 1 Y 0 0 0 1 0 WS 2008/2009 Technische Grundlagen der Informatik 0 1 0 1 25 Übung Nummerieren Sie die FlipFlops mit A A, B B, .. und erstellen Sie die Wertetabellen für alle J- und K-Eingänge und die gewünschten Ausgänge g g g Y1,, Y0 QB QA JB KB JA KA Y 1 Y 0 0 0 1 1 WS 2008/2009 0 1 0 1 0 0 1 0 Technische Grundlagen der Informatik 0 1 0 1 26 Übung Nummerieren Sie die FlipFlops mit A A, B B, .. und erstellen Sie die Wertetabellen für alle J- und K-Eingänge und die gewünschten Ausgänge g g g Y1,, Y0 QB QA JB KB JA KA Y 1 Y 0 0 0 1 1 WS 2008/2009 0 1 0 1 0 1 * * * * 0 1 1 * 1 * * 1 * 1 Technische Grundlagen der Informatik 0 0 1 0 0 1 0 1 27 Übung JB = QA KB = QA ’1’ Y1 = !QA * QB Y0 = QA J clk ’1’ JA = 1 KA = 1 J FF A clk K FF B K & Y0 WS 2008/2009 Y1 Technische Grundlagen der Informatik 28 Codierung WS 2008/2009 Technische Grundlagen der Informatik 29 Nachrichten und Information • eine Nachricht ist eine Zeichenfolge, die nach bestimmten Regeln gebildet wird • Bsp. Bsp Glockenschlag der Kirchturmuhr • Information ist die Bedeutung einer Nachricht für den Empfänger • Bsp. Tageszeit WS 2008/2009 Technische Grundlagen der Informatik 30 Bits und Bitfolgen • Bit: Maßeinheit der Information • 1 Bit ist die Informationsmenge einer Entscheidungsfrage mit zwei Möglichkeiten • Bsp. p g groß oder klein; wahr oder falsch • zur formalen Darstellung der Antwort genügen zwei Zeichen (Bsp (Bsp. 0/1) WS 2008/2009 Technische Grundlagen der Informatik 31 Beantwortung komplexerer Fragen g • Welcher Buchstabe wurde geschrieben? • Alphabet: A A, B B, C C, D D, E E, F F, G G, H • Welche und wie viele Fragen werden b öti t um zu entscheiden benötigt t h id welcher l h Buchstabe geschrieben wurde? WS 2008/2009 Technische Grundlagen der Informatik 32 Bäume • Bäume sind in der Informatik eine wichtige und d hä häufig fi verwendete d t D Datenstruktur. t t kt • Ein Baum besteht aus Knoten und Kanten. • Kanten verbinden immer zwei Knoten. • Die Knoten werden in Ebenen angeordnet. • Die Anzahl der Ebenen ist die Tiefe des Baums. • Die Knoten der letzten Ebene werden als Blätter bezeichnet. • In Binärbäumen sind Knoten mit max. 3 anderen Knoten verbunden. WS 2008/2009 Technische Grundlagen der Informatik 33 Entscheidungsbaum WS 2008/2009 Technische Grundlagen der Informatik 34 Codierung und Decodierung • Zeichenvorrat: endliche Menge von g unterscheidbaren Dingen • Zeichen: ein Element des Zeichenvorrats • Code: Vorschrift für die eindeutige g Zuordnung der Zeichen eines Zeichenvorrats zu denjenigen eines anderen Zeichenvorrats WS 2008/2009 Technische Grundlagen der Informatik 35 Kenngrößen g der Information Informationsgehalt: I(N) = ld(1/p) wobei b i p die di Wahrscheinlichkeit W h h i li hk it fü für di die N Nachricht h i ht N ist i t Entscheidungsgehalt: H0(n) = ld(n) wobei b i n di die A Anzahl hl d der unterschiedlichen t hi dli h N Nachrichten h i ht einer Informationsquelle bezeichnet mittlerer Informationsgehalt f (Entropie): ( ) HQ = ∑ I (Ni )pi = ∑ pi ld(1/ pi ) = −∑ pi ld( pi ) i i i Die Entropie wird maximal, wenn alle Ereignisse gleich wahrscheinlich sind, also pi = 1/n gilt. WS 2008/2009 Technische Grundlagen der Informatik 36 Codierung g und Codesicherung g • ursprünglich für die Quellen- und Kanalcodierung entwickelt • wird auch für die Übertragung und Speicherung großer Datenmengen in EDV Anlagen verwendet EDV-Anlagen Effiziente Codierung der Daten Daten. Störungen d Stö der D Datenübertragung t üb t sollen ll detektiert und eventuell korrigiert werden. WS 2008/2009 Technische Grundlagen der Informatik 37 Huffman-Codierung Situation: Die Zeichen des Zeichenvorrats werden mit unterschiedlicher Wahrscheinlichkeit verwendet verwendet. Gesucht: Codierung des Zeichenvorrats Zeichenvorrats, die eine minimale mittlere Länge der Codewörter li f t liefert. Minimierung Mi i i d der zu üb übertragenden t d b bzw. zu speichernden Datenmenge. WS 2008/2009 Technische Grundlagen der Informatik 38 Huffman-Codierung • Huffman-Baum (H-Baum) liefert eine Lösung für die Minimierung der mittleren Länge der Codierung der Codewörter. • Der H-Baum ist ein Binärbaum, der iterativ erstellt werden kann. • Die Blätter des Baums stellen die Codewörter dar. dar • Die Codierung ergibt sich aus der K t b Kantenbeschriftung h ift von d der W Wurzell zu d den Blättern WS 2008/2009 Technische Grundlagen der Informatik 39 Mittlere Länge g für Codierung g n L = ∑ pi li i =1 L: mittlere Länge für Codierung eines Zeichens n: Anzahl der Zeichen des Zeichenvorrats pi: Wahrscheinlichkeit für das Auftreten des Zeichens i li: Länge der Codierung für Zeichen i WS 2008/2009 Technische Grundlagen der Informatik 40 Konstruktion H-Baum 1. S 1 Schritt: h itt S Suche h zweii Z Zeichen i h xi und d xj der d IInformationsquelle f ti ll mit kleinsten Wahrscheinlichkeiten 2. Schritt: Bilde einen Knoten Kij des Codebaums; ordne ihm die Wahrscheinlichkeit p(Kijj) = p(xi) + p(xj) zu. Verbinde Kijj mit xi und xj . 3. Schritt 3 Schritt: Entferne xi und nd xj aus a s der Informationsquelle Informationsq elle und nd füge ihr statt dessen Kij hinzu. 4. Schritt: Gehe zu Schritt 1, falls die Informationsquelle noch mehr als ein Zeichen enthält. 5. Schritt: Füge (letztes) Zeichen als Wurzel zum Codebaum. Beschrifte die Kanten wie oben erläutert erläutert. WS 2008/2009 Technische Grundlagen der Informatik 41 Beispiel (H-Baum) xi pi A B C D E F G .25 .21 .18 .14 .09 .07 .06 Auswahl: F (.07), G (.06) K1 = .13 Hinweis: Die kleinere Wahrscheinlichkeit wird immer links angeordnet und die linke Kante wird immer mit 0 codiert. WS 2008/2009 Technische Grundlagen der Informatik 42 Beispiel p ((H-Baum)) xi pi A B C D K1 E .25 .21 .18 .14 .13 .09 Auswahl: E, K1 K2 = .22 WS 2008/2009 Technische Grundlagen der Informatik 43 Beispiel (H-Baum) (H Baum) xi pi A K2 B C D .25 .22 .21 .18 .14 Auswahl: D D, C K3 = .32 32 WS 2008/2009 Technische Grundlagen der Informatik 44 Beispiel (H-Baum) xi K3 pi .32 .25 .22 .21 WS 2008/2009 A K2 B Auswahl: B,K2 K4 = .43 Technische Grundlagen der Informatik 45 Beispiel (H-Baum) xi K4 pi .43 .32 .25 WS 2008/2009 K3 A Auswahl: A, K3 K5 = .57 Technische Grundlagen der Informatik 46 Beispiel (H-Baum) xi K5 pi .57 57 .43 43 WS 2008/2009 K4 Auswahl: K4, K5 K6 = 1.0 Technische Grundlagen der Informatik 47 Beispiel (H-Baum) xi pi A B C D E F G .25 .21 .18 .14 .09 .07 .06 A: 10 A G: 0110 1001110111010 A F F E WS 2008/2009 Technische Grundlagen der Informatik 48 Fazit 7 Zeichen L = 3 bit/Z bit/Zeichen i h b beii C Codierung di gleicher l i h g Länge Huffman: xi pi li A B C D E F G .25 .21 .18 .14 .09 .07 .06 2 2 3 3 3 4 4 L = 2,67 bit/Zeichen WS 2008/2009 Technische Grundlagen der Informatik 49 Codesicherung g • Stö Störung: B Beii d der Üb Übertragung t oder d S Speicherung i h kippen einzelne Bits. • Wenn W alle ll C Codeworte d t als l N Nutzworte t t verwendet d t werden, führt jede Störung zu einem neuen Nutzwort Der Code ist nicht redundant. Nutzwort. redundant • Es werden Redundanzen eingebaut, die eine Erkennung und eventuell Korrektur der Bitfehler gestatten. • Bspw. Bspw kann die Codierung neben Nutzworten auch Pseudoworte enthalten, deren Empfang eine Störung signalisiert. signalisiert WS 2008/2009 Technische Grundlagen der Informatik 50 Einfache Verfahren • S Sender d üb überträgt t ä t di die N Nachricht h i ht zweimal. i l Empfänger kann beide Sendungen vergleichen. • Sender wartet bis der Empfänger die gesendete Nachricht zurücksendet. Der Sender kann die gesendete und die empfangene Nachricht vergleichen (Handshake-Verfahren). • Beide Verfahren haben den Nachteil, dass die Datenmenge g verdoppelt pp wird und keine automatische Korrektur möglich ist. WS 2008/2009 Technische Grundlagen der Informatik 51 Einfaches fehlerkorrigierendes Verfahren • Jedes einzelne Bit wird dreifach wiederholt. • Bei jeder empfangenen Triade wird an Hand des majoritären Wertes entschieden. • Einzelne Ei l Bi Bitfehler f hl kö können so kkorrigiert i i werden. WS 2008/2009 Technische Grundlagen der Informatik 52 Beispiel • Mö Mögliche li h F Fehler hl b beii d der Üb Übertragung von 000: 110, 101, 011, 111 • Mit p= 0,1 Wahrscheinlichkeit für einen Bitfehler und q die Wahrscheinlichkeit für eine korrekte Übertragung: P = p 2 q + pqp + qp 2 + p 3 = 3 p 2 q + p3 = 3( p 2 (1 − p)) + p 3 = 3 p 2 − 3 p3 + p3 = 3 p 2 − 2 p3 = 0, 0 03 − 0, 0 002 = 0, 0 028 WS 2008/2009 Technische Grundlagen der Informatik 53 Paritätsbit Die Nutzwörter werden um ein Paritätsbit ergänzt, so dass – in Abhängigkeit vom Verfahren – die Codewörter immer eine gerade oder ungerade Anzahl von 1-Bits enthalten. Der Einsatz von Paritätsbits wird auch als Z i h Zeichenoder d Q Querparität ität b bezeichnet. i h t WS 2008/2009 Technische Grundlagen der Informatik 54 Blocksicherung I Daten werden für die Übertragung zu einem Block zusammengefasst zusammengefasst. Beispiel: ungerade Zahl an 1 1-Bits Bits für Zeilen und Spalten Codewort D3 D2 D1 D0 PB CW1 0 1 0 1 1 CW2 1 1 0 0 1 CW3 1 0 0 0 0 CW4 1 1 1 1 0 CW5 0 0 0 0 1 Prüfwort 0 0 1 1 0 Einzelne Bitfehler können detektiert und korrigiert werden werden. WS 2008/2009 Technische Grundlagen der Informatik 55 Blocksicherung II Codewort D3 D2 D1 D0 PB CW1 0 1 0 1 1 CW2 1 1 0 0 1 CW3 1 0 1 0 0 CW4 1 1 1 1 0 CW5 0 0 0 0 1 Prüfwort 0 0 1 1 0 Codewort D3 D2 D1 D0 PB CW1 0 1 0 1 1 CW2 1 1 0 0 1 CW3 1 1 0 0 0 CW4 1 1 1 1 0 CW5 0 0 0 0 1 Prüfwort 0 0 1 1 0 WS 2008/2009 Technische Grundlagen der Informatik Zwei Bitfehler können nur d t kti t detektiert aber nicht korrigiert werden. 56 Hamming-Distanz • Hamming-Distanz (h): Minimale StellenDistanz zwischen zwei Nutzworten Nutzworten. Beispiel: WS 2008/2009 Technische Grundlagen der Informatik 57 Hamming-Distanz Hamming Distanz (h) h=1, Erkennung: 0, Korrektur: 0 h 2 E h=2, Erkennung: k 1 1, K Korrektur: kt 0 h 3 E h=3, Erkennung: k 2 2, K Korrektur: kt 1 h=4 Erkennung: 3, h=4, 3 Korrektur: 1 h=5 Erkennung: 4, h=5, 4 Korrektur: 2 WS 2008/2009 Technische Grundlagen der Informatik 58