DE19650519A1 - System und Verfahren zum Verfolgen von Fehlschlägen - Google Patents
System und Verfahren zum Verfolgen von FehlschlägenInfo
- Publication number
- DE19650519A1 DE19650519A1 DE19650519A DE19650519A DE19650519A1 DE 19650519 A1 DE19650519 A1 DE 19650519A1 DE 19650519 A DE19650519 A DE 19650519A DE 19650519 A DE19650519 A DE 19650519A DE 19650519 A1 DE19650519 A1 DE 19650519A1
- Authority
- DE
- Germany
- Prior art keywords
- failure
- cache
- data
- main memory
- indicator
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims description 21
- 230000015654 memory Effects 0.000 claims description 90
- 238000012545 processing Methods 0.000 claims description 37
- 230000001419 dependent effect Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 101100108293 Caenorhabditis elegans aex-4 gene Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- GSDSWSVVBLHKDQ-UHFFFAOYSA-N 9-fluoro-3-methyl-10-(4-methylpiperazin-1-yl)-7-oxo-2,3-dihydro-7H-[1,4]oxazino[2,3,4-ij]quinoline-6-carboxylic acid Chemical compound FC1=CC(C(C(C(O)=O)=C2)=O)=C3N2C(C)COC3=C1N1CCN(C)CC1 GSDSWSVVBLHKDQ-UHFFFAOYSA-N 0.000 description 1
- 101150087426 Gnal gene Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 210000003608 fece Anatomy 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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/0855—Overlapped cache accessing, e.g. pipeline
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
Description
Die vorliegende Erfindung bezieht sich allgemein auf Compu
terprozessorarchitekturen und insbesondere auf ein System
und Verfahren zum Verfolgen von Fehlschlägen zum Verfolgen
von Speicheranforderungen, die aus Cachefehlschlägen in ei
nem Prozessor resultieren, der Befehle außerhalb der Reihen
folge ausführt, derart, daß redundante Speicheranforderungen
beseitigt werden und die Speicherbandbreite optimiert wird.
Ein Computerprozessor (eine Verarbeitungseinheit) umfaßt
allgemein eine Steuereinheit, welche den Betrieb des Systems
anleitet, und eine arithmetisch-logische Einheit (ALU; ALU =
Arithmetic Logic Unit), welche Rechenoperationen durchführt.
Der Entwurf eines Prozessors betrifft die Auswahl eines Re
gistersatzes (von Registersätzen), Kommunikationskanäle zwi
schen diesen Registern und eine Einrichtung zum Leiten und
Steuern, wie diese arbeiten. Normalerweise wird ein Prozes
sor von einem Programm angeleitet, welches aus einer Serie
von Befehlen bestehen, die in einem Hauptspeicher gehalten
werden. Jeder Befehl ist eine Gruppe von Bits, welcher übli
cherweise eines oder mehrere Worte lang ist, und welcher
eine Operation spezifiziert, die von dem Prozessor ausge
führt werden soll. Im allgemeinen umfaßt der Grundzyklus
eines Prozessors die folgenden Schritte: (a) Abrufen eines
Befehls von einem Hauptspeicher in ein Befehlsregister; (b)
Decodieren des Befehls (d. h. Bestimmen, was er anzeigt, was
zu tun ist, wobei jeder Befehl eine durchzuführende Opera
tion und die Daten anzeigt, auf die die Operation angewendet
werden soll); (c) Ausführen der Operation, die durch den Be
fehl spezifiziert ist; und (d) Bestimmen, wo der nächste Be
fehl positioniert ist. Normalerweise ist der nächste Befehl
der, der unmittelbar dem gegenwärtigen Befehl folgt.
In Hochleistungsprozessoren, wie z. B. superskalaren Prozes
soren, bei denen zwei oder mehrere skalare Operationen pa
rallel durchgeführt werden, kann der Prozessor jedoch ent
worfen sein, um Befehle durchzuführen, die außerhalb der
Reihenfolge oder in einer Reihenfolge sind, die nicht mit
der konsistent ist, die durch die Software, welche den Pro
zessor treibt, definiert ist. Bei diesen Systemen werden Be
fehle ausgeführt, wenn sie ausgeführt werden können, im Ge
gensatz zu den Systemen, bei denen sie in der Sequenz, die
durch das Programm definiert ist, erscheinen und ausgeführt
werden. Darüberhinaus werden nach der Ausführung von Befeh
len außerhalb der Reihenfolge die Ergebnisse schließlich neu
geordnet, um der Befehlsreihenfolge zu entsprechen, bevor
die Ergebnisse zurück zu dem Programm geleitet werden.
Ein Cachespeicher wird oft in Verbindung mit einem Prozessor
in einem Computer verwendet, um die Leistung zu optimieren.
Ein Cachespeicher ist ein schneller Puffer, der zwischen dem
Prozessor und dem Hauptspeicher des Computers positioniert
ist. Daten und Befehle in gegenwärtiger Verwendung in dem
Prozessor werden in den Cachespeicher bewegt, wodurch zwei
Vorteile erzeugt werden. Zuerst wird die Durchschnittszu
griffszeit für die Prozessorspeicheranforderungen reduziert,
wodurch der Durchsatz des Prozessors erhöht wird. Zweitens
wird die Ausnutzung der verfügbaren Speicherbandbreite des
Prozessors dadurch reduziert, was es ermöglicht, daß andere
Geräte auf dem Systembus den Speicher verwenden, ohne den
Prozessor zu stören. Ein Cachespeicher wird somit verwendet,
um den Befehlsfluß und Datenfluß in den Prozessor von dem
Hauptspeicher zu beschleunigen. Diese Cachefunktion ist
wichtig, da die Hauptspeicherzykluszeit typischerweise lang
samer als die Prozessortaktraten ist.
Wenn ein Prozessor auf einen Datencache bezüglich einer Da
tenleitung (oder "Data-Line") zugreift, sendet der Prozessor
eine Adresse zu dem Cache. Der Cache analysiert einen Cache
index aus der Adresse und verwendet denselben, um eine Spei
cherposition (Speicherpositionen) auszuwählen, die die ge
wünschte Datenleitung enthalten kann (können). Der Cache
gibt eine Etikette (oder "Tag") aus, welche eine reelle Sei
tennummer (RPN; RPN = Real Page Number) in manchen Entwürfen
ist, welche der Position (den Positionen) entspricht, und
derselbe gibt einen Zustandsanzeiger aus, welcher anzeigt,
ob die Datenleitung, die der Etikette entspricht, gültig
oder ungültig ist.
Eine Unterstützungsschaltungsanordnung, die typischerweise
dem Cache zugeordnet ist, empfängt den Zustandsanzeiger und
die Etikette. Wenn der Zustandsanzeiger ungültige Daten an
zeigt, dann sendet die Unterstützungsschaltungsanordnung
eine "Fehlschlag"-Anzeige (oder "Miss"-Anzeige) zu dem Pro
zessor, wobei der Prozessor in diesem Fall auf den Haupt
speicher nach der Datenleitung zugreifen muß. Wenn der Zu
standsanzeiger gültige Daten anzeigt, vergleicht die Unter
stützungsschaltungsanordnung die Etikette mit dem Rest der
Adresse, um zu bestimmen, ob der Cache gegenwärtig die ge
wünschte Datenleitung speichert. Wenn der Cache die Daten
leitung, die angefordert wird, nicht aufweist, wie es durch
den Etikettenvergleich bestimmt wird, dann sendet die Unter
stützungsschaltungsanordnung eine "Fehlschlag"-Anzeige zu
dem Prozessor, wobei der Prozessor in diesem Fall auf den
Hauptspeicher bezüglich der Datenleitung zugreifen muß. Wenn
der Cache die Datenleitung, die angefordert wird, aufweist,
wie es durch den Etikettenvergleich bestimmt ist, dann sen
det die Unterstützungsschaltungsanordnung eine "Treffer"-An
zeige (oder "Hit"-Anzeige) zu dem Prozessor, welche den Pro
zessor bewegt, die angeforderte Datenleitung zu lesen.
Bei Prozessoren, die eine Ausführung von Befehlen außerhalb
der Reihenfolge durchführen oder bei superskalaren Ausfüh
rungen von Befehlen kann mehr als ein Befehl die gleiche
Datenleitung suchen. Wenn die Datenleitung ferner in dem
Cache nicht verfügbar ist, dann können mehrere Speicheran
forderungen zu dem Hauptspeicher erzeugt und auf der System
schnittstelle oder auf dem Bus (den Bussen) übertragen wer
den. Diese ungünstige Situation ist unerwünscht, da sie die
Bandbreite der Systemschnittstelle durch Erhöhung des Ver
kehrs verringert.
Die Aufgabe der vorliegenden Erfindung besteht darin, die
Leistung von Prozessoren zu verbessern, die Befehle außer
halb der Reihenfolge durchführen.
Diese Aufgabe wird durch ein System gemäß Anspruch 1 und
durch ein Verfahren gemäß Anspruch 8 gelöst.
Ein Vorteil der vorliegenden Erfindung besteht darin, daß
sie ein System und Verfahren zum Verfolgen von Fehlschlägen
zum Beseitigen von redundanten Speicheranforderungen und zum
Aktualisieren von Befehlen, die von den Speicheranforderun
gen abhängen, schafft, sobald Datenleitungen von dem Haupt
speicher in ein Verarbeitungssystem, das außerhalb der Rei
henfolge arbeitet, zurückgegeben werden.
Ein weiterer Vorteil der vorliegenden Erfindung besteht dar
in, daß sie ein System und Verfahren zum Verfolgen von Fehl
schlägen schafft, das im Entwurf einfach, im Betrieb wirt
schaftlich und zuverlässig und in der Lage ist, in Massen
stückzahlen preisgünstig hergestellt zu werden.
Kurz beschrieben schafft die vorliegende Erfindung ein Sy
stem und Verfahren zum Verfolgen von Fehlschlägen, das die
Bandbreite zu einem Hauptspeicher, der einem Verarbeitungs
system zugeordnet ist, das einen Datencache verwendet und
Befehle außerhalb der Reihenfolge ausführt, optimiert. Das
System zum Verfolgen von Fehlschlägen umfaßt einen Prozes
sor, einen Hauptspeicher, der mit dem Prozessor über eine
Systemschnittstelle in Verbindung ist, und einen Datencache
(DCACHE; DCACHE = Data Cache), der dem Prozessor zugeordnet
ist.
Der Prozessor weist eine Befehlsneuordnungsvorrichtung auf,
die vorzugsweise eine Speicherschlange (MQUEUE; MQUEUE =
Memory Queue) ist, die jedoch nicht auf dieselbe begrenzt
ist, zum Empfangen und Ausführen von Befehlen, die auf Spei
cherzugriffe ausgerichtet sind, d. h. Ladungen von oder Spei
cherungen zu dem Hauptspeicher oder dem DCACHE. Die MQUEUE
umfaßt eine Mehrzahl von Befehlsverarbeitungsvorrichtungen
zum Empfangen jeweiliger Speicherbefehle. Jede Befehlsverar
beitungsvorrichtung umfaßt ein Befehlsregister zum Speichern
des entsprechenden Befehls und Adressenneuordnungspuffer
schlitze (ARBSLOTs; ARBSLOT = Address Reorder Buffer Slots)
zum Empfangen der Datenadresse der Ergebnisse, die sich auf
die Befehlsausführung beziehen. Die Befehlsverarbeitungsvor
richtung startet Befehle außerhalb der Reihenfolge (zum Be
ginnen der Ausführung), wobei die Befehle bewirken, daß Zu
griffe auf den DCACHE durchgeführt werden.
Gemäß einem bedeutsamen Merkmal der Erfindung verhindert
eine Abhängig-Von-Fehlschlag- (DM-; DM = Dependent-On-Miss)
Anzeigerlogik, die jeder Befehlsverarbeitungsvorrichtung und
insbesondere den ARBSLOTs zugeordnet ist, eine Anforderung
von ihrem jeweiligen ARBSLOT zu dem Hauptspeicher nach Fehl
schlagdaten, die von dem DCACHE abwesend sind, wenn ein an
derer ARBSLOT bereits von dem Hauptspeicher die Fehlschlag
daten angefordert hat. Die DM-Anzeigerlogik umfaßt einen
DM-Anzeiger, wie z. B. einen Latch oder eine andere geeignete
Vorrichtung, welcher konfiguriert ist, um ein Signal DM zum
Anzeigen, ob ein Befehl des derselben zugeordneten ARBSLOTs
gegenwärtig von Fehlschlagdaten abhängt, die noch nicht
empfangen worden sind, oder nicht, zu aktivieren bzw. zu
deaktivieren. Die DM-Anzeigerlogik aktiviert das Signal DM,
wenn ein Cache-Fehlschlag auftritt, dieselbe wird jedoch
jede Anforderung von ihrem jeweiligen ARBSLOT zu dem Haupt
speicher nach den Fehlschlagdaten verhindern, wenn ein ande
rer ARBSLOT gerade die Anforderung durchgeführt hat. Der
DM-Anzeiger deaktiviert das Signal DM, wenn die Fehlschlag
daten von dem Hauptspeicher von dem DCACHE empfangen sind,
wobei die Deaktivierung bewirkt, daß der spezielle ARBSLOT
nochmal auf den DCACHE bezüglich der Daten zugreift.
Ferner ist ein Zustandsanzeiger, welcher bei dem bevorzugten
Ausführungsbeispiel eines oder mehrere Bits aufweist, jeder
Cachedatenleitung zugeordnet. Der Zustandsanzeiger kann ei
nen "Fehlschlag-Schwebend"-Zustand anzeigen, was bedeutet,
daß die entsprechende Cachedatenleitung sowohl ungültig ist,
als auch daß sie bereits von dem Hauptspeicher angefordert
worden ist. Die Logik untersucht den Zustandsanzeiger wäh
rend eines Cachezugriffs. Wenn der Zustandsanzeiger den
Fehlschlag-Schwebend-Zustand anzeigt, dann aktiviert die
Logik das Signal DM mit dem DM-Anzeiger und sieht davon ab,
einen Zugriff auf den Hauptspeicher einzuleiten.
Zwecks des Erreichens einer höheren Leistung kann der Zu
standsanzeiger ebenfalls einen "Cacheleitung-Halb-Gültig"-
Zustand anzeigen, wenn nur die Hälfte einer Datenleitung
gültig ist. Bei dem bevorzugten Ausführungsbeispiel werden
Cacheleitungen von dem Hauptspeicher in zwei Hälften zurück
gegeben. Diese zusätzlichen Zustandsinformation erlauben,
daß die Logik erkennt, ob die Hälfte der Cacheleitung ver
fügbar ist, und ob die Datenadresse in einem gegebenen
ARBSLOT weitergehen kann und auf ihre Daten von der halben
Leitung, die in dem DCACHE ist, zugreifen kann.
Die Erfindung kann ebenfalls derart aufgefaßt werden, als
daß sie ein neuartiges Verfahren zum Einsparen von Band
breite zu einem Hauptspeicher aufweist, der einem Verarbei
tungssystem zugeordnet ist, das einen Datencache verwendet
und das Befehle außerhalb der Reihenfolge ausführt. In die
ser Hinsicht kann das Verfahren allgemein umrissen folgende
Schritte aufweisen: Ausführen von Befehlen, die auf Datenzu
griffe ausgerichtet sind, außerhalb der Reihenfolge; Zugrei
fen auf den Datencache mit dem Verarbeitungssystem gemäß den
Befehlen; Erkennen von Fehlschlagdaten, die von dem Daten
cache abwesend sind, mit dem Verarbeitungssystem; und Ver
hindern einer Mehrzahl von Anforderungen zu dem Hauptspei
cher nach den Fehlschlagdaten.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung
werden nachfolgend bezugnehmend auf die beiliegenden Zeich
nungen, in denen gleiche Bezugszeichen in verschiedenen Fi
guren gleiche Komponenten bezeichnen, detaillierter erläu
tert. Es zeigen.
Fig. 1 ein Blockdiagramm, das einen Computer zeigt, der
das System und Verfahren zum Verfolgen von Fehl
schlägen der vorliegenden Erfindung zeigt;
Fig. 2 ein Blockdiagramm, das eine mögliche Implementation
eines Befehls-Abruf/Ausführungs-Systems in einem
Prozessor von Fig. 1 zeigt;
Fig. 3 ein Blockdiagramm, das eine mögliche Implementation
des neuen Fehlschlagverfolgungssystems von Fig. 1
zeigt; und
Fig. 4 ein Blockdiagramm, das eine mögliche Implementation
der Abhängig-Von-Fehlschlag- (DM-) Anzeigerlogik
zeigt, die Cache-Fehlschläge in jedem Adressenneu
ordnungspufferschlitz (ARBSLOT) von Fig. 3 ver
folgt.
Wie es in Fig. 1 gezeigt ist, sind das Fehlschlagverfol
gungssystem 100 (siehe Fig. 3 und 4 bezüglich mehr Details)
und das zugeordnete Verfahren der vorliegenden Erfindung in
einem Computer 11 und insbesondere in Verbindung mit einer
Speicherschlange (MQUEUE) in einem Befehls-Abruf/Ausfüh
rungs-System 12 eines Prozessors 14 und in Verbindung mit
einem Datencache (DCACHE) 24, der mit dem Prozessor 14 des
Computers 11 verbunden ist, implementiert. Der Computer 11
umfaßt im allgemeinen den Prozessor 14, einen Hauptspeicher
16 mit Software (S/W) 18 zum Treiben des Prozessors 14, den
DCACHE 24, der mit dem Prozessor 14 verbunden ist, wie es
durch einen Bezugspfeil 23 gezeigt ist, und eine System
schnittstelle, wie z. B. einen oder oder mehrere Busse, die
den Prozessor 14 und den Hauptspeicher 16 verbinden. Wenn
das Befehls-Abruf/Ausführungs-System 12 in dem Prozessor 14
die Software 18 ausführt, werden Daten, die in gegenwärtiger
Verwendung in dem Prozessor 14 sind, in den DCACHE 24 be
wegt, wodurch die Durchschnittszugriffszeit für die Spei
cheranforderungen des Prozessors reduziert wird und der Ver
kehr auf der Systemschnittstelle 22 minimiert wird. Schließ
lich sollte erwähnt werden, daß mit Ausnahme des neuartigen
Fehlschlagverfolgungssystems 100 alle vorher erwähnten Com
puterkomponenten und ihre Interaktionen in der Technik be
kannt sind.
Eine typische Cacheleitung in dem DCACHE 24 umfaßt eine Eti
kette, einen Zustandsanzeiger und Daten. Ein Cacheindex wird
zu dem DCACHE 24 gesendet und von dem DCACHE 24 verwendet,
um eine Speicherposition (Speicherpositionen) auszuwählen,
die die gewünschte Datenleitung enthält (enthalten). Als Re
aktion auf den Empfang eines Cacheindex gibt der DCACHE 24
eine Etikette, welche bei dem bevorzugten Ausführungsbei
spiel eine reelle Seitenzahl (RPN; RPN = Real Page Number)
ist, und zwar entsprechend der Position (den Positionen),
einen Zustandsanzeiger, welcher anzeigt, ob die Datenlei
tung, die der Etikette entspricht, gültig oder ungültig ist,
und Daten aus, welche gültig oder ungültig sein können. Ty
pischerweise zeigt der Zustandsanzeiger die folgende Zu
stände an: "ungültig", was bedeutet, daß keine Daten vor
handen sind; "ungültig gemeinsam", was bedeutet, daß Daten
vorhanden sind, daß sie jedoch anderswo positioniert sein
können; "gültig-privat-sauber", was bedeutet, daß die Lei
tung die einzige Kopie aufweist, und daß der DCACHE 24 noch
nicht auf die Leitung geschrieben hat; und "gültig-privat
schmutzig", was bedeutet, daß die Leitung die einzige Kopie
hat und daß der DCACHE 24 auf die Leitung geschrieben hat
(und somit die Leitung zu dem Hauptspeicher 16 kopieren
muß).
Eine Etikettenvergleichsvorrichtung 108 (Fig. 3), die dem
DCACHE 24 zugeordnet ist, empfängt den Zustandsanzeiger und
die Etikette. Wenn der Zustandsanzeiger ungültige Daten an
zeigt, dann sendet die Etikettenvergleichsvorrichtung eine
"Fehlschlag"-Anzeige zu dem Prozessor 14, wobei der Prozes
sor 14 in diesem Fall auf den Hauptspeicher 16 nach der Da
tenleitung zugreift. Wenn der Zustandsanzeiger gültige Daten
anzeigt, dann vergleicht die Etikettenvergleichsvorrichtung
die Etikette mit dem Rest der Adresse, um zu bestimmen, ob
der DCACHE 24 gegenwärtig die gewünschte Datenleitung spei
chert. Wenn der DCACHE 24 nicht die Datenleitung aufweist,
die angefordert wird, wie es durch den Etikettenvergleich
bestimmt wird, dann sendet die Etikettenvergleichsvorrich
tung eine "Fehlschlag"-Anzeige zu dem Prozessor 14, wobei
der Prozessor 14 in diesem Fall auf den Hauptspeicher 16
nach der Datenleitung zugreift. Wenn der DCACHE 24 die Da
tenleitung, die angefordert wird, aufweist, wie es durch den
Etikettenvergleich bestimmt ist, dann sendet die Etiketten
vergleichsvorrichtung eine "Treffer"-Anzeige zu dem Prozes
sor 14, welche den Prozessor 14 dazu bringt, die angeforder
te Datenleitung zu lesen.
Eine mögliche Implementation des Befehls-Abruf/Ausführungs-
Systems 12 ist mittels eines Blockdiagramms in Fig. 2 dar
gestellt. Wie es in Fig. 2 gezeigt ist, weist das Befehls-
Abruf/Ausführungs-System 12 einen Befehlscache (ICACHE;
ICACHE = instruction cache) 26 zum Speichern von Befehlen
von der Software 18 (Fig. 1) auf. Eine Befehlsabrufvorrich
tung (IFETCH; IFETCH = Instruction Fetch Mechanism) 28 kom
muniziert mit dem ICACHE 26 und gewinnt Befehle von dem
ICACHE 26 zur endgültigen Ausführung zurück. Bei dem bevor
zugten Ausführungsbeispiel ruft der IFETCH 28 vier Befehle
(jeder weist 32 Bit auf) zu einem Zeitpunkt ab und überträgt
die Befehle zu einer Sortiervorrichtung 32.
Die Sortiervorrichtung 32 bestimmt, ob jeder Befehl für eine
arithmetisch-logische Einheit (ALU) oder für den Speicher
bestimmt ist, und verteilt die Befehle demgemäß in eine
Schlange für die arithmetisch-logische Einheit (AQUEUE;
AQUEUE = Arithmetic Logic Unit Queue) 38a bzw. in die MQUEUE
38b, wie es durch entsprechende Bezugspfeile 36a, 36b ge
zeigt ist.
Die Schlange 38a für die arithmetisch-logische Einheit ent
hält ALU-Befehlsverarbeitungsvorrichtungen 39a (bei dem be
vorzugten Ausführungsbeispiel existieren 28 Stück), die Re
gister 41a zum Speichern von jeweiligen Befehlen aufweisen,
die zu einer arithmetisch-logischen Einheit 42 geleitet wer
den, wie es durch einen Bezugspfeil 43 gezeigt ist. Die Be
fehle in der Schlange 38a für die arithmetisch-logische Ein
heit werden in irgendeiner möglichen Reihenfolge (vorzugs
weise wie der Datenfluß) ausgeführt, und wenn sie vollendet
sind, werden die Ergebnisse erfaßt und als vollendet mar
kiert.
Die ALU 42 kann unter der Steuerung der Schlange 38a Operan
den von Neubenennungsregistern 44a, 44b und von allgemeinen
Registern 46 wiedergewinnen, wie es durch eine Schnittstelle
45 gezeigt ist.
Nachdem die ALU 42 auf die Operanden gewirkt hat, werden die
Ergebnisse der Operation in den AQUEUE-Neubenennungsregi
stern 44a gespeichert, wie es durch einen Bezugspfeil 49
skizziert ist.
Die Speicherschlange 38b enthält Befehlsverarbeitungsvor
richtungen 39b. Jede Befehlsverarbeitungsvorrichtung 39b um
faßt ein Register 41b zum Speichern eines jeweiligen Spei
cherbefehls, und dieselbe umfaßt einen Adressenneuordnungs
pufferschlitz (ARBSLOT, bei dem bevorzugten Ausführungsbei
spiel existieren 28 Stück), welcher durch das Bezugszeichen
48 bezeichnet ist, zum Speichern einer jeweiligen Adresse.
Speicherbefehle in der Speicherschlange 38b können als "La
dungen" und von "Speicherungen" zu dem Speicher klassifi
ziert werden. Eine "Ladung" ist eine Anforderung, um Daten
von dem Speicher (von dem Cache oder von dem Hauptspeicher)
zu einem Register zu übertragen, wohingegen eine "Speiche
rung" eine Anforderung ist, um Daten von einem Register zu
dem Speicher zu übertragen.
Während der Ausführung eines Befehls betrifft eine erste
Phase das Ausführen einer vorbestimmten mathematischen Ope
ration auf Operanden, um eine Adresse zu berechnen, während
eine zweite Phase das Zugreifen auf den Speicher/Cache nach
Daten basierend auf der berechneten Adresse betrifft. Die
MQUEUE 38b führt jeden der Befehle und die beiden Phasen
(Adressenberechnung und Speicher/Cache-Zugriff) der Ausfüh
rung in irgendeiner möglichen Reihenfolge (vorzugsweise wie
der Datenfluß) aus. Sobald die Befehle vollendet sind, wer
den die Ergebnisse von den MQUEUE-Neubenennungsregistern 44b
erfaßt, wobei der Befehl als vollendet in der MQUEUE 38b
markiert wird. Bei dem bevorzugten Ausführungsbeispiel em
pfängt die MQUEUE 38b bis zu vier Befehle (jeder weist 32
Bit auf) pro Zyklus von der Sortiervorrichtung 32 und über
trägt bis zu zwei Befehle (32 Bit) pro Zyklus zu einer Zu
rückziehvorrichtung (52), wie es durch einen Bezugspfeil 51b
gezeigt ist.
Insbesondere wird während der ersten Phase der Befehlsaus
führung eine Adresse von einer Adressenberechnungseinrich
tung 58 erzeugt. Die Adressenberechnungseinrichtung 58 be
rechnet die Adresse basierend auf Operanden, die von den
Neubenennungsregistern 44b wiedergewonnen wurden, und leitet
die Adresse (reell oder virtuell) zu einem ARBSLOT 48, der
dem Befehl in der Speicherschlange 38b entspricht, wie es
durch einen Bezugspfeil 62 gezeigt ist. Die Steuerung der
Berechnung durch den Befehl ist durch den Bezugspfeil 64 in
Fig. 2 gezeigt. Wenn die zweite Phase der Speicherbefehls
ausführung weitergeführt wird, wird die berechnete Adresse
(einschließlich eines Cacheindex) zu dem DCACHE 24 übertra
gen, wie es durch den Bezugspfeil 54 gezeigt ist, um eine
Ladung von oder eine Speicherung zu dem DCACHE 24 zu errei
chen. Bei dem bevorzugten Ausführungsbeispiel werden in je
dem Zyklus zwei Adressen wenn möglich von der Speicher
schlange 38b zu dem DCACHE 24 übertragen. Um dieses Mehr
fachadreßmerkmal zu erreichen, kann der DCACHE 24 bei
spielsweise mit zwei Toren implementiert sein. Alternativ
werden als weiteres Beispiel und wie es bei dem bevorzugten
Ausführungsbeispiel implementiert ist, ungerade und gerade
Adressen gleichzeitig zu jeweiligen ungeraden und geraden
Cachebänken in einem Einzeltor-Direktzugriffsspeicher (RAM)
gesendet. Die Details des letzteren Entwurfs sind in der
ebenfalls anhängigen Anmeldung mit dem Titel "Adressenaggre
gationssystem und -Verfahren zum Erhöhen des Adressendurch
satzes von einem zu Prozessor zu einem Datencache" darge
legt, die am gleichen Tage wie die vorliegende Anmeldung
eingereicht worden ist. Sobald der DCACHE 24 die Adressen
und Treffer verarbeitet, werden die Datenergebnisse zu den
Neubenennungsregistern 44b übertragen, wie es durch einen
Bezugspfeil 56 gezeigt ist.
Die Zurückziehvorrichtung 52 empfängt ausgeführte Befehle
(vorzugsweise zwei 32-Bit-Worte pro Zyklus) von jeder der
Schlangen 38a, 38b, wie es durch entsprechende Bezugspfeile
51a, 51b gezeigt ist. Die Zurückziehvorrichtung 52 übergibt
die Befehlsergebnisse in den Architekturzustand. Die Soft
ware 18 (Fig. 1) wird nicht von irgendwelchen Ergebnissen
unterrichtet, die nicht durch die Zurückziehvorrichtung 52
in den Architekturzustand transformiert worden sind. Die Zu
rückziehvorrichtung 52 zieht die Befehle in den Schlangen
38a, 38b in der Programmreihenfolge, die durch die Software
18 definiert ist, zurück, indem die Befehlsresultate zu
einem allgemeinen Register 46 und/oder einem Steuerregister
72 bewegt werden, wie es durch jeweilige Bezugspfeile 73, 74
gezeigt ist, und zwar abhängig von den Attributen des Be
fehls. Dieselbe bewirkt ferner, daß die Ergebnisse des Be
fehls von den Neubenennungsregistern 44a, 44b zu den allge
meinen Registern 76 geleitet werden, wie es durch die Be
zugspfeile 76a, 76b gezeigt ist.
Wenn die Zurückziehvorrichtung 52 einen Befehl, der in einer
Speicherung zu einer Datenleitung in dem DCACHE 24 resul
tierte, zurückzieht, dann markiert die Zurückziehvorrichtung
52 den Zustandsanzeiger, der der Leitung entspricht, als
"schmutzig", um anzuzeigen, daß sich die Leitung verändert
hat, und daß sie schließlich zu dem Hauptspeicher 16 zum Ak
tualisieren der Leitung in dem Hauptspeicher 16 gesendet
werden sollte.
Die Zurückziehvorrichtung 52 weist ebenfalls eine Logik zum
Bestimmen auf, ob eine Ausnahme vorhanden ist, die einem Be
fehl zugeordnet ist. Eine Ausnahme ist eine Flag, die einen
speziellen Umstand anzeigt, der einem oder den gegenwärtig
zurückgezogenen Befehlen entspricht. Im Falle einer Ausnahme
verdeckt die Zurückziehvorrichtung 52 alle Befehle in den
Schlangen 38a, 38b, die dem Befehl vorausgehen, der die Aus
nahme anzeigte, und dieselbe bewirkt, daß die IFETCH 28 noch
einmal die zur Debatte stehenden Befehle für eine Neuausfüh
rung zurückgewinnt, oder daß dieselbe eine spezielle Soft
ware wiedergewinnt, um den speziellen Umstand handzuhaben.
Gemäß einem Merkmal des Systems und Verfahrens zum Verfolgen
von Fehlschlägen der vorliegenden Erfindung werden zusätz
liche Cachezustände zu den typischen vorher beschriebenen
Zuständen hinzugefügt. Speziell werden ein "Fehlschlag-
Schwebend"-Zustand und ein "Cache-Leitung-Halb-Gültig"-Zu
stand hinzugefügt. Die vorhergehenden Zustände werden hinzu
gefügt, um eine Verarbeitung außerhalb der Reihenfolge von
Befehlen und um mehrfache gleichzeitige Zugriffe auf den
DCACHE 24 zu ermöglichen. Bei dem bevorzugten Ausführungs
beispiel ist der Zustandsanzeiger 82 mit drei Bits implemen
tiert, wobei die Codierung derart ausgeführt ist, wie es in
der nachfolgenden Tabelle A gezeigt ist.
Wie es nachfolgend detaillierter beschrieben ist, zeigt der
"Fehlschlag-Schwebend"-Zustand an, daß die entsprechende Da
tenleitung gegenwärtig nicht in dem DCACHE 24 ist, und daß
sie gegenwärtig von dem Hauptspeicher 16 (Fig. 1) gesucht
wird. Ferner zeigt der "Cacheleitung-Halb-Gültig"-Zustand
an, daß nur die Hälfte einer Datenleitung von dem Hauptspei
cher 16 zu dem DCACHE 24 übertragen worden ist. Wenn ein Da
tenlesezugriff oder eine Ladung zu dem DCACHE 24 vorhanden
ist und der Zustandsanzeiger 82 "Cacheleitung-Halb-Gültig"
anzeigt, dann bestimmt der anfordernde Befehl, ob die ange
forderten Daten in der ersten Hälfte oder in der zweiten
Hälfte der Leitung sind. Wenn dieselben in der ersten Hälfte
sind, dann kann der anfordernde Befehl ausgeführt werden und
sich selbst als vollendet markieren. Wenn dieselben in der
zweiten Hälfte sind, dann versucht es dagegen der anfordern
de Befehl noch einmal. Das vorher erwähnte Merkmal steigert
die Leistung des Systems.
Das Fehlschlagverfolgungssystem 100 der vorliegenden Erfin
dung wird nachfolgend bezugnehmend auf Fig. 3 und Fig. 4 be
schrieben. Bezugnehmend auf Fig. 3 umfaßt das Fehlschlagver
folgungssystem 100 die Systemschnittstellensteuerung 102,
die Mehrzahl von Speicherbefehlsverarbeitungsvorrichtungen
39b (wobei jede einen ARBSLOT 48 aufweist), den DCACHE 24,
eine Fehlschlagentscheidungseinrichtung 107, eine Etiketten
vergleichsvorrichtung 108 und die Adressenberechnungsein
richtung 58.
Die Systemschnittstellensteuerung 102 steuert Zugriffe zu/
von der Systemschnittstelle 22 und insbesondere Anforderun
gen nach Datenleitungen zu dem Hauptspeicher 16 nach Daten,
und dieselbe überträgt Datenleitungen 105 und Steuersignale
106 zu dem DCACHE 24, wenn Datenleitungen von dem Hauptspei
cher 16 gesendet werden. Die Systemschnittstellensteuerung
102 empfängt von einem ARBSLOT 48 ein Fehlschlag-Steuersi
gnal MISS_CAV 101 und ein Signal MISS/COPY_IN ADDR 104 zum
Anfordern von Daten von dem Hauptspeicher 16 (Fig. 1). Die
Systemschnittstellensteuerung 102 erzeugt und kommuniziert
wiederum geeignete Datenanforderungssignale zu dem Haupt
speicher 16. Wenn die Systemschnittstellensteuerung 102 die
Datenleitung von dem Hauptspeicher 16 empfängt, dann teilt
die Systemschnittstellensteuerung 102 die Datenleitung 105
dem DCACHE 24 mit und gibt sowohl ein Steuersignal COPY_IN
(COPY_IN = kopiere ein) 103 und einen Zustandsanzeiger "1xx"
zu dem DCACHE 24 heraus, wie es durch einen Bezugspfeil 106
gezeigt ist. Ferner sendet die Systemschnittstellensteuerung
102 die Adresse MISS/COPY_IN ADDR 104, die der Leitung ent
spricht, und ein Steuersignal COPY_IN 103 zu den ARBSLOTs
48, derart, daß die ARBSLOTs 48 dazu gebracht werden, auf
den DCACHE 24 nach der Datenleitung zuzugreifen.
Jede Speicherbefehlsverarbeitungsvorrichtung 39b, von denen
aus Einfachheitsgründen in Fig. 3 nur eine gezeigt ist, um
faßt einen ARBSLOT 48, der mit dem DCACHE 24, mit der Sy
stemschnittstellensteuerung 102 und mit der Etikettenver
gleichsvorrichtung 108 verbunden ist. Wie es nachfolgend
detaillierter beschrieben ist, hält der ARBSLOT 48 einen
internen Abhängig-Von-Fehlschlag- (DM-) Anzeiger 135 (Fig.
4) zum Anzeigen, ob ein Befehl, der seinem jeweiligen
ARBSLOT 48 zugeordnet ist, von einer Fehlschlagdatenleitung
abhängt, die bereits angefordert worden ist, und die von dem
DCACHE 24 abwesend ist. Ferner umfaßt der ARBSLOT 48 eine
Logik, um zu verhindern, daß eine Anforderung zu dem Haupt
speicher 16 von dem ARBSLOT 48 nach der Fehlschlagdatenlei
tung durchgeführt wird, wenn ein anderer ARBSLOT 48 bereits
die Fehlschlagdatenleitung von dem Hauptspeicher 16 angefor
dert hatte.
Bezugnehmend auf Fig. 3 kann der ARBSLOT 48 das Fehlschlag
steuersignal MISS_CAV 101 ausgeben und das Signal von einem
anderen ARBSLOT 48 empfangen. Der ARBSLOT 48 kann ebenfalls
die Adresse MISS/COPY_IN ADDR von der Systemschnittstellen
steuerung 102 oder von einem anderen ARBSLOT 48 empfangen.
Schließlich kann der ABSLOT 48 das Steuersignal COPY_IN 103
von der Systemschnittstellensteuerung 102 empfangen, um den
ARBSLOT 48 anzuweisen, eine Adresse, die von der System
schnittstellensteuerung 102 gesendet worden ist, zu kopie
ren.
Eine Fehlschlagentscheidungseinrichtung 107 ist mit jedem
ARBSLOT 48 verbunden, wie es in Fig. 3 gezeigt ist. Die
Fehlschlagentscheidungseinrichtung 107 entscheidet einen
Zugriff auf die Systemschnittstelle 22 unter der Mehrzahl
von ARBSLOTs 48, falls ein Cachefehlschlag auftritt. Wenn es
in einem ARBSLOT 48 bestimmt wird, daß ein Cache-Fehlschlag
vorhanden ist, dann erzeugt der ARBSLOT 48 ein Fehlschlag-
Anforderungssignal MISS_REQ (MISS_REQ = Miss Request), das
durch das Bezugszeichen 111 bezeichnet ist, und überträgt
das Fehlschlaganforderungssignal MISS_REQ 101 zu der Fehl
schlag-Entscheidungseinrichtung 107. Die Fehlschlag-Ent
scheidungseinrichtung 107 verteilt Prioritäten für Fehl
schlaganforderungen von den verschiedenen ARBSLOTs 48 und
wählt dieselben aus. Wenn die Fehlschlag-Entscheidungs
einrichtung 107 eine Fehlschlaganforderung erteilt, gibt
dieselbe ein Erteilungssignal MISS_GRANT 112 (MISS_GRANT =
Fehlschlagerteilung) zu dem ausgewählten ARBSLOT 48 aus, was
bewirkt, daß der ARBSLOT 48 das Fehlschlagsteuersignal
MISS_CAV 101 ausgibt und ebenfalls eine Adresse MISS/COPY_IN
ADDR 104 zu der Systemschnittstellensteuerung 102 ausgibt.
Der ARBSLOT 48, der eine Adresse ACCESS_ADDR 114 (ACCESS_
ADDR = Zugriffsadresse) und ein Zugriffs-Anforderungssignal
ACCESS_REQ (ACCESS_REQ = Access Request = Zugriffsanforde
rung) 115 zu dem DCACHE 24, um Daten 56 von demselben zu
rückzugewinnen. Beim Empfangen der Adresse ACCESS_ADDR 114
(welche einen Cacheindex aufweist) und des Signals ACCESS_
REQ 115 erzeugt der DCACHE 24 eine DCACHE-Etikette 81 und
einen Zustandsanzeiger 82, welche beide zu der Etikettenver
gleichsvorrichtung 108 gesendet werden.
Zusätzlich zum Empfangen der Etikette 81 und zum Empfangen
des Zustandsanzeigers 82 empfängt die Etikettenvergleichs
vorrichtung 108 eine Zugriffsetikette ACCESS_TAG 116 von dem
ARBSLOT 48, welche der Adresse ACCESS_ADDR 114 entspricht.
Die Etikettenvergleichsvorrichtung 108 untersucht den Sta-
Zustandsanzeiger 82 und decodiert denselben gemäß der Tabel
le A, die vorher dargelegt wurde. Wenn der Zustandsanzeiger
82 anzeigt, daß die DCACHE-Etikette 81 gültig ist, d. h. wenn
der Zustandsanzeiger 82 "1xx" ist, dann vergleicht die Eti
kettenvergleichsvorrichtung 108 ebenfalls die DCACHE-Etiket
te 81 mit der Etikette ACCESS_TAG 116, um zu bestimmen, ob
ein Treffer oder ein Fehlschlag vorhanden ist. Die Fehl
schlagvergleichsvorrichtung 108 aktiviert oder deaktiviert
ein Signal ∼HIT 118 (HIT = Treffer), um anzuzeigen, ob ein
Fehlschlag bzw. ein Treffer vorhanden ist, wobei dieselbe
dieses Signal zu dem ARBSLOT 48 leitet.
Die Etikettenvergleichsvorrichtung 108 aktiviert ein Signal
HIT_DM, wenn der Zustandsanzeiger 82 anzeigt, daß ein "Fehl
schlag schwebend" ist, d. h. wenn der Zustandsanzeiger 82
"010" anzeigt, und zwar bezüglich der Cacheleitung, die
nachher gesucht wird. Wenn das Signal HIT_DM 21 aktiviert
ist, setzt der ARBSLOT 48 einen DM-Latch, um eine DM-Variab
le in dem ARBSLOT 48 zu aktivieren. Wenn die DM-Variable in
dem ARBSLOT 48 aktiviert ist, dann wird der ARBSLOT 48 davon
absehen, eine Datenanforderung auf den Hauptspeicher 16
(Fig. 1) nach der Fehlschlagdatenleitung einzuleiten.
Die Adressenberechnungseinrichtung 58 umfaßt einen Addierer
124 zum Empfangen und Operieren auf Operanden 126 von den
Neubenennungsregistern 44a, 44b und/oder den allgemeinen
Registern 46 (wie es in Fig. 2 gezeigt ist). Der Addierer
124 erzeugt eine virtuelle Adresse, welche zu dem ARBSLOT 48
und zu einem Übersetzungsquerzuordnungspuffer (TLB; TLB =
Translation Lookaside Buffer) 132 geleitet wird. Der TLB 132
erzeugt eine Reelladressenetikette 134 basierend auf der
virtuellen Adresse 128 und leitet die Reelladressenetikette
134 zu dem ARBSLOT 48. Die Etikette 134 wird letztendlich zu
der Etikettenvergleichsvorrichtung 108 als die Etikette
ACCESS_TAG 116 geleitet.
Die Abhängig-Von-Fehlschlag- (DM-) Anzeigerlogik 133, welche
in jedem ARBSLOT 48 positioniert ist, ist in Fig. 4 detail
liert gezeigt. Im allgemeinen ist die DM-Anzeigerlogik 133
konfiguriert, um einen Abhängig-Von-Fehlschlag- (DM-) Anzei
ger 135, welcher beispielsweise ein Latch oder ein anderes
geeignetes Gerät sein kann, zu halten, um ein Signal DM 141
zu aktivieren oder zu deaktivieren, welches jeweils anzeigt,
ob der ARBSLOT 48 von einer Fehlschlagdatenleitung abhängt
oder nicht. Wenn der ARBSLOT 48 von einer Fehlschlagdaten
leitung abhängt, dann wird der ARBSLOT 48 davon absehen, die
Datenleitung von dem Hauptspeicher 16 anzufordern. Sobald
die Fehlschlagdatenleitung von dem Hauptspeicher 16 zu dem
ARBSLOT 48, der dieselbe abrief, übertragen worden ist, wird
ferner das Signal DM 141 in jedem ARBSLOT 48, das die Fehl
schlagdatenleitung abrief, von dem DM-Anzeiger 135 deakti
viert, wonach die zur Debatte stehenden ARBSLOTs 48 die Er
laubnis erhalten, die gewünschte Fehlschlagdatenleitung von
dem DCACHE 24 wiederzugewinnen.
Bezugnehmend auf Fig. 4 umfaßt die DM-Anzeigerlogik 133 (a)
ein Register 136 zum Speichern eines Nicht-Treffer-Anzeigers
(∼HIT) 136a, der durch das Signal ∼HIT 116 von der Etiket
tenvergleichsvorrichtung 106 eingestellt wird, (b) einen
Cacheindex 136b, welcher von der Adresse ADDR 128 von der
Adressenberechnungseinrichtung 48 (Fig. 3) heraus analysiert
wird, und (c) eine Reelladressenetikette 136c von dem TLB
132 (Fig. 3) der Adressenberechnungseinrichtung 58.
Der ∼HIT-Anzeiger 136a wird zu einem UND-Logikgatter 137
geleitet, wie es durch einen Bezugspfeil 139 gezeigt ist.
Das UND-Logikgatter 137 empfängt ferner das Signal ∼DM 142,
welches durch Invertieren des Signals DM 141 von dem DM-An
zeiger 135 von dem Invertierer 143 erzeugt wird, ein Signal
∼CP 131, um anzuzeigen, ob auf den DCACHE 24 von dem Befehl
in dem ARBSLOT 48 bereits zugegriffen worden ist oder nicht,
und ein Signal CA_VALID 138, um anzuzeigen, ob eine gültige
Adresse 104 vorhanden ist oder nicht. Basierend auf den ge
rade beschriebenen Signalen erzeugt das UND-Logikgatter 137
das Fehlschlag-Anforderungssignal MISS_REQUEST 111 für die
Fehlschlag-Entscheidungseinrichtung 107 (Fig. 3). Wenn das
Signal ∼HIT 139 einen Fehlschlag anzeigt, wenn das Signal
∼DM anzeigt, daß der ARBSLOT 48 nicht von einem Fehlschlag
abhängt, wenn das Signal ∼CP 131 nicht Cache-Schwebend an
zeigt, und wenn das Signal CA_VALID 138 eine gültige Adresse
104 anzeigt, dann wird das Signal MISS_REQUEST 111 von dem
UND-Logikgatter 137 aktiviert. Die Aktivierung des Signals
MISS_REQUEST 111 wird schließlich bewirken, daß eine Anfor
derung zu dem Hauptspeicher 16 (Fig. 1) nach einer fehlge
schlagenen Cacheleitung plaziert wird. Wenn ferner der
∼HIT-Anzeiger 136a einen Treffer anzeigt und/oder wenn das
Signal ∼DM 142 anzeigt, daß der ARBSLOT 48 von einem Fehl
schlag abhängt, dann wird das UND-Logikgatter 137 davon ab
sehen, das Fehlschlaganforderungssignal MISS_REQUEST 111 zu
aktivieren.
Eine Vergleichsvorrichtung 155 empfängt einen Cacheindex von
der Adresse MISS/COPY_IN ADDR, wie es durch einen Bezugs
pfeil 146 gezeigt ist, und vergleicht dieselbe mit dem
Cacheindex von dem Register 136, wie es durch einen Bezugs
pfeil 147 gezeigt ist. Die Ergebnisse der Vergleichsvorrich
tung 145 werden zu einem UND-Gatter 148 geleitet, wie es
durch einen Bezugspfeil 149 gezeigt ist. Das Vergleichs
signal 149 kann bewirken, daß der DM-Anzeiger 135 das Signal
DM 141 basierend auf dem Vergleich aktiviert, vorausgesetzt,
daß das Fehlschlagsteuersignal MISS_CAV aktiviert ist.
In dieser Hinsicht empfängt ein UND-Logikgatter 148 das Ver
gleichssignal 149 und das Fehlschlagsteuersignal MISS_CAV,
welches anzeigt, ob eine Fehlschlaganforderung auf den
Hauptspeicher 16 durchgeführt wird oder nicht. Das UND-Lo
gikgatter 148 betätigt einen Transistor 152 basierend auf
den Zuständen des Vergleichssignals 149 und dem Fehlschlag
steuersignal MISS_CAV 101. Wenn das Betätigungssignal 153
aktiviert ist, bewirkt der Transistor 152 eine Aktivierung
des Signals DM 141 in dem DM-Anzeiger 135.
Das Signal DM 141 kann ebenfalls durch den DM-Anzeiger 135
unter der Steuerung eines Transistors 154 aktiviert werden.
Der Transistor 154 empfängt das Signal HIT_DM 121 von der
Etikettenvergleichsvorrichtung 108, wenn ein Fehlschlag auf
tritt. Ferner ist das System zeitlich derart gesteuert, daß
das Signal HIT_DM 121 nach zwei Taktzyklen empfangen werden
sollte, nachdem ein Zugriff auf den DCACHE 24 erteilt worden
ist, d. h. nachdem das Signal ACCESS_REQ 115 ausgegeben wor
den war. In dieser Hinsicht wird der Transistor 154 durch
ein Signal ACCESS_+_2, das durch ein Bezugszeichen 158 be
zeichnet ist, zwei Zyklen nach dem Signal ACCESS_REQ 115
(Fig. 3) freigegeben. Wenn das Signal HIT_DM 121 zwei Zyklen
nach diesem Signal empfangen wird, dann wird der Transistor
154 den DM-Anzeiger 135 einstellen, um das Signal DM 141 zu
aktivieren, wie es durch eine Leitung 156 gezeigt ist.
Ein UND-Logikgatter 162 empfängt das Steuersignal COPY_IN
103 von der Systemschnittstellensteuerung 102 (Fig. 3) und
das Vergleichssignal 49 von der Vergleichsvorrichtung 145.
Basierend auf diesen Signalen erzeugt das UND-Logikgatter
162 ein Betätigungssignal 164, welches einen Transistor 166
betätigt. Der Transistor 166 bewirkt, wenn er betätigt ist,
eine Deaktivierung des Signals DM 141 von dem DM-Anzeiger
135, wie es durch eine Verbindung 168 gezeigt ist. Im allge
meinen ist das Signal DM 141 deaktiviert, wenn eine Daten
leitung, die darin resultierte, daß das Signal DM 141 akti
viert wird, von dem Hauptspeicher 16 gesendet wird.
Das Erteilungssignal MISS_GRANTED (MISS_GRANTED = Fehl
schlag-Erteilt) von der Fehlschlagentscheidungseinrichtung
107 (Fig. 3) wird zu einem Treiber 172 geleitet, welcher das
Fehlschlagsteuersignal MISS_CAV treibt. Wenn das Fehlschlag
steuersignal MISS_CAV ausgegeben ist, werden alle ARBSLOTs
48 aktiviert, um ihre jeweiligen Cacheindizies 136b mit dem
Cacheindex zu vergleichen, der auf der Adresse MISS/COPY_IN
ADDR 104 vorhanden ist, um zu bestimmen, ob ihre jeweiligen
Signale DM 141 durch ihre entsprechenden DM-Anzeiger 135 ak
tiviert werden sollten.
Der Betrieb des Fehlschlagverfolgungssystems 100 wird nach
folgend bezugnehmend auf die Fig. 3 und 4 beschrieben.
Bezugnehmend zuerst auf Fig. 3 aktiviert der ARBSLOT 48 ein
Signal ACCESS_REQ 115, das von einer Adresse ACCESS_ADDR 114
(welche einen Cacheindex aufweist) begleitet wird, wenn ein
ARBSLOT 48 eine Cacheleitung von dem DCACHE 24 anfordert. In
dem Fall, daß ein potentieller Treffer in dem DCACHE 24 vor
handen ist, wird der Zustandsanzeiger 82 eine gültige Daten
leitung durch eine Codierung "1xx" (siehe Tabelle A) wieder
geben. Ferner liest die Etikettenvergleichsvorrichtung 108
die Etikette DCACHE_TAG 81 und vergleicht dieselbe mit der
Etikette ACCESS_TAG 116, die der Zugriffsadresse ACCESS_ADDR
114 zugeordnet ist. Wenn eine Übereinstimmung vorhanden ist,
schließt die Etikettenvergleichsvorrichtung 108 daraus, daß
ein Treffer vorhanden ist, und dieselbe deaktiviert das Sig
nal ∼HIT 118, um einen Treffer anzuzeigen, was bewirkt, daß
der ARBSLOT 48 sich als durchgeführt aktiviert. Das Ergebnis
der Operation wird in dem Neubenennungsregister gehalten,
bis der Befehl zurückgezogen wird, wenn dasselbe zu dem Ar
chitekturregister 46 bewegt wird.
Wenn die Cachezugriffsfehlschläge auf einem Zustandsanzeiger
82 mit einer Codierung von "0xx" basiert, oder alternativ,
wenn die Etikette DCACHE_TAG 81 nicht mit der Etikette
ACCESS_TAG 116 übereinstimmt, dann aktiviert die Etiketten
vergleichsvorrichtung 108 das Signal ∼HIT 118, um dem
ARBSLOT 48 einen Fehlschlag anzuzeigen. Unter der Annahme,
daß dies der erste ARBSLOT 48 ist, der versucht, auf diese
Fehlschlagdatenleitung zuzugreifen, wird das Signal ∼DM 142
aktiviert, wobei in diesem Fall das UND-Logikgatter 137 das
Fehlschlaganforderungssignal MISS_REQUEST 111 zu der Fehl
schlag-Entscheidungseinrichtung 107 ausgeben wird. Die Fehl
schlag-Entscheidungseinrichtung 107 entscheidet durch prio
ritätsmäßige Anordnung der verschiedenen Fehlschlaganforde
rungen, die von den verschiedenen ARBSLOTs 48 erzeugt werden
können. Schließlich gibt die Fehlschlag-Entscheidungsein
richtung 107 ein Signal MISS_GRANTED 112 aus, um die Fehl
schlaganforderung zu erteilen. Dieses Signal wird zu dem
Treiber 172 in dem ARBSLOT 48 gesendet, welcher wiederum das
Fehlschlagsteuersignal MISS_CAV 101 zu der Systemschnitt
stellensteuerung 102 aktiviert. Die Systemschnittstellen
steuerung 102 führt wiederum eine Speicheranforderung zu dem
Hauptspeicher 16 (Fig. 1) nach der Datenleitung basierend
auf der Adresse MISS/COPY_IN ADDR 104 durch, die von dem
ARBSLOT 48 zu der Systemschnittstellensteuerung 102 gesendet
wird.
Sobald die Datenleitung von dem Hauptspeicher 16 zu der Sy
stemschnittstellensteuerung 102 übertragen wird, leitet die
Systemschnittstellensteuerung 102 die Datenleitung zu dem
DCACHE 24, wie es durch einen Bezugspfeil 105 gezeigt ist,
aktiviert das Steuersignal COPY_IN zu dem DCACHE 24 und gibt
die Zustandsbits "1xx" zu dem DCACHE 24 aus. Gleichzeitig
aktiviert die Systemschnittstellensteuerung 102 das Steuer
signal COPY_IN 103 zu den ARBSLOTs 48 und plaziert die zu
geordnete Adresse auf dem Signal MISS/COPY_IN ADDR 104 zu
den ARBSLOTs 48. Jeder ARBSLOT 48, der die Datenleitung be
nötigt, wird ein entsprechendes aktiviertes Signal DM 141
haben, welches basierend auf der Logik 162, 166 deaktiviert
wird. In dieser Hinsicht empfängt das UND-Logikgatter 162
ein aktiviertes Signal 149 von der Vergleichsvorrichtung 145
und ein aktiviertes Signal COPY_IN. Basierend auf diesem Si
gnal betätigt das UND-Logikgatter 162 den Transistor 166,
welcher wiederum das Signal DM 141 deaktiviert, das von dem
DM-Anzeiger 135 erhalten wird.
Wenn ein anderer ARBSLOT 148 versucht, auf den DCACHE 24
nach einer Fehlschlagdatenleitung zuzugreifen, die gegenwär
tig von dem Hauptspeicher 16 angefordert wird, dann wird der
spezielle ARBSLOT 48 durch den Zustandsanzeiger 82 angewie
sen, da der Zustandsanzeiger 82 mit der Codierung von "010"
einen Fehlschlag-Schwebend-Zustand anzeigen wird, oder daß
die Cacheleitung von einem anderen ARBSLOT 48 abgerufen
wird. In diesem Fall aktiviert der spezielle ARBSLOT 48 sein
eigenes Signal DM 141 mit seinem DM-Anzeiger 135 durch Akti
vieren des Signals HIT_DM 121 von seiner Etikettenver
gleichsvorrichtung 108. Wie es in Fig. 4 gezeigt ist, be
wirkt eine Aktivierung des Signals HIT_DM 121, daß der
DM-Anzeiger 135 das Signal DM 141 aktiviert, welches den
ARBSLOT 48 daran hindert, eine Anforderung auf den Haupt
speicher 16 durchzuführen, da das UND-Logikgatter 137 ein
deaktiviertes Signal ∼DM 142 empfängt.
Viele Variationen und Modifikationen können bei dem bevor
zugten Ausführungsbeispiel der Erfindung, wie es gerade be
schrieben worden ist, durchgeführt werden. Die Schlangen
38a, 38b könnten beispielsweise durch irgendeine Befehlsneu
ordnungsvorrichtung einschließlich einer Reservierungssta
tion, welche in der Technik bekannt ist, ersetzt werden.
Claims (10)
1. System (11) zum Erhalten von Bandbreite zu einem Haupt
speicher (16), der einem Verarbeitungssystem (14) zuge
ordnet ist, das einen Datencache verwendet, und das Be
fehle außerhalb der Reihenfolge ausführt, wobei das Sy
stem (11) folgende Merkmale aufweist:
einen Prozessor (14);
einen Hauptspeicher (16);
einen Datencache (24), der in Kommunikation mit dem Prozessor (14) ist, wobei der Datencache (24) zum Em pfangen und Speichern von Datenleitungen von dem Haupt speicher (16) vorhanden ist;
eine Systemschnittstelle (22), die den Prozessor (14) und den Hauptspeicher (16) miteinander verbindet;
eine Mehrzahl von Befehlsverarbeitungsvorrichtungen (39b), die dem Prozessor (14) zugeordnet und konfigu riert sind, um jeweilige Befehle außerhalb der Reihen folge zum empfangen und auszuführen, und um auf den Da tencache (24) gemäß den Befehlen zuzugreifen; und
eine Logik (100), die jeder der Befehlsverarbeitungs vorrichtungen (39b) zugeordnet ist, wobei die Logik (100) konfiguriert ist, um eine Anforderung von ihrer jeweiligen Befehlsverarbeitungsvorrichtung (39b) zu dem Hauptspeicher (16) nach Cachefehlschlagdaten zu verhin dern, wenn eine andere Befehlsverarbeitungsvorrichtung (39b) bereits die Fehlschlagdaten, die von dem Daten cache (24) abwesend sind, von dem Hauptspeicher (16) angefordert hat.
einen Prozessor (14);
einen Hauptspeicher (16);
einen Datencache (24), der in Kommunikation mit dem Prozessor (14) ist, wobei der Datencache (24) zum Em pfangen und Speichern von Datenleitungen von dem Haupt speicher (16) vorhanden ist;
eine Systemschnittstelle (22), die den Prozessor (14) und den Hauptspeicher (16) miteinander verbindet;
eine Mehrzahl von Befehlsverarbeitungsvorrichtungen (39b), die dem Prozessor (14) zugeordnet und konfigu riert sind, um jeweilige Befehle außerhalb der Reihen folge zum empfangen und auszuführen, und um auf den Da tencache (24) gemäß den Befehlen zuzugreifen; und
eine Logik (100), die jeder der Befehlsverarbeitungs vorrichtungen (39b) zugeordnet ist, wobei die Logik (100) konfiguriert ist, um eine Anforderung von ihrer jeweiligen Befehlsverarbeitungsvorrichtung (39b) zu dem Hauptspeicher (16) nach Cachefehlschlagdaten zu verhin dern, wenn eine andere Befehlsverarbeitungsvorrichtung (39b) bereits die Fehlschlagdaten, die von dem Daten cache (24) abwesend sind, von dem Hauptspeicher (16) angefordert hat.
2. System (11) gemäß Anspruch 1, bei dem die Logik (100)
ferner einen Abhängig-Von-Fehlschlag-Anzeiger (135)
aufweist, der jeder der Befehlsverarbeitungsvorrichtun
gen (39b) zugeordnet ist und mit der Logik (100) ver
bunden ist, wobei der Abhängig-Von-Fehlschlag-Anzeiger
(135) konfiguriert ist, um ein Abhängig-Von-Fehl
schlag-Signal (141) zum Anzeigen, ob ein Befehl, der
seiner jeweiligen Befehlsverarbeitungsvorrichtung (39b)
zugeordnet ist, von den Fehlschlagdaten abhängt.
3. System (11) gemäß Anspruch 1 oder 2,
welches ferner einen Zustandsanzeiger (82) aufweist,
der jeder Cachedatenleitung zugeordnet ist, die von dem
Cache gehalten wird, wobei der Zustandsanzeiger (82)
konfiguriert ist, um anzuzeigen, wenn eine entsprechen
de Datenleitung sowohl ungültig ist als auch wenn die
selbe bereits von dem Hauptspeicher (16) angefordert
worden ist.
4. System (11) gemäß einem der vorhergehenden Ansprüche,
das ferner eine Fehlschlagentscheidungseinrichtung
(107) aufweist, die mit der Mehrzahl von Befehlsverar
beitungsvorrichtungen (39b) verbunden ist, wobei die
Fehlschlagentscheidungseinrichtung (107) zum priori
tätsmäßigen Ordnen von Anforderungen von den Befehls
verarbeitungsvorrichtungen (39b) nach jeweiligen Daten
leitungen von dem Hauptspeicher (16) vorhanden ist.
5. System (11) gemäß einem der Ansprüche 2 bis 4,
bei dem die Logik (100) ferner eine Einrichtung (162,
166) zum Deaktivieren des Abhängig-Von-Fehlschlag-An
zeigers (135) aufweist, wenn die Fehlschlagdatenleitung
von dem Hauptspeicher (16) von dem Datencache (24) em
pfangen wird.
6. System (11) gemäß einem der Ansprüche 2 bis 5, welches
ferner folgende Merkmale aufweist:
einen Zustandsanzeiger (82), der jeder Cachedatenlei tung zugeordnet ist, die von dem Datencache (24) gehal ten wird, wobei der Zustandsanzeiger (82) konfiguriert ist, um einen Fehlschlag-Schwebend-Zustand anzuzeigen, wenn eine entsprechende Cachedatenleitung sowohl ungül tig ist, als auch wenn von dem Hauptspeicher (16) die selbe bereits angefordert worden ist; und
eine weitere Logik (108), die jeder der Befehlsverar beitungsvorrichtungen (39b) zugeordnet ist, wobei die weitere Logik (108) konfiguriert ist, um den Zustands anzeiger (82) während eines Cachezugriffs zu untersu chen, und um den Abhängig-Von-Fehlschlag-Anzeiger (135) zu aktivieren, wenn der Zustandsanzeiger (82) den Fehl schlag-schwebend-Zustand anzeigt.
einen Zustandsanzeiger (82), der jeder Cachedatenlei tung zugeordnet ist, die von dem Datencache (24) gehal ten wird, wobei der Zustandsanzeiger (82) konfiguriert ist, um einen Fehlschlag-Schwebend-Zustand anzuzeigen, wenn eine entsprechende Cachedatenleitung sowohl ungül tig ist, als auch wenn von dem Hauptspeicher (16) die selbe bereits angefordert worden ist; und
eine weitere Logik (108), die jeder der Befehlsverar beitungsvorrichtungen (39b) zugeordnet ist, wobei die weitere Logik (108) konfiguriert ist, um den Zustands anzeiger (82) während eines Cachezugriffs zu untersu chen, und um den Abhängig-Von-Fehlschlag-Anzeiger (135) zu aktivieren, wenn der Zustandsanzeiger (82) den Fehl schlag-schwebend-Zustand anzeigt.
7. System (11) gemäß einem der Ansprüche 3 bis 6, bei dem
die Logik (100) ferner folgende Merkmale aufweist:
eine Etikettenvergleichsvorrichtung (108), die mit dem Datencache (24) verbunden ist und konfiguriert ist, um eine Datencacheetikette und den Zustandsanzeiger (82) von dem Datencache (24) zu empfangen, wenn ein Cachein dex zu dem Datencache (24) von einer jeweiligen Be fehlsverarbeitungsvorrichtung (39b) gesendet wird, wo bei die Etikettenvergleichsvorrichtung (108) konfigu riert ist, um die Datencacheetikette mit einer anderen Etikette, die dem Cacheindex entspricht, zu verglei chen, um ein Treffer/Fehlschlag-Signal zu aktivieren und zu deaktivieren, wenn der Zustandsanzeiger (82) anzeigt, daß der Cache gültige Daten hat, die dem Cacheindex entsprechen; und
eine Einrichtung (137) zum Kombinieren des Treffer/ Fehlschlag-Signals und des Abhängig-Von-Fehlschlag-An zeigers (135), um eine Entscheidungsanforderung (111) abzuleiten; und
eine Fehlschlag-Entscheidungseinrichtung (107), die mit den Befehlsverarbeitungsvorrichtungen (39b) verbunden ist, wobei die Fehlschlag-Entscheidungseinrichtung (107) zum prioritätsmäßigen Ordnen der Entscheidungsan forderungen (111) von den Befehlsverarbeitungsvorrich tungen (39b) und zum Ausgeben von Fehlschlag-Steuersi gnalen (112) vorhanden ist, was eine Anforderung nach Datenleitungen von dem Hauptspeicher (16) bewirkt.
eine Etikettenvergleichsvorrichtung (108), die mit dem Datencache (24) verbunden ist und konfiguriert ist, um eine Datencacheetikette und den Zustandsanzeiger (82) von dem Datencache (24) zu empfangen, wenn ein Cachein dex zu dem Datencache (24) von einer jeweiligen Be fehlsverarbeitungsvorrichtung (39b) gesendet wird, wo bei die Etikettenvergleichsvorrichtung (108) konfigu riert ist, um die Datencacheetikette mit einer anderen Etikette, die dem Cacheindex entspricht, zu verglei chen, um ein Treffer/Fehlschlag-Signal zu aktivieren und zu deaktivieren, wenn der Zustandsanzeiger (82) anzeigt, daß der Cache gültige Daten hat, die dem Cacheindex entsprechen; und
eine Einrichtung (137) zum Kombinieren des Treffer/ Fehlschlag-Signals und des Abhängig-Von-Fehlschlag-An zeigers (135), um eine Entscheidungsanforderung (111) abzuleiten; und
eine Fehlschlag-Entscheidungseinrichtung (107), die mit den Befehlsverarbeitungsvorrichtungen (39b) verbunden ist, wobei die Fehlschlag-Entscheidungseinrichtung (107) zum prioritätsmäßigen Ordnen der Entscheidungsan forderungen (111) von den Befehlsverarbeitungsvorrich tungen (39b) und zum Ausgeben von Fehlschlag-Steuersi gnalen (112) vorhanden ist, was eine Anforderung nach Datenleitungen von dem Hauptspeicher (16) bewirkt.
8. Verfahren (100) zum Erhalten von Bandbreite zu einem
Hauptspeicher (16), der einem Verarbeitungssystem (14)
zugeordnet ist, das einen Datencache (24) verwendet und
das Befehle außerhalb der Reihenfolge ausführt, wobei
das Verfahren (100) folgende Schritte aufweist:
Ausführen von Befehlen, die auf Datenzugriffe außerhalb der Reihenfolge gerichtet sind;
Zugreifen auf den Datencache (24) mit dem Verarbei tungssystem (14) gemäß den Befehlen;
Erkennen von Fehlschlag-Daten, die von dem Datencache (24) abwesend sind, mit dem Verarbeitungssystem (14); und
Verhindern einer Mehrzahl von Anforderungen zu dem Hauptspeicher (16) nach den Fehlschlag-Daten.
Ausführen von Befehlen, die auf Datenzugriffe außerhalb der Reihenfolge gerichtet sind;
Zugreifen auf den Datencache (24) mit dem Verarbei tungssystem (14) gemäß den Befehlen;
Erkennen von Fehlschlag-Daten, die von dem Datencache (24) abwesend sind, mit dem Verarbeitungssystem (14); und
Verhindern einer Mehrzahl von Anforderungen zu dem Hauptspeicher (16) nach den Fehlschlag-Daten.
9. Verfahren (100) gemäß Anspruch 8, das ferner folgende
Schritte aufweist:
Beibehalten einer Mehrzahl von Adressenneuordnungspuf ferbefehlsverarbeitungsvorrichtungen (39b), die dem Verarbeitungssystem (14) zugeordnet sind, zum Empfangen jeweiliger Befehle;
Beibehalten eines Abhängig-Von-Fehlschlag-Anzeigers (135) in jeder der Befehlsverarbeitungsvorrichtungen (39b), der anzeigt, wenn ein Befehl, der seiner jewei ligen Befehlsverarbeitungsvorrichtung (39b) zugeordnet ist, von den Fehlschlag-Daten abhängt; und
Abhalten jeder Befehlsverarbeitungsvorrichtung (39b) davor, die Fehlschlag-Daten von dem Hauptspeicher (16) anzufordern, wenn ihr entsprechender Abhängig-von-Fehl schlag-Anzeiger (135) aktiviert ist.
Beibehalten einer Mehrzahl von Adressenneuordnungspuf ferbefehlsverarbeitungsvorrichtungen (39b), die dem Verarbeitungssystem (14) zugeordnet sind, zum Empfangen jeweiliger Befehle;
Beibehalten eines Abhängig-Von-Fehlschlag-Anzeigers (135) in jeder der Befehlsverarbeitungsvorrichtungen (39b), der anzeigt, wenn ein Befehl, der seiner jewei ligen Befehlsverarbeitungsvorrichtung (39b) zugeordnet ist, von den Fehlschlag-Daten abhängt; und
Abhalten jeder Befehlsverarbeitungsvorrichtung (39b) davor, die Fehlschlag-Daten von dem Hauptspeicher (16) anzufordern, wenn ihr entsprechender Abhängig-von-Fehl schlag-Anzeiger (135) aktiviert ist.
10. Verfahren (100) gemäß Anspruch 8, welches ferner fol
gende Schritte aufweist:
Zuordnen eines Zustandsanzeigers (82) jeder Cache-Da tenleitung in dem Cache zum Anzeigen eines Fehlschlag schwebend-Zustands, wenn eine entsprechende Cachedaten leitung sowohl ungültig ist als auch wenn dieselbe be reits von dem Hauptspeicher (16) angefordert worden ist;
Zugreifen auf den Cache gemäß einem jeweiligen Befehl in einer der Befehlsverarbeitungsvorrichtungen (39b) und Erkennen des Fehlschlag-Schwebend-Zustands durch Untersuchen des Zustandsanzeigers (82); und
Aktivieren des Abhängig-Von-Fehlschlag-Anzeigers (135) in der Befehlsverarbeitungsvorrichtung (39).
Zuordnen eines Zustandsanzeigers (82) jeder Cache-Da tenleitung in dem Cache zum Anzeigen eines Fehlschlag schwebend-Zustands, wenn eine entsprechende Cachedaten leitung sowohl ungültig ist als auch wenn dieselbe be reits von dem Hauptspeicher (16) angefordert worden ist;
Zugreifen auf den Cache gemäß einem jeweiligen Befehl in einer der Befehlsverarbeitungsvorrichtungen (39b) und Erkennen des Fehlschlag-Schwebend-Zustands durch Untersuchen des Zustandsanzeigers (82); und
Aktivieren des Abhängig-Von-Fehlschlag-Anzeigers (135) in der Befehlsverarbeitungsvorrichtung (39).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/609,338 US5758178A (en) | 1996-03-01 | 1996-03-01 | Miss tracking system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19650519A1 true DE19650519A1 (de) | 1997-09-04 |
Family
ID=24440372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19650519A Withdrawn DE19650519A1 (de) | 1996-03-01 | 1996-12-05 | System und Verfahren zum Verfolgen von Fehlschlägen |
Country Status (4)
Country | Link |
---|---|
US (1) | US5758178A (de) |
JP (1) | JP3876034B2 (de) |
DE (1) | DE19650519A1 (de) |
GB (1) | GB2310743B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10113191B4 (de) * | 2000-05-04 | 2004-11-04 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Spekulatives Vorausräumen von Daten in einem Prozessorsystem mit einer ungeordneten Ausführung |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000026741A2 (en) * | 1998-10-30 | 2000-05-11 | Telefonaktiebolaget Lm Ericsson (Publ) | A method for delivering data to an instruction processing unit |
US6446170B1 (en) * | 1999-01-19 | 2002-09-03 | International Business Machines Corporation | Efficient store machine in cache based microprocessor |
US6314507B1 (en) * | 1999-11-22 | 2001-11-06 | John Doyle | Address generation unit |
US6892294B1 (en) * | 2000-02-03 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Identifying execution ready instructions and allocating ports associated with execution resources in an out-of-order processor |
US6990531B2 (en) * | 2000-04-17 | 2006-01-24 | Circadence Corporation | System and method for providing last-mile data prioritization |
US6707752B2 (en) | 2001-06-22 | 2004-03-16 | Intel Corporation | Tag design for cache access with redundant-form address |
US7383421B2 (en) * | 2002-12-05 | 2008-06-03 | Brightscale, Inc. | Cellular engine for a data processing system |
US7543291B2 (en) * | 2003-08-01 | 2009-06-02 | Hewlett-Packard Development Company, L.P. | Processor purging system and method |
US20100195538A1 (en) * | 2009-02-04 | 2010-08-05 | Merkey Jeffrey V | Method and apparatus for network packet capture distributed storage system |
CA2619141C (en) * | 2004-12-23 | 2014-10-21 | Solera Networks, Inc. | Method and apparatus for network packet capture distributed storage system |
US20090292736A1 (en) * | 2008-05-23 | 2009-11-26 | Matthew Scott Wood | On demand network activity reporting through a dynamic file system and method |
US8521732B2 (en) | 2008-05-23 | 2013-08-27 | Solera Networks, Inc. | Presentation of an extracted artifact based on an indexing technique |
US8004998B2 (en) * | 2008-05-23 | 2011-08-23 | Solera Networks, Inc. | Capture and regeneration of a network data using a virtual software switch |
US8625642B2 (en) | 2008-05-23 | 2014-01-07 | Solera Networks, Inc. | Method and apparatus of network artifact indentification and extraction |
WO2011060368A1 (en) * | 2009-11-15 | 2011-05-19 | Solera Networks, Inc. | Method and apparatus for storing and indexing high-speed network traffic data |
WO2011060377A1 (en) * | 2009-11-15 | 2011-05-19 | Solera Networks, Inc. | Method and apparatus for real time identification and recording of artifacts |
US8849991B2 (en) | 2010-12-15 | 2014-09-30 | Blue Coat Systems, Inc. | System and method for hypertext transfer protocol layered reconstruction |
US8666985B2 (en) | 2011-03-16 | 2014-03-04 | Solera Networks, Inc. | Hardware accelerated application-based pattern matching for real time classification and recording of network traffic |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1991004536A1 (en) * | 1989-09-20 | 1991-04-04 | Dolphin Server Technology A/S | Instruction cache architecture for parallel issuing of multiple instructions |
US5555392A (en) * | 1993-10-01 | 1996-09-10 | Intel Corporation | Method and apparatus for a line based non-blocking data cache |
DE69429612T2 (de) * | 1993-10-18 | 2002-09-12 | Via Cyrix Inc | Schreibpuffer für einen superskalaren Mikroprozessor mit Pipeline |
US5557769A (en) * | 1994-06-17 | 1996-09-17 | Advanced Micro Devices | Mechanism and protocol for maintaining cache coherency within an integrated processor |
US5636364A (en) * | 1994-12-01 | 1997-06-03 | International Business Machines Corporation | Method for enabling concurrent misses in a cache memory |
US5778434A (en) * | 1995-06-07 | 1998-07-07 | Seiko Epson Corporation | System and method for processing multiple requests and out of order returns |
-
1996
- 1996-03-01 US US08/609,338 patent/US5758178A/en not_active Expired - Lifetime
- 1996-12-05 DE DE19650519A patent/DE19650519A1/de not_active Withdrawn
-
1997
- 1997-02-06 JP JP02335397A patent/JP3876034B2/ja not_active Expired - Fee Related
- 1997-02-07 GB GB9702564A patent/GB2310743B/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
JOHNSON, M.: Superscalas Microprocessor Design, Prentice Hall, Englewood Cliffs, New Jersey 1991, S. 21-24 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10113191B4 (de) * | 2000-05-04 | 2004-11-04 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Spekulatives Vorausräumen von Daten in einem Prozessorsystem mit einer ungeordneten Ausführung |
Also Published As
Publication number | Publication date |
---|---|
JPH09244952A (ja) | 1997-09-19 |
GB2310743B (en) | 2000-04-12 |
JP3876034B2 (ja) | 2007-01-31 |
US5758178A (en) | 1998-05-26 |
GB2310743A (en) | 1997-09-03 |
GB9702564D0 (en) | 1997-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19650519A1 (de) | System und Verfahren zum Verfolgen von Fehlschlägen | |
DE69932066T2 (de) | Mechanismus zur "store-to-load forwarding" | |
DE60210633T2 (de) | Verfahren und vorrichtungen zur verbesserung des durchsatzes von eingebetteten prozessoren auf cache-basis durch umschalten von tasks als reaktion auf eine cache-verfehlung | |
DE69636452T2 (de) | Mehrprozessor-cachespeicherkohärenzprotokoll für einen lokalbus | |
DE69636861T2 (de) | Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern | |
DE102014011332B4 (de) | Priorisieren von anweisungen basierend auf typ | |
DE60010907T2 (de) | Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter | |
DE2855106C2 (de) | Einrichtung zur Durchführung von bedingten Verzweigungen | |
DE19723065B4 (de) | Halbleitereinrichtung und Computersystem | |
DE112005002305B4 (de) | Thread-Livelock-Einheit | |
DE69930614T2 (de) | VERFAHREN UND GERÄT ZUM HANDHABEN VON mehrfachen flanken- und zustandsausgelösten unterbrechungen | |
DE60006270T2 (de) | Parallele prozessorarchitektur | |
DE2847216C2 (de) | Datenverarbeitungsanlage mit Mehrprogrammbetrieb | |
DE69736105T2 (de) | Hierarchische durchsuchlogik für ungeordnete lade/speicherausführungssteuerung | |
DE19506435C2 (de) | Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten | |
DE4429921A1 (de) | Verfahren und Einrichtung zur Prozessorordnung für einen Befehle ausserhalb der Reihe ausführenden Prozessor | |
DE112004001854T5 (de) | System und Verfahren zur Handhabung von Sonderinstruktionen in einem Prozessor auf Grundlage eines Cache-Speichers mit Ablaufverfolgung | |
DE2744531A1 (de) | Elektronische datenverarbeitungsanlage | |
DE112011103210T5 (de) | Ein auf der Klasse und dem Inhalt von Instruktionen basierendes Energiemanagement für einen Prozessor | |
DE102007060806A1 (de) | Rangbasierter Speicher-Lese/Schreib-Mikrobefehls-Scheduler | |
DE10113191B4 (de) | Spekulatives Vorausräumen von Daten in einem Prozessorsystem mit einer ungeordneten Ausführung | |
DE2164793A1 (de) | Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit | |
DE19824289C2 (de) | Pipelineverarbeitungsmaschine | |
DE112004001040T5 (de) | Verfahren und Datenprozessor mit reduzierter Operationsunterbrechung auf Grund von Operanden-Abhängigkeiten | |
DE4134392C2 (de) | Verfahren und Vorrichtung zum Ungültigmachen von Befehlen in Geräten mit Parallelverarbeitung |
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 CO. (N.D.GES.D.STAATES DELAWARE), |
|
8127 | New person/name/address of the applicant |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8130 | Withdrawal |