-
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.