Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Mehrkernprozessor

Multi-Threaded-CPUs sind mehrfädige (engl. multithreading) Prozessorkerne mit mehreren Programmzählern und Registersätzen, die sich gegenüber dem System aber …

Inhalt5 Abschnitte
  1. 1. Grundidee und Abgrenzung
  2. 2. Entwicklung im PC-Bereich
  3. 3. Leistungsgewinn und Grenzen
  4. 4. Symmetrische und asymmetrische Varianten
  5. 5. Vielkernprozessoren und Mikrocontroller

Grundidee und Abgrenzung

Ein Mehrkernprozessor, auch Multicore-Prozessor oder Multikernprozessor genannt, ist ein Mikroprozessor mit mehr als einem vollständigen Prozessorkern in einem einzigen Chip. Die meisten Bestandteile eines Prozessorkerns sind dabei mehrfach vorhanden, zum Beispiel eigene Registersätze und arithmetisch-logische Einheiten (ALU). Busse und einige Caches können dagegen gemeinsam genutzt werden. Die Kerne arbeiten weitgehend unabhängig voneinander.

Ein Prozessor mit zwei Kernen heißt Doppelkernprozessor oder Dual-Core-Prozessor. Ein Prozessor mit einem Kern wird zur Abgrenzung Einzelkernprozessor oder Single-Core-Prozessor genannt. Entsprechend spricht man bei drei Kernen von Triple-Core- oder Dreikernprozessoren und bei vier Kernen von Vierkern- oder Quad-Core-Prozessoren. Ein Vierkernprozessor kann aus zwei Doppelkernprozessoren oder aus vier eigenständigen Kernen bestehen.

Von echten Mehrkernprozessoren zu unterscheiden sind Multi-Threaded-CPUs. Das sind Prozessorkerne mit mehreren Programmzählern und Registersätzen, die sich dem System als mehrere Kerne melden. Intel nennt diese Technik in einigen Prozessorlinien Hyper-Threading, IBM SMT, also symmetrisches Multi-Threading. Beispiele sind der IBM Power5-Prozessor als Doppelkernprozessor mit zwei Threads pro Kern und der Sun UltraSPARC-T1-Prozessor als Achtkern-Prozessor mit vier Threads pro Kern. Im Unterschied zu echten Mehrkernprozessoren teilen sich solche scheinbaren „Kerne“ teilweise Ausführungseinheiten, etwa die Gleitkomma-Recheneinheit oder sogar die ALU. Dadurch kann ein „Kern“ warten müssen, wenn ein anderer diese Einheit benutzt. Nicht exakt definiert ist, welche Ressourcen ein Kern privat besitzen muss, um als eigenständig und vollwertig zu gelten.

Entwicklung im PC-Bereich

Bis zum Jahr 2005 dominierten im PC-Bereich Einzelkernprozessoren. Vorher wurde nur selten versucht, die Leistung durch zwei oder mehr einzelne Prozessoren zu erhöhen. Wichtiger waren neue Befehlssätze wie MMX und vor allem immer höhere Taktfrequenzen.

Ab etwa 4 GHz wurde die entstehende Abwärme jedoch nicht mehr sinnvoll handhabbar. Eine wichtige weitere Entwicklung war deshalb die Einführung von Mehrkernprozessoren. Ab der zweiten Hälfte des Jahres 2006 wurde das Angebot in der oberen Hälfte des PC-Leistungsspektrums von Doppelkernprozessoren geprägt, zum Beispiel Intel Core 2 Duo und AMD Athlon 64 X2.

Damit endete ein lange gültiges Prinzip der Prozessorentwicklung: Leistung wurde nicht mehr hauptsächlich durch immer höhere Taktfrequenzen eines einzelnen Kerns gesteigert. Einzelkerne werden nur noch in wenigen Fällen verbaut, da entsprechende Mehrkernprozessoren nur unwesentlich teurer sind.

Leistungsgewinn und Grenzen

Mehrkernprozessoren wurden entwickelt, weil höhere Taktfrequenzen große technische Probleme verursachten. Außerdem ist es kostengünstiger, mehrere Kerne in einen Chip einzubauen, als mehrere Prozessorsockel auf der Hauptplatine zu verwenden.

Theoretisch kann mit derselben Anzahl an Chip-Sockeln und Chips eine vervielfachte Rechenleistung erreicht werden: bei n Kernen das n-fache. Eine zusätzliche Kerneinheit kann theoretisch maximal 100 % Leistungssteigerung gegenüber einem einzelnen Kern bringen. In der Praxis wird dieser Wert aber kaum erreicht. Entscheidend ist, wie gut die Software parallelisiert ist, also ob ein Programm seine Arbeit in mehrere gleichzeitig ausführbare Teile aufteilen kann.

Das Betriebssystem verteilt Prozesse und Anwendungen auf die einzelnen Kerne, die diese unabhängig parallel ausführen. Unix, der SMP-Linux-Kernel und Microsoft Windows ab XP unterstützen Mehrkernprozessoren. Windows NT und Windows 2000 erkennen einen Mehrkernprozessor als mehrere Einzelkernprozessoren; dadurch sind alle Kerne nutzbar, spezielle Optimierungen für Mehrkernprozessoren greifen aber nicht.

Wenn nur eine Anwendung läuft, muss diese selbst für mehrere Prozessoren parallelisiert sein. Dazu wird sie so geändert, dass sie ganz oder teilweise gleichzeitig auf mehreren Prozessoren als Threads ausgeführt werden kann. Ein Thread ist ein Ausführungsstrang innerhalb eines Programms.

Eine wichtige Grenze entsteht durch den gemeinsamen Arbeitsspeicher. Wenn mehrere aktive Kerne gleichzeitig darauf zugreifen, kann es zu Engpässen kommen. Dagegen werden entwickelte Cache-Strategien eingesetzt. Einige Architekturen besitzen leistungssteigernde Bauteile wie einen gemeinsamen Cache auf dem Chip, zum Beispiel IBMs POWER4 und folgende, Sun UltraSPARC IV+ und T1. Andere Architekturen setzen mehrere Einzelkerne mit eigenem Cache auf einen Chip.

Auch Softwarelizenzen mussten an Mehrkernprozessoren angepasst werden. Oracle zählt je nach Prozessortyp jeden Kern auf einem Chip mit 0,25, 0,5 oder 0,75. Microsoft kündigte an, nicht mehr die Kerne, sondern die Chips als Grundlage der Lizenzierung zu verwenden, sodass auf einen Mehrkernprozessor nur eine Lizenz fällt. Bei Windows Servern gilt jedoch die Core-basierte Lizenzierung. Der Artikel enthält außerdem einen Hinweis, dass ein Teil zu AMD-Zweikern-Opterons seit 2009 nicht mehr aktuell sei.

Symmetrische und asymmetrische Varianten

Mehrkernprozessoren werden nach ihrem inneren Aufbau in symmetrische und asymmetrische Mehrkernprozessoren unterteilt.

Bei symmetrischen Mehrkernprozessoren sind die einzelnen Kerne gleich. Ein Programm, das für diesen Prozessor übersetzt wurde, kann auf jedem seiner Kerne ausgeführt werden. Solche Prozessoren sind SMP-Systeme. SMP bedeutet symmetrisches Multiprocessing: Mehrere gleichartige Prozessoren oder Kerne arbeiten parallel. Ein Mehrkernprozessor kann SMP platzsparend auf einem Chip umsetzen. Ein Beispiel für ein 8-fach-SMP-System auf einem Chip ist der Sun UltraSPARC-T1-Prozessor.

Eine Abwandlung ist ARMs big.LITTLE-Konzept. Dabei werden mehrere rechenstarke, aber energiehungrige Kerne mit einem rechenschwachen, energiesparenden Kern kombiniert. Der schwache Kern ist binärcode-kompatibel mit den starken Kernen und kann ebenfalls alle Programme ausführen. Beispiele sind nVidia Tegra 3 und Samsung Exynos 5 Octa.

Auch Intel verwendet auf x86-Prozessoren ab der 12. Core-i-Generation „Alder-Lake“ unterschiedliche Kerntypen auf demselben Chip: stärkere „P-Cores“ für Performance und sparsamere „E-Cores“ für Efficiency. E-Cores verbrauchen weniger Strom, P-Cores erledigen Aufgaben schneller. Deshalb ist der Scheduler wichtig, also der Teil des Betriebssystems, der entscheidet, welcher Kern welche Aufgabe bekommt. Unter Core i-12000 hatten die P-Cores zusätzlich AVX-512, eine Befehlssatzerweiterung, die Intel deaktivieren musste, weil die E-Cores sie nicht bieten. Mit einem angepassten Scheduler wie Intels Thread Director lassen sich Hybridkerne effizient nutzen. Bei x86-Prozessoren von AMD sind Hybridkerne für die kommende Ryzen-8000-Serie mit Zen 5 geplant.

Bei asymmetrischen Mehrkernprozessoren gibt es verschiedene Kerne, die unterschiedlich gesteuert werden und unterschiedliche Maschinensprache verstehen. Ein Programm kann dann nur auf einem Kern laufen, für den es übersetzt wurde. Einige Kerne arbeiten wie klassische Hauptprozessoren, andere wie asynchrone Koprozessoren. Ein Beispiel ist der Cell-Prozessor von IBM.

Vielkernprozessoren und Mikrocontroller

Eine weitere Gruppe sind Vielkernprozessoren oder Manycore-Prozessoren. Damit werden oft Prozessoren bezeichnet, die deutlich mehr Rechenkerne besitzen als üblich. Die Kerne werden dabei in „Tiles“, also Kacheln, unterteilt. Diese Tiles haben definierte, meist redundante Aufgaben und eigene Recheneinheiten. Sie greifen auf gemeinsame Ressourcen wie RAM, Cache und I/O-Einheiten zu.

Genannte Beispiele sind IBM / DARPA / UT-Austin TRIPS mit zwei Kernen, die jeweils 16 Executions-Tiles, vier Register- und Data-Tiles, fünf Instruktions-Tiles, ein Control-Tile sowie mehrere Memory- und Network-Tiles besitzen. Intel Terascale wird als ein Kern mit 80 bis 100 Tiles beschrieben, von denen einige auf SoC-Aufgaben spezialisiert sind. Die Intel Many Integrated Core Architecture (MIC) besitzt über 50 Tiles.

Bei Mikrocontrollern, also Prozessoren für eingebettete Systeme, werden mehrere Kerne wegen anderer Anforderungen langsamer üblich als bei PCs. Ein erster Mehrkern-Mikrocontroller kam 2006 auf den Markt. Als Beispiele nennt der Artikel den Parallax Propeller, einen symmetrischen 8-Kern-Mikrocontroller von 2006 mit 8 × 20 MIPS, sowie Infineon Aurix von 2012.

Weiterlesen

Mikroprozessor Ein Mikroprozessor (µP oder uP) ist ein als integrierter Schaltkreis (IC) ausgeführter Computerprozessor. Typische Beispiele von Mikroprozessoren sind die … Prozessorkern Enthält ein Prozessor nur einen Kern, wird dieser teilweise gleichbedeutend als Central Processing Unit (CPU) bezeichnet. Inhaltsverzeichnis. 1 Komponenten … Cache Cache ([kæʃ], auch [ kaʃ]) bezeichnet in der Informationstechnik einen schnellen Pufferspeicher, der (wiederholte) Zugriffe auf vergleichsweise langsame … Registersatz Als Registersatz (englisch Register Set) bezeichnet man die Menge aller Register eines Mikroprozessors. Die Menge derjenigen Register, welche durch … Arithmetisch-logische Einheit Eine arithmetisch-logische Einheit (englisch arithmetic logic unit, daher oft abgekürzt ALU) ist ein elektronisches Rechenwerk, welches in Prozessoren zum … Hauptplatine Die Hauptplatine (englisch Mainboard; auch Motherboard oder system board, im Apple-Umfeld Logicboard) ist die zentrale Platine eines Computers. Parallele Programmierung Es umfasst zum einen Methoden, ein Computerprogramm in einzelne Teilstücke aufzuteilen, die nebenläufig ausgeführt werden können, zum anderen Methoden, … Arbeitsspeicher Zugriffe auf den Arbeitsspeicher durch den Hauptprozessor werden zumeist über ein oder mehrere Pufferspeicher oder Cache-RAMs (kurz „Cache“) optimiert. Im Cache … Pipeline (Prozessor) Die Pipeline (auch Befehls-Pipeline oder Prozessor-Pipeline) bezeichnet bei Mikroprozessoren eine Art „Fließband“, mit dem die Abarbeitung der … Microsoft Windows Microsoft Windows (englische Aussprache [ˈmaɪ.kɹoʊ.sɒft ˈwɪn.doʊz]) bzw. Windows ist eine Reihe proprietärer grafischer Betriebssystemfamilien von Microsoft … Thread (Informatik) Kritischer Abschnitt · Nebenläufigkeit · Parallele Programmierung · Prozess · Threadsicherheit. Literatur. Bearbeiten. Peter Ziesche: Nebenläufige & verteilte … ARM-Architektur Der wesentliche Unterschied des ARM9 gegenüber dem ARM7 ist je ein getrennter Bus für Instruktionen und Daten (Harvard-Architektur). Meist werden diese an …