Anbieter zum Thema
An quantitativen Aussagen sind zunächst die Anzahl der Prozessorkerne, die jeweilige Taktrate pro Kern, die Anzahl der Threads pro Kern bzw. gesamt, sowie der verwendete Befehlssatz für eine Gegenüberstellung interessant. Im Zeitalter der Multicores – präziser ausgedrückt des Chip-integrated Multiprocessing (CMP) – kann die Anzahl der Kerne auch in Embedded-Systemen durchaus >1 sein, abhängig natürlich von der Applikation. Alle Anbieter haben aber auch Single-Core-Systeme im Rennen, deren Daseinsberechtigung außer Frage steht.
Die Unterstützung mehrerer Threads – präzise mit Simultaneous Multithreading (SMT) bezeichnet – ist schon etwas komplexer. Allein die Definition von Threads als „Leichtgewichtsprozesse“ ist schwammig und nicht eindeutig. Bei Prozessoren mit SMT, Intel spricht hier von Hyperthreading, wird pro superskalarem Kern versucht, die Auslastung der Ressourcen nicht nur von einem Programmfluss (Thread), sondern von mehreren gleichzeitig zu erreichen. In der Auswirkung entspricht SMT wieder in etwa einem Multiprocessing (weshalb in Betriebssystemen auch "Kerne" statt Threads gezählt werden), in der Architektur gibt es aber wesentliche Unterschiede.
Verarbeitungsgeschwindigkeit und Befehlssätze
Die Taktrate der Probanden liegt so um die 1-GHz-Marke herum, präzise zwischen 600 MHz und 1,6 GHz. Diese ist hauptverantwortlich für die Verarbeitungsgeschwindigkeit, aber eben nicht ausschließlich, wie bereits ausgeführt: Allein aus der Tatsache, dass der eine Prozessor mit 1,6 GHz getaktet ist, der andere mit 1 GHz, lässt sich nicht schlussfolgern, dass sich die Bearbeitungszeiten für den gleichen Algorithmus im Verhältnis 1:1,6 (oder 5:8) verhalten, denn dazwischen liegen noch Befehlssatz, Speicherarchitektur und -auslegung, Compiler etc.
Bei den Befehlssätzen gibt es im Probandenfeld drei Lager: x86-Derivate von Intel und AMD, die ARM7-Architektur sowie die MIPS-kompatible Loongsom-Architektur, jeweils mit Erweiterungen. Diese sind auf der einen Seite 64-Bit-Befehlssätze, bei Intel und AMD jeweils unterschiedlich ausgeprägt, sowie der Thumb2-Befehlssatz bei ARM, der durch die Beschränkung auf 16-Bit-Codierung enorm Platz im Codespeicher spart, auf der anderen Seite die spezielleren SIMD-(Single-Instruction-Multiple-Data-)Befehlssätze, SSEx, NEON und – ganz neu – AVX (Advanced Vector Extensions), die auch als Vektorbefehle bezeichnet werden. Diese Vektorbefehle berechnen mehrere Datenverknüpfungen mit geringerer Bitbreite auf einen Schlag, was z.B. bei Grafik oder ähnlichen Strukturen enorme Vorteile bringt.
Letztendlich soll man von den Befehlssätzen nichts bemerken – außer, dass bestimmte Applikationen wohltuend schnell laufen, denn Compiler und Laufzeitbibliothek sollen diese entsprechend nutzen. Wichtig ist ggf. nur das Wissen, dass diese vorhanden sind, um die Unterstützung der jeweiligen Applikation abschätzen zu können.
Cache-Speicher und Schnittstelle zum Speicher
Bei Taktraten von 1 GHz weiß wohl jeder, dass der aktuelle Halbleiterspeicher nicht mithalten kann. Es ist kurios, dass es einen Zeitraum gab, in dem Prozessor- und Speichergeschwindigkeit identisch waren. Vorher war der (Kern-)Speicher wesentlich langsamer, was zu der Entwicklung der CISC-Architektur (Complex Instruction Set Computing) geführt hatte. Jetzt ist der Speicher wieder viel langsamer als die Prozessoren, was diesmal zur intensiven Nutzung von Cache-Speicher führte.
Wenn man also die Kopplung von Prozessor und Speicher beurteilen will, muss man zwei Dinge betrachten: Das Interface zum Speicher und die Integration von Cache am Prozessor, besser auf dem Prozessor-Die, denn bei solchen Geschwindigkeiten muss der Level-1-Cache direkt integriert sein. Alle hier dargestellten Prozessoren bieten solchen L1-Cache an.
Dieser Cache Level 1 entscheidet über sehr viel der resultierenden Performance. Hier scheint sich ein "machbarer" Kompromiss bei mehr oder weniger allen Herstellern eingestellt zu haben: 32 KByte Größe, getrennt für Instruktionen und Daten, gilt offenbar als die maximale Größe, um auch bei höchster Prozessortaktung noch in einem Zyklus zugreifbar zu sein.
Gleiches gilt für den Cache Level 2. Hier gibt es bei Mehrkernprozessoren immerhin die Variationsmöglichkeit, ob L2 privat ist oder nicht, also "shared" über alle Prozessoren. Letzterer Fall hat den Vorteil, dass der Datenaustausch sehr viel einfacher ist, allerdings mit dem Preis eines komplexeren Interfaces. Auch hier ist die Antwort eindeutig: 256-512 KByte L2-Cache, gemeinsam für Instruktionen und Daten, aber privat für jeden Kern, erscheint wohl als die beste Antwort.
Schnittstelle zum Hauptspeicher
Bei dem Interface zum Hauptspeicher allerdings divergieren die Methoden. Intel verfolgt traditionsgemäß das Konzept des Frontside-Bus (FSB) [1]. Frontside bedeutet hierbei die Abgrenzung zum früher verwendeten Backside-Bus, der die CPU mit Cache-Speicher verband (und der aufgrund der Integration des Caches auf dem Prozessor-Die entfallen ist). Die dahinter angegebene Zahl entsprach zunächst dem Takt des Busses (der sich mit einem Faktor multipliziert in der CPU und der Peripherie wiederfand), später wurden die doppelte und vierfache Datenrate integriert. So heißt FSB1066, dass hier ein Takt von 266 MHz mit einer vierfachen Datenrate vorhanden ist.
(ID:25391380)