Vom Schalter zum Computer
1
Vom Schalter zum Computer Kann man aus Schaltern einen Computer bauen? Wir benötigen
pegelgesteuerte Schalter (Logikpegel am Steuereingang G).
Schlieÿer
Öner G
Leitet, wenn
G G = 1 G = 0
Unterbricht, wenn
2
Leitet, wenn
G = 0 G = 1
Unterbricht, wenn
Analog vs. digital Was bedeutet logisch 1 bzw. logisch 0? Abstraktion des gemessenen Signals
log. 1
Spannung
Spannung
log. 1
log. 0
3
t
log. 0
t
Logikgatter Logisches Gatter: Ausgangswert als Funktion der Eingangswerte I Ausgang Logisch Eins: (über Schalter) mit positiver Versorgungsspannung verbunden.
'1'
I Ausgang Logisch Null: (über Schalter) mit negativer Versorgungsspannung/Masse verbunden.
'0'
I Ausgang ohne Verbindung zu deniertem Pegel: unbestimmt (vermeiden!)
4
'X'
Inversion Prinzipschaltung
Funktion I Invertierung des Eingangs
a I Eingang (a) = 0
→
Ausgang (y ) = 1
I Eingang (a) = 1
→
Ausgang (y ) = 0
Wahrheitstabelle
5
a
y
0
1
1
0
y a
Symbol a
y
Inversion Prinzipschaltung
Funktion I Invertierung des Eingangs
a=0 I Eingang (a) = 0
→
Ausgang (y ) = 1
I Eingang (a) = 1
→
Ausgang (y ) = 0
Wahrheitstabelle
5
a
y
0
1
1
0
y=1 a=0
Symbol a
y
Inversion Prinzipschaltung
Funktion I Invertierung des Eingangs
a=1 I Eingang (a) = 0
→
Ausgang (y ) = 1
I Eingang (a) = 1
→
Ausgang (y ) = 0
Wahrheitstabelle
5
a
y
0
1
1
0
y=0 a=1
Symbol a
y
Nicht-Oder (NOR) Verknüpfung Funktion I Invertierte Oder Verknüpfung der Eingänge (a,
I Beide Eingänge (a,
b)
= 0
→
b)
Prinzipschaltung b
Ausgang (y ) = 1,
a I Sonst
→
a
Wahrheitstabelle
6
y
Ausgang (y ) = 0
a
b
y
0
0
1
Symbol
0
1
0
a
1
0
0
1
1
0
b
b
y
Nicht-Oder (NOR) Verknüpfung Funktion I Invertierte Oder Verknüpfung der Eingänge (a,
I Beide Eingänge (a,
I Sonst
→
b)
= 0
→
Ausgang (y ) = 1,
Prinzipschaltung b=0 a=0
y=1
a=0
b=0
Ausgang (y ) = 0
Wahrheitstabelle
6
b)
a
b
y
0
0
1
Symbol
0
1
0
a
1
0
0
1
1
0
b
y
Nicht-Oder (NOR) Verknüpfung Funktion I Invertierte Oder Verknüpfung der Eingänge (a,
I Beide Eingänge (a,
I Sonst
→
b)
= 0
→
Ausgang (y ) = 1,
Prinzipschaltung b=1 a=0
y=0
a=0
b=1
Ausgang (y ) = 0
Wahrheitstabelle
6
b)
a
b
y
0
0
1
Symbol
0
1
0
a
1
0
0
1
1
0
b
y
Nicht-Oder (NOR) Verknüpfung Funktion I Invertierte Oder Verknüpfung der Eingänge (a,
I Beide Eingänge (a,
I Sonst
→
b)
= 0
→
Ausgang (y ) = 1,
Prinzipschaltung b=0 a=1
y=0
a=1
b=0
Ausgang (y ) = 0
Wahrheitstabelle
6
b)
a
b
y
0
0
1
Symbol
0
1
0
a
1
0
0
1
1
0
b
y
Nicht-Oder (NOR) Verknüpfung Funktion I Invertierte Oder Verknüpfung der Eingänge (a,
I Beide Eingänge (a,
I Sonst
→
b)
= 0
→
Ausgang (y ) = 1,
Prinzipschaltung b=1 a=1
y=0
a=1
b=1
Ausgang (y ) = 0
Wahrheitstabelle
6
b)
a
b
y
0
0
1
Symbol
0
1
0
a
1
0
0
1
1
0
b
y
Physikalische Realisierung von Schaltern Es gibt verschiedene Methoden zur physikalischen Realisierung: I Relais I I
Mechanischer Schalter, gesteuert durch Elektromagnet
I Transistor I I I I
Steuerung mittels elektrischem Feld Keine beweglichen Teile Steuereingang: G Eigentlich analog, digitale Abstraktion meist ausreichend G S
D
n+
p
7
n+
B
Physikalische Realisierung von Schaltern Es gibt verschiedene Methoden zur physikalischen Realisierung: I Relais I I
Mechanischer Schalter, gesteuert durch Elektromagnet
I Transistor I I I I
Steuerung mittels elektrischem Feld Keine beweglichen Teile Steuereingang: G Eigentlich analog, digitale Abstraktion meist ausreichend G S
D
n+
p
7
n+
B
Warum Digital? Der Transistor ist ein analoges Bauelement, warum die digitale Abstraktion? I Vereinfacht Entwurf und Test. I Macht das Speichern viel ezienter. I Bietet einen intuitiven und dennoch mächtigen mathematischen Werkzeugkasten! I Geringere Störempndlichkeit!
8
Komplexere Funktionen NOR Verknüpfung X
NAND Verknüpfung
XNOR Verknüpfung
a
b
y
a
b
y
a
b
y
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
Durch Inversion des Ausganges erhält man weitere Grundgatter NOR
9
→
OR
NAND
→
AND
XNOR
→
XOR
Umschalter (Multiplexer) Prinzipschaltung
Funktion I Auswahl mittels Pegel an Anschluss
s:
I
s=0→
Eingang
a
wird ausgegeben
I
s=1→
Eingang
b
wird ausgegeben
s
a y
s
b
Wahrheitstabelle s 0 1
y a b
Symbol a
y b
10
s
Umschalter (Multiplexer) Prinzipschaltung
Funktion I Auswahl mittels Pegel an Anschluss
s:
I
s=0→
Eingang
a
wird ausgegeben
I
s=1→
Eingang
b
wird ausgegeben
s=0
a s=0
y
b
Wahrheitstabelle s 0 1
y a b
Symbol a
y b
10
s=0
Umschalter (Multiplexer) Prinzipschaltung
Funktion I Auswahl mittels Pegel an Anschluss
s:
I
s=0→
Eingang
a
wird ausgegeben
I
s=1→
Eingang
b
wird ausgegeben
s=1
a s=1
y
b
Wahrheitstabelle s 0 1
y a b
Symbol a
y b
10
s=1
Wahlschalter (Multiplexer) Prinzipschaltung
Funktion I Für mehr als 2 Eingänge: Kaskadieren von Umschaltern
s2 s1
I Wir erhalten mehrere Steuersignale
s1 , s2 , · · ·
b y
s1
c
Wahrheitstabelle
11
s1
a
s2 s1
s2
s1
0
0
0
1
1
0
1
1
y a b c d
d
Symbol a b c d
(s2 ,= s10, ) s1 = 0)
y
Wahlschalter (Multiplexer) Prinzipschaltung
Funktion I Für mehr als 2 Eingänge: Kaskadieren von Umschaltern
s2 = 0 s1 = 0
I Wir erhalten mehrere Steuersignale
s1 , s2 , · · ·
b y
s1 = 0
c
Wahrheitstabelle
11
s1 = 0
a
s2 = 0 s1 = 0
s2
s1
0
0
0
1
1
0
1
1
y a b c d
d
Symbol a b c d
(s2 = 0, s1 = 0)
y
Wahlschalter (Multiplexer) Prinzipschaltung
Funktion I Für mehr als 2 Eingänge: Kaskadieren von Umschaltern
s2 = 0 s1 = 1
I Wir erhalten mehrere Steuersignale
s1 , s2 , · · ·
b y
s1 = 1
c
Wahrheitstabelle
11
s1 = 1
a
s2 = 0 s1 = 1
s2
s1
0
0
0
1
1
0
1
1
y a b c d
d
Symbol a b c d
(s2 = 0, s1 = 1)
y
Wahlschalter (Multiplexer) Prinzipschaltung
Funktion I Für mehr als 2 Eingänge: Kaskadieren von Umschaltern
s2 = 1 s1 = 0
I Wir erhalten mehrere Steuersignale
s1 , s2 , · · ·
b y
s1 = 0
c
Wahrheitstabelle
11
s1 = 0
a
s2 = 1 s1 = 0
s2
s1
0
0
0
1
1
0
1
1
y a b c d
d
Symbol a b c d
(s2 = 1, s1 = 0)
y
Wahlschalter (Multiplexer) Prinzipschaltung
Funktion I Für mehr als 2 Eingänge: Kaskadieren von Umschaltern
s2 = 1 s1 = 1
I Wir erhalten mehrere Steuersignale
s1 , s2 , · · ·
b y
s1 = 1
c
Wahrheitstabelle
11
s1 = 1
a
s2 = 1 s1 = 1
s2
s1
0
0
0
1
1
0
1
1
y a b c d
d
Symbol a b c d
(s2 = 1, s1 = 1)
y
Zahlendarstellung Wie kann ein Computer überhaupt Zahlen darstellen? I Mit Schaltern und Pegeln kann man doch nur Nullen und Einsen unterscheiden! I Lösung: Zusammensetzen von Zahlen aus mehreren Signalen (Bits), unter Berücksichtigung des Stellenwertes I I
Mit jeder Stelle (Position nach links) kommt eine Zweierpotenz hinzu. Summieren über die Zweierpotenzen ergibt Zahl im Dezimalsystem: 10012 = ˆ 1 · 23 + 0 · 22 + 0 · 21 + 1 · 20 = 1·8+0·4+0·2+1·1 = 8+1 = 910
I
Gleiches Prinzip wie im vertrauten dekadischen System.
Diese Art der Darstellung einer Zahl wird Binärdarstellung genannt! 12
Rechnen mit Logikgattern Und wie rechne ich jetzt mit Binärzahlen und Gattern? I Betrachten wir als Ausgangspunkt die Addition von zwei Dezimalzahlen
a b
1234 5678
Summe
6912 0011
Übertrag
13
a
und
b:
Addition von Binärzahlen Das gleiche Konzept kann für Binärzahlen verwendet werden. I Addiere jede Stelle unter Berücksichtigung des Übertrages:
a b
100011 000111
Summe
101010 000111
Übertrag
14
Addition von Binärzahlen Allgemeine Rechenregel für die Addition zweier Binärzahlen? Welche Möglichkeiten gibt es für eine Stelle?
a b
0 0
0 1
1 0
1 1
Summe (s)
0 0
1 0
1 0
0 1
Übertrag (u)
15
Addition von Binärzahlen Allgemeine Rechenregel für die Addition zweier Binärzahlen? Welche Möglichkeiten gibt es für eine Stelle?
a b
0 0
0 1
1 0
1 1
Summe (s)
0 0
1 0
1 0
0 1
Übertrag (u)
Rechenregeln I Summe: XOR-Verknüpfung der Operanden
15
Addition von Binärzahlen Allgemeine Rechenregel für die Addition zweier Binärzahlen? Welche Möglichkeiten gibt es für eine Stelle?
a b
0 0
0 1
1 0
1 1
Summe (s)
0 0
1 0
1 0
0 1
Übertrag (u)
Rechenregeln I Summe: XOR-Verknüpfung der Operanden I Übertrag: AND-Verknüpfung der Operanden
15
Addition von Binärzahlen Rechenregeln I Summe: XOR-Verknüpfung der Operanden I Übertrag: AND-Verknüpfung der Operanden
Halbaddierer Mittels dieser Regeln können wir einen Addierer für zwei 1 Bit Zahlen bauen
15
Halbaddierer Schaltung a b
s
u
16
Halbaddierer Schaltung a b
s
u
Wieviele Schalter (Transistoren) werden benötigt?
16
Halbaddierer Schaltung a
s
b
u
Wieviele Schalter (Transistoren) werden benötigt? I AND
→
NAND + INV
I XOR
→
6 Transistoren
I
16
⇒
Halbaddierer
→
→
4 + 2 = 6 Transistoren
6 + 6 = 12 Transistoren
Halbaddierer Schaltung a b
s
u
Was ist mit den anderen Stellen? Wie können wir den Übertrag von der vorherigen Stelle verwenden?
16
Addieren von Mehrbit-Zahlen Funktionsweise I Erste Stelle hat keinen Übertrag
⇒
Halbaddierer
I Weitere Stellen: Übertrag als zusätzlicher Summand
⇒
Volladdierer
Schaltung a b uein
s
uaus
17
Wahrheitstabelle a
b
uein
s
uaus
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
Acht-Bit Addierer Wie addiert man längere Zahlen? I Halb- und Volladdierer jeweils nur für ein Bit! I
⇒
Kombination aus Halb- und Volladdierern
I Übertrag:
18
uaus
geht an linken Nachbarn als
uein
Acht-Bit Addierer Wie addiert man längere Zahlen? I Halb- und Volladdierer jeweils nur für ein Bit! I
⇒
Kombination aus Halb- und Volladdierern
I Übertrag:
uaus
geht an linken Nachbarn als
uein
Schaltung b7 a7 b6 a6 b5 a5 b4 a4 b3 a3 b2 a2 b1 a1 b0 a0 u7
18
VA
VA
VA
VA
VA
VA
VA
HA
s7
s6
s5
s4
s3
s2
s1
s0
Speicherzelle Funktionsweise I Schreiben:
s=0→y=a
Wahrheitstabelle
Eingang wird an Ausgang durchgereicht
I Halten:
s=1→y=
y0
Ausgang hält den letzten Wert
Schaltung a
19
s y
a
s
0
0
yneu
0
yalt × ×
1
× ×
1
0
0
1
1
1
0 1
Welche Bausteine haben wir? Entwickelte Bausteine I Logische Gatter (AND, OR, XOR, . . . ). I Arithmetische Bausteine (+,
−,
. . . ).
I Umschalter, Wahlschalter. I Speicherzellen. Das alles konnten wir nur aus Schaltern (Transistoren) realisieren. Reicht das aus, um einen Computer zu bauen?
20
ALU Das Rechenwerk eines Computers Wie können wir ein programmierbares Rechenwerk bauen? I Eingänge (a, b) für die Operanden I Ausgang (y ) für das Ergebnis I Das hatte bereits unser Addierer I Wir schalten parallel noch andere Funktionen mit den selben Eingängen I Über einen Wahlschalter selektieren wir jene, die uns gerade interessiert I Die Steuersignale
21
op
des Wahlschalters denieren die Funktion
ALU Das Rechenwerk eines Computers Wie können wir ein programmierbares Rechenwerk bauen? I Eingänge (a, b) für die Operanden I Ausgang (y ) für das Ergebnis I Das hatte bereits unser Addierer I Wir schalten parallel noch andere Funktionen mit den selben Eingängen I Über einen Wahlschalter selektieren wir jene, die uns gerade interessiert I Die Steuersignale
op
des Wahlschalters denieren die Funktion
Jetzt sind sowohl Daten als auch Operation frei wählbar!
21
Acht-Bit ALU Schaltung y LDL ADD
Funktionsweise
SUB SBB CMP AND MOV 0
ab 22
op
I Alle Befehle werden parallel ausgeführt!
I
op
selektiert das Ergebnis
des gewünschten Befehls
Das Programm Wie bringe ich der ALU bei, was sie machen soll? Für eine Berechnung benötigt die ALU also folgende Informationen:
I Operanden
a, b
I gewünschte Operation
op
Zur Ansteuerung der Schalter werden diese als Bitmuster benötigt 0001 0000 0000 0101 0101 0010 0110 0110 0101 1010 0110 0001 0111 0001 0010 ...
23
→
Maschinencode
Das Programm Wie bringe ich der ALU bei, was sie machen soll? Für eine Berechnung benötigt die ALU also folgende Informationen:
I Operanden
a, b
I gewünschte Operation
op
Zur Ansteuerung der Schalter werden diese als Bitmuster benötigt 0001 0000 0000 0101 0101 0010 0110 0110 0101 1010 0110 0001 0111 0001 0010 ...
23
→
Maschinencode
Das Programm Mühsamer und fehleranfälliger Prozess! Gibt es Alternativen?
24
Das Programm Mühsamer und fehleranfälliger Prozess! Gibt es Alternativen?
Natürlich! 0001 0000 0000 0101 0101
LDL 85
0010 0110 0110 0101 1010
AND 102, 90
0110 0001 0111 0001 0010
ADD 23, 18
... Durch Verwendung von Namen werden die Befehle verständlicher
⇒
24
Entwurf in Assemblercode, danach automatische Übersetzung
Von der ALU zum Prozessor Die Macht der Speicherung Meine ALU wird ezienter, wenn ich Daten und Instruktion nicht jedesmal neu selbst eingeben muss:
I Ich kann ganze Folgen von Instruktionen in Listen speichern (Programm) I Ich kann die dazugehörigen Operanden ebenfalls in Listen speichern (Operandenspeicher)
I Ich kann Zwischenergebnisse in den Operandenspeicher eintragen und in nachfolgenden Schritten weiter bearbeiten
I Zur Identikation des gewünschten Eintrags in der Liste verwende ich Adressen. Diese sind nichts anderes als die Steuersignale eines Wahlschaltes. Auf diese Weise kann ich unglaublich komplexe Algorithmen realisieren und automatisch ablaufen lassen.
25
Registerle (Operandenspeicher) Schaltung
Funktionsweise d
Speicherstellen (Register)
Register 0
sel a
sel b
Register 4
Register 6 Register 7
26
Ergebnisse zu speichern
I Auswahlschalter (sela ,
Register 2
Register 5
ab
um Operanden und
Register 1
Register 3
I Mehrere, parallele
sel d
selb , seld ) an den Ein- (d) und Ausgängen (a,
b)
um
gewünschtes Register auszuwählen (Adresse)
Programmspeicher Darstellung in unserem Demonstrator
Funktionsweise I Frei adressierbarer Speicher I Enthält das Programm das
0
Instruktion 1
1
Instruktion 2
2
Instruktion 3
3
Instruktion 4 ...
ausgeführt werden soll
I Jeder Eintrag (Instruktion) umfasst I I
die gewünschte Operation und die (Register)Adressen der gewünschten Operanden
I Abarbeitung normalerweise nacheinander (linear)
I Sprunginstruktionen erlauben Abweichen von linearer Abfolge
27
Control Unit (Dekodiereinheit) Funktion der Control Unit
IP ) zeigt auf aktuelle Instruktion Berechnet die Adresse der nächsten Instruktion (IP, Jump Oset ) Liest Instruktionen vom Programmspeicher (Instruction )
1. Programmzähler (Instructionpointer, 2. 3.
4. Dekodiert die Instruktion und steuert andere Komponenten an I I I
Operandenwahl (Reg. A, Reg. B, Literal ) Ergebnisregister (Reg. D ) Auswahl der ausgeführten Operation (OpCode )
Darstellung in unserem Demonstrator Reg. A: OpCode: IP: Instruction:
28
Reg. B:
Reg. D:
Phase: Jump Oset:
Literal:
Kommunikation mit der Auÿenwelt Funktionsweise
Darstellung (Beispiel LEDs)
I Komponenten, die Daten I I
einlesen oder ausgeben können
I Mensch-Maschinen Kommunikation
I Maschinen-Maschinen Kommunikation
I Beispiele: I I I I I
29
Leuchtdioden Schalter Tastatur Netzwerkschnittstelle USB-Schnittstelle
a b
Das Programm für den gesamten Prozessor Welche Informationen werden benötigt? I Welche Operation soll ausgeführt werden? I Welche Operanden werden verwendet? I Wo sind die Operanden zu nden? I Wohin soll das Ergebnis gespeichert werden? I Welches ist die nächste Instruktion? Jede Kombination der vorhandenen Operationen mit (dazu passenden) Operanden ist möglich, dadurch können beliebige Abfolgen von Instruktionen (Programme) geschrieben werden.
30
Ein simples Programm LDL r0, #0 LDL r7, #255 loop1:
ADD r0, r0, #1 ST r7, r0 LDL r4, #2
loop2:
SUB r4, r4, #1 CMP r4, #0 BNZ loop2 JMP loop1
31
; Lade den Wert 0 in Register 0 ; Lade den Wert 255 in Register 7 ; Addiere 1 zu Register 0, Ergebnis: Register 0 ; Schreibe den Wert aus Register 0 an die Adresse ; in Register 7 → Ausgabe auf LEDs ; Lade den Wert 2 in Register 4 ; Subtrahiere 1 von Register 4, Ergebnis: Register 4 ; Ist Register 4 gleich 0? ; Falls nein, führe als nächstes den Befehl bei loop2 aus ; Führe als nächstes den Befehl bei loop1 aus
Ein simples Programm maschinenlesbar
32
LDL r0, #0
0000 0000 0000 0001
LDL r7, #255
1111 1111 1110 0001
ADD r0, r0, #1
1000 1000 0000 0110
ST r7, r0
0000 0111 0001 0011
LDL r4, #2
0000 0010 1000 0001
SUB r4, r4, #1
1000 1100 1000 1000
CMP r4, #0
1000 0100 0001 0001
BNZ -2
1111 1110 0001 1100
JMP -6
1111 1010 0001 1111
Ein simples Programm
Live-Demo
33
Reale Prozessoren Demo
Intel Core i7 2600
ARM Cortex A17
62 MHz 8 8 bit 0B
3.4 GHz 16 64 bit max. 32 GB
# Cores
1
4
≤ 2 GHz 31 32 bit max. 1 TB 14
# Threads/Core
1
2
1
Pipeline Stufen
4
Cache Speicher
0B
> 14 8 MB
> 11 ≤ 8 MB
Taktfrequenz # Register Datenbreite Arbeitsspeicher
Tabelle: Prozessorvergleich
34
Abstraktion Instruktion (Assemblercode) Operation (Maschinencode) Komponenten (ALU,
Bitfolgen
Registerle, . . . ) Gatter (Schaltwerke, Boolesche Algebra)
Logikpegel (Digitalelektronik)
Schalter (Digitalelektronik)
Spannung (Analogelektronik)
Transistor (Analogelektronik)
Halbleiterphysik
Abbildung: Bisher verwendete Abstraktionen 35
Weitere Abstraktion Assemblercode I ist immer noch schwer zu verstehen und zu schreiben. I ist maschinenabgängig. I benötigt manuelle Auswahl von Registern, Speicherstellen, . . . I benötigt manuelle Optimierung (keine Übersetzerunterstützung). I benötigt manuelle Handhabung von Spezial-Features: parallele Pipelines, Prediction, etc.
Programmieren in Assemblercode erreicht deshalb eine geringe Produktivität!
36
Weitere Abstraktion Abhilfe: Hochsprachen I Versteckt Maschinenspezika hinter einem Übersetzer I Dadurch ist maschinenunabhängiger Code möglich I Code kann bei der Übersetzung automatisch optimiert werden
Beispiel in C
uint8_t i = 0; while (1) { LEDS = i++; wait(1000); }
37
Übersetzer Aufgaben des Übersetzers I Optimierung des Codes. I Auswahl der passenden Maschinenbefehle. I Auswahl der zu verwendenden Register. I Auswahl des zu verwendenden Speichers. I Zuordnung von Variablen zu Register/Speicherstellen. I Initialisierung der benötigten Hardware. I ...
38
Maschinenunabhängigkeit I Übersetzer ermöglichen Entwicklung weitgehend maschinenunabhängiger Software. I Einmal (in Hochsprache) schreiben
⇒
öfters (auf jeweiligen Maschinencode) übersetzen.
I Muss man dennoch Ahnung von Prozessorarchitektur haben?
39
Maschinenunabhängigkeit I Übersetzer ermöglichen Entwicklung weitgehend maschinenunabhängiger Software. I Einmal (in Hochsprache) schreiben
⇒
öfters (auf jeweiligen Maschinencode) übersetzen.
I Muss man dennoch Ahnung von Prozessorarchitektur haben?
Ja! Wenn es nicht nur um Schönwetterprogrammierung sondern um
I Performanz I Echtzeitverhalten I Energieezienz I Robustheit/Fehlertoleranz geht, muss der Programmierer wissen, was sein Programm in seiner Hardware bewirkt.
39
Moderne Konzepte
40
I Multicore
I Garbage collection
I Pipelining
I Virtual machine
I Out of order execution
I Cloud computing
I Superscalar
I Cluster
I Hyper-threading
I Super-computer
I OpenCL
I Low power
I GPU programming
I Speculative execution
I Massively parallel
I Many core
I Auto-vectorization
I ...
Zusammenfassung I Ein Prozessor ist nicht mehr als eine Ansammlung von clever gesteuerten Schaltern I I I I
Repräsentation von Zahlen durch Logikpegel. Wählbare Operation auf frei wählbare Operanden. Speicherung ermöglicht Programmierung von Abläufen. Konzept der Adressierung ermöglicht Datenübergabe und Sprünge.
I Abstraktion befreit Programmierer von Details bezüglich I I I
41
Halbleiterphysik Elektrotechnik Prozessorspezika
Zusammenfassung I Ein Prozessor ist nicht mehr als eine Ansammlung von clever gesteuerten Schaltern I I I I
Repräsentation von Zahlen durch Logikpegel. Wählbare Operation auf frei wählbare Operanden. Speicherung ermöglicht Programmierung von Abläufen. Konzept der Adressierung ermöglicht Datenübergabe und Sprünge.
I Abstraktion befreit Programmierer von Details bezüglich I I I
Halbleiterphysik Elektrotechnik Prozessorspezika
I Enorme Produktivität
41
Zusammenfassung I Ein Prozessor ist nicht mehr als eine Ansammlung von clever gesteuerten Schaltern I I I I
Repräsentation von Zahlen durch Logikpegel. Wählbare Operation auf frei wählbare Operanden. Speicherung ermöglicht Programmierung von Abläufen. Konzept der Adressierung ermöglicht Datenübergabe und Sprünge.
I Abstraktion befreit Programmierer von Details bezüglich I I I
Halbleiterphysik Elektrotechnik Prozessorspezika
I Enorme Produktivität
Dennoch: Erstellung von ezienten und performanten Programmen erfordert Wissen über die verwendete Prozessorarchitektur!
41