Der Prozessor ist sozusagen das Gehirn des Computers. Hier erfahren Sie, woraus ein Prozessor besteht und wie er funktioniert.
Vorstellung des Prozessors
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?
Funktionsweise eines Prozessors
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.
Instruktion
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.
Register
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.
Cache-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.
Steuersignale
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.
Funktionseinheiten
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):
Transistor
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.
Integrierte Schaltkreise
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.
Prozessor-Familien
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.
Befehlsvorrat
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.
CISC-Architektur
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.
RISC-Architektur
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.
Der Parallelismus
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
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.
Superskalar-Technologie
Die Technologie
Superskalar (
superscaling) besteht darin, mehrere Bearbeitungseinheiten parallel aufzustellen, um so mehrere Befehle pro Zyklus bearbeiten zu können.
Hyper-Threading
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.