Mehrkernprozessor

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Mehrkern-Prozessor)
Wechseln zu: Navigation, Suche

Der Begriff Mehrkernprozessor (auch Multicore-Prozessor oder Multikernprozessor) bezeichnet einen Mikroprozessor mit mehr als einem vollständigen Hauptprozessorkern in einem einzigen Chip. Sämtliche Ressourcen mit Ausnahme des Bus und eventuell einiger Caches sind mehrfach vorhanden. Es handelt sich also um mehrere vollständige, weitgehend voneinander unabhängige CPU-Kerne inklusive eigener Registersätze und arithmetisch-logischer Einheit (ALU).

Als Doppelkernprozessor (auch Dual-Core-Prozessor) bezeichnet man einen Mehrkernprozessor mit zwei Hauptprozessoren. Mikroprozessoren mit einem Hauptprozessor bezeichnet man zur Abgrenzung als Einzelkernprozessor (auch Single-Core-Prozessor). Mikroprozessoren mit drei Hauptprozessoren werden Triple-Core-Prozessoren oder Dreikernprozessoren genannt. Diese Terminologie lässt sich entsprechend fortsetzen. So spricht man bei vier Kernen von einem Vierkernprozessor (auch Quad-Core-Prozessor), wobei ein Vierkernprozessor nicht notwendigerweise aus zwei Doppelkernprozessoren bestehen muss, sondern auch aus vier diskreten Kernen bestehen kann.

Multi-Threaded-CPUs sind mehrfädige (engl. multithreading) Prozessorkerne mit mehreren Programmzählern und Registersätzen, die sich gegenüber dem System aber als mehrere Kerne melden. Diese Technik kann je nach Aufwand im Prozessordesign unterschiedlich effizient umgesetzt sein. Intel nennt sie in einigen Prozessorlinien Hyper-Threading, IBM SMT (symmetrisches Multi-Threading). Der IBM Power5-Prozessor ist z. B. ein Doppelkernprozessor mit zwei Threads pro Kern, der Sun UltraSPARC-T1-Prozessor ein Achtkern-Prozessor mit vier Threads pro Kern. Im Unterschied zu echten Mehrkern-Prozessoren teilen sich hier die „Kerne“ manche Ausführungseinheiten, wie zum Beispiel die Gleitkomma-Recheneinheit. Dann muss evtl. ein „Kern“ warten, wenn der andere diese Einheit gerade belegt.

Einführung[Bearbeiten]

Bis zum Jahre 2005 dominierten die Einzelkernprozessoren den PC-Bereich. In den Jahren zuvor hatte man nur selten versucht, durch den Einsatz von zwei oder mehr Einzelprozessoren die Leistungsfähigkeit zu erhöhen. Die gängige Variante zur Erhöhung der Leistungsfähigkeit war neben neuen Befehlssätzen wie MMX und mehr Transistoren jedoch die Erhöhung der Taktfrequenz. Doch dies ging bei Frequenzen um 4 GHz mit einer nicht mehr sinnvoll handhabbaren Abwärme einher. Eine Möglichkeit der Fortentwicklung war die Einführung von Mehrkernprozessoren. So wurde schon in der zweiten Hälfte des Jahres 2006 das Angebot in der oberen Hälfte des Leistungsspektrums von PC-Prozessoren von der Doppelkernvariante dominiert. Somit ist dieses Jahr als eine Abkehr von einem Prinzip festzuhalten, das seit der Geburtsstunde der Prozessoren Gültigkeit hatte. Heutzutage werden nur noch in wenigen Fällen Einzelkerne verbaut, da die entsprechenden Mehrkerne nur unwesentlich teurer sind.

Sinn und Zweck[Bearbeiten]

Mehrkernprozessoren wurden entwickelt, weil eine Erhöhung der Rechenleistung durch höhere Taktfrequenzen große technische Probleme verursachte. Es ist auch kostengünstiger, mehrere Kerne in einen Chip zu implementieren, als mehrere Prozessorsockel auf der Hauptplatine zu haben. Anders betrachtet kann mit derselben Anzahl an Chip-Sockeln und Chips theoretisch eine vervielfachte Rechenleistung erzielt werden (das n-fache bei n Kernen). In der Realität kann diese Steigerung jedoch fast nie erreicht werden, die Leistungssteigerung schwankt, je nachdem, wie gut die Software parallelisiert ist. Auch der Zugriff mehrerer aktiver Kerne auf den gemeinsamen Arbeitsspeicher kann zu Engpässen und Leistungslimitierungen führen, dagegen setzt man hochentwickelte Cachestrategien ein.

Aber auch im Alltag ist mit Mehrkernprozessoren ein deutlich flüssigeres Arbeiten möglich, da ein weiterer Kern für neue Aufgaben bereitsteht und das System dann nicht erst warten muss, bis Ressourcen verfügbar sind. Da alle führenden Prozessorhersteller Mehrkernprozessoren auf den Markt gebracht haben, ist damit zu rechnen, dass immer mehr Programme für Mehrkernprozessoren optimiert werden.

Folgende Teile (nachfolgender Abschnitt) scheinen seit 2009 nicht mehr aktuell zu sein: AMD stellt keine 2-Kern-Opterons mehr her Bitte hilf mit, die fehlenden Informationen zu recherchieren und einzufügen.

Wikipedia:WikiProjekt Ereignisse/Vergangenheit/2009

AMDs Opteron-Doppelkernprozessoren produzieren nur unwesentlich mehr Abwärme als ein AMD Opteron mit nur einem Prozessorkern. Damit wurde z. B. die Prozessor-Abwärmeleistung für ein Mehrprozessorsystem halbiert. Dies ist für HPC-Cluster (high performance computing), aber vor allem für die Blade-Center wesentlich, da hier auf engstem Raum eine Vielzahl von Prozessoreinheiten (Blades) verbaut sind und somit ein 19-Zoll-Industrieschrank eine Abwärmeleistung von über 20 kW produzieren kann. Diese ist in der Regel durch konvektive Kühlung nicht mehr abführbar.

Mehrkernprozessoren stellen neben einer Erhöhung der Taktfrequenz und dem Pipelining eine von vielen Möglichkeiten dar, die Leistung von Mikroprozessoren zu erhöhen. Die rein theoretische Leistungssteigerung ist vergleichsweise effizient und beträgt maximal 100 % (gegenüber einem einzelnen Kern) pro zusätzlichem Kern. In der Praxis hängt die Leistungssteigerung aber stark von dem Parallelisierungsgrad des ausgeführten Programms und des verwendeten Betriebssystems ab. Unix, der SMP-Linux-Kernel und Microsoft Windows ab XP unterstützen Mehrkernprozessoren (Windows NT und 2000 erkennen einen Mehrkernprozessor als mehrere Einzelkernprozessoren; dadurch sind zwar auch alle Kerne nutzbar, spezielle Mehrkernprozessoroptimierungen können aber nicht greifen). Dabei verteilt das Betriebssystem Prozesse und Anwendungen auf die einzelnen Prozessoren, die diese dann unabhängig parallel ausführen. Wird hingegen nur eine Anwendung ausgeführt, so muss diese für die mehreren Prozessoren parallelisiert werden. Das bedeutet, die Anwendung wird so modifiziert, dass sie komplett oder auch nur Fragmente davon gleichzeitig auf mehreren Prozessoren als Threads ausgeführt werden.

So unterscheiden sich verschiedene Architekturen. Während manche Architekturen leistungssteigernde Komponenten wie z. B. einen Shared Cache auf dem Chip unterbringen (z. B. IBMs POWER4 und folgende, Sun UltraSPARC IV+ und T1), setzen andere Architekturen lediglich mehrere Einzelkerne mit eigenem Cache auf einen Chip. Prozessorbasiert lizenzierende Softwareunternehmen haben verschiedene Konzepte entwickelt, um auf diese Entwicklungen zu reagieren. So zählt z. B. Oracle bei Mehrkernprozessoren jeden Prozessorkern auf einem Chip mit 0,25 (Sun UltraSPARC T1), 0,5 (Intel und AMD CPUs) oder 0,75 (HP, IBM und Sun RISC CPUs). Microsoft hat angekündigt, nicht mehr die Kerne, sondern die Chips als Basis für die Lizenzierung heranzuziehen, womit auf einen Mehrkernprozessor nur noch eine Lizenz fällt.


Varianten[Bearbeiten]

Mehrkernprozessoren können je nach internem Aufbau in zwei Varianten unterteilt werden: symmetrische und asymmetrischen Mehrkernprozessoren.

In symmetrischen Mehrkernprozessoren sind die einzelnen Kerne gleich. Ein für diesen Prozessor übersetztes Programm kann auf jedem beliebigen seiner Kerne ausgeführt werden. Bei dieser Art von Mehrkernprozessoren handelt es sich um SMP-Systeme. Da es sich bei Mehrkernprozessoren um eine Variante des SMP handelt, ist der Sinn und Zweck eines Mehrkernprozessors der, SMP platzsparend umzusetzen. Ein Beispiel für so ein 8-fach-SMP-System auf einem Chip ist der Sun UltraSPARC-T1-Prozessor.

Eine Abwandlung hiervon ist auch ARMs big.LITTLE-Konzept, in dem mehrere rechenstarke, energiehungrige Kerne mit einem rechenschwachen, energiesparenden Kern kombiniert werden. Der schwache Kern ist jedoch Binärcode-kompatibel mit den starken und kann ebenfalls alle Programme ausführen. Beispiele für dieses Konzept sind nVidia Tegra 3 und Samsung Exynos 5 Octa.

Bei asymmetrischen Mehrkernprozessoren gibt es verschiedene Kerne, die unterschiedlich gesteuert werden und eine unterschiedliche Maschinensprache verstehen. Ein Programm kann nur auf einem seiner Übersetzung entsprechenden Kern ausgeführt werden. Bei dieser Art von Mehrkernprozessoren arbeiten einige der Kerne wie klassische Hauptprozessoren, andere wie asynchrone Koprozessoren. Ein Beispiel für solch ein System ist der Cell-Prozessor von IBM.

Weitere Gruppen[Bearbeiten]

Vielkern-Prozessoren[Bearbeiten]

Als „Manycore-Prozessoren“ werden oftmals Prozessoren mit deutlich mehr Rechenkernen als üblich bezeichnet; die Kerne („Cores“) werden in mehrere „Tiles“ („Kacheln“) unterteilt, die jeweils definierte, meist redundante Aufgaben besitzen und eigene Recheneinheiten mit dem Zugriff auf gemeinsame Ressourcen (RAM, Cache, I/O-Einheiten) sind, beispielsweise die

  • IBM / DARPA / UT-Austin TRIPS: zwei Kerne mit je 16 Executions-Tiles, vier Register- und Data-Tiles, fünf Instruktions-Tiles, ein Control- sowie mehreren Memory- und Network-Tiles
  • Intel Terascale: ein Kern mit 80 bis 100 Tiles, davon einige auf SoC-Aufgaben spezialisiert
  • Intel Many Integrated Core Architecture (MIC) mit über 50 Tiles[1][2]

Mehrkern-Mikrocontroller[Bearbeiten]

Aufgrund anderer Anforderungen eingebetteter Systeme als bei PC sind bei Mikrocontrollern mehrere Kerne noch unüblich, ein erster Mehrkern-Mikrocontroller wurde 2006 auf den Markt gebracht.

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Intel Many Integrated Core Architecture
  2. MIC-Architektur bei heise