DE19727862A1 - Verfahren und Anordnung zur Erhöhung der Hitrate bei Cache-Zugriffen in Prozessorsystem - Google Patents
Verfahren und Anordnung zur Erhöhung der Hitrate bei Cache-Zugriffen in ProzessorsystemInfo
- Publication number
- DE19727862A1 DE19727862A1 DE19727862A DE19727862A DE19727862A1 DE 19727862 A1 DE19727862 A1 DE 19727862A1 DE 19727862 A DE19727862 A DE 19727862A DE 19727862 A DE19727862 A DE 19727862A DE 19727862 A1 DE19727862 A1 DE 19727862A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- cache
- program
- main memory
- prgrm
- 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
- 238000000034 method Methods 0.000 title claims abstract description 14
- 230000015654 memory Effects 0.000 claims abstract description 55
- 238000006243 chemical reaction Methods 0.000 claims abstract description 5
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 238000005755 formation reaction Methods 0.000 claims 1
- 229940036310 program Drugs 0.000 claims 1
- 102100021786 CMP-N-acetylneuraminate-poly-alpha-2,8-sialyltransferase Human genes 0.000 description 6
- 101000616698 Homo sapiens CMP-N-acetylneuraminate-poly-alpha-2,8-sialyltransferase Proteins 0.000 description 6
- BDEDPKFUFGCVCJ-UHFFFAOYSA-N 3,6-dihydroxy-8,8-dimethyl-1-oxo-3,4,7,9-tetrahydrocyclopenta[h]isochromene-5-carbaldehyde Chemical compound O=C1OC(O)CC(C(C=O)=C2O)=C1C1=C2CC(C)(C)C1 BDEDPKFUFGCVCJ-UHFFFAOYSA-N 0.000 description 5
- 102100036464 Activated RNA polymerase II transcriptional coactivator p15 Human genes 0.000 description 5
- 101000713904 Homo sapiens Activated RNA polymerase II transcriptional coactivator p15 Proteins 0.000 description 5
- 101000915578 Homo sapiens Zinc finger HIT domain-containing protein 3 Proteins 0.000 description 5
- 229910004444 SUB1 Inorganic materials 0.000 description 5
- 102100028598 Zinc finger HIT domain-containing protein 3 Human genes 0.000 description 5
- 229910004438 SUB2 Inorganic materials 0.000 description 3
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 3
- 101150018444 sub2 gene Proteins 0.000 description 3
- 102100023882 Endoribonuclease ZC3H12A Human genes 0.000 description 1
- 101710112715 Endoribonuclease ZC3H12A Proteins 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 108700012361 REG2 Proteins 0.000 description 1
- 101150108637 REG2 gene Proteins 0.000 description 1
- 108091058543 REG3 Proteins 0.000 description 1
- 101100120298 Rattus norvegicus Flot1 gene Proteins 0.000 description 1
- 101100412403 Rattus norvegicus Reg3b gene Proteins 0.000 description 1
- 102100027336 Regenerating islet-derived protein 3-alpha Human genes 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- QGVYYLZOAMMKAH-UHFFFAOYSA-N pegnivacogin Chemical compound COCCOC(=O)NCCCCC(NC(=O)OCCOC)C(=O)NCCCCCCOP(=O)(O)O QGVYYLZOAMMKAH-UHFFFAOYSA-N 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Die Erfindung betrifft ein Verfahren und eine Anordnung zur
Erhöhung der Hitrate bei Cache-Zugriffen in Prozessorsystemen
gemäß den Oberbegriffen der Ansprüche 1 bzw. 3.
Prozessorsysteme weisen heute eine Verarbeitungseinheit mit
einem Cache mit dahinter liegendem Hauptspeicher auf. Bei ei
ner ersten Datenanforderung durch die Verarbeitungseinheit
während einer Programmausführung eines ausführbaren Programms
werden Daten aus dem Hauptspeicher in den Cache geladen. Bei
weiteren Datenanforderungen wird dann stets zuerst im Cache
gesucht, bevor auf den Hauptspeicher zurückgegriffen wird und
neue Daten nachgeladen werden.
Die Verarbeitungsleistung des Prozessorsystems hängt stark
von der Hitrate in dem Cache ab. Je öfter angeforderte Daten
im Cache ohne Nachladen gefunden werden, um so höher ist die
Verarbeitungsleistung des Prozessorsystems. Jedes Laden und
Nachladen von Daten aus dem Hauptspeicher belastet die Spei
cherbusstruktur des Prozessorsystems, wodurch die Bandbreite
der Speicherbusstruktur wesentlich reduziert wird. Insbeson
dere bei Multiprozessorsystemen hängt die Zugriffszeit stark
von der Wartezeit ab, bis der Bus jeweils für eine Datenüber
tragung frei ist. Die Wartezeit wiederum ist abhängig von der
aktuellen Belastung des Speicherbusses.
Aufgabe der vorliegenden Erfindung ist daher, Maßnahmen anzu
geben, durch die die Verarbeitungsleistung von Prozessorsys
teme der eingangs genannten Art weiter erhöht wird.
Diese Aufgabe wird erfindungsgemäß durch ein Verfahren ge
löst, das die im kennzeichnenden Teil des Anspruchs 1 angege
benen Verfahrensschritte aufweist. Ferner wird diese Aufgabe
durch eine Anordnung gelöst, die die im kennzeichnenden Teil
des Anspruchs 3 angegebenen Merkmale aufweist.
Die erfindungsgemäßen Maßnahmen steigern die Verarbeitungs
leistung, weil die Hitrate des Caches erhöht wird, so daß
die Häufigkeit von Nachladevorgängen zu einer Ausführungszeit
von Programmen verringert wird. Die Zeit für die Programmaus
führung wird dadurch reduziert und die Verarbeitungsleistung
erhöht.
Erreicht wird dies dadurch, daß der Cache mit den Daten, die
bei einer Programmausführung sicher oder zumindest mit einer
hohen Wahrscheinlichkeit benötigt werden, vor oder spätestens
gleichzeitig zu der Programmausführung geladen wird. Um zu
wissen, welche Daten bei einer Programmausführung sicher be
nötigt werden und daher vorab zu laden sind, sind zusätzlich
zu dem ausführbaren Programmcode des auszuführenden Programms
im Hauptspeicher Adreß- oder Referenzinformationen gespei
chert, die Auskunft darüber geben, wo die benötigten Daten im
Hauptspeicher zu finden sind. Die Adreß- oder Referenzinfor
mationen werden bei einem Umwandlungsvorgang bzw. einer Über
setzung des Ausgangs- bzw. Quellcodes des auszuführenden Pro
gramms in einen vom Prozessorsystem ausführbaren Programmcode
ermittelt. Vor oder gleichzeitig zu der Programmausführung
werden durch eine Vorab-Datenladeeinrichtung, die mit dem
Cache und der Verarbeitungseinheit des Prozessorsystems in
Verbindung steht, die zusätzlich zum Programmcode abgespei
cherten Adreß- oder Referenzinformationen aus dem Hauptspei
cher abgearbeitet und dabei der Cache mit den entsprechenden
sicher oder zumindest mit hoher Wahrscheinlichkeit benötigten
Daten in den Cache geladen. Somit ist sichergestellt, daß im
Cache von Anfang an solche Daten stehen, die tatsächlich eine
hohe Hitrate aufweisen. Insgesamt wird somit der Cache gegen
über der bisherigen Art der Benutzung von Caches programmge
steuert vorabgeladen.
Eine vorteilhafte Ausgestaltung der Erfindung gemäß dem Ver
fahren ist Gegenstand eines Unteranspruchs. Danach werden In
halte des Caches im wesentlichen erst nach Beenden der lau
fenden Programmausführung zurückgeschrieben. Dies ist mög
lich, weil durch das Vorab-Laden des Caches die für die Pro
grammausführung benötigten Daten vorhanden sind, so daß sich
Nachladevorgänge zur Ausführungszeit eines Programms erübri
gen, die ein vorheriges Zurückschreiben notwendig machen wür
den. Der Vorteil ist, wie schon erwähnt, daß die Ausfüh
rungszeit für die Programmausführung wesentlich verkürzt ist
und der Speicherbus zum Hauptspeicher nicht mehr so belastet
ist, weil im Falle von mehreren Teilnehmern beispielsweise in
einem Multiprozessorsystem die einzelnen Teilnehmer wesent
lich länger in ihren eigenen Subsystemen arbeiten können, be
vor sie wieder auf den Hauptspeicher zugreifen müssen.
Nachfolgend werden Ausführungsbeispiele der Erfindung anhand
einer Zeichnung näher erläutert. Darin zeigen
Fig. 1 eine schematische Darstellung eines bekannten Pro
zessorsystems,
Fig. 2 eine schematische Darstellung eines erfindungsgemä
ßen Prozessorsystems,
Fig. 3 eine schematische Darstellung eines Multiprozessor
systems mit einzelnen Prozessorsystemen gemäß der
Fig. 2,
Fig. 4 eine schematische Darstellung einer Pointerlogik ge
mäß einem Teil eines jeweiligen Prozessorsystems ge
mäß der Fig. 2 oder 3 zum Erkennen und Auffinden
von im Cache vorhandenen Daten, und
Fig. 5 eine schematische Darstellung einer Pointersetlogik
gemäß einem Teil der Pointerlogik gemäß der Fig. 4.
Das in der Fig. 1 gezeigte Prozessorsystem PS weist eine er
ste Komponentengruppe auf, die durch einen Hauptspeicher HS
gebildet ist, und weist eine zweite Komponentengruppe auf,
die eine Verarbeitungseinheit VE, einen Cache C und eine
Cache-Steuerung CSTR umfaßt. Im Hauptspeicher HS stehen die
vom Prozessorsystem ausführbaren Programmcodes von auszufüh
renden Programmen, die ausgehend von entsprechenden Quell
codes bzw. Ausgangscodes durch einen Übersetzungs- oder As
semblierungsvorgang erzeugt wurden. In der Fig. 1 ist ein
ausführbarer Programmcode für nur ein einziges auszuführendes
Programm angedeutet. Das ausführbare Programm umfaßt dabei
im Hauptspeicher HS Abschnitte, in denen der ausführbare Pro
grammcode eins PRGRM1-CDE selbst steht, und Abschnitte, in
denen die zum ausführbaren Programmcode eins PRGRM1-CDE zuge
hörigen Programmdaten PRGRM1-DTN stehen.
Bei der Programmausführung des Programmcodes eins PRGRM1-CDE
gemäß Fig. 1 werden zunächst keine zugehörigen Programmdaten
PRGRM1-DTN geladen. Diese werden erst während des Programm
laufs und bei Bedarf geladen. Im weiteren Verlauf der Pro
grammausführung werden in den Cache geladene Daten immer wie
der verdrängt, möglicherweise wurden sie auch noch gar nicht
geladen, so daß es immer wieder vorkommt, daß benötigte Da
ten nicht im Cache gefunden werden und Nachladevorgänge an
den Hauptspeicher HS gestartet werden müssen.
Bei dem in der Fig. 2 gezeigten Prozessorsystem ist neben
den im Zusammenhang mit der Fig. 1 beschriebenen Komponenten
eines Prozessorsystems eine Vorab-Datenladeeinrichtung CPLU
zu sehen, die in Verbindung mit dem Cache C und der Verarbei
tungseinheit VE steht. Weiter gibt es im Hauptspeicher HS zu
den dargestellten Abschnitten für den ausführbaren Pro
grammcode eins PRGRM1-CDE und den Programmdaten PRGRM1-DTN zu
dem Programmcode eins PRGRM1-CDE zusätzlich Abschnitte, in
denen Adreß- oder Referenzinformationen PRGRN1-CPLI zu Daten
stehen, die bei der Programmausführung des ausführbaren Pro
grammcodes PRGRM-CDE sicher oder zumindest mit hoher Wahr
scheinlichkeit benötigt werden.
Die Adreß- oder Referenzinformationen PRGRM1-CPLI stellen
für sich ein ausführbares Programm dar, das die bei der Pro
grammausführung eines ausführbaren Programms, beispielsweise
das durch den ausführbaren Programmcode eins PRGRM1-CDE ange
gebene Programm, benötigten Daten in den Cache C lädt. Hierzu
startet die Vorab-Ladeeinrichtung CPLU vor oder spätestens
gleichzeitig zu der Programmausführung der durch den Pro
grammcode eins PRGRM1-CDE gegebenen Programms, die als Skrip
toren auffaßbaren Adreß- oder Referenzinformationen
PRGRM1-CPLI und arbeitet diese ab. Im Anschluß daran stehen im
Cache C vorab oder spätestens gleichzeitig zu der Pro
grammausführung des besagten Programms die benötigten Daten.
Die Adreß- oder Referenzinformationen PRGRM1-CPLI, bei
spielsweise zum ausführbaren Programmcode eins PRGRM1-CDE,
werden beim Übersetzen des entsprechenden Quell- oder Aus
gangscodes in einen vom Prozessorsystem PS ausführbaren Pro
grammcode eins PRGRM1-CDE ermittelt und zusätzlich zum aus
führbaren Programmcode eins PRGRM1-CDE im Hauptspeicher HS
abgespeichert.
Eine Adreß- oder Referenzinformation PRGRM1-CPL1 hat bei
spielsweise den nachfolgend aufgezeigten Aufbau.
Cacheadresse gibt an, wo die Information im Haupt
speicher steht.
Länge gibt an, wieviel Information kopiert
werden soll.
SWAP-Speicheradresse gibt an, wo die Information im Cache
gespeichert werden soll.
Pointerset gibt an, welche SWAP-Pointersetlogik
verwendet werden soll. Für jeden Daten
bereich im SWAP-Speicher (siehe nach
folgend) ist eine separate Pointer
setlogik vorzusehen, um eine unabhän
gige Hit-Feststellung durchführen und
die Adresse im SWAP-Speicher parallel
ermitteln zu können.
Flagbyte gibt an, ob z. B. ein Datenbereich oder
mehrere Datenbereiche mit einer solchen
Adreß- oder Referenzinformation über
tragen werden soll.
Dabei ist angenommen, daß die Prozessorsystemkomponenten
Cache-Steuerung CSTR, Cache C und Vorab-Datenladeeinrichtung
CPLU als ein sogenannter SWAP-Speicher SWAPB zusammengefaßt
sind. Eine Adreß- oder Referenzinformation z. B. PRGRM1-CPLI
wird in der Fachsprache auch als Scrip bezeichnet.
In der Fig. 3 sind der Vereinfachung wegen solche SWAP-Spei
cher SWAPB1, SWAPB2 und SWAPB3 pro ein Prozessorsystem PS1,
PS2 und PS3 gezeichnet. Die Prozessorsysteme PS1, PS2 und PS3
entsprechen jedes einem Prozessorsystem PS der Fig. 2. In
nerhalb der Prozessorsysteme PS1, PS2 und PS3 sind noch die
jeweiligen Verarbeitungseinheiten VE1, VE2 und VE3 näher an
gegeben. In der Fig. 3 sind pro jeweiliges Prozessorsystem
PS1, PS2 und PS3 weiter sogenannte Pointerlogiken PL1, PL2
und PL3 näher angegeben, die den jeweiligen SWAP-Speichern
SWAPB1, SWAPB2 und SWAPB3 zugeordnet sind. Innerhalb der
SWAP-Speicher SWAPB1, SWAPB2 und SWAPB3 sind jeweilige Poin
terlogiken PL1, PL2 und PL3 den jeweiligen Vorab-Datenlade
einrichtungen zugeordnet.
Zum Multiprozessorsystem gemäß der Fig. 3 gehört noch ein
Hauptspeicher HS und ein Speicher SB, der den Hauptspeicher
HS mit den jeweiligen Prozessorsystemen PS1, PS2 und PS3 ver
bindet.
Aufgrund des programmgesteuerten Vorab-Datenladens von sicher
oder zumindest mit hoher Wahrscheinlichkeit bei einer Pro
grammausführung benötigter Daten aus dem Hauptspeicher HS in
den jeweiligen Cache C des jeweiligen Prozessorsystems PS1,
PS2 und PS3 werden Zugriffszyklen und damit die Belastung des
Speicherbusses SB minimiert, weil die Hitrate in den Caches C
erhöht wird. Die Ausführungszeit für eine Programmausführung
wird dadurch optimiert. Die Belastung des Speicherbusses re
duziert sich, weil die einzelnen Prozessorsysteme aufgrund
der Tatsache, daß sie ihre benötigten Daten bereits in ihrem
Cache C haben, über wesentliche Zeitabschnitte für sich ar
beiten können und weder den Speicherbus SB noch den Haupt
speicher HS benötigen. Erst das Ende einer Programmausführung
ist ein regelmäßiger Zeitpunkt, an dem die genannten Kompo
nenten wieder beansprucht werden müssen.
Im optimalen Fall ist die Größe des Caches C so bemessen,
daß alle zu einem auszuführenden Programm benötigten Daten
in einem Durchgang geladen werden können. Da dies vielleicht
nicht immer möglich sein wird, können Nachladungen von Daten
gegebenenfalls doch möglich werden. Es könnte auch sein, daß
die Bearbeitung eines Gerätes, zu dem eine Programmausführung
gerade läuft, verdrängt wird, so daß ein Zurückschreiben von
Daten notwendig ist. Insgesamt wird aber trotzdem die Bean
spruchung des Speicherbusses SB reduziert und die Verarbei
tungsleistung der Prozessorsysteme PS1, PS2 und PS3 um ca.
20-30% erhöht.
Die im Zusammenhang mit der Fig. 3 angesprochenen Pointerlo
giken PL1, PL2 und PL3 beinhalten eine sogenannte Hit-/Miss
logik und eine SWAP-Speicher-Adreßberechnungslogik. Die
Hit-/Misslogik entscheidet, ob benötigte Daten im Cache vorhanden
sind oder ob diese aus dem Hauptspeicher HS geholt werden
müssen.
Eine Pointerlogik PL ist in der Fig. 4 näher dargestellt.
Bezüglich eines laufenden auszuführenden Programms, das Daten
für die Bearbeitung benötigt, wird der Pointerlogik PL ein
gangsseitig eine in einem möglichen Adreßraum liegende
Adresse VE-ADR von der Verarbeitungseinheit VE zugeführt, um
die Daten im Cache C des SWAP-Speichers SWAPB aufzuspüren.
Dem Adreßraum sind abhängig von der möglichen Anzahl der vom
auszuführenden Programm benötigten Datenbereiche eine ent
sprechende Anzahl von Pointersetlogiken PST zugeordnet, die
jeweils für einen der Datenbereiche zuständig sind. Ein aus
zuführendes Programm kann unterschiedliche Datenbereiche be
nötigen, weil es möglicherweise mit unterschiedlichen Geräten
gleichzeitig arbeitet, für die es jeweils spezielle Daten,
das heißt einen speziellen Gerätekontrollblock benötigt.
Im vorliegenden Ausführungsbeispiel sind den möglichen Adres
sen VE-ADR der Verarbeitungseinheit n Pointersetlogiken PST1
bis PSTn zugeordnet. Die Adresse VE-ADR von der Verarbei
tungseinheit VE wird parallel einer jeden dieser zugeordneten
Pointersetlogik PST1 bis PSTn zur Berechnung der Adresse ADR
des SWAP-Speichers SWAPB zugeführt. Abhängig von der angelie
ferten Adresse VE-ADR der Verarbeitungseinheit VE liefern die
Pointersetlogiken PST1 bis PSTn erstens Pointeradressen PADR1
bis PADRn, sowie ein jeweiliges Hitsignal HIT1 bis HITn, wo
bei das jeweilige Hitsignal HIT1 bis HITn beispielsweise po
sitiv ist, wenn die jeweilige Pointeradresse PADR1 bis PADRn
für den betreffenden Datenbereich zutrifft. Es ist negativ,
wenn die Pointeradresse PADR1 bis PADRn für den betreffenden
Datenbereich nicht zutrifft.
Die Pointeradressen PADR1 bis PADRn werden einem Multiplexer
MX zugeführt, der abhängig von einem vorliegenden positiven
Hitsignal HIT1 bis HITn die jeweils zugehörige Pointeradresse
PADR1 bis PADRn auf den SWAP-Speicher SWAPB durchschaltet.
Durchgeschaltet wird letztendlich nur eine Pointeradresse
PADR1 bis PADRn, weil die gesuchten Daten nur in einem der
den Pointersetlogiken PST1 bis PSTn zugeordneten Datenberei
che liegen kann.
Parallel zur Ansteuerung des Multiplexers MX durch die Hitsi
gnale HIT1 bis HITn sind die Hitsignale HIT1 bis HITn auf ei
ne logische Oderschaltung geführt, die einen Globalhit GHIT
anzeigt, das heißt, daß die gesuchten Daten überhaupt im
SWAP-Speicher SWAPB vorhanden sind.
Die Arbeitsweise einer einzelnen Pointersetlogik PST ist in
der Fig. 5 näher dargestellt. Die Adresse VE-ADR der Verar
beitungseinheit VE wird danach einem ersten Subtrahierer SUB1
zugeführt, der eine Subtraktion dieser Adresse mit einer in
einem ersten Register REG1 stehenden Cache-Start-Adresse n
CS-ADRn durchführt und das Ergebnis als eine Information C an
einen Addierer ADD und einen zweiten Subtrahierer SUB2 wei
tergibt. Der erste Subtrahierer SUB1 stellt außerdem noch
fest, ob das Subtraktionsergebnis positiv ist. Ist das Ergeb
nis positiv, was bedeutet, daß die Adresse VE-ADR der Verar
beitungseinheit VE auf einen gültigen Bereich im SWAP-Spei
cher SWAPB zugreift, gibt der erste Subtrahierer SUB1 einen
entsprechenden ersten positiven Hit POS1n aus, der einer lo
gischen Undschaltung zugeführt wird.
Abhängig von einer in einem zweiten Register REG2 stehenden
SWAP-Pointer-Start-Adresse n SPS-ADRn wird die Adresse ADR
für den SWAP-Speicher SWAPB vom Addierer ADD berechnet, indem
er die Information C des ersten Subtrahierers SUB1 und die
SWAP-Pointer-Start-Adressen SPS-ADRn, die dem Addierer als
Information D zugeführt wird, addiert.
Daneben wird die Information C des ersten Subtrahierers SUB1
mit einer in einem dritten Register REG3 stehenden Länge n
des entsprechend zugehörigen Datenbereichs verglichen, indem
die Länge n, die dem zweiten Subtrahierer SUB2 als Informa
tion E zugeführt wird, von der Information C abgezogen wird.
Dadurch wird festgestellt, ob die angelieferte Adresse VE-ADR
der Verarbeitungseinheit VE nicht über den entsprechenden Da
tenbereich, im vorliegenden Fall der Datenbereich n, hinaus
zeigt. Ist dies nicht der Fall, erzeugt der zweite Subtrahie
rer SUB2 einen zweiten positiven Hit POS2, der neben dem er
sten positiven Hit POS1 der logischen Undschaltung zugeführt
wird. Zeigen beide positiven Hits POS1, POS2 einen positiven
Hit an, liegen die gesuchten Daten im SWAP-Speicher SWAPB
vor.
Claims (3)
1. Verfahren zur Erhöhung der Hitrate bei Cache-Zugriffen in
Prozessorsystemen, in denen bei einer ersten Datenanforderung
durch eine Verarbeitungseinheit des Prozessorsystems während
einer Programmausführung eines auszuführenden Programms Daten
aus einem Hauptspeicher in den Cache geladen werden, aus dem
dann bei weiteren Datenanforderungen während der laufenden
Programmausführung jeweils zuerst versucht wird, Daten zu le
sen, bevor dann auf den Hauptspeicher zurückgegriffen wird,
dadurch gekennzeichnet, daß im Zuge eines Umwand
lungsvorganges eines Ausgangscodes des auszuführenden Pro
gramms in einen vom Prozessorsystem (PS) ausführbaren Pro
grammcode (PRGRM-CDE) als bei der Programmausführung sicher
oder zumindest mit hoher Wahrscheinlichkeit benötigt er
kannte, durch zusätzlich zum ausführbaren Programmcode
(PRGRM-CDE) im Hauptspeicher (HS) abgespeicherte Adreß- oder
Referenzinformationen (PRGRM-CPLI) bekannt gemachte Daten
(PRGRM-DTN) bereits vor oder spätestens gleichzeitig zu der
Programmausführung in den Cache (C) geladen werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeich
net, daß Inhalte des Caches (C) spätestens zum Beenden der
laufenden Programmausführung wieder in den Hauptspeicher (HS)
zurückgeschrieben werden.
3. Anordnung zur Erhöhung der Hitrate bei Cache-Zugriffen in
Prozessorsystemen mit einer Verarbeitungseinheit, einem
Hauptspeicher mit einem abgespeicherten, aufgrund eines Um
wandlungsvorganges eines entsprechenden Ausgangscodes aus
führbaren Programmcode und mit einem Cache, in den bei einer
ersten Datenanforderung durch die Verarbeitungseinheit wäh
rend einer Programmausführung des auszuführenden Programm
codes Daten aus dem Hauptspeicher geladen werden und auf den
bei weiteren Datenanforderungen während der laufenden Pro
grammausführung jeweils zuerst zugegriffen wird, um Daten zu
lesen, bevor dann auf den Hauptspeicher zurückgegriffen wird,
dadurch gekennzeichnet, daß im Hauptspeicher (HS)
Speicherplätze vorgesehen sind, in denen zusätzlich zum aus
führbaren Programmcode (PRGRM-CDE) Adreß- oder Referenzin
formationen (PRGRM-CPLI) gespeichert sind über Daten (PRGRM-DTN),
die beim Umwandlungsvorgang des Programmcodes als bei
der Programmausführung als sicher oder zumindest mit hoher
Wahrscheinlichkeit benötigt erkannt worden sind, und daß ei
ne mit der Verarbeitungseinheit (VE) und dem Cache (C) in
Verbindung stehende Vorab-Datenladeeinrichtung (CPLU) vor
gesehen ist, die vor oder spätestens gleichzeitig zu der Pro
grammausführung des ausführbaren Programmcodes (PRGRM-CDE)
die durch die Adreß- oder Referenzinformationen (PRGRM-CPLI)
bekannt gemachten Daten (PRGRM-DTN) in den Cache (C) lädt.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19727862A DE19727862A1 (de) | 1997-06-30 | 1997-06-30 | Verfahren und Anordnung zur Erhöhung der Hitrate bei Cache-Zugriffen in Prozessorsystem |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19727862A DE19727862A1 (de) | 1997-06-30 | 1997-06-30 | Verfahren und Anordnung zur Erhöhung der Hitrate bei Cache-Zugriffen in Prozessorsystem |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19727862A1 true DE19727862A1 (de) | 1999-01-07 |
Family
ID=7834166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19727862A Ceased DE19727862A1 (de) | 1997-06-30 | 1997-06-30 | Verfahren und Anordnung zur Erhöhung der Hitrate bei Cache-Zugriffen in Prozessorsystem |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE19727862A1 (de) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357618A (en) * | 1991-04-15 | 1994-10-18 | International Business Machines Corporation | Cache prefetch and bypass using stride registers |
-
1997
- 1997-06-30 DE DE19727862A patent/DE19727862A1/de not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357618A (en) * | 1991-04-15 | 1994-10-18 | International Business Machines Corporation | Cache prefetch and bypass using stride registers |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68924306T2 (de) | Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern. | |
DE3803759C2 (de) | ||
DE4225228C2 (de) | Vorabrufpuffer und einen derartigen Vorabrufpuffer verwendendes Informationsverarbeitungssystem | |
DE19527031C2 (de) | Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems | |
DE4420451C2 (de) | Sperrmechanismus für ein CHECK-IN/CHECK-OUT-Modell | |
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem | |
DE69321929T2 (de) | Verfahren und System um einen unabhängige Zugriff auf Zwischenspeicherpuffern in einem superskalaren Prozessorsystem zu gewährleisten. | |
DE3106881C2 (de) | Datenverarbeitungseinrichtung | |
DE69325473T2 (de) | Virtuelles Speichersystem verwendendes Datenverarbeitungssystem und -verfahren | |
DE69031696T2 (de) | Cache-Speicher mit der Möglichkeit im Fehlgriffsfall gleichzeitig zu aktualisieren und eine Entscheidung über die nächste Adresse zu treffen | |
DE69532006T2 (de) | Speichersteuerverfahren und Vorrichtung geeignet für ein Informationsverarbeitungssystem | |
DE3013064A1 (de) | Pufferspeicher fuer die datenuebertragung | |
CH625895A5 (de) | ||
EP1079307A1 (de) | Verfahren zum Betrieb eines Speichersystems sowie Speichersystem | |
DE69810098T2 (de) | Leseoperationen in einem multiprozessorrechnersystem | |
DE19727862A1 (de) | Verfahren und Anordnung zur Erhöhung der Hitrate bei Cache-Zugriffen in Prozessorsystem | |
DE69909400T2 (de) | Verfahren zur Steuerung eines Cache-Speichers in einem Multiprozessorsystem und Multiprozessorsystem | |
DE69030368T2 (de) | Tandem-Cache-Speicher | |
EP0280954B1 (de) | Verfahren zur Steuerung des Datenaustausches zwischen Verarbeitungseinheiten und einem Speichersystem mit Cachespeicher in Datenverarbeitungsanlagen, sowie ein entsprechend arbeitender Cachespeicher | |
DE69330875T2 (de) | Cachespeichervorrichtung. | |
DE10121745A1 (de) | Verfahren und Anordnung zu einem Stack mit einem, in Datengruppen mit mehreren Elementen aufgeteilten Speicher | |
DE68924230T2 (de) | Befehlscachespeicher mit flush-on-rei-steuerung. | |
DE69525850T2 (de) | System und verfahren zur verarbeitung von speicherdaten und kommunikationssystemen mit diesem system | |
DE4330119C1 (de) | Verfahren zum gesteuerten Vorladen von Informationsblöcken in Cacheblockgröße in einen Cachespeicher eines Rechners bei Ablauf eines Programms | |
DE69519939T2 (de) | System und verfahren zur datenverarbeitung und damit ausgestattetes kommunikationssystem |
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: FUJITSU SIEMENS COMPUTERS GMBH, 81739 MUENCHEN, DE |
|
8120 | Willingness to grant licences paragraph 23 | ||
8131 | Rejection |