3.4 Speicher
185
Abb. 3.41 Unterschied zwischen
Prozessor- und Speichergeschwindigkeiten
(bis 2003)
C P U
( x 1 . 5 - 2 . 0 p r o J a h r )
DR AM (x 1.0 7 pr o Ja hr )
> 2 x a ll e 2 J a h r e
Jahre
Geschwindigkeit
4
.
1
8
2
5
4
3
2
1
0
2 pro Jahr schneller [359]. Insgesamt ist die Lücke zwischen der Prozessor- und
der Speichergeschwindigkeit sehr groß geworden und hat eine weitere Erhöhung
der Performanz erschwert. Die Begrenzung der Performanz durch Speicher ist unter
dem Begriff memory wall bekannt. Die weitere Erhöhung der Taktraten ist seit dem
Jahr 2003 weitgehend zum Erliegen gekommen, aber die im Jahr 2003 vorhandene
Lücke ist damit natürlich noch nicht geschlossen. Mehrkern-Systeme stellen darüber
hinaus noch zusätzliche Anforderungen an das Speichersystem. Insgesamt müssen
wir aufgrund der angesprochenen Zielkonflikte günstige Kompromisse zwischen den
verschiedenen Anforderungen und Randbedingungen finden.
3.4.2 Speicherhierarchien
Wegen der beschriebenen Zielkonflikte schrieben Burks, Goldstine und von Neumann schon 1946 [78]: „We are therefore forced to recognize the possibility of
constructing a hierarchy of memories, each of which has greater capacity than the
preceding but which is less quickly accessible”. Die genaue Struktur der Hierarchie
hängt von technologischen Parametern und dem Anwendungsbereich ab. Üblicherweise können wir mindestens die folgenden Hierarchiestufen identifizieren:
• Prozessor-Register können als die schnellste Ebene der Speicherhierarchie betrachtet werden, wobei die Kapazität höchstens einige Hundert Worte beträgt.
• Der Arbeitsspeicher (oder Hauptspeicher) realisiert die Speichermöglichkeiten,
die durch die Adressen üblicher Befehlssätze impliziert werden. Üblicherweise
hat er eine Kapazität zwischen einigen Megabyte und einigen Gigabyte und er ist
flüchtig.
• Typischerweise gibt es eine große Differenz in den Zugriffsgeschwindigkeiten
zwischen dem Hauptspeicher und den Registern. Aus diesem Grund enthalten
viele Systeme Pufferspeicher, wie z.B. Caches, Translation Look-aside Buffers
(TLBs, siehe Anhang C) und/oder Scratchpad Memory (SPM). Im Unterschied zu
PC-ähnlichen Systemen sollten diese Pufferspeicher möglichst ein vorhersagbares
Echtzeitverhalten aufweisen. Eine Kombination von kleinen Speichern, die häufig
185
Abb. 3.41 Unterschied zwischen
Prozessor- und Speichergeschwindigkeiten
(bis 2003)
C P U
( x 1 . 5 - 2 . 0 p r o J a h r )
DR AM (x 1.0 7 pr o Ja hr )
> 2 x a ll e 2 J a h r e
Jahre
Geschwindigkeit
4
.
1
8
2
5
4
3
2
1
0
2 pro Jahr schneller [359]. Insgesamt ist die Lücke zwischen der Prozessor- und
der Speichergeschwindigkeit sehr groß geworden und hat eine weitere Erhöhung
der Performanz erschwert. Die Begrenzung der Performanz durch Speicher ist unter
dem Begriff memory wall bekannt. Die weitere Erhöhung der Taktraten ist seit dem
Jahr 2003 weitgehend zum Erliegen gekommen, aber die im Jahr 2003 vorhandene
Lücke ist damit natürlich noch nicht geschlossen. Mehrkern-Systeme stellen darüber
hinaus noch zusätzliche Anforderungen an das Speichersystem. Insgesamt müssen
wir aufgrund der angesprochenen Zielkonflikte günstige Kompromisse zwischen den
verschiedenen Anforderungen und Randbedingungen finden.
3.4.2 Speicherhierarchien
Wegen der beschriebenen Zielkonflikte schrieben Burks, Goldstine und von Neumann schon 1946 [78]: „We are therefore forced to recognize the possibility of
constructing a hierarchy of memories, each of which has greater capacity than the
preceding but which is less quickly accessible”. Die genaue Struktur der Hierarchie
hängt von technologischen Parametern und dem Anwendungsbereich ab. Üblicherweise können wir mindestens die folgenden Hierarchiestufen identifizieren:
• Prozessor-Register können als die schnellste Ebene der Speicherhierarchie betrachtet werden, wobei die Kapazität höchstens einige Hundert Worte beträgt.
• Der Arbeitsspeicher (oder Hauptspeicher) realisiert die Speichermöglichkeiten,
die durch die Adressen üblicher Befehlssätze impliziert werden. Üblicherweise
hat er eine Kapazität zwischen einigen Megabyte und einigen Gigabyte und er ist
flüchtig.
• Typischerweise gibt es eine große Differenz in den Zugriffsgeschwindigkeiten
zwischen dem Hauptspeicher und den Registern. Aus diesem Grund enthalten
viele Systeme Pufferspeicher, wie z.B. Caches, Translation Look-aside Buffers
(TLBs, siehe Anhang C) und/oder Scratchpad Memory (SPM). Im Unterschied zu
PC-ähnlichen Systemen sollten diese Pufferspeicher möglichst ein vorhersagbares
Echtzeitverhalten aufweisen. Eine Kombination von kleinen Speichern, die häufig
