Rechnerarchitektur (Fach) / Cache (Lektion)

In dieser Lektion befinden sich 38 Karteikarten

speicherstrukturen

Diese Lektion wurde von fuchsik erstellt.

Lektion lernen

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