DE2027464A1 - Verfahren zum W lederauffinden ge speicherter Informationen - Google Patents

Verfahren zum W lederauffinden ge speicherter Informationen

Info

Publication number
DE2027464A1
DE2027464A1 DE19702027464 DE2027464A DE2027464A1 DE 2027464 A1 DE2027464 A1 DE 2027464A1 DE 19702027464 DE19702027464 DE 19702027464 DE 2027464 A DE2027464 A DE 2027464A DE 2027464 A1 DE2027464 A1 DE 2027464A1
Authority
DE
Germany
Prior art keywords
byte
key
signal
stored
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
DE19702027464
Other languages
English (en)
Inventor
Edward Poughkeepsie NY Loizides (V St A )
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 DE2027464A1 publication Critical patent/DE2027464A1/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/99931Database or file accessing

Description

IBM Deutschland Internationale Büro-Maichinen Getellsthaft mbH
Anmelderin:
Böblingen, 11. Mai 1970 gg-rz
International Business Machines Corporation, Armonk, N.Y. Io 5o4
Amtliches Aktenzeichen:
Neuanme!dung
Aktenzeichen der Anmelderin: Docket PO 968 027
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, unverdichteter 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 und in dieser Form auch wieder zu suchen. Jeder verdichtete Schlüssel liefert
009884/1897 '■
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 Vorfahren weisen in vieler Hinsicht Mängel auf„ Sin wesentlicher Mangel ergibt sich aus dem großen Bedarf aa Speicherkapazitäto Die unverdichteten Schlüsselformate bedingen,, daß bei jedem eine große Anzahl von Bytes in
muß. Diese Verfahren sind
aufwendig, wenn ein großer Index abgesucht ©des· snaeh wenn ein kleiner Index wiederholt abgesucht werden muB, Die Erfindung vermeidet diese Mängel, da durch sie die Äaaahl der abzutastende» Bytes je Zugriff wesentlich herabgesetzt wiröL huf. diese Weise wird der Bedarf an Speicherkapazität und di® Sraehzeit wesentlich Ml herabgesetzt.
Bei der gegenwärtigen Computer verwendenden Süshteetoik, wie sie in den angegebenen US-Patentschriften begchriefofsn ist g sind den auf Magnetplatten- oder Magenttromm@lsp@i6h@rn gespeicherten Dokumenten zum Zwecke der Indeusiemang wmrerd±eht@fc@ Schlüssel zugeordnet. Eine Suche nach eineia Dokoeant kam über <äe» Schlüssel oder über die Adresse des Dokumentes erf©lg©ao Beispielsweise sind in den US-Patentschrift©» 3 <30@ 631» 3 35© iS3, 3 343 134, 3 344 402, 3 344 403 wad 3 344 405. aaip@ffd±eat©t@ Schlüssel auf Magnetplattenspeichern registriert. Ein foestiimtdS' Schlüssel kann durch Vergleich mit ©inern entsprechend®» Sraehargraient ermittelt werden. Sobald <SI<!l@titeit 'rolschen Schlüssel und Suchargu-
Docket PO 968 027
■ ;. : ■ ■■■■. ■ - 3 - ■■:■■■..■
ment 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 von digitalisierten Fernsehsignalen. Die US-Patente 3 824 und 3 237 170 zeigen Verfahren,bei denen die Anzahl der Nichtübereinstimmungen- zwischen aufeinanderfolgenden Verläufen digitaler Übertragungssignale 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, wobei die Forderung der Reversierbarkeit nicht besteht.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zum Wiederauffinden gespeicherter Information anzugeben, wobei in erster Linie Wert darauf gelegt wird, mit einem Minimum an Speicherkapazität und ebenso mit einem Minimum an Suchzeit auszukommen.
Das erfindungsgemäße Verfahren baut auf einem in der Patentanmel-DocKet PO 968 O27
dung P 1 965 507 angegebenen entsprechenden Verfahren auf und weist diesem gegenübercden Vorteil auf, daß es bei maximaler Verdichtung einfacher ist, schneller arbeitet.» Das erfindungsgemäße Verfahren eignet sich insbesondere für die Anwendung bei verdichteten Indexen, die häufig abgesucht werden, aber nur relativ selten erweitert oder verändert werden müssen.
Gemäß der Erfindung wird 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 verdichteter Schlüssel jeder unverdientste Schlüssel mit dem in der Folge jeweils voranstehenden Schlüssel byteweise verglichen und die höchste ungleiche Byteposition ermittelt wird,, daß lediglich das Schlüsselbyte aus der höchsten ungleichen Byteposition eines jeden unverdichteten Schlüssels gespeichert wird und daß dieses Schlüsselbyte in die verdichtete Folge eingefügt wird und alleine den verdichteten Schlüssel bildet.
Vorteilhafte Weiterbildungen bestehen darin, daB für das ermittelte Schlüsselbyte eine Stellenanzeige in Bezug auf den zugehörigen unverdichteten Schlüssel erzeugt wird und daß diese Stellenanzeige mit dem Schlüsselbyte gespeichert wird, wobei jeder verdichtete Schlüssel eine feste Länge aufweist, und daß jeder unverdichtete Schlüssel einen Hinweis auf die Adresse des Speicherplatzes der zugeordneten Information enthält und daß dieser Hinweis dem entsprechenden verdichteten Schlüssel hinzugefügt wird.
Ein Verfahren zum Suchen eines Schlüssels nach einem Suchargument in einem verdichteten Index, bei dem jeder verdichtete Schlüssel aus einem einzelnen Schlüsselbyte «ad einer Stellenanzeige in Bezug auf den zugehörigen unverdichteten Schlüssel besteht, ist dadurch gekennzeichnet, daß die Stellenanzeige jedes verdichteten Schlüssels der Folge gelesen wird, daß ein Suchargumentbyte mit dieser Stellenanzeige aufgerufen wird, daß dieses Suchargumentbyte mit dem Schlüsselbyte des verdichteten Schlüssels verglichen wird
Docket PO 968 027 009884/1897
und daß bei Gleichheit ein Signal erzeugt und der entsprechende Schlüssel gespeichert wird.
Vorteilhafte Weiterbildungen des Verfahrens zum Suchen eines Schlüssels bestehen im einzelnen in folgenden Maßnahmen, die dadurch gekennzeichnet sind,
daß ein Signal erzeugt wird, wenn beim Vergleich des Suchargumentbytes mit einem Schlüsselbyte ein bestimmter Zusammenhang angezeigt wird, und daß bei Auftreten dieses Signals ein Kennzeichen für den entsprechenden verdichteten Schlüssel gespeichert wird,
daß die Stellenanzeige des verdichteten Schlüssels für den das Kennzeichen gespeichert wird, registriert wird,
daß der Hinweis eines letzten verdichteten Schlüssels gespeichert wird, bei dem das erzeugte Signal die Gleichheit des Suchargumentbytes mit dem Schlüsselbyte angibt,
daß bei Auftreten des Signals ein Kennzeichen für die Bewertung gespeichert wird, das bei der weiteren Suche nach dem vorliegenden Suchargument ausgewertet wird,
daß in Abhängigkeit davon, ob das Schlüsselbyte des verdichteten Schlüssels höher oder niedriger als das Suchargumentbyte ist, als Kennzeichen in entsprechender Weise ein hohes oder niedriges Signal erzeugt wird, und daß die Stellenanzeige des entsprechenden verdichteten Schlüssels gespeichert wird,
daß bei Auftreten des Gleichheitssignals ein zweites Kennzeichen für die Bewertung gelöscht wird,
daß Kennzeichen für die Gleichheit und für die Ungleichheit zur Bewertung eines oder mehrerer aufeinanderfolgender verdichteter Schlüssel gespeichert und kontrolliert werden,
daß beim Vergleich ein hohes oder ein niedriges Signal erzeugt wird, abhängig davon, ob das Schlüsselbyte höher oder niedriger als das
Docket PO 968 027 009884/1897
Sucharguinentbyte ist, und daß ein oder beide Bewertungskennzeichen von diesem Signal beeinflusst werdenο
Schließlich besteht elra vorteilhaftes Ausführungsbeispiel darin, daß das Suchverfahren auf zunehmende wie auf abnehmende Schlüsse1-folgen anwendbar gemacht wird.
Die Erfindung wird durch die nachstehende Beschreibung 'und die Zeichnungen näher erläutert. Es zeigen;
Fig. IA . Darstellung eines unverdientsten. Index,,
)| Fig. IB Darstellung des entsprechenden, abgeleiteten ver~
dichteten Index,
Fign. 2A und B Pufferspeicher and E/Ä-Sehaltttngon.zum Speiehern
oder Lesen eines anverdichteten.,, bzw. verdichte=· ten Index,
Fign. 3A^ 3B, 4 Schaltwagen g«r Steuerung des Erg©wpingsv©rgangs 5A und 5B von verdichteten Schlüssels mit eia©m Sehllisselbyte,
Fign. 6A und 6B Taktierung beim Eraeugungsvorgang,
^ " Fig. 7 Takt- und Betriebsartsteuenaag,
Fign. 8 und 9 Taktsteuerung
Fign. IQA bis C Ablauf eines
Fign. HA - 16 beim
Fig. 17
Fig. 18 Taktstewonaagsafklea der Sefaaltmag gemäß Fig» 17 und
Fign. 19A - D Ablauf eia@s SisetworgsiJSf@s Docket PO 968 027 009884/18g7
Erzeugungsvorgang allgemein
Beim erfindungsgemäßen Erzeugungsvorgang besteht die Eingabe aus einer sortierten UK-Folge (UK ■ unverdichteter Schlüssel). Diese Schlüssel bilden einen Suchindex für beliebige Angaben. Jeder Schlüssel kann beispielsweise ein Name, eine Personalnummer oder eine andere Angabe in alphabetischer, numerischer und/oder in einer anderen Zeichenform sein. Die Adresse dieser Angabe wird dem zugeordneten Schlüssel mitgegeben. Diese Adresse wird "Hinweis" genannt, da sie tatsächlich die Stelle oder den Speicherplatz bezeichnet, an der die Angabe zu finden ist. Obwohl diese Angaben vorzugsweise maschinell suchbar sind, können sie auch mit Hilfe der Hinweise durch manuelle Bedienung wieder aufgefunden werden. Die tatsächlichen Speicherplätze der Angaben können in Bezug auf ihre zugeordneten Schlüssel eine beliebige Ordnung aufweisen. Die Angaben können in einer sortierten oder in einer unsortierten Reihenfolge gespeichert sein.
Wenn die UK's in unsortierter Folge vorliegen, müssen sie vor Beginn des erfindungsgemäßen Erzeugungsvorganges sortiert werden. Beispiele von unverdichteten Schlüsselfolgen: Die Namen eines Telefonverzeichnisses, die Personalnummern der Angestellten eines Betriebes, die Autorenkartei einer Bibliothek, die Teilnummern einer Bestandsliste, etc. In einer Folge gibt es nicht zwei gleiche UK's. Ein UK besteht beispielsweise aus einem Namen und einer Adresse, welche mögliche, mehrfach vorkommende Namen unterscheidet.
Die Schlüssel werden in einer ganz bestimmten Sortierfolge angeordnet. Diese kann sich nach einem numerischen, einem alphabetischen oder nach einem anderen Ordnungsprinzip richten. Einem Telefonverzeichnis oder einem Wörterbuch liegt beispielsweise ein alphabetisches Ordnungsprinzip zugrunde. Auch in der sortierten Reihenfolge werden die Schlüssel nicht von ihren dazugehörigen Hinweisen getrennt.
Wenn die UK-Folge sehr lang ist, kann sie in mehrere Teile zerlegt werden. Am günstigsten wird eine Folge so zerlegt, daß die
Docket PO 968 027 00 988 4/ 1897
einzelnen Teile der Kapazität einer E/A-Einheit in einem Datenverarbeitungssystem entsprechen» Jeder Teil kann als ein separater Eingabeblock betrachtet werden.
Jeder Teil einer Folge wird im folgenden "unverdienteter Indexsatz" genannt.
In dieser Beschreibung werden UK's eines zunehmenden Index vorausgesetzt. Die Erfindung kann aber auch in einer abnehmenden UK-Fölge angewandt werden. In diesem Fall müssen die Sortier- _ regeln umgekehrt werden. Der Erzeugungsvorgang für einen ver-™ dichteten Index mit CK's (CK = verdichteter Schlüssel) einer abnehmenden Sortierfolge ist der gleiche. Es wird die von K> Ά oder K < A abhängige Beziehung umgekehrt. Es kann P_ den Wert P„ ersetzen, wobei PT=P. wenn K < Ά. Die Bedeutung von P„ wird weiter unten erklärt.
Die Tabellen A, B, C und D stellen jeweils einen UK-Index dar.
Im sortierten Index sind die aufeinanderfolgenden UK's jeweils mit den Zahlen 1, 2, 3, usw. gekennzeichnet. Jeder beliebige UK ist also durch eine entsprechende Seriennummer i gekennzeichnet.
fc Bei der Erzeugung eines verdichteten Index werden die UK's in der obigen Reihenfolge paarweise verwendet, wobei der zweite UK aus dem vorangegangenen Paar immer der erste UK des nächstfolgenden Paares ist. Die UK's eines Paares werden verglichen, wodurch ein entsprechender CK entsteht. Im folgenden wird jedes laufende UK-Paar, das verglichen werden soll, mit i-1 und i gekennzeichnet.
Der Vergleich eines UK-Paares beginnt an der werthöchsten, also an der äußersten linken Stelle der UK's. Der Vergleich wird so lange in den wertgleichen Bytes fortgesetzt, bis ein ungleiches Bytepaar abgefühlt wird. Wenn ein UK kürzer als der andere ist, liegt eine Ungleichheit gemäß Definition vor. Durch die Feststellung dieser Ungleichheit wird die Information zur
Docket PO 968 027 009884/189?
Μ» Q H,
Verfügung gestellt, die zur Erzeugung der zwei Teile/ P und K, eines entsprechenden CK's notwendig sind.
Jeder CK besteht aus zwei Teilen: Der eine Teil gibt die Stelle an (P), und der andere den Schlüssel (K).
Der P-Teil gibt die ungleiche Bytestelle in dem verglichenen UK-Paar an. P kennzeichnet diese Stelle durch die Bytezahl zwischen P und der werthöchsten Stelle des UK's, die verglichen wurden. Wenn bei zwei UK's in ihren werthöchsten Stellen Ungleichheit besteht, hat P den Wert 1. Wenn die ersten Bytestellen gleich sind, die zweiten Stellen jedoch ungleich sind, hat P den Wert 2. P:>1 bei jedem reellen CK. Eine Null nach dem letzten CK im Index wird als außerordentlicher P-Wert erkannt, der das Indexende anzeigt.
Der K-Teil kennzeichnet das erste ungleiche Byte aus dem zweiten UK in einem UK-Paar. Dieses bestimmte Byte für das K-FeId ist also das werthöchste, ungleiche Byte im zweiten UK eines verglichenen UK-Paares.
Der erste CK eines Index (Beginn der Tabellen A, B, C oder D) wird aus dem Vergleich zwischen einem Null-Schlüssel und dem ersten UK des entsprechenden, unverdichteten Index abgeleitet. Ein Null-Schlüssel verdichtet das niedrigste Byte in der Sortierfolge; dieser Null-Schlüssel kann beispielsweise aus lauter Nullen bestehen. Es wird also Ungleichheit festgestellt, wenn die werthöchsten Bytestellen verglichen werden. Daher ist im ersten CK P=I, und K entspricht dem ersten Byte des ersten UK's. Deshalb kann der Null-Schlüssel nur aus einer Null bestehen.
Für die Ableitung des zweiten CK's werden der erste und der zweite UK verglichen, etc. Schließlich wird der letzte CK aus dem Vergleich der letzten UK's im Index abgeleitet. Das Indexende nach dem letzten CK wird beispielsweise durch eine Null angezeigt.
Die Hinweisadresse Rl des ersten UK's wird nach den ersten UK-DoOcet PO 968 027 „
Vergleich in den ersten CK gesetzt, etc, bis die letzte Hinweisadresse des letzten UK0S in den letzten CK nach dem letzten UK-Vergleich gesetzt wirdο
In der Fig. IA ist eine unverdiehtete
stellt. In der Fig. IB sind die CK's (die dem UK-Index erzeugt wurden) mit den entsprechenden
dargestellt.
Jedes Byte in einem UK (der Tabellen A, B, C oder D) wird darefa
die Zeichen B, K .oder N gekennzeichnet„ Bei jedem ¥erglsich von P wertgleichen Bytes im laufenden UK. end im wosrangegaageaea UK. werden zunächst die werthöchsten Bytestelld» w@rg2.iens äußersten linken Bytestellen der entsi
Tabelle). Ein B gibt Gleichheit wisehnra sia@» Byte und ü®m gleichen Byte ider gleichen Spalte) in de» gegangenen UK an. Eia K zeigt die ©rst© üagleieMnsife g^iseaea zwei gleichwertigen Bytes w©i©g- adbeaeiaaadee li©g®ad<ia UK's an„ Ein N zeigt alle Bytes eiaes OK's aaf die wertaiedEiges· als das K-Byte sind, d.h.; die rechts vom K-Byte liegen„
Bei solchen Bytevergleichen ia eiaem sorti©rt@a U3£-Xad@s wird die Position des K-Bytes durch das Byte des jeweils f©lg@ad®a OK feefe stimmt. Deshalb kann sich jedes
K-Byteposition an eine beliebige Position Verschiebung), oder überhaupt aieht iferaefeiabsia Ck@ia@ Verschiebung) .
Diese K-Byteverschlebong hat besü
Absuchen von verdichteten Sortierfolgen mit selbyte wichtig sind. Deshalb Imt ®&nm geaaists Dcifiaiti®» dieser Verschiebungseigenschaft wletffeifi § Em feaad©lfe gi©a isa ®ia© lainks-
verschiebung 9 wenn P.»<P.
•Ala JU
P »P. y es handelt sieh
Die VersehiebungenügliefakeiteH! simd ia d@a fab©ll@a Kg B^ C »ad D mit durchgezogenen us&d w&t.®zh%@<gh©mcsin Linien geteanzeichnet» -
Docket PO 968 027
Tabelle A
Serien- 1 1 2 3 4 UK-FeId 5 6 7 8 9 10 UK-FeId 5 6 7 8 9 10 UK-FeId 5 6 7 8 9 10 11 P Hinweisadressen- 2 3 4 5 6 2 3 4 5 VOl 2 3 4 5 6
Nummer [Kl [Kl N N N N N N N N N N N N N N N N N N N N N N » 1 Feld R R R R R R R R R R R R R R R
B B B B B B B B B Ik I N N N N N N N B B Jk N N N N ». 9 1 R R R R R R R R R R R R R R R
1 B B B B B B IkI N N N N IiL N N N N N B B iK N N N N-—► 6 R R R R R R R R R R R R R R R R
2 B B B B IkI N N N N N N B B B |K| N N B B 1K N N N N » 4 R R R R R R R R R R R R R R R R
3 B B B [k[~ N N N N N N N N N N N N N B B 1K N N N N * 3 R R R R R R R R R R R R R R R R
4 B B JET N N N N N N N N B I Kt N N N N B B .K N N N N—* 2 R R R R R R R R R R R R R R R R
5 ET B N N N N N N N N N B B |k N N N B B iK N N N N ► 1 R R R R R R R R R R R R R R R R
6 B Tabelle B B B B B B B B B N N N R R R R R R R R R R R
7 Serien- Tabelle C B B N N N - R Hinweisadressen- R R R R R
Nummer B B !K N N N Feld Hlnwei sadres sen- R R R R R
2 3 4 11 P 1 FeId
1 1 N N N N > 1 R 1
2 m B IkI N N * 3 R R
3 B B B B N- » 5 R R
4 B B B B ν—#. 8 R R
5 B B B |k| N ► 4 R R
6 B B B B N—* 6 R R
7 B B B B Ν—ν 7 R R
8 B B B B LkJ-* ] Ll R R
B R
Serien- B R
Nummer B R
2 3 4 11 P
1 N N N N * 1
2 B B B N—* 7
3 B B B N ► 7
4 B B B N—> 7
5 B B B N-* 7
6 B B B N * 7
7 B B B ν—> 7
8 B B B N > 7
9 B B B N ► 7
10 B B B N ► 7
Docket PO 968 027
009884/1897
- 12 Tabelle D
Serien-Nummer
UK-FeId Hinweisadressen-Feld
12 3 4 5 6 7 8 9 10 11 12 13 14· 12 3 4 5 6
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
N NN N N
BBB BBB BBB BBB BBB BBB BBB BBB B B [K B B IK B B JK B B IK B B |K B B IK BBB BBB BBB BBB BBB BBB BBB BBB BBB BBB BBB BBB
B IkI N N B B B IK[ BBBB BBBB BBBB BBBB BBBB B B B HI
NNNN NNNN NNNN NNNN NNNN NNNl
B B BlKj
β IkIn ν
NWN NNN NNN
B B JKJ
BBB B B
β β IkI IkJn ι
NNl NNN NNl NNN
NIN NlN NNN
B B B B B Ik. N
B B N N N N
B B ιΚ N N N M
B B JK N N N N
BBBB BBBB BBBB BBBB BBBB B B B(Kf
B B B B Jk N N
B B B B 'K N N
B B B B Ik N N
B B N N N N
N N IK N N N N
K N N N N N N
MMM NMN NNI NNN NNN NMN NMN
BBBBBBB BBBBBBB BBBBBBB BBBB
BBjKI BBB B B B
BBB BiKJNN Indexende
NNN NNN
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
ERR
RRR
R R .R
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
RRR
R- R R.
RRR
RRR
RRR
RRR
RRR
RRR
RRR RRR RRR RRR RRR R RR RRR RRR RRR RRR RRR R-R R RRR RRR RRR RRR RRR RRR R R R RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR RRR
Docket PO 968
009884/1897
Tabelle E
BEZIEHUNG GLEICHSTELLIGER BYTES
(innerhalb einer Spalte eines sortierten Index)
B nach B, K oder N
a. in der Spalte benachbarte B = B, K oder N
b. dazwischenliegende B1S B = B, K oder N
c. dazwischenliegende K's B > B, K oder N
d. dazwischenliegende N's B ?B, K oder N
K nach B, K oder N
a. in der Spalte benachbarte ., K > B, K oder N
b. dazwischenliegende B's K > B, K oder N
c. dazwischenliegende K's K > B, K oder N
d. dazwischenliegende N's K^B, K oder N
N nach Bf K oder N
a. in der Spalte benachbarte N "J B, K. oder N
b. dazwischenliegende B's N "j B, K oder N c* dazwischenliegende K's NjB, K oder N d. dazwischenliegende N's N ~j B, K oder N
PocketP0 968 O27 009884/189
■20 2 7 4-6
Die durchgezogene Linie kennzeichnet ©ine Rechtsverschiebung; die unterbrochene Linie kennzeichnet eine Linksverschiebung. Die Verschiebungsmöglichteit liegt in einem bestirnten UK-Xndex fest, sie sind bei allgemeinen OK=*Indizes jedoch nieht eingeschränkt. In den Tabellen A, B und C ist jeweils eine Vessehiebungsart herausgestellt. D.h., in der Tabelle A handelt ©s sieh hauptsächlich um linksverschobene OK's, in der Tabelle B en reehfesversehobene UK's und in der Tabelle C handelt es
verschobene UK's. In der Tabelle D ist mit verschiedenen Verschiebungsmögliehkeiteh
Bestimmte Zusammenhänge bestehen zwischen angss nicht angrenzenden Bytes der gleichen Stelle JdLh0 der
Tabellenspalte) in einem sortierten OK^Indess^ beispielsweise in
dem der Tabelle D. B kennzeiehnet Jb@iüp±@i©%y®is@ ©in dem angrenzenden, vorangegangen!
gleich ist. K kennzeichnet ein gegangenen Byte nicht gleich ist; ten Susammenhaag, d„fao M kann w@rtgl®ich Q «urtndnes· ©der niedriger als das
Die folgende Tabelle E beinhaltet di© allg@H®in@n Segeln g in welcher Beziehung ein Byte zu einem vorangegangenen Byte der gleichen Stelle in eiaem sortierten Index sten©n kann,, Dies© Regeln sind zum Verständnis eines
teten Index notwendig. Bei« Suchvorgsimg wird naen @inem Suchargument gesucht, das einem der UK's des I»d@2s gl©ien ist Dieser erfindungsgemäfie Suehvorgang wird noefe näheE1 erllmtert
Ablauf des Erzeugungsvorgaages
Die Fign. 1OA, B und C zeigen
Erzeugung eines Index mit Cl0Sj, die jeweils mms ©in Soalfissel-" byte enthalten. Die Figau 3-9 zeige» die erfiadnjsgsg@iliiia Schaltungen und Taktieruagesip die für das erfindwsgsgeiBäSe Verfahren (Fig. IQS-C notwendig siaäo Das erfiadiiagsgemäße Verfahren kann beginnen, weiwa d®K PmSfesispeiefeer 10 gemSe der Figa
Docket PO 968 027 A ^ ^ Λ t
009884/1897
2Ά geladen ist. Der Pufferspeicher 10 speichert Daten in Byteform. Jedes Byte kann beispielsweise 8 Bits umfassen (jedes gespeicherte Byte kann ein zusätzliches, herkömmliches Paritäts-Bit zur Fehierprüfung enthalten. Da das erfindungsgemäfie Verfahren nicht von dem Paritäts-Bit abhängt, wird es in der weiteren Beschreibung außer Betracht gelassen). Die Methode nach der der Index in den Pufferspeicher eingegeben wird, ist nicht Gegenstand dieser Erfindung. Die Eingabe kann nach bekannten Programmierverfahren erfolgen.
Die beschriebenen Schaltungen liefern bestimmte Taktzyklen. Sämtliche Taktierungsvorgänge werden durch Taktimpulse TO-T7 (Fig. 7) synchronisiert. Die obere Gruppe der Impulse TO-T7 aus der Ringschaltung 45 synchronisieren den Erzeugungsvorgang. Der Betriebsarten-Trigger 55 wird durch ein Erzeugungsvorgang-Startsignal gesetzt. Für jedes UK-Byte wird ein Impulssatz TO-T7 übertragen. Wenn ein Byte aus dem Pufferspeicher 10 abgerufen wird, läuft also eine vollständiger Zyklus TO-T7 ab.
Die Taktsteuerungen der Fign. 8 und 9 bestimmen die für den Erzeugungsvorgang erforderliche Zyklenfolge. Die sequentiellen Zyklen und die Verzweigungszyklen werden durch die Taktsteuerung der Fign. 8 und 9 erzeugt.
Der durch das Startsignal (Fig. 7) gesetzte Betriebsarten-Trigger
(dieses Signal kann durch eine Computerinstruktion bewirkt werden) schaltet die UND-Schaltung 48 durch, wodurch Impulse aus dem Oszillator 44 an die Ringschaltung 45 geleitet werden, die die Ausgangsimpulse TO-T7 an die Schaltungen für den Erzeugungsvorgang liefert.
Das Startsignal für den Erzeugungsvorgang leitet außerdem den zyklischen Ablauf der Taktsteuerung (Fig. 8) ein. Diese erzeugt ein anfängliches Rückstellsignal aus der monostabilen Kippschaltung 60b (Fig. 8).
Docket PO 968 027 Q0988471897
Die Taktsteuerungen der Flgn. 8 und 9 erzeugen sechs verschiedene Zyklen, die jeweils verschiedenen Zwecken dienen. Die verschiedenen Zyklen und ihre Aufeinanderfolge ist· in der Fig. 6Ä abgebildet. Jeder Satz von Ausgangsirapulsen TO-T7 ist in jedem der sechs verschiedenen Zyklen MUKL7 LVL, RL, Al, A2 und R (siehe Fig. 6A und 6B) vorhanden« In der Fig« 6B ist die Aufeinanderfolge der Zyklen abgebildet.
Jeder dieser sechs verschiedenen Taktsteuerungszyklen mit Ausnahme des Zyklus Al schaltet die Adresse in einem.Aufrufadressenzähler 26a um eine Byteposition weiter» Das erste Byte im Pufferspeicher 10 wird während des Zyklus MUKL adressiert, so daß das MUKL-Byte aus dem Speicher 10 in das MUKL-Register 20c (Fig. 3A) übertragen wird. Darauf folgt unmittelbar der Zyklus LVL, welcher die Übertragung des LVL-Bytes in das LVL-Register 22c (Fig. 3A) bewirkt. Das LVL-Byte gibt an, daß ein verdichteter Index einer niederen Ebene erzeugt werden soll«
Darauf folgt der RL-Zykl«s„ welcher die übertragung des Bytes für die Hinweislänge (RL) in das RL-Register 23c (Pig. 3A) bewirkt.
Die erfindungsgemäße Betriebsweise beginnt mit Startschritt 101 in Fig. 1OA. Dieser Schritt wird von dem Startsignal für den Erzeugungsvorgang ausgelöst, der aa die Schaltung der Fig. 7 und an die Taktsteuerung der Fig. 8 geliefert wird. Das Startsignal kann unterschiedlich ausgelöst werden« Entweder wird der Schalter S (Fig. 8) durch Handbedieroaag geschlossene oder das Startsignal wird auf elektronischem Weg ausgelöstο Die letztere Art wird bevorzugt. Dabei wird das Startsignal wo» einem Computersystem aufgrund eines bestimmten Befehles geliefert«. Dieser Befehl kann ein bestimmtes Kaaalbefehlswort (CCW)'sein. Auf jeden Fall muß der Befehl-Operationseode wischen ctem Erzeugungsvorgang und dem Suchvorgang unterscheiden, damit das geeignete Startsignal ausgelöst wird.
Docket PO 968 027 0 0 9 8 8 A / 1 8 9 7
Die ersten drei Bytes im Pufferspeicher 10 (Fig. 2A) sind Kennzeichenbytes , welche die Organisation im Pufferspeicher IO bestimmen. In den Schritten 102 bis 104 (Fig, IQA) werden jeweils ein Kennzeichenbyte in ein entsprechendes Register 20c, 22c oder 23c (Fig. 3A) gespeichert. Das MUKL-Byte enthält einen Wert, der die Länge (in Bytes) jedes UK-Registers (UK-I, UK-2 ... UK-N) im Pufferspeicher 10 bestimmt. D.h., jedes UK-Register hat die Länge des registrierten MUKL-Wertes (MUKL=maximale Länge eines UK's).
Im Schritt 102a beginnt der MUKL-Zyklus auf Leitung 6OA. Dieser Zyklus wird von der Taktsteuerung der Fig..8 nach Empfang des i Startsignals (welches den Trigger 60a setzt) ausgelöst.
Im Schritt 103a wird im MUKL-Zyklus das MUKL-Kennzeichenbyte aus dem Pufferspeicher 10 in das Register 20c übertragen (Fig. 3A). Das Signal MUKL-Zyklus aktiviert über die UND-Schaltung 20b die Torschaltung '20a, wodurch das MUKL-Byte vom Pufferausgang 14 in das MUKL-Register 20c geleitet wird. Das MUKL-Byte wird auf den Pufferausgang gegeben, da der Aufrufadressenzähler 26a (Fig. 3B) dieses Byte adressiert, wenn er anfangs durch das Startsignal auf der Rückstelleitung 6OA (aus Fig. 8) auf Null eingestellt wird. Das Ausgangssignal des Zählers 26a wird über den Addierer 26c an die Leitung 26a und zur Torschaltung 43 (Fig. 5A) geliefert, welche dieses Signal zur Zeit Tl auf die ' Pufferadressierleitung 16 schaltet. Dieses Ausgangssignal beaufschlagt ferner über Leitung 43A das Byte-Datenregister 12 (Fig. 2A), wodurch die übertragung aus dem Pufferspeicher über die Ausgangsleitung 14 bewirkt wird.
Schritt 103a wird zur Zeit T7 während des MUKL-Zyklus ausgeführt, wenn die UND-Schaltung 26b den Zähler 26a zur Adressierung des nächsten LVL-Bytes schrittweise vorwärtsschaltet. Die UND-Schaltung 26b wird zur Zeit T7 in jedem Zyklus, mit Ausnahme von Zyklus Al, vorwärtsgeschaltet.
Docket PO 968 027
Die nächsten Schritte 102b, 103b «ad 104b werden ähnlich wie die vorangegangenen Schritte 102a, 103a wad 104a ausgeführtι in ihnen wird das LVL~Byt© ia das Register 22c„ Figο 3Ay geleitet. Das LVL-Bft© baitiasBt eine Indexstufe (LVL) für dea verdichteten Indexff der aas dem sich ursprünglich im Pufferspeicher 10 befindlichen UK-Index erzeugt werden solle Das 3LVL~Byte geigt an, in welche unterste Stufe der mehr stuf igea laäeasstsOkter der verdichtete Index hineingehdren wird» Deaentspreehei LVL-Byte auf 1 voreingestellt sein β
stufe angezeigt wird.
Danach wird auf ähnlich® tflsise ia <ä©a Seforltt©a 102e„ 104c das RL-Byte iß das Hegistes1 23<s fibertrageao Das HIa=Byt© liefert die Länge (ia Bytes) jedss Bifweisregisters {R·=·! <, ο o R=N) das jeweils dem entspreefeeadea OK-Registes1 aagegliedert isfeo Di® Bytezahl e die für jedkus Hia^eisregister ao&jeadig ist^ von der Adresseiaart als 0 die ge Aefruf ©ia©s Dateasafeges q wiedergefunden %j@rdea SoIl17 wsn-yeaclet tfird«, H©aa ®s sieh spielsweise rasa ©ijsea Dat©saJbl©sk aaaeteit ? der auf ©iaor mehreren Slagnetplattea g@sp©ieh©fft ISt6, keaa eia® Läag® ^©a 10 Bytes verwendet werde»o
Durch Verwendung der der OK- und R-Eegister ändert werden*, wqüws'wL· oder Einweise versclii©<ä@; 10 mufi zur ÄBpassraag Schlüssel und Hinweis der UK's und/oder des kleinere Werte ira setzt werden»
Mit Schritt 107 ist die
abgeschlossene Das i-j@Efea©<sai5fee Byfeo ia ©sstea öE^Refigtes" wirä auf ein im UK-Index sosast aleat geüraimeatos laisasa ©imgestellt. Die restlichen Bjt©© 1» ©s-sfeea OT-Segistes bleibe» unberücksichtigt.
Docket PO 968 027 ^ . .
98B4/1897-
Das werthöchste Byte eines UK's wird In ein UK-Register an die äußerste linke Stelle (siehe Flg. 1) gesetzt. D.h. das erste Byte (= das werthöchste) des Schlüssels wird in die äußerste linke Byteposition des ÜK-Registers gesetzt. Die restlichen Bytes des Schlüssels schließen sich rechts an. Die nicht benötigten Bytepositionen rechts von einem in das UK-Register eingegebenen UK können beispielsweise mit Nullen oder Leerzeichen aufgefüllt werden. Daher kann die Länge jedes eingegebenen UK's unterschiedlich sein und maximal die Größe des UK-Registers einnehmen. Ein UK, der größer als das UK-Register ist, wird an der wertniedrigsten Seite verkürzt, d.h., die Zeichen der rechten Seite, die nicht in das UK-Register passen, werden gelöscht. Eine derartige Verkürzung ( wirkt sich nicht unbedingt auf den erzeugten CK aus. Der verkürzte UK muß lediglich ein eindeutig definierter Schlüssel bleiben.
Dem letzten Hinweis R-N der Eingabefolge folgt ein Endanzeigebyte« das das Indexende anzeigt.
Im Schritt 107 folgt dem RL-Zyklus ein Al-Zyklus (vergleiche Fign. 6A und 6B).
Das K-Byte des ersten, erzeugten CK's ist das werthöchste Byte des CK, und P ist gleich 1. Dies kann direkt erreicht werden, oder indirekt, indem am Anfang ein Pseudo-UK vorgesehen wird. Letzeres Λ geschieht in der nachstehend beschriebenen Weise. ™
In Schritt 108 wird das werthöchste Byte aus UK-I abgerufen. Dieser ist ein Pseudo-UK, der mindestens ein nichtbenötigtes Zeichen, z.B. eine Null, an der werthöchsten Stelle hat. In folgenden Schritt 109 wird ein A2-Zyklus ausgelöst, welcher das werthöchste Byte aus dem nächsten UK, UK-2 (der erste, reelle UK), abruft, damit es mit dem werthöchsten Byte aus dem Pseudo-UK-1 verglichen wird. Die Adressenindexlerung erfolgt an der Al-Byteadresse, so daß das entsprechende A2-Byte aufgerufen werden kann. Es wird die Adresse des Al-Bytes (aus dem ersten UK) durch die Summe der Werte im MUKL- und RL-Register indexiert, damit das entsprechende A2-Byte (des xweiten OK1S) adressiert werden kann. Docket PO 968 027
009884/1-897
Diese Funktion wird von dem Addierer 27a CFig» 3B) ausgeführt, welcher di© Summe der MUKL- und RL-Werte an den Addierer 26c ausgibt. Dieser indexiert die Al-Adresse im Aufrufadressenzähler 26a, um die effektive Adresse desA2»Bytes im A2-Zyklus zu erhalten. Der Aufrufadressenzähler 26a (Fig- 3B) enthält immer die laufende Aufrufadresse,, mit Ausnahme von der indexierten A2-Byteadresse. Die A2-Adresse auf der Sammelleitung 26A aus-dem Addierer 26c adressiert das Byte, das aus dem Pufferspeicher IO abgerufen werden soll. Da die Torschaltung 27b das Ausgangssignal des Addierers 27a nur im A2-Zyklus weiterleitet, liefert diese Torschaltung 27b (außer im A2-Zyklus) ein Null-Ausgangssignal an fc den Addierer 26c«, In allen anderen Zyklen überträgt der Addierer 26c nur das Ausgangssignal des Aufrufadressen^ählers 26a auf die Sammelleitung 26A.
Schritt 109 geht bei A in Schritt 111 (Fig« 10B) über. Im Schritt 111 wird das adressierte ÜK-Byte über Torschaltung 32B (Fig. 4) in das Register 32a gebracht«, Im Sehritt 112 wird jedes A2-Byte überprüft, ob es eine Indexende-Anseige enthält» Diese Funktion übernimmt der Decodierer 50 und die UND-Schaltung 51b (Fig. 5B), deren Ausgangssignal den Trigger 51a bei' Vorhandensein einer Endanzeige einstellt.
Dementsprechend werden die äußersten linken Bytes in den Registern ™ für UK-I und UK-2 während der anfänglichen Zyklen Al und A2 abgerufen, und sie werden aus dem Bytedatenregister 12 (Fig. 2A) über den Pufferspeicherausgang 14 in das Al-Byte-Register 30a, bzw. in das A2-Byte-Register 32a
Schritt 116 wird ausgeführt, uenn bei Sehritt 112 festgestellt wird, daP das laufende A2-Byte nicht das Indexeade anzeigt« Im Schritt 116 wird bei Impuls Tl la jadem A2-Zyklea über OND-Schaltung 24 der. UK-Bytezähler 25a vorwärtsgeschaltet.
Der Zähler 25a zeigt also die laufende UK-Bytezählung von der äußersten linken UK-Bytestelle bis zur laufenden ÜK-Bytestelle
Docket PO 968 027
009884/1897
an. Im R-Zyklus, der jedem UK folgt, wird der UK-Bytezähler 37a auf Null zurückgestellt. Er wird zu Beginn eines Zyklus bei Impuls T2 schrittweise vorwärtsgeschaltet, ehe die P.-Entscheidung bei Impuls T5 getroffen wird; daher zeigt er die richtige UK- -Bytezählung an, wenn die Leitung 36a (speichern 1?*) (Fig. 4) ein Signal führt.
Danach folgt Schritt 118, bei welchem der Zustand des das Blockieren der Speicherung bestimmenden Triggers 34a (Fig. 4) überprüft wird. Trigger 34a ist anfangs durch ein Signal auf Leitung 6OA zurückgestellt. Ehe die äußersten linken Bytes eines jeden UK- -Paares verglichen werden, ist Trigger 34a ebenfalls im zurückgestellten Zustand, weil der Trigger während des letzten Hinweises von einem Signal aus der UND-Schaltung 37d zurückgestellt wird. Trigger 34a wird gesetzt, wenn die Bytes in den Registern 30a und 32a bewirken, daß der Vergleicher 31a ein Signal auf der A1^A2-Leitung 3IA erzeugt, welches auftritt, wenn das erste ungleiche Bytepaar in den beiden UK' s erreicht wird.
Da der erste UK ein Pseudo-UK ist, wird im Schritt 119 festgestellt, daß "Α1?Ά2 "-Trigger 35a bei der ersten UK-Bytestelle sich im eingestellten Zustand befindet. Deshalb hat der erste, erzeugte CK P=I, und sein K ist das äußerste linke Byte des zweiten UK's, welcher das erste, echte Byte im Pufferspeicher 10 ist. ä
Die über die Al7*A2-Leitung 31A (vergleiche 31a) geschaltete UND-Schaltung 35b stellt bei Impuls T3 den Trigger 35a ein. Im gleichen A2-Zyklus wird bei Impuls T7 die Al/A2-Einstellung von Trigger 35a über UND-Schaltung 34b durchgeschaltet, um den Trigger 34a einzustellen, dessen "Nicht Blockieren Speicherung1·-Leitung 34A unwirksam gemacht wird. Bei T5 im gleichen A2-3yklus betätigen das Signal auf der A1^A2-Einstelleitung 35B und das Signal auf der "Nicht Blockieren Speicherung"-Leitung 34A die UND-Schaltung 36, da Trigger 34a noch nicht eingestellt ist. Das Ausgangssignal der UND-Schaltung 36 beaufschlagt die "P. speichern"-Leitung 36A,
Docket PO 968 027
009884/1897
Dann wird Schritt 119 zur Zeit T3 ausgeführto Das Programm leitet zu Schritt 122, wen» der Alf*A2-Trigger 35a in der "Zeit T5 eingestellt ist» Wälir©ad des gleichen Impulses T5 schaltet die ODER-Schaltung 42 das Sigaal auf die "P. speieh©rnm=]L)eit»ag 3Sh^ damit der Speicheradressenzähler 41a erhöht uird öad damit die Torschaltung 41b den erhöhten Inhalt des 2§si@rs 41a ober die ODER-Schaltung 41c auf die Pufferadressierleitisag IS sehaltefeo Dann adressiert der Zähler 41a die aSeagte CK=Byt©=st®ll© im Pufferspeicher IO (Fig„
Der Zähler 41a wird zu Äafaag auf die Bytepositioa '2 zurückgestellt( welche die Bytestelle für das 1L-Byt@ im Prafferspeieaer 10 dar= stellt» Wenn der Inhalt das Wählers 42La %wä ©rsteamai erhöht wird, adressiert der gSilss ä±® Bjt©st@ll@ d©s Safierstsn liakon Pseüdo-UK-Bytes im Puff@rsp@i©fe@2· 3LO CFig» 2Ά) o Deshalb überlagert das erste gespei©h®zta P -Byte das Fs®ad©°ö3IC°Byt@ „ tml° ches im Pufferspeicher IO aieht mmhs bmmötigt uird unä ddsfealb ia das A2-Byte-Register 32a iFigo 41) geleitet
TT W1A /J^ f^ailt* Wn i*Sl ι! Sc* '*ll"t'i^ (W f2) ίΞΪ (Π? i ί=^ τί (f^lnlfSiril TK J^ ^^un^Vx ? ι Τ1*Ϊ1 © Y"Vni ^3IoI li TiTl ^/f^lnt Tr3"Tl Ir* ir U j? τι (Π fS> V
Inhalt des üK~Bfte-iäal©rs 25a als F =B]fte gespeicherte Ia Schsritt 123 bewirkt das Äiasgaagssigaal der ülD=Sehaltöag 3Si, daß die Torschalteag 37 di© Sfeeliiaiag desj UK=®]ffee=^Salerii 25a 'von der Leitung 25A über die ODIR=ieaaltiaag 33b auf di© Puff©. eingaagsleitumg 13 leitet<, Daaa wird das F,=Byte ia das Bjt©= Datenregister 12 gesetzt naad ia Pnafferspeifsaer 10 aa der St©l 5©s|3@i©Ii©r"t g di©
angegeben wurde.
Während (äerselbssa Ä2=ljlslea t-jird g©r leife leitet, sobald mim.® P3»=S<§Sa©Ifeiaaf 40 CFIf0 5A) über Leitung 35fe üem frigges·© 3S ©isa Si§sa©l srallfe uaä isa für das K-I
Während des gleiches Ispalü©® T<$ <K?ird d@r nmmm laaalt deis Zählers 41a über di© T©%&©hsiltums 41Ib rad Sbsr die ©PIE^S«
027 0098β4/1
tung 41c zur Pufferadressierleitung 16 geleitet, damit die Stelle des K-Bytes, welches sogleich in den Pufferspeicher 10 gespeichert werden soll, adressiert wird.
Während des gleichen Impulses T6 wird Schritt 125 ausgeführt, bei welchem das Signal auf Leitung 4ΟΆ über die ODER-Schaltung 33c (Fig. 4) die Torschaltung 33a betätigt, welche das K-Byte aus dem A2-Byte-Register 32a auf die Puffereingangsleitung 13 schaltet, über diese wird das K-Byte in die vom Speicheradressenzähler 41a zuletzt adressierte Bytestelle gespeichert.
Schritt 126 wird zur Zeit T7 während des gleichen Zyklus A2 aus- ( geführt. Bei diesem Schritt schaltet die UND-Schaltung 34b das Ausgangssignal des Al/A2-Triggers 35a an den "Blockieren Speicherung "-Trigger 34a (Fig. 4), wodurch dieser eingestellt wird und wodurch infolgedessen weitere Speichervorgänge im Pufferspeicher 10 solange unterbunden werden, bis Trigger 34a wieder zurückgestellt wird.
Schritt 127 wird am Ende des gleichen A2-Zyklus ausgeführt, sobald der Impuls T7 auf die UND-Schaltung 26b (Fig. 3B) geleitet wird, damit der Aufrufadressenzähler 26a erhöht wird. Die neue Stellung des Zählers 26a wird auf die Leitung 26A gegeben, damit das nächste Byte aus dem ersten UK des laufenden UK-Paares
adressiert wird. .-■■■*
In Schritt 128'wird in jedem A2-Zyklus überprüft, ob das laufende A2-Byte die letzte Bytestelle im UK-Register einnimmt. Wenn bei Schritt 128 festgestellt wird, daß das laufende A2-Byte sich nicht in der letzten UK-Registerstelle befindet, wird über B2 zu den Schritten der Fig. 1OA übergegangen.
Die Taktsteuerungen liefern nach dem A1^A2-Signal Al- und A2-Zyklen, bis das UK-Ende erreicht wird. Dieses Ende wird signalisiert, indem die "Nicht-UK-Ende"-Leitung 25B, die Ausgangsleitung des Vergleichers 25d (Fig. 3A), entregt wird.
Docket PO 968 027
009884/1897
Über B2 (Fig. 1OA) wird Schritt 107 eingeleitet, in welchem ein Al-Zyklus beginnt. Dies geschieht am Ende des vorangegangenen A2-Zyklus (Fig. 9). Der Impuls T7 setzt dabei über die UND-Schaltung 66b den Trigger 66a, v^ährend die nMieht-üK»Ende"-Leitung 25B (aus Fig. 3A) ein Signal führt. Jedesmal wenn Trigger 66a eingestellt ist, wird die UND-Schaltung 66c su Beginn des nächsten Zyklus (zur Zeit TO) durchgeschaltet, wodurch ei-n Ausgangs signal auf die Al-Zyklus-A-Leitung 66A gegeben wird. Dieses Signal auf Leitung 66A stellt den Trigger 64a (Fig» 8) ein, wodurch der nächste Al-Zyklus beginnt»
Nach Schritt 107 wird Schritt 108 ausgeführt, und die Schritte 107-109 und 111, 112, 116-118 werde» wiederholt» In Schritt 118 wird aber festgestellt, daß der aBloekieren=Speicherungm-Trigger für alle UK-Bytesteilen, die der P.-Stelle folgen, eingestellt ist. Nach Schritt 118 wird zu Sehritt 127 übergegangen, bei welchem der Aufrufadressenzähler 26a vorwärtsgeschaltet wird» Von Schritt 128 wird so lange zu B2 sisrüekgeleiteti, bis das Ende des UK-Paares erreicht 1st. Die Schritte 107 bis 109, 111, 112, 116, 118, 127 und 128 werden für jede UK-Bytestelle so lange wiederholt, bis das Ende des OK-Registers in Schritt 128 signalisiert wird, wobei festgestellt wird, daß der Inhalt des UK-Bytezählers und das MUKL-Byte gleich sind« Dureh diese Schritt-Wiederholungen wird der Rest des laufenden UK=Paares abgetastet. Wenn der nächste Hinweis erreicht ist, wird der "Blockieren Speicherung"-Trigger 34a durch einen R-Zyklus zurückgestellt, welcher an die UND-Schaltung 37d geliefert wird»
Wenn in Schritt 128 die letsfee Bytestelle im -OK-Register abgefühlt wird, wird die "UK-Ende-Leitung" 25A (FIg0 3A) beaufschlagt, wodurch die UND-Schaltung 67b durchgeschaltet wird, deren Ausgangssignal den Trigger 67a (Fig„ 9} sur Vorbereitung des R-Zyklus einstellt. Es wird Schritt 131 (Fig„ IOC) im nächsten TO-Impuls ausgeführt. Dieser Impuls schaltet die UND-Schaltung 67c durch, deren Ausgangssignal den "R-Zyklias-Trigger1" 67 einstellt,- wodurch der R-Zyklus auf Leitung
Docket PO 968 027
00988^/1897
In Schritt 132 wird im Register 32a (Fig. 4) das erste Hinweisbyte gespeichert, wenn das Signal des Zyklus R über ODER-Schaltung 32c die Torschaltung 32b betätigt. Die Torschaltung 32b schaltet das erste Hinweisbyte aus dem Pufferspeicher in das Register 32a.
In Schritt 133 wird der Speicheradressenzähler 41a (Fig. 5A) vorwärtsgeschaltet, wenn die "R speichern"-Leitung 33A von der UND-Schaltung 33d ein Signal an die ODER-Schaltung 42 abgibt, damit die nächste Speicheradresse in den Pufferspeicher 10 geliefert wird. Danach wird in Schritt 134 das R-Byte im Register 33a über die ODER-Schaltung 33b und über die Pufferspeichereingangsleitung 13 in die Bytestelle im Speicher 10 geleitet, welche gerade vom Zähler 41a adressiert wurde.
In Schritt 135 wird zur Zeit Tl der R-Byte-Zähler 69c (Fig. 9) durch den R-Zyklus erhöht, weicher an die UND-Schaltung 69a geleitet wird.
In Schritt 136 wird festgestellt, ob das letzte Hinweisbyte das letzte im laufenden Hinweis ist. Wenn der Hinweis aus mehreren Bytes besteht, wird zu Schritt 137 übergegangen, da der Trigger für den R-Zyklus (67d) eingestellt bleibt, wodurch der nächste Zyklus R beginnt. Die R-Bytes werden weiterhin aus der Puffer-Speicherausgangsleitung 14 über das Register 32a zur Pufferspeichereingangsleitung 13 übertragen. Die Schritte 131-137 werden folglich solange wiederholt, bis in Schritt 136 festgestellt wird, daß der Vergleicher 69d die Gleichheit zwischen der R-Bytezählung im Zähler 69a und dem Wert des RL-Bytes im Register 23c (Fig. 3A) signalisiert.
Bei einer Ja-Aussage in Schritt 136 wird Schritt 138 ausgeführt, in dem der Aufrufadressenzähler 26a (Fig. 3B) während der Zeit T7 des letzten R-Zyklus schrittweise vorwärtsgeschaltet wird. Dieser adressiert das äußerste linke Byte im nächsten UK, welcher der erste UK des folgenden UK-Paares wird. Dieser UK ist
Docket PO 968 027
009S84/1897
der erste reelle UK im Index, nachdem das erste UK-Paar mit dem Pseudo-UK verarbeitet ist. Nach Schritt 138 wird über C zu den Schritten der Fig. IQA übergeleitet. Damit beginnt durch Vergleich des nächsten OK-Paares die Erzeugung des nächsten CK's. Dieses UK-Paar besteht aus dem zweiten und dem dritten-UK im Pufferspeicher IO (Fig. 2A). Diese UK's sind die ersten echten UK's im Index.
Schritt 107 wird bei C begonnen, wenn das Ausgangssignal äer UND-Schaltung 68d den Trigger 68a einstellt. Diese UND-Schaltung wird zur Zeit T7 von einem Signal aus dem "R-Ende-Vergleicher" 69d durchgeschaltet. Beim nächsten Impuls TO liefert die Schaltung 68c ein Signal auf die Af-Zykl«s-B->Leitiang S8A, welche den Trigger 64a (Fig. 8) einstellt? dieser leitet ersten AJ.-Zyklus für das neue UKHPaar ©in. Bei Schritt 108 das äußerste linke Byte des ersten OK0S aus dem neuen UK-Pass1 in das Al-Byteregister 30a, wie bereits beschrieben,, Danach über A zu Schritt 111 (Fig. I0B) weitergeleitet, welchem das äußerste linke Byte des zweiten UK0S aus UK-Paar in das A2-Byteregister übertragen wird_o
Nach Schritt 112 folgt Schritt 116, da jenes Ä2~Byte nicht den Index beendet. In Schritt 116 wird der UK-Bytegäfeler 25a wie bereits beschrieben vorwärtsgeschaltet,.
Bei negativem Ergebnis von Schritt 119 folgt Schritt 120 water der Voraussetzung, daß die äußersten liakea Bytes im AI- and in A2-Register gleich sind, und daß infolgedessea"die L®iteng 31Ä nicht beaufschlagt ist.
Nach Schritt 119 folgt Schritt 120, Ia we] zähler 26a (Fig. 3B) am Ende d©@ laufen schaltet wird, über Bl wird auf Schritt
geführt. Danach wiederholt sich das Programm üb@r 107-109, 111, .112, 116-12.© für die näcfcisten„ äaßerea linken Bytes, Bei Schritt 118 wird duseSa Äl^Ä2=TEigger 35a entschieden, ©b der weitere Ablauf über äeu liast©!!= ©der den Rückstellausgang von
Docket PO 968 027
Schritt 119 laufen soll. Wenn das erste, ungleiche Al- und A2-Bytepaar erreicht ist, erfolgt der weitere Ablauf über den Einstellausgang. In den Schritten 122-126 wird der CK aus dem laufenden UK-Paar erzeugt. Danach werden in den Schritten 107-109, 111, 112, 116, 118, 128 die restlichen UK-Bytestellen abgetastet. Nach Schritt 128, am Ende des laufenden UK-Paares, wird über B3 zu Schritt 131 (Fig. IOC) verzweigt.
In Schritt 131 wiederholen sich die R-Zyklen einmal für jedes Hinweisbyte, wodurch die Byteanzahl des Hinweises übertragen werden, wie sie von dem Wert im RL-Register 23c (Fig. 3A) bestimmt wurde. Der Vergleicher 69d erhält die Ausgangssignale aus dem RL-Zähler und aus dem RL-Register und liefert ein . "Gleich-RL-SignalT an die UND-Schaltung 68b, wenn das letzte Byte eines Hinweises abgerufen ist.
Dann bewirkt die Taktsteuerung der Fig. 8, daß die neue Zyklusfolge für das nächste UK-Paar, UK. , und UK., eingeleitet wird. Das Verfahren wird wie oben beschrieben zur Erzeugung des nächsten CK's wiederholt.
Die jedem Hinweis folgenden UK-Paare (jeweils UK., und UK.) werden nacheinander verglichen, bis der letzte UK der UK . des laufenden UK-Paares wird. Dann wird in Schritt 112 das Ende des Index im A2-Zyklus durch den Decodierer 50 (Fig. 5B) angezeigt. Dieser Decodierer 50 überprüft das erste Byte im A2-Register, ob es die Verschlüsselung für das Indexende enthält. Sobald der Decodierer diese abfühlt, gibt er ein "Erzeugungsvorgang Ende"-Signal auf Leitung 51A (Fig. SB) und ein "P=O"-Signal auf Leitung 51C. Infolgedessen geht der weitere Ablauf von Schritt 112 über dessen Ja-Ausgang zu Schritt 113.
In Schritt 113 erhöht das "Erzeugungsvorgang Ende"-Signal auf Leitung 51A über ODER-Schaltung 42 den Inhalt des Speicheradressenzählers 41a, welcher über die Torschaltung 41b auf die Pufferadressenleitung geschaltet wird. In Schritt 114 wird über Leitung
Docket PO 968 027
009884/1897
51C und die Torschaltung 33b (Fig. 4) ein Null-Byte erzeugt, welches zur Speicherung an der vorgesehenen Adresse auf die Puffereingangsleitung 13 geleitet wird. In Schritt 115 wird mit dem Ende des Impulses der monostabilen Kippschaltung 52b die Erzeugung des verdichteten Index beendet. Diese Kippschaltung wird zur Zeit T5 nach der Einstellung des Triggers 51a ausgelöst.
Ablauf des Suchvorganges und Systemausführungsbeispiele Beim Suchvorgang besteht die Eingabe aus dem CK-Index, der nach dem erfindungsgemäßen Verfahren erzeugt wurde. Die erfindungsgemäßen Ausführungsbeispiele dienen zum Absuchen eines verdichteten Index, welcher sich im Pufferspeicher 10 oder in einer E/A-Einheit befinden kann. ' _
Der Eingabeart-Trigger 201 zeigt an, ob sich der verdichtete Index in der E/A-Einheit 46 oder im Pufferspeicher 10 befindet. Dieser Trigger wird durch ein E/A-Betriebsart-Signal eingestellt, wenn die Eingabe aus der E/A-Einheit erfolgt; er wird durch ein Puffer-Betriebsart-Signal zurückgestellt, wenn der verdichtete Index sich im Pufferspeicher 10 befindet.
Unter Steuerung des Eingabe-Auswahl-Triggers 205 werden die Bytes des CK-Index durch die Tore 202 und 203 geleitet.
Der Trigger 205 wird durch einen zentral gesteuerten Startbefehl eingestellt. Am Ende eines Suchvorganges stellt das "Suchvorgang vollständig"-Signal auf Leitung 24OA Trigger 205 zurück.
Das erfindungsgemäße Verfahren zum Absuchen eines Index mit nur ein Schlüsselbyte langen CK's ist in den Fign. 19A-D dargestellt. In Schritt 301 wird das Startsignal für den Suchvorgang an die UND-Schaltung 25Oc (Fig. 17) geleitet, wodurch die Taktsteuerungen für den Suchvorgang betätigt werden.
Schritt 302 ist der Einleitungsschritt, in welchem alle wesent-
Docket PO 968 027
009884/ 1 897
lichen Trigger ung Register zurückgestellt und die Taktsteuerungen für den Suchvorgang in Betrieb gesetzt werden. MUKL, LVL und RL sind die Einleitungszyklen aus der Taktsteuerung. Die Zyklen der Taktsteuerung für den Suchvorgang (Fig. 17) sind in Fig. 18 dargestellt. Die Zyklen der Taktsteuerung übertragen die eingegebenen Kennzeichenbytes LVL und RL in die Register 209a und 21Oa (Fig. HB). Das LVL-Kennzeichenbyte muß eine niedere Ebene angeben, damit die Operation fortgesetzt wird, da ein UK-Index einer niederen Ebene als Eingabe bei der erfindungsgemäßen Betriebsweise vorausgesetzt wird.
Der Aufrufadressenzähler 221a (Fig. 12) wird nur benötigt, wenn· die Eingabe aus dem Pufferspeicher 10 erfolgt. In diesem Fall wird der Zähler am Schluß (T7) jedes Taktzyklus auf die nächste Byteadresse erhöht. Das Ausgangssignal des Zählers 221a wird von der UND-Schaltung 221d weitergeleitet, welche nur durchgeschaltet wird, wenn ein Pufferspeicher-Eingabesignal auf Leitung 201B (aus Fig. 11A) geliefert wird. Wenn die Torschaltung 221b durch das Ausgangssignal der UND-Schaltung 221d betätigt wird, schaltet sie das Ausgangssignal des Zählers 221a über die ODER-Schaltung 221c auf die Pufferspeicheradressierleitung 16. Die Impulse T0-T7 werden von der Ringschaltung 45 erzeugt, welche vom Oszillator 44 (Fig. 7) geschaltet wird, wenn der Inhalt des Pufferspeichers 10 abgesucht wird.
Wenn eine E/A-Einheit abgesucht wird, werden die Daten auf der Datenausgabeleitung 2O4A (aus Fig. HA) empfangen. Die Impulse T0-T7 werden von der Ringschaltung 45 (Fig. 7) geliefert, wenn der Schalter 47 die E/A-Einheit mit der UND-Schaltung 49 verbindet.
Im Einleitungsschritt 302 wird das Suchargument (S.A.), nach welchem im Index gesucht werden soll, von einer Zentraleinheit (nicht gezeigt) gesteuert und in ein Suchargumentregister 16 übertragen. Die für diesen Vorgang notwendigen Schaltungen gehören nicht zum Gegenstand der Erfindung. Das Suchargument
Docket PO 968 027
00 9 884/189 7
wird vollständig in das Suchargumentregister 16 übertragen, von wo aus jedes S.A.-Byte zu einem Teilsuchvorgang wahlweise abgerufen werden kann« Die S0A0-Bytestelle aus dem Register 16 wird in ein Register 222b gesetst (Fig. 12); es handelt sich um die Adresse des äußersten linken Bytes im Suchargwnent? dieses kann, obwohl es nicht das RL-Byte ist, im RL-Zyklus in das Register 222b gesetzt werden.
Nach Schritt 302 folgt Schritt 305 (Fig. 19A), in welchem im P-Zyklus die Eingabe des ersten P-Bytes erfolgt. Dieser Zyklus
läuft am Ende des letzten Kennzeichenbyte-Zyklus ab.
In Schritt 306 wird während dieses P-Zyklus das P-Byt@ in das Register 212a gespeichert.
In Schritt 307 wird im P-Zyklus ein ausgewähltes Byte des argumentes aus dem Register 16 in das A-Byteregister 223a 12) gespeichert.
Die Adresse für das erwünschte Α-Byte wird im Adöiarer 222a (Fig. 12) erzeugt, wenn dieser den laufenden P -Wert erhält» Die A-Byteadresse wird über die Torschaltung 222c geliefert, sobald diese während jedes P-Zyklus vom Ausgangssignal der UND-Schaltung 223c durchgeschaltet wird» Daher erhält die Pufferspeicheradressierleitung 16 zur Zeit T3 jedes P-Zyklus eine A-Byteadresse, die sich aus der Summe der Stellenadresse_im Register 222b und des laufenden Pj-Wertes im P-Register 212a (Fig.*11B) ergibt. Das adressierte Α-Byte wird auf der Pufferspeicherausgangsleitung 14 über die Torschaltung 223b in das A-Byte-Register 223a (Fig. 12) übertragen,.
In Schritt 308 wird während jedmrn P-Zyklus überprüft©3b der P-Wert Null ist und damit das - Indexende erreicht istο
Sobald das Indexende festgestellt ist, wird in Schritt 309 der "Suchvorgang vollständig"-Trigger 240 (Flg. 16) eingestellt, der
Docket PO 968 027 0 0 9 8 8 4/1897
den Suchvorgang beendet. Wenn P/O ist, wird über A zu den Schritten der Fig. 19B übergegangen.
Beim SuchVorgang muß das P-Byte in jedem CK, das K-Byte in fast jedem CK und in wenigen CK's das Hinweisbyte untersucht werden. Die CK- und Hinweisbytes werden sequentiell in der erzeugten Indexanordnung eingegeben, und zwar mit einer von der E/A-Einheit oder dem Pufferspeicher bestimmten Geschwindigkeit. Bei dem erfindungsgeraäßen Verfahren ist es also nicht notwendig, daß alle eingehenden Bytes untersucht werden.
Wenn in Schritt 309 (Fig. 19A) der Suchvorgang nicht beendet " wurde, wird in Schritt 311 (Fig. 19B) nach dem P-Zyklus ein K-Zyklus eingeleitet. In Schritt 312 wird das eingegebene K-Byte im K-Register 22Oa (Fig. 12) gespeichert.
In Schritt 313 werden das K- und das A-Byte - zu diesem Zeitpunkt im Register 22Oa, bzw. 223a-223d verglichen.
Schritt 314 wird durch ein Signal aus Vergleicher 223d ausgeführt. Ein Signal am Ausgang 223A bedeutet K«A, ein Signal am Ausgang 223B bedeutet K>A und ein Signal am Ausgang 223C bedeutet K<A.
Wenn das Suchargument in dem eingegebenen Index vertreten ist, A so wird im richtigen CK K»A festgestellt. Dieses wird rechtzeitig durch ein Signal am Ausgang 223A (Fig. 12) angezeigt.
Es ist jedoch anzunehmen, daß bei anderen CK's ebenfalls Signale am K=A-Ausgang 223A entstehen. Deshalb sind weitere Schritte und Schaltungen vorgesehen, damit der richtige CK von dem falschen CK, bei dem ebenfalls K=A ist, unterschieden werden kann. Der Vergleich der Signale am K>A- und am K<A-Ausgang liefert ebenfalls wesentliche Informationen. Aus den P.-Werten der eingegebenen CK's wird ebenfalls eine Information gewonnen, die bei der Bestimmung des richtigen CK's notwendig sein kann. Die folgenden Schritte 316-319 können aus dem laufenden P.-Wert eine Information ableiten, die
Docket PO 968 027 009884/1897
'- 32 später zur Bestimmung des richtigen CK's notwendig sein kann.
Die in den Fign. 14 und 15 abgebildeten Schaltungen dienen zur Unterscheidung des richtigen von einem falschen CK während des in den Fign. 19B und C abgebildeten Suchverfahrens. Es wird zwischen zwei P^Werten PE und PH, unterschieden. Sie unterscheiden sich in ihrer Art der Auswahl. P_ zeigt an, daß im CK K=A ist.
Cl
Der Wert P zeigt an, daß im CK K>A ist. Es muß also nur der
P -Wert der gleich P ist, gespeichert werden. Der P -Wert kann
Xn E
durch ein einziges Bit (Trigger 286) angezeigt werden. Dieses Bit gibt an, ob der im Register 17 gespeicherte Hinweis gültig ist.
Das Ausgangssignal der UND-Schaltung 271, bzw. 275, das den Trigger 273 (Fig. 15) einstellt, entscheidet, daß P_ angegeben, und der dazugehörige Hinweis gespeichert werden soll. Das Ausgangssignal der UND-Schaltung 276 oder 279, das den Trigger 277 einstellt, trifft die Entscheidung, daß P gespeichert
werden soll. Die Torschaltung 267 (Fig. 14) überträgt den ausgewählten P -Wert zur Speicherung in das P -Register 268.
π Η
Das Ausgangssignal der UND-Schaltung 274, das den Trigger
264 einstellt, gibt den Wert P„ an, wenn K=A. Wenn ein P -
et H
Wert im Register 268 gespeichert ist, wird der entsprechende Trigger 287 (Fig. 15) eingestellt.
Die Schaltzustände der Trigger 264 oder 268 geben vier Zustände Sl bis S4 an. In der folgenden Tabelle bedeutet 1, daß ein Trigger eingestellt, und O, daß ein Trigger zurückgestellt ist.
Zustandstabelle
Zustand Einstellungen von
P P
E H
O D /. / 1 C Q 1S 0
Sl 0 0
S2 1 1
1
S3
S4
0
1
Docket PO 968 027 Λ η α
■ . - 33 -
Wenn P_ oder P„ nicht mehr bei der Bestimmung des richtigen CK's notwendig sind, wird Trigger 286, bzw. 287 zurückgestellt, wodurch eine Zustandsänderung erfolgt. Das P -Register 286 wird
durch Zurückstellung des Triggers 287 ebenfalls zurückgestellt.
Wenn UND-Schaltung 282 oder 285 Trigger 283 (Fig. IS) einstellt, wird angezeigt, daß die Werte P_ und PTT nicht maßgebend sind.
In der folgenden Zusammenfassung des Suchverfahrens wird die Beziehung zwischen den Zuständen S1-S4 und den laufenden P-, K- und Α-Werten in den Registern 212a, 22Oa und 223a dargestellt.
Zusammenfassung des Suchverfahrens
I. Voraussetzung;
Das Suchargument ist mit einem UK aus dem ursprünglichen UK-Index aus welchem der verdichtete Index abgeleitet wurde, identisch. Der CK, der aus einem entsprechenden UK abgeleitet wurde, muß bei dem Suchvorgang gefunden werden. Bei dem richtigen CK ist K=A; bei einem nichtrichtigen CK kann auch K=A sein. Während des Suchvorganges werden die folgenden Zustände S1-S4 zur Unterscheidung des richtigen CK's vom falschen CK erzeugt.
II· Zustand Sl:
Dieser Zustand besteht zu Beginn eines Suchvorganges, oder wenn die alten P- und P -Werte beim Absuchen des laufenden CK's (d.h. CK.) nicht von Bedeutung sind. Im Zustand Sl war kein vorangegangener CK richtig. Dann sind beim Vergleich von K, und A folgende Ergebnisse möglich:
a.) Wenn K. < A ist, befindet sich der gesuchte CK weiter unten im Index. Zustand Sl fortsetzen und nächsten CK lesen.
b.) Wenn K »A ist: Den Hinweis mit CK registrieren. P ι i £
anzeigen, damit in den Zustand S2 übergegangen wird. Näch sten CK lesen.
Docket PO 968 027 00 9884/1897
c.) Wenn K>A, und CK nicht der erste CK ist.
(In diesem Fall ist der Wert P. von Bedeutung, da er eine nicht entscheidende Stelle im Suchargument darstellt. Der richtige CK kann ebenfalls nicht unter allen folgenden CK 's sein, welche eine gleiche oder eine grössere Bytezahl haben.) P als P speichern, damit das
i H
System in den Zustand S3 übergehen kann. Nächsten CK lesen.
d.) Wenn K>A, und CK der erste CK im Index ist, befindet sich das Suchargument nicht im Index und ist niedriger als der erste Schlüssel. Suchvorgang beendenο
III. Zustand S2:
Dieser besteht, wenn bei einem früheren CK K=A ist« Zustand S2 wird durch einen P -Wert aber durch keinen gespeicherten P -Wert angezeigt. Im Zustand S2 könnte der letzte, gespeicher-
te Hinweis der richtige sein. a.) P. ist nach rechts verschoben:
1.) Wenn K.<A: Der letzte gespeicherte Hinweis kann nicht der richtige sein. P ist nicht signifikant. P_ zurückstellen. Es folgt Zustand Sl. Nächsten CK lesen.
2.) Wenn K =A: P_ anzeigen, und der alte Hinweis ist i ε·
nicht signifikant. Den Hinweis mit CK., welcher wahrscheinlich der richtige ist, registrieren. Zustand S2 fortsetzen. Nächsten CK lesen.
3.) Wenn K.>A: Der letzte Hinweis ist wahrscheinlich der richtige. Der alte P -Wert ist signifikant.
P als P_ registrieren, damit das System in Zustand i η
S4 übergehen kann. Nächsten CK lesen.
b.) P. ist nach links oder gar nicht verschoben: Docket PO 968 027 Q09884/1897
: - 35 -
1.) Wenn K <A; Der letzte, gespeicherte Hinweis kann nicht der richtige sein. Sein gespeicherter P-Wert ist nicht signifikant und wird deshalb zurückgestellt. Es folgt Zustand Sl. Nächsten CK lesen.
2.) Wenn K»A: CK ist wahrscheinlich richtig. Sein Hinweis wird registriert. P„ anzeigen; der alte Hinweis ist nicht signifikant. Im Zustand S2 bleiben und nächsten CK lesen.
3.) Wenn P >A: Der letzte gespeicherte Hinweis ist (
wahrscheinlich der richtige. P. als P registrie-
i H
ren. P„ versetzt das System in den Zustand S4. Näch-
sten CK lesen.
Zustand S3;
Dieser besteht, wenn ein vorangegangener CK P„ gespeichert
hat (P1. kann beim Suchvorgang in CK, signifikant sein) , und
η i
wenn P_ nicht signifikant ist. Im Zustand S3 kann kein frü-
herer CK richtig sein.
a.) Wenn P. rechts von P liegt: Zusammenhang größer, gleich oder kleiner zwischen K und A nicht beachten. Nächsten CK im Zustand S3 lesen (dadurch werden alle unmittelbar ™ folgenden CK's mit P>P„ ausgeschieden. Bei dem nächsten CK
, dessen K-Byte überprüft wird, hat P£PH·)
b.) Wenn P. linksverschoben ist oder wenn P die gleiche Stelle wie Pn einnimmt:
1.) K<A zeigt an, daß Pn nicht signifikant ist. P„ A H H
zurückstellen und in Zustand Sl übergehen; nächsten CK lesen.
2.) K.=A: P ist nicht signifikant. P„ zurückstellen, in H
Docket PO 968 027 009884/1897
P anzeigen und in Zustand S2 übergehen. 3.) K.>A: Der alte P -Wert ist nicht signifikant. P.
In 1
als neuen P -Wert speichern. In Zustand S3 bleiben, η
Nächsten CK lesen. ■
V. Zustand S4;
Dieser besteht, wenn die zwei vorangegangenen CK's P ange-
zeigt und P gespeichert haben. Der letzte, gespeicherte Hinweis kann der richtige sein.
a.) Wenn P rechts von P liegt j Die alten P- und P-1 Ii H
Werte sind signifikant. In Zustand S4 übergehen und Zusammenhang größer, gleich oder kleiner zwischen K. und A unbeachtet lassen- (Dadurch werden alle unmittelbar folgenden rechtsverschobenen CK's ausgeschieden) .
b.) P. liegt rechts von P : 1 H
1.) K. <A: P und P„ sind nicht signifikant und v/erden
X E M
zurückgestellt. Dadurch wird Zustand Sl hergestellt.
2.) K =A: CK, ist wahrscheinlich richtig. P_ anzeigen i i
und P zurückstellen. In Zustand S2 übergehen, H
Hinweis registrieren und nächsten CK lesen.
3.) K.>A: Der alte P -Wert ist signifikant. P. als
1 £· i
neuen P„ speichern. Zustand 4 fortsetzen und
nächsten CK lesen. VI. EndbediirJunc
Wenn K>A hai P=I, ist der Suchvorgang abgeschlossen. Sonst ist er erst dann abgeschlossen, wenn das Indexende erreicht ist. In beiden Fällen ist derjenige CK der richtige, welcher zuletzt einen Hinweis ausgelesen hat. Die-Docket PO 968 027 009884/1897
ser Hinweis gehört zu dem CK, welcher den letzten signifikanten P -Wert enthält. Deshalb kommen nur Zustand S2 oder S4 in Frage, wenn der Suchvorgang mit einer richtigen Ausgabe endet. Wenn aber Zustand Sl oder S3 eintritt, ist das Suchargument nicht in dem Index enthalten, und alle zuvor ausgelesenen Hinweise werden nicht berücksichtigt.
VII. Zusätzliche, mögliche Endbedingungen:
Es kann ein Suchargument-Gleichheitszähler vorgesehen werden, damit der Suchvorgang beendet werden kann, wenn wenn K größer als A ist, während P kleiner oder gleich der laufenden Stellung des Gleichheitszählers ist. Der Gleichheitszähler wird nur erhöht, wenn K=A ist, während P. gleich der laufenden Stellung des Gleichheitszählers ist. Diese mögliche Endbedingung hängt von der Wahl des Suchargumentes und von den Verschiebungseigenschaften im Index ab.
Diese Zusammenfassung steht in Einklang mit der Tabelle E, in welcher die Beziehungsregeln der gleichstelligen Bytes in einem sortierten, unverdichteten Index aufgestellt sind.
Die Zusammenfassung hat ihre Grundlage in dem Verfahren der Fig. 19A-D und den Schaltungen Fign. 7, 1IA-I7.
Die folgende Matrixtabelle gibt eine ganz knappe Aufstellung der verschiedenen Vorgänge und Zustände, die in der vorangegangenen Zusammenfassung erklärt wurden.
Docket PO 968 027 009884/1897
Matrixtabelle
AUS Sl AUS S2 AUS S3 AUS S4
EIN
Sl
C: 1) K<A und
2) Verschiebung
A: Keine
C: 1) K=A und
2) Verschiebung
A: Hinweis spei
chern & P_
Cl
anzeigen
C: 1) K>A und
2) Verschiebung
A: P1J speichern &
P1J anzeigen
EIN
S2
C: 1) K<A und
2) Vers chiebung '
A: P„ zurückstellen
C: 1) K=A und
2) Verschiebung
A: Hinweis spei
chern & PE
anzeigen
Cs 1) K>A und
2) Verschiebung
As P1J speichern & P„
anzeigen
(Alter Pe ist signi
fikant) ·
EIN
S3
C: I) K<A und
2) Ρ±Η
Cs 1) K=A und
2) Pi<PH
C: 1) K>A und
2). Pi<PH
As Pjj speichern & PH
anzeigen
EIN C: 1) K<A und
2) Ρ±Η
Cs 1) K=A und
2) P±<PH
Ci Pi>PH
As Keine (K-A-BeZiehung
berücksichtigen; alter P
ist signifikant)
Cs 1) K>A und 2) Pj^Pj1
As Pjj speichern & Pjj an
zeigen (alter PE ist
signifikant)
Cs 1) P±>PH
As Keine (Alter PE u. Pj1
sind signifikant) K-A-
Beziehung nicht be
rücksichtigen.
/Q27A64
In dieser Matrixtabelle sind die Übergänge zwischen den einzelnen Zuständen mit "EIN" und mit "AUS" abgekürzt/Beispielsweise ist im linken, obersten Feld (Sl+Sl) und im linken, untersten Feld ist (S4+S1) definiert. Diese Darstellung wird benötigt, um eine bestimmte UND-Schaltung in Fig. 15 zu einem oder mehreren Feldern der Matrixtabelle in Beziehung zu bringen. Diese gleiche Darstellung wird außerdem verwendet, damit in dem Verfahren der Fign. 19B und C die Schritte der Matrixtabelle entsprechen.
Der Inhalt jedes Feldes bezeichnet die Bedingungen (C), die in dem laufenden, gelesenen CK vorliegen, und die entsprechende Aktion (A), welche für den Übergang in den im Feld angegebenen Zustand notwendig ist. Folgende Bedingungen (C) sind möglich: K <A, K=A oder K>A. Außerdem ist das Verhältnis zwischen dem laufenden P (d.h. P.) und dem laufenden, gespeicherten P- und/oder
P -Wert zu berücksichtigen. Dementsprechend ist in jedem Feld H
links der Eingangszustand angegeben. Der Ausgangszustand, welcher von den Bedingungen und von der innerhalb des Feldes angegebenen Aktion abhängt, steht senkrecht in der Spalte oberhalb der entsprechenden Felder.
In manchen Feldern stehen zwei verschiedene Gruppen von Bedingungen (C) und Aktionen (A) . Es sind die Felder (S2+S2) ; (S3+S3) und (S4+S4) . In der unteren Gruppe dieser Felder sind keine neuen Aktionen erforderlich. D.h. P_ und P haben unter den
EH
im Feld angegebenen Bedingungen (C) den gleichen Aus- und Eingangszustand. Daher sind für diese Zustände keine besonderen Schaltungen notwendig.
Manche Felder beinhalten die gleichen Bedingungen und die gleichen Aktionen. Sie können von derselben Schaltung in der Fig. 15 ausgeführt werden. Die UND-Schaltungen 271, 275, 276, 279, 282 oder 285 sind beispielsweise für zwei Felder der Matrixtabelle zuständig.
Die vorangegangene Zusammenfassung des Suchverfahrens und die Matrixtabelle verdeutlichen das Verfahren der Fign. 19B und C
Docket PO 968 027 00 9884/1897
- 40 und die entsprechenden Schaltungen.
Es wird zu Schritt 316 übergegangen, wenn in Schritt 314 ein K«A-Signal auf Leitung 223A vorhanden ist. In Schritt 316 werden auf Leitung 287A bzw. 287B aus dem Trigger 287 Signale abgegeben. Diese Signale hängen vom Schaltzustand des Triggers 287 ab und sie zeigen an, ob gerade ein signifikanter P„-Wert
im Register 268 (Fig. 14) gespeichert ist.
Wenn -P gespeichert ist, herrscht Zustand S3 oder S4. Ist
P„ jedoch zurückgestellt, muß Zustand S2 oder S2 vorliegen.
Schritt 317 wird ausgeführt, wenn P nicht gespeichert ist (d.h. Leitung 287B führt ein Signal). In diesem Fall liegt Eingangszustand Sl oder S2 vor, und es folgt Ausgangszustand S2. In Schritt 317 wird der "nächsten Hinweis lesen"-Trigger 262 (Fig., 14) eingestellt, um das Verfahren für die Speicherung des Hinweises, der unmittelbar auf das laufende K-Byte folgt und der zu dem laufenden CK gehört, vorzubereiten, da bei Schritt 314 festgestellt wurde, daß bei diesem CK K~Ä ist.
Daraufhin folgt Sehritt 319, in welchem der P -Trigger 286 eingestellt wird, da P_ für den nächsten CK signifikant ist.
Daraufhin wird in Schritt 320 {wem Schalter S2 wie gezeigt eingeschaltet ist) ein R-Zyklus eingeleitete in welchem der dazugehörige Hinweis, welcher mit dem nächsten,, eingegebenen Byte beginnt, in das Hinweisregister 17 (FIg0 2Bj gespeichert wird, da bei Schritt 317 der "nächsten Hinweis lesen"-Trigger eingestellt wurde. Es wird su Schritt 318 übergegangen,, wenn in Schritt 316 festgestellt wird*-. etaB PH gespeichert wurde (<ä.he Leitung 287A führt ein Signal).
In diesem Fall liegt Zustand S3 oder S4 vor? gangazustand S2. In Schritt 318 wird festgestellt 0 daß der dazugehörige Hinweis gespeichert werden SoIi17 weshalb Schritt 317
Docket PO 968 027 009884/1897
unter der Bedingung P4<P„ ausgeführt wird (P„ ist der im Register 286, Fig. 15, augenblicklich gespeicherte Wert). - ;
Wenn jedoch in Schritt 31£.'P.>Pa festgestellt wird, dann wird
Χ— π
in Schritt 320 ein R-Zyklus für den nächstfolgenden Hinweis eingeleitet. Bei diesem Schritt wird der dazugehörige Hinweis übersprungen, da Schritt 317 übergangen und der "nächsten Hinweis lesen"-Trigger nicht eingestellt wurde (d.h. er befindet . sich im zurückgestellten Zustand).
Soeben wurde beschrieben, wie die Schritte in der unteren Hälfte
der Fig. 19B ausgeführt werden, wenn in Schritt 314 in dem gerade * eingegebenen CK K=A festgestellt wurde.
Wenn jedoch in Schritt 314 K/A festgestellt wurde, wird Über Bl zu Schritt 331 der Fig. 19C übergegangen, bei welchem festgestellt wird, ob die K>A-Leitung 223B ein Signal führt. Wenn keines vorliegt, wird Schritt 351 ausgeführt, in welchem angezeigt wird, daß die K<A-Leitung 223C ein Signal führt. Wenn das, K=A- und das K>A-Signal fehlen, muß ein K<A-Signal vorliegen.
Schritt 332 wird ausgeführt, wenn in Schritt 331 K>A festgestellt wird. In Schritt 332 wird überprüft, ob P.-l ist. Dieser Fall tritt ein, wenn das laufende K-Byte das äußerste linke A
Byte aus dem entsprechenden UK ist. Wenn P1 19I und K.>A ist, muß das Suchargument niedriger als der UK sein, welcher van CK vertreten wird. In diesem Fall ist der Suchvorgang nach Schritt 332 bei Cl (Fig. 19A) beendet. Wenn der laufende CK der erste im Index ist, bedeutet ein Obergang zu Cl, daß das Suchargument nicht im Index vertreten und niedriger als der erste Indexschlüssel ist; in diesem Fall kann kein Hinweis in das Hinweisregister 17 gespeichert werden. Wenn der übergang zu Cl bei einem CK, welcher nicht der erste des Index ist, stattfindet, kann der in das Hinweisregister 17 gespeicherte Hinweis der richtige sein, wenn der P -Trigger 286 eingestellt ist. Wenn jedoch kein signifikanter Hinweis im Register 17 gespeichert ist (d.h. P£-Trigger
Docket PO 968 027 009884/1897
286 ist zurückgestellt), befindet sich das Suchargument nicht im Index.
Wenn P1J1I, wird von Schritt 332 zn Schritt 337 übergegangen, falls Schalter S2 dementsprechend geschaltet ist. In den Fign. 19B und C sind die zwei mögliche» Schaltstellungen des Schalters S2 gezeigt, der zur Auswahl alternativer Schritte dient. In der nicht dargestellten Schaltstellung wird ein Gleichheitszähler (GZ) verwendet, um den Suchvorgang etwas schneller beenden zu können, wenn bestimmte Bedingungen im Ind@seaufbau und in der Wahl des Suchargumentes gegeben sind. Wenn diese Bedingungen nicht gegeben sind, bietet die Betriebswelse alt dem Gleichheitszähler keine Vorteile. Die Betriebsweise mit dem Gleiehheltszähler wird weiter unten erörtert.
Bei der Beschreibung des Verfahrens der Fign. 19B und C ist bezug auf die Matrixtabelle genommen.
In Fig. 19B ist eine abwärts verlaufende Schrittfolge von Schritt 314 für den Fall K»A dargestellt. Diese Folge endet am Ausgang von Schritt 319, in welchem P gespeichert wird, so daß Zustand
£1
S2 folgt. Diese Folge entspricht den vier Feldern der "AUS S2n-Spalte der Matrixtabelle. K»A ist eine der Bedingungen (C) in jedem Feld dieser Spalte. Daher ist "AUS S2" der Ausgangszustand dieser K»A-Bahn In Fig. 19B.
Eine weitere Schrittfolge ist zwischen Schritt 318 und 320 vorgesehen, um die unteren Hälften der Felder (S3+S3) und (S4-»-S4) darzustellen, wenn K-A in der unberücksichtigten K-A-Beziehung ist. Die Situationen K>A und K<A in der unberücksichtigten K-A-Beziehung sind in Fig. 19C dargestellt.
In der Fig. 19C werden zwei nach unten verlaufe&de Sebxittfolgen von Schritt 331 nach Ausgang C2 (Fig. 19B) für die Verarbeitung des nächsten Hinweises gezeigt. Die teiden Folgen sind die K>A-Folge (link· Folge) und die ΚΆ-Folge .(rechte- Feige) DIa rechte
Docket PO 968 027 009984/1897
Folge (K<A) bezieht sich auf die vier Felder der Spalte "AUS Sl" der Matrixtabelle. Jedes Feld enthält die Bedingung (C) K<A. Die rechte Folge verläuft von Schritt 355 zum Ausgang C2. Im Schritt 355 werden die gespeicherten Pn- und P -Werte zurückgestellt, so daß der Ausgangszustand Sl eintritt, wie es in der Zustandstabelle bestimmt ist. Sl ist also der Ausgangszustand der rechten Schrittfolge.
Die linke Folge (K>A) entspricht den vier Feldern der Spalten "AUS S3" und "AUS S4W der Matrixtabelle. Sie verläuft von Schritt 339 zum Ausgang C2. In Schritt 339 wird der P -Wert gespeichert,
so daß entweder Ausgangszustand S3 oder S4 erfolgt, je nachdem ob der Eingangszustand von ] gangenen P-Wert enthält.
der Eingangszustand von P_ zurückgestellt 1st oder einen vorangeln allen drei beschriebenen Schrittfolgen erfolgt eine positive Aktion. Jede dieser drei Schrittfolgen weist jedoch zusätzlich eine abgespaltete Schrittfolge auf, in der keine positive Aktion stattfinden muß, um die richtige Entscheidung zu treffen, d.h. die Eingabewerte P-, und P werden als Ausgabewerte zurückgehalten. Die abgespaltete Folge von Schritt 318 nach Schritt 320 (Fig. 19B) wurde bereits erwähnt. Die abgespalteten Folgen entsprechen den Feldern der Matrixtabelle, welche das Wort "keine" nach Aktion (A) enthalten. Es sind die Felder (S1+SI), (S2+S2), (S3*S3) und (S4+S4) Der Bezeichnung II in den Flgn. 19B und C gibt an, daß die untere Hälfte eines Feldes betroffen ist. Die tiefgestellten Buchstaben A oder B geben an, daß nur ein Teil der im Feld angegebenen Funktion von der entsprechenden, abgespalteten Folge ausgeführt wird; beispielsweise wird bei (S3+S3) II und (S4+S4) II der Vergleich zwischen K und A nicht berücksichtigt, und es sind diese Felder bei jeder K-A-Beziehung betroffen. Deshalb wird in der Schrittfolge zwischen 318 und 320 nur die Komponente B von (S3+S3) II und (S4+S4) II (wenn K»A) erhalten. Der abgespaltete Zweig 356 (Fig. 19C) liefert ihre restlichen Komponenten A aus Schritt 342, wenn K>A in den Keine-Aktion-Feldern (S3+S3) und (S4-»-S4) ist. Zweig 356. liefert auch das Keine-Aktion-Feld (Sl+Sl) aus Schritt 354.
Docket PO 968 027 009884/T89 7
Am Anfang der linken und der rechten Schrittfolge in Fig. 19C wird in Schritt 337, bzw. 352 untersucht, ob P„ gespeichert ist, um die richtige Aktion zu bestimmen.. Bei Verneinung wird Sl bzw. S2 als Eingangszustand bestimmt, bei Bejahung hingegen wird S3 bsw. S4 als Eingangszustand bestimmt.
Bei der Ausführung der Schritte 337 bzw..352 werden die Signale
auf der Leitung 287A bzw. 287B des Triggers 287 geprüft.
In jeder der beiden Folgen wird über den Ja-Ausgang zu Schritt 342 bzw. Schritt 353 weitergeleitet«, Beide Schritte sind identisch und werden von einem Ausgangssignal (bzw. keinem Ausgangssignal) des Vergleichers 269 auf Leitung 269A ausgeführt.
In der rechten Folge der-Fig., 19C wird über den Nein-Ausgang des Schrittes 352 Schritt 354 eingeleitet, welcher vom Ausgangssignal des Triggers 286 auf den Leitungen 286A und 286B ausgeführt wird.
Der Ja-Ausgang der Schritte 353 und 354 führt zu Schritt 355,
in welchem der P- und der P -Trigger 286 und 287 und der
Γι η
Inhalt des Registers 268 zurückgestellt werdenο
über die UND-Schaltung 282 der Fig. 15 laufen die Sehritte 351, 352 und 355 ab, wodurch der Trigger 233 eingestellt und ein Signal auf der Leitung 284A erzeugt wird. Damit werden auch die Felder (S3+S*) und (S4+S1) der Matrixtabelle erledigt.
Dementsprechend laufen über UND-Schaltung 285 der Fig» 15 die Schritte 351, 352, 354 und 355 ab, wodurch ein Signal auf Leitung 284A erzeugt wird, welches die Trigger 286 rad 287 und den Inhalt des Registers 268 auf den erforderlichen Sl-Zustand zurückstellt. Damit sind die Felder iBUSl) und (S2+S1) in der Matrixtabelle ausgeführt. Von den Nein-Ausgängem der Schritte 353' und 354 gehen die bereits erwähnten abgespalteten zweige aus. Dabei sind keine Signale auf den Leitungen 274A, 27SA und 284A vorhanden. Docket PO 968 027 009884/1Q97
Die linke Folge verläuft vom Nein-Ausgang des Schrittes 337 zu Schritt 339, wodurch die Felder (S2+S4) und (S1+S3) ausgeführt werden, über die UND-Schaltung 276 der Fig. 15 (wenn die UND-Schaltung 241 der Fig. 16 nicht durchgeschaltet ist) laufen die Schritte 331, 332 und 337 ab. Wenn hingegen die UND-Schaltung 241 durchgeschaltet ist, wird die UND-Schaltung 276 nicht betätigt, so daß zum Ausgang Cl weitergeleitet wird.
über die UND-Schaltung 279 (wenn UND-Schaltung 241 nicht durchgeschaltet ist) laufen die Schritte 331, 332, 337, 343 und 339 ab; dadurch wird die obere Hälfte der Felder (S3+S3) und (S4+S4) ausgeführt. Wie bereits erwähnt, erfolgt nach dem Nein-Ausgang Λ von Schritt 342 keine Aktion. In diesem Fall sind keine Signale auf den Leitungen 274A, 278A und 284A vorhanden.
Von Ausgang C2 wird zu Schritt 320 (Fig. 19B) übergegangen, in welchem ein R-Zyklus zur Verarbeitung des nächsten eingegebenen Hinweises eingeleitet wird. Dann folgen die Schritte der Fig. 19D.
Durch den Verfahrensablauf der Fig. 19D wird die Abfühlung und das Auslesen des Hinweises für einen CK gesteuert. Jede Aktion, die die Einleitung des R-Zyklus im Schritt 320 bewirkt, führt über Ausgang B2 zu den Schritten der Fig. 19D.
Die Hinweise werden in dem R-Zyklus abgetastet. Es werden jedoch nur die Hinweise in das Hinweisregister 17 (Fig. 2B) gespeichert, welche die K=A- und andere Bedingungen erfüllen.
Der Inhalt des Registers 224b in Fig. 12 lokalisiert das Hinweisregister 17 im Pufferspeicher 10 (Fig. 2B). Das Register 224b wird während des RL-Kennzeichenzyklus mit der Bytestelle von Register 17 geladen, welche die Adresse des äußersten linken Bytes ist. Danach ergibt sich jede erforderliche Hinweisbyteadresse aus der Summe aus dem Addierer 224a von der Adresse im Register 224b und von dem laufenden Wert im R-Zähler (Fig. HB). Die Hinweisadressen sind nur erforderlich, wenn der "nächsten Hinweis lesen"-Trigger '(fig. 14) eingestellt ist. Gegebenenfalls wird die Hinweisadresee
Docket PO 968 021 009894/1897
über die Torschaltung 224c auf die Puffersp@i<sheradressier
leitung 16 übertragene, um dl
bytes asu lokalisieren und .lsi wenn sie von der
die UND-Schaltung 232b, über das
über die Torschaltung 232c auf dies J?a£fes:sg>©±ehereingang
13 geleitet werden«
16 zu speichern« (FIg0 13) über
232a und
Der eingegebene Hinweis wird in gen, wenn bei dem dazugehörigem abgerufenen Α-Byte gleich ist 0 gen erfüllt sind. Das eher 223d erzeugt, wenn und - das gleiche Α-Byte aus de» legi
Hiaweisregister 17 Ifosrtralaa K-Byte dem angeüfifolielslieh
Ifte am® <ä®M Eegister 22Oa ir 223a erhalten hat.
In Schritt 361 {Fig. 19D) wird festgestellt<, ob ües eingegebene Hinwels übersprungen oder ob ©r ia das Hiaweisregister 17 ausgelesen werden soll. Diese Entscheidung ist Savon abhängig, ©b der "nächsten Hinweis lesen'-Tr&gger 262 (PIg0 141 eingestellt ist» Diese EntScheidung wurde v©a ÜND-Schaltraag 271 oder 275
getroffen, welche äen Trigger 273 ©instellt«, Bms gustaxidy bei
dem K»A ist, und bei üea keiö Hiweis is üsl® Register 17 übertragen wird, tritt ein, wenn·P.>F„ ist® Sie© ist bei arafeinaaderfolgenden CK's der Fall, deren K-Byte ara ües gleichen Stelle
(oder an einer Steil© weiter
Wert liegt.
Wenn in Schritt 361 festgestellt wird,
weis lesenw-Trigger nicht eingestellt ist, wird <äie UND-Schaltung 232d (Fig. 13) nicht dtasfeg©schaltet* Ia diesem Fall werden über Torschaltung 224© keia© eingegebene» liisweisfoytes auf den Puf ferspeiehereii&gang
weisbytes übersprangen c
366 übergegangen,, Wenn die
nicht beaufschlügt ist', fol^t
3§6 der Seferitt 367, in
wslt@2?g®schaltet wird» ©es
Docket PO 968 021
Schaltung 221c im vorangegangenen K-Zyklus zurückgestellt und zählt über die UND-Schaltung 211b alle R-Zyklen für den laufenden Hinweis.
Nach Schritt 367 folgt über D2 der Schritt 320 (Fig. 19b), um den nächsten R-Zyklus einzuleiten. Danach wird über B2 zurück zu Schritt 361 gegangen (Fig. 19D), und Schritt 366 wird so lange ausgeführt, wie die R-Zahl»RL-Leitung 21OA nicht beaufschlagt ist. Demnach wird Schritt 367 während jedes Zyklus R so lange ausgeführt, bis in Schritt 366 angezeigt wird, daß das Hinweisende erreicht ist. In diesem Fall wird während des letzten R-Zyklus ein R-Zahl-RL-Signal auf Leitung 210A gegeben. Das R-Zahl«RL-Signal wird im Vergleicher 21Oe (Fig. 11B) erzeugt, welcher die R-Zyklus-Zählung aus Zähler 211a erhält und welcher diese mit dem Hinweislängenwert (RL) im RL-Register 210a vergleicht. Das R-Zahl« RL-Slgnal auf Leitung 210A wird während des letzten R-Zyklus an die UND-Schaltung 260 (Flg. 14) (für jeden Hinweis) geliefert. Dadurch wird Schritt 364 (Fig. 19D) ausgeführt, in welchem der "P-Zyklus"-Trigger 261 eingestellt wird. Da durch wird ein Auegangssignal auf Leitung 261A an die UND-Schaltung 253e (Fig. 17) gegeben, welches während des nächsten Taktsteuerungszyklus einen P-Zyklus einleitet. Das Ausgangssignal der UND-Schaltung 260 stellt außerdem den "nächsten Hinweis lesen"-Trigger 262 zurück, auch wenn sich dieser schon im zurückgestellten Zustand befindet. Danach folgt Schritt 365, in welchem der P-Zyklus für den nächsten CK eingeleitet wird.
Wenn in Schritt 361 festgestellt wird, daß der "nächsten Hinweis lesen"-Trigger eingestellt ist, wird in Schritt 362 der Hinweis in das Hinweisregister 17 übertragen. Wenn in Schritt 363 kein R-Zahl*RL-Signal auf Leitung 210A festgestellt wird, folgt Schritt 367, in welchem der R-Zähler 211a vorwärtsgeschaltet wird, ober den Ausgang B2 folgt Schritt 320 (Fig. 19B), in welchem der nächste R-Zyklus eingeleitet wird. Danach wird über B2 zurück zu Schritt 361 und zu Schritt 362 gegangen, in welchem das nächste Hinweisbyte in das Register 16 gespeichert wird. Das rückgekoppelte Durchlaufen der Arbeitsgänge wird so lange fortgesetzt, bis in
Docket PO 968 027 009884/1*89
Schritt 363 das Ende des Hinweises festgestellt wirdo Dann werden die Schritte 364 und 365 ausgeführt. Ober Ausgang Dl CFig. 19D) folgt Schritt 305 (Fig. 19Ä) , im dem nächsten CK auf gleiche Weise zu verarbeiten. Dieser Vorgang wiederholt sich so !aage, bis Schritt 309 ausgeführt wird» Bei Sehritt 310 wird der gespeicherte Hinweis als der richtige an die Zentraleinheit gegeben» Damit ist der Suchvorgang für das Suehargwment, das sieh augenblicklich im Suchargument-Registes? 16 (FIg9 2B) befindet ρ beendete
Suchvorgang In einem abnehmenden Index
Das soeben beschriebene Äös£öti:rafi§gb<§ispi@l jbe^ieht sich auf einen zunehmenden; verdichteten Indexe der aas ein©!? umnehmenden UK-Sortierfolge erzeugt wurde» Das beschrieb©»© Eraettgungsverfahren kann jedoch auch eits©a afoHefenente! e verdichteten Index erzeugen, wenn die ©ingegebene UK-Folge abnehmend sortiert ist. Dies ist möglich, da beim Ers@iifiiragsvorg.aag die auftretende Ungleichheit «!sehen zwei Bytestellen, nicht aber die eigentliche Sortieirfolge relevant ist«. Else bekannte Sortierfolgenkontrolle kann, wenn erforflerlieh, eingebaut werden»
Folgende einfache ^änderungen sind Ih erfiaetangsgemäßen Ausftthrungsbeispiel beim Äbsracfeea eines ataetei©Bd@a ladesc notxiendigs Die Leitungen 223B und 223C missen n»f©p©lt werde» (Flgna 15 und 16). D.h., die K»Ä-Leituag 223B su den öHD»S<shaltöng©a 276^ 279,
und 245 wird durch die K<1>223d ersetzt. Die K<Ä-Leitung 285 wird durch" die R>A-1 setzt· Die Bezeichnung an tungen werden dementspreeixenä abgeänderte Pi© Eqe;
E Pign. 14 «sad 15 ersdtat (E bedeutet ho
L bedeutet niedrig).
wird durch P„ in den Pign. 14 «sad 15 mrmmtst (E bedewtet
Diese Abänderungen kdnnen durch Einbau schalters (nicht gezeigt) in den ¥ergleicher 223d erhielt werden, durch welchen die Ausgangsleitnmgen 223B und 223C umgepolt werden.
Docket PO 968 027 0098 84/1897
Folgende Abänderungen sind im erfindungsgeraäßen Verfahren bei einem abnehmenden Index notwendig: K>A und K<A umkehren; P11 durch P_ ersetzen; d.h. P„ wird durch P- in den Schritten 316, 318, 319, 337, 342, 352, 353, 354 und 355 ersetzt. Im Schritt 331 wird K<A durch K>A, und im Schritt 351 wird K>A durch K<A ersetzt.
Wahlweise Verwendung eines Gleichheitszählers Eine andere Möglichkeit, einen Suchvorgang zu beenden» bietet der S.A.-Gleichheitszähler. Diese Möglichkeit kommt dann in . Frage, wenn der P.-Wert des laufenden CK's genauso groß oder kleiner als die Stellung des S.A.-Gleichheitszählers ist. Das ist eine besondere Endbedingung bei einem Suchvorgang, da der richtige CK in einem Index (mit CK*s die nur ein K-Byte haben) einen P.-Wert hat, der größer als die laufende Stellung des Gleichheitszählers ist.
Die Zweckmäßigkeit dieses Gleichheitszählers ist von der Form des Index und von der Stelle des Suchargumentes im Index abhängig. Er ist zweckmäßig, wenn der Index CK's mit P.-Werten hat, die alle werthohen Bytestellen einnehmen, zumindest den P -Wert des richtigen CK's. Ein sehr dichter Index, und infolgedessen ein sehr umfangreicher Index, hat diese Eigen" schaft. Ein Index hat nicht unbedingt diese Eigenschaft, es sei denn, es werden Pseudo-CK's mit den fehlenden P.-Werten und ein K-Byte, das richtig in den sortierten Index passt, eingefügt.
Die Verwendung eines Gleichheitazählers ist also nicht zweckmäßig, wenn kein CK einen P -Wert 2 hat. Im allgemeinen wächst die Zweckmäßigkeit des Einsatzes eines Gleichheitszählers, wenn die P.Lücke sich an den wertniedereren Bytestellen, z.B. an der dritten, vierten, fünften usw. Bytestelle, befindet. Der in der Tabelle B dargestellte Index hat eine Lücke an der zweiten Byteitelle. In diesem Fall lohnt sich nicht die Verwendung eines Gleichheitezählers.
* ■ ■ ■ ·
0er S.A.-Gleichheitszähler 243« (Fig. 16) i«t Anfang« auf I Docket PO 968 027 QÖ9884/1007
- 50 -
eingestellt. Er wird über die UND-Schaltung 244 erhöht, wenn U) ein CK einen P^Wert hat, der ü@r augenblicklich©» Stellung (GZ) des Gleichheitsszähiers entspricht und wenn (2) bsi diesem CK K»A ist. Da der Pj-Ifert beliebig b©ä aufeinanderfolgenden CK's
springen kann, und da sich das A-Byte &m der P.-Bfta®teile im
Suchargument befindet, ist. es nicht sieher, dad die vorangegangenen CK's die (sich erhdlienden) Bedingungen dee «»leicfeheitszählers erfüllen? wenn der richtige CK g@Jes©a wird. Aber in den besonderen Fällen, in denen die Gleichheltsssähler-Bedisignangen erfüllt sind, ist es zweckmäßig und zeitsparend f den Suchvorgang zu beenden, ehe das Indexende erreicht wurde.
Die Schritte für diese Verfahr©» siai ist ά®η Figsu 19B und 19C gezeigt. Der Schalter S2 mu0 ungelegt werden* Auf Schritt 319 folgt Schritt 321, in welchem festgestellt wird, ob die Leitung 343B ein P »GZ-Signal aus dem Ifergleicher 243d führt. Schritt 319 wird jedoch nur ausgeführt, wenn vorher in Schritt 314 K-A festgestellt wurde.
Wird in Schritt 321 kein P^-Gü-Sigiial festgestellt, geschieht nichts und in Schritt 320 wird der nächste Hinweis verarbeitet, welcher mit den nächsten, eingegebenen Bytes beginnt.
Wenn jedoch in Schritt 321 ein P^k'.~Signal festgestellt wird, wird in Schritt 322 über die OüD-Schaltung 244 der Gleichheitszähler um 1 erhöht. Der Gleichheitszähler kann während dieses .CK's den Suchvorgang nicht beenden, vielleicht aber im nächsten, falls die geeigneten Bedingungen erfüllt werden.
In Schritt 336 (Fig. 19C) sind die geeigneten Bedingungen für den Gleichheitsasähier dargestellt. Schritt 336 wird ausgeführt, wenn im Schritt 331 ein K>A~Signal für den laufenden CK festgestellt wurde. In Schritt 336 wird der Swltirorfastg beendet, wenn Leitung 243A eist F.£GS*Slgi%a3. fltat. über €i folgt Schritt 30t (Fig. 19A), in. weiche» ö@k ^uetamsrgang toeeadet"1» Trigger eingestellt wird. Da« ^«fungiesigst»! &m oro-sctoltwig-
Docket PO 9C8 037
- 51 -(Fig. 16) führt die Schritte 331, 336 und 309 aus.
Wenn der Wert P^ größer als die laufende Stellung des Gleichheitszählers ist, folgt nach Schritt 336 der Schritt 337, um die Bedingungen herzustellen, welche zur Fortsetzung des Suchvorganges ohne Gleichheitszähler notwendig sind.
Beispiel eines Suchvorganges
Ein Suchvorgangsbeispiel wird anhand der Tabelle D, der Regeln der Matrixtabelle und anhand der Tabelle E erklärt. Bei diesem Beispiel wird vorausgesetzt, daß in dem Suchvorgang das Suchargument gefunden wird· und daß es dem 26. UK in der Tabelle D (UK-26) entspricht. Jeder CK im Index hat die Bezugsnummer des entsprechenden UK's. Jeder CK hat den Wert P in der Spalte P und ein einziges K-Byte aus dem entsprechenden UK.
Zu Beginn befindet sich das System la Zustand Sl, da zu Beginn eines Suchvorganges kein P- oder P -Wert vorhanden sein kann. Daher werden P_ und P_ zu Beginn zurückgestellt.
JE η
Der Suchvorgang beginnt bei CK-O, und es wird festgestellt, daß das erste K-Byte und das äußerste linke S.A.-Byte gleich sind, da P«l für den ersten CK ist.
PE wird auf 1 eingestellt, und deshalb wird der Hinweis R-O im Hinweisregister 17 (Fig. 2B) gespeichert. P_ bleibt zurückgestellt, und Zustand S2 folgt als Ausgabezustand. Bei Verwendung eines S.A.-Gleichheitszählers wird dieser von seinem zurückgestellten Wert 1 auf 2 erhöht.
Dann wird CK-I im Eingangszustand 2 gelesen. Es ist P »5 und hat keine Beziehung zum fünften Byte des Suchargumentes (d.h. UK-26) , da N-Bytes in dieser Spalte dazwischenliegen (d.h. in UK-9 bis UK-I4). Deshalb kann K. niedriger, gleich oder höher als das fünfte S.A.-Byte sein. Wenn K niedriger ist, wird Zustand Sl ausgegeben und UK-I kann, nicht richtig sein. Wenn K.
Docket PO 968 027 009884/1897
gleich ist, folgt Ausgangszustand 2; in diesem Fall kann UK-I . richtig sein; daher wird P_ eingestellt und R-I wird im Hinweisregister 17 gespeichert und überlagert dabei R-O, welcher nicht nehr der richtige Hinweis ist. Wenn K. höher ist, folgt Ausgangszustand 4, P wird auf 5 eingestellt und P£ bleibt zurückgestellt.
Danach wird CK-2 gelesen. Der Eingangszustand kann Sl, S2 oder S4 sein. Bei Eingangszustand Sl oder S2 hängt der Ausgangszustand davon'ab, ob K niedriger, gleich oder höher als A ist. Es ist P.*7. Jedes Feld der Matrixtabelle ist in diesem Fall anwendbar. Keines kann den Suchvorgang beenden. Höchstens wird der Hinweis R-2 gespeichert· Der Ausgangszustand kann entweder Sl, S2, S3 oder S4 sein.
Gleichermaßen werden für CK-3 bis CK-8 bestenfalls ihre entsprechenden Hinwelse gespeichert, und der Ausgangszustand kann entweder Sl, S2, S3 oder S4 sein.
CK-9 hat P«3· Es »iB ein K<A-Signal entstehen, da nur B-Bytes dazwischenliegen. Aueerdem muß ein P4<P -Signal entstehen, ausgenommen wenn Pn zurückgestellt ist. Es folgt Ausgangszustand
Sl, und die eingegebenen P- und P -Werte werden zurückgestellt.
ε n ■
Ein früherer P -Wert oder eine frühere P -Anzeige ist nicht η js
■ehr signifikant. Kein im Register 17 gespeicherter Hinweis ist richtig.
CK-IO bis CK-13 werden wie CK-9 gehandhabt, und jeder dieser CK's hat Sl als Ausgangszustand.
Bei CK-14 ist K-A, der Hinwels R-14 wird gespeichert und es wird P gesetzt. CK-15 hat P«7, und sein K-Byte steht in keiner
Beziehung zum siebten A-Byte, da N-Bytee in der gleichen Spalte für die UK*s 16, 18, 19 und 2O dazwischen liegen. Deshalb kann das K-Byte niedriger, gleich oder höher als das siebte A-Byte sein. Der Ausgangszustand kann daher Sl, S2, S3 oder S4 sein.
Docket PO 968 027 009884/189 7
- 53 -Bestenfalls wird R-I5 gespeichert, wenn P_ für Zustand S2 einge-
Ei
stellt ist, oder Pn kann für Zustand S4 auf sieben gesetzt werden.
Danach wird CK-I6 gelesen. Hier ist P=5; K ist dem fünften A-Byte gleich, da nur B-Bytes dazwischenliegen. Daraus folgt Ausgangszustand S2. Der Hinweis R-15 wird gespeichert. '-P_ wird gesetzt und jeder frühere P -Wert wird zurückgestellt,
CK-I7 hat P.=9, und K. kann niedriger, gleich oder höher als das Α-Byte sein. Der Ausgangszustand ist Sl, S2 oder S4. Bestenfalls wird der Hinweis R-17 gespeichert.
CK-18 bis CK-19 haben P »6 und K<A. Aus beiden CK's folgt Zustand Sl und P und P„ werden zurückgesetzt. CK-20 hat K«A.
E H Daher wird R-20 gespeichert und P wird gesetzt.
CK-21 hat P=IO, und sein K-Byte kann niedriger, gleich oder höher sein, und ist nicht von dem N-Byte im UK-26 (d.h. die zehnte Stelle des Suchargumentes) abhängig. Daher ist der Ausgangszustand entweder Sl, S2 oder S4. Der Hinweis für CK-21 kann ebenfalls gespeichert werden.
Bei CK-22 bis CK-25 besteht kein Zusammenhang zwischen K. und A. K. kann niedriger, gleich oder höher sein, da das A-Byte das | N-Byte im UK-26 darstellt (d.h. das Suchargument). Der Ausgangszustand kann Sl, S2, S3 oder S4 sein. Bestenfalls werden die Hinweise R-22 bis R-25 gespeichert.
Wenn CK-26 gelesen wird, ist K »A. wenn ein P -Wert alt einem der CK's (CK-21 bis CK-25) gespeichert wurde, ist P,<P„. Da P zurückgestellt ist, wird P auf sieben gesetzt, und der Hinweis R-26 wird im Register 17 gespeichert, wobei jeder zuvor gespeicherte Hinweis überlagert und damit gelöscht wird. Ob R-26 der richtige Hinweis ist, ist zu diesem Zeitpunkt noch nicht bekannt. Deshalb wird automatisch der nächste CK-27 gelesen. «
Docket PO 968 027 "0098.84/1807
CK-27 wird gelesen. Es ist K1>A und P.«P , da Ρ± β5 und PE*7. Das Feld (S2 S4) der Matrixtabelle trifft zu» Der alte P -Wert ist
signifikant, und P wird als Pg«5 gespeichert. Es folgt Ausgangszustand S4.
Bei CK-28 und CK-29 ist K,>A und P±"PH· ßaher trifft di© untere Hälfte des Feldes (S4+S4) su„ Der alte P -Wert und der alte
JS
PH-Wert (»5) bleiben signifikant. Zustand 4 bleibt bestehen.
Der linksverschobene CK-30 hat P »3; es ist K.>A und ^1<^η· Daher trifft die obere Hälfte des Feldes (S4*S4) zu. Der alte Pn-Wert bleibt signifikant, uj Zustand 4 bleibt bestehen.
Wert bleibt signifikant, und ein neuer P_ (»3) wird gespeichert. Der nichtverschobene CK-31 hat ebenfalls P1, «3, K.>A und P «P .
X X £ H
Die untere Hälfte des Feldes (S4+S4) trifft zu, und der alte P_-Wert und der alte P -Wert (»3) bleiben signifikant» Zustand S4 bleibt bestehen. Der linksverschobene CK-32 hat P1"! und K. λ. Damit wird der Suchvorgang gemäß Schritt 332 (Fig, 19C) beendet, und der zuletzt gelesen· Hinwels R-26 wird an die Zentraleinheit als der richtige Hinweis weitergegeben.
Wenn jedoch angeneanen wird, daß P =»2 (nicht in der Tabelle D) für CK-32 ist, dann hat CK-32 ebenfalls K.>A und P.<Pnr über P.ffl, so dafl der Suchvorgang noch nicht beendet ist. Die obere Hälfte des Feldes (S4+S4) trifft zu. Es ist P=7 und PE"2. Zust S4 bleibt bestehen.
Bei CK-33 bis CK-37 ist P1-IO, 11 und 5. Daher ist ν±>*Ε' da P H"2· Der Vergleich zwischen K und A wird nicht berücksichtigt, wenn
P.>P_ ist. Bs trifft die untere Hälfte von Feld (84*84) zu, und χ η
der alte P -Wert und Pn bleiben bestehen· Zustand S4 bleibt
So
bestehen bis die Sndexende-Aiiz®ige P»O erreicht ist. R-26
1st der im Hlnwfisregister 17 gespeicherte, richtige Hinweis«.
Es ist der Hinweis, der zuletzt in Register 17 gespeichert wurde.
■- 55 -
Wenn bei CK-32 P±-2 ist, ict bei Verwendung eines Gleichheitszählers zu diese« Seitpunkt der Suchvorgang beendet, da dieser Zähler zu diese« Zeitpunkt auf 2 vorwärtsgeschaltet wird und P. und die Stellung des Gleichheitszahlers dadurch gleich sind. Deshalb wird der richtige Hinweis R-26 in Register 17 gespeichert.
Docket PO 968 027 009884/1897

Claims (13)

  1. PATENTANSPRÜCHE Verfahren zum maschinellen Wiederauffinden gespeicherter
    es*
    Informationen in Verbindung mit einem Verfahren zur maschinellen Erzeugung einer Folge verdichteter Schlüssel (verdichteter Index) aus einer Folge sortierter, verschiedenen Informationsgegenständen zugeordneter, unverdichteter Schlüssel (unverdichteter Index), dadurch gekennzeichnet, daß zur Erzeugung verdichteter Schlüssel jeder unverdichtete Schlüssel mit dem in der Folge jeweils voranstehenden Schlüssel byteweise verglichen und die höchste ungleiche Byteposition ermittelt wird, daß lediglich das Schlüsselbyte aus der höchsten ungleichen Byteposition eines jeden unverdichteten Schlüssels gespeichert wird und daß dieses Schlüsselbyte in die verdichtete Folge eingefügt wird und alleine den verdichteten Schlüssel bildet.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß für das ermittelte Schlüsselbyte eine Stellenanzeige in bezug auf den zugehörigen unverdichteten Schlüssel erzeugt wird und daß diese Stellenanzeige mit dem Schlüsselbyte gespeichert wird, wobei jeder verdichtete Schlüssel eine feste Länge aufweist.
  3. 3. Verfahren nach Anspruch 1 und Anspruch 2, dadurch gekennzeichnet, daß jeder unverdichtete Schlüssel einen Hinweis auf die Adresse des Speicherplatzes der zugeordneten Information enthält und daß dieser Hinweis dem entsprechenden verdichteten Schlüssel hinzugefügt wird.
  4. 4. Verfahren zum Suchen eines Schlüssels nach einem Suchargument
    in einem nach den Ansprüchen 1 bis 3 verdichteten Index, bei dem jeder verdichtete Schlüssel aus einem einzelnen Schlüsselbyte und einer Stellenanzeige in bezug auf den zugehörigen unverdichteten Schlüssel besteht, dadurch gekennzeichnet, daß die Stellenanzeige jedes verdichteten Schlüssels der Folge gelesen wird, daß ein Suchargumentbyte mit dieser Stellenanzeige
    Docket PO 968 027 009884/1897
    aufgerufen wird, daß dieses Sucharguinentbyte mit dem Schlüsselbyte des verdichteten Schlüssels verglichen wird und daß bei Gleichheit ein Signal erzeugt und der entsprechende Schlüssel gespeichert wird.
  5. 5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß ein Signal erzeugt wird, wenn beim Vergleich des Suchargumentbytes mit einem Schlüsselbyte ein bestimmter Zusammenhang angezeigt wird, und daß bei Auftreten dieses Signals ein Kennzeichen für den entsprechenden verdichteten Schlüssel gespeichert wird.
  6. 6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß die Stellenanzeige des verdichteten Schlüssels, für den das Kennzeichen gespeichert wird, registriert wird.
  7. 7. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daft der Hinweis eines letzten verdichteten Schlüsseis gespeichert wird, bei dem das erzeugte Signal die Gleichheit des Suchargumentbytes mit dem Schlüsselbyte angibt.
  8. 8. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß bei Auftreten des Signais ein Kennzeichen für die Bewertung gespeichert wird, das bei der weiteren Suche nach dem vor- | liegenden Suchargument ausgewertet wird.
  9. 9. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß in Abhängigkeit davon, ob das Schlüsselbyte des verdichteten Schlüssels höher oder niedriger als das SucharguMntbyte ist, als Kennzeichen in entsprechender Heise ein hohes oder niedriges Signal erzeugt wird, und daß die Stellenanzeige des entsprechenden verdichteten Schlüssels gespeichert wird.
  10. 10. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß bei Auftreten des Gleichheitssignals ein zweit·· Kennzeichen für die Bewertung gelöscht wird. ,
    Docket PO 968 027 009884/1897
  11. 11. Verfahren nach Anspruch 5, dadurch gekesm&©ichn@t, daß Kennseichen für die Gleichheit und für die Ungleichheit zur Bewertung eines oder mehrerer aufeinanderfolgender verdichteter Schlüssel gespeichert und kontrolliert werden.
  12. 12. Verfahren nach Anspruch 11, dadurch gekennzeichnet; das beim Vergleich ein hohes oder ein niedriges Signal erzeugt wird, abhängig davon, ob das Schlüsselbyte höher oder niedriger als das Suchargunentbyte ist, und daß ein oder beide Bewertungskennzeichen von diesem Signal beeinflusst werden.
  13. 13. Verfahren nach den Ansprüchen 4 bis 12, dadurch gekennzeichnet, daß das Suchverfahren auf zunehmende wie auf abnehmende Schlüsselfolgen anwendbar gemacht wird«
    Dock.t PO SO 027 009884/1897
    Leerseite
DE19702027464 1969-06-30 1970-06-04 Verfahren zum W lederauffinden ge speicherter Informationen Withdrawn DE2027464A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US83752669A 1969-06-30 1969-06-30

Publications (1)

Publication Number Publication Date
DE2027464A1 true DE2027464A1 (de) 1971-01-21

Family

ID=25274716

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19702027464 Withdrawn DE2027464A1 (de) 1969-06-30 1970-06-04 Verfahren zum W lederauffinden ge speicherter Informationen

Country Status (5)

Country Link
US (1) US3602895A (de)
JP (1) JPS5033628B1 (de)
DE (1) DE2027464A1 (de)
FR (1) FR2052416A5 (de)
GB (1) GB1259068A (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3984817A (en) * 1973-11-08 1976-10-05 Honeywell Information Systems, Inc. Data processing system having improved program allocation and search technique
JPS59146302A (ja) * 1983-02-10 1984-08-22 Nissan Motor Co Ltd デジタル制御装置
US4606002A (en) * 1983-05-02 1986-08-12 Wang Laboratories, Inc. B-tree structured data base using sparse array bit maps to store inverted lists
US4633393A (en) * 1983-10-21 1986-12-30 Storage Technology Partners Ii Generic key for indexing and searching user data in a digital information storage and retrieval device
US5274805A (en) * 1990-01-19 1993-12-28 Amalgamated Software Of North America, Inc. Method of sorting and compressing data
US5270712A (en) * 1992-04-02 1993-12-14 International Business Machines Corporation Sort order preserving method for data storage compression
US5832499A (en) * 1996-07-10 1998-11-03 Survivors Of The Shoah Visual History Foundation Digital library system
US6208713B1 (en) * 1996-12-05 2001-03-27 Nortel Networks Limited Method and apparatus for locating a desired record in a plurality of records in an input recognizing telephone directory
US6247108B1 (en) * 1998-06-03 2001-06-12 Lucent Technologies Inc. Memory management during processing of binary decision diagrams in a computer system
US6353831B1 (en) 1998-11-02 2002-03-05 Survivors Of The Shoah Visual History Foundation Digital library system
US6496830B1 (en) * 1999-06-11 2002-12-17 Oracle Corp. Implementing descending indexes with a descend function
US6965894B2 (en) * 2002-03-22 2005-11-15 International Business Machines Corporation Efficient implementation of an index structure for multi-column bi-directional searches
US20060212449A1 (en) * 2005-03-21 2006-09-21 Novy Alon R J Method and apparatus for generating relevance-sensitive collation keys

Also Published As

Publication number Publication date
FR2052416A5 (de) 1971-04-09
JPS5033628B1 (de) 1975-11-01
US3602895A (en) 1971-08-31
GB1259068A (de) 1972-01-05

Similar Documents

Publication Publication Date Title
DE2027464A1 (de) Verfahren zum W lederauffinden ge speicherter Informationen
DE2846495C2 (de) Zentraleinheit
DE2712575C2 (de) Assoziatives Speichersystem in hochintegrierter Halbleitertechnik
DE2417795C2 (de) Datenverarbeitungsanlage
DE2023354A1 (de) Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit
DE2346525A1 (de) Virtuelle speichereinrichtung
DE2930441C2 (de) Anzeigeeinrichtung zur wahlweisen dynamischen oder statischen Anzeige
DE2227975A1 (de) Vorrichtung und verfahren zum verschluesseln von binaersignalen
DE2054947A1 (de) Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem
DE2000340A1 (de) Verfahren und Vorrichtung zum Suchen verdichteter gespeicherter Informationen
DE1197650B (de) Parallel-Addierer
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE2926322A1 (de) Speicher-subsystem
DE1213144B (de) Anordnung zur Verarbeitung von Daten
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE1964570A1 (de) Verfahren zum Wiederauffinden gespeicherter Informationen
DE1171650B (de) Maschine zur serienmaessigen Verarbeitung von Daten in binaerer Zeichenverschluesselung
DE3518818A1 (de) Datenverarbeitungsvorrichtung und verfahren und vorrichtung zur umsetzung von datenelementen
DE2446646C3 (de) Schaltung zur Eingabe eines eine eingetastete Taste des Tastenfeldes charakterisierenden Eintastsignals in einen elektronischen Rechner
DE2458331A1 (de) Datenverarbeitungssystem zur adressierung eines in einem sekundaerspeicher abgelegten datensatzes
DE2245284A1 (de) Datenverarbeitungsanlage
DE2952163C2 (de) Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor
DE1212748B (de) Datenverarbeitende Maschine mit Programmunterbrechung
DE1965507A1 (de) Verfahren zum Wiederauffinden gespeicherter Informationen
DE2525394C3 (de) Verfahren und Schaltungsanordnung zum Übertragen, Einspeichern und Ausspeichern von binärcodierten Datenblöcken

Legal Events

Date Code Title Description
8130 Withdrawal
8178 Suspension cancelled