Simultaneous-Multithreading

Beim Simultaneous Multithreading (SMT) werden mit Hilfe von mehreren Pipelines und zusätzlicher Registersätze mehrere Threads durch einen Prozessor gleichzeitig ausgeführt. Intels Hyper-Threading-Architektur basiert auf diesem Prinzip.  SMT funktioniert nur, wenn vom Compiler, dem Betriebssystem oder dem Programmierer vorgesehen ist, dass mehrere Threads parallel ausgeführt werden. Das Simultaneous Multithreading ist also zwischen Pipeline-Architektur und Multicore-Architektur  positioniert. Im Gegensatz zur Pipeline-Architektur sind mehrere Threads gleichzeitig ausführbar. Es werden ALU (Arithmetic Logic Unit), FPU (Floating Point Unit), Befehlscodierung und Registersatz zu logischen Einheiten verdoppelt.  Die logischen SMT-Prozessoren werden vom System wie mehrere unabhängige Prozessoren wahrgenommen. Im Gegensatz zur  Mehrkern-Technologie sind SMT-Prozessoren jedoch nicht wirklich unabhängig.  SMT ist eine Ausprägung des hardwareseitigen Multithreading.                                               
Siehe auch:    Multithreading   Hyper-Threading   SMP   ALU   Superskalar   Thread   Register   Intel-Core   Mehrkernprozessor   Paralleler-Server

  Multithreading

Beim Multithreading werden die einzelnen Tasks (Aufträge) in kleinere eigenständige Prozesse (= Threads) aufgeteilt.  Ein multithreading-fähiger Prozessor ist somit in der Lage, mehrere Threads auf einmal zu bearbeiten. Echte Parallel-Verarbeitung ist nur bei mehreren Prozessoren gegeben.  Aber auch ein einzelner Prozessor, der multithreading-fähig ist, kann damit schneller arbeiten, wenn die Threads intelligent abgearbeitet werden, beispielsweise durch Verkürzung von Wartezeiten, optimale Auslastung bzw. Einlastung (Scheduling) von  Threads. Im Unterschied zum Multitasking bezieht sich die Nebenläufigkeit nicht nur auf Prozesse sondern auch auf Bearbeitungsstränge (Threads) innerhalb der Prozesse. Intel leitet seine Hyper-Threading-Technologie vom Multithreading ab. Es handelt  sich um Simultaneous Multithreading (SMT) beim Pentium 4 und XEON Prozessor. Diese Technologie erhöht die Leistung von multi-threaded Anwendungen, indem sie die Auslastung der On-Chip-Ressourcen (welche in der Intel NetBurst Architektur verfügbar sind)  erhöht. Die NetBurst-Ressourcen sind im Normalfall nur zu 30% + X ausgelastet. Hyper-Threading erhöht diese Auslastung durch entsprechende Logik und erzeugt einen zweiten logischen Prozessor.  Weitere Beispiele für Prozessoren mit Multithreading sind der UltraSPARC T1 (Niagara), UltraSPARC T2 (Niagara II) oder der Rock Prozessor von Sun Microsystems.  Man unterscheidet softwareseitiges Multithreading und hardwareseitiges Multithreading. 

Softwareseitiges Multithreading
Beim softwareseitigen Multithreading steht meist nur ein Prozessor zur Verfügung. Die einzelnen Threads werden effizient auf die zur Verfügung stehenden Ressourcen aufgeteilt.  Die Anzahl der Threadwechsel sollte jedoch möglichst gering sein um den dadurch entstehenden Verwaltungsaufwand möglichst gering zu halten. 

Hardwareseitiges Multithreading
Beim hardwareseitigen Multithreading wird das Multithreading von der Hardware unterstützt,  indem z. B. mehrere Prozessorkerne die Thread-Abarbeitung parallelisieren oder indem ein Multithreaded Prozessor vorliegt. Ein Multithreaded Prozessor  kann mehrere Threads gleichzeitig abarbeiten. Dazu besitzt ein Thread einen eigenen Registersatz mit Stackpointer und Befehlszähler (Programcounter, Befehlszählregister). Häufige Thread-Wechsel  bewirken beim hardwareseitigen Multithreading sogar eine Steigerung der Performance, da Konflikte in den Pipelines der Prozessoren (Pipeline Hazards) reduziert werden können.  Multithreading-Prozessoren können unterschiedliche Strategien für die Aufteilung und Einlastung der Threads bzw. deren paralleler Verarbeitung anwenden:
1. Switch-By-Event: Ereignisse welchen einen Thread-Wechsel auslösen. 
2. Time-Slices: jedem Thread wird eine bestimmte Zeitspanne zugewiesen.
3. Simultaneous Multithreading (SMT). 

Thread
Grundsätzlich ist zu unterscheiden zwischen Prozess, Kernel-Thread und User-Thread. Ab ca. 1995 unterstützen die meisten Betriebssysteme alle 3 Kategorien.  Moderne Prozessoren sind i.d.R. mehrfädig, d.h. sie unterstützen hardwareseitiges Multithreading.                       
Siehe auch:    Multitasking   Pipeline-Architektur   Simultaneous-Multithreading   Hyper-Threading   SMP   Superskalar   Thread   Pentium-4   Dual-Core   NetBurst

  Intel-Core-i-Serie

Die Core-i-Serie von Intel basiert auf der Intel Nehalem Architektur und ist das Nachfolgemodell des Core-2-Duo Prozessors.  Es handelt sich um einen 64-Bit 2-Kern oder 4-Kern Prozessor der auch neue Sockel und damit neue Mainboards mit sich bringt.

Features der Core-i-Serie 
Features dieser x64-Prozessoren sind (je nach Modell und Ausführung): Simultaneous Multithreading (SMT), Trusted Execution Technology (TXT), QuickPath Interconnect (QPI), Translation Lookaside Buffer, DDR-3-Speicherunterstützung,  Dual-Channel-Verfahren, SSE4, Intel SpeedStep Technology (EIST für Enhanced Intel Speed Step Technology), NX-Bit (No eXecute: Datenausführungsverhinderung - keine Ausführung beliebiger Daten als Programm) oder Intel  Virtualization Technology (IVT).  Bei der Core-i-Serie gibt es auch Mobile Prozessoren für Notebooks und Extreme Editions.  Der Intel Core-i7 ist Intels erster nativer Kern Prozessor, d.h. alle 4 Kerne liegen auf einem Die (und nicht 2x2 Kerne auf 2 Chips).

Strukturbreite 
Die Strukturbreite der Fertigung liegt bei entweder 45 Nanometer (Lynnfield 4-Kern Prozessor mit Ausführung als Intel-Core i5-750 bis Intel Core-i7-880, Bloomfield Quad-Core Prozessor mit Ausführung als Intel-Core-i7-920 bis  Intel Core-i7-975 Extreme Edition und Clarksfield Mobile Prozessor mit Ausführung als Intel Core i7-720QM bis Intel-Core-i7-940XM Extreme Edition oder 32 Nanometer  (Clarkdale 2-Kern Prozessor mit Ausführung als Intel-Core-i3-530 bis Intel-Core-i5-680, Gulftown 6-Kern Prozessor (Hexa-Core Prozessor) mit Ausführung als Intel-Core-i7-970 bis Intel Core 980X Extreme Edition. Arrandale Mobil Prozessor (Dual Core)  mit Ausführung als Intel-Core-i3-330M bis Intel Core-i7-640M).  Bei der Intel-Core-i-Serie spielen der Cache und die Ausführung (Strukturbreite, Features) eine grosse Rolle, so dass  die Taktrate nicht allein ausschlaggebend für die Geschwindigkeit und das Benchmarking ist: Prozessoren mit geringerer Taktrate können schneller sein als höher getaktete Modell, ausserdem kommt es auf die Anwendung an. 

Sockel 
Neue Sockel sind Sockel 1156 (mit Direct Media Interface und Flexible Display Interface), Sockel 1366 (mit QuickPath Interconnect),  Bei dem Intel Bloomfield wird der Chipsatz X58 (Tylersburg) verbaut.                           
Siehe auch:    Intel   Intel-Nehalem-Prozessor   Intel-Sandy-Bridge   Die   Wafer   Strukturbreite   Simultaneous-Multithreading   SSE4   QuickPath-Interconnect