Speicherhierarchie

Die Begriff-Speicherhierarchie wird in der Computerarchitektur verwendet, wenn man Leistungsprobleme in der architektonischen Computerplanung, den Algorithmus-Vorhersagen und den Programmierkonstruktionen der niedrigeren Ebene wie das Beteiligen der Gegend der Verweisung bespricht. Eine 'Speicherhierarchie' in der Computerlagerung unterscheidet jedes Niveau in der 'Hierarchie' vor der Ansprechzeit. Seit der Ansprechzeit sind Kompliziertheit und Kapazität verbunden, die Niveaus können auch durch die Steuern-Technologie bemerkenswert sein.

Die vielen Umtausche im Entwerfen für die hohe Leistung werden die Struktur der Speicherhierarchie, d. h. die Größe und Technologie jedes Bestandteils einschließen. So können die verschiedenen Bestandteile als das Formen einer Hierarchie von Erinnerungen angesehen werden (M, M..., m), in dem jedes Mitglied M gewissermaßen dem folgenden höchsten Mitglied M der Hierarchie untergeordnet ist. Um das Warten durch höhere Niveaus zu beschränken, wird eine niedrigere Ebene durch die Füllung eines Puffers und dann die Nachrichtenübermittlung antworten, um die Übertragung zu aktivieren.

Es gibt vier Hauptlagerungsniveaus.

  1. Inner - Verarbeiter-Register und geheimes Lager.
  2. Wichtig - der System-RAM und die Kontrolleur-Karten.
  3. Online-Massenlagerung - Sekundäre Lagerung.
  4. Off-Linehauptteil-Lagerung - Tertiäre und Indirekte Lagerung.

Das ist eine allgemeinste Speicherhierarchie-Strukturierung. Viele andere Strukturen sind nützlich. Zum Beispiel kann ein Paginierungsalgorithmus als ein Niveau für das virtuelle Gedächtnis betrachtet werden, wenn man eine Computerarchitektur entwirft.

Beispiel-Gebrauch des Begriffes

Hier sind einige Notierungen.

  • Das Hinzufügen der Kompliziertheit verlangsamt die Speicherhierarchie.
  • CMOx Speichertechnologie streckt den Blitz-Raum in der Speicherhierarchie
  • Eine der Hauptweisen, Systemleistung zu vergrößern, minimiert, wie weit unten die Speicherhierarchie man gehen muss, um Daten zu manipulieren.
  • Latenz und Bandbreite sind zwei Metrik, die mit geheimen Lagern und Gedächtnis vereinigt ist. Keiner von ihnen ist gleichförmig, aber ist zu einem besonderen Bestandteil der Speicherhierarchie spezifisch.
  • Das Voraussagen, wo in der Speicherhierarchie die Daten wohnt, ist schwierig.
  • ... die Position in der Speicherhierarchie diktiert die für den Vorabruf erforderliche Zeit vorzukommen.

Anwendung des Konzepts

Die Speicherhierarchie in den meisten Computern ist:

  • Verarbeiter-Register - der schnellstmögliche Zugang (gewöhnlich 1 Zentraleinheitszyklus), nur Hunderte von Bytes in der Größe
  • Geheimes Lager des Niveaus 1 (L1) - hat häufig in gerade einigen Zyklen, gewöhnlich Zehnen von Kilobytes zugegriffen
  • Geheimes Lager des Niveaus 2 (L2) - höhere Latenz als L1 durch 2× zu 10× gewöhnlich hat 512 KiB oder mehr
  • Geheimes Lager des Niveaus 3 (L3) - höhere Latenz als L2, hat gewöhnlich 2048 KiB oder mehr
  • Hauptgedächtnis - kann Hunderte von Zyklen nehmen, aber kann vielfache Gigabytes sein. Zugriffszeiten können im Fall von einer NUMA Maschine nicht gleichförmig sein.
  • Plattenlagerung - Millionen der Zyklus-Latenz wenn nicht versteckt, aber können vielfacher terabytes sein
  • Tertiäre Lagerung - Latenz mehrerer Sekunden, kann riesiger sein

Bemerken Sie, dass der Hobbyist, der "L1 geheimes Lager" in der Computerspezifizierungsplatte liest, über die 'innere' Speicherhierarchie liest.

Die meisten modernen Zentraleinheiten sind so schnell, dass für die meisten Programm-Arbeitspensen der Engpass die Gegend der Verweisung von Speicherzugängen und der Leistungsfähigkeit des Versteckens und der Speicherübertragung zwischen verschiedenen Niveaus der Hierarchie ist. Infolgedessen verbringt die Zentraleinheit viel von seiner Zeit, leer laufend, auf die Speichereingabe/Ausgabe wartend, um zu vollenden. Das wird manchmal die Raumkosten genannt, weil ein größerer Speichergegenstand mit größerer Wahrscheinlichkeit ein kleines/schnelles Niveau überfluten und Gebrauch eines größeren/langsameren Niveaus verlangen wird.

Moderne Programmiersprachen nehmen hauptsächlich zwei Niveaus des Gedächtnisses, des Hauptgedächtnisses und der Plattenlagerung an, obwohl auf der Zusammenbau-Sprache und den Reihenmonteuren auf Sprachen wie C auf Register direkt zugegriffen werden kann. Einnahme optimalen Vorteils der Speicherhierarchie verlangt die Zusammenarbeit von Programmierern, Hardware und Bearbeitern (sowie zu Grunde liegende Unterstützung vom Betriebssystem):

  • Programmierer sind für bewegende Daten zwischen Platte und Gedächtnis durch die Dateieingabe/Ausgabe verantwortlich.
  • Hardware ist für bewegende Daten zwischen Gedächtnis und geheimen Lagern verantwortlich.
  • Optimierungsbearbeiter sind dafür verantwortlich, Code zu erzeugen, der, wenn durchgeführt, die Hardware veranlassen wird, geheime Lager und Register effizient zu verwenden.

Viele Programmierer nehmen ein Niveau des Gedächtnisses an. Das arbeitet fein, bis die Anwendung eine Leistungswand schlägt. Dann wird die Speicherhierarchie während des Codewiederfactorings bewertet.

Siehe auch


Zeder-Hügel, Utah / Adler-Berg, Utah
Impressum & Datenschutz