DE102014013509A1 - Cache-Architektur - Google Patents
Cache-Architektur Download PDFInfo
- Publication number
- DE102014013509A1 DE102014013509A1 DE102014013509.8A DE102014013509A DE102014013509A1 DE 102014013509 A1 DE102014013509 A1 DE 102014013509A1 DE 102014013509 A DE102014013509 A DE 102014013509A DE 102014013509 A1 DE102014013509 A1 DE 102014013509A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- cache
- data
- cache controller
- specified
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
- Die vorliegende Erfindung betrifft Cache-Architekturen für Datenverarbeitungssysteme.
- Hintergrund
- Es ist bekannt, dass ein Datenprozessor mehreren Speichern Daten entnimmt. Manchmal kann eine Verzögerung zwischen dem Anfordern von Daten aus dem Speicher durch den Prozessor und Empfangen dieser Daten bestehen. Zum Mässigen dieser Verzögerung ist bekannt, einen Cache zwischen dem Datenprozessor und dem Speicher zu platzieren.
1 zeigt ein solches System. Der Datenprozessor1 ist über einen Datenbus mit einem Cache2 verbunden. Der Cache ist mit zwei Speichern3 und4 verbunden. Die Speicher3 und4 teilen sich einen Adressraum, so dass keine Überlappung zwischen den durch den Speicher3 bedienten logischen Speicherstellen und den durch den Speicher4 bedienten besteht. Wenn der Prozessor Daten aus einer Stelle im Speicher3 oder4 benötigt, stellt er eine Anforderung an den Cache, die die logische Adresse dieser Stelle angibt. Wenn der Cache den Inhalt dieser Stelle enthält, bedient er den Prozessor direkt mit diesen Daten. Wenn der Cache den Inhalt dieser Stelle nicht enthält, bestimmt er, welchem Speicher die logische Adresse zugewiesen ist, erlangt den Inhalt der entsprechenden physikalischen Stelle in dem zutreffenden der Speicher3 ,4 , bedient den Prozessor mit diesen Daten und sichert diese Daten im Cache, sollte der Prozessor sie wieder anfordern. Damit wird vermieden, dass jede Anforderung von Daten durch einen der Speicher3 ,4 bedient werden muss. Speicherstellen im Cache2 können markiert werden, um anzuzeigen, ob sie belegt worden sind oder nicht. - Eine Datenverarbeitungsvorrichtung umfasst typischerweise einen Mikroprozessor und einen Bereich Nurlesespeicher (ROM – Read Only Memory), der Programmcode definiert, der vom Prozessor ausführbar ist. Die Tatsache, dass ROM nach der Herstellung nicht geändert werden kann, kann Schwierigkeiten verursachen, wenn danach Fehler in dem im ROM definierten Code festgestellt werden. Dem kann durch Speichern von Ersatzcode in einem anderen nichtflüchtigen Speicher abgeholfen werden. Jedoch können herkömmliche Verfahren zum wirkungsvollen Ersetzen des ROM-Codes mit Code aus dem anderen nichtflüchtigen Speicher den Vorgang des Lesens des Programmcodes verlangsamen.
- Es besteht ein Bedarf an einer wirkungsvollen Weise zum Auslesen von Daten aus mehreren Speichern durch einen Prozessor.
- Kurzfassung der Erfindung
- Gemäß einem Aspekt der vorliegenden Erfindung wird eine Cache-Steuerung für ein Verarbeitungssystem bereitgestellt, wobei die Cache-Steuerung zum Bereitstellen einer Schnittstelle zwischen einem Datenanforderer und einer Vielzahl von Speichern einschließlich eines ersten Speichers, eines zweiten Speichers und eines Cache-Speichers eingerichtet ist, wobei die Cache-Steuerung in Reaktion auf Empfangen einer Anforderung von Daten an einer angegebenen Adresse in einem angegebenen Speicher zum Durchführen der Schritte: Bestimmen, ob entweder (a) ein Datenfeld im Cache-Speicher, das der angegebenen Adresse entspricht, aus dem angegebenen Speicher belegt worden ist, oder (b) der angegebene Speicher der erste Speicher ist und das der angegebenen Adresse im Cache-Speicher entsprechende Datenfeld aus dem zweiten Speicher belegt worden ist; und, falls diese Bestimmung positiv ist, Antworten auf die Anforderung durch Bereitstellen des Inhalts des Datenfelds im Cache-Speicher, das der angegebenen Adresse entspricht, ausgebildet ist.
- Der erste Speicher kann ein Nurlesespeicher sein. Der zweite Speicher kann ein programmierbarer nichtflüchtiger Speicher sein. Der zweite Speicher kann ein einmal programmierbarer Speicher sein. Der zweite Speicher kann mittels Durchschmelzverbindungen programmierbar sein. Die Vielzahl von Speichern kann einen dritten Speicher umfassen. Der dritte Speicher kann ein programmierbarer Speicher sein. Der dritte Speicher kann ein nichtflüchtiger Speicher sein. Jeder der Vielzahl von Speichern kann einer unterschiedlichen Speichertechnik angehören, beispielsweise ROM, Flash, OTP oder RAM.
- Die Cache-Steuerung kann auf einem ersten Halbleitersubstrat implementiert sein. Der erste Speicher und/oder der zweite Speicher können auf einem zweiten Halbleitersubstrat implementiert sein.
- Die Cache-Steuerung kann dazu ausgebildet sein, falls die Bestimmung negativ ist, den Inhalt des der Adresse entsprechenden Datenfeldes in dem angegebenen Speicher abzurufen und zu bestimmen, ob das Datenfeld im Cache-Speicher, das der angegebenen Adresse entspricht, aus dem ersten oder dem zweiten Speicher belegt worden ist. Falls die letztere Bestimmung negativ ist, kann die Cache-Steuerung das Datenfeld im Cache-Speicher, das der angegebenen Adresse entspricht, mit dem abgerufenen Inhalt des Datenfelds in dem angegebenen Speicher, das der besagten Adresse entspricht, belegen.
- Nach einem zweiten Aspekt der vorliegenden Erfindung wird eine Cache-Steuerung für ein Verarbeitungssystem bereitgestellt, wobei die Cache-Steuerung zum Bereitstellen einer Schnittstelle zwischen einem Datenanforderer und einer Vielzahl von Speichern, umfassend einen ersten Speicher, einen zweiten Speicher und einen Cache-Speicher, eingerichtet ist, wobei die Cache-Steuerung dazu ausgelegt ist, in Reaktion auf Empfangen einer Anforderung zum Einschreiben von Daten in eine angegebene Adresse in einem angegebenen Speicher, die Schritte Speichern der Daten an der angegebenen Adresse im ersten Speicher, falls der angegebene Speicher der erste Speicher ist, und Belegen des Datenfeldes mit den Daten, falls dieses Datenfeld im Cache-Speicher, das der angegebenen Adresse entspricht, nicht aus dem zweiten Speicher belegt worden ist, durchzuführen.
- Der im vorhergehenden Absatz angegebene erste Speicher kann ein umprogrammierbarer Speicher sein. Der im vorhergehenden Absatz angegebene zweite Speicher kann ein programmierbarer nichtflüchtiger Speicher sein. Der im vorhergehenden Absatz angegebene zweite Speicher kann ein einmalig programmierbarer Speicher sein. Die Vielzahl von Speichern kann einen dritten Speicher umfassen. Die Cache-Steuerung kann zum Reagieren auf wenigstens einige Anforderungen zum Auslesen von Daten aus dem dritten Speicher durch Bereitstellen von Daten, mit denen der Cache-Speicher aus dem zweiten Speicher belegt worden ist, ausgebildet sein.
- Nach einem dritten Aspekt der vorliegenden Erfindung wird ein Datenverarbeitungssystem bereitgestellt, umfassend: eine Cache-Steuerung mit einem beliebigen oder mehreren der oben aufgeführten Merkmale, den Datenanforderer, den ersten Speicher, den zweiten Speicher und den Cache-Speicher.
- Kurze Beschreibung der Figuren
- Die vorliegende Erfindung wird nunmehr beispielhaft unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben, in denen:
-
1 eine herkömmliche Cache-Architektur zeigt. -
2 eine weitere Cache-Architektur zeigt. -
3 die Struktur eines Cache-Speichers darstellt. -
4 einen Lesevorgang darstellt. -
5 einen Schreibvorgang darstellt. - Ausführliche Beschreibung
-
2 zeigt eine Cache-Architektur. In2 kann der Prozessor10 Daten aus einem beliebigen der Speicher11 ,12 ,13 über den Cache14 abrufen. Der Cache umfasst einen Direktzugriffsspeicher-(RAM – Random Access Memory)Cache15 und eine Cache-Steuerung16 ,17 . Die Speicher11 ,12 ,13 teilen sich keinen gemeinsamen Adressraum. Wenn der Prozessor Daten aus einem der Speicher11 ,12 ,13 über die Cache-Steuerung anfordert, muss er dies infolgedessen durch Angeben sowohl eines Speichers als auch einer Stelle in diesem Speicher durchführen. Die Cache-Steuerung ist zum Zwischenspeichern von Daten aus einigen oder allen der Speicher11 ,12 ,13 im RAM15 angeordnet, und zwar auf solche Weise, dass der Datenspeicher11 , der ein einmal programmierbarer (OTP – One-Time Programmable) Speicher ist, Daten im Speicher12 , der ein ROM ist, ohne zusätzliche Belastung des Prozessors10 wirkungsvoll überschreiben kann. - Der Prozessor
10 ist ein Mikroprozessor, der Programmcode zum Durchführen verschiedener Logikfunktionen ausführen kann. Er könnte ein Universalprozessor sein oder könnte irgendeine fest zugeordnete Funktion wie beispielsweise Signalverarbeitung oder Tonverarbeitung aufweisen. Der Mikroprozessor kann auf einen flüchtigen Direktzugriffsspeicher (RAM – Random Access Memory)18 zugreifen, den er als Zwischenspeicher benutzt. - Speicher
11 ist ein einmal programmierbarer Speicher. Er kann nur einmal mit Daten programmiert werden. Er ist ein nichtflüchtiger Speicher. Wenn er einmal mit Daten programmiert ist, wird er diese Daten unbegrenzt ohne Stromverbrauch bewahren. Er könnte mittels einer irreversiblen Änderung seiner Hardware programmiert sein, beispielsweise durch Schmelzen einer oder mehrerer Durchschmelzverbindungen. - Speicher
12 ist ein Nurlesespeicher. Er kann Daten ab seiner Herstellung speichern. Er ist ein nichtflüchtiger Speicher. Er bewahrt Daten unbegrenzt ohne Leistungsverbrauch. - Speicher
13 ist ein umprogrammierbarer nichtflüchtiger Speicher wie beispielsweise ein Flash-Speicher. Der Prozessor kann den Speicher13 als Zwischenspeicher benutzen. Der Prozessor kann den Arbeitsspeicher18 abschalten, wenn der Prozessor frei ist, um Strom zu sparen. Als Teil des Abschaltevorgangs kann der Prozessor gewisse Zustandsdaten im nichtflüchtigen Speicher13 speichern. Wenn der Prozessor aufwacht, kann er den Speicher18 wieder aktivieren und die gespeicherten Zustandsdaten aus dem Speicher13 zurück in den Speicher18 übertragen. - Die Cache-Steuerung
16 ,17 wirkt als Vermittler zwischen dem Prozessor10 und den Speichern11 ,12 ,13 . Eine Funktion der Cache-Steuerung ist es, Datenleseanforderungen aus dem Prozessor10 zu bearbeiten und sie vom Cache-RAM15 zu bedienen, wo möglich. Eine weitere Funktion der Cache-Steuerung besteht in der Bearbeitung von Datenschreibungen aus dem Prozessor durch Speichern von Daten im Cache-RAM15 und gegebenenfalls einem der Speicher11 ,12 ,13 . -
3 zeigt die Struktur des Cache-RAM15 . Der Speicher umfasst einen Speicherraum20 , der als aus einer Reihe von Datenzeilen gebildet angesehen wird. Eine Datenzeile ist bei21 dargestellt. Jede Datenzeile weist eine jeweilige Speicherstelle im RAM15 auf. Der Adressraum des RAM15 wird so behandelt, dass er diejenigen der Speicher11 ,12 ,13 wiederspiegelt. Wenn der Prozessor eine Datenanforderung aus einer gewissen Adresse X in einem der Speicher11 ,12 ,13 tätigt, ist somit die Stelle im Cache, die dieser Adresse X entspricht, die Stelle an der gleichen Adresse X im Speicherraum des Cache-RAM15 . - Jede Datenzeile
21 umfasst ein Hardware-Etikett22 und einen Datenblock23 . Jede Zeile im Cache-RAM15 könnte Daten aus einem beliebigen der Speicher11 ,12 ,13 beinhalten oder könnte nicht belegt sein worden. Das Hardware-Etikett zeigt an, in welchem dieser Zustände sich die Zeile befindet. Das Hardware-Etikett ist zwei Bit lang. Die Bedeutung von Werten des Hardware-Etiketts ist wie folgt:Hardware-Etikettzustand Bedeutet 00 Zeile aus Speicher 11 belegt01 Zeile aus Speicher 12 belegt10 Zeile aus Speicher 13 belegt11 Zeile nicht belegt/ungültig - Das Hardware-Etikett könnte mehr Bit aufweisen, falls beispielsweise der Cache mehr als drei Speicher bedient.
- Die Cache-Steuerung umfasst ein lokales Zugangsmodul
16 und ein entferntes Zugangsmodul17 . Das lokale Zugangsmodul ist an Cache-RAM15 angeschlossen. Das entfernte Zugangsmodul ist am Speicher11 ,12 ,13 angeschlossen. - Nunmehr wird die Funktionsweise der Cache-Steuerung beschrieben.
-
4 zeigt die an einer Leseoperation beteiligten Schritte. Wenn der Prozessor10 eine Datenleseanforderung stellt, wird diese Anforderung zum lokalen Zugangsmodul16 übertragen (Schritt40 ). Die Anfrage gibt die Stelle an, aus der Daten auszulesen sind, indem sie sowohl (a) einen der Speicher11 ,12 ,13 (Speicher „M”) als auch (b) eine Adresse (Stelle „L”) in diesem Speicher, aus der die Daten auszulesen sind, anzeigt. Das lokale Zugangsmodul bestimmt, ob diese Stelle in diesem Speicher in RAM15 zwischengespeichert ist. Es ruft dafür den an Stelle L in RAM15 gespeicherten Hardware-Etikettenwert (Feld22 ) ab (Schritt41 ) und überprüft, ob dessen Wert nach der obigen Tabelle mit dem in der Leseanforderung angegebenen Speicher M übereinstimmt (Schritt42 ). Falls eine Übereinstimmung besteht, zeigt dies an, dass die entsprechenden Daten im RAM15 zwischengespeichert sind, und das lokale Zugangsmodul reagiert auf die Anforderung aus dem Prozessor mit dem an Stelle L im RAM15 gespeicherten Dateninhalt (Feld23 ) (Schritt43 ). Falls keine Übereinstimmung besteht, überprüft das lokale Zugangsmodul, ob (a) das Hardware-Etikett den OTP-Speicher11 bezeichnet, sowie (b) der in der Leseanforderung angegebene Speicher M ROM12 ist (Schritt44 ); und falls diese beiden Kriterien erfüllt sind, dann reagiert das lokale Zugangsmodul auf die Anforderung aus dem Prozessor mit dem an Stelle L in RAM15 gespeicherten Dateninhalt (Feld23 ) (Schritt43 ). Der Zweck dieser Überprüfung wird unten beschrieben. Ansonsten signalisiert das lokale Zugangsmodul dem entfernten Zugangsmodul mit einer Leseanforderung für Speicher M und Adressstelle L. Dies veranlasst das entfernte Zugangsmodul, die an dieser Stelle in diesem einen der Speicher11 ,12 ,13 gespeicherten Daten zu lesen (Schritt45 ). Das entfernte Zugangsmodul sendet diese Daten zum lokalen Zugangsmodul zurück. Dann reagiert das lokale Zugangsmodul auf die Anforderung aus dem Prozessor mit dem aus Stelle L von Speicher M abgerufenen Dateninhalt (Schritt46 ). Das lokale Zugangsmodul kann auch den Cache aktualisieren, so dass, falls der Prozessor Daten aus Stelle L von Speicher M in der Zukunft anfordert, diese Anforderung aus Cache-RAM15 anstatt aus Speicher M bedient werden kann. Für einige Arten von Speicher11 ,12 ,13 kann dies in zukünftigen Leseanforderungen aus dem Prozessor Beantwortungszeit sparen. Das lokale Zugangsmodul überprüft, ob der Etikettwert, den es im Schritt41 gelesen hat, den UTP-Speicher13 angibt (Schritt47 ), und ob der Speicher M, aus dem die Daten abgerufen wurden, ROM12 ist (Schritt48 ). Die Gründe für diese Überprüfungen werden unten beschrieben. Falls die Antworten auf diese beiden Überprüfungen negativ sind, dann schreibt das lokale Zugangsmodul die aus Speicher M abgerufenen Daten in Stelle L im Cache-RAM15 ein und setzt den Hardware-Etikettwert für diese Stelle im Cache-RAM zum Bezeichnen von Speicher M gemäß der obigen Tabelle (Schritt49 ). Das bedeutet, dass die neu geschriebenen Daten im Schritt42 einer nachfolgende Leseoperation gepaart werden können. -
5 zeigt die an einer Schreiboperation beteiligten Schritte. Wenn der Prozessor10 eine Datenschreibanforderung stellt, wird diese Anforderung zum lokalen Zugangsmodul16 übertragen (Schritt50 ). Die Anforderung gibt die zu schreibenden Daten an („D”) und die Stelle, an die die Daten zu schreiben sind, indem sie sowohl (a) einen der Speicher11 ,12 ,13 („M”) anzeigt als auch (b) eine Adresse („L”) in diesem Speicher, in die die Daten einzuschreiben sind. Das lokale Zugangsmodul bestimmt, ob der Speicher M Speicher11 angibt (Schritt51 ). Dies erfolgt, da im vorliegenden Beispiel nur der Speicher11 beschreibbar ist. Falls die Antwort ja ist, dann schreibt es die angegebenen Daten D an Stelle L im Speicher11 (Schritt52 ). Es kann den Cache aktualisieren, so dass, falls der Prozessor zukünftig Daten von Stelle L des Speichers11 anfordert, diese Anforderung aus Cache-RAM15 bedient werden kann. Das lokale Zugangsmodul ruft den Hardware-Etikettwert an Stelle L im Cache-RAM15 ab (Schritt53 ) und überprüft, ob das Etikett den OTP-Speicher13 angibt (Schritt54 ). Der Grund für diese Überprüfung wird unten beschrieben. Falls nicht, schreibt er die angegebenen Daten D in die Stelle L im Cache-RAM15 und setzt den Hardware-Etikettwert für diese Stelle im Cache-RAM zum Bezeichnen von Speicher11 gemäß der obigen Tabelle (Schritt55 ). - Der ROM
12 kann nach seiner Herstellung nicht geändert werden. Bei normalen Herstellungsverfahren, in denen der ROM durch Masken und sonstige Halbleiterherstellungsverfahren definiert wird, ist es kostspielig, an dem Herstellungsverfahren Aktualisierungen zum Ändern des ROM für zukünftige Produkte durchzuführen, sobald eine Konstruktion zur Herstellung festgelegt worden ist. Das bedeutet, dass es schwierig ist, den ROM für zukünftige Produkte zu ändern, selbst wenn in dem von ihm definierten Programmcode Fehler festgestellt werden oder wenn an diesem Code Erweiterungen durchgeführt werden. Eine Funktion des OTP-Speichers11 besteht darin, solche Änderungen zu berücksichtigen. Der OTP-Speicher kann programmiert werden, nachdem das System hergestellt worden ist. Der OTP-Speicher11 könnte auf einem Halbleitersubstrat ausgeführt werden. Der Vorgang des Herstellens des Substrats definiert die Komponenten, die den OTP-Speicher11 ausmachen, aber nicht ihren Dateninhalt. Sobald das Substrat hergestellt worden ist, kann der Inhalt des OTP-Speichers als nachfolgende Stufe des Herstellungsverfahrens geschrieben werden. Beispielsweise könnte die integrierte Schaltung nach Herstellung in einer elektrisch isolierenden Schutzpackung verpackt werden. Der OTP-Speicher könnte nach dem Verpacken geschrieben werden. Die Cache-Steuerung erlaubt Inhalt im OTP, gewisse Werte im ROM12 zu ersetzen und effektiv zu überschreiben. Dies funktioniert auf folgende Weise. - Wenn der Cache
14 aktiviert wird, liest die Cache-Steuerung aus dem OTP-Speicher11 alle Daten, die entsprechende Daten im ROM12 ersetzen sollen. Jedes Element solcher Daten im OTP-Speicher11 soll die Daten an einer gewissen Stelle im ROM12 ersetzen. Die Cache-Steuerung schreibt jedes Element solcher Daten in das Datenfeld23 der Stelle im Cache RAM15 , die der Stelle im ROM12 entspricht, die die Daten ersetzen sollen, und setzt das Hardware-Etikett22 für diese Stelle im Cache-ROM15 , zum Anzeigen des OTP-Speichers11 . Falls beispielsweise der OTP-Speicher Daten D enthält, die die Daten an Stelle L im ROM12 ersetzen sollen, schreibt die Cache-Steuerung Daten D in das Datenfeld an Stelle L im Cache-Speicher15 . Um dies zu erreichen, könnte die Cache-Steuerung einfach die Gesamtheit von OTP-Speicher11 auslesen und jeden Wert im OTP-Speicher, der kein reservierter Wert ist (z. B. nur Nullen) an dieselbe Stelle im Cache-RAM15 kopieren, wie er im OTP-Speicher11 ausgelesen wurde, und das Hardware-Etikett dieser Stelle auf „00” setzen. Alternativ könnte der OTP-Speicher ein Verzeichnis halten, das der Cache-Steuerung anzeigt, welche Daten im OTP-Speicher an welche Stellen im Cache-RAM zu kopieren sind. - Zurückkehrend zu
4 ist ersichtlich, dass, sobald der Cache-RAM mit den entsprechenden Daten aus dem OTP-Speicher11 beladen worden ist, die Wirkung des Schritts44 darin besteht, zu veranlassen, dass die Daten aus dem OTP-Speicher11 , die im Cache-RAM gespeichert worden sind, als Reaktion auf eine Anforderung aus dem Prozessor der Daten an der entsprechenden Stelle im ROM12 dem Prozessor zugeführt werden. Auch ist ersichtlich, dass die Wirkung der Schritte47 und (in5 )54 darin besteht zu vermeiden, dass Daten aus dem OTP-Speicher11 , die im Cache-RAM gespeichert worden sind, durch aus dem Flash-Speicher13 ausgelesene Zwischenspeicherdaten überschrieben werden. Eine Folge der Schritte47 und54 besteht darin, dass der Cache nicht alle Stellen im Flash-Speicher13 zwischenspeichern kann, so dass etwaige Geschwindigkeitserhöhungen aus dem Zwischenspeichern im Flash-Speicher13 nicht für alle Stellen im Flash-Speicher erzielt werden können. Diese Folge wird durch die Tatsache gemässigt, dass der Cache automatisch sowohl (a) als eine Quelle für Daten aus dem Prozessor aus allen Speichern11 ,12 und13 dienen kann als auch (b) im Effekt Teile des RAM mit Daten aus dem OTP überschreiben kann. - Die Speicher
11 ,12 und13 könnten andere Formen annehmen. Beispielsweise könnte der Speicher11 ein Flash-Speicher sein. Speicher11 könnte sich in einem externen und/oder herausnehmbaren Speichermodul befinden, das an den Prozessor, die Cache-Steuerung und ROM angekoppelt werden kann, nachdem sie hergestellt und/oder in einer Endbenutzervorrichtung ausgeführt worden sind. Speicher12 könnte wiederbeschreibbar sein, was vielleicht kostspielig sein könnte. Speicher13 könnte ein flüchtiger wiederbeschreibbarer Speicher wie beispielsweise DRAM oder SRAM sein. - Schritt
48 könnte weggelassen werden. Die Wirkung davon wäre, Daten aus ROM12 zusätzlich zu Daten aus Speichern11 und13 zwischenzuspeichern. Falls jedoch der Speicher12 ein Hardware-ROM ist, könnte davon ausgegangen werden, dass Auslesen daraus schnell ist, so dass die Geschwindigkeitserhöhung vom Zwischenspeichern seiner Daten im Cache-RAM15 vernachlässigbar sein könnte. Schritt48 erlaubt Zwischenspeichern von mehr Daten aus Speicher13 , da sie nicht durch Daten vom ROM12 überschrieben werden. - In einer zweckdienlichen Implementierung sind Prozessor
10 und Cache12 auf einem einzigen integrierten Schaltungssubstrat ausgebildet. ROM12 kann sich auf dem gleichen Halbleitersubstrat befinden. Alternativ kann ROM12 auf einem unterschiedlichen Halbleitersubstrat liegen. OTP-Speicher11 kann sich auf dem gleichen Halbleitersubstrat befinden. Alternativ kann sich OTP-Speicher11 auf einem unterschiedlichen Halbleitersubstrat befinden. OTP-Speicher11 und ROM-Speicher12 könnten sich auf ein und demselben Halbleitersubstrat befinden. - In dem oben angegebenen Beispiel findet eine Abbildung 1-zu-1 zwischen Adressen im Cache-RAM
15 und jedem der Speicher11 ,12 und13 statt. Alternative Anordnungen sind möglich. Die Cache-Steuerung könnte zum Abbilden eines Adressenbereichs im Cache-RAM15 auf einen verschiedenen von dem Bereich, auf dem er in einem oder beiden der anderen abgebildet ist, Adressenbereich in einem der Speicher11 ,12 und13 ausgelegt sein. Dieses Verfahren könnte zum Mildern der Auswirkungen benutzt werden, dass die Cache-Steuerung dem Zwischenspeichern von Daten aus dem UTP-Speicher11 Priorität erteilt, wo diese durch Daten aus dem Flash-Speicher13 überschrieben werden würden. Die Cache-Steuerung könnte so angeordnet sein, dass sie einen Adressenbereich im Cache-RAM15 auf einen Bereich eines der Speicher11 und13 abbildet, von dem erwartet wird, dass er häufig benutzt wird, und auf einem Bereich der anderen dieser Speicher, von dem erwartet wird, dass er selten benutzt wird. - Der Cache-RAM
15 könnte für zur Zwischenspeicherung zusätzliche Zwecke benutzt werden. Beispielsweise könnte er auch als Arbeits-RAM18 für den Prozessor10 wirken. - Die Speicher
11 ,12 ,13 und15 könnten unterschiedlich groß sein. Falls der Cache-RAM15 kleiner als einer der anderen Speicher ist, kann er Daten aus dem größeren Speicher nicht an einer Stelle speichern, die dieselbe Adresse im Speicher15 wie in diesem größeren Speicher aufweist. Die Cache-Steuerung könnte eine Abbildung aus Adressen in einem beliebigen der Speicher11 ,12 ,13 auf unterschiedliche Adressen im Cache-RAM15 ausführen. - Die Anmelderin offenbart hiermit getrennt jedes einzelne hier beschriebene Merkmal und jede Kombination von zwei oder mehr solcher Merkmale, dahingehend, dass solche Merkmale oder Kombinationen auf der Grundlage der vorliegenden Beschreibung insgesamt angesichts der gewöhnlichen Allgemeinkenntnisse eines Fachmanns ausgeführt werden können, ungeachtet dessen, ob solche Merkmale oder Kombinationen von Merkmalen irgendwelche hier offenbarten Probleme lösen, und ohne Beschränkung des Schutzbereichs der Ansprüche. Die Anmelderin zeigt an, dass Aspekte der vorliegenden Erfindung aus jedem beliebigen solchen Einzelmerkmal oder jeder beliebigen derartigen Kombination von Merkmalen bestehen können. Angesichts der obigen Beschreibung wird für einen Fachmann offensichtlich, dass verschiedene Abänderungen innerhalb des Schutzbereichs der Erfindung durchgeführt werden können.
Claims (16)
- Cache-Steuerung für ein Verarbeitungssystem, wobei die Cache-Steuerung zum Bereitstellen einer Schnittstelle zwischen einem Datenanforderer und einer Vielzahl von Speichern einschließlich eines ersten Speichers, eines zweiten Speichers und eines Cache-Speichers eingerichtet ist, wobei die Cache-Steuerung dazu ausgebildet ist, in Reaktion auf Empfangen einer Anforderung von Daten an einer angegebenen Adresse in einem angegebenen Speicher, die Schritte durchzuführen: Bestimmen, ob entweder (a) ein Datenfeld im Cache-Speicher, das der angegebenen Adresse entspricht, aus dem angegebenen Speicher belegt worden ist, oder (b) der angegebene Speicher der erste Speicher ist und das der angegebenen Adresse im Cache-Speicher entsprechende Datenfeld aus dem zweiten Speicher belegt worden ist; und, falls diese Bestimmung positiv ist, Reagieren auf die Anforderung durch Bereitstellen des Inhalts des Datenfeldes im Cache-Speicher, das der angegebenen Adresse entspricht.
- Cache-Steuerung nach Anspruch 1, wobei der erste Speicher ein Nurlesespeicher ist.
- Cache-Steuerung nach Anspruch 1, wobei der zweite Speicher ein programmierbarer nichtflüchtiger Speicher ist.
- Cache-Steuerung nach Anspruch 1, wobei der zweite Speicher ein einmal programmierbarer Speicher ist.
- Cache-Steuerung nach Anspruch 1, wobei die Vielzahl von Speichern einen dritten Speicher umfasst.
- Cache-Steuerung nach Anspruch 1, wobei jeder der Vielzahl von Speichern einer unterschiedlichen Speichertechnik angehört.
- Cache-Steuerung nach Anspruch 1, wobei die Cache-Steuerung auf einem ersten Halbleitersubstrat ausgeführt ist und wenigstens einer des ersten und zweiten Speichers auf einem zweiten Halbleitersubstrat ausgeführt ist.
- Cache-Steuerung nach Anspruch 1, wobei die Cache-Steuerung dazu ausgebildet ist, den Inhalt des der Adresse entsprechenden Datenfeldes in dem angegebenen Speicher abzurufen, falls die Bestimmung negativ ist, und auf die Anforderung durch Bereitstellen des Inhalts dieses Datenfeldes zu reagieren.
- Cache-Steuerung nach Anspruch 1, wobei die Cache-Steuerung dazu ausgebildet ist, falls die Bestimmung negativ ist, den Inhalt des der Adresse entsprechenden Datenfeldes in dem angegebenen Speicher abzurufen, zu bestimmen, ob das Datenfeld im Cache-Speicher, das der angegebenen Adresse entspricht, aus dem ersten oder dem zweiten Speicher belegt worden ist, und, falls diese letztere Bestimmung negativ ist, das Datenfeld im Cache-Speicher, das der angegebenen Adresse entspricht, mit dem abgerufenen Inhalt des der Adresse entsprechenden Datenfeldes im angegebenen Speicher zu belegen.
- Datenverarbeitungssystem, umfassend: die Cache-Steuerung nach Anspruch 1, den Datenanforderer, den ersten Speicher, den zweiten Speicher und den Cache-Speicher.
- Cache-Steuerung für ein Verarbeitungssystem, wobei die Cache-Steuerung zum Bereitstellen einer Schnittstelle zwischen einem Datenanforderer und einer Vielzahl von Speichern einschließlich eines ersten Speichers, eines zweiten Speichers und eines Cache-Speichers eingerichtet ist, wobei die Cache-Steuerung dazu ausgebildet ist, in Reaktion auf Empfangen einer Anforderung zum Einschreiben von Daten in eine angegebene Adresse in einem angegebenen Speicher die Schritte durchzuführen: Speichern der Daten an der angegebenen Adresse im ersten Speicher, falls der angegebene Speicher der erste Speicher ist, und Belegen des Datenfeldes mit den Daten, falls dieses Datenfeld im Cache-Speicher, das der angegebenen Adresse entspricht, nicht aus dem zweiten Speicher belegt worden ist.
- Cache-Steuerung nach Anspruch 11, wobei der erste Speicher ein umprogrammierbarer Speicher ist.
- Cache-Steuerung nach Anspruch 12, wobei der zweite Speicher ein programmierbarer nichtflüchtiger Speicher ist.
- Cache-Steuerung nach Anspruch 12, wobei der zweite Speicher ein einmalig programmierbarer Speicher ist.
- Cache-Steuerung nach Anspruch 12, wobei die Vielzahl von Speichern einen dritten Speicher umfasst und die Cache-Steuerung dazu ausgebildet ist, auf wenigstens einige Anforderungen zum Auslesen von Daten aus dem dritten Speicher durch Bereitstellen von im Cache-Speicher aus dem zweiten Speicher belegten Daten zu reagieren.
- Datenverarbeitungssystem, umfassend: die Cache-Steuerung nach Anspruch 12, den Datenanforderer, den ersten Speicher, den zweiten Speicher und den Cache-Speicher.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/141,009 US20150186289A1 (en) | 2013-12-26 | 2013-12-26 | Cache architecture |
US14/141,009 | 2013-12-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102014013509A1 true DE102014013509A1 (de) | 2015-07-02 |
Family
ID=51587834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102014013509.8A Withdrawn DE102014013509A1 (de) | 2013-12-26 | 2014-09-11 | Cache-Architektur |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150186289A1 (de) |
DE (1) | DE102014013509A1 (de) |
GB (2) | GB2521700A (de) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10713750B2 (en) * | 2017-04-01 | 2020-07-14 | Intel Corporation | Cache replacement mechanism |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5950012A (en) * | 1996-03-08 | 1999-09-07 | Texas Instruments Incorporated | Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes |
US7310800B2 (en) * | 2001-02-28 | 2007-12-18 | Safenet, Inc. | Method and system for patching ROM code |
US7290081B2 (en) * | 2002-05-14 | 2007-10-30 | Stmicroelectronics, Inc. | Apparatus and method for implementing a ROM patch using a lockable cache |
US7159076B2 (en) * | 2003-06-24 | 2007-01-02 | Research In Motion Limited | Cache operation with non-cache memory |
US7103736B2 (en) * | 2003-08-11 | 2006-09-05 | Telairity Semiconductor, Inc. | System for repair of ROM programming errors or defects |
US20050044321A1 (en) * | 2003-08-18 | 2005-02-24 | Jan Bialkowski | Method and system for multiprocess cache management |
US7533240B1 (en) * | 2005-06-01 | 2009-05-12 | Marvell International Ltd. | Device with mapping between non-programmable and programmable memory |
US7689771B2 (en) * | 2006-09-19 | 2010-03-30 | International Business Machines Corporation | Coherency management of castouts |
GB0722707D0 (en) * | 2007-11-19 | 2007-12-27 | St Microelectronics Res & Dev | Cache memory |
-
2013
- 2013-12-26 US US14/141,009 patent/US20150186289A1/en not_active Abandoned
-
2014
- 2014-08-06 GB GB1413951.3A patent/GB2521700A/en not_active Withdrawn
- 2014-08-06 GB GB1519887.2A patent/GB2534014B/en not_active Expired - Fee Related
- 2014-09-11 DE DE102014013509.8A patent/DE102014013509A1/de not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
GB201413951D0 (en) | 2014-09-17 |
GB201519887D0 (en) | 2015-12-23 |
GB2534014B (en) | 2017-01-04 |
GB2521700A (en) | 2015-07-01 |
US20150186289A1 (en) | 2015-07-02 |
GB2534014A (en) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102011076894B9 (de) | Persistenter Speicher für einen Hauptspeicher eines Prozessors | |
DE2350215C2 (de) | Rechenanlage | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE102017128967A1 (de) | Speichervorrichtung, welche eine Hashing-basierte Übersetzung zwischen einer logischen Adresse und einer physikalischen Adresse durchführt | |
DE112006000341T5 (de) | System mit einem Cache-Speicher und Verfahren zum Zugreifen | |
DE112020003028T5 (de) | Vorrichtungen und verfahren zum reparieren von defekten speicherzellen basierend auf einer spezifizierten fehlerrate für bestimmte speicherzellen | |
DE112008001473B4 (de) | Zwischenspeicherung eines Mikrocodierungsemulationsspeichers | |
DE102020119400A1 (de) | Techniken zum setzen eines 2-ebenen-auto-schliess-timers zum zugriff auf eine speichervorrichtung | |
DE102007038187A1 (de) | Speichersystem, insbesondere gepuffertes Speichersystem, und Verfahren zum Betreiben eines Speichersystems | |
DE102018106986A1 (de) | Verbesserungen am aktualitätsverfolgungsmechanismus für hochleistungs-caching basierend auf am weitesten zurückliegender verwendung | |
DE102014013509A1 (de) | Cache-Architektur | |
DE602004008697T2 (de) | Abnutzungsausgleich in einem nicht flüchtigen Flash-Speicher ohne die Notwendigkeit freier Blöcke | |
DE102008020190A1 (de) | Speicherredundanzverfahren und -vorrichtung | |
DE112016007298T5 (de) | Informationsverarbeitungsgerät | |
DE102018126051A1 (de) | Neuartige Speichervorrichtung | |
DE102007055138A1 (de) | Dualer Zugriff für Einzelport-Cache | |
DE102009027567A1 (de) | Cache-Speichervorrichtung | |
DE1774212C3 (de) | Datenverarbeitungsanlage | |
DE112016007293T5 (de) | Objektkohärenz in verteilten gemeinsamen Speichersystemen | |
DE102021108478A1 (de) | System und Verfahren zur Cache-Verzeichnis-TCAM-Fehlererkennung und - Korrektur | |
DE102017102989A1 (de) | Erhalten von Verpackungsanlagenzustandsdaten | |
DE2355814C2 (de) | Kanalzugriffseinrichtung für eine hierarchische Speicheranordnung | |
EP1248978A2 (de) | Redundanter datenspeicher | |
DE4114545C2 (de) | Schaltungsanordnung für einen Mikrocomputer | |
DE102009024019A1 (de) | Fehlererkennungscode-Speichermodul |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R081 | Change of applicant/patentee |
Owner name: QUALCOMM TECHNOLOGIES INTERNATIONAL, LTD., GB Free format text: FORMER OWNER: CAMBRIDGE SILICON RADIO LIMITED, CAMBRIDGE, GB |
|
R082 | Change of representative |
Representative=s name: MAUCHER JENKINS, DE Representative=s name: OLSWANG GERMANY LLP, DE Representative=s name: MAUCHER JENKINS PATENTANWAELTE & RECHTSANWAELT, DE |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0012080000 Ipc: G06F0012081100 |
|
R082 | Change of representative |
Representative=s name: MAUCHER JENKINS, DE Representative=s name: MAUCHER JENKINS PATENTANWAELTE & RECHTSANWAELT, DE |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |