391 92 4MB
German Pages [316] Year 2009
Grundlagen der Digitaltechnik von Prof. Dr.-Ing. Dr.-Ing.h.c. Dr.h.c. Hans Martin Lipp, Prof. Dr.-Ing. Jürgen Becker 6., überarbeitete Auflage
Oldenbourg Verlag München Wien
Prof. Dr.-Ing. Dr.-Ing.h.c. Dr.h.c. Lipp lehrte und forschte bis zu seiner Emeritierung 2000 an der Universität Karlsruhe am Institut für Technik der Informationsverarbeitung (ITIV). Er erhielt 1994 die Ehrendoktorwürde der Universität Islands in Reykjavik und 1997 die der Technischen Universität Budapest. 2004 wurde ihm die Verdienstmedaille der Universität Karlsruhe (TH) für sein besonderes Engagement bei den Auslandsbeziehungen der Universität verliehen. Prof. Dr.-Ing. Jürgen Becker erhielt 2001 den Ruf an die Universität Karlsruhe (TH) und übernahm die Leitung des Instituts für Technik der Informationsverarbeitung (ITIV) in der Fakultät für Elektrotechnik und Informationstechnik. 2003 wurde er mit dem Landeslehrpreis geehrt; seit 2005 ist er Prorektor für Lehre der Universität Karlsruhe.
Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar.
© 2008 Oldenbourg Wissenschaftsverlag GmbH Rosenheimer Straße 145, D -81671 München Telefon: (089) 4 50 51- 0 oldenbourg.de Das Werk einschließlich aller Abbildungen ist urheberrechtlich geschützt. Jede Verwertung außerhalb der Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Bearbeitung in elektronischen Systemen. Lektorat: Anton Schmid Herstellung: Sarah Voit Coverentwurf: Kochan & Partner, München Gedruckt auf säure- und chlorfreiem Papier Druck und Bindung: Druckhaus »Thomas Müntzer« GmbH, Bad Langensalza ISBN 978-3-486-58274-1
Inhalt Vorwort..................................................................................................................IX
1. Einführung......................................................................................................... 1 1.1 Zum Begriff Information............................................................................ 1 1.2 Behandlung von Information.................................................................... 3 1.3 Digitaltechnik als spezielle technische Lösung........................................ 5 2. Funktion und Struktur...................................................................................... 13 2.1 Der Systembegriff................................................................................... 13 2.2 Hierarchische Aufteilung komplexer Systeme........................................ 16 2.3 Systematischer Entwurf von digitaltechnischen Systemen.................... 19
3. Nachricht und Signal....................................................................................... 23 3.1 3.2 3.3 3.4 3.5 3.6 3.7
Information und Nachricht...................................................................... 23 Physikalische Größen als Nachrichtenträger......................................... 24 Kontinuierliche und diskrete Signale...................................................... 25 Signale mit begrenzter Zahl von Werten................................................ 27 Binärsignale............................................................................................ 28 Informationsgehalt.................................................................................. 31 Aufgaben................................................................................................ 32
4. Codes.............................................................................................................. 35 4.1 Code und Codewörter.............................................................................35 4.2 Codes für die Analog/Digitalumsetzung................................................. 36 4.3 Austauschcodes..................................................................................... 38 4.4 Codes für Fehlererkennung und -korrektur.............................................41
VI
Inhalt
4.5 Codes für die Nachrichtenübertragung, optimale Codes........................43 4.6 Polyadische Zahlensysteme................................................................... 46 4.7 Codewandlung........................................................................................56 4.8 Codeumschaltung...................................................................................57 4.9 Aufgaben................................................................................................ 60
5. Mathematische Grundlagen............................................................................ 65 5.1 Mengen und Mengenoperationen...........................................................65 5.2 Relationen...............................................................................................70 5.3 Grundlagen der Graphentheorie.............................................................75 5.4 Algebraische Strukturen, Boolesche Algebra......................................... 93 5.5 Aufgaben.............................................................................................. 104
6. Schaltalgebra.................................................................................................109 6.1 Schaltfunktionen................................................................................... 109 6.2 Graphische Darstellung von Schaltfunktionen......................................114 6.3 Typen von Schaltfunktionen................................................................. 117 6.4 Normalformen, Hauptsatz der Schaltalgebra........................................120 6.5 Basissysteme........................................................................................126 6.6 Entwicklungssatz der Schaltalgebra..................................................... 127 6.7 Belegungsblöcke und Terme, Primblöcke und Primterme....................131 6.8 Minimierung.......................................................................................... 139 6.9 Aufgaben...............................................................................................152
7. Bausteine der Digitaltechnik.......................................................................... 157 7.1 Zuordnungsschemata bei binären Größen........................................... 157 7.2 Binäre Schalter und ihre Realisierung in MOS-Technik....................... 157 7.3 Schaltglieder......................................................................................... 163 7.4 Schaltnetze........................................................................................... 172 7.5 Zeitverhalten von Schaltgliedern und Schaltnetzen..............................181 7.6 Automaten, Schaltwerke, Binärspeicher...............................................189 7.7 Aufgaben.............................................................................................. 215
Inhalt
VII
8. Funktionseinheiten der Digitaltechnik............................................................219 8.1 8.2 8.3 8.4 8.5
Spezielle Schaltnetze........................................................................... 219 Spezielle Schaltwerke...........................................................................230 Digitalspeicher...................................................................................... 236 Sonderfunktionen..................................................................................245 Aufgaben.............................................................................................. 248
9. Programmierbare Digitalsysteme.................................................................. 251 9.1 Notwendige Funktionen für die Verarbeitung........................................251 9.2 Der Universalrechner nach J. von Neumann........................................254 9.3 Befehlsabläufe...................................................................................... 256 9.4 Strukturen wichtiger Funktionsblöcke................................................... 258 9.5 Nichtkonventionelle Rechnerarchitekturen........................................... 261 9.6 Pipelining, Superskalarität und Speicherhierarchie.............................. 264 9.7 Aufgabe............................................................................................... 269
Lösungshinweise................................................................................................ 271 Abkürzungen...................................................................................................... 287 Literaturverzeichnis............................................................................................ 289 Sachregister....................................................................................................... 295
Vorwort Wegen der zunehmenden Bedeutung der Digitaltechnik ist die Kenntnis bestimmter Konzepte und Arbeitsmethoden dieses Fachgebiets nicht nur wichtig für die Entwickler dieser Technik, sondern auch für Anwender in der ganzen Breite der Möglichkeiten. Das vorliegende Buch entstand als unterstützende Literatur für Studierende der Elektrotechnik, welche bereits im ersten Semester mit diesen Grundlagen vertraut gemacht werden. Da erfahrungsgemäß die Voraussetzungen von Studienanfängerinnen und -anfängern recht unterschiedlich sind, setzt die Darstellung relativ geringe Vorkenntnisse voraus. Ziel dieses Buches ist es, einerseits zum Verständnis grundlegender Konzepte beizutragen, andererseits aber die Basis für weiterführende Betrachtungen zu schaffen. Dies gilt insbesondere für die digitale Schaltungstechnik, für Modellierungsaspekte zustands- und ereignisgesteuerter Komponenten, für den Entwurf digitaler Bausteine und schließlich für die Behandlung allgemeiner datenverarbeitender Systeme. Das einleitende Kapitel geht kurz auf Probleme ein, die mit der Definition des Begriffs Information verbunden sind, und skizziert die vermuteten Gründe, weshalb die auf Halbleitereffekten und -bausteinen basierende Digitaltechnik eine so herausragende Stellung erreicht hat. Kapitel 2 führt den Systembegriff ein und erläutert, dass die Komplexität heutiger Digitalsysteme eine Entwurfsmethodik nötig macht, die weitgehend auf einer rekursiven Verfeinerung der Systemkomponenten und -strukturen beruht. Ein solches Konzept unterstützt auch die weitgehende Automatisierung der Entwurfsschritte, ohne die heutige Systeme nicht mehr entwickelt werden können. In Kapitel 3 erfolgt eine Präzisierung der Begriffe Nachricht und Signal, wobei Binärsignalen eine besondere Bedeutung zukommt. Die Informationsdarstellung in der Welt binärer Signale ist Gegenstand des Kapitels 4. In ihm werden die für typische Anwendungen verwendeten Prinzipien der Codierung und wichtige Codes vorgestellt. Kapitel 5 vermittelt in kompakter Weise einige mathematische Grundlagen zur Mengenlehre, zum Arbeiten mit Relationen und Graphen, und es skizziert die formale Basis einer algebraischen Behandlung der Digitaltechnik in Form der Schaltalgebra, die dann in Kapitel 6 entsprechend umfangreich dargestellt wird. Kapitel 7 behandelt Bausteine der Digitaltechnik mit dem Schwerpunkt Schaltnetze und Schaltwerke. Weitverbreitete Bausteine der Digitaltechnik mit typischen Funktionen werden in Kapitel 8 beschrieben, womit alle wichtigen Komponenten vorhanden sind, um in Kapitel 9 das Konzept der Rechenmaschine nach von Neumann vorstellen zu können. Das Buch enthält zu jedem Kapitel einige ausgewählte Hinweise auf weiterführende Literatur sowie zu den meisten Kapiteln Übungsaufgaben mit Hinweisen zum Lösungsweg.
X
Vorwort
Das Manuskript für das vorliegende Buch berücksichtigte bei der Stoffauswahl vorgegebene Randbedingungen des Studiengangs Elektrotechnik an der Universität Karlsruhe. Andererseits versucht die gewählte Darstellung aber auch, das Buch für das Selbststudium geeignet zu machen. Inhaltlich verdankt der Autor einer Reihe von Kollegen, insbesondere Professor Dr.-Ing. Jochen Beister und Professor Dr.-Ing. Utz G. Baitinger sowie den Mitarbeitern des Instituts und den Studierenden der letzten Jahre viele Anregungen und positive Kritik. Zu besonderem Dank verpflichtet bin ich dabei den wissenschaftlichen Mitarbeitern Dr.-Ing. Edgar Bolender, Dr.-Ing. Martin Maier und Dipl.-Ing. Gunther Lehmann. Aber auch studentische Mitarbeiter, besonders Harald Philipps und Martin Glas trugen wesentlich zum Gelingen bei. Mein besonderer Dank gilt Frau Marlene Nold für die Erstellung des Manuskripts und Frau Gerda Neidhard, welche den größten Teil der Zeichnungen anfertigte. Dem Verlag danke ich für die Möglichkeit zur Publikation des Manuskripts und für die konstruktive Begleitung bei der typografischen Gestaltung des Buches. Nicht zuletzt danke ich meiner Frau und meinen Kindern für ihr Verständnis und die weitreichende Geduld mir gegenüber in der Zeit der Manuskripterstellung. Karlsruhe
Hans Martin Lipp
Vorwort zur zweiten Auflage Das überraschend positive Echo auf das Erscheinen dieses Lehrbuchs macht bereits eine zweite Auflage notwendig. Ich beschränke mich bei dieser auf die Korrektur von Unstimmigkeiten und von Fehlern, die sich in die erste Auflage – teilweise durch das nicht immer perfekte Zusammenwirken verschiedener Text- und Zeichenprogramme – eingeschlichen hatten. Meinen Studierenden der Grundlagenvorlesung sowie den Herren Harald Philipps und Dipl.-Ing. Michael Wolff gilt mein besonderer Dank für Hinweise auf Fehler und für Korrekturvorschläge, die in der neuen Auflage weitgehend Berücksichtigung fanden.
Karlsruhe
Hans Martin Lipp
Vorwort
XI
Vorwort zur fünften Auflage Nachdem bei den letzten Auflagen nur geringfügige Korrekturen und Ergänzungen vorgenommen worden waren, weist die neue Auflage zwei wesentliche Veränderungen auf. Da der bisherige Autor inzwischen in den Ruhestand getreten ist und sein Nachfolger im Amt die entsprechenden Lehrveranstaltungen übernommen hat, lag es nahe, diesen als Koautor für die neue Auflage hinzuzunehmen, um eine angemessene Abstimmung zwischen Vorlesungs- und Buchinhalt sicherzustellen. Darüberhinaus hat die Fakultät für Elektrotechnik und Informationstechnik der Universität Karlsruhe das Grundstudium neu geordnet und den informationstechnischen Inhalten ein größeres Gewicht gegeben, was sich auch in einer erhöhten Wochenstundenzahl für diejenige Vorlesung wiederspiegelt, welche Anlass zum Entstehen diese Buches war. Die fünfte Auflage ist daher stofflich entsprechend erweitert worden; bei der Auswahl des Stoffes wurde aber Rücksicht auf solche Leserinnen und Leser genommen, welche nicht zu den Studierenden des hiesigen Studiengangs gehören. Keine Entsprechung im Buch können allerdings jene zusätzlichen Aktivitäten finden, welche die Stoffdarbietung mit Hilfe von Design- und Simulationswerkzeugen vertiefen und zum eigenständigen Arbeiten der Studierenden anregen sollen. Am Ende des Buches wird aber in einer Liste auf Art und Quelle der Werkzeuge verwiesen. Inhaltlich sind die Kapitel 7 bis 9 geändert und ergänzt worden. H.M. Lipp fügte mit dem neuen Kapitel 7.5 einige grundlegende Aspekte der zeitlichen Modellierung und Analyse hinzu, deren Abstraktionsgrad mit dem zuvor im Buch aufgebauten Wissen übereinstimmt, aber doch schon wesentliche Aussagen über das zeitliche Verhalten erlaubt. J. Becker hat das Kapitel 7 um einige Betrachtungen über CMOSBausteine ergänzt, da diese heute in der Anwendung dominieren und daher in ihrer grundlegenden Funktionsweise auch dem Leser einer einführenden Darstellung vertraut sein sollten. Die Anwendung dieser Konzepte erfolgt dann in Kapitel 8 für die Implementierung von Addierschaltungen. Kapitel 9 enthält nun zusätzlich eine Klassifizierung und Beschreibung der wichtigsten Operationsprinzipien moderner Rechenanlagen sowie eine Darstellung heute eingesetzter Techniken der Leistungssteigerung wie die parallelisierenden zur Fließbandverarbeitung (Pipelining), zur Superskalarität und zu Speicherhierarchien. Aus datentechnischen Gründen musste die bisher existierende elektronische Version des Buches in ein neues Textverarbeitungsystem unter einem anderen Betriebssystem übertragen werden, was zu einer weitreichenden Nachbearbeitung von Text und Bildern führte. Die Autoren danken in diesem Zusammenhang cand.el Matthias Beringer für sein besonderes Engagement und die sorgfältige Durchführung dieser Arbeiten. Die Autoren bitten ihre Leserschaft, dennoch vorhandene Fehler oder Unstimmigkeiten unter [email protected] mitzuteilen, wobei diese Adresse auch für die Übermittlung von Kritik und Anregungen dienen kann. Karlsruhe
Hans Martin Lipp / Jürgen Becker
XII
Vorwort
Vorwort zur sechsten Auflage Bei der fünften Auflage waren Text und Bilder durch die Umstellung auf ein anderes Text- und Betriebssystem mehrfachen Transformationen unterworfen, was zu Fehlern geführt hat. Auch die für den Druck notwendige Umwandlung in eine pdf-Datei hatte zu Fehlern und Darstellungsmängeln geführt. Die jetzige Auflage wurde daher in dieser Hinsicht überarbeitet. In diesem Zusammenhang danken die beiden Autoren den Lesern für ihre Hinweise und Herrn Dipl.-Ing Ralf König und Herrn cand.el. Christoph Schmutzler für ihre engagierte Arbeit bei der Durchführung der Korrekturen. Darüber hinaus gilt unser Dank dem Oldenbourg-Wissenschaftsverlag und insbesondere Frau Kathrin Mönch für die gute Betreuung bei der Herausgabe dieses Buches. Nicht allen Anregungen aus der Leserschaft konnten wir folgen. So laufen der Wunsch nach der Aufnahme weiterführenden Stoffes, nach farbig angelegten Abbildungen und der elektronischen Bereitstellung des Bildmaterials, z.B. in Form einer beigelegten CD, dem Bestreben der Autoren und des Verlags zuwider, ein möglichst preiswertes Lehrbuch anbieten zu können. Karlsruhe
Hans Martin Lipp/Jürgen Becker
1 Einführung
1
1 Einführung 1.1 Zum Begriff Information Schlagworte wie Informationsgesellschaft, Informationsautobahn, Informationsverarbeitung, Informationsüberflutung oder auch Informationsdefizit sind heute allgegenwärtig und werden in geradezu inflationärer Weise verwendet. Was sich hinter diesen Begriffen verbirgt, ist dabei nicht immer sofort ersichtlich und teilweise auch nicht mit konkreten Inhalten oder Vorstellungen verbunden. Zentraler Begriff ist dabei jedoch derjenige der Information. Lässt sich dieser präzisieren oder gar formal definieren? Greift man zu einem weit verbreiteten Lexikon, so findet sich darin die Gleichsetzung von Information mit Auskunft oder Belehrung und ein Informator ist dementsprechend ein Berichterstatter oder Lehrer. Im 18. Jahrhundert verstand man darunter sogar speziell einen Hauslehrer! Offensichtlich verstehen wir aber unter Information doch etwas Umfassenderes, das teilweise auch mehr den Charakter einer Ware hat, die man beschaffen oder erhalten, aufbewahren, aber auch verändern und direkt oder indirekt nutzen kann. Es gibt umfangreiche Betrachtungen, die sich mit dem Begriff Information beschäftigen und versuchen, ihn inhaltlich wie auch teilweise quantitativ zu fassen. Es ist nicht das Ziel dieser Darstellung, darauf genauer einzugehen, sondern es soll hier ein mehr pragmatischer Ansatz gewählt werden, um den Begriff Information etwas näher zu umreißen. Betrachten wir dazu Bild 1.1.
Bild 1.1: Vermutlich unbekannte Information Zunächst kann man eigentlich nur feststellen, dass das weiße Papier durch Aufbringen von Druckerschwärze eine gewisse Veränderung erfahren hat und dass die Veränderung eine gewisse Orientierung in der Horizontalen hat. Außerdem ist die Veränderung sicher nicht rein zufällig, sondern sie zeigt eine gewisse Systematik, die aber nicht näher erfassbar ist. Ob sich hinter diesen "Zeichen" eine Information verbirgt, ob sie nur die zeilenweise sortierte Sammlung eines Spezialisten für Haken ist oder sonst eine andere Interpretation, lässt sich so nicht entscheiden. Eine genauere Analyse ergibt immerhin, dass manche "Zeichen" wiederholt vorkommen und dass die "Zeichen" unter Umständen sogar gruppiert sind, wenn man die Lücken ohne Schwärzung als Trennung deutet. Betrachten wir nun Bild 1.2, so finden wir eine Zusammenstellung von "Zeichen" anderer Art, von denen uns aber einige vertraut erscheinen mögen.
2
1 Einführung
Bild 1.2: Vielleicht bekannte Information Gehen wir schließlich zu Bild 1.3 über, so ist den meisten von uns ersichtlich, dass es sich dort um einen sinnvollen Text handelt, der sich auf eine mittelalterliche Handschrift bezieht.
Bild 1.3: Vermutlich bekannte Information Diese Aussage können wir aber nur treffen, wenn wir folgendes Wissen erworben haben: - Es ist uns das lateinische Alphabet geläufig; - Wir sind wenigstens mit den Grundlagen der französischen Sprache vertraut; - Es ist bekannt, was man unter einem Evangeliar zu verstehen hat. Information ist also offensichtlich mit Wissen über bestimmte Dinge verknüpft und erhält nur so eine Bedeutung für den Wissenden. Bei der bisherigen Betrachtung der Bilder 1.1 bis 1.3 bestand zwischen deren Inhalt lediglich eine gewisse optisch/ formale Übereinstimmung; erhält man zusätzlich das Wissen, dass alle drei „Texte“ demselben Bild einer mittelalterlichen Handschrift zugeordnet sind [DOU69, Bild 11], so wird man schließen, dass die Bilder 1.1 und 1.2 dieselbe Aussage wie Bild 1.3, aber in einer anderen Schrift und Sprache enthalten. Für eine Verifizierung dieser Annahme bedarf es allerdings der Möglichkeit, dass aus genügend langen Texten auf die Zuordnung von Zeichen und Wörtern zwischen je zwei Sprachen geschlossen werden kann und die beschriebenen Objekte in allen Sprachen vergleichbar ausgedrückt werden können. An einem weiteren Beispiel sollen diese Zusammenhänge verdeutlicht werden. Betrachtet man Bild 1.4, so fallen einige Merkmale der dargestellten SchwarzWeiß-Verteilung auf wie gewisse Formen, eine Symmetrie zur horizontalen Achse usw. Der eine oder andere Betrachter mag diesem Bild sogar eine gewisse Ästhetik zubilligen oder es als Ausdruck abstrakter Malerei sehen. Tatsächlich stellt Bild 1.4 aber eine spezifische Darstellung der Ergebnisse numerischer Berechnungen unter Verwendung komplexer Zahlen und von Färbungsregeln dar, wie sie bei der Behandlung sogenannter chaotischer Systeme Verwendung finden.
1.2 Behandlung von Informationen
3
Bild 1.4: „Apfelmännchen“ (aus [PER86]) Auch hier gelangt über das ästhetische Empfinden hinaus nur Information zum Betrachter, wenn er Wissen über komplexe Zahlen, iterative Berechnungen, Konvergenzverhalten und die Darstellungstechnik der Ergebnisse kennt. Zusammenfassend kann man feststellen, dass sich der Begriff Information einer einfachen, präzisen Definition entzieht, dass er aber etwas mit der Darstellbarkeit von "Aussagen" und dem Wissen des Empfängers oder Nutzers über das Umfeld der Information zu tun hat.
1.2 Behandlung von Information Unter der Voraussetzung, dass sich Information geeignet darstellen lässt, kann man sie - mitteilen oder übertragen - aufbewahren oder speichern - verändern oder verarbeiten. Bei der Übertragung geht es vorrangig darum, Information so darzustellen, dass sie über räumliche Distanzen transportiert werden kann (Bild 1.5).
Störung
Quelle
Senke
Bild 1.5: Prinzip der Informationsübertragung Dabei strebt man im allgemeinen das Ziel an, dass die vom Ausgangsort (Quelle) zum Zielort (Senke) transportierte Information in ihrer Darstellung unverfälscht
4
1 Einführung
bleibt und damit den Empfänger trotz der Störungen auf dem Übertragungswege in der vorgesehenen Weise informiert. Die Speicherung dient hauptsächlich dazu, Information über zeitliche Distanzen zu transportieren, was ebenfalls eine geeignete Darstellung der Information voraussetzt, damit das Altern der Informationsträger nicht Information verfälscht oder zerstört (Bild 1.6).
The The Flinstones Flintstones
Bild 1.6: Informationsspeicherung
Dass dies keine triviale Aufgabe ist, sei am Beispiel von modernen digitalen optisch-elektronischen Datenträgern verdeutlicht: Obwohl auf einer CD-ROM eine unglaubliche große Menge an Informationen gespeichert werden kann, lässt sich beim heutigen Stand der Technik für sie aber nur von einer Lebensdauer von wenigen Jahrzehnten ausgehen, es handelt sich also um ein recht schnelllebiges Speichermedium verglichen mit Keilschriften auf Tontafeln oder PergamentHandschriften! Als dritte Möglichkeit des Umgangs mit Information ist die Verarbeitung zu nennen. Bei ihr geht es darum, aus empfangener oder vorhandener Information nach vorgegebenen oder abgeleiteten Regeln Bestandteile der Information zu entnehmen, zu verändern und neu darzustellen. Die Verarbeitung muss dabei nicht notwendigerweise räumlich und zeitlich konzentriert erfolgen. So können beispielsweise die folgenden zwei Rechenvorgänge 18 + 7 = 25 4 . 14 = 56 räumlich getrennt von zwei Bearbeitern oder zeitlich nacheinander von einem Bearbeiter durchgeführt werden. Die Situation bei der Verarbeitung legt ein Vergleich im Umgang mit Materie und Energie nahe (Bild 1.7).
1.3 Digitaltechnik als spezielle technische Lösung
5
Material
Verarbeitung
Material
Energie
Energieumwandlung
Energie
Information
Informationsverarbeitung
Information
Bild 1.7: Verarbeitung von Material, Energie, Information Vordergründig lässt eine solche schematische Darstellung auf gewisse Analogien bei der Verarbeitung schließen, die in weiterem Sinne sicher auch zulässig sind. Doch soll hier auf einen wesentlichen Unterschied hingewiesen werden, der die Informationsverarbeitung von den beiden anderen Bereichen trennt. Während man bei Material und Energie nach der Verarbeitung die ursprünglichen eingangsseitigen Vorräte verringert und mit einem jeweils spezifischen Wirkungsgrad in die ausgangsseitigen Produkte verändert hat, kann die Verarbeitung von Information so erfolgen, dass die eingangsseitig vorhandene Information erhalten bleibt und für weitere Verarbeitungsvorgänge zur Verfügung steht. So lassen sich zum Beispiel Erhebungsangaben aus Volkszählungen oder andere Bevölkerungsstatistiken wiederholt und über lange Zeiträume hinweg erneut nach gleichen oder verschiedenen Kriterien bearbeiten.
1.3 Digitaltechnik als spezielle technische Lösung Übertragung, Speicherung und Verarbeitung von Information werden heute in hohem Maße von der sogenannten Digitaltechnik und der Halbleitertechnologie beherrscht. Eine solche Dominanz weniger Realisierungsprinzipien ist nicht ohne weiteres zu erwarten, da aus Physik und Chemie hinreichend viele Materialien und Veränderungseffekte bekannt sind, um eine Vielzahl unterschiedlicher Techniken möglich zu machen. Die Technikgeschichte zeigt aber, dass es immer dann zu wesentlichen Innovationsschüben kam, wenn unterschiedliche Entwicklungslinien aufgrund neuer Erkenntnisse und/oder neuer technologischer Möglichkeiten zusammengefasst werden konnten. Auch für die heute überwiegend auf Halbleitereffekten beruhende Digitaltechnik scheint diese Aussage zuzutreffen. Daher soll eine kurze Zusammenstellung solcher Entwicklungslinien für das Rechnen mit Zahlen, das ja ganz entscheidend für die Mechanisierung der Verarbeitung war, solche Wechselwirkungen ohne Anspruch auf Vollständigkeit verdeutlichen. Aus mathematischer Sicht stellt die Schaffung eines geeigneten Zahlensystems eine wichtige Grundlage dar, Rechenvorgänge durchsichtig und effizient vornehmen zu können. Die Einführung der arabischen Ziffern und der Aufbau mehrstelliger Zahlen auf der Grundlage einer Basiszahl und einer stellenorientierten
6
1 Einführung
Schreibweise war entscheidend für unser heutiges Rechnen. Adam Riese sei hier vor allem genannt: In seiner Schrift "Das Rechnen auf der Linien und Federn ..." demonstriert er Schreibweise und Rechengänge für diese Art von Zahlendarstellung [RYS25].
Bild 1.8: Titelblatt einer Ausgabe der Schrift von A. Riese
Bild 1.9: Seite sechs dieser Schrift
1.3 Digitaltechnik als spezielle technische Lösung
7
Bild 1.10: Seite sieben dieser Schrift
Eine zweite wesentliche Leistung bestand in der mechanischen Abbildung von Ziffern und zusammengesetzten Zahlen. Als Beispiel hierfür kann der Abakus dienen, der während des Mittelalters in Mitteleuropa weitgehend in Vergessenheit geraten war und dann von dem französischen Mathematiker Jean Victor Poncelet (17881867) aus Russland erneut eingeführt worden ist (siehe Bild 1.11, rechts ein Rechen-Tisch für römische Zahlen, die ja nicht besonders gut zum Rechnen geeignet sind).
Bild 1.11: Chinesischer und römischer Abakus (aus [LEU27]) Zur Vereinfachung der Rechnungen und zu ihrer Beschleunigung dienten auch Tafeln mit den Ergebnissen bestimmter häufig vorkommender Rechenoperationen. Als Beispiel seien hier die Logarithmentafeln erwähnt. An der ersten solchen Tafel
8
1 Einführung
aus dem Jahre 1614 arbeitete der schottische Mathematiker John Napier (15501617) dreißig Jahre lang.
Bild 1.12: Teil einer Logarithmentafel (aus [GOB57]) Bild 1.12 gibt einen kleinen Ausschnitt eines solchen Tafelwerkes wieder. Listen mit Konstanten und Rechenergebnissen stellen auch heute noch eine wichtige Komponente von Rechenmaschinen dar, allerdings in einer digitaltechnisch realisierten Form.
Bild 1.13: „Napiers Knochen“ für die Multiplikation (aus [LEU27]) Die Mechanisierung der Rechenschritte selbst erfolgte auf verschiedenen Wegen. So baute der bereits erwähnte Napier (auch Neper genannt) Rechenstäbchen, mit deren Hilfe er die Multiplikation technisch lösen konnte (Bild 1.13). Eine frühe Technik zur Mechanisierung stellen auch Zahnräder und deren Kopplung dar. Dabei wurde die Basis des Zahlensystems in die Zähnezahl eines Zahnrads und eine spezielle Ziffer durch die Stellung des Zahnrads bezüglich einer Referenzposition abgebildet. Der Übertrag bei der Addition aus einer Stelle in die nächsthöhere erfolgte über einen Mitnehmerzapfen beim Drehvorgang von Ziffernposition 9 nach der Ziffernposition 0 in der niederwertigeren Stelle (für das Leihen bei der Subtrak-
1.3 Digitaltechnik als spezielle technische Lösung
9
tion gilt Entsprechendes). Der zeitlich früheste Versuch in dieser Richtung stammt wohl von Wilhelm Schickard (1592-1635), einem vielseitig begabten und tätigen Mann (Bild 1.14).
Bild 1.14: Entwurfsskizze Schickhards [FRE57] Johannes Kepler scheint diese Rechenuhr gekannt zu haben, denn Schickard schreibt an ihn: “Dasselbe, was Du rechnerisch gemacht hast, habe ich in letzter Zeit auf mechanischem Wege versucht, und eine aus elf vollständigen und sechs verstümmelten Rädchen bestehende Maschine konstruiert, welche gegebene Zahlen augenblicklich automatisch zusammenrechnet: addiert, subtrahiert, multipliziert und dividiert. Du würdest hell auflachen, wenn Du zuschauen könntest, wie sie die Stellen links, wenn es über einen Zehner oder Hunderter weggeht, ganz von selbst erhöht bzw. beim Subtrahieren ihnen etwas wegnimmt.“ Aus der Literatur sind weitere Rechengeräte auf der Grundlage von gekoppelten Zahnrädern bekannt (z.B. von Leupold, siehe Bild 1.15).
10
1 Einführung
Bild 1.15: Die Leupoldische „Rechen-Machine“ (aus [LEU27]) Es ist aber zu vermuten, dass solche Rechenmaschinen nicht besonders funktionstüchtig waren, da um diese Zeit noch keine reibungsarmen Verzahnungstechniken bekannt waren, die Überläufe über mehrere Stellen hinweg erlaubt hätten. Fortschritte in der Feinmechanik und eben besonders in der Kenntnis und Herstellung wirkungsvoller Verzahnungen brachten dann aber den Bau mechanischer Rechengeräte zur vollen Blüte. Bis in die sechziger Jahre des 20. Jahrhunderts dominierten solche mechanischen Rechner infolge der erreichten Präzision und leichten Bedienbarkeit. Das Hinzukommen von Elektromotoren für den Antrieb stellt dabei keine prinzipielle Veränderung mehr dar. Parallel zur Perfektion der mechanischen Rechengeräte auf der Basis der Zahl 10 zeichnete sich in diesem Jahrhundert eine andere Möglichkeit zum mechanischen Rechnen ab, die auf Zahnräder verzichten und mit weniger Positionen mechanischer Elemente auskommen konnte. Grundlegend dafür war die Erkenntnis, dass auf der Basis von Binärentscheidungen logische und darauf beruhende technische Operationen möglich sind, die ebenfalls Zahlenrechnungen erlauben. Die Einnahme jeweils einer von zwei Schalterstellungen ergibt besonders einfache technische Bauelemente gegenüber einer Positionierung in zehn verschiedenen Stellungen. Schalter und besonders die in der telefonischen Vermittlungstechnik bewährten Relais dienten daher als Komponenten früher Versuche zur Realisierung solcher Rechner. Hier ist besonders Konrad Zuse zu nennen, der in den Jahren ab 1936 als erster solche Rechengeräte baute, wobei die 1941 fertiggestellte Z3 mittels eines Lochstreifens auch den Ablauf aufeinanderfolgender Rechenschritte steuern konnte und damit zum ersten funktionsfähigen programmgesteuerten Rechner der Welt wurde. Zwar hatte bereits um 1833 Charles Babbage einen programmgesteuerten Rechner "Analytical Engine" konzipiert, der aber weitgehend in Vergessenheit geriet, zumal er den fertigungstechnischen Möglichkeiten seiner Zeit weit voraus war.
1.3 Digitaltechnik als spezielle technische Lösung
11
Nach Zuse folgen auch Relaisrechner anderer Entwickler. Schon bald erkannte man, dass die langsamen Relais durch die viel schnelleren Röhren, wie sie aus der Rundfunk- und Verstärkertechnik bekannt waren, ersetzt werden konnten, wenn man diese entsprechend in zwei extremen Betriebszuständen betrieb (schon Zuse hatte 1937 diese Möglichkeit in Betracht gezogen). Allerdings setzten die Ausfallhäufigkeit der Röhren und die entstehende Abwärme solcher Rechner auch dieser Entwicklung Grenzen. Von fundamentaler Wichtigkeit wurde daher die Erfindung des Transistors im Jahre 1948 durch W.H. Brattain, J. Bardeen und W.B. Shokley. Es handelt sich dabei um ein Halbleiterbauelement mit drei Elektroden (siehe Bild 1.16). Emitter
Eingang
Collector
Ausgang
Basis
Bild 1.16: Transistor nach Brattain, Bardeen, Shockley Auch der Transistor lässt sich schalterähnlich betreiben, so dass er rasch die Röhrenrechner ablöste. Sein entscheidender Vorteil war der Wegfall der Heizung, wie sie die Röhren benötigten, eine geringe Arbeitsspannung und die wesentlich kleinere Bauform. Damit war es möglich geworden, kompakte und schnelle Rechenmaschinen zu bauen. Technische Entwicklungen nehmen dann einen besonders stürmischen Verlauf, wenn bisher getrennte Techniken zur Realisierung einer Gesamtaufgabe durch eine neue einheitliche Technologie abgelöst werden. Bei den Transistoren handelte es sich wie bei Spulen, Kondensatoren und Widerständen um Einzelbauelemente, die mit Hilfe von Leitern (Drähte, gedruckte Leiterbahnen, usw.) relativ aufwendig verbunden werden mussten, was der vielen Lötpunkte wegen die Ausfallwahrscheinlichkeit erhöhte. Der entscheidende Schritt ist daher die Entwicklung der integrierten Schaltung. Sie setzt voraus, dass sowohl eine Reihe von Bauelementen als auch die dazugehörige Verdrahtung auf prozesstechnisch gleiche Weise und gleichzeitig hergestellt werden können. 1959 erhielt J. Kilby das erste Patent, das sich auf eine integrierte Halbleiterschaltung bezieht. Die einzelnen Transistoren, Dioden und Widerstände auf dem Halbleiterplättchen mussten dabei noch von Hand mittels dünner Drähtchen verbunden werden (Bild 1.17) [KIR93]. Die für die Serienfertigung entscheidende Homogenisierung der Herstellung solcher Schaltungen gelang etwa ein halbes Jahr später R. Noyce durch die konsequente Verwendung der Planartechnik. Diese verdrängte rasch andere Lösungen. Integrierte Schaltungen haben daher eine weite Verbreitung gefunden. Obwohl heute schon Millionen von Transistoren auf wenigen Quadratzentimetern Fläche eines einzigen Chips realisiert werden, ist derzeit noch kein Ende der Entwicklung zu immer dichteren und schnelleren Chips abzusehen.
12
1 Einführung
Bild 1.17: Integrierte Schaltung nach Kilby Die erste integrierte Schaltung entwickelten aber M. von Ardenne und H. Heinest für die Firma Loewe 1924/25, bei der drei Trioden mit Beschaltung in eine einzige Vakuumröhre zusammengefasst wurden [DHB89]. Neben der Entwicklung von Bauelementen zur Verarbeitung von Information musste auch das Problem der Speicherung großer Informationsmengen gelöst werden. Hier setzte sich die magnetische Speichertechnik durch. Bereits Anfang der dreißiger Jahre hatte G. Tauschek einen zylindrischen elektromagnetischen Speicher zum Patent angemeldet. Jedoch fehlten zunächst die technologischen Möglichkeiten, so dass ein solcher Speicher erst viele Jahre danach technisch bedeutsam wurde. 1944 kam es durch G. Dirks zu einer weiteren Patentanmeldung. Nachdem dann der Trommelspeicher eine gewisse Bedeutung erlangt hatte, lösten ihn später andere magnetomotorische Speichertypen, insbesondere die Plattenspeicher, ab. Mit dieser Skizze der Entwicklungen sollte verdeutlicht werden, dass es einer Reihe von Erfindungen bedurfte, um Rechenmaschinen zu den dominanten Komponenten werden zu lassen, wie sie uns heute in nahezu jedem Lebensbereich begegnen. Wer sich umfassender mit der Geschichte des mechanisierten Rechnens und der Informationsverarbeitung beschäftigen möchte, kann das nicht nur mit Hilfe der Literatur, sondern auch anschaulich in Museen tun, wobei hier besonders das Deutsche Museum in München zu nennen ist.
Zum Weiterlesen: [DEB68]
De Beauclair, W. : Rechnen mit Maschinen. Braunschweig: Vieweg, 1968
[CHJ90]
Chapuis, R. J.; Joel, A. E.: Electronics, Computers and Telephone Switching: A Book of Technological History. Amsterdam: North-Holland, 1990
13
2 Funktion und Struktur
2 Funktion und Struktur 2.1 Der Systembegriff In Zusammenhang mit natürlichen, technischen und organisatorischen Gebilden mit komplexem Erscheinungsbild spricht man häufig von Systemen. Der Begriff System beschreibt generell die Gliederung, den Aufbau, das Ordnungs- oder Einordnungsprinzip in verwandte oder ähnlich gebaute Gruppen; er entzieht sich meist einer allgemeinen Definition, da es eine fast unüberschaubare Zahl von natürlichen oder künstlichen, konkreten oder abstrakten, statischen oder dynamischen, offenen oder abgeschlossenen Systemen gibt. Je nach Unterscheidungsprinzip und Fachgebiet lassen sich weitere Systemmerkmale finden. Einige wenige Beispiele sollen die Bandbreite der Nutzung des Systembegriffs verdeutlichen. So spricht man von einem politischen System, vom Periodensystem der chemischen Elemente, von einem Planetensystem, vom System der Maßeinheiten, von Steuersystemen, von Nachrichtensystemen, von Rechnersystemen, von Mikrosystemen, von Betriebssystemen, usw. Für jedes dieser Beispiele kann eine Fülle zusätzlicher Merkmale festgelegt werden, die mit dem Grad der Bestimmtheit, der Entstehungsweise, der örtlichen oder zeitlichen Konzentriertheit, der Zeitabhängigkeit, und vielen weiteren solchen Attributen zu tun haben. Begrenzt man die Vielfalt auf mehr oder weniger technische Anwendungen des Systembegriffs, so lassen sich wenige wichtige Bestandteile als konstituierende ansehen: - Ein System umfasst stets kleinere Anteile, die wir als Untersysteme, Komponenten, Module, Bausteine, Elemente bezeichnen können. Sie seien als Objekte referiert. - Zwischen den Objekten eines Systems müssen Beziehungen bestehen, die ein Zusammenwirken solcher Objekte ermöglichen. Solche Beziehungen können materieller, energetischer und informationeller Natur sein. Die Gesamtheit dieser Beziehungen bildet zusammen mit den Objekten die Struktur des Systems. - Objekte und Beziehungen bilden eine abgeschlossene Einheit, die nur über definierte Schnittstellen betreten oder verlassen werden kann (sogenannte externe Systemschnittstellen). Man gelangt dann zu Systemdefinitionen, die mehr oder weniger abstrakt die drei genannten Anteile zusammenfassen; zum Beispiel findet man - Funktion eines Systems ist das Vermögen, eine Eingabe in eine Ausgabe zu überführen;
14
2 Funktion und Struktur
- Unter einem System versteht man ein Gebilde aus bestimmten Objekten mit bestimmten Eigenschaften, zwischen denen festgelegte Beziehungen bestehen; - Ein System besteht aus einer Menge von Elementen, auf diesen definierten Eigenschaften und einer Menge von Relationen zwischen den Elementen. Entsprechend lassen sich weitere Systemdefinitionen, vor allem unter Bezug auf spezielle Anwendungsbereiche, angeben. So findet man z.B. in DIN 19226 eine für die Regelungstechnik geltende Definition, oder in den Empfehlungen der Informationstechnischen Gesellschaft im VDE die ITG-Empfehlung 4.2 - 3.01 für das Gebiet der Software folgende Aussage: "System: Zusammenstellung technischorganisatorischer Mittel (Menschen, Maschinen und Methoden) zur autonomen Erfüllung eines Funktionskomplexes" [ITG92]. In der Datenverarbeitungs- und Digitaltechnik versteht man daher unter System ein nach bestimmten Prinzipien aus Komponenten zusammengesetztes Ganzes, das eine bestimmte Aufgabe zu leisten imstande ist, z.B. Rechensystem, Steuerungssystem, Softwaresystem. Systeme lassen sich auf verschiedene Weise darstellen bzw. betrachten. Man unterscheidet -
die externe Sicht für den Benutzer und die interne Sicht für den Hersteller und Betreiber (Benutzer und Betreiber sind dabei nicht notwendigerweise identisch).
Die externe Sicht führt auf den Begriff Architektur: Die Architektur eines Systems ist dessen Gesamtfunktion, wie sie dem Benutzer gegenüber nach außen hin in Erscheinung tritt. Die Architektur legt lediglich fest, was geschieht, jedoch nicht wie etwas geschieht. Es bedarf daher geeigneter Beschreibungsmöglichkeiten, um die
F
Bild 2.1: Funktionelle Sicht eines Systems Funktion F umgangssprachlich, fachsprachlich oder mathematisch/formal festlegen zu können. Diese Festlegung dient dann häufig als Referenz für die Konstruktion von Anlagen, Geräten und Programmen, welche F realisieren; sie muss daher hinreichend präzise und vollständig sein.
2.1 Der Systembegriff
15
Beispiel Z: Für die Förderung von Vereins- und Straßenfesten soll ein einfaches Spielgerät "Zitterdraht" entwickelt werden [ZIT92]. Es besteht aus einer Platte mit zwei metallischen, ringförmigen Kontakten, einem kompliziert gebogenen steifen Metalldraht sowie einer mit einem Griff versehenen Metallschlaufe, die mit einem elektrischen Anschluss versehen ist. Aufgabe des Spielers ist es, nach Berühren des Kontaktes auf einer Seite die Schlaufe entlang des Drahtes möglichst ohne Berührung mit diesem auf die andere Seite zu führen und dort den anderen Kontakt zu erreichen (Bild 2.2). Ein vollständiges Spiel soll aus sechs solchen Wegen von einer zur anderen Seite bestehen. Metalldraht
Griff mit Metallschlaufe
Kabel Metallkontakte links und rechts
Bild 2.2: Mechanische Anteile des Spielgerätes „Zitterdraht“ Für diese Anordnung ist ein elektronisches Gerät zu entwickeln, dessen Funktion F folgendermaßen festgelegt wird: Weg
Freiberührungen
maximale / minimale Punktzahl bei Erfolg
1 2 3 4 5 6
5 4 3 2 1 0
6/1 5/1 5/2 5/3 5/4 5/5 Summe 31
Tabelle 2.1: Ermittlung der Punktezahl Für jeden Weg steht eine Anzahl von erlaubten Drahtberührungen zur Verfügung (Freiberührungen). Wird diese Anzahl entlang des Weges überschritten, so ist das ganze Spiel beendet. Bleibt der Spieler unter dieser Grenze, wenn er den nächsten Metallkontakt erreicht, so gilt der Weg als erfolgreich durchlaufen. Die Zahl der Freiberührungen für den nächsten Weg wird dann auf den Wert entsprechend Tabelle 2.1 gesetzt. Es werden Punkte für jeden erfolgreich durchlaufenen Weg vergeben. Die Anzahl der Punkte ergibt sich aus den Punkten, die laut Tabelle für den jeweiligen Weg vergeben werden, abzüglich der Drahtberührungen. Die Summe aller maximal möglichen Punkte pro Weg ergibt die maximal erreichbare Punktzahl eines Spiels (31). Ein Spiel ist beendet, wenn entweder die Anzahl der
16
2 Funktion und Struktur
Freiberührungen entlang eines Weges überschritten wurde, oder wenn alle sechs Wege erfolgreich durchlaufen wurden. Außerdem kann das Spiel über eine Taste Neues Spiel beendet werden. Ein Spiel kann gestartet werden, wenn die Taste Neues Spiel betätigt und anschließend der rechte Metallkontakt berührt wurde. Eine Anzeige informiert über den aktuellen Spielstatus. Die Höchstpunktzahl aus allen Spielen kann gespeichert und angezeigt werden. Rücksetzen der Höchstpunktzahl auf den Wert 1 Punkt ist mit der Taste Grundstellung möglich. Diese Festlegung von F sagt noch nichts aus, wie das Gerät zu realisieren ist und welche technischen Randbedingungen dabei zu berücksichtigen sind. Wir erhalten lediglich einige Angaben über die externen Schnittstellen elektrischer und optischer Art, mit deren Hilfe die Funktion F mit der Außenwelt (hier dem Spieler) in Wechselwirkung tritt (Bild 2.3).
Taste Anzeige/Höchstpunktzahl Taste Grundstellung Taste Neues Spiel Drahtanschluss El. Signale Linker Kontakt Rechter Kontakt
F
Punktezahl/Höchstpunktzahl Indikator für Höchstpunktzahl Wegnummer Opt. Anzeige Freiberührungen Spiel läuft Spielende Grundstellung
Bild 2.3: Schnittstellen für das System Zitterdraht
2.2 Hierarchische Aufteilung komplexer Systeme Bei komplexen Systemen besteht die Notwendigkeit, den Darstellungsaufwand der Gesamtfunktion durch Aufteilung in Untersysteme in überschaubare Teilfunktionen zu zerlegen und damit die Umsetzung in technische Lösungen zu ermöglichen. Man gelangt damit zu einer stufenweisen Entwicklung eines Systems, wodurch eine Hierarchie der Darstellungsweisen und der Funktionszusammenhänge entsteht. Die höher angesetzte Ebene umfasst dabei stets die Spezifikation eines Systems (bzw. einer Systemkomponente), also die Funktionsfestlegung; die darunterliegende umfasst eine Anordnung von funktionell weniger mächtigen Komponenten und deren Spezifikation. Da hier zwei oder mehr Komponenten miteinander in Beziehung treten, sind Maßnahmen zur Verbindung der Komponenten nötig; man spricht dann von einer Struktursicht des Systems. In Bild 2.4 repräsentiert F die Systemfunktion, während f jeweils für die Funktion der Teilsysteme steht.
2.2 Hierarchische Aufteilung komplexer Systeme
17
F
Verfeinerung fi fj
fk
Bild 2.4: Verfeinerung der Systemsicht Der Übergang zwischen zwei gleichartigen Einheiten wird Schnittstelle genannt; bei den Regeln für die Kommunikation über die Schnittstelle spricht man von einem Protokoll. Beispiel Z: Für das Zitterdrahtgerät soll eine solche Verfeinerung vorgenommen werden. Gelöst werden muss dabei das Problem, welche Teilsysteme f gewählt werden und wie diese miteinander zu verbinden sind. Zweckmäßig ist es, die Komponenten f so zu definieren, dass sie für bestimmte Funktionsteile von F zuständig sind und eine genügend deutliche funktionelle Abgrenzung gegen andere Teilsysteme ermöglichen. Bild 2.5 zeigt eine solche Verfeinerung, wobei auf die Verbindungsstruktur nicht näher eingegangen wird. Anzeige
Grundstellung Neues Spiel
Ablaufsteuerung
Vergleich mit Höchstpunktzahl
Punkte Weg
Draht
Rechter MK
Anzahl der Drahtberührungen
PunkteAddierer
Höchstpunktzahl Anzeigesteuerung Freiberührung Spiel läuft
Wegezähler
Linker MK
Bild 2.5: Auflösung von F „Zitterdraht“ in Teilsysteme
Spielende Grundstellung
18
2 Funktion und Struktur
Bei heutigen (Digital-)Systemen reicht eine einschrittige Verfeinerung meist nicht aus, um eine Realisierung vornehmen zu können. Man löst diese Aufgabe durch wiederholte Anwendung (Rekursion) des beschriebenen Vorgehens und kommt so zu mehrschrittigen Verfeinerungen, wobei jedes Teilsystem wieder als Struktur verfeinert wird.
F0
1. Verfeinerungsschritt
f12 f13
f11
F11
F12
F13 2. Verfeinerungsschritt Verfeinerungsschritt 2.
f21 f22
f 24 f23
f26 f25
f 28 f27
F25
F24
3. Verfeinerungsschritt
f32
f34
f 31 f33
f35
Bild 2.6: Mehrstufige Verfeinerung der Systemsicht
2.3 Systematischer Entwurf von digitaltechnischen Systemen
19
Verfeinerungsschritte können als Transformationen der funktionellen Beschreibung in eine strukturelle aufgefasst werden, ungeachtet der betroffenen Ebenen. Beispiel Z: Auch für das Zitterdrahtgerät muss eine solche mehrstufige Verfeinerung erfolgen, bis man eine Darstellung erreicht, deren Komponenten technisch in Schaltungen umgesetzt werden können. Da diese Verfeinerungsschritte Kenntnisse aus den folgenden Kapiteln voraussetzen, wird auf die Darstellung weiterer Verfeinerungsschritte verzichtet.
2.3 Systematischer Entwurf von digitaltechnischen Systemen Die im vorausgehenden Abschnitt beschriebene Transformation einer Spezifikation in eine Struktur lässt sich auch umkehren; man analysiert dabei die Struktur und die in ihr enthaltenen Teilfunktionen und leitet daraus eine Gesamtfunktion ab, die als Beschreibung für die darüberliegende Ebene übernommen wird. Man hat daher in der Fachwelt zwei Wortpaare eingeführt, mit denen die Transformationsrichtung beschrieben wird: Spezifikation Bottom-Up
Top-Down Struktur
Bild 2.7: Mögliche Transformationsrichtungen
Entsprechend spricht man von Top-Down-Entwurf, wenn die Entwicklung eines Systems von der allgemeinen Systemspezifikation ausgeht und durch rekursive Anwendung von Transformationen bei der elementarsten Verfeinerung endet. Beim Bottom-Up-Entwurf startet man mit Detailkenntnissen einer elementaren Struktur und leitet durch Abstraktion eine Funktion ab, aus der durch rekursive Anwendung der umgekehrten Transformation schließlich die Funktionsbeschreibung eines Systems entsteht. Der systematische Entwurf von Digitalsystemen folgt heute relativ streng dem Top-Down-Prinzip; dabei werden aber einzelne Komponenten von der Technologie her kommend im Bottom-Up-Prinzip optimal technisch gestaltet und dann in den Top-Down-Weg einbezogen. Tatsächliches Entwerfen besteht daher häufig in einem iterativen Vorgehen, bei dem beide Entwurfsrichtungen abwechselnd über eine oder auch mehrere Verfeinerungsstufen hinweg Anwendung finden (Jo-Jo-Entwurfsstil).
20
2 Funktion und Struktur
Der Entwurf einer Digitalschaltung bzw. eines Digitalsystems umfasst meist viele aufeinanderfolgende Transformationsschritte, die in drei Hauptgruppen zusammengefasst werden können: - Systementwurf - Logischer Entwurf - Physikalischer Entwurf Es ergibt sich damit der folgende grobe Ablauf für den Entwurfsgang (Bild 2.8): Systembeschreibung ( Definition )
Formale Formale Entwicklung Entwicklung
Transformation: Implementierung zunehmend (mehr Detailreichtum) Top-DownEntwurf
Transformation: Spezifikation zunehmend (mehr Abstraktion)
Nebenbedingungen
Phys.. Phys Entwicklung
Bottom-UpEntwurf
Gefertigtes System
Bild 2.8: Grobe Gliederung des Entwurfsablaufs Für jeden einzelnen Transformationsschritt lässt sich ein von der speziellen Transformation unabhängiges Schema angeben, wobei Bild 2.9 zwei der möglichen Umsetzungsstile bei der Verfeinerung wiedergibt. Übernimmt der Entwickler selbst die Verfeinerungsaufgabe, so konstruiert er unter Kenntnis zulässiger Teilsystemfunktionen aus der gegebenen Funktion F einer bestimmten Ebene die Struktur mit den Komponenten f der darunterliegenden Ebene. Ist jedoch der Verfeinerungsvorgang in seinem Ablauf so gut verstanden worden, dass man ihn formal fassen und zum Beispiel über einen Algorithmus in ein Programm umsetzen kann, so lässt sich der Schritt auch unter Einsatz von Rechenmaschinen durchführen oder wie man auch sagt, automatisieren.
2.3 Systematischer Entwurf von digitaltechnischen Systemen
Fn
Funktion Funktion
Entwickler
f1...fk
STRn+1
Struktur Struktur
21
Fn
Programm
f1...fk
STRn+1
Bild 2.9: Art der Transformationen Für die meisten Entwurfsaufgaben kommt nur eine Mischung aus manuellem und automatisiertem Entwurf infrage; manuell wird man besonders auf der Systemebene vorgehen müssen oder bei extremer Ausnutzung der technisch/technologischen Möglichkeiten. Für Standardanwendungen kann man jedoch heute davon ausgehen, dass der logische und physikalische Entwurf weitgehend automatisiert sind. Es stehen dafür eine Reihe geeigneter Software-Entwurfshilfen zur Verfügung, welche in ihrer Gesamtheit als CAD-System (Computer Aided Design) bzw. bei leistungsfähigeren Programmen als CAE-System (Computer Aided Engineering) bezeichnet werden. Im Rahmen dieses Buches wird nicht auf solche Entwurfshilfen eingegangen; der Schwerpunkt liegt vielmehr auf der Einführung der Begriffe und Grundlagen für die System- und Logikebene sowie auf der Vermittlung von elementaren Kenntnissen für den logischen Entwurf.
Zum Weiterlesen: [WEN91]
Wendt, S.: Nichtphysikalische Grundlage der Informationstechnik: Interpretierte Formalismen. 2. Aufl., Berlin: Springer, 1991
[LIP82]
Lipp, H. M.: Strukturiertes Entwerfen in der Digitaltechnik In: ntz-archiv, Bd. 1, H. 4, 1982, S. 3-10
[WIP80]
Winkel, D.; Prosser, F.: The art of Digital Design: An Introduction to Top-Down Design. Englewood Cliffs: Prentice-Hall, 1980
3.3 Kontinuierliche und diskrete Signale
23
3 Nachricht und Signal 3.1 Information und Nachricht Der Begriff Information ist ungeachtet seines häufigen Gebrauchs nicht formal definiert. Er wird im Sinne der Gemeinsprache als Kenntnis über reale oder gedankliche Sachverhalte und Vorgänge benutzt. Er umfasst alle Aspekte einer Mitteilung einschließlich der semantischen und pragmatischen Ebene. „Herr Maier ist geflogen“
Kündigung Sehr geehrter Herr Maier, die von Ihnen beschaffene EDV-Anlage CVK7.5 hat errechnet, dass bereits 10% ihrer Leistung ausgereicht hätten, um Ihre Arbeitskraft voll zu ersetzen. CVK7.5 bedauert deshalb, Ihnen mitteilen zu müssen, dass mit der Übernahme der Betriebsführung zum 01.01.2001 durch CVK7.5 .....
Bild 3.1: Unterschiedliche Interpretation derselben Information Für den Begriff Nachricht hingegen liegen formale Festlegungen vor; so heißt es in DIN 44300 Teil 2: Nachricht: Gebilde aus Zeichen oder kontinuierlichen Funktionen, die aufgrund bekannter oder unterstellter Abmachungen Information darstellen und die vorrangig zum Zweck der Weitergabe als zusammengehörig angesehen und deshalb als Einheit betrachtet werden. Als Sonderfall wird in dieser Norm der Begriff Daten (Singular Datum) aufgefasst. Er unterscheidet sich nur durch die Zweckbestimmung von der Nachricht: Daten: Gebilde aus Zeichen oder kontinuierlichen Funktionen, die aufgrund bekannter oder unterstellter Abmachungen Information darstellen, vorrangig zum Zweck der Verarbeitung oder als deren Ergebnis.
24
3 Nachricht und Signal
Der dabei benutze Begriff Zeichen ist definiert als ein Element aus einer endlichen Menge von Objekten (Zeichenvorrat), die zur Darstellung von Information vereinbart wurde. - Morsezeichen "-" {_,·, } - Morsealphabet " _ ... " {. _ ,_ .., _ . _ . ,..., _ _ .. } - Buchstaben
"G"
{A, B, C, ... , Z}
- Ziffern
"4"
{0, 1, 2, 3, ... ,9}
- beliebiger Zeichensatz
"!"
{¡,!,,‡,Ø}
Tabelle 3.1: Beispiele für Zeichen und Alphabete Als Zeichen werden nur einzelne Objekte aus dem Zeichenvorrat betrachtet. Im zweiten Beispiel kann " ..." nur unter dem zugrundegelegten Zeichenvorrat als Zeichen betrachtet werden; legt man den Zeichenvorrat des ersten Beispiels zugrunde, dann handelt es sich bei " ..." um eine Zeichenfolge. Ein Zeichen (oder eine Zeichenfolge) wird als Symbol bezeichnet, wenn ihm in der gegebenen Situation eine bestimmte Bedeutung zugeordnet ist. - mathematische Symbole: - mathematische Symbole:
+,-,.,/,=
- Kühlschrank: - Kühlschrank:
- Spielkarten: - Spielkarten:
j, , i, , h ,
k,
- Schalt-“Zeichen“
,
- Schalt-„Zeichen":
,
,
- Elektroherd - Elektroherd: Tabelle 3.2: Beispiele für Symbole und ihre Zuordnung
3.2 Physikalische Größen als Nachrichtenträger Die technisch betrachtete Darstellung von Nachrichten bedarf stets eines Trägers meist physikalischer Natur, bei dem durch technische Maßnahmen Veränderungen kennzeichnender Parameter vorgenommen werden können. Verwendet werden vorzugsweise solche physikalische Größen, welche technisch/technologisch gut beherrschbar sind oder für einen besonderen Zweck günstige Eigenschaften aufweisen. Zum Aufprägen einer Nachricht dienen charakteristische Veränderungen vereinbarter Parameter. Die Parameter und deren Änderungen
3.3 Kontinuierliche und diskrete Signale
Physikalische Größe Spannung, Strom
Widerstand
25
Veränderbarer Parameter Amplitude, Kurvenform, Frequenz, Phasenlage Widerstandswert
Feldstärke
Betrag, Richtung
Reflexionsfähigkeit
Reflexionsfaktor
Durchlässigkeit
Transmissionsfaktor
Tabelle 3.3: Beispiele für physikalische Größen als Träger von Nachrichten sind häufig mit einem zeitlichen Verlauf oder einer räumlichen Abhängigkeit verbunden. Die Verwendung physikalischer Größen in diesem Zusammenhang führt nach DIN 44300 auf einen neuen Begriff: Signal : Die Darstellung von Nachrichten oder Daten mit physikalischen Mitteln. Allgemein versteht man daher unter einem Signal die (systematische) Veränderung von Parametern einer physikalischen Größe (meist in Raum oder Zeit) nach vereinbarten Regeln.
3.3 Kontinuierliche und diskrete Signale Im Makroskopischen lassen sich für viele physikalische Größen funktionelle Zusammenhänge modellieren, bei denen Argument und Funktionswert der Menge der reellen Zahlen entnommen werden. Da somit die Werte der kennzeichnenden Parameter beliebig fein wählbar sind, spricht man von kontinuierlich verlaufenden Signalen (häufig, aber falsch als Analogsignal bezeichnet). Da aber aus messtechnischen sowie aus physikalischen Gründen diese Feinheit nicht beliebig klein gemacht werden kann, lassen sich Parameterwerte nur endlich genau feststellen, was zwangsläufig dazu führt, dass nur die Angabe von Wertebereichen möglich ist. Man kommt so zu Signalen mit Werteintervallen und spricht dann besser von diskreten Signalen. Bei den sogenannten Analogsignalen kann die physikalische Größe innerhalb eines durch Minimal- und Maximalwert gegebenen Intervalls "beliebige" Werte annehmen, die allerdings stets mit der Messunsicherheit behaftet sind, damit also grundsätzlich wieder Intervalle repräsentieren, die sich teilweise überlappen. Abgesehen davon existieren für kleinste physikalische Bereiche nur gestufte Werteverläufe (z.B. Quanteneffekte); dort sind nur diskrete Signale darstellbar.
26
3 Nachricht und Signal
W
kontinuierliches Signal
W
zeitdiskretes, wertkontinuierliches Signal
W
zeitkontinuierliches, wertdiskretes Signal: Digitales Signal
W
zeitdiskretes, wertdiskretes Signal: Digitales Signal
Bild 3.2: Typen von Signalen
3.4 Signale mit begrenzter Zahl von Werten
27
3.4 Signale mit begrenzter Zahl von Werten In der Digitaltechnik schränkt man die Zahl der Werte ein, die ein Signal annehmen kann, um zu preiswerten und zuverlässigen technischen Lösungen kommen zu können. Ein Digitalwert steht dann jeweils für ein Intervall. Eine einfache Aufteilung in Intervalle führt aber auf das Problem, an den Intervallgrenzen beliebig genau entscheiden zu müssen, ob ein Signalwert dem einen oder anderen Intervall bzw. Digitalwert angehört. Dies widerspricht der Forderung nach einer preiswerten technischen Lösung. physikalische Größe
Maximalwert I4
I6 I5 I4 I3
I3
I2 I1 Minimalwert
Bild 3.3a: Exakte Diskrimination an den Intervallgrenzen
Man greift daher zu einem Trick und schiebt jeweils ein Intervall ein, dessen Digitalwertzuordnung zu den benachbarten Intervallen undefiniert (d.h. willkürlich) ist. Dann kann das Zuordnungsproblem mit technisch einfachen Schaltungen gelöst werden. undefinierter Bereich
I4
I3
Bild 3.3b: „Weiche“ Diskrimination an den Intervallgrenzen
28
3 Nachricht und Signal
Bei n Sollintervallen (Digitalwerten) sind also n-1 undefinierte Zwischenintervalle notwendig. Die Zuordnung eines einzigen Digitalwertes zu einem Intervall lässt nicht mehr erkennen, wo genau sich der davon repräsentierte Signalwert befindet. Bei geringer Anzahl von Digitalwerten, d. h. großen Intervallbereichen, ist deshalb eine digitale Darstellung nicht unbedingt "genauer" als eine analoge, auch wenn das Vorhandensein einer Zahl zur Kennzeichnung eines Wertes diesen Eindruck erwecken mag.
3.5 Binärsignale Von Bedeutung ist eine Signaldarstellung mit der geringsten Digitalwertezahl, nämlich zwei. Man kann dann vermuten, dass die zugehörige technische Lösung besonders einfach und damit kostengünstig ist. In der Digitaltechnik benennt man üblicherweise die beiden Intervalle mit H bzw. L. H und L sind dabei Aussagen, die sich auf die relative Lage des Intervalls auf dem Zahlenstrahl beziehen. physikalische Größe Technische Lösung
L-Bereich
H-Bereich
Maximalwert High-Intervall, H Undefinierter Bereich Low-Intervall, L
TTL-Technik
0...0,8V
2,0...5V
V.24-Schnittstelle
-12...-3V
3...12V
Schalter
niederohmig
hochohmig
Transmissionsfak-
0...40%
70...100%
tor Minimalwert
Bild 3.4: Binärsignal
Tabelle 3.4: Beispiele für Binärsignale
Diese Signaldarstellung lässt also nur die Auswahl aus zwei Werten zu, was die elementarste Entscheidungsmöglichkeit ist. Man sagt daher, dass ein Binärsignal eine Information von 1 bit darstellt (bit: binary digit ). (In diesem Zusammenhang bezeichnet man die Alternativen häufig mit 0 bzw. 1, um von der technischen Darstellung zu abstrahieren). Schaltungen für Binärsignale sind technisch gesehen besonders günstig (Aufwand, Geschwindigkeit, Platzbedarf, funktionelles Verständnis usw.), so dass sie heute in den Anwendungen dominieren. Trotzdem können Signale mit mehr als zwei Werten für besondere Anwendungsfälle eine bessere technische Eignung als Binärsignale haben.
3.5 Binärsignale
29
Im Allgemeinen reicht ein Binärsignal zur Informationsdarstellung nicht aus. Es stellt sich daher die Frage nach einer zusammengesetzten Repräsentation aus mehreren Binärsignalen. Bild 3.5 zeigt die kombinatorischen Möglichkeiten. Zahl der Binärsignale 2 1 L LL H LH HL 2 HH
3 LLL LLH LHL LHH HLL 2.2=4 HLH HHL HHH 2.2. 2=8
... 4 LLLL LLLH LLHL LLHH LHLL LHLH LHHL LHHH HLLL HLLH HLHL HLHH HHLL HHLH HHHL HHHH 2 . 2 . 2 . 2 = 16
n LL...LLLL LL...LLLH LL...LLHL LL...LLHH LL...LHLL LL...LHLH LL...LHHL LL...LHHH LL...HLLL LL...HLLH LL...HLHL LL...HLHH LL...HHLL LL...HHLH LL...HHHL LL...HHHH
Zahl der möglichen Wertekombinationen
HH...HHHL HH...HHHH n
2 . 2 . ... . 2 = 2
Bild 3.5: Bildung zusammengesetzter Binärsignale
Mit n Binärsignalen lassen sich also 2n unterschiedliche Kombinationen bilden. Umgekehrt kann man fragen, wie viele Binärsignale zur Darstellung von N Werten (Zeichen) gebraucht werden. Es muss auf jeden Fall gelten: N d 2n Dann wird
n = log2N = ldN | 3,322 log10N
mit log210 | 3,322.
n muss aber ganzzahlig sein (es gibt keine Bruchstücke von Binärsignalen); man drückt das aus durch n=
ld N
;
=^ nächstgrößere ganze Zahl
Gilt N < 2n, so werden nicht alle möglichen Wertekombinationen benötigt. Es bleiben Kombinationen übrig, welche nicht zur Informationsdarstellung gebraucht werden. Man bezeichnet sie als redundant (= überflüssig) und definiert: Absolute Redundanz:
R = 2n - N
30
3 Nachricht und Signal
Relative Redundanz:
n = N=6 Eine mögliche Zuordnung:
Beispiel:
n r = 2 -n N = R 2 2n
ldN
=
ld6
=
0d r < 1 258
= 3
Redundante Kombinationen:
1 : LLL 4 : LHH HHL 2 : LLH 5 : HLL HHH 3 : LHL 6 : HLH Damit ergibt sich als absolute Redundanz R = 2 und als relative Redundanz r = 0,25. Strukturierung von zusammengesetzten Binärsignalen Es ist üblich, Binärsignale zu Strukturen zusammenzufassen; die wichtigsten sind:
Bündel:
(xk, xl, xm, ... xz) schwacher innerer Zusammenhang z.B.: (Türzustand, Fahrtrichtung, Überlast, Normalbetrieb bei einer Aufzugssteuerung)
Vektoren: (xn, xn-1, xn-2, ... , x2, x1)
linear geordnet
(xk4, xk3, xk2, xk1, ... , x14, x13, x12, x11) bereichsweise linear geordnet (4·k = n). z.B.: Digitale Balkenanzeige, Nadeldrucker, Strichcode bei Verpackungen, Scheckkarten (Magnetstreifen), usw. Sonderfälle:
n = 4 (vorzugsweise bei Zahlendarstellung da 10 < 24)
n = 8 sogenanntes Byte N = 28 = 256 (reicht für Alphabet, Ziffern und Satz- und Sonderzeichen) Sowohl für Bündel als auch für Vektoren wird in der Digitaltechnik auch der Begriff Wort benutzt. Matrizen:
zweidimensional:
x1l ... x12x11 x2l ... x22x21 xkl ... xk2xk1
oder:
v1l ... v12v11 v2l ... v22v21 vkl ... vk2vk1
n = k·l, z.B. bei Bildschirmen, Blindenschrift, Matrix-Nadeldruckern, Lottoscheinen, Punktmatrixanzeigen usw.
dreidimensional: vij = ( xm, xm-1, ... , x2, x1) für i = 1 ...k, j = 1 ... l z.B.: Bildschirme mit 2m Graustufen oder 2m Farben je Bildpunkt.
3.6 Informationsgehalt
31
3.6 Informationsgehalt Neben der Möglichkeit, Zeichen eines Alphabets geeignet darstellen zu können, interessiert auch die Frage, wieviel Information ein solches Zeichen trägt. Man möchte also eine möglichst quantitative Aussage treffen, um ein Zeichen z.B. im Vergleich zu anderen oder im Hinblick auf seinen technischen Darstellungsaufwand bewerten zu können. Von den vielen denkbaren Alternativen erscheint die Verbindung zwischen der Auftrittswahrscheinlichkeit eines Zeichens und dem ihm zugewiesenen Informationsgehalt besonders vorteilhaft. Zum einen lassen sich dadurch einige positive Eigenschaften der Metrik sicherstellen, zum anderen entspricht das dabei gefundene Maß dem durchschnittlichen Empfinden eines Informationsempfängers. Die Ermittlung des Informationsgehaltes He eines Zeichens beruht auf der Annahme, dass ein Zeichen umso mehr Information trägt, je seltener es beim Empfänger eintrifft; der Informationsgehalt He eines einzelnen Zeichens steigt also mit abnehmender Auftrittswahrscheinlichkeit p des Zeichens. Zum Beispiel birgt die Aussage "Herz" bei einer Spielkarte weniger Information, als die Aussage "Karo Dame". Die erste Aussage hat die Wahrscheinlichkeit p=1/4, die zweite p=1/32. Ein Zeichen, das mit Sicherheit auftritt (p=1), birgt gar keine Information. Man definiert deshalb den Informationsgehalt eines einzelnen Zeichens zu: He = ld (1/p) Die Einheit ist, wie beim Binärsignal bereits eingeführt, 1 bit. Sie entspricht der elementaren Entscheidung zwischen zwei gleichwahrscheinlichen Möglichkeiten (p=1/2). Dabei setzt man voraus, dass die beobachteten Zeichen voneinander unabhängig sind. Für das Kartenspiel ergibt sich zum Beispiel:
p=1/4
p=1/4
p=1/8
p=1/4
p=7/8
p=1/4
j He =2bit
k He =2bit
h F
He =2bit
i H He =2bit =2bit e
“As”
“kein As”
=3bit HHe=3bit
|=0,2bit H 0,2bit Hee|
e
Bild 3.6: Beispiel für gleich- bzw. ungleichwahrscheinliche Symbole
32
3 Nachricht und Signal
Die Betrachtung nicht gleichwahrscheinlicher Zeichen führt zu der Frage, welchen durchschnittlichen Informationsgehalt ein einzelnes Zeichen in einer langen Zeichenfolge hat. Geht man davon aus, dass die Informationsquelle ein Alphabet mit N Zeichen benutzt, deren Auftrittswahrscheinlichkeit bekannt ist, so gilt stets N
p(i)=1 ¦ i=1 da ja mit Sicherheit irgendeines der N Zeichen auftritt. Enthält nun die beobachtete Folge L Zeichen, so tritt ein spezielles Zeichen i mit der Wahrscheinlichkeit L . p(i) darin auf; zusammen liefern also alle auftretenden Zeichen i den Informationsbeitrag L . p(i) . Hei = L . p(i) . ld 1 p(i) Betrachtet man alle N Zeichen zusammen, so erhält man für den durchschnittlichen Informationsgehalt pro Zeichen N
H= ¦ p(i) ld 1 p(i) i=1 und nennt H Entropie der Quelle. Die Bestimmung des Informationsgehaltes von Zeichen stellt ein Teilproblem innerhalb eines größeren Gebiets dar, der sogenannten Informationstheorie. Diese ist von zentraler Bedeutung für die Beurteilung von Einrichtungen zur Nachrichtenübermittlung, nicht jedoch für die Verarbeitung von Nachrichten und Daten, und soll hier daher nicht weiter betrachtet werden.
3.7 Aufgaben Aufgabe 3.1 Eine ideale Personenwaage mit einer Ziffernanzeige, die eine Stelle hinter dem Komma zulässt, rundet so, dass der tatsächliche Wert und der angezeigte Wert eine minimale Differenz aufweisen. 3.1.1 Die Waage zeige 100,0 kg an; in welchem Intervall muss dann der tatsächliche Wert liegen, wenn alle Intervalle gleich groß sind und sich nicht überlappen? 3.1.2 Durch Messungenauigkeiten lassen sich Toleranzen bis zu ±0,04 kg nicht vermeiden. Wie verändert sich das Abbildungsintervall? Tragen Sie die undefinierten Bereiche in einen Zahlenstrahl ein.
3.7 Aufgaben
33
Aufgabe 3.2 Mit Hilfe der unten dargestellten Drehscheibe soll ein Drehwinkel digitalisiert werden. Die Scheibe ist in 16 Sektoren mit jeweils vier Feldern eingeteilt. Vier Schleifkontakte stellen fest, ob ein Feld metallisch beschichtet ist oder nicht. Entsprechend melden sie das Signal 1 oder 0 zurück. In der folgenden Tabelle wurde jedem Sektor ein Signalwert zugeordnet Intervall
Signalwert
0°-22,5° 22,5°-45°
undef. Bereich
Intervall
Signalwert
0000
180°-202,5°
1100
0001
202,5°-225°
1101
45°-67,5°
0011
225°-247,5°
1111
67,5°-90°
0010
247,5°-270°
1110
90°-112,5°
0110
270°-292,5°
1010
112,5°-135°
0111
292,5°-315°
1011
135°-157,5°
0101
315°-337,5°
1001
157,5°-180°
0100
337,5°-360°
1000
undef. Bereich
3.2.1 Wo liegen die undefinierten Bereiche bei der gegebenen Digitalwertzuordnung? Wieviele Winkelgrade umfassen die undefinierten Bereiche jeweils, wenn man annimmt, dass die Schleifkontakte auf den Radien 3, 4, 5 und 6 cm liegen und in tangentialer Richtung eine Toleranz von ±1 mm aufweisen? 3.2.2 Wieviele Schleifkontakte werden benötigt, wenn die Winkelauflösung auf 1° genau erfolgen soll? Welches Problem würde sich dabei zusätzlich ergeben? 0°
315°
0 0 0 0
45°
270°
90°
225°
135°
180°
34
3 Nachricht und Signal
Aufgabe 3.3 Für die Bundesrepublik Deutschland wurde 1986 folgende Altersstruktur festgestellt: Alter in Jahren Bevölkerung in 1000
Alter in Jahren Bevölkerung in 1000
0-5
6-13
14-17
18-20
21-27
3 619
4 707
3 200
3 076
5 610
28-37
38-49
50-59
60-64
über 65
10 401
9 950
8 080
3 310
9 273
3.3.1 Die Bevölkerung soll in zwei Gruppen "Alt" und "Jung" eingeteilt werden, so dass die Aussage "Herr Müller ist alt" einen Informationsgehalt von einem Bit hat. 3.3.2 Ein kleines Kind wird die Grenze zwischen alt und jung bei etwa 13 Jahren ansetzen. Das Kind behauptet nun "Hans ist alt" und "Franz ist jung". Wie hoch ist der Informationsgehalt dieser beiden Aussagen?
Zum Weiterlesen: [STE67]
Steinbuch, K. (Hrsg.): Taschenbuch der Nachrichtenverarbeitung. 2. Aufl., Berlin: Springer, 1967
[STR82]
Steinbuch, K.; Rupprecht, W.: Nachrichtentechnik. Band 2: Nachrichtenübertragung. 3. Aufl., Berlin: Springer, 1982
4.5 Codes für die Nachrichtenübertragung, optimale Codes
35
4 Codes 4.1 Code und Codewörter Ein Code ist eine Vorschrift für die eindeutige Zuordnung (Codierung) der Zeichen eines Zeichenvorrats (Urmenge) zu denjenigen eines anderen Zeichenvorrats (Bildmenge). Die Zuordnung muss nicht umkehrbar eindeutig sein.
a
A b B c C D d ...
...
Bild 4.1: Beispiel für eine Zuordnung von Zeichen verschiedener Alphabete In der Digitaltechnik benutzt man statt der Werte L und H die abstrakten Symbole 0 und 1. Zeichen sind dann meist Vektoren, die aus diesen Elementen, den Binärstellen, aufgebaut sind. Da ein Zeichenvektor auch als Wort bezeichnet wird, spricht man in diesem Zusammenhang auch von Codewörtern. Wird die Anzahl der Binärstellen eines Codeworts mit m bezeichnet, so ergibt sich beispielsweise Codewort Anzahl Binärstellen 00110101 m=8 10010 m=5 Die Zahl N der genutzten m-stelligen Codewörter in einem Code passt sich meist einer speziellen Aufgabe an; es muss aber stets gelten N < 2m. Häufig werden die Codewörter eines Codes derart strukturiert, dass gültige Codewörter eine bestimmte 0/1-Verteilung aufweisen; dabei kann einerseits die Zahl k der Einsen, andrerseits auch deren Lage im Codewort bedeutsam sein. Ist m sowie k vorgegeben und spielt die Lage der Einsen keine Rolle, so lassen sich ( mk ) unterschiedliche Codewörter bilden. Ihre Anzahl lässt sich mit Hilfe kombinatorischer Formeln berechnen. Das Pascal´sche Dreieck bietet aber in diesem Zusammenhang auch die Möglichkeit einer schnellen tabellarischen Bestimmung dieses Werts.
36
4 Codes
Beispiel: m = 5
k=2
(52) = 10
Es lassen sich damit folgende Codewörter bilden: (00011)
(10100)
(00101)
(11000)
(00110)
(01001)
(01010)
(10001)
(01100)
(10010)
Da genau zehn Codewörter existieren, können ihnen die Ziffern 0 ... 9 zugeordnet werden; man gelangt so zu einer binären Codierung der Dezimalziffern. Als wichtiges Unterscheidungsmerkmal zwischen gleichlangen Codewörtern dient häufig die Anzahl unterschiedlicher Binärstellen zwischen ihnen, die als Hammingdistanz HD bezeichnet wird (nach R.W. Hamming, [HAM50]). So weisen beispielsweise die Codewörter des (2 aus 5)-Codes mindestens HD = 2 auf. Die Codierung von Information wird durchgeführt, um der Information günstige Eigenschaften bezüglich Merkmalen wie -
Verarbeitbarkeit Lesbarkeit (Mensch / Maschine) Übertragbarkeit Fehlersicherheit Speicherbarkeit
usw. zu geben. Je nach dem vorrangigen Ziel kommt man zu unterschiedlichen Codes, von denen einige wichtige in den folgenden Kapiteln vorgestellt werden.
4.2 Codes für die Analog/Digital-Umsetzung An der Schnittstelle zwischen Teilsystemen mit stetig dargestellten Größen und digital arbeitenden Teilsystemen besteht die Notwendigkeit, einen (endlichen) Bereich der stetigen physikalischen Größe in eine Darstellung mit Binärgrößen bei gegebener Auflösung umzusetzen. Das dabei auftretende Problem ist das Auffinden einer geeigneten Zuordnung zwischen den stetig angeordneten Werten und den Binärwörtern, so dass kleine Veränderungen bei den Werten auch als "kleine Veränderungen" auf der Binärseite abgebildet werden. Die Situation bei einer Waage soll dies verdeutlichen (Bild 4.2). Die mechanische Anordnung aus Feder, Waagschale und Anzeige erlaubt die Feststellung, wie groß das Gewicht eines auf die Schale gelegten Objektes ist; die Messgenauigkeit hängt dabei von der Präzision der Mechanik und bestimmten physikalischen Gegebenheiten ab.
4.2 Codes für die Analog/Digital-Umsetzung
Feder
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Ablesefenster
37
Analog/DigitalWandler
000 001 010 011 100 101 110 111
Gewicht Bild 4.2: Wandlung von stetigen Signalen in zusammengesetzte Binärsignale Ordnet man nun der Zeigerstellung eine Wandlervorrichtung zu, die die mechanische Auslenkung in eine 0/1-Darstellung umsetzt, so scheint die Anordnung der Codewörter bezüglich der Messwerte nicht frei wählbar zu sein. Geht man von der in Bild 4.2 gezeigten Stellung aus, so vollzieht sich bei weiterer Erhöhung des Gewichts folgender Wechsel der Binärsignale: 011 100 Da aber wegen technischer Unvollkommenheiten der Wechsel bei den drei Binärvariablen nicht gleichzeitig erfolgen muss, können zwischen den beiden SollCodewörtern andere entstehen: 011
111, 001, 010, 101, 110 oder 000
100
38
4 Codes
Damit können Codewörter auftreten, die vom momentanen Wert der Messgröße beliebig weit abliegen und damit eine fehlerhafte digitale Anzeige verursachen. Eine Lösung dieses Problems besteht darin, dass nebeneinanderliegenden Messwerten auch "nebeneinanderliegende" Codewörter zugewiesen werden. Offensichtlich entsteht die fehlerhafte Wandlung durch die Notwendigkeit, dass sich beim Übergang mehr als eine Binärstelle ändern muss. Gelingt es, die Codewörter so anzuordnen, dass benachbarte Codewörter die Hammingdistanz Eins aufweisen, so kann die Unsicherheit im Umschalten stets nur die beiden sowieso beteiligten Codewörter einbeziehen, das heißt nur einen Wandlungsfehler von Eins in der kleinsten Messeinheit verursachen. Man kommt so zu den sogenannten einschrittigen Codes, deren wichtigster Vertreter der Gray-Code ist (siehe Tabelle 4.1). Linear Zyklisch 0: 0000 1: 0001 2: 0011 3: 0010 4: 0110 5: 0111 6: 0101 7: 0100 8: 1100 9: 1101
0: 1: 2: 3: 4: 5: 6: 7: (0:
000 001 011 010 110 111 101 100 000)
Tabelle 4.1: Codierung nach Gray für m=4 bzw. m=3
4.3 Austauschcodes Informationen und Daten werden auch in digitalisierter Form zwischen Teilsystemen ausgetauscht, da eine jeweilige Rückwandlung in stetige Signale und ihre erneute Analog/Digital-Umsetzung nicht sinnvoll ist. Es bedarf somit einer Vereinbarung, wie ein Teilsystem Daten darstellt und weiteren Teilsystemen übergibt. Von den vielen Möglichkeiten, dafür geeignete Codes zu schaffen, sind solche Lösungen von besonderem Interesse, bei denen eine lexikographische Anordnung der Zeichen eines zu codierenden Alphabets in eine entsprechende lexikographische Anordnung in einem Binäralphabet abgebildet wird. Als weit verbreiteter Vertreter dieser Klasse von Codes kann der ASCII-Code (American Standard Code for Information Interchange) angesehen werden. Er umfasst neben Buchstaben und Ziffern auch viele international gebräuchliche Sonder- und Steuerzeichen. Die lexikographische Ordnung von Buchstaben und Ziffern wird auch von den Codewörtern beibehalten (Bild 4.3).
4.3 Austauschcodes
39
LSB Hex Binär -0 0000 -1 0001 -2 0010 -3 0011 -4 0100 -5 0101 -6 0110 -7 0111 -8 1000 -9 1001 -A 1010 -B 1011 -C 1100 -D 1101 -E 1110 -F 1111
MSB 0000
1001
2010
3011
4100
5101
6110
7111
NUL
DLE
SP
0
@
P
’
p
SOH
DC1
!
1
A
Q
a
q
STX
DC2
„
2
B
R
b
r
ETX
DC3
#
3
C
S
c
s
EOT
DC4
$
4
D
T
d
t
ENQ
NAK
%
5
E
U
e
u
ACK
SYN
&
6
F
V
f
v
BEL
ETB
´
7
G
W
g
w
BS
CAN
(
8
H
X
h
x
HT
EM
)
9
I
Y
i
y
LF
SUB
*
:
J
Z
j
z
VT
ESC
+
;
K
[
k
{
FF
FS
,
N
^
n
~
SI
US
/
?
O
_
o
DEL
MSB: Most Significant Bits Beispiel:
LSB: Least Significant Bits
A = 41H = 100 0001B MSB
LSB
Bild 4.3: Zeichendarstellung im ASCII-Code Im internationalen Verkehr und für nicht-englische Sprachen weist der ASCII-Code mit seinen 7 bit breiten Codewörtern allerdings zu wenige Binärkombinationen auf, um Sonderzeichen anderer Sprachen (z.B. deutsche Umlaute) darstellen zu können.
40
4 Codes
Es besteht daher die Gefahr, dass es durch geänderte Zuweisungen im Code oder zusätzliche Bitstellen zu nationalen Dialekten kommt, die dem unproblematischen Datenaustausch im Wege stehen. Es zeichnen sich daher Entwicklungen ab, die wesentlich mehr Stellen für einen Austauschcode vorsehen; eine gewisse Festlegung hat inzwischen ein 16-Bit-Code erreicht. Dieser UNICODE ist in der Norm ISO 10646 Version 1.2 vollständig genormt, und er definiert 65536 Zeichen; dabei ist der ASCII-Code vollständig in ihm enthalten und belegt die ersten 128 Zeichen. 1991 wurde ein 32 bit breiter Code UCS genormt, der sich aber bisher in der Praxis kaum durchsetzen konnte, in dem aber der UNICODE eine der möglichen Einbettungen bildet. Als Austauschcodes kann man auch die Codes auffassen, die an der Schnittstelle vom und zum Teilsystem Mensch notwendig sind. Von den vielen hier eingesetzten Informationsdarstellungen seien beispielhaft der 7-Segment-Code für die Zifferndarstellung, die Punktmatrixanzeigen für Zeichen und solche Codes genannt, welche die Maschinenlesbarkeit von Zeichen ermöglichen. Bei diesen Codes handelt es sich um Zeichendarstellungen, bei denen durch passende Verformungen von Zeichen (z.B. Ziffern und Alphabetzeichen) optische Abtast- und Erkennungsverfahren mit hoher Trefferrate möglich sind. Zu ihnen gehören der neue Zeichensatz für das Kfz-Eurokennzeichen und die OCR-Schriften (Optical Character Recognition) (Bild 4.4).
...
Bild 4.4: Zeichen der in DIN 66008 genormten OCR-A-Schrift
Manchmal kombiniert man auch zwei Codes miteinander, um verbesserte Maschinen- und visuelle Lesbarkeit sicherzustellen. Hierbei ist besonders der auf vielen Verkaufsverpackungen oder anderen Objekten aufgebrachte Strichcode zu nennen, dessen Strichen unterschiedlicher Lage und Stärke die entsprechenden Zahlen im Klartext zugeordnet sind. Erwähnt seien außerdem Blindenschrift, Töne, Tonfolgen, festbelegte Funktionstasten, Segmentanzeigen, Punktmatrixanzeigen usw., die ebenfalls Zeichensätze für die Kommunikation zwischen Mensch und Maschine darstellen.
4.4 Codes für Fehlererkennung und -korrektur
41
4.4 Codes für Fehlererkennung und -korrektur Bei der Übertragung bzw. bei der Speicherung von Binärinformationen können Störeinflüsse den Wert der zur Darstellung verwendeten physikalischen Größe so verändern, dass es zu einer falschen Zuordnung kommt (0/1-Vertauschung). Geeignete Codes sollen dies erkennen lassen und möglicherweise eine Korrektur zurück zum richtigen Wert erlauben. Diese Eigenschaft muss jedoch mit zusätzlichem Darstellungsaufwand erkauft werden; dieser soll daher möglichst gering sein. Codes mit solchen Eigenschaften liegt folgende Idee zugrunde. Man nimmt zunächst die Zahl der gleichzeitig zu berücksichtigenden Fehler an (meist ein oder zwei Fehler). Danach ergänzt man die Binärdarstellung um weitere Komponenten so, dass mehr Codewörter vorhanden als zur eineindeutigen Darstellung nötig sind. Die Zuordnung erfolgt dann so, dass Fehler auf Codewörter führen, die zur eigentlichen Codierung nicht verwendet worden sind. Tritt ein solches Codewort im Betrieb auf, so kann man auf das Auftreten eines Fehlers schließen (Fehlererkennung). Das Konzept für die 1-Fehlererkennung lässt sich am besten an einem Beispiel verdeutlichen. Gegeben seien zwei gültige Codewörter sowie ein nicht verwendetes Codewort, das jeweils durch einen Fehler aus den gültigen Codewörtern entstehen kann. Tritt das dem Fehlerfall zugeordnete Codewort auf, so lässt sich nur die Tatsache des Fehlers feststellen, nicht aber auf das ursprünglich gültige Codewort schließen. 1 Fehler
1 Fehler
0010
0011
0111
gültiges Codewort
unbenutztes Codewort, Fehlerfall
gültiges Codewort
Fordert man die Möglichkeit einer Fehlerkorrektur, so muss das fehlerhafte Codewort die Information enthalten, aus welchem gültigen Codewort es durch einen Fehler entstanden ist. Auch hier soll ein Beispiel das Vorgehen verdeutlichen. Korrektur 0010 1. Fehler gültiges Codewort
2. Fehler 0011
1. Fehler 0111
2. Fehler unbenutztes Codewort, Fehlerfall
1111 Korrektur gültiges Codewort
Wie man sofort aus diesem Schema erkennen kann, bietet eine solche Lösung eine Alternative an: Entweder Ein- bzw. Zweifachfehler erkennen oder Einfachfehler korrigieren.
42
4 Codes
Beispiele: 1)
Primitive Lösungen sehen einen Code vor, der, nach anderen Gesichtspunkten entwickelt, nur einen Teil der möglichen Codewörter für die Zuordnung benutzt. Das Auftreten anderer Codewörter ist dann der Fehlerfall, wie es z.B. bei den Pseudotetraden des BCD-Codes der Fall ist (Kap. 4.5). Ein Gegenbeispiel ist der (2 aus 5)-Code, dessen gültige Codewörter systematischer ausgewählt werden.
2)
Legt man Wert auf eine Codierung, die primär anderen Kriterien Rechnung trägt, so lässt sich dennoch eine Prüftechnik angeben, welche die 1-FehlerErkennung unterstützt. Dazu ergänzt man jedes entstandene Codewort so, dass die Zahl der Einsen entweder auf eine gerade oder eine ungerade Anzahl gebracht wird (even oder odd parity). Tabelle 4.2 zeigt die notwendige Ergänzung für den BCD-Code (siehe auch Bild 4.3, LSB-Anteil bei der Darstellung der Ziffern). BCD-Code mit Parität
Dezimal 0
BCD-Code
0000
mit gerader Parität 0000 0
mit ungerader Parität 0000 1
1
0001
0001 1
0001 0
2
0010
0010 1
0010 0
3
0011
0011 0
0011 1
4
0100
0100 1
0100 0
5
0101
0101 0
0101 1
6
0110
0110 0
0110 1
7
0111
0111 1
0111 0
8
1000
1000 1
1000 0
9
1001
1001 0
1001 1
Tabelle 4.2: Ergänzung auf gerade bzw. ungerade Quersumme 3)
Das genannte, zunächst für einzelne Codewörter gültige Prinzip lässt sich auf Listen von Codewörtern erweitern und führt zu der sogenannten Blocksicherung mit doppelter Quersummenergänzung. Diese erfasst jeweils die Spalten und Zeilen eines Datenblocks. Beim Auftreten eines Fehlers lässt sich aus der fehlerhaften Quersumme je einer Zeile und je einer Spalte auf den Ort der Verfälschung schließen und daher der Fehler beheben (Bild 4.5).
4.5 Codes für die Nachrichtenübertragung, optimale Codes
Ziffer
43
BCD-Code mit gerader Parität
5 4 1 3 7 6
0 0 0 0 0 0
1 1 0 0 1 1
0 0 1 1 1 1
1 0 1 1 1 0
0 1 1 0 1 0
Prüfwort
0
0
1
0
1
Zeile mit Fehler (ungerade Parität)
Spalte mit Fehler (ungerade Parität)
Bild 4.5: Beispiel für eine Blocksicherung 4)
Systematisch konstruierte Codes, bei denen einem Codewort mehr als eine zusätzliche Binärstelle hinzugefügt wird. Hierfür steht eine umfangreiche Theorie zur Verfügung [HEQ89].
4.5 Codes für die Nachrichtenübertragung, optimale Codes Die Übertragung von Nachrichten und Daten erfordert spezielle Codes, die den Eigenschaften von Übertragungsstrecken besonders angepasst sind. Zwei Merkmale sind dabei von besonderem Interesse. Zum einen muss man die zu übertragenden Codewörter gegen Verfälschungen durch typische Fehlerfälle der Übertragungsstrecken schützen, zum andern sollte der Umfang der dargestellten Nachricht aus Gründen einer zeit- und damit auch kostenoptimierten Übertragung möglichst gering sein. In der Regel laufen diese beiden Anforderungen auf einen Kompromiss hinaus. Zunächst werde das Problem der Übertragungssicherheit diskutiert. Zwar kann man die im vorangehenden Kapitel vorgestellten Methoden zum Schutz der Nachrichtendarstellung nutzen, jedoch trifft häufig die zugrundeliegende Annahme über den Einzelfehlerfall nicht zu, da Fehler in Übertragungssystemen zeitlich konzentriert auftreten können. Solche Fehlertypen erfordern daher andere oder zusätzliche Schutzmaßnahmen. Als ein solches Konzept gegen Bündelfehler, wie sie z.B. durch massive elektromagnetische Beeinflussung von Übertragungsstrecken auftreten, setzt man die sogenannte Zeichenverflechtung ein. Die Binärstellen eines Zeichens werden dabei nicht mehr direkt nacheinander übertragen, weshalb ein länger anhaltender Störeinfluss nicht mehrere Binärstellen des gleichen Zeichens verfälscht (siehe Bild 4.6).
44
Ü b e r t r a g u n g
4 Codes
a 1 a 2 a 3 a 4 a5 a 6 a 7 b1 b 2 b3 b4 b5 b6 b7 c1 c 2 c 3 c4 c5 c 6 c7 d 1 d 2 d 3 d 4 d5 d 6 d 7 e1 e 2 e3 e4 e5 e6 e7
a 1 a 2 a 3 a 4 a5 a 6 a 7 b1 b 2 b3 b4 b5 b6 b7 c1 c 2 c 3 c4 c5 c 6 c7 d 1 d 2 d 3 d 4 d5 d 6 d 7 e1 e 2 e3 e4 e5 e6 e7
e7 d7 c 7 b7 a7 e6 d 6 c 6 b 6 a6 e5 d5 Senden Codewort c5 1 Codewort b5 2 Codewort a5 3 e4 Codewort 4 d4 Codewort c4 5 Bündel-Störung b4 a4 e3 d3 c3 b3 a3 Empfangen e2 a 1 b1 c1 d1 e1 a 2 b 2 c2 d 2
Bild 4.6: Beispiel für eine Übertragung mit Zeichenverflechtung Trotz der lange andauernden Störung wird pro Codewort nur ein Zeichen verfälscht. Erlaubt der für die Codewörter benutzte Code eine Fehlererkennung oder Fehlerbehebung für Einzelfehler, so ist der gesamte Fehler erkennbar bzw. behebbar. Allgemein können bei j Zeilen des Verflechtungsschemas (hier j=5) und einer Fehlererkennung von k Fehlern je Zeile Bündelfehler bis zur Länge j·k erkannt werden. Neben der Sicherheit gegen Verfälschung spielt bei der Übertragung auch die Länge einer Nachricht eine Rolle. Der sogenannte Morse-Code beispielsweise stellt einen frühen Versuch dar, statistische Eigenschaften der Sprache zu nutzen, um eine möglichst kurze Darstellung einer Nachricht zu erzielen. Häufig auftretende Buchstaben werden möglichst kurzen Codewörtern zugeordnet, während für seltener auftretende Buchstaben längere Codewörter gewählt werden: häufige Buchstaben
seltene Buchstaben
e:
j:
i:
y:
t:
q:
a:
ö:
S. Morse hat dieses Alphabet nicht erfunden, sondern nur für seinen Schreibtelegraphen verwendet; entwickelt hat es F. C. Gerke und eingeführt der „DeutschÖsterreichische Telegraphenverein“ [SMW02]. Eine Verallgemeinerung dieses Prinzips führt zu den sog. optimalen Codes (z.B. Shannon-Fanø- und Huffman-Code, [BER67]). Man versucht bei diesen, die im
4.5 Codes für die Nachrichtenübertragung, optimale Codes
45
Mittel auftretende Codewortlänge m zu minimieren. Der minimal erreichbare Idealwert wäre dabei der durchschnittliche Informationsgehalt H des Zeichenvorrats. Für einen Zeichenvorrat {x1, x2, x3,..., xn} gilt: n
n
1
¦ p(x ) ld p(x ) ¦ p(x ) H (x )
H
i
i
i 1
i
e
i
i 1
n
m
¦ p(x ) m(x ) i
i
i 1
mit p(xi) für die Auftrittswahrscheinlichkeit des Zeichens xi und m(xi) für die Länge des Codewortes für das Zeichen xi. Der Shannon-Fanø-Code wird konstruiert, indem der Zeichenvorrat nach aufsteigender Wahrscheinlichkeit linear geordnet und anschließend so in zwei Mengen aufgeteilt wird, dass die Summenwahrscheinlichkeiten der Teilmengen möglichst gleich sind. Die erste Teilmenge erhält als (erstes) Codierungszeichen z.B. eine "0", die zweite eine "1". Zur Bestimmung der weiteren Codierungsstellen wird das Verfahren mit den verbliebenen Teilmengen jeweils so lange wiederholt, bis nur noch ein Zeichen in jeder Teilmenge enthalten ist. Als Beispiel betrachten wir die Zeichen a b c d e mit der zugeordneten Wahrscheinlichkeit 0,1 0,1 0,2 0,3 0,3 . Bild 4.7 zeigt grafisch das Vorgehen bei der Code-Konstruktion. 6p = 1
{a,b,c,d,e} 0 {a,b,c} 0 {a,b} 0 {a}
p= 0,1
6p = 0,2
1
6p = 0,4
6p = 0,6
{d,e}
1
0 {c}
p= 0,2
{d}
1
p= 0,3
{e}
p= 0,3
1 {b}
p= 0,1
Codierung:
a 000
b 001
c 01
d 10
e 11
Bild 4.7: Konstruktion eines Shannon-Fanø-Codes Als Ergebnis erhält man für die im Mittel aufgewendete Zahl von Binärzeichen m = 2,2 gegenüber m = 3 bei Codierung mit konstanter Länge. Man beachte, dass der optimierte Code Worte unterschiedlicher Länge besitzt!
46
4 Codes
Vergleichbare Konzepte zur Optimierung des Darstellungsaufwands findet man auch bei Kompressionsalgorithmen für die bessere Nutzung von Speichermedien. Dort legt man bestimmte auftretende Zeichenketten als Datenworte fest und bestimmt näherungsweise deren Auftrittswahrscheinlichkeit, die dann als Grundlage zur Codekompression dient.
4.6 Polyadische Zahlensysteme Die Handhabung von Zahlen war und ist von zentraler Bedeutung für die Mechanisierung der Rechentechnik. Wie schon in Kapitel 1 angedeutet wurde, stellt eine transparente und systematische Darstellung von Zahlen auch eine der wesentlichen Grundlagen für den Erfolg der Rechenmaschinen dar. Daher soll in diesem Abschnitt etwas genauer auf Zahlendarstellungen eingegangen werden. In sogenannten polyadischen Zahlensystemen, zu denen auch das Dezimalsystem gehört, hat eine Zahl N folgenden Aufbau: N = dn · Rn + ... + d1 · R1 + d0 · R0 mit:
N: Zahl im Zahlensystem R: Basis, (Grundzahl, Radix) R t 2 Ri: Wertigkeit der i-ten Stelle di: Ziffer der Stelle i Z: Menge der Ziffern; di Z = {0, 1, 2, ... , R-1}
Zum Beispiel bedeutet die Zahl 1989 im Dezimalsystem (die Zahl erhält ein tiefgestelltes D, zum Kennzeichen, dass es sich um eine Dezimalzahl handelt): 1989D = 1 · 103 + 9 · 102 + 8 · 101 + 9 · 100 Die Ziffernmenge des Dezimalsystems lautet: ZD = {0,1,2,3,4,5,6,7,8,9}. Wählt man für die Basis eines Zahlensystems den kleinsten möglichen Wert, so gelangt man zum Dualsystem. Bei ihm besteht die Ziffernmenge Z nur aus zwei Ziffern: ZB = {0,1}. Der Index B steht für binär; besser wäre der Buchstabe D für dual, der aber schon vergeben ist. Zahlen werden im Dualsystem genau nach demselben Schema wie im Dezimalsystem aufgebaut: Immer wenn der Ziffernvorrat in einer Stelle erschöpft ist, erfolgt ein Übertrag in die höherwertige Stelle, und die jeweils niederwertigeren Stellen werden zu 0 gesetzt. Tabelle 4.3 enthält eine Gegenüberstellung von Dual- und Dezimalzahlen; dabei sind die Stellen, in die ein Übertrag erfolgt, fett gedruckt.
4.6 Polyadische Zahlensysteme
47
Dezimalzahlen 103
102
101
Dualzahlen 100
24
0 1 2 3 4 5 6 7 8 9 0 : : 9 0
1
1 2
23
1 1
22
21
1 1 1
1 1 1 1 0 0 0
1 1 0 0 1 1 0 0 1
0 0
0 1
1 0
20 0 1 0 1 0 1 0 1 0 1 0 : : 1 0
Tabelle 4.3: Zahlendarstellung im Dezimal- bzw. Dualsystem Es sei angemerkt, dass man von Dualzahlen oder Dualdarstellung nur sprechen sollte, wenn tatsächlich die Repräsentation einer Zahl oder Ziffer mit Hilfe von Binärgrößen in polyadischer Darstellung gemeint ist. In allen anderen Fällen spricht man von Binärvektoren oder von Binärdarstellung. Das Dualsystem stellt für binäre digitaltechnische Systeme das grundlegende Zahlensystem für die numerische Verarbeitung dar. Da im Dualsystem relativ kleine Zahlen aber schon eine hohe Ziffernanzahl besitzen, fasst man aus Zweckmäßigkeitsgründen drei oder vier Stellen zusammen, ersetzt diese durch kompaktere Zeichen und kommt so zum Oktal- bzw. Hexadezimalsystem. Im Oktalsystem besteht der Ziffernvorrat aus 8 Ziffern. Zur Unterscheidung von Dezimalzahlen erhalten Oktalzahlen ein tiefgestelltes O: ZO = {0, 1, 2, 3, 4, 5, 6, 7}. Somit ergibt sich im Vergleich zwischen Dezimal- und Oktalzahlen eine nur wenig längere Zahlendarstellung:
Dezimal:
0
1
2
3
4
5
6
Oktal:
0O
1O
2O
3O
4O
5O
6O
7O 10O 11O
Dezimal:
10
11
12
13
14
15
16
17
Oktal:
7
8
18
9
19
12O 13O 14O 15O 16O 17O 20O 21O 22O 23O
... ...
48
4 Codes
Im Hexadezimalsystem ist die Basis 16, und der Ziffernvorrat besteht daher aus 16 Ziffern. Da die Ziffern des Dezimalsystems dafür nicht ausreichen, werden zusätzlich die Buchstaben A bis F benutzt. Hexadezimalzahlen werden durch ein tiefgestelltes H gekennzeichnet: ZH = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}. Hexadezimalzahlen sind deutlich kompakter in der Darstellung als Dezimalzahlen: Dezimal: Hexadezimal:
0 0H
1 1H
... ...
Dezimal: Hexadezimal:
17 18 11H 12H
... ...
9 9H
10 AH
11 BH
12 CH
13 DH
14 EH
15 16 FH 10H
158 159 160 161 162 163 164 9EH 9FH A0H A1H A2H A3H A4H
... ...
Hexadezimalzahlen eignen sich besonders gut für byte-orientierte Darstellungen, da 2 Hexadezimalziffern genau mit einem Byte dargestellt werden können. Außer der Darstellung von Zahlen sind Rechenoperationen von großer Bedeutung. Neben den Basisoperationen +, -, x und ./. kommen auch komplexere Rechenvorschriften in Frage. Da aber der technische Aufwand zur Realisierung der Operationen stets mit Kosten und Platzbedarf gekoppelt ist, muss in jedem Einzelfall geprüft werden, welche der Operationen unmittelbar als Schaltung verwirklicht und welche nur indirekt mit Hilfe mathematischer Zusammenhänge dem Benutzer zur Verfügung gestellt werden. Sind beispielsweise Addition und Subtraktion in schaltungstechnischer Form realisiert worden, dann müssten alle anderen Operationen auf diese beiden zurückgeführt werden: Die Multiplikation wäre dann in eine Folge von stellengerechten Additionen aufzulösen, die Division in eine solche von Subtraktionen, usw. Besonders wenig technischen Aufwand benötigt man, wenn nur eine Basisoperation direkt realisiert werden muss und alle anderen darauf aufbauen. Das Prinzip dieses Vorgehens soll für die Dualzahlen verdeutlicht werden. Die Addition von Dualzahlen gestaltet sich besonders einfach, da nur folgende elementare Rechneroperationen benötigt werden: Regel 1 Regel 3
0+0= 0 1 + 1 = 10
Regel 2 Regel 4
0+1=1+0=1 1 + 1 + 1 = 11
Beispiel: Es sollen die beiden Dualzahlen 101100 und 11110 addiert werden. Man schreibt diese wie gewohnt untereinander und addiert den Regeln entsprechend. +
1 0 1 1 0 0 1 1 1 1 0
1
1
1
1
1 0 0 1 0 1 0 benutzte elementare Regel:
3 3 4 3 2 1
Übertrag
4.6 Polyadische Zahlensysteme
49
Bei der Subtraktion zweier Dualzahlen a und b bedient man sich eines Tricks, nämlich der Komplementrechnung, bei der neben der Addition nur ganz einfache Umformungen von Dualzahlen nötig sind. Ist z.B. die maximale Stellenzahl von a und b kleiner als 9, dann erweitert man mit einer 9-stelligen Dualzahl folgendermaßen: a - b = ( a + ( 1 0000 0000B - b) ) - 1 0000 0000B c d
c lässt sich durch Bildung des sogenannten Zweierkomplements aus b leicht bestimmen: Die acht – evtl. mit '0' aufgefüllten – Stellen von b werden invertiert, d.h. 0 wird zu 1 und 1 zu 0, und anschließend wird 1 addiert. a und c können nun wie oben addiert werden. Hat das Ergebnis d neun Stellen, so wird die Subtraktion von 1 0000 0000B durch einfaches Streichen der neunten Stelle ausgeführt und das Ergebnis ist bekannt. Hat das Ergebnis d nur 8 Stellen, so ist das Gesamtergebnis (nach Subtraktion von 1 0000 0000B) negativ. Den richtigen Betrag erhält man aber wieder sehr einfach durch Bildung des Zweierkomplements aus d.
Beispiel:
20 - 4 = ?
a =
20D
=
0001 0100B
b =
4D
=
0000 0100B
c = (Zweierkomplement von 0000 0100B ) 1111 1011B+1B = 1111 1100B a:
1 0 0 1
0 1 0 0
+ c:
+ 1 1 1 1
1 1 0 0
1
1
d:
1
1
1
1
1 0 0 0 1
0 0 0 0
a - b = d - 1 0000 0000B = 1 0001 0000B - 1 0000 0000B = 0001 0000B = 16D
Beispiel:
4 - 20 = ?
a = 0000 0100B b = 0001 0100B c = 1110 1011 B + 1B = 1110 1100B
50
4 Codes
a:
0 0 0 0
0 1 0 0
+ c:
+ 1 1 1 0
1 1 0 0
1
d:
1 1 1 1
1
0 0 0 0
Das Ergebnis ist negativ; man erhält den Betrag des Ergebnisses durch die Bildung des Zweierkomplements: |a-b| = (Zweierkomplement von 1111 0000B ) = 0000 1111B + 1B |a-b| = 0001 0000B = 16D
a-b = -0001 0000B = -16D
Die Wahl der Basis eines polyadischen Zahlensystems hängt von vielen, manchmal auch zufälligen Faktoren ab. Weit verbreitet ist natürlich die Basis 10, aber auch andere Werte wie 12 oder 60 sind in Gebrauch. Beim Übergang zu Binärsystemen ist die Basis 2, 8 oder 16 von Bedeutung. Wechselt man daher von einem Bereich mit der Basis Ri in einen Bereich mit der Basis Rj, so sind Zahlen aus dem einen Darstellungssystem in das andere umzusetzen. Für einige wichtige Fälle soll der Wandlungsvorgang skizziert werden: 1) Gegeben sei eine Zahl im Dezimalsystem ND = dn
.
10Dn + ... + d1 . 10D1 + d0 . 10D0
Gesucht wird ihre Darstellung im Dual-, Oktal- oder Hexadezimalsystem NX = dm' . Rxm + ... + d1' . Rx1 + d0' . Rx0 dabei steht X für B, O oder H. Die Umwandlung läuft dann folgendermaßen ab. ND wird durch die Basis des gewünschten Zahlensystems dividiert. Der Rest der Division ergibt die niederwertigste Stelle (d0'). Der Quotient wird zur Berechnung der nächsthöheren Stelle nach dem gleichen Schema verarbeitet: Quotient 2
Quotient 1
ND
RX
RX
RX
" Quotient 3 + Rest 2
" Quotient 2 + Rest 1
" Quotient 1 + Rest 0
, d2
, d1
d0
,
Bild 4.8: Berechnungsvorschrift für die Wandlung von Zahlendarstellungen
4.6 Polyadische Zahlensysteme
51
Bild 4.9 zeigt beispielhaft die Wandlung der Dezimalzahl 1989 in eine Hexadezimalzahl. 7 16 " 0 + 7
124 16 " 7 + 12
1989 16 " 124 + 5
7
C
5
H
Bild 4.9: Beispiel für eine Wandlung 2) Gegeben sei eine Zahl im Dual-, Oktal- oder Hexadezimalsystem NX = dm' . Rxm + ... + d1' . Rx1 + d0' . Rx0 Gesucht wird ihre Darstellung im Dezimalsystem ND = dn
.
10Dn + ... + d1 . 10D1 + d0 . 10D0
Die zuvor beschriebene Vorgehensweise wäre prinzipiell für die Konversion zwischen allen Zahlensystemen möglich. Da aber die Division in anderen Zahlensystemen ungewohnt ist, versucht man meist, die notwendigen Rechenschritte im Dezimalsystem auszuführen. Zunächst werden daher die Grundzahlen und die Ziffern di' in das Dezimalsystem umgesetzt; Multiplikationen und Additionen werden dann im Dezimalsystem durchgeführt. Beispiel: =
=
Die Zahl FA7EH soll dezimal dargestellt werden. ( F
A
7
E )H
( F . 103+ A . 102+ 7 . 101+ E . 100 )H
=
( 15 . 163+ 10 . 162+ 7 . 161+ 14 . 160 )D
=
( 61440 + 2560 +
=
64126D
112 +
14 )D
52
4 Codes
3) Eine Dualzahl soll oktal oder hexadezimal dargestellt werden. Die Konversion zwischen dualer und oktaler bzw. dualer und hexadezimaler Darstellung gestaltet sich besonders einfach, da jeweils 3 bzw. 4 Dualstellen zu einer Oktal- bzw. Hexadezimalstelle zusammengefasst werden können. Die Zusammenfassung von Bitgruppen zu einer Oktal- bzw. Hexadezimalzahl sei an den folgenden beiden Beispielen demonstriert: Beispiel:
( 1 0 1
(
Beispiel:
1 1 1
0 1 1 )B
5
7
3
(0 0 0 1
0 1 1 1
1 0 1 1)
7
B
(
1
)O
B
)H
Die zentrale Stellung des Dezimalsystems im täglichen Leben und die ungewohnte Darstellung in Zahlensystemen mit davon abweichender Basis lassen es gerade bei großen Zahlen notwendig erscheinen, die Konversion stärker unter Betonung der dezimalen Aspekte vorzunehmen. Eine Möglichkeit dazu stellt die dezimalstellenweise Wandlung in die Binärform dar. Weit verbreitet ist hier der sogenannte BCD-Code (Binary Coded Decimal), bei dem man einer einzelnen Dezimalziffer genau ihr Dualzahlenäquivalent zuordnet (siehe Tabelle 4.3). Pro Dezimalziffer benötigt man vier Binärziffern, wobei üblicherweise die führenden Nullen nicht unterdrückt werden. Für die Zahl 1995 lautet dann die BCD-Schreibweise 1
9
9
5
0001
1001
1001
0101
Da 4 Binärstellen 16 unterschiedliche Kombinationen ermöglichen, bleiben 6 von ihnen unbenutzt. Dies hat aber Auswirkungen auf die Rechenoperationen. Bei der Addition zweier BCD-Zahlen können die nicht benutzten Binärkombinationen, die sogenannten Pseudotetraden auftreten. Jedes Ergebnis muss daher beim Auftreten eines Übertrags oder einer Pseudotetrade stellenweise durch Addition von 0 1 1 0B korrigiert werden.
4.6 Polyadische Zahlensysteme
53
Beispielweise sollen die Zahlen 891D und 826D addiert werden. BCD - Darstellung 1000
1001
0001
891D
1000
0010
0110
+826D
0000
1011
0111
1
Korrektur wegen :
Übertrag
Pseudotetrade
+0110
+0110
1
Endgültiges Ergebnis:
1
0111
0001
0111
1717D
Es hat nicht an Versuchen gefehlt, ungünstige Eigenschaften des BCD-Codes durch andere Codierungen zu vermeiden, ohne auf die stellenweise Wandlung verzichten zu müssen. Zwei wichtige Vertreter dieser Richtung seien im Folgenden genannt; die Tabellen 4.4 und 4.5 lassen sofort erkennen, dass insbesondere die Komplementbildung bei diesen Zahlendarstellungen deutlich verbessert ist. Der Stibitz- oder Exzess-3-Code entsteht aus dem BCD-Code, indem zu jedem BCD-Codewort die Dualzahl 0011B = 3D addiert wird. Dadurch werden die Codewörter für die Ziffern 0 ... 4 spiegelbildlich komplementär zu denen für die Ziffern 5 ... 9:
Dezimal
0
1
2
3
4
STIBITZ
0011
0100
0101
0110
0111
STIBITZ
1100
1011
1010
1001
1000
Dezimal
9
8
7
6
5
Tabelle 4.4: Zahlendarstellung im Stibitz-Code
54
4 Codes
Beim Aiken oder 2-4-2-1-Code wird jeder Dezimalziffer 0 ... 9 umkehrbar eindeutig eine 4-stellige Dualzahl zugeordnet, wobei die vier Binärziffern die Stellenwertigkeiten 2, 4, 2 und 1 haben. Dadurch werden die Codewörter für die Ziffern 0 ... 4 ebenfalls spiegelbildlich komplementär zu denen für die Ziffern 5 ... 9: Dezimal
0
1
2
3
4
AIKEN
0000
0001
0010
0011
0100
AIKEN
1111
1110
1101
1100
1011
Dezimal
9
8
7
6
5
Tabelle 4.5: Zahlendarstellung im Aiken-Code Die Eigenschaften des Stibitz- und Aiken-Codes erleichtern die Subtraktion mit Hilfe der Komplement-Rechnung. Beim Stibitz-Code bleiben die Additionseigenschaften des BCD-Codes erhalten. Unabhängig davon, welcher der genannten Codes Verwendung findet, sind pro Dezimalstelle vier Binärstellen vorzusehen. Nun ist andrerseits das Byte eine wichtige Einheit für die Zusammenfassung von Binärstellen. Es liegt daher nahe, je zwei binär dargestellte Dezimalzahlen in ein Byte zu packen, um eine kompaktere Zahlendarstellung zu erreichen (siehe Bild 4.10). Dezimalstelle 2 0
0
0
0
Dezimalstelle 1 x
x
x
x
0
0
0
0
... x
x
x
x
x
x
BCD-Codewörter (unpacked code)
... x
x
x
x
x
x
Byte-Codewort (packed code)
Bild 4.10: Kompaktere Darstellung von BCD-Zahlen Als ein Beispiel für die (im wörtlichen wie im übertragenen Sinne) weitreichende Bedeutung des BCD-Codes sei auf dessen Verwendung zur Codierung von Zeitdaten hingewiesen. Während früher die Zeit mit Hilfe mehr oder weniger lokaler Hifsmittel bestimmt wurde, kam später die einfache Nutzung drahtgebundener und drahtloser Übertragungseinrichtungen zur Festlegung einer Normalzeit hinzu. Auf der Grundlage eines Bundesgesetzes vom 25. Juli 1978 wird die gesetzliche Zeit "von der Physikalisch-Technischen Bundesanstalt (PTB) dargestellt und verbreitet" [PET93]. Basierend auf dort befindlichen Atomuhren wird diese gesetzliche Zeit über Langwelle 77,5 kHz (Senderstandort Mainflingen bei Seligenstadt) per-
4.6 Polyadische Zahlensysteme
55
manent ausgestrahlt. Die seriell in einem Binärcode verschlüsselten Zeitangaben bilden ein Codewort, das neben anderen Angaben die aktuellen Werte für Minute und Stunde, Kalender- und Wochentag, Kalendermonat sowie -jahr enthält. Jeder Zahlenwert wird dabei im BCD-Code verschlüsselt, die Angabe für den Wochentag allerdings auf drei Stellen verkürzt (siehe Bild 4.11). Die drei Paritätsbits P1 bis P3 sichern die Zahlenwerte gegen Übertragungsfehler durch Ergänzung der vorangehenden Informationsteile auf eine gerade Anzahl von Einsen. Die physikalische Darstellung der Binärwerte erfolgt durch die unterschiedliche Dauer von Impulsen: Der Null wird dabei ein Impuls der Dauer 0,1 Sekunden, der Eins ein solcher von 0,2 Sekunden Dauer zugeordnet. Die Übertragung des gesamten Codeworts benötigt 60 Sekunden.
M
KalenderP3 jahr 204080 4
2 1 10 Kalender- 8 monat 4 2 1 4 2 Wochen- 1 tag 20 10 8
10 8
tag
0 10
50
40
20
4
Kalender- 2 1
Kodierung nach Bedarf
30 P2 2010 8
10 20 4 2 1 P140
8
4
1 2
R A1 Z1 Z2 A2 S
Minute
Stunde Bild 4.11: Aufbau des Codeworts für die Zeitangaben Die bisher vorgestellten Codes erlauben nur die Notation von Festkommazahlen; bei gegebener Bitzahl zur Zahlencodierung liegt damit der (relativ kleine) Bereich für die darstellbaren Zahlen fest. Will man diesen Bereich deutlich ausweiten, muss man zu einer flexibleren Darstellung übergehen, die in Form der Gleit- oder Fließkommazahlen möglich ist. Hier hat sich heute weitgehend ein Standard durchgesetzt, der in der Empfehlung IEEE 754 festgelegt worden ist. Bild 4.12 gibt die wichtigsten Notationsmerkmale dieses Codes wieder.
56
4 Codes
Vorzeichen
Exponent
Mantisse
V 27 26 25 24 23 22 21 20 2-1 2-2 2-3 31 23 22
2-23 0
...
Exponent E
Mantisse M
Wert
255 255 0 0 } -
unendliche nicht abzählbare Mengen
z.B.:
R = { x | x ist eine reelle Zahl }
Zwei Mengen heißen genau dann gleich, wenn sie dieselben Elemente besitzen z.B.:
M1 = { 2, 3, 5, 7, 11, 13 } M2 = { 5, 11, 13, 3, 2, 7 } M1 = M2
Die Anzahl der Elemente einer Menge heißt die Mächtigkeit der Menge (manchmal auch Kardinalität genannt) z.B.:
M = { x, y, z } ; L = { x | x + 2 = 2x } = { 2 } ;
M =3 L =1
Die Menge, die kein Element besitzt, heißt die leere Menge. z.B.:
={x|x+2=x}={};
=0
5.1 Mengen und Mengenoperationen
67
Eine Menge S heißt Untermenge oder Teilmenge einer Menge M genau dann, wenn jedes Element von S zu M gehört.
M
d
&
" 7
e S Bild 5.3: Zum Begriff der Untermenge SM
SM
S „ist Untermenge von“ M falls |S| < |M| schreibt man auch:
SM
S „ist echte Untermenge von“ M
M3
M2 1
Y Z
3 2
...99
X
100
M1
Bild 5.4: Zum Begriff der Untermenge
M1 M2
Ø M2
M1 M3
Ø M3 Die leere Menge ist Untermenge jeder beliebigen Menge. Die Menge aller Untermengen S einer Menge M heißt Potenzmenge P von M.
68
5 Mathematische Grundlagen
M
MM
0
S0M S1M M
1
Bild 5.5: Zum Begriff der Potenzmenge z.B.
M = { 0, 1 }
P(M) = { , S0, S1, M } = { { }, {0}, {1}, {0, 1} }
|M| = 2
|P(M)| = 2|M| = 4
Potenzmenge der leeren Menge: ={}
P() = {} = { { } }
|| = 0
|P()| = 2|| = 1
Mengenoperationen Die Vereinigung oder Vereinigungsmenge V zweier Mengen S und T ist die Menge aller Elemente x, die mindestens einer der Mengen S und T angehören. V = S T = { x | x S oder x T } sprich: "V gleich S vereinigt mit T"
S
T
Bild 5.6: Vereinigungsmenge zweier Mengen Der Durchschnitt oder die Durchschnittsmenge D zweier Mengen S und T ist die Menge aller Elemente x, die sowohl zu S als auch zu T gehören. D = S T = { x | x S und x T } sprich: "D gleich S geschnitten mit T"
5.1 Mengen und Mengenoperationen
69
S
T
Bild 5.7: Durchschnittsmenge zweier Mengen Für Vereinigung und Durchschnitt gilt allgemein: S STST T S 0dS TddSTdST T Sind S und T zwei Mengen und gibt es kein Element x, das sowohl zu S als auch zu T gehört, so heißen S und T elementefremd oder disjunkt. Damit gilt: S
T
S T = S T = 0 ST = S + T
Bild 5.8: Disjunkte Mengen Es sei S M. Dann heißt die Menge aller Elemente von M, die nicht zu S gehören, das Komplement von S bezüglich M. Die Menge M wird in diesem Zusammenhang auch als Bezugsmenge bezeichnet. CM(S)
M
und x S} CM(S) = {x | x M S C M(S) = M
S
Bild 5.9: Komplementmenge einer Menge
70
5 Mathematische Grundlagen
M e1 e3
M
e4
e1
e4
...en
e3
e2 ...en
e2
C (Ø) = M M M() = M C
C (M) = Ø CMM(S) =
Bild 5.10: Grenzfälle der Komplementbildung Unter dem kartesischen Produkt S x T (gesprochen: "S kreuz T") zweier Mengen S und T versteht man die Menge aller geordneten Paare (s ,t) mit s S und t T. Das kartesische Produkt ist nicht kommutativ, d.h.: S x T z T x S. Für die Mächtigkeit gilt : |S x T| = |S| · |T| z. B.: S = { 0, 1 }
T = { x, y, z }
|S| = 2
S x T = { (0, x), (0, y), (0, z), (1, x), (1, y), (1, z) } T x S = { (x, 0), (x, 1), (y, 0), (y, 1), (z, 0), (z, 1) }
|T| = 3 |S x T| = 6 |T x S| = 6
Das n-fache kartesische Produkt Sn der Menge S mit sich selbst ist die Menge aller geordneten n-Tupel (r, s, ... , z) mit r S, s S, ... , z S. Sn = S x S x S x ... x S z.B.:
S = { 0, 1} :
|Sn| = |S|n
S2 = { (0, 0), (0, 1), (1, 0), (1, 1) } S3 = { (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0), (1,1,1) } ...
5.2 Relationen Eine zweistellige Relation zwischen zwei Mengen X und Y ist eine Vorschrift D, die für beliebige Elemente x X und y Y festsetzt, ob x in einer Beziehung D zu y steht. Steht x in der Beziehung zu y, schreibt man x D y, andernfalls x D y. Sind X und Y verschieden, spricht man von einer Relation zwischen zwei Mengen, gilt X=Y spricht man von einer Relation auf oder in einer Menge. Bei Relationen auf einer Menge unterscheidet man einige spezielle Relationen anhand ihrer Eigenschaften: Eine Ordnungsrelation stellt eine Ordnung unter vergleichbaren bzw. teilweise vergleichbaren Elementen her. Zum Beispiel stellt die Teilmengenbeziehung eine Ordnungsrelation dar.
5.2 Relationen
71
Jede Ordnungsrelation weist folgende Eigenschaften auf: - Sie ist reflexiv:
es gilt x D x für beliebige x
( Jede Menge ist Teilmenge von sich selbst ) - Sie ist antisymmetrisch:
aus x D y und y D x folgt x = y
( Nur wenn X und Y gleich sind, kann gleichzeitig X Teilmenge von Y und Y Teilmenge von X sein ) - Sie ist transitiv:
aus x D y und y D z folgt x D z
( Wenn X Teilmenge von Y ist und Y Teilmenge von Z, dann ist auch X Teilmenge von Z ) Bei Ordnungsrelationen benutzt man häufig statt D das Zeichen d . Zu jeder Ordnungsrelation d kann man auch eine Umkehrung t angeben, so dass aus x d y auch y t x folgt. So kann man zum Beispiel zur Relation "ist Teilmenge von" die Umkehrrelation "ist Obermenge von" angeben. Gilt für zwei Elemente weder x d y noch x t y, so nennt man die Elemente unvergleichbar und y. schreibt x Eine Äquivalenz-Relation stellt Beziehungen über die Gleichwertigkeit oder Gleichartigkeit von Objekten in verschiedener Hinsicht her. Jede Relation, die die folgenden Eigenschaften aufweist, wird als Äquivalenzrelation bezeichnet. Als Beispiel soll die Relation der Gleichmächtigkeit (gleiche Anzahl Elemente) von Mengen dienen: - Reflexivität:
es gilt x D x für beliebige x
( Eine Menge M hat die gleiche Anzahl Elemente wie sie selbst ) - Symmetrie:
aus x D y folgt auch y D x
( Wenn X die gleiche Anzahl Elemente besitzt wie Y, dann besitzt Y auch die gleiche Anzahl Elemente wie X ) - Transitivität:
aus x D y und y D z folgt x D z
( Wenn X gleichmächtig ist wie Y und Y gleichmächtig wie Z, dann ist X auch gleichmächtig wie Z ) Als Zeichen für D benutzt man bei Äquivalenzrelationen { Die Äquivalenzrelation zerlegt die Menge der Elemente in disjunkte Teilmengen, sogenannte Äquivalenzklassen. Um ein erlaubtes Zusammentreffen verschiedener Elemente zu beschreiben, eignet sich die Verträglichkeits-Relation. Jede Relation, die die folgenden Eigenschaften aufweist, wird Verträglichkeits-Relation genannt. Als Beispiel kann das "sich vertragen" von Menschen dienen.
72
5 Mathematische Grundlagen - Reflexiv ( Jeder Mensch verträgt sich (im allgemeinen) mit sich selbst )
- Symmetrisch ( Wenn sich Herr X mit Frau Y verträgt, verträgt sich auch Frau Y mit Herrn X )
- Nicht transitiv ( Aus Herr X verträgt sich mit Frau Y und Frau Y verträgt sich mit Frau Z folgt nicht, dass sich Herr X mit Frau Z verträgt )
Als Zeichen für D wird in diesem Falle häufig ~ benutzt. Auch die Verträglichkeitsrelation teilt die Grundmenge in Teilmengen mit untereinander verträglichen Elementen auf. Diese Teilmengen müssen jedoch nicht disjunkt sein. Bei der Verträglichkeitsrelation stellt sich die Frage nach einer gruppenweisen Verträglichkeit. Man kommt damit zu den mehrstelligen Relationen, die Beziehungen zwischen mehreren Objekten beschreiben. Wenn die drei Objekte x,y,z in der Beziehung D zueinander stehen, schreibt man dann D(x,y,z). Aus der Verträglichkeit innerhalb einer Gruppe kann man im Allgemeinen nicht unbedingt auf die Verträglichkeit der darin enthaltenen Einzel-Elemente schließen (und umgekehrt). Zum Beispiel könnten Herr X und Herr Y unverträglich sein, im Beisein eines Schlichters Z aber zu dritt dennoch eine verträgliche Gruppe bilden. Im Folgenden sollen nur Verträglichkeitsrelationen betrachtet werden, die aus einer gruppenweisen Verträglichkeit auf die Einzelverträglichkeiten schließen lassen und umgekehrt. Man interessiert sich dann für eine Menge von Gruppen bzw. Teilmengen, die erstens nur verträgliche Elemente aufweisen, und zweitens jedes Element in mindestens einer Gruppe enthalten. Als Beispiel für dieses sogenannte Überdeckungsproblem könnte die Lagerung von Chemikalien in möglichst wenigen getrennten Lagerhäusern dienen. Für eine endliche Menge M (Menge der Chemikalien) mit den Elementen d1, d2, ... ,dj, ... (einzelne Chemikalie) und einer über den Elementen definierten Verträglichkeitsrelation D (Chemikalien dürfen zusammen gelagert werden) werden möglichst große Teilmengen Di gesucht, die nur verträgliche Elemente enthalten (jedes Di entspricht einem Lagerhaus). Wenn für die Menge W = {D1, D2, ... , Di , ... } gilt, dass jedes Element dj (j = 1, 2, 3, ...) in mindestens einer Teilmenge Di (i = 1, 2, 3, ...) enthalten ist, dann sagt man, W ist eine Überdeckung von M. Von einer Teilmenge Di, die dj enthält, sagt man, Di überdeckt dj. Die Beziehung "Di überdeckt dj" stellt wiederum eine Relation, die sog. Überdeckungsrelation dar. Dabei handelt es sich jedoch um eine Relation zwischen zwei Mengen, für die Eigenschaften wie Reflexivität, Transitivität usw. nicht ohne
5.2 Relationen
73
weiteres angegeben werden können. Häufig kommt die Aufgabe hinzu, bestimmte Parameter einer Überdeckung zu minimieren (zum Beispiel die Anzahl der Lagerhäuser, d.h. die Mächtigkeit von W oder die Forderung, dass jedes Element dj nur genau einmal auftritt). Die Überdeckungsrelation wird zweckmäßigerweise in Form einer Matrix W x M als sogenannte Überdeckungstabelle dargestellt. Dabei heißen die Elemente Di aus W die Deckgrößen oder überdeckenden Größen und die Elemente dj der Menge M überdeckte Größen. Als Kennzeichen für das Zutreffen der Überdeckungsrelation dient eine Binärmarkierung, z.B. ein X.
Überdeckte Größen M d1 d2 d3 . . . ddj j . . .
Überdeckende WW Größen D1
DDi überdeckt d : X bei i j i überdeckt djj : X bei i j
D2 ... ij
Di
Tabelle 5.1: Struktur einer Überdeckungstabelle
Beispiel: In einem Garten sollen Bohnen, Erbsen, Zwiebeln, Tomaten und Gurken gepflanzt werden. Es ist jedoch bekannt, dass bestimmte Gemüse sich gegenseitig im Wachstum negativ beeinflussen. d.h., dass sie unverträglich sind ( D ): Bohnen
D Erbsen
Bohnen D Zwiebeln Erbsen
D Zwiebeln
Erbsen
D Tomaten
Tomaten D Gurken
74
5 Mathematische Grundlagen
Die folgenden Mengen W1 bis W3 sollen nun daraufhin untersucht werden, ob sie eine zulässige Einteilung des Gartens in Beete und eine Überdeckung der Gemüsemenge darstellen:
W1= { {Bohnen}, {Erbsen}, {Zwiebeln, Tomaten} }
W1
B
B
X
E
E
{ {Bohnen}, {Erbsen, Gurken}, {Gurken, Zwiebeln, Tomaten} }
W2
B
B
X
E,G
E
{ {Bohnen}, {Erbsen, Gurken}, {Zwiebeln, Tomaten} }
W3
B
B
X
E,G Z,T
X
X
G
Z
T
X
G,Z,T
W3=
T
X
Z,T
W2=
Z
E
G
X X
X
X
Z
T
G
X
X X
X
Die Menge W1 stellt keine Überdeckung dar, weil nicht jedes Element in mindestens einer Teilmenge auftritt (Gurken fehlen). Ebenso ist W2 keine zulässige Überdeckung, weil die unverträglichen Elemente Tomaten und Gurken in einer Teilmenge zusammengefasst wurden. Die Elemente der Menge W3 enthalten jedes Gemüse mindestens einmal, und keine der Teilmengen enthält unverträgliche Elemente. Die Bedingungen für eine Überdeckung sind somit bei W3 erfüllt; zusätzlich weist sie die minimale Anzahl von Teilmengen auf, und jedes Element tritt genau einmal auf.
5.3 Grundlagen der Graphentheorie
75
5.3 Grundlagen der Graphentheorie Graphen und die dazugehörige Theorie sind ein wichtiges und häufig verwendetes Hilfsmittel zur abstrakten Darstellung von Zusammenhängen. An einem anschaulichen Beispiel werde zunächst der Begriff Graph eingeführt. Gegeben sei ein Ausschnitt aus dem Stadtplan von Karlsruhe, in dem einige wichtige Punkte und wesentliche Straßenverbindungen hervorgehoben wurden (Kreise A bis I und dicke Linien).
Bild 5.11: Darstellung von Verkehrsbeziehungen in einem Stadtplan
76
5 Mathematische Grundlagen
Bei solchen Darstellungen versucht man durch Weglassen von Details die Zusammenhänge deutlicher herauszustellen (z.B. bei Verkehrslinienplänen von Bussen und Straßenbahnen, beim IC-Zugnetz usw.); für unser Beispiel liefert dieser Vorgang das folgende Bild: A
B
C
D
F
G
E
H
I Bild 5.12: Abstrahierte Darstellung der Verkehrsbeziehungen Da nun die exakte Geometrie der Verbindungslinien keinen Sinn mehr macht, reduziert man die Darstellung auf Verbindungen mit üblicherweise geraden Linien. A
B
C
D
F
G
E
H
I Bild 5.13: Vereinfachte Darstellung Unschön ist bei diesem Bild noch die Tatsache, dass sich Linien kreuzen. Durch Verändern der Lage der Punkte E und H und einiger damit verbundener Kanten kommt man zu einer Form ohne Kreuzungen, welche aber immer noch die Verkehrsbeziehungen aus dem Stadtplan wiedergibt (Bild 5.14).
5.3 Grundlagen der Graphentheorie
77
A 1
B
6
2
3 7
C 11
12
F 10
D
14
4 8
5
E
9
H
13
G
15
I Bild 5.14: Darstellung ohne kreuzende Verbindungen Abstrahiert man jetzt von der ursprünglichen Bedeutung der Bildelemente, so enthält das Gebilde letztlich zwei Mengen von Elementen: Kreise und Linien. Schließt man diese Betrachtung an die Begriffswelt der Mengen (und Relationen) an, so kommt man zum Begriff des abstrakten Graphen: Ein abstrakter Graph G(V, E, )) besteht aus einer nichtleeren Menge V, einer (möglicherweise leeren) Menge E mit V E = und einer Abbildung ) von E in V x V. Die Elemente von V nennt man Knoten, diejenigen der Menge E Kanten in Anlehnung an die Darstellungsform. F heißt Inzidenzabbildung und lässt sich u.a. in Matrixschreibweise darstellen (Inzidenzmatrix). Ist e E, (g, h) V x V und verbindet die Kante e die Knoten g und h, so schreibt man )(e) = (g, h) und sagt, e sei inzident zu g bzw. h, die auch als Endpunkte der Kante bezeichnet werden. Die Knoten g bzw. h heißen adjazent zur Kante e; entsprechend sind zwei verschiedene Kanten e bzw. f adjazent zu einem gemeinsamen Knoten g. Beispiel: Im Verkehrsplan sind die Knoten F und G Endpunkte der Kante 14 und diese ist inzident zu F bzw. G; die Kanten 3, 7, 8 und 12 sind adjazent bezüglich des Knotens D.
Globale Charakterisierung von Graphen Auf der Basis dieser abstrakten Definition des Graphen lassen sich einige wichtige globale Eigenschaften bzw. Zusammenhänge von Graphen einführen. Sind die Mengen V und E endlich (was für technische Zusammenhänge fast immer zutrifft), so hat man es mit einem endlichen Graphen zu tun. Ist E die leere Menge, so heißt der Graph entartet, und er besteht dann nur aus isolierten Knoten. Sind zwei Graphen G1(V1, E1, )1) und G2(V2, E2, )2) gegeben und bestehen zwischen
78
5 Mathematische Grundlagen
V1 und V2 sowie zwischen E1 und E2 eineindeutige Zuordnungen, welche die Inzidenzbeziehungen erhalten, so heißen G1 und G2 zueinander isomorph. Der Nachweis der Isomorphie zweier Graphen hat eine große Bedeutung für technische Anwendungen. Beispielsweise sind die im 3. und 4. Schritt aus dem Stadtplan entwickelten Graphen zueinander isomorph. Liefert die Inzidenzabbildung eines Graphen für je zwei verschiedene Knoten eine dazu inzidente Kante, so heißt der Graph vollständig.
Bild 5.15: Vollständiger Graph Existiert in einem Graphen zwischen zwei Knoten g und h mit g z h höchstens eine Kante, so heißt der Graph einfach (der Graph in Bild 5.15 hat diese Eigenschaft). Für Theorie und Praxis ist eine bestimmte Eigenschaft der Inzidenzabbildung von großer Wichtigkeit. Gibt es in einem Graphen mindestens eine Kante e sowie ein dazu adjazentes Knotenpaar g und h und existiert entweder nur )(e) = (g, h) oder nur )(e) = (h, g), so heißt der Graph gerichtet. Die entsprechende Kante wird mit einem Pfeil versehen, um die Richtung der Beziehung zu verdeutlichen. Gerichtete Graphen werden auch als Digraphen bezeichnet.
Bild 5.16: Beispiel eines gerichteten Graphen Existieren keine solchen Kanten, so spricht man von einem ungerichteten Graphen (Beispiel siehe 3. bzw. 4. Schritt des Stadtplans). Bei vielen Anwendungen interessiert man sich dafür, ob in einem ungerichteten Graphen eine Folge von Kanten von jedem beliebigen Knoten zu jedem beliebigen anderen Knoten führt (ggf. unter Benutzung dazwischenliegender Knoten). Graphen mit dieser Eigenschaft heißen zusammenhängend; fehlt diese, so heißen sie nichtzusammenhängend (es existieren dann mindestens zwei sog. Teilgraphen).
5.3 Grundlagen der Graphentheorie
79
Bild 5.17: Zusammenhängender Graph Bild 5.18: Nichtzusammenhängender Graph Legt man gerichtete Graphen zugrunde, so bezeichnet man das entsprechende Merkmal als streng zusammenhängend. (Dabei muss für zwei beliebige Knoten g und h je eine Folge von Kanten von g nach h und eine andere Folge von h nach g führen!).
Bild 5.19: Streng zusammenhängender Graph
Bild 5.20: Nicht streng zusammenhängender Graph
Beispiel: In einem Telefonnetz ist im allgemeinen jeder Teilnehmer in der Lage, jeden beliebigen Teilnehmer anzuwählen. Ein solches Telefonnetz hat daher das Merkmal streng zusammenhängend. Es verliert aber sofort diese Eigenschaft, wenn es mindestens einen Teilnehmer gibt, der nicht oder nicht von allen anderen anwählbar ist, zum Beispiel eine öffentliche Sprechstelle.
Lokale Eigenschaften in Graphen In Graphen kann man sich auch für Eigenschaften interessieren, die mehr lokalen Charakter haben. Eine Kante wird als Schleife (manchmal auch als Schlinge) bezeichnet, wenn die Endpunkte einer Kante zusammenfallen, also )(e) = (g, g) gilt.
80
5 Mathematische Grundlagen
Bild 5.21: Ungerichteter Graph mit Schleifen
Bild 5.22: Gerichteter Graph mit Schleifen
Existieren mehrere Kanten zwischen zwei Knoten g und h, so heißen diese parallel bzw. Mehrfachkanten.
Bild 5.23: Graphen mit Mehrfachkanten Mehrfachkanten entsprechen in technischen Systemen Verbindungsanordnungen, die aus mehreren Einzelverbindungen bestehen, z.B. aus Durchsatz- oder Zuverlässigkeitsgründen, oder sie sind konstruktiv bedingt. Ein Beispiel sind elektronische Bauteile (Kanten) zwischen gemeinsamen Verbindungspunkten (Knoten):
Bild 5.24: Mehrfachkanten als Abbild schaltungstechnischer Merkmale
Liegt ein gerichteter Graph vor und existieren zwischen zwei Knoten g und h Kanten in jeder Richtung ()(e1) = (g, h) und )(e2) = (h, g)), so heißen diese antiparallel. Bei manchen vereinfachenden Operationen auf Graphen lassen sich antiparallele Kanten eines gerichteten Graphen in eine (einfache) Kante eines ungerichteten Graphen überführen.
5.3 Grundlagen der Graphentheorie
81
Bild 5.25: Vereinfachung eines gerichteten Graphen zu einem ungerichteten In verschiedenen Zusammenhängen möchte man Aussagen über bestimmte quantitative Merkmale der Inzidenzabbildung machen. Eine davon bezieht sich auf die Zahl der mit einem Knoten adjazenten Kanten. Man bezeichnet diesen Wert als Grad d(g) eines Knotens g. Bei gerichteten Graphen kann es sinnvoll sein, zwischen der Zahl der abgehenden Kanten, dem Ausgangsgrad d+(g), und der Zahl der ankommenden Kanten, dem Eingangsgrad d-(g), zu unterscheiden. Es gilt: d(g) = d+(g) + d-(g) . Aus dieser Beziehung lässt sich ersehen, dass eine Schleife bezüglich ihres Knotens doppelt zu zählen ist.
g
d(g) = 6
g
g
d-(g) = 3
d+(g) = 4 d-(g) = 2
Bild 5.26: Beispiele für den Grad eines Knotens Bei der Untersuchung von Graphen interessiert man sich oft für Knoten, welche von einem gegebenen Knoten g aus erreichbar sind oder diesen erreichen. Sind diese und der Bezugsknoten adjazent zu jeweils einer Kante, so bezeichnet man solche Knoten als (unmittelbar) benachbart zu g. Die Menge der Nachbarknoten von g bezeichnet man als V´(g). In dem bereits früher diskutierten Beispiel des Stadtplans sind die Knoten D, F, H und I zu Knoten G benachbart: V´(G) = {D, F, H, I}. Bei gerichteten Graphen zerlegt sich die Menge V´ in zwei Teilmengen V´´1 und V´2 gemäß dem Richtungssinn der Kanten. V´1 enthält alle Knoten, von denen aus g erreicht werden kann; sie heißen daher unmittelbare Vorgänger(knoten) zu g, und es ist |V´1(g)| = d-(g). Entsprechend enthält V´2 alle Knoten, die unmittelbare Nachfolger(knoten) von g sind mit |V´2(g)| = d+(g). Besitzt ein Knoten eine Schleife, so gilt er jeweils als sein eigener unmittelbarer Vorgänger und sein eigener unmittelbarer Nachfolger. Da V´1 und V´2 gemeinsame Elemente enthalten können, gilt für die Menge der Nachbarknoten V´ = V´1 V´2 mit |V´(g)| d d(g) .
82
5 Mathematische Grundlagen
Beispiel: Die Relation "ist Kind von ..." liefert alle unmittelbaren Nachfolger; die Relation "sind Eltern von ..." alle unmittelbaren Vorgänger.
...
...
...
...
Bild 5.27: Graph zur Darstellung von Verwandschaftsbeziehungen Verzichtet man auf die Forderung nach Adjazenz solcher Knoten zu g, sondern fordert man lediglich die Existenz einer Folge von Kanten zwischen ihnen, so kann man die Eigenschaft mittelbar benachbart einführen. Beispiel: Die Relation "stammt in direkter Linie ab von ..." erzeugt die Menge der unmittelbaren und mittelbaren Vorgänger. Graphen werden häufig zur Abstraktion für Zusammenhänge in technischen Systemen eingesetzt. Die Analyse eines Graphen stellt daher im Rahmen der Modellgenauigkeit eine Möglichkeit zur Analyse technischer Zusammenhänge dar. Von den vielen Möglichkeiten dazu sei ein Aspekt besonders hervorgehoben. Bei der Modellierung technischer Systeme bildet man oft Komponenten in die Knotenmenge, die Beziehungen zwischen ihnen in die Kantenmenge ab. Der Ausfall einer Komponente (Zerstörung, Abschaltung, Reparatur udgl.) kann dann als Entnahme des zugehörigen Knotens (und der mit ihm inzidenten Kanten) abgebildet werden, was die Struktur des Graphen entsprechend verändert. Von Bedeutung ist dieser Vorgang besonders dann, wenn ein (streng) zusammenhängender Graph auf diese Weise in nichtzusammenhängende Teilgraphen zerfällt. Knoten mit dieser Auswirkung heißen Artikulation eines Graphen.
5.3 Grundlagen der Graphentheorie
83
Bild 5.28: Graph mit Artikulationen In elektrischen Netzen sind beispielsweise Sicherungen notwendigerweise Artikulationen der entsprechenden Graphen, da sonst Verbraucher nicht zuverlässig vom Netz getrennt würden.
Spezielle Kantenfolgen in Graphen Häufig betrachtet man Graphen nicht nur mit ihren "statischen" Eigenschaften, sondern auch bezüglich möglicher Folgen von Knoten bzw. Kanten. Einige wichtige Eigenschaften dieser Art seien im Folgenden erwähnt. Als Kantenprogression der Länge n bezeichnet man eine endliche Folge von n nicht notwendigerweise verschiedenen Kanten, wenn eine entsprechende Folge von n+1 nicht notwendigerweise verschiedener Knoten existiert mit der Eigenschaft )(ei) = (gi-1, gi) für i = 1, 2, ..., n (der hochgestellte Index i steht für die Stellung innerhalb der Folge). Je nachdem, ob gn = g0 ist oder nicht und ob ein ungerichteter oder gerichteter Graph vorliegt, führt man unterschiedliche Bezeichnungen ein (siehe Tabelle 5.2). Sind in einer Progression alle Knoten gi voneinander verschieden (damit sind auch alle Kanten voneinander verschieden), so heißt sie einfach. Enthält ein gerichteter Graph wenigstens einen Zyklus (das kann auch eine Schleife sein!), so heißt er zyklisch. Wichtig in Graphen sind oft Kantenprogressionen, bei denen die Zahl der in der Folge enthaltenen Kanten (die sog. Länge einer Progression) bestimmten Anforderungen genügt, z.B. minimal ist.
84
5 Mathematische Grundlagen
Ungerichteter Graph
Gerichteter Graph
gn = g0
gn = g0
gn = g0
gn = g0
offene Kantenprogression
geschlossene Kantenprogression
offene Kantenprogression
geschlossene Kantenprogression
Sind alle Kanten einer Progression voneinander verschieden geschlossene Kantenzugprogression
Kettenprogression
Wegprogression
Zyklusprogression
Berücksichtigt man die Kanten einer Progression ohne Ordnung geschlossener Kantenzug
Kette
Weg
Zyklus
Tabelle 5.2: Kantenfolgen in Graphen und deren Bezeichnungen
A
2
1 B
6
C
3 7
4
D
8
5 E
9
H
Folge
Merkmal
1-6-2-1-6-7
offene Kantenprogression geschlossene Kantenprogression Kettenprogression, einfach Kette geschlossene Kantenzugprogression geschlossener Kantenzug
1-6-2-3-7-2
11 F
12 13 14
10
G
1-10-15-14-11 {1,10,11,14,15} 1-10-15-14-11-2 {1,2,10,11,14,15}
15
I
Bild 5.29: Ungerichteter Graph
5.3 Grundlagen der Graphentheorie
A 3
1 4
5 9
D
2
B
C 8
10
E
Folge
Merkmal
6-2-8-10-6-7
offene Kantenprogression geschlossene Kantenprogression Wegprogression, einfach Weg Zyklusprogression Zyklus
6-2-8-10-6-5
7
6
85
1-2-8-10-9
F
{1,2,8,9,10} 1-2-8-10-9-3 {1,2,3,8,9,10}
Bild 5.30: Gerichteter Graph
Spezielle Graphen Die Definition des abstrakten Graphen enthält keine speziellen strukturellen Vorgaben. Im Zusammenhang mit Anwendungen ergeben sich jedoch häufig spezielle Strukturen. Im Folgenden seien einige davon genannt. Als Baum bezeichnet man einen zusammenhängenden Graphen, der keine geschlossenen Kantenzüge aufweist. Beispielsweise stellen die Molekülstrukturen der Hexane (siehe Bild 5.31) Bäume dar. C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C C
C
C
C C
C
C
C
C
C
Bild 5.31: Mögliche Molekülstrukturen mit sechs Kohlenstoffatomen Bei einem gerichteten Graphen spricht man entsprechend von einem gerichteten Baum, wenn er keine Zyklen aufweist und sein zugeordneter ungerichteter Graph zusammenhängend ist. Bei solchen Bäumen kann man weitere Begriffe einführen: Als Wurzel eines gerichteten Baums bezeichnet man denjenigen Knoten, der keine Vorgänger hat (d- = 0; es existiert nur ein solcher Knoten); Blätter heißen diejenigen Knoten, welche keine Nachfolger besitzen (d+ = 0). So erzeugt zum Beispiel die Relation „ist teilbar durch“ einen gerichteten Baum.
86
5 Mathematische Grundlagen
3850
35
5
110
7
2
5
11
Bild 5.32: Darstellung der Relation „ist teilbar durch“ Ist für alle Knoten g eines Baumes mit Ausnahme der Blätter d+(g) = 2, so hat jeder Knoten genau zwei unmittelbare Nachfolger. Ein solcher Baum wird dann Binärbaum genannt. Sind zusätzlich alle möglichen Kantenprogressionen gleich lang, so heißt der Baum symmetrisch; differiert die Länge höchstens um 1, so heißt er ausgeglichen.
1 ja
x1 = 1
1 ja
x2 = 1
nein
ja
0
nein
x2 = 1
0
1
0
nein
Bild 5.33: Abbildungen aufeinanderfolgender Abfragen als Binärbaum Oftmals bedeuten Kanten Kosten bei einer technischen Realisierung, so dass für einen gegebenen Graphen von Interesse ist, "überflüssige" Kanten zu entfernen, dabei aber die Eigenschaft 'zusammenhängender Graph' nicht zu zerstören. Solche bezüglich der Knoten identischen Graphen mit Baumcharakter heißen aufspannende Bäume.
Bild 5.34: Verdrahtung eines Netzes zwischen gegebenen Anschlusspunkten als aufspannender Baum
5.3 Grundlagen der Graphentheorie
87
Die Konstruktion aufspannender Bäume ist teilweise recht aufwendig und technisch oft zu umgehen. Durch Hinzufügen weiterer Knoten erweitert man dann den ursprünglichen Graphen so, dass der Wert einer Maßgröße optimal wird (z.B. minmale Länge der Verdrahtung einer elektrischen Schaltung).
Bild 5.35: Verdrahtung ohne und mit zusätzlichen Knoten Mit Rücksicht auf technische oder funktionelle Gesichtspunkte kann es zweckmäßig sein, die Knotenmenge eines Graphen in zwei Teilmengen V1 und V2 aufzuspalten und besondere Vorschriften für die Inzidenzabbildung zu machen. Man fordert: V = V1 V2
und
V1 V2 = sowie
)(e) = (g, h)
oder )(e) = (h, g) mit g V1, h V2
Kanten dürfen also nur mit Knoten aus unterschiedlichen Teilmengen inzident sein. Ein solcher Graph heißt zweigeteilt oder bipartit.
... … …
…
…
…
...
…
Bild 5.36: Beispiel eines bipartiten Graphen Zur Veranschaulichung von Graphen wurden bisher zeichnerisch geometrische Elemente wie Knoten und Kanten in der Zeichenebene verwendet, aber eben nur als Verdeutlichung der abstrakten Beziehungen. Führt man jedoch bei Graphen einen Bezug zum Raum Rn ein, so gelangt man zum Begriff des geometrischen Graphen. Dieser ist gekennzeichnet durch eine endliche Menge von Knoten in Rn sowie eine endliche Menge von "glatten" Kurven, welche diese Knoten verbinden und, wenn überhaupt, gemeinsame Punkte nur in Knoten des Graphen besitzen. Für alle endlichen Graphen gilt der Satz, dass sie eine geometrische Realisierung in R3 haben.
88
5 Mathematische Grundlagen
Beispiel: Der Graph aus dem 3. Schritt des Stadtplans ist ein abstrakter, der aus dem 4. Schritt ein geometrischer Graph. Häufig kann man zu einem abstrakten Graphen einen isomorphen geometrischen Graphen in R2 angeben, jedoch nicht immer. Graphen mit einem isomorphen geometrischen Graphen in R2 heißen planar. Eine weitere, wesentliche Beziehung zwischen Graphen ist die sog. Dualität. Zueinander duale Graphen sind wichtig zum Beispiel beim Lösen von Layoutproblemen bei elektronischen Schaltungen. Es gilt nämlich der Satz, dass die Existenz eines zu einem gegebenen Graphen G dualen Graphen GD eine notwendige und hinreichende Bedingung für die Planarität des gegebenen Graphen ist. Damit lassen sich Bauelemente kreuzungsfrei verbinden. Ein dualer Graph lässt sich wie folgt konstruieren: Man ersetzt jedes von Kanten umschlossene Gebiet eines zusammenhängenden Graphen G durch einen Knoten in GD und bildet in G aneinandergrenzende Gebiete als sich nicht schneidende Kanten zwischen den zugeordneten Knoten in GD ab. Kanten von G, die dort kein Gebiet begrenzen, liegen in einem Gebiet und bilden sich als Schlinge ab. Für die Umgebung von G entsteht ein Umgebungsknoten in GD (siehe Beispiel in Bild 5.38). Bei den bisherigen Überlegungen waren Knoten und Kanten eines Graphen Mengenelemente ohne weiteres Merkmal als das der Unterscheidbarkeit. In vielen konkreten Anwendungen reicht diese Charakterisierung jedoch nicht aus; man muss daher den Elementen neue Attribute zuweisen. Ist ein solches Attribut eine reine Maßzahl, das sog. Gewicht eines Knotens oder einer Kante, so spricht man von gewichteten Graphen. Solche Graphen sind die Grundlagen für die Behandlung von Netzwerkflüssen, Transportprozessen, Planungsstrategien usw. Netzwerkfluß Netzwerkfluss 17
17 8
6
16
25 -8
Transportprozeß Transportprozess
7
10
z.B. in kW
-19
14
23
5
8 9
z.B. in Tausend Kfz/h
Bild 5.37: Beispiele gewichteter Graphen zur Darstellung spezieller Vorgänge Bei PERT (Program Evaluation and Review Technique) und vergleichbaren methodischen Ansätzen repräsentiert der gerichtete Graph die zeitlichen Beziehungen zwischen Tätigkeiten eines Auftrags und der mit diesen verbundenen Bearbeitungsdauer [KEL61]. Der Anfangsknoten einer Kante steht für die Tatsache, dass eine Tätigkeit ausführbar geworden ist, das Kantengewicht für ihre Dauer, und der Endknoten für die Tatsache, dass die Tätigkeit abgeschlossen wurde.
5.3 Grundlagen der Graphentheorie
89
GB GB BNL
BNL
D
D F
F CH
CH
A
A I
I
duale
U
U
U
GB
Graphen
U
GB BNL
BNL
D
D
F
F CH
A
I
CH
A
I
Bild 5.38: Beispiel für die Konstruktion eines planaren Graphen
90
5 Mathematische Grundlagen
Aufeinanderfolgende Tätigkeiten ergeben eine Kantenfolge, gleichzeitig mögliche Tätigkeiten stellt man als Kanten dar, welche von einem gemeinsamen Anfangsknoten ausgehen. Kommen mehrere Kanten an einem gemeinsamen Endknoten an, so steht das für die Aussage, dass mehrere Tätigkeiten Vorbedingung einer folgenden Tätigkeit sind. 5 2
1
2
4
5 6
3
3
10
2 3
5
7
3
9
8
3
5
9
8
2
4
8
11
10
12
2
14
4 5
13
6
Bild 5.39: Beispiel eines Tätigkeitsgraphen mit festen Kantengewichten Frühestens nach 30 Zeiteinheiten kann die gesamte Aufgabe beendet worden sein. Die fett gezeichneten Kanten entstehen bei der Suche nach der jeweils maximalen Dauer der Tätigkeitsfolge (man beachte, dass sich damit ein aufspannender Baum ergibt!). 627
7
1
62
4
612
2
69
7
63
5
3
611
617
11
9
626
630
613
617
12
14
8
10
622
6
13
Bild 5.40: Zeitlich längste Pfade im Tätigkeitsgraphen Die Summe der Gewichte entlang einer Kantenfolge steht für die insgesamt benötigte Zeit für die damit verbundenen Tätigkeiten. 6t steht für das Maximum der Summengewichte aller Wege, die zu einem Knoten führen. Die maximale Summe steht für die Gesamtzeit eines Auftrags; der entsprechende Weg im Graphen heißt kritisch. Graphen dieser Art sind grundsätzlich azyklisch. Statt der festen Kantengewichte sind häufig aber Gewichte anzunehmen, die durch eine Wahrscheinlichkeitsverteilung zu bestimmen sind. Überlegungen dieser Art lassen sich auf viele Problemstellungen anwenden, zum Beispiel für Leistungsbetrachtungen bei Digitalschaltungen und -systemen, für die Analyse auf zeitliche Fehler usw.
Petri-Netze Im Jahre 1962 veröffentlichte C.A. Petri eine Netz-Theorie zur Modellierung komplexer Vorgänge, bei denen einzelne Abläufe nicht mehr streng seriell, sondern auch unabhängig voneinander parallel (oder besser "nebenläufig") erfolgen kön-
5.3 Grundlagen der Graphentheorie
91
nen [PET62]. Nachdem diese Theorie zunächst wenig praktischen Nutzen fand, nimmt ihre Akzeptanz in letzter Zeit deutlich zu, so dass hier wenigstens die grundlegende Idee erläutert werden soll. Ein sogenanntes Petri-Netz kann als bipartiter, gerichteter Graph verstanden werden, dessen beide Knotenmengen zunächst völlig abstrakte Elemente enthalten können. Ordnet man diesen Komponenten jedoch eine Bedeutung zu, so kann die damit gekoppelte Interpretation der Grundbausteine des Graphen die Modellierung unterschiedlicher Anwendungsgebiete ermöglichen. Verbreitet ist der Einsatz von Petri-Netzen für ereignisgesteuerte Vorgänge, für deren Kausalbeziehungen und Nebenläufigkeit ein solches Netz eine besonders geeignete Modellierung abgibt. In diesem Zusammenhang weist man dem einen Knotentyp die Bezeichnung Stellen zu und bildet durch sie bestimmte Bedingungen ab. Ereignissen weist man den anderen Knotentyp zu, und bezeichnet die zugehörigen Knoten als Transitionen. Für die Verbindung der Knoten durch Kanten gelten die Konstruktionsvorschriften für gerichtete bipartite Graphen. In Bild 5.41 werden die Knotensymbole vorgestellt und ein Beispiel für ein Petri-Netz ohne Nebenläufigkeit gegeben.
Stelle Stelle
Transition Transition
S0
T0
S1
T1
S2
T2
S3
T3
Bild 5.41: Symbole und Beispiel für ein Petri-Netz Am Beispiel der Autonutzung soll dieses Netz gedeutet werden: Es stehen S0 für Zündschlüssel bereit S1 für Zündung ein, Motor läuft S2 für Motor steht S3 für Schlüssel abgezogen
T0 für Zündung einschalten und Motor starten T1 für Zündung ausschalten T2 für Schlüssel abziehen T3 für Schlüssel in Zündschloss stecken
In diesem einfachen Fall ist der Ablauf rein sequentiell. Das Petri-Netz gibt in dieser Form vor allem kausale Zusammenhänge zwischen Stellen (= Bedingungen, Situationen) und Transitionen (= Aktionen) wieder. Beobachtet man sich aber bei der Deutung dieses Netzes etwas genauer, so vollzieht man letztlich ein schrittweises Vorangehen entlang der Folge von Stellen und Transitionen; man sucht eine dynamische Interpretation der Beziehungen. Diese wird nun in Petri-Netzen mit Hilfe sogenannter Marken vollzogen, die man als Belegungen der Stellen einführt. Dabei sind im einfachsten Falle zwei Situationen zu unterscheiden: Eine Stelle weist keine Marke auf (sie ist leer), oder aber eine Stelle weist (mindestens) eine Marke auf. Für das Weiterbewegen von Markierungen gelten sogenannte Schaltre-
92
5 Mathematische Grundlagen
...
Ausgangsstelle von T i
...
Eingangs- T stelle von T i i
...
geln, die für einfache Fälle in Bild 5.42 dargestellt worden sind, dabei wird die Markierung durch den fetten Punkt in einer Stelle symbolisiert.
Bild 5.42: Einfache Schaltregeln Man verwendet in diesem Zusammenhang zwei Begriffe und sagt: -
eine Transition ist schaltbereit, wenn alle ihre Eingangsstellen eine Markierung und alle ihre Ausgangsstellen leer sind (sofern sie nicht gleichzeitig Eingangsstellen sind),
-
eine Transition schaltet, dabei zieht sie die Marken aller Eingangsstellen ab, so dass diese leer werden, und markiert alle Ausgangsstellen (wobei diese wiederum Eingangsstellen sein können). Wann zeitlich genau eine Transition schaltet, wird dabei nicht festgelegt.
Auf mögliche Konflikte, die entstehen, wenn mehrere Transitionen schaltbereit sind, und diese mindestens eine gemeinsame, markierte Eingangsstelle besitzen, wird hier nicht eingegangen. Ein Beispiel soll den Ablauf in einem solchen markierten Petri-Netz veranschaulichen (Bild 5.43). Wir ergänzen zu diesem Zweck den Ablauf in Bild 5.41 um die Zusammenhänge, welche eine selbstschärfende Wegfahrsperre WFS für das Starten des Motors bedingt. Dabei kommen neue Stellen und Transitionen hinzu: Es stehen
S4 für Zündung aus S5 für WFS ist deaktiviert S6 für WFS bleibt deaktiviert, S7 für WFS aktiviert, S8 für Codeschlüssel für WFS bereit S9 für Codeschlüssel für WFS abgezogen
T4 für WFS aktivieren T5 für WFS deaktivieren T6 für Codeschlüssel gibt WFS frei
5.4 Algebraische Strukturen, Boolesche Algebra
S8
T6
93
S9
T5
S5
T4
S6
S0
S1 T0
S7
S´´ 4
S2
T2
S3
T1 S´4
T3
Bild 5.43: Einfluss der Wegfahrsperre Es bedarf vierer Anfangsmarken, damit der Sollbetrieb des Fahrzeugs aufgenommen werden kann. Durch Verfolgen der Marken beim Schalten der jeweils schaltbereiten Transitionen lassen sich die einzelnen Vorgänge in ihrer kausalen und zeitlichen Beziehung modellieren. Wie man bei genauerer Analyse dieses einfachen Modells feststellt, erfasst es nicht alle Betriebssituationen des Fahrzeugs. So gibt das Modell beispielsweise nicht die Situation wieder, dass die Wegfahrsperre aus S5 heraus automatisch aktiviert wird, wenn nach einer vorgegebenen Zeit die Transition T0 nicht schaltet. Petri-Netze lassen sich mit weiteren Merkmalen und damit Modellierungsfähigkeiten ausstatten, so legt z.B. das Verhalten einer W Sekunden nach Abschalten der Zündung selbstschärfenden Wegfahrsperre nahe, die Transition T4 mit einer Schaltzeit in dieser Größe zu versehen, so dass die Marke für diese Zeit in T4 "verweilt". In der weiterführenden Literatur wird auf solche und andere Aspekte ausführlich eingegangen [ROW91].
5.4 Algebraische Strukturen, Boolesche Algebra Der Umgang mit Mengen, deren Teilmengen und den in Kapitel 5.1 eingeführten Operationen lässt eine gewisse Systematik erkennen. Da diese auf grundlegende Beziehungen der Logik führt, soll in diesem Kapitel dieser Zusammenhang in stark verkürzter, überwiegend anschaulicher Weise entwickelt werden.
94
5 Mathematische Grundlagen
Man geht dabei aus von einer Menge M, ihrer Potenzmenge P(M), den Operationen Durchschnitt, Vereinigung, Komplement und der leeren Menge. Es sei R M
S M
T M
R P(M)
S P(M)
T P(M)
n
M = n
P(M) = 2
S
T
R
M
Bild 5.44: Beispiel für Beziehungen zwischen Teilmengen Die in Kap. 5.1 eingeführten Beziehungen lassen sich in "Regeln" Ri fassen, die bezüglich der Operationen bzw. spaltenweise gegliedert sind. Es gilt: R1:
S T M
S T M
S T P(M)
S T P(M)
S
T
S
T
M
M
Bild 5.45: Abgeschlossenheit der Operationen Durchschnitt und Vereinigung Beide Operationen liefern als Ergebnis eine Teilmenge, die in P(M) enthalten ist.
R2:
ST = TS
ST = T S
Die Reihenfolge der beiden Operanden ist ohne Einfluss auf das Ergebnis. R3:
R (S T) =
R (S T) =
(R S) (R T)
(R S) (R T)
5.4 Algebraische Strukturen, Boolesche Algebra
S
95
S
T ST
ST
R
R
T
R
R
S
S
T SR
SR
TR
TR
T
R
R
Bild 5.46: Unabhängigkeit von der Reihenfolge der Operationen Beim Ausklammern muss der Operand außerhalb der Klammern mit jedem Operanden in der Klammer verknüpft werden. S M =S
R4:
S Ø = S
M S
Ø
S
Bild 5.47: Zur Verdeutlichung neutraler Elemente bzw. sind "neutrale" Operationen bezüglich der Bezugsmenge M bzw. der leeren Menge Ø. M bzw. Ø stellen bezüglich aller Teilmengen S eine allgemeine obere bzw. untere Schranke (sog. universelle Schranken) dar. R5:
S CM(S) = Ø
S CM(S) = M M S CM(S)
Bild 5.48: Zur Existenz einer Komplementmenge
96
5 Mathematische Grundlagen
Zu jeder Teilmenge S existiert eine Komplementmenge bezüglich M. Die Regeln R1 - R5 legen Eigenschaften über den Umgang mit M, P(M), und fest. Ein solches Gebilde aus Operanden und Regeln nennt man algebraische Struktur; da man sich hier auf Mengen als Operanden bezieht, heißt das oben betrachtete Gebilde Mengenalgebra und man schreibt kurz MA = [P(M), , , CM, , M] Es lassen sich viele andere algebraische Strukturen angeben, die je nach Definition der Operanden und Operatoren unterschiedliche Eigenschaften haben. Man hat gezeigt, dass viele der Algebren auf wenige Grundtypen zurückgeführt werden können, also Interpretationen solcher Grundtypen sind. Eine zentrale Rolle spielen dabei Algebren, die auf Arbeiten von G. Boole (1815-1864) zurückgehen und daher Boolesche Algebren genannt werden [BOO54]. Man legt folgende Definition zugrunde: Eine Boolesche Algebra BA = [ K, T, A, , O, I ] ist eine Menge K mit zwei zweistelligen Verknüpfungen T ("TEE") und A ("RUM"), der einstelligen Relation und den zwei universellen Schranken O und I, wobei für alle Elemente aus K eine Reihe von Regeln gelten. (Ein Verknüpfungsgebilde ist dann und nur dann eine Boolesche Algebra, wenn es zwei zweistellige, eine einstellige und zwei nullstellige Operationen besitzt, welche diese Regeln erfüllen). Bevor auf diese Regeln präziser eingegangen wird, ist in Zusammenhang mit den bisherigen Betrachtungen bei Mengen folgender Satz wichtig: Satz 1: Ist P(M) die Potenzmenge einer beliebigen Menge M, so ist das Verknüpfungsgebilde [P(M), , , CM, , M] stets eine Boolesche Algebra.
Außerdem gilt allgemein: Satz 2: Bei jeder Booleschen Algebra gilt für die Menge K:
K
= 2n
(n = 1, 2, ...).
Beispiel: Es sei mit M = 1 K = P(M) = { M, } und damit K = 2. Dann bildet gemäß Satz 1 [P(M), , , CM, , M] eine Boolesche Algebra, welche die einfachste, nichttriviale Algebra dieses Typs darstellt. Die Beziehungen gemäß R1 - R5 lassen sich für diesen einfachen Fall auch durch Tafeln (sog. Verknüpfungstabellen) darstellen (Tabelle 5.3); dabei ist O = sowie I = M, d.h. leere Menge und Bezugsmenge sind hier die universellen Schranken.
5.4 Algebraische Strukturen, Boolesche Algebra
97
M
M
M
M
M
M
M
M
Ergebnis
CM Operand
Operand 2
Operand 1
M
M
Ergebnis
Ergebnis
Tabelle 5.3: Tabellarische Notation der Mengenoperationen (Erläuterung: Wegen R4 ist z.B. M = ; dieser Wert wird an der Kreuzung der zugehörigen Zeile für und der zugehörigen Spalte für M eingetragen; wegen R2 sind die Verknüpfungstafeln für und symmetrisch bezüglich der Hauptdiagonalen). Setzt man zur Abstraktion von einer speziellen Mengeninterpretation wegen P(M) = 2 = 0 und M = 1, sowie = T und = A, so erhält man folgende Tafeln: A
0
1
T
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
Tabelle 5.4: Abstraktion der Operanden und Operatoren Die nächsteinfache Boolesche Algebra ist durch K = 22 = 4 festgelegt; die Bezugsmenge besteht daher aus vier Elementen und führt zu einer vierwertigen Algebra. Bei einer Booleschen Algebra gilt allgemein das Dualitätsprinzip: Vertauscht man in einem Satz unter alleiniger Verwendung der Operatoren T, A und alle Operatoren T durch A und umgekehrt, so erhält man wieder einen Satz (den sog. dualen Satz). Enthält der Satz die neutralen Elemente O und I, so müssen auch diese vertauscht werden. Diese Aussage ist wichtig zur Vereinfachung von Beweisvorgängen und für die Anwendung Boolescher Algebren ("halbe Arbeit"). Aus mathematischer Sicht ist es von großer Bedeutung, Regeln auf axiomatische Weise zu begründen. Huntington gelang dies für die Booleschen Algebren [HUN04]. Er forderte für eine Grundmenge K und beliebige Elemente a, b, c aus K ein System von fünf Axiomen (heute allgemein als Huntingtonsche Axiome bezeichnet).
98
5 Mathematische Grundlagen a, b K
H1: "Abgeschlossenheit" a T b K
a A b K
Die Anwendung der Operatoren T und A führt nicht aus der Menge K heraus. H2: "Kommutativ-Gesetz"
a, b K a A b = b A a
a T b = b T a
Die Reihenfolge der Operanden ist vertauschbar, die Operatoren T und A sind kommutativ. H3: "Distributiv-Gesetz"
a, b, c K
(a A b) T c =
(a T b) A c =
(a T c) A (b T c)
(a A c) T (b A c)
Jeder der beiden Operatoren T und A distribuiert über den anderen. H4: "Existenz eines neutralen Elements" a, I K
O, a K
I T a = a
O A a = a
Zu jedem Operator A und T existiert ein neutrales Element, das jedes beliebige Element der Menge K unverändert bezüglich des Operators T bzw. A lässt. H5: "Komplement"
a, k K
a T k = O
a A k = I
Zu jedem Element a K gibt es ein Element a = k K, das komplementär zu a ist, d.h. seine Verknüpfung mit a führt zum neutralen Element. Dieses Axiomensystem stellt die Grundlage für die Formulierung weiterer Regeln dar. An ein solches System stellt man folgende Forderungen: - Freiheit von logischen Widersprüchen - Unabhängigkeit der Axiome untereinander - Vollständigkeit. Ein Axiomensystem ist also ein Verknüpfungsgebilde, dessen einzelne Aussagen nicht beweisbar, aus dem aber alle weiteren (abstrakten) Regeln ableitbar sind. Existieren nun andere Verknüpfungsgebilde, welche durch Abstraktion auf ein bestimmtes Axiomensystem zurückgeführt werden können, so spricht man von einer Interpretation dieses Systems. Beispiele dafür sind: - Boolesche Algebra mit zwei Werten BA2 = [ {0, 1}, T, A , , 0, 1 ]
5.4 Algebraische Strukturen, Boolesche Algebra
99
- Aussagenlogik AL = [ {wahr, falsch}, UND, ODER, NICHT, stets falsch, stets wahr] - Mengenalgebra mit zwei Elementen MA2 = [{, M}, , , CM, , M] - Mengenalgebra allgemein MA = [P(M), , , CM, , M] Bei den erwähnten Interpretationen sind einige, bei denen das algebraische Verknüpfungsgebilde nur auf zwei Elementen beruht, z.B. und M oder 0 und 1. Sie stellen elementarste Interpretationen dar. Erinnert man sich in diesem Zusammenhang an die in Kap. 3.5 eingeführten Binärsignale mit den Werten L und H, so stellt sich die Frage, ob der formale Umgang mit diesen Signalen eine Interpretation des Axiomensystems nach Huntington sein könnte. Sollte dies der Fall sein, so ließe sich ein "Verknüpfungsgebilde mit Binärsignalen" axiomatisch begründen und die zugehörigen Regeln streng formal ableiten. Man muss dabei aber Folgendes im Auge behalten: Widerspricht eine physikalische Anordnung, welche für Binärsignale eine Verknüpfung realisiert, Axiomen oder daraus korrekt abgeleiteten Regeln, so kann man daraus nicht auf die Ungültigkeit von Axiomen bzw. Regeln schließen, sondern das physikalische Gebilde ist dann keine zulässige Interpretation des Axiomensystems. Zur Klärung der oben gestellten Fragen gehen wir von einer anschaulichen Überlegung mit technischen Komponenten aus. Wir wählen dazu eine zweiwertige Signaldarstellung mit { L, H } , das Bauelement Relais mit Schließer und Öffner und die Verbindungsmöglichkeiten Serien- und Parallelschaltung aus, da die damit möglichen Schaltungen sofort einsichtig sind. Im Detail ergibt sich folgende Situation: phys. Größe: Spannung
UB
H
UB
H
L, H
L Bild 5.49: Festlegung der Binärbereiche
Bild 5.50: Schalter als einfachstes Element
Schließer L „in Ruhe“
Schließer H
Öffner
Bild 5.51: Funktionsweise eines Relais
„betätigt“
Öffner
100
5 Mathematische Grundlagen
Da die Relaiskontakte potentialfrei sind, können sie mit anderen Kontakten desselben oder anderer Relais beliebig zusammengeschaltet werden. Eine solche Zusammenschaltung aus Relais und ihren Kontakten sei bezüglich der Signale H und L ein "Verknüpfungsgebilde": Schaltungsausgänge
Schaltungseingänge L, H
L, H
Verknüpfungsgebilde
L, H
X = (xn,...,x2,x1)
(Zahl t 1)
...
...
(Zahl t 1)
L, H
Y = (ym,...,y2,y1)
Bild 5.52: Einführung eines Verknüpfungsgebildes für Binärgrößen Unter den genannten Voraussetzungen lassen sich u.a. folgende Eigenschaften feststellen (ser steht für die Operation Serien- bzw. Reihenschaltung, par für die Operation Parallelschaltung von Kontakten): S1:
x1 x1
x2 UB
UB x1 ser x2 { L, H }
x2 x1 par x2 { L, H }
S2: x1
x2
x1
x1
x2
= x2
x1 ser x2 = x2 ser x1 Bild 5.53a: Mögliche Kontaktanordnungen
=
x2 x1
x1 par x2 = x2 par x1
5.4 Algebraische Strukturen, Boolesche Algebra
101
S3: x1
x2 x1 x1
x2
x3
=
x2 x1
x1
x3
x1
x2 x3 x1 par (x2 ser x3)= (x1 par x2) ser (x1 par x3)
x1 ser (x2 par x3)= (x1 ser x2) par (x1 ser x3)
U
V
S4:
x3
=
x
=
=
x
x
x x ser V = x V: Dauerhafte Verbindung
x par U = x U: Dauerhafte Unterbrechung
Bild 5.53b: Mögliche Kontaktanordnungen Unter Verwendung eines einzigen Schließers oder Öffners können zwei sinnvolle Schaltungen mit nur einem Ein- und einem Ausgang angegeben werden: Die Reproduktion liefert als Ergebnis das unveränderte Eingangssignal, die Negation invertiert das Eingangssignal, d.h. L wird zu H und H zu L.
L,H
H,L
UB
L,H
L,H
UB (Reproduktion)
(Negation) Bild 5.54: Schaltungen für n = 1
Damit lässt sich eine weitere wichtige Eigenschaft feststellen (Bild 5.55). S5:
x x
x
=
= U
V
x
(Ideales, zeitgleiches Schalten der Kontakte vorausgesetzt) x ser x = U x par x = V Bild 5.55: Anordnungen mit Öffner und Schließer desselben Relais
102
5 Mathematische Grundlagen
Aus diesen Überlegungen und dem Vergleich der Verhältnisse bei der Booleschen Algebra und den Huntingtonschen Axiomen kann man folgern, dass diese Kontaktschaltungen eine zulässige Interpretation dieser Axiome sind; man spricht daher von Kontaktalgebra oder – weiter verbreitet – Schaltalgebra [SHA38]. Für sie hat sich eine eigene Notation herausgebildet, die allerdings nicht bei allen Autoren gleichartig ist. Das Verknüpfungsgebilde Schaltalgebra ist definiert durch SA = [ {0, 1}, &, V,
, 0, 1]
(Bei der gewählten Signalzuordnung der Relaisschaltungen entspricht {L,H} der Grundmenge {0, 1}, ser, par und entsprechen den Verknüpfungen &, V und und die neutralen Elemente 0 und 1 entsprechen U und V). Die Schaltalgebra kennt nur die beiden Werte 0 und 1, die beiden zweistelligen Verknüpfungen Konjunktion & und Disjunktion V sowie die einstellige Verknüpfung Negation . Die beiden neutralen Elemente müssen wegen der binären Wertemenge gleich diesen Werten sein. In dieser Notation werden die Schaltalgebra und die Mengenalgebra mit zwei Elementen als Interpretationen der Huntingtonschen Axiome aufgelistet (Tabelle 5.5). MA2
HA
SA
{ , M }
K
{ 0, 1 }
T
&
A
V
O
0
M
I
1
CM
Tabelle 5.5: Beispiel für mögliche Interpretationen
Die Symbole für die Operatoren der Schaltalgebra werden leider nicht einheitlich verwendet; so findet man anstelle des &-Symbols auch oder , anstelle des VSymbols auch + und anstelle des Negationssymbols auch oder ’. Auf der Basis der schaltalgebraischen Interpretation sollen nun Regeln zusammengestellt werden, die entweder unmittelbar auf die Axiome zurückgehen oder aus ihnen abgeleitet werden können. Bei der Anordnung wird (wie schon bisher) von der Dualität der Beziehungen Gebrauch gemacht.
5.4 Algebraische Strukturen, Boolesche Algebra
103
Regeln für 0 und 1 R1a R2a R3a R4a
0 0V0 1V1 0V1
= = = =
1 0 1 1
R1b R2b R3b R4b
1 1&1 0&0 1&0
= = = =
0 1 0 0
a&1 a&0 a&a a& a
= = = =
a 0 a 0
Regeln für ein Element R5a R6a R7a R8a
aV0 aV1 aVa aVa
= = = =
a 1 a 1
R5b R6b R7b R8b R9 ( a ) = a = a
Regeln für zwei oder mehr Elemente R10a
a V (b V c) (a V b) V c aVbVc
= =
R10b
a & (b&c) (a & b) & c a&b&c
= =
a & (a V b)
=
(a & b)
=
( assoziative Gesetze ) R11a
R12a
a V (a & b)
(a V b)
= a R11b ( Absorptionsgesetze )
= a & b R12b ( De Morgansche Regeln )
a
a V b
Die in den Regeln R1-R12 wiedergegebenen Beziehungen der Schaltalgebra sind zunächst Aussagen über Gleichheiten der beiden Seiten. Sie können aber auch als Anweisungen zum Verändern gedeutet werden. Nennen wir eine beliebige Zusammenstellung der Werte 0, 1, der Verknüpfungen &, V, sowie von Elementen x, y, z, ... einen schaltalgebraischen Ausdruck, so gibt jede der Regeln eine Anweisung, wie der Ausdruck der einen Seite durch den der anderen Seite ersetzt werden kann. Dabei darf das Gleichheitszeichen in beiden Richtungen gelesen werden. Schaltalgebraische Regeln können also dazu dienen, Ausdrücke geeignet umzuformen; Ziel der Umformung kann es z.B. sein, Ausdrücke zu vereinfachen, Ausdrücke in anderer Form darzustellen oder bestimmte Operatoren zu eliminieren.
104
5 Mathematische Grundlagen
Beispiele: Vereinfachung: ( a & b & c ) V ( a & b ) V ( b V ( a & a ) ) = ( a & b & c ) V ( a & b ) V b V 0 (R12) =(a&b&c)V(a&b)Vb (R5) =(a&b&c)V(a&b)Vb (R9) =(a&b&c)Vb (R11) =b (R11) In UND-ODER-Form bringen: ((aVb)&c)VdV(b&c) = ( a & c ) V ( b & c ) V d V ( b & d ) (H3) =(a&c)V(b&c)Vd (R7) In Form ohne V-Operator bringen: (a&b)V(c&d)Ve =((a&b)V(c&d)) Ve (R9) =((a&b)V(c&d))&e (R12) =(a&b)&(c&d)&e (R12) In Formeln der Schaltalgebra lässt man häufig das &-Zeichen weg und gibt dem &Operator eine stärkere Bindung als dem V-Operator ("& vor V"). Beide Regeln dienen nur der Vereinfachung der Schreibweise, ändern jedoch nichts an der Gleichwertigkeit der beiden Operatoren. Man darf also z.B. statt (a & b) V (c & d) auch ab V cd schreiben.
5.5 Aufgaben Aufgabe 5.1 Für ein Verknüpfungsgebilde [ M,n, p, , 0, I ] sollen angeblich folgende Regeln gelten (a, b, c M): R1:
(a n b) p c = (a p c) n (b p c)
(a p b) n c = (a n c) p (b n c)
R2: R3:
anI = a an b M
ap0=a apbM
R4: R5: R6: R7:
(a p b) p c = (a p c) p (b p c) an a=0 anb=bna a n (b p c) = (a n b) p c
(a n b) n c = (a n c) n (b n c) ap a=I a p b = bp a ap (b n c) = (a p b) n c
Wählen Sie aus den Regeln genau diejenigen aus, welche beweisen, dass es sich bei dem Verknüpfungsgebilde um eine Boolesche Algebra handelt. Wie nennt man die Gesamtheit dieser Regeln?
Aufgabe 5.2 Gegeben sind die Mengen A = { a, b, ( c, d ) } und B = { ( a, c), b, e, f } 5.2.1 Geben Sie die Elemente von A B an. 5.2.2 Geben Sie die Elemente von A B an.
5.5 Aufgaben
105
5.2.3 Zur Konstruktion einer Menge M ist folgende Vorschrift gegeben: M = { x |x C = C } Wie könnte man M sehr viel einfacher ausdrücken? 5.2.4 Geben Sie die Elemente von M an, für den Fall, dass C = { a, b, c } gegeben ist. 5.2.5 Eine andere Vorschrift lautet: M = { x | x D und x E } Drücken Sie M einfacher mit Hilfe von D und E aus: - für den Fall D E = und - für den Fall D E.
Aufgabe 5.3 Eine Verträglichkeitsrelation a sei gegeben mit a D a, a D b, a D c, b Da, b Db, b Dc, c Da, c Db und c Dc. 5.3.1 Zeichnen Sie einen ungerichteten Graphen ohne Schleifen, der diese Relation repräsentiert. Warum darf der Graph ungerichtet und ohne Schleifen sein? 5.3.2 Verändern Sie die gegebene Relation so, dass eine Äquivalenzrelation entsteht.
Aufgabe 5.4 Gegeben ist der folgende Graph P: B
C
8
6
A
E
F 4
7
5 1
9 10
2
D
G Graph P Graph P
3
H
5.4.1 Geben Sie alle Eigenschaften an, die auf den Graphen P zutreffen. 5.4.2 Zeichnen Sie einen geometrischen Graphen Q, der zu dem Graphen P isomorph ist. 5.4.3 Geben Sie im Graphen P eine Kettenprogression an, deren Anfangsknoten E und deren Endknoten H ist und die jeden Knoten des Graphen genau einmal berührt.
106
5 Mathematische Grundlagen
5.4.4 Wie nennt man den Graphen, der aus allen Knoten des Graphen P, jedoch nur aus den zur Kettenprogression gemäß 5.4.3 gehörenden Kanten besteht?
Aufgabe 5.5 Die dargestellte elektrische Schaltung soll zur Simulation in einen bipartiten Graphen abgebildet werden. Der erste Knotentyp repräsentiere die Baulemente und Ein-/Ausgänge der Schaltung. Mit dem zweiten Knotentyp sollen die Verknüpfungen (Lötpunkte) dargestellt werden. 5V
RC
T2 A
R1 E
T1
D
R2
5.5.1 Konstruieren Sie einen bipartiten Graphen mit minimaler Knotenzahl. Beachten Sie die speziellen Eigenschaften eines bipartiten Graphen. Um die Knotenzahl zu reduzieren, lassen sich die Bauelement-Knoten streichen und in Kantengewichte abbilden. Für den Transistor (Bauelement-Knoten mit drei adjazenten Kanten) muss zunächst eine Transformation entsprechend der folgenden Abbildung durchgeführt werden. Ein-/Ausgabeknoten dürfen nicht gestrichen werden. b T2
b T1 a
a
T
T3
c c
5.5 Aufgaben
107
Führen Sie die Reduktion der Knoten für den nachfolgend gezeichneten Graphen durch. 5V
R D
E
R1 T R2
A
GND
5.5.2 Zeichnen Sie den Graphen, nachdem Sie den Transistor-Knoten T entsprechend umgewandelt haben. Ist der Graph noch bipartit? 5.5.3 Überführen Sie alle Bauelement-Knoten aus 5.5.2 (nicht die Ein-/Ausgänge) in Kanten (Zeichnung). Bezeichnen Sie die Kanten entsprechend. Ist der Graph noch bipartit? 5.5.4 Streichen Sie alle Knoten aus 5.5.3, die den Grad 2 besitzen und keine Einoder Ausgangsknoten sind.
Aufgabe 5.6 Die folgenden Tabellen definieren zwei zweistellige und eine einstellige Verknüpfung auf der Menge M = { 0, 1, 2 }. T
0
1
2
A
0
1
2
0
1
2
0 1 2
0 1 2
1 2 2
2 2 2
0 1 2
0 0 0
0 0 1
0 1 2
2
1
0
5.6.1 Aus welcher grundsätzlichen Überlegung heraus können die Operatoren auf dieser Grundmenge keine Boolesche Algebra bilden? Dennoch könnten für die Operatoren einige der Huntingtonschen Axiome gelten: 5.6.2 Sind die Operationen abgeschlossen? 5.6.3 Gilt das Kommutativgesetz? Aus welcher Eigenschaft der Verknüpfungstabellen kann man darauf schließen? 5.6.4 Gilt das Distributivgesetz? Setzen Sie in die allgemeine Formel für jedes Element den Wert 1 ein, und überprüfen Sie, ob das Gesetz gilt. 5.6.5 Existieren neutrale Elemente bzgl. T und A ? Wie lauten sie?
108
5 Mathematische Grundlagen
5.6.6 Berechnen Sie a T a und a A a für a = 0, 1 und 2. Führt die Berechnung entsprechend dem 5. Huntingtonschen Axiom zu den neutralen Elementen aus 5.6.5?
Aufgabe 5.7 Gegeben sei das folgende Relais-Schaltnetz. Es besteht ausschließlich aus sog. Schließern, so dass sich die gezeigten Schalterstellungen für Ua = Ub = Uc = Ud = Ue = L einstellen. Ud
Ua K1
UB
K2
Uc Ub
Ue Uy
5.7.1 Welche Besonderheit ergibt sich bezüglich der Signalflussrichtung für diese Schaltung? 5.7.2 Geben Sie mit den Operatoren par und ser einen Ausdruck an, der bezüglich der Klemmen K1 und K2 gleiches funktionales Verhalten zeigt. 5.7.3 Welche Werte müssen an den Eingängen der Relais anliegen, damit an der Klemme K2 die Spannung Uy = UB anliegt? Geben Sie alle Lösungen an.
Zum Weiterlesen: [BIB73]
Birkhoff, G.; Bartee, T.C.: Angewandte Algebra. München: Oldenbourg, 1973
[BUS68]
Busacker R. G.; Saaty, T. L.: Endliche Graphen und Netzwerke: Eine Einführung mit Anwendungen. München: Oldenbourg, 1968
[SCS89]
Schmidt, G.; Ströhlein, T.: Relationen und Graphen. Berlin: Springer, 1989
6.2 Graphische Darstellung von Schaltfunktionen
109
6 Schaltalgebra 6.1 Schaltfunktionen Die Schaltalgebra wurde nun nicht deshalb entwickelt, um eine weitere Interpretation der Booleschen Algebra einzuführen, sondern um das theoretische Handwerkszeug für die formale Entwicklung von binären Digitalschaltungen zur Verfügung zu haben. Gehen wir dabei von der schon bekannten Aufgabe aus (Kap. 1.2),
f
Bild 6.1: Funktionsbeziehung zwischen Ein- und Ausgang dass Informationsverarbeitung letztlich eine Wandlung von eingabe- auf ausgabeseitige Information nach festgelegten Vorschriften darstellt, so kann man diese Wandlung als einen funktionellen Zusammenhang deuten. Es scheint daher sinnvoll zu sein, den Funktionsbegriff und die Möglichkeiten schaltalgebraischer Aussagen miteinander in Bezug zu bringen. Zu diesem Zweck soll der Begriff Funktion präzisiert werden. Gegeben seien zwei Mengen S und T. Existiert nun eine Vorschrift, die jedem Element s S eindeutig ein bestimmtes Element t T zuordnet, so heißt f eine Funktion mit f(s) als dem Wert der Funktion an der Stelle s. S wird als Definitions- oder Ursprungsmenge, T als Zielmenge der Funktion bezeichnet. Man sagt, S werde in T abgebildet und schreibt dafür f: S o T Allgemein ist T f(S) mit f(S) als der durch die Funktion definierten Bildmenge B. Beispiel:
f(S) ergibt den Anfangsbuchstaben der Zahlen 1 - 5: T
S
1
2 4
z
v
5 3
f (1) = e f (2) = z f (3) = d f (4) = v f (5) = f
e s
f d
a B
Bild 6.2: Beispiel einer Funktionsbeziehung
110
6 Schaltalgebra
Man unterscheidet mehrere Arten von Funktionen. Wesentlich sind: -Injektion: Eineindeutige Abbildung von S in T. Jedem Element aus S wird genau ein Element aus T zugeordnet. Die Bildmenge ist Teilmenge der Zielmenge (B T). T S B
Bild 6.3: Injektive Abbildung -Surjektion: Eindeutige Abbildung von S auf T. Verschiedene Elemente aus S können denselben Elementen aus T zugeordnet sein. Bild- und Zielmenge sind identisch (B { T). T{B S
Bild 6.4: Surjektive Abbildung -Bijektion: Eineindeutige Abbildung von S auf T. Funktion, die sowohl die Eigenschaften der Injektion als auch der Surjektion aufweist. T{B S
Bild 6.5: Bijektive Abbildung Der Funktionsbegriff stellt offensichtlich eine Beziehung zwischen den beiden Mengen S und T dar. Es liegt daher nahe, ihn mit dem der Relation in Verbindung zu bringen. An einem Beispiel werde das verdeutlicht: Die Funktion y = x! (Fakultät von x) mit der Definitionsmenge S = N und der Zielmenge T = N kann auch als Relation aufgefasst werden: Die Relation x D y zwischen S und T sei dann erfüllt, wenn 1·2·3· ... ·x = y ist. Zum Beispiel gilt: 1 D 1, 2 D 2, 3 D 6, 4 D 24 usw. Allgemein kann man jede eindeutige Relation als Funktion auffassen. Funktionen stellen daher einen Spezialfall der Relationen dar.
6.1 Schaltfunktionen
111
Die Definition einer Funktion kann auf verschiedene Weise erfolgen. Die einfachste ist die Angabe aller Paare (s, t), welche eine Funktion festlegen (im Beispiel: (1,1), (2,2), (3,6), (4,24) usw.), was aber unter Umständen zu einer recht aufwendigen Darstellung führen kann. Im Einzelfall muss man daher nach kompakteren Schreibweisen suchen (im Beispiel y = 1·2·3· ... ·x) bzw. Kurznotationen einführen (im Beispiel y = x!). Bei der Beschränkung der weiteren Betrachtung auf Aspekte der binären Schaltungstechnik lässt sich der oben definierte Funktionsbegriff zur Definition der sog. Schaltfunktionen heranziehen. Dabei legen wir folgende Aufgabe zugrunde:
...
x1 x2 X = (xn, ..., x2, x1) xn
xi {0, 1}
Funktioneller Zusammenhang f
y y {0, 1}
Bild 6.6: Zum Begriff der Schaltfunktion Es ist dann S = {0, 1}n (das n-fache kartesische Produkt der Menge {0, 1}) und T = {0, 1}. Die Funktionsbeziehung wird ausgedrückt durch f: { 0, 1 }n o { 0, 1 } (wegen T = 2 ist keine Untermenge als Bildmenge sinnvoll, wenn man von einer nichttrivialen Funktion sprechen will, d.h. Zielmenge und Bildmenge sind identisch; es handelt sich um eine Surjektion). Die Definition einer Schaltfunktion besteht dann im einfachsten Fall in der Angabe aller Paare (s, t) mit s {0, 1}n und t {0, 1}. In diesem Zusammenhang spricht man von s als dem Argument und von t als dem Funktionswert. Für das Argument hat sich in der Schaltalgebra ein spezieller Name eingebürgert: Man bezeichnet s als Belegung und versteht darunter eine bestimmte 0/1-Wertzuweisung an die Komponenten des Eingabevektors X. Wegen ¨{0, 1}n ¨= 2n gibt es genau 2n verschiedene Belegungen. Beispiel:
n=2 X = (x2, x1)
{0, 1} x {0, 1} = {(0, 0), (0, 1), (1, 0), (1, 1)} mögliche Belegungen
Eine Schaltfunktion lässt sich dann allgemein schreiben als y = f (X) = f (xn, ..., x2, x1) dabei heißen xn, ..., x1 die unabhängigen Variablen und y die abhängige Variable der Funktion.
112
6 Schaltalgebra
Beispiel: f sei diejenige Schaltfunktion, die genau dann den Wert y = 1 annimmt, wenn die Belegung von (a3, a2, a1) eine ungerade Anzahl von Einsen aufweist. (a3, a2, a1)
f
y
jO
a3
a2
a1
y
( 0,0,0 ) ( 0,0,1 ) ( 0,1,0 ) ( 0,1,1 ) ( 1,0,0 ) ( 1,0,1 ) ( 1,1,0 ) ( 1,1,1 )
o o o o o o o o
0 1 1 0 1 0 0 1
0 1 2 3 4 5 6 7
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 1 1 0 1 0 0 1
Tabelle 6.2: Funktionsdarstellung
Tabelle 6.1: Abbildungsvorschrift
Zur Vereinfachung der Schreibweise lässt man Klammern, Komma und Pfeile weg; im Extremfall ersetzt man die Belegungen durch entsprechende Zahlen, im Beispiel ist dies das Oktalzahl-Äquivalent jO. Die Definition einer Schaltfunktion besteht daher allgemein aus 2n Zuordnungen Xj ofj, wenn Xj die Belegung mit dem Index j und fj der ihr zugeordnete Funktionswert ist. Eine Schaltfunktion lässt sich daher als Tabelle notieren; diese wird als Funktionstabelle bezeichnet (Tabelle 6.2). Wegen y { 0, 1 } lässt sich über Xj ofj die Menge aller Belegungen {0,1}n zerlegen in zwei Teilmengen N und E. N = { Xj ¨Xj o0 }
E = { Xj ¨Xj o1 }
die als Nullstellenmenge N und als Einsstellenmenge E bezeichnet werden mit N E = Ø Beispiel:
und
N E = {0, 1}n .
Für das Quersummenbeispiel ergibt sich N = { 0, 3, 5, 6 }
E = { 1, 2, 4, 7 } .
Bei vielen technischen Anwendungen tritt die Situation auf, dass nicht für jede Belegung der Wert für die Variable y zugeordnet werden muss oder kann. Es kann vielmehr offen bleiben, ob y = 0 oder y = 1 gesetzt wird. Man kennzeichnet solche Zuordnungen mit Xj o (dem sog. don´t care) und spricht von einer Redundanzoder Freistelle der Funktion. Das Zeichen (manchmal steht auch d oder *) stellt aber keinen dritten Wert für y dar, sondern zeigt nur an, dass an dieser Stelle fj wahlweise zu 0 oder 1 gesetzt werden kann! Dementsprechend kommt bei solchen Funktionen eine dritte Teilmenge für die Fälle Xj o hinzu, die als Redundanzoder Freistellenmenge R bezeichnet wird.
6.1 Schaltfunktionen
113
Es gilt:
N E = Ø und N R = Ø und E R Ø
sowie
N E R {0, 1}n
Beispiel:
Es ist eine Schaltfunktion zu definieren, welche y = 1 für alle durch 3 teilbaren BCD-Ziffern liefert.
Ziffer
jO
a3
a2
a1
a0
y
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 1 0 0 1 0 0 1
Pseudotetraden
_ _ _ _ _
Es ist : N={0,1,2,4,5,7,10} E={3,6,11} R={12,13,14,15,16,17}
Die Pseudotetraten entsprechen keiner BCDZiffer, daher kann keine entsprechende Aussage getroffen werden
Tabelle 6.3: Funktionsdefinition für das Beispiel In komplexen technischen Anwendungen überwiegen häufig die Freistellen gegenüber den 0- und 1-Stellen einer Funktion. Entsprechend definiert man zwei Hauptklassen von Schaltfunktionen: Eine Schaltfunktion heißt vollständig (definiert), wenn für alle Belegungen Xj ein Funktionswert fj { 0, 1 } fest zugeordnet wird. Eine Schaltfunktion heißt unvollständig (definiert), wenn es mindestens eine Belegung Xj gibt, der kein Funktionswert fj { 0, 1 } fest zugeordnet wird. Wegen ¨{0, 1}n ¨= 2n lässt sich bei unvollständigen Schaltfunktionen aus jeweils zwei Teilmengen die dritte bestimmen. Beispiel: Für das BCD-Beispiel genügt es, die Null- und Einsstellenmenge anzugeben. Die Freistellenmenge ergibt sich dann durch Differenzbildung aus der Menge aller Belegungen: R
=
{ 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17 } \ N \E
=
{ 3, 6, 11, 12, 13, 14, 15, 16, 17 } \E
=
{12, 13, 14, 15, 16, 17 }
114
6 Schaltalgebra
6.2 Grafische Darstellung von Schaltfunktionen Neben der tabellarischen Darstellung von Schaltfunktionen ist es manchmal wünschenswert, eine stärker grafisch orientierte Darstellung zu benutzen, da diese manche Zusammenhänge schneller oder unmittelbarer erkennen lässt. Neben dem n-dimensionalen Nachrichtenraum und den Ordnungsdiagrammen haben sich Tafelmethoden eingebürgert und bewährt. Nachdem bereits die Mathematiker in der Logik Tafeln verwendet haben (seit über 100 Jahren), haben Veitch [VEI52] und Karnaugh [KAR53] solche Tafeln zum ersten Mal in Verbindung mit Schaltfunktionen vorgeschlagen. Da sie aber auf Nachbarschaftsrelationen beruhen, sind sie methodisch auf n d 4 beschränkt. Bei Werten n > 4 muss man zu wenig übersichtlichen Behelfsmaßnahmen greifen, die das Arbeiten mit den Veitch- bzw. KarnaughTafeln erschweren. Lipp [LIP69] hat durch Einführen einer Symmetrierelation die Tafelmethode auf beliebiges n erweitert. Obwohl das Bildungsprinzip beliebig rechteckige Formen ermöglicht, werden aus Gründen der Kompaktheit möglichst quadratische Anordnungen angestrebt. In einer solchen Symmetriediagramm genannten Tafel wird jedem Funktionswert fj genau ein Feld zugewiesen, in das der Wert für fj eingetragen wird. Die Lage des Feldes wird durch "Koordinaten" bestimmt, die vom Wert der Variablen xi abhängen. Da jede Variable xi zum einen den Wert 0, zum anderen den Wert 1 annehmen kann, entstehen genau zwei Bereiche je Variable. Durch geeignete Überlagerung kommen so bei n Variablen genau 2n Felder zustande, d.h. jedes Feld ist genau einer Belegung zugeordnet. Damit kann eine Schaltfunktion dargestellt werden. Der Aufbau eines Diagramms mit 2n Feldern wird durch Spiegeln eines Diagramms mit 2n-1 Feldern an derjenigen Außenkante erzeugt, die als Symmetrielinie der Variablen n dient. Jedes zu dieser Linie symmetrisch gelegene Feld unterscheidet sich daher im Wert der Variablen xn (ungespiegelter Teil xn = 0, gespiegelter Teil xn = 1; die Wertezuordnung der Variablen xn-1, ..., x1 bleibt erhalten, siehe Bild 6.8). Beispiel: Durch 3 teilbare BCD-Zahl
y = f(a3, a2, a1, a0) a0
y 0
0
0
0 1
0
6
-
17
16
11
4
1 7
13
1 10
0
5
0
12
0
3
2
a1
1
15
a
a3
14
2
Bild 6.7: Symmetriediagramm für das BCD-Beispiel
n=0
Bild 6.8: Konstruktion von Symmetriediagrammen
n=2
n=1
n=4
n=3
x2
n=6
n=5
2-1
jneu= jalt + 2
0
V1 1
V2
3
1
H1
H1
x2
x2
4-1
jneu= jalt + 2
2
0
V1 x1
0
x1
x3 V3
14
x x6 2
x2
40
50
11
15
17
13
12 10
7
3
2
5
15
17
1
x1
11
13
0
10
12
14
16
6
4
x3
V3
14
16
34
77
35
37
36
31
33
23
27 26
31
33
23
21
x5 x1
35
37
27
21
25 24
x3
34
36
26
15
x2
6
11
4
7
10
16 x
3
17
2
13
6
12
24
7
4
3
5 25
0
1
5
1
0
H2
H2
jneu= jalt + 23-1
2
4
6
4
x5 x1
x3
7
5
x1
3
1
V2 x1
2
0
x1
jneu= jalt + 21-1
60
70
30
32
22
20
30
32
22
20
x4
x4
H3
H3
jneu= jalt + 26-1
jneu= jalt + 25-1
6.2 Graphische Darstellung von Schaltfunktionen 115
116
6 Schaltalgebra
Die Spezifikation von Schaltfunktionen durch eine Funktionstabelle stellt bei großen Werten von n keine besonders effiziente Darstellungstechnik dar, da die Spaltenzahl mit n, die Zeilenzahl jedoch mit 2n wächst. Für praxisrelevante Werte von n müssen daher kompaktere Formen gesucht werden. Neben der Möglichkeit, Zeilen geeignet zusammenzufassen (siehe Kap. 6.7), lassen sich Schaltfunktionen auch in Form spezieller Graphen mit d+ = 2 repräsentieren. An einem einfachen Beispiel soll dies verdeutlicht werden. Gegenstand der Betrachtung sei die Schaltfunktion y = f(c, b, a), für die immer y = 1 gelten soll, wenn im Argument mindestens zwei der drei Variablen Eins sind; in allen anderen Fällen sei y = 0. Neben der Spezifikation in Form einer Funktionstabelle lässt sich die Funktion auch als Binärbaum darstellen, dessen Blätter den Funktionswert repräsentieren, welcher derjenigen Belegung entspricht, die man als Kantenfolge bis zum betreffenden Blatt ablesen kann (siehe Bild 6.9). Analysiert man den Binärbaum genauer, so sieht man, dass einige Vereinfachungen möglich sind. Für j = 0 und 1 sowie j = 6 und 7 sind die Werte der Blätter paarweise gleich. Die Entscheidung durch die Variable a ist ohne Einfluss, und man kann daher je zwei Blätter zusammenfassen und die von den Knoten b ausgehenden Kanten direkt damit verbinden. Die Blätter mit j = 2 und 4 sowie j = 3 und 5 sind ebenfalls paarweise wertgleich und in gleicher Weise vom Wert der Variablen a abhängig, so dass eine Zusammenlegung möglich wird. fasst man schließlich alle Blätter gleichen Wertes zusammen, so erhält man einen speziellen Binärgraphen, der jetzt kein Baum mehr ist, und der die Funktion y kompakt wiedergibt. Solche Graphen nennt man BDD´s (Binary Decision Diagrams); man kann zeigen, dass hierfür kanonische Formen und effiziente Verfahrensschritte existieren, mit denen solche Graphen und damit die zugehörigen Schaltfunktionen bearbeitet werden können [BRY86].
jO
c
b
a
y
0 1 2 3 4 5 6 7
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 0 0 1 0 1 1 1
c
0
1
b 0
a
a 0
0
1
1
0
1
0
1
0
b 1
1
0
0
0
1
0
1
1
1
jO = 0
1
2
3
4
5
6
7
0
0
a
0 0
Bild 6.9: Beispiel zur Einführung von BDD’s
1
b
a
a 1
c
0
b
1 1
1
6.3 Typen von Schaltfunktionen
117
6.3 Typen von Schaltfunktionen Die Abbildung {0,1}n f {0,1} lässt eine große Zahl verschiedener Funktionen zu. Sie lässt sich mit einer oberen Grenze bestimmen zu MF = 2( 2
n)
da in jeder Stelle fj entweder 0 oder 1 eingetragen werden kann (dies gilt auch für unvollständige Schaltfunktionen) und 2n Belegungen möglich sind. n n n n
= = = =
0 1 2 3
MF MF MF MF
= = = =
2 4 16 256
...
...
Beispiel:
MF = 21024 | 10308
n = 10
Die Zahl möglicher Funktionen wächst also explosionsartig, und es macht keinen Sinn, für jede einzelne eine Bildungsvorschrift und einen Namen festzulegen. Wir wollen daher überprüfen, ob nicht eine grundsätzliche Konstruktionsvorschrift abgeleitet werden kann, die unabhängig vom Wert von n jede beliebige Funktion zu definieren erlaubt. Wünschenswert ist darüber hinaus ein Anschluss an die schaltalgebraische Notation, um die Axiome, die Regeln R1 - R12 und ggf. weitere Regeln auf Schaltfunktionen anwenden zu können. Zu diesem Zweck untersuchen wir Schaltfunktionen mit kleinen Werten von n: n = 0
MF = 2
Hier sind nur die beiden Konstanten 0 und 1 gegeben.
n = 1
MF = 4
y = f(x)
x
y0
y1
y2
y3
0 1
0 0
1 0
0 1
1 1
yk : der Index k bildet sich als (Oktal-)Zahl der 0/1- Einträge der darunterliegenden Spalte
Tabelle 6.4: Mögliche Funktionen bei n=1 Man erkennt: y0 und y3 hängen nicht von x ab; sie sind Konstante; y2
ist die Reproduktion von x;
y1
stellt eine Zuordnung 0 o1 bzw. 1 o0 dar, eine Funktion, die wir bei der Relaisbetrachtung als Negation bezeichnet haben. Man schreibt y = x für die Negation.
118
6 Schaltalgebra
x2 x1
y0
y1
y2
y3
y4
y5
y6
y7
y10
y11
y12
y13
y14
y15
y16
y17
0 0 1 1
0 0 0 0
1 0 0 0
0 1 0 0
1 1 0 0
0 0 1 0
1 0 1 0
0 1 1 0
1 1 1 0
0 0 0 1
1 0 0 1
0 1 0 1
1 1 0 1
0 0 1 1
1 0 1 1
0 1 1 1
1 1 1 1
(neg. Implikation)
____
neg. Implikation
____
Antivalenz
neg. Konjunktion
Konjunktion
Äquivalenz
____
Implikation
____
(Implikation)
Disjunktion
____
y = f(x2,x1)
neg. Disjunktion
MF = 16
____
n=2
0 1 0 1
Tabelle 6.5: Mögliche Funktionen bei n=2 Man erkennt, dass - zwei Funktionen Konstante sind (y0 und y17) - vier Funktionen nur von einer Variablen abhängen und zwar je zwei bejaht (y12 und y14) und je zwei negiert (y3 und y5). Darüberhinaus zeigt sich, dass folgendes gilt: y17-i = yi die Hälfte der Funktionen stellt also lediglich die Negation der anderen Hälfte dar. Eigene Symbole und Namen haben erhalten:
n > 2:
y10 :
&
Konjunktion, UND-Verknüpfung,
AND ,
y16 :
V
Disjunktion, ODER-Verknüpfung,
OR,
y7 :
&
negierte Konj., negierte UND-Verkn.,
NAND (NOT AND),
y1 :
V
negierte Disj., negierte ODER-Verkn., NOR
y6 :
{
Antivalenz,
y11 :
{
Äquivalenz,
y15 :
o Implikation, x1 impliziert x2, x1 o x2,
y13 :
o Implikation, x2 impliziert x1, x2 o x1. n)
MF = 2( 2
(NOT OR),
XOR,
y = f(xn, ... , x2, x1)
Man kann sich vorstellen, dass die Zahl eigenständiger Funktionen rasch wachsen wird, auch wenn man aus den gezeigten Beispielen für n = 1 und n = 2 erkennt, dass eine Funktionenvielfalt für n Variable die Funktionen für alle Werte kleiner n enthält und die Negation jede Vielfalt halbiert. Dennoch
6.3 Typen von Schaltfunktionen
119
wird man bei höheren Werten von n eigene Funktionsnamen nur für Sonderfälle zulassen können. Besonderes Interesse erwecken im Schema für n = 2 die Konjunktion y = x2 & x1 und Disjunktion y = x2 V x1 genannten Funktionen. Sie zeichnen sich durch zwei Merkmale aus: 1)
Die Null- und Einsmenge teilen sich extrem auf. Einer einzelnen Belegung einer Teilmenge stehen 2n-1 Belegungen der anderen Teilmenge gegenüber: Es wird also genau eine Belegung hervorgehoben. (1,1) o 1 (0,0) o 0
Konjunktion: Disjunktion: 2)
sonst sonst
o o
0 1
Sie entsprechen den zuvor eingeführten Operatoren der schaltalgebraischen Interpretation der Booleschen Algebra. Konjunktion
Disjunktion
x2
x1
y
Regel Nr.
x2
x1
y
Regel Nr.
0 0 1 1
0 1 0 1
0 0 0 1
R3b R4b R4b R2b
0 0 1 1
0 1 0 1
0 1 1 1
R2a R4a R4a R3a
Tabelle 6.6: Zurückführung der Operatoren auf die Regeln der Schaltalgebra Damit erlauben sie den Anschluss der Schaltfunktionen an das axiomatische Gebäude (gleiches gilt für die Negationsfunktion einer Variablen y = x ; Regeln R8a und R8b).
120
6 Schaltalgebra
6.4 Normalformen, Hauptsatz der Schaltalgebra Zur Verdeutlichung der Eigenschaften der Funktionen Konjunktion und Disjunktion soll die Darstellung im Symmetriediagramm gewählt werden (Bild 6.10). y = x2 & x1
n=2
y = x2 V x1
x1
y 0 x2 0
0 2
0 1
x1
y 0
1
x2 1
3
y = x3 & x2 & x1
n=3
0 x2 0
0 2
0 0
1 3
y 0 1
0
5
0
7
2
1 1
0
4
x2 1
6
0 2
1
1
1
3
1 1
x1 0 x2
0
0
1
02 0 3 0
12
0
10
0
13
0
11
0 0
5 7
1
17
0
15
5 7
1 1
4 6
x3
y = x4 & x3 & x2 & x1 y
3
x1
x3
n=4
1
y = x3 V x2 V x1
x1
y
0
0 0
x1
y 4 6
x2
0
16
0
y = x4 V x3 V x2 V x1
00 1
1
12 1
3
1 x4
14
12
1
10
1 1
5 7
1 1
1
1
1
1
1
1
13 11
17 15
4 6
16
x4
14
x3
x3
Bild 6.10: Symmetriediagramme von Konjunktion bzw. Disjunktion Auch grafisch wird dieser singuläre Funktionswert deutlich, der sich für beliebiges n konstruieren lässt. Bei den Funktionen Konjunktion und Disjunktion ist die ausgezeichnete Stelle aber fest an je eine typische Belegung gebunden (man beachte die Dualität): Konjunktion
(1, 1, 1, ..., 1)
für beliebiges n
Disjunktion
(0, 0, 0, ..., 0)
für beliebiges n.
6.4 Normalformen, Hauptsatz der Schaltalgebra
121
Trotzdem lässt sich auf dieser Grundlage ein Bauprinzip für Schaltfunktionen ableiten, das sich an den Begriff der Reihenentwicklung anlehnt. In der Mathematik wird gezeigt, dass sich eine (fast) beliebige Funktion mit Hilfe geeigneter Basisfunktionen bk(x) exakt oder näherungsweise darstellen lässt: N-1
y = f(x) = A0b0(x) + A1b1(x) + ... + AN-1 bN-1(x)= ¦Akbk(x) k=0
dabei sind Ak Koeffizienten, welche geeignet zu wählen sind, um f(x) (möglichst) exakt darstellen zu können. Im allgemeinen Fall entsteht bei der Beschränkung auf N Glieder ein Fehler; es gibt jedoch auch Funktionen, die mit endlichem N exakt darstellbar sind. Bei der Wahl der Basisfunktionen bk(x) sucht man bevorzugt solche, die orthogonal sind, d.h. es gilt bk(x) . bl(x) = 0 für alle k zl. Damit sind die Koeffizienten Ak für kd N-1 unabhängig von der Hinzunahme eines weiteren Gliedes AN . bN(x). In Zusammenhang mit Schaltfunktionen stellt sich dabei die Frage, ob es auch hier Basisfunktionen und geeignete Koeffizienten gibt, die jede beliebige Schaltfunktion nach dem gleichen Bauschema darstellen lassen. Allerdings sind die Randbedingungen zu beachten, insbesondere, dass wir es mit endlichen Belegungsmengen und binären Funktionswerten zu tun haben. Können nun die Konjunktions- bzw. die Disjunktionsfunktion den Charakter von Basisfunktionen annehmen, da sie ja für genau eine Belegung den abweichenden Funktionswert haben, der allerdings einer definierten Belegung zugeordnet ist? Gelänge es, durch Modifikation der Konjunktion bzw. Disjunktion die 1 bzw. 0 einer beliebigen Belegung zuzuordnen, so könnte für jede der 2n Belegungen eine eigene 1 bzw. 0 erzeugt werden. Dazu folgende beispielhafte Überlegung: Es sei n = 3 und die 1 der Konjunktion soll durch Spiegelung auf die Stelle j = 4 ^ Belegung (1, 0, 0) mit (x , x , x ). Die Konjunktion plaziert werden. Es gilt j = 4 = 3 2 1 y = x3 & x2 & x1 wird aber nur zu y = 1 für die Belegung (1,1,1). Die Belegung (1, 0, 0) muss daher geeignet abgebildet werden, so dass (1, 1, 1) entsteht: x1
y 0
0 0
x2 0
2
0
1
3
0 0
5
1
4
0 7
6
x3 Nun gilt 0 = 1 (Regel 1a); die Belegung (x3, x2, x1) = (1, 0, 0) wird also durch Negation von x2 und x1 zu (x3, x2, x1) = (1, 0, 0) = (1, 1, 1). Mit y = x3 & x2 & x1 hat man die Funktion mit der gewünschten Einsstelle. Damit wurde ein Weg aufge-
122
6 Schaltalgebra
zeigt, die ausgezeichnete 1 auf jedes beliebige Feld des Diagramms platzieren zu können. Es hat sich dafür folgende Schreibweise eingebürgert: y = x¨3 & x¨2 & x¨1 .. mit der Regel für xi , dass bei einer 1 in der gewünschten Belegung die bejahte Variable xi und bei einer 0 die negierte Variable xi einzusetzen ist. Der oben gefundene Zusammenhang kann auf n Variable verallgemeinert werden: y = x¨n & x¨n-1 & ... & x¨2 & x¨1
x=
x für 1 x für 0
x=
x für 1 x für 0
Für die Disjunktion folgt aus Gründen der Dualität y = x¨n V x¨n-1 V ... V x¨2 V x¨1
Wegen der zentralen Bedeutung haben diese speziellen Funktionen aus n Variablen eigene Namen erhalten: mj = x¨n & ... & x¨1
Minterm(funktion)
Mj = x¨n V ... V x¨1
Maxterm(funktion)
Es gilt allgemein: mj & mk = 0
Mj V Mk = 1
mj = M j
Mj = mj
mj & Mj = 0
mj V Mj = 1
j z k, 0 < j, k < 2n-1
Mit den Min- bzw. Maxtermfunktionen stehen also orthogonale Basisfunktionen zur Verfügung. Beispiel:
n=2
m0 = x2 & x1,
m1 = x2 & x1,
m2 = x2 & x1,
m3 = x2 & x1,
M0 = x2 V x1,
M1 = x2 V x1,
M2 = x2 V x1,
M3 = x2 V x1,
m1 & m2 = x2 & x1 & x2 & x1 = 0 , M1 V M2 = x2 V x1 V x2 V x1 = 1 , usw.
Da die Minterme für genau eine Belegung den Wert 1 aufweisen, kann man wegen 0 v 0 = 0 und 0 v1 = 1 eine Funktion bilden, die aus der Disjunktion aller Minterme besteht, und deren Funktionswert deshalb bei einer Belegung j ausschließlich durch mj bestimmt ist (Tabelle 6.7).
6.4 Normalformen, Hauptsatz der Schaltalgebra
Beispiel:
123
n=3
y = m0 V m1 V m2 V m3 V m4 V m5 V m6 V m7
x3 x2 x1
jO
1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1
0 1 2 3 4 5 6 7
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
Tabelle 6.7: Vorstufe zu einer regulären Funktionsdarstellung Die auf diese Weise erzeugte Funktion y ist nun aber trivial; sie weist für alle Belegungen den Wert 1 auf. Greift man den Gedanken der Reihenentwicklung auf, so könnte man die Basisfunktionen mit einem Koeffizienten Aj gewichten, d.h. im binären Fall, wegen Aj {0,1}, ihre Wirkung aus- oder einschalten. Wegen 0 & m = 0 (m ausgeschaltet) und 1 & m = m (m eingeschaltet) können die gewichteten Basisfunktionen Aj & mj lauten; die Funktion für n = 3 lautet dann: y = A0 A1 A2 A3 A4 A5 A6 A7
A0&m0 V A1&m1 V A2&m2 V A3&m3V A4&m4 V A5&m5 V A6&m6 V A7&m7
A0 0 0 0 0 0 0 0
0 A1 0 0 0 0 0 0
0 0 A2 0 0 0 0 0
0 0 0 A3 0 0 0 0
0 0 0 0 A4 0 0 0
0 0 0 0 0 A5 0 0
0 0 0 0 0 0 A6 0
0 0 0 0 0 0 0 A7
x3 x2 x1
jO
0 0 0 0 1 1 1 1
0 1 2 3 4 5 6 7
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
Tabelle 6.8: Einführung von Koeffizienten zur Funktionsdarstellung Beschreibt man mit fj den Funktionswert von y für die Belegung j ^ f (0,1,1)) dann erkennt man, dass mit obigem Schema jede beliebige (z.B. f3 = Funktion darstellbar ist, wenn man Aj = fj für alle j = 0, 1, 2, ..., 2n-1 setzt. Man darf also allgemein für eine Funktion schreiben y = (f2n-1 & m2n-1) V (f2n-2 & m2n-2) V ... V (f1 & m1) V (f0 & m0) oder kürzer 2n-1 y=
V j=0
(fj & mj)
124
6 Schaltalgebra
und nennt diesen Ausdruck disjunktive Normalform einer Schaltfunktion (DNF). Entsprechend gilt dual y = (f2n-1 V M2n-1) & (f2n-2 V M2n-2) & ... & (f1 V M1) & (f0 V M0) oder kürzer 2n-1
&
y=
(fj V Mj)
j=0
und man nennt diesen Ausdruck konjunktive Normalform einer Schaltfunktion (KNF). Anmerkung: Diese Formen heißen auch kanonische Formen, während Normalform bei manchen Autoren mit anderer Bedeutung verwendet wird. Beispiel:
y = f(x4, x3, x2, x1) = 1 wenn die Dualzahl durch 3 dividierbar ist: x1
y
00 0 1 0 04 5 0 x2
2
13 0 7 16
0
013 1 0 17
0
1
12 10
16
11
0
15
x3 DNF: y =
1
x4
14
( x4 & x3 & x2 & x1) V ( x4 & x3 & x2 & x1) V (x4 & x3 & x2 & x1) V (x4 & x3 & x2 & x1) V (x4 & x3 & x2 & x1)
KNF: y =
(x4 V x3 V x2 V x1) & (x4 V x3 V x2 V x1) & (x4 V x3 V x2 V x1) & (x4 V x3 V x2 V x1) & (x4 V x3 V x2 V x1) & (x4 V x3 V x2 V x1) & ( x4 V x3 V x2 V x1) & ( x4 V x3 V x2 V x1) & ( x4 V x3 V x2 V x1) & ( x4 V x3 V x2 V x1) & ( x4 V x3 V x2 V x1)
Bild 6.11: Beispiel für die Darstellung einer Schaltfunktion als DNF bzw. KNF Damit lässt sich der Hauptsatz der Schaltalgebra formulieren: Satz: Jede beliebige Schaltfunktion y = f(xn,...,x1) lässt sich als Disjunktion von Mintermen eindeutig darstellen. In der Disjunktion treten genau diejenigen Minterme auf, die zu den Einsstellen der Schaltfunktion gehören. Den Zusammenhang zwischen den eingeführten Begriffen zeigt das Schema in Bild 6.12.
Bild 6.12: Beziehungen zwischen den eingeführten Begriffen
2n-1
j=0
f = V ( fj & mj ) = V mj
DNF
Bsp.: xn & ... & x2 & x1
n .. mj = & xij i=1 .. .. .. = xnj & ... & x2j & x1j
Minterm
fj =1
mj = Mj
... 1 0
f: { (Xj, fj) | fj = f ( Xj ) }
Funktionstabelle
Bsp.: ( 0 , ... , 1 , 0 )
Xj = ( xnj, ... , x2j, x1j)
Belegung
Bsp.: 0
= xnj ... x2j x1j
i=1
j = ¦ xij x2i-1
n
Index
Mj = mj n
Maxterm
2n-1
j=0
f = & ( fj V M j ) = & Mj
KNF
Bsp.: xn V ... V x2 V x1
fj=0
xij, wenn xij =0
xij, wenn xij =1
.. Mj = V xij i=1 .. .. .. = xnj V ... V x2j V x1j
..
xij =
6.4 Normalformen, Hauptsatz der Schaltalgebra 125
126
6 Schaltalgebra
6.5 Basissysteme Die Normalformtheoreme und der Hauptsatz der Schaltalgebra zeigen, dass es möglich ist, nur mit den drei Grundverknüpfungen (Operatoren) Konjunktion, Disjunktion und Negation jede beliebige Schaltfunktion eindeutig darzustellen. Man bezeichnet aus diesem Grunde [&, V, ] als ein Basissystem der Schaltalgebra. Aus theoretischen wie auch praktischen Gründen beschäftigte man sich mit der Frage, ob es Basissysteme gibt, die mit nur zwei oder sogar mit nur einem Operator auskommen können. Dazu greift man auf die Axiome bzw. Regeln der Schaltalgebra zurück. Mit den De Morgan'schen Theoremen erhält man x2 V x1 = x2 & x1
bzw.
x2 & x1 = x2 V x1
Liest man die Theoreme z.B. von links nach rechts, so gibt das eine Anweisung, wie mit Hilfe der Negation der zweistellige Operator V durch den Operator & ersetzt werden kann. Da sich beide Theoreme jeweils auf n-stellige Verknüpfungen erweitern lassen, besteht so die grundsätzliche Möglichkeit, jeweils einen Operator zu eliminieren. [ &, ] sowie [ V, ] bilden daher weitere Basissysteme. Geht man von der DNF bzw. KNF direkt aus 2n 1 2n 1 y (f V v m ) (f & m ) y M j Mj j j j 0 j 0
&
V
und beachtet Regel R9 x = x , so darf man schreiben y
y
2n 1
V
j 0 y
y
f & m j j
y
2n 1 (f & m ) j j j 0 2n 1 (f V vm ) j j j 0
y
&
y
&
y
2n 1 ) ( f vV m j Mj j 0 2n 1 v m ) (f V j Mj j 0
&
V
2n 1 (f & m M) j j j 0
V
Berücksichtigt man, dass bei der DNF nur Minterme mit fj = 1
KNF nur Maxterme mit fj = 0
in der endgültigen Funktionsdarstellung zur Bildung der Funktion beitragen, so ist für diese Belegungen j fj = 1
fj = 0 fj V mj = mj
und
fj & Mj = Mj
6.6 Entwicklungssatz der Schaltalgebra
127
Man darf daher verkürzt schreiben y=
& mj
fj =1
y=
V Mj
fj =0
Da ein Minterm eine n-stellige Konjunktion bzw. ein Maxterm eine n-stellige Disjunktion darstellt, so heißt das nichts anderes, als dass die negierte Konjunktion bzw. die negierte Disjunktion alleine zur Darstellung jeder beliebigen Funktion ausreicht. [ & ] und [ V ] bilden ebenfalls Basissysteme. Nachzutragen ist noch der Nachweis, dass auch die Negation (einzelner Variablen) mit NAND bzw. NOR bewerkstelligt werden kann: x = x&1 x=x&0
( Regel 5b )
x = xV0
( Regel 5a )
x=xV0
Unter Verwendung der Konstanten 1 bzw. 0 lässt sich die Negation darstellen. Es sind weitere Basissysteme möglich. Relativ wichtig ist > &, {, 1 @, die sogenannte Ringsummendarstellung oder in komplementfreier Notation die Reed-Muller-Form einer Schaltfunktion. Eine Übersicht über die genannten Basissysteme gibt Tabelle 6.9 auf der folgenden Seite.
6.6 Entwicklungssatz der Schaltalgebra Die Normalformtheoreme erlauben es, jede beliebige Schaltfunktion eindeutig darzustellen, wobei ein einheitliches Bauschema zur Verfügung steht, das von der Zahl der Variablen und einer speziellen Funktion y = f(X) unabhängig ist. Bei der DNF spielen dabei die Einsstellen einer Funktion die zentrale Rolle. Häufig findet man aber beliebige schaltalgebraische Ausdrücke vor, die nicht einer der Normalformen entsprechen. Zur Beurteilung, zur Realisierung eines Ausdrucks oder zur Konstruktion der Eins- bzw. Nullstellenmenge einer Funktion kann es jedoch sinnvoll oder notwendig sein, den vorgefundenen Ausdruck so auszuwerten, dass schließlich eine der beiden Normalformdarstellungen vorliegt. Den Ausdruck für jede mögliche Belegung auszuwerten und daraus die gewünschte Wertemenge zu bestimmen, ist zwar ein Weg zur Lösung dieser Aufgabenstellung, jedoch aufwendig und wenig elegant. Eine geeignete Umformung des Ausdrucks ohne Umweg über einzelne Funktionswerte ist eher anzustreben. Hier leistet ein generelles Schema, der sogenannte Entwicklungssatz in seinen beiden, zueinander dualen Formen die systematische Vorgehensweise.
a=aVa=aVa oder a=0Va=0Va
y= a V b =a&b
yaVb
NOR
aVb=a&b =a&b = (a & a ) & ( b & b)
a&b=a&b =a&b (a & b) & (a & b) a=a&a=a&a oder a=1&a=a&a
y=a&b =aVb
y=a&b
a&b=aVb aVb=aVb =aVb =aVb = (a V a) V ( b V b) = (a V b) V (a V b)
aVb = a { b { (a & b)
--aVb
a&b=a&b =aVb a&b ---
aVb=aVb =a&b
----aVb
aVb
--a&b
--a&b ---
a&b
a=a&1Va&1 =a{1
a ---
a ---
a -----
a
Darstellung von
y= a & b y=a&bVa&b
1
2
NAND
---
y=a y=aVb
NICHT ODER
2
1
---
y=a y=a&b
NICHT UND
3
UND y=a&b ANTIVALENZ y=a{b (Konstante 1)
---
y=a y=a&b y=aVb
NICHT UND ODER
2
Darstellung mit UND, ODER, NICHT
Zeichen
Namen
Zahl der Operatoren
128 6 Schaltalgebra
Tabelle 6.9: Zusammenstellung der wichtigsten Basissysteme
6.6 Entwicklungssatz der Schaltalgebra
129
Er lautet f(xn, ..., xi, ..., x1) = [ xi & f(xn, ..., 1, ..., x1) ] V [ xi & f(xn, ..., 0, ..., x1) ] = [ xi & f x =1 ] i
V [ xi & f x =0 ] i
bzw. f(xn, ..., xi, ..., x1) = [ xi V f(xn, ..., 0, ..., x1) ] & [ xi V f(xn, ..., 1, ..., x1) ] = [ xi V f
xi=0
]
V [ xi V f
xi=1
]
Die Gültigkeit des Satzes kann auf einfache Weise gezeigt werden. Z.B. folgt für xi = 1 aus der obigen Beziehung f(xn, ..., xi=1, ..., x1) = [ 1 & f =[1&f =f
xi=1 xi=1
] V [1&f
] V [0&f
xi=0 xi=0
] ]
V 0
xi=1
=f
xi=1
Entsprechend gilt für xi = 0 f(xn, ..., xi=0, ..., x1) = [ 0 & f =[0&f =0
xi=1 xi=1
] V [0&f
] V [1&f V f
xi=0
xi=0 xi=0
] ] =f
xi=0
Somit lässt sich aus beiden Teilaussagen die vollständige Abhängigkeit des Ausdrucks von der Variablen xi konstruieren. Die Ausdrücke f
bzw. f bezeichnet man als Restfunktionen, da sie xi=1 xi=0 nicht mehr von allen n Variablen abhängen, sondern nur noch von X = (xn, ..., xi+1, xi-1, ..., x1). Der nach einer Variablen xi entwickelte Ausdruck lässt sich entsprechend nach weiteren Variablen sukzessive entwickeln; im Extremfall nach allen. Dann ist keine der Restfunktionen mehr von einer Variablen abhängig, sondern sie sind konstant entweder 0 oder 1. Wie man leicht zeigen kann, entspricht dieser Wert genau dem Funktionswert fj für diejenige Belegung j der Variablen, die beim sukzessiven Einsetzen gebildet werden. Am Beispiel eines von zwei Variablen abhängigen Ausdruck soll dies gezeigt werden. Gegeben sei y = f(x2, x1); gesucht werde die DNF der zugehörigen Funktion.
130
6 Schaltalgebra
y = f(x2, x1) = x1 & f(x2, 1) V x1 & f(x2, 0)
Entwicklung nach x1
y = f(x2, x1) = x2 & [ x1 & f(1,1) V x1 & f(1,0) ] V x2 & [ x1 & f(0,1) V x1 & f(0,0) ]
Entwicklung nach x2
Mit Hilfe des distributiven und assoziativen Gesetzes erhält man y = f(x2, x1) = x2 & x1 & f(1,1) V x2 & x1 & f(1,0) V x1 & x1 & f(0,1) V x2 & x1 & f(0,0) = m3 & f3 V m2 & f2 V m1 & f1 V m0 & f0 3
=
(mj & fj) V j=0
= DNF
Damit die Terme geordnet, nach fallendem Index j entstehen, beginnt man mit der am niedrigsten indizierten Variablen und entwickelt dann sukzessive nach der Variablen mit dem nächst höheren Index. Will man andererseits eine rasche Vereinfachung der Restfunktionen erreichen, sollte man jeweils nach der Variablen entwickeln, die am häufigsten auftritt. Beispiel: Äquivalenzfunktion y = x2 { x1 = x1 & (x2 {1)
V x1 & (x2 { 0)
= x2 & [ x1 & (1 {1) V x1 & (1 { 0) ]
V
x2 & [ x1 & (0 {1) V x1 & (0 { 0) ] = x2 & x1 & (1 { 1) x2 & x1 & (0 { 1)
V x2 & x1 & (1 { 0) V V x2 & x1 & (0 { 0)
= x2 & x1 & 1
V x2 & x1 & 0
x2 & x1 & 0
V x2 & x1 & 1
V
y = x2 { x1 = m3 & f3 V m2 & f2 V m1 & f1 V m0 & f0 mit f3 = f0 = 1 und f2 = f1 = 0 E = { (1,1), (0,0) }
N = { (0,1), (1,0) }
Damit lässt sich sofort eine der Normalformen angeben, z.B. die DNF :
y = x2 & x1 V x2 & x1
6.7 Belegungsblöcke und Terme, Primblöcke und -terme
131
6.7 Belegungsblöcke und Terme Primblöcke und Primterme Die bisherigen Betrachtungen gingen weitgehend davon aus, dass eine Schaltfunktion durch Min- bzw. Maxterme dargestellt wird, und damit jeder Term genau einer ausgezeichneten Belegung entspricht. Bei sehr komplexen Funktionen wird eine solche Darstellung allerdings recht aufwendig. Es ist daher von Interesse, "kompaktere" Notationen für logische Ausdrücke zu finden. Dazu benötigt man weitere Begriffe und Verfahrensschritte. Gegeben sei y = f(X) mit X = (x n, ..., xi, ..., x1). Eine Mintermfunktion besteht für diesen Fall aus einer Konjunktion mit allen n Variablen, und es existiert genau eine Belegung Xj, für die fj = 1 ist; z.B.
n=4
m6 = x4 & x3 & x2 & x1
Xj = (0,1,1,0)
Existieren in einem Ausdruck zwei Minterme, welche sich in genau einer Variablen xi unterscheiden (... & xi & ... bzw. ... & xi & ...), so unterscheiden sich die zugehörigen Belegungen im Wert dieser Variablen (..., 1, ... bzw. ..., 0, ...). z.B.
A = x4 & x3 & x2 & x1 V x4 & x3 & x2 & x1
Wendet man das distributive Gesetz auf diese beiden Minterme an, so erhält man A = x4 & x3 & x2 & ( x1 V x1) A = x4 & x3 & x2 & 1 A = x4 & x3 & x2 Es entsteht also der neue, um x1 verkürzte Ausdruck x4 & x3 & x2, der zwei Minterme ersetzt und daher für zwei Belegungen (j = 6 und j = 7) stehen muss. Es ist x4 & x3 & x2
E=
(0, 1, 1, 0) (0, 1, 1, 1)
Konjunktionen (und entsprechend dual Disjunktionen) mit 0 < k dn Variablen wollen wir allgemein als Terme bezeichnen, mit den Variablen (k=1) und den Mintermen (k=n) als Sonderfall. Analysiert man den Vorgang des Ausklammerns genauer, so zeigt sich, dass die Variablen mit identischen Werten der Belegung im neuen Term in gleicher Weise vorkommen, während Variablen mit unterschiedlichen Werten im neuen Term wegfallen. Zur Verdeutlichung über den Wegfall einer Variablen führt man folgende Schreibweise ein: E = { (0, 1, 1, -) } Man nennt die Komponenten mit vorgeschriebenen Werten gebunden, die übrigen
132
6 Schaltalgebra
frei. Es gilt E = { 0 } x { 1 } x { 1 } x { 0,1 } { 0,1 }4 Es ist ohne weiteres einzusehen, dass das gezeigte Vorgehen nur auf solche Minterme anwendbar ist, die sich in genau einer Variablen unterscheiden. Gegenbeispiel: Bei A = x4 & x3 & x2 & x1 V x4 & x3 & x2 & x1 lässt sich kein kürzerer Term angeben. Das Zusammenfassen ist nicht allein auf Minterme beschränkt, sondern lässt sich allgemein auf Terme anwenden; notwendige Voraussetzung ist dabei der Unterschied in genau einer Variablen bei sonst gleicher Untermenge von Variablen. Beispiel: Gegeben sei der Ausdruck A = x4 & x3 & x2 & x1 V x4 & x3 & x2 & x1 V x4 & x3 & x2 & x1 V x4 & x3 & x2 x1 Der erste Schritt liefert zwei um dieselbe Variable x2 verkürzte Terme A = x4 & x3 & x1 V x4 & x3 & x1 und im nächsten Schritt entfällt die Variable x3: A = x4 & x1. Der neue Term steht daher für 2 x 2 = 4 Belegungen. E=
(0, 0, 0, 0) (0, 0, 1, 0) (0, 1, 0, 0) (0, 1, 1, 0)
(0, 0, -, 0) (0, 1, -, 0) 1. Schritt
{ (0, -, -, 0)} 2. Schritt
und es ist E = { 0 } x { 0,1 } x { 0,1 } x { 0 } { 0,1 }4 Diese Betrachtungen lassen sich verallgemeinern auf beliebig viele von n Variablen. Man bezeichnet die auf diese Weise gebildeten Belegungsmengen als Belegungsblock oder kurz Block und definiert: Ein Block B ist die Menge aller Belegungen X {0, 1}n, die in den Werten der gebundenen Komponenten (Variablen) übereinstimmen. Enthält ein Block r freie Komponenten, so besteht der Block aus genau 2r Belegungen. Sonderfälle: r = 0 ¨B ¨= 1 r = n ¨B ¨=
2n
¨B ¨= 0
Minterm sog. universeller Block (-, -, ..., -, -) sog. leerer Block
6.7 Belegungsblöcke und Terme, Primblöcke und -terme
133
Zu jedem Block lässt sich ein charakteristischer Term konstruieren, nämlich eine Konjunktion w bzw. dual dazu eine Disjunktion W, so dass gilt w(Xj) = 1
für alle Xj B
}
W(Xj) = 0
{
Einsblock Nullblock
bzw. W = w .
Es gilt:
w = W
Beispiel:
n=5
X = (x5, x4, x3, x2, x1)
Gegeben sei
B = (-, 1, 0, -, -)
B sei Einsblock
Konj.
Disj.
¨B¨ = 23 = 8 B sei Nullblock
w = x4 & x3
W = x4 V x3
¨E ¨ = 8
¨N ¨ = 8
Für die Sonderfälle gilt: r=0
w = Minterm
W = Maxterm
r=n
id w=1
id W=0
B=Ø
id w=0
id W=1
Bilden von Blöcken im Symmetriediagramm Es sind drei Fälle zu unterscheiden: 1) Man kennt den charakteristischen Term w bzw. W des Blocks. Dann lässt sich sofort die Belegungsmenge konstruieren, die dem Term entspricht: Z.B.
n=4
Gegeben seien
Einsblock mit w = x4 & x2
Nullblock mit W = x3 V x1
oB = (1, -, 0, -) = E
oB = (-, 0, -, 1) = N
Die Belegungen Xj mit fj = 1 liegen
Die Belegungen Xj mit fj = 0 liegen
im Bereich x4 = 1 und x2 = 0
im Bereich x3 = 0 und x1 = 1
134
6 Schaltalgebra
x1
x1 0 0
x2
x2 0 1
1
1
1
x4
x3
x4
0 x3
x2 = 0
x3 = 0
x4 = 1
x1 = 1
Bild 6.13: Bilden eines Eins- bzw. Nullblocks im Symmetriediagramm Man kennzeichnet den Block durch Rahmung. 2) Der Block ist durch Eintragungen der 1- bzw. 0-Stellen im Symmetriediagramm gegeben. Man sucht dann je 2 Felder des Diagramms mit gleichem Funktionswert, die symmetrisch zu der dazwischenliegenden Symmetrielinie höchster Ordnung liegen und fasst diese Felder zu einem vorläufigen Block zusammen. Es entfällt diejenige Variable, welche die Symmetrielinie erzeugt hat. Man sucht dann nach 2 Feldern, welche ebenfalls einen vorläufigen Block bilden und blockweise symmetrisch zur Linie höchster Ordnung liegen usw.; lässt sich kein weiterer Block mit dieser Eigenschaft finden, bricht die Blockbildung ab. Z.B. für n = 3 (Bild 6.14). Kann ein vorläufiger Block nicht mehr durch einen weiteren, symmetrisch gelegenen gleichgroßen Block vergrößert werden, so erhält man den maximal großen Block, den sogenannten Primblock; entsprechend benennt man die zugehörigen Terme Primterme. Man unterscheidet dabei Primeinsblock und Primnullblock. Der zum Primeinsblock gehörige charakteristische (Prim-)Term w wird Primimplikant, der zum Primnullblock gehörige (Prim-)Term W wird Primimplikat genannt.
6.7 Belegungsblöcke und Terme, Primblöcke und -terme
135
x1
x1
1
0
0
1
1
0
0
1
x2 1
0
0
1
x2 1
0
0
1
x3
x3
x1
x1
1
0
0
1
1
0
0
1
x2 1
0
0
1
x2 1
0
0
1
x3
x3
vorläufige Blöcke; es entfällt jeweils x2
vorläufige Blöcke; es entfällt jeweils x3
x1
x1
1
0
0
1
1
0
0
1
x2 1
0
0
1
x2 1
0
0
1
x3
x3
endgültiger Block; es entfällt x3
endgültiger Block; es entfällt x2
Bild 6.14: Bilden eines maximal großen Eins- bzw. Nullblocks Damit ergibt sich w = x1
Damit ergibt sich W = x1
B = (-, -, 0)
B = (-, -, 1)
|B| = 4
|B| = 4.
3) Als dritte Möglichkeit zur Blockbildung kann man bei gegebenen 1- und 0-Stellen im Symmetriediagramm auch versuchen, die maximal großen Blöcke unter Beachtung der Symmetriebeziehungen zu erkennen. Das folgende Bild zeigt verschiedene Möglichkeiten der Blockbildung für den Fall n = 6.
136
6 Schaltalgebra
w = x1 & x5 & x6 W = x1 V x5 V x6 x5 x1
x1
x2
x4
x6 x2
x3 w = x1 & x2 & x3 & x5 W = x1 V x2 V x3 V x5
w = x1 & x3 & x6 W = x 1 V x 3 V x6
w = x1 & x2 W = x1 V x 2
Bild 6.15: Bilden maximal großer Blöcke
Darstellung von Schaltfunktionen durch Blocküberdeckungen Fasst man einen Minterm als kleinsten, vom leeren Block verschiedenen Block auf, so sagen die Normalformtheoreme aus, dass die Disjunktion aller solcher Einsblöcke eine Funktion eindeutig darstellt. Es stellt sich dann aber die Frage, ob eine Funktion auch durch größere Blöcke darstellbar ist. An einem Beispiel soll diese Fragestellung verdeutlicht werden.
x1 1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
x2
x3 Bild 6.16: Bilden eines überdeckenden Blocks
x4
6.7 Belegungsblöcke und Terme, Primblöcke und -terme
137
Es sei mit n = 4: y = m14 V m10 V m4 V m0. Alle vier Einsstellen lassen sich zu einem maximal großen Block zusammenfassen mit w = x2 & x1 ( Primimplikant ). Dieser liefert dann genau dieselben Einsstellen wie der Normalformausdruck, daher darf yDNF = w = x2 & x1 gesetzt werden. Lassen sich nicht alle Einsstellen einer Funktion mit einem (Prim-)Block erfassen, so müssen weitere Blöcke berücksichtigt werden, bis alle Felder j mit fj = 1 erfasst worden sind. x1 1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
x2 x4
x3
Bild 6.17: Überdeckung durch mehrere Blöcke Es sei z.B. mit n = 4
y = m17 V m14 V m13 V m10 V m7 V m4 V m3 V m0.
Die hinzugekommenen Einsstellen erlauben es nicht, den bereits gefundenen Einsblock zu vergrößern, da keine passende Symmetriebeziehung vorhanden ist. Man wird daher als ersten Schritt den Primeinsblock in die Lösung aufnehmen: y = x2 & x1 V m17 V m13 V m7 V m3. Die dann verbleibenden Einsen können einen neuen Primblock bilden mit w = x2 & x1; es gilt die gleiche Überlegung wie beim ersten Primeinsblock, und somit wird y = x2 & x1 V x2 & x1. Bei diesem Beispiel sind die beiden Blöcke disjunkt, da sie keine gemeinsame Einsstelle besitzen. Dies muss aber nicht prinzipiell so sein, wie ein weiteres Beispiel in Bild 6.18 zeigt. x1 0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
x2
x3
Bild 6.18: Teilweise Mehrfachüberdeckung
x4
138
6 Schaltalgebra
Es sei n = 4 und y = m17 V m13 V m7 V m6 V m5 V m4 V m3 . Hier lassen sich zwei Primeinsblöcke konstruieren mit w1 = x4 & x3 und w2 = x2 & x1. Jetzt wird m7 zweimal erfasst (überdeckt); ist das zulässig? Für m=7 werden w1 =1 und w2 =1. Wegen R3a 1V1=1 liefert aber die disjunktive Verknüpfung der beiden Primimplikanten kein falsches Ergebnis: y = w1 V w2 = x4 & x3 V x2 & x1 stellt einen gültigen Ausdruck dar! Diese Verhältnisse lassen sich verallgemeinern und liefern eine neue Methode zur Darstellung von Schaltfunktionen. Es gilt: Jede vollständige Blocküberdeckung ist eine gültige Darstellung einer Funktion. Vollständig bezieht sich auf die Notwendigkeit, jede Einsstelle durch mindestens einen Einsblock überdecken zu müssen. Die überdeckenden Blöcke können auch prim sein. Der Blockbegriff erlaubt es, Funktionen mit Hilfe von Belegungsmengen kompakter als durch Einzelbelegungen zu spezifizieren.
Blockbildung bei unvollständig definierten Schaltfunktionen Die bisherigen Betrachtungen bezogen sich auf vollständige Schaltfunktionen, welche nur die Eins- und die Nullstellenmenge umfassen. Wegen der großen praktischen Bedeutung müssen jedoch unvollständige Schaltfunktionen berücksichtigt werden. Bei diesen kommt die Belegungsmenge R hinzu, für deren Belegungen wahlweise entweder der Funktionswert fj = 0 oder fj = 1 stehen kann. Sucht man möglichst große Blöcke, insbesondere Primblöcke, zu bilden, so liegt es nahe, die Freistellen der Funktion so mit Werten 0 bzw. 1 fest zu belegen, dass die Blockbildung entsprechend begünstigt wird. Das soll für ein Beispiel mit n=3 gezeigt werden.
x1 0
1
x2 0
1
x1 -
0
=1
-
-
=1
=0
x3
x2
0
1
0
1
-
0
-
-=0
=1 =1
x3
Bild 6.19: Nutzung von Freistellen zur Bildung maximal großer Blöcke Es ergibt sich ohne Nutzung der Freistellen: w = x3 & x 1 W1 = x3 V x1
W2 = x2 V x1
6.8 Minimierung
139
und mit Nutzung der Freistellen: w = x1
W = x1
Das Beispiel zeigt, dass bei geeigneter Verfügung der Freistellen die Blöcke größer werden, und ihre Anzahl auch abnehmen kann. Allgemein wird man daher zur Bildung einer günstigen Blocküberdeckung folgendermaßen vorgehen: Bildung von Primeinsblöcken
Primnullblöcken Ausgangsmenge mit
fj = 1
fj = 0
E R N R Belegungen aus R, welche nicht zur Blockbildung beitragen, werden jeweils N E zugewiesen. Blöcke, welche nur aus Belegungen Xj R bestehen, sind nicht von Interesse, da sie zusätzlich entstehen; sie werden daher in die Blocküberdeckung nicht aufgenommen. Für die Verfügung der Freistellen sind zwei Extremfälle denkbar. Verfügt man alle Freistellen zu Null, so nennt man die resultierende Funktion fN die Nullvervollständigung von f. Entsprechend kann man alle Freistellen zu Eins verfügen, wodurch die sogenannte Einsvervollständigung fE von f entsteht.
6.8 Minimierung Bei der Bildung von Blöcken wurde ersichtlich, dass der schaltalgebraische Beschreibungsaufwand geringer wird, je mehr Variablen entfallen; dabei sind die Primblöcke maximal groß, und die zugehörigen Primterme enthalten die geringste Variablenzahl. Berücksichtigt man, dass bei einer schaltungstechnischen Realisierung die Variablenzahl eines Terms entsprechende Aufwendungen für Schaltelemente (z.B. Relais und Relaiskontakte) nötig macht, so legen wirtschaftlich/ technische Gründe es nahe, Funktionen möglichst auf der Basis von Primblöcken darzustellen. Da i.a. ein Primblock allein zur Überdeckung aller Eins-Stellen einer Funktion nicht ausreicht, müssen dazu mehrere Primblöcke herangezogen werden. Auch hier wird man aus Aufwandsgründen nur gerade soviele Primblöcke verwenden, dass die Eins-Stellen zwar vollständig, aber nicht überflüssig oft überdeckt werden. Diese Zielsetzung führt auf das sogenannte Minimierungsproblem bei schaltalgebraischen Ausdrücken, einer Optimierungsaufgabe. Optimierungen bedürfen stets eines Kriteriums, anhand dessen man eine Lösung beurteilen kann. Wegen der Allgemeingültigkeit des Hauptsatzes soll das entsprechende Kriterium für schaltalgebraische Ausdrücke an der dadurch gegebenen
140
6 Schaltalgebra
Situation orientiert werden. Wegen 2n-1
y=
V
bzw.
V
mj
bzw.
j=0
y=
2n-1
(fj & mj) fj=1
y=
&
j=0
y=
(fj V Mj)
& Mj
fj=0
besteht jeder Ausdruck bei der DNF aus einer Disjunktion von Mintermen bzw. bei der KNF aus einer Konjunktion von Maxtermen. Im vorangegangenen Abschnitt wurde außerdem gezeigt, dass durch die Primblockbildung und -überdeckung das Bauprinzip des Ausdrucks erhalten bleibt, aber die Anzahl der Terme und deren Variablenzahl reduziert werden. Als Bewertungskriterium können wir daher die sogenannte Länge eines solchen Ausdrucks einführen: Unter der Länge versteht man die Summe der Variablen (Literale) aller Terme ergänzt um die Zahl der Terme selbst. Z.B.
y = (x4 & x3 & x2 & x1) V (x4 & x3 & x2) V (x5 & x3) L(y) = 4 + 3 + 2 + 3 = 12
Das Minimierungsproblem lässt sich daher folgendermaßen formulieren: ! L(y) = Minimum
Minimierungsverfahren Das definierte Optimierungsziel führt bei den klassischen Verfahren zu den Teilschritten: - Spezifikation der Funktion durch Terme bzw. Blöcke (falls nicht schon vorhanden); - Bestimmen aller Primblöcke für die gegebene Funktion; - Auswahl der kleinsten Anzahl solcher Primblöcke, die zur vollständigen Überdeckung nötig sind; - Bildung eines kürzesten Ausdrucks, der sog. Minimalform (DMF, KMF). Die Verfahren lassen sich in zwei Hauptklassen einteilen: - Geometrisch/graphische Verfahren - Algebraische Verfahren. Von jedem Verfahrenstyp soll ein Beispiel vorgestellt werden. Minimierung mit Hilfe des Symmetriediagramms Man trägt zuerst alle Eins- und Nullstellen in das Diagramm ein. Danach bildet man sukzessive Blöcke mit 2, dann 4, dann 8 Belegungen usw. (sofern dies möglich ist) und verfolgt dabei alle möglichen Kombinationen. Bricht die Blockbildung ab, so
6.8 Minimierung
141
sind alle Primblöcke gefunden worden. Man markiert nun alle Primblöcke, welche allein eine zugehörige Funktionsstelle überdecken (sog. Kerne) und überprüft, ob diese Primblöcke bereits alle Stellen überdecken. Ist dies der Fall, stellt die Auswahl dieser Primblöcke bereits die Minimallösung dar. Sind jedoch noch nicht alle Stellen überdeckt, so müssen weitere Primblöcke ausgewählt und u.U. alternative Lösungen verfolgt werden (siehe auch Überdeckungsproblem im folgenden Kapitel). Beispiel: Gegeben sei y = f(x4, x3, x2, x1) durch Angabe der Eins- und Nullstellen im Symmetriediagramm. Gesucht wird eine disjunktive Minimalform. Als Primimplikanten x1 0
1
1
0
0
0
1
1
0
0
1
-
-
1
0
0
x2 x4
x3
Bild 6.20: Beispiel für eine Minimalüberdeckung ergeben sich:
w1 = x3x2 w2 = x4 x2x1 w3 = x4x3x1 w4 = x3 x2x 1 w5 = x4 x3 x2
Mögliche Lösung (fett eingezeichnet): y = w1 V w2 V w4 Das in der Literatur häufig zitierte Verfahren nach Quine-McCluskey [MCL65] stellt ein Vorgehen dar, das eine belegungs- und blockorientierte Version dieser graphischen Methode ist, aber nur eine untergeordnete Bedeutung besitzt, sofern nicht effizienzsteigernde Maßnahmen ergriffen werden.
Minimierung mit Hilfe des Verfahrens nach Nelson Nelson hat ein Verfahren vorgeschlagen, das bei entsprechender datentechnischer Aufbereitung zu den effektivsten Methoden gehört, um die Menge aller Primimplikanten zu erzeugen [NEL55]. Da es sich um ein algebraisches Verfahren handelt, müssen die Freistellen einer unvollständig definierten Schaltfunktion f zuvor entweder zu Eins oder zu Null verfügt werden. Damit die Primblöcke auch Freistellen überdecken können, werden für die Suche nach Primimplikanten (Eins-Blöcke) alle Freistellen zu 1 verfügt. . Die Funktion, bei der alle Freistellen zu 1 verfügt wurden, haben wir bereits als Einsvervollständigung fE kennengelernt. fE ist die Funktion, die ausschließlich für Xj N den Funktionswert 0 hat. Damit bleibt für Xj E und für Xj R nur der Funktionswert 1 übrig. Die aus der Nullstellenmenge gebildete KNF erfüllt daher genau die Bedingung, da sie nur für die enthaltenen Maxterme zu Null wird, in allen anderen Fällen aber zu Eins: FE =
..
..
..
& ( xn V xn-1 V ... V x1 )
j : XjN
An fE ändert sich nichts, wenn mehrere Maxterme zu Blöcken zusammengefasst werden. fE kann also aus einer beliebigen, aber vollständigen Nullblock-Überdeckung gebildet werden. . Das weitere Vorgehen soll zunächst an einem Beispiel gezeigt werden. Gegeben sei die unvollständige Schaltfunktion y= f(x3, x2, x1) gemäß Symmetriediagramm,
x1 1
0
0
1
x2 -
0
1
x3
Bild 6.21: Nullblocküberdeckung der Beispielfunktion mit dessen Hilfe fE = W1 & W2 = (x2 V x1) & (x3 V x1) folgt. Nullblocküberdeckungen lassen sich umformen unter Anwendung der Regeln x x x x
& & & &
(x V y) x x 1
= = = =
x x 0 x
x x x x
V V V V
(x & y) x x 0
= = = =
x x 1 x
(R11) (R7) (R8) (R5)
Man erhält bei Anwendung dieser Regeln für fE = x3 & x2 V x1. Im Symmetriediagramm entspricht das den beiden Einsblöcken mit w1 = x1 und w2 = x3 & x2. Man kann zeigen, dass die Anwendung des Absorptionsgesetzes maximal große Blöcke generiert, d.h. die entstehenden Blöcke sind prim. Am obigen Beispiel lässt sich dies verdeutlichen (Bilder 6.22 und 6.23). Unter anderem existiert ein weiterer Einsblock w3 = x3 & x1. Dieser wird aber von w1 absorbiert.
6.8 Minimierung
143
x1
x2
1
0
0
1
-
0
1
x3
Bild 6.22: Primblöcke der Beispielfunktion
x1
x2
1
0
0
1
-
0
1
x3
Bild 6.23: Zur Absorption von Blöcken Das Entfernen solcher Blöcke aus der Überdeckung bringt also keinen Nachteil, da die zugehörigen Eins- und Freistellen nach wie vor überdeckt werden. Das Ausdistribuieren und die Anwendung der genannten Regeln liefert daher allein Primeinsblöcke. Nelson hat darüberhinaus die für die Minimierung entscheidende, jedoch weniger offensichtliche Eigenschaft gezeigt, dass diese Vorgehensweise alle Primeinsblöcke erzeugt. Das Nelson-Verfahren zur Bildung der Terme maximaler Größe bzw. der Primterme gliedert sich daher in folgende Schritte: 1. Schritt:
Bildung einer Nullblocküberdeckung für die gegebene (unvollständige) Schaltfunktion W0 = {B01, B02, ... B0r}
2. Schritt:
Aufstellen eines schaltalgebraischen Ausdrucks für die Einsvervollständigung fE: fE = W01 & W02 & ... & W0r
3. Schritt:
Schrittweises Ausdistribuieren des im 2. Schritt gefundenen Ausdrucks, Umformen und Streichen überflüssiger Termanteile bzw. Terme.
4. Schritt:
Streichen aller im 3. Schritt gefundenen Terme, die nur Freistellen überdecken.
.
144
6 Schaltalgebra
Beispiel: Gegeben seien die Null- und Freistellenmengen: N = {1, 5, 6, 10, 15} und R = {3, 7, 13, 17} Gesucht sind alle Primimplikanten der Funktion. x1 10 01 0 1 5 1 x2
2
-
3
1
-
0
1
12
10
13 11
-
7
17
0
15
x3
0
4 6
1
16
1
x4
14
Bild 6.24: Beispielfunktion 1. Schritt: W0 = {(0, -, 0, 1), (1, 0, 0, 0), (1, 1, 0, 1), (0, 1, 1, 0)} (Nullstellen 1 und 5 als Block) 2. Schritt: fE = (x4 V x2 V x1) & (x4 V x3 V x2 V x1) & (x4 V x3 V x2 V x1) & (x4 V x3 V x2 V x1) 3. Schritt: fE = (x4x4 V x4x3 V x4x2 V x4x1 V x2x4 V x2x3 V x2x2 V x2x1 V x1x4 V x1x3 V x1x2 V x1x1) & ... Nach Anwendung der Regeln: fE = (x4x3 V x4x1 V x2 V x4x1 V x3x1) & ... fE = x4x2 V x3x2 V x2x1 V x4x3x1 V x4x3x1 V x4x2x1 V x4x3x1 V x3x2x1 4. Schritt: Der Term x2x1 überdeckt nur Freistellen der Funktion und wird daher im weiteren nicht mehr berücksichtigt. Die mit Hilfe des Nelson-Verfahrens gefundenen Primimplikanten müssen i.Allg. nicht alle zur Bildung einer vollständigen Überdeckung der Einsstellen in die Lösung aufgenommen werden, sondern es genügt, wenn jede Einsstelle mindestens einmal überdeckt wird. Die Auswahl der benötigten Primimplikanten kann unter Einsatz der bereits früher eingeführten, allgemeingültigen Überdeckungstabelle erfolgen, dabei stellen die Minterme bzw. die Einsstellen die überdeckten und die Primimplikanten die überdeckenden Größen dar. Überdeckt ein Primimplikant eine Einsstelle, wird die Kreuzung der entsprechenden Zeile und Spalte markiert. Für die Menge der Einsstellen und die Menge aller zugehörigen Primimplikanten aus obigem Beispiel ergibt sich die folgende Überdeckungstabelle (Tabelle 6.10)
6.8 Minimierung
145
j k
Pl
1
x4x2 x3 x 2
2 4
x4 x 3 x1 x4 x3 x1
5
x4 x2 x1
3
6 7
x4 x3 x1 x3 x2 x1
0
2
4
11
12
14
x x x x
x
pk
ck
x
p1
c1
p2
c2
p3
c3
p4
c4
p5
c5
p6
c6
p7
c7
x x
x
16
x x
x
x
Kernprimimplikant
Tabelle 6.10: Überdeckungstabelle für die Beispielfunktion Enthält eine Spalte nur eine Markierung, so muss der zugehörige Primimplikant auf jeden Fall in die Lösung aufgenommen werden (sogenannter Kernprimimplikant). Die weitere Bearbeitung könnte anschaulich mit Hilfe sogenannter Dominanzregeln erfolgen, die aber erst später erklärt werden sollen. Nachdem inzwischen das Arbeiten mit schaltalgebraischen Ausdrücken eingeführt wurde, soll das Auswahlproblem zunächst mit diesem Hilfsmittel gelöst werden. Petrick hat als erster dieses Vorgehen vorgeschlagen [PET56]. Ihm liegt folgender Ansatz zugrunde: Man stellt für die Beschreibung der Überdeckungsverhältnisse einen schaltalgebraischen Ausdruck PA auf (den sog. Petrick-Ausdruck), der eine logische Bedingung dafür ist, dass jede Einsstelle bei der Überdeckung berücksichtigt wird. Dies führt auf eine Boolesche Gleichung. PA =
(Einsstelle s (Einsstelle 2 (Einsstelle 1 & & ... & berücksichtigt) berücksichtigt) berücksichtigt)
!
=
1
Dazu ordnet man jedem Primimplikanten PIk eine sog. Präsenzvariable pk zu, die folgende Aussage wiedergibt: pk = 0
^ =
PIk ist nicht in Lösung enthalten
pk = 1
^ =
PIk ist Bestandteil der Lösung
Alternativen in einer Spalte werden durch Alternativen für die Auswahlvariablen abgebildet (für Kernimplikanten muss pk { 1 sein). Für das Beispiel ergibt sich ! PA=(p5 V p6) & (p2 V p6) & (p5 V p7) & p4 & (p1 V p2) & (p3 V p7) & (p1 V p3) = 1.
Wie man sofort einsieht, läuft die Bearbeitung dieses Ausdrucks auf die gleiche Problematik wie beim Nelson-Verfahren hinaus, mit dem Unterschied, dass es sich ! wegen der Forderung PA = 1 um eine Boolesche Gleichung handelt, deren Lösungen bestimmt werden müssen, und die Auswahlvariablen nur bejaht auftreten. Für
146
6 Schaltalgebra
das Beispiel lässt sich durch geeignetes Umformen von PA die Disjunktion aller Primimplikanten finden. ! PA = p1p4p6p7 V p2p3p4p5 V p1p3p4p5p6 V p2p3p4p6p7 V p1p2p4p5p7 = 1
Diese Gleichung ist stets dann erfüllt, wenn mindestens einer der Primimplikanten gleich Eins ist. Jeder PA-Primimplikant gibt somit eine Kombination von Primimplikanten der ursprünglichen Minimierungsaufgabe an, die eine irredundante Überdeckung darstellt. Da die Lösung von Überdeckungsproblemen damit in der Regel auf ein Auswahlproblem führt, muss ein weiteres Kriterium hinzugenommen werden, das die Auswahl so steuert, dass aus der Menge der irredundanten Lösungen diejenige ausgesucht wird, die das Kriterium optimal erfüllt (es können aber mehrere gleichoptimale Lösungen existieren!). Zu diesem Zweck ordnet man jeder Deckgröße Dk Kosten ck zu mit ck > 0. Mit dieser Vorgabe liegt dann die Suche nach einer kostenminimalen Lösung vor. Für die oben angegebene Minimierungsaufgabe seien als Kosten die Anzahl der Literale eines Primimplikanten angenommen; damit wird c1 = c2 = 2, c3 bis c7 = 3. Für jeden der Primimplikanten des Petrick-Ausdrucks ist dann die Kostensumme K zu bestimmen: p1p4p6p7 p2p3p4p5 p1p3p4p5p6 p2p3p4p6p7 p1p3p4p5p7
K = 11 K = 11 K = 14 K = 14 K = 13
Damit existieren zwei gleichwertige kostenminimale Lösungen. Die zugehörigen disjunktiven Minimallösungen sind
y1 = x4x3x1 V x4x2 V x4x3x1 V x3x2x1 oder y2 = x4x3x1 V x3x2 V x4x3x1 V x4x2x1 x1
x1
1
0
0
1
1
-
-
0
x2 1 0
1
0
1 x3
0
0
1
1
-
-
0
1
-
-
1
0
1
0
1
x2
1
-
1
x4
x4
x3
Bild 6.25: Alternativen für eine kostenminimale Lösung Das Aufstellen und Abarbeiten des Petrick-Ausdrucks kann rechentechnisch vereinfacht werden, wenn man einige Merkmale der Überdeckungstabelle berücksich-
6.8 Minimierung
147
tigt. Aus dieser lassen sich ja die Kernprimimplikanten sofort erkennen, wenn man alle Spalten darauf überprüft, ob sie genau eine Markierung enthalten. Da Kernprimimplikanten in jeder irredundanten und minimalen Lösung enthalten sein müssen, brauchen sie eigentlich nicht über den ganzen Rechengang hinweg mitgeführt zu werden. Durch die notwendige Berücksichtigung der Kerne werden aber nicht nur die Spalten erfasst, welche genau eine Markierung tragen, sondern auch alle weiteren, die bereits durch diesen Kern überdeckt werden. Auch sie können für den Rechengang unbeachtet bleiben (im Beispiel trifft das nicht zu). Seien pk1, pk2, ..., pkz die Präsenzvariablen der Kerne, so nimmt der Petrick-Ausdruck grundsätzlich folgende Form an: PA = pk1 & pk2 & ... & pkz & PA' PA' stellt dabei den Ausdruck dar, der die übrigbleibenden Alternativen der Tabelle beschreibt. Es genügt daher, allein PA' aufzustellen, abzuarbeiten und die Minimallösung dafür zu bestimmen. Die endgültige Lösung ist dann um die Kerngrößen zu ergänzen. Für das gezeigte Beispiel wäre also PA = p4 & PA' mit ! PA' = (p5 V p6) & (p2 V p6) & (p5 V p7) & (p1 V p2) & (p3 V p7) & (p1 V p3) = 1 ;
bei gleicher Annahme über die Kosten ergeben sich als vorläufige Minimallösung p1p6p7 bzw. p2p3p5, die ergänzt um p4 dann die endgültige Minimallösungen ergeben. Für umfangreiche Überdeckungstabellen ist das Abarbeiten von Hand mit Hilfe des Petrick-Ausdrucks mühsam und fehleranfällig. Man wird daher geeignete CADProgramme zur Lösung dieser Aufgabe vorsehen, die auf sehr wirksamen Algorithmen aufbauen können. Kleinere Tabellen lassen sich jedoch auch gut mittels einer mehr grafischen Methode behandeln, die auf sogenannten Dominanzverhältnissen beruht [MCL65] . Es existieren zwei Typen von Dominanzen: die Spalten- und die Zeilendominanz. Zunächst führen wir eine neue Relation ein, für die die Spalten bzw. Zeilen der Überdeckungstabelle als Binärvektoren aufgefasst werden. Unter einer Dominanzrelation t zwischen zwei gleichlangen Binärvektoren versteht man eine reflexive, asymmetrische und transitive Relation bezüglich der Markierungen x. Ein Vektor i1 dominiert einen Vektor i2 genau dann, wenn i1 mindestens an den Stellen Markierungen trägt, wo auch i2 markiert ist. Entsprechend der beiden Dimensionen der Überdeckungstabelle spricht man von Zeilen- bzw. Spaltendominanz. Die Abarbeitung der Tabelle kann dann mit sog. Dominanzregeln erfolgen, die jeweils auf Paare von Spalten bzw. Zeilen angewendet werden.
148
6 Schaltalgebra
Spaltendominanz: Dominiert eine Spalte i1 eine Spalte i2, so kann die dominierende Spalte i1 gestrichen werden. Mit Hilfe eines Petrick-Teilausdrucks ist die Gültigkeit dieser Regel sofort einzusehen: Es sei i1 t i2. i1
i2
pk
x x x x
x
p1 p2 p3 p4
x
Tabelle 6.11: Beispiel für Spaltendominanz Dann wird PA' = (p1 V p2 V p3 V p4) & (p1 V p3) = p1 V p3 nach Anwendung des Absorptionsgesetzes; i1 kann daher entfallen. Zeilendominanz: Dominiert eine Zeile i1 eine Zeile i2 und gilt ci1 dci2, so kann die dominierte Zeile i2 gestrichen werden. Bei Einhaltung der Forderung ci1 < ci2 kann keine Zeile entfallen, die eine billigere Lösung ermöglicht. Für ci1 = ci2 kann wenigstens eine minimale Lösung bestimmt werden, welche die Zeile i1 enthält. (Eine gleichwertige Lösung entsteht, falls i1 = i2 und ci1 = ci2 und i2 statt i1 verwendet wird). Die Gültigkeit der Zeilendominanzregel basiert auf folgenden Überlegungen: Fall 1: Es sei i1 > i2 und ci1 d ci2.
i1 i2
x
ik
x
x x
x
x x
x
pk
ck
p1 p2 : pk :
ci1 ci2 : cik :
Tabelle 6.12: Beispiel für Zeilendominanz i1 leistet mehr (überdeckt mehr Spalten als i2) und ist höchstens gleich teuer. Eine Auswahl von i2 würde nicht alle Spalten erfassen; es müsste daher mindestens eine weitere Zeile ik mit cik > 0 hinzukommen. Damit wäre die Lösung mit i2 sicher teurer als die Lösung mit i1. Auch mit Hilfe des Petrick-Ausdrucks lässt sich die Gültigkeit zeigen: PA' = (p1 V pk) & (p1 V p2) & (p1 V pk) & (p1 V p2) PA' = p1 V p2 pk
mit
ci1 < ci2 + cik.
6.8 Minimierung
149
Fall 2: Es sei i1 = i2 und ci1 dci2.
i1 i2
x x
x x
ck ci1 ci2
pk p1 p2
x x
Tabelle 6.13: Beispiel für identische Zeilen Beide Zeilen leisten gleichviel bezüglich der Überdeckung. Bei ci1 < ci2 wird die billigere Lösung ausgewählt; bei ci1 = ci2 entfällt beim Streichen von i2 eine gleichwertige Lösung. Der Petrick-Ausdruck lautet: PA' = (p1 V p2) & (p1 V p2) & (p1 V p2) PA' = p1 V p2. i1 und i2 stellen also nur bei ci1 = ci2 gleichwertige Alternativen dar. Die Auswahl von Kernen und die Anwendung der Dominanzregeln kann iterativ erfolgen. Jedoch gelingt es nicht immer, damit eine Überdeckungstabelle vollständig abzuarbeiten. In manchen Fällen bleibt eine Resttabelle, bei der je Spalte mindestens zwei Markierungen stehen bleiben, wobei die Art der Verteilung über die Zeilen sich so ergibt, dass man von einer zyklischen Resttabelle spricht. Beispiel: Nach Anwendung von Kernauswahl und Dominanzregeln sei die folgende Resttabelle entstanden. x x
x x x
x
Tabelle 6.14: Beispiel einer zyklischen Resttabelle Sie kann mit den vorgestellten Methoden nicht weiter vereinfacht werden. In der Literatur wurden verschiedene anschauliche, aber intuitive Verfahren zur Auflösung solcher Tabellen angegeben. Es ist jedoch zweckmäßig, hierfür das PetrickVerfahren anzuwenden. Mit Hilfe der Kernbestimmung und der Dominanzregeln können also Überdeckungstabellen (mit dem Spezialfall der Primimplikantenauswahl) in der Regel abgearbeitet und damit das Auswahlproblem gelöst werden. Zweckmäßigerweise geht man nach folgendem Schema vor: 1. Schritt: Anlegen der Überdeckungstabelle einschließlich der Kostenwerte. 2. Schritt: Ermitteln der Kerngrößen; Streichen aller davon überdeckten Größen; leer gewordene Zeilen streichen. 3. Schritt: Überprüfen aller Spaltenpaare auf Dominanz; dominierende Spalten streichen; leergewordene Zeilen streichen. 4. Schritt: Überprüfen aller Zeilenpaare auf Dominanz; dominierte Zeilen streichen, falls dadurch keine billigere Lösung entfällt. Bei Streichen gleich-
150
6 Schaltalgebra
wertiger Zeilen können gleichwertige Lösungsalternativen verloren gehen! 2. bis 4. Schritt solange wiederholen, bis keine Änderung mehr eintritt. Dann 5. Schritt:
Prüfen, ob Tabelle abgearbeitet wurde; falls ja, weiter zum 7. Schritt; falls nein
6. Schritt:
Zyklische Resttabelle mit dem Petrick-Verfahren abarbeiten.
7. Schritt:
Minimallösung(en) ermitteln
Beispiel:
Gegeben sei eine Überdeckungstabelle einschließlich ihrer Kostenspalte (siehe 2. Schritt ohne Markierung der Kerne).
1. Schritt:
entfällt; Tabelle ist gegeben
2. Schritt: a b c d e f X X
1 2 3 4 X X 5 X 6 X 7 8 9 10 X 11 X 12 13 X 14 X 15 X 16 17 X
g h
i
j
k
X X X
l m n o p q r s t X X X X X X X X X X X
X X X
X X X
X X
X X
X
X X X X X X X X X X X
X X X
u v C 2 1 X 2 1 1 1 X 1 X X 1 X 1 X 2 X 1 X 1 1 X X 1 2 2 2
Tabelle 6.15: Beispiel für die Abarbeitung einer Überdeckungstabelle Kerne sind die Deckgrößen 1, 2, 3 und 10. Als Folge davon können gestrichen werden: a, d, e, g, i, k, l, n, o, p, q, s, t und v. Zeile 12 wird leer und ist daher zu streichen.
6.8 Minimierung
151
Die reduzierte Tabelle lautet:
4 5 6 7 8 9 11 13 14 15 16 17
b c f h j m r u C 1 X X X X 1 X 1 X X 1 X 1 X 1 X X 1 X X 1 X X 1 X X 2 X X 2 X 2
3. Schritt: Spaltendominanz ergibt sich für kein Paar, daher kein Streichen einer Spalte. 4. Schritt: Zeilendominanz ergibt sich für folgende Paare: 6 t9 11t13
c6 = c9 9 streichen c13 = c1113 streichen
11 > 6 7 >8 5 > 17
c11 = c6 6 streichen c7 = c8 8 streichen c5 < c17 17 streichen
Alternative entfällt jeweils
Tabelle 6.16: Tabelle nach der ersten Reduktion Wiederholen des 2. bis 4. Schrittes auf reduzierter Tabelle: 2. Schritt: b c f h j m r u C X X 1 4 5 X X 1 7 X X 1 11 X X 1 14 X X 1 15 X X 2 16 X X 2
Kerne nächster Ordnung sind die Deckgrößen 5, 7 und 11. Es entfallen dadurch b, c, f, m, r und u.
Tabelle 6.17: Tabelle mit Kernen zweiter Ordnung Die reduzierte Tabelle lautet nun: h
j C 14 X 1 15 X 2 16 X X 2
3. Schritt: Es ergibt sich keine Spaltendominanz. 4. Schritt: Zeilendominanz zeigen zwei Paare: 16 > 14 aber c16 > c14 kein Streichen! 16 > 15 mit c16 = c15 15 streichen.
Tabelle 6.18 Tabelle nach der zweiten Reduktion
152
6 Schaltalgebra
Wiederholen des 2. bis 4. Schrittes an reduzierter Tabelle: 2. Schritt: h j C 14 X 1 16 X X 2
Kern nächster Ordnung ist die Deckgröße 16. Damit entfallen h und j .
Tabelle 6.19: Resttabelle 5. Schritt:
Die Tabelle ist abgearbeitet; weiter mit Schritt 7.
7. Schritt:
Eine mögliche kostenminimale und irredundante Lösung L1 umfasst die Deckgrößen 1, 2, 3, 10, 5, 7, 11 und 16 und verursacht die Gesamtkosten K1 = c1 + c2 + c3 + c10 + c5 + c7 + c11 + c16 = 12. Austausch der gleichwertigen Deckgrößen 11 und 13 ergibt als weitere gleichteure Lösung L2: 1, 2, 3, 10, 5, 7, 13 und 16 mit K2 = 12.
6.9 Aufgaben Aufgabe 6.1 Eine unvollständig definierte Schaltfunktion y = f(e, d, c, b, a) ist durch folgende Null- und Freistellenmenge gegeben: {Xj}0 = {(0 0 - - -), (0 - - 1 -), (- - 0 0 0), (- 1 0 - 0)} {Xj}_ = {(0 1 - 0 1), (0 1 1 0 1)} 6.1.1 Stellen Sie die Einsvervollständigung yE der Funktion als konjunktiven Ausdruck dar. 6.1.2 Ermitteln Sie mit Hilfe des Nelson-Verfahrens alle Primimplikanten der Funktion yE. Aufgabe 6.2 Eine unvollständig definierte Schaltfunktion y = f(e, d, c, b, a) ist durch zwei Einsblöcke und drei Nullblöcke gegeben: Einsblöcke: w1 = e d , w2 = ec a Nullblöcke: W1 = e V a , W2 = c V d W3 = e V d V c V b Zeichnen Sie die Blöcke in ein Symmetriediagramm ein und geben Sie alle Funktionswerte (0,1 und -) an.
6.9 Aufgaben
153
Aufgabe 6.3 Für eine Schaltfunktion y = f(e, d, c, b, a) ergab sich folgendes Symmetriediagramm: y
e a
a 0
0
0
-
1
0
0
0
1
-
0
1
1
1
-
1
1
-
0
-
1
0
-
1
-
1
0
-
1
0
0
0
b d
c 6.3.1 Zeichnen Sie alle Primeinsblöcke ein. 6.3.2 Geben Sie eine disjunktive Minimalform an. Aufgabe 6.4 Geben Sie in den nachstehenden Aufgaben 6.4.1 bis 6.4.3 mit Hilfe des Symmetriediagramms jeweils ein Beispiel für eine vollständige Schaltfunktion f(a, b, c). 6.4.1 Die Schaltfunktion f(a, b, c) soll genau so viele Primimplikate wie Nullstellen besitzen. 6.4.2 Die Schaltfunktion f(a, b, c) soll doppelt so viele Primimplikate wie Primimplikanten besitzen. 6.4.3 Die disjunktive Minimalform (DMF) und die konjunktive Minimalform (KMF) sollen identisch sein. Aufgabe 6.5 Zeigen Sie, dass sich mit den Operatoren Äquivalenz und Disjunktion sowie einer Konstanten ein Basissystem aufbauen lässt. 6.5.1 Wie kann die Negation dargestellt werden? 6.5.2 Drücken Sie die Konjunktion durch die Äquivalenz und die Disjunktion aus. Aufgabe 6.6 Für das Operatorensystem Konjunktion, Disjunktion und Negation ist mit der Disjunktiven bzw. der Konjunktiven Normalform (DNF, KNF) eine kanonische Darstellung möglich. Für das Operatorensystem Antivalenz, Konjunktion und Konstante existiert ebenfalls eine kanonische Darstellung, die für zwei Variable a und b folgende Form besitzt: y = f(b,a) = k0 { (k1 & a) { (k2 & b) { (k3 & a & b)
154
6 Schaltalgebra
Bestimmen Sie für k0=1, k1=1, k2=1, k3=1 und k0=1, k1=1, k2=0, k3=1 die zugehörigen Funktionen und geben Sie das Ergebnis entweder als DNF oder als KNF an. Aufgabe 6.7 Für bestimmte (aufbauende) Verfahren zur Primblockbildung von Schaltfunktionen ist die sogenannte Consensus-Bildung eine wichtige Operation. Ein ConsensusTerm lässt sich bezüglich einer Variablen x aus folgender Beziehung herleiten: x f V xg = x f V xg V f g (Gleichung 1) Die Bezeichner f und g können für beliebige Terme stehen. Mit wc = f g wird der Consensus-Term bezeichnet. Die Consesus-Operation ¢ wird dann mit wc = f g = x f ¢ x g (Gleichung 2) definiert. 6.7.1 Beweisen Sie die Gültigkeit von Gleichung 1. Hinweis: Erweitern Sie zunächst den Consensus-Term mit Hilfe des Entwicklungssatzes um die Variable x. 6.7.2 Lösen Sie die folgenden beiden Consensus-Term-Operationen: a b c ¢ a cd und a b c ¢ a b c. Aufgabe 6.8 Ohne Streichungsregeln anzuwenden, hat ein Entwickler aus der Überdeckungstabelle den folgenden Petrick-Ausdruck gebildet: PA = a & (a V c V f) & (b V c V f) & (b V c V e V f) & (d V e) & (d V f). Um den Ausdruck nicht vollständig ausdistribuieren zu müssen, soll zunächst die Überdeckungstabelle wiedergewonnen werden. 6.8.1 Stellen Sie die Überdeckungstabelle aus dem Petrick-Ausdruck auf, ohne diesen zu vereinfachen. Die überdeckenden Größen sind durch die Präsenzvariablen gegeben. Die Kosten jeder Größe sind in der folgenden Tabelle vorgegeben. Die zu überdeckenden Größen Ei können entsprechend der Reihenfolge indiziert werden. pj\Ej a b c d e f
Kosten € 1,-2,-3,-4,-5,-6,--
6.8.2 Bestimmen Sie alle Kernspalten, und markieren Sie die zugehörigen Zeilen. Die dadurch überdeckten Größen Ei können gestrichen werden.
6.9 Aufgaben
155
6.8.3 Streichen Sie alle dominierenden Spalten. 6.8.4 Streichen Sie alle dominierten Zeilen, die teurer sind als die sie dominierenden Zeilen. 6.8.5 Wenden Sie die Regel 6.8.2 bis 6.8.4 rekursiv an, bis eine zyklische Resttabelle entsteht oder die Tabelle vollständig abgearbeitet ist. Wenn eine Resttabelle übrigbleibt, stellen Sie den zugehörigen Petrick-Ausdruck auf. 6.8.6 Geben Sie die günstigste Lösung an. Welche Kosten verursacht sie? Aufgabe 6.9 Ein Kleingärtner möchte, dass es in seinem Garten von März bis Oktober ununterbrochen blüht. Er stellt deshalb für die Pflanzen A bis H, ihre Blütezeit und die Kosten der benötigten Sämereien folgende Tabelle auf: Blütezeit Pflanze A B C D E F G H
März
April
Mai
x
x x
x x
Juni
x x x
Juli
August
Sept.
Okt.
x x x
x x
x x x
x
Kosten (€) 3 4 2 7 7 2 4 5
6.9.1 Welche Pflanzen muss der Kleingärtner auf jeden Fall anpflanzen, für welche Monate ist damit die Blüte sichergestellt? 6.9.2 Stellen Sie für die restlichen Monate den Petrick-Ausdruck auf, wie er sich ohne Umformungen direkt aus der (Rest-)Tabelle ergibt. (Indizieren Sie die Präsenzvariablen entsprechend der Pflanzen; z.B.: pA für Pflanze A). 6.9.3 Lösen Sie den Petrick-Ausdruck durch Umformung und geben Sie die Lösung mit den geringsten Kosten an.
Zum Weiterlesen: [AIS67]
Aisermann, M. A.: Logik, Automaten, Algorithmen. München: Oldenbourg, 1967
[ZAN89]
Zander, H. J.: Logischer Entwurf binärer Systeme. 3. Aufl., Berlin: Verlag Technik, 1989
[TDD83]
Thayse, A.; Deschamps, J. P.; Davio, M.: Digital Systems: With Algorithm Implementation. Chichester: Wiley, 1983
7.2 Binäre Schalter
157
7 Bausteine der Digitaltechnik 7.1 Zuordnungsschemata bei binären Größen In Kapitel 3.5 hatten wir das binäre Signal als einfachstes Digitalsignal eingeführt. Dabei hatte sich die Notwendigkeit ergeben, zur Vereinfachung der Diskriminierung den "undefinierten Bereich" zwischen das H- und das L-Intervall einzufügen. Das Intervallschema nimmt dabei noch keinen Bezug auf feste Werte für Minimalund Maximalwert sowie Intervallgrenzen. Insbesondere kann der Bezugswert frei gewählt werden. Für die folgenden Betrachtungen gehen wir davon aus, dass die zugrunde liegende physikalische Größe die Spannung sei mit UB als Maximalwert und Masse (0V) als Minimal- und Bezugswert. Bei der Einführung der Schaltalgebra waren die beiden Werte mit 0 und 1 benannt worden. Will man nun zwischen dem abstrakten Verknüpfungsgebilde Schaltalgebra und konkreten, d.h. physikalisch realisierten Schaltungen einen Bezug herstellen, so muss man festlegen, welchen Spannungsbereichen die logischen Werte zugeordnet sind. Für die bijektive Abbildung { 0, 1 } o{ L, H } gibt es genau zwei Möglichkeiten, die unpräzise, aber griffig als positive bzw. negative Logik bezeichnet werden: Intervall
log. Wert
Intervall
log. Wert
L H
0 1
H L
1 0
„Positive Logik“
„Negative Logik“
Bild 7.1: Mögliche Zuordnungen zwischen Intervallen und logischen Werten
7.2 Binäre Schalter und ihre Realisierung in MOS-Technik Im Kapitel über die Schaltalgebra hatten sich Relais und die von ihnen betätigten Kontakte, die nur offen oder geschlossen sein können, als eine Möglichkeit erwiesen, ein- und mehrstellige logische Verknüpfungen zu realisieren. Sieht man von der Art der Betätigung ab, so sind schaltende Kontakte, kurz Schalter genannt, geeignete Bauelemente für logische Schaltungen, d.h. Schaltungen, welche schaltalgebraische Operationen verwirklichen. Neben rein mechanischen Lösungen wie den Kontakten sind viele andere Effekte der Physik nutzbar, um Bauelemente mit zwei extremen Schaltzuständen konstruieren zu können. Von zentraler Bedeutung sind heute nur solche Bauelemente, welche auf Halbleitereffekten
158
7 Bausteine der Digitaltechnik
beruhen, insbesondere die Transistoren. Dabei handelt es sich um Elemente mit drei Anschlüssen, einer Steuerelektrode und zwei Elektroden, zwischen denen eine "elektronische Schalterfunktion" möglich ist, d.h. sich im Einzustand des Schalters nur ein sehr geringer Innenwiderstand, im Auszustand ein recht hoher Innenwiderstand einstellt. Auf der technologischen Materialebene unterscheidet man prinzipiell negative nbzw. positive p-dotierte Halbleiterregionen. Diese beiden Grunddotierungsarten stellen die Basis für den sogenannten PN-Übergang dar, der als Grenzschicht zwischen p- und n-dotierten Gebieten eine wichtige Grundlage für die im weiteren beschriebenen Transistorfunktionsweisen darstellt. Eine negativ (n-)dotierte Halbleiterstruktur, wie etwa n-dotiertes Silizium, beinhaltet in seiner Struktur überschüssige Elektronen, die keine feste Bindung zu einem Nachbaratom haben. Dieser negative Ladungsüberschuss entsteht durch eine gezielte “Verunreinigung“ mit geeigneten Materialien, die eine höhere Anzahl von Außenelektronen aufweisen, wie beispielsweise Arsen oder Phosphor mit jeweils fünf Außenelektronen, um vierwertiges Silizium negativ zu dotieren. Die nicht gebundenen Elektronen stellen somit freie Ladungsträger dar und erhöhen die Leitfähigkeit der reinen Halbleiterstruktur, d.h. je höher man eine Struktur dotiert, desto niederohmiger wird das Material. Eine p-dotierte Halbleiterstruktur beinhaltet überschüssige Löcher, die fehlende Elektronen in den Bindungen zu Nachbaratomen darstellen. Dieser positive Ladungsüberschuss entsteht wiederum durch eine gezielte “Verunreinigung“ mit geeigneten Materialien, welche eine geringere Anzahl von Außenelektronen aufQ
z.B. mit Gallium dotiert: 3-wertig
+
p-dotiert
+ + +
z.B. mit Phosphor dotiert: 5-wertig
x
n-dotiert
+ + Diffusion der Elektronen Diffusion der Löcher
E
Legende: x: Entfernung zur Grenze x
Bild 7.2: PN-Übergang im Gleichgewichtszustand
Q: Raumladung E: Elektrische Feldstärke
7.2 Binäre Schalter
159
weisen, wie beispielsweise Aluminium oder Gallium mit jeweils drei Außenelektronen. Diese Löcher stellen somit ebenfalls freie Ladungsträger dar zur Erhöhung der Leitfähigkeit. Das Verhalten am PN-Übergang zwischen p- und n-dotierten Gebieten soll im folgenden rein phänomenal und qualitativ diskutiert werden, wobei für detailliertere quantitative Analysen auf die weiterführende Literatur verwiesen wird. Das Verhalten der beiden Ladungsträgertypen eines PN-Übergangs im Gleichgewichtszustand zeigt Bild 7.2. Der Elektronenüberschuss im n-Gebiet und der Löcherüberschuss im p-Gebiet bewirken, dass Elektronen aus dem n-Gebiet ins p-Gebiet diffundieren und mit Löchern im p-Gebiet rekombinieren, sodass umgekehrt Löcher ins n-Gebiet diffundieren. Die entstandenen positiv geladenen Phosphorionen und negativ geladenen Galliumionen bewirken in einer dotierungsabhängigen Umgebung der PN-Grenzschicht positive (n-Gebiet) und negative (p-Gebiet) Raumladungszonen. Dieser durch die Diffusion von Elektronen und Löchern hervorgerufene Potentialunterschied resultiert in einem elektrischen Feld, dessen Feldstärke in Abhägigkeit der Entfernung zur Grenzschicht linear abfällt. Ohne Anlegen einer äußeren Spannung am n- bzw. p-Gebiet ist der PN-Übergang im Ruhezustand, d.h. es herrscht ein Gleichgewicht zwischen Elektronen- bzw. Löcherdiffusion und dem entgegenwirkenden elektrischen Feld. Der PN-Übergang im Ruhezustand kann durch das Anlegen äußerer Spannungen beschaltet und technisch nutzbar gemacht werden (siehe Bild 7.3). Legt man nun den negativen Pol (Minuspol) einer Spannungsquelle an das p-Gebiet sowie den positiven Pol (Pluspol) an das n-Gebiet, dann bewegen sich überschüssige Elektronen aus dem n-dotierten Gebiet zum Pluspol und Löcher aus dem p-Gebiet zum Minuspol. Dieser Vorgang vergrößert die positiven und negativen Raumladungszonen an der Grenzschicht, sodass keine Bewegung von Ladungsträgern durch Raumladungszonen vergrößert
a)
Minuspol p-dotiert
+ + + + + + + +
n-dotiert
Pluspol +
Raumladungszonen
b)
abgebaut
Pluspol +
+
Minuspol +
p-dotiert
n-dotiert
+
Bild 7.3: PN-Übergang in a) Sperrschichtpolung und b) Durchlasspolung
160
7 Bausteine der Digitaltechnik
diese Zonen erfolgen kann. Es liegt eine sogenannte Sperrschichtpolung vor in der kein Strom fließt. Legt man dahingegen den Pluspol einer Spannungsquelle an das p-Gebiet und den Minuspol an das n-Gebiet, dann werden Löcher aus dem p-Gebiet in Richtung des PN-Übergangs und damit des n-Gebiets bewegt, sowie Elektronen aus dem n-Gebiet zum p-Gebiet abgestoßen. Dieser Vorgang baut zum einen die positiven und negativen Raumladungszonen an der Grenzschicht ab, und bewirkt zum anderen eine zweiseitige Ladungsträgerbewegung über die Grenzschicht hinweg. Es liegt eine sogenannte Durchlasspolung vor, in der ein Strom durch den nun leitenden PN-Übergang fließt. Je nach Wahl der Halbleiterstruktur lassen sich mehrere Grundtypen von Transistoren unterscheiden (siehe Bild 7.4). Bei bipolaren Transistoren fließt aufgrund einer an der Steuerelektrode (Basis B) angelegten Spannung UBE ein geringer Halbleiterstruktur
Symbol
Kennlinie
E B C C
pnpBipolarTransistor
p++
n+
-IC
p
B
n-Epitaxie p-Substrat
E
-UBE
E B C C npnBipolarTransistor
n
++
p+
n
IC
B
p-Epitaxie n-Substrat
E UBE
G
S
D D
PMOSTransistor
p+
-ID
p+
SiO2 G
n-Silizium
-UGS
S G
S
D D
NMOSTransistor
n
+
ID
n+
SiO2 p-Silizium
G S
Bild 7.4: Grundsätzlicher Aufbau, Schaltsymbole und Kennlinien wichtiger Transistorschalter
UGS
7.2 Binäre Schalter
161
Steuerstrom zwischen der Basis B und dem Emitter E, der seinerseits einen größeren Strom zwischen Emitter und dem Collector C hervorruft (Verstärkereigenschaft), sodass der entsprechende Schalter zwischen E und C vom Auszustand in den Einzustand versetzt wird (Schalter geschlossen). Je nach Reihenfolge der nbzw. p-Dotierungen erhält man unterschiedliche bipolare Transistoren und damit unterschiedliche Schalterrealisierungen. Bei einem pnp-Bipolartransistor liegt ein negativer Schalter vor und bei einem npn-Bipolartransistor ein positiver Schalter. Aufgrund von Isolations- und Abwärmeproblemen bei hoher Integration von bipolaren Transistoren basiert die heute vorherrschende Halbleitertechnologie auf Feldeffekttransistoren (FET), wobei bipolare Transistoren, beispielsweise als Leistungstransistoren zum Steuern großer Ströme und Spannungen, immer noch notwendig und unerlässlich sind. Die heutzutage am verbreitetsten eingesetzte digitale Schaltkreistechnologie basiert auf sogenannten MOS-FETs (Metall-Oxide-Semiconductor Feldeffekttransistor, in Bild 7.5a im Zustand geöffnet). Hierbei ist die Steuerelektrode (Gate G) durch eine dünne Oxydschicht (Dünnoxyd) vom Siliziumsubstrat isoliert. Aufgrund einer an G angelegten Spannung UGS wird ein elektrisches Feld hervorgerufen, das Ladungsträger aus dem Substrat in die Region direkt unterhalb des Dünnoxyds bewegt. Bei einem n-Kanal MOS-FET werden hierbei aus einem schwach p-dotierten (p ) Substrat Elektronen in eine n-Kanal Region bewegt, die einen Stromfluss der nun leitenden Verbindung zwischen Source S und Drain D ermöglicht, sodass der Schalter zwischen S und D geschlossen ist (siehe Bild 7.5b im Zustand a)
b) Source
Gate
n+
UGS>0
Drain
S
n+
n+
D
G
n+ p Substrat
-
p Substrat
n-Kanal
Dünnoxyd
c)
L
Gate (Silizium)
d) L
W
Source
Substrat p
Drain n+
n+ -
W SiO2
Bild 7.5: Aufbau eines n-Kanal MOS-FET in a) geöffnetem Zustand, b) geschlossenem Zustand, c) perspektivischem Querschnitt, d) Layoutdarstellung
162
7 Bausteine der Digitaltechnik
Lineare Region
Schaltsymbole (detailliert)
|ID|
NMOS
PMOS
D
D
|UGS|
ID
ID
UDS
UDS G
G UGS
S
UGS
S
|UDS| Bild 7.6: Ausgangskennlinien für n- und p-Kanal MOS-FETs geschlossen). Ein wesentlicher Unterschied zum bipolaren Transistor besteht in diesem Fall in der (fast) stromlosen Schaltersteuerung. Je nach Reihenfolge der nbzw. p-Dotierungen erhält man unterschiedliche Feldeffekttransistortypen und damit unterschiedliche Schalterrealisierungen. Bei einem n-Kanal MOS-FET (in Bild 7.5c ist die entsprechende Materialstruktur im perspektivischen Querschnitt illustriert) liegt ein positiver Schalter vor, und im umgekehrten Fall bei einem pKanal MOS-FET ein negativer Schalter. Die MOS-FET-Technologien haben sich aufgrund ihrer planaren Integrationsmöglichkeiten und ihren sehr guten Kostensowie Verlustleistungseigenschaften umfassend durchgesetzt. Ein wichtiger Aspekt ist hierbei die jeweilige Dimensionierung von Kanallänge (Length L) und Breite (Width W), um die elektrischen Größen wie Widerstand und Kapazität sowie die Schaltgeschwindigkeit der zu fertigenden Transistoren zu beeinflussen (Layoutdarstellung in Bild 7.5d). Die Ausgangskennlinien von n- und p-Kanal MOS-FETs gibt Bild 7.6 wieder. Die Drainströme ID von NMOS- und PMOS-Transistoren sind hierbei mit entgegengesetzten Vorzeichen versehen (siehe auch Bild 7.4). Für positive Gate/SourceSpannungen UGS ab einem technologieabhängigen Betrag (Durchlass- oder Thresholdspannung Uth) wird der NMOS-Transistor leitend. Bei PMOS-Transistoren wird bei negativem Uth der entsprechende Schalterkontakt geschlossen. Bis zu einer Sättigungsgrenze steigt hierbei der Drainstrom ID betragsmäßig linear an, sodass technologie- und anwendungsabhängig optimierte Arbeitspunkte bestimmt werden können.
7.3 Schaltglieder
Serienschaltung:
B
163
A.B
Parallelschaltung:
A+B
A
A
B
Bild 7.7: Serien- und Parallelschaltung von NMOS-Transistoren
Wesentlich ist die Forderung, dass sich solche Transistoren mit ihren Schaltstrecken in Serie oder parallel schalten lassen (siehe Bild 7.7), da hierdurch, unter zuzüglicher Verwendung einer Negationsschaltung, die direkte Anknüpfung an den Hauptsatz der Schaltalgebra erfolgen kann und somit die Anwendung der Huntingtonschen Axiome und sämtlicher abgeleiteter Regeln der Booleschen Algebra möglich ist.
7.3 Schaltglieder Der Hauptsatz der Schaltalgebra und die Überlegungen über Basissysteme von Operatoren haben gezeigt, dass man beliebige Schaltfunktionen mit beliebig vielen Variablen eindeutig mit einer kleinen Anzahl von Operatoren (minimal einem Operator) darstellen kann. Für die Umsetzung in Schaltungen ist diese Feststellung von großer Bedeutung. Gelingt es nämlich, für jeden Operatortyp eine passende technische Realisierung zu finden, so steht einer Umsetzung schaltalgebraischer Ausdrücke in Schaltungen nichts mehr im Wege. Solche Basisschaltungen für Operatoren nennt man Schaltglieder oder auch Gatter. Wenn man sich nicht für ihren inneren Aufbau interessiert, genügt es, wie in der Technik üblich, Schaltglieder durch Schaltungssymbole darzustellen.
164
7 Bausteine der Digitaltechnik
Aktuelle Norm DIN 40900
Alte Norm DIN 40700 ANSI/IEEE Std 91a-1991
Amerikanische Norm MIL-Std-806
UND - Glied: &
y=a&b&c&d
a b c d
y
a b c d
y
a
y
a
...
a b c d
y
a
y
d
a b c d
t1
y=aVbVcVd
...
ODER - Glied:
d
Negationsglied: a
1
y=a
y
a a
1
y=a
a
y
a b c d
&
y=a&b&c&d
a b c d
y
...
NAND - Glied: y
y=aVbVcVd
a b c d
y
a
y
a d
a b c d
t1
...
NOR - Glied:
d
beliebige Funktion: a b c d
F
y = F(a, b, c, d)
Bild 7.8: Darstellung der Schaltzeichen nach verschiedenen Normen
7.3 Schaltglieder
165
Einige grundlegende Eigenschaften solcher Schaltglieder und eine schalterorientierte Realisierung sollen im Folgenden kurz diskutiert werden. Das einfachste Schaltglied ist das Negationsglied (auch Inverter genannt), das den Negationsoperator realisiert. Entsprechend den beiden Schaltprinzipien ergeben sich zwei Schaltungsvarianten: UB
UB
R
R y=1 Uy = H
x=0 Ux = L
y=0 Uy = L
x=1 Ux = H
Bild 7.9: Mögliche Schalterstellungen beim Einschalterprinzip UB
x=0 Ux = L
UB
y=1 Uy = H
x=1 Ux = H
y=0 Uy = L
Bild 7.10: Mögliche Schalterstellungen beim Zweischalterprinzip Beim Umschalten sollten beide Kontakte möglichst nicht gleichzeitig geschlossen werden, um hohe Querströme zu verhindern. R muss entsprechend den Schalterwiderständen, den Intervallgrenzen für L und H und der Belastung am Ausgang gewählt werden. Für die Betrachtung zwei- oder mehrstelliger Operatoren und ihrer Schaltglieder soll zunächst vom Einschalterprinzip ausgegangen werden, wobei einmal die Reihen-, zum anderen die Parallelschaltung der Schalter zum Einsatz kommt. Die Überlegungen beziehen sich auf zweistellige Operatoren; die Erweiterung auf dreioder höherstellige ist sofort einsichtig. Zunächst wird aufgrund einer Analyse der Schaltung die Schaltungsfunktion mit den Werten L und H ausgedrückt, was die sog. Spannungsfunktionstabelle ergibt. Dann wird über die Logikzuordnung eine Funktionstabelle abgeleitet und aus dieser auf den realisierten logischen Operator geschlossen.
166
7 Bausteine der Digitaltechnik
Es ergibt die Parallelschaltung zweier Schalter:
UB
Ux2 Ux1
Uy
L L H H
H L L L
R Uy
U x1
{U
x
positive Logik
U x2
=L
L H L H
Ux = H
}
negative Logik
x2
x1
y
x2
x1
y
0 0 1 1
0 1 0 1
1 0 0 0
1 1 0 0
1 0 1 0
0 1 1 1
NOR
NAND
Bild 7.11: Wirkungsweise der Parallelschaltung beim Einschalterprinzip
und die Reihenschaltung zweier Schalter:
UB R Uy Ux2
Ux2 Ux1
Uy
L L H H
H H H L
L H L H
positive Logik
negative Logik
Ux1 x2
x1
y
x2
x1
y
0 0 1 1
0 1 0 1
1 1 1 0
1 1 0 0
1 0 1 0
0 0 0 1
NAND
NOR
Bild 7.12: Wirkungsweise der Serienschaltung beim Einschalterprinzip
7.3 Schaltglieder
167
Aus diesen Beispielen lässt sich folgern: - NAND und NOR lassen sich auf einfache Weise realisieren. Da beide ein Basissystem bilden, reicht ein Schaltungstyp aus, um alle Schaltfunktionen realisieren zu können; - Der gleiche Schaltungstyp realisiert entweder NAND oder NOR, abhängig von der Logikzuordnung. Die Einfachheit dieser Schaltungen bleibt auch bei Transistorschaltungen erhalten, was die weite technische Bedeutung von NAND- bzw. NOR-Schaltgliedern erklärt. UND- und ODER-Schaltglieder sind nicht so einfach aufzubauen. Sie werden in der Regel durch die Kombination von NAND- bzw. NOR-Schaltgliedern mit Invertern realisiert. In gleicher Weise lassen sich Zweischalteranordnungen behandeln. Dabei müssen in jeder Schaltung jeweils Reihen- und Parallelschaltungen von Schaltern kombiniert werden (Dualitätsprinzip), um hohe statische Querströme zu verhindern (siehe MOS-Schaltungstechnik in Kapitel 7.2).
UB
Ux1
Ux2 Ux1
Uy
L L H H
H L L L
L H L H
positive Logik
Uy
negative Logik
Ux2 x2
x1
y
x2
x1
y
0 0 1 1
0 1 0 1
1 0 0 0
1 1 0 0
1 0 1 0
0 1 1 1
NOR
Bild 7.13: Wirkungsweise beim Zweischalterprinzip
NAND
168
7 Bausteine der Digitaltechnik
UB
Ux 1 U x2
Ux2 Ux1
Uy
L L H H
H H H L
L H L H
positive Logik
Uy
negative Logik
x2
x1
y
x2
x1
y
0 0 1 1
0 1 0 1
1 1 1 0
1 1 0 0
1 0 1 0
0 0 0 1
NAND
NOR
Bild 7.14: Wirkungsweise der zu Bild 7.13 dualen Anordnung
Es gelten dieselben Feststellungen wie für Einschalteranordnungen. Technisch sind letztere jedoch ungünstiger, da sie wegen der Unterschiede in den Widerstandswerten der beiden Zweige (nach UB bzw. Masse) ein unsymmetrisches Umschalt- und Belastungsverhalten haben, was bei Zweischalteranordnungen günstiger gelöst werden kann. Auf weitere Schaltungsanordnungen soll hier nicht eingegangen werden. Die am meisten verwendete digitale Schaltungstechnik, basierend auf MOS-FETTechnologien, ist die sogenannte CMOS-Schaltungstechnik (Complementary Metal Oxide Semiconductor). Im Folgenden wird die statische CMOS-Schaltungstechnik beschrieben, wobei derart realisierte CMOS-Grundschaltungen für Basisoperatoren (Schaltglieder oder Gatter genannt) und hieraus aufgebaute komlexere VDD
Inverterschaltung (Negation)
PMOS
Eingangsspannung
UE
UA
Ausgangsspannung
NMOS
Bild 7.15: CMOS-Inverterschaltung mit zwei Transistoren
7.3 Schaltglieder
169
digitale Schaltungen jeweils aus zwei Durchlassnetzen bestehen. Jedes Durchlassnetz wird ausschließlich mit PMOS- bzw. NMOS-Transistoren realisiert. Die einfachste CMOS-Grundschaltung ist die Inverterschaltung (siehe Bild 7.15) mit jeweils einem PMOS- bzw. NMOS-Transistor. Für die folgenden Betrachtungen wird die positive Logik vorausgesetzt. Das PMOS-Netz sorgt dafür, dass bei entsprechender Eingangsbelegung der Ausgang der Schaltung auf logisch “1“ gezogen wird (Pull-up nach VDD), und wird dementsprechend Pull-up Netz (PUN) genannt. Analog wird durch das NMOS-Netz der Ausgang auf logisch “0“ (Masse) heruntergezogen (Pull-down Netz, PDN). Hieraus ergibt sich, dass PUN- und PDN-Netze jeweils streng dual (komplementär) zueinander entworfen werden müssen, damit immer nur genau eines dieser beiden Durchlassnetze durchschaltet. Es dürfen also nie beide Netze gleichzeitig durchschalten, womit Konflikte (Kurzschlüsse!) vermieden werden. Umgekehrt dürfen auch beide Netze nie gleichzeitig sperren, da ansonsten der Ausgang hochohmig würde. Folglich ist das Ergebnis der logischen Funktion F(In1,In2,...Inn) des aus ausschließlich PMOS-Transistoren realisierten PUN immer für alle Belegungen der Literale (In1,In2,...Inn) invertiert zum Ergebnis der logischen Funktion G(In1,In2,...Inn) des ausschließlich mit NMOS-Transistoren realisierten PDN (siehe Bild 7.16). Dementsprechend ist auf die strenge Einhaltung von F = G beim Entwurf zu achten, sodass zu einem bestimmten Zeitpunkt stets nur entweder logisch “1“ oder logisch “0“ auf den Ausgang “OUT“ durchgeschaltet wird. Hieraus folgt ebenso, dass ein Widerstandsverhältnis nicht beachtet werden muss und damit die CMOS-Schaltungstechnik “verhältnisfrei“ (ratio-less) operiert, im Gegensatz zur früheren reinen PMOS- bzw. NMOS-Schaltungstechnik. Hier musste zur Erzielung notwendiger Ausgangsspannungswerte ein bestimmtes pull-up/pulldown Verhältnis eingehalten werden. Ein Stromfluss findet damit bei der statischen CMOS-Schaltungstechnik nur sehr kurz (Kurzschlusstrom!) statt und ermöglicht,
VDD In1 In2 Inn
PUN F
Pull-up Netz PUN: verbindet VDD mit F, falls F (In1,In2,...Inn) = G (In1,In2,...Inn) = 1
OUT = F (In1,In2,...,Inn) = G (In1,In2,...Inn) In1 In2 Inn
PDN G GND
Pull-down Netz PDN: verbindet VDD mit GND, falls G (In1,In2,...Inn) = F (In1,In2,...Inn) = 1
Bild 7.16: Prinzipieller Aufbau von CMOS Pull-up und Pull-down Durchlassnetzen
170
7 Bausteine der Digitaltechnik
VDD
NAND-Funktion
y A
B
A
B
y
0
0
1
0
1
1
1
0
1
1
1
0
NOR-Funktion VDD
A y
A
B
y
0
0
1
0
1
0
1
0
0
1
1
0
B
Bild 7.17: Struktur der CMOS-Grundschaltungen NAND und NOR
dass die Ausgangsspannungswerte durch keine Spannungsteilung beeinträchtigt werden und somit unempfindlich gegenüber Schwankungen der Versorgungsspannung VDD sind. Basierend auf der einfachsten CMOS-Grundschaltung, der Inverterschaltung in Bild 7.15, entstehen zusätzliche CMOS-Grundschaltungen jeweils durch weitere parallel oder seriell geschaltete PMOS- bzw. NMOS-Transistoren. Hierdurch erhält man NAND- bzw. NOR-Grundschaltungen (Bild 7.17), wobei die NAND-Grundschaltung genau dann auf logisch “0“ schaltet, wenn beide Eingänge auf logisch “1“ liegen, wodurch beide PMOS-Transistoren sperren und beide NMOS-Transistoren durchschalten. Demgegenüber liegt bei der NOR-Grundschaltung genau dann der Ausgang auf logisch “1“, wenn beide Eingänge auf logisch “0“ liegen. Zusammen mit der Inverter-Grundschaltung lassen sich problemlos AND- bzw. OR-Schaltungen implementieren. Somit liegen direkt die schaltungstechnischen Umsetzungen von gleichzeitig mehreren Basissystemen der Schaltalgebra vor,
7.3 Schaltglieder
171
nämlich die CMOS-Realisierungen von AND/OR/NOT, NAND/NOT, sowie NOR/ NOT Basissystemen. Wegen des Hauptsatzes der Schaltalgebra ist damit jede denkbare digitale Schaltfunktion mit diesen CMOS-Grundschaltungen realisierbar. Wie oben beschrieben, ist ein zentraler Gesichtspunkt beim Entwurf statischer CMOS-Schaltungen die Dualität der beiden Durchlassnetze. Im Folgenden werden die einzelnen Schritte eines systematischen Entwurfsverfahrens für komplexe CMOS-Schaltungen zur Realisierung einer beliebigen digitalen Schaltfunktion F angegeben: Schritt 1: Aus der Spezifikation einer Schaltfunktion F, wie etwa einer gegebenen Funktionstabelle, wird eine kanonische Normalform abgeleitet; beispielsweise wird eine disjunktive Normalform (DNF) für die Funktion F aufgestellt. Schritt 2: Die abgeleitete Normalform wird minimiert (basierend auf dem Nelson/ Petrick-Verfahren oder auf S-Diagrammen, siehe auch Kapitel 6.8) und die entsprechende Minimalform, beispielsweise eine disjunktive Minimalform (DMF), für die Funktion F aufgestellt. Schritt 3: Durch die entsprechende Serien-/Parallelsynthese (siehe Bild 7.7) der Konjunktionen und Disjunktionen in der DMF wird das PUN, bestehend aus PMOS-Transistoren, für die Funktion F aufgestellt. Hierzu müssen alle Literale dieser DMF invertiert werden, denn die verwendeten PMOS-Transistoren realisieren negative Schalter. Schritt 4: Die abgeleitete DMF-Funktion für F wird invertiert zu G = F und durch schaltalgebraische Umformungen (basierend auf den DeMorgan´schen Regeln) in die entsprechende Form gebracht, um dann als PDN, bestehend aus NMOS-Transistoren, ebenfalls mittels Serien-/Parallesynthese direkt umgesetzt zu werden.
Das Resultat dieser systematischen Serien-/Parallelsynthese entspricht der CMOS-Realisierung zweier zueinander dualer Durchlassnetze PUN und PDN, welche die boolesche Funktion F digitaltechnisch korrekt und wohldefiniert realisieren mit: - (F & G) = 0
-> kein Konfikt, d.h. es tritt kein Kurzschluss auf, und
- (F + G) = 1
-> Wohldefiniertheit, d.h. es liegt immer ein definierter Wert (logisch 0 oder 1) am Ausgang.
Die CMOS-Schaltungstechnik entspricht dem sogenannten Zweischalterprinzip und ist die heute am weitesten verbreitete Technologie, denn CMOS-Schaltungen besitzen sehr hohe Integrationsdichten (kostengünstig!) und verursachen, im
172
7 Bausteine der Digitaltechnik
Gegensatz zu reinen PMOS-/NMOS-Schaltungen früherer Tage, keinen kontinuierlichen Stromfluss, d.h. keine hohen statischen Querströme im durchgeschalteten Zustand der Transistornetze. Für weitergehende Studien der CMOSTechnologie sei auf die angegebene Literatur verwiesen [DIG85].
7.4 Schaltnetze Logische Ausdrücke bestehen in der Regel nicht nur aus einem Operator. Komplexere Ausdrücke müssen daher in Schaltungen umgesetzt werden, die mehr als ein Schaltglied enthalten. Folgt man dem Prinzip, dass jeder m-stellige Operator durch das zugeordnete Schaltglied mit m Eingängen ersetzt wird, so gibt der logische Ausdruck unmittelbar die Konstruktionsvorschrift für die Schaltung an, man nennt ihn daher Strukturausdruck. Beispiel:
y = (x2 & x1) V (x2 & x1) [= z2 V z1]
Deutung: Zunächst sind zwei UND-Operatoren (=^ UND-Glieder) anzuwenden, die je eine Zwischenvariable erzeugen, die dann durch einen ODER-Operator (^= ODER-Glied) verknüpft werden. Jede Eingangsvariable ist außerdem zu negieren (was einem Negationsglied entspricht). Schaltung: x1
& 1 1
x1
z2
t1 x2
&
y
z1
x2
Fall a o Fall b m
1. Stufe 2. Stufe
2. Stufe 1. Stufe
(hier bevorzugt)
Bild 7.18: Beispiel eines Schaltnetzes und der Zählweise seiner Stufen
Bei Ausdrücken sowie bei Schaltungen führt man ein Zählprinzip für die relative Lage der Operationen bzw. Schaltglieder ein und spricht von der Stufenzahl. Diese Zählung kann wahlweise bei den Eingängen (Fall a) oder dem Ausgang beginnen (Fall b). Negationen der Eingangsvariablen werden bei der Zählung häufig nicht berücksichtigt. Der Hauptsatz der Schaltalgebra besagt daher auch, dass jede beliebige Schaltfunktion durch ein Schaltnetz mit höchstens zwei Stufen realisiert werden kann.
7.4 Schaltnetze
173
Betrachtet man Schaltungen, welche unmittelbar einem Strukturausdruck entsprechen und vernachlässigt man Schaltzeiten der Schalter und Signallaufzeiten auf Verbindungen, so wird der Wert von y unmittelbar aus den Werten der Eingangsvariablen xi gebildet; man bezeichnet solche logischen Schaltungen daher als Schaltnetze. Definition (angelehnt an DIN IEC 748 Teil 2): Ein Schaltnetz ist eine Digitalschaltung, in der es für jede mögliche Kombination von digitalen Signalen an den Eingängen eine – und nur eine – Kombination von digitalen Signalen an den Ausgängen gibt: SN
X F y
Yt = F(Xt)
(yt = f(Xt) Sonderfall einer Ausgangsvariablen)
dabei ist der hochgestellte Index t lediglich ein Hinweis darauf, dass die Größe Y zeitlich unmittelbar aus der Größe X gebildet wird.
Der Entwurf von Schaltnetzen
Der Entwurf kann in eine Reihe typischer Schritte untergliedert werden: 1. Schritt: Umsetzen der verbalen Aufgabenstellung in eine formale Form, z.B. in eine Funktionstabelle; (dazu gehört die Festlegung der Wertzuordnung für die Binärvariablen). 2. Schritt: Bildung einer Normalform; Bildung einer vollständigen Blocküberdeckung. 3. Schritt: Bildung einer Minimalform. 4. Schritt: Umformen in das gewünschte Basissystem. 5. Schritt: Umformen in den Strukturausdruck. 6. Schritt: Umsetzen in das entsprechende Schaltnetz.
(Unter Umständen sind nicht alle Schritte notwendig). Beispiel: Verbale Aufgabenstellung: Mit einer Siebensegmentanzeige sollen im BCD-Code gegebene Ziffern dargestellt und am Beispiel des oben links liegenden Segments f ein Schaltnetz zur Ansteuerung dieses Segments entworfen werden. Zur Verfügung stehen nur NAND-Gatter mit zwei Eingängen und Inverter.
174
7 Bausteine der Digitaltechnik
a f
b g
e
c
d Bild 7.19: 7-Segment-Anzeige 1. Schritt: Zuordnung: Segment hell: f = 1 Segment dunkel: f = 0 Benennung der Eingabe: BCD mit (x4, x3, x2, x1)
Funktionstabelle: Ziffer
j
0 1 2 3 4 5 6 7 8 9 -
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
x4
x3
x2
x1
f
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 0 0 1 1 1 0 1 1 -
Tabelle 7.1: Schaltfunktion für das Segment f 2. Schritt:
siehe 3. Schritt.
3. Schritt:
Minimierung z. B. nach Nelson.
fE
= (x4 V x3 V x2 V x1) & (x4 V x3 V x2) & (x4 V x3 V x2 V x1) = (x4 V x3 V x1 x2) & (x4 V x3 V x2 V x1) = x4 V x3 x2 V x3 x1 V x1 x2
7.4 Schaltnetze
175
Damit sind alle Primimplikanten bekannt, und es ist das Überdeckungsproblem zu lösen: j PIk
0
4
5 X
X
X X X
6
x4 x3 x2 x3 x1 x2 x1
10 X
11 X
X X
Tabelle 7.2: Überdeckungstabelle für f E
Alle Implikanten sind Kernimplikanten, damit stellt f = x4 V x3 x2 V x3 x1 V x1 x2 bereits die Minimalform dar. 4. Schritt:
Umwandlung in NAND-Basissystem.
f = x4 V x3 x2 V x3 x2 V x1 x2 = x4 V x3x2 V x3x1 V x1x2 = x4 & x3x2 & x3x1 & x1x2 5. Schritt:
Strukturausdruck für Gatter mit zwei Eingängen und Inverter.
Da das NAND-Schaltglied der 2. Stufe vier Eingänge benötigen würde, muss eine Transformierung in dieser Stufe erfolgen: f = x4 & x3x2 & x3x1 & x1x2 = (x4 & x3x2) & (x3x1 & x1x2) 6. Schritt:
x4
Konstruktion des Schaltwerkes aus dem Strukturausdruck 1
&
1
x3 x2
1
&
x1
1
&
&
&
&
Bild 7.20: Schaltnetz für die Bildung von f
1
f
176
7 Bausteine der Digitaltechnik
Die Anwendung schaltalgebraischer Regeln auf logische Ausdrücke erlaubt, vielfältige Formen für Schaltnetze zu finden, die z.B. mehr als zwei Stufen aufweisen können. Da dann i.Allg. kein durchgängiges Ordnungsprinzip mehr erkennbar ist, spricht man auch von krauser Logik und versteht darunter beliebige Strukturen mit angepassten Schaltgliedern. Bei komplexeren Schaltnetzen bringt das unübersichtliche Verhältnisse mit sich; man sucht daher wieder gewisse Grundstrukturen vorzugeben und eine spezielle Lösung darin einzupassen. Grundprinzip ist dabei das vom Strukturausdruck ausgehende Weglassen oder Hinzufügen von Verbindungen in universell nutzbaren Strukturen, die Schaltglieder mit großer Eingangszahl haben. Diese Aspekte sind vor allem in Zusammenhang mit der Realisierung von Schaltnetzen in Form integrierter Schaltungen (IC's) wichtig. Es lassen sich zwei Hauptstrukturen angeben, die jeweils zweistufig sind, aber entweder Minterm- bzw. Maxterm-orientiert (also von den Normalformdarstellungen DNF bzw. KNF ausgehen) oder blockorientiert sind (also z.B. von den Minimalformen DMF bzw. KMF ausgehen). Alle sind matrixförmig organisiert.
Normalformorientierte Strukturen (DNF als Beispiel)
Sie bestehen aus 2n UND-Schaltgliedern in der 1. Stufe und einem oder mehreren ODER-Schaltgliedern in der 2. Stufe. Unterschiedlich ist die Art der Einbettung eines speziellen Schaltnetzes (sog. Personalisierung oder Programmierung), da man entweder Einfluss auf das Bilden der Minterme in der 1. Stufe oder auf das Einkoppeln der Minterme auf Eingänge der 2. Stufe nehmen kann. Beides entscheidet über die Abhängigkeit des Funktionswertes fj von einem Minterm mj. Beispiel:
ULA (Universal Logic Array): Minterme werden zusätzlich mit 1 oder 0 konjunktiv verknüpft, d.h. ihre Wirkung ein- bzw. ausgeschaltet (Bilder 7.21 und 7.22).
7.4 Schaltnetze
177
(Dargestellte Funktion: y = m1 v m4 v m5 v m6 v m7 ) 1
1
0
0 x1 1
x1 x2
X 1
x2 x3
1
x3 &
&
0
&
m1
&
0
&
0
&
&
m4
m5
&
m6
m7
V
y = f(X)
Bild 7.21: Beispiel für die Realisierung einer Schaltfunktion durch ein ULA
Durch Umformen und Abstrahieren gewinnt man daraus eine Matrix-förmige Anordnung, bei der einfache Punkte an den Kreuzungen eine feste, zusätzlich mit einem Kreis versehene Punkte hingegen eine programmierte Verbindung symbolisieren. 1
1
1 0
0
0
0
1
1
1
1
1
(Einstellenmenge)
0
(Nullstellenmenge)
x1
1
x1
&
X
x2 x2 x3 x3
0
m1
0
0
V
m4
m5
m6
m7 y = f(X)
Bild 7.22: Vereinfachte Darstellung der Kontaktierung eines ULA
178
7 Bausteine der Digitaltechnik
Eine weitere Struktur erlaubt es, nur solche Verbindungen aus der UND- in die ODER-Matrix zu führen, deren Minterm Bestandteil der Lösung ist. Die Programmierung der Struktur erfolgt damit in der 2. Stufe. Man nennt solche Strukturen ROM (Read Only Memory, siehe auch Kapitel 8.3): x1 x1
1
X
x2 x2
1
x3 x3
1 &
&
&
&
&
&
m1
m4
&
& m5
m6
m7
V
y = f(X)
Bild 7.23: Beispiel für die Realisierung einer Schaltfunktion durch ein ROM
x1
X
x1
&
x2
1
x2 x3 x3 m0
m1
m2
0
1
0
m3 0
V
m4
m5
m6
m7
1
1
1
1
y = f(X)
Bild 7.24: Vereinfachte Darstellung für die Kontaktierung eines ROM Blockorientierte Strukturen (DMF als Beispiel)
Sie bestehen i.Allg. aus weniger als 2n UND-Schaltgliedern, an die auch nicht alle Eingangsvariablen angeschlossen sein müssen. Die Ausgänge der Terme für die Blöcke können entweder genau einem oder auch mehreren ODER-Schaltgliedern zugeführt werden. Die Programmierung kann entweder nur die UND-Matrix (PAL£-Bausteine) oder UND- und ODER-Matrix (PLA-Bausteine) erfassen.
7.4 Schaltnetze
179
PAL (Programmable Array Logic): Nur UND-Matrix beeinflussbar. (dargestellte Funktionen: y = ( x2 & x1 ) V ( x3 ), z = ( x2 & x1 ) V ( x2 & x1) ) x1 x1
1
X
x2 x2
1
x3 x3
1 &
&
&
&
&
V
V
y
&
z
Bild 7.25: Beispiel für die Realisierung zweier Schaltfunktionen durch ein PAL
Als vereinfachte Darstellung ergibt sich hier: x1
X
x1
x1 x1
& x2
1 x2
x2 x3
x1 x2 x2 x3 x3
V
y = f(X)
V
z = g(X)
Bild 7.26: Vereinfachte Darstellung für die Kontaktierung eines PALs
Da die ODER-Matrix für verschiedene Ausgänge eine Gruppierung der UND-Verknüpfungen (sogenannte Produktterme) fest vorgibt, müssen auch identische
180
7 Bausteine der Digitaltechnik
Terme mehrfach realisiert werden (Term x1& x2 im Beispiel). Flexibler ist daher das PLA (Programmable Logic Array), bei ihm sind beide Matrizen beeinflussbar: x1 x1
1
X
x2 x2
1
x3 x3
1 &
&
&
&
&
V
y
V
z
Bild 7.27: Beispiel für die Realisierung zweier Schaltfunktionen durch ein PLA
In der vereinfachten Darstellung ergibt sich für ein PLA:
x1
X
x1 x2
1
&
x2 x3
x1 x1 x2 x2 x3 x3
V
y = f(X)
V
z = g(X)
Bild 7.28: Vereinfachte Darstellung für die Kontaktierung eines PLAs
In diesem Fall kann der Term x1& x2 mehrfach ausgenutzt werden.
7.5 Zeitverhalten von Schaltgliedern und Schaltnetzen
181
7.5 Zeitverhalten von Schaltgliedern und Schaltnetzen Digitalschaltungen sind im Allgemeinen keine Anordnung mit statischen Ein- und Ausgangsgrößen. Vielmehr legen Folgen von Eingabeänderungen entsprechende Folgen von Ausgabeänderungen fest und bestimmen dadurch den funktionellen Einsatz solcher Schaltungen. Da die Ein- und Ausgangsvariablen auf der Schaltungsebene durch physikalische Größen repräsentiert werden, führen Ein- bzw. Ausgabeänderungen zu zeitlichen Veränderungen des Wertes der entsprechenden Größen. Wenn man von der Signaldarstellung nach Bild 3.4 ausgeht, so stellen Änderungen Wechsel eines Signals vom L- in den H-Bereich oder umgekehrt dar. Wenn sich nun z.B. eine Spannung zeitlich verändert, so entstehen Zeitintervalle, in denen die Spannung entweder im Intervall H oder L oder ohne feste Zuweisung im undefinierten Bereich liegt. Wegen der Notwendigkeit eines zeitkontinuierlichen Verlaufs physikalischer Größen und aus energetischen Gründen kann die Breite des Zeitintervalls mit undefiniertem Wert nicht zu Null gemacht werden (Bild 7.29a). Gemäß der Zuordnungsvorschrift zu den Werten 0 bzw. 1 entsteht daher das Problem, dass zeitliche Verläufe bei schaltalgebraischen Größen ebenfalls unbestimmte logische Werte aufweisen würden, was unbefriedigend ist (Bild 7.29b). Man vervollständigt daher den Binärverlauf, wobei mehrere Möglichkeiten entstehen. Sinnvoll ist es, z.B. den neuen logischen Wert dann einzusetzen, wenn die Spannung die Grenze des dazugehörigen Intervalls erreicht (Bild 7.29c). UB a)
H undef. Bereich
L t ?
H
?
L
?
H
?
H
0 ?
1
?
0
?
1
?
1
L b)
1 c) 0
t
Bild 7.29: Abbildung stetiger Signalverläufe auf Binärwerte
Diese oder eine andere Festlegung für den Änderungszeitpunkt ist jedoch willkürlich und stellt eine Modellierungsschwäche dar. Man sollte daher den exakt rechtwinklig erscheinenden Verlauf nicht fehlerhaft interpretieren, denn tatsächlich steht
182
7 Bausteine der Digitaltechnik
der senkrechte Werteübergang für ein Übergangsintervall des stetigen Signals. Der Kreis am Ende des senkrechten Verlaufs soll diese Tatsache in Erinnerung bringen. Auch Schaltglieder zeigen – unabhängig vom realisierten Operator – ein zeitliches Verhalten und bilden nicht unendlich schnell den neuen logischen Wert am Ausgang. Schon auf der Eingangsseite weisen die ansteuernden Signale aus energetischen Gründen keine ideale, rechteckige Signalform auf. Messungen zeigen darüber hinaus, dass Ausgangswechsel ebenfalls nicht rechteckig sind und gegenüber der Eingangsänderung zeitlich verspätet auftreten. Ursache hierfür sind Umladungsvorgänge bei Streukapazitäten und in Halbleiterbauelementen. An einem Negationsglied sollen die Verhältnisse vereinfacht betrachtet werden (Bild 7.30a). Die Durchlaufzeiten der Spannungsänderungen bestimmt man zweckmäßigerweise über die 50%-Punkte auf den Flanken der Signale; für den eingangsseitigen LH-Wechsel ergebe sich tpLH und für den entgegengesetzten HL-Wechsel tpHL (Bild 7.30b). b)
a)
ue H
1 ue
ua
50%
50%
L
t ua
H
50%
50%
L tpLH
c)
tpHL
t
xe 1
ue
xe
ua
xa
0
t xa
1 0
WLH
WHL
Bild 7.30: Vereinfachte Verläufe von Spannungen und Binärgrößen bei einem Negationsglied
t
7.5 Zeitverhalten von Schaltgliedern und Schaltnetzen
183
Kann man (näherungsweise) beide gleich setzen, so erhält man die Durchlaufzeit (propagation delay time) des Schaltungsglieds zu tp = tpLH = tpHL. Bildet man den stetigen Kurvenverlauf wie in Bild 7.29c rechtsstetig auf Binärgrößen ab, so erhält man die Verhältnisse gemäß Bild 7.30c mit den Zeitdifferenzen WLH unf WHL. Auch hier kann man beide Werte gleichsetzen. Man erhält dann die Verzögerungszeit W = WLH = WHL und bezeichnet sie als reine Verzögerung (pure delay). Untersucht man die Verhältnisse messtechnisch genauer bzw. verzichtet man auf die genannten Vereinfachungen, so lassen sich folgende Feststellungen treffen: 1) Die Verzögerungszeiten hängen von der Richtung des Signalwechsels ab (WLH zWHL, unsymmetrische Totzeiten); 2) Die Verzögerungszeiten sind lastabhängig, ihre Werte sind eine Funktion der Anzahl vom Ausgang angesteuerter Eingänge und der Verdrahtung; 3) Bei Schaltgliedern mit mehreren Eingängen können die Verzögerungswerte von der Anzahl und/oder Position der schaltenden Eingänge abhängen; 4) Es bedarf einer Mindestenergie am Eingang, um einen Ausgangswechsel auzulösen (träge Totzeit, ein Eingangsimpuls kann nicht beliebig schmal sein). Es würde hier zu weit führen, diese Fälle genauer zu diskutieren. Im weiteren Verlauf des Kapitels begnügen wir uns mit der Annahme „reine Totzeit“, mit der allein bereits wichtige Effekte modelliert werden können; für richtungsabhängige und träge Totzeiten sei z.B. auf [BWL89] verwiesen. Nachdem nun festgestellt wurde, dass ein reales Schaltglied sowohl einen logischen Operator realisiert als auch Signaländerungen verzögert, stellt sich die Frage, wie das Ersatzschaltbild eines solchen Schaltgliedes, das sogenannte Totzeitmodell, auszusehen hat. Zwei Ansätze sind denkbar (Bild 7.31): 1) Die Verzögerung erfolgt auf der Eingangsseite vor Bildung der logischen Operation; 2) Die Verzögerung erfolgt auf der Ausgangsseite und beeinflusst die Ausgabe des Ereignisses, das zuvor ideal schnell berechnet worden war.
x1(t0-W1) x2(t0-W2)
W1 W2
x1(t0) x2(t0)
Op
x1(t0-W)
Op
yid(t0)
yid(t0-W)
x2(t0-W) ideal
ideal
Bild 7.31: Modellierungsansätze für das Ersatzschaltbild
Für den Ansatz nach a) gilt für einen beliebigen festen Zeitpunkt t0: y(t0) = yid(t0) = x1(t0) Op x2(t0) = x1(t0-W1) Op x2(t0-W2)
W
y(t0)
184
7 Bausteine der Digitaltechnik
Da diese Verhältnisse für alle Zeitpunkte t0 gelten müssen, kann man schreiben: y(t) = x1(t-W1) Op x2(t-W2) Der Ansatz nach b) liefert entsprechend: y(t0) = yid(t0-W) = x1(t0-W) Op x2(t0-W) Und damit y(t) = x1(t-W) Op x2(t-W) Wie man aus den beiden für alle Zeitpunkte geltenden Beziehungen erkennt, sind die Ansätze jedoch nur dann gleichwertig, wenn die Verzögerungswerte in den Eingängen dem Wert auf der Ausgangsseite gleich sind, also W = W1 = W2 ist. Optisch kann man diese Gleichwertigkeit so deuten: Eine reine Totzeit lässt sich vom Ausgang auf die Eingangsseite „durchschieben“, wobei alle Eingänge gleichartig berücksichtigt werden müssen, und umgekehrt. Dies werden wir bei der Modellierung von Schaltnetzen ausnutzen, um ein allgemeines Totzeitmodell generieren zu können. Da in einer Schaltung stets mehrere Bausteine nacheinander durchlaufen werden, kommt es zu einer Folge von Verzögerungen entlang des Änderungswegs. Lässt sich dafür eine vereinfachte Darstellung finden? Bild 7.32 gibt die idealisierte Anordung einer solchen Verzögerungskette unter Wegfall der n idealen logischen Komponenten wieder. x
Wn
yn-1 ... ...
W3
y-2
W2
y-1
W1
y
Bild 7.32: Serienanordnung von reinen Verzögerungen
Es gilt: y(t) = y-1(t-W1) y-1(t) = y-2(t-W2) = y(t-W1-W2) usw. Schließlich erhält man: y(t) = x(t-Wn- ... -W2-W1) Mit W = Wn+ ...+W2+W1 ergibt sich vereinfacht y(t) = x(t-W). Man darf also in Reihe liegende reine Totzeiten durch eine einzige reine Totzeit ersetzen, deren Wert sich aus der Summe aller Verzögerungen ergibt. Nachdem jetzt ein Modell für das zeitliche Verhalten von einzelnen Schaltgliedern zur Verfügung steht und Anweisungen für das Durchschieben und Addieren von
7.5 Zeitverhalten von Schaltgliedern und Schaltnetzen
185
reinen Totzeiten gefunden wurden, kann man versuchen, diese Kenntnisse zum Modellieren von ganzen Schaltnetzen einzusetzen. Das Vorgehen lässt sich am besten an einem einfachen Beispiel [nach Beister] verdeutlichen. Die Schaltfunktion y = x2 {x1 werde in Form eines Schaltnetzes realisiert, das nur NAND-Schaltglieder mit zwei Eingängen und keine Negationsglieder erhält. Der Strukturausdruck, d.h. die Bauanleitung für das Netz, lautet dann y = [x2 & (x2 & x1)] & [x1 & (x2 & x1)] Aus diesem ergibt sich das in Bild 7.33a gezeigte Schaltnetz. Ersetzt man jedes reale Schaltglied (schraffiert dargestellt) durch seinen Totzeit-Modellansatz, so erhält man die Struktur gemäß Bild 7.33b. Da diese bereits das zeitliche Verhalten wiedergibt, kann man an ihr „Experimente“ zeitlicher Art durchführen und z.B. untersuchen, wie sich ein Wechsel am Eingang a von 0 nach 1 und konstantem b=1 am Ausgang auswirkt. Zur Verdeutlichung werde dafür auch der Verlauf der Binärsignale u, v und w an den Zwischenknoten protokolliert (Bilder 7.34 und 7.35). a
a
& 2 & 1
b
y
& 4
& 3
& 2 & 1
W2 & 4
W1
b
& 3
W3
W4
y(t)
W4
y
b)
a)
Bild 7.33: Reales Schaltnetz und sein Modellansatz
a(t) 0 1
& 2 & 1
b(t) =1=const
W1
W2
& 4
u(t) & 3
v(t)
W3
w(t)
Bild 7.34: Untersuchung eines Wechsels bei Eingang a
Man erkennt aus dem zeitlichen Verlauf von y, dass es erwartungsgemäß nach 0 geht, zeitlich davor aber ein kurzer „Störimpuls“ von 1 nach 0 nach 1 zu beobachten ist, den die statische logische Funktion nicht erklärt. Die Analyse des Zeitverlaufs der Zwischenknoten zeigt, dass Laufzeitunterschiede auf unterschiedlichen Wegen vom Eingang a zum Ausgang dafür verantwortlich sind:
186
7 Bausteine der Digitaltechnik a v y a u v y a u w y
1. Weg: 2. Weg: 3. Weg:
Gesamtverzögerung 14ns Gesamtverzögerung 19ns Gesamtverzögerung 13ns
Die sich auf den Wegen 1 und 3 ausbreitenden Änderungen sind ursächlich für den Fehlimpuls, Weg 2 veranlasst die letztmalige Änderung von y.
1
a(t)
0 0 1 u(t) 0 0 1 v(t) 0 0 1
w(t)
0 0 1 y(t) 0 0
t/ns
t/ns
5=W1
9=W2
14=W1+W2
8=W1+W3
13 14 19 =W1+W3+W4 =W2+W4 =W1+W3+W4
t/ns
t/ns
t/ns
Bild 7.35: Zeitlicher Verlauf der Signale
Offensichtlich hängt der Verlauf von y von der Anzahl der möglichen Ausbreitungswege und deren Totzeitwerten ab. Bei unserem Modell ergeben sich die Werte nur aus den Totzeiten der Schaltglieder entlang der Wege und nicht auch von zusätzlichen Totzeiten, welche Leitungen zuzuordnen sind, die bei den heutigen schnellen Schaltungen nicht zu vernachlässigen wären. Die Zahl der Ausbreitungswege bestimmt sich aus der Realisierungsstruktur und damit aus dem Strukturausdruck das Schaltnetzes. Ein anderer Strukturausdruck für dieselbe logische Funktion ergibt in der Regel auch eine Menge anderer Wege, was einen Ansatz zur Behebung solcher Störimpulse darstellen kann. Die bisherigen Betrachtungen lassen sich in zwei Aussagen zusammenfassen: 1) Es müssen mindestens zwei bzw. drei unterschiedliche Wege zum Ausgang existieren, damit es dort zu fehlerhaften Übergängen kommt: - Mindestens zwei, falls sich der Wert des Ausgangs trotz der Eingangsänderung nicht ändern soll;
7.5 Zeitverhalten von Schaltgliedern und Schaltnetzen
187
- Mindestens drei, falls sich der Wert des Ausgang bei einer Eingangsänderung ändern soll. 2) Es muss eine geeignete Verteilung der Totzeiten auf die beteiligten Wege exi-stieren, damit die Laufzeitunterschiede die Fehlimpulse erzeugen können. Nimmt man als Gegenbeispiel zu der Betrachtung gemäß Bild 7.34 eine andere Verzögerungsverteilung für die Schaltglieder mit W1=5ns, W2=9ns, W3=9ns und W4=5ns an, so ergibt die Analyse, dass sich der Ausgang wie erwartet nur einmal ändert, die strukturgegebene Möglichkeit des Fehlverhaltens also nicht sichtbar wird. Man unterscheidet in der Theorie des Zeitverhaltens daher die beiden Situationen durch unterschiedliche Bezeichnungen. Unter einem Hasard versteht man die logische Möglichkeit der realisierten Schaltung zu einem möglichen Fehlverhalten durch unterschiedliche Ausbreitungswege. Als Hasardfehler bezeichnet man dagegen die Situation, wenn ein vorhandener Hasard durch eine geeignete Totzeitverteilung am Ausgang wirksam wird. Beister [BEI74] hat gezeigt, dass eine geeignete Transformation des TotzeitModellansatzes nach Bild 7.33b eine systematische Behandlung von Übergangsverläufen ermöglicht. Das transformierte Modell erlaubt dann weitergehende Analyseschritte und ergibt auch Hinweise auf Konstruktionsmöglichkeiten, wie Hasards an sich vermieden werden können, so dass zufällige Totzeitverteilungen kein Fehlverhalten bewirken. Für die Transformation finden folgende Regeln Anwendung: 1) Aufspalten und Vervielfachen solcher Teile des Schaltnetzes, deren Ausgang mehr als einen folgenden Eingang ansteuert; man erhält auf diese Weise eine Baumstruktur des Netzes mit eindeutigen Verhältnissen (Bild 7.36a gibt diese Veränderung bezüglich des Bausteins 1 wieder); 2) Durchschieben der Ausgangsverzögerung auf die Eingangsseite; 3) Aufaddieren dieser Totzeit mit den ausgangsseitigen Totzeiten der ansteuernden Bausteine (Bilder 7.36b und 7.36c); 4) Wiederholen der Regeln 2 und 3 solange, bis die aufsummierten Totzeiten direkt bei den Eingangsvariablen angekommen sind (Bild 7.36d). Die endgültige Struktur weist nun eine interessante Gliederung des Schaltnetzes auf: Es zerfällt in zwei Teilstrukturen (in Bild 7.36d gestrichelt umrahmt), welche grundsätzlich unterschiedliche Funktionen wahrnehmen. Der erste Bereich umfasst nur Summentotzeiten, welche entlang eines speziellen Wegs entstanden. Die entsprechenden Totzeitglieder werden direkt von einer Eingangsvariablen angesteuert und liefern entsprechend der Zahl der Wege neue, verzögerte Variable, die durch Namensgebung und Indizierung ihre Herkunft erkennen lassen. Die indizierten Variablen folgen in ihrem Werteverlauf den zugehörigen Eingangsvariablen gleichsinnig und ändern ihren Wert höchstens einmal. Vor einem Wechsel und nach Ablauf der größten Totzeit stimmen die Werte der indizierten Variablen
188
7 Bausteine der Digitaltechnik
mit dem Wert ihrer Eingangsvariablen überein. In diesem ersten Bereich findet keine logische Verknüpfung statt! Der zweite Bereich hingegen enthält keine Totzeiten mehr; er stellt ein Schaltnetz mit Baumstruktur dar, das nur ideale Schaltglieder enthält und dessen Ausgangswert sich sofort aus den Werten der indizierten Zwischenvariablen berechnen lässt. Man bezeichnet eine solche Modellierung als allgemeines Totzeitmodell eines Schaltnetzes. Das Arbeiten mir dem allgemeinen Totzeitmodell gliedert sich dann in folgende Analyseschritte: AS1) Transformation des Totzeitmodellansatzes eines Schaltnetzes in das dazugehörige allgemeine Totzeitmodell, was ein einmaliger Vorgang ist, der aber wegen der Aufspaltung in eine Baumstruktur sehr aufwendig werden kann. AS2) Bestimmen der Summentotzeiten für jeden einzelnen Weg (erfolgt typischerweise schon in Schritt AS1, daher einmalig nötig), ordnen der Totzeiten nach aufsteigendem Wert. AS3) Berechnung der Änderungsfolge der indizierten Variablen für jeden Übergang, für den das Schaltnetz untersucht werden soll; dabei finden nur diejenigen Variablen Berücksichtigung, deren primäre Variable an der eingangsseitigen Änderung beteiligt ist. a)
b)
a
b
& 1´´
W1
& 1´
W1
& 2
a
W2
& 4 & 3
W4
y b
W3
c) a
b
& 1´´
W1
& 1´
W1
& 2
W2+W4
& 4 & 3
y
W3+W4
d) W2+W4
& 1´´
W1+W2+W4
& 1´
W1+W3+W4
W3+W4
a
& 2 & 4
W 2+ W 4 W1+W2+W4
y
W1+W2+W4 W1+W3+W4
& 3
a1 a2 b2 a3
W1+W3+W4
b3
W3+W4
b1
b
Verzögerungsteil
Bild 7.36: Transformation der Darstellung
& 2 & 1´
& 4
& 1´´ & 3
Verknüpfungsteil
y
7.6 Automaten, Schaltwerke, Binärspeicher
189
Für das verwendete Beispiel ergeben sich in den Schritten AS1 und AS2 wegen der Symmetrie der Schaltfunktionen je drei Zwischenvariable je Eingangsvariable mit Summentotzeiten, die bereits aus den früheren Betrachtungen bekannt sind. Beteiligt sind aber nur die Zwischenvariablen a1, a2 und a3. Die Berechnung gemäß AS3 ergibt dann für den Wechsel bei a von 0 nach 1 (Tabelle 7.3): Zeitpunkt
a3 a2 a1
b3 b2 b1
t 19ns
1
1
1
1
1
1
0
stationär
y
Situation
Tabelle 7.3: Berechnung der Werte von y für den Übergang
Der zeitliche Verlauf von y entspricht genau dem in Bild 7.35 abgeleiteten; offensichtlich leisten Modellansatz und das allgemeine Totzeitmodell die gleiche Aussage für das Übertragungsverhalten. Für die Praxis kann man diese Analyse mit geeigneten Hilfsmitteln und durch theoretische Betrachtung weiterentwickeln, so dass das Vorgehen effizient und rechnergestützt erfolgen kann, und sich prinzipielle Aussagen über das Übertragungsverhalten von beliebigen Schaltnetzen machen lassen. Als Einführung soll jedoch die am Beispiel geschilderte Vorgehensweise für einen Strukturausdruck der Antivalenzfunktion genügen.
7.6 Automaten, Schaltwerke, Binärspeicher Mit den Schaltnetzen steht eine technische Anordnung zur Verfügung, bei der die Ausgangsgröße zeitlich unmittelbar aus der Eingangsgröße gebildet wird. Hat man umfangreiche Verarbeitungsaufgaben zu realisieren, so bedeutet dies ein sehr großes Eingangsalphabet, das erlauben muss, alle für die Bildung der Ausgangsgröße nötigen Bedingungen als Eingangsgröße darzustellen. Das führt in vielen Fällen zu Schaltnetzen, deren Aufwand technische oder wirtschaftliche Vorgaben oder Möglichkeiten übersteigt. Man muss daher ein weiteres Verarbeitungskonzept suchen, das die Mächtigkeit des Eingabealphabets reduziert und die Komplexität der Bildung der Ausgabegröße teilweise in eine andere Dimension verlagert. An einem einfachen Beispiel sei dies verdeutlicht: Für die Ausgabe einer Automatenware (z.B. Fahrkarten) sei die Auswahl und Eingabe von vier Elementen aus verschiedenen Alphabeten (z.B. Münzgröße/Scheine, Entfernung, Sondertarif, Kind/Erwachsene) nötig. Fasst man diese Größen schaltnetzmäßig zusammen, so
190
7 Bausteine der Digitaltechnik
hieße das, entweder die gleichzeitige Betätigung von mindestens vier Tasten bzw. Einwurf-/Einlesepositionen vorzunehmen (was mindestens vier Hände- bzw. Fingeraktionen hieße) oder die Schaffung eines Tastensatzes, dessen Mächtigkeit gleich der des kartesischen Produktes aller Mengen ist (was eine Einzeltastenbetätigung erlauben würde). Wie wir alle wissen, wird das Problem auf eine andere Weise gelöst: Das Auswählen und Betätigen erfolgt an solchen Warenautomaten der Reihe nach, d.h. als neue Dimension kommt eine zeitliche Folge der Alphabetzeichen hinzu. Dann und nur dann, wenn die richtige Folge auftrat, wird die angestrebte Ausgangsgröße gebildet, z.B. also die Ware ausgegeben. Im Folgenden sollen diese Überlegungen verallgemeinert werden. Es seien E = { E1, E2, ... , Eg, ..., Eu } ein endliches Eingabealphabet und A = { A1, A2, ..., Ah, ..., Av } ein endliches Ausgabealphabet. Das neue Konzept lässt sich dann beschreiben als eine Einheit AT, bei der eine zeitliche Folge von Elementen des Eingabealphabets FE in eine zeitliche Folge von Elementen des Ausgabealphabets FA abgebil-
det wird. FE
FA
AT
Damit die Elemente einer Folge in ihrer zeitlichen Reihung unterscheidbar werden, muss ein Ordnungsindex Q eingeführt werden. FE = EgQEgQ-1EgQ-2 ...
FA = AhQAhQ-1AhQ-2 ...
(Eg und Ah sind jeweils beliebige Elemente des Ein- bzw. Ausgabealphabets; ältere Elemente stehen rechts von jüngeren) Während beim Schaltnetz stets galt AhQ= f (EgQ) muss für die neue Einheit offensichtlich gelten AhQ = f ( EgQEgQ-1,EgQ-2, ...EgQ-D) wenn insgesamt D+1 Elemente des Eingabealphabets beobachtet werden müssen, um ein bestimmtes Element des Ausgabealphabets ausgeben zu können. Man nennt D die zeitliche Tiefe der Verarbeitung ( D> 1; D= 0 wäre der Sonderfall des Schaltnetzes).
7.6 Automaten, Schaltwerke, Binärspeicher
191
Die Einheit AT muss also Möglichkeiten aufweisen, D Eingabeelemente aufzubewahren, um zusammen mit dem momentan anliegenden Element EgQ die Bildung der Ausgabe bewerkstelligen zu können. Man erhält also folgendes Prinzip:
EgQ-1 EgQ
EgQ-2
Q
Ah
...
f
EgQ-D
AT
Bild 7.37: Speicherung der Vorgeschichte
Folgt in der Eingabefolge ein neues Element, so erhält man statt der Folge der Länge D+1 eine solche der Länge D+2. Da aber nur D Elemente in AT aufbewahrt Q-D werden können, muss das älteste Element Eg entfallen. Normiert man anschließend die Ordnungsindizes so, dass das jüngste Element von FE wieder Q Eg wird, so erhält man ein Funktionsargument in der ursprünglichen Form: Q
Q:
Eg Q+1
Q+1:
Eg
Q+1:
Eg
Q+1Q:
Q+1
Q
Eg
Q
Eg
Q
Eg
Q-1
Eg
Q-1
Eg
Q-1
Eg
Q-1
Eg
Q-2
Eg
Q-2
Eg
Q-2
Eg
Q-2
Eg
Q-D+1
...
Eg
...
Eg
...
Eg
...
Eg
Q-D+1 Q-D+1
Q-D+1
Q-D
Eg
Q-D
Eg
Q-D
Eg
Q-D
Eg
reduziert normiert
Aus dem Schema erkennt man, dass beim Hinzukommen eines neuen Elementes das älteste Element verloren geht und alle anderen auf den Platz des rechtsstehenden (nächstälteren) Elementes gelangen. Die Aufbewahrung von D Elementen kann unter Umständen (je nach Mächtigkeit von E und dem Wert von D ) recht aufwendig und redundant werden. Es kann Q-1 Q-D daher (in der Regel) sinnvoll sein, die Folge E g E g auf ein neues Alphabet S = { S1, ..., Sk, ... Sw } geringerer Mächtigkeit abzubilden: Q-1
Q-D
(E g E g oS
mit
¨E ¨D! ¨S ¨
192
7 Bausteine der Digitaltechnik
Man nennt das Element Sk S Zustand der Einheit AT. Um den Bezug auf den momentan gültigen Wert des Ordnungsindexes herzustellen, weist man dem Zustand denselben Index zu. Damit erhält man Q AhQ= O( EQ g , Sk)
und nennt Odie Ausgabefunktion von AT. Kommt ein neues Eingabeelement hinzu, so muss auf der Grundlage des bisherigen Zustandes (der ja die älteren Elemente von E repräsentiert) das neue EQ zukünftig in einem neuen Zustand, dem Folgezustand, mit berücksichtigt werden. Es ist also Q SkQ+1 = G( EQ g , Sk)
Man nennt Gdie Überführungsfunktion. Die Einheit AT kann man also kennzeichnen durch ein Quintupel AT = ( E, A, S, G, O ) mit drei endlichen Mengen und zwei Abbildungen zwischen diesen Mengen. Man nennt ein solches abstraktes Gebilde einen (endlichen) Automaten. Ein Automat lässt sich daher grundsätzlich durch folgende Struktur darstellen:
O
EgQ
Q Ah
G
Q Sk
Speicher
Q Sk
Bild 7.38: Rekursive Struktur des Automaten
Man kommt also zu einer rekursiven Anordnung für die Bestimmung des neuen Zustandes. Eine als Speicher bezeichnete Einheit nimmt den momentanen Zustand SQ auf und hält ihn fest. Beim Anlegen eines neuen Eingabelementes muss der Speicher SQ+1 übernehmen und den Funktionen G und O als Argument zur Verfügung stellen. Offensichtlich muss dabei der Speicherinhalt zum richtigen Zeitpunkt geändert werden. In der Literatur sind für Automaten gewisse Typklassen eingeführt worden. Im Zusammenhang mit Digitalschaltungen sind dabei Automaten mit den Typmerkmalen endlich, diskret und deterministisch wichtig.
7.6 Automaten, Schaltwerke, Binärspeicher
193
Bezüglich der Ausgabefunktion und ihrer Abhängigkeit von EQ und SQ haben drei Fälle einen eigenen Namen erhalten. Es sind der sogenannte Q Mealy-Automat mit AhQ = O( EQ g , Sk) als allgemeinstem Fall [MEA55]:
O
EgQ
Q
G
SQk
Speicher
Ah Q+1
Sk
Bild 7.39: Struktur eines Mealy-Automaten Moore-Automat mit AhQ = O (SQk ) als dem Spezialfall, bei dem die Ausgabe allein vom Zustand abhängt [MOO56]:
O
EgQ
Q
G
SQk
Speicher
Ah Q+1
Sk
Bild 7.40: Struktur eines Moore-Automaten Medwedew-Automat mit AhQ { SQk als dem Spezialfall, bei dem als Ausgabe der Zustand selbst dient [GLU63]:
EgQ
Q
G
SQk
Speicher
Ah Q+1
Sk
Bild 7.41: Struktur eines Medwedew-Automaten
194
7 Bausteine der Digitaltechnik
Zur Festlegung des Verhaltens eines Automaten haben sich vor allem zwei Methoden herausgebildet, der Automatengraph und die Automatentafel. Automatengraph: Die Zustände werden in die Knoten, die Zustandsübergänge in die sie verbindenden, gerichteten Kanten abgebildet. Der Graph ist mit Kantenund beim Moore- wie Medwedew-Automaten auch mit Knotenattributen versehen, die sich auf die Eingabe- bzw. Ausgabeelemente beziehen. Beispiel: E = { E1, E2 } , A = { A1, A2, A3 } , S = { S1, S2, S3, S4 } GundOsiehe Graph. Mealy
Moore
allgemein:
allgemein: Q
Q
Eg / Ah
Q Sk
Q
Q
Q+1 Sk
Sk / Ah
Beispiel: S3
Q+1
E2/A2
E1
E2/A3
E2
E1,E2
E1
E1/A1 E1/A2
S3/A2
S1/A1
E1/A1
E1/A2
S4
S2/A1 E2
E2/A1
Q+1
Sk / Ah
Beispiel:
S1
S2
Q
Eg
E1,E2
S4/A3
E2/A3
Bild 7.42: Graph eines Mealy- bzw. Moore-Automaten Automatentafel: Sie entsteht durch Bilden des kartesischen Produktes aus Eingabe- und Zustandsmenge. An den Kreuzungsstellen werden beim Mealy-Automaten der jeweilige Folgezustand und die Ausgabe, beim Moore-Automaten nur der Folgezustand eingetragen; bei diesem wird die Ausgabe zweckmäßigerweise in einer weiteren Spalte notiert.
7.6 Automaten, Schaltwerke, Binärspeicher
195
Allgemein haben Automatentafeln für Moore- bzw. Mealy-Automaten folgendes Aussehen: Mealy Moore SQ+1/AQ SQ ...
E1Q
SkQ
...
SQ+1 EnQ
... ... SkQ+1/AhQ
...
...
...
SQ ...
E1Q
SkQ
...
EnQ
AQ
...
AhQ
... ... SkQ+1
...
...
Tabelle 7.4: Tafel eines Mealy- bzw. Moore-Automaten
Folgendes Beispiel zeigt die Tafeln für die gleichen Automaten, die zuvor durch die Automatengraphen dargestellt wurden: SQ+1/AQ SQ
SQ+1 E1
E2
S4/ A2
S4
S2 S4 S2
S2
S3 S4 S2
S2 S4 S2
E2
S1
S2 / A2
S 2 S3 S4
S3 S4 S2
/ / /
A1 A1 A2
AQQ A
SQ
E1
/ / /
S1
A1 A3 A3
S2
S3
S4
A1 A1
A2
A3
Tabelle 7.5: Beispiel einer Tafel für einen Mealy- bzw. Moore-Automaten Schaltwerke:
Die technische Realisierung eines endlichen, diskreten und deterministischen Automaten durch binäre physikalische Größen nennt man Schaltwerk. Entsprechend der Typunterscheidung bei Automaten kennt man Mealy-, Moore- und Medwedew-Schaltwerke. Beim Übergang vom Automaten zum Schaltwerk müssen die Automatenelemente eineindeutig in binäre Größen umgesetzt werden. Im einzelnen bedeutet dies: E A
l l
{ Xj } { Yl }
mit
¨E ¨ d 2 n
bei
X = ( xn, ..., x1 )
mit
2m
bei
Y = ( ym, ..., y1 ) .
¨A ¨ d
Dieser Vorgang ist mit den Überlegungen bei Schaltnetzen vergleichbar. Neu ist eine dritte Zuordnung, bei der die Zustände Sk der Menge S eineindeutig in die
196
7 Bausteine der Digitaltechnik
Menge der Belegungen eines weiteren Binärvektors, des Zustandsvektors Q abgebildet werden müssen. S
l
{ Qk }
mit
¨S ¨ d 2 r
bei
Q = ( qr, ..., q1 ) .
Man nennt diesen Vorgang Zustandskodierung. G und O können in Schaltnetze abgebildet werden. Zur formalen Darstellung der Spezifikation von Schaltwerken könnten einfach Automatengraph als Schaltwerksgraph und Automatentafel als Schaltwerkstafel (oder -tabelle) übernommen werden, indem die Automatenelemente durch ihre Binärrepräsentationen ersetzt werden. Für technisch sinnvolle Anwendung ist diese Darstellungsweise jedoch nicht effizient genug, so dass modifizierte Darstellungen nötig werden. Darauf soll aber erst später eingegangen werden. Bei der Einführung des Zustandsbegriffs und der rekursiven Automatenstruktur war lediglich gefordert worden, dass die Indizierung (mit Q) eine Ordnung sicherstellt. Bei der Umsetzung in ein Schaltwerk ist dieser Aspekt jedoch technisch zu lösen und zu überlegen, wie technische Komponenten diese Ordnung sicherstellen können. Dazu ein Gedankenexperiment: Wir greifen den Zweig mit Zustandsspeicher, Überführungsfunktion und der Rückführung heraus, unter der Annahme einer konstanten Eingabe. Bei der Umsetzung in technische Komponenten werden i.Allg. Transistoren die Grundlage der Realisierung bilden, so dass die Schaltung auch verstärkende Elemente enthält. X = konstant
G
SQk
SQ+1 k
Speicher
Bild 7.43: Prinzip der Rückführung zur Bildung der Rekursion
Wegen der geschlossenen Rückführung kann man die Anordnung mit einem Akustikbeispiel vergleichen, bei dem Mikrofon und Lautsprecher sowohl über einen Verstärker als auch über den Luftschall gekoppelt sein sollen. Wie man aus Erfahrung weiß, kann eine solche Anordnung in einen unkontrollierten Zustand kommen: Es pfeift. Ein Sollbetrieb der Anordnung ist dann nicht mehr möglich.
Bild 7.44: Elektroakustische Analogie
7.6 Automaten, Schaltwerke, Binärspeicher
197
Aus diesem Beispiel kann man schließen, dass eine Transistoranordnung für ein rückgekoppeltes Schaltwerk ebenfalls in unzulässige Zustände gelangen kann, die die korrekte Funktion unmöglich machen. Man muss daher bei dieser Anordnung beim Entwurf Vorkehrungen gegen dieses Fehlverhalten treffen. Schaltwerke, bei denen Rückführungen direkt wirksam werden, heißen asynchron. Sie sind schwierig zu entwerfen und zu betreiben und werden daher im Allgemeinen nur für spezielle Anwendungen vorgesehen. Wegen der Problematik asynchroner Schaltwerke sieht man daher Maßnahmen vor, welche die Schwierigkeiten der unmittelbar wirksamen Rückkopplung umgehen, indem sie zu keinem Zeitpunkt eine geschlossene Rückkopplung ermöglichen. Das Prinzip besteht in einer Auftrennung und partiellen Weiterleitung des Zustands bzw. Folgezustands. Dazu wird der Zustandsspeicher in zwei Teilspeicher zerlegt, die abwechselnd aktiviert werden. Man führt ein zusätzliches informationsfreies Binärsignal ein, den sogenannten Takt c, der die Ausbreitung in der Rückführung steuert. Slave
S
Q
Teilspeicher 2
Master
T o r 2
Teilspeicher 1
T o r 1
S
Q+1
Takt c
Bild 7.45: Auftrennen des Zustandsspeichers
Ist c = 0, so wird SQ+1 über Tor 1 in den Teilspeicher 1 übernommen. Wird c = 1, so sperrt Tor 1, während der Inhalt des Teilspeichers 1 über Tor 2 in den Teilspeicher 2 übernommen und damit als SQ zur Verfügung gestellt wird. Das sich neu über G bildende SQ+1 vor Tor 1 wird angehalten. Mit c = 0 wiederholt sich dieser Ablauf, der sicherstellt, dass entweder Tor 1 oder Tor 2, aber nie beide gleichzeitig geöffnet sind. Schaltwerke mit solchen taktgesteuerten Speichern heißen getaktet betrieben. Sind die Wirkungen des Taktes in einer konkreten Schaltung an jedem Schaltungsteil gleichzeitig wirksam, so heißen solche Schaltwerke synchron. Für die weiteren Betrachtungen werden nahezu ausschließlich synchrone bzw. getaktete Schaltwerke vorausgesetzt, da sie einfacher und sicherer zu entwerfen sind. (Hinweis: Der Takt darf nicht mit anderen Binärvariablen logisch verknüpft werden, sondern dient ausschließlich der zeitlichen Ordnung!) Mit der Einführung des Taktes wirken sich Änderungen der Eingabe höchstens unmittelbar auf die Ausgabe aus (Mealy-Typ), während Zustandsübergänge ausschließlich vom Takt bestimmt werden. Die Zählung des Indexes Q muss somit aus dem Taktsignalverlauf abgeleitet werden, was nicht unproblematisch ist.
198
7 Bausteine der Digitaltechnik
Die Einführung eines (nicht notwendigerweise periodischen) Taktes zur Steuerung des Zustandsübergangsverlaufs muss mit einem gravierenden Nachteil erkauft werden. Der Zustandsübergang (und damit die Indizierung der Zustände) hängt zwar vom Takt ab, setzt aber voraus, dass der als SQ+1 anliegende Zustand für die Zeitdauer der Öffnung von Tor 1 stabil ist. Andererseits wird er aber gemäß G(XQ, SQ) gebildet, was voraussetzt, dass sowohl XQ als auch SQ für die genannte Zeitdauer konstant sind. Für SQ kann das gewährleistet werden, nicht aber für XQ, das sich als äußere Größe ja unabhängig vom Taktverlauf ändern kann. An ein synchron betriebenes Schaltwerk müssen daher folgende Anforderungen gestellt werden, um eine korrekte Funktion sicherzustellen: 1. Während der Öffnungszeit von Tor 1 darf sich XQ nicht ändern. 2. Änderungen am Eingang des Schaltwerks dürfen nicht schneller sein, als es der Taktverlauf zulässt, sonst gehen unter Umständen Eingabewerte verloren. Die Erfüllung dieser Anforderungen ist meist mit Zusatzaufwand verbunden. Zur Präzisierung der Einwirkung des Taktes auf die Freigabe bzw. Veranlassung der Zustandsübergänge haben sich mehrere Steuerungsarten ergeben, die sich darin unterscheiden, ob der Wert des Taktsignals oder eine Wertänderung den wirksamen Anteil darstellen. Im Zeitdiagramm in Bild 7.46 sind der Taktverlauf, die Änderungszeitpunkte für die Einführung des nächsthöheren Indexwertes und die Intervalle für die Gültigkeit dieses Wertes eingetragen. Rechts davon sind jeweils die Normsymbole dargestellt, welche diesen Sachverhalt der Indexfortzählung andeuten sollen. c 1 0 tQ
Q
tQ+1
c
Schaltwerk
c
Schaltwerk
c
Schaltwerk
c
Schaltwerk
t Q+1
...
1 0 tQ+1 Q
tQ Q-1
...
Q+1
t ...
1 0 tQ+1 Q
tQ Q-1
...
Q+1
t ...
1 0 tQ
Q
tQ+1
t Q+1
...
Bild 7.46: Wirkungsprinzipien des Taktes und deren symbolische Darstellung
7.6 Automaten, Schaltwerke, Binärspeicher
199
Binärspeicher (Flipflops)
Die Darstellung von Informationen durch Binärsignale kann sich nicht allein auf Eingabe- und Ausgabegrößen beschränken, sondern muss bei Schaltwerken auch den Zustand erfassen. Auch er soll als Binärvektor verstanden werden, wenn mehr als zwei Zustände abzubilden sind. Ist |S| die Zahl der Zustände eines Automaten, so bestimmt sich die Anzahl r der Binärstellen des Zustandsvektors Q zu r=
ld|S|
mit
Q = (qr ,..., qk ,..., q1).
Man nennt eine Komponente qk des Zustandsvektors Zustandsvariable. Die rekursive Struktur des Schaltwerks, wie sie durch die Einführung der Funktion G zur Berechnung des Folgezustandes gegeben ist, macht es nötig, den Wert der Zustandsvariablen für eine "Zeiteinheit" zu speichern, unabhängig, ob diese Zählung von einem Taktsignal abgeleitet wird oder nicht. Zur Realisierung dieser Schaltwerksstruktur muss daher ein Speicher mit maximal 2r unterschiedlichen Werten zur Verfügung stehen, der mit Rücksicht auf die Vektorinterpretation zweckmäßigerweise aus r einzelnen Speicherkomponenten besteht. Man nennt eine solche, genau zwei Werte (nämlich 0 und 1) speichernde Komponente Binärspeicher. Im allgemeinen Sprachgebrauch hat sich dabei meist das englische Nonsens-Wort Flipflop eingebürgert. Ein Binärspeicher muss einige grundsätzliche Funktionen realisieren, damit er den vorgesehenen Verwendungszweck erfüllen kann: - Es muss wahlweise eine 0 oder 1 eingespeichert werden können (Schreiben einer 0 oder einer 1); - Es muss der Wert im Speicher (0 oder 1) extern zur Verfügung stehen (Lesen einer 0 oder einer 1); - Beim Vorhandensein eines Taktes muss die Rekursion Q+1 Q vom Binärspeicher unter Einwirkung des Taktes verwirklicht werden. Es gibt verschiedene Varianten für Binärspeicher, die diese Forderungen berücksichtigen. Sie unterscheiden sich hauptsächlich durch die Weise, wie das Schreiben und das Auslösen der Rekursion erfolgen. Zunächst werde ein Binärspeichertyp betrachtet, der kein Taktsignal verwendet.
200
7 Bausteine der Digitaltechnik
Dann werden mindestens drei Binärsignale nötig, wobei zwei Fälle zu unterscheiden sind: Fall 1 RS-FlipFlop
Fall 2 D-FlipFlop
Lesesignal = Zustandswert
Lesesignal = Zustandswert
qk {0,1}
qk {0,1}
Schreiben einer 0, Rücksetzen:
Datensignal = Zustandswert neu:
R {0,1}
D {0,1}
0 = inaktiv 1 = Schreiben 0
Schreiben einer 1, Setzen:
Schreiben des Wertes von D:
S {0,1}
W {0,1}
0 = inaktiv 1 = Schreiben 1
0 = inaktiv 1 = Schreiben
Das gleichzeitige Schreiben einer 0 und einer 1 beim RS-Flipflop ist unzulässig, es gilt daher R&S = 0. Beim Speicherinhalt muss man sich natürlich darüber im Klaren sein, dass ein vorhandener Wert (alter Wert) durch einen neuen, einzuspeichernden Wert überschrieben wird, also verloren geht. Man muss daher bei den Werten ein zeitliches Nacheinander beachten. Der alte Wert wird in die Bildung des neuen Wertes einzubeziehen sein, damit ein korrekter Wertübergang möglich ist. Legt man die Kenntnisse über Schaltnetze zugrunde, so ergeben sich die folgenden Funktionstabellen: qalt k
R
S
qneu k
qalt k
D
W
qneu k
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 1 0 1 1 0 -
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 0 0 1 1 0 1 1
Tabelle 7.6: Berechnung des neuen Zustandes bei einem RS- bzw. D-Flipflop
Da die Binärspeicher in die Zeitindizierung des Schaltwerks mit einbezogen werden müssen, lassen sich die Indizes Qund Q+1 entsprechend auf die Schaltnetzgrößen übertragen: Q qalt k = qk ,
Q Q Q Q qneu = qQ+1 k k , R , S , D , W .
7.6 Automaten, Schaltwerke, Binärspeicher
201
Für die Überführungsfunktion zur Bildung von qQ+1 ergibt sich für die beiden Fälle: k sQ 0 RQ
1
wQ 1
1 DQ
0
0
0
0
0
0
1
1
qQk Bild 7.47: Überführungsfunktionen von RS- bzw. D-Flipflop
qQ+1 = SQ V (qQk & RQ k
1 1 qQk
qQ+1 = (DQ & WQ V (qQk & WQ k
mit der Nebenbedingung RQ & SQ = 0 Man nennt diese Ausdrücke charakteristische Gleichung des Binärspeichers. Auch für Binärspeicher gibt es abstrakte Symbole, die für die charakteristische Gleichung und damit die Speicherfunktion stehen (siehe Bild 7.55): Im Zusammenhang mit Schaltwerken stellt sich die Frage, wie die Eingangsgrößen RQ und SQ bzw. DQ und WQ gewählt werden müssen, damit ein bestimmter Wertübergang qQk o qQ+1 k erreicht wird. Dazu definiert man je zwei neue Schaltfunktionen, die sog. Ansteuerfunktionen.
Q+1 qQ k qk
RQ SQ
0 0 1 1
0 1 0
0 1 0 1
0 1 0 -
Q+1 qQ k qk
0 0 1 1
DQ WQ
0 1 0 1
1 0 -
0 1 1 0
Tabelle 7.7: Ansteuerfunktionen von RS- bzw. D-Flipflop
Daraus folgt: RQ = q Q+1 k
SQ = qQ+1 k
DQ= qQ+1 k
WQ = qQ+1 {/ qQk k
oder: DQ= q Qk Neben der formalen Behandlung des Binärspeicherverhaltens ist die Realisierung solcher Elemente von Bedeutung. Für das RS-Flipflop soll der Weg erläutert werden. Dabei dient die charakteristische Gleichung in KMF als Strukturausdruck eines Schaltnetzes; geht man von der dazugehörigen NOR-transformierten Form der Gleichung aus, so erhält man einen isomorphen Strukturausdruck mit nur einem Operatortyp:
202
7 Bausteine der Digitaltechnik
RQ SQ qQk
t1
+1 qQk
t1 1. Stufe
2. Stufe
Bild 7.48: Schaltnetz zur Bildung von qkQ+1
Wendet man nun die Grundidee des rekursiven Schaltwerks auch auf diese Struktur an, so macht die Rekursion qkQ+1 o qkQ wiederum einen Speicher in der Rückführung nötig, der hier aber sehr einfach sein kann. Man benötigt dazu einen Baustein mit folgenden Eigenschaften: W
x(t)
y(t)
Bild 7.49: „Schaltnetz Verzögerung“
y(t) sei der Binärwert, der zum Zeitpunkt t am Ausgang beobachtet wird; x(t) sei der Binärwert, der zum Zeitpunkt t dem Eingang angeboten wird. Der Zusammenhang zwischen Ein- und Ausgang lässt sich angeben durch y(t) = x(t-W) mit W>0 und W konstant. Da somit der Wert am Ausgang lediglich den um W zeitlich verspäteten Wert am Eingang wiedergibt, spricht man von einem Verzögerungsglied mit der Laufzeit Wwas wir bereits als reine Totzeit kennengelernt hatten. Dieses fügt man in die Rückführung ein und kann somit den alten und den neuen Zustand zeitlich auseinanderhalten. RQ SQ
qQk
t1 +1 qQk
t1 W
Bild 7.50: Schaltnetz mit eingefügter Verzögerung
Nun ist aus Messungen bekannt, dass jede reale Schaltung und jede Leitung eine Verzögerung W´ > 0 aufweist, so dass zu vermuten ist, dass die extra eingeführte Laufzeit Wdurch die sowieso vorhandenen Laufzeiten W' ersetzt werden kann, was
7.6 Automaten, Schaltwerke, Binärspeicher
203
tatsächlich zutrifft. Damit entfällt der Zusatzbaustein, und man erhält nach Umzeichnen eine typische Struktur aus zwei Gattern, das sog. Basisflipflop. RQ
t1
Q+1
qk
S R
t1
SQ
q q
FF
Q+1
qk
Bild 7.51: Basisflipflop mit NOR-Gliedern und sein Symbol
Man kann zeigen, dass der Ausgang des NOR-Glieds der 1. Stufe das Signal Q+1 q Q+1 k , also die Negation von qk , führt, solange das RS-Flipflop gemäß seiner Spezifikation betrieben wird (R & S = 0 !). Aus diesem Basisflipflop lassen sich durch einige zusätzliche Gatter weitere Flipfloptypen ableiten, welche z.B. getaktet sind oder andere Verknüpfungen der Steuergrößen realisieren. Greift man die Struktur der Taktung auf, wie sie zur Vermeidung unmittelbarer Rückführungen eingeführt worden ist, so lässt sich unter Verwendung zweier Basisflipflops und einiger weiterer Gatter eine entsprechende Realisierung angeben. Master
SQ
&
RQ
&
S R
Slave
& FF &
S R
qQ+1
FF
qQ+1
1 c
Bild 7.52: RS-Flipflop in Master-Slave-Form
Bei einer solchen Flipflopstruktur kann solange in das Master-Flipflop eingeschrieben werden, wie c = 0 ist. Da diese Realisierung aufwendig und vom zeitlichen Verhalten der langen Toröffnungszeiten her etwas problematisch ist, suchte man Lösungen mit reduziertem Aufwand. Dazu nutzt man die Tatsache aus, dass jede reale Schaltung eine Laufzeit größer Null hat; das gilt bei Schaltwerken insbesondere auch für das Schaltnetz, welches die Überführungsfunktion G realisiert. Das dann mögliche Vorgehen lässt sich wiederum mit Hilfe des Akustikbeispiels verdeutlichen. Hält man ein genügend großes und steifes Blatt vor das Mikrofon, so hört das Pfeifen auf. Zieht man das Blatt nur für kurze Zeit weg und bringt es danach wieder vor das Mikrofon, so baut sich wegen der Trägheit der Schaltung die akustische Rückkopplung nicht auf.
204
7 Bausteine der Digitaltechnik
Übertragen auf die Flipflopstruktur heißt das, Tor 1 nur kurzzeitig zu öffnen und das Slave-Flipflop mit seiner Speicherfähigkeit durch die Laufzeit von G zu ersetzen. Die Öffnungszeit von Tor 1 muss dabei so kurz sein, dass der eingeschriebene Wert nicht über die Rückführung bereits wieder überschrieben wird. Daher kann der Takt nicht mehr direkt zu Torsteuerung eingesetzt werden, sondern nur ein daraus abgeleiteter genügend kurzer Impuls, der zweckmäßigerweise mit der Wertänderung des Taktes gekoppelt ist. Ein solcher Impuls lässt sich mit den bisher bekannten Baugruppen auf einfache Weise erzeugen: c(t) 1 0
c(t)
c(t)
W
1
c(t-W) &
t
c(t) 1 0 c´(t)
t
c(t-W) 1 0
t
c´(t) 1 0
t
Bild 7.53: Schaltnetz zur Impulserzeugung und Werteverläufe der Schaltnetzknoten
Diese Schaltung erzeugt beim 0-1-Übergang des Taktes c einen kurzen Impuls, dessen Dauer vom Wert W abhängt und damit über die Laufzeit im oberen Zweig der Schaltung eingestellt werden kann. Somit erhält man eine weitere Flipflopstruktur: SQ
&
RQ
c
& 1
W
S R
qQ+1 FF
qQ+1
S c R
&
Bild 7.54: Taktgesteuertes RS-Flipflop und sein Symbol
1S C1 1R RS-FF
q q
7.6 Automaten, Schaltwerke, Binärspeicher
205
Im folgenden Übersichtsschema sind einige wichtige Flipflop-Typen mit ihren Kennzeichen enthalten, die auf diesem Taktsteuer-Prinzip beruhen.
S
q
R
q
1S C1 1R
q
1D C1
qQ+1
Q
=SV(q &R)
q
q q
1J C1 1K
qQ 0 0 1 1
qQ+1 0 1 0 1
R 0 1 0
qQ 0 0 1 1
qQ+1 0 1 0 1
D 0 1 0 1
qQ 0 0 1 1
qQ+1 0 1 0 1
T 0 1 1 0
qQ 0 0 1 1
qQ+1 0 1 0 1
K 1 0
S 0 1 0 -
q
qQ+1 = D
q
1T C1
Ansteuerfunktion
Charakteristische Gleichung
Symbol
q q
qQ+1 = ( T & qQ ) V ( T & qQ )
qQ+1 = ( K & qQ ) V ( J & qQ )
J 0 1 -
Bild 7.55: Symbol, charakteristische Gleichung und Ansteuerfunktionstabelle verschiedener Flipfloptypen
Nachdem das Flipflop als elementares Schaltwerk und damit als Realisierung eines Automaten interpretiert wurde, ist es auch möglich, dafür die bei den Automaten eingeführten Mittel zur Verhaltensbeschreibung einzusetzen. Da als Ausgabe der Zustand selbst dienen kann, ist der Automat vom Typ Medwedew. Benennt man zum Beispiel für ein RS-Flipflop die erlaubten Eingabeelemente in Anlehnung an die Belegung für (R,S) mit E = { 00, 01, 10 } und die Zustände entsprechend der Ausgabe mit S = { 0, 1 } dann kann man aus dem Automatengraphen bzw. der Automatentafel das Verhalten des RS-Flipflops direkt ablesen:
206
7 Bausteine der Digitaltechnik
Automatengraph:
(allgemein)
01 00 10
1
0
Eg
00 01
Q
qk
Q+1
qk
10
Automatentafel:
SQ SQ
E 00
01
10
0
0
1
0
1
1
1
0
Bild 7.56: Darstellung des Flipflopverhaltens als Automatengraph bzw. -tafel Ablaufdiagramm und Ablauftabelle
Die Herleitung der Schaltwerke aus dem Automatenbegriff und die entsprechende Übernahme der Notationen ist aus der Sicht praktischer Aufgabenstellungen teilweise unbefriedigend, da die dort nötigen großen Variablenzahlen kompaktere Formen nötig machen. Einen Ansatz dazu bildet folgende Beobachtung: Die Komponenten des Eingabevektors sind nicht in jedem Zustand in gleicher Weise von Einfluss auf den Übergang zum Folgezustand, vielmehr ist das nur für einige Komponenten der Fall, die man als für diesen Zustand relevant bezeichnet und für die Spezifikation verwendet. Damit ist die Schaltwerkstafel und der Schaltwerksgraph als Beschreibungsmittel nicht mehr verwendbar, und man führt eine neue Art der Notation ein, das Ablaufdiagramm und die Ablauftabelle als Entsprechung. Die Einführung von in einem bestimmten Zustand relevanten Eingabevariablen, die daher auch Entscheidungsvariablen heißen, macht es notwendig, jedem Zustand k einen Teilvektor XR mit den relevanten Variablen zuzuordnen und die Verzweigung in die Folgezustände allein von diesen abhängig zu machen. Das macht eine geänderte Notation mit eigenen Symbolen notwendig. Zunächst werden daher die Diagramm-Symbole und ihre Bedeutung eingeführt.
7.6 Automaten, Schaltwerke, Binärspeicher
207
1) Zustandsübergang: Übergang in den Zustand k, ausgelöst durch das Taktsignal
k
2) Abfrage (Verzweigung)
XR XRv
...
XR2
XR1
Abfrage der im aktuellen Zustand k relevanten Eingangsvariablen auf ihre Werte XR = (xRv, ..., xR2, xR1)
3) Ausgabe
Y
Wert des Ausgangsvektors Y = (ym, ..., y1) im aktuellen Zustand
4) Markierung des Anfangszustands
A
k
Bild 7.57: Symbole des Ablaufdiagramms
Mealy- und Moore-Schaltwerke werden entsprechend der Abhängigkeiten YQ = O(QQ,XQ) bzw. YQ = O(QQ) durch die Reihenfolge der Symbole für Verzweigung und Ausgabe berücksichtigt. Man nennt das Tripel aus Zustandsübergang, Ausgabe und Verzweigung, das jeweils zu einem Wert des Index Q gehört, Ablaufschritt.
208
7 Bausteine der Digitaltechnik
Mealy-Ablaufschritt
Moore-Ablaufschritt
...
...
Bild 7.58: Definition des Ablaufschrittes
Die Zusammenstellung der Symbole zu einem Ablaufschritt für die beiden wesentlichen Schaltwerkstypen zeigt Bild 7.58. Bei komplexen Schaltwerksbeschreibungen, einer größeren Zustandszahl sowie für die rechnergestützte Konstruktion von Schaltwerken sind Ablaufdiagramme entweder zu unübersichtlich oder auch zu fehleranfällig bei der Erstellung. Man greift dann besser zu einer tabellenorientierten Darstellung. Wegen der Beschränkung auf die jeweils relevanten Variablen entsteht im Grunde eine Liste aus den Anteilen für jeweils einen aktuell betrachteten Zustand. Die Ablauftabelle setzt sich daher aus Teiltabellen für jeden Ablaufschritt zusammen. Diese bestehen aus je vier Spalten, eine für den momentanen Zustand, eine für die Eingabeblöcke der jeweils relevanten Eingabevariablen, eine für den Folgezustand und eine für die Ausgabeblöcke; dabei sind die Zustände i.Allg. nicht kodiert.
QQ
XR(k)
QQ+1
Y(k)
k
Tabelle 7.8: Schema für die Teiltabelle des Zustands k
7.6 Automaten, Schaltwerke, Binärspeicher
QQ x6 3
QQ+1
XR(3)
0 0 0 1 1 1
x4
x3
x1
1 1 1 0 0 1
0 0 1 0 1 1
1 0 1 1 1 0
I1 I2 I2 I2 I3 I3 I4
209
Y(3)
Y1
I1, I2, I3, I4 seien Folgezustände zum Zustand 3 Y1 die Ausgabe gemäß Schaltwerkstyp (hier Moore)
Tabelle 7.9: Beispiel einer Teiltabelle für den Zustand 3 Entwurf von Schaltwerken
Mit Hilfe der eingeführten Komponenten, Strukturen und Notationen über Schaltwerke lässt sich ihr Entwurf formulieren und systematisieren. Der Schaltwerksentwurf gliedert sich in folgende Schritte: 1. Schritt:
Definition der Ein- und Ausgabevariablen.
2. Schritt:
Wahl des Schaltwerktyps und Erstellen des Ablaufdiagramms, bzw. der Ablauftabelle gemäß Aufgabenstellung.
3. Schritt:
Zustandskodierung.
4. Schritt:
Wahl des Flipflop-Typs und Aufstellen der Ansteuerfunktionen.
5. Schritt:
Entwurf des Schaltnetzes für die Überführungsfunktion auf der Basis der Ansteuerfunktionen.
6. Schritt:
Entwurf des Schaltnetzes für die Ausgabefunktion.
7. Schritt:
Eventuell Umformungen Strukturausdrücke.
8. Schritt:
Umsetzen in das Schaltbild des Schaltwerks.
der
logischen Ausdrücke in geeignete
Beispiel:
Verbale Aufgabenstellung: Eine Schaltung für einen sehr einfachen Anrufbeantworter soll zunächst ein Klingelzeichen des Telefons abwarten. Wenn bis zum Beginn des zweiten Klingelzeichens der Hörer nicht abgenommen wurde, soll der Anrufbeantworter eingeschaltet werden. Dieser spielt dann seine Mitteilung bis zum Ende ab, egal wie lange der Anrufer tatsächlich zuhört. Erst wenn das Band vollständig abge-
210
7 Bausteine der Digitaltechnik
spielt ist, wird der Anrufbeantworter wieder ausgeschaltet. Der Ausschaltvorgang beinhaltet ein automatisches Rückspulen des Bandes. 1. Schritt:
Eingabevariablen: Klingelzeichen: Klingelpause:
K=1 K=0
Timeout, d.h. Klingelpause dauert zu lange; Anrufer hat nach dem ersten Klingelzeichen aufgelegt: T=1 sonst: T=0 Bandende: sonst:
B=1 B=0
Ausgabevariablen: Anrufbeantworter ein: Anrufbeantworter aus:
2. Schritt: Schaltwerkstyp: Ablaufdiagramm:
A=1 A=0
Moore
A
1 A=0
0
K
1 2
4
A=0
1
A=1
K
B
0 3 A=0
01
00
K,T
1-
Bild 7.59: Ablaufdiagramm für das Beispiel
0
1
7.6 Automaten, Schaltwerke, Binärspeicher
211
3. Schritt: Für 4 Zustände werden 2 Zustandsvariable (q2 , q1) benötigt. Die Kodierung wird willkürlich, z.B. als sogenannte Zählerkodierung ausgeführt.
Zustand 1: Zustand 2: Zustand 3: Zustand 4:
q2
q1
0 0 1 1
0 1 0 1
4. Schritt:
QQ q2Q
QQ q1Q
Y A
q2Q
q1Q
0 0
0 1
0
1 0
0 1
0
1 1 0
0 1 0
0
1 0
1 0
1
XR (1):K 0
0
0 1 XR (2):K
0
1
0 1 XR (3):K,T
1
0
00 101 XR (4):B
1
1
0 1
Tabelle 7.10: Kodierte Ablauftabelle für das Beispiel
212
7 Bausteine der Digitaltechnik
Es sollen D-Flipflops verwendet werden (d.h. q2 =^ D2 und q1 =^ D1). 5. Schritt: Q
D2
q2 B
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
T Q
q1
K Q
D1
q2 B
B
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
T Q
q1
K
Bild 7.60: Symmetriediagramm für die Ansteuerfunktionen
Q
Q
Q
Q
Q
Q
Q
Q
D2 = q2 q1 K V q2 q1 T V q2 q1 K V q2 q1 B Q
Q
Q
Q
Q
D1 = q2 K V q2 q1 K V q2 q1 B Q
Q
6. Schritt: Aus der Ablauftabelle folgt sofort: A = q2 q1 7. Schritt: Wenn zum Beispiel ausschließlich Gatter mit 2 Eingängen zur Verfügung stehen, muss man eine entsprechende Umformung vornehmen: Q
Q
Q
Q
Q
Q
Q
D2 = [ q2 ( q1 K ) V q2 ( q1 T ) ] V q2 ( q1 K V q1 B ) Q
Q
Q
Q
D1 = q2 K V q2 ( q1 K V q1 B ) Q
Q
A = q2 q1
7.6 Automaten, Schaltwerke, Binärspeicher
213
8. Schritt:
Bild 7.61: Blockschema des Schaltwerkes
Bei den Schaltnetzen wurde darauf hingewiesen, dass für zweistufige Anordnungen die Möglichkeit besteht, die Netze in geeignete, programmierbare integrierte Schaltungen einzubetten. Auch für Schaltwerke kann dieser Weg beschritten werden, da integrierte Schaltungen vorhanden sind, die Flipflops und die notwendigen Rückführungen enthalten. Anhand des Bausteins AmPAL16R6 zeigt das Bild 7.62 eine solche Lösung für das Beispiel des Anrufbeantworters. (Schaltbild entnommen aus: AMD/MMI: PAL® Device Data Book) Da im Baustein Ausgänge nur negiert zur Verfügung stehen, muss A zuvor umgeformt werden: Q Q
A = q2 q1 = q2Q qQ1 = q2Q V qQ1
Die Funktionen für D2 und D1 können direkt aus Schritt 5 entnommen werden. Damit lässt sich das gesamte Schaltwerk in einen einzigen Baustein einbetten.
214
7 Bausteine der Digitaltechnik
C C
Eingänge (0-31)
1 1 3 5 7 0 2 4 6
&
"1" 0
&
1
&
3
&
4
&
6
&
7 1
1 &
Produktterme (0-63)
8
t1
&
9
&
10 11
&
12
&
13
&
14
&
D2
&
15
17
&
( )
18
t1
1D Q C1 Q
1
17
1
11
q2
& &
19
&
D11 D ( 12)
&
21
&
22
&
23
1
1
18
20
1D Q C1 Q
q2
1 16
BB
A A
1
&
5
KK
t1
&
2
TT
9 11 13 15 17 19 21 23 25 27 29 31 8 10 12 14 16 18 20 22 24 26 28 30
&
q1
1
1
q1
Bild 7.62: AmPAL16R6 Logic Diagram mit Einträgen zur Realisierung des Schaltwerkes (Ausschnitt)
7.7 Aufgaben
215
7.7 Aufgaben Aufgabe 7.1 Ein Schaltungsentwickler hat ein Schaltnetz zu entwerfen, das Stibitz-Codewörter in Aiken-Codewörter konvertiert (siehe Bild). Bei Pseudotetraden am Eingang bleibt dem Entwickler die Wahl der Ausgangsbelegung freigestellt. s3 s2
a3 a2 a1
s1 s0
a0
7.1.1 Konstruieren Sie die Funktionstabelle. Welches sind die Pseudotetraden des Stibitz-Codes? 7.1.2 Geben Sie die Disjunktive Minimalform (DMF) für die Funktionen a3 und a0 an (trivialer Lösungsweg!). 7.1.3 Füllen Sie ein Symmetriediagramm für die Funktion a2 aus. 7.1.4 Nennen Sie alle Primimplikate der Funktion a2. Welches sind die Kernimplikate? Aufgabe 7.2 Für ein Schaltwerk vom Mealy-Typ ergab sich folgende Ablauftabelle:
QQ q2Q
QQ
q1Q
Y
q2Q
q1Q
f
g
XR(0):x2,x1 0
1
0 0 0
0 0 0
1 0 0 0 1 XR(1):x1
1 0 0
1 1 0
0 0 1
0 0 -
0 0
1 1
1 0
0 1
1 0
1
1
0 1 1
0 1 0
1 1 0
0 0 1
0
0
0
0
XR(2):x2,x1 2
1 1 1
0 0 0
1
1
0 0 1 1 1 XR(3): -
3
J2
K2
J1
K1
216
7 Bausteine der Digitaltechnik
7.2.1 Ergänzen Sie die Ablauftabelle durch die Ansteuerfunktionen für JK-Flipflops. 7.2.2 Ermitteln Sie je eine disjunktive Minimalform der Ausgabefunktionen f und g mit Hilfe von Symmetriediagrammen. Aufgabe 7.3 Gegeben ist die im folgenden gezeigte Realisierung eines endlichen Automaten. Das Schaltwerk besitzt die Eingänge A und C (Takt) und die beiden Ausgänge B1 und B0. B0
B1
A
&
1D
&
q
1D
1
q
C1
C1
C 7.3.1 Wieviele Zustände kann der zugrundeliegende Automat maximal besitzen? 7.3.2 Geben Sie an, um welchen der drei bekannten Automatentypen es sich hier handelt. 7.3.3 Welchen Folgezustand (B1Q+1, B0Q+1) nimmt das Schaltwerk bei A = 0 ein? 7.3.4 Gegeben ist der im nächsten Bild dargestellte Verlauf der Ein- und Ausgangssignale C, A, B1 und B0. Zeichnen Sie den Verlauf der Ausgangssignale im Zeitintervall zwischen 8 und 16 ein. 1
C
0
1
A
0
1
B1
0 1 0
B0 8
10
12
14
16
t
7.7 Aufgaben
217
Aufgabe 7.4
Ein Tüftler hat sich folgende Stromsparmaßnahme ausgedacht: Er bringt am Türrahmen zwei Lichtschranken L1 und L2 an, und ersetzt den Lichtschalter durch ein Schaltwerk. Beim Betreten des Zimmers werden nacheinander die Lichtschranke L1, dann L1 und L2 und zuletzt nur L2 abgedunkelt. Beim Verlassen geschieht das Gleiche in umgekehrter Reihenfolge. Damit das Licht automatisch ein- und ausgeschaltet wird, wenn eine Person den Raum betritt, bzw. ihn verlässt, hat er das Ablaufdiagramm gemäß folgendem Bild entworfen: Eingangsvariablen: L1/L2 = 0 Lichtschranke L1/L2 frei L1/L2 = 1 Lichtschranke L1/L2 abgedunkelt Ausgangsvariable: B = 0 Beleuchtung aus B = 1 Beleuchtung an
1
0
00
10
1
A
4
B=0
B=1
L1
L2
1
1
2
5
B= -
B= -
L1,L2
L1,L2 11
11
3
6
B= -
B= -
L2
L1 0
0
0
01
00
1
7.4.1 Von welchem Typ ist das Schaltwerk? 7.4.2 Hat der Tüftler auch bedacht, dass jemand nur die Türschwelle betreten könnte und dann wieder umkehrt? Wie könnte eine mögliche Zustandsfolge aussehen, wenn (a) der Raum nur bis zur ersten Lichtschranke betreten wird, (b) die erste und zweite Lichtschranke abgedeckt sind, (c) der Raum genau bis hinter die erste Lichtschranke betreten und danach wieder verlassen wird?
218
7 Bausteine der Digitaltechnik
7.4.3 Erweitern Sie das Ablaufdiagramm auf möglichst einfache Weise, so dass alle Fälle der Aufgabe 7.4.2 korrekt abgearbeitet werden. Das gleiche Problem stellt sich auch beim "unvollständigen" Verlassen des Zimmers. Erweitern Sie das Ablaufdiagramm auch für diesen Fall. 7.4.4 Setzen Sie das ursprüngliche Ablaufdiagramm (ohne Erweiterungen) in eine Ablauftabelle um. Die Zustandscodierung ist bereits durchgeführt worden und ergab:
Zustand 1 2 3
Qn q3 q2 q1 0 1 0
0 0 0
1 1 0
Zustand 4 5 6
Qn q3 q2 q1 1 0 1
1 1 1
0 1 1
7.4.5 Die Realisierung soll mit getakteten RS-Flipflops geschehen. Tragen Sie die Ansteuerfunktionen in die Tabelle ein. 7.4.5 Durch viele Freistellen in der Ausgabe B erhält der Tüftler die sehr einfache Ausgabefunktion B = q3. Nun stellt er aber beim Betreten und Verlassen des Raumes jeweils ein kurzes Aufblitzen der Beleuchtung fest. Woher kommt dies? Geben Sie eine Lösung für B an, die das Problem vermeidet. 7.4.7 Nach Einbau der Schaltung ist die Stromrechnung höher als je zuvor, da auch tagsüber das Licht eingeschaltet wird. Der Bastler löst das Problem, indem er einen Dämmerungsschalter D (D = 0 hell, D = 1 dunkel) mit der Ausgangsvariablen B zu einer neuen Ausgangsvariablen B' UND-verknüpft. Welche grundsätzliche Änderung hat er damit an dem Schaltwerk vorgenommen?
Zum Weiterlesen: [DIG85]
Dittmann, J.; Gröger, H.-J.: Handbuch der anwenderorientierten Mikroelektronik. Essen: Vulkan, 1985
[ESC93]
Eschermann, B.: Funktionaler Entwurf digitaler Schaltungen. Berlin: Springer, 1993
[HIP81]
Hilberg, W.; Piloty, R.: Grundlagen elektronischer Digitalschaltungen. 2. Aufl., München: Oldenbourg, 1981
[FRI02]
Fricke, K.: Digitaltechnik. 3. Aufl., Braunschweig, Wiesbaden: Vieweg, 2002
8 Funktionseinheiten der Digitaltechnik Schaltglieder und Binärspeicher erlauben es, mit ihnen alle für die Digitaltechnik benötigten Baugruppen aufzubauen. In der Praxis haben sich jedoch für spezielle, häufig vorkommende Aufgaben eine Reihe von Standardbaugruppen herausgebildet, die im Folgenden kurz dargestellt werden sollen. Technische Varianten und Details werden dabei nicht im Einzelnen behandelt.
8.1 Spezielle Schaltnetze Addierer Zur Verarbeitung von Zahlen mit Hilfe der Binärtechnik müssen die Rechenvorschriften für Zahlen auf Binäroperationen zurückgeführt werden. Dabei steht die Addition im Vordergrund, da andere Rechenoperationen meist auf ihr aufbauen. In Kapitel 4.6 war die Addition und das Rechnen mit Dualzahlen behandelt worden. Greift man die Aufgabenstellung für eine einzelne Stelle heraus, so ergibt sich ein funktioneller Zusammenhang zwischen fünf Binärgrößen, dem Übertrag cn-1 von der vorhergehenden Stelle, den Stellen an und bn der zu addierenden Zahlen a und b sowie den zwei Ergebnisgrößen Summe sn und Übertrag in die nächste Stelle cn. Die Baugruppe Addierer für eine Dualzahlenstelle entspricht daher je einem Schaltnetz für die Summe sn = f(cn-1, an, bn) und den Übertrag cn = f(cn–1, an, bn). Wegen des selben Argumentbereichs lassen sich beide in einer Funktionstabelle darstellen.
cn-1 bn
an bn cn-1
Addierschaltnetz
an
cn
sn
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
cn
0
1
1
0
1
sn
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
Bild 8.1: Blockschema des Addierers
Tabelle 8.1: Funktionstabelle des Addierers
220
8 Funktionseinheiten der Digitaltechnik
an
sn
bn
c
0
1
0
1
1
0
1
0
an
n
bn
0
0
1
0
0
1
1
1 cn-1
c n-1
Bild 8.2: Symmetriediagramme für Summen- und Übertragsfunktion sn = cn-1 { (bn { an)
cn = cn-1bn V cn-1an V bnan cn = cn-1(bn V an) V bnan
Diese Funktionen stellen eine Möglichkeit zur Realisierung der Addition dar. Eine etwas geschicktere Aufbereitung liefert einen Ansatz, bei dem zunächst nur an und bn ohne Berücksichtigung des Übertrags addiert werden, und cn-1 erst danach zu diesem Zwischenergebnis addiert wird. cn´
an
Halbaddierer sn´
bn cn-1
t1
cn
cn´´ Halbaddierer
sn
Bild 8.3: Struktur eines Volladdierers
bn
an
s'n
c'n
cn-1
s'n
sn
c"n
0 0 1 1
0 1 0 1
0 1 1 0
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 0
0 0 0 1
Tabelle 8.2: Bildung von Summen und Überträgen Man erkennt sofort die gleichartige funktionelle Abhängigkeit beider Teile des Addierers in Form der Antivalenz und der UND-Verknüpfung. Der endgültige Übertrag cn lässt sich ebenfalls sehr einfach bilden als cn = c'n v c"n. Eine Schaltnetzlösung für diese Art der Addition hat daher folgende Struktur:
8.1 Spezielle Schaltnetze
an
221
&
cn´
{
sn´
t1 &
cn
cn´´
bn {
sn
cn-1
Bild 8.4: Blockschema des Addierers Zur Addition von N-stelligen Dualzahlen wird eine entsprechende Zahl von Addierern kaskadiert:
b N-1 a N-1
b N-2 a N-2
Addierer Stelle N-1
Addierer Stelle N-2
b 1 a1
Addierer Stelle 1
b0 a0
"0"
Addierer Stelle 0
......
c N-1 s N-1 c N-2
s N-2
c1
s1
c0
s0
Bild 8.5: Addition zweier N-stelliger Dualzahlen Das Durchlaufen des Übertrags, das im ungünstigsten Fall von der Stelle 0 bis zur Stelle N-1 geschieht, reduziert die Verarbeitungsgeschwindigkeit. Für schnelle Addierschaltungen müssen daher zur Behandlung des Übertrags besondere Maßnahmen ergriffen werden. Um nun ein CMOS-Schaltnetz für die aus der Funktionstabelle 8.1 direkt abgeleitete Addiererlösung zur realisieren, könnten die schaltalgebraischen Ausdrücke der beiden DMF-Gleichungen für sn und cn in duale PMOS- und NMOS-Netze umgesetzt werden, mittels der in Kapitel 7.3 beschriebenen Serien-/Parallelsynthese der in den Ausdrücken verwendeten UND-, ODER- und NOT-Operatoren der jeweils zueinander dualen Funktionen F1 und G1 bzw. F2 und G2: F1 = sn = cn-1 { (bn { an) = cn-1bn an V cn-1bn an V cn-1 bn an V cn-1bnan = G1 F2 = cn = cn-1bn V cn-1an V bnan = G2 Um nun jedoch das Prinzip der Wieder- bzw. Mehrfachverwendung von Schaltnetzteilen umzusetzen und damit die Gesamttransistoranzahl zu reduzieren, kann man
222
8 Funktionseinheiten der Digitaltechnik
basierend auf den beiden obigen Gleichungen für F1 sowie F2 folgende optimierte Darstellung für F1neu = sn angeben: F2 = cn = cn-1bn V cn-1an V bnan = G2 F1neu = sn = cn-1 { (bn { an) = cn (cn-1 V bn V an) V cn-1bnan = G1neu an bn cn-1
t1
&
&
an bn cn-1
t1
&
t1
1
Cn = F2
t1
1
Sn = F1neu
&
Bild 8.6: Blockschema eines CMOS-optimierten Volladdiererschaltnetzes Durch Anwendung der bekannten schaltalgebraischen Axiome und Regeln ist die Gleichheit von F1neu und F1 einfach zu zeigen. Das Blockschema des dazugehörigen Schaltnetzes ist in Bild 8.6 gezeigt. Es ist zu beachten, dass die algebraische Umformung des Schaltnetzes im Hinblick auf eine optimierte CMOS-Realisierung vorgenommen wurde. Dabei werden die Methoden der Serien-/Parallelsynthese auf die schaltalgebraischen Ausdrücke für F1neu sowie F2 wiederum angewendet. Das Ergebnis ist als CMOS-Schaltbild in Bild 8.7 dargestellt, welches funktional dem Blockschema in Bild 8.6 entspricht. Bevor die allgemeine Methode und die dazugehörige digitale Funktionseinheit für die Multiplikation von zwei beliebigen Dualzahlen angeben wird, betrachten wir als Vorüberlegung für die arithmetischen Grundlagen zunächst zwei spezielle Arten dualer Multiplikationen: - die Multiplikation einer beliebigen n-stelligen Dualzahl mit einer einstelligen Dualzahl Y, wobei diese direkt durch eine UND-Verknüpfung realisierbar ist. - in Bild 8.8 ist die Multiplikation einer beliebigen Dualzahl mit einer Zweierpotenz gezeigt. Diese spezielle Multiplikation kann sehr kosteneffizient und schnell durch ein gezieltes Linksschieben der Dualzahl durchgeführt werden, wobei die Anzahl der zu schiebenden Stellen durch die Größe des Exponenten der Zweierpotenz vorgegeben ist. Darüberhinaus müssen von rechts die freigewordenen Stellen mit der selben Anzahl von Nullen aufgefüllt werden.
8.1 Spezielle Schaltnetze
223
VDD
VDD
bn cn-1
an
an
bn
PMOS-Netz
bn an
cn-1 an
VDD
bn cn-1
Sn = F1neu an
cn-1 an
cn-1 an
bn bn
bn
cn-1
an bn
VDD
NMOS-Netz Cn = F2
Bild 8.7: CMOS-Schaltung des optimierten Volladdierers Dezimal: Dual:
11D. 8D 1011B. 23
= = = =
1011B. 1000B (1.23 + 0.22 + 1.21 + 1.20) . (1.23 + 0.22 + 0.21 + 0.20) (1.23 + 0.22 + 1.21 + 1.20).1.23 +(1.23 + 0.22 + 1.21 + 1.20).0.22 +(1.23 + 0.22 + 1.21 + 1.20).0.21 +(1.23 + 0.22 + 1.21 + 1.20).0.20
= = =
1.26 + 0.25 + 1.24 + 1.23 + 0.22 + 0.21 + 0.20 1011000B 88D
Bild 8.8: Multiplikation einer Dualzahl mit einer 2-er Potenz Unter Verwendung dieser beiden speziellen Multiplikationsarten lässt sich direkt die Multiplikation zweier beliebiger Dualzahlen umsetzen. In Anlehnung an die für uns gewohnte Multiplikation von Dezimalzahlen werden dabei übereinander verschoben aufgetragene Ergebnisse der zuvor berechneten stellenweisen Multiplikationen aufaddiert. Dabei werden die erhaltenen Zwischenresultate jeweils um eine Stelle nach links verschoben (siehe Bild 8.9).
224
8 Funktionseinheiten der Digitaltechnik
Dual:
11D. 9D
= = =
1011B. 1001B (1.23 + 0.22 + 1.21 + 1.20) . (1.23 + 0.22 + 0.21 + 1.20) (1.23 + 0.22 + 1.21 + 1.20).1.23 +(1.23 + 0.22 + 1.21 + 1.20).0.22 +(1.23 + 0.22 + 1.21 + 1.20).0.21 +(1.23 + 0.22 + 1.21 + 1.20).1.20 1.26 + 1.25 + 0.24 + 0.23 + 0.22 + 1.21 + 1.20 1100011B 99D
= = = = + + +
1011B 00000B 000000B 1011000B 01100011B
Bild 8.9: Multiplikation zweier Dualzahlen Das entsprechende Schema zur Durchführung der allgemeinen Dualzahlenmultiplikation einer beiliebigen n- mit einer beliebigen k-stelligen Dualzahl ist in Bild 8.10 gezeigt. Der Multiplikant muss mit jeder Stelle des Multiplikators multipliziert werden, d.h. bitweise konjunktiv verknüpft werden. Das jeweilige Zwischenergebnis wird also sukzessive immer um eine Stelle nach links geschoben und zu den bisherigen Ergebnissen hinzuaddiert. Hierzu werden entsprechend strukturell verschaltete Basiszellen benötigt, die alle aus einer Volladdiererfunktionseinheit und einem UND-Gatter bestehen. Das entsprechende Schaltnetz für n = k = 4 zur Durchführung einer allgemeinen 4-Bit Dualzahlenmultiplikation ist in Bild 8.11 dargestellt. an-1...a0 . bk-1...b0
=
+ + +
an-1
an-1
...
a1
...
a1
a0
. b . 20 0 . . 1 b0 2
a0
... an-1
= Pn+k Pn+k-1
...
a1
a0
...
.
bk-1. 2k-1
Bild 8.10: Durchführung einer allgemeinen (n x k)-Bit Dualzahlenmultiplikation Codewandler Wegen der unterschiedlichen Eigenschaften von Codes besteht häufig die Notwendigkeit, die Informationsdarstellung von einem Code in einen anderen Code umzusetzen, wozu grundsätzlich Schaltnetze verwendbar sind. Ist C1 = (c1n, ..., c12, c11) die Binärdarstellung des ankommenden und C2 = (c2m, ..., c22, c21) die des abgehenden Codes, so müssen i.Allg. m Schaltfunktionen spezifiziert und realisiert werden.
8.1 Spezielle Schaltnetze
sk
225
aj
Einheitszelle
bi &
a0 0
a1
a2
0
a3
0
0
Voll-
cin
addierer
b0
cout
0
sk’ b1 0
b2 0
b3 0
p7
p6
p5
p4
p3
p2
p1
p0
Bild 8.11: Schaltnetz für eine (4 x 4)-Bit Dualzahlenmultiplikation Da sie alle von demselben Argument abhängen, lassen sich meist kompaktere Darstellungen finden als die Einzelnotationen; außerdem können bei geeigneter Wahl Teilschaltnetze von mehreren Schaltfunktionen gemeinsam verwendet werden.
Codewandler
c21 c22
...
...
c11 c12 c1n
c2m
C1
C2
c21 = (c1n, ..., c12, c11) x x x c2m = (c2m, ..., c22, c21)
Bild 8.12: Schema einer Codewandlung Prüfbit-Erzeugung und -Überprüfung Prüfbare Codes mit Quersummenprüfung benötigen zwei spezielle Baugruppen, eine zur Erzeugung des richtigen Wertes des Prüfbits, und eine andere zur Feststellung, ob die Quersumme z.B. nach einer Übertragung noch den richtigen Wert hat, d.h. gerade bzw. ungerade ist. Auch hierfür lassen sich Schaltnetze einsetzen. An einem Beispiel soll dies demonstriert werden.
226
8 Funktionseinheiten der Digitaltechnik
Beispiel: Für eine Zweier-Bitgruppe (x2, x1) soll ein Schaltnetz entworfen werden, das die Bitgruppe durch ein Bit p auf gerade Quersumme ergänzt. Ein zweites Schaltnetz soll überprüfen, ob das Tripel (p, x2, x1) gerade Quersumme aufweist. x2
x1
p
p
x2
x1
K
0 0 1 1
0 1 0 1
0 1 1 0
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
1 0 0 1 0 1 1 0
p = x2 { x1
K=1 Korrekte Quersumme K=0 Fehler K= p { (x2 { x1)
Tabelle 8.3: Bildung von Prüfbit und Quersummenaussage
Multiplexer und Demultiplexer
xa1 xa2
...
Xa
xan
Multiplexer 1 n Ax
Xa = (xan, ... , xa2, xa1)
ya
xe
Demultiplexer m 1
...
Verbindungen zwischen Systembaugruppen sind kosten- und platzintensiv, vor allem wenn für die Darstellung der Information Binärvektoren mit großer Stellenzahl verwendet oder große räumliche Distanzen überbrückt werden müssen. Man versucht dann, auf eine (teil-)serielle Übertragung auszuweichen, sofern die zeitlichen Anforderungen an ein System dies zulassen. Zur Selektion von Signalkomponenten und (Wieder-)Zuweisung nach der Übertragung dienen spezielle Schaltnetze, sog. Multiplexer und Demultiplexer. ye1 ye2
Ye
yem
Ay
Ye = (yem, ... , ye2, ye1)
Bild 8.13: Schema einer Multiplexverbindung Die Steuergrößen Ax bzw. Ay selektieren den einzelnen Eingang bzw. den einzelnen Ausgang in einem 1-aus-n- bzw. 1-aus-m-Code. Da sie ebenfalls binär dargestellt werden sollen, ergibt sich Ax = (axr, ..., ax2, ax1) bzw. Ay = (ayt, ..., ay2, ay1) und 2r t n
2t t m
8.1 Spezielle Schaltnetze
227
Setzt man m = n und ordnet man die Zuweisungsverhältnisse so, dass aus ya = xai stets yei = xe folgt, so gilt Ax = Ay. Aus technischen Gründen ergibt sich außerdem 2r = n bzw. 2t = m und somit aus n = m auch r = t. Für den Fall n = m = 4 soll ein Beispiel die Verhältnisse verdeutlichen. Beispiel: Xa = (xa4, xa3, xa2, xa1),
Ye = (ye4, ye3, ye2, ye1)
r = t = ld 4 = 2 Ax = (ax2, ax1) ax2
ax1
0 0 1 1
0 1 0 1
ya xa1 xa2 xa3 xa4
Ay = (ay2, ay1) ay2
ay1
yei
yei*)
0 0 1 1
0 1 0 1
xe xe xe xe
xa1 xa2 xa3 xa4
*) falls Ax = Ay
Tabelle 8.4: Ein-/Ausgangsbeziehungen Geht man von Schaltnetzstrukturen aus, welche die Minterme der sog. Adressvektoren Ax bzw. Ay verwenden, so ergeben sich zwei typische Schaltnetze. xa1
&
xa2
& t1 ya
&
ye1
&
ye2
ye3
xe
xa3
&
&
xa4
&
&
ax2 ax1
ye4
ay2 ay1
Bild 8.14: Blockschema von Multiplexer und Demultiplexer für vier Kanäle Multiplexer lassen sich für weitere Zwecke einsetzen. Von großer Bedeutung ist die Nutzung zur Realisierung beliebiger Schaltfunktionen, zumal in manchen Schaltkreistechnologien Multiplexerstrukturen besonders günstig sind. Zur Vereinfachung der Zusammenhänge seien (2:1)-Multiplexer vorausgesetzt (r = 1). Interpretiert man die Adressvariable ax als eine Komponente xi des Eingabevektors X, so sind die beiden Eingänge des (2:1)-Multiplexers den Werten xi = 0 bzw. xi = 1 zugeordnet. Die an den Eingängen angelegten Größen müssen daher nicht mehr
228
8 Funktionseinheiten der Digitaltechnik
Entwicklung nach x1
fR0 fR1
MUX (2:1)
0
Entwicklung nach x2 MUX (2:1)
fR00 fR10
0
fR0
1
MUX (2:1)
y
0
1
x1
1
MUX (2:1)
fR01 fR11
0 1
fR1 x1
x2
Bild 8.15: Entwicklung nach zwei Variablen von dieser Variablen abhängen, da sich ihr funktioneller Einfluss durch die Auswahl des Eingangs geltend macht. Aus Kapitel 6.6 ist der Entwicklungssatz bekannt, der in diesem Zusammenhang von zentraler Bedeutung ist. Wendet man ihn auf die Adressvariable an, so ergibt sich y = ax & f(xn, ..., 0, ..., x1)
V
ax & f(xn, ..., 1, ..., x1)
Restfunktion fR0
Restfunktion fR1
für ax = 0
für ax = 1
Entwickelt man nach einer weiteren Variablen, so kommt man zu einer Struktur mit zwei weiteren Multiplexern und vier Restfunktionen, usw. Es entsteht also ein Netz von der Struktur eines Baumes, ein sog. Multiplexerbaum. Man kann zeigen, dass man nur nach n-1 Variablen entwickeln muss, da dann die Restfunktion nur noch von einer Variablen, z.B. xn, abhängt oder konstant ist. Konstante Restfunktionen können aber auch bei vorangehenden Entwicklungsschritten entstanden sein, so dass in diesen Baumzweigen die Entwicklung abbricht. Beispiel: y = b & a V ( b & (c { d)) soll als Multiplexer-Schaltnetz realisiert werden. y = b & a V ( b & (c { d)) = b & [ a V (c { d) ] V b & (0)
Entwicklung nach b
= b & [ a & (1) V a & (c { d) ] V b & (0)
Entwicklung nach a
= b & { a & (1) V a & [c & (d) V c & ( d) ] } V b & (0) Entwicklung nach c
8.1 Spezielle Schaltnetze
d d
229
MUX (2:1)
MUX (2:1) „1“
y
0 1
0
0 1
MUX (2:1)
„0“
1
c
a
b
Bild 8.16: Beispiel eines optimierten Multiplexerschaltnetzes Multiplexerschaltnetze lassen sich auch mit größeren Multiplexern aufbauen; dann müssen je Stufe Restfunktionen nach der entsprechenden Zahl von Adressvariablen entwickelt werden. Die Anzahl und Größe von Multiplexern kann auf verschiedene Weisen weiter optimiert werden, was aber zu wesentlich weniger transparenten Anordnungen führt, auf die hier nicht weiter eingegangen werden soll. (Ausführliche theoretische Betrachtungen findet man z.B. in [NEU87]). Auch Demultiplexer lassen sich für zusätzliche Aufgaben verwenden. Zwei Anwendungsformen stehen dabei im Vordergrund. Interpretiert man die Adressvariablen als die Variablen eines allgemeinen Binärvektors und setzt man xe = 1 = const., so entsteht an der Ausgangsseite eine (m 1 )-Darstellung, d.h. jede Ausgangsleitung wird für genau eine Belegung von Ay zu Eins, was der zugehörigen Mintermfunktion entspricht. Beispiel: Ay = (ay2, ay1) oX = (x2, x1)
01 10 0
1 11
x2 x1
xn xn-1 x1
Demultiplexer (Decoder)
0 1
...
xe=1
m0=x2 x1 m1=x2 x1 m2=x2 x1 m3=x2 x1
...
DEMUX (1:4) 00
2n-1
xe
Bild 8.17: Nutzung eines Demultiplexers zur Mintermbildung bzw. Decodierung Zeichnet man die Darstellung um, so stellt der Demultiplexer einen Codewandler, n einen sog. Decoder dar, der eine dual codierte Darstellung in eine ( 21 )-Darstellung umwandelt. xe wird in diesem Zusammenhang auch als Enable-Variable bezeichnet, da sie für den Wert 0 alle Ausgangssignale auf den Wert 0 zwingt.
230
8 Funktionseinheiten der Digitaltechnik
8.2 Spezielle Schaltwerke Wie bei den Schaltnetzen haben sich auch bei den Schaltwerken für typische Aufgaben spezielle Lösungen herausgebildet. Sie dienen insbesondere dazu, die Anzahl von Ereignissen oder Aktionen festzuhalten oder Informationsdarstellungen zeitlich oder räumlich zu ordnen oder umzusetzen. Zähler Hier handelt es sich um Schaltwerke, welche in der Lage sind, auf einer speziellen Signalleitung beobachtete Ereignisse zu zählen und so in den Zustandsraum abzubilden, dass ein bestimmter Zählcode entsteht. Wie bei mechanischen Zählern können Überlauf- oder Nullstellungsmeldungen, Rücksetzvorgänge und andere Besonderheiten vorgesehen werden. Bevor auf wichtige Zählertypen eingegangen wird, soll ein Beispiel die Situation verdeutlichen. Beispiel: Es sei ein Zähler als Schaltwerk zu entwerfen, der im Dualzahlencode zyklisch von 0 bis 7 zählen kann, eine Rückstellmöglichkeit auf 0 besitzt und beim Wert 7 ein Signal zu Eins setzt. Das Zähl-Ereignis sei der Wechsel einer Zählvariablen Z von 0 nach 1. Es sollen JK-Flipflops mit 0/1-Flankensteuerung ohne zusätzlichen R- und S-Eingang verwendet werden. Die Anordnung sei synchron betrieben und vom Moore-Typ. Schrittweiser Entwurf: Eingangsvariable: Ausgangsvariable:
Rückstellen auf 0: N=1 sonst: N=0 Zählerstand = 7: Ü=1 sonst: Ü=0 Der Zählerstand soll dem Zustandscode entsprechen.
Die Zählvariable Z wird bei Zählern häufig nicht als Eingangsvariable, sondern direkt als Taktsignal realisiert. Da bei einem synchronen Schaltwerk mit positiver Flankensteuerung ein Zustandswechsel nur durch einen 0-1-Wechsel des Taktsignals hervorgerufen werden kann, genügt diese Vorgehensweise den Anforderungen der Aufgabenstellung.
8.2 Spezielle Schaltwerke
231
Die Kodierung der Zustände liegt bereits fest, so dass sofort eine Schaltwerktabelle mit kodierten Zuständen angegeben werden kann. Die Funktion kann direkt abgelesen werden : Ü = q3n & q2n & q1n
q3
QQ q2
q1
XQ N
q3
QQ+1 q2
q1
YQ Ü
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0
0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0
1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
Tabelle 8.5: Kodierte Schaltwerkstabelle des Zählers Für die J/K-Flipflops wird die Schaltwerkstabelle um die Ansteuerfunktionen ergänzt: q3
QQ q2
q1
XQ N
q3
QQ+1 q2 q1
YQ Ü
0 0 0 0 0 0
0 0 0 0 1 1
0 0 1 1 0 0
0 1 0 1 0 1
0 0 0 0 0 0
0 0 1 0 1 0
1 0 0 0 1 0
0 0 0 0 0 0
0 0 1 1 1 1 1 1
1 1 0 0 0 0 1 1
1 1 0 0 1 1 0 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 0 0 0 1 0 1 0
0 0 1 0 0 0 1 0
0 0 0 0 0 0 0 0
1 1
1 1
1 1
0 1
0 0
0 0
0 0
1 1
J3 K3
J2
K2
J1
K1
0 0 0 0
-
0 0 1 0
-
1 0 -
1 1
0 0 1 0 -
0 1 0 1 0 1 1 1
0 0 1 0 -
0 1 1 1 0 1 1 1
1 0 1 0 1 0 -
1 1 1 1 1 1
Tabelle 8.6: Ergänzte Schaltwerkstabelle des Zählers
232
8 Funktionseinheiten der Digitaltechnik
Durch Ablesen aus der Tabelle oder mit Hilfe von Symmetriediagrammen erhält man K1 = 1 K2 = N V q1Q K3 = N V N q2Q q1Q (= N V q2Q q1Q )
J1 = N J2 = N q1Q J3 = N q2Q q1Q
N &
1
J3
&
t1 K3
J2
&
t1 K2
J1 K1
„1“
Ü
1J C1 1K
q3
1J C1 1K
q2
1J C1 1K
q1
Zählerstand
c
Bild 8.18: Blockschema des Zählers Um bei Zählern von Realisierungsdetails zu abstrahieren, führt man Blocksymbole ein, die aus einem Daten- und einem Steuerteil bestehen. Für das obige Beispiel sieht diese Umsetzung der Darstellung folgendermaßen aus: N c
R
CTR8 CT=7
Ü q3 q2 q1
Bild 8.19: Symbol des Zählers Zähler lassen sich mit vielen Merkmalen ausstatten. Die wichtigsten davon sind: - Art des Zählcodes (z.B. Dualzahlen, 1-aus-n-Code, BCD-Code, usw.) - Art des Zähl-Ereignisses (z.B. 0 o 1, 1 o 0, Auftreten von bestimmten Werten, usw.) -
Steuersignal für Zählen/Anhalten Steuersignal für Zählrichtung (Aufwärts/Abwärts) Synchrone oder asynchrone Nullstell-Möglichkeit Steuersignal für Zählen/Laden (Einstellen eines Anfangswertes)
8.2 Spezielle Schaltwerke
233
Auch bei der Realisierungsstruktur sind viele Varianten möglich, die sich vor allem auf die verwendeten Flipfloptypen, die Verwendung synchroner oder asynchroner Zustandswechsel, die Art des Überführungs- und Ausgabeschaltnetzes, usw. beziehen. Da in der Literatur ausführlich auf diese Vielfalt eingegangen wird (z.B. in [SCN79]), kann hier auf eine ausführliche Darstellung verzichtet werden. Register, Schieberegister: Da Information meist nicht in Einzelbit-Darstellung behandelt wird, ist das Speichern mittels einzelner Flipflops nicht sinnvoll. Man fasst daher mehrere Flipflops gemäß der gegebenen Darstellungsbreite zu einer Baueinheit zusammen, in der bestimmte Signale allen Flipflops gemeinsam sind, vor allem Takt- und Setz-/ Rücksetzsignale. Solche Anordnungen nennt man allgemein Register; teilweise werden sie auch als lineare Speicher bezeichnet. Ein einfaches Beispiel zeigt Anordnung und Beeinflussbarkeit der Registerzellen. Beispiel: Einspeichern eines 4 bit breiten Datenwortes bei ansteigendem Taktsignal und asynchrones Rücksetzen (Setzen aller Zellen auf 0).
Rücksetzen Takt D4
1D C1 R
q4
D3
1D C1 R
q3
D2
1D C1 R
q2
D1
1D C1 R
q1
zu speicherndes Datenwort
Bild 8.20: Struktur eines Registers
Bei Registern sind die Zellen nicht datenmäßig miteinander verbunden. Es gibt aber eine große Zahl von Vorgängen, bei denen Datentransfers zwischen – bevorzugt benachbarten – Zellen nötig sind. Die sog. Schieberegister sind besonders wichtige Formen solcher gekoppelter Registerzellen. Dabei besteht ein steuerbarer Datenpfad von einer Zelle zu einer oder zu beiden Nachbarzellen. Datenbits können daher in einer oder in beiden Richtungen verschoben werden; die Auslösung dieses Vorgangs erfolgt durch ein Taktsignal. Ein Beispiel soll dies zeigen.
234
8 Funktionseinheiten der Digitaltechnik
Beispiel: 4 Bit Register mit wahlweise Rechts- bzw. Linksschieben
?0
?1
?2
D04 D03 D02 D01
Ausgangssituation
?0 D04 D03 D02
D04 D03 D02 D01
?0
D03 D02 D01 ?0
?1
geht verloren ?1
?0 D04 D03
?2
?1
?3 ?3
?2
?0 D04
?1
?0
D02 D001 ?0
?1
D01 ?0
?2
?0
?1
?1
?2
?3
?2 ?3
Bild 8.21: Rechts- bzw. Linksschieben in einem Register Beim Schieben geht jeweils das in Schieberichtung voranstehende Datenbit verloren, während das letzte Datenbit mit einem Inhalt gefüllt wird, der von den Randbedingungen dieser Zelle abhängt. Häufig wird schaltungstechnisch eine 0 gesichert (Nachziehen einer Null). Nach vier Takten ist der gesamte ursprüngliche Registerinhalt verloren gegangen. Führt man das wegfallende Datenbit auf die einziehende Zelle zurück, so bleibt der Inhalt erhalten, jedoch jeweils um eine Stelle versetzt (Ringschieben). Rechtsschieben
Linksschieben
D04 D03 D02 D01
D04 D03 D02 D01
D01 D04 D03 D02
D03 D02 D01 D04
usw. Bild 8.22: Ringschieben in einem Register
usw.
8.2 Spezielle Schaltwerke
235
Auch bei Schieberegistern gibt es eine große Zahl von Realisierungsmöglichkeiten. Für ein Schieberegister mit Links-/Rechtsschieben, asynchronem Rücksetzen und D-Flipflops sei die Kopplung für zwei Zellen gezeigt. qi+1
qi
qi-1 qi+2
C1 R 1D
C1 R 1D
C1 R 1D
... ...
Takt ... Rücksetzen ... MUX (2:1)
MUX (2:1) 0 1
0 1
... R/L
R/L ...
0 Linksschieben 1 Rechtsschieben
Bild 8.23: Basiszelle eines Rechts-/Linksschieberegisters Auch für Schieberegister stehen entsprechende Schaltsymbole zur Verfügung (Bild 8.24 zeigt das Symbol für ein Register mit 4 Speicherzellen). Rücksetzen
R
SRG4
R/L Takt
Bild 8.24: Symbol eines Schieberegisters Schieberegister werden auch eingesetzt, wenn Datenbitgruppen oder Datenbits von einer räumlichen in eine zeitliche Folge oder umgekehrt gewandelt werden sollen; man bezeichnet diesen Vorgang als Parallel/Serienwandlung bzw. Serien/ Parallelwandlung. S/P-Wandlung
P/S-Wandlung
SRG
c RS Laden/Schieben
...
SRG
RS c
Bild 8.25: Parallel/Serien- und Serien/Parallel-Wandlung
...
236
8 Funktionseinheiten der Digitaltechnik
Bei der Parallel/Serienwandlung werden z.B. die Daten (Dn, ... , D2, D1) parallel in das Register geladen, danach können sie seriell in der zeitlichen Reihenfolge D1, D2, ... , Dn ausgegeben werden. Bei der Serien/Parallelwandlung werden die Daten z.B. in der zeitlichen Reihenfolge D1, D2, ... , Dn in das Register geschoben, und stehen dann als Datenwort (Dn, ... , D2, D1) gleichzeitig (parallel) zur Verfügung.
8.3 Digitalspeicher Das Speichern von Information ist eine zentrale Aufgabe in Digitalsystemen. Dabei lassen sich viele physikalische Effekte einsetzen; von Bedeutung sind derzeit insbesondere Speichervorgänge unter Benutzung von Rückkopplungsstrukturen (Flipflops), von elektrischen Ladungen auf Kondensatoren und von magnetischen Effekten (Magnetisierungsrichtung). Die benötigte Speichergröße bestimmt im wesentlichen die Art des verwendeten Effekts. Dabei lässt sich folgende Reihenfolge angeben, die sich auch im Preis je Bit niederschlägt: -
Kleine, schnelle Speicher für Zwischenergebnisse bevorzugt auf der Basis von Flipflops (statische Speicher); Größere, mäßig schnelle Speicher für größere Datenmengen auf der Basis von Ladungsspeichereffekten (dynamische Speicher); Große, langsame Speicher für große Datenmengen und zur Archivierung auf der Basis magnetischer Effekte (Massenspeicher).
Im Folgenden soll nur auf einige prinzipielle Eigenschaften der beiden ersten Speichertypen eingegangen werden. Speicher der dritten Typklasse (wie Floppy-Disk-, Platten-, Band- und Kassettenspeicher) sind nicht Gegenstand der Betrachtung. Speicher lassen sich anhand einiger wichtiger Merkmale klassifizieren, die sich hauptsächlich auf funktionelle Aspekte beziehen: 1) Organisation der abgelegten Daten. Im Allgemeinen gruppiert man mehrere Bit zu einem Wort und mehrere Worte wiederum zu Blöcken. 2) Art der Zugriffsmethode. Das Zugreifen auf ein bestimmtes Bit oder Wort oder einen bestimmten Block kann durch Selektion unmittelbar erfolgen: Man spricht von Speichern mit wahlfreiem Zugriff (Random Access Memory RAM). Ist für das Aufsuchen bestimmter Daten das Durchsuchen oder Durchlaufen eines ganzen Bereichs nötig, so bezeichnet man diese Speicher als solche mit sequentiellem Zugriff (Sequential Access Memory SAM). Dieser ist vor allem bei großen Speichern üblich. 3) Art des Zugriffs. Bei einem Speicher können typischerweise Daten eingeschrieben wie auch ausgelesen werden. Man spricht daher von Schreib/Lese-Speichern (Read/Write Memory). Häufig müssen abgelegte Daten selten oder überhaupt nicht mehr verändert werden (z.B. Tabellen, Konversionstafeln, usw.), so dass der Lesevorgang überwiegt (Read Only Memory ROM). Manche Sonder-
8.3 Digitalspeicher
237
formen lassen nur ein einmaliges Schreiben, dann aber beliebig häufiges Lesen zu (Write Once, Read Many WORM). 4) Art der Datenspeicherung (Grad der Flüchtigkeit der Daten). Man kann drei typische Fälle für die Speicherung der Daten unterscheiden: - Ladungsspeicher. Diese bedürfen einer regelmäßigen Wiederauffrischung der Ladungen, um die Verluste durch Leckströme udgl. zu kompensieren (Refresh); dynamisches RAM (DRAM), siehe Bild 8.36. - Rückkopplungsspeicher. Ihre Funktion hängt von einer stetigen Energiezufuhr ab; statisches RAM (SRAM), siehe Bild 8.37. - Speicher mit fixierten Ladungsträgern. Sie können auch ohne stetige Energiezufuhr Daten über sehr lange Zeiten speichern. 5) Verwendete Schaltkreistechnik. Speicher können mit elektronischen Bauelementen auf vielfältige Weise schaltungstechnisch realisiert werden. 6) Verwendete (Halbleiter-)Technologie. Sie bestimmt maßgeblich Größe, Arbeitsgeschwindigkeit, Kosten, Zuverlässigkeit usw. eines Speichers. Innerhalb der Speicheralternativen sind folgende wichtige Untergruppen explizit zu nennen: - PROM (Programmable Read Only Memory) stellt einen einmalig programmierbaren Baustein dar, wobei die gewünschten Speicherwerte mittels gezielt zerstörten Leitungsabschnitten (Sicherungen – Fuses) realisiert werden. Der Programmiervorgang erfolgt durch das Anlegen hoher Ströme zur dauerhaften Trennung der erforderlichen Transistoren. - die nichtflüchtigen Speichertypen EPROM (Erasable Programmable Read Only Memory) und insbesondere EEPROM (Electrically Erasable Programmable Read Only Memory) fanden hierbei große Beachtung. Diese können wiederholt personalisiert und wieder gelöscht werden. Bei EPROMs wird die elektrisch erfolgte Programmierung durch die Bestrahlung mit UV-Licht wieder gelöscht, wohingegen bei EEPROMs der Löschvorgang ebenfalls elektrisch durchgeführt wird. In beiden Fällen wird technologisch ein zusätzliches Gate (Floating Gate) zwischen das ursprüngliche Gate und das Substrat eines CMOS-Transistors eingefügt. Dies ermöglicht durch entsprechend angelegte höhere Spannungen die Bewegung von Ladungsträgern aus dem Substrat dauerhaft auf das Floating Gate. - die in jüngster Zeit entwickelten sogenannten Flash-Speicher versuchen die Nachteile von EPROM-/EEPROM-Lösungen zu vermeiden und deren Vorteile zu kombinieren. Flash-Bausteine basieren technologisch ebenfalls auf zuätzlichen Floating Gates, mit schnellem Lesezugriff und relativ schnellen Lösch- bzw. Schreibvorgängen innerhalb der eingesetzten Systeme/Schaltungen. Deshalb und aufgrund der gleichen Flächen- und ähnlichen Kosteneffizienz wie EPROM-Speicher sind die Flash-Speicher inzwischen sehr weit
238
8 Funktionseinheiten der Digitaltechnik
verbreitet. - die Ansätze von FRAMs (Ferroelectric RAM) basieren auf ”programmierbaren Kondensatoren” aus einem speziellen polarisierbaren Dielektrikum (ferroelektrisches Material), das seine programmierte Polarität nach dem Entfernen des elektrischen Felds beibehält. - die MRAM-Technologie verwendet dahingegen magnetische Dipole anstatt elektrischer Ladungen, wobei die Unterscheidung der Speicherzustände 0 und 1 durch die gezielte Magnetisierung dünner metallischer und nichtmagnetischer Schichten (3-6 nm) in gleich oder ungleich ausgerichtet erfolgt. Zukünftige magnetoelektronische MRAM Arbeitsspeicher würden Daten permanent speichern und gleichzeitig die Vorteile der SRAM- (statische RAM – hohe Geschwindigkeit), der DRAM- (dynamische RAM – hohe Dichte bzw. Kostenersparnis) und der Flash-Speicher (nichtflüchtig) in sich vereinigen. Im Folgenden soll auf einige spezielle Speicheranordnungen eingegangen werden, dabei stehen Prinzipien für kleine bis mittlere Datenmengen im Vordergrund. Registerspeicher, Registersätze Zur Speicherung von Operanden, Konstanten usw. dienen Speicher auf der Basis von Registern. Diese sind meist in Form gleichlanger Speicherworte, teilweise mit der Möglichkeit zur Verwendung von Halbworten organisiert. Die einzelnen Register sind datentechnisch meist nicht miteinander gekoppelt. Zur Auswahl eines speziellen Registers und evtl. einer der Worthälften benötigt man spezielle Selektionssignale, die sog. Adressignale, wie sie schon von Multiplexern und Demultiplexern her bekannt sind. Schreiben Daten
Lesen
Adresse
...
Registerzahl k
Oberes Unteres Halbwort
Bild 8.26: Organisation eines Registerspeichers Zwei spezielle Speicherstrukturen bauen auf Eigenschaften von Registern bzw. Schieberegistern auf und sind für die Aufbewahrung kleinerer Datenmengen geeignet. Pufferspeicher (First-In-First-Out Speicher FIFO) Es handelt sich überwiegend um wortorganisierte Speicher mit konstanter Wortbreite, die vor allem zur Zwischenspeicherung von Daten dienen, wenn digitale Baugruppen unterschiedlicher Geschwindigkeit gekoppelt werden müssen.
X FIFO
Schreiben Voll
Y Lesen Leer
Wortbreite
239
X = (xn,xn-1,...,x1) = Y
8.3 Digitalspeicher
Bild 8.27: Symbol eines FIFO-Speichers Ein auf der Eingangsseite eingeschriebenes Wort rückt im FIFO solange zum Ausgang vor, bis es entweder diesen erreicht oder zuvor auf bereits belegte Plätze stößt. Das Signal Voll verhindert das Einschreiben bei völlig belegtem FIFO, das Signal Leer zeigt an, dass bereits alle Worte an der Ausgabeseite entnommen wurden. Wird ein Wort ausgelesen, rücken alle dahinterliegenden Worte um eine Position näher zum Ausgang. Beispiel: FIFO mit Worten zu je 8 bit.
...
...
...
...
FIFO Leer Schreiben 1. Datenwort
...
...
...
...
Schreiben 2. Datenwort
...
...
Lesen 1. Datenwort
Bild 8.28: Schreiben und Lesen in einem FIFO-Speicher
...
Lesen 2. Datenwort
240
8 Funktionseinheiten der Digitaltechnik
FIFO's können auf verschiedene Weise realisiert werden. Naheliegend ist die Verwendung von Schieberegistern entsprechender Größe und Verschaltung.
Schreiben Voll
D11 D12 D13 D14
D21 D22 D23 D24
D1n
D2n
Leer
REG
...
...
Dk1 Dk2 Dk3 Dk4
Y
...
REG
...
REG
...
X
Lesen
Steuerung (Schaltwerk)
Dkn
Bild 8.29: Mögliche Realisierung eines FIFO-Speichers
Stapelspeicher, Kellerspeicher, Stack (Last-In-First-Out-Speicher LIFO) Im Verlauf von Berechnungen müssen immer wieder Zwischenergebnisse gebildet und vorübergehend aufbewahrt werden. Dabei ist durch die Kenntnis der Reihenfolge der Bearbeitungsschritte eine bestimmte Ordnung der Zwischenergebnisse erklärt. Ein zur Aufnahme solcher Zwischenergebnisse geeigneter Speicher ist der Stapelspeicher oder kurz LIFO. Bei ihm werden die Datenworte so abgelegt (PUSH) und wieder entnommen (POP), dass jeweils das zuletzt eingelesene Wort wieder als erstes erscheint. Anschaulich kann man das mit einem Stapel Teller auf einem Federtisch vergleichen, wo die zuletzt aufgelegten Teller stets als erste wieder verwendet werden. Die Feder unter dem untersten Teller bewirkt stets eine Anhebung des Stapelinhaltes auf das höchstmögliche Niveau. Auch beim LIFO können spezielle Signale Aussagen über den Grad der Füllung des Speichers machen. PUSH X,Y POP Voll Leer
X = (xn, xn-1, ..., x1) = Y LIFO
Tiefe k des LIFO
Bild 8.30: Symbol eines LIFO-Speichers
Wortbreite
8.3 Digitalspeicher
241
Beispiel: LIFO mit Worten zu je 8 bit. Schreiben 1. Datenwort
Schreiben 2. Datenwort
...
...
...
... LIFO Leer
Lesen 3. Datenwort
Schreiben 3. Datenwort
...
...
...
Bild 8.31: Schreiben und Lesen in einem LIFO-Speicher Je nach Auslegung des LIFO wird beim Entleeren in die freiwerdenden Worte ein Nullwort nachgezogen oder der Inhalt des tiefsten Speicherworts nach oben kopiert. Auch LIFOs lassen sich auf der Basis von Schieberegistern realisieren, wenngleich auch andere Prinzipien möglich sind. Allgemeine Speicher, Arbeitsspeicher yn
xn
PUSH Voll
y1
x1
...
...
D11 D12 D13 D14
...
Dn-1,1 Dn-1,2 Dn-1,3 Dn-1,4
yn-1
...
Dn1 Dn2 Dn3 Dn4
xn-1
Dnk
Dn-1,k
D1k
SRG
SRG
... ...
Füllen
SRG
Steuerung (Schaltwerk)
Bild 8.32: Mögliche Realisierung eines LIFO-Speichers
POP Leer
Leeren
242
8 Funktionseinheiten der Digitaltechnik
Allgemeine Speicher, Arbeitsspeicher Allgemeine Speicher sind matrixförmig organisierte Anordnungen von Speicherzellen des dynamischen oder statischen Typs. Im Allgemeinen sind solche Speicher wortorganisiert, dabei ist die Breite aller Worte gleich. Für den Schreib- bzw. Lesevorgang wird genau ein Wort durch Angabe seiner Adresse ausgewählt, was durch einen Decoder erfolgen kann. Der Zugriff erfolgt wahlfrei. Als Schema eines solchen Speichers ergibt sich damit: XY Lesen Speicherwort 0 “ “ “ “
X = (xn, xn-1, ..., x1) = Y A = (ak-1, ak-2, ..., a0)
...
Adresse A
Zeilendecoder
Schreiben
Speicherwort 2k-1 Auswahl (enable)
Bild 8.33: Organisation eines Speichers mit wahlfreiem Zugriff Als Kapazität K oder Speichergröße gibt man das Produkt K = n . 2k in bit an. Aus schaltungstechnischen oder technologischen Gründen strebt man meist eine Form der Speichermatrix an, welche dem Quadrat möglichst nahe kommt. Damit sind die Werte für k und n mehr oder weniger vorgegeben und nicht primär vom Anwender des Speichers her definiert. Zur Anpassung dieser nicht notwendigerweise deckungsgleichen Forderungen bedient man sich der Möglichkeit, in ein Speicherwort mehr als ein Datenwort hineinzupacken. Beim Schreiben bzw. Lesen wird aber stets ein Speicherwort selektiert; es bedarf daher eines weiteren Auswahlprozesses, um das Datenwort im Speicherwort zu identifizieren. Der Speicher besitzt dann zwei Decoder (sog. geteilte Decoder, da die Adressbits auf die beiden Decoder aufgeteilt werden). Es sei N die Länge des Speicherworts und n die Länge des Datenworts. Mit R = N/n erhält man aus r = ld R die Anzahl der Adressbits des Spaltendecoders. Die Adresse für den Zeilendecoder kann somit um r Stellen verkleinert werden.
8.3 Digitalspeicher
243
A´´
Spaltendecoder/multiplexer
Speicherkapazität K = n . 2r . 2(k-r)
A´´= (ar-1, ..., a0) A´ = (ak-1, ..., ar) A´
...
Zeilendecoder
K = n . 2k
Bild 8.34: Organisation eines Speichers mit geteilter Adressierung Beispiel:
n = 2
N=8
R = 8/2 = 4
K = 2 . 24 = 32 bit
k=4
r = ld R = ld 4
=2
A´ = (a3, a2) A´´ = (a1, a0) K = 2 . 22 . 22 = 2 . 24 = 32 bit
00 A´j=
A´´j= 01 10
11
00 01 10 11
Datenwort
Speicherwort Bild 8.35: Beispiel für eine Aufteilung Der innere Aufbau von Speichern basiert in hohem Maße auf der Nutzung der Eigenschaften des Halbleiterprozesses und kann daher in diesem Zusammenhang nicht dargestellt werden. Einige grundsätzliche Konzepte sollen jedoch unter Verwendung von logischen Komponenten und wenigen Schaltelementen verdeutlicht werden.
244
8 Funktionseinheiten der Digitaltechnik
DRAM
Wortauswahlleitung
Spaltenauswahlleitung
Matrix der Wort- und Spaltenauswahlleitungen
Schreibe/Leseumschaltung
Schreiben von L bzw. H
UB
Leseausgang
Bild 8.36: Prinzip eines Speichers mit dynamischer Zelle
SRAM
Binärspeicher 1 bit
( q, S)
Spaltenauswahlleitung
( q, R)
Spaltenauswahlleitung
Wortauswahlleitung
Schreib/Leseumschaltung
Leseausgang
Leseausgang
1
q
Schreiben von L bzw. H
Ub
Bild 8.37: Prinzip eines Speichers mit statischer Zelle
q
8.4 Sonderfunktionen
245
8.4 Sonderfunktionen Mit den vorgestellten Komponenten und Baugruppen lassen sich wichtige Funktionen von Digitalsystemen verwirklichen. In diesem Kapitel sollen einige wenige Sonderfunktionen vorgestellt werden, die zusätzlich nötig sind, um bestimmte Funktions- bzw. Strukturaspekte zu berücksichtigen. Busanordnungen
...
BUS
Daten
Adressen
...
...
In vielen Systemen werden die Baugruppen durch Bündel von Signalen miteinander verbunden, die meist allen Baugruppen in gleicher Weise zur Verfügung stehen. Man unterteilt die Signale in typische Gruppen wie z.B. Daten-, Adress- und Steuersignale einschließlich zentralem Takt.
Steuerung+Takt
Bild 8.38: Zusammenfassung von Signalen zu einem Bus Manchmal wird aus Aufwandsgründen ein Zeitmultiplex-Betrieb von Leitungen, z.B. alternativ für Daten und Adressen, vorgesehen. Open-Collector-Schaltungen Sind an einer Busleitung mehrere Baugruppen vorhanden, die Daten auf diese Leitung abgeben können, so müssen mehrere "schreibende" Ausgänge zusammengeschaltet werden können. Geht man von Logikbausteinen (Gattern) aus, welche nur einen Schalter je Variable besitzen, so lässt sich das angesprochene Problem lösen, indem bei allen Ausgangsstufen der nach UB führende Widerstand entfällt und extern an der Leitung angebracht wird. Dann kann jede Ausgangsstufe die Spannung auf der Leitung nach Masse schalten.
246
8 Funktionseinheiten der Digitaltechnik
Us R
... Baugruppe 1
Baugruppe 2
Baugruppe n
lesende Baugruppe
Bild 8.39: „Wired"-Verbindung von Baugruppen Man nennt solche Anordnungen wired-Verbindungen, und die realisierte logische Verknüpfung wired OR bzw. wired AND. Infolge der unsymmetrischen Lastverhältnisse können diese Schaltungen nur begrenzt eingesetzt werden. Tri-State-Schaltungen Wie schon im Kapitel 7.3 gezeigt wurde, sind zwei Schalter je Variable besser in Bezug auf das Ausgangslastverhalten. Es liegt daher nahe, solche Ausgangsstufen auch in Busanordnungen einzusetzen. Eine Verlagerung eines Schalterteils auf den Bus wie beim Widerstand ist dann allerdings nicht mehr möglich. Damit kann es aber zu Kurzschlüssen über mehrere Bausteine hinweg kommen, ein Fall, der am Beispiel zweier Ausgangsstufen gezeigt werden soll:
UB
UB
Kurzschlussstrom
Busleitung
Bild 8.40: Kritische Situation bei Baugruppen mit Zweischalterausgangsstufe Wegen der Gefahr der Zerstörung der Schalter muss daher sichergestellt werden, dass maximal eine Stufe die Busleitung an UB oder Masse legt. Dazu werden die Ausgangsstufen so modifiziert, dass ein zusätzliches Signal OE (output enable) bei Nichtauswahl der Einheit die Ausgangsstufe vom Bus trennt. Die entsprechende Ausgangsleitung zeigt dann keine durch diese Stufe definierte Spannung
8.4 Sonderfunktionen
247
(high impedance). Wird genau eine Stufe selektiert, so werden Kurzschlussfälle sicher verhindert. Busleitung UB
UOE = L
UB
UOE = H
Bild 8.41: Zusätzlicher Betriebszustand für den Ausgang Da jetzt jede Ausgangsstufe drei Betriebsfälle aufweist (Schreiben von L, Schreiben von H, abgetrennt), spricht man von tri-state-Ausgängen (z.T. auch 3-state oder three-state). Die Auswahl der Baugruppe am Bus, welche schreiben darf, kann z.B. über einen Decoder-Baustein erfolgen, da bei diesem sichergestellt ist, dass immer nur an einem seiner Ausgänge der Wert 1 anliegt. Entsprechende Signale muss die Busverwaltung bereitstellen. Werden Busse in Anordnungen verwendet, in denen die Benutzung durch mehrere Komponenten möglich ist, kann es zu sogenannten Zugriffskonflikten kommen, wenn eine gemeinsame Nutzung durch die beteiligten Komponenten zu technischen oder logischen Problemen führt. Es bedarf daher einer Busverwaltung, die als zusätzliche technische Komponente einem Bus zugeordnet wird und die auftretenden Konflikte nach vorgegebenen Regeln auflöst (oft Arbiter genannt). (In Aufgabe 9.1 wird beispielhaft auf ein solches Auswahlproblem von Komponenten an einem Bus etwas näher eingegangen).
248
8 Funktionseinheiten der Digitaltechnik
8.5 Aufgaben Aufgabe 8.1 Im nachfolgenden Bild ist ein 3-Bit Schieberegister zu sehen. Mit jeder ansteigenden Taktflanke wird der aktuelle Speicherinhalt q2, q1, q0 um eine Stelle nach rechts versetzt und der am Eingang D anliegende Wert in die Speicherstelle q2 geladen. q2 q1 q0 SRG C1 Takt D
8.1.1 Das Schieberegister soll als endlicher Automat betrachtet werden. Erstellen Sie dazu die Ablauftabelle. 8.1.2 Um welchen der drei Automatentypen handelt es sich? 8.1.3 Interpretieren Sie den Speicherinhalt als Dualzahl q2.22+q1.21+q0.20. Erstellen Sie einen Automatengraphen, indem Sie Knoten benutzen, die dem dual interpretierten Speicherinhalt entsprechen. 8.1.4 Geben Sie die bei 0 beginnende längste Folge sich nicht wiederholender Zahlen an (zeitlich spätere sollen links von zeitlich früheren Zahlen stehen). Aufgabe 8.2 Im Bild ist ein sogenannter Johnson-Zähler dargestellt, bei dem das invertierte Signal q0 des Schieberegisters als Eingabedatum D verwendet wird. q2 q1 q0 SRG 1
C1 Takt D
8.2.1 Der aktuelle Wert der Speicherzellen sei '000'. Stellen Sie die Folge der Speicherinhalte als gerichteten Graphen dar. 8.2.2 Welche Speicherbelegungen kommen in der Folge nicht vor? Vervollständigen Sie den Graphen aus 8.2.1 entsprechend.
8.5 Aufgaben
249
Aufgabe 8.3 Im folgenden Bild ist eine Speichermatrix gegeben. Die Breite des Speicherwortes beträgt 16 bit, ein Datenwort bestehe aus 4 bit.
X A´´ Zeilendecoder
A´
Spaltendecoder
Speichermatrix 16 x 32
Spaltendecoder
Y 8.3.1 Wieviele Adressleitungen werden insgesamt benötigt? Wie teilt sich die Adresse in Spalten- und Zeilenadresse auf? 8.3.2 Zeichnen Sie Zeilen- und Spaltendekoder mit den Ihnen bekannten Symbolen für Multiplexer und Demultiplexer. Dabei stehen nur (4:1)-Multiplexer und (1:4)- und (1:2)-Demultiplexer zur Verfügung.
Zum Weiterlesen: [SRW82]
Steinbuch, K.; Rupprecht, W.; Wendt, S.: Nachrichtentechnik. Band 3: Nachrichtenverarbeitung. 3. Aufl., Berlin: Springer, 1982
[BÄH94]
Bähring, H.: Mikrorechnersysteme – Mikroprozessoren, Speicher, Peripherie. 2. Aufl., Berlin: Springer, 1994
[ALM89]
Almaini, A. E.: Kombinatorische und sequentielle Schaltsysteme. Weinheim: VCH, 1989
[RCN03]
Rabaey, J.M.; Chandrakasan, A.; Nikoloic, B..: Digital Integrated Circuits. 2nd Edition, Upper Saddle River, New Jersey USA: PrenticeHall, 2003
9 Programmierbare Digitalsysteme 9.1 Notwendige Funktionen für die Verarbeitung Wie man aus der Betrachtung von Rechengeräten, z.B. mechanischen Rechnern oder elektronischen Taschenrechnern, erkennt, sind einige typische Grundfunktionen notwendig, um Rechen- oder allgemein Datenverarbeitungsvorgänge durchführen zu können. Von zentraler Bedeutung sind dabei Funktionen zur Ein- bzw. Ausgabe von Daten an den Nutzer der Einrichtung, Funktionen zur eigentlichen Verarbeitung der Daten (Rechenvorgänge, logische Verknüpfungen u.a.), Funktionen zum Schreiben oder Lesen von Daten, Zwischenergebnissen, Konstanten usw. und Funktionen zur Steuerung des Verarbeitungsvorgangs, da dieser im Allgemeinen aus Gründen des Aufwands schrittweise erfolgt. Man fasst diese Baugruppen häufig in Funktionseinheiten zusammen und realisiert diese in binär arbeitenden Digitalschaltungen. Ein-/Ausgabewerk: Es übernimmt von außen Daten über angeschlossene Geräte, z.B. Tastaturen, Maus, Rollkugel, Digitalisiertablett, Analog/Digital-Wandler usw. zur Verarbeitung
Eingabe
Ausgabe E/A
Bild 9.1: Ein-/Ausgabewerk Neben der Anpassung externer Geräte in elektrischer Hinsicht werden die Daten meist auch in eine geeignete, normierte Darstellung überführt, bevor sie zur Verarbeitung übergeben werden. Entsprechend übernimmt dieses Werk auch die Aufgabe, bearbeitete Daten im passenden Format und elektrisch aufbereitet an externe Geräte weiterzuleiten, z.B. Bildschirm, LCD- oder LED-Anzeige, Digital/ Analog-Wandler usw. Ist mehr als je ein Ein- bzw. Ausgabegerät vorhanden, so muss über zusätzliche Angaben die Auswahl der externen Geräte erfolgen. Rechenwerk (Arithmetisch/Logische Einheit ALU): Zur Verarbeitung von Daten lassen sich vielfältige Vorschriften angeben, die in entsprechende Digitalschaltungen abbildbar sind. Aus Kostengründen und wegen einer allgemeinen, also problemunabhängigen Nutzung beschränkt man sich aber auf wenige Basisfunktionen aus den Bereichen der numerischen und logischen Verknüpfungen. Einfache Rechenwerke leisten z.B. nur die (Festkomma-) Addition, die Komplementbildung, die stellenweise Konjunktion und Disjunktion sowie Negation.
252
9 Programmierbare Digitalsysteme
Typischerweise beschränkt man diese Werke auf Operationen mit maximal zwei Operanden einer gegebenen maximalen Stellenzahl und damit bei numerischer Verarbeitung einer bestimmten Genauigkeit. Operand 1 Operand 2
Bedingungs-
Art der Operation ALU
vektor
(Operationscode)
Ergebnis
Bild 9.2: Grundprinzip des Rechenwerkes Häufig interessiert man sich für bestimmte Merkmale eines Operanden oder des Operationsergebnisses wie z.B. Wert gleich null, Wert größer null usw. und erzeugt diese Aussagen durch geeignete Schaltungen. Die Angaben stehen dann als Binärwerte in einem so genannten Bedingungsvektor („flags") zur Verfügung. Speicherwerk: Im einfachsten Fall besteht das Speicherwerk nur aus den wenigen Registern zur Aufbewahrung von Operanden, Bedingungsvektor und Ergebnis.
Adresse SPEICHER
Schreiben/ Lesen
Datenein-/ ausgabe
Bild 9.3: Speicherwerk In der Regel enthält das Werk jedoch einen mehr oder weniger umfangreichen, adressierbaren Schreib/Lese-Speicher mit einer Wortbreite, die z.B. der Länge der Operanden angepasst ist. Damit ist es bei der Abarbeitung möglich, eine große Zahl von Operanden und (Zwischen-)Ergebnissen bereitzustellen bzw. abzulegen, so dass nicht für jede Operation das Ein/Ausgabewerk benutzt werden muss. Die Breite des Adressvektors bestimmt die maximale Zahl der zur Verfügung stehenden Speicherwörter, die direkt adressiert werden können. Leitwerk: Für die Organisation der einzelnen Verarbeitungsschritte und deren zeitlicher Abfolge bedarf es gezielter Eingriffe in die zuvor beschriebenen Werke, um die Angabe von Adressen, die Selektion von externen Geräten, die Auswahl von Operanden und Operationen, die Auswertung des Bedingungsvektors usw. vorzunehmen. Bei mechanischen Rechengeräten, Taschenrechnern usw. übernimmt diese Aufgabe die bedienende Person. Schon Ch. Babbage hat aber
9.1 Notwendige Funktionen für die Verarbeitung
253
erkannt (um 1830), dass man diese Anweisung als zeitliche Folge von Binärinformationen auf ein Lochband übertragen und dann zur Ablaufsteuerung der Verarbeitung einsetzen kann. Auch Konrad Zuse machte 1936 bei seinen ersten Rechenmaschinen von dieser Möglichkeit zur Steuerung Gebrauch. Durch ringförmiges Zusammenkleben solcher Träger können die Ablaufschritte in zyklischer Folge ausgeführt werden. Andere als lineare oder zyklische Abläufe sind damit aber nicht möglich. Um dieses Steuerungsprinzip zu realisieren, bedarf es bestimmter Festlegungen und einer Zugangsmöglichkeit (Schnittstelle) zu den Signalen der anderen Werke. Zunächst ist eine Formalisierung für die Anweisung nötig, die zu den Begriffen Befehl und Befehlsformat führt. Unter einem Befehl versteht man eine (maschinenlesbare) Anweisung, aus der hervorgeht, welche Operation mit welchen Operanden in diesem Schritt auszuführen ist. Ein Befehlsformat stellt eine Verabredung dar, wie diese Angaben (meist binär) darzustellen sind, wobei man in der Regel von einer Vektordarstellung ausgeht, die Komponenten gruppenweise zusammenfasst und mit einer speziellen Bedeutung versieht. Als einfachstes Befehlsformat kann das Einadressformat angesehen werden: Es gliedert den Vektor in zwei Gruppen von Bits; die erste Gruppe gibt die Art des Befehls an (z.B. Addition), die zweite enthält eine Angabe zu Operanden, in der Regel zu einem. Befehl
Operationscode
Angabe zu(m) Operanden
Bild 9.4: Einfaches Befehlsformat Daher sind zusätzliche Vereinbarungen nötig, wo ein zweiter Operand zu finden und wo das Ergebnis abzulegen ist. Ist der Operationscode kompakt dargestellt (d.h. sind die einzelnen Bits nicht unmittelbar Steuergrößen), so muss über einen Decoder der Code entschlüsselt werden. Ein solcher Befehl wird in ein spezielles Register, das sog. Befehlsregister eingeschrieben, das dann elektrisch mit den Steuersignalen der anderen Werke in Verbindung steht und dadurch den Befehl ausführen kann. Es ist dabei zu entscheiden, in welcher Reihenfolge die Befehle dem Register zugeführt und somit ausgeführt werden sollen.
254
9 Programmierbare Digitalsysteme
9.2 Der Universalrechner nach J. von Neumann In den grundlegenden Untersuchungen von Burks, Goldstine und von Neumann [BGN47] wurde ein Rechnerkonzept entwickelt, das universell nutzbar ist und in seinen wesentlichen Konzepten bis heute die Basis der meisten Datenverarbeitungsanlagen darstellt. Diese sog. von Neumann-Rechnerstruktur weist folgende wesentliche Eigenschaften auf: - Es erfolgt eine logische wie auch räumliche Aufteilung der Aufgaben, wie sie die Werke des Kap. 9.1 beschreiben: x Ein-/Ausgabewerk x Rechenwerk (Operationswerk) x Speicherwerk x Leitwerk (Steuerwerk) - Daten und Befehle werden im gleichen Speicher abgelegt und einheitlich behandelt. - Die Gesamtheit aller zur Verarbeitung nötigen Befehle wird in zeitlicher Folge linear geordnet und als Programm bezeichnet. Wegen der elementaren Befehle ist die Rechnerstruktur unabhängig von einer speziellen Aufgabe, solange diese in eine Folge solcher elementaren Befehle zerlegt werden kann. Für die Lösung jedes Problems entsteht so ein zugehöriges spezielles Programm. - Das linear geordnete Programm wird in die lineare Ordnung der Speicheradressen abgebildet. Der jeweils zeitlich unmittelbar nachfolgende Befehl befindet sich daher im Allgemeinen in der um eins erhöhten Adresse im Speicher. - Es gibt spezielle Befehle, deren Adressanteil statt der Lage eines Operanden den Platz im Speicher angibt, wo der nächste auszuführende Befehl abgelegt ist (Sprungbefehle). Diese Befehle können in ihrer Ausführung auch von der Auswertung einer Bedingung abhängig gemacht werden (z.B. von Bits des Bedingungsvektors der ALU). Diese bedingten Sprungbefehle erlauben eine wesentliche qualitative Verbesserung der Verarbeitung, da jetzt der weitere Ablauf von dem Auftreten bestimmter Ergebnisse abhängig gemacht werden kann. - Es wird das Einadress-Befehlsformat verwendet. Für den eventuell benötigten zweiten Operanden und für Zwischenergebnisse wird ein spezielles Register, der sog. Akkumulator verwendet. Der erste Operand wird dem Rechenwerk direkt zugeführt. - Die Informationen werden binär verschlüsselt; Zahlen werden im Dualsystem dargestellt (2er-Komplement). Die Umsetzung dieser Prinzipien führt zu einer Rechnerstruktur, die ein besonders einfaches Leitwerk enthält (Bild 9.5).
9.2 Der Universalrechner nach J. von Neumann
255
BZ BR BRC
DEC
MUX
BRA
FBR
+1
MUX
ST
LEITWERK
SPEICHER Daten Adresse
A
SP
Befehle
Steuerung Speicherwerk SR
Steuerung Rechenwerk
RECHENWERK
ALU
Bedingungsbit(s)
AK
E / A - WERK Steuerung E/A-Werk BR BR c BR A ST BZ AR SR AK
Befehls(halte)register Codeteil von BR Adressteil von BR Register für Steuerbits Befehlszähler Adressregister Speicherregister Akkumulator
Eingabe
Bild 9.5: Schema eines einfachen Rechners
Ausgabe
256
9 Programmierbare Digitalsysteme
9.3 Befehlsabläufe Die Struktur dieses Rechnerkonzepts führt zu einer Aufteilung der Verarbeitung in mindestens zwei typische Betriebsabläufe, in die Befehlsholphase und in die Befehlsausführungsphase. Die Befehlsholphase umfasst folgende Aktionen: - Anlegen der Adresse für den nächsten Befehl (FBR o AR) - Auslesen des adressierten Befehls (SP o SR) - Laden dieses Befehls (SR o BR) - Berechnen der nächsten Befehlsadresse (FBR+1 o FBR). Diese Aktionen belegen das Leit- und das Speicherwerk. Im folgenden Bild sind die daran beteiligten Komponenten grau unterlegt.
BZ BR BRC
DEC
MUX BRA
FBR
+1
MUX
ST
LEITWERK
SPEICHER Adresse
A R
Daten Befehle SP
Steuerung Speicherwerk SR
Steuerung Rechenwerk
RECHENWERK
ALU
Bedingungsbit(s)
AK
E / A - WERK Steuerung E/A-Werk
Eingabe
Ausgabe
Bild 9.6: Befehlsholphase des Rechners Daran schließt sich dann die Befehlsausführungsphase an, dabei sind zwei Fälle zu unterscheiden: ALU-Befehle: - Decodieren des Befehlscodes (BRC oST)
9.3 Befehlsabläufe
257
- Setzen der ALU-Steuersignale - Anlegen der Operandenadresse (BRA oAR) - Auslesen des Operanden (SP oSR) - Ausführen der Operation (AK Op SR oAK) - Setzen der Bedingungsbits (ALU oST) Bild 9.7 zeigt die daran beteiligten Komponenten.
BZ BR BRC
DEC
MUX BRA
FBR
+1
MUX
ST
LEITWERK
SPEICHER Adresse
A R
Daten Befehle SP
Steuerung Speicherwerk SR
Steuerung Rechenwerk
RECHENWERK
ALU
Bedingungsbit(s)
AK
E / A - WERK Steuerung E/A-Werk
Eingabe
Ausgabe
Bild 9.7: Befehlsausführungsphase des Rechners Das Ergebnis einer Operation kann entweder im Register AK bleiben, um mit weiteren Operationen verarbeitet zu werden. Ist dies nicht der Fall, so wird der Inhalt von AK entweder in den Speicher geschrieben oder dem E/A-Werk übergeben. Sprungbefehle veranlassen einen anderen Ablauf im Rechner: Decodieren des Befehlscodes (BRC o ST)
258
9 Programmierbare Digitalsysteme
-Unbedingter Sprung: -Bedingter Sprung:
(BRA o FBR) Bedingung erfüllt:(BRA o FBR) Bed. nicht erfüllt: (FBR+1 o FBR)
Bild 9.8 zeigt die beteiligten Komponenten für Sprung-Befehle.
BZ BR BRC
DEC
MUX BRA
FBR
+1
MUX
ST
LEITWERK
SPEICHER Adresse
A R
Daten Befehle SP
Steuerung Speicherwerk SR
Steuerung Rechenwerk
RECHENWERK
ALU
Bedingungsbit(s)
AK
E / A - WERK Steuerung E/A-Werk
Eingabe
Ausgabe
Bild 9.8: Auswirkung eines Sprungbefehls
Ein-/Ausgabevorgänge laufen sinngemäß wie ALU-Transportvorgänge ab. Für von Neumann-Rechnerstrukturen sind einige typische Befehlsgruppen nötig: - Transportbefehle (Daten zum und vom Speicher bzw. zu und von Registern) - Ein-/Ausgabebefehle (können Sonderfälle der Transportbefehle sein) - Arithmetisch/logische Befehle - Sprungbefehle Theoretisch kann man insgesamt mit sehr wenigen Befehlen auskommen, in der Praxis ist die Zahl jedoch wesentlich größer und kann mehrere Hundert erreichen.
9.4 Strukturen wichtiger Funktionsblöcke
259
9.4 Strukturen wichtiger Funktionsblöcke In den Kap. 9.1 und 9.2 waren die Hauptkomponenten und einige Aspekte ihres inneren Aufbaus beschrieben worden. Für das Speicher- und Ein-/Ausgabewerk soll die Betrachtung noch etwas ergänzt werden. Die Speichertechnik stellt neben den Schreib-/Lesespeichern noch weitere Speichertypen, insbesondere Festwertspeicher (ROMs) zur Verfügung, die den Vorteil bieten, meist preiswerter zu sein und beim Abschalten der Versorgungsspannung den Speicherinhalt beibehalten zu können. Sie sind besonders gut geeignet, Konstanten und grundsätzliche Befehlsabläufe zu halten. Es erscheint daher sinnvoll, den Speicher in zwei oder mehr Teilspeicher aufzuteilen, so dass neben dem Schreib-/Lesespeicher z.B. auch Festwertspeicher vorhanden sind. Um sie im Betrieb trennen (selektieren) zu können, wird nur ein Teil des Adressvektors an alle Speicherbereiche gleichzeitig angelegt. Der restliche Teil (meist die höchstwertigen Binärstellen) wird über Decoder geführt und dient zur Auswahl der Bereiche. Auch innerhalb von Speicherbereichen kann durch das gleiche Verfahren in Unterbereiche (z.B. einzelne Chips) aufgeteilt werden. Die Auswahl über Decoder stellt sicher, dass die verschiedenen Bereiche disjunkt angesprochen werden. Für die Selektion von Ein-/Ausgabegeräten kann man je eigene Steuersignale vorsehen und damit die Geräte aktivieren. Ein heute weit verbreitetes Prinzip nutzt aber die Idee der Selektion von Daten über die zugeordnete Adresse des Speichers und behandelt die Daten der externen Geräte so, als ob sie im Adressraum des Speichers lägen („memory mapped I/O "). Besondere Steuerleitungen können daher entfallen. Die externen Geräte stellen über die angelegte Adresse fest, ob sie betroffen sind (Adressdecoder); die Richtung des Datenflusses kann über die Schreib-/Lese-Steuerung des Speichers bestimmt werden. Zusammen mit der Aufteilung des Speichers in Teilspeicher ergibt sich daher eine sinnvolle Homogenisierung der Selektionsvorgänge durch Aufteilen des Adressraums.
260
9 Programmierbare Digitalsysteme
00...0H Schreib- / Lesespeicher F0...0H Festwertspeicher FE...0H E / A-Geräte FF...FH
Bild 9.9: Beispiel einer Speicheraufteilung Die Bilder 9.9 und 9.10 zeigen eine mögliche Aufteilung des Adressraums und eine einfache Struktur einer Adressdecodierung. Adresse Schreiben / Lesen
DEC
SP1
SP2 (ROM)
EGerät
AGerät
E/AGerät
Daten / Befehle
Bild 9.10: Busorientierte Anordnung von Rechnerkomponenten
Adress-, Steuer- und Datenleitungen werden in modernen Rechnern meist zu Bussen zusammengefasst. Allgemein ist ein Bussystem eine als Linien- oder Ringnetz aufgebaute mehradrige Sammelleitung, die den Daten- und Informationsaustausch zwischen den Systemkomponenten einer Datenverarbeitungsanlage ermöglicht. Der Datenaustausch zwischen den Aus- und Eingängen der an den Bus angeschlossenen Komponenten erfolgt hierbei im Zeitmultiplexbetrieb, wodurch aber auch ein Flaschenhals in der Kommunikation entstehen kann. Da bei einer von Neuman-Rechnerarchitektur
9.4 Strukturen wichtiger Funktionsblöcke
261
sowohl Befehle als auch Daten im gleichen Speicher liegen und damit auch über denselben Bus transportiert werden müssen, nennt man diesen für die Verarbeitungsgeschwindigkeit von Anwendungen besonders kritischen Engpass auch den „von Neumann-Flaschenhals“. Alle Komponenten eines Bussystems sind über definierte Schnittstellen angekoppelt, die Teil der Busdefinition sind. Der aktuelle Sender kann jeweils zu einem oder mehreren Empfängern (Broadcast) übertragen. Damit keine Kollisionen durch gleichzeitiges Senden mehrerer Busteilnehmer entstehen, ist eine Busverwaltung mit Hilfe so genannter Arbitrierungsverfahren notwendig. Die Busarbitrierung löst die aufgetretenen Zugriffskonflikte der Teilnehmer durch ein möglichst effizientes und faires Zuteilungsverfahren zur Vergabe des Busses. Hierbei kann die Arbitrierung durch einen zentralen Arbiter oder dezentral durchgeführt werden. Je nach weiteren Anforderungen der Anwendungsumgebung verwendet man serielle Busse mit einer Signalleitung oder parallele Bussysteme mit gleichzeitig mehreren Leitungen. Serielle Busse sind in Bezug auf Änderungen im Allgemeinen flexibler als parallele Busse, denn bestimmte Funktionen auf speziellen Leitungen bei parallelen Bussen werden hierbei durch schnell anpassbare (Software-) Protokolle realisiert. Die Festlegung des Bussystems aufgrund dieser Parameter hat, zusammen mit der Wahl des physikalischen Trägers, einen entscheidenden Einfluss auf die Kosten, Geschwindigkeit (Durchsatz) und geometrischen Abmessungen sowie die notwendigen Kodierungs- bzw. Modulationsarten für die zu übertragenden digitalen Signale. Der so genannte Datenbus ist für die eigentliche Nutzdatenübertragung zuständig. Demgegenüber übermittelt der Adressbus Adressen zur Auswahl einzelner Geräte sowie zur Auswahl von Adressen innerhalb der angeschlossenen Geräte. Zum Teil werden Daten und Adressen zeitversetzt auf denselben physikalischen Leitungen übertragen. Der Steuerbus enthält die Kontrolldaten für die Busanforderung und Arbitrierung. Weiterhin überträgt er Steuerdaten zur Initiierung und Abarbeitung von Unterbrechungsroutinen (Interrupts). Für die Stromversorgung und Taktleitungen existieren in der Regel separate Versorgungsbusse. In heutigen Prozessoren und Rechensystemen ist eine Hierarchie von Bussen vorhanden, um die unterschiedlichen Anforderungen der Komponenten in den verschiedenen Hierarchiestufen bestmöglich erfüllen zu können. Im Folgenden werden einige wichtige Architektur- und Verarbeitungsprinzipien heutiger Prozessoren diskutiert, wobei insbesondere auch auf mögliche Parallelverarbeitungsprinzipien und Speicherhierarchien eingegangen wird. Weitere weiterführende nichtkonventionelle Rechnerarchitekturen (rekonfigurierbar) werden in [BEC04] diskutiert.
262
9 Programmierbare Digitalsysteme
9.5 Architektur- und Verarbeitungsprinzipien Die Architektur eines Prozessors legt zum einen die Art, Anzahl und Verschaltung (Struktur) aller rechnerspezifischen internen Funktionseinheiten fest (interne Architektur). Weiterhin wird das detaillierte Zusammenspiel dieser Komponenten über Kontroll- und Datenpfade und der damit einhergehende Befehlssatz inkl. Befehlsformat festgelegt. Hierdurch wird die wichtige Hardware-/Software- und auch Compiler-Schnittstelle bestimmt (externe Architektur), sodass die vorliegende Hardware ausgehend von einer höheren Programmiersprache über Zwischenformate und vom Compiler generierten Maschinencode gesteuert werden kann.
Akkumulator
ALU
Prozessorspeicher
Prozessor
Bild 9.11: Prinzipieller Aufbau einer Akkumulatormaschine Stackpointer Stack .....
Prozessorspeicher ALU
Prozessor
Bild 9.12: Prinzipieller Aufbau einer Stackmaschine
Prinzipiell nimmt man heutzutage eine Klassifizierung der Verarbeitungsprinzipien anhand der Befehlssatzschnittstelle an der Hardware-/Softwaregrenze vor [OBV03]. Hierbei wird in Abhängigkeit von der internen Speicherankopplung der zur Durchführung der Befehle notwendigen Operanden in folgende Klassen eingeteilt: - Akkumulatormaschine - Stackmaschine - Registersatzmaschine - CISC-Architektur (Complex Instruction Set Computer) - RISC-Architektur (Reduced Instruction Set Computer)
9.5 Architektur- und Verarbeitungsprinzipien
263
Registersatz
Prozessorspeicher ALU Prozessor
Bild 9.13: Prinzipieller Aufbau einer CISC-Maschine
Das Organisationsprinzip vieler einfacher früherer Rechner entsprach dem Prinzip der Akkumulatormaschine in Bild 9.11, wie beispielsweise dem Motorola 6809. Hierbei wurden die (Zwischen-) Ergebnisse der ALU-Berechnung in einem speziellen Register, dem Akkumulator, abgespeichert. Weiterhin wurde jeweils in jedem Befehlsabarbeitungszyklus ein Operand aus dem Akkumulator zur Verfügung gestellt. Der zweite Operand wurde aus dem Prozessorspeicher (damals teurer und langsamer Hauptspeicher, heute gibt es zusätzlich schnelle SRAM-basierte Cachespeicher) geladen und das Ergebnis des Befehls wurde dann wieder in den Akkumulator zurückgeschrieben. Mit Hilfe spezieller Befehle wurden zudem Operanden aus dem Prozessorspeicher separat in den Akkumulator geladen und Ergebnisse in den Speicher zurückgeschrieben. Ein weiteres Verarbeitungsprinzip vergangener Rechner ist in Bild 9.12 mit dem prinzipiellen Aufbau einer Stackmaschine veranschaulicht. Hierbei wurden die (Zwischen-) Ergebnisse und Operanden in einem Stapelspeicher (Stack, Last-inFirst-Out – LIFO-Prinzip) abgelegt bzw. zur Verfügung gestellt. In jedem Befehlszyklus werden die Operanden eines Befehls dann immer aus dem Stack geholt und das Ergebnis wieder oben auf den Stack gelegt. Spezielle Lade- und Speicherbefehle holen wiederum Operanden aus dem Prozessorspeicher in den Stack bzw. schreiben Ergebnisse oben vom Stack zurück in den Speicher. Der so genannte Stackpointer zeigt hierbei auf den aktuell freien Platz auf dem Stack und dient somit als Referenz für alle Befehle. Die dritte Kategorie der Registersatzmaschinen entspricht dem Organisationsprinzip heutiger Rechner, wobei der Prozessor eine bestimmte Anzahl universell adressierbarer Registerspeicher enthält. Hierbei müssen die verwendeten Operanden und das zu speichernde Ergebnis explizit adressiert werden. Man unterscheidet in dieser Klasse anhand der Flexibilität der Prozessorspeicheranbindung und der damit einhergehenden unterschiedlichen Mächtigkeit des Operationsvorrats noch zwei Typen von Registersatzmaschinen, nämlich den Register-/Spei-
264
9 Programmierbare Digitalsysteme
Registersatz
Prozessorspeicher ALU Prozessor
Bild 9.14: Prinzipieller Aufbau einer RISC-Maschine chermaschinen (CISC – Complex Instruction Set Computer) und den Register-/ Registermaschinen (RISC – Reduced Instruction Set Computer). Das CISC-Prinzip ist in Bild 9.13 illustriert, wobei im entsprechenden Befehlsformat ein Operand im Registersatz des Prozessors adressiert und ein weiterer aus dem Prozessorspeicher geholt wird. Man wollte Ende der 70er und Anfang der 80er Jahre durch diese Flexibiltät den Anforderungen der Konstrukte höherer Programmiersprachen in beispielsweise Betriebssystem- und Compilersoftware gerecht werden, was ursprünglich von IBM betrieben und später von Intel und Motorola aufgegriffen wurde. Man stellte also beim CISC-Prinzip einen sehr großen Befehlsvorrat mit flexiblen Adressierungsmechanismen bereit. Die damit verbundenen komplexen Maschinenbefehle konnten in der Regel nicht innerhalb eines Taktzyklus‘ abgearbeitet werden, wodurch dann ein einzelner Maschinenbefehl durch eine Sequenz von Mikrobefehlen mittels eines im ROM abgelegten Mikrocodes und mittels einer eigenen Steuereinheit umgesetzt werden musste (Mikroprogrammierung). Die gestiegene Komplexität der Befehlssätze, Befehlsformate und Adressierungsmodi hatten eine enorm steigende strukturelle und organisatorische Komplexität der CPUs zur Folge, wodurch die Effizienz von CISCRechnern litt. Dennoch sind auch heute noch CISC-basierte Architekturen im Prozessorbereich vorhanden (z.B. bei Intel, AMD). Aufgrund der gestiegenen technologischen Möglichkeiten, insbesondere auch wegen der Verfügbarkeit schneller SRAM-basierter Cachespeicher, hat sich die zweite Klasse von Registersatzmaschinen inzwischen weitestgehend durchgesetzt, nämlich die Register-/Registermaschinen (RISC – Reduced Instruction Set Computer). Das RISC-Prinzip ist in Bild 9.14 illustriert. Wenige Instruktionen eines gleichlangen Befehlsformats laden die Operanden ausschließlich aus einem universell adressierbaren Registersatz des Prozessors bzw. speichern die Ergebnisse in den Registern. Ein RISC-Programm ist im Vergleich zu einem CISCProgramm größer, kann allerdings in der Regel schneller ausgeführt werden. Der Datenaustausch zwischen dem Prozessorspeicher und dem Registersatz wird durch spezielle Lade- und Speicherbefehle realisiert. Dementsprechend wird diese
9.6 Pipelining, Superskalarität und Speicherhierarchie
265
Architekturart auch Load/Store-Architektur genannt und hatte ihren Ursprung innerhalb verschiedener Projekte bei IBM und an den Universitäten Stanford (MIPS-Architektur) und Berkeley, die insbesondere die Ausnutzung des Maschinenbefehlssatzes durch die jeweiligen Compiler untersuchten. Durch die Beschränkung des Instruktionssatzes auf die notwendigen Grundfunktionen können die meisten Befehle innerhalb eines einzelnen Taktzyklus ausgeführt werden. Aufgrund der Eigenschaft der Durchführung eines Befehls pro Takt werden RISCProzessoren auch skalare Prozessoren genannt und in ihrer Erweiterung mit dem parallelen Einsatz mehrerer skalarer Ausführungseinheiten dementsprechend superskalar. Weiterhin hat man hier kein mikroprogrammiertes sondern ein fest verdrahtetes Steuer- bzw. Leitwerk, was zu weiteren Geschwindigkeitsvorteilen führt.
9.6 Pipelining, Superskalarität und Speicherhierarchie Durch die physikalische Auftrennung der Instruktions- und Datenspeicher (Harvard Architektur) wurde zusätzliche Parallelität umgesetzt. Die steigende Hierarchie von Caches versuchte gleichermaßen im Laufe der Jahre den „von Neumann-Flaschenhals“ zu reduzieren. Die enorm datenintensiven Anwendungen heutiger Tage und eine Hierarchie von drei Cacheebenen zeigen derzeit die Grenzen des Universalrechners nach J. von Neumann auf. Dennoch ist es das (noch) vorherrschende Architekturprinzip, insbesondere aufgrund vieler Optimierungen zur Förderung paralleler Datenverarbeitung (Pipelining, Superskalarität – wird im Folgenden diskutiert). Zudem werden bei einigen Prozessoren auch RISC-Prinzipien mit Mikroprogrammierung kombiniert. Eine weitere enorme Steigerung der Verarbeitungsgeschwindigkeit und Effizienz wurde durch die Integration des Prinzips der so genannten Fließbandverarbeitung (Pipelining) in den Befehlsablaufzyklus erreicht. Hierbei erfolgt die Verarbeitung sequentieller Befehlsabfolgen jeweils im Prinzip einer Schleife, wobei verschiedene Phasen in der gleichzeitigen Abarbeitung mehrerer Befehle überlappen und damit die Latenz- bzw. Ausführungszeiten entscheidend reduziert werden können. In Bild 9.15 ist das Prinzip einer 4-stufigen Befehlspipeline zur parallelisierten Ausführung von drei Befehlen dargestellt, wobei die überlappenden Befehlsphasen folgende Bedeutung haben: - Befehl decodieren: der nächste durchzuführende Befehl wird aus dem Speicher geholt und entschlüsselt (decodiert), wobei bei RISC-Architekturen in arithmetische/logische Befehle (Operanden sind in Registern bereits vorhanden) und Adressberechnungsbefehle unterschieden wird (Stichwort: Load/ Store-Architektur)
266
9 Programmierbare Digitalsysteme
Befehlsablaufphasen:
Befehl Dekodieren
Operanden Holen
Befehl Ausführen
Ergebnis Schreiben
Pipeline-Register
Befehlspipeliningprinzip (4-stufig): Befehl 1 Operanden Dekodieren Holen
Befehl 1 Ergebnis 1 Ausführen Schreiben Befehl 2 Ausführen
Ergebnis 2 Schreiben
Befehl 3 Operanden Dekodieren Holen
Befehl 3 Ausführen
Befehl 2 Operanden Dekodieren Holen
Ergebnis 3 Schreiben
Bild 9.15: Prinzipieller Aufbau und Ablauf einer Prozessor-Befehlspipeline
- Operanden holen: die notwendigen Operanden werden aus den Registern oder angegebenen Speicheradressen geholt - Befehl ausführen: der Befehl wird aufgrund seines dekodierten Befehlscodes in der ALU ausgeführt (arithmetische/logische und Adressberechungsbefehle bei RISC-Prozessoren) - Ergebnis schreiben: die berechneten Ergebnisse werden in die entsprechenden Register oder Speicheradressen geschrieben Um eine hohe Effzienz durch die Implementierung des Pipeliningprinzips zu erreichen, ist die Granularität (Komplexität) der Stufen und die hierdurch notwendige zeitliche Synchronisation sehr wichtig. Die Operationsprinzipien von RISC-Architekturen legen dabei eine 5-stufige Pipeline nahe: - Instruktion holen - Instruktion decodieren, wobei hier das gleichzeitige Lesen der Operanden aus den Registern enthalten ist - Befehl ausführen (arithmetische/logische und Adressberechnungsbefehle)
9.6 Pipelining, Superskalarität und Speicherhierarchie
267
- Load/Store-Ausführung - Ergebnis schreiben Die möglichen Speicher- und Datenzugriffskonflikte innerhalb der Pipeline-Verarbeitung sollen in diesem Buch nicht behandelt werden, es wird auf die angegebene Literatur verwiesen [OBV03], [BRU02]. Bisher wurde nur eine ALU-Ausführungseinheit betrachtet, die im Falle von RISCArchitekturen die Ausführung der Datenmanipulation innerhalb eines einzelnen Taktzyklus unterstützt. Prinzipiell kann man zusätzlich den gleichzeitigen Einsatz mehrerer skalarer Ausführungseinheiten und von Gleitkommaeinheiten für eine überlappende Pipeline-Befehlsabarbeitung in Betracht ziehen. In diesem Fall liegt eine so genannte superskalare Rechnerarchitektur vor. Hierbei werden aus einer zu verarbeitenden Befehlssequenz gleichzeitig mehrere Befehle den parallelen Ausführungseinheiten zugewiesen (Bild 9.16a), falls dies aufgrund der Datenabhängigkeiten zwischen den Befehlen möglich ist. Dementsprechend enthalten moderne RISC-Prozessoren (Beispiel: IBM PowerPC) mehrere parallele Rechenwerke, um verschiedene Load/Store-, Festkomma-, und Gleitkomma-Befehle auszuführen. Hierzu ist es notwendig einen zusätzlichen Schritt in die Befehlspipeline einzufügen, um die dekodierten Befehle zu analysieren und ggf. den parallelen skalaren Ausführungseinheiten zuzuordnen. Diese Aufgabe wird durch einen so genannten Dispatcher zur Laufzeit innerhalb der Programmausführung erledigt. In Bild 9.16b ist die Integration der zusätzlichen Dispatch-Phase nach den Phasen Befehl decodieren (BD) und Operanden holen (OH) in die Befehlspipeline dargestellt, wobei das Prinzip der Superskalarität anhand der Annahme von zwei parallelen skalaren Ausführungseinheiten (AE 1 und AE 2) verdeutlicht ist. Diese Ausführungseinheiten benötigen dieselbe Anzahl von Zyklen, was bei dem Einsatz von Gleitkommaeinheiten nicht der Fall wäre. Hier müssten zusätzliche Einheiten die außerhalb der gegebenen Programmreihenfolge und Zeitpunkten generierten Ergebnisse den nachfolgenden Befehlen wieder in der richtigen Reihenfolge zur Verfügung stellen (Out-of-Order-Completion Einheiten). Für weitere Details sei auf die angegebene Literatur [OBV03] und [BRU02] verwiesen. Um den Datenengpass in Form des „von Neumann-Flaschenhalses“ zu reduzieren und schnelleren Zugriff auf häufig benötigte Daten zu erhalten (Datenlokalität – räumlich und zeitlich), ist insbesondere in modernen RISC-Architekturen eine mehrstufige Speicherhierarchie realisiert. Hierzu werden heutzutage kleine, schnelle Pufferspeicher (Caches) eingesetzt, die Kopien von denjenigen Daten enthalten sollen, die häufig vom Prozessorkern benötigt werden. Die Cachespeicher sind demzufolge in der Regel als schnelle aber teure statische SRAM-Speicherzellen realisiert und nach Möglichkeit auf demselben Mikrochip wie der Prozessor integriert. In Bild 9.17 ist eine 2-stufige Cachehierarchie und eine insgesamt 3-stufige Speicherhierarchie dargestellt. Der Primärcache auf der 1. Hierar-
268
9 Programmierbare Digitalsysteme
a) Superskalare Befehlabarbeitung
4 Ausführungseinheiten (AE) FestkommaEinheit 1
Befehl Dekodieren + Operanden Holen (BD + OH)
FestkommaEinheit 2
Ergebnis Schreiben (ES)
Dispatcher Load/StoreEinheit
GleitpunktEinheit
b) Superskalares Befehlspipeliningprinzip (2 Ausführungseinheiten-AEs) BD + OH: 1
Dispatch
AE 1
ES 1
BD + OH: 2
Dispatch
AE 2
ES 2
BD + OH: 3
Dispatch
AE 1
ES 3
BD + OH: 4
Dispatch
AE 2
ES 4
BD + OH: 5
Dispatch
AE 1
ES 5
BD + OH: 6
Dispatch
AE 2
ES 6
Bild 9.16: Prinzipieller Aufbau und Ablauf einer superskalaren Prozessor-Pipeline 3. Ebene 2. Ebene 1. Ebene Prozessor
HauptCache
Cache
speicher
Register
Bild 9.17: Prinzipielle Struktur einer RISC-Prozessor Speicherhierarchie chieebene ist in der Regel aufgetrennt in Befehls- und Datencache mit parallelen Zugriffsmöglichkeiten und separaten Speichersteuerungseinheiten, um Instruktionen und Anwendungsdaten gleichzeitig aus den Primärcachebereichen zu holen
9.7 Aufgabe
269
(Prinzip der Harvardarchitektur). Der Sekundärcache auf der 2. Hierarchieebene ist ebenfalls SRAM-basiert und meistens on-Chip integriert, wobei heute inzwischen schon 3-stufige Cachehierarchien realisiert sind, allerdings mit immer noch deutlich geringeren Kapazitäten als die langsameren jedoch billigeren DRAMbasierten Hauptspeicher. Ein wichtiger Aspekt im Zusammenhang mit Cachespeichern ist die dynamische Speicherverwaltung, um immer nach Möglichkeit die richtigen, gerade benötigten sowie aktuell gültigen Daten in den Primärcache bzw. Sekundärcache zu laden. Wenn häufig benötigte Daten, beispielsweise innerhalb von Schleifenkonstrukten, oftmals nicht in den Cachespeichern vorhanden sind (Cache Miss) und demzufolge unter Umständen über die gesamte Speicherhierarchie nachgeladen werden müssen, kann dies sogar ein großer Nachteil sein. Die verwendeten so genannten Verdrängungsstrategien (bspw. Least Recently Used – LRU) sind somit für dieses Konzept entscheidend. Die möglichen und optimierten Cache-Strukturen sowie die einhergehenden Adressierungsmechanismen, Verdrängungsstrategien und Cache-Kohärenz-Protokolle (Sicherstellung, dass aktuelle Daten aller Caches identisch sind mit den zuletzt geschriebenen Hauptspeicherdaten) sind in [OBV03] und [BRU02] beschrieben.
9.7 Aufgabe Aufgabe 9.1 Das im Folgenden gezeigte Rechnersystem besteht aus den drei Komponenten K1 bis K3. Diese Komponenten kommunizieren über einen gemeinsamen Datenbus miteinander, d.h. jede der drei Komponenten kann Daten auf den Bus schreiben und Daten vom Bus lesen. Selbstverständlich dürfen nie gleichzeitig zwei oder drei Komponenten auf den Bus schreiben. Deshalb wird ein so genannter Arbiter eingeführt, der die Schreibzugriffe regelt. Für den Arbiter soll ein MooreAutomatengraph entwickelt werden, der sich in ein synchrones Schaltwerk umsetzen lässt. Folgende Vorgaben sind im Weiteren zu beachten: • Falls eine Komponente Kj Daten auf den Datenbus schreiben möchte, stellt sie eine Anforderung an den Arbiter, indem das Signal Aj auf 1 gesetzt wird. Ansonsten hat das Signal Aj den Wert 0. • Über die drei Signale S1 bis S3 wird der Schreibzugriff festgelegt. Falls beispielsweise die Komponente 2 die Schreibberechtigung erhalten soll, wird das Signal S2 auf 1 gelegt. Die anderen beiden Signale S1 und S3 haben dann den Wert 0, d.h. diese Komponenten können den Bus nur lesen.
270
9 Programmierbare Digitalsysteme
• Falls keine der drei Komponenten einen Schreibzugriff anfordert, werden alle drei Signale Sj auf 0 gesetzt. • Nach spätestens drei Taktperioden muss jede Komponente auf eine Anforderung hin einen Schreibzugriff für mindestens eine Taktperiode erhalten! • Der Arbiter soll die Schreibzugriffe nicht in festen Zeitabständen zuteilen, sondern am Bedarf der Komponenten orientieren.
Takt A1
Arbiter
S3
S1 A2
K1
A3
S2
K2
K3
Datenbus
9.1.1 Vervollständigen Sie den im Folgenden vorgegebenen Automatengraphen für den Arbiter, indem Sie die restlichen Zustandsübergänge einzeichnen. Die vorgegebenen Zustände haben dabei die in der Tabelle beschriebene Bedeutung:
Zustand 0 1 2 3
Bedeutung Kein Schreibzugriff erteilt Schreibzugriff für Komponente 1 Schreibzugriff für Komponente 2 Schreibzugriff für Komponente 3
9.7 Aufgabe
271
000
Legende: 0 000
Zustand
0
S 1S 2S 3
000
A 1A 2A 3
000
000
01001
1-2
111
000
010
010 1
3
100
001
001
Hinweis: Es sollen keine weiteren Zustände angefügt werden!
9.1.2 Der Automat befinde sich nun im Zustand „0". Geben Sie die nächsten fünf Zustände an, die Ihr Automat annimmt, falls die Eingangsvariablen A1, A2 und A3 konstant den Wert 1 haben.
Zum Weiterlesen: [KLA89]Klar, R.: Digitale Rechenautomaten: Eine Einführung in die Struktur von Computerhardware. 4. Aufl., Berlin: De Gruyter, 1989 [OBV03]Oberschelp, W.; Vossen, G.: Rechneraufbau und Rechnerstrukturen. 9. Aufl., München: Oldenbourg, 2003 [GSW81]Ganzhorn, K. E.; Schulz, K. M.; Walter, W.: Datenverarbeitungssysteme. Berlin: Springer, 1981 [BRU02]Brinkschulte, U.; Ungerer, T.: Microcontroller und Mikroprozessoren. Berlin, Heidelberg, New-York: Springer, 2002 [BEC04]Becker, J.: Dynamisch Rekonfigurierbare Architekturen. In: it – Information Technology, 2004, Band 46, Heft 4, S. 218-225
Lösungshinweise Aufgabe 3.1 3.1.1 Intervall: 99,95 d A d 100,05 3.1.2 Intervall: 99,91 d A d 100,09 undefinierte Bereiche: 100,0
99,9
99,8
100,2
100,1
m [kg]
Aufgabe 3.2 3.2.1 Die undefinierten Bereiche liegen an den Intervallgrenzen. Ihr Wirkungsbereich lässt sich annähern, indem man die Toleranzbreite zum Kreisumfang in Beziehung setzt:
Toleranz ------------------------Umfang
Winkelbereich 360
| -----------------------------------------
Radius
Umfang
Winkelbereich
3 cm 4 cm 5 cm 6 cm
18,8 cm 25,1 cm 31,4 cm 37,7 cm
3,82° 2,86° 2,29° 1,91°
Intervall
Signalwert
undef. Bereich
Intervall
Signalwert
undef. Bereich
0°-22,5° 22,5°-45° 45°-67,5° 67,5°-90° 90°-112,5° 112,5°-135° 135°-157,5° 157,5°-180°
0000 0001 0011 0010 0110 0111 0101 0100
1,91° 2,29° 1,91° 2,86° 1,91° 2,29° 1,91° 3,82°
180°-202,5° 202,5°-225° 225°-247,5° 247,5°-270° 270°-292,5° 292,5°-315° 315°-337,5° 337,5°-360°
1100 1101 1111 1110 1010 1011 1001 1000
1,91° 2,29° 1,91° 2,86° 1,91° 2,29° 1,91° 3,82°
3.2.2 Zur Auflösung auf 1° genau benötigt man 360 Sektoren und ld360 = 9 Schleifenkontakte. Die Codierung mit einem zyklischen Gray-Code, der mit 0 0000 0000 beginnt, ist nicht möglich. Abhilfe: Beginn der Codierung verschieben. Aufgabe 3.3 3.3.1 Dem Informationsgehalt von 1 bit entspricht die Wahrscheinlichkeit von 0,5, d.h. das Verhältnis der Anzahl 'jung' (bzw. 'alt') zur Gesamtzahl muss 0,5 betragen: Gesamtzahl (in Tausend) = 61 226 Anzahl 'jung' ('alt') = 30 613 Jung: Ein Mensch ist höchstens 37 Jahre alt Alt: Ein Mensch ist 38 Jahre oder älter 3.3.2 p1 =p (0 bis 13) | 0,136
H1 | - ld 0,136 bit | 2,878 bit.
p2 =p (über 13) | 0,864
H2 | - ld 0,864 bit | 0,211 bit.
274
Lösungshinweise
Aufgabe 4.1 4.1.1 Das Zeichen "$" wurde offensichtlich falsch übertragen, da die Parität ungerade ist. 4.1.2 Zweifachfehler sind mit der einfachen Paritätssicherung nie erkennbar. Aufgabe 4.2 4.2.1 Eine denkbare Lösung: a: 1, b: 01, c: 000, d: 001. 4.2.2 Maximale Buchstabenanzahl: 9, z.B. 1 1 1 1 1 1 1 1 1. Minimale Buchstabenanzahl: 3, z.B. 0 0 0 0 0 1 0 0 1. 4.2.3 m = 0,5 x 1 + 0,25 x 2 + 0,05 x 3 =1,75 . 4.2.4 m = ld 4 = 2. Aufgabe 4.3 4.3.1 Voraussetzung: ein Fehler pro Block 4.3.2 Korrektur zweier Zeilen: Binärcode
Prüfbit
Hex-Code
ASCII-Zeichen
100 0011
1
43
C
(1. Block/3. Zeile)
101 0100
1
54
T
(2. Block/1. Zeile)
Aufgabe 4.4 4.4.1 Für die Erkennung wird eine Hamming-Distanz von 2 benötigt; man erhält dann maximal vier codierbare Zeichen. 4.4.2 Für die Korrektur wird eine Hamming-Distanz von 3 benötigt; dann erhält man maximal zwei codierbare Zeichen. 4.4.3 Es sind insgesamt acht Lösungen möglich, z.B. A: 000, B: 111. 4.4.4 Korrektur der empfangenen Daten: 001 110 001 110. Aufgabe 4.5 4.5.1 Vorzeichen: „+“, Exponent=128+2+1=131, Mantisse=1,5. 1,5 x 2131-127 = 1,5 x 24 = 24. 4.5.2 4=22 Exponent := Exponent + 2 0 10000101 10 ... 01 4.5.3 -[(20+2-2+2-5) x 26]D = - 82D. 4.5.4 [- 7,125]D = [- 111,001]B = [(-1)1 x 2 129-127]D x [1,11001]B 1 10000001 11001000000000000000000
Lösungshinweise
275
Aufgabe 4.6 Nein, denn drückt man die Basis eines polyadischen Zahlensystems im Zahlensystem selbst aus, lautet sie immer 10, so z.B. 16D = 10H, 2D= 10B. Aufgabe 4.7 4.7.1 b0 = 3 a1 + a0. 4.7.2 1 000 000T = 36T = 93 = 1 000N. 4.7.3 7322N = 7 x 93 + 3 x 92 + 2 x 9 + 2 = ... = 21100202T. Aufgabe 5.1 Regeln R1, R2, R3, R5 und R6 (Huntingtonsche Axiome). Aufgabe 5.2 5.2.1 A B = { a, b, e, f, (c, d), (a, c) } 5.2.2 A B = { b } 5.2.3 M = P(C), also die Menge aller Teilmengen von C. 5.2.4 M = { , { a }, { b }, { c }, { a, b }, { a, c }, { b, c }, { a, b, c } } 5.2.5 M = D bzw. M = CD(E), also das Komplement von E bezüglich D Aufgabe 5.3 5.3.1 Der Graph darf ungerichtet und ohne Schleifen sein, da die Relation reflexiv und symmetrisch ist:
a c
b
5.3.2 a D a, a D b, a D c, b D a, b D b, b D c, c D a, c D b, c D c. Es sind auch andere Lösungen denkbar. Aufgabe 5.4 5.4.1 Eigenschaften des Graphen G: endlich, zusammenhängend und planar. 5.4.2 Geometrischer Graph H:
5.4.3 Kettenprogression: 1 - 4 - 8 - 9 - 7 - 6 - 2 oder 1 - 5 - 8 - 9 - 7 - 6 - 2. 5.4.4 Einen solchen Graphen bezeichnet man als aufspannenden Baum.
276
Lösungshinweise
Aufgabe 5.5 5.5.1 Bipartiter Graph: 5V
RC
T2 A
T1
R1
E
D1
R2
GND
5.5.2 Graph nach Umwandlung des Transistorknotens (Graph ist nach wie vor bipartit): 5V
R
A
E
T1
R1
D
T2
T3
R2
GND
5.5.3 Graph nach Transformation (Graph ist nicht mehr bipartit): 5V
R A E
D
T1
R1
T2
R2
T3
GND
Lösungshinweise
277
Aufgabe 5.6 5.6.1 Die Operatoren auf dieser Grundmenge bilden keine Boolsche Algebra, da |M| z 2n. 5.6.2 Die Operationen sind abgeschlossen, weil alle Verknüpfungsergebnisse wieder Elemente aus M sind. 5.6.3 Die Verknüpfungstabellen sind symmetrisch zu ihrer Hauptdiagonalen; daher gilt das Kommutativgesetz. 5.6.4 Prüfung auf Distributivität: ? (a T b) A c = (a A c) T (b A c) ? (1 T 1) A 1 = (1 A 1) T (1 A 1) ? 2 A 1= 0 T 0 1z 0 Das Distributivgesetz gilt also nicht. 5.6.5 Das neutrale Element bezüglich T ist 0, bezüglich A 2. 5.6.6 Verknüpfungen mit komplementären Elementen: a 0 1 2
a A a
a Ta
0T 2 = 20A2 = 0 1T1=2 1A1 = 0 2T0=2 2A0 = 0
Es ergeben sich die neutralen Elemente aus 5.6.5. Die Zuordnung entspricht dem 4. und 5. Huntingtonschen Axiom. Aufgabe 5.7 5.7.1 Besonderheit: Der Schalter bei Uc wird in beiden Richtungen durchflossen. 5.7.2 Ausdruck: Uy = (Ua ser (Ud par (Uc ser Ue))) par (Ub ser (Ue par (Uc ser Ud))). 5.7.3 Alle Lösungen für Uy = UB: Ue
Ud
Uc
Ub
Ua
H H -
H H
H H
H H
H H -
Aufgabe 6.1 6.1.1 yE= (e V d) & (e V b ) & (c V b V a) & ( d V c V a) 6.1.2 yE= (e V d b ) & (c V b V a) & ( d V c V a ) = (...) = ec V ea V e d b V dc b V d b a
278
Lösungshinweise
Aufgabe 6.2 y
e a
a 1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
-
0
0
-
-
1
0
0
0
0
0
-
-
1
0
0
0
b d
c Aufgabe 6.3 6.3.1 y
e a
a 0
0
0
-
1
0
0
0
1
-
0
1
1
1
-
1
1
-
0
-
1
0
-
1
-
1
0
-
1
0
0
0
b
d c
6.3.2 yDMF = c a V eb d V e c d V b a
oder yDMF = c a V eb d V e c d V c b
Aufgabe 6.4 6.4.1
a
b
0
1
1
1
1
1
1
1 c
Lösungshinweise
279
6.4.2
a
b
1
0
0
1
0
0
0 0 c
6.4.3
a
b
1
1
0
0
1
1
0
0 c
Hinweis: In 6.4.1 bis 6.4.3 handelt es sich um Lösungsbeispiele. Aufgabe 6.5 6.5.1 a = a { 0. 6.5.2 Unter Verwendung von 6.5.1 erhält man: a & b = a V b = ( (a{0) V (b{0) ) { 0 = (a V b) { a{ b Aufgabe 6.6 k0=1, k1=1, k2=1, k3=1: y= 1 { a { b { ab = (...) = a V b . k0=1, k1=1, k2=0, k3=1: y = 1 { a { ab = (...) = a V b. Aufgabe 6.7 6.7.1 fg = xfg V x fg. ?
xf V x g = xf V x g V xfg V x fg = x(f V fg) V x (g V fg) = xf V x g. 6.7.2 ab c c a cd = bcd, abc c ab c = bb c = 0.
280
Lösungshinweise
Aufgabe 6.8 6.8.1 pj\Ei E1 E2 E3 E4 E5 E6 Kosten € a x x 1,b x x 2,c x x x 3,d x x 4,e x x 5,f x x x x 6,6.8.2 6.8.3 6.8.4 6.8.5
Kernspalte: E1, gestrichene Spalten: E1, E2. dominierte Spalte: E3, gestrichene Spalte: E4. dominierende Zeilen: d, b, (f), gestrichene Zeilen: e, c. Kernspalte: E5, gestrichene Spalten: E5, E6, gestrichene Zeile: f. Es bleibt keine Resttabelle übrig. 6.8.6 Minimallösung: {a, b, d}, Kosten: 7,- €. Aufgabe 6.9 6.9.1 Pflanzen: A, G. Monate: März, April, September und Oktober. 6.9.2 PA=(pB V pD)(pC V pD V pE)(pC V pE V pF)(pE V pF). 6.9.3 Nach der Umformung erhält man: PA=pBpE V pDpE V pDpF V pBpCpF. Kosten: 11,-14,-9,-8,-6.9.4 Pflanzen der günstigsten Lösung: A, B, C, F, G. Gesamtkosten in €: 3+4+2+2+4=15.
Lösungshinweise
281
Aufgabe 7.1 7.1.1 s4
s3
s2
s1
0 0 0 0
0 0 0 0
0 0 1 1
0 1 0 1
0 0 0 0
1 1 1 1
0 0 1 1
1 1 1 1
0 0 0 0
1 1 1 1
1 1 1 1
PT
a4
a3
a2
0
0
0
0
0 1 0 1
0 0 0 0
0 0 0 1
0 1 1 0
1 0 1 0
0 0 1 1
0 1 0 1
1 1 1 1
0 1 1 1
1 0 0 1
1 0 1 0
0 0 1 1
0 1 0 1
1 -
1 -
1 -
1 -
x x x
x x x
7.1.2 a3 = s3, a0 = s0 7.1.3 a2
s0
s1 D
-
-
0
0
A
-
0
1
0
C
1
1
-
-
1
-
1
0
F
s3
s2 B
E
7.1.4 Primimplikate von a2: A: s3 V s1, B: s2 V s1 V s0, C: s3 V s0, D: s3 V s2, E: s2 V s1 V s0 , F: s2 V s1 V s0. Kernimplikate: B und D.
a1
282
Lösungshinweise
Aufgabe 7.2 7.2.1 QQ q1Q
QQ+1
q2Q
Y
q2Q+1
q1Q+1
f
g
J2
K1
J1
K1
1 0 0
1 1 0
0 0 1
0 0 -
1 0 0
-
1 1 0
-
0 1
1 0
1
1
0 1
-
-
0 1
0 1 1
0 1 0
1 1 0
0 0 1
-
1 0 0
0 1 0
-
0
0
0
0
-
1
-
1
XR(0):x2,x1 0
0 0 0
1 0 0
0 0 0
0 1
XR(1):x1 1
0 0
1 0
1 1
XR(2):x2,x1 2
1 1 1
0 1
0 0 0
0 1 1
XR(3): 3
1
1
7.2.2 Mit Hilfe von Symmetriediagrammen erhält man: fDMF = qQ2 qQ1 x1 V qQ1 x2x1 V qQ2 qQ1 und gDMF = qQ2 qQ1 x2 x1 V qQ2 qQ1. Aufgabe 7.3 7.3.1 Zahl der Zustände: 4. 7.3.2 Es handelt sich um einen Medwedew-Automaten, da die Ausgänge dem Zustandsvektor entsprechen. 7.3.3 B1Q+1=0, B0Q+1=0. 7.3.4 Signalverlauf: 1
C
0
1
A
0
1
B1
0 1 0
B0 8
10
12
14
16
t
Lösungshinweise
283
Aufgabe 7.4 7.4.1 Es handelt sich um ein Moore-Schaltwerk. 7.4.2 Mögliche Zustandsfolgen: (a) 1 2 ... 2 1 (b) 1 2 ... 2 3 3 ... 3 4 (c) 1 2 ... 2 1 Die Anzahl identischer Zustände bei (b) und (c) hängt von der Taktfrequenz und der Geschwindigkeit ab, mit der die Person den Raum betritt. 7.4.3
1
0
00 10
01
1
A
4
B=0
B=1
L1
L2
1
1
2
5
B= -
B= -
L1,L2
L1,L2 11
11
3
6
B= -
B= -
L2
L1 0
0
0
01
1
00
10
284
Lösungshinweise
7.4.4 und 7.4.5 Zustand
q3
QQ q2
QQ+1 q3 q2 q1
q1 XR(1):L2,L1
1
0 0
0 0
1 1
-
0 1
1
0
1
0 0 1
0 1 1
0 1
0 0
1 1
0
0
0
0 1
-
0 1 0
0 0 0
1 1 0
1
1
0
0 1
-
1 0
1 0
0 0
0
1
1
0 1 1
0 0 1
1 0
1 1
0 1
1
1
1
-
0 1
S1
0 0
0
0 1
-
0 0
0 0
-
-
1 0 0
0 0
-
0 0 0
0 0 1
0
-
0 -
1 0
0 -
1 0
-
0 0
1 1
0 1
0
0 0
-
0
0 1
0 0
1 0 1
0 0 0
-
1 0 0
0 -
1 0
0 -
1 0
0 -
0 0
-
Y(5):B 1 0 1
1 1 1
0 1 1
XR(6):L2,L1 6
R1
Y(4):B
XR(5):L2,L1 5
S2
Y(3):B
XR(4):L2,L1 4
R2
Y(2):B
XR(3):L2,L1 3
S3
Y(1):B
XR(2):L2,L1 2
R3
Y(6):B
0 1
0 1
1 1
-
7.4.6 Die Freistellen von B wurden so verfügt, dass die Zustandsfolgen 1-2-3-4 bzw. 4-5-6-1 zu den Ausgaben 1-0-1-0 bzw. 0-1-0-1 führen. Abhilfe: B = q2 oder B = q1. 7.4.7 Aus dem Moore-Schaltwerk wird ein Mealy-Schaltwerk.
Lösungshinweise
285
Aufgabe 8.1 8.1.1 Ablauftabelle: q2Q
q1Q
q0Q
D
q2Q+1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
q1Q+1
q0Q+1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
8.1.2 Es handelt sich um einen Medwedew-Automaten. 8.1.3 Automatengraph: 1 1
4
6 0
1
1 0
0
0
1
0
5
2
7
1 0
0
1
1 0
0
3
8.1.4 Zahlenfolge: F=0,4,6,7,3,5,2,1 oder F=0,4,2,5,6,7,3,1.
1
286
Lösungshinweise
Aufgabe 8.2 8.2.1 Graph: 110 111
100
011
000
001 010 101
8.2.2 Fehlende Speicherbelegungen: 010, 101. Aufgabe 8.3 8.3.1 Ein Speicherwort enthält 4 Datenworte (=16/4), die mit ld4=2 Adressleitungen (A") selektiert werden können. Für die Zeilendecodierung (A') sind ld32=5 Adressleitungen nötig.
Lösungshinweise
287
8.3.2 Schaltung:
Speichermatrix 16 X 32
288
Lösungshinweise
Aufgabe 9.1 9.1.1 Graph: Legende: 000
000
Zustand
0
0
S 1S 2S 3
000
000
A 1A 2A 3
000
01-
2 -1-
100
1 100
000
001
1--
010
1-0
010 --1 01-
1--
111
3 001
-01
9.1.2 Zustandsfolge : 0 – 1 – 2 – 3 – 1 – 2 .
001
Abkürzungen Verbände, Normungsgremien, Fachgesellschaften ANSI CCITT DIN IEC IEEE GI ISO ITG ITU PTB VDE
American National Standards Institute Comité Consultativ International Téléphonique et Télégraphique (bis 1994 Untergremium der ITU) Deutsches Institut für Normung International Electrotechnical Commission Institute of Electrical and Electronics Engineers Gesellschaft für Informatik International Organization for Standardization Informationstechnische Gesellschaft im VDE International Telecommunication Union Physikalisch-Technische Bundesanstalt Verband der Elektrotechnik, Elektronik, Informationstechnik
Technische Begriffe ALU ASCII BCD BDD Bit Byte CMOS DNF DRAM EEPROM EPROM FET FIFO FRAM HD KNF LCD LED
Arithmetic Logic Unit American Standard Code for Information Interchange (mit 7 Bit) Binary Coded Decimal Binary Decision Diagram Binary Digit Zusammenfassung von 8 Bit Complementary MOS Disjunktive Normalform Dynamisches RAM Electrically Programmable and Erasable ROM Electrically Programmable ROM Feldeffekttransistor First In First Out Speicher Ferroelectric Random Access Memory Hamming-Distanz Konjunktive Normalform Liquid Crystal Display Light Emitting Diode
290
LIFO LSB MOS MRAM MSB NAND NOR OCR PAL PDN PERT PLA PLD PROM PUN RAM ROM SRAM TTL UCS ULA UNICODE WORM XOR
Abkürzungen
Last In First Out Speicher Least Significant Bit Metal Oxide Semiconductor Magnetic Random Access Memory Most Significant Bit NOT AND NOT OR Optical Character Recognition Programmable Array Logic Pull-Down Netz Program Evaluation and Review Technique Programmable Logic Array Programmable Logic Device Programmable ROM Pull-Up Netz Random Access Memory Read Only Memory Statisches RAM Transistor Transistor Logic Universeller Code für Datenaustausch (mit 32 Bit) Universal Logic Array Universeller Code für Datenaustausch (mit 16 Bit) Write Once Read Many Speicher Exclusive OR
Liste der eingesetzten Tools Logic Works............................ .................................http://www.logicworks5.com DigitalSimulator..................................................... http://www.digitalsimulator.de Multimedia Logic................... ........................http://www.softronix.com/logic.html Electric........................................... ........................ http://www.staticfreesoft.com DaNAMiCS............................ http://www.cs.uct.ac.za/Research/DNA/microweb/ danamics/DaNAMiCS.html Platform Independent Petri Net Editor (PIPE2)... http://sourceforge.net/projects/ pipe2
Literaturverzeichnis [AIS67]
Aisermann, M.A.: Logik, Automaten, Algorithmen. München: Oldenbourg, 1967
[ALM89]
Almaini, A.E.: Kombinatorische und sequentielle Schaltsysteme. Weinheim: VCH, 1989
[BÄH94]
Bähring, H.: Mikrorechnersysteme – Mikroprozessoren, Speicher, Peripherie. 2. Aufl., Berlin: Springer, 1994
[BAI73]
Baitinger, U.G.: Schaltkreistechnologie für digitale Rechenanlagen. Berlin: De Gruyter, 1973
[BEC04]
Becker, J.: Dynamisch Rekonfigurierbare Architekturen. In: it – Information Technology, 2004, Band 46, Heft 4, S. 218 - 225
[BEI74]
Beister, J.: A Unified Approach to Combinational Hazards. In: IEEE Trans. on Comp. C-23, 1974, S. 556 - 575
[BEI75]
Beister, J.: Skriptum zur Vorlesung "Entwurf digitaler Schaltungen IA (Grundlagen)". Institut für Nachrichtenverarbeitung, Universität Karlsruhe, 1975
[BER67]
Berger, E.R.: Nachrichtentheorie und Codierung. In: [STE67]
[BES94]
Beuth, K.; Schmusch, W.: Grundschaltungen. 12. Aufl., Würzburg: Vogel, 1994
[BEU87]
Beuth, K.: Digitaltechnik. 5. Aufl., Würzburg: Vogel, 1987
[BGN47]
Burks, A.W.; Goldstine, H.H.; von Neumann, J.: Preliminary Discussions of an Electronic Instrument. Princeton: Institute for Advanced Studies, 1947
[BIB73]
Birkhoff, G.; Bartee, T.C.: Angewandte Algebra. München: Oldenbourg, 1973
292
[BOH80] [BOO54]
Literaturverzeichnis
Bode, A.; Händler, W.: Rechnerarchitektur. Berlin: Springer, 1980 Boole, G.: An Investigation of the Laws of Thought. London: 1854. Nachdruck, New York: Dover, 1954
[BOP81]
Bochmann, D.; Posthoff, C.: Binäre dynamische Systeme. München: Oldenbourg, 1981
[BOS91]
Bochmann, D.; Steinbach, B.: Logikentwurf mit XBOOLE. Berlin: Technik, 1991
[BRU02]
Brinkschulte, U.; Ungerer, T.: Microcontroller und Mikroprozessoren. Berlin, Heidelberg, New York: Springer, 2002
[BRY86]
Bryant, R.: Graph-Based Algorithms for Boolean Function Manipulation. In: IEEE Trans. on Computers, Bd. C-35, 1986, S. 677 – 691
[BUS68]
Busacker R.G.; Saaty, T.L.: Endliche Graphen und Netzwerke: Eine Einführung mit Anwendungen. München: Oldenbourg, 1968
[BWL89]
Baum-Waidner, B.; Lipp, H.M.: Ein verallgemeinertes Zeitmodell unter Berücksichtigung von übergangsabhängigen und trägen Verzögerungen. In: ntz-Archiv 11, H. 2. 1989, S. 53 – 62
[CAN95]
Cantor, G.: Beiträge zur Begründung der transfiniten Mengenlehre. In: Math. Ann. Bd. 46, 1885, S. 481 – 512 und Bd. 49, 1887, S. 207 – 246
[CHJ90]
Chapuis, R.J.; Joel, A.E.: Electronics, Computers and Telephone Switching: A Book of Technological History. Amsterdam: North-Holland, 1990
[DEB68]
De Beauclair, W. : Rechnen mit Maschinen. Braunschweig, Vieweg, 1968
[DEL76]
Deller, H.: Boolesche Algebra. Frankfurt: Diesterweg-Salle, 1976
[DHB89]
Börner, H.: Vom RC-Verstärker zur Mehrfachröhre. In: Funkgeschichte Nr. 66, 1989, S. 4 – 12
[DHR76]
Dirlewanger, W.; Hieber, L.; Rzehak, H.: Aufbau von Datenverarbeitungsanlagen. Berlin: De Gruyter, 1976
Literaturverzeichnis
[DIG85]
293
Dittmann, J.; Gröger, H.-J.: Handbuch der anwenderorientierten Mikroelektronik. Essen: Vulkan, 1985
[DIN84]
DIN 40900 Teil 12 (Schaltzeichen, binäre Elemente). Berlin: Beuth, Juli 1984
[DOU69]
Dournovo, L.A.: Miniatures Arméniennes. Eriwan, 1969
[ESC93]
Eschermann, B.: Funktionaler Entwurf digitaler Schaltungen. Berlin: Springer, 1993
[FLE80]
Fletcher, W.I.: An Engineering Approach to Digital Design. Englewood Cliffs: Prentice-Hall, 1980
[FRE57]
Baron von Freytag-Löringhoff: Eine Tübinger Rechenmaschine aus dem Jahre 1623. In: Heimatkundliche Blätter für den Kreis Tübingen, 11. Jahrg., Nr. 3, Juli 1957
[FRI02]
Fricke, K.: Digitaltechnik. 3. Aufl., Braunschweig, Wiesbaden: Vieweg, 2002
[GLU63]
Gluschkow, W.M.: Theorie der abstrakten Automaten. Berlin: VEB Deutscher Verlag der Wissenschaften, 1963
[GOB57]
Gobbin, H.H.: Vierstellige vollständige logarithmische und trigonometrische Tafeln (nach F.G. Gauß). Stuttgart: Wittwer, 1957
[GRW78]
Grass, W.: Steuerwerke: Entwurf von Schaltwerken mit Festwertspeichern. Berlin: Springer, 1978
[GSW81]
Ganzhorn, K.E.; Schulz, K.M.; Walter, W.: Datenverarbeitungssysteme. Berlin: Springer, 1981
[GUP81]
Gumm, H.-P.; Poguntke, W.: Boolesche Algebra. Mannheim: Bibliographisches Institut, 1981
[HAM50]
Hamming, R.W.: Error Detecting and Error Correcting Codes. In: Bell System Techn. Journal, Bd. 29, April 1950, S. 147 – 160
[HAR74]
Harary, F.: Graphentheorie. München: Oldenbourg, 1974
[HEQ95]
Heise, W.; Quattrocchi, P.: Informations- und Codierungstheorie. 3. Aufl., Berlin: Springer, 1995
294
[HIL92]
Literaturverzeichnis
Hilberg, W.: Grundlagen elektronischer Schaltungen. 2. Aufl., München: Oldenbourg, 1992
[HIP81]
Hilberg, W.; Piloty, R.: Grundlagen elektronischer Digitalschaltungen. 2. Aufl., München: Oldenbourg, 1981
[HPE87]
Hill, F.J.; Peterson, G.R.: Digital Systems: Hardware Organization and Design. New York: John Wiley, 1987
[HUN04]
Huntington, E.V.: Postulates for the Algebra of Logic. In: Trans. Amer. Math. Soc., Bd. 5, 1904, S. 288 – 309
[ITG92]
ITG-Empfehlung 4.2 – 3.01. In: ntz, Bd. 45, 1992, S. 670
[KAR53]
Karnaugh, M.: The Map Method for Synthesis of Combinational Logic Circuits. In: AIEE Trans., Part I, Communications and Electronics, Bd. 72, 1953, S. 593 – 599
[KAU71]
Kaufmann, A.: Einführung in die Graphentheorie. München: Oldenbourg, 1971
[KEL61]
Kelley, J.E. Jr.: Critical Path Planning and Scheduling: Mathematical Basis. In: Operations Research, Bd. 9, 1961, S. 296 – 320
[KIR93]
Kirpal, A.: Aufbruch in die Siliziumzeit. In: Kultur und Technik, H. 1, München: Beck, 1993
[KLA89]
Klar, R.: Digitale Rechenautomaten: Eine Einführung in die Struktur von Computerhardware. 4. Aufl., Berlin: De Gruyter, 1989
[LEL80]
Lewin, D.: Logical Design of Switching Circuits. 2. Aufl., Berlin: VDE, 1980
[LET80]
Lewin, D.: Theory and Design of Digital Computer Systems. 2. Aufl., Berlin: VDE, 1980
[LEU27]
Leupold, J.: Theatrum Arithmetico-Geometricum. Leipzig, 1727. Nachdruck, Hannover: Edition libri rari, Schäfer, 1982
[LIE75]
Liebig, H.: Logischer Entwurf digitaler Systeme (Übungsband). Berlin: Springer, 1975
[LIG80]
Liebig, H.; Giloi, W.: Logischer Entwurf digitaler Systeme. 2. Aufl., Berlin: Springer, 1980
Literaturverzeichnis
[LIP69]
295
Lipp, H.M.: Zur Systematik der Diagramm-Minimisierung. In: Elektron. Rechenanlagen, Bd. 11, H. 5, 1969, S. 267 – 271
[LIP82]
Lipp, H.M.: Strukturiertes Entwerfen in der Digitaltechnik. In: ntz-archiv, Bd. 1, H. 4, 1982, S. 3 – 10
[MCL65]
McCluskey, E.J.: Introduction to the Theory of Switching Circuits. New York: McGraw-Hill, 1965
[MEA55]
Mealy, G.H.: A Method of Synthesizing Sequential Circuits. In: Bell System Techn. Journal, Bd. 34, 1955, S. 1045 – 1080
[MOO56]
Moore, E.F.: Gedanken-Experiments on Sequential Machines. Automata Studies (Annals of Mathematics Studies 34). Princeton: University Press, 1956
[NEL55]
Nelson, R.: Simplest Normal Truth Functions. In: Journal of Symbolic Logic, Bd. 20, H. 2, 1955, S. 105 – 108
[NEU87]
Neuschwander, J.: Ein topologisches Modell der inhärenten Komplexität von Schaltfunktionen. Reihe 10: Informatik/Kommunikationstechnik, Nr. 89. Düsseldorf: VDI, 1987
[OBV94]
Oberschelp, W.; Vossen, G.: Rechneraufbau und Rechnerstrukturen. 6. Aufl., München: Oldenbourg, 1994
[PER86]
Peitgen, H.-O.; Richter, P. H.: The Beauty of Fractals. Berlin: Springer, 1986
[PER92]
Pernards, P.: Digitaltechnik. Heidelberg: Hüthig, 1992
[PER95]
Pernards, P.: Digitaltechnik II. Heidelberg: Hüthig, 1995
[PET56]
Petrick, S.R.: A Direct Determination of the Irredundant Forms of a Boolean Function from the Set of Prime Implicants. Air Force Research Center, Bedfort, MA, Techn. Rep. 56 – 110, April 1956
[PET62]
Petri, C.A.: Kommunikation mit Automaten. Dissertation, Schriften des Rheinisch-Westfälischen Instituts für Instrumentelle Mathematik. Bonn, 1962
[PET93]
Petzold, H.: Zeitzeichen. In: Kultur und Technik, H. 1, München: Beck, 1993
296
[PRO87]
Literaturverzeichnis
Proebster, W.E.: Peripherie von Informationsystemen. Berlin: Springer, 1987
[RAN73]
Randell, B. (Hrsg.): The Origins of Digital Computers – Selected Papers. Berlin: Springer, 1973
[RCN03]
Rabaey, J.M.; Chandrakasan, A.; Nikoloic, B.: Digital Integrated Circuits. 2nd Edition. Upper Saddle River, New Jersey USA: Prentice-Hall, 2003
[REM91]
Rembold, U. (Hrsg.): Einführung in die Informatik. 2. Aufl., München: Hanser, 1991
[ROW91]
Rosenstengel, B.; Winand, U.: Petri-Netze – Eine anwendungsorientierte Einführung. 4. Aufl., Braunschweig: Vieweg, 1991
[RYS25]
Rysen, Adam: Rechnung auff der Linien. Frankfurt, 1525. Nachdruck, Hannover: Vincentz, 1978
[SCH91]
Schneider, H.-J. (Hrsg.): Lexikon der Informatik und Datenverarbeitung. 3. Aufl., München: Oldenbourg, 1991
[SCN79]
Schaller, G.; Nüchel, W.: Nachrichtenverarbeitung. Band 2: Entwurf digitaler Schaltwerke. 2. Aufl., Stuttgart : Teubner, 1979
[SCS89]
Schmidt, G.; Ströhlein, T.: Relationen und Graphen. Berlin: Springer, 1989
[SHA38]
Shannon, C.C.: A Symbolic Analysis of Relay and Switching Circuits. In: Trans. Amer. Inst. Electr. Engrs., Bd. 57, 1938, S. 718 – 723
[SMW02]
von Weiher, S. und M.: Gedenktage technischer Kultur. In: Kultur und Technik, H. 3, München: Beck, 2002
[SRW82]
Steinbuch, K.; Rupprecht, W.; Wendt, S.: Nachrichtentechnik. Band 3: Nachrichtenverarbeitung. 3. Aufl., Berlin: Springer, 1982
[STA80]
Starke, P.H.: Petri-Netze. Berlin: VEB Deutscher Verlag der Wissenschaften, 1980
[STE67]
Steinbuch, K. (Hrsg.): Taschenbuch der Nachrichtenverarbeitung. 2. Aufl., Berlin: Springer, 1967
Literaturverzeichnis
[STR82]
297
Steinbuch, K.; Rupprecht, W.: Nachrichtentechnik. Band 2: Nachrichtenübertragung. 3. Aufl., Berlin: Springer, 1982
[STW74]
Steinbuch, K.; Weber, W., (Hrsg.): Taschenbuch der Informatik Bd. 1-3. Berlin: Springer, 1974
[SWE92]
Sweeney, P.: Codierung zur Fehlererkennung und Fehlerkorrektur. München: Hanser, 1992, in Coedition mit Prentice-Hall International
[TDD83]
Thayse, A.; Deschamps, J.P.; Davio, M.: Digital Systems: With Algorithm Implementation. Chichester: Wiley, 1983
[TZH93]
Tzschach, H.; Haßlinger, G.: Codes für den störungssicheren Datentransfer. München: Oldenbourg, 1993
[VEI52]
Veitch, E.: A Chart Method for Simplifying Truth Functions. In: Proc. ACM, May 1952, S. 127 – 133
[WAL80]
Waldschmidt, K.: Schaltungen der Datenverarbeitung. Stuttgart: Teubner, 1980
[WEN91]
Wendt, S.: Nichtphysikalische Grundlagen der Informationstechnik: Interpretierte Formalismen. 2. Aufl., Berlin: Springer, 1991
[WEY70]
Weyh, U.: Aufgaben zur Schaltungsalgebra. München: Oldenbourg, 1970
[WEY72]
Weyh, U.: Elemente der Schaltungsalgebra. 7. Aufl., München: Oldenbourg, 1972
[WIP80]
Winkel, D.; Prosser, F.: The Art of Digital Design: An Introduction to Top-Down Design. Englewood Cliffs, NJ: Prentice-Hall, 1980
[WUS93]
Wunsch, G.; Schreiber, H.: Digitale Systeme. 4. Aufl., Berlin: Springer, 1993
[ZAN89]
Zander, H.J.: Logischer Entwurf binärer Systeme. 3. Aufl., Berlin: Verlag Technik, 1989
[ZIT92]
Seschke, M.: Zitterdraht. Erster Preis des Wintersemesters 1991/1992 beim jährlichen Wettbewerb für die Studierenden der Vorlesung "Grundlagen der Digitaltechnik". Den Studierenden steht ein ausgearbeiteter Satz Entwurfsunterlagen einschließlich der Bausteinlisten und Verdrahtungspläne für dieses Gerät zur Verfügung.
Sachregister A Abakus 7 Abbildung 110 , bijektive 110 , injektive 110 , Inzidenz110 , surjektive 110 Ablaufdiagramm 206 , -schritt 207 , -tabelle 206 Absorbtionsgesetz 103 Addierer 219 , Halb220 , Voll220 Adressbus 261 Akkumulator 254, 262 -maschine 262 Algebra, Boolesche 96 , Mengen96, 99 , Schalt102, 109 ALU 251 Arbiter 260 , dezentral 260 , zentral 260 Arbitrierung 260 Architektur 261 , externe 261 , interne 261 , load/store 264 Assoziatives Gesetz 103 Ausdruck, schaltalgebraischer 103 , Petrick145 , Struktur172 Ausgabealphabet 190 Auswahlproblem 146 Automat 192 , Ausgabefunktion 192
, Mealy, Medwedew, Moore, Überführungsfunktion , Zustand Automatengraph -tabelle -tafel
193 193 193 192 192 194 194 194
B Basis eines Zahlensystems Baum , aufspannender , ausgeglichener , Blatt , gerichteter , symmetrischer , Wurzel BDD Befehl , SprungBefehlsformat -ausführungsphase -holphase Belegung Belegungsblock Binärbaum -signal -vektor -wert Binärwerte, zusammengesetzte Block , Belegungs-sicherung Boolesche Algebra Broadcast
46 85 86 86 85 78 86 85 116 253 254 253 256 256 111 132 86 28 30 28 29 132 132 43 96 260
300
Busanordnung C Cache -speicher CISC Code , Aiken, ASCII , Austausch, BCD, einschrittiger , Exzess-3, Fernschreib, Gray, Huffman, Morse, numerischer , OCR-A, optimaler , Shannon-Fanø, Stibitz-umschaltung , Uni, UCS-wandlung -wort D Daten -bus De Morgansche Regel Deckgröße Decoder Demultiplexer Diagramm, Ablauf, SymmetrieDigitalspeicher -wert Disjunktion Dispatcher Dominanzregel -relation
Sachregister
245
262 262 262 35 54 38 38 42, 52 38 53 58 38 44 44 46 40 44 44, 45 53 58 40 40 56 35
23 261 103 229 229 226 206 114 236 27 118 267 147 147
, Spalten, ZeilenDualitätsprinzip Dualzahlenaddition
148 148 97 48
E EEPROM Ein-/Ausgabewerk Eingabealphabet Einsblock -stellenmenge -vervollständigung Einschalterprinzip Entropie Entwurf , Bottom-Up, Top-DownEPROM Escape-Sequenz
237 251 190 133 112 139 165 32 19 19 19 237 59
F Fehlererkennung -korrektur , Bündel, Einfach, ZweifachFIFO Fließbandverarbeitung Flipflop , Basis, charakteristische Gleichung , D, JK, RS-symbol , T, Typenübersicht Funktion , Äquivalenz, Ansteuer, Antivalenz, Ausgabe, Basis-
41 41 43 41 41 238 265 199 203 205 200 205 200 205 205 205 109 118 201 189 192 121
Sachregister
, Disjunktions, Implikations, Konjunktions, Rest, Schalt, ÜberführungsFunktionsargument -tabelle -wert
301
118 118 118 129 111 192 111 112 111
G Gatter 163 Gleitkommazahl 55 Granularität 266 Graph, abstrakter 77 , Artikulation 82 , bipartiter 87 , Di78 , dualer 88 , einfacher 78 , endlicher 77 , entarteter 77 , geometrischer 87 , gerichteter 78 , gewichteter 88 , planarer 88 , streng zusammenhängender 79 , Teil78 , vollständiger 78 , zusammenhängender 78 , zyklischer 83 Graphen, isomorphe 78 H Hammingdistanz Harvard-Architektur Hasard -fehler Huntingtonsche Axiome I Implikation Information
36 264 187 187 97
118 1, 23
Informationsgehalt -speicherung -übertragung -verarbeitung Inverter
31 4 3 4 165
K Kanonische Form Kante , adjazente , Gewicht
124 77 77 88
, inzidente Kanten, antiparallele -folgen , Mehrfach-progression Kartesisches Produkt Kellerspeicher Kern primimplikant Kette Kettenprogression Komplementmenge -rechnung , ZweierKnoten , adjazenter , Ausgangsgrad , benachbarter , Eingangsgrad , Gewicht , Grad , isolierter , Nachfolger, VorgängerKomplement Konjunktion
77 80 84 80 83 70 240 147 145 84 84 69 49 49 77 77 77 77 77 88 77 77 77 77 69 118
L Länge Laufzeit Leitwerk
140 203 264
302
Sachregister
LIFO Logarithmentafel Logik, krause , negative , positive
240 7 176 157 157
M Maxterm Memory mapped I/O Menge , Bild, Durchschnitts, Einsstellen, Freistellen, leere , Mächtigkeit , Nullstellen , Potenz, Redundanzstellen, Teil, Unter, Ursprungs, Vereinigungs, ZielMengen, disjunkte -element Mikroprogrammierung Minimalform Minimierung Minterm Multiplexer -baum -schaltnetz
122 259 65 110 68 112 112 67 66 112 67 112 67 67 110 68 110 69 65 263 140 139 122 226 228 229
N Nachricht Napiers Knochen Negationsglied Nelson-Verfahren Normalform, disjunktive , konjunktive Nullblock -stellenmenge
23 8 164 141 124 124 133 112
-vervollständigung
139
O Operation, Disjunktions, Durchschnitts, Konjunktions, neutrale , Vereinigungsoutput-enable
102 68 102 95 68 246
P PAL Parallel/Serienwandlung Parity, even/oddPERT-Methode Petri-Netz , Marke , Stelle , Transition Pipelining PLA Planartechnik PN-Übergang Primblock -einsblock implikant implikat nullblock -term -termüberdeckung Produkt, kartesisches Programm PROM Protokoll Prozessor , skalarer , superskalarer Prüfbit Pseudotetrade
178 235 42 88 90 91 91 91 264 178 12 158 134 134 134 134 134 134 138 70 254 237 17 264 264 264 42 52
Q Quersumme Quine-McCluskey-Verfahren
42 141
Sachregister
R RAM Rechengerät -uhr -werk Redundanz, absolute , relative -stellenmenge Register -maschine , SchiebeRelais -kontakt Relation, Äquivalenz, mehrstellige , Ordnungs, Überdeckungs, Verträglichkeits, zweistellige Restfunktion -tabelle, zyklische Ringschieben RISC ROM
303
236 9 10 251 29 30 112 233 263 233 10, 99 100 71 72 70 72 71 70 129 149 234 262 178, 237
S Schaltalgebra 102, 109 , Basissystem 126 , Entwicklungssatz 127 , Hauptsatz 124 Schaltfunktion 111 , Reed-Muller-Form 127 , Ringsummendarstellung 127 , unvollständig definierte 113 , vollständig definierte 113 Schaltglied 163 , Antivalenz164 , NAND164 , Negations164 , NOR164 , ODER164 -symbol 164 , UND164
Schaltnetz -entwurf Schaltung , integrierte , logische , Open-Collector, Tri-StateSchaltwerk , asynchrones , Entwurf , getaktetes , synchrones Schieberegister -symbol Schleife Schlinge Schnittstelle Serien/Parallelwandlung Signal -bündel , digitales , diskretes , kontinuierliches -matrix -vektor Spannungsfunktionstabelle Speicher -adresse -aufteilung , Binär-kapazität , Puffer, RAM, SAM, Stapel-werk -zelle, dynamische -zelle, statische Sperrschichtpolung Stack -maschine -pointer Steuerbus
172 173 11 11 157 245 246 189 197 209 197 197 233 235 79 79 17 235 25 30 26 25 25 30 30 16 236 242 259 189 242 238 236 236 240 252 244 244 160 240 262 263 261
304
Struktur -ausdruck Stufenzahl Symbol Symmetriediagramm System -architektur , Basis-begriff , CAD, CAE, Dezimal, Dual, Hexadezimal, Oktal, Teil, Zahlen-
Sachregister
261 172 172 24 114 13 14 126 13 21 21 46 46 48 47 16 46
T Tafelmethode , Karnaugh, VeitchTakt -signalverlauf Term, charakteristischer , Prim„Text“ Totzeitmodell , allgemeines Transformation Transistor
114 114 114 197 198 133 134 2 183 184 19 158
U Überdeckung Überdeckungsrelation -tabelle Überdeckte Größe ULA
72 72 73 73 176
V Variable, abhängige , freie , gebundene , unabhängige , Auswahl, PräsenzVersorgungsbus Vervollständigung, Eins, NullVerzögerung, reine , unsymmetrische , träge Verzögerungsglied von Neumann-Rechner
111 132 131 111 145 145 261 139 139 183 183 183 202 254
W Weg , kritischer Wired-Verbindung WORM
84 90 246 237
X XOR
118
Z Zähler -symbol Zahlensysteme, polyadische -darstellung Zeichen , SteuerZeit, gesetzliche Ziffer Zustand Zustandskodierung -variable -vektor Zweischalterprinzip
230 232 46 6 1, 24 58 54 7 192 196 199 196 171