Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der...

56
Rechnerstrukturen Michael Engel und Peter Marwedel TU Dortmund, Fakult¨ at f¨ ur 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

Transcript of Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der...

Page 1: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 2: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 3: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 4: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 5: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 6: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 7: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 8: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

Huffmann Schaltwerk-Modell

etwas detaillierter

x1...

xn

...Ausgabe-

Schaltnetz

z1

zm

...

wl

w1...

...... Speicher

Ansteuer-

Schaltnetz

y1

yk

...

...

Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher

Page 9: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 10: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 11: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 12: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 13: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 14: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 15: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 16: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 17: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 18: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 19: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 20: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 21: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 22: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 23: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 24: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 25: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 26: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 27: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 28: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 29: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 30: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 31: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 32: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 33: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 34: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 35: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 36: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 37: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 38: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 39: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

Speicher

Synchrone Schaltwerke (Wiederholung) Schaltwerk-Entwurf Speicher

Page 40: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 41: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 42: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 43: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 44: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 45: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 46: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 47: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 48: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 49: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 50: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 51: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 52: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 53: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 54: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 55: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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

Page 56: Michael Engel und Peter Marwedel - TU Dortmund...Schritte beim Schaltwerk-Entwurf 0. Verstehen der Aufgabe 1. Spezifikation des Verhaltens (z.B. als Mealy-Automat) 2. Wahl der Coderierung

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