Sie sind auf Seite 1von 68

Vorlesung Rechnersysteme I

Kapitel 2
Vorkenntnisse

© Christian Hochberger, TU Darmstadt


Technologische Grundlagen


MOS Transistoren
– N-MOS und P-MOS

CMOS als Schaltungsprinzip
– Inverter, allgemeine Struktur

MOS-Transistoren als perfekte Schalter

Stromverbrauch in CMOS-Schaltungen

© Christian Hochberger, TU Darmstadt


MOS Transistoren


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

source gate drain source gate drain


Poly-Silizium
drain SiO2 drain

gate n n p p gate

source p-Substrat n-Substrat source

N-Kanal (nMOS) P-Kanal (pMOS)


© Christian Hochberger, TU Darmstadt Grundlagen: CMOS 3
MOS Transistor – Leitender Kanal


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

source 0V drain source VDD drain


N-Kanal

n n n n

p-Substrat p-Substrat

0V 0V

© Christian Hochberger, TU Darmstadt Grundlagen: CMOS 4


MOS Transistoren


P-Kanal Transistoren
– Substrat an VDD anschließen
– Kanal bildet sich bei 0V!

source VDD drain source 0V drain


P-Kanal

p p p p

n-Substrat n-Substrat
VDD VDD

© Christian Hochberger, TU Darmstadt Grundlagen: CMOS 5


MOS Transistoren als Schalter


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

© Christian Hochberger, TU Darmstadt Grundlagen: CMOS 6


CMOS Inverter


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

© Christian Hochberger, TU Darmstadt Grundlagen: CMOS 7


Generelle CMOS Struktur


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

© Christian Hochberger, TU Darmstadt Grundlagen: CMOS 9


Stromverbrauch


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

© Christian Hochberger, TU Darmstadt Grundlagen: CMOS 10


Tristate Treiber


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)

© Christian Hochberger, TU Darmstadt X und Z 11


Tristate Treiber (2)


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

© Christian Hochberger, TU Darmstadt X und Z 12


Einsatzgebiete für Tristate Treiber


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

© Christian Hochberger, TU Darmstadt X und Z 13


Kombinatorische vs. Sequenzielle
Schaltungen

Kombinatorisch:
– Ausgänge hängen nur vom aktuellen Wert der Eingänge ab
– Symbol:
A
CL Y
B

– Spezifikation der Funktion: Y = F(A,B) = A + B



Sequenziell:
– Ausgänge hängen von der Sequenz der Werte an den
Eingängen ab
– Schaltung hat eine Art „Gedächtnis“

© Christian Hochberger, TU Darmstadt Schaltungsarten unterscheiden 14


Regeln für kombinatorische Schaltungen


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

© Christian Hochberger, TU Darmstadt Kombinatorische Grundschaltungen 17


Mehrere Eingänge


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

© Christian Hochberger, TU Darmstadt Kombinatorische Grundschaltungen 18


Mehrere Eingänge (2)


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

– 1. Stufe mit S0 ausgewählt Y


D2 0 1
– 2. Stufe mit S1, ...
D3 1
– Nicht optimal
© Christian Hochberger, TU Darmstadt Kombinatorische Grundschaltungen 19
Mehrere Eingänge (3)


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

© Christian Hochberger, TU Darmstadt Kombinatorische Grundschaltungen 20


Mehrere Eingänge (4)

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

● Propagation Delay tpd


– maximale Zeit von einer Eingangsänderung bis zum
Erreichen des endgültigen Ausgangswertes
– Auf deutsch oft Verzögerungszeit oder Laufzeit genannt

Lässt sich in Zeitdiagrammen zeigen

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

© Christian Hochberger, TU Darmstadt Zeitverhalten 24


Kritischer Pfad


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

© Christian Hochberger, TU Darmstadt Zeitverhalten 25


Kürzester Pfad


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

© Christian Hochberger, TU Darmstadt Zeitverhalten 26


RS-Latch - Darstellung


Untypische Darstellung:
R Q
≥1

Q
≥1 S


Übliche Darstellung
– Eingänge links, Ausgänge rechts
R
≥1 Q

Q
S ≥1

© Christian Hochberger, TU Darmstadt RS-Latch und Flip-Flops 27


D-Latch


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

© Christian Hochberger, TU Darmstadt RS-Latch und Flip-Flops 28


Flankensteuerung von Flip-Flops


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

© Christian Hochberger, TU Darmstadt RS-Latch und Flip-Flops 30


Flip-Flops mit Reset


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

© Christian Hochberger, TU Darmstadt RS-Latch und Flip-Flops 31


Synchrone Schaltungen


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

© Christian Hochberger, TU Darmstadt Synchrone Schaltungen 32


Beispiele für synchrone Schaltungen

Clk Clk

CL CL

Clk

CL CL

Clk Clk Clk

CL CL CL

© Christian Hochberger, TU Darmstadt Synchrone Schaltungen 33


Beispiele für nicht-synchrone Schaltungen

CL
CL

Latch, kein
flankengesteuertes FF Clk
Kein Register
in Rückkopplung

CL

Register verwenden
Verschiedenen Takt

© Christian Hochberger, TU Darmstadt Synchrone Schaltungen 34


Zeitverhalten Sequenzieller Schatungen


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

● tccq →Clk to Q contamination delay


– Frühestmöglicher Zeitpunkt, zu dem sich Q nach Clk ändert
● tpcq →Clk to Q propagation delay
– Spätestmöglicher Zeitpunkt, zu dem die Ausgänge stabil sind

Clk

Outputs

Inputs

tsetup thold

tccq

© Christian Hochberger, TU Darmstadt Zeitverhalten sequenzieller Schaltungen


tpcq 37
Systemweiter Takt

● Taktperiode Tc → zwischen zwei steigenden Flanken Clk Clk


Q1 D2
● Fc = 1/Tc → Taktfrequenz C
L

Typische Situation R1 R2
– Nach steigender Flanke an R1 ändert sich Q1
– Dann durchläuft das Signal eine kombinatorische Schaltung
– Und kommt etwas später am Eingang des Registers R2 an

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

tpcq tpd tsetup


© Christian Hochberger, TU Darmstadt Zeitverhalten sequenzieller Schaltungen 39
Hold Einschränkungen


Kürzester Pfad wird analysiert Clk
Q1 D2
Clk

● D2 darf sich nicht ändern, bevor thold vorbei ist C


L
R1 R2
• tccq + tcd ≥ thold
● Wenn tccq und thold nicht beeinflussbar sind: tcd ≥ thold -tccq
Tc

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

– Flip-Flop Ausgang unmittelbar an


Flip-Flop Eingang angeschlossen R1 R2

Dadurch ändert sich die Gleichung:
– tcd wird 0 (da keine Logik vorhanden ist)
– tccq ≥ thold

In realen Fällen
– thold oft 0
– thold kann sogar negativ sein!

© Christian Hochberger, TU Darmstadt Zeitverhalten sequenzieller Schaltungen 41


Timing Analyse: Beispiel


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'

tpcq tpd tpd tpd tsetup


© Christian Hochberger, TU Darmstadt Zeitverhalten sequenzieller Schaltungen 43
Timing Analyse:
Beispiel maximale Taktfrequenz (2)

Längster Pfad =
– tpcq + tpd + tpd + tpd + tsetup = 80 + 3 * 40 + 50 = 250ps
– Tc muss ≥ 250ps sein

Maximale Taktfrequenz
– fmax = 1 / Tc = 4 GHz

© Christian Hochberger, TU Darmstadt Zeitverhalten sequenzieller Schaltungen 44


Pipelining in digitalen Schaltungen


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

© Christian Hochberger, TU Darmstadt Parallelität 45


Pipelining – Beispiel

Clk Clk
tpd = 2,4ns tpd = 2ns tpd = 4ns

CL CL CL

CL

tpd = 3ns

● tpcq = 0,3ns, tsetup = 0,2ns



Taktperiode:
– 0,3 + 3 + 2 + 4 + 0,2 = 9,5ns

Taktfrequenz: 105 MHz
© Christian Hochberger, TU Darmstadt Parallelität 46
Pipelining – Beispiel (2)

Clk Clk Clk


tpd = 2,4ns tpd = 2ns tpd = 4ns

CL CL CL

CL

tpd = 3ns

Stufe 1: 5,5ns Stufe 2: 4,5ns



Durch Hinzufügen einer weiteren Stufe
– Stufe 1: 0,3 + 3 + 2 + 0,2 = 5,5ns
– Stufe 2: 0,3 + 4 + 0,2 = 4,5ns
– Taktperiode: 5,5ns Taktfrequenz: 182MHz
– Latenz: 2Tc = 11ns
© Christian Hochberger, TU Darmstadt Parallelität 47
Pipelining – Beispiel (3)

Clk Clk Clk


tpd = 2,4ns tpd = 2ns tpd = 4ns

CL CL CL

CL

tpd = 3ns

Stufe 1: 3,5ns Stufe 2: 2,5ns Stufe 3: 4,5ns



Durch Hinzufügen von zwei Stufen
– Taktperiode durch dritte Stufe bestimmt: 4,5ns
– Taktfrequenz: 222MHz
– Latenz: 3Tc = 13,5ns
© Christian Hochberger, TU Darmstadt Parallelität 48
Grundbausteine Digitaler Systeme


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

s31:28 s27:24 s7:4 S3:0



Laufzeit
– Jede Gruppe: 8 Gatter-Laufzeiten (4 * 2 Gater/VA)
– CLA von cout: 2 Gatter-Laufzeiten (theoretisch)
– Gesamtaddierer 7*2+8=22 Gatter-Laufzeiten
© Christian Hochberger, TU Darmstadt Arithmetik: Addition 51
Prefix-Addierer

© Christian Hochberger, TU Darmstadt Arithmetik: Addition 52


Prefix-Addierer (2)

© Christian Hochberger, TU Darmstadt Arithmetik: Addition 53


Weitere Spezialaddierer


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)

© Christian Hochberger, TU Darmstadt Arithmetik: Addition 54


Parallel Multiplizierer


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

Links-Schieben Logisches Arithmetisches


Rechts-Schieben Rechts-Schieben

© Christian Hochberger, TU Darmstadt Arithmetik: Schieben 56


Barrel-Shifter


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

© Christian Hochberger, TU Darmstadt Arithmetik: Schieben 57


Barrel-Shifter (2)

s0 s1 s2

a0 y0

a1
y1

a2
y2

a3
y3

a4
y4

a5
y5

a6
y6

a7
y7

Beispiel1: a0, s2..0=5 Beispiel2: a5, s2..0=6


© Christian Hochberger, TU Darmstadt Arithmetik: Schieben 58
Arithmetik und Logik Einheiten


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 (*, /)

© Christian Hochberger, TU Darmstadt Arithmetik: ALU 59


Arithmetik und Logik Einheiten (2)

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

© Christian Hochberger, TU Darmstadt Arithmetik: ALU y 60


Speicherorganisation


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

© Christian Hochberger, TU Darmstadt Speicher 62


Speicheraufbau
Bitline 2 Bitline 1 Bitline 0
2:4 Wordline 0
Dekoder 00
Adresse 2
10 gesp. gesp. gesp.
Bit=0 Bit=1 Bit=0
Wordline 1
01

gesp. gesp. gesp.


Bit=1 Bit=0 Bit=0
Wordline 2
10

gesp. gesp. gesp.


Bit=1 Bit=1 Bit=0
Wordline 3
11

gesp. gesp. gesp.


Bit=0 Bit=1 Bit=1

Data 2 Data 1 Data 0


1 1 0

© Christian Hochberger, TU Darmstadt Speicher 63


Speicher-Ports


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

© Christian Hochberger, TU Darmstadt Speicher 66


DRAM


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

© Christian Hochberger, TU Darmstadt Speicher 68