184
3 Hardware eingebetteter Systeme
3.4 Speicher
3.4.1 Zielkonflikte
Daten, Programme und FPGA-Konfigurationen müssen in Speichern abgespeichert
werden. Speicher müssen so groß sein, wie die Anwendungen es verlangen, sie
müssen die benötigte Performanz bieten, hinreichend zuverlässig sein, Zugriffe der
gewünschten Granularität (Bytes, Worte, Seiten) ermöglichen und ggf. persistent
speichern. Sie müssen dennoch in Bezug auf die Kosten, physikalische Größe und
den Energieverbrauch effizient sein. Diese Anforderungen führen zu Zielkonflikten,
was schon 1946 von Burks, Goldstine und von Neumann bemerkt wurde [78]:
„Ideally one would desire an indefinitely large memory capacity such that any
particular ... word ... would be immediately available — i.e. in a time which is ...
shorter than the operation time of a fast electronic multiplier. ... It does not seem
possible physically to achieve such a capacity.”
Zugriffszeiten für aktuelle Speicher können mit CACTI abgeschätzt werden. Diese
Abschätzungen basieren auf der internen Erzeugung eines Layouts des Speichers
und der Extraktion der Kapazitäten daraus [589].
Beispiel 3.18: Abb. 3.40 zeigt Ergebnisse von CACTI für exponentiell wachsende
Größen [35]. Die Zugriffszeit wächst mit der Größe der Speicher. Abb. 3.40 enthält
Abb. 3.40 Energieverbrauch und Zugriffszeit für Speicher gemäß CACTI
Speichergröße [Byte]
128
512
2k
8k
32k
2
4
6
8
10
12
Energie [nJ]
Zugriffszeit [ns]
auch den jeweiligen Energieverbrauch. Danach sind große Speicher nicht energieeffizient. Die Speichergröße hat auf den Energieverbrauch tatsächlich einen größeren
Einfluss als auf die Zugriffszeit.
∇
Über viele Jahre hinweg ist der Unterschied zwischen den Prozessor- und den
Speichergeschwindigkeiten immer größer geworden, bis etwa ab dem Jahr 2003 die
Taktraten von Prozessoren aufgrund der power wall weitgehend stagnierten (siehe
Abb. 3.41).
Während die Geschwindigkeit von Speichern sich um einen Faktor von ca. 1,07
pro Jahr verbessert hat, wurden Prozessoren mit einem Faktor zwischen 1,5 und
3 Hardware eingebetteter Systeme
3.4 Speicher
3.4.1 Zielkonflikte
Daten, Programme und FPGA-Konfigurationen müssen in Speichern abgespeichert
werden. Speicher müssen so groß sein, wie die Anwendungen es verlangen, sie
müssen die benötigte Performanz bieten, hinreichend zuverlässig sein, Zugriffe der
gewünschten Granularität (Bytes, Worte, Seiten) ermöglichen und ggf. persistent
speichern. Sie müssen dennoch in Bezug auf die Kosten, physikalische Größe und
den Energieverbrauch effizient sein. Diese Anforderungen führen zu Zielkonflikten,
was schon 1946 von Burks, Goldstine und von Neumann bemerkt wurde [78]:
„Ideally one would desire an indefinitely large memory capacity such that any
particular ... word ... would be immediately available — i.e. in a time which is ...
shorter than the operation time of a fast electronic multiplier. ... It does not seem
possible physically to achieve such a capacity.”
Zugriffszeiten für aktuelle Speicher können mit CACTI abgeschätzt werden. Diese
Abschätzungen basieren auf der internen Erzeugung eines Layouts des Speichers
und der Extraktion der Kapazitäten daraus [589].
Beispiel 3.18: Abb. 3.40 zeigt Ergebnisse von CACTI für exponentiell wachsende
Größen [35]. Die Zugriffszeit wächst mit der Größe der Speicher. Abb. 3.40 enthält
Abb. 3.40 Energieverbrauch und Zugriffszeit für Speicher gemäß CACTI
Speichergröße [Byte]
128
512
2k
8k
32k
2
4
6
8
10
12
Energie [nJ]
Zugriffszeit [ns]
auch den jeweiligen Energieverbrauch. Danach sind große Speicher nicht energieeffizient. Die Speichergröße hat auf den Energieverbrauch tatsächlich einen größeren
Einfluss als auf die Zugriffszeit.
∇
Über viele Jahre hinweg ist der Unterschied zwischen den Prozessor- und den
Speichergeschwindigkeiten immer größer geworden, bis etwa ab dem Jahr 2003 die
Taktraten von Prozessoren aufgrund der power wall weitgehend stagnierten (siehe
Abb. 3.41).
Während die Geschwindigkeit von Speichern sich um einen Faktor von ca. 1,07
pro Jahr verbessert hat, wurden Prozessoren mit einem Faktor zwischen 1,5 und
