27.01.2009 Grundlagen der Technischen Informatik, Teil A: Schaltnetze Inhalt 1 Repräsentation von Nachrichten 1.1 L1: Codes und Codierung 1.1.1 L1-1: Einleitung 1.1.2 Grundlegende Begriffe 1.1.2.1 L1-2: Zeichenfolgen 1.1.2.2 L1-3: Codierung 1.1.2.3 L1-4: Decodierung 1.1.3 L1-5: Zusammenfassung 1.1.4 Training 1.1.4.1 L1-6: Aufgaben 1.1.4.2 L1-7: Selbsttest 1.2 L2: Code- Eigenschaften 1.2.1 L2-1: Einleitung 1.2.2 Mindestwortlängen 1.2.2.1 L2-2: Stellenanzahl der Codes 1.2.2.2 L2-3: ASCII-Code 1.2.3 Fehler erkennende und korrigierende Codes 1.2.3.1 L2-4: Hammingabstand 1.2.3.2 L2-5: Fehlererkennung 1.2.3.3 L2-6: Fehlererkennung mittels Paritätsbit 1.2.3.4 L2-7: Fehlerkorrektur 1.2.4 Training 1.2.4.1 L2-8: Aufgaben 1.2.4.2 L2-9: Selbsttest 1.3 L3: Zahlensysteme 1.3.1 L3-1: Einleitung 1.3.2 L3-2: b-adische Darstellung 1.3.3 Training 1.3.3.1 L3-3: Aufgaben Seite 1 von 272 27.01.2009 1.3.3.2 L3-4: Selbsttest 2 Prozessorschaltungen: Motivation und grundlegende Begriffe 2.1 L4: Grundlegende Begriffe und Notationen 2.1.1 Überblick 2.1.1.1 L4-1: Prozessoren 2.1.1.2 L4-2: Einleitung 2.1.2 Boolesches Wort, Boolesche Sequenz 2.1.2.1 L4-3: Boolesches Wort 2.1.2.2 L4-4: Boolesche Sequenz 2.1.2.3 L4-5: Unterschied Schaltnetz - Schaltwerk 2.1.2.4 L4-6: Wiederholung: Beispiel Boolesches Wort 2.1.2.5 L4-7: Wiederholung: Beispiel Boolesche Sequenz 2.1.3 Verhalten und Struktur von Schaltnetzen 2.1.3.1 L4-8: Definition Verhalten, Struktur 2.1.3.2 L4-9: Synthese 2.1.3.3 L4-10: Analyse 2.1.3.4 L4-11: Zusammenfassung Analyse - Synthese 2.1.4 L4-12: Wiederholung: Notationen 2.1.5 L4-13: Zusammenfassung 2.1.6 Training 2.1.6.1 L4-14: Aufgaben 2.1.6.2 L4-15: Selbsttest 3 Boolesche Funktionen und Schaltfunktionen 3.1 L5: Boolesche Wörter und Zahlen 3.1.1 L5-1: Einleitung 3.1.2 L5-2: Funktion dual: Definition und Beispiel 3.1.3 L5-3: Funktion bool: Definition und Beispiel 3.1.4 L5-4: Zusammenfassung 3.2 L6: Verhaltensbeschreibung 3.2.1 L6-1: Einleitung Seite 2 von 272 27.01.2009 3.2.2 Boolesche Funktionen 3.2.2.1 L6-2: Boolesche Funktion und ihre Darstellung als Wertetabelle 3.2.2.2 L6-3: Einschlägiger Index 3.2.3 Basiskomponenten von Schaltnetzen 3.2.3.1 L6-4: Aufbau komplexerer Schaltungen aus Basiskomponenten 3.2.3.2 L6-5: Ein- und zweistellige Basiskomponenten 3.2.3.3 L6-6: Mehrstellige Basiskomponenten 3.2.4 Training 3.2.4.1 L6-7: Aufgaben 3.2.4.2 L6-8: Selbsttest 3.2.5 L6-9: Zusammenfassung 3.3 L7: Strukturbeschreibung 3.3.1 L7-1: Überblick 3.3.2 Strukturbeschreibung durch Graphen 3.3.2.1 L7-2: Graphen 3.3.3 Schaltnetzstruktur 3.3.3.1 L7-3: Definition Schaltnetzstruktur 3.3.3.2 L7-4: Schaltfunktion 3.3.4 Basisfunktionen für die Schaltnetzstruktur 3.3.4.1 L7-5: Verzweigung 3.3.4.2 L7-6: Identität 3.3.4.3 L7-7: Permutation 3.3.4.4 L7-8: Sequentielle Komposition 3.3.4.5 L7-9: Parallele Komposition 3.3.5 L7-10: Zusammenschaltung von Schaltfunktionen 3.3.6 L7-11: Zusammenfassung 3.3.7 Training 3.3.7.1 L7-12: Aufgaben 3.3.7.2 L7-13: Selbsttest 3.4 L8: Erweiterte Konzepte 3.4.1 L8-1: Überblick 3.4.2 Analyse 3.4.2.1 L8-2: Analyse einer Schaltungsstruktur (1) 3.4.2.2 L8-3: Analyse einer Schaltungsstruktur (2) 3.4.2.3 L8-4: Analyse einer Schaltungsstruktur im V-Modell 3.4.3 Von Booleschen Werten zu Booleschen Wörtern 3.4.3.1 L8-5: Leitungsbündel 3.4.3.2 L8-6: Projektionsfunktionen 3.4.3.3 L8-6a: Formale Definition Abspalten der n-j niedriger indizierten Stellen eines Wortes 3.4.3.4 L8-7: Anwendung "Linksschieben eines Wortes" 3.4.3.5 L8-8: Beispiel Arztpraxis 3.4.4 Schaltungstransformation 3.4.4.1 L8-9: Schaltungstransformation 3.4.5 Modularer Aufbau 3.4.5.1 L8-10: Aufbau einer Schaltung aus gleichartigen Modulen Seite 3 von 272 27.01.2009 3.4.6 L8-11: Zusammenfassung 3.4.7 Training 3.4.7.1 L8-12: Aufgaben 3.4.7.2 L8-13: Selbsttest 4 Boolesche Algebra 4.1 L9: Termdarstellung 4.1.1 L9-1: Einleitung und Motivation 4.1.2 Grundlegende Definitionen 4.1.2.1 L9-2: Implementierung Boolescher Konstanten 4.1.2.2 L9-3: Implementierung von Operationen 4.1.2.3 L9-4: Grundlegende Definition 4.1.3 Def. Boolescher Term 4.1.3.1 L9-5: Boolescher Term - induktive Definition 4.1.3.2 L9-6: Induktive Reduktion von Booleschen Termen 4.1.3.3 L9-7: Induktive Reduktion am Ausdrucksbaum 4.1.3.4 L9-8: Vorrangregeln in Booleschen Termen 4.1.3.5 L9-9: Abkürzende Notationen für Operatoren 4.1.4 Termdarstellung - Wertetabelle 4.1.4.1 L9-10: Termdarstellung und Wertetabellen gleich mächtig? 4.1.4.2 L9-11: Umwandlung Termdarstellung in Wertetabelle 4.1.4.3 L9-11a: Umwandlung Termdarstellung in Wertetabelle 4.1.4.4 L9-12: Funktionenraum 4.1.5 Boolesche Terme über Funktionen 4.1.5.1 L9-13: Boolesche Terme über Funktionen 4.1.5.2 L9-13a: Boolesche Terme über Funktionen 4.1.5.3 L9-14: Beispiel Boolescher Term über Funktionen 4.1.5.4 L9-15: Verknüpfung Boolescher Funktionen 4.1.5.5 L9-16: Beispiel Verknüpfung Boolescher Funktionen 4.1.6 Operatoren und partielle Ordnung 4.1.6.1 L9-17: Partielle Ordnung auf der Menge der n-stelligen Funktionen 4.1.6.2 L9-18: Beispiel und Interpretation der Ordnungsrelation 4.1.6.3 L9-19: Eigenschaften der partiellen Ordnung 4.1.7 L9-20: Zusammenfassung 4.1.8 Training 4.1.8.1 L9-21: Aufgaben 4.1.8.2 L9-22: Selbsttest 4.2 L10: Grundlegende Gesetze und Definitionen 4.2.1 L10-1: Einleitung 4.2.2 Grundlegende Definitionen 4.2.2.1 L10-2: Einführung und Motivation Seite 4 von 272 27.01.2009 4.2.2.2 L10-3: Tautologie 4.2.2.3 L10-3a: Interpretation Tautologie 4.2.2.4 L10-3b: Interpretation Tautologie 4.2.2.5 L10-3c: Interpretation Widerspruch 4.2.2.6 L10-3d: Interpretation Widerspruch 4.2.2.7 L10-3e: Interpretation Termvereinfachung 4.2.2.8 L10-3f: Interpretation Termvereinfachung 4.2.2.9 L10-3g: Interpretation Termvereinfachung 4.2.2.10 L10-4: Substitution 4.2.2.10.1 Substitution 4.2.2.11 L10-5: Gleichungsgesetze der Booleschen Terme 4.2.2.12 L10-5a: Gleichungsgesetze der Booleschen Terme 4.2.2.13 L10-5b: Gleichungsgesetze der Booleschen Terme 4.2.2.14 L10-5c: Gleichungsgesetze der Booleschen Terme 4.2.2.15 L10-5d: Gleichungsgesetze der Booleschen Terme 4.2.2.16 L10-5e: Gleichungsgesetze der Booleschen Terme 4.2.2.17 L10-5f: Gleichungsgesetze der Booleschen Terme 4.2.2.18 L10-5g: Gleichungsgesetze der Booleschen Terme 4.2.2.19 L10-5h: Gleichungsgesetze der Booleschen Terme 4.2.3 Beweis 'Eigenschaften der Ordnungsrelation' 4.2.3.1 L10-5i: Beweis der Reflexivität der Ordnungsrelation 4.2.3.2 L10-5j: Beweis der Transitivität 4.2.3.3 L10-5k: Beweis der Antisymmetrie 4.2.4 Erweiterte Definitionen 4.2.4.1 L10-6: Definition Literal, Monom, Minterm 4.2.4.2 L10-7: Zuweisung eines Minterms zu einer gegebenen Belegung 4.2.4.3 L10-8: Minterm mit Wert L und seine Belegung 4.2.4.4 L10-9: Maxterme 4.2.5 L10-10: Zusammenfassung 4.2.6 Training 4.2.6.1 L10-11: Aufgaben 4.2.6.2 L10-12: Selbsttest 4.3 L11: Darstellung von Booleschen Funktionen als Terme 4.3.1 L11-1: Überblick 4.3.2 Einführung 'Entwicklungssatz' 4.3.2.1 L11-2: Einführung Entwicklungssatz: Vorbereitung 1 4.3.2.2 L11-3: Multiplexer 4.3.2.3 L11-4: Entwicklungssatz 1 4.3.2.4 L11-4a: Entwicklungssatz Beweis-Beweisidee 4.3.2.5 L11-4b: Entwicklungssatz Beweis - 1 4.3.2.6 L11-4c: Entwicklungssatz Beweis-2 4.3.2.7 L11-5: Entwicklungssatz 2 4.3.3 Anwendung 'Entwicklungssatz' 4.3.3.1 L11-6: Entwicklungssatz Beispiel - Illustration mit Wertetabelle 4.3.3.2 L11-7: Weiterentwicklung einer teilweise entwickelten Funktion 4.3.3.3 L11-8: Weiterentwicklung einer teilweise entwickelten Funktion - Fortsetzung 4.3.3.4 L11-9: Vollständig entwickelte Funktion 4.3.4 Darstellungstheorem 4.3.4.1 L11-10: Darstellungstheorem und Beweisplan Seite 5 von 272 27.01.2009 4.3.4.2 L11-10a: Beweis Darstellungstheorem 4.3.4.3 L11-10b: Beweis Darstellungstheorem 2 4.3.4.4 L11-10c: Beweis Darstellungstheorem 3 4.3.4.5 L11-10d: Beweis Darstellungstheorem 4 - Folgerung 4.3.5 L11-11: Zusammenfassung 4.3.6 Training 4.3.6.1 L11-12: Aufgaben 4.3.6.2 L11-13: Selbsttest 4.4 L12: Disjunktive und Konjunktive Normalform 4.4.1 L12-1: Überblick 4.4.2 Von Wertetabellen zur Termdarstellung 4.4.2.1 L12-2: Boolesches Normalformtheorem 4.4.2.2 L12-3: Boolesches Normalformtheorem 4.4.3 Min-Terme, Max-Terme 4.4.3.1 L12-4: Min-/Maxterme, Beispiel für Wertetabelle 4.4.3.2 L12-5: Beispiel: DNF nicht aus Mintermen bestehend 4.4.4 L12-6: Zusammenfassung 4.4.5 Training 4.4.5.1 L12-7: Aufgaben 4.4.5.2 L12-8: Selbsttest 4.5 L13: Optimierung von Schaltnetzen 4.5.1 L13-1: Einleitung 4.5.2 L13-2: Kostenfunktionen 4.5.3 L13-3: Implikanten und Primimplikanten einer Booleschen Funktion 4.5.4 L13-4: Karnaugh Diagramme 4.5.5 L13-5: Zusammenfassung 4.5.6 Training 4.5.6.1 L13-6: Selbsttest 4.5.6.2 L13-7: Aufgaben 5 Implementierung arithmetischer Einheiten 5.1 L14: Additionskomponente 5.1.1 L14-1: Einleitung 5.1.2 L14-2: Überblick 5.1.3 Arithmetik mit Booleschen Wörtern 5.1.3.1 L14-3: Wandlung von Booleschen Wörtern in Dualzahlen 5.1.3.2 L14-4: Zusammenhang dual-bool Seite 6 von 272 27.01.2009 5.1.3.3 L14-5: Darstellbarer Wertebereich 5.1.3.4 L14-6: Einführung der Funktion add 5.1.3.5 L14-7: Definition:+n 5.1.3.6 L14-8: Beispiel zu +n mit Bereichsüberschreitung 5.1.3.7 L14-9: Definition add 5.1.3.8 L14-10: Aufgaben eines Addiernetzes 5.1.4 Einfache Implementierung einer ADD-Komponente 5.1.4.1 L14-11: Einfache Implementierungsidee für Addierer 5.1.4.2 L14-12: Schaltnetz für die 1- stellige Addition (1-Bit-Additionskomponente) 5.1.4.3 L14-13: Herleitung von 4-Bit-Addierern aus 1-Bit-Additionskomponenten 5.1.4.4 L14-14: Zusammenfassung Additionsoperation 5.1.4.5 L14-15: Behandlung von Überträgen der n-ten Stelle 5.1.5 Optimierungsmöglichkeiten 5.1.5.1 L14-16: Zeitverhalten eines n-Bit-Addierers 5.1.5.2 L14-17: Verzögerte Summenbildung 5.1.5.3 L14-18: Reduktion der Verzögerungszeit beim Addiernetz 5.1.5.4 L14-19: Prinzip von iterativen Schaltnetzen 5.1.6 L14-20: Zusammenfassung 5.1.7 Training 5.1.7.1 L14-21: Aufgaben 5.1.7.2 L14-22: Selbsttest 5.2 L15: Ganzzahlarithmetik 5.2.1 L15-1: Überblick 5.2.2 Einfache Darstellungsmöglichkeiten ganzer Zahlen 5.2.2.1 L15-2: Ganze Zahlen mit Betrag und Vorzeichen 5.2.2.2 L15-3: Nachteile der Betrag-und-Vorzeichen-Darstellung I 5.2.2.3 L15-4: Nachteile der Betrag-und-Vorzeichen-Darstellung II 5.2.3 Bereichskomplement 5.2.3.1 L15-5: Bereichskomplementdarstellung 5.2.3.2 L15-6: Definition des Bereichskomplements 5.2.3.3 L15-7: Beispiele zum Bereichskomplement 5.2.3.4 L15-8: Rückwandlung des Bereichskomplements 5.2.3.5 L15-9: Vergleich der Darstellung Betrag-und-Vorzeichen mit Bereichskomplementdarstellung 5.2.3.6 L15-10: Umkehrbarkeit der Bereichskomplementsdarstellung 5.2.4 Negation von ganzen Zahlen 5.2.4.1 L15-11: Negation einer Zahl im Bereichskomplement: Vorbereitung 5.2.4.2 L15-12: Negation einer Zahl im Bereichskomplement: Ausführung 5.2.4.3 L15-13: Negation einer Zahl im Bereichskomplement: Beispiel 5.2.4.4 L15-14: Negation einer Zahl im Bereichskomplement: Beweisplan 5.2.4.5 L15-14a: Negation einer Zahl im Bereichskomplement: Hilfssatz 1 5.2.4.6 L15-14b: Negation einer Zahl im Bereichskomplement: Hilfssatz 2 5.2.4.7 L15-14c: Negation einer Zahl im Bereichskomplement: Hilfssatz 3 5.2.4.8 L15-14d: Negation einer Zahl im Bereichskomplement: Hilfssatz4 5.2.5 Komplementärzahlen 5.2.5.1 L15-15: Negation einer Zahl im Bereichskomplement als Boolesches Wort 5.2.5.2 L15-16: Wandlungsregel für ganze Zahlen 5.2.6 Addition und Subtraktion 5.2.6.1 L15-17: Addition und Subtraktion von Zahlen im Bereichskomplement 5.2.6.2 L15-18: Subtraktion Seite 7 von 272 27.01.2009 5.2.6.3 L15-19: Zahlenbereichsüberschreitungen 5.2.7 L15-20: Zusammenfassung 5.2.8 Training 5.2.8.1 L15-21: Aufgaben 5.2.8.2 L15-22: Selbsttest 6 Grundlegende Komponenten für die Datenübertragung 6.1 L16: Grundlegende Komponenten für die Datenübertragung 6.1.1 L16-1: Überblick 6.1.2 Zeitmultiplexbetrieb 6.1.2.1 L16-2: Zeitmultiplexbetrieb 6.1.2.2 L16-3: Komponenten des Zeitmultiplexbetriebes 6.1.2.3 L16-4: Komponenten des Zeitmultiplexbetriebes 6.1.2.4 L16-5: Komponenten des Zeitmultiplexbetriebes 6.1.3 1_aus_n_Codierer 6.1.3.1 L16-6: 1_aus_n_Codierer 6.1.3.2 L16-7: Einsatzgebiete für 1_aus_n_Codierer 6.1.3.3 L16-8: Hierarchie von 1_aus_n_Codierern 6.1.3.4 L16-8a: 1_aus_n_Codierer_Hierarchie 6.1.3.5 L16-8b: Verteilte Implementierung eines 1_aus_n_Codierers 6.1.4 Multiplexer 6.1.4.1 L16-9: Auswahlschaltung: Multiplexer 1 6.1.4.2 L16-10: Auswahlschaltung Multiplexer 2 6.1.4.3 L16-11: Multiplexer 6.1.5 L16-12: Demultiplexer 6.1.6 L16-13: Zusammenfassung 6.1.7 Training 6.1.7.1 L16-14: Aufgaben Grundlagen der Technischen Informatik, Teil A: Schaltnetze 1 Repräsentation von Nachrichten 1.1 L1: Codes und Codierung Seite 8 von 272 27.01.2009 1.1.1 L1-1: Einleitung Ein Code ist eine Vorschrift, mit dem Nachrichten (Texte, Bildfolgen, Tonfolgen) Element für Element (Buchstaben, Ziffern, Bild, Bildpunkt, Ton, Abtastwert} zur Übertragung oder Weiterverarbeitung so dargestellt werden, dass ein Zielsystem die Übertragung oder Verarbeitung zuverlässig und effizient durchführen kann. Die Umsetzung selbst nennt man Codierung. Codes kennt man schon seit Jahrhunderten. Man denke nur an die Rauchzeichen der Indianer, Buschtrommelzeichen oder Rufsignale über Alarmketten. Damit wurden Nachrichten in optische oder akustische Signale transformiert, die über größere Entfernungen schnell übermittelt werden konnten. Verwendet wurden in aller Regel Abfolgen von lang und kurz gesendeten Zeichen bzw. hohem und tiefem Ton. Solche Codes nennt man binär, da sie nur aus zwei unterschiedlichen Zeichentypen bestehen. Binäre Codes zeichnen sich durch eine hohe Übertragungssicherheit aus, d.h. der Empfänger "versteht" in den allermeisten Fällen, was der Sender gesendet hat, ohne nachfragen zu müssen. Codes benötigt man aber nicht nur zur Übertragung von Nachrichten, sondern auch zum Rechnen. Dass man Zahlen sehr unterschiedlich darstellen kann, sehen wir an den Römischen Zahlen im Vergleich zu unseren Dezimalzahlen. Nachrichten Codes Darstellung von Nachrichten Im Zusammenhang mit der Rechnertechnik spielen bei der Wahl eines Codes die unterschiedlichen Fähigkeiten von Menschen und Maschinen eine wichtige Rolle. Während unser Alphabet viele unterschiedliche Buchstaben kennt, liebt es der Rechner auch hier die Zeichen im Binärsystem vorzufinden. Das hängt damit zusammen, dass es viele physikalische Effekte gibt, bei denen man sehr gut zwischen zwei Zuständen unterscheiden kann, z.B. {"Strom an", "Strom aus"}, {"elektrische Ladung vorhanden", "elektrische Ladung nicht vorhanden}, {"Licht an", "Licht aus"}, {magnetischer Nordpol, magnetischer Südpol}. Wir können also zusammenfassen. Je nach Anwendung und technischem System (z. B. Rechner, Disk, Draht oder Glasfaser gebundenes Rechnernetz, Funknetz) gibt es unterschiedlich gut geeignete Codes zur Darstellung von Buchstaben, Ziffern, Bildpunkten. Sie unterscheiden sich hinsichtlich des Darstellungsaufwandes, der Übertragungs- und Speicherzuverlässigkeit, der Eignung zur Durchführung von Berechnungen, der Eignung zum Übergang von der natürlichen Welt zur digitalen Welt usw. Dies führt dazu, dass häufig zwischen verschiedenen Codes gewandelt werden muss, um für eine neue Aufgabe den dafür angemessenen Code zu verwenden. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z Nachrichten [ L1-1 ] Codes [ L1-1 ] Wörter [ L1-2 ] Codierung [ L1-3 ] Decodierung [ L1-4 ] Bearbeitungsdauer: ca. 70 min Verstehen (Konzepte erklären können) z z Warum stellt man die selben Nachrichten in verschiedene Anwendungen unterschiedlich dar [ L1-1 ] Welche Aufgabe haben Codierung und Decodierung [ L1-5 ] Fähigkeiten (neue Kenntnisse anwenden können) z Begriffe korrekt verwenden [ L1-1 L1-2 L1-3 L1-4 ] Seite 9 von 272 27.01.2009 1.1.2 Grundlegende Begriffe 1.1.2.1 L1-2: Zeichenfolgen In unserem Kulturkreis verwenden wir Zeichenfolgen aus z z z lateinischen Buchstaben inkl. Trenn- und Satzzeichen griechischen Buchstaben Dezimalziffern Begriffe Die Frage ist nun, wie man solche Folgen im Rechner darstellt. Die Zeichenfolgen haben alle gemeinsam, dass sie über einem endlichen linear geordneten Zeichenvorrat Beispiel Sei die Menge der Ziffern im Dezimalsystem. Wegen linear geordnet, da für zwei beliebige unterschiedliche Zeichen aus lassen sich alle Dezimalzahlen darstellen. Beispiel Sei ist dieser Zeichenvorrat gesagt werden kann, welches Zeichen kleiner und welches größer ist.Mit dem Zeichenvorrat . Die beiden Zeichen besitzen keine natürliche Ordnung, so dass wir willkürlich Die Werte (Alphabet) gebildet werden. und festlegen. werden auch als Boolesche Werte (nach dem Mathematiker George Boole, 1815 - 1864) oder Binärzeichen oder Bit bezeichnet. Wörter sind endliche Zeichenfolgen aus einem vorgegebenen Zeichenvorrat. Sei die Menge der Wörter über dem Zeichenvorrat . In der Regel werden Wörter bei uns in spitze Klammern ( ) gesetzt. Ausnahme bilden alle Zahlen. Wörter Beispiel Sei Dann sind alle Zahlen mit endlicher Stellenzahl Elemente von Beispiel Sei . Beispielsweise gilt: . . Es gilt: Die Elemente der Menge Anstelle der Mengen heißen Binärwörter. über dem Zeichenvorrat kann man sich auf Mengen von Wörtern mit fester Stellenanzahl n beschränken. Beispiel 2-Bit Wörter Die meisten Anwendungen arbeiten mit Codes konstanter Wortlänge. Insbesondere bei der Übertragung von Zeichenfolgen verwendet man allerdings auch Codes mit unterschiedlicher Wortlänge. Das hängt damit zusammen, dass Buchstaben in einer Sprache mit unterschiedlicher Häufigkeit auftreten und man daher häufig auftretende Symbole mit kurzen Wörtern codiert, während seltenere Zeichen längere Codewörter erhalten. Das führt dazu, dass man insgesamt weniger Zeichen Seite 10 von 272 27.01.2009 übertragen muss. Ein bekanntes Beispiel für die Verwendung unterschiedlich langer Codewörter ist der Morse-Code über der Zeichenmenge aus drei Elementen: . Das in unserer Sprache häufig auftretende Zeichen e wird mit codiert und das seltenere Zeichen y mit . 1.1.2.2 L1-3: Codierung DEFINITION CODIERUNG Eine Codierung ist eine (nicht unbedingt eindeutige) Abbildung zwischen Wörtern über einem Zeichenvorrat Dabei werden die konkret verwendeten Mengen eindeutig definierte Teilmengen von Beispiel Seien Eine Codierungsabbildung und und einem Zeichenvorrat : Codierung sein. die Menge der Zahlen von 0 bis 3. könnte dann wie folgt aussehen: Bei vielen Anwendungen müssen alle Wörter eines Codes die gleiche Stellenanzahl besitzen. Dann ist eine Codierungsabbildung definiert als Beispiel Eine Codierungsabbildung die Menge der Zahlen von 0 bis 3 und könnte dann wie folgt aussehen: Seite 11 von 272 27.01.2009 1.1.2.3 L1-4: Decodierung Die Umkehrabbildung d zur Codierung c nennt man Decodierung: wobei die Menge aller Wörter ist, die durch Anwendung der Funktion c auf die Menge der Elemente aus Besonders einfach ist die Situation, wenn beide Abbildungen c und d umkehrbar eindeutig sind, d.h. wenn für jedes entstehen. Decodierung gilt: Wendet man also zunächst die Codierung auf a an und dann die Decodierung auf deren Ergebnis, so muss wieder das Element a herauskommen. Beispiel Seien und . definiert mit den Abbildungen c und d Codierung Decodierung Tabelle 1 Dann gilt: 1.1.3 L1-5: Zusammenfassung Seite 12 von 272 27.01.2009 Es gibt viele verschiedene Codierungsarten, die bei der Aufnahme von Daten in den Rechner, bei ihrer Verarbeitung und Übertragung über Rechnernetze, sowie bei der Ausgabe vom Rechner an seine Umgebung verwendet werden. Die Wahl der Codierung hängt von den jeweiligen Randbedingungen ab. Beispiele für solche Randbedingungen sind: z z z z Aufgabe von Codierung und Decodierung einfache und schnelle Durchführung von Rechenoperationen kompakte Darstellung Möglichkeit zur Erkennung oder gar Korrektur von Fehlern Menschen gerechte Darstellung von Zeichen bei der Ein- und Ausgabe über Tastatur bzw. Bildschirm. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z Nachrichten [ L1-1 ] Codes [ L1-1 ] Wörter [ L1-2 ] Codierung [ L1-3 ] Decodierung [ L1-4 ] Verstehen (Konzepte erklären können) z z Warum stellt man die selben Nachrichten in verschiedene Anwendungen unterschiedlich dar [ L1-1 ] Welche Aufgabe haben Codierung und Decodierung [ L1-5 ] Fähigkeiten (neue Kenntnisse anwenden können) z Begriffe korrekt verwenden [ L1-1 L1-2 L1-3 L1-4 ] 1.1.4 Training 1.1.4.1 L1-6: Aufgaben Aufgabe 1: Von Caesar stammt eine einfache Verschlüsselungsregel für beliebigen Text, die wir hier in vereinfachter Form anwenden wollen. Sei das Alphabet und bezeichne mit das i-te Element der geordneten Menge (wobei wir bei 0 zu zählen beginnen), also z.B. und . Die Caesar-Codierung sieht nun vor, einen Text so zu verschlüsseln, dass für alle i anstelle das Zeichen aufgeschrieben wird. Die Zuordnung zwischen den Buchstaben ist in Abbildung 1 verdeutlicht. Seite 13 von 272 27.01.2009 : Anzahl der Elemente . Abbildung 1 : Caesar-Codierung Was will uns Caesar mit folgendem verschlüsselten Text sagen? lrliatntmnegmlnr Antwort: elearning ist geil Drücken Sie die verbale Beschreibung der Codierungsfunktion formelmäßig aus. Antwort: mit , 1.1.4.2 L1-7: Selbsttest Aufgabe 1: Sind folgende Aussagen richtig: 1. Seite 14 von 272 27.01.2009 2. Antwort: ja mit 1. erhält man die Aussage. 2. Wie viele Elemente enthält die Menge ? Antwort: 2n Aufgabe 2: Welche Probleme treten bei folgender Codierungsabbildung auf: Beispiel: Seien und . definiert mit der Abbildung mit Antwort: Die Umkehrabbildung ist nicht eindeutig. 1.2 L2: Code- Eigenschaften Seite 15 von 272 27.01.2009 1.2.1 L2-1: Einleitung In dieser Lektion werden Codes mit fester Wortlänge behandelt, sowie Methoden der Fehlererkennung bzw. Fehlerkorrektur vorgestellt. Die Wortlänge zur Darstellung von ganzen Zahlen wird oft zur Charakterisierung eines Prozessors (Kerneinheit eines Rechners) herangezogen. Die allerersten Prozessoren rechneten mit 4 Bit langen Wörtern. Inzwischen ist man bei 64 Bit angekommen. Wortlänge in Rechnern LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z z Wortlänge in Rechnern [ L2-1 ] Mindeststellenanzahl von Binärcodes bei vorgegebener Elementeanzahl der zu codierenden Zeichenmenge [ L2-2 ] Verwendung des ASCII Codes [ L2-3 ] Hammingabstand [ L2-4 ] Stellenredundanz [ L2-5 ] Paritätsbit [ L2-6 ] Paritätsfunktion [ L2-6 ] Bearbeitungsdauer: ca. 90 min Verstehen (Konzepte erklären können) z z Fehlererkennung [ L2-5 L2-6 ] Fehlerkorrektur [ L2-7 ] Fähigkeiten (neue Kenntnisse anwenden können) z z z Begriffe korrekt verwenden [ L2-1 L2-2 L2-3 L2-4 L2-5 L2-6 ] Berechnen von Paritätsbits [ L2-6 ] Ergänzung eines Codes zur Ermöglichung von 1-Fehlerkorrektur [ L2-7 ] 1.2.2 Mindestwortlängen 1.2.2.1 L2-2: Stellenanzahl der Codes Angenommen, man kennt die Menge der zu codierenden Zeichen. Jedes soll nun auf ein unterschiedliches Binärwort der Länge n abgebildet werden. Die Frage ist, wie groß n mindestens gewählt werden muss, d.h. wie groß die Anzahl an Stellen im codierten Binärwort mindestens sein muss. Sei . Dann muss die Anzahl an Stellen im Binärwort sein. Mindeststellenanzahl von Binärcodes bei vorgegebener Elementeanzahl der zu codierenden Zeichenmenge FORMEL Seite 16 von 272 27.01.2009 ist die Aufrundung von x auf die nächst größere ganze Zahl, z.B. ist die Anzahl an Elementen in der Menge . . log2 ist der Logarithmus zur Basis 2, also die Umkehrfunktion zur Exponentialfunktion (Wenn a Beispiel Sei . Dann ist werden, nämlich = 2b gilt, dann ist . . D.h. zur unterschiedlichen Codierung von 4 Zeichen müssen Binärwörter mindestens der Länge 2 erzeugt . 1.2.2.2 L2-3: ASCII-Code Der ASCII-Code (American Standard Code for Information Interchange) ist einer der bekanntesten Codierungen für 128 druckbare Zeichen, also z z z Buchstaben (52 Elemente, unterschieden nach Groß- und Kleinschreibung) Ziffern (10 Elemente) Steuer- und Sonderzeichen (66 Elemente) Zur Codierung der 128 ASCII-Zeichen benötigt man Verwendung des ASCII Codes Stellen im Binärwort. Man wählt die kleinst mögliche Zahl, also: Jedem Zeichen auf der Rechnertastatur ist ein rechnerinterner Code zugewiesen, wobei wir die sieben Stellen des ASCII-Codes mit bezeichnen. Aus Abbildung 2 kann man die Codierungsabbildung für den ASCII Code ablesen. Seite 17 von 272 27.01.2009 Abbildung 2 : ASCII-Code; Beispiel . Die ersten beiden Spalten enthalten Steuerzeichen, auf die wir nicht eingehen. 1.2.3 Fehler erkennende und korrigierende Codes 1.2.3.1 L2-4: Hammingabstand Der Hammingabstand wurde nach dem Mathematiker Richard Wesley Hamming (1915 - 1998) benannt. Er beziffert die Anzahl an Stellen, in denen sich zwei und unterscheiden. gleichlange Binärwörter Formal definiert man den Hammingabstand als Funktion Ham_abst, die zwei n-stellige Wörter in eine natürliche Zahl abbildet: Hammingabstand : Menge der natürlichen Zahl und der Zahl 0 Seite 18 von 272 27.01.2009 mit mit Das Summenzeichen kürzt das explizite Aufschreiben der Summenterme ab: Beispiel Seien und Dann sind und Damit ist der Hammingabstand der beiden Binärwörter 2. Der Hammingabstand kann nicht nur auf zwei Wörter gebildet, sondern auch auf die Zielmenge einer Codierungsabbildung er definiert als der kleinste Hammingabstand zwischen je zwei unterschiedlichen Binärwörter und Seien , . Aus folge erweitert werden. Dann ist aus . Damit ist Die Funktion min wählt aus der Menge der Elemente, auf die sie angewendet wird, das kleinste aus. Das Minimum wird über Hammingabstände von Paaren von Codewörtern gebildet. Diese müssen unterschiedlich sein, sonst wäre der minimale Wert 0. Untersucht werden nicht alle möglichen Elemente von sondern nur solche, die Bildelemente von Beispiel Seien unter Anwendung von c sind, und die Zielmenge mit , . , , , Dann hat der Hammingabstand der Codierungsabbildung c den Wert 2, da gilt: Bei vielen Codes beträgt der Hammingabstand der Codierungsabbildung 1. Dies ist nämlich eine Voraussetzung, damit man mit der minimalen Stellenzahl auskommt. 1.2.3.2 L2-5: Fehlererkennung In der Praxis treten manchmal Fehler bei einer Übertragung über längere Leitungen auf. Eine dauerhaft fehlerfreie Übertragung ist relativ unwahrscheinlich. Wie im letzten Kapitel erwähnt, beträgt der Hammingabstand vieler Codierungsabbildungen 1. Diese Codierungsabbildungen eignen sich nicht zur Fehlererkennung. Beispiel Nehmen wir an, dass ein Wasserstandsmelder einer Waschmaschine der zentralen Steuerung über einen Sender meldet, wenn ein bestimmter Wasserstand überschritten wird. Im Gutfall wird der Empfänger den gesendeten Wert erhalten. Seite 19 von 272 27.01.2009 Abbildung 3 : Bitübertragung über eine ungestörte Leitung Für die Codierungsabbildung gelte: und mit und Der Hammingabstand dieser Codierungsabbildung ist 1. Da beim Übertragen über längere Leitungen oftmals Fehler/Störungen auftreten, erhält der Empfänger nicht unbedingt die korrekten Daten, vielmehr werden -Werte in -Werte gewandelt und umgekehrt. Wir stellen uns das so vor, als ob sich in der Leitung ein Störer befindet, der manchmal die eingehenden Wörter verändert ausgibt und manchmal nicht (Wackelkontakt). Abbildung 4 : Bitübertragung über eine gestörte Leitung Können mit einem größeren Hammingabstand Fehler, die beispielsweise bei der Nachrichtenübertragung entstehen, erkannt werden? Beispiel Für die Codierungsabbildung und Fehlererkennung gelte: mit und Der Hamingabstand dieser Codierungsabbildung beträgt: Seite 20 von 272 27.01.2009 Abbildung 5 : Fehlererkennung Da dem Empfänger bekannt ist, dass nur die Wörter und zulässig sind, erkennt er bei einem Empfang des Wortes einen Fehler. Noch besser ist, dass er mit einer großen Wahrscheinlichkeit sogar die Stelle identifizieren kann, an der der Fehler aufgetreten ist, da eine Verfälschung von zwei Stellen unwahrscheinlicher ist als von nur einer Stelle: Abbildung 6 : Fehlererkennung Bei der Fehlerkorrektur ermittelt man zunächst den Hammingabstand des empfangenen Codewortes zu allen korrekten Codewörtern der Menge Anschließend korrigiert man das empfangene Wort zu demjenigen Wort aus : , zu dem der Hammingabstand am kleinsten ist, im Beispiel also zu . Gibt es zulässige Wörter mit gleichem Abstand zu dem empfangenen Wort, dann entdeckt man, dass ein Fehler vorliegt, eine Korrektur ist dagegen nicht möglich. Wie man an dem Beispiel sieht, ermöglicht eine geschickt gewählte Codierung mit größerem Hammingabstand als 1 die Fehlererkennung bzw. -korrektur. Wenn die Binärwörter eines Codes mehr Stellen besitzen als unbedingt notwenig, so spricht man von Stellenredundanz. Stellenredundanz Seite 21 von 272 27.01.2009 Fehlererkennung erfordert Stellenredundanz, Fehlerkorrektur erfordert "mehr" Stellenredundanz. 1.2.3.3 L2-6: Fehlererkennung mittels Paritätsbit Eine Codierungsabbildung ist stellenredundant, wenn gilt Fehlererkennung FORMEL ist die Aufrundung von x auf die nächst größere ganze Zahl, z.B. ist die Anzahl an Elementen in der Menge . . log2 ist der Logarithmus zur Basis 2, also die Umkehrfunktion zur Exponentialfunktion (Wenn a = 2b gilt, dann ist . Beispiel Seien Dann gilt und Jeder Binärcode mit Stellen, auf den die Menge abgebildet wird, ist stellenredundant. Ein systematisches Verfahren zur Konstruktion von Codierungsabbildungen zur Fehlererkennung ist die Ergänzung von Codewörtern um Paritätsbits. Sei eine Abbildung in einen Stellenredundanz-freien Code. Dann kann man durch Ankettung eines Paritätsbits an jedes Codewort aus stellenredundanten Code konstruieren. Diesen Vorgang können wir als weitere Codierungsabbildung beschreiben: d.h. die Codewörter der Zielmenge von Funktion Quersumme ein. einen zugehörigen besitzen exakt eine Stelle mehr als unbedingt erforderlich. Zur genaueren Beschreibung der Abbildung Paritätsbit führen wir die : Menge der natürlichen Zahlen und der 0 Sei die Funktion Quersumme definiert als mit gilt: Seite 22 von 272 27.01.2009 ist damit die Anzahl der -Zeichen im Wort b, z.B. zu einem Wort b wie folgt definieren: Dann kann man das Paritätsbit Sei . und dann ist Paritätsfunktion und Für die zweistufige Codierungsabbildung erzeugen wir für jedes : wobei die Konkatenation, also das Aneinanderhängen von Wörtern ist. Ist die Quersumme (= Anzahl der ist sie ungerade, so wird ein " Sendet man ein Codewort " angefügt. Dann gilt für alle Codewörter , dass die Quersumme -Stellen) gerade, hängt man an das Codewort ein " " an, immer gerade ist. mit der geraden Quersumme und wird unterwegs eine ungerade Zahl von Stellen verfälscht, dann entsteht daraus ein Codewort mit einer ungeraden Quersumme. Der Empfänger erwartet aber ein Codewort mit gerader Quersumme und entdeckt daher, dass zumindest eine Stelle verfälscht worden sein muss. Nun kann er den Sender beispielsweise auffordern, das Codewort noch einmal zu senden. Beispiel Sei dann ist gesendeten Codewörter und das Codewort wird gesendet. Wir vermerken, dass für alle gilt. Der Empfänger kennt das gesendete Wort nicht und möge das Wort empfangen. Er bildet und schließt daraus, dass bei der Übertragung ein Fehler aufgetreten sein muss. Das meldet er dem Sender. in zwei Stellen verfälscht wird. Beim Empfänger treffe das Wort Wir nehmen nun an, dass das gesendete Wort ein. Er bildet und akzeptiert das Codewort als korrekt. Leider. ANMERKUNG Die maximale Fehlerhäufigkeit von Übertragungsstrecken hängen vom Medium (Kabel, Glasfaser Äther), von der Anzahl der Bits, die je Sekunde übertragen werden 4 5 5 und von der Darstellung der Bits ab. Bei Telefonleitungen mit einer Übertragungsrate von 10 bis 10 Bit/s wird im Mittel jedes 10 -te Bit gestört. Verbindet man 7 8 12 Bit gestört. Manchmal treten Störungen aber zwei Rechner direkt über ein Kabel miteinander und überträgt 10 bis 10 Bit/s, dann wird im Mittel nur noch jedes 10 auch gebündelt auf, d.h. es werden gleich mehrere Bits in einem engen zeitlichen Rahmen gestört. 1.2.3.4 L2-7: Fehlerkorrektur Seite 23 von 272 27.01.2009 Wenn Fehler häufiger auftreten, ist die Methode des Fehlererkennens und der Wiederholung der gestörten Zeichenfolge nicht sehr effizient. Dann verwendet man Methoden der Fehlerkorrektur. Fehlerkorrektur kann man ebenfalls mit Hilfe von stellenredundanten Codes durchführen, jedoch müssen mehr redundante Stellen eingefügt werden als bei reiner Fehlererkennung. Eine gedanklich besonders einfache Möglichkeit besteht in der Verdreifachung der redundanzfreien Codewörter. Natürlich ist dieses Verfahren nicht sehr effizient, da man nun unabhängig von möglichen Störungen alles drei Mal senden muss. Zur Erläuterung des Prinzips ist diese Methode aber geeignet. Fehlerkorrektur Sei eine Abbildung in einen Stellenredundanz-freien Code. Wir konstruieren dazu eine stellenredundante Codierungsabbildung sodass für jedes gilt: Wir gehen davon aus, dass wir alle möglichen Einzelfehler korrigieren wollen, ohne nochmals beim Sender nachzufragen, und betrachten ein gesendetes Wort: das wir mit dem empfangenen Wort: vergleichen. Da wir von einem einzigen Bitfehler ausgehen, kann auch nur maximal eines der drei gesendeten Wörter verfälscht sein. Wenn wir daher einen Mehrheitsentscheid durchführen, wissen wir welches der drei Teilwörter verfälscht wurde. In unserem Fall wurde mit großer Wahrscheinlichkeit das zweite Wort verfälscht. Beispiel Senden eines ASCII-Codewortes Angenommen, man möchte das 7-stellige Wort übertragen und sendet es dreimal hintereinander: Empfängt man das Wort so stellt man fest, dass das Wort zwei Mal empfangen wurde und daher wahrscheinlich das gesendete Codewort darstellt. Voraussetzung ist, dass der Empfänger die Wortlänge kennt und weiß, dass jedes Wort drei Mal gesendet wird. Natürlich kann man mit dieser Methode auch mehr als einen Fehler korrigieren, Voraussetzung ist nur, dass nicht zwei Mal die gleiche Stelle in den verschiedenen Wörtern betroffen ist. Wenn wir aber wirklich nur einen Fehler korrigieren wollen, wäre es schön, wenn wir eine Methode fänden, die weniger aufwändig ist. Dafür definieren wir uns folgenden stellenredundanten Code: Seite 24 von 272 27.01.2009 Sei eine Abbildung in einen Stellenredundanz-freien Code. Wir konstruieren dazu eine stellenredundante Codierungsabbildung: sodass für jedes und gilt: so dass jedes redundanzfreie Codewort eine Paritätsstelle erhält und dann doppelt gesendet wird. Durch Zerteilen der Wörter und Auswertung der Paritätsbits kann beim Empfänger eine Ein-Fehler-Korrektur vorgenommen werden. Beispiel Senden eines ASCII-Codewortes Angenommen, man möchte das Wort übertragen. Das Paritätsbit ist Man sendet das Wort Empfängt man das Wort so bestimmt man die Einzelwörter und die Anzahl der darin enthaltenen -Werte, die immer gerade sein muss. Im Beispiel gilt aber: und Beim zweiten Wort stimmt die Quersumme, daher nehmen wir an, dass es korrekt ist. Aufgrund der großen praktischen Bedeutung von Fehlerkorrekturverfahren hat man Codierungsabbildungen entwickelt, die bei einer gleichen Korrekturleistung mit weniger redundanten Stellen auskommen. Ebenso wird die Frage der Korrektur von mehreren Fehlern behandelt. Dieses Thema wird aber an dieser Stelle nicht weiter vertieft. 1.2.4 Training Seite 25 von 272 27.01.2009 1.2.4.1 L2-8: Aufgaben Aufgabe 1: Geben Sie die Zeichenfolge Fit als Folge von ASCII-Codewörtern an. Antwort: Aufgabe 2: Seien und Definieren Sie die Codierungsabbildung mit , wenn ein Paritätsbit angehängt wird. Antwort: Wird eine Störung erkannt, wenn der Empfänger Antwort: Ja, da das Paritätsbit Kann man beim Empfang des Wortes empfängt? ist. sicher sein, dass das Wort korrekt empfangen wurde? Antwort: Nein, es können eine gerade Anzahl von Fehlern (2,4,6, ...) aufgetreten sein. Wird eine Störung erkannt, wenn der Empfänger empfängt? Antwort: Seite 26 von 272 27.01.2009 Ja, obwohl die Quersummenprüfung keinen Fehler meldet, kann man nicht decodieren Aufgabe 3: Könnte man auch eine Fehlerkorrektur vornehmen, wenn keine Verdreifachung des Wortes gewählt wird, sondern nur eine Verdoppelung? Antwort: Nein, da dann zwar ein Fehler erkannt werden würde, jedoch kann der Empfänger nicht feststellen, welches der beiden Wörter korrekt ist. Aufgabe 4: Von Huffman stammt ein systematisches Verfahren zur Erzeugung unterschiedlich langer Codewörter mit dem Ziel, die Zahl der zu übertragenden Binärstellen so klein wie möglich zu halten. Wir wählen als Beispiel den Text: informatik ist innovation. , wobei der Wortzwischenraum (-) als Sonderzeichen aufgenommen wird. Wie viele Stellen braucht man, um die Zeichen des Alphabets mit gleichlangen Binärwörtern zu codieren? Wie viele Stellen braucht man zur Darstellung der gegebenen Zeichenfolge? Antwort: Das Alphabet umfasst zwölf Zeichen. Man benötigt daher Stellen. Der Satz besteht aus 25 Zeichen, so dass insgesamt 100 Binärstellen zu seiner Darstellung benötigt werden. Wir geben jetzt einen Code mit unterschiedlich langen Codewörtern an. Dabei werden häufig auftretende Zeichen kurz und seltenere Zeichen lang codiert. Zeichen Auftrittshäufigkeit Codewort a 2 f 1 i 5 k 1 m 1 n 4 o 3 r 1 s 1 t 3 v 1 Beitrag zur Gesamt-Codelänge Seite 27 von 272 27.01.2009 - 2 Tabelle 2 : Huffman Codierung für einen vorgegebenen Text Wie viele Bits braucht man, um den Satz "informatik ist innovation" mit diesem Code zu codieren? Wie viele Stellen spart man gegenüber einem Code mit gleichlangen Wörtern ein? Antwort: Man braucht 84 Bit und spart 16 Bit ein. Können Sie die Bitfolge decodieren: Antwort: Man kann den Text decodieren, obwohl keine Grenzen der ungleich langen Binärwörter übertragen werden. Man stellt fest, dass es kein Codewort außer das mit gibt, beginnt. Daher kann man die erste Wortgrenze eintragen: Das nächste Zeichen ist . Wörter die mit beginnen, gibt es in Tabelle 2 viele. Zwei Wörter beginnen mit , aber nur noch eines mit . Dabei schreiben wir: In dieser Weise fährt man fort, die Wortgrenzen einzurichten und erhält schließlich: Diese Wortfolge kann man zu "Information" decodieren. 1.2.4.2 L2-9: Selbsttest Aufgabe 1: Wie viele Stellen benötigt man, um die 10 Ziffern des Dezimalsystems durch gleich lange Binärwörter zu codieren? Geben Sie ein Beispiel für eine solche Codierung an. Antwort: mit erhalten wir n = 4. Eine zulässige Lösung dieser Aufgabe ist jede Codierungsabbildung, die jeder Dezimalziffer ein unterschiedliches vierstelliges Binärwort zuweist. Die Codierungsabbildung kann z.B. so erfolgen: Seite 28 von 272 27.01.2009 0 1 2 3 4 5 6 7 8 9 Tabelle 3 Dieser Beispielcode heißt übrigens Excess-3-Code. Er hat die besondere Eigenschaft, dass die binären Codewörter für die Ziffern i und 9-i komplementär sind, d.h. an den Stellen an denen ist, den Wert besitzt und umgekehrt. Das ist für manche Anwendungen hilfreich. 1.3 L3: Zahlensysteme 1.3.1 L3-1: Einleitung Ein Additionssystem ist ein Zahlensystem, bei dem sich der Wert einer Zahl durch Addieren der Werte ihrer Ziffern ergibt. Ein einfaches Additionssystem ist das Unärsystem, auch "Strichliste" genannt. Es gibt nur eine Ziffer (unär), den Strich, mit dem Wert: Additionssystem Eine Zahl wird als Folge von Strichen dargestellt, wobei der Wert der Zahl der Anzahl an Strichen entspricht. Die Position der Striche hat also keinen Einfluss auf ihren Wert. Beispiel Unärsystem Unärsystem Seite 29 von 272 27.01.2009 Die Römischen Zahlen stellen ein anderes Additionssystem dar (wenn man auf einige Tricks zur Verkürzung der Darstellung verzichtet). Der Vorteil von Additionssystemen ist, dass eine Addition einfach durchgeführt werden kann, indem man die Strichlisten verkettet. Zur Verkürzung der Darstellung kann man, wie bei den Römischen Zahlen Substitutionen durch höherwertige Ziffern durchführen (z.B. 5 Striche durch V ersetzen). Allerdings haben sie den Nachteil, dass Multiplikation, Division oder andere mathematische Operationen nur mit sehr viel Mühe durchgeführt werden können. Auch die Darstellung von großen Zahlen ist umständlich, wenn man beispielsweise überlegt, wie die Dezimalzahl 23423423 im Unärsystem aussehen würde. Das andere Zahlensystem ist das Stellenwertsystem. Im Gegensatz zum Additionssystem spielt beim Stellenwertsystem die Position der Ziffern eine Rolle. Beispiele für Stellenwertsysteme sind das gewöhnlich verwendete Dezimalsystem, aber auch das Dualsystem oder das Hexadezimalsystem. Sie unterscheiden sich durch die Anzahl der verwendeten Ziffern (10, 2 bzw. 16). Vorteil des Stellenwertsystems ist, dass man große Zahlen mit wenigen Symbolen darstellen kann und das Rechnen leichter fällt. In diesem Kapitel betrachten wir die gängigsten Stellenwertsysteme, nämlich das Dual- und das Dezimalsystem. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z Zahlensystem [ L3-1 ] Additionssystem [ L3-1 ] Unärsystem [ L3-1 ] b-adische Darstellung [ L3-2 ] Bearbeitungsdauer: ca. 30 min Verstehen (Konzepte erklären können) z b-adische Zahlensysteme [ L3-2 ] Fähigkeiten (neue Kenntnisse anwenden können) z Wertermittlung für eine b-adische Zahl [ L3-2 ] 1.3.2 L3-2: b-adische Darstellung Das Dezimalsystem, auch 10-adische Darstellung einer Zahl genannt, verwendet 10 Ziffern einer Zahl genannt, benötigt nur die Ziffern Der Wert einer b-adischen Zahl . Das Dualsystem, auch 2-adische Darstellung . ist definiert durch b-adische Darstellung Beispiel Dezimalzahlen Den Wert der Ziffernfolge 287 im Dezimalzahlensystem (oder 10-adischen) System berechnet man wie folgt: Seite 30 von 272 27.01.2009 Beispiel Dualzahlen Den Wert der Ziffernfolge 10010 im Dualzahlensystem (oder 2-adischen) System berechnet man wie folgt: Der Wert von im Dualzahlensystem ist identisch mit der Zahl 18 im Dezimalzahlensystem, zur Unterscheidung oft auch als geschrieben. 1.3.3 Training 1.3.3.1 L3-3: Aufgaben Aufgabe 1: Was ist der Unterschied zwischen Additions- und Stellenwertsystemen? Antwort: Additionssystem: jede Ziffer hat einen bestimmten Wert, unabhängig von ihrer Position im Wort; Stellenwertsystem: der Wert, den eine Ziffer zum Wert der Zahl beiträgt, ist von ihrem eigenen Wert und von ihrer Position im Wort abhängig: mit i: Position im Wort. Aufgabe 2: Bestimmen Sie den Wert des Wortes 110011 im Dezimalsystem Antwort: Dualsystem Antwort: 1.3.3.2 L3-4: Selbsttest Aufgabe 1: Dezimalzahlen kann man auf sehr unterschiedliche Weise in eine binäre Darstellung (Verwendung von zwei Zeichen) überführen. Beispielsweise dadurch, dass man die Regeln anwendet zur Transformation von einem 10-adischen in ein 2-adisches System. Es gibt aber auch eine Variante, bei der man jede Ziffer einer Dezimalzahl in eine gleichwertige Dualzahl (nach den Wertigkeiten der Stellen 8-4-2-1-Code genannt) wandelt. Seite 31 von 272 27.01.2009 Geben Sie hierfür die Abbildungsfunktion an. Antwort: i 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 Tabelle 4 Wie stellt man die Zahl in 8-4-2-1-Form dar? Antwort: 0010 0011 2 Prozessorschaltungen: Motivation und grundlegende Begriffe 2.1 L4: Grundlegende Begriffe und Notationen Seite 32 von 272 27.01.2009 2.1.1 Überblick 2.1.1.1 L4-1: Prozessoren Prozessoren, wie beispielsweise der Pentium, bilden das Herzstück eines Rechners. Dort werden einfache Rechen-Operationen mit hoher Geschwindigkeit ausgeführt, so dass durch Ergänzung weiterer Komponenten leistungsfähige "Personal Computer" (PC) zur Durchführung von Berechnungen, zur Speicherung und Ausgabe von Daten entwickelt werden können. Pentium heißt eine Prozessorfamilie der Firma Intel. Es gibt natürlich andere wichtige Firmen wie AMD, IBM, MIPS, ARM . Intel hat den ersten Prozessor überhaupt auf einem Halbleiterchip integriert (Intel 4004). Dieser Tradition fühlt sich die Firma verpflichtet und bietet interessante und lehrreiche Websites z. B. zu den Themen: z z z z How Transistors work How Microprocessors work How Chips are made Microprocessor Hall of Fame Prozessoren sind hoch komplexe elektronische Schaltungen, in denen mehrere Millionen von Transistoren über Leitungen untereinander verbunden sind. Um derart komplexe Schaltungen in ihrer Funktion verstehen zu können, verwenden Informatiker das Prinzip der Abstraktion. In diesem Lernmodul betrachten wir beispielsweise logische Schaltungen, ohne auf ihre Realisierung durch elektronische Schaltungen einzugehen. Logische Schaltungen kennen keine Spannungswerte, sondern die logischen Werte true und false , die man im Zusammenhang mit logischen Schaltungen auch durch O ( false ) bzw. L ( true ) darstellt. Sie abstrahieren also von konkreten Spannungswerten. Logische Schaltungen empfangen logische Werte an ihren Eingängen und verknüpfen sie entsprechend ihrer Funktion zu logischen Ausgangswerten. Obwohl einer solchen Verknüpfung eine elektronische Schaltung zugrunde liegt, wird dies auf der Abstraktionsebene "Logische Schaltungen" nicht sichtbar. Nachdem wir das Prinzip der logischen Schaltungen verstanden haben, abstrahieren wir logische Werte zu Zahlenwerten. Damit kann man beispielsweise Komponenten für das Addieren von Zahlen definieren, die aus logischen Komponenten zusammengesetzt sind. Zunächst beginnen wir aber mit der Abstraktion durch logische Schaltungen. ANMERKUNG ABSTRAHIEREN Pentium Abstraktion abstrahieren von bestimmten Details absehen, um dadurch das Wesentliche besser zu verstehen Beispiel Modulo-8-Zähler Als einführendes Beispiel wählen wir auf dieser Seite eine Schaltung, die mitzählt, wie oft die Eingangstaste gedrückt wird. Allerdings kann sie nur von 0 bis 7 zählen und beginnt dann wieder von vorne. Eine solche Schaltung nennt man einen Modulo-8-Zähler. Diese Funktion kann man verstehen, ohne zu wissen, wie etwa logische Komponenten oder wie sogar elektronische Komponenten zusammengebaut werden müssen, um dieses Zählverhalten zu realisieren. Wir abstrahieren also vollständig von elektrischen und von logischen Größen und betrachten die Abstraktionsebene der Zahlen. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Modulo-8-Zähler Seite 33 von 272 27.01.2009 Abbildung 7 : Zähler Schaltungen zum Rechnen und Verteilen von Operanden und Ergebnissen nennt man auch Schaltnetze. Ergänzt man Schaltnetze um Komponenten zur Speicherung, dann spricht man von Schaltwerken. AUFGABE 1: Ist der Modulo-8-Zähler ein Schaltnetz oder ein Schaltwerk? Antwort: Ein Schaltwerk, da diese Schaltung den Zählzustand speichern muss, um bei jedem Tastendruck den neuen Zählwert bestimmen zu können. 2.1.1.2 L4-2: Einleitung In diesem Abschnitt werden grundlegende Strukturen eingeführt, die wir zur Beschreibung von Schaltnetzen benötigen. Wir werden uns mit folgenden Fragen grundsätzlicher Art auseinandersetzen: z z z z z z z Warum modelliert man Schaltnetze formal? Welche Eigenschaften charakterisieren ein Schaltnetz? Auf welche formalen Konstrukte lassen sich Struktur und Verhalten von Schaltnetzen abbilden? Was ist Schaltnetzanalyse? Was ist Schaltnetzsynthese? Was versteht man unter der Struktur eines Schaltnetzes? Was versteht man unter dem Verhalten eines Schaltnetzes? LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z Boolesches Wort [ L4-3 L4-6 ] Boolesche Sequenz [ L4-7 ] Verhalten von Schaltnetzen [ L4-8 ] Struktur von Schaltnetzen [ L4-8 ] Analyse von Schaltnetzen [ L4-10 ] Synthese von Schaltnetzen [ L4-9 ] Bearbeitungsdauer: ca. 120 min Verstehen (Konzepte erklären können) z z Modellierbarkeit der Informationsverarbeitung als Funktionen auf Booleschen Wörtern bzw. Sequenzen [ L4-4 ] Unterschied Schaltnetz - Schaltwerk [ L4-5 ] Fähigkeiten (neue Kenntnisse anwenden können) Seite 34 von 272 27.01.2009 z Begriffe korrekt verwenden [ L4-8 L4-9 L4-10 L4-12 ] 2.1.2 Boolesches Wort, Boolesche Sequenz 2.1.2.1 L4-3: Boolesches Wort Jeden Eingang einer Logischen Schaltung kann man mit einem Wert aus belegen, also entweder mit oder mit . Diese Belegung muss nicht dauerhaft sein, sondern kann zu jedem beliebigen Zeitpunkt geändert werden. Besitzt eine Schaltung n Eingänge, dann werden diese mit einem n-stelligen Eingabewort belegt. DEFINITION BOOLESCHES WORT Allgemein ist ein n-stelliges Boolesches Wort (Tupel) ein Element aus . Boolesches Wort Abbildung 8 : Erläuterung des Begriffs Boolesches Wort In Abbildung Abbildung 8 haben wir vier Eingänge und eine vierstellige Belegung mit dem Wort dargestellt. Die Booleschen Werte lesen wir von oben nach unten und stellen sie von links nach rechts dar. Die Klammern schreiben wir, um die Zusammengehörigkeit der Stellen, in diesem Fall ihre Zugehörigkeit zur Eingabe, zu charakterisieren. Bei einstelligen Wörter lassen wir die Klammern im Allgemeinen weg. 2.1.2.2 L4-4: Boolesche Sequenz Wenn wir beschreiben wollen, dass eine zeitliche Folge von Wörtern z.B. an die Eingänge einer logischen Schaltung gelegt werden sollen, dann bilden die Wörter selbst Elemente der Sequenzen. Wir schreiben solche Sequenzen durch eine Doppelklammerung: . Dabei schreitet die Zeit von links nach rechts fort. Wir beginnen also mit dem zeitlich ersten Wort, dann dem zweiten Wort usw. DEFINITION Seite 35 von 272 27.01.2009 Eine Boolesche Sequenz ist eine zeitliche Folge von Booleschen Wörtern gleicher Stellenzahl. Beispiel Sequenz von 5 zweistelligen Wörtern: Sequenz von 5 zweistelligen Wörtern Aufgabe 1: Die folgende Aufschreibung von - und -Werten soll so ergänzt werden, dass sie eine Sequenz von vierstelligen Wörtern beschreibt: Antwort: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 9 : Zähler Mit der Anordnung aus 2 Schaltern, einer Lampe und einem unbekannten Baustein wollen wir ein Experiment machen und das Ergebnis so beschreiben, dass andere es verstehen können: Experimentbeschreibung: Wir schreiben im Folgenden in jedem Eingabewort zuerst den Wert des oberen Schalters, dann den des unteren. Es ist: : schwarzer Punkt, : gelber Punkt. Auf die Eingabesequenz reagiert das System mit der Ausgabe . Damit wird deutlich, dass wir eine Sequenz von 5 zweistelligen Wörtern eingegeben haben und eine Sequenz von 5 einstelligen Wörtern am Ausgang ablesen konnten. Die Verarbeitung in Prozessoren lässt sich durch Funktionen beschreiben, die auf Booleschen Werten, Booleschen Wörtern und Sequenzen von Booleschen Wörtern operieren. Modellierbarkeit der Informationsverarbeitung als Funktionen auf Booleschen Wörtern bzw. Sequenzen 2.1.2.3 L4-5: Unterschied Schaltnetz - Schaltwerk Seite 36 von 272 27.01.2009 Die in einem Prozessor verwendeten Logischen Schaltungen nennt man Schaltnetze oder Schaltwerke je nachdem, ob zu ihrer Verhaltensbeschreibung Abbildungen zwischen Wörtern oder zwischen Sequenzen von Wörtern notwendig sind. Schaltnetze sind einfach zu beschreiben, weil man jedem Eingabewort eindeutig ein Ausgabewort zuordnen kann. Anders bei Schaltwerken, die sich merken können, welche Eingabewörter in der Vergangenheit vorgelegen haben und die deshalb z.B. unterschiedlich reagieren können je nachdem, ob ein Wort zum ersten Mal oder ob das gleiche Wort zum zweiten Mal angelegt wurde. Unterschied Schaltnetz - Schaltwerk "Schalt": Grundbauelement Schalter -netz: ohne interne Speicherung -werk: mit interner Speicherung Beispiel Schaltnetz Eingabewort Ausgabewort Schaltnetz Tabelle 5 : Verhalten eines Schaltnetzes: Gleiche Eingabewörter erzeugen gleiche Ausgabewörter Legt man an die zwei Eingänge des Schaltnetzes beispielsweise das Wort an, so wird die Ausgabe immer sein. Zwar gibt man auch in ein Schaltnetz Sequenzen ein. Unabhängig davon, zu welcher Zeit ein bestimmtes Wort eingegeben wird und welche Wörter zuvor eingegeben wurden, kann man aber aus der beschreibenden Tabelle jede mögliche Eingabesequenz rekonstruieren. Tabelle 5 beschreibt das System, mit dem wir nun experimentieren wollen. AUFGABE 1: Geben Sie zu der folgenden Eingabesequenz die zugehörige Ausgabesequenz ( Tabelle 5) an: Antwort: Die Angabe von Sequenzen ist nur dann erforderlich, wenn auf eine gleiche Eingabe, abhängig von ihrer Position in der Sequenz, unterschiedliche Ausgaben erfolgen: Eingabesequenz: Ausgabesequenz: Ein Schaltnetz ist nicht in der Lage aus der gezeigten Eingabesequenz die zugehörige Ausgabesequenz zu erzeugen. Hierzu muss man nämlich nicht nur wissen, dass die Eingabe ist, sondern auch wie viele Male diese Eingabe vorher angelegen hat. Beispiel Schaltwerk Schaltwerke sind Bausteine, bei denen auf eine gleiche Eingabe, abhängig von ihrer Position in der Sequenz, unterschiedliche Ausgaben erfolgen: Ein Hardwareprozessor (z.B. Intel Pentium) ist ein Beispiel für ein komplexes Schaltwerk. Er enthält Schaltnetze beispielsweise zur Durchführung arithmetischer Schaltwerk Seite 37 von 272 27.01.2009 Operationen wie Addition und Subtraktion. Komponenten zur Speicherung von Werten (Zahlen, Bits, Character) ergänzen Schaltnetze zu Schaltwerken. 2.1.2.4 L4-6: Wiederholung: Beispiel Boolesches Wort BEISPIEL BOOLESCHES WORT Ein 5-stelliges Wort (5-Bit-Wort) über der Menge ist beispielsweise . Boolesches Wort Abbildung 10 : Übertragung eines 5-stelligen Booleschen Wortes zwischen zwei Systemen Abbildung 10 verdeutlicht die Übertragung eines 5-stelligen Wortes auf 5 Leitungen zwischen zwei Systemen. System 2 kann beispielsweise aus 5 Lampen bestehen, die durch angeschaltet und durch ausgeschaltet werden. 2.1.2.5 L4-7: Wiederholung: Beispiel Boolesche Sequenz Boolesche Sequenz BEISPIEL BOOLESCHE SEQUENZ Eine Folge von drei 8-stelligen Wörtern entsprechend der ASCII-Kodierung für FIT hat dann beispielsweise die folgende Form: In Abbildung 11 wird eine Übertragung zwischen einem Rechner und einem Drucker als Beispiel gewählt. Dabei beachte man, dass zunächst F, dann I und schließlich T übertragen wird. Die Zeit schreitet also von rechts nach links fort. Seite 38 von 272 27.01.2009 Abbildung 11 : Übertragung einer Sequenz von Wörtern 2.1.3 Verhalten und Struktur von Schaltnetzen 2.1.3.1 L4-8: Definition Verhalten, Struktur DEFINITION VERHALTEN Verhalten von Schaltnetzen Funktionen dienen zur Beschreibung des Verhaltens von Schaltnetzen und Schaltwerken. Sie geben Auskunft darüber, mit welchen Ausgaben ein System auf jede mögliche Eingabe reagiert. Ein- und Ausgaben werden durch Boolesche Werte, Wörter oder Sequenzen repräsentiert. Beispiel Eingabewort Ausgabewort Tabelle 6 : Verhalten eines Schaltnetzes: Gleiche Eingabewörter erzeugen gleiche Ausgabewörter DEFINITION STRUKTUR Struktur von Schaltnetzen Seite 39 von 272 27.01.2009 Eine Bauanleitung für solche Systeme, Implementierung genannt, beschreibt man durch eine Zusammenschaltung einfacher Komponenten in einer Strukturbeschreibung. Sie verbindet Ausgänge von Komponenten mit Eingängen anderer Komponenten. Zur vollständigen Beschreibung einer Implementierung gehört auch die Verhaltensbeschreibung der Komponenten, die wiederum in Form von Funktionen erfolgen kann. Die Implementierung eines Systems verrät also etwas genauer, wie das Verhalten dieses Systems erreicht werden kann, nämlich dadurch, dass bestimmte Komponenten in geeigneter Weise zusammengefügt werden. Abbildung 10 zeigt eine typische Form einer Strukturbeschreibung eines Systems, das aus zwei Teilsystemen zusammengesetzt ist. In diesem Bild sendet das eine Teilsystem dem anderen Boolesche Wörter. Selbstverständlich kann das System auch detaillierter beschrieben werden. 2.1.3.2 L4-9: Synthese DEFINITION SYNTHESE VON SCHALTNETZEN Synthese von Schaltnetzen Unter Synthese versteht man die Konstruktion einer Schaltung aus gegebenen zugelassenen Komponenten, so dass eine ebenfalls vorgegebene Aufgabenstellung (Beschreibung des gewünschten Verhaltens) erfüllt wird. Dabei stellen sich Fragen wie: z z welche Komponenten braucht man, um die Aufgabe zu lösen? gibt es ein systematisches Konstruktionsverfahren? 2.1.3.3 L4-10: Analyse DEFINITION ANALYSE VON SCHALTNETZEN Analyse von Schaltnetzen Bei einer Schaltungsanalyse ermittelt man die Beschreibung des Verhaltens einer durch die Struktur und das Verhalten der Komponenten der Struktur gegebenen Schaltung. Bei einem Schaltnetz scheint die Aufgabenstellung einfach zu sein, weil man für jedes mögliche Eingabewort nur das zugehörige Ausgabewort ermitteln muss. Man bedenke aber, dass ein Schaltnetz viele Eingangsleitungen besitzen kann und dass daher die Tabelle, die für alle möglichen Eingabewörtern je eine Zeile vorsieht, gigantisch groß sein kann. Beispiel Eine typische Aufgabe eines Rechners (daher kommt ja der Name) ist die Addition von jeweils 2 Zahlen. Zahlen werden heute häufig durch 32-stellige Boolesche Wörter dargestellt. Eine Tabelle, die für jede mögliche Kombination aus zwei Summanden eine Zeile vorsieht, bestünde aus Zeilen. Wir werden sehen, dass man solche Tabellen nicht braucht, da die Addition einer Systematik unterliegt, die eine kompaktere Beschreibung ihres Verhaltens erlaubt. 2.1.3.4 L4-11: Zusammenfassung Analyse - Synthese Analyse und Synthese sind also gegenläufige Aktionen. Analyse bestimmt aus einer gegebenen Schaltung ihr Verhalten. Synthese ermittelt für ein gegebenes Verhalten eine Schaltung. Seite 40 von 272 27.01.2009 2.1.4 L4-12: Wiederholung: Notationen DEFINITION GRUNDLEGENDE MATHEMATISCHE NOTATIONEN ZUR FORMALEN BESCHREIBUNG VON SCHALTNETZEN Symbol Erläuterung Bezeichnung Menge der natürlichen Zahlen Menge der natürlichen Zahlen erweitert um den Wert 0 Menge der ganzen Zahlen Menge der Booleschen Werte Menge der zweistelligen Booleschen Wörter Menge der n-stelligen Booleschen Wörter Tabelle 7 : Grundlegende mathematische Notationen AUFGABE 1: Was bedeutet ? Antwort: -4 ist eine ganze Zahl. Seite 41 von 272 27.01.2009 AUFGABE 2: Wie schreibt man in Symbolen: 5 ist eine natürliche Zahl? Antwort: AUFGABE 3: Ein Schaltnetz habe drei Eingabeleitungen. Wie beschreibt man die Menge der möglichen Eingabewörter? Antwort: oder ausführlich . 2.1.5 L4-13: Zusammenfassung In dieser Lerneinheit wurden die grundlegenden mathematischen Strukturen und Notationen eingeführt, die zur Beschreibung von Schaltnetzen benötigt werden. Im folgenden Abschnitt wird gezeigt, wie man durch boolesche Funktionen das Verhalten von Schaltnetzen beschreiben kann. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z Boolesches Wort [ L4-3 L4-6 ] Boolesche Sequenz [ L4-7 ] Verhalten von Schaltnetzen [ L4-8 ] Struktur von Schaltnetzen [ L4-8 ] Analyse von Schaltnetzen [ L4-10 ] Synthese von Schaltnetzen [ L4-9 ] Verstehen (Konzepte erklären können) z z Modellierbarkeit der Informationsverarbeitung als Funktionen auf Booleschen Wörtern bzw. Sequenzen [ L4-4 ] Unterschied Schaltnetz - Schaltwerk [ L4-5 ] Fähigkeiten (neue Kenntnisse anwenden können) z Begriffe korrekt verwenden [ L4-8 L4-9 L4-10 L4-12 ] 2.1.6 Training Seite 42 von 272 27.01.2009 2.1.6.1 L4-14: Aufgaben Aufgabe 1: Aufgrund welcher Eigenschaft von Sequenzen Boolescher Wörter schließen wir folgende Darstellung aus: Antwort: Die Wörter einer Sequenz haben alle die gleiche Länge. Aufgabe 2: Welches Wort wird durch die folgende Sequenz von ASCII-Zeichen codiert: Antwort: Gut 2.1.6.2 L4-15: Selbsttest Aufgabe 1: Ein System reagiere auf folgende Eingabesequenz mit einer der folgenden Ausgabesequenzen: 1. 2. 3. 4. Bei welchen Ausgaben können Sie sicher sein, dass das erzeugende System kein Schaltnetz ist? Antwort: 3., 4. Warum können Sie bei den anderen Systemen nicht sicher sein, dass es garantiert ein Schaltnetz ist? Antwort: Es kann andere Eingabesequenzen geben, die ein Schaltwerk voraussetzen. Seite 43 von 272 27.01.2009 3 Boolesche Funktionen und Schaltfunktionen 3.1 L5: Boolesche Wörter und Zahlen 3.1.1 L5-1: Einleitung Wir beschränken uns hier auf natürliche Zahlen einschließlich 0 und fragen uns, wie diese mit Wörtern aus dargestellt werden. Folgende Fragestellung werden in dieser Lerneinheit behandelt: z Worin unterscheiden sich Boolesche Wörter von Dualzahlen? (Funktionen bool und dual) LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z Funktion dual [ L5-2 ] Funktion bool [ L5-3 ] Verstehen (Konzepte erklären können) z Bearbeitungsdauer: ca. 20 min Warum braucht man Dualzahlen und zugeordnete Boolesche Worte [ L5-3 ] Fähigkeiten (neue Kenntnisse anwenden können) z Berechnung von dual(x) und bool(x) [ L5-3 ] 3.1.2 L5-2: Funktion dual: Definition und Beispiel Seite 44 von 272 27.01.2009 Im Rechner arbeitet man nicht direkt mit Zahlen, sondern mit Booleschen Wörtern. Die Funktion dual beschreibt, wie man zu einem Booleschen Wort den Zahlenwert bestimmen kann. DEFINITION FUNKTION DUAL Sei ein Wort über . Dann ist Funktion dual mit und . an, vermindern den Index i jeweils um 1 und enden bei Wir fangen hier bei der Summe mit höchstwertige Stelle links schreiben. Wichtig ist auch, dass der Exponent von 2 nicht , sondern . Das entspricht der Schreibweise von Zahlen, bei denen wir die ist. Beispiel Anwendung der Funktion dual Seien n = 3 dual, Dualzahl, dual(x) und bool(x) berechnen können Aufgabe 1: Welchen Wert hat ? Antwort: 10012 = 910 Aufgabe 2: Sie haben sicher bereits erkannt, dass man bei Dualzahlen im Allgemeinen viel mehr Stellen braucht als für Dezimalzahlen um dieselbe Zahl darzustellen. Beginnen Sie Ihre Überlegungen an Beispielen: Wie viele Dezimal- und wie viele Dualstellen braucht man, um 99910, 999910 darzustellen? Geben Sie dann eine Formel für beliebige natürliche Zahlen an, die die Stellenzahl korrekt umrechnen kann. Antwort: Um 99910 darzustellen, benötigt man 10 Dualstellen. Um 999910 darzustellen, benötigt man 14 Dualstellen Allgemein: Um eine Zahl als Dezimalzahl darzustellen, benötigt man zur nächst größeren ganzen Zahl aufgerundet. Da (Logarithmus zur Basis 10) Dezimalstellen und Dualstellen, natürlich jeweils , benötigt man also mehr als drei Mal so viele Dualstellen wie Dezimalstellen. Aufgabe 3: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 45 von 272 27.01.2009 Abbildung 12 : Zähler (a) Stellen Sie die Schalter auf ( : schwarzer Punkt, : gelber Punkt). Welche Dezimalzahl wird angezeigt? Überlegen Sie, ob das richtig ist. Antwort: (b) Welche Zahlensequenz entsteht, wenn Sie von rechts nach links fortschreitend jeweils genau eine Taste auf stellen, alle anderen behalten den Wert ? Antwort: Die Zweierpotenzen 110, 210, 410, 810, 1610. (c) Welche Zahlensequenz entsteht, wenn Sie zunächst Taste 0, dann Tasten 0 und 1, dann Tasten 0, 1 und 2, dann 0, 1, 2 und 3 und schließlich alle Tasten drücken? Antwort: 110, 310, 710, 1510, 3110. Das kann man auch wie folgt darstellen: 21-1, 22-1, 23-1, 24-1, 25-1. Aufgabe 4: In L3-2 haben wir die Funktion wert eingeführt. Was ist der Unterschied zu dual? 2 Seite 46 von 272 27.01.2009 Antwort: wert bestimmt aus der Ziffernfolge der Zahl den Wert als Dezimalzahl. ist gleich der Ziffer der zugeordneten Dualzahl. dual bestimmt diesen Wert aus einem Booleschen Wort. 3.1.3 L5-3: Funktion bool: Definition und Beispiel Wenn wir eine Zahl gegeben haben, wollen wir umgekehrt wissen, wie sie als Boolesches Wort dargestellt werden kann. Sei eine Dualzahl, d.h. ein Wort über mit dem Wert . Dann ist Unterschiede dual, bool, dezimal mit und . Die Ziffern 0 und 1 werden also in die Booleschen Werte O und L abgebildet. In der Darstellung von Dualzahlen lassen wir die Klammerung, die wir für Wörter eingeführt haben weg. Wir schreiben also 1102 statt . Beispiel Funktion bool Häufig ist die Stellenzahl Boolescher Wörter konstant, d.h. unabhängig davon, wie viele Stellen man zu Zahlendarstellung benötigt. Dann muss man bei den Zahlen führende Nullen aufschreiben. Beispiel Berechnung von dual(x) und bool(x) Aufgabe 1: Bestimmen Sie zu 1710=1610+110 die 5-stellige Dualzahl und geben Sie an. Antwort: 1710 = 100012. AUFGABE 2: Die Wandlung durch die Funktion bool ist sehr einfach, so dass man sich die Frage stellt, warum man überhaupt beide Darstellungen, d.h. Wort über über Warum braucht man Dualzahlen und zugeordnete Boolesche Worte bzw. Wort braucht. Versuchen Sie zu erklären, warum das so sein muss. Seite 47 von 272 27.01.2009 Antwort: Boolesche Wörter sind keine Zahlen, daher kann man sie beispielsweise nicht ohne weiteres addieren. 3.1.4 L5-4: Zusammenfassung z z z z Dezimalzahlen sind Zahlen, die zur Basis 10 berechnet werden Dualzahlen sind Zahlen, die zur Basis 2 berechnet werden. Zur Umwandlung von Dualzahlen bzw. Booleschen Wörtern in Dezimalzahlen verwendet man die Funktion dual. Die Funktion bool wandelt eine Dualzahl in ein Boolesches Wort um. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z Funktion dual [ L5-2 ] Funktion bool [ L5-3 ] Verstehen (Konzepte erklären können) z Warum braucht man Dualzahlen und zugeordnete Boolesche Worte [ L5-3 ] Fähigkeiten (neue Kenntnisse anwenden können) z Berechnung von dual(x) und bool(x) [ L5-3 ] 3.2 L6: Verhaltensbeschreibung 3.2.1 L6-1: Einleitung Das Verhalten von Schaltnetzen beliebiger Komplexität beschreiben wir in dieser Lerneinheit in der Form Boolescher Funktionen. Häufig müssen solche Funktionen aus informellen Beschreibungen gewonnen werden. Zum Aufbau von Schaltnetzen setzen wir elementare Komponenten ein, deren Funktionsbeschreibung in dieser Lerneinheit eingeführt wird. Die Auswahl der Elementarkomponenten wird zum einen durch formale Gründe zum anderen durch technische Gründe bestimmt. Schaltnetzfunktionen Folgende Fragestellungen werden in dieser Lerneinheit behandelt: Seite 48 von 272 27.01.2009 z z Was sind Boolesche Funktionen und wie kann man sie charakterisieren? Welche Booleschen Grundfunktionen gibt es und wie werden sie symbolisch dargestellt? LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z Boolesche Funktion [ L6-2 ] Einschlägiger Index [ L6-3 ] NOT [ L6-5 ] NAND [ L6-5 ] NOR [ L6-5 ] XOR [ L6-5 ] Bearbeitungsdauer: ca. 60 min Verstehen (Konzepte erklären können) z z z mehrstellige Basiskomponenten [ L6-6 ] Aufbau komplexerer Schaltungen aus Basiskomponenten [ L6-4 ] Zeilennummern in Wertetabellen in Dualdarstellung [ L6-3 ] Fähigkeiten (neue Kenntnisse anwenden können) z z Darstellung von Booleschen Funktionen durch Wertetabellen [ L6-2 ] Menge der einschlägigen Indizes bestimmen können [ L6-3 ] 3.2.2 Boolesche Funktionen 3.2.2.1 L6-2: Boolesche Funktion und ihre Darstellung als Wertetabelle DEFINITION BOOLESCHE FUNKTION Eine n-stellige Boolesche Funktion Jedem n-stelligen Wort über der Menge ist eine n-stellige Abbildung auf der Menge wird also ein Element der Menge Boolesche Funktion : zugewiesen. Zur Darstellung solcher Funktionen kann man für kleine Werte von n Wertetabellen (Wahrheitstafeln) benutzen. Darstellung von Booleschen Funktionen durch Wertetabellen Beispiel Darstellung von Booleschen Funktionen durch Wertetabellen i b3 b2 b1 f(b3,b2,b1) Seite 49 von 272 27.01.2009 0 O O O O 1 O O L O 2 O L O O 3 O L L L 4 L O O O 5 L O L L 6 L L O O 7 L L L L Tabelle 8 : Beispiel für eine Boolesche Funktion Ein Beispiel für eine Boolesche Funktion zeigt Tabelle 8. Für alle möglichen Werte der Argumente , , der spezifischen Funktion werden die Werte von f eingetragen. Diese Wertetabelle kann beispielsweise aus einer informellen Beschreibung der folgenden Art abgeleitet sein: Wenn ein Schalter 1 gedrückt wird ( entweder der Schalter 2 ( ) oder der Schalter 3 ( ) gedrückt ist, dann soll ein Licht angehen ( ) und ). An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 13 AUFGABE 1: Geben Sie die verbale Beschreibung einer möglichen Aufgabenstellung aus dem richtigen Leben, die zu der beschriebenen Wertetabelle führt. Antwort: In einer Bank gebe es einen Direktor und zwei Stellvertreter. Zum Öffnen des Tresors muss der Direktor und einer der beiden Stellvertreter ihre Magnetkarten in die entsprechenden Lesegeräte einschieben. Wird die Karte als korrekt erkannt, wird der entsprechende Eingang des Schaltnetzes sonst ist er . Antwort: Falls Sie ein anderes oder sogar besseres Beispiel haben, senden Sie es uns bitte. Danke. 3.2.2.2 L6-3: Einschlägiger Index DEFINITION EINSCHLÄGIGER INDEX Seite 50 von 272 27.01.2009 heißt einschlägiger Index zu f, falls Einschlägiger Index Die Menge enthält alle einschlägigen Indizes einer Funktion und heißt Menge der einschlägigen Indizes. Einschlägige Indizes verwenden wir bei Wertetabellen. Die Menge der einschlägigen Indizes einer Funktion f, die mit Hilfe einer Wertetabelle dargestellt wird, sind die Zeilennummern der Tabelle, bei denen die Funktion f den Wert annimmt.. Beispiel Einschlägiger Index b3 b2 b1 f(b3,b2,b1) 0 O O O O 1 O O L O 2 O L O O 3 O L L L 4 L O O O 5 L O L L 6 L L O O 7 L L L L i Tabelle 9 : Beispiel für eine Boolesche Funktion Für Tabelle 9 ist die Menge der einschlägigen Indizes I = {3,5,7}. Die Menge der einschlägigen Indizes einer Funktion enthält also diejenigen Eingaben (als Dezimalzahl interpretiert), für die der Funktionswert L ist. 3.2.3 Basiskomponenten von Schaltnetzen 3.2.3.1 L6-4: Aufbau komplexerer Schaltungen aus Basiskomponenten DEFINITION BASISKOMPONENTE, BASISFUNKTION Zum Aufbau komplexer Schaltnetze verwendet man einfache Komponenten aus einer vorgegebenen Liste, deren Verhalten in Form von Wertetabellen beschrieben wird und die aufgabenspezifisch ausgewählt und über Leitungen zusammengefügt werden. Solche einfachen Komponenten nennen wir Basiskomponenten, die zugehörigen Booleschen Funktionen Basisfunktionen. Basiskomponente, Basisfunktion Grafische Symbole erlauben eine übersichtliche Beschreibung einer Schaltungsstruktur. Seite 51 von 272 27.01.2009 Abbildung 14 : Basiskomponente AND Abbildung 14 zeigt die Basiskomponente AND mit zwei Eingängen und einem Ausgang. Das Zeichen & steht für AND. Weitere Symbole solcher Komponenten sind in Tabelle 10 aufgelistet. Den Symbolen sind Namen (NOT, AND, OR, NAND, NOR, XOR usw.) und Funktionen in Form von Wertetabellen zugeordnet. Innerhalb der Symbole kennzeichnen spezielle Zeichenfolgen die jeweilige Funktion (beispielsweise steht & für AND). Strukturen verbinden Komponenten untereinander. Man kommt zu einer anschaulichen Grafik, die als Grundlage einer Vorschrift für den Aufbau eines Schaltnetzes mit einer spezifischen Funktion dienen kann. Alternativ dazu kann eine textuelle Beschreibung der Grafik eingeführt werden. Sie erlaubt es, das Verhalten des Gesamtsystems abzuleiten und Transformationen auf den Strukturen durchzuführen, ohne das Verhalten zu verändern. Wir werden daher alternativ beide Beschreibungsmöglichkeiten besprechen. 3.2.3.2 L6-5: Ein- und zweistellige Basiskomponenten Zweistellige Basiskomponenten sind Schaltnetzkomponenten, die ein zweistelliges Eingabewort besitzen. Sie bilden die Basis für alle Schaltnetze. Tabelle 10 zeigt die wichtigsten Basiskomponenten. Namen Wertetabelle b NOT(b) O L L O b2 b1 AND(b2, b1) O O O O L O L O O L L L NOT AND b2 b1 OR(b2, b1) O O O Knotensymbol Seite 52 von 272 27.01.2009 O L L L O L L L L b2 b1 NAND(b2, b1) O O L O L L L O L L L O OR NAND NOR XOR b2 b1 NOR(b2, b1) O O L O L O L O O L L O b2 b1 XOR(b2, b1) O O O O L L L O L L L O NOT, AND, OR, NOR, NAND, XOR Tabelle 10 : Basiskomponenten AUFGABE 1: Seite 53 von 272 27.01.2009 Überprüfen Sie die Richtigkeit der Wertetabellen durch Anlegen der entsprechenden Eingabewörter an die Komponente. Versuchen Sie sich die Tabellen einzuprägen. Aufgrund des Namens der Komponente sollte das in den meisten Fällen nicht schwierig sein. AUFGABE 2: Was ist: Antwort: 3.2.3.3 L6-6: Mehrstellige Basiskomponenten Die Funktionen der Basiskomponenten in Tabelle 9 sind ein- oder zweistellig: mehrstellige Basiskomponenten Allgemein sprechen wir von n-stelligen Komponenten, wobei n eine beliebige natürliche Zahl ist, um das Verhalten von Komponenten mit mehreren Eingängen zu beschreiben. Ihr Einsatz führt zu übersichtlicheren Schaltungen. Beispielsweise kann AND oder OR zu einer n-stelligen Basiskomponente verallgemeinert werden: mit Seite 54 von 272 27.01.2009 AUFGABE 1: Überprüfen Sie die Gültigkeit an den Beispielen und unter Verwendung von LogiFlash. Anleitung: 1. 2. Menüpunkt And auf die eingefärbte rechte untere Ecke klicken. Anzahl der Eingänge auf 4 Stellen und auf die weiße Fläche klicken. Es erscheint ein 3. 4. 5. 4 Buttons auf die weiße Fläche bringen. 1 Lampe auf die weiße Fläche bringen. Bei gedrückter linker Maustaste Verbindungen zwischen den Anschlüssen ziehen. Symbol. AUFGABE 2: Verallgemeinern Sie die Funktion NOR zu NOR . n Antwort: 3.2.4 Training 3.2.4.1 L6-7: Aufgaben Aufgabe 1: Geben Sie die Wertetabelle einer Funktion an, für die gilt: Seite 55 von 272 27.01.2009 Antwort: f O O O O O O L L O L O L O L L O L O O L L O L O L L O O L L L L Tabelle 17 Aufgabe 2: Zeigen Sie anhand von Wertetabellen, dass gilt: 1. Sei 2. Sei Gilt dann auch . Gelte außerdem: ? Antwort: O O O O O O O O L O O O O L O O O O O L L L O O 1. Seite 56 von 272 27.01.2009 1. L O O O O O L O L O O O L L O O O O L L L L L L Tabelle 18 Die Gleichheit ist bewiesen, da die beiden letzten Spalten gleiche Einträge besitzen. 2. O O O L L L O O L L L L O L O L L L O L L O L L L O O L O L L O L L O L L L O L O L L L L O L O Tabelle 19 Die letzte Spalte ist nicht gleich der vorletzten, daher ist . 3.2.4.2 L6-8: Selbsttest AUFGABE 1: Geben Sie die Wertetabelle einer Basiskomponente AND an. Antwort: b2 b1 AND(b2, b1) O O O Seite 57 von 272 27.01.2009 O L O L O O L L L Tabelle 20 Aufgabe 2: Die Menge der einschlägigen Indizes einer Funktion f: sei I = {1,2}. Erstellen Sie die Wertetabelle von f. Antwort: b2 b1 f(b2,b1) 0 O O O 1 O L L 2 L O L 3 L L O i Tabelle 21 AUFGABE 3: NAND ist eine zweistellige Funktion. Verallgemeinern Sie diese Funktion zu einer n-stelligen. Antwort: AUFGABE 4: Zaubern können wir auch. Wir haben 5 Spielkarten dadurch verändert, dass wir darauf Zahlen notiert haben. Wir zeigen einem Mitspieler diese Karten und bitten ihn, sich eine Zahl zu merken, die er uns natürlich nicht nennen darf. Wir bitten ihn, uns die Karten zu geben, auf denen die von ihm vermerkte Zahl eingetragen ist. Wir drücken die Eingangstasten, die den ausgewählten Karten zugeordnet sind und unser Schaltnetz spuckt uns die Geheimzahl aus. Der Mitspieler hält uns zurecht für eine große Zauberin/einen großen Zauberer. (Hoffentlich verlangt sie/er als nächstes nicht von Ihnen, dass Sie Ihren Professor verschwinden lassen.) Seite 58 von 272 27.01.2009 Abbildung 21 : Kartentrick An dieser Stelle ist in der HTML-Version eine Animation enthalten. Kartentrick Abbildung 22 : Kartentrick Welches Prinzip liegt diesem Kartentrick zugrunde? Antwort: Die Karten repräsentieren von links nach rechts die Wertigkeiten Dualzahl entspricht. Beispielweise gilt für die Zahl . Die Zahlen sind so auf den Karten angeordnet, wie es ihrer Darstellung als . Sie ist daher auf den Karten 2, 3 und 5 (von links) eingetragen und fehlt auf den Karten 1 und 4. 3.2.5 L6-9: Zusammenfassung z Eine n-stellige Boolesche Funktion weist jedem n-stelligen Wort über der Menge ein einzelnes Element der Menge zu. Seite 59 von 272 27.01.2009 z z z z Zur Darstellung von Booleschen Funktionen kann man für kleine Werte von n Wertetabellen benutzen. Die Menge der einschlägigen Indizes einer Funktion enthält diejenigen Eingaben (als Dezimalzahl interpretiert), für die der Funktionswert L ist. Zum Aufbau komplexer Schaltnetze verwendet man Basiskomponenten einer vorgegebenen Liste und zur übersichtlicheren Beschreibung einer Schaltungsstruktur verwendet man die grafischen Symbole dieser Komponenten (vgl. Tabelle 10) Die in dieser Lerneinheit eingeführten ein- oder zwei-stelligen Basisfunktionen kann man zu n-stelligen Funktionen verallgemeinern. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z Boolesche Funktion [ L6-2 ] Einschlägiger Index [ L6-3 ] NOT [ L6-5 ] NAND [ L6-5 ] NOR [ L6-5 ] XOR [ L6-5 ] Verstehen (Konzepte erklären können) z z z mehrstellige Basiskomponenten [ L6-6 ] Aufbau komplexerer Schaltungen aus Basiskomponenten [ L6-4 ] Zeilennummern in Wertetabellen in Dualdarstellung [ L6-3 ] Fähigkeiten (neue Kenntnisse anwenden können) z z Darstellung von Booleschen Funktionen durch Wertetabellen [ L6-2 ] Menge der einschlägigen Indizes bestimmen können [ L6-3 ] 3.3 L7: Strukturbeschreibung 3.3.1 L7-1: Überblick Warum formale Strukturbeschreibungen? Grafische Darstellungen werden in vielen Bereichen eingesetzt, um Strukturen zu beschreiben. Solche Strukturen können Gliederungen von Unternehmen, chemische Formeln, elektrische Schaltungen, Baupläne u.v.a.m betreffen. Die Entwickler solcher Strukturen gehen oftmals davon aus, dass die grafische Darstellung selbst erklärend ist, was leider nicht immer stimmt. Dann steht der Betrachter etwas hilflos vor dieser Darstellung, da sich ihm die Bedeutung der einzelnen grafischen Elemente und ihrer Verbindungen untereinander nicht erschließt. In der Informatik verwendet man grafische Sprachen zur Definition von Programmstrukturen beispielsweise im Bereich domänenspezifischer Programmierung. Solche Seite 60 von 272 27.01.2009 Domänen sind zum Beispiel der Automatisierungsbereich, der Bereich der Bildverarbeitung und Bildinterpretation, der Bereich der elektrischen Schaltungen, der Bereich der "logischen Schaltungen" usw.. Auch hier erwartet man sich einen Vorteil, der aber dann hinfällig wird, wenn Benutzer und System ein anderes Verständnis über die Bedeutung von einzelnen Strukturelementen besitzen. In diesem Abschnitt wollen wir daher neben der reinen Anwendung von formalen Strukturbeschreibungen auch die Erkenntnis gewinnen, wie wichtig das genaue Verständnis einzelner grafischer Strukturelemente ist, um die Gesamtbedeutung einer Grafik zu erfassen. Wir verwenden spezielle Funktionen zur Beschreibung der Grafikelemente. Folgende Fragestellungen werden in dieser Lerneinheit behandelt: z z z z formale Strukturbeschreibungen Wie kann man die Struktur von Schaltnetzen beschreiben? Welche Strukturkomponenten gibt es? Wie kann man die Wirkungsweise von Strukturkomponenten beschreiben? Welche Schaltfunktionen gibt es? LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z z z z z z z z Schaltfunktion [ L7-4 ] Schaltnetzstruktur [ L7-3 ] Verzweigung [ L7-5 ] Identität [ L7-6 ] Permutation [ L7-7 ] sequentielle Komposition [ L7-8 ] parallele Komposition [ L7-9 ] Konkatenation [ L7-9 ] Eingangskomponente [ L7-2 ] Ausgangskomponente [ L7-2 ] Verbindungskomponente [ L7-2 ] Bausteinkomponente [ L7-2 ] azyklischer Graph [ L7-3 ] Bearbeitungsdauer: ca. 100 min Verstehen (Konzepte erklären können) z z z z z z Strukturbeschreibung von Schaltungen durch gerichtete, azyklische Graphen [ L7-2 ] Assoziativität der sequentiellen Komposition [ L7-8 ] Assoziativität der parallelen Komposition [ L7-9 ] gerichtete Schaltnetzgraphen [ L7-3 ] zyklischer Graph [ L7-3 ] Schaltnetze sind zyklenfrei [ L7-3 ] 3.3.2 Strukturbeschreibung durch Graphen Seite 61 von 272 27.01.2009 3.3.2.1 L7-2: Graphen DEFINITION GRAPH Graph Ein Graph wird zur graphischen Darstellung von Elementen und deren Verbindungen verwendet. Die Elemente werden Knoten genannt, die Verbindungen zwischen den Elementen Kanten. Dabei gibt es Graphen, die sehr unterschiedliche Gestalt haben. Manchmal dominieren die Knoten den optischen Eindruck, manchmal auch die Kanten, wie das folgende Beispiel zeigt. Beispiel Busfahrplan der Stadt Passau Busfahrplan der Stadt Passau Abbildung 23 : Busfahrplan der Stadt Passau Knoten des Graphen "Linienplan" sind die einzelnen Bushaltestellen (hier durch "Pünktchen" mit Beschriftung dargestellt) , die Kanten legen die Routen der Busse über die Haltestellen fest. In der Mathematik kennt man auch Funktionsgraphen. Das sind grafische Darstellungen der Mene aller geordneten Paare einer Funktion f. Graphen können bestimmte Eigenschaften besitzen: DEFINITION EIGENSCHAFTEN VON GRAPHEN Ein Graph heißt gerichtet, falls den Kanten eine Richtung zugeordnet werden kann. In diesem Fall werden die Kanten durch Pfeile symbolisiert. Ein Graph heißt azyklisch, wenn es keinen Weg in Pfeilrichtung (über beliebig viele Kanten) von einem Knoten zu sich selbst gibt. Seite 62 von 272 27.01.2009 Auch bei Schaltnetzen kann man von Graphen sprechen. Die Knoten stellen die Komponenten der Schaltung dar, die Kanten die Verbindungen zwischen den Komponenten. Als Knoten gibt es Eingangs-, Ausgangs-, Verbindungs- und Bausteinkomponenten. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Strukturbeschreibung von Schaltungen durch gerichtete, azyklische Graphen, Eingangskomponente, Ausgangskomponente, Verbindungskomponente, Bausteinkomponente Abbildung 24 : Beispiel eines Schaltnetzgraphen Eingangskomponenten (Ausgangskomponenten) werden mit Eingangsvariablen (Ausgangsvariablen) beschriftet und besitzen kein explizites grafisches Symbol. Bausteinkomponenten haben Eingänge und Ausgänge. Jeder Knoten einer Schaltnetzkomponente hat so viele Eingänge wie die entsprechende Komponente Eingangsparameter. Grundsätzlich können Komponenten mehrere Ausgänge besitzen, auch wenn im Bild nur Komponenten mit jeweils einem Ausgang dargestellt sind. Verbindungskomponenten (grafisch durch einen ausgefüllten kleinen Kreis dargestellt) erlauben die Nutzung eines Wertes durch mehrere andere Komponenten. Kanten führen von Eingangskomponenten zu Verbindungskomponenten oder zu Eingängen von Bausteinkomponenten. Kanten führen von Ausgängen von Bausteinkomponenten zu Eingängen von Bausteinkomponenten, zu Verbindungskomponenten oder zu Ausgangskomponenten. Kanten dürfen sich überkreuzen. 3.3.3 Schaltnetzstruktur 3.3.3.1 L7-3: Definition Schaltnetzstruktur gerichtete Schaltnetzgraphen Seite 63 von 272 27.01.2009 Abbildung 25 : Graph mit explizit gerichteten Kanten DEFINITION SCHALTNETZSTRUKTUR Schaltnetzstruktur Eine Schaltnetzstruktur ist ein (von seinen Eingängen zu seinen Ausgängen) gerichteter azyklischer Graph (Kantenfolgen über die Knoten sind nicht geschlossen, es gibt also keine Zyklen), dessen Knoten mit Funktionsnamen markiert sind. ANMERKUNG RICHTUNG DER KANTEN Um auf eine explizite Richtungsangabe durch Pfeile verzichten zu können, vereinbaren wir, wie allgemein üblich, dass Eingänge nur links oder oben und Ausgänge nur rechts oder unten angeordnet werden dürfen. Dann lässt sich die Richtung der Kanten eindeutig bestimmen. In diesem einführenden Abschnitt ordnen wir die Eingänge immer links und die Ausgänge immer rechts an. Richtung der Kanten Üblicherweise zeichnet man Kanten gerichteter Graphen mit Pfeilen. Aus Gründen der Übersichtlichkeit verzichten wir hier darauf. Eingänge sind im allgemeinen links im Bild, Ausgänge rechts. Die Pfeile im Graphen würden immer in Richtung der Ausgänge zeigen. gerichtete Schaltnetzgraphen Abbildung 26 : Graph mit implizit gerichteten Kanten Seite 64 von 272 27.01.2009 zyklischer Graph Abbildung 27 : Die rote Linie definiert einen Zyklus und damit eine verbotene Struktur ANMERKUNG AZYKLISCHER GRAPH azyklischer Graph Eine wichtige Struktureinschränkung ist das Verbot, Ausgänge auf Eingänge von Komponenten zurückzuführen, also eine geschlossene Kantenfolge über Komponentenknoten zu erzeugen. 3.3.3.2 L7-4: Schaltfunktion Beispiel Struktur eines Schaltnetzes Struktur eines Schaltnetzes Abbildung 28 : Beispiel einer Schaltungsstruktur für eine Schaltfunktion mit den Eingängen a,b,c und den Ausgängen d,e Abbildung 28 verdeutlicht, dass azyklische Graphen auch mehrere Ausgangsknoten besitzen können (im Bild e,d). Wir sagen, ein Schaltnetz implementiert eine Schaltfunktion und definieren: Schaltungsstruktur DEFINITION SCHALTFUNKTION Schaltfunktionen sind Funktionen über mit n Eingängen und m Ausgängen: Schaltfunktion Seite 65 von 272 27.01.2009 Wir sprechen von einer n -stelligen Funktion mit einem m -stelligen Ergebnis. In Abbildung 28 treten typische Merkmale einer Schaltungsstruktur auf: Der Ausgang einer der XOR-Komponenten (Bezeichnung: "=1") führt auf je einen Eingang der zweiten XOR-Komponente und der parallel dazu angeordnete ORKomponente (Bezeichnung " 1"). Der Wert von c wird unverändert an der ersten XOR-Komponente vorbeigeführt und teilt sich dann auf die beiden anderen Komponenten auf. Schaltungsstruktur Wir führen zur formalen textuellen Beschreibung solcher Strukturen einige Funktionen ein: Verzweigung, Identität, sequentielle und parallele Komposition. Sie beschreiben die Führung der Verbindungslinien, soweit diese für die Ermittlung der Schaltungsfunktion aus einer gegebenen Struktur notwendig ist. 3.3.4 Basisfunktionen für die Schaltnetzstruktur 3.3.4.1 L7-5: Verzweigung DEFINITION VERZWEIGUNG Die Schaltfunktionen und sind definiert durch die Gleichungen Verzweigung sowie Aus einem Wert a wird also durch ein Tupel (Wir sprechen hier von einem Tupel, weil die Elemente entsprechend ihrer Reihenfolge betrachtet werden. Bei Mengen ist die Reihenfolge des Aufschreibens dagegen unwichtig. ) aus zwei gleichen Werten. Ein Tupel wird durch entsprechend verdoppelt. Abbildung 29 zeigt eine zugehörige grafische Darstellung. Bei den Aufgaben werden wir auf entsprechende Beispiele eingehen. Verzweigung Seite 66 von 272 27.01.2009 Abbildung 29 : einfache und mehrfache Verzweigung (V und Vn) 3.3.4.2 L7-6: Identität DEFINITION IDENTITÄT Die Schaltfunktionen und sind definiert durch die Gleichungen Identität sowie Ein Wert a wird durch I( a) ohne Änderung weitergeleitet. Entsprechend erfährt auch ein Tupel durch Anwendung der Funktion I keine Veränderung. Auch diese n Funktion besitzt eine anschauliche grafische Repräsentation ( Abbildung 30). Identität Abbildung 30 : einfache und mehrfache Identität (I und In) 3.3.4.3 L7-7: Permutation Seite 67 von 272 27.01.2009 DEFINITION PERMUTATION Die Schaltfunktionen und sind definiert durch die Gleichungen Permutation sowie Abbildung 31 zeigt die Reihenfolgevertauschung durch die Funktionen P und P durch Überkreuzungen von Leitungen. n Permutation Abbildung 31 : einfache und mehrfache Permutation (P und Pn) 3.3.4.4 L7-8: Sequentielle Komposition DEFINITION SEQUENTIELLE KOMPOSITION Seien beliebige gegebene Schaltfunktionen. Dabei liefert Dies nennen wir sequentielle Komposition ( sprich: nach ) der Schaltfunktionen ein k-stelliges Tupel, dessen Werte die Argumente der Funktion und sind. und definieren die Schaltfunktion: sequentielle Komposition durch die Gleichung: Die Anwendung der Funktion auf die Argumente erzeugt die Argumente für die Funktion . wird also vor ausgeführt. Dies entspricht der Seite 68 von 272 27.01.2009 Hintereinanderschaltung von Schaltnetzen. (In der Mathematik wählt man dagegen eine andere Interpretation dieses Kompositionsoperators. ) Die serielle Komposition ist eine assoziative Operation, so dass wir statt Assoziativität der sequentiellen Komposition schreiben können. Dies bedeutet, dass zunächst auf die explizit angegebenen Argumente angewandt wird und die Argumente für Funktion liefert. auf die Argumente angewandt, die liefert. Als letztes wird die Beispiel mit drei Funktionen Dasselbe Ergebnis erhält man für da gilt und auf die entstehenden Argumente angewendet wird. sequentielle Komposition Abbildung 32 : Sequentielle Komposition In Abbildung 32 sieht man, dass die Ausgänge des ersten Netzes Eingänge des zweiten sind. Die explizit aufgeführten Argumente gehören also zur links stehenden Funktion. Dies hat den Vorteil, dass wir strukturbeschreibende Ausdrücke bei den Eingängen des Schaltnetzes beginnend aufschreiben können. Beispiel sequentielle Komposition Seien die Funktion und , dann ist An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 69 von 272 27.01.2009 Abbildung 33 : sequentielle Komposition 3.3.4.5 L7-9: Parallele Komposition DEFINITION PARALLELE KOMPOSITION, KONKATENATION Seien gegebene Schaltfunktionen. Dann liefert die parallele Komposition der Schaltfunktionen und die Schaltfunktion: definiert durch die Gleichung: parallele Komposition, Konkatenation Dabei bezeichnet der Operator | die Konkatenation, d.h. das nebeneinander Anordnen von Binärwörtern. Die parallele Komposition ist eine assoziative Operation, so dass wir statt schreiben können. Das kommutative Gesetz gilt dagegen im Allgemeinen nicht: In Abbildung 34 sieht man, dass die beiden Schaltnetze einfach nebeneinander angeordnet sind und sich gegenseitig nicht beeinflussen. Assoziativität der parallelen Komposition parallele Komposition Seite 70 von 272 27.01.2009 Abbildung 34 : Parallele Komposition Beispiel parallele Komposition Seien , ; dann ist Betrachten wir die Belegungen und , dann ist mit und : Parallelkomposition An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 71 von 272 27.01.2009 Abbildung 35 : Parallelkomposition 3.3.5 L7-10: Zusammenschaltung von Schaltfunktionen Selbstverständlich können alle Funktionen, die wir in den bisherigen Abschnitten vorgestellt haben, beliebig kombiniert werden. Wir zeigen dies am Beispiel einer Permutation von Leitungen. Beispiel Beliebige Permutation von Leitungen Sei die Schaltfunktion: mit: zu implementieren, d.h. mit den gegebenen Basisfunktionen zur Strukturbeschreibung darzustellen. Lösung: Wir zeigen die Lösung zunächst in grafischer Form: Beliebige Permutation von Leitungen Seite 72 von 272 27.01.2009 Abbildung 36 : Permutation von Leitungen Hierfür können wir schreiben: Dabei werden zunächst und P mit n n und und sowie und vertauscht. Im Anschluss daran wird unter und angeordnet. Man kann nachweisen, dass die Funktionen P zusammen mit Parallel- und Serienkomposition ausreichen, um alle Leitungspermutationen zu implementieren. 3.3.6 L7-11: Zusammenfassung z z z z z Die Struktur eines Schaltnetzes kann man durch einen Graphen beschreiben. Die Knoten des Graphen stellen Eingangs-, Ausgangs-, Verbindungs- und Bausteinkomponenten dar, während die Kanten Komponenten miteinander verbinden, wobei sie sich auch kreuzen dürfen. Eine Schaltnetzstruktur ist ein (von seinen Eingängen zu seinen Ausgängen) gerichteter azyklischer Graph, dessen Knoten mit Funktionsnamen markiert sind. Schaltfunktionen sind n-stellig mit m-stelligen Ergebnis. Zur formalen textlichen Beschreibung von Schaltnetzstrukturen sind die Schaltfunktionen Verzweigung, Identität und Permutation zuzüglich ihrer grafischen Repräsentation eingeführt worden. Man kann auf Schaltfunktionen die sequentielle und die parallele Komposition, die beide assoziativ sind, anwenden. Auch diese beiden Operationen wurden grafisch dargestellt. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z z z z z z z z Schaltfunktion [ L7-4 ] Schaltnetzstruktur [ L7-3 ] Verzweigung [ L7-5 ] Identität [ L7-6 ] Permutation [ L7-7 ] sequentielle Komposition [ L7-8 ] parallele Komposition [ L7-9 ] Konkatenation [ L7-9 ] Eingangskomponente [ L7-2 ] Ausgangskomponente [ L7-2 ] Verbindungskomponente [ L7-2 ] Bausteinkomponente [ L7-2 ] azyklischer Graph [ L7-3 ] Verstehen (Konzepte erklären können) Seite 73 von 272 27.01.2009 z z z z z z Strukturbeschreibung von Schaltungen durch gerichtete, azyklische Graphen [ L7-2 ] Assoziativität der sequentiellen Komposition [ L7-8 ] Assoziativität der parallelen Komposition [ L7-9 ] gerichtete Schaltnetzgraphen [ L7-3 ] zyklischer Graph [ L7-3 ] Schaltnetze sind zyklenfrei [ L7-3 ] 3.3.7 Training 3.3.7.1 L7-12: Aufgaben Aufgabe 1: Wie kann man die Funktion durch Verwendung der eingeführten Strukturfunktionen beschreiben? Veranschaulichen Sie die Zusammenhänge durch eine grafische Darstellung. Antwort: Abbildung 37 Aufgabe 2: Wie kann man die Funktion durch Verwendung der eingeführten Strukturfunktionen beschreiben? Veranschaulichen Sie die Zusammenhänge durch eine grafische Darstellung. Antwort: Seite 74 von 272 27.01.2009 Abbildung 38 Aufgabe 3: Mit welchen Funktionen beschreiben Sie die folgenden grafischen Symbole: Abbildung 39 Abbildung 40 Antwort: z , weil sich durch die Biegung gegenüber der geraden Linienführung nichts ändert. z Seite 75 von 272 27.01.2009 Aufgabe 4: Vereinfachen Sie folgenden Term, so dass eine einfachere Leitungsstruktur beschrieben wird: Antwort: Aufgabe 5: Sind folgende Terme korrekt: 1. 2. 3. Antwort: ist nicht korrekt, da NOT nur einen Parameter besitzt und einen Ausgang erzeugt. 1. ist nicht korrekt, da 2. zwei Ausgänge besitzt, der nachfolgend bearbeitete Term aber drei Eingangsparameter benötigt. 3. ist korrekt 3.3.7.2 L7-13: Selbsttest Aufgabe 1: Was ist ein Graph? Was stellen wir damit dar? Welche Eigenschaften haben Graphen? Antwort: Ein Graph besteht auf Knoten V und Kanten E. Die Knoten V stellen Komponenten dar, die Kanten E die Verbindungen zwischen den Komponenten. Es gibt zyklische und azyklische Graphen. Ein Graph ist azyklisch, wenn es keinen Weg von einem beliebigen Knoten zu sich selbst gibt und zyklisch, falls es einen solchen Zyklus gibt. Man unterscheidet auch noch gerichtete und ungerichtete Graphen, je nachdem ob man den Kanten eine Richtung zuweisen kann oder nicht. Zyklen in gerichteten Graphen existieren nur dann, wenn der Weg von einem Knoten zu sich selbst die vorgegebenen Kantenrichtungen einhält. Seite 76 von 272 27.01.2009 Aufgabe 2: Was versteht man unter einer Schaltfunktion? Antwort: Schaltfunktionen sind Funktionen über mit n Eingängen und m Ausgängen: Wir sprechen von einer n-stelligen Funktion mit einem m-stelligen Ergebnis. Aufgabe 3: Welche Möglichkeiten gibt es, Verbindungen zwischen den Komponenten zu führen? Beschreiben Sie jeweils das Verhalten! Antwort: Verzweigung, Identität, Permutation, sequentielle Komposition, parallele Komposition. Beschreibung siehe L7-5, L7-6, L7-7, L7-8, L7-9 3.4 L8: Erweiterte Konzepte 3.4.1 L8-1: Überblick Folgende Fragestellungen werden in dieser Lerneinheit behandelt: z z z z Wie analysiert man eine gegebene Schaltungsstruktur? Wie führt man einzelne Leitungen zu einem Leitungsbündel zusammen? Wie spaltet man einzelne oder mehrere Leitungen von einem Leitungsbündel ab? Kann man Schaltnetze optimieren ohne die zugehörige Funktion zu verändern? LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z Leitungsbündel [ L8-5 L8-7 ] abkürzende Schreibweise zur Abspaltung der n-j niedriger indizierten Stellen eines Wortes [ L8-6 L8-6a ] abkürzende Schreibweise zur Abspaltung der n-j höher indizierten Stellen eines Wortes [ L8-6 L8-6a ] Projektionsfunktionen [ L8-6 L8-6a ] V-Modell [ L8-4 ] Modul [ L8-10 ] Bearbeitungsdauer: ca. 90 min Verstehen (Konzepte erklären können) Seite 77 von 272 27.01.2009 z z z z Analyse einer Schaltungsstruktur [ L8-2 ] Analyse einer Schaltungsstruktur im V-Modell [ L8-4 ] Transformation von Schaltnetzen [ L8-9 ] Aufbau einer Schaltung aus Modulen [ L8-10 ] Fähigkeiten (neue Kenntnisse anwenden können) z z Trennen von Leitungsbündeln [ L8-5 L8-6 ] Zusammenführen von Leitungsbündeln [ L8-5 ] 3.4.2 Analyse 3.4.2.1 L8-2: Analyse einer Schaltungsstruktur (1) ALGORITHMUS SCHALTUNGSANALYSE Schichteneinteilung der Schaltungsstruktur 1. Zunächst betrachten wir nur die Basiskomponenten und nummerieren sie ausgehend von den Ausgängen der Schaltnetzstruktur. Komponenten, die einen Ausgang des Schaltnetzes erzeugen, werden der Komponentenschicht zugeordnet. Komponenten, deren Ausgänge zu Eingängen der Komponenten in Schicht i führen, werden der Komponentenschicht 2. zugewiesen. Zwischen Komponentenschicht i und i+1 wird eine Verbindungsschicht Verbindungsschicht eingeführt. Zwischen Komponentenschicht 1 und Ausgängen wird die sowie zwischen Eingang und höchst nummerierter Komponentenschicht K wird die Verbindungsschicht k eingeführt. Analyse einer Schaltungsstruktur Seite 78 von 272 27.01.2009 Abbildung 41 : Schichteneinteilung für die Struktur von Abbildung 28 3. Unterschicht Verbindungsschichten müssen u.U. in mehrere Unterschichten unterteilt werden, wenn die erforderliche Leitungsführung nicht in einer einzigen Schicht darstellbar ist. (Die strenge Trennung zwischen Komponenten und Verbindungsschicht wird in den Beispielen manchmal aufgehoben, um den Strukturterm zu vereinfachen.) In Abbildung 41 ist in und unterteilt. 4. Ermittlung der Wertetabelle siehe nächste Präsentationseinheit. 3.4.2.2 L8-3: Analyse einer Schaltungsstruktur (2) ALGORITHMUS 4. Schritt: Ermittlung der Wertetabelle für den strukturbeschreibenden Term Die Wertetabellen zu dem strukturbeschreibenden Term: kann man durch Anwendung der Funktionen auf die Belegungen von c, b und a entsprechend Tabelle 22 konstruieren. Beispielsweise ergibt die Anwendung das Wort . Für die Ermittlung der Belegungen von greift man auf die Definition von XOR in zurück. Tabelle 22 : Wertebelegungen im Schaltnetz von Abbildung 41 mit dem strukturbeschreibenden Term AUFGABE 1: Seite 79 von 272 27.01.2009 Stellen Sie in der interaktiven Abbildung Schalterbelegungen ein und überprüfen Sie die Werte in der Tabelle 22. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 42 : Schaltung 3.4.2.3 L8-4: Analyse einer Schaltungsstruktur im V-Modell V-Modell, Analyse einer Schaltungsstruktur im V-Modell Zum Abschluss dieser Schaltungsanalyse fügen wir die beschriebenen Verfahrensschritte in das V-Modell ein. Seite 80 von 272 27.01.2009 Abbildung 43 : Eintrag Ergebnisse einer konkreten Schaltungsanalyse in das V-Diagramm Die beiden Schenkel des V zeigen Struktur und Verhalten eines Schaltnetzes in verschiedenen Abstraktionsebenen. Wir beginnen beim Verhalten mit standardisierten Funktionen auf Booleschen Werten, die durch ihre Wertetabellen beschrieben sind oder Leitungsstrukturen definieren. Exemplarisch ist im Diagramm die einfache Boolesche Komponente XOR beschrieben. Zusätzlich könnte man an dieser Stelle natürlich auch andere Funktionen I, P, V und NOR auflisten. Die grafische Beschreibung der Struktur aus diesen Komponenten definiert eine bestimmte Boolesche Funktion, die wir in einer Wertetabelle (vgl. Tabelle 22) abgeleitet haben. Diesen Schritt der Erstellung einer Wertetabelle aus einer Strukturbeschreibung und den Funktionen ihrer Komponenten bezeichnet man als Analyse. 3.4.3 Von Booleschen Werten zu Booleschen Wörtern 3.4.3.1 L8-5: Leitungsbündel DEFINITION LEITUNGSBÜNDEL Leitungsbündel Unter einem n-stelligen Leitungsbündel verstehen wir die Zusammenfassung von n Leitungen, die Boolesche Werte transportieren, zu einer Leitung, die n-stellige Boolesche Wörter transportiert. Beispiel Statt Einzelleitungen zeichnen wir nur eine Leitung, die aber 4 Stellen parallel transportieren kann: Seite 81 von 272 27.01.2009 Abbildung 44 Ein solches Bündel muss natürlich zuerst zusammengesetzt werden. Außerdem muss es möglich sein, einzelne Leitungen aus einem Bündel herauszuführen, um sie getrennt vom restlichen Bündel zu verarbeiten. Zusammenführen von Leitungsbündeln, Trennen von Leitungsbündeln Während wir für das Zusammenfügen die Parallelkomposition verwenden können, benötigen wir für das Trennen eine neue Funktion. Zunächst führen wir ein neues grafisches Symbol für die spezielle Form des Zusammenfügens von Einzelleitungen zu Leitungsbündeln ein ( Abbildung 45): Abbildung 45 : Verkettung zweier Boolescher Wörter Die grafische Struktur in Abbildung 45 können wir durch folgenden Term beschreiben: Wegen der Assoziativität der Verkettungsoperation setzen wir auch Symbole der Form in Abbildung 46 ein. Abbildung 46 : Mehrfachverkettung Boolescher Wörter Seite 82 von 272 27.01.2009 3.4.3.2 L8-6: Projektionsfunktionen DEFINITION PROJEKTIONSFUNKTIONEN Diese Funktionen werden für das Abspalten einzelner Leitungen aus einem Leitungsbündel oder von Leitungsteilbündeln eingeführt. Seien . Die Schaltfunktion ist definiert durch die Gleichung Projektionsfunktionen Sie beschreibt das Abspalten der Leitung i von einem Bündel mit n Leitungen. Die Funktion beschreibt das Abspalten der n-j niedriger indizierten Stellen eines Wortes. Und ist die abkürzende Schreibweise zur Abspaltung der n-j+1 höher indizierten Stellen eines Wortes. Abbildung 47 zeigt das entsprechende Symbol, wobei hier die Leitung n abgespalten wird. Projektionsfunktionen, Trennen von Leitungsbündeln Abbildung 47 : Zerlegung eines Wortes in einen Booleschen Wert und ein Restwort Beispiel Wir können nun ein Leitungsbündel wieder in Einzelleitungen auflösen, wie dies in Abbildung 48 beispielhaft gezeigt ist. Seite 83 von 272 27.01.2009 Abbildung 48 : Schrittweise Zerlegung eines Leitungsbündels in Einzelleitungen Statt dieser aufwändigen Darstellung von Abbildung 47 erlauben wir, wegen der Assoziativität der Projetktionsfunktionen, auch die verkürzte Darstellung von Abbildung 49. Abbildung 49 : Zerlegung eines Leitungsbündels in Einzelleitungen in einem Schritt 3.4.3.3 L8-6a: Formale Definition Abspalten der n-j niedriger indizierten Stellen eines Wortes abkürzende Schreibweise zur Abspaltung der n-j niedriger indizierten Stellen eines Wortes DEFINITION ABKÜRZENDE SCHREIBWEISE ZUR ABSPALTUNG DER NIEDRIGER INDIZIERTEN STELLEN EINES WORTES Als abkürzende Schreibweise zur Abspaltung der n-j niedriger indizierten Stellen eines Wortes definieren wir: Seite 84 von 272 27.01.2009 DEFINITION ABKÜRZENDE SCHREIBWEISE ZUR ABSPALTUNG DER HÖHER INDIZIERTEN STELLEN EINES WORTES Entsprechend definieren wir zur Abspaltung der n-j höher indizierten Stellen eines Wortes: abkürzende Schreibweise zur Abspaltung der n-j höher indizierten Stellen eines Wortes 3.4.3.4 L8-7: Anwendung "Linksschieben eines Wortes" Beispiel Seite 85 von 272 27.01.2009 Abbildung 50 : Linksschieben eines Wortes Aus einem n-stelligen Leitungsbündel zweigen wir die n-te Leitung ab. An das Restbündel fügen wir als niederwertigste Stelle eine Leitung an, die den konstanten Wert O trägt. Die zu bildenden Funktionen sind einmal das Abspalten der höchstindizierten Stelle eines Wortes: Zum anderen betrachten wir den Rest dieses Wortes und ergänzen auf der niedrig indizierten Seite des Wortes den Wert O: Dies bezeichnet man auch als "Linksschieben". Solche Operationen benötigt man beispielsweise um eine Dualzahl mit 2 zu multiplizieren. ANMERKUNG KONSTANTEN Konstanten Eigentlich müsste man an Stelle der Konstanten eine Funktion einführen, die die Konstante liefert. Dann könnte man die Parallelkomposition von Funktionen verwenden. Die beschriebene Form mit der Verkettungsoperation ist aber übersichtlicher. 3.4.3.5 L8-8: Beispiel Arztpraxis Hier soll gezeigt werden, dass die Symbole für das Zusammenfassen und Aufteilen von Leitungsbündeln zu übersichtlicheren Darstellungen führen. Beispiel Arztpraxis Eine Arztpraxis habe eine Wartezimmer für Privat- und eines für Kassenpatienten. Sobald ein Patient eintrifft, stellt die Arzthelferin fest, ob es sich um einen Privat- oder Kassenpatienten handelt, gibt ihm einen Nummernzettel und schickt ihn in das entsprechende Wartezimmer. Die Nummer entscheidet über die Aufrufreihenfolge. Sobald eine neuer Patient ins Behandlungszimmer gerufen wird, entscheidet die Arzthelferin, ob sie einen Privat- oder Kassenpatienten aufruft. Sie gibt die entsprechende Nummer ein, wählt zwischen privat und Kasse und aktiviert die Anzeige. In Logiflash gibt es keine Möglichkeit, Leitungen zu Bündeln zusammenzufassen. Daher werden die Schaltungen oft unübersichtlich. Seite 86 von 272 27.01.2009 An dieser Stelle ist in der HTML-Version eine Animation enthalten. Arztpraxis Abbildung 51 : Arztpraxis Wir zeigen in Abbildung 52 die Verwendung der neuen Symbole und hoffen, dass auch Sie diese Schaltungsstruktur übersichtlicher finden. (Der Kringel am ControlEingang von Kasse hat die Bedeutung einer Negation.) Seite 87 von 272 27.01.2009 Abbildung 52 : Beispiel Schaltung 3.4.4 Schaltungstransformation 3.4.4.1 L8-9: Schaltungstransformation DEFINITION SCHALTUNGSTRANSFORMATION Schaltungstransformation Seite 88 von 272 27.01.2009 Unter Schaltungstransformation versteht man die Transformation einer gegebenen Schaltung in eine neue Schaltung unter Beibehaltung der Funktionalität. Nach Einführung von entsprechenden Transformationsregeln kann man gegebene Schaltnetze umstrukturieren, ohne die realisierte Boolesche Funktion zu verändern. Ziele können dabei Strukturvereinfachungen (z.B. weniger Kreuzungen von Kanten), eine Reduktion der Komponentenzahl oder die Verwendung möglichst gleichartiger Teilstrukturen (billige Massenproduktion) sein. Letzteres ist in Abbildung 53 verdeutlicht. Transformation von Schaltnetzen Abbildung 53 : Aufbau einer Schaltnetzstruktur aus gleichartigen Teilstrukturen Bei Transformationen von Schaltnetzstrukturen darf sich die Funktion des Schaltnetzes nicht ändern. Der Nachweis der Funktionserhaltung oder der Änderung einer Funktion aufgrund von Strukturänderungen basiert auf den mathematischen Gesetzen der Booleschen Algebra, die in der nachfolgenden Lektion erläutert werden. 3.4.5 Modularer Aufbau 3.4.5.1 L8-10: Aufbau einer Schaltung aus gleichartigen Modulen Beispiel Aufbau einer Schaltung aus Modulen Seite 89 von 272 27.01.2009 Abbildung 54 : Aufbau einer Schaltnetzstruktur aus gleichartigen Teilstrukturen Abbildung 54 zeigt einen modularen Aufbau eines Schaltnetzes. Dabei versteht man unter modular die Mehrfachverwendung von einfachen oder zusammengesetzten Komponenten. Im Beispiel sind die Modulkomponenten aus einfachen Komponenten zusammengesetzt. Die gezeigten Module besitzen zwei Ausgänge, die wir mit x, y bezeichnen und zwei Eingänge u und w genannt. Die Beschreibung des Moduls Modul lautet: Modul: mit Die zugehörige Strukturbeschreibung nach Abbildung 54 lautet: Dieser Modul wird in drei Kopien eingesetzt. Wir beschreiben die Gesamtstruktur so, als ob der Modul Modul eine in der Funktion nicht näher beschriebene Komponente wäre. Wir erhalten dann als Strukturbeschreibung: Aufbau einer Schaltung aus Modulen Die Logiflash-Schaltung macht deutlich, wie einfach ein solcher Entwurf ist. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 55 : Schaltung Welche Aufgabe hat die gezeigte Schaltung? In einer Firma sei streng geregelt, in welcher Reihenfolge die MitarbeiterInnen Mittag machen dürfen. Punkt 12.00 Uhr setzt eine Uhr a anwesend ist und eine Pause machen will, ( b ) wird mit e . Wenn Bernd (b) ein Schild an seiner Türe beleuchtet: Mittagspause. Sobald Bernd zurückkommt, setzt er b Nun darf Clara (c) entscheiden, wie sie es mit der Mittagspause halten will. Ihr Türschild wird mit . beleuchtet. Sie gibt die Berechtigung an Doris (d) weiter. Aufgabe 1: Wie wird signalisiert, dass Doris Mittag macht? Wozu kann man die Boolesche Funktion h verwenden? Antwort: signalisiert: Doris macht Mittagspause. g h kann man verwenden, um das Signal a zurückzusetzen. Wenn ein weiterer Mitarbeiter eingestellt wird, kann man die Schaltung durch ein weiteres Modul erweitern. Sein unterer Eingang ist h. Seite 90 von 272 27.01.2009 3.4.6 L8-11: Zusammenfassung z z z Es wurde ein Algorithmus zur Schaltungsanalyse gegeben und die Schaltunsanalyse wurde im V-Modell dargestellt. Leitungsbündel können mit Hilfe der Parallelkomposition zusammengefügt werden. Für das Trennen der Leitungsbündel wurden die Projektionsfunktionen eingeführt. Will man eine Schaltung optimieren, so muss der Nachweis der Funktionserhaltung über die Gesetze der Booleschen Algebra, auf die im folgenden Kapitel eingegangen wird, geführt werden. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z Leitungsbündel [ L8-5 L8-7 ] abkürzende Schreibweise zur Abspaltung der n-j niedriger indizierten Stellen eines Wortes [ L8-6 L8-6a ] abkürzende Schreibweise zur Abspaltung der n-j höher indizierten Stellen eines Wortes [ L8-6 L8-6a ] Projektionsfunktionen [ L8-6 L8-6a ] V-Modell [ L8-4 ] Modul [ L8-10 ] Verstehen (Konzepte erklären können) z z z z Analyse einer Schaltungsstruktur [ L8-2 ] Analyse einer Schaltungsstruktur im V-Modell [ L8-4 ] Transformation von Schaltnetzen [ L8-9 ] Aufbau einer Schaltung aus Modulen [ L8-10 ] Fähigkeiten (neue Kenntnisse anwenden können) z z Trennen von Leitungsbündeln [ L8-5 L8-6 ] Zusammenführen von Leitungsbündeln [ L8-5 ] 3.4.7 Training 3.4.7.1 L8-12: Aufgaben Aufgabe 1: Bestimmen Sie die Wertetabelle der Funktion mit folgendem Strukturausdruck: Seite 91 von 272 27.01.2009 Antwort: a3 a2 a1 NAND I O O O L O L O O L L L O L O L O L O L L L L L O O L O L L O L L L L L O O O L L L L O L NAND O O O L Tabelle 23 Aufgabe 2: Zeigen Sie, dass die Strukturterme und die gleichen Funktionen beschreiben. ( d.h. die selben Wertetabellen besitzen ) Antwort: NOT NOT AND O O L L L O L L O O L O O L O L L O O O Tabelle 24 OR NOT O O O L O L O L Seite 92 von 272 27.01.2009 L O L O L L O L Tabelle 25 Aufgabe 3: Erstellen Sie für die folgende Schaltungsstruktur einen Strukturausdruck: Abbildung 56 Antwort: Aufgabe 4: Vereinfachen Sie folgenden Strukturausdruck, so dass eine einfachere Leitungsstruktur dargestellt wird: Antwort: Aufgabe 5: Stellen Sie die folgende Funktion der Rechtsrotation durch Verwendung von Projektionsfunktionen dar: Antwort: Seite 93 von 272 27.01.2009 Aufgabe 6: Beschreiben Sie eine Struktur bei der ein Leitungsbündel in zwei Teilbündel und aufgeteilt wird. Antwort: Abbildung 57 Aufgabe 7: Die Modulfunktion von Abbildung 53 war mit angegeben worden. Ändern Sie die Strukturbeschreibung, ohne die Funktion zu ändern. Antwort: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 94 von 272 27.01.2009 Abbildung 58 : Schaltung 3.4.7.2 L8-13: Selbsttest AUFGABE 1: Was versteht man unter Analyse eines Schaltnetzes? Antwort: Siehe Analyse einer Schaltungsstruktur (1). Beschreiben Sie den Algorithmus zur Durchführung einer Schaltnetzanalyse. Antwort: Siehe Analyse einer Schaltungsstruktur (2). AUFGABE 2: Erläutern Sie den Vorgang der Analyse anhand des V-Modells. Antwort: Siehe Analyse einer Schaltungsstruktur im V-Modell. AUFGABE 3: Vier Leitungen seien zu einem Bündel zusammengefasst. Beschreiben Sie unter Verwendung der Projektionsfunktion das Abspalten der Leitung aus dem Bündel. Antwort: Seite 95 von 272 27.01.2009 Aufgabe 4: Drei Leitungen , , sollen zu einem Bündel zusammengefasst werden. Beschreiben Sie diese Aufgabe durch eine Funktion und durch ein grafisches Symbol. Antwort: Abbildung 59 : grafisches Symbol 4 Boolesche Algebra 4.1 L9: Termdarstellung 4.1.1 L9-1: Einleitung und Motivation In den vorangegangenen Abschnitten haben wir uns damit beschäftigt, wie man das Verhalten und die Struktur von Schaltnetzen beschreiben kann. Zur Verhaltensbeschreibung von Booleschen Komponenten haben wir Boolesche Funktionen eingeführt, die in Form von Wertetabellen dargestellt wurden. Die Wertetabellendarstellung ist meist unhandlich. Wir werden in diesem Abschnitt den Formalismus der Booleschen Terme als alternative und (oft) kompaktere Darstellung von Booleschen Funktionen einführen. Die Termdarstellung ermöglicht uns, Zusammenhänge zwischen verschiedenen Booleschen Funktionen und damit zwischen dem Verhalten von Schaltnetzen formal zu beschreiben. Als Beispiel wird gezeigt, wie Boolesche Funktionen vergleichbar gemacht werden können, indem man auf ihnen eine Ordnungsrelation definiert. Die im Folgenden eingeführten formalen Konzepte bilden die Grundlage für den Entwurf und die Optimierung von Schaltnetzen. In der Informatik kann man viele sehr unterschiedliche Aufgabenstellungen unter Verwendung der Booleschen Algebra (Sie ist benannt nach dem englischen Seite 96 von 272 27.01.2009 Mathematiker George Boole.) bearbeiten. Diese bietet zunächst eine syntaktische Basis in Form Boolescher Terme. Boolesche Terme Die Boolesche Algebra legt also 1. 2. alle erlaubten Zeichen (Alphabet) und alle erlaubte Zeichenfolgen fest. Zur Verdeutlichung wählen wir ein Beispiel aus einem anderen Gebiet, nämlich der gewöhnlichen Algebra. Ist beispielsweise die Zeichenfolge: mann+*frau in diesem Zusammenhang zulässig, wenn Namen über dem Alphabet a, f, m, n, r, u gebildet werden dürfen und außerdem die Funktionsbezeichner +, * zulässig sind? Die Antwort ist natürlich nein, weil zwischen zwei Namen immer nur ein Rechenzeichen stehen darf. syntaktische Basis Boolescher Terme Boolesche Terme verwenden vereinbarte Namen (Hinweis Bezeichner, Identifikatoren) die möglichst einen intuitiven Zugang zum Verständnis des Terms ermöglichen. Beispiel Autobatterie Wir sind es leid, dass unsere Autobatterie häufig leer ist, weil wir vergessen haben, beim Abstellen der Zündung, auch das Fernlicht abzuschalten. Wir erkennen, dass sowohl die Zündung als auch der Fernlichtschalter jeweils an oder aber ausgeschaltet sein können. Daher führen wir die Namen Zündung und Fernlichtschalter ein. Wir wollen ein Schaltnetz entwerfen, das "Zündung aus" und "Fernlicht an" nicht zulässt, auch wenn der Zündungsschalter auf "aus" und der Fernlichtschalter auf "an" stehen. Wir brauchen außer Namen auch Funktionen, die wir mit (nicht), (und), (oder) bezeichnen. Ein Boolescher Term, der für unsere Aufgabenstellung wichtig ist, lautet: ( Zündung Fernlichtschalter) Wir werden sehen, dass dieser Term syntaktisch korrekt ist, sofern Zündung und Fernlichtschalter zugelassene Namen sind. Dieses syntaktische Konstrukt kann durch Anwendung von Ersetzungsregeln der Booleschen Algebra verändert werden. Das heißt bestimmte Zeichenfolgen können durch andere Zeichenfolgen ersetzt werden. Eine Bedeutung bekommt dieser Term erst, wenn wir eine Interpretation der Funktionen , und und der Namen einführen. Dann können wir diesem Term eine Aussage wahr oder falsch zuweisen und können damit feststellen, wann wir eine erlaubte oder eine nicht erlaubte Situation vorfinden. In unserem Falle führen wir zunächst eine Interpretation ein, die zur Booleschen Algebra der Wahrheitswerte führt. Konkret geben wir die Abbildung mit : Menge der zugelassenen Namen an. Beispiel (Zündung) = (Zündung) = nennen wir Belegung. Das bedeutet, dass jeder Name mit einem Wert oder Autobatterie belegt werden kann. (Zündung aus) (Zündung an) Wir werden später sehen, dass es nicht nur die Boolesche Algebra der Wahrheitswerte gibt, die wir hier besprochen haben. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z z Wahrheitswerte [ L9-2 ] NOT [ L9-3 ] AND [ L9-3 ] OR [ L9-3 ] Boolescher Term [ L9-5 L9-6 L9-13a ] Belegung [ L9-11a ] reflexiv [ L9-19 ] Seite 97 von 272 27.01.2009 z z transitiv [ L9-19 ] antisymmetrisch [ L9-19 ] Verstehen (Konzepte erklären können) z z z Interpretation von Namen als Boolesche Funktion [ L9-14 ] Verknüpfung Boolescher Funktionen [ L9-15 L9-16 ] Den Begriff der 'partiellen Ordnung' auf Booleschen Funktionen der formalen und intuitiven Bedeutung nach beschreiben können [ L9-17 L9-18 L9-19 ] Fähigkeiten (neue Kenntnisse anwenden können) z z z z z z Boolesche Operationen [ L9-3 ] Nachweis, ob eine Zeichenfolge ein Boolescher Term ist [ L9-5 L9-6 L9-7 ] Darstellung eines Booleschen Terms als Ausdrucksbaum [ L9-7 ] Ermittlung der Wertetabelle eines Booleschen Terms [ L9-10 L9-11a ] Den Funktionenraum aller zwei-stelligen Booleschen Funktionen ermitteln können [ L9-12 ] Die partielle Ordnung zwischen zwei Booleschen Funktionen anhand ihrer einschlägigen Indizes bestimmen können [ L9-18 ] Bearbeitungsdauer: ca. 46 min Analyse (Strukturen und Zusammenhänge erkennen) z Die Anzahl aller n-stelligen Booleschen Funktionen herleiten können [ L9-12 ] Beurteilen (Wissen vergleichen und bewerten können) z Beurteilung, ob jede Boolesche Funktion in Termdarstellung auch als Wertetabelle dargestellt werden kann [ L9-10 L9-11a ] 4.1.2 Grundlegende Definitionen 4.1.2.1 L9-2: Implementierung Boolescher Konstanten Die Menge der Wahrheitswerte besteht aus genau zwei Elementen: In Booleschen Termen verwendet man true und false als Konstante. In der Booleschen Algebra der Wahrheitswerte setzen wir konkret für true Wahrheitswerte und für false . Wir sprechen in diesem Zusammenhang von Implementierung I, allgemein spricht man von Interpretation. WARUM UND Seite 98 von 272 27.01.2009 Häufig verwendet man auch die Interpretation 0 und 1 statt und und . Wenn man aber mit Zahlen und Booleschen Werten umgeht, braucht man eine Unterscheidung. sind auf den Kopf gestellte Darstellungen von 0 und 1 in amerikanischer Schreibweise. Warum O und L 4.1.2.2 L9-3: Implementierung von Operationen DEFINITION NOT, AND, OR Wenn in einem Booleschen Term eines dieser Funktionszeichen auftritt, können die in Tabelle 10 eingeführten entsprechenden Komponenten verwendet werden. Aufgrund dieser Implementierungsvorschrift kann man Termvereinfachungen durchführen Beispielsweise kann man schreiben: statt vereinfacht Begründung Tabelle 26 : Termvereinfachung Wir stellen also die Frage nach der Bedeutung einer syntaktisch richtigen Zeichenfolge. Da haben wir mit mann+frau zunächst Schwierigkeiten, weil wir nur Zahlen addieren können und nicht Buchstabenfolgen. Wenn wir aber einführen: dann hat die Zeichenfolge eine klare Bedeutung, wir wollen einfach wissen, wie viele Studierende an der Universität Passau eingeschrieben sind. In einem solchen Zusammenhang geben wir oft auch allgemeingültige Formeln an, in denen wir nicht mit konkreten Zahlen, sondern mit symbolischen Werten arbeiten. Häufig verwendet man in der Mathematik dafür Buchstaben wie x, y, z . Wir kürzen also die Anzahl der männlichen Studierenden mit x und die der weiblichen mit y ab. z stehe für die Anzahl aller Studierenden. Dann gilt: z=x+y Bedeutung von Termen Seite 99 von 272 27.01.2009 mit Mit dieser Gleichung haben wir eine klare Bedeutung für alle, die rechnen können. Zusammenfassung: Man beachte, dass gilt: mann, frau , daher kann man sie nicht direkt addieren, sondern muss eine Interpretation vornehmen: . Die Menge x, y, z und gibt an, welche Namen zugelassen sind. repräsentieren ganze Zahlen. Wenn man daher z. B. setzt, kann man überall, wo bisher x stand einsetzen. 4.1.2.3 L9-4: Grundlegende Definition Der Boolesche Term Abbildung ( Zündung Fernlichtschalter) aus L9-1 erfährt eine Konkretisierung in der Booleschen Algebra der Wahrheitswerte durch Einführung einer und durch die Implementierung des Symbols durch die Komponente AND, sowie des Symbols durch die Komponente NOT. Dafür schreiben wir mit Interpretation mit der eingeführten Belegungsfunktion : Man fragt sich an dieser Stelle, ob man als Darstellung nicht gleich die semantische Darstellung wählen könnte. Im Prinzip wäre dies möglich. Wir würden damit aber die Möglichkeit anderer Interpretationen, die in der Informatik üblich sind und später im Kurs auftreten, nicht einheitlich behandeln können. Beispiel Für den Term ( Zündung Fernlichtschalter) erhalten wir die Implementierung An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 60 Seite 100 von 272 27.01.2009 wobei wir Z bzw. FS als symbolische Belegungen mit den Werten bzw. einführen. Das bedeutet, dass wir beispielsweise (Zündung) =Z schreiben mit Z 4.1.3 Def. Boolescher Term 4.1.3.1 L9-5: Boolescher Term - induktive Definition Mit Hilfe der drei aufgeführten Operationen und beliebigen Namen lassen sich Boolesche Terme konstruieren. Dabei muss festgelegt werden, wann eine Zeichenfolge die Eigenschaft besitzt, Boolescher Term zu sein. Wir führen zunächst die Menge freier Namen ein. Einen Namen bezeichnen wir als frei, wenn die Zuweisung einer Belegung ohne jede Einschränkung erfolgen kann, also unabhängig von der Belegung anderer Namen ist. Wir verwenden Namen, wenn wir kein konkretes Anwendungsbeispiel bearbeiten. als Boolescher Term DEFINITION BOOLESCHER TERM Die Menge der Booleschen Terme definiert sich induktiv als die kleinste Menge, die folgende Eigenschaften erfüllt: 1. 2. true und false sind Boolesche Terme alle Namen aus sind Boolesche Terme 3. 4. ist term ein Boolescher Term, dann ist auch ( term ) ein Boolescher Term sind und Boolesche Terme, dann sind auch sowie Boolesche Terme. Die ersten Elemente der Menge der Booleschen Terme können also folgendermaßen gebildet werden: ALGORITHMUS INDUKTIVE REDUKTION Um einen gegebenen Term, der nicht direkt einem der vier Fälle zugeordnet werden kann, auf Zugehörigkeit zu dieser Menge zu überprüfen, führt man Teilterme ein. Diese werden induktiv solange in weitere Teilterme zerlegt, bis die entstehenden Teilterme auf jeweils einen der vier Fälle zurückgeführt werden können. Jedes Element der kleinsten Menge lässt sich durch diese induktive Reduktion als Boolescher Term ableiten. Die Konstruktionsvorschrift ist induktiv, weil wir mit einfachsten Termen true, Terme definieren. false und den Variablen aus beginnen und darauf aufbauend sukzessive längere induktive Reduktion induktiv AUFGABE 1: Seite 101 von 272 27.01.2009 Ist schlau ein Boolescher Term? Antwort: Ja, wenn schlau . Aufgabe 2: Welche Aussage der Definition schließt aus, dass mit dumm als Boolescher Term zugelassen ist. Antwort: "die kleinste Menge", denn: 1. 2. " true und false sind Boolesche Terme", schließt nicht aus, dass dumm ein Boolescher Term ist. "alle Namen aus sind Boolesche Terme", schließt nicht aus, dass dumm ein Boolescher Term ist. 3. 4. " ist term ein Boolescher Term, dann ist auch ( term ) ein Boolescher Term" schließt nicht aus, dass dumm ein Boolescher Term ist. " sind und Boolesche Terme, dann sind auch sowie Boolesche Terme", schließt nicht aus, dass dumm ein Boolescher Term ist.. 4.1.3.2 L9-6: Induktive Reduktion von Booleschen Termen Beispiel induktive Reduktion Sei . Dann ist ein Boolescher Term. Zum Nachweis der Zugehörigkeit zur Menge der Booleschen Terme zerlegen wir den Term in Teilterme: induktive Reduktion mit der Definitionsgleichung und Aufgrund der angegebenen Regeln ist der gegebene Term genau dann ein Boolescher Term, wenn sowohl ist ein Boolescher Term, wenn als auch Boolesche Terme sind. ein Boolescher Term ist. Dies ist wahr, da x und y Namen und daher definitionsgemäß Boolesche Terme sind. Seite 102 von 272 27.01.2009 In entsprechender Weise lässt sich auch zeigen, dass ein Boolescher Term ist. Damit ist auch der ursprünglich gegebene Term ein Boolescher Term. ANMERKUNG INDUKTIVE REDUKTION Diese schrittweise Zerlegung in Teilterme haben wir als induktive Reduktion bezeichnet. 4.1.3.3 L9-7: Induktive Reduktion am Ausdrucksbaum DEFINITION AUSDRUCKSBAUM Die induktive Reduktion kann man in einem Ausdrucksbaum darstellen. Ein Ausdrucksbaum ist eine grafische Darstellung mit obenliegendem Wurzelknoten, dem der zu entwickelnde Term zugeordnet ist. Den untenliegenden Blattknoten sind Namen aus zugewiesen. Jeder Verzweigung im Graphen ist ein Operator zugeordnet, der zwei Teilterme des zu entwickelnden Terms verknüpft. Ausdrucksbaum Beispiel Ausdrucksbaum Dies macht man am besten an einem Beispiel deutlich. Seite 103 von 272 27.01.2009 Abbildung 61 : Visualisierung der Induktiven Reduktion durch einen Ausdrucksbaum 4.1.3.4 L9-8: Vorrangregeln in Booleschen Termen Aus Gründen der besseren Lesbarkeit verzichten wir auf eine vollständige Klammerung in Termen und führen Vorrangregeln ein. Diese Vorrangregeln sind vergleichbar mit den aus der gewöhnlichen Algebra bekannten Schreibweisen (z.B. "Multiplikation vor Addition"). Vorrangregeln DEFINITION VORRANGREGELN BOOLESCHER TERME Regeln zur Klammerung Boolescher Terme: 1. 2. 3. bindet stärker als und bindet stärker als ungeklammerte Aggregate (Teilterme) von Booleschen Termen, die jeweils durch Operatoren gleicher Bindungsstärke getrennt sind, werden von links nach rechts geklammert. Vorrangregeln, Bindungsstärke Beispiel Vorrangregeln, Bindungsstärke Statt schreiben wir daher übersichtlicher: Aufgabe 1: Klammern Sie den folgenden Term nach den angegebenen Regeln: Antwort: Aufgabe 2: Kann man in diesem Term die Klammer auch weglassen, ohne das Ergebnis seiner Interpretation zu ändern? Seite 104 von 272 27.01.2009 Antwort: nein 4.1.3.5 L9-9: Abkürzende Notationen für Operatoren In der Technischen Informatik lässt man häufig den - Operator weg, ähnlich dem Multiplikationsoperator in der gewöhnlichen Algebra. Anstelle des "+" verwendet und die Negation ( ) wird auch oft mit einem "Überstrich" gekennzeichnet. -Operators wird Weglassen des 'und'-Operators Beispiel Statt schreibt man auch: Außerdem findet man folgende Schweibweisen: 4.1.4 Termdarstellung - Wertetabelle 4.1.4.1 L9-10: Termdarstellung und Wertetabellen gleich mächtig? Wir haben nun zwei Möglichkeiten Boolesche Funktionen darzustellen, nämlich: z z Wertetabellen Termdarstellung Gleichmächtigkeit Termdarstellung Wertetabelle Dabei ist noch nicht sicher, ob die beiden Darstellungen gleich mächtig sind, ob also alle Terme in eine Wertetabelle und alle Wertetabellen in eine Termdarstellung gewandelt werden können. BOOLESCHER TERM WERTETABELLE Umwandlung Boolescher Term Wertetabelle In den folgenden Abschnitten wollen wir nachweisen, dass wir für jeden Booleschen Term eine Wertetabelle angeben können. Hierzu belegen wir die freien Namen in einem Term mit Booleschen Werten und werten die Verknüpfung der Booleschen Werte aus. BOOLESCHER TERM WERTETABELLE Umwandlung Wertetabelle Boolescher Term Seite 105 von 272 27.01.2009 Wenn wir nun auch nachweisen können, dass es für jede Wertetabelle einen entsprechenden Booleschen Term gibt, der dieselbe Boolesche Funktion beschreibt, haben wir die Gleichmächtigkeit von Booleschen Termen und Wertetabellen bewiesen. Dass diese Gleichwertigkeit von Termdarstellung und Wertetabelle nicht selbstverständlich ist, machen wir uns an einem Beispiel der gewöhnlichen Algebra mit der Wertemenge und den Operatoren +, * klar. a b c 0 0 2 0 1 1 0 2 1 1 0 2 1 1 1 1 2 2 2 0 1 2 1 0 2 2 1 Tabelle 27 Gibt es einen algebraischen Term, der diese Tabelle ergibt, wenn man die entsprechenden Wert für a und b einsetzt? Ich kenne keinen. Den Nachweis der "Rückrichtung" werden wir erst in L11-10 führen, da wir dann die dafür nötigen Techniken eingeführt haben. 4.1.4.2 L9-11: Umwandlung Termdarstellung in Wertetabelle Wir nehmen an, dass ein Boolescher Term gegeben ist und wir suchen die zugehörige Wertetabelle. Wenn Sie schon einmal mit einem Textverarbeitungsprogramm gearbeitet haben, dann kennen Sie vielleicht die Funktion der Ersetzung. Wenn Sie in dem Satz: "Er sperrte Mund und Nase auf" das Wort "und" durch das Wort "oder" ersetzen lassen (oder für und) , dann entsteht: "Er sperrte Moder oder Nase auf". Man muss bei einer solchen Substitution also genau aufpassen, dass kein unsinniger Text entsteht. Gegeben sei der Boolesche Term mit Symbole des Terms. Anstelle der Namen und und Termersetzung . Um eine Wertetabelle aufstellen zu können, benötigen wir eine Darstellung mit den Implementierungen der setzen wir und mit . Eine solche textuelle Ersetzung bezeichnen wir mit . Es entsteht zunächst eine Mischform: . Mit und erhalten wir schließlich eine Funktion f mit symbolischen Werten als Argumente: Die Umordnung der Reihenfolge in der Anordnung des Symbols im Vergleich zu der Funktion OR soll uns dabei nicht stören. Für solche Darstellungen haben wir bereits früher ein Analyseverfahren zur Erstellung einer Wertetabelle entwickelt. Seite 106 von 272 27.01.2009 Wir gehen hier wie folgt vor: Wir setzen anstelle der symbolischen Werte , die möglichen Wertebelegungen ein. Beispielweise schreiben wir: Nach Substitution gilt: Betrachten wir auch die übrigen drei Belegungen, dann erhalten wir die zugehörige Wertetabelle. Tabelle 28 : Wertetabelle zum Term mit der angegebenen Interpretation. Aufgabe 1: Bestimmen Sie die Wertetabelle für den booleschen Term . Was fällt beim Vergleich mit Tabelle 28 auf. Antwort: Tabelle 29 : Wertetabelle Es handelt sich um dieselbe Funktion. Unterschiedliche Boolesche Terme können die gleiche Wertetabelle besitzen. Das allgemeine Vorgehen wird in der Vertiefung beschrieben. Seite 107 von 272 27.01.2009 4.1.4.3 L9-11a: Umwandlung Termdarstellung in Wertetabelle BEWEIS UMWANDLUNG BOOLESCHER TERM - WERTETABELLE Gegeben sei ein Boolescher Term mit den Namen wobei wir hier anstelle der Namen Boolesche Werte . Der Term term definiert dann eine Abbildung mit einsetzen. Wir schreiben für das Einsetzen eines Booleschen Wertes b anstelle eines Namens . i Umwandlung Boolescher Term Wertetabelle Dann gilt: heißt Belegung der Namen für alle i mit mit . und einem Booleschen Wert Wir machen hier einen Unterschied zwischen einem Namen . Die Interpretation des Terms mit eingesetzten Booleschen Werten führt auf einen Booleschen Wert für Durch Einsetzen aller . möglichen Belegungen erhält man die Wertetabelle des Terms. 4.1.4.4 L9-12: Funktionenraum Für eine gegebene Stelligkeit n ist die Anzahl der Funktionen des Funktionenraumes (Menge aller bildbaren Funktionen) endlich. Der Funktionenraum enthält Boolesche Funktionen. Für n = 2 gibt es also verschiedene Funktionen, die in Tabelle 30 aufgelistet sind. b2 b1 f16 f15 f14 f13 f12 f11 f10 f9 f8 f7 f6 f5 f4 f3 f2 Funktionenraum, Menge aller nstelligen Booleschen Funktionen f1 Tabelle 30 : Die 16 möglichen Funktionen von 2 Booleschen Variablen Beispielsweise gilt: Seite 108 von 272 27.01.2009 Aufgabe 1: Wie viele unterschiedliche Boolesche Funktionen von einer Variablen gibt es? Geben Sie die entsprechenden Wertetabellen an. Antwort: b1 f4 f3 f2 f1 Tabelle 31 4 Aufgabe 2: Geben Sie möglichst vielen Funktionen in Tabelle 30 einen der von uns bereits benutzten anschaulichen Namen. Antwort: f16 Widerspruch f8 NOR f15 AND f2 NAND f10 XOR f1 Tautologie f9 OR Tabelle 32 4.1.5 Boolesche Terme über Funktionen 4.1.5.1 L9-13: Boolesche Terme über Funktionen Wir wollen nun nicht einfach Boolesche Werte verknüpfen, sondern Boolesche Funktionen, in dem wir beispielsweise Zeile für Zeile einer Wertetabelle verknüpfen: b2 b1 f9 f6 Seite 109 von 272 27.01.2009 Tabelle 33 : Verknüpfung Boolescher Funktionen und sind selbst Funktionen von und und sollen zeilenweise verknüpft werden. Dafür schreiben wir: . Das ist eine Mischschreibweise, da wir das Zeichen anstelle von AND verwenden. Das ist üblich, um die Übersichtlichkeit zu verbessern. In jeder Zeile in Tabelle 33 verknüpfen wir die Werte der Funktionen und durch AND. Diese Funktion ist für jeweils zwei Werte, also hier die Werte in einer Zeile definiert. 4.1.5.2 L9-13a: Boolesche Terme über Funktionen Andere Interpretationen Boolescher Terme, als die der Algebra der Wahrheitswerte, sind ebenfalls möglich. Beispielsweise kann man anstelle der Booleschen Werte, Boolesche Funktionen für die Namen setzen. DEFINITION BELEGUNG VON NAMEN DURCH BOOLESCHE FUNKTIONEN Gegeben sei ein Boolescher Term term . Er definiere eine Abbildung . Dabei ersetzen wir die Namen jeweils durch n- stellige Boolesche Funktionen. Wir interpretieren also jetzt: Belegung von Namen durch Boolesche Funktionen Jeder Name ist also ein Platzhalter für eine anderswo definierte Boolesche Funktion. Wir schreiben für das Ersetzen einer Booleschen Funktion anstelle eines Namens x : i Dann gilt: Nach der Substitution treten keine Namen x mehr auf, sondern nur noch symbolische Boolesche Werte b . i i Seite 110 von 272 27.01.2009 4.1.5.3 L9-14: Beispiel Boolescher Term über Funktionen Beispiel Interpretation von Namen als Boolesche Funktion Betrachten wir folgenden Term: Dieser Term soll die Abbildung definieren, wobei und in diesem Beispiel folgendermaßen vorgegeben sind: mit Wie lautet nun Interpretation von Namen als Boolesche Funktion in Wertetabellen-Darstellung? Seien beispielsweise: und ; dann sind und Solche Berechnungen sind für alle Belegungen ausgewertet, ohne über die Interpretation durchzuführen, um die gesamte Wertetabelle für zu erhalten. Wir haben abkürzend zu zu gehen. 4.1.5.4 L9-15: Verknüpfung Boolescher Funktionen DEFINITION VERKNÜPFUNG BOOLESCHER FUNKTIONEN Die Verknüpfungen auf Booleschen Funktionen ergeben sich durch punktweise (zeilenweise falls wir Wertetabellen betrachten) Verknüpfung der Funktionswerte: Verknüpfung Boolescher Funktionen Seite 111 von 272 27.01.2009 Die Definition ist wie folgt zu lesen: Man wähle eine bestimmte Belegung, zum Beispiel bei einer zweistelligen Funktion und . Dann gilt: ist definiert als: Dabei sind die beiden Werte und definiert und können daher durch AND verknüpft werden. 4.1.5.5 L9-16: Beispiel Verknüpfung Boolescher Funktionen Beispiel Verknüpfung Boolescher Funktionen b2 b1 f11 f10 f9 L O O L L Verknüpfung Boolescher Funktionen Tabelle 34 In Tabelle 34 sieht man, dass beispielsweise gilt. Man überprüft dies, in dem man für alle vier Belegungen die Gleichheit der Werte auf der linken Seite und rechten Seite der Gleichung feststellt. So gilt z.B.: 4.1.6 Operatoren und partielle Ordnung 4.1.6.1 L9-17: Partielle Ordnung auf der Menge der n-stelligen Funktionen Seite 112 von 272 27.01.2009 DEFINITION PARTIELLE ORDNUNG Die charakteristischen Verknüpfungen induzieren eine partielle Ordnung auf der Menge der n-stelligen Funktionen, die sich folgendermaßen definieren läßt: partielle Ordnung , falls Eine Ordnung heißt partiell, wenn nicht für alle Paare f und g von Elementen der entsprechenden Menge entweder f g oder aber g f gilt. SATZ PARTIELLE ORDNUNG Es gilt mit auch: BEWEIS PARTIELLE ORDNUNG Nach Definition der partiellen Ordnung ist also zu zeigen: aus folgt Dies zeigt man, in dem man in auf beiden Seiten g disjunktiv ( ) verknüpft: an. Damit erhalten wir: Wir greifen vor und nehmen die Gültigkeit des Absorptionsgesetzes Damit ist die Gleichheit unter der Voraussetzung gezeigt. 4.1.6.2 L9-18: Beispiel und Interpretation der Ordnungsrelation Beispiel partielle Ordnung b2 b1 f10 f9 partielle Ordnung Tabelle 35 : Zweistellige Boolesche Funktionen f10 und f9 Seite 113 von 272 27.01.2009 Es gilt: und Damit gilt definitionsgemäß Anschaulich bedeutet . also: , dann muss auch Sei sein. Diesen Sachverhalt kann man auch unter Verwendung der Menge einschlägiger Indizes formulieren: SATZ ZUSAMMENHANG PARTIELLE ORDNUNG - EINSCHLÄGIGER INDEX Seien Zusammenhang partielle Ordnung einschlägiger Index die Mengen der einschlägigen Indizes für die Booleschen Funktionen g bzw. f und gilt , dann ist . Beispiel Zusammenhang partielle Ordnung - einschlägiger Index In Tabelle 36 gilt beispielsweise . Dabei sind und und damit . i b2 b1 f10 f9 0 1 2 3 Tabelle 36 : Zweistellige Boolesche Funktionen f10 und f9 mit einschlägigem Index 4.1.6.3 L9-19: Eigenschaften der partiellen Ordnung Wir haben bis jetzt einfach angenommen, dass die beschriebene Relation drückt unsere Annahme als formale Behauptung aus. eine Ordnungrelation (d.h. reflexiv, transitiv und antisymmetrisch) ist. Der folgende Satz Ordnungsrelation SATZ PARTIELLE ORDNUNG Seite 114 von 272 27.01.2009 Die beschriebene Relation 1. reflexiv: 2. transitiv: 3. antisymmetrisch: ist partielle Ordnung Den Nachweis der Gültigkeit dieser Eigenschaften kann man über Mengenoperationen führen oder man verwendet Gesetze der Booleschen Algebra, die wir im Folgenden einführen werden. Wir werden später die Beweise nachholen. 4.1.7 L9-20: Zusammenfassung Wir haben gesehen, wie Boolesche Funktionen durch Boolesche Terme beschrieben werden können, bzw. dass Boolsche Terme als Boolesche Funktionen interpretiert werden können. Dabei wurde gezeigt, dass jede Boolesche Funktion in Termdarstellung auch in Wertetabellendarstellung überführt werden kann. Wir haben eine Ordnung auf der Menge der Booleschen Funktionen eingeführt, die uns den intuitiv leicht nachvollziehbaren Vergleich von zwei Booleschen Funktionen ermöglicht. Damit ist die Basis geschaffen, grundlegende Gesetze der Booleschen Algebra zu beweisen und den begonnenen Beweis der Gleichmächtigkeit von Termdarstellung und Wertetabellendarstellung von Booleschen Funktionen zu Ende zu führen. Wir werden sehen, dass es tatsächlich für jede Boolesche Funktion einen representierenden Booleschen Term gibt. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z z z z Wahrheitswerte [ L9-2 ] NOT [ L9-3 ] AND [ L9-3 ] OR [ L9-3 ] Boolescher Term [ L9-5 L9-6 L9-13a ] Belegung [ L9-11a ] reflexiv [ L9-19 ] transitiv [ L9-19 ] antisymmetrisch [ L9-19 ] Verstehen (Konzepte erklären können) z z z Interpretation von Namen als Boolesche Funktion [ L9-14 ] Verknüpfung Boolescher Funktionen [ L9-15 L9-16 ] Den Begriff der 'partiellen Ordnung' auf Booleschen Funktionen der formalen und intuitiven Bedeutung nach beschreiben können [ L9-17 L9-18 L9-19 ] Fähigkeiten (neue Kenntnisse anwenden können) Seite 115 von 272 27.01.2009 z z z z z z Boolesche Operationen [ L9-3 ] Nachweis, ob eine Zeichenfolge ein Boolescher Term ist [ L9-5 L9-6 L9-7 ] Darstellung eines Booleschen Terms als Ausdrucksbaum [ L9-7 ] Ermittlung der Wertetabelle eines Booleschen Terms [ L9-10 L9-11a ] Den Funktionenraum aller zwei-stelligen Booleschen Funktionen ermitteln können [ L9-12 ] Die partielle Ordnung zwischen zwei Booleschen Funktionen anhand ihrer einschlägigen Indizes bestimmen können [ L9-18 ] Analyse (Strukturen und Zusammenhänge erkennen) z Die Anzahl aller n-stelligen Booleschen Funktionen herleiten können [ L9-12 ] Beurteilen (Wissen vergleichen und bewerten können) z Beurteilung, ob jede Boolesche Funktion in Termdarstellung auch als Wertetabelle dargestellt werden kann [ L9-10 L9-11a ] 4.1.8 Training 4.1.8.1 L9-21: Aufgaben Aufgabe 1: Ist der folgende Term ein Boolescher Term? Schreiben Sie den Term in kürzerer Form unter Beachtung der Vorrangregeln. Antwort: t stellen definitionsgemäß Boolesche Terme dar: i Es ist ein Boolescher Term. Term in kürzerer Form unter Beachtung der Vorrangregeln: Seite 116 von 272 27.01.2009 Aufgabe 2: Stellen Sie den Term aus Aufgabe 1 als Ausdrucksbaum dar. Antwort: Abbildung 62 Aufgabe 3: Erstellen Sie die Wertetabelle für den Term Seien Seite 117 von 272 27.01.2009 Antwort: Tabelle 37 4.1.8.2 L9-22: Selbsttest Aufgabe 1: Erstellen Sie den Ausdrucksbaum für den Term . Antwort: Abbildung 63 Seite 118 von 272 27.01.2009 Zur übersichtlicheren Darstellung lassen wir hier die " "-Zeichen weg. Aufgabe 2: Warum induzieren , , eine Ordnung auf der Menge der Booleschen Funktionen? Antwort: , , werden zur Bildung Boolescher Terme verwendet, aus denen durch Interpretation Boolesche Funktionen gewonnen werden. Für diese gilt: , falls 1. 2. 3. . Dann ist auch . die Relation ist reflexiv, transitiv und antisymmetrisch nicht zwischen allen Paaren f,g von n-stelligen Funktionen gilt Aufgabe 3: Gegeben sei der Boolesche Term mit . Wie nennt man die Elemente aus und welche Interpretationsmöglichkeiten kennen Sie für diese Elemente? Antwort: Elemente aus heißen Namen, wir haben die Interpretation durch Boolesche Werte und durch Boolesche Funktionen kennengelernt. Aufgabe 4: Für die Symbole , , haben wir nur eine Interpretationsmöglichkeit kennen gelernt. Geben Sie diese an. Antwort: Aufgabe 5: Manchmal schreiben wir: . Wie ist diese Darstellung zu interpretieren? Antwort: Aufgabe 6: Sei Sind folgende Terme Boolesche Terme? 1. true Seite 119 von 272 27.01.2009 2. 3. 4. 5. 6. Antwort: 1. 2. 3. ja ja 4. 5. ja 6. nein ja ja Aufgabe 7: Betrachten Sie den Term mit Erstellen Sie die Wertetabelle zu diesem Term. Antwort: Tabelle 38 Seite 120 von 272 27.01.2009 4.2 L10: Grundlegende Gesetze und Definitionen 4.2.1 L10-1: Einleitung In diesem Kapitel geht es, wie der Titel schon sagt, um Gesetze der Booleschen Algebra. Mit Hilfe dieser Gesetze kann man einen Booleschen Term in einen anderen Booleschen Term überführen, der dennoch die gleiche Boolesche Funktion repräsentiert. Das kann bei der Optimierung von Schaltnetzen hilfreich sein. Hierunter versteht man die Suche nach einer möglichst kostengünstigen Implementierung. Ein weiterer Schwerpunkt dieses Kapitels wird die Bestimmung einer Termdarstellung zu einer in Wertetabellendarstellung gegebenen Booleschen Funktion sein. Gesetze der Booleschen Algebra, Termdarstellung Folgende Fragestellungen werden in dieser Lerneinheit behandelt: z z z z z z Was ist ein Gleichungsgesetz der Booleschen Algebra? Was ist eine Tautologie? Was ist Substitution, wie und wann wendet man sie an? Was ist ein Literal, was ein Monom und was ein Minterm? Wie weist man einer gegebenen Belegung einen Minterm zu und umgekehrt? Was ist ein Maxterm? LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z z z z z z z Involutionsgesetz [ L10-5 L10-5a ] Kommutativgesetze [ L10-5 ] Assoziativgesetze [ L10-5 ] Idempotenzgesetze [ L10-5 ] Absorptionsgesetze [ L10-5 ] Distributivgesetze [ L10-5 L10-5f ] Gesetze von de Morgan [ L10-5 L10-5g ] Neutralitätsgesetze [ L10-5 ] Literal [ L10-6 ] Monom [ L10-6 ] Minterm [ L10-6 L10-9 ] Maxterm [ L10-9 ] Bearbeitungsdauer: ca. 90 min Verstehen (Konzepte erklären können) z z Gleichungsgesetze der Booleschen Algebra [ L10-2 ] Tautologie [ L10-3 ] Fähigkeiten (neue Kenntnisse anwenden können) Seite 121 von 272 27.01.2009 z z z Substitution [ L10-4 ] Zuweisung eines Minterms zu einer gegebenen Belegung [ L10-7 ] Zuweisung einer Belegung, für die ein gegebener Minterm den Wert L annimmt [ L10-8 ] 4.2.2 Grundlegende Definitionen 4.2.2.1 L10-2: Einführung und Motivation Wir haben von syntaktisch unterschiedlichen Repräsentationen Boolescher Funktionen durch Boolesche Terme gesprochen. Solche unterschiedlichen Repräsentationen erhält man beispielsweise durch Anwendung von Gleichungsgesetzen der Booleschen Algebra auf einen gegebenen Term. Gleichungsgesetze der Booleschen Algebra DEFINITION GLEICHUNGSGESETZ DER BOOLESCHEN TERME Ein Gleichungsgesetz besteht aus einem Paar , von Booleschen Termen, für das wir schreiben . In jedem Booleschen Term, in dem Gleichungsgesetz der Booleschen Terme beispielsweise als Teilterm auftritt, können wir durch ersetzen. Prinzipiell kann man beliebige Ersetzungen vornehmen, ihre Sinnhaftigkeit erhalten die Gleichungsgesetze dadurch, dass die Interpretationen vor und nach der Ersetzung semantisch identische Funktionen beschreiben. Das weist man beispielsweise durch Aufstellen der Wertetabellen nach. Beispiel Sinnvolles Gleichungsgesetz: wobei x für einen beliebigen Booleschen Term steht. Nehmen wir als Beispiel an, dass für einen beliebigen Namen steht und sei der zugeordnete symbolische Wert. Es gilt . Dies macht die Wertetabelle deutlich. Sinnvolles Gleichungsgesetz: Tabelle 39 : Wertetabelle zum Nachweis der semantischen Äquivalenz der interpretierten Terme Beispiel Nicht sinnvolles Gleichungsgesetz: Nicht sinnvolles Gleichungsgesetz: wobei für einen beliebigen Booleschen Term steht. Man kann in einem Term zwar die Ersetzung der Zeichenkette vornehmen, die Interpretation der Terme vor und nach der Ersetzung führt aber zu unterschiedlichen Seite 122 von 272 27.01.2009 Funktionen. 4.2.2.2 L10-3: Tautologie Beispiel Konstanten Die Booleschen Terme true und false (= Konstanten) spielen eine ausgezeichnete Rolle. So setzen wir folgende Terme gleich und begründen dies über die übliche Interpretation. z z z z z z z true = x true = x false = false = x x=x x = true x = false x Interpretation true Interpretation true Interpretation false Interpretation false Interpretation x Interpretation x Interpretation Konstanten DEFINITION TAUTOLOGIE, WIDERSPRUCH Tautologie, Widerspruch Boolesche Terme, deren Interpretation für alle Belegungen ihrer Namen den Wert Belegungen ihrer Namen den Wert ergeben, nennt man Tautologie. Boolesche Terme, deren Interpretation für alle ergeben, nennt man Widerspruch. x ist eine Tautologie, x false ist ein Widerspruch. Beispiel Tautologie, Widerspruch x Es ist , gleichgültig, ob für bder Wert oder eingesetzt wird. Aufgabe 1: Wenden Sie im Term Ersetzungsregeln an, so dass der Term kürzer wird. Antwort: 1. Anwendung von 2. Anwendung von führt zum Term: führt zum Term true, da x für beliebige Terme steht und hier für 4.2.2.3 L10-3a: Interpretation Tautologie true = x x Interpretation: Seite 123 von 272 27.01.2009 Versuchen Sie durch Betätigen des Eingabeschalters das Licht zu löschen. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 64 : Tautologie Die Ursache des Flackerns lernen wir im Nachfolgekurs. 4.2.2.4 L10-3b: Interpretation Tautologie true = x true Interpretation: Versuchen Sie durch Betätigen des Eingabeschalters das Licht zu löschen. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 65 : Tautologie 4.2.2.5 L10-3c: Interpretation Widerspruch false = true Interpretation: Das Licht bleibt immer dunkel. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 124 von 272 27.01.2009 Abbildung 66 : Widerspruch 4.2.2.6 L10-3d: Interpretation Widerspruch false = x false Interpretation: Versuchen Sie durch Betätigen des Eingabeschalters das Licht anzumachen. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 67 : Widerspruch 4.2.2.7 L10-3e: Interpretation Termvereinfachung x=x false Interpretation: Was passiert bei Betätigen des Eingabeschalters mit dem Licht? An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 125 von 272 27.01.2009 Abbildung 68 : Termvereinfachung 4.2.2.8 L10-3f: Interpretation Termvereinfachung x = true x Interpretation: Was passiert bei Betätigen des Eingabeschalters mit dem Licht? An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 69 : Termvereinfachung 4.2.2.9 L10-3g: Interpretation Termvereinfachung x = false x Interpretation: Was passiert bei Betätigen des Eingabeschalters mit dem Licht? An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 126 von 272 27.01.2009 Abbildung 70 : Termvereinfachung 4.2.2.10 L10-4: Substitution Für das Arbeiten mit diesen Gesetzen führen wir die Möglichkeit der Substitution ein: DEFINITION SUBSTITUTION VON TERMEN Seien und Boolesche Terme, die Namen aus bezeichnen wir denjenigen Term, der aus enthalten und sei x . Mit Substitution von Termen dadurch entsteht, dass alle Vorkommen von x durch ersetzt werden. Beispiel Substitution Seien und . Substitution Es gilt: Aufgabe 1: Substitution Seien und Seite 127 von 272 27.01.2009 Geben Sie den Term an. Antwort: 4.2.2.11 L10-5: Gleichungsgesetze der Booleschen Terme Involutionsgesetz Interpretation Kommutativgesetze Interpretation Assoziativgesetze Interpretation Idempotenzgesetze Interpretation Absorptionsgesetze Interpretation Distributivgesetze Interpretation Gesetze von de Morgan Interpretation Neutralitätsgesetze Interpretation Involutionsgesetz, Kommutativgesetze, Assoziativgesetze, Idempotenzgesetze, Absorptionsgesetze, Distributivgesetze, Gesetze von de Morgan, Neutralitätsgesetze Tabelle 40 : Gleichungsgesetze der Booleschen Terme Auch für diese teilweise überraschenden Gesetze sind Links zu einer Interpretation angegeben. Spielen Sie jeweils verschiedene Belegungen durch, die entsprechenden Lampen der interpretierten Terme sind immer beide an oder beide aus. Die Anwendung dieser Gleichungsgesetze macht man sich am besten an einem Ausdrucksbaum klar ( Abbildung 71). Sei Wir betrachten den Term . Die Anwendung eines Distributivgesetzes ergibt . . Seite 128 von 272 27.01.2009 Abbildung 71 : Boolescher Term vor der Anwendung des distributiven Gesetzes Abbildung 72 : Boolescher Term nach der Anwendung des distributiven Gesetzes Es bleibt die Frage, wozu man solche Gleichungsgesetze benötigt. Wir werden sie einsetzen, um gegebene Terme zu einfacheren Termen zu transformieren. Einfachere Terme sind solche, die sich kürzer schreiben lassen. Beispiel Sei gegeben Nach Anwendung eines Distributivgesetzes erhalten wir Seite 129 von 272 27.01.2009 Wir stellen fest, dass einen Widerspruch darstellt und schreiben Hierfür können wir schreiben: 4.2.2.12 L10-5a: Gleichungsgesetze der Booleschen Terme Interpretation: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Involutionsgesetz Abbildung 73 : Involutionsgesetz 4.2.2.13 L10-5b: Gleichungsgesetze der Booleschen Terme Interpretation: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Kommutativgesetz Seite 130 von 272 27.01.2009 Abbildung 74 : Kommutativgesetz 4.2.2.14 L10-5c: Gleichungsgesetze der Booleschen Terme Assoziativgesetz Interpretation: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 131 von 272 27.01.2009 Abbildung 75 : Assoziativgesetze 4.2.2.15 L10-5d: Gleichungsgesetze der Booleschen Terme Idempotenzgesetz Interpretation: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 132 von 272 27.01.2009 Abbildung 76 : Idempotenzgesetz 4.2.2.16 L10-5e: Gleichungsgesetze der Booleschen Terme Interpretation: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Absorptionsgesetz Seite 133 von 272 27.01.2009 Abbildung 77 : Absorptionsgesetz 4.2.2.17 L10-5f: Gleichungsgesetze der Booleschen Terme Interpretation: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Distributivgesetze Abbildung 78 : Distributivgesetze 4.2.2.18 L10-5g: Gleichungsgesetze der Booleschen Terme Interpretation: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 134 von 272 27.01.2009 Gesetze von de Morgan Abbildung 79 : Gesetze von de Morgan 4.2.2.19 L10-5h: Gleichungsgesetze der Booleschen Terme Neutralitätsgesetz Interpretation: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 135 von 272 27.01.2009 Abbildung 80 : Neutralitätsgesetz 4.2.3 Beweis 'Eigenschaften der Ordnungsrelation' 4.2.3.1 L10-5i: Beweis der Reflexivität der Ordnungsrelation Nun kann man beispielsweise die angekündigten Eigenschaften der Relation , falls nachweisen. Definitionsgemäß gilt für zwei Boolesche Funktionen f und g die Relation ist. Ordnungsrelation Nun wollen wir zeigen, dass die so definierte Relation wirklich eine Ordnungsrelation ist, d.h. dass sie die Eigenschaften der Reflexivität, Transitivität und Antisymmetrie besitzt. BEWEIS REFLEXIVITÄT Reflexivität: Wir substituieren in der Definition Aufgrund des Idempotenz-Gesetzes ist Reflexivität den Namen f für g und erhalten . eine Tautologie, d.h. die Bedingung ist immer gültig und daher ist auch die Folgerung immer gültig. 4.2.3.2 L10-5j: Beweis der Transitivität BEWEIS TRANSITIVITÄT Seite 136 von 272 27.01.2009 Transitivität: bedeutet und bedeutet . und damit Hieraus soll folgen, dass gilt: den Namen Wir ersetzen in der Gleichung Wegen der Assoziativität der . durch und erhalten: -Operation gilt auch: Transitivität Anstelle von können wir wegen auch schreiben (Umkehrung einer Substitution ): Damit ist also gezeigt, dass unter den gemachten Annahmen gilt: 4.2.3.3 L10-5k: Beweis der Antisymmetrie BEWEIS ANTISYMMETRIE Antisymmetrie: Aus bedeutet und und Wegen der Kommutativität der folgt bedeutet . -Operation gilt: Antisymmetrie Da gilt, können wir ableiten, dass gilt: und somit gilt: Seite 137 von 272 27.01.2009 4.2.4 Erweiterte Definitionen 4.2.4.1 L10-6: Definition Literal, Monom, Minterm DEFINITION LITERAL, MONOM, MINTERM Literal, Monom, Minterm Die speziellen Booleschen Terme x und x heißen auch Literale zum Namen x. Ein Monom ist eine -Verknüpfung von Literalen, in der kein Namen mehr als einmal auftritt. Ein Minterm einer n-stelligen Booleschen Funktion f ist ein Monom, in dem jeder der n Namen einer Funktion genau einmal auftritt. Beispiel Monom ist ein Monom mit den Namen x, y und z; es verknüpft die Literale ist kein Monom, da der Name x zweimal auftritt. Durch Anwendung der Gesetze x, y und z. und , kann man diesen Term zu false vereinfachen: Beispiel Minterm Sei Monom eine Boolesche Funktion mit den Namen , , . ist ein Beispiel für einen Minterm. Minterm ist für diese Funktion f Monom, aber nicht Minterm. 4.2.4.2 L10-7: Zuweisung eines Minterms zu einer gegebenen Belegung Ist eine Belegung gegeben, so kann man dieser umkehrbar eindeutig einen Minterm zuordnen, wobei: Zuweisung eines Minterms zu einer gegebenen Belegung einzusetzen ist. Beispiel Zuweisung eines Minterms zu einer gegebenen Belegung Sei die Menge der Namen einer Funktion. Dann ist beispielweise Seite 138 von 272 27.01.2009 4.2.4.3 L10-8: Minterm mit Wert L und seine Belegung Entsprechend kann man zu einem Minterm Wert die Belegung angeben. Die Interpretation des Minterms nimmt für diese Belegung den an. Zuweisung einer Belegung, für die ein gegebener Minterm den Wert L annimmt mit Beispiel Sei die Menge der Namen einer Funktion. Dann ist beispielweise L_Belegung weil Interpretation des Minterms ist und für die genannte Belegung den Wert annimmt. 4.2.4.4 L10-9: Maxterme DEFINITION MAXTERM Alternativ zu den Mintermen kann man auch Maxterme verwenden. Dabei gilt: Maxterm Beispiel Maxterm Die zweifache Anwendung eines der Gesetze nach de Morgan ergibt: Seite 139 von 272 27.01.2009 ANMERKUNG Sei a = x2 x1 . ( x3 a)=x3 a mit a= x2 x1 ANMERKUNG MINTERM, MAXTERM Minterm, Maxterm Alle folgenden Aussagen über Minterme kann man in modifizierter Form auch für Maxterme angeben. 4.2.5 L10-10: Zusammenfassung Mit den Gesetzen der Booleschen Algebra hat man die Möglichkeit, zu Belegungen, wie sie in Wertetabellen auftreten, Minterme zu konstruieren, die Teilterme Boolescher Terme darstellen können. Eine zentrale Frage der Konstruktion von Rechnerschaltungen lautet nun: Gibt es zu jeder n-stelligen Funktion aus dem Funktionsraum mindestens einen Booleschen Term, bei dem durch Einsetzen aller möglichen Belegungen wieder die Wertetabelle der Funktion entsteht. Wenn dies gelingt, kann man alle Booleschen Funktionen durch Zusammenschalten von Komponenten aus Tabelle 40 implementieren. Andernfalls gäbe es auch nicht implementierbare Funktionen. Um es vorweg zu nehmen. Man kann tatsächlich zu jeder Wertetabelle, die eine Boolesche Funktion definiert, eine Termdarstellung angeben. Diese lässt sich dann, durch Anwendung von Gleichungsgesetzen in andere Terme transformieren. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z z z z z z z Involutionsgesetz [ L10-5 L10-5a ] Kommutativgesetze [ L10-5 ] Assoziativgesetze [ L10-5 ] Idempotenzgesetze [ L10-5 ] Absorptionsgesetze [ L10-5 ] Distributivgesetze [ L10-5 L10-5f ] Gesetze von de Morgan [ L10-5 L10-5g ] Neutralitätsgesetze [ L10-5 ] Literal [ L10-6 ] Monom [ L10-6 ] Minterm [ L10-6 L10-9 ] Maxterm [ L10-9 ] Verstehen (Konzepte erklären können) z Gleichungsgesetze der Booleschen Algebra [ L10-2 ] Seite 140 von 272 27.01.2009 z Tautologie [ L10-3 ] Fähigkeiten (neue Kenntnisse anwenden können) z z z Substitution [ L10-4 ] Zuweisung eines Minterms zu einer gegebenen Belegung [ L10-7 ] Zuweisung einer Belegung, für die ein gegebener Minterm den Wert L annimmt [ L10-8 ] 4.2.6 Training 4.2.6.1 L10-11: Aufgaben Aufgabe 1: Welche der folgenden Terme sind Monome, welche sind Minterme und welche Maxterme einer Funktion : 1. 2. 3. 4. 5. 6. Antwort: Term Monom Minterm Maxterm - - - - - ja ja - - - - - - - - ja ja - Tabelle 41 Seite 141 von 272 27.01.2009 Aufgabe 2: Geben Sie die Minterme und Maxterme zu folgenden Belegungen an: b3 b2 b1 O O O O L O Tabelle 42 Antwort: b3 b2 b1 Minterm OOO x3 OLO x3x2 Maxterm x2 x1 x3 x1 x3 x2 x1 x2 x1 Tabelle 43 Aufgabe 3: Geben Sie die L_Belegung zu folgendem Minterm an: Antwort: Aufgabe 4: Gibt es eine einfache logische Beziehung zwischen: und ? Antwort: Aufgabe 5: Bestimmen Sie einen möglichst einfachen Term für Seite 142 von 272 27.01.2009 Antwort: 4.2.6.2 L10-12: Selbsttest Aufgabe 1: Sei a. Welche Literale gibt es? Antwort: b. Welche Minterme gibt es? Antwort: c. Bleiben diese Terme Minterme, wenn wir ein neues einführen? Nennt man diese Terme vielleicht anders? Antwort: Nein dies sind keine Minterme mehr, es müssen immer alle Namen auftreten. Die Terme unter b) sind dann Monome. d. Ist ein Minterm oder ein Maxterm? Antwort: Weder noch. In einem Minterm dürfen nur -Zeichen und in einem Maxterm nur -Zeichen auftreten. Aufgabe 2: Geben Sie die Absorptionsgesetze in beiden Formen an. Was ist interessant an diesen beiden Gesetzen? Antwort: Seite 143 von 272 27.01.2009 Ihre Anwendung führt zur Verkürzung des Terms und damit zu einer größeren Übersichtlichkeit. Aufgabe 3: Seien und Geben Sie den Term an. Antwort: Aufgabe 4: Sei Welche Möglichkeit kennen Sie, Terme zu vereinfachen? Gelingt es Ihnen, den Term unter Anwendung der Gleichungsgesetze abzuleiten? Antwort: Tautologie (Termverdopplung): Distributivgesetz: Seite 144 von 272 27.01.2009 Tautologie: 4.3 L11: Darstellung von Booleschen Funktionen als Terme 4.3.1 L11-1: Überblick In dieser Lerneinheit beschäftigen wir uns mit der Frage: Wie bestimmt man zu einer Booleschen Funktion, die in Wertetabellendarstellung gegeben ist, eine zugehörige Termdarstellung? LERNZIELE Wissen (Begriffe beschreiben/definieren können) z Groß-Or-Symbol [ L11-9 ] Verstehen (Konzepte erklären können) Bearbeitungsdauer: ca. 46 min z Darstellungstheorem [ L11-10 L11-10a L11-10b L11-10c L11-10d ] Fähigkeiten (neue Kenntnisse anwenden können) z z z Entwicklungssatz 1 [ L11-4 L11-4a L11-4b L11-4c L11-6 L11-7 ] Entwicklungssatz 2 [ L11-5 ] vollständige Induktion [ L11-10 L11-10a L11-10b L11-10c L11-10d ] 4.3.2 Einführung 'Entwicklungssatz' 4.3.2.1 L11-2: Einführung Entwicklungssatz: Vorbereitung 1 Der Entwicklungssatz für Boolesche Funktionen hat eine große praktische Bedeutung. Dabei geht es darum, eine Wertetabelle Boolescher Funktionen schrittweise in einen Booleschen Term zu wandeln. Bei jedem Schritt entstehen längere Teilterme und kleinere Wertetabellen. Dies geschieht so lange bis die entwickelten Wertetabellen jeweils nur noch aus einem einzigen Wert bestehen und die Terme Minterme sind. Wir beginnen mit einem Beispiel, für das wir die Transformation in einem einzigen Schritt durchführen können: Einführung Entwicklungssatz Seite 145 von 272 27.01.2009 Beispiel Wir betrachten die Wertetabelle für die Funktion a f Tabelle 44 und wählen als Namen für die Termdarstellung und es gilt: Wir geben nun für die Funktion in Tabelle 44 den Term: an. Wir werden später sehen, wie wir diesen Term aus der Tabelle ableiten. Zunächst vereinfachen wir den Term zu: Aufgabe 1: Welche Gleichungsgesetze haben wir angewandt? Antwort: Widerspruch: und Vereinfachung Vereinfachung Die Interpretation des Terms ist und damit wird die Funktion der Wertetabelle korrekt wiedergegeben. Wir haben nun festgestellt, dass der eingeführte Term eine korrekte Repräsentation der Funktion in Tabelle 44 ist. Wir können uns daher der Frage zuwenden, wie man den Term aus Tabelle 44 gewinnt. Wir erkennen, dass und die beiden Minterme der Funktion sind und dass und die zugeordneten Funktionswerte darstellen. Um die Systematik des Entwicklungssatzes vorzubereiten, schreiben wir den Term in einer Mischform aus interpretierten und nicht interpretierten Teilen: Diese Darstellungsform bezeichnet man als Entwicklungssatz, wobei hier allerdings von nur einem symbolischen Booleschen Wert abhängt. Häufig schreibt man auch: Seite 146 von 272 27.01.2009 obwohl das nicht ganz korrekt ist, da ja ein Name ist, dem erst durch Interpretation ein Wert zugewiesen wird. Vor einer Bestimmung des Funktionswertes für einen bestimmten Wert a muss man daher auf der linken und rechten Seite die Substitution durchführen. Die eingeführte Wandlung für eine Funktion von einer Variablen liefert die Basis für die entsprechende Darstellung bei mehreren Variablen. 4.3.2.2 L11-3: Multiplexer Wegen der großen Bedeutung des Entwicklungssatzes führen wir eine speziell darauf abgestimmte Implementierung ein. Die entsprechende Komponente nennen wir Mux (für Multiplexer): Seien c, , . c heißt Steuereingang (control), und Dateneingang. Diese Bezeichnung hat aber bei unserer Anwendung keine Bedeutung. Der Multiplexer schaltet abhängig von der Belegung des c-Eingangs einen der d-Eingänge auf die Ausgangsleitung durch. Durch Einsetzen erkennt man, dass diese Boolesche Funktion zur Implementierung des Terms bestens geeignet ist: Falls , dann ist . Ist dagegen , dann ist . Um die beschriebene Funktion genau zu verstehen, stellen Sie verschiedene Belegungen in der Schaltung ein: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 147 von 272 27.01.2009 Abbildung 81 : Multiplexer AUFGABE 1: Stellen Sie a = ein und betätigen Sie die Taste . Wie reagiert die Lampe? Führen Sie das gleiche Experiment mit a = und Taste durch. Multiplexer sind Bausteine, die alternativ zu AND, OR, ... eingesetzt werden können. 4.3.2.3 L11-4: Entwicklungssatz 1 Mit dem Entwicklungssatz schaffen wir die Voraussetzung, um die gestellte Frage nach der Darstellbarkeit von allen Booleschen Funktionen beantworten. positiv zu Entwicklungssatz SATZ ENTWICKLUNGSSATZ 1 Für jede n-stellige Funktion ( ) und für jeden Namen mit der Belegung gilt: Entwicklungssatz 1 Dafür schreiben wir auch einfacher: Seite 148 von 272 27.01.2009 Die Wertetabelle erhält man durch Substitution der b für x . i i die Wertetabelle einer n-stelligen Funktion und Dabei repräsentiert sowie zwei n-1-stellige Funktionen. In vollständig interpretierter Form könnte man anstelle der Mischform auch schreiben: Entwicklungssatz erhält man aus der Wertetabelle, restlichen Zeilen ist mit indem man nur die Zeilen auswählt, in denen belegt. Sie werden zur Festlegung von mit belegt ist. In den ausgewählt. Aufgabe 1: Wie kann man durch einen Multiplexer implementieren? Antwort: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 82 : Multiplexer 4.3.2.4 L11-4a: Entwicklungssatz Beweis-Beweisidee SATZ ENTWICKLUNGSSATZ 1 Seite 149 von 272 27.01.2009 Für jede n-stellige Funktion (n>0) und für jeden Namen gilt: Entwicklungssatz 1 BEWEIS ENTWICKLUNGSSATZ 1 Man führt den Beweis durch Untersuchung der Fallunterscheidungen und : 4.3.2.5 L11-4b: Entwicklungssatz Beweis - 1 SATZ ENTWICKLUNGSSATZ 1 Für jede n-stellige Funktion (n>0) und für jeden Namen gilt: Entwicklungssatz 1 BEWEIS ENTWICKLUNGSSATZ 1 (a) Sei : In der Gleichung erhalten wir zunächst nach Substitution von b für x : i Wir setzen nun L für b und beachten i i , dann können wir die Behauptung des Satzes in der Form Seite 150 von 272 27.01.2009 schreiben. Unabhängig vom Wert von ist: Daher können wir vereinfachen: Schließlich gilt unabhängig vom Wert von : Damit können wir weiter vereinfachen: Für gilt also die Gleichheit der ermittelten Werte unabhängig davon, welche Belegungen eingesetzt werden. 4.3.2.6 L11-4c: Entwicklungssatz Beweis-2 SATZ ENTWICKLUNGSSATZ 1 Für jede n-stellige Funktion (n>0) und für jeden Namen gilt: Entwicklungssatz 1 BEWEIS ENTWICKLUNGSSATZ 1 Für zeigt man die Gleichheit entsprechend. Seite 151 von 272 27.01.2009 Da xi nur die beiden Werte L oder O annehmen kann, ist die Gleichheit für alle möglichen Belegungen von xi gezeigt. 4.3.2.7 L11-5: Entwicklungssatz 2 Einen Entwicklungssatz gibt es auch in der Form: SATZ ENTWICKLUNGSSATZ 2 Für jede n-stellige Funktion ( ) und für jeden Namen mit der Belegung gilt: Entwicklungssatz 2 Beispiel a f Tabelle 45 Mit und entsteht durch Anwendung der Gleichungsgesetze Wir haben also zwei unterschiedliche Terme für dieselbe Funktion erhalten. Aufgabe 1: Welche Gleichungsgesetze muss man anwenden, um zu zeigen, dass die Interpretation der Terme und dieselbe Funktion ergibt. Antwort: 1. Term: Tautologie: Seite 152 von 272 27.01.2009 Vereinfachung: Vereinfachung: Entsprechend 2. Term 4.3.3 Anwendung 'Entwicklungssatz' 4.3.3.1 L11-6: Entwicklungssatz Beispiel - Illustration mit Wertetabelle Beispiel Entwicklungssatz 1 Sei die Funktion in Form einer Wertetabelle gegeben: i b2 b1 0 O O L 1 O L O 2 L O L 3 L L L Tabelle 46 Wir wählen , um den Entwicklungssatz 1 auf Die Funktionen und Teiltabelle mit Belegungen, in denen anzuwenden. Es gilt: ergeben sich durch Auswahl der entsprechenden Zeilen der Tabelle für , in denen bzw. ist : ist: i b2 b1 2 O L 3 L L Seite 153 von 272 27.01.2009 Tabelle 47 und Teiltabelle mit Belegungen, in denen ist: i b2 b1 0 O L 1 L O Tabelle 48 Unter Verwendung der Komponente Multiplexer können wir die Funktion von Tabelle 46 teilweise implementieren: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Entwicklungssatz 1 Abbildung 83 : Verwendung der Komponente Multiplexer 4.3.3.2 L11-7: Weiterentwicklung einer teilweise entwickelten Funktion Nun kann man die Funktionen und , bei denen für den Namen b die Werte L bzw. O substituiert wurden, i durch Auswahl eines verbliebenen Namens weiter entwickeln. Setzt man das Verfahren mit weiteren Namen fort, dann entstehen schließlich Minterme, die jeweils durch eine verknüpft sind. Beispiel Entwicklungssatz 1 Wir betrachten zunächst die Funktion Entwicklungssatz -Operation mit dem zugehörigen Funktionswert und entwickeln nach dem einzig verbliebenen Namen : Seite 154 von 272 27.01.2009 i b2 b1 2 O L 3 L L Tabelle 49 In entsprechender Weise kann man nach entwickeln und erhält: i b2 b1 0 O L 1 L O Tabelle 50 Entwicklungssatz 1 Nun können wir die Gesamtfunktion unter Verwendung von Multiplexern implementieren. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 84 : Verwendung von Multiplexern 4.3.3.3 L11-8: Weiterentwicklung einer teilweise entwickelten Funktion - Fortsetzung Seite 155 von 272 27.01.2009 BEISPIEL ZUSAMMENFASSEN DER ENTWICKLUNGEN Wenn wir die Entwicklungen der Funktionen für die Wertetabelle: i b2 b1 0 O O L 1 O L O 2 L O L 3 L L L Tabelle 51 : Wertetabelle zusammenfassen, erhalten wir: Zusammenfassen der Entwicklungen Wie üblich erhalten wir die Wertetabelle durch Einsetzen aller möglichen Belegungen. Die abgeleitete Form gilt für alle zweistelligen Funktionen. Die konkrete in der Wertetabelle vorgegebene Funktion besitzt definierte Funktionswerte . Wenn wir diese Werte einsetzen, erhalten wir: Diesen Term können wir vereinfachen zu: Seite 156 von 272 27.01.2009 4.3.3.4 L11-9: Vollständig entwickelte Funktion BEISPIEL GROß-OR-SYMBOL Groß-Or-Symbol Wir erkennen in der Gleichung , dass alle Minterme jeweils mit dem zugehörigen Funktionswert verknüpft werden. Hierfür schreiben wir verkürzend: , wobei alle Belegungen von bis einzusetzen sind. Das Zeichen wird also analog zum Summenzeichen verwendet, bei dem die durch Einsetzen der Werte für die Laufvariable gebildeten Operanden mit dem "+"Zeichen verknüpft werden: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 157 von 272 27.01.2009 Abbildung 85 : Funktionsgenerator Die verdeutlicht das Ergebnis. Mit Hilfe der linken Tastenreihe kann man beliebige Funktionen einstellen. Die Tasten für und werden so eingestellt, dass der gewünschte Funktionswert am Ausgang erscheint. Damit haben wir also eine Schaltnetzstruktur entwickelt, mit der man jede Boolesche Funktion von 2 Variablen implementieren kann. Aufgabe 1: Implementieren Sie in die Funktion b2 b1 O O O O L L L O L L L O Tabelle 52 : Wertetabelle und prüfen Sie die Richtigkeit der Aussage. Seite 158 von 272 27.01.2009 Antwort: Drücken Sie die Tasten und für und . Dadurch ist die Implementierung eingestellt. Nun erstellen Sie die Wertetabelle, indem Sie jede der 4 Belegungen einstellen und den angezeigten Funktionswert aufschreiben. 4.3.4 Darstellungstheorem 4.3.4.1 L11-10: Darstellungstheorem und Beweisplan SATZ DARSTELLUNGSTHEOREM Für jede n-stellige Boolesche Funktion ( ) gilt: Darstellungstheorem BEWEIS DARSTELLUNGSTHEOREM, VOLLSTÄNDIGE INDUKTION (vollständige Induktion) Beweisplan: Wir zeigen, dass die Aussage für n = 1 gilt. Dann nehmen wir an, dass sie für n-1 gilt und zeigen, dass sie unter dieser Voraussetzung auch für n gilt. Wenn wir dieses Ziel erreicht haben, wurde gezeigt, dass: z z z Darstellungstheorem, vollständige Induktion der Satz für n = 1 gilt, er unter der Annahme, er gilt für n = 1, auch für n = 2 gilt, er unter der Annahme, er gilt für n = 2, auch für n = 3 gilt usw. Durch Fortsetzung dieser induktiven Schlussfolgerungen ist gezeigt, dass der Satz für alle gilt. Dieses Beweisprinzip nennt man vollständige Induktion. 4.3.4.2 L11-10a: Beweis Darstellungstheorem Darstellungstheorem SATZ DARSTELLUNGSTHEOREM Für jede n-stellige Boolesche Funktion ( ) gilt: Seite 159 von 272 27.01.2009 BEWEIS DARSTELLUNGSTHEOREM (vollständige Induktion): (a) Induktionsvoraussetzung: Für n = 1 gilt: oder ausführlicher geschrieben: mit und erhalten wir: Man zeigt die Korrektheit durch Untersuchung aller vier möglichen Funktionen von einer Variablen. also: 4.3.4.3 L11-10b: Beweis Darstellungstheorem 2 SATZ DARSTELLUNGSTHEOREM Für jede n-stellige Boolesche Funktion ( ) gilt: Darstellungstheorem Seite 160 von 272 27.01.2009 BEWEIS DARSTELLUNGSTHEOREM FORTSETZUNG (vollständige Induktion): (b) Induktionshypothese: Sei nun (c) Schluss von und die Aussage sei richtig für alle k mit . auf n: Wir entwickeln eine beliebige n-stellige Funktion willkürlich nach Die beiden Funktionen und sind jeweils maximal ( und erhalten: )-stellig. Für sie gilt aufgrund der Hypothese, nach der sich die ( )- stelligen Funktionen wie behauptet darstellen lassen: Wir setzen ein und erhalten für n-stellige Funktionen: Es bleibt zu zeigen, dass die Aussage für alle n-stelligen Funktionen gilt, also: 4.3.4.4 L11-10c: Beweis Darstellungstheorem 3 Darstellungstheorem SATZ DARSTELLUNGSTHEOREM Für jede n-stellige Boolesche Funktion ( ) gilt: Seite 161 von 272 27.01.2009 BEWEIS DARSTELLUNGSTHEOREM FORTSETZUNG (vollständige Induktion): Es bleibt zu zeigen, dass gilt: Wegen des Distributivgesetzes kann man für den ersten Teilterm schreiben: Im ersten Teilterm betrachten wir nur Belegungen mit Für . gilt: , da ja der Minterm eine -Verknüpfung der Namen , darstellt. Daher formen wir um: Man beachte dabei, dass nur solche Belegungen aufgeführt sind, bei denen gilt. 4.3.4.5 L11-10d: Beweis Darstellungstheorem 4 - Folgerung Darstellungstheorem SATZ DARSTELLUNGSTHEOREM Für jede n-stellige Boolesche Funktion ( ) gilt: Seite 162 von 272 27.01.2009 BEWEIS DARSTELLUNGSTHEOREM FORTSETZUNG (vollständige Induktion): Der zweite Teilterm kann in entsprechende Weise umgeformt werden, so dass gilt: Die beiden entstehenden Teilterme können zusammengefasst werden, in dem die Belegungsmengen vereint werden. Man beachte, dass der rote und der blaue Term jeweils für die Hälfte der Belegungen gilt: Damit ist der Satz bewiesen. 4.3.5 L11-11: Zusammenfassung Mit dem Entwicklungssatz kann man Funktionen, die in Wertetabellendarstellung gegeben sind, partiell in eine Termdarstellung überführen. Wendet man den Entwicklungssatz auf einen Namen der gegebenen Funktion an, so kann man im nächsten Schritt den Entwicklungssatz auf einen weiteren Namen der Funktion anwenden, solange, bis schließlich Minterme entstehen, die mit dem zugehörigen Funktionswert -verknüpft sind. Daraus ergibt sich dann auch das Darstellungstheorem, das im Prinzip eine Umrechnungsformel für Boolesche Funktionen, die in Wertetabellendarstellung gegeben sind, in eine Termdarstellung liefert. LERNZIELE Wissen (Begriffe beschreiben/definieren können) Seite 163 von 272 27.01.2009 z Groß-Or-Symbol [ L11-9 ] Verstehen (Konzepte erklären können) z Darstellungstheorem [ L11-10 L11-10a L11-10b L11-10c L11-10d ] Fähigkeiten (neue Kenntnisse anwenden können) z z z Entwicklungssatz 1 [ L11-4 L11-4a L11-4b L11-4c L11-6 L11-7 ] Entwicklungssatz 2 [ L11-5 ] vollständige Induktion [ L11-10 L11-10a L11-10b L11-10c L11-10d ] 4.3.6 Training 4.3.6.1 L11-12: Aufgaben Aufgabe 1: Entwickeln Sie die folgende Funktion in einen Booleschen Term: b2 b1 f O O O O L L L O L L L O Tabelle 53 : Wertetabelle für L11-12 1. 2. 3. Verwenden Sie Entwicklungssatz 1 Verwenden Sie Entwicklungssatz 2 Welche einfache Beziehung besteht zwischen den beiden Termdarstellungen? Antwort: 1. 2. 3. Gleichheit Seite 164 von 272 27.01.2009 Aufgabe 2: Entwickeln Sie einen Funktionsgenerator für Funktionen von 2 Variablen auf der Basis von Entwicklungssatz 2: Antwort: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 86 : Funktionsgenerator 4.3.6.2 L11-13: Selbsttest Aufgabe 1: Beschreiben Sie die Funktion eines Multiplexers. Seite 165 von 272 27.01.2009 Antwort: mit Aufgabe 2: Geben Sie den Entwicklungssatz 1 für dreistellige Boolesche Funktionen an. Entwickeln Sie nach dem Namen mit . Antwort: Aufgabe 3: Führen Sie L11-13 mit Entwicklungssatz 2 durch. Antwort: Aufgabe 4: Was ist die Aussage des Darstellungstheorems? Antwort: Für jede n-stellige Boolesche Funktion gilt: Aufgabe 5: Die Funktion eines Multiplexers kann auch wie folgt dargestellt werden: Geben Sie einen zugehörigen Term an. Wählen Sie hierzu die Namen . Antwort: Seite 166 von 272 27.01.2009 Geben Sie für diesen Term Vereinfachungsregeln in Form von Gleichungsgesetzen an: 1. 2. 3. 4. 5. 6. Antwort: 1. 2. 3. 4. 5. 6. Aufgabe 6: Setzen Sie die Gleichungsgesetze ein, um folgende Multiplexerschaltung zu vereinfachen: Seite 167 von 272 27.01.2009 Abbildung 87 : Multiplexerschaltung Antwort: Mit den Gleichungsgesetzen e) und f) erhalten wir: Abbildung 88 : vereinfachte Multiplexerschaltung 4.4 L12: Disjunktive und Konjunktive Normalform 4.4.1 L12-1: Überblick Folgende Fragestellungen werden in dieser Lerneinheit behandelt: Seite 168 von 272 27.01.2009 z z z Gibt es einen einfache(re)n Weg eine Wertetabelle in eine Termdarstellung zu überführen? Was ist die vollständige disjunktive Normalform, was die vollständige konjunktive Normalform einer Booleschen Funktion? Wie erhalte ich diese Normalformen zu einer gegebenen Booleschen Funktion? LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z Disjunktion [ L12-2 ] Konjunktion [ L12-3 ] disjunktive Normalform [ L12-5 ] Verstehen (Konzepte erklären können) z z Bearbeitungsdauer: ca. 60 min Boolesches Normalformtheorem für vollständig disjunktive Normalform [ L12-2 L12-3 L12-7 ] Boolesches Normalformtheorem für vollständig konjunktive Normalform [ L12-2 L12-3 L12-7 ] Fähigkeiten (neue Kenntnisse anwenden können) z z vollständige disjunktive Normalform [ L12-2 L12-3 L12-4 ] vollständige konjunktive Normalform [ L12-3 ] 4.4.2 Von Wertetabellen zur Termdarstellung 4.4.2.1 L12-2: Boolesches Normalformtheorem Die bisher abgeleitete Form der Überführung einer Wertetabelle in eine Termdarstellung ist noch ein bisschen umständlich. Der folgende Satz führt eine vereinfachte Darstellung ein. SATZ BOOLESCHES NORMALFORMTHEOREM FÜR VOLLSTÄNDIGE DISJUNKTIVE NORMALFORM Sei die einschlägige Indexmenge zu f. Jede n-stellige Boolesche Funktion flässt sich in der Form: darstellen. Wir nennen diese Form vollständige disjunktive Normalform (disjunktiv = Boolesches Normalformtheorem, vollständige disjunktive Normalform, Disjunktion - verknüpft) . BEWEIS BOOLESCHES NORMALFORMTHEOREM Seite 169 von 272 27.01.2009 Es werden genau für diejenigen Belegungen einschlägigen Index Funktionswert Minterme gebildet, deren Funktionswert ist und die daher zu einem führen. Die Disjunktion dieser Minterme weist der Funktion für alle Belegungen mit den Boolesches Normalformtheorem zu. Beispiel i f 0 1 2 3 4 5 6 7 Tabelle 54 : Wertetabelle einer Booleschen Funktion 4.4.2.2 L12-3: Boolesches Normalformtheorem DEFINITION VOLLSTÄNDIGE DISJUNKTIVE NORMALFORM, VOLLSTÄNDIGE KONJUNKTIVE NORMALFORM, KONJUNKTION Die disjunktive Verknüpfung von Mintermen einer Funktion nennen wir vollständige disjunktive Normalform. Durch Anwendung der Gesetze der Booleschen Algebra kann man u.U. disjunktive Formen erhalten, bei denen nicht die spezielle Form der Minterme disjunktiv verknüpft wird, sondern wo auch beliebige Monome und Literale als disjunktiv zu verknüpfende Terme zugelassen sind. Als vollständige konjunktive Normalform bezeichnet man die Konjunktion ( -Verknüpfung) von Maxtermen. vollständige disjunktive Normalform, vollständige konjunktive Normalform, Konjunktion SATZ BOOLESCHES NORMALFORMTHEOREM FÜR VOLLSTÄNDIGE KONJUNKTIVE NORMALFORM Seite 170 von 272 27.01.2009 Sei die Menge aller Indizes ohne die Elemente der einschlägigen Indexmenge zur n-stelligen Funktion f. Jede n-stellige Boolesche Funktion f lässt sich in der Form: Boolesches Normalformtheorem darstellen. BEWEIS BOOLESCHES NORMALFORMTHEOREM FÜR VOLLSTÄNDIGE KONJUNKTIVE NORMALFORM Es werden genau für diejenigen Belegungen einschlägigen Index Maxterme gebildet deren Funktionswert führen. Die Konjunktion dieser Maxterme weist der Funktion für alle Belegungen ist und die daher zu keinem den Funktionswert zu. Beispiel i f 0 1 2 3 4 5 6 7 Tabelle 55 : Wertetabelle einer Booleschen Funktion Seite 171 von 272 27.01.2009 4.4.3 Min-Terme, Max-Terme 4.4.3.1 L12-4: Min-/Maxterme, Beispiel für Wertetabelle Beispiel Minterm, Maxterm, vollständige disjunktive Normalform Sei die dreistellige Funktion f durch folgende Wertetabelle gegeben. Die Minterme sind nur für die Zeilen angegeben, die einen einschlägigen Index besitzen: . Entsprechend sind die Maxterme für die Zeilen angegeben, deren Index in der Menge enthalten ist. Vollständige disjunktive Normalform zu dem Beispiel in Tabelle 56 ist: ( - Operatoren sind weggelassen) Vollständig konjunktive Normalform ist: In Wertetabellen schreibt man alternativ xi für . i x3 x2 x1 f1 0 O O O O 1 O O L L 2 O L O O 3 O L L L 4 L O O O 5 L O L O 6 L L O O 7 L L L L minterm maxterm Minterm, Maxterm, vollständige disjunktive Normalform Tabelle 56 : Wertetabelle zur Bestimmung der disjunktiven und konjunktiven Normalform Beispiel Verdeutlichung der vollständigen disjunktiven Normalform Wir wollen das Beispiel noch in einer anderen Weise darstellen. Wir beginnen mit der Mintermdarstellung i Disjunktion der Minterme Seite 172 von 272 27.01.2009 x3 x2 x1 fi 0 O O O O O O O O 1 O O L L L O O L 2 O L O O O O O O 3 O L L L O L O L 4 L O O O O O O O 5 L O L O O O O O 6 L L O O O O O O 7 L L L L O O L L Vollständige disjunktive Normalform Tabelle 57 : Vollständige disjunktive Normalform Beispiel Verdeutlichung der vollständig konjunktiven Normalform x3 x2 x1 fi 0 O O O O O L L L L O 1 O O L L L L L L L L 2 O L O O L O L L L O 3 O L L L L L L L L L 4 L O O O L L O L L O 5 L O L O L L L O L O 6 L L O O L L L L O O 7 L L L L L L L L L L i Konjunktion der Maxterme Vollständig konjunktive Normalform Tabelle 58 : Vollständige Konjunktive Normalform 4.4.3.2 L12-5: Beispiel: DNF nicht aus Mintermen bestehend Beispiel disjunktive Normalform, Distributivgesetz, Monom Durch Anwendung des Distributivgesetzes auf die Termdarstellung erhält man beispielsweise eine andere disjunktive Normalform, die Monome verknüpft, die keine Minterme sind. Anwendung des Distributivgesetzes in der Form des "Ausklammerns" eines Namens: Seite 173 von 272 27.01.2009 Wendet man das Gesetz Die Anwendung des Gestzes an, so erhält man: ergibt schließlich zwar ein Monom aber kein Minterm ist. Dies ist eine nicht vollständige disjunktive Normalform, da Durch Aufstellen der Tabelle sieht man die Korrektheit dieser Darstellung. x3 x2 x1 f1 0 O O O O O O 1 O O L L L O 2 O L O O O O 3 O L L L O L 4 L O O O O O 5 L O L O O O 6 L L O O O O 7 L L L L O L i disjunktive Normalform, Distributivgesetz, Monom Tabelle 59 : Verdeutlichung der nicht vollständigen disjunktiven Normalform 4.4.4 L12-6: Zusammenfassung z z z Mit Hilfe des Booleschen Normalformtheorems kann man eine als Wertetabelle gegebene Boolesche Funktion in die vollständige disjunktive Normalform oder in die vollständige konjunktive Normalform überführen. Die vollständige disjunktive Normalform ist eine -Verknüpfung von Mintermen der Booleschen Funktion, die vollständige konjunktive Normalform eine Verknüpfung von Maxtermen der Funktion. Sind in den - bzw. -Verknüpfungen auch Monome oder Literale enthalten ergeben sich konjunktive und disjunktive Normalformen, die nicht vollständig sind. Seite 174 von 272 27.01.2009 LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z Disjunktion [ L12-2 ] Konjunktion [ L12-3 ] disjunktive Normalform [ L12-5 ] Verstehen (Konzepte erklären können) z z Boolesches Normalformtheorem für vollständig disjunktive Normalform [ L12-2 L12-3 L12-7 ] Boolesches Normalformtheorem für vollständig konjunktive Normalform [ L12-2 L12-3 L12-7 ] Fähigkeiten (neue Kenntnisse anwenden können) z z vollständige disjunktive Normalform [ L12-2 L12-3 L12-4 ] vollständige konjunktive Normalform [ L12-3 ] 4.4.5 Training 4.4.5.1 L12-7: Aufgaben Aufgabe 1: SATZ BOOLESCHES NORMALFORMTHEOREM FÜR VOLLSTÄNDIGE KONJUNKTIVE NORMALFORM Sei die Menge aller Indizes ohne die Elemente der einschlägigen Indexmenge zur n-stelligen Funktion f. Jede n-stellige Boolesche Funktion f lässt sich in der Form: Boolesches Normalformtheorem darstellen. Zeigen Sie die Gültigkeit dieses Satzes. Antwort: Die Darstellung: Seite 175 von 272 27.01.2009 lässt sich durch Anwendung der Gesetze x= und Für alle Belegungen mit gilt: Für alle Belegungen mit gilt: Wegen x = x vereinfachen. x = x kann man diese Terme aus der Darstellung streichen. Es bleiben also nur die Maxterme übrig, für deren zugeordnete Belegungen der Funktionswert einschlägig und gehören daher nicht zur Menge ist. Die diesen Belegungen zugeordneten Indizes sind nicht der einschlägigen Indizes. Aufgabe 2: Gegeben sei folgende Wertetabelle: b3 b2 b1 f(b3,b2,b1) O O O O O O L O O L O L O L L O L O O L L O L L L L O L L L L O Tabelle 60 Geben Sie Seite 176 von 272 27.01.2009 1. 2. die vollständige disjunktive Normalform die vollständige konjunktive Normalform an. Antwort: 1. vollständige disjunktive Normalform = Disjunktion ( 2. vollständige konjunktive Normalform = Konjunktion ( ) der Minterme für einschlägige Indizes: ) der Maxterme für nicht einschlägige Indizes: Aufgabe 3: Versuchen Sie, durch Anwendung Boolescher Gesetze die folgenden Terme zu vereinfachen: 1. Antwort: 2. Antwort: Seite 177 von 272 27.01.2009 3. Antwort: Aufgabe 4: Wenden Sie das distributive Gesetz auf folgenden Term so lange an, bis aus der disjunktiven Normalform eine konjunktive Normalform entstanden ist. Versuchen Sie diesen konjunktiven Term durch Anwendung der Gesetze der Booleschen Algebra zu vereinfachen. Antwort: Distributivgesetz: Seite 178 von 272 27.01.2009 Vereinfachungen: 4.4.5.2 L12-8: Selbsttest Aufgabe 1: Für eine Boolesche Funktion von drei Variablen betrachten wir die Belegung: 1. Wie lautet der zugehörige Minterm bei Verwendung der Namen Antwort: 2. Wie lautet der zugehörige Maxterm? Antwort: 3. Wie nennt man in diesem Zusammenhang den Term Antwort: Monom ? ? Aufgabe 2: 1. Geben Sie einen synonymen Begriff für disjunktiv und konjunktiv im Zusammenhang mit der Booleschen Algebra an. Antwort: disjunktiv heißt gegensätzlich (etwas ist entweder das eine oder das andere). Im Zusammenhang mit der Booleschen Algebra verwendet man diesen Begriff anstelle von "oder". Seite 179 von 272 27.01.2009 2. Antwort: konjunktiv heißt verbindend (etwas ist sowohl als auch). Im Zusammenhang mit der Booleschen Algebra verwendet man diesen Begriff anstelle von "und". Was ist eine vollständige disjunktive Normalform einer Booleschen Funktion? Antwort: Die Disjunktion aller Minterme, die zu einschlägigen Indizes einer Funktion gehören: 3. Was ist eine vollständige konjunktive Normalform einer Booleschen Funktion? Antwort: Die Konjunktion aller Maxterme, die zu keinem einschlägigen Index einer Funktion gehören: 4. Welcher allgemeinere Termtyp als Minterme ist in nicht vollständigen disjunktiven Normalformen erlaubt? Antwort: Monome Welchen Sinn macht es, nach einfacheren Termdarstellungen zu suchen, wenn auch komplexere, aber einfacher zu gewinnende Termdarstellungen die selbe Boolesche Funktion repräsentieren? Antwort: Einfachere Termdarstellungen sind besser zu verstehen und Kosten-günstiger zu implementieren. 5. 4.5 L13: Optimierung von Schaltnetzen 4.5.1 L13-1: Einleitung Es gibt zu jeder Booleschen Funktion unendlich viele Termdarstellungen. Man kann ja beispielsweise mit der Identität einen gegebenen Term beliebig verlängern. Selbstverständlich ist man daran interessiert, diejenige Termdarstellung einer Funktion zu finden, die eine gegebene Kostenfunktion minimiert, da Termdarstellungen auch etwas über den Implementierungsaufwand aussagen . Die Kostenfunktionen sind vielfältig und abhängig vom Einsatzgebiet der Schaltung. Mögliche Kostenfunktionen sind beispielsweise der Flächenbedarf auf einer integrierten Schaltung, die Verarbeitungsdauer für typische Eingabewerte oder auch der Leistungsverbrauch, der insbesondere für batteriebetriebene Rechner entscheidend ist. Kostenfunktionen Folgende Fragestellungen werden in dieser Lerneinheit behandelt: z z z z Wie bestimmt man die Kosten eines Terms in disjunktiver Normalform? Was ist ein Implikant, was ein Primimplikant? Wie ist ein Karnaugh-Diagramm aufgebaut und wie kann man eine Boolesche Funktion damit repräsentieren? Wie findet man eine näherungsweise kostenminimale Implementierung einer Schaltfunktion in disjunktiver Normalform? LERNZIELE Wissen (Begriffe beschreiben/definieren können) z Kostenfunktionen für Schaltnetze [ L13-2 ] Seite 180 von 272 27.01.2009 z z z z Implikant [ L13-3 ] Primimplikant [ L13-3 ] Karnaugh-Diagramm [ L13-4 ] L-Block und sein Zusammenhang zu Implikanten [ L13-4 ] Verstehen (Konzepte erklären können) z z Aufbau eines Karnaugh-Diagramms [ L13-4 ] Bedeutung von Primimplikanten für kostenminimale disjunktive Normalformen [ L13-3 ] Bearbeitungsdauer: ca. 40 min Fähigkeiten (neue Kenntnisse anwenden können) z Schaltnetzminimierung im Karnaugh-Diagramm [ L13-4 ] 4.5.2 L13-2: Kostenfunktionen Im Folgenden gehen wir davon aus, dass eine disjunktive Normalform gegeben ist. Beispiel Sei folgende disjunktive Normalform gegeben: Setzt man diesen Term direkt um, so erhält man die Schaltung in Abbildung 89: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 89 : Beispiel Schaltung Seite 181 von 272 27.01.2009 In dieser und den folgenden Lektionen lassen wir das " "-Zeichen weg. Im gezeigten Beispiel kann man die Boolesche Funktion f auch einfacher darstellen. Man benötigt also nur eine Disjunktion von zwei Literalen, die wir der Einfachheit halber als besonders einfache Monome eingeführt haben. Wenn wir bei der Darstellungsform "Disjunktion von Monomen" bleiben wollen, was wir als disjunktive Normalform bezeichnet haben, stellt sich die Frage, wie man zu einer gegebenen Funktion die Menge der "besten" Monome findet, so dass 1. 2. ihre Disjunktion die Funktion repräsentiert das zugehörige Schaltnetz die kleinsten Kosten verursacht. Ganz intuitiv gehen wir davon aus, dass wir im Beispiel daran interessiert sind, die Disjunktion der Literale und nicht den längeren Term in der ersten Zeile zu finden. Eine geeignete Kostenfunktion könnte z.B. der Flächenbedarf sein, den das Schaltnetz als Teil einer Prozessorschaltung auf einem Prozessorchip einnimmt. Da aber die Verbindungsleitungen auch Fläche benötigen und deren Lage aus einer Termdarstellung nicht hervorgeht, brauchen wir eine vereinfachende Kostenfunktion. Sie ist dann gut gewählt, wenn ein Schaltnetz mit einem geringen Kostenwert zu einer Implementierung mit einem geringen Flächenbedarf führt. Die folgenden Kostenfunktionen können einen solchen Zusammenhang zwar nicht garantieren, werden aber mangels besserer Alternativen häufig gewählt. Dabei hängt es von den verwendeten Bausteintypen ab, welche der beiden Kostenfunktionen das eigentliche Ziel besser erreicht. 1. Anzahl der Monome 2. Kostenfunktionen für Schaltnetze in einer disjunktiven Normalform von f , wobei die Länge aller Monome i in der Termdarstellung aufsummiert wird. Beispiel Sei die zu untersuchende disjunktive Normalform. Dann ist und Vereinfacht man die Funktion zu Seite 182 von 272 27.01.2009 so sind für die zweite Darstellung beide Kostenfunktionen günstiger: und , da beide Monome nur aus Literalen bestehen. Es entspricht unserer Intuition, dass der zweite Term auch einen geringeren Flächenbedarf benötigt. 4.5.3 L13-3: Implikanten und Primimplikanten einer Booleschen Funktion DEFINITION IMPLIKANT Implikant Ein Implikant einer Booleschen Funktion f ist ein interpretiertes Monom i, also auch eine Boolesche Funktion für die gilt: . Wenn ein Implikant i für eine Belegung wahr ist, dann ist auch die zugehörige Funktion f für diese Belegung wahr. Die Umkehrung gilt in der Regel natürlich nicht! Beispiel 0 1 2 3 4 5 6 7 Tabelle 61 : Beispiel Wertetabelle Zu den Monomen und dagegen kein Implikant, weil gehören die Interpretationen für die Belegung 6 und wird, während f hier den Wert . Sie sind Implikanten von f. Zu dem Monom gehört annimmt. Seite 183 von 272 27.01.2009 Implikanten sind immer von der Form: ist eine Interpretation des Terms . Da die Darstellung mit den Booleschen Komponenten leicht unübersichtlich wird, verwenden wir wie allgemein üblich eine teilinterpretierte Form und schreiben anstelle von z.B. nun . Für zwei Implikanten , wenn und einer Booleschen Funktion gilt: durch Streichen von Argumenten aus hervorgeht. Das heißt erzeugt für alle Belegungen -Werte, für die auch -Werte erzeugt. Beispiel bzw. Es gilt auch: Dagegen ist beispielsweise DEFINITION PRIMIMPLIKANT Primimplikant Ein Primimplikant pi einer Booleschen Funktion f ist ein maximaler Implikant, d.h. aus folgt . Es gibt also keinen anderen Implikanten , den man an die Stelle von i setzen könnte, so dass Beispiel Sei gültig ist. mit Tabelle 62 gegeben. Wir haben außerdem die Funktionswerte zweier Implikanten eingetragen. Seite 184 von 272 27.01.2009 0 1 2 3 4 5 6 7 Tabelle 62 : Beispiel Wertetabelle und Daran erkennt man, dass für die Implikanten gilt: Da Daher ist und kann man kein Argument aus entfernen, ohne dass die entstehenden Funktionen die Eigenschaft Implikant zu sein verlieren. Primimplikant. Was haben Primimplikanten mit den Kostenfunktionen zu tun? SATZ BEDEUTUNG VON PRIMIMPLIKANTEN FÜR KOSTENMINIMALE DISJUNKTIVE NORMALFORMEN Eine bezüglich der Kostenfunktion Bedeutung von Primimplikanten für kostenminimale disjunktive Normalformen kostenminimale disjunktive Normalform ist eine Disjunktion von Monomen, deren Interpretation Primimplikanten darstellen. BEWEIS Wir wollen den Beweis dieses Satzes am Beispiel der folgenden Disjunktion von Monomen skizzieren. Wenn wir diesen Term teilweise interpretieren erhalten wir: Wegen Seite 185 von 272 27.01.2009 kann man durch den Primimplikanten Da der Primimplikant ersetzen, ohne dass dadurch kürzer ist als der Implikant für eine weitere Belegung den Wert wurde der Wert der Kostenfunktion annimmt. Damit gilt: reduziert. Wenn daher in einer kostenminimalen Lösung ein Implikant auftritt, der nicht Primimplikant ist, so kann man ihn, ohne die Kosten zu erhöhen und natürlich ohne die Funktion zu ändern, durch den zugehörigen Primimplikanten ersetzen. Primimplikanten sind also die gesuchten Kandidaten zur Repräsentation kostenminimaler Schaltnetze. SATZ Jede Boolesche Funktion lässt sich als Disjunktion aller Primimplikanten bis auf Vertauschung eindeutig repräsentieren. Leider kann es sehr viele Primimplikanten zu einer Funtkion geben, die man nicht alle implementieren muss, um die Funktion zu realisieren. Wir haben also ein schwieriges Problem. Wir suchen nicht einfach alle Primimplikanten, sondern möglichst geeignete. Eine beliebte Möglichkeit zur Gewinnung von geeigneten Primimplikanten sind Karnaugh-Diagramme. Dieses Verfahren ist allerdings nur für wenige Variablen, für den Anfang genügen maximal 4 Variablen, anwendbar. 4.5.4 L13-4: Karnaugh Diagramme Maurice Karnaugh (* 4. Oktober 1924 in New York City) ist ein US-amerikanischer Physiker. Karnaugh studierte von 1944 bis 1948 Mathematik und Physik am City College of New York. 1952 promovierte Karnaugh zum Doktor der Physik. Das von ihm entwickelte und nach ihm als Karnaugh-Diagramm benannte Verfahren beschrieb er erstmals 1953 in der Fachzeitschrift „Communications and Electronics“. Ein Karnaugh-Diagramm für n Eingangsvariablen hat Felder, also für jede Zeile der Wertetabelle ein Feld. Die Felder werden in (aufgerundet auf die nächst größere ganze Zahl) Spalten und ersten (abgerundet auf die nächst kleinere ganze Zahl) Zeilen angeordnet. Entsprechend weist man den Spalten eine Belegung der Argumente der Funktion zu und den Zeilen die Belegungen der restlichen Argumente. Der Trick besteht darin, dass die Belegungen zweier benachbarter Spalten oder Zeilen sich nur in einem Wert unterscheiden dürfen. Eine zulässige Reihenfolge bei zwei Argumenten ist , , , . Achten Sie besonders auf die Zuordnung der Belegungen drei und vier und auch darauf, dass sich die letzte und erste Belegung auch nur im Wert genau einer Stelle unterscheiden. An die oberen und linken Ränder des Diagramms schreibt man die zugeordneten Belegungen. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 186 von 272 27.01.2009 Abbildung 90 : Karnaugh-Diagramm für 4 Variablen, Spaltenbeschriftung: Belegungen von a und b, Zeilenbeschriftung: Belegungen von c und d Gleichwertig und etwas übersichtlicher ist eine Darstellung, die alle Felder mit einem Strich markiert, bei deren Belegungen das zugeordnete Argument den Wert annimmt. ( Abbildung 91) Karnaugh-Diagramm Abbildung 91 : Karnaugh-Diagramm für 4 Variablen, Spaltenbeschriftung: Bereiche von Belegungen mit a = Belegungen mit c= bzw. b = , Zeilenbeschriftung: Bereiche von bzw. d= Wir haben die Belegungen der Argumente in einer zweidimensionalen Anordnung dargestellt und fragen uns nun, was man damit anfangen kann. Für jede Zeile der Wertetabelle, die den Wert annimmt, wird das entsprechende Feld im Karnaugh-Diagramm mit einer gefüllt. Die -en lässt man in der Regel weg. Beispiel Karnaugh-Diagramm für eine Funktion mit 2 Variablen Sei . Die Wertetabelle dieser Funktion ist Seite 187 von 272 27.01.2009 a b Tabelle 63 : Wertetabelle für Funktion mit 2 Variablen Dann besitzt das Karnaugh-Diagramm Felder und sieht wie folgt aus: Karnaugh-Diagramm für eine Funktion mit 2 Variablen Abbildung 92 : Funktionsdarstellung in einem Karnaugh-Diagramm für 2 Variablen Das Feld außerhalb des Bereichs a und außerhalb des Bereichs b repräsentiert also die Belegung a Beispiel Karnaugh-Diagramm für eine Funktion mit 3 Variablen Sei ,b . . Die Wertetabelle dieser Funktion ist a b c Seite 188 von 272 27.01.2009 Tabelle 64 : Wertetabelle für Funktion mit 3 Variablen Dann besitzt das Karnaugh-Diagramm Felder. Die Funktionsdarstellung sieht wie folgt aus: Karnaugh-Diagramm für eine Funktion mit 3 Variablen Abbildung 93 : Funktionsdarstellung in einem Karnaugh-Diagramm für 3 Variablen Abbildung 94 : Alternative Funktionsdarstellung in einem Karnaugh-Diagramm für 3 Variablen Beispiel Karnaugh-Diagramm für eine Funktion mit 4 Variablen Sei . Die Wertetabelle dieser Funktion ist a b c d Seite 189 von 272 27.01.2009 Karnaugh-Diagramm für eine Funktion mit 4 Variablen Tabelle 65 : Wertetabelle für Funktion mit 4 Variablen Dann besitzt das Karnaugh-Diagramm Felder und sieht wie folgt aus: Abbildung 95 : Funktionsdarstellung in einem Karnaugh-Diagramm für 4 Variablen Seite 190 von 272 27.01.2009 BEISPIEL SCHALTNETZMINIMIERUNG IM KARNAUGH-DIAGRAMM In der Abbildung 96 haben Sie die Möglichkeit beliebige Wertetabellen einzustellen. Gehen Sie folgendermaßen vor: Klicken Sie Zeile für Zeile auf die Funktionswerte in der Wertetabelle (aus entsteht ) und beachten Sie, welche Einträge im Karnaugh-Diagramm vorgenommen werden. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Schaltnetzminimierung im Karnaugh-Diagramm Abbildung 96 : Karnaugh-Diagramm Sie können mit diesem Tool: z z z Karnaugh-Diagramme für drei oder vier Variablen bearbeiten Über die Taste "Zurücksetzen" die bisherigen Einträge löschen Zum Training zufällige Funktionen erzeugen Es zeigt u.a. die kanonische disjunktive Normalform. Wie kann man nun mit Hilfe des Karnaugh-Diagramms die Primimplikanten finden? Ganz einfach: Primimplikanten entsprechen größtmöglichen Mengen von benachbarten Feldern mit -Werten. -elementigen L-Block und sein Zusammenhang zu Implikanten Seite 191 von 272 27.01.2009 Beispiel Sei Abbildung 97 Man findet im Beispiel die Primimplikanten, indem man die größten 2-elementigen Mengen von benachbarten dem Primimplikanten , da für die Funktion unabhängig von a den Wert Funktion f vereinfacht werden zu Idempotenzgesetzes ( -Feldern zusammenfasst. Der rote Block entspricht annimmt. Der blaue Block steht für den Primimplikanten a. Damit kann die . Man sieht, dass sich die eingekreisten Feldermengen auch überlappen dürfen. Das ist wegen des ) zulässig. Aufgabe 1: Welcher Primimplikant ergibt sich, wenn in jedem Feld des Karnaugh-Diagramms in Abbildung 97 ein -Wert steht? Antwort: Beispiel Sei folgendes Karnaugh-Diagramm gegeben: Abbildung 98 : Karnaugh-Diagramm Dann sind mögliche Implikanten und a. Somit lässt sich die Funktion vereinfachen zu . In Abbildung 99 sieht man sehr schön, dass die Funktionsdarstellung nicht die einzig mögliche ist, ja dass sogar nicht alle gewählten Implikanten prim sind. KarnaughDiagramme besitzen eine zyklische Eigenschaft, die für eine andere Lösungsvariante ausgenutzt werden kann. (Man denke sich das Karnaugh-Diagramm links und rechts sowie unten und oben zyklisch fortgesetzt.) Seite 192 von 272 27.01.2009 Beispiel Sei folgendes Karnaugh-Diagramm gegeben: Abbildung 99 : Karnaugh-Diagramm Dann sind die Implikanten (rot) und ab (blau). Somit lässt sich die Funktion vereinfachen zu . Man beachte, dass die angegebenen Implikanten keine Primimplikanten sind, da sie nicht maximal sind. Wählen wir im Folgenden die Primimplikanten. Beispiel Sei folgendes Karnaugh-Diagramm gegeben: Abbildung 100 : Karnaugh-Diagramm Die Primimplikanten sind: (rot) und a (blau). Somit lässt sich die Funktion vereinfachen zu . Eine Zusammenfassung der sechs -Werte zu einem einzigen Block ist nicht möglich, da nur 2-er, 4-er, 8-er, etc. Blöcke gebildet werden dürfen. Man sieht auch hier, dass sich die Blöcke überschneiden dürfen, in vielen Fällen sogar müssen, wenn man Primimplikanten finden will. Wie geht man nun also vor, wenn man die Blöcke finden muss: 1. 2. 3. Elementen ( ) gebildet werden. Dies entspricht Implikanaten mit n-m Argumenten. Es dürfen nur Blöcke mit Eine zyklische Blockbildung ist erlaubt. Die -Werte eines Blocks müssen ein umschließendes Rechteck vollständig ausfüllen. 4. 5. 6. Alle -Werte müssen in mindestens einem Block enthalten sein. Achtung: Es ist auch möglich, dass ein Block nur ein Element besitzt: Die Blöcke sollen so viele Elemente wie möglich besitzen, ohne dass die genannten Bedingungen verletzt werden (Primimplikanten). Es sollen so wenig Blöcke wie möglich gebildet werden (Kosten). Aufbau eines Karnaugh-Diagramms Welche Blöcke sind erlaubt, welche sind nicht erlaubt? Beispiel Folgende Blöcke stellen eine Verletzung von Regel 1 dar: Seite 193 von 272 27.01.2009 Abbildung 101 Abbildung 102 Beispiel Folgende Blöcke widersprechen Regel 3: Abbildung 103 BEISPIEL Die zyklische Fortsetzung von Karnaugh-Diagrammen bei der Blockbildung nutzt man in folgenden Beispielen: Seite 194 von 272 27.01.2009 Abbildung 104 Abbildung 105 Abbildung 106 Seite 195 von 272 27.01.2009 Abbildung 107 Beispiel Nicht erlaubt sind Blöcke, die um die Ecke gehen, wie beispielsweise Abbildung 108 : Nicht erlaubte Blöcke Abbildung 109 : Nicht erlaubte Blöcke Aufgabe 2: In der Abbildung 96 können Sie die Beispiele Abbildung 104 bis Abbildung 107 einstellen und mit Hilfe der Maus Schleifen um die Blöcke ziehen. (Sie müssen dabei Seite 196 von 272 27.01.2009 nur eine Diagonale des Rechtecks zeichnen) 4.5.5 L13-5: Zusammenfassung Die Optimierung von Booleschen Funktionen mit Hilfe von Karnaugh-Diagrammen ist ein gängiges Mittel zur Kostenminimierung. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z Kostenfunktionen für Schaltnetze [ L13-2 ] Implikant [ L13-3 ] Primimplikant [ L13-3 ] Karnaugh-Diagramm [ L13-4 ] L-Block und sein Zusammenhang zu Implikanten [ L13-4 ] Verstehen (Konzepte erklären können) z z Aufbau eines Karnaugh-Diagramms [ L13-4 ] Bedeutung von Primimplikanten für kostenminimale disjunktive Normalformen [ L13-3 ] Fähigkeiten (neue Kenntnisse anwenden können) z Schaltnetzminimierung im Karnaugh-Diagramm [ L13-4 ] 4.5.6 Training 4.5.6.1 L13-6: Selbsttest Aufgabe 1: Nennen Sie Kostenfunktionen zur Bewertung des Flächenbedarfs von Booleschen Funktionen. Antwort: 1. Anzahl der Monome in einer disjunktiven Normalform 2. Seite 197 von 272 27.01.2009 mit Aufgabe 2: Welche Eigenschaften besitzen Primimplikanten? Antwort: Ein Primimplikant pi einer Booleschen Funktion f ist ein maximaler Implikant, d.h. aus folgt . Aufgabe 3: Wie können Blöcke in Karnaugh-Diagrammen gebildet werden? Welche Eigenschaften müssen diese Blöcke besitzen, welche Eigenschaften dürfen sie nicht besitzen? Geben Sie jeweils Begründungen an. Antwort: Elementen ihrer n-m Argumente gebildet werden: Implikanten sind -Funktionen. Für eine bestimmte Belegung ihrer 1. Es dürfen nur Blöcke mit 2. Argumente und für alle Belegungen der darin nicht verwendeten m Argumente nimmt die Gesamtfunktion den Wert an. m Argumenten können unterschiedliche Belegungen zugewiesen werden. Eine zyklische Blockbildung ist erlaubt. Das ist darin begründet, dass auch die letze und erste Spalten- bzw. Zeilenbelegung sich nur in einer Stelle unterscheiden. Außerdem ist die Zuordnung der Argumente zu den Zeilen und Spalten willkürlich. Eine Änderung der Zuordnung bringt Blöcke an den Rändern in die Mitte des Diagramms. Die -Werte eines Blocks müssen ein umschließendes Rechteck vollständig ausfüllen. Sonst würden die eingeschlossenen -Werte in der Implementierung 3. 4. 5. 6. zu -Werten. Alle Einsen müssen in mindestens einem Block enthalten sein. Achtung: Es ist auch möglich, dass ein Block nur ein Element besitzt. Sonst würden in der Implementierung geforderte -Werte der Funktion nicht auftreten. Die Blöcke sollen so viele Elemente wie möglich besitzen. Sonst implementieren wir keine Primimplikanten. Es sollen so wenig Blöcke wie möglich gebildet werden. Sonst implementieren wir überflüssige Implikanten. 4.5.6.2 L13-7: Aufgaben Aufgabe 1: Sei Welche der beiden Funktionen hat den kleineren Wert der Kostenfunktion ? Antwort: Seite 198 von 272 27.01.2009 Aufgabe 2: Gegeben sei folgendes Karnaugh-Diagramm: Abbildung 110 Wie lautet der Minterm zu Feld X bzw. Y, wenn den symbolischen Booleschen Werten a b c d die Namen , , bzw. zugewiesen werden? Antwort: Minterm zu X: Minterm zu Y: Aufgabe 3: Sei Wie lauten die Primimplikanten? An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 199 von 272 27.01.2009 Abbildung 111 : Karnaugh-Diagramm Antwort: Aufgabe 4: Gegeben sei folgende Wertetabelle. a b c d Seite 200 von 272 27.01.2009 Tabelle 66 : Wertetabelle für Funktion mit 4 Variablen Finden Sie mit Hilfe des Karnaugh-Diagramms eine kostenminimale Realisierung der Schaltung. Hat die Funktion weitere Primimplikanten? An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 201 von 272 27.01.2009 Abbildung 112 : Karnaugh-Diagramm Antwort: Abbildung 113 Seite 202 von 272 27.01.2009 Damit ist a c ist auch ein Primimplikant. Aufgabe 5: Wir betrachten nun alle Funktionen des Tools zur Karnaugh-Diagrammminimierung: a) Erzeugen Sie eine Funktion von 4 Variablen mit zufällig erzeugten Funktionswerten. Bilden Sie geeignete Blöcke und überprüfen Sie Ihre Lösung anhand der im Hintergrund erzeugten optimalen Lösung. Wiederholen Sie diesen Vorgang so oft, bis Sie sich sicher fühlen. b) Man kann auch konjunktive Normalformen entwickeln und optimieren. Die Kandidatenterme für eine optimale Darstellung heißen jetzt Primimplikate und die eventuell nicht reduzierten Terme Implikate. Eine konjunktive Normalform ist also eine Konjunktion (AND) von Implikaten. Beim Arbeiten mit Karnaughdiagrammen muss man folgende Analogien berücksichtigen: z Eine Disjunktion aus Implikanten nimmt für eine Belegung der Eingangsvariablen den Wert an, wenn mindestens ein Implikant den Wert z Eine Konjunktion aus Implikaten nimmt für eine Belegung der Eingangsvariablen den Wert an, wenn mindestens ein Implikat den Wert z Um Implikate zu generieren, bildet man -Blöcke Was muss man beim Ablesen der Termdarstellung für einen Block noch berücksichtigen (siehe Maxterme)? z annimmt annimmt. Wiederholen Sie die Vorgehensweise von Aufgabe a für die Bildung konjunktiver Normalformen mit minimalen Kosten. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 203 von 272 27.01.2009 Abbildung 114 : Karnaugh-Diagramm 5 Implementierung arithmetischer Einheiten 5.1 L14: Additionskomponente 5.1.1 L14-1: Einleitung Gleichgültig, wie die genaue Struktur eines Rechners aussehen mag, es gibt einige grundlegende Aufgaben, die jeder Rechner erfüllen muss. Hierzu gehören die Seite 204 von 272 27.01.2009 Durchführung arithmetischer und logischer Operationen, die Aktivierung von Komponenten als Datenquelle oder Datensenke, die Speicherung von Werten (Daten) und Programmen. Zur Beschreibung der Funktion solcher Schaltungen betrachten wir nun Funktionen über n-stelligen Booleschen Wörtern. Sie werden durch Schaltungen implementiert, die aus Komponenten des letzten Kapitels aufgebaut sind. Um komplexere Schaltungen als Makrobausteine zu entwerfen, müssen diese anschauliche Funktionen realisieren. Beispiel Makrokomponente Ein typisches Beispiel ist etwa eine Makrokomponente zur Durchführung von Additionen auf ganzen Zahlen. Hier hat man selbst dann eine klare Vorstellung über die Funktion einer solchen Komponente, wenn man die Implementierungsdetails nicht kennt. grundlegende Aufgaben eines Rechners Aufbau von komplexen Schaltungen aus Makrobausteinen Makrokomponente Einige wichtige Makrokomponenten und ihre Arbeitsweise werden in diesem Abschnitt besprochen. LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z z Makrokomponente [ L14-1 L14-13 ] add [ L14-6 ] Addiernetz [ L14-9 ] Verhalten eines Addiernetzes [ L14-10 ] 1-Bit-Addierer [ L14-13 ] Laufzeitoptimierung [ L14-18 ] iterative Schaltnetze [ L14-19 ] Verstehen (Konzepte erklären können) z z z Bearbeitungsdauer: ca. 120 min Bereichsüberschreitung [ L14-5 L14-8 L14-15 ] einfache Implementierungsidee eines Addierers [ L14-11 ] Aufbau von komplexen Schaltungen aus Makrokomponenten [ L14-13 ] Fähigkeiten (neue Kenntnisse anwenden können) z z z n-stellige binäre Addition [ L14-7 L14-8 ] umkehrbar eindeutige Zuordnung zwischen Dualzahlen und Booleschen Wörtern [ L14-4 ] stellensequentielle Addition [ L14-11 ] 5.1.2 L14-2: Überblick Folgende Fragestellungen werden in dieser Lerneinheit behandelt: z z z z Gibt es eine umkehrbare eindeutige Zuordnung zwischen Dualzahlen und Booleschen Wörtern? Was ist eine Bereichsüberschreitung, welche Probleme ergeben sich daraus und wie werden sie gelöst? Was ist ein Addiernetz und wie lässt sich sein Verhalten implementieren? Wie kann man ein Addiernetz optimieren? Seite 205 von 272 27.01.2009 LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z z Makrokomponente [ L14-1 L14-13 ] add [ L14-6 ] Addiernetz [ L14-9 ] Verhalten eines Addiernetzes [ L14-10 ] 1-Bit-Addierer [ L14-13 ] Laufzeitoptimierung [ L14-18 ] iterative Schaltnetze [ L14-19 ] Bearbeitungsdauer: ca. 120 min Verstehen (Konzepte erklären können) z z z Bereichsüberschreitung [ L14-5 L14-8 L14-15 ] einfache Implementierungsidee eines Addierers [ L14-11 ] Aufbau von komplexen Schaltungen aus Makrokomponenten [ L14-13 ] Fähigkeiten (neue Kenntnisse anwenden können) z z z n-stellige binäre Addition [ L14-7 L14-8 ] umkehrbar eindeutige Zuordnung zwischen Dualzahlen und Booleschen Wörtern [ L14-4 ] stellensequentielle Addition [ L14-11 ] 5.1.3 Arithmetik mit Booleschen Wörtern 5.1.3.1 L14-3: Wandlung von Booleschen Wörtern in Dualzahlen In L3 wurde bereits die Umwandlung von Booleschen Wörtern in Dualzahlen erläutert. Wir wiederholen: Die Funktion dualn bildet n-stellige Boolesche Wörter auf eine Teilmenge der natürlichen Zahlen wählen (wird durch den nachgestellten Index 10 festgelegt). ab, wobei wir die Dezimalzahlendarstellung Wandlung von Booleschen Wörtern in Dualzahlen Beispiel dual Umwandlung von Booleschen Wörtern in Dualzahlen dual Seite 206 von 272 27.01.2009 Der Index 3 wäre nicht notwendig, da wir Zahlen immer ohne führende Nullen schreiben. Aus Symmetrie-Gründen schreiben wir aber den Index mit. ANMERKUNG DARSTELLUNG VON DUALZAHLEN Darstellung von Dualzahlen In der Darstellung von Dualzahlen lassen wir die Klammerung, die wir für Wörter eingeführt haben weg. Wir schreiben also beispielsweise 1102 statt Als Umkehrabbildung definiere bool die dazugehörige Rückwandlung. . bool Beispiel bool Die formalen Definitionen befinden sich in Definition und Beispiel dual und Definition und Beispiel bool. AUFGABE 1: Bestimmen Sie: Antwort: 5.1.3.2 L14-4: Zusammenhang dual-bool Sei , dann gilt: z . umkehrbar eindeutige Zuordnung zwischen Dualzahlen und Booleschen Wörtern die Gleichung Entsprechend gilt für ein Wort . z Damit gibt es umkehrbar eindeutige Zuordnungen zwischen Dualzahlen aus dem Zahlenbereich Beispiel umkehrbar eindeutige Zuordnung zwischen Dualzahlen und Booleschen Wörtern Sei die Stellenzahl n = 10, und die zu wandelnde Zahl i = 100010 dann ist und und den n-stelligen Booleschen Wörtern. umkehrbar eindeutige Zuordnung zwischen Dualzahlen und Booleschen Wörtern Seite 207 von 272 27.01.2009 5.1.3.3 L14-5: Darstellbarer Wertebereich Die endliche Stellenzahl bereitet natürlich dann Probleme, wenn das Ergebnis einer Rechenoperation außerhalb des zugelassenen Zahlenbereichs liegt, wenn also eine Bereichsüberschreitung auftritt. Bereichsüberschreitung Beispiel Bereichsüberschreitung Addiert man zwei n-stellige Zahlen, dann kann das Ergebnis n+1-stellig sein. Wir werden später sehen, wie man damit umgeht. modulo In diesem Abschnitt setzen wir voraus, dass jedes Rechenergebnis modulo 2 n gebildet wird und damit immer n-stellig ist. 5.1.3.4 L14-6: Einführung der Funktion add Zur Betrachtung der Addition natürlicher Zahlen im Bereich n , die modulo 2 durchgeführt wird, führen wir die beiden Funktionen add und + ein: n n , add wobei aus zwei n-stelligen Operanden ein n-stelliger Ergebnisvektor gebildet wird: Beispiel n=4 ANMERKUNG ADD Beachten Sie, dass add eine Funktion auf Booleschen Wörtern, nicht auf Dualzahlen ist. An dieser Stelle beschreiben wir noch nicht, wie diese Funktion konkret aussieht, ihre Definition ist Ergebnis dieses Abschnitts. Wir können also die Richtigkeit des Ergebnisses vorläufig nicht nachprüfen. AUFGABE 1: Stellen Sie die Belegung und an den Schaltern ein. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 208 von 272 27.01.2009 Abbildung 115 : Funktion add AUFGABE 2: Welches Ergebnis erhalten Sie für . Antwort: 5.1.3.5 L14-7: Definition:+n DEFINITION , -STELLIGE BINÄRE ADDITION Die zweite Funktion: n-stellige binäre Addition mit: Das Ergebnis der Funktion Vielfaches von liegt daher immer im Intervall und unterscheidet sich von der gewöhnlichen Summe der Operanden um ein ganzzahliges . ( Dazu soll hier auch 0 gehören. ) Seite 209 von 272 27.01.2009 ANMERKUNG N-STELLIGE BINÄRE ADDITION n Wenn also die gewöhnliche Summe zu einer Bereichsüberschreitung führt, dann zieht man so oft 2 ab, bis das Ergebnis im angegebenen Zahlenbereich liegt. 5.1.3.6 L14-8: Beispiel zu +n mit Bereichsüberschreitung Beispiel Sei n = 4 Da ist, gilt: Es gilt beispielsweise: 1110 + 710 = 1810 mit: 1810 = 100102. 1810 liegt nicht im angegebenen Wertebereich, denn man braucht zur Darstellung dieser Dualzahl fünf Stellen. Das Ergebnis der Operation +4 wird daher durch die vier niederwertigen Stellen von 1810 beschrieben: 00102 = 210. Damit ergibt sich insgesamt: 1110 +4 710 = 210. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Bereichsüberschreitung, n-stellige binäre Addition Abbildung 116 : Beispiel Bereichsüberschreitung AUFGABE 1: Seite 210 von 272 27.01.2009 Stellen Sie verschiedene Zahlen ein und versuchen Sie das angezeigte Ergebnis nachzuvollziehen. 5.1.3.7 L14-9: Definition add DEFINITION ADDIERNETZ Ein Addiernetz hat die Aufgabe, die Funktion add zu implementieren, so dass für alle Belegungen gilt: Addiernetz Beispiel Funktion des Addiernetzes Seien n = 4 und die beiden Argumente für und . Angenommen, es gilt: ( Wie add funktioniert, wissen wir eigentlich noch gar nicht. Der Wert L00L fällt also an dieser Stelle "vom Himmel". Wie wir weiter unten sehen werden, ist es "zufällig" der richtige Wert.) Dann ist: Funktion des Addiernetzes Andererseits gilt: und: Damit ist die geforderte Gleichheit erfüllt, denn: An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 211 von 272 27.01.2009 Abbildung 117 : Definiton add 5.1.3.8 L14-10: Aufgaben eines Addiernetzes DEFINITION VERHALTEN EINES ADDIERNETZES Damit ist das gewünschte Verhalten eines Addiernetzes definiert: n Es soll die Funktion add implementieren, so dass andere Einheiten eines Rechners diese Operation als Addition modulo 2 interpretieren können. Wenn also dem n Addiernetz n-stellige Boolesche Wörter geliefert werden, soll es Verhalten eines Addiernetzes so bilden, dass gilt: Für die Implementierung dieses Verhaltens gibt es viele Alternativen, die sich im Schaltungsaufwand (Anzahl der Booleschen Komponenten ), im Typ der verwendeten Booleschen Komponenten (z.B. ausschließliche Verwendung von NAND- oder NOR- Komponenten) und in der Verarbeitungszeit (Anzahl der von den Signalen zu durchlaufenden Komponenten) unterscheiden können. Implementierung des Verhaltens eines Addiernetzes Seite 212 von 272 27.01.2009 5.1.4 Einfache Implementierung einer ADD-Komponente 5.1.4.1 L14-11: Einfache Implementierungsidee für Addierer Eine einfache Implementierungsidee setzt die manuelle Vorgehensweise bei der Addition in eine Schaltungsstruktur um. einfache Implementierungsidee eines Addierers DEFINITION STELLENSEQUENTIELLE ADDITION Beginnend bei der niedrigstwertigen Stelle bearbeitet man die Stellen der beiden Operanden nacheinander bis zur höchstwertigen Stelle und berücksichtigt jeweils den Übertrag der Vorgängerstelle. Wir nennen dies stellensequentielle Addition . Für jede Stelle i benötigt man ein 1-Bit Addierer, der nun aber neben den Operandenstellen eine Übertragsstelle als Eingang und neben der Summenstelle eine Übertragsstelle als Ausgang besitzt. stellensequentielle Addition Also gilt: mit Beispiel Seien dann gilt Mit lässt sich der Wert 3 nur für erreichen. BEISPIEL STELLENSEQUENTIELLE ADDITION 0101 + 4 0011 = 1000 stellensequentielle Addition Operand1 0 1 0 1 Operand 2 + 0 0 1 1 Übertrag 1 1 1 Summe 1 0 0 0 Seite 213 von 272 27.01.2009 Tabelle 67 Für die niedrigstwertige Stelle berechnen wir beispielsweise 1 +1 1 = 0 mit Übertrag 1 in die nächste Stelle. 5.1.4.2 L14-12: Schaltnetz für die 1- stellige Addition (1-Bit-Additionskomponente) Aufgrund des einfachen Zusammenhangs und können wir eine Wertetabelle für ein Schaltnetz angeben, das Summe und Übertrag einer Schaltnetz für die 1- stellige Addition (1-Bit-Addition Komponente) einstelligen Addition implementiert. Beispiel Seien jeweils aus {0,1} und aus {O,L}, dann implementiert die untenstehende Schaltung die beschriebene 1-stellige Addition mit Übertrag An dieser Stelle ist in der HTML-Version eine Animation enthalten. bi ai ci ci+1 si O O O O O O O L O L O L O O L O L L L O L O O O L L O L L O L L O L O L L L L L Tabelle 68 : 1-Bit Addierer Tatsächlich entfällt die Wandlung und , da man in der Rechnerhardware zwischen 0 und bzw. 1 und keinen Unterschied macht. Aufgabe 1: Überprüfen Sie, ob Tabelle 68 die Definition von erfüllt. Antwort: Wir zeigen die Richtigkeit für die vorletzte Zeile: Seite 214 von 272 27.01.2009 Es gilt: und . Außerdem ist und . Daher gilt: Entsprechend zeigt man die Gültigkeit für andere Zeilen der Tabelle. 5.1.4.3 L14-13: Herleitung von 4-Bit-Addierern aus 1-Bit-Additionskomponenten Unsere Implementierung eines Addiernetzes für vierstellige Operanden sieht für jede Stelle i mit eine "1-Bit-Additionskomponente" vor, die jeweils neben den entsprechenden booleschen Operandenstellen a und b auch den von der Makrokomponente der Vorgängerstelle erzeugten Übertrag c als Eingabewerte erhält. Sie i i i erzeugt die Summe s sowie den Übertrag für die Makrokomponente der nachfolgenden Stelle. i An dieser Stelle ist in der HTML-Version eine Animation enthalten. Aufbau von komplexen Schaltungen aus Makrokomponenten, Makrokomponente, 1-Bit-Addierer Abbildung 120 : Herleitung von 4-Bit-Addieren aus 1-Bit-Addierern AUFGABE 1: Seite 215 von 272 27.01.2009 Was ergibt ? Antwort: und . 5.1.4.4 L14-14: Zusammenfassung Additionsoperation Wir haben gesehen, wie die Addition von natürlichen Zahlen durch Schaltnetze implementiert werden kann. Über die Funktion bool haben wir Dualzahlen in Boolesche Wörter gewandelt. Auf zwei n-stellige Boolesche Wörter kann die Funktion add angewendet werden. Das Ergebnis ist ein Boolesches Wort, das durch n Anwendung der Funktion dual in eine Dualzahl gewandelt werden kann. Die Funktion add wird durch eine Komposition von n 1-Bit-Addierern implementiert. Diese n erzeugen aus den beiden zugeordneten Stellen der Operanden und einem Eingangsübertrag die entsprechende Summenstelle und einen Ausgangsübertrag der als Eingangsübertrag der nächst höheren Stelle dient. 5.1.4.5 L14-15: Behandlung von Überträgen der n-ten Stelle Die Summe zweier n-stelligen Zahlen kann -stellig sein. Daher sind die Ergebnisse der gewöhnlichen Addition und der Addition Übertrag in die -Stelle nur dann gleich, wenn der Bereichsüberschreitung ist. Bei den meisten Rechenaufgaben, die einem Prozessor gestellt werden, wird das Ergebnis der gewöhnlichen Addition gewünscht. Aus diesem Grunde meldet der Prozessor den Wert an eine übergeordnete Instanz, die dann entscheidet, wie im Falle zu verfahren ist. Es ist naheliegend diesen Wert einfach als Fehlermeldung "Zahlenbereich überschritten" aufzubereiten und auf dem Bildschirm anzuzeigen. Das Programm, das diese Berechnung durchgeführt hat, kann im Allgemeinem abgebrochen werden. ANMERKUNG BEREICHSÜBERSCHREITUNG In einem modernen Prozessor gilt typischerweise Bereichsüberschreitung oder sogar , so dass eine Zahlenbereichüberschreitung nur bei sehr großen Zahlen auftritt. Aufgabe 1: Schätzen Sie die Größenordnung der größten darstellbaren Zahl im Dezimalsystem ab, wenn für die Zahlen 32 Binärstellen verwendet werden. Antwort: 5.1.5 Optimierungsmöglichkeiten Seite 216 von 272 27.01.2009 5.1.5.1 L14-16: Zeitverhalten eines n-Bit-Addierers Wir betrachten nun die schaltungstechnische Realisierung der beschriebenen + - Addition unter Verwendung von 1-Bit-Addierern in Abbildung 121 unter einem 4 anderen Gesichtspunkt. n-Bit-Addierer aus 1-Bit-Addierern Abbildung 121 : 4-Bit-Addierer aus 1-Bit-Addierern Jede Schaltung braucht Zeit, um bei Vorliegen der Eingangswerte die zugehörigen Ausgangswerte zu ermitteln. Nachteilig an der gezeigten Implementierung ist der vergleichsweise große Zeitbedarf, der dadurch entsteht, dass das Übertragssignal entsteht und danach weiterverarbeitet werden muss. Der Übertrag So kann ein Übertrag kann daher erst zeitverzögert gegenüber "schuld" an einem Übertrag in der höchsten Stelle erzeugt werden und sein. Dieser Übertrag läuft dann durch zeitverzögert aus und zeitverzögert gegenüber . 1-Bit-Addierer und wird entsprechend lange verzögert. 5.1.5.2 L14-17: Verzögerte Summenbildung Beispiel Übertrag Seien: Übertrag , Seite 217 von 272 27.01.2009 Dann wird und . BEISPIEL AUFGABE 1: FORTPFLANZUNG VON ÜBERTRÄGEN Fortpflanzung von Überträgen Schreiben Sie diese Zahlen in der für manuelle Additionen üblichen Schreibweise untereinander und beobachten Sie, wie sich der Ausgangsübertrag der ersten Stelle über alle Stellen bis nach fortpflanzt. BEISPIEL AUFGABE 2: In Abbildung 122 nehmen wir an, dass die Ergebnisse an den Ausgängen einer Makrokomponente VA eine Zeiteinheit später anliegen als die Eingangswerte. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Abbildung 122 : Zeitverzögerung im Addiernetz In dem Diagramm der Abbildung 122 werden zeitliche Änderungen des Wertes von einstellen und anschließend zwischen und und der Überträge dargestellt. Wenn Sie zunächst hin- und herschalten, wandern die Änderungen der gemessenen Signale zeitlich versetzt über das Diagramm. Sie können den Messvorgang stoppen (OFF) und den dann erscheinenden Scroll-Schieber betätigen, um die Signale in aller Ruhe anzuschauen. Seite 218 von 272 27.01.2009 5.1.5.3 L14-18: Reduktion der Verzögerungszeit beim Addiernetz Man kann die zeitliche Situation bei allerdings erhöhten Realisierungskosten (Anzahl der Booleschen Komponenten) verbessern. Ziel ist dabei, dass die Wertänderungen durch möglichst wenige Stufen von Schaltgliedern laufen, ohne allerdings den Implementierungsaufwand zu hoch zu treiben. Gesucht ist also ein Kompromiss zwischen Laufzeit und Kosten. Um dies zu erreichen, überführt man das mehrstufige Schaltnetz durch Anwendung von Gesetzen der Booleschen Algebra in ein Schaltnetz mit weniger Stufen. Laufzeitoptimierung Eine Überführung in die theoretisch mögliche disjunktive Normalform (zwei Stufen) verbietet sich aus Kostengründen, da dabei die Anzahl der elementaren Komponenten extrem hoch wird. Man könnte aber durchaus jeweils zwei 1-Bit-Addierer zu einem Schaltnetz zusammenfassen, dessen disjunktive Normalform implementiert wird. Dadurch würde die Stufenzahl insgesamt halbiert. DENKANSTOß AUFGABE 1: Die Implementierung des 1-Bit-Addierer besitzt ja schon zwei Stufen. Warum? ( Umsetzung seiner Wertetabelle in disjunktive Normalform ) In LogiFlash ist für die Komponente VA (Volladdierer) die Verzögerungszeit 1 angenommen. Aufgabe 2: Wir nehmen an, dass Ihr Rechner eine Taktfrequenz von 1 GHz = 109 Hz besitzt. Im Kurs 2 wird auf die Fragen des Taktes eingegangen. Hier behaupten wir, dass eine Addition von 32-stelligen Zahlen in der Zeit abgeschlossen sein muss. Nehmen Sie an das Addiernetz habe 64 Verknüpfungsglieder hintereinander geschaltet. Wie groß darf die Verzögerungszeit in einem Verknüpfungsglied sein? Antwort: Welche Entfernung legt das Licht in dieser Zeit zurück, wenn es für 20 cm 1ns braucht? Antwort: 5.1.5.4 L14-19: Prinzip von iterativen Schaltnetzen DEFINITION ITERATIVE SCHALTNETZE iterative Schaltnetze Seite 219 von 272 27.01.2009 Schaltnetze mit einer in Abbildung 122 beschriebenen Struktur nennt man iterativ. Man muss nur das Schaltnetz für eine Stelle entwerfen und kann dann durch Aneinanderreihen solcher gleichartiger Makrokomponenten das entsprechende Schaltnetz für n Stellen entwickeln. ANMERKUNG ANWENDUNG AUF ANDERE PROBLEMSTELLUNGEN Anwendung auf andere Problemstellungen Die Anwendung dieses Prinzips wird bei den nachfolgenden Aufgaben behandelt. ANMERKUNG ADDITION UND SUBTRAKTION VORZEICHENBEHAFTETER ZAHLEN Addition und Subtraktion vorzeichenbehafteter Zahlen Natürlich kommt man praktisch nicht mit ganzen Zahlen ohne Vorzeichen aus. Es sind daher entsprechende Überlegungen anzustellen, um möglichst effizient Addition und Subtraktion vorzeichenbehafteter Zahlen durchzuführen. 5.1.6 L14-20: Zusammenfassung z Die Funktionen dual und bool sind umkehrbar eindeutige Zuordnungen zwischen Dualzahlen aus dem Zahlenbereich z Booleschen Wörtern. Eine Bereichsüberschreitung liegt vor, wenn das Ergebnis einer Rechenoperation außerhalb des zugelassenen Zahlenbereichs liegt. Ein Addiernetz soll die in dieser Lerneinheit definierte Funktion add implementieren, so dass andere Einheiten eines Rechners diese Operation als Addition z z z n n und n-stelligen n modulo interpretieren können. Eine einfache Implementierung setzt die Idee der stellensequentiellen Addition um: jede Stelle wird durch einen 1-Bit-Addierer repräsentiert. Es entsteht ein iteratives Schaltnetz. Den Nachteil der grossen Zeitverzögerung, den diese Implementierung hat, kann man dadurch beheben, dass man das Schaltnetz durch Anwendung der Gesetze der Booleschen Algebra in ein Schaltnetz mit weniger Stufen überführt. (Dies hat aber erhöhte Realisierungskosten zur Folge.) LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z z z z z Makrokomponente [ L14-1 L14-13 ] add [ L14-6 ] Addiernetz [ L14-9 ] Verhalten eines Addiernetzes [ L14-10 ] 1-Bit-Addierer [ L14-13 ] Laufzeitoptimierung [ L14-18 ] iterative Schaltnetze [ L14-19 ] Verstehen (Konzepte erklären können) z Bereichsüberschreitung [ L14-5 L14-8 L14-15 ] Seite 220 von 272 27.01.2009 z z einfache Implementierungsidee eines Addierers [ L14-11 ] Aufbau von komplexen Schaltungen aus Makrokomponenten [ L14-13 ] Fähigkeiten (neue Kenntnisse anwenden können) z z z n-stellige binäre Addition [ L14-7 L14-8 ] umkehrbar eindeutige Zuordnung zwischen Dualzahlen und Booleschen Wörtern [ L14-4 ] stellensequentielle Addition [ L14-11 ] 5.1.7 Training 5.1.7.1 L14-21: Aufgaben Aufgabe 1: Berechnen Sie: 73610 + 10 45810 Antwort: 73610 + 45810 = 119410, 119410 modulo 210 = 17010 73610 + 7 45810 Antwort: 119410 modulo 27 = 4210 73610 + 5 45810 Antwort: 119410 modulo 25 = 1010 Aufgabe 2: Entwerfen Sie ein Schaltnetz für einen 1-Bit Addierer in disjunktiver Normalform. Antwort: Tabelle 68 zeigt die Wertetabelle des Schaltnetzes. Je eine der beiden Booleschen Funktionen zunächst die vollständigen disjunktiven Normalformen an: und haben in jeweils vier Zeilen einen -Wert. Wir geben Den Übertragsterm können wir vereinfachen: Seite 221 von 272 27.01.2009 Interpretation: Wenn zwei oder drei der Eingaben den Wert besitzen, ist der Übertragswert . Aufgabe 3: In L2 haben wir die Funktionen Quersumme und Paritätsbit definiert mit gilt: ist damit die Anzahl der zu einem Wort b gilt: Für die Funktion Paritätsbit Sei -Zeichen im Wort b an. und dann ist Verwenden Sie diese beiden Funktionen, um einen 1-Bit-Addierer zu implementieren. Antwort: Das Summenbit Also gilt Das Übertragsbit wird dann , wenn eine ungerade Anzahl von -Werten besitzt. . wird dann , wenn zwei oder mehr -Werte besitzt. Also gilt: Aufgabe 4: Die Funktion eines 1-Bit-Addierers haben wir wie folgt definiert: mit gilt Seite 222 von 272 27.01.2009 Entsprechend können wir einen 2-Bit-Addierer definieren: mit gilt Zeigen Sie, dass man den 2-Bit-Addierer unter Verwendung von zwei 1-Bit-Addierern, einen für jede Stelle, implementieren kann. Führen Sie hierzu zunächst eine zusätzliche Boolesche Variable ein, über welche die beiden 1-Bit-Addierer kommunizieren. Dann eliminieren Sie diese Variable mit den üblichen algebraischen Methoden, da sie in der Funktionsbeschreibung des 2-Bit-Addierers nicht auftritt. Antwort: 1. 1-Bit-Addierer für die Stelle i-1: 2. 1-Bit-Addierer für die Stelle i: 3. Wir multiplizieren Gleichung (2) mit 2: Nun können wir in Gleichung 3 die nach aufgelöste Gleichung (1) einsetzen: Durch Umordnen folgt die oben angegebene Funktionsbeschreibung. 5.1.7.2 L14-22: Selbsttest Aufgabe 1: Seite 223 von 272 27.01.2009 Funktionen 1. und Bestimmen Sie ? Antwort: 2. Bestimmen Sie ? Antwort: Die Zahl 1 ließe sich zwar mit einem Bit repräsentieren, wir wollen aber ein 4-stelliges Wort erzeugen und starten mit der Zahlendarstellung 0001: . 3. . Definieren Sie die Funktion Antwort: Mit 4. gilt: Definieren Sie die Funktion Antwort: Mit , wobei die Ziffern einer Dualzahl sind, gilt: Aufgabe 2: Bestimmen Sie , in dem Sie die Booleschen Wörter zunächst in Zahlen wandeln und dann die binäre Addition durchführen und schließlich eine Rückwandlung in ein Boolesches Wort durchführen. Antwort: binäre Addition: Rückwandlung in Boolesches Wort: Seite 224 von 272 27.01.2009 5.2 L15: Ganzzahlarithmetik 5.2.1 L15-1: Überblick In dieser Lerneinheit werden folgende Fragestellungen behandelt: z z z z Wie stellt man Boolesche Wörter mit Vorzeichen dar? Welche Vor- und Nachteile haben die Bereichskomplementdarstellung und die Zahlendarstellung mit Betrag und Vorzeichen? Wie negiert man eine Zahl in Bereichskomplementdarstellung? Wie addiert und subtrahiert man Zahlen in Bereichskomplementdarstellung? LERNZIELE Wissen (Begriffe beschreiben/definieren können) z Stellenkomplement [ L15-11 L15-12 ] Verstehen (Konzepte erklären können) z z z Nachteile der Zahlendarstellung durch Betrag und Vorzeichen [ L15-3 L15-4 ] Rückwandlung des Bereichskomplementes in ein Boolesches Wort [ L15-8 ] Umkehrbarkeit der Wandlung des Bereichskomplementes in ein Boolesches Wort [ L15-10 ] Bearbeitungsdauer: ca. 120 min Fähigkeiten (neue Kenntnisse anwenden können) z z z z z z Zahlendarstellung durch Betrag und Vorzeichen [ L15-2 L15-9 ] Bereichskomplementdarstellung [ L15-5 L15-6 L15-7 L15-9 ] Negation einer Zahl im Bereichskomplement [ L15-11 L15-12 L15-13 L15-14 L15-14a L15-14b L15-14c L15-14d ] Ermittlung Boolescher Wörter komplementärer Zahlen [ L15-15 ] Umwandlung negativer Zahlen in ein Boolesches Wort [ L15-16 ] Addition und Subtraktion von Zahlen in Bereichskomplementdarstellung [ L15-17 L15-18 L15-19 ] 5.2.2 Einfache Darstellungsmöglichkeiten ganzer Zahlen 5.2.2.1 L15-2: Ganze Zahlen mit Betrag und Vorzeichen Seite 225 von 272 27.01.2009 Wir wollen nun den betrachteten Zahlenbereich auf negative Zahlen erweitern. Dies entspricht dem Datentyp integer bei Programmiersprachen. Es liegt nahe, eine Darstellung zu wählen, die das Vorzeichen binär kodiert und den Betrag in der bisher beschriebenen Weise als natürliche Zahl darstellt. Diese Darstellung mit Betrag und Vorzeichen wird für Handrechnungen verwendet. Zahlendarstellung durch Betrag und Vorzeichen Wenn wir also wieder insgesamt n Stellen zur Darstellung einer Zahl zur Verfügung haben, dann legt jetzt die n-te Stelle das Vorzeichen fest und die übrigen n-1 Stellen repräsentieren den Betrag der Zahl. Dabei stellt man "+" durch den Wert "O" und "-" durch den Wert "L" jeweils in der n-ten Stelle dar. Sei also die Interpretation eines Booleschen Wortes im Falle der Darstellung durch Betrag und Vorzeichen (bv): mit gilt: Da für die in dieser Definition angegebene Summe nach Definition der Funktion dual gilt: kann man auch schreiben: AUFGABE 1: Sei Antwort: Wegen . Geben Sie den Wert an. gilt 5.2.2.2 L15-3: Nachteile der Betrag-und-Vorzeichen-Darstellung I Nachteilig an dieser Darstellung sind folgende Punkte: Seite 226 von 272 27.01.2009 1. 2. Spezialstellung der Null: Es gibt zwei Repräsentationen der 0, nämlich plus 0 und minus 0 . Vergleicht man daher ein Rechenergebnis mit dem konstanten Wert 0, was in einem Programm häufig vorkommt, dann ist dies etwas komplexer als bei Vorhandensein einer eindeutigen Repräsentation der 0. Rechenoperationen sind kompliziert, da mehrere Fälle unterschieden werden müssen (siehe nächste Seite) . Beispiel Vergleich mit 0 Die Rechnersteuerung würde jedes Ergebnis der Form in umwandeln. Ein Vergleich mit 0 bedeutet Nachteile der Zahlendarstellung durch Betrag und Vorzeichen Vergleich mit 0 dann immer Vergleich mit +0. 5.2.2.3 L15-4: Nachteile der Betrag-und-Vorzeichen-Darstellung II Wir betrachten zwei Zahlen A und B, die jeweils mit Betrag und Vorzeichen dargestellt werden. Die Beträge Nachteile der Zahlendarstellung durch Betrag und Vorzeichen und müssen addiert oder nach Vergleich subtrahiert werden. Ergebnis ist ein Vorzeichenbit und ein Betrag . Tabelle 70 listet die Alternativen. Auf Zahlenbereichs-Überschreitungen gehen wir in Tabelle 70 nicht ein. Bedingung Ergebnis Kommentar Gleiche Vorzeichen addiere die Beträge Ungleiche Vorzeichen subtrahiere den kleineren vom größeren Betrag Ungleiche Vorzeichen Subtrahiere den kleineren Betrag vom größeren Tabelle 70 : Addition von Zahlen in "Betrag und Vorzeichen Darstellung" Seite 227 von 272 27.01.2009 Beispiel Seien und und und Ungleiche Vorzeichen Subtrahiere den kleineren Betrag vom größeren Tabelle 71 : Beispiel 5.2.3 Bereichskomplement 5.2.3.1 L15-5: Bereichskomplementdarstellung Die beschriebenen Nachteile der Zahlendarstellung durch Betrag und Vorzeichen lassen sich vermeiden, wenn man eine andere Darstellung wählt. Man spricht von Bereichskomplement- oder Zweierkomplementdarstellung. Wie bei der Darstellung mit Betrag und Vorzeichen kodiert die höchstwertige Stelle das Vorzeichen. Dies erlaubt einen einfachen Test, ob eine Zahl > 0 oder < 0 ist: der Prozessor muss nur die Vorzeichenstelle prüfen. Bereichskomplementdarstellung Die Interpretation der Booleschen Wörter unterscheidet sich aber bei der Bereichskomplementdarstellung und der Darstellung durch Betrag und Vorzeichen. 5.2.3.2 L15-6: Definition des Bereichskomplements DEFINITION BEREICHSKOMPLEMENTDARSTELLUNG Wir führen die Abbildung für das Bereichskomplement (bk) ein: Bereichskomplementdarstellung mit Die Vorzeichenstelle b wird also mit einem betragsmäßig hohen Gewicht versehen. Ist n , dann wird vom Betrag der Zahl der große Wert abgezogen. Wegen kann man auch schreiben: Seite 228 von 272 27.01.2009 ANMERKUNG KEINE BEREICHSÜBERSCHREITUNG Wir können an Stelle des Operationszeichens + auch schreiben, da der größte und kleinste erreichbare Wert innerhalb des vorgegeben Intervalls liegt und daher mit n Stellen darstellbar ist: z größter Wert: z kleinster Wert: keine Bereichsüberschreitung Beispiel 5.2.3.3 L15-7: Beispiele zum Bereichskomplement Wir haben definiert: Bereichskomplementdarstellung BEISPIEL AUFGABE 1: Stellen Sie verschiedene Boolesche Werte ein. Überprüfen Sie die Wandlung und vergleichen Sie die Bereichskomplementdarstellung mit der Darstellung durch Betrag und Vorzeichen. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 229 von 272 27.01.2009 Abbildung 123 : Vergleich Bereichskomplementdarstellung mit der Darstellung durch Betrag und Vorzeichen BEISPIEL AUFGABE 2: Welche Eigenschaft haben die in Bereichskomplement- und Betrag-und-Vorzeichen-Darstellung gezeigten negativen Zahlen? Antwort: Die Summe der Beträge ist immer 16. 5.2.3.4 L15-8: Rückwandlung des Bereichskomplements DEFINITION RÜCKWANDLUNG DES BEREICHSKOMPLEMENTES IN EIN BOOLESCHES WORT Umgekehrt kann man zu einer Zahl die Darstellung als Boolesches Wort ermitteln. Rückwandlung des Bereichskomplementes in ein Boolesches Wort Für positive Zahlen gilt die einfache Umwandlungsregel: Beispiel Rückwandlung des Bereichskomplements einer positiven Zahl in ein Boolesches Wort Sei die Stellenzahl n = 5 und die zu wandelnde Zahl sei B = +1410. Dann ist Rückwandlung des Seite 230 von 272 27.01.2009 Bereichskomplements einer positiven Zahl in ein Boolesches Wort vierstellig und die fünfte Stelle in der Bereichskomplementdarstellung markiert das Vorzeichen: 5.2.3.5 L15-9: Vergleich der Darstellung Betrag-und-Vorzeichen mit Bereichskomplementdarstellung z Für positive Zahlen haben wir definiert: z Es wird also einfach die Vorzeichenstelle für plus, also , vor den für vorzeichenlose Zahlen gewonnen Wert gekettet. Damit sind die Darstellungen "Betrag und Vorzeichen" sowie "Bereichskomplement" für positive Zahlen gleich. Für negative Zahlen ist die Umwandlungsregel nicht so einfach. Diese Regel wird im Folgenden abgeleitet. Bereichskomplementdarstellung, Zahlendarstellung durch Betrag und Vorzeichen ANMERKUNG SYMMETRIE ZUR 0 Stellen Sie die größte positive Zahl in Bereichskomplementdarstellung dar Antwort: Zu gehört die Zahl . Zu gehört die Zahl . Nun stellen Sie die kleinste mögliche Zahl ein. Was fällt auf? . Die Beträge beider Zahlen sind ungleich. Man kann mehr negative als positive Zahlen darstellen. Es gibt jetzt keine zweifache Darstellung der 0 mehr. Das freigewordene Boolesche Wort erweitert den Bereich der negativen Zahlen. Die betragsmäßig größte negative Zahl ist daher um 1 größer als die größte positive Zahl. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Symmetrie zur 0 Seite 231 von 272 27.01.2009 Abbildung 124 : Vergleich von Vorzeichenbit- und Zweierkomplementdarstellung 5.2.3.6 L15-10: Umkehrbarkeit der Bereichskomplementsdarstellung Auch bei der Darstellung im Bereichskomplement muss die Wandlung zwischen Zahlen und Booleschen Wörtern umkehrbar sein, d.h., es muss gelten: Für alle : Entsprechend gilt für ein Wort Umkehrbarkeit der Wandlung des Bereichskomplementes in ein Boolesches Wort die Gleichung . Beispiel Umkehrbarkeit der Wandlung des Bereichskomplementes in ein Boolesches Wort Sei: n = 4 und Dann ist: Dezimaldarstellung Betrag-und-Vorzeichen-Darstellung Bereichskomplement-Darstellung -3 LOLL LLOL Tabelle 72 : Unterschiedliche Repräsentation von 4-Bit-Integerzahlen 5.2.4 Negation von ganzen Zahlen 5.2.4.1 L15-11: Negation einer Zahl im Bereichskomplement: Vorbereitung Die Negation einer positiven oder negativen Zahl in Bereichskomplement-Darstellung ist in ihrer technischen Realisierung nicht trivial und wird zunächst durch Einführung des Stellenkomplements zu einer Zahl vorbereitet. DEFINITION STELLENKOMPLEMENT (Einerkomplement) Das Stellenkomplement zu einem Booleschen Wort Negation einer Zahl im Bereichskomplement Stellenkomplement ist definiert als: Seite 232 von 272 27.01.2009 , d.h., jede Stelle wird unabhängig von den anderen logisch negiert. ANMERKUNG Wegen der besseren Übersichtlichkeit schreiben wir Beispiel Stellenkomplement Das Stellenkomplement zu statt NOT. ist Stellenkomplement . ANMERKUNG BESTIMMUNG DURCH NOT-KOMPONENTEN Bestimmung durch NOTKomponenten Das Stellenkomplement zu einem n-stelligen Booleschen Wort kann daher sehr einfach durch n parallel komponierte NOT-Komponenten bestimmt werden. 5.2.4.2 L15-12: Negation einer Zahl im Bereichskomplement: Ausführung Der folgende Satz zeigt einen einfachen Weg um die Negation einer Zahl im Bereichskomplement über das Stellenkomplement zu gewinnen. Negation einer Zahl im Bereichskomplement, Stellenkomplement SATZ NEGATION VON GANZEN ZAHLEN IN BEREICHSKOMPLEMENT-DARSTELLUNG sei die zugehörige Bereichskomplement-Darstellung als n-stelliger Boolescher Vektor Für eine beliebige ganze Zahl gegeben, dann gilt: Negation von ganzen Zahlen in Bereichskomplement-Darstellung ANMERKUNG Bevor wir Beispiele zu diesem Satz angeben, beachten Sie zunächst folgende Punkte: z Man beachte, dass die mit nStellen darstellbare Zahl z Achten Sie auch darauf, dass die Operation nicht zu dem angegebenen Zahlenbereich gehört. heißt und damit ein n-stelliges Ergebnis garantiert wird. Aufgabe 1: Welche ganze Zahlen kann man bei n = 5 darstellen. Eine der Zahlen kann man nicht negieren. Welche ist es und warum? Seite 233 von 272 27.01.2009 Antwort: kleinste Zahl:- 24 = -16 größte Zahl: 24 - 1 = 15 -16 kann man bei n = 5 nicht negieren, da man für die Zahl +16 mindestens 6 Stellen benötigt. 5.2.4.3 L15-13: Negation einer Zahl im Bereichskomplement: Beispiel Auf der vorigen Seite haben wir den folgenden Satz eingeführt: SATZ NEGATION VON GANZEN ZAHLEN IN BEREICHSKOMPLEMENT-DARSTELLUNG sei die zugehörige Bereichskomplement-Darstellung als n-stelliger Boolescher Vektor Für eine beliebige ganze Zahl gegeben, dann gilt: Negation von ganzen Zahlen in Bereichskomplement-Darstellung Beispiel Negation einer Zahl im Bereichskomplement Sei n = 4. Darstellbarer Zahlenbereich: [-8, 7]. Aussage des Satzes für Zahlen aus [-7, 7]. z Wir betrachten die Zahl B = -3 mit Dann ist z Wir betrachten die Zahl B = 0 mit der Darstellung . Dann muss -B Negation einer Zahl im Bereichskomplement = B sein. Wir berechnen: . z Wir betrachten nun B = -810 mit der Darstellung . Wir berechnen zunächst die eigentliche Summe: . . Damit haben wir wieder dieselbe Belegung wie für -810 erhalten, was offensichtlich falsch ist. Beachten Sie dabei, dass 8 nicht zum Wertebereich gehört und der Prozessor diese Tatsache melden muss, damit mit diesem falschen Ergebnis nicht weiter gerechnet wird. Seite 234 von 272 27.01.2009 Dezimaldarstellung Bereichskomplement-Darstellung +7 OLLL +3 OOLL +0 OOOO -1 LLLL -3 LLOL -8 LOOO Tabelle 73 : Negation einer ganzen Zahl im Bereichskomplement 5.2.4.4 L15-14: Negation einer Zahl im Bereichskomplement: Beweisplan SATZ NEGATION VON GANZEN ZAHLEN IN BEREICHSKOMPLEMENT-SCHREIBWEISE Für alle ganzen Zahlen mit gilt für - B: Negation von ganzen Zahlen in Bereichskomplement-Schreibweise Beweisplan: Wir zeigen den Satz in vier Teilschritten: 1. 2. Negation einer Zahl im Bereichskomplement 3. 4. 5.2.4.5 L15-14a: Negation einer Zahl im Bereichskomplement: Hilfssatz 1 SATZ NEGATION VON GANZEN ZAHLEN IN BEREICHSKOMPLEMENT-SCHREIBWEISE Hilfssatz 1 Negation von ganzen Zahlen in Bereichskomplement-Schreibweise Seite 235 von 272 27.01.2009 Für alle ganzen Zahlen gilt für -B: mit BEWEIS HILFSSATZ 1 Sei , dann kann man B wie folgt darstellen: Daher gilt für den negierten Wert -B nach Multiplikation beider Seiten mit -1: , um in der Gleichung für -B den Wert 0 in der Form Wir nutzen die Summenformel zu ergänzen: Hilfssatz 1 Diese Darstellung ordnen wir um: und fassen die geklammerten Teilterme zusammen: 5.2.4.6 L15-14b: Negation einer Zahl im Bereichskomplement: Hilfssatz 2 SATZ NEGATION VON GANZEN ZAHLEN IN BEREICHSKOMPLEMENT-SCHREIBWEISE Hilfssatz 2 Für alle ganzen Zahlen Negation von ganzen Zahlen in Bereichskomplement-Schreibweise mit gilt für -B: Seite 236 von 272 27.01.2009 BEWEIS HILFSSATZ 2 Es gilt nach Hilfssatz 1: Hilfssatz 2 Für Boolesche Werte : Dies zeigt man durch Einsetzen der beiden für b möglichen Werte O und L. Wir substituieren daher gilt und erhalten: 5.2.4.7 L15-14c: Negation einer Zahl im Bereichskomplement: Hilfssatz 3 SATZ NEGATION VON GANZEN ZAHLEN IN BEREICHSKOMPLEMENT-SCHREIBWEISE Hilfssatz 3 Für alle ganzen Zahlen Negation von ganzen Zahlen in Bereichskomplement-Schreibweise gilt für -B: mit BEWEIS HILFSSATZ 3 Es gilt nach Hilfssatz 2: Bleibt zu zeigen, dass dieses Ergebnis immer n-stellig ist und dass damit das Ergebnis der Operation + gleich dem der Operation Für ( n-1)-stellige Dualzahlen gilt: Für ist: Hilfssatz 3 ist Für ist Seite 237 von 272 27.01.2009 addieren wir zu den Intervallgrenzen jeweils 1 hinzu: addieren wir zu den Intervallgrenzen jeweils hinzu: Tabelle 74 Fasst man beide Bereiche zusammen, dann gilt die aufgestellte Gleichung für alle B mit: Allerdings kann man nicht mehr mit n Stellen repräsentieren. Daher haben wir den Bereich auf eingeschränkt und können dann + durch ersetzen: , da für diesen Zahlenbereich gilt,dass die Negation von B n-stellig darstellbar ist. 5.2.4.8 L15-14d: Negation einer Zahl im Bereichskomplement: Hilfssatz4 SATZ NEGATION VON GANZEN ZAHLEN IN BEREICHSKOMPLEMENT-SCHREIBWEISE Hilfssatz 4 Für alle ganzen Zahlen mit gilt für -B: Negation von ganzen Zahlen in Bereichskomplement-Schreibweise BEWEIS HILFSSATZ 4 Es gilt nach Hilfssatz 3: Mit der Definition von Hilfssatz 4 können wir schreiben: Seite 238 von 272 27.01.2009 Beispiel Negation von ganzen Zahlen in Bereichskomplementschreibweise Sei die Stellenzahl n = 8 und die betrachtete Zahl sei . Dann ist Negation von ganzen Zahlen in Bereichskomplementschreibweise Dann gilt aufgrund des Satzes die Gleichung: 5.2.5 Komplementärzahlen 5.2.5.1 L15-15: Negation einer Zahl im Bereichskomplement als Boolesches Wort SATZ ERMITTLUNG BOOLESCHER WÖRTER KOMPLEMENTÄRER ZAHLEN B, -B sei die zugehörige Bereichskomplement-Darstellung als n-stelliger Boolescher Vektor Für eine beliebige ganze Zahl gegeben, dann gilt: Wir bemerken, dass die Umsetzung dieser Gleichung in ein Schaltnetz einfach ist, die Booleschen Werte ganzzahlige Operanden führt die Addition mit einem konstanten Booleschen Wort Ermittlung Boolescher Wörter komplementärer Zahlen werden jeweils negiert und ein Addiernetz für n-stellige durch. Wir beweisen nun diesen Satz und geben auf der nächsten Seite Beispiele an. BEWEIS Aufgrund des vorigen Satzes hatten wir gezeigt, dass gilt: . Wir können zu diesen Zahlen die Booleschen Wörter bestimmen: Wegen gilt: Seite 239 von 272 27.01.2009 5.2.5.2 L15-16: Wandlungsregel für ganze Zahlen suchen wir die Bereichskomplement-Darstellung als n-stelliges Boolesches Wort: Für eine beliebige ganze Zahl Dabei gilt: für für mit Beispiel Umwandlung der negativen Zahl in die 8-stellige Bereichskomplement-Darstellung Die zu wandelnde Zahl liegt im zulässigen Intervall und ist negativ. Daher starten wir mit der Bestimmung von: Nun können wir mit der eigentlichen Wandlung beginnen: Wir überprüfen, ob dieses Wort wieder korrekt zurückgewandelt werden kann, in dem wir die Umkehrfunktion anwenden: Aufgabe 1: Sei und . Ermitteln Sie das zugehörige Boolesche Wort. Antwort: Seite 240 von 272 27.01.2009 Probe: 5.2.6 Addition und Subtraktion 5.2.6.1 L15-17: Addition und Subtraktion von Zahlen im Bereichskomplement Wir betrachten nun die Addition zweier beliebiger ganzer Zahlen A und B mit: Die entsprechende Bereichskomplement-Darstellung bezeichnen wir mit bzw. Addition und Subtraktion von Zahlen in Bereichskomplementdarstellung Dann kann man bei gegebenen Booleschen Wörtern a und b die Werte von A und B bestimmen, wie wir dies im vorigen Abschnitt gezeigt haben: mit ANMERKUNG KEINE FALLUNTERSCHEIDUNG BEI ADDITION ODER SUBTRAKTION keine Fallunterscheidung bei Addition oder Subtraktion Der große Vorteil der Bereichskomplement-Darstellung besteht darin, dass bei Addition zweier Zahlen keine Fallunterscheidungen hinsichtlich Betrag und Vorzeichen erforderlich sind. Vielmehr besitzt auch die Vorzeichenstelle einen Wert mit einem allerdings negativen Gewicht, so dass damit gerechnet werden kann. . Dabei kann es von der Stelle n-1 einen Unabhängig davon, ob A oder B negativ sind, werden die Zahlen einfach addiert, d.h., wir bilden A + B bzw. n Seite 241 von 272 27.01.2009 Übertrag geben, dessen Gewicht ist und der mit den addierten Vorzeichenstellen und deren Gewicht und das Ergebnis dieser Aufrechnung zu diskutieren. aufzurechnen ist. Daher sind verschiedene Sonderfälle 5.2.6.2 L15-18: Subtraktion Grundlage der Subtraktion Der Subtrahend B wird in Funktionen: ist die Gleichung B gewandelt und dann addiert. Ein Schaltnetz zur Subtraktion von Zahlen in Bereichskomplement-Darstellung implementiert daher die Bei der konkreten Implementierung wendet man allerdings einen Trick an. So setzt man die für Addition der 1 kein eigenes Addiernetz ein, sondern setzt den bei einem "normalen Addiernetz" vorhandenen Übertragseingang . Dieser Eingang ist nur deshalb vorhanden, um die Stufen des Addiernetzes mit gleicher Struktur zu versehen. Er wird beim Addieren gegebener ganzer Zahlen auf gesetzt. Wir rechnen also in Wirklichkeit mit einer anderen Additions-Funktion mit drei Summanden, wobei der dritte nur eine Stelle besitzt: Addition und Subtraktion von Zahlen in Bereichskomplementdarstellung Dann erhalten wir: und Dabei spielt es keine Rolle, ob einer der Operanden eine negative ganze Zahl darstellt. Abbildung 125 zeigt die entsprechende Implementierung. Seite 242 von 272 27.01.2009 Abbildung 125 : Subtraktionsnetz für vierstellige Operanden unter Verwendung eines Addiernetzes 5.2.6.3 L15-19: Zahlenbereichsüberschreitungen Bei Addition und Subraktion können Zahlenbereichsüberschreitungen auftreten, die natürlich vom Prozessor erkannt und gemeldet werden müssen. Andernfalls könnte Addition und Subtraktion von Zahlen in Bereichskomplementdarstellung der Programmierer eine böse Überraschung erleben: die Addition zweier positiver Zahlen kann eine negative Zahl ergeben. Beispiel Zahlenbereichsüberschreitung Seien und , dann ist . Wenn wir diese Wörter als Bereichskomplement-Darstellung interpretieren, dann gilt: , , Zahlenbereichsüberschreitung also Die Aufgabe einer Schaltung für die Addition von ganzen Zahlen besteht also nicht nur darin, A gilt. Das Überschreitungsbit ist +n B zu bilden, vielmehr soll auch erkannt werden, ob , wenn die beiden Vorzeichenbit der Summanden gleich sind, das des Ergebnisses sich aber davon unterscheidet. Seite 243 von 272 27.01.2009 Bei der Implementierung des Überschreitungsbits nutzen wir aus, dass intern die Überträge der einzelnen Stufen gilt: gebildet werden. Man kann zeigen, dass dann auch Abbildung 126 zeigt das Schaltnetz mit dem Überschreitungsbit. Abbildung 126 : Subtraktionsnetz für vierstellige Operanden unter Verwendung eines Addiernetzes mit Überschreitungsbit An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 244 von 272 27.01.2009 Abbildung 127 : Subtraktionsnetz 5.2.7 L15-20: Zusammenfassung z Bei der Zahlendarstellung durch Betrag und Vorzeichen legt die n-te Stelle eines Booleschen Wortes das Vorzeichen fest und die anderen n-1 Stellen repräsentieren den Betrag. Nachteile der Zahlendarstellung durch Betrag und Vorzeichen: Es gibt zwei Repräsentationen der 0, nämlich +0 und -0 und vor Beginn einer Addition oder Subtraktion ist durch Vorzeichen- und Betragsvergleich festzustellen, welche Operation erforderlich ist. Auch bei der Bereichskomplementdarstellung repräsentiert die n-te Stelle das Vorzeichen und die Darstellung für positive Zahlen ist gleich. Allerdings wird bei z negativem Vorzeichen der Wert 2 n-1 vom Betrag der Zahl abgezogen. Mit der Funktion bool ( x) kann man zu einer Zahl x das zugehörige Boolesche Wort ermitteln. z z z Eine Zahl in Bereichskomplementdarstellung negiert man, indem man das Stellenkomplement dieser Zahl bildet und 1 dazu addiert. Dadurch kann man die Subtraktion vereinfachen (man addiert einfach die negierte Zahl), so dass kein aufwändiges Subtraktionsnetz erforderlich ist. Auf Zahlenbereichsüberschreitungen muss geachtet werden, da sonst z.B. die Addition zweier positiver Zahlen eine negative Zahl ergeben könnte. z z bk Seite 245 von 272 27.01.2009 LERNZIELE Wissen (Begriffe beschreiben/definieren können) z Stellenkomplement [ L15-11 L15-12 ] Verstehen (Konzepte erklären können) z z z Nachteile der Zahlendarstellung durch Betrag und Vorzeichen [ L15-3 L15-4 ] Rückwandlung des Bereichskomplementes in ein Boolesches Wort [ L15-8 ] Umkehrbarkeit der Wandlung des Bereichskomplementes in ein Boolesches Wort [ L15-10 ] Fähigkeiten (neue Kenntnisse anwenden können) z z z z z z Zahlendarstellung durch Betrag und Vorzeichen [ L15-2 L15-9 ] Bereichskomplementdarstellung [ L15-5 L15-6 L15-7 L15-9 ] Negation einer Zahl im Bereichskomplement [ L15-11 L15-12 L15-13 L15-14 L15-14a L15-14b L15-14c L15-14d ] Ermittlung Boolescher Wörter komplementärer Zahlen [ L15-15 ] Umwandlung negativer Zahlen in ein Boolesches Wort [ L15-16 ] Addition und Subtraktion von Zahlen in Bereichskomplementdarstellung [ L15-17 L15-18 L15-19 ] 5.2.8 Training 5.2.8.1 L15-21: Aufgaben Aufgabe 1: Interpretieren Sie die folgenden Boolschen Wörter als Zahlen in Betrag- und Vorzeichen-Darstellung bzw. in Bereichskomplement-Darstellung. 1. 2. OLOLLOL LLLLOOL Antwort: 1. 2. Seite 246 von 272 27.01.2009 Aufgabe 2: Gibt es Boolesche Wörter, die in beiden Interpretationen dieselben Zahlen ergeben? Antwort: Ja, alle positiven Zahlen im Zahlenbereich. Aufgabe 3: Wir betrachten ganze Zahlen im Intervall [-16, 15] und die zugehörigen Booleschen Wörter in Bereichskomplement-Darstellung. Ermitteln Sie jeweils die Übertragsstellen und zur Interpretation der Summendarstellung 1. 2. Summand A = - 1210 Summand B = - 410 Sind und gleich? Was bedeutet dies für die Interpretation des Ergebnisses. Führen Sie die gleiche Aufgaben für die Summanden -1210 und -510 durch Antwort: Bedeutung: Wegen ist der Wert -16 korrekt. , Bedeutung: Wegen ist der Wert 15 falsch. 5.2.8.2 L15-22: Selbsttest Aufgabe 1: Welche binären Darstellungen für ganze Zahlen kennen Sie? Geben Sie die Stellenwerte an. Seite 247 von 272 27.01.2009 Antwort: z Betrag und Vorzeichen Darstellung Vorzeichen (Stelle n) hat keinen Wert. z Vorzeichenstelle z Bereichskomplement-Darstellung hat den Wert hat den Wert . hat den Wert Aufgabe 2: Wie berechnet man aus einer Zahl im Bereich Antwort: Für eine beliebige ganze Zahl das Boolesche Wort in Bereichskomplement-Darstellung? bestimmt man die Bereichskomplement-Darstellung: Dabei gilt: für : für mit : Aufgabe 3: Geben Sie eine Implementierung für an. Antwort: Seite 248 von 272 27.01.2009 Abbildung 128 Aufgabe 4: Geben Sie eine Implementierung für unter Verwendung von Addiernetz- und NOT-Komponente an. Antwort: Seite 249 von 272 27.01.2009 Abbildung 129 6 Grundlegende Komponenten für die Datenübertragung 6.1 L16: Grundlegende Komponenten für die Datenübertragung 6.1.1 L16-1: Überblick Bei der Übertragung von Daten von Datenquellen zu Datensenken spielt wie im ganzen Rechneraufbau die Frage der Kosten eine wichtige Rolle. Große Wortbreiten, die im Binärsystem begründet sind, bedeuten leider auch viele Übertragungsleitungen. Da man innerhalb eines Rechners Boolesche Wörter parallel überträgt, braucht man für jede Stelle eine eigene Leitung. Man versucht daher, solche Leitungen zu unterschiedlichen Zeiten für die Herstellung unterschiedlicher Verbindungen zu nutzen. Dies nennt man Zeitmultiplex (ähnlich wie beim Telefonnetz). Dabei entsteht das Problem, für die Übertragung zu einer bestimmten Zeit eine Quelle und eine Senke auszuwählen und eine Verbindung zu dem Bündel von Leitungen herzustellen. Hierzu stellen wir die übliche Schaltungstechnik zur Lösung dieser Aufgabe vor. LERNZIELE Seite 250 von 272 27.01.2009 Wissen (Begriffe beschreiben/definieren können) z z z z z Zeitmultiplexbetrieb [ L16-2 L16-3 L16-4 L16-5 ] Bus [ L16-4 L16-5 ] 1_aus_n_Codierer [ L16-6 L16-7 L16-8 L16-8a L16-8b ] Multiplexer [ L16-3 L16-4 L16-9 L16-10 L16-11 ] Demultiplexer [ L16-3 L16-4 L16-12 ] Verstehen (Konzepte erklären können) Bearbeitungsdauer: ca. 40 min z z z 1_aus_n_Codierer [ L16-6 L16-7 L16-8 L16-8a L16-8b ] Multiplexer [ L16-3 L16-4 L16-9 L16-10 L16-11 ] Demultiplexer [ L16-3 L16-4 L16-12 ] Fähigkeiten (neue Kenntnisse anwenden können) z z 1_aus_n_Codierer entwerfen [ L16-6 L16-14 ] De- Multiplexer entwerfen [ L16-14 ] 6.1.2 Zeitmultiplexbetrieb 6.1.2.1 L16-2: Zeitmultiplexbetrieb DEFINITION ZEITMULTIPLEXBETRIEB Zeitmultiplexbetrieb Mehrere Datenquellen, die in der Menge Die kostengünstigste Möglichkeit lässt zu jeder Zeit zusammengefasst sind, können mit mehreren Datensenken aus höchstens eine Verbindung bedeutet, dass zur Zeit eine Verbindung von der Quelle zur Senke von einer Quelle aus zu einer Senke aus verbunden werden. zu. eingerichtet wird. ausgehen. Dabei können wir von einer diskreten Zeit Auch wollen wir im Folgenden annehmen, dass es eine zentrale Einheit gibt, die jeweils festlegt, welche Quelle mit welcher Senke zu verbinden ist. Dies ist für Betrachtungen der Datenübertragung innerhalb eines Prozessors oder auch Rechners zulässig, bei Verbindung von Rechnern mit der Peripherie oder gar von Rechnern untereinander in Rechnernetzen ist die Vorstellung einer zentralen Steuerinstanz nicht mehr sinnvoll. Seite 251 von 272 27.01.2009 6.1.2.2 L16-3: Komponenten des Zeitmultiplexbetriebes Abbildung 130 beschreibt die notwendigen Komponenten zum Aufbau einer solchen allgemeinen, schaltbaren Übertragungsstrecke, die es in unterschiedlichen Spezialisierungen gibt. DEFINITION MULTIPLEXER Multiplexer Multiplexer heißt eine Einheit, die aus mehreren Quellen zu jedem Zeitpunkt eine auswählen kann. Dann wird nur das von dieser Quelle gesendete Wort auf den Ausgang des Multiplexers durchgeschaltet. DEFINITION DEMULTIPLEXER Demultiplexer Demultiplexer ist die Einheit, die ein Wort von einer Datenleitung zu jeder Zeit auf eine von mehreren Senken verteilen kann. Dabei haben wir die Funktionen von Multiplexer und Demultiplexer dadurch veranschaulicht, dass wir einen Schalter darstellen, der zu jeder Zeit in eine andere Verbindungsposition gebracht werden kann. Eine zentrale Steuereinheit stellt die in einem "Programm" vorgesehene Verbindung abhängig von der aktuellen Zeit ein. Zeitmultiplexbetrieb Abbildung 130 : Zeitmultiplexbetrieb bei der Datenübertragung Die Schalterstellung von Multiplexer und Demultiplexer im Bild entspricht der Verbindungsvorschrift zur Zeit damit Quelle mit Senke verbunden. Zur Zeit : Es ist Quellenleitung 1 mit Senkenleitung 1 und soll der Multiplexer auf Quellenleitung 0 und der Demultiplexer auf Senkenleitung 3 gestellt werden. Dann sind und d verbunden. Seite 252 von 272 27.01.2009 6.1.2.3 L16-4: Komponenten des Zeitmultiplexbetriebes In folgender Schaltung ist das Prinzip des Multiplexers und Demultiplexers nochmals veranschaulicht. Links sind die Quellen, die durchgeschaltet werden sollen (als Button, die man ein- und ausschalten kann dargestellt) , rechts sind die Senken, auf die durchgeschaltet werden kann (als Lampen dargestellt) . Quellen und Senken können über den Multiplexer, bzw. Demultiplexer miteinander verbunden werden. Die Auswahl erfolgt hierbei durch die Schalter , bzw. , . Ist beispielsweise wird vom Multiplexer die Quelle und angesteuert. Ist zum Beispiel und Erzeugt also in dieser Situation die Quelle dagegen den Wert Für diese Werte von ausgewählt und der von ihr erzeugte Wert auf die gemeinsam benutzte Leitung geschaltet. Der Demultiplexer durch den Wert dann wird die Senke (gedrückte Taste) , so leuchtet die Lampe an der ausgewählten Datensenke , dann leuchtet die Lampe bei Senke , , , kann die Quelle ausgewählt und der über die Leitung transportierte Wert zu dieser Senke geleitet. . Liefert die Quelle nicht, obwohl eine Verbindung eingerichtet wurde. keine Senke außer beeinflussen und keine andere Quelle kann diese Senke beeinflussen. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Zeitmultiplexbetrieb, Multiplexer, Demultiplexer, Bus, Steuereinheit Abbildung 131 : Zeitmultiplexbetrieb 6.1.2.4 L16-5: Komponenten des Zeitmultiplexbetriebes DEFINITION BUS Bus Eine im Multiplexbetrieb benutzte Leitung oder ein Bündel von Leitungen (z.B. 32 parallel geführte Leitungen) heißt Bus. In der zentralen Steuereinheit haben wir in Abbildung 130 eine Tabelle vorgesehen, die für verschiedene Zeitpunkte die herzustellenden Verbindungen speichert. Dabei werden die ausgewählten Leitungsnummern im Rechner als Boolesche Repräsentation einer Dualzahl dargestellt, hier sind sie der Übersichtlichkeit wegen als Dezimalzahl angegeben. In den folgenden Präsentationseinheiten zeigen wir, wie Multiplexer und Demultiplexer aus uns bekannten Einheiten aufgebaut werden können. Dabei führen wir zunächst eine Einheit ein, die zur Auswahl der jeweiligen Busquelle und der jeweiligen Bussenke dient, den 1_aus-n_Codierer. Dieser Baustein ist Seite 253 von 272 27.01.2009 allerdings universeller einsetzbar, wie wir noch zeigen werden. Sei eine Dualzahl, d.h. ein Wort über mit dem Wert . Dann ist Zeitmultiplexbetrieb mit und . Dies bedeutet, dass eine Dualzahl Stelle für Stelle in ein Boolesches Wort gewandelt werden kann. AUFGABE 1: Nennen Sie ein Beispiel einer Busanwendung aus dem Alltag. Antwort: Telefonverbindung, Internetverbindung. 6.1.3 1_aus_n_Codierer 6.1.3.1 L16-6: 1_aus_n_Codierer _Codierer zeigen jeweils genau einem aus n möglichen Kandidaten (Quellen, Senken) an, dass er ausgewählt wurde. Wir betrachten n Komponenten, die von nummeriert seien. Zur Implementierung einer solchen Kandidatenauswahl führen wir eine spezielle Codierfunktion ein: die durch die Gleichung 1_aus_n_Codierer mit definiert ist. Wegen des Zusammenhangs des Variablenindex mit den Dualzahlen ist der kleinste Index 0 und nicht wie sonst üblich 1. Die Funktion dual bildet n-stellige Boolesche Wörter auf eine Teilmenge der natürlichen Zahlen Dezimalzahlendarstellung wählen. (wird durch den nachgestellten Index Sei ein n-stelliges Wort über . Dann ist ab, wobei wir der besseren Verständlichkeit wegen die festgelegt). mit und . Seite 254 von 272 27.01.2009 Die -te Stelle des Wortes nimmt genau dann den Wert an, wenn ist. ausgewählte Komponente Tabelle 75 : Wertetabelle eines 1_aus_4_Codierers Eine Schaltungskomponente, die diese Funktion ausführt, heißt Beispiel In Tabelle 75 steht in der vorletzten Zeile _Codierer (auch Decodierer genannt) . : Wegen ist nur für Die Booleschen Funktionen wahr und daher ist und alle anderen mit sind . besitzen jeweils nur einen einschlägigen Index. Entsprechend erhält man folgende Implementierung: Beachten Sie, dass wir die b-Werte wie üblich von 1 beginnend zählen. Bei den e-Werten weichen wir deshalb von dieser Zählweise ab, um die Definition von einfach zu halten. ( ). Immer wenn ein Bezug einer Nummer zu einer Dualzahl hergestellt wird, beginnt man in der Informatik mit dem Zählen bei 0, also dem Wert der ersten Belegung in unseren Tabellen: . Die speziellen Booleschen Terme und heißen auch Literale zum Namen . Ein Monom ist eine -Verknüpfung von Literalen, in der kein Namen mehr als einmal auftritt. Ein Minterm einer n-stelligen Booleschen Funktion ist ein Monom, in dem jeder der n Namen einer Funktion genau einmal auftritt. AUFGABE 1: Seite 255 von 272 27.01.2009 Implementieren Sie mit LogiFlash einen _Codierer, wie er in Tabelle 75 definiert ist. Verwenden Sie höchstens die vorgegebenen Komponenten. Sie können durch Drücken auf "Test" überprüfen, ob die Schaltung korrekt implementiert ist. An dieser Stelle ist in der HTML-Version eine Animation enthalten. 1_aus_n_Codierer entwerfen Abbildung 132 : 1_aus_n_Codierer 6.1.3.2 L16-7: Einsatzgebiete für 1_aus_n_Codierer z Speicher im Rechner sind matrixförmig aufgebaut. 1_aus_n_Codierer Jeder Zeile ist eine Nummer (Adresse) von 0 bis zugeordnet, wenn die Nummer aus m Bit besteht. Um im Beispiel von Abbildung 133 die eingefärbte Zeile aus den insgesamt 8 Zeilen auszuwählen, legt man die Adresse an die Eingänge eines 1_aus_8_Codierers mit dem Ziel den Inhalt der eingefärbten Zellen an die Peripherie des Speichers zu transportieren. Hierzu stelle man sich vor, dass alle senkrecht übereinander liegenden 1Bit-Speicher an einen Bus angeschlossen sind und damit die möglichen Quellen bilden. Wir haben also einen Bus mit 32 Leitungen, wobei auf eine Busleitung immer der 1-Bit-Speicher in der zugeordneten Spalte mit der eingestellten Zeilennummer zugeschaltet werden. In diesem Beispiel haben wir nur eine Quelle, nämlich die unten gezeichnete Speicherzeile für ein Wort. Dies beschreibt den Lesevorgang bei m Adressleitungen und n-stelligen Wörtern: Seite 256 von 272 27.01.2009 Abbildung 133 : 1_aus_8_Codierer z Auswahl von Komponenten Ein anderes Beispiel haben wir in (Arztpraxis) bereits vorgestellt. Ein 1_aus_2_Codierer legt dort fest, ob die Anzeige für Privat- oder für Kassenpatienten eingeschaltet wird (privat/kasse). 6.1.3.3 L16-8: Hierarchie von 1_aus_n_Codierern Bei manchen Aufgabenstellungen bietet es sich an, die Auswahl eines Elementes hierarchisch durchzuführen. 1_aus_n_Codierer Codiererhierarchie Beispiel Codiererhierarchie Nehmen wir beispielsweise an, dass wir in einer Hierarchie angeordnete Elemente ansteuern sollen. Die Hierarchie bestehe aus 2 Ebenen. In der oberen Ebene unterscheiden wir im Beispiel zwei Mengen von Elementen, die wir mit A und B bezeichnen. Zu A gehören 4 Elemente und zu B zwei. Grundsätzlich können wir das Problem mit einem _Codierer lösen, wie in folgender Abbildung gezeigt wird. Dabei werden die Elemente durch Lampen repräsentiert. Der Index im Namen gibt jeweils die Zugehörigkeit zur Menge A oder B an. Die gezeigte Schaltung hat dann Nachteile, wenn die Elemente von A und diejenigen von B räumlich weit auseinander liegen, da von dem 1_aus_6_Codierer viele Leitungen zu A und zu B gehen. Die Einführung einer Codiererhierarchie kann die Situation verbessern. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 257 von 272 27.01.2009 Abbildung 134 : Codiererhierarchie Um hierarchische Strukturen zu ermöglichen, sind _Codierer in der bisherigen Form noch nicht geeignet. Wir ergänzen sie vielmehr um einen weiteren Eingang und führen die zusätzliche boolesche Größe en ( enable) ein und definieren: mit Dabei ist mit Für sind alle für . Als Folge wird in diesem Fall keine an diesen Codierer angeschlossene Komponente ausgewählt. Damit können wir mit der Funktion _Codierer aufbauen. Das folgende Bild zeigt ein Schaltungssymbol für einen hierarchische _Codierer mit enable-Eingang. Seite 258 von 272 27.01.2009 Abbildung 135 : Symbol eine _Codierers mit enable-Eingang Codierer mit enable-Eingang AUFGABE 1: Implementieren Sie mit LogiFlash einen _Codierer mit enable-Eingang. Verwenden Sie die vorgegebenen Komponenten. Sie können durch Drücken auf „Test“ überprüfen, ob die Schaltung korrekt implementiert ist. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 259 von 272 27.01.2009 Abbildung 136 : Codierer mit enable-Eingang AUFGABE 2: Wofür braucht man den zusätzlichen Eingang en in einem _Codierer? 6.1.3.4 L16-8a: 1_aus_n_Codierer_Hierarchie Die folgende LogiFlash-Anwendung zeigt einen _Codierer unter Verwendung von einem Eingang. An dieser Stelle ist in der HTML-Version eine Animation enthalten. - und zwei _Codierern jeweils mit enable Seite 260 von 272 27.01.2009 Abbildung 137 : 1_aus_8_Codierer In nachfolgender Tabelle sind die Belegungen auch für und aufgeführt. Wenn beispielsweise ist, dann sind alle Ausgänge . Insgesamt implementiert das Schaltnetz die Funktion: 1_aus_n_Codierer In wird gesetzt und (enabled) sein. und mit den Ausgängen des ersten Codierers verbunden. Damit kann immer nur genau einer der nachfolgenden Codierer aktiv ausgewählte Komponente Seite 261 von 272 27.01.2009 Tabelle 76 : Wertetabelle mit Belegungen der enable-Eingänge In Tabelle 76 sieht man, dass für und genau einer der Ausgänge bis den Wert annimmt und für und einer der Augänge bis wird. Multiplexer entwerfen AUFGABE 1: Verdrahten Sie die Komponenten, die sich auf der Logiflash-Oberfläche befinden, so miteinander, dass Sie aus den 3 2:1-Multiplexern einen 4:1-Multiplexer erhalten. Ob Ihre Implementierung richtig ist, können Sie mit dem Button „Test“ überprüfen. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 262 von 272 27.01.2009 Abbildung 138 : 4:1-Multiplexer aus 2:1-Multiplexern 6.1.3.5 L16-8b: Verteilte Implementierung eines 1_aus_n_Codierers Folgende Abbildung zeigt eine mögliche interne Struktur eines kompakt aufgebauten _Codierers. Abbildung 139 : interne Struktur ein 1_aus_2_Codierers Eine verteilte Implementierung eines Schaltungsträgern (Platinen) untergebracht. Mit _Codierer zeigt das nächste Bild. Die Verknüpfungsglieder des wählt man eine von zwei Platinen an, während und _Codierers sind auf unterschiedlichen Teile entweder in Platine 2 ( ) oder aber in Platine 1 ( ) aktivieren. Man spricht dabei von Adressen der aktivierten Einheiten. Adressen zählt man bei 0 beginnend. Man erhält sie durch Anwendung der Funktion dual auf die Belegungen hat im Beispiel Adresse 1 ( ) , der untere Adresse 0 ( ) .Von den . Der obere _Codierer _Codierern werden jeweils 4 Adressen unterschieden: 0, 1, 2 und 3. Zusammengefasst werden also die Adressen 0, 1, 2, 3 bzw. 4+0, 4+1, 4+2, 4+3 entsprechend den durch drei Stellen darstellbaren Dualzahlen unterschieden. Seite 263 von 272 27.01.2009 Die Funktion dual bildet n-stellige Boolesche Wörter auf eineTeilmenge der natürlichen Zahlen ab, wobei wir der besseren Verständlichkeit wegen, die Dezimalzahlendarstellung wählen (wird durch den nachgestellten Index 10 festgelegt). . Dann ist mit Sei ein n-stelliges Wort über und 1_aus_n_Codierer Abbildung 140 : Verteilte Realisierung eines 1_aus_8_Codierers Mit wird beispielsweise Daher wird die Adresse und damit Platine 2 angesteuert. Wegen wird , während alle anderen Werte sind. angesprochen. 6.1.4 Multiplexer 6.1.4.1 L16-9: Auswahlschaltung: Multiplexer 1 Multiplexer Seite 264 von 272 27.01.2009 Mehrere Quellen stehen zur Verfügung, aber nur eine von ihnen soll jeweils auf den Ausgang einer Auswahlschaltung durchgeschaltet werden. DEFINITION Sei die Anzahl der Quellen, von denen jeweils eine ausgewählt werden soll. Seien die Quellsignale mit (Daten) und die Auswahlsignale mit bezeichnet. Dann ist die Auswahlfunktion mit Zusätzlich gilt für die Quersumme Damit ist immer genau einer der . - Werte gleich , alle anderen sind genau dann, wenn und , d.h. . Betrachten wir als Beispiel die Aufgabe, aus 4 Quellen, die 1-stellige Boolesche Wörter liefern, jeweils genau eine Quelle auszuwählen. Abbildung 141 zeigt eine Implementierung, die die Funktion impementiert: Abbildung 141 : Prinzip eines 1-stelligen Multiplexers mit 4 Quellen , , , Seite 265 von 272 27.01.2009 Gehen wir davon aus, dass zu jedem Zeitpunkt genau einer der Werte gilt , , , mit belegt ist, die übrigen Werte mit . Sei mit mit belegt, dann . 6.1.4.2 L16-10: Auswahlschaltung Multiplexer 2 Wir fügen nun Komponenten vom Typ 1_aus_n_Codierer und vom Typ MX zu einem Baustein zusammen. Er hat als Eingänge die Nummer der ausgewählten Quelle und d-Bits von den möglichen Quellen. Multiplexer DEFINITION FUNKTION MUX Mit k: Anzahl der Quellen sowie m: Stellenzahl der Dualzahl zur Nummerierung von k Quellen definieren wir die Funktion : Funktion MUX Dabei ist Das folgende Bild zeigt eine entsprechende Struktur und das hier gewählte Symbol für solche Multiplexer. Seite 266 von 272 27.01.2009 Abbildung 142 : Aufbau eines 1-stelligen Multiplexers mit 4 Quellen mit 1_aus_4-Codieren und zugehöriges Symbol Aufgabe 1: Wie ist der Zusammenhang des 2:1 Multiplexers, den wir im Rahmen des Entwicklungssatzes eingeführt haben zu dieser Multiplexerdefinition. Antwort: Die Definition in diesem Abschnitt ist universeller. Der Multiplexer im früheren Abschnitt entspricht einem . 6.1.4.3 L16-11: Multiplexer Um n-stellige Boolesche Wörter zu schalten, benötigt man n der bisher betrachteten 1-stelligen Multiplexer nach Abbildung 141. Die Funktion eines n-stelligen Multiplexers, der eine von k Quellen auswählt ist: mit . Dabei ist: Multiplexer Beispiel Ein n-stelliger Multiplexer wählt also aus k n-stelligen Booleschen Wörtern, das i -te aus. Dabei wird i aus der Belegung Abbildung 143 zeigt ein entsprechendes Symbol. Die n-Stelligkeit der durchzuschaltenden Wörter wird durch die Indizierung bestimmt. angezeigt. Seite 267 von 272 27.01.2009 Abbildung 143 : Symbol eines n-stelligen 4:1Multiplexers 6.1.5 L16-12: Demultiplexer Die Aufgabe von Demultiplexern besteht darin, ein Wort an einen von mehreren möglichen Empfängern (Senke) weiterzugeben. Sei die Wortbreite zunächst 1: Es gilt entsprechend zum Multiplexer: Dabei ist Mit Demultiplexer gilt: Beispiel Seite 268 von 272 27.01.2009 Dabei muss den entsprechenden Datensenken mit durch zusätzliche Auswertung von Sonst kann man nicht unterscheiden, ob und d oder ( Abbildung 144) die Ungültigkeit des Wertes bekannt sein. . Abbildung 144 dient zur Veranschaulichung. Gesteuert durch die Ausgänge des _Codierers wird der Wert von d auf einen von vier Ausgängen durchgeschaltet. Ähnlich wie beim Multiplexer kann man auch hier eine Verallgemeinerung für Wortbreiten vornehmen. Dies ist in Abbildung 144 im Symbol des Demultiplexers entsprechend aufgeführt. Abbildung 144 : 1-stelliger Demultiplexer mit 4 Senken und zugehöriges Symbol für einen n-stelligen Demultiplexer mit 4 Senken 6.1.6 L16-13: Zusammenfassung In dieser Lektionseinheit wurden die grundlegenden Komponenten für die Datenübertragung eingeführt. Dabei wurden sowohl der Aufbau als auch die Funktionsweise _Codierers, des Multiplexers und des Demultiplexers beschrieben. Hierfür wurde auch der Zeitmultiplexbetrieb besprochen. des LERNZIELE Wissen (Begriffe beschreiben/definieren können) z z z Zeitmultiplexbetrieb [ L16-2 L16-3 L16-4 L16-5 ] Bus [ L16-4 L16-5 ] 1_aus_n_Codierer [ L16-6 L16-7 L16-8 L16-8a L16-8b ] Seite 269 von 272 27.01.2009 z z Multiplexer [ L16-3 L16-4 L16-9 L16-10 L16-11 ] Demultiplexer [ L16-3 L16-4 L16-12 ] Verstehen (Konzepte erklären können) z z z 1_aus_n_Codierer [ L16-6 L16-7 L16-8 L16-8a L16-8b ] Multiplexer [ L16-3 L16-4 L16-9 L16-10 L16-11 ] Demultiplexer [ L16-3 L16-4 L16-12 ] Fähigkeiten (neue Kenntnisse anwenden können) z z 1_aus_n_Codierer entwerfen [ L16-6 L16-14 ] De- Multiplexer entwerfen [ L16-14 ] 6.1.7 Training 6.1.7.1 L16-14: Aufgaben AUFGABE 1: Implementieren Sie den _Codierer mit enable-Eingang durch die Komponenten, die sich auf der Logiflash-Fläche befinden. (Buttons, Lampen und einem demux mit „non-selected output state “) An dieser Stelle ist in der HTML-Version eine Animation enthalten. 1_aus_n_Codierer entwerfen Abbildung 145 : 1_aus_4_Codierer mit enable Eingang Seite 270 von 272 27.01.2009 AUFGABE 2: Welche Aufgabe erfüllt ein Multiplexer? Antwort: Ein Multiplexer wählt zu jedem Zeitpunkt genau eine der angeschlossenen Quellen (Datenleitungen) aus. Nur das von dieser Quelle gesendete Wort wird auf den Ausgang des Multiplexers geschaltet. Implementieren Sie einen 1:2-Multiplexer mit einem vorgeschalteten _Codierer in Logiflash. Es sind mehr Komponenten auf der Logiflash-Oberfläche als benötigt werden. Zur Kontrolle können Sie ihre Implementierung mit dem „Test“-Button überprüfen lassen. An dieser Stelle ist in der HTML-Version eine Animation enthalten. De- Multiplexer entwerfen Abbildung 146 : Multiplexer AUFGABE 3: Welche Aufgabe erfüllt ein Demultiplexer? Antwort: Ein Demultiplexer schaltet zu jedem Zeitpunkt die eingehende Datenleitung auf genau eine der angeschlossenen Senken (Datenleitungen) durch. Er ist das „Gegenstück“ zum Multiplexer. _Codierer, um nur genau eine Senke auswählen zu Implementieren Sie einen Demultiplexer mit 4 Senken in Logiflash. Verwenden Sie einen geeigneten können. Auch bei dieser Teilaufgabe befinden sich mehr Komponenten als benötigt auf der Oberfläche. Das Ergebnis ist wieder mit „Test“ kontrollierbar. An dieser Stelle ist in der HTML-Version eine Animation enthalten. Seite 271 von 272 27.01.2009 Abbildung 147 : Demultiplexer AUFGABE 4: Bestimmen Sie die erforderliche Anzahl der einem Multiplexer/Demultiplexer zuzuführenden Adressleitungen, wenn 120 Register zum Auslesen bzw. Beschreiben adressiert werden sollen! Antwort: Die Anzahl der erforderlichen Adressleitungen ist AUFGABE 5: Welche Komponenten werden für den Zeitmultiplexbetrieb von Leitungen benötigt? Antwort: Multiplexer, Demultiplexer, Leitung (Leitungsbündel), Steuereinheit. Literaturreferenzen In dieser Variante des Moduls wurden keine Quellen verwendet Seite 272 von 272