Grundlagen der Technischen Informatik, Teil A: Schaltnetze Inhalt

Werbung
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
Herunterladen