Anmelden

Schlüsseltechnologie· Staffel 1· Folge 7

STP007: Speicherhierarchie

Donnerstag, 2. September 2021 · 1 h 02

MP3

Shownotes

<p>Für große Teile der Anwender liegt sie im Verborgenen. Versteckt unter Plastik- und Metallgehäusen ist die Welt der Speicher ein ebenso fremder wie faszinierender Ort. Doch auch hier herscht eine strenge Rangordnung, bestimmt allein von Geschwindigkeit und Ausdauer. Hört selbst, welch beschwerlicher Weg sich auftut, wenn Bits sich auf die Reise machen, um verarbeitet zu werden.</p><h2>Shownotes</h2><ul>
<li>
<p>Rückbezug zu STP003: Logikgatter</p>
<ul>
<li>damit Rechnen möglich</li>
<li>für Eingabewerte und Ausgabewerte ist ein Speicher erforderlich</li>
</ul>
</li>
<li>
<p>Kurzabriss zum Thema <a href="de.wikipedia.org/wiki/Harvard-Architektur"…; vs. <a href="de.wikipedia.org/wiki/Von-Neumann-Architektur&…;
</li>
<li>
<p>grundsätzliche Arten von Speichern</p>
<ul>
<li>flüchtiger Speicher: braucht Strom zum Halten von Daten</li>
<li>nichtflüchtiger Speicher: behält Daten auch im ausgeschalteten Zustand</li>
<li>Der ideale Speicher wäre groß, schnell, nichtflüchtig, und beliebig oft wiederbeschreibbar.</li>
<li>da wir keinen idealen Speicher haben: <strong>Speicherhierarchie</strong></li>
</ul>
</li>
</ul>
<p>In der folgenden Liste der verschiedenen Hierarchiestufen sind alle konkreten Zahlenwerte nur illustrative Beispielwerte für Hardware der aktuellen Generation.</p>
<ul>
<li>
<p>Stufe 1: <a href="de.wikipedia.org/wiki/Festplattenlaufwerk"…;
<ul>
<li>nichtflüchtig, groß und günstig (ab etwa 25 Euro pro TiB)</li>
<li>Zugriffsgeschwindigkeit: 2.5 bis 10 ms (bei 3 GHz: 7,5 bis 30 Millionen Takte) plus Übertragungszeit</li>
<li>Zugriff immer mindestens in Blöcken zu 4 KiB, besonders effizient beim Zugriff auf Sequenzen aufeinanderfolgender Blöcke</li>
</ul>
</li>
<li>
<p>Stufe 2: <a href="de.wikipedia.org/wiki/Solid-State-Drive"&…;
<ul>
<li>etwas teurer als Festplatten (ab etwa 90 Euro pro TiB)</li>
<li>aber Zugriffsgeschwindigkeit: 0.05 ms (bei 3 GHz: 150.000 Takte)</li>
<li>anders als bei Festplatten schneller Wahlzugriff</li>
</ul>
</li>
<li>
<p>Stufe 3: <a href="de.wikipedia.org/wiki/Random-Access_Memory&quo… (RAM)</a></p>
<ul>
<li>ab hier flüchtig (Vorteil: öfter wiederbeschreibbar ohne Qualitätsverlust)</li>
<li>deutlich teurer (ab etwa 4 Euro pro <strong>GiB</strong>, entspr. ~4000 Euro pro TiB)</li>
<li>gerade deswegen meist kleiner als die nichtflüchtigen Speicher
<ul>
<li>übliche Größen: von 2-4 GiB bei Smartphones oder kleinen Notebooks bis mehrere TiB bei Servern</li>
</ul>
</li>
<li>Zugriffsgeschwindigkeit: 15 ns Latenz plus Übertragungszeit, insgesamt z.B. 65 ns (bei 3 GHz: 200 Takte)</li>
</ul>
</li>
<li>
<p>Stufe 4: <a href="en.wikipedia.org/wiki/CPU_cache">Cache (Zwischenspeicher) des Prozessors</a></p>
<ul>
<li>ab hier fest in den Prozessor eingebaut</li>
<li>Abbilder von einzelnen Zeilen (je 64 Byte) aus dem Arbeitsspeicher</li>
<li>Größe: 4-16 MiB</li>
<li>Zugriffsgeschwindigkeit: 1-5 ns (bei 3 GHz: 3-15 Takte)</li>
</ul>
</li>
<li>
<p>Stufe 5: <a href="en.wikipedia.org/wiki/Register_file">R… des Prozessors</a></p>
<ul>
<li>Größe: 64 bis einige 100 Byte</li>
<li>Zugriffsgeschwindigkeit: meist 1 Takt</li>
<li>nur dieser Speicher kann vom CPU direkt für Berechnungen verwendet werden</li>
</ul>
</li>
<li>
<p>andere mögliche Hierarchiestufen</p>
<ul>
<li>Stufe 0: Speicher auf anderen Computern im Netzwerk</li>
<li>Stufe 2,5: nichtflüchtiger RAM (noch nicht weitverbreitet)</li>
</ul>
</li>
<li>
<p>Speicher aus Sicht des Programmierers</p>
<ul>
<li>Abstraktion: lineare Kette von bytegroßen Speicherzellen, die fortlaufend nummeriert sind (<strong>Speicheradressen</strong>)</li>
<li>Probleme mit dieser Abstraktion:
<ul>
<li>kleinste sinnvolle Schreibmengen (4/8 Bytes bei Registern, 64 Bytes bei RAM, 4 KiB bei Festplatte/SSD)</li>
<li>Caching-Verhalten</li>
</ul>
</li>
<li>Einfluss auf effizientes Rechnen: viel wichtiger als schnelles Rechnen ist lokales Rechnen</li>
<li>Beispiel: Repräsentation von 2D-Feldern (z.B. Grafiken) und effizientes Bearbeiten derselben</li>
</ul>
</li>
<li>
<p>Quelle: <a href="akkadia.org/drepper/cpumemory.pdf">&qu… every programmer should know about memory"</a></p>
</li>
</ul>

Anmelden oder registrieren

Jetzt

0:00 / 0:00