Post on 08-Mar-2021
Rechnerstrukturen
Michael Engel und Peter Marwedel
TU Dortmund, Fakultat fur Informatik
SS 2013
Hinweis: Folien a. d. Basis von Materialien von Gernot Fink und Thomas Jansen 23. Mai 2013
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Synchrone Schaltwerke
ab jetzt getaktete Schaltwerke
also Fuhre Taktsignal T ein
verschiedene technische Moglichkeiten
◮ Pegelsteuerung: aktiv, wenn 1 anliegt
◮ positive Flankensteuerung: aktiv, wenn Wechsel von 0 nach 1
◮ negative Flankensteuerung: aktiv, wenn Wechsel von 1 nach 0
digital-logische Ebene technisches Detail ignorieren
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
JK-Flip-Flop
K&
J&
R Q
T T
S Q
R S Q
0 0 Q
0 1 11 0 01 1 nicht erlaubt
J K R S Q
0 0 0 0 Q
0 1 Q 0 0
1 0 0 Q 1
1 1 Q Q Q
positiv alle Eingaben erlaubt, sinnvolle Funktionalitat, vielseitig
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Flip-Flops
Wir haben also hier 4 verschiedene Flip-Flop-Typen
Wozu brauchen wir eigentlich Flip-Flops?
klar Realisierung von Speicher
Was mussen wir fur den Einsatz als Speicher wissen?
klar gezielte Anderung von Speicherinhalten
also Zustandstabellen eigentlich nicht interessant
besser Ansteuertabellen
etwas praziser
Zustandstabelle Ansteuertabelle
Eingabe ⇒ ZustandIst-Zustand,Soll-Zustand
⇒ Eingabe
Anmerkung Ansteuertabellen konnen”don’t care“ enthalten
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Ansteuertabelle JK-Flip-Flop
ZustandstabelleJ K Q
0 0 Q
0 1 01 0 1
1 1 Q
AnsteuertabelleQalt Qneu J K
0 0 0 ∗0 1 1 ∗1 0 ∗ 11 1 ∗ 0
Beobachtung immer Freiheit in der Ansteuerung
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Unvollstandig definierte Ansteuerfunktionen
Wir haben fur RS-Flip-Flops und JK-Flip-Flopsnur partiell definierte Ansteuerfunktionen
Ist das ungunstig?
Nein!
Erinnerung Minimalpolynome fur partiell definierte Funktionen
Erinnerung Realisierungen konnen wesentlich einfacher sein
Erinnerung Minimalpolynom fur partiell definiertes f
durch PI fur f1 und Uberdeckung von f0
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Huffmann Schaltwerk-Modell
ein allgemeines, formales Schaltwerkmodell
x1x2...
xnSchaltnetz
z1z2...zm
...
...
y1
yk
Speicherw1
wl
Beobachtung fuhrt Gelerntes uber Schaltnetze, Flip-Flops undAutomaten sinnvoll zusammen
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Huffmann Schaltwerk-Modell
etwas detaillierter
x1...
xn
...Ausgabe-
Schaltnetz
z1
zm
...
wl
w1...
...... Speicher
Ansteuer-
Schaltnetz
y1
yk
...
...
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Schaltwerk-Entwurf
Wunsch strukturierter Schaltwerk-Entwurf
Was konnen wir uberhaupt als Schaltwerk realisieren?
klar alles, was als Automat beschrieben werden kannzum Beispiel
◮ Getranke-Automat
◮ Ampelsteuerung
◮ Waschmaschinen-Steuerung
◮ . . .
Anmerkung Heuristiken und Erfahrung sind wichtig
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Schritte beim Schaltwerk-Entwurf
0. Verstehen der Aufgabe
1. Spezifikation des Verhaltens (z. B. als Mealy-Automat)
2. Wahl der Coderierung von Eingaben, Zustanden, Ausgaben
3. Wertetabelle mit Eingaben, Zustand, Ausgaben, neuem Zustand
4. Wahl der Flip-Flop-Typen
5. Erganzung der Wertetabelle um die Flip-Flop-Ansteuerung
6. Entwurf passender boolescher Funktionen
7. Entwurf passender Schaltnetze
8. Entwurf vollstandiges getaktetes Schaltwerk
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Beispiel zum Schaltwerk-Entwurf
zur Einfuhrung ein”praktisches“ Beispiel
hilfreich besonders gut verstandenes Problem
Aufgabe Addition von zwei Betragszahlen
Erinnerung wir haben
Verfahren Große Tiefe
Schul-Methode ≈ 5n ≈ 2nCarry-Look-Ahead ≈ n2 ≈ 2 log2 n
jetzt klein und flach mit einem Schaltwerkaber extrem langsam
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Entwurf Addierwerk: Schritt 0
Schritt 0 verstehen der Aufgabe
Wunsch Summanden bitweise eingebenSumme bitweise erhalten
klar geht nur von rechts nach links
Was muss man sich merken?
klar nur den aktuellen Ubertragalso 1 Bit
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Entwurf Addierwerk: Schritt 1
Schritt 1 Spezifikation des Verhaltens
Entscheidung Beschreibung durch Mealy-Automat
Eingabealphabet Σ = {00, 01, 10, 11}Ausgabealphabet ∆ = {0, 1}Zustandsmenge Q = {0, 1}
0 1
11/0
00/1
01/1
10/1
00/0
01/0
10/0
11/1
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Entwurf Addierwerk: Schritt 2
Schritt 2 Wahl der Codierung: Eingaben, Zustanden, Ausgaben
klar im Allgemeinen (fast) jede Freiheit
hier kanonische Codierung naheliegend
Codierung von Q
q ∈ Q Codierung
0 01 1
Codierung von Σ
w ∈ Σ Codierung
00 0 001 0 110 1 011 1 1
Codierung von ∆
w ∈ ∆ Codierung
0 01 1
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Entwurf Addierwerk: Schritt 3
Schritt 3 Wertetabelle Eingaben, Zustand,neuer Zustand, Ausgaben
naheliegend Eingaben heißen x , yalter Zustand heißt caltneuer Zustand heißt cneuAusgabe heißt s
calt x y cneu s
0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Entwurf Addierwerk: Schritt 4
Schritt 4 Wahl der Flip-Flop-Typen
Entscheidung JK-Flip-Flops
Anmerkung
◮ nicht viele uberzeugende Grunde
◮ weil es besonders viele Freiheiten erlaubt
◮ weil der Zustandswechsel nichts nahelegt
◮ weil es oft benutzt wird
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Enturf Addierwerk: Schritt 5
Schritt 5 Erganzung der Wertetabelle um Flip-Flop-Ansteuerungcalt x y cneu 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 ∗ 11 0 1 1 0 ∗ 01 1 0 1 0 ∗ 01 1 1 1 1 ∗ 0
Ansteuertabelle JK-Flip-FlopQalt Qneu J K
0 0 0 ∗0 1 1 ∗1 0 ∗ 11 1 ∗ 0
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Entwurf Addierwerk: Schritt 6
Schritt 6 Entwurf passender boolescher Funktionencalt x y cneu 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 ∗ 11 0 1 1 0 ∗ 01 1 0 1 0 ∗ 01 1 1 1 1 ∗ 0
calt
0
1
00 01 11 10x y
J(calt, x , y) = x y
K (calt, x , y) = x y
s(calt, x , y) = calt ⊕ x ⊕ y
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Entwurf Addierwerk: Schritt 7
Schritt 7 Entwurf passender Schaltnetze
J(calt, x , y) = x y
K (calt, x , y) = x y
s(calt, x , y) = calt ⊕ x ⊕ y
1
1
&
= 1x
y
& K
J
= 1 scalt
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Entwurf Addierwerk: Schritt 8
Schritt 8 Entwurf des vollstandigen Schaltwerks
1
1
&
= 1x
y
&
= 1 s
T T
K
J Q
Q
0 1 0 0 1 1+ 0 1 0 1 0 1
000101
Beobachung Eingabe (0, 0) im letzten Takt wichtigInitialisierung? Eingabe (0, 0)
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Unser Addierwerk: Serien-Addierer
Fazit
◮ addiert beliebig lange Betragszahlen
◮ ist sehr klein und flach
◮ ist sehr leicht zu initialisieren
◮ ist extrem langsam
Warum ist das Schaltwerk so langsam?
klar und bekannt wegen der Ubertrage
Mussen Ubertrage so lange dauern?
bekannt im Allgemeinen nicht (siehe Addierer)
aber Bei bit-weiser Eingabe schon!
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Uber unsere Modelle
Wir wissen schon Ubertrage werden nur manchmallange weitergereicht.
Kann man ein Schaltwerk bauen, dass nur manchmal langsam ist?Problem unsere Automaten konnen das zunachst nicht
Beobachtung bei Mealy- und Moore-Automat bestimmtLange der Eingabe die Anzahl der Rechentakte
darum Modifikation des Automatenmodells
neu Erlaube leere Eingabe ε undsignalisiere Ende der Rechnung durch Rechenende-Zeichen
Beobachtung Das ist fundamental neu fur uns.Rechenzeit kann von der Eingabe abhangen(nicht nur von der Eingabelange).
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Auf dem Weg zum besseren Addierwerk
Wie wollen wir vorgehen?
Beobachtung Eingaben mussen sofort ganz zur Verfugung stehensonst kann man nicht schneller sein
also Eingabealphabet Σ = {0, 1}2n
Eingabe xn−1xn−2 · · · x1x0yn−1yn−2 · · · y1y0 ∈ {0, 1}2n
interpretieren alsxn−1 xn−2 · · · x0
+ yn−1 yn−2 · · · y0
bekannte Idee zur LosungErsetze x und y durch x ′ und y ′ mit x + y = x ′ + y ′
so lange, bis y ′ = 0 gilt.
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Eine gute Idee verallgemeinern
Erinnerung Wir kennen das schon vom Halbaddierer. . .
HAx
y
s
cmit x + y = 2c + s = (c0)2 + s
klar Das funktioniert auch fur alle n Stellen parallel.
HA
y3 x3
c3 s3
HA
y2 x2
c2 s2
HA
y1 x1
c1 s1
HA
y0 x0
c0 s0
x ′3 x′
2 x′
1 x′
0 = s3 s2 s1 s0U y ′3 y
′
2 y′
1 y′
0 = c3 c2 c1 c0 0Fortschritt? in y hinten
”neue“ 0
also nach ≤ n Takten y = 0Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Noch offene Fragen
Was ist mit dem U?
klar potenziell kann in jedem Takt vorne ein Uberlauf entstehen
Also bis zu n Uberlaufe speichern?
zum Gluck nein
Wir wissen hochstens 1 Uberlauf insgesamt
Wann ist die Rechnung fertig?
klar Rechnung fertig ⇔ y = 0
also”done“ d = y0 ∨ y1 ∨ · · · ∨ yn−1 = ¬
n−1∨
i=0
yi
jetzt unsere Ideen zusammensetzen
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Das von Neumann-Addierwerk
John von Neumann (1903–1957)
Ideen
◮ Schaltwerk bekommt direkt Summanden komplett
◮ Eingabe ε wird erlaubt
◮ Rechenende-Zeichen signalisiert Ende der Rechnung
◮ in jedem Takt ersetze x , y durch x ′, y ′ mit x + y = x ′ + y ′
◮ Ersetzung stellenweise mit Halbaddierern
Hoffnung oft schnell
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Schematische Darstellung von Neumann-Addierwerk
fur n = 3
x0
o
0
x1x2
d
y0
HA
y1
HA
y2
HA
≥ 1
≥ 1
klar die xi , yi und U (in Abb:“o”) sind Speicher mit Flip-Flops realisieren
Wieso Ruckkopplung von ’U’ mit Oder-Gatter?Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Analyse des von Neumann-Addierwerks
Ist das Addierwerk denn jetzt wirklich schnell?
erstmal Welche Eingaben dauern lange?
1. Versuch viele Ubertrage
exemplarisch fur n = 6 111111 + 111111U x5 x4 x3 x2 x1 x00 1 1 1 1 1 1
1 1 1 1 1 1
y5 y4 y3 y2 y1 y0
U x5 x4 x3 x2 x1 x01 0 0 0 0 0 0
1 1 1 1 1 0
y5 y4 y3 y2 y1 y0
U x5 x4 x3 x2 x1 x01 1 1 1 1 1 0
0 0 0 0 0 0
y5 y4 y3 y2 y1 y0also nach nur zwei Takten fertig schnellErinnerung bzgl. Ubertrag schwierig: 0 + 1, 1 + 0
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Analyse des von Neumann-Addierwerks II
2. Versuch lauter”W“-Stellen
exemplarisch fur n = 6 000000 + 111111
U x5 x4 x3 x2 x1 x00 0 0 0 0 0 0
1 1 1 1 1 1
y5 y4 y3 y2 y1 y0
U x5 x4 x3 x2 x1 x00 1 1 1 1 1 1
0 0 0 0 0 0
y5 y4 y3 y2 y1 y0
also nach nur einem Takt fertig sehr schnell
klar 111111 + 000000 ware sofort fertig
Beobachtung Ubertrage mit langen Wegen dauern lange
Was ist die“worst case”Eingabe?
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Worst-Case-Eingabe fur das von Neumann-Addierwerk
U x5 x4 x3 x2 x1 x00 1 1 1 1 1 1
0 0 0 0 0 1
y5 y4 y3 y2 y1 y0
U x5 x4 x3 x2 x1 x00 1 1 1 1 1 0
0 0 0 0 1 0
y5 y4 y3 y2 y1 y0
U x5 x4 x3 x2 x1 x00 1 1 1 1 0 0
0 0 0 1 0 0
y5 y4 y3 y2 y1 y0
U x5 x4 x3 x2 x1 x00 1 1 1 0 0 0
0 0 1 0 0 0
y5 y4 y3 y2 y1 y0
U x5 x4 x3 x2 x1 x00 1 1 0 0 0 0
0 1 0 0 0 0
y5 y4 y3 y2 y1 y0
U x5 x4 x3 x2 x1 x00 1 0 0 0 0 0
1 0 0 0 0 0
y5 y4 y3 y2 y1 y0
U x5 x4 x3 x2 x1 x01 0 0 0 0 0 0
0 0 0 0 0 0
y5 y4 y3 y2 y1 y0
also extrem langsam
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Analyse des von Neumann-Addierwerks
gesehen 111 · · · 111 + 000 · · · 000 0 Takteextrem schnell
gesehen 111 · · · 111 + 000 · · · 001 n Takteextrem langsam
Ist das von Neumann-Addierwerk schnell oder langsam?
Best Case schnell (0 Takte)Worst Case langsam (n Takte)
0 Takte – Glucklicher Zufall? n Takte – Seltenes Ungluck?Was ist typisch?
Antwort Average-Case-Analysedurchschnittliche Rechenzeit
Problem Welche Verteilung uber Eingaben nehmen wir an?Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Average-Case-Analyse
Average-Case-Rechenzeit durchschnittliche Rechenzeitbei Gewichtung der Eingabennach ihrer W’keit bei gegebenerW’keitsverteilung uber den Eingaben
Problem Welche W’keitsverteilung ist angemessen?
meist betrachtet Gleichverteilung
Vorsicht reale Daten fast nie gleichverteilt
trotzdem hier Annahme Gleichverteilung
Gleichverteilung bedeutet
◮ alle Eingaben gleichwahrscheinlich
◮ an jeder Position 0 und 1 mit W’keit 1/2
◮ alle Positionen unabhangigSynchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Average-Case-Analyse von Neumann-Addierwerk
Start: “Typische”Eingabe der Lange 2n bei Gleichverteilung:je 50% Null- und Eins-Stellen (d.h. n/2 Einsen proSummand)
Verarbeitung: nach 1 Takt ...
Ubertrage / y : ex. Eins an yi+1, wenn vorher Eins sowohl anxi als auch yi (d.h. mit Wahrscheinlichkeit 1/4)⇒ Erwarten nach 1 Takt n/4 1-en in y
Ergebnis / x : ex. Eins in xi , wenn vorher 01 oder 10 in xi , yi(d.h. in 50% der Falle)⇒ Erwarten nach 1 Takt weiterhin n/2 1-en in x
⇒ Erwarten: Anzahl Einsen in y halbiert sich je Takt (in x
unverandert)
Fazit: Erwarten Rechenende nach log2n Takten
also Das von Neumann-Addierwerk ist im Durchschnitt schnell.Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Moore-Automat zum von
Neumann-Addierwerk
Ziel Beschreibung eines Moore-Automaten zumvon Neumann-Addierwerk zur Addition vonzwei n-Bit-Zahlen
Erinnerung Erweiterung des Automatenmodells um ε-Eingabenim folgenden Sinn
◮ bei Eingabe von x y wird aktuelle Rechnung unterbrochen und mitBerechnung von x + y begonnen
◮ bei Eingabe von ε wird aktuelle Rechnung fortgesetzt
◮ Ausgabe ist”−“, falls Rechnung noch nicht beendet
◮ Ausgabe ist Summe der Eingabezahlen, wenn fertig berechnetSynchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Komponenten des Moore-Automaten
◮ Eingabealphabetalle moglichen Paare von n-Bit-Zahlen, außerdem εΣ := {0, 1}2n ∪ {ε}
◮ Ausgabealphabetalle moglichen Ergebnisse der Addition, außerdem −∆ := {0, 1}n+1 ∪ {−}
◮ Zustandsmengealle moglichen Zwischenergebnisse einschließlich UbertragQ := {0, 1}2n+1
◮ Startzustandwillkurlich q0 = 00 · · · 00
︸ ︷︷ ︸
2n + 1 Nullen
= 02n+1
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Zustandsuberfuhrungsfunktion δ
Σ = {0, 1}2n ∪ {ε}, ∆ = {0, 1}n+1 ∪ {−}, Q = {0, 1}2n+1,q0 = 02n+1
1. Fall Eingabe w = x y 6= ε
δ(q,w) := 0w = 0 x y
2. Fall Eingabe w = ε
Notation aktueller Zustand q = u x y
δ(q, ε) := q′ = u′ x ′ y ′ = u′ x ′n−1 x′
n−2 · · · x′
0 y′
n−1 y′
n−2 · · · y′
0
mit
◮ y ′0 := 0
◮ y ′i := xi−1 ∧ yi−1 fur i ∈ {1, 2, . . . , n − 1}
◮ x ′i := xi ⊕ yi fur i ∈ {0, 1, . . . , n − 1}
◮ u′ := u ∨ (xn−1 ∧ yn−1)
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Ausgabefunktion λ
Σ = {0, 1}2n ∪ {ε}, ∆ = {0, 1}n+1 ∪ {−}, Q = {0, 1}2n+1,q0 = 02n+1
Notation neuer Zustand δ(q,w) = q′ = u′ x ′ y ′
1. Fall y ′ 6= 0n
λ(δ(q,w)) := −
2. Fall y ′ = 0n
λ(δ(q,w)) := u′ x ′
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Schematische Darstellung von
Neumann-Addierwerk
fur n = 3
x0
o
0
x1x2
d
y0
HA
y1
HA
y2
HA
≥ 1
≥ 1
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Speicher
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Speicher
Erinnerung Wir konnen in einem Flip-Flop ein Bit speichern.
klar 1-Bit-Speicher reichen uns nicht.
klar Wir konnen in k Flips-Flops k Bits speichern.
Wie organisieren wir das so, dass der Zugriff bequem ist?
exemplarisch Speicher fur 3-Bit-Worter
Warum 3? passt bequem auf eine Folie
Anmerkung Auch 3-Bit-Speicher reicht in der Praxis nicht aus.
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Speichern eines 3-Bit-Wortes
D
Clk
QD
Clk
QD
Clk
Q
O2
O1
O0
I0
I1
I2
1RD
Wie konnen wir mehr als nur ein Wort speichern?
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Speichern von zwei 3-Bit-Wortern
≥ 1
≥ 1
≥ 1
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
O2
O1
O0
I0
I1
I2
1RD
Beobachtung Schaltung funktioniert so nicht
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Speichern von zwei 3-Bit-Wortern
klar Die Speicherworter mussen getrennt ansprechbar sein.
also Wir wollen ein Wort wahlfrei adressieren.
klar Wir brauchen eine Adressleitung A0.
Interpretation
◮ A0 = 0 Wort w0 adressiert zum Lesen oder Schreiben
◮ A0 = 1 Wort w1 adressiert zum Lesen oder Schreiben
wie bisher RD bestimmt, ob gelesen oder geschrieben wird
◮ RD = 1 Speicherinhalt lesen
◮ RD = 0 Speicherinhalt schreiben
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Schaltung zur Speicherung von zwei
3-Bit-Wortern
≥ 1
≥ 1
≥ 1
&& &
&&&
&
&D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
A0
O2
O1
O0
1
I0
I1
I2
1RDSynchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Speichererweiterungen
angenommen Schaltung zur Speicherung von zwei 3-Bit-Worternim Einsatz
angenommen Speicher reicht im Betrieb nicht aus
Wunsch Speichererweiterung
Beachte Speichererweiterung bedeutet
”weiteren Speicherbaustein (gleicher Art) hinzufugen“,nicht
”vorhandenen Speicherbaustein durch großeren
Speicherbaustein ersetzen“
Wie konnen wir das unterstutzen?
Idee zusatzliche Eingabe”Chip Selected“ (CS)
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Speicher fur zwei 3-Bit-Worter
&
≥ 1
≥ 1
≥ 1
&
&
&
&& &
&&&
&
&
&D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
A0
O2
O1
O0
1
I0
I1
I2
1RD
CS
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Beispiel”w1 := 1 0 1“
&
≥ 1
≥ 1
≥ 1
&
&
&
&& &
&&&
&
&
&D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
A0
O2
O1
O0
1
I0
I1
I2
1RD
CS
101
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Beispiel”Lies w1“
&
≥ 1
≥ 1
≥ 1
&
&
&
&& &
&&&
&
&
&D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
A0
O2
O1
O0
1
I0
I1
I2
1RD
CS
101
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Realistischere Speichergroßen
Beobachtung Speichergroße”2 Worter“ ist nicht realistisch
auch nicht bei Benutzung einiger Bausteine
Wie kommen wir zu realistischen Speichergroßen?
klar großere Wortlange funktioniert im Prinzip gleich
offen Wie verallgemeinern wir auf > 2 Worter?
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Speicher fur zwei 3-Bit-Worter
&
≥ 1
≥ 1
≥ 1
&
&
&
&& &
&&&
&
&
&D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
D
Clk
Q
A0
O2
O1
O0
1
I0
I1
I2
1RD
CS
Word Select LineSynchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Word Select Lines fur vier Worter
A0 1
A1 1
& Word Select Line 3
& Word Select Line 2
& Word Select Line 1
& Word Select Line 0
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Speicher fur viele Worter
allgemein 2k Worter speichern
klar k Adressleitungen benotigt
zunachst formale Beschreibung als boolesche Funktion
f : {0, 1}k → {0, 1}2k
mit f (A0,A1, . . . ,Ak−1) = (s0, s1, . . . , s2k−1)
mit si =
{
1 falls (Ak−1 Ak−2 · · ·A0)2 = i
0 sonst
Name der Funktion Decodergenauer k × 2k -Decoder
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Decoder
Nachdenken
Kommt uns das
nicht bekannt vor?
x0
x1
x2
1 1 1 1 1 1 1 1
0 w0,5 w1,5 w2,5 w3,5 w4,5 w5,5 w6,5 w7,5
0 w0,4 w1,4 w2,4 w3,4 w4,4 w5,4 w6,4 w7,4
0 w0,3 w1,3 w2,3 w3,3 w4,3 w5,3 w6,3 w7,3
0 w0,2 w1,2 w2,2 w3,2 w4,2 w5,2 w6,2 w7,2
0 w0,1 w1,1 w2,1 w3,1 w4,1 w5,1 w6,1 w7,1
0 w0,0 w1,0 w2,0 w3,0 w4,0 w5,0 w6,0 w7,0
3 3 3 3 2 2 2 2
3 3 2 2 3 3 2 2
3 2 3 2 3 2 3 2
Beobachtung
Und-Teil
realisiert
Decoder
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Demultiplexer
Erinnerung MUXd (y1, . . . , yd , x0, x1, . . . , x2d−1) = x(y1 y2···yd )2
Erinnerung Decoder als boolesche Funktion
DECODEd : {0, 1}d → {0, 1}2
dmit
DECODEd (A0,A1, . . . ,Ad−1) = (s0, s1, . . . , s2d−1) mit
si =
{
1 falls (Ad−1 Ad−2 . . .A0)2 = i
0 sonst
Demultiplexer DEMUXD : {0, 1}d+1 → {0, 1}2d
mitDEMUXD(x ,A0,A1, . . . ,Ad−1)=
(x ∧ {DECODEd(A0,A1, . . . ,Ad−1)}0,
x ∧ {DECODEd (A0,A1, . . . ,Ad−1)}1, . . . ,x ∧ {DECODEd (A0,A1, . . . ,Ad−1)}2d−1
)
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Speicher
Realisiert man Speicher wirklich so?
... nicht fur Hauptspeicher von Rechnern (kompakter als DRAM[dynamic random access memory] moglich)
tatsachlich typische SRAM-Realisierung (SRAM = static RAM)
Eigenschaften
◮ dauerhaft
◮ schnell
◮ Zugriffszeit von Daten unabhangig
◮ teuer
◮ hoher Stromverbrauch
Bemerkung typisch fur Cache- oder Register-SpeicherSynchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher
Cache128 K × 8= 128 · 1024 × 8= 217 × 8darum 17 Adress-leitungen A0–A16
Chip Enablebei uns CSWrite Enablebei uns RD = 0Output Enablebei uns RD = 1
Beobachtung128 · 1024 · 8= 1048 576Flip-Flops
Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher