Computer-Systeme Teil 5: Central Processing Unit (CPU)

Größe: px
Ab Seite anzeigen:

Download "Computer-Systeme Teil 5: Central Processing Unit (CPU)"

Transkript

1 Computer-Systeme Teil 5: Central Processing Unit (CPU) Computer-Systeme WS 12/13- Teil 5/CPU

2 Literatur [5-1] [5-2] [5-3] Bauer, F.L.: Wer erfand den von Neumann-Rechner? Informatik Spektrum, Heft 2, April, 21:84-89 (1998) Engelmann, Lutz (Hrsg.): Abitur Informatik Basiswissen Schule. Duden-Verlag, 2003, S.43-47, , Hübscher, Heinrich et al.: IT-Handbuch, IT-Systemelektroniker/-in, Fachinformatiker/-in. Westermann, 2. Auflage, 2001, S Der in dieser Einheit vorgestellte Simulator kann von herunter geladen werden. Es fehlt dann noch der Python-Interpreter, der von herunter geladen werden kann. Computer-Systeme WS 12/13 - Teil 5/CPU 2

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 3

4 Die einzelnen Ebenen Computer-Systeme WS 12/13 - Teil 5/CPU 4

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 5

6 Programmsteuerung II 1 Resultat= f(x 1,x 2,S) & & "Gatter" (Tore) S F a & F b 1 S = Steuerleitung 1 -> OR-Verknüpfung 0 -> AND-Verknüpfung x 1 x 2 Es sollen zwei Variablen wahlweise mit AND (F a )odermitor(f b )verknüpftwerden Computer-Systeme WS 12/13 - Teil 5/CPU 6

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 7

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. Computer-Systeme WS 12/13 - Teil 5/CPU 8

9 Programmsteuerung IV 1 Resultat= f(x 1,x 2,S) F a & F b 1 & & & & x 1 x 2 S S = Steuerleitung 1 -> OR-Verknüpfung 0 -> AND-Verknüpfung Es sollen zwei Variablen wahlweise mit AND (F a )odermitor(f b )verknüpftwerden Computer-Systeme WS 12/13 - Teil 5/CPU 9

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 Computer-Systeme WS 12/13 - Teil 5/CPU 10

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 soll Z.B. Addition oder Division Computer-Systeme WS 12/13 - Teil 5/CPU 11

12 Aufbau von Befehlen II Operation Operanden Prinzipieller Aufbau eines Befehls: Operation: Was soll geschehen? Operanden: Mit was soll dies erfolgen? Operation 0-Address-Befehl Operation OP 1 1-Address-Befehl Operation OP 1 OP 2 2-Address-Befehl Operation OP 1 OP 2 OP 3 3-Address-Befehl In der Praxis kommen nur 0- bis 3-Adress-Befehle vor, bei Mikroprozessoren eher 0- bis 2-Adress-Befehle. Computer-Systeme WS 12/13 - Teil 5/CPU 12

13 Der Computer Maxi Im folgenden wird schrittweise ein kleiner Computer aufgebaut. Da dieser Computer so klein ist, wird er Maxi genannt. Computer-Systeme WS 12/13 - Teil 5/CPU 13

14 Vorbereitung - Datenflüsse A B & & C A B C S S In Abhängigkeit von der Steuerleitung S wird entweder A oder B auf den Ausgang C geleitet also eine echte Weiche. In der Praxis wird (fast) immer mit mehreren Leitungen parallel gearbeitet, teilweise bis zu 32 Leitungen Computer-Systeme WS 12/13 - Teil 5/CPU 14

15 Computer Maxi I Befehle ld Value Acc = Akkumulator = Register = Schneller Zwischenspeicher in der CPU IR = Instruction Register OPC = Operation Code, Opcode Acc = Akkumulator Bei dieser Zeichnung sind viele Leitungen weggelassen worden, z.b. die Steuerleitungen Computer-Systeme WS 12/13 - Teil 5/CPU 15

16 Computer Maxi II Befehle ld Value ld Adr st Adr Laden und Speichern des Akkumulators gehen nun. Computer-Systeme WS 12/13 - Teil 5/CPU 16

17 Computer Maxi III Befehle ld Value ld Adr st Adr add Adr sub Adr mul Adr div Adr mod Adr Über den Eingang Mode wird die Art der Operation bestimmt. Nun kann Maxi sogar rechnen. Computer-Systeme WS 12/13 - Teil 5/CPU 17

18 Computer Maxi IV Befehle add Value sub Value mul Value div Value mod Value cmp Value cmp Adr Der Compare-Befehl setzt einen kleinen Speicher CC auf das Ergebnis des Vergleichs (CC = Condition Code). Computer-Systeme WS 12/13 - Teil 5/CPU 18

19 Computer Maxi V Befehle jmp Value jgt Value jlt Value jeq Value Nun kommt der Aspekt des Ortes der Befehle hinzu Computer-Systeme WS 12/13 - Teil 5/CPU 19

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 Computer-Systeme WS 12/13 - Teil 5/CPU 20

21 Phasen der Arbeit Ausführungszyklus eines Interpreters (fetch decode execute cycle): 1. Holen der aktuellen Instruktion 2. Decodieren der Instruktion 3. Holen aller Operanden 4. Ausführen der Instruktion 5. Speichern der Ergebnisse 6. Bestimmen der Adresse der nächsten Instruktion 7. 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 21

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 than jgt = jump (if) less than jeq = jump (if) equal Computer-Systeme WS 12/13 - Teil 5/CPU 22

23 Computer Maxi VI Input/Output Befehle out Value out Adr in Adr Das waren die Instruktionen Computer-Systeme WS 12/13 - Teil 5/CPU 23

24 Mikroprogramme Befehl: ld adr (Load von Adresse) IR:Adresse RAM:Adresse Modus:= Read RAM ACC Befehl: add adr (add mit Adresse) IR:Adresse RAM:Adresse Modus:= Read RAM Addierer ACC Addierer Addierer ACC Befehl: st adr (store an Adresse) IR:Adresse RAM:Adresse Modus:= Write ACC RAM Computer-Systeme WS 12/13 - Teil 5/CPU 24

25 Das ganze sieht etwas unübersichtlich aus I Computer-Systeme WS 12/13 - Teil 5/CPU 25

26 Das ganze sieht etwas unübersichtlich aus II Computer-Systeme WS 12/13 - Teil 5/CPU 26

27 von-neumann-architektur anders gezeichnet Rechenwerk Steuerung Leitwerk (Steuerwerk) CPU Arbeitsspeicher Daten Instruktionen RAM Ein-/Ausgabewerk I/O Bus Computer-Systeme WS 12/13 - Teil 5/CPU 27

28 Grundsätzliche Rechnertypen Harvard-Architektur Arbeitsspeicher Daten Adressen Daten Rechenwerk Daten Ein-/Ausgabewerk Arbeitsspeicher Instruktionen Adressen Befehle Steuerung Leitwerk (Steuerwerk) Princeton-Architektur (von Neumann) Arbeitsspeicher Daten Instruktionen Daten Adressen Befehle Rechenwerk Steuerung Leitwerk (Steuerwerk) Daten Ein-/Ausgabewerk Computer-Systeme WS 12/13 - Teil 5/CPU 28

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 29

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 Computer-Systeme WS 12/13 - Teil 5/CPU 30

31 Simulation mit dem MOPS Computer-Systeme WS 12/13 - Teil 5/CPU 31

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. Computer-Systeme WS 12/13 - Teil 5/CPU 32

33 Die Befehle des MOPS I ld adr ld val st adr in adr out adr out val add adr add val sub adr sub val mul adr mul val Lade den Wert der Speicherzelle von Adress adr in den Akkumulator Lade den Wert val in den Akkumulator Speichere den Wert des Akkumulators in den RAM an Adresse adr Lese einen Wert und speichere ihn an Adresse adr Gib den Wert an Adresse adr aus Gib den Wert val aus Addiere zum Akkumulator den Wert an Adresse adr Addiere zum Akkumulator den Wert val Subtrahiere vom Akkumulator den Wert an Adresse adr Subtrahiere vom Akkumulator den Wert val Multipliziere den Akkumulator mit dem Wert an Adresse adr Multipliziere den Akkumulator mit dem Wert val Nach diesem Schema add arbeiten die Instruktionen sub, mul, div und mod Computer-Systeme WS 12/13 - Teil 5/CPU 33

34 Die Befehle des MOPS II div adr div val mod adr mod val Dividiere den Akkumulator durch den Wert an Adresse adr Dividiere den Akkumulator durch den Wert val Rest der Division Akkumulator durch den Wert an Adresse adr Rest der Division Akkumulator durch den Wert val cmp adr cmp val jmp adr jlt adr jgt adr jeq adr Vergleiche den Akkumulator mit dem Wert an Adresse adr Vergleiche den Akkumulator mit dem Wert val Springe an Adresse adr Springe an Adresse adr falls vorher cmp mit less than Springe an Adresse adr falls vorher cmp mit greater than Springe an Adresse adr falls vorher cmp mit lequal Computer-Systeme WS 12/13 - Teil 5/CPU 34

35 Das erste Programm I Computer-Systeme WS 12/13 - Teil 5/CPU 35

36 Das erste Programm II Das schauen wir uns mal an. Computer-Systeme WS 12/13 - Teil 5/CPU 36

37 Ein unbekanntes Programm I Definition eines Labels (Markierung) Benutzung des Labels fertig Benutzung eines Labels Definition des Labels fertig Computer-Systeme WS 12/13 - Teil 5/CPU 37

38 Ein unbekanntes Programm II Das schauen wir uns mal an. Computer-Systeme WS 12/13 - Teil 5/CPU 38

39 Ein unbekanntes Programm III Initialisierung Abfrage einer Bedingung Ausgabe des Ergebnisses Computer-Systeme WS 12/13 - Teil 5/CPU 39

40 Ein unbekanntes Programm IV $64:= read(); $65:= read(); $66:= 0; WHILE $64>=0 DO $66:= $66+$65; $64:= $64-1; OD output $66; A:= read(); B:= read(); C:= 0; WHILE $64>=0 DO C:= C+B; A:= A-1; OD output C Das Ganze noch einmal in Freistil-Notation, damit es etwas klarer wird. Also, was macht das Programm? Computer-Systeme WS 12/13 - Teil 5/CPU 40

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 41

42 Arten von Operationen II Kontrollflussoperationen Unbedingte Sprünge Bedingte Sprünge Sprung zu Subroutinen und zurück Sonderoperationen RESET-Operation HALT-Operationen Computer-Systeme WS 12/13 - Teil 5/CPU 42

43 Modell der CPU und Arbeitsspeicher I PC SR 32 bit 32 bit Daten- Register PC = Program Counter SR = Status Register Address- Register 32 bit 32-bit-CPU Modell der Hardware Computer-Systeme WS 12/13 - Teil 5/CPU 43

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 Computer-Systeme WS 12/13 - Teil 5/CPU 44

45 Status-Register (PS) Das Status-Register (PS) hat intern 4 Bits (Condition Codes): Name C Z N V Bedeutung Carry, Überlauf Zero, 0 Negativ Arithmetischer Überlauf N Z V C Status-Register mit den Condition Code Bits Computer-Systeme WS 12/13 - Teil 5/CPU 45

46 Beispiel: Motorola bit Datenregister D0 D1 D2 Systembyte Userbyte SR PC D3 Adressregister D4 D5 D6 D7 A0 A1 A2 A3 T S I I I Systembyte Trace Mode Interrupt-Mask Supervisor State X N Z V C Userbyte Carry A4 Overflow User Stack Kernel Stack A5 A6 A7 A7 Condition Codes Zero Negativ Extend Computer-Systeme WS 12/13 - Teil 5/CPU 46

47 Beispiel: Intel x86 - Intel Architektur (Auszug) 16 bit 16 bit AX 16 bit AH BH BX CX AL BL EAX EBX CS SS DS Code-Segment Stack-Segment CH DH DX CL DL ECX EDX ES FS GS Datensegmente SI DI ESI EDI IP (PC) BP EBP FLAGS EFLAGS SP ESP Hinzu kommen noch Gleitkomma-Register (5), MMX-Register (8) und XMM-Register (8) Computer-Systeme WS 12/13 - Teil 5/CPU 47

48 Modell der CPU und Arbeitsspeicher II RAM-Adressen Adresse + 1 Byte Adresse + 0 Byte 0 2 Adresse eines Wortes max... max-1 Byte als kleinste und homogen über den ganzen Speicher gehende Adressierungseinheit Byte = Kleinste adressierbare Speicherzelle Wort = 2 nebeneinander liegende Bytes (2 Bytes) Long = 2 nebeneinander liegende Worte (4 Bytes) Modell der Hardware Computer-Systeme WS 12/13 - Teil 5/CPU 48

49 Die einzelnen Ebenen Computer-Systeme WS 12/13 - Teil 5/CPU 49

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. Computer-Systeme WS 12/13 - Teil 5/CPU 50

51 Assembler II Fiktives Beispiel Assembler Label: LOAD 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 Objekt-Datei 34A3 56EE 67A F A3 56EE... Spalte zur Definition von Sprungmarken Befehle mit den Parametern Kommentar [Alle diese Darstellungen sind fiktiv und zeigen nur das Prinzip] Computer-Systeme WS 12/13 - Teil 5/CPU 51

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 Computer-Systeme WS 12/13 - Teil 5/CPU 52

53 Die einzelnen Ebenen Computer-Systeme WS 12/13 - Teil 5/CPU 53

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 j ADD R3,#0001 R3 = R3 + 1 STORE R3,@56FF i = R3 Hinweis: Es gibt Compiler, die direkt in die Objektsprache übersetzen Computer-Systeme WS 12/13 - Teil 5/CPU 54

55 Phasen der Übersetzung im Überblick Lexikalische Analyse (Scanner) Compiler Syntaktische Analyse (Parser) Compiler Optimierung Compiler Module als Object-Files Object- File Prozess- Image Codegenerierung Linken Laden Ausführung Compiler Assembler Linker Betriebssystem-Lader Computer-Systeme WS 12/13 - Teil 5/CPU 55

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. Computer-Systeme WS 12/13 - Teil 5/CPU 56

57 Durchläufe I 1. Durchlauf: Makroexpansion Es 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üfung Entspricht 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üfung Sind alle Variablen und Funktionen deklariert? Werden sie übereinstimmend damit benutzt? Computer-Systeme WS 12/13 - Teil 5/CPU 57

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-Code Für jedes Statement wird der entsprechende Assemblercode generiert, so dass das generierte Programm das tut, was es laut Sprachdefinition tun sollte. 6. Durchlauf: Assemblieren Der Compiler ist jetzt eigentlich fertig; es wird ein Assembler gestartet, der das generierte Assembler- Programm in eine Objektdatei übersetzt. Computer-Systeme WS 12/13 - Teil 5/CPU 58

59 Die einzelnen Ebenen Computer-Systeme WS 12/13 - Teil 5/CPU 59

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. Computer-Systeme WS 12/13 - Teil 5/CPU 60

61 Durchläufe IV 7. Durchlauf: Binden Der 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 Betriebssystem in den RAM geladen und ausgeführt werden. Java wird meistens etwas anders realisiert: es wird nicht bis zum Maschinencode übersetzt, sondern in eine Zwischensprache: Java-Byte-Code. Computer-Systeme WS 12/13 - Teil 5/CPU 61

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 Computer-Systeme WS 12/13 - Teil 5/CPU 62

63 Nach dieser Anstrengung etwas Entspannung... Computer-Systeme WS 12/13 - Teil 5/CPU 63

Computer-Systeme. Teil 5: Central Processing Unit (CPU)

Computer-Systeme. Teil 5: Central Processing Unit (CPU) Computer-Systeme Teil 5: Central Processing Unit (CPU) Computer-Systeme WS 12/13- Teil 5/CPU 05.11.2012 1 Literatur [5-1] [5-2] [5-3] Bauer, F.L.: Wer erfand den von Neumann-Rechner? Informatik Spektrum,

Mehr

Betriebssysteme Teil 4: Übersetzung von C-Programmen

Betriebssysteme Teil 4: Übersetzung von C-Programmen Betriebssysteme Teil 4: Übersetzung von C-Programmen 18.10.13 1 Übersicht Übersetzungsprozess gcc(i) als Steuerprogramm Assembler Binder Hauptprogramme in C In dieser Einheit werden nur die Grundprinzipien

Mehr

Übersicht. Übersetzungsprozess gcc(i) als Steuerprogramm Assembler Binder Hauptprogramme in C

Übersicht. Übersetzungsprozess gcc(i) als Steuerprogramm Assembler Binder Hauptprogramme in C Übersicht Übersetzungsprozess gcc(i) als Steuerprogramm Assembler Binder Hauptprogramme in C In dieser Einheit werden nur die Grundprinzipien dargestellt, dies ist keine Beschreibung konkreter Formate

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

Von-Neumann-Architektur

Von-Neumann-Architektur Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..

Mehr

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis

Mehr

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 1 / 53 Inhaltsverzeichnis 1 Einführung 2 Assembler Syntax, Register und Flags 3 Hauptspeicher 4 Stack 5 Assemblerbefehle

Mehr

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Kap 4. 4 Die Mikroprogrammebene eines Rechners 4 Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten (Befehl holen, Befehl dekodieren, Operanden holen etc.).

Mehr

INFORMATIK Oberstufe. Funktionsweise eines Rechners

INFORMATIK Oberstufe. Funktionsweise eines Rechners INFORMATIK Oberstufe Funktionsweise eines Rechners Lehrplan Inf 12.3 (ca. 17 Std.): Grundlegende Kenntnisse über den Aufbau eines Rechners und seiner prinzipiellen Funktionsweise helfen den Schülern, den

Mehr

Assembler - Variablen

Assembler - Variablen Assembler - Variablen Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Variablen 1/30 2008-04-21 Variablen Variablen

Mehr

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit) Der Demo-Computer besitzt einen 4Bit-Mikroprozessor. Er kann entsprechend Wörter mit einer Breite von 4 Bits in einem Schritt verarbeiten. Die einzelnen Schritte der Abarbeitung werden durch Lampen visualisiert.

Mehr

Mikroprozessor als universeller digitaler Baustein

Mikroprozessor als universeller digitaler Baustein 2. Mikroprozessor 2.1 Allgemeines Mikroprozessor als universeller digitaler Baustein Die zunehmende Integrationsdichte von elektronischen Schaltkreisen führt zwangsläufige zur Entwicklung eines universellen

Mehr

Systeme 1: Architektur

Systeme 1: Architektur slide 1 Vorlesung Systeme 1: Architektur Prof. Dr. Ulrich Ultes-Nitsche Forschungsgruppe Departement für Informatik Universität Freiburg slide 2 Prüfung 18. Februar 2004 8h00-11h40 13h00-18h20 20 Minuten

Mehr

Der Toy Rechner Ein einfacher Mikrorechner

Der Toy Rechner Ein einfacher Mikrorechner Der Toy Rechner Ein einfacher Mikrorechner Dr. Gerald Heim Haid-und-Neu-Str. 10-14 76131 Karlsruhe 16. Mai 1995 Allgemeine Informationen 2 Quelle: Phil Kopmann, Microcoded versus Hard-Wired Logic, Byte

Mehr

Motivation und Überblick

Motivation und Überblick Motivation und Überblick Drei große Bereiche der Vorlesung: Darstellung von Zahlen in Rechnern Verarbeitung von Binärdaten auf der Ebene digitaler Schaltungen Programmierung auf Maschinenebene und relativ

Mehr

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009 Einführung Übungen zur Vorlesung Virtuelle Maschinen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SoSe 2009 Übungsaufgaben 1 Entwickeln

Mehr

Mikrocomputertechnik. Einadressmaschine

Mikrocomputertechnik. Einadressmaschine technik Einadressmaschine Vorlesung 2. Mikroprozessoren Einführung Entwicklungsgeschichte Mikroprozessor als universeller Baustein Struktur Architektur mit Akku ( Nerdi) FH Augsburg, Fakultät für Elektrotechnik

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner

C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner Von-Neumann-Rechner (John von Neumann : 1903-1957) C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner Quelle: http://www.cs.uakron.edu/~margush/465/01_intro.html Analytical Engine - Calculate

Mehr

Übung 1 - Betriebssysteme I

Übung 1 - Betriebssysteme I Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits

Mehr

Assembler - Adressierungsarten

Assembler - Adressierungsarten Assembler - Adressierungsarten Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Adressierungsarten 1/31 2008-04-01

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013. Vorlesung 9, Dienstag 18.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013. Vorlesung 9, Dienstag 18. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 9, Dienstag 18. Dezember 2012 (Performance Tuning, Profiling, Maschinencode) Prof. Dr.

Mehr

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems Mitglied der Zürcher Fachhochschule TIn 1: Lecture 4 Data transfer Feedback Laboratories Question: What is the IP? Why do we NEED an IP? Lecture 3: Lernziele Moving data, the why s and wherefores Moving

Mehr

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: 1 ADRESSIERUNG IN MMIX Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: no base address is close enough to the address A! relative address

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 3 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache Assembler Programmierung Motivation Informatik II SS 2004 Teil 4: Assembler Programmierung Was ist ein Programm? Eine Reihe von Befehlen, die der Ausführung einer Aufgabe dient Dazu wird das Programm sequentiell

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Das Prinzip an einem alltäglichen Beispiel

Das Prinzip an einem alltäglichen Beispiel 3.2 Pipelining Ziel: Performanzsteigerung é Prinzip der Fließbandverarbeitung é Probleme bei Fließbandverarbeitung BB TI I 3.2/1 Das Prinzip an einem alltäglichen Beispiel é Sie kommen aus dem Urlaub und

Mehr

L3. Datenmanipulation

L3. Datenmanipulation L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

3AA. Prof. Dr. Wolfgang P. Kowalk. Universität Oldenburg WS 2005/2006

3AA. Prof. Dr. Wolfgang P. Kowalk. Universität Oldenburg WS 2005/2006 3AA Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006 Version vom 24.10.2005 Übersicht Einführung in maschinennahe Programmierung Verständnis für grundlegende Vorgänge im Computer Jedes Programm

Mehr

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Compiler: Vom Code zum Maschinen-Code C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Zusammenhänge: C und Assembler Hochsprachen

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS

Mehr

Betriebssysteme Teil 6: Hardware-Schicht II

Betriebssysteme Teil 6: Hardware-Schicht II Betriebssysteme Teil 6: Hardware-Schicht II 13.11.15 1 Literatur [6-1] Engelmann, Lutz (Hrsg.): Abitur Informatik Basiswissen Schule. Duden-Verlag, 2003, S.43-53, 214-224, 239-242, S. 267-299,304-313 [6-2]

Mehr

1.7 Assembler Programmierung

1.7 Assembler Programmierung 1.7 Assembler Programmierung Die nach außen sichtbare Programmierschnittstelle eines Prozessors ist der Befehlscode. Dies ist eine binäre Dateninformation, die vom Prozessor Byte für Byte abgearbeitet

Mehr

Microcomputertechnik

Microcomputertechnik Microcomputertechnik mit Mikrocontrollern der Familie 8051 Bearbeitet von Bernd-Dieter Schaaf 2. Auflage 2002. Buch. 230 S. Hardcover ISBN 978 3 446 22089 8 Format (B x L): 16 x 22,7 cm Gewicht: 407 g

Mehr

68000 Assembler. WAS ist ein Assembler? Ein System, das den Programmierer hilft, eine maschinennahe Programmierung zu realisieren.

68000 Assembler. WAS ist ein Assembler? Ein System, das den Programmierer hilft, eine maschinennahe Programmierung zu realisieren. WAS ist ein Assembler? Ein System, das den Programmierer hilft, eine maschinennahe Programmierung zu realisieren. Ein Programm liegt der CPU in binärer Form vor und wird durch den Assembler in einer primitiven

Mehr

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel Prozessorarchitektur Kapitel - Wiederholung M. Schölzel Wiederholung Kombinatorische Logik: Ausgaben hängen funktional von den Eingaben ab. x x 2 x 3 z z = f (x,,x n ) z 2 z m = f m (x,,x n ) Sequentielle

Mehr

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:

Mehr

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University,

Mehr

Assembler-Programme. Systemprogrammierung (37-023) Elementare Komponenten eines Assembler-Programmes

Assembler-Programme. Systemprogrammierung (37-023) Elementare Komponenten eines Assembler-Programmes Systemprogrammierung (37-023) Assemblerprogrammierung Betriebssystemgrundlagen Maschinenmodelle Dozent: Prof. Thomas Stricker krankheitshalber vertreten durch: Felix Rauch WebSite: http://www.cs.inf.ethz.ch/37-023/

Mehr

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at 16.03.2011

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at 16.03.2011 Technische Universität Graz Institut tfür Angewandte Informationsverarbeitung und Kommunikationstechnologie Rechnerorganisation 2 TOY Karl C. Posch Karl.Posch@iaik.tugraz.at co1.ro_2003. 1 Ausblick. Erste

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

Mehr

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 9.1: Dinatos-Algorithmus-Analyse Die folgenden Verilog-Zeilen

Mehr

Teil VIII Von Neumann Rechner 1

Teil VIII Von Neumann Rechner 1 Teil VIII Von Neumann Rechner 1 Grundlegende Architektur Zentraleinheit: Central Processing Unit (CPU) Ausführen von Befehlen und Ablaufsteuerung Speicher: Memory Ablage von Daten und Programmen Read Only

Mehr

3.0 8051 Assembler und Hochsprachen

3.0 8051 Assembler und Hochsprachen 3.0 8051 Assembler und Hochsprachen Eine kurze Übersicht zum Ablauf einer Programmierung eines 8051 Mikrocontrollers. 3.1 Der 8051 Maschinencode Grundsätzlich akzeptiert ein 8051 Mikrocontroller als Befehle

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Computer-Architektur Ein Überblick

Computer-Architektur Ein Überblick Computer-Architektur Ein Überblick Johann Blieberger Institut für Rechnergestützte Automation Computer-Architektur Ein Überblick p.1/27 Computer-Aufbau: Motherboard Computer-Architektur Ein Überblick p.2/27

Mehr

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikrocomputertechnik Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikroprozessor-Achritekturen Folie 2 Mikroprozessor-Achritekturen Klassifizierung anhand Wortbreite CPU-Architektur und Busleitungen

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

Mehr

7 Ein einfacher CISC-Prozessor

7 Ein einfacher CISC-Prozessor 7 Ein einfacher CISC-Prozessor In diesem Kapitel wird ein einfacher Prozessor vorgestellt. Die Architektur, die wir implementieren, wurde von R. Bryant und D. O Hallaron entworfen und verwendet eine Untermenge

Mehr

Vorlesung Rechnerarchitektur. Einführung

Vorlesung Rechnerarchitektur. Einführung Vorlesung Rechnerarchitektur Einführung Themen der Vorlesung Die Vorlesung entwickelt an Hand von zwei Beispielen wichtige Prinzipien der Prozessorarchitektur und der Speicherarchitektur: MU0 Arm Speicher

Mehr

Einleitung Die Pins alphabetisch Kapitel 1 Programmierung des ATmega8 und des ATmega

Einleitung Die Pins alphabetisch Kapitel 1 Programmierung des ATmega8 und des ATmega Einleitung... 11 Die Pins alphabetisch.... 12 Kapitel 1 Programmierung des ATmega8 und des ATmega328.... 15 1.1 Was Sie auf den nächsten Seiten erwartet... 19 1.2 Was ist eine Micro Controller Unit (MCU)?....

Mehr

Daniel Betz Wintersemester 2011/12

Daniel Betz Wintersemester 2011/12 Daniel Betz Wintersemester 2011/12 Digitally signed by daniel.betz@daniel-betz.com Date: 2011.12.04 17:24:40 +01'00' Insgesamt 16 Register von je 16 Bit (=WORD) Breite Untere 8 Register auch als 2 Register

Mehr

Instruktionssatz-Architektur

Instruktionssatz-Architektur Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Übersicht 1 Einleitung 2 Bestandteile der ISA 3 CISC / RISC Übersicht 1 Einleitung 2 Bestandteile

Mehr

Philipp Grasl PROZESSOREN

Philipp Grasl PROZESSOREN 1 PROZESSOREN INHALTSVERZEICHNIS Definition/Verwendung Prozessor Historische Entwicklung Prozessor Aufbau Prozessor Funktionsweise Prozessor Steuerung/Maschinenbefehle Prozessorkern Prozessortakt 2 DEFINITION

Mehr

Lektion 3: Was ist und was kann ein Computer?

Lektion 3: Was ist und was kann ein Computer? Lektion 3: Was ist und was kann ein Computer? Helmar Burkhart Informatik burkhart@ifi.unibas.ch EINFÜHRUNG IN DIE INFORMATIK I 3-0 Übersicht Lektion 3 Hardware Software Aufbau eines Computers Rechnerkern

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE D - CA - IV - AA - 1 HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK Vorlesung 4 DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE Sommersemester 2003 Leitung:

Mehr

3 Rechnen und Schaltnetze

3 Rechnen und Schaltnetze 3 Rechnen und Schaltnetze Arithmetik, Logik, Register Taschenrechner rste Prozessoren (z.b. Intel 4004) waren für reine Rechenaufgaben ausgelegt 4 4-Bit Register 4-Bit Datenbus 4 Kbyte Speicher 60000 Befehle/s

Mehr

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

Mehr

Die Arithmetisch-Logische Einheit ALU 74181

Die Arithmetisch-Logische Einheit ALU 74181 Die Arithmetisch-Logische Einheit ALU 74181 Blockschaltbild: IC 74181 Pin-Ansicht S0 S1 S2 S3 M C n P G C n + 4 A=B B0 A0 S3 S2 1 2 3 4 24 23 22 21 +5V A1 B1 A2 A0 B0 A1 B1 A2 B2 A3 B3 F0 F1 F2 F3 S1 S0

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur ARM, x86 und ISA Prinzipien Übersicht Rudimente des ARM Assemblers Rudimente des Intel Assemblers ISA Prinzipien Grundlagen der Rechnerarchitektur Assembler 2 Rudimente

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2009 5. April 2009 Vorteile bei der Verwendung höherer Programmiersprachen Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation

Mehr

Technische Informatik. Der VON NEUMANN Computer

Technische Informatik. Der VON NEUMANN Computer Technische Informatik Der VON NEUMANN Computer Inhalt! Prinzipieller Aufbau! Schaltkreise! Schaltnetze und Schaltwerke! Rechenwerk! Arbeitsspeicher! Steuerwerk - Programmausführung! Periphere Geräte! Abstraktionsstufen

Mehr

Rechnerarchitektur Teil 2

Rechnerarchitektur Teil 2 Rechnerarchitektur Teil 2 Fähigkeiten der Registermaschine und Sprachübersetzung Dipl.-Inform. Meiko Lösch 2006-05-12 Inhalt 1 Rechenfähigkeit Zuweisungen Rechnen Relationen 2 Programmierfähigkeit Schleifen

Mehr

MOPS. Modellrechner mit Pseudo Assembler. Version Simulation eines von Neumann Rechners mit integriertem Pseudo Assembler. vom

MOPS. Modellrechner mit Pseudo Assembler. Version Simulation eines von Neumann Rechners mit integriertem Pseudo Assembler. vom MOPS Modellrechner mit Pseudo Assembler Version 1.01 vom 20.02.2013 Simulation eines von Neumann Rechners mit integriertem Pseudo Assembler Copyright 2008 2013 by Marco Haase kontakt@viktorianer.de Inhalt

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338 FB

Mehr

3. Grundlagen der Rechnerarchitektur

3. Grundlagen der Rechnerarchitektur 3. Grundlagen der Rechnerarchitektur 3.1 Architektur des von-neumann-rechners 3.2 Maschinentypen: Einadressmaschine, Zweiadressmaschine 3.3 Befehlsformate und Adressierungstechniken 3.4 Beispiel: der Prozessor

Mehr

Assembler DOS (Beta 1) Copyright 2000 Thomas Peschko. Assembler II - DOS. ASSEMBLER Arbeiten mit Dateien und Daten.

Assembler DOS (Beta 1) Copyright 2000 Thomas Peschko. Assembler II - DOS. ASSEMBLER Arbeiten mit Dateien und Daten. Assembler II - DOS ASSEMBLER Arbeiten mit Dateien und Daten peschko@aol.com 1 Wer nun den Eindruck hat, dass unsere Programme hauptsächlich nur Unterprogramme vor ihren Karren spannen und sich darauf beschränken

Mehr

Compilerbau + Virtuelle Maschinen

Compilerbau + Virtuelle Maschinen Helmut Seidl Compilerbau + Virtuelle Maschinen München Sommersemester 2009 1 Organisatorisches Der erste Abschnitt Die Übersetzung von C ist den Vorlesungen Compilerbau und Virtuelle Maschinen gemeinsam

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 2 Instruktionssatz Lothar Thiele Computer Engineering and Networks Laboratory Instruktionsverarbeitung 2 2 Übersetzung Das Kapitel 2 der Vorlesung setzt sich mit der Maschinensprache

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Neues vom STRIP Forth-Prozessor

Neues vom STRIP Forth-Prozessor Neues vom STRIP Forth-Prozessor Tagung der Forth-Gesellschaft April 2013 in Garmisch-Partenkirchen Willi Stricker 1 STRIP Forth-Prozessor STRIP32 32 Bit-Version Eigenschaften: Die 32-Bit-Version ist nahezu

Mehr

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 4. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

Zwischencodeerzeugung Compiler II

Zwischencodeerzeugung Compiler II Zwishenodeerzeugung Compiler II Prof. Dr. Ursula Goltz 14.09.2012 Einleitung Front-End... Parser Sem. Analys Zwishenodegenerator Bak-End Codegenerator... Zwishendarstellung (Zwishenode) evtl. mashinennunabh.

Mehr

Übersicht. Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe. AVS SS Teil 12/Protection

Übersicht. Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe. AVS SS Teil 12/Protection Übersicht Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe 2 Behandelter Bereich: Virtualisierung Syscall-Schnittstelle Ports Server Apps Server Apps Betriebssystem Protokolle Betriebssystem

Mehr

Sprachen und Automaten. Tino Hempel

Sprachen und Automaten. Tino Hempel Sprachen und Automaten 4 Tino Hempel Computer und Sprache Wie werden Informationen zu Daten kodiert? Welche Datenträger gibt es? Wie erfolgt die Verarbeitung der Daten? o o o Informationen werden im Computer

Mehr

Zusammenfassung der Assemblerbefehle des 8051

Zusammenfassung der Assemblerbefehle des 8051 Zusammenfassung der Assemblerbefehle des 8051 Seite 1 von 5 Befehl Bezeichnung Syntax Wirkung / Beispiel Befehle zum Datentransfer MOV Move MOV [Ziel],[Quelle] MOV P1,P3 Kopiert den Inhalt von P3 nach

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

Mehr

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

Mehr

Assembler Unterprogramme

Assembler Unterprogramme Assembler Unterprogramme Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Unterprogramme 1/43 2008-06-03 Unterprogramme

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 4 AM 21.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Logische und mathematische Grundlagen Digitale Daten Computerprogramme als Binärdaten von Neumann-Rechnerarchitektur Einführung in Maschinen-Code Speicherorganisation Betriebssysteme

Mehr

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note:

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 95 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Prozessor HC680 fiktiv

Prozessor HC680 fiktiv Prozessor HC680 fiktiv Dokumentation der Simulation Die Simulation umfasst die Struktur und Funktionalität des Prozessors und wichtiger Baugruppen des Systems. Dabei werden in einem Simulationsfenster

Mehr

2. Aufgabenblatt Musterlösung

2. Aufgabenblatt Musterlösung 2. Aufgabenblatt Musterlösung Technische Informatik II Sommersemester 2011 Problem 2: Assembler Syntax Register eines 32-bit Intel-Prozessors: 16 bits 8 bits 8 bits general purpose registers EAX Accumulator

Mehr

10. Die Adressierungsarten des MSP 430

10. Die Adressierungsarten des MSP 430 10. Die Adressierungsarten 10.1 Übersicht über die Adressierungsarten 10.2 -Operanden 10.3 Indexregister mit Distanz 10.4 Symbolische (relativ zum ) 10.5 Absolute 10.6 Indirekte 10.7 Indirekte Adressierung

Mehr

MOP: Befehlsliste für den Mikrocontroller 8051

MOP: Befehlsliste für den Mikrocontroller 8051 Beuth Hochschule Berlin FB VI, Labor für Digitaltechnik MOP: Befehlsliste für den Mikrocontroller 8051 Erläuterung der Operanden Operand A addr11 addr16 bit /bit C #data #data16 direct DPTR PC Ri Rn rel

Mehr

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse Kapitel 11 Rechnerarchitektur 11.1 Der von-neumann-rechner Wir haben uns bisher mehr auf die logischen Bausteine konzentriert. Wir geben jetzt ein Rechnermodell an, das der physikalischen Wirklichkeit

Mehr

F Ein einfacher Modellprozessor

F Ein einfacher Modellprozessor F ein einfacher Modellprozessor F Ein einfacher Modellprozessor Einordnung in das Schichtenmodell:. Prozessor 2. Aufbau des Modellprozessors 3. Organisation eines SRAM 4. Beschreibung in RTL 5. Adresspfad

Mehr

Aufgabe 1 Entwicklung einer Virtuellen Maschine

Aufgabe 1 Entwicklung einer Virtuellen Maschine Aufgabe 1 Entwicklung einer Virtuellen Maschine Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Entwicklung

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

Midterm-Klausur Technische Grundlagen der Informatik

Midterm-Klausur Technische Grundlagen der Informatik Midterm-Klausur Technische Grundlagen der Informatik Prof. Dr. Arndt Bode Wintersemester 2002/2003 7. Dezember 2002 Name: Vorname: Matrikelnummer: Hörsaal: Platz: Unterschrift: Ergebnis: Aufgabe Punkte

Mehr