1 / 38

CPU, Programmausführung

CPU, Programmausführung. Speicher. IO. Bussysteme. Die Register sind sichtbar für den Programmierer!. CPU, Programmausführung. Ausführungseinheit:

layne
Download Presentation

CPU, Programmausführung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

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

  9. 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

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

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

  12. 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

  13. 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

  14. 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

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

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

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

  18. 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

  19. 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

  20. 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

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

  22. 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

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

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

  25. 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

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

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

  28. 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

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

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

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

  32. 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

  33. 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

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

  35. 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

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

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

  38. Athlon XP 3200+ • Taktfrequenz (MHz): 2200Bauart: Sockel ACPU-Kern: BARTONFSB in (MHz): 400Level 1 Cache: 128kBLevel 2 Cache: 512kBBefehlssätze: MMX, ISSE, 3D Now! ProfessionalCore Spannung: 1.65V • Preis ca. 360€ Einf. in die WI 1 - DV-Infrastruktur WS03/04

More Related