-
Schaltungsanordnung zur prioritätsbezogenen Einordnung
-
und Registrierung von Speicherabschnitten bzw. Speicherbänken, unter
Anwendung des LRU-Algorithmus Die Erfindung bezieht sich auf eine Schaltungsanordnung
zur prioritätsbezogenen Einordnung und Registrierung von Speicherabschnitten bzw.
Speicherbänken nach dem Oberbegriff des Patentanspruchs 1.
-
In modernen Datenverarbeitungsanlagen der oberen Leistungsklasse spielt
die Vergabe von Prioritäten für die Abarbeitung der üblicherweise in ungeordneter
Reihenfolge auftretenden Ereignisse eine wichtige Rolle.
-
In Anpassung an die verschiedenen Anwendungsfälle ist eine Reihe von
Algorithmen entwickelt worden, mit denen die jeweils gewünschte Prioritätsfolge
erreicht werden kann. Einer dieser bekannten Algorithmen ist der sogenannte FIFO-Algorithmus
(First In, First Out), bei dem die wartenden Ereignisse in der Reihenfolge ihres
Auftretens berücksichtigt werden, so daß das zeitlich zuerst eintreffende Signal
höchste Priorität erhält. Beim sogenannten LIFO-Algorithmus (Last In, First Out)
erhält dagegen das zeitlich jüngste Ereignis die höchste Priorität. Diese bekannten
Prioritätsregeln haben die Eigenschaft, daß neu auftretende Ereignisse die bisherige
Prioritätsreihenfolge nur nach unten oder oben erweitern, innerhalb der einmal bestehenden
Reihenfolge jedoch keine Veränderungen hervorrufen. Die genannten Algorithmen -
FIFO und LIFO - sind daher verhältnismäßig einfach zu realisieren.
-
Komplizierter ist dagegen der sogenannte LRU-Algorithmus (Least Recently
Used), er hat jedoch den Vorteil, daß er eine bessere Auslastung der Speicheranordnung
gewährleistet. Bei Anwendung dieses LRU-Algorithmus erhält zum Beispiel derjenige
Speicherbereich die niedrigste Priorität, zu dem am längsten nicht mehr zugegriffen
worden ist. Umgekehrt besitzt das zeitlich jüngste Ereignis höchste Priorität. Dazwischen
kommt es zu einer laufenden Änderung der Prioritätsfolge, und zwar bei jedem neu
auftretenden Ereignis, es sei denn, der Zugriff erfolgt zu einem Speicherabschnitt,
der bereits die höchste Priorität besitzt. Hatte dagegen das zeitlich jüngste Ereignis
vor seinem Auftreten eine niedrige Rangstufe innerhalb der Prioritätsfolge, dann
bedeutet dies für alle bisher prioritätsmäßig davor liegenden Ereignisse eine Rückstufung
um jeweils eine Stelle.
-
Diese dynamische Umordnung der Prioritäten erfordert zwangsläufig
einen erheblichen Hardware-Aufwand.
-
Aus der Vielzahl bekannter Lösungen sei stellvertretend das aus IBM
Technical Disclosure Bulletin, Band 19, Nr. 1, Juni 1976, Seiten 321 bis 325 bekannte
Verfahren näher erläutert. In einem Stapel, der mit Positionsnummern versehen ist,
wird entsprechend der Anzahl der Speicherbänke für jede Bank ein eindeutiger Code
geführt. Bei jedem erfolgreichen Zugriff zum Speicher wird für jede Positionsnummer
der Bankcode geändert, wobei diejenige Bank, zu der gerade zugegriffen worden ist,
um eine Positionsnummer im Stapel sinkt.
-
So erscheint immer an höchster Stapelposition (niedrigste Priorität)
diejenige Bank, zu der am längsten nicht zugegriffen worden ist. Diese Bank wird
dann nach einem erfolglosen Zugriff zum Speicher auch zum Überschreiben mit neuen
Informationen aus einem nachgeschalteten Hintergrundspeicher oder dergleichen angeboten.
Neben dem
beträchtlichen Hardware-Aufwand ergeben sich sowohl bei
dieser bekannten Lösung als auch bei anderen bekannten LRU-Verfahren erhebliche
und deshalb im allgemeinen unerwünschte Laufzeit-Probleme.
-
Der vorliegenden Erfindung liegt deshalb die Aufgabe zugrunde, eine
Schaltungsanordnung der eingangs genannten Art in der Weise zu verbessern, daß sie
gegenüber bekannten Lösungen kürzere Laufzeiten und deshalb eine raschere Umordnung
der einzelnen Prioritäten innerhalb der Prioritätsfolge ermöglicht.
-
Die Lösung dieser Aufgabe ergibt sich erfindungsgemäß durch die kennzeichnenden
Merkmale des Anspruchs 1.
-
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen
angegeben.
-
Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand der
Zeichnung näher erläutert. Dabei zeigen: FIG 1 eine Schaltungsanordnung gemäß der
Erfindung, FIG 2 ein Beispiel für eine Vergleicher- und Auswahl schaltung in einer
Schaltungsanordnung nach FIG 1, FIG 3 ein weiteres Beispiel für eine Vergleicher-
und Auswahlschaltung in einer Schaltungsanordnung nach FIG 1, FIG 4 eine weitere
Vergleicher- und Auswahlschaltung einschließlich einer Miss-Logikschaltung.
-
Wie bereits erwähnt, wählt der LRU-Ersetzungsalgorithmus
bei
erfolglosem Zugriff zum Speicher (z.B. bei Lesen MISS) die bisher am längsten nicht
benutzte Speicherbank aus, um dort neue Daten im Austausch gegen bisher gespeicherte
Daten einzuschreiben. Bei einem gewählten Beispiel mit acht Speicherbänken soll
im folgenden der Ersetzungs-/Vertauschungsalgorithmus näher erläutert werden. Selbstverständlich
ist dieses Prinzip auf jede beliebige Anzahl von Bänken oder Registern anwendbar.
-
Um jeder der acht Bänke A, B, ..., G, H eine eindeutige Priorität
zuzuordnen, sind maximal drei Prioritätsbits mit den acht möglichen Bitkombinationen
zwischen 000 und 111 erforderlich, wobei z.B. 000 die niedrigste und 111 die höchste
Priorität bedeuten.
-
Von einer beliebigen Zuordnung der Prioritäten zum Zeitpunkt tm ausgehend,
soll nun gemäß dem in der nachfolgenden Tabelle gezeigten Bespiel bei einem erfolgreichen
Zugriff zum Speicher (z.B. bei Lesen HIT) zu einem gegenüber # m jüngeren Zeitpunkt
# tn die Bank G die höchste Priorität, d.h. die Priorität 111 erhalten.
-
Tabelle
Prioritäten zum Veränderung der |
Bank Nr. i Zeitpunkt Prioritäten P. |
(i=A,...,G) |
tm(alt) (neu) Pi /tm - Pi /t |
A 010 010 0 |
B 101 ----> 100 -1 |
C 000 000 0 |
D 100 ----> 011 -1 |
E 111 ----> 110 -1 |
F 110 ----> 101 -1 |
G 0ll-* 111 wird höchste Prio- |
rität |
H 001 001 0 |
Alle übrigen Bänke, die bisher hinsichtlich ihrer Prioritäten
vor der G lagen, erhalten deshalb eine neue Priorität. Dies gilt im vorliegenden
Beispiel für die Bänke E, F, B und D, die jeweils um eine Stufe nach unten rücken.
Lediglich die Bänke A, H und C behalten ihre jeweiligen Prioritäten unverändert
bei. Dieses dynamische Umordnen innerhalb der Prioritätsfolge hat im sogenannten
Hit-Fall lediglich den Zweck, den jeweiligen Prioritätszustand nach Art einer Buchführung
fortlaufend zu aktualisieren. Seine eigentliche Bedeutung erlangt dieses aktuelle
Vertauschungsergebnis erst beim Lesen MISS, wobei gemäß dem LRU-Algorithmus neue
Daten stets in diejenige Bank geschrieben werden, zu der am längsten nicht zugegriffen
worden ist und die demzufolge die niedrigste Priorität besitzt.
-
Eine dem LRU-Ersetzungsalgorithmus gerecht werdende Schaltungsanordnung
ist in FIG 1 dargestellt. Diese für jede Speicherbank gleichartig aufgebaute Schaltung
enthält jeweils eine Steuer-/Vertauschungslogik, die ein-und ausgangsseitig mit
je einem bankbezogenen Prioritätsspeicher PS-A, ..., PS-H verbunden ist. Den Eingang
der Schaltung bilden jeweils drei Prioritätsregister LRU-AX, LRU-AY, LRU-AZ, ...,
LRU-HX, LRU-HY, LRU-HZ, die beispielsweise durch ein sogenanntes Master-Slave-Flipflop
realisiert sind. Anstelle eines Master-Slave-Flipflops können aus Gründen der Laufzeitdynamik
auch zwei D-Flipflops verwendet werden, damit die Schaltung nicht zu schwingen beginnt.
Die jeweils einer Speicherbank zugeordneten drei Prioritätsregister LRU-AX, LRU-AY,
LRU-AZ, LRU-HX, LRU-HY, LRU-HZ sind ausgangsseitig einerseits mit drei ersten Eingängen
einer jeweils bankbezogenen Steuer-/Vertauschungslogik SVL-A, ..., SVL-H und andererseits
mit je einer durch ein jeweils bankbezogenes Treffersignal (Hit-A, ..., Hit-H) steuerbaren
Torschal-
tung TG-AX, TG-AY, TG-AZ, ..., TG-HX, TG-HY, TG-HZ verbunden.
Die jeweils drei Torschaltungen pro Speicherbank sind ausgangsseitig mit je einem
Eingang von drei ODER-Gliedern OGX, OGY, OGZ verbunden, deren Ausgänge mit je einem
von drei zweiten Eingängen aller Steuer-/Vertauschungslogik-Schaltungen SVL-A, ...,
SVL-H verbunden. Den drei ODER-Gliedern OGX, OGY, OGZ wird dabei über die Torschaltungen
nur diejenige Bank-Priorität angeboten, bei der ein erfolgreicher Zugriff (HIT.)
stattgefunden hat. Alle Ausgänge der übrigen Torschaltungen werden auf log."0" gehalten
mit der Folge, daß über die ODER-Glieder simultan allen Steuer-/Vertauschungslogik-Schaltungen
an deren jeweils zweiten Eingängen die Treffer-Priorität PHIT der jeweiligen Hit-Speicherbank
zugeführt wird.
-
In den einzelnen Steuer-/Vertauschungslogik-Schaltungen erfolgt nun
ein Vergleich der an den jeweils ersten Eingängen zugeführten, jeweils bankspezifischen
Alt-Priorität P. mit der an den zweiten Eingängen zugeführten, im jeweiligen Hit-Fall
für alle Banken gleichen Trefferpriorität PHIT in der Weise, daß bei einer im Vergleich
zur Alt-Priorität gleichen oder höheren oder niedrigeren Treffer-Priorität am Ausgang
der jeweiligen Steuer-/Vertauschungslogik-Schaltung entweder die höchstwertige oder
eine gegenüber der Alt-Prorität um eine Prioritätsstufe niedrigere oder die gegenüber
der Alt-Priorität unveränderte Neu-Priorität auftritt. Diese jeweils bankbezogene
Neu-Priorität PN-A, ..., PN-H wird dann in den jeweils entsprechenden Prioritätsspeicher
PS-A, ..., PS-H zurückgeschrieben. Über je eine einfache UND-Verknüpfung werden
diese neuen Prioritäten aujedem daraufhin abgefragt, ob es sich im jeweiligen Fall
um die höchste Priorität handelt, die dann am jeweiligen Signal-Ausgang SEL-A, ...,
SEL-H angezeigt wird.
-
Einzelheiten der Steuer-/Vertauschungslogik ergeben sich aus dem Slockschaltbild
der Figur 2. Dieses Schaltbild zeigt eine Vergleicherschaltung COMP1 und eine z.B.
aus bestehende Auswahlschaltung, deren erste Steuereingänse mit dem Ausgang der
Vergleicherschaltung COMPi verbunden sind. Die Vergleicherschaltung kann z.B. als
Subtrahierer mit schnellem Übertrag ausgebildet sets, der beim Vergleich feststellt,
ob die jeweils bankbezogene Priorität Pi größer/gleich der Treffer-Priorität PHIT
ist oder umgekehrt. Bei Gleichheit der beiden Prioritäten werden die n Multiplexer
MUXi mittels des am zweiten Steuereingang anliegenden Treffer-Signals HITi so angesteuert,
daß das am n-Bit-Eingang a jeweils als log."l" anliegende feste Potential als höchste
Priorität "111" durchgeschaltet wird. Bei Pi >PHIT werden die Multiplexer auf
den Eingang b eingestellt, dem die in einer Subtrahiereinrichtung SUBi um "1" erniedrigte
Alt-Priorität, d.h. Pi-l zugeführt wird, während im Fall P. < PHIT die Alt-Priorität
Pi 1 1 unmittelbar über den n-Bit-Eingang c durchgeschaltet wird, Der Vorteil dieser
Schaltung besteht vor allem @@@@@@ daß das jeweils gewünschte Ergebnis mit geringem
SchaltungFaufwand und kurzer Laufzeit erreicht werden kann-.
-
Eine Variante der Schaltung nach FIG 2 ist in FIG 3 dargestellt. Die
Änderung betrifft die Auswahlschaltung insofern, als die hier verwendeten Multiplexer
MUXi nur die eingänge b oder c durchschalten. Der Ausgang der Multiplexer muß deshalb
noch über je ein ODER-Glied mit mitdem Eingang a verknüpft werden, wobei anstelle
des festen Potentials "111" direkt das Treffersignal HITi zugeführt werden kann.
-
Eine weitere, geringfügige Laufzeitverbesserung kann
schließlich
mit der Schaltung nach FIG 4 dadurch erreicht werden, daß die Multiplexer der Schaltung
nach FIG 3 durch je zwei UND-Glieder UG1, UG2 ersetzt werden. Dabei verknüpfen je
drei erste UND-Glieder UG1 jeweils eines der drei Bits der Alt-Priorität Pi mit
dem jeweils entsprechenden Bit des negierten Ausgangssignals P der Vergleicherschaltung
COMPi. In c analoger Weise verknüpfen drei zweite UND-Glieder UG2 jeweils einen
der n Ausgänge einer ausgangsseitig mit der Alt-Priorität P. gespeisten Subtrahierschaltung
SUBi mit dem jeweils entsprechenden Bit des Ausgangssignals Pc der Vergleicherschaltung
COMPi. Die Ausgänge der ersten und zweiten UND-Glieder werden schließlich zusammen
mit dem jeweils bankbezogenen Treffersignal HITi über das ausgangsseitige ODER-Glied
OGi zur Bildung der jeweiligen Neu-Priorität miteinander verknüpft.
-
Die in der Schaltung nach FIG 4 zusätzlich enthaltene Miss-Logikschaltung
ML wird bei einem erfolglosen Zugriff zum Speicher tätig. Sofern alle Speicherbänke
in den LRU-Ersetzungsalgorithmus einbezogen sind, d.h.
-
keine Einschränkungen für eine der n Bänke hinsichtlich vollständiger
Banksperre, teilweiser Sperre oder dergleichen bestehen, bedeutet dies, daß im Miss-Fall
keiner der Treffersignale HIT. wirksam ist. Damit liegen in der Schaltung nach FIG
1 sämtliche Tor schaltungen TG ausgangsseitig auf log."0'1, so daß an den Ausgängen
der ODER-Glieder OGX, OGY, OGZ die Treffer-Priorität PHIT = 000 anliegt. Gerade
diese an einer der n Bänke auftretende niedrigste Priorität ist es aber, die im
Miss-Fall aufgrund des LRU-Algorithmus zur höchsten Priorität werden soll, während
alle übrigen Prioritäten, mit dieser Treffer-Priorität verglichen, die jeweilige
Auswahlschaltung so einstellen, daß am Ausgang des jeweiligen
ODER-Gliedes
OGi eine jeweils um 1 erniedrigte Priorität erscheint. Die in der Schaltung nach
FIG 4 angegebene Miss-Logik ML löst nun den Miss-Fall zum Beispiel In der Weise,
daß die n Bits der Alt-Priorität Pi an negierte Eingänge eines UND-Gliedes geführt
und dort mit dem Miss-Signal verknüpft werden mit der Folge, daß bei einer Alt-Priorität
P. = 000 sowohl das UND-Glied als auch der Ausgang der ODER-Glieder OGi auf log."l"
und damit die am Ausgang des ODER-Gliedes OGi auftretende Neu-Priorität auf "111"
gestellt wird.
-
Der bei erfolglosem Zugriff zum Speicher eintretende Miss-Fall kann
bei einer Schaltungsanordnung nach FIG 1 Nuch dRdu.rch gelöst werden, daß den Eingängen
für das Treffersignal HITi über einen Multiplexer nicht nur das jeweilige Treffersignal,
sondern auch ein jeweils fr die Bank mit der niedrigsten Priorität simuliertes Hit-Signal
angeboten wird. Dieses in Form des simulierten Hit-Signals auftretende Miss-Signal
durchläuft die gesamte Hit-Logik und zeigt am jeweiligen Signal-Ausgang SEIL. an,
in welche Bank geschrieben werden soll.
-
Schließlich besteht für den Miss-Fall auch die Möglichkeit, die in
einer Miss-Logikschaltung MLS erzeugte Fehltreffer-Priorität PM über zusätzliche
Eingänge an den ODER-Gliedern OGX, OGY, OGZ direkt allen Steuer-/Vertauschungslogik-Schaltungen
über die jeweiligen PHIt-Eingänge zuzuführen. Diese für den Miss-Fall maßgebliche
Priorität P tritt dabei an die Stelle der M jeweiligen Treffer-Priorität PHIT, das
heißt sie wird simultßn mit jeder der n ALT-Prioritäten verglichen, wobei dann diejenige
Bank, bei der die Alt-Priorität mit der Fehltreffer-Priorität identisch ist, auf
die höchste Prioritätsstufe gesetzt wird. Sofern eine oder gegebenenfalls mehrere
Bänke gegen unerwünschten Daten-
austausch geschützt werden sollen,
besteht durch zusätzliche Sperrschaltungen in der Miss-Logikschaltung MLS ferner
die Möglichkeit, diese Speicherbänke vom LRU-Ersetzungsalgorithmus abzutrennen.