Das Buch zu dieser Webseite

Computertechnik-Fibel

Die Computertechnik-Fibel, das Computer-Buch

Käufer der Computertechnik-Fibel Kundenmeinung:
Die Computertechnik-Fibel ist wirklich verständlich geschrieben, frei von Ballast und ein tolles Nachschlagewerk. Insgesamt ein sehr empfehlenswertes Buch.

Computertechnik-Fibel
jetzt bestellen!

Auszeichnungen

Das Buch zu dieser Webseite

Netzwerktechnik-Fibel

Die Netzwerktechnik-Fibel

Käufer der Netzwerktechnik-Fibel Kundenmeinung:
Die Netzwerktechnik-Fibel ist sehr informativ und verständlich. Genau das habe ich schon seit langem gesucht.

Netzwerktechnik-Fibel
jetzt bestellen!

Multi-Core / Mehrkern-Prozessoren

Parallelrechnen und Multi-Core-Prozessoren sind Prinzipien, die seit Anfang der 90er Jahren in Superrechnern Einzug hielten. Diese Systeme sind bis heute Multi-Prozessor-Systeme. Die dort verwendeten Verfahren finden ihren Weg auch in Personal Computer. Statt mehrere Prozessoren wird die Parallelisierung direkt im Prozessor vorgenommen. Das bedeutet, dass in einen Prozessor mehrere Prozessor-Kerne eingebaut werden. Man bezeichnet diese Prozessoren als Multi-Core- oder Mehrkern-Prozessoren. Je nach Anzahl der Kerne gibt es abgewandelte Bezeichnungen, die darauf hindeuten, wie viele Kerne im Prozessor integriert sind.

Seit der Einführung von Doppelkern-Prozessoren hat sich die Computer-Infrastruktur entscheidend weiterentwickelt, wodurch Multi-Core-Prozessoren immer sinnvoller werden. So sind SATA-II-Festplatten in der Lage per Native Command Queuing (NCQ) Zugriffe in ihrer Reihenfolge zu verändern und dadurch Datenanforderungen von mehreren Prozessorkernen zu bearbeiten. Ebenso PCI Express, auf dem mehrere Datentransfers parallel ablaufen können.

Vom Takt-orientierten Prozessor zum Mehr-Kern-Prozessor

Das immer schnellere Taktraten bei Prozessoren auch Nachteile bringen, das haben auch die Prozessor-Hersteller erkannt. Probleme macht vor allem die Wärmeentwicklung, die durch die Leckströme in den kleinen Transistor-Strukturen und durch hohe Taktraten verursacht werden. Herkömmliche Kühlmaßnahmen mit dicken Kühlkörpern und schnell drehenden Lüftern bringen nicht mehr viel. Die Computer werden dadurch nur noch lauter.
Anstatt die Taktrate weiter zu steigern, ist man auf die Mehrkern-Technik ausgewichen, die in einem Prozessor-Gehäuse mehrere Kerne zusammenschaltet. Zumindest in der Theorie ist bei einer abgesenkten Taktrate eine weit höhere Leistungen als bei Single-Core-Prozessoren möglich.
Allerdings bringt dieses Potential nur etwas, wenn mehrere laufende Anwendungen mehrere Prozessorkerne gleichzeitig beschäftigen können. In Multi-Core-Systemen werden viele Aufgaben in Threads aufgeteilt. Die Threads werden parallel von mehreren Prozessorkernen abgearbeitet. Dazu müssen das Betriebssystem und die Programme "threaded"- oder "multi-threaded"-fähig sein.
Mit Hyper-Threading hat Intel die Software-Branche zur Realisierung von Multi-Threading-Anwendungen motiviert. Im Optimalfall nutzen mehrere leistungshungrige Anwendungen unterschiedliche Prozessorkerne. Zum Beispiel im Hintergrund (Dienste) oder Vordergrund laufende Programme.
Trotz Multi-Core-Prozessoren kommt es immer noch auf die Rechenleistung eines einzelnen Kerns an.

Typische Anwendungen für Single-Core-Prozessoren

Bei typischen Desktop-Anwendungen, wie Office, Internet, E-Mail oder Spielen bringt ein schneller getakteter Single-Core-Prozessor mehr Leistung, als ein Multi-Core-Prozessor.

Typische Multi-Threading-Anwendungen für Multi-Core-Prozessoren

Auswirkungen auf die Prozessor- und Computer-Architektur

Die üblichen Multi-Core-Architekturen bauen darauf, dass sich die Prozessor-Kerne den Cache und Arbeitsspeicher teilen. Je mehr Kerne ein Prozessor hat, desto mehr Speicher bzw. mehr Bandbreite zum Speicher ist erforderlich.
Der Zugriff auf Speicher und Schnittstellen bleibt auf der Strecke, wenn sich mehrere Kerne den Bus zum Chipsatz teilen müssen. Aus diesem Grund hat es sich in Multi-Core-Prozessoren schnell durchgesetzt den Speicher-Controller aus dem Chipsatz in den Prozessor zu verlegen.
Es bleibt dann nur noch das Problem, dass sich die Kerne darüber abstimmen müssen, wer gerade welche Daten im Cache hält. Eine mögliche Lösung ist eine hierarchische Cache-Struktur. Dabei bekommt jeder Kern einen eigenen L1-Cache und L2-Cache. Den L3-Cache müssen sich die Kerne teilen. Ein Cache-Kohärenz-Protokoll sorgt dafür, dass sich mehrere Prozessorkerne nicht in die Quere kommen.

Zukünftige Entwicklung

Wenn die Entwicklung bei den Multi-Core-Prozessoren voranschreitet, dann wird irgendwann für jede laufende Anwendung oder Prozess ein eigener Prozessorkern, also eine Recheneinheit zur Verfügung stehen. Dafür braucht es natürlich auch Software, die das ganze koordiniert und eine Hardware, die das unterstützt. Dazu gehört die Verteilung der Daten auf mehrere Prozessorkerne. Man nennt das auch die "Automatische Parallelisierung". In 3D-Software wird die Parallelrechentechnik schon länger verwendet und wesentlich besser ausgenutzt, als in den üblichen Computer-Anwendungen.
Auch wenn durch die wachsende Verbreitung von Computern mit Multi-Core-Prozessoren Multi-Threading-Anwendungen attraktiver werden, ändert sich die Software nur sehr langsam. Das Problem: Multi-Threading-Anwendungen sind sehr viel komplizierter in der Programmierung. Dazu kommen neue und ungewohnte Fehlerquellen hinzu. Wenn Multi-Threading keinen wirklichen Vorteil bringt, werden die Programmierer eher darauf verzichten. Billige Software nutzt in der Regel kein Multi-Threading. Und auch wenn ein Programm Multi-Threading verwendet, bedeutet das nicht, dass es das mit allen Funktionen tut.

Grundlagen der Multi-Core-Technik

Weitere verwandte Themen:

Dieser Text ist mir was wert:[ ? ]
Computertechnik-Fibel
Computertechnik-Fibel

EUR 21,50