1.11k likes | 1.26k Views
Hardwarearchitekturen und Rechensysteme. 4. Schaltnetze. Motivation. Schaltnetze sind kombinatorische digitale Schaltungen. Rechnerwerkzeuge für den Entwurf und die Simulation dieser Schaltungen basieren auf der Booleschen Algebra.
E N D
Hardwarearchitekturen und Rechensysteme 4. Schaltnetze
Motivation • Schaltnetze sind kombinatorische digitale Schaltungen. Rechnerwerkzeuge für den Entwurf und die Simulation dieser Schaltungen basieren auf der Booleschen Algebra. • In diesem Kapitel wird das Verhalten und die Struktur einiger ausgewählter Schaltnetze behandelt. Es sind Schaltnetze, die für den Aufbau von Operationswerken in Prozessoren benötigt werden.
Gliederung • 4.1 Spezielle Schaltnetze • 4.1.1 Multiplexer/Demultiplexer • 4.1.2 Datenbuszugang • 4.1.3 Permutationsschaltnetz • 4.1.4 Vergleicher (Komparator) • 4.1.5 Addierer • 4.1.6 Multiplizierer • 4.2 PLA (programmable logic arrays) • 4.3 Elektrotechnische Grundlagen • 4.4 Zeitliches Verhalten von Schaltnetzen • 4.5 Hazards (Gefahr) in Schaltnetzen
4.1 Spezielle Schaltnetze • 4.1.1 Multiplexer/Demultiplexer • 4.1.2 Datenbuszugang • 4.1.3 Permutationsschaltnetz • 4.1.4 Vergleicher (Komparator) • 4.1.5 Addierer • 4.1.6 Multiplizierer
4.1.1 Multiplexer/Demultiplexer • Ein Multiplexer/Demultiplexer ist ein Schaltnetz, welches eine Datenweiche darstellt. • Multiplexer:
Multiplexer • Definition: • Ein Multiplexer ist eine Boolesche Funktion f, für die gilt: • Für die Abbildung ggilt: • Für das Dekodiersignal dkgilt: • Beispiel:
Demultiplexer • Demultiplexer arbeiten invers zu den Multiplexern. Sie verteilen einen Datenstrom auf mehrere auswählbare Kanäle. • Demultiplexer finden oftmals in integrierten Schaltkreisen Anwendung, um die Zahl der Anschlußpins zu begrenzen. In DRAMs beispielsweise wird der höherwertige und der niederwertige Teil der Adresse nacheinander auf den Adreßbus gelegt. Der Baustein muß dann die Signale intern demultiplexen und dem Spalten- bzw. Zeilendekoder zuführen.
0 Datenweg- Ausgangs- Eingangs- schaltung datenweg datenwege n-1 Steuereingänge Decoder 0 Datenweg- Ausgangs- Eingangs- schaltung datenwege datenweg n-1 Steuereingänge Decoder Datenwegschaltung • Multiplexer: • Demultiplexer:
Datenbus Akku- Hilfs- Register register Puffer- Multiplizierer ALU register Ansteuerung Ergebnisbus Anwendung – Busbasiert
Ansteuerung Akku- Register 1 Register Register 2 ALU Register 3 Multiplexer Ansteuerung Demultiplexer Ergebnis- Ergebnis- register 1 register 2 Anwendung – Multiplexerbasiert
e 0 0 0 1 1 sel 0 1 1 0 e 1 2:1 Multiplexer • Funktionstafel:KV-Diagramm: • Schaltplan: • Funktion:
sel 1 0 Decoder sel 2 1 Enable e 0 f 0 e 1 1 e 2 2 e 3 3 4:1 Multiplexer
sel 1 0 Decoder sel 2 1 sel 1 Enable 2 e 0 0 e 1 1 e 2 2 e 3 3 1 f 1 Decoder 2 Enable e 0 4 e 1 5 e 2 6 e 3 7 8:1 Multiplexer
C0 Steuerung C1 C2 I0 I1 Y I2 I3 Eingänge I4 Y I5 I6 I7 Enable Multiplexer – Standardbaustein • Multiplexer sind als integrierte Bauelemente erhältlich. Typischerweise handelt es sich dabei um 8:1 bzw. 16:1 Multiplexer (mit 3 bzw. 4 Steuereingängen). • SN74151 (TTL-Baureihe):
Implementierung Boolescher Funktionen • Jede Boolesche Funktion f(x0, … ,xn-1) kann unter ausschließlicher Verwendung von Multiplexern realisiert werden. Für f: Bn!B ist hierzu ein 2n:1 Multiplexer mit n Steuereingängen notwendig. Die n Eingangsvariablen werden an die Steuereingänge gelegt. Die Belegung der 2n Dateneingänge erfolgt gemäß der Wahrheitstabelle der Funktion f. • Anstelle eines 2n:1 Multiplexers kann auch ein 2n-1:1 Multiplexer mit n-1 Steuereingängen verwendet werden. Die Steuereingänge werden mit den Variablen x1, … ,xn-1 beschaltet. Die Dateneingänge werden mit den konstanten Werten 0 und 1 und der freien Variablen belegt.
Implementierung Boolescher Funktionen • Beispiel: 2 von 3 Mehrheitsfunktion 0 0 0 0 0 0 0 1 0 1 f 0 1 0 1 0 0 1 1 1 1 f 1 0 0 1 0 1 1 1 0 x x 2 1 1 1 1 0 1 x x x x x 0 1 2 1 0 0 0 8:1 Multiplexer 4:1 Multiplexer
f(0,0,c) 0 0 f(0,1,c) 0 1 f f(1,0,c) 1 0 f(1,1,c) 1 1 a b Implementierung Boolescher Funktionen • Die Beschaltung der Dateneingänge eines 2n-1:1 Multiplexers erhält man durch n-1-malige Anwendung des Shannon'schen Entwicklungssatzes. • Beispiel: Boolesche Funktion mit 3 Variablen • Die Steuereingänge werden mit den für die Entwicklung gewählten Variablen und die Dateneingänge mit den entsprechenden Co-Faktoren belegt.
1:2 Demultiplexer • Funktionstafel:KV-Diagramm: • Schaltplan: • Funktion: • Der nicht beschaltete Ausgang wird mit dem Wert 1 belegt! e e 0 1 1 1 sel 1 1 sel 0 1 f f 0 1
e 1 a i 4.1.2 Datenbuszugang • Tri-State-Gatter: • Ein Tri-State-Gatter besitzt die drei definierten Ausgangszustände 0,1 (abhängig vom Eingangssignal e) und einen hochohmigen Zustand z. Der Zustand zwird durch Aktivierung des Sperreingangs i(inhibit) erreicht. • Funktionstafel: Schaltplan: • Tri-State-Gatter werden immer dann verwendet, wenn mehrere Ausgänge, von denen nur einer aktiv sein darf, an eine Leitung angeschlossen werden sollen (z.B. Busleitungen).
i i 1 1 Daten- Daten- sender empfänger 1 1 i i 1 1 Daten- Daten- sender empfänger 1 1 Bus Unidirektionaler Datenbuszugang
Tri-State-Gatter a e 1 e d i a 1 r d & & Schaltsymbol i 1 r 1 Bidirektionaler Datenbuszugang • Funktionstafel: • Schaltplan:
Einheit 1 Einheit 3 i i r r bidirektionaler Datenbus i r Einheit 2 Bidirektionaler Datenbuszugang
4.1.3 Permutationsschaltnetz • Permutationsschaltnetze vertauschen die Reihenfolge von Variablen. Die Vertauschung wird über einen Steuereingang sel aktiviert. • Schaltplan: • Permutationsschaltnetze werden in Verbindungsnetzwerken verwendet, um verschiedene Kommunikationswege schalten zu können.
4.1.4 Vergleicher (Komparator) • Vergleicher sind Schaltungen, die insbesondere in Mikroprozessoren Verwendung finden um beispielsweise den notwendigen Vergleich für bedingte Sprunganweisungen durchzuführen. • Vergleicher werden aber auch integriert in Schaltungen eingesetzt, z.B. zur Speicherauswahl oder für die Selektion von Ein-/Ausgabe-Geräten. • Vergleich der 2 Booleschen Tupel Xund Y:
n-Bit Vergleicher • Vergleicher für n-Bit Zahlen lassen sich hierarchisch konstruieren. • (x≥y)-Vergleicher: x n & 1 f y n n & x n-1 y Vergleicher für f n-1 (n-1)-stellige n-1 x Dualzahlen 1 y 1
y y y y y y y 0 1 2 3 4 5 6 7 x x x x x x x 1 2 3 4 5 6 7 > Komparator > Komparator n-Bit Vergleicher • n-Bit Vergleicher lassen sich zu Vergleichern von Dualzahlen mit größeren Längen kaskadieren. • 7-Bit Vergleicher aus zwei 4-Bit Vergleichern:
1-Bit Vergleicher für Dualzahlen • Der größer als bzw. kleiner als Vergleicher ist schaltungstechnisch aufwendiger als der Vergleich auf Identität.
4.1.5 Addierer • Ein Halbaddiererberechnet aus zwei 1-Bit Zahlen die Summen Siund den Übertrag Ci+1. • Funktionstafel: Schaltplan: • Funktionen:
Volladdierer • Ein Volladdierer berechnet aus drei 1-Bit Zahlen die Summe Siund den Übertrag Ci+1. • Funktionstafel: Schaltplan: • Funktionen:
n-Bit Ripple-Carry-Addierer • Ein n-Bit Ripple-Carry-Addierer entsteht durch die Kaskadierung von n-1 Volladdierern und einem Halbaddierer. • Im schlimmsten Fall müssen für die Addition zweier n-Bit Zahlen alle Addierer nacheinander durchlaufen werden, bis der Übertrag Snvorliegt.
n/2-Bit-Addierer n/2-Bit-Addierer n/2-Bit-Addierer Carry-Select-Addierer • Ziel: Beschleunigung der Durchlaufzeit an-1 bn-1 an/2 bn/2 0 an/2-1 bn/2-1 a0 b0 cn 0 s‘n-1 s‘n/2 an-1 bn-1 an/2 bn/2 1 sn/2-1 s0 cn s“n-1 s“n/2 cn/2 sn-1 sn/2
Subtraktionsschaltung aus Volladdierern • Die Differenz A-B (A,B¸ 0) wird durch die Addition des 2-er Komplements :B von B erreicht (A+(:B)), welches auf die bitweise Negation von B zurückgeführt wird: • Auftretende Überträge werden nicht berücksichtigt. • Beispiel: 4-Bit (Vorzeichen und 3-Bit für die Zahlendarstellung)
Subtraktionsschaltung auf Volladdierern • Addierer/Subtrahierer:
a COMP 0 a 1 a 2 a 3 A < B < = A = B > A > B b 0 b 1 b 2 b 3 Allgemeine Vergleicher für Dualzahlen • Der größer als bzw. kleiner als Vergleicher basiert auf einem Subtrahierer. • Integrierter Vergleicher (Komparator) SN7485: 0 s0 a0 ≥1 b0 & A<B n-Bit-Subtrahierer … … A=B an-1 sn-1 & A>B bn-1 cn coutn/2-1
4.1.6 Multiplizierer • Schnelle Multiplizierer werden durch parallele Berechnung sämtlicher (dualer) Produktterme und anschließender Addition der Terme mit den richtigen Wertigkeiten implementiert. • Es werden m2 viele AND-Gatter für die Bildung der Produktterme und m Addierer benötigt.
Beispiel – 3-Bit Multiplizierer (1) • Eingaben: Faktoren aund b Ausgabe: Produkt p = a ¢b • Anschauliche Darstellung:
Beispiel – 3-Bit Multiplizierer (1) a a a 2 1 0 b 0 & & & HA Addierer b 1 & & & VA VA HA Addierer b 2 & & & VA VA HA Addierer p p p p p p 5 4 3 2 1 0
Multiplikand Multiplikator 3 2 1 0 3 2 1 0 2 2 2 2 2 2 2 2 2D 2C 2B 2A 1D 1C 1B 1A 2D 2C 2B 2A 1D 1C 1B 1A SN74284 SN74285 z z z z z z z z 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 2 2 2 2 2 2 2 2 Produkt Standardbausteine für Multiplikation • Für die Multiplikation zweier 4-Bit Dualzahlen existieren die beiden Standardbausteine SN74284 und SN74285. Der Baustein SN74285 berechnet den niederwertigen 4-stelligen Teil des Produktes, der SN74284 den höherwertigen Teil.
X UND Z ODER Y Matrix Matrix 1 X 4.2 PLA (programmable logic arrays) • PLAs sind integrierte Schaltungen zur Realisierung von DNFs. Sie sind durch sogenannte Programmiergeräte vom Kunden (Anwender) selbst personalisierbar. PLAs besitzen eine regelmäßige Struktur und sind daher besonders für eine VLSI-Realisierung geeignet. • Literale: • Ausgangsvektor: • Jede Komponenteyiaus Y = y1, y2, …, ymstellt eine DNF dar. • Produkttermvektor: • Jede Komponente zkaus Z = z1, z2, …, zlstellt einen Konjunktionsterm der negierten oder nicht negierten Literale dar.
x 1 1 x 2 1 UND x n 1 z z z 1 2 l y 1 y 2 ODER y m PLA (programmable logic arrays) • UND-Ebene (UND-Matrix): • mit den Indexmengen Ik,nund Ik,pder negierten bzw. nicht negierten Variablen • ODER-Ebene (ODER-Matrix): • Die Personalisierung der Matrizen erfolgt durch Aktivierung der Leitungsverzweigungen, meist durch aktive Bauelemente (Transistoren).
x x 1 1 1 1 x x 2 2 1 1 UND UND x x n n 1 1 & & & & 1 y & y 1 1 ODER ODER 1 y & y m m PLA • UND/ODER-PLA: NAND-PLA:
Beispiel – Volladdierer • Boolesche Funktionen: • PLA: a b a C b C i i i i i i a i 1 b i 1 C i 1 C i+1 S i
PLA, PAL und ROM • Der Aufwand der Personalisierung wird geringer, wenn nur eine der beiden Matrizen programmierbar (personalisierbar) ist. Für die Realisierung Boolescher Funktionen stehen 3 personalisierbare Strukturen zur Verfügung: • PLA • Personalisierung: UND-/ODER-Matrix • PAL • Personalisierung: UND-Matrix • Festwertspeicher (ROM) • Personalisierung: ODER-Matrix
x 1 1 x 2 1 x n 1 y 1 y 2 y m PAL (Programable Logic Array) • Bei einem PAL ist die UND-Matrix personalisierbar und die ODER-Matrix festgelegt.
0 1 x 2 1 3 Decoder x 2 4 X/Y x 5 3 6 7 y y y 1 2 3 ROM • Bei einem Festwertspeicher wird die UND-Matrix fest als Adressdecoder personalisiert.