Der Prozessor ist sozusagen das Gehirn des Computers. Hier erfahren Sie, woraus ein Prozessor besteht und wie er funktioniert.
Der Prozessor wird auch CPU genannt (Central Processing Unit), auf Deutsch übersetzt bedeutet das zentrale Bearbeitungseinheit). Er erlaubt es, digitale Informationen zu verarbeiten, das heißt Informationen, die in Binärcode codiert sind, und die Befehle auszuführen, die im Speicher aufbewahrt werden.
Der erste Mikroprozessor (Intel 4004) wurde 1971 erfunden. Es handelte sich um eine Recheneinheit von 4 Bits, getaktet mit 108 kHz. Seitdem steigt die Leistung der Mikroprozessoren in exponentieller Weise. Was sind also diese kleinen Silizium-Stücke, die unsere Computer leiten?
Der Prozessor ist eine elektronische Schaltung, die im Rhythmus einer internen Uhr getaktet ist, dank eines Kristallquarzes, der - unter Strom - Impulse sendet, die Top genannt werden. Die Uhrfrequenz (auch Zyklus genannt) entspricht der Impulsanzahl pro Sekunde, ausgedrückt in Hertz (Hz). Ein Computer mit 200 MHz besitzt demnach eine Uhr, die 200.000.000 Impulse pro Sekunde sendet. Die Taktfrequenz ist meist ein Mehrfaches der Systemfrequenz oder FSB (Front-Side Bus), das heißt ein Mehrfaches der Frequenz des Motherboard.
Bei jedem Top der Uhr führt der Prozessor eine Aktion aus, die einem Befehl oder einem Teil eines Befehls entspricht. Der Indikator, der CPI (Cycles Par Instruction) genannt wird, erlaubt es, die mittlere Anzahl an Uhrzyklen darzustellen, die zur Ausführung eines Befehls auf einem Mikroprozessor nötig sind. Die Leistung des Prozessors kann so durch die Anzahl an Befehlen charakterisiert werden, die er pro Sekunde bearbeiten kann. Die verwendete Einheit ist MIPS (Millionen Instruktionen pro Sekunde) und entspricht der Frequenz des Prozessors geteilt durch den CPI.
Eine Instruktion ist die elementare Operation, die der Prozessor ausführen kann. Die Instruktionen werden im Hauptspeicher hinterlegt, um vom Prozessor bearbeitet zu werden. Eine Instruktion besteht aus zwei Feldern:
der Operationscode, der die Aktion darstellt, die der Prozessor ausführen soll, und
dem Operandencode, der die Parameter der Aktion definiert. Der Operandencode hängt von der Operation ab. Es kann sich um Daten oder um eine Speicheradresse handeln.
Operationscode | Operandenfeld |
Die Byte-Anzahl einer Instruktion variiert je nach Datentyp (die Größenordnung liegt zwischen einem und vier Bytes).
Die Instruktionen können nach Kategorien geordnet werden. Die wichtigsten sind im Folgenden aufgezählt.
Zugang zum Speicher: Das sind Zugänge zum Speicher oder Datentransfers zwischen Verzeichnissen.
Arithmetische Operationen: Das sind Operationen wie Additionen, Subtraktionen, Divisionen oder Multiplikationen.
Logische Operationen: Das sind die Operationen UND, ODER, NEIN, ausschließendes NEIN usw.
Steuerung: Das umfasst Sequenzsteuerung, konditionelle Anschlüsse usw.
Wenn der Prozessor Instruktionen ausführt, werden die Daten vorübergehend in kleinen, schnellen Speichereinheiten von 8, 16, 32 oder 64 Bit gespeichert, die man Register nennt. Je nach Prozessortyp kann die Registeranzahl variieren, von etwa zehn bis zu mehreren Hundert.
Die Hauptregister sind:
der Akkumulator oder ACC (Accumulator), der die Ergebnisse der arithmetischen und logischen Operationen speichert;
das Statusregister oder PSW (Processor Status Word), mit dem Indikatoren über den Zustand des Systems gespeichert werden (Übertrag, Überschreitung usw.);
das Instruktionenregister oder IR (Instruction Register), welches die Instruktionen enthält, die gerade bearbeitet werden;
das Befehlszählregister oder IP (Instruction Pointer, auch PC für Program Counter), enthält die Adresse der nächsten zu bearbeitenden Instruktion;
das Pufferregister, speichert vorübergehend Daten aus dem Speicher.
Der Cache-Speicher (auch Schattenspeicher oder Pufferspeicher genannt) ist ein schneller Speicher, mit dem die Wartezeiten für Informationen, die sich im Arbeitsspeicher befinden, reduziert wird. Der Zentralspeicher des Computers besitzt eine sehr viel niedrigere Geschwindigkeit als der Prozessor. Es gibt jedoch Speicher, die sehr viel schneller sind, nur sind sie auch sehr teuer. Die Lösung besteht darin, diesen schnellen Speichertyp in der Nähe des Prozessors einzufügen und dort vorübergehend die wichtigsten Daten, die der Prozessor bearbeiten soll, zu speichern. Computer jüngerer Generation besitzen mehrere Level an Cache-Speichern:
Der L1-Cache (Level 1 Cache) ist direkt in den Prozessor integriert. Er unterteilt sich in zwei zwei Teile: Der erste ist der Instruktionen-Cache, der die beim Passieren der Pipelines dekodierten Instruktionen aus dem Arbeitsspeicher enthält. Der zweite ist der Daten-Cache, der die Daten aus dem Arbeitsspeicher und die kürzlich bei Operationen des Prozessors benutzten Daten enthält. Die Caches des ersten Levels erlauben einen sehr schnellen Zugriff. Ihre Zugriffszeit nähert sich der des internen Prozessorregisters an.
Der L2-Cache (Level 2 Cache) befindet sich auf der Ebene des Gehäuses, welches den Prozessor enthält (im Chip). Der Cache des zweiten Levels schiebt sich zwischen den Prozessor mit seinem internen Cache und den Arbeitsspeicher. Sein Zugang ist schneller als der des Arbeitsspeichers, aber weniger schnell als der des Caches des ersten Levels.
Der L3-Cache (Level 3 Cache) befindet sich auf der Ebene des Motherboard.
Alle Cache-Level erlauben es, die Latenzzeiten der verschiedenen Speicher bei Bearbeitung und Transfer der Informationen zu reduzieren. Während der Prozessor arbeitet, kann die Steuerung des Cache des ersten Levels sich mit der des zweiten Levels in Verbindung setzen, um Informationen zu übertragen, ohne den Prozessor zu blockieren. Genauso ist der Cache des zweiten Levels mit dem des Arbeitsspeichers (Cache dritten Levels) verbunden, um den Transfer zu ermöglichen, ohne die normale Funktionsweise des Prozessors zu blockieren.
Die Steuersignale sind elektrische Signale, die es ermöglichen, die verschiedenen Einheiten des Prozessors zu koordinieren, die an der Ausführung einer Instruktion beteiligt sind. Die Steuersignale werden durch ein Element verteilt, das Sequenzer genannt wird. Das Signal Read/Write, zu Deutsch Lesen/Schreiben, ermöglicht es zum Beispiel, dem Speicher zu signalisieren, dass der Prozessor eine Information lesen oder schreiben soll.
Der Prozessor besteht aus einer Reihe von Funktionseinheiten, die untereinander verbunden sind. Die Architektur eines Mikroprozessors ist sehr variabel, von einer Architektur zur anderen. Die Hauptelemente eines Mikroprozessors sind jedoch die folgenden.
Instruktionseinheit oder Steuereinheit (control unit): Sie liest die eingehenden Daten, dekodiert sie und sendet sie an die Ausführungseinheit. Die Instruktionseinheit besteht insbesondere aus drei Elementen. Der Sequenzer oder logische Steuereinheit) hat die Aufgabe, die Ausführung der Instruktionen im Rhythmus einer Uhr zu synchronisieren. Er ist so beauftragt Steuersignale zu senden. Der Befehlszähler enthält die Adresse der gerade bearbeiteten Instruktion. Das Instruktionsregister enthält die folgende Instruktion.
Ausführeinheit oder Bearbeitungseinheit: Sie führt die Aufgaben aus, die die Instruktionseinheit ihr gegeben hat. Die Ausführeinheit besteht insbesondere aus drei Elementen. Die arithmetisch-logische Einheit oder ALU (Arithmetical and Logical Unit) übernimmt die Funktion der grundlegenden arithmetischen Rechenaufgaben und der logischen Operationen (UND, ODER, ausschließendes Oder usw.). Die Fließkommaeinheit oder FPU (Floating Point Unit) übernimmt komplexe, nicht ganzzahlige Berechnungen, die die arithmetisch-logische Einheit nicht übernehmen kann. Das dritte Element ist das Statusregister.
Verwaltungseinheit der Busse oder Ein-/Ausgangseinheit): Sie verwaltet den ein- und ausgehenden Informationsfluss in Verbindung mit dem Arbeitsspeicher des Systems.
Das folgende Schema gibt eine vereinfachte Darstellung der Bestandteile eines Prozessors (die physische Anordnung der Elemente entspricht nicht der Realität):
Um Informationen bearbeiten zu können, besitzt der Mikroprozessor eine Reihe von Instruktionen, genannt Befehlssatz, der durch elektronische Schaltkreise erstellt wird. Genauer gesagt wird der Befehlssatz durch Halbleiter erstellt, das sind kleine Schalter, die den Transistoreneffet nutzen, der 1947 von John Barden, Walter H. Brattain und William Shockley entdeckt wurde, die für diese Entdeckung 1956 den Nobelpreis erhielten.
Ein Transistor (eine Zusammenziehung aus den Worten transfer resistor, zu Deutsch Transferresistenz) ist ein elektronisches Halbleiter-Bauteil, das drei Elektroden besitzt und in der Lage ist, mittels einer seiner Elektroden (genannt Steuerelektrode) den Strom zu verändern, der ihn durchquert. Man spricht von einem aktiven Bauteil, im Gegensatz zu den passiven Bauteilen (zum Beispiel Widerstand oder Kondensator), die nur zwei Elektroden besitzen (bipolär).
Der Transistor MOS (Metall, Oxyd,Silizium) ist der meistverwendete Transistortyp für die Konzipierung einer Schaltplatte. Der MOS-Transistor besteht aus zwei negativ geladenen Zonen. Diese nennt man Source (ihr Potenzial ist fast gleich Null) und Drain (mit einem Potenzial von 5 Volt). Beide sind getrennt durch eine positiv geladene Zone, die Substrat (substrate) genannt wird. Über dem Substrat befindet sich eine Steuerelektrode, genannt Gate (manchmal auch Gitter), mit der eine Spannung auf das Substrat angewendet wird.
Wenn die Steuerelektrode nicht unter Spannung steht, wirkt das positiv geladene Substrat wie eine Barriere und hindert die Elektronen daran, von der Source zum Drain zu wandern. Wenn allerdings das Gate unter Spannung steht, werden die positiven Ladungen des Substrats verdrängt und ein Verbindungskanal entsteht, der - negativ geladen - die Source und den Drain verbindet.
Der Transistor wirkt also insgesamt dank der Steuerelektrode wie ein programmierbarer Schalter. Wenn die Elektrode unter Spannung steht, wirkt sie wie ein geschlossener Schalter, im gegenteiligen Fall wie ein offener Schalter.
Wenn sie zusammengesetzt sind, können Transistoren logische Schaltkreise bilden, welche wiederum zusammengesetzt Prozessoren bilden. Der erste integrierte Schaltkreis stammt von 1958 und ist von der Firma Texas Instruments entwickelt worden.
Die MOS-Transistoren werden aus Siliziumscheiben hergestellt, genannt Wafer (zu deutsch Waffeln), die nach mehreren Behandlungen erhalten werden. Diese Siliziumscheiben werden dann in rechteckige Elemente geschnitten, die dann sogenannte Schaltkreise bilden. Die Schaltkreise werden in Gehäuse gesetzt, die Ein-/Ausgangssteckverbinder besitzen. Das Ganze bildet einen integrierten Schaltkreis. Die Feinheit der Gravierung, ausgedrückt in Mikron (Mikrometer, geschrieben µm) definiert die Anzahl der Transistoren pro Oberflächeneinheit. So kann es bis zu mehrere Millionen Transistoren auf einem einzigen Prozessor geben.
Das Mooresche Gesetz, 1965 von Gordon E. Moore, dem Mitgründer der Firma Intel, fomuliert, sagte voraus, dass die Leistungen des Prozessors (und demnach auch die Anzahl der auf Silizium integrierten Transistoren) sich alle zwölf Monate verdoppeln würde. Dieses Gesetz wurde 1975 korrigiert und die Anzahl der Monate auf 18 erhöht. Das Mooresche Gesetz bestätigt sich noch heute.
Da das rechteckige Gehäuse Ein-/Ausgangsstifte besitzt, die Beinchen ähneln, wird im Französischen der Begriff elektronischer Floh verwendet, um integrierte Schaltkreise zu bezeichnen.
Jeder Prozessor-Typ besitzt seinen eigenen Befehlsvorrat. Man unterscheidet so die folgenden Prozessorfamilien, die jede ihren eigenen Befehlsvorrat besitzen:
x86 (INTEL, AMD, 386er- und Pentium-Familie für Desktop-Computer)
TMS320 (TEXAS INSTRUMENTS TMS320xx-DSP-Familie)
PowerPC (MOTOROLA, IBM, Apple Macintosh, PowerPC-Familie)
PIC (MICROCHIP PIC-RISC-Familie)
8051 (MCS-51-Familie)
IA-64
ARM
MIPS
SPARC
Ein Programm, das für einen Prozessortyp erstellt worden ist, kann nicht ohne Weiteres auf einem System mit einem anderen Prozessortyp funktionieren, es sei denn, es gibt eine Übersetzung der Instruktionen, genannt Emulation. Der Begriff Emulator wird verwendet, um das Programm zu bezeichnen, das diese Übersetzung ausführt.
Als Befehlsvorrat bezeichnet man die Gruppe elementarer Operationen, die ein Prozessor ausführen kann. Der Befehlsvorrat eines Prozessors bestimmt so seine Architektur, wobei die gleiche Architektur - herstellerabhängig - zu unterschiedlichen Implementationen führen kann.
Der Prozessor arbeitet tatsächlich mit einer begrenzten Anzahl von Funktionen, die direkt auf den elektronischen Schaltkreis gedrahtet sind. Die meisten Operationen können mit Hilfe von Basisfunktionen realisiert werden. Manche Architekturen schließen jedoch auch hochentwickelte Funktionen in den Prozessor ein.
Die Architektur CISC (Complex Instruction Set Computer, zu Deutsch Computer mit komplexem Befehlsvorrat) besteht darin, im Prozessor komplexe Befehle zu verdrahten, die nur mit den Basis-Instruktionen schwer zu erstellen sind. Andererseits sind die Befehle von unterschiedlicher Länge und können manchmal mehr als nur einen Taktzyklus benötigen. Ein Prozessor, der auf CISC-Architektur basiert, kann allerdings nur einen Befehl auf einmal bearbeiten, woraus sich eine nicht unerhebliche Ausführungszeit ergibt.
Die CISC-Architektur wird insbesondere vom Prozessortyp 80x86 verwendet.
Ein Prozessor, der die Technologie RISC (Reduced Instruction Set Computer, zu Deutsch Computer mit begrenzten Befehlsvorrat) benutzt, hat keine hochentwickelten, verdrahteten Funktionen.
Die Programme müssen demnach in einfache Befehle übersetzt werden, wodurch die Entwicklung erschwert wird und/oder ein leistungsstärkerer Compiler gebraucht wird. Die Herstellungskosten einer solchen Architektur sind niedriger als die eines CISC-Prozessors. Außerdem werden die von Natur aus einfachen Befehle in einem Taktzyklus ausgeführt, wodurch die Ausführung der Programme schneller wird als mit den Prozessoren, die auf einer CISC-Architektur basieren. Zusätzlich sind solche Prozessoren in der Lage, mehrere Befehle simultan, das heißt parallel zu bearbeiten.
Im Laufe der Jahre haben die Hersteller von Mikroprozessoren Verbesserungen entwickelt, mit denen die Funktionsweise eines Prozessors optimiert wird.
Der Parallelismus besteht darin, simultan auf verschiedenen Prozessoren Befehle auszuführen, die das gleiche Programm betreffen. Ein Programm wird in mehrere Prozesse aufgeteilt, die parallel bearbeitet werden, um so Ausführungszeit zu sparen.
Für diese Art Technologie sind allerdings Synchronisation und Kommunikation zwischen den verschiedenen Prozessen nötig. Die Funktionsweise kann stark gestört werden, wenn die Kommunikation zwischen den einzelnen Prozessoren nicht gut funktioniert.
Die Pipeline (Pipelining) ist eine Technologie, die eine größere Ausführungsgeschwindigkeit ermöglicht, indem die Etappen parallel geschaltet werden.
Um den Mechanismus der Pipeline zu verstehen, muss man zuerst die Ausführungsphasen eines Befehls verstehen. Die Ausführungsphasen eines Befehls für einen Prozessor, der eine klassische Pipeline mit fünf Etagen beinhaltet, sind folgende:
Befehlsbereitstellung oder FI ( FETCH instruction ) ab dem Cachespeicher;
Decodierung des Befehls oder DI (DECODe instruction) und Operandenbereitstellung (Register oder unmittelbare Werte);
Befehlsausführung oder EX (EXECute instruction), bei ADD wird die Summe ermittelt, bei SUB wird abgezogen usw.;
Speicherzugriff oder MEM (MEMory access), wenn nötig Schreiben im Speicher oder Laden ab dem Speicher;
Schreiben oder ER (Write instruction) des errechneten Wertes in die Register.
Die Befehle stehen sozusagen "Schlange" in dem Speicher und werden einer nach dem anderen geladen.
Dank der Pipeline braucht die Informationsbearbeitung maximal die fünf genannten Etappen. Da die Reihenfolge dieser Etappen variabel ist (FI, DI, EX, MEM und ER), ist es möglich, im Prozessor eine gewisse Anzahl an spezialisierten Schaltungen für jede dieser Phasen herzustellen.
Ziel der Pipeline ist es, in der Lage zu sein, jede Etappe parallel zu den vorhergehenden und zu den folgenden zu absolvieren, das heißt einen Befehl lesen zu können (FI), während der vorhergehende decodiert wird (DI), der davor in Ausführung ist (EX), der diesem vorausgehende auf den Speicher zugreift (MEM) und schließlich der erste der Serie schon in der Schreibphase in den Registern ist (ER).
Man muss meist ein bis zwei Taktzyklen (selten mehr) für jede Phase der Pipeline berechnen, das heißt maximal zehn Taktzyklen pro Befehl. Für zwei Befehle sind maximal zwölf Taktzyklen nötig (10+2=12 anstatt 10*2=20), denn der vorhergehende Befehl ist schon in der Pipeline. Beide Befehle werden also im Prozessor bearbeitet, mit einer Zeitverschiebung von ein oder zwei Taktzyklen. Für drei Befehle sind so 14 Taktzyklen notwendig usw.
Das Prinzip der Pipeline ist damit dem einer Auto-Produktionskette vergleichbar. Die Autos gehen von einem Arbeitsplatz zum nächsten, folgen dabei der Montagekette und kommen vollständig zusammengesetzt aus der Halle. Um das Prinzip richtig zu verstehen, muss die Kette als Ganzes betrachtet werden und nicht jedes Auto einzeln. So braucht man drei Stunden, um ein Auto zusammenzubauen, es wird jedoch ein Auto pro Minute produziert.
Es gibt verschiedene Pipeline-Typen mit zwei bis 40 Etagen, das Prinzip bleibt aber dasselbe.
Die Technologie Superskalar (superscaling) besteht darin, mehrere Bearbeitungseinheiten parallel aufzustellen, um so mehrere Befehle pro Zyklus bearbeiten zu können.
Die Technologie Hyper-Threading oder HT (auf Deutsch etwa zu übersetzen mit Hyper-Fluss) besteht darin, zwei logische Prozessoren in einem physischen Prozessor zu definieren. So erkennt das System zwei physische Prozessoren, verhält sich als Mehrfadensystem und schickt zwei Threads gleichzeitig, man spricht dann von SMT (Simultaneous Multi Threading). Dieser Trick ermöglicht es, die Ressourcen des Prozessors besser auszunutzen, indem garantiert wird, dass ihm Daten in großen Mengen geschickt werden.
Foto: © Pixabay.