DE1965507A1 - Verfahren zum Wiederauffinden gespeicherter Informationen - Google Patents

Verfahren zum Wiederauffinden gespeicherter Informationen

Info

Publication number
DE1965507A1
DE1965507A1 DE19691965507 DE1965507A DE1965507A1 DE 1965507 A1 DE1965507 A1 DE 1965507A1 DE 19691965507 DE19691965507 DE 19691965507 DE 1965507 A DE1965507 A DE 1965507A DE 1965507 A1 DE1965507 A1 DE 1965507A1
Authority
DE
Germany
Prior art keywords
byte
key
compressed
cycle
search
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.)
Withdrawn
Application number
DE19691965507
Other languages
English (en)
Inventor
Edward Loizides
Lyon John Raymond
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1965507A1 publication Critical patent/DE1965507A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • G06F16/902Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

1955507
IBM Deutschland Internationale Büra-Masehinen Gaellaehaft mbH
Anmelderin:
Amtliches Aktenzeichen:
Böblingen, 17. Dezember 1969 gg-rz
International Business Machines Corporation, Armonk, N.Y. IO 504
Neuanmeldung
Aktenzeichen der Anmelderin: Docket PO 967 078 Verfahren zum Wiederauffinden gespeicherter Informationen
Die Erfindung betrifft ein Verfahren zum Wiederauffinden gespeicherter Informationen in Verbindung mit einem Verfahren zur Erzeugung verdichteter Schlüssel aus einer Folge sortierter, verschiedenen Informationsgegenständen zugeordneter, unverdiente ter Schlüssel.
Ganz allgemein handelt es sich um ein Verfahren zum Wiederauffinden von in geeigneter Weise gespeicherten Informationen, die in Form eines Verzeichnisses sortiert sind. Der Anfall an Informationen verschiedenster Art ist ständig im Wachsen begriffen. Selbstverständlich erhöht sich dadurch auch die Anzahl der Fälle, in denen eine in der Masse von Informationen enthaltene Information nicht mehr mit der erforderlichen Geschwindigkeit wiederaufgefunden werden kann. Obgleich bereits große Anstrengungen hinsichtlich einer optimalen Lösung dieses Problems unternommen wurden, ist bisher noch kein grundsätzlicher Weg bekannt geworden, der das Wiederauffinden von Informationen aus einer großen Anzahl von Dokumenten oder Aufzeichnungen in gewünschter Weise erlaubt.
Das erfindungsgemäße Verfahren zeigt einen brauchbaren Weg zur maschinellen Lokalisierung von mittels Schlüsseln oder Kennworten registrierten Informationen. Die Erfindung gestattet es, jegliche Art alphanumerischer Schlüssel, die in einer sortierten" Folge angeordnet sind, in verdichtete Schlüssel umzuwandeln
009829/1443
und in dieser Form auch wieder zu suchen. Jeder verdichtete Schlüssel liefert eine Abgrenzung für den unverdichteten Schlüssel, den er repräsentiert. Eine örtliche Bestimmung für die dem Schlüssel zugeordnete Information kann einer hinzugefügten Adresse, einem sogenannten Zeiger oder dem Schlüssel selbst entnommen werden.
Verfahren und Einrichtungen zum Wiederauffinden von Informationen, die in unverdichteter sortierter Folge registriert sind, sind in großer Zahl bekannt. Bei diesen Verfahren werden Computer eingesetzt, wobei spezielle Zugriffsmethoden und elektronische Katalogisierung angewendet werden. Als Stand der Technik auf diesem Gebiet sind insbesondere die US-Patente 3 408 631, 3 315 233, 3 366 928, 3 242 470 und 3 030 609 zu erwähnen.
Die gegenwärtig gebräuchlichen, mit Computern arbeitenden Verfahren weisen in vieler Hinsicht Mangel auf. Ein wesentlicher Mangel ergibt sich aus dem großen Bedarf an Speicherkapazität. Die unverdichteten Schlüsselformate bedingen, daß bei jedem Zugriff eine große Anzahl von Bytes in jedem Schlüssel abgetastet werden muß. Diese Verfahren sind demnach zeitlich und kostenmäßig sehr aufwendig, wenn ein großer Index abgesucht oder auch wenn ein kleiner Index wiederholt abgesucht werden muß. Die Erfindung vermeidet diese Mängel, da durch sie die Anzahl der abzutastenden Bytes je Zugriff wesentlich herabgesetzt wird. Auf diese Weise wird der Bedarf an Speicherkapazität und die Suchzeit wesentlich herabgesetzt.
Bei der gegenwärtigen Computer verwendenden Suchtechnik, wie sie in den angegebenen US-Patentschriften beschrieben ist, sind den auf Magnetplatten- oder Magnettrommelspeichern gespeicherten Dokumenten zum Zwecke der Indexierung unverdichtete Schlüssel zugeordnet. Eine Suche nach einem Dokument kann über den Schlüssel oder über die Adresse des Dokumentes erfolgen. Beispielsweise sind in den US-Patentschriften 3 408 631, 3 350 693, 3 343 134, 3 344 402, 3 344 403 und 3 344 405 unverdichtete Schlüssel auf Magnetplattenspeichern registriert. Ein bestimmter Schlüssel Docket PO 967 078 009829/1443-
kann durch Vergleich mit einem entsprechenden Suchargument ermittelt werden. Sobald Gleichheit zwischen Schlüssel und Suchargument festgestellt wird, wird eine mit dem unverdichteten Schlüssel gespeicherte Hinweisadresse dazu verwendet, das an einer anderen Stelle des Speichers gespeicherte Dokument abzurufen .
Das erfindungsgemäße Verfahren zum Wiederauffinden gespeicherter Informationen verwendet dagegen verdichtete Schlüssel, bei denen die durch die Indexierung vorhandene Redundanz entfernt ist.
Auf dem Gebiet der Beseitigung von Redundanz durch Maßnahmen zur Informationsverdichtung sind .mehrere Methoden bekannt. Die US-Patente 2 978 535 und 3 225 333 betreffen beispielsweise die Verdichtung /on digitalisierten Fernsehsignalen. Die US-Patente 3 185 824 und 3 237 170 zeigen Verfahren, bei denen die Anzahl der Nichtübereinstimmungen zwischen aufeinanderfolgenden Verlaufen digitaler Ubertragungssignale festgestellt wird. Das US-Patent 3 237 170 verwendet Maßnahmen zur Codierung sich wiederholender Bitmuster. Das US-Patent 3 275 989 befaßt sich mit Befehlen, die jeweils nur den Teil enthalten, der sich vom vorhergehenden Befehl unterscheidet. In entsprechender Weise betrifft US-Patent 3 233 982 ein Verfahren, bei dem bei einer Adresse jeweils nur der Teil verwendet wird, der sich von der vorhergehenden Adresse unterscheidet.
Diese bekannten Maßnahmen bedienen sich größtenteils einer Informationsverdichtung, die reversierbar sein soll. Die Informationen werden zunächst verdichtet, dann übertragen und schließlich wieder in ihre originale, unverdichtete Form gebracht. Dagegen befaßt sich die Erfindung mit einem Verfahren zur Beseitigung von durch Sortiermaßnahmen hervorgebrachter Redundanz,1 wobei die Forderung der Reversierbarkeit nicht besteht.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahrem zum Wiederauffinden gespeicherter Information anzugeben, wobei in erster Linie V7ert darauf gelegt wird, mit einem Mininum an Speicher-. Docket PO O67 078 009829/U43
kapazität und ebenso mit e£nem Minimum an Suchzeit auszukommen.
Zur Lösung dieser Aufgabe wird gemäß der Erfindung ein Verfahren zum Wiederauffinden gespeicherter Informationen in Verbindung mit einem Verfahren zur Erzeugung verdichteter Schlüssel aus einer Folge sortierter, verschiedenen Informationsgegenständen zugeordneter, unverdichteter Schlüssel derart vorgeschlagen, daß zur Erzeugung der verdichteten Schlüssel nacheinander jeweils ein Paar in der sortierten Folge aufeinanderfolgender unverdichteter Schlüssel aufgerufen wird, daß beginnend mit der höchstwertigen Byteposition die sich entsprechenden Bytepositionen jedes Schlüsselpaares unter Bildung von Gleichsignalen und Ungleichsignalen miteinander verglichen werden, daß die Bytepositionen bis zur höchsten ungleichen Byteposition gezählt werden und daß mindestens das aus der höchsten ungleichen Byteposition stammende Schlüsselbyte des zweiten Schlüssels jedes Paares in dem gebildeten verdichteten Schlüssel gespeichert wird.
Vorteilhafte Ausgestaltungen des erfindungsgemäßen Verfahrens ergeben sich aus den nachstehenden Einzelmaßnahmen.
Die Anzahl der Bytepositionen bis zur höchsten ungleichen Byteposition wird als Kontrollfeld für den jeweiligen verdichteten Schlüssel gespeichert.
Die Speicherung eines Kontrollfeldes für jedes aufeinanderfolgende Paar unverdichteter Schlüssel wird zur Erzeugung eines verdichteten Schlüssels wiederholt, wobei der zweite unverdichtete Schlüssel jedes Paares jeweils den ersten unverdichteten Schlüssel des folgenden Paares bildet.
Das Schlüsselbytefeld wird jeweils nach dem Kontrollfeld gespeichert.
Im Kontrollfeld wird der Wert Null gespeichert, um damit das Indexende anzuzeigen.
Docket PO 967 078 009829/UU
,Nach der Erzeugung eines verdichteten Schlüssels wird jeweils ein Zeiger (Hinweisadresse) für die vom ersten unverdichteten Schlüssel repräsentierten Daten angefügt.
Die höchste ungleiche Byteposition des vorhergehenden und des gerade erzeugten verdichteten Schlüssels werden gespeichert.
Die höchste ungleiche Byteposition des vorhergehenden und des gerade erzeugten verdichteten Schlüssels werden verglichen und dabei ein Signal erzeugt, das angibt, ob die höchste ungleiche Byteposition .des gerade erzeugten verdichteten Schlüssels höher, gleich oder niedriger als die des vorhergehenden verdichteten Schlüssels ist.
Die höchste ungleiche Byteposition des gerade erzeugten verdichteten Schlüssels wird als Kontrollfeld gespeichert und außerdem wird das Byte dieser Byteposition aus dem zweiten unverdichteten Schlüssel als Schlüsselbyte für den gerade erzeugten verdichteten Schlüssel gespeichert, wenn ein Signal erzeugt wird, das angibt, daß die höchste ungleiche Byteposition des gerade erzeugten verdichteten Schlüssels gleich oder niedriger als die des vorhergehenden verdichteten Schlüssels ist.
Die höchste ungleiche Byteposition des vorhergehenden verdichteten Schlüssels wird als Kontrollfeld gespeichert und außerdem werden alle Bytepositionen des zweiten unverdichteten Schlüssels von der höchsten ungleichen Byteposition des vorhergehenden bis zu der des gerade erzeugten verdichteten Schlüssels gespeichert, wenn ein Signal erzeugt wird, das angibt, daß die höchste ungleiche Byteposition des gerade erzeugten verdichteten Schlüssels höher als die des vorhergehenden verdichteten Schlüssels ist.
Das erfindungsgemäße Verfahren zum Suchen nach einem Suchargument in einem verdichteten Index, bei dem jeder verdichtete Schlüssel mindestens ein Schlüsselbyte enthält, ist dadurch gekennzeichnet, daß das vorhergehende Kontrollfeld und das Docket PO 967 078 009828/1443
des gerade anstehenden verdichteten Schlüssels registriert werden und daß beide Kontrollfelder verglichen werden, wobei festgestellt wird, ob das anstehende Kontrollfeld höher, gleich oder niedriger als das vorhergehende Kontrollfeld ist.
Weitere vorteilhafte Ausgestaltungen dieses nach dem erfindungs gemäßen Verfahren ablaufenden Suchvorganges ergeben sich aus den nachstehenden Einzelmerkmalen.
Im anstehenden verdichteten Schlüssel wird ein einzelnes Schlüsselbyte aufgezeichnet, wenn beim Vergleich festgestellt wird, daß das anstehende Kontrollfeld gleich oder niedriger als das vorhergehende ist, wobei die höchste ungleiche Byteposir tion des anstehenden verdichteten Schlüssels vom anstehenden Kontrollfeld geliefert wird.
Für den anstehenden verdichteten Schlüssel wird eine Angabe über die Schlüsselbyteanzahl gleich der um Eins erhöhten Differenz zwischen dem anstehenden und dem vorhergehenden Kontrollfeld ermittelt, wenn beim Vergleich festgestellt wird, daß das anstehende Kontrollfeld größer als das vorhergehende Kontrollfeld ist, wobei die höchste ungleiche Byteposition für den anstehenden verdichteten Schlüssel vom vorhergehenden Kontrollfeld geliefert wird.
Beginnend mit dem höchstwertigen Byte wird jeweils ein Byte des Sucharguments übertragen, das gerade anstehende Byte des Sucharguments wird mit dem höchstwertigen Schlüsselbyte eines verdichteten Schlüssels verglichen und es wird ein Suchsignal / erzeugt, das angibt, ob das Schlüsselbyte höher, gleich oder niedriger als das Byte des Sucharguments ist.
Ein Suchvorgang wird abgeschlossen, wenn das Suchsignal angibt, daß das Schlüsselbyte höher als das Byte des Sucharguments ist. -:
Es wird jeweils das nächste Schlüsselbyte des anstehenden verdichteten Schlüssels mit dem nächsten Byte des Sucharguments Docket PO 967 078 009829/U43
verglichen, wenn das Suchsignal angibt, daß das Byte des Suchargu- nts und das Schlüsselbyte gleich sind.
Ee wird zum nächsten verdichteten Schlüssel übergegangen, wenn das Suchsignal angibt, daß das Schlüsselbyte geringer als das Byte des Sucharguments ist.
Die beim erfindungsgemäßen Verfahren erzeugten verdichteten Schlüssel gewährleisten eine optimale Beseitigung der durch Sortiermaßnahmen hervorgebrachten Redundanz, so daß für die Abspeicherung der erzeugten verdichteten Schlüssel nur eine relativ geringe Speicherkapazität benötigt wird. Gleichzeitig wird beim Suchvorgang eine hohe Geschwindigkeit erzielt, da jeweils nur relativ wenige Bytes abgefragt werden müssen.
Weitere Einzelheiten und Vorteile der Erfindung ergeben sich aus der nachstehenden Beschreibung der in den Zeichnungen dar gestellten Ausführungsbeispiele. Es zeigen:
Fig. IA einen unverdichteten Index,
Fig. IB einen aus dem unverdichteten Index abgeleiteten verdichteten Index,
Fign. 2A
und 2B einen Pufferspeicher mit den zugehörigen Eingangsund Ausgangsschaltungen, in welchem ein unverdichteter und der entsprechende verdichtete Index gespeichert sind,
Fig. 3 eine Takt- und Ablaufsteuerung,
Fig. 4A die Taktierung während des Erzeugungsvorganges,
Fig. 4B die Taktierung während des Suchvorganges,
Fig. 5A das Format eines niedrigverdichteten Indexblockes,
009829/U43
Docket PO 967 078
ϊ » t 1
Fig, 5B das Format eines hochverdichteten Indexblockes, Fig· 6 die Taktsteuerung für den Erzeugungsvorgang,
Fig. 7 die Pufferadressierung und andere während des Erzeugungsvorganges verwendete Steuerungen,
Fign. 8A
bis 8D Schaltkreise zur Steuerung der Erzeugung verdichteter Schlüssel,
Fign. 9A
und 9B die Taktsteuerung beim Suchvorgang,
Fign. 10 -
und 11 SpeicherSteuerungen für den Erzeugungs- und Suchvorgang für einen verdichteten Index,
Fign. 12
und 13 Schaltungen für den Suchvorgang bei einem verdichteten Index und
Fign. 14A
bis 14C das beim Suchvorgang angewendete Verfahren.
A Erzeugungsvorgang
Das erfindungsgemäße Verfahren zur Erzeugung verdichteter Schlüssel 1(CK1S) wird auf eine Folge unverdichteter Schlüssel (UK1S) angewendet. Die Schlüssel können beispielsweise ein Suchverzeichnis für beliebige Gegenstände darstellen. Die Adresse des durch den Schlüssel repräsentierten Gegenstandes ist jedem Schlüssel hinzu- -gefügt. Diese Adresse ist im folgenden mit Zeiger oder Hinweisadresse bezeichnet.
Sollten die unverdichteten Schlüssel zunächst in unsortierter Folge anfallen, so werden sie vor Anwendung des erfindungsgemäßen Verfahrens in eine sortierte Folge gebracht. Beispiele für unverdichtete Schlüsselfolgen stellen beispielsweise Telefonverzeich-
DocKet PO 967 078 009829/U43
nisse, Namenslisten der Mitarbeiter eines Betriebes, Buchverzeichnisse in einer Bibliothek usw. dar. Dabei dürfen in der Folge keine'zwei gleiche unverdichtete Schlüssel auftreten, was beispielsweise dadurch sichergestellt wird, daß bei einem Namensverzeichnis mit gleichen Namen als Unterscheidungsmerkmal die Anschrift hinzugefügt wird.
Die Sortierung der Schlüsselfolge kann beispielsweise nach numerischen oder alphabetischen Gesichtspunkten erfolgen. Beispielsweise erfolgt die Sortierung bei Telefonverzeichnissen oder Wörterbüchern nach dem Alphabet. Die Erfindung wird in Bezug auf eine Schlüsselfolge beschrieben, die nach aufsteigender Ordnung ' sortiert ist. Selbstverständlich kann das Verfahren auch auf eine nach absteigender Ordnung sortierte Folge angewandt werden.
Handelt es sich um eine sehr lange Folge unverdichteter Schlüssel, so kann diese in aufeinanderfolgende Untergruppen aufgeteilt werden. Die Größe der Untergruppen kann so gewählt werden, daß sie an die Eingabe/Ausgabe-Einheit eines Computersystems angepasst ist. Jede dieser Untergruppen ist im folgenden als unverdichteter Index bezeichnet.
Fig. IA zeigt einen unverdichteten Index, während in Fig. IB die erfindungsgemäß daraus abgeleiteten verdichteten Schlüssel dargestellt sind.
Der im obersten Teil der Fig. IB dargestellte CK ist durch einen Vergleich des ersten und zweiten UK aus dem oberen Teil der Fig. IA ermittelt. Der zweite CK ist das Ergebnis eines Vergleiches des zweiten und dritten UK's usw. Schließlich wird der letzte CK gebildet, wenn der UK mit der Indexendeanzeige verglichen wird. Die mit dem letzten CK verbundene Hinweisadresse steht im untersten Teil der Fig. IB. Jeder Vergleich beginnt auf der werthohen Seite der unverdichteten Schlüssel.
Jeder CK (mit Ausnahme des letzten) besteht aus zwei Teilen- und zwar aus einem Positionsbyte P und einem oder mehreren Schlüssel-Docket PO 967 078 009829/ U 43
- IO -
bytes K. Die Positionsbytes und die Schlüsselbytes werden jeweils beim Vergleich zweier aufeinanderfolgender unverdichteter Schlüssel ermittelt. Das Positionsbyte P wird auf einen Wert, gesetzt, der ausgehend von der werthohen Seite der verglichenen unverdichteten Schlüssel die erste ungleiche Byteposition angibt. Zeigen zwei verglichene unverdichtete Schlüssel bereits in ihren werthöchsten Bytepositionen Ungleichheit, so hat das Positionsbyte P den Wert Sind die ersten Bytepositionen gleich aber die zweiten Bytepositionen ungleich, so hat das Positionsbyte P den Wert 2. Xm hier betrachteten Ausführungsbeispiel wird das Positionsbyte P zu Beginn der Vergleiche für einen unverdichteten Index und am Ende des letzten Vergleiches eines jeden ve eiIchteten Indexes auf O gestellt.
Das K-FeId besteht aus einem oder mehreren Bytes, die dem zweiten UK eines jeden Paares entnommen werden. Diese Bytes werden über die Werte von P aus dem laufenden und dem verhergehenden Vergleich ermittelt. Ist der jeweilige Wert P gleich oder kleiner als der letzte Wert P, so wird nur ein einzelnes K-Byte verwendet, welches das erste ungleiche Byte aus dem zweiten UK des laufenden Vergleiches darstellt. Ist jedoch der jeweilige P-Wert größer als der letzte P-Wert, so erhält das K-FeId mehrere Bytes aus dem zweiten UK des- laufenden Vergleiches und zwar aus den Bytepositionen, die hinter der von letzten P-Wert definierten Byteposition beginnen und sich bis einschließlich der ersten ungleichen Byteposition des gerade anstehenden P-Wertes erstrecken. Somit gilt für sämtliche K-Bytes mit Ausnahme des letzten, daß Gleichheit vorherrscht.
Im folgenden sind die für die Erzeugung eines i-ten verdichteten Indexes erforderlichen Regeln angegeben.
1. Erzeugung von P1
Zur Erzeugung des i-ten verdichteten Schlüssels werden der i-te und der (i+l)te unverdichtete Schlüssel Byte für Byte verglichen, wobei mit der werthöchsten Byteposition begonnen und bei der ersten ungleichen Byteposition geendet wird. Die Byteposition mit dem ersten ungleichen Byte beat — den je-Doüket PO 967 078 0 0 9 8 2 9 / 1 4 4 3
BAD ORIGINAL
weiligen P-Wert P±.
2. Erzeugung iron K.
Der vorhergehende P-Wert P1-1 wird zur Bestimmung von K1 festgehalten.
a) Ist P± < P1-1, so wird in das K-FeId lediglich ein Byte gestelltf und «war von der Byteposition P, des (i-fl)ten unverdichteten Schlüssels.
b) Ist P1 > P1-1/ so beträgt die in das K-FeId gestellte Anzahl von Bytes ^""P*.*· Dae K-FeId erstreckt sich dabei von Byte der Position P1-1 +I bis einechließlich den Byte der Position P1 des (i+l)ten unverdichteten Schlüssel«·
.3· Rlnweisadresse
Die Hinweisadresse (Seiger) R, die dem i-ten unverdichteten Schlüssel zugeordnet 1st» wird dem i-ten verdichteten Schlüssel zugefügt, so dae ein verdichteter Index der Form PKR erzeugt wird«
4« Indexende
Die Anzahl der erzeugten verdichteten Schlüssel entspricht der Anzahl der unverdichteten Schlüssel im unverdichteten Index. Die verdichteten Schlüssel weisen jedoch nur einen Bruchteil der Bytes aus de* unverdichteten Index auf. Wird das Indexende erreicht, wird der letzte verdichtete Schlüssel auf folgende Weise gebildet!
a) P wird gleich O gesetzt, was das Indexende bedeutet,
b) K wird ausgelassen und
c) der dem letzten unverdichteten Schlüssel zugeordnete Zeiger R wird neben das auf O gesetzte P-Byte gestellt.
009829/U43
Docket PO 967 078
BAD ORIGINAL Beispielt
unverdichtete Liste PTR verdichteter Index K 1>TR
P « 1 2 3 4 5 1 P ABD 1
ABCD 2 3 E 2
ABDD 3 4 C 3
ABDEF 4 2 DSG 4
ACDEF S 5 D S
ACDEG 2 6
AJ) O
B. Suchvprgang
Beim Suchvorgang wird ein Suchargument verwendet« das aus einem unverdichteten Schlüssel bestehen kann. Für den Suchvorgang ' gelten die in den Fign* 11 bis 14 gebrauchten Regeln*
1. Die Suche nach einem gegebenen Sucharguaent beginnt am Anfang eines verdichteten Indexes. Das K-FeId jedes CK wird dabei, beginnend mit dem werthöchsten Byte mit dem jeweils anstehenden Byte des Sucharguments verbunden.
2. Das P.-Byte jedes CK wird festgehalten. Der P. ,-Wert wird auf O gesetzt um den nächsten verdichteten Index zu lesen. Das zurückgehaltene P.-Byte wird das P.-Byte, wenn das P -Byte des nächsten verdichteten Indexes gelesen wird. Deshalb entspricht die Länge des ersten K-
Feldes dem Wert P^-i eine Länge von P -
= P . Die Länge des K-Feldes hat .- Bytes, wenn P± > P1-1 ist.
3. Beginnend mit dem werthöchsten Byte des Sucharguments
wird der verdichtete Index jeweils mit einem Suchargumentbyte verglichen. Wird dabei die Gleichheit zwischen einem Suchargumentbyte und einem K-Byte festgestellt, so wird dieses Suchargumentbyte durch das nächste, wertniedrigere Docket PO 967 078 009829/.1443
BAD ORIGINAL
Suchargumentbyte ersetzt. Das jeweilige Suchargumentbyte wird nacheinander mit den K-Bytee verglichen, wobei jeweils' mit den werthöchsten K-Bytes jedes CK begonnen wird. Bei einem CK mit (P4-P4 .) > 1 ist das erste verglichene
± χ—χ
K-Byte P4. +1 und es wird, wenn A > K, jeweils solange zum nächsten, wertniedrigeren K-Byte übergegangen, bis das K-Byte mit P, verglichen wird. Bei einem CK mit (P. - Pj-1) ^ 1 wird nur das einzelne, durch P. identifizierte K-Byte mit dem Suchargumentbyte verglichen. Dies geschieht auf folgende Weise:
a) Es wird die Zahl E der Suchargumentbytes festgestellt, die sich während des Vergleiches mit den verdichteten Schlüsseln als gleich mit den K-Bytes herausstellen. Wenn A-K ist, wird die Zahl E nur dann um 1 erhöht, wenn E gleich der Position des gerade verglichenen K-Bytes ist.
b) Wird in einem Vergleich A > K festgestellt, wird die Suche durch übergang zum nächsten verdichteten Schlüssel fortgesetzt.
c) Die Suche ist abgeschlossen, sobald bei einem Vergleich das erstemal, festgestellt wird, daß A < K f und die Zahl E gleich der Bytepositisn des K-Bytes ist. Der dabei ermittelte verdichtete Schlüssel enthält die gewünschte Hinweisadresse.
d) Die gefundene Hinweisadresse führt zum Wiederauffinden des zugeordneten Informationsgegenstandes.
e) Eine Kontrolle kann durch Vergleich des gefundenen Informationsgegenstandes mit dem Suchargument herbeigeführt werden.
C Erzeugungsvorgang
In Fig. 2A wird zur Einleitung eines Erzeugungsvorganges einem Docket PO 967 078 009829/U43
Pufferspeicher 10 ein Eingangssignal zugeführt. Der Pufferspeicher 10 enthält die unverdichteten Schlüssel in der angegebenen Organisation. Die entsprechenden Daten sind in Bytes gespeichert, beispielsweise besteht jedes Byte aus 8 Bits. Jedes Byte kann in üblicher Weise ein Paritätsbit zum Zwecke der Fehlerprüfung enthalten .
Der Vorgang wird dadurch eingeleitet, daß der Anordnung gemäß Fig. 3 ein Startsignal zugeführt wird. Das Startsignal kann manuell durch Betätigen eines Schalters 5O in Fig. 6 oder 210 in Fig. 9A oder vorzugsweise durch einen Befehl aus einem Computer erfolgen. Dieser Befehl kann ein besonderes Kanalbefehlswort (CCW) sein wenn das erfindungsgemäße Ve , i-fe* a übex einen Datenverarbeitungskanal oder eine Eingabe/A ^gabc-einheit erfolgt. Auf jeden Fall muß der Befehl eine Unterscheidung zzwischen dem Erzeugungsvorgang für einen verdichtet"i Schlüssel und den Suchvorgang nach einem verdichteten Schlüssel dadurch herbeiführen, daß er den Betriebsarttrigger 20 in Fig. 3 in die entsprechende Schaltstellung bringt.
Die ersten vier Bytes im Pufferspeicher IO sind Kennzeichenbytes, die die Organisation im Speicher definieren. Das Anfangsbyte MUKL stellt einen Wert dar, der die Länge jedes für die unverdichteten Schlüssel vorgesehenen Registers (UK-I, UK-2 usw. bis UK-N) in Bytes angibt. Jedes Register weist die maximale unverdichtete Schlüssellänge (MJKL) auf.
Das Byte LVL bestimmt einen Idexierungsgrad. Gewöhnlich ist eine hohe Indexierung vorgesehen, um die Suchgeschwindjgkeit ; zu erhöhen. Das erfindungsgemäße Verfahren kann zur Erzeugung jedes Indexierungsgrades verwendet werden.
Das Byt RL liefert die Länge jedes Zeigerregisters (R-I, R-2 usw. bis R-N) in Bytes. Die Anzahl der erforderlichem Bytes hängt von der Art der Adresse ab, die zum Wiederauffinden des jeweiligen Inforroationsgegenstandes verwendet wird« Ist beispielsweise der Index auf einer Magnetplatte gespeichert, Docket PO 967 078 009828/1443
BAD ORIGINAL
•o kann «ine Bytelänge von 10 Bytes vorgesehen werden. Das nächste Byte ist für das erste erzeugte P-Byte reserviert·
Die UK- und R-Register folgen. Jeden UK-Register folgt ein zugehöriges R-Register nach, wobei beide die gleiche numerische Bezeichnung haben.
Die Verwendung der MUKL-Bytes und der RL-Bytes gestattet in einfacher Heise die Größe der UK- und R-Register dann zu verändern, wenn die maximale Länge der vorkommenden unverdienteten Schlüssel oder feiger unterschiedlich ist. ^
Dm werthöchste Byte eines UK's wird, wie in Flg. 1 gezeigt, linksbündig in das UK-Register eingegeben. Die restlichen Bytes des Schlüssels schließen nach rechts an. Auf der rechten Seite freibleibende Bytepositionen werden mit dem niedrigsten Byte der sortierten Folge gefüllt und erhalten demnach beispielsweise eine O. Jeder eingegebene UK kann demnach eine unterschiedliche Länge, die maxiaal der Größe des zugeordneten UK-Registers enspricht, aufweisen. Ein eine größere Länge als das zugeordnete UK-Register aufweisender UK wird auf seiner wertniedrigen Seite begrenzt, d.h., die entsprechenden Bytes bleiben unberücksichtigt. Diese Begrenzung hat nicht notwendigerweise eine Auswirkung auf den erzeugten CK. Der begrenzte UK muß jedoch noch einen ein- ä deutigen Schlüssel darstellen.
Dem letzten Zeiger R-N einer eingegebenen Indexfolge ist ein Byte angeschlossen, das das Indexende anzeigt.
Die im folgenden beschriebenen Schaltkreise sind taktgesteuert. Für Erzeugungs- und Suchvorgang sind gesonderte Taktierungsfolgen vorgesehen. Auch innerhalb derselben Betriebsart können unterschiedliche Taktfrequenzen eingesetzt werden.
In beiden Betriebsarten wird ein einzelner Impulszyklus TO-T7 von -der in der Fig. 3 dargestellten Synchronisierschaltung erzeugt. Diese Impulsfolge wird zu der in Fig. 6 dargestellten Taktsteue-Docket PO 967 078 0Q9 8 2 9/U43
BAD ORIGINAL.
1Ö65507
rung übertragen, sobald der Betriebsarttrigger 20 gesetzt ist·
Bei jeden Laden des Pufferspeichers 10 mit einer Liste verdichteter Schlüssel während eines Erzeugungsvorganges läuft ein Taktierungezyklus ab. Die Taktsteuerung für den Erzeugungevorgang ist in Fig. 6 dargestellt.
In der Anordnung gemäß Fig. 3 wird der Betriebsarttrigger 20 Über beispielsweise einen Coaputerbefehl gesetzt. Dadurch können die Impulse eines Oszillators 23 Über eine UND-Schaltung 21 zu einer Ringschaltung 26 gelangen, die dann die Impulse T0-T7 an die Anordnungen gemäß Fign. 6 bis 8 liefert* Jeder Impulszyklus T0-T7 bestimmt einen Operationszyklus der Taktsteuerungen gemäß Fig. 6. Der zeitliche Ablauf ist in Fig. 4A oben dargestellt.
Fig. 4A zeigt die Taktierung während des Erzeugungsvorganges. Die Taktsteuerungen bewirken im betrachteten Ausführungsbeispiel eine Folge von sieben Arten von Erzeugungsvorgängen, die jeweils für verschiedene Zwecke vorgesehen sind. Jeder Taktsteuerungszyklus schaltet die Aufrufadresse in einem als Aufrufadressensteuerung 110 dienenden Zähler (Fig. 7) um eine Byteposition weiter. Zunächst bewirkt der MüKL-Zyklus die übertragung des MUKL-Bytes vom Speicher 10 in ein MUKL-Register (Fig. 7). Ein unmittelbar nachfolgender LVL-Zyklus bewirkt die übertragung des LVL-Bytes in ein LVX-Register. Dieses Byte bestimmt, ob ein hoch- oder neidrigverdichteter Index erzeugt werden soll, was aus den Fign. 5A oder 5B zu ersehen ist. Der nachfolgende RL-Zyklus überträgt in entsprechender Weise das die Zeigerlänge betreffende RL-Byte in das RL-Register. Das RL-Byte ist im betrachteten Beispiel auf den niedrigsten Indexierungsgrad eingestellt. Als nächstes erfolgt ein lP-Zyklus, der keine übertragung sondern lediglich das Anhalten der Speicheradresse bewirkt. Das IP-Byte wird während des Aufrufes übersprungen.
Dem RL-Zyklus folgt ein Al-Zyklus, der das werthöchste Byte im Register UK-I aufruft. Im nachfolgenden A2-Zyklus wird im Register UK-2 das werthöchste Byte aufgerufen, so daß diese beiden wert-Docket PO 967 078 0 0 9 8 2 9/1443
BAD ORIGINAL
gleichen Bytes verglichen werden können. Zum Aufrufen des entsprechenden A2-Bytes wird auf die Al-Byteadresse Adressenindexierung angewandt. Dabei wird die Adresse des Al-Bytes (vom i-ten UK) durch die Summe der Werte in den MUKL- und RL-Registern geteilt, um das entsprechende A2-Byte (vom(i+Uten UK) zu adressieren. Dies erfolgt in der Darstellung der Fig. 7 mittels der Addierer A + B. Die Aufrufadressensteuerung 110 speichert die laufende Aufrufadresse mit Ausnahme der A2-Byteadresse. Die A2-Byteadresse aus Addierer A bewirkt den Aufruf dieses Bytes aus Speicher 10. Während eines A2-Zyklus liefert Addierer B lediglich ein nicht O Ausgangssignal. Der getastete Addierer B liefert ein Ausgangs- μ signal, das der Summe der Inhalte der HUKL- und RL-Register entspricht. Addierer A erhält normalerweise vom Addierer B den Wert O zugeführt, nicht aber während des A2-Zyklixs. Während der Al-? und A2-Zyklen werden also zunächst die am weitesten links in den Registern UK-I und UK-2 stehenden Bytes abgerufen und entsprechend in die Al- und A2-Byteregister (Figo 8A) übertragen.
Ein Vergleicher 125 vergleicht die Bytes in den Al- und A2-Registern. Nachdem die werthöchsten Bytes verglichen sind, werden im nächsten Al- und A2-Zyklus die beiden nächsten Bytes aufgerufen und verglichen. Die Taktzyklen Al und A2 werden auf diese Weise so oft wiederholt, wie durch den im MUKL-Register \ gespeicherten Wert angegeben ist. Dieser Wert wieci von Vergleicher 114 in Fig. 7 angezeigt.
Die Aufrufadressensteuerung 110 wird am Ende (T7) jedes Taktzyklus weitergeschaltet, jedoch nicht am Ende eines jeden Al-Zyklus, da dann die Al-Adresse eingestellt bleiben muß. In diesem Fall wird die Aufrufadressensteuerung 110 von einem Impuls T7 am Ende jedes A2-Zyklus zur nächsten Byteadresse weitergeschaltet, um das nächstniedrigere Al-Byte zu adressieren. Ein UK-Bytezähler (Fig. 7) wird in jedem A2-Zyklus (zum Zeitpunkt Tl über Tor 106) weitergeschaltet, um die Byteposition anzugeben, die gerade verglichen wird.
Docket PO 967 078 ü 0 9 8 2 9 / 1 A 4 3
BAD ORIGINAL'
Das letzte aus jedem Register UK-i und UK-i+1 aufgerufene Byte wird durch ein Signal ÜK-Ende des Vergleichers 114 angezeigt.
Während des letzten A2-Zyklus eines UK-Paares, wird die Aufrufadressens teuer ung 110 über Tor 100 zum Zeitpunkt T7 weitergeschaltet und adressiert dadurch das erste Byte des ersten Zeigerregisters Rl im Pufferspeicher 10. Dadurch wird der erste R-Zyklus, wie er in Fig. 4A dargestellt ist ausgelöst. Der R-Zyklus wird bei der übertragung jedes Zeigerbytes einmal wiederholt, wobei die Anzahl der Bytes sich aus dem Wert ergibt, der im RL-Register steht. Jeder R-Zyklus schaltet einen RL-Zähler (Pig. 8D) über Tor 186 zu einem Zeitpunkt Tl weiter, um die Zahl der aufgerufenen R-Bytes zu zäfcl-αϊϊ* ^inem Vergleisher 189 werden die Ausgangssignale ctes RL-8äh!e.-s unä äes RL-Registers zugeführt, so daß er nachdem das letzte Seigerbyte aufgerufen ist ein Gleichanzeigesignal liefert, ÄasGhlifeoeüä startet die Taktsteuerung (Fig. 6) einen Al-Zyklus der einen Vsrgiöieh des nächsten UK-Paares außer den Registern üK-2 und UK-3 einleitet. Der (i+l)te UK des letzten Paares wird dabei der i-te UK des laufenden Paares. Die alternierend auftretenden Al- A2-Zyklen wiederholen sich dann in der beschriebenen Weise, Diese aufeinanderfolgenden Vergleiche jeweils des nächsten Paares unverdichteter Schlüssel (1 und i+1) werden* solange fortgesetzt, bis bei der (i+1)ten Eingabe vom Endanzeigedecodierer 180 (8D) das Indexende abgefühlt wird. Der anfängliche A2-Zyklus für diesen letzten Vergleich bewirkt, daß das erste Endansseigebyte in das A2-Register (Fig. 8A) gestellt wird. Der Endaiimeigs-' decodierer 180 in Fig. 8D prüft jedes Byte im A2-Register, ob es sich um ein Endanzeigebyte handelt. Ist dies der Fall, > so wird ein entsprechendes Signal an Speicher IO weitergeleitet.
Im einzelnen läuft der Erzeugungsvorgang folgendermaßen ab. Zunächst wird durch ein entsprechendes Signal, das vor der Anordnung gemäß Fig. 3 an die Anordnung gemäß Fig. 6 geliefert wird, der Starttrigger 45 gesetzt. Ist das geschehen, so ist ein UND-Tor 52 vorbereitet, das vom nächsten Taktimpuls TO Docket PO 967 078 0 0 9 8 2 9 / U 4 3
BAD ORKSlNAt
durchgeschaltet wird. Ober den Auegang des Tores 52 wird Über da« ODER-Tor 49 der Starttrigger 45 zurückgestellt und ein Trigger gesetzt, der einen MURL-Zyklus auslöst. Dadurch wird ein MUKL-Byte vom Speicher IO (Fig. 2A) in das MUKL-Register (Fig. 7) übertragen. Der den MUKL-Zyklus einleitende Trigger bringt über die ODER-Tore 36, 42» 44, 48, 51 und 56 sämtliche andere Zyklustrigger in den rückgestellten Zustand. Dieser Trigger bereitet über ein UND-Tor 46 auch den LVL-Zyklus vor.
Der Impuls TO vom nächsten Zyklus der Ringschaltung in Fig. 3 gelangt Über Tor 46 auf den Setzeingang eines Triggers, der einen LVL-Zyklus einleitet. Dabei wird der MUKL-Zyklustrigger über das ODER-Tor 53 und gleichzeitig sämtliche weiteren Trigger in der Taktsteuerung zurückgestellt. Während des LVL-Zyklus wird das LVL-Byte, wie bereits beschrieben, übertragen.
über das vom Signal des LVL-Zyklus durchgeschaltete UND-Tor 46 wird vom nächsten Impuls TO ein RL-Zyklustrigger gesetzt. Das Ausgangssignal dieses Triggers bringt über das ODER-Tor 51 den LVL-Zyklustrigger und damit außerdem alle anderen Zyklustrigger in den rückgestellten Zustand.
In gleicher Weise setzt der nächste Impuls TO über ein UND-Tor 54 einen lP-Zyklustrigger, wobei das UND-Tor 54 während eines RL-Zyklus durchgeschaltet wird und der RL-Trigger über das ODER-Tor 48 vom lP-Zyklussignal zurückgestellt wird.
Der folgende Impuls TO setzt über das ODER-Tor 38 einen Al-Zyklustrigger und es wird ein UND-Tor 39 vom lP-Zyklussignal vorbereitet. Das Al-Zyklussignal stellt den lP-Zyklustrigger zurück und bereitet ein UND-Tor 41 vor.
Nach einem Al-Zyklus schaltet der nächste Impuls TO das Tor 41 durch und setzt einen A2-Zyklustrigger. Vom Ausgangssignal dieses Triggers und ebenso von einem Signal Nicht-UK-Ende, das solange auftritt, bis das wertniedrigste Byte jedes UK abgerufen ist, wird ein UND-Tor 43 vorbereitet. Damit gelangt über Tor 43 und Docket PO 967 078 0 0 9 8 2 9 / 1 U 4 3
BAD ORIGINAL ODER-Tor 38 der nächste Impuls TO erneut auf den Setzeingang
des Al-Zyklustriggers, der dann den A2-Zyklustrigger zurückstellt.
Das wechselweise Setzen und Zurückstellen des Al-Zyklustriggere und des A2-Zyklustriggers wird solange fortgesetzt, solange das Signal Nicht-UK-Ende vorhanden ist. Sobald dieses Signal fehlt wird UND-Tor 43 gesperrt, so daß der Al-Zyklustrigger nicht mehr vom nächsten Impuls TO gesetzt werden kann.
Als Ergebnis eines Satzes einer Anzahl MUKL von Al- und A2-Zyklen werden die P- und K-Bytes für einen CK aus dem verglichenen UK-Paar gewonnen.
Der R-Zyklus wird während des Auftretens eines die Gleichheit feststellenden MUKL-Signals eingeleitet. Die Länge eines Satzes von R-Zyklen entspricht der Anzahl RL von R-Zyklen, was von einem in Fig. 8D dargestellten Vergleicher 188 in Form eines die Gleichheit anzeigenden RL-Signals einem UND-Tor 37 signalisiert wird.. Ein Satz von R-Zyklen ruft sämtliche Bytes in einem einem i-ten UK folgenden R-Register im Pufferspeicher 10 auf. Der nächste Taktzyklus hängt davon ab, ob vom LVL-Reglster (Fig. 7) hohe Indexierung oder niedrige Indexierung signalisiert wird. Von diesen Signalen wird eines der zugeordneten UND-Tore 30 und 33 (Fig. 6) vorbereitet. Formate für hohe und niedrige Indexierung sind in den Fign. 5A und 5B dargestellt. Bei niedriger Indexierung folgt jedem Satz von Al-A2-Zyklen ein Satz mit einer Anzahl RL von R-Zyklen. Bei hoher Indexierung folgt jeweils ein Satz von R-Zyklen zwei Sätzen von Al-A2-Zyklen.
Nachdem das letzte UK-Signal aus dem Pufferspeicher 10 aufgerufen ist, muß ein letzter CK erzeugt werden. Dazu ist ein P-Zyklus erforderlich, dem RL R-Zyklen folgen. Das ODER-Tor 33b (Fig. 6) erhält aus der Anordnung gemäß Fig. 8D ein Signal Indexende und löst einen R-Zyklus als nächsten Zyklus aus. Die Anzahl RL von R-Zyklen werden im RL-Zähler (Fig. 8D) gezählt. Ein monostabiler Multivibrator 185 (Fig. 8D) liefert einen allgemeinen Rückstellimpuls, der die Anordnung gemäß Fig. 6 bis zum Empfang des nächsten Startimpulses in die Ausgangsstellung bringt. Docket PO 967 078 009829/1443
BAD ORIGINAL
Es wurde oben erklärt, wie die laufende Aufrufadresse für jedes Kennzeichen-, UK- und Zeigerbyte im Puffer 10 der Reihe nach erhöht und durch die Aufruf-Adressensteuerung in Fig. 7 gehalten wird. In ähnlicher Heise wird der Reihe nach durch eine Speicheradressteuerung 156 in Fig. 8C eine Speicheradresse für jedes im Puffer 10 zu speichernde CK-Byte und Zeigerbyte erhöht und gehalten .
Die UK- und CK-Operationen laufen gleichzeitig ab, während ihre Byteübertragungen vom und zum Puffer 10 im Zeit-Multiplexverfahren erfolgen, da im beschriebenen Ausführungsbeispiel der Puffer 10 nur jeweils ein Byte adressieren kann»
Nach ihrer Rückstellung beginnt die Aufruf-Adressensteuerung in Fig. 7 mit der Adressierung der Byteadresse O CMUKL-Byte). Das erste MUKL-Byte wird hier mit einer Verschiebungsadresse von angenommen, kann also praktisch jede Basisadresse in irgendeinem Speicher sein. Nach der Rückstellung beginnt die Speicheradressteuerung in Fig. 8C die Adressierung mit der Byteadresse 3 (IP-Byte). Somit werden die Kennzeichnungsbytes HUKL, LVL und RL aus den Verschiebungsadressen 0, 1 und 2 durch die Speicheroperationen nicht gestört. Sie können später mit dem verdichteten Index nach dessen Erzeugung gespeichert werden*
Das P-Byte für den ersten CK wird an der reservierten IP-Bytesteile im Puffer 10 gespeichert. Das erste K-Byte wird so gespeichert, daß es das erste werthöchste Byte des ersten UK-Byte überlagert. Anschließend folgen der Reihe nach die zugehörigen CK- und R-Eytes ohne Oberspringen einer Bytestelle innerhalb oder zwischen CK's oder Hinweisadressen.
Nach dem ersten fehlenden Byte der CK-Speicheradresse hinter der UK-Abrufadresse fehlt bei fortschreitender verarbeitung in der Speicheradresse in zunehmendem Maße die Abrufadresse, da jeder gespeichert· CK kurzer als der abgerufene UK ist, den er ersetzt. Hinter jedem CK steht eine Reihe von Hinweiabyte·, die mit Ausnahme des letzten unmittelbar von einem P-Byte gefolgt
009829/1443
Docket PO 967 078 ßA0 0RlGINAl/
werden, das beim nächsten CK beginnt. I» Gegensatz zur festgelegten Reihenfolge sind Stellen für die CK*s nicht festgelegt, wie es für die UK's der Fall ist (aufgrund der Werte in den MUKL- und den RL-Bytes).
Jedes gleichrangige Paar von Bytes int laufenden UK (i) und im nächsten UK (i+1) werden in den in Fig. 8A gezeigten Vergieicher 125 miteinander verglichen. Der Vergieicher stellt die Gleichheit oder Ungleichheit der UK-Bytes im Al-Byteregister und im &2~ Byteregister fest. Die zu vergleichenden laufenden Bytes werden vom Puffer 10 in die Register Al und A2 abgerufen und zwar aas denselben Bytepositionen beider UK's i und i-H, Di« gleiche Position dieser Bytes in den verglichenen UK's id durch den UK- -Bytezähler 116 in Fig. 7 angegeben.
Die Schaltungen in Fig. 8B liefern die * Jictgebung, nach der die Stellung des P-Zählers und die A2~Bytee gewählt warden, üSm zu CK-Bytes werden. Die folgende Zeichenerklärung für Fig. 8B verdeutlicht die Arbeitswelse:
ZEICHENERKLÄRUNG FÜR FIGUR 8B
Leitiincfsbeaeichnung Funktionsanzeige
K-I K - 3 P-I
Gleiches A2 zwischen P1-1 und Pi äes (Leite K von P1-1 nach P^) Ungleiches A2-Byte bei P£ > P1-1. (Leite K bei P± > P4-1) Leite P-Zählerstand nach Paffer da P
ÜK'
K - 2
P - 2
Ungleiches A2-Byte bei P1 < P1-1. (Leite K bei P1 < V1^1I
Leite P-Zählerstand auf Puffereingangsi«^
Docket PO 967 078
i ii (Leite P1 < P1-1J
009829/U43
BAD ORIGINAL
Sustand C Abtasten durch UK-Bytes hinter P1-POsItIOn.
(Leerbytes)
Rückstellung Sustand C Bude jeder UK-Abtastung bis zum P1 der
nächsten UK-Abtastung· (Gleiche redundante Bytes)
Sustand E Signal P1 < P1-..
Sustand F Gleiches A2-Byte bei P1-. für laufende
UK-Abtastung.
Nicht Sustand F Erste UK-Abtastung oder spätere Abtastung
■it P1 < P1-. oder spätere Abtastung nicht auf Position P, mit P1 > P .
Rückstellen Sustand C UK-Sahl * pi-i+1
Start P-Zähler Während jedes K-Byte aus dem i+1 UK gesogen wird.
Stopp P-Zähler Während kein K-Byte herausgezogen wird.
Der P-Zähler in Fig. 8A wird am Anfang durch den Zyklus IP auf ™ 0 zurückgestellt. Der P -Wert wird im P-Zähler auf zwei Arten registriert, abhängig davon, ob P > P1-1 oder kleiner P1-1 ist. Die zuletztgenannte Bedingung wird durch ein Signal für den Zustand E von Fig. 8B auf die Torschaltung 136 in Fig. 8A angezeigt, welches die Registrierung der UK-Zählerwerte im P-Zähler beim ersten ungleichen A2-Byte an einer Position veranlasst, die unter P1-1 liegt. Wenn P. > P1-1 ist, wird diese Bedingung durch ein Signal "Start P-Zähler" von Fig. 8B angezeigt. Durch dieses Signal wird der P-Zähler durch die Torschaltung 135 bei jedem T2-Impuls nach Erreichen des Wertes Pj-1 weitergeschaltet, solange eine Gleichheit von UK-Bytes vorliegt. Der P-Zähler stoppt bei dem ersten ungleichen UK-Byte, welches der P -Wert ist.
0Q9829/U43
Docket PO 967 078
BAD ORIOtNAt
Am Anfang eines UK-Vergleiches wird der in P-Zähler enthaltene P.-Wert zum Wert P. . für den nächsten ÜK-Vergleich. nachdem der P.-Wert während eines UK-Vergleiches gesetzt ist, wird der P-Zähler für den Rest dieses UK-Vergleiches nicht und auch solange während des folgenden Vergleiches nicht verändert, bis die Position P. oder P. . durch den UK-Bytezähler zum ersten Mal erreicht wird.
Bevor die Position P., bei einem UK-Vergleich erreicht wird, wird der Wert im UK-Zähler 116 in Flg. 7 mit der Zahl P.. im P-Zähler der Fig. 8A durch den Vergleicher 132 in Fig. 8A verglichen. Durch die besondere Anwendung des P-Zählerβ in diesem Ausführungsbeispiel können die Werte für P. und P1-1 nicht durch den Vergleicher 132 alleine bestimmt werden. Der Vergleich zwischen diesen beiden Werten erfordert die in Fig. 8B gezeigte Schaltung.
Die Bedingung P. < p4-i wütä durch die Torschaltung 144a in Fig. 8B festgestellt und durch Setzen des Triggers 144b angezeigt. Es wird ein Signal Zustand £ geliefert. Der P-Zähler wird mit diesem P.-Wert über die Torschaltungen 134 und 136 durch die dann beim Auftreten des Signales Zustand E vorliegende UK-Bytezahl gesetzt. Danach bleibt P. im P-Zähler und der Vergleicher bleibt für den Rest der Abtastung dieses UK-Paares stehen.
Die Bedingung P±> ^1-1 bei Gleichheit von UK-Bytes wird durch die Torschaltung 146a festgestellt und das Setzen des Triggers 147a in Fig. 8B liefert das Signal Zustand F, d.h. es stellt fest, daß eine Gleichheit zwischen UK-Bytes existiert und daß das nächste Bytepaar auf Gleichheit verglichen wird. Die Torschaltung 147b liefert die Taktsignale, wenn der UK-Bytezähler den Wert P^-1 +I enthält. Wenn die Gleichheit von UK-Bytes auch an dieser Stelle vorliegt, ist es die erste Byteposition in einem aus mehreren Bytes bestehenden CK. Das letzte Schlüsselbyte und seine P.-Position in einem aus mehreren Bytes bestehenden CK werden durch Signale K - 3 und P-I von den Torschaltungen. 14Oa und 14Ob in Fig. 8B angezeigt. Dadurch wird die erste ungleiche Byte-
009829/U43-
Docket Po 967 078
BAD ORIGINAL
position hinter der Position P1-1 in laufenden UK-Vergleich angezeigt. Ein Trigger 141b wird durch das Signal K - 3 gesetzt und liefert ein'Signal "Zustand C, das für den Rest der Abtastung des laufenden UK-Paares durch den ÜK-Zähler in Fig. 7 bestehen bleibt. Die Torschaltungen 14Oa und 140b zeigen ein Schlüsselbyte an einer Position P. 5» Pi-t an·
Die Fortschaltung des P-Zählers wird gestoppt, wenn, die Torschaltung 14Ob die erste ungleiche UK-Byteposition Kit einem Signal P-I feststellt, welches den Trigger 14Ib so setzt, daß dieser das Signal "Stopp P-Zählerw abgibt und das Signal "Start P-Zähler" abfallen lässt, Während desselben A2~ZyJclus signalisiert die Torschaltung 14Oa die übertragung des A2-Bytes als des letzten oder vielleicht einzigen Schlüsselbytes des laufenden CH, während die Torschaltung 140b die Übertragung des entsprechenden P-Bytes signalisiert. Für den Rest dieses fJK-*Vergleiches stellt der P-Zähler links von dem Wert P. und wird zum Zwecke äes Erzeugung des nächsten CK zum Wert Pj^1 ·
Die letzte UK-Abtastung erfolgt wäisrenö des Ztista&cües C*. Die Abtastung läuft welter, während der UK-Bytesähler waiter bei Tl fortgeschaltet wird, und zwar während jedes hl^Zjklus über die UND-Schaltung 3.06 in Fig. 7e auch wenn der P-Zähler beim Wert P^ stehen bleibt. Somit ist die ΏΚ-Sahl nicht langes fleisl:. der P-Zahl hinter- der Position P^. ©lese Weitersehalfetssic? durch den UK-Bytezähler wird fortgesetstf bis die A2«2yfclosfolge durch den Vergleicher 114 in. Pie» ? beendet wird. Er M@£erfe ein. Signal ÜK-Ende an die Torschaltung 142 in Fig. 8BP weleß© öinec; Trigger 142a so setzt. Dieser gibt das Signal *Rückst«!ltii%f ab : das die Beendigung der UK-Abtastung anzeigt.
Jedes Byte eines jeden i*l UK in einem Vergleich wird auf das A2-Register 124 in Fig. 8A über die Torschaltung 123 übertragen. Für die Übertragung vom A2-Register in das CK-FeId im Puffer 10 über eine Torschaltung 128b werden jedoch nur ausgewählte CK-Bytee zugelassen« Die Schaltung in Fig. 8B entscheidet, welche A2-Bytea im A2-Regieter 124 über die Torschaltung 128b als Schlüssel-Docket PO 96? 078 009829/1443
BAD ORIGINAL
bytes für das laufende CK-FeId zu übertragen sind. Die übertragung erfolgt über eine ODER-Schaltung 130 in Fig, 8A. Diese schaltet wahlweise die Torschaltung 128b für die übertragung eines jeden ausgewählten A2-Bytes in den Puffer IO als Teil des laufenden CK ein.
Die Schaltung in Fig. 8C steuert die Speicheradressen für den Puffer 10 mittels eines Speicheradresszählers XSg f der am Anfang auf die erste K-Byteadresse (Verschiebung 4i für den ersten CE gesetzt ist. Er wird bei Bedarf auf die Verschiebung.sadresae für die entsprechenden zu speichernden Bytes weitergeselisitet. Eint; ODER-Schaltung 159 steuert dia Adressenfort»«?!;, ir.iiju.g für die K- und R-Bytese Die Steuersignale K - I * * und K ~ 3 vor* Fig. 8B werden auf die ODER-Schaltung 155 sovie über üi* ÜND-Sch&.tttmg 160 für der» R«2yklus auf den Zähler ISi üfcer die ODER-Schaltung
158 und auf den Steuertrigger 161 ge^si'sn* IfBX Trigger 161 gleicht die verschiedenen Taktzeiten der Signale von der CD
159 aus t die vor T6 während eines K-Zyklus oder eines R-auftreten, wenn über eine UND-Schaltung J £2 das Adressengatter 157 so betätigt wird, daß dieses eine Adresse auf die Pufferadressier leitung 16 über die ODER-Schaltung 153 gibt* Trigger 161 wird durch den folgenden TQ-Impuls zurückgestelltν
Der F-1-Wert wird auf die adressierte P^-Stelle im Buffer IO vo» P-Zähler über die F.,-Torschaltung I2s> T die ODER-Sehaltunc 131 und die Leitung 13 in Fig· 8A übertrage»., Di« TaJctgebui:-c; für die Übertragung erfolgt über die ODER-Schaltung 133tp die äi-Signa: e F-I und P - 2 von der Fig* 8B oder ein bestinttt&.J Signal für das Indexende von J*«r üND-Schaltunc lii& eopfSngu -
Register 124 in Fig. 8A kann sowohl die R-Bytes als auch die A2-Bytes ohne Schwierigkeiten verarbeiten, da sie zu
009829/1443
Docket PO 967 078
BAD ORKatNAL
denen Zeiten auftreten, wie bereits oben für das Auftreten der Taktzyklen A2 und R von Fig. 6 erklärt wurde.
Die R-Zyklen an der Torschaltung 123 in Fig. 8A übertragen die Hinweisbytes der Reihe nach auf das Byteregister 124. In ähnlicher Heise kann die Torschaltung 128b die Wahl entweder der A2- oder der R-Bytes ohne Schwierigkeiten steuern, da sie zu verschiedenen Zeitpunkten auftreten. Die Hinweisbytes werden der Reihe nach durch jeden R-Zyklus bei T5 an der UND-Schaltung 127 übertragen, die die Torschaltung 128 betätigt« Die Hinweisbytes werden int Register 124 gepuffert, das ihre Rückspeicherung -in Puffer IO an einer anderen Adresse als der Adresse, von der ™ sie abgerufen wurden, gestattet. Diese Adresse wird entsprechend durch die Aufruf-Adressensteuerung 110 in Fig. 7 wnü Sein Speicher-Adressenzähler 156 in Fig. 8C angegeben. Diese beides! laufen in jedem R-Zyklus synchron. Diese Synchronisierung erfolgt durch die UND-Schaltung 100 in Fig. 7, die ODER-Schaltung 159, UND-Schaltung 160 und ODER-Schaltung 158 in Fig. 8C.
Das letzte R-Byte während einer Hinweisübertragung wird von
einem Vergleicher 189 in Flg. 8D abgegeben, wenn die RL-Zahl für die R-Zyklen erreicht ist. Die normale Fortschaltung des
Speicheradressenzählers 156 erfolgt auch während des letzten R-Zyklus. Dabei wird der Speicheradressenzähler auf die P-Byte- ä
adresse des nächsten CK gestellt.
Diese P-Byteadresse wird im Register 150 mit der Bezeichnung "Nächste P-Adresse" gespeichert, da die Feststellung des nächsten P. durch das Signal P-I nach Speicherung von einem oder mehreren Schlüsselsbytes erfolgen kann. Die P-Adresse wird im Register während des letzten R-Bytes gespeichert, indem der Speicheradressenzähler 156 durch das Signal R-Ende-Reserve vor dem nächsten P-Byte für den neuen CK weitergeschaltet wird.
Zur Steuerung dieses P. und der ersten K-Adressoperation in Fig. 8C wird während des letzten R-Bytes eines jeden Hinweises
Docket PO 967 078 009829/1443
BAD ORJQfNAL.
ein Signal erzeugt (R-Ende Reserve), welches die nächste P-Speicheradresse über die Torschaltung 152 in das Register 150 mit der Bezeichnung "Nächste P -Adresse" stellt, wo die nächste P,-Adresse zur Verfügung steht, während die Speicheradressteuerung auf die nächsthöhere Adresse, den zuletzt im Register 150 enthaltenen Wert, weitergeschaltet wird.
Das Gleichheit anzeigende RL-Signal ändert die Taktgebung von R-Zyklen auf Al- und A2-Zyklen um und leitet so den Vergleich für das nächste UK-Paar in der oben beschriebenen Art ein, was zur Erzeugung des nächsten CK führt. Diese Operation wird, für jedes folgende UK-Paar wiederholt, bis alle UK-Paare im Puffer 10 verarbeitet sind.
Das Ende der UK-Liste im Puffer 10 wird festgestellt, wenn der erste (und letzte) A2-Zyklus das Byte "Indexende" auf das A2-Byteregister überträgt. Jedes A2-Byte wird durch einen Endanzeigedecodierer 180 in Fig. 8D und eine UND-Schaltung 180a festgestellt, die einen Trigger 181 für die Anzeige des Indexendes setzt.
Der letzte CK wird aufgrund des Signales Indexende erzeugt. Der letzte CK hat einen P.-Wert 0, keine Schlüsselbytes und das zum letzten UK gehörige Hinweisfeld. Der P-Zähler wird durch das Signal Indexende vom Trigger 181 in Fig. 8D auf 0 zurückgesetzt. Der UK-Bytezähler wird durch die vorhergehenden R-Zyklen auf 0 zurückgestellt.
Der letzte A2-Zyklus schaltet den UK-Zähler über die Torschaltung 106 in Fig. 7 auf 1 weiter, wodurch die UK-Zahl größer als die P-Zahl wird. Dies verhindert eine Betätigung der in Fig. 8B gezeigten Schaltung. Der P-Zähler bleibt auf 0, da kein Signal Start P-Zähler auf die in Fig. 8A gezeigte Torschaltung 135 gegeben wird. Die im Register 150 in Fig. 8C gespeicherte P.Adresse wird während des letzten A2-Zyklus durch das über die ODER-Schaltung 151a und
Docket PO 967 078 0 D 9 8 2 9 / U 4 3
BAD ORiGlNAt
die Verriegelung 15ld auf eine UND-Schaltung 151c gegebene Signal Indexende ausgegeben. Der P.-Wert O im P-Zähler wird von der über die P.-Torschaltung 129 durch den letzten A2-Zyklus und das Signal Indexende zur Zeit T6 über die ODER-Schaltung 133b eingeschalteten UND-Schaltung 133a auf die Puffereingangsleitung 13 übertragen.
In Fig. 6 ersetzt das Signal Indexende das über die ODER-Schaltung 33b kommende Signal UK-Ende und leitet die R-Zyklusfolge (und die Endzyklen Al und A2) ein, so daß die Übertragung des R-Feldes in der oben beschriebenen Art beginnt.
Am Ende der Übertragung des letzten Hinweisfeldes wird die Zyklusfolge des Taktgebern durch ein allgemeines Rückstellsignal monostabilen Kippschaltung 185 beendet, die durch eine Torschaltung 183 in Fig. 8D eingeschaltet wird. Die Torschaltung 183 wird durch das Gleichheit anzeigende RL-Signal während des Vorhandenseins des Signales Indexende eingeschaltet.
Der genaue Ablauf des im gezeigten Ausführungsbeispiel wiedergegebenen Erzeugungsvorganges ist im Folgenden zusammengestellt:
I. Startsignal an Fig. 6 verursacht Kennzeichnungszzyklen und Start des Systems vor Abruf des ersten UK-Byte durch:
a) Setzen des Registers "Nächste P-Adresse" auf "IP-Byte" (Byte = 3).
b) Setzen "Speicheradresszähler zur Vorbereitung für die erste UK-Adresse (Byte = 3).
c) Setzen "P-Zähler" und "UK-Zähler" auf O vor Abruf des ersten UK.
d) Alle Trigger in Fig. 8B werden zurückgestellt, wobei nur die Signale "Nicht Zustand F" und "Start P-Zähler" aktive Signale sind.
Anfang der A1-A2 Taktfolge in Fig. 6
II. Zur Zeit Tl, UK-Bytezähler um 1 in Fig. 7 vorgeschaltet. Docket PO 967 078 009829/1443"
Zur Zeit T2, P-Zähler in Fig. 8A um 1 vorgeschaltet. Zur Zeit T3, wenn A1=A2, übergang nach III, wenn aber Al ungleich A2, übergang nach IV.
III. Zur Zeit T3, leite K - 1 in Fig. 8B, da ÜK-Zähler = P-Zähler und übergang nach II.
IV. Zur Zeit T3, leite K - 3 in Fig. 8B, da UK-Zähler = P-Zähler. Einschalten "Zustand C" in Fig. 8B.
Zur Zeit T4, leite P-I in Fig. 8B.
Einschalten "Stopp P-Zähler" und Ausschalten "Start P-Zähler in Fig. 8B und übergang nach V.
V. Schalte ÜK-Bytezähler um 1 weiter in Fig. 7 (P-Zähler ist jetzt mit P. gesperrt, da UK-Zähler ungleich P-Zähler).
Solange UK-Zähler ungleich MUKL-Register (d.h. kein Signal "UK-Ende"), gehe nach V.
Wenn UK-Zähler = MUKL-Register (d.h. Signal "UK-Ende", gehe nach VI.
VI. Einschalten Signal "Rückstellung Zustand C" in Fig. 8B. Ausschalten Signal "Zustand C in Fig. 8B. Beginn R-Zyklus folge in Fig. 6 zur übertragung der Hinweisbytes vom i.
UK i. CK. Beendigung der R-Byteübertragung angezeigt durch Signal "R-Ende Reserve" in Fig. 8D. übergang nach VII.
VII. Beginn der Al- und A2-Taktzyklusfolge in Fig. 6 für das nächste UK-Paar. (P.-Wert im P-Zähler jetzt neu zugeordnet als Wert Pj-1)- Zur Zeit Tl, UK-Bytezähler um 1 erhöht. Wenn das erste A2-Byte in Fig. 8D als Indexende decodiert wird, übergang nach XIII. Wenn erstes A2-Byte nicht als Indexende decodiert wird, übergang nach VIII.
VIII. Wenn UK-Bytezählerstand < P-Zählerstand und Al verschieden A2 in Fig. 8B, übergang nach IX, sonst übergang nach X.
009829/UA3
Docket PO 967 078
IX. Zur Zelt T3 Setzen Signal "Zustand E" in Fig. 8B. Zur Zeit T4 leite UK-Bytezählerstand in P-Zähler in Fig. 8A zur Erzielung des neuen P.. Zur Zeit T5 Torschaltung K - 2 in Fig. 8B einschalten zur übertragung des A2-Byte in Fig. 8A als K-Byte auf Puffereingangsleitung, in Fig. 8B Einschalten der Signale "Zustand C" und "Stopp P-Zähler" und Rückstellung des Signales "Rückstellung C". Zur Zeit T6 Betätigen der Torschaltung P-2 in Fig. 8B zur übertragung des Wertes von P^ in den P-Zähler in Fig. 8A auf die Puffereingangsleitung, Einschalten des Signales "Stopp P-Zähler" in Fig. 8B. übergang nach V. Λ
X. Wenn ÜK-Bytezählerstand ■.P-Zählerstand und A1=A2 (Torschaltung 146a), übergang nach XI, sonst übergang nach XII.
XI. Zur Zeit T2, Einschalten Signal "Zustand F" in Fig. 8B, Zur Zeit T7, Erzeugen Signal "Rückstellen Zustand C". Rückstellen Schalter "Zustand C". Rückstellen Schalter "Rückstellen C"^ Setzen "Start P-Zähler". übergang nach II.
XII. Wenn VIII und X nicht zutreffen, übergang nach VIII.
XIII. Rückstellen P-Zähler auf O in Fig. 8A. (Bedingungen f liegen vor, bei denen die Signale in Fig. 8B in den Anfangslagen bleiben). Start der R-Zyklen in Fig. 6 und übertragen letztes Hinweisfeld. Allgemeine Rückstellung in Fig. 8D am Ende der R-Byteübertragung zur Beendigung der Operation.
D. Suchvorgang
Das Grundlegende des Suchvorganges wurde bereits beschrieben. Dementsprechend wird nachfolgend eines der zahlreichen möglichen, erfindungsgemäßen Ausführungsbeispiele beschrieben.
009829/1443
Docket PO 967 078
1. Schaltungen für den Suchvorgang
Öle Eingabe von der Datenausgangsleitung in Fig. 12 besteht aus einem verdichteten Index, der von einer beliebigen Quelle stammen kann. Für dieses Ausführungsbeispiel sind zwei alternative allgemeine Quellen vorgesehen. Die eine Quelle ist eine Anlage mit wahlfreiem Hortzugriff wie z.B. ein Kernspeicher und die andere eine serielle Eingabe/Ausgabeinheit wie Platte, Trommel oder Band.
Fig. 10 zeigt eine Schaltung zum Anschließen solcher Geräte, nämlich einer EA-Einheit oder eines Pufferspeichers. Ein Eingabeauswahltrigger 305 wird durch Ausführung einer herkömmlichen Computerinstruktion betätigt. Die Instruktion kann die beiden Betriebsarten EA-Betrieb und Pufferbetrieb enthalten. Bei EA-Betrieb wird ein Trigger 301 in Fig. IQ gesetzt. Bei Pufferbetrieb wird dieser Trigger zurückgestellt. I» gesetzten Zustand verbindet der Trigger die EA-Einheit 300 alt der Datenausgangsleitung über die Torschaltung 302 und die ODER-Schaltung 304. Ia zurückgestellten Zustand verbindet der Trigger 301 die Pufferausgangsleitung 14 vom Puffer 10 in Fig. 2B über eine Torschaltung 303 und eine ODER-Schaltung 304 mit der Datenausgangsleitung.
Beim Suchvorgang wird die in den Fign. 9A und B gezeigte Taktsteuerschaltung benutzt, die dieselben Kennzeichnungszyklen liefert wie die Taktsteuerung für den Erzeugungsvorgang in Fig. 6. In gleicher Weise wird in Fig. 9A der MUKL-Zyklus zum ersten Rückstellen benutzt, das HUKL-Byte wird bei diesem Ausführungsbeispiel des Suchvorganges jedoch nicht übertragen. Fig. 4B zeigt die Taktierung für die Taktsteuerschaltung in den Fign. 9A undHWährend der LVL-Zykluszeit und Tl, wird das nächste Eingangsbyte (LVL) auf das LVL-Register 268 in Fig. 12 geleitet. Die Ausgänge des LVL-Registers legen fest, ob der verdichtete Index, welcher gerade verarbeitet wird, ein hohes oder niedriges Format hat.
Docket PO 967 078 009829/1443
BAD ORiOINAt.
Zur RL-Zykluszeit und zur Zeit TL, wird das nächste Eingangs* byte auf das RL-Register geleitet, welches die Länge für jedes Hinweisfeld hinter einem CK definiert.
Nach den RL-Zyklus folgt ein P-Zyklus. Zur Zeit TO während jedes P-Zyklus wird ein P.-Register 308 in Fig. 13 auf die Anfangsstellung 0 zurückgestellt. Während des P-Zyklus zur Zeit Tl wird das P-Byte eines CK von der Eingabeinheit auf das P -Register 3Q8 in Fig. 13 über die Torschaltung 307 zur Zeit Tl gesendet. Register P1-1 wurde durch den μ MOKL-Zyklus am Anfang auf +1 zurückgestellt. Die Ausgänge des P.-Register 308 und des P. ,-Zählers 314 werden auf den Vergleicher 316 geschaltet, um den P.-Wert (am Anfang 1 oder größer) mit dem Wert P. , (am Anfang 1) zu vergleichen. Wenn später P. kleiner als P^1 ist, wird ein Trigger 319 eingeschaltet.
Die Taktsteuerschaltung in Fig. 9B liefert nach jedem einzelnen P-Zyklus einen oder mehrere K-Zyklen. Während jedem K-Zyklus, wird ein K-Byte (das nächste Byte aus der Eingabeeinheit) zur Zelt Tl in das K-Register 256 in Fig. 12 geleitet. Das K-Register wird immer während jedes K-Zyklus zur Zeit TO über die UND-Schaltung 257 auf O zurückgestellt und wird zur % Zeit Tl über die Torschaltung 254 auf den Wert des empfangenen K-Bytes eingestellt.
Ein Gleichheitszähler 301 (Fig. 13) erhöht den Wirkungsgrad der Operation dadurch, daß er es ermöglicht, daß jedes Byte des Suchargumentes nur einmal in einem verdichteten Index untersucht wird. Dadurch können beim Erzeugungsvorgang die werthohen gleichen Bytes der verglichenen UK's fallengelassen werden.
Wenn bei einer K-Zykluszeit der Zähler P. , gleich dem Gleichheitszähler 301 in Fig. 13 ist, wird ein Byte des Suchargumentes (A) in das Suchargumentenregister 252 in FIg* 12 geleitet· Wenn das Suohargumentenbyte (A) größer
Docket ro 967 078 009829/1443
BAD
als das K-Byte (in K-Register) ist, bleibt das A-Byt· im Argunentenregister während das erste K-Byte des nächsten CK in das K-Register zu eine« weiteren Vergleich geleitet wird. Wenn das Α-Byte kleiner als das K-Byte ist, endet die Suche und die zu diesen CK gehörigen R-Bytee werden wiedergewonnen und in das Hinweisregister in Fig. 2B gestellt, wohin auch der Hinweis »it den ersten hohen CK gesetzt wird (wobei für die UK's eine aufsteigende Sortierfolge angenommen wird).
Die Anfangsstellung des Gleichheitszählers 301 in Fig. 13 ist der Wert 1, der während des MUKL-Zyklus bei TO über die UND-Schaltung 302 gesetzt wurde. Somit wird bein ersten Vergleich zwischen den Werten in Zähler P, , 314 und in Gleichheitszähler 301 Gleichheit festgestellt und diese Gleichheit wird durch ein Ausgangssignal des Vergleichers 303 angezeigt. Jede Gleichheit zwischen den Zählern 314 und 301 setzt während eines K-Zyklus zur Zeit T2 einen Gleichheitsschalter 306. Dieser Schalter 306 wird kurz danach zur Zeit T4 zurückgestellt ι so daß ein S.A.-Gleichheitssignal während der Zeiten T2-T4 signalisiert wird.
Wenn der Vergleicher 253 in Fig. 12 signalisiert, daB K - A ist und der Gleichheitsschalter 306 gesetzt ist, wird der Gleichheitszähler 301 durch das Gleichheitssignal über die UND-Schaltung 326 und die ODER-Schaltung 324 un 1 weitergeschaltet.
Während der nächsten K-Zykluszeit, wird ein neues K-Byte in das K-Register 256 in Fig. 12 geleitet. Wieder wird durch den Vergleicher 303 in Fig. 13 festgestellt, ob der Zähler 314 nit den Zähler 301 übereinstinnt. Wenn die beiden Zählerstände gleich sind, wird das nächste Suchargunentenbyte abgerufen und ein weiterer Vergleich durchgeführt. Der Gleichheitezähler 301 wird nicht gesetzt, wenn das K-Byte größer als das A-Byt· 1st. Statt dessen wird ein Trigger 328 über die UND-Schaltung
Docket PO 967 078 009829/1443
BAD ORIGINAL
327 gesetzt, die eine UND-Schaltung 329 vorbereitet. Diese beendet die Suchoperation für dieses Suchargument, nachdem der Hinweis der laufenden CK's durch Setzen des Triggers 331 (Suchvorgang vollständig) gefunden ist.
In Fig. 13 wird der Zähler 314 während jedes K-Zyklus zur Zeit T3 um 1 erhöht. Wenn während eines K-Zyklus zur Zeit TO P. gleich P. . ist, wird Trigger 222 für den nächsten R-Zyklus in Fig. 9B eingeschaltet. Der nächste Zyklus ist dann ein R-Zyklus. Nährend der R-Zyklen werden die Hinweisbytes von der Eingabeinheit dadurch in das Register 256 in Fig. 12 geleitet, daß die Torschaltung 254 durch die R-Zyklen Über die ODER-Schaltung 255 durchgeschaltet wird. Die Hinweisbytes werden Über die Torschaltung 256 auf die Puffereingangsleitung 13 gegeben, wenn diese Torschaltung durch die UND-Schaltung 260 aufgrund des R-Auswahlsignales eingeschaltet ist.
Zwischen dem RL-Register 259 und dem R-Zähler 264 wird durch einen Vergleich festgestellt, ob sie gleich sind. Ist das der Fall, wird das Ende des Hinweises durch ein Signal R * RL angezeigt. Dann wird der Trigger für den nächsten P-Zyklus eingeschaltet.
Während des P-Zyklus wird das P -Register in Fig. 13 zur Zeit TO auf O zurückgestellt und durch die Torschaltung 307 zur Zeit Ti auf ein neues P.-Byte gesetzt, das dann auf der Datenausgangsleitung von der Eingabeeinheit her vorliegt. Jedem P-Zyklus folgt ein K-Zykius, durch den das K-Register zur Zeit Tl mit dem nächsten Byte von der Eingabeinheit geladen wird.
Während jedes P-Zyklus wird durch eine Prüfung vom ¥©rgleicher 316 festgestellt, ob der Wert im P.-Register kleiner ist als · der Wert im Register 3?±_,· Ist das der Fall und der P.-Wert von O verschieden (was durch die UND-Schaltung 317 festgestellt wird), wird der Inhalt des P.-Registers über die Torschaltung 313 in den Zähler P. .gegeben, um einen neuen Wert zn liefern,
Docket PO 967 078 009829/1443
BAD ORtetNAL
- 36 -. der zu diesen Zeitpunkt P4 darstellt.
Wenn der Vergleicher 316 jedoch anzeigt, daß P. größer ist als Pj,* wird der von vorhergehenden CK stammonde P.-Wert zum Wert P1-1 und direkt benutzt. In diesem Fall wird der X«hier P^-1 wahrend jedes unmittelbar folgenden K-Zyklus über di· UND-Schaltung um l erhöht und stellt das nächste K-Byte dar. Der erhöhte Wert im Zähler P. . wird mit dem Wert im P^-Register durch den Vergleicher 316 verglichen· Ebenso wird der erhöht· Wert im Zähler Ρ±>>1 mit dem Wert im Gleichheitszähler Ober den Vergleicher 303 verglichen·
Der echte Wert für P1-1 ist nur im Zähler 314 enthalten, bevor er während einer neuen CK-Operation erhöht wird. Wenn er einmal erhöht ist, 1st der Wert im Zähler 314 * höher als der laufende Wert für P1- Jeder erhöhte Wert im P1-1-Zähler stellt die tatsächliche UK-Position für du laufende K-Byte in dem durch den laufenden CK dargestellten UK dar.
Nur wenn festgestellt wird, daß der erhöhte P1-1-Zählerwert gleich dem Wert im Gleichheitszähler ist, kann das nächst· Byte des Suchargumentes vom Puffer IO geholt und in das Argumentenregister 252 geladen werden.
Der Gleichheitszähler wird durch ein Signal "+1 in Gleichheitezähler" von der UND-Schaltung 326 um 1 erhöht, Diese UND* Schaltung wird zur Zelt T3 während eines K-Zyklus betätigt, sobald das laufende K-Byte gleich dem Suchargumentenbyte A ist. und das Signal "S.Jl.-Gleichheit" vom Trigger 306 empfangen wird. Das Signal S.A. Gleichheit wird zwischen den Zeiten T2 und T4 geliefert, und zwar nach einem Signal "S.A. Gleichheitszählerstand gleich P1-1" vom Vergleicher 303 zur Zelt T2 während eines K-Zyklus.
Nach der Weiterschaltung des S.A.-Gleichheitszählers,
009829/U43 Docket PO 967 078
BAD ORIGINAL
wird das nächste Argumentenbyte bis zum nächsten K-Zyklus nicht in das Suchargumentenregister 252 geleitet. Nach dem Laden des Suchargumentenregisters werden die Trigger 242 und 243 eingeschaltet, um eine Adressierung des nächsten Suchargunentes bis zu den Zeitpunkt zu verhindern, zu welchem ein weiteres Signal "+I In Gleichheitszähler" erzeugt wird.
Dasselbe Suchargumentenbyte wird dazu benutzt, der Reihe nach die CK's abzutasten, bis das Argumentenbyte gleich dem K-Byte an derselben relativen Position im unverdichteten Schlüssel (dargestellt durch den erhöhten Wert im Pj-1" Zähler 314) wie im Suchargument des laufenden Argumentenbyte* ist (dargestestellt durch den Wert im Gleichheitszähler 301).
Die Suche ist beim Vorliegen dreier Bedinungen abgeschlossen: (1) Ein laufendes Argumentenbyte A ist höher als ein K-Byte i» ganzen CK Index, d.h., das P-Byte wird als 0 durch den Nullendetektor 309 decodiert, oder (2) ein P.-Wert ist kleiner als die laufende Stellung des Gleichheitszählers oder (3) der Wert im Zähler P1-1 ist gleich dem Wert im Gleichheitszähler und das Argumentenbyte A ist kleiner als K. Die dritte Bedingung wird durch ein Ausgangssignal von der UND-Schaltung 327 angezeigt, das einen Trigger 328 einschaltet. Die zweite Bedingung wird angezeigt durch eine UND-Schaltung 315 in Fig. ™ 13, die durch ein Signal vom Vergleicher 303 eingeschaltet wird, welches anzeigt, daß P. kleiner als die laufende Stellung des Gleichheitszählers Zur Zeit T2 während eines K-Zyklus ist. Die erste Bedingung liegt offentsichtlich vor, wenn das Suchargument größer als ein Schlüssel ist und wird durch ein Ausgangssignal von der UND-Schaltung 332 verursacht, welches den Trigger 328 setzt.
Der Trigger 328 bleibt eingeschaltet und löst ein Signal R-Auswahl aus, während der laufende Hinweis oder Zeiger hinter de» letzten CK abgerufen und im Zeigerregisterteil des Puffers 10 in Fig. 2B gespeichert wird.
Docket PO 967 078 009829/U43
BAD ORIGINAL v
Das Ende der Hinweisübertragung wird durch ein Signal R - BL an die UND-Schaltung 334 angezeigt, die einen Trigger 331 "Suchvorgang vollständig* Ober die UND-Schaltung 329 setzt, welche ihrerseits durch den Trigger 328 oder Trigger 333 vorbereitet ist. Trigger 331 bereitet UND-Schaltung 336 für die Erzeugung eines allgemeinen Rückstellimpulses zur nächsten Zeit T6 vor, der dann die Trigger 328 und 333 sowie die Taktsteuerung in den Fign. 9A und 9B zurückstellt und den Suchvorg beendet.
Wenn das Argument im verdichteten Index nicht gefunden wird, wird schließlich durch den Detektor 309 in Fig. 13 ein P.Wert von O festgestellt. Dadurch wird die UND-Schaltung 332 während des letzten P-Zyklus eingeschaltet und setzt den Trigger 333, der dann ein Signal "K-Zyklus überspringen" an die Taktsteuerung in Fig. 9B gibt, so daß diese mit den R-Zyklen zum Setzen des letzten Hinweises in das Hinweisregister in Fig. 2B beginnt. Außerdem liefert der Trigger 333 ein Ausgangssignal über die ODER-Schaltung 333 auf die UND-Schaltung 329, um den Trigger 331 "Suchvorgang vollständig" zu setzen, wenn der letzte Hinweis registriert ist.
Somit zeigt das Signal für die Beendigung der Suche in Fig. 13 an, daß der ganze Hinweis im bezeichneten R-Register für den gefundenen Hinweis gespeichert ist und die Suchoperation damit abgeschlossen 1st.
Der letzte Hinweis kann dazu benutzt werden, den letzten ursprünglichen, unverdichteten Schlüssel abzurufen und daraufhin zu untersuchen, ob das Suchargument ein Teil der Ursprungs liste unverdichteter Schlüssel war. Ist das nicht der Fall, kann die Liste fortgeschrieben werden, indem neue UK's eingefügt und der CK Index neu erzeugt werden.
Die Schaltung in Fig. 11 stellt die Stelle im Puffer IO für die Hinwelsbytes fest, dl· durch Register 256 in Fig. 12
Docket PO 967 078 009829/1443
BAD ORfGiNAl.
- 3S -
auf die Puffereingangeleitung 13 übertragen werden, wenn der Trigger 328 in Fig. 13 geeettt ist. Die Adressierung des vorbestimmten Hinweisregister· in Fig. 2B erfolgt durch den XMhler 156 in Fig. 11. Das Signal für den nächsten R-Zyklus von Fig. 9B setzt den Adresszähler 156 auf die Startbyteadresse des Hinweisregisters la Puffer 10, die irgendeine verfügbare vorbestinuBte Stelle im Puffer IO sein kann. (Der Adressxähler kann auch die bei den Erzeugungsvorgang benutzte Speicheradressteuerung 156 sein). Eine UND-Schaltung 314 schaltet den Zähler 156 zur Seit T6 während jedes R-Zyklus vor, während der Trigger 328 so gesetzt wird, daß er jedes R-Byte la Hinweisregisterfeld erzeugt. Der andere Eingang zusi Addierer A liefert lauter Nullen auf den Addierer, da die Torschaltung 315 durch einen K-Zyklus nicht eingeschaltet wird.
Der Abruf-Adressenzähler HO kann ebenfalls derselbe sein, der beim Erzeugungsvorgang benutzt wurde. Er wird im Suchbetrieb durch den MUKL-Zyklus auf O zurückgestellt und danach zur Zeit T7 durch jeden folgenden Taktzyklus in Fig. um 1 erhöht. Die Abrufadresse wird vom Zähler HO zu jeder Taktselt TO auf die Pufferadressleitung 16 über die UND-Schaltung 312a und die ODER-Schaltung 312b ausgegeben. Somit tastet der Aufrufadressenzähler der Reihe nach einen verdichteten Index ab.
Die Sttchargumentenbytes werden auch durch den Zähler 156 adressiert, der während jedes P-Zyklus auf den Anfang einer vorbestimmten Suchargumentenreglsteradresse im Puffer 10 in Fig. 2B gesetzt wird. Die laufende Byteposition in dem für einen Vergleich benötigten Suchargument erhält man vom Gleichheitszähler 301 in Fig. 13· Sie wird auf die Torschal- , tung 315 in Fig. 11 gegeben, die sie während jedes K-Zyklus auf den Addierer A gibt, der den Wert des Gleichheitszählers zur ersten Argumentenadresse im Adresszähler 156 addiert. Der
009829/1443
Docket PO 967 078
BAD ORIGtNAl
Ausgang des Addierers A wird über die UND-Schaltung 313 und die ODER-Schaltung 312b zur Zeit T7 auf die Pufferadressleitung 16 gegeben um das für einen Vergleich mit dem laufenden K-Byte benötigte Argumentenbyte abzurufen.
Eine Suche nach dem Suchargument im selben verdichteten Index kann begonnen werden.
2. Taktsteuerungen für den Suchvorgang
Die Fign. 9A und B zeigen Such-Taktsteuerungen zur Lieferung der sechs Zyklusarten, die in Fig. 4B gezeigt und zur Absuche eines verdichteten Index benutzt werden. Die Suchtaktsteuerungen für die ersten Kennzeichnungsbytes in Fig. 9A sind ähnlich wie die Steuerungen für die Kennzeichnungsbytes der in Fig. 6 gezeigten Erzeugungs-Taktsteuerungen. -
Durch die Suchtaktsteuerungen wird eine Gesamttaktfolge beim Suchen eines verdichteten Indexblockes geliefert, der mit einem CK endet, dessen P-Byte O ist. Die Kennzeichnungsbytezyklen (MUKL, LVL und BL) treten einmal pro Suche für ein Suchargument auf. Der P-Zyklus tritt einmal während des P-Bytes am Anfang eines jeden CK auf. Ein K-Zyklus tritt einmal pro K-Byte in einem CK auf. Ein R-Zyklus tritt einmal pro mit einem CK verbundenen Hinweisbyte auf.
Die Taktsteueroperation beginnt mit einem Startsignal auf der Leitung 205 in Fig. 9A. Dieses Startsignal wird genauso erzeugt, wie es für das Startsignal in Fig. 6 erklärt wurde.
Die Trigger und die Operation für diese drei Kennzeichnungszyklen in Fig. 9A sind identisch mit den genauso bezeichneten
Docket PO 967 078 009829/ U43
Schaltungen in Flg. 6, die bereits oben für den Erzeugungsvorgang beschrieben wurden.
Demnach unterscheiden sich die Suchtaktsteuerungen von den Erzeugungstaktsteuerungen. Das ist hauptsächlich auf die unterschiedliche Länge der CK's beim Suchvorgang im Gegensatz zur festen Länge der UK's beim Erzeugungsvorgang zurückzuführen. Die unterschiedlichen Längenbedingungen werden in Fig. 9B durch einen Trigger 213 für den nächsten Zyklus behandelt. Dieser Trigger zeigt im Voraus an, wenn die nächste Zyklusart gewählt werden muß. Daher wird der Trigger 213 {f durch eine Torschaltung 212 zur Zeit Tl während eines RL-Kennzeichnungszyklus gesetzt, da ein P-Zyklus einem RL-Zyklus folgen muß. Außerdem folgt bei jeder Hinweisabtastung ein P-Zyklus dem letzten R-Zyklus, was durch ein Signal R = RL an die UND-Schaltung 218 angezeigt wird, die Träger 213 zur Zeit T6 während des RL-Zyklus setzt. Im gesetzten Zustand bereitet Trigger 213 die Torschaltung 214 vor, die dann den P-Zyklustrigger zur nächsten TO-Zeit setzt. Daher beginnt der P-Zyklus bei der nächsten Zeit TO und Trigger 213 für den nächsten P-Zyklus wird beim nächsten Tl-Impuls zurückgestellt.
Ein Trigger 229 für den nächsten K-Zyklus wird durch die Torschaltung 228 während des P-Zyklus zur Zeit T6 einge- ™ schaltet, wenn P verschieden von O ist (d.h. nicht der letzte CK). Die Torschaltung 231 wird dadurch vorbereitet, so daß sie den nächsten TO-Impuls durchläßt, der den K-Zyklus-Trigger auf den Anfang eines K-Zyklus setzt. Der erste K-Zyklus stellt den P-Zyklustrigger über die ODER-Schaltung 216 zurück.
Der Zyklustrigger bleibt während der K-Bytes im laufenden CK gesetzt, worin die K-Zyklen nacheinander ablaufen, bis ein Signal p iye*m.1 vora Vergleicher 316 in Fig. 13 anzeigt, daß der Inhalt des P .^-Zählers 314
Docket PO 967 078 009829/U43
gleich dem laufenden P -Wert im Register 308 ist.
Das Signal P^P1.x an die UND-Schaltung 221 veranlasst das Setzen des Triggers 222 für den nächsten R-Zyklus während jedes letzten K-Bytes bei niedrigem Verdichtungsformat. Zur folgenden Zeit Tl wird Trigger 229 für den nächsten K-Zyklus zurückgestellt und Trigger 222 für den R-Zyklus auf den Anfang einer Folge von R-Zyklen gesetzt. Der erste R-Zyklus stellt den K-Zyklustrigger über die ODER-Schaltung 232 zurück. Die R-Zyklen laufen weiter, bis die R-Zahl gleich dem RL-Wert im Register 259 in Fig. 12 ist, was durch ein Ausgangssignal RL CT vom Vergleicher 261 in Fig. 12 an die Torschaltung 218 in Fig. 9B signalisiert wird. Diese setzt den Trigger für den nächsten P-Zyklus zur Zeit T6 und der Vorgang läuft bei niedriger Verdichtung für jeden nächsten CK noch einmal ab, bis ein P-Byte mit dem Wert O abgefühlt wird, welches das Ende einer CK-Gruppe anzeigt. Dadurch wird ein Signal "K-Zyklus überspringen" vom Trigger 333 in Fig.
erzeugt, das den Trigger 222 in Fig. 9B auf die nächsten R-Zyklen setzt und dadurch die K-Zyklen für den letzten CK überspringt. Dadurch ist die Taktsteuerung bei niedrig verdichtetem Indexbetrieb beendet.
Die Operation für hoch verdichteten Indexbetrieb ist ähnlich, jedoch folgt hier ein zweiter Satz von P-Zyklen und K-Zyklen einem ersten Satz von P- und K-Zyklen, bevor die R-Zyklen erzeugt werden, wie es durch die Folge in Fig. 5B dargestellt ist. Diese wird durch einen Binärtrigger 211 gesteuert, der am Anfang zurückgestellt und durch jeden folgenden P-Zyklus umgeschaltet wird.
Somit bereitet nach einer ungeraden Anzahl von CK's der Binärtrigger 211 eine UND-Schaltung 209 auf das Setzen des Triggers 213 am Ende des letzten K-Zyklus des letzten CK vor, wodurch ein P-Zyklus anstatt eines R-Zyklus eii 3Hi ungeraden CK folgt. Die geradzahligen CK-Signale vom Trigger 211
Docket PO 967 078 0 0 9 82 9/1443
bereiten eine UND-Schaltung 221 über die ODER-Schaltung 219 auf das Setzen des Triggers für den nächsten R-Zyklus vor.
Ua eine Zweideutigkeit der Suche zu vermeiden, sollte hinter dem wertniedersten Byte des Suchargumentes ein Spezialbyte stehen, das kleiner ist als jedes mögliche K-Byte im Index. Als Spezialbyte kann das niedrigste Byte in der verwendeten Sortierfolge benutzt werden. Wenn dann bei einem Suchvorgang alle Sucharguaentenbytes zu einem gleichen Vergleichsergebnis führen, erzwingt dieses Spezialbyte ein A<.K beim nächsten K-Byte, so daß die Suche beim laufenden CK beendet und sein Hinweis gelesen wird.
Docket PO 967 078 0 0 9 8 2 9 / U 4 3

Claims (17)

PATENTANSPRÜCHE
1. Verfahren zum Wiederauffinden gespeicherter Informationen in Verbindung mit einem Verfahren zur Erzeugung verdichteter ' Schlüssel aus einer Folge sortierter, verschiedenen Informationsgegenständen zugeordneter, unverdichteter Schlüssel, dadurch gekennzeichnet, daß zur Erzeugung der verdichteten Schlüssel nacheinander jeweils ein Paar in der sortierten Folge aufeinanderfolgender unverdichteter Schlüssel aufgerufen wird, daß beginnend mit der höchstwertigen Byteposition die sich entsprechenden Bytepositionen jedes Schlüsselpaares unter Bildung von Gleichsignalen und Ungleichsignalen miteinander verglichen werden, daß die Bytepositionen bis zur höchsten ungleichen Byteposition gezählt werden und daß mindestens das aus der höchsten ungleichen Byteposition stammende Schlüsselbyte des zweiten Schlüssele jedes -Paares in dem gebildeten verdichteten Schlüssel gespeichert wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daft die Anzahl der Bytepositionen bis zur höchsten ungleichen Byteposition als Kontrollfeld für den jeweiligen verdichteten Schlüssel gespeichert wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die Speicherung eines Kontrollfeldes für jedes aufeinanderfolgende Paar unverdichteter Schlüssel zur Erzeugung eines verdichteten Schlüssels wiederholt wird, wobei der zweite unverdichtete Schlüssel jedes Paares jeweils den ersten unverdichteten Schlüssel des folgenden Paares bildet.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß das Schlüsselbytefeld jeweils nach dem Kontrollfeld gespeichert wird.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß im Kontrollfeld der Wert Null gespeichert wird, um damit das Indexende anzuzeigen.
Docket PO 967 078 0 0 9 8 2 9 / U 4 3
6. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß nach der Erzeugung eines verdichteten Schlüssels jeweils ein Zeiger (Hinweisadresse) für die vom ersten unverdichteten Schlüssel repräsentierten Daten angefügt wird.
7. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß die höchste ungleiche Byteposition des vorhergehenden und des gerade erzeugten verdichteten Schlüssels gespeichert werden.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß die höchste ungleiche Byteposition des vorhergehenden und des μ gerade erzeugten verdichteten Schlüssels verglichen werden und dabei ein Signal erzeugt wird, das angibt, ob die höchste ungleiche Byteposition des gerade erzeugten verdichteten Schlüssels höher, gleich oder niedriger als die des vorhergehenden verdichteten Schlüssels ist.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß die höchste ungleiche Byteposition des gerade erzeugten verdichteten Schlüssels als Kontrollfeld gespeichert wird und daß außerdem das Byte dieser Byteposition aus dem zweiten unverdichteten Schlüssel als Schlüsselbyte für den gerade erzeugten verdichteten Schlüssel gespeichert wird, wenn ein Signal erzeugt wird, das angibt, daß die höchste ungleiche Byteposition f des gerade erzeugten verdichteten Schlüssels gleich oder niedriger als die des vorhergehenden verdichteten Schlüssels ist.
10. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß die höchste ungleiche Byteposition des vorhergehenden verdichteten Schlüssels als Kontrollfeld gespeichert wird und daß außerdem alle Bytepositionen des zweiten unverdichteten Schlüssels von der höchsten ungleiche Byteposition des vorhergehenden bis zu der des gerade erzeugten verdichteten Schlüssels gespeichert werden, wenn ein Signal erzeugt wird, das angibt, daß die höchste ungleiche Byteposition des gerade 'erzeugten verdichteten Schlüssels höher als die des vorher-
Docket PO 967 078 0 0 9 8 2 9 / U 4 3
gehenden verdichteten Schlüssels ist.
11. Verfahren zum Suchen nach einem Suchargument in einem verdichteten Index, bei dem jeder verdichtete Schlüssel mindestens ein Schlüsselbyte enthält, dadurch gekennzeichnet, daß das vorhergehende Xontrollfeld und das des gerade anstehenden verdichteten Schlüssels registriert werden und daß beide Kontrollfelder verglichen werden, wobei festgestellt wird, ob das anstehende Kontrollfeld höher, gleich oder niedriger als das vorhergehende Kontrollfeld ist.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß im anstehenden verdichteten Schlüssel ein einzelnes Schlüsselbyte aufgezeichnet wird, wenn beim Vergleich festgestellt wird, daß das anstehende Kontrollfeld gleich oder niedriger als das vorhergehende ist, wobei die höchste ungleiche Byteposition des anstehenden verdichteten Schlüssele vom anstehenden Kontrollfeld geliefert wird.
13. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß für den anstehenden verdichteten Schlüssel eine Angabe über die Schlüsselbyteanzahl gleich der um Eines erhöhten Differenz zwischen dem anstehenden und dem vorhergehenden Kontrollfeld ermittelt wird, wenn beim Vergleich festgestellt wird, daß das anstehende Kontrollfeld größer als das vorhergehende Kontrollfeld ist, wobei die höchste ungleiche Byteposition für den anstehenden verdichteten Schlüssel vom vorhergehenden Kontrollfeld geliefert wird.
14. Verfahren nach den Ansprüchen 12 oder 13, dadurch gekennzeichnet, daß beginnend mit dem höchstwertigen Byte jeweils ein Byte des Sucharguments übertragen wird, daß das gerade anstehende Byte des Suchargusents mit dem höchstwertigen Schlüsselbyte eines verdichteten Schlüssels verglichen wird und daß ein Suchsignal erzeugt wird, das angibt, db das Schlüsselbyte höher, gleich oder niedriger als das Byte des
Docket PO 967 G7B 009829/1443
Sucharguments ist.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß ein Suchvorgang abgeschlossen wird, wenn das Suchsignal angibt, daß das Schlüsselbyte höher als das Byte des Sucharguments ist.
16. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß jeweils das nächste Schlüsselbyte des anstehenden verdichteten Schlüssels alt dem nächsten Byte des Sucharguments verglichen wird, wenn das Suchsignal angibt, daß das Byte des Suchargument8 und das Schlüsselbyte gleich sind.
17. Verfahren nach Anspruch 14, dadurch gekennzeichnet,· daß zum nächsten verdichteten Schlüssel übergegangen wird, wenn das Suchsignal angibt, daß das Schlüsselbyte geringer als das Byte des Sucharguments ist.
Docket PO 967 078 009829/1443
DE19691965507 1969-01-03 1969-12-30 Verfahren zum Wiederauffinden gespeicherter Informationen Withdrawn DE1965507A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US78887669A 1969-01-03 1969-01-03

Publications (1)

Publication Number Publication Date
DE1965507A1 true DE1965507A1 (de) 1970-07-16

Family

ID=25145858

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19691965507 Withdrawn DE1965507A1 (de) 1969-01-03 1969-12-30 Verfahren zum Wiederauffinden gespeicherter Informationen

Country Status (6)

Country Link
US (1) US3613086A (de)
JP (1) JPS4922222B1 (de)
CA (1) CA918811A (de)
DE (1) DE1965507A1 (de)
FR (1) FR2027738A1 (de)
GB (1) GB1280484A (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5524134B2 (de) * 1974-11-15 1980-06-27
US4232375A (en) * 1978-06-12 1980-11-04 Ncr Corporation Data compression system and apparatus
US5270712A (en) * 1992-04-02 1993-12-14 International Business Machines Corporation Sort order preserving method for data storage compression
US5590317A (en) * 1992-05-27 1996-12-31 Hitachi, Ltd. Document information compression and retrieval system and document information registration and retrieval method
US5832499A (en) * 1996-07-10 1998-11-03 Survivors Of The Shoah Visual History Foundation Digital library system
US6353831B1 (en) 1998-11-02 2002-03-05 Survivors Of The Shoah Visual History Foundation Digital library system
US6909384B2 (en) * 2002-01-31 2005-06-21 Microsoft Corporation Generating and searching compressed data
US11073828B2 (en) * 2017-12-08 2021-07-27 Samsung Electronics Co., Ltd. Compression of semantic information for task and motion planning
CN113659993B (zh) * 2021-08-17 2022-06-17 深圳市康立生物医疗有限公司 免疫批次数据处理方法、装置、终端及可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3030609A (en) * 1957-10-11 1962-04-17 Bell Telephone Labor Inc Data storage and retrieval
US3275989A (en) * 1961-10-02 1966-09-27 Burroughs Corp Control for digital computers
US3242470A (en) * 1962-08-21 1966-03-22 Bell Telephone Labor Inc Automation of telephone information service
US3295102A (en) * 1964-07-27 1966-12-27 Burroughs Corp Digital computer having a high speed table look-up operation
US3408631A (en) * 1966-03-28 1968-10-29 Ibm Record search system
US3448436A (en) * 1966-11-25 1969-06-03 Bell Telephone Labor Inc Associative match circuit for retrieving variable-length information listings

Also Published As

Publication number Publication date
FR2027738A1 (de) 1970-10-02
CA918811A (en) 1973-01-09
JPS4922222B1 (de) 1974-06-06
US3613086A (en) 1971-10-12
GB1280484A (en) 1972-07-05

Similar Documents

Publication Publication Date Title
DE2547035C3 (de) Datenverarbeitungseinrichtung
DE3788563T2 (de) Verfahren und Einrichtung um eine Datenbankadresse zu bestimmen.
DE2854397A1 (de) Pufferspeichereinheit fuer ein datenverarbeitungssystem
DE69026764T2 (de) Verfahren zur Datenübertragung mit hoher Geschwindigkeit
DE2400161A1 (de) Datenverarbeitungssystem und in diesem enthaltenes speichersystem
DE2905328A1 (de) Verfahren und vorrichtung zur assoziativen informationswiedergewinnung
DE1449532B2 (de) Datenverarbeitungsanlage
DE2755897A1 (de) Ein/ausgabe-system
DE2227148B2 (de) Schaltungsanordnung zur Umsetzung digitaler Daten
DE602004008911T2 (de) Verfahren und system um die reihenfolge von paketen mit hilfe eines zwischenspeichers zu gewährleisten
DE1288144B (de)
DE2132250B2 (de) Datenübertragungssystem
DE2227975A1 (de) Vorrichtung und verfahren zum verschluesseln von binaersignalen
DE69129729T2 (de) FIFO-Puffer
DE2000340A1 (de) Verfahren und Vorrichtung zum Suchen verdichteter gespeicherter Informationen
DE1965507A1 (de) Verfahren zum Wiederauffinden gespeicherter Informationen
DE1449544A1 (de) Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk
DE1271191B (de) Einrichtung zur UEbertragung von Informationseinheiten in die Binaerstellen eines Umlaufspeichers
DE1549681B1 (de) Einrichtung zum optischen darstellen von zeichen
DE1964570A1 (de) Verfahren zum Wiederauffinden gespeicherter Informationen
DE3333366A1 (de) Aufloesungsnetzwerk fuer zuletzt erfolgte benutzungen
DE1499713A1 (de) Verfahren und Schaltungsanordnung zum Packen von Informationen in einem zyklisch umlaufenden Speicher mit wahlfreiem Zugriff zu den auf den Spuren befindlichen Speicherzellen
DE2031797A1 (de) Verfahren zur Erzeugung eines mehr stufigen verdichteten Index
DE2517525B2 (de) Verfahren und Signalisierungsidentifizierer zum Erkennen von Fernmelde-Signalisierungskriterien
EP1145113B1 (de) Verfahren und anordnung zur erzeugung und ausführung von komprimierten programmen eines vliw-prozessors

Legal Events

Date Code Title Description
SH Request for examination between 03.10.1968 and 22.04.1971
8130 Withdrawal