• Keine Ergebnisse gefunden

1. Grundlagen der Digitaltechnik

N/A
N/A
Protected

Academic year: 2022

Aktie "1. Grundlagen der Digitaltechnik"

Copied!
34
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Praktische Informatik 2

Vorlesungsfolien SS 2000

Prof. Dr. W. Effelsberg

Lehrstuhl für Praktische Informatik IV Universität Mannheim

Inhaltsverzeichnis (1)

1. Grundlagen der Digitaltechnik 1.1 Mikroelektronik

1.2 Gatter

1.3 Schaltnetze und Schaltwerke

2. Zahlendarstellung und Codierungstechniken 2.1 Maschineninterne Darstellung von Zahlen und

Zeichen

2.2 Fehlererkennende Codes 2.3 Fehlerkorrigierende Codes

3. Grundlagen der Rechnerarchitektur 3.1 Architektur des Von-Neumann-Rechners 3.2 Maschinentypen: Einadressmaschine,

Zweiadressmaschine

3.3 Befehlsformate und Adressierungstechniken 3.4 Beispiel: Motorola 68000

3.5 CISC vs. RISC

(2)

Inhaltsverzeichnis (2)

4. Mikroprogrammierung

4.1 Ein mikroprogrammgesteuerter Computer 4.2 Mikroprogramm - Beispiel: Ganzzahl -

Multiplikation

4.3 Das Laden von Mikroprogrammen

5. Programmierung in Maschinensprache (Assembler)

5.1 Einführung in den Motorola-68000 -Assembler 5.2 Adressierung von Feldern (Arrays)

5.3 Unterprogrammtechnik

6. Sprachübersetzer (Compiler) 6.1 Syntaxdefinition einer Sprache

6.2 Aufbau und Wirkungsweise eines Compilers 6.3 Automatisches Generieren von Parsern

6.4 Compilierung vs. Interpretation von Programmen

Literatur

Dieses Buch sollte jeder haben:

Goldschlager, L. and Lister, A.: Informatik - eine moderne Einführung.

Hanser-Verlag, München, 1990

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, Engle-

wood 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

(3)

1. Grundlagen der Digitaltechnik

1.1 Mikroelektronik 1.2 Gatter

1.3 Schaltnetze 1.4 Schaltwerke

Abstraktionsebenen bei der Hardware- Beschreibung

Blockschaltbild des Rechners

Blockschaltbild des Prozessors

Registertransfer-Ebene (Mikroprogramm-Ebene)

Gatterebene

Ebene der digitalen Elektronik

(4)

1.1 Mikroelektronik

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).

Computer früherer Generationen hatten auch andere Bauteile:

• Röhren und Relais

• diskrete Transistor-Schaltungen

• magnetische Bauteile (z.B. Magnetkernspeicher)

Halbleiter

Wichtigstes aktives Halbleiter-Bauelement ist der Transistor. Er entsteht durch die Dotierung von Silikon, z.B. mit

• Phosphor oder Arsen (n - Halbleiter)

• Brom (p - Halbleiter).

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.

(5)

Der Transistor

Halbleiter-Transistor

Aufbau des Halbleiters Transistor-Symbol

Der Herstellungsprozess für Halbleiter-Bauelemente (1)

(stark vereinfacht, für eine Schicht Transistoren)

· 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 Photoresist- Lacks im belichteten Bereich

· Entfernen der "weichen" Bereiche des Photoresist- Lacks im Ätzbad. Dadurch entsteht das Abbild der Maske auf dem Chip.

(6)

Herstellungsprozess für Halbleiter-Bauelemente (2)

• 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 entstehen- den 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

Geometrie eines fertigen ICs

(7)

MOS - FET

(Metal Oxide Semiconductor - Field Effect Transistor)

Ä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-Tran- sistoren (Complementary Metal Oxide Semiconductor) üblich, die sich durch einfache Fertigungsprozesse, geringe Stromaufnahme (und damit auch geringe Wärmeabgabe) und mittlere Schaltgeschwindigkeiten auszeichnen.

MOS - Feldeffekttransistor

(8)

Aufbau von Speicherelementen aus Transistoren

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 steigen- der Spannung zwischen Basis und Emitter steigt der Kollektorstrom überproportional.

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

Bistabile Kippschaltung

Ein einzelner Schalter ist noch kein Speicher. Ein einfacher Speicher lässt sich aus zwei Transistoren in Form einer bistabilen Kippschaltung aufbauen (FLIP- FLOP). 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 (non- destructive 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".

(9)

Beispiel für eine einfache bistabile Kippschaltung

Eigenschaften von Transistor- Kippschaltungen

• 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.

(10)

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 Magneti- sierung 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)

Magnetkernspeicher

(11)

Logik-Bausteine aus Transistoren

Auch beim Aufbau von Logik-Bausteinen werden Transistoren nur in den Zuständen "leitend" oder

"gesperrt" betrieben (Digitaltechnik).

Die elementaren Boole'schen Funktionen lassen sich durch Zusammenschalten von Transistoren realisieren!

Eine UND-Schaltung aus zwei Transistoren (stark vereinfacht!)

1.2 Gatter

Transistorschaltungen für die elementaren Funktionen der Logik werden als Gatter bezeichnet (engl.: Gate).

Für die Gatter werden grafische Symbole eingeführt.

Deutsche und amerikanische Normsymbole für Gatter

(12)

Normsymbole für Gatter

alte Norm neue Norm

des DIN des DIN

1.3 Schaltnetze

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.

(13)

Darstellung von Boole'schen Funktionen

a) In Form einer Wertetabelle

i x1 x2 x3 f(x1, x2, x3)

0 0 0 0 0

1 0 0 1 0

2 0 1 0 0

3 0 1 1 1

4 1 0 0 0

5 1 0 1 1

6 1 1 0 0

7 1 1 1 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)

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).

(14)

Vollständige Operatorensysteme

Definition

Eine Menge von Operatoren heißt vollständiges Operatorensystem, wenn jede beliebige Boole'sche Funktion nur durch Komposition der Operatoren darstellbar ist.

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.

Es gilt x NAND y = ¬ (x ∧ y) und x NOR y = ¬ (x ∨ y)

Analog zur disjunktiven Normalform gibt es auch eine konjunktive Normalform, also eine ' ∧ ' - Verknüpfung von Maxtermen. Diese soll hier nicht weiter betrachtet werden.

Grundidee des Logikentwurfs

1. Festlegung der Wertetabelle für die gewünschte Funktion.

2. Bildung der disjunktiven Normalform.

3. Umsetzung der disjunktiven Normalform in ein entsprechendes Schaltnetz aus Gattern.

(15)

Beispiel

f = (¬ x1∧ x2∧ x3) ∨ (x1∧¬ x2∧ x3 )∨ (x1 ∧ x2 ∧ x3) Als Schaltnetz

x1 x2 x3

Technische Randbedingungen

Reale technische Gatter verhalten sich nicht immer so, wie die Boole'sche Logik es vorschreibt. Zu berück- sichtigen sind vor allem

• 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 Spannungs- verhältnisse im Gatter instabil werden.

(16)

Schaltnetzbeispiel: Halbaddierer

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 Wertetabelle des Halbaddierers

Entsprechend den Regeln für die Addition von Binärziffern ergibt sich folgende Wertetabelle:

i x y R Ü

---

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

Schaltbild des Halbaddierers

US-Norm

(17)

Schaltbild des Halbaddierers

Deutsche Norm

Schaltnetzbeispiel: Volladdierer

Ein Volladdierer berechnet die Summe von zwei Bits und kann dabei den Übertrag aus der nächst niedrige- ren Stelle einbeziehen. Der Volladdierer lässt sich aus Halbaddierern aufbauen.

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:

R(x,y,ü) = (¬x∧¬yü)(¬xy∧¬ü)(x∧¬y∧¬ü)(xyü)

= x XOR y XOR ü

Ü(x,y,ü) = (xy) (xü) (yü) = (xy) ((x XOR y) ü)

(18)

Schaltbild des Volladdierers

Deutsche Norm

Ü = (x ∧ y) ∨ (ü ∧ (x XOR y))

Addiernetz

Aus hintereinandergeschalteten Volladdierern lässt sich ein Addiernetz für mehrere Bits bauen.

4-Bit-Addiernetz

(19)

Optimierung von Schaltnetzen

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.

Ziel der Optimierung ist:

• die Minimalzahl der Gatter

• bei gleicher Gatteranzahl die Minimalzahl der Gattereingänge

Beispiel

g(x1,x2,x3,x4) = (x1 ∧ ¬ x2 ∧ x3 ∧ x4) ∨ !t1 (x1 ∧ ¬ x2 ∧ ¬ x3 ∧ x4) ∨ !t2 (x1 ∧ x2 ∧ x3 ∧ x4) ∨ !t3 (¬ x1 ∧ ¬ x2 ∧ ¬ x3 ∧ x4) ∨ !t4 (¬ x1 ∧ ¬ x2 ∧ x3 ∧ x4) !t5 = (x1 ∧ ¬ x2 ∧ x4) ∨ !u1:t1,t2 (x1 ∧ x3 ∧ x4) ∨ !u2:t1,t3 (¬ x2¬ x3 x4) !u3:t2,t4 (¬ x1¬ x2 x4) !u4:t4,t5 = (¬ x2 ∧ x4) ∨ !v1:u1,u4 (x1 x3 x4) !v2:u2

(¬ x2¬ x3 x4) !v3: unnötig, da von v1 absorbiert = (¬ x2 x4) (x1 x3 x4)

Implikanten und Primimplikanten (1)

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 lie- fert, bildet auch f auf 1 ab.

Eine disjunktive Form von f besteht aus per 'Oder' ver- knüpften Implikanten von f. Und zwar werden so viele Implikanten benötigt, daß alle 1 liefernden Stellen von f durch sie abgedeckt werden.

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.

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.

(20)

Implikanten und Primimplikanten (2)

Satz

Eine minimale disjunktive Form für eine Funktion f besteht aus einer Disjunktion von Primimplikanten.

Beweis:

Sei E (f) die Zahl der Gattereingänge von f.

Annahme:

(1) f = p1 ∨ p2 ∨ ... ∨ pn∨ i1 (2) i1 ist kein Primimplikant.

(3) E (p1 ∨ p2 ∨ ... ∨ pn ∨ i1) = Min

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)

Implikanten und Primimplikanten (3)

(noch Beweis) Wegen (4) gilt

f = f ∨ i2 !(1)

= p1 ∨ p2 ∨ ... ∨ pn ∨ i1 ∨ i2 !(5) = 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.

(21)

Karnaugh-Diagramm

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 dis- junktiven Normalform, ist oft schwer zu überschauen und erfordert viel Erfahrung und Intuition. Hier hilft der Einsatz von Karnaugh-Diagrammen durch eine über- sichtliche 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 unterschei- den.

Aufbau eines Karnaugh-Diagramms

(22)

Karnaugh - Diagramm der Beispielfunktion g

g (x1, x2, x3,x4) = (x1∧ ¬x2∧ x3∧ x4) ∨ !t1 (x1 ∧ ¬ x2 ∧ ¬ x3 ∧ x4) ∨ !t2 (x1∧ x2∧ x3∧ x4) ∨ !t3 (¬ x1 ∧ ¬ x2 ∧ ¬ x3 ∧ x4) ∨ !t4 (¬ x1 ∧ ¬ x2∧ x3∧ x4) !t5

Jedes mit einer 1 belegte Feld des Diagramms ent- spricht einem Minterm des einschlägigen Index und damit einem Term der disjunktiven Normalform von g.

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: Benachbart im obigen Sinne sind auch das äußerste rechte und linke Feld derselben Zeile bzw. das oberste und das unterste Feld derselben Spalte.

(23)

Ermittlung der Primimplikanten für g

Vierer - Spalte: ¬ x2 ∧ x4 Zweier - Block: x1 ∧ x3 ∧ x4

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.

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:

x1 x2 h

________________________________

0 0 0 0

1 0 1 1

2 1 0 1

3 1 1 d

(24)

Unvollständig spezifizierte Funktion (2)

Minimale disjunktive Form: x1 ∨ x2

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

(25)

Signallaufzeiten und "Hazards“ (2)

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.

Schaltungshazards

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.

(26)

Vermeidung von Schaltungshazards

In vielen Fällen können Hazards durch

Schaltungsmehraufwand vermieden werden.

In Beispiel 2:

Gate Arrays

Eine elegante Methode zur schnellen Realisierung von speziellen Boole'schen Funktionen sind "Programmable Gate Arrays" (PGAs), auch als "Programmable Logic Arrays" (PLAs) bezeichnet.

Ein PGA (PLA) besteht im Prinzip aus einer UND- Matrix 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.

(27)

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 (Flip- Flops). Speicherbausteine für mehrere Bits entstehen durch Parallelschaltung von Flip-Flops.

(28)

Synchrone Schaltwerke

Problem:

Unterschiedliche Signallaufzeiten, Gefahr von Hazards"

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.

Synchrones Flip-Flop

Flip-Flop mit zusätzlichem Takteingang.

Wird als RS-Flip-Flop (Reset/Set) bezeichnet.

Beim RS-Flip-Flop ist die Eingangskombination

R = 1 _ S = 1 verboten (Set und Reset zugleich macht keinen Sinn).

(29)

JK-Flip-Flop

D-Flip-Flop (Delay-Flip-Flop)

Mit jedem Takt wird das Eingangssignal (0 oder 1) übernommen und bis zum nächsten Takt gespeichert.

Register

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ß.

(30)

Spezialfall: Schieberegister

Gelesen und geschrieben wird entweder seriell oder parallel; daher ist ein Schieberegister zur Serien- Parallelumsetzung geeignet.

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

Die zu addierenden Bits x und y werden zeitlich seriell zur Verfügung gestellt, das Ergebnis s Bit für Bit seriell ermittelt.

(31)

Schaltwerk für einen Serienaddierer (1)

Wir verwenden ein JK-Flip-Flop.

Wertetabelle

Wir wählen ü' = Qt und ü = Qt+1

ü ' x y ü s J K

0 0 0 0 0 0 -

0 0 1 0 1 0 -

0 1 0 0 1 0 -

0 1 1 1 0 1 -

1 0 0 0 1 - 1

1 0 1 1 0 - 0

1 1 0 1 0 - 0

1 1 1 1 1 - 0

Schaltwerk für einen Serienaddierer (2)

Boole'sche Funktionen

s = (x ∧ ¬ y ∧ ¬ ü') ∨ (¬ x ∧ ¬ y ∧ ü') ∨ (¬ x ∧ y ∧ ¬ ü') ∨ (x ∧ y ∧ ü')

J = x ∧ y K = ¬ x ∧ ¬ y

(32)

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

• Bytes (8 Bit) (Byteadressmaschine)

• 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)

(33)

Prinzipschaltbild einer Speicherzelle

Vorgesehen zum Einbau in eine Speichermatrix

din = data in

sel = select (Adressierung)

write = write enable (Einspeichern von din) d = data (durchgereichter Lesewert

aus der Nachbarzelle) dout = data out (Weitergabe des eigenen

oder durchgeschleiften Lesewertes an die Nachbarzelle)

Speicher (RAM) für vier 4 - Bit - Einheiten

(34)

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)

Referenzen

ÄHNLICHE DOKUMENTE

ˆ Das von der Synthese zur Zustandsspeicherung für alle anderen Eingaben eingebaute Latch hat ein von einer kombinatorischen Funktion gebildetes potentiell

Institut für Informatik, Technische Universität Clausthal 23.. Aufgabe 3.1: Wertdarstellung mit

In einem hierarchischen Addierer wird die Übertragsberechnung in eine assoziative Operation überführt und.. die Kettenstruktur durch eine

Das erste Beispiel zeigt, dass eine Zielfunktion wahlweise als Moore- oder Mealy-Automat speziziert werden kann und dass nach den ersten Skizzen der Zielfunktion meist

Hinweise: Schreiben Sie die Lösungen, so weit es möglich ist, auf die Aufgabenblätter.. Kemnitz,

Der Zeitverlauf der unabgetasten Eingabe wirkt ohne zeitliche Ausrichtung bis auf das Ausgabesignal. Wenn ein Eingang der UND-Verknüpfung 0 und der andere ungültig ist, ist die

Giesemann · Institut für Informatik, Technische Universität Clausthal23... Giesemann · Institut für Informatik, Technische

Hinweise: Schreiben Sie die Lösungen, so weit es möglich ist, auf die Aufgabenblätter.. Kemnitz, TU Clausthal. 4P. c) Zeichnen Sie die komplette Schaltung des Automaten aus Gattern