Grundlagen der Informationsverarbeitung: Grundbausteine der Computertechnik Prof. Dr.-Ing. habil. Ulrike Lucke Durchgeführt von Prof. Dr. rer. nat. habil. Mario Schölzel Maximaler Raum für Titelbild (wenn kleiner dann linksbündig an Rand angesetzt) UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 1
Wiederholung: Zweistufige Gatternetze f (x 1, x 2, x 3 ) : x 1 x 2 x 3 x 1 x 2 x 3 f(x 1, x 2, x 3 ) 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 & & & & 1 & UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 2
Wiederholung: Minimierung mit KV-Diagramm vollständige DNF: f(x 1,..., x 4 ) = x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 minimale DNF: f(x 1,..., x 4 ) = x 1 x 2 x 3 x 1 x 2 x 1 x 3 x 4 x 2 x 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 x 4 x 3 UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 3
Inhalt der Vorlesung Binäre Modellierung Codierung von Zahlen und Zeichen Boolesche Funktionen Schaltnetze Schaltwerke Schaltungsentwurf Minimierungsverfahren Grundbausteine der Computertechnik Befehlsverarbeitung in einem Prozessor Assembler-Ebene Steuerwerke Rechenwerke Parallelität auf Instruktionsebene Speicherhierarchie Virtuelle Speicherverwaltung Leistungsbewertung UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 4
Decoder 1-aus-2 k -Decoder: k Eingänge 2 k Ausgänge 1-aus-8 Decoder Die Belegung der Eingangsvariablen s k-1... s 1 s 0 wird als Binärcode interpretiert (decodiert), sodass genau einer der Ausgänge der dieser Belegung der Eingangsvariablen entspricht auf 1 gesetzt wird. Alle anderen Ausgänge werden mit 0 belegt. UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 5
1-aus-8-Decoder Funktionstabelle s2 s1 s0 m0 m1 m2 m3 m4 m5 m6 m7 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 Binärcode unmittelbare Repräsentation der Werte UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 6
1-aus-4-Decoder Realisierung als zweistufiges Schaltnetz UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 7
Abwandlung statt Binärcode sind beliebige andere Codes anwendbar, z.b. Grey-Code s2 s1 s0 m 0 0 0 0 0 0 1 1 0 1 1 2 0 1 0 3 1 1 0 4 1 1 1 5 1 0 1 6 1 0 0 7 UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 8
Tipp Erstellen Sie aus der gegebenen Funktionstabelle des 1-aus-8-Decoders für den Grey-Code eine Realisierung als zweistufiges Gatternetz! UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 9
Multiplexer (MUX) Schaltkreis mit einem Ausgang und zwei Sorten von Eingängen: Dateneingänge Steuereingänge In Abhängigkeit von den Steuereingängen verbindet der Multiplexer einen der Dateneingänge mit dem Ausgang. Üblich sind Multiplexer mit: k Steuereingängen a 0,..., a k 1 2 k Dateneingängen d 0,..., d 2 k 1 (2 k -zu-1-mux oder kürzer k-mux) Ausgewählt wird derjenige Dateneingang d i, dessen Index i die Dualdarstellung a k 1... a 1 a 0 hat. UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 10
2-zu-1-Multiplexer Schaltsymbol mögliche Realisierung & 1 & UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 11
4-zu-1-Multiplexer (2-MUX) Realisierung als zweistufiges Gatternetz & & 1 & & UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 12
Rekursive Realisierung eines MUX ein 4-zu-1-MUX aufgebaut aus zwei 2-zu-1-MUXn: bzw. verallgemeinert: ein (k+1)-mux kann aus zwei k-muxn und einem 1-MUX aufgebaut werden UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 13
Tipp Entwickeln Sie eine Funktionstabelle für einen 8-zu-1-MUX! Wie viele Steuersignale brauchen Sie dabei? Setzen Sie die Schaltung als zweistufiges Gatternetz um! Konzipieren Sie eine rekursive Realisierung aus mehreren 1-MUXn! UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 14
Demultiplexer Gegenstück zum Multiplexer: 1-zu-2 k Demultiplexer bzw. k-demultiplexer (k-demux) ein Dateneingang k Steuereingänge 2 k Ausgänge Eingang auf 1 gesetzt: Decoder In Abhängigkeit von der Belegung der Steuereingänge wird genau ein Ausgang mit dem Dateneingang verbunden. Alle anderen Ausgänge werden auf 0 gesetzt. UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 16
1-zu-2-Demultiplexer Schaltsymbol mögliche Realisierung & & UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 17
Tipp Leiten Sie für einen 1-zu-4-DeMUX die Umsetzung als einstufiges Gatternetz als rekursive Realisierung analog zu den Darstellungen des MUX her! UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 18
FlipFlops einfachste Speicherelemente im Rechner Flipflops asynchron taktgesteuert taktzustandsgesteuert taktflankengesteuert UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 19
RS-FlipFlop einfachste Realisierungsform asynchron (ohne Taktsteuerung) R S UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 20
D-FlipFlop getaktet verzögert das Signal am Dateneingang (Delay-Flipflop) & & & & UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 21
Tipp Eine gute Erklärung von Funktionsweisen und praktische Tipps bietet http://www.youtube.com/watch?v=p3hinewh2t8 UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 22
Begriffsdifferenzierung FlipFlop: schaltet nur in dem Moment, wo sich das Taktsignal ändert bei steigender Flanke bei fallender Flanke Einschränkung des Zeitraums, in dem geschaltet werden kann Latch: schaltet solange Taktsignal gesetzt ist UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 23
Beispiel Flankengesteuerte Flip-Flops (D-Flip-Flop) Verhalten flankengesteuerte Flip-Flops (D-Flip-Flop) D Dateneingang Q Datenausgang clk Takteingang Zustandsgesteuerte Flip-Flops (Latch) Verhalten zustandsgesteuerte Flip-Flops (D-Latch) D Dateneingang Q Datenausgang clk Takteingang D FF clk Q D Q Latch clk Q D Takt t Takt t+1 Takt t+2 clk 0 1 0 1 0 1 Q D Takt t Takt t+1 Takt t+2 clk 0 1 0 1 0 1
Speicher flüchtig: FlipFlop, Latch Register, Schieberegister Random Access Memory (RAM), Read Only Memory (ROM) Speicherinhalt geht verloren, sobald Betriebsspannung erlischt persistent: Festplatte CD/DVD... UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 25
Register Realisierung eines 4-Bit-Registers aus 4 D-FlipFlops UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 26
Register mit Lade-Signal Register Zum schnellen Speichern von n Binärwerten (z.b. in einem Prozessor) E n-1,,e 0 Dateneingänge A n-1,,a 0 Datenausgänge load Ladesignal A( clk 1), falls load 0 Verhalten: A( clk) E( clk 1), sonst E n-1 E n-2 E 0 clk Mux D Q FF n-1 clk Mux D Q FF n-2 clk Mux D FF 0 clk Q load A n-1 A n-2 A 0
Schieberegister Parallelisierung serieller Datenströme Multiplikation/Division von Binärzahlen mit/durch 2 UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 28
RAM/ROM Adress-Decoder feste Verbindung Adress-Decoder variable Verbindung Speicher UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 29
Interne Realisierung & 1 UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 30
Funktionsweise Adresse n RAM Daten m Die Belegung der Eingangsvariablen x 1,..., x n ist als Adresse angelegt, und die Funktionswerte y 1,..., y m werden als Speicherinhalt interpretiert. Beispiel: In dem zuvor gezeigten Speicherbaustein ist unter der Adresse 011 das 4-Bit-Wort 1100 abgelegt. UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 31
Verallgemeinerung Ein ROM mit n Eingangsleitungen und m Ausgangsleitungen kann die vollständigen disjunktiven Normalformen von m jeweils n stelligen Booleschen Funktionen y 1 = f 1 (x 1,, x n )... y m = f m (x 1,..., x n ) realisieren. Den Variablen x 1,, x n entsprechen n Eingänge sowie 2*n interne Zwischenleitungen der AND-Matrix. Auf den 2 n Spaltenleitungen der AND-Matrix werden die Fundamentalkonjunktionen realisiert, die in der OR-Matrix aufgabengemäß verknüpft werden. UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 32
Masken ROM Festwertspeicher, dessen Werte bei der Fertigung durch die Masken bestimmt werden Keine nachträgliche Änderung der Speicherwerte möglich Bitleitung 1 Bitleitung 2 Wortleitung 1 Bitleitungen liegen auf Gnd (=0) Wortleitung auf 1 setzen: Bei vorhandener Verbindung zur Bitleitung wird Bitleitung auf 1 gesetzt (Spannung fällt über Widerstand ab) Address-Decoder Diode Diode Wortleitung 2 Bei fehlender Verbindung bleibt Bitleitung auf 0 Widerstand Gnd Gnd Diode verhindert auf 1 setzen einer Wortleitung durch Rückkopplung von Bitleitung
Dynamic RAM (DRAM) Zelle Speichert ein Bit in einem Kondensator Ladung vorhanden Bit = 1 Ladung nicht vorhanden Bit = 0 Aufbau einer Bitzelle aus: Einem Transistor Einem Kondensator Ladung geht durch Leckströme verloren Wert muss deshalb in regelmäßigen Abstand neu geschrieben werden (Refresh) Bitleitung Wortleitung Transistor Kondensator Gnd
Tipp Realisieren Sie unsere zum Schaltungsentwurf wiederholt herangezogene Beispielfunktion nun einmal als ROM! UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 35
Zähler (Inkrementierer) Ein Inkrementierer der Breite n kann eine n stellige Zahl a = (a n 1,..., a 0 ) im Binärsystem um Eins vergrößern. Ergebnis ist die Zahl s = (s n 1,..., s 0 ). 1 1 1 0 1 0 1 0 00 01 10 11 Zustand in out 0 0 0 0 0 0 0 0 Zustandsautomat (Mealy) Gesteuert wird die Schaltung von einem Eingang c in. Solange c in = 0, geschieht nichts. Wenn c in = 1 wird, dann wird in jedem Takt eine Eins zu a addiert. Weiter gibt es einen Ausgang c out, der einen sog. Überlauf anzeigt. Das ist der Fall, wenn a = (1, 1,..., 1, 1) und c in = 1. UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 36
Wiederholung: Schaltwerk Ausgabefunktion Zustandsübergangsfunktion Takt Zustandsnummer binär codiert oder für jeden Zustand ein FlipFlop UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 37
Funktionstabelle aktueller Zustand in den FFs z(t) x(t) nächster Zustand in den FFs z(t+1) y(t) a 1 a 0 c in s 1 s 0 c out 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 0 s 1 = a 1 a 0 c in a 1 a 0 a 1 c in s 0 = a 0 c in c out = a 1 a 0 c in 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 38
Realisierung D > a 1 & & 1 s 1 & D > a 0 =1 s 0 c in & c out UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 39
Tipp Modifizieren Sie unseren Zähler so, dass er auch rückwärts zählen kann! UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 40
Addierer Addition von Binärzahlen als grundlegende Operation im Rechner a i, b i, c i s i, c i+1 Volladder a 0, b 0 s 0, c 1 Halbadder UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 41
Halbadder Die Addition von a 0 und b 0 erfordert die Berechnung von Summenbit s 0 := a 0 b 0 Übertrag (Carry) c 1 := a 0 b 0 & =1 a b s c out 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 42
Volladder Die Addition der folgenden a i und b i unter Berücksichtigung eines eingehenden Übertrags erfordert die Berechnung von Summenbit s i := a i b i c i Übertrag c i+1 := a i b i (a i b i )c i = a i b i (a i b i )c i & 1 & =1 =1 c in a b s c out 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 43
Ripple-Carry-Adder sequentielle Anordnung eines Halb- und mehrerer Volladder HA Problem: zu hohe Laufzeiten bei großen n (also großer Wortbreite) vereinfachend auch Volladder UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 44
Tipp Setzen Sie analog zu dieser Addierer-Schaltung den n-bit-inkrementierer aus einzelnen 1-Bit-Inkrementierern um! UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 45
Carry Look-ahead Erinnerung: c i+1 := a i b i (a i b i )c i g i := a i b i p i := a i b i Vorausberechnung der Überträge: Dies wird in einer sog. Lookahead-Einheit als zweistufige Schaltung realisiert. UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 46
Realisierung HA VA VA VA UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 47
Tipp Wie sieht ein Carry Look-ahead für unseren Inkrementierer aus? UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 48
Arbeitsweise von Addierern Werden die Ein- und Ausgangsvektoren als Binärzahlen interpretiert, so gilt: Wenn c out = 0, dann ist a (2) + b (2) = s (2). Wenn c out = 1, so gilt die Gleichung nicht; es ist ein Überlauf eingetreten. Auch bei Interpretation der Ein- und Ausgabevektoren im Zweierkomplement rechnet der Addierer richtig. Es muss lediglich zusätzlich geprüft werden, ob die letzten beiden Überträge verschieden sind: c out c n 1 UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 49
Inhalt der Vorlesung Binäre Modellierung Codierung von Zahlen und Zeichen Boolesche Funktionen Schaltnetze Schaltwerke Schaltungsentwurf Minimierungsverfahren Grundbausteine der Computertechnik Befehlsverarbeitung in einem Prozessor Assembler-Ebene Steuerwerke Rechenwerke Parallelität auf Instruktionsebene Speicherhierarchie Virtuelle Speicherverwaltung Leistungsbewertung Zwischentest am 13.12. UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 50
Testat Bitte nutzen Sie einen dokumentenechten Stift in schwarz, blau, grau o.ä.! erlaubte Hilfsmittel: 1 A4-Blatt beidseitig handschriftlich beschrieben Essen/Trinken Taschentücher Kuscheltiere... nicht erlaubt sind: Bücher, Scripte etc. Taschenrechner generell internetfähige/programmierbare/elektronische Geräte UNIVERSITÄT POTSDAM Institut für Informatik & Computational Science Komplexe Multimediale Anwendungsarchitekturen 51