Cache
Cache
Cache
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