Wissen: PCGH-CPU-Serie (1)
In einer mehrteiligen Serie zeigte PC Games Hardware, wie Prozessoren aufgebaut sind, wie sie arbeiten und wie sie sich in den letzten Jahren weiterentwickelt haben. Die sehr beliebte Serie aus der PCGH-Printausgabe bieten wir Ihnen nun auch online an - für den Fall, dass Sie die eine oder andere Ausgabe verpasst haben.
Einleitung
Quelle: Bild: PCGH
Ein moderner Computer ist heute ein universell einsetzbares Multifunktionsgerät. Wir können Videos aufzeichnen, DVDs abspielen, Musik hören, im Internet surfen, realitätsnahe Spiele spielen, Büro arbeiten erledigen und vieles mehr. Das Einsatzgebiet eines PCs ist inzwischen so breitgefächert, dass man beinahe vergisst, zu welcher Gerätegattung der
Computer eigentlich gehört: zu den Automaten. Daher müssen wir, um zu verstehen, wie ein
PC in seinem Innersten - also hinter den bunten Oberflächen mit Mauszeigern, Menüs und
3D-Action - arbeitet, die Automatenlehre und die Logische Algebra bemühen.
Automaten und Universalrechner
Automat oder Automatik nennt man selbsttätig reagierende Maschinen oder Module. Auf Basis dieser Automatik stellte im Jahre 1945 der in Ungarn geborene Amerikaner John von Neumann ein Konzept zur Gestaltung eines Rechners vor, der technischen, wissenschaftlichen und kommerziellen Anforderungen gerecht werden sollte. Dieser Rechner bestand aus den Funktionseinheiten Steuerwerk, Rechenwerk, Speicher, Eingabe- und Ausgabewerk, wobei mit Ein- und Ausgabe hier nicht Tastatur und Bildschirm gemeint sind, sondern die Schnittstellen nach außerhalb der zentralen Recheneinheit, also des Prozessors.
Per Definition ist die Struktur des Von-Neumann-Rechners unabhängig von den zu bearbeitenden Problemen, weshalb man eine solche Maschine auch Universalrechner nennt. Sie kann jedes beliebige Rechenproblem lösen und ist nicht an eine spezielle Aufgabe gebunden, wie es etwa ein Cola-Automat ist.
Zur Lösung eines Problems muss von außen eine Bearbeitungsvorschrift, das Programm, eingegeben und im Speicher abgelegt werden. Ohne dieses Programm ist die Maschine nicht arbeitsfähig. Programme, Daten, Zwischen- und Endergebnisse werden in demselben Speicher abgelegt. Der Speicher ist in gleich große Zellen unterteilt, die fortlaufend durchnummeriert sind. Über die Nummer (Adresse) einer Speicherzelle kann deren Inhalt abgerufen oder verändert werden. Aufeinanderfolgende Befehle eines Programms werden in aufeinanderfolgenden Speicherzellen abgelegt. Das Ansprechen des nächsten Befehls geschieht vom Steuerwerk aus durch Erhöhen der Befehlsadresse um Eins.
Durch Sprungbefehle kann von der Bearbeitung der Befehle in der gespeicherten Reihenfolge abgewichen werden. Es gibt arithmetische Befehle wie Addieren, Multiplizieren, Konstanten laden, logische Befehle wie Vergleiche, logisches NICHT, UND, ODER, Transportbefehle, z. B. vom Speicher zum Rechenwerk und für die Ein-/Ausgabe, bedingte Sprünge und sonstige Befehle wie Schieben, Unterbrechen, Warten usw. Von einigen wenigen Ausnahmefällen abge-sehen, orientieren sich die heutigen PCs an der Struktur dieses klassischen Universalrechners.
Der Von-Neumann-Zyklus
Quelle: Bild: PCGH
Aufbau: Das Grundprinzip eines Universalrechners nach von Neumann. Prinzipiell arbeiten auch aktuelle CPUs noch nach diesen Vorgaben.
Der Prozess der Befehlsverarbeitung bei Von-Neumann-Rechnern wird Von-Neumann-Zyklus genannt und besteht aus folgenden fünf nacheinander ablaufenden Teilschritten: FETCH, DECODE, FETCH OPERANDS, EXECUTE, UPDATE INSTRUCTION POINTER. Beim FETCH-Schritt wird aus RAM- oder ROM-Speicher der nächste zu bearbeitende Befehl geholt. Dieser Befehl wird bei DECODE durch das Steuerwerk in Schaltinstruktionen aufgelöst, die das Rechenwerk "verstehen" kann. Aus RAM oder ROM werden nun bei FETCH OPERANDS die Operanden geholt, also die Werte, die durch den Befehl verändert werden sollen bzw. die als Parameter verwendet werden, also etwa die beiden Operanden einer Addition. Bei EXECUTE wird die Operation vom Rechenwerk ausgeführt. Bei UPDATE INSTRUCTION POINTER wird der Befehlszähler erhöht, damit der Rechner "weiß", an welcher Stelle des Programms er sich gerade befindet. Das geschieht parallel zum DECODE und FETCH OPERANDS. Beim EXECUTE kann der Befehlszähler wieder verändert werden (Sprungbefehl). Anschließend kann der Zyklus von vorn beginnen und der nächste Schritt des Programms ausgeführt werden. Ist das Programm zu Ende, bleibt der Rechner stehen und beendet seine Arbeit. Doch wie bringt man einen solchen Automaten dazu, all diese Dinge zu tun?