Ansicht umschalten
Avatar von Erich von der Schatzinsel
  • Erich von der Schatzinsel

mehr als 1000 Beiträge seit 30.06.2002

Re: speicherhierachie

Hi,

bash rules schrieb am 24. März 2003 5:14

> Hallo

> kann mir mal jemand akuelle zahlen nennen? ich kenn nur die zahlen
> aus anno 1995, z.b. 100Mhz cpu = 10ns, cache 10ns, speicher 50ns.

> heute

> cpu 2 GHz = 0.5 ns

> first level cache ist in der cpu, d.h. es kann innerhalb 0.5 ns
> zugegriffen werden (oder dauert das suchen laenger?)

> wie schnell sind 2. level caches?

Die sind gleich schnell.

Es kommt aber ein anderes Problem dazu. Die Ausführung der Befehle
erfolgt in einer unbestimmten Reihenfolge. Zwar werden die meisten
Befehle in einem einzigen Takt ausgeführt und dabei werden auch noch
fünf Befehle gleichzeitig ausgeführt, es kann aber einige Zeit
dauern, bis ein Befehl überhaupt gestartet wird.

> wie schnell sind hauptspeicher? die werden nicht viel schneller, es
> gibt nur immer neuere tricks? die von anno dazumal waren:
> speicherverschrenkung und bursts.

Da hat sich wenig geändert, wenn man davon absieht, daß inzwischen
zwei bzw. vier Bytes pro Takt übertragen werden.

Die Hauptbremse ist der externe Speicher. Du kannst davon ausgehen,
daß ein Programm 100 mal schneller ist, wenn alle Daten im Cache
sind. Seit dem Pentium III gibt es auch Assemblerbefehle um Daten vor
den ersten Zugriff in den Cache zu laden. Es gibt aber bisher nur
einen Intel-Compiler, der dies auch unterstützt. Allerdings ist dies
alles noch in einem einfachen Stadium.

Hinzu kommt die Länge einer "Cache Line". Intel nimmt 32 Bytes, AMD
64 Bytes. Je länger eine Cache Line ist, desto effektiver ist der
Speicherzugriff. Leider verlängert sich damit auch die Wartezeit, bis
auf die Daten zugegriffen werden kann, wenn gerade eine andere Cache
Line geladen wird.

Erich

Bewerten
- +
Ansicht umschalten