DE3009330C2 - Verfahren zum Sortieren von in einem Hybrid-Assoziativspeicher gespeicherten Daten und Anordnung zur Durchführung des Verfahrens - Google Patents
Verfahren zum Sortieren von in einem Hybrid-Assoziativspeicher gespeicherten Daten und Anordnung zur Durchführung des VerfahrensInfo
- Publication number
- DE3009330C2 DE3009330C2 DE19803009330 DE3009330A DE3009330C2 DE 3009330 C2 DE3009330 C2 DE 3009330C2 DE 19803009330 DE19803009330 DE 19803009330 DE 3009330 A DE3009330 A DE 3009330A DE 3009330 C2 DE3009330 C2 DE 3009330C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- data
- search
- auxiliary
- sorting
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
Die Erfindung betrifft ein Verfahren zum Sortieren von in einem Hybrid- Assoziativspeicher gespeicherten
Daten, der aus einer assoziativen Oberfläche und einem
Basisspeicher mit einer Vielzahl von gleichartigen Speichereinheiten besteht und bei dem die Speicherabschnitte
jeweils einer Speichereinheit alle parallel zur assoziativen Oberfläche durchschaltbar sind, sowie eine
Anordnung zur Durchführung dieses Verfahrens.
Hybrid-Assoziativspeicher sind bereits bekannt, z. B.
durch DE-AS 25 25 287 oder durch »data report« 11
(1976), Heft 2, Seiten 29 bis 34, insbesondere Seite 32.
Auch sind bereits eine Reihe von Sonderverfahren bekannt, i-nter anderem durch die DE-PS 23 42 660, um ι»
in einem Assoziativspeicher mit einem variablen Assoziationsbereich ungeordnet gespeicherte Daten
nach einer vorgegebenen Rangordnung zu sortieren. Diese Verfahren sind aber auf Hybrid-Assoziativspeicher
der eingangs genannten Art nicht ohne weiteres π übertragbar, da jeweils nur eine der Speichereinheiten
des Basisspeichers von der assoziativen Oberfläche erfaßt wird und die Verknüpfung der Sortierergebnisse
der einzelnen Speichereinheiten bei eine! Vielzahl von
Speichereinheiten erhebliche, wenn überhaupt überwindbare Schwierigkeiten bereitet
Auch das durch die DE-PS 25 12 324 bekannte Sortierverfahren für einen assoziativ bewirtschafteten,
aber konventionellen Speicher, bei dem ein Assoziativspeicher als HilfsSpeicher verwendet wird, ist wegen der
Notwendigkeit der direkten Ansteuerung der einzelnen Speicherplätze im Speicher und wegen des fortlaufenden
Datenaustausches zwischen Haupt- und Hilfsspeicher auf Hybrid-Assoziativspeicher nicht direkt anwendbar,
jo
Aufgabe der Erfindung ist es daher, ein Verfahren der eingangs genannten Art und eine Anordnung zu dessen
Durchführung zu schaffen, die ein schnelles und sicheres Sortieren mit wirtschaftlichem Aufwand auch bei
größerer Speicherkapazität ermöglichen.
Ein solches Verfahren gemäß der Erfindung ist zunächst dadurch gekennzeichnet, daß durch ein
variabel einstellbares Suchargument der assoziativen Oberfläche Gruppen von zusammen sortierfähigen
Daten aus dem Basisspeicher ausgesucht werden, daß bei Vorliegen eines Treffers die zugehörigen Daten in
einen Hilfsspeicher übernommen werden, daß jeweils nach Durchsuchen aller Speichereinheiten des Basisspeichers
die im Hilfsspeicher gesammelten Daten in an sich bekannter Weise sortiert und ausgegeben werden,
daß der Such- und Sortiervorgang wiederholt wird, bis alle Gruppen von Daten, die zu sortieren sind, erfaßt
sind, und daß die jeweils aussortierten Daten als solche im Basisspeicher markiert werden.
Ein solches Verfahren verwendet zwar auch einen Hilfsspeicher zum Aufsammeln von Daten wie das
Verfahren nach der zuvor genannten DE-PS 25 12 324. Die vom Hilfsspeicher übernommenen Daten sind aber
im vorliegenden Falle bereits vorsortiert, was die assoziative Oberfläche des Hybrid-Assoziationsspeichers
selbst bewirkt.
Dabei werden jeweils ganze Speichereinheiten des Basisspeichers überprüft, und die Einzelansteuerung
von Speicherplätzen mit wechselseitigem Datenaustausch entfällt. Sobald alle Speichereinheiten des
Basisspeichers nach einer vorgegebenen Gruppe von Daten durchsucht sind, erfolgt in an sich bekannter
Weise, z.B. nach der ebenfalls genannten DE-PS 23 42 660, die Endsortierung der im Hilfsspeicher
gesammelten Daten, und zwar entweder durch eine eigene assoziative Oberfläche bei Ausbildung des
HilfsSpeichers als selbständigen Assoziativspeicher oder aber ebenfalls durch die assoziative Oberfläche des
Hybrid-Assoziativspeichers. Das Löschen oder Markieren der endgültig aussortierten Daten stellt sicher, daß
bei aufeinanderfolgenden Suchläufen für andere Gruppen mit reduziertem Suchargument bereits aussortierte
Daten nicht noch einmal erfaßt werden.
Solange die einzelnen Gruppen von sortierfähigen Daten annähernd gleich groß sind, genügt ein
Hilfsspeicher mit entsprechend hoch bemessener Speicherkapazität Bei N Einträgen in der Datei und G
Gruppen sind folglich mindestens N/G Speicherplätze
im Hilfsspeicher erforderlich. Durch Überhöhung der Speicherkapazität lassen sich auch Streuungen bezüglich
der Anzahl der Daten in den einzelnen Gruppen auffangen. Schwankt dagegen die Zahl der Daten je
Gruppe stärker, so ist es vorteilhaft, wenn die Speicherkapazität des Hilfsspeichers nach Bedarf
vergrößerbar ist, damit Überfüllungen nicht zur Blockierung des gesamten Sortiervorganges führen
können. Die Vergrößerung der Speicherkapazität des Hilfsspeichers ist in einfacher Weise dann möglich,
wenn für den Hilfsspeicher Speichereinheiten des Basisspeichers verwendet werden. Die Vergrößerung
der Speicherkapazität des Hilfsspeichers über die einer Speichereinheit des Basisspeichers hinaus erfordert
jedoch eine Endsortierung über mehrere Speichereinheiten und damit mehr Zeitaufwand. Die im Hilfsspeicher
aufgesammelten Daten können jedoch unmittelbar nach Durchsuchen jeder Speichereinheit markiert
werden, und zwar gleichzeitig.
Die Überfüllung des Hilfsspeichers während eines Suchlaufes durch alle Speichereinheiten des Basisspeichers
und damit eine Blockierung des Sortiervorganges kann jedoch auch in anderer Weise vorteilhaft
umgangen werden, wenn gemäß einer anderen Variante des Verfahrens gemäß der Erfindung die Speicherkapazität
des Hilfsspeichers fest vorgegeben ist. Bei Überfüllung des Hilfsspeichers das Suchargument
erweitert wird und alle Daten im Hilfsspeicher gelöscht werden, die dem erweiterten Suchargument nicht mehr
entsprechen, und wenn der Suchvorgang im Basisspeicher mit dem erweiterten Suchvorgang fortgesetzt wird,
gegebenenfalls mit weiteren Erweiterungen des Suchargumentes bei weiteren Überfüllungen des Hilfsspeichers,
bis alle in Frage kommenden Daten endgültig aussortiert sind. Die nachträgliche Erweiterung des
Suchargumentes hat dabei die gleiche Wirkung, als ob dieses erweiterte Suchargument bereits vom Beginn des
Suchlaufes an bestanden hätte.
Eine zweckmäßige Ergänzung dieses Verfahrens besteht darin, daß zu Beginn eines Suchvorganges das
vorgegebene Suchargument durch Maskenabdeckung auf ein übergeordnetes, mehrere mögliche Gruppen von
Daten erfassendes Suchargument reduziert wird und daß bei Gefahr des Überlaufs im Hilsspeicher die
Maskenabdeckung gegebenenfalls schrittweise wieder zurückgenommen wird und nicht zugehörige aufgesammelte
Daten im Hilfsspeicher gelöscht werden. Auf diese Weise läßt sich vermeiden, daß während eines
Suchlaufes der Hilfsspeicher fast oder ganz leer bleibt. Die Reduzierung des Suchargumentes über die Maske
führt vielmehr zu einer anfänglich stärkeren Füllung des Hilfsspeichers, gegebenenfalls auch zu einer Überfüllung,
die dann durch eine schrittweise erfolgende Änderung der Maske wieder abgebaut werden muß.
Da bei der Übernahme der Daten in den Hilfsspeicher mit fester Speicherkapazität noch nicht abzusehen ist,
ob die Daten bis zur Endsortierung im Hilfsspeicher verbleiben, kann hierbei erst am FnHp ρίηρς ipHpn
, ■- ä.
Suchlaufes durch den Basisspeicher eine Markierung der aussortierten Daten erfolgen. Dies geschieht
zweckmäßig in der Weise, daß jeweils nach Durchsuchen aller Speichereinheiten des Basisspeichers alle
Daten im Basisspeicher anhand des jeweils zuletzt gültigen Suchargumentes erneut durchsucht und die
durch einen Treffer der assoziativen Oberfläche gekennzeichneten Daten im Basisspeicher als aussortiert
markiert werden. Auch in diesem Falle können alle zu markierenden Daten einer Speichereinheit gleichzeitig
markiert werden.
Zweckmäßig entspricht die Speicherkapazität des Hilfsspeichers der einer Speichereinheit des Basisspeichers,
gleichgültig, ob der Hilfsspeicher selbst Bestandteil des Basisspeichers ist oder nicht, da dann auch die
Markierung der aussortierten Daten einfacher durchführbar ist.
Das jeweilige Such- bzw. Sortierargument wird zweckmäßig von einem Sortierbitmuster-Generator
geliefert, der abhängig vom jeweiligen Such- bzw. Sortierergebnis steuerbar ist.
Die Anordnung zur Durchführung der Verfahren gemäß der Erfindung ist gekennzeichnet durch eine mit
der Trefferauswertesteuerung der assoziativen Oberfläche des Hybrid-Assoziativspeichers gekoppelte Steuereinrichtung
zur Übertragung der durch Treffer gekennzeichneten Daten in den Hilfsspeicher, eine mit der
Auswahlsteuerung für die Speichereinheiten im Basisspeicher gekoppelte Überwachungseinrichtung zur
Einleitung des Endsortiervorganges für die im Hilfsspeicher gesammelten Daten und eine Einrichtung zur
Markierung der jeweils endgültig aussortierten Daten in den einzelnen Speichereinheiten des Basisspeichers.
Eine zusätzlich vorgesehene Einrichtung zur Überwachung des Füllungszustandes des Hilfsspeichers ermöglicht
die Erweiterung der Speicherkapazität des Hilfsspeichers oder bei der anderen Verfahrensvarianten
die Änderung des Suchargumentes für eine Teilleerung des Hilfsspeichers bei Überlauf. Eine für den
letzteren Fall erweiterte Anordnung ist gekennzeichnet durch eine mit der Einrichtung zur Überwachung des
Füllungszustandes des Hilfsspeichers und mit der Einrichtung zur Bereitstellung des Suchargumentes
gekoppelte Einrichtung zur Erweiterung des Suchargumentes bei Überschreiten der Speicherkapazität des
Hilfsspeichers und durch mit dem Hilfsspeicher gekoppelte Einrichtungen zur Löschung der Daten, die
dem neuen Suchargument nicht mehr entsprechen, und zur Kennzeichnung freier Speicherplätze im Hilfsspeicher.
Weitere Einzelheiten der Erfindung seien nachfolgend anhand der Zeichnungen näher erläutert. Im
einzelnen zeigt
F i g. 1 das Blockschaltbild eines Hybrid-Assoziativspeichers mit den Zusatzeinrichtungen zur Durchführung
der Verfahren gemäß der Erfindung in schematischer Darstellung,
F i g. 2 die schematische Darstellung des Suchablaufes nach dem einen Verfahren gemäß der Erfindung,
F i g. 3 das Änderungsschema für das Sortierbitmuster
beim Suchen und Sortieren,
Fi g. 4 eine Tabelle für den Ablauf der Endsortierung
bei Verwendung des Sortieralgorithmus nach F i g. 3 in Anlehnung an das Beispiel von F i g. 2,
Fig.5A und 5B die schematische Darstellung des
Such- und Sortierablaufes bei Verwendung eines Hilfsspeichers mit fester Speicherkapazität gemäß dem
zweiten Verfahren der Erfindung und
Fig. 6 ein ausführlicheres Blockschaltbild in Anlehnung
an das von Fig. 1.
Fig. 1 zeigt den schematischen Aufbau eines an sich bekannten Hybrid-Assoziativspeichers, bestehend aus
einem Basisspeicher B-SP, einer als Oberflächenpuffer OP wirkenden Speichereinheit und einer Assoziationsrnatrix
AM, die mit einer Einrichtung SBM-G zur Bereitstellung des jeweiligen Suchargumentes und einer
Maske M sowie einer Trefferauswertesteuerung T-ST
ίο gekoppelt ist. Weiterhin sind in Auswirkung der
Erfindung die Steuereinrichtung S-STzw Übertragung
der durch Treffer gekennzeichneten Daten in den Hilfsspeichern, die Einrichtung M-ST zur Markierung
der jeweils endgültig aussortierten Daten in den einzelnen Speichereinheiten des Basisspeichers B-SP.
eine Einrichtung HSP-ST zur Löschung von Daten im Hilfsspeicher H-SP und zur Kennzeichnung freier
Speicherplätze sowie eine Einrichtung FÜW zur Überwachung des Füllungszustandes des Hilfsspeichers
H-SP gezeigt. Zusätzlich kann ein Eingabepufferspeicher P-SP, wie gestrichelt angedeutet, vorgesehen sein.
Die Assoziationsmatrix AM besteht in an sich bekannter Weise aus Gruppen zeilenweise angeordneter
Vergleicher für jeweils ein Bit, die zeilenweise durch eine Zeilenauswahlschaltung gelesen werden können
bzw. spaltenweise über die gesamte Zeilenbreite beliebig maskierbar sind. Dabei wird bei jeder
Ansteuerung ein durch die Maske M freigegebenes Bit des vom Generator SBM-G bereitgestellten Suchargumentes
mit einem Datenbit aus dem Basisspeicher verglichen. Stimmen alle innerhalb einer Zeile miteinander
verglichenen Bits überein, so wird über die Trefferauswertesteuerung T-ST in an sich bekannter
Weise ein Treffer gemeldet und die zugehörige Speicherzelle ausgelesen. Der Aufbau derartiger Assoziationsmatrizen
ist allgemein bekannt. In der Zeichnung wurde daher auf die Darstellung der zusätzlich
benötigten Bauteile für die Zeilenauswahl anhand einer Zeilenadresse Z-AD und für die Ausgabe der Daten
einer Zeile über den Ausgang AUS verzichtet und stattdessen Pfeile eingesetzt.
Die Assoziationsmatrix AM besteht beispielsweise aus 32 Zeilen mit jeweils 8 Byte zu je 8 Bit, so daß
insgesamt 256 Byte oder 2048 Bit assoziativ erfaßt
4S werden. Diese Bit müssen alle gleichzeitig der
AssoziationsmatriC/4Aiaus dem Basisspeicher B-SPzur
Verfügung gestellt werden.
Mit der Assoziationsmatrix AM ist eine entsprechend organisierte Speichereinheit als Oberflächenpuffer für
entsprechend viele Datenbit gekoppelt, der zusammen mit der Assoziationsmatrix AM wie ein konventioneller
Assoziativspeicher arbeitet, allerdings mit dem Unterschied, daß ein paralleler Zugang zu allen einzelnen
Speicherzeilen vorgesehen ist. Assoziationsmatrix AM und Oberflächenpuffer OM lassen sich integriert durch
eine Reihe gleichartiger LSI-Bausteine, beispielsweise für jeweils 16 assoziative Bitstellen, realisieren.
Neben der assoziativen Oberfläche, bestehend aus der Assoziationsmatrix AMund dem Oberflächenpuffer
OP, ist der Basisspeicher B-SP wesentlicher Bestandteil des Hybrid-Assoziativspeichers. Dieser Basisspeicher
gliedert sich in eine Vielzahl von in Etagen übereinander geschichteten Speichereinheiten SP-E1 bis SP-En, die
jeweils analog dem Oberflächenpuffer OP der assoziativen Oberfläche organisiert sind, d. h. diese Speichereinheiten
weisen bei gleicher matrixförmiger Anordnung je Bit einen Speicherabschnitt auf, so daß jeweils ein
Speicherabschnitt in jeder Speichereinheit SP-E ...
miteinander korrespondiert und alle diese miteinander korrespondierenden Speicherabschnitte zum selben
Assoziationsfeld der assoziativen Oberfläche durchschaltbar sind.
Zusätzlich zu den Speichereinheiten SP-E1 bis SP-En
ist im Basisspeicher B-SP in Auswirkung der Erfindung
eine zusätzliche Speichereinheit als Hilfsspeicher H-SP vorgesehen.
Den vielfältigen Betriebsbedingungen des Assoziativspeichers entsprechend sind mit dem Basisspeicher t0
ß-SPAuswahlschaltmittel zur Auswahl jeweils einer der
Speichereinheiten SP-E..., für die einzelnen Zeilen und auch für die einzelnen Spalten innerhalb jeder
Speichereinheit SP-E ... und des Hilfsspeichers H-SP vorgesehen. Derartige Auswahlschaltmittel in Verbindung
mit dreidimensionalen Speichern sind allgemein bekannt und daher nicht gesondert dargestellt. Stattdessen
sind die dadurch gegebenen Auswahlmöglichkeiten lediglich durch Adressenpfeile angedeutet, nämlich für
die Speichereinheiten die Auswahl durch die Adresse E-AD, für die Zeilen durch die Adressse Z-AD und für
die Spalten durch die Adresse S-AD.
Anstelle eines einzigen dreidimensionalen Speicherblockes als Basisspeicher B-SP können entsprechend
einem anderen Erfindungsvorschlag (deutsche Patentenmeldung P 30 09 317.5-53) mehrere dreidimensionale
Speicherblöcke als Teilspeicher des Basisspeichers vorgesehen werden, die dann zyklisch umlaufend über
eine gesonderte Durchschalteeinrichtung mit der gemeinsamen assoziativen Oberfläche verbunden werden.
Bevor auf c.e Arbeitsweise der in F i g. 1 dargestellten
Anordnung zum Sortieren von im Basisspeicher B-SP gespeicherten Daten näher eingegangen wird, sei
zunächst das den Sortierverfahren gemäß der Erfindung zugrundeliegende Prinzip näher erläutert. F i g. 2 zeigt
zu diesem Zweck eine Reihe von Dateneinträgen im Basisspeicher B-SP, die wahllos auf die einzelnen
Speichereinheiten SP-E1 bis SP-En verteilt sind. Diese
Daten gehören alle zur selben Gruppe mit dem übereinstimmenden assoziativen Bestandteil UVW und
einem durch die Buchstaben A bis D gekennzeichneten Zeichenbestandteil, der für die Sortierung innerhalb der
Gruppe maßgebend ist. Oberhalb der gezeigten Datenliste ist symbolisch der Sortierbitmustergenerator
SBM-G und die Maske M angedeutet. Von dem im Sortierbitmustergenerator SBM-C jeweils zur Verfügung
stehenden Suchargument sind für den Sortiervorgang nur Teile erforderlich, die mit SBM1 und SSM 2
bezeichnet sind. Das Muster SBMX kennzeichnet die
Gruppe von Daten aus einer Vielzahl von Gruppen, die zu sortieren sind. Im vorliegenden Falle ist im
Musterfeld SBMi das Gruppenkennzeichen UVW
eingestellt und die Maske gibt für den assoziativen Suchlauf durch die einzelnen Speichereinheiten SP-E...
des Basisspeichers B-SP lediglich diesen Ausschnitt des Suchargumentes frei. Mit Beginn des Suchlaufes werden
die einzelnen Speichereinheiten SP-E ... zyklisch nacheinander zur assoziativen Oberfläche durchgeschaltet
und die gespeicherten Daten anhand des Sucherargumentes überprüft Meldet die Trefferauswertesteuerung
einen Treffer, so wird das durch den Treffer gekennzeichnete Wort in den ganz unten
liegenden Hilfsspeicher H-SP in an sich bekannter Weise übertragen, was durch die Flußpfeile auf der
rechten Seite der Datentabelle angedeutet ist. Sobald alle Speichereinheiten SP-E1 bis SP-En überprüft sind,
befinden sich alle Daten der überprüften Gruppe im Hilfsspeicher H-SP, und zwar in der Reihenfolge, mit
der sie aus den Speichereinheiten des Basisspeichers übernommen worden sind. Die Daten im Hilfsspeicher
H-SP sind daher in der Regel noch unsortiert und müssen in einem zweiten Arbeitslauf noch sortiert
werden. Zu diesem Zweck wird jetzt die den Hilfsspeicher H-SP bildende Speichereinheit mit der
assoziativen Oberfläche verbunden und anhand der Maske M das Musterfeld SBM 2 im Suchargument
wirksam geschaltet und der Suchbitmuster-Generator stellt in diesem Musterfeld entsprechend der vorzunehmenden
Sortierreihenfolge die einzelnen Suchargumente der Reihe nach zur Verfügung, beim gewählten
Ausführungsbeispiel in alphabetischer Reihenfolge beginnend mit dem Suchargument A, so daß bei der
ersten Überprüfung der an zweiter Stelle im Hilfsspeicher H-SP liegende Eintrag als erster ausgegeben wird.
Danach wird das zweite Suchargument B eingestellt und beim zweiten Prüfvorgang der Eintrag der ersten Zeile
des Hilfsspeichers H-SPausgelesen usw.
Allgemein werden die einzelnen Sortierbitmuster SBM in Form von mehrstelligen Binärzeichen zur
Verfügung gestellt, deren Stellenzahl abhängig vom Sortierergebnis durch die Maske M variierbar und
deren Werte durch einen Zähler fortschreibbar sind. Ein entsprechend arbeitendes Sortierverfahren ist beispielsweise
in der bereits genannten DE-PS 23 42 660 ausführlich beschrieben. Fig.3 zeigt den zugehörigen
Sortieralgorithmus in Form einer Tabelle, wobei die Änderung des jeweils vorliegenden Sortierbitmusters
SBM vor Einleiten der jeweils nächsten Prüfung abhängig von der Art der Treffer T und der Art des
letzten signifikanten Bits LSB des Sortierbitmusters ist. Insgesamt sind zwei Trefferfälle zu unterscheiden,
nämlich mehr als ein Treffer und kein bzw. ein Treffer. Für den Fall, daß mehrere Treffer gleichzeitig vorliegen,
ist das letzte signifikante Bit LSB ohne Bedeutung. In jedem Falle wird das zuletzt maßgebende Suchbitmuster
SBM durch öffnen der Maske um eine weitere Bitstelle durch Anhängen einer 0 beim Vorwärtssortieren
oder durch Anhängen einer 1 beim Rückv/ärtssortieren erweitert. Bei den übrigen Trefferfällen, kein
Treffer oder ein Treffer, ist zusätzlich das letzte signifikante Bit LSB maßgebend. Ist dies eine 0, so wird
diese beim Vorwärtssortieren durch Invertieren zu einer 1 oder beim Rückwärtssortieren durch Einengen
der Maske einfach gestrichen. Ist das letzte signifikante Bit LSB dagegen eine I1 so wird diese beim
Vorwärtssortieren gestrichen oder aber beim Rückwärtssortieren durch Invertieren zu einer 0.
Fig.4 zeigt den Ablauf eines entsprechenden Sortiervorganges für drei Daten A, B und C in Form
einer Tabelle mit den Spalten SBM 2 für das jeweils wirksame Sortierbitmuster, das letzte signifikante Bit
LSB, die Art der Treffer T, die vorzunehmende Änderung des Sortierbitmusters SBM und schließlich
die Ausgabe der Daten in sortierter Reihenfolge.
Zu Beginn eines Sortiervorganges wird der Sortierbitmusterzähler
in der Regel auf 0... 0 gestellt und alle Bitstellen bis auf die höchstwertigste durch die Maske
abgedeckt, um so möglichst schnell zu Treffern zu kommen. Bei den als Beispiel gewählten, zu sortierenden
drei Daten A, B und C führt ein derartiges Suchargument zu einer Mehrfachtrefferanzeige. Das
Sortierbitmuster ist daher durch Anhängen einer 0 zu erweitern. Bei der nächsten Überprüfung wird gleichfalls
ein Mehrfachtreffer angezeigt und durch öffnen der Maske eine weitere 0 angehängt Die dritte Prüfung
zeigt einen einzigen Treffer an, und zwar für den Eintrag A, der ausgegeben werden kann. Nachfolgend wird die 0
an letzter Stelle invertiert und damit in eine 1 abgeändert, so daß bei der nächsten Prüfung wiederum
ein Treffer erzielt wird und diesmal der Eintrag B ausgegeben werden kann. Da das letzte signifikante Bit
LSS eine 1 war, wird durch Einengen der Maske eine Stelle wieder gestrichen. Die darauffolgende Prüfung
ergibt keinen Treffer, und das letzte signifikante Bit wird in eine 1 abgewandelt. Da auch die nachfolgende
Überprüfung keinen Treffer ergibt, wird wiederum durch Einengen der Maske das letzte wirksame Bit
gestrichen, so daß das wirksame Sortierbitmuster SBM2 aus einer einzigen 0 an der höchsten Stelle
besteht. Auch dabei führt die Prüfung zu keinem Treffer, so daß diese 0 zu einer i invertiert wird, was dann zu
einem Treffer für den letzten Eintrag Cführt.
Das anhand von F i g. 3 und F i g. 4 beschriebene Sortierverfahren ist in analoger Weise auch auf das
Sortierbitmuster SBM1 für die einzelnen Suchläufe zur Bildung der einzelnen Gruppen von zusammensortierfähigen
Daten anzuwenden. Fig. 5A und 5B zeigen in schematischer Darstellung den vollständigen Ablauf des
kombinierten Such- und Sortiervorganges bei Verwendung eines HilfsSpeichers mit fester Speicherkapazität.
In beiden Teilfiguren ist in der linken Spalte die Belegung von vier Speichereinheiten SP-EX bis SP-E 4
mit jeweils vier Einträgen dargestellt, die zusammen eine Datei bilden, die entsprechend ihren Wertigkeiten
sortiert werden sollen. Die Einträge zeigen jeweils die Form von Binärwerten, deren Äquivalente im dekadischen
Zahlensystem jeweils rechts daneben angegeben sind. Oberhalb der Einträge ist die Maske M für die
Assoziationsmatrix mit dem jeweils freigegebenen Suchbitmusterfeld SSMl dargestellt. Rechts im An-Schluß
der sich auf die einzelnen Speichereinheiten SP-Et bis SP-EA beziehenden Spalten folgen den
einzelnen Suchläufen SL1 bis SL 7 entsprechende Spalten, die im Kopf jeweils das für den Suchlauf gültige
Sortierbitmuster und die Belegung des Hilfsspeichers H-SP bei der Überprüfung der einzelnen Speichereinheiten
SP-E1 bis SP-E 4 zeigen.
Der erste Suchlauf SL 1 beginnt mit dem Sortierbitmuster 00. Der Speicher H-SP ist zunächst leer. Bei der
Überprüfung der Einträge in der Speichereinheit SP-E1
wird kein Treffer festgestellt, der Speicher bleibt also leer. Analoges gilt für die Überprüfung der Speichereinheiten
SP-E 2 und SP-E 3. Lediglich bei der Überprüfung der Speichereinheit SP-E4 ergeben sich drei
Treffer bezüglich der Zeilen 2 bis 4, die in den so Hilfsspeicher H-SP übernommen werden. Da nach
überprüfen aller vier Speichereinheiieil ein Suchlauf
abgeschlossen ist, können die im Hilfsspeicher H-SP während des Suchlaufes gesammelten Daten sortiert
und ausgegeben werden, was in der untersten Zeile A US durch Angabe der Äquivalente im dekadischen Zahlensystem
angedeutet ist
Für den zweiten Suchlauf SL 2 wird das Sortierbitmuster SBMi von 00 auf 01 zur Kennzeichnung einer
weiteren Gruppe von zusammen sortierfähigen Daten abgewandelt. Bei der darauffolgenden Überprüfung der
Speichereinheit SPEi ergeben sich dann anhand des neuen Suchargumentes drei Treffer, so daß die
zugehörigen Daten in den Hilfsspeicher H-SPübernommen
werden, während die nachfolgende Überprüfung der Speichereinheit SP-E 2 keinen weiteren Eintrag
liefert Erst die Überprüfung der Speichereinheit SP-E3
führt zu weiteren Einträgen im Hilfsspeicher H-SP.
Dabei wird festgestellt, daß nach Übernahme des ersten Eintrags aus dieser Speichereinheit der Hilfsspeicher
H-SP gefüllt ist, und daher keine weiteren Einträge mehr übernommen werden können, obwohl noch ein
weiterer Treffer angezeigt wird.
Damit nun der gesamte Sortiervorgang nicht blockiert wird, wird entsprechend dem vorangehend
beschriebenen Such- und Sortieralgorithmus das Suchbitmuster SBM1 um eine Stelle durch Anhängen einer 0
erweitert, was links vom Hilfsspeicher H-SP in Höhe der Zeile der Speichereinheit SP-E3 angedeutet ist, die
nicht mehr in den Hilfsspeicher übernommen werden konnte. Anschließend wird nunmehr der Hilfsspeicher
anhand des neuen Suchargumentes überprüft und alle dem neuen Suchargument nicht mehr entsprechenden
Daten gelöscht, die durch L arn rechten Rand des Hilfsspeichers H-SP gekennzeichnet sind. Nach der
Überprüfung des Hilfsspeichers bleiben von den vorhergehenden vier Einträgen lediglich zwei Einträge
übrig, so daß nunmehr Platz für weitere Einträge besteht. Das zwischenzeitliche Überprüfen des Hilfsspeichers
nach dessen Füllung mit dem neuen Suchargument hat die gleiche Wirkung, als wenn dieses
Suchargument bereits zu Beginn des Suchlaufes wirksam gewesen wäre.
Danach wird die Suche mit der Speicherzeile fortgesetzt, die zuvor wegen Füllung des Hilfsspeichers
nicht mehr in den Hilfsspeicher übernommen werden konnte. Im vorliegenden Falle ist das die Zeile 4 der
Speichereinheit SP-E 3. Da der entsprechende Eintrag dem neuen Suchargument entspricht, wird dieser
Eintrag nunmehr an dritter Stelle in den Hilfsspeicher H-SPübernommen. Weitere Einträge erfolgen während
des Restes des Suchlaufes SL 2 nicht mehr, so daß am Ende die Einträge entsprechend den Werten 19,21 und
13 sortiert ausgegeben werden können.
Beim nächstfolgenden Suchlauf SL 3 wird das zuletzt gültige Suchargument durch Invertieren des letzten
signifikanten Bits zu 011 abgeändert. Der damit durchgeführte Suchlauf führt bei der Überprüfung der
Speichereinheit SP-Ei zu einem ersten Eintrag im Hilfsspeicher H-SP, bei der Überprüfung der Speichereinheit
SP-E 3 zu einem zweiten Eintrag und bei der Überprüfung der Speichereinheit SP-E4 zu einem
dritten Eintrag, so daß die aufgesammelten Einträge entsprechend den Werten 26, 27 und 28 endgültig
aussortiert werden können.
Insgesamt sind somit nach drei Suchläufen neun der insgesamt sechzehn die Datei bildenden Einträge
sortiert ausgespeichert worden. Zusätzlich ist zu bemerken, daß jeder endgültig aussortierte Eintrag im
Basisspeicher als bereits aussortiert markiert wird,
damit bei einem eingeengten Suchargument bereits aussortierte Einträge nicht nochmals erfaßt werden.
Diese Markierung ist links von den einzelnen Einträgen in den einzelnen Speichereinheiten SP-Ei bis SP-E 4
durch ein Kreuz im Kreis angedeutet, wobei gleichzeitig der Suchlauf angegeben ist, bei dem die Aussortierung
erfolgte. Nach Abschluß des dritten Suchlaufes SL 3 sind also von der Speichereinheit SP-Ei der vierte
Eintrag, von der Speichsreinheit SP-E 2 alle Einträge und von der Speichereinheit SP-E3 die ersten beiden
Einträge noch nicht aussortiert
F i g. 5B zeigt die Fortsetzung des Suchvorganges mit dem Suchlauf SL 4 anhand des Suchbitmusters 01 und
mit dem Suchlauf SL 5 anhand des Suchbitmusters 0, die jedoch ohne Ergebnis bleiben. Der Suchlauf SL 6 startet
mit dem Suchbitmuster 1. Dies führt bei der
Überpfüfung der Speichereinheit SP-El zu einem
Eintrag und bei der Überprüfung der Speichereinheit SP-E2 zu drei weiteren Einträgen, so daß der
Hilfsspeicher H-SP wiederum gefüllt ist. Da gleichzeitig
noch ein weiterer Eintrag, nämlich aus Zeile 4 der Speichereinheit SP-E 2, zu übernehmen ist, muß im
Hilfsspeicher H-SP analog dem Vorgehen beim Suchlauf SL 2 durch Erweiterung des gültigen Suchbitmusters
auf die Kombination 10 erneut Platz geschaffen werden. In diesem Fall sind davon die beiden letzten
Einträge im Hilfsspeicher H-SP betroffen, was durch L
am rechten Rand gekennzeichnet ist.
Anschließend wird mit dem neuen Suchargument die letzte Zeile der Speichereinheit SP-E 2 überprüft, die
vorangehend nicht mehr in den Hüfsspeicher H-SP
übernommen werden konnte. Da dieser Eintrag ebenfalls dem neuen Suchargument entspricht, wird er
nunmehr als dritter Eintrag in den Hilfsspeicher H-SP übernommen und der Suchlauf mit der Überprüfung der
Speichereinheiten SP-E 3 und SP-E 4 fortgesetzt. Da hierbei keine Treffer mehr erzielt werden, werden die
gesammelten drei Einträge endgültig aussortiert.
Der nächste Suchlauf SL 7 wird mit dem in der Reihenfolge nächstfolgenden Suchargument 11 durchgeführt.
Dabei werden lediglich bei der Überprüfung der Speichereinheit SP-E 2 zwei Einträge und bei der
Überprüfung der Speichereinheit SP-E3 zwei Einträge gefunden. Der Hilfsspeicher H-SP ist also wiederum
gefüllt. Im vorliegenden Falle bleibt dies jedoch ohne Auswirkung, da von der Speichereinheit SP-E3 oder
der nachfolgenden Speichereinheit SP-E 4 kein weiterer Eintrag zu übernehmen ist. Alle vier Einträge verbleiben
daher im Hilfsspeicher H-SP und können am Ende des Suchlaufes sortiert ausgegeben werden. Der Such- und
Sortiervorgang ist damit abgeschlossen, da aufgrund der Gesetzmäßigkeit für die Bildung der Suchargumente für
die einzelnen Suchiäufe weitere Einträge nicht mehr vorhanden sein können.
Das vorangehend beschriebene Beispiel zeigt zugleich, wie durch Maskenabdeckung des Suchargumentes
zu Beginn eines Suchvorganges und durch die damit verbundene Reduzierung auf ein mehrere mögliche
Gruppen von Daten erfassendes Suchargument zunächst eine stärkere Füllung des HilfsSpeichers H-SP
und gegebenenfalls eine Überfüllung provoziert wird. Wie nämlich der Ablauf des gesamten Suchvorganges
gezeigt hat, ist nämlich ein insgesamt dreistelliges Suchargument erforderlich, um den Suchvorgang
durchführen zu können. Trotzdem wird das dreistellige Suchargument zunächst auf ein zweistelliges reduziert,
um so eine höhere Trefferausbeute zu ermöglichen, was dann im zweiten Suchlauf SL 2 zur Überfüllung des
HilfsSpeichers und damit zur Rücknahme der anfänglichen Maskenabdeckung führt
Abschließend sei anhand von F i g. 6 die Arbeitsweise eines Hybrid-Assoziativspeichers gemäß F i g. 1 bei der
Durchführung des Sortierverfahrens gemäß der Erfindung und insbesondere die Arbeitsweise der zusätzlich
benötigten Einrichtungen näher erläutert Abweichend von der F i g. 1 ist bei F i g. 6 eine zweidimensionale
Darstellung bei Beibehaltung gleicher Bezugszeichen für übereinstimmende Baueinheiten gewählt Der obere
Teil der Figur zeigt wiederum die Assoziationsmatrix AM mit der Auswahlschaltung AM-AW für die
einzelnen Zeilen der Matrix anhand einer Adresse Z-AD, den Suchbitmuster-Generator SBM-G für die
Bereitstellung der in den einzelnen Phasen benötigten Suchargumente in Form der Suchbitmuster SBM 1 für
die einzelnen Suchiäufe und SBM2 für die Aussortierung der während der einzelnen Suchläufe im
Hilfsspeicher H-SP aufgesammelten Daten. Die Bereitstellung der jeweils benötigten Suchargumente erfolgt
durch die Maske M und die Auswertung der bei den einzelnen Assoziationsvorgängen erzielten Treffer
durch die mit den einzelnen Zeilen der Assoziationsmatrix AM verbundene Trefferauswertesteuerung T-ST.
ίο Diese Trefferauswertesteuerung gliedert sich in bekannter
Weise in drei Teile, nämlich ein Register T-REG für die Zwischenspeicherung der von der Assoziationsmatrix gemeldeten Treffer, in eine Trefferauswerteschaltung
T-AW, die in an sich bekannter Weise
!5 überwacht, ob gleichzeitig mehrere Treffer, nur ein
Treffer oder gar kein Treffer erzielt worden ist, sowie in eine Prioritätssteuerung mit Codierer DEC, um die
angezeigten Treffer der Reihe nach in die zugehörige Zeilenadresse Z-AD übersetzen zu können. Diese
Zeilenadresse ermöglicht es, den Inhalt einer durch einen Treffer der Assoziationsmatrix AM gekennzeichneten
Zeile über die Zeilenauswahlsteuerung AM-A W anzusteuern und über den Ausgang AUS auszugeben,
was beispielsweise bei der Endsortierung der durchzuführenden Sortierverfahren gemäß der Erfindung
erforderlich ist.
Unterhalb der Assoziationsmatrix AM ist wiederum der Basisspeicher B-SP dargestellt, der aus den
Speichereinheiten SP-Ei bis SP-En und einer weiteren
Speichereinheit, die den Hilfsspeicher H-SP bildet, besteht. Die Auswahl von einzelnen Zeilen oder Spalten
innerhalb der einzelnen Speichereinheiten erfolgt durch die Speicherauswahlsteuerung SP-A W, die sich in
bekannter Weise in eine gemeinsame Zeilenauswahlsteuerung Z-AW für die einzelnen Zeilen innerhalb der
einzelnen Speichereinheiten, eine Spaltenauswahlsteuerung S-A W für die einzelnen Spalten in den einzelnen
Speichereinheiten und in eine Auswahlsteuerung E-A W für die einzelnen Speichereinheiten des Basisspeichers
B-SP gliedert, wobei die Zusammenarbeit dieser drei Auswahleinheiten durch eine übergeordnete Steuerung
A W-ST koordiniert wird. Mit dieser Speicherauswahlsteuerung SP-A W ist eine Überwachungseinrichtung
DÜWgekoppelt, die jeweils das Ende eines Suchdurchlaufes
durch den gesamten Basisspeicher B-SP anzeigt. Diese Überwachungseinrichtung kann in einfacher
Weise aus einer Kippstufe bestehen, die z. B. beim Erreichen der Endstellung durch die Auswahleinrichtung
E-A Umgesetzt wird.
Die dem Hilfsspeicher H-SP zugeordnete Steuerung
HSP-STiZl in ähnlicher Weise wie die Trcffcrausweriesteuerung
7~-57" ausgebildet und setzt sich zusammen
aus einem Register B-REG, das je Zeile des Hilfsspeichers anzeigt, ob diese Zeile belegt oder frei ist, aus der
Überwachungsschaltung FÜW, die anzeigt ob alle Zeilen des Hilfsspeichers H-SP belegt sind, und aus
einer Prioritätssteuerung mit Codierer DEC zur Ableitung der Zeilenadresse Z-AD derjenigen Zeile im
Hilfsspeicher H-SP, die als nächste mit einem Eintrag zu belegen ist. Im Gegensatz zu der entsprechenden
Einrichtung der Trefferauswertesteuerung T-STbesteht
bei der Steuerung HSP-ST eine Rückkopplung zwischen der Prioritätssteuerung und dem Belegungsregister
B-REG, damit bei jeder Eingabe in den Hilfsspeieher H-SP auch das zugehörige Registerbit gesetzt
werden kann. Andererseits ist die Einrichtung FÜW im Gegensatz zur Einrichtung T-A W für die Trefferauswertung
wesentlich einfacher aufgebaut, da lediglich zu
überprüfen ist, ob alle Registerbit gesetzt sind, was mit
einem einfachen UND-Glied erfolgen kann.
Die weiterhin gezeigte Steuereinrichtung S-ST giiedert sich ebenfalls in mehrere Einrichtungen, die von
einer gemeinsamen Steuerung ST koordiniert werden. Diese Steuerung ST wertet zum einen die von der
Trefferauswertung T-A W mitgeteilten Signale über die Art der Treffer aus und veranlaßt davon abhängig über
die Steuerung SBM-STdie Abänderung der Suchbitmuster
SBM durch den Generator SBM-C und/oder die Änderung der Maske Mentsprechend dem zugrundegelegten
Such- bzw. Sortieralgorithmus sowie die Umschaltung auf die jeweils nächstfolgende Speichereinheit
im Basisspeicher, falls kein Treffer vorliegt Zum anderen veranlaßt sie die Umsteuerung vom Suchdurchlauf
auf Endsortieren abhängig vom Signal der Überwachungseinrichtung DÜW und umgekehrt vom
Sortieren auf den nächsten Suchdurchlauf, wenn alle im Hilfsspeicher //^/"angesammelten Einträge aussortiert
und ausgegeben sind, was ebenso von der Trefferauswertung T-A W mitgeteilt werden kann. Über die
Teilsteuerung A US-STv/erden während des Sortiervorganges
bei Anzeige eines Einzeltreffers die zugehörigen Zeilenadressen Z-AD von der Prioritäts- und Codiersteuerung
DEC der Trefferauswertesteuerung T-ST abgeholt und an die Zeilenauswahlschaltung AM-AW
zum Auslesen des zugehörigen Zeileneintrags weitergeleitet. Des weiteren wird über die Teilsteuerung
AUS-STdie Zeile über die Auswahlschaltung AM-AW
gekennzeichnet, mit der nach einer Unterbrechung eines Suchlaufes infolge Überfüllung des Hilfsspeichers
der Suchlauf mit erweitertem Suchargument fortgesetzt wird. Eng mit der gemeinsamen Steuerung ST der
Steuereinrichtung S-ST ist die Markiersteuerung M-ST gekoppelt, die bei Füllung des Hilfsspeichers bzw. zum
Markieren bereits aussortierter Einträge in den einzelnen Speichereinheiten des Basisspeichers wirksam
geschaltet wird. Bei Vorliegen eines Füllungssignals von der Einrichtung FÜW prüft die Steuerung ST
zunächst, ob noch weitere Treffer vorliegen, die einen Eintrag in den Hilfsspeicher nach sich ziehen würden. Ist
dies der Fall, wird der Suchlauf gestoppt und über die Steuerung SBM-ST eine Änderung des Sucharguments
herbeigeführt. Außerdem veranlaßt die Markiersteuerung M-STnach Überprüfen der Einträge im Hilfsspei- *5
eher H-SP anhand des neu eingestellten Suchargumentes die Übertragung der im Register T-REG gespeicherten
Treffer in das Register B-REG, so daß nicht vor.
einem Treffer abgedeckte Zeilen als frei gekennzeichnet werden. Außerdem wird die Markiersteuerung M-ST
nach jedem Such- bzw. Sortierlauf wirksam geschaltet und veranlaßt die Übertragung der im Register T-REG
gespeicherten Treffer als Markierungen in die Spalte SB der jeweils angesteuerten Speichereinheit SP-Ei bis
SP-En, abhängig von einer Mitteilung der Steuerung 57" an die Steuerung A W-ST zur Wirksamschaltung der
entsprechenden Spalte durch die Spaltenauswahlschaltung S-AW.
Die vorangehend beschriebenen zusätzlich benötigten Einrichtungen für die Durchführung des Sortierverfahrens
gemäß der Erfindung können also in einfacher Weise durch Verknüpfung der notwendigen Signale in
Anlehnung an bereits bekannte Lösungen realisiert werden. Das gilt insbesondere für die Trefferauswertung
T-A Wm Verbindung mit der Steuerung SBM-ST, die bereits in der DE-PS 23 42 660 beschrieben ist.
Insgesamt ergibt sich damit folgender Arbeitsablauf: Nach Eingabe eines Suchargumentes in den Generator
SBM-G und der Einstellung der Maske M mit Start der Einrichtung aus der Nullstellung der einzelnen Steuereinrichtungen
heraus wird zunächst die Speichereinheit SP-E1 zur assoziativen Oberfläche AM/OP durchgescheitet
und der gesamte Inhalt dieser Speichereinheit anhand des wirksamen Suchargumentes überprüft
Ergibt sich dabei kein Treffer, so bewirkt die Steuerung Sr anhand der von der Trefferauswertung T-AW
mitgeteilten Aussage über die Speicherauswahlsteuerung SP-A W die Umsteuerung auf die nächstfolgende
Speichereinheit usw.
Sobald die Trefferauswertung T-A W beim Durchsuchen einer der mit der Assoziationsmatrix AM
verbundenen Speichereinheit einen Treffer meldet wird der Suchvorgang durch die Steuereinrichtung 5/
gestoppt und der Speicherauswahleinrichtung SP-A W ein Befehl zur Umschaltung auf den Hilfsspeicher H-SP
durch Änderung der Einstellung der Auswahleinrichtung E-A W gegeben. Gleichzeitig wird die Prioritätsund
Codiereinrichtung DEC der Steuerung HSP-SP angesteuert, damit diese die Zeilenadresse Z-AD für die
Einstellung der nächsten freien Speicherzeile im Hilfsspeicher f/-SPbereitstellt Außerdem wird über die
Teilsteuerung /.US-ST der Sortiersteuerung S-ST von der Prioritäts- und Codiereinrichtung DEC der Trefferauswertesteuerung
T-Srdie Zeilenadresse Z-AD für die erste durch einen Treffer gekennzeichnete Zeile der
Assoziationsmatrix AM abgeholt und der Auswahleinrichtung AM-AW zugeführt, so daß der Inhalt der
ausgewählten Zeile in die bereitgestellte Zeile des Hilfsspeichers H-SP überführt werden kann. Dieses
Spiel wiederholt sich solange, bis alle durch einen Treffer gekennzeichneten Zeilen der Assoziationsmatrix
AM in den Hilfsspeicher übernommen sind. Dabei wird mit jedem Eintrag in den Hilfsspeicher H-SP im
zugehörigen Belegungsregister B-REG die jeweils belegte Zeile als belegt gekennzeichnet.
Unterstellt man, daß die in den einzelnen Speichereinheiten 5P-F1 bis SP-En enthaltenen Daten verschiedener
Dateien annähernd gleichmäßig auf die einzelnen Speichereinheiten verteilt sind und somit eine Überfüllung
des Hilfsspeichers H-SP während eines Suchlaufes nie auftreten und damit den Sortiervorgang blockieren
kann, oder daß der Hilfsspeicher W-SPdurch Zuschalten
weiterer Speichereinheiten des Basisspeichers B-SF nach Bedarf vergrößerbar ist, so wird jeweils nach
Übernahme aller in der assoziativen Matrix AM durch einen Treffer gekennzeichneten Einträgt einer ausgewählten
Speichereinheit in den Hilfsspeicher H-SP die Markierung der jeweils aus der zuletzt angesteuerten
Speichereinheit SP-E ... übernommenen Daten, damit diese bei den nachfolgenden Suchläufen nicht mehr
berücksichtigt werden, sofort vorgenommen. Zu diesem Zweck überwacht die Steuerung ST der Sortiersteuerung
S-ST die Aussage der Prioritäts- und Codiereinrichtung DEC der Trefferauswertesteuerung T-ST in
Verbindung mit der Teilsteuerung AUS-ST und veranlaßt die Speicherauswahleinrichtung SP-A W zur
Einstellung auf die gerade überprüfte Speichereinheit SP-E... durch die Auswahleinrichtung E-A W sowie zur
Auswahl der die Sortiert-Bits aufnehmenden Spalte SE durch die Auswahleinrichtung S-A W. Anschließend
wird durch die Markiersteuerung M-Srdie gleichzeitige
Übertragung der im Trefferregister T-REG registrierten Treffer auf parallelem Wege in die ausgewählte
Spalte der ausgewählten Speichereinheit zur Markierung der ausgeschiedenen Zeileneinträge veranlaßt.
Erst danach wird der Suchlauf mit Umsteuerung auf die
nächstfolgende Speichereinheit durch die Steuereinrichtung Srfortgesetzt
Um das dabei notwendige Umschalten zwischen den einzelnen Speichereinheiten zu vermeiden, kann die
Markierung auch unmittelbar nach Feststellung von Treffern vor Übertragung der durch einen Treffer
gekennzeichneten Einträge in den HilfsSpeicher vorgenommen werden.
Ist dagegen die Speicherkapazität des Hilfsspeichers H-SP begrenzt, da wie beim Ausführungsbeispiel
lediglich eine Speichereinheit des Basisspeichers B-SB als Hilfsspeicher zur Verfügung steht, so kann die
Markierung der aussortierten Daten jeweils erst am Ende eines Suchdurchlaufes vorgenommen werden, da
erst dann abzusehen ist, welche der in den Hilfsspeicher übernommenen Daten den Suchlauf tatsächlich überstanden
haben und daher aussortiert werden können. In diesem Falle wird, solange nicht die Füllzustandsüberwachung
FÜW des Hilfsspeichers H-SP anspricht, ein eingeleiteter Suchlauf fortgesetzt, bis die Überwachungseinrichtung
DÜW anspricht und das Ende eines Suchlaufes anzeigt. Die Steuerung ST der Sortiersteuerung
S-S7"veranlaßt daraufhin die Umsteuerung auf den Sortiervorgang. Zu diesem Zweck wird über die
Speicherauswahleinrichtung SP-A W zunächst über die Auswahleinrichtung E-AW der Hilfsspeicher H-SP
angesteuert und damit mit der assoziativen Oberfläche verbunden. Desweiteren wird über die Teilsteuerung
SBM-ST der Generator SBM-G und die Maske Λ/auf
das für den Sortiervorgang benötigte Suchargument umgeschaltet und die Assoziationsmatrix AM wirksam
geschaltet. Im Wechselspiel zwischen Trefferauswertesteuerung T-ST und Sortiersteuerung S-ST werden
dann die im Hilfsspeicher H-SP angesammelten Einträge sortiert und über den Ausgang AUS der
Assoziationsmatrix AM ausgegeben.
Nach Beendigung des Sortiervorganges schaltet die Steuerung 57"auf einen Markiersuchlauf um. Zu diesem
Zweck wird über die Teilsteuerung SBM-ST das am Schluß des vorausgegangenen Suchlaufes gültige
Sortierbitmuster am Generator SB-G und an der Maske M wieder eingestellt und über die Speicherauswahleinrichtung
SP-AW die erste Speichereinheit SP-E\ ausgewählt. Die dabei vom Trefferregister T-REG
festgestellten Trefferanzeigen werden dann jeweils am Ende eines Assoziationsvorganges, gesteuert durch die
Markiersteuerung M-ST und nach vorheriger Auswahl der Spalte für die Sortiert-Bits SB durch die
Auswahleinrichtung S-A Wder Speicherauswahleinrichtung
SP-AW wiederum parallel übertragen. Dieser Markiervorgang wird daraufhin für jede der Speichereinheiten
SP-E 2 bis SP-En fortgesetzt. Erst danach wird bei gleichzeitiger Löschung des Belegungsregisters
B-REG auf den nächsten Suchlauf umgesteuert.
Spricht während eines der Suchläufe die Einrichtung FÜW zur Überwachung des Füllungszustandes des
Hilfsspeichers H-SP an, so veranlaßt die Steuerung ST bei Vorliegen eines weiteren Treffers, der die Übernahme
eines weiteren Eintrags in den Hilfsspeicher H-SP anzeigt, über die Teilsteuerung SBM-ST die Erweiterung
des zur Zeit gültigen Suchargumentes entsprechend dem gültigen Suchalgorithmus und die Überprüfung
der im Hilfsspeicher H-SP gespeicherten Einträge durch die Assoziationsmatrix AM anhand des neuen
Suchargumentes. Die daraufhin im Trefferregister T-REG registrierten Treffer werden dann, veranlaßt
durch die Markiersteuerung M-ST, parallel in das Belegungsregister B-REG der Steuerung HSP-ST
übergeben und so alle nicht dem neuen Suchargument entsprechenden Einträge im Hilfsspeicher H-SP gelöscht.
Anschließend wird der Inhalt des Belegungsi egisters B-REG nach vorheriger Auswahl der Spalte SB im
Hilfsspeicher H-SP durch die Auswahleinrichtung S-A W in den Hilfsspeicher übernommen und so die
gültigen Einträge markiert. Erst danach veranlaßt die Steuerung ST die Fortsetzung des abgebrochenen
Suchlaufes durch den Basisspeicher B-SP, und zwar wird der Suchlauf mit der Zeile der zuletzt geprüften
Speichereinheit fortgesetzt, die nicht mehr in den Hilfsspeicher wegen dessen Überfüllung übernommen
werden konnte. Zu diesem Zweck speichert die Teilsteuerung AUS-STz. B. die jeweils zuletzt von der
Prioritäts- und Codiereinrichtung DEC der Trefferauswertesteuerung T-ST vor Abbruch des letzten Suchlaufes
mitgeteilte Zeilenadresse Z-AD und vergleicht diese mit den nachfolgend zugeführten Zeilenadressen, bis die
gleiche Zeilenadresse erreicht ist. Erst die dieser Zeilenadresse entsprechende Zeilenadresse und die
nachfolgenden Zeilenadressen kennzeichnen neue Einträge für den Hilfsspeicher H-SP, die dann in der bereits
beschriebenen Weise in den Hilfsspeicher übernommen werden. Auch der weitere Ablauf des Suchens und
Sortierens erfolgt dann in der bereits beschriebenen Weise.
Verwendet man zur Eingabe in den Basisspeicher B-SP, wie bereits in F i g. 1 angedeutet ist, einen
zusätzlichen Eingabepufferspeicher P-SP und sammelt man die für den Hilfsspeicher H-PS vorgesehenen
Einträge zunächst in diesem Eingabepufferspeicher,
bevor sie dann gemeinsam am Ende eines Suchlaufes oder bei Überfüllung in den Hilfsspeicher H-SP
übertragen werden, so kann auf die zusätzliche Steuerung HSP-STiür den Hilfsspeicher H-SPverzichtet
werden, da in der Regel der Eingabepufferspeicher P-SP zu übernehmende Einträge immer in die nächste
freie Zeile eingibt. Mit diesem Pufferspeicher ist dann lediglich eine Einrichtung FÜW für die Überwachung
des Füllungszustandes vorzusehen, wobei das Füllungssignal in einfacher Weise von der Einstellung der
Zeilenauswahl für diesen Eingabepufferspeicher abgeleitet
werden kann. Eine zusätzliche Belegungsüberwachungssteuerung ist in diesem Falle nicht erforderlich,
da bei jeder Überfüllung die im Pufferspeicher P-SP vorliegenden Daten zunächst in den Hilfsspeicher H-SP
übergeben werden, bevor die Assoziationsmatrix AM überprüft, welche Einträge dem neuen Suchargument
entsprechen, und da die aufrechtzuerhaltenden Einträge über den Ausgang AUS der Assoziationsmatrix AM
dann wieder der Reihe nach in den Pufferspeicher P-SP eingeschrieben werden können.
Hierzu 6 Blatt Zeichnungen
Claims (13)
1. Verfahren zum Sortieren von in einem Hybrid-Assoziativspeicher gespeicherten Daten, der
aus einer assoziativen Oberfläche und einem Basisspeicher mit einer Vielzahl von gleichartigen
Speichereinheiten besteht und bei dem die Speicherabschnitte jeweils einer Speichereinheit alle gleichzeitig
parallel zur assoziativen Oberfläche durchschaltbar sind, unter Verwendung eines das jeweilige ·°
Sortierargument liefernden Generators, einer veränderbaren Maske zur Festlegung des jeweiligen
Assoziationsbereiches und einer Trefferauswerteeinrichtung, dadurch gekennzeichnet, daß
durch treffergesteuerte Einstellung des Sortierargumentes (SBMi) und des durch die Mpske (M)
vorgegebenen Assoziationsbereiches der assoziativen Oberfläche (AM/OP) Gruppen von zusammen
bereits endsortierfähigen Daten aus dem Basisspeicher (B-SP) ausgesucht werden, daß die durch
Treffer gekennzeichneten Daten in einen Hilfsspeicher (H-SP) übernommen werden, daß jeweils nach
Überprüfen aller Speichereinheiten (SP-E \ bis SP-En) des Basisspeichers (B-SP) die im Hilfsspeicher
(H-SP) gesammelten Daten ebenfalls durch ^ treffergesteuerte Einstellung des Sortierargumentes
und des durch die Maske (M) vorgegebenen Assoziationsbereiches endsortiert und ausgegeben
werden, daß danach ggf. der Prüf- und Sortiervorgang wiederholt wird, bis alle Gruppen von Daten
einer zusammenhängend zu sortierenden Datenmenge erfaßt sind, und daß die jeweils endsortierten
Daten als solche im Basisspeicher (B-SP) markiert werden.
2. Verfahren nach Anspruch 1, dadurch gekenn- J5
zeichnet, daß die Speicherkapazität des Hilfsspeichers (H-SP) nach Bedarf vergrößerbar ist.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die aus einer Speichereinheit (z. B.
SP-Ei) des Basisspeichers (B-SP) in den Hilfsspeieher
(H-SP) übernommenen Daten unmittelbar als aussortiert markiert werden.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Speicherkapazität des Hilfsspeichers
(H-SP) fest vorgegeben ist, daß bei Überfüllung des HilfsSpeichers (H-SP) das Suchargument
(SBM X) erweitert wird und alle Daten im Hilfsspeicher
(H-SP) gelöscht werden, die dem erweiterten Suchargument nicht mehr entsprechen, und daß der
Suchvorgang im Basisspeicher (B-SP) mit dem erweiterten Suchargument fortgesetzt wird, gegebenenfalls
mit weiteren Erweiterungen des Sucharguments bei weiteren Überfüllungen des Hilfsspeichers,
bis alle in Frage kommenden Daten endgültig aussortiert sind.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß zu Beginn eines Suchvorganges das
vorgegebene Suchargument (SBM 1) durch Maskenabdeckung (M) auf ein übergeordnetes, mehrere
mögliche Gruppen von Daten erfassendes Suchar- b0
gument reduziert wird und daß bei Gefahr des Überlaufs im Hilfsspeicher (H-SP) die Maskenabdeckung,
gegebenenfalls schrittweise, wieder zurückgenommen wird und nicht zugehörige aufgesammelte
Daten im Hilfsspeicher (H-SP) gelöscht b5
werden.
6. Verfahren nach Anspruch 4 oder 5, dadurch gekennzeichnet, daß jeweils nach Durchsuchen aller
Speichereinheiten (SP-E 1 bis SP-En) des Basisspeichers
(B-SP) alle Daten im Basisspeicher anhand des jeweils zuletzt gültigen Sucharguments (SBMl)
erneut durchsucht und die durch einen Treffer der assoziativen Oberfläche (AM/OP) gekennzeichneten
Daten im Basisspeicher (B-SP) als aussortiert markiert werden, ohne daß dabei Daten in den
Hilfsspeicher(f/-S/V übernommen werden.
7. Verfahren nach Anspruch 3 oder 6, dadurch gekennzeichnet, daß alle aussortierten Daten einer
Speichereinheit (z. B. SP-Ei) gleichzeitig als aussortiert
markiert werden.
8. Verfahren nach einem der Ansprüche 4 bis 7, dadurch gekennzeichnet, daß die Speicherkapazität
des Hilfsspeichers (H-SP) der einer Speichereinheit (SP-E...) des Basisspeichers (B-SP) entspricht.
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß das jeweilige Suchbzw.
Sortierargument (SBM \ bzw. SBM 2) von einem Sortierbitmuster-Generator (SBM-C) geliefert
wird, der abhängig vom jeweiligen Such- bzw. Sortierergebnis steuerbar ist.
10. Anordnung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 9, gekennzeichnet
durch eine mit der Trefferauswertesteuerung (T-ST) der assoziativen Oberfläche (AM/OP)des Hybridassozia'.'vspeichers
gekoppelte Steuereinrichtung (S-ST) zur Übertragung der durch Treffer gekennzeichneten
Daten in den Hilfsspeicher (H-SP), eine mit der Auswahlsteuerung (SP-A W) für die
Speichereinheiten (SP-E...) im Basisspeicher (B-SP) gekoppelte Überwachungseinrichtung (DÜW) zur
Einleitung des Endsortiervorganges für die im Hilfsspeicher (H-SP) gesammelten Daien und eine
Einrichtung (M-ST) zur Markierung der jeweils endgültig aussortierten Daten in den einzelnen
Speichereinheiten (SP-E ...) des Basisspeichers (BSP).
11. Anordnung nach Anspruch 10, gekennzeichnet
durch eine Einrichtung (FÜW)zut Überwachung des
Füllungszustandes des Hilfsspeichers (H-SP).
12. Anordnung nach Anspruch 11, gekennzeichnet
durch eine mit der Einrichtung (FÜW) zur Überwachung des Füllungszustandes des Hilfsspeichers
(H-SP) und mit der Einrichtung (SBM-C/M) zur Bereitstellung des Suchargumentes gekoppelte
Einrichtung (SBM-ST)zur Erweiterung des Suchargumentes
(SBM 1) bei Überschreiten der Speicherkapazität des Hilfsspeichers (H-SP) und durch mit
dem Hilfsspeicher (H-SP) gekoppelte Einrichtungen (HSP-ST) zur Löschung der Daten, die dem neuen
Suchargument nicht mehr entsprechen, und zur Kennzeichnung freier Speicherplätze im Hilfsspeicher
(H-SP).
13. Anordnung nach einem der Ansprüche 10 bis 12, dadurch gekennzeichnet, daß der Hilfsspeicher
(H-SP) von einer Speichereinheit des Basisspeichers (B-SP) gebildet wird und diese Speichereinheit
zusammen mit der assoziativen Oberfläche (AMZOP)OQS Hybridassoziativspeichers als Assoziativspeicher
arbeitet.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19803009330 DE3009330C2 (de) | 1980-03-11 | 1980-03-11 | Verfahren zum Sortieren von in einem Hybrid-Assoziativspeicher gespeicherten Daten und Anordnung zur Durchführung des Verfahrens |
AT81101727T ATE9934T1 (de) | 1980-03-11 | 1981-03-09 | Hybrid-assoziativspeicher und dessen anwendungen, insbesondere zum sortieren von gespeicherten daten. |
EP81101727A EP0035787B1 (de) | 1980-03-11 | 1981-03-09 | Hybrid-Assoziativspeicher und dessen Anwendungen, insbesondere zum Sortieren von gespeicherten Daten |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19803009330 DE3009330C2 (de) | 1980-03-11 | 1980-03-11 | Verfahren zum Sortieren von in einem Hybrid-Assoziativspeicher gespeicherten Daten und Anordnung zur Durchführung des Verfahrens |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3009330A1 DE3009330A1 (de) | 1981-09-17 |
DE3009330C2 true DE3009330C2 (de) | 1984-04-26 |
Family
ID=6096880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19803009330 Expired DE3009330C2 (de) | 1980-03-11 | 1980-03-11 | Verfahren zum Sortieren von in einem Hybrid-Assoziativspeicher gespeicherten Daten und Anordnung zur Durchführung des Verfahrens |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE3009330C2 (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3212076C2 (de) * | 1982-04-01 | 1986-01-30 | Michael Dipl.-Ing.Dr.-Ing. 7403 Ammerbuch Malms | Schaltungsanordnung zur Ausführung inhaltsorientierter Zugriffsfunktionen |
DE3334536A1 (de) * | 1983-09-23 | 1985-04-04 | Siemens AG, 1000 Berlin und 8000 München | Verfahren und anordnung zum aufsuchen von in einem hybrid-assoziativspeicher gespeicherten daten mit vertikal ausgerichteter speicherung der einzelnen zeichen der daten abhaengig von dem ihnen zugeordneten rand, z.b. zum sortieren der daten |
-
1980
- 1980-03-11 DE DE19803009330 patent/DE3009330C2/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE3009330A1 (de) | 1981-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0010195B1 (de) | Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage | |
DE2163342C3 (de) | Hierarchische binäre Speichervorrichtung | |
DE69208789T2 (de) | Sortierverfahren | |
DE3390315T1 (de) | Anpassungsfähige Unterteilung eines Chachespeicherraums in Domainen | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
DE1956604B2 (de) | Datenverarbeitungsanlage | |
DE2310631C3 (de) | Speicherhierarchie für ein Datenverarbeitungssystem | |
WO1984003970A1 (en) | Hybrid associative memory and method for the retrieval and sorting of data contained therein | |
DE10151091B4 (de) | Scheduling-System und Scheduling-Verfahren dafür | |
DE2031040B2 (de) | Verfahren zur festlegung des zugangs von mehreren benutzern zu einer einheit einer datenverarbeitungsanlage und anordnung zur durchfuehrung des verfahrens | |
DE2252279A1 (de) | Verfahren und anordnung zur aenderung der relativen lage wenigstens eines informationsbits in einem datenstrom | |
DE2422732C2 (de) | Hierarchische Speicheranordnung | |
DE2063195C2 (de) | Verfahren und Einrichtung zur Operationssteuerung einer Anzahl von externen Datenspeichern | |
DE2221442A1 (de) | Assoziativspeicher | |
DE2436932A1 (de) | Anordnung zur messung der effektivitaet einer datenverarbeitungsanlage mit virtuellem speicher | |
DE2031797A1 (de) | Verfahren zur Erzeugung eines mehr stufigen verdichteten Index | |
DE3009330C2 (de) | Verfahren zum Sortieren von in einem Hybrid-Assoziativspeicher gespeicherten Daten und Anordnung zur Durchführung des Verfahrens | |
EP0035787B1 (de) | Hybrid-Assoziativspeicher und dessen Anwendungen, insbesondere zum Sortieren von gespeicherten Daten | |
DE2062164A1 (de) | Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten | |
DE3516077C2 (de) | ||
DE2261586A1 (de) | Speichereinrichtung | |
DE3009317A1 (de) | Hybrid-assoziativspeicher | |
DE2254884A1 (de) | Verfahren zum betrieb einer datenverarbeitungsanlage | |
DE2512324C3 (de) | Verfahren und Anordnung zum Sortieren von Daten in einem assoziativ bewirtschafteten Speicher | |
DE2164836A1 (de) | Verfahren zum Sortieren von Dateneinheiten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |