1 teil ii 2.2 standard-schaltnetze als grundlage für rechner addier- und multiplizierwerke –...

47
1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke Halb-Addierer, Voll-Addierer Multiplizierer Schaltnetze zur Auswahl von Adress- und Datenleitungen Multiplexer Demultiplexer Schaltnetze zum Vergleich von Datenwörtern Komparator Codierer und Decodierer Programmierbare Schaltnetze (PLA) arithmetisch-logische Einheit (ALU) parametrisierbare Schaltnetze arithmetische Einheiten und ALUs

Upload: edmund-mann

Post on 06-Apr-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

1

Teil II2.2 Standard-Schaltnetze als Grundlage für Rechner

Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer – Multiplizierer

Schaltnetze zur Auswahl von Adress- und Datenleitungen – Multiplexer – Demultiplexer

Schaltnetze zum Vergleich von Datenwörtern – Komparator

Codierer und Decodierer

Programmierbare Schaltnetze (PLA)

arithmetisch-logische Einheit (ALU) – parametrisierbare Schaltnetze – arithmetische Einheiten und ALUs

Page 2: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

2

SchaltnetzeDefinition: Schaltnetze

Ein Schaltnetz F ist die technische Realisierung einer n-stelligen m-wertigen booleschen Funktion f: {0, 1}n → {0, 1}m

wobei f aus m 1-wertigen booleschen Schaltfunktionen fi : {0, 1}n → {0, 1} aufgebaut ist.

Ein Schaltnetz bildet somit ein n-Tupel von Eingabevariablen e = (e1 .... en ) ab auf ein m-Tupel (a1 .... am ) von Ausgabevariablen.

Schreibweise:

f(e) = f(e1 .... en ) → (f1(e), f2(e), ... , fm(e)) = (a1 .... am ) = f(e)

Schaubild:

Anmerkung: Schaltnetze haben „kombinatorisches“ Schaltverhalten. Das heißt,

die Ausgabewerte hängen nur von den Werten der Eingänge ab.

e1

e2

. . .en

f1(e1 ... en)f2(e1 ... en) fm(e1 ... en)

f(e)e . . .Schaltnetz

F(charkteristische DMFF )

Page 3: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

3

Entwurf vs. Analyse von Schaltnetzen

Entwurf

Beschreibung des Anendungsproblems

Für F Funktionsgleichung oder Wertetabelle aufstellen

Minterme und DNF fi aufstellen

DMFF = DMFf1 ... DMFfm bestimmen

2-stufiges Schaltnetz ableiten und zeichnen (evtl. Gatter gemeinsam nutzen)

Wertetabelle für F

Blockschaltbilder durch Detailaufbau ersetzen

In der „Gatter-Ansicht“ von den Ausgängen her beschreibenden

Term für die Schaltfunktion rekonstruieren.

DMFF bestimmen

Analyse

charakteristischeDMFF

Falls F m-wertig, F aufteilen in f1, .., fm

Page 4: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

4

Halb-AddiererDefinition:

Ein Halb-Addierer ist ein Schaltnetz, das als Eingabe zwei binäre Ziffern e1 und e2 erhält, diese addiert und das Ergebnis mit zwei Ausgängen darstellt:

s (arithmetische Summe)c (Carry, Übertrag)

Charakteristische DMFHA : s = e1e'2 + e'1e2 = e1 e2 = DMFS

c = e1e2 = DMFC

Realisierung mit: UND-Gatter plusXOR-Gatter

e1 e2 cs

0 0 00

0 1 01

1 0 01

1 1 10

Werte-Tabelle

=1

& c

s

e1 e2

Blockschaltbild:

HAc

s

e1 e2

Page 5: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

5

Voll-AddiererAufgabe:

Gegeben: zwei n-stellige Binärzahlen: x=(xn-1 .... x0) und y=(yn-1 .... y0)

Gesucht: Schaltnetz zur Berechnung der Summe: x + y (Beachte: das Zeichen „+“ steht hier für die Addition!)

Ansatz: modularer Aufbau aus Addierern für die einzelnen Ziffern xi und yi Problem: an den Stellen i > 0 muss eventuell ein Übertrag aus der

Addition der vorangegangenen Stelle (i-1) berücksichtigt werden.x + y

= (ex,n1 . . . ex,1ex,0) + (ey,n1 . . . ey,1ey,0)

= (sn sn1 . . . s1 s0) evtl. Gesamt-Übertrag

. . . u.U. Übertrag pro Ziffer

=> Halb-Addierer können nicht verwendet werden, da sie nur 2 Eingänge haben. Wegen evtl. Übertrag braucht man einen weiteren Eingang!

Page 6: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

6

Aufstellung einer Wertetabelle für Addierer an Stelle ix + y = (ex,n1 . . . ex,1ex,0)

+ (ey,n1 . . . ey,1ey,0)

= (sn sn1 . . . s1 s0) evtl. Gesamt-Übertrag

. . . u.U. Übertrag pro Ziffer

ex,i ey,i ci-1 ci si

0 0 0 00

0 0 1 01

0 1 0 01

0 1 1 10

1 0 0 01

1 0 1 10

1 1 0 10

1 1 1 11

Werte-Tabelle für FVA Funktionsgleichungen für si und ci

si = (ex,i ey,i ) ci-1 (ungerade Eingänge)

ci = e'x,i ey,ici-1+ex,i e'y,ici-1+

ex,i ey,ic'i-1 + ex,iey,ici-1

= (ex,i ey,i ) ci-1 + ex,i ey,i

Page 7: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

7

Abbilden der Addier-Funktion auf ein Schaltnetz

Realisierung von FVA

Funktionsgleichungen für si und ci

si = (ex,i ey,i ) ci-1 Idee: Ein XOR-Gatter lässt

sich

ci = (ex,i ey,i ) ci-1 + ex,i ey,i gemeinsam nutzen.

&1

=1=1

&ci

si

ex,i ey,i ci1

FAci ci1

si

ex,i ey,i

Blockschaltbild:Voll-Addierer(FA = Full Adder)

Page 8: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

8

Alternative: Aufbau des Voll-Addierers aus zwei Halb-Addierern

Realisierung von FVA durch Kopplung zweier Halb-Addierer

Ansatz: Komposition der Funktion der FVA aus der Funktion FHA

ex,i

ey,i

ci1

si

ci

1. Halb-Addierer 2. Halb-Addierer

Page 9: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

9

Parallel-Addierer (für n-stellige Binärzahlen)

Ausgangssituation:

Ansatz: Ein Addierer für zwei n-stellige Binärzahlen lässt sich realisieren,

indem man n Voll-Addierer parallel anordnet zu einem Addierer, bei dem der Übertrag von rechts nach links durchläuft.

Verdrahtung gemäß folgendem Schema:

x + y = (ex,n1 . . . ex,1ex,0) + (ey,n1 . . . ey,1ey,0)

= (sn sn1 . . . s1 s0) evtl. Gesamt-Übertrag

. . .

FA FA FAFAcn

c1c2c3cn1

ex,1 ey,1ex,3 ey,3 ex,2 ey,2ex,n ey,n

sn s1s2s3

. . .

c0 = 0

Page 10: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

10

n-Bit Parallel-AddiererBlockschaltbild (n=4) a + b = (ea,3ea,2 ea,1ea,0) + (eb,3eb,2 eb,1eb,0) = s

3 2 1 0

4-Bit-PA

0123

c

3 2 1 0

a b

s Addierer mit durchlaufendem Übertrag werden auch als Ripple-Carry

Addierer bezeichnet (Ripple = „Durchplätschern“). Weil der Übertrag durch alle Glieder durchgereicht wird, ergeben

sich lange Schaltzeiten (proportional zur Stelligkeit n).=> Nur der Aufbau ist parallel, nicht die Arbeitsweise!

Frage: Kann man auch echt parallel addieren? Antwort: Ja, siehe Vertiefungsfoliensatz

Page 11: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

11

Modularer Aufbau komplexer SchaltungenKomplexe Schaltungen werden aus Moduln aufgebaut. Auf höheren Ebenen abstrahiert man vom Aufbau elementarer Module. Details werden in einer "Black-Box" versteckt.

a =1-Bit-Komp <b >a =1-Bit-Komp <b >a =1-Bit-Komp <b >a =1-Bit-Komp <b >

a3 a2 a1 a0 b3 b2 b1 b0

&

1

&

&

&&

&

&

ai = bi

y1

y2

y3

1

a b

D-FF 2D-

FF 1D-

FF 0

1

1

1

&&&&&

&&

D2

D1

D0

e

a1

...a4

b1

...b4

y1 y2 y3

SchaltnetzF

D-FF 2D-

FF 1D-

FF 0

1

1

1

&&&&&

&&

D2

D1

D0

eD-FF 2D-

FF 1D-

FF 0

1

1

1

&&&&&

&&

D2

D1

D0

e

Ebene 3 (als Black-Box)

Schritt 2(gemischt)

Ebene 1(alle Details)

Page 12: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

12

Paralleler (4-Bit) Mulitplizierer

Multiplikation: B3B2B1B0 A3A2A1A0 = P7P6P5P4P3P2P1P0

4-Bit Multiplizierer

&&&&

&=

Page 13: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

13

Paralleler (4-Bit) Mulitplizierer

B3 B2 B1 B0

A0

A1

A2

A3

P7 P6 P5 P4 P3 P2 P1 P0

Beispiel: B3B2B1B0 A3A2A1A0 = P7P6 ... P1P0

1 0 1 1 0 1 0 1 = 0 0 1101 1 1&&&&

= 1 0 1 1 1 + 1 0 1 1 0 + 1 0 1 1 1 + 1 0 1 1 0

Page 14: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

14

Auswahl-Schaltnetze

1:4-Demultiplexer

Anmerkungen: Der am Eingang anliegende Wert X wird unverändert durchgeschaltet.

a0

a1

a3

e

s1 s0

a2

0

0

0

XX

1 1 = a3

e0

e1

e3

a

s1 s0

e2

0

0

X0 X

1 0 = e2

4:1-Multiplexer

Page 15: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

15

MultiplexerMotivation: Für Steuerungsaufgaben benötigt man Schaltnetze, mit denen man

aus einem Leitungsbündel (aus n Leitungen) gezielt eine auswählen kann. Die Auswahl einer bestimmten Leitung soll dabei über Eingabe ihrer binär codierten Nummer erfolgen.

Definition: Ein m:1-Multiplexer ist ein Schaltnetz, das aus m = 2n Eingängen e0 ...em-1 den Eingang ei auswählt und unverändert zum Ausgang a durchreicht, dessen Index i mit der Binärzahl übereinstimmt, die an den Steuereingängen s0 ...sn-1 anliegt.

4:1-Mux

e0

e1

e2

e3

a

s1 s0

Blockschaltbild: 4:1- Multiplexer

Page 16: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

16

Schaltnetz für 4:1-MultiplexerWerte-Tabelle: Die Belegung der Eingabeleitungen e0e1e2e3 ist

für die Logik des Schaltnetzes ohne Bedeutung. Es genügt die (weit weniger aufwendige) Modellierung der Funktion f(s0, s1) = a gemäß:

&

1&

&

&

1

e0

e3

e2

e1

s1 s0

a

1

s1 s0 a

0 0 e0

0 1 e1 1 0 e2 1 1 e3

Page 17: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

17

Demultiplexer

Blockschaltbild: 1:4-

Definition: Ein 1:m-Demultiplexer ist ein Schaltnetz, das ein am Eingang e anliegendes Signal unverändert zu dem Ausgang i durchleitet, dessen Index i mit der Binärzahl übereinstimmt, die an den Steuereingängen s0 ...sn-1 anliegt.

a0

a1

a2

a3

e 1:4-Demux

s1 s0Anmerkungen: Demultiplexer ist Gegenstück zum Multiplexer. Mit n Steuerleitungen kann man 2n Datenleitungen steuern

=> Für m Datenleitungen benötigt man log2(m) Steuerleitungen.

Page 18: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

18

Vergleich von Binärwörtern: Komparator

Motivation: Eine weitere grundlegende Schaltung wird zum Vergleich von

n-stelligen Binärwörtern a, b {0, 1}n benötigt.

Je nach Bedarf entwirft man Schaltnetze für den Test auf: a = b, a < b, a > b bzw. Kombinationen davon.

Definition: Ein n-Bit-Komparator vergleicht zwei binärcodierte Zahlen a und b und stellt das Ergebnis an seinen Ausgängen bereit.

Werte-Tabelle:Beispiel: 1-Bit-Komparator (a, b {0, 1}1 Test auf =, < und >)

b a y1 y2 y3

a=b a < b a > b 0 0 1 0 00 1 0 0 11 0 0 1 01 1 1 0 0

Page 19: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

19

Schaltnetz für 1-Bit-Komparator

Schaltnetz:

&

1&

&

&

y3

y2

y1

a b

y1ay2

y3

b=

1-Bit-Komp <>

Blockschaltbild:

DMF: Als Übungsaufgabe!

Page 20: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

20

Schaltnetz für 4-Bit-Komparator

Schaltnetz:

a =1-Bit-Komp <b >

a =1-Bit-Komp <b >

a =1-Bit-Komp <b >

a =1-Bit-Komp <b >

a3 a2 a1 a0 b3 b2 b1 b0

a3 ? b3

a2 ? b2

a1 ? b1

a0 ? b0

&

1

&

&

&

&

&

&

ai = bi

y1

y2

y3

1

a b

Page 21: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

21

CodiererMotivation: Man kann n-stellige Binärwörter von einem Schaltnetz zu einem

anderen mit n parallelen Leitungen übertragen. Bei langen Binärwörtern ist dies jedoch unpraktisch, da man zu dicke Kable brauchen würde.

Beispiel: Fernsteuerung (über Kabel) von n Lampen.

A

Wie kann man Leitungen einsparen?

Frage: Welche Schaltfunktionen müssen die Bauteile A und B erfüllen, um

zur Übertragung mit weniger als n Leitungen auszukommen?

B

Schalter für Auswahl 1:n n Lampen

....

....

Page 22: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

22

CodiererLösungsansatz: Man codiert das zu übertragende n-stellige Binärwort a als m-stelliges

Binärwort b wobei m < n ist.

Voraussetzung ist dabei, dass sich das Eingabewort e als m-stelliges Binärwort darstellen lässt und dass, jeweils immer nur einer der Eingänge den Wert 1 hat. Dies ist der Fall, wenn man n = 2m Eingänge und m Ausgänge hat und weiß, dass jeweils immer nur einer der Eingänge den Wert 1 hat.

CodiererEingangs-Variable e=(e1 .... en)

Ausgangs-Variablea=(a1 .... am)

Code c : E -> ADas heißt, Zeichen des Codes E {0, 1}n werden abgebildet auf Wörter aus A = {0, 1}m.

.... ....

Page 23: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

23

Codierer Definition:

Ein Codierer ist ein Schaltnetz, das ein n-stelliges binäres Eingabezeichen auf ein m-stelliges binäres Codewort abbildet.

Werte-Tabelle für 8:3-Codierer:

Beispiel: 8:3-Codierer (8 Eingänge, 3 Ausgänge)Anwendung: Gegeben sind 8 Eingansleitungen, von denen jeweils nur

eine aktiv (=1) ist. Codierer soll als 3-stellige Binärzahl angeben, welcher Eingang aktiv ist.

e7 e6 e5 e4 e3 e2 e1 e0 a2 a1 a0 dezimal

0 0 0 0 0 0 0 1 0 0 00

0 0 0 0 0 0 1 0 0 0 11

0 0 0 0 0 1 0 0 0 1 02

0 0 0 0 1 0 0 0 0 1 13

0 0 0 1 0 0 0 0 1 0 04

0 0 1 0 0 0 0 0 1 0 15

0 1 0 0 0 0 0 0 1 1 06

1 0 0 0 0 0 0 0 1 1 17

Page 24: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

24

Codierer

Werte-Tabelle für 8:3-Codierer

Unterhalb der Diagonalen stehen nur x-Einträge(für „don't care“ ). Man kann x nach freier Wahl mit 0 oder 1 belegen, da diese Stelle nichts an der Abbildung ändert.

Problem: Für die 8 Eingänge gibt es insgesamt 28 verschiedene Belegungen.

In der Werte-Tabelle werden aber nur 8 berücksichtigt. Was ist, wenn ein anderer Eingabewert anliegt ?

Ausweg: Führe Prioritisierung ein, d.h. berücksichtige nur das höchste

gesetzte BIT (MSB-Priorität, Most Significant BIT)

e7 e6 e5 e4 e3 e2 e1 e0 a2 a1 a0

0 0 0 0 0 0 0 1 0 0 00 0 0 0 0 0 1 x 0 0 10 0 0 0 0 1 x x 0 1 00 0 0 0 1 x x x 0 1 10 0 0 1 x x x x 1 0 00 0 1 x x x x x 1 0 10 1 x x x x x x 1 1 01 x x x x x x x 1 1 1

Page 25: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

25

Schaltnetz-Entwurf für 8:3-Codierer Ansatz: Die Erstellung der DNF's wird für a2 a1 und a0 sehr umfangreich. Da MSB-Priorität eingeführt wurde, ergibt sich eine wesentliche

Vereinfachung => DMF durch Termumformung bestimmen.

e7 e6 e5 e4 e3 e2 e1 e0 a2 a1 a0 für a2 für a1 für a0

0 0 0 0 0 0 0 1 0 0 00 0 0 0 0 0 1 x 0 0 1 e'7 ...e'2

e1

0 0 0 0 0 1 x x 0 1 0 e'7 ...e'3 e2

0 0 0 0 1 x x x 0 1 1 e'7 ...e'4 e3

e'7 ...e'4 e3

0 0 0 1 x x x x 1 0 0 e'7 e'6 e'5 e4

0 0 1 x x x x x 1 0 1 e'7 e'6 e5 e'7 e'6 e5

0 1 x x x x x x 1 1 0 e'7 e6 e'7 e6

1 x x x x x x x 1 1 1 e7 e7 e7

a2 = e7 + e'7 e6 + e'7 e'6 e5 + e'7 e'6 e'5 e4

a1 = e7 + e'7 e6 + e'7 ...e'4 e3 + e'7 ...e'3 e2

a0 = e7 + e'7 e'6 e5 + e'7 ...e'4 e3 + e'7 ...e'2 e1

Page 26: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

26

Schaltnetz-Entwurf für 8-3-Codierer

Nach Vereinfachung:a2 = e7 + e'7 e6 + e'7 e'6 e5 + e'7 e'6 e'5 e4

=> e7 + e6 + e5 + e4 (wegen Abarbeitung von links nach rechts)

a1 = e7 + e'7 e6 + e'7 ...e'4 e3 + e'7 ...e'3 e2

=> e7 + e6 + e3 + e2 (wegen Abarbeitung von links nach rechts)

a0 = e7 + e'7 e'6 e5 + e'7 ...e'4 e3 + e'7 ...e'2 e1

=> e7 + e5 + e3 + e1 (wegen Abarbeitung von links nach rechts)

0 21 12 0

7

8 : 3 coder .

. e

a

V

Blockschaltbild:

8:3-Codierer

Ausgang V zeigt an, ob eine gültige Eingangskombination anlag

Page 27: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

27

Decodierer Definition:

Ein Decodierer (für Zählcodierung) bildet eine m-stellige Binärzahl e so auf 2m Ausgänge ab, dass genau der Ausgang 1 wird, dessen

Index durch die Binärzahl e gegeben ist.

Ein m:n-Decodierer ist somit das Gegenstück zum n:m-Codierer.

Werte-Tabelle für 3:8-Decodierer:

Beispiel: 3:8-Deodierer (3Eingänge, 23 = 8 Ausgänge)

Index e2 e1 e0 a7 a6 a5 a4 a3 a2 a1 a0

0 0 0 0 0 0 0 0 0 0 0 11 0 0 1 0 0 0 0 0 0 1 0 2 0 1 0 0 0 0 0 0 1 0 03 0 1 1 0 0 0 0 1 0 0 0 4 1 0 0 0 0 0 1 0 0 0 05 1 0 1 0 0 1 0 0 0 0 06 1 1 0 0 1 0 0 0 0 0 07 1 1 1 1 0 0 0 0 0 0 0

Page 28: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

28

Schaltnetz-Entwurf für 8-3-Codierer

8 : 3 coder . . . e

V

Blockschaltbild:

3:8-Decodierer

Kontrolleingang E steuert, zu welchem Zeitpunkt die Decodierung erfolgen soll.

ea

E

. .

3 : 8 decoder

3 : 8 decoder

a

E

Kopplung von Codierer und Decodierer zur Informationsübertragung

. . .

Page 29: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

29

Programmierbare Schaltnetze Motivation: Der physische Aufbau eines Schaltnetzes aus Elementargattern und

Moduln ist aufwändig. Abhilfe bieten sog. PLA-Bausteine (Programmable Logic Array).

Prinzip: Liegt eine n-stellige m-wertige boolesche Funktion in einer disjunktiven

Form (z.B. in DNF oder DMF) vor, so lässt diese sich stets mit einem 2-stufigen Schaltnetzwerk realisieren, wobei: – die erste Stufe aus UND-Gattern besteht und – die zweite Stufe aus ODER-Gattern

Man wählt eine matrix-artige Anordnung (Logikfeld), das in einen UND-Bereich sowie in einen ODER-Bereich unterteilt wird.– Im UND-Bereich stehen alle Eingänge unverändert sowie negiert zur Verfügung.– Aus dem ODER-Bereich werden die Ausgänge herausgeführt.

Page 30: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

30

PLA-Schema zur Realisierung eines Schaltnetzes

&

&

&

1111 1 1

e1 e2 . . . en

n Eingängea1 a2 . . . am

m AusgängeAnmerkung: Auch eine nur durchzuführende Eingangsvariable ei wird über die Gatter geleitet.

. . .. . .

UND-Bereich ODER-Bereich

M1

M2

Minterme der DMF

. . .

. . .

. . .

. . . . . .

Page 31: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

31

PLA-Schema zur Realisierung eines Schaltnetzes

UND-Matrix ODER-Matrix

Eingänge Ausgänge

a b c z1 z2

ab'+a'c a + b

Beispiel: Gegeben: 2-wertige Funktion f(a, b, c) = (z1, z2) mit:

z1 = ab' + a'c +a'bc = ab' + a'c + a'cb = ab' +a'c

z2 = a(b +c') + b(a' + c) +ab' = a + b (nachrechnen!)

Page 32: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

32

Lernprogramm für den Schaltnetz-Entwurf

Quelle: Lern-CD zum Buch: Rechnergrundlagen. Von der Binärlogik zum Schaltwerk von Rainer Kelch.

Page 33: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

33

Varianten programmierbarer Schaltnetze PLA (Programmable Logic Array) UND- und ODER-Feld programmierbar

PAL (Programmable Array Logic) UND-Feld fest, ODER-Feld programmierbar PROM (Programmable Read Only Memory)

EPROM (Erasable Programmable Read-Only-Memory), EEPROM (Electrically EPROM)

FPGA (Field Programmable Gate Array) (wie PLA jedoch mit nachgeschaltetem Speicherelement)

UND-Feld ODER-Feld

PLA programmierbar programmierbar

PAL festverdrahtet programmierbar

PROM festverdrahtet programmierbar

FPGA programmierbar programmierbar

Lösch-fenster

Code zum Booten eines PCs steckt in einem PROM

Page 34: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

34

Parametrisierbare Schaltnetze Motivation: Hält man in einer mehr-stelligen boolesche Funktion f: {0, 1}n → {0, 1} mit f(e) =

f(e1 .... en ) → a die Eingabewerte 2 bis n konstant, so erhält man eine 1-stellige

Funktion fe2e3...en(e1) → a

In diesem Fall betrachtet man die Eingabewerte e2 .... en als Parameter und nur

e1 als Funktionsvariable, die auf einen Ausgabewert abgebildet werden soll.

Über die Parameter hat man dann eine Möglichkeit geschaffen, das Verhalten der einstelligen Funktion fe2e3...en(e1) → a zu steuern.

Diese Technik bildet die Grundlage der Realisierung von Befehlen einer programmierbaren Steuereinheit.

Definition: Ein parametrisierbares Schaltnetz ermöglicht es über Steuerleitungen dieselbe Schaltung für unterschiedliche Schaltfunktionen zu nutzen.

Page 35: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

35

Aufbau einer Arithmetischen Einheit

Vorteil: Im Gegensatz zu einer programmierbaren Baugruppe (vgl. PLA), könnte man die Schaltfunktion ändern, ohne dabei den Schaltungsaufbau (d.h., die interne Verdrahtung) zu ändern

Idee zur Realisierung: Realisierung durch eine parametrisierte Schaltung. Dazu unterteilt man die Eingabewerte einer mehrstelligen boolesche

Funktion f: {0, 1}n → {0, 1}m mit f(e) = f(e1 .... en ) → (a1 .... am ) = a in

s Steuereingaben F0 ... Fs und d Dateneingaben D0 ... Dd mit s+d = n.

Man erhält so die d-stellige parametrisierte Funktion: f(F0 , ..., Fs, D0 , ..., Dd) → a oder alternativ: fF0...Fs(D0 .... Dd) → a

s Steuerleitungen

d Eingabeleitungen für Daten

m Ausgabeleitungen für Daten

Ziel: Ein Bauteil, das über Steuereingänge verfügt, über die man flexibel einstellen kann, welche Schaltfunktion f das Bauteil auf Eingabedaten anwenden soll.

f

Page 36: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

36

Parametrisierbare Schaltnetze

Schaltnetz zur Realisierung von fF0,F1(x) = y

Beispiel: fF0,F1(x) = y F0 F1 fF0,F1(x) Interpretation von fF0,F1 0 0 0 Nullfunktion0 1 x' Negation1 0 x Identität1 1 1 Einsfunktion

1

&&

F0 F1

fF0,F1(x) = y = F0x + F1 x'

Verwendung als Steuerleitungen

Eingabeleitung x

Ausgabeleitung y

Page 37: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

37

Kernzelle einer Arithmetischen Einheit (AU)

Ansatz: Kombination einer parametrisierten Schaltung mit einem Voll-Addierer,

wobei die parametrisierte Schaltung einem Eingang des Voll-Addierers vorgeschaltet wird.

Ausgabe fF0,F1(xi , yi) hängt ab von:

den Eingabevariablen xi und yi, den beiden Steuerparametern F0

und F1 mit denen eine Funktion fF0,F1 ausgewählt wird,

dem Parameter ci (Carry) signalisiert, ob bei der Addition ein Übertrag zu berücksichtigen ist,

dem zusätzlichem Ausgabewert ci+1 der angibt, ob bei einer durchgeführten Addition ein Übertrag aufgetreten ist.

F0 F1

fF0,F1(xi , yi)

1

&&

FA

xi yi

ci+1ci

pi

AU

Page 38: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

38

Kernzelle einer Arithmetischen Einheit (AU)

die von einer AU erzeugten Funktionen

F0 F1 ci pF0,F1(yi) Interpretation von fF0,F1,ci(xi, yi)

0 0 0 0 xi

0 0 1 0 xi + 1 (Inkrement)

0 1 0 ¬ yi xi – yi im 1er-Komplement

0 1 1 ¬ yi xi – yi im 2er-Komplement: xi+(2n - yi +1)

1 0 0 yi xi + yi

1 0 1 yi xi + yi + 1

1 1 0 1 xi + 1

1 1 1 1 xi (= xi + 2n)

Blockschaltbild der AU

F0 F1

AU

xi yi

ci+1 ci

fi

00 (0)

11 (-1)

10 (-2)

01 (1)

2er-Komplement (vgl. Kapitel 1.2)

Page 39: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

39

Aufbau einer n-stelligen Arithmetischen Einheit (AU) aus n einstelligen AUs

F0 F1

&

1

xn-1

FA

11

& &&&&

FA FA

x0xiyn-1 yi y0

cn c1ci+1c0

cn-1 ci

f0fifn-1

Kernzelle einer n-stelligen AU an der Stelle i, mit 0 i n-1

pn-1 p0pi

... ...

......

Page 40: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

40

n-Bit AUs n-stellige AU mit Blockschaltbildern

Blockschaltbilder der n-stelligen AU

F0 F1

AU

xi yi

ci+1 ci

fi

AU

xn-1 yn-1

cn cn-1

fn-1

AU

x0 y0

c1 c0

f0

. . . . . .

n-AUcn

f = (f0, ... fi, ... fn-1 )

F0 F1

. . . . . .

. . .

x = (x0, ... xi, ... xn-1) y = (y0, ... yi, ... yn-1)

n-AU cn

Erg = fF0,F1(x,y)

F0

F1

x yn

n

n

Page 41: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

41

ALU

Blockschaltbild: ALU

Definition: Eine arithmetisch-logische Einheit (ALU) ist eine parametrisierte Schaltung, die einen Minimalsatz von sowohl logischen als auch arithmetischen Funktionen realisiert.

– „Minimalsatz an logischen Funktionen“ bedeutet, dass ein vollständiges Operatorsystem realisiert ist. – Für die Arithmetik muss mindestens die Addition realisiert sein.

Anmerkungen: Eine ALU kann zwei Operanden wahlweise eine logische oder eine

arithmetische Verknüpfung zuweisen und diese ausführen.

ALUN (Vorzeichenbit)Z (Flag für Wert 0)

1616

16

Steuereingänge

Dateneingänge

Datenausgang

Page 42: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

42

Erweiterung zur ALU (Arithmetische-Logische Einheit)Ziel: erweitere die AU um logische Grundfunktionen, die dann ebenfalls über

die Steuereingänge ausgewählt werden können.

Ansatz: ergänze weitere Steuerleitung F2 ergänze „Vorschalt-Logik“ des Voll-Addierers

fi

1 1

& & &&

FA

xi yi

ci+1

ci

qi pi

&

F2 F0 F1

Anmerkung:Von den 16 möglichen Werten der 3 Steuereingänge F0 F1 F2

und des Eingangs ci werden durch die Verbindung von F2

und ci über ein UND-Gatter nur 4 weitere genutzt.

Page 43: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

43

Von der ALU(F0F1 F2) erzeugte Funktionen

F0 F1 ci F2 pF0,F1(yi) qF0,F1,F2(xi, yi) fi(xi, yi) BezeichnungLogische Funktionen

0 0 - 0 0 xi yi xi yi Disjunktion

0 1 - 0 ¬ yi xi ¬yi xi yi Konjunktion

1 0 - 0 yi xi xi yi Antivalenz (XOR)

1 1 - 0 1 xi xi Komplement

Arithm. Funktionen0 0 0 1 0 xi xi Identität (Transfer)

0 0 1 1 0 xi xi + 1 Inkrement

0 1 0 1 ¬ yi xi xi – yi Sub. 1er-Komplement

0 1 1 1 ¬ yi xi xi – yi Sub. 2er-Komplement

1 0 0 1 yi xi xi + yi Addition

1 0 1 1 yi xi xi + yi + 1 Addition mit Übertrag

1 1 0 1 1 xi xi – 1 Dekrement

1 1 1 1 1 xi xi Identität (Transfer)

Page 44: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

44

Entwicklung von Intel CPUs

Pentium D3.6 GHz

291 000 000 T

Core 2 Duo2.33 GHz

291 000 000 TPentium 66 MHz

3 100 000 TIntel 48625 MHz

1 200 000 T

Intel 4004108 KHz2 300 T

1971

...

1989 1993 2005 2006 2008

Quelle: www.intel.com

Core i73,2 GHz

731 000 000 T

Core i7

Page 45: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

45

Aufbau des Pentium-3-Prozessors von Intel

Gleitpunkt- Rechenwerk

Ganzzahl-Rechenwerk

Cache für Befehle

Cache für Daten

Steuerung für Adress- & Datenbusse

Teil des Steuerwerks

Teil des Steuerwerks

Page 46: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

46

Aufbau des Core-i7-Prozessors von Intel

Von allen 4 Kernen gemeinsam genutzter (shared) L3-Cache (8 MByte)

Quick Path Interconnect"

(QPI). Serielles Interface zur

Datenübertragung, z.B. zur

Grafikkarte

4 ProzessorkerneAnschluss des Hauptspeicher

4 Prozessorkerne

Page 47: 1 Teil II 2.2 Standard-Schaltnetze als Grundlage für Rechner Addier- und Multiplizierwerke – Halb-Addierer, Voll-Addierer –Multiplizierer Schaltnetze zur

47

Super-Computer

180 Gigaflop/s

Node Book = 64 CPUs Blue Gene /L 45.6 Teraflop/s

JUBL= 8 Racks = 16348 CPUs

5.6 Teraflop/s

Rack = 2048 CPUsab 2008: Blue Gene /P mit über 1 Billiarde Operationen/Sek

Card = 4 CPUs

11.2 Gigaflop/s

5.6 Gigaflop/s

Node = 2 CPUs

Idee Man schaltet viele CPUs zu einem Super-Computer zusammen und lässt diese

synchronisiert komplexe Berechnungen ausführen. Beispiel: Blue Gene Serie von IBM

Quelle: Forschungszentrum Jülich