DE69224649T2 - Speichereinheit mit mehrfach schreibbarem cachespeicher - Google Patents
Speichereinheit mit mehrfach schreibbarem cachespeicherInfo
- Publication number
- DE69224649T2 DE69224649T2 DE69224649T DE69224649T DE69224649T2 DE 69224649 T2 DE69224649 T2 DE 69224649T2 DE 69224649 T DE69224649 T DE 69224649T DE 69224649 T DE69224649 T DE 69224649T DE 69224649 T2 DE69224649 T2 DE 69224649T2
- Authority
- DE
- Germany
- Prior art keywords
- cache
- cache memory
- data
- pages
- address
- 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
- 238000005192 partition Methods 0.000 claims description 20
- 230000000737 periodic effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 9
- 238000000034 method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002123 temporal effect Effects 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
- 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
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- 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
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
- Die Erfindung betrifft allgemein ein Speicher-Verwaltungs- Gerät zur Verwendung in einem digitalen Datenprozessor und insbesondere Verfahrensweisen zur Verbesserung der Wirksamkeit eines Speicher-Systems, das die Wiedergewinnung und Speicherung der Daten in einem Cache-Speicher einschließt.
- Ein Speicher-Verwaltungs-System steuert den Zugriff von mehreren Anforderern in einem digitalen Datenverarbeitungssystem in Bezug auf Daten und einen Programmcode in einem Hauptspeicher. In vielen Computersystemen werden alle Speicher-Zugriff- Anforderungen, die Daten entweder abrufen oder speichern, durch einen Cache-Speicher durchgeführt. Ein Cache-Speicher ist ein Speicher, der als Integralbestandteil einer Verarbeitungseinheit im Computersystem eingebettet ist. Der Cache ist viel kleiner als der Hauptspeicher. Sein Zweck ist es, den Hauptspeicher zu emulieren, allerdings mit einer viel schnelleren Zugriffszeit. Da ein Cache kleiner als ein Hauptspeicher ist, kann er zu einer gegebenen Zeit nur eine Teilmenge der Inhalte des Hauptspeichers beinhalten. In einem Cache wird ein Inhaltsverzeichnis verwendet, um zu kennzeichnen, welche Teile des Hauptspeichers im Cache vorliegen.
- Der Stand der Technik enthält viele Verfahrensweisen, die die Fähigkeit der Cache-Speicher-Systeme verbessern, um Daten an die Zentralverarbeitungseinheit zu liefern und von dort zu empfangen. Das US Patent 4.208.716 von Porter, et al. erörtert einen Cache, der in mehrere Ebenen partitioniert ist. Während auf einer Ebene des Caches eine Schreibanforderung durchgeführt wird, konnen ein oder mehrere Lesevorgänge von den anderen Cache-Ebenen durchgeführt werden.
- Das US Patent 4.905.141 von Brenza erläutert die Verwendung eines Caches, der in Partitionen unterteilt ist, worin jeder einer Mehrzahl von Prozessoren auf irgendeine der Partitionen zugreifen können. Jeder Prozessor verfügt über eine Partition- Umsetztabelle (PLAT = Partition Look-Aside Table), die eine Adreßumwandlung durchführt, die die Partitionen und Kongruenz- Klassenbezeichner der Cache-Einträge kennzeichnet, auf die jüngst von diesem Prozessor verwiesen wurde. Der Cache ist in der Lage, für Daten, die in der PLAT sind, pro Partition pro Taktzyklus einen Speicher- oder Abrufvorgang durchzuführen. Nur eine Teilmenge der Daten im Cache ist in der PLAT aufgelistet. Wenn ein Verweis auf einen Datenwert gemacht wird, der sich nicht in der PLAT befindet, wird sodann an alle Partitionen eine globale Anforderung ausgegeben. Diese globale Anforderung benötigt alle Cache-Partitionen für einen Taktzyklus.
- US-Patent 4.794.521 von Ziegler et al. erörtert einen Cache, der in der Lage ist, gleichzeitig an der Beendigung mehrerer Cache-Zugriffe zu arbeiten. Der Cache wird in Abschnitte unterteilt. Jeder Abschnitt kann pro Takt einen Zugriff behandeln. Wenn der Zugriff einen Cache-Fehler bewirkt, ist der Cache daraufhin fähig, den ersten Zugriff in einen schwebenden Zugriff-Beendigungszustand zu setzen, während der Speicherzugriff stattfindet, und einen weiteren Cache-Zugriff zu gestatten. Jeder Abschnitt kann bis zu drei dieser schwebenden Zugriffe behandeln.
- Aus COMPUTER ARCHITECTURE NEWS, Bd. 19, Nr. 2, April 1991, Seiten 53-62, ist ein Hoch-Bandbreiten-Datenspeichersystem für Superskalar-Prozessoren bekannt. Das bekannte System umfaßt einen Cache-Speicher mit mehreren Cache-Bänke zur Bereitstellung mehrerer Cache-Anschlüsse.
- Aus den PATENT ABSTRACTS OF JAPAN, Bd. 9, Nr 37, (Seite- 335), (1760), 16.02.85 (das JP-A-59 117 782 entspricht) ist ein Gerät zur Verwaltung des Zugriffs auf Daten bekannt. Dieses Gerät schließt zwei Puffer-Speicher-Bänke ein, die auf der Grundlage des niedrigsten Bits einer Adresse, das einen ungeraden oder geraden Wert hat, ausgewählt werden. Auf dieselbe Bank kann nicht zugegriffen werden, um gleichzeitig einen Lese- und Schreibvorgang durchzuführen.
- Die Erfindung wird in Anspruch 1 aufgezählt. Bestimmte Ausführungsformen werden in den Ansprüchen 2 bis 6 aufgezählt.
- Bisher unterstützten Cache-Speicher-Systeme nicht mehrere Cache-Schreibvorgänge und Cache-Lesevorgänge in einem einzigen Taktzyklus. Die vorliegende Erfindung ist in einem verbesserten Computersystem mit einem Cache-Speicher verkörpert, in dem Anforderungen aus mehreren Quellen einschließlich mehrfacher Cache-Schreibvorgänge und mindestens eines Cache-Lesevorgangs in einem einzigen Taktzyklus erfüllt werden können. Diese Anforderungen, die gleichzeitig bedient werden können, werden automatisch an den geeigneten Cache- oder Speicher-Ressourcen geleitet.
- Nach einem Aspekt der Erfindung wird der Cache in zwei logisch unterschiedene Seiten-Gruppen aufgeteilt. Jede Seiten- Gruppe umfaßt eine Mehrzahl von Cache-Seiten. Jede Seiten-Gruppe ist mit einer eindeutigen Schreibadresse und einem eindeutigen Schreibdaten-Signal ausgestattet. Jede Cache Schreibanforderung besteht aus Daten und der Cache-Adresse und Seitennummer, in der die Daten gespeichert werden sollen. Wenn zwei Cache- Anforderungen den Versuch unternehmen, gleichzeitig in den Cache zu schreiben, sind beide Schreibvorgänge erfolgreich, sofern sie auf unterschiedlichen Seiten-Gruppen durchgeführt werden.
- Um effektiv Cache-Lese- und -Schreibanforderung aus dem Zentralverarbeitungsmodul (CPM = Central Processing Module) bereitzustellen, wird im CPM eine Speichereinheit (MU = Memory Unit) bereitgestellt. Die Speichereinheit ist verantwortlich, um den Daten-Cache zu verwalten.
- Nach einem weiteren Aspekt der Erfindung empfängt die MU gleichzeitig Speicherzugriff-Anforderungen von mehreren Anforderern innerhalb des Zentralverarbeitungsmoduls. Die MU weist verschiedene Ressourcen einschließlich der zwei Cache-Speicher- Schreibpfade und mindestens eines Cache-Speicher-Lesepfads zu. Um eine hohe Effektivität zu erzielen, bestimmt die MU, welche Ressourcen von jeder ihrer schwebenden Anforderungen angefordert werden und weist diese Ressourcen derart zu, daß mehrere Anforderungen gleichzeitig behandelt werden können.
- Fig. 1 ist ein Blockdiagramm eines Cache-Systems, das zwei gleichzeitige Schreibvorgänge unterstützt.
- Fig. 2 ist ein Blockdiagramm eines Zentralverarbeitungsmoduls, das das in Fig. 1 gezeigte Cache-System steuert.
- Fig. 3 ist ein Blockdiagramm einer Speichereinheit, die den in Fig. 1 gezeigten Cache steuert.
- Das Folgende ist eine Beschreibung eines beispielhaften Speicher-Verwaltungs-Systems in Übereinstimmung mit der vorliegenden Erfindung.
- Fig. 1 zeigt ein Cache-Speicher-System in Übereinstimmung mit der vorliegenden Erfindung. Cache-Speicher 2 ist ein Gruppen-Assoziativ-Speicher-Ein-Cache, der bis zu 4096 Datenwörter speichern kann. Der Cache-Speicher 2 ist in vier direkt abgebildete Cache-Seiten 10, 12, 14 und 16 unterteilt, wobei jede über eine 1024-Wort-Kapazität verfügt. Für jede 1024-Wort- Cache-Seite 10, 12, 14 und 16 gibt es ein entsprechendes Adreßfeld 4, das eine Adreßumsetzung durchführt, um zu bestimmen, ob ein spezieller Datenwert lokal im Cache gespeichert ist.
- Ein direkt abgebildeter Cache ist ein Cache, in dem die Daten, die mit irgendeiner bestimmten absoluten Adresse assoziiert sind, nur in einer festen Stelle innerhalb des Caches gespeichert werden können. Die zehn niederwertigsten Bits der absoluten Adresse des Datenwertes können verwendet werden, um die Stelle in einer Cache-Seite zu bestimmen, worin der Datenwert gespeichert wird. Der dritte bis zehnte Bit der absoluten Adresse bestimmt die Kongruenzklasse für einen Datenwert.
- Die Kongruenzklasse adressiert vier Worte, die aufeinanderfolgende Adreßwerte aufweisen, die vom Hauptspeicher in den Cache geholt werden, um einen Vorteil aus der räumlichen Bezugs- Lokalität zu ziehen. Die räumliche Bezugs-Lokalität ist die beobachtete Neigung der Programme, auf Daten zu verweisen, die vom Speicher geholt werden und die eng zusammenliegende Adreßwerte aufweisen. Die Gruppe von Worten als Reaktion auf eine Anforderung für ein einziges Speicherwort wird häufig als eine Zeile von Speicherworten bezeichnet. Die zwei niederwertigsten Bits des Zehn-Bit-Adreßwertes, die als die Wortnummer definiert werden, bestimmen die Stellung eines speziellen Datenwortes innerhalb der Zeile von Worten, die von der Kongruenzklassen- Adresse angezeigt wird.
- Jedes Adreßfeld 4 enthält 256 Einträge, von denen jeder auf eine separate Vier-Wort-Zeile im Cache verweist; für jede Kongruenzklasse eine Zeile. Um zu bestimmen, ob ein Datenwert örtlich im Cache gespeichert wird, wird auf den Eintrag in dem Adreßfeld 4 zugegriffen, der der Kongruenzklasse des Datenwertes entspricht. Der Adreßfeldeintrag hält die 19 höchstwertigen Bits (Seitenauswahlfeld bzw. PSF = Page Select Field genannt) der absoluten Adresse des Datenwertes, der in diesem Abschnitt des Caches gespeichert ist. Wenn das Seitenauswahlfeld im aus einem der vier Adreßfelder ausgewählten Eintrag mit den 19 höchstwertigsten Bits der Adressen der angeforderten Daten übereinstimmt, kann sich dann der angeforderte Datenwert im Cache- Speicher 2 befinden. Der Adreßfeldeintrag umfaßt auch Flags, die anzeigen, ob der Daten-Cache-Eintrag gültig ist und ob er seit dem ersten Abrufen aus dem Hauptspeicher in den Cache 2 abgeändert wurde (nicht gezeigt). Wenn in dem Adreßfeld 4 für die gewünschte Kongruenzklasse und für das Seitenauswahlfeld ein gültiger Eintrag existiert, enthält sodann die Cache-Seite 10, 12, 14 oder 16, die dem Adreßfeld 4 entspricht, das den übereinstimmenden PSF-Eintrag enthält, den gewünschten Datenwert.
- Wenn im Cache 2 ein Datenwert gespeichert wird, bestimmen die Kongruenzklasse und die Wortnummer der absoluten Adresse des Datenwertes die Stelle innerhalb einer der Cache-Seiten 10, 12, 14 und 16, in die der Datenwert gespeichert werden muß. Dieser Speichervorgang erfordert für gewöhnlich das Ersetzen der Daten in einer der Seiten im Cache 2. Um zu wählen, welche der vier Seiten 10, 12, 14 oder 16 verwendet wird, wird ein LRU- Algorithmus (der die längste Zeit nicht benutzt wurde LRU = Least Recently Used) verwendet. Der LRU-Algorithmus bezieht den Vorteil aus der zeitlichen Bezugs-Lokalität, was eine anerkannte Neigung von Programmen ist, auf dieselben Datenwerte in einer ziemlich kurzen Zeitspanne zu verweisen.
- Die Zeile in den Datenwerten in der Seite 10, 12, 14 oder 16, auf die die längste Zeit nicht zugegriffen wurde, wird gewählt, um von einer Vier-Worte-Zeile ersetzt zu werden, die den angeforderten Datenwert enthält. Das Bereitstellen von vier Seiten 10, 12, 14 und 16 erlaubt es dem Cache 2, bis zu vier Datenworte zu speichern, deren absoluten Adressen auf dieselbe Cache-Adresse abgebildet sind, bevor es nötig ist, irgendwelche Daten abzuweisen. Dies verbessert den Cache-Treffer-Prozentsatz, der das Verhältnis der erfüllten Datenanforderungen in Bezug auf die Gesamtanzahl der Anforderungen darstellt.
- In der vorliegenden Erfindung werden die Cache-Seiten 10, 12, 14, 16 in zwei Gruppen 20 und 22 unterteilt, von denen jede aus zwei Seiten 10 und 12 in der Gruppe 20 und 14 und 16 in der Gruppe 22 besteht. Es gibt zwei Schreib-Adreß-Register 24 und 26; zwei Schreib-Daten-Register 30 und 32; und vier Schreib- Freigabe-Register 40, 42, 44 und 46. Datenwerte werden auf Seite 10, 12, 14 oder 16 geschrieben, wenn das jeweilige Schreib- Freigabe-Register 40, 42, 44 oder 46 gesetzt wird. Wenn das System entweder auf die Seite 10 oder auf die Seite 12 schreibt, werden die im Schreib-Daten-Register 30 bereitgestellten Daten in den Cache geschrieben, und zwar an einer im Schreib-Adreß- Register 24 bereitgestellten Adresse. Wenn auf ähnliche Weise das System entweder an die Seite 14 oder die Seite 16 schreibt, werden die im Schreib-Daten-Register 32 bereitgestellten Daten in den Cache geschrieben, und zwar an einer im Schreib-Adreß- Register 26 bereitgestellten Adresse.
- Wenn zwei gleichzeitige Anforderungen zum Schreiben von Daten in den Cache erfolgen, wird die Leistung verbessert, indem beide Anforderungen in einer einzigen Taktperiode bedient werden, und zwar solange die zwei Anforderungen auf verschiedene Seiten-Gruppen 20 und 22 schreiben. Sobald zwei Schreibanforderungen für dieselbe Cache-Seiten-Gruppe gleichzeitig erfolgen, wird eine der Anforderungen in eine Warteschlange gesetzt, und zwei Taktzyklen werden benötigt, um beide Anforderungen zu bedienen.
- Es sollte dem Fachmann auf dem Gebiet klar sein, daß eine größere Anzahl von Schreib-Adreß-Registern 24, 26 und Schreib- Daten-Registern 30, 32 bereitgestellt werden können. Vor allem könnten die Anzahl der Seiten im Cache-Speicher erhöht und die Schreib-Adreß-Register und Schreib-Daten-Register gleich der Anzahl an Cache-Seiten gesetzt werden. In dieser alternativen Ausführungsform wären in einem einzigen Taktzyklus gleichzeitige Cache-Schreibvorgänge möglich, solange die Datenwerte auf jeweils unterschiedliche Seiten geschrieben werden. Diese Änderung kann die Cache-Leistung in bezug auf das beispielhafte System verbessern, und zwar für die gleichzeitigen Schreibanforderungen auf Seiten, die sich in der beispielhaften Ausführungsform in derselben Seiten-Gruppe befinden würden. Es könnte jedoch eine komplexere Logik von Nöten sein, um die gleichzeitigen Schreibanforderungen für dieselbe Seite zu erfassen und zu lösen, als sie erforderlich ist, wenn die beispielhaften Seiten- Gruppen verwendet werden.
- In der vorliegenden Ausführungsform der Erfindung, wird von der Eingabe-Prioritätslogik einer Speichereinheit, die den Cache-Speicher 2 enthält, allen Cache-Partitionen ein einziger Lese-Adreß-Wert zugewiesen. Der Ziel-Datenwert wird dann unter den Werten ausgewählt, die durch die verschiedenen Partitionen bereitgestellt werden. Die Speichereinheit und die Eingabe- Prioritätslogik werden unten in Bezugnahme auf Fig. 3 beschrieben. Sowohl der Lesevorgang als auch die zwei Schreibvorgänge können in einer einzigen Periode des System-Taktsignals durchgeführt werden. In der beispielhaften Ausführungsform der Erfindung wird der Lesevorgang zu einem Zeitpunkt durchgeführt, der im Taktzyklus später liegt als die parallelen Schreibvorgänge.
- Es wird erwogen, daß das beispielhafte Cache-Speicher- System ausgeweitet werden kann, um mehrere gleichzeitige Lesevorgänge zu erlauben. Diese Erweiterung könnte ohne eine bedeutsame Veränderung am Cache-Speicher stattfinden. In einer erwogenen Durchführungsform würde die Eingabe-Prioritätslogik der Speichereinheit abgeändert werden, um für jede Partitions- Gruppe bzw. jede einzelne Partition einen getrennten Lese-Adreß- Wert bereitzustellen.
- Das Cache-Speicher-System 2 ist ein Teil des Datenverarbeitungssystems, der eine Befehlsdurchführungseinheit und einen Hauptspeicher einschließt. Um die mithilfe dieser Cache- Speicherarchitektur erreichten Vorteile auf geeignete Weise zu beschreiben, ist es dienlich, es in seinen zugedachten Umgebung zu setzen.
- Fig. 2 zeigt ein Blockdiagramm eines zentralen Verarbeitungsmoduls (CPM = Central Processing Module) 50, das in Systemen wie beispielsweise dem Unisys A19 Verarbeitungssystem verwendet wird. Das CPM 50 umfaßt vier primäre Untersysteme: die Speichereinheit (MU = Memory Unit) 52, die den Cache-Speicher 2 einschließt, die Durchführungseinheit (EU = Execution Unit) 54, die Bezugseinheit (RU = Reference Unit) 56 und die Code-Einheit (CU = Codeeinheit) 58. Im CPM 50 ist ein Taktsignalgenerator 51 eingeschlossen, der jeder der Einheiten 52, 54, 56 und 58 ein periodisches Taktsignal CK zur Verfügung stellt.
- Die MU 52 ist die Verbindung zwischen allen Untersystemen des CPM 50 und dem Hauptspeicher 60. Die MU 52 ist für das Verwalten aller Speicherabläufe als auch für die Durchführung aller Datenabrufe und Speichervorgänge verantwortlich, die von der Bezugseinheit 56 angefordert werden. Die MU 52 verwaltet das Cache-Speicher-System 2 und die anderen unten beschriebenen Ressourcen, die verfügbar sind, um auf gespeicherte Datenwerte zuzugreifen, damit die effektive Speicher-Zugriffszeit verkürzt wird.
- Die Bezugseinheit 56 stellt für die MU 52 Jobs zur Verfügung, die Anforderungen für die MU sind, Daten abzurufen. Zusätzlich stellt die RU 56 die Adreßwerte für Speicheranforderungen zur Verfügung, die verarbeitet werden, wenn die zu speichernden Datenwerte von der EU 54 bereitgestellt werden. Da der Cache 2 ein Speicher-Ein-Cache-Speicher ist, ruft die MU 52 Datenwerte ab, die vom Hauptspeicher überschrieben werden sollen, sobald die Adreßwerte von der RU 56 bereitgestellt werden. Wenn die EU 54 den Datenwert bereitstellt, kann er solchermaßen lokal im Cache-Speicher 2 gespeichert und nur zum Hauptspeicher 60 zurückgegeben werden, wenn er abgewiesen werden soll.
- Im allgemeinen werden die Datenwerte durch den verteilten Datenpuffer (Distributed Data Buffer = DDB) 92 zur oder aus der MU 52 übertragen. Daten können durch die MU 52, EU 54 und RU 56 aus dem DDB 92 gelesen und dorthin geschrieben werden. Dieser Puffer ist eine allgemeine Registerdatei, die in der EU 54, RU 56 und MU 52 dupliziert wird. In der beispielhaften Ausführungsform befehligt die RU 56 die MU 52, den DDB zu verwenden, um den Datenwert durch den Cache-Speicher 2 zum oder aus dem Hauptspeicher 60 zu übertragen.
- Die Code-Einheit 58 stellt der MU 52 Jobs zur Verfügung, die Anforderungen sind, um den Code aus dem Hauptspeicher 60 abzurufen. Wie unten dargestellt, werden diese Anforderungen durch die MU 52 mit einer geringeren Priorität als Datenanforderungen behandelt.
- Die Durchführungseinheit 54 wertet Befehle aus, die von der CU 58 bereitgestellt werden, indem Datenwerte verwendet werden, die von der MU 54 bereitgestellt werden, und zwar als Reaktion auf die Abrufanforderungen, die von der RU 52 bereitgestellt werden. Die Daten, die durch die Auswertung der Anweisungen erzeugt werden, werden über den DDB 92 der MU 54 übergeben, um im Cache-Speicher 2 gespeichert zu werden.
- Fig. 3 ist ein Blockdiagramm einer Speichereinheit 52. Die MU 52 umfaßt sechs Ressourcen, die verwendet werden, um zwischen den Adreßfeldern 4, dem DDB 92, den Daten-Cache-Seiten 10, 12, 14 und 16, und dem Hauptspeicher 60 Datenübertragungen durchzuführen. Diese Ressourcen umfassen den Adreßfeld-Pfad (A-Pfad) 80, den DDB-Pfad (B-Pfad) 82, den Cache-Lesepfad (C-Pfad) 84, die zwei Cache-Schreibpfade 86, 88 (W0 und W1), und den MAU- Anforderungspfad (M-Pfad) 90. Die Eingabe-Prioritätslogik (IPL = Input Priority Logic) 76 nimmt Eingabesignale von mehreren Funktionen (bzw. Anforderern) an, die einen Cache- und Hauptspeicherzugriff ersuchen. Jeder dieser Anforderer verwendet eine unterschiedliche Kombination von Ressourcen der MU 52.
- Die IPL 76 dient als Haupt-Job-erzeugendes Steuerelement für die MU 52. Kein Anforderer benötigt einzeln alle Ressourcen der MU 52. Entsprechend weist die IPL 76 so viele Ressourcen wie möglich zu, um mehrere Anforderer innerhalb einer einzigen Periode des System-Taktsignals CK zu bedienen. Wenn die IPL 76 infolge der Ressourcen-Konflikte nicht alle Anforderer innerhalb einer einzigen Periode des System-Taktsignals CK bedienen kann, werden die unverarbeiteten Jobs zusammen mit den dazugehörigen Daten in einer Warteschlange in der IPL gehalten. Die IPL 76 versucht, diese Jobs während der nachfolgenden Taktzyklen bis zu ihrem Abschluß neu zu erzeugen.
- Die IPL 76 empfängt Eingabesignale, die Ressourcen anfordern, und zwar aus fünf verschiedenen Anforderern. Diese Anforderungen, die auch als Jobs bekannt sind, erhalten von der IPL eine Priorität. Die Anforderer (in Prioritäts-Reihenfolge) sind die Speicher-Zugriffseinheit (MAU = Memory Access Unit) 70, die Speicher-Adreßliste (SAL = Store Address List) 72, die Rückgabe- und Ersetz-Warteschlange (RRQ = Return Replace Queue) /asynchrone Bezugswarteschlange (DRQ = Deferred Reference Queue) 74 und die Bezugseinheit (RU) 56. Die SAL 72 und die RRQ/DRQ 74 sind Funktionen innerhalb der MU 52. Die verbleibenden Eingabesignale werden von der IPL 76 aus in bezug auf die MU externen Funktionen empfangen.
- Die Prioritäts-Reihenfolge ist angelegt, um die Integrität des Betriebs von Cache 2 sicherzustellen. Da ein Speicher-Ein- Cache verwendet wird, müssen Jobs aus der MAU 70, die Daten aus dem Hauptspeicher 60 zum Cache 2 bewegen, vor den Jobs aus der SAL 72 auftreten, die Daten in den Cache 2 speichern.
- Zum Beispiel kann ein Speichervqrgang wie folgt stattfinden: wenn die CU 58 einem Speicherbefehl begegnet, leitet sie den Befehl an die RU 56 weiter, die die Datenadresse im Befehl in eine Speicheradresse umwandelt. Die RU 56 verlangt daraufhin einen Speicherlesevorgang der MU 52, um die Daten im Cache 2 zu lokalisieren und plaziert gleichzeitig einen Eintrag für den Speichervorgang in die SAL 72 der MU 52. Wenn die Ziel- Speicheradresse im Cache-Speicher lokalisiert wird und der Datenwert, der in dieser Adresse gespeichert werden muß, als gültiger Eintrag in einem DDB-Register markiert wird, wird der Eintrag in der SAL 72 als Anforderung aktiv, um den Datenwert im bezeichneten DDB-Register im Cache-Speicher 2 zu speichern.
- Wie oben dargestellt, kann die Bezugseinheit jeden von der Codeeinheit bereitgestellten Befehl verarbeiten, um mehrere Speicherzugriff-Anforderungen zu erzeugen. Aus verschiedenen Befehlen erzeugte Speicherzugriff-Anforderungen können zu jeder gegebenen Zeit in der IPL 76 schwebend sein. Alle schwebenden Speicherzugriff-Anforderungen, die von der MU 52 gleichzeitig behandelt werden können, werden gleichzeitig von der IPL 76 erzeugt.
- Wenn zur Zeit, da der Wert im DDB-Register gültig wird, infolge eines dazwischenkommenden Abweisungs-Vorgangs die Ziel- Speicheradresse nicht im Cache lokalisiert wird, gibt die MU eine Anforderung aus, um die Daten aus dem Hauptspeicher 60 zu lesen, und hält die Schreibanforderungen als inaktiven Eintrag in der SAL 72. Die IPL 76 verarbeitet immer den ältesten aktiven SAL-Eintrag.
- Die RRQ 74a und die DRQ 74b teilen sich einen einzigen Eingabeanschluß, um der IPL 76 Signale bereitzustellen. Es gibt eine Logik innerhalb der RRQ/DRQ 74, um sicherzustellen, daß die RRQ-Jobs gegenüber den DRQ-Jobs immer die Priorität erhalten. Jobs werden in die asynchrone Bezugswarteschlange 74b gesetzt, wenn ein Versuch unternommen wird, Daten abzurufen, bevor sie im Cache gespeichert werden. Jobs werden in die Rückgabe- und Ersetzwarteschlange 74a gesetzt, wenn Daten in den Hauptspeicher geschrieben oder daraus abgerufen werden müssen, und die Ressourcen jedoch nicht verfügbar sind. Im Falle, daß von einem RRQ Job 74a und einem DRQ Job 74b derselbe Datenwert im Hauptspeicher 60 angefordert wird, ist es erforderlich, die Verzögerung des DRQ Jobs 74b (z.B. eine Übertragung aus dem Cache 2 zum DDB 92) bis zur Erfüllung des RRQ Jobs 74a (z.B. eine Übertragung aus dem Hauptspeicher 60 zum Cache 2) fortzusetzen.
- Die RRQ/DRQ Jobs 74 werden vor den gegenwärtigen Jobs aus der RU 56 verarbeitet. Dies sichert die richtige Job- Reihenfolge, da die RRQ/DRQ Jobs früher ausgegeben und dann verzögert wurden, indem sie in die Warteschlange gesetzt wurden.
- Für jeden Taktzyklus versucht die IPL 76 zunächst, einen MAU Job 70 zu bedienen. Mit den verbleibenden Ressourcen versucht die IPL 76 daraufhin, einen SAL Job 782 zu bedienen. Wenn es immer noch nicht zugeordnete Ressourcen gibt, versucht die IPL, die RRQ/DRQ 74 zu bedienen, und wenn einige der Ressourcen dann immer noch verfügbar sind, versucht sie, einen Job aus der RU 56 zu bedienen. Zusätzlich zu den von der IPL bedienten Jobs, wird der MAU 70 ein Eingabesignal aus der Codeeinheit 58 zur Verfügung gestellt, um über den MAU- Zugriffspfad 90 den Code aus dem Hauptspeicher 60 abzurufen. Anforderungen aus der CU 58 haben immer die niedrigste Priorität, so daß sie solange nicht bedient werden, bis alle Jobs aus den anderen Anforderern (die über die IPL 76 gesteuert werden), die den MAU-Zugriffspfad 90 benötigen, abgeschlossen sind. Die Anforderungen aus der CU 58 werden zuletzt verarbeitet, da sie zusätzliche Anweisungen für die CPU bringen und es so wahrscheinlich ist, daß noch mehr Speicheranforderungen erzeugt werden.
- Wie oben beschrieben, versucht die MU 52, gleichzeitig mehrere schwebende Anforderungen zu verarbeiten, indem ihre verfügbaren Ressourcen unter den Anforderungen zugeordnet werden. TABELLE 1 veranschaulicht die Ressourcen, die erforderlich sein können, um Jobs abzuschließen, die von jedem der Anforderer bereitgestellt werden. Die verfügbaren Ressourcen umfassen folgendes: einen Adreßfeld-Nachschlag- und Aktualisierungspfad (A), einen verteilten Datenpuffer (DDB)-Schreibpfad (B), einen Daten-Cache-Lesepfad (C), einen MAU-Anforderungspfad (M) und einen Daten-Cache-Schreibpfad (W). In Tabelle 1 bedeutet der Begriff "Undef" (unbestimmt), daß der Klassenwert für den Anforderer nicht definiert ist. TABELLE 1 Anforderer-Pfad-Erfordernisse
- Man beachte:
- CU-Anforderungen werden der IPL nicht zur Verfügung gestellt, sondern direkt der MAU zur Verfügung gestellt. CU- Anforderungen werden nur bedient, wenn kein IPL-Anforderer den M-Pfad verwendet, um auf den Hauptspeicher zuzugreifen.
- Eine Anforderung besteht aus einem Anforderung-gültig-Bit, einen Zwei-Bit-Anforderung-Klassencode und allen Daten, die gebraucht werden, um die verlangte Transaktion abzuschließen. Wenn die IPL 76 einem Job eines Anforderers eine Ressource zuordnet, stellt die IPL den gültigen Bit, den Klassencode und die Daten in der Anforderung der zugeordneten Ressource zur Verfügung. Wie in der TABELLE gezeigt, kann ein einziger Anforderer bis zu vier verschiedene Klassen von Anforderungen erzeugen, die alle unterschiedliche Ressourcen-Erfordernisse aufweisen. Es gibt keine Einschränkung in Bezug auf die Klassencodes der Anforderungen, die von mehrerer Anforderern in einem einzigen CPU-Taktzyklus vorgelegt werden. Allerdings führt jeder Konflikt in den Ressource-Erfordernissen unter den schwebenden Jobs zu einer Verzögerung durch die IPL für einen oder mehreren der Jobs.
- Das Folgende ist ein Beispiel der Wirkungsweise des Systems. Zu Beginn eines Taktzyklus bedient die IPL 76 einen Klasse 1 Job aus der MAU 70, der lediglich die Verwendung des ersten Daten-Cache-Schreibpfads, WO 86, benötigt. Die IPL 76 hat Ressourcen, die verfügbar sind, um einen Klasse 2 SAL Job 72 zu bedienen, der nur den zweiten Daten-Cache-Schreibpfad, W1 88, verwendet. Sogar mit diesen zwei Jobs gibt es immer noch Ressourcen, die verfügbar sind, um einen Klasse 2 Job aus der RRQ 74a zu bedienen. Dieser Job verwendet nur den MAU- Anforderungspfad 90. Wenn schließlich der folgende schwebende Job aus der RU ein Klasse 1 Job ist, der den DDB-Schreibpfad 82 benötigt, können daraufhin alle vier Anforderungen in einem einzigen Taktzyklus bedient werden.
- Das obige Beispiel veranschaulicht zwei Merkmale der Erfindung. Als erstes kann das System zwei getrennte Cache- Schreibjobs bedienen, und zwar jeweils einen aus der MAU 70 und aus der SAL 72 in einem einzigen Taktzyklus, obwohl es in der offenbarten Ausführungsform erforderlich ist, daß sich diese Schreibjobs in jeweils verschiedenen Seiten-Gruppen befinden. Die IPL 76 verwendet die gezeigte zweifache Schreib-Cache- Fähigkeit, wie in Fig. 1 gezeigt und zuvor erörtert. Als zweites ist das System in der Lage, in einem einzigen Taktzyklus bis zu vier unterschiedliche Jobs zu bedienen. Wie in TABELLE 1 gezeigt, können mehrere Kombinationen von Jobs zu vier gleichzeitigen Job-Ausführungen in einem einzigen Taktzyklus führen. Diese Kombinationen können zwei Schreib- und zwei Lesevorgänge bzw. einen Schreib- und drei Lesevorgänge (von denen einer im Gegensatz zum Cache 2 ein Lesevorgang aus dem Hauptspeicher 60 ist) einschließen.
- Ein zusätzliches Merkmal der vorliegenden Erfindung ist der Cache-Füll-Vorgang. Dieser Vorgang gestattet eine weitere Verbesserung in der Verwendung der Ressourcen Wie in TABELLE 1 gezeigt, benötigt eine RU 56 Anforderung für gewöhnlich den DDB- Schreibpfad 82; zusätzlich können der A-Pfad 80 und C-Pfad 84 benötigt werden. Wenn während eines gegebenen Taktzyklus eine Anforderung aus der RU 56 nicht verarbeitet werden kann, da ein höherer Prioritäts-Anforderer den B-Pfad 82 oder den C-Pfad 84 verwendet, während der A-Pfad 80 jedoch immer noch verfügbar ist, wird ein Cache-Füll-Job durchgeführt.
- Für diesen Job wird der RU 56 Anforderung erlaubt, ein Adreßfeld-Nachschlagen durchzuführen, um die Cache-Stellung für die Anforderung zu bestimmen. Wenn beim Cache-Füll-Job ein Cache-Treffer auftritt, wird keine Tätigkeit durchgeführt und die RU-Anforderung während des nachfolgenden Taktzyklus aus der IPL neuerlich ausgegeben. Wenn jedoch ein Cache-Fehler auftritt, wird daraufhin eine Anforderung an die MU MAU Anforderung- Warteschlange (MU MAU Request Queue = MUQ) 96 ausgegeben, die die Anforderung als MU-Job speichert, wobei die Übertragung der Daten aus dem Hauptspeicher 60 zum Cache 2 anfordert wird. Der Cache-Füll-Job erlaubt, daß die Anforderung auf Daten aus dem Hauptspeicher 60 mindestens einen Taktzyklus früher ausgegeben wird, als es möglich wäre, wenn der RU Job 56 warten müßte, daß der B-Pfad 82 und/oder der C-Pfad 84 verfügbar wird.
- Das Folgende Pseudo-Code-Programm-Segment veranschaulicht den Job-Zuordnungs-Algorithmus, der von der IPL 76 verwendet wird.
- Dieses Programmsegment veranschaulicht die Wirkungsweise der Eingabe-Prioritätslogik (IPL) 76. Der Klarheit zuliebe wird das Verfahren in der beispielhaften Ausführungsform der Erfindung in Form eines Programms dargestellt, wobei der Algorithmus jedoch als eine Finit-Zustand-Maschine implementiert wird, die Logikschaltungen verwendet. Ein durchschnittlicher Fachmann auf dem Gebiet des Entwurfs von Logikschaltungen könnte aus dem Programmsegment und aus der Beschreibung der in der Beschreibung aufgeführten IPL 76 Schaltlogik ohne weiteres eine geeignete Schaltlogik für die IPL 76 bereitstellen.
- Die IPL 76 nimmt die Jobs an, die während eines Zyklus des System-Taktsignals durchgeführt werden, und wählt dann während des folgenden Taktzyklus die Jobs und gibt sie aus. Aus dem obigen Programmsegment wird ersichtlich, daß Jobs aus der MAU 70 immer durchgeführt werden. Jobs, die aus der SAL 72, RRQ/DRQ 74 und RU 56 stammen, werden nur in der erläuterten Prioritäts- Reihenfolge durchgeführt, und das lediglich, wenn es keinen Konflikt mit einem Job mit einer höheren Priorität gibt. Jobs, die aufgrund der Nicht-Verfügbarkeit benötigter Ressourcen nicht abgeschlossen werden können, werden in der IPL 76 gehalten, und die IPL versucht, sie während der nächsten aufeinanderfolgenden Taktzyklen zu verarbeiten.
- Es sollte dem Fachmann klar sein, daß viele Veränderungen der hierin beschriebenen Ausführungsformen erwogen werden. Diese beinhalten unterschiedliche Cache-Größen, eine unterschiedliche Anzahl von Cache-Seiten, eine unterschiedliche Seiten-Gruppengröße und eine unterschiedliche Anzahl von Seiten-Gruppen sowie eine unterschiedliche Zahl von Anforderern und eine unterschiedliche Zahl von verfügbaren Ressourcen
- Wenn technische Merkmale in den Ansprüchen mit Bezugszeichen versehen sind, so sind diese Bezugszeichen lediglich zum besseren Verständnis der Ansprüche vorhanden. Dementsprechend stellen solche Bezugszeichen keine Einschränkungen der Tragweite solcher Elemente dar, die exemplarisch durch solche Bezugszeichen gekennzeichnet sind.
Claims (6)
1. Ein Gerät zur Verwaltung eines gleichzeitigen Zugriffs
auf Datenwerte in einem Cache-Speicher (2), worin die Datenwerte
über einen entsprechenden Adreßwert verfügen, wobei der Cache-
Speicher (2) in einer Mehrzahl von Cache-Speicher-Partitions-
Gruppen (20, 22) angeordnet ist, wobei die Cache-Speicher-
Partitions-Gruppen (20, 22) in einer Mehrzahl von Seiten (10,
12, 14, 16) partitioniert sind, wobei das Gerät weiterhin
folgendes umfaßt:
ein Adreßfeld-Mittel (4) zum Erzeugen von Adreßwerten von
Stellen in den Seiten (10, 12, 14, 16) im Cache-Speicher (2);
ein Eingabe-Logikmittel (76), um einige Seiten aus der
Mehrzahl von Seiten (10, 12, 14, 16) mit der Mehrzahl von Cache-
Speicher-Partitions-Gruppen (20, 22) zu assoziieren, worin jede
Cache-Speicher-Partitions-Gruppe (20, 22) mindestens zwei Seiten
(10, 12, 14, 16) einschließt;
ein Mittel (40, 42, 44, 46), das auf die erzeugten
Adreßwerte von jeweiligen ersten und zweiten Datenwerten
reagiert, um jeweilige erste und zweite Cache-Speicher-
Partitions-Gruppen (20, 22) freizugeben, in denen erste und
zweite Datenwerte geschrieben werden sollen;
ein Mittel (24, 26, 30, 32) zum Umwandeln der ersten und
zweiten Adreßwerte der ersten und zweiten Datenwerte in erste
und zweite Cache-Speicher-Adreßwerte innerhalb der jeweiligen
ersten und zweiten ausgewählten Cache-Speicher-Partitions-
Gruppen (20, 22), wobei das Mittel (24, 26, 30, 32) zum
Umwandeln ein Mittel zum Bereitstellen der ersten und zweiten
Cache-Speicher-Adreßwerte und der ersten und zweiten Datenwerte
für jede der Seiten (10, 12, 14, 16) einschließt;
wobei das Reaktionsmittel (40, 42, 44, 46) ein Mittel zur
Freigabe der Speicherung der ersten und zweiten Datenwerte
einschließt, indem die jeweiligen ersten und zweiten Cache-
Speicher-Adreßwerte verwendet werden; und
ein Mittel (50), um gleichzeitig erste und zweite
Datenwerte in jeweiligen ersten und zweiten Cache-Speicher-
Seiten (10, 12, 14, 16) zu speichern.
2. Das Gerät nach Anspruch 1, das weiterhin folgendes
umfaßt:
ein periodisches Taktsignal-Mittel (51) zum Erzeugen eines
Systemtaktes, und
ein Mittel (52, 56) zum Schreiben von Daten in den Cache-
Speicher-Partitions-Gruppen (20, 22) und zum Lesen der Daten aus
den Cache-Speicher-Partitions-Gruppen (20, 22) während eines
einzigen System-Taktzyklus.
3. Das Gerät nach Anspruch 1, das weiterhin folgendes
umfaßt:
ein periodisches Taktsignal-Mittel (51) zum Erzeugen eines
Systemtaktes; und
ein Mittel (52, 56) zum Schreiben von Daten auf den Seiten
(10, 12, 14, 16) in derselben Cache-Speicher-Partitions-Gruppe
(20, 22) in nachfolgenden System-Taktzyklen.
4. Das Gerät nach einem oder mehreren der Ansprüche 1-3,
worin das Eingabe-Logikmittel (76) weiterhin ein Mittel
einschließt, um jeden Datenwert, auf den zugegriffen werden soll,
auf der Grundlage des Adreßwertes des Datenwertes, auf den
zugegriffen werden soll, auf einer jeweiligen Seite der Mehrzahl
an Seiten (10, 12, 14, 16) abzubilden.
5. Das Gerät nach einem oder mehreren der Ansprüche 1-4,
worin das Adreßfeld-Mittel (4) an das Eingabe-Logikmittel (76)
gekoppelt ist, worin
das Speichermittel (50) eine Speichereinheit (52) umfaßt,
wobei die Speichereinheit (52) den Cache-Speicher (2)
einschließt, und worin
das Eingabe-Logikmittel (76) gekoppelt ist, um eine
Anforderung (56) auf gespeicherte Datenwerte in ausgewählten Seiten
der Seiten (10, 12, 14, 16) in der Speichereinheit (52) zu
empfangen.
6. Das Gerät nach einem oder mehreren der Ansprüche 1-5,
worin die gespeicherten Datenwerte unterschiedliche Seiten (10,
12, 14, 16) aufweisen, die im Cache-Speicher (2) abgebildet
sind, um einen oder mehrere Datenwerte aus einigen der Seiten
(10, 12, 14, 16) abzurufen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US78758491A | 1991-11-04 | 1991-11-04 | |
PCT/US1992/009417 WO1993009497A2 (en) | 1991-11-04 | 1992-11-03 | Memory unit including a multiple write cache |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69224649D1 DE69224649D1 (de) | 1998-04-09 |
DE69224649T2 true DE69224649T2 (de) | 1998-06-25 |
Family
ID=25141954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69224649T Expired - Fee Related DE69224649T2 (de) | 1991-11-04 | 1992-11-03 | Speichereinheit mit mehrfach schreibbarem cachespeicher |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0611462B1 (de) |
JP (1) | JPH07500936A (de) |
KR (1) | KR940703050A (de) |
DE (1) | DE69224649T2 (de) |
WO (1) | WO1993009497A2 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2292822A (en) * | 1994-08-31 | 1996-03-06 | Hewlett Packard Co | Partitioned cache memory |
AU7728300A (en) * | 1999-11-22 | 2001-06-04 | Ericsson Inc. | Buffer memories, methods and systems for buffering having seperate buffer memories for each of a plurality of tasks |
US6745293B2 (en) | 2000-08-21 | 2004-06-01 | Texas Instruments Incorporated | Level 2 smartcache architecture supporting simultaneous multiprocessor accesses |
EP1215581A1 (de) | 2000-12-15 | 2002-06-19 | Texas Instruments Incorporated | Cache-Speicherzugriffs-Anordnung und Verfahren |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4208716A (en) * | 1978-12-11 | 1980-06-17 | Honeywell Information Systems Inc. | Cache arrangement for performing simultaneous read/write operations |
US4381541A (en) * | 1980-08-28 | 1983-04-26 | Sperry Corporation | Buffer memory referencing system for two data words |
-
1992
- 1992-11-03 JP JP5508666A patent/JPH07500936A/ja active Pending
- 1992-11-03 KR KR1019940701430A patent/KR940703050A/ko not_active Application Discontinuation
- 1992-11-03 DE DE69224649T patent/DE69224649T2/de not_active Expired - Fee Related
- 1992-11-03 WO PCT/US1992/009417 patent/WO1993009497A2/en active IP Right Grant
- 1992-11-03 EP EP92924225A patent/EP0611462B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO1993009497A3 (en) | 1993-08-05 |
DE69224649D1 (de) | 1998-04-09 |
JPH07500936A (ja) | 1995-01-26 |
EP0611462B1 (de) | 1998-03-04 |
KR940703050A (ko) | 1994-09-17 |
WO1993009497A2 (en) | 1993-05-13 |
EP0611462A1 (de) | 1994-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69320847T2 (de) | Verfahren und Anordnung zur Ausführung von Prozessen in einem Multiprozessor-System | |
DE69327387T2 (de) | An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung | |
DE69514165T2 (de) | Mehrstufige Cache-Speicheranordnung | |
DE69031978T2 (de) | Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern | |
DE19983793B4 (de) | System mit einem Prozessor, auf dem mehrere, gleichzeitig aktive Ausführungsentitäten ausgeführt werden, und mit einem mehrere, den Ausführungsentitäten zugewiese Cache-Abschnitte aufweisenden Cache-Speicher | |
DE69701078T2 (de) | Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren | |
DE69031411T2 (de) | Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff | |
DE69432133T2 (de) | Datenprozessor mit Cache-Speicher | |
DE69734129T2 (de) | Hierarchisches Datenverarbeitungssystem mit symetrischen Multiprozessoren | |
DE60015395T2 (de) | Speicher, der zwischen verarbeitenden threads geteilt ist | |
DE3587960T2 (de) | Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät. | |
DE19526007C2 (de) | Horizontal partitionierter Befehls-Cache-Speicher | |
DE3688192T2 (de) | Seitenorganisierter cachespeicher mit virtueller adressierung. | |
DE68923437T2 (de) | Adressenübersetzung für Seiten mehrfacher Grösse. | |
DE19943938B4 (de) | Dynamischer Daten-Vorabruf auf Basis eines Programmzähler- und Adressierungsmodus | |
DE69434728T2 (de) | Synchronisationssystem und verfahren in einem datencachesystem mit aufgeteiltem pegel | |
DE69721368T2 (de) | Verfahren und Gerät zur dynamischen Vorhersage des Weges für mehrstufige und mehrwege-satz-assoziative Cachespeicher | |
DE69225195T2 (de) | Datengesteuertes Verarbeitungssystem | |
DE69637294T2 (de) | Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung | |
DE69025302T2 (de) | Hochleistungsrasterpuffer- und -cachespeicheranordnung | |
DE69323790T2 (de) | Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem | |
DE69715328T2 (de) | System und Verfahren zur Parallelisierung der Durchführung von Speichertransaktionen mittels mehreren Speichermodellen | |
DE69224084T2 (de) | Rechneranordnung mit Mehrfachpufferdatencachespeicher und Verfahren dafür | |
DE68924313T2 (de) | Mehrprozessoranordnungen mit kreuzweise abgefragten Schreib-in-Cachespeichern. | |
DE69229667T2 (de) | Simulierte cachespeicher-assoziativität |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |