CPU, Programmausführung

Slides:



Advertisements
Ähnliche Präsentationen
Programme in C++.
Advertisements

Vorbereitung: struct knoten { int x; struct knoten *l, *r; } *b, *bh, **bp; b: Zeiger auf Wurzel bh: Hilfszeiger bp: Zeiger auf Zeiger auf knoten b bp.
Klassen - Verkettete Liste -
Programmierung: Einführung
Befehlssatz und Struktur
Forschungszentrum caesar
Prozesse Einführung in WI 1 (DV-Infrastruktur) WS03/04.
PC mit offener Seitenwand
PC Computernetze Netzstruktur für kleine Netze
Fragen 2 Werden die Funktionen des Betriebssystemkernes wie normale Funktionen aufgerufen? Einf. In die WI, DV-Infrastruktur WS 03/04.
Programmorganisation
IO - Hardwarestruktur, allgemein
1 Was ist ein klassischer Prozess? A eine exe-Datei B log. Adressraum, Ablaufumgebung für genau einen Thread C log. Adressraum, Ablaufumgebung für eine.
Betriebssysteme - Überblick
Arbeitstitel: DV-Infrastruktur
Zentraler Verzeichnisdienst an Hochschulen
der Universität Oldenburg
Ultris V10 Bewegen, Drehen und Kollisionserkennung.
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
SWITCH - Anweisung.
ARRAY oder FELD oder VEKTOR
WHILE - Anweisung.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung.
DO...WHILE Anweisung.
DO...WHILE Anweisung.
Aufbau und Funktionsweise von Prozessoren
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 9 Claudio Moraga; Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 10 Claudio Moraga; Gisbert Dittrich FBI Unido
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Vorlesung 5: Interrupts Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Vorlesung 5 Interrupts Peter B. Ladkin
DVG Ausnahmen. DVG Was sind Programmfehler? 4 Programm erzielt gar kein Ergebnis. 4 Berechnetes Ergebnis stimmt nicht mit dem erwarteten.
Planung einfache Dateibehandlung (externe Dateien, Öffnen, Lesen/Schreiben, Schließen). Diskussion des Problems, die Wörter in einem gegebenen Text.
Weiteres Programm Studium des Breitendurchlaufs Hierzu
Einführung in die Programmierung Datensammlung
Zahlensysteme und Dualarithmetik copyleft: munz
Der Simple As Possible Computer
2. Vorlesung Ansätze der Systemanalyse: Strukturierte Analyse (SA)
7. Vorlesung Vererbung Einfach- und Mehrfachvererbung Polymorphismus
11. Vorlesung: Dynamische Konzepte am Fallbeispiel
4. Vorlesung: Use Case Diagramme Fallbeispiel
8. Vorlesung: Klassendiagramm für Fallbeispiel
3. Vorlesung: UML Use Case Diagramme
6. Vorlesung: Statische Konzepte
12. Vorlesung: Aktivitätsdiagramme
5. Vorlesung: Grundkonzepte Objekt-Orientierung
10. Vorlesung: Dynamische Konzepte
Wenn Programme Entscheidungen fällen müssen, dann …
Hochschule der Medien | Studiengang Medienwirtschaft | Wintersemester 2003/042.
Wir haben gesehen Das Gerüst ist bei JavaKara fix vorgegeben
25. Januar 2007Klasse IT '041 Projekt Solar Server Schulprojekt der Klasse IT `04.
Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 1 Wie werden Funktionen realisiert? Beispiel: int maximum(int x, int y) { int j = x; if (y >
Tipps für den Seminarvortrag Johann(a) Musterfrau.
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Umrechnung zwischen verschiedenen Zahlensystemen
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Berechenbarkeit Klaus Becker Berechenbarkeit.
Agenda für heute, 21. April, 2005 Interaktion mit Pascal-ProgrammenInteraktion mit Pascal-Programmen Dateneingabe Programmsteuerung Debugging Datentypen:
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
1 // 9_1_Datei_IO //Elementare Verwendung von Dateien // Vorsicht: nicht robust, #include const int maxLen = 70; void Schreiben(char *, ofstream *); void.
Aufbau und Funktionsweise einer CPU
Programmieren in C Wie speichert C
Hexadezimale Darstellung von Zahlen
 Präsentation transkript:

CPU, Programmausführung Speicher IO Bussysteme Die Register sind sichtbar für den Programmierer! Einf. in die WI 1 - DV-Infrastruktur WS03/04

CPU, Programmausführung Ausführungseinheit: Gesteuert durch die in der Befehlseinheit stehenden Maschineninstruktion werden Daten verarbeitet. Die Daten sind entweder in den Registern vorhanden oder werden aus dem Speicher bzw. der IO geholt. Daneben gibt es Transportinstruktionen, die Daten aus dem Speicher in Register holen oder aus Registern abspeichern (bzw. IO). Einf. in die WI 1 - DV-Infrastruktur WS03/04

CPU, Programmausführung Die Adressiereinheit sorgt dafür, dass die richtigen Adressen an die Speichersteu-erung gegeben werden. Die Busschnittstelle sorgt für die Kommuni-kation mit der „Außenwelt“ der CPU. Sie enthält die „Prefetch-Queue“. Dort werden Instruktionen auf Vorrat gelesen, während parallel die Verarbeitung von CPU-Daten läuft. Einf. in die WI 1 - DV-Infrastruktur WS03/04

CPU Befehlszyklus der CPU: while (TRUE) { Hole nächste Instruktion (Adresse im IP); Führe Instruktion aus; if (Interrupt) Führe Interruptmechanismus aus; } Einf. in die WI 1 - DV-Infrastruktur WS03/04

Register mov-Instruktion: kopieren zwischen Registern, vom Register zum Speicher, vom Speicher zum Register mov ist die am häufigsten vorkommende Instruktion im Programmtext Einf. in die WI 1 - DV-Infrastruktur WS03/04

Vom Programm zur Machineninstruktion Ein kleines Beispielprogramm in C++ int a, b, c; int main (void) { a=2; b=8; c=a+b; if (c>=0) c=-3*c; else c=2*c; return 0; } Einf. in die WI 1 - DV-Infrastruktur WS03/04

Vom Programm zur Machineninstruktion a, b und c sind Datenfelder für ganze Zahlen. Die Instruktionen beziehen sich über Adressen auf diese Felder. Einfache Transport-instruktionen Bedeutung: mov nach, von add: ein Operand muss in einem Register stehen. Ergebnis im Register. Einf. in die WI 1 - DV-Infrastruktur WS03/04

Vom Programm zur Machineninstruktion if (c>=0) c=-3*c; else c=2*c; Einf. in die WI 1 - DV-Infrastruktur WS03/04

IO-Instruktionen Neben der mov-Instruktion, die für den Datenaustausch zw. Registern und Speicher zuständig ist, gibt es die Instruktionen in reg,ioport und out ioport,reg , die Daten zwischen den Registern und den Steuereinheiten von IO-Geräten bewegen (z.B. Tastatur, Bildschirm, Festplatte). Einf. in die WI 1 - DV-Infrastruktur WS03/04

Die Register und ihre Verwendung Register müssen bei der Assemblerprogrammierung berücksichtigt werden. Einf. in die WI 1 - DV-Infrastruktur WS03/04

Fortsetzung der Registeraufzählung Einf. in die WI 1 - DV-Infrastruktur WS03/04

Einschub: Hexadezimal Mit den Dualzahlen kann man wegen der vielen Stellen schlecht umgehen. Daher werden Dualzahlen meist als Hexadezimal-zahlen dargestellt, das sind Zahlen zur Basis 16. Die Ziffern dieser Zahlen sind 0,1,2,3,4,5,6,7,8,9,A,B,C,D. Die Hexadezimalzahl 3C5A ist 3*163+12*162+5*161+10*160=15450 Einf. in die WI 1 - DV-Infrastruktur WS03/04

Einschub: Hexadezimal Dual <--> Hexadezimal Man bildet bei dual von rechts 4er Päckchen. Der Dualwert wird als Hexaziffer dargestellt. 0110 1111 1010 0011 dual 6 F A 3 hexa Einf. in die WI 1 - DV-Infrastruktur WS03/04

Maschinensprache, gesehen im Debug-Modus Microsoft Visual Studio C++ mov a,2 mov b,8 mov eax,a add eax,b mov c,eax Einf. in die WI 1 - DV-Infrastruktur WS03/04

..noch Maschinensprache Einf. in die WI 1 - DV-Infrastruktur WS03/04

c = a+b; a c b mov eax,a add eax,b mov c,eax Daten Einf. in die WI 1 - DV-Infrastruktur WS03/04

Zahlenspielereien Zur Erinnerung: Zahl der Werte N<= 2n n = Zahl der Bitstellen Einf. in die WI 1 - DV-Infrastruktur WS03/04

Ganze Zahlen ohne Vorzeichen am Beispiel 8 Bit Codierung der Daten Ganze Zahlen ohne Vorzeichen am Beispiel 8 Bit Dualdarstellung mit den Wertigkeiten 27 26 25 24 23 22 21 20 Beispiel: 0 1 1 0 1 1 0 0 0*128+1*64+1*32+0*16+1*8+1*4+0*2+0*1 = 108 Einf. in die WI 1 - DV-Infrastruktur WS03/04

Ganze Zahlen Zahlenstrahl 00000000 00000001 00000010 ............... 11111111 Was passiert, wenn auf die größte Zahl 11111111 eine 1 addiert wird? Die neue Zahl ist mit 8 bit nicht mehr darstellbar: 1 00000000 In der Rechnertechnologie gibt es diese neunte Stelle nicht, das Ergebnis ist 00000000, d.h. die kleinste Zahl. Daher gibt es keinen Zahlenstrahl, sondern eine ringförmige Anordnung. Übrigens wird die abgeschnittene 1 als Überlauf zur weiteren Verwendung anderswo abgespeichert. (Carry-Bit oder -Flag) Einf. in die WI 1 - DV-Infrastruktur WS03/04

Codierung der Daten A Wird der Punkt A durchlaufen, wird Carry gesetzt, das Ergebnis ist mathematisch falsch. B Einf. in die WI 1 - DV-Infrastruktur WS03/04

Umwandlung Dezimal-Dual Einf. in die WI 1 - DV-Infrastruktur WS03/04

Codierung der Daten Wird der Punkt B durch-laufen, wird die Vorzei-chenstelle überschrieben: Overflow wird gesetzt, das Ergebnis ist mathe-matisch falsch. Bei diesen (negativen) Werten ist das Bit ganz links gleich 1. Einf. in die WI 1 - DV-Infrastruktur WS03/04

Codierung der Zeichen Was sind Zeichen? Buchstaben Ziffern Sonderzeichen Einf. in die WI 1 - DV-Infrastruktur WS03/04

Codierung der Zeichen Einf. in die WI 1 - DV-Infrastruktur WS03/04

Gleitkommazahlen (reelle Zahlen) Die Gleitkommaarithmetik wird in einem extra Prozessor (Bezeichnung Coprozessor) ausgeführt, der früher separat war, heute jedoch im Prozessor integriert ist. Trifft die CPU auf eine Gleitkomminstrution, so aktiviert sie den Coprozessor. Dieser führt die Instruktion parallel aus. Einf. in die WI 1 - DV-Infrastruktur WS03/04

Gleitkommazahlen (reelle Zahlen) Einf. in die WI 1 - DV-Infrastruktur WS03/04

Gleitkommazahlen (reelle Zahlen) Einf. in die WI 1 - DV-Infrastruktur WS03/04

Gleitkommazahlen (reelle Zahlen) Normalisierte Darstellung üblich. Typ double z.B. +/- 1.001110100001...100 * 211100011001 Vorzeichen 52 Bit Mantisse 11 Bit Exponent Einf. in die WI 1 - DV-Infrastruktur WS03/04

Gleitkommazahlen (reelle Zahlen) Einf. in die WI 1 - DV-Infrastruktur WS03/04

Gleitkommazahlen (reelle Zahlen) 0xZahl : Hexazahl! Einf. in die WI 1 - DV-Infrastruktur WS03/04

CPU Technik Eine CPU arbeitet getaktet. CPU Taktgeber, Quarz Einf. in die WI 1 - DV-Infrastruktur WS03/04

CPU Technik Taktfrequenz im ersten PC CPU 8088: 4,5 MHz heutige Taktfrequenzen Pentium III zwischen 500 und 1400 MHz Pentium 4 zwischen 1,5 GHz und 3,2 GHz Celeron zwischen 1,2 GHz und 2,7 GHz Athlon zwischen 1,4 GHz und 3,2 GHz Einf. in die WI 1 - DV-Infrastruktur WS03/04

CPU Technik Klassen von CPU‘s CISC Complex Instruction Set Computer --Die CPU hat viele und komplexe Instruktionen. (Intel, AMD) RISC Reduced Instruction Set Computer -- Die CPU hat wenige einfache Instruktionen. (Apple, IBM: PowerPC; SUN) Unterschied: Die Machinenprogramme bei RISC sind länger, da komplexe Instruktionen durch die einfachen Instruktionen nachgebildet werden müssen. Vorteil von RISC: Ausführung der Instruktionen einfacher und schneller. Einf. in die WI 1 - DV-Infrastruktur WS03/04

CPU Technik CPU L1 L2 BUS-Systeme IO Speicher Einf. in die WI 1 - DV-Infrastruktur WS03/04

CPU Technik BUS: Verbindung zwischen Bausteinen Der Front Side Bus ist die Ver-bindung der CPU zu den BUS-Systemen, seine Geschwindig-keit ist eine Kenngröße der CPU, gemessen in MHz (max. Taktfrequenz des Bus). Die MHz-Angabe muss aber nicht die tatsächliche Daten-rate festlegen. Einf. in die WI 1 - DV-Infrastruktur WS03/04

Celeron 1700 Taktfrequenz (MHz): 1700 Bauart: Sockel 478 CPU-Kern: WILLAMETTE FSB in (MHz): 400 Level 1 Cache: 8kB Level 2 Cache: 128kB Befehlssätze: MMX, SSE2, Advanced Transfer Cache (ATC), Hyper Pipelined, NetBurst, Rapid Execution Engine Core Spannung: 1.75V Preis ca. 70€ Realisierungsversion Versorgungsspannung Einf. in die WI 1 - DV-Infrastruktur WS03/04

Pentium 4 3000 Taktfrequenz (MHz): 3000 Bauart: Sockel 478 CPU-Kern: NORTHWOOD FSB in (MHz): 800 Level 1 Cache: 8kB Level 2 Cache: 512kB Befehlssätze: MMX, SSE2, Advanced Transfer Cache (ATC), Hyper Pipelined, NetBurst, Rapid Execution Engine Hyperthreading Core Spannung: 1.5V Preis ca. 430€ Einf. in die WI 1 - DV-Infrastruktur WS03/04

Athlon XP 3200+ Taktfrequenz (MHz): 2200 Bauart: Sockel A CPU-Kern: BARTON FSB in (MHz): 400 Level 1 Cache: 128kB Level 2 Cache: 512kB Befehlssätze: MMX, ISSE, 3D Now! Professional Core Spannung: 1.65V Preis ca. 360€ Einf. in die WI 1 - DV-Infrastruktur WS03/04