24.11.2012 Aufrufe

3 Arbeitsspeicher- und Bussysteme

3 Arbeitsspeicher- und Bussysteme

3 Arbeitsspeicher- und Bussysteme

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

218 C3 <strong>Arbeitsspeicher</strong>- <strong>und</strong> <strong>Bussysteme</strong><br />

teratur zu Entwurf <strong>und</strong> Leistung von Caches seien hier nur [Smith 82] <strong>und</strong> [Przybylski 90]<br />

herausgegriffen. In der allgemeinen Literatur sind die Leistungsaspekte systematisch <strong>und</strong><br />

umfassend dargestellt.<br />

Leistungsbetrachtungen zu Caches können sich an folgender Formel für die mittlere<br />

(auch: effektive) Speicherzugriffszeit Te für eine zweistufige <strong>Arbeitsspeicher</strong>hierarchie<br />

(Cache <strong>und</strong> Hauptspeicher) orientieren:<br />

Te = h⋅Th + m⋅Tm (1)<br />

Dabei bezeichnen h <strong>und</strong> m = 1−h die Treffer- bzw. Fehlzugriffsraten im Cache (hit rate,<br />

miss rate), Th die Cache-Zugriffszeit (hit time) <strong>und</strong> Tm die Cache-Ladezeit (miss time).<br />

Die mittlere Speicherzugriffszeit Te kann somit durch die im weiteren beschriebenen drei<br />

Maßnahmen reduziert werden. Optimierung an einer Größe bewirkt dabei aber meist eine<br />

Verschlechterung einer oder der beiden anderen. Es gilt, einen guten Kompromiß zwischen<br />

den Einflußfaktoren zu finden.<br />

Reduktion der Fehlzugriffsrate m. Dies gelingt durch Vergrößerung des Caches oder<br />

höheren Assoziativitätsgrad. Beides macht ihn teurer <strong>und</strong> erhöht auch, wie erwähnt, die<br />

Zugriffszeit Th. Größere Blöcke sind eine weitere Möglichkeit, da sie verstärkt räumliche<br />

Lokalität nutzen; dadurch wird aber die Nachladezeit Tm erhöht. In assoziativen Caches<br />

kann auch eine verbesserte Ersetzungsstrategie Vorteile ergeben. Speziell für direkt abbildende<br />

Caches wurde jüngst der Einsatz eines kleinen „Neben“-Caches (engl. victim<br />

cache) vorgeschlagen: In ihnen werden die zuletzt verdrängten Blöcke zwischengespeichert,<br />

so daß der erneute Zugriff auf sie viel schneller ist, als wenn sie im Hauptspeicher<br />

wären. Eine weitere wirksame Technik ist explizites vorausgreifendes Laden (prefetching)<br />

von Blöcken in den Cache. Dies kann durch Hardware erfolgen oder durch spezielle<br />

Befehle durch den Übersetzer veranlaßt werden.<br />

Reduktion der Cache-Zugriffszeit Th. Die Zugriffszeit zu einem Primär-Cache im Falle<br />

eines Treffers ist heute vielfach entscheidend für die Prozessortaktrate; bei einem Sek<strong>und</strong>är-Cache<br />

bestimmt sie die Anzahl der Wartezyklen für den Prozessor. Kurze Zugriffszeiten<br />

erhält man bei kleinen <strong>und</strong> einfach organisierten Caches, was der ersten Optimierung<br />

zuwiderläuft. Einen zusätzlichen Vorteil bieten hier direkt abbildende Caches,<br />

da sich die Vergleiche der Kennungen (tags) <strong>und</strong> Anwahl <strong>und</strong> Übertragung der gewünschten<br />

Daten überlappen können.<br />

Reduktion der Cache-Ladezeit Tm . Bereits angesprochen wurde die Möglichkeit, bei<br />

einem Fehlzugriff nicht direkt auf den Hauptspeicher zugreifen zu müssen, sondern einen<br />

Sek<strong>und</strong>är-Cache zwischenzuschalten. In diesem Fall ergibt sich Tm selbst gemäß einer zu<br />

(1) analogen Formel. In den letzten Jahren wurden zur Unterstützung schneller Prozessoren<br />

aufwendige sog. nichtblockierende Caches eingeführt (non-blocking caches). Sie<br />

ermöglichen mehrere ausstehende Speicherzugriffe <strong>und</strong> können bei Treffern Daten an den<br />

Prozessor liefern, selbst wenn das Nachladen eines Blocks im Gange ist. Schließlich ist<br />

Tm maßgeblich durch die Geschwindigkeit des Prozessor-/Speicherbusses <strong>und</strong> des Hauptspeichers<br />

bestimmt. Maßnahmen zur Leistungssteigerung dieser Komponenten <strong>und</strong> zur<br />

Abstimmung mit den Caches werden in den folgenden Abschnitten besprochen.<br />

3.3 Hauptspeicher<br />

In diesem Abschnitt werden Komponenten <strong>und</strong> Organisationsformen des Hauptspeichers<br />

moderner Rechensysteme behandelt. Der Hauptspeicher ist ein großer, flüchtiger Halbleiterspeicher<br />

mit wahlfreiem Zugriff <strong>und</strong> Lese- <strong>und</strong> Schreibmöglichkeit (random access<br />

memory, RAM), in dem Programme <strong>und</strong> Daten von Benutzern <strong>und</strong> Betriebssystem wäh-

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!