Rechnerarchitektur (Fach) / Cache (Lektion)
In dieser Lektion befinden sich 38 Karteikarten
speicherstrukturen
Diese Lektion wurde von fuchsik erstellt.
Diese Lektion ist leider nicht zum lernen freigegeben.
- Speicherhierarchie Ziele Biete dem Nutzer soviel Speicher, wie in der billigsten Technologie verfügbar ist Biete Zugriff mit der Geschwindigkeit der schnellsten Technologie
- Speicherhierarchien Ebenen Register Cache Hauptspeicher Massenspeicher (Festplatte) Archivspeicher (Magnetband)
- Cache - Welche Probleme umgeht man? nachgeordneter Speicher langsamer CPU wird vom Cache schneller Speicher "vorgegaukelt" nachfolgender Speicher vllt nicht softwaretransparent, Cache schon!
- Grundidee Cache Benutzung eines kleinen schnellen Pufferspeichers zwischen Hauptspeicher und Prozessor, um die Zugriffs-Geschwindigkeit zu erhöhen > Kaschierung des langsamen nachgeordneten Speichers gegenüber der CPU dieser enthält Daten, die „am wahrscheinlichsten“ benötigt werden
- Lokalität Prinzip Programme greifen zu jedem beliebigen Zeitpunkt jeweils nur auf einen relativ kleinen Teil ihres Adressraums zu Je strukturierter Programme geschrieben sind, um so mehr ist dasLokalitätsprinzip erfüllt: - Verbleib in einer Schleife ist wahrscheinlicher als ihr Verlassen - Bei einem Stack kann man immer nur benachbarte Elemente adressieren - Programme werden sequentiell entspr. des logischen Ablaufs hingeschrieben - Felder werden auch meist in der Folge benachbarter Indizes angesprochen
- zeitliche Lokalität Programm wird in naher Zukunft mit relativ hoher Wahrscheinlichkeit wieder auf ein Element (Datum/Befehl) zugreifen, auf das es in unmittelbarer Vergangenheit bereits zugegriffen hat in der Regel erfüllt Nutzung: Halten der zuletzt zugegriffenen Daten möglichst nahe beim Prozessor
- zeitliche Lokalität Programm wird in naher Zukunft mit relativ hoher Wahrscheinlichkeit wieder auf ein Element (Datum/Befehl) zugreifen, auf das es in unmittelbarer Vergangenheit bereits zugegriffen hat in der Regel erfüllt Nutzung: Halten der zuletzt zugegriffenen Daten möglichst nahe beim Prozessor
- räumliche Lokalität Nach Zugriff eines Programms auf ein Element ist es wahrscheinlich, dass in naher Zukunft ein Zugriff auf Elemente erfolgt, die in unmittelbarer Nähe im Speicher stehen Nutzung: Bewegen ganzer Blöcke aus mehreren benachbarten Worten in Hierarchiestufen näher am Prozessor
- Cache Read Miss Cache Read Miss: Anforderung von Daten aus dem Cache, die nicht erfüllt werden kann, weil die Daten nicht im Cache vorliegen1.CPU legt Adresse auf Adreßbus.2.Cache-Controller stellt fest, dass Datum zur Adresse nicht im Cache ist (Miss)3. CPU liest Datum aus nächster Speicher-Hierarchiestufe4. Cache-Controller kopiert Datum in den Cache: • Es ist Platz im Cache zu suchen, an dem die neuen Daten stehen sollen • Falls Cache voll, müssen andere Daten aus dem Cache entfernt werden Langsamer Zugriff, da von CPU eingefügt werden müssen
- Cache Read Hit/Cache Write HIt Cache Read Hit1. CPU legt Adresse auf Adreßbus.2. Cache-Controller stellt fest, daß Datum zur Adresse im Cache ist (Hit)3. CPU liest Datum aus Cache.> schneller Zugriff Cache Write HitDatum wird in Cache und Arbeitsspeicher abgelegt
- Cache Write Miss Cache Write Miss: Schreiboperation betrifft einen Block des Hauptspeichers, der nicht im Cache vorliegt Write Around: - Prozessor schreibt das Datum nur in den Arbeitsspeicher („um den Cache herum“) - üblich bei "Write-Trough-Caches"Write Allocation:1. Cache Steuerung behandelt Miss wie Read Miss - lädt Inhalt der adressierten Speicherzelle in Cache2. kurzzeitig aufgeschobener Zeitzugriff wird wie Write Hit ausgeführt indem Datum in Cache und Arbeitsspeicher abgelegt wird
- Schreibzugriffe Rückschreibestrategien Durchschreibeverfahren Rückchreibeverfahren Write Hit/Write Miss
- Durchschreibverfahren CPU schreibt Datum gleichzeitig in Cache und in Hauptspeicher Vorteile: - einfache Steuerung - keine Markierung der geschriebenen Daten notwendigNachteil: - Zugriffszeit ist durch Zugriff auf den Hauptspeicher bestimmt
- Rückschreibverfahren CPU schreibt Datum zunächst nur in den Cache Geschrieben Daten müssen markiert werden Rückschreiben erfolgt durch Cache Controller wenn das Datum in den Hauptspeicher ausgelagert werden muss
- Trefferrate eines Cache-Systems relative Häufigkeit dafür, dass ein adressiertes Objekt im Cache ist
- Fehlzugriffsrate eines Cache-Systems relative Häufigkeit dafür, dass ein adressiertes Objekt nicht im Cache ist
-
- Kohärenz beschreibt das Verhalten von mehreren Prozessoren bei Schreib- und Leseoperationen auf dieselbe Speicherzelle
- Speichersystem kohärent, wenn: 1.Programmreihenfolge für Lese-/Schreiboperationen innerhalb eines Prozessors bleibt erhalten2.Write-Propagierung: neuer Wert wird für andere Prozessoren irgendwann sichtbar 3.Write-Serialisierung: Globale Schreibsequentialisierung wird garantiert
- Cache-Kohärenz • beschreibt Eigenschaft mehrerer an einem gemeinsamen Hauptspeicher arbeitender Caches• liegt für gesamtes System vor, wenn bei Lesezugriff der zuletzt geschriebene Wert geliefert wird > darf keinen Unterschied machen, in welchen Cache zuletzt geschrieben wurde• Ein cache-kohärentes System kann vorübergehend inkonsistent sein
- Konsistenz beschreibt einheitlichen Zustand mehrerer beteiligter Speicher, d.h. Zustand, in dem alle Kopien eines Speicherwortes in Caches und Hauptspeicher identisch sind
- Kohärenz-Protokolle Ziel:Herstellung der Kohärenz auch ohne ständige Konsistenz Aufgabe:Verfolgung des Status eines „gecachten“ Speicherblocks
- Aufbau Cache Datenspeicher Adressspeicher deren Einträge sind paarweise fest zugeordnet Komparator vergleicht Speicheradresse auf Adressbus mit allen im Adressspeicher abgelegten Adressen > Übereinstimmung mit anderen Adresse (Hit) > Lage im Adressspeicher bestimmt Lage des Datums im Datenspeicher (durch 1 zu 1 Zuordnung der Speicherwörter) Adressvergleich möglichst vollparallel, d.h. in einem einzigen Taktzyklus
- Cache-Verwaltung Blockrahmen- zusammenhängende Speicherplätze im Cachespeicher Adressetikett- identifizierender Teil der HS-Adresse der Daten, die gerade in einem bestimmten Blockrahmen gespeichert ist- je Blockrahmen = ein Adressetikett Block- Datenportion, die in einem Blockrahmen paßt Rahmenklasse- Menge der Blockrahmen in Rahmenklassen partitioniert
- direktabbildender Cache Assoziativität = 1, das heißt pro Satz genau ein Blockrahmen> jedem Speicherblock ist fester Platz im Cache zugeordnet
- vollassoziativer Cache Assoziativität = Blockrahmenanzahl>jeder Speicherblock kann in beliebigem Cache-Block gespeichert werden
- p-fach satzassoziativer Cache kombiniert direktabgebildete u. vollassoziative Plazierung Jeder Speicherblock: - wird aufgrund seiner Adresse fest auf einen eindeutigen Satz im Cache abgebildet Satznummer = Blocknummer modulo Anzahl_der_Sätze_des_Caches - kann innerhalb des Satzes in jedem beliebigen der p Blockrahmen plaziert werden
- Assoziativität Verhältnis von Blockrahmen und Sets
- Zugriffszeit bei Treffer Zeit für Zugriff auf Ebene der Speicherhierarchie, einschließlich Zeit, um festzustellen, ob Zugriff ein Treffer oder Fehlzugriff war
- Fehlzugriffsaufwand Nachladezeit bei Cache-Miss: benötigte Zeit, um gesuchten Block aus nächstniedrigerer Stufe der Speicherhierarchie zu laden
- größerer Cache Vorteil: - weniger NachladeoperationenNachteile: - Zugriffszeit auf Cacheebene steigt - mehr Chipfläche (teurer)
- größerer Blockrahmen Vorteil: - Transfer eines Blocks mit x Worten „kostet“ weniger als x EinzeltransporteNachteil: - es passen weniger Worte in den kleineren Cache
- Nachladestrategien Demand Fetching Prefetching
-
- Demand Fetching bei Cache-Miss wird adressierter Block geladen > einfachste Strategie verdrängt bei Direct Mapping wohldefinierten Block, sonst Random, LRU, FIFO
- Prefetching Nachladen auf Verdacht Vorteil:Verbesserte Performane bzw. höhere Geschwindigkeit
- Verdrängungsstrategien benötigter Block nicht im Cache > Nachladen aus Hauptspeicher Ablage im Cache für schnellere zukünftige Zugriffe belegter Cache: Block muss verdrängt werden
- Arten Ersetzungsstrategien (Verdrängungsstrategien) Random (nächster zu überschreibender Eintrag wird zufällig ausgewählt) FIFO (erster Block zuerst verdrängt) Round-Robin (festgelegte Reihenfolge) LFU (ersetzt Block, auf den am seltensten zugegriffen wurde) LRU (ersetzt Block, auf den am längsten nicht zugegriffen wurde
- Verdrängungsstrategien direktabbildende Caches wenn nur eine Position für Ersetzung zur Verfügung > keine spezielle Strategie notwendig vorhandener Block wird aus Cache entfernt und durch neuen ersetzt
- Verdrängungsstrategien mehrfach-assoziative Caches mehr als eine Position da, an der Block untergebracht werden kann > Ersetzungsstrategie nötig