DE69010739T2 - Verfahren und Vorrichtung zur Speicherzugriffsbeschleunigung unter Verwendung eines modifizierten LRU-Algorithmus. - Google Patents
Verfahren und Vorrichtung zur Speicherzugriffsbeschleunigung unter Verwendung eines modifizierten LRU-Algorithmus.Info
- Publication number
- DE69010739T2 DE69010739T2 DE69010739T DE69010739T DE69010739T2 DE 69010739 T2 DE69010739 T2 DE 69010739T2 DE 69010739 T DE69010739 T DE 69010739T DE 69010739 T DE69010739 T DE 69010739T DE 69010739 T2 DE69010739 T2 DE 69010739T2
- Authority
- DE
- Germany
- Prior art keywords
- extract
- memory
- address
- flip
- flop
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 124
- 238000000034 method Methods 0.000 title claims description 31
- 238000004422 calculation algorithm Methods 0.000 title claims description 21
- 230000001133 acceleration Effects 0.000 title 1
- 239000000284 extract Substances 0.000 claims description 119
- 230000005540 biological transmission Effects 0.000 claims description 13
- 101100417166 Caenorhabditis elegans rpi-1 gene Proteins 0.000 claims description 11
- 101000714243 Homo sapiens Transcription factor IIIB 90 kDa subunit Proteins 0.000 claims description 10
- 102100036535 Transcription factor IIIB 90 kDa subunit Human genes 0.000 claims description 10
- 239000013256 coordination polymer Substances 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 claims description 4
- 101000802094 Homo sapiens mRNA decay activator protein ZFP36L1 Proteins 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 230000001174 ascending effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 17
- 238000013519 translation Methods 0.000 description 13
- 230000014616 translation Effects 0.000 description 13
- 238000011156 evaluation Methods 0.000 description 8
- 230000000295 complement effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000010200 validation analysis Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 101000740968 Homo sapiens Transcription factor IIIB 50 kDa subunit Proteins 0.000 description 2
- 101000802101 Homo sapiens mRNA decay activator protein ZFP36L2 Proteins 0.000 description 2
- 102100039038 Transcription factor IIIB 50 kDa subunit Human genes 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- BDEDPKFUFGCVCJ-UHFFFAOYSA-N 3,6-dihydroxy-8,8-dimethyl-1-oxo-3,4,7,9-tetrahydrocyclopenta[h]isochromene-5-carbaldehyde Chemical compound O=C1OC(O)CC(C(C=O)=C2O)=C1C1=C2CC(C)(C)C1 BDEDPKFUFGCVCJ-UHFFFAOYSA-N 0.000 description 1
- 101100485276 Arabidopsis thaliana XPO1 gene Proteins 0.000 description 1
- 101000915578 Homo sapiens Zinc finger HIT domain-containing protein 3 Proteins 0.000 description 1
- 101100407739 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PET18 gene Proteins 0.000 description 1
- 102100028598 Zinc finger HIT domain-containing protein 3 Human genes 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
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 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-Algorithmus ergibt theoretisch gute Ergebnisse, in der Praxis wird jedoch die Verwendung einer vereinfachten Version, die Pseudo-LRU genannt wird, bevorzugt. Um nämlich n Extrakte zu steuern, benötigt ein richtiger LRU das Vorhandensein und die Steuerung von log&sub2; (n) Bits pro Extrakt, um die Angabe der Reihenfolge der letzten Verwendungen der Extrakte beizubehalten. Dagegen verwendet ein Pseudo-LRU pro Extrakt nur ein einziges Bit, das Referenzbit oder -indikator genannt wird.
- Gemäß dem Pseudo-LRU-Bit wird das Referenzbit auf einen ersten logischen Wert gesetzt (z.B. auf 1), wenn der vorhandene Extrakt, der ihm zugeordnet ist, verwendet wird. Wenn ein neuer Extrakt geladen werden soll, während 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 auf 0 liegt. Wenn eine Sättigung erreicht ist, d.h. wenn sämtliche Referenzbits bis auf ein Bit auf 1 liegen, wird eine Rücksetzung auf 0 für sämtliche Referenzbits ausgeführt, wobei der Extrakt, dessen Referenzbit auf 0 liegt, durch den neuen Extrakt ersetzt wird. Ab diesem Zeitpunkt tritt ein Verlust der Historie der Seitenverwendung auf.
- Der Verlust der Historie wegen der Sättigung bewirkt eine Absenkung der Wirksamkeit des Algorithmus. Darüber hinaus ergibt sich wegen der Tatsache, daß ein neu geladener Extrakt unmittelbar nach seinem Laden sehr wahrscheinlich wiederverwendet wird, daß die Sättigung entsteht, wenn der letzte Extrakt geladen ist.
- Um die Folgen dieses Verlusts der Historie zu bewerten, ist es nützlich, Simulationen auszuführen, die sich auf eine Grundgesamtheit von spezifischen Prozessen von Anwendungen stützen, welche von dem System gewöhnlich verarbeitet werden. Es wird beispielsweise festgestellt, daß für eine bestimmte Prozeß- Grundgesamtheit in 65% der Fälle nur 32 Extrakte notwendig sind. Dies deutet darauf hin, daß 65% der Prozesse die Ausführung des Ersetzungsalgorithmus nicht benötigen. Dagegen wird der Algorithmus von 35% der Prozesse wenigstens einmal verwendet. Dies hat zur Folge, daß in 35% der Fälle wenigstens einmal ein Verlust der Historie erfolgt.
- Bei einer Simulation ist außerdem festgestellt worden, daß in einem gegebenen Zeitpunkt ein Programm in 90% der Fälle auf einen der sieben letzten aufgerufenen Extrakte zugreift. Dieses Ergebnis ist eine Bestätigung des oben bereits in Erinnerung gebrachten Lokalitätsphänomens. Nun ist nach der Rücksetzung auf Null der Referenzbits nach der Sättigung das einzige Kriterium für die Wahl des zu beseitigenden Extrakts die Position des Extrakts im Assoziativspeicher. Indessen gibt der Speicherplatz eines Extrakts keinen Hinweis auf den Zeitpunkt seiner letzten Verwendung, sondern seiner ersten Verwendung. Es ist gut möglich, daß die am Beginn des Prozesses verwendeten Seiten kurz vor der Sättigung erneut verwendet werden. In diesem Fall werden diese Seiten nach der Rücksetzung auf Null der Referenzbits zuerst beseitigt, obwohl sie mit großer Wahrscheinlichkeit bald wieder verwendet werden.
- Um dieses Problem zu lösen und gemäß der Erfindung ist vorgesehen, daß die Referenzindikatoren während der gesamten Abarbeitung des Prozesses und solange die Anzahl der vorhandenen Extrakte kleiner als ein bestimmter Schwellenwert ist auf ihrein Anfangswert (z.B. auf 0) gehalten werden. Sobald der Schwellenwert erreicht ist, wird die Aktualisierung der Referenzindikatoren normal ausgeführt. Wenn daher der Assoziativspeicher gefüllt ist, können nur diejenigen Extrakte, die während einer dem Ende der Füllung entsprechenden Abarbeitungsphase verwendet werden, für ihre Referenzindikatoren einen eine Verwendung angebenden logischen Wert (z.B. 1) besitzen. Dies hat zur Wirkung, daß im Mittel eine größere Anzahl von Prozessen dem Verlust der Historie wegen der Sättigung entkommt.
- Genauer hat die Erfindung ein Verfahren zum Zugreifen auf im Hauptspeicher eines Informationssystems enthaltene Informationen zum Gegenstand, wobei eine Information durch eine Adresse markiert ist, wobei die durch eine Information und ihre zugehörige Adresse gebildete Gesamtheit "Extrakt" genannt wird, wobei das System einen schnellen Speicher enthält, der aus mehreren Speicherplätzen aufgebaut ist, wobei jeder Speicherplatz einen Extrakt speichern kann, wobei jedem Extrakt ein Präsenzindikator und ein Referenzindikator zugehört, die auf einen ersten bestimmten logischen Wert initialisiert sind, wobei ein Präsenzindikator einen zweiten logischen Wert annimmt, wenn der entsprechende Extrakt im schnellen Speicher vorhanden ist, wobei der Zugriff auf eine Information durch assoziatives Lesen ausgeführt wird, indem der im schnellen Speicher vorhandene Extrakt gesucht wird, dessen Adresse mit der Adresse der gesuchten Information übereinstimmt, wobei die Referenzindikatoren eine Verwendung der zugehörigen Extrakte darstellen, um die Ausführung eines Algorithmus zum Laden von neuen gesuchten und noch nicht im schnellen Speicher vorhandenen Extrakten zu erlauben, wobei das Verfahren dadurch gekennzeichnet ist, daß die Referenzindikatoren auf ihrem ersten logischen Wert gehalten werden, solange die Präsenzindikatoren anzeigen, daß die Anzahl der im schnellen Speicher vorhandenen Extrakte kleiner als ein bestimmter Schwellenwert ist, und daß ein Referenzindikator auf einen zweiten logischen Wert gezwungen wird, wenn der zugehörige Extrakt verwendet wird, vorausgesetzt, daß die Präsenzindikatoren anzeigen, daß die Anzahl der vorhandenen Extrakte wenigstens gleich dem Schwellenwert ist.
- Es ist anzumerken, daß die Wahl des Schwellenwerts die Anzahl n der Speicherplätze des schnellen Speichers in der Weise berücksichtigt, daß diese Anzahl von Extrakten, die zwischen dem Schwellenwert und dieser Anzahl n liegt, einer optimalen Historienperiode für die angestrebten Anwendungen ist.
- Gemäß einem besonderen Merkmal der Erfindung ist das Verfahren außerdem dadurch gekennzeichnet, daß dann, wenn jedem Speicherplatz des schnellen Speichers eine Ordnungszahl zugewiesen ist, die Extrakte anfangs in chronologischer Reihenfolge in die Speicherplätze mit ansteigender Ordnungszahl geladen werden und daß der Wert des Präsenzindikators, dessen Ordnungszahl gleich dem Schwellenwert ist, den Hinweis liefert, daß der Schwellenwert erreicht worden ist.
- Gemäß einem weiteren Aspekt ist das Verfahren dadurch gekennzeichnet, daß dann, wenn eine gesuchte Information im schnellen Speicher nicht vorhanden ist, die Information im Hauptspeicher gesucht wird und der entsprechende Extrakt im schnellen Speicher in einen Speicherplatz geladen wird, dessen Ordnungszahl durch den Ladealgorithmus bestimmt wird, daß der zugehörige Präsenzindikator synchron mit dem Laden auf den zweiten logischen Wert gezwungen wird und daß anschließend eine neue assoziative Suche der gesuchten Information ausgeführt wird.
- Gemäß einem weiteren Aspekt ist das Verfahren dadurch gekennzeichnet, daß der Ladealgorithmus darin besteht, daß in ansteigender Reihenfolge die Ordnungszahl des ersten Extrakts, dessen Präsenzindikator den ersten bestimmten logischen Wert besitzt, oder bei einem Fehlgehen die Ordnungszahl des ersten Extrakts gesucht wird, dessen Referenzindikator den ersten bestimmten logischen Wert besitzt.
- Die Erfindung hat außerdem ein Informationssystem zum Gegenstand, das die Ausführung des Verfahrens erlaubt und Verarbeitungsmittel enthält, die durch Adressierung auf den Hauptspeicher des Systems zugreifen können, wobei die durch eine Adresse und die im Hauptspeicher enthaltene zugehörige Information gebildete Gesamtheit "Extrakt" genannt wird, wobei die Verarbeitungsmittel einen schnellen Speicher enthalten, 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 jeweils auf einen ersten logischen Zustand gesetzt werden, wobei die Präsenz-Kippschaltung auf einen zweiten logischen Wert gesetzt 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 einen ersten logischen Wert besitzt, wenn die Adresse einer gesuchten Information mit der Adresse des im Speicherplatz vorhandenen Extrakts übereinstimmt, wobei das System dadurch gekennzeichnet ist, daß es Schwellenwerterfassungsmittel enthält, die ausgehend von den Ausgangssignalen der Präsenz-Kippschaltungen ein Schwellensignal ausgeben, dessen logischer Wert anzeigt, ob die Anzahl der im schnellen Speicher vorhandenen Extrakte wenigstens gleich einem bestimmten Schwellenwert ist, und daß für jeden vorhandenen Extrakt der Zustand der zugehörigen Referenz-Kippschaltung durch eine Steuerschaltung gesteuert wird, die die Referenz-Kippschaltung auf einen zweiten logischen Wert zwingt, während das Koinzidenzsignal eine Koinzidenz anzeigt, wenn das Schwellensignal anzeigt, daß die Schwelle erreicht ist.
- In dem Artikel von W.P. WARD "Minicomputer blasts through 4 million instructions a second" in Electronics, Band 55, Nr. 1 13. Januar 1982, Seiten 155-159, New York, US, ist die Verwendung eines LRU-Algorithmus mit einem einzigen Bit beschrieben.
- Das Dokument JP-A-62131353 beschreibt ein System, das einen LRU-Algorithmus verwendet, bei dem der Inhalt der LRU-Schaltungen nur übernommen wird, wenn die Anzahl der Seiten, auf die zugegriffen wird, einen bestimmten Schwellenwert übersteigt.
- 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, ..., 1, ..., n bezeichnet werden, werden ihnen jeweils die Kippschaltungen BRF&sub1;, BRF&sub2;, ..., BRFi, ..., BRFn zugeordnet. Jede Kippschaltung BRFe wird durch ein Signal WRFi 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 BP 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 während 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 PRF 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 WRFi 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, ..., BPRj, ..., BPRn sowie die Referenz-Kippschaltungen BRF1, BRF2, ..., 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 BPR1 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-1bzw. 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 CS1 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 (10)
1. Verfahren zum Zugreifen auf im Hauptspeicher eines
Informationssystems enthaltene Informationen, wobei eine
Information durch eine Adresse markiert ist, wobei die durch
eine Information und ihre zugehörige Adresse gebildete
Gesamtheit "Extrakt" genannt wird, wobei das System einen schnellen
Speicher (1, RAR, RAV) enthält, der aus mehreren
Speicherplätzen (RARi, RAVi) aufgebaut ist, wobei jeder Speicherplatz
einen Extrakt speichern kann, wobei jedem Extrakt ein Präsenz-
Kennzeichenbit (PRi) und ein Referenz-Kennzeichenbit (RFi)
zugehört, die auf einem ersten bestimmten logischen Wert
initialisiert sind, wobei ein Präsenzkennzeichen (PRi) einen
zweiten logischen Wert annimmt, wenn der entsprechende Extrakt
im schnellen Speicher (1, RAV, RAR) vorhanden ist, wobei der
Zugriff auf eine Information durch assoziatives Lesen
ausgeführt wird, indem der im schnellen Speicher vorhandene Extrakt
gesucht wird, dessen Adresse mit der Adresse der gesuchten
Information übereinstimmt, wobei die Referenzkennzeichen (RFi)
eine Verwendung der zugehörigen Extrakte darstellen, um die
Ausführung eines Algorithmus zum Laden von neuen gesuchten und
noch nicht im schnellen Speicher vorhandenen Extrakten zu
erlauben, wobei das Verfahren dadurch gekennzeichnet ist, daß
die Referenzkennzeichen (RFi) auf ihrem ersten logischen Wert
gehalten werden, so lange die Präsenzkennzeichen anzeigen, daß
die Anzahl der im schnellen Speicher vorhandenen Extrakte
kleiner als ein bestimmter Schwellenwert (t) ist, und daß ein
Referenzkennzeichen (RFi) auf einen zweiten logischen Wert
gezwungen wird, wenn der zugehörige Extrakt verwendet wird,
vorausgesetzt, daß die Präsenzkennzeichen anzeigen, daß die
Anzahl der vorhandenen Extrakte wenigstens gleich dem
Schwellenwert (t) ist.
2. Verfahren gemäß Anspruch 1, dadurch gekennzeichnet,
daß dann, wenn jedem Speicherplatz des schnellen Speichers
eine Ordnungszahl zugewiesen ist, die Extrakte anfangs in
chronologischer Reihenfolge in die Speicherplätze mit
ansteigender Ordnungszahl geladen werden und daß der Wert des
Präsenzkennzeichens (PRi), dessen Ordnungszahl (i) gleich dem
Schwellenwert (t) ist, den Hinweis liefert, daß der
Schwellenwert (t) erreicht worden ist.
3. Verfahren gemäß einem der Ansprüche 1 oder 2,
dadurch gekennzeichnet, daß dann, wenn eine gesuchte Information
im schnellen Speicher nicht vorhanden ist, die Information
dann im Hauptspeicher gesucht wird und der entsprechende
Extrakt im schnellen Speicher in einen Speicherplatz geladen
wird, dessen Ordnungszahl durch den Ladealgorithmus bestimmt
wird, daß das zugehörige Präsenzkennzeichen (PRi) synchron mit
dem Laden auf den zweiten logischen Wert gezwungen wird und
daß anschließend eine neue assoziative Suche der gesuchten
Information ausgeführt wird.
4. Verfahren gemäß Anspruch 3, dadurch gekennzeichnet,
daß der Ladealgorithmus darin besteht, daß in ansteigender
Reihenfolge die Ordnungszahl des ersten Extrakts, dessen
Präsenzkennzeichen (PRi) den ersten bestimmten logischen Wert
besitzt, oder bei einem Fehlgehen die Ordnungszahl des ersten
Extrakts gesucht wird, dessen Referenzkennzeichen (RFi) den
ersten bestimmten logischen Wert besitzt.
5. Verfahren gemäß einem der Ansprüche 1 bis 4, dadurch
gekennzeichnet, daß das System einen Mechanismus eines
seitenweisen virtuellen Speichers besitzt, wobei die Adresse eines
jeden Extrakts eine virtuelle Seitenadresse ist und die
zugehörige Information die reelle Adresse der Seite ist.
6. Verfahren gemäß einem der Ansprüche 1 bis 4, dadurch
gekennzeichnet, daß dann, wenn der Hauptspeicher seitenweise
organisiert ist, die Adresse eines jeden Extrakts eine reelle
Seitenadresse ist und die zugehörige Information durch die in
der Seite enthaltenen Daten gebildet ist.
7. Informationssystem, das Verarbeitungsmittel (1, 2,
3) enthält, die durch Adressierung auf den Hauptspeicher des
Systems zugreifen können, wobei die durch eine Adresse und die
im Hauptspeicher enthaltene zugehörige Information gebildete
Gesamtheit "Extrakt" genannt wird, wobei die
Verarbeitungsmittel (1, 2, 3) einen schnellen Speicher (1, RAR, RAV)
enthalten, 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 jeweils auf einen ersten logischen Zustand gesetzt
werden, wobei die Präsenz-Kippschaltung (BPRi) auf einen
zweiten logischen Zustand gesetzt 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 einen ersten logischen Wert besitzt,
wenn die Adresse einer gesuchten Information mit der Adresse
des im Speicherplatz vorhandenen Extrakts übereinstimmt, wobei
das System dadurch gekennzeichnet ist, daß es
Schwellenwerterfassungsmittel (20) enthält, die ausgehend von den
Ausgangssignalen der Präsenz-Kippschaltungen ein Schwellensignal (V)
ausgeben, dessen logischer Wert anzeigt, ob die Anzahl der im
schnellen Speicher vorhandenen Extrakte wenigstens gleich
einem bestimmten Schwellenwert (t) ist, und daß für jeden
vorhandenen Extrakt der Zustand der zugehörigen
Referenz-Kippschaltung (BRFi) durch eine Steuerschaltung (19, 19A, GRF)
gesteuert wird, die die Referenz-Kippschaltung (BRF) auf einen
zweiten logischen Zustand zwingt, wenn das Koinzidenzsignal
(HITi) eine Koinzidenz anzeigt, während das Schwellensignal
(V) anzeigt, daß die Schwelle erreicht ist.
8. System gemäß Anspruch 7, dadurch gekennzeichnet, daß
für die Auswahl eines Speicherplatzes, in den ein noch nicht
im schnellen Speicher vorhandener Extrakt geladen werden soll,
jede Präsenz-Kippschaltung (BPRi) oder jede
Referenz-Kippschaltung (BRFi) einer Übertragungsschaltung (CP) für ein
Anforderungssignal (VPi, RPi) zugeordnet ist, daß, wenn jeder
Speicherstelle (RARi, RAVi) eine Ordnungszahl (i) zugeordnet
ist, die Übertragungsschaltungen (CP), die der
Präsenz-Kippschaltung (BPRi) bzw. der Referenz-Kippschaltung (BRFi)
zugeordnet sind, jeweils in Kaskade geschaltet sind, wobei der
Ausgang der Übertragungsschaltung, die der letzten
Präsenz-Kippschaltung (BPRn) zugeordnet ist, mit dem Eingang der
Übertragungsschaltung (BCP) verbunden ist, die der ersten
Referenz-Kippschaltung (BRF&sub1;) zugeordnet ist, daß jede
Übertragungsschaltung (CP) ein Signal (VPi, RPi) ausgibt, das das
Vorhandensein einer Anforderung darstellt, wenn das
eingangsseitige Anforderungssignal (VPi-1, RPi-1) das
Vorhandensein einer Anforderung anzeigt, während die zugehörige
Kippschaltung (BPRi, BRFi) im zweiten bestimmten logischen
Zustand ist, daß die Übertragungsschaltung (CP), die der ersten
Präsenz-Kippschaltung (BPR&sub1;) zugeordnet ist, ständig ein
Signal empfängt, das das Vorhandensein einer Anforderung
darstellt, und daß jedem Speicherplatz eine Wählschaltung (CS)
zugeordnet ist, die ein Signal (Si) ausgibt, das die Wahl des
genannten Speicherplatzes darstellt, wenn das eingangsseitige
Anforderungssignal (VPi-1, RPi-1), das einer der
Kippschaltungen (BPRi, BRFi) des Speicherplatzes zugehört, das
Vorhandensein einer Anforderung signalisiert, während die Kippschaltung
(BPRi, BRFi) in dem bestimmten ersten Zustand ist.
9. System gemäß Anspruch 8, dadurch gekennzeichnet, daß
die Schwellenwert-Erfassungsmitte1 (20) das Zustandssignal
derjenigen Präsenz-Kippschaltung (BPRt) verwenden, die dem
Speicherplatz zugeordnet ist, dessen Ordnungszahl gleich dem
vorgegebenen Schwellenwert (t) ist.
10. System gemäß einem der Ansprüche 7 bis 9, dadurch
gekennzeichnet, daß es einen Mechanismus eines seitenweisen
virtuellen Speichers besitzt, daß die Adresse eines jeden
Extrakts eine virtuelle Adresse ist und die zugehörige
Information eine reelle Adresse ist und daß jeder Speicherplatz des
schnellen Speichers (1, RAV, RAR) aus einem Register für eine
virtuelle Adresse (RAVi) und aus einem Register für eine
reelle Adresse (RARi) aufgebaut ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR898904882A FR2645986B1 (fr) | 1989-04-13 | 1989-04-13 | Procede pour accelerer les acces memoire d'un systeme informatique et systeme pour la mise en oeuvre du procede |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69010739D1 DE69010739D1 (de) | 1994-08-25 |
DE69010739T2 true DE69010739T2 (de) | 1995-01-12 |
Family
ID=9380676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69010739T Expired - Fee Related DE69010739T2 (de) | 1989-04-13 | 1990-04-13 | Verfahren und Vorrichtung zur Speicherzugriffsbeschleunigung unter Verwendung eines modifizierten LRU-Algorithmus. |
Country Status (6)
Country | Link |
---|---|
US (1) | US5218687A (de) |
EP (1) | EP0392932B1 (de) |
JP (1) | JPH0362144A (de) |
DE (1) | DE69010739T2 (de) |
ES (1) | ES2060090T3 (de) |
FR (1) | FR2645986B1 (de) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2678401A1 (fr) * | 1991-06-28 | 1992-12-31 | Philips Electronique Lab | Dispositif de traitement de l'information plus particulierement adapte a un langage chaine, du type forth notamment. |
US5444489A (en) * | 1993-02-11 | 1995-08-22 | Georgia Tech Research Corporation | Vector quantization video encoder using hierarchical cache memory scheme |
US5668972A (en) * | 1994-10-05 | 1997-09-16 | International Business Machines Corporation | Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line |
US5594886A (en) * | 1994-10-23 | 1997-01-14 | Lsi Logic Corporation | Pseudo-LRU cache memory replacement method and apparatus utilizing nodes |
US5822759A (en) * | 1996-11-22 | 1998-10-13 | Versant Object Technology | Cache system |
US6657959B1 (en) | 1998-06-27 | 2003-12-02 | Intel Corporation | Systems and methods for implementing ABR with guaranteed MCR |
US6603768B1 (en) | 1998-06-27 | 2003-08-05 | Intel Corporation | Multi-protocol conversion assistance method and system for a network accelerator |
US6735773B1 (en) | 1998-06-27 | 2004-05-11 | Intel Corporation | Method and apparatus for issuing commands to a network processor configured to provide a plurality of APIs |
US6604136B1 (en) | 1998-06-27 | 2003-08-05 | Intel Corporation | Application programming interfaces and methods enabling a host to interface with a network processor |
US6724767B1 (en) * | 1998-06-27 | 2004-04-20 | Intel Corporation | Two-dimensional queuing/de-queuing methods and systems for implementing the same |
US6728249B2 (en) | 1998-06-27 | 2004-04-27 | Intel Corporation | System and method for performing cut-through forwarding in an ATM network supporting LAN emulation |
FR2787901B1 (fr) | 1998-12-28 | 2001-02-09 | Bull Sa | Organisation memoire par zones physiques |
KR20020060419A (ko) * | 2001-01-11 | 2002-07-18 | 최웅림 | 메모리 접근 방법 |
KR100398954B1 (ko) * | 2001-07-27 | 2003-09-19 | 삼성전자주식회사 | 멀티웨이 세트 연관 구조의 캐쉬 메모리 및 데이터 판독방법 |
WO2003098440A1 (fr) * | 2002-05-20 | 2003-11-27 | Fujitsu Limited | Antémémoire de compression |
EP1667028A4 (de) * | 2003-09-19 | 2008-10-29 | Matsushita Electric Ind Co Ltd | Cache-speicher und cache-speicher-steuerverfahren |
US7861041B2 (en) * | 2007-09-04 | 2010-12-28 | Advanced Micro Devices, Inc. | Second chance replacement mechanism for a highly associative cache memory of a processor |
US9069672B2 (en) * | 2009-06-12 | 2015-06-30 | Intel Corporation | Extended fast memory access in a multiprocessor computer system |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3829840A (en) * | 1972-07-24 | 1974-08-13 | Ibm | Virtual memory system |
US4008460A (en) * | 1975-12-24 | 1977-02-15 | International Business Machines Corporation | Circuit for implementing a modified LRU replacement algorithm for a cache |
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 |
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 |
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 |
JPS6049950B2 (ja) * | 1981-08-27 | 1985-11-06 | 富士通株式会社 | Lruエラ−処理方式 |
US4571674A (en) * | 1982-09-27 | 1986-02-18 | International Business Machines Corporation | Peripheral storage system having multiple data transfer rates |
US4607331A (en) * | 1983-05-13 | 1986-08-19 | Motorola, Inc. | Method and apparatus for implementing an algorithm associated with stored information |
US4731739A (en) * | 1983-08-29 | 1988-03-15 | Amdahl Corporation | Eviction control apparatus |
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 |
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 |
US4914582A (en) * | 1986-06-27 | 1990-04-03 | Hewlett-Packard Company | Cache tag lookaside |
US4843542A (en) * | 1986-11-12 | 1989-06-27 | Xerox Corporation | Virtual memory cache for use in multi-processing systems |
GB8728494D0 (en) * | 1987-12-05 | 1988-01-13 | Int Computers Ltd | Multi-cache data storage system |
US5043885A (en) * | 1989-08-08 | 1991-08-27 | International Business Machines Corporation | Data cache using dynamic frequency based replacement and boundary criteria |
-
1989
- 1989-04-13 FR FR898904882A patent/FR2645986B1/fr not_active Expired - Fee Related
-
1990
- 1990-04-12 US US07/508,931 patent/US5218687A/en not_active Expired - Lifetime
- 1990-04-13 DE DE69010739T patent/DE69010739T2/de not_active Expired - Fee Related
- 1990-04-13 EP EP90401027A patent/EP0392932B1/de not_active Expired - Lifetime
- 1990-04-13 JP JP2099156A patent/JPH0362144A/ja active Granted
- 1990-04-13 ES ES90401027T patent/ES2060090T3/es not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0392932A1 (de) | 1990-10-17 |
US5218687A (en) | 1993-06-08 |
FR2645986A1 (fr) | 1990-10-19 |
EP0392932B1 (de) | 1994-07-20 |
ES2060090T3 (es) | 1994-11-16 |
JPH0362144A (ja) | 1991-03-18 |
DE69010739D1 (de) | 1994-08-25 |
JPH0529945B2 (de) | 1993-05-06 |
FR2645986B1 (fr) | 1994-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69010739T2 (de) | Verfahren und Vorrichtung zur Speicherzugriffsbeschleunigung unter Verwendung eines modifizierten LRU-Algorithmus. | |
DE69018112T2 (de) | Hochleistungsspeichersystem. | |
DE3689488T2 (de) | Speicheranordnung mit vereinfachtem und schnellem Daten-Cachespeicher. | |
DE69629800T2 (de) | Adressenübersetzungsbuffer in einem rechnersystem | |
DE69031411T2 (de) | Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff | |
DE3151745C2 (de) | ||
DE69030945T2 (de) | Zweistufiger Adressübersetzungspufferspeicher mit partiellen Adressen zur Geschwindigkeitserhöhung | |
DE2847960C2 (de) | Speichersteuereinrichtung | |
DE68907518T2 (de) | Inhaltsadressierte Speicheranordnung. | |
DE3688192T2 (de) | Seitenorganisierter cachespeicher mit virtueller adressierung. | |
DE3587439T2 (de) | Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher. | |
DE68923627T2 (de) | Steuerungsverfahren und -vorrichtung für Nullursprungsdatenräume. | |
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem | |
DE69132005T2 (de) | Vorrichtung und Verfahren für einen raumsparenden Adressenübersetzungspuffer für inhaltsadressierbaren Speicher | |
DE69906156T2 (de) | Mikroprozessorvorrichtung mit programmierbaren wartezuständen | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
DE68928519T2 (de) | Verfahren und Vorrichtung zur Vorhersage der richtigen Durchführung der Übersetzungen von virtuellen in physikalische Adressen | |
DE3752017T2 (de) | Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit | |
DE68923944T2 (de) | RAM mit doppelten Ein/Ausgängen. | |
DE3805107A1 (de) | Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers | |
DE68923863T2 (de) | Ein-/Ausgabecachespeicherung. | |
DE2948668A1 (de) | Puffereinheit | |
DE3011552A1 (de) | Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer | |
DE2241257B2 (de) | Datenverarbeitende Anlage | |
DE68928187T2 (de) | Inhaltadressierte Speicherzellenanordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |