DE2816838C2 - Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten - Google Patents

Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten

Info

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
Application number
DE2816838A
Other languages
English (en)
Other versions
DE2816838A1 (de
Inventor
Ludwig Dr.-Ing. 8000 München Schubert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SCHUBERT, LUDWIG, DR., 8000 MUENCHEN, DE
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE2816838A priority Critical patent/DE2816838C2/de
Publication of DE2816838A1 publication Critical patent/DE2816838A1/de
Application granted granted Critical
Publication of DE2816838C2 publication Critical patent/DE2816838C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

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
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
ίο 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
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 Patentansprüche:
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.
DE2816838A 1978-04-18 1978-04-18 Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten Expired DE2816838C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7510904A (nl) * 1975-09-17 1977-03-21 Philips Nv Woordgroepsprioriteitsinrichting.

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