Neues Cache-Design soll Prozessoren beschleunigen
Ein neues Cache-Design soll Prozessoren um bis zu 15 Prozent beschleunigen und zudem bis zu 25 Prozent Energie einsparen. Das berichten Forscher am Massachusetts Institute of Technology (MIT) und der University of Connecticut, nachdem sie neue „Regeln“ für das Caching-Verhalten bei Multicore-Prozessoren aufgestellt haben.
Transistoren werden beständig kleiner und erlauben es den Technikern, schnellere Chips zu entwerfen. Geht es jedoch darum, Daten schnell zu transportieren, hilft die Miniaturisierung nicht viel weiter. Bisher rückten die Forscher dem Problem zu Leibe, indem sie kleine Caches auf oder nahe bei der CPU platzierten, um die am meisten genutzten Daten zum schnellen Zugriff vorzuhalten. In Zeiten von Multicore-Prozessoren treten hier aber massive Probleme bei der Kommunikation unter den einzelnen Kernen auf und machen das Caching in solchen Umgebungen zu einem nicht gerade trivialen Unterfangen. Zusätzlich müssen die Kerne auch untereinander Daten austauschen, was beim Aufbau des Kommunikationsnetzwerks auf mehrkernigen Prozessoren ebenfalls bedacht sein will.
Die Forscher haben in ihrem Forschungspapier (PDF) beschrieben, was das neue Regelwerk anders macht als bisher, um die beachtlichen Verbesserungen von durchschnittlich 15 Prozent Geschwindigkeitszuwachs bei gleichzeitig 25 Prozent Energieeinsparung zu erreichen, die die Forscher in Simulationen erzielt haben.
Auf heute üblichen Mehrkern-Designs gibt es ein hierarchisches Cache-Layout, bei dem jeder Kern seinen eigenen Cache besitzt, zusätzlich gibt es mit dem Last-Level-Cache (LLC) einen gemeinsamen Speicher, auf den alle Kerne zugreifen dürfen. Chips, die nach diesem Schema organisiert sind, verwenden zur Organisation eine Technik namens „Spatiotemporal Locality Principle“, die besagt, dass wenn ein Kern Daten anfordert, es sehr wahrscheinlich ist, dass er auch Daten aus deren Nähe im Hauptspeicher anfordern wird. „Temporal Locality“ dagegen besagt, dass der Kern die gleichen Daten vermutlich wieder anfordern wird. Nach diesen beiden Mustern versucht der Prozessor seine Caches mit Daten gefüllt zu halten, die wahrscheinlich benötigt werden.
Dieses Prinzip hat in dem Moment Nachteile, wenn die zu speichernden Daten die Kapazität des privaten Caches des Kerns übersteigen. Dann verschwendet der Chip wertvolle Zeit beim Versuch, diese Daten anderswo in der Cache-Hierarchie zu verteilen. Hier setzt die Forschung von MIT-Absolvent George Kurian an. Zusammen mit Doktorvater Srini Devadas und Omer Khan an der Universität von Connecticut entwarf er ein Hardware-Design, dass die Probleme mit dem „Spatiotemporal Locality Principle“ entschärft. Übersteigt die zu speichernde Datenmenge die Kapazität des anfordernden Kerns, schiebt Kurian die überschüssigen Daten in den LLC, anstatt sie zwischen dem Cache des Core und dem Hauptspeicher zu verteilen.
Darüber hinaus spart das neue Design Zeit und Energie, indem es im Fall, dass zwei Kerne mit den gleichen Daten arbeiten und diese ständig synchronisieren, diese ebenfalls in den LLC verschiebt, wo sich die Synchronisation erübrigt. Die Kerne greifen dann abwechselnd auf die Daten zu und verstopfen nicht die Kommunikationswege der Kerne. Die Forscher verfeinern zudem das Design des LLC, der meist als eine einzige Datenbank benutzt wird. Sie unterteilen ihn auf einer zweiten Ebene in Teilbereiche für die einzelnen Kerne, sodass jeder Kern im LLC bei Bedarf auf einen eigenen Bereich zugreifen kann.
Die Arbeit der Forscher beschreibt Lösungsansätze für verschiedene Aspekte der Funktionalität einer CPU. Durch klügere Caching-Algorithmen kann die Geschwindigkeit der Codeausführung erhöht und gleichzeitig die Anzahl der Befehle für die Handhabung des Speichers reduziert werden. Weniger ausgeführte Befehle stehen für einen niedrigeren Energieverbrauch.