DE3884101T2 - Abholung von Operanden in Unordnung. - Google Patents
Abholung von Operanden in Unordnung.Info
- Publication number
- DE3884101T2 DE3884101T2 DE88106390T DE3884101T DE3884101T2 DE 3884101 T2 DE3884101 T2 DE 3884101T2 DE 88106390 T DE88106390 T DE 88106390T DE 3884101 T DE3884101 T DE 3884101T DE 3884101 T2 DE3884101 T2 DE 3884101T2
- Authority
- DE
- Germany
- Prior art keywords
- stack
- addresses
- address
- full
- invalid
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012544 monitoring process Methods 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 10
- 230000011664 signaling Effects 0.000 claims description 4
- 238000012806 monitoring device Methods 0.000 claims 2
- 230000008901 benefit Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification 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/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Description
- Die vorliegende Erfindung bezieht sich im allgemeinen auf gespeicherte Programme in digitalen Computern und im besonderen auf ein Gerät, das die Abholung von Operanden in Unordnung ermöglicht, während gleichzeitig das Aussehen der ordnungsgemäßen Abholung in den Prozessor innerhalb einer Computer-Architektur, in der die ordnungsgemäße Abholung erforderlich ist, erhalten bleibt. Die Erfindung ist besonders in einem Pipeline- Multiprozessorsystem nützlich und ermöglicht für eine gegebene Auslegung einer Prozessor-Hardware eine höhere Prozessorleistung.
- In manchen Prozessor-Auslegungen läßt sich bei der Durchführung mancher Operationen in Unordnung ein Leistungsvorteil erzielen. In vielen Fällen kann der Programmierer aus diesen Operationsneuanordnungen keinen Nutzen ziehen, da in der Semantik des Befehlssatzes und in den Befehlen Beschränkungen vorliegen, die dazu führen, daß eine nicht überwachte Operationsneuanordnung keine korrekten Ergebnisse liefert.
- In eng gekoppelten Multiprozessorsystemen ist die Möglichkeit einer Verklemmung oder fehlerhafter Ergebnisse aufgrund von willkürlichen Aktionen in Unordnung sehr verbreitet. In der IBM 5/370 Architektur beispielsweise ist es erforderlich, daß die Operationen in der Programmsequenz ablaufen oder in Sequenz abzulaufen scheinen. Insbesondere müssen Abholungen von Operanden in Sequenz abgeholt zu werden scheinen; gängige Prozessoren beachten diese Regel, indem sie Operationen in Sequenz ausführen.
- In Pipeline-Prozessoren ist es bereits eine standardmäßige Vorgehensweise, nach einer bestimmten Bedingung in Unordnung zu suchen, die dann auftreten kann, wenn eine Abholung kurze Zeit nach einer Speicheranweisung erfolgt. In diesem Fall erfolgt die Abholung nicht in Unordnung, sondern die Speicherung wird innerhalb der Pipeline an späterer Stelle vervollständigt. Daher kann das Ergebnis der Speicherung noch nicht im Speicher oder im Cache erkennbar sein, wenn die nachfolgende Abholung durchgeführt wird. Diese Bedingung wird durch Speicherung der Adressen gestarteter, jedoch noch nicht vollständiger Speicherungen, und Vergleich nachfolgender Abholungsadressen mit diesen Speicheradressen überprüft. Dieser Mechanismus wird OPERAND STORE COMPARE genannt. Verglichene Abholungen werden aufgehalten, bis die Speicherung vollständig ist.
- OPERAND STORE COMPARE läßt sich auf ein begrenztes Zeitintervall anwenden. Dieses Zeitintervall wird durch die Länge der Pipeline bestimmt. Wenn eine Speicherung den Punkt in der Pipeline erreicht, an dem sie vollständig ist, dann wird die Adresse dieser Speicherung aus OPERAND STORE COMPARE entfernt.
- Auf dem bisherigen Stand der Technik beschreibt das U.S.-Patent Nr. 4,484,267 an Fletcher einen Hybrid-Cache, in dem einige Cache-Leitungen als Speicher-ein, das heißt, die Hauptspeicheraktualisierung wird verschoben, und die restlichen Cache- Leitungen als Speicher-durch, das heißt, die Hauptspeicheraktualisierung erfolgt sofort, behandelt werden. Demgemäß waren bisher Cache-Speicher entweder alle Speicher-ein oder alle Speicher-durch. Die Frage, wie jede Leitung zu behandeln ist, wird dynamisch festgelegt und durch ein Flag-Bit im Cache- Verzeichnis gekennzeichnet. Das Bit kann beispielsweise durch eine Querabfrage neu eingestellt werden.
- Das U.S.-Patent Nr. 4,189,770 an Gannon et al. beschreibt eine Umleitungsanordnung, in der bei einer Cache-Verfehlung für einen Operanden variabler Feldlänge der Operand direkt an die Anweisungseinheit gesendet wird, ohne darauf zu warten, daß die gesamte Leitung vom Hauptspeicher in den Cache gesendet wird. Gannon et al beschäftigen sich nicht mit der Operation des Caches und liefern keine Beschreibung zu Abholungen in Unordnung.
- Das U.S.-Patent Nr. 4,435,759 an Baum et al. beschreibt ein Überwachungssystem zur Erfassung und Aufzeichnung von Ereignissen bei der Operation eines Prozessors. Unter den erfaßten Ereignissen sind die Adressen der Anweisungen und die Cache- Verfehlungen enthalten.
- Das U.S.-Patent Nr. 4,400,770 an Chan et al. untersucht Mittel zur Erkennung und Behandlung von Cache-Synonymen. Cache-Synonyme treten auf, weil Caches normalerweise aus Gründen der Schnelligkeit und Einfachheit teils direkt und teils assoziativ adressiert sind. Caches sind in Leitungssätze unterteilt, das heißt, vier Leitungen pro Satz; diese Sätze werden, wie ein herkömmlicher Speicher, direkt adressiert. Die Auswahl der richtigen Leitung innerhalb des Satzes erfolgt assoziativ, das heißt, durch Vergleich der vorliegenden Adresse mit den Leitungsadressen,die im Cache-Verzeichnis gespeichert sind. In der S/370- Architektur werden die unübersetzten Bits niedriger Ordnung (12 Bits) der vorliegenden Adresse verwendet, um den Satz direkt auszuwählen, während ein Teil der übersetzten Bits höherer Ordnung verwendet wird, um die Leitung innerhalb des Satzes assoziativ auszuwählen. Mit steigender Anzahl an Sätzen im Cache zur Vergrößerung des Caches sind nicht mehr ausreichend unübersetzte Bits niedriger Ordnung vorhanden, um den Satz auszuwählen; dann ist es erforderlich, einige der übersetzten Bits höherer Ordnung zu verwenden. Nun kann es Synonyme geben, das heißt, zwei oder mehr übersetzte Adressen, die zur selben realen Speicherposition führen können. Solche Synonyme müssen aus mehreren Gründen erkannt und entsprechend behandelt werden. Chan et al. beschreiben, wie diese Synonyme gefunden werden können. Im Fall einer Cache-Verfehlung stellen Chan et al. ein Mittel zur Erzeugung aller möglichen Synonyme, das heißt, Herstellung aller möglichen Kombinationen der übersetzten Bits, sowie zur Überprüfung des Cache-Verzeichnisses auf Vorhandensein eines der Synonyme zur Verfügung. Bei der Erkennung eines Synonyms sind mehrere Schritte möglich.
- Ein Ziel der vorliegenden Erfindung besteht darin, ein Mittel anzubieten, das die Erzielung eines bedeutenden Leistungsvorteils in einigen Prozessorauslegungen dadurch ermöglicht, daß Operationen auch in Unordnung ausgeführt werden können.
- Ein weiteres Ziel der vorliegenden Erfindung besteht darin, einen einfachen Mechanismus anzubieten, der die Zufallsereignisse identifizieren kann, die bei der Abholung von Operanden in Unordnung auftreten.
- Ein weiteres und spezifischeres Ziel der vorliegenden Erfindung besteht darin, einen Mechanismus anzubieten, der eine effizientere Identifikation der Zufallsereignisse bei Abholungen in der normalen Sequenz ermöglicht; hierbei wird eine erhöhte Leistung in einem Multiprozessorsystem erleichtert.
- Durch Überwachung der relevanten Prozessoraktivität, die zwischen der tatsächlichen Abholung des Operanden und dem Punkt, an dem der Operand normalerweise abgeholt würde, einschließlich Speicherungen, die vom Prozessor erzeugt werden, Cross-Invalidates (XIs), die von anderen Prozessoren und Elementen erzeugt werden, Prozessor-Cache-Verfehlungen und Serialisierungsereignisse innerhalb des Prozessors, auftritt, werden die Zufallsereignisse entdeckt. Auf diese Weise kann der beschriebene Mechanismus die Überwachung von Zufallsereignissen auf die Abholung von Operanden in Unordnung erweitern.
- Die vorliegende Erfindung läßt sich auf ein willkürliches Zeitintervall anwenden, das von der Größe des Stapels abhängig ist, der vom Programmierer zur Verfügung gestellt wird. Sie läßt sich auf Abholungen in Unordnung anwenden und behandelt nicht nur die Auswirkungen von Speicherungen, sondern auch alle anderen Ereignisse, die dazu führen könnten, daß eine Abholung in Unordnung zu beobachten ist. Eine Abholung kann auf zwei verschiedene Arten in Unordnung sein. Sie kann vor oder nach ihrer eigentlichen Position innerhalb des Programms erfolgen. Eine Abholung vor der eigentlichen Position kann zu einer Erhöhung der Leistung führen. Diese Situation ist Gegenstand der vorliegenden Beschreibung.
- Das zentrale Element der vorliegenden Erfindung ist ein Stapel, der die Adressen der Abholungen enthält, die in Unordnung erfolgten. Diese Adressen bleiben im Stapel erhalten, bis die Anweisung, die die Abholung ausgelöst hat, in der richtigen Sequenz behandelt wird. Ein weiteres Element der Erfindung besteht in einem Vergleichsmittel, mit dem alle gültigen Adressen im Stapel mit einer Testadresse verglichen werden, und einem Signal, das Compare oder No Compare anzeigt. Die Adressen aller Speicheranweisungen sowie alle Querabfrageadressen anderer Prozessoren (in einem Multiprozessorsystem) werden als Testadressen verwendet. Wenn eine dieser Adressen das Signal "compare" abgeben, dann wird die dazugehörige Abholadresse als ungültig gekennzeichnet.
- Zwei andere Ereignisse, eine Cache-Verfehlung oder eine Serialisierungsanweisung, weisen auf die Möglichkeit hin, daß viele der Abholungen in Unordnung ungültig sein können. Für diese Ereignisse wird der gesamte Stapel als ungültig gekennzeichnet. Die vom Prozessor durchgeführte Maßnahme für als ungültig gekennzeichnete Adressen hängt davon ab, auf welche Weise der Prozessor die Abholung in Unordnung nutzt. Das Ziel der vorliegenden Erfindung liegt darin, ein Warnsignal an den Prozessor zu liefern, wenn eine Korrekturmaßnahme erforderlich wird. Ist kein Warnsignal vorhanden, das heißt, keine Adresse ist als ungültig gekennzeichnet, dann weiß der Prozessor, daß die dazugehörigen Abholungen nicht in Unordnung sein können und daß die erzielten Ergebnisse genau so korrekt sind wie wenn die Abholungen in Sequenz wären.
- Die einzelnen Elemente der Erfindung sind wie folgt:
- 1. Ein Stapel aus N Einträgen, die die Adressen des letzten M enthalten, wobei M kleiner oder gleich N Abholungen in Unordnung ist.
- 2. Vergleichsmittel für den Vergleich von Adressen im Stapel mit einer Testadresse.
- 3. Mittel für die Markierung als ungültig derjenigen Adressen, die mit der Testadresse übereinstimmen.
- 4. Mittel zur Auswahl von Speicheradressen und Querinvalidierungsadressen als Testadressen.
- 5. Mittel zur Markierung aller Adressen im Abholstapel als ungültig bei Auftauchen einer Cache-Verfehlung oder einer Serialisierungsanweisung.
- 6. Mittel, um eine Adresse im Stapel mit der Anweisung in Verbindung zu bringen, für die sie steht, sowie für das Löschen dem Adresse, wenn die Anweisung in der richtigen Sequenz behandelt wird.
- Unter erneutem Bezug auf den bisherigen Stand der Technik stellt man fest, daß es eine oberflächliche Ähnlichkeit zwischen dem Verzeichnis eines beliebigen Caches (siehe beispielsweise das bereits angeführte Patent an Fletcher) und dem oben genannten Schlüsselement (1) gibt, dem Stapel aus M Adressen; diese Ähnlichkeit besteht darin, daß beide in ihren Einträgen Adressen besitzen und beide gültige Bits haben. Die Adressen im Cache- Verzeichnis sind jedoch Leitungsadressen, die in der Cache- Anordnung gespeichert werden, während die Adressen im Stapel die Adressen der Abholungen in Unordnung sind. In anderen Worten, der Zweck unterscheidet sich erheblich. Schlüsselelement (2), das Vergleichsmittel, ist in jedem Cache vorhanden; in einem herkömmlichen Cache wird jedoch vom Vergleich erwartet, daß für die meisten Testadressen ein "compare" gefunden wird, das heißt, Cache-Verweise, während in der vorliegenden Erfindung der Vergleich nur unregelmäßig ein "compare" findet. Auch hieb sind die Nutzungsmöglichkeiten unterschiedlich. Die Schlüsselelemente (3) und (4), die solche Adressen im Stapel als ungültig kennzeichnen, die mit den Speicher- und Querinvalidierungsadressen übereinstimmen, besitzen ein Gegenstück in den Caches von Multiprozessorsystemen. In solchen Systemen können Speicherungen und Querinvalidierungen anderer Prozessoren im System zur Invalidierung von Verzeichniseinträgen führen. Das Schlüsselelement (5), ein Mittel zur Invalidierung des gesamten Stapels bei Auftauchen einer Cache-Verfehlung oder einer Serialisierungsanweisung, befindet sich in keinem Cache des bisherigen Stands der Technik, insbesondere nicht in den von Fletcher und Chan et al. beschriebenen, da ein Cache, in dem dies der Fall wäre, nur selten viele gültige Einträge hätte und daher nutzlos wäre. Das Schlüsselelement (6), ein Mittel zur Herstellung einer Verbindung zwischen einer Adresse im Stapel und der Anweisung, für die sie steht, befindet sich in keinem Cache des bisherigen Stands der Technik, insbesondere nicht in den von Fletcher und Chan et al. beschriebenen.
- Die bisherigen Ausführungen sowie weitere Ziele, Aspekte und Vorteile der Erfindung werden leichter verständlich durch die nachfolgende ausführliche Beschreibung anhand der beiliegenden Zeichnungen
- Fig. 1 ist ein Blockdiagramm eines Mechanismus für die Aufstellung und Überwachung von Abholungen in Unordnung gemäß der vorliegenden Erfindung;
- Fig. 2 ist ein Blockdiagramm, das etwas ausführlicher die Verteilungs-, Vergleichs- und Stapelstruktur des Mechanismus in Fig. 1 zeigt;
- Fig. 3 ist ein Blockdiagramm, das etwas ausführlicher die Eingangsüberprüfungsfunktion und die Stapelstruktur des Mechanismus in Fig. 1 zeigt; und
- Fig. 4 ist ein Logikdiagramm, das die Logik der in Fig. 3 dargestellten Eingangsüberprüfung darstellt.
- Unter Bezugnahme auf die Zeichnungen, und insbesondere auf Fig. 1, wird ein Mechanismus für die Aufstellung und Überwachung von Abholungen in Unordnung aufgestellt. Für jede Abholung in Unordnung wird der Stapel 119 um einen Eintrag erweitert. Jeder Eintrag 101 besteht aus der Adresse, an der die Abholung erfolgte, einer Kennzeichnung für die mit der Abholung in Zusammenhang stehenden Anweisung, einem voll/leer-Bit (zur Bezeichnung des Vorhandenseins eines Eintrags), und einem gültigen Bit. Wenn der Stapel um einen Eintrag erweitert wird, wird das voll/leer-Bit auf Voll gesetzt und das gültige Bit wird auf Gültig gesetzt. Der Stapel besteht aus einer bestimmten Anzahl an Hardware-Registern. Zu einem gegebenen Zeitpunkt kann es vorkommen, daß einige Register keine Einträge haben. In diesen Registern wird das voll/leer-Bit auf Leer gesetzt. Andererseits gilt, daß, wenn der Stapel um einen Eintrag erweitert wird und alle Register bereits voll sind, eine Überflußbedingung auftritt und die Überflußleitung 121 aktiviert wird; hierdurch wird ein Datenverlust signalisiert. Das Überflußsignal auf der Leitung 121 wird als eine Eingabe an das OR-Gatter 109 geliefert.
- Neben dem Überfluß gibt es vier Ereignisse, die zu überwachen sind, da sie bewirken können, daß eine Abholung in Unordnung inkorrekt ist oder zumindest die Möglichkeit besteht, daß diese Abholungen inkorrekt sind. Das erste Ereignis ist eine Speicherung, die vor der ersten Abholung logisch ist. Wenn eine solche Speicherung an einer Adresse erfolgt, an der eine Abholung in Unordnung erfolgte, dann erhielt eindeutig die Abholung nicht den korrekten neuen Wert, das heißt, die Abholung erfolgte vor der Speicherung, obwohl nach der Logik die Abholung erst nach der Speicherung hätte erfolgen dürfen. Die Adressen solcher Speicherungen werden an das OR-Gatter 107 und anschließend an den Verteiler 105 geliefert, um vom Komparator 103 mit allen Adressen im Stapel 119 verglichen zu werden. Stimmt eine Adresse im Stapel mit einer Speicheradresse überein und ist das dazugehörige voll/leer-Bit voll, dann wird das dazugehörige gültige Bit auf Ungültig gesetzt. Wie an späterer Stelle noch ersichtlich werden wird, kann ein Eintrag, der sowohl Voll und Ungültig ist, eine nachträgliche Korrekturmaßnahme erfordern.
- Fig. 2 zeigt etwas ausführlicher die Struktur, die nach einer Speicherung sucht, die logisch gesehen vor der entsprechenden Abholung eintritt. Abholadressen werden in einer Mehrzahl von Registern 122 gespeichert, die den Stapel 119 bilden. An die Adresse für jedes Register wird eine entsprechende Komparatorschaltung 124 des Komparators 103 geliefert. Jeder Komparator 124 empfängt die Speicheradresse über den Verteiler 105 und das OR-Gatter 107. Erfolgt von einer der Komparatorschaltungen 124 eine "compare" Ausgabe, das heißt, die Abholadresse in einem der Register 122 stimmt mit der Speicheradresse überein, dann wird über ein OR-Gatter eine Invalidierungsausgabe geliefert, um das gültige Bit 128 für dieses Register auf ungültig zu setzen.
- Die zweite Art von Ereignis ist eine Querabfrage eines anderen Prozessors. Diese Adressen werden ebenfalls an das OR-Gatter 107 und anschließend an den Verteiler 105 geliefert. Die ergriffenen Maßnahmen gleichen denen für Speicheradressen. Die dritte Art an Ereignis ist die Serialisierung von Anweisungen, für die die Architektur erfordert, daß alle vorherigen Anweisungen vollständig sind, bevor die Serialisierungsanweisung vervollständigt wird. Für dieses Ereignis müssen alle Einträge im Stapel 119 als ungültig gekennzeichnet werden. Das Auftreten einer Serialisierungsanweisung wird an das OR-Gatter 109 geliefert, das in Fig. 1 dargestellt ist, und die Ausgabe, auf Leitung 123, wird an die OR-Gatter 126 geliefert, um zu bewirken, daß alle gültigen Bits 128 auf ungültig gesetzt werden, wie dies in Fig. 2 dargestellt ist.
- Die vierte Art eines Ereignisses ist eine Cache-Verfehlung. Es wurde beschlossen, bei einer Cache-Verfehlung alle Einträge als ungültig zu kennzeichnen, indem die Anzeige der Cache-Verfehlung an das OR-Gatter 109 geliefert wird. Streng genommen ist es nicht sicher, ob eine Cache-Verfehlung bei Abholungen in Unordnung Schwierigkeiten bereitet, und es sollte möglich sein, zu entscheiden, ob eine gegebene Verfehlung die Anwendung einer Korrekturmaßnahme erforderlich macht. Aus Gründen der Leistungsfähigkeit wurde jedoch versucht, Cache-Verfehlungen möglichst selten auftreten zu lassen, so daß bei der Invalidierung aller Verfehlungen keine allzu großen Datenverluste auftreten. Wenn schließlich im Stapel 119 eine Überflußbedingung auftritt, wird die Invalidierung aller Einträge gewählt.
- Die Einträge in den Stapel erfolgen zu dem Zeitpunkt, zu dem die Abholungen in Unordnung erfolgen. Die Einträge werden vom Stapel entfernt, wenn die dazugehörige Anweisung "in Sequenz" erfolgt; das heißt, wenn diese zur derzeit dekodierten Anweisung wird. Es ist zu beachten, daß die Definition darüber, wann sich eine Anweisung in Sequenz befindet, davon abhängig ist, wie der Prozessor organisiert ist. Da der Prozessor nicht Gegenstand der vorliegenden Erfindung ist, wird lediglich auf die "derzeitige" Anweisung Bezug genommen. Die Kennzeichnung der aktuellen Anweisung 111 wird auf die Funktion 113 Eintrag Auswählen und Überprüfen angewandt. Der Eintrag mit der entsprechenden Kennzeichnung wird ausgewählt und dessen voll/leer-Bit und gültiges Bit werden gelesen. Wenn der Eintrag sowohl Voll als auch Gültig ist, dann treten bei der Abholung in Unordnung keine Schwierigkeiten auf und es ist keine Korrektur erforderlich. Diese Tatsache wird auf Leitung 115 signalisiert. Wenn der Eintrag Voll und Ungültig ist, dann tritt bei der Abholung in Unordnung ein Problem auf und am Prozessor ist eine Korrekturmaßnahme erforderlich. Diese Tatsache wird auf Leitung 117 signalisiert. Die Art der durchzuführenden Korrekturmaßnahme ist von der Auslegung des Prozessors abhängig und soll nicht Gegenstand der vorliegenden Beschreibung sein.
- In Fig. 3 ist ausführlich dargestellt, wie die Signale auf den Leitungen 115 und 117 erzeugt werden. Auch hier enthält der Stapel 119 eine Mehrzahl an Registern 122, die die Abholadressen enthalten. Zu jeder Abholadresse gehören ein gültiges Bit 128, ein voll/leer-Bit 120 und eine Kennzeichnung 118. Selbstverständlich können sich die Abholadresse, das gültige Bit, das voll/leer-Bit und die Kennzeichnung alle in einem Register befinden. Die in Fig. 3 dargestellte Trennung ist lediglich eine Hilfe zum Verständnis der in jedem der Register gespeicherten Datenart. Das voll/leer-Bit 120 liefert ein Signal, welches anzeigt, ob sein dazugehöriges Register voll oder leer ist, und das gültige Bit 128 zeigt an, ob die Abholadresse im Register gültig oder ungültig ist. Diese Signale werden zur Überprüfung der Eingangslogik 125 geliefert. Die Kennzeichnung 118 für jede Adresse wird an eine dazugehörige Vergleichsschaltung 130 geliefert. Alle Vergleichsschaltungen 130 empfangen die Kennzeichnung 111 der derzeitigen Anweisung, und je nachdem, welche Vergleichsschaltung eine Ausgabe liefert, das heißt, die Kennzeichnung der derzeitigen Anweisung ist gleich der Kennzeichnung einer der Abholadressen, die in einem Register 122 des Stapels 119 gespeichert sind, wird die entsprechendem Eingangsüberprüfungslogik 125 aktiviert, um entweder auf Leitung 115 oder 117 eine Ausgabe zu liefern.
- Fig. 4 zeigt die Eingangsüberprüfungslogik 125, die die AND- Gatter 132, 134 und 136 sowie ein OR-Gatter 138 umfaßt. Das AND- Gatter 132 empfängt vom gültigen Bit 128 ein Signal auf Leitung 129, welches anzeigt, daß die Adresse ungültig ist; ein Signal auf Leitung 127 vom voll/leer-Bit 120 zeigt an, daß das Abholadreßregister voll ist und ein Aktivierungssignal auf Leitung 131 von der Vergleichsschaltung 130 zur Erzeugung einer Ausgabe auf Leitung 117 zeigt an, daß das Abholadreßregister voll und ungültig ist. Das AND-Gatter 134 wird ebenfalls durch ein Signal auf Leitung 131 aktiviert und empfängt dasselbe volle Signal auf Leitung 127, empfängt jedoch ein gültiges Signal auf Leitung 129 zur Erzeugung einer Ausgabe, die anzeigt, daß das Abholadreßregister voll und gültig ist. Das AND-Gatter 136 wird ebenfalls durch ein Signal auf Leitung 131 aktiviert, empfängt jedoch vom voll/leer-Bit 120 ein leeres Signal auf Leitung 127 zur Erzeugung eines Signals, welches anzeigt, daß das Abholadreßregister leer ist. Die Ausgänge der AND-Gatter 134 und 136 werden im OR-Gatter 138 kombiniert, um auf Leitung 115 ein Signal zu erzeugen, welches anzeigt, daß das Abholadreßregister entweder leer oder voll und gültig ist.
- Natürlich gibt es auch Anweisungen, die keine Abholungen miteinschließen, so beispielsweise die Register-zu-Register-Anweisungen der S/370-Architektur. Für diese Anweisungen gehen wir von der Annahme aus, daß der Stapel 119 um einen Eintrag erweitert wird, wobei das Kennzeichen der dazugehörigen Anweisung und das voll/leer-Bit auf Leer gesetzt sind. Wenn diese Anweisung zur derzeitigen Anweisung wird, gibt die Funktion Eintrag Auswählen und Überprüfen auf Leitung 115 ein Signal ab, welches anzeigt, daß keine Korrektur erforderlich ist. Ebenso kann festgelegt werden, daß für solche Anweisungen in Stapel 119 keine Einträge erfolgen und daß auf Leitung 115 ein Signal ausgegeben wird, wenn die Funktion Eintrag Auswählen und Überprüfen kein passendes Kennzeichen im Stapel findet.
- Zusammenfassend läßt sich sagen, daß aus der Abholung in Unordnung zwei Arten von Zufallsereignissen resultieren können. Das erste betrifft die Richtigkeit des ausgeführten Programms, das zweite betrifft das, was ein anderer Prozessor feststellt. Um die Richtigkeit des ausgeführten Programms aufrechtzuerhalten, müssen alle Speicheroperationen überwacht werden, um festzustellen, ob diese irgendwelche Änderungen in den zuvor abgeholten Daten bewirken, die jedoch gemäß dem Programm erst nach der Speicherung hätten abgeholt werden sollen.
- In einem System, in dem zwei oder mehr Prozessoren an denselben Speicher angeschlossen sind, können die vom einen Prozessor durchgeführten Maßnahmen vom anderen Prozessor als Änderungen im Speicher, das heißt, Speicheroperationen, identifiziert werden; wenn beispielsweise Prozessor 1 einen neuen Wert in Position A speichert, dann erkennt Prozessor 2 bei der Abholung von Position A entweder einen alten oder einen neuen Wert, je nachdem, ob die Abholung vor oder nach der Speicherung geschah. Entsprechend kann der Prozessor 2 in Position B speichern, und Prozessor 1 kann von Position B abholen. Wenn Abholungen und Speicherungen nicht in Folge bleiben, kann es passieren, daß einer der Prozessoren eine logisch unmögliche Situation identifiziert, nämlich daß A vor B auftrat und daß gleichzeitig B vor A auftrat. Dieses Ereignis wird dadurch vermieden, indem die Bedingungen, die zu diesem Ereignis führen können, nämlich insbesondere Querabfragen und Cache-Verfehlungen, überwacht werden.
- Die vorliegende Erfindung bieten einen Vorteil in der Leistungsfähigkeit einiger Prozessoren, indem Abholungen in Unordnung ermöglicht wenden. Durch Überwachung der entsprechenden Prozessoraktivität, die zwischen der tatsächlichen Abholung des Operanden und dem Punkt, an dem der Operand normalerweise abgeholt würde, auftritt, können die Zufallsereignisse der Abholung in Unordnung identifiziert und geeignete Korrekturmaßnahmen ergriffen werden. Das zentrale Element der vorliegenden Erfindung besteht im Stapel, der die Adressen der Abholungen enthält, die in Unordnung erfolgten. Ein Vergleichsmittel vergleicht alle Adressen im Stapel mit einer Testadresse und gibt ein Signal ab, welches "compare" oder "no compare" anzeigt. Wenn eine dieser Adressen "compare" signalisiert, dann wird die dazugehörige Adresse als ungültig markiert. Eine Cache-Verfehlung oder eine Serialisierungsanweisung bergen ebenfalls die Möglichkeit, daß viele der Abholungen in Unordnung ungültig sind; bei einem solchen Ereignis wird der gesamte Stapel als ungültig markiert.
Claims (6)
1. Gerät zur Überwachung von Abholungen in Unordnung in einem
Computer, der ein Mittel zur Abholung von Operanden und zur
Ausführung von Anweisungen in Übereinstimmung damit enthält,
bestehend aus:
einem Stapel mit N Einträgen zur Speicherung der Adressen
des letzten M der Sequenzabholungen, wobei M kleiner oder
gleich N ist, wobei jede dieser Adressen ein dazugehöriges
gültiges Bit aufweist;
ein Vergleichsmittel für den Vergleich von Adressen in
diesem Stapel mit einer vorbestimmten Testadresse;
ein Mittel zur Einstellung der gültigen Bits der Adressen,
die mit der Testadresse übereinstimmen, auf ungültig;
ein Mittel zur Auswahl von Speicheradressen und
Querinvalidierungsadressen zur Verwendung als vorbestimmte
Testadressen; und
ein Mittel zur Herstellung einer Verbindung zwischen einer
Adresse im Stapel und einer Anweisung sowie für das Löschen
einer Adresse, wenn die Anweisung in der richtigen Sequenz
behandelt wird.
2. Ein Gerät zur Überwachung von Abholungen in Unordnung gemäß
Anspruch 1, des weiteren bestehend aus einem Mittel zur
Einstellung der gültigen Bits für alle Adressen im
Abholstapel auf ungültig, wenn eine Cache-Verfehlung auftritt.
3. Ein Gerät zur Überwachung von Abholungen in Unordnung gemäß
Anspruch 1, des weiteren bestehend aus einem Mittel zur
Einstellung der gültigen Bits für alle Adressen im
Abholstapel auf ungültig, wenn eine Serialisierungsansweisung
aufritt.
4. Ein Gerät zur Überwachung von Abholungen in Unordnung gemäß
Anspruch 1, des weiteren bestehend aus einem Mittel zur
Einstellung der gültigen Bits für alle Adressen im
Abholstapel auf ungültig, wenn mindestens eine Cache-Verfehlung oder
eine Serialisierungsanweisung auftritt.
5. Ein Gerät zur Überwachung von Abholungen in Unordnung gemäß
Anspruch 1, wobei jede dem im Stapel befindlichen Adressen
des weiteren ein dazugehöriges voll/leer-Bit aufweist;
dieses voll/leer-Bit wird auf voll gesetzt, wenn für die
Adresse im Stapel ein Eintrag vorhanden ist, und wenn das
Mittel zur Herstellung einer Verbindung der Adresse im
Stapel mit einer Anweisung folgendes enthält:
ein Mittel zur Auswahl eines Eintrags in diesem Stapel, der
einer aktuellen Anweisung entspricht; und
ein Mittel zur Überprüfung des voll/leer-Bits und des
gültigen Bits für den ausgewählten Eintrag und Signalisierung,
daß eine Korrekturmaßnahme erforderlich ist, wenn das
voll/leer-Bit auf voll und das gültige Bit auf ungültig
gesetzt ist.
6. Ein Gerät zur Überwachung von Abholungen in Unordnung gemäß
Anspruch s, des weiteren bestehend aus:
einem Mittel zur Erkennung und Signalisierung einer
Überflußbedingung im Stapel; und
einem Mittel zur Einstellung der gültigen Bits aller
Adressen im Stapel auf ungültig als Reaktion auf die
Signalisierung einer Überflußbedingung.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/051,792 US4991090A (en) | 1987-05-18 | 1987-05-18 | Posting out-of-sequence fetches |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3884101D1 DE3884101D1 (de) | 1993-10-21 |
DE3884101T2 true DE3884101T2 (de) | 1994-04-21 |
Family
ID=21973404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE88106390T Expired - Fee Related DE3884101T2 (de) | 1987-05-18 | 1988-04-21 | Abholung von Operanden in Unordnung. |
Country Status (4)
Country | Link |
---|---|
US (1) | US4991090A (de) |
EP (1) | EP0302999B1 (de) |
JP (1) | JPS63293639A (de) |
DE (1) | DE3884101T2 (de) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5193205A (en) * | 1988-03-01 | 1993-03-09 | Mitsubishi Denki Kabushiki Kaisha | Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address |
JPH0774994B2 (ja) * | 1988-09-21 | 1995-08-09 | 株式会社日立製作所 | バッファ記憶制御装置のosc検出方式 |
JPH02103656A (ja) * | 1988-10-12 | 1990-04-16 | Fujitsu Ltd | 主記憶参照の遂次化制御方式 |
US5125083A (en) * | 1989-02-03 | 1992-06-23 | Digital Equipment Corporation | Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system |
US5781753A (en) * | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
US5768575A (en) * | 1989-02-24 | 1998-06-16 | Advanced Micro Devices, Inc. | Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions |
US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
CA2016068C (en) * | 1989-05-24 | 2000-04-04 | Robert W. Horst | Multiple instruction issue computer architecture |
US5093777A (en) * | 1989-06-12 | 1992-03-03 | Bull Hn Information Systems Inc. | Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack |
JPH0348951A (ja) * | 1989-07-18 | 1991-03-01 | Fujitsu Ltd | アドレスモニタ装置 |
US5185871A (en) * | 1989-12-26 | 1993-02-09 | International Business Machines Corporation | Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions |
US5197139A (en) * | 1990-04-05 | 1993-03-23 | International Business Machines Corporation | Cache management for multi-processor systems utilizing bulk cross-invalidate |
US5151981A (en) * | 1990-07-13 | 1992-09-29 | International Business Machines Corporation | Instruction sampling instrumentation |
US5446850A (en) * | 1991-01-15 | 1995-08-29 | International Business Machines Corporation | Cross-cache-line compounding algorithm for scism processors |
US5257354A (en) * | 1991-01-16 | 1993-10-26 | International Business Machines Corporation | System for monitoring and undoing execution of instructions beyond a serialization point upon occurrence of in-correct results |
US5261071A (en) * | 1991-03-21 | 1993-11-09 | Control Data System, Inc. | Dual pipe cache memory with out-of-order issue capability |
US5630157A (en) * | 1991-06-13 | 1997-05-13 | International Business Machines Corporation | Computer organization for multiple and out-of-order execution of condition code testing and setting instructions |
US5636363A (en) * | 1991-06-14 | 1997-06-03 | Integrated Device Technology, Inc. | Hardware control structure and method for off-chip monitoring entries of an on-chip cache |
US5317711A (en) * | 1991-06-14 | 1994-05-31 | Integrated Device Technology, Inc. | Structure and method for monitoring an internal cache |
JP2786574B2 (ja) * | 1992-05-06 | 1998-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・システムにおける順不同ロード動作の性能を改善する方法と装置 |
US5355471A (en) * | 1992-08-14 | 1994-10-11 | Pyramid Technology Corporation | Multiprocessor cache coherency tester that exercises the coherency logic exhaustively and also detects errors in a processor using an automatic CPU sort |
US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
WO1994008287A1 (en) * | 1992-09-29 | 1994-04-14 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
US5488706A (en) * | 1992-12-18 | 1996-01-30 | Amdahl Corporation | Retry request system in a pipeline data processing system where each requesting unit preserves the order of requests |
US5467473A (en) * | 1993-01-08 | 1995-11-14 | International Business Machines Corporation | Out of order instruction load and store comparison |
US5493669A (en) * | 1993-03-03 | 1996-02-20 | Motorola, Inc. | Data processor for simultaneously searching two fields of the rename buffer having first and second most recently allogated bits |
JP2560988B2 (ja) * | 1993-07-16 | 1996-12-04 | 日本電気株式会社 | 情報処理装置および処理方法 |
US6138230A (en) * | 1993-10-18 | 2000-10-24 | Via-Cyrix, Inc. | Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline |
US5463745A (en) * | 1993-12-22 | 1995-10-31 | Intel Corporation | Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system |
US5535358A (en) * | 1993-12-27 | 1996-07-09 | Matsushita Electric Industrial Co., Ltd. | Cache memory control circuit and method for controlling reading and writing requests |
US5588126A (en) * | 1993-12-30 | 1996-12-24 | Intel Corporation | Methods and apparatus for fordwarding buffered store data on an out-of-order execution computer system |
US5452426A (en) * | 1994-01-04 | 1995-09-19 | Intel Corporation | Coordinating speculative and committed state register source data and immediate source data in a processor |
US5898854A (en) * | 1994-01-04 | 1999-04-27 | Intel Corporation | Apparatus for indicating an oldest non-retired load operation in an array |
US5627985A (en) * | 1994-01-04 | 1997-05-06 | Intel Corporation | Speculative and committed resource files in an out-of-order processor |
US5577200A (en) * | 1994-02-28 | 1996-11-19 | Intel Corporation | Method and apparatus for loading and storing misaligned data on an out-of-order execution computer system |
US5465336A (en) * | 1994-06-30 | 1995-11-07 | International Business Machines Corporation | Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system |
US5699538A (en) * | 1994-12-09 | 1997-12-16 | International Business Machines Corporation | Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor |
TW295646B (de) * | 1995-01-25 | 1997-01-11 | Ibm | |
US5649155A (en) * | 1995-03-31 | 1997-07-15 | International Business Machines Corporation | Cache memory accessed by continuation requests |
US5751946A (en) * | 1996-01-18 | 1998-05-12 | International Business Machines Corporation | Method and system for detecting bypass error conditions in a load/store unit of a superscalar processor |
US5737636A (en) * | 1996-01-18 | 1998-04-07 | International Business Machines Corporation | Method and system for detecting bypass errors in a load/store unit of a superscalar processor |
JP2806359B2 (ja) * | 1996-04-30 | 1998-09-30 | 日本電気株式会社 | 命令処理方法及び命令処理装置 |
JP2783259B2 (ja) * | 1996-07-18 | 1998-08-06 | 日本電気株式会社 | 半導体パッケージとその製造方法 |
US6021261A (en) * | 1996-12-05 | 2000-02-01 | International Business Machines Corporation | Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers |
US5909698A (en) * | 1997-03-17 | 1999-06-01 | International Business Machines Corporation | Cache block store instruction operations where cache coherency is achieved without writing all the way back to main memory |
US6289437B1 (en) * | 1997-08-27 | 2001-09-11 | International Business Machines Corporation | Data processing system and method for implementing an efficient out-of-order issue mechanism |
JP2004094533A (ja) * | 2002-08-30 | 2004-03-25 | Hajime Seki | 計算機システム |
US9483409B2 (en) | 2015-02-05 | 2016-11-01 | International Business Machines Corporation | Store forwarding cache |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3401376A (en) * | 1965-11-26 | 1968-09-10 | Burroughs Corp | Central processor |
US3553655A (en) * | 1969-03-28 | 1971-01-05 | Ibm | Short forward conditional skip hardware |
US4092713A (en) * | 1977-06-13 | 1978-05-30 | Sperry Rand Corporation | Post-write address word correction in cache memory system |
US4354232A (en) * | 1977-12-16 | 1982-10-12 | Honeywell Information Systems Inc. | Cache memory command buffer circuit |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
US4189772A (en) * | 1978-03-16 | 1980-02-19 | International Business Machines Corporation | Operand alignment controls for VFL instructions |
US4197580A (en) * | 1978-06-08 | 1980-04-08 | Bell Telephone Laboratories, Incorporated | Data processing system including a cache memory |
US4228503A (en) * | 1978-10-02 | 1980-10-14 | Sperry Corporation | Multiplexed directory for dedicated cache memory system |
US4279016A (en) * | 1979-06-21 | 1981-07-14 | International Business Machines Corporation | Instruction pre-fetch microprocessor interrupt system |
JPS56149646A (en) * | 1980-04-21 | 1981-11-19 | Toshiba Corp | Operation controller |
US4438492A (en) * | 1980-08-01 | 1984-03-20 | Advanced Micro Devices, Inc. | Interruptable microprogram controller for microcomputer systems |
US4399507A (en) * | 1981-06-30 | 1983-08-16 | Ibm Corporation | Instruction address stack in the data memory of an instruction-pipelined processor |
US4484267A (en) * | 1981-12-30 | 1984-11-20 | International Business Machines Corporation | Cache sharing control in a multiprocessor |
US4594659A (en) * | 1982-10-13 | 1986-06-10 | Honeywell Information Systems Inc. | Method and apparatus for prefetching instructions for a central execution pipeline unit |
US4594660A (en) * | 1982-10-13 | 1986-06-10 | Honeywell Information Systems Inc. | Collector |
DE3382152D1 (de) * | 1982-12-09 | 1991-03-07 | Sequoia Systems Inc | Sicherstellungsspeichersystem. |
JPS59205605A (ja) * | 1983-05-07 | 1984-11-21 | Hitachi Ltd | シ−ケンス制御装置 |
US4648030A (en) * | 1983-09-22 | 1987-03-03 | Digital Equipment Corporation | Cache invalidation mechanism for multiprocessor systems |
JPH0827718B2 (ja) * | 1983-10-05 | 1996-03-21 | 株式会社日立製作所 | 情報処理装置 |
FI86484C (fi) * | 1984-04-27 | 1992-08-25 | Honeywell Inf Systems | Styrorgan i en digital datamaskin. |
US4637024A (en) * | 1984-11-02 | 1987-01-13 | International Business Machines Corporation | Redundant page identification for a catalogued memory |
US4791557A (en) * | 1985-07-31 | 1988-12-13 | Wang Laboratories, Inc. | Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system |
-
1987
- 1987-05-18 US US07/051,792 patent/US4991090A/en not_active Expired - Fee Related
-
1988
- 1988-04-18 JP JP63093613A patent/JPS63293639A/ja active Granted
- 1988-04-21 EP EP88106390A patent/EP0302999B1/de not_active Expired - Lifetime
- 1988-04-21 DE DE88106390T patent/DE3884101T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0302999B1 (de) | 1993-09-15 |
US4991090A (en) | 1991-02-05 |
JPS63293639A (ja) | 1988-11-30 |
EP0302999A3 (de) | 1991-11-06 |
DE3884101D1 (de) | 1993-10-21 |
EP0302999A2 (de) | 1989-02-15 |
JPH0552968B2 (de) | 1993-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3884101T2 (de) | Abholung von Operanden in Unordnung. | |
DE112010003492B4 (de) | Transaktionsspeichersystem mit wirksamerZwischenspeicherunterstützung | |
DE3687744T2 (de) | Aktualisierung der verzweigungsgeschichtstabelle in einem pipeline-verarbeitungssystem. | |
DE4410060B4 (de) | Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse | |
DE69434728T2 (de) | Synchronisationssystem und verfahren in einem datencachesystem mit aufgeteiltem pegel | |
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem | |
DE69023568T2 (de) | Cache-Speicheranordnung. | |
DE69904189T2 (de) | Konfigurierter prozessor zur abbildung von logischen registernummern auf physikalische registernummern unter verwendung von virtuellen registernummern | |
DE2846495C2 (de) | Zentraleinheit | |
DE68927172T2 (de) | Multiprozessorsystem mit cache-speichern | |
DE69620807T2 (de) | Datenverarbeitungsvorrichtung zum Vorziehen einer Datenstruktur aus dem Hauptspeicher oder seinem Cachespeicher | |
DE69702350T2 (de) | Verzweigungsvorhersageschema für cachespeicherzeile, das von sätzen eines set-assoziativen cachespeichers gemeinsam verwendet wird | |
DE69622663T2 (de) | Zweistufige vorausholungspufferstruktur und verfahren mit bypass | |
DE68928513T2 (de) | Verfahren zur Vorverarbeitung mehrerer Befehle | |
DE69131956T2 (de) | Verarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher | |
DE69802437T2 (de) | Feinkörniger übereinstimmungsmechanismus für optimistische parallelsteuerung mit verriegelungsgruppen | |
DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
DE69321698T2 (de) | Verfahren und System zur verbesserten Genauigkeit der Sprungvorhersage in einem Superskalarprozessor | |
EP0010198B1 (de) | Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher | |
DE69534148T2 (de) | Rechnersystem zur Ausführung von Verzweigungsbefehlen | |
DE68928727T2 (de) | Cachespeicheranlage zum Versorgen eines Festworts eines Befehlscodes mit variabler Länge und Befehlsabrufanlage | |
DE3851746T2 (de) | Sprungvorhersage. | |
DE3991231C2 (de) | Vektorprozessor und Verfahren zum Suchen einer Stichwortzeichenfolge in einer Textzeichenfolge | |
DE69130858T2 (de) | Überlappende Serienverarbeitung | |
DE3131341A1 (de) | "pufferspeicherorganisation" |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |