DE102014013509A1 - Cache-Architektur - Google Patents

Cache-Architektur Download PDF

Info

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
Application number
DE102014013509.8A
Other languages
English (en)
Inventor
c/o CAMBRIDGE SILICON RADIO Hoayun Paul Simon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Technologies International Ltd
Original Assignee
Cambridge Silicon Radio Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cambridge Silicon Radio Ltd filed Critical Cambridge Silicon Radio Ltd
Publication of DE102014013509A1 publication Critical patent/DE102014013509A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

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 in: 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 Datenspeicher entsprechend der angegebenen Adresse, durchzuführen.

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 Datenprozessor 1 ist über einen Datenbus mit einem Cache 2 verbunden. Der Cache ist mit zwei Speichern 3 und 4 verbunden. Die Speicher 3 und 4 teilen sich einen Adressraum, so dass keine Überlappung zwischen den durch den Speicher 3 bedienten logischen Speicherstellen und den durch den Speicher 4 bedienten besteht. Wenn der Prozessor Daten aus einer Stelle im Speicher 3 oder 4 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 Speicher 3, 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 Speicher 3, 4 bedient werden muss. Speicherstellen im Cache 2 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. In 2 kann der Prozessor 10 Daten aus einem beliebigen der Speicher 11, 12, 13 über den Cache 14 abrufen. Der Cache umfasst einen Direktzugriffsspeicher-(RAM – Random Access Memory)Cache 15 und eine Cache-Steuerung 16, 17. Die Speicher 11, 12, 13 teilen sich keinen gemeinsamen Adressraum. Wenn der Prozessor Daten aus einem der Speicher 11, 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 Speicher 11, 12, 13 im RAM 15 angeordnet, und zwar auf solche Weise, dass der Datenspeicher 11, der ein einmal programmierbarer (OTP – One-Time Programmable) Speicher ist, Daten im Speicher 12, der ein ROM ist, ohne zusätzliche Belastung des Prozessors 10 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 Speicher 13 als Zwischenspeicher benutzen. Der Prozessor kann den Arbeitsspeicher 18 abschalten, wenn der Prozessor frei ist, um Strom zu sparen. Als Teil des Abschaltevorgangs kann der Prozessor gewisse Zustandsdaten im nichtflüchtigen Speicher 13 speichern. Wenn der Prozessor aufwacht, kann er den Speicher 18 wieder aktivieren und die gespeicherten Zustandsdaten aus dem Speicher 13 zurück in den Speicher 18 übertragen.
  • Die Cache-Steuerung 16, 17 wirkt als Vermittler zwischen dem Prozessor 10 und den Speichern 11, 12, 13. Eine Funktion der Cache-Steuerung ist es, Datenleseanforderungen aus dem Prozessor 10 zu bearbeiten und sie vom Cache-RAM 15 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-RAM 15 und gegebenenfalls einem der Speicher 11, 12, 13.
  • 3 zeigt die Struktur des Cache-RAM 15. Der Speicher umfasst einen Speicherraum 20, der als aus einer Reihe von Datenzeilen gebildet angesehen wird. Eine Datenzeile ist bei 21 dargestellt. Jede Datenzeile weist eine jeweilige Speicherstelle im RAM 15 auf. Der Adressraum des RAM 15 wird so behandelt, dass er diejenigen der Speicher 11, 12, 13 wiederspiegelt. Wenn der Prozessor eine Datenanforderung aus einer gewissen Adresse X in einem der Speicher 11, 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-RAM 15.
  • Jede Datenzeile 21 umfasst ein Hardware-Etikett 22 und einen Datenblock 23. Jede Zeile im Cache-RAM 15 könnte Daten aus einem beliebigen der Speicher 11, 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 belegt
    01 Zeile aus Speicher 12 belegt
    10 Zeile aus Speicher 13 belegt
    11 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 Zugangsmodul 17. Das lokale Zugangsmodul ist an Cache-RAM 15 angeschlossen. Das entfernte Zugangsmodul ist am Speicher 11, 12, 13 angeschlossen.
  • Nunmehr wird die Funktionsweise der Cache-Steuerung beschrieben.
  • 4 zeigt die an einer Leseoperation beteiligten Schritte. Wenn der Prozessor 10 eine Datenleseanforderung stellt, wird diese Anforderung zum lokalen Zugangsmodul 16 übertragen (Schritt 40). Die Anfrage gibt die Stelle an, aus der Daten auszulesen sind, indem sie sowohl (a) einen der Speicher 11, 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 RAM 15 zwischengespeichert ist. Es ruft dafür den an Stelle L in RAM 15 gespeicherten Hardware-Etikettenwert (Feld 22) ab (Schritt 41) und überprüft, ob dessen Wert nach der obigen Tabelle mit dem in der Leseanforderung angegebenen Speicher M übereinstimmt (Schritt 42). Falls eine Übereinstimmung besteht, zeigt dies an, dass die entsprechenden Daten im RAM 15 zwischengespeichert sind, und das lokale Zugangsmodul reagiert auf die Anforderung aus dem Prozessor mit dem an Stelle L im RAM 15 gespeicherten Dateninhalt (Feld 23) (Schritt 43). Falls keine Übereinstimmung besteht, überprüft das lokale Zugangsmodul, ob (a) das Hardware-Etikett den OTP-Speicher 11 bezeichnet, sowie (b) der in der Leseanforderung angegebene Speicher M ROM 12 ist (Schritt 44); 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 RAM 15 gespeicherten Dateninhalt (Feld 23) (Schritt 43). 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 Speicher 11, 12, 13 gespeicherten Daten zu lesen (Schritt 45). 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 (Schritt 46). 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-RAM 15 anstatt aus Speicher M bedient werden kann. Für einige Arten von Speicher 11, 12, 13 kann dies in zukünftigen Leseanforderungen aus dem Prozessor Beantwortungszeit sparen. Das lokale Zugangsmodul überprüft, ob der Etikettwert, den es im Schritt 41 gelesen hat, den UTP-Speicher 13 angibt (Schritt 47), und ob der Speicher M, aus dem die Daten abgerufen wurden, ROM 12 ist (Schritt 48). 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-RAM 15 ein und setzt den Hardware-Etikettwert für diese Stelle im Cache-RAM zum Bezeichnen von Speicher M gemäß der obigen Tabelle (Schritt 49). Das bedeutet, dass die neu geschriebenen Daten im Schritt 42 einer nachfolgende Leseoperation gepaart werden können.
  • 5 zeigt die an einer Schreiboperation beteiligten Schritte. Wenn der Prozessor 10 eine Datenschreibanforderung stellt, wird diese Anforderung zum lokalen Zugangsmodul 16 übertragen (Schritt 50). 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 Speicher 11, 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 Speicher 11 angibt (Schritt 51). Dies erfolgt, da im vorliegenden Beispiel nur der Speicher 11 beschreibbar ist. Falls die Antwort ja ist, dann schreibt es die angegebenen Daten D an Stelle L im Speicher 11 (Schritt 52). Es kann den Cache aktualisieren, so dass, falls der Prozessor zukünftig Daten von Stelle L des Speichers 11 anfordert, diese Anforderung aus Cache-RAM 15 bedient werden kann. Das lokale Zugangsmodul ruft den Hardware-Etikettwert an Stelle L im Cache-RAM 15 ab (Schritt 53) und überprüft, ob das Etikett den OTP-Speicher 13 angibt (Schritt 54). Der Grund für diese Überprüfung wird unten beschrieben. Falls nicht, schreibt er die angegebenen Daten D in die Stelle L im Cache-RAM 15 und setzt den Hardware-Etikettwert für diese Stelle im Cache-RAM zum Bezeichnen von Speicher 11 gemäß der obigen Tabelle (Schritt 55).
  • 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-Speichers 11 besteht darin, solche Änderungen zu berücksichtigen. Der OTP-Speicher kann programmiert werden, nachdem das System hergestellt worden ist. Der OTP-Speicher 11 könnte auf einem Halbleitersubstrat ausgeführt werden. Der Vorgang des Herstellens des Substrats definiert die Komponenten, die den OTP-Speicher 11 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 ROM 12 zu ersetzen und effektiv zu überschreiben. Dies funktioniert auf folgende Weise.
  • Wenn der Cache 14 aktiviert wird, liest die Cache-Steuerung aus dem OTP-Speicher 11 alle Daten, die entsprechende Daten im ROM 12 ersetzen sollen. Jedes Element solcher Daten im OTP-Speicher 11 soll die Daten an einer gewissen Stelle im ROM 12 ersetzen. Die Cache-Steuerung schreibt jedes Element solcher Daten in das Datenfeld 23 der Stelle im Cache RAM 15, die der Stelle im ROM 12 entspricht, die die Daten ersetzen sollen, und setzt das Hardware-Etikett 22 für diese Stelle im Cache-ROM 15, zum Anzeigen des OTP-Speichers 11. Falls beispielsweise der OTP-Speicher Daten D enthält, die die Daten an Stelle L im ROM 12 ersetzen sollen, schreibt die Cache-Steuerung Daten D in das Datenfeld an Stelle L im Cache-Speicher 15. Um dies zu erreichen, könnte die Cache-Steuerung einfach die Gesamtheit von OTP-Speicher 11 auslesen und jeden Wert im OTP-Speicher, der kein reservierter Wert ist (z. B. nur Nullen) an dieselbe Stelle im Cache-RAM 15 kopieren, wie er im OTP-Speicher 11 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-Speicher 11 beladen worden ist, die Wirkung des Schritts 44 darin besteht, zu veranlassen, dass die Daten aus dem OTP-Speicher 11, die im Cache-RAM gespeichert worden sind, als Reaktion auf eine Anforderung aus dem Prozessor der Daten an der entsprechenden Stelle im ROM 12 dem Prozessor zugeführt werden. Auch ist ersichtlich, dass die Wirkung der Schritte 47 und (in 5) 54 darin besteht zu vermeiden, dass Daten aus dem OTP-Speicher 11, die im Cache-RAM gespeichert worden sind, durch aus dem Flash-Speicher 13 ausgelesene Zwischenspeicherdaten überschrieben werden. Eine Folge der Schritte 47 und 54 besteht darin, dass der Cache nicht alle Stellen im Flash-Speicher 13 zwischenspeichern kann, so dass etwaige Geschwindigkeitserhöhungen aus dem Zwischenspeichern im Flash-Speicher 13 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 Speichern 11, 12 und 13 dienen kann als auch (b) im Effekt Teile des RAM mit Daten aus dem OTP überschreiben kann.
  • Die Speicher 11, 12 und 13 könnten andere Formen annehmen. Beispielsweise könnte der Speicher 11 ein Flash-Speicher sein. Speicher 11 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. Speicher 12 könnte wiederbeschreibbar sein, was vielleicht kostspielig sein könnte. Speicher 13 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 ROM 12 zusätzlich zu Daten aus Speichern 11 und 13 zwischenzuspeichern. Falls jedoch der Speicher 12 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-RAM 15 vernachlässigbar sein könnte. Schritt 48 erlaubt Zwischenspeichern von mehr Daten aus Speicher 13, da sie nicht durch Daten vom ROM 12 überschrieben werden.
  • In einer zweckdienlichen Implementierung sind Prozessor 10 und Cache 12 auf einem einzigen integrierten Schaltungssubstrat ausgebildet. ROM 12 kann sich auf dem gleichen Halbleitersubstrat befinden. Alternativ kann ROM 12 auf einem unterschiedlichen Halbleitersubstrat liegen. OTP-Speicher 11 kann sich auf dem gleichen Halbleitersubstrat befinden. Alternativ kann sich OTP-Speicher 11 auf einem unterschiedlichen Halbleitersubstrat befinden. OTP-Speicher 11 und ROM-Speicher 12 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 Speicher 11, 12 und 13 statt. Alternative Anordnungen sind möglich. Die Cache-Steuerung könnte zum Abbilden eines Adressenbereichs im Cache-RAM 15 auf einen verschiedenen von dem Bereich, auf dem er in einem oder beiden der anderen abgebildet ist, Adressenbereich in einem der Speicher 11, 12 und 13 ausgelegt sein. Dieses Verfahren könnte zum Mildern der Auswirkungen benutzt werden, dass die Cache-Steuerung dem Zwischenspeichern von Daten aus dem UTP-Speicher 11 Priorität erteilt, wo diese durch Daten aus dem Flash-Speicher 13 überschrieben werden würden. Die Cache-Steuerung könnte so angeordnet sein, dass sie einen Adressenbereich im Cache-RAM 15 auf einen Bereich eines der Speicher 11 und 13 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-RAM 18 für den Prozessor 10 wirken.
  • Die Speicher 11, 12, 13 und 15 könnten unterschiedlich groß sein. Falls der Cache-RAM 15 kleiner als einer der anderen Speicher ist, kann er Daten aus dem größeren Speicher nicht an einer Stelle speichern, die dieselbe Adresse im Speicher 15 wie in diesem größeren Speicher aufweist. Die Cache-Steuerung könnte eine Abbildung aus Adressen in einem beliebigen der Speicher 11, 12, 13 auf unterschiedliche Adressen im Cache-RAM 15 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)

  1. 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.
  2. Cache-Steuerung nach Anspruch 1, wobei der erste Speicher ein Nurlesespeicher ist.
  3. Cache-Steuerung nach Anspruch 1, wobei der zweite Speicher ein programmierbarer nichtflüchtiger Speicher ist.
  4. Cache-Steuerung nach Anspruch 1, wobei der zweite Speicher ein einmal programmierbarer Speicher ist.
  5. Cache-Steuerung nach Anspruch 1, wobei die Vielzahl von Speichern einen dritten Speicher umfasst.
  6. Cache-Steuerung nach Anspruch 1, wobei jeder der Vielzahl von Speichern einer unterschiedlichen Speichertechnik angehört.
  7. 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.
  8. 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.
  9. 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.
  10. Datenverarbeitungssystem, umfassend: die Cache-Steuerung nach Anspruch 1, den Datenanforderer, den ersten Speicher, den zweiten Speicher und den Cache-Speicher.
  11. 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.
  12. Cache-Steuerung nach Anspruch 11, wobei der erste Speicher ein umprogrammierbarer Speicher ist.
  13. Cache-Steuerung nach Anspruch 12, wobei der zweite Speicher ein programmierbarer nichtflüchtiger Speicher ist.
  14. Cache-Steuerung nach Anspruch 12, wobei der zweite Speicher ein einmalig programmierbarer Speicher ist.
  15. 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.
  16. Datenverarbeitungssystem, umfassend: die Cache-Steuerung nach Anspruch 12, den Datenanforderer, den ersten Speicher, den zweiten Speicher und den Cache-Speicher.
DE102014013509.8A 2013-12-26 2014-09-11 Cache-Architektur Withdrawn DE102014013509A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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