32
1 Computer-Systeme – WS 12/13- Teil 5/CPU 05.11.2012 1 Computer-Systeme Teil 5: Central Processing Unit (CPU) Computer-Systeme – WS 12/13 - Teil 5/CPU 2 Literatur Hübscher, Heinrich et al.: IT-Handbuch, IT-System- elektroniker/-in, Fachinformatiker/-in. Westermann, 2. Auflage, 2001, S.104-109 [5-3] Engelmann, Lutz (Hrsg.): Abitur Informatik – Basiswissen Schule. Duden-Verlag, 2003, S.43-47, 214-224, 239-242 [5-2] Bauer, F.L.: Wer erfand den von Neumann-Rechner? Informatik Spektrum, Heft 2, April, 21:84-89 (1998) [5-1] Der in dieser Einheit vorgestellte Simulator kann von http://www.viktorianer.de/info/info-mops.html herunter geladen werden. Es fehlt dann noch der Python-Interpreter, der von http://www.activestate.com/activepython herunter geladen werden kann.

Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

1

Computer-Systeme – WS 12/13- Teil 5/CPU 05.11.2012 1

Computer-Systeme

Teil 5: Central Processing Unit (CPU)

Computer-Systeme – WS 12/13 - Teil 5/CPU 2

Literatur

Hübscher, Heinrich et al.: IT-Handbuch, IT-System-elektroniker/-in, Fachinformatiker/-in. Westermann, 2. Auflage, 2001, S.104-109

[5-3]

Engelmann, Lutz (Hrsg.): Abitur Informatik – Basiswissen Schule. Duden-Verlag, 2003, S.43-47, 214-224, 239-242

[5-2]

Bauer, F.L.: Wer erfand den von Neumann-Rechner? Informatik Spektrum, Heft 2, April, 21:84-89 (1998)

[5-1]

Der in dieser Einheit vorgestellte Simulator kann vonhttp://www.viktorianer.de/info/info-mops.html

herunter geladen werden.

Es fehlt dann noch der Python-Interpreter, der von http://www.activestate.com/activepython

herunter geladen werden kann.

Page 2: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

2

Computer-Systeme – WS 12/13 - Teil 5/CPU 3

Übersicht

• Die Idee der Programme• Princeton-Architektur (von Neumann-Rechner)• Aufbau der CPU• MOPS• Allgemeines Registermodell• Assembler• Compiler• Linker

Computer-Systeme – WS 12/13 - Teil 5/CPU 4

Die einzelnen Ebenen

Page 3: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

3

Computer-Systeme – WS 12/13 - Teil 5/CPU 5

Programmsteuerung I

• Damit Programme ausgeführt werden können, muss es möglich sein, unterschiedliche Funktionen in Abhängigkeit von Daten, einem Programm, auszuführen.

• Was ausgeführt werden soll, wird durch Steuerleitungen bestimmt.

• Die Steuerleitungen werden aus RAM-Speicherzellen bestimmt. Damit bestimmt der Inhalt des RAM, was gemacht werden soll.

• Dieser Inhalt wird Befehl genannt.

Computer-Systeme – WS 12/13 - Teil 5/CPU 6

Programmsteuerung II

Resultat= f(x1,x2,S)

Es sollen zwei Variablen wahlweisemit AND (Fa) oder mit OR (Fb) verknüpft werden

S = Steuerleitung1 -> OR-Verknüpfung0 -> AND-Verknüpfung

x1x2

S

& &

&Fa Fb

≥1

"Gatter" (Tore)

≥1

Page 4: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

4

Computer-Systeme – WS 12/13 - Teil 5/CPU 7

Bemerkungen

• Die beiden UND-Gatter, die mit "Gatter" bezeichnet sind, sind im wörtlichen Sinne Tore, die den Datenfluss - hier bestehend aus 1 bit - in Abhängigkeit von der Steuerleitung S stoppen oder durchlassen.

• Dass eine der beiden Funktionen "umsonst" gearbeitet hat, stört nicht weiter, da grundsätzlich alles parallel arbeitet.

Computer-Systeme – WS 12/13 - Teil 5/CPU 8

Programmsteuerung III

• Die zweite Realisierungsidee besteht darin, den Datenfluss der Operanden über "Gatter" zu den gewünschten Schaltnetzen zu realisieren, wobei die anderen Schaltnetze mit solchen Werten versehen werden, dass sie "neutrale" Werte liefern, d.h. bei OR ein False.

Page 5: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

5

Computer-Systeme – WS 12/13 - Teil 5/CPU 9

Programmsteuerung IV

Resultat= f(x1,x2,S)

Es sollen zwei Variablen wahlweisemit AND (Fa) oder mit OR (Fb) verknüpft werden

x1

x2

S

& & & &

&Fa Fb

≥1

≥1

S = Steuerleitung1 -> OR-Verknüpfung0 -> AND-Verknüpfung

Computer-Systeme – WS 12/13 - Teil 5/CPU 10

Central Processing Unit (CPU)

• Eine CPU ist eine Schaltung, die verschiedene Funktionen durch ein- und ausschaltbare Datenflüsse miteinander verbindet.

• Die Datenleitungen sind ähnlich zu Gleisen bei einer Eisenbahn samt Weichen und Zusammenführungen.

• CPU = Central Processing Unit = Teil eines Computers, der Operationen/Befehle, die aus dem RAM kommen, ausführt.

• Operation = Befehl = besondere Art der Abfrage und Änderung von Speicherinhalten in RAM und CPU (Register)

• Bedeutung einer Operation = Semantik = Art der Änderung von Speicherinhalten in RAM und CPU

Page 6: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

6

Computer-Systeme – WS 12/13 - Teil 5/CPU 11

Aufbau von Befehlen I

• Jeder Befehl hat eine Codierung der Operation: Opcode• In Abhängigkeit von der Art der Operation hat ein Befehl

keinen bis mehrere Operanden.• Da diese Operanden fast immer Adressen beinhalten,

werden die Operanden auch „Adressen“ genannt (Umgangssprache), was eigentlich falsch ist.

• Der Operand kann eine Adresse, aber auch einen festen Wert beinhalten.

• Opcode = Operation Code = Bitkombination, die angibt, was geschehen sollZ.B. Addition oder Division

Computer-Systeme – WS 12/13 - Teil 5/CPU 12

Aufbau von Befehlen II

Prinzipieller Aufbau eines Befehls:Operation: Was soll geschehen?Operanden: Mit was soll dies erfolgen?

OperandenOperation

Operation

Operation OP1

Operation OP1 OP2

Operation OP1 OP2 OP3

0-Address-Befehl

1-Address-Befehl

2-Address-Befehl

3-Address-Befehl

In der Praxis kommen nur 0- bis 3-Adress-Befehle vor,bei Mikroprozessoren eher 0- bis 2-Adress-Befehle.

Page 7: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

7

Computer-Systeme – WS 12/13 - Teil 5/CPU 13

Der Computer Maxi

Im folgenden wird schrittweise ein kleiner Computeraufgebaut.Da dieser Computer so klein ist, wird er Maxi genannt.

Computer-Systeme – WS 12/13 - Teil 5/CPU 14

Vorbereitung - Datenflüsse

&

&

A

S

B

CA

B

C

S

In Abhängigkeit von der Steuerleitung S wird entweder A oder Bauf den Ausgang C geleitet – also eine echte Weiche.

In der Praxis wird (fast) immer mit mehreren Leitungen parallelgearbeitet, teilweise bis zu 32 Leitungen

Page 8: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

8

Computer-Systeme – WS 12/13 - Teil 5/CPU 15

Computer Maxi I

Befehle

ld Value

IR = Instruction RegisterOPC = Operation Code, OpcodeAcc = AkkumulatorBei dieser Zeichnung sindviele Leitungen weggelassen worden,z.B. die Steuerleitungen

Acc = Akkumulator = Register =Schneller Zwischenspeicher in der CPU

Computer-Systeme – WS 12/13 - Teil 5/CPU 16

Computer Maxi II

Befehle

ld Valueld Adrst Adr

Laden und Speichern des Akkumulators gehen nun.

Page 9: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

9

Computer-Systeme – WS 12/13 - Teil 5/CPU 17

Computer Maxi III

Befehle

ld Valueld Adrst Adradd Adrsub Adrmul Adrdiv Adrmod Adr

Über den Eingang Mode wird die Art der Operation bestimmt.Nun kann Maxi sogar rechnen.

Computer-Systeme – WS 12/13 - Teil 5/CPU 18

Computer Maxi IV

Befehle

…add Valuesub Valuemul Valuediv Valuemod Valuecmp Valuecmp Adr

Der Compare-Befehl setzt einen kleinen Speicher CC auf das Ergebnisdes Vergleichs (CC = Condition Code).

Page 10: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

10

Computer-Systeme – WS 12/13 - Teil 5/CPU 19

Computer Maxi V

Befehle

…jmp Valuejgt Valuejlt Valuejeq Value

Nun kommt der Aspekt des Ortes derBefehle hinzu…

Computer-Systeme – WS 12/13 - Teil 5/CPU 20

Programm Counter PC

• PC = Program Counter enthält die Adresse der aktuellen Instruktion

• Um auf die nächste Instruktion zu zeigen, muss dieses Register um 2 Byte (bei Befehlen mit der Länge 2 Byte) inkrementiert werden (Operation INC).

• Dies darf nicht den Inhalt des Accumulators Acc zerstören.• Manchmal heißt der PC auch IP:

IP = Instruction Pointer(ein besserer Name, der sich nicht durchgesetzt hat)

• SR = Status Register enthält Resultate der letzten Operation – hier stehen die CC-Werte drin

Page 11: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

11

Computer-Systeme – WS 12/13 - Teil 5/CPU 21

Phasen der Arbeit

• Ausführungszyklus eines Interpreters(fetch decode execute cycle):

1. Holen der aktuellen Instruktion2. Decodieren der Instruktion3. Holen aller Operanden4. Ausführen der Instruktion5. Speichern der Ergebnisse6. Bestimmen der Adresse der nächsten Instruktion7. Weiter mit 1. Schritt

• Interpreter = Programm oder Hardware, was die Semantik von Befehlen realisiert.Semantik sind hier alle definierten Effekte (Wirkungen) von Befehlen.Effekte könnten sein: Variable auf -3 setzen, zwei Zahlen addieren und das Ergebnis schreiben, etc.

Computer-Systeme – WS 12/13 - Teil 5/CPU 22

Sprung-Instruktionen

• Ein Sprung wird durch Setzen des PC-Registers auf einen Wert in der Instruktion realisiert.Dies ist ein unbedingter Sprung, da er in jedem Fall durchgeführt wird.

• Eine Abfrage hat bei dieser CPU immer zwei Teile:– Vergleichsoperation cmp mit Setzen der CC-Bits– Abfrage der CC-Bits mit einer bedingte Sprunginstruktion:

jlt = jump (if) less thanjgt = jump (if) less thanjeq = jump (if) equal

Page 12: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

12

Computer-Systeme – WS 12/13 - Teil 5/CPU 23

Computer Maxi VI – Input/Output

Befehle

…out Valueout Adrin Adr

Das waren die Instruktionen…

Computer-Systeme – WS 12/13 - Teil 5/CPU 24

Mikroprogramme

Befehl: ld adr (Load von Adresse)IR:Adresse RAM:AdresseModus:= ReadRAM ACC

Befehl: add adr (add mit Adresse)IR:Adresse RAM:AdresseModus:= ReadRAM AddiererACC AddiererAddierer ACC

Befehl: st adr (store an Adresse)IR:Adresse RAM:AdresseModus:= WriteACC RAM

Page 13: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

13

Computer-Systeme – WS 12/13 - Teil 5/CPU 25

Das ganze sieht etwas unübersichtlich aus I

Computer-Systeme – WS 12/13 - Teil 5/CPU 26

Das ganze sieht etwas unübersichtlich aus II

Page 14: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

14

Computer-Systeme – WS 12/13 - Teil 5/CPU 27

von-Neumann-Architektur – anders gezeichnet

Ein-/Ausgabe-werk

ArbeitsspeicherDaten

Instruktionen

Leitwerk(Steuerwerk)

Rechenwerk

Steuerung

CPU

Bus

RAM I/O

Computer-Systeme – WS 12/13 - Teil 5/CPU 28

Grundsätzliche Rechnertypen

Leitwerk(Steuerwerk)

RechenwerkEin-/Ausgabe-

werkArbeitsspeicher

Daten

ArbeitsspeicherInstruktionen

Adressen

Daten

Adressen

Befehle

Daten

Steuerung

Harvard-Architektur

Princeton-Architektur (von Neumann)

Leitwerk(Steuerwerk)

RechenwerkEin-/Ausgabe-

werkArbeitsspeicher

DatenInstruktionen

Daten

Adressen

Befehle

Daten

Steuerung

Page 15: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

15

Computer-Systeme – WS 12/13 - Teil 5/CPU 29

Begriffe

• CPU = Central Processing Unit = Rechenwerk mit Registern und Leitwerk

• Bus = Universeller meist bidirektionaler Kommunikationsweg für Befehle und Daten

• Arbeitsspeicher (RAM) enthält Code und Daten.• Ein-/Ausgabewerk besteht aus verschiedenen Schnittstellen

zu (externen) peripheren Geräten.• Register = Schneller Speicher innerhalb der CPU als

Speicher für Operanden für Operationen

Computer-Systeme – WS 12/13 - Teil 5/CPU 30

Vorteile und Nachteile der Princeton-Architektur

• Vorteile– Universell und flexibel– Minimalität der Hardware, optimale Nutzung

• Nachteile– Bus als zentraler Kommunikationsweg ist Nadelöhr für alle

Daten

• Viele Rechner, insbesondere PCs haben nicht die reine von-Neumann-Architektur, sondern eine Mischung

Page 16: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

16

Computer-Systeme – WS 12/13 - Teil 5/CPU 31

Simulation mit dem MOPS

Computer-Systeme – WS 12/13 - Teil 5/CPU 32

Bemerkungen

• Der RAM ist sehr klein: 64 Worte.• Jede Instruktion umfasst 1 Wort (2 Byte).• Die ersten 64 Worte sind für das Programm reserviert.• Die Speicherzellen 64 bis 71 (symbolisch a bis h) sind die

Speicherzellen für Variablen.

Page 17: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

17

Computer-Systeme – WS 12/13 - Teil 5/CPU 33

Die Befehle des MOPS I

Multipliziere den Akkumulator mit dem Wert an Adresse adrmul adr

Multipliziere den Akkumulator mit dem Wert valmul val

Subtrahiere vom Akkumulator den Wert an Adresse adrsub adr

Subtrahiere vom Akkumulator den Wert valsub val

Addiere zum Akkumulator den Wert an Adresse adradd adr

Addiere zum Akkumulator den Wert valadd val

Gib den Wert val ausout valGib den Wert an Adresse adr ausout adr

Lese einen Wert und speichere ihn an Adresse adrin adrSpeichere den Wert des Akkumulators in den RAM an Adresse adrst adr

Lade den Wert val in den Akkumulatorld valLade den Wert der Speicherzelle von Adress adr in den Akkumulatorld adr

Nach diesem Schema add arbeiten die Instruktionen sub, mul, div und mod

Computer-Systeme – WS 12/13 - Teil 5/CPU 34

Die Befehle des MOPS II

Rest der Division Akkumulator durch den Wert valmod valRest der Division Akkumulator durch den Wert an Adresse adrmod adr

Dividiere den Akkumulator durch den Wert valdiv val

Dividiere den Akkumulator durch den Wert an Adresse adrdiv adr

Springe an Adresse adr falls vorher cmp mit lequaljeq adr

Springe an Adresse adr falls vorher cmp mit greater thanjgt adr

Springe an Adresse adr falls vorher cmp mit less thanjlt adr

Springe an Adresse adrjmp adr

Vergleiche den Akkumulator mit dem Wert valcmp val

Vergleiche den Akkumulator mit dem Wert an Adresse adrcmp adr

Page 18: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

18

Computer-Systeme – WS 12/13 - Teil 5/CPU 35

Das erste Programm I

Computer-Systeme – WS 12/13 - Teil 5/CPU 36

Das erste Programm II

Das schauen wir uns mal an….

Page 19: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

19

Computer-Systeme – WS 12/13 - Teil 5/CPU 37

Ein unbekanntes Programm I

Definition eines Labels (Markierung)

Benutzung eines Labels

Benutzung des Labels „fertig“

Definition des Labels „fertig“

Computer-Systeme – WS 12/13 - Teil 5/CPU 38

Ein unbekanntes Programm II

Das schauen wir uns mal an….

Page 20: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

20

Computer-Systeme – WS 12/13 - Teil 5/CPU 39

Ein unbekanntes Programm III

Initialisierung

Ausgabe desErgebnisses

Abfrage einerBedingung

Computer-Systeme – WS 12/13 - Teil 5/CPU 40

Ein unbekanntes Programm IV

$64:= read();$65:= read();$66:= 0;WHILE $64>=0 DO

$66:= $66+$65;$64:= $64-1;

ODoutput $66;

A:= read();B:= read();C:= 0;WHILE $64>=0 DO

C:= C+B;A:= A-1;

ODoutput C

Das Ganze noch einmal in Freistil-Notation, damit es etwas klarer wird.Also, was macht das Programm?

Page 21: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

21

Computer-Systeme – WS 12/13 - Teil 5/CPU 41

Arten von Operationen I

• Transfer-Operationen– Kopieren in Register – Speichern in RAM – Kopieren innerhalb des RAM oder zwischen Registern

• Arithmetische Operationen– 1-, 2- oder 3-Address-Operationen– Addition, Subtraktion, Multiplikation, Division– (Vorzeichenbehaftete) Integer, Float

• Logische Operationen– UND-, ODER- und NEGATION-Operation– (Vorzeichenbehaftetes) Schieben von Bits (SHIFT)

Computer-Systeme – WS 12/13 - Teil 5/CPU 42

Arten von Operationen II

• Kontrollflussoperationen– Unbedingte Sprünge– Bedingte Sprünge– Sprung zu Subroutinen und zurück

• Sonderoperationen– RESET-Operation– HALT-Operationen

Page 22: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

22

Computer-Systeme – WS 12/13 - Teil 5/CPU 43

Modell der CPU und Arbeitsspeicher I

PC

SR

Daten-Register

32 bit 32 bit

Address-Register

32 bit

PC = Program CounterSR = Status Register

32-bit-CPUModell der Hardware

Computer-Systeme – WS 12/13 - Teil 5/CPU 44

Register der CPU

• Typische Register sind: PC, SR, Daten- und Adressregister• PC = Program Counter enthält die Adresse der nächsten

Instruktion• SR = Status Register enthält Resultate der letzten

Instruktion sowie globale Zustände, wie z.B. Privilegien• Datenregister: Universell verwendbare Register für

Zwischenergebnisse• Adressregister: Register für Adressen des Arbeitsspeichers,

teilweise mit reservierter Bedeutung

• Adresse = Nummer (Name) der Speicherzelle im RAM

Page 23: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

23

Computer-Systeme – WS 12/13 - Teil 5/CPU 45

Status-Register (PS)

Arithmetischer ÜberlaufV

NegativN

Zero, 0Z

Carry, ÜberlaufC

BedeutungName

N V CZ

Status-Register mit denCondition Code Bits

Das Status-Register (PS) hat intern 4 Bits (Condition Codes):

Computer-Systeme – WS 12/13 - Teil 5/CPU 46

Beispiel: Motorola 68000

Daten-register

32 bit

D0

D1

D2

D3

D4

D5D6

D7

A0

A1

A2

A3

A4

A5A6

A7A7

Adress-register

User StackKernel Stack

PC

SRSystembyte Userbyte

T S I SystembyteI I

Interrupt-Mask

Supervisor State

Trace Mode

X N Z UserbyteV C

ConditionCodes

Extend

Negativ

Zero

Overflow

Carry

Page 24: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

24

Computer-Systeme – WS 12/13 - Teil 5/CPU 47

Beispiel: Intel x86 - Intel Architektur (Auszug)

EAXAH ALAX

16 bit 16 bit

EBXBH BLBX

ECXCH CLCX

EDXDH DLDX

ESISI

EDIDI

EBPBP

ESPSP

CS

16 bit

SS

DS

ES

FS

GS

Code-Segment

Datensegmente

Stack-Segment

FLAGS

IP (PC)

EFLAGS

Hinzu kommen noch Gleitkomma-Register (5), MMX-Register (8) und XMM-Register (8)

Computer-Systeme – WS 12/13 - Teil 5/CPU 48

Modell der CPU und Arbeitsspeicher II

• Byte = Kleinste adressierbare Speicherzelle• Wort = 2 nebeneinander liegende Bytes (2 Bytes)• Long = 2 nebeneinander liegende Worte (4 Bytes)

RAM-Adressen

ByteAdresse einesWortes

Adresse + 0Adresse + 1

Byte

...... Byte als kleinste und homogen überden ganzen Speicher gehende Adres-sierungseinheit

0

max-1

246

8

max

Modell der Hardware

Page 25: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

25

Computer-Systeme – WS 12/13 - Teil 5/CPU 49

Die einzelnen Ebenen

Computer-Systeme – WS 12/13 - Teil 5/CPU 50

Assembler I

• Assembler = Übersetzer für Programme in einer symbolischen Maschinensprache

• Die Sprache Assembler ist für jeden CPU-Typ anders und spiegelt die Eigenarten der CPU-Architektur wieder.

• Zur Assembler-Sprache gehören– Befehle (Instruktionen) der CPU– Makros als Zusammenfassungen mehrerer Befehle– Anweisungen zur Reservierung von Speicherplatz– Anweisungen zur Belegung von Speicherplatz

• Der Assembler übersetzt das Assembler-Programm in ein maschinen-codiertes Format, dem Objektformat. Diese Dateien heißen daher Objektdateien.

Page 26: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

26

Computer-Systeme – WS 12/13 - Teil 5/CPU 51

Assembler II – Fiktives Beispiel

Objekt-Datei

34A3 56EE67A2 10007F23 12000124 230066A3 56EE

......

[Alle diese Darstellungen sind fiktiv und zeigen nur das Prinzip]

Assembler

Label: LOAD R3,@56EE Register R3 = Inhalt von 56EE

LOAD R2,#1000 Register R2 = 0x1000

ADD R2,R3 Register R2 = R2 + R3

SUB R2,R4 Register R2 = R2 - R4

STORE R3,@56EE Inhalt von 56EE = Register R3

......

Übersetzung

Spalte zurDefinitionvon Sprung-marken

Befehle mitden Para-metern

Kommentar

Computer-Systeme – WS 12/13 - Teil 5/CPU 52

Assembler III

• Die Assemblersprachen sind in der Regel spalten-orientiert, d.h. die Zeilen haben ein festes Format, das einzuhalten ist

• Ein wichtiges Charakteristikum eines Assemblers ist, dass die Assembler-Befehle fast immer 1:1 zu Maschinenbefehlen umgesetzt werden (Ausnahme: Verwendung von Makros).

• Sprungmarken = Label = Namen für Speicherstellen (symbolische Adressen, Namen) von bestimmten Instruktionen, z. B. Beginn einer Subroutine

• Das Programmieren in Assembler ist sehr mühselig, da:– es viel Zeit kostet,– viele Fehler gemacht werden können.

• Aber: In Assembler sind die effizientesten Programme schreibbar

Page 27: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

27

Computer-Systeme – WS 12/13 - Teil 5/CPU 53

Die einzelnen Ebenen

Computer-Systeme – WS 12/13 - Teil 5/CPU 54

Compiler

• Höhere Programmiersprachen, wie z. B. C oder Java, werden durch Compiler in Assemblersprache übersetzt.

• Compiler = Übersetzer für Programme in einer höheren Programmiersprache, die sich dadurch auszeichnet, dass ein Statement ("Befehl") dieser Sprache in mehrere Befehle in der Assemblersprache übersetzt werden muss.

i= j + 1;LOAD R3,@56EE R3 = Inhalt von jADD R3,#0001 R3 = R3 + 1STORE R3,@56FF i = R3

Hinweis: Es gibt Compiler, die direkt in die Objektsprache übersetzen

Page 28: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

28

Computer-Systeme – WS 12/13 - Teil 5/CPU 55

Phasen der Übersetzung im Überblick

Linken

Codegenerierung

Optimierung

Lexikalische Analyse (Scanner)

Compiler

Linker

Betriebssystem-Lader

Module alsObject-Files

Object-File

Prozess-Image

Syntaktische Analyse (Parser)

Laden

Ausführung

Compiler

Compiler

CompilerAssembler

Computer-Systeme – WS 12/13 - Teil 5/CPU 56

Erläuterungen

• Das Übersetzen erfolgt in mehreren Durchläufen (Pass), in denen das gesamte Programm vollständig gelesen und interpretiert wird.

• Nach jedem Durchlauf wird das Programm in überarbeiteter Form neu in einer speziellen Datei angelegt; diese wird bei dem nächsten Durchlauf benutzt, so dass beginnend vom ursprünglichen Programm über mehrere Dateien am Ende das Maschinenprogramm entsteht.

• Die Steuerung der Durchläufe übernimmt ein spezielles Hauptprogramm.

• Bei Compilern sind 4 bis 5 Durchläufe üblich, es können auch erheblich mehr sein, z. B. PL/1 hatte bis zu 60 Durchläufe.

Page 29: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

29

Computer-Systeme – WS 12/13 - Teil 5/CPU 57

Durchläufe I

1. Durchlauf: MakroexpansionEs werden die Makrodefinitionen (C hat die Möglichkeit von Makros, in Programmiersprachen ohne Makros wird dieser Schritt ausgelassen) vermerkt und alle Makro-Aufrufe mit den Makrokörpern samt Parametern ersetzt.

2. Durchlauf: Syntaktische PrüfungEntspricht der entstandene Text den Regeln der Sprache? Z.B. Hat jede öffnende Klammer (rund oder geschweift) eine korrespondierende schließende? Wird jedes Statement durch ein Semikolon abgeschlossen?

3. Durchlauf: Semantische PrüfungSind alle Variablen und Funktionen deklariert? Werden sie übereinstimmend damit benutzt?

Computer-Systeme – WS 12/13 - Teil 5/CPU 58

Durchläufe II

4. Durchlauf: Optimierung (optional)Können Deklarationen weggelassen werden, da die Variablen nicht benutzt werden? Lassen sich Schleifen verkürzen?

5. Durchlauf: Erzeugung von Assembler-CodeFür jedes Statement wird der entsprechende Assemblercode generiert, so dass das generierte Programm das tut, was es laut Sprachdefinition tun sollte.

6. Durchlauf: AssemblierenDer Compiler ist jetzt eigentlich fertig; es wird ein Assembler gestartet, der das generierte Assembler-Programm in eine Objektdatei übersetzt.

Page 30: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

30

Computer-Systeme – WS 12/13 - Teil 5/CPU 59

Die einzelnen Ebenen

Computer-Systeme – WS 12/13 - Teil 5/CPU 60

Durchläufe III

• Die generierte Objektdatei ist aus folgenden Gründen nicht ausführbar:– Es fehlen aufgerufene und nicht programmierte Routinen, z. B.

System.out.println() oder printf() etc.– Globale Variablen haben noch keine feste Position (Adresse),

sie können an verschiedenen Stellen reserviert werden.

• Der Binder (Linker, Linkage Editor) setzt das endgültige Programm unter Verwendung von Bibliotheken zusammen und positioniert die globalen Variablen. Erst dessen Ergebnis kann ausgeführt werden.

Page 31: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

31

Computer-Systeme – WS 12/13 - Teil 5/CPU 61

Durchläufe IV

7. Durchlauf: BindenDer Binder durchsucht Objektbibliotheken, um ein unvollständiges Programm mit den nicht selbst programmierten, aber aufgerufenen Subroutinen zu ergänzen. Am Ende ist eine maschinen-ausführbare Datei entstanden.

Jetzt erst kann die Datei mit Maschinencode vom Betriebssystemin den RAM geladen und ausgeführt werden.

Java wird meistens etwas anders realisiert: es wird nicht bis zumMaschinencode übersetzt, sondern in eine Zwischensprache:Java-Byte-Code.

Computer-Systeme – WS 12/13 - Teil 5/CPU 62

Begriffe

• Bibliothek = Archiv = Library = Datei mit mehreren benannten Informationsblöcken einschließlich eines Verzeichnisses; jeder Block kann eine eigenständige Datei aufnehmen, z. B. zip-Archive

• Objektbibliothek = Bibliothek für Objektdateien• Binärprogramm = Aus vielen Objektdateien bzw.

Bibliotheken zusammengesetztes ausführbares Programm

Page 32: Computer-Systeme Teil 5: Central Processing Unit (CPU)wi.f4.htw-berlin.de/users/messer/LV/WI-GWI-RABS/Folien/CS-05/05-CS-CPU-2.pdf · Central Processing Unit (CPU) • Eine CPU ist

32

Computer-Systeme – WS 12/13 - Teil 5/CPU 63

Nach dieser Anstrengung etwas Entspannung....