DE69127111T2 - Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher - Google Patents
Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-CachespeicherInfo
- Publication number
- DE69127111T2 DE69127111T2 DE69127111T DE69127111T DE69127111T2 DE 69127111 T2 DE69127111 T2 DE 69127111T2 DE 69127111 T DE69127111 T DE 69127111T DE 69127111 T DE69127111 T DE 69127111T DE 69127111 T2 DE69127111 T2 DE 69127111T2
- Authority
- DE
- Germany
- Prior art keywords
- cache
- read
- controller
- bus interface
- addressable data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 28
- 230000015654 memory Effects 0.000 claims description 113
- 238000012546 transfer Methods 0.000 claims description 48
- 238000013479 data entry Methods 0.000 claims description 47
- 230000002159 abnormal effect Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 2
- 239000000872 buffer Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
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)
Description
- Diese Erfindung bezieht sich auf ein Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher.
- Die Aufrechterhaltung der Bandbreite des externen Speicherbusses wird zu einer signifikanten Konzeptionsbetrachtung bei gleichzeitigem Anstieg der Mikroprozessorgeschwindigkeiten. Diese schnelleren Mikroprozessoren richten in zunehmendem Maße Anfragen an das Speichersystem und an Mehrfachprozessoren sowie DMA-Geräte, die den gleichen Systembus benutzen. Die M68000-Reihe der Mikroprozessoren benutzt normalerweise 90-95% der externen Busbandbreite aufgrund der ausgesprochen effizienten, in Reihen geschalteten internen Architektur der Zentrarozessoreinheit (CPU). In einigen Systemen entstand das Problem der unzureichenden Busbandbreite durch Cachespeicher-Pläne, insbesondere Cachespeicher, die umfangreiche Dateneinträge (deutlich größer als der Bus) unterbringen.
- Die Cachespeicher-Pläne wurden von Computer-Designern benutzt, um die Zugriffszeiten einer CPU auf den Hauptspeicher zu reduzieren und dadurch die Systemleistung zu steigern. In vielen Computersystemen besteht der Hauptspeicher aus einem großen Bereich mit Speichergeräten, deren Geschwindigkeiten im Vergleich mit Prozessorgeschwindigkeiten langsam sind. Während der Zugriffe auf den Hauptspeicher wird der Prozessor gezwungen, zusätzlichen Wartestatus einzufügen, um die langsameren Speichergeräte unterzubringen. Mit einem Cache kann die Systemleistung während der Speicherzugriffe verbessert werden. Kleiner als der Hauptspeicher und deutlich schneller, bietet der Cache schnelle lokale Speicherung für Daten und Befehlscode, der häufig von dem Prozessor benutzt wird. In Computersystemen mit Cachespeichern werden Speicheroperationen von dem Prozessor zuerst über den Cachespeicher abgewickelt. Auf den langsameren Hauptspeicher wird nur von dem Prozessor zugegriffen, wenn die Speicheroperation mit dem Cachespeicher nicht abgeschlossen werden kann. Im allgemeinen kann der Prozessor mit hoher Wahrscheinlichkeit einen Großteil seiner Speicheroperationen durch den Cachespeicher erfüllen. Demzufolge können in Computersystemen, die einen Cachespeicher benutzen, die effektiven Speicherzugriffszeiten zwischen einem Prozessor und dem relativ langsamen Hauptspeicher reduziert werden.
- Die Cachespeicher können dank einer Anzahl unterschiedlicher Einrichtungen wesentlich optimiert werden. Eine wichtige Einrichtung, welche die Leistung des Cachespeichers und die Konzeptionskomplexität beeinflußt, ist das Schreiben durch den Prozessor oder einen alternativen Busmaster. Da zwei Kopien eines bestimmten Datenteus oder Befehlscodes vorhanden sein können, eine im Hauptspeicher und eine Kopie im Cachespeicher, kann es beim Schreiben in den Haupt- oder in den Cachespeicher zu Inkohärenz zwischen den beiden Speichersystemen kommen. Die bestimmten Daten werden beispielsweise in einer zuvor bestimmten Adresse sowohl im Cache- als auch im Hauptspeicher gespeichert. Während ein Prozessor die zuvor bestimmte Adresse schreibt, prüft der Prozessor zuerst die Inhalte des Cachespeichers für die Adresse. Nachdem die Adresse im Cachespeicher gefunden wurde, fährt der Prozessor fort, die neuen Daten unter der zuvor bestimmten Adresse in den Cachespeicher zu schreiben. Daraus ergibt sich, daß die Daten im Cachespeicher geändert werden, jedoch nicht im Hauptspeicher. Deshalb kommt es zwischen Cache- und Hauptspeicher zu Inkohärenz.
- Der Inkohärenz zwischen Cache- und Hauptspeicher, die entsteht, während der Prozessor Schreibvorgänge ausführt, kann mit Hilfe zweier Techniken begegnet werden. In einer ersten Technik garantiert ein "Write-through" Cachespeicher Konsistenz zwischen Cache- und Hauptspeicher, indem während der Schreibvorgänge des Prozessors sowohl in den Cache- als auch in den Hauptspeicher geschrieben wird. Die Inhalte von Cache- und Hauptspeicher sind immer identisch, und so sind die beiden Speichersysteme stets kohärent. In einer zweiten Technik, einer "Write-back"- oder "Copy back"-Technik, bearbeitet der Cachespeicher die Schreibvorgänge des Prozessors, indem nur in den Cachespeicher geschrieben wird, und ein "dirty" Bit(s) gesetzt wird, um die Cachespeicher-Einträge zu kennzeichnen, die von dem Prozessor geändert wurden. Ein nachfolgender Versuch des Prozessors auf den Cachespeicher zuzugreifen, resultiert in einer Meldung des Cachespeichers "miss" und kann den Ersatzalgorithmus veranlassen, den veränderten Cachespeicher-Eintrag zum Ersatz auszuwählen, und den gesamten, veränderten Cachespeicher-Eintrag oder veränderte Teile davon in den Hauptspeicher zu drücken "push" (übertragen). Die neuen Daten werden an der Stelle in den Cachespeicher geschrieben, die durch den veränderten Eintrag frei geworden ist. Diese Prozessoren entladen im allgemeinen veränderte Cachespeicher-Einträge durch einen Burst-Write-Transfer der gesamten Cachespeicher-Leitung an den Hauptspeicher. Da die Cachespeicher-Einträge deutlich größer als der Systembus ist, benutzt Burst-Write der gesamten Cachespeicher-Leitung im Hauptspeicher einen erheblichen Teil der Busbandbreite.
- Um der steigenden Leistung mit einer minimalen Busbandbreite zu begegnen, werden Mikroprozessoren und Computersysteme ihren Bedarf an Copy-back Daten- Cachespeichern erhöhen. Copy-back Daten-Cachespeicher können veränderte Daten bis zum Abschluß des Ladens des Ersatz-Cachespeicher-Eintrags aufschieben. Dieser Vorgang, die Leitung "push" aufzuschieben während der Abschluß des Leitungsauslesens aus dem Speicher noch in der Schwebe ist, erfordert das Puffern des aufgeschobenen Eintrags. Wenn das Leitungsauslesen, um den Cachespeicher zu laden, aufgrund von externen Busproblemen (z. B. Busfehler oder eine Bus-Cachespeicher-Sperre) versagt, kann die Leistung der Leitung "push" des zu ersetzenden Eintrags das Auftreten einer weiteren Ausnahmebedingung (d.h. einen weiteren Busfehler) auslösen. Des weiteren wird bei dem Vorgehen mit der Leitung "push" der Daten-Cachespeicher unnötigerweise geleert, was bei einem Eintrag, der später noch benötigt wird, nicht sinnvoll ist, und somit einen Verstoß gegen die Systemleistung bedeutet. Demzufolge bedingt die effiziente Nutzung der Copy-back Schreibstrategie einen Mechanismus, um die Nutzung des Halteregisters zu optimieren, wenn die Cachespeicher-Ladung infolge eines anormalen Abschlusses der Busübertragung nach Leitungslesen versagt.
- Demgemäß ist ein Gegenstand der vorliegenden Erfindung, ein verbessertes Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher bereitzustellen, um die Cachespeicher-Nutzung zu optimieren.
- Es ist ein weiterer Gegenstand der vorliegenden Erfindung, einen verbesserten Datenprozessor bereitzustellen, der einen Copy-back Daten-Cachespeicher hat, der in der Lage ist, Datenauslagerungen mit veränderten Daten, die durch das Laden eines Daten-Cachespeicher-Eintrags verursacht werden, aufzuschieben.
- Es ist auch ein weiterer Gegenstand der vorliegenden Erfindung, ein verbessertes Verfahren bereitzustellen, welches das Potential bei mehreren gleichzeitig auftretenden Ausnahmebedingungen, die der Verwaltung eines Copy-back Daten- Cachespeichers anzulasten sind, aufhebt.
- Diese und andere Gegenstände der vorliegenden Erfindung werden mit einem Verfahren in einem Datenprozessor mit einer Busschnittstellensteuerung erreicht, die über einen Systembus mit einem externen Speicher verbunden ist, um eine Vielzahl von adressierbaren Dateneinträgen aus dem externen Speicher zurückzuholen, und die Vielzahl von adressierbaren Dateneinträgen in einen Copy back Daten-Cachespeicher zu laden, als Antwort auf eine Anforderung für eine Leitungsübertragung (Lesen), die von einem Cache-Steuergerät generiert wird, und um einen ausgewählten, veränderten adressierbaren Dateneintrag aus einem temporären Halteregister im Cachespeicher an den externen Speicher als Antwort auf eine Anforderung für eine Leitungsübertragung (Schreiben), die von diesem Cache-Steuergerät generiert wurde, zu übertragen. Der Cachespeicher wird mit dem ausgewählten, veränderten adressierbaren Dateneintrag bei Auftreten eines anormalen Abschlusses dieser Leitungsübertragung (Lesen) neu geladen. Die Anforderung für die Leitungsübertragung (Lesen) und eine erste Leseadresse, vorzugsweise gleichzeitig, an die Busschnittstellensteuerung zu einem Zeitpunkt zu übertragen, wenn der veränderte adressierbare Dateneintrag im Cachespeicher, der zum Ersatz ausgewählt wird, von dem Cache-Steuergerät ungültig gemacht wird, und aus dem Cachespeicher in das Halteregister geschrieben wird. Der ausgewählte, veränderte adressierbare Dateneintrag wird aus dem Halteregister erneut in den Cachespeicher zu einem Zeitpunkt geladen, wenn die Busschnittstellensteuerung den anormalen Abschluß der Leitungsübertragung (Lesen) angibt, und der ausgewählte, veränderte adressierbare Dateneintrag vom Cache-Steuergerät im Cachespeicher wieder gültig gemacht wird.
- in einem Aspekt liefert die Erfindung ein Verfahren in einem Datenprozessor mit einer Busschnittstellensteuerung, die über einen Systembus mit einem externen Speicher verbunden ist, um eine Vielzahl von adressierbaren Dateneinträgen aus dem externen Speicher zurückzuholen, und die Vielzahl von adressierbaren Dateneinträgen in einen Copy-back Daten-Cachespeicher zu laden, als Antwort auf eine Anforderung für eine Leitungsübertragung (Lesen), die von einem Cache- Steuergerät generiert wird, und um einen veränderten adressierbaren Dateneintrag, der zum Ersatz ausgewählt wurde, aus dem Cachespeicher an den externen Speicher als Antwort auf eine Anforderung für eine Leitungsübertragung (Schreiben), die von diesem Cache-Steuergerät generiert wurde, zu übertragen, wobei dieses Verfahren, den Cachespeicher mit dem veränderten adressierbaren Dateneintrag bei Auftreten eines anormalen Abschlusses dieser Leitungsübertragung (Lesen) neu lädt, durch Schritte gekennzeichnet ist, um diese Anforderung für die Leitungsübertragung (Lesen) und eine erste Leseadresse, vorzugsweise gleichzeitig, an die Busschnittstellensteuerung zu einem Zeitpunkt zu übertragen, wenn der veränderte adressierbare Dateneintrag im Cachespeicher ungültig gemacht wird und aus dem Cachespeicher in das Halteregister geschrieben wird;
- einen ersten adressierbaren Dateneintrag, der der ersten Leseadresse entspricht, vom externen Speicher über den Systembus an den Cachespeicher zu übertragen;
- den veränderten adressierbaren Dateneintrag aus dem Halteregister erneut in den Cachespeichern zu einem Zeitpunkt zu laden, wenn die Busschnittstellensteuerung den anormalen Abschluß der Leitungsübertragung (Lesen) angibt, und der veränderte adressierbare Dateneintrag vom Cache-Steuergerät im Cachespeicher wieder gültig gemacht wird.
- In einem weiteren Aspekt liefert die Erfindung ein Verfahren in einem Datenprozessor mit einer Busschnittstellensteuerung, die über einen Systembus mit einem externen Speicher verbunden ist, um eine Vielzahl von adressierbaren Dateneinträgen aus dem externen Speicher zurückzuholen, und die Vielzahl von adressierbaren Dateneinträgen in einen Copy-back Daten-Cachespeicher zu laden, als Antwort auf eine Anforderung für eine Leitungsübertragung (Lesen), die von einem Cache-Steuergerät generiert wird, und um einen veränderten adressierbaren Dateneintrag, der zum Ersatz ausgewählt wurde, aus dem Cachespeicher an den externen Speicher als Antwort auf eine Anforderung für eine Leitungsübertragung (Schreiben), die von diesem Cache-Steuergerät generiert wurde, zu übertragen, wobei dieses Verfahren, den Cachespeicher mit dem veränderten adressierbaren Dateneintrag bei Auftreten eines anormalen Abschlusses dieser Leitungsübertragung (Lesen) neu lädt, durch Schritte gekennzeichnet ist, um
- diese Anforderung für die Leitungsübertragung (Lesen) und eine erste Leseadresse, vorzugsweise gleichzeitig, an die Busschnittstellensteuerung zu einem Zeitpunkt zu übertragen, wenn der veränderte adressierbare Dateneintrag im Cachespeicher ungültig gemacht wird;
- einen ersten adressierbaren Dateneintrag, der der ersten Leseadresse entspricht, vom externen Speicher über den Systembus an den Cachespeicher zu übertragen, den veränderten adressierbaren Dateneintrag im Cachespeicher wieder gültig zu machen, wenn die Busschnittstellensteuerung angibt, daß die Leitungsübertragung (Lesen) anormal beendet wurde.
- FIG. 1 ist ein Blockdiagramm, das ein IS-Datenverarbeitungssystem zur Implementierung der vorliegenden Erfindung zeigt.
- FIG. 2 ist ein Blockdiagramm, das ein bevorzugtes Ausführungsbeispiel des Daten-Cachespeichereintrags-Ersatzplans im Copy-back Daten- Cachespeicher von FIG. 1 gemäß der vorliegenden Erfindung zeigt.
- In FIG. 1 ist ein Blockdiagramm von einem bevorzugten Ausführungsbeispiel eines Datenverarbeitungssystems 10 dargestellt, um die vorliegende Erfindung, einschließlich einer CPU 12, eines Daten-Cache-Steuergeräts 14, eines Daten- Cachespeichers 16, eines internen Busses 18, einer Busschnittstellensteuerung 20, Puffern 22, eines Systembusses 24, eines Hauptspeichers 26, eines DMA-Geräts 28, einer Festplatte 30 und eines Adreßregisters 32 zu implementieren. Das Datenverarbeitungssystem 10 zeigt ein typisches Uni-Prozessor-System, das einen einzelnen Cachespeicher benutzt, der zur Unterstützung der vorliegenden Erfindung benutzt wird. In dem bevorzugten Ausführungsbeispiel ist der interne Bus 18 n-Bytes breit, wobei n-Bytes die Breite der größten, natürlichen Datenart der CPU 12 ist (d. h. 4 Bytes), und der Systembus 24 ist m-Bytes breit ist, wobei m-Bytes die Breite einer einzelnen Leitung des Daten-Cachespeichers 16 (d.h. 16 Bytes) ist. In der dargestellten Form ist die CPU 12 eine erste, interne Funktionseinheit mit einer konventionellen Ausführungseinheit, um einen zuvor bestimmten Satz von Befehlen auszuführen. Das Daten-Cache-Steuergerät 14 ist eine zweite, interne Funktionseinheit, welche die Steuersignale von der Busschnittstellensteuerung 20 und der CPU 12 empfängt, und die Datenübertragungen zwischen dem Daten- Cachespeicher 16, der CPU 12 und der Busschnittstellensteuerung 20 steuert. Der Daten-Cache-Speicher 16 ist eine dritte Funktionseinheit, die mit dem Daten-Cache- Steuergerät 14, den Puffern 22 und dem internen Bus 18 gekoppelt ist.
- Das Daten-Cache-Steuergerät 14 unterstützt auch Bus-Snooping, um die Kohärenz zwischen dem Daten-Cachespeicher 16 und dem Hauptspeicher 26 durch Überwachung des Systembusses 24 aufrechtzuerhalten, wenn die CPU 12 nicht der aktuelle Busmaster ist, wie dies in einer gleichzeitig anhängigen Patentanmeldung mit dem Titel "A Data Bus Snoop Controller for Concurrent Read and Invalidate Memory Operation", Serial No. 07/351,898, von Wilam Ledbetter et al. beschrieben wurde und dem Antragsteller zuerkannt wurde. Der Daten-Cachespeicher 16 ist eine dritte Funktionseinheit, die mit dem Daten-Cache-Steuergerät 14, den Puffern 22 und dem internen Bus 18 gekoppelt ist. Der Daten-Cachespeicher 16 enthält die passende Logik, die notwendig ist, um den Cachespeicher auszulesen, in diesen zu schreiben, zu aktualisieren, diesen ungültig zu machen und abzuschließen. In dem bevorzugten Ausführungsbeispiel funktionieren die drei internen Funktionseinheiten gleichzeitig, um für eine maximale Leistung zu sorgen.
- In dem bevorzugten Ausführungsbeispiel ist der Daten-Cachespeicher 16 ein 4poliger Assoziativ-Cachespeicher, mit vierundsechzig (64) Sätzen von vier (4) 16- Byte-Cachespeicher-Leitungen, wobei jede Cachespeicher-Leitung vier Langwörter (LW1-LW4) enthält, und jedes Langwort (LW) aus zweiunddreißig aufeinanderfolgenden Bits besteht. Demgemäß hat der Daten-Cachespeicher 16 eine Gesamtspeicherkapazität von 4K8. Zu jeder Cachespeicher-Leitung 32 gehört eine Adresse (TAG) und Statusinformation, wie diese in FIG. 2 dargestellt ist. Die Statusinformation besteht für jede Cachespeicher-Leitung 32 aus der Gültigkeit pro Leitung (erster Statuseingang), und dem Schreibstatus - "verändert" (zweiter Statuseingang) für jedes Langwort (LW) in der Daten-Cachespeicher-Leitung 32. Demgemäß hat die Daten-Cachespeicher-Leitung 32 ein erstes VALID (V) Bit und ein DIRTY (D) Bit, die zu jedem Langwort gehören (LW1 -LW4), wie dies in FIG. 2 dargestellt ist. Es gibt drei mögliche Status für jede Daten-Cachespeicher-Leitung 32, VALID, INVALID und DIRTY. Wenn das VALID Bit gelöscht wird, dann sind in der Cachespeicher-Leitung, die einen INVALID Status angibt, keine Daten gespeichert. Wenn das VALID (V) Bit und kein DIRTY Bit gesetzt ist, ist die Daten- Cachespeicher-Leitung 32 gültig und enthält Daten, die mit den Daten, die im Hauptspeicher 26 in dem entsprechenden Speicherplatz gespeichert sind, konsistent sind. Wenn das VALID Bit gesetzt ist und ein oder mehr DIRTY Bit(s) gesetzt wird bzw. werden, sind die Daten in der Cachespeicher-Leitung gültig, aber im Speicher 26 nicht konsistent. Die Benutzung der Mehrfach-DIRTY-Bits um die Anzahl der Speicherzugriffe einzuschränken, die zum Entladen eines veränderten Cachespeicher-Eintrags erforderlich sind, wird in der gleichzeitig anhängigen US Patentanmedung mit dem Titel "Mixed Size Data Cache Status Fields", Serial No. 07/351,899 von Robin W. Edenfield et al. beschrieben, die dem Antragsteller zuerkannt wurde.
- In dem bevorzugten Ausführungsbeispiel unterstützt der Daten-Cachespeicher 16 eine Copy-back Schreibstrategie auf einer Seitenbasis Die Copy-back Schreibstrategie gewährleistet, daß eine geänderte Cachespeicher-Leitung 32 in den Speicher 24 "copied-back" wird, bevor diese von einer neuen Cachespeicher-Leitung überschrieben wird. Demgemäß wird, wenn die Seite als "copy-back" bezeichnet wird und ein Schreib-"Fehler" im Daten-Cachespeicher 16 auftritt, die CPU 12 die abgeglichene Daten-Cachespeicher-Leitung 32 aktualisieren, und das Daten- Cachesteuergerät 14 wird den (die) DIRTY Bit(s) des geänderten Langworts (Langwörter) (LW1-LW4) setzen. Dadurch gibt das Daten-Cachesteuergerät 14 die Inkohärenz zwischen dem geänderten Eintrag in dem Daten-Cachespeicher 16 und dem entsprechenden Eintrag in Speicher 26 an. Bei der Copy-back-Strategie wird die CPU 12 keinen Busschreibzyklus durchführen, um Speicher 24 zu aktualisieren, bis die geänderte Cachespeicher-Leitung 32 zum Ersatz ausgewählt wird. Wenn ein Schreib- "Treffer" im Daten-Cachespeicher 16 auftritt und die geänderte Daten- Cachespeicher-Leitung 32 zum Ersatz ausgewählt wird, schiebt das Daten-Cachesteuergerät 14 über das Halteregister 22b die geänderte (DIRTY) Cachespeicher- Leitung 32 aus dem Speicher 24. in der vorliegenden Erfindung wird die geänderte (DIRTY) Cachespeicher-Leitung 32 aus dem Speicher 24 geschoben. Danach stellt das Daten-Cachesteuergerät 14 die neue Daten-Cachespeicherleitung 32 (aus Speicher 24) wieder her.
- Während des Betriebs gibt die CPU 12 eine Schreibanforderung an das Daten- Cachesteuergerät 14 aus und sendet gleichzeitig die Schreibadresse an das Adreßregister 32. In dem bevorzugten Ausführungsbeispiel ist der Daten-Cachespeicher 16 ein physischer Cachespeicher. Aus diesem Grund wird die Schreibadresse durch einen Übersetzungspuffer (TLB) 34 übersetzt, um eine entsprechende physische Adresse zu erzeugen. TLB 34 übersetzt eine zuvor bestimmte Anzahl der oberen Adreßbits der Operandenadresse in eine physische Adresse und überträgt gleichzeitig die physische Adresse an das Daten-Cachesteuergerät 14 und die Busschnittstellensteuerung 20. Der Daten-Cachespeicher 16 empfängt ebenfalls die physische Adresse, die von TLB 34 erzeugt wird und vergleicht die physische Adresse mit einem Satz von Tag-Adressen, die im Daten-Cachespeicher 16 gespeichert sind. Falls der Vergleich zu einer Adreßübereinstimmung führt, erfolgt ein Cache- "Treffer", der den Daten-Cachespeicher 16 veranlaßt ein Hit-Signal an das Daten-Cachesteuergerät 14 auszugeben. Als Reaktion auf das Hit-Signal gibt das Daten-Cachesteuergerät 14 ein Cache-Contra-Signal aus, wodurch der Daten- Cachespeicher 16 veranlaßt wird, die Daten aus dem internen Bus 18 zu laden. Nach Abschluß des Ladevorgangs setzt das Daten-Cachesteuergerät 14 das DIRTY-Bit des (der) entsprechenden Langworts (Langwörter) in die Daten-Cachespeicher-Leitung. Das Daten-Cachesteuergerät 14 markiert (DIRTY) jede Daten- Cachespeicherleitung 16, die auf diese Art und Weise geschrieben wurde. Da die CPU 12 keinen kontemporären Busschreibzyklus durchführen wird, um den Speicher 26 zu aktualisieren, sind die Daten, die in der geänderten Cachespeicher-Leitung 32 gespeichert sind jetzt inkonsistent gegenüber den Daten, die in der entsprechenden Speicherstelle im Speicher 26 gespeichert sind. Somit ist wenigstens ein Teil der Daten-Cachespeicher-Leitung 32 in einem DIRTY-Status. Die geänderte Daten- Cachespeicher-Leitung 32 wird im DIRTY-Status verbleiben, bis der DIRTY-Dateneintrag zum Ersatz ausgewählt wird oder von der CPU 12 ungültig gemacht wird. Während des Kanalbetriebs gibt die CPU 12 eine Lese- oder Schreibanforderung an das Daten-Cachesteuergerät 14 aus und überträgt über die Adreßregister 32 an den TLB 34. Wie zuvor beschrieben wird die Logikadresse in eine entsprechende physische Adresse übersetzt und mit einem ausgewählten Satz von TAG-Adressen im Daten-Cachespeicher 16 verglichen. Falls es bei dem Vergleich nicht zu einer Adreßübereinstimmung kommt, tritt ein Cache- "MISS" auf, was den Daten-Cachespeicher 16 veranlaßt, ein MISS-Signal auszugeben. Als Reaktion auf das MISS- Signal benutzt das Daten-Cachesteuergerät einen Ersatzalgorithmus, um eine Daten-Cachespeicher-Leitung zum Ersatz auszuwählen. Nachdem die Daten- Cachespeicher-Leitung 32 ausgewählt ist, liest das Daten-Cachesteuergerät 14 die Statusinformation, die in der Daten-Cachespeicher-Leitung 32 enthalten ist. Wenn eine DIRTY (geänderte) Daten-Cachespeicher-Leitung 32 (wie von der Statusinformation angegeben) zum Einsatz ausgewählt wird, müssen die DIRTY-Daten in den Speicher 24 zurückkopiert "copied back" werden.
- Wenn die Daten-Cachespeicher-Leitung 32, die zum Ersatz ausgewählt wurde, DIRTY ist, schiebt das Daten-Cachesteuergerät 14 die DIRTY-Daten aus der ausgewählten Cachespeicher-Leitung 32 in das Halteregister 22b. Gleichzeitig fordert das Daten-Cachesteuergerät 14 eine externe Busübertragung an, um die Cachespeicher-Leitung (LESEN) auszuführen und dadurch die Datencachespeicher- Leitung 32, die von der CPU 12 angefordert wird, wiederherzustellen. Das Daten- Cachesteuergerät 14 liefert ein CONTROL-Signal, durch das die Daten-Cachespeicher-Leitung 32, die zum Ersatz ausgewählt wurde (einschließlich TAG und Statusinformation), aus dem Daten-Cachespeicher 16 in das Halteregister 22b geschoben (übertragen) wird. Dadurch löscht das Daten-Cachesteuergerät 14 das entsprechende VALID-Bit im Daten-Cachespeicher 16. Daraufhin lädt das Daten- Cachesteuergerät die DIRTY-Daten in das Halteregister 22b und liefert gleichzeitig ein erstes BURST-READ-REQUEST-SIGNAL. Das gleichzeitige Laden des Halteregisters 22b, während des externen Buszyklus für das Lesen der Cachespeicher- Leitung, sorgt dafür, daß das Schieben "push" der DIRTY-Daten die CPU 12 nicht blockiert. Sobald das Halteregister 22b voll ist, generiert das Daten-Cachesteuergerät das BURST-WRITE-REQUEST-Signal in der Busschnittstellensteuerung 20, und fordert somit eine Übertragung (Schieben) der Information an, die im Halteregister 22b gespeichert ist.
- Der externe Buszyklus, um den DIRTY-Dateneintrag (geänderte Cachespeicher- Leitung 32) zu schreiben (schieben), wird verzögert, bis das Lesen der Cachespeicher-Leitung abgeschlossen ist. Daraufhin, als Reaktion auf das BURST- READ- REQUEST-Signal, das von dem Daten-Cachesteuergerät 14 ausgegeben wird, überträgt die Busschnittstellensteuerung 20 die Leseadresse an den Systembus 24 und gibt über die Speichersteuerungssignale (CONTROL) einen BURST-READ- Transfer an. Nach Empfang der Leseadresse und den BURST-READ-CONTROL- Signalen überträgt der Speicher 26 die angeforderten Daten an den Systembus 24 in zuvor bestimmte Datenabschnitte, die der Datenbusbreite entsprechen. Die Busschnittstellensteuerung 20 empfängt jeden Datenabschnitt über den Systembus 24 und überträgt die Daten in den Lesepuffer 22a. Nachdem der Puffer 22a voll ist, ist die Busschnittstellensteuerung 20 frei, die von dem Daten-Cachesteuergerät 14 erstellte BURST-WRITE-REQUEST ("push" Anforderung) zu akzeptieren, und das Daten-Cachesteuergerät 14 ist frei, den Ersatzeintrag in den Daten-Cachespeicher zu laden. Das Daten-Cachesteuergerät 14 wartet auf die Busschnittstellensteuerung 20, um das BURST-WRITE-SIGNAL zu akzeptieren. Deshalb bleibt die Daten- Cachespeicher-Leitung 32 (oder ein Teil davon) im Halteregister 22b gespeichert. Ein Satz Status-Signale informiert das Daten-Cachesteuergerät 14 von dem Status eines Bustransfers, der von dem Daten-Cachesteuergerät 14 angefordert wurde.
- Wenn ein normaler Abschluß beim Lesen der Burst-Leitung erfolgt, gibt die Busschnittstellensteuerung 20 ein erstes STATUS-Signal aus und informiert das Daten- Cachesteuergerät 14, daß die BURST-READ-Übertragung der angeforderten Daten- Cachespeicher-Leitung 32 abgeschlossen ist (fehlerfrei). Als Antwort auf das erste STATUS-Signal gibt das Daten-Cachesteuergerät 14 ein CONTROL-Signal aus, um die Ersatz-Daten-Cachespeicher-Leitung 32 (ist im Lesepuffer 22a gespeichert) in den Daten-Cachespeicher 16 zu laden. Die Ersatz-Daten-Cachespeicher-Leitung 32, welche die TAG- und Statusinformation enthält, wird in den Daten-Cachespeicher 16 geladen. Das Daten-Cachesteuergerät 14 setzt alle DIRTY-Bits auf ihren entsprechenden Wert. Sobald die Busschnittstellensteuerung 20 die Schiebeaufforderung akzeptiert, werden TAG-Adresse und die angeforderte Anzahl von Dateneinträgen (LW1-LW4) aus der Daten-Cachespeicher-Leitung 32 aus dem Puffer 22b in die Busschnittstellensteuerung 20 geschoben. Es wird ein Minimum an Systembusbandbreite 24 benutzt, da nur die DIRTY-Abschnitte der Daten-Cachespeicher-Leitung 32 in den Speicher 2b zurückkopiert "copied back" werden.
- In der vorliegenden Erfindung veranlaßt ein anormaler Abschluß beim Lesen der Burst-Leitung die Busschnittstellensteuerung 20, ein zweites STATUS-Signal auszugeben. Das zweite STATUS-Signal informiert das Daten-Cachesteuergerät 14 über einen Abschluß der BURST-Read-Übertragung, durch die die angeforderte Daten-Cachespeicher-Leitung 32 nicht pufferbar ist (z. B. Busfehler, Leitung wird mit "cache gesperrt" usw. markiert). Das Auftreten eines Busfehlers, das von der Burst- Line-Anforderung zum Lesen verursacht wird, hindert das Daten-Cachesteuergerät 14 daran, den Datencachespeicher 16 mit der neuen Datencachespeicher-Leitung 32 (Ersatzeintrag) zu laden. Es ist deshalb unvernünftig, mit dem Herumschieben "push" der Datencachespeicherleitung 32, die zum Ersatz gewählt wurde, fortzufahren, da dies unnötigerweise einen Eintrag im Daten-Cachespeicher 16 leeren würde, der wieder gebraucht werden könnte. Wenn darüber hinaus erlaubt wird, mit dem Herausschicken "push" der Leitung zum Systembus 24 fortzufahren, kann dies das Auftreten einer weiteren Ungewöhnlichkeit (z. B. ein weiterer Busfehler) zur Folge haben und außerdem den Prozeß zur Verarbeitung von Ausnahmen, der erforderlich ist, um den Busfehler der Anforderung zum Lesen der Burst-Leitung zu korrigieren, komplizieren. Folglich wartet die Busschnittstellensteuerung 20 auf das Daten-Cachesteuergerät 14, um bestimmte Verwatungsfunktionen durchzuführen. Nach Abschluß der Verwaltungsfunktionen gibt das Daten-Cachesteuergerät 14 ein drittes STATUS-Signal aus, und erlaubt so der Busschnittstellensteuerung 20, den Normalbetrieb wieder aufzunehmen.
- Nach Empfang des zweiten STATUS-Signals von der Busschnittstellensteuerung 20 wird das Daten-Cachesteuergerät 14 die Inhalte des Halteregisters 22b neu in den Daten-Cachespeicher 16 laden. Mittels der TAG-Adresse, die in dem Halteregister 22b gespeichert ist, und der zusätzlichen Statusinformation überträgt das Daten- Cachesteuergerät 14 die Daten-Cachespeicher-Leitung 32 zurück in ihren Originalplatz im Daten-Cachespeicher 16. Das Daten-Cachesteuergerät 14 bestimmt die richtige Stelle für das Neuladen, indem die TAG-Adresse und die zusätzliche Statusinformation gelesen wird, die auf den Eingang zeigt, der in dem ausgewählten Satz neu geladen wird. Sobald die Daten-Cachespeicher-Leitung 32 neu geladen ist, setzt das Daten-Cachesteuergerät 14 das VALID-Bit (das gelöscht wurde, als die Daten-Cachespeicher-Leitung an das Halteregister 22b übertragen wurde) zurück. Nachdem das Daten-Cachesteuergerät 14 den Daten-Cachespeicher neu geladen hat, bleibt die Daten-Cachespeicher-Leitung 32 im Daten-Cachespeicher 16 gespeichert, bis diese zu einem späteren Zeitpunkt zum Ersatz ausgewählt wird.
- Obwohl die vorliegende Erfindung in einem bevorzugten Ausführungsbeispiel beschrieben wurde, ist es für den Fachmann klar, daß die beschriebene Erfindung auf verschiedene Arten geändert werden kann, und viele weitere Ausführungsbeispiele als die, die detailliert angeführt und oben beschrieben wurden, aufgenommen werden können. Eine Reduzierung der Implementierungskosten beim Neuladen wird erreicht, indem das Löschen und Rücksetzen des VALID-Bits an der richtigen Stelle im Daten-Cachespeicher 16 erfolgt. Dadurch wird die Daten-Cachespeicher- Leitung 32 im Daten-Cachespeicher 16 nach dem Neuladen wieder neu erfaßt (wieder validiert). Die Daten-Cachespeicher-Leitung 32 im Daten-Cachespeicher 16 bleibt so unbeeinflußt, ausgenommen bei dem VALID-Bit, das gelöscht wird, wenn das Halteregister geladen wird, und rückgesetzt, wenn der Daten-Cachespeicher 16 neu geladen wird (nach Auftreten des anormalen Abschlusses beim Lesen der Burst-Leitung). Dieses Verfahren beim Neuladen verhindert, daß ein zweiseitig gerichteter Pfad zwischen dem Daten-Cachespeicher 16 und dem Halteregister 22b bereitgestellt wird, und ermöglicht es, den geschobenen Eintrag in einem Taktzyklus neu zu validieren. Für den Fachmann sollte es klar sein, daß das Neuladen des Halteregisters 22b als Ergebnis eines anormalen Abschlusses beim Lesen der Burst-Leitung auftreten kann.
Claims (10)
1. Verfahren in einem Datenprozessor (10) mit einer Busschnittstellensteuerung
(20), die über einen Systembus (24) mit einem externen Speicher (26)
verbunden ist, um eine Vielzahl von adressierbaren Dateneinträgen aus dem
externen Speicher (26) zurückzuholen, und die Vielzahl von adressierbaren
Dateneinträgen in einen Copy-back Daten-Cachespeicher (16) zu laden, als
Antwort auf eine Anforderung für eine Leitungsübertragung (Lesen), die von
einem Cache-Steuergerät (14) generiert wird, und um einen veränderten
adressierbaren Dateneintrag, der zum Ersatz ausgewählt wurde, aus einem
temporären Halteregister (22b) im Cachespeicher an den externen Speicher
(26) als Antwort auf eine Anforderung für eine Leitungsübertragung
(Schreiben), die von diesem Cache-Steuergerät (14) generiert wurde, zu
übertragen, wobei dieses Verfahren, den Cachespeicher (16) mit dem
veränderten adressierbaren Dateneintrag bei Auftreten eines anormalen
Abschlusses dieser Leitungsübertragung (Lesen) neu lädt, durch Schritte
gekennzeichnet ist, um
diese Anforderung für die Leitungsübertragung (Lesen) und eine erste
Leseadresse, vorzugsweise gleichzeitig, an die Busschnittstellensteuerung (20)
zu einem Zeitpunkt zu übertragen, wenn der veränderte adressierbare
Dateneintrag im Cachespeicher (16) von dem Cache-Steuergerät (14) ungültig
gemacht wird, und aus dem Cachespeicher (16) in das Halteregister (22b)
geschrieben wird;
einen ersten adressierbaren Dateneintrag, der der ersten Leseadresse
entspricht, vom externen Speicher (26) über den Systembus (24) an den
Cachespeicher (16) zu übertragen;
den veränderten adressierbaren Dateneintrag aus dem Halteregister (22b)
erneut in den Cachespeicher (16) zu einem Zeitpunkt zu laden, wenn die
Busschnittstel lensteuerung
(20) den anormalen Abschluß der
Leitungsübertragung (Lesen) angibt, und der veränderte adressierbare Dateneintrag vom
Cache-Steuergerät (14) im Cachespeicher wieder gültig gemacht wird.
2. Ein Verfahren nach Anspruch 1, das außerdem den Schritt enthält, um die
Anforderung für diese Leitungsübertragung (Schreiben) an die
Busschnittstellensteuerung (20) zu übertragen, nachdem dieser veränderte
adressierbare Dateneintrag in das Halteregister (22b) geschrieben wurde und dadurch
eine Busübertragung von diesem veränderten adressierbaren Dateneintrag,
der in diesem Halteregister (22b) gespeichert ist, angefordert hat.
3. Ein Verfahren nach Anspruch 2, das, wenn die Busschnittstellensteuerung
(20) diese Leitungsübertragung (Lesen) anormal beendet, außerdem den
Schritt enthält, um ein erstes Statussignal von der Busschnittstellensteuerung
(20) an das Cache-Steuergerät (14) zu übertragen, und so das Auftreten des
anormalen Abschlusses der Leitungsübertragung (Lesen) anzeigt.
4. Ein Verfahren nach Anspruch 3, wobei der Schritt, die Anforderung für die
Leitungsübertragung (Lesen) und die Leseadresse gleichzeitig an die
Busschnittstellensteuerung (20) zu übertragen, auftritt, nachdem das Cache-
Steuergerät (14) einen Fehler im Cachespeicher (16) erkennt.
5. Ein Verfahren nach Anspruch 4, wobei der Schritt, den veränderten
adressierbaren Dateneintrag aus dem Halteregister (22b) neu in den
Cachespeicher (16) zu laden, auftritt, nachdem das Cache-Steuergerät (14) das erste
Statussignal von der Busschnittstellensteuerung (20) empfängt.
6. Verfahren in einem Datenprozessor (10) mit einer Busschnittstellensteuerung
(20), die über einen Systembus (24) mit einem externen Speicher (26)
verbunden ist, um eine Vielzahl von adressierbaren Dateneinträgen aus dem
externen Speicher (26) zurückzuholen, und die Vielzahl von adressierbaren
Dateneinträgen in einen Copy-back Daten-Cachespeicher (16) zu laden, als
Antwort auf eine Anforderung für eine Leitungsübertragung (Lesen), die von
einem Cache-Steuergerät (14) generiert wird, und um einen veränderten
adressierbaren Dateneintrag, der zum Ersatz ausgewählt wurde, aus dem
Cachespeicher (16) an den externen Speicher (26) als Antwort auf eine
Anforderung für eine Leitungsübertragung (Schreiben), die von diesem Cache-
Steuergerät (14) generiert wurde, zu übertragen, wobei dieses Verfahren, den
Cachespeicher (16) mit dem veränderten adressierbaren Dateneintrag bei
Auftreten eines anormalen Abschlusses dieser Leitungsübertragung (Lesen)
neu lädt, durch Schritte gekennzeichnet ist, um
diese Anforderung für die Leitungsübertragung (Lesen) und eine erste
Leseadresse, vorzugsweise gleichzeitig, an die Busschnittstellensteuerung (20)
zu einem Zeitpunkt zu übertragen, wenn der veränderte adressierbare
Dateneintrag im Cachespeicher (16) ungültig gemacht wird;
einen ersten adressierbaren Dateneintrag, der der ersten Leseadresse
entspricht, vom externen Speicher (26) über den Systembus (24) an den
Cachespeicher (16) zu übertragen;
den veränderten adressierbaren Dateneintrag im Cachespeicher (16) wieder
gültig zu machen, wenn die Busschnittstellensteuerung (20) angibt, daß die
Leitungsübertragung (Lesen) anormal beendet wurde.
7. Ein Verfahren nach Anspruch 6, das außerdem den Schritt enthält, um die
Anforderung für diese Leitungsübertragung (Schreiben) an
die Busschnittstellensteuerung (20) zu übertragen, nachdem dieser
veränderte adressierbare Dateneintrag im Cachespeicher (16) ungültig gemacht
wurde, und dadurch eine Busübertragung dieses veränderten adressierbaren
Dateneintrags angefordert wird.
8. Ein Verfahren nach Anspruch 7, das, wenn die Busschnittstellensteuerung
(20) diese Leitungsübertragung (Lesen) anormal beendet, außerdem den
Schritt enthält, um ein erstes Statussignal von der Busschnittstellensteuerung
(20) an das Cache-Steuergerät (14) zu übertragen, und so das Auftreten des
anormalen Abschlusses der Leitungsübertragung (Lesen) anzeigt.
9. Ein Verfahren nach Anspruch 8, wobei der Schritt, die Anforderung für die
Leitungsübertragung (Lesen) und die Leseadresse gleichzeitig an die
Busschnittstellensteuerung (20) zu übertragen, auftritt, nachdem das Cache-
Steuergerät (14) einen Fehler im Cachespeicher (16) erkennt.
10. Ein Verfahren nach Anspruch 9, wobei der Schritt, den veränderten
adressierbaren Dateneintrag im Cachespeicher wieder gültig zu machen, auftritt,
nachdem das Cache-Steuergerät (14) das erste Statussignal von der
Busschnittstellensteuerung (20) empfängt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/484,592 US5197144A (en) | 1990-02-26 | 1990-02-26 | Data processor for reloading deferred pushes in a copy-back data cache |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69127111D1 DE69127111D1 (de) | 1997-09-11 |
DE69127111T2 true DE69127111T2 (de) | 1998-02-19 |
Family
ID=23924779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69127111T Expired - Fee Related DE69127111T2 (de) | 1990-02-26 | 1991-01-10 | Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher |
Country Status (5)
Country | Link |
---|---|
US (1) | US5197144A (de) |
EP (1) | EP0444401B1 (de) |
JP (1) | JP3067112B2 (de) |
KR (1) | KR920000040A (de) |
DE (1) | DE69127111T2 (de) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838946A (en) * | 1990-04-14 | 1998-11-17 | Sun Microsystems, Inc. | Method and apparatus for accomplishing processor read of selected information through a cache memory |
JP2646854B2 (ja) * | 1990-12-18 | 1997-08-27 | 三菱電機株式会社 | マイクロプロセッサ |
US5295259A (en) * | 1991-02-05 | 1994-03-15 | Advanced Micro Devices, Inc. | Data cache and method for handling memory errors during copy-back |
DE69230129T2 (de) * | 1991-12-18 | 2000-06-15 | Sun Microsystems, Inc. | Schreibüberlappung mit Verhinderung des Überschreibens |
WO1993020514A1 (en) * | 1992-04-07 | 1993-10-14 | Video Technology Computers, Ltd. | Self-controlled write back cache memory apparatus |
KR100294105B1 (ko) * | 1992-04-29 | 2001-09-17 | 썬 마이크로시스템즈, 인코포레이티드 | 멀티 프로세서 컴퓨터 시스템의 일관성 카피-백 버퍼용 방법 및 장치 |
JP3242161B2 (ja) * | 1992-09-11 | 2001-12-25 | 株式会社日立製作所 | データプロセッサ |
JP2737820B2 (ja) * | 1992-09-24 | 1998-04-08 | インターナショナル・ビジネス・マシーンズ・コーポレイション | メモリアクセス方法およびシステム |
US5479636A (en) * | 1992-11-16 | 1995-12-26 | Intel Corporation | Concurrent cache line replacement method and apparatus in microprocessor system with write-back cache memory |
US5903911A (en) * | 1993-06-22 | 1999-05-11 | Dell Usa, L.P. | Cache-based computer system employing memory control circuit and method for write allocation and data prefetch |
US5897667A (en) * | 1993-11-16 | 1999-04-27 | Intel Corporation | Method and apparatus for transferring data received from a first bus in a non-burst manner to a second bus in a burst manner |
GB2286910B (en) * | 1994-02-24 | 1998-11-25 | Intel Corp | Apparatus and method for prefetching data to load buffers in a bridge between two buses in a computer |
US5526510A (en) * | 1994-02-28 | 1996-06-11 | Intel Corporation | Method and apparatus for implementing a single clock cycle line replacement in a data cache unit |
US5666509A (en) * | 1994-03-24 | 1997-09-09 | Motorola, Inc. | Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof |
US5586297A (en) * | 1994-03-24 | 1996-12-17 | Hewlett-Packard Company | Partial cache line write transactions in a computing system with a write back cache |
EP0683457A1 (de) * | 1994-05-20 | 1995-11-22 | Advanced Micro Devices, Inc. | Computersystem mit einer Snoopsteuerschaltung |
US5835787A (en) * | 1994-07-07 | 1998-11-10 | Lucent Technologies, Inc. | System for bi-directionally transferring a digital signal sample from a CODEC to a particular memory location and a second sample from memory to CODEC |
US5761709A (en) * | 1995-06-05 | 1998-06-02 | Advanced Micro Devices, Inc. | Write cache for servicing write requests within a predetermined address range |
US5778431A (en) * | 1995-12-19 | 1998-07-07 | Advanced Micro Devices, Inc. | System and apparatus for partially flushing cache memory |
US5920891A (en) * | 1996-05-20 | 1999-07-06 | Advanced Micro Devices, Inc. | Architecture and method for controlling a cache memory |
US6199152B1 (en) | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US5926832A (en) * | 1996-09-26 | 1999-07-20 | Transmeta Corporation | Method and apparatus for aliasing memory data in an advanced microprocessor |
US5960457A (en) * | 1997-05-01 | 1999-09-28 | Advanced Micro Devices, Inc. | Cache coherency test system and methodology for testing cache operation in the presence of an external snoop |
US6016532A (en) * | 1997-06-27 | 2000-01-18 | Sun Microsystems, Inc. | Method for handling data cache misses using help instructions |
US5920889A (en) * | 1997-06-27 | 1999-07-06 | Sun Microsystems, Inc. | Apparatus and method for write miss processing in a copy-back data cache with an allocating load buffer and a non-allocating store buffer |
US6078992A (en) * | 1997-12-05 | 2000-06-20 | Intel Corporation | Dirty line cache |
US6745298B2 (en) * | 1999-06-16 | 2004-06-01 | Intel Corporation | Internal processor buffering for implicit writebacks |
US6748589B1 (en) | 1999-10-20 | 2004-06-08 | Transmeta Corporation | Method for increasing the speed of speculative execution |
US6968469B1 (en) | 2000-06-16 | 2005-11-22 | Transmeta Corporation | System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored |
US6725341B1 (en) * | 2000-06-28 | 2004-04-20 | Intel Corporation | Cache line pre-load and pre-own based on cache coherence speculation |
US6725337B1 (en) * | 2001-05-16 | 2004-04-20 | Advanced Micro Devices, Inc. | Method and system for speculatively invalidating lines in a cache |
US6782453B2 (en) * | 2002-02-12 | 2004-08-24 | Hewlett-Packard Development Company, L.P. | Storing data in memory |
US6941393B2 (en) * | 2002-03-05 | 2005-09-06 | Agilent Technologies, Inc. | Pushback FIFO |
US7441081B2 (en) * | 2004-12-29 | 2008-10-21 | Lsi Corporation | Write-back caching for disk drives |
US20130124800A1 (en) * | 2010-07-27 | 2013-05-16 | Freescale Semiconductor, Inc. | Apparatus and method for reducing processor latency |
US9606929B2 (en) * | 2011-11-08 | 2017-03-28 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Simulated NVRAM |
JP5906881B2 (ja) * | 2012-03-27 | 2016-04-20 | 富士通株式会社 | 情報処理装置及び情報処理装置の制御方法 |
US9081689B2 (en) * | 2013-01-14 | 2015-07-14 | Freescale Semiconductor, Inc. | Methods and systems for pushing dirty linefill buffer contents to external bus upon linefill request failures |
KR102278583B1 (ko) * | 2018-12-26 | 2021-07-16 | 중앙대학교 산학협력단 | 모바일 기기에서의 상황정보를 기반으로 한 파일 입출력 관리 시스템 및 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4598357A (en) * | 1980-11-14 | 1986-07-01 | Sperry Corporation | Cache/disk subsystem with file number for recovery of cached data |
US4394733A (en) * | 1980-11-14 | 1983-07-19 | Sperry Corporation | Cache/disk subsystem |
US4445177A (en) * | 1981-05-22 | 1984-04-24 | Data General Corporation | Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions |
US4523206A (en) * | 1982-03-03 | 1985-06-11 | Sperry Corporation | Cache/disk system with writeback regulation relative to use of cache memory |
US4858111A (en) * | 1983-07-29 | 1989-08-15 | Hewlett-Packard Company | Write-back cache system using concurrent address transfers to setup requested address in main memory before dirty miss signal from cache |
CA1299767C (en) * | 1987-02-18 | 1992-04-28 | Toshikatsu Mori | Cache memory control system |
US4905188A (en) * | 1988-02-22 | 1990-02-27 | International Business Machines Corporation | Functional cache memory chip architecture for improved cache access |
DE3912705C2 (de) * | 1989-04-18 | 1996-06-20 | Siemens Nixdorf Inf Syst | Verfahren und Anordnung zur Steuerung des Datenaustausches bei Schreibanforderungen von Verarbeitungseinheiten an einen Cachespeicher |
-
1990
- 1990-02-26 US US07/484,592 patent/US5197144A/en not_active Expired - Fee Related
-
1991
- 1991-01-10 EP EP91100264A patent/EP0444401B1/de not_active Expired - Lifetime
- 1991-01-10 DE DE69127111T patent/DE69127111T2/de not_active Expired - Fee Related
- 1991-02-21 KR KR1019910002769A patent/KR920000040A/ko active IP Right Grant
- 1991-02-26 JP JP3114206A patent/JP3067112B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR920000040A (ko) | 1992-01-10 |
JP3067112B2 (ja) | 2000-07-17 |
JPH0659976A (ja) | 1994-03-04 |
DE69127111D1 (de) | 1997-09-11 |
EP0444401A2 (de) | 1991-09-04 |
EP0444401A3 (en) | 1992-09-02 |
US5197144A (en) | 1993-03-23 |
EP0444401B1 (de) | 1997-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69127111T2 (de) | Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher | |
DE69424767T2 (de) | Kohärente Schreibtransaktionen für Teilzeilen eines Cache-Speichers | |
DE69616465T2 (de) | Cachespeicher mit Datenvorausladung | |
DE69900797T2 (de) | Cache-Speicherkohärenzprotokoll mit unabhängiger Implementierung von optimierten Cache-Speicheroperationen | |
DE69130086T2 (de) | Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien | |
DE69331039T2 (de) | Rechnersystem mit einem Vorausholungscachespeicher | |
DE69031978T2 (de) | Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern | |
DE69709483T2 (de) | Ein Computersystem mit auf Anforderungstyp der CPU basierender Cache-Vorausladefähigkeit | |
DE69616223T2 (de) | Datenstromvorausladepufferspeicher mit Datenstromfilters | |
DE10262164B4 (de) | Computersystem mit einer hierarchischen Cacheanordnung | |
DE69327387T2 (de) | An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung | |
DE69319763T2 (de) | Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem | |
DE69524564T2 (de) | Kohärenz- und synchronisationsmechanismus für ein-/ausgangkanalsteuereinheiten in einem datenverarbeitungssystem | |
DE69514165T2 (de) | Mehrstufige Cache-Speicheranordnung | |
DE68926059T2 (de) | Organisation einer integrierten Cache-Einheit zur flexiblen Verwendung beim Entwurf von Cache-Systemen | |
DE69526996T2 (de) | Ein-/Ausgabeadressübersetzungsmechanismen | |
DE69432314T2 (de) | Cachespeicher mit aufgeteiltem pegel | |
DE69708188T2 (de) | Speichersteuerungseinheit | |
DE69031367T2 (de) | Blockübertragungs- und Koprozessorschnittstellenbefehl | |
DE69421058T2 (de) | Vorrichtung und Verfahren zur Cache-Speicher Kohärenz Überprüfung mit doppelter Abhörmechanismus | |
DE68922326T2 (de) | Speicherwarteschlange für eine festgekoppelte Mehrprozessorenkonfiguration mit einem zweistufigen Cache-Pufferspeicher. | |
DE10085373B4 (de) | Verfahren zum Flushen von Cache-Zeilen | |
DE68902193T2 (de) | Datenspeicheranordnung. | |
DE69025302T2 (de) | Hochleistungsrasterpuffer- und -cachespeicheranordnung | |
DE202007019502U1 (de) | Globaler Überlauf für virtualisierten Transaktionsspeicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |