DE68924414T2 - Übersetzung virtueller Adressen. - Google Patents

Übersetzung virtueller Adressen.

Info

Publication number
DE68924414T2
DE68924414T2 DE68924414T DE68924414T DE68924414T2 DE 68924414 T2 DE68924414 T2 DE 68924414T2 DE 68924414 T DE68924414 T DE 68924414T DE 68924414 T DE68924414 T DE 68924414T DE 68924414 T2 DE68924414 T2 DE 68924414T2
Authority
DE
Germany
Prior art keywords
address
real
index
entries
signal
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
Application number
DE68924414T
Other languages
English (en)
Other versions
DE68924414D1 (de
Inventor
Peter James Osler
Fred Tze Tong
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE68924414D1 publication Critical patent/DE68924414D1/de
Publication of DE68924414T2 publication Critical patent/DE68924414T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • Diese Erfindung bezieht sich auf ein System und ein Verfahren zur Übersetzung virtueller Adressen.
  • Der Einsatz von Verweistabellen für die Umwandlung und Übersetzung von virtuellen Adressen in reale Adressen während der Datenverarbeitung ist allgemein bekannt; dabei speichern Tabelleneinträge zuvor übersetzte Adressen, so daß sie leicht verfügbar sind, wenn dieselbe virtuelle Adresse nochmals angefordert wird. Dieses Verfahren, das die Wahrscheinlichkeit ausnutzt, daß eine einmal verarbeitete Adressenanforderung wiederholt wird, verkürzt die für die Adressenverarbeitung erforderliche Zeit, indem die Notwendigkeit vermieden wird, bei jedem Auftreten der Anforderung den Hauptspeicher hinzuzuziehen.
  • Ein Beispiel für ein System des bisherigen Stands der Technik, das einen partitionierten Übersetzungs-Verweispuffer (Translation Lookaside Buffer - TLB) einsetzt, enthält die US-Patentanmeldung 4 367 297, übertragen auf J.A. Anderson et al., wobei im Falle einer geeigneten Übereinstimmung mit einer eingehenden Adresse eine im TLB gespeicherte Adresse für die Übersetzung verwendet wird, wodurch der zeitaufwendigere, herkömmliche Adreßübersetzungsvorgang mit mehreren Abholschritten wegfällt. Ein weiteres Beispiel für ein früheres System, das in diesem Falle eine Vor-Übersetzungstabelle statt eines partitionierten TLB einsetzt, um den Übersetzungsvorgang zu beschleunigen, wird in dem US-Patentschrift 4 170 039, übertragen auf T.J. Beacom et al., offengelegt. Aus diesen Beispielen und einer Untersuchung der zugehörigen Technologie geht hervor, daß die Beschleunigung des Übersetzungsvorgangs ein Problem der Technologie selbst ist, das auf zahlreiche verschiedene Arten behandelt wurde.
  • Es ist die Aufgabe dieser Erfindung, auf eine einfache, wirkungsvolle und verbesserte Weise eine Lösung für dieses Problem der Datenspeicher zu liefern, indem ein Abschätzungsmechanismus eingesetzt wird, der einen Algorithmus enthält, der eine Angabe der letzten Verwendung liefert, mit der sich eine hohe Wahrscheinlichkeit richtiger Abschätzungen erzielen läßt.
  • Die Lösung wird in Anspruch 1 für das System und in Anspruch 8 für das Verfahren beschrieben.
  • Diese Erfindung ist in einem System und Verfahren realisiert, das einen Abschätzungsmechanismus bietet, um die Geschwindigkeit der Übersetzung effektiver Adressen, die von einem Prozessor zu realen Adressen im Speicher erzeugt wurden, zu verbessern, wobei ein Satz Verweistabellen sowie logische Elemente gemeinsam mit einem Satz Gültigkeitsregister und einem MRU-Register verwendet werden, um während des ersten Zyklus einer zwei Zyklen langen Operation einen geeigneten Index der realen Rahmen aus einer der Tabellen zur Ausgabe in der realen Adresse auszuwählen. Genauer enthält jede Tabelle des Satzes eine Liste von Adreßeinträgen, wobei die Adreßeinträge in Form von Sätzen über die Tabellen verteilt sind und jeder Eintrag einen Index der virtuellen Seiten (Virtual Page Index - VPI), eine Segmentkennung (Segment ID - SID) und einen Index der realen Rahmen (Real Frame Index - RFI) enthält. Jedes der Gültigkeitsregister enthält Bits, deren Werte jeweils die Gültigkeit jedes Eintrags in einer entsprechenden Tabelle des Satzes angeben, und das MRU-Register enthält Bits, die jedem Satz Adreßeinträge entsprechen, wobei diese Bits Werte haben, die jeweils diejenige Tabelle in jedem Satz angeben, die den zuletzt verwendeten (Most Recently Used - MRU) Eintrag des Satzes enthalten. Die Bits in den Gültigkeitsregistern und im MRU-Register liefern ein Eingangssignal für den Abschätzungsmechanismus, das die Wahrscheinlichkeit einer richtigen Abschätzung bei der Ausgabe eines RFI in die reale Adresse während des ersten Zyklus erheblich vergrößert.
  • Bei der Anwendung wird während des ersten Zyklus ein Abschnitt der Bits der effektiven Adresse (EA), die niederwertigen Bits, auf die Tabellen indiziert, um bei einer Übereinstimmung für einen Satz Adreßeinträge den Index der realen Adressen aus jedem Eintrag in dem übereinstimmenden Satz auszulesen. Unter Verwendung derselben niederwertigen Bits der effektiven Adresse werden die Gültigkeitsregister und das MRU-Register überprüft, um die Werte der darin befindlichen, dem übereinstimmenden Satz Adreßeinträge entsprechenden Bits zu ermitteln. Anschließend wird ein "abgeschätzter" Index der realen Rahmen aus den RFIs in dem übereinstimmenden Satz Adreßeinträge ausgewählt, der für die Integration in eine reale Adresse ausgegeben werden soll, und zwar als Reaktion auf 1) die Ermittlung eines gültigen Bits im jeweiligen Gültigkeitsregister für den gewählten Adreßeintrag, der den "abgeschätzter" RFI enthält, und 2) einen MRU-Anzeige- Bitwert im MRU-Register, der diejenige Tabelle in dem übereinstimmenden Satz angibt, in der der "abgeschätzte" RFI enthalten ist. Die höherwertigen Bits der effektiven Adresse werden anschließend während des zweiten Zyklus verwendet, um die Abschätzung des ersten Zyklus zu überprüfen, indem sie auf SID-Register indiziert und mit dem Satz Tabelleneinträge verglichen werden, der im ersten Zyklus als den geeigneten Index der realen Rahmen enthaltend ausgewählt worden war ("abgeschätzter" RFI). Falls die Logik beim Vergleich von 1) dem Tabelleneintrag, der den "abgeschätzten" RFI enthält, der während des ersten Zyklus ausgegeben wurde, mit 2) den höherwertigen Vergleichsbits des zweiten Zyklus anzeigt, daß der gewählte Index der realen Seiten ungeeignet war, wird nach dem zweiten Zyklus ein Signal gesendet, um die Ausgabe der realen Adresse zu entwerten, die jenen "abgeschätzten" RFI enthalten hat. Angesichts der Tatsache, daß aufgrund der Prüfungen der Gültigkeitsregister und des MRU-Registers die große Mehrzahl der Abschätzungen richtig ist, ergibt sich eine deutliche Leistungssteigerung bei der Übersetzung virtueller Adressen.
  • Fig. 1 ist eine schematische Darstellung des Datenflusses in einer bevorzugten Konfiguration aus Funktionselementen für den Einsatz dieser Erfindung.
  • Fig. 2 ist ein Protokoll-Zeitdiagramm für den Datenfluß von Fig. 1.
  • Fig. 3 zeigt einen endlichen Automaten, der den Einsatz dieser Erfindung illustriert.
  • Ein Diagramm, das den Datenfluß zwischen den Funktionselementen während des Einsatzes dieser Erfindung illustriert, ist in Fig. 1 dargestellt. Eine bevorzugte Ausführungsform und die zugehörigen Funktionen der virtuellen Übersetzung, die relevant sind, um die Erfindung zu ermöglichen, werden hier ausführlich beschrieben; man wird jedoch erkennen können, daß die Erfindung auf andere grundsätzliche Übersetzungsstrategien mit anderen Konfigurationen angewandt werden kann. Kurz gefaßt gehören zu den Elementen, aus denen das System allgemein besteht:
  • o Übersetzungs-Verweispuffer (TLB), 2-Wege-assoziativ, 16 Kongruenzklassen, mit einem Satz Tabellen (10), z. B. TLB (0), TLB (1), die jeweils einen Satz Adreßeinträge enthalten:
  • - Index der virtuellen Seiten (VPI) : 12 Bits;
  • - Segmentkennung (SID) : 15 Bits;
  • - Index der realen Rahmen (RFI) : 15 Bits;
  • o 16 Segmentregister (20) mit SID-Einträgen, die jeweils 15 Bits enthalten;
  • o Ein Gültigkeitsregister (30, 31) für jede Tabelle TLB (0), TLB (1), das jeweils 16 Bits enthält.
  • o Register für den zuletzt verwendeten Eintrag (MRU) (40), das 16 Bits enthält;
  • o Steuerlogik (50, 51) für die Auswahl eines "abgeschätzten" RFI;
  • o Steuerlogik (60a, 60b, 61a, 61b, 70a, 70b, 71a, 71b, 80, 90) zur Überprüfung der gewählten "Abgeschätzung".
  • Die am Datenfluß beteiligten wesentlichen Signale sind:
  • o EA (Effektive Address - Effektive Adresse) : umfaßt 16 höherwertige Bits (HEA) und 16 niederwertige Bits (LEA), von denen jeweils die ersten vier (HEA-h, LEA-h) zur Indizierung verwendet werden, wogegen die letzten zwölf HEA-Bits (HEA-l) zur Überprüfung der Abschätzung verwendet und die letzten zwölf LEA-Bits (LEA-1) als niederwertige Bits der ausgegebenen realen Adresse (Real Address - RA) angefügt werden.
  • o VA (Virtual Address - Virtuelle Adresse) : umfaßt 15 SID- Bits eines Segmentregisters, die 12 Bits von HEA-l, die 4 Bits von LEA-h und die 12 Bits von LEA-l.
  • o RA (Real Address - Reale Adresse) : umfaßt 15 höherwertige Bits, die einen aus einer der Tabellen ausgewählten RFI angeben, sowie 12 niederwertige Bits.
  • o SCHAETZUNG (0) : dient zur Steuerung des Multiplexens zum Absenden von RFI (0).
  • o SCHAETZUNG (1) : dient zur Steuerung des Multiplexens zum Absenden von RFI (1).
  • o TLB (0) TREFFER : eine aus TLB (0) abgeleitete Vergleichsanzeige.
  • o TLB (1) TREFFER : eine aus TLB (1) abgeleitete Vergleichsanzeige.
  • o TLB-FEHLSCHLAG : zeigt an, daß in den TLB-Einträgen keine Übereinstimmung gefunden wurde.
  • o SCHAETZUNG FALSCH : zeigt an, daß die abgeschätzte Adresse nicht mit der Vergleichsadresse übereinstimmt.
  • Genauer ist ein bevorzugtes System für die Durchführung der Übersetzungs- und Abschätzoperation dieser Erfindung ausführlich in Fig. 1 dargestellt und wird in bezug auf diese beschrieben. Das System umfaßt erstens einen Übersetzungs-Verweispuffer, TLB, der einen Satz Verweistabellen 10 enthält. Zur Vereinfachung der Beschreibung sind in der Figur zwei solche Tabellen, TLB (0) und TLB (1), dargestellt, die jeweils 2-Wege-assoziativ sind und 16 Kongruenzklassen aufweisen; aus der folgenden Beschreibung ist aber leicht ersichtlich, daß mit entsprechenden Änderungen an den zugehörigen Komponenten ohne weiteres mehr Tabellen in den Satz eingefügt werden können. Jede Tabelle, TLB (0) und TLB (1), enthält eine Liste von Adreßeinträgen (praktischerweise 16) mit nebeneinanderliegenden Einträgen 11, die parallel Zusammenwirken und über die Tabellen hinweg Sätze bilden. Jeder Adreßeintrag 11 besteht aus einem 12 Bit langen Index der virtueilen Seiten (VPI), einer 15 Bit langen Segmentkennung (SID) und einem 15 Bit langen Index der realen Rahmen (RFI). Der Fachmann wird erkennen, daß diese Konfiguration gewählt wurde, um eine bequeme Anpassung an Rechnerarchitekturen wie IBM 370 u. ä. zu ermöglichen, und der Fachmann wird mit dem Vorgang vertraut sein, entsprechende Tabelleneinträge bereitzustellen, so daß hier keine diesbezügliche Erläuterung gegeben wird.
  • Zusätzlich zum Übersetzungs-Verweispuffer, TLB, enthält das System eine Gruppe von Segmentregistern 20 (praktischerweise 16 in Übereinstimmung mit der Zahl der Adreßeinträge in den TLB-Tabellenlisten) mit jeweils 15 Bits, zwei Gültigkeltsregister 30 und 31 mit jeweils 16 Bits und ein Register für die zuletzt verwendete Adresse (MRU) 40 mit 16 Bits. Die Segmentregister 20 enthalten SID-Einträge 21 für den Vergleich mit den SIDs in den Einträgen 11 in den Verweistabellen TLB (0) und TLB (1), wie im folgenden ausführlicher erläutert wird. Die Gültigkeitsregister 30 und 31 enthalten Bits, die jeweils die Gültigkeit der Adreßeinträge 11 in TLB (0) und TLB (1) angeben, und das MRU-Register 40 enthält Bits für jeden Satz paralleler Adreßeinträge in den Tabellen, die Werte haben, die die konkrete Tabelle 10 im Satz angeben, die den zuletzt verwendeten Eintrag aus dem Satz enthält. Die Register 30, 31 und 40 haben jeweils zugehörige Auswahlmakros 30a, 31a und 40a, die Einträge enthalten, die sich auf die Einträge in den Tabellen 10 beziehen.
  • Weiter ist eine Kombination folgender logischer Elemente vorhanden: Komparatoren 60a, 60b, 61a und 61b; UND-Gatter 70a und 70b, 71a und 71b, 50 und 51 sowie 80; und ODER-Gatter 90 sowie eine Multiplex-Ausgabeeinheit 101, die bei der Erzeugung des Abschätzungsmechanismus und des RFI verwendet wird, der in die reale Adresse integriert werden soll, die letztendlich von der Einheit 102 an das System ausgegeben wird, wie im folgenden erläutert wird.
  • Die Anwendung des Abschätzungsmechanismus und die letztendliche Ausgabe der realen Adresse (RA) durch das System erfolgt auf die folgende Weise. Zunächst werden die 32 Bits einer zu übersetzenden effektiven Adresse (EA) von einem digitalen Prozessor P in zwei aufeinanderfolgenden Zyklen an eine Systemsteuereinheit (System Control Unit - SCU) gesendet; das heißt, in jedem Zyklus wird die Hälfte der Bits oder 16 Bits gesendet. Entsprechend der Erfindung wird die untere Hälfte der effektiven Adresse LEA (Bits 16:31) zuerst gesendet, und die obere Hälfte HEA (Bits 0:15) wird im nächsten Zyklus gesendet. Die ersten vier Bits LEA-h der unteren Hälfte der EA (16:19) werden zur Indizierung auf den TLB verwendet. Falls eine Übereinstimmung mit einem in den Tabellen aufgelisteten Satz Adreßeinträge 11 gefunden wird, werden die Indizes der realen Rahmen (RFIs) aus den entsprechenden parallelen Einträgen (zwei im Beispielfall) aus TLB (0) und TLB (1) gelesen und direkt an die Multiplex-Ausgabeeinheit 101 gesendet. Der von der Einheit 101 ausgegebene RFI wird gemeinsam mit dem Rest der niederwertigen Bits LEA-l (20:31) im Anschluß an den ersten Zyklus in die von der Einheit 102 gesendete reale Adresse RA integriert. Da jedoch nur ein RFI korrekt ist und Vergleiche zwischen den höherwertigen Bits (HEA) und den TLB-Einträgen erforderlich sind, um ermitteln, welches der richtige, zu verwendende RFI ist, und da diese Informationen erst beim nächsten Zyklus verfügbar sind, wäre es eigentlich erforderlich, mit der Ausgabe der korrekten Adresse bis zum Abschluß des zweiten Zyklus zu warten. Entsprechend der Erfindung kann zur Beschleunigung des Vorgangs eine unmittelbare Entscheidung oder Abschätzung vorgenommen werden, um einen RFI zu wählen, der nach dem ersten Zyklus in die reale Adresse RA ausgegeben werden soll, wobei diese Auswahl nach dem zweiten Zyklus überprüft werden und, falls die Auswahl inkorrekt war, die reale Adresse entwertet werden kann. Um eine lohnende Beschleunigung zu erzielen, wird die Abschätzung unter Verwendung des Systems von Fig. 1 auf der Grundlage des folgenden Algorithmus vorgenommen:
  • If MRU-Bit = 0 AND Gültigkeits-Bit für TLB (0) = 1, RFI (0) verwenden;
  • If MRU-Bit = 1 AND Gültigkeits-Bit für TLB (1) = 1, RFI (1) verwenden.
  • Es wurde ermittelt, daß dieser Algorithmus einen recht hohen Anteil korrekter Abschätzungen (über 95 %) aufweist, so daß durch seine Anwendung bei fast jedem (realen) Speicherzugriff ein Zyklus eingespart werden kann. Somit trägt dieser Algorithmus oder Abschätzungsmechanismus deutlich zur Geschwindigkeit und Effizienz der Systemleistung bei.
  • Der Abschätzungsmechanismus der Erfindung wird im System auf die folgende Weise implementiert. Wie in Figur 1 zu erkennen, werden zusätzlich zur Indizierung auf den TLB die ersten vier Bits der unteren Hälfte der EA (16:19) auch jeweils als Eingänge für die Auswahl-Makros 30a, 31a und 40a verwendet, die wiederum operativ mit den Gültigkeitsregistern 30 und 31 und dem MRU-Register 40 verbunden sind. Die Makros enthalten Einträge, die sich auf die Einträge der Tabellen 10 beziehen, und liefern entsprechende Ausgangssignale anhand von Vergleichen der EA-Bits (LEA-h) mit den Bits der Gültigkeitsregister und den Bits des MRU-Registers. Die Ein-Bit-Ausgangssignale der Makros werden dem Algorithmus entsprechend zu den UND-Gattern 50 und 51 gesendet. Die Makros 30a und 31a senden jeweils Eingangssignale an die Gatter 50 und 51, Makro 40a sendet sein Ausgangssignal an beide Gatter, wobei das Eingangssignal für Gatter 50 invertiert wird. Die UND- Gatter 50 und 51 erzeugen entsprechende Abschätzungs-Ausgangssignale SCHAETZUNG (0) und SCHAETZUNG (1) als Eingangssignale für die Multiplex-Ausgabeeinheit 101 sowie für die UND-Gatter 71b bzw. 70b.
  • Man wird erkennen, daß jeweils eines der UND-Gatter 50 und 51 ein Abschätzungs-Ausgangssignal SCHAETZUNG als Eingangssignal für die Multiplex-Ausgabeeinheit 101 erzeugt. In Übereinstimmung mit dem oben dargelegten Algorithmus gilt: Wenn der MRU-Ausgang 1 ist und das Gültigkeitsregister 31 und das Makro 31a für TLB (1) ein Ausgangssignal 1 liefern, liefert das Gatter 51 ein Ausgangssignal an die Multiplex-Einheit 101, das veranlaßt, daß das Signal RFI (1) ausgegeben wird, um in einer geeigneten Ausgabeeinheit 102 gemeinsam mit den Bits LEA-l in die ausgegebene reale Adresse RA integriert zu werden. Umgekehrt gilt: Wenn der MRU-Ausgang 0 ist und das Gültigkeitsregister 30 und das Makro 30a für TLB (0) ein Ausgangssignal 1 haben, liefert das Gatter 50 ein Ausgangssignal an die Multiplex-Einheit 101, das veranlaßt, daß das Signal RFI (0) ausgegeben wird, um in einer geeigneten Ausgabeeinheit 102 gemeinsam mit den Bits LEA-l in die ausgegebene reale Adresse RA integriert zu werden. Somit wird im Anschluß an den ersten Eingabezyklus vom Prozessor P eine reale Adresse (RA) ausgegeben, die einen RFI-Abschnitt enthält, der eine gute Abschätzung zwischen oder unter den verschiedenen RFIs aus dem Satz Einträge aus den TLB-Tabellen bildet, für die eine Übereinstimmung gefunden wurde. Ob diese Abschätzung korrekt ist oder nicht, wird auf die Informationen hin geprüft, die während des zweiten Zyklus empfangen werden.
  • In dem zweiten Zyklus werden die ersten 4 Bits (HEA-h) der höherwertigen Bits der EA zur Indizierung auf das Segmentregister 20 verwendet, woraufhin eine Übereinstimmung ein entsprechendes 15 Bit langes Ausgangssignal für die SID-Komparatoren 60b und 61b zum Vergleich mit den SID-Ausgangssignalen von den Tabellen TLB (0) und TLB (1) erzeugt, wobei diese Ausgangssignale Ergebnisse der Übereinstimmung zwischen den LEA-h-Bits und einem darin befindlichen Eintrag während des ersten Zyklus waren. Die verbleibenden 12 höherwertigen Bits (HEA-l) werden direkt in die VPI-Komparatoren 60a und 61a eingegeben, um mit den aus den Tabellen stammenden VPI-Ausgangssignalen in den gleichen Eintragssätzen wie die übereinstimmenden SID-Ausgangssignale verglichen zu werden. Die Komparatoren 60a und 60b liefern Eingangssignale für das UND-Gatter 70a, und die Komparatoren 61a und 61b liefern Eingangssignale für das UND-Gatter 71a. Falls die Ausgangssignale von den Komparatoren 60a und 60b beide positiv sind, gibt das UND-Gatter 70a ein Treffersignal TLB (0) TREFFER an das UND-Gatter 70b aus, und wenn die Ausgangssignale von den Komparatoren 61a und 61b beide positiv sind, gibt das UND- Gatter 71a ein Treffersignal TLB (1) TREFFER an das UND-Gatter 71b aus. Falls an keinem der Ausgänge der UND-Gatter 70a und 71a ein positives Signal erscheint, gibt das UND-Gatter 80 ein Fehlschlagsignal (TLB-FEHLSCHLAG) aus, das anzeigt, daß die Indizierungsbits LEA-h während des ersten Zyklus keine Übereinstimmung in den Tabelleneinträgen gefunden haben. Die Adreßanforderung muß daher zur Übersetzung an den Hauptspeicher gesendet werden.
  • Die Ausgangssignale der UND-Gatter 70a und 71a werden gemeinsam mit den SCHAETZUNG-Signalen von den UND-Gattern 51 bzw. 50 an die UND-Gatter 70b und 71b angelegt. Falls ein positives Signal von Gatter 70a, das ein TLB (0) TREFFER anzeigt, zum gleichen Zeitpunkt an Gatter 70b angelegt wird, zu dem ein positives Signal SCHAETZUNG (1) angelegt wird, erzeugt Gatter 70b ein Ausgangssignal für das ODER-Gatter 90, das dann ein Anzeigesignal für eine falsche Abschätzung während des ersten Zyklus liefert. Das entstehende Signal SCHÄTZUNG_FALSCH, das angibt, daß die zuvor abgeschätzte Adresse nicht mit der verglichenen Adresse übereinstimmt, wird anschließend verwendet, um die von der Einheit 102, die den inkorrekten RFI enthält, ausgegebene RA zu entwerten. In ähnlicher Weise gilt: Falls ein positives Signal von Gatter 71a, das ein TLB (1) TREFFER anzeigt, zum gleichen Zeitpunkt an Gatter 71b angelegt wird, zu dem ein positives Signal SCHAETZUNG (0) angelegt wird, erzeugt Gatter 71b ein Ausgangssignal für das ODER-Gatter 90, das ebenfalls ein Anzeigesignal für eine falsche Abschätzung während des ersten Zyklus liefert. Das entstehende Signal SCHÄTZUNG_FALSCH, das anzeigt, daß die zuvor abgeschätzte Adresse nicht mit der verglichenen Adresse übereinstimmt, wird anschließend verwendet, um die von der Einheit 102, die den inkorrekten RFI enthält, ausgegebene RA zu entwerten. Die Entwertung kann darin bestehen, daß ein 'Datenfehler'-Signal gesendet wird, um die vorherige Anforderung zu annullieren, und dann die richtige erneut gesendet wird, oder darin, daß die Daten aus der falschen Adresse auf Anforderung entwertet werden.
  • Um zu gewährleisten, daß dieses Schema in allen Fällen wirksam ist, sollten vorzugsweise die folgenden Regeln beachtet werden:
  • o Der Algorithmus wird nur für die Operationen Eingabe holen, Verzweigen, Laden und Ein-/Ausgabe lesen angewandt, aber nicht für eine Speicheroperation.
  • o Im Falle einer falschen Abschätzung wird ein 'Datenfehler'- Signal gesendet, um die vorausgegangene Anforderung zu annullieren, und die richtige wird erneut gesendet.
  • o Es wird keine Abschätzung vorgenommen, wenn ein Ausnahmefehler, z. B. eine Speicherschutz-Fehler, festgestellt wird.
  • In Fig. 2 ist ein Protokoll-Zeitdiagramm für ein "Abschätz"-Ereignis dargestellt, wobei die Abkürzungen bedeuten:
  • o ABUS : Adreßbus; sendet zunächst die niederwertigen Bits der effektiven Adresse und im nächsten Zyklus die höherwertigen Bits der effektiven Adresse;
  • o SCHAETZUNG : ein Signal, um den endlichen Automaten für die Abschätzung auszulösen;
  • o ANSTEHEND : ein Signal, um zu bestätigen, daß der Prozessor die effektive Adresse nicht annullieren oder ändern wird;
  • o ANFORDERN : sendet eine Datenanforderung an den Speicher;
  • o ACK : Bestätigung von der Speichersteuerung, daß die Anforderung empfangen wurde;
  • o OP-FERTIG : Bestätigung, daß die Anforderung verarbeitet wurde.
  • Zur Abwicklung des Protokolls wird ein endlicher Automat (Finite-State Machine - FSM) implementiert. Dieser FSM ist in die virtuelle Steuerung integriert. Zur Vereinfachung ist der Automat nur in drei Zuständen dargestellt, wie in Fig. 3 gezeigt;
  • o TIDS : Translation Idle State (Übersetzung - Leerlaufzustand)
  • o TGUS : Translation Guess State (Übersetzung - Abschätzungszustand), wird durch ein Signal SCHAETZUNG ausgelöst und bleibt bestehen, entweder während auf eine Bestätigung von der Speichersteuerung gewartet wird oder während Mehrfach-Abschätzungen erfolgen
  • o TGCS : Translation Guess Correction State (Übersetzung - Abschätzungs-Berichtigungszustand), bleibt bis zur Berichtigung der letzten falschen Abschätzung bestehen.
  • Außerdem sendet ein Prozessor aus Gründen der Leistungsfähigkeit in der Regel die zu übersetzende Adresse in einem ersten Zyklus und bestätigt die Anforderung anschließend einen Zyklus später. Dies ist in erster Linie durch den internen pipelineartigen, vorwärts orientierten Aufbau des Prozessors bedingt. Er behält sich das Recht vor, die Adresse zu ändern, bevor er sie bestätigt, falls er auf eine Störung der Pipeline wie z. B. Verzweigungen stößt. Daher ist in den endlichen Automaten (FSM) die in Fig. 3 dargestellte Logik integriert, um mehrere aufeinanderfolgende Abschätzungen verarbeiten zu können.
  • Die Erfindung ist im Hinblick auf die Anwendung in einem System beschrieben worden, in dem die effektive Adresse durch Zeit-Multiplexen gebildet wird. Das gleiche Schema kann jedoch auf alle virtuellen Systeme mit Segmentregistern angewandt werden, da es den Beginn einer Anforderung an die Speichersteuerung zuläßt, während das Segmentregister eingelesen und anschließend verglichen wird. Durch einen Zeitmultiplex-Bus kann der Nutzwert weiter vergrößert werden.
  • Folglich wird man erkennen, daß die Erfindung ein System zur Verfügung stellt, das einen Abschätzungsmechanismus enthält, um die Geschwindigkeit der Übersetzung von effektiven Adressen zu erhöhen, die von einem Prozessor für reale Adressen im Speicher erzeugt wurden, wobei ein Satz Gültigkeitsregister und ein MRU- Register eingesetzt werden, um bei der Auswahl eines geeigneten Index der realen Rahmen (RFI) aus einer Tabelle aus einem Satz von Verweistabellen abzuschätzen, welcher RFI in der übersetzten realen Adresse im ersten Zyklus einer zwei Zyklen langen Operation ausgegeben wird. Ein Abschnitt der niederwertigen Bits der effektiven Adresse wird während des ersten Zyklus gesendet, um die Tabellen zu indizieren, und die höherwertigen Bits werden während des zweiten Zyklus für einen Vergleich mit dem Satz Tabelleneinträge verwendet, der im ersten Zyklus als den entsprechenden RFI enthaltend ausgewählt wurde. Wenn die Logik beim Vergleich von 1) dem Tabelleneintrag, der den während des ersten Zyklus ausgegebenen Index der realen Rahmen (RFI) enthält, mit 2) den höherwertigen Vergleichsbits des zweiten Zyklus anzeigt, daß der gewählte RFI nicht geeignet war, wird nach dem zweiten Zyklus ein Signal gesendet, das die ausgegebene reale Adresse entwertet, die jenen RFI enthält.

Claims (13)

1. System zur Übersetzung virtueller Adressen in reale Adressen als Reaktion auf das Ausgangssignal eines Prozessormittels, das ein mehrbittiges Signal zur Angabe einer effektiven Adresse bereitstellt, wobei das Prozessormittel die Bits der effektiven Adresse in zwei aufeinanderfolgenden Zyklen liefert, nämlich die niederwertigen Bits während des ersten Zyklus und die höherwertigen Bits während des zweiten Zyklus, umfassend
einen Satz Verweistabellen (10), wobei jede Tabelle eine Liste von Adreßeinträgen enthält und die Adreßeinträge satzweise in der Tabelle angeordnet sind und jeder Eintrag aus einem Index der virtuellen Seiten (VPI) und einem Index der realen Rahmen (RFI) besteht;
einen Satz Gültigkeitsregister (30, 31), wobei jedes Gültigkeitsregister Bits enthält, deren Werte jeweils die Gültigkeit jedes Eintrags in einer entsprechenden Tabelle des Tabellensatzes angeben;
ein MRU-Register (40), das Bits enthält, die jedem Satz Adreßeinträge entsprechen, wobei die Bits Werte haben, die jeweils die Tabelle in jedem Satz angeben, die den zuletzt verwendeten Eintrag des Satzes enthält;
ein Mittel zur Indizierung eines Abschnitts (LEA-h) der niederwertigen Bits der effektiven Adresse auf die Tabellen, um als Reaktion auf eine Übereinstimmung für einen Satz Adreßeinträge den Index der realen Rahmen aus jedem Eintrag in dem übereinstimmenden Satz auszulesen;
ein Mittel, das den Abschnitt (LEA-h) der niederwertigen Bits der effektiven Adresse verwendet, um die Gültigkeitsregister (30, 31) und das MRU-Register (40) zu überprüfen, um die Werte der darin enthaltenen Bits zu ermitteln, die dem übereinstimmenden Satz Adreßeinträge entsprechen; und
Abschätzmittel (50, 51) zur Erzeugung eines Signals, um den Index der realen Rahmen unter den aus den übereinstimmenden Adreßeintragsätzen ausgelesenen Indizes auszuwählen, um ihn für die Einfügung in eine reale Adresse aus zugeben, wobei das Auswahlsignal erzeugt wird als Reaktion auf 1) die Ermittlung eines gültigen Bits im betreffenden Gültigkeitsregister für den gewählten Adreßeintrag, der den Index der realen Rahmen enthält, und 2) einen MRU-Anzeigebitwert in dem MRU-Register (40), der diejenige Tabelle in dem übereinstimmenden Satz angibt, in dem der Index der realen Rahmen enthalten ist.
2. System, wie in Anspruch 1 dargelegt, gekennzeichnet
durch ein Multiplexmittel (101), das auf Auswahlsignale von den Abschätzmitteln reagiert, um einen der Indizes realer Rahmen aus dem übereinstimmenden Satz als Bestandteil einer ausgegebenen realen Adresse aus zugeben.
3. System, wie in Anspruch 2 dargelegt, gekennzeichnet
durch Mittel zum Vergleich der höherwertigen Bits mit jedem der Tabelleneinträge in dem übereinstimmenden Satz;
durch Mittel zum Erzeugen eines Treffersignals (70a, 71a), wenn die höherwertigen Bits einem der Tabelleneinträge entsprechen; und
durch ein Mittel (80) zum Erzeugen eines Fehlschlagsignals, wenn die höherwertigen Bits keinem der Tabelleneinträge entsprechen.
4. System, wie in Anspruch 1, 2 oder 3 dargelegt, gekennzeichnet
durch Mittel (70b, 71b), die auf Auswahlsignale von den Abschätzmitteln reagieren, um einen der Indizes realer Rahmen aus dem übereinstimmenden Satz zur Einfügung in eine nach dem ersten Zyklus ausgegebene reale Adresse auszugeben; und
durch ein Mittel (90), das auf die mangelnde Übereinstimmung zwischen dem gewählten Index der realen Rahmen und einem Treffersignal für den Eintrag, in dem der Index enthalten ist, reagiert, um ein Signal nach dem zweiten Zyklus zu erzeugen, um die Ausgabe der realen Adresse, die den Index der realen Rahmen enthält, zu entwerten.
5. System, wie in Anspruch 4 dargelegt, dadurch gekennzeichnet,
daß das Mittel, das auf die mangelnde Übereinstimmung zwischen dem gewählten Index der realen Rahmen und einem Treffersignal für den Eintrag, in dem der Index enthalten ist, reagiert, Mittel enthält, die auf ein Signal von den Abschätzmitteln reagieren, um ein Signal nach dem zweiten Zyklus zu erzeugen, um die Ausgabe der realen Adresse, die den Index der realen Rahmen enthält, zu entwerten.
6. System, wie in Anspruch 3 oder 4 dargelegt, gekennzeichnet
durch Mittel (101, 102), die auf Auswahlsignale von den Abschätzmitteln reagieren, um einen der Indizes realer Rahmen aus dem übereinstimmenden Satz zur Einfügung in eine nach dem ersten Zyklus ausgegebene reale Adresse auszugeben; und
durch Mittel, die auf ein Fehlschlagsignal (TLB - MISS) reagieren, um ein Signal nach dem zweiten Zyklus zu erzeugen, um die Ausgabe der realen Adresse, die den einen Index der realen Rahmen enthält, zu entwerten.
7. System, wie in Anspruch 3, 4 oder 5 dargelegt, dadurch gekennzeichnet,
daß die Tabelleneinträge den Index der virtuellen Seiten (VPI), den Index der realen Rahmen (RFI) und Segment ID (SID) enthalten und
daß das Mittel zum Vergleichen einen Abschnitt der höherwertigen Bits für einen Vergleich mit den Einträgen (SID) sowie den Rest der höherwertigen Bits für einen Vergleich mit den VPI-Einträgen in dem übereinstimmenden Satz Tabelleneinträge zur Verfügung stellt.
8. Verfahren zur Übersetzung virtueller Adressen in einem System, wie in einem der Ansprüche 1 bis 7 dargelegt, die folgenden Schritte umfassend
Bereitstellen der Bits der effektiven Adresse in zwei aufeinanderfolgenden Zyklen, die niederwertigen Bits während des ersten Zyklus und die höherwertigen Bits während des zweiten Zyklus;
Bereitstellen eines Satzes Gültigkeitsregister (30, 31), die jeweils Bits enthalten, deren Werte jeweils die Gültigkeit jedes Adreßeintrags in einer entsprechenden Tabelle in dem Puffer angeben;
Bereitstellen eines MRU-Registers (40), das für jeden Satz Adreßeinträge in den Tabellen Bits enthält, die jeweils Werte haben, die die Tabelle in dem Satz angeben, die den zuletzt verwendeten Eintrag des Satzes enthält;
Bereitstellen eines mehrbittigen Signals, das eine effektive Adresse angibt;
Indizieren eines Abschnitts (LEA-h) der niederwertigen Bits der effektiven Adresse auf die Tabellen und Auslesen (als Reaktion auf eine Übereinstimmung für einen Satz Adreßeinträge) eines Index der realen Rahmen für jeden Eintrag in dem übereinstimmenden Satz;
Verwenden des Abschnitts (LEA-h) der niederwertigen Bits der effektiven Adresse zum Prüfen der Gültigkeitsregister (30, 31) und des MKU-Registers (40), um den Wert der darin enthaltenen Bits zu ermitteln, die dem übereinstimmenden Satz Adreßeinträge entsprechen; und
Erzeugen eines Abschätzsignals, um den Index der realen Adressen des übereinstimmenden Satzes für die Ausgabe zur Einfügung in eine reale Adresse auszuwählen, wobei die Auswahl als Reaktion darauf erfolgt, ob ein gültiges Bit für den Adreßeintrag, der den gewählten Index der realen Rahmen enthält, sowie ein MRU-Anzeigebit für die Tabelle, in der der Adreßeintrag enthalten ist, ermittelt wurde.
9. Verfahren, wie in Anspruch 8 dargelegt, gekennzeichnet durch die folgenden Schritte:
Vergleichen der höherwertigen Bits mit jedem der Tabelleneinträge in dem Satz Adreßeinträge, für den eine Übereinstimmung besteht;
Erzeugen eines Treffersignals, wenn die höherwertigen Bits einem der Tabelleneinträge entsprechen; und
Erzeugen eines Fehlschlagsignals, wenn keiner der Tabelleneinträge den höherwertigen Bits entspricht.
10. Verfahren, wie in Anspruch 9 dargelegt, gekennzeichnet durch die folgenden Schritte:
Ausgeben des ausgewählten Index der realen Rahmen in eine reale Adresse nach dem ersten Zyklus; und als Reaktion auf die mangelnde Übereinstimmung zwischen dem Abschätzsignal für den gewählten Index der realen Rahmen und einem Treffersignal für den Eintrag, der den Index enthält, Erzeugen eines Signals nach dem zweiten Zyklus, um die Ausgabe der realen Adresse einschließlich des ausgewählten Index der realen Rahmen zu entwerten.
11. Verfahren, wie in Anspruch 8 bis 10 dargelegt, dadurch gekennzeichnet,
daß die mangelnde Übereinstimmung zwischen dem Abschätzsignal für den gewählten Index der realen Rahmen und einem Treffersignal für den Eintrag durch eine UND-Verknüpfung zwischen dem Abschätzsignal und dem Treffersignal ermittelt wird,
daß der gewählte Index der realen Rahmen nach dem ersten Zyklus in eine reale Adresse ausgegeben wird; und weiter den Schritt umfassend, daß ein Signal nach dem zweiten Zyklus als Reaktion auf ein Fehlschlagsignal erzeugt wird, um die Ausgabe der realen Adresse, die den gewählten Index der realen Rahmen enthält, zu entwerten;
daß der Schritt, den restlichen Abschnitt der niederwertigen Bits bereitzustellen, nicht angewandt wird, um die Tabellen für die Ausgabe mit dem gewählten Index der realen Adressen zu indizieren, um die reale Adresse zu bilden.
12. Verfahren, wie in Anspruch 8 dargelegt, dadurch gekennzeichnet,
daß die Tabelleneinträge einen Kennungssegmenteintrag (SID) umfassen; und weiter den Schritt umfassend, daß ein Anschnitt der höherwertigen Bits für den Vergleich mit den Einträgen (SID) und der Rest der höherwertigen Bits für den Vergleich mit den Einträgen des Index der virtuellen Seiten in dem übereinstimmenden Satz Adreßeinträge bereitgestellt wird.
13. Verfahren, wie in Anspruch 8 dargelegt, dadurch gekennzeichnet,
daß der Satz Verweistabellen zwei Tabellen (TLB (0) und TLB (1)) umfaßt,
daß der Satz Gültigkeitsregister zwei Register umfaßt, die gültige Bits enthalten, die jeweils die Gültigkeit jedes Eintrags in den entsprechenden Tabellen enthalten, wobei das MRU-Register Bits enthält, die jeweils die Tabelle mit dem zuletzt verwendeten Eintrag angeben, und
daß die jeweiligen Indizes realer Rahmen (RFI (0) und RFI (1)) anhand der folgenden Beziehung für die Ausgabe ausgewählt werden:
Wenn das MRU-Bit = 0 UND das Gültigkeitsbit für TLB (0) = 1 ist,
RFI (0) verwenden;
wenn das MRU-Bit = 1 UND das Gültigkeitsbit für TLB (1) = 1 ist,
RFI (1) verwenden.
DE68924414T 1989-02-15 1989-12-02 Übersetzung virtueller Adressen. Expired - Fee Related DE68924414T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/311,666 US5099415A (en) 1989-02-15 1989-02-15 Guess mechanism for virtual address translation

Publications (2)

Publication Number Publication Date
DE68924414D1 DE68924414D1 (de) 1995-11-02
DE68924414T2 true DE68924414T2 (de) 1996-05-02

Family

ID=23207923

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68924414T Expired - Fee Related DE68924414T2 (de) 1989-02-15 1989-12-02 Übersetzung virtueller Adressen.

Country Status (4)

Country Link
US (1) US5099415A (de)
EP (1) EP0382910B1 (de)
JP (1) JPH02245949A (de)
DE (1) DE68924414T2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02205953A (ja) * 1989-02-03 1990-08-15 Nec Corp アドレス変換装置
US5341485A (en) * 1991-05-07 1994-08-23 International Business Machines Corporation Multiple virtual address translation per computer cycle
US5500948A (en) * 1991-10-29 1996-03-19 Intel Corporation Translating instruction pointer virtual addresses to physical addresses for accessing an instruction cache
US5485589A (en) * 1991-12-31 1996-01-16 Dell Usa, L.P. Predictive addressing architecture
US5392410A (en) * 1992-04-30 1995-02-21 International Business Machines Corporation History table for prediction of virtual address translation for cache access
JPH0649339U (ja) * 1992-05-13 1994-07-05 正民 丸山 ハサミのいらない便利な封筒
US5392414A (en) * 1992-06-30 1995-02-21 Sun Microsystems, Inc. Rapid data retrieval from data storage structures using prior access predictive annotations
US5548739A (en) * 1993-11-04 1996-08-20 Sun Microsystems, Inc. Method and apparatus for rapidly retrieving data from a physically addressed data storage structure using address page crossing predictive annotations
JP3456768B2 (ja) * 1994-09-28 2003-10-14 株式会社東芝 アドレス変換装置
US5682495A (en) * 1994-12-09 1997-10-28 International Business Machines Corporation Fully associative address translation buffer having separate segment and page invalidation
JPH0981457A (ja) * 1995-09-18 1997-03-28 Nec Corp キャッシュ記憶制御装置
US5940877A (en) * 1997-06-12 1999-08-17 International Business Machines Corporation Cache address generation with and without carry-in
US6192459B1 (en) * 1998-03-23 2001-02-20 Intel Corporation Method and apparatus for retrieving data from a data storage device
US8862827B2 (en) * 2009-12-29 2014-10-14 International Business Machines Corporation Efficient multi-level software cache using SIMD vector permute functionality
US10318435B2 (en) * 2017-08-22 2019-06-11 International Business Machines Corporation Ensuring forward progress for nested translations in a memory management unit

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4050094A (en) * 1976-04-30 1977-09-20 International Business Machines Corporation Translator lookahead controls
US4128875A (en) * 1976-12-16 1978-12-05 Sperry Rand Corporation Optional virtual memory system
US4241401A (en) * 1977-12-19 1980-12-23 Sperry Corporation Virtual address translator utilizing interrupt level code
US4376297A (en) * 1978-04-10 1983-03-08 Signetics Corporation Virtual memory addressing device
US4170039A (en) * 1978-07-17 1979-10-02 International Business Machines Corporation Virtual address translation speed up technique
US4218743A (en) * 1978-07-17 1980-08-19 International Business Machines Corporation Address translation apparatus
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
US4410941A (en) * 1980-12-29 1983-10-18 Wang Laboratories, Inc. Computer having an indexed local ram to store previously translated virtual addresses
US4583162A (en) * 1983-01-13 1986-04-15 The Singer Company Look ahead memory interface
US4691277A (en) * 1984-10-24 1987-09-01 International Business Machines Corp. Small instruction cache using branch target table to effect instruction prefetch

Also Published As

Publication number Publication date
DE68924414D1 (de) 1995-11-02
JPH0529941B2 (de) 1993-05-06
EP0382910A3 (de) 1991-08-07
EP0382910B1 (de) 1995-09-27
JPH02245949A (ja) 1990-10-01
US5099415A (en) 1992-03-24
EP0382910A2 (de) 1990-08-22

Similar Documents

Publication Publication Date Title
DE68924414T2 (de) Übersetzung virtueller Adressen.
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE69629800T2 (de) Adressenübersetzungsbuffer in einem rechnersystem
DE2131066C3 (de) Anordnung zum Adressieren eines Tabellenspeichers
DE2231146C3 (de) Datenverarbeitungsanlage mit virtueller Adressierung
DE2260353C2 (de) Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage
DE69637294T2 (de) Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE3011552C2 (de)
DE2227882C2 (de) Virtuelle Speicheranordnung
DE60320026T2 (de) Verbessertes speichermanagement für echtzeit-anwendungen
DE10002120B4 (de) Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung
DE68902193T2 (de) Datenspeicheranordnung.
DE2717702C2 (de) Speicher-Zugriff-Steuersystem
DE69029173T2 (de) Mikroprozessor
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE2523414A1 (de) Hierarchische speicheranordnung
DE2241257B2 (de) Datenverarbeitende Anlage
DE2630323A1 (de) Datenspeichereinrichtung
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE2346525A1 (de) Virtuelle speichereinrichtung
DE2847960A1 (de) Speichersteuereinrichtung
DE3502147A1 (de) Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung
DE2454613C2 (de) Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage
DE3025167C2 (de) Datenverarbeitungseinrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee