DE2749850B2 - Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip - Google Patents
Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem ChipInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
- G06F12/0661—Configuration or reconfiguration with centralised address assignment and decentralised selection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement 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,
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
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.
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
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
keit sowohl im Ausmaß als auch der Art der Seitenfehler fortgeschrieben. Wenn keine Seite einge-
werden viele gegenwärtig in Software implementierte io Seite aus dem Primärspeicher herausgenommen und die
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
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.
ven Register auf dem Chip wird die vollassoziative physikalisch so geordnet daß die erste, eine Oberein-
jedem Chip verglichen mit allen /WAdreßbits und ein Seite 1 z. B. zur Abtastzeit eine Übereinstimmung
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ß
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
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 )
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.
Claims (7)
- 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. 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. 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. 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. 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. 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. 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.
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)
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)
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 |
-
1976
- 1976-11-29 US US05/746,033 patent/US4084230A/en not_active Expired - Lifetime
-
1977
- 1977-10-14 FR FR7731850A patent/FR2373830A1/fr active Granted
- 1977-10-25 GB GB44406/77A patent/GB1590198A/en not_active Expired
- 1977-11-03 IT IT29285/77A patent/IT1113673B/it active
- 1977-11-08 DE DE2749850A patent/DE2749850C3/de not_active Expired
- 1977-11-29 JP JP14233977A patent/JPS5368926A/ja active Granted
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 |