DE602004007532T2 - Integrierte schaltung und verfahren zum cache-umabbilden - Google Patents

Integrierte schaltung und verfahren zum cache-umabbilden Download PDF

Info

Publication number
DE602004007532T2
DE602004007532T2 DE602004007532T DE602004007532T DE602004007532T2 DE 602004007532 T2 DE602004007532 T2 DE 602004007532T2 DE 602004007532 T DE602004007532 T DE 602004007532T DE 602004007532 T DE602004007532 T DE 602004007532T DE 602004007532 T2 DE602004007532 T2 DE 602004007532T2
Authority
DE
Germany
Prior art keywords
cache
memory
remapping
modules
bank
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.)
Active
Application number
DE602004007532T
Other languages
English (en)
Other versions
DE602004007532D1 (de
Inventor
Adrianus J. Bink
Paul Stravers
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.)
NXP BV
Original Assignee
NXP BV
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 NXP BV filed Critical NXP BV
Publication of DE602004007532D1 publication Critical patent/DE602004007532D1/de
Application granted granted Critical
Publication of DE602004007532T2 publication Critical patent/DE602004007532T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft eine integrierte Schaltung und ein Verfahren zur Neuzuordnung von Cache.
  • HINTERGRUND DER ERFINDUNG
  • Der wachsende Bedarf nach Speicherbandbreite in aktuellen Hochleistungsprozessoren mit sehr hoher Integration wird durch die bestehende Speichertechnologie nicht befriedigt. In „Fault-Tolerant Interleaved Memory Systems with Two-Level Redundancy" [Fehlertolerantes verzahntes Speichersystem mit Redundanz auf zwei Ebenen], von Lu u. a. in: IEEE Transaction an Computers, Band 46, Nr. 9, September 1997, wird durch Prozessoren auf verzahnte Weise auf verschiedene Speicherbänke oder Speichermodule eines Hauptspeichers zugegriffen, um einen Speicher mit hoher Bandbreite zu erzielen. Wenn jedoch eine Mehrzahl von Speichermodulen verwendet wird, könnten einige dieser Module fehlerhaft sein. Um mit diesen fehlerhaften Modulen zurechtzukommen, haben Lu u. a. vor, einen Speicher zu verwenden, der eine Mehrzahl von Modulen enthält, sowie einige Ersatzmodule in dem Speicher bereitzustellen. Diese Ersatzmodule können zur gleichen Bank gehören oder allgemeine Ersatzmodule bilden. Wenn ein fehlerhaftes Modul auftritt, kann die Speicherverwaltung einen Austausch dieses fehlerhaften Moduls durch eines der Ersatzmodule auslösen. Eine Modulzuordnungstabelle wird bereitgestellt, um ein Ersatzmodul auszuwählen, das ein fehlerhaftes ersetzt, und eine Bankzuordnungstabelle wird bereitgestellt, um eine Ersatzbank auszuwählen, die eine fehlerhafte Bank ersetzt. Trotzdem betreffen die Lehren von Lu u. a. die Datenübertragung zwischen Prozessoren und Hauptspeicher mit redundanten Speichermodulen ohne Caches zwischen den Prozessoren und dem Hauptspeicher, was im Hinblick auf Wartezeit und Bandbreite nicht vorteilhaft zu sein scheint.
  • Im Unterschied zu dem oben genannten wurde die umfassende Verwendung von Ein-Chip-Cache-Speichern unentbehrlich, um den Bedarf an Speicherbandbreite des Hauptprozessors zu unterstützen. Die Fortschritte in der Halbleitertechnologie und ständige Verkleinerung von Kenngrößen erzeugen zusätzlichen Platz für weitere Funktionen auf einzelnem Chip. Die beliebteste Art, diesen zusätzlichen Platz zu verwenden, ist Integrieren eines größeren Caches, so dass ein Mikroprozessor höhere Leistung erreichen kann. Eine Zunahme der Schaltungsdichte ist jedoch eng mit einer Erhöhung der Wahrscheinlichkeit eines Fehlers verbunden. Caches bilden eine redundante Struktur, die eingesetzt wird, um die Leistung des Hauptprozessors zu steigern. Ein Verfahren, um Fehler im Cache zulassen, ist Bereitstellen von Ersatzcacheblöcken. Der fehlerhafte Block wird durch einen Rekonfigurationsmechanismus auf Ersatzblock umgeschaltet oder indem ein kleiner vollassoziativer Cache bereitgestellt wird, um den fehlerhaften Block dynamisch zu ersetzen.
  • Da die Bereitstellung von Caches mit zusätzlichen oder redundanten Speichermodulen teuer ist, werden neue Techniken gebraucht, um die Verminderung der Cacheleistung abzumildern, ohne dass Ersatzcacheblöcke benötigt werden. Daher spielen statt der Verwendung ausdrücklicher Ersatzblöcke die physisch oder logisch benachbarten Blöcke die Rolle von Ersatzblöcken. Dong-Hyun u.a., "Re-evaluation and Comparison of Fault Tolerant Cache Schemes" [Neubewertung und Vergleich fehlertoleranter Cachemodelle], University of Wisconsin Madison ECE Dept. 763, Seminarprojekt, 2002 sowie Shirvani u.a., „PADded Cache: A New Fault-Tolerance Technique for Cache Memories" [Cache mit PAD. Ein neues Fehlertoleranzverfahren für Cache-Speicher], Beitrag zum 17. IEEE VLSI Test Symposium, 1999, beschreiben einen Programmierbaren Adressendecoder PAD für ein Cache. Ein PAD ist ein Decoder, der programmierbare Zuordnungsfunktion hat. Wie bereits erwähnt, haben Caches eine immanente Redundanz, da der Zweck von Caches darin besteht, Leistung zu steigern. Viele Verarbeitungsstrukturen können ohne Cache arbeiten, jedoch um den Preis von verminderter Leistung. Daher ist die Einführung von zusätzlicher Redundanz, wie von Ersatzspeicherblöcken, ineffizient.
  • Wegen der räumlichen und zeitlichen Lokalität von Speicherreferenzen, werden während des Betriebs normalerweise nicht alle Reihen in einem Cache gleichzeitig verwendet. Dementsprechend muss es – aktuell nicht verwendete – Cachereihen geben, die die Ersatzblöcke ersetzen können. Wenn eine Speicherreferenz auftritt, ordnet ein Decoder diese dem geeigneten Block zu. Sobald ein fehlerhafter Block erkannt wird, leitet ein PAD den Zugriff auf diesen Block automatisch auf einen gesunden Block im selben Primärcache um. Wenn ein Cache mit einem PAD n Caches hat und ein Block fehlerhaft ist, arbeitet der Cache so, als ob er n – 1 Cacheblöcke hätte. Der PAD rekonfiguriert die Zuordnungsfunktion, so dass ein „gesunder" Block als Ersatzblock fungiert. Das Verfahren, um einen geeigneten fehlerfreien Block zu finden, ist vorher festgelegt und in Hardware umgesetzt.
  • Es gibt drei verschiedene Arten, auf denen das Zuordnen ausführbar ist. In einem direkt abgebildeten Cache, der die einfachste Art ist, den Cache dem Systemspeicher zuzuweisen, ist festgelegt, wie viele Cacheblöcke vorhanden sind und der Systemspeicher wird in die selbe Anzahl von Teilen unterteilt. Dann wird jeder Teil durch einen Cacheblock verwendet. Der vollassoziative Cache ermöglicht es, einen Cache so auszuführen, dass jeder Block die Inhalte jedes Speicherplatzes speichern kann, anstatt Cacheblöcke bestimmten Speicherplätzen fest zuzuweisen. Das dritte Modell zu Cachezuordnung ist der n-fach mengenassoziative Cache. Dieses Modell bildet einen Kompromiss zwischen der direkt abgebildeten und der vollassoziativen Ausführung. Der Cache wird in Sätze unterteilt, wobei jeder Satz N Cacheblöcke enthält, d.h. N Pfade. Dann wird jeder Speicheradresse einem Satz zugewiesen und kann in jedem dieser N Plätze innerhalb des Satzes, dem sie zugewiesen ist, gepuffert werden. Anders ausgedrückt ist der Cache innerhalb jedes Satzes assoziativ. Dementsprechend gibt es „N" mögliche Stellen, an denen ein bestimmter Speicherplatz im Cache sein kann. Das Zuordnen ist normalerweise in einem Tag RAM-Adressendecoder integriert, der den Bereich in einem L2-Cache bildet, der kennzeichnet, welche Daten aus dem Hauptspeicher aktuell in jedem Cacheblock gespeichert sind. Die im Tag RAM gespeicherten Werte bestimmen, ob ein Nachschlag im Cache zu einem Treffer oder einem Fehlschlag führt.
  • Zum Beispiel kann jeder Pfad eines 4-fach assoziativen Caches gesonderte PADs haben. Daher werden Cacheadressen für fehlerhafte Blöcke fehlerlosen Blöcken in diesem Pfad neu zugeordnet. Alle Adresse können weiter gepuffert werden, aber Konfliktfehler nehmen zu. Da zumindest ein Adresseninformationsbit in Folge der Neuzuordnung verloren geht, wird für direkt abgebildete Caches, zumindest den Kennzeichnungsbits zumindest ein Bit angefügt, um in der Lage zu sein, die Adressen zu unterscheiden, die demselben Block zugeordnet sein können. Die Neuzuordnung von Cache erfolgt pro Block, wobei ein fehlerhafter Block einem „gesunden" Block zugeordnet wird, dessen Adresse sich von der Adresse des fehlerhaften Blocks um nur ein Bit unterscheidet. Üblicherweise wird für mengenassoziative Caches ein gesonderter Speicherarray für jeden Pfad bereitgestellt, so dass jedem Array ein Decoder assoziiert werden kann. Entsprechend wird die Neuzuordnung nur in einem Array oder Pfad ausgeführt und beeinflusst nicht die Zuordnung der anderen Arrays.
  • Die US 4,905,141 , auf die sich der Oberbegriff von Anspruch 1 bezieht, beschreibt einen Partitions-Cache-Speicher mit einer Partitions-Look-Aside-Tabelle zur Kennzeichnung früherer Partitionierungsvorgänge. Hier ist eine integrierte Schaltung mit zumindest einer Prozessoreinheit und einem Cache-Speicher mit einer Mehrzahl von Speichermodulen zum Puffer von Daten dargestellt. Ferner wird ein Neuzuordnungsmittel zum Neuzuordnen einiger der Speichermodule innerhalb der Mehrzahl von Speichermodulen bereitgestellt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Eine Aufgabe der Erfindung ist, einen Kompromiss zwischen Leistung und Ausbeute für fehlerhafte Caches zu ermöglichen.
  • Diese Aufgabe wird durch eine integrierte Schaltung nach Anspruch 1 und ein Verfahren der Cache-Neuzuordnung nach Anspruch 8 gelöst.
  • Daher wird eine integrierte Schaltung mit mindestens einer Prozessoreinheit, einem Cache-Speicher mit einer Mehrzahl von Speicherbänken und Speicherpfaden und einem Neuzuordnungsmittel zum Ausführen einer unbegrenzten Neuzuordnung von Speicherbänken und Speicherpfaden innerhalb der Mehrzahl von Speicherbänken und Speicherpfaden bereitgestellt, wobei die fehlerhaften Speicherbänke und Speicherpfade gleichmäßig auf die Speicherbänke und Speicherpfade verteilt sind.
  • Entsprechend können fehlerhafte Module ohne Einschränkung neu zugeordnet werden, um die Verwendung von Speichermodulen zu optimieren, indem eine gleichmäßige Verteilung bereitgestellt wird. Gemäß einem Aspekt der Erfindung wird der Cache-Speicher L2_BANK als ein mengenassoziativer Speicher umgesetzt, was zu einem schnelleren Cache führt.
  • Gemäß einem weiteren Aspekt der Erfindung führt das Neuzuordnungsmittel die Neuzuordnung auf der Grundlage einer programmierbaren Permutationsfunktion aus, was eine Umsetzung der gleichmäßigen Verteilung fehlerhafter Teile von Caches ist.
  • Gemäß noch einem weiteren Aspekt der Erfindung führt das Neuzuordnungsmittel die Neuzuordnung auf der Grundlage einer Neuzuordnung durch Reduktion aus. Entsprechend werden weniger Elemente ausgegeben als eingegeben. Daher stellt Neuzuordnung durch Reduktion einen größeren Freiheitsgrad für Neuzuordnung fehlerhafter Module bereit.
  • Gemäß einem bevorzugten Aspekt der Erfindung ist eine Tag RAM-Einheit TagRAM mit dem Cache assoziiert und wird verwendet, um zu erkennen, welche Daten in dem Cache-Speicher L2_BANK gepuffert sind. Ferner ist das Neuzuordnungsmittel in Reihe mit der Tag RAM-Einheit TagRAM angeordnet. Eine solche Umsetzung ist billiger, da weniger Chip benötigt wird.
  • Gemäß einem weiteren bevorzugten Aspekt der Erfindung ist eine Tag RAM-Einheit Tag RAM mit dem Cache assoziiert und wird verwendet, um zu erkennen, welche Daten in dem Cache-Speicher L2_BANK gepuffert sind. Ferner ist das Neuzuordnungsmittel parallel zu der Tag RAM-Einheit TagRAM angeordnet. Diese Umsetzung ist schneller, da die Neuzuordnung parallel zu dem Tag RAM ausgeführt wird.
  • Die Erfindung betrifft auch ein Verfahren der Cache-Neuzuordnung in einer integrierten Schaltung mit mindestens einer Prozessoreinheit (TM) und einem Cache-Speicher L2_BANK mit einer Mehrzahl von Speichermodulen zum Puffer von Daten im Hauptspeicher MM. Eine unbegrenzte Neuzuordnung wird innerhalb der Mehrzahl von Speichermodule ausgeführt.
  • Die Erfindung beruht auf der Idee, die Ausbeute eines Caches durch Ausnutzung der Redundanz innerhalb eines Caches zu verbessern. In einem Cache sind ganze Speichermodule austauschbar, so dass fehlerhafte Module nicht mehr verwendet werden. Die verfügbaren funktionierenden Module können neu gemischt werden, so dass jede Speicherbank zumindest einen Pfad umfasst. Vorzugsweise wird das Neumischen so ausgeführt, dass die fehlerhaften Module gleichmäßig auf die Speicherbänke verteilt werden, wodurch die höchste (garantierte) Assoziativität und somit Leistung erzielt wird.
  • Die Erfindung wird nun ausführlich unter Bezugnahmen auf die Abbildung beschrieben.
  • KURZBESCHREIBUNG DER ZEICHNUNEN
  • Es zeigt:
  • 1 eine Struktur eines Gesamtsystems,
  • 2 Cache-Module vor und nach einem Neuzuordnungsvorgang,
  • 3 eine Anordnung einer Signalauswahlschaltung eines Caches gemäß einer ersten Ausführungsform,
  • 4 eine Anordnung einer Signalauswahlschaltung eines Caches gemäß einer zweiten Ausführungsform,
  • 5 eine Look-Up-Tabelle für eine Neuzuordnung gemäß 2 und
  • 6 eine Look-Up-Tabelle gemäß einer vierten Ausführungsform.
  • BEVORZUGTE AUSFÜHRUNGSFORMEN DER ERFINDUNG
  • 1 zeigt eine Struktur eines Gesamtsystems, in dem die erfindungsgemäßen Prinzipien umgesetzt werden können. Diese Struktur kann ein verschiedenartig geteiltes Speichersystem bilden, das 8 Prozessoreinheiten TM, einen MIPS-Prozessor MIPS, einen DDR-DRAM Controller DDR_ctrl und einen geteilten L2-Cache L2_bank mit 12 Mb enthält. Die L2_bank Chaches, die Prozessoreinheiten TM, der Controller DDR_ctrl sowie der MIPS-Prozessor sind miteinander über ein kohärentes Verbindungsnetz CIN verbunden, da auch einen Cache-Controller CC umfasst. Ein Netzschnittstellencontroller NIC wird bereitgestellt, um die Hochgeschwindigkeitsdatenübertragung mit anderen Teilen des gesamten Verarbeitungssystems abzuwickeln. Die Prozessoreinheit ist vorzugsweise ein Trimedia-Prozessor, der bei 400 MHz arbeitet.
  • Der L2-Cache ist ein 2nd-Level-Cache, d. h. ein Cache, der von mehreren Prozessoren geteilt wird, und wird vorzugsweise als eingebettete DRAM-Module umgesetzt. Seine Modellparameter können wie folgt sein: eine Kapazität von 12 MB, die Assoziativität ist 6-fach, die Anzahl der Sätze ist 4096, die Größe der Blöcke ist 512 Byte, die Auffüllgröße ist 1 Block, die gleichzeitigen Übertragungen basieren auf 8 Bänken, die Wortgröße einer Bank ist 64 Bits, das Kohärenzprotokoll ist MESI und die Tag-Größe ist 11 Bits. Dementsprechend ist der L2-Cache in 8 Bänke partitioniert und jede Bank kann unabhängig von den anderen Bänken eine Lese- oder Schreibanforderung bedienen. Jede Bank ist in sechs Pfade partitioniert; jeder Pfad hat eine Kapazität von 32k 64 Bit = 2 Mbit. Zu jedem Zeitpunkt kann nur ein Pfad in einer Bank aktiv sein.
  • Obwohl die obige Struktur unter Bezugnahme auf 1 sehr ausführlich beschrieben wurde, können Prinzipien der Erfindung auch in einer Struktur mit nur einem Prozessor und einem Cache umgesetzt werden.
  • Wie oben beschrieben, ist eine Neuzuordnung von Cache-Modulen wünschenswert, um die Leistung des Caches zu verbessern oder einen Kompromiss zwischen Leistung und Ausbeute zu erzielen, um ein funktionierende System zu erreichen. 2 zeigt Cache-Module L2_bank vor und nach einem Neuzuordnungsvorgang. Insbesondere sind die Cache-Module vor dem Neuzuordnen links dargestellt, wogegen die Cache-Module nach dem Neuzuordnen rechts dargestellt sind.
  • Zu Beginn und nach dem Entdecken der fehlerhaften Module müssen die Module neu zugeordnet werden. Diese Neuzuordnung wird aus Gründen der Leistung ausgeführt. Durch gleichmäßiges Verteilen der fehlerhaften Module/Pfade kann die höchste Assoziativität erreicht werden. Entsprechend stellt diese gleichmäßige Verteilung eine garantierte Assoziativität bereit, wodurch die Leistung gesteigert wird. Für den Fall, dass alle Module/Pfade einer Bank fehlerhaft sind und der Cache nicht überbrückt werden kann, ist es eine Frage der Fehlerfreiheit, eine Neuzuordnung so auszuführen, dass zumindest 1 Pfad pro Bank verfügbar ist, d.h. so dass ein direkt abgebildeter Cache erzielt wird.
  • 2 stellt dar, wie Module neu zugeordnet werden können, um eine gut ausbalancierte Verteilung der Bänke zu erreichen. Die schwarz ausgefüllten Felder stellen fehlerhafte Module dar. Es ist zu beachten, dass vor der Neuzuordnung Bank0 keine fehlerfreien Pfade hatte, wogegen sie nach der Neuzuordnung vier Pfade hat. Dies wird durch Neuzuordnen des Moduls in Bank7, Pfade0 und Pfad1, zu Bank0, Pfad3, Pfad5, des Moduls in Bank4 und Pfad5 zu Bank0, Pfad4, des Moduls von Bank2, Pfad5 zu Bank0, Pfad2 und des Moduls von Bank3, Pfad4 zu Bank1, Pfad3. Nach dem Neuzuordnen hat jede Bank4 funktionierende Pfade.
  • 3 zeigt die Signalauswahlschaltung für den L2-Cache gemäß einer ersten Ausführungsform. In 3 sind eine Tag RAM-Einheit, ein Neuzuordnungsmittel RM, zwei Verzeichnisse R und eine Mehrzahl von Vergleichseinrichtungen C in 3 dargestellt. Das Pipelineverzeichnis R empfängt die Adresse Ad als Eingabesignal, während ein Verzeichnis R ein Tag-Referenzsignal tag_ref als Ausgabe bereitstellt und das andere Verzeichnis ein Bankauswahlsignal bank_select und ein Wortauswahlsignal word_select als Ausgabesignal bereitstellt. Die Tag RAM-Einheit TagRAM empfängt die Adresse Ad als Eingabesignal und gibt die Signale Tag0, ..., Tag5 aus. Diese Signale und das Tag-Referenzsignal tag_ref sind Eingabesignale der jeweiligen Vergleichseinrichtungen C, die die Treffersignale Treffer0, ... Treffer5 ausgeben. Diese Treffersignale, das Bankauswahlsignal bank_select und das Wortauswahlsignal word_select werden im Neuzuordnungsmittel RM eingegeben, wo die Neuzuordnungsfunktion ausgeführt und die Eingabesignale zu Treffer'0, ..., Treffer'5, bank'select und word'select zugeordnet werden, die die neu zugeordnete Position der Cache-Module darstellen. Die Funktion und der Betrieb der Tag RAM-Einheit ist unter Fachleuten gut bekannt und wird daher nicht ausführlich beschrieben.
  • Das Signal zur Auswahl einen Bank bank_select wird verwendet, um ein der acht Bänke Bank0 bis Bank7 auszuwählen. Das Treffersignal Treffer0, ..., Treffer5 kennzeichnet einen Pfad in der durch das Bankauswahlsignal bank_select ausgewählten Bank. Das Wortauswahlsignal word_select wird verwendet, um auf ein Wort im (32k 64)-Pfad zuzugreifen. Das Neuzuordnungsmittel RM ist hinter den Treffer- und Bankauswahlsignalen angeordnet, d.h. in Reihe mit der Tag RAM-Einheit TagRAM. Das Neuzuordnungsmittel RM setzt vorzugsweise eine Modulpermutationsfunktion um, was dazu führt, das bank_select' und Treffer0', ..., Treffer5' neu zugeordnete Module auswählen. Die Permutationsfunktion ist ein Verfahren zum Erzeugen einer alternativen Anordnung bestimmter Daten und kann zum Beispiel mit einer Verzeichnisdatei von 48 (6·8) Verzeichnissen von je 9 Bits (mit 6 gewählten Pfaden plus 3 (codierte) gewählte Banken) ausgeführt werden. Die Permutation wird ausgeführt, ohne die Anzahl der Eingaben zu reduzieren. Zusätzlich können auch die Wortauswahlsignale neu zugeordnet werden. Dies kann wünschenswert sein, wenn eine Pfad-Bank-Kombination selbst aus mehrfachen Speichermodulen besteht. Alternativ kann die Neuzuordnung auf der Grundlage einer Neuzuordnung durch Reduktion ausgeführt werden, d. h. weniger Ausgabesignale als Eingabesignale.
  • Die Verzeichnisse R und das Verzeichnis in der Endstufe der Speicher sind für den Arbeitsvorgang nicht entscheidend und sind lediglich eine Frage von Parallelverarbeitung.
  • 4 zeigt eine alternative Umsetzung von Neuzuordnungsmodulen gemäß einer zweiten Ausführungsform. Die Auswahlschaltung basiert auf der Auswahlschaltung gemäß der ersten Ausführungsform, das Neuzuordnungsmittel RM ist jedoch durch eine Map RAM-Einheit MapRAM ersetzt. Das MapRAM kann als normales RAM umgesetzt werden, dessen Adresse eine Banknummer ist und das 9 Bits für jeden der 6 Pfade ausgibt. Diese Bits bestehen aus dem neu zugeordneten Pfad und der neu zugeordneten Bank (was zusammen ein neu zugeordnetes Modul ansteuert). Während gemäß der ersten Ausführungsform das Neuzuordnungsmittel RM in Reihe mit der Tag RAM- Einheit umgesetzt ist, ist die Map RAM-Einheit parallel zu der Tag RAM-Einheit umgesetzt. Die Map RAM-Einheit empfängt die Adresse Ad als Eingabesignal und gibt ein Zuordnungssignal Map0, ..., Map5 aus. Entsprechend wird die Neuzuordnung für jeden Pfad parallel zu dem Tag-Nachschlag, d. h. der Tag RAM-Einheit nachgeschlagen. Die Zuordnungssignale Map0, ..., Map5 sowie die Treffersignale Treffer0, ..., Treffer5 von den Vergleichseinrichtungen C bilden Ausgabesignale in jeweils sechs UND-Gatter G. Die Ausgaben dieser Gatter G werden in ein ODER-Gatter H eingespeist. Die Ausgabe des Gatters H bildet das Pfadauswahlsignal way_select und das Bankauswahlsignal bank_select. Ferner wird die Adresse in ein Verzeichnis R eingegeben, das die Wortauswahl ausgibt. Der Pfad, der einen Treffer findet, wählt dann aus, welche der 6 vorab ausgewählten Neuzuordnungen Map0, ..., Map5 auszuführen ist.
  • Die Verzeichnisse R in der zweiten Ausführungsform sind nicht entscheidend. Die UND-Gatter und ODER-Gatter treten 6·9 bzw. 9 Mal auf. Diese Funktion kann jedoch auch zum Beispiel unter Verwendung eines Demultiplexers umgesetzt werden.
  • Um die Leistung der Auswahlschaltung gemäß der ersten und zweiten Ausführungsform weiter zu steigern, sollten die Cache-Treffer und die Cache-Blockersetzungen keine fehlerhaften Module vorgeben. Um dies zu vermeiden, wird vorzugsweise eine Look-Up-Tabelle in der Tag RAM-Einheit bereitgestellt; diese kann aber auch in der Neuzuordnungseinheit RM oder in der Map RAM-Einheit umgesetzt werden. Die Idee hinter der Look-Up-Tabelle ist es, in der Lage zu sein, Treffer in allen Blöcken eines fehlerhaften Moduls zu vermeiden und außerdem ein solches Modul als Ersetzungsziel auszuschließen. Wenn das Gültig-Bit und das Sperrbit in einem Cache bereits umgesetzt sind, ist die Umsetzung von 5 im Grunde kostenlos.
  • 5 zeigt eine Darstellung einer solchen Tabelle für eine Neuzuordnung gemäß 2. Fehlerhafte Module werden durch Setzen der Sperrbits sowie der Ungültig-Bits als nicht verwendbar gekennzeichnet.
  • Gemäß einer dritten Ausführungsform, die auf der ersten Ausführungsform basiert, d.h. dem Anordnen der Tag RAM-Einheit und des Neuzuordnungsmittels RM in Reihe, kann die Neuzuordnung auch mit einer höheren Auflösung ausgeführt werden, z. B. auf Blockebene anstatt auf Modulebene gemäß der ersten und zweiten Ausführungsform. Dies führt zu einer zusätzlichen Schaltung, die die Adressen abwandelt, die das Tag RAM indiziert. Eine bevorzugte Zuordnung wird durch Neuzuordnung bestimmter Adressen zum selben Index ausgeführt, d.h. durch Zuordnung von Block0 und Block1 zum selben Index/Block durch Ignorieren des letzten signifikanten Adressenbits. Wenn mehrere Adressen auf denselben Index verweisen, wird das Tag RAM durch die fehlende Adresseninformation ergänzt. Ein ausgeweiteter Tag-Vergleich kann verwendet werden, um die Uneindeutigkeit aufzulösen. Dieser hat den Vorteil, dass er leicht in den Adressendecoder integriert werden kann. Wenn das Problem der Uneindeutigkeit (mit breiteren Tags und Tag-Vergleich) vermieden werden soll, dann muss die Adressenzuordnung eine Permutation sein, die ihrerseits auf Blockebene unmöglich ist. Außerdem wird die Adressenneuzuordnung im Falle eines Makros für festes RAM mit integriertem Adressendecoder weniger attraktiv.
  • Gemäß einer vierten Ausführungsform, die auf der zweiten Ausführungsform basiert, kann die Modulneuzuordnung durch Hinzufügen einer Zuordnung pro Block auf Neuzuordnung auf Blockebene ausgeweitet werden. Das Map RAM gemäß der zweiten Ausführungsform wird dann auf einen Eintrag pro Block ausgeweitet. Demensprechend können das Map RAM und das Tag Ram gemäß der zweiten Ausführungsform kombiniert werden.
  • In 6 ist eine Look-Up-Tabelle gezeigt, die eine Look-Up-Tabelle eines kombinierten Map RAMs und Tag RAMs gemäß der vierten Ausführungsform darstellt. Zusätzlich zur Look-Up-Tabelle gemäß 5 umfasst die Tabelle gemäß 6 für jeden Pfad eine zusätzliche Spalte, d. h. die Zuordnungsspalte. Diese Spalte enthält die Neuzuordnungsdaten, z. B. den Block bei (Index0, Bank0, Pfad2) wird neu zugeordnet zu (Index0, Bank2, Pfad5), da die Werte 2 und 5 in das entsprechende Zuordnungsfeld eingetragen sind. Um eine schnelle und preiswerte Umsetzung zu erreichen, wird ein Block vorzugsweise nicht an einem anderen Index neu zugeordnet, sondern nur einem neuen Pfad und einer neuen Bank. Die Neuzuordnung kann jedoch auch über mehrere Indizes ausgeführt werden.
  • Das Zuordnungsmittel kann eine programmierbare Permutationseinheit umfassen, die die Modul-zu-Modul-Zuordnung indiziert, eine Schaltung, die diese Permutation verwendet, um durch Neuberechnung der Modulwahl Module neu zu mischen, und/oder ein Mechanismus, um (nach der Neuzuordnung) die mit einem fehlerhaften Modul assoziierten Tag RAMs dauerhaft ungültig zu machen.
  • Der Unterschied zwischen dem erfindungsgemäßen Neuzuordnungsmodell und Neuzuordnungsmodellen, die Hauptspeicher mit redundanten Modulen zum Ersetzen fehlerhafter Module betreffen, besteht darin, dass es in einem Cache keine wirklich "redundanten" Module gibt, da jedes Modul zu der Assoziativität und damit zur Leistung beiträgt. Der Vorteil ist der, dass keine Ersatzmodule benötigt werden, d.h. Module, die nicht verwendet werden, es sei denn sie ersetzen fehlerhafte Module.
  • Aus Gründen der Leistung ist es wünschenswert, die Assoziativität des Caches zu maximieren. Wenn es N fehlerhafte Module in M Sätzen gibt, haben wir daher N/M fehlerhafte Module pro Set. Entsprechend sollten die fehlerhaften Module so verteilt werden, dass der Wert von N/M erzielt wird und die fehlerhaften Module gleichmäßig verteilt sind.
  • Obwohl die Prinzipien der Erfindung mit einer Umsetzung eines L2 (2nd-Level) Caches beschrieben wurden, können die oben genannten Prinzipien auch für alle anderen Caches, wie z. B. L1 (1st-Level)-Caches umgesetzt werden. Diese Lösung ist jedoch möglicherweise nicht attraktiv für L1-Caches, da ein unerwünschter kritischer Weg erhöht werden kann und da L1-Caches normalerweise nicht sehr groß sind.
  • Es ist zu beachten, dass die oben genannten Ausführungsformen die Erfindung eher veranschaulichen als einschränken, und dass Fachleute viele alternative Ausführungsformen entwerfen können, ohne den Geltungsbereich der beigefügten Ansprüche zu verlassen. In den Ansprüchen sind Bezugszeichen in Klammern nicht so zu verstehen, dass sie den Anspruch einschränken. Das Wort „umfassen" schließt nicht das Vorhandensein anderer Elemente oder Schritte, als der, die in einem Anspruch aufgeführt sind, aus. Das Wort „ein" oder „eine" vor einem Element schließt nicht das Vorhandensein einer Mehrzahl solcher Elemente aus. In dem Vorrichtungsanspruch, der mehrere Mittel aufzählt, können mehrere dieser Mittel durch ein und dasselbe Hardwareteil ausgeführt werden. Die bloße Tatsache, dass bestimmte Maßnahmen in zueinander unterschiedlichen abhängigen Ansprüchen genannt werden, bedeutet nicht, dass eine Kombination dieser Maßnahmen nicht vorteilhaft verwendet werden kann.
  • Ferner sind Bezugszeichen in den Ansprüchen nicht so zu verstehen, dass sie den Geltungsbereich der Ansprüche einschränken.

Claims (8)

  1. Integrierte Schaltung, umfassend: – mindestens eine Prozessoreinheit (TM), – einen Cache-Speicher (L2_bank) mit Speichermodulen angeordnet in einer Mehrzahl von Speicherbänken (bank0–bank7) und Speicherpfaden (way0–way5) zum Puffer von Daten, und – ein Neuzuordnungsmittel (RM, MapRAM) zum Ausführen einer Neuzuordnung von Speichermodulen, dadurch gekennzeichnet, dass das Neuzuordnungsmittel (RM, MapRAM) dazu angepasst ist, eine unbegrenzte Neuzuordnung von fehlerhaften Speichermodulen innerhalb der Mehrzahl von Speicherbänken und Speicherpfaden auszuführen, wobei die fehlerhaften Speichermodule gleichmäßig auf die Speicherbänke verteilt sind.
  2. Integrierte Schaltung nach Anspruch 1, wobei der Cache-Speicher (L2_BANK) ein mengenassoziativer Cache ist.
  3. Integrierte Schaltung nach Anspruch 1 oder 2, wobei das Neuzuordnungsmittel (RM, MapRAM) dazu angepasst ist, die Neuzuordnung auf der Grundlage einer programmierbaren Permutationsfunktion auszuführen.
  4. Integrierte Schaltung nach Anspruch 1 oder 2, wobei das Neuzuordnungsmittel (RM, MapRAM) dazu angepasst ist, die Neuzuordnung auf der Grundlage einer Zuordnung durch Reduktion durchzuführen.
  5. Integrierte Schaltung nach Anspruch 1, ferner umfassend: – eine Tag-RAM-Einheit (TagRAM), die mit dem Cache assoziiert ist, um zu erkennen, welche Daten in dem Cache-Speicher (L2_BANK) gepuffert sind, und – wobei das Neuzuordnungsmittel mit der Tag-RAM-Einheit (TagRAM) in Reihe angeordnet ist.
  6. Integrierte Schaltung nach Anspruch 1, ferner umfassend: – eine Tag-RAM-Einheit (TagRAM), die mit dem Cache assoziiert ist, um zu erkennen, welche Daten in dem Cache-Speicher (L2_BANK) gepuffert sind, und – wobei das Neuzuordnungsmittel mit der Tag-RAM-Einheit (TagRAM) parallel angeordnet ist.
  7. Integrierte Schaltung nach Anspruch 5 oder 6, ferner umfassend: – eine Look-Up-Tabelle zum Kennzeichnen fehlerhafter Speichermodule.
  8. Verfahren der Cache-Neuzuordnung in einer integrierten Schaltung mit mindestens einer Prozessoreinheit (TM), einem Hauptspeicher zum Speichern von Daten und einem Cache-Speicher (L2_BANK) mit einer Mehrzahl von in Speicherbänken angeordneten Speichermodulen und Speicherpfaden zum Puffer von Daten, gekennzeichnet durch folgenden Schritt: – Ausführen einer unbegrenzten Neuzuordnung fehlerhafter Speichermodule innerhalb der Mehrzahl von Speicherbänken und Speicherpfaden, wobei die fehlerhaften Speichermodule gleichmäßig innerhalb der Mehrzahl von Speicherbänken verteilt sind.
DE602004007532T 2003-09-04 2004-08-17 Integrierte schaltung und verfahren zum cache-umabbilden Active DE602004007532T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP03103289 2003-09-04
EP03103289 2003-09-04
PCT/IB2004/051465 WO2005024843A1 (en) 2003-09-04 2004-08-17 Integrated circuit and a method of cache remapping

Publications (2)

Publication Number Publication Date
DE602004007532D1 DE602004007532D1 (de) 2007-08-23
DE602004007532T2 true DE602004007532T2 (de) 2008-03-20

Family

ID=34259251

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004007532T Active DE602004007532T2 (de) 2003-09-04 2004-08-17 Integrierte schaltung und verfahren zum cache-umabbilden

Country Status (7)

Country Link
US (1) US7827372B2 (de)
EP (1) EP1665286B8 (de)
JP (1) JP2007504548A (de)
CN (1) CN1846278B (de)
AT (1) ATE366985T1 (de)
DE (1) DE602004007532T2 (de)
WO (1) WO2005024843A1 (de)

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386702B2 (en) * 2005-10-27 2013-02-26 Hewlett-Packard Development Company, L.P. Memory controller
US8612797B2 (en) * 2006-03-31 2013-12-17 Hewlett-Packard Development Company, L.P. Systems and methods of selectively managing errors in memory modules
US7809980B2 (en) * 2007-12-06 2010-10-05 Jehoda Refaeli Error detector in a cache memory using configurable way redundancy
US20090177919A1 (en) * 2008-01-04 2009-07-09 International Business Machines Corporation Dynamic redundancy for microprocessor components and circuits placed in nonoperational modes
US8266408B2 (en) * 2009-03-17 2012-09-11 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
US8433880B2 (en) 2009-03-17 2013-04-30 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
US9442846B2 (en) 2009-03-17 2016-09-13 Cisco Technology, Inc. High speed memory systems and methods for designing hierarchical memory systems
WO2013097105A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Efficient dynamic randomizing address remapping for pcm caching to improve endurance and anti-attack
US8767501B2 (en) 2012-07-17 2014-07-01 International Business Machines Corporation Self-reconfigurable address decoder for associative index extended caches
US9158667B2 (en) 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US8964496B2 (en) 2013-07-26 2015-02-24 Micron Technology, Inc. Apparatuses and methods for performing compare operations using sensing circuitry
US8971124B1 (en) 2013-08-08 2015-03-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9153305B2 (en) 2013-08-30 2015-10-06 Micron Technology, Inc. Independently addressable memory array address spaces
US9019785B2 (en) 2013-09-19 2015-04-28 Micron Technology, Inc. Data shifting via a number of isolation devices
US9449675B2 (en) 2013-10-31 2016-09-20 Micron Technology, Inc. Apparatuses and methods for identifying an extremum value stored in an array of memory cells
US9430191B2 (en) 2013-11-08 2016-08-30 Micron Technology, Inc. Division operations for memory
US9934856B2 (en) 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns in memory
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
US9704540B2 (en) 2014-06-05 2017-07-11 Micron Technology, Inc. Apparatuses and methods for parity determination using sensing circuitry
US10074407B2 (en) 2014-06-05 2018-09-11 Micron Technology, Inc. Apparatuses and methods for performing invert operations using sensing circuitry
US9779019B2 (en) 2014-06-05 2017-10-03 Micron Technology, Inc. Data storage layout
US9711206B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9496023B2 (en) 2014-06-05 2016-11-15 Micron Technology, Inc. Comparison operations on logical representations of values in memory
US9449674B2 (en) 2014-06-05 2016-09-20 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9711207B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9910787B2 (en) 2014-06-05 2018-03-06 Micron Technology, Inc. Virtual address table
US9830999B2 (en) 2014-06-05 2017-11-28 Micron Technology, Inc. Comparison operations in memory
US9786335B2 (en) 2014-06-05 2017-10-10 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9904515B2 (en) 2014-09-03 2018-02-27 Micron Technology, Inc. Multiplication operations in memory
US9847110B2 (en) 2014-09-03 2017-12-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector
US9589602B2 (en) 2014-09-03 2017-03-07 Micron Technology, Inc. Comparison operations in memory
US9740607B2 (en) 2014-09-03 2017-08-22 Micron Technology, Inc. Swap operations in memory
US10068652B2 (en) 2014-09-03 2018-09-04 Micron Technology, Inc. Apparatuses and methods for determining population count
US9747961B2 (en) 2014-09-03 2017-08-29 Micron Technology, Inc. Division operations in memory
US9898252B2 (en) 2014-09-03 2018-02-20 Micron Technology, Inc. Multiplication operations in memory
US9940026B2 (en) 2014-10-03 2018-04-10 Micron Technology, Inc. Multidimensional contiguous memory allocation
US9836218B2 (en) 2014-10-03 2017-12-05 Micron Technology, Inc. Computing reduction and prefix sum operations in memory
US10163467B2 (en) 2014-10-16 2018-12-25 Micron Technology, Inc. Multiple endianness compatibility
US10147480B2 (en) 2014-10-24 2018-12-04 Micron Technology, Inc. Sort operation in memory
US9779784B2 (en) 2014-10-29 2017-10-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9489309B2 (en) * 2014-10-31 2016-11-08 Oracle International Corporation Method and system for dynamic cache partitioning using address remapping
US10073635B2 (en) 2014-12-01 2018-09-11 Micron Technology, Inc. Multiple endianness compatibility
US9747960B2 (en) 2014-12-01 2017-08-29 Micron Technology, Inc. Apparatuses and methods for converting a mask to an index
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
US10032493B2 (en) 2015-01-07 2018-07-24 Micron Technology, Inc. Longest element length determination in memory
US9583163B2 (en) 2015-02-03 2017-02-28 Micron Technology, Inc. Loop structure for operations in memory
WO2016126472A1 (en) 2015-02-06 2016-08-11 Micron Technology, Inc. Apparatuses and methods for scatter and gather
EP3254286B1 (de) 2015-02-06 2019-09-11 Micron Technology, INC. Vorrichtungen und verfahren zum parallelen schreiben an mehrere speichervorrichtungsstandorte
CN107408404B (zh) 2015-02-06 2021-02-12 美光科技公司 用于存储器装置的设备及方法以作为程序指令的存储
US10522212B2 (en) 2015-03-10 2019-12-31 Micron Technology, Inc. Apparatuses and methods for shift decisions
US9898253B2 (en) 2015-03-11 2018-02-20 Micron Technology, Inc. Division operations on variable length elements in memory
US9741399B2 (en) 2015-03-11 2017-08-22 Micron Technology, Inc. Data shift by elements of a vector in memory
CN107430874B (zh) 2015-03-12 2021-02-02 美光科技公司 用于数据移动的设备及方法
US10146537B2 (en) 2015-03-13 2018-12-04 Micron Technology, Inc. Vector population count determination in memory
US10049054B2 (en) 2015-04-01 2018-08-14 Micron Technology, Inc. Virtual register file
US10140104B2 (en) 2015-04-14 2018-11-27 Micron Technology, Inc. Target architecture determination
US9959923B2 (en) 2015-04-16 2018-05-01 Micron Technology, Inc. Apparatuses and methods to reverse data stored in memory
US10073786B2 (en) 2015-05-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for compute enabled cache
US9704541B2 (en) 2015-06-12 2017-07-11 Micron Technology, Inc. Simulating access lines
US9921777B2 (en) 2015-06-22 2018-03-20 Micron Technology, Inc. Apparatuses and methods for data transfer from sensing circuitry to a controller
US9996479B2 (en) 2015-08-17 2018-06-12 Micron Technology, Inc. Encryption of executables in computational memory
US9905276B2 (en) 2015-12-21 2018-02-27 Micron Technology, Inc. Control of sensing components in association with performing operations
US9952925B2 (en) 2016-01-06 2018-04-24 Micron Technology, Inc. Error code calculation on sensing circuitry
US10048888B2 (en) 2016-02-10 2018-08-14 Micron Technology, Inc. Apparatuses and methods for partitioned parallel data movement
US9892767B2 (en) 2016-02-12 2018-02-13 Micron Technology, Inc. Data gathering in memory
US9971541B2 (en) 2016-02-17 2018-05-15 Micron Technology, Inc. Apparatuses and methods for data movement
US9899070B2 (en) 2016-02-19 2018-02-20 Micron Technology, Inc. Modified decode for corner turn
US10956439B2 (en) 2016-02-19 2021-03-23 Micron Technology, Inc. Data transfer with a bit vector operation device
US9697876B1 (en) 2016-03-01 2017-07-04 Micron Technology, Inc. Vertical bit vector shift in memory
US10262721B2 (en) 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
US10379772B2 (en) 2016-03-16 2019-08-13 Micron Technology, Inc. Apparatuses and methods for operations using compressed and decompressed data
US9910637B2 (en) 2016-03-17 2018-03-06 Micron Technology, Inc. Signed division in memory
US11074988B2 (en) 2016-03-22 2021-07-27 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10388393B2 (en) 2016-03-22 2019-08-20 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10120740B2 (en) 2016-03-22 2018-11-06 Micron Technology, Inc. Apparatus and methods for debugging on a memory device
US10977033B2 (en) 2016-03-25 2021-04-13 Micron Technology, Inc. Mask patterns generated in memory from seed vectors
US10474581B2 (en) 2016-03-25 2019-11-12 Micron Technology, Inc. Apparatuses and methods for cache operations
US10430244B2 (en) 2016-03-28 2019-10-01 Micron Technology, Inc. Apparatuses and methods to determine timing of operations
US10074416B2 (en) 2016-03-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for data movement
US10073775B2 (en) * 2016-04-01 2018-09-11 Intel Corporation Apparatus and method for triggered prefetching to improve I/O and producer-consumer workload efficiency
US10453502B2 (en) 2016-04-04 2019-10-22 Micron Technology, Inc. Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions
US10607665B2 (en) 2016-04-07 2020-03-31 Micron Technology, Inc. Span mask generation
US9818459B2 (en) 2016-04-19 2017-11-14 Micron Technology, Inc. Invert operations using sensing circuitry
US9659605B1 (en) 2016-04-20 2017-05-23 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US10153008B2 (en) 2016-04-20 2018-12-11 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US10042608B2 (en) 2016-05-11 2018-08-07 Micron Technology, Inc. Signed division in memory
US9659610B1 (en) 2016-05-18 2017-05-23 Micron Technology, Inc. Apparatuses and methods for shifting data
US10049707B2 (en) 2016-06-03 2018-08-14 Micron Technology, Inc. Shifting data
US10387046B2 (en) 2016-06-22 2019-08-20 Micron Technology, Inc. Bank to bank data transfer
US10037785B2 (en) 2016-07-08 2018-07-31 Micron Technology, Inc. Scan chain operation in sensing circuitry
US10388360B2 (en) 2016-07-19 2019-08-20 Micron Technology, Inc. Utilization of data stored in an edge section of an array
US10733089B2 (en) 2016-07-20 2020-08-04 Micron Technology, Inc. Apparatuses and methods for write address tracking
US10387299B2 (en) 2016-07-20 2019-08-20 Micron Technology, Inc. Apparatuses and methods for transferring data
US9972367B2 (en) 2016-07-21 2018-05-15 Micron Technology, Inc. Shifting data in sensing circuitry
US9767864B1 (en) 2016-07-21 2017-09-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in a sensing circuitry element
US10303632B2 (en) 2016-07-26 2019-05-28 Micron Technology, Inc. Accessing status information
US10468087B2 (en) 2016-07-28 2019-11-05 Micron Technology, Inc. Apparatuses and methods for operations in a self-refresh state
US9990181B2 (en) 2016-08-03 2018-06-05 Micron Technology, Inc. Apparatuses and methods for random number generation
US11029951B2 (en) 2016-08-15 2021-06-08 Micron Technology, Inc. Smallest or largest value element determination
US10606587B2 (en) 2016-08-24 2020-03-31 Micron Technology, Inc. Apparatus and methods related to microcode instructions indicating instruction types
US10466928B2 (en) 2016-09-15 2019-11-05 Micron Technology, Inc. Updating a register in memory
US10387058B2 (en) 2016-09-29 2019-08-20 Micron Technology, Inc. Apparatuses and methods to change data category values
US10014034B2 (en) 2016-10-06 2018-07-03 Micron Technology, Inc. Shifting data in sensing circuitry
US10529409B2 (en) 2016-10-13 2020-01-07 Micron Technology, Inc. Apparatuses and methods to perform logical operations using sensing circuitry
US9805772B1 (en) 2016-10-20 2017-10-31 Micron Technology, Inc. Apparatuses and methods to selectively perform logical operations
CN207637499U (zh) 2016-11-08 2018-07-20 美光科技公司 用于形成在存储器单元阵列上方的计算组件的设备
US10423353B2 (en) 2016-11-11 2019-09-24 Micron Technology, Inc. Apparatuses and methods for memory alignment
US9761300B1 (en) 2016-11-22 2017-09-12 Micron Technology, Inc. Data shift apparatuses and methods
US10402340B2 (en) 2017-02-21 2019-09-03 Micron Technology, Inc. Memory array page table walk
US10268389B2 (en) 2017-02-22 2019-04-23 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10403352B2 (en) 2017-02-22 2019-09-03 Micron Technology, Inc. Apparatuses and methods for compute in data path
US10838899B2 (en) 2017-03-21 2020-11-17 Micron Technology, Inc. Apparatuses and methods for in-memory data switching networks
US10185674B2 (en) 2017-03-22 2019-01-22 Micron Technology, Inc. Apparatus and methods for in data path compute operations
US11222260B2 (en) 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
US10049721B1 (en) 2017-03-27 2018-08-14 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10147467B2 (en) 2017-04-17 2018-12-04 Micron Technology, Inc. Element value comparison in memory
US10043570B1 (en) 2017-04-17 2018-08-07 Micron Technology, Inc. Signed element compare in memory
US9997212B1 (en) 2017-04-24 2018-06-12 Micron Technology, Inc. Accessing data in memory
US10942843B2 (en) 2017-04-25 2021-03-09 Micron Technology, Inc. Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes
US10236038B2 (en) 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
US10068664B1 (en) 2017-05-19 2018-09-04 Micron Technology, Inc. Column repair in memory
US10013197B1 (en) 2017-06-01 2018-07-03 Micron Technology, Inc. Shift skip
US10152271B1 (en) 2017-06-07 2018-12-11 Micron Technology, Inc. Data replication
US10262701B2 (en) 2017-06-07 2019-04-16 Micron Technology, Inc. Data transfer between subarrays in memory
US10318168B2 (en) 2017-06-19 2019-06-11 Micron Technology, Inc. Apparatuses and methods for simultaneous in data path compute operations
US10162005B1 (en) 2017-08-09 2018-12-25 Micron Technology, Inc. Scan chain operations
US10534553B2 (en) 2017-08-30 2020-01-14 Micron Technology, Inc. Memory array accessibility
US10741239B2 (en) 2017-08-31 2020-08-11 Micron Technology, Inc. Processing in memory device including a row address strobe manager
US10346092B2 (en) 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
US10416927B2 (en) 2017-08-31 2019-09-17 Micron Technology, Inc. Processing in memory
US10409739B2 (en) 2017-10-24 2019-09-10 Micron Technology, Inc. Command selection policy
US10522210B2 (en) 2017-12-14 2019-12-31 Micron Technology, Inc. Apparatuses and methods for subarray addressing
US10332586B1 (en) 2017-12-19 2019-06-25 Micron Technology, Inc. Apparatuses and methods for subrow addressing
US10614875B2 (en) 2018-01-30 2020-04-07 Micron Technology, Inc. Logical operations using memory cells
US10437557B2 (en) 2018-01-31 2019-10-08 Micron Technology, Inc. Determination of a match between data values stored by several arrays
US11194477B2 (en) 2018-01-31 2021-12-07 Micron Technology, Inc. Determination of a match between data values stored by three or more arrays
CN110197265B (zh) * 2018-02-27 2021-01-05 安徽寒武纪信息科技有限公司 集成电路芯片装置及相关产品
US10725696B2 (en) 2018-04-12 2020-07-28 Micron Technology, Inc. Command selection policy with read priority
US10440341B1 (en) 2018-06-07 2019-10-08 Micron Technology, Inc. Image processor formed in an array of memory cells
US10769071B2 (en) 2018-10-10 2020-09-08 Micron Technology, Inc. Coherent memory access
US11175915B2 (en) 2018-10-10 2021-11-16 Micron Technology, Inc. Vector registers implemented in memory
US10483978B1 (en) 2018-10-16 2019-11-19 Micron Technology, Inc. Memory device processing
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
US10867655B1 (en) 2019-07-08 2020-12-15 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
US11360768B2 (en) 2019-08-14 2022-06-14 Micron Technolgy, Inc. Bit string operations in memory
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
US11227641B1 (en) 2020-07-21 2022-01-18 Micron Technology, Inc. Arithmetic operations in memory
US20230214222A1 (en) * 2021-12-30 2023-07-06 Arm Limited Methods and apparatus for storing instruction information

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5019971A (en) * 1987-04-13 1991-05-28 Prime Computer, Inc. High availability cache organization
US4868869A (en) * 1988-01-07 1989-09-19 Clarity Digital signal processor for providing timbral change in arbitrary audio signals
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5070250A (en) * 1989-02-28 1991-12-03 Nikon Corporation Position detection apparatus with adjustable beam and interference fringe positions
EP0654168B1 (de) 1992-08-10 2001-10-31 Monolithic System Technology, Inc. Fehlertolerantes hierarchisiertes Bussystem
US5584002A (en) * 1993-02-22 1996-12-10 International Business Machines Corporation Cache remapping using synonym classes
US5519846A (en) * 1993-12-23 1996-05-21 Unisys Corporation Multiprocessor system with scheme for managing allocation and reservation of cache segments in a cache system employing round-robin replacement and exclusive access
DE69421379T2 (de) * 1994-03-31 2000-05-11 St Microelectronics Inc Wiederverwendbarer Mehrwegsatz assoziativer Cache-Speicher
US5655113A (en) 1994-07-05 1997-08-05 Monolithic System Technology, Inc. Resynchronization circuit for a memory system and method of operating same
TW358907B (en) * 1994-11-22 1999-05-21 Monolithic System Tech Inc A computer system and a method of using a DRAM array as a next level cache memory
US5978888A (en) * 1997-04-14 1999-11-02 International Business Machines Corporation Hardware-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels
US5958068A (en) * 1997-04-14 1999-09-28 International Business Machines Corporation Cache array defect functional bypassing using repair mask
US6408401B1 (en) * 1998-11-13 2002-06-18 Compaq Information Technologies Group, L.P. Embedded RAM with self-test and self-repair with spare rows and columns
US6467048B1 (en) 1999-10-07 2002-10-15 Compaq Information Technologies Group, L.P. Apparatus, method and system for using cache memory as fail-over memory
US6188615B1 (en) * 1999-10-29 2001-02-13 Hewlett-Packard Company MRAM device including digital sense amplifiers
US6745293B2 (en) * 2000-08-21 2004-06-01 Texas Instruments Incorporated Level 2 smartcache architecture supporting simultaneous multiprocessor accesses
US6671822B1 (en) * 2000-08-31 2003-12-30 Hewlett-Packard Development Company, L.P. Method and system for absorbing defects in high performance microprocessor with a large n-way set associative cache
JP4726290B2 (ja) * 2000-10-17 2011-07-20 ルネサスエレクトロニクス株式会社 半導体集積回路
US6725336B2 (en) * 2001-04-20 2004-04-20 Sun Microsystems, Inc. Dynamically allocated cache memory for a multi-processor unit

Also Published As

Publication number Publication date
CN1846278A (zh) 2006-10-11
JP2007504548A (ja) 2007-03-01
CN1846278B (zh) 2010-04-28
WO2005024843A1 (en) 2005-03-17
DE602004007532D1 (de) 2007-08-23
EP1665286A1 (de) 2006-06-07
US20070005897A1 (en) 2007-01-04
EP1665286B1 (de) 2007-07-11
US7827372B2 (en) 2010-11-02
EP1665286B8 (de) 2007-09-12
ATE366985T1 (de) 2007-08-15

Similar Documents

Publication Publication Date Title
DE602004007532T2 (de) Integrierte schaltung und verfahren zum cache-umabbilden
DE19526007C2 (de) Horizontal partitionierter Befehls-Cache-Speicher
DE112011102487B4 (de) Zuordnen von logischen zu physischen Adressen in Halbleiterspeichereinheiten aufweisenden Speichersystemen
DE602005004226T2 (de) Speichervorrichtung und Informationsverarbeitungssystem
DE68923437T2 (de) Adressenübersetzung für Seiten mehrfacher Grösse.
DE3688192T2 (de) Seitenorganisierter cachespeicher mit virtueller adressierung.
DE3850901T2 (de) Datenverarbeitungsanordnung mit Mitteln zur angrenzenden Adressierung eines Speichers.
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE3587960T2 (de) Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät.
DE69935737T2 (de) Verfahren und gerät um zeitliche und feste daten in einer einzelspeicherstruktur zu verwalten
DE112005003863B3 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE102013204414B4 (de) Daten-Cachespeicherblock-Freigabeanforderungen in einer Cachespeicherhierarchie mit mehreren Ebenen
DE10002120B4 (de) Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung
DE2749850A1 (de) Hybrider halbleiterspeicher mit assoziativer seitenadressierung, seitenaustausch und steuerung auf dem chip
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf
DE10127198A1 (de) Vorrichtung und Verfahren zum Ermitteln einer physikalischen Adresse aus einer virtuellen Adresse unter Verwendung einer hierarchischen Abbildungsvorschrift mit komprimierten Knoten
DE19526960A1 (de) Eine Übersetzungs-Querzuordnungs-Puffer-Organisation mit variabler Seitengrößenabbildung und Opfer-Cache-Speicherung
DE3888438T2 (de) Cachespeichersteuerungsvorrichtung für eine Datenverarbeitungsanordnung mit virtuellem Speicher.
DE3873388T2 (de) Cache-speicher.
DE102005037219A1 (de) Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle
DE112019005408T5 (de) Masterloses raid für byte-adressierbaren nichtflüchtigen speicher
DE69737116T2 (de) Mehrstufiger Cachespeicher
DE112020006443T5 (de) Storage class memory

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: NXP B.V., EINDHOVEN, NL

8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1665286

Country of ref document: EP

Representative=s name: MUELLER - HOFFMANN & PARTNER PATENTANWAELTE, 81667