Prozessoren Prozessoren Seite 1 von 9 Philipp Grasl 1AHWIM
Inhalt 1. Definierung Prozessor:... 3 2. Historische Entwicklung:... 3 3. Aufbau:... 4 3.1 Register:... 4 3.2 Rechenwerke:... 4 3.3 Befehlsdecoder:... 4 3.4 Steuerwerke:... 4 3.5 Datenleitungen:... 4 3.6 Caches:... 5 4. Funktionsweise:... 5 5. Steuerung:... 6 6. Symbolische Maschinenbefehle:... 6 7. Binäre Maschinenbefehle:... 6 8. Befehlssatz:... 6 9. Prozessorkern:... 7 10. Leistungsmerkmale:... 8 11. Wortbreite:... 8 12. Prozessortakt:... 8 13. Prozessorarten:... 8 Prozessoren Seite 2 von 9 Philipp Grasl 1AHWIM
1. Definition Prozessor: Ein Prozessor ist eine Maschine oder ein elektronische Schaltung. Er wird über eine andere Maschine oder über eine andere elektrische Schaltung gesteuert. Dabei wird ein Prozess oder ein Algorithmus vorangetrieben, was meist eine Datenverarbeitung beinhaltet. Am häufigsten wird ein Prozessor als zentrale Recheneinheiten von Computern angewendet, in denen sie Befehle ausführen. Die Hauptbestandteile eines Prozessors sind die Register, das Rechenwerk, das Steuerwerk und der Speichermanager, der den Arbeitsspeicher verwaltet. Die zentralen Aufgaben des Rechners sind arithmetische und logische Operationen, das Lesen und Schreiben von Daten im Arbeitsspeicher, das Ausführen von Sprüngen im Programm, sowie die Steuerung und Verwaltung Peripheriegeräte. Prozessoren werden meist im eingebetteten Bereich verwendet. Viele Computer haben schon mehr Prozessoren, aber alle werden von dem Hauptprozessor gesteuert. Im allgemeinen Sprachgebrauch ist mit Prozessor meist der Zentralprozessor (CPU = Central Processing Unit) eines Computers gemeint, also das funktionale Kernstück eines elektronischen Rechners, das heute normalerweise auf einem Mikrochip integriert ist. Die neue Form des Prozessors ist der Mikroprozessor, der alle Bausteine eines Prozessors auf einem Chip vereinigt. 2 Kern, 4 Kern oder noch mehr Kernprozessoren gehören zu den modernen Prozessoren am Markt. Prozessor für eingebettete Systeme machen 95% des Markts aus, wobei davon 90% davon Microcontroller sind. Microcontroller enthalten neben dem eigentlichen Prozessor noch weitere Funktionen wie zum Beispiel Rom oder Ram. 2. Historische Entwicklung: Früher in den 1930 Jahren bestand das Rechenwerk von einem Computer aus Relais und mechanischen Bauelementen. Das Resultat von dem elektromechanischen Rechner war, das die Rechner sehr langsam und sehr störanfällig waren. In den 1940 Jahren baute man Computer mit Röhren, die dann schneller und weniger störanfällig waren. 10 Jahre später wurden die Röhrencomputer serienhaft produziert und an Universitäten, Forschungseinrichtungen und anderen Firmen verkauft. Die Röhren im Computer wurden nur auf das nötigste produziert, dass die Firmen sich auch es leisten konnten. So begann man damit, Hauptspeicher und CPU-Register auf einer Magnettrommel unterzubringen, Rechenoperationen seriell auszuführen und die Ablaufsteuerung mit Hilfe einer Dioden Matrix zu realisieren. Der LGP-30 war ein typischer Vertreter dieser Rechengeneration. In den frühen 1960 Jahren verdrängte man die Röhren mit den Transistoren. Nach der Zeit brachte man immer mehr Transistfunktionen auf integrierten Schaltkreisen (ICs)unter. Mit der Zeit integrierte man auch Register und ganze Funktionseinheiten wie Addierer und Zähler. Schließlich werden dann auch Registrierbänke und Rechenwerke auf einem Chip integriert. Die Integration der Transistor- und Gatterfunktion auf einem Chip, führte dann zu dem was heute der Mikroprozessor ist. Prozessoren Seite 3 von 9 Philipp Grasl 1AHWIM
3. Aufbau: Die Bestandteile des Prozessors aus Register, einem Rechenwerk, einem Befehlsdecoder, einem Steuerwerk, sowie den Datenleitungen, die den Kontakt mit anderen Komponenten ermöglichen. 3.1 Register: Register sind prozessinterne Speicher, die eine Verbindung zu anderen Prozessorkomponenten bereitstellen. Nur mit den Daten aus den Registern können Operationen durchgeführt werden. Register ist die erste Stufe des Speicherarchivs. Arbeitsregister können Daten (als Datenregister) und, abhängig vom Prozessortyp, auch Adressen (als Adressregister) aufnehmen. Das Befehlszählregister nimmt immer die Adresse des Befehls auf, der als Nächstes ausgeführt werden soll. Es wird daher auch häufig Instruktion Pointer (IP) genannt. Das Befehlsregister nimmt binäre Maschinenbefehle auf. Von der Größe der Register hängt die Leistung von dem Prozessor ab. 3.2 Rechenwerke: Die Elementaroperation eines Rechners werden von dem Rechenwerk durchgeführt. Das Rechenwerk kann arithmetische sowohl auch logische Operationen durchführen. 3.3 Befehlsdecoder: Der Befehlscoder übersetzt binäre Maschinenbefehle Mithilfe der Befehlstabelle, in entsprechende Anweisungen, welche die für die Ausführung des Befehls benötigten Schaltungen aktivieren. 3.4 Steuerwerke: Das Steuerwerk hat die Aufgabe die Ausführung der Anweisungen zu kontrollieren. Es sorgt dafür, dass der Maschinenbefehl im Befehlsregister vom Befehlsdecoder decodiert und vom Rechenwerk ausgeführt wird, lädt den an der im Befehlszählerregister hinterlegten Adresse befindlichen Befehl ins Befehlsregister sowie die nächste Adresse ins Befehlszählerregister. 3.5 Datenleitungen: Der Prozessor ist über verschiedene Signalleitungen mit anderen Komponenten verbunden. Über den Datenbus werden Daten mit dem Arbeitsspeicher ausgetauscht, etwa die Informationen für die Arbeitsregister und das Befehlsregister. Je nach verwendeter Prozessorarchitektur hat ein Hauptprozessor (eine CPU) einen einzigen Bus für Daten aus dem Arbeitsspeicher (Von Neuman Architektur) Prozessoren Seite 4 von 9 Philipp Grasl 1AHWIM
oder mehrere (meist zwei) separate Datenleitungen für den Programmcode und normale Daten (Harvard-Architektur). Der Adressbus dient zur Übertragung von Speicheradressen. Dabei wird jeweils eine Speicherzelle des RAM adressiert (ausgewählt) in die je nach Signal des Steuerbusses die Daten, die gerade auf dem Datenbus liegen, geschrieben oder aus denen die Daten gelesen, da her auf den Datenbus gelegt, werden. Mit dem Steuerbus (Kontrollbus) steuern der Prozessor und auch die Peripherie-Anschlüsse (z.b. USB, PCI) an. 3.6 Caches: Moderne Prozessoren, mit einer schnellen Datenverarbeitung, sind mit Caches ausgestattet. Caches sind Zwischenspeicher, die die letzten verarbeiteten Daten und Befehle enthalten und so die rasche Wiederverwendung ermöglichen. Sie stellen die zweite Stufe der Speicherarchive dar. Normalerweise besitzt ein Prozessor heutzutage bis zu drei verschiedene Caches: Level-1-Cache (L1-Cache): Dieser Cache ist sehr klein, aber Aufgrund seiner Position im Prozessorkerns ist er sehr schnell aufrufbar. (etwa 4-256Kilobyte) Level-2-Cache (L2-Cache): Er befindet sich meist im Prozessor, aber nicht im Prozessorkern. (etwa 64 Kilobyte bis 12 Megabyte) Level-3-Cache (L3-Cache): Der Cache ist der langsamste, aber auch der größte. (bis 256 Megabyte) 4. Funktionsweise: Die Befehlsbearbeitung moderner Prozessoren folgt dem Von-Neumann-Zyklus. Aus dem Befehlszählregister wird die Adresse des nächsten Maschinenbefehls gelesen. Dieser wird aus dem Arbeitsspeicher in das Befehlsregister geladen. (FETCH) Der Befehlsdecoder decodiert den Befehl und aktiviert entsprechende Schaltungen, die für die Ausführung des Befehls nötig sind. (DECODE) Von der Festplatte, einem Wechseldatenträger, dem Arbeitsspeicher oder einem Cache-Speicher werden Daten in die Arbeitsregister geladen, die zur Ausführung nötig sind (etwa zu verändernde Werte oder benötigte Parameter). (FETCH OPERANDS) Der Befehl wird ausgeführt. Dies kann die Ansteuerung von Peripheriegeräten, die Ausführung von Operationen im Rechenwerk oder ein Sprung im Programm (eine Veränderung des Befehlszählerregisters) sein. (EXECUTE) Sollte kein Sprungbefehl in der EXECUTE-Phase erfolgt sein, wird nun der Befehlszähler um 1 erhöht (UPDATE INSTRUCTION POINTER) Die Hardware kann Anfragen an den Prozessor stellen. Somit ist der Prozessor gezwungen diese immer zu prüfen. Prozessoren Seite 5 von 9 Philipp Grasl 1AHWIM
5. Steuerung: Als eine Folge von binären Maschinenbefehlen liegen alle Programme in einem Speicher. Nur diese und keine anderen Befehle können vom Prozessor verarbeitet werden. Für einen Menschen sind die Maschinenbefehle fast nicht lesbar, darum werden Programme erst in einer Assemblersprache oder Hochsprache geschrieben(basic, C, C++, Java) und dann von einem Compiler in Maschinenbefehle übersetzt oder von einem Interpreter zur Laufzeit ausgeführt. 6. Symbolische Maschinenbefehle: Für die Ermöglichung Programme verständlich und in Akzeptabler Zeit zu schreiben, wurde die Assemblersprache eingeführt. Jedem Maschinenbefehl wird genau ein Schlüsselwort sind der Assemblersprache zugeordnet. Somit ist auch kein Rückschluss von den Maschinenbefehlen auf das Assemblerprogramm möglich. Da jeder Prozessortyp eigene Maschinenbefehle besitzt, existiert für ihn auch eine eigene Assemblersprache. Prozessorunabhängige Programmierung ist erst mit der Benutzung einer Hochsprache möglich, der entsprechende Compiler ist jedoch wieder prozessorspezifisch. Befehle, die für jeden Prozessor gebraucht werden, sind normalerweise identisch. Die Reihenfolge der Ausführung der Assemblerbefehle ist vom Prozessortyp abhängig, in den nachfolgenden Beispielen erfolgt sie von rechts nach links: MOV BX, $85F3 Der Wert, der an der Adresse 85F3 (hexadezimale Schreibweise) im Arbeitsspeicher liegt, wird in das Arbeitsregister BX geladen. ADD BX, 15 Der Wert 15 wird zum Inhalt des Arbeitsregisters BX addiert. 7. Binäre Maschinenbefehle: Maschinenbefehle sind prozessorabhängig und bestehen aus mehreren Teilen. Diese umfassen zumindest den eigentlichen Befehl, den Operationscode (OP-CODE), die Adressierungsart, und den Operandenwert oder eine Adresse. Sie können grob in folgende Kategorien eingeteilt werden: Arithmetische Befehle Logische Befehle Sprungbefehle Transportbefehle Prozessorkontrollbefehle 8. Befehlssatz: Als Befehlssatz bezeichnet man die Menge aller Maschinenbefehle eines Prozessors. Der Umfang des Befehlssatzes variiert je nach Prozessortyp beträchtlich. Nach der Größe des Befehlssatzes kann man zwischen CISC (engl. Complex Instruction Set Computing - Rechnen mit komplexem Befehlssatz) und RISC (engl. Reduced Prozessoren Seite 6 von 9 Philipp Grasl 1AHWIM
Instruction Set Computing - Rechnen mit reduziertem Befehlssatz)- Prozessorarchitekturen unterscheiden: Die traditionelle CISC-Architektur versucht, immer mehr und immer komplexere Funktionen direkt durch Maschinenbefehle auszudrücken. Sie zeichnet sich besonders durch die große Anzahl zur Verfügung stehender Maschinenbefehle aus, die meist 100 überschreitet. Diese sind außerdem in der Lage, vielschrittige Operationen direkt auszuführen (etwa Gleitpunkt-Operationen). Dadurch sind die erforderlichen Übersetzungsprogramme (Assembler, Compiler und Interpreter) kleiner und einfacher zu programmieren. Die neuere RISC-Architektur versucht, möglichst wenige (weniger als 100), dafür jedoch sehr schnelle und einfache Befehle zur Verfügung zu stellen. Dies ermöglicht eine wesentlich schnellere Ausführungsgeschwindigkeit, da weniger Taktzyklen benötigt werden und die Dekodierung aufgrund geringerer Komplexität schneller ist. Auch das Design von Prozessoren mit RISC- Architektur ist einfacher. Die Adressanzahl unterscheidet man zusätzlich auch noch im Maschinenbefehl: 0-Adressbefehle (Stackrechner) 1-Adressbefehle (Akkumulatorrechner) 2-Adressbefehle (typischerweise CISC-Rechner) 3-Adressbefehle (typischerweise RISC-Rechner) 9. Prozessorkern: Den Prozessorkern bezeichnet man als das Rechen- und Steuerwerk, und die Komponenten herum wie Caches und Memory Management Unit angeordnet sind. Ein Prozessor kann aus mehreren Prozessorkernen bestehen(mehrkernprozessor). Die Begriffe Single-Core-Prozessor, Dual-Core-Prozessor, Ouad-Core-Prozessor usw. Den L1 und L2 Cache hat jeder Kern, aber den L3 Cache müssen sich meistens alle Kerne teilen. Der Grund für die Einführung solcher Mehrkernprozessoren liegt in den physikalisch begrenzten Möglichkeiten, einen einzelnen Kern immer schneller zu machen. Die fortschreitende Miniaturisierung von Halbleiterschaltelementen ermöglicht allerdings, dass mehr als ein Kern auf einen Mikrochip passen. Mittlerweile können Strukturen mit einer Kantenlänge unter 32 Nanometer gefertigt werden, womit bis zu 1,9 Milliarden Transistoren in einem Prozessor verbaut werden können. Die EUV-Lithografie macht noch kleinere Strukturen möglich. Es ist jedoch damit zu rechnen, dass die Miniaturisierung der konventionellen Prozessortechnik in absehbarer Zeit unüberwindbare Grenzen erreicht. Langfristig könnten sogenannte Quantencomputer die klassische Transistortechnik ablösen. Prozessoren von heute besitzen Steuerwerke die mehrere Hardware-Threads verwalten. Außerdem betreibt ein Steuerwerk oft mehrere ALUs sowie noch weitere Baugruppen wie z.b. Gleitkomma-Recheneinheit, Vektoreinheit oder eine Kryptographie-Einheit. Umgekehrt müssen sich manchmal mehrere Steuerwerke diese Spezial-Recheneinheiten teilen, was eine eindeutige Zuordnung verhindert. Prozessoren Seite 7 von 9 Philipp Grasl 1AHWIM
10. Leistungsmerkmale: Die Leistung eines Prozessors wird maßgeblich durch die Anzahl der Transistoren sowie durch die Wortbreite und den Prozessortakt bestimmt. 11. Wortbreite: Die Wortbreite legt fest, wie lang ein Maschinenwort des Prozessors sein darf. Ausschlaggebend sind dabei folgende Werte: Arbeits- oder Datenregister: Die Wortbreite bestimmt die maximale Größe der verarbeitbaren Ganz- und Gleitkommazahlen. Datenbus: Die Wortbreite legt fest, wie viele Bits gleichzeitig aus dem Arbeitsspeicher gelesen werden können. Adressbus: Die Wortbreite legt die maximale Größe einer Speicheradresse, daher die maximale Größe des Arbeitsspeichers, fest. Steuerbus: Die Wortbreite legt die Art der Peripherieanschlüsse fest. 12. Prozessortakt: Er wird nicht vom Prozessor selbst bestimmt, sondern er ist ein Vielfaches des Mainboard Grundtaktes. Manuel oder im BIOS lässt sich der Prozessortakt einstellen. Das Übertakten führt gerne zu Schäden an der Hardware. Für die CPU- Ausführungszeit: CPU-Ausführungszeit = CPU-Taktzyklen Taktzykluszeit Für die Taktzykluszeit: Taktzykluszeit = 1 / Taktrate = Programmbefehle CPI Taktzykluszeit Viele andere Faktoren sind auch noch für die Geschwindigkeit des Prozessors abhängig. 13. Prozessorarten: Ein Digitaler Signalprozessor (DSP) ist ein Prozessor, der analoge Signale mit Hilfe digitaler Systeme verarbeitet. DSPs sind nach der Harvard-Architektur aufgebaut, haben also getrennte Bussysteme für Daten und Befehle. Da die Multiplikation eine zentrale Operation der digitalen Signalverarbeitung ist, wird sie meist mit Hilfe eines Barrel-Shifters, einer in der Digitaltechnik gebräuchlichen Schiebelogikschaltung, ausgeführt. o Spezialisierte Ein-/Ausgabeprozessoren sind Prozessoren die Ein- und Ausgabegeräte steuern. o Der Grafikprozessor (GPU, engl. Graphics Processing Unit, neuerdings auch zunehmend VPU für Visual - oder auch Video Processing Unit ) dient zur Berechnung von Grafikdaten für die Bildschirmausgabe. o Der Hauptprozessor (CPU, engl. Central Processing Unit ), im allgemeinen Sprachgebrauch oft auch nur als Prozessor bezeichnet, Prozessoren Seite 8 von 9 Philipp Grasl 1AHWIM
ist der zentrale (Haupt-)Prozessor eines Computers, der alle anderen Bestandteile steuert. o Ein mathematischer Koprozessor (FPU, engl. Floating Point Unit ) ist ein spezieller Prozessor, der der Verarbeitung von Gleitkommazahlen dient. Einst als separater Prozessor realisiert ist der mathematische Koprozessor in modernen Hauptprozessoren in Form einer speziellen Recheneinheit integriert. o Der Notebookprozessor oder auch Mobilprozessor ist eine Unterart von Hauptprozessoren, die vor allem in mobilen und auch in besonders stromsparenden Computersystemen verwendet wird. o Ein Physikbeschleuniger (PPU, engl. für Physics Processing Unit ) ist ein Prozessor, der auf die Verarbeitung und Berechnung von physikalischen Effekten spezialisiert ist. o Ein Soundprozessor (SPU, engl. Sound Processing Unit ) ist ein auf Klangverarbeitung und -erzeugung spezialisierter Prozessor. 1 1 Quelle: http://de.wikipedia.org/wiki/prozessor_(hardware) Prozessoren Seite 9 von 9 Philipp Grasl 1AHWIM