Archiv Prozessoren 8.660 Themen, 54.742 Beiträge

Cache pro Core - mehr Power für Mehrkerner dank Prefetching?

Olaf19 / 4 Antworten / Flachansicht Nickles

Hallo zusammen!

Dass ein Sechskernprozessor nicht 3x so schnell ist wie ein Zweikerner, weil die Verwaltung der unterschiedlichen Kerne Leistung verbraucht, ist ja seit längerem bekannt - der sog. "Overhead".

Forscher der Universität North Carolina wollen dem mit Hilfe von Prefetching beikommen, d.h. jeder Kern soll seinen eigenen Cache bekommen. Der Clou dabei ist die intelligente Steuerung: Sollte das Prefetching eher dazu tendieren, die Gesamtperformance zu verlangsamen, wird es wieder abgeschaltet.

Mehr zum Thema hier:
http://www.elektronikpraxis.vogel.de/themen/hardwareentwicklung/mikrocontrollerprozessoren/articles/317528/

FYI
Olaf

P.S. "Elektronikpraxis Vogel"... den Vogel kannte ich auch noch nicht ;-)

Andreas42 Olaf19 „Cache pro Core - mehr Power für Mehrkerner dank Prefetching?“
Optionen

Hi!

Die Technik des Prefetchings und des CPU-Caches ist im Prinzip ein alter Hut. Damit arbeiten CPUs AFAIK seit der Einführung der ersten Pentiums(?) im Massenmarkt.

Bekannt sind auch die Probleme, wenn die Programmstruktur es nicht zulässt den Cache und das Prefetching optimal zu nutzen. Wenn sich bei der Verarbeitung herausstellt, dass die vorgeladenen Daten falsch sind, dann muss der Cache gelöscht und neu geladen werden. Das dauert natürlich. Moderne Programmcompiler optimieren hier automatisch um solche Situationen möglichst zu unterbinden.

Neu ist eigentlich nur, dass man der CPU offenbar eine Überwachungsfunktion spendiert, die Teile des Caches (oder den ganzen) abschaltet, wenn dies negative Auswirkungen auf die Performance hat. Wichtiger ist aber IMHO die Fähigkeit den Cache dynamisch an die Kerne zu verteilen. Braucht ein Kern mehr Cache, dann kann er diesen offenbar bekommen.
Zusammen mit der Fähigkeit für einzelne Kerne den Cache abzuschalten ist dies interessant. Ich denke dabei allerdings weniger an Fälle, in welchen das Caching negative Performanceauswirkungen hat, sondern daran, wenn bei einem Multi-Core System einzelne Cores nicht benötigt werden, dann können diese ihren Cache quasi an die Kerne unter last verteilen.

Wie oft es bei Cachenutzung zu negativen Auswirkungen kommt, müsste man einmal prüfen. Ich glaube wie gesagt, dass das die Softwarehersteller durch Compileroptimierungen weitestgehend im Griff haben. (Mal sehen, ob andere Mitleser da im Detail mehr wissen, was die Optimierungen der Compiler betrifft - ich bin aus dem Thema etwas raus.)

Bis dann
Andreas