Computerhardware: Prozessor
Aus Wikibooks
Die „Central Processing Unit“ (CPU), deutsch: Zentrale Verarbeitungseinheit, kurz: Prozessor, ist die oberste Steuerung für den PC. Die CPU führt Berechnungen aus und steuert alle Komponenten des PC. Keine Mausbewegung, keine Tastenbetätigung, kein Byte, das aus dem Internet eintrifft - nichts darf der CPU entgehen. Leistung und Qualität der CPU sind daher entscheidend für die zuverlässige Funktion des ganzen Computersystems.
Der wichtigste Maßstab für die Leistung eines Computers ist der verwendete Prozessor. Es gab und gibt zahlreiche Hersteller von CPUs: Intel, AMD, Cyrix, IBM, IDT, NEC, SiS, UMC, VIA und andere. Die Firma Intel ist der Marktführer und hat jahrzehntelang die technologische Entwicklung bestimmt. Mit der Firma AMD und ihrem Athlon-Prozessor ist Intel ein scharfer Konkurrent erwachsen.
Jede Prozessorfamilie hat im Vergleich zur vorhergehenden Generation neue, erweiterte Eigenschaften und zusätzliche Befehle. Gleichzeitig achtet jeder Prozessorhersteller sorgfältig darauf, dass auf der Neuentwicklung alle Befehle des Vorgänger-Prozessors ebenso funktionieren wie früher. Diese tolle Eigenschaft nennt man „Kompatibilität“. Dadurch läuft Ihre vertraute Software nicht nur auf jedem neuen Prozessor, sondern auch auf PCs mit Prozessoren anderer Hersteller. Allerdings erfordert eine neue Generation von CPUs fast immer auch eine neue Generation an Chipsätzen und Hauptplatinen.
Ein sehr wichtiger Bestandteil von Prozessoren ist die ALU (arithmetic logic unit). Die ALU ist das Rechenwerk des Prozessors.
[Bearbeiten] Die Taktfrequenz
Alle Vorgänge in einem Prozessor laufen getaktet, also synchron ab. Die Taktfrequenz gibt an, wie oft die Taktsignale erfolgen. Der erste IBM-PC aus dem Jahr 1980 hatte eine Taktfrequenz von knapp 5 MHz (MHz = Megahertz = Millionen Takte pro Sekunde). Jeder Takt dauert also eine fünfmillionstel Sekunde = 200 ns (Nanosekunden: Eine Milliarde Nanosekunden ergibt eine Sekunde). Jede einzelne Schaltung der CPU ist so entworfen, dass sie niemals länger als 200 ns für einen Befehl braucht. Anders ausgedrückt: Ein Prozessortakt ist die Zeit für die Ausführung eines einfachen Befehls, zum Beispiel einer Addition. Auch ein Speicherzugriff dauerte genau einen Takt. Eine Taktfrequenz von einem Gigahertz bedeutet, dass der Prozessor eine Milliarde einfache Befehle pro Sekunde ausführen kann.
Leider ist das eine vereinfachte Darstellung. Einige Befehle sind komplizierter als andere und ihre Ausführung dauert deutlich länger. Beispielsweise ist die Division viel aufwändiger als eine Addition. Um nicht wegen einiger selten benutzter Befehle den Takt für alle Befehle reduzieren zu müssen, hatten die Entwickler eine andere Idee: Einige Befehle bekommen als „Fristverlängerung“ einen zweiten, dritten oder sogar vierten Takt genehmigt.
Es ist klar, dass eine CPU mit einer höheren Taktfrequenz mehr Befehle pro Zeiteinheit ausführen kann. Deshalb wurde im Laufe der Jahre die Taktfrequenz der CPUs schrittweise erhöht. Die Taktfrequenzen stiegen von anfangs 4,77 MHz (1981) auf 6, 8, 10 und 12 MHz. Immer neue CPUs wurden entwickelt. Es entbrannten regelrechte „Megahertz-Schlachten“ zwischen den Konkurrenten: Wer hat den schnellsten Prozessor? Etwa 1990 erreichten die Prozessoren eine Taktfrequenz von 100 MHz, was 10 ns pro Takt entspricht. Eine Steigerung auf das zwanzigfache in neun Jahren! Heutige Prozessoren (2008) haben eine Taktfrequenz von zwei bis drei GHz (Gigahertz = eine Milliarde Takte pro Sekunde) - eine Steigerung auf das 500-fache des ersten IBM-PC in einem Vierteljahrhundert!
Die RAM-Zugriffszeiten hatten sich von 120 ns (1982) auf 12 ns (1990) verringert. RAM wurde in neun Jahren „nur“ 10-mal schneller, währen die Geschwindigkeit der CPUs auf das 20-fache stieg. Der RAM wurde zunehmend zur Bremse. Pro Befehl müssen durchschnittlich ein bis vier Datenbyte aus dem RAM gelesen werden, weitere ein bis vier Byte ist der Befehlscode lang. Je schneller die CPUs wurden, desto öfter mussten sie für einige Takte pausieren (sogenannte Wartetakte, engl: „Waitstate“), um auf das Eintreffen der angeforderten Daten aus dem RAM zu warten. Was nun?
[Bearbeiten] Der Cache-Speicher
Es gibt zwei Lösungsmöglichkeiten, und beide werden benutzt: Parallelisierung und Cache-Speicher.
- Der erste PC mit der i8088-CPU holte sich jedes Byte einzeln aus dem Speicher. Die i8086-CPU konnte bereits 16 Bit = 2 Byte parallel (d.h. gleichzeitig, in einem Lesevorgang) aus dem Speicher lesen. Die 286er und 386er Prozessoren arbeiteten mit 32 parallelen Bits (4 Byte), während die Pentium-CPUs 64 Bit = 8 Byte in einem Speichertakt lesen bzw. schreiben können.
- Die zweite Möglichkeit ist die Verwendung eines „Cache“-Speichers, sprich „Kesch“ oder „Käsch“. Der Prozessorcache ist ein kleiner schneller Speicher, der sich das Prozessorgehäuse mit der CPU teilt. In diesem schnellen Speicher werden Kopien von den am häufigsten benutzten sowie von den voraussichtlich demnächst benötigten Daten vorsorglich bereitgehalten. Wenn die CPU die gerade benötigten Daten im schnellen Cache finden kann, braucht sie nicht auf den langsamen Hauptspeicher zu warten und kann mit voller Kraft arbeiten. Das Problem: Woher „wissen“ die elektronischen Schaltungen, welche Daten demnächst „voraussichtlich benötigt“ werden?
Die Taktfrequenz ist nicht mehr alleiniger Maßstab für die Leistung einer CPU. Die Größe des Cache und die „Treffsicherheit“ der Elektronik bei der Vorhersage der demnächst benötigten Daten sind ebenfalls wichtig. Was nützt eine hohe Taktfrequenz, wenn die CPU Pausen einlegen muss, um auf Daten zu warten? Während die CPU mit 2 bis 3 GHz arbeitet, bringt es der schnellste DDR3-Speicher (DDR3-1600, Stand 12/2008) auf 12 GByte/s. Auf den ersten Blick scheint das ausreichend. Allerdings sind die 12 GByte/s ein theoretischer Wert, der nur dann erreicht werden könnte, wenn die angeforderten Daten im Speicher aufeinanderfolgend abgelegt sind. Tatsächlich sind die meisten Daten eher zufällig im RAM verteilt, also dauert der Zugriff viel länger. Außerdem werkeln in heutigen CPUs zwei Recheneinheiten, die nach Daten hungern, und jede braucht mehrere Byte pro Takt.
So kann trotz aller Raffinessen kein heutiger Speicher den „Datenhunger“ moderner CPUs befriedigen. So heißt es für die CPU immer wieder: Warten, warten, warten. Die CPU-Entwickler kompensieren das, so gut sie können. Mehr als die Hälfte der Transistoren in modernen CPUs wird für den Cache-Speicher und die Vorausschau-Logik verwendet.
Heute beurteilt und vergleicht man die Leistung von CPUs mit speziellen Testprogrammen, sogenannten „Benchmarks“. Diese Testprogramme lassen den PC eine vorgegebene Aufgabe aus einem bestimmten Themengebiet lösen (z. B. die Konvertierung eines Videos). Die dafür benötigte Zeit wird gestoppt und mit der Konkurrenz verglichen. Fachzeitschriften sind voll mit solchen Tests.
Tipp: Welcher Prozessor steckt in Ihrem PC?
- Wenn Sie mit Windows arbeiten, klicken Sie mit der rechten Maustaste auf „Arbeitsplatz“, dann mit der linken Taste auf „Eigenschaften“. Dort finden Sie Angaben zu Ihrer CPU. Wenn Sie noch mit Windows 98 arbeiten und die Taktfrequenz wissen wollen, brauchen Sie ein Zusatzprogramm, z. B. CPUINFO.
- Wenn Sie mit Linux arbeiten, können Sie sich auf der Shell die Daten der CPU ihres Systems mit folgenden Befehl anschauen: cat /proc/cpuinfo