08.10.2013 Aufrufe

Cache

Cache

Cache

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.

Lucas Hartmann<br />

<strong>Cache</strong><br />

IT11b<br />

Kaiserslautern, 26.03.2012<br />

<strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


Definition<br />

Agenda<br />

<strong>Cache</strong> Aufbau<br />

Swapping<br />

Paging<br />

Memory Management Unit<br />

<strong>Cache</strong> Arten<br />

Zugriffsverfahren<br />

2 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


Dient als Puffer Speicher<br />

Definition<br />

Meist wird SRAM/DRAM verwendet<br />

Teuer in Bezug auf das Preis pro Bit Verhältnis<br />

<strong>Cache</strong>-Hit<br />

<strong>Cache</strong>-Miss<br />

3 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


<strong>Cache</strong> Aufbau<br />

Daten und Befehlsspeicher in L1-<strong>Cache</strong> getrennt<br />

L1-<strong>Cache</strong> 8-64 KB<br />

L2-<strong>Cache</strong> 256 KB -16 MB<br />

L3-<strong>Cache</strong> 4-20 MB<br />

entweder inklusiv oder exklusiv aufgebaut<br />

L1-<strong>Cache</strong><br />

Daten<br />

CPU-Kern<br />

L2-<strong>Cache</strong><br />

L3-<strong>Cache</strong><br />

Hauptspeicher<br />

L1-<strong>Cache</strong><br />

Befehle<br />

4 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


• Vorläufer des Paging<br />

• Daten werden ausgelagert<br />

Swapping<br />

• Werden wieder geladen wenn benötigt<br />

• Findet meist dann statt wenn ein anderer Prozess aktiviert wird<br />

• Speicheradressen werden bei jedem Einlesen neu berechnet<br />

• Alle ausgelagerten Speichersegmente bilden die Auslagerungsdatei<br />

5 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


Paging<br />

Programmteile werden zusammengefasst (Page)<br />

Pages werden ausgelagert wenn gerade nicht benötigt<br />

Adressen der Pages bleiben im Speicher<br />

Physische und logische Adresse sind unterschiedlich<br />

MMU berechnet die Adressen<br />

6 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


Memory Management Unit<br />

Übersetzt virtuelle in physische Adressen<br />

Schottet Prozesse voneinander ab<br />

Betrieb im Multitasking wird einfacher und sicherer<br />

Bei Harvard-Architektur sind 2 MMUs vorhanden<br />

TLB = Adresspuffer<br />

Logische Adressen müssen nicht<br />

immer physisch vorhanden sein<br />

(page fault/miss)<br />

7 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


<strong>Cache</strong> Arten – asynchron / synchron<br />

Asynchron | Synchron<br />

Nicht synchron zum CPU-Takt<br />

Arbeitet wie DRAM<br />

Zugriffszeit 35-200ns<br />

Synchron zum CPU-Takt<br />

Arbeitet wie SRAM<br />

Zugriffszeit unter 8-20ns<br />

8 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


<strong>Cache</strong> Arten - Burst / Pipelined-Burst<br />

Burst | Pipelined-Burst<br />

Benötigt nur die<br />

Startadresse<br />

Kann Adressen dann selbst<br />

errechnen<br />

Arbeitet „stoßweise“<br />

Overhead entfällt<br />

Führt gleichzeitig verschiedene<br />

Instruktionen aus<br />

Zugriffszeit 4-8ns<br />

9 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


Zugriffsverfahren – write-back<br />

Block muss im <strong>Cache</strong> vorhanden sein<br />

Zu schreibender Block wird im <strong>Cache</strong> abgelegt<br />

Wandert immer weiter nach „oben“ (nur bei exklusivem <strong>Cache</strong>)<br />

Wenn ganz verdrängt, wird er zurückkopiert<br />

Inkonsistenz zwischen <strong>Cache</strong> und restlichem Speicher<br />

10 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


Zugriffsverfahren – write-through<br />

Block muss im <strong>Cache</strong> vorhanden sein<br />

Zu schreibender Block wird sofort zurückgeschrieben<br />

Benutzt Pufferspeicher (write buffer)<br />

Wenn Pufferspeicher voll muss der Prozessor warten<br />

11 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


Zugriffsverfahren – write-allocate<br />

Block darf nicht im <strong>Cache</strong> vorhanden sein<br />

Block wird geholt und die geänderten Bytes anschließend geschrieben<br />

Meist in Verbindung mit write-back genutzt<br />

12 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


Zugriffsverfahren – non-write-allocate<br />

Block darf nicht im <strong>Cache</strong> vorhanden sein<br />

Am <strong>Cache</strong> wird vorbeigeschrieben direkt in die nächsthöhere<br />

Speicherebene<br />

Bringt nur Vorteile bei Blöcken die nicht wieder gelesen werden<br />

Meist in Verbindung mit write-through genutzt<br />

13 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


Zugriffsverfahren - <strong>Cache</strong> Flush<br />

Komplettes Zurückschreiben des <strong>Cache</strong>s<br />

<strong>Cache</strong>inhalt bleibt bestehen<br />

Nötig um die Konsistenz zwischen <strong>Cache</strong> und Hauptspeicher<br />

wiederherzustellen<br />

Wird meist dann nötig, wenn externe Geräte Daten aus dem Hauptspeicher<br />

verwenden<br />

14 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern


Vielen Dank für die Aufmerksamkeit<br />

15 <strong>Cache</strong> 31.05.2012<br />

© Lehrstuhl für Fertigungstechnik und Betriebsorganisation, Prof. Dr.-Ing. Jan C. Aurich, TU Kaiserslautern

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!