Rechnersysteme Tu Darmstadt k2
Rechnersysteme Tu Darmstadt k2
Kapitel 2
Vorkenntnisse
●
MOS Transistoren
– N-MOS und P-MOS
●
CMOS als Schaltungsprinzip
– Inverter, allgemeine Struktur
●
MOS-Transistoren als perfekte Schalter
●
Stromverbrauch in CMOS-Schaltungen
●
Metal-Oxyde-Semiconductor
●
Eigentlich immer ein Feldeffekt-Transistor
●
Gate früher Metall, heute meist Poly-Silizium
●
Gibt es in zwei Varianten: N-Kanal und P-Kanal
gate n n p p gate
●
Was passiert bei verschiedenen Spannungen am Gate?
– Annahme: N-Kanal Transistor, Substrat an 0V angeschlossen
– Versuch 1: 0V an das Gate anlegen
– Versuch 2: VDD an das Gate anlegen
n n n n
p-Substrat p-Substrat
0V 0V
●
P-Kanal Transistoren
– Substrat an VDD anschließen
– Kanal bildet sich bei 0V!
p p p p
n-Substrat n-Substrat
VDD VDD
●
MOS-Transistoren können wie spannungsgesteuerte
Schalter gesehen werden
– Kein Strom fließt über das Gate
– Kanal baut sich auf, wenn „richtige“ Spannung am Gate
g=0V g=VDD
d d
d
N-Kanal g Aus An
s s
s
d d d
P-Kanal g An Aus
s s
s
●
Besteht aus zwei Transistoren
●
N-Kanal leitet, wenn Eingang 1
→ Ausgang mit 0V verbunden
VDD
●
P-Kanal leitet, wenn Eingang 0 ⊕
→ Ausgang mit VDD verbunden
●
Nur einer der beiden
Transistoren leitet gleichzeitig a y
→Komplementäre Zweige
(complementary MOS) 0V
●
Alle CMOS Gatter bestehen aus zwei Pfaden
●
Pull-Up Pfad VDD
⊕
– liefert die 1 am Ausgang
– Sollte aus P-Kanal Transistoren bestehen P-Kanal
Pull-Up
●
Pull-Down Pfad
Eingänge Ausgang
– liefert die 0 am Ausgang
– Sollte aus N-Kanal Transistoren
N-Kanal
bestehen Pull-Down
●
Für jede Eingangskombination
– Darf nur ein Pfad aktiv sein 0V
(durchschalten)
– Muss ein Pfad aktiv sein
© Christian Hochberger, TU Darmstadt Grundlagen: CMOS 8
Transmission Gatter
●
N-Kanal Transistoren „liefern“ eine gute 0
●
P-Kanal Transistoren „liefern“ eine gute 1
●
Wie baut man einen idealen Schalter?
– Parallel-Schaltung von N-Kanal und P-Kanal
– Beide gleichzeitig ein- bzw. ausschalten
Enable
a b
Enable
●
Durch Gates fließt kein Strom!
– Nur beim Umladen eines Gates fließt Strom
– Häufigkeit der Schaltvorgänge ist entscheidend
(Bei Frequenz f wird nur in der Hälfte der Fälle geladen)
●
Ladung bestimmt durch
VDD 1
– P dynamic = C V 2DD f
2
– Kapazität des Gates C
●
Trotzdem Leckströme vorhanden
P static = I DD V DD
●
Schaltelement mit zwei Eingängen
– Dateneingang
– Steuereingang (engl. meist enable)
E E A Y
0 0 Z
A Y 0 1 Z
1 0 0
1 1 1
●
Gibt es auch mit negiertem Enable
(wird oft als low-aktiv bezeichnet)
●
CMOS-Realisierung
– Gezielte Verletzung der komplementären Logik
– Enable = 0 → Pull-Up und Pull-Down Pfad aus
VDD
⊕
E A E E
EP
P N
Y 0 0 1 0
0 1 1 0
EN 1 0 1 1
1 1 0 0
0V
●
Mehrere Sender und Empfänger teilen sich eine
Leitung (Bus)
– Immer nur ein Sender gleichzeitig aktiv
– Inaktive Sender → Hochohmig (Z)
zum Bus
zum Bus
zum Bus
zum Bus
zum Bus
vom Bus
vom Bus
vom Bus
vom Bus
vom Bus
Mikro- Haupt- Grafik- USB-
prozessor speicher Karte Festplatte Kontroller
●
Wann ist eine Schaltung kombinatorisch?
– Das Netzwerk besteht nur aus Elementen, die
kombinatorisch sind
– Jeder Knoten ist entweder ein Eingang oder mit genau
einem Ausgang eines Elements verbunden
– Das Netzwerk enthält keine Zyklen (Rückkopplungen)
& a
≥1 y
≥1 y
&
CL CL
CL CL
© Christian Hochberger, TU Darmstadt Schaltungsarten unterscheiden 15
Multiplexer
●
Schaltung zum Auswählen eines Signalwegs
– 2 (oder mehr) Dateneingänge
– Steuereingang(eingänge)
– Datenausgang
●
Steuereingang legt fest, welcher Eingang an den
Ausgang weitergeleitet wird
– Gerichtete Schaltung S
– Steuereingang binär codiert
(bei N Eingängen → ⌈ld(N)⌉) D0 0
Y
D1 1
Schaltsymbol
© Christian Hochberger, TU Darmstadt Kombinatorische Grundschaltungen 16
Multiplexer – Innenschaltung
●
Einfachste Gattervariante folgt direkt aus Gleichung
D1
S &
≥1
D0 &
●
AND-Gatter wird wie Tor benutzt
– Steuereingang 1 → Daten können passieren
– Nur ein Tor wird geöffnet
●
Multiplexer können auch mehr als 2 Eingänge
zusammenfassen
●
Beispiel: 4 : 1 Multiplexer
– 4 Dateneingänge S1S0
– 2 Steuereingänge (binär codiert) D0 0
●
Im Allgemeinen: D1 1
Y
D2 2
– 2N Dateneingänge D3 3
→ N Steuereingänge
– Aber auch für X ≠ 2N Eingänge möglich
●
Verschiedene Realisierungen möglich
– Kaskadierte Schaltungen
– Tristate Schaltung
– Zweistufige Schaltung
●
Kaskadierte Schaltung
S0 S1
– Leicht zu konstruieren
– Jede Stufe halbiert Anzahl D0 0
der Signale D1
1 0
●
Tristate Schaltung S1
S0 &
D0
S1
S0 &
D1
S1
S0 &
D2 S1
S0 &
D3
Y
●
Nur ein AND-Gatter liefert 1
– Nur ein Treiber aktiv
– Alle anderen hochohmig
●
Technologisch bedenklich
S1 S0
●
Zweistufige Logik
D0
&
D1
&
D2 ≥1
&
D3
&
●
Im Prinzip beliebig skalierbar (2N Eingänge)
– Entsprechend breite AND-Gatter (N+1 Eingänge)
– Entsprechend breites OR-Gatter (2N Eingänge)
–
© Christian Hochberger, TU Darmstadt Kombinatorische Grundschaltungen 21
Propagation Delay
Verzögerung
A Y
A
Y
Zeit
© Christian Hochberger, TU Darmstadt Zeitverhalten 22
Propagation und Contamination Delay
●
Contamination Delay
– Minimale Zeit von einer Eingangsänderung bis zu einer
Ausgangsänderung
●
Lässt sich zusammen mit Propagation Delay in
einem Zeitdiagramm zeigen
tpd
A Y A
Unbestimmt!
Y
tcd
Zeit
© Christian Hochberger, TU Darmstadt Zeitverhalten 23
Zeitverhalten zusammengesetzter
Schaltungen
●
In mehrstufigen Schaltungen
– Verschieden lange Pfade von den Eingängen zu den
Ausgängen
– Unterschiedlich schnelle Gatter in verschiedenen Pfaden
– Fehler durch unterschiedliche Laufzeiten in der Schaltung
●
Genauere Analyse der Schaltung erforderlich
– „langsamster“ Weg durch die Schaltung → tpd
– „schnellster“ Weg durch die Schaltung → tcd
– Kritische Wechsel an den Eingängen
●
Längster Pfad durch die Schaltung
– Kumulierte Verzögerung maximal
– Definiert tpd tpd
A
● tpd = 2*tpd_AND + tpd_OR
n1
n2
Y
A=1→0 n1
B=1 & Zeit
n2
≥1
C=0
D=1 & Y=1→0
●
Beschreibt schnellstmöglichen Weg vom Eingang
zum Ausgang
● Minimale kumulierte tcd auf allen Pfaden
● tcd = tcd_AND
tcd
Y
A=1
&
B=1
≥1 Zeit
C=0
& Y=1→0
D=1→0
●
Untypische Darstellung:
R Q
≥1
Q
≥1 S
●
Übliche Darstellung
– Eingänge links, Ausgänge rechts
R
≥1 Q
Q
S ≥1
●
Separate Signale für R und S werden selten
gebraucht
– Häufiger wird nur ein D Signal gebraucht
●
Konsequenz
– R und S aus D und einem Enable Signal berechnen
– Vermeidet verbotenen Zustand automatisch
E
& Q
≥1 D Q
Q E Q
≥1
&
D
●
Idee: Nicht das gleiche E an beiden Latches verwenden
Q1 Q2
D D Q D Q
E Q E Q
T
●
Nur eines der Latches ist transparent
– T=0: Q1 folgt D
– T=1: Q2 folgt Q1
●
Aber:
– Bei T=1 kann sich Q1 nicht mehr ändern!
– Wert von Q1 wird beim Wechsel von T=0 auf T=1 gespeichert
→ Flankensteuerung
© Christian Hochberger, TU Darmstadt RS-Latch und Flip-Flops 29
Flip-Flops mit Enable
●
Zusätzliches Eingangssignal
E
– Takteingang wirkt nur wenn Enable=1
– Wird häufig in großen Systemen 0
verwendet D Q
D 1
●
Verschiedene Formen möglich
– Vorsicht: Clk durch Gatter führen ist Clk Q
gefährlich!
– Lösung mit Mux ist stabiler
●
Schaltsymbol D D Q
Clk
D Q & Q
E
E Q
●
Zusätzliches Eingangssignal
– Löscht Flip-Flop bei Aktivierung
– Kann synchron oder asynchron erfolgen
●
Synchrones Reset
– Daten-Eingang wird durch Tor (AND-Gatter) geschickt
– Aktivierung im Beispiel bei 0 Pegel (typisch)
D
& D Q
Reset
Clk Q
●
Teilgruppe der sequenziellen Schaltungen
●
Folgende Regeln müssen gelten:
– Alle Elemente sind entweder Register oder
kombinatorische Schaltungen
– Mindestens ein Element ist ein Register
– Alle Register nutzen den gleichen Takt
– Jeder zyklische Pfad in der Schaltung enthält mindestens
ein Register
●
Sequenzielle Schaltungen, die nicht synchron sind,
heißen asynchron
Clk Clk
CL CL
Clk
CL CL
CL CL CL
CL
CL
Latch, kein
flankengesteuertes FF Clk
Kein Register
in Rückkopplung
CL
Register verwenden
Verschiedenen Takt
●
Flankengesteuertes Flip-Flop
– Eingang wird mit steigender Flanke am Takt übernommen
– Wird auch Abtastung genannt (engl. sampling)
– Wenn D stabil ist, kein Problem
– Was, wenn D sich genau zu diesem Zeitpunkt ändert?
●
Kamera Analogie
– Fotoapparat öffnet Verschluss für kurze Zeit um Bild zu
machen
– Bewegt sich das Objekt in dieser Zeit, wird das Bild
unscharf
– Verschlusszeit ist charakteristisch für Kamera
© Christian Hochberger, TU Darmstadt Zeitverhalten sequenzieller Schaltungen 35
Zeitverhalten Sequenzieller Schatungen (2)
●
Forderungen an den Takt
– Taktperiode muss groß genug sein, so dass alle Signale
stabil sind bevor das nächste Zeitfenster beginnt
– Takt-Versatz der Flip-Flops muss klein genug sein
(engl. clock skew)
●
Signaländerungen im Zeitfenster
– Sind nicht immer vermeidbar
(z.B. bei Signalen, die außerhalb unseres Systems erzeugt
werden)
– Kann zu Metastabilität führen
●
Wert zw. 0 und 1 wird übernommen
●
Flip-Flop kippt irgendwann auf 0 oder 1 (aber wann)
→ Schaltungen zum Synchronisieren der Eingänge
© Christian Hochberger, TU Darmstadt Zeitverhalten sequenzieller Schaltungen 36
Dynamische Disziplin
Clk
Outputs
Inputs
tsetup thold
tccq
Clk
Q1
D2
Tc
© Christian Hochberger, TU Darmstadt Zeitverhalten sequenzieller Schaltungen 38
Setup-Einschränkungen
●
Berücksichtigt den langsamsten Pfad Clk Clk
Q1 D2
●
Um die Setup-Zeit des Register R2 einzuhalten C
L
• Tc ≥ tpcq + tpd + tsetup R1 R2
● Wenn Tc, tpcq und tsetup schon festgelegt sind
• tpd ≤ Tc – (tpcq +tsetup)
Tc
Clk
Q1
D2
●
Kürzester Pfad wird analysiert Clk
Q1 D2
Clk
Clk
Q1
D2
tccq tcd
thold
© Christian Hochberger, TU Darmstadt Zeitverhalten sequenzieller Schaltungen 40
Hold Einschränkungen (2)
●
Kommt in realen Schaltungen vor: Clk
Q1 D2
Clk
●
Eigenschaften der Flip-Flops ●
Zwei Fragen zu klären:
– tccq = 30ps, tpcq = 80ps – Maximale Taktfrequenz?
– tsetup = 50ps, thold = 60ps – Verletzung der Hold-
●
Eigenschaften der Gatter Bedingung?
– tcd = 25ps, tpd = 40ps
Clk Clk
A n1
&
B
X'
C ≥1 X
Y'
D ≥1 Y
© Christian Hochberger, TU Darmstadt Zeitverhalten sequenzieller Schaltungen 42
Timing Analyse:
Beispiel maximale Taktfrequenz
Clk Clk
●
Längster Pfad: A
A'
& n1
– A' → n1 → X' → Y' B
– Kommt nur zum Tragen, wenn C ≥1 X' X
B=1, C=0 und D=0 ≥1 Y'
D Y
– A' wechselt von 0 auf 1
Clk
A'
n1
X'
Y'
●
Jede Teilaufgabe wird nur einmal implementiert
●
Gesamtaufwand kleiner als bei räumlicher Parallelität
●
Teilaufgabe → Kombinatorische Logik
●
Trennung der Stufen → Register
●
Takt bewirkt Weitergabe einer Aufgabeninstanz an
die nächste Stufe
Clk Clk
tpd = 2,4ns tpd = 2ns tpd = 4ns
CL CL CL
CL
tpd = 3ns
CL CL CL
CL
tpd = 3ns
CL CL CL
CL
tpd = 3ns
●
Kombinatorische und sequenzielle Grundbausteine
– Multiplexer
– Register (Kombinationen von flankengesteuerten Flip-
Flops)
●
Arithmetische Schaltungen
– Addition (einfach oder schnell)
– Multiplikation
– (Division)
– Shifter
– ALUs
●
Speicher
© Christian Hochberger, TU Darmstadt Semesterübersicht 49
Addierer
●
Typische Vorgehensweise
– Kaskadierung von Volladdierern kleiner Bitgruppen
– Weitergabe des Übertrags an die nächste Bitgruppe
a3 b3 a2 b2 a1 b1 a0 b0
a b a b a b a b
s4 0
cout VA cin cout VA cin cout VA cin cout VA cin
s s s s
s3 s2 s1 s0
●
Problem: Sehr langsam (linear mit Anzahl der Stellen)
●
Alternative: Vorausberechnung des Übertrags
(Carry-Look-Ahaed)
© Christian Hochberger, TU Darmstadt Arithmetik: Addition 50
Carry-Look-Ahead Addierer
●
Beispiel 32Bit Addierer
– Aufteilung z.B. in 8 Gruppen zu 4 Bit
a31:28 b31:28 a27:24 b27:24 a7:4 B7:4 a3:0 b3:0
... cin
cout 4Bit CLA c27 4Bit CLA 4Bit CLA c3 4Bit CLA
●
Carry-Save Addierer
– Getaktete Schaltung
– Übertrag wird in Register gespeichert
– Berücksichtigung erst beim nächsten Takt
– Nach letzter Addition: noch n Takte erforderlich
– Sehr schnell, wenn viele Werte summiert werden müssen
●
Carry-Select Addierer
– Schneller als Ripple-Carry-Addierer
– Leichter zu konstruieren als CLA
(aber nicht ganz so schnell)
●
Beispiel 1011 * 0101 1 0 1 1
1
1 0 1 1
1 0 1 1
0 0 0 0
0
VA VA VA HA
1 0 0 0 1 1 1 0 1 1
1 0 1 1 1
VA VA VA HA
1 0 0 1 1 1 1 0 1 1 1
0 0 0 0
0
VA VA VA HA
0 0 1 1 0 1 1 1
© Christian Hochberger, TU Darmstadt Arithmetik: Multiplikation 55
Shifter – HW-Implementierung
a3 a2 a1 a0 0 s1..0 a 3 a 2 a 1 a0 0 s1..0 a3 a2 a1 a0 s1..0
00 00 00
01 01 01
y3 y3 y3
10 10 10
11 11 11
00 00 00
01 01 01
y2 y2 y2
10 10 10
11 11 11
00 00 00
01 y1 01 y1 01 y1
10 10 10
11 11 11
00 00 00
01 y0 01 y0 01 y0
10 10 10
11 11 11
●
n-Bit Shifter um beliebig viele Positionen sehr teuer
bei großem n
●
Alternative Struktur
– Barrrel-Shifter
– Kaskadierte Shifter-Stufen
– ld(n) Stufen erforderlich
– Stufe i verschiebt um 2i Positionen
– Beliebige Shifts lassen sich zusammensetzen
– Deutlicher geringerer HW-Aufwand
s0 s1 s2
a0 y0
a1
y1
a2
y2
a3
y3
a4
y4
a5
y5
a6
y6
a7
y7
●
Arithmetische und logische Funktionen häufig
gemeinsam realisiert
●
Entstehende Schaltung heißt ALU
(Arithmetic and Logic Unit)
●
Gewünschte Funktion wird durch einen n-Bit
Operations-Code gewählt
– n typisch 3-4 Bit
– Meist rein kombinatorisch
– Meist ohne komplexe Operationen (*, /)
a b ALU Operationscodes
n n 000 a AND b
001 a OR b
010 a+b
011 keine Funktion
100 a AND b
f2
101 a OR b
110 a-b
111 a<b
cout + cin ≥1 &
MSB
a b
n n n n
Erweiterung 11 10 01 00 f1..0 Status OPC
mit 0 ALU
n
●
Logisches Modell
Adressen
– Zweidimensionales Feld von Speicherzellen Speicher
n
– Zugriff zeilenweise (lesen oder schreiben)
– Auswahl einer Zeile über Adresse
m
●
Bezeichnungen
Daten
– Gelesen/geschriebener Wert → Daten
– Zeilen → Worte
●
Eigenschaften
– n Adressbits → 2n Zeilen
– m Datenbits → m Spalten
– Kapazität → 2n*m Bits
© Christian Hochberger, TU Darmstadt Speicher 61
Bit-Zellen
●
Grundelemente in Speichern Bitline
Wordline
– Zellen für je ein Bit
– Jeweils verbunden mit
●
einer Wordline
1 Bit
●
einer Bitline Speicher
●
Wordline selektiert ein Wort im Speicher
●
Bitline dient zum Lesen/Schreiben
●
Lesen:
– Bitline von außen auf Z=hochohmig gestellt
– Wordline wird aktiviert, Bit-Zelle legt Wert auf Bitline
●
Schreiben
– Bitline wird von außen auf zu schreibenden Wert gesetzt (sehr starker Treiber)
– Wordline wird ativiert, Wert auf Bitline überschreibt gespeicherten Wert
●
Gruppe aus Adress-, Daten- und Steuerleitungen
wird Port genannt
●
Jeder Speicher hat min. 1 Port
●
Speicher können mehrere Ports haben
(dann evtl. in der Funktion spezialisiert)
●
Beispiel:
n m
– 2 Lese-Ports A1 RD1
n A2 RD2
m
– 1 Schreib-Port
●
Geschrieben wird nur, wenn WE3 n A3
aktiviert ist (evtl. getaktet)
m WD3
WE3
© Christian Hochberger, TU Darmstadt Speicher 64
Speichertypen
●
Verschiedene Typen von Bit-Zellen möglich
●
Einteilung in Klassen
– Random Access Memory (RAM)
●
Flüchtig (verliert Inhalt beim Ausschalten)
●
Änderbar
– Read Only Memory (ROM)
●
Nicht-flüchtig
●
Nicht (oder bedingt) änderbar
●
Namen historisch begründet
●
Zwei wesentliche Typen von RAM-Zellen
– Statisches RAM (SRAM)
– Dynamische RAM (DRAM)
© Christian Hochberger, TU Darmstadt Speicher 65
SRAM
●
Bit wird in rückgekoppelter Inverterstruktur
gespeichert
●
Inverterstruktur hat zwei stabile Zustände
●
Bitline existiert auch in invertierter Form
●
Daten werden beliebig lang gehalten
Bitline Bitline
Wordline
●
Bit wird in einem Kondensator gespeichert
– Kondensator geladen → 1 gespeichert
– Kondensator entladen → 0 gespeichert
●
Transistor wirkt wie Schalter
– Wordline aktiviert → Kondensator mit Bitline verbunden
●
Lesen:
Bitline
– Bitline auf VDD/2 aufladen Wordline
– Wordline aktivieren
– Ladungsausgleich beobachten
(Spannung steigt oder fällt)
●
Schreiben:
– Bitline auf gewünschten Wert aufladen
– Wordline aktivieren
© Christian Hochberger, TU Darmstadt Speicher 67
Neuere DRAM-Varianten
●
SDRAM
– Synchronous DRAM
– Getaktet, interne Pipeline
– Daten werden synchron gelesen/geschrieben
– Zugriffe können sich überlappen
●
Double Data Rate DRAM (DDR)
– Daten werden auf beiden Flanken des Taktsignals
übertragen
– Taktraten:
●
DDR bis 200MHz, DDR2 bis 533, DDR3 bis 1066MHz