Privacy Policy Cookie Policy Terms and Conditions Multicore-Prozessor - Wikipedia

Multicore-Prozessor

aus Wikipedia, der freien Enzyklopädie

Der Begriff Multicore-Prozessor (auch: Mehrkernprozessor oder Multikernprozessor) bezeichnet einen Mikroprozessor mit mehr als einem vollständigen Hauptprozessor auf einem einzigen Chip. Sämtliche Ressourcen mit Ausnahme des Bus und eventuell einiger Caches sind repliziert. Es handelt sich also um mehrere vollständige, weitgehend voneinander unabhängige Prozessoren inklusive eigener Arithmetic_Logical_Unit (ALU), Registersätze und, sofern überhaupt vorhanden, Floating Point Unit (FPU).

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

Multi-Threaded-CPUs sind mehrfädige (engl. multithreading) Prozessor-Cores mit mehreren Programmzählern und Registersätzen, die sich gegenüber dem System aber als mehrere Cores melden. Diese Technologie 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 Dual-Core Prozessor mit zwei Threads pro Core, der Sun UltraSPARC T1 Prozessor ein Acht-Core Prozessor mit vier Threads pro Core.

Inhaltsverzeichnis

[Bearbeiten] Einführung

Bis zum Jahre 2005 dominierten die Singlecore Prozessoren den PC Bereich. In den Jahren zuvor versuchte man in wenigen Fällen, 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. Die einzige Möglichkeit der Fortentwicklung war die Einführung von Multicore. So wurde schon in der zweiten Hälfte des Jahres 2006 das Angebot in der oberen Hälfte des Leistungsspektrum von PC-Prozessoren von der Dualcore Variante dominiert. Somit ist dieses Jahr als eine Abkehr von einem Prinzip festzuhalten, das seit der Geburtsstunde der Prozessoren Gültigkeit hatte.

[Bearbeiten] Sinn und Zweck

Multicore-Prozessoren wurden entwickelt, weil die Kosten für den Einsatz eines einzelnen Chips mit mehreren Ressourcen häufig geringer sind als bei mehreren einzelnen Chips. Anders betrachtet kann mit der gleichen Anzahl an Chip-Sockeln und Chips theoretisch die n-fache Rechenleistung erzielt werden (mit n = 2 bei Dual-Core). Die Praxis erweist, dass ein Dual-Core-Prozessor je nach Anwendung die 1,3- bis 1,7-fache Leistung erbringt.

Die AMD Opteron Dual-Core Prozessoren 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.

Multicore-Prozessoren 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 Windows XP unterstützen Multicore-Prozessoren. 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. Dazu gibt es grundsätzlich zwei Parallelisierungsstrategien: SMP (Shared-Memory-Programmierung) und MPI (Message-Passing-Interface-Programmierung).

So unterscheiden sich verschiedene Architekturen. Während manche Architekturen performancesteigernde 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 die 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 Multicore Prozessoren 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 Multikernprozessor nur noch eine Lizenz fällt.

[Bearbeiten] Shared-Memory-Programmierung

In der Shared-Memory-Programmierung erfolgt die Parallelisierung, beispielsweise bei OpenMP, entweder automatisch durch Compiler-Optionen oder direkt mit Parallelisierungs-Direktiven bzw. mit Verwendung von parallelen mathematischen Bibliotheken in der Anwendung. OpenMP-Programme haben in der Regel eine wesentlich bessere parallele Effizienz, als mit Message Passing Interface (MPI) parallelisierte Programme, da die Prozessor-Kommunikation direkt über einen schnellen breitbandigen Datenbus geht. Nachteil ist, dass große Shared-Memory-Parallelrechner relativ teuer sind und die Prozessoranzahl begrenzt ist. Ein klassisches SMP-System ist die SGI Origin von Silicon Graphics.

[Bearbeiten] Message-Passing-Programmierung

Das Rechengebiet (Domain) wird bei der Message-Passing-Programmierung zerlegt und auf alle Prozessoren verteilt (Domain-Decomposition). Jeder Prozessor rechnet lokal und kommuniziert über optimierte MPI-Funktionen mit den anderen Prozessoren. Programmbibliotheken sind beispielsweise MPI, PVM (Parallele Virtuelle Maschine) oder SHMEM. Vorteil ist die extrem kostengünstige Hardware. Das bedeutet solche Rechner können aus Standard-PC-Komponenten gebaut werden, wie sie bei jedem PC-Händler zu finden sind. Sie sind theoretisch unendlich skalierbar, d.h. es können nahezu unendlich viele Prozessoren zusammengeschlossen werden. Diese kommunizieren dann in der Regel über IP (Ethernet, Fast Ethernet, Gigabit Ethernet, Myrinet-2000, Infiniband, Quadrics). In der Regel fällt aber die Effizienz mit der Anzahl der Prozessoren, da die Interprozessorkommunikation zu stark zunimmt. Es gibt aber auch Anwendungen die umgekehrt skalieren, da hier Effekte des Domain-Decomposition einen effizienteren Umgang mit dem Speicher ermöglichen.

[Bearbeiten] Varianten

[Bearbeiten] Symmetrische 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 Multicore-Prozessoren um eine Variante des SMP handelt, ist der Sinn und Zweck eines Multicore-Prozessors der, SMP Platz sparend umzusetzen. Ein Beispiel für so ein 8-fach SMP-System auf einem Chip ist der Sun UltraSPARC T1 Prozessor.

[Bearbeiten] Asymmetrische Mehrkernprozessoren

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 Coprozessoren. Ein Beispiel für solch ein System ist der Cell-Prozessor von IBM.

[Bearbeiten] Liste einiger Multicore-Prozessoren

[Bearbeiten] Dual-Core-Prozessoren

Derzeit werden folgende Dual-Core-Prozessoren gefertigt oder sind geplant:

[Bearbeiten] Multicore-Prozessor mit mehr als zwei Prozessor-Kernen

Derzeit werden folgende Multicore-Prozessoren gefertigt oder sind geplant:

[Bearbeiten] Siehe auch

Hardwareseitiges Multithreading

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu