DE2749850B2 - 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
DE2749850B2
DE2749850B2 DE2749850A DE2749850A DE2749850B2 DE 2749850 B2 DE2749850 B2 DE 2749850B2 DE 2749850 A DE2749850 A DE 2749850A DE 2749850 A DE2749850 A DE 2749850A DE 2749850 B2 DE2749850 B2 DE 2749850B2
Authority
DE
Germany
Prior art keywords
page
address
chip
memory
register
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
DE2749850A
Other languages
English (en)
Other versions
DE2749850C3 (de
DE2749850A1 (de
Inventor
Richard Edward Peekskill N.Y. Matick (V.St.A.)
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

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 Obersetzung einer großen virtuellen Adresse in eine kleiners reale Adresse. Dazu gibt es grundsätzlich zwei TechtJksn, 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 Hauptspeicher selbst benutzt sie ist aber sehr langsam, braucht einen beträchtlichen Teil des Hauptspeichers und verlangt außerdem eine ausgeklügelte Hardwareoder 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 Assoziativverzeichnis für alle Speicherhierarchien 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 niiiQ 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 ist, braucht man einen zweiten Zyklus, um die endgültigen Daten zu adressieren.
In heutigen Schemata übernehmen große Seitentabellen die volle AdreBübersetzung. Sie sind jedoch sehr >o 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 '5 erfolgen zu diesen Seiten, wodurch die Zugriffszeit stark verkürzt wird. Dieses unter verschiedenen Namen, wie Obersetzungsunterstützungspuffer (TLB) bekannte Teilverzeichnis übernimmt jedoch nur eine teilweise Obersetzung 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 schnell sein, wenn weitere Verzögerungen vermieden werden sollen. Infolgedessen sind TLB's realisiert in kleinen Speichern in25 Bipoiar-Registertechnologie für hohe Geschwindigkeit, aber zu hohen Kosten. Wenn man diesen TLB so vergrößern würde, daß er eine volle Übersetzung durchführt, würde er langsam, kostspielig und immer noch einen Zugriff zum TLB für die reale Seitenadresse, i0 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 J5 der virtuellen zur realen Seitenadresse und ein Seitenaustauschalgorithmus. Der Seitenaustauschalgorithmus umfaßt die Funktionen der Seitenbenutzungsinformation und der Fortschreibung sowie die Auswahl einer Seite zum Austausch beim Auftreten einer40 fehlerhaften Seite.
Der Erfindung liegt deshalb die Aufgabt- zugrunde, einen hybriden Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf den einzelnen, den Halbleiterspeicher bildenden45 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 virtuellen 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 Lösung dieser Aufgabe ergibt sich aus dem Patentanspruch 1.
Weiterbildungen des Gegenstands des Patentan- <>ο Spruchs 1 sind in den Unteransprüchen angegeben.
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 Zugriffszyklus 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 Portschreibefunktior. 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 Überwachungssystem 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 zeigt
F i g. 1 einen hybriden Halbleiter - Randomspeicher mit assoziativer AdreBübersetzung uno ? öderen Steuerfunktionen auf dem Chip,
Fig.2A in einem Funktionsblockdiagramm ein assoziatives Vergleichsregister auf jedem Chip,
F i g. ?B Einzelheiten der assoziativen Bitzelle des in F i g. 2A gezeigten Assoziativregisters,
F i g. 3 ein Assoziativregister auf dem Chip mit dem virtuellen Adreßübersetzungsregister sowie Registern für die Seitenbenutzung und anderer Steuerfunktionen,
F i g. 4 die Zusammengehörigkeit der F i g. 4 A bis 4E,
Fig.4A bis 4E im einzelnen den logischen Aufbau eines hybriden Speichersystems und
Fig.5 in einem logischen Blockdiagramm die Arbeitsweise des Wählers für Mehrfachübereinstimmungen bei der Auswahl einer aus mehreren Übereinstimmungen mit Hilfe eines Kennzeichens pi ο Seite.
F i g. 1 zeigt einen hybriden Halbleiter-Randomspeicher, der für die assoziative Adreßübersetzui.g 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 erforderlichen Verbindungen und Verdrahtungsbahnen. Jedes Chip 12 wird durch die CPU 10 über ein Primäradreßregister 14 adressiert, das die realen Wort- und Bitadressen JvVi und /VV 2 speichert um die Wort- und Bitleitungen aller Chips zu wählen. Die Chips 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 Dk CPU IO enthält Register zum Speichern einer totalen, effektiven, virtuellen Adresse N5 für ein virtuelles Rechnersystem, die bis zu 30 Bits oder größer sein kai,η und eine logische Adreßkapazität von 230 oder mehr als I (P Bytes gestattet. Der eigentliche Hauptspeicher ist typischerweise wesentlich kleiner, beispielsweise 270 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 Nr bezeichnet und verlangen keine assoziative Übersetzung. Die virtuelle Seitenadresse N1. die assoziativ decodievt werden muß, ist somit
/V1, = N1-Nr
= 30- 12 = 18
Zur Illustration wird angenommen, daQ jedes Chip eine Seite von 4K Bytes (32Ai Bits/Chips) enthält, und da jede Seite assoziativ decodiert werden muß, muß auch jedes Chip 12 assoziativ decodiert werden. Das wird wie folgt erreicht. Die realen Adreßbits Nr werden decodiert als /Vri und /V1-2 und wählen ein Byte wie normal bei der nichtassoziativen Adressierung. Die Byteleitungen 16a und 16f> sind mit dem Wortdecoder 18a bzw. dem Bitdecoder 186 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
verändert und ausgetauscht werden. Für 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. Nn 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 N, direkt in eine reale Adresse umgewandelt.
in einer Realisierung des Speichers können 220= 1 Million Bytes vorgesehen sein. Mit Seiten von je AK Byte wären dazu 256 Seiten oder 256 Speicherchips erforderlich. Ein Vorteil 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 kleinere 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.
In Fi g. 2A ist in einem Funktionsblockdiagramm das Assoziativregister 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 /V, wird in dem aus vier FET-Grundflipflops bestehenden Adreßregister 22a gespeichert, das zusammen mit zwei Zugriffstransisto- -> ren 22c und 22c/ zwischen der Bitleitung BO und dem Knotenpunkt A bzw. der Bitleitung B1 und dem Knotenpunkt B den Randomzugriffsspeicherteil bildet. Das assoziative Vergleichsregister 22b enthält vier Transistoren Ta, Tb, Tc und Td für die Vergleichsfunk-
in lion, während T/für eine separate Abfrage sorgt, ähnlich wie das in Fig. 2A gezeigte UND-Glied 28. Die Lese/Schreibwortleitung 30 dient auch als Einschaltleitung 20, da die beiden Funktionen niemals gleichzeitig ausgeführt werden. Die Bitabfrageleitungen SO und dl
< ι sind normalerweise hoch, und zwar auf einer bestimmten Vorspannung + Vb. Eine Null wird in das Adreßregister 22a durch einen negativen Puls auf RO ιτΑΒΠΑΐ/iliA··· um <r| ο» D*n>«<AP ir* \/o»>t«i ns4· · r»*v mil A»n»m
positiven Puls auf der Lese/Schreibwortleitung 30 auf
:o nahe Erdpotential zu bringen. Dadurch wird der Knotenpunkt A auf Erdpotential gebracht, während das Potential des Punktes fl hochgehalten wird.
Eine Eins wird dadurch geschrieben, daß man den Knotenpunkt B1 mit einem negativen Puls in
r, Verbindung mit einem Wortleitungspuls, der den Knotenpunkt B auf Null und den Knotenpunkt A auf eine hofc : Spannung setzt, auf Erdpotential bringt. Die Speicherzelle ist für Störimpulse auf der Lese/Schreibwortleitung 30 so lange unempfindlich, wie beide
j" Bitleitungen auf ihrer normalerweise hohen Vorspannung Vb liegen. Ein assoziativer Vergleich oder eine Abfrage werden vorgenommen, indem man Daten auf das Bit/Abfragepaar BO und B 1 gibt in Kombination mit einem Abfrageimpuls auf der /-Leitung 26. Externe
i-"> Daten zur Abfrage haben dieselbe Form wie die für das Schreiben, und zwar stellen BO auf Erde und Bi auf + Vb für den Vergleich eine Null dar und das Gegenteil gilt für eine Eins. Der Abfrageimpuls / läßt einen Kennzeichenstrom in die Lese/Schreibwortleitung 30
j» 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 /-Leitungen gepulst sind. Für eine assoziative 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 verbunden ist, dann erzeugt eine Abfrage »Übereinstim mung gleich« kein Kennzeichen, d. h., ein KennzeL ilen bedeutet »keine Übereinstimmung«. Die entgegengesetzten Verbindungen, dargestellt in gestrichelten Linien, erzeugen die entgegengesetzte Polarität des Kennzeichens. Die frühere logische Verbindung (ausge zogene Linien) gestattet eine Parallelschaltung aller Zellen des Assoziativregisters mit derselben Kennzeichenleitung, wodurch die Schaltung vereinfacht wird. Wenn mehrere Zeilen, 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 »Obereinstimmung« = »Kennzeichen« würde zu einer sehr schwierigen Abfühlung führen. Wenn beispielsweise in
öd einem Vergieichsfeid 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, ein schwierige Forderung. Die Logik »Kennzei-
chen = keine Übereinstimmung« vereinfacht dieses Abftihlproblem 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 niiht 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, dip Hann eingegeben wird, um den Notizspeicher zu adressieren. Das Speichersystem der vorliegenden Erfindung vermeidet die Verzögerung durch den zweiten Zugriff, da das Übereinstimmungssignal direkt zur Chipeinschaltung benutzt wird. Im System der vorliegenden Erfindung laufen die Adreßsignale /V1 und Nr gleichzeitig an alle Chips, so daß keine zusätzliche Verzögerung durch die anderweitige Decodierung von N, auftritt. Die Decodierung von A/v ist außerdem mit der Decodierung von Nr ü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. Be· dem vorliegenden Speichersystem wären nur zwei der 18 virtuellen Adreßbus in den Assoziativregistern leer oder unbenutzt tei 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 F i g. 1 beschrieben wurde, wird durch die Benutzung der Assoziativlogik auf dem Chip für die virtuelle Adressierung eine voll assoziative virtuelle Seitenadreß-Übersetzungsfunktion mit nur einem kleinen Assoziativspeicher möglich, wodurch der zweite normalerweise in Notizspeichersystemen erforderliche Zugriffszyklus umgangen oder die langsame Tabellensuche in Speichersystemen Hauptspeicher-Platte 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 Systemen werden diese Funktionen gegenwärtig mit einer besonderer. 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 logi
schen 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. I fordert die CPU in einer typischen Operation eine Seite mit einer virtuellen Seitenadresse aus Λ/,-Biis und einer realen Byteadresse aus AV-Bits an.
Die AV-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 /V1. 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 Se:!enberyj!z'jr:gs:"icr~si;GM w;cdcr rnü verschiedenen, vorher angegebenen Prioritätsrangbits geprüft und ein Seiteneinschaltsignal bei Übereinstimmung gegeben werden. Das gemeinsame Element in all diesen logischen Schritten ist der Bedarf an einer Seitencinschaltfunktion, 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 Speichersystemen 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 schwierig 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 Fig.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 auf 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 Auslausch wählbar, von dem System nach der vorliegenden Erfindung werden zwei Teile der Benutzungsinformation verwendet, und zwar ein Referenzbit rund ein Modifizierbit m, dargestellt in F i g. 3, die in den Assoziativregistern 40 auf jedem Chip gespeichert
werden. Die Register 40 bestehen im wesentlichen aus mehreren dem in den F i g. 1 sowie 2A und 2B gezeigten Register 22 identischen Registern. Insbesondere umfassen die Register 40 zusätzlich zu dem Bitregister 40e für das virtuelle Adreßbit Nr 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 eine Seite während einer bestimmten Zeit oder eines Abtwtintervalles 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, mund υ können weitere Steuerbits eingeschlossen werden, wie etwa Verriegelungsbits L die im Register ^^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 Fig. I sowie 2A und 2B beschrieben wurde, und sie teilen die gemeinsame Kennzeichenleitung 42, dargestellt in Fig.3. Ein assoziatives Vergleichsregister 22, das in den Fig. 2A und 2B gezeigt ist, dient somit als Steuerbitregister zum Speichern und Abfragen der Steuerbits r. 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 //, Ir, Im und Iu die assoziative Maske oder das Vergleichsfeld liefern. Alle auf den Dateneingangsleitungen 44a, b, c und e vorhandenen Daten werden mit vorher im Register gespeicherten Daten nur über dem Feld verglichen, das einen Abfrageeingang / 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 Kenn^eichenleitungen 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 Ausfalles einer Seite nach einer austauschbaren Seite zu suchen. In der Hybridanlage nach der vorliegenden Erfindung 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 Fi g. 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 /η-Bit wird nur zurückgestellt, wenn eine modifizierte Seite auf die Platte zurückgeleitet wurde.
Die Fig.4A bis 4E zeigen, wie ein gemeinsamer Seitenaustauschalgorithmus, wie er in einem virvuellen Speicherbetriebssystem verwendet wird, auf einem Hybridehip nach der vorliegenden Erfindung implementiert wird. Hiei 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ührungsbeispiel zeigt im einzelnen die logischen Funktionen während des Speicherzugriffs, wobei jedes Chip einer virtuellen Seite gleichgesetzt ist. Die CPU erzeugt die gesamte
in logische Speicheradresse Nv+Nr bei 52 und die Operation 54 (Lesen oder Schreiben [R/W]), wobei R und W 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
r> alten oder herkömmlichen Funktionen in dem gestrichelt dargestellten Block 60. Die virtuelle Adresse N, geht auf der Leitung 44a zu den Adreßteilen aller Chip-Assoziativregister 40a, Nr auf den Leitungen 62a und 62b zu allen Chips. Das R/W-Signal auf den
2n Leitungen 56 und 58 wird im ODER-Glied 64 verknüpft, an eine Speichersteuerung 66 geleitet, die zur entsprechenden Zeit über die R/W-Schnittstelle 68 ein Abfrage-Adreßsignal / I 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 Signals »Eingeschaltet beim Lesen/Schreiben« auf Leitung 74. Wenn angenommen wird, daß eine Seite eingeschaltet ist, müßten die Bits r und/oder m
m fortgeschrieben werden. Das Signal »Seite eingeschaltet beim Lesen/Schreiben«, £Wauf der Leitung 74 dient als Eingang zum r-Steuerbitregister 4Oi und wird im UND-Glied 76 mit dem modifizierten W-Signal auf Leitung 58 vom herkömmlichen Teil 60 des Chips
)■> verknüpft zu einem Eingangssignal auf der Leitung 78 zum m-Bitregister 40c. Die assoziative Kennzeichenleitung 42 wird dann gepulst, nachdem die richtigen Daten rc und mc zur Verfugung stehen, um diese Bits des gewählten Seitenregisters zu setzen. Dieser Wortpuls
■»" kann gleichzeitig auf der Kennzeichenleitung 42 durch einen Seilendecodierer 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 Speicher-
·»■'> steuerung 66 werden die Kennzeichensignale Fl bis Fn von allen η-Seiten auf eine Seiteneinschaltung in einem Mehrfach-Übereinstimmungsdetektor 84 geprüft. Der Mehrfach-Übereinstimmungsdetektor 84 besteht aus konventionellen Vergleichsschaltungen. Wenn eine
Vi Seite eingeschaltet ist, wird das so erzeugte ErSignal 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
r<"> eingeschaltet« Et auf der Leitung 92 vom Mehrfach-Übereinstimmungsdetektor 84 kommt, tritt ein Seitenfehler auf. Er wird im UND-Glied 94 mit R/W verknüpft, um durch ein Signal auf der Leitung % emen Seitenfehler beim Lesen/Schreiben anzuzeigen, Erw,
mi und dadurch weitere Anforderungen der CPU auszusperren. Mildem Signal E«ivauf der Leitung96 werden auch die logischen Funktionen des Austauschalgorithmus im Seitenaustausch-Algorithmusteil 98 der Speichersteuerung 66 eingeleitet. Seitenaustauschalgo-
<" rithmen, ihre logische Operation und die Hardware innerhaib 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=0(nicht angezogen) /n=0(nicht verändert) und u= I (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 Chipregistern 4Qb,40c und 40e und die Vergleichsdaten r„ ma uc auf den Leitungen 44b, c und e gebraucht. Ein Prüfsignal T wird außerdem auf der Leitung 100 vom Seitenaustauschalgorithmusteil 98 erzeugt, um den Mehrfach-Übereinstimmungswähler im Mehrfach-Übereinstimmungsdetektor 84 zu aktivieren und Ober das UND-Glied 102 die Bits r„ mc und uc erhöhen und weiterprüfen zu können, wenn sich bei der ersten Prüfung keine Übereinstimmung für r=0, m = 0, u= 1 ergibt. Nimmt man an, daß keine Übereinstimmung auftritt, so können weitere Prüfungen nach folgendem PriGr;tai55CnciViä uuicngefünri werden:
r=0 /n = 0 U=O
r=l m = 0 U= 1
usw., bis schließlich
r—\ m—\ u=0.
Während der Prüfung kann eine Mehrfach-Übereinstimmung auftreten, d.h. mehr ;ils eine Seite kann ein Übereinstimmungskennzeichen für die von der Speichersteuerung 66 gelieferten Steuerbitkriterien abgeben Der Mehrfach-Überein- timmungsdetektor 84 wählt eine dieser Seiten. Die hierfür erforderliche Schaltung ist relativ einfach und im Zusammenhang mit F i g. 5 beschrieben. Diese Seite wird durch die neue Seite ersetzt. Zwei logische Funktionen müssen dazu ausgeführt werden; zuerst miß die gewählte Seite eingeschaltet werden, d. h. ein Einschaltsignal Er auf der Chipleiiung 104 vom ODER-Glied 106 muß eingeschaltet werden, damit hinterher die alte Seite ausgelesen werden kann, wenn m=\ ist und die neue Seite eingeschrieben werden kann. Als zweites muß in das Assoziativregister 40a der neue Wert für /V1. eingetragen werden und r. m und u müssen zurückgestellt werden. Das Einschalten von einem E1- auf dem gewählten Chip kann auf verschiedene Weise erfolgen. Ein einfaches Verfahren besteht in der Trennung der Leitungen En/ bis Ep„ vom Mehrfach-Übereinstimmungsdetektor 84 zu jeder Seite. Nur eine dieser Leitungen wird erregt und kann als direkte Schaltung der E51-Verriegelung 108 benutzt werden.
Eine andere Einschaltmöglichkeit für E1 auf der Leitung 104 besteht in der Benutzung der Kennzeichenleitungen selbst für die Zwei-Weg-Kommunikation. Nachdem vom Mehrfach-Übereinstimmungsdetektor 84 am Anfang alle Kennzeichenimpulse empfangen wurden, kann die gewählte Leitung in Verbindung mit einem //-Impuls gepulst werden zum Einschalten der E5 i-Verriegelung 108. Zu diesem Zeitpunkt soll die Ε,-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 r, m und u.
In der Zwischenzeit hat innerhalb der Speichersteuerung 66 der Mehrfach-Übereinstimmungsdetektor 84 ein Seiteneinschaltsignal Er auf der Leitung 86 erzeugt, das im UND-Glied 110 mit dem Prüfsignal Tauf 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 Abtastintervalls. Alle Bits rund υ auf allen nicht gewählten Seiten müssen jetzt als Teil der Seitenbenutzungshistorie fortgeschrie- > ben werden. Das kann mit dem SeitenausluUyklus im Speichersteuerteil 112 überlappt oder bis zu einem späteren Zeitpunkt verzögert werden. Das Fortschreiben erfolgt nach folgender Logik. Wenn r=0 ist, wird u= I gesetzt und r bleibt unverändert. In mehreren
ίο «-Systemen wird « um 1 erhöht. Wenn r= I ist, setzt man u=0 und r=0. Auf allen Chips, einschließlich des eingeschalteten, wird das r-Bit natürlich ausgeschaltet. Auf der eingeschalteten Seite muß u auf I gesetzt "verden und r und m müssen auf 0 gesetzt werden.
ι > während alle anderen Seiten der vorherigen Logik folgen. Die Ausgabe der Ε,ι-Verriegelung 108 wird auf die Leitung 114 gegeben als Eingang zu den Bitleitungen der Register 40Λ, c und e für die Bits r, m bzw. u. Der Eingang kann direkt an die /η-Bits angelegt werden, da
.'η sie nur auf 0 gesetzt werden, wenn eine Seite ausgeleitei wird. Auf einer Seite kann u jedoch bei einem Abtastzyklus auf 1 oder 0 gesetzt werden, während rauf allen Seiten zur Abtastzeit auf 0 gesetzt wird, und somit mü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 /r-Abfragesignal geprüft und z. B. r= 1 vom Seitenaustausch-Algorithmusteil 98 an alle Chips. Das assoziative Kennzeichen auf der Leitung 42 wird durch den Inverter 120 invertiert und im UND-Glied 122 mit /, verknüpft zum Einschalten einer Abtastverriegelung 124. Der Ausgang der Abtastverriegelung dient als Eingang zum Register 40e für das u-Bit. Wenn eine Übereinstimmung erzielt wurde fürz. B. r= l.dann sind die Signale auf den Verriegelungsausgängen uc=0 und TJ,.= 1. Wenn keine Übereinstimmung erzielt wurde, sind sie umgekehrt. Alle richtigen Eingangsdaten stehen jetzi an den Steuerbits sowohl der eingeschalteten als auch der nicht gewählten Seiten zur Verfügung, so daß ein Impuls »Assoziativregister schreiben«, W^/ran alle Chips vom Seitendecodierer 80 angelegt wird, um diese neuen Werte einzusetzen. Auf der eingeschalteten Seite werden r und m auf 0 gesetzt und u auf I du/ h die Ε, i-Verriegelung Ir \uf den nicht gewählten Seiten wird r auf 0 gese:. ch das invertierte Signal E, ι, während u durch die Ausgabe der Abtastverriegelung 124 eingeschaltet wird. Auf dem eingeschalteten Chip ist die Abtastverriegelung 124 abgeschaltet durch das Gerät 126. invertierter E1-Eingang zum UND-Glied 122 vor der Abtastverriegelung 124. Die Abtastverriegelung 124 kann hinterher bei 130 wieder zurückgestellt werden, entweder durch die /pAbfrageleitung 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 M von der CPU kann separat eingegeben werden durch Abgabe eines Wortimpulses Wa1AR an das eingeschaltete Chip über den Seitendecodierer 80 in der Speichersteuerung 66. Ü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 E5;-Verriegelung 108 durch einen Puls E„ auf der Leitung !34 zurückgestellt, und der Speicher steht für nachfolgende Referenzen zur Verfügung. Abfrage und Rückstellung der Steuerbits werden bestimmt durrh Hip Sn<»irhi»r«tpii<"nin<T «; n;»
13 14
Verwendung eines programmierbaren Mikrosteuer- muß die in den Bits r und m enthaltene Seitenbenut-
speichers würde eine Veränderung des Austauschalgo- zungsinformation geprüft und entsprechend für die
rithmus beispielsweise durch ein Überwacbungspro- angezogene Seite modifiziert werden. Wenn eine Seite
gramm und damit die Optimierung und Feinabstimmung eingeschaltet ist, wird das r-Steuerbit auf 1 gesetzt, gestatten. Bei Bedarf können weitere Steuerbits s während das verlangte Byte vom Chip kommt Wenn
eingeschlossen werden. Das Hybridschema auf dem die Seite zum Schreiben angezogen wurde, werden die
Chip nach der vorliegenden Erfindung gibt Beweglich- Bits m und rauf 1 gesetzt Das u-Bit wird nur bei einem
keit sowohl im Ausmaß als auch der Art der Seitenfehler fortgeschrieben. Wenn keine Seite einge-
Seitenbenutzung und der Status/Steuerbits. Gleichzeitig schaltet ist tritt ein Seitenfehler auf, und dann muß eine
werden viele gegenwärtig in Software implementierte io Seite aus dem Primärspeicher herausgenommen und die
Funktionen direkt in Hardware implementiert wodurch verlangte Seite eingeleitet werden. Der Seitenfehler
nicht nur das bereits überlastete Systemprogramm wird durch den Mehrfach-Übereinstimmungsdetektor
entlastet sondern auch die Geschwindigkeit erhöht 84 erkannt
wicd. Eine Abtastperiode tritt auf, sobald ein assoziativer
In einem Speicher mit Wort- und Bitdecodierer auf 15 Vergleich über TV^Bits aller Seiten keine Übereinstündem Chip muß die eigentliche ^--Decodierung zuerst mung bringt d. h. kein Kennzeichen, und so einen unmittelbar vor der Chipeinschaltung erfolgen, um eine Seitenfehler im Mehrfach-Übereinstimmungsdetektor falsche Adreßwahl zu verhindern. Das in F ig. 4 84 anzeigt zur Einleitung der Abtastoperation, gezeigte Hybridchip 5On verwendet für solche Zwecke Da jede gegebene Abtastung zu vielen Seiten fuhren einen verzögerten Chipwahlgenerator 136. Die assozia- 20 kann, die die Kriterien der Steuer- oder Benutzungsbits live ÄdreSdecodierung kann in einem solchen Chip- für die Obereinstimmung erfüllen, d. h. eine Mehrfachwahlgenerator 136 erfolgen und dadurch sonst sequen- Übereinstimmung erzeugen, enthält der Mehrfachtielle Funktionen weiter überlappen. In diesem Fall ist Übereinstimmungsdetektor 84 einen Wahlteil, der in die gesamte eigentliche Decodierung abgeschlossen, Fig.5 gezeigt ist um nur eine Seite auf dem Chip bevor der assoziative Chip-Einschaltimpuls Ec auf der 20 logisch zu wählen. Das erfolgt durch Signale auf den gewählten Seite aktiv wird. Der Chipwahlgenerator 136 Chip-Einschaltkennzeichenleitungen f aus den Assozialiegt auf demselben Chip dicht neben dem zugehörigen tivregistern 148a bis n. Hier ist das erste Assoziativregi-Speicher 82 zur richtigen Verfolgung der FET-Kon- ster 148a der Seite 1 *iber seine Kennzeichenleitung Fl struktionsparameter. Die Benutzung der Assoziativregi- mit einem Inverter 150a zur Lieferung eines invertierten ster auf dem Chip nach der vorliegenden Erfindung 30 Kennzeichensignals Fi verbunden. Die Ausgabe oder ermöglicht das auf natürliche Weise. Wie bereits oben Fi-Leitung vom Inverter 150a ist verbunden mit einem beschrieben wurde, werden die realen Byteadressen Nn UND-Glied 152a zusammen mit der Kennzeicheniei- und Nn zum Decodieren auf den Leitungen 62a bzw. tung F2 aus dem Assoziativregister I486 der Seite 2. Ein 626 der Wort- und Bitleitungen aller Chips auf ODER-Glied 154a ist mit beiden Kennzeichenleitungen herkömmliche Art verwendet mit einem realen « F, und F2 verbunden. In ähnlicher Weise ist ein Wortdecodierer 138 und einem Bit/Abfrageleitungsde- ODER-Glied 1546 angeschlossen zum Empfang der codierer 140. Die CPU-Leseleitung 56 ist mit Abfrage- Ausgabe des ODER-Gliedes 154a und der Kennzeiverstärkern 142 auf dem Chip verbunden, die Daten an chenleitung F3. Die Ausgabe des ODER-Gliedes 154a die CPU liefern. Die CPU-Schreibleitung ist mit wird durch den Inverter 1506 invertiert und das Schreibverstärkern 144 verbunden, die Daten von der *o invertierte Signal mit dem Fr Ausgang des Assoziativre-CPU empfangen und sie in den Speicher 82 über gisters 148c der Seite 3 an ein UND-Glied 1526 Bit-Abfrageleitungsschalter 146 eingeben. angelegt Der Ausgang des UND-Gliedes 152a ist als
Es wurde also gezeigt wie die Seitenstatus- und einschaltender Eingang En zur Seite 2, der Ausgang des Steuerbits im Gesamt-Assoziativregister beibehalten, UND-Gliedes 1526 als einschaltender Eingang E33 zur
abgefragt fortgeschrieben, gelöscht usw. werden «5 Seite 3 usw. geführt Diese Serienschaltung der
können, und zwar im wesentlichen genauso wie die Assoziativregister einer jeden Seite geht durch jede
virtuelle assoziative Adressierung. Die für das Register Seite weiter. Das letzte ODER-Glied 154/7 liefert eine
auf dem Chip erforderlichen virtuellen Speicherfunktio- Ausgabe auf die Leitung 156, die die Gesamtkennzei-
nen können durch ein Kennzeichenbit F gesteuert chenbedingung anzeigt und auch anzeigt ob eine Seite
werden, das mit allen Registerzellen parallel so M eingeschaltet wurde. Diese Leitung 156 gleicht den
verbunden ist daß die assoziativen Zellen relativ einfach Leitungen 86 und 92 aus dem Mehrfach-Übereinstim-
sind und nur sehr wenig Aufwand und minimale mtingsdetektor84inFig.4B.
Leitungsverbindungen erfordern. In dem vollassoziatl· Auf diese Weise sind alle Seiten auf einem Chip
ven Register auf dem Chip wird die vollassoziative physikalisch so geordnet daß die erste, eine Oberein-
Adresse des virtuellen Seitenadreßregisters 40a auf 55 Stimmung erzeugende Seite gewählt wird. Wenn die
jedem Chip verglichen mit allen /WAdreßbits und ein Seite 1 z. B. zur Abtastzeit eine Übereinstimmung
Einschaltkennzeichensignal auf die Leitung 42 gegeben, liefert, wird mit ihrem Einschaltkennzeichen E, 1 diese
um ein bestimmtes übereinstimmendes Chip zum Lesen Seite für den Austausch gewählt Wenn die Seite I keine
oder Schreiben einzuschalten. Übereinstimmung erzeugt und angenommen wird, daß
Für Seitenaustauschalgorithmen liefern die Register M das das Kennzeichen F1-O bedeutet dann wird dieses
auf dem Chip einen Vergleich der Bits r, m und u und Kennzeichen durch ein einfaches NOR-Glied 15Oe
wählen eine Seite der resultierenden Mehrfach-Übcr- invertiert und dessen Ausgang im UND-Glied 152a mit
einstimmungen aus. Die virtuelle Adresse wird in das dem Kennzeichen der Seite 2 verknüpft. Die Ausgabe
Register 40fl geschrieben, so daß eine neue Seite des UND-Glieder 152a ist das Einschaltsignal E,i der
eingegeben wird, und bleibt fixiert, bis eine andere Seite h'' Seite 2. In gleicher Weise wird die Ausgabe des
sie ersetzt. Die virtuellen Adressen aller Seiten werden ODER-Gliedes 154.) Sri 1506 invertiert und im
assoziativ abgefragt, sobald eine virtuelle Adreßüber- UND-Glied 152f> mit dem Kenn/eichen der Seite )
Setzung erforderlich ist. Nach einer solchen Keferenz verknüpft usw. Im obigen f'ali erzeugt das invertierte
Kennzeichen der Seite 1 jetzt eine 1, Wenn die Seite 2 eine Obereinstimmung erzeugt, ist das Einschaltsignal E,i eine 1 und dadurch wird die Seite 2 für den Austausch gewählt Wenn die Seite 2 keine Übereinstimmung erzeugt, ist ihr Kennzeichen O und es ergibt sich EsI=O. Der Wahlprozeß läuft logisch so durch alle seriellen Kennzeichenverbindungen wetter, die Verzögerung ist nur so groß wie diejenige des seriellen
16
Inverters und der ODER- und UND-Glieder. Es wird jeweils nur eine einzige Seite for 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 Obereinstimmung auf mehreren Chips verwendet werden.
Hierzu 9 Blatt Zeichnungen

Claims (7)

  1. Patentansprüche;
    J, Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip zum Einsatz in Speicherhierarchien mit virtueller Adressierung unter Verwendung eines vollassoziativen Verzeichnisses und einer vollassoziativen Adreßübersetzung, dadurch gekennzeichnet, daß jedes der den Speicher bildenden Halbleiterchips (12) außer den Speicherzellen ι ο wenigstens eine assoziative Schaltung (22) einschließlich eines virtuellen Seitenadreßregisters (22Ajzum Speichern der virtuellen Adreßbits (N, ί), die jeder auf einem oder mehreren Chips (12) gespeicherten Seiten (2NrBytes) zugeordnet sind, angeordnet sind, die mit einem virtuellen Seitenadreßregister und einem realen Adreßregister des die Speicherhierarchie enthaltenden Rechnersystems (10) verbunden sind.
  2. 2. Hybrüjr Halbleiterspeicher nach Anspruch 1, dadurch gekennzeichnet, daß in der Seitenanforderungseinrichtung des den Hybridspeicher enthaltenden Rechnersystems (10) Schaltungsanordnungen (52) zu Abgaben von virtuellen Seitenadreßabfragen (Ny) vom virtuellen Seitenadreßregister an jedes 2s Speicherchip (12) zum Vergleich mit der im virtuellen Seitenregister (Nrt) gespeicherter. Adresse angeordnet sind, und daß bei Obereinstimmen der virtuellen Seitenadresse das Lesen und/oder Schreiben von Daten im ausgewählten Chip (12) an den *> durch das re?.ls Adreßregister über Leitungen (62, 62/1) adressierten Plätzen erfolgt
  3. 3. Hybrider Halbleiterspeicher nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß auf jedem Speicherchip (12) ein Seitenb-.nutzungs-lnforma- '5 tionsregister (40i>, 40c), ein Seitenfortschreibungsregister (4OeJ und Steuerregister (AOa) zum Speichern von Seitendaten angeordnet sind, mit denen die Auswählbarkeit einer Seite zum Austausch bestimmt wird, wenn ein Seitenfehler erkannt wird. «o
  4. 4. Hybrider Halbleiterspeicher nach Anspruch 2, dadurch gekennzeichnet, daß auf jedem Speicherchip (12) eine Kennzeichenleitung (42) vorhanden ist, die eine Adresse für das System (10) dahingehend liefert, daß eine Seite eingeschaltet wurde, und daß « bei kleiner Übereinstimmung der virtuellen Seitenadresse mit einem der Chips ein Seitenfehler erkannt wird, wodurch ein Abtaster (84) startet, der die Seitenbenutzungs- und Steuerbits (r, m, u) in den Registern (40) auf jedem Speicherchip (12) abfragt. %
  5. 5. Hybrider Halbleiterspeicher nach den Ansprüchen I bis 4, dadurch gekennzeichnet, daß jedes Speicherchip (12) von dem den Hybridspeicher enthaltenden Rechnersystem über ein Primäradreßregister (14) adressiert wird, das die realen Wort- « und Bitadressen speichert und die Wort- und Bitleitungen (16a, \%b) aller Speicherchips (12) auswählt, daß jedes Halbleiterchip eine Seite einer bestimmten Größe (z. B. 4/C By(es) 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 166^ mit dem Wortb/.w. Bitdecodierer (\%b) verbunden sind, die ein ByIe von allen Speicherchips auswählen und das h"> richtige Speicherchip durch ein separates Chip-Einschaltslgnal (E) bestimmen, das seinerseits auf einer Leitung (20) eines jeden HaiHeiterspeicherchips erzeugt wird, die mit einem auf jedem Speicherchip befindlichen Assoziativregister (22) verbunden ist, das die virtuellen Adreßbits speichert, die jedem Speicherchip (Seite) vom Systemuberwachungsprogramm zugeordnet wurden.
  6. 6. Hybrider Halbleiterspeicher nach den Ansprüchen 1 bis 5, dadurch gekennzeichnet, daß das Assoziativregister (22) aus einem virtuellen Chip-Adreßregister (22Λ> zum Speichern der virtuellen Adreßbits des Speicherchips (12) und einem Vergleichsregister (21B) zum Vergleichen der virtuellen Adresse im Adreßregister mit der abgefragten virtuellen Adresse (N,) auf einer Leitung (24) vom virtuellen Seitenadreßregister des umgebenden Rechnersystems (10) besteht
  7. 7. Hybrider Halbleiterspeicher nach Anspruch 5, dadurch gekennzeichnet daß in Assoziativregistern (40) auf jedem Speicherchip (12) zwei Teile {406,40ς) der Benutzungsinformation, nämlich ein Referenz- und ein Modifizierbit (r, /nj gespeichert sind.
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 DE2749850A1 (de) 1978-06-01
DE2749850B2 true 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)

Families Citing this family (51)

* 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
US4298929A (en) * 1979-01-26 1981-11-03 International Business Machines Corporation Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability
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
USRE37305E1 (en) 1982-12-30 2001-07-31 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
AU625070B2 (en) * 1988-03-18 1992-07-02 Lg Electronics Inc. Distributed reference and change table for a virtual memory system
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
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2749850B2 (de) Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip
DE2656546C2 (de) Datenblock-Austauschanordnung
DE602004007532T2 (de) Integrierte schaltung und verfahren zum cache-umabbilden
EP0010195B1 (de) Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage
DE2241257A1 (de) Datenverarbeitende anlage
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE2847960A1 (de) Speichersteuereinrichtung
DE69829539T2 (de) Verbesserungen an oder bei Rechnerspeichern
DE2515696A1 (de) Anordnung zum selektiven loeschen von teilen beziehungsweise zum ersatz von daten in einem cache-speicher
DE2326616A1 (de) Verfahren zum betreiben einer mehrere speichereinheiten enthaltenden datenverarbeitungsanlage
DE2523414B2 (de) Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen
DE2441754A1 (de) Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors
DE2364785B2 (de) Integrierter halbleiterspeicher mit nach guten und defekten speicherzellen sortierten speicherzellen
DE2640357A1 (de) Wortgruppenprioritaetsanordnung
EP0134822B1 (de) Digitalspeicher
DE19957612A1 (de) Verfahren und System zur Speicherzugriffsverwaltung für Synchronous Dynamic Random-Access Memories oder dergleichen
DE4227784A1 (de) Rechnersystem und verfahren zum beheben eines seitenfehlers
DE2519195A1 (de) Assoziativspeicher
DE2355814C2 (de) Kanalzugriffseinrichtung für eine hierarchische Speicheranordnung
DE2004934A1 (de)
EP0965083B1 (de) Datenspeicher mit einer redundanzschaltung
EP0075715B1 (de) Cachespeicher und Verfahren zu seinem Betrieb
EP1564754B1 (de) Verfahren und Vorrichtung zur Verwaltung von Daten in einem nichtflüchtigen Datenspeicher
DE1449816C3 (de) Schaltungsanordnung zur Steuerung des Zugriffs zu einem Magnettrommelspeicher
DE2016443C3 (de)

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