DE2816838C2 - Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten - Google Patents
Verfahren und Prioritätssteuereinheit zum Zuordnen von PrioritätenInfo
- Publication number
- DE2816838C2 DE2816838C2 DE2816838A DE2816838A DE2816838C2 DE 2816838 C2 DE2816838 C2 DE 2816838C2 DE 2816838 A DE2816838 A DE 2816838A DE 2816838 A DE2816838 A DE 2816838A DE 2816838 C2 DE2816838 C2 DE 2816838C2
- Authority
- DE
- Germany
- Prior art keywords
- priority
- variable
- variables
- memory
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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 bezieht sich auf ein Verfahren zum Zuordnen je einer Priorität zu ungeordnet aufeinander
folgenden Variablen abhängig von der umgekehrten Reihenfolge ihres bisher letzten Auftretens mit einer
der Anzahl der Variablen entsprechenden Anzahl von speichernden Einrichtungen, z. B. Speicherabschnitten,
von denen die jeweils aktuelle Prioritätsfolge ableitbar ist, und eine nach diesem Verfahren arbeitende
Prioritätssteuereinheit
In der elektronischen Datenverarbeitung sind viele Anwendungsfälle möglich, in denen eine ungeordnet
auftretende Reihe von Ereignissen nach bestimmten Prioritäten geordnet werden muß. Da das Ordnungsschema
dabei den verschiedenen Anwendungsfällen angepaßt wird, sind ebenso auch unterschiedliche
Algorithmen zur Bildung der gewünschten Prioritätsfolge bekannt. Dies gilt z. B. für den FIFO-Algorithmus
(First In, First Out), bei dem das zeitlich zuerst eintreffende Ereignis höchste Priorität erhält, oder auch
für den LIFO-Algorithmus (Last In, First Out), bei dem
das zeitlich jüngste Ereignis die höchste Priorität erhält. Diese bekannten Prioritätsschemata haben die Eigenschaft,
daß neu auftretende Variable die bisherige Prioritätsreihenfolge nur nach oben oder unten
erweitern, innerhalb der einmal bestehenden Reihenfolge jedoch keine Veränderungen hervorrufen. Die
genannten Algorithmen sind daher verhältnismäßig einfach zu realisieren.
Komplizierter in der Realisierung ist dagegen der LRU-Algorithmus (Least Recently Used). Bei dieser
Prioritätsfolge soll jeweils die Variable höchste Priorität genießen, die am längsten nicht mehr aufgetreten ist.
Demnach besitzt die zeitlich jüngste Variable niedrigste
Priorität und zwischen diesen beiden Variablen ändert sich die Prioritätsfolge laufend, sobald eine Variable neu
auftritt Die zeitlich jüngste Variable hatte vor ihrem Auftreten eine bestimmte Rangstufe in der Prioritätsfolge
und muß nun ausgesondert werden. Dies bedeutet, daß alle anderen Variablen mit bisher niedriger Priorität
in der Prioritätsfolge eine Stufe weiter oben eingeordnet werden müssen.
Dieses dynamische Umordnen der Prioritäten erschwert die Realisierung, wie bekannte Beispiele zeigen.
So ist es z. B. bekannt, jeder Variablen einen Zähler
zuzuordnen. Die Kapazität der Zähler entspricht der Gesamtzahl möglicher Variablen. Zu Beginn werden die
Zähler der Reihe nach auf die Werte »0« bis v>(n — 1)«
eingestellt Die Variablen treten in ungeordneter Folge seriell auf und jedes Mal wird der der zeitlich jüngsten
Variablen zugeordnete Zähler auf Null gesetzt Alle Zähler, deren Zählerstand kleiner war als der des nun
auf Null gesetzten Zählers, werden um 1 erhöht Die Variable höchster Priorität ist dann durch den Zähler
mit dem maximalen Zählerstand definiert. Dieses Schaltungskonzept erfordert, abgesehen von dem
Aufwand an Bauelementen, bei jeder Aktualisierung der Prioritätsfolge eine Vielzahl von Such-oder Vergleichsvorgängen; die Lösung ist daher recht aufwendig.
Eine andere Schaltung ist in »IBM Technical Disclosure Bulletin«, Vol. 17, Nr. 11, April 1975, Seite
3361 bis 3363 beschrieben. Für nur vier zu permutierende Variable ist ein Netzwerk auf fünf Vierpolen mit
Speichereigenschaft aufgebaut, die jeweils abhängig von zwei Funktionszuständen eine unterschiedliche
Reihenfolge zweier Eingangsgrößen festlegen. Änderungen der Funktionszustände jedes dieser Vierpole
werden aufgrund von Zustandsgieichungen aus den aktuellen Funktionszuständen und den Zuständen der
Variablen durch logische Verknüpfungen abgeleitet. Weiterhin gehört dazu, um die am längsten nicht
aufgetretene Variable zu ermitteln, ein aufwendiges Decodiernetzwerk, das ebenfalls nach den Grundsätzen
der Booleschen Algebra aufgebaut ist. Dieses bekannte
Netzwerk ist bereits für nur vier zu permutierende Variable sehr aufwendig, so daß es für eine größere
Anzahl möglicher Variablen nicht mehr sinnvoll verwendbar erscheint.
Ähnliches gilt für eine andere bekannte Anordnung nach der DE-OS 26 40 357, bei der ein Codegenerator
jeweils eine zweiteilige Bitkombination erzeugt, deren einer Teil von der codierten Speicheradresse mit der
niedrigsten Priorität für die Ansteuerung des Pufferspeichers eines mehrteiligen Speichersystems gebildet wird
und deren anderer Teil die Prioritäten der übrigen Adressen in codierter Form anzeigt In einem
ROM-Speicher sind alle vorkommenden Bitkombinationen gespeichert und mit jeder Bitkombination als
Ansteueradresse für diesen ROM-Speicher wird eine Gruppe von Bitkombinationen ausgewählt, aus der dann
abhängig von dem jeweils angesteuerten Speicherplatz im Pufferspeicher die nächstfolgende Anslauer-Bitkombination
für den ROM-Speicher ausgewählt wird. Die Zuordnung entspricht also einer vorgegebenen Verknüpfungstabelle,
wobei anstelle eines ROM-Speichers auch ein entsprechend arbeitendes logisches Verknüpfungsnetzwerk
verwendet werden kann. Mit zunehmender Zahl der Speicherplätze im Pufferspeicher erhöht
sich auch hier die Zahl der möglichen Bitkombinationen und damit der Bedarf an Speicherplätzen im ROM-Speicher
bzw. der Aufwand für ein entsprechend arbeitendes Verknüpfungsnetzwerk beträchtlich.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren und eine Prioritätssteuereinheit der eingangs
genannten Art zu schaffen, das bzw. die auch für eine große Anzahl von Variablen noch eine hohe Arbeitsgeschwindigkeit
bei geringem Aufwand zuläßt und mit handelsüblichen integrierten Bausteinen einfach verwirklicht
werden kann.
Die Lösung dieser Aufgabe ist gemäß der Erfindung ι ο gekennzeichnet durch folgende Verfahrensschritte:
a) es werden zwei voneinander getrennte nach höchsthöherer bzw. nächstniedriger Priorität
geordnete Prioritätsfolgen gebildet, die im Ausgangszustand durch entsprechende Verknüpfung
der Adressen und Inhalte der Eintragszeilen der einzelnen Speicherabschnitte der speichernden
Einrichtungen zyklisch geschlossen sind;
b) jede neu eintreffende und damit einen Zuordnungsvorgang auslösende Variable wird unmittelbar mit
der die niedrigste Priorität aufweisenden und in einem ersten Prioritätsregister gespeicherten Variablen
mittels eines Vergleichers verglichen, und bei Obereinstimmung der miteinander verglichenen
Variablen wird der Zuordnungsvorgang abgebrochen;
c) bei Nichtübereinstimmung der miteinander verglichenen Variablen werden die in beiden Prioritätsfolgen geordneten Variablen durch Einfügen der
neu eingetroffenen Variablen als nunmehr prioritätsniedrigste Variable in die beiden Prioritätsfolgen
umgeordnet, wobei jeweils lediglich eine Verknüpfung zwischen der Variablen mit der bisher
niedrigsten Priorität und der nunmehr prioritätsniedrigsten Variablen vorgenommen wird;
d) danach wird die neu eingetroffene Variable mit der die höchste Priorität aufweisenden und in einem zweiten Prioritätsregister gespeicherten Variablen mittels des vorhandenen Vergleichers bzw. mittels eines zusätzlichen Vergleichers verglichen;
e) bei Nichtübereinstimmung der dabei miteinander verglichenen Variablen wird die bereits von einem früheren Zuordnungsvorgang in den beiden Prioritätsfolgen vorhandene, aber erneut eingetroffene Variable durch Verknüpfung der beiden jeweils benachbarten Variablen — wie im l.Verfahrensschnritt näher angegeben — herausgenommen, während bei Übereinstimmung der miteinander verglichenen Variablen die der Variablen mit der bisher höchsten Priorität vorangehende Variable als Variable mit der nunmehr höchsten Priorität für den nächstfolgenden Zuordnungsvorgang im zweiten Prioritätsregister bereitgestellt wird;
f) schließlich wird die jeweils neu eingetroffene Variable als die mit der nunmehr niedrigsten Priorität im ersten Prioritätsregister bereitgestellt Der Ablauf des Zuordnungsvorganges gemäß dem neuen Verfahren stellt sicher, daß einerseits jeder Zuordnungsvorgang so schnell wie möglich abgeschlossen werden kann und daß andererseits die maximale Dauer des Zuordnungsvorganges unabhängig von der Anzahl der Variablen ist Dies ist möglich, weil die Variablen mit der jeweils niedrigsten und höchsten Priorität gesondert bereitgestellt werden und damit für di^ notwendigen Vergleiche unmittelbar zur Verfügung stehen. In Verbindung mit den beiden Prioritätsfolgen kann die notwendige Verknüpfung zwischen der Variablen mit der niedrigsten Priorität und der neuen Variablen, die die niedrigste Priorität übernimmt ohne
d) danach wird die neu eingetroffene Variable mit der die höchste Priorität aufweisenden und in einem zweiten Prioritätsregister gespeicherten Variablen mittels des vorhandenen Vergleichers bzw. mittels eines zusätzlichen Vergleichers verglichen;
e) bei Nichtübereinstimmung der dabei miteinander verglichenen Variablen wird die bereits von einem früheren Zuordnungsvorgang in den beiden Prioritätsfolgen vorhandene, aber erneut eingetroffene Variable durch Verknüpfung der beiden jeweils benachbarten Variablen — wie im l.Verfahrensschnritt näher angegeben — herausgenommen, während bei Übereinstimmung der miteinander verglichenen Variablen die der Variablen mit der bisher höchsten Priorität vorangehende Variable als Variable mit der nunmehr höchsten Priorität für den nächstfolgenden Zuordnungsvorgang im zweiten Prioritätsregister bereitgestellt wird;
f) schließlich wird die jeweils neu eingetroffene Variable als die mit der nunmehr niedrigsten Priorität im ersten Prioritätsregister bereitgestellt Der Ablauf des Zuordnungsvorganges gemäß dem neuen Verfahren stellt sicher, daß einerseits jeder Zuordnungsvorgang so schnell wie möglich abgeschlossen werden kann und daß andererseits die maximale Dauer des Zuordnungsvorganges unabhängig von der Anzahl der Variablen ist Dies ist möglich, weil die Variablen mit der jeweils niedrigsten und höchsten Priorität gesondert bereitgestellt werden und damit für di^ notwendigen Vergleiche unmittelbar zur Verfügung stehen. In Verbindung mit den beiden Prioritätsfolgen kann die notwendige Verknüpfung zwischen der Variablen mit der niedrigsten Priorität und der neuen Variablen, die die niedrigste Priorität übernimmt ohne
Zeitverlust hergestellt werden. Dagegen kann auf eine zusätzliche Verknüpfung zwischen der die niedrigste
Priotität übernehmenden neuen Variablen und der Variablen mit der höchsten Priorität verzichtet werden,
da diese Zuordnung sich aus den beiden gesondert bereitgestellten Variablen ergibt. Die Verwendung
zweier Prioritätsfolgen ermöglicht es des weiteren, daß abhängig von einer neuen Variablen sowohl die in der
Rangfolge vorangehende als auch die in der Rangfolge nachfolgende Variable unmittelbar ermittelt werden
können. Zeitraubende Suchvorgänge entfallen damit, und die Löschung dieser Variablen in den alten
Prioritätsfolgen kann daher unmittelbar eingeleitet werden, falls es notwendig ist
Ein solches Verfahren läßt sich darüber hinaus sehr günstig in hierarchischen Speichersystemen zur
Speicherverwaltung, insbesondere für schnelle Pufferspeicher, verwenden, indem bei einer Speicheranforderung
im Falle eines fehlenden Eintrages im Pufferspeicher und einem daher notwendig werdenden Ersatz des
durch die Variable mit der höchsten Priorität gekennzeichneten Eintrages durch einen der Speicheranforderung
entsprechenden Eintrag die Variable mit der höchsten Priorität als neu eintreffende Variable einen
Zuordnungsvorgang auslöst
Für die Speicherverwaltung steht damit ein sehr leistungsfähiger Ersetzungsalgorithmus zur Verfügung,
wenn bei einer Speicheranforderung die entsprechenden Speicherdaten nicht im Pufferspeicher gespeichert
sind.
Eine nach dem Verfahren gemäß der Erfindung arbeitende und besonders wirkungsvolle Prioritätssteuereinheit ist dadurch gekennzeichnet, daß als
Speicher für die beiden Prioritätsfolgen zwei Speicher mit jeweils wahlweisem Zugriff und jeweils einer der
Anzahl der Variablen entsprechenden Anzahl von Speicherplätzen bzw. Eintragszeilen vorgesehen sind,
die den einzelnen Variablen jeweils fest zugeordnet sind und die jeweils die Variable mit der nächsthöheren bzw.
der nächstniedrigeren Priorität gespeichert enthalten, und daß zwei Prioritätsregister für die getrennte
Bereitstellung der Variablen mit der jeweils höchsten
bzw. niedrigsten Priorität und wenigstens ein Vergleicher zum Vergleich der jeweils neu eintreffenden
Variablen mit den Inhalten der beiden Prioritätsregister vorgesehen sind.
Die getrennten Speicher für die beiden Prioritätsfolgen stellen dabei sicher, daß Umordnungen innerhalb
der beiden Prioritätsfolgen jeweils gleichzeitig ausgeführt werden können und nicht nacheinander ablaufen so
müssen, wenn man nur einen Speicher verwenden würde. Der der Prioritätssteuereinheit zugrundeliegende
Verfahrensablauf erfordert höchstenfalls einen Lese- und zwei Schreibzyklen, da die Vergleiche und der
Transfer in die Register parallel dazu ablaufen können.
Die Prioritätssteuereinheit kann zweckmäßig durch ein Zwischenregister für die Zwischenspeicherung der
jeweils neu eintreffenden Variablen ergänzt sein. Als Speicher eignen sich zwei RAM-Speicher, so daß die
gesamte Einheit aus integrierten Bausteinen aufgebaut werden kann.
Ein Ausführungsbeispiel der Erfindung wird nachfolgend
anhand der Zeichnung näher erläutert, dabei zeigt
F i g. 1 ein Blockschaltbild für eine erfindungsgemäß ausgebildete Priorätssteuereinhert, die bei der Speicher-Verwaltung
in einem hierarchischen Speichersystem verwendet wird und
F i g. 2 zur Darstellung des Funktionsablaufes in der
Prioritätssteuereinheit gemäß F i g. 1 ein Funktionsschaltbild in Form eines in der Datenverabeitung
gebräuchlichen Flußdiagrammes.
Das in F i g. 1 dargestellte Blockschaltbild für eine Prioritätssteuereinheit ist in der Form seiner Darstellung
an inzwischen international eingeführte Normen angepaßt, die mehr als frühere Darstellungen von
Funktionsblöcken über den Schaltungsaufbau und die Funktion selbst aussagen, so daß in dieser an sich sehr
einfachen Darstellung alle für einen Schaltungsaufbau notwendigen funktionellen Merkmale enthalten sind.
Die in F i g. 2 dargestellte Wirkungsweise der Prioritätssteuereinheit bedeutet daher nur eine ergänzende
Erläuterung.
Die in F i g. 1 dargestellte Prioritätssteuereinheit soll in Verbindung mit einem hierarchischen Speichersystem
verwendet werden. Daher ist schematisch ein über ein Pufferadreßregister PAR adressierter Pufferspeicher
PSP angedeutet Zwischen beiden ist eine Hit-Miss-Logik HML angedeutet, die bei jeder Speicheranforderung
feststellt, ob diese mit dem Inhalt des Pufferspeichers
PSPzn erfüllen ist Da diese Teile eines Speichersystems als solche bekannt und nicht Teil der Erfindung sind, sind
sie hier nicht näher ausgeführt
Die Prioritätssteuereinheit hat die Aufgabe, in ungeordneter Reihenfolge auftretende Variable nach
dem LRU-Algorithmus in eine Prioritätsfolge einzuordnen. Im vorliegenden Fall sind die Variablen die
Speicheranordnungen an den Pufferspeicher PSP. Da die Verarbeitung der Zugriffe zum Pufferspeicher PSP
von der Aktualisierung der Prioritätsfolge entkoppelt ist wird der Inhalt des Pufferadreßregisters PAR, d. h.
die angeforderte Speicheradresse AR in ein Zwischenregister AKR der Prioritätssteuereinheit übertragen. Im
Steuerblock dieses Registers ist mit den Funktionen G 1 bzw. C 2 angegeben, daß die parallele Datenübernahme
mit einem »Hit« gekoppelt ist und während eines ersten Taktes T\ erfolgt
Am Ausgang dieses Zwischenregisters AKR steht dann der übernommene Registerinhalt, der die zeitlich
jüngste Variable definiert, zur Verfügung. Die Ausgangsdaten des Zwischenregisters sind mit AK bezeichnet
Diese werden zwei Speichern HPS bzw. NPS mit wahlfreiem Zugriff zugeführt Diese beiden Speicher
besitzen η Eintragszeilen bei η möglichen Variablen.
Jede Eintragszeile weist eine Kapazität auf, die den Bitstellen der Ausgangsdaten AK des Zwischenregisters
AKR entspricht und ist einer der Variablen fest zugeordnet In dem ersten Speicher HPS ist in jeder
Eintragszeile die Adresse einer Variablen mit der jeweils nächsthöheren Priorität gespeichert Er wird
deshalb als Speicher für höhere Prioritäten bezeichnet Umgekehrt ist im zweiten Speicher NPS in jeder
Eintragszeile die Adresse einer Variablen mit der nächstniedrigeren Priorität gespeichert, er ist deshalb
als Speicher für niedrigere Prioritäten bezeichnet EMe Speicherinhalte beider Speicher HPS bzw. NPS sind
anfänglich zyklisch abgeschlossen. Im ersten Speicher HPS steht, deshalb in der Eintragszeile der Variablen mit
gerader höchster Priorhat die Adresse der Variablen mit niedrigster Priorität, im zweiten Speicher NPS steht
analog in der Eintragszeile der Variablen mit gerader niedrigster Priorität die Adresse der Variablen höchster
Priorität
Die Adressen der beiden Variablen mit höchster bzw. niedrigster Priorität sind daneben in zwei weiteren
Registern, den Prioritätsregisteni HOR bzw. NOR
niedergelegt Durch deren Ausgangsdaten HPO bzw.
NPO werden die Adressen für die höchstpriorisierte bzw. die niedrigstpriorisierte Variable nach der
Datenübernahme in die Register statisch bereitgehalten.
An die beiden Speicher HPS bzw. NPS ist je ein Speicherregister HPR bzw. NPR angeschlossen. Diese
beiden Speicherregister dienen zum Zwischenspeichern von ausgelesenen Einträgen. Ihre Ausgangsdaten HK
bzw. NK werden ebenso statisch bereitgehalten.
Schließlich enthält die Prioritätssteuereinheit noch zwei Vergleichseinrichtungen VG 1 bzw. VC 2, denen
die Ausgangsdaten AK des Zwischenregisters AKR zugeführt sind. In der ersten Vergleichseinrichtung
werden diese mit den Ausgangsdaten NPO des zweiten Prioritätsregisters NOR verglichen und bei Identität ein
erstes Identitätssignal EQi erzeugt. Der zweiten Vergieichseäp.richtup.g VC 2 werden die Ausgangsdaten
HPO des ersten Prioritätsregisters HOR zum Vergleich zugeführt, bei Identität mit den Ausgangsdaten A K wird
ein zweites Identitätssignal EQ 2 erzeugt.
Die Wirkungsweise dieser Schaltungsanordnung läßt sich an sich aus der normgerechten Darstellung der
Baueinheiten unmittelbar entnehmen, aus Gründen der Übersicht ist dies jedoch in F i g. 2 in einem Flußdiagramm
nochmals dargestellt. Ein neuer Arbeitszyklus der Prioritätssteuereinheit wird angestoßen, wenn bei
einer Anforderung an den Pufferspeicher /Weine neue Speicheradresse in das Pufferspeicheradreßregister
PAR eingeschrieben wird. Zunächst sei ein »Hit« im Pufferspeicher PSP betrachtet. Mit dem Treffersignal
»Hit« und der Hit/Miss-Logik HML wird sowohl der Pufferspeicher PSPaIs auch das Zwischenregister AKR
der Prioritätssteuereinheit angesteuert. Mit diesem steuernden Treffersignal wird zu einer ersten Taktzeit
TX die Datenübernahme in das Zwischenregister AKR ausgelöst.
Diese übernommenen Adreßdaten AR werden als Ausgangsdaten AK des Zwischenregisters AKR statisch
bereitgehalten. Sie werden u. a. der ersten Vergleichseinrichtung VG1 zugeführt und dort mit den Ausgangsdaten
NPO des zweiten Prioritätsregisters NOR verglichen, Identität der beiden Eingangsgrößen ergibt
das erste Identitätssignal EQ1. Dieser Fall tritt nur ein,
wenn bei zwei aufeinanderfolgenden Speicheranforderungen zu denselben Speicherdaten zugegriffen wird.
Die Prioritätsfolge bleibt dann unverändert, weil die neue Variable bereits die niedrigste Priorität besaß.
Nach F i g. 2 ist deshalb in diesem Fall bereits während der Taktzeit Π der Prioritätszyklus abgeschlossen.
Bei negativem Ergebnis des Vergleichs muß nun die Prioritätsfolge umgestellt werden. Dies bedeutet zunächst
immer noch während der ersten Taktzeit Ti einen Lesevorgang in den beiden Speichern HPS bzw.
NPS. Wie in den Steuerblöcken der beiden Speicher HPS bzw. NPS angegeben ist, adressieren die
Ausgandsdaten AK des Zwischenregisters AKR je einen Eintrag, dessen Inhalt während der ersten
Taktzeit Π in das erste Speicherregister HPR bzw. das zweite Speicherregister NPR übernommen wird. Mit
diesem Lesevorgang ist die erste Taktzeit TX abgeschlossen. Ausgehend von der bisherigen Prioritätsfolge
steht dann in den beiden Speicherregistern HPR bzw. NPR die Adresse derjenigen Speicheranforderung,
die gegenüber der aktuellen Speicheranforderung bisher die nächsthöhere bzw. die nächstniedrigere
Priorität besaß.
In einer darauffolgenden zweiten Taktzeit Γ2 wird parallel in beide Speicher HPS bzw. NPS eingeschrieben.
Ein unzulässiges Oberschreiben wird mit Hufe des steuernden ersten Identitätssignals EQ1 verhindert.
Dies ist in den Steuerblöcken der beiden Speicher HPS bzw. NPS derart angedeutet, daß das invertierte, erste
Identitätssignal EQ X mit dem in der zweiten Taktzeit T2 wirksamen Taktsignal in einer UND-Schaltung
logisch verknüpft ist und nur in diesem Fall die Dateneingänge der beiden Speicher, wie im Ausgangsblock
angegeben, wirksam werden.
In den ersten Speicher HPS werden bei diesem
In den ersten Speicher HPS werden bei diesem
ίο Schreibvorgang in die durch die Ausgangsdaten AK des
Zwischenregisters AKR adressierte Eintragszeile die Ausgangsdaten NPO des zweiten Prioritätsregisters
NOR übertragen. Dort steht dann die gegenüber der aktuellen Speicheranordnung nächsthöher priorisierte
Speicheranforderung, die bisher die niedrigste Priorität besaß. Parallel dazu wird im zweiten Speicher NPS die
der Speicheranforderung mit bisher niedrigster Priorität zugeordnete Eintragszeile mit den Ausgangsdaten
des NPO des zweiten Prioritätsregisters NOR adressiert. In diese Eintragszeile werden unter der gleichen
einschränkenden Voraussetzung eines negativen Vergleichs in der ersten Vergleichseinrichtung VG X die
Ausgangsdaten AK des Zwischenregisters AKR eingetragen. Im zweiten Speicher NPS steht damit unter der
Adresse der Speicheranforderung mit bisher niedrigster Priorität die Adresse der aktuellen Speicheranforderung.
Mit Abschluß dieses Schreibvorganges ist auch die zweite Taktzeit Γ2 abgelaufen.
In F i g. 2 ist während der zweiten Taktzeit 7"2 ein
In F i g. 2 ist während der zweiten Taktzeit 7"2 ein
jo weiterer Vergleich angegeben, der in der zweiten Vergleichseinrichtung VG 2 durchgeführt wird. Mit
diesem Vergleich wird ermittelt, ob die neue Speicheranforderung bisher höchste Priorität besaß. Wie in der
am rechten Bildrand von F i g. 2 angegebenen Taktspalte zu erkennen ist, wird für diesen Vergleich keine
weitere Zeit benötigt, denn auch er kann parallel zu den Zyklen der Speicher HPS bzw. NPS durchgeführt
werden, genau genommen läuft er während der Taktzeiten TX und 7"2ab.
Ein positives Ergebnis dieses Vergleiches bedeutet, daß der Inhalt des ersten Prioritätsregisters HOR
aktualisiert werden muß. Wenn die gegenwärtige Speicheranforderung bisher höchste Priorität besaß, so
steht nun im zweiten Speicherregister NPR die Adresse der Speicheranforderung mit bisher nächstniedriger
Priorität Die Ausgangsdaten NK des zweiten Speicherregisters NPR werden dann während einer dritten
Taktzeit Γ3 des Zyklus der Prioritätssteuereinheit in das erste Prioritätsregister HOR übertragen. Im
so Steuerblock dieses Prioritätsregisters ist dazu angegeben,
daß die Datenübernahme nur dann zum angegebenen Zeitpunkt stattfindet, wenn zugleich ein invertiertes
erstes Identitätssignal EQ X und das zweite Identitätssignal EQ 2 wirksam sind.
Fällt dagegen der Vergleich in der zweiten Vergleichseinrichtung
VG 2 negativ aus, so läuft in der dritten Tatkzeit 7"3 in beiden Speichern HPS bzw. NPS
je ein weiterer Schreibvorgang ab. In dem ersten Speicher HPS wird dabei bei invertierten Identitätssignalen
EQ1 bzw. EQ 2 während der dritten Taktzeit TZ
durch die Ausgangsdaten NK des zweiten Speicherregisters NPR eine Eintragszeile ausgewählt In diese
werden die Ausgangsdaten //K des ersten Speicherregisters
HPR übertragen. Mit diesem Schaltvorgang wird
in den beiden Speichern die durch die Ausgangsdaten AK des Zwischenreisters AKR definierte Speicheranforderung
aus der bisherigen Prioritätsfolge herausgenommen.
An deren Stelle wird im ersten Speicher HPS
die Adresse der bisher niedriger priorisierten Variablen eingefügt. Analoges gilt für den zweiten Speicher NPS.
Schließlich wird in der dritten Taktzeit Γ3 der Zyklus der Prioritätssteuereinheit mit der Übernahme der
Ausgangsdaten AK des Zwischenregisters AKR in das ■>
zweite Prioritätsregister NOR abgeschlossen. In der Prioritätssteuereinheit ist damit die neue Prioritätsfolge
festgelegt. Abweichend vom Ausgangszustand mit zyklisch geschlossenen Prioritätsfolgen in beiden
Speichern HPS und NPS ist bereits nach der ersten ι» Umordnung der zyklisch geschlossene Kreis aufgehoben,
da die jeweils prioritätsniedrigste Variable nur mit der Variablen der nächsthöheren Priorität verknüpft
wird, nicht aber mit der nächstniedrigeren, also der mit der höchsten Priorität. Dafür wäre ein weiterer ij
Schreibzyklus erforderlich, der aber bei dem Verfahren gemäß der Erfindung eingespart wird, da diese
Zuordnung durch die Prioritätsregister HOR und NOR sichergestellt ist und der Verzicht auf diese Verknüpfung
ohne Auswirkung ist. μ
Vorstehend wurde bei einer Speicheransteuerung der Fall betrachtet, daß die angeforderten Speicherdaten
bereits im Pufferspeicher PSP stehen. Ist dies jedoch nicht der Fall, so ermittelt die Hit/Miss-Logik HML
einen »Miss« im Pufferspeicher PSP und löst damit einen Ersetzungsvorgang in diesem Speicher aus.
Ersetzt wird der Teil im Pufferspeicher PSP, der in der Prioritätssteuereinheit der Variablen mit der höchsten
Priorität zugeordnet ist. Diese ist durch die Ausgangsdaten HPO des ersten Prioritätsregisters HOR definiert μ
Vor dem Ersatz des entsprechenden Speicherinhaltes werden daher die Ausgangsdaten HPO des ersten
Prioritätsregisters HOR in das Zwischenregister A KR übertragen. Danach läuft auch in diesem Fall ein
Prioritätszyklus, wie oben erläutert, ab.
Vor der erstmaligen Inbetriebnahme der Prioritätssteuereinheit müssen die beiden Prioritätsregister HOR
bzw. NOR und die beiden Speicher HPS bzw. NPS so geladen werden, daß alle Zeilen mit Folgeadressen zwei
gegenseitig widerspruchsfreie, alle Adressen umfassende Ringe bilden. Dazu kann beispielsweise im Speicher
WPS für höhere Prioritäten in die Jt-te Eintragszeile die
Adresse der (k + l)-ten Zeile und im Speicher NPS für niedrigere Prioritäten in die k-ie Eintragszeile analog
die Adresse der (k — 1 )-ten Zeile eingetragen werden. Dabei umfaßt die Größe k alle Werte entsprechend der
Menge der Eintragszeilen. Wird das erste Prioritätsregister darüber hinaus mit »0« geladen, dann muß das
zweite Prioritätsregister mit »1« geladen werden. Der Vorgang ist einmalig, ein erneutes Laden der Speicher
beim Löschen des Pufferspeichers o.a. ist nicht erforderlich.
Das vorstehend beschriebene Ausführungsbeispiel bezieht sich auf die Verwendung einer Prioritätssteuereinheit
in einem Speichersystem, um damit die Speicherverwaltung zu optimieren. In der Datenverarbeitung
und auch allgemein in der Nachrichtentechnik sind jedoch eine Vielzahl von weiteren Anwendungsfällen
denkbar, bei denen, allgemein ausgedrückt, eine endliche Anzahl von Ereignissen in regelloser Folge
auftreten können und diese Ereignisse in einer Prioritätsfolge gemäß dem LRU-Algorithmus verarbeitet
werden sollen. In entsprechender Anpassung, z. B. in bezug auf die Anzahl der Variablen, ist in allen diesen
Fällen die Prioritätssteuerung mit den oben angegebenen Mitteln zu erreichen.
Hierzu 2 Blatt Zeichnungen
Claims (4)
1. Verfahren zum Zuordnen je einer Priorität zu ungeordnet aufeinanderfolgenden Variablen abhängig
von der umgekehrten Reihenfolge ihres bisher letzten Auftretens mit einer der Anzahl der
Variablen entsprechenden Anzahl von speicherenden Einrichtungen, z. B. Speicherabschnitten, von
denen die jeweils aktuelle Prioritätsfolge ableitbar ist, gekennzeichnet durch folgende Verfahrensschritte:
a) es werden zwei voneinander getrennte nach nächsthöherer bzw. nächstniedriger Priorität
geordnete Prioritätsfolgen gebildet, die im Ausgangszustand durch entsprechende Verknüpfung
der Adressen und Inhalte der Eintragszeilen der einzelnen Speicheraäschnitte
der speichernden Einrichtung (NPS/HPS) zyklisch geschlossen sind;
b) jede neu eintreffende und damit einen Zuordnungsvorgang auslösende Variable (AK) wird
unmittelbar mit der die niedrigste Priorität aufweisenden und in einem ersten Prioritätsregister
(NOR) gespeicherten Variablen (NPO) mittels eines Vergleichers (VGi) verglichen,
und bei Übereinstimmung der miteinander verglichenen Variablen (AK und NOP) wird der
Zuordnungsvorgang abgebrochen;
c) bei Nichtübereinstimmung der miteinander verglichenen Variablen (AK und AiO^ werden
die in beiden Prioritätsfolgen geordneten Variablen durch Einfügen der neu eingetroffenen
Variablen (AK) als nunmehr prioritätsniedrigste Variable in die beiden Prioritätsfolgen
umgeordnet, wobei jeweils lediglich eine Verknüpfung zwischen der Variablen (NPO) mit
der bisher niedrigsten Priorität und der nunmehr prioritätsniedrigsten Variablen (AK)
vorgenommen wird;
d) danach wird die neu eingetroffene Variable (A K) mit der die höchste Priorität aufweisenden
und in einem zweiten Prioritätsregister (HOR) gespeicherten Variablen (HPO) mittels des
vorhandenen Vergleichers (VG 1) bzw. mittels eines zusätzlichen Vergleichers (VG 2) verglichen;
e) bei Nichtübereinstimmung der dabei miteinander verglichenen Variablen (AKund HOP)w\rd
die bereits von einem früheren Zuordnungsvorgang in den beiden Prioritätsfolgen vorhandene,
aber erneut eingetroffene Variable (AK) durch Verknüpfung der beiden jeweils benachbarten
Variablen (HK, NK) — wie im ersten Verfahrensschritt näher angegeben — herausgenommen,
während bei Übereinstimmung der miteinander verglichenen Variablen (AK und
HOP) die der Variablen (HPO) mit der bisher höchsten Priorität vorangehende Variable (NK)
als Variable mit der nunmehr höchsten Priorität für den nächstfolgenden Zuordnungsvorgang
im zweiten Prioritätsregister (HOR) bereitgestellt wird;
f) schließlich wird die jeweils neu eingetroffene Variable (AK) als die mit der nunmehr
niedrigsten Priorität im ersten Prioritätsregister fM?/?,) bereitgestellt.
2. Verfahren nach Anspruch 1 bei Verwendung in einem mehrstufigen Speichersystem zum Zuweisen
von Speicherplätzen in schnellen Pufferspeichern, dadurch gekennzeichnet, daß bei einer Speicheranforderung
im Falle eines fehlenden Eintrags im Pufferspeicher (PSP) und einem daher notwendig
werdenden Ersatz des durch die Variable (HPO) mit der höchsten Priorität gekennzeichneten Eintrags
durch einen der Speicheranforderung entsprechenden Eintrag die Variable (HPO) mit der höchsten
Priorität als neu eintreffende Variable (AK) einen
ίο Zuordnungsvorgang auslöst
3. Prioritätssteuereinheit zur Durchführung des Verfahrens nach Anspruch 1 oder 2, dadurch
gekennzeichnet, daß als Speicher für die beiden Prioritätsfolgen zwei Speicher (HPS, NPS) mit
jeweils wahlweisem Zugriff und jeweils einer der Anzahl der Variablen entsprechenden Anzahl von
Speicherplätzen bzw. Eintragszeilen vorgesehen sind, die den einzelnen Variablen jeweils fest
zugeordnet sind und die jeweils die Variable (HK
bzw. NK) mit der nächsthöheren bzw. der nächstniedrigeren Priorität gespeichert enthalten, und daß
zwei Prioritätsregister (HOR, NOR)iür die getrennte
Bereitstellung der Variablen (HPObzv/. NPO)mit
der jeweils höchsten bzw. niedrigsten Priorität und wenigstens ein Vergleicher (VGX, VG 2) zum
Vergleich der jeweils neu eintreffenden Variablen (AK) mit den Inhalten (HPO. NPO) der beiden
Prioriiätsregister (HOR, NOR) vorgesehen sind. '
4. Prioritätssteuereinheit nach Anspruch 3, dadurch gekennzeichnet, daß ein Zwischenregister
(AKR) für die Zwischenspeicherung der jeweils neu eintreffenden Variablen (A/ζ) vorgesehen ist.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2816838A DE2816838C2 (de) | 1978-04-18 | 1978-04-18 | Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2816838A DE2816838C2 (de) | 1978-04-18 | 1978-04-18 | Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2816838A1 DE2816838A1 (de) | 1979-10-25 |
DE2816838C2 true DE2816838C2 (de) | 1982-06-09 |
Family
ID=6037321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2816838A Expired DE2816838C2 (de) | 1978-04-18 | 1978-04-18 | Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE2816838C2 (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4494113A (en) * | 1981-03-13 | 1985-01-15 | Hitachi, Ltd. | Method and apparatus for self-control in distributed priority collision |
US5875352A (en) * | 1995-11-03 | 1999-02-23 | Sun Microsystems, Inc. | Method and apparatus for multiple channel direct memory access control |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL7510904A (nl) * | 1975-09-17 | 1977-03-21 | Philips Nv | Woordgroepsprioriteitsinrichting. |
-
1978
- 1978-04-18 DE DE2816838A patent/DE2816838C2/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE2816838A1 (de) | 1979-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1499182C3 (de) | Datenspeichersystem | |
DE2856133C2 (de) | Datenverarbeitungsvorrichtung mit einem Hauptspeicher und einem Assoziativspeicher als Pufferspeicher | |
DE2415900A1 (de) | Rechenautomat mit mehreren mit je einem vorratsspeicher versehenen rechenanlagen | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2630323A1 (de) | Datenspeichereinrichtung | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
DE69027017T2 (de) | Anordnung und Verfahren zur Speicherverwaltung in einem Mikrorechner | |
DE2346525B2 (de) | Virtuelle Speichereinrichtung | |
WO2001024368A1 (de) | Rekonfigurierbares gate-array | |
DE2547488C2 (de) | Mikroprogrammierte Datenverarbeitungsanlage | |
DE69131472T2 (de) | Verfahren zum Vorsehen eines synchronisierten Datencachespeicherbetriebs für Prozessoren in einer parallelen Verarbeitungsanordnung und parallele Verarbeitungsanordnung zur Durchführung des Verfahrens | |
DE2161886A1 (de) | Befehlsausführungssystem in einer elektronischen Datenverarbeitungsanlage | |
DE4207158A1 (de) | Speicher-zugriffssteuerung | |
DE1499206B2 (de) | Rechenanlage | |
DE1949916B2 (de) | Verfahren zum betrieb einer programmgesteuerten datenverarbeitungsanlage und anordnung zur durchfuehrung des verfahrens | |
DE3852432T2 (de) | Befehlssteuerungsvorrichtung für ein Computersystem. | |
DE2136270A1 (de) | Verfahren und Vergleicher zum Vergleich zweier Binärzahlen | |
DE2816838C2 (de) | Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten | |
DE19538448A1 (de) | Datenbankmanagementsystem sowie Datenübertragungsverfahren | |
DE2062164A1 (de) | Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten | |
DE2610428A1 (de) | Anordnung zur steuerung der zwischenspeicherung von zwischen zwei funktionseinheiten zu uebertragenden daten in einem pufferspeicher | |
DE1808678B2 (de) | Verfahren und schaltungsanordnung fuer elektronische daten waehlvermittlungsanlagen mit einem zentralen speicher | |
DE2057587A1 (de) | Inhaltsadressierter Speicher | |
DE3787213T2 (de) | Verzögerungsverwaltungsverfahren und -vorrichtung. | |
DE2519195A1 (de) | Assoziativspeicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
D2 | Grant after examination | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: SCHUBERT, LUDWIG, DR., 8000 MUENCHEN, DE |
|
8339 | Ceased/non-payment of the annual fee |