Inhaltsverzeichnis (1) Praktische Informatik 2 Vorlesungsfolien SS 2000 1. 1.1 1.2 1.3 Grundlagen der Digitaltechnik Mikroelektronik Gatter Schaltnetze und Schaltwerke 2. 2.1 Zahlendarstellung und Codierungstechniken Maschineninterne Darstellung von Zahlen und Zeichen Fehlererkennende Codes Fehlerkorrigierende Codes 2.2 2.3 3. 3.1 3.2 Prof. Dr. W. Effelsberg 3.3 3.4 3.5 Lehrstuhl für Praktische Informatik IV Universität Mannheim Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-1 Grundlagen der Rechnerarchitektur Architektur des Von-Neumann-Rechners Maschinentypen: Einadressmaschine, Zweiadressmaschine Befehlsformate und Adressierungstechniken Beispiel: Motorola 68000 CISC vs. RISC Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-2 Inhaltsverzeichnis (2) 4. 4.1 4.2 4.3 5. Literatur Dieses Buch sollte jeder haben: Goldschlager, L. and Lister, A.: Informatik - eine moderne Einführung. Hanser-Verlag, München, 1990 Mikroprogrammierung Ein mikroprogrammgesteuerter Computer Mikroprogramm - Beispiel: Ganzzahl Multiplikation Das Laden von Mikroprogrammen 5.1 5.2 5.3 Programmierung in Maschinensprache (Assembler) Einführung in den Motorola-68000 -Assembler Adressierung von Feldern (Arrays) Unterprogrammtechnik 6. 6.1 6.2 6.3 6.4 Sprachübersetzer (Compiler) Syntaxdefinition einer Sprache Aufbau und Wirkungsweise eines Compilers Automatisches Generieren von Parsern Compilierung vs. Interpretation von Programmen Weitere Bücher zur Vorlesung: Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D.: Compilerbau. 2 Bände, Oldenbourg-Verlag, 1997 Baer, J. L.: Computer Systems Architecture. Computer Science Press, Rockville, 1980. Giloi, W.: Rechnerarchitektur, Springer, Berlin 1981 Hayes, J.: Computer Architecture and Organization. McGraw Hill, 1985 Hilf, W., Nausch, A.: MC 68000 - Familie - Teil 1, Teil 2. te-wi-Verlag, München 1984 Klar, R.: Digitale Rechenautomaten. de Gruyter, Berlin 1990 Mano, M.: Digital Logic and Computer Design. Prentice-Hall, Englewood Cliffs 1980 Oberschelp, W., Vossen, G.: Rechneraufbau und Rechnerstrukturen. Oldenburg, München 1987 Waite, W. Goos, G.; Compiler Construction, Springer, New York 1984 Tanenbaum, A.: Structured Computer Organization, 4th edition, Prentice Hall, 1999 Manual zum Motorola-Assembler: Motorola (1992). Motorola M68000 Family, Program-mer's Reference Manual. http://www.informatik.uni-mannheim.de/informatik/pi4/stud... /veranstaltungen/ss2000/pi2/68kprm.pdf Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-3 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-4 Abstraktionsebenen bei der HardwareBeschreibung 1. Grundlagen der Digitaltechnik 1.1 1.2 1.3 1.4 Mikroelektronik Gatter Schaltnetze Schaltwerke • • • • • Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-5 Blockschaltbild des Rechners Blockschaltbild des Prozessors Registertransfer-Ebene (Mikroprogramm-Ebene) Gatterebene Ebene der digitalen Elektronik Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-6 1.1 Mikroelektronik Halbleiter Wichtigstes aktives Halbleiter-Bauelement ist der Transistor. Er entsteht durch die Dotierung von Silikon, z.B. mit (n - Halbleiter) • Phosphor oder Arsen • Brom (p - Halbleiter). Moderne Computer bestehen fast ausschließlich aus elektronischen Halbleiter-Bauteilen. Dies betrifft sowohl den Prozessor (CPU) als auch den Hauptspeicher. Die meisten Bauelemente sind hochintegrierte Halbleiter- Bausteine (Chips). Ein Transistor hat drei Schichten mit zwei Übergängen: p - n - p oder n - p - n. Jede Schicht ist mit einer Leiterbahn kontaktiert, durch die Verbindungen zu benachbarten Bauelementen hergestellt werden. Computer früherer Generationen hatten auch andere Bauteile: • Röhren und Relais • diskrete Transistor-Schaltungen • magnetische Bauteile (z.B. Magnetkernspeicher) Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-7 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-8 Der Herstellungsprozess für Halbleiter-Bauelemente (1) Der Transistor (stark vereinfacht, für eine Schicht Transistoren) Halbleiter-Transistor · · · · · · Aufbau des Halbleiters Praktische Informatik II © Prof. Dr. W. Effelsberg Basis: Silikon-Scheibe (Wafer), Durchmesser 8 - 20 cm, für viele Chips gleichzeitig), p-dotiert. Chip-Größe: ca 2 x 2 mm bis 10 x 20 mm Aufdampfen einer n-dotierten Schicht Beschichten mit Photoresist-Lack Belichten unter einer Maske, die die gewünschten Strukturen enthält. Dadurch Härten des PhotoresistLacks im belichteten Bereich Entfernen der "weichen" Bereiche des PhotoresistLacks im Ätzbad. Dadurch entsteht das Abbild der Maske auf dem Chip. Transistor-Symbol 1. Grundlagen der Digitaltechnik 1-9 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-10 Herstellungsprozess für Halbleiter-Bauelemente (2) • • • • • • Geometrie eines fertigen ICs Maskierung und Diffusion von p-Dotierungen, wo gewünscht. Dadurch entstehen Unterbrechungen der n-dotierten Schicht und damit isolierte Bereiche. Die p-Dotierungen bilden die Basis des entstehenden Transistors. Maskierung und Diffusion von n-Dotierungen über den p-Dotierungen, wo gewünscht. Diese bilden den Emitter des entstehenden Transistors. Testen der Chips auf dem Wafer Trennen des Wafers durch Zersägen Kontaktieren der einzelnen Chips mit feinen Drähten Aufbringen auf Keramiksubstrat und Versiegeln Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-11 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-12 MOS - FET (Metal Oxide Semiconductor - Field Effect Transistor) MOS - Feldeffekttransistor Ähnlich wie die zuvor beschriebenen bipolaren Transistoren werden auch die Feldeffekt-Transistoren (FETs) hergestellt. Statt Emitter, Basis und Kollektor haben sie Source, Gate und Drain und etwas andere elektrische Eigenschaften. Der Vorteil ist der einfachere Aufbau, der weniger Diffusionschritte erfordert. Heute sind in der Prozessortechnologie CMOS-Transistoren (Complementary Metal Oxide Semiconductor) üblich, die sich durch einfache Fertigungsprozesse, geringe Stromaufnahme (und damit auch geringe Wärmeabgabe) und mittlere Schaltgeschwindigkeiten auszeichnen. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-13 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-14 Aufbau von Speicherelementen aus Transistoren Bistabile Kippschaltung In analogen Schaltungen (z.B. Transistorradios) werden Transistoren als Verstärker eingesetzt. Ist die Spannung zwischen Basis und Emitter Null oder negativ, so ist der Transistor nichtleitend. Mit steigender Spannung zwischen Basis und Emitter steigt der Kollektorstrom überproportional. Ein einzelner Schalter ist noch kein Speicher. Ein einfacher Speicher lässt sich aus zwei Transistoren in Form einer bistabilen Kippschaltung aufbauen (FLIPFLOP). Dabei ist immer ein Transistor leitend, der andere gesperrt. Das Lesen des gespeicherten Bits erfolgt entweder durch einen so schwachen Impuls, dass der Zustand der bistabilen Kippschaltung erhalten bleibt (nondestructive read), oder durch zerstörendes Lesen, gefolgt von erneutem Schreiben des gelesenen Bits (destructive read). Das Schreiben eines zu speichernden Bits erfolgt durch Anlegen einer hinreichend hohen Spannung, die die Schaltung in den gewünschten Zustand "kippt". In digitalen Schaltungen werden Transistoren immer im Sättigungsbereich betrieben, sie sind also leitend oder nichtleitend, je nach der Spannung an der Basis. Ein Transistor dient also als elektronischer Schalter Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-15 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-16 Beispiel für eine einfache bistabile Kippschaltung Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik Eigenschaften von TransistorKippschaltungen 1-17 • Man verwendet mindestens zwei, oft mehr Transistoren zur Speicherung von einem Bit. • Die Schaltung ist nur stabil, solange eine Versorgungsspannung vorhanden ist. Beim Abschalten geht das gespeicherte Bit verloren (volatiler Speicher). • Neben der Stromversorgung sind weitere Steuerleitungen zum Lesen und Schreiben nötig. • Die Schaltgeschwindigkeiten sind abhängig von der gewählten Technologie, den Spannungspegeln usw. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-18 Magnetkernspeicher Magnetkernspeicher In früheren Generationen von Rechenanlagen wurden magnetische Kernspeicher aus Ferrit-Ringkernen eingebaut. Jeder Ringkern kann rechtsherum oder linksherum magnetisiert werden. Gelesen wird immer durch einen relativ hohen Lesestrom. Entspricht die Magnetisierung dem vom Lesestrom erzeugten Magnetfeld, so wird kein zusätzlicher Strom induziert; geht die Magnetisierung in entgegengesetzter Richtung, so wird durch das "Umklappen" der Magnetisierung ein deutlich messbarer zusätzlicher Strom induziert. Lesen ist immer destruktiv. Jedes gelesene Bit muss anschließend neu geschrieben werden. Eigenschaften • hohe Stromaufnahme • langsame Schaltzeiten • aufwendige Fertigung (Einfädeln der Ringe von Hand!) • nicht-volatil (speichert auch ohne Stromversorgung) Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-19 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-20 1.2 Gatter Logik-Bausteine aus Transistoren Auch beim Aufbau von Logik-Bausteinen werden Transistoren nur in den Zuständen "leitend" oder "gesperrt" betrieben (Digitaltechnik). Transistorschaltungen für die elementaren Funktionen der Logik werden als Gatter bezeichnet (engl.: Gate). Für die Gatter werden grafische Symbole eingeführt. Die elementaren Boole'schen Funktionen lassen sich durch Zusammenschalten von Transistoren realisieren! Deutsche und amerikanische Normsymbole für Gatter Eine UND-Schaltung aus zwei Transistoren (stark vereinfacht!) Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-21 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-22 1.3 Schaltnetze Normsymbole für Gatter alte Norm des DIN neue Norm des DIN Eine digitale Schaltung aus Gattern, die kein Gedächtnis für ihre Vorgeschichte hat, heißt Schaltnetz. Ein Schaltnetz kann entweder grafisch durch vernetzte Gatter oder algebraisch in Form einer Schaltfunktion beschrieben werden. F: Bn → Bm (Bn und Bm sind Bit-Vektoren). B = {0,1} Eine Schaltfunktion mit skalarem Ergebnis f: Bn → B heißt Boole'sche Funktion. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-23 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-24 Darstellung von Boole'schen Funktionen Disjunktive Normalform Es seien f eine Boole'sche Funktion, i ein Index von f und i1,..,in die Dualdarstellung von i. Eine Funktion mi: Bn → B mit mi(x1,..,xn) = l1 ∧ l2 ∧ l3 ∧ .. ∧ ln und lj = xj, falls ij = 1 lj = ¬ xj, falls ij = 0 heißt i-ter Minterm von f. Ein Minterm mi nimmt an genau der Stelle i den Wert 1 an und liefert sonst immer 0. Beispiel: m5 = x1 ∧ ¬ x2 ∧ x3 Darstellungssatz (Disjunktive Normalform, DNF): Jede Boole'sche Funktion f: Bn → B kann eindeutig als ' ∨ ' - Verknüpfung der Minterme ihrer einschlägigen Indizes dargestellt werden. Beispiel von oben (Wertetabelle): Die einschlägigen Indizes sind: 3(011) 5(101) 7(111) Die Minterme dazu sind: x1∧ ¬x2∧ x3 x1∧ x2∧ x3 ¬ x1∧ x2∧ x3 Die DNF lautet: f = (¬ x1∧ x2∧ x3) ∨ (x1∧ ¬ x2∧ x3) ∨ (x1∧ x2∧ x3). a) In Form einer Wertetabelle i 0 1 2 3 4 5 6 7 x1 0 0 0 0 1 1 1 1 x2 0 0 1 1 0 0 1 1 x3 0 1 0 1 0 1 0 1 f(x1, x2, x3) 0 0 0 1 0 1 0 1 Die Zeilennummern i mit Funktionsergebnis 1 heißen einschlägige Indices (im Beispiel: 3,5,7). b) In Form der Aussagenlogik f = (¬ x1 ∧ x2 ∧x3) ∨ (x1 ∧¬ x2 ∧x3) ∨ (x1 ∧x2 ∧x3) Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-25 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-26 Vollständige Operatorensysteme Grundidee des Logikentwurfs Definition Eine Menge von Operatoren heißt vollständiges Operatorensystem, wenn jede beliebige Boole'sche Funktion nur durch Komposition der Operatoren darstellbar ist. 1. Festlegung der Wertetabelle für die gewünschte Funktion. 2. Bildung der disjunktiven Normalform. Da jede Boole'sche Funktion in DNF dargestellt werden kann, und dort nur die drei Operatoren ' ¬ ', ' ∧ ' und ' ∨ ' verwendet werden, ist {' ¬ ', ' ∧ ',' ∨ '} ein vollständiges Operatorensystem. Wenn es also gelingt, technisch diese drei Operatoren zu realisieren, ist durch Kombination jede Boole'sche Funktion technisch umsetzbar! Technisch hochinteressant ist es, wenn man mit nur einer Operation auskommen kann, z.B. NAND oder NOR. x NAND y = ¬ (x ∧ y) Es gilt und x NOR y = ¬ (x ∨ y) 3. Umsetzung der disjunktiven Normalform in ein entsprechendes Schaltnetz aus Gattern. Analog zur disjunktiven Normalform gibt es auch eine konjunktive Normalform, also eine ' ∧ ' - Verknüpfung von Maxtermen. Diese soll hier nicht weiter betrachtet werden. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-27 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-28 Beispiel Technische Randbedingungen f = (¬ x1 ∧ x2 ∧ x3) ∨ (x1 ∧ ¬ x2 ∧ x3 ) ∨ ( x1 ∧ x2 ∧ x3) Reale technische Gatter verhalten sich nicht immer so, wie die Boole'sche Logik es vorschreibt. Zu berücksichtigen sind vor allem Als Schaltnetz • x1 x2 x3 • Signallaufzeiten. Das Ausgangssignal eines Gatters ist bei Veränderung des Eingangssignals erst nach einer Verzögerungszeit stabil. • "Fan-Out". Die Ausgangsleitung eines Gatters kann nicht beliebig viele Eingänge weiterer Gatter speisen, da sonst die Strom- und Spannungsverhältnisse im Gatter instabil werden. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-29 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-30 Schaltnetzbeispiel: Halbaddierer Schaltbild des Halbaddierers Ein Ein-Bit-Halbaddierer berechnet die binäre Summe der Eingangsbits: R (x,y) : Resultat (Ergebnis der Addition) Ü (x,y) : Übertrag für die nächste Stelle US-Norm Wertetabelle des Halbaddierers Entsprechend den Regeln für die Addition von Binärziffern ergibt sich folgende Wertetabelle: y R Ü i x -----------------------------------------------------0 0 0 0 0 1 0 1 1 0 2 1 0 1 0 3 1 1 0 1 Es gilt: R(x,y) = (¬ x ∧ y) ∨ (x ∧ ¬ y) = x XOR y Ü=x∧y Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-31 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-32 Schaltbild des Halbaddierers Schaltnetzbeispiel: Volladdierer Ein Volladdierer berechnet die Summe von zwei Bits und kann dabei den Übertrag aus der nächst niedrigeren Stelle einbeziehen. Der Volladdierer lässt sich aus Halbaddierern aufbauen. Deutsche Norm Wertetabelle des Volladdierers i x y ü R Ü --------------------------------------------------------------0 0 0 0 0 0 1 0 0 1 1 0 2 0 1 0 1 0 3 0 1 1 0 1 4 1 0 0 1 0 5 1 0 1 0 1 6 1 1 0 0 1 7 1 1 1 1 1 Es gilt: Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-33 R(x,y,ü) = (¬x∧¬y∧ü)∨(¬x∧y∧¬ü)∨(x∧¬y∧¬ü)∨(x∧y∧ü) = x XOR y XOR ü Ü(x,y,ü) = (x∧y) ∨ (x∧ü) ∨ (y∧ü) = (x∧y) ∨ ((x XOR y) ∧ ü) Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-34 Schaltbild des Volladdierers Addiernetz Deutsche Norm Aus hintereinandergeschalteten Volladdierern lässt sich ein Addiernetz für mehrere Bits bauen. 4-Bit-Addiernetz Ü = (x ∧ y) ∨ (ü ∧ (x XOR y)) Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-35 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-36 Optimierung von Schaltnetzen Implikanten und Primimplikanten (1) Da Schaltnetze und Gatter durch Ausdrücke der Boole'schen Algebra beschrieben werden können, können die Rechenregeln der Boole'schen Algebra zur Vereinfachung von Schaltnetzen herangezogen werden! Denn häufig ist die disjunktive Normalform bzw. die konjunktive Normalform nicht optimal. Implikanten Gegeben sei eine Boole'sche Funktion f: Bn → B. Eine Funktion M: Bn → B heißt Implikant von f, wenn gilt: Aus M(x1,..,xn)=1 folgt f(x1,..,xn)=1 für alle x1,..,xn ∈ Bn. An allen Stellen, an denen M den Funktionswert 1 liefert, bildet auch f auf 1 ab. Eine disjunktive Form von f besteht aus per 'Oder' verknüpften Implikanten von f. Und zwar werden so viele Implikanten benötigt, daß alle 1 liefernden Stellen von f durch sie abgedeckt werden. Ziel der Optimierung ist: • die Minimalzahl der Gatter • bei gleicher Gatteranzahl die Minimalzahl der Gattereingänge Primimplikanten Ein Implikant M einer Boole'schen Funktion f heißt Primimplikant von f, wenn er durch Resolution mit anderen Implikanten von f nicht weiter vereinfacht werden kann. Beispiel g(x1,x2,x3,x4) = (x1 ∧ ¬ x2 ∧ x3 ∧ x4) ∨ (x1 ∧ ¬ x2 ∧ ¬ x3 ∧ x4) ∨ (x1 ∧ x2 ∧ x3 ∧ x4) ∨ (¬ x1 ∧ ¬ x2 ∧ ¬ x3 ∧ x4) ∨ (¬ x1 ∧ ¬ x2 ∧ x3 ∧ x4) = (x1 ∧ ¬ x2 ∧ x4) ∨ (x1 ∧ x3 ∧ x4) ∨ (¬ x2 ∧ ¬ x3 ∧ x4) ∨ (¬ x1 ∧ ¬ x2 ∧ x4) = (¬ x2 ∧ x4) ∨ (x1 ∧ x3 ∧ x4) ∨ (¬ x2 ∧ ¬ x3 ∧ x4) !t1 !t2 !t3 !t4 !t5 !u1:t1,t2 !u2:t1,t3 !u3:t2,t4 !u4:t4,t5 !v1:u1,u4 !v2:u2 !v3: unnötig, da von v1 absorbiert Wenn eine Boole'sche Funktion in disjunktiver Form mit minimalen Kosten vorliegt, besteht sie aus der 'Oder'Verknüpfung von Primimplikanten. Die Minimierung von f entspricht also der Bestimmung einer Menge von Primimplikanten, die alle 1 liefernden Stellen von f überdecken. = (¬ x2 ∧ x4) ∨ (x1 ∧ x3 ∧ x4) Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-37 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-38 Implikanten und Primimplikanten (2) Implikanten und Primimplikanten (3) Satz Eine minimale disjunktive Form für eine Funktion f besteht aus einer Disjunktion von Primimplikanten. (noch Beweis) Beweis: Sei E (f) die Zahl der Gattereingänge von f. f = f ∨ i2 Wegen (4) gilt !(1) = p1 ∨ p2 ∨ ... ∨ pn ∨ i1 ∨ i2 Annahme: (1) f = p1 ∨ p2 ∨ ... ∨ pn ∨ i1 (2) i1 ist kein Primimplikant. (3) E (p1 ∨ p2 ∨ ... ∨ pn ∨ i1) = Min = p1 ∨ p2 ∨ ... ∨ pn ∨ i2 Wegen E(i2) < E(i1) hat i2 weniger Gattereingänge als i1. Damit gibt es eine disjunktive Form für f mit weniger Gattereingängen. Somit ist Annahme (3) verletzt, die ursprünglich rechte Seite war nicht minimal. Wegen (2) gibt es einen Implikanten i2 mit E(i2) < E(i1) derart, dass (4) i2 → f = 1 (5) i1 → i2 = 1 , also i1 = g ∧ i2 mit irgendeiner Konjunktion g ( i1 ist Teil eines anderen Implikanten) Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik !(5) 1-39 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-40 Karnaugh-Diagramm Aufbau eines Karnaugh-Diagramms Ein Karnaugh-Diagramm ist eine graphische Methode zur Ermittlung eines Boole'schen Ausdruckes, der ein Schaltnetz mit minimaler Gatterzahl beschreibt. Die algebraische Minimierung, beginnend mit der disjunktiven Normalform, ist oft schwer zu überschauen und erfordert viel Erfahrung und Intuition. Hier hilft der Einsatz von Karnaugh-Diagrammen durch eine übersichtliche Darstellung der Wertetabelle, aus der sich die Primimplikanten ablesen lassen. Ein Karnaugh-Diagramm ist so aufgebaut, dass sich je zwei benachbarte Felder nur in einem Bit unterscheiden. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-41 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-42 Karnaugh - Diagramm der Beispielfunktion g g (x1, x2, x3,x4) = (x1 ∧ ¬x2 ∧ x3 ∧ x4) ∨ (x1 ∧ ¬ x2 ∧ ¬ x3 ∧ x4) ∨ (x1 ∧ x2 ∧ x3 ∧ x4) ∨ (¬ x1 ∧ ¬ x2 ∧ ¬ x3 ∧ x4) ∨ (¬ x1 ∧ ¬ x2 ∧ x3 ∧ x4) !t1 !t2 !t3 !t4 !t5 Ermittlung der Primimplikanten durch Zusammenfassen • Zweiergruppen von benachbarten Einsen entsprechen Mintermen, die sich nur in einem Argument unterscheiden und die daher zusammengefaßt werden können. • Vierergruppen von benachbarten Einsen (Quadrate, Zeilen, Spalten) erlauben die zweistufige Resolution (Zusammenfassen unter Wegfall von zwei Argumenten) • Man bildet daher im Karnaugh-Diagramm möglichst große Blöcke von zusammenhängenden Einsen und kann dann die entsprechenden minimalen Ausdrücke (Primimplikanten) unmittelbar aufschreiben. Die Gesamtfunktion f ergibt sich als Disjunktion der Primimplikanten. Anmerkung: Jedes mit einer 1 belegte Feld des Diagramms entspricht einem Minterm des einschlägigen Index und damit einem Term der disjunktiven Normalform von g. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-43 Benachbart im obigen Sinne sind auch das äußerste rechte und linke Feld derselben Zeile bzw. das oberste und das unterste Feld derselben Spalte. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-44 Ermittlung der Primimplikanten für g Unvollständig spezifizierte Funktion (1) Häufig sind bei einem Schaltnetz bestimmte Eingabekombinationen aufgrund der besonderen Umgebung nicht möglich. An diesen Stellen darf die entsprechende Boole'sche Funktion undefiniert sein. Dies kann zur Vereinfachung genutzt werden. Und zwar kann man an diesen Stellen den Funktionswert freizügig so festlegen, daß sich z.B. im KV - Diagramm möglichst große 1er - Rechtecke ergeben. Undefinierte Werte werden häufig als "don't care" bezeichnet und mit d abgekürzt. Beispiel: Wertetabelle der Funktion h: Vierer - Spalte: Zweier - Block: ¬ x2 ∧ x4 x1 ∧ x3 ∧ x4 x2 h x1 ________________________________ 0 0 0 0 1 0 1 1 2 1 0 1 3 1 1 d g = (¬ x2 ∧ x4) ∨ (x1 ∧ x3 ∧ x4) Diese disjunktive Form ist minimal, da die beiden Blöcke nicht Teil von größeren Blöcken sind und es sich daher um Primimplikanten handelt. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-45 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-46 Unvollständig spezifizierte Funktion (2) Signallaufzeiten und "Hazards“ (1) In einem Schaltnetz können unterschiedliche Signallaufzeiten auftreten. Dies führt dazu, daß an den Gattereingängen die neuen Werte nicht immer gleichzeitig anliegen. Dadurch können die Ausgangswerte des Schaltnetzes übergangsweise falsche Werte annehmen, die kritisch sein können. Beispiel f(x1,x2,x3) = (x1 ∧ x3) ∨ (x2 ∧ ¬ x3) x1 x2 x3 f ______________________________ 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Minimale disjunktive Form: x1 ∨ x2 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-47 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-48 Signallaufzeiten und "Hazards“ (2) Schaltungshazards Der Funktionswert 0 sei kritisch, d.h. er darf nur auftreten, wenn eine entsprechende Eingabekombination vorliegt, weil er in anderen Fällen zu unliebsamen Folgeerscheinungen führen würde. Wir betrachten den Eingabewechsel von '110' auf '101'. Beide Kombinationen liefern den Funktionswert 1. Also sollte die Ausgabe auch bei diesem Wechsel stabil auf 1 bleiben. Wenn nun aber der x3-Wechsel im Vergleich zum Signalwechsel von x2 etwas verzögert auftritt, liegt zwischenzeitlich die Kombination '100' an. In diesem Fall wird die Ausgabe kurz einen Wechsel zu 0 ausführen. Ein Funktionshasard liegt vor. Beispiel 2 Wir betrachten den Eingabewechsel von '111' auf '110'. Da nur ein Eingabesignal wechselt, kann kein Funktionshasard vorliegen. Das wechselnde Signal zu x3 durchläuft sowohl Gatter A als auch Gatter C. Es werde durch Gatter B verzögert (B und C haben zusammen eine längere Schaltzeit als A). Dann liegt am Ausgang von C noch der alte Wert 0 an, während am Ausgang von A schon der neue Wert 0 ansteht. Das Oder - Gatter D erhält so kurzzeitig die Eingabekombination 00 und die Ausgabe f kippt zwischenzeitlich nach 0. Es liegt ein statischer Schaltungshasard vor. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-49 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-50 Vermeidung von Schaltungshazards Gate Arrays In vielen Fällen können Hazards durch Schaltungsmehraufwand vermieden werden. Eine elegante Methode zur schnellen Realisierung von speziellen Boole'schen Funktionen sind "Programmable Gate Arrays" (PGAs), auch als "Programmable Logic Arrays" (PLAs) bezeichnet. In Beispiel 2: Ein PGA (PLA) besteht im Prinzip aus einer UNDMatrix und einer ODER-Matrix. Beide sind durch logische Ausdrücke programmierbar und hintereinander geschaltet. So lassen sich Ausdrücke in disjunktiver Normalform durch den Benutzer unmittlelbar in Hardware realisieren. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-51 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-52 Beispiel für ein programmierbares Gate Array (stark vereinfacht) 1.4 Schaltwerke Im Gegensatz zu Schaltnetzen haben Schaltwerke ein Gedächtnis. Die aktuellen Werte an den Ausgängen hängen von den Eingangswerten und dem Zustand des Gedächtnisses ab. Das Gedächtnis wird durch Speicherbausteine realisiert. Sie halten einen einmal eingegebenen Wert so lange, bis er mit einem neuen Wert überschrieben wird. Die einfachsten Speicherbausteine sind die bereits erwähnten bistabilen Kippschaltungen (FlipFlops). Speicherbausteine für mehrere Bits entstehen durch Parallelschaltung von Flip-Flops. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-53 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-54 Synchrone Schaltwerke Synchrones Flip-Flop Problem: Unterschiedliche Signallaufzeiten, Gefahr von Hazards" Flip-Flop mit zusätzlichem Takteingang. Wird als RS-Flip-Flop (Reset/Set) bezeichnet. Lösung: Die Auswertung der Schaltnetzfunktionen und der Übergang des gesamten Schaltwerks in einen neuen Zustand erfolgt jeweils zu ganz bestimmten Zeitpunkten, die so gewählt werden, daß alle Übergangsphänomene in der Netzelektronik abgeklungen sind. Man führt einen Takt ein. Beim RS-Flip-Flop ist die Eingangskombination R = 1 _ S = 1 verboten (Set und Reset zugleich macht keinen Sinn). Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-55 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-56 Register JK-Flip-Flop Ein Register ist ein Speicherbaustein zur Aufnahme eines Maschinenworts. Es hat meist zwischen 16 und 64 Bits. Technisch gesehen ist ein Register eine Aneinanderreihung von Flip-Flops, die je ein Bit speichern können. Register werden mit schnellen (und teuren) Schaltkreisen realisiert. Sie werden "prozessornah" eingesetzt und dienen hauptsächlich der Aufnahme von Zwischenergebnissen und Adressen, auf die der Prozessor schnell zugreifen muß. D-Flip-Flop (Delay-Flip-Flop) Mit jedem Takt wird das Eingangssignal (0 oder 1) übernommen und bis zum nächsten Takt gespeichert. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-57 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-58 Spezialfall: Schieberegister Serienaddierer als synchrones Schaltwerk Ein Mehrbit-Volladdierer kann als Schaltnetz aus in Serie geschalteten Ein-Bit-Volladdierern aufgebaut werden. Er könnte aber auch auf der Basis eines einzigen Volladdierers und eines Ein-Bit-Speichers für den Übertrag aufgebaut werden. Vorteil: weniger Gatter, geringerer Aufwand Nachteil: lange Berechnungszeit Blockschaltbild Gelesen und geschrieben wird entweder seriell oder parallel; daher ist ein Schieberegister zur SerienParallelumsetzung geeignet. Die zu addierenden Bits x und y werden zeitlich seriell zur Verfügung gestellt, das Ergebnis s Bit für Bit seriell ermittelt. Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-59 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-60 Schaltwerk für einen Serienaddierer (1) Schaltwerk für einen Serienaddierer (2) Wir verwenden ein JK-Flip-Flop. Boole'sche Funktionen Wertetabelle s = (x ∧ ¬ y ∧ ¬ ü') ∨ (¬ x ∧ ¬ y ∧ ü') ∨ (¬ x ∧ y ∧ ¬ ü') ∨ (x ∧ y ∧ ü') J=x∧y K=¬x∧¬y ü' 0 0 0 0 1 1 1 1 x 0 0 1 1 0 0 1 1 y 0 1 0 1 0 1 0 1 ü 0 0 0 1 0 1 1 1 s 0 1 1 0 1 0 0 1 J 0 0 0 1 - K 1 0 0 0 Wir wählen ü' = Qt und ü = Qt+1 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-61 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-62 Schaltbild für den Serienaddierer Aufbau eines Speichers (RAM) Dynamische Schreib-/Lesespeicher werden aus Speicherelementen aufgebaut, die in Matrixform angeordnet werden. Da man nicht jede einzelne Zelle mit einer separaten, aus dem Chip herausgeführten Lese-/Schreibleitung versehen kann, werden die Speicherelemente zu kleinsten adressierbaren Einheiten zusammengefaßt, meist zu (8 Bit) (Byteadressmaschine) • Bytes • 16 - Bit - Wort (Wortadressmaschine) • 32 - Bit - Wort (Doppelwort) (Wortadressmaschine) Zu einem Taktzeitpunkt werden dann jeweils alle Bits einer adressierbaren Einheit gleichzeitig gelesen bzw. geschrieben. Die Auswahl der adressierbaren Einheit geschieht durch Anlegen der Adresse an den Speicher. Adressen haben typischerweise die Längen • 16 Bit (64 k Speicherelemente adressierbar) • 24 Bit (16 M Speicherelemente adressierbar) • 32 Bit (4 Giga Speicherelemente adressierbar) Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-63 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-64 Prinzipschaltbild einer Speicherzelle Speicher (RAM) für vier 4 - Bit - Einheiten Vorgesehen zum Einbau in eine Speichermatrix din sel write d = = = = data in select write enable data dout = data out Praktische Informatik II © Prof. Dr. W. Effelsberg (Adressierung) (Einspeichern von din) (durchgereichter Lesewert aus der Nachbarzelle) (Weitergabe des eigenen oder durchgeschleiften Lesewertes an die Nachbarzelle) 1. Grundlagen der Digitaltechnik 1-65 Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-66 Lesespeicher (Read - Only Memory, ROM) Im Gegensatz zum RAM (Random Access Memory) kann im ROM nur gelesen werden. Das Belegen des Speichers mit Werten (Bitmustern) geschieht einmalig bei der Herstellung. Meist werden beim Fertigungsprozeß alle Bits im ROM auf 1 gesetzt und dann das ROM durch gezieltes Löschen bestimmter Bits programmiert oder umgekehrt. Da der Inhalt in das ROM fest "eingebrannt" ist, ist ein ROM stets ein nicht-flüchtiger Speicher. Anwendungsgebiete • Speicherung von Mikroprogrammen • Speicherung eines Sprachübersetzers (Interpreters) (z.B. "BASIC im ROM") • Speicherung eines kleinen Betriebssystems in einem portablen PC (z.B. "MS - DOS im ROM") • programmierte Steuerungen (z.B. Benzineinspritzung, Telefonvermittlung) Praktische Informatik II © Prof. Dr. W. Effelsberg 1. Grundlagen der Digitaltechnik 1-67