next up previous contents
Next: Loop Unrolling Up: Datenlokalität - Wie Compiler Previous: Die CPUs HP-PA 7100

Hydra besitzt ausgeklügelte Cache-Hierarchien.

Cache-Speicher gilt als etwas ganz tolles: Jeder PC-Besitzer gibt stolz mit der Größe seines Caches an. Dabei ist dieser schnelle Speicher eigentlich ein Kropf, den man mitschleppen muß, weil die Speicher-Entwicklung mit der CPU-Entwicklung nicht mithalten kann. Auf der hydra etwa braucht das Laden eines Wortes aus dem Speicher 50 Takt-Zyklen (500 ns), viel zu lange, um den Prozessor beschäftigt zu halten. Also versieht man ihn mit einem sehr schnellen, aber auch extrem teuren Zusatz-Speicher, eben dem Cache, aus dem er in einem Takt lesen, in zwei Takten schreiben kann. Auf der hydra sind das jeweils 1 MB für Daten und für Instruktionen pro CPU. Aber jetzt muß man dafür sorgen, daß die benötigten Daten auch in diesem Cache stehen. Wieder ein Job für den Compiler, der das Programm so umzustricken versucht, daß Daten aus dem Cache möglichst oft wiederverwendet werden.

Nachdem wir gesehen haben, daß der Compiler viel zu tun hat, um die Maschine richtig unter Dampf zu halten, wollen wir uns in zwei Beispielen ansehen, wie er das macht:



rztms 26.2.96