DE602004007532T2 - Integrierte schaltung und verfahren zum cache-umabbilden - Google Patents
Integrierte schaltung und verfahren zum cache-umabbilden Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/88—Masking 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. In3 sind eine Tag RAM-Einheit, ein Neuzuordnungsmittel RM, zwei Verzeichnisse R und eine Mehrzahl von Vergleichseinrichtungen C in3 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)
- 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.
- Integrierte Schaltung nach Anspruch 1, wobei der Cache-Speicher (L2_BANK) ein mengenassoziativer Cache ist.
- 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.
- 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.
- 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.
- 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.
- Integrierte Schaltung nach Anspruch 5 oder 6, ferner umfassend: – eine Look-Up-Tabelle zum Kennzeichnen fehlerhafter Speichermodule.
- 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.
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)
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)
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 |
-
2004
- 2004-08-17 EP EP04769812A patent/EP1665286B8/de not_active Not-in-force
- 2004-08-17 AT AT04769812T patent/ATE366985T1/de not_active IP Right Cessation
- 2004-08-17 WO PCT/IB2004/051465 patent/WO2005024843A1/en active IP Right Grant
- 2004-08-17 DE DE602004007532T patent/DE602004007532T2/de active Active
- 2004-08-17 US US10/570,290 patent/US7827372B2/en not_active Expired - Fee Related
- 2004-08-17 CN CN2004800252806A patent/CN1846278B/zh not_active Expired - Fee Related
- 2004-08-17 JP JP2006525220A patent/JP2007504548A/ja not_active Withdrawn
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 |