DE10056827A1 - Duale Verwendung von Cache-Verbindungen - Google Patents
Duale Verwendung von Cache-VerbindungenInfo
- Publication number
- DE10056827A1 DE10056827A1 DE10056827A DE10056827A DE10056827A1 DE 10056827 A1 DE10056827 A1 DE 10056827A1 DE 10056827 A DE10056827 A DE 10056827A DE 10056827 A DE10056827 A DE 10056827A DE 10056827 A1 DE10056827 A1 DE 10056827A1
- Authority
- DE
- Germany
- Prior art keywords
- cache
- data
- source
- data link
- memory
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
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)
Abstract
Ein Verfahren und eine Vorrichtung befördern effizient Daten von einer Quelle zu zumindest einem einer Mehrzahl von Zielen. Das Verfahren verwendet eine Datenverbindung zwischen der Quelle und einem Cache. Der Cache umfaßt ein Speicherarray und ist zwischen die Quelle und ein Ziel geschaltet. Das Verfahren umfaßt das Übertragen von Daten von der Quelle zu dem Cache entlang der Datenverbindung und das Übertragen von Daten von der Quelle zu dem Ziel entlang der Datenverbindung, während das Speicherarray umgangen wird. Eine erste Vorrichtung umfaßt einen Cache, der ein erstes Ziel ist, ein zweites Ziel, eine erste Datenverbindung und eine zweite Datenverbindung. Der Cache umfaßt ein Speicherarray. Die erste Datenverbindung erstreckt sich von der Quelle zu dem Cache, wobei Daten, die für den Cache bestimmt sind, entlang der ersten Datenverbindung befördert werden, und wobei Daten, die für das zweite Ziel bestimmt wird, entlang der ersten Datenverbindung befördert werden, während das Speicherarray umgangen wird. Die zweite Datenverbindung erstreckt sich von dem Cache zu dem zweiten Ziel, wobei Daten, die für das zweite Ziel bestimmt sind, entlang der zweiten Datenverbindung befördert werden. Vorzugsweise ist das Ziel ein Prozessorkern, während der Cache ein Ebene-0-Cache bezüglich des Prozessorkerns ist. Alternativ ist das Ziel ein zweiter Cache. Vorzugsweise sind die erste Datenverbindung und die zweite Datenverbindung Busse, wobei in bestimmten Fällen die Breite der ...
Description
Die vorliegende Erfindung bezieht sich auf Computerspeicher
systeme. Spezieller bezieht sich die Erfindung auf Mehrebe
nen-Cache-Speicher.
Bei einem Computersystem ist die Schnittstelle zwischen ei
nem Prozessor und einem Speicher von kritischer Bedeutung
für das Verhalten des Systems. Da schneller Speicher sehr
aufwendig ist, ist der Speicher in der Menge, die benötigt
wird, um einen Prozessor zu unterstützen, im allgemeinen
viel langsamer als der Prozessor. Um die Lücke zwischen
schnellen Prozessorzykluszeiten und langsamen Speicherzu
griffszeiten zu überbrücken, wird ein Cache-Speicher be
nutzt. Ein Cache ist eine kleine Menge eines sehr schnellen
Speichers, der verwendet wird, um eine Kopie der Daten und
Befehle von einem Hauptspeicher, auf die häufig zugegriffen
wird, zu speichern. Ein Prozessor kann aus diesem sehr
schnellen Speicher arbeiten und dadurch die Anzahl von War
tezuständen, die während Speicherzugriffen eingelegt werden
müssen, reduzieren. Wenn der Prozessor Daten von einem Spei
cher anfordert und sich die Daten in dem Cache befinden,
findet ein Cache-Lesen-"Treffer" statt, und die Daten von
dem Speicherzugriff können aus dem Cache zu dem Prozessor
zurückgegeben werden, ohne den Latenznachteil des Zugreifens
auf den Hauptspeicher zu bewirken. Wenn sich die Daten nicht
in dem Cache befinden, findet ein Cache-Lesen-"Fehlgriff"
statt, wobei die Speicheranforderung zu dem Hauptspeicher
weitergeleitet wird, wie es normalerweise geschehen würde,
wenn der Cache nicht existiert. Auf einen Cache-Fehlgriff
hin werden die Daten, die von dem Hauptspeicher wiedergewon
nen werden, dem Prozessor geliefert und ferner aufgrund der
statistischen Wahrscheinlichkeit, daß diese Daten in der na
hen Zukunft wieder durch den Prozessor angefordert werden,
in den Cache geschrieben.
Die einzelnen Datenelemente, die in einem Cache-Speicher ge
speichert sind, werden als "Linien" bezeichnet. Jede Linie
eines Caches soll einer adressierbaren Dateneinheit in dem
Hauptspeicher entsprechen. Eine Cache-Linie umfaßt somit Da
ten und ist auf eine bestimmte Weise einer Hauptspeicher
adresse zugeordnet. Schemata zum Zuordnen einer Hauptspei
cheradresse zu einer Cache-Datenlinie umfassen eine direkte
Abbildung, eine volle Zuordnung und eine Satzzuordnung, die
alle in der Technik gut bekannt sind.
Ein Cache kann unabhängig von dem Mikroprozessor entworfen
sein, wobei in diesem Fall der Cache auf dem lokalen Bus des
Mikroprozessors plaziert ist und während des Entwurfs des
Computersystems eine Schnittstelle zwischen dem Prozessor
und dem Systembus bildet. Da jedoch die Dichte von Transi
storen auf einem Prozessorchip zugenommen hat, können Pro
zessoren mit einem oder mehreren internen Cache-Speichern
entworfen sein, um die Speicherzugriffszeiten weiter zu ver
ringern. Ein interner Cache ist im allgemeinen klein, wobei
eine beispielhafte Größe 256 Kb (262.144 Byte) beträgt. Bei
Computersystemen, die Prozessoren mit einem oder mehreren
internen Cache-Speichern verwenden, ist häufig ein externer
Cache zu dem System hinzugefügt, um die Speicherzugriffszeit
weiter zu verbessern. Der externe Cache ist im allgemeinen
viel größer als der interne Cache (die internen Cache-Spei
cher) und liefert, wenn er in Verbindung mit dem internen
Cache (den internen Cache-Speichern) verwendet wird, eine
größere Gesamttrefferrate als der interne Cache (die inter
nen Cache-Speicher) alleine liefern würde.
Bei Systemen, die mehrere Ebenen von Cache-Speichern bein
halten, wird, wenn der Prozessor Daten von einem Speicher
anfordert, der interne oder der Cache erster Ebene zuerst
überprüft, um zu sehen, ob sich eine Kopie der Daten in dem
selben befindet. Wenn dies der Fall ist, tritt ein Erste-
Ebene-Cache-Treffer auf und der Cache erster Ebene liefert
die geeigneten Daten zu dem Prozessor. Wenn ein Erste-Ebe
ne-Cache-Fehlgriff stattfindet, wird der Cache zweiter Ebene
überprüft. Wenn ein Zweite-Ebene-Cache-Treffer stattfindet,
werden die Daten von dem Cache zweiter Ebene zu dem Prozes
sor geliefert. Wenn ein Zweite-Ebene-Cache-Fehlgriff statt
findet, werden die Daten von dem Hauptspeicher (oder Cache-
Speichern höherer Ebene, wenn solche vorliegen) wiedergewon
nen. Schreiboperationen werden gleichartig durchgeführt, wo
bei ein Mischen und Anpassen der Operationen, die oben er
läutert wurden, möglich ist.
Bei einem Mehrebenen-Cache-System können mehrere Formen ei
ner Datenübertragung stattfinden. Die möglichen Datenüber
tragungen umfassen Füllvorgänge, Ladevorgänge und Speicher
vorgänge. Gemäß der Verwendung hierin ist eine Fülloperation
das Kopieren einer Linie von einem Cache höherer Ebene (wei
ter weg von einem Prozessorkern) in einen Cache niedriger
Ebene (näher an einem Prozessorkern); eine Ladeoperation ist
das Kopieren zumindest eines Teils einer Linie von einem Ca
che in den Prozessorkern - typischerweise ein Register oder
eine allgemeine Registerdatei in dem Prozessorkern; und eine
Speicheroperation ist das Bewegen von Daten von dem Prozes
sorkern in eine Linie eines Caches. Diese Datenübertragungen
werden durch eine Betrachtung von Fig. 1 klarer.
Fig. 1 ist ein Blockdiagramm eines Computersystems 100 mit
zwei Cache-Ebenen. Ein Prozessorkern 105 ist mit einem L0-
Cache 110 und einem L1-Cache 115 verbunden. Der L1-Cache 115
und der L0-Cache 110 sind Halbleiterspeicherschaltungen. Der
L1-Cache 115, der L0-Cache 110 und der Prozessorkern können
getrennte integrierte Schaltungen sein oder in einer be
stimmten Kombination physikalisch zusammengepackt sein (bei
spielsweise der L0-Cache 110 und der Prozessorkern 105 zu
sammen in dem gleichen integrierten Schaltungsbaustein). Der
L0-Cache 110 umfaßt ein Speicherarray 140; das ein RAM (RAM
= random access memory = Direktzugriffsspeicher) ist, in dem
Cache-Linien gespeichert sind.
Mehrere Busse verbinden den Prozessorkern 145, den L0-Cache
110 und den L1-Cache 115 miteinander. Ein L1-Laden-Bus 125
ist ein Bus zum Laden von Daten von dem L1-Cache 115 in den
Mikroprozessorkern 105. Ein L0-Laden-Bus 130 ist ein Bus zum
Laden von Daten von dem L0-Cache 110 in den Mikroprozessor
kern 105. Ein Speichern-Bus 135 unterstützt Speicheropera
tionen von dem Mikroprozessorkern 105 in den L0-Cache 110
und/oder den L1-Cache 115. Schließlich unterstützt ein Fül
len-Bus 120 Übertragungen von Linien aus dem L1-Cache 115 in
den L0-Cache 110. Da Fülloperationen größer sind als Spei
cheroperationen (oder Ladeoperationen) sind Füllen-Daten auf
dem Füllen-Bus 120 in mehrere Sektionen unterteilt, wobei
jede Sektion mit einem getrennten Eingangstor auf dem Spei
cherarray 140 verbunden ist. Die Breite des Füllen-Busses
120 beträgt L Bytes, während die Breite der anderen Busse K
Bytes beträgt. Wie gezeigt ist, gilt: L = 4 K, wobei exem
plarische Werte L = 64 Bytes und K = 16 Bytes sind.
Die Aufgabe der vorliegenden Erfindung besteht darin, Ver
fahren und Vorrichtungen für einen verbesserten Zugriff auf
Cache-Speicher zu schaffen.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und
Vorrichtungen gemäß den Ansprüchen 9 und 17 gelöst.
Gemäß einem ersten Aspekt schafft die Erfindung ein Verfah
ren zur Verwendung einer Datenverbindung zwischen einer
Quelle und einem Cache. Der Cache umfaßt ein Speicherarray.
Der Cache ist ferner zwischen die Quelle und ein Ziel ge
schaltet. Das Verfahren umfaßt das Übertragen von Daten von
der Quelle zu dem Cache entlang der Datenverbindung und das
Übertragen von Daten von der Quelle zu dem Ziel entlang der
Datenverbindung, während das Speicherarray umgangen wird.
Vorzugsweise ist das Ziel ein Prozessorkern und der Cache
ist ein Ebene-0-Cache bezüglich des Prozessorkerns. Alter
nativ ist das Ziel ein zweiter Cache. Vorzugsweise ist die
Datenverbindung ein Bus, wobei in bestimmten Fällen die
Breite des Datenverbindungsbusses geringer sein kann als die
Breite einer Cachelinie in dem Speicherarray.
Gemäß einem anderen Aspekt ist die Erfindung eine Vorrich
tung zum Befördern von Daten von einer Quelle zu zumindest
einem einer Mehrzahl von Zielen. Die Vorrichtung umfaßt ei
nen Cache, der ein erstes Ziel ist, ein zweites Ziel, eine
erste Datenverbindung und eine zweite Datenverbindung. Der
Cache umfaßt ein Speicherarray. Die erste Datenverbindung
erstreckt sich von der Quelle zu dem Cache, wobei Daten, die
für den Cache bestimmt sind, entlang der ersten Datenverbin
dung befördert werden, und wobei Daten, die für das zweite
Ziel bestimmt sind, entlang der ersten Datenverbindung be
fördert werden, während das Speicherarray umgangen wird. Die
zweite Datenverbindung erstreckt sich von dem Cache zu dem
zweiten Ziel, wobei Daten, die für das zweite Ziel bestimmt
sind, entlang der zweiten Datenverbindung befördert werden.
Die Quelle der Daten, die für das zweite Ziel bestimmt sind,
kann der Cache oder die Quelle sein. Vorzugsweise ist das
zweite Ziel ein Prozessorkern, während der Cache ein Ebene-
0-Cache bezüglich des Prozessorkerns ist. Alternativ ist das
zweite Ziel ein zweiter Cache. Vorzugsweise sind die erste
Datenverbindung und die zweite Datenverbindung Busse, wobei
in bestimmten Fällen die Breite der Datenverbindungsbusse
geringer sein kann als die Breite einer Cache-Linie in dem
Speicherarray.
Bezüglich noch einem weiteren Aspekt ist die Erfindung eine
Vorrichtung, die ein Speicherarray mit einem Schnittstellen
tor, eine erste Verbindung, die selektiv mit dem Schnitt
stellentor gekoppelt ist, und eine zweite Verbindung, die
selektiv mit dem Schnittstellentor gekoppelt ist, aufweist.
Vorzugsweise umfaßt die erste Verbindung einen ersten Drei-
Zustands-Puffer (Tristate-Puffer), der in der Lage ist, Si
gnale von einer ersten Quelle zu dem Schnittstellentor zu
treiben, und die zweite Verbindung umfaßt einen zweiten
Drei-Zustands-Puffer, der in der Lage ist, Signale von einer
zweiten Quelle zu dem Schnittstellentor zu treiben. Die er
ste Quelle kann ein Cache-Speicher geringerer Ebene bezüg
lich des Speicherarrays sein, das selbst ein Cache sein
kann, während die zweite Quelle ein Prozessorkern ist. Wei
terhin optional könnte die Vorrichtungen Latch-Speicher bzw.
Zwischenspeicher enthalten, die zwischen die Quelle und die
jeweiligen Drei-Zustands-Puffer geschaltet sind.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung
werden nachfolgend bezugnehmend auf die beiliegenden Zeich
nungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm eines Computersystems mit zwei
Cache-Ebenen;
Fig. 2 ein Blockdiagramm eines Computersystems mit zwei
Cache-Ebenen gemäß einem Ausführungsbeispiel der
Erfindung; und
Fig. 3 ein Blockdiagramm eines Computersystems mit zwei
Cache-Ebenen gemäß einem weiteren Ausführungsbei
spiel der Erfindung.
Fig. 2 ist ein Blockdiagramm eines Computersystems 200 mit
zwei Cache-Ebenen gemäß einem Ausführungsbeispiel der Erfin
dung. Das Computersystem 200 ist gleichartig zu dem Compu
tersystem 100, das in Fig. 1 gezeigt ist, dahingehend, daß
das Computersystem 200 den Prozessorkern 105, den L1-Cache
115 und einen L0-Cache 210 aufweist, der größtenteils
gleichartig zu dem L0-Cache 110 ist. Jedoch ist das Compu
tersystem 200 eine Verbesserung bezüglich des Computersy
stems 100 in mehrerer Hinsicht. Zuerst ist der L1-Laden-Bus
125 beseitigt, was signifikante Einsparungen bezüglich der
Verdrahtung bzw. Leitungsführung zur Folge hat. Zweitens ist
die Anzahl von Toren auf dem Prozessorkern 105 von drei auf
zwei reduziert. Drittens ist die Anzahl von Schreiben-Toren
auf dem Speicherarray 140 von fünf auf vier reduziert.
Bei dem Computersystem 200 führt ein einzelner Bus - ein
L1-Laden/Füllen-Bus 155 die gleichen Funktionen durch wie
sowohl der Füllen-Bus 120 als auch der L1-Laden-Bus 125 bei
dem Computersystem 100 (Fig. 1). Da Füllen-Operationen
größer sind als Laden-Operationen unterteilt sich der L1-
Laden/Füllen-Bus 155 in unterschiedliche Abschnitte, von
denen alle für Füllen-Operationen verwendet werden und von
denen nur einer für Laden-Operationen verwendet wird. Vier
Busse gehen von dem L1-Laden/Füllen-Bus 155 ab. Gemäß der
Darstellung sind die unteren drei Nur-Füllen-Busse. Der
oberste ist, wie gezeigt ist, ein kombinierter Füllen/Laden-
(und Speichern-) Bus. Bei einem Ausführungsbeispiel sind die
Breiten der vier Busse, die sich von dem L1-Laden/Füllen-Bus
155 teilen, gleich, obwohl dies nicht immer notwendig ist.
Fachleute werden sicherlich die verschiedenen Möglichkeiten
hinsichtlich der Anzahl von Unter-Bussen und deren Größen
erkennen. Wenn die Breiten des L1-Laden/Füllen-Busses 155
und der Tore auf dem Speicherarray 140 die gleichen sind,
dann ist ein Aufteilen überhaupt nicht notwendig.
Während einer Füllen-Operation werden die gesamte Breite des
L1-Laden/Füllen-Busses 155 und alle vier aufgeteilten Unter
busse verwendet. Während einer Laden-Operation wird nur ein
Abschnitt des L1-Laden/Füllen-Busses 155 verwendet. Das
heißt, daß drei (gemäß der Darstellung die unteren drei) der
vier unterteilten Unterbusse Nur-Füllen-Busse sind, während
einer (der oberste) ein dualer Laden/Füllen-Bus ist. Während
entweder einer Füllen- oder einer Laden-Operation wird ein
Drei-Zustands-Puffer 165 derart getrieben, daß Daten über
den L1/L0-Laden-Bus 160 in das Speicherarray 140 (wenn akti
viert) geschrieben werden oder in den Prozessorkern 105
(wenn aktiviert) geschrieben werden oder beides. Wenn der
Drei-Zustands-Puffer 165 treibt, treiben die Drei-Zustands-
Puffer 170 und 175 nicht. Wenn Cache-Linien von dem Spei
cherarray 140 gelesen und in den Prozessorkern 105 geladen
werden, treibt der Drei-Zustands-Puffer 175 und die Drei-ZU
stands-Puffer 165 und 170 treiben nicht. Wenn Daten von dem
Prozessorkern 105 in das Speicherarray 140 geschrieben wer
den, treibt der Drei-Zustands-Puffer 170 und die Drei-Zu
stands-Puffer 165 und 175 treiben nicht.
Das Computersystem 200 umfaßt ferner einen Speicher-Puffer
250, der zwischen den Speichern-Bus 135 und das Speicherar
ray 140 geschaltet ist. Der Speicherpuffer 250 puffert Daten
auf dem Speichern-Bus 135 temporär, bis die Daten zu einer
geeigneten Zeit geschrieben werden können, was folglich den
Prozessorkern 105 frei macht, um die Ausführung fortzuset
zen, ohne anhalten zu müssen, während auf das Schreiben in
das Speicherarray 140 gewartet wird.
Bei dem Computersystem 200 wird ein einzelnes Tor zu dem
Speicherarray 140 sowohl für Füllen-Operationen als auch für
Speichern-Operationen verwendet. Dieses einzelne Tor ist das
Eingangstor, das mit den Drei-Zustands-Puffern 165 und 170
verbunden ist. Tatsächlich ist der Knoten zwischen den
Drei-Zustands-Puffern 165 und 170 ein kombinierter Fül
len/Laden/Speichern-Bus-Knoten. Die Drei-Zustands-Puffer
165, 170 und 175 sind Einrichtungen zum gemeinsamen Verwen
den eines Busknotens, insbesondere des kombinierten Fül
len/Laden/Speichern-Bus-Knotens, zu dem hin jeder der Drei-
Zustands-Puffer 165, 170 und 175 gerichtet ist. Fachleute
werden erkennen, daß andere Einrichtungen zum gemeinsamen
Verwenden eines Busknotens anstelle der Drei-Zustands-Puffer
165, 170 und 175 verwendet werden können. Beispielsweise
könnte ein Drei-Auf-Eins-Multiplexer verwendet werden, so
daß der Füllen/Laden/Speichern-Knoten selektiv durch ent
weder den oberen Abschnitt des L1-Laden/Füllen-Busses 155,
den Speichern-Bus 135 oder den Bus, der von dem Speicherar
ray 140 abgeht, getrieben werden kann.
Bei einer bevorzugten Form des dargestellten Ausführungsbei
spiels beträgt die Breite des L1-Laden/Füllen-Busses 155 L
Byte, während die Breite aller anderen Busse K Bytes be
trägt, wobei L = 4 K. Jeder der drei zugewiesenen Füllen-Un
terbusse muß nur auf einen festgelegten Viertel-Von-K-Offset
in das Speicherarray 140 indexieren. Jedoch muß das Spei
chertor, das mit dem kombinierten Füllen/Laden/Speichern-Bus
verbunden ist, in der Lage sein, auf jeden K-Byte-Abschnitt
einer Cache-Linie in dem Speicherarray 140 zu indexieren, da
Speichern-Operationen allgemein eine solche Flexibilität er
fordern.
Der Prozessorkern 105 ist vorzugsweise ein Universalmikro
prozessor, kann jedoch auch ein Spezialzweckprozessor sein,
beispielsweise ein digitaler Signalprozessor oder eine Mi
krosteuerung. Bei einer Anordnung sind der L0-Cache 210 und
der Prozessorkern 105 zusammen auf die gleiche integrierte
Schaltung gepackt, während der L1-Cache ein Teil der glei
chen integrierten Schaltung sein kann oder auf einer ande
ren, getrennten integrierten Schaltung angeordnet sein kann.
Der L1-Cache 115 kann durch einen Hauptspeicher oder einen
Datenbus ersetzt sein, während die Erfindung gleichermaßen
brauchbar ist. In jedem Fall ist der L1-Cache 115 oder ein
Hauptspeicher oder ein Datenbus an dessen Stelle eine Daten
quelle, wobei ein Vorteil der Erfindung darin besteht, daß
Daten von der Quelle zu einer Mehrzahl von Zielen effizient
mit weniger Verdrahtung übertragen werden. Bei einer anderen
alternativen Anordnung könnte der Prozessorkern 105 durch
einen anderen Cache niedrigerer Ebene ersetzt sein.
Ein weiteres Ausführungsbeispiel der Erfindung ist in Fig. 3
gezeigt, die ein Blockdiagramm eines Computersystems 300 mit
zwei Cache-Ebenen ist. Wie das Computersystem 200 umfaßt das
Computersystem 300 den L1-Cache 115 und den Prozessorkern
105. Jedoch umfaßt das Computersystem 300 einen L0-Cache
310, der sich von dem L0-Cache 210 unterscheidet. Der L0-Ca
che 310 ist wirksam, wenn die Breite des L1-Laden/Füllen-
Busses 155 geringer ist als die Größe der Cachelinien in dem
Speicherarray 140. Vorzugsweise ist der Größenunterschied
ein Faktor von zwei. Beispielsweise kann die Breite des L1-
Laden/Füllen-Busses 155 in dem Computersystem 300 M = L/2
sein, während die Breite einer Cache-Linie in dem Speicher
array 140 L Byte beträgt. Um eine gesamte Cache-Linie zu
füllen, werden Füllen-Daten in zwei Übertragungszyklen zu
dem L0-Cache gesendet. Ein erster "Block" der Füllen-Daten
wird während des ersten Übertragungszyklusses auf dem L1-
Laden/Füllen-Bus 155 gesendet; ein zweiter "Block" wird wäh
rend eines darauffolgenden zweiten Übertragungszyklusses auf
dem L1-Laden/Füllen-Bus 155 gesendet.
Da die Breite des L1-Laden/Füllen-Busses 155 bei dem Compu
tersystem 300 nur die Hälfte derer bei dem Computersystem
200 (Fig. 2) beträgt, speichert ein Füllen-Puffer 345. Blöcke
von dem L1-Laden/Füllen-Bus 155 zwischen und hält dieselben.
Das Ausgangssignal des Füllen-Puffers 345 wird als eines von
zwei Eingangssignalen in Multiplexer 380 und 385 eingegeben.
Der andere Eingang zu den Multiplexem 380 und 385 ist di
rekt mit dem L1-Laden/Füllen-Bus 155 verbunden. Somit werden
stets zwei aufeinanderfolgende Blöcke in die Multiplexer 380
und 385 eingegeben - ein Block von dem L1-Laden/Füllen-Bus
155 und der unmittelbar vorhergehende Block, der in dem Fül
len-Puffer 345 zwischengespeichert ist. Jeder der Multiple
xer 380 und 385 wählt einen seiner zwei Eingabeblöcke aus
und teilt den ausgewählten Block auf seine zwei Ausgangsbus
se, die mit den Eingangstoren des Speicherarrays 140 verbun
den sind, auf. Somit werden vier Eingangsbusse schnittstel
lenmäßig mit dem Speicherarray 140 bei dem Computersystem
300 verbunden, genau wie bei dem Computersystem 200. Vor
zugsweise sind die Breiten dieser vier Busse gleich (ange
nommen K, wobei K = M/2 = L/4). Während einer Füllen-Opera
tion wird der erste Block in dem Füllen-Puffer 345 zwischen
gespeichert und dann als die oberen Eingangssignale zu den
Multiplexern 380 und 385 geliefert, während der zweite
Block, wie gezeigt, zu den unteren Eingängen der Multiplexer
380 und 385 geliefert wird. Der Multiplexer 385 ist derart
konfiguriert, daß seine Ausgangssignale die obere Hälfte ei
ner Cache-Linie in dem Speicherarray 140 beschreiben, wäh
rend der Multiplexer 380 derart konfiguriert ist, daß er die
untere Hälfte einer Cache-Linie in dem Speicherarray 140 be
schreibt. Ein spezielles die Hälfte anzeigendes Bit ist vor
gesehen, wobei die Multiplexer 380 und 385 das die Hälfte
anzeigende Bit erfassen, um zu bestimmen, welches Eingangs
signal auszuwählen ist. Bei einem Ausführungsbeispiel befin
det sich das die Hälfte anzeigende Bit in dem zweiten Block,
wobei sich das die Hälfte anzeigende Bit jedoch in einem be
liebigen oder beiden Blöcken befinden könnte.
Während einer Laden-Operation enthält der erste Block stets
Laden-Daten für den Prozessorkern 105, wobei der Multiplexer
380 konfiguriert ist, um seinen unteren Eingang auszuwählen,
wie gezeigt ist. Auf diese Weise können Laden-Daten zu dem
Prozessorkern 105 geliefert werden, ohne die Verzögerung des
Füllen-Puffers 345 zu bewirken. Die Laden-Daten werden in
dem Abschnitt des Worts auf dem L1-Laden/Füllen-Bus 155,
das, wie gezeigt ist, von dem unteren Ausgang des Multiple
xers 380 ausgegeben wird, geliefert. Während einer Laden-
Operation treibt ein Drei-Zustands-Puffer 390 den L1/L0-La
den-Bus 160. Folglich umgehen L1-Laden-Operationen das Spei
cherarray 150 bei dem Computersystem 300, genau wie bei dem
Computersystem 200 (Fig. 2). Wenn der L1/L0-Laden-Bus 160 in
seiner anderen Fähigkeit zum Laden aus dem L0-Cache 310 ver
wendet wird, treibt der Drei-Zustands-Puffer 390 nicht, wäh
rend der Drei-Zustands-Puffer 175 treibt. Während einer La
den-Operation ist die Konfiguration des Multiplexers 385 un
erheblich (d. h. in einem "Egal"-Zustand).
Optional kann der obere Ausgangsbus von dem Multiplexer 380
ebenfalls ein Bus mit dualer Verwendung sein, und nicht ein
Nur-Füllen-Bus. Bei dieser optionalen Anordnung wäre der
obere Bus von dem Multiplexer 380 mit dem Speicherarray 140
verbunden, und ein zweiter L1/L0-Laden-Bus wäre mit dem Pro
zessorkern 105 auf die gleiche Weise wie der untere Bus ver
bunden (d. h. mit zwei Drei-Zustands-Puffern wie den Drei-Zu
stands-Puffern 175 und 390). Die optionale Anordnung ermög
licht doppelte Laden-Operationen von entweder dem L1-Cache
115 oder dem L0-Cache 310 oder gleichzeitige Laden-Operatio
nen von beiden.
Der L0-Cache 310 verwendet ein kombiniertes Füllen/Spei
chern-Tor zu dem Speicherarray 140. Dieses Eingangstor zu
dem Speicherarray 140 wird durch entweder den Drei-Zu
stands-Puffer 165 (während Füllen-Operationen) oder den
Drei-Zustands-Puffer 170 (während Speichern-Operationen)
getrieben. Für eine Flexibilität beim Speichern ist dieses
Eingangstor in der Lage, jeden Ein-Viertel-Abschnitt einer
Cache-Linie in dem Speicherarray 140 zu indexieren, wie oben
beschrieben ist. Optional kann der untere Ausgang von dem
Multiplexer 385 ein kombiniertes Füllen/Speichern-Tor sein,
und nicht ein zugewiesenes Füllen-Tor. Um dies zu erreichen,
wäre der untere Ausgang von dem Multiplexer 385 mit dem
Speicherarray 140 und einem Speichern-Puffer (getrennt von
dem Speichern-Puffer 250 oder integriert in denselben) ver
bunden, der wiederum auf die gleiche Weise wie der obere
Ausgang von dem Multiplexer 385 mit dem Prozessorkern 105
verbunden ist (d. h. mit zwei Drei-Zustands-Puffern wie den
Drei-Zustands-Puffern 165 und 170). Diese optionale Anord
nung ermöglicht doppelte Speichern-Operationen, ohne ein
weiteres Tor auf dem Speicherarray 140 zu erfordern.
Die hierin verwendeten Ausdrücke und Beschreibungen dienen
lediglich veranschaulichenden Zwecken und besitzen keinen
begrenzenden Charakter. Beispielsweise kann gemäß den Grund
sätzen der vorliegenden Erfindung eine beliebige Anzahl von
Busknoten und/oder Speicherarray-Toren zusammengelegt wer
den. Fachleute werden erkennen, daß diese und viele weitere
Variationen innerhalb des Bereichs der Erfindung, wie sie in
den folgenden Ansprüchen definiert ist, möglich sind.
Claims (20)
1. Verfahren zur Verwendung einer Datenverbindung (155)
zwischen einer Quelle (115) und einem Cache (210,
310), wobei der Cache (210, 310) ein Speicherarray
(140) aufweist, und wobei der Cache (210, 310) zwi
schen die Quelle (115) und ein Ziel (105) geschaltet
ist, wobei das Verfahren folgende Schritte aufweist:
Übertragen von Daten von der Quelle (115) zu dem Cache (210, 310) entlang der Datenverbindung (155); und
Übertragen von Daten von der Quelle (115) zu dem Ziel (105) entlang der Datenverbindung (155), während das Speicherarray (140) umgangen wird.
Übertragen von Daten von der Quelle (115) zu dem Cache (210, 310) entlang der Datenverbindung (155); und
Übertragen von Daten von der Quelle (115) zu dem Ziel (105) entlang der Datenverbindung (155), während das Speicherarray (140) umgangen wird.
2. Verfahren gemäß Anspruch 1, bei dem das Ziel (105) ein
Prozessorkern ist.
3. Verfahren gemäß Anspruch 2, bei dem der Cache (210,
310) ein Ebene-0-Cache bezüglich des Prozessorkerns
ist.
4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem
das Ziel ein zweiter Cache (115) ist.
5. Verfahren gemäß Anspruch 4, bei dem das Ziel ein Cache
niedrigerer Ebene als der zweite Ziel-Cache in einem
Mehrebenen-Cache-System ist.
6. Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem
die Datenverbindung (155) ein Bus ist.
7. Verfahren gemäß Anspruch 6, bei dem die Breite des Da
tenverbindungsbusses (155) geringer ist als die Breite
einer Cache-Linie in dem Speicherarray (140).
8. Verfahren gemäß einem der Ansprüche 1 bis 7, das fer
ner folgenden Schritt aufweist:
Puffern von Daten auf der Datenverbindung (155).
Puffern von Daten auf der Datenverbindung (155).
9. Vorrichtung (200, 300) zum Befördern von Daten von ei
ner Quelle (115) zu zumindest einem einer Mehrzahl von
Zielen, wobei die Vorrichtung folgende Merkmale auf
weist:
einen Cache (210, 310), wobei der Cache (210, 310) ein erstes Ziel ist, und wobei der Cache (210, 310) ein Speicherarray (140) aufweist;
ein zweites Ziel (105);
eine erste Datenverbindung (155), die sich von der Quelle (115) zu dem Cache (210, 310) erstreckt, wobei Daten, die für den Cache (210, 310) bestimmt sind, entlang der ersten Datenverbindung (155) befördert werden, und wobei Daten, die für das zweite Ziel (105) bestimmt sind, entlang der ersten Datenverbindung (155) befördert werden, während das Speicherarray (140) umgangen wird; und
eine zweite Datenverbindung (160), die sich von dem Cache (210, 310) zu dem zweiten Ziel (105) erstreckt, wobei Daten, die für das zweite Ziel (105) bestimmt sind, entlang der zweiten Datenverbindung (160) beför dert werden.
einen Cache (210, 310), wobei der Cache (210, 310) ein erstes Ziel ist, und wobei der Cache (210, 310) ein Speicherarray (140) aufweist;
ein zweites Ziel (105);
eine erste Datenverbindung (155), die sich von der Quelle (115) zu dem Cache (210, 310) erstreckt, wobei Daten, die für den Cache (210, 310) bestimmt sind, entlang der ersten Datenverbindung (155) befördert werden, und wobei Daten, die für das zweite Ziel (105) bestimmt sind, entlang der ersten Datenverbindung (155) befördert werden, während das Speicherarray (140) umgangen wird; und
eine zweite Datenverbindung (160), die sich von dem Cache (210, 310) zu dem zweiten Ziel (105) erstreckt, wobei Daten, die für das zweite Ziel (105) bestimmt sind, entlang der zweiten Datenverbindung (160) beför dert werden.
10. Vorrichtung (200, 300) gemäß Anspruch 9, bei der das
zweite Ziel (105) aus der Gruppe ausgewählt ist, die
aus einem Prozessorkern und einem Cache besteht.
11. Vorrichtung (200, 300) gemäß Anspruch 9 oder 10, bei
der die erste Datenverbindung (155) ein Bus und die
zweite Datenverbindung (160) ein Bus ist.
12. Vorrichtung (200, 300) gemäß einem der Ansprüche 9 bis
11, bei der der Cache (210, 310) folgendes Merkmal
aufweist:
einen ersten Drei-Zustands-Puffer (165) auf der ersten Datenverbindung (155).
einen ersten Drei-Zustands-Puffer (165) auf der ersten Datenverbindung (155).
13. Vorrichtung (200, 300) gemäß Anspruch 12, bei der der
Cache (210, 310) ferner folgendes Merkmal aufweist:
einen zweiten Drei-Zustands-Puffer (175), der von dem Speicherarray (140) zu der zweiten Datenverbindung (160) geschaltet ist.
einen zweiten Drei-Zustands-Puffer (175), der von dem Speicherarray (140) zu der zweiten Datenverbindung (160) geschaltet ist.
14. Vorrichtung (200, 300) gemäß Anspruch 13, bei der der
erste Drei-Zustands-Puffer (165) in einem treibenden
Zustand ist, wenn Daten von der Quelle (115) zu dem
Speicherarray (140) oder dem zweiten Ziel (105) über
tragen werden, und bei der der zweite Drei-Zustands-
Puffer (175) in einem treibenden Zustand ist, wenn
Daten von dem Speicherarray (140) zu dem zweiten Ziel
(105) übertragen werden.
15. Vorrichtung (200, 300) gemäß einem der Ansprüche 9 bis
14, bei der der Cache (210, 310) ferner folgendes
Merkmal aufweist:
einen Latch-Speicher (345) auf der ersten Datenverbin dung (155).
einen Latch-Speicher (345) auf der ersten Datenverbin dung (155).
16. Vorrichtung (200, 300) gemäß einem der Ansprüche 9 bis
15, bei der die Quelle von Daten, die für das zweite
Ziel (105) bestimmt sind, aus der Gruppe ausgewählt
ist, die aus der Quelle und dem Cache besteht.
17. Vorrichtung mit folgenden Merkmalen:
einem Speicherarray (140) mit einem Schnittstellentor;
einer ersten Verbindung (155), die selektiv mit dem Schnittstellentor gekoppelt ist; und
einer zweiten Verbindung (160), die selektiv mit dem Schnittstellentor gekoppelt ist.
einem Speicherarray (140) mit einem Schnittstellentor;
einer ersten Verbindung (155), die selektiv mit dem Schnittstellentor gekoppelt ist; und
einer zweiten Verbindung (160), die selektiv mit dem Schnittstellentor gekoppelt ist.
18. Vorrichtung gemäß Anspruch 17, bei der die erste Ver
bindung (155) einen ersten Drei-Zustands-Puffer (165)
aufweist, der in der Lage ist, Treibersignale von ei
ner ersten Quelle (115) zu dem Schnittstellentor zu
treiben, und bei der die zweite Verbindung (160) einen
zweiten Drei-Zustands-Puffer (170) aufweist, der in
der Lage ist, Signale von einer zweiten Quelle (105)
zu dem Schnittstellentor zu treiben.
19. Vorrichtung gemäß Anspruch 18, bei der das Speicher
array (140) Teil eines Cache-Speichers ist, wobei die
erste Quelle ein Cache-Speicher (115) niedrigerer Ebe
ne bezüglich des Speicherarrays (140) ist, und wobei
die zweite Quelle (105) ein Prozessorkern ist.
20. Vorrichtung gemäß Anspruch 19, die ferner folgende
Merkmale aufweist:
einen Latch-Speicher (345), der zwischen die erste Quelle (115) und den ersten Drei-Zustands-Puffer (165) geschaltet ist; und
einen Latch-Speicher (250), der zwischen die zweite Quelle (105) und den zweiten Drei-Zustands-Puffer (170) geschaltet ist.
einen Latch-Speicher (345), der zwischen die erste Quelle (115) und den ersten Drei-Zustands-Puffer (165) geschaltet ist; und
einen Latch-Speicher (250), der zwischen die zweite Quelle (105) und den zweiten Drei-Zustands-Puffer (170) geschaltet ist.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/507,203 US6728823B1 (en) | 2000-02-18 | 2000-02-18 | Cache connection with bypassing feature |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE10056827A1 true DE10056827A1 (de) | 2001-09-06 |
Family
ID=24017656
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE10056827A Ceased DE10056827A1 (de) | 2000-02-18 | 2000-11-16 | Duale Verwendung von Cache-Verbindungen |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US6728823B1 (de) |
| DE (1) | DE10056827A1 (de) |
Families Citing this family (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007110898A1 (ja) * | 2006-03-24 | 2007-10-04 | Fujitsu Limited | マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法 |
| US10430338B2 (en) | 2008-09-19 | 2019-10-01 | Oracle International Corporation | Selectively reading data from cache and primary storage based on whether cache is overloaded |
| CN104731981B (zh) | 2008-09-19 | 2018-03-20 | 甲骨文国际公司 | 存储器端存储请求管理 |
| US8868831B2 (en) * | 2009-09-14 | 2014-10-21 | Oracle International Corporation | Caching data between a database server and a storage system |
| US8713426B2 (en) | 2009-06-25 | 2014-04-29 | Oracle International Corporation | Technique for skipping irrelevant portions of documents during streaming XPath evaluation |
| US9165086B2 (en) | 2010-01-20 | 2015-10-20 | Oracle International Corporation | Hybrid binary XML storage model for efficient XML processing |
| US8566343B2 (en) | 2010-06-02 | 2013-10-22 | Oracle International Corporation | Searching backward to speed up query |
| US10592416B2 (en) | 2011-09-30 | 2020-03-17 | Oracle International Corporation | Write-back storage cache based on fast persistent memory |
| US8935227B2 (en) | 2012-04-17 | 2015-01-13 | Oracle International Corporation | Redistributing computation work between data producers and data consumers |
| US9063908B2 (en) | 2012-05-31 | 2015-06-23 | Oracle International Corporation | Rapid recovery from loss of storage device cache |
| US10380021B2 (en) | 2013-03-13 | 2019-08-13 | Oracle International Corporation | Rapid recovery from downtime of mirrored storage device |
| US10528590B2 (en) | 2014-09-26 | 2020-01-07 | Oracle International Corporation | Optimizing a query with extrema function using in-memory data summaries on the storage server |
| US9772793B2 (en) | 2013-09-20 | 2017-09-26 | Oracle International Corporation | Data block movement offload to storage systems |
| US10642837B2 (en) | 2013-03-15 | 2020-05-05 | Oracle International Corporation | Relocating derived cache during data rebalance to maintain application performance |
| US10229161B2 (en) | 2013-09-20 | 2019-03-12 | Oracle International Corporation | Automatic caching of scan and random access data in computing systems |
| US9798655B2 (en) | 2013-09-20 | 2017-10-24 | Oracle International Corporation | Managing a cache on storage devices supporting compression |
| US9430383B2 (en) | 2013-09-20 | 2016-08-30 | Oracle International Corporation | Fast data initialization |
| CN105988730B (zh) * | 2015-03-02 | 2019-03-08 | 华为技术有限公司 | 一种读取缓存数据的方法、旁路装置及缓存系统 |
| US10133667B2 (en) | 2016-09-06 | 2018-11-20 | Orcle International Corporation | Efficient data storage and retrieval using a heterogeneous main memory |
| US10331573B2 (en) | 2016-11-04 | 2019-06-25 | Oracle International Corporation | Detection of avoidable cache thrashing for OLTP and DW workloads |
| US10803039B2 (en) | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
| US10719446B2 (en) | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
| US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
| US10956335B2 (en) | 2017-09-29 | 2021-03-23 | Oracle International Corporation | Non-volatile cache access using RDMA |
| US10802766B2 (en) | 2017-09-29 | 2020-10-13 | Oracle International Corporation | Database with NVDIMM as persistent storage |
| US10732836B2 (en) | 2017-09-29 | 2020-08-04 | Oracle International Corporation | Remote one-sided persistent writes |
| US11200234B2 (en) | 2019-06-14 | 2021-12-14 | Oracle International Corporation | Non-disruptive dynamic ad-hoc database catalog services |
| US10990596B2 (en) | 2019-06-14 | 2021-04-27 | Oracle International Corporation | Non-disruptive referencing of special purpose operators for database management systems |
Family Cites Families (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3618041A (en) * | 1968-10-31 | 1971-11-02 | Hitachi Ltd | Memory control system |
| US3771137A (en) * | 1971-09-10 | 1973-11-06 | Ibm | Memory control in a multipurpose system utilizing a broadcast |
| US3820078A (en) * | 1972-10-05 | 1974-06-25 | Honeywell Inf Systems | Multi-level storage system having a buffer store with variable mapping modes |
| US3840863A (en) * | 1973-10-23 | 1974-10-08 | Ibm | Dynamic storage hierarchy system |
| US4268907A (en) * | 1979-01-22 | 1981-05-19 | Honeywell Information Systems Inc. | Cache unit bypass apparatus |
| US4245344A (en) * | 1979-04-02 | 1981-01-13 | Rockwell International Corporation | Processing system with dual buses |
| US4533995A (en) * | 1981-08-03 | 1985-08-06 | International Business Machines Corporation | Method and system for handling sequential data in a hierarchical store |
| US4464717A (en) * | 1982-03-31 | 1984-08-07 | Honeywell Information Systems Inc. | Multilevel cache system with graceful degradation capability |
| JPS60205760A (ja) * | 1984-03-30 | 1985-10-17 | Fuji Xerox Co Ltd | メモリ制御装置 |
| JPS617967A (ja) * | 1984-06-15 | 1986-01-14 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | I/oコントロ−ラ |
| US4905141A (en) * | 1988-10-25 | 1990-02-27 | International Business Machines Corporation | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification |
| US5202969A (en) * | 1988-11-01 | 1993-04-13 | Hitachi, Ltd. | Single-chip-cache-buffer for selectively writing write-back and exclusively writing data-block portions to main-memory based upon indication of bits and bit-strings respectively |
| EP0375864A3 (de) | 1988-12-29 | 1991-03-20 | International Business Machines Corporation | Cache-Speicherumgehung |
| US5253352A (en) * | 1989-11-13 | 1993-10-12 | Zenith Data Systems Corporation | Method and apparatus for pipelining cache accesses using anticipatory initiation of cache read |
| US5454093A (en) * | 1991-02-25 | 1995-09-26 | International Business Machines Corporation | Buffer bypass for quick data access |
| US5327570A (en) * | 1991-07-22 | 1994-07-05 | International Business Machines Corporation | Multiprocessor system having local write cache within each data processor node |
| US5918072A (en) * | 1995-09-18 | 1999-06-29 | Opti Inc. | System for controlling variable length PCI burst data using a dummy final data phase and adjusting the burst length during transaction |
| US5721957A (en) * | 1996-06-03 | 1998-02-24 | International Business Machines Corporation | Method and system for storing data in cache and retrieving data from cache in a selected one of multiple data formats |
| US5860017A (en) | 1996-06-28 | 1999-01-12 | Intel Corporation | Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction |
| US5859999A (en) | 1996-10-03 | 1999-01-12 | Idea Corporation | System for restoring predicate registers via a mask having at least a single bit corresponding to a plurality of registers |
| US6617879B1 (en) * | 1997-09-17 | 2003-09-09 | Sony Corporation | Transparently partitioned communication bus for multi-port bridge for a local area network |
| US5872986A (en) * | 1997-09-30 | 1999-02-16 | Intel Corporation | Pre-arbitrated bypassing in a speculative execution microprocessor |
| US6330591B1 (en) * | 1998-03-09 | 2001-12-11 | Lsi Logic Corporation | High speed serial line transceivers integrated into a cache controller to support coherent memory transactions in a loosely coupled network |
| US6633947B1 (en) * | 1998-09-16 | 2003-10-14 | Intel Corporation | Memory expansion channel for propagation of control and request packets |
| US6434665B1 (en) * | 1999-10-01 | 2002-08-13 | Stmicroelectronics, Inc. | Cache memory store buffer |
| US6349360B1 (en) * | 1999-11-09 | 2002-02-19 | International Business Machines Corporation | System bus read address operations with data ordering preference hint bits |
| US6598140B1 (en) * | 2000-04-30 | 2003-07-22 | Hewlett-Packard Development Company, L.P. | Memory controller having separate agents that process memory transactions in parallel |
| US6636939B1 (en) * | 2000-06-29 | 2003-10-21 | Intel Corporation | Method and apparatus for processor bypass path to system memory |
| US6651143B2 (en) * | 2000-12-21 | 2003-11-18 | International Business Machines Corporation | Cache management using a buffer for invalidation requests |
-
2000
- 2000-02-18 US US09/507,203 patent/US6728823B1/en not_active Expired - Fee Related
- 2000-11-16 DE DE10056827A patent/DE10056827A1/de not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| US6728823B1 (en) | 2004-04-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE10056827A1 (de) | Duale Verwendung von Cache-Verbindungen | |
| DE3687307T2 (de) | Computeranordnungen mit cache-speichern. | |
| EP0013737B1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
| DE4132833C2 (de) | Hierarchischer Cache-Speicher | |
| DE69324926T2 (de) | Doppelte pufferungspeicherung zwischen dem speicherbus und dem expansionsbus eines rechnersystems | |
| DE69432133T2 (de) | Datenprozessor mit Cache-Speicher | |
| DE69323790T2 (de) | Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem | |
| DE4335475A1 (de) | Datenverarbeitungseinrichtung mit Cache-Speicher | |
| DE69432314T2 (de) | Cachespeicher mit aufgeteiltem pegel | |
| DE69226928T2 (de) | Verfahren und Direktspeicherzugriffssteuerung zum asynchronen Daten-Lesen von einem -Schreiben in einen Speicher mit verbessertem Durchfluss | |
| DE3909896C2 (de) | ||
| DE69331039T2 (de) | Rechnersystem mit einem Vorausholungscachespeicher | |
| DE69018100T2 (de) | Datenübertragung über Busadressleitungen. | |
| DE68911398T2 (de) | Methode und digitaler computer zum vorausholen von vektordaten aus dem speicher in einem für skalaverarbeitung bestimmten speichersystem. | |
| DE69032276T2 (de) | Verfahren und Anordnung zur Verbesserung der Datenspeicherungsgeschwindigkeit eines Computersystems | |
| DE69224084T2 (de) | Rechneranordnung mit Mehrfachpufferdatencachespeicher und Verfahren dafür | |
| DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
| DE69937611T2 (de) | Intelligenter Puffer-Speicher | |
| DE102008055892A1 (de) | Abspeichern von Abschnitten eines Datenübertragungsdeskriptors in einem gecachten und einem nicht gecachten Adressbereich | |
| DE10045188B4 (de) | Cacheadresskonfliktvorrichtung | |
| DE69611510T2 (de) | Zentrale Verarbeitungseinheit mit Cache-Speicher | |
| DE69033412T2 (de) | Datenübertragungssteuervorrichtung für Parallelverarbeitungssysteme | |
| DE19908618A1 (de) | Gemeinsam genutzter Hochleistungscachespeicher | |
| DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
| DE112010005609T5 (de) | Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OP8 | Request for examination as to paragraph 44 patent law | ||
| 8127 | New person/name/address of the applicant |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
| 8131 | Rejection |