Wie funktioniert ein Prozessor?

Hallo,
es hat mich schon immer interresiert wie ein Prozessor jetzt genau funktioniert. Allerdings habe ich den Eintrag auf Wikipedia nicht so recht verstanden.
Es würde mich sehr freuen wenn irgendjemand das anschaulich beschreiben könnte!

Ein Prozessor verarbeitet Anweisungen und geht im Programmcode voran (latein: processus -> deutsch: das Fortschreiten).

Der Prozessor lädt die nächsten Befehle aus dem Programmcode. Der Code gibt vor, was der Prozessor machen soll.

AVR:

add r16, r17

das wäre so ein Befehl, der das Register r17 auf das Register r16 addiert und in r16 abspeichert.

Der Prozessor lädt dafür aus seinen Registern die entsprechenden Reigster r16 und r17 in die Speicher der ALU, welche die Addition ausführt und das Ergebnis dann zurück schreibt.

Die ALU (http://www.cellmatrix.com/entryway/products/applicat…) ist in Hardware integriert, genau wie andere Sachen, die ein Prozessor auf Wunsch machen kann.

Also im Prinzip funktioniert der Prozessor so, dass er nen Befehl kriegt und den dann ausführt. Die Befehle müssen zu dem Prozessor passen. Hat der Prozessor kein r17, dann würde der Code nicht gehen.

Tach,

es hat mich schon immer interresiert wie ein Prozessor jetzt
genau funktioniert. Allerdings habe ich den Eintrag auf
Wikipedia nicht so recht verstanden.
Es würde mich sehr freuen wenn irgendjemand das anschaulich
beschreiben könnte!

Es ist zwar schoen, dass Du Interesse an solchen Dingen zeigst, aber die Materie ist nicht ganz so einfach. Mit einer kurzen Erklaerung tu ich mich schwer, aber vielleicht kann ich ja ein Paar Worte darueber verlieren und dabei Stichworte fallen lassen, die Du zunaechst auf Wikipedia nachschlagen kannst.

Zunaechst einmal besteht die CPU klassischerweise aus 2 Teilen, dem Prozessorkern selbst und dem Cache-Speicher. Dass es auch Cache-Speicher im Kern selbst gibt, sei erstmal zu vernachlaessigen. Cache ist zunaechst dafuer da, die Kommunikation zwischen dem Prozessor und dem Arbeitsspeicher zu beschleunigen, den Rest kann man auf Wikipedia nachlesen.

Die CPU selbst nun besteht wieder aus mehreren Einzelteilen, die sich nun je nach CPU-Architektur mehr oder minder stark unterscheiden koennen.

Da waeren zuerst die Register, das sind schnelle und kleine Speicher, in denen die Befehle, z.B. arithmerische solche wie Addieren oder Multiplizieren, aber auch logische (z.B. UND, ODER…) und Operanden - also Daten auf die solche Befehle angewandt werden - gespeichert werden.

Dann gibt es noch die ALU - arithmetisch logische Einheit - die fuer das durchfuehren der arithmetischen und logischen Befehle verantwortlich ist. Sie liest zum Bleistift aus einem Register den Befehl ADD fuer addieren und die Adressen der beiden Register in denen die beiden Summanden gespeichert sind sowie die Adresse des Registers, wo das Ergebnis gespeichert werden soll. Nun kann man sich ueberlegen, das Ganze effizienter zu gestalten. Wenn ich z.B. einen Register nur fuer das Ergebnis einer arithmetischen Operation vorsehe, muss ich diesen beim Befehl nicht angeben, dadurch werden die Befehle kuerzer.

Nun besteht so eine CPU aber grundsaetzlich aus Schaltungen, die fuer sich genommen nur den Zustand 0 oder 1 kennen, kein Mensch schreibt aber in Nullen und Einsen. Deswegen ist die hardwarenaheste Programmiersprache, die fuer Menschen noch halbwegs :wink: beherrschbar ist, Assambler, wo man direkt Befehle eingeben kann, die irgendwie dem aehnlich sind, was die CPU „versteht“, z.B. sowas wie (frei erfunden) ADD R1 R2 R3 (Addiere den Inhalt der Register R1 und R2 und speichere das Ergebnis im Register R3). Der Assambler uebersetzt diese Befehle in Maschinencode, ebenso wird ein Programm aus einer Programmiersprache in diesen Maschinencode von einem Compiler uebersetzt. Maschinencode wird von der Befehlsdekodereinheit in der CPU gelesen und interpretiert, sprich, in Anweisungen uebersetzt, welche Schaltkreise der CPU was zu tun haben um diesen Befehl auszufuehren.

Zuletzt braucht man noch ein Steuerwerk, welches grob gesprochen die Hintereinanderausfuehrung der einzelnen Programmschritte ueberwacht. Das Steuerwerk holt sich den Befehl aus dem entsprechenden Befehlsregister, laesst ihn dekodieren, die Operanden des Befehls holen, den Befehl ausfuehren, das Ergebnis abspeichern und zum naechsten Schritt des Programms gehen.

Das sind zunaechst die grundsaetzlichen Einheiten der CPU auf sag ich mal logischer Ebene. Dahinter stehen natuerlich Schaltkreise, also im Wesentlichen Transistoren, aber das ist noch eine ganze Ecke heftiger.

Gruss
Paul

Ich habe schreckliche Neuigkeiten die Prozessoren betreffen. Laut neuester Virenexperten gelangen die Hacker in den Speicher der Prozessoren und schleusen dort die Rootkits ein. Da wird die Kontrolle über den Rechner schon im Vorfeld absolut übernommen.
Ich frage miich bloß wie man so einen Rootkit oder Trojaner dort im Speicher rausbekommt - die herkömmlichen Security-Programme können doch dort nicht einsehen. Ein Angriff direkt auf den Prozessorspeicher. Übler gehts nicht mehr.

Ja is schon schlimm.
Weg bekommste das nur indem du den Prozessor vom Strom trennst…
Schwierig, soll aber Leute geben, welche das schon geschafft haben…

1 Like