3 Arbeitsspeicher- und Bussysteme
3 Arbeitsspeicher- und Bussysteme
3 Arbeitsspeicher- und Bussysteme
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-