DE2749850A1 - Hybrider halbleiterspeicher mit assoziativer seitenadressierung, seitenaustausch und steuerung auf dem chip - Google Patents

Hybrider halbleiterspeicher mit assoziativer seitenadressierung, seitenaustausch und steuerung auf dem chip

Info

Publication number
DE2749850A1
DE2749850A1 DE19772749850 DE2749850A DE2749850A1 DE 2749850 A1 DE2749850 A1 DE 2749850A1 DE 19772749850 DE19772749850 DE 19772749850 DE 2749850 A DE2749850 A DE 2749850A DE 2749850 A1 DE2749850 A1 DE 2749850A1
Authority
DE
Germany
Prior art keywords
page
chip
address
associative
virtual
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.)
Granted
Application number
DE19772749850
Other languages
English (en)
Other versions
DE2749850C3 (de
DE2749850B2 (de
Inventor
Richard Edward Matick
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
Publication of DE2749850A1 publication Critical patent/DE2749850A1/de
Publication of DE2749850B2 publication Critical patent/DE2749850B2/de
Application granted granted Critical
Publication of DE2749850C3 publication Critical patent/DE2749850C3/de
Expired 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • G06F12/0661Configuration or reconfiguration with centralised address assignment and decentralised selection
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel

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

Anmelderin: International Business Machines
Corporation, Armonk, N.Y., 1O5O4
ru-cn
Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seltenaustausch und Steuerung auf dem Chip
Die Erfindung betrifft einen hybriden Halbleiterspeicher nach dem Oberbegriff des Anspruchs 1.
Das allgemeine Konzept der virtuellen Seitenspeicher gilt sowohl für das sog. virtuelle Speichersystem (d.h. Platte an Hauptspeicher) als auch für das Notizspeicher- oder Pufferspeichersystem. Das Konzept wird immer wichtiger als Mittel zur Umgehung der Zugriffszeitlücken zwischen verschiedenen Speichertechnologien. Ein Problem bei den heutigen Seitenspeichersystemen, wo virtuelle Seitenhierarchien das ganze System einschließlich des Mikroinstruktions-Steuerspeichers durchdringen, d.h. des am meisten gelesenen Speichers, ist die übersetzung einer großen virtuellen Adresse in eine kleinere reale Adresse. Dazu gibt es grundsätzlich zwei Techniken, nämlich das Kennzeichenverzeichnis und die Tabellensuche. Das Kennzeichenverzeichnis ist sehr klein im Umfang und schnell, verlangt jedoch viele Vergleiche. Um die Geschwindigkeit aufrechtzuerhalten, sind gleichzeitige assoziative Vergleiche erforderlich, die das Verzeichnis sehr kostspielig machen. Im Gegensatz dazu kann die Tabellensuche sehr preiswert sein, wenn man den Haupspeicher selbst benutzt, sie ist aber sehr langsam, braucht einen beträchtlichen Teil des Hauptspeichers und verlangt außerdem eine ausgeklügelte Hardware- oder Software-Programmsteuerung. In den heutigen handelsüblichen Systemen wird die Tabellensuche unterstützt durch zahlreiche kleine Teilverzeichnisse für virtuelle Speichertypenplatte-Hauptspeicher benutzt, wogegen das Kennzeichenverzeichnisschema in Notizspeicherhierarchien verwendet wird. Es wäre irgendeine Form von Assoziatiwerzeichnis für alle Speicherhierarchien
YO 975 050
8 η 9 8 ? 2 / η R ·? ο
erwünscht, das ist jedoch mit den bisher bekannten Systemen im allgemeinen zu kostspielig.
In einer zweistufigen Hierarchie, in der der Primärspeicher sich in einem nennenswerten Bereich ändern kann, ist es wichtig, daß das Verzeichnis der primären logischen zu den primären physikalischen Seiten voll assoziativ ist, d.h., eine gegebene logische Seite kann in irgendeiner physikalischen Seite im Primärspeicher stehen. Das Verzeichnis des sekundären zum primären Adreßraum muß assoziativ aufgestellt werden. Verzeichnisse, die einen Verzeichnissatz assoziativer sekundärer, logischer Seiten zu primären, logischen Seiten benutzen, jedoch ein vollassoziatives Verzeichnis primärer, logischer Seiten zu physikalischen Seiten brauchen, benötigen wenigstens zwei Zyklen. Ein Zyklus adressiert das Verzeichnis assoziativ, um die reale physikalische Adresse der verlangten Seite zu bekommen und wenn diese Seite vorhanden 1st, braucht man einen zweiten Zyklus, um die endgültigen Daten zu adressieren.
In heutigen Schemata übernehmen große Seitentabellen die volle Adreßübersetzung. Sie sind jedoch sehr langsam und brauchen mehrere Hauptspeicherzyklen. Um das System zu verwirklichen, verwendet man ein kleines schnelles Teilverzeichnis, in dem mehrere (z.B. 8) der zuletzt adressierten Seiten festgehalten werden. Nachfolgende Zugriffe über eine nennenswerte Periode erfolgen zu diesen Seiten, wodurch die Zugriffszeit stark verkürzt wird. Dieses unter verschiedenen Namen, wie übersetzungsunter Stützungspuff er CTLB) bekannte Teilverzeichnis übernimmt jedoch nur eine teilweise übersetzung der Adressen, da es nur über einige Eintragungen verfügt. Da der TLB zuerst
adressiert werden muß, um die eigentliche Speicheradresse zu bekommen, muß er echnell sein, wenn weitere Verzögerungen vermieden werden sollen. Infolgedessen sind TLB's realisiert in kleineil Speichern in Bipolar-Registertechnologie für hohe Geschwindigkeit, aber zu hohen Kosten. Nenn man diesen TLB so vergrößern würde, daß er eine volle übersetzung durchführt, YO 975 05D
809822/062Ö
würde er langsam, kostspielig und immer noch einen Zugriff zum TLB für die reale Seitenadresse, sowie einen nachfolgenden Zugriff zum gewünschten Byte dieser Seite erfordern.
In virtuellen Speicherhierarchien müssen drei Grundfunktionen vorgesehen werden, nämlich eine Seitenverzeichnisfunktion, eine Adreßübersetzungsfunktion von der virtuellen zur realen Seitenadresse und ein Seitenaustauschalgorithmus. Der Seitenaus tauschalgorithmus umfaßt die Funktionen der Seitenbenutzungsinformation und der Fortschreibung, sowie die Auswahl einer Seite zum Austausch beim Auftreten einer fehlerhaften Seite.
Der Erfindung liegt deshalb die Aufgabe zugrunde, einen hybriden Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf den einzelnen, den Halbleiterspeicher bildenden Speicherchips zu schaffen, der keinen zweiten Zugriffszyklus zur Adressierung von Seitendaten in einer zweistufigen Hierarchie erfordert, der ein vollassoziatives Verzeichnis und eine volle Adressenübersetzung sowie die Überlappung der »irtuellen Adreßdecodierung mit dem Speicherzugriff gestattet und bei großer Flexibilität, kleiner Komplexität und hoher Geschwindigkeit die Erstellung eines virtuellen Systems, der virtuellen Seitenadressierung, der Seitenbenutzungsinformation und ihre Fortschreibung und die Auswahl des Seitenaustausches mit minimaler Schaltungslogik und weniger Speicherzyklen ermöglicht.
Die erfindungsgemäße Lösung ergibt sich insbesondere aus dem Patentanspruch 1. Weitere Lösungen ergeben sich aus den 'Patentansprüchen 2, 3 und 5.
Der Einsatz der assoziativen Logik auf dem Chip für die virtuelle Adressierung bietet eine vollassoziative Übersetzungsfunktion der virtuellen Seitenadresse, wodurch der normalerweise in Notizspeichersystemen erforderliche zweite Zugriffs-YO 975 050
809822/062 0
zyklus umgangen oder die langsame Tabellensuche In Platte-Hauptspeichersystemen vollständig vermieden wird. Außer der virtuellen Seitenadreßfunktion auf dem Chip dienen die Seitenbenutzungsinformation und die Fortschreibefunktion sowie die Seitenauswahl für die Austauschfunktion beim Auftreten eines Seitenfehlers dazu, die normalerweise auf separaten Chips bei einem fest verdrahteten Algorithmus für Notizspeicher oder Tabellen- und Software-Algorithmen in virtuellen Systemen vom Typ Platte-Hauptspeicher erforderliche zusätzliche Hardware sehr klein zu halten, bzw. ganz zu eliminieren. Zusammengefaßt kann man sagen, daß das Hybridsystem auf dem Chip eine große Beweglichkeit sowohl in der Anzahl als auch in der Art der Benutzung der Seitenbenutzungs- und Status/Steuerbits ermöglicht, wodurch das Uberwachungssystern noch Parameter ändern kann, um den gesamten Systembetrieb beim Arbeiten mit Multiprogramming zu optimieren.
Ausführungsbeispiele der Erfindung sind in den beigefügten Zeichnungen dargestellt und werden anschließend näher erklärt.
Es zeigen:
Fig. 1 einen hybriden Halbleiter-Randomspeicher mit
assoziativer Adreßübersetzung und anderen Steuerfunktionen auf dem Chip,
Fig. 2A in einem Funktionsblockdiagramm ein assoziatives Vergleichsregister auf jedem Chip,
Fig. 2B Einzelheiten der assoziativen Bitzelle des in Fig. 2A gezeigten Assoziativregisters, Fig. 3 ein Aesoziativregister auf dem Chip mit dem
virtuellen Adreßübersetzungsregister sowie Registern für die Seitenbenutzung und anderer Steuerfunktionen,
YO 975 050
fi09822/0fi?0
Fig. 4 die Zusammengehörigkeit der Fign. 4A bis 4E,
Fig. 4A bis 4E im einzelnen den logischen Aufbau eines hybriden Speichersystems und
Fig. 5 in einem logischen Blockdiagramm die Arbeits
weise des Wählers für Mehrfachübereinstimmungen bei der Auswahl einer aus mehreren Übereinstimmungen mit Hilfe eines Kennzeichens pro Seite.
Fig. 1 zeigt einen hybriden Halbleiter-Randomspeicher, der für die assoziative Adreßübersetzung auf einem Chip ausgelegt ist. Das Speichersystem ist mit einem Byte pro Chip und nicht mit einem Bit pro Chip organisiert. Diese Organisation ist zwar [keine Grundvoraussetzung, reduziert aber die Anzahl der erfor- ! derlichen Verbindungen und Verdrahtungsbahnen. Jedes Chip 12 wird durch die CPU 10 über ein Primäradreßregister 14 adressiert, das die realen Wort- und Bitadressen N - und N- speichert, um die Wort- und Bitleitungen aller Chips zu wählen. Die Chip· sind grundsätzlich alle mit der Nummer 12 bezeichnet und können in beliebiger Menge in einem Speicher vorhanden sein. Zum besseren Verständnis des Systems wird ein Beispiel einer typischen Anzahl im laufenden Gebrauch betrachtet. Die CPU 10 enthält Register zum Speichern einer totalen, effektiven, virtuel-i len Adresse N für ein virtuelles Rechnersystem, die bis zu 30
Bits oder größer sein kann und eine logische Adreßkapazität
3O 9
von 2 oder mehr als 10 Bytes gestattet. Der eigentliche Hauptspeicher ist typischerweise wesentlich kleiner, beispielsweise 2 oder 1 Megabyte. Somit muß die große virtuelle Speicheradresse in eine reale Hauptspeicheradresse übersetzt werden. Dazu muß aber nur ein Teil der 30 Bits wie folgt übersetzt werden. Typische Seiten sind 4K Bytes groß und benötigen 12 Adreßbits. Diese sind real, mit N bezeichnet und verlangen keine assoziative Übersetzung. Die virtuelle Seitenadresse N , die assoziativ decodiert werden muß, ist somit
YO 975 050
θ Π 9 8 ? 7 I Π (-, ? Ii
ί Νν * V*r
; - 30 - 12 - 18
Zur Illustration wird angenommen, daß jedes Chip eine Seite von 4K Bytes (32K Bits/Chip) enthält, und da jede Seite assojziativ decodiert werden muß, muß auch jedes Chip 12 assoziativ !decodiert werden. Das wird wie folgt erreicht. Die realen Adreßbits N werden decodiert als N .. und N 2 und wählen ein JByte wie normal bei der nichtassoziativen Adressierung. Die !Byteleitungen 16a und 16b sind mit dem Wortdecoder 18a bzw. dem Bitdecoder 18b verbunden. Diese wählen ein Byte von allen |Chips und das richtige Chip wird bestimmt durch ein separates Chip-Einschaltsignal E. Dieses direkte Chip-Einschaltsignal E auf der Leitung 20 eines jeden Chip wird erzeugt durch ein auf dem Chip befindliches Assoziativregister 22. Alle Assoziativregister 22 haben vorher die virtuellen Adreßbits N gespeichert, die jeder Seite (Chip) vom Systemüberwachungsprogramm zugeordnet wurden. Die einer jeden Seite zugeordnete virtuelle Adresse kann sich ändern, wenn die Seiten verändert und ausgetauscht werden. FQr die vorliegende Beschreibung wird ein 18 Bit großes Assoziativregister 22 verwendet. Diese Adressen (N ) ändern sich dynamisch über der Zeit. Wenn eine Anforderung für eine virtuelle Seite, z.B. N , abgegeben wird, werden diese Bits auf der Leitung 24 parallel an alle Chips gegeben. Die Assoziativregister 22 werden alle gleichzeitig von einer Speichersteuerung 32 über die Abfrageleitung 34 abgefragt und nur ein Assoziativregister 22 kann ein Einschaltsignal auf seine Leitung 20 geben. Die Einschaltleitungen 20 sind darstellungsgemäß über ein Kabel 36 mit der Speichersteuerung 32 verbunden. Das ist das gewählte Chip und somit wird die virtuelle Adresse Ny direkt in eine reale Adresse umgewandelt.
In einer Realisierung des Speichers können 2 ■ 1 Million Bytes vorgesehen sein. Mit Seiten von je 4K Byte wären dazu 256 Seiten oder 256 Speicherchips erforderlich. Ein Vorteil
YO 975 050
809822/0620
des erfindungsgemäßen Speichers besteht darin, daß alle Chips identisch sind und für das Verzeichnis keine SpezialChips erforderlich sind. Eine Ausdehnung oder Zusammenziehung der Seitenzahl ist inherent in das System eingebaut, da eine klei- ■ nere Anzahl von Seiten in den werthohen Positionen des Assoziativregisters nur Nullen speichert. Das Decodieren des Assoziativregisters 22 kann mit dem Decodieren der Bitgruppe und der ,
Wortleitungswahl überlappt werden, und zwar alles auf einem ; Chip. j
In Fig. 2A ist in einem Funktionsblockdiagramm das Assoziativ- ι register 22 auf jedem Chip gezeigt. Das zum Vergleich dienende Assoziativregister 22 besteht aus einem virtuellen Chip-Adreßregister 22a zum Speichern der virtuellen Adreßbits des Chips und einem Vergleichsregister 22b zum Vergleichen der virtuellen Adresse im Register 22a mit der abgefragten virtuellen Adresse auf der Leitung 24 vom virtuellen Seitenadreßregister der CPU.
Die Abfragetaktierung kann auf der Abfrageleitung 26 vorgesehen werden, die das Vergleichsregister 22b während der virtuellen Vergleichsadreßzeit über das UND-Glied 28 einschaltet, das die Ausgabe des Vergleichsregisters empfängt. Auf die Leitung 20 wird ein Seitenübereinstimmungs-Einschaltsignal gegeben. Während bisher das Assoziativregister 22 mit seinem Adreßregister 22a für das Speichern und Vergleichen der virtuellen Adresse beschrieben wurde, werden identische Register für die Seitenbenutzungsbit-Register verwendet, die noch zu beschreiben sind.
Jede assoziative Bitzelle eines Assoziativregisters 22 kann aus der in Fig. 2b gezeigten spezifischen FET-Schaltung bestehen, wobei äquivalente Einheiten mit denselben Zahlen bezeichnet sind wie in Fig. 2a. Das heißt, die virtuelle Adresse N wird in dem aus vier FET-Grundflipflops bestehenden Adreßregister 22a gespeichert, das zusammen mit zwei Zugriffstransistoren 22c und 22d zwischen der Bitleitung BO und dem Knotenpunkt A bzw. der Bitleitung B1 und dem Knotenpunkt B den Randomzugriffsj-YO 975 Ö5Ö
809822/0620
27A9850
speicherteil bildet. Das assoziative Vergleichsregister 22b j enthalt vier Transistoren Ta, Tb, Tc und Td für die Vergleichs-j funktion, während Ti für eine separate Abfrage sorgt, ähnlich ! wie das in Fig. 2A gezeigte UND-Glied 28. Die Lese/S ehr eibwort-j leitung 30 dient auch als Elnschaltleltung 20, da die beiden Funktionen niemals gleichseitig ausgeführt werden. Die Bitabfrageleitungen BO und B1 sind normalerweise hoch, und zwar auf einer bestimmten Vorspannung + Vb. Eine Hull wird in das Adreßregister 22a durch einen negativen Puls auf BO gespeichert, um das Register in Verbindung mit einem positiven Puls auf der Lese/Schreibwortleitung 3O auf nahe Erdpotential zu bringen. Dadurch wird der Knotenpunkt A auf Erdpotential gebracht, während das Potential des Punktes B hochgehalten wird,
!Eine Eins wird dadurch geschrieben, daß man den Knotenpunkt B1 : mit einem negativen Puls in Verbindung mit einem Wortleitungspuls , der den Knotenpunkt B auf Null und den Knotenpunkt A auf eine hohe Spannung setzt, auf Erdpotential bringt. Die Spei-
cherzelle ist für Störimpulse auf der Lese/Schrelbwortleltung \30 so lange unempfindlich, wie beide Bitleitungen auf ihrer normalerweise hohen Vorspannung Vb liegen. Ein assoziativer 'Vergleich oder eine Abfrage werden vorgenommen, indem man Daj ten auf das Bit/Abfragepaar BO und B1 gibt in Kombination mit !einem Abfrageimpuls auf der I-Leitung 26. Externe Daten zur Abfrage haben dieselbe Form wie die für das Schreiben, und :zwar stellen BO auf Erde und B1 auf +Vb für den Vergleich eine Null dar und das Gegenteil gilt für eine Eins. Der Abfrageinepuls X läßt einen Kennzeichenstrom in die Lese/Schreibwortleitung 30 fließen, wenn ein Kennzeichen erzeugt wird. In einem aus vielen Zellen bestehenden Register wird offensichtlich das assoziative Vergleichsfeld für eine gegebene Abfrage dadurch bestimmt, welche I-Leitungen gepulst sind. Für eine assoziativ* oben benutzte Zelle ist die Polarität der Zellenvergleichslogik relativ unwichtig. Im Assoziativregister mit vielen Zellen jedoch ist die Polarität der Logik bei der Vereinfachung der Schaltung wichtig. Wenn der Knotenpunkt A mit b und B mit a YO 975 050
verbunden ist, dann erzeugt eine Abfrage "Übereinstimmung gleich" kein Kennzeichen, d.h., ein Kennzeichen bedeutet "keine Übereinstimmung". Die entgegengesetzten Verbindungen, dargestellt in gestrichelten Linien, erzeugen die entgegengesetzte Polarität des Kennzeichens. Die frühere logische Verbindung (ausgezogene Linien) gestattet eine Parallelschaltung aller Zellen des Assoziativregisters mit derselben Kennzeichenleitung, wodurch die Schaltung vereinfacht wird. Wenn mehrere Zellen, wie etwa das virtuelle Adreßfeld, gleichzeitig auf einen "Vergleich gleich" abgefragt werden, dann erzeugen mehrere derartige Zellen, deren Inhalt nicht mit den Eingabedaten übereinstimmt, ein Kennzeichen. Die entgegengesetzte Logik "Übereinstimmung" = "Kennzeichen" würde zu einer sehr schwierigen Abfühlung führen. Wenn beispielsweise in einem Vergleichsfeld mit 30 Bits 29 Bits übereinstimmen und ein Bit nicht übereinstimmt, müßte man das Fehlen eines Kennzeichenstromes von 30 Strömen abfühlen können, eine schwierige Forderung. Die Logik "Kennzeichen = keine Übereinstimmung" vereinfacht dieses Abfühlproblem und wird im vorliegenden System verwendet.
Es wäre zu beachten, daß herkömmliche, separate Verzeichnisse, die voll assoziativ adressiert werden, zur Benutzung bei der Realisierung virtueller Speichersysteme nicht erwünscht sind, weil sie langsam und kostspielig sind. Somit werden satzassoziative Verzeichnisse benutzt, um die Geschwindigkeit zu erhöhen und die Kosten zu senken. Ein Problem bei einem solchen separaten Verzeichnis liegt darin, daß nach Feststellung einer Übereinstimmung eine zweite Abfrage des Übereinstimmungswortes erforderlich ist, um die richtige reale Adresse zu holen. In den vorliegenden Notizspeichersystemen beispielsweise wird das Verzeichnis zuerst angesteuert, um die reale Adresse der virtuellen Seite zu bekommen, die dann eingegeben wird, um den Notizspeicher zu adressieren. Das Speichersystem der vorliegen* den Erfindung vermeidet die Verzögerung durch den zweiten Zugriff, da das Ubereinstimmungsslgnal direkt zur Chipeinschaltung benutzt wird. Im System der vorliegenden Erfindung laufen YO 975 050
809822/067 0
die Adreßsignale N und N gleichzeitig an alle Chips, so daß keine zusätzliche Verzögerung durch die anderweitige Decodierung von N auftritt. Die Decodierung von N ist außerdem mit der Decodierung von N überlappt. Sobald N fertig ist, gibt es ein direktes Chip-Einschaltsignal ohne zusätzliche Verzögerung und ein zweiter, bei den Verzeichnissen bisher üblicher Zugriff ist nicht erforderlich. Ein weiterer Vorteil des vorliegenden Speichersystems gegenüber einem typischen separaten Verzeichnis ist die leichte Ausdehnung und Zusammenziehung der Seitenzahlen. In einem separaten Verzeichnis muß für jede Seite ein volles assoziatives Wort vorgesehen werden. Wenn wir eine Bandbreite von beispielsweise 64 bis 256 Seiten wünschen, muß das Verzeichnis die Höchstzahl von 256 Eintragungen enthalten, von denen viele leer sein können. Bei dem vorliegenden Speichersystem wären nur zwei der 18 virtuellen Adreßbits in den Assoziativregistern leer oder unbenutzt bei einem System mit 64 Seiten, für 128 Seiten wäre ein Bit leer und für 256 Seiten kein Bit.
Wie bereits im Zusammenhang mit Fig. 1 beschrieben wurde, wird durch die Benutzung der Assoziativlogik auf dem Chip für die virtuelle Adressierung eine voll assoziative virtuelle Seitenadreß-übersetzungefunktion mit nur einem kleinen Assoziativspeicher möglich, wodurch der zweite normalerweise in NotIzjspeichersystemen erforderliche Zugriffszyklus umgangen oder die langeame Tabellensuche in Speichersystemen Hauptspeicherplatte vollständig vermieden wird. Das System ist insofern voll assoziativ, als die virtuelle Adresse N gleichzeitig an alle Seiten angelegt wird und die assoziativen Vergleichsoperationen mit allen Adressen direkt auf dem Chip ausgeführt werden.
Außer den Funktionen der virtuellen Adreßübersetzung und des : Seitenverzeichnisses werden in virtuellen Speichersystemen auch die Funktionen der Seitenbenutzungsinformation und -Fortschreibung sowie die Auswahl einer Seite zum Austausch bei einer fehlerhaften oder fehlenden Seite benötigt. Bei bekannten YO 975 050
809822/067 0
Systemen werden diese Funktionen gegenwärtig mit einer besonderen Hardware auf separaten Chips mit festverdrahteten Algorithmen für den Notizspeicher oder mit Tabellen und Softwarealgorithmen für virtuelle Systeme vom Typ Hauptspeicher-Platte übernommen. Diese letzteren beiden Funktionen werden mit logischen Funktionen auf dem Chip zusammen mit der virtuellen Adreßassoziativlogik implementiert, um bestimmte gemeinsame Elemente abzuleiten, was zu einer beträchtlichen Vereinfachung führt. Nach Darstellung in Fig. 1 fordert die CPU in einer typischen Operation eine Seite mit einer virtuellen Seitenadresse aus N -Bits und einer realen ßyteadresse aus N -Bits an.
Die N -Bits können direkt zu allen Seiten (Chips) gehen, um ein Byte zu wählen. Der erforderliche logische Schritt bei der Adreßübersetzung besteht in der Lieferung eines Seiteneinschaltsignales bei Übereinstimmung mit N . Für eine solche Übereinstimmungsanzeige sollten die die Seitenbenutzungsinformation liefernden gespeicherten Bits für die eingeschaltete Seite auf den neuesten Stand fortgeschrieben werden. Wenn ein Seitenfehler auftritt, muß die gespeicherte Seitenbenutzungsinformation wieder mit verschiedenen, vorher angegebenen Prioritätsrangbit$ geprüft und ein Seiteneinschaltsignal bei Übereinstimmung gegeben werden. Das gemeinsame Element in all diesen logischen Schritten ist der Bedarf an einer Seiteneinschaltfunktion, die durch die vorliegende Erfindung über eine gemeinsame assoziative Kennzeichenleitung geliefert wird.
Außer den oben beschriebenen Funktionen der Adreßübersetzung und-Aufzeichnung braucht man in allen virtuellen Speichersystem men auch eine Seitenaustauschfunktion. Während es allgemein bekannt ist, daß überhaupt kein Austausch für alle Probleme die beste Lösung ist, wird in virtuellen Speichersystemen weitgehend der LRU-Algorithmus, d.h. der Algorithmus für die letzte Benutzung, implementiert. Wenn große Seitenzahlen betroffen sind, wird der LRU-Algorithmus jedoch sehr komplex und schwie-
YO 975 050
8 0 9 8 2 2 / 0 r. :·' ('
rig zu implementieren. Daher wird er im allgemeinen nur in Fällen benutzt, in denen eine kleine Seitenanzahl betroffen ist, wie etwa in jedem Satz innerhalb einer Notizspeicherverzeichnisfunktion. Die meisten Austauschalgorithmen stellen somit nur eine Annäherung an den LRU-Algorithmus dar und ersetzen tatsächlich Seiten, die zuletzt nicht benutzt wurden. Solche Algorithmen haben einen wesentlichen Einfluß auf das Gesamttrefferverhältnis und die Systemleistung und werden daher in Software ausgeführt, die Änderungen und eine Feinabstimmung gestattet. Die genaue Natur dieses Algorithmus kann daher nicht in Hardware verriegelt werden, muß aber austauschbar sein. Nach dem System der vorliegenden Erfindung, dargestellt in den Fign. 4A bis 4E, sind solche Wechsel und eine Feinabstimmung möglich.
Alle auf der Seitenbenutzung basierenden Algorithmen müssen Informationen über die Benutzung speichern. Die beiden möglichen Benutzungsarten einer Seite sind "Datenlesen" oder "Datenschreiben (verändern)". Wenn eine Seite verändert wurde, ist sie im allgemeinen weniger für einen Austausch wählbar als eine nicht veränderte Seite. Das ergibt sich aus der Tatsache, daß eine veränderte Seite nicht einfach innerhalb des Hauptspeichers gelöscht werden kann, sondern erst aitf die Platte zurückgeschrieben werden muß. Das ist ein zeitaufwendiger Prozeß, der soweit wie möglich zu vermeiden ist. Eine nur angezogene (gelesene), aber nicht veränderte Seite ist eher für einen Austausch wählbar. Von dem System nach der vorliegenden Erfindung werden zwei Teile der Benutzungsinformation verwendet, und zwar ein Referenzbit £ und ein Modifizierbit jn, dargestellt in Fig. 3, die in den Assoziativregistern 40 auf jedem Chip gespeichert werden. Die Register 40 bestehen im wesentlichen aus mehreren dem in den Fign. 1 sowie 2A und 2B gezeigten Register 22 identischen Registern. Insbesondere umfassen die Register 40 zusätzlich zu dem Bitregister 40a für das virtuelle Adreßbit Nv noch ein Register 40b für das Referenzbit r, ein Register 40c für das Modifizierbit m und Register für andere Steuerbits. Das Referenzbit zeigt an, ob
YO 975 050
809822/0 6 2 0
2749350
eine Seite während einer bestimmten Zeit oder eines Abtastintervalles benutzt wurde. Im Register 4Oe wird mit einem u-Bit die Anzahl von Abtastintervallen angegeben, in denen diese Seite nicht angezogen wurde. Zusätzlich zu den Bits r, m und u können weitere Steuerbits eingeschlossen werden, wie etwa Verriegelungsbits L, die im Register 4Od gespeichert sind und den Zugriff zu oder die Teilung von Seiten usw. steuern.. Diese Bits werden ähnlich abgefragt, wie es für die virtuellen Adreßbits in den Fign. 1 sowie 2A und 2B beschrieben wurde, und sie teilen die gemeinsame Kennzeichenleitung 42, dargestellt in Fig. 3. Ein assoziatives Vergleichsregister 22, das in den Fign. 2A und 2B gezeigt ist, dient somit als Steuerbitregister zum Speichern und Abfragen der Steuerbits £, m und u in derselben Art, die für die virtuellen Adreßbits beschrieben wurde,
In Fig. 3 ist gezeigt, wie die separaten Abfrageeingänge II, Ir, Im und Iu die assoziative Maske oder das Vergleichsfeld liefern. Alle auf den Dateneingangsleitungen 44a, b, α und e vorhandenen Daten werden mit vorher im Register gespeicherten Daten nur über dem Feld verglichen, das einen Abfrageeingang I hat. In einer verwendeten Implementierung erzeugt ein Signal "Übereinstimmung gleich" kein Kennzeichen, so daß ein Kennzeichensignal auf der Leitung 42 keine Übereinstimmung anzeigt.. Diese logische Struktur gestattet es, die Kennzeichenleitungen aller Zellen parallel zu legen, wodurch die Hardware stark vereinfacht wird. Diese Kennzeichenleitung 42 ersetzt jetzt die gewöhnliche Chipeinschaltleitung in typischen integrierten Schaltkreisspeichern. Diese Kennzeicheneinschaltung oder Chipeinschaltung wird für die Adreßübersetzung, die Seitenbenutzungsfortschreibung und die Seitenaustauschwahl benutzt.
Die laufenden Austauschalgorithmen benutzen ein festes Abtastintervall und einen Vorrat austauschbarer Seiten, von denen einige zurückgerufen werden können, bevor sie auf die Platte ausgeleitet werden. Eine periodische Abtastung und ein Vorrat werden gebraucht, weil es schwierig ist, zum Zeitpunkt des
YO 975 050
Π Γ) Π r ? '■ /ΠΓΊ!
27A985Ü
Ausfalles einer Seite nach einer austauschbaren Seite zu suchen. In der Hybridanlage nach der vorliegenden B-'rfindung erfolgt die Fortschreibung des r und m Bit automatisch und gleichzeitig mit der Adressierung einer Seite. Wenn ein Seitenfehler auftritt, wird außerdem eine Seite zum Austausch durch eine oder mehrere assoziative Abfragen der Benutzungsbits gewählt. Das Prioritätsschema für den Austausch wird durch die Speichersteuerung festgelegt und im Zusammenhang mit den Fign. 4A bis 4E dargestellt und beschrieben, die die Mikroprogrammsteuerung benutzen und verschiedene Prioritätsschemata zulassen kann. Die r-Bits und die historischen u-Bits auf allen Seiten werden zu diesem Zeitpunkt automatisch fortgeschrieben, während eine Seite geleitet wird. Das m-Bit wird nur zurückgeste"1"1^, venr eine modifizierte Seite auf die Platte zurückgeleitet wurde.
Die Fign. 4A bis 4E zeigen, wie ein gemeinsamer Seitenaustauschalgorithmus, wie er in einem virtuellen Speicherbetriebssystem verwendet wird, auf einem Hybridchip nach der vorliegenden Erfindung implementiert wird. Hier wird von einem vollassoziativen Seitenadressier-, Austausch- und Steuersystem auf dem Chip mit einem Austauschalgorithmus die Wählbarkeit einer Seite zum Austausch beim Auftreten eines Fehlers bestimmt. Das in Fig. 4 gezeigte Ausf Uhrungebeispiel zeigt im einzelnen die logischen Funktionen während des Speicherzugriffs, wobei jedes Chip einer virtuellen Seite gleichgesetzt ist. Die CPU erzeugt die gesamte logische Speicheradresse N +N bei 52 und die Operation 54 (Lesen oder Schreiben (R/H)), wobei R und H separat über die Leitungen 56 und 58 wie gewöhnlich zu jedem Chip laufen, um die richtige Operation einzuleiten. Das ist dargestellt als Teil der alten oder herkömmlichen Funktionen in dem gestrichelt dargestellten Block 60. Die virtuelle Adresse Νγ geht auf der Leitung 44a zu den Adreßteilen aller Chip-Assozia- tivregister 40a, N auf den Leitungen 62a und 62b zu allen Chips. Das R/W-Signal auf den Leitungen 56 und 58 wird im ODER- Glied 64 verknüpft, an eine Speichersteuerung 66 geleitet, die YO 975 050
8 0 9 822/0670
7 4 9SbO
zur entsprechenden Zeit über die R/W-Schnittstelle 68 ein Abfrage-Adreßsignal 11 erzeugt, das an alle Chips geht, wo es im UND-Glied 70 mit dem assoziativen Registerkennzeichen auf der Leitung 42 (nach Inversion im Inverter 72) verknüpft wird zur Erzeugung des Signales "Eingeschaltet beim Lesen/ Schreiben" auf Leitung 74. Wenn angenommen wird, daß eine Seite eingeschaltet ist, müßten die Bits £ und/oder m fortgeschrieben werden. Das Signal "Seite eingeschaltet beim Lesen/ Schreiben", E auf der Leitung 74 dient als Eingang zum
KW
r-Steuerbitregister 40b und wird im UND-Glied 76 mit dem modifizierten W-Signal auf Leitung 58 vom herkömmlichen Teil 60 des Chip verknüpft zu einem Eingangssignal auf der Leitung 78 zum m-Bitregister 40c. Die assoziative Kennzeichenleitung 42 wird dann gepulst, nachdem die richtigen Daten r und m zur Verfugung stehen, um diese Bits des gewählten Seitenregisters zu setzen. Dieser Wortpuls kann gleichzeitig auf der Kennzeichenleitung 42 durch einen Seitendecodierer 80 in der Speichersteuerung 66 geliefert oder auf dem Chip erzeugt werden. Diese Funktionen sind alle mit dem Lesen oder Schreiben von Daten in den Speicher 82 überlappt. In der Speichersteuerung 66 werden die Kennzeichensignale Fl bis Fn von allen n-Seiten auf eine Seiteneinschaltung in einem Mehrfach-Ubereinstinunungsdetektor 84 geprüft. Der Mehrfach-Ubereinstimmungsdetektor 84 besteht aus konventionellen Vergleichsschaltungen. Wenn eine Seite eingeschaltet ist, wird das so erzeugte E -Signal auf der Leitung 86 im UND-Glied 88 mit dem R/W-Signal von der R/W-Schnittstelle 68 zu einem Fortsetzungssignal an die CPU verknüpft, dargestellt an der Leitung 90. Wenn ein Signal "keine Seite eingeschaltet" E auf der Leitung 92 vom Mehrfach-Ubereinstimmungsdetektor 84 kommt, tritt ein Seitenfehler auf, E wird im UND-Glied 94 mit P/W verknüpft, um durch ein Signal auf der Leitung 96 einen Ssitenfehler beim Lesen/Schreiben anzuzeigen, E , und dadurch weitere Anforderungen der CPU aus-
KW
zusperren. Mit demm Signal E auf der Leitung 96 werden auch die logischen Funktionen des Austauschalgorithmus im Seitenaustausch-Algorithmusteil 98 der Speichersteuerung 66
YO 975 050
809822/06?π
eingeleitet. Seitenaustauschalgorithmen, ihre logische Operation und die Hardware innerhalb einer Speichersteuerung sind hinreichend bekannt und werden daher nicht näher beschrieben.
Eine oder wenn nötig auch mehrere sequentielle Prüfungen werden von der Speichersteuerung 66 assoziativ auf den Steuerbits r, m und u durchgeführt. Zuerst werden alle Assoziativregister gleichzeitig auf r=O (nicht angezogen), m=O (nicht verändert) und u=1 (nicht angezogen im vorhergehenden Intervall) abgefragt. Dazu werden die Abfragesignale Ir, Im, Iu von der Speichersteuerung 66 für jedes dieser drei Bits in den entsprechenden Chipregistent 40b, 4Oc und 4Oe und die Vergleichsdaten r_, m. u auf den Leitungen 44b t c und e gebraucht. Ein Prüfsignal T wird außerdem auf der Leitung TOO vom Seitenaustauschalgorithmusteil 98 erzeugt, um den Mehrfach-Ubereinstimmungswähler im Mehrfach-Übereinstimmungsdetektor 84 zu aktivieren und über das UND-Glied 102 die Bits r , nt und u erhöhen und
c' c c
weiterprüfen zu können, wenn sich bei der ersten Prüfung keine Übereinstimmung für r=O, m=O, u=1 ergibt. Nimmt man an, daß keine Übereinstimmung auftritt, so können weitere Prüfungen nach folgendem Prioritätsschema durchgeführt werden:
u«O
m=0 uei usw., bis schließlich m=1
Während der Prüfung kann eine Mehrfach-übereinstimmung auftreten, d.h., mehr als eine Seite kann ein Übereinstimmungskennzeichen für die von der Speichersteuerung 66 gelieferten Steuer bitkriterien abgeben. Der Mehrfach-Übereinstimmungsdetektor wählt eine dieser Seiten. Die hierfür erforderliche Schaltung ist relativ einfach und im Zusammenhang mit Fig. 5 beschrieben. Diese Seite wird durch die neue Seite ersetzt. Zwei logische Funktionen müssen dazu ausgeführt werden; zuerst muß die gewählte Seite eingeschaltet werden, d.h., ein Einschaltsignal YO 975 050
u η ο <·■ -.' '//fii '.Ii
E auf der Chipleitung 104 vom ODER-Glied 106 muß eingeschaltet werden, damit hinterher die alte Seite ausgelesen werden kann, wenn m=1 ist und die neue Seite eingeschrieben werden kann. Als zweites muß in das Assoziativregister 40a der neue Wert für N eingetragen werden und £, m und u müssen zurückgestellt werden. Das Einschalten von einem E auf dem gewähl-
ten Chip kann auf verschiedene Weise erfolgen. Ein einfaches Verfahren besteht in der Trennung der Leitungen E .. bis E vom Mehrfach-Ubereinstimmungsdetektor 84 zu jeder Seite. Nur eine dieser Leitungen wird erregt und kann als direkte Schaltung der E ..-Verriegelung 108 benutzt werden.
Eine andere Einschaltmöglichkeit für E auf der Leitung 104 besteht in der Benutzung der Kennzeichenleitungen selbst für die Zwei-Weg-Kommunikation. Nachdem vom Mehrfach-Ubereinstimmungsdetektor 84 am Anfang alle Kennzeichenimpulse empfangen wurden, kann die gewählte Leitung in Verbindung mit einem I.Impuls gepulst werden zum Einschalten der E ..-Verriegelung 108. Zu diesem Zeitpunkt soll die E -Chipwahl verriegelt werden, weil eine Serie von Operationen erforderlich wird, nämlich das Lesen der Seite, das Schreiben der Seite und das Rückstellen der Register für £, m und u.
In der Zwischenzeit hat innerhalb der Speichersteuerung 66 l der Mehrfach-Ubereinstimmungsdetektor 84 ein Seiteneinschaltsignal E auf der Leitung 86 erzeugt, das im UND-Glied 110 mit dem Prüfsignal T auf der Leitung 100 verknüpft wird, um den Seitenausleitzyklus einzuleiten. Diese herkömmliche Operation ist durch den Seitenausleitblock 112 der Speichersteuerung 66 dargestellt. ι
Der Seitenfehler und die anschließende Prüfung der Steuerbits bezeichnen das Ende des Abtastintervalles. Alle Bits £ und u auf allen nicht gewählten Seiten müssen jetzt als Teil der Seitenbenutzungshistorie fortgeschrieben werden. Das kann mit dem Seitenausleitzyklus im Speichersteuerteil 112 überlappt
YO 975 050
8 Π 9 8 2 ? / 0 G20
- 21 -
oder bis zu einen späteren Zeitpunkt verzögert werden. Das Fortschreiben erfolgt nach folgender Logik. Wenn r=O ist, wird u=1 gesetzt und r bleibt unverändert. In mehreren u-Systeinen wird u um 1 erhöht. Wenn r=1 ist, setzt man u=O und r=0. Auf allen Chips, einschließlieh des eingeschalteten, wird das r-Bit natürlich ausgeschaltet. Auf der eingeschalteten Seite muß u auf 1 gesetzt werden und £ und m müssen auf O gesetzt werden, während alle anderen Seiten der vorherigen Logik folgen. Die Ausgabe der E ..-Verriegelung 108 wird auf die Leitung 114 gegeben als Eingang zu den Bitleitungen der Register 40b, c und e für die Bits r, ro bzw. u. Der Eingang kann direkt an die m-Bits angelegt werden, da sie nur auf 0 gesetzt werden, wenn eine Seite ausgeleitet wird. Auf einer Seite kann u jedoch bei einem Abtastzyklus auf 1 oder O gesetzt werden, während £ auf allen Seiten zur Abtastzeit auf 0 gesetzt wird, und somit (nüssen diese Bits in den ODER-Gliedern 116 bzw. 118 verknüpft werden. Die zusätzlichen u-Eingänge resultieren aus einer Prüfung des r-Bit. Das r-Bit wird mit einem I Abfragesignal geprüft und z.B. r = 1 vom Seltenaustausch-Algorithmusteil 98 an alle Chips. Das assoziative Kennzeichen auf der Leitung 42 wird durch den Inverter 120 invertiert und im UND-Glied 122 mit Ir verknüpft zum Einschalten einer Abtastverriegelung 124. ber Ausgang der Abtastverriegelung dient als Eingang zum Register 40e für das u-Bit. Wenn eine Übereinstimmung erzielt wurde für z.B. £ β 1, dann sind die Signale auf den Verriegelungsausgängen u«0 und ΰ « 1. Wenn keine Übereinstimmung erzielt " c c J
yrurde, sind sie umgekehrt. Alle richtigen Eingangsdaten stehen Jetzt an den Steuerbits sowohl der eingeschalteten als auch ler nicht gewählten Seiten zur Verfügung, so daß ein Impuls "Assoziativregister schreiben", W*»«/ an alle Chips vom Seiteniecodierer 80 angelegt wird, um diese neuen Werte einzusetzen. Vuf der eingeschalteten Seite werden £ und m auf 0 gesetzt und ι auf 1 durch die Efl ^-Verriegelung 108. Auf den nicht gewählten Seiten wird r auf 0 gesetzt durch das invertierte Signal Eg1, fahrend u durch die Ausgabe der Abtastverriegelung 124 eingeschaltet wird. Auf dem eingeschalteten Chip ist die Abtastver- YO 97!Γ05Ο
809822/0620
riegelung 124 abgeschaltet durch das Gerät 126, invertierter Ec-Eingang zum UND-Glied 122 vor der Abtastverriegelung 124. Die Abtastverriegelung 124 kann hinterher bei 130 wieder zurückgestellt werden, entweder durch die I -Abfrageleitung oder ein ODER-verknüpftes Signal auf der R/W-Leitung. Ein Einschalten der Abtastverriegelung 124 bei der Prüfung zum Auffinden einer austauschbaren Seite kann durch eine einfache Negationseingabe von Ir, Im und Iu bei 132 verhindert werden. Der neue Wert von N von der CPU kann separat eingegeben werden durch Abgabe eines Wortimpulses W an das eingeschaltete Chip über den Seitendecodierer 80 in der Speichersteuerung über diesen Decodierer 80 wird das System auch initialisiert, wenn Seiten zuerst geladen werden.
Nachdem die neue Seite ganz in den Primärspeicher eingegeben ist, wird die E .-Verriegelung 108 durch einen Puls E auf der Leitung 134 zurückgestellt und der Speicher steht für nachfolgende Referenzen zur Verfügung. Abfrage und Rückstellung der Steuerbits werden bestimmt durch die Speichersteuerung 66. Die Verwendung eines programmierbaren Mikrosteuerspeichers würde eine Veränderung des Austauschalgorithmus beispielsweise durch ein Uberwachungsprogramm und damit die Optimierung und Feinabstimmung gestatten. Bei Bedarf können weitere Steuerbits eingeschlossen werden. Das Hybridschema auf dem Chip nach der vorliegenden Erfindung gibt Beweglichkeit sowohl im Ausmaß als auch der Art der Seitenbenutzung und der Status/Steuerbits. Gleichzeitig werden viele gegenwärtig in Software implementierte Funktionen direkt in Hardware implementiert, wodurch nicht nur das bereits überlastete Systemprogramm entlastet, sondern jauch die Geschwindigkeit erhöht wird.
In einem Speicher mit Wort- und Bitdecodierer auf dem Chip muß die eigentliche Nr-Decodierung zuerst unmittelbar vor der Chipleinschaltung erfolgen, um eine falsche Adreßwahl zu verhindern. JDas in Fig. 4 gezeigte Hybridchip 50n verwendet für solche Zwecke einen verzögerten Chipwahlgenerator 136. Die assoziative! YO 975 050
809822/062Ü
- 23 -
Adreßdecodierung kann in einem solchen Chipwahlgenerator erfolgen und dadurch sonst sequentielle Funktionen weiter überlappen. In diesem Fall ist die gesamte eigentliche Decodierung abgeschlossen, bevor der assoziative Chip-Einschaltimpuls E auf der gewählten Seite aktiv wird. Der Chipwahlgenerator liegt auf demselben Chip dicht neben dem zugehörigen Speicher 82 zur richtigen Verfolgung der FET-Konstruktionsparameter. Die Benutzung der Assoziativregister auf dem Chip nach der vorliegenden Erfindung ermöglicht das auf natürliche Weise. Wie bereits oben beschrieben wurde, werden die realen Byteadressen Nr1 und Nr2 zum Decodieren auf den Leitungen 62a bzw. 62b der Wort- und Bitleitungen aller Chips auf herkömmliche Art verwendet mit einem realen Wortdecodierer 138 und einem Bit/ Abfrageleitungsdecodierer 140. Die CPU-Leseleitung 56 ist mit Abfrageverstärkern 142 auf dem Chip verbunden, die Daten an die CPU liefern. Die CPU-Sehreibleitung ist mit Schreibverstärkern 144 verbunden, die Daten von der CPU empfangen und sie in den Speicher 82 über Bit-Abfrageleitungsschalter 146 eingeben.
Es wurde also gezeigt, wie die Seitenstatus- und Steuerbits im Gesamt-Assoziativregister beibehalten, abgefragt, fortgeschrieben, gelöscht usw. werden können, und zwar im wesentlichen genauso wie die virtuelle assoziative Adressierung. Die für das Register auf dem Chip erforderlichen virtuellen Speicherfunktionen können durch ein Kennzeichnebit F gesteuert werden, das mit allen Registerzellen parallel so verbunden ist, daß die assoziativen Zellen relativ einfach sind und nur sehr wenig Aufwand und minimale Leitungsverbindungen erfordern. In dem vollassoziativen Register auf dem Chip wird die voll assoziative Adresse des virtuellen Seitenadreßregisters 40a auf jedem Chip verglichen mit allen Nv»Adreßbits und ein Einschaltkennzeichensignal auf die Leitung 42 gegeben, um ein bestimmtes übereinstimmendes Chip zum Lesen oder Schreiben einzuschalten.
YO 975 050
8 0 9 8 7 ? I Π R / (J
Für Seitenaustauschalgorithmen liefern die Register auf dem Chip einen Vergleich der Bits £, m und u und wählen eine Seite der resultierenden Mehrfach-Ubereinstimmungen aus. Die virtuelle Adresse wird in das Register 40a geschrieben, so daß eine neue Seite eingegeben wird, und bleibt fixiert, bis eine andere Seite sie ersetzt. Die virtuellen Adressen aller Seiten werden assoziativ abgefragt, sobald eine virtuelle Adreßübersetzung erforderlich ist. Nach einer solchen Referenz muß die in den Bits r und m enthaltene Seitenbenutzungsinformation geprüft und entsprechend für die angezogene Seite modifiziert werden. Wenn eine Seite eingeschaltet ist, wird das r-Steuerbit auf 1 gesetzt, während das verlangte Byte vom Chip kommt. Wenn die Seite zum Schreiben angezogen wurde, werden die Bits m und r auf 1 gesetzt. Das u-Bit wird nur bei einem Seitenfehler fortgeschrieben. Wenn keine Seite eingeschaltet ist, tritt ein Seitenfehler auf, und dann muß eine Seite aus dem Primärspeicher herausgenommen und die verlangte Seite eingeleitet werden. Der Seitenfehler wird durch den Mehrfach-Übereinstimmungsdetektor 84 erkannt.
Eine Abtastperiode tritt auf, sobald ein assoziativer Vergleich über N -Bits aller Seiten keine Übereinstimmung bringt, d.h., kein Kennzeichen, und so einen Seitenfehler im Mehrfach-Übereinstimmungsdetektor 84 anzeigt zur Einleitung der Abtastope- | ration.
Da jede gegebene Abtastung zu vielen Seiten führen kann, die ' die Kriterien der Steuer- oder Benutzungsbits für die Übereinstimmung erfüllen, d.h. eine Mehrfach-Übereinstimmung erzeugen,! enthält der Mehrfach-Übereinstimmungsdetektor 84 einen Wahl- j teil, der in Fig. 5 gezeigt ist, um nur eine Seite auf dem Chip: logisch zu wählen. Das erfolgt durch Signale auf den Chip- ; Einschaltkennzeichenleitungen F aus den Assoziativregistern 148 a bis n. Hier ist das erste Assoziativregister 148a der Seite 1 über seine Kennzeichenleitung F1 mit einem Inverter 150a zur Lieferung eines invertierten Kennzeichensignales F.. YO 975 050
809822/067 0
verbunden. Die Ausgabe oder F^-Leitung vom Inverter 150a ist verbunden mit einem UND-Glied 152a zusammen mit der Kennzeichenleitung F2 aus dem Assoziativregister 148b der Seite 2. Ein ODER-Glied 154a ist mit beiden Kennzeichenleitungen F. und F2 verbunden. In ähnlicher Weise ist ein ODER-Glied 154b angeschlossen zum Empfang der Ausgabe des ODER-Gliedes 154a und der Kennzeichenleitung F . Die Ausgabe des ODER-Gliedes 154a wird durch den Inverter 15Ob invertiert und das invertierte Signal mit dem F~-Ausgang des Assoziativregisters 148c der Seite 3 an ein UND-Glied 152b angelegt. Der Ausgang des UND-Gliedes 152a ist als einschaltender Eingang E2 zur Seite 2, der Ausgang des UND-Gliedes 152b als einschaltender Eingang E_3 zur Seite 3 usw. geführt. Diese Serienschaltung der Assoziativregister einer jeden Seite geht durch jede Seite weiter. Das letzte ODER-Glied 154n liefert eine Ausgabe auf die Leitung 156, die die Gesamtkennzeichenbedingung anzeigt und auch anzeigt, ob eine Seite eingeschaltet wurde. Diese Leitung 156 !gleicht den Leitungen 86 und 92 aus dem Mehrfach-übereinstimßmngsdetektor 84 in Fig. 4B.
Auf diese Weise sind alle Seiten auf einem Chip physikalisch bo geordnet, daß die erste, eine Obereinstimmung erzeugende Seite gewählt wird. Wenn die Seite 1 z.B. zur Abtastzeit eine Übereinstimmung liefert, wird mit ihrem Einschaltkennzeichen
(1 diese Seite für den Austausch gewählt. Wenn die Seite 1 ceine Übereinstimmung erzeugt und angenommen wird, daß das das Kennzeichen F.."O bedeutet, dann wird dieses Kennzeichen idurch ein einfaches NOR-Glied 15Oa invertiert und dessen Ausgang im UND-Glied 152a mit dem Kennzeichen der Seite 2 verknüpft. Die Ausgabe des UND-Gliedes 152a ist das Einschaltsignal E2 der Seite 2. In gleicher Weise wird die Ausgabe des ODER-Gliedes 154a bei 15Ob invertiert und im UND-Glied 152b nit dem Kennzeichen der Seite 3 verknüpft usw. Im obigen Fall erzeugt das invertierte Kennzeichen der Seite 1 jetzt eine 1. Wenn die Seite 2 eine Übereinstimmung erzeugt, ist das Ein-Lchaltsignal E-2 eine 1 und dadurch wird die Seite 2 für den YO 975 O5O ~
809822/0620
Austausch gewählt. Wenn die Seite 2 keine Übereinstimmung erzeugt, ist ihr Kennzeichen O und es ergibt sich E 2 =0· Der Wahlprozeß läuft logisch so durch alle seriellen Kennzeichenverbindungen weiter, die Verzögerung ist nur so groß wie diejenige des seriellen Inverters und der ODER- und UND-Glieder. Es wird jeweils nur eine einzige Seite für den Austausch und dadurch eine Seite auf einem Chip gewählt. In einem großen Speicher mit mehreren Chips können dieselben logischen Verbindungen zwischen den Chips zum Wählen einer Seite aus einer Übereinstimmung auf mehreren Chips verwendet werden.
YO 975 050
809822/0620

Claims (7)

  1. PATE N TANSP Rg CHE
    Hybrider Halbleiterspeicher rait assoziativer Seitenadressierung, Seitenauetausch und Steuerung auf dem Chip zum Einsatz in Speicherhierarchien unter Verwendung eines vollassoziativen Verzeichnisses und einer vollassoziativen Adreßübersetzung, dadurch gekennzeichnet, daß jedes der den Speicher bildenden Halbleiterchips außer den Speicherzellen wenigstens eine assoziative Schaltung einschließlich eines virtuellen Seitenadreßregisters zum Speichern der virtuellen Adreßbits, die jeder auf einem oder mehreren Chips stehenden Seiten zugeordnet sind, angeordnet sind, die mit einem virtuellen Seitenadreßregister und einem realen Adreßregister des die Speicherhierarchie enthaltenden Rechnersystems verbunden sind.
  2. 2. Hybrider Halbleiterspeicher nach Anspruch 1, dadurch gekennzeichnet, daß In der Seitenanforderungseinrichtung des den Hybridspeicher enthaltenden Rechnersystems Schaltungsanordnungen zur Abgaben von virtuellen Seitenadreßabfragen vom virtuellen Seitenadreßregister an jedes Speicherchip zum Vergleich mit der im virtuellen Seitenregister gespeicherten Adresse angeordnet sind, und daß bei Obereinstimmen der virtuellen Seitenadresse das Lesen und/oder Schreiben von Daten im ausgewählten Chip an den durch das reale Adreßregister adressierten Plätzen erfolgt.
  3. 3. Hybrider Halbleiterspeicher nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß auf jedem Speicherchip ein Seitenbenutzungs-Informationsregister, ein Seitenfortschreibungsregister und Steuerregister zum Speichern von; Seitendaten angeordnet sind, mit denen die Auswählbarkeit einer Seite zum Austausch bestimmt wird, wenn ein Seitenfehler erkannt wird.
    YO 975 050
    ORtQtNAL INSPECTED
  4. 4. Hybrider Halbleiterspeicher nach Anspruch 2, dadurch gekennzeichnet, daß auf jedem Speicherchip eine Kennzeichenleitung vorhanden ist, die eine Adresse für das System dahingehend liefert, daß eine Seite eingeschaltet wurde, und daß bei keiner Übereinstimmung der virtuellen Seitenadresse mit einem der Chips ein Seitenfehler erkannt wird, wodurch ein Abtaster startet, der die Seitenbenutzungs- und Steuerbits in den Registern auf jedem Speicherchip abfragt.
  5. 5. Hybrider Halbleiterspeicher nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß jedes Speicherchip von dem den Hybridspeicher enthaltenden Rechnersystem über ein Primäradreßregister adressiert wird, das die realen Wort- und Bitadressen speichert und die Wort- und Bitleitungen aller Speicherchips auswählt, daß jedes Halbleiterchip eine Seite einer bestimmten Größe (z.B. 4K Bytes) speichert, daß jedes Speicherchip assoziativ decodiert wird, indem die realen Adreßbits decodiert werden und ein Byte wie bei der nichtassoziativen Adressierung auswählen, daß Byteleitungen (16a und 16b) mit dem Wort- bzw. Bitdecodierer verbunden sind, die ein Byte von allen Speicherchips auswählen und das richtige Speicherchip durch ein separates Chip-Einschaltsignal (E) bestimmen, das seinerseits auf einer Leitung (20) eines jeden Halbleiterspeicherchips erzeugt wird, die mit einem auf jedem Speicherchip befindlichen Assoziativregister (22) verbunden ist, das die virtuellen Adreßbits speichert, die jedem Speicherchip (Seite) vom Systemüberwachungsprogramm zugeordnet wur-
    ! den.
  6. 6. Hybrider Halbleiterspeicher nach den Ansprüchen 1 bis
    ; 5, dadurch gekennzeichnet, daß das Assoziativregister aus einem virtuellen Chip-Adreßregister zum Speichern i
    YO 975 050
    809822/062Π
    der virtuellen Adreßbits des Speicherchips und einem Vergleichsregister zum Vergleichen der virtuellen Adresse im Adreßregister mit der abgefragten virtuellen Adresse auf einer Leitung (24) vom virtuellen Seitenadreßregister des umgebenden Rechnersystems besteht.
  7. 7. Hybrider Halbleiterspeicher nach Anspruch 5, dadurch gekennzeichnet, daß in Assoziativregistern (40) auf jedem Speicherchip zwei Teile der Benutzungsinformation, nämlich ein Referenz- und ein Modifizierbit gespeichert sind.
    YO 975 050
    fi ρ Q ο ? ? / η r.'/ M
DE2749850A 1976-11-29 1977-11-08 Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip Expired DE2749850C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/746,033 US4084230A (en) 1976-11-29 1976-11-29 Hybrid semiconductor memory with on-chip associative page addressing, page replacement and control

Publications (3)

Publication Number Publication Date
DE2749850A1 true DE2749850A1 (de) 1978-06-01
DE2749850B2 DE2749850B2 (de) 1980-09-04
DE2749850C3 DE2749850C3 (de) 1981-06-11

Family

ID=24999218

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2749850A Expired DE2749850C3 (de) 1976-11-29 1977-11-08 Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip

Country Status (6)

Country Link
US (1) US4084230A (de)
JP (1) JPS5368926A (de)
DE (1) DE2749850C3 (de)
FR (1) FR2373830A1 (de)
GB (1) GB1590198A (de)
IT (1) IT1113673B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0013737A1 (de) * 1979-01-26 1980-08-06 International Business Machines Corporation Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2842288A1 (de) * 1978-09-28 1980-04-17 Siemens Ag Datentransferschalter mit assoziativer adressauswahl in einem virtuellen speicher
US4277826A (en) * 1978-10-23 1981-07-07 Collins Robert W Synchronizing mechanism for page replacement control
US4254463A (en) * 1978-12-14 1981-03-03 Rockwell International Corporation Data processing system with address translation
US4276609A (en) * 1979-01-04 1981-06-30 Ncr Corporation CCD memory retrieval system
WO1981001066A1 (en) * 1979-10-11 1981-04-16 Nanodata Computer Corp Data processing system
US4354225A (en) * 1979-10-11 1982-10-12 Nanodata Computer Corporation Intelligent main store for data processing systems
US4332010A (en) * 1980-03-17 1982-05-25 International Business Machines Corporation Cache synonym detection and handling mechanism
US4373181A (en) * 1980-07-30 1983-02-08 Chisholm Douglas R Dynamic device address assignment mechanism for a data processing system
US4482952A (en) * 1980-12-15 1984-11-13 Nippon Electric Co., Ltd. Virtual addressing system using page field comparisons to selectively validate cache buffer data on read main memory data
US4400774A (en) * 1981-02-02 1983-08-23 Bell Telephone Laboratories, Incorporated Cache addressing arrangement in a computer system
JPS57143782A (en) * 1981-03-03 1982-09-06 Toshiba Corp Information processor
US4815034A (en) * 1981-03-18 1989-03-21 Mackey Timothy I Dynamic memory address system for I/O devices
US4513367A (en) * 1981-03-23 1985-04-23 International Business Machines Corporation Cache locking controls in a multiprocessor
DE3138973A1 (de) * 1981-09-30 1983-04-21 Siemens AG, 1000 Berlin und 8000 München Vlsi-gerechter onchip mikroprozessorcachespeicher und verfahren zu seinem betrieb
DE3138972A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Onchip mikroprozessorchachespeichersystem und verfahren zu seinem betrieb
US4458310A (en) * 1981-10-02 1984-07-03 At&T Bell Laboratories Cache memory using a lowest priority replacement circuit
US4803655A (en) * 1981-12-04 1989-02-07 Unisys Corp. Data processing system employing a plurality of rapidly switchable pages for providing data transfer between modules
US4513371A (en) * 1982-07-29 1985-04-23 Ncr Corporation Computer interface apparatus using split-cycle lookahead addressing for faster access to paged memory
US4638426A (en) 1982-12-30 1987-01-20 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
JPS59161569A (ja) * 1983-03-07 1984-09-12 株式会社 大井製作所 自動車のドア構造
JPS59146472U (ja) * 1983-03-17 1984-09-29 株式会社大井製作所 自動車用ドアチエツク装置
DE3347357A1 (de) * 1983-12-28 1985-07-11 Siemens AG, 1000 Berlin und 8000 München Einrichtung zum vergeben von adressen an steckbare baugruppen
US4881164A (en) * 1983-12-30 1989-11-14 International Business Machines Corporation Multi-microprocessor for controlling shared memory
JPH0335827Y2 (de) * 1984-09-08 1991-07-30
US4916603A (en) * 1985-03-18 1990-04-10 Wang Labortatories, Inc. Distributed reference and change table for a virtual memory system
US4727485A (en) * 1986-01-02 1988-02-23 Motorola, Inc. Paged memory management unit which locks translators in translation cache if lock specified in translation table
US4953073A (en) * 1986-02-06 1990-08-28 Mips Computer Systems, Inc. Cup chip having tag comparator and address translation unit on chip and connected to off-chip cache and main memories
US4833603A (en) * 1986-05-30 1989-05-23 Bull Hn Information Systems Inc. Apparatus and method for implementation of a page frame replacement algorithm in a data processing system having virtual memory addressing
US5278840A (en) * 1987-07-01 1994-01-11 Digital Equipment Corporation Apparatus and method for data induced condition signalling
US4937736A (en) * 1987-11-30 1990-06-26 International Business Machines Corporation Memory controller for protected memory with automatic access granting capability
US5155834A (en) * 1988-03-18 1992-10-13 Wang Laboratories, Inc. Reference and change table storage system for virtual memory data processing system having a plurality of processors accessing common memory
DE68917759T2 (de) * 1988-03-18 1995-04-27 Wang Laboratories Verteilte Referenz- und Änderungstabelle für ein virtuelles Speichersystem.
US5239635A (en) * 1988-06-06 1993-08-24 Digital Equipment Corporation Virtual address to physical address translation using page tables in virtual memory
US5293612A (en) * 1989-05-11 1994-03-08 Tandem Computers Incorporated Selective dump method and apparatus
JP2833062B2 (ja) * 1989-10-30 1998-12-09 株式会社日立製作所 キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
JPH087717B2 (ja) * 1991-09-03 1996-01-29 富士通株式会社 動的アドレス変換処理装置
US5166660A (en) * 1991-09-19 1992-11-24 Unisys Corporation Random access compare array
US5778418A (en) * 1991-09-27 1998-07-07 Sandisk Corporation Mass computer storage system having both solid state and rotating disk types of memory
EP0552426A1 (de) * 1992-01-24 1993-07-28 International Business Machines Corporation Mehrstufiges Speichersystem
US5493663A (en) * 1992-04-22 1996-02-20 International Business Machines Corporation Method and apparatus for predetermining pages for swapping from physical memory in accordance with the number of accesses
GB9307359D0 (en) * 1993-04-08 1993-06-02 Int Computers Ltd Cache replacement mechanism
US5598549A (en) * 1993-06-11 1997-01-28 At&T Global Information Solutions Company Array storage system for returning an I/O complete signal to a virtual I/O daemon that is separated from software array driver and physical device driver
US5664217A (en) * 1993-08-03 1997-09-02 Bmc Software, Inc. Method of avoiding physical I/O via caching with prioritized LRU management
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
GB9521980D0 (en) * 1995-10-26 1996-01-03 Sgs Thomson Microelectronics Branch target buffer
US6783837B1 (en) * 1999-10-01 2004-08-31 Kimberly-Clark Worldwide, Inc. Fibrous creased fabrics
US7310706B1 (en) 2001-06-01 2007-12-18 Mips Technologies, Inc. Random cache line refill
US6950894B2 (en) * 2002-08-28 2005-09-27 Intel Corporation Techniques using integrated circuit chip capable of being coupled to storage system
US7502901B2 (en) * 2003-03-26 2009-03-10 Panasonic Corporation Memory replacement mechanism in semiconductor device
US7082508B2 (en) * 2003-06-24 2006-07-25 Intel Corporation Dynamic TLB locking based on page usage metric

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3569938A (en) * 1967-12-20 1971-03-09 Ibm Storage manager
US3781808A (en) * 1972-10-17 1973-12-25 Ibm Virtual memory system
GB1461245A (en) * 1973-01-28 1977-01-13 Hawker Siddeley Dynamics Ltd Reliability of random access memory systems
US3840863A (en) * 1973-10-23 1974-10-08 Ibm Dynamic storage hierarchy system
US3983538A (en) * 1974-05-01 1976-09-28 International Business Machines Corporation Universal LSI array logic modules with integral storage array and variable autonomous sequencing

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NICHTS ERMITTELT *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0013737A1 (de) * 1979-01-26 1980-08-06 International Business Machines Corporation Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem

Also Published As

Publication number Publication date
DE2749850C3 (de) 1981-06-11
JPS5368926A (en) 1978-06-19
DE2749850B2 (de) 1980-09-04
GB1590198A (en) 1981-05-28
JPS5729783B2 (de) 1982-06-24
US4084230A (en) 1978-04-11
IT1113673B (it) 1986-01-20
FR2373830B1 (de) 1980-01-04
FR2373830A1 (fr) 1978-07-07

Similar Documents

Publication Publication Date Title
DE2749850C3 (de) Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip
DE2364785C3 (de) Integrierter Halbleiterspeicher mit nach guten und defekten Speicherzellen sortierten Speicherzellen
DE69019697T2 (de) Reparierbare Speicherschaltung.
DE2515696C2 (de) Datenverarbeitungssystem
DE2646162C3 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
DE2350225C2 (de)
DE2163342C3 (de) Hierarchische binäre Speichervorrichtung
DE2847960A1 (de) Speichersteuereinrichtung
DE2523414B2 (de) Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf
DE2154106A1 (de) Arbeitsspeicherwerk
DE3603926A1 (de) Halbleiter-speicherelement
DE2117936A1 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
EP0046976A2 (de) Halbleiterspeicher aus Speicherbausteinen mit redundanten Speicherbereichen
DE2326616A1 (de) Verfahren zum betreiben einer mehrere speichereinheiten enthaltenden datenverarbeitungsanlage
DE2928488A1 (de) Speicher-subsystem
DE2441754A1 (de) Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors
DE3209679A1 (de) Halbleiter-speichereinrichtung
DE3873388T2 (de) Cache-speicher.
DE2640357A1 (de) Wortgruppenprioritaetsanordnung
EP0134822B1 (de) Digitalspeicher
DE19957612A1 (de) Verfahren und System zur Speicherzugriffsverwaltung für Synchronous Dynamic Random-Access Memories oder dergleichen
DE2004934A1 (de)
DE2355814C2 (de) Kanalzugriffseinrichtung für eine hierarchische Speicheranordnung

Legal Events

Date Code Title Description
OAP Request for examination filed
OD Request for examination
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee