DE19650519A1 - System und Verfahren zum Verfolgen von Fehlschlägen - Google Patents

System und Verfahren zum Verfolgen von Fehlschlägen

Info

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
Application number
DE19650519A
Other languages
English (en)
Inventor
Gregg Lesartre
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE19650519A1 publication Critical patent/DE19650519A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped 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.
System und Verfahren zum Verfolgen von Fehlschlägen
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.
TABELLE A
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.
Betrieb
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.
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.
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.
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.
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.
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).
DE19650519A 1996-03-01 1996-12-05 System und Verfahren zum Verfolgen von Fehlschlägen Withdrawn DE19650519A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JOHNSON, M.: Superscalas Microprocessor Design, Prentice Hall, Englewood Cliffs, New Jersey 1991, S. 21-24 *

Cited By (1)

* Cited by examiner, † Cited by third party
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