DE60003426T2 - Statusbits für cachespeicher - Google Patents

Statusbits für cachespeicher Download PDF

Info

Publication number
DE60003426T2
DE60003426T2 DE60003426T DE60003426T DE60003426T2 DE 60003426 T2 DE60003426 T2 DE 60003426T2 DE 60003426 T DE60003426 T DE 60003426T DE 60003426 T DE60003426 T DE 60003426T DE 60003426 T2 DE60003426 T2 DE 60003426T2
Authority
DE
Germany
Prior art keywords
status
memory
level
hierarchical relationship
bits
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.)
Expired - Lifetime
Application number
DE60003426T
Other languages
English (en)
Other versions
DE60003426D1 (de
Inventor
Charles Simon Swaffham Bulbeck WATT
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines 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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of DE60003426D1 publication Critical patent/DE60003426D1/de
Application granted granted Critical
Publication of DE60003426T2 publication Critical patent/DE60003426T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • 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
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements

Description

  • Diese Erfindung betrifft Datenverarbeitungssysteme. Insbesondere betrifft diese Erfindung Datenverarbeitungssysteme, die einen Cachespeicher verwenden, der zumindest ein mit jedem Datenwort innerhalb des Cachespeichers verknüpftes Statusbit enthält.
  • Es ist bekannt, Cachespeicher zur Verfügung zu stellen, wie denjenigen, der in 1 der begleitenden Zeichnungen dargestellt ist, der Speicher 2 beinhaltet, der Adreß-TAGs für Datenzeilen in einem Cache-RAM-Speicher 4 enthält. Der Cache-RAM-Speicher 4 ist aus einer Mehrzahl von Cachespeicherzeilen bzw. Cachelines 6 zusammengesetzt, wobei jede Cacheline 6 vier Datenworte speichert. Eine Mehrzahl von Valid-Bits und Dirty-Bits 8 sind mit jeder Cachezeile 6 verknüpft. Übliche Arten von Statusbits 8 sind ein Valid-Bit 10 und ein Dirty-Bit 12. Das Valid-Bit 10 zeigt an, ob die Cachezeile gültige Daten speichert, z. B. muß beim Start jede Cachezeile 6 als ungültige Daten speichernd markiert werden. Das Dirty-Bit 12 zeigt im Kontext einer Write-Back-Cachespeicherarchitektur an, daß zumindest ein Datenwort in der Cachespeicherzeile 6 verändert wurde, seitdem es aus dem Hauptspeicher gelesen wurde und folglich zu dem Hauptspeicher zurückgeschrieben werden muß, wenn diese Cachezeile 6 aus dem Cachespeicher gelöscht oder innerhalb des Cachespeichers ersetzt wird. Man wird sehen, daß als Kompromiß zwischen der Schaltungsfläche und dem Grad der Feinkontrolle, die mit dem Statusbit 8 erreicht werden kann, jede Cachespeicherzeile 6 ein Valid-Bit 10 hat, das mit dieser verknüpft ist, und ein Dirty-Bit 12 hat, das mit ihr verknüpft ist (dies ist die Anordnung, die in der Mehrzahl von Cachespeicherimplementierungen verwendet wird). Somit nutzen die vier Datenworte innerhalb einer Cachezeile 6 diese Statusbits 8 gemeinsam.
  • In bestimmten Betriebssituationen ist es wünschenswert, daß globale Veränderungen an den Statusbits 8 von allen Cachespeicherzeilen 6 eines Cachespeichersystems durchgeführt werden. Beispielsweise ist es mit dem Systemstart im Anschluß an einen Austausch der Speicherverwaltungseinheit (MMU) oder im Anschluß an eine Kontextschaltung häufig notwendig, den gesamten Inhalt des Cachespeichers durch Kenntlich machen aller Valid-Bits 10 von jeder Cachespeicherzeile 6 als ungültig zu löschen. Eine Möglichkeit dies durchzuführen ist es, nacheinander auf jedes Valid-Bit 10 zuzugreifen und es als ungültig bzw. Invalid zu schreiben. In einem Cachespeichersystem, das Tausende von Cachezeilen 6 enthalten kann, kann diese Operation Tausende von Verarbeitungstakten in Anspruch nehmen und die Systemleistung erheblich beeinflussen. Eine Alternative zu dem sequentiellen und einzelnen Ändern von jedem der Statusbits 8 ist es, eine globale Veränderung durch Spezialhardware durchzuführen, die in der Lage ist, die Statusbits parallel zu verändern. Während dies einen schnellen Betrieb zur Verfügung stellen kann, hat es den Nachteil, daß Schaltungsplatz für diese Spezialhardware gebraucht wird und sie typischerweise individuell für jede Implementierung einer generischeren Systemkonstruktion speziell konstruiert werden muß.
  • Die US-A-5 475 849 beschreibt eine Speichersteuereinrichtung für ein Multiprozessorsystem mit einer Mehrzahl von Prozessoren, die jeweils den einen Hauptspeicher gemeinsam nutzen, während sie ihre eigenen Pufferspeicher oder Cachespeicher haben. Das System verwendet Frontadreßanordnungen (FAA) für die Übereinstimmungssteuerung zwischen den einzelnen Pufferspeichern und dem Hauptspeicher. Um die Anzahl von benötigten FAAs zu begrenzen, ohne die Wartezeit für die FAA-Abfrage übermäßig zu erhöhen, hat das System block valid memory (BVM) bzw. Speicher mit gültigen Blöcken, die Einträge für jeden Speicherort in dem Hauptspeicher haben, und hat gültige block group valid tables (BGVT) bzw. Tabellen mit gültigen Blockgruppen, die Einträge für jede Gruppe von Speicherorten, die mit jedem Pufferspeicher verknüpft sind, haben. Bei einer Speicheranfrage wird zunächst auf die BGVT zugegriffen und, wenn ein Abschnitt oder der gesamte Block, der den angeforderten Ort enthält, in dem Pufferspeicher, der mit dieser BGVT verknüpft ist, vorhanden ist, dann wird ein gültiges Signal erzeugt. Im Anschluß daran wird auf den entsprechenden BVM zugegriffen und, wenn dies ein gültiges Signal erzeugt, dann ist der Speicherort in dem Pufferspeicher vorhanden und es wird auf die FAA zugegriffen. Falls irgendeiner ein ungültiges Signal erzeugt, wird die Anfrage ignoriert und nicht zu der FAA gesendet.
  • US-A-5 539 894 beschreibt einen Cachespeicher mit Cachespeichertags mit Blöcken gültiger Bits und Unterblöcken gültiger Bits.
  • Die vorliegende Erfindung betrifft das zur Verfügung stellen von Mechanismen für das Verändern von Statusbits mit hoher Geschwindigkeit möglicherweise so schnell wie ein Verarbeitungszyklus, ohne daß speziell angefertigte Hardware für den Parallelzugriff auf alle Statusbits bereitgestellt wird.
  • Von einem Aspekt aus gesehen stellt die vorliegende Erfindung eine Vorrichtung für die Datenverarbeitung zur Verfügung, wobei die Vorrichtung aufweist:
    einen Speicher, der derart betreibbar ist, daß er eine Mehrzahl von Datenworten speichert, wobei jedes Datenwort mit zumindest einem Statusbit verknüpft ist, das eine Information betreffend einen Status des Datenwortes bestimmt,
    einen Statusbitspeicher, der derart betreibbar ist, daß er Statusbits innerhalb einer hierarchischen Beziehung ablegt, so daß ein kombinierter Status, der eine Mehrzahl von First-Level-Statusbits auf einem ersten Niveau innerhalb der hierarchischen Verbindung betrifft, durch ein Second-Level-Statusbit auf einem zweiten Niveau innerhalb der hierarchischen Beziehung angezeigt wird, wobei das zweite Niveau in der hierarchischen Beziehung höher als das erste Niveau ist,
    eine Status abfragende Logik, die derart arbeitet, daß sie einen Status eines Datenwortes innerhalb des Speichers durch Untersuchen der Statusbits innerhalb des Statusbitspeichers bestimmt, beginnend bei dem obersten Niveau innerhalb der hierarchischen Beziehung und sich durch die hierarchische Beziehung nach unten arbeitend, bis ein Statusbit erreicht wird, das den Status des Datenwortes unabhängig von irgendwelchen Statusbits, die in der hierarchischen Beziehung tiefer angeordnet sind, anzeigt, und dadurch gekennzeichnet, daß
    die Vorrichtung betreibbar ist, um eine globale Veränderung in dem Status von allen Datenwörtern, die innerhalb des Speichers abgelegt sind, anzuzeigen durch Modifizieren nur derjenigen Statusbits innerhalb eines höchsten Niveaus der hierarchischen Beziehung.
  • Die Erfindung stellt Statusbits zur Verfügung, die in einer hierarchischen Beziehung (mit zumindest zwei Ebenen) angeordnet sind, so daß globale Veränderungen oder Veränderungen mit großer Skala des Status einer Mehrzahl von Datenworten innerhalb des Speichers durchgeführt werden können durch Verändern von relativ wenigen Statusbits an der Spitze oder in Richtung der Spitze der hierarchischen Beziehung, ohne daß jedes Statusbit, das mit jedem Datenwort, für das der Status sich ändert, verändert werden muß. Auf diese Art und Weise kann die Zeit, die benötigt wird, um globale Veränderungen oder Veränderungen eines großen Bereiches der Statusbits drastisch reduziert werden, ohne daß speziell angefertigte Hardware für das Durchführen von parallelen Veränderungen eines großen Bereiches von den Statusbits bereitgestellt werden müssen. Es versteht sich, daß viele Datenworte Statusbits gemeinsam nutzen können. In einigen Ausführungsformen kann die Hierarchie aus gültigen Bits bzw. Valid-Bits und den Datenworten, auf die sich diese beziehen, einschließlich TAG-Werten, Datenworten, Dirty-Bits und anderen Statusbits.
  • Die Statusbits könnten eine Vielzahl von unterschiedlichen Eigenschaften der Datenworte, die mit diesem in Beziehung stehen, repräsentieren. Die Erfindung ist jedoch insbesondere für Ausführungsformen geeignet, in denen die Statusbits Valid-Bits sind, die die Gültigkeit von Datenworten, die innerhalb des Speichers abgelegt sind, anzeigen.
  • Valid-Bits sind oft globalen Veränderungen oder Veränderungen von großem Umfang ausgesetzt, und daher ist die Erfindung besonders praktisch beim Zulassen, daß diese schneller verändert werden, und zwar mit reduzierten Hardwarekosten.
  • Es versteht sich, daß an dem niedrigsten Niveau innerhalb der hierarchischen Beziehung ein einzelnes Statusbit für jedes Datenwort zur Verfügung gestellt werden könnte. Wenn der Speicher ein Cachespeicher ist und eine Cachezeile vier Datenworte ablegt, dann wäre es somit möglich, vier getrennte Valid-Bits mit dieser Cachezeile zu verknüpfen, um die Validität von jedem einzelnen Datenwort anzuzeigen. In bevorzugten Ausführungsformen der Erfindung steht jedoch ein Statusbit des niedrigsten Niveaus mit einer Mehrzahl von Datenworten in Beziehung. Dies stellt einen befriedigenden Kompromiß zwischen der erreichbaren Granularität der Feinsteuerung dar und der erforderlichen Hardwareresourcen, um die Statusbits bereitzustellen, dar.
  • Es ist insbesondere sehr bequem, ein Statusbit des niedrigsten Niveaus mit allen Datenworten innerhalb einer Cachespeicherzeile des Cachespeichers zu verknüpfen. In einigen Ausführungsformen kann eine Cachespeicherzeile als ihre verknüpften TAG-Werte und ihre verknüpften Dirty-Bits beinhaltend angesehen werden.
  • Es wurde gefunden, daß diese Anordnung effizient arbeitet, da Cachespeicherzugriffe zu und von dem Hauptspeicher typischerweise auf einer Cachespeicherzeile per Cachespeicherzeilenbasis stattfindet, so daß aufgrund der zeitweiligen und örtlichen Lokalität, die in der Praxis mit den meisten Speicherzugriffen verknüpft ist, eine Statusinformation unterhalb der Ebene einer Cachezeile selten notwendig ist.
  • Die vorliegende Erfindung paßt sich selbst an Ausführungsformen an, in denen der Statusbitspeicher einen RAM-Speicher beinhaltet, der Statusbitworte speichert, die aus einer Mehrzahl von Statusbits gebildet sind. Die hierarchische Beziehung zwischen diesen Statusbits und der Status abfragenden Logik ist derart, daß die Statusbits in Richtung der unteren Ebenen innerhalb der hierarchische Beziehung innerhalb des RAM-Speichers abgelegt werden können, ohne die Leistung signifikant zu beeinflussen und daher die Speicherdichtevorteile von RAM-Speichern verglichen mit gebräuchlichen Flip-Flops oder Registern erlangen.
  • Das Ablegen der Statusbits innerhalb des RAM-Speichers erlaubt es, daß diese leicht als Statusbitworte manipuliert werden können, auf die von dem RAM-Speicher zugegriffen wird. Bei der Manipulation von Statusbitworten wird eine typische Operation eine Lese-Modifizier-Schreiboperation sein, die leicht durch Daten verarbeitende Strukturen, die innerhalb vieler Systeme bestehen, unterstützt wird. Getrennte Lese- und Schreiboperationen können ebenso notwendig sein, und in manchen RAM-Speichern werden nur Lese- und Schreiboperationen unterstützt.
  • Im Gegensatz zu der Verwendung von hochdichtem RAM-Speicher auf den niedrigsten Ebenen innerhalb des Statusbitspeichers verwendet in bevorzugten Ausführungsformen zumindest die höchste Ebene innerhalb der hierarchische Beziehung Registerbitschaltkreise (D-Typ), um die Statusbits abzulegen. Auf Flip-Flop-Schaltkreise kann sehr schnell zugegriffen werden, und sie können in Antwort auf vorbestimmte Eingaben oder Zustände, wie z. B. Start, MMU-Veränderungen, Kontextschaltungen usw. verändert werden und stellen folglich schnelle Globalstatusveränderungen oder Statusveränderungen in großem Umfang zur Verfügung mit relativ wenig oder keiner speziell angefertigten Hardware.
  • Auf die Statusbits, die innerhalb eines Flip-Flops abgelegt sind, kann typischerweise einzeln zugegriffen werden, und sie können einzeln manipuliert werden, verglichen mit Statusbits, die innerhalb eines RAMs abgelegt sind, auf die auf einer Wort-bei-Wort-Basis zugegriffen wird und die auf einer Wort-bei-Wort-Basis manipuliert werden.
  • In manchen Ausführungsformen kann die höchste Ebene innerhalb der hierarchische Beziehung ein einzelnes Statusbit aufweisen. In solchen Fällen kann der gesamte Status der Datenworte eines Cachespeichers durch die einzelne Veränderung dieses einen Statusbits auf der höchsten Ebene verändert werden.
  • Um einen wesentlichen Vorteil von dem Statusbitspeicher und der Status abfragenden Logik der Erfindung zu erhalten, ist es äußerst wünschenswert, dafür zu sorgen, daß globale Veränderungen für den gesamten Speicher durchgeführt werden können durch Modifizieren nur der höchsten Ebene der hierarchische Beziehung, und dafür zu sorgen, daß genügend Hardwareunterstützung bereitgestellt wird, daß solch eine globale Veränderung in einem einzelnen Verarbeitungszyklus bewirkt werden kann. Dies ist insbesondere von Vorteil im Kontextspeichers.
  • Es versteht sich, daß man denken könnte, daß, während die globale Veränderung von Statusbits unter Verwendung von Veränderungen von weniger Bits innerhalb solch einer hierarchische Beziehung durchgeführt werden kann, die Einstellung der einzelnen Statusbits beginnend von dem niedrigsten Niveau länger brauchen könnte, da die Veränderungen sich nach oben durch die hierarchische Beziehung widerspiegeln müssen. Die Erfindung versteht jedoch, daß in dem Kontext eines Cachespeichers eine Cachespeicherfülloperation typischerweise relativ langsam ist und somit die vielen Statusbitveränderungen, die mit Cachespeicherfüllungen verknüpft sind, tatsächlich ausreichend verfügbare Zeit haben, um alle notwendigen Statusbitveränderungen innerhalb der hierarchischen Beziehung durchzuführen ohne die Gesamtarbeitsgeschwindigkeit zu beeinflussen. Statusbits können parallel verändert werden, was die Effizienz weiter verbessert.
  • Von einem anderen Aspekt aus gesehen, stellt die vorliegende Erfindung ein Verfahren zur Datenverarbeitung zur Verfügung, wobei das Verfahren die Schritte aufweist: Speichern einer Mehrzahl von Datenworten innerhalb eines Speichers, wobei jedes Datenwort mit zumindest einem Statusbit verknüpft ist, das Information betreffend einen Status des Datenwortes bereitstellt, Speichern des Statusbits innerhalb einer hierarchischen Beziehung, so daß ein kombinierter Status, der eine Mehrzahl von First-Level-Statusbits auf einer ersten Ebene innerhalb der hierarchischen Beziehung betrifft, durch ein Second-Level-Statusbit auf einer zweiten Ebene innerhalb der hierarchischen Beziehung angezeigt wird, wobei die zweite Ebene in der hierarchischen Beziehung höher als die erste Ebene liegt, Bestimmen eines Status eines Datenwortes innerhalb des Speichers durch Untersuchen der Statusbits beginnend bei der obersten Ebene innerhalb der hierarchischen Beziehung und nach unten durch die hierarchische Beziehung arbeitend, bis ein Statusbit erreicht ist, das den Status des Datenwortes unabhängig von irgendwelchen Statusbits, die in der hierarchischen Beziehung tiefer stehen, anzeigt, und gekennzeichnet durch das Anzeigen einer globalen Veränderung in dem Status von allen Datenworten, die innerhalb des Speichers abgelegt sind, durch Modifizieren nur derjenigen Statusbits innerhalb einer höchsten Ebene der hierarchischen Beziehung.
  • Ausführungsformen der Erfindung werden nun lediglich beispielhaft unter Bezug auf die begleitenden Zeichnungen beschrieben, in denen:
  • 1 ein bekanntes Cachespeichersystem darstellt mit einzelnen Statusbits für jede Cachespeicherzeile;
  • 2 einen Cachespeicherstatusbitspeicher und das hiermit verknüpfte Statusbit in einer hierarchischen Beziehung darstellt;
  • 3 schematisch einen Teil eines Cachespeichersystems für die Handhabung von Cachespeicherzeilen-TAG-Werten und Statusbits darstellt;
  • 4 für eine beispielhafte Cachespeicherarchitektur die Beziehung zwischen den Adreßbits eines Datenwortes und des Statusbits für dieses Datenwort innerhalb einer hierarchischen Beziehung von Statusbits darstellt und
  • 5 eine andere Ausführungsform eines Abschnitts eines Cachespeichersystems darstellt.
  • 2 zeigt einen Datenwortcachespeicher 14, der aus einer Mehrzahl von Cachezeilen 16 zusammengesetzt ist, die jeweils vier Datenworte speichern. Ein einzelnes Valid-Bit 18 ist mit jeder Cachezeile 16 verbunden. Die Valid-Bits für acht aufeinanderfolgende Cachezeilen 16 sind innerhalb eines einzelnen Statusbitwortes 20 innerhalb eines Statusbit-RAM-Speichers abgelegt. Die Statusbitworte 20 umfassen die niedrigste Ebene innerhalb der hierarchischen Beziehung, die die Statusbits speichert.
  • Jedes Statusbitwort 20 ist mit einem Statusbit 22, das auf einer höheren Ebene innerhalb der hierarchischen Beziehung gespeichert ist und den kombinierten Status von allen Statusbits 18 innerhalb des Statuswortes 20 anzeigt, verknüpft. Somit kann der Status von acht Statusworten 20 durch die acht Bits 22 eines Statuswortes innerhalb der nächsthöheren Ebene der hierarchischen Beziehung angezeigt werden. Diese nächsthöhere Ebene könnte selbst innerhalb des Statusbit-RAM-Speichers oder auf irgendeinem Level in Richtung der Spitze der hierarchischen Beziehung bereitgestellt werden, wobei es effizienter wird, wenn der Statusbitspeicher mit Flip-Flops bzw. Latches (Registerbits) zur Verfügung gestellt wird, die mit relativ hoher Geschwindigkeit unter Verwendung von aufwendiger Logik verändert werden können. Weitere Ebenen können oberhalb der zwei dargestellten Ebenen zur Verfügung gestellt werden.
  • 3 stellt einen Abschnitt eines Cachespeichersystems für das Ablegen von Cachespeicherzeilen-TAG-Werten und verknüpften Statusbits dar. Wenn der Cachespeicher 256 Cachespeicherzeilen hat, dann wird ein 256-reihiger TAG-Speicher 24 zur Verfügung gestellt, um die verknüpften TAG-Werte für jede Cachezeile abzulegen. Angenommen, daß jede Cachezeile nur ein einzelnes Statusbits (z. B. ein Valid-Bit) hat, dann können die Statusbits für diese 256 Cachereihen innerhalb von acht 32-Bitworten, die innerhalb eines Statusbit-RAM-Speichers 26 enthalten sind, abgelegt werden. Die 32 Bitworte stellen die niedrigste Ebene innerhalb der hierarchischen Beziehung, die die Statusbits speichert, dar. Die nächsthöhere Ebene innerhalb der hierarchischen Beziehung (und in diesem Beispiel die höchste Ebene) wird von einem 8-Bitregister 28 zur Verfügung gestellt, wobei jedes Bit des Registers 28 den kombinierten Status von einem der 32 Bitstatusbitworte innerhalb des Statusbit-RAM-Speichers 26 darstellt.
  • Ein Cachecontroller 30 ist mit dem TAG-Speicher 24, dem Statusbit-RAM-Speicher 26 und dem Statusbitregister 28 verbunden. Der Cachecontroller 30 fungiert als Status abfragende Logik, wenn ein Zugriff auf ein Datenwort innerhalb des Cachespeichers durchgeführt wird, ebenso stellt er andere Funktionen zur Verfügung. Wenn ein Zugriff auf ein Datenwort angefragt wird, untersucht der Cachecontroller 30 die Statusbits, die innerhalb des Statusbitregisters 28 und dem Statusbit-RAM-Speicher 26 abgelegt sind. Wenn auf der höchsten Ebene das Bit innerhalb des Statusbitregisters 28, das dem bestimmten Datenwort auf dem niedrigsten Niveau entspricht, anzeigt, daß das Datenwort gültig ist, dann fährt der Cachecontroller 30 fort, um dann das einzelne Bit für dieses Datenwort (Cachezeile) innerhalb des Statusbit-RAM-Speichers 26 zu überprüfen. Wenn das Bit innerhalb des Statusbitregisters 28 Ungültigkeit anzeigt, dann muß der Statusbit-RAM-Speicher 26 nicht überprüft werden (obgleich diese Überprüfung tatsächlich parallel durchgeführt werden kann), da die Ungültigkeit, die auf der höheren Ebene angezeigt wurde, alles, was auf einer niedrigen Ebene angezeigt wird, überschreibt.
  • Der Cachecontroller 30 ist in der Lage, Hochgeschwindigkeitszugriffe auf die Statusbits innerhalb des Statusbitregisters 28 durchzuführen, so daß alle Bits innerhalb dieses Statusbitregisters 28 derart eingestellt werden können, daß sie die Ungültigkeit in einem einzelnen Zyklus anzeigen, z. B. wie es in einer schnellen Cachelöschung erforderlich ist. Auf die Statusbitworte innerhalb des Statusbit-RAM-Speichers 26 kann durch eine Lese-Modifizier-Schreiboperation zugegriffen werden, wie sie erforderlich ist, um feine Veränderungen des Statusbits auf diesem niedrigsten Niveau innerhalb der hierarchischen Beziehung durchzuführen. Alternativ dazu können getrennt Lese- und Schreiboperationen durchgeführt werden.
  • 4 stellt ein Beispiel dar, wie die Adresse eines Datenwortes innerhalb eines 128 kB Cachespeichers, der vier Datenworte pro Zeile hat und direkt abgebildet (mapped) ist, mit den Statusbits und anderen Steuerdaten in Beziehung gebracht werden kann.
  • Der obere Abschnitt der Adresse 32 bildet den TAG-Wert, der mit dem TAG-Wert, der innerhalb des TAG-Speichers 24 abgelegt ist, verglichen wird, um zu bestimmen, ob die bestimmten Daten gecached bzw. im Cachespeicher abgelegt sind. Wenn der Cachespeicher direkt abgebildet ist, stellt ein Mittelabschnitt 34 der Adresse einen Index in dem Cachespeicher zur Verfügung, um die TAG-Speicherposition anzuzeigen, die den TAG-Wert speichert, wenn die Daten innerhalb des Cachespeichers vorhanden sind. An dem unteren Ende der Adresse zeigen die Wortbits W und die Bytebits B an, welche Wortposition innerhalb einer Cachespei cherzeile adressiert wird und welche Byteposition innerhalb eines Datenwortes adressiert wird, wenn die Byteadressierung erlaubt ist.
  • Die Statusbitinformation für diesen Cachespeicher ist innerhalb einer Drei-Ebenen-Hierarchie abgelegt. Statusbits werden für jede Cachereihe abgelegt, und folglich gibt es ein Statusbit, das mit jedem Indexwert verknüpft ist. Diese Indexwertstatusbits können innerhalb einer 256*16-Anordnung, die aus übersetztem RAM-Speicher gebildet wird, abgelegt werden. Jede Zeile innerhalb der Anordnung der dritten Ebene hat ein entsprechendes Statusbit innerhalb der zweite Ebene der hierarchischen Beziehung, die selbst innerhalb einer 16*16-Anordnung abgelegt wird. Diese 16*16-Anordnung kann ebenso innerhalb des übersetzten RAM-Speichers abgelegt werden. Die höchste Ebene (erste Ebene) innerhalb der hierarchischen Beziehung wird durch 16 Registerbits zur Verfügung gestellt, wobei ein Registerbit zu jeder Anordnungsreihe der zweiten Ebene korrespondiert.
  • 5 stellt eine weitere Cachespeicherstruktur beispielhaft dar. In diesem Beispiel wird ein 1024-zeiliger TAG-Speicher 36 bereitgestellt, um die TAG-Werte abzulegen. Jede Zeile innerhalb des TAG-Speichers 36 entspricht einer Cachezeile und hat einen Statusbit, der hiermit verknüpft ist. Folglich können die Statusbits für 1024 Cachezeilen innerhalb eines 32*32-Bitwort-RAM 38 abgelegt werden, der einen Teil des Statusbitspeichers 40 bildet. Dieser Statusbit-RAM-Speicher 38 ist die niedrigste Ebene innerhalb der hierarchischen Beziehung. Die höchste Ebene innerhalb der hierarchischen Beziehung wird durch 32 Registerbits 42 mit einem Register entsprechend jedem 32-Bitwort innerhalb des Statusbit-RAM-Speichers 38 zur Verfügung gestellt.
  • Zur weiteren Illustration können die Schritte, die in verschiedenen Operationen die Datenworte manipulieren, die innerhalb eines Cachespeichersystems abgelegt sind, das eine hierarchische Beziehung der Statusbits beinhaltet, wie folgt sein:
  • Überprüfe Status:
    • – lese geeignete Bits von allen Ebenen der Hierarchie
    • – arbeite die Hierarchie nach unten durch und kontrolliere, daß jede nächstniedrigere Ebene gültig ist
    • – falls irgendeine Ebene anzeigt, daß niedrigere Ebenen ungültig sind, dann gebe den voreingestellten Wert (reset) zurück
    • – anderenfalls gebe den Wert zurück, der von dem Valid-Speicher der niedrigsten Ebene abgerufen wurde.
  • Die Statusbits haben zwei Zustände. Im Falle eines Valid-Bits bzw. eines gültigen Bits gibt es einen Reset-Zustand, der ungültig ist, und einen Valid-Zustand. Um etwas als valid bzw. gültig zu markieren, muß man alle Ebenen in der Hierarchie markieren. Der Reset-Zustand kann als ein starker Zustand betrachtet werden, der durch ein Bit hoher Ebene angezeigt wer den kann, und der andere Zustand kann als ein schwacher Zustand angesehen werden, für den alle Bits in der Hierarchie übereinstimmen müssen.
  • In einem System, das mehrere Zustandsbits pro Ort ablegt, müssen die höheren Ebenen der Hierarchie nur ein einzelnes Bit enthalten, um die Gültigkeit von niedrigeren Ebenen in der Hierarchie anzuzeigen.
  • Schreibe Status:
    • – arbeite die Hierarchie nach unten durch und setze geeignete Bits, um anzuzeigen, daß die nächst tiefere Ebene gültig ist
    • – wenn eine neue Zeile (auf irgendeiner Ebene in der Hierarchie), die vorher ungültig war, als gültig markiert wird, muß die komplette Zeile mit dem Reset-Wert initialisiert werden abgesehen von dem zu schreibenden Wert
    • – in dem Fall, in dem eine Zeile vorher gültig war, ist dann eine Lese-Modifizier-Schreiboperation notwendig, um nur die geeigneten Bits zu aktualisieren
    • – auf der untersten Ebene der Hierarchie sollten die geeigneten Daten geschrieben werden und, falls notwendig, sollten die anderen Statusbits auf ihre Reset-Werte geschrieben werden.
  • Reset Status:
    • – die höchste Ebene der Statusbits sollte zurückgesetzt werden, um die gesamte Hierarchie als ungültig zu markieren.
  • In einem cachegespeicherten System kann die Lese-Modifizier-Schreiboperation über viele Zyklen verteilt sein. Einige interessante Optionen, die dies ansprechen, sind:
    • – man muß nur eine Hierarchie von gültigen Bits aufrechterhalten, ungeachtet dessen, wieviele Statusbits auf dem niedrigsten Niveau gehalten werden (z. B. vier Valid-Bits + Dirty- + andere Statusbits), d.h. unterschiedliche Ebenen innerhalb der Hierarchie können unterschiedliche Statusbits speichern.
    • – wenn du dies tust, dann muß die Logik, die die Anordnungen liest, den „Reset"-Zustand zurückgeben, wenn auf einen ungültigen Ort zugegriffen wird.
    • – anstelle des Beibehaltens nur der Hierarchie der gültigen Bits kann es von Vorteil sein, andere Zustände durch die Hierarchie zu verfolgen. Beispielsweise kann man sowohl eine Valid- als auch eine Dirty-Hierarchie beibehalten – dies würde eine schnellere Suche nach Dirty-Cachespeicherorten erlauben.

Claims (17)

  1. Vorrichtung für die Datenverarbeitung, wobei die Vorrichtung aufweist: einen Speicher (14), der derart betreibbar ist, daß er eine Mehrzahl von Datenworten speichert, wobei jedes Datenwort mit mindestens einem Statusbit (18) verknüpft ist, das eine Information betreffend einen Status des Datenwortes bestimmt, einen Statusbitspeicher (26, 28, 40), der derart betreibbar ist, daß er das Statusbit in einer hierarchischen Beziehung ablegt, so daß ein kombinierter Status, der eine Mehrzahl von First-Level-Statusbits auf einem ersten Niveau innerhalb der hierarchischen Verbindung betrifft, durch ein Second-Level-Statusbit (22) auf einem zweiten Niveau innerhalb der hierarchischen Beziehung angezeigt wird, wobei das zweite Niveau in der hierarchischen Beziehung höher als das erste Niveau ist, eine den Status abfragende Logik (30), die derart arbeitet, daß sie einen Status eines Datenwortes innerhalb des Speichers durch Untersuchen der Statusbits innerhalb des Statusbitspeichers bestimmt, beginnend bei dem obersten Niveau innerhalb der hierarchischen Beziehung und sich durch die hierarchische Beziehung nach unten arbeitend, bis ein Statusbit erreicht wird, das den Status des Datenwortes unabhängig von irgendwelchen Statusbits, die in der hierarchischen Beziehung tiefer angeordnet sind, anzeigt, und dadurch gekennzeichnet, daß die Vorrichtung betreibbar ist, um eine globale Veränderung in dem Status von allen Datenwörtern, die innerhalb des Speichers abgelegt sind, anzuzeigen durch Modifizieren nur derjenigen Statusbits innerhalb eines höchsten Niveaus der hierarchischen Beziehung.
  2. Vorrichtung nach Anspruch 1, wobei die Statusbits Gültigkeitsbits bzw. Validbits sind, die die Gültigkeit von Datenworten, die innerhalb des Speichers (14) abgelegt sind, anzeigen.
  3. Vorrichtung nach Anspruch 1 oder 2, wobei auf einem untersten Niveau innerhalb der hierarchischen Beziehung ein Statusbit mit unterstem Niveau eine Mehrzahl von Datenworten betrifft, die innerhalb des Speichers (14) abgelegt sind.
  4. Vorrichtung nach einem der Ansprüche 1, 2 oder 3, wobei der Speicher ein Cachespeicher (14) ist.
  5. Vorrichtung nach Anspruch 4, wobei der Cachespeicher (14) eine Mehrzahl von Cachespeicherzeilen aufweist, wobei jede Cachespeicherzeile eine Mehrzahl von Datenworten speichert, und wobei ein Statusbit des untersten Niveaus alle Datenworte innerhalb einer Cachespeicherzeile des Cachespeichers betrifft.
  6. Vorrichtung nach einem der vorherigen Ansprüche, wobei der Statusbitspeicher (26, 28, 40) einen RAM-Speicher (26, 28) beinhaltet, der Statusbitworte (20) speichert, die aus einer Mehrzahl von Statusbits gebildet werden.
  7. Vorrichtung nach Anspruch 6, wobei auf die Statusbits (18) innerhalb der Statusbitworte (20) zugegriffen wird und diese als Teil des Statusbitwortes manipuliert werden.
  8. Vorrichtung nach Anspruch 7, wobei ein Statusbit (18) durch eine Lese-Modifizieren-Schreiboperation eines Statuswortes (20) auf den RAM-Speicher (26, 38) manipuliert wird.
  9. Vorrichtung nach einem der vorherigen Ansprüche, wobei der Statusbitspeicher zumindest ein höchstes Niveau innerhalb der hierarchischen Beziehung beinhaltet, das zumindest einen Registerbitschaltkreis (28, 42) aufweist, der betreibbar ist, um ein Statusbit zu speichern.
  10. Vorrichtung nach Anspruch 9, wobei auf ein Statusbit, das innerhalb eines Registerbits abgelegt ist, individuell zugegriffen werden kann und dieses individuell manipuliert werden kann.
  11. Vorrichtung nach einem der vorherigen Ansprüche, wobei ein höchstes Niveau innerhalb der hierarchischen Beziehung ein einzelnes Statusbit aufweist.
  12. Vorrichtung nach einem der Ansprüche 4 bis 11, wobei der Statusbitspeicher derart betreibbar ist, daß eine globale Veränderung in dem Status von allen Datenworten innerhalb des Cachespeichers in einem einzelnem Verarbeitungszyklus durch eine Veränderung der Statusbits des höchsten Niveaus innerhalb der hierarchischen Beziehung zur Verfügung gestellt werden kann.
  13. Vorrichtung nach Anspruch 4, wobei eine globale Veränderung in dem Status von allen Datenworten innerhalb des Cachespeichers durchgeführt wird in Antwort auf eines der folgenden Ereignisse: (i) ein Cachespeicherlöschbetrieb, (ii) eine Veränderung in der Konfiguration einer Speichermanagementeinheit, die den Zugriff zu den Datenworten steuert, und (iii) eine Kontextschaltung eines Betriebssystems, das die Softwareoperationen auf der Vorrichtung steuert.
  14. Vorrichtung nach Anspruch 4, wobei die Datenworte in dem Cachespeicher abgelegt sind unter Verwendung einer Cachespeicherfülloperation, die während mehrerer Verarbeitungszyklen andauert, und wobei der Statusbitspeicher derart betreibbar ist, daß er die Statusbits modifiziert, die die Datenworte, die in dem Cachespeicher während der Mehrzahl von Verarbeitungszyklen abgelegt werden, betrifft.
  15. Vorrichtung nach einem der vorherigen Ansprüche, wobei die hierarchische Beziehung drei oder mehr Ebenen tief ist.
  16. Vorrichtung nach einem der vorherigen Ansprüche, wobei verschiedene Ebenen bzw. verschiedene Niveaus innerhalb der hierarchischen Beziehung unterschiedliche Statusbits ablegen.
  17. Verfahren zur Verarbeitung von Daten, wobei das Verfahren die Schritte aufweist: Speichern einer Mehrzahl von Datenworten innerhalb eines Speichers (14), wobei jedes Datenwort mit zumindest einem Statusbit (18), das Information betreffend einen Status des Datenwortes bereitstellt, verknüpft ist, Speichern der Statusbits innerhalb einer hierarchischen Beziehung, so daß ein kombinierter Status, der eine Mehrzahl von Statusbits der ersten Ebene auf einer ersten Ebene innerhalb der hierarchischen Beziehung betrifft, durch ein Statusbit (22) der zweiten Ebene auf einer zweiten Ebene innerhalb der hierarchischen Beziehung angezeigt wird, wobei die zweite Ebene höher in der hierarchischen Beziehung als die erste Ebene ist, Bestimmen eines Status eines Datenwortes innerhalb des Speichers durch Untersuchen der Statusbits, beginnend bei der obersten Ebene innerhalb der hierarchischen Beziehung und nach unten durch die hierarchische Beziehung arbeitend, bis ein Statusbit erreicht ist, das den Status des Datenwortes unabhängig von irgendwelchen Statusbits, die in der hierarchischen Beziehung tiefer stehen, anzeigt, und gekennzeichnet durch den Schritt des Anzeigens einer globalen Veränderung in dem Status von allen Datenworten, die innerhalb des Speichers abgelegt sind, durch Modifizieren nur derjenigen Statusbits innerhalb einer höchsten Ebene der hierarchischen Beziehung.
DE60003426T 1999-06-08 2000-02-04 Statusbits für cachespeicher Expired - Lifetime DE60003426T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9913348A GB2350910A (en) 1999-06-08 1999-06-08 Status bits for cache memory
GB9913348 1999-06-08
PCT/GB2000/000335 WO2000075785A1 (en) 1999-06-08 2000-02-04 Status bits for cache memory

Publications (2)

Publication Number Publication Date
DE60003426D1 DE60003426D1 (de) 2003-07-24
DE60003426T2 true DE60003426T2 (de) 2004-05-19

Family

ID=10854970

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60003426T Expired - Lifetime DE60003426T2 (de) 1999-06-08 2000-02-04 Statusbits für cachespeicher

Country Status (12)

Country Link
US (1) US6272033B1 (de)
EP (1) EP1190325B1 (de)
JP (1) JP2003501744A (de)
KR (1) KR100606873B1 (de)
CN (1) CN1145887C (de)
DE (1) DE60003426T2 (de)
GB (1) GB2350910A (de)
IL (2) IL145651A0 (de)
MY (1) MY120377A (de)
RU (1) RU2237278C2 (de)
TW (1) TW507124B (de)
WO (1) WO2000075785A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2369694B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Efficient memory modification tracking
GB2369690B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Enhanced protection for memory modification tracking
GB2369691B (en) * 2000-11-29 2003-06-04 Sun Microsystems Inc Control logic for memory modification tracking
US6965970B2 (en) * 2001-09-27 2005-11-15 Intel Corporation List based method and apparatus for selective and rapid cache flushes
JP4434534B2 (ja) * 2001-09-27 2010-03-17 株式会社東芝 プロセッサ・システム
US7412433B2 (en) * 2002-11-19 2008-08-12 International Business Machines Corporation Hierarchical storage management using dynamic tables of contents and sets of tables of contents
US20040199723A1 (en) * 2003-04-03 2004-10-07 Shelor Charles F. Low-power cache and method for operating same
US7674671B2 (en) * 2004-12-13 2010-03-09 Optomec Design Company Aerodynamic jetting of aerosolized fluids for fabrication of passive structures
CN101021858A (zh) * 2007-01-29 2007-08-22 华为技术有限公司 一种数据存储方法及装置及数据查找、添加、删除方法
US7685181B2 (en) * 2007-02-26 2010-03-23 International Business Machines Corporation Method and system for utilizing a hierarchical bitmap structure to provide a fast and reliable mechanism to represent large deleted data sets in relational databases
JP2008234074A (ja) * 2007-03-16 2008-10-02 Fujitsu Ltd キャッシュ装置
US8347029B2 (en) * 2007-12-28 2013-01-01 Intel Corporation Systems and methods for fast state modification of at least a portion of non-volatile memory
US20090300293A1 (en) * 2008-05-30 2009-12-03 Advanced Micro Devices, Inc. Dynamically Partitionable Cache
CN102571569B (zh) * 2011-12-28 2015-04-01 方正国际软件有限公司 一种报文预知方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4426682A (en) * 1981-05-22 1984-01-17 Harris Corporation Fast cache flush mechanism
JPH0754484B2 (ja) 1988-06-17 1995-06-07 株式会社日立製作所 複数のプロセッサを有する計算機システムの記憶制御装置
US5539894A (en) * 1993-04-20 1996-07-23 Sun Microsystems, Inc. Method and apparatus for optimizing a sector cache tag, block and sub-block structure base on main memory size
US5568416A (en) * 1994-03-24 1996-10-22 Kawasaki Steel Corporation Associative memory
DE19516949A1 (de) * 1994-05-11 1996-02-15 Gmd Gmbh Speichervorrichtung zum Speichern von Daten
US6046923A (en) * 1999-01-13 2000-04-04 Lucent Technologies Inc. Content-addressable memory architecture with column muxing

Also Published As

Publication number Publication date
RU2237278C2 (ru) 2004-09-27
KR100606873B1 (ko) 2006-07-31
KR20020010922A (ko) 2002-02-06
US6272033B1 (en) 2001-08-07
MY120377A (en) 2005-10-31
CN1145887C (zh) 2004-04-14
IL145651A0 (en) 2002-06-30
DE60003426D1 (de) 2003-07-24
EP1190325A1 (de) 2002-03-27
IL145651A (en) 2006-10-05
WO2000075785A1 (en) 2000-12-14
JP2003501744A (ja) 2003-01-14
GB9913348D0 (en) 1999-08-11
EP1190325B1 (de) 2003-06-18
CN1355901A (zh) 2002-06-26
TW507124B (en) 2002-10-21
GB2350910A (en) 2000-12-13

Similar Documents

Publication Publication Date Title
DE60003426T2 (de) Statusbits für cachespeicher
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE69432314T2 (de) Cachespeicher mit aufgeteiltem pegel
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE69732938T2 (de) Hybrides Speicherzugangsprotokoll in einem Datenverarbeitungssystem mit verteiltem, gemeinsamem Speicher
DE102007052853B4 (de) Zeilentauschschema zur Verringerung von Rückinvalidierungen in einem Snoopfilter
DE69828813T2 (de) Mehrdimensionale struktur eines cachekohärenzverzeichnisses
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE102008048627A1 (de) Zuteilen von Platz in dedizierten Cache-Wegen
DE2310631C3 (de) Speicherhierarchie für ein Datenverarbeitungssystem
DE10002120A1 (de) Logikstruktur eines Adressumsetzpuffers
DE10006430B4 (de) Verfahren zur Aufrechterhaltung einer Kohärenz für ein Multi-Prozessor-System
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE69930983T2 (de) Pseudo-genaue I-Cache-Speichereinschliessbarkeit für vertikale Cache-Speicher
DE60204676T2 (de) Verfahren und Vorrichtung zum Unterstützen mehrerer Cache-Line-Invalidierungen pro Zyklus
DE69130626T2 (de) Verfahren zur Verwaltung einer Cache-Speicheranordnung
DE69724533T2 (de) Durchschreiboperation mit Stufenumgehung in einem mehrstufigen Speicher eines Rechnersystems
EP1076856B1 (de) Cache-speicher für zweidimensionale datenfelder
DE102007055138B4 (de) System zum Zugreifen auf einen Einzelport-Mehrwege-Cache
DE60029270T2 (de) Dynamische Rekonfiguration des Cache-Speichers eines Mikrokontrollers
DE112016007298T5 (de) Informationsverarbeitungsgerät
DE2750126B2 (de)
DE10249433A1 (de) Präemptive Räumung veralteter Einträge in einem Computer-Cache durch die Verwendung von Alters-Bits
DE69637329T2 (de) Speichermanagementsystem und verfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition