Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

oder Womit genau ein Prozessor seine Zeit verbringt

Ähnliche Präsentationen


Präsentation zum Thema: "oder Womit genau ein Prozessor seine Zeit verbringt"—  Präsentation transkript:

1 oder Womit genau ein Prozessor seine Zeit verbringt
Computerarchitektur oder Womit genau ein Prozessor seine Zeit verbringt

2 Von Neumann Architektur
RAM (Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) CU (Control Unit) Register (Memory Unit) Ein paar Dutzend extrem schnelle Speicherbänke, jeweils == BUS-Breite Adresse Daten Wert 1 Befehl 2 3 4 ... max 2N-Bit Steuert den Ablauf (Fetch-Execute-Cycle) Enthält Schaltkreise für Grundrechenoperationen Kern / Core ... BUS (N-Bit-Architektur) Peripherie (Input-/Output-Geräte) Festplatte Tastatur Bildschirm

3 Von Neumann Architektur & Zyklus
RAM (Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) Register (Memory Unit) Fetch +increment Decode (refetch) Execute (Store) CU (Control Unit) Adresse Daten Wert 1 Befehl 2 3 4 ... max 2N-Bit Ein 2.4 GHz Prozessor durchläuft 2.4 Milliarden solcher Zyklen pro Sekunde ... BUS (N-Bit-Architektur) Festplatte Tastatur Bildschirm

4 Befehlssatz der CPU Register CU ALU
RAM (Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) Register (Memory Unit) Befehlssatz Maschinensprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT Adresse Daten Wert 1 Befehl 2 3 4 ... max 2N-Bit CU (Control Unit) Ein Prozessor kennt nur ein paar Dutzend Befehle – pro Zyklus wird einer davon ausgeführt (Execute) ... BUS (N-Bit-Architektur) Festplatte Tastatur Bildschirm

5 Maschinensprache vs. Assembler
Eine CPU verarbeitet ausschliesslich Programme in Maschinensprache, also Bit-Sequenzen Assembler ist eine 1:1 Übersetzung in für Menschen etwas übersichtlichere Textform Ein Befehl setzt sich zusammen aus einer Anweisung und einem Zahlenwert Im Beispielbefehlssatz rechts besteht ein Befehl aus 8 Bit, wovon die ersten vier die Anweisung enthalten Das vierte Bit bestimmt, ob die restlichen Bits als Wert oder als Speicheradresse interpretiert werden: 0: Interpretation als Speicheradresse 1: Interpretation als Wert Befehlssatz Maschinensprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT Echte Befehlssätze bestehen aus 32 oder 64 Bit (je nach Architektur bzw. BUS-Breite) und enthalten ca. 80 Befehle

6 Ausführbare Programme
Die von der CPU verarbeiteten Programme müssen zum Zeitpunkt der Ausführung im RAM gespeichert sein Dasselbe gilt für die verarbeiteten Daten Genau genommen sieht man keinen Unterschied (s. rechts) manche der Speicheradressen enthalten Befehle, manche Werte, und wieder andere Adressen als was die Bits jeweils behandelt werden, bestimmen die nacheinander abgearbeiteten Befehle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

7 Ein Beispiel für die konkrete Ausführung eines Programms in der CPU
(Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) Register (Memory Unit) CU (Control Unit) Ein Beispiel Adresse Daten Wert 1 Befehl 2 3 4 BUS für die konkrete Ausführung eines Programms in der CPU

8 (Arithmetic Logic Unit)
RAM CPU add.exe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Anfang: Der RAM ist noch leer, es kann also nichts ausgeführt werden. Genau genommen gibt es diesen Zustand nur zu Beginn des Boot-Vorgangs, während des Betriebs befinden sich immer mindestens verschiedene Subroutinen des Betriebssystems im RAM. Genau eine solche Subroutine (wieder: ein Programm in Maschinensprache) ist auch dafür zuständig, ein neues Programm (hier unser Beispielprogramm namens add.exe an eine noch nicht belegte Stelle des RAMs zu laden (notfalls muss mit einer weiteren Subroutine zuerst Platz geschaffen werden) und den Befehlszähler auf den ersten Befehl des geladenen Programms zu setzen. Akkumulator Was gerade passiert: Eine Subroutine des Betriebssystems (aus einem nicht gezeigten Teil des RAMs) lädt das Programm add.exe von der Festplatte in den RAM und setzt den Befehlszähler auf dessen ersten Befehl

9 (Arithmetic Logic Unit)
RAM CPU 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator Was gerade passiert: add.exe ist jetzt „geladen“, also im RAM parkiert. Der Befehlszähler zeigt auf den Index 0, also wird der Befehl an dieser Speicheradresse als nächstes ausgeführt.

10 (Arithmetic Logic Unit)
RAM CPU 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator Was gerade passiert: Der erste Schritt des neuen Zyklus: Der aktuelle Befehl wird über den BUS aus dem RAM geholt (fetch) und ins Befehlsregister geschrieben.

11 (Arithmetic Logic Unit)
RAM CPU 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator Was gerade passiert: Ausserdem wird der Befehlszähler um eins erhöht, so dass er auf den nächsten abzuarbeitenden Befehl zeigt.

12 (Arithmetic Logic Unit)
RAM CPU 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator Was gerade passiert: Schritt 2 des ersten Zyklus: Der Befehl im Befehlsregister wird decodiert (s. Befehlssatz). Das Ergebnis: die Zahl 0010 (Dez = 2) soll geladen werden. Weil die letzten vier Bit eine Zahl sind, entfällt das refetch

13 (Arithmetic Logic Unit)
RAM CPU 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator Was gerade passiert: Schritt 3 des ersten Zyklus: Die Anweisung wird ausgeführt. In diesem Fall wird schlicht die Zahl (0010) durch die ALU an den Akkumulator weitergegeben

14 (Arithmetic Logic Unit)
RAM CPU 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator Was gerade passiert: Schritt 4 des ersten Zyklus: Beim aktuellen Befehl gibt es nichts zu speichern, also entfällt dieser Schritt. Der erste Zyklus ist damit beendet -> Schritt 1 von Zyklus 2.

15 (Arithmetic Logic Unit)
RAM CPU 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator Was gerade passiert: Der erste Schritt des 2. Zyklus: Der aktuelle Befehl (Index 1) wird über den BUS aus dem RAM geholt (fetch) und ins Befehlsregister geschrieben. Ausserdem wird der Befehlszähler um 1 erhöht.

16 (Arithmetic Logic Unit)
RAM CPU 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator Was gerade passiert: Schritt 2 des 2. Zyklus: Der Befehl im Befehlsregister wird decodiert (s. Befehlssatz). Das Ergebnis: die Zahl im Akkumulator soll an die Speicheradresse 1001 (Dez = 9) geschrieben werden.

17 (Arithmetic Logic Unit)
RAM CPU 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator Was gerade passiert: Schritt 3 des 2. Zyklus: Der Wert (Dez = 2) wird aus dem Akkumulator geholt ...

18 (Arithmetic Logic Unit)
RAM CPU 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator Was gerade passiert: Schritt 4 des 2. Zyklus: ... und über den BUS an die Speicheradresse 9 (Binär = 1001) geschrieben. Ende des 2. Zyklus  Schritt 1 des 3. Zyklus

19 (Arithmetic Logic Unit)
RAM CPU LOAD# 2 1 STORE 9 2 LOAD# 3 3 STORE 10 4 LOAD 9 5 ADD 10 6 STORE 11 7 HALT 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler STORE 9 2 Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator 2 Was gerade passiert: Zur Vereinfachung der Darstellung für die weiteren Schritte werden ab jetzt (in RAM und Registern) die bereits in Assembler bzw. Dezimalzahlen übersetzten Werte gezeigt und manche Schritte zusammengefasst.

20 (Arithmetic Logic Unit)
RAM CPU LOAD# 2 1 STORE 9 2 LOAD# 3 3 STORE 10 4 LOAD 9 5 ADD 10 6 STORE 11 7 HALT 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler LOAD# 3 3 Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) 3 Akkumulator 2 Was gerade passiert: Schritt 1 & 2 des 3. Zyklus: Aktuellen Befehl in Befehlsregister holen (+Befehlszähler erhöhen) & Befehl decodieren

21 (Arithmetic Logic Unit)
RAM CPU LOAD# 2 1 STORE 9 2 LOAD# 3 3 STORE 10 4 LOAD 9 5 ADD 10 6 STORE 11 7 HALT 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler LOAD# 3 3 Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) 3 Akkumulator 3 Was gerade passiert: Schritt 3 & 4 des 3. Zyklus: Befehl ausführen, Schritt 4 (Store) entfällt  Zyklus 4

22 (Arithmetic Logic Unit)
RAM CPU LOAD# 2 1 STORE 9 2 LOAD# 3 3 STORE 10 4 LOAD 9 5 ADD 10 6 STORE 11 7 HALT 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler STORE 10 4 Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator 3 Was gerade passiert: Alle Schritte des 4. Zyklus (genau wie 2. Zyklus): Der Wert im Akkumulator wird an die Adresse 10 des RAM geschrieben.  5. Zyklus

23 (Arithmetic Logic Unit)
RAM CPU LOAD# 2 1 STORE 9 2 LOAD# 3 3 STORE 10 4 LOAD 9 5 ADD 10 6 STORE 11 7 HALT 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler LOAD 9 5 Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) 2 Akkumulator 3 Was gerade passiert: Schritt 1 & 2 des 5. Zyklus: Der aktuelle Befehl enthält kein #, er bezieht sich also nicht auf den Wert 9 sondern auf die Speicheradresse 9. Also gibt es jetzt einen refetch, der den Wert 2 in Eingang B schreibt.

24 (Arithmetic Logic Unit)
RAM CPU LOAD# 2 1 STORE 9 2 LOAD# 3 3 STORE 10 4 LOAD 9 5 ADD 10 6 STORE 11 7 HALT 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler LOAD 9 5 Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) 2 Akkumulator 2 Was gerade passiert: Schritt 3 & 4 des 5. Zyklus: Der Wert 2 aus dem refetch wird über Eingang B in den Akkumulator geschrieben, Schritt 4 (Store) entfällt.  Zyklus 6

25 (Arithmetic Logic Unit)
RAM CPU LOAD# 2 1 STORE 9 2 LOAD# 3 3 STORE 10 4 LOAD 9 5 ADD 10 6 STORE 11 7 HALT 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler ADD 10 6 Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) 3 Akkumulator 2 Was gerade passiert: Schritt 1 & 2 des 6. Zyklus: Der aktuelle Befehl bezieht sich auf die Speicheradresse 10 also wird der dort gespeicherte Wert 3 per refetch in den Eingang B geschrieben

26 (Arithmetic Logic Unit)
RAM CPU LOAD# 2 1 STORE 9 2 LOAD# 3 3 STORE 10 4 LOAD 9 5 ADD 10 6 STORE 11 7 HALT 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler ADD 10 6 Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) 2 3 Akkumulator 2 Was gerade passiert: Schritt 3 (& 4) des 6. Zyklus: Für Rechenbefehle wie ADD (mit zwei Operanden) wird nun auch Eingang A der ALU benötigt. Hierher wird der aktuelle Wert des Akkumulators kopiert ...

27 (Arithmetic Logic Unit)
RAM CPU LOAD# 2 1 STORE 9 2 LOAD# 3 3 STORE 10 4 LOAD 9 5 ADD 10 6 STORE 11 7 HALT 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler ADD 10 6 Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) 2 3 Akkumulator 5 Was gerade passiert: immer noch Schritt 3 (& 4) des 6. Zyklus: ... dann wird die Rechnung ausgeführt (durch Einspeisung der beiden Operanden in einen Schaltkreis) und das Ergebnis landet wieder im Akkumulator  Zyklus 7

28 (Arithmetic Logic Unit)
RAM CPU LOAD# 2 1 STORE 9 2 LOAD# 3 3 STORE 10 4 LOAD 9 5 ADD 10 6 STORE 11 7 HALT 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler STORE 11 7 Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator 5 Was gerade passiert: Alle Schritte des 7. Zyklus (genau wie 2. & 4. Zyklus): Der Wert im Akkumulator wird an die Adresse 11 des RAM geschrieben.  8. Zyklus

29 (Arithmetic Logic Unit)
RAM CPU LOAD# 2 1 STORE 9 2 LOAD# 3 3 STORE 10 4 LOAD 9 5 ADD 10 6 STORE 11 7 HALT 8 9 10 11 12 13 14 15 Befehlsregister Befehlszähler HALT 217 Befehlssatz Maschinen- sprache Assembler 0010 XXXX LOAD X 0011 XXXX LOAD #X 0100 XXXX STORE X 0101 XXXX STORE #X 0110 XXXX ADD X 0111 XXXX ADD #X 1111 XXXX HALT CU (Control Unit) Fetch +increment Decode (refetch) Execute (Store) BUS (8 Bit) Eingang A Eingang B ALU (Arithmetic Logic Unit) Akkumulator Was gerade passiert: Alle Schritte des 8. Zyklus: Der Befehl HALT bedeutet, dass die Kontrolle über den Prozessor an eine Routine des Betriebssystems zurückgegeben wird (z.B. beginnend an Index 217), die dann ausrechnet, welches Programm als nächstes mit der CPU weiterrechnen darf.

30 ... und was wurde jetzt berechnet?
ganz einfach: = 5; In Java (oder C) würde das so aussehen: in add.java oder add.c int a = 2; int b = 3; int c = a + b;

31 ... und wie wird das ausführbar?
add.c add.exe int a = 2; int b = 3; int c = a + b; kompilieren (für bestimmte CPU) add.java add.class int a = 2; int b = 3; int c = a + b; kompilieren interpretieren Eine allgemeine Maschinensprache, für die JVM (Java Virtual Machine). Wird von dieser befehlsweise in die Maschinensprache der CPU übersetzt.

32 Das Beispielprogramm im LMC robowriter.info/little-man-computer/
Dezimale Mini-Maschinenspreche, alle xx werden als Adressen interpretiert

33 LMC - Aufgaben robowriter.info/little-man-computer/
Dezimale Mini-Maschinenspreche, alle xx werden als Adressen interpretiert Aufgaben: Entwickeln Sie ein Programm, das die zwei Inputwerte subtrahiert, dann das Ergebnis ausgibt und stoppt Entwickeln Sie ein Programm, das die zwei Inputwerte multipliziert, dann das Ergebnis ausgibt und stoppt Entwickeln Sie ein Programm, das die zwei Inputwerte vergleicht, dann das Ergebnis (1 für gleich, 0 für ungleich) ausgibt und stoppt Entwickeln Sie ein Programm, das die zwei subtrahiert, wenn sie nicht gleich sind, ansonsten addiert, dann das Ergebnis ausgibt und stoppt Entwickeln Sie ein Programm, das (in Zweierschritten) vom ersten Input bis zum zweiten zählt (jeweils ausgeben) und dann stoppt Entwickeln Sie ein Programm, das alle ganzen Zahlen von 0 bis 100 zusammenzählt, dann das Ergebnis ausgibt und stoppt

34 Videos zur Funktionsweise der CPU:
Erklärvideo von BYTEthinks (deutsch, guter Überblick) In One Lesson (englisch, sehr detailliert)

35  praktische Erkenntnisse
Computersysteme  praktische Erkenntnisse

36 Wie kommt add.exe in den RAM?
(Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) CU (Control Unit) Register (Memory Unit) Adresse Daten ... BUS (N-Bit-Architektur) Festplatte Tastatur Bildschirm add.exe

37 Wie kommt add.exe in den RAM?
(Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) CU (Control Unit) Register (Memory Unit) Ein anderes ausführbares Programm (eine Subroutine des Betriebssystems) muss der CPU sagen, wie man die entsprechenden Bits von der Festplatte holt und in den RAM schreibt. Diese Routine des BS muss dafür natürlich im RAM verfügbar sein. Und wie kam sie dorthin?  booten Adresse Daten add.exe loader.exe ... BUS (N-Bit-Architektur) Festplatte Tastatur Bildschirm add.exe

38 Was bedeutet booten? Was ist ein BIOS?
RAM (Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) CU (Control Unit) Register (Memory Unit) Adresse Daten - 1 2 3 4 5 ... ... BUS (N-Bit-Architektur) BIOS Festplatte Tastatur Bildschirm

39 Was bedeutet booten? Was ist ein BIOS?
RAM (Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) CU (Control Unit) Register (Memory Unit) BIOS = basic input/output system Das BIOS ist ein in Hardware umgesetztes Programm, das für den ersten Teil des Bootvorgangs den noch nicht funktionstüchtigen Kern (RAM + CPU) ersetzt Die Hauptaufgabe des BIOS ist es, ein allererstes Programm in den RAM zu befördern, so dass der Kern seine Arbeit aufnehmen kann Im Mini-GUI des BIOS kann man ein paar Dinge einstellen, z.B. von wo gebootet werden soll Adresse Daten - 1 2 3 4 5 ... ... BUS (N-Bit-Architektur) BIOS Festplatte mbr Tastatur Bildschirm

40 Wie funktioniert ein Lernstick?
RAM (Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) CU (Control Unit) Register (Memory Unit) Adresse Daten - 1 2 3 4 5 ... LS BUS (N-Bit-Architektur) BIOS Festplatte Tastatur Bildschirm

41 Wie funktioniert ein Lernstick?
RAM (Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) CU (Control Unit) Register (Memory Unit) Ins Bootmenü  booten vom Lernstick Auf dem Lernstick ist ein (Linux) Betriebssystem, das die Kontrolle übernimmt. Es ist so eingestellt, dass nur Teile der Hardware benutzt werden können, z.B. versucht es gar nicht erst, die Festplatte anzusprechen Der Lernstick ersetzt also die Festplatte (inkl. des dort gespeicherten Betriebssystems) Adresse Daten - 1 2 3 4 5 ... Betriebs-system (Linux) Programme Dateien Lernstick mbr BS Programme BUS (N-Bit-Architektur) BIOS Dateien Festplatte Tastatur Bildschirm

42 Der Lernstick super-GAU:
RAM (Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) CU (Control Unit) Register (Memory Unit) Wenn der Stick während der Probe den Kontakt verliert Das Programm läuft weiter!! (nur der „Speichern“- Knopf wird grau) es gibt aber keine Möglichkeit mehr, die Daten vom RAM auf irgendeinen dauerhaften Speicher zu bekommen Adresse Daten - 1 2 3 4 5 ... Betriebs-system (Linux) Programme Dateien Lernstick mbr BS Programme BUS (N-Bit-Architektur) BIOS Dateien Festplatte Tastatur Bildschirm

43 Was bedeutet 64-Bit Architektur?
RAM (Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) CU (Control Unit) Register (Memory Unit) Adresse Daten ... BUS (N-Bit-Architektur) Festplatte Tastatur Bildschirm

44 Was bedeutet 64-Bit Architektur?
RAM (Arbeitsspeicher, Hauptspeicher) CPU ALU (Arithmetic Logic Unit) CU (Control Unit) Register (Memory Unit) Der BUS ist 64 Bit breit, es können also jeweils 8 Byte auf einmal verschickt werden Dementsprechend passen auch in jedes Register 64 Bit Da es manchmal ja auch um Adressen geht (z.B. im Befehlszähler) kann der RAM jetzt 264 (= 1.8E19) Byte gross sein – früher war bei 4GB (232 Byte) Schluss. Vorteile Rechnungen mit grossen Zahlen gehen schneller Mehr Programme und Daten können gleichzeitig im RAM geladen sein Adresse Daten Wert 1 Befehl 2 3 4 ... max 2AnzBit ... BUS (N-Bit-Architektur) Festplatte Tastatur Bildschirm

45 Was bedeutet cloud computing?
... z.B. mit Office 365

46 E V A Programme gespeicherte Daten/Dateien gespeicherte Daten/Dateien Verarbeitung Programm Benutzerober-fläche (GUI) E V A E V A Benutzer-eingaben (klicken, tippen,...) Ausgaben für Benutzer (Bildschirm, Audio,...) Datenverwaltung und Benutzeroberflächen werden vom Betriebssystem bereit gestellt Das (Anwendungs-)Programm muss sich nur um die für seinen Zweck spezifischen Verarbeitungsschritte kümmern

47 Web Apps -> Cloud Internet
Verar-beitung Internet Benutzer-eingaben Daten/ Dateien Ausgaben für Benutzer Daten/ Dateien Im Extremfall ist nur die Benutzeroberfläche lokal (im Browser, temporär), alles andere (Daten & Verarbeitung) geschieht auf dem Server (online).  Cloud Computing

48 online geschieht die Verarbeitung online, muss das Programm nicht zum (lokalen) Betriebssystem passen – und nicht installiert werden Verarbeitung Programm Benutzerober-fläche (GUI) E V A E V A cloud computing Verarbeitung Datei(en) gespeicherte Daten/Dateien gespeicherte Daten/Dateien Unter den Begriff „Cloud“ fallen aber auch alle anderen Kombinationen der Verteilung von Verarbeitung und Daten über lokale oder entfernte Rechner Benutzer-eingaben (klicken, tippen,...) Ausgaben für Benutzer (Bildschirm, Audio,...) lokal

49 Verarbeitung Als Nutzer sollte man wissen
... wo die Daten verarbeitet werden ... welche Arten der Verarbeitung ein Programm ermöglicht Ggf. auch wichtig: wer stellt das Programm (warum) zur Verfügung? welche alternativen Programme gibt es? welche Sicherheit habe ich, dass ein Programm nicht im Hintergrund noch andere Dinge tut? welche Kontrolle über welche Daten gebe ich an wen aus der Hand? Kann ich lokale Kopien erstellen?


Herunterladen ppt "oder Womit genau ein Prozessor seine Zeit verbringt"

Ähnliche Präsentationen


Google-Anzeigen