DE69010549T2 - Vorrichtung zur Speicherzugriffsbeschleunigung in einer Datenverarbeitungsanlage. - Google Patents

Vorrichtung zur Speicherzugriffsbeschleunigung in einer Datenverarbeitungsanlage.

Info

Publication number
DE69010549T2
DE69010549T2 DE69010549T DE69010549T DE69010549T2 DE 69010549 T2 DE69010549 T2 DE 69010549T2 DE 69010549 T DE69010549 T DE 69010549T DE 69010549 T DE69010549 T DE 69010549T DE 69010549 T2 DE69010549 T2 DE 69010549T2
Authority
DE
Germany
Prior art keywords
signal
memory
flip
address
coincidence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69010549T
Other languages
English (en)
Other versions
DE69010549D1 (de
Inventor
Laurent Ducousso
Philippe Vallet
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.)
Bull SAS
Original Assignee
Bull SAS
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 Bull SAS filed Critical Bull SAS
Application granted granted Critical
Publication of DE69010549D1 publication Critical patent/DE69010549D1/de
Publication of DE69010549T2 publication Critical patent/DE69010549T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/125Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

  • Die Erfindung liegt im Gebiet der Informationssysteme und betrifft die Probleme hinsichtlich der Beschleunigung des Zugriffs auf die im Hauptspeicher dieser Systeme enthaltenen Informationen.
  • Das zentrale Untersystem eines Informationssystems enthält im allgemeinen drei Typen von Einheiten: Prozessoren, Speichermodule, die den Hauptspeicher bilden, und Ein-Ausgabesteuereinrichtungen. Gewöhnlich kommunizieren die Prozessoren mit den Speichermodulen über einen Bus, der die Adressierung und die Übertragung der Daten zwischen den Prozessoren und dem Hauptspeicher ermöglicht. Damit ein Befehl eines Programms abgearbeitet wird, müssen seine Operanden im Hauptspeicher gesucht werden. Gleiches gilt für aufeinanderfolgende Befehle des abzuarbeitenden Programms. Für ein mit Mehrfachprogrammierung arbeitendes System muß der Speicher in der Weise aufgeteilt sein, daß eine Multiplexierung zwischen den Programmen möglich ist. Hierzu wird im allgemeinen eine virtuelle Adressierung verwendet, die einem Seitenaufteilungsmechanismus zugeordnet ist, der darin besteht, den adressierbaren Raum oder "virtuellen Raum" in Zonen fester Größe aufzuteilen, die "Seiten" genannt werden. In einem solchen System kann ein Programm während seiner Abarbeitung einen virtuellen Raum adressieren, dem ein Teil des Hauptspeichers entsprechen muß. Somit muß eine logische oder virtuelle Adresse in eine physikalische oder reale Adresse, die die Adressierung des Speichers ermöglicht, übersetzt werden.
  • Ein Befehl, der eine Adressierung erfordert, enthält Angaben, die dem ihn abarbeitenden Prozessor ermöglichen, eine Entwicklung der Adresse vorzunehmen, die eine virtuelle Adresse zum Ergebnis hat, welche auch effektive Adresse genannt wird. Im allgemeinen ist diese virtuelle Adresse segmentiert, d.h., daß sie aus einer Segmentnummer, einer Seitennummer und einer Distanz in der Seite gebildet ist. Die Segmentnummer kann ihrerseits in eine Segment-Tabellennummer und eine Distanz in dieser Tabelle unterteilt sein.
  • Um in dem Speicher auf die dieser segmentierten Adresse zugeordneten Informationen zuzugreifen, sind somit mehrere Speicherzugriffe notwendig: Zunächst muß auf eine diesem Prozeß (in der Abarbeitung befindliches Programm) zugeordnete Adressenraumtabelle zugegriffen werden, dann wird in dieser Tabelle mit Hilfe der Segment-Tabellennummer die reale Adresse der entsprechenden Segmenttabelle erhalten, woraufhin in Abhängigkeit von der Distanz in der Segmenttabelle auf einen Segment- Deskriptor zugegriffen wird, der die Berechnung der realen Adresse einer Seitentabelle ermöglicht, schließlich wird in Abhängigkeit von der Seitennummer, die die Distanz in dieser Seitentabelle definiert, eine reale Adresse der Seite erhalten, die die Adressierung des Speichers ermöglicht. Die reale Adresse eines besonderen Wortes oder Bytes wird durch Verkettung der realen Adresse der Seite und der Distanz in dieser Seite, die durch die niedrigstwertigen Bits der virtuellen Adresse definiert ist, erhalten.
  • Die Ausführung eines Speicherzugriffs ist jedoch insbesondere wegen der Verwendung eines den Prozessoren und den Speichermodulen gemeinsamen Busses verhältnismäßig lang. Um die Leistungsfähigkeit des Systems zu verbessern, wird deshalb versucht, die aufeinanderfolgenden Speicherzugriffe, die im Prinzip für jede Adressierung notwendig sind, soweit wie möglich zu vermeiden. Nun weisen die meisten Prozesse eine Lokalitätseigenschaft auf, gemäß der während einer gegebenen Phase der Abarbeitung des Prozesses die Anzahl der von diesem Prozeß verwendeten Seiten in bezug auf die Gesamtanzahl der ihm zugewiesenen Seiten sehr gering ist.
  • Diese Eigenschaft kann ausgenutzt werden, um die Übersetzung der virtuellen Adresse in die reale Adresse zu beschleunigen. Hierzu werden in einem schnellen Speicher oder in Registern eine bestimmte Anzahl von Paaren von virtuellen Adressen und zugeordneten realen Adressen, die "Extrakte" genannt werden, gespeichert, die vom Programm während einer Abarbeitungsphase verwendet werden. Um im weiteren Verlauf die Übersetzung von einer virtuellen Adresse in eine reale Adresse vorzunehmen, wird auf diesen schnellen Speicher assoziativ zugegriffen, um zu ermitteln, ob die zu übersetzende virtuelle Adresse bereits im schnellen Speicher vorhanden ist. Wenn dies der Fall ist, wird die reale Adresse direkt erhalten, ohne auf den Hauptspeicher zuzugreifen.
  • Die Lokalitätseigenschaft liegt auch der Verwendung von Vorspeichern (die oftmals "Cache-Speicher" genannt werden) zugrunde, welche aus schnellen Speichern kleiner Größe gebildet sind, in denen ständig die Seiten gehalten werden, auf die zuletzt Bezug genommen wurde. Da die Wahrscheinlichkeit, daß eine neue Bezugnahme eine bereits im Vorspeicher vorhandene Information betrifft, hoch ist, wird somit die feststellbare Zeit für den Zugriff auf die Information reduziert. Analog zur Übersetzung einer virtuellen Adresse in eine reale Adresse enthält ein Vorspeicher eine Tabelle, die die realen Adressen der im Vorspeicher vorhandenen Seiten enthält. Diese Tabelle, die Verzeichnis (im Englischen "Directory") genannt wird, kann assoziativ abgefragt werden, um zu bestimmen, ob die einer gegebenen realen Adresse zugeordnete Information im Vorspeicher enthalten ist. Wenn dies der Fall ist, wird ein Wort oder ein Byte dadurch erhalten, daß der Vorspeicher mittels der niedrigstwertigen Bits der virtuellen Adresse des Worts oder des Bytes adressiert wird.
  • In der folgenden Darlegung werden nur die auf die Adressenübersetzungen bezogenen Probleme entwickelt, wobei selbstverständlich die gleichen Betrachtungen auf die Probleme der Vorspeicher angewandt werden können. In den beiden Fällen besteht das Problem nämlich darin, schnell eine einer Seitenadresse zugeordnete Information zu erhalten. Im Fall der Übersetzung einer Adresse ist die Seitenadresse eine virtuelle Adresse und die zugeordnete Information ist eine entsprechende reale Adresse, während im Fall des Vorspeichers die Seitenadresse eine reale Adresse ist und die zugeordnete Information aus einem Satz von in der Seite enthaltenen Daten gebildet ist.
  • Wie weiter oben gesehen, ist der schnelle Speicher für die Adressenübersetzung ein Assoziativspeicher, der eine bestimmte Anzahl von Registern oder allgemeiner von Speicherplätzen enthält, wovon jeder die Speicherung eines Extrakts ermöglicht, der aus einer virtuellen Adresse und deren zugeordneter realer Adresse gebildet ist. Jeder Extrakt kann von komplementären Informationen begleitet sein, etwa Zugriffsrecht-Indikatoren oder einem Indikator, der angibt, daß in der diesem Extrakt zugeordneten Seite ein Schreibzugriff ausgeführt worden ist. Außerdem ist jedem Extrakt ein Präsenzindikator zugeordnet, der für einen bestimmten logischen Wert meldet, daß der zugehörige Extrakt gültig ist. Diese Präsenzindikatoren werden beispielsweise bei der Initialisierung auf 0 gesetzt, d.h. jedesmal, wenn ein Prozeß im betreffenden Prozessor aktiviert wird. Dann werden in dem Maß, in dem der Prozeß neue Seiten verwendet, die zugeordneten Extrakte in den Assoziativspeicher geladen, gleichzeitig wird der Präsenzindikator auf 1 gesetzt. Wenn ein Speicherzugriff ausgeführt werden muß, wird die virtuelle Adresse mit jeder im Assoziativspeicher enthaltenen virtuellen Adresse verglichen, wobei dann, wenn zwischen der gesuchten virtuellen Adresse und einer der im Speicher enthaltenen virtuellen Adressen eine Koinzidenz vorliegt und der Präsenzindikator auf 1 liegt, die entsprechende reale Adresse direkt durch einfaches Lesen des Registers für reale Adressen erhalten werden kann.
  • Damit dieser Übersetzungsmechanismus in der Praxis verwirklicht werden kann, muß selbstverständlich der Assoziativspeicher eine begrenzte Größe besitzen. Daraus folgt, daß für bestimmte Prozesse diese Größe nicht ausreicht, um die Extrakte sämtlicher vom Prozeß verwendeter Seiten zu enthalten. Daher muß der Fall vorgesehen werden, in dem bei vollem Assoziativspeicher einer der vorhandenen Extrakte beseitigt werden muß, um an seiner Stelle einen neuen Extrakt zu laden. Hierzu wird ein Ersetzungsalgorithmus ausgeführt, der dazu bestimmt ist, den zu beseitigenden Extrakt auszuwählen. Es sind bereits zahlreiche Algorithmen vorgeschlagen worden wie z.B.:
  • - der FIFO-Algorithmus ("first in first out"), in dem der älteste Extrakt beseitigt wird,
  • - der RAND-Algorithmus ("random choice"), in dem der Extrakt zufällig gewählt wird,
  • - der LFU-Algorithmus ("least frequently used"), in dem der am seltensten verwendete Extrakt beseitigt wird,
  • - der LRU-Algorithmus ("least recently used"), in dem der zuletzt verwendete Extrakt ersetzt wird.
  • Der LRU-Algorithinus ergibt theoretisch gute Ergebnisse, in der Praxis wird jedoch die Verwendung einer vereinfachten Version, die Pseudo-LRU genannt wird, verwendet. Um nämlich n Extrakte zu steuern, benötigt ein richtiger LRU log&sub2;(n) Bits pro Extrakt, um die Angabe der Reihenfolge der letzten Verwendungen dieser Extrakte zu halten. Dagegen benötigt ein Pseudo-LRU pro Extrakt nur ein einziges Bit, das Referenzbit oder -indikator genannt wird.
  • Gemäß dem Pseudo-LRU-Algorithmus wird das Referenzbit auf 1 gesetzt, wenn der vorhandene Extrakt, der ihm zugeordnet ist, verwendet wird. Wenn ein neuer Extrakt geladen werden muß und der Assoziativspeicher voll ist, d.h. wenn sämtliche Präsenzindikatoren auf 1 liegen, ist der zu beseitigende Extrakt der erste in der chronologischen Auffüllreihenfolge, dessen Referenzbit 0 ist. Wenn eine Sättigung erreicht ist, d.h. wenn sämtliche Referenzbits bis auf ein Bit auf 1 liegen, werden sämtliche Referenzbits auf 0 zurückgesetzt, ferner wird der Extrakt, dessen Referenzbit 0 ist, durch einen neuen Extrakt ersetzt. Ab diesem Zeitpunkt tritt ein Verlust der Historie der Seitenverwendung auf.
  • Ein Algorithmus des LRU-Typs mit einem einzigen Referenzbit ist beschrieben in Electronics, Band 55, Nr. 1, 13. Januar 1982, Seiten 155-159, W.P. WARD: "Mini Computer blasts through 4 million instructions a second".
  • Wegen des Lokalitätsphänomens und der großen Anzahl von Speicherzugriffen, die während der Abarbeitung eines Programms auftreten, hängt die Leistungsfähigkeit eines Informationssystems zum großen Teil von der Schnelligkeit des Betriebs des Assoziativspeichers ab. Deswegen empfiehlt es sich, sowohl die Schaltungen zum assoziativen Lesen als auch die Schaltungen zur Steuerung der Präsenz- und Referenzindikatoren in der Weise zu optimieren, daß deren Aktualisierung den Betrieb nicht verlangsamt.
  • Auch die Erfindung hat zum Ziel, dieses Problem zu lösen, indem eine Ausführung einer Beschleunigungseinrichtung vorgeschlagen wird, die einen Betrieb in zwei Taktphasen ermöglicht, d.h. die die Ausführung eines assoziativen Lesens und die entsprechende Aktualisierung der Indikatoren unabhängig vom logischen Zustand der Indikatoren während einer Zykluszeit ermöglicht, die zwei Taktimpulsen entspricht.
  • Hierzu und gemäß der Erfindung ist die Einrichtung so ausgelegt, daß sie auf die folgende Weise arbeitet:
  • - Während einer ersten Taktphase führt sie den Vergleich zwischen der zu übersetzenden Adresse und jeder im schnellen Speicher enthaltenen Adresse aus, nimmt sie die Auswertung der Sättigungsbedingung vor und verriegelt das Ergebnis dieser Auswertung;
  • - während der zweiten Taktphase aktualisiert sie die Referenzindikatoren in Abhängigkeit von den Koinzidenzsignalen, die während der ersten Phase verriegelt wurden, sowie vom verriegelten Auswertungssignal.
  • Genauer hat die Erfindung eine Einrichtung zum Beschleunigen des Zugriffs auf die im Hauptspeicher eines Informationssystems enthaltenen Informationen zum Gegenstand, wobei das System auf die Informationen durch Adressierung des Hauptspeichers zugreifen kann, wobei die durch eine Adresse und die zugehörige Information gebildete Gesamtheit "Extrakt" genannt wird, wobei die Einrichtung einen schnellen Speicher enthält, der aus mehreren Speicherplätzen aufgebaut ist, wobei jeder Speicherplatz einen der Extrakte speichern kann, wobei jeder Speicherplatz einer Präsenz-Kippschaltung und einer Referenz- Kippschaltung zugeordnet ist, die anfangs auf Null gesetzt werden, wobei die Präsenz-Kippschaltung auf den logischen Wert 1 gezwungen wird, wenn ein Extrakt in den zugehörigen Speicherplatz geladen wird, wobei der schnelle Speicher mit Vergleichsmitteln verbunden ist, die für jeden Speicherplatz ein Koinzidenzsignal ausgeben, das den logischen Wert 1 annimmt, wenn die Adresse einer gesuchten Information mit der Adresse des an der Speicherstelle vorhandenen Extrakts übereinstimmt, wobei die Einrichtung dadurch gekennzeichnet ist, daß sie zweiphasige Synchronisationssignale mit zwei Phasen empfängt, daß die Koinzidenzsignale während der ersten der Phasen ausgewertet und jeweils in den Eingang eines Speichermittels eingegeben werden, das von der ersten der Phasen so gesteuert wird, daß ein mit dieser Phase verriegeltes Koinzidenzsignal gebildet wird, daß die Einrichtung eine gemeinsame Steuerschaltung enthält, um während der ersten dieser Phasen ein Auswertungssignal zu erzeugen, das vom Zustand der Referenz-Kippschaltungen und der Koinzidenzsignale abhängt, wobei das Auswertungssignal den Sättigungszustand darstellt, der angibt, wenn die Referenz- Kippschaltungen bis auf eine, für die Koinzidenz vorhanden ist, sämtlich auf 1 liegen, daß die gemeinsame Steuerschaltung Speichermittel für das Auswertungssignal enthält, die von der ersten dieser Phasen so gesteuert werden, daß ein mit dieser Phase verriegeltes Auswertungssignal gebildet wird, daß die Einrichtung Schaltungen für die Steuerung einer jeden der Referenz-Kippschaltungen enthält, die während der Zeiten dieser Phasen aktiv sind, um die Referenz-Kippschaltungen in Abhängigkeit vom verriegelten Auswertungssignal und von den jeweiligen verriegelten Koinzidenzsignalen zu steuern.
  • Ein besonderes Problem der Ausführung betrifft die Mittel, die für die Erfassung des Sättigungszustandes der Referenz-Kippschaltungen und für die Ausführung von deren Rücksetzung auf 0 in einem einzigen Zyklus von zwei Taktphasen zu verwenden sind.
  • Gemäß einem besonderen Aspekt der Erfindung wird dieser Zustand durch eine Auswertungsschaltung erfaßt, die eine komplexe logische Funktion ausführt, die als logische NICHT-ODER- Operation definiert ist, die auf die den Extrakten zugeordneten logischen Produktvariablen angewendet wird, wobei jede logische Produktvariable als logisches Produkt des Komplements des Referenzbits und des Komplements des Koinzidenzsignals, die den jeweiligen Extrakten zugehören, definiert ist.
  • Gemäß einer besonderen Ausführungsform der Erfindung (mit der Konvention der positiven Logik) ist diese Auswertungsschaltung in CMOS-Technologie verwirklicht und dadurch gekennzeichnet, daß sie eine Auswertungsleitung besitzt, die während der zweiten der Phasen vorgespannt ist, daß jeder Speicherplatz des schnellen Speichers mit zwei in Reihe geschalteten NMOS-Transistoren verbunden ist, daß die Auswertungsleitung über einen der in Reihe geschalteten Transistoren mit Masse verbunden ist und daß für jeden Speicherplatz der erste und der zweite Transistor an ihrem Gate das Komplement des Referenzindikators bzw. des Koinzidenzsignals empfangen.
  • Weitere Merkmale und Einzelheiten der Ausführung der Erfindung werden in der folgenden Beschreibung mit Bezug auf die Figuren dargelegt, in denen:
  • - Fig. 1 schematisch die Verarbeitungsmittel eines Informationssystems für die Implementierung der Erfindung zeigt;
  • - Fig. 2 eine Ausführungsform des schnellen Speichers zeigt;
  • - Fig. 3 eine Steuerschaltung für die Referenzindikatoren zeigt;
  • - Fig. 4 ein Ausführungsdetail der Steuerschaltung von Fig. 3 zeigt;
  • - Fig. 5 eine Steuerschaltung einer der Referenz-Kippschaltungen zeigt;
  • - Fig. 6 ein Zeitablaufdiagramm zeigt, das die Erläuterung des Betriebs der in den Fig. 3 bis 5 gezeigten Schaltungen ermöglicht;
  • - Fig. 7 eine Wählschaltung zeigt, die die Bestimmung des Speicherplatzes des schnellen Speichers ermöglicht, in den ein neuer Extrakt geladen werden soll;
  • - Fig. 8 und 9 Ausführungsdetails der Schaltung von Fig. 7 zeigen;
  • - Fig. 10 eine Steuerschaltung zum Laden einer der Speicherplätze des schnellen Speichers zeigt.
  • Fig. 1 ist eine allgemeine Darstellung der Verarbeitungsmittel eines Informationssystems, die die Implementierung der Erfindung ermöglichen. Diese Mittel umfassen den schnellen Speicher oder Assoziativspeicher 1, der mit seiner Steuereinrichtung 2 verbunden ist, sowie weitere Schaltungen 3 eines Prozessors. Der Prozessor ist auf herkömmliche Weise über die Schaltungen 3 mit dem (nicht gezeigten) Hauptspeicher verbunden. Die Schaltungen 3 enthalten sämtliche Verarbeitungsmittel des Prozessors bis auf diejenigen, die die Adressenübersetzung betreffen. Insbesondere enthalten sie eine Einheit zur Entwicklung der Adresse, die im allgemeinen mikroprogrammiert ist, um anhand der Befehle die virtuellen Adressen AV der gesuchten Informationen zu berechnen. Die Mikrosoftware der Schaltungen 3 führt die jeweilige Suche in den Tabellen aus, um in Abhängigkeit von den virtuellen Adressen reale Adressen zu erhalten. Diese Adressenübersetzung wird kraft des Assoziativspeichers 1 beschleunigt, der aus einer bestimmten Anzahl n von Registern für virtuelle Adressen RAV und aus der gleichen Anzahl von Registern für reale Adressen RAR gebildet ist. Der Speicher 1 enthält außerdem einen Satz von n Kippschaltungen BPR, die den jeweiligen Registern für virtuelle Adressen und für reale Adressen zugeordnet sind. Die virtuelle Adresse AVi, die im Register für virtuelle Adressen der Ordnungszahl i enthalten ist, und die reale Adresse ARi, die im Register für reale Adressen derselben Ordnungszahl enthalten ist, bilden den Extrakt i. Dieser Extrakt i ist einem Präsenzindikator PRi zugeordnet, dessen logischer Wert dem Zustand der entsprechenden Präsenz-Kippschaltung entspricht. Ein Komparator 4 ist mit den Ausgängen AVi der Register für virtuelle Adressen RAV verbunden und empfängt von der Mikrosoftware die zu übersetzende virtuelle Adresse AV. Die Vergleichsschaltung 4 wird durch die Ausgangssignale PRi der Präsenz-Kippschaltungen BPR validiert. Die Schaltung 4 gibt Koinzidenzsignale HITi aus, deren logische Werte die Gleichheit zwischen der gesuchten logischen Adresse und einer der in den Registern RAV enthaltenen logischen Adressen repräsentieren. Die Signale HITi werden in eine Validierungsschaltung 8 eingegeben, die zur Mikrosoftware ein Adressenvalidierungssignal AD VAL ausgibt, das angibt, wenn die Adressenübersetzung erfolgreich durchgeführt worden ist.
  • Im Mißerfolgsfall löst das Signal AD VAL ein Mikroprogramm zum Suchen in den Tabellen aus, um die reale Adresse zu erhalten. Wenn die Suche ausgeführt ist, werden die virtuelle Adresse AVe und die zugeordnete reale Adresse ARe in die jeweiligen Eingangsschnittstellen 5, 6 der Register für virtuelle Adressen bzw. für reale Adressen eingegeben, um unter der Steuerung der Schreibsteuersignale WRVi und WRRi jeweils in eines dieser Register geschrieben zu werden.
  • Wenn die Übersetzung erfolgreich ist, lassen die Koinzidenzsignale HITi über die Schnittstelle 7 das Lesen des Registers für reale Adressen, das die gesuchte Übersetzung enthält, zu.
  • Die Steuereinrichtung 2 enthält einen Satz von Referenz-Kippschaltungen BRF, die den jeweiligen Speicherplätzen des Speichers 1 und somit den Extrakten, die er enthält, zugeordnet sind. Der Zustand RFi der Kippschaltungen BRF wird durch eine Steuerschaltung 9 bestimmt, der die Koinzidenzsignale HITi empfängt und der mit den Ausgängen RFi der Referenz-Kippschaltungen BRF verbunden ist. Eine Wählschaltung 10, die mit den Ausgängen der Präsenz-Kippschaltungen BPR und der Referenz- Kippschaltungen BRF verbunden ist, gibt Wählsignale Si aus, die in eine Lade-Steuerschaltung 11 eingegeben werden, die die bereits erwähnten Signale WRVi und WRRi ausgibt. Die Wählsignale Si ermöglichen die Bestimmung der Register für virtuelle und für reale Adressen, in die ein neuer Extrakt, der in der Tabelle nicht vorhanden ist, geladen werden soll. Die Schreibbefehle WRVi und WRRi werden durch die Lade-Steuerschaltung 11 in Abhängigkeit von den Wählsignalen Si und von den gemeinsamen Schreibsteuersignalen WRR, WRV bestimmt, die von der gemeinsamen Mikrosoftware geliefert werden. Die Mikrosoftware 3 liefert außerdem ein Signal RS, das die Rücksetzung auf Null der Präsenz- und der Referenz-Kippschaltungen steuert.
  • Die Einrichtung von Fig. 1 arbeitet auf die folgende Weise. Wenn eine virtuelle Adresse AV zu übersetzen ist, ordnet die Mikrosoftware diese Adresse am Eingang des Komparators 4 an. Bei Koinzidenz validieren die Signale HITi das Register für reale Adressen, das die gesuchte Übersetzung enthält, ferner validiert die Schaltung 8 diese Adresse durch das Signal AD VAL. Abhängig von den Koinzidenzsignalen HITi, der Anzahl der im schnellen Speicher vorhandenen Extrakte und vom früheren Zustand RFi der Referenz-Kippschaltungen reaktualisiert die Steuerschaltung 9 den Zustand dieser letzteren. Abhängig vom neuen Zustand RFi dieser Kippschaltungen und der Präsenzindikatoren PRi reaktualisiert die Wählschaltung 10 die Wählsignale Si, die die Bestimmung der neuen Register ermöglichen, in die der als nächstes zu ladende Extrakt geschrieben wird.
  • Im Mißerfolgsfall wird diese Situation durch das Signal AD VAL gemeldet, das das Mikroprogramm zum Suchen in den Tabellen auslöst. Wenn diese Suche ausgeführt ist, ist der entsprechende Extrakt AVe, ARe am Eingang der Schnittstellen 5, 6 vorhanden. Dieser Extrakt wird dann unter der Steuerung der Schaltung 11 abhängig von den Schreibsignalen WRR, WRV und den Wählsignalen Si geladen. Wenn der Extrakt in die gewählten Register geladen ist, führt die Mikrosoftware einen neuen Versuch der Übersetzung der zu übersetzenden virtuellen Adresse aus.
  • Gemäß einer Besonderheit dieser Ausführung berücksichtigt die Steuerschaltung 9 die Anzahl der im Speicher vorhandenen Extrakte. Solange diese Anzahl kleiner als ein bestimmter Schwellenwert t ist, werden die Referenzindikatoren RFi unverändert gehalten und behalten somit den Anfangswert (z.B. 0) bei, der ihnen durch das Signal RS am Beginn der Abarbeitung des Prozesses beispielsweise in Folge eines Dispatchings aufgezwungen worden ist. Sobald die Anzahl der vorhandenen Extrakte den Wert t erreicht oder überschreitet, können die Indikatoren RFi gemäß dem herkömmlichen Pseudo-LRU-Algorithmus modifiziert werden. Aus der folgenden Beschreibung wird ersichtlich, wie dieser Schwellenwert in der Praxis bestimmt werden kann.
  • Der Schwellenwert wird bestimmt, indem der optimale Wert der Anzahl n - t gesucht wird, der der Anzahl von Extrakten entspricht, die zwischen dem Zeitpunkt, in dem der Schwellenwert erreicht ist, und dem Zeitpunkt, in dem der Assoziativspeicher voll ist, geladen werden. Hierzu können statistische Daten verwendet werden, die sich insbesondere auf die jeweilige Anzahl der von den Prozessen zwischen zwei Dispatchings verwendeten Extrakten und auf das Alter der wiederverwendeten Seiten stützen. Eine andere Lösung besteht darin, Simulationen des Systembetriebs mit charakteristischen Programmen auszuführen und dabei den Schwellenwert zu variieren.
  • In einem nicht beschränkenden Beispiel kann für einen Universalrechner des Multiprozessortyps bei n = 32 t = 24 gewählt werden.
  • Fig. 2 zeigt den Teil des Speichers 1, der einem der Extrakte zugeordnet ist. Die virtuelle Adresse und die reale Adresse des Extrakts i, von dem angenommen wird, daß er geladen ist, sind in dem Register für virtuelle Adressen RAVi bzw. dem Register für reale Adressen RARi enthalten. Der parallele Ausgang AVi des Registers für virtuelle Adressen RAVi ist mit einem ersten Eingang einer Vergleichsschaltung 14 des Komparators 4 verbunden, dessen zweiter Eingang die zu übersetzende virtuelle Adresse AV empfängt, die vom Register Rc geliefert wird. Eine Präsenz-Kippschaltung BPRi ist mit ihrem Ausgang PRi mit dem Validierungseingang der Schaltung 14 verbunden. Der Ausgang PRi ist außerdem mit der Steuereinrichtung 2 verbunden. Der Ausgang der Schaltung 14 ist einerseits mit der Steuereinrichtung 2 und andererseits mit dem Eingang eines Synchronisationsgatters 17 verbunden. Das Gatter 17 ist durch die erste Phase CK1 eines Taktsignals synchronisiert.
  • Der parallele Ausgang des Registers für reale Adressen RARi ist mit dem Eingang eines Verstärkers 18B verbunden, der durch das Ausgangssignal RDi des Synchronisationsgatters 17 validiert wird. Das Signal RDi validiert außerdem den Verstärker 18A, der an seinem Eingang eine Spannung empfängt, die dem logischen Wert 1 entspricht. Die Signale AD VAL und ARi, die von den Verstärkern 18A und 18B ausgegeben werden, werden zur Mikrosoftware geschickt.
  • Die virtuelle Adresse AVe und die reale Adresse ARe, die dazu bestimmt sind, in die Register geladen zu werden, werden anfangs in einem Ausgangsregister Re der Mikrosoftware angeordnet. Der parallele Ausgang des Registers Re ist mit den parallelen Eingängen der Register RAVi und RARi über Verstärker 15 bzw. 16 verbunden. Die Verstärker 15, 16 werden durch die von der Steuereinrichtung 2 gelieferten Signale WRVi bzw. WRRi validiert.
  • Die Schaltung von Fig. 2 arbeitet auf die folgende Weise. Ein (nicht gezeigter) Taktgeber liefert ein Taktsignal mit zwei Phasen CK1 und CK2. Während der Phase CK2 ordnet die Mikrosoftware die zu übersetzende virtuelle Adresse AV im Register Rc an. Während der folgenden Phase CK1 wird diese Adresse in der Schaltung 14 mit der virtuellen Adresse AVi verglichen, die im Register RAVi enthalten ist. Wenn die Adressen AV und AVi verschieden sind oder wenn der Präsenzindikator PRi auf Null liegt, nimmt das Koinzidenzsignal HITi den Wert Null an. Daraus folgt, daß während der Phase CK1 die Verstärker 18A und 18B im Zustand mit hoher Impedanz gehalten werden.
  • Wenn dagegen die Adressen AV und AVi identisch sind, während der Präsenzindikator PRi auf 1 liegt, nimmt das Koinzidenzsignal HITi den Wert 1 an. Somit wird während der Phase CK1 die im Register RARi enthaltene reale Adresse ARi über den Verstärker 18B zur Mikrosoftware übertragen. Gleichzeitig liegt das Signal AD VAL auf 1, was somit die erfolgreiche Übersetzung angibt. Es kann angemerkt werden, daß die Verstärker 18A, die den verschiedenen Extrakten des Speichers zugeordnet sind, eine festverdrahtete ODER-Funktion ausführen, die vorteilhaft mittels einer während der Phase CK2 vorgespannten und während der Phase CK1 durch eines der Signale RDi wahlweise entlasteten Leitung verwirklicht sein kann.
  • Um einen neuen Extrakt in den schnellen Speicher zu laden, ordnet die Mikrosoftware zunächst die virtuelle Adresse AVe des Extrakts im Register Re an und aktiviert das Steuersignal zum Schreiben der virtuellen Adresse WRV. Wenn das Register RAVi gewählt wird, gibt die Ladeschaltung 11 der Steuereinrichtung 2 ein Signal WRVi aus, das den Verstärker 15 validiert. Ebenso wird anschließend die entsprechende reale Adresse ARe im Ausgangsregister Re angeordnet, wobei das Signal WRRi den Verstärker 16 validiert.
  • Fig. 3 zeigt genauer die Referenz-Kippschaltungen BRF und deren Steuerschaltung 9. Die Steuerschaltung 9 ist aus einer gemeinsamen Steuerschaltung 19B und einem Satz 19A von Steuerschaltungen für die Kippschaltungen BRF aufgebaut. Wenn die Speicherplätze (Registerpaare) des Assoziativspeichers mit den Indizes 1, 2, ..., i, ..., n bezeichnet werden, werden ihnen jeweils die Kippschaltungen BRFi, BRF&sub2;, ..., BRFi, ..., BRFn zugeordnet. Jede Kippschaltung BRFe wird durch ein Signal BRFi gesteuert, das von einer zugeordneten Steuerschaltung GRF geliefert wird. Die Ausgänge RF&sub1;, RF&sub2;, ..., RFi, ..., RFn sind mit der gemeinsamen Steuerschaltung 19B verbunden, die an jede Steuerschaltung GRF ein Vorpositionierungssignal V zum Setzen auf 1 und ein Vorpositionierungssignal CL2 zum Rücksetzen auf 0 liefert. Die Schaltung 19B empfängt außerdem die Koinzidenzsignale HIT&sub1;, HIT&sub2;, ..., HITi, ..., HITn.
  • Jede Steuerschaltung GRF empfängt ein Signal HLi, das durch Verriegelung auf die Phase CK1 des zugeordneten Koinzidenzsignals HITi mittels einer Kippschaltung BHL erhalten wird.
  • Die Funktion der Schaltung von Fig. 3 wird mit den Fig. 4 und 5 erläutert, die genaue Ausführungen der gemeinsamen Steuerschaltung 19B bzw. der Steuerschaltung GRF zeigen. Nach Konvention werden die Erläuterungen in positiver Logik gegeben.
  • Die in Fig. 4 gezeigte gemeinsame Steuerschaltung 19B ist aus einer Auswertungsschaltung 19C, einer Kippschaltung BCL und einer Synchronisationsschaltung 19D aufgebaut.
  • Die Auswertungsschaltung 19C enthält eine Auswertungsleitung CL, deren Zustand angibt, ob der Sättigungszustand des schnellen Speichers erreicht ist. Die Schaltung 19C besteht aus einem komplexen logischen Gatter in CMOS-Technologie, wovon die Leitung C1 während der Phase CK2 mittels PMOS- Transistoren P1 und P2 vorgespannt ist. Die Leitung CL wird in Abhängigkeit von den Signalen HITi* und RFi*, die Komplemente der den im schnellen Speicher enthaltenen Extrakten zugeordneten Koinzidenzsignale HITi und Referenzsignale RFi sind, ausgewertet. Der Zustand der Leitung C1 wird durch die Phase CK1 in der Kippschaltung BCL, die an ihrem Ausgang ein verriegeltes Auswertungssignal CL1 ausgibt, verriegelt.
  • Die Leitung CL ist über den gemeinsamen NMOS-Transistor N3 und für jeden Extrakt über die Reihenschaltung, die aus zwei NMOS- Transistoren N1 und N2 gebildet ist, deren Gates die Signale RFi* bzw. HITi* des zugeordneten Extrakts empfangen, mit Masse VSS verbunden. Dieser Aufbau ermöglicht die Ausführung der logischen Funktion (die während der Phase CK1 ausgewertet wird):
  • CL = Σ* (RFi* HITi*)
  • wobei Σ* die NICHT-ODER-Funktion ("NOR") ist, die auf die Gesamtheit der logischen Produkte RFi* HITi* angewendet wird.
  • Der Transistor N3, der während der Phase CK2 gesperrt ist, trägt zur Vorspannung der Leitung CL bei.
  • Somit wird die Leitung CL ab dem Beginn des Betriebs des assoziativen Speichers, wenn sämtliche Indikatoren auf 0 initialisiert werden, in jeder Auswertungsphase entlastet, solange der Sättigungszustand nicht erreicht ist, wobei dieser Zustand dem Fall entspricht, in dem sämtliche Referenzindikatoren bis auf einen, für den Koinzidenz vorliegt, auf 1 liegen. Im letzteren Fall behält die Leitung CL den logischen Wert 1 während der Auswertungsphase bei, was somit anzeigt, daß der Sättigungszustand erreicht ist.
  • Die Synchronisationsschaltung 19D enthält ein UND-Gatter 21 mit drei Eingängen. Ein erster Eingang empfängt das verriegelte Auswertungssignal CL1, ein zweiter Eingang empfängt die Phase CK2 und ein dritter Eingang empfängt ein USE-Signal für die Zulassung des Betriebs. Das USE-Signal ist ein Betriebssteuersignal, das von der Mikrosoftware geliefert wird.
  • Die Schaltung 19D enthält außerdem ein NICHT-UND-Gatter ("NAND") 20 mit drei Eingängen, die die Taktphase CK2, das USE-Signal bzw. ein Schwellenwertsignal PRt empfangen, welches den logischen Wert 1 annimmt, wenn der Ladeschwellenwert des schnellen Speichers erreicht ist. Das Gatter 20 liefert an seinem Ausgang das Signal V*, welches das Komplement des Vorpositionierungssignals V zum Setzen auf 1 ist. Unter der Voraussetzung, daß die Speicherplätze in einer bestimmten Ordnung geladen werden, kann das Schwellenwertsignal einfach durch Lesen derjenigen Kippschaltung BPRt erhalten werden, deren Ordnungszahl gleich dem Schwellenwert t ist und die gewählt worden ist.
  • Fig. 5 zeigt die Referenz-Kippschaltung BRFi und deren zugeordnete Steuerschaltung GRF. Die Kippschaltung BRFi ist einfach aus zwei entgegengesetzt angeordneten Invertierern gebildet, die den Referenzindikator RFi und dessen Komplement RFi* liefern.
  • Der Zustand RFi der Kippschaltung BRFi wird durch die Leitung WRFi gesteuert. Die Leitung WRFi kann über die Serienschaltung, die aus zwei NMOS-Transistoren N4, N5 gebildet ist, oder über einen NMOS-Transistor N6 entlastet werden. Die Transistoren N4, N5 und N6 empfangen an ihrem Gate das Signal HLi*, welches das Komplement des Signals HLi ist, das Signal CL2 bzw. das Signal RS. Daraus folgt, daß die Leitung WRFi entlastet wird, wenn das Signal RS auf 1 liegt oder wenn das Signal CL2 auf 1 liegt, während das Signal HLi auf Null liegt. Somit wird die Kippschaltung BRFi auf 0 gezwungen, wenn der Sättigungszustand erfaßt wird, wenn die im zugeordneten Register enthaltene virtuelle Adresse nicht mit der zu übersetzenden virtuellen Adresse übereinstimmt.
  • Die Leitung WRFi kann über die Reihenschaltung, die aus zwei PMOS-Transistoren P3, P4 gebildet ist, die an ihrem Gate die Signale HLi* bzw. V* empfangen, auf den logischen Wert 1 gesetzt werden. Aus diesem Aufbau ergibt sich, daß die Kippschaltung BRFi auf 1 gezwungen wird, wenn die Signale V und HLi auf 1 liegen, d.h. wenn die gesuchte virtuelle Adresse mit der im Register enthaltenen virtuellen Adresse übereinstimmt, sofern der Schwellenwert erreicht ist.
  • Nun wird mit Bezug auf die Zeitablaufdiagramme von Fig. 6 der vollständige Betrieb der Schaltungen der Fig. 3, 4 und 5 beschrieben.
  • Die Zeitablaufdiagramme von Fig. 6 zeigen die zeitlichen Veränderungen der Signale CL, CL1, CL2 und V, die von der gemeinsamen Steuerschaltung 19B erzeugt werden, sowie der Signale HITi, HLi und RFi, die dem Extrakt i des Assoziativspeichers zugeordnet sind. Es wird angenommen, daß der betrachtete Extrakt i vorhanden ist, d.h. daß der Indikator PRi auf 1 liegt. Außerdem wird angenommen, daß der Schwellenwert bereits erreicht ist, d.h. daß das Signal V wahrend der Phase CK2 auf 1 liegt und somit das Signal V* während dieser Phase auf Null liegt. Schließlich wird angenommen, daß im Anfangszeitpunkt t&sub0; der Referenzindikator RFi und das verriegelte Auswertungssignal CL1 beide auf Null liegen.
  • Ausgehend vom Zeitpunkt t&sub0; findet während der Phase CK2 die Vorspannung der Leitung CL der Schaltung 19C statt. Ausgehend vom Zeitpunkt t&sub1; findet während der folgenden Phase CK1 die Auswertung des Koinzidenzsignals HITi, von dem angenommen wird, daß es den Wert 1 annimmt, statt. Während dieser Phase ist das Signal HITi durch die Kippschaltung BHL, deren Zustand HLi auf 1 übergeht, verriegelt. Gleichzeitig wird die Leitung CL ausgewertet. Unter der Annahme, daß die Sättigung nicht erreicht ist, geht das Signal C1 auf 0 über, außerdem bleiben die Signale CL1 und CL2 auf 0. Während der folgenden Phase CK2 ab dem Zeitpunkt t&sub2; wird die Leitung CL erneut vorgespannt. Da andererseits das Koinzidenzsignal HLi und das Validierungssignal V auf 1 liegen, sind die Transistoren P3 und P4 der Steuerschaltung GRF auf Durchlaß geschaltet und wird die Leitung WRFi auf eine positive Spannung aufgeladen, die somit den Indikator RFi auf 1 zwingt.
  • Während der folgenden Phase CK1, die im Zeitpunkt t&sub3; beginnt, geht das Koinzidenzsignal HITi unter der Annahme, daß keine Koinzidenz vorliegt, auf 0 über, wodurch das Signal HLi auf 0 gezwungen wird. Noch immer unter der Annahme, daß der Sättigungszustand nicht erreicht ist, wird die Leitung C1 während dieser Phase entlastet, ferner bleiben die Signale CL1 und CL2 auf 0. Daraus folgt, daß während der folgenden Phase CK2, die im Zeitpunkt t&sub4; beginnt, das Signal CL2, das auf 0 liegt, den Transistor N5 im gesperrten Zustand hält und somit die Rücksetzung auf 0 der Kippschaltung BRFi verhindert.
  • Während der folgenden Phase CK1, die im Zeitpunkt t&sub5; beginnt, wird angenommen, daß der Schwellenzustand erreicht ist und daß das Signal HITi auf 0 liegt. Daraus folgt, daß die Leitung CL belastet ist, wodurch das Setzen auf 1 der Kippschaltung BCL hervorgerufen wird, deren Zustand CL1 auf 1 übergeht. Somit geht während der folgenden Phase CK2, die im Zeitpunkt t&sub6; beginnt, das Vorpositionierungssignal zum Rücksetzen auf 0 CL2 auf 1 über, wodurch der Transistor N5 auf Durchlaß geschaltet wird. Da das Signal HLi auf 0 liegt, wird auch der Transistor N4 auf Durchlaß geschaltet, ferner wird die Leitung BRFi entlastet und der Indikator RFi wird auf 0 zurückgesetzt.
  • Die vorangehende Beschreibung zeigt, daß der Assoziativspeicher ständig in zwei Taktphasen arbeitet, selbst dann, wenn die Referenzindikatoren auf 0 zurückgesetzt werden müssen.
  • Fig. 7 zeigt die oben mit Bezug auf Fig. 1 erwähnte Kippschaltung 10. Es finden sich die Präsenz-Kippschaltungen BPR1, BPR2, ..., BPRi, ..., BPRn sowie die Referenz-Kippschaltungen BRF&sub1;, BRF&sub2;, ..., BRFi, ..., BRFn wieder, die den jeweiligen Extrakten mit den Ordnungszahlen 1, 2, ..., i, ..., n des Assoziativspeichers zugeordnet sind.
  • Jedem Extrakt i sind eine Wählzelle CS sowie zwei Anforderungssignal-Sendeschaltungen CP zugeordnet, welche der Präsenz-Kippschaltung bzw. der Referenz-Kippschaltung des Extrakts zugeordnet sind.
  • Jede Sendeschaltung CP liefert ein Anforderungssignal VPi bzw. RPi und empfängt den Indikator PRi bzw. RFi der zugeordneten Kippschaltung sowie das Anforderungssignal VPi-1 bzw. RPi-1, das von der vorausgehenden Sendeschaltung ausgegeben wird.
  • Der Ausgang VPn der der Präsenz-Kippschaltung BPRn des letzten Extrakts mit Ordnungszahl n zugeordneten Sendeschaltung CP wird in den Anforderungseingang der Sendeschaltung eingegeben, die der Referenz-Kippschaltung BRFi des ersten Extrakts zugeordnet ist. Andererseits empfängt der Anforderungseingang der der Präsenz-Kippschaltung BPR&sub1; des ersten Extrakts zugeordneten Sendeschaltung CP ständig ein Signal, das das Vorliegen einer Anforderung angibt. Im gezeigten Beispiel ist angenommen worden, daß eine Anforderung vorliegt, wenn das zugeordnete Anforderungssignal auf 1 liegt. Selbstverständlich könnte die umgekehrte Konvention gewählt werden, ohne deswegen vom Umfang der Erfindung abzuweichen.
  • Jede Sendeschaltung ist so beschaffen, daß sie ein Anforderungssignal VPi bzw. RPi ausgibt, das das Vorhandensein einer Anforderung anzeigt, wenn das vorangehende Anforderungssignal VPi-1 bzw. RPi-1 das Vorhandensein einer Anforderung angibt und der Indikator PRi bzw. RFi auf 1 liegt. Andererseits liefert die Wählzelle CS ein Wählsignal Si, das die Wahl des Extrakts i anzeigt, wenn eines der vorangehenden Anforderungssignale VPi-1 oder RPi-1 das Vorhandensein einer Anforderung meldet und die zugeordnete Kippschaltung BPRi oder BRFi auf 0 liegt.
  • Die Schaltung von Fig. 7 arbeitet auf die folgende Weise. Abhängig vom Zustand der Präsenz- und Referenz-Kippschaltungen kann sich das Anforderungssignal, das ständig in den Eingang der der ersten Präsenz-Kippschaltung BPR1 zugeordneten Sendeschaltung eingegeben wird, allmählich in wachsender Ordnung der Extrakte zunächst über die den Präsenz-Kippschaltungen zugeordneten Sendeschaltungen und dann über die den Referenz- Kippschaltungen zugeordneten Sendeschaltungen ausbreiten. Die Ausbreitung des Anforderungssignals endet auf Höhe der Sendeschaltung, die einer Präsenz- oder Referenz-Kippschaltung zugeordnet ist, die auf 0 liegt. Die diesem Extrakt zugeordnete Wählzelle ordnet dann dem Wählsignal Si einen bestimmten logischen Wert zu, der angibt, daß das Schreiben eines neuen Extrakts in die zugeordneten Register ausgeführt werden muß.
  • Die Schaltung von Fig. 7 ermöglicht somit ständig das Zeigen auf denjenigen Speicherplatz des Assoziativspeichers, der dazu bestimmt ist, einen zu ladenden neuen Extrakt zu empfangen. Der von dieser Schaltung ausgeführte Ladealgorithmus besteht somit darin, in wachsender Ordnung der den Speicherplätzen zugewiesenen Ordnungszahlen den ersten Speicherplatz, der keinen Extrakt enthält (den ersten Speicherplatz, dessen Präsenzindikator PRi auf 0 liegt) und dann den ersten Extrakt, der jüngst nicht verwendet worden ist (der erste Extrakt, dessen Referenzindikator RFi auf 0 liegt) zu suchen. Gemäß dieser Ausführungsform wird die Aktualisierung der Wählsignale Si automatisch bei der Änderung des Zustandes der Präsenz- und Referenz-Kippschaltungen gesteuert.
  • Wegen der Anordnung in Kaskade der Sendeschaltungen ist die Reaktionszeit dieser Schaltungen ziemlich lang. Dieser Nachteil ist indessen nicht bestimmend, weil die Verwendung der Wählsignale nur nach der Suche in den Tabellen nach einem neu zu ladenden Extrakt erfolgt, was ebenfalls eine ziemlich lange Operation ist. Die Schwerfälligkeit der Wählschaltung kann jedoch hinderlich werden, wenn der Assoziativspeicher eine große Anzahl von Extrakten enthält. Um auch diesen Nachteil zu vermeiden und gemäß einer vorteilhaften Ausführungsvariante wird eine Optimierung der Wählzellen und der Sendeschaltung im Hinblick auf die Reduzierung der Anzahl von Schichten dieser Schaltungen und daher die Erhöhung der Betriebsgeschwindigkeit vorgeschlagen.
  • Hierzu sind Zellen zweier verschiedener Typen vorgesehen, je nachdem, ob sie Speicherplätzen mit gerader Ordnungszahl oder mit ungerader Ordnungszahl zugeordnet sind.
  • Fig. 8 zeigt eine Wählzelle CSI sowie die Sendeschaltungen CPI, die einem Speicherplatz mit ungerader Ordnungszahl zugeordnet sind. Die Sendeschaltung CPI besteht aus einem NICHT-UND-Gatter ("NAND"), das an einem ersten Eingang den zugeordneten Indikator RFi, PRi und an seinem zweiten Eingang das vorangehende Anforderungssignal RPi-1, VPi-1 empfängt. Die Gatter CPI geben an ihrem Ausgang die Komplemente RPi*, VPi* der Anforderungssignale aus. Die Zelle CSI ist ein komplexes Logikgatter, das am Eingang die vorangehenden Anforderungssignale RPi-1, VPi-1 sowie die Komplemente RFi*, PRi* der Indikatoren RFi, PRi empfängt. Das Gatter CSI gibt an seinem Ausgang das Signal Si* aus, welches das Komplement des Wählsignals Si ist, das die folgende Gleichung erfüllt:
  • Si = RFi* RPi-1 + PRi* VPi-1.
  • Um das Signal Si zu erhalten, ist der Ausgang des Gatters CSI mit einem Inverter verbunden.
  • Die Fig. 9 zeigt eine Wählzelle CSP sowie die Sendeschaltungen CPP, die einem Speicherplatz mit gerader Ordnungszahl zugeordnet sind. Eine Sendezelle CPP ist mittels eines NICHT- ODER-Gatters ("NOR") verwirklicht, das an einem ersten Eingang das Komplement des zugeordneten Indikators RFi, PRi und an einem zweiten Eingang das Komplement RPi-1* des Anforderungssignals RPi-1, VPi-1, das von der vorangehenden ungeraden Stufe ausgegeben wird, empfängt. Die Wählzelle CSP ist ein komplexes Gatter, das an seinem Eingang die Indikatoren RFi, PRi und die Komplemente der zugeordneten Anforderungssignale RPi-1, VPi-1 empfängt. Das Gatter CSP gibt das Wählsignal Si aus, das die vorangehende Logikgleichung erfüllt.
  • Die Zellen CSI, CSP und die Gatter CSI, CPP können in CMOS- Technologie einfach verwirklicht werden.
  • Schließlich zeigt Fig. 10 die Schaltung, mit der in Abhängigkeit von den Steuersignalen WRV, WRR und dem Wählsignal Si die Erzeugung der Schreibsteuersignale WRVi bzw. WRRi, die den Registern RAVi bzw. RARi zugeordnet sind, möglich ist. Die Schaltung von Fig. 10 ist einfach mittels logischer UND-Gatter verwirklicht, die die Übertragung der gemeinsamen Schreibsteuersignale der virtuellen Adresse WRV bzw. der realen Adresse WRR ermöglichen, welche durch das Wählsignal Si validiert und durch die Taktphase CK2 synchronisiert sind.

Claims (8)

1. Einrichtung zum Beschleunigen des Zugriffs auf die in einem Hauptspeicher eines Informationssystems enthaltenen Informationen, wobei das System auf die Informationen durch Adressierung des Hauptspeichers zugreifen kann, wobei die durch eine Adresse und die zugehörige Information gebildete Gesamtheit "Extrakt" genannt wird, wobei die Einrichtung einen schnellen Speicher (1, RAR, RAV) enthält, der aus mehreren Speicherplätzen (RARi, RAVi) aufgebaut ist, wobei jeder Speicherplatz einen der Extrakte speichern kann, wobei jeder Speicherplatz einer Präsenz-Kippschaltung (BPRi) und einer Referenz-Kippschaltung (BRFi) zugeordnet ist, die anfangs auf Null gesetzt werden, wobei die Präsenz-Kippschaltung (BPRi) auf den logischen Wert 1 gezwungen wird, wenn ein Extrakt in den zugehörigen Speicherplatz (RARi, RAVi) geladen wird, wobei der schnelle Speicher (1, RAR, RAV) mit Vergleichsmitteln (4, 14) verbunden ist, die für jeden Speicherplatz ein Koinzidenzsignal (HITi) ausgeben, das den logischen Wert 1 annimmt, wenn die Adresse einer gesuchten Information mit der Adresse des an der Speicherstelle vorhandenen Extrakts übereinstimmt, wobei die Einrichtung dadurch gekennzeichnet ist, daß sie zweiphasige Synchronisationssignale mit zwei Phasen (CK1, CK2) empfängt, daß die Koinzidenzsignale (HITi) während der ersten der Phasen (CK1) ausgewertet und jeweils in den Eingang eines Speichermittels (BHL) eingegeben werden, das von der ersten der Phasen (CK1) so gesteuert wird, daß ein mit dieser Phase (CK1) verriegeltes Koinzidenzsignal (HLi) gebildet wird, daß die Einrichtung eine gemeinsame Steuerschaltung (19B) enthält, um während der ersten dieser Phasen (CK1) ein Auswertungssignal (CL) zu erzeugen, das vom Zustand der Referenz-Kippschaltungen (BRFi) und der Koinzidenzsignale (HITi) abhängt, wobei das Auswertungssignal den Sättigungszustand darstellt, der angibt, wenn die Referenz-Kippschaltungen (BRFi) bis auf eine, für die Koinzidenz vorhanden ist, sämtlich auf 1 liegen, daß die gemeinsame Steuerschaltung (19B) Speichermittel (BCL) für das Auswertungssignal (CL) enthält, die von der ersten dieser Phasen (CK1) so gesteuert werden, daß ein mit dieser Phase (CK1) verriegeltes Auswertungssignal (CL1) gebildet wird, daß die Einrichtung Schaltungen für die Steuerung (GRF) einer jeden der Referenz-Kippschaltungen (BRFi) enthält, die während der zweiten dieser Phasen (CK2) aktiv sind, um die Referenz- Kippschaltungen (BRFi) in Abhängigkeit vom verriegelten Auswertungssignal und von den jeweiligen verriegelten Koinzidenzsignalen (HLi) zu steuern.
2. Einrichtung gemäß Anspruch 1, dadurch gekennzeichnet, daß das Auswertungssignal (CL) von einer Auswertungsschaltung (19C) geliefert wird, die die logische NICHT-ODER- Operation an den Extrakten zugehörigen logischen Produktvariablen ausführt, wobei jede logische Produktvariable als logisches Produkt des Komplements (RFi*) des Referenzbits (RFi) und des Komplements (HITi*) des Koinzidenzsignals (HITi), die den jeweiligen Extrakten zugehören, definiert ist.
3. Einrichtung gemäß Anspruch 2, dadurch gekennzeichnet, daß die Auswertungsschaltung (19C) eine Schaltung in CMOS-Technologie ist, daß sie eine Auswertungsleitung (CL) besitzt, die während der zweiten der Phasen (CK2) vorgespannt ist, daß jeder Speicherplatz (RAVi, RARi) des schnellen Speichers (1) mit zwei in Reihe geschalteten NMOS-Transistoren (N1, N2) verbunden ist, daß die Auswertungsleitung (CL) über einen der in Reihe geschalteten Transistoren (N1, N2) mit Masse (VSS) verbunden ist und daß für jeden Speicherplatz der erste und der zweite Transistor an ihrem Gate das Komplement (RFi*, HITi*) des Referenzindikators (RFi) bzw. des Koinzidenzsignals (HITi) empfangen.
4. Einrichtung gemäß einem der Ansprüche 2 oder 3, dadurch gekennzeichnet, daß die gemeinsame Steuerschaltung (19B) eine Synchronisationsschaltung (19D) enthält, die ein Vorpositionierungssignal zum Rücksetzen auf Null (CL2) ausgibt, das während der zweiten der Phasen (CK2) aktiv ist und denselben logischen Wert wie das verriegelte Auswertungssignal (CL1) annimmt, und daß jede Steuerschaltung (GRF) die zugehörige Referenz-Kippschaltung (BRFi) auf 0 zurücksetzt, wenn das Vorpositionierungssignal (CL2) auf 1 liegt, während das verriegelte Koinzidenzsignal (HLi) auf 0 liegt.
5. Einrichtung gemäß Anspruch 4, dadurch gekennzeichnet, daß die jedem Speicherplatz zugehörige Steuerschaltung (GRF) eine Ausgangsleitung (WRFi) umfaßt, die über zwei in Reihe geschaltete NMOS-Transistoren mit Masse (VSS) verbunden ist, wobei die Transistoren an ihrem Gate das Positionierungssignal (CL2) bzw. das Komplement (HLi*) des dem Speicherplatz zugehörigen verriegelten Koinzidenzsignals (HLi) empfangen, und daß die Ausgangsleitung (WRFi) über zwei in Reihe geschaltete PMOS-Transistoren (P3, P4), die an ihrem Gate das Komplement (V*) eines Validierungssignals zum Setzen auf 1 (V) bzw. das Komplement (HLi*) des verriegelten Koinzidenzsignals (HLi) empfangen, mit einer positiven Spannung (VDD) verbunden ist.
6. Einrichtung gemäß einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß das Schreiben eines neuen Extrakts in den schnellen Speicher (1, RAR, RAV) während der zweiten der Phasen (CK2) ausgeführt wird.
7. Einrichtung gemäß einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die Vergleichsmittel (14) aus Vergleichsschaltungen gebildet sind, die den jeweiligen Speicherplätzen zugeordnet sind und durch das Zustandssignal der zugehörigen Präsenz-Kippschaltung (PRi) validiert werden, so daß nur dann ein Koinzidenzsignal (HITi) ausgesandt wird, wenn die Kippschaltung (BPRi) den logischen Zustand 1 hat.
8. Einrichtung gemäß einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß dann, wenn das Informationssystem einen Mechanismus eines seitenweisen virtuellen Speichers besitzt, die Adresse (AVi) eines jeden Extrakts eine virtuelle Seitenadresse ist und die zugehörige Information eine reelle Adresse (ARi) der Seite ist, jeder Speicherplatz des schnellen Speichers (1, RAR, RAV) aus einem Register für virtuelle Adressen (RAVi) und aus einem Register für reelle Adressen (RARi) aufgebaut ist und daß das Lesen des Registers für reelle Adressen (RARi) während der ersten der Phasen (CK1) validiert wird, vorausgesetzt, daß das zugehörige Koinzidenzsignal (HITi) den logischen Wert 1 hat.
DE69010549T 1989-04-13 1990-04-13 Vorrichtung zur Speicherzugriffsbeschleunigung in einer Datenverarbeitungsanlage. Expired - Fee Related DE69010549T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR8904883A FR2645987B1 (fr) 1989-04-13 1989-04-13 Dispositif d'acceleration des acces memoire dans un systeme informatique

Publications (2)

Publication Number Publication Date
DE69010549D1 DE69010549D1 (de) 1994-08-18
DE69010549T2 true DE69010549T2 (de) 1995-01-05

Family

ID=9380677

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69010549T Expired - Fee Related DE69010549T2 (de) 1989-04-13 1990-04-13 Vorrichtung zur Speicherzugriffsbeschleunigung in einer Datenverarbeitungsanlage.

Country Status (6)

Country Link
US (1) US5295253A (de)
EP (1) EP0394115B1 (de)
JP (1) JPH0362243A (de)
DE (1) DE69010549T2 (de)
ES (1) ES2060091T3 (de)
FR (1) FR2645987B1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353425A (en) * 1992-04-29 1994-10-04 Sun Microsystems, Inc. Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature
US5787465A (en) * 1994-07-01 1998-07-28 Digital Equipment Corporation Destination indexed miss status holding registers
US5594886A (en) * 1994-10-23 1997-01-14 Lsi Logic Corporation Pseudo-LRU cache memory replacement method and apparatus utilizing nodes
US5987584A (en) * 1996-09-17 1999-11-16 Vlsi Technology, Inc. Wavetable address cache to reduce accesses over a PCI bus
JP3196107B2 (ja) * 1997-03-27 2001-08-06 日本電気エンジニアリング株式会社 データ交換システム
US6484230B1 (en) 1998-09-28 2002-11-19 International Business Machines Corporation Method and system for speculatively processing a load instruction before completion of a preceding synchronization instruction
FR2795196B1 (fr) 1999-06-21 2001-08-10 Bull Sa Processus de liberation de pages physiques pour mecanisme d'adressage virtuel
US6560675B1 (en) * 1999-12-30 2003-05-06 Unisys Corporation Method for controlling concurrent cache replace and return across an asynchronous interface
JP2006144806A (ja) 2003-04-04 2006-06-08 Toyo Tire & Rubber Co Ltd 液封入式防振装置
US11455110B1 (en) * 2021-09-08 2022-09-27 International Business Machines Corporation Data deduplication

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3829840A (en) * 1972-07-24 1974-08-13 Ibm Virtual memory system
US4181937A (en) * 1976-11-10 1980-01-01 Fujitsu Limited Data processing system having an intermediate buffer memory
US4453230A (en) * 1977-12-29 1984-06-05 Tokyo Shibaura Electric Co., Ltd. Address conversion system
US4489378A (en) * 1981-06-05 1984-12-18 International Business Machines Corporation Automatic adjustment of the quantity of prefetch data in a disk cache operation
US4490782A (en) * 1981-06-05 1984-12-25 International Business Machines Corporation I/O Storage controller cache system with prefetch determined by requested record's position within data block
US4571674A (en) * 1982-09-27 1986-02-18 International Business Machines Corporation Peripheral storage system having multiple data transfer rates
US4680700A (en) * 1983-12-07 1987-07-14 International Business Machines Corporation Virtual memory address translation mechanism with combined hash address table and inverted page table
US4589092A (en) * 1983-12-12 1986-05-13 International Business Machines Corporation Data buffer having separate lock bit storage array
JPS62131353A (ja) * 1985-12-04 1987-06-13 Fujitsu Ltd ペ−ジング制御方式
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
US5119290A (en) * 1987-10-02 1992-06-02 Sun Microsystems, Inc. Alias address support
GB8728494D0 (en) * 1987-12-05 1988-01-13 Int Computers Ltd Multi-cache data storage system
US4980816A (en) * 1987-12-18 1990-12-25 Nec Corporation Translation look-aside buffer control system with multiple prioritized buffers
CA1300758C (en) * 1988-03-07 1992-05-12 Colin H. Cramm Mechanism for lock-up free cache operation with a remote address translation unit
US5134696A (en) * 1988-07-28 1992-07-28 International Business Machines Corp. Virtual lookaside facility
US5109496A (en) * 1989-09-27 1992-04-28 International Business Machines Corporation Most recently used address translation system with least recently used (LRU) replacement

Also Published As

Publication number Publication date
JPH0529946B2 (de) 1993-05-06
ES2060091T3 (es) 1994-11-16
EP0394115B1 (de) 1994-07-13
EP0394115A1 (de) 1990-10-24
JPH0362243A (ja) 1991-03-18
FR2645987A1 (fr) 1990-10-19
US5295253A (en) 1994-03-15
DE69010549D1 (de) 1994-08-18
FR2645987B1 (fr) 1991-06-07

Similar Documents

Publication Publication Date Title
DE69010739T2 (de) Verfahren und Vorrichtung zur Speicherzugriffsbeschleunigung unter Verwendung eines modifizierten LRU-Algorithmus.
DE3689488T2 (de) Speicheranordnung mit vereinfachtem und schnellem Daten-Cachespeicher.
DE69018112T2 (de) Hochleistungsspeichersystem.
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE3688978T2 (de) Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen.
DE3151745C2 (de)
DE68923627T2 (de) Steuerungsverfahren und -vorrichtung für Nullursprungsdatenräume.
DE3587439T2 (de) Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher.
DE69030945T2 (de) Zweistufiger Adressübersetzungspufferspeicher mit partiellen Adressen zur Geschwindigkeitserhöhung
DE3752017T2 (de) Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE3011552C2 (de)
DE3724317C2 (de)
DE68928519T2 (de) Verfahren und Vorrichtung zur Vorhersage der richtigen Durchführung der Übersetzungen von virtuellen in physikalische Adressen
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE3128740C2 (de)
DE69029173T2 (de) Mikroprozessor
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE68923944T2 (de) RAM mit doppelten Ein/Ausgängen.
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE2948668A1 (de) Puffereinheit
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE2241257B2 (de) Datenverarbeitende Anlage
DE69010549T2 (de) Vorrichtung zur Speicherzugriffsbeschleunigung in einer Datenverarbeitungsanlage.

Legal Events

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