x y

Werbung
Von-Neumann-Rechner / Rechenwerk
• Aufgaben:
• Durchführung arithmetischer und logischer Verknüpfungen
(daher auch der Name Arithmetic Logical Unit)
• Steuerwerk und Rechenwerk werden zusammen auch als CPU
zusammengefasst.
• Alle arithmetischen Operationen können zurückgeführt werden
auf die Basisoperatoren
• Verschieben der Stellen im Register
• Bitweises Komplementieren
• Addieren
• Daher: wesentliche Bestandteile des Rechenwerks sind
Addierwerk und Komplementierer
• Abbildung
DigInf 05/06
1
Von-Neumann-Rechner / Rechenwerk
Abbildung
DigInf 05/06
2
Von-Neumann-Rechner / Speicher
• Aufgaben:
• Aufbewahren von Daten auf der Ebene von Bits
(zusammengefasst in der Aufbewahrungseinheit Byte (oder
Vielfaches von Byte))
• Lokalisierung eines Byte erfolgt über Adresse
• Der Vorgang der Lokalisierung einer Speicherzelle und des
Abfragens/Veränderns ihres Inhalts heißt Zugriff.
• Wichtige Begriffe in diesem Kontext:
• Zugriffszeit (in der Regel zwischen 5 und 500 ns)
• Zugriffsart: RAM (Random Access Memory), ROM (Read Only
Memory)
• Speichertyp: Hauptspeicher (RAM), externe Speicher
• Speicherkapazität
DigInf 05/06
3
Von-Neumann-Prinzipien
• 5 Funktionseinheiten (siehe oben)
• Struktur unabhängig von Problem (ohne Programm nicht arbeitsfähig)
• Programme, Daten, Zwischen-, Endergebnisse liegen im gleichen
Speicher
• Speicher ist in gleichgroße, fortlaufend nummerierte Zellen unterteilt
• Aufeinanderfolgende Befehle eines Programms werden in
aufeinanderfolgenden Speicherzellen abgelegt. Ansprechen des
nächsten Befehls geschieht durch das Steuerwerk aus durch
Inkrementieren der Befehlsadresse
• Sprungbefehle erlauben Abweichungen zwischen Bearbeitungs- und
Speicherungsreihenfolge
• Das Rechenwerk versteht zumindest die folgenden Befehle:
• Arithmetische und logische
• Transportbefehle (vom Speicher zum Rechenwerk, etc.)
• Bedingte Sprünge
• Alle Daten werden binär codiert
DigInf 05/06
4
Rechnerarchitekturen / Boolesche
Algebra
• George Boole (1815-1864): formale Begründung der Logik
• Arithmetische und logische Operationen auf der Basis von
Wahrheitswerten (true/false)
• Abbildung der logischen Werte auf den Zustand elektronischer
Schaltungen:
• In einem einfachen Stromkreis (Batterie B, Widerstand R (oder
Lämpchen L), Schalter S) können wir ein Bit durch die am Widerstand
(am Lämpchen) anliegende Spannung darstellen:
• S geöffnet, Spannung an R = 0 (entspricht Bit hat Wert 0)
• S geschlossen, Spannung an R = 5V (entspricht Bit hat Wert 1) *
* unter Annahme von UB = 5V
DigInf 05/06
5
Rechnerarchitekturen / Boolesche
Algebra
• Ersetzen des Schalters S durch 2 Schalter S1 und S2
L
L
UND
DigInf 05/06
ODER
6
Rechnerarchitekturen /
Boolesche Algebra
• Aufbauend auf den Elementarschaltern werden neue Schaltglieder durch
Serien und Parallelschaltung beschrieben.
• Jedes Schaltglied erhält einen Eingang und einen Ausgang und können so in
natürlicher Weise verbunden werden.
• Sind S1 und S2 Schaltglieder, so erhält man durch Parallelschaltung das
Schaltglied S1  S2 und durch Serienschaltung S1  S2
• Auf Grund des Verhaltens
ODER


UND
wird die Parallelschaltung auch als Oder-Schaltung und die Serienschaltung
auch als Und-Schaltung bezeichnet.
DigInf 05/06
7
Serien-parallele Terme
•
Bezeichnet man die elementaren Ein-Aus-Schalter mit Variablen x,y,z, ..., so
lässt sich jeder serien-parallele Schaltkreis durch einen Serien-ParallelSchaltterm (kurz SP-Term) beschreiben.
•
Definition:
(i) 0 und 1 sind SP-Terme.
(ii) Jede Variable ist ein SP-Term.
(iii) Sind t1 und t2 SP-Terme, dann auch t1  t2 und t1  t2.
- Beispiel: Schaltkreis zu x  (y  z) mit zugehöriger Schalttabelle
yz

DigInf 05/06

x  (y  z)

8
Schaltfunktionen
• Eine Schaltfunktion ist eine n-stellige Operation auf der Menge {0,1},
also eine Abbildung:
f: {0,1}n  {0,1}
• Jeder SP-Term beschreibt über seine Schalttabelle eine
Schaltfunktion.
• Mehrere SP-Terme können dieselbe Schaltfunktion beschreiben:
x  (y  z)
DigInf 05/06
(x  y)  (x  z)
9
Gleichungen
• Die Gültigkeit von Gleichungen, bei denen auf beiden Seiten SPTerme stehen, lässt sich durch Vergleich der zugehörigen
Schaltfunktionen zeigen.
yz
DigInf 05/06
x  (yz)
xy
xz
(x  y)  (x  z)
10
Gleichungen
Oder auch durch Rechnen gemäß der folgenden Regeln:
• Idempotenz:
• Kommutativität:
• Assoziativität:
• Absorption:
• Distributivität:
xx=x
xx=x
xy=yx
xy=yx
x  (y  z) = (x  y)  z
x  (y  z) = (x  y)  z
x  (x  y) = x
x  (x  y) = x
x  (y  z) = (x  y)  (x  z)
x  (y  z) = (x  y)  (x  z)
Eine Struktur, die diesen Regeln folgt, heißt distributiver Verband.
DigInf 05/06
11
Dualität
Zwei spezielle Schaltglieder:
• der immer geschlossene Schaltkreis 1
• der immer offene Schaltkreis 0
• Charakterisiert durch die Gleichungen:
• x0=x
x1=x
• x1=1
x0=0
• Vertauschen wir  und  sowie 0 und 1 in einem Term t,
so erhalten wir den zu t dualen Term td.
• Es gilt:
(i)
(ii)
DigInf 05/06
tdd = t
t1 = t2  t1d = t2d
12
Dualität
• Behauptung zur Dualität / vgl. Übungsblatt 1
DigInf 05/06
13
Monotonie
Wir wissen: jeder Term beschreibt eine Schaltfunktion.
Frage: Lässt sich mit Termen jede denkbare Schaltfunktion realisieren?
Überlegung: ein geschlossenes Schaltglied lässt sich durch das
Anschließen weiter Schalter nicht öffnen!
f: {0,1}n  {0,1}
f(b1, ...,bi, ..., bn) = 1  f(b1, ...,1, ..., bn) = 1
Setzt man die natürliche Ordnung 0  1 komponentenweise fort auf
{0,1}n durch
(b1, ..., bn)  (c1, ..., cn)  bi  ci  1  i  n
so erkennen wir, dass jede durch einen SP-Schaltkreis realisierte
Schaltfunktion f im folgenden Sinne monoton ist
(b1, ..., bn)  (c1, ..., cn)  f(b1, ..., bn)  f(c1, ..., cn)
Beweis durch Induktion über den Aufbau von Termen:
DigInf 05/06
14
Monotonie / Bew. Per Induktion
DigInf 05/06
15
Negation
Beispiel einer Schaltung, die nicht durch eine SP-Schaltung realisierbar ist:
Wechselschaltung:
Lampe soll von 2 verschiedenen Schaltern
unabhängig ein- und ausgeschaltet werden.
Diese Schaltung lässt sich durch eine der folgenden Schalttabellen festlegen:
x y Lampe
0 0
0
0 1
1
1 0
1
1 1
0
oder
0 0
1
0 1
0
1 0
0
1 1
1
Beide Schalttabellen beschreiben Schaltfunktionen, die nicht monoton sind und
gemäß des Monotoniebeweises deshalb auch nicht durch SP-Schaltungen
realisiert werden können.
DigInf 05/06
16
Negation
Einfachste nicht monotone Schaltfunktion ist die folgende:
x
f(x)
0
1
1
0
Definition: Ist S ein Schaltglied, so sei S dasjenige Schaltglied,
das genau dann offen ist, wenn S geschlossen ist.
S heißt Negation von S.
Im elektrischen Schaltkreis lässt sich die
Negation durch ein Relais realisieren.
Fließt Strom durch S, so wird durch die
Magnetwirkung einer Spule der
Schalter S geöffnet
(Realisierung mit Transistoren einfacher!).
DigInf 05/06

17
Boolesche Terme
Ein Schaltkreis, in dem neben Serien- und Parallelschaltung auch noch die
Negation verwendet werden darf, heißt boolesche Schaltung. Der einer
booleschen Schaltung entsprechende Term heißt boolescher Term.
Definition:
(i) 0 und 1 sind boolesche Terme.
(ii) Jede Variable ist ein boolescher Term.
(iii) Sind t1 und t2 boolesche Terme, dann auch t1  t2 und t1  t2 und t1
Gleichungen zum Verhalten der Negation:
Nachrechnen!
de Morgan:
(x  y) = x  y
(x  y) = x  y
Komplement:
x  x = 1
x  x = 0
x = x
Eine distributiver Verband mit einer solchen Negation heißt boolesche Algebra.
DigInf 05/06
18
Realisierung von Schaltfunktionen
Gesucht: zu einer gegebenen Schaltfunktion der entsprechende
boolesche Terme.
Definition:
Ein Literal ist eine Variable oder eine negierte Variable.
Ein Monom ist eine Konjunktion (Und-Verknüpfung) von Literalen.
Beispiel: Realisierung einer Schaltfunktion,
die es erlaubt, eine Lampe von drei
Schaltern x,y,z unabhängig ein- und
auszuschalten.
Die Schaltfunktion g sieht dann
folgendermaßen aus:
DigInf 05/06
19
Realisierung von Schaltfunktionen
g liefert an 4 Stellen den Wert 1. Sie lässt sich als Disjunktion von 4
Monomen m1,m2,m3,m4 schreiben:



TODO
Darstellung der Monome:
m1 = (xyz), m2 = (xyz), m3 = (xyz), m4 = (xyz)
Somit g(x,y,z) =
m1m2m3m4 = (xyz)  (xyz)  (xyz)  (xyz)
Diese Beschreibung heißt disjunktive Normalform (DNF).
DigInf 05/06
20
Realisierung von Schaltfunktionen
Unter der DNF versteht man eine Disjunktion von Monomen, in denen
jeweils jede Variable vorkommt (negiert oder nicht negiert).
Zu jeder Schaltfunktion gibt es genau eine DNF und die lässt sich auf die
beschriebene Weise ermitteln.
Insgesamt: Jede Schaltfunktion lässt sich durch einen booleschen Term
realisieren.
Die DNF wird umso komplizierter je mehr 1-Stellen die Schaltfunktion hat.
Falls mehr 1-Stellen als 0-Stellen, dann wird eher die Konjunktive
Normalform (KNF) verwendet.
Definition: Unter einer Elementarsumme verstehen wir eine Disjunktion
(Oder-Verknüpfung) von Literalen.
Die Schaltfunktion einer Elementarsumme ergibt genau für einen Input
eine 0, sonst immer 1. Sind e1 und e2 Elementarsummen, so hat die
Konjunktion e1  e2 genau dort eine 0, wo e1 oder e2 eine 0 haben.
Beliebige Schaltfunktionen kann man daher als Konjunktion von
Elementarsummen schreiben.
DigInf 05/06
21
Realisierung von Schaltfunktionen
Beispiel:
Zerlegung in Elementarsummen:


g(x,y,z) = e1  e2  e3 = (x  y  z)  (x  y   z)  (x  y  z)
DigInf 05/06
22
Digitale Logik
Realisierung beliebiger Funktionen f: {0,1}m  {0,1}n
Jedes solche Schaltglied kann aus n Schaltgliedern mit je einem Ausgang
aufgebaut werden. Es reicht daher, dass wir alle Schaltfunktionen
fi : {0,1}m  {0,1} realisieren können.
DigInf 05/06
23
Transistoren als Schalter
Als Elementarschalter werden in der Praxis Transistoren eingesetzt. Ein
Transistor hat einen Eingang (source), einen Ausgang (drain) und
einen Steuereingang (gate). Legt man eine Spannung zwischen source
und drain, so fließt nur Strom, falls auch eine Spannung zwischen
source und gate besteht.
In einem Stromkreis, bestehend aus einem Transistor und einem
Widerstand R zwischen den Polen einer Spannungsquelle, kann man
den Transistor als Schalter auffassen, der von einer Spannung
zwischen g und s eingeschaltet wird.
DigInf 05/06
24
Transistoren als Schalter
Ist Vext die externe Spannung (zwischen + und -), so
kann man Vout, die Spannung zwischen d und s,
in Abhängigkeit von Vin, der Spannung zwischen
g und s, tabellieren. Wir erhalten unter
Bezeichnung von Vext mit 1:
Vin Vout
0 Vext
Vext 0
Betrachten wir stattdessen als Ausgangsspannung
die an R abfallende Spannung VR, so hat man
das komplementäre Verhalten,
denn VR = Vext – Vout
Vin VR
0 0
Vext Vext
DigInf 05/06
25
Schaltfunktionen NAND und NOR
x
0
0
1
1
y
0
1
0
1
DigInf 05/06
NAND (x,y)
1
1
1
0
NOR (x,y)
1
0
0
0
26
Schaltfunktionen AND und OR
x
0
0
1
1
y
0
1
0
1
DigInf 05/06
AND (x,y)
0
0
0
1
OR (x,y)
0
1
1
1
27
Gattersymbole
Die grundlegenden Schaltglieder stellt man durch Gattersymbole dar,
wobei nur noch die Input- und Output-Leitungen gezeichnet werden.
z
x
z=x
Puffer
x
y
NOT
z
OR
x
z
y
AND
DigInf 05/06
z = x
z
x
x
y
z
0
0
0
0
1
1
1
0
1
1
1
1
x
y
z
0
0
0
0
1
0
1
0
0
1
1
1
z=xy
x
y
z
NOR
z=xy
x
z
y
NAND
x
y
z
0
0
1
0
1
0
1
0
0
1
1
0
x
y
z
0
0
1
0
1
1
1
0
1
1
1
0
z = (x  y)
z = (x  y)
28
Alte Gattersymbole
DigInf 05/06
29
Gattersymbole für weitere wichtige
Schaltungen
x
y
z
0
0
0
0
1
1
1
0
1
1
1
0
XOR
= (x  c)  (y  c)
MUX
DigInf 05/06
z = (x  c)  (y  c)
Mit anderen Worten:
z = if c then x else y
30
Halbaddierer
DigInf 05/06
x
y
c
s
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
31
Volladdierer
Zusätzlich werden ci (carry-in) und
co (carry-out) berücksichtigt.
DigInf 05/06
32
Addierwerk
Mit einer Kaskade von n-1 Volladdierern und einem Halbaddierer kann man ein
Addierwerk zusammenbauen, das 2 n-stellige Binärzahlen addiert. Jeder Ein-BitAddierer ist dabei für eine Ziffernposition verantwortlich.
DigInf 05/06
33
Rückgekoppelte Schaltungen
Unsere bisherigen Bausteine haben bisher Signale umgewandelt, aber
nicht gespeichert. Das reicht offensichtlich gerade für persistente Daten
nicht aus!
Rückgekoppelte Schaltungen können ein Gedächtnis haben.
Rückgekoppeltes OR-Gatter
Einmal 1, immer 1
Eine Speicherzelle sollte zwischen 0 und
1 wechseln und beide Werte dauerhaft
speichern können (je nach Bedarf).
Genau das kann ein Flip-Flop.
DigInf 05/06
34
Gleichungen Flip-Flop
q = (r  q)
und
q = (s  q)
r = 0  q = q , also q = q
s = 0  q = q , also q = q
Mit anderen Worten: Aus r oder s gleich null folgt, dass an q immer das
Komplement von q anliegt.
Im praktischen Einsatz wird r = s = 1 nicht benutzt, sodass immer  q = q
gilt.
Für r = s = 0 ist das Gleichungssystem unterbestimmt: q=0 oder q=1 sind
gültige Lösungen. Beide Lösungen sind stabil.
Wenn genau an einem der beiden Eingänge eine 1 anliegt, hat das
Gleichungssystem genau eine Lösung (r=1  q=0, s=1  q=1)
DigInf 05/06
35
Betrieb Flip-Flop
Demzufolge wird ein RS-Flip-Flop folgendermaßen betrieben:
•
•
•
•
Ruhezustand: r=s=0
Impuls 1 auf s (set) setzt q auf 1.
Ein Impuls 1 auf r (reset) setzt q auf 0.
Fällt der Impuls auf r oder s wieder auf 0 ab, so bleibt der vorige Wert
von q erhalten.
DigInf 05/06
36
Schalter, Codierer, Decodierer
Ein-/Ausschalter
Speicherzelle
Aufbauend auf einem RS-Flip-Flop.
Zusätzliche Schaltglieder zur Auswahl einer bestimmten
Speicherzelle aus vielen Zellen.
Select stellt sicher, dass nur was an OUT ankommt, wenn Select=1.
Schalter an Eingängen erfordern, dass Zelle zum Schreiben bereit
ist.
DigInf 05/06
37
Schalter, Codierer, Decodierer
Eine Gruppe von Speicherzellen heißt Register.
Da nie einzelne Bits, sondern nur Wörter angesprochen werden,
werden die Select- und die Write-Eingänge verbunden (vgl.
folgendes 4 Bit Register).
DigInf 05/06
38
ALU
1-Bit-ALU (3 Eingänge zur Kodierung von 8
Operationen), zwei Operanden (x,y), ein Carry
(ci), ein Ergebnis (z), ein Übertrags-Carry (ci+1).
DigInf 05/06
39
ALU
Detailschaltung
1-Bit-ALU
4-Bit-ALU
DigInf 05/06
40
Herunterladen