หน่วยประมวลผลกลาง (Central Processing Unit : CPU) · Web view... ซ งเก ยวข อง ก บการ ร บข อม ลนำเข
Computer-Systeme Teil 5: Central Processing Unit...
Transcript of Computer-Systeme Teil 5: Central Processing Unit...
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.
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
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
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.
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
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.
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
≥
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.
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).
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
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
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
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
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
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
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.
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
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….
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….
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?
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
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
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
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
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.
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
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
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.
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.
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.
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
32
Computer-Systeme – WS 12/13 - Teil 5/CPU 63
Nach dieser Anstrengung etwas Entspannung....