![]() |
||
|
|
Prozessor-ArchitekturDie Architektur moderner Prozessoren ist sehr komplex. Um ein Grundverständnis für die Arbeitsweise von Prozessoren zu bekommen, verwendet man eine vereinfachte Architektur, die auch in modernen Prozessoren noch gültig ist. Obwohl jeder Mikroprozessor für eine spezielle Anwendung entwickelt wird, sind sie vom Grundaufbau her alle gleich. Die folgende Beschreibung bezieht sich auf die logische Zusammensetzung eines Prozessors.
Ein Prozessor besteht grob gesehen aus Rechenwerk, Steuerwerk und internem Speicher. Über ein Bus-Interface greift der Prozessor auf den Systembus zu. Moderne Prozessoren haben einen zusätzlichen Speicher, einen integrierten Speichercontroller und Coprozessor-ähnliche Verarbeitungseinheiten, die in den Prozessor-Chip integriert sind. Control Unit (CU) / Steuerwerk
Im Steuerwerk befindet sich das Befehlsregister, das alle Befehle enthält, die der Prozessor ausführen kann. Hier werden auch die Befehle dekodiert. Der Befehlsdecoder übersetzt die Befehle und übergibt sie der Ausführungseinheit, die den Befehl dann ausführt. Die Ausführungseinheit übergibt die Daten zur Berechnung an das Rechenwerk und erhält von dort das Ergebnis zurück. Wichtige Daten, die während der Ausführung gebraucht werden, werden in Registern zwischengespeichert. Ein Register ist der schnellste Speicher in einem Prozessor. Arithmetic Logic Unit (ALU) / Rechenwerk
Interner Speicher (Akku/Register)Der Akku ist ein interner Speicher und Teil des Rechenwerks. Während man in den ersten Mikroprozessoren den internen Speicher noch Akkumulator, kurz Akku, nannte, haben die gleiche Aufgabe heute die Register. Erweiterte ArchitekturDie Verbindung zwischen Prozessor, Speicher und Ein-/Ausgabe-Einheit ist schon immer ein Flaschenhals gewesen. Im Laufe der Zeit haben die Computer- und Prozessor-Hersteller immer wieder nach Wegen gesucht diesen Engpass zu umgehen. Der erste Schritt war, den Prozessor mit einer hierarchisch gegliederten Speicherstruktur aus Registern und verschiedenen Cache-Ebenen zu erweitern.
Da das ursprüngliche Rechenwerk, die ALU, für vielerlei Verarbeitungsprozesse wenig geeignet war, wurden zusätzliche Recheneinheiten entwickelt, die für bestimmte Aufgaben optimiert wurden.
In einem weiteren Schritt wurde die ursprünglich sequenzielle Befehlsausführung parallelisiert. Dazu bekamen die Prozessoren mehrere Funktionseinheiten und Ausführungsebenen, um pro Taktzyklus mehrere Befehle parallel verarbeiten zu können. MMU - Memory Management UnitDie MMU ist ein wichtiger Teil eines Prozessors, wenn es darum geht, teile des Speichers zu reservieren, um Software in geschützten Bereichen ablaufen lassen zu können. Sonst würde man ständig Gefahr laufen, dass parallel laufende Applikationen sich gegenseitig überschreiben würden. Die Folge wäre, dass ein solcher Fehler das Gesamtsystem zum Absturz bringen würde. CacheAufgrund der großen Datenmengen, die ein Prozessor verarbeiten muss, ist der interne Speicher mit den Registern nicht groß genug. Um die langsamen Zugriffe auf den Arbeitsspeicher zu verkürzen, werden Teile des Arbeitsspeichers vorab in den Cache geladen. Bei Bedarf stehen die Daten schneller zur Verfügung. Die CPU ist weniger mit Warten beschäftigt. FPU - Floating Point Unit - Gleitkomma-EinheitEine CPU mit FPU kann Operationen mit Gleitkommazahlen schneller ausführen als CPUs ohne FPU. Die Gleitkomma-Einheit ist in x86-CPUs fast ein eigener Prozessor mit eigenen Befehlen. Seit dem i486DX von Intel ist diese Einheit in der CPU integriert. Davor war die FPU in einen Coprozessor ausgelagert. Auch andere Prozessor-Hersteller haben die Gleitkomma-Einheit in ihre Prozessoren integriert. Ablauf einer Befehlsausführung
Programmierung eines ProzessorsEine Programmiersprache ist eine Sprache, um einem Prozessor zu sagen, was er tun soll. Sie besteht im wesentlichen aus definierten Befehlen. Neben den höheren Programmiersprachen gibt es das sehr einfache Assembler. Einfach deshalb, weil es für jeden Assembler-Befehl eine oder mehrere genau definierte Maschineninstruktionen gibt. Der Prozessor versteht jedoch kein Assembler. Es handelt sich bei Assembler um eine bequemere Schreibweise der Maschinensprache für den Menschen. Der Assembler hat die Aufgabe die mnemonische Schreibweise in die eigentliche Maschinensprache zu übersetzen. Die Maschinensprache ist im Prinzip eine Aneinanderreihung von Bits, die bestimmte Vorgänge im Prozessor auslösen.
Die Befehle eines Programms müssen in binärer Form in den Speicher geschrieben werden:
Eine Maschinensprache hat folgende grundlegenden Befehlsarten:
Moderne Prozessoren haben zusätzliche Befehle:
TaktungGrundsätzlich muss man zwischen Prozessoren unterscheiden, die eine Eigentaktung haben und solchen, die ihren Takt von außen bekommen. Egal wie der Takt erzeugt wird, er wird immer vom Prozessor-Hersteller festgelegt. Weitere verwandte Themen:Bookmark
|
|||||||||||