Grundbegriffe Prozessor

In Fachkreisen werden häufig Begriffe, meist in Englisch, verwendet. Die Nachfolgende Liste ist nicht vollständig. Sie erklärt jedoch die wichtigsten Begriffe im Zusammenhang mit Prozessoren.

Codename

Der Codename kennzeichnet eine Prozessor-Generation, die aus einem Fertigungsprozess stammt. Der Codename wird nicht immer eindeutig verwendet und selten offiziell von den Herstellern einer Produkt-Kategorie zugeordnet. Fachleute benutzen Codenamen, um zwischen Prozessor-Generationen eines Prozessortyps unterscheiden zu können.

Beispiele für aktuelle Prozessor-Codenamen: Sandy-Bridge, Nehalem, Bulldozer.

Multiplikator

Der Multiplikator ist der Faktor, mit dem die Taktfrequenz eines Prozessors eingestellt wird. Als Basis dient die Basistaktfrequenz. Die Basistaktfrequenz hängt vom Prozessor und vom Hersteller ab.
Die Taktfrequenz des Prozessors ergibt sich in der Regel aus einer Basistaktfrequenz von 100, 133,33 oder 200 MHz und dem Multiplikator. Das bedeutet, bei einer Basistaktfrequenz von 100 MHz und einem Multiplikator von 20 hat der Prozessor einen internen Takt von 2,0 GHz.

Stepping und Revision

Nicht nur Software, auch Prozessoren können Bugs enthalten. Wie bei der Software gibt es bei Prozessoren verschiedene Versionsstände. Wird ein Fehler bekannt, wird er behoben und der Prozessor in einer neuen Version hergestellt. Statt Version haben sich hier die Begriffe "Stepping" und "Revision" durchgesetzt.

Hardware-Beschleunigung

Zur Hardware-Beschleunigung zählen Spezialfunktionen in Prozessoren, Chipsätzen und Erweiterungskarten. Meistens finden sich in Prozessoren entsprechende Erweiterungen, die Computer mit speziellen Anwendungen unterstützen. Zum Beispiel Server, PCs, Notebooks, Tablets und Smartphones. Besonders leistungsschwache und akkubetriebene Geräte sind auf Hardware-Beschleunigung angewiesen. Sie sorgt dafür, dass immer wiederkehrende rechenintensive Software-Bestandteile einen Leistungsschub durch spezielle Funktionen in der Hardware unterstützt werden.
Außerhalb kleiner mobiler Geräte hat sich die Hardware-Beschleunigung nur in Ausnahmefällen durchgesetzt. Dazu zählen DirectX und OpenGL. Software, die auf spezielle Hardware angewiesen ist, hat es besonders schwer.

Das Problem dabei ist, dass Software-Entwickler beim Programmieren mit Funktionen der Hardware-Beschleunigung mehr Aufwand betreiben müssen. Meist lohnt sich das nicht, weil dabei das Marktpotential schrumpft. Meist benötigt Software keine spezielle Hardware, sondern orientiert sich nur an einfachen Systemvoraussetzungen, wie Prozessor, Arbeitsspeicher und Betriebssystem. Weil PC-Besitzer ihre Computer nur sehr langsam austauschen, brauchen Hardware-Neuerungen sehr lange, bis sie sich im Markt durchgesetzt haben. Ein Software-Entwickler kann also nicht davon ausgehen, dass spezielle Hardware-Funktionen auf den Computern ihrer Software-Kunden vorhanden sind.

Anders sieht es bei kleinen mobilen Geräten, wie Smartphones und Tablets aus. Hier bilden Betriebssystem, Entwicklungsumgebung und Hardware häufig eine Einheit. Wobei die Hardware so speziell ist, dass nur ein bestimmtes Betriebssystem darauf läuft. Software-Entwickler haben es hier einfacher. Sie nutzen einfach die Entwicklungsumgebung, die zum System dazugehört. Die berücksichtigt schon bei der Entwicklung die speziellen Funktionen der Hardware-Beschleunigung.

Virtualisierung

Virtualisierung ist eine Hardware-Unterstützung, die den Betrieb virtueller Computer auf einem Computer erleichtert oder beschleunigt. Mit der Virtualisierung kann man mehrere Software-Systeme parallel auf einer Hardware laufen lassen. Das können zum Beispiel unterschiedliche Betriebssysteme sein.
Der Begriff Virtualisierung ist mehrdeutig. Typischerweise versteht man unter Virtualisierung die Prozessor-Virtualisierung. Neben der Prozessor-Virtualisierung gibt es auch noch andere Möglichkeiten. Dazu zählt zum Beispiel das Partitionieren von Festplatten oder die Netzwerk-Virtualisierung durch VLAN.

Parallelisierung

Weil bei der Abarbeitung von Programmcode immer wieder Verzögerungen auftreten, sind moderne Prozessoren intern so strukturiert, dass die anstehenden Aufgaben auf mehrere parallel arbeitende Einheiten verteilt werden. Auf diese Weise kommt die zur Verfügung stehende Rechenleistung eines Prozessors viel besser zur Geltung.

Multicore

Multicore bedeutet, dass in einen Prozessor mehrere Prozessor-Kerne eingebaut werden. Man bezeichnet diese Prozessoren als Multi-Core- oder Mehrkern-Prozessoren.
Prozessoren mit mehr als zwei Kernen haben es jedoch schwer sich bei der normalen Nutzung zu beweisen. Denn mehr als zwei Kerne bedarf Anwendungen, die ihre Berechnungen auf mehreren Prozessorkernen verteilen können.

Integrationsgrad und Strukturbreite

Der Integrationsgrad ist ein Maß, wie viele Funktionen auf einem Schaltkreis untergebracht werden können. Man unterscheidet zwischen einem niedrigen, mittleren, hohen und sehr hohen Integrationsgrad. Bei der Herstellung von integrierten Schaltkreisen, dazu zählen auch Prozessoren, bezieht man sich häufig auf die Strukturbreite. Damit ist die Breite der einzelnen Leiterbahnen auf dem Schaltkreis gemeint. Im Laufe der Zeit wird die Strukturbreite immer kleiner. Das bedeutet, dass immer mehr Transistoren in einem Schaltkreis untergebracht werden können. Das ist deshalb notwendig, weil die Prozessoren immer komplexer werden.

Je kleiner die Strukturbreite,

Bei der Angabe der Strukturbreite bezieht man sich auf einen bestimmten Herstellungsprozess. Hierbei wird von der µm-Technologie oder vom µm-Prozess gesprochen.

MIPS - Million instructions per second - Mega instructions per second

MIPS ist der Maßstab für die Schnelligkeit eines Prozessors. Dabei kommt es nicht nur darauf an, wie schnell ein Prozessor getaktet ist, sondern wie viele Befehle pro Sekunde verarbeitet werden können. Hier reicht die Taktgeschwindigkeit als Maß alleine nicht aus. Es spielt auch die Effektivität der Befehlsausführung eine große Rolle.

FLOPS - Floating Point Operations per Second

3D-Grafik-, Audio- und Videoverarbeitung sind auf eine möglichst schnelle Fließkomma-Berechnung angewiesen. Deshalb wird die Multimedia-Fähigkeit eines Prozessors durch die Anzahl der durchführbaren Fließkomma-Operationen pro Sekunde angegeben. Die Bezeichnung dafür ist FLOPS (Floating Point Operations Per Second).

Fehler in Prozessoren: Bugs

Nicht nur Software, auch Prozessoren können Bugs enthalten. Durch die steigende Größe der Prozessoren, in denen mehrere Millionen Transistoren untergebracht sind, steigt auch die Anzahl der Fehler, die sich innerhalb eines Prozessors befinden. Einige Fehler können durchaus ernster Natur sein. Besonders dann, wenn sie zum Absturz des Systems führen, falsche Daten berechnen oder einen Datenverlust verursachen. Es kann auch sein, dass diese Fehler potenzielle Sicherheitsrisiken darstellen, weil sie sich möglicherweise als Schwachstellen von Schadsoftware ausnutzen lassen.

Die meisten CPU-Fehler treten mit realem Code sehr selten auf, weshalb die Prozessor-Hersteller die Fehler selbst in Laborversuchen nur unter extremen Bedingungen finden. Sie versorgen Hardware-Entwickler und Programmierer mit Hinweisen, wie sich diese Bugs umgehen lassen. Die Fehlerdokumentation erfolgt je nach Hersteller mehr oder weniger öffentlich und schnell.
Die meisten Prozessor-Hersteller korrigieren die Fehler in optimierten Neuauflagen der CPU-Kerne, also in neuen CPU-"Steppings".
Oft lassen sich Fehler von Programmierern oder vom Compiler vermeiden, in dem bestimmte Befehle oder Befehlsfolgen nicht ausgeführt werden. Andere Fehler lassen sich durch einen Software-Patch im Prozessor Abstraction Layer (PAL) beheben.
Es gibt auch Prozessor-Fehler, die sich durch Veränderungen der CPU-Initialisierung (also per BIOS-Update) beheben lassen oder per Microcode-Update. Ein Microcode-Update findet durch ein BIOS-Update oder ein Betriebssystem-Patch statt. Die Möglichkeit der Microcode-Updates wurde bei x86-Prozessoren unter anderem deshalb geschaffen, um nachträglich erkannte Bugs korrigieren zu können. Der Microcode kann einem Prozessor auch komplett neue Befehle beibringen.
Wenn das alles nichts hilft und der Fehler kritisch ist, dann muss der Prozessor-Hersteller die betroffenen Prozessoren austauschen.

Leckstrom

In Chips werden vor allem Transistoren verwendet. Diese Transistoren haben das so genannte Gate, das bestimmt, ob der Transistor ein- oder ausgeschaltet ist. Bestandteil des Gates ist das Gate-Dielektrikum. Es ist eine Isolationsschicht. Üblicherweise verwendet man dafür das leicht und billig herstellbare Siliziumdioxid. Die Firma Intel hat bereits erfolgreich die Dicke des Siliziumdioxid auf 1,2 Nanometer (nm) verkleinert. Das entspricht in etwa 5 Atomlagen, also 5 Atome übereinander. Mit dieser dünnen Siliziumdioxid-Schicht nehmen die elektrischen Leckströme zu. Dabei fließt ein Teil der Ladung, der auf dem Gate des Transistors sitzen sollte, durch die Isolationsschicht hindurch. Als Folge entsteht mehr Abwärme und ein größerer Stromverbrauch. Bei vielen Millionen Transistoren in einem Chip ist das ein ernst zu nehmendes Problem.

NX-Speicherschutz

Die NX-Funktion soll beispielsweise Buffer- oder Heap-Overflow-Angriffe verhindern. Dazu gibt es verschiedene Begriffe. Je nach Hersteller steht NX für No Execute oder No Execution. Microsoft selbst fasst NX und andere Verfahren unter dem Begriff Data Execution Prevention (DEP) zusammen. AMD spricht vom "Hardware-gestützten Virenschutz", "Enhanced Virus Protection" oder "verbesserten Virenschutz". Dabei macht diese Funktion nichts anderes als RAM-Adressen mit einer No-Execute-Markierung (NX) zu schützen, sodass die Angriffe mancher Viren und Würmer ins Leere laufen.

Pipelining

Pipelining bedeutet, dass Befehle im Programmcode in mehreren Schritten, wie an einem Fließband abgearbeitet werden. Das bedeutet, dass ein Befehl mehrere Stationen im Fließband durchlaufen muss. Während ein Befehl in der Pipeline liegt, wird am Anfang bereits der nächste Befehl zur Verarbeitung nachgeschoben. Bei einer langen Pipeline können sich aber längere Wartezeiten ergeben. Zum Beispiel beim Speicherzugriff. Durch entsprechende Programmierung und durch simultanes Multithreading (SMT) lassen sich die Zeiten überbrücken. Eine lange Pipeline arbeitet ineffizient, braucht eine sehr gute Sprungvorhersage und schluckt viel Energie.

In-Order-Architektur

Wenn ein Prozessor aus einer In-Order-Architektur besteht, dann bedeutet das, dass die Operationen eines Threads in der vom Compiler vorgegebenen Reihenfolge nacheinander ausgeführt werden. Aus diesem Grund prüfen Prozessoren mit einer In-Order-Struktur bzw. In-Order-Architektur mit einfachen Mechanismen, ob zwei aufeinanderfolgende Befehle parallel ausgeführt werden können. Wenn ja, dann werden sie in zwei Pipelines abgearbeitet. Für spezielle Befehlsgruppen gibt es sogar eigene Pipelines.
Wenn ein Befehl früher fertig ist als der Befehl in der anderen Pipeline, dann wartet er, bis auch der andere abgearbeitet ist. Erst dann geht es im Programmcode weiter. Der Compiler kann durch geschickte Sortierung der Befehle für eine Optimierung sorgen. Wenn dann aber ein Befehl auf den Speicher zugreift und die Daten nicht in einem der Caches liegen, dann muss der Prozessor warten. An dieser Stelle hätte die Out-of-Order-Execution klare Vorteile. Hier treten Wartezeiten seltener auf.

Prozessor-Sockel

In der Anfangszeit der Computer wurden Prozessoren, wie bei Halbleitern üblich, fest auf dem Motherboard aufgelötet. Irgendwann kam man dem Bedarf nach, die Produkte Prozessor und Motherboard voneinander getrennt zu verkaufen. Seit dem 486er (Prozessor von Intel) ist es üblich, auf dem Motherboard einen Sockel, statt einem Prozessor anzubringen. Erst beim Zusammenbau des Computers wird der Prozessor in den Sockel gesteckt und zusammen mit Kühlkörper und Lüfter auf dem Motherboard befestigt.
Für den Prozessorsockel sind die Prozessor-Hersteller verantwortlich, die an dieser Stelle aber mit den Chipsatz- und Motherboard-Herstellern zusammenarbeiten.
Da mit jeder neuen Prozessor-Generation auch ein neuer Prozessorsockel kommt, passen neuere Prozessoren nicht mehr in ältere Motherboards.

Weitere Grundbegriffe zu Prozessoren: