DE2749850C3 - 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
DE2749850C3
DE2749850C3 DE2749850A DE2749850A DE2749850C3 DE 2749850 C3 DE2749850 C3 DE 2749850C3 DE 2749850 A DE2749850 A DE 2749850A DE 2749850 A DE2749850 A DE 2749850A DE 2749850 C3 DE2749850 C3 DE 2749850C3
Authority
DE
Germany
Prior art keywords
page
chip
address
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.)
Expired
Application number
DE2749850A
Other languages
English (en)
Other versions
DE2749850A1 (de
DE2749850B2 (de
Inventor
Richard Edward Peekskill N.Y. 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

Description

Die Erfindung betrifft einen hybriden Halbleiterspeicher nach dem Oberbegriff des Anspruchs 1.
Das allgemeine Konzept der virtuetien 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 1 abellensuche. 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 muß assoziativ aufgestellt werden. Verzeichnisse, die einen Verzeichnissatz assoziativer sekundärer, logischer Seiten zu primären,
logischen Seilen benutzen, jedoch ein vollassoziatives Verzeichnis pt imärer, logischer Seiten zu physikalischen Seiten brauchen, benötigen wenigstens zwei Zyklen. Ein Zyklus adresstert 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 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 Übersetziingsunterstü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 tu bekommen, muß er schnell sein, wenn weitere Verzögerungen vermieden werden sollen. Infofgedessen sind TLB's realisiert in kleinen Speichern in Bipolar-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, sowie einen nachfolgenden Zugriff zum gewünschten Byte dieser Seite erfordern.
In virtuellen Speicherhierarchien müssen drei Grundfunkticnen vorgesehen werden, nämlich eine Seitenverzeichnisfunktion, eine Adreßübersetzungsfunktion von 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 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 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 Patentanspruchs 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 Tabellensuch^ 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 Ü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 Adreßübersetzung uc-^ anderen Steuerfunktionen auf dem Chip,
F i g. 2A in einem Funktionsblockdiagramm ein assoziatives Vergleichsregister auf jedem Chip,
-'5 Fig.2B 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,
J« F i g. 4 die Zusammengehörigkeit der F i g. 4A bis 4E. F i g. 4A bis 4E im einzelnen den logischen Aufbau eines hybriden Speichersystems und
F i g. 5 in einem logischen Blockdiagramm die Arbeitsweise des Wählers für Mehrfachübereinstim-
J5 mungen bei der Auswahl einer aus mehreren Übereinstimmungen mit Hilfe eines Kennzeichens pro Seite.
F i g. 1 zeigt einen hybriden Halbleiter-Randomspeicher, der für die assoziative Adreßübersetzung auf einem Chip ausgelegt ist. Das Speichersystem is.- 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ßre-
Ί5 gister 14 adressiert, das die realen Wort- und Bitadressen /V1-1 und /V1-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 Die CPU IO enthält Register zum Speichern einer totalen, effektiven, virtuellen Adresse /V1 für ;:it! virtuelles Rechnersystem, die bis zu 30 Bits
« oder größer sein kann und eine logische Adreßkapazität von 230 oder mehr alt iO9 Bytes gestattet. Der eigentliche Hauptspeicher ist typischerweise wesentlich kleiner, beispielsweise 220 oder 1 Megabyte. Somit muß die große virtuelle Speicheradresse in eine reale Haupt-
so Speicheradresse übersetzt werden. Dazu muß aber nur ein Teil der 30 Bits wie folgt übersetzt werden. Typische Seiten sind AK Bytes groß und benötigen 12 Adreßbus. Diese sind real, mit Nr bezeichnet und verlangen keine assoziative Übersetzung. Die virtuelle Seitenadresse Nn
v> die assoziativ decodiert werden muß, ist somit
/V1 = Ns-Nr
= 30-12 = 18
Zur Illustration wird angenommen, daß jedes Chip eine Seite von 4K Bytes (32K Bits/Chips) enthält, und da jede Seite assoziativ decodiert werden muß, mul3 auch jedes Chip 12 assoziativ decodiert werden. Das wird wie folgt erreicht. Die realen Adreßbits Nr werden decodiert als Nri und Nr7 und wählen ein Byte wie normal bei der nichtassozialiven Adressierung. Die Byteleitungen 16a und t6b 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-F.inschaltsignal 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 /V, 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. Für die vorliegende Beschreibung WiTu ein ία uii gi'Oucs AsMl/.iaiivi C'glMCr 22 verwendet. Diese Adressen (NJ ändern sich dynamisch über der Zeit. Wenn eine Anforderung für eine virtuelle Seite, ζ. Β. ΛΊ, 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 F.inschaltsignal auf seine Leitung 20 geben. Die F.mschaltleitungen 20 sind darstellungsgemäß über ein Kabel 36 mit der Speichersteuerung 32 verbunden. Das ist das gewählte Chip und somit wird die virtuelle Adresse N1 direkt in eine reale Adresse umgewandelt.
In einer Realisierung des Speichers können 2·"'= 1 Million Bytes vorgesehen sein. Mit Seiten von je AK Byte wären dazu 256 Seiten oder 256 Speicherchips erforderlich Em Vorteil des erfindungsgemäßen Speichers besteht dann, daß alle Chips identisch sind und für das Verzeichnis keine Spezialchips erforderlich sind. Fine Ausdehnung oder Zusammenziehung der Seitenzahl ist inherent in das System eingebaut, da cmc 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 Fig. 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 77b 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 21b 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-Einschaltsignai 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 F i g. 2b gezeigien 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 22c/ zwischen der Bitleitung flO und dem Knotenpunkt A bzw. der Bitleitung BI und dem Knotenpunkt B den Randomzugriffsspeicherteil bildet. Das assoziative Vergleichsregister 226 enthält vier Transistoren Ta, Tb. Tc und Td für die Vergleichsfunktion, während 77für eine separate Abfrage sorgt, ähnlich wie das in Fig. 2A gezeigte UND-Glied 28. Die Lese/Schreibwortleitung 30 dient auch als Einscluiltlci tung 20, da die beiden Funktionen niemals gleichzeitig ausgeführt werden. Die Bitabfrageleitungen WO und B 1 sind normalerweise hoch, und zwar auf einer bestimmten Vorspannung + Vb. Eine Null wird in das Adreßregister 22a durch einen negativen Puls auf BO gespeichert, um das Register in Verbindung mit einem positiven Puls auf der Lcse/Schreibwortleitung 30 auf
ι mTiiiC Lrapoicriüa! zu bringen, !^äuürcn wirti (!er Knotenpunkt A auf Erdpotential gebracht, während das Potential des Punktes ß hochgehalten wird.
Eine Eins wird dadurch geschrieben, daß man den Knotenpunkt BI 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 Speicherzelle ist für Störimpulse auf der Lese/Schreibwortleitt·g 30 so lange unempfindlich, wie beide
> Bitleitungen auf ihrer normalerweise hohen Vorspannung Vb liegen. Ein assoziativer Vergleich oder eine Abfrage werden vorgenommen, indem man Daten auf das Bit/Abfragepaar flO und Bi gibt in Kombination mit einem Abfrageimpuls auf der /-Leitung 26. Externe Daten zur Abfrage haben dieselbe Form wie die für das Schreiben, und zwar stellen flO auf Erde und B I 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 I.ese/Schreibwortlcitung 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 /-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 Kennzeichen bedeutet »keine Übereinstimmung«. Die entgegengesetzten Verbindungen, dargestellt in gestrich /!en 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 »Obereinstimmung« = »Kennzeichen« würde zu einer sehr schwierigen Abfühlung führen. Wenn beispielsweise in
s 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, ein schwierige Forderung. Die Logik »Kennzei-
chen = keine Übereinstimmung« vereinfacht diesies Abfühlproblem und wird im vorliegenden System verwendet.
Es wäre zu beachten, daß herkömmliche, separate Verzeichnisse, die voll assoziativ adressiert werden. 2ur Benutzung bei der Realisierung virtueller Speichernysteme 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 Abfrüiic cics Übereinstimmungswortes erforderlich ist. um du· richtige reale Adresse zu holen. In den vorliegenden Notizspeichersystemen beispielsweise wird -.!as Verzeichnis zuerst angesteuert, um die re;ile Adresse der virtuellen Seite zu bekommen, die dann 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 Chipeinschaltiing 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 /V, auftritt. Die Decodierung von Nt ist außerdem mit der Decodierung von N-überlappt. Sobald /V, fertig ist, gibt es ein direktes Chip-Einschaltsignal ohne zusätzliche Ver/ögerung und ein zweiter, bei den Verzeichnissen bisher üblicher Zugriff ist nicht erforderlich. Ein weiterer Vorteil dos vorliegenden Speichersystems gegenüber einem typische.· 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 2!i6 Eintragungen enthalten, von denen viele leer sein können. Bei dem vorliegenden Speichersystem wären nur zwei der 18 virtuellen Adreßbus 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 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 N1 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 besonderen Hardware auf separaten Chips mit festverdrahteten Algorithmen für den Notizspeicher oder mit Tabellen und Softwarealgorithmen für virtuelle Systeme vom Typ Hauptspeicher-Piatte ü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. I fordert die CPU in einer typischen Operation eine Seile mit einer virtuellen Seitenadresse aus /V,-Bits und einer realen Byteadresse aus /Vr-Bits an.
Die NrBm 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 Seilenbenutzungsinformation 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ätsrangbits geprüft und ein Seiteneinschaltsignal bei Übereinstimmung gegeben werden. Das gemeinsame Element in aii 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 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 Systemleistuntr 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. 4 A bis 4 E. 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 Austausch wählbar. Von dem System nach der vorlegenden Erfindung werden zwei Teile der Benutzungsinformation verwendet, und zwar ein Referenzbit rund ein Modinzierbit 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. I 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 N, noch ein Register 40b für das Referenzbit r, ein Register 40c für das Modifizierbit m und Register fü.· andeie Steuerbits. Das Referenzbit zeigt an, ob eine Seite während einer bestimmten Zeit oder eines AbUf tintervii lies benutzt wurde. Im Register 4Oe wird mit einem u-Bil 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 ^(/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 F i g. I sowie 2A und 2B beschrieben wurde, und sie teilen die gemeinsame Kennzeichenleitung 42, dargestellt in F i g. 3. Ein
tIJ Ml W^H I 16
und 2B gezeigt ist, dient somit als Steuerbitregister /um Speichern und Abfragen der Steuerbits r. m und u in derselben Art, die dir die virtuellen Adreßbits beschrieben wurde.
In Fig. 3 ist gezeigt, wie die separaten Abfr.igeeingä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:zeichenleitungen aller Zeilen parallel /u 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 Seitenaustauschu ahl benutzt.
Die laufenden Austa.^chalgorithmen 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 Seiten Fehler 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 F i 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 aul allen Seiten werden zu diesem Zeitpunkt automatisch Sortgeschrieben, während eine Seite geleitet wird. Das m-Bit wird nur zurückgestellt, wenn eine modifizierte S»site auf die Platte zurückgeleitet wurde.
Die Fig.4A bis 4E ;teigen, wie ein gemeinsamer Seitenaustauschaigorithmus, wie er in einem virtuellen Speicherbetriebssystem verwendet wird, aut 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ü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 N, + 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 ' alten oder herkömmlichen Funktionen in dem gestrichelt dargestellten Block 60. Die virtuelle Adresse /V, geht auf der Leitung 44a zu den Adreßteilen alle: Chip-Assoziativregister 40a, M- auf den Leitungen 62.'· und 62b zu allen Chips. Das R/W Signal auf den
>,. I *>jt,,rt~*>r, C£ ,j"£J 5g *,·.··;-£ΐ ;« Γ\Γ\ETρ (JJJ££J £4 VTk~Ünfc 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
j~> 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
s" fortgeschrieben werden. Das Signal »Seite eingeschaltet beim Lesen/Schreiben«, £«» auf der Leitung 74 dient als Eingang zum r-Steuerbitregister 406 und wird im UND-Glied 76 mit dem modifizierten W-Signal auf Leitung 58 vom herkömmlichen Teil 60 des Chips
i'i 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 mc zur Verfügung stehen, um diese Bits des gewählten Seitenregisters zu setzen. Dieser Wortpuls
J" kann gleichzeitig auf der Kennzeichenleitung 42 durch einen Seitendecodierer 80 in der Speichersteuerung 66 geliefert oder auf dem Chip erzeugt wenden. Diese Funktionen sind alle mit dem Lesen oder Schreiben von Daten in den Speicher 82 überlappt. In der Speicher-
4'| steuerung 66 werden die Kennzeichensignale Flbis Fn von allen n-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 frSignal 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« Et auf der Leitung 92 vom Mehrfach-Übereinstimmungsdetektor 84 kommt, tritt ein Seitenfehler auf, Et wird im UND-Glied 94 mit R/W verknüpft, um durch ein Signal auf der Leitung 96 einen Seitenfehler beim Lesen/Schreiben anzuzeigen, Erw.
W und dadurch weitere Anforderungen der CPU auszusperren. Mit dem Signal 2WaUf der Leitung 96 werden auch die logischen Funktionen des Austauschalgorithmus im Seitenaustausch-Algorithmusteil 98 der Speichersteuerung 66 eingeleitet Seitenaustauschalgo rühmen, ihre logische Operation und die Hardware ■nnerhalb 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 υ durchgeführt. Zuerst werden alle Assoziativregister gleichzeitig auf r=0(nicht angezogen) m = 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 40b, 40c und 4Oe und die Vergleichsdaten ra ma uc auf den Leitungen 446, cund 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 über das UND-Glied 102 die Bits ro m, und O1 erhöhen und weiterpriifen zu können, wenn sich bei der ersten Prüfung keine Übereinstimmung für r=Q, m = 0. u= I ergibt. Nimmt man an, daß keine Übereinstimmung auftritt, so können weitere Prüfungen nach folgendem Prioritätsschema durchgeführt werden:
r=0 m = C u = 0
r-1 m-^0 u=l
usw., bis schließlich
r= 1 m=\ u=0.
Während der Prüfung kann eine Mehrfaeh-Übereinstimmung auftreten, d.h. mehr als eine Seite kann ein Übereinstimmungskennzeichen für die von der Speichersteuerung 66 gelieferten Steuerbitkriterien abgeben. Der Mehrfach-Übereinstimmungsdetektor 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 muß die gewählte Seite eingeschaltet werden, d. h. ein Einschaltsignal E1 auf der Chipleitung 104 vom ODER-Glied 106 muß eingeschaltet weiden, damit hinterher die alte Seite ausgelesen werden kann, wenn m—\ ist und die neue Seite eingeschrieben werden kann. Als zweites muß in das Assoziativregister 40ader neue Wert für /V1 eingetragen werden und r, m und υ müssen zurückgestellt werden. Das Einschalten von einem E1- auf dem gewählten Chip kann auf verschiedene Weise erfoleen. Fin einfarhp·; Verfahren besteht in der Trennung der Leitungen Ep/bis Epn 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 Esi-Verriegelung 108. Zu diesem Zeitpunkt soll die Ec-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 Et auf der Leitung 86 erzeugt, das im UND-Glied 110 mit dem Prüfsignal Tauf der Leitung 100 verknüpft wird, um den Seitenausleitzykius 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 Seitenausleitzykius im Speichersieuerteil 112 überlappt oder bis zu einem späteren Zeitpunkt verzögert werden Das Fortschreiben erfolgt nach folgender Logik. Wenn r=0 ist, wild u=l gesetzt und r bleibt unverändert. In mehreren
κι u-Systemen wird u 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ß υ auf 1 gesetzt werden 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 Bitleitungcn der Register 40b, c und e für die Bits r, m bzw. u. Der Eingang kann direkt an die m-Bits angelegt werden, da
,,,In „«
e>-
J6 v
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 /r verknüpft zum Einschalten einer Abtastverriegelung 124. Der Ausgang der Abtastverriegelung dient als Eingang zum Register 4Oe für das u-Bit. Wenn eine Übereinstimmung erzielt wurde für;:. B. r= 1, dann sind die Signale auf den Verriegelungsausgängen U1=O und B1 = I. Wenn keine Übereinstimmung erzielt wurde, sind sie umgekehrt. Alle richtigen Eingangsdaten stehen jetzt an den Steuerbits sowohl der eingeschalteten als auch der nicht gewählten Seiten zur Verfügung, so daß ein Impuls »Assoziativregister schreiben«, WAar an alle Chips vom Seitendecodierer 80 angelegt wird, um diese neuen Werte einzusetzen. Auf der eingeschalteten Seite werden r und m auf 0 gesetzt und υ auf 1 durch die E, ,-Verriegelung 108. Auf den nicht gewählten leiten wird r auf 0 gesetzt durch das invertierte Signa. Es,, während υ durch die Ausgabe der Abtastverriegelung 124 eingeschaltet wird. Auf dem eingeschalteten Chip ist die Abtastverriegelung 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 Nr von der CPU kann separat eingegeben werden durch Abgabe eines Wortimpulses WAar 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 Fs ι-Verriegelung 108 durch einen Puls Ep 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 Überwachungsprogramm 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 Seitenbenuuung 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 auch die Geschwindigkeit erhöht wird.
In einem Speicher mit Wort- und Bitdecodierer auf dem Chip muß die eigentliche yVr-Decodierung zuerst unmittelbar vor der Chipeinschaltung erfolgen, um eine falsche Adreßwahl zu verhindern. Das in F i g. 4 gezeigte Hybridchip 5On verwendet für solche Zwecke einen verzögerten Chipwahlgenerator 136. Die assoziaiivc AdrcSdcccdieruRg kann in einem solchen Chipwahlgenerator 136 erfolgen und dadurch sonst sequentielle Funktionen weiter überlappen. In diesem rail ist die gesamte eigentliche Decodierung abgeschlossen, bevor der assoziative Chip-Einschaltimpuls Ec auf der gewählten Seite aktiv wird. Der Chipwahlgenerator 136 liegt auf demselben Chip dicht neben dem zugehörigen Speicher 82 zur richtigen Verfolgung der FET-Konsiruktionsparameter. 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 Nr, und Nrt zum Decodieren auf den Leitungen 62a bzw. 626 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-Schreibieilung 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 Kennzeichenbit 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 vollassoziative Adresse des virtuellen Seitenadreßregisters 40a auf jedem Chip verglichen mit allen /W-Adreßbits und ein Einschaltkennzeichensignal auf die Leitung 42 gegeben, um ein bestimmtes Übereinstimmendes Chip zum Lesen oder Schreiben einzuschalten.
For Seitenaustauschalgorithmen liefern die Register auf dein Chip einen Vergleich def Bits t, ff! und U und wählen eine Seite der resultierenden Mehrfach-ÜbereinstiiTimungen aus. Die virtuelle Adresse wird in das Register 4Oe 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-Obereinstimmungsdetektor 84 erkannt
Eine Abtastperiode tritt auf, sobald ein assoziativer Vergleich über /V^Bits aller Seiten keine Übereinstimmung bringt, d.h. kein Kennzeichen, und so einen Seitenfehler im Mehrfach-Übereinstimmungsdetektor 84 anzeigt zur Einleitung der Abtastoperation.
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 Wahlteil, 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 Faus den Assoziativregistern 148a bis n. Hier ist das erste Assoziativregister 148a der Seite 1 über seine Kennzeichenleitung Fl mit einem Inverter 150a zur Lieferung eines invertierten Kennzeichensignals Fi verbunden. Die Ausgabe oder FpLeitung vom Inverter 150a ist verbunden mit einem UND-Glied 152a zusammen mit der Kennzeichenleitang F2 aus dem Assoziativregister 148b der Seite 2. Ein ODER-Glied 154a ist mit beiden Kennzeichenleitungen F\ und Fi verbunden. In ähnlicher Weise ist ein ODER-Glied 1546 angeschlossen zum Empfang der Ausgabe des ODER-Gliedes 154a und der Kennzeichenleitung F3. Die Ausgabe des ODER-Gliedes 154a wird durch den Inverter 1506 invertiert und das invertierte Signal mit dem F3-Ausgang des Assoziativregisters 148c der Seite 3 an ein UND-Glied 1526 angelegt. Der Ausgang des UND-Gliedes 152a ist als einschattender Eingang E12 zur Seite 2. der Ausgang des UND-Gliedes 1526 als einschaltender Eingang Es} zur Seite 3 usw. geführt. Diese Serienschaltung der Assoziativregisler einer jeden Seite geht durch jede Seite weiter. Das letzte ODER-Glied 154/1 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-Übereinsiimmungsdetektor 84 in F i g. 4B.
Auf diese Weise sind alle Seiten auf einem Chip physikalisch so geordnet, daß die erste, e«ne Übereinstimmung erzeugende Seite gewählt wird. Wenn die Seite 1 z.B. zur Abtastzeit eine Übereinstimmung liefert, wird mit ihrem Einschaltkennzeichen E, 1 diese Seite für den Austausch gewählt. Wenn die Seite I keine Übereinstimmung erzeugt und angenommen wird, daß das das Kennzeichen Fi -0 bedeutet, dann wird diese: Kennzeichen durch ein einfaches NOR-Glied IMi invertiert und dessen Ausgang im UND-Glied 152a mil dem Kennzeichen der Seite 2 verknüpft. Die Ausgabe des UND-Gliedes 152a ist das Einschaltsignal E11 dei Seite 2. In gleicher Weise wird die Ausgabe de! ODER-Gliedes 154a bei 1506 invertiert und in UND-Glied 1526 mit dem Kennzeichen der Seite : verknüpft usw. Im obigen Fall erzeugt das invertiertt
Kennzeichen der Seite 1 jetzt eine 1. Wenn die Seite 2 eine Übereinstimmung erzeugt, ist das Einschaitsignal Esi eine 1 und dadurch wird die Seite 2 für den Austausch gewählt Wenn die Seite 2 keine Übereinstimmung erzeugt, ist ihr Kennzeichen 0 und es ergibt sich £s2=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.
Hierzu 9 Blatt Zeichnungen

Claims (7)

Patentansprüche:
1. Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip zum Einsatz in Speicherhierarchien mit virtueller Adressierung unter Verwendung eines vollassoziativen Veirzeichnisses und einer vollassoziativen Adreßüberuetzung, dadurch gekennzeichnet, daß jedes der den Speicher bildenden Halbleiterchips (K!) außer den Speicherzellen ι« wenigstens eine assoziative Schaltung (22) einschließlich eines virtuellen Seitenadreßregisters (22-4; zum Speichern der virtuellen Adreßbits (Nv\), die jeder auf einem oder mehreren Chips (12) gespeicherten Seiten (2/v>Bytes) zugeordnet sind, ίο angeordnet sind, die mit einem virtuellen Seitenadreßregister und einem realen Adreßregister des die Speicherhierarchie enthaltenden Rechnersystems (10) verbunden sind.
2. Hybrider Halbleiterspeicher nach Anspruch 1, 2'i dadurch gekennzeichnet, daß in der Seitenanforderungseinrichtung de« den Hybridspeicher enthaltenden Rechnersystems (10) Schaltungsanordnungen (52) zu Abgaben von virtuellen Seitenadreßabfragen (Ny) vom virtuellen Seitenadreßregister an jedes ^ Speicherchip (12) zum Vergleich mit der im virtuellen Seitenregister (M, i) gespeicherten Adresse angeordnet sind, lind daß bei Übereinstimmen der virtuellen Seitenadresse das Lesen und/oder Schreiben von Daten im ausgewählten Chip (12) an den «' durch das reale Adreßregister über Leitungen (62, 62^;adressi£ ten Pliitzen erfolgt.
3. Hybrider Halbleiterspeicher nach den Ansprüchen I und 2, dadurch gekennzeichnet, daß auf jedem Speicherchip (12) ein Seiienb^iiutzungs-Informa- J5 tionscjgister (40b, 40c), ein Seitenfortschreibungsregister (4Oe; und Steuerregister (40a; zum Speichern von Seitendaten angeordnet sind, mit denen die Auswählbarkeit einer Seite zum Austausch bestimmt wird, wenn ein Seiterifehler erkannt wird. -to
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ß 4^ 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. w
5. Hybrider Halbleiterspeicher nach den Ansprüchen 1 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, t6b) aller Speicherchips (12) auswählt, daß jedes Halbleiterchip eine Seite einer bestimmten Größe (z. B. 4K Bytes) speichert, daß jedes Speicherchip aüsoziativ decodiert wird, indem *>o die realen Adreßbits decodiert werden und ein Byte wie bei der nichtassoziativen Adressierung auswählen, daß Byteleitungeu (16a und \bb)m\\ dem Wortbzw. Bitdecodierer (\%b) verbunden sind, die ein Byte von allen Speicherchips auswählen und das h'· 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 wurden.
6. Hybrider Halbleiterspeicher nach den Ansprüchen 1 bis 5, dadurch gekennzeichnet, daß das Assoziativregister (22) aus einem virtuellen Chip-Adreßregister (22A) zum Speichern der virtuellen Adreßbits des Speicherchips (12) und einem Vergleichsregister (22B) zum Vergleichen der virtuellen Adresse im Adreßregister mit der abgefragten virtuellen Adresse (Nv) auf einer Leitung (24) vom virtuellen Seitenadreßregister des umgebenden Rechnersystems (10) besteht.
7. Hybrider Halbleiterspeicher nach Anspruch 5, dadurch gekennzeichnet, daß in Assoziativregistern (40) auf jedem Speicherchip (12) zwei Teile (40b, 40c) der Benutzungsinformation, nämlich ein Referenz- und ein Modifizierbit (r, w)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 DE2749850B2 (de) 1980-09-04
DE2749850C3 true 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
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
DE68917759T2 (de) * 1988-03-18 1995-04-27 Wang Laboratories Verteilte Referenz- und Änderungstabelle für ein virtuelles Speichersystem.
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
JPS5368926A (en) 1978-06-19
US4084230A (en) 1978-04-11
GB1590198A (en) 1981-05-28
FR2373830A1 (fr) 1978-07-07
DE2749850A1 (de) 1978-06-01
FR2373830B1 (de) 1980-01-04
JPS5729783B2 (de) 1982-06-24
IT1113673B (it) 1986-01-20
DE2749850B2 (de) 1980-09-04

Similar Documents

Publication Publication Date Title
DE2749850C3 (de) Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip
DE69530776T2 (de) Zweiwege set-assoziativer cache-speicher
DE2350225C2 (de)
DE2515696C2 (de) Datenverarbeitungssystem
DE602004007532T2 (de) Integrierte schaltung und verfahren zum cache-umabbilden
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE69721368T2 (de) Verfahren und Gerät zur dynamischen Vorhersage des Weges für mehrstufige und mehrwege-satz-assoziative Cachespeicher
DE2523414C3 (de) Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen
DE2847960A1 (de) Speichersteuereinrichtung
DE3128740C2 (de)
DE2241257A1 (de) Datenverarbeitende anlage
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf
DE2928488A1 (de) Speicher-subsystem
DE2441754A1 (de) Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors
DE2646162B2 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
DE3032630A1 (de) Halbleiterspeicher aus speicherbausteinen mit redundanten speicherbereichen
DE3209679A1 (de) Halbleiter-speichereinrichtung
DE2326616A1 (de) Verfahren zum betreiben einer mehrere speichereinheiten enthaltenden datenverarbeitungsanlage
DE2640357A1 (de) Wortgruppenprioritaetsanordnung
DE2703559A1 (de) Rechnersystem
DE69817852T2 (de) Speicherschutzsystem für ein multitaskingsystem
EP0134822B1 (de) Digitalspeicher
DE3832758C2 (de) Verfahren zum Adressieren eines im Rückschreib-Modus betriebenen virtuellen Cache-Speichers
CH495584A (de) Datenverarbeitungsanlage
DE4227784A1 (de) Rechnersystem und verfahren zum beheben eines seitenfehlers

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