Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Wie funktioniert die CPU
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> Wie funktioniert die CPU
 
Autor Nachricht
Corax
Full Member
Benutzer-Profile anzeigen
Full Member


Anmeldungsdatum: 03.11.2006
Beiträge: 142

BeitragVerfasst am: 07 Feb 2007 - 18:12:22    Titel: Wie funktioniert die CPU

hi leute,
wenn man zb ein programm, in FORTRAN oder BASIC schreibt, wie weist die CPU was zu tun ist

Ich meine die CPU versteht weder Deutsch noch kann sie nichts weiter als was addieren...
wie weist die cpu dass zb. wenn der wert grösser als X ist, dass dann ein Alarm erlöst wird?
Beim Addieren kann ichs ja noch verstehen z.B Add Speicher A zu Speicher B, lege das Ergebnis in Speicher C ab...

kann mir jemand weiterhelfen?
entity
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 31.12.2005
Beiträge: 51

BeitragVerfasst am: 07 Feb 2007 - 18:55:52    Titel:

Zitat:
Ich meine die CPU versteht weder Deutsch noch kann sie nichts weiter als was addieren...


Das erste stimmt, das zweite nicht. Selbstverständlich kann eine CPU mehr als addieren. Schon ein 8bit-Mikrocontroller z.b. kennt um die 100 Befehle (sog. Opcodes).

Grob funktioniert das so:

1. Der Compiler, oder im Fall von Basic der Interpreter transformiert die Hochsprache in Maschinensprache also Folgen von Opcodes und Daten
2. Die CPU durchläuft ständig eine Schleife aus:

* Befehl holen aus dem Speicher von dort, wo der Befehlszähler
hinzeigt
* Befehl dekodieren
* der Befehl setzt eine Kette von Steuersignalen in Gang um z.B. in
der ALU (arithmetisch-logische Einheit) die benötigte Funktion
einzustellen
* Operanden holen in den ALU packen
* Operation ausführen
* Befehlszähler erhöhen

so ungefähr, bestimmt habe ich was vergessen.

Eine Bedingung z.B. ob dein X größer als eine Zahl ist wird in eine Reihe von Befehlen übersetzt, die die Position des Befehlszähler (program counter) beeinflußen. So kann im Programm gesprungen werden (Kontrollfluss).
Corax
Full Member
Benutzer-Profile anzeigen
Full Member


Anmeldungsdatum: 03.11.2006
Beiträge: 142

BeitragVerfasst am: 07 Feb 2007 - 19:04:10    Titel:

wird das selbst geschriebene erstmal in den Speicher geladen?
und woher weis die CPU, wie sie die Befehle auszuführen hat oder auch zu interpretieren?

was heist für dich Maschinensprache?
Wie verarbeitet sie denn, dass die CPU zb nach 3 Sekunden ein Eingangs oder Ausgangssignal weitergegeben werden muss?

kommen da irgendwelche einsen und nullen an, und dann wird was subtrahiert oder mal genommen oder was auch immer... und wenn der wert dann nicht dem orgnialen entspricht, wird dann nen eingangssiganal gesendet?

..das war jetzt nen beispiel..
Corax
Full Member
Benutzer-Profile anzeigen
Full Member


Anmeldungsdatum: 03.11.2006
Beiträge: 142

BeitragVerfasst am: 07 Feb 2007 - 19:24:29    Titel:

ich glaub ich habs

Das von Menschen geschrieben Programm wird compiliert, erst in die Mnemonic Sprache dann in die Maschinensprache, also Opcode

z.B
Addiere 1 hinzu Arrow Arrow Add 1 Arrow Arrow 5
von Men. geschriebn, Mnemonic, Opcode

und der opcode wird wahrscheinlich in binär angegeben..

ist das so richtig?
m0ta
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 12.10.2005
Beiträge: 75

BeitragVerfasst am: 07 Feb 2007 - 19:43:15    Titel:

Mnemonics sind die Symbole für die sonst, wie du richtig sagtest binär codierten, für Menschen kaum lesbaren Opcodes. Allerdings gehen Compiler selten den Weg erst zu assemblieren und dann den Maschinencode zu erzeugen. GCC z.B. baut einen abstrakten Syntaxbaum aus dem die Backends für verschiedene Architekturen Maschinencode erzeugen.
Griffith
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 21.08.2006
Beiträge: 83
Wohnort: NRW

BeitragVerfasst am: 07 Feb 2007 - 23:55:01    Titel:

Tipp: Schau dir mal die Programmiersprache Assembler an.
Das ist die Hardwarenächste Programmiersprache die es gibt.
Wenn du dir dazu das Buch von rororo kaufst (ISBN: 3-499-19249-7) wirst du schnell verstehen, wie die CPU funktioniert.

Assembler ist wirklich interessant und hilft beim Verständnis der Funktionsweise des PCs sehr. Vor allem, da du dich ja scheinbar mit BASIC schoneinmal auseinander gesetzt hast, kann ein kurzer Exkurs nach Assembler nicht Schaden.

Aber: Wirklich nur zum Verständnis mal reinschauen. In Assembler Programme selbst zu schreiben ist Mord. Das braucht man heut zu tage nur noch für Treiberprogrammierung.
sarc
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 21.09.2006
Beiträge: 2657

BeitragVerfasst am: 08 Feb 2007 - 20:48:24    Titel:

Wenn du größeres Interesse haben solltest, wie ein Rechner an sich denn so funktionieren, kann ich dir dazu das Buch "Computerarchitektur" der Herren Tanenbaum und Goodman empfehlen. Unter anderem wird da auch ein Prozessor erklärt... Wink (Ach ja, das Ding gibts in ner etwas veralteten Ausgabe bei unifachbuch.de für 13 Euro - relativ unschlagbar, würd ich sagen... Wink)
TK1985
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 16.09.2005
Beiträge: 988

BeitragVerfasst am: 08 Feb 2007 - 22:26:53    Titel:

Wie schon gesagt wird dein BASIC- oder FORTRAN-Programm in Maschinensprache (also binär) umgewadelt. Dein Programm steht, wenn es ausgeführt wird im Speicher.
Die Befehlsausführung gliedert sich auf in die Befehlsholphase und die Ausführungsphase.
Während der Befehlsholphase wird der Befehl in entsprechende CPU-Register geladen. Die CPU weiß ahand des Program Counter (ein spezielles CPU-Register) wo der zu holende Befehl im Speicher steht.
Nachdem der Befehl geladen wurde, beginnt die Ausführungsphase. Jeder Befehl hat einen Befehlscode, der von einem Befehlsdecoder ausgeführt wird. Dieser kann entweder als Hardware-Schaltung mit logischen Gattern realisiert werden oder als Mikroprogramm. Aber egal wie es realisiert wird sorgt der Befehlsdecoder jetzt dafür das die für Ausführung nötigen Schritte eingeleitet werden. Bei einer Addition wäre das dann, das Einlesen der beiden Operanden aus dem Speicher, die Register in denen die Operanden jetzt stehen an das Rechenwerk (ALU) legen, die ALU auf addieren einstellen und das Ergebnis wieder abspeichern.
Dann ist dein Befehl (z.B. die beschriebene Addition) abgeschlossen und der nächste Befehl (z.B. eine logisches UND, eine Multiplikation oder sonst was) kann in der Befehlsholphase geladen werden.
Ich hoffe ich konnte das einigermaßen verständlich erklären. Das ist natürlich alles wesentlich komplexer, aber prinzipiell läuft es so ab.

Gruß
Thomas
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> Wie funktioniert die CPU
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum