PDF doppelseitig - pi4

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