Cache (computing)

Diagramm eines CPU -Speicher -Cache -Betriebs

Im Computer, a Zwischenspeicher (/kæʃ/ (Hören) Kash)[1] ist eine Hardware- oder Softwarekomponente, die Daten speichert, damit zukünftige Anfragen für diese Daten schneller bedient werden können. Die in einem Cache gespeicherten Daten könnten das Ergebnis einer früheren Berechnung oder einer Kopie der an anderer Stelle gespeicherten Daten sein. EIN Cache Hit tritt auf, wenn die angeforderten Daten in einem Cache gefunden werden können, während a Cache Miss tritt auf, wenn es nicht kann. Cache -Hits werden durch Lesen von Daten aus dem Cache bedient, die schneller als das Neuzusammensehen eines Ergebniss oder des Lesens aus einem langsameren Datenspeicher sind. Je mehr Anfragen, die aus dem Cache bedient werden können, desto schneller wird das System ausgeführt.[2]

Um kostengünstig zu sein und eine effiziente Verwendung von Daten zu ermöglichen, müssen Caches relativ gering sein. Trotzdem haben sich Caches in vielen Bereichen des Computers bewährt, weil sie typisch sind Computer Anwendungen Zugriff auf Daten mit einem hohen Grad an Referenzort. Solche Zugriffsmuster zeigen eine zeitliche Lokalität, bei der Daten angefordert werden, die kürzlich bereits angefordert wurden, und räumlich Lokalität, wobei Daten angefordert werden, die physisch nahe an Daten gespeichert sind, die bereits angefordert wurden.

Motivation

Es gibt einen inhärenten Kompromiss zwischen Größe und Geschwindigkeit (angesichts der Tatsache, dass eine größere Ressource größere physische Entfernungen impliziert), aber auch einen Kompromiss zwischen teuren Premium-Technologien (wie z. Sram) gegen billigere, leicht massenproduzierte Waren (wie z. Dram oder Festplatten).

Das Pufferung bereitgestellt durch einen Cache profitiert einen oder beide von Latenz und Durchsatz (Bandbreite):

Latenz

Eine größere Ressource verursacht eine signifikante Latenz für den Zugriff - z. Es kann Hunderte von Taktzyklen dauern, bis ein moderner 4 -GHz -Prozessor erreichen kann Dram. Dies wird durch das Lesen in großen Stücken gemindert, in der Hoffnung, dass nachfolgende Lesevorgänge von nahe gelegenen Standorten stammen. Vorhersage oder explizit Vorabstetung Könnte auch erraten, woher zukünftige Lesevorgänge stammen und Anfragen im Voraus stellen werden; Wenn korrekt erledigt wird, wird die Latenz insgesamt umgangen.

Durchsatz

Die Verwendung eines Cache ermöglicht auch einen höheren Durchsatz aus der zugrunde liegenden Ressource, indem mehrere Feinkornübertragungen in größere, effizientere Anforderungen zusammengesetzt werden. Im Falle des Dram Schaltkreise, dies könnte durch einen breiteren Datenbus bedient werden. Betrachten Sie beispielsweise ein Programm, das in einem 32-Bit-Zugriff auf Bytes zugreift Adressraum, aber von einem 128-Bit-Off-Chip-Datenbus bedient; Individuelle Zugriffe mit ungekochten Byte würden nur 1/16 der Gesamtbandbreite verwendet werden, und 80% der Datenbewegung wären Speicheradressen anstelle von Daten selbst. Das Lesen größerer Stücke reduziert den Bruchteil der für die Übertragung von Adressinformationen erforderlichen Bandbreite.

Betrieb

Hardware implementiert Cache als Block Speicher für die temporäre Speicherung von Daten, die wahrscheinlich wieder verwendet werden. Zentrale Verarbeitungseinheiten (CPUs) und Festplattenfahrten (HDDS) verwenden häufig einen hardwarebasierten Cache, während Internetbrowser und Webserver häufig auf Software -Caching angewiesen.

Ein Cache besteht aus einem Pool von Einträgen. Jeder Eintrag hat verbunden Daten, was eine Kopie der gleichen Daten in einigen ist Backing Store. Jeder Eintrag hat auch eine Schild, was die Identität der Daten im Backing -Speicher angibt, dessen Eintrag eine Kopie ist. Das Markieren ermöglicht es, dass gleichzeitige cache-orientierte Algorithmen ohne Differential-Relais-Interferenz in vielschichtiger Weise funktionieren.

Wenn der Cache -Client (eine CPU, Webbrowser, Betriebssystem) muss auf Daten zugreifen, die im Backing Store vorhanden sind, und überprüft zunächst den Cache. Wenn ein Eintrag mit einem Tag gefunden werden kann, das dem der gewünschten Daten entspricht, werden stattdessen die Daten im Eintrag verwendet. Diese Situation wird als Cache -Hit bezeichnet. Beispielsweise könnte ein Webbrowserprogramm seinen lokalen Cache auf der Festplatte überprüfen, um festzustellen URL. In diesem Beispiel ist die URL das Tag, und der Inhalt der Webseite sind die Daten. Der Prozentsatz der Zugriffe, die zu Cache -Hits führen Trefferquote oder Trefferquote des Cache.

Die alternative Situation wird, wenn der Cache überprüft wird und nicht mit dem gewünschten Tag enthält, als Cache -Miss bezeichnet. Dies erfordert einen teureren Zugriff auf Daten aus dem Backing Store. Sobald die angeforderten Daten abgerufen wurden, wird sie normalerweise in den Cache kopiert und für den nächsten Zugriff bereit.

Während eines Cache -Fehls wird ein anderer bisher vorhandener Cache -Eintrag entfernt, um Platz für die neu abgerufenen Daten zu schaffen. Das Heuristik Wird verwendet, um den zu ersetzenden Eintrag auszuwählen, wird als das bezeichnet Ersatzrichtlinie. Eine beliebte Ersatzrichtlinie, "am wenigsten kürzlich" (LRU) (LRU), ersetzt den ältesten Eintrag, den Eintrag, auf den weniger in jüngster Zeit als jeder andere Eintrag zugegriffen wurde (siehe Cache -Algorithmus). Effizientere Caching-Algorithmen berechnen die Gebrauchsfrequenz gegen die Größe des gespeicherten Inhalts sowie die Latenzen und Durchsatz sowohl für den Cache als auch für den Backing Store. Dies funktioniert gut für größere Datenmengen, längere Latenzen und langsamere Durchsätze, wie sie bei Festplatten und Netzwerken erlebt werden, sind jedoch nicht effizient für die Verwendung innerhalb eines CPU -Cache.

Richtlinien schreiben

Ein Schreibcache mit No-Write-Allokation
Ein Schreibback-Cache mit Schreibzuweisung

Wenn ein System Daten in Cache schreibt, muss es irgendwann auch diese Daten in den Backing -Store schreiben. Das Timing dieses Schreibens wird durch die sogenannten als die kontrolliert Richtlinien schreiben. Es gibt zwei grundlegende Schreibansätze:[3]

  • Schreibschreibe: Schreiben erfolgt synchron sowohl mit dem Cache als auch mit dem Backing -Store.
  • Schreib zurück (auch genannt Schreiben Sie): Anfangs erfolgt das Schreiben nur zum Cache. Das Schreiben in den Backing -Store wird verschoben, bis der geänderte Inhalt durch einen anderen Cache -Block ersetzt wird.

Ein Schreibback-Cache ist komplexer zu implementieren, da er nachverfolgen muss, über welche Standorte geschrieben wurden, und sie als markieren müssen schmutzig zum späteren Schreiben in den Backing Store. Die Daten an diesen Standorten werden nur dann in den Backing -Store geschrieben, wenn sie aus dem Cache vertrieben werden, ein Effekt, der als als bezeichnet wird faul schreiben. Aus diesem Grund erfordert ein Lesefehler in einem Schreibback-Cache (für den ein Block durch ein anderes ersetzt werden muss) häufig zwei Speicherzugriffe auf den Service: eine, um die ersetzten Daten aus dem Cache zurück zum Geschäft zu schreiben, und dann eines und dann eines Um die erforderlichen Daten abzurufen.

Andere Richtlinien können ebenfalls Datenschreibback auslösen. Der Client kann viele Änderungen an Daten im Cache vornehmen und dann den Cache explizit benachrichtigen, um die Daten zurückzuschreiben.

Da keine Daten über Schreibvorgänge an den Antragsteller zurückgegeben werden, muss eine Entscheidung über Schreibfehlungen getroffen werden, unabhängig davon, ob Daten in den Cache geladen würden oder nicht. Dies wird durch diese beiden Ansätze definiert:

  • Schreiben Sie zu, zuordnen (auch genannt Schreiben Sie auf): Die Daten am Ort des Fehlschreibens werden in Cache geladen, gefolgt von einem Schreibbetriebsvorgang. Bei diesem Ansatz ähneln Write -Misses ähnlich wie bei Reads Misses.
  • No-Write-Zuteilung (auch genannt Schreiben Sie nicht zu oder schreibe herum): Die Daten am Ort des Fehlschreibens werden nicht in Cache geladen und direkt in den Backing-Store geschrieben. Bei diesem Ansatz werden Daten nur bei Reads -Misses in den Cache geladen.

Sowohl Schreib- als auch Writ-Back-Richtlinien können eine dieser Schreibmissrichtlinien verwenden, aber normalerweise werden sie auf diese Weise gepaart:[4]

  • In einem Schreibback-Cache werden Schreibzuweisung verwendet, in der Hoffnung auf nachfolgende Schreibvorgänge (oder sogar liest) an demselben Ort, der jetzt zwischengespeichert wird.
  • Ein Schreibcache verwendet No-Write-Zuteilung. Hier haben nachfolgende Schreibvorgänge keinen Vorteil, da sie noch direkt in den Backing Store geschrieben werden müssen.

Andere Entitäten als der Cache können die Daten im Backing-Store ändern. In diesem Fall kann die Kopie im Cache veraltet werden oder abgestanden. Wenn der Client die Daten im Cache aktualisiert, werden Kopien dieser Daten in anderen Caches veraltet. Kommunikationsprotokolle zwischen den Cache -Managern, die die Daten konsistent halten, werden als Kohärenzprotokolle bezeichnet.

Prefetch

Auf einem Cache Lesen Sie Miss, Caches mit a Paging fordern Politik Lesen Sie den Mindestbetrag aus dem Backing Store. Zum Beispiel liest der virtuelle Gedächtnis von Bedarf eine Seite des virtuellen Speichers (häufig 4 kByte) von der Festplatte in den Festplattencache im RAM. Beispielsweise liest eine typische CPU eine einzelne L2 -Cache -Linie von 128 Bytes aus DRAM in den L2 -Cache und eine einzelne L1 -Cache -Linie von 64 Bytes aus dem L2 -Cache in den L1 -Cache.

Caches mit a Eingabewarteschlange vorab oder allgemeiner Antizipatorische Paging -Richtlinie Gehen Sie weiter - sie lesen nicht nur den angeforderten Chunk, sondern vermuten, dass das nächste oder zwei Teilnehmer bald erforderlich sein werden, und so diese Daten im Voraus in den Cache vorlegen. Antizipatorisches Paging ist besonders hilfreich, wenn der Backing -Store eine lange Latenz hat, um den ersten Stück und viel kürzere Zeiten zu lesen, um die nächsten paar Teile nacheinander zu lesen, wie z. Festplattenspeicher und Dram.

Ein paar Betriebssysteme gehen weiter mit a Lader Das lädt immer die gesamte ausführbare Datei in den RAM vor.

Ein paar Caches gehen noch weiter und laden nicht nur eine gesamte Datei vor, sondern beginnt auch, andere verwandte Dateien zu laden, die bald angefordert werden können, wie z. Seitencache verbunden mit a Prefetcher oder der Webcache verknüpft mit Link -Vorabklingung.

Beispiele für Hardware -Caches

CPU -Cache

Kleine Erinnerungen an oder nahe am Zentralprozessor kann schneller arbeiten als die viel größeren Haupterinnerung. Die meisten CPUs seit den 1980er Jahren haben manchmal ein oder mehrere Caches verwendet in kaskadierten Ebenen; Modernes High-End eingebettet, Desktop und Server Mikroprozessoren kann bis zu sechs Cache -Arten (zwischen Ebenen und Funktionen) haben.[5] Beispiele für Caches mit einer bestimmten Funktion sind die D-Cache und I-cache und die Übersetzungs -Lookaside -Puffer für die MMU.

GPU -Cache

Vorhin Grafikverarbeitungseinheiten (GPUs) hatte oft nur begrenzte schreibgeschützte Schreibungen Textur Cachesund eingeführt Morton Order regelte Texturen 2d zu verbessern Cache -Kohärenz. Cache Fehler würde die Leistung drastisch beeinflussen, z. wenn Mipmapping wurde nicht verwendet. Das Caching war wichtig, um 32-Bit- (und breitere) Transfers für Texturdaten zu nutzen, die häufig nur 4 Bit pro Pixel waren und in komplexen Mustern nach willkürlicher Weise indiziert wurden UV -Koordinaten und Perspektive Transformationen in inverse Texturzuordnung.

Als GPUs fortschritt (besonders mit Gpgpu Berechnen Sie Shader) Sie haben zunehmend größere und immer allgemeine Caches entwickelt, einschließlich Anweisung Caches zum Shadermit immer häufigeren Funktionalität mit CPU -Caches. Zum Beispiel, GT200 Architektur -GPUs haben keinen L2 -Cache enthält, während die Fermi Die GPU hat 768 KB Last-Level-Cache, die Kepler Die GPU hat 1536 kb Last-Level-Cache und die Maxwell Die GPU hat 2048 KB Last-Level-Cache. Diese Caches sind zum Handeln gewachsen Synchronisation Primitive zwischen Themen und atomare Operationenund Schnittstelle mit einem CPU-Stil MMU.

DSPs

Digitale Signalprozessoren haben im Laufe der Jahre ähnlich verallgemeinert. Frühere Designs verwendet Scratchpad -Speicher gefüttert von DMA, aber moderne DSPs wie z. Qualcomm Hexagon Fügen Sie oft einen sehr ähnlichen Caches -Satz zu einer CPU (z. Modifizierte Harvard -Architektur Mit Shared L2, Split L1 I-Cache und D-Cache).[6]

Übersetzungs -Lookaside -Puffer

A Speicherverwaltungseinheit (MMU), dass die Seitentabelleneinträge aus dem Hauptspeicher abgerufen werden, hat einen speziellen Cache, der zum Aufzeichnen der Ergebnisse von verwendet wird virtuelle Adresse zu physikalische Adresse Übersetzungen. Dieser spezialisierte Cache wird als a genannt Übersetzungs -Lookaside -Puffer (TLB).[7]

In-Netzwerk-Cache

Informationszentrierte Netzwerke

Informationszentrierte Netzwerke (ICN) ist ein Ansatz, um die weiterzuentwickeln Internet Infrastruktur von einem host-zentrierten Paradigma weg, basierend auf ewigen Konnektivität und der End-to-End-Prinzip, zu einer Netzwerkarchitektur, in der der Schwerpunkt Informationen (oder Inhalte oder Daten) identifiziert wird. Aufgrund der inhärenten Caching -Fähigkeit der Knoten in einem ICN kann es als locker verbundenes Netzwerk von Caches angesehen werden, das einzigartige Anforderungen an die Richtlinien für das zwischengespeicherte Richtlinien hat. Das Caching von allgegenwärtigem Inhalt stellt jedoch die Herausforderung für den Schutz des Inhalts vor unbefugtem Zugriff ein, was zusätzliche Sorgfalt und Lösungen erfordert.[8] Im Gegensatz zu Proxy-Servern ist der Cache in ICN eine Lösung auf Netzwerkebene. Daher wechselt es schnell um Cache -Zustände und höhere Antragsankunftsraten. Darüber hinaus stellen kleinere Cache -Größen eine andere Art von Anforderungen an die Richtlinien für die Räumung von Inhalten auf. Insbesondere die Räumlichkeiten für ICN sollten schnell und leicht sein. Es wurden verschiedene Cache -Replikations- und Räumungsschemata für verschiedene ICN -Architekturen und -Anwendungen vorgeschlagen.

Richtlinien

Zeit, die am wenigsten kürzlich verwendet werden (TLRU)

Die Zeit, die kürzlich am wenigsten verwendet wurde (TLRU)[9] ist eine Variante von LRU, die für die Situation entwickelt wurde, in der der gespeicherte Inhalt im Cache eine gültige Lebensdauer hat. Der Algorithmus eignet sich in Netzwerk-Cache-Anwendungen wie Informationszentrum-Networking (ICN). Inhaltsbereitstellungen (CDNS) und verteilte Netzwerke im Allgemeinen. TLRU führt einen neuen Begriff ein: TTU (Zeit für die Verwendung). TTU ist ein Zeitstempel eines Inhalts/einer Seite, die die Benutzerfreundlichkeitszeit für den Inhalt basierend auf der Lokalität des Inhalts und der Ankündigung des Inhaltsverlags festlegt. Aufgrund dieser lokalbasierten Zeitstempel bietet TTU dem lokalen Administrator mehr Kontrolle, um im Netzwerkspeicher zu regulieren. Im TLRU -Algorithmus berechnet ein Cache -Knoten, wenn ein Inhalt eintrifft, den lokalen TTU -Wert basierend auf dem vom Inhaltsverlag zugewiesenen TTU -Wert. Der lokale TTU -Wert wird unter Verwendung einer lokal definierten Funktion berechnet. Sobald der lokale TTU -Wert berechnet wurde, wird der Ersatz des Inhalts an einer Teilmenge des im Cache -Knoten gespeicherten Gesamtinhalts durchgeführt. Die TLRU stellt sicher, dass weniger beliebte und kleine Lebensinhalte durch den eingehenden Inhalt ersetzt werden sollten.

Kürzlich am wenigsten häufig verwendet (LFRU)

Die kürzlich am wenigsten verwendete am wenigsten verwendete (LFRU)[10] Das Cache -Ersatzschema kombiniert die Vorteile von LFU- und LRU -Schemata. LFRU ist für "in Netzwerk" -Cache-Anwendungen geeignet, wie z. B. Informationszentrierte Netzwerke (ICN), Content Delivery Networks (CDNs) und verteilte Netzwerke im Allgemeinen. In der LFRU ist der Cache in zwei Partitionen unterteilt, die als privilegierte und nicht privilegierte Partitionen bezeichnet werden. Die privilegierte Partition kann als geschützte Partition definiert werden. Wenn Inhalte sehr beliebt sind, wird er in die privilegierte Partition eingedrungen. Der Austausch der privilegierten Partition erfolgt wie folgt: LFRU ermöglicht Inhalte aus der nicht privilegierten Partition, treibt Inhalte von der privilegierten Partition zu einer nicht privilegierten Partition und fügt schließlich neue Inhalte in die privilegierte Partition ein. Im obigen Verfahren wird die LRU für die privilegierte Partition verwendet, und ein angenähertes LFU (ALFU) -Schema wird für die nicht privilegierte Partition verwendet, daher die Abkürzung LFRU. Die Grundidee besteht darin, den lokal beliebten Inhalt mit Alfu -Schema herauszufiltern und den beliebten Inhalt auf eine der privilegierten Partition zu bringen.

Wettervorhersage

Zurück im Jahr 2010 Die New York Times Vorgeschlagen "Typ" Wetter ", gefolgt von Ihrer Postleitzahl."[11] Bis 2011 war die Verwendung von Smartphones mit Wettervorhersageoptionen übermäßig anstrengend Accuweather Server; Zwei Anfragen innerhalb desselben Parks würden separate Anfragen generieren. Eine Optimierung durch Kanten-Server zum Abschneiden der GPS-Koordinaten zu weniger Dezimalstellen führte dazu, dass die zwischengespeicherten Ergebnisse der früheren Abfrage verwendet würden. Die Anzahl der Nach-Server-Lookups pro Tag sank um die Hälfte.[12]

Software -Caches

Festplattencache

Während CPU -Caches im Allgemeinen ausschließlich von Hardware verwaltet werden, verwaltet eine Vielzahl von Software andere Caches. Das Seitencache Im Hauptspeicher, das ein Beispiel für Festplatten -Cache ist, wird vom Betriebssystem verwaltet Kernel.

Während ScheibenpufferDas ist ein integrierter Bestandteil des Festplattenlaufwerks, wird manchmal irreführend als "Festplattencache" bezeichnet. Die Hauptfunktionen sind die Schreibsequenzierung und lesen Vorabschlüsse. Wiederholte Cache -Treffer sind aufgrund der geringen Größe des Puffers im Vergleich zur Kapazität des Antriebs relativ selten. Allerdings High-End Festplattencontroller Oft haben Sie ihren eigenen On-Bord-Cache des Festplattenlaufwerks des Festplattens Datenblöcke.

Schließlich kann ein schnelles lokales Festplattenlaufwerk auch Informationen auf noch langsameren Datenspeichergeräten wie Remote -Servern zwischenspeichern (z. B. Remote -Server (Webcache) oder lokal Klebebandfahrten oder Optische Jukeboxen; Ein solches Schema ist das Hauptkonzept von Hierarchische Speicherverwaltung. Auch schneller Flash-basiert Solid State Drives (SSDs) kann als Caches für langsamere Rotationsmedien-Festplatten-Laufwerke verwendet werden und zusammenarbeiten als Hybridfahrten oder Festkörper-Hybridfahrten (SSHDS).

Webcache

Internetbrowser und Web -Proxy -Server Verwenden Sie Web -Caches, um frühere Antworten von zu speichern Webserver, wie zum Beispiel Webseiten und Bilder. Web-Caches reduzieren die Menge an Informationen, die über das Netzwerk übertragen werden müssen, da die zuvor im Cache gespeicherten Informationen häufig wiederverwendet werden können. Dies reduziert die Bandbreiten- und Verarbeitungsanforderungen des Webservers und hilft, sich zu verbessern Empfänglichkeit Für Benutzer des Webs.[13]

Webbrowser verwenden einen integrierten Web-Cache, aber einige Internetanbieter (ISPs) oder Organisationen verwenden auch einen Caching -Proxy -Server, der ein Web -Cache ist, der unter allen Benutzern dieses Netzwerks gemeinsam genutzt wird.

Eine andere Form von Cache ist P2P -Caching, wo die Dateien am meisten gesucht werden durch Peer-To-Peer Anwendungen werden in einem gespeichert ISP Cache zur Beschleunigung von P2P -Transfers. In ähnlicher Weise gibt es dezentrale Äquivalente, die es den Gemeinden ermöglichen, dieselbe Aufgabe für den P2P -Verkehr auszuführen, beispielsweise Corelli.[14]

Memoisierung

Ein Cache kann Daten speichern, die auf Bedarf berechnet werden, anstatt aus einem Backing -Store abgerufen zu werden. Memoisierung ist ein Optimierung Technik, die die Ergebnisse der ressourcenverwehrenden Speicherung speichert Funktionsaufrufe Innerhalb einer Nachschlagetabelle, sodass nachfolgende Anrufe die gespeicherten Ergebnisse wiederverwenden und wiederholte Berechnungen vermeiden können. Es hängt mit dem zusammen Dynamische Programmierung Algorithmus -Design -Methodik, die auch als Mittel zum Zwischenspeichern angesehen werden kann.

Inhaltsdelieferetzwerk

Ein Content Delivery Network (CDN) ist ein Netzwerk verteilter Server, das Seiten und andere Webinhalte an einen Benutzer liefert, basierend auf den geografischen Standorten des Benutzers, dem Ursprung der Webseite und dem Inhaltsbereitsteller.

CDNs begann Ende der neunziger Jahre, um die Bereitstellung statischer Inhalte wie HTML -Seiten, Bilder und Videos zu beschleunigen. Durch die Replikation von Inhalten auf mehreren Servern auf der ganzen Welt und die Lieferung an Benutzer anhand ihres Standorts können CDNs die Geschwindigkeit und Verfügbarkeit einer Website oder Anwendung erheblich verbessern. Wenn ein Benutzer einen Inhalt anfordert, prüft das CDN, um festzustellen, ob er eine Kopie des Inhalts im Cache enthält. Wenn dies der Fall ist, liefert der CDN den Inhalt dem Benutzer aus dem Cache.[15]

Cloud Storage Gateway

Ein Wolkenspeicher -Gateway, auch als Kantenfiler bezeichnet, ist a Hybridwolkenspeicher Gerät, das ein lokales Netzwerk mit einem oder mehreren Cloud -Speicherdienst verbindet, normalerweise mit einem Objektspeicher Service wie Amazon S3. Es bietet einen Cache für häufig zugegriffene Daten und bietet einen hochgeschwindigen lokalen Zugriff auf häufig zugegriffene Daten im Cloud -Speicherdienst. Cloud Storage Gateways bieten außerdem zusätzliche Vorteile, z. B. den Zugriff auf Cloud -Objektspeicher über herkömmliche Protokolle mit Dateibedienung und kontinuierlichen Zugriff auf zwischengespeicherte Daten während Konnektivitätsausfällen.[16]

Andere Caches

Die Bindung DNS Daemon rehrt eine Zuordnung von Domainnamen zugeordnet an IP -Adressen, ebenso wie eine Resolver -Bibliothek.

Der Schreibbetrieb ist häufig bei unzuverlässigen Netzwerken (wie einem Ethernet-LAN) aufgrund der enormen Komplexität des Kohärenzprotokoll Vorausgesetzt, zwischen mehreren Schreib-Back-Caches, wenn die Kommunikation unzuverlässig ist. Zum Beispiel Caches und Webseiten -Caches und Client-Seite Netzwerkdateisystem Caches (wie die in NFS oder SMB) sind in der Regel nur schreibgeschützt oder schreiben speziell, um das Netzwerkprotokoll einfach und zuverlässig zu halten.

Suchmaschinen auch häufig machen Webseiten Sie haben in ihrem Cache verfügbar. Zum Beispiel, Google Bietet neben jedem Suchergebnis einen "zwischengespeicherten" Link. Dies kann sich als nützlich erweisen, wenn Webseiten von a Webserver sind vorübergehend oder dauerhaft unzugänglich.

Datenbank -Caching kann den Durchsatz von erheblich verbessern Datenbank Anwendungen, zum Beispiel in der Verarbeitung von Indizes, Datenwörterbücherund häufig verwendete Datenabteilungen.

A verteilter Cache[17] Verwendet vernetzte Hosts, um der Anwendung Skalierbarkeit, Zuverlässigkeit und Leistung bereitzustellen.[18] Die Wirte können gemeinsam über verschiedene geografische Regionen verteilt werden.

Puffer gegen Cache

Die Semantik eines "Puffers" und eines "Cache" sind nicht völlig anders; Trotzdem gibt es grundlegende Unterschiede in der Absicht zwischen dem Caching -Prozess und dem Pufferprozess.

Grundsätzlich erkennt Caching eine Leistungssteigerung für Datenübertragungen, die wiederholt übertragen werden. Während ein Caching -System eine Leistungssteigerung bei der anfänglichen (normalerweise schreiben) Übertragung eines Datenelements realisiert, ist diese Leistungssteigerung auf eine Pufferung im Caching -System zurückzuführen.

Mit Read -Caches muss ein Datenelement mindestens einmal von seinem Wohnort abgerufen worden sein, damit nachfolgende Lesungen des Datenelements eine Leistungssteigerung erkennen, weil sie nicht aus dem (schnelleren) Zwischenspeicher des Cache abgerufen werden können, anstatt aus dem Cache -Zwischenspeicher und nicht aus der Cache -Startanlage und nicht aus Die Daten der Daten wohnen. Mit Write Caches kann beim ersten Schreiben des Datenelements eine Leistungssteigerung des Schreibens eines Datenelements realisiert werden eine spätere Phase oder als Hintergrundprozess auftreten. Entgegen der strengen Pufferung muss ein Caching -Prozess an ein (potenziell verteiltes) Cache -Kohärenzprotokoll einhalten, um die Konsistenz zwischen dem Zwischenspeicher des Cache und dem Ort, an dem sich die Daten befinden, die Konsistenz aufrechtzuerhalten. Pufferung hingegen,

  • Reduziert die Anzahl der Überweisungen für ansonsten neuartige Daten bei Kommunikationsprozessen, die Overheads für mehrere kleine Übertragungen über weniger, größere Übertragungen amortieren.
  • Bietet einen Vermittler für die Kommunikation von Prozessen, die nicht in der Lage sind, direkt untereinander zu übertragen, oder
  • Gewährleistet eine minimale Datengröße oder -darstellung, die mindestens eines der mit der Übertragung beteiligten Kommunikationsprozesse erforderlich ist.

Bei typischen Caching -Implementierungen wird ein Datenelement, das zum ersten Mal gelesen oder geschrieben wird, effektiv gepuffert. und im Falle eines Schreibens, der hauptsächlich eine Leistungssteigerung für die Anwendung realisiert, aus der das Schreiben stammt. Darüber hinaus ist der Teil eines Caching -Protokolls, in dem Individual -Schreibvorgänge in eine Charge von Schreibvorgängen verschoben werden, eine Form des Puffers. Der Teil eines Caching -Protokolls, in dem einzelne Lesevorgänge in eine Charge von Lesevorgängen verschoben werden Die Person liest). In der Praxis beinhaltet das Caching fast immer eine Form des Puffers, während strikte Pufferung kein Zwischenspeichern beinhaltet.

A Puffer ist ein temporärer Speicherort, der traditionell wegen CPU verwendet wird Anweisungen Daten, die auf peripheren Geräten gespeichert sind, können nicht direkt angesprochen werden. Somit wird der adressierbare Speicher als Zwischenstufe verwendet. Darüber hinaus kann ein solcher Puffer machbar sein, wenn ein großer Datenblock zusammengebaut oder zerlegt wird (wie von einem Speichergerät erforderlich) oder wenn Daten in einer anderen Reihenfolge geliefert werden können als die, in der er erzeugt wird. Außerdem wird ein ganzer Datenpuffer normalerweise nacheinander übertragen (z. B. auf Festplatten), sodass die Puffer selbst manchmal die Übertragungsleistung erhöht oder die Variation oder das Jitter der Latenz des Transfers im Gegensatz zum Zwischenspeichern reduziert, wo die Absicht die Latenz verringert. Diese Vorteile sind vorhanden, auch wenn die gepufferten Daten an die geschrieben werden Puffer einmal und lesen Sie einmal aus dem Puffer.

Ein Cache erhöht auch die Übertragungsleistung. Ein Teil der Erhöhung ergibt sich ähnlich aus der Möglichkeit, dass mehrere kleine Übertragungen zu einem großen Block kombiniert werden. Die Hauptleistung ist jedoch aufgetreten, da es eine gute Chance gibt, dass die gleichen Daten mehrmals aus dem Cache gelesen werden oder dass schriftliche Daten bald gelesen werden. Der einzige Zweck eines Cache besteht darin, den Zugriff auf den zugrunde liegenden langsameren Speicher zu reduzieren. Cache ist normalerweise auch ein Abstraktionsschicht Das soll aus der Sicht der benachbarten Schichten unsichtbar sein.

Siehe auch

Verweise

  1. ^ "Zwischenspeicher". Oxford Wörterbücher. Oxford Wörterbücher. Abgerufen 2. August 2016.
  2. ^ Zhong, Liang; Zheng, Xueqian; Liu, Yong; Wang, Menging; Cao, Yang (Februar 2020). "Maximierung des Cache-Trefferverhältnisses in Geräte-zu-Device-Kommunikation, die Mobilfunknetze überlagert". China Kommunikation. 17 (2): 232–238. doi:10.23919/jcc.2020.02.018. ISSN 1673-5447. S2CID 212649328.
  3. ^ Bottomley, James (1. Januar 2004). "Caching" verstehen ". Linux Journal. Abgerufen 1. Oktober 2019.
  4. ^ John L. Hennessy; David A. Patterson (2011). Computerarchitektur: Ein quantitativer Ansatz. Elsevier. S. B - 12. ISBN 978-0-12-383872-8.
  5. ^ "Intel Broadwell Core i7 5775C '128MB L4 Cache' Gaming -Giganten und Skylake Core i7 6700K Flaggschiff -Prozessoren, die endlich im Einzelhandel erhältlich sind". 25. September 2015.Erwähnt L4 Cache. In Kombination mit separatem I-Cache und TLB bringt dies die Gesamtzahl von Caches (Pegel+Funktionen) auf 6
  6. ^ "Qualcom Hexagon DSP SDK -Übersicht".
  7. ^ Frank Uyeda (2009). "Vorlesung 7: Speicherverwaltung" (PDF). CSE 120: Grundsätze der Betriebssysteme. UC San Diego. Abgerufen 4. Dezember 2013.
  8. ^ Bilal, Muhammad; et al. (2019). "Sichere Verteilung von geschützten Inhalten in informationszentriertem Netzwerk". IEEE Systems Journal. 14 (2): 1–12. Arxiv:1907.11717. Bibcode:2020isysj..14.1921b. doi:10.1109/jsyst.2019.2931813. S2CID 198967720.
  9. ^ Bilal, Muhammad; et al. (2017). "Zeit bewusst, die am wenigsten neu verwendete (TLRU) Cache -Management -Richtlinien in ICN". IEEE 16. Internationale Konferenz für fortschrittliche Kommunikationstechnologie (ICACT): 528–532. Arxiv:1801.00390. Bibcode:2018ArXIV180100390B. doi:10.1109/icact.2014.6779016. ISBN 978-89-968650-3-2. S2CID 830503.
  10. ^ Bilal, Muhammad; et al. (2017). "Ein Cache -Management -Schema für eine effiziente Inhaltsverfeinerung und Replikation in Cache -Netzwerken". IEEE -Zugang. 5: 1692–1701. Arxiv:1702.04078. Bibcode:2017ArXIV170204078B. doi:10.1109/access.2017.2669344. S2CID 14517299.
  11. ^ Simon Mackie (3. Mai 2010). "9 weitere einfache Google -Suchtricks". New York Times.
  12. ^ Chris Murphy (30. Mai 2011). "5 Codezeilen in der Cloud". Informationswoche. p. 28. 300 bis 500 Millionen weniger Anfragen pro Tag von Accuweather -Servern bearbeitet
  13. ^ Multiple (Wiki). "Webanwendung Caching". Docforge. Archiviert von das Original am 12. Dezember 2019. Abgerufen 24. Juli 2013.
  14. ^ Gareth Tyson; Andreas Mauthe; Sebastian Kaune; Mu mu; Thomas Plagemann. Corelli: Ein dynamischer Replikationsdienst zur Unterstützung von latenzabhängigen Inhalten in Community-Netzwerken (PDF). Mmcn'09. Archiviert von das Original (PDF) am 18. Juni 2015.
  15. ^ "Global verteilte Inhaltsbereitstellung, von J. Dilley, B. Maggs, J. Parikh, H. Prokop, R. Sitaraman und B. Weihl, IEEE Internet Computing, Band 6, Ausgabe 5, November 2002" (PDF). Archiviert (PDF) Aus dem Original am 9. August 2017. Abgerufen 25. Oktober 2019.
  16. ^ "Definition: Cloud Storage Gateway". Searchstorage. Juli 2014.
  17. ^ Paul, s; Z FEI (1. Februar 2001). "Verteiltes Caching mit zentraler Kontrolle". Computerkommunikation. 24 (2): 256–268. Citeseerx 10.1.1.38.1094. doi:10.1016/s0140-3664 (00) 00322-4.
  18. ^ Khan, Iqbal (Juli 2009). "Verteiltes Caching auf dem Weg zur Skalierbarkeit". Msdn. 24 (7).

Weitere Lektüre