Mögliche Hebel zum Zweck der Leistungssteigerung (Fortsetzung)
Erhöhung
des Bus- und Speichertakts
Eine weitere recht populäre Art die Leistung zu steigern, ist das Verhältnis
zwischen internen und externen Takt zu verringern. Heutige Prozessoren verfügen in der Regel über mehrstufige Cache-Hierarchien.
Der Level 1 Cache (L1 Data und L1 Code) befindet sich direkt bei den Funktionseinheiten,
hat eine sehr niedrige Latenz sowie einen sehr hohen Durchsatz. Zugriffe auf
den L1 Cache erfolgen, je nach Prozessor, innerhalb drei bis acht Taktzyklen.
Man nennt dies die sogenannte "Latenz".
Dahinter sitzt, mittlerweile ebenfalls auf dem Die integriert, der Level 2 Cache.
Dieser verfügt über eine deutlich höhere Latenz von über
zehn Taktzyklen und einen, gegenüber dem L1-Cache, recht geringen Durchsatz.
Der L1 Cache ist in der Regel "Write Through", so dass alle Informationen
aus dem L1 Cache auch gleichzeitig in den L2 Cache geschrieben werden.
Dahinter wiederum sitzt ein eventuell vorhandener externer Level 3 Cache, was
sich bei Desktop-Prozessoren jedoch bisher bis auf den PPC75xx (kurz: G4) nicht
durchgesetzt hat. An letzter Stelle steht nun der eigentliche Arbeitsspeicher
selber.
Zugriffe auf den
Speicher sind derart organisiert, dass sie immer vom schnellsten zum langsamsten
Cache erfolgen. Erst wenn ein "cache miss" auftritt (cache miss bedeutet,
dass die angeforderten Daten sich in keinem der Caches befinden), wird auf den
Arbeitsspeicher zurückgegriffen. Moderne Speichermodule werden mit bis
zu 533 MHz betrieben (PC1066 RDRAM), in der Regel sind heutige PCs jedoch
mit dem weitaus günstigerem, jedoch etwas langsamerem DDR-SDRAM ausgestattet,
welches laut Spezifikation bis zu 166 MHz schnell sein darf.
Der Zugriff auf den Arbeitsspeicher läuft bei allen heute verfügbaren
Prozessoren über den Chipsatz, ergo über den Front Side
Bus, kurz FSB. Dieser beträgt beim Athlon effektiv 266 oder 333 MHz (DDR-FSB), beim Pentium
4 effektiv 400 oder 533 MHz (QDR-FSB) und bei Apple's aktuellen Macintoshs zwischen 100 MHz
SDR (iMac, eMac, iBook) über 133 MHz SDR (PowerMac DP867, PowerBook) bis
hin zu 166 MHz SDR (PowerMac DP1000 und DP1250). So hoch diese Zahlen auch erscheinen
mögen, im Vergleich zu 2 GHz Prozessortakt ist dies im besten Falle grade
mal ein Verhältnis von 4:1. Bei Speicherzugriffen muss der Prozessor also
hunderte von Zyklen mit Nichtstun vergeuden, bis die Daten bereit liegen und
verarbeitet werden können. Je niedriger also das Verhältnis zwischen
internem und externem Takt, desto weniger Taktzyklen muss der Prozessor bei
Speicherzugriffen warten (wiederum im Verhältnis zwischen internem und
externem Takt betrachtet) und desto früher steht er für weitere Berechnungen
bereit.
Aus diesem Grund ist ein 1 GHz Prozessor der mit 166 MHz FSB betrieben wird
schneller, als der gleiche Prozessor wenn er mit 133 MHz FSB betrieben wird.
Als kleiner Nachsatz sei
noch hinzugefügt, dass eine Erhöhung des Speichertakts nicht zwingend
zur Leistungssteigerung führen muss. Ein sehr gutes Beispiel für Sinnlosigkeit
stellen die aktuellen PowerMacs von Apple dar. Der Arbeitsspeicher wird im DDR-Verfahren
betrieben, es werden also zwei Bit pro Taktsignal übertragen. Im Vergleich
zu den QuickSilver PowerMacs, also den direkten Vorgängern der heutigen
Modelle, stellt dies eine Verdopplung der RAM-Bandbreite dar und müsste,
obiger Erklärung zufolge, aufgrund des auf die Hälfte verringerten
Verhältnisses zwischen internem und externem Takt zu einer deutlichen Leistungssteigerung
führen.
Jedoch gibt es zwischen dem Dual 1 GHz mit SDR-SDRAM und dem mit DDR-SDRAM nur
minimale Unterschiede. Der Grund liegt in der Art und Weise, wie der Prozessor
auf den Arbeitsspeicher zugreift. Denn damit er auch die volle Bandbreite des
Arbeitsspeichers nutzen kann, muss er mit eben dieser Bandbreite darauf zugreifen
können. Beim AMD Athlon ist dies dank dem EV6 Protokoll möglich, der
Zugriff auf den DDR266/DDR333 Arbeitsspeicher erfolgt mit 266/333 MHz. Beim
G4 Prozessor in Apple's PowerMac sieht die Situation jedoch erbärmlich
aus, der Zugriff auf den DDR266/DDR333 Arbeitsspeicher erfolgt hier lediglich
mit 133/166 MHz wie bisher auch. Sinnvoll wäre gewesen, auch das Übertragungsprotokoll
zu verändern und nicht nur die Bandbreite des Arbeitsspeichers zu erhöhen.
Vergrößerung
und Optimierung der Caches
Kamen die ersten verfügbaren x86 Prozessoren noch ohne jeglichen Cache,
so befinden sich heute kombiniert bis zu über einem halben Megabyte dieser
schnellen Zwischenspeichern im Prozessorkern (bei Serverprozessoren auch deutlich
mehr). Der Grund ist ganz einfach und wie bereits erwähnt: Um die unsäglich
langsamen Speicherzugriffe möglichst zu vermeiden, werden die benötigten
Daten vom Prozessor bereits vor deren Notwendigkeit in den Cache geladen und
bereitgestellt. Von zu Beginn wenigen Kilobyte L1 Cache, verfügen heutige
Serverprozessoren über dreistufige Cache-Hierarchien mit bis zu über
128MB kombiniertem Cache (so beispielsweise der IBM Power4 Prozessor mit 128MB
L3-Cache, bis zu 48MB L2-Cache (kombiniert) und über 1MB L1-Cache (kombiniert).
Mit dem Pentium
4 hat Intel ein neues Funktionsprinzip des L1 Instruction Cache eingeführt,
den sog. Trace Cache. Seit dem 6x86 arbeiten x86-Prozessoren extern wie CISC-Prozessoren
mit komplexem Befehlssatz, decodieren jedoch jede Instruktion in RISC-artige
µOps vor ihrer Ausführung. Dieser Vorgang der Decodierung kostet
natürlich Rechenzeit und um diese zu sparen, speichert der Pentium 4 im
12.000 µOps fassenden L1 Trace Cache die bereits decodierten RISC-artigen
Befehle für die weitere Verwendung ab.
Ohne diesen Trace Cache wäre der Pentium 4 übrigens nochmals deutlich
ineffizienter. Warum folgt im weiteren Verlauf des Artikels.
Diesen Artikel bookmarken oder senden an ...