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