DE1964570B2 - Verfahren zum wiederauffinden gespeicherter informationen - Google Patents

Verfahren zum wiederauffinden gespeicherter informationen

Info

Publication number
DE1964570B2
DE1964570B2 DE19691964570 DE1964570A DE1964570B2 DE 1964570 B2 DE1964570 B2 DE 1964570B2 DE 19691964570 DE19691964570 DE 19691964570 DE 1964570 A DE1964570 A DE 1964570A DE 1964570 B2 DE1964570 B2 DE 1964570B2
Authority
DE
Germany
Prior art keywords
key
byte
bytes
code
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE19691964570
Other languages
English (en)
Other versions
DE1964570A1 (de
Inventor
William Albert Poughkeepsie N.Y.; Salmond Kent Adams Los Gatos Calif.; Stafford Thomas Sanderson Boca Raton Fla.; Clark (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 DE1964570A1 publication Critical patent/DE1964570A1/de
Publication of DE1964570B2 publication Critical patent/DE1964570B2/de
Ceased 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

Landscapes

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

Description

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 ge-
3 4
speicherten Informationen, die in Form eines Vef- anderen Stelle des Speichers gespeicherte Dokument
zeichnisses sortiert sind. Der Anfall an Informationen abzurufen.
verschiedenster Art ist ständig im Wachsen begrif- Das erfindungsgemäße Verfahren zum Wieder-
fen. Selbstverständlich erhöht sich dadurch auch die auffinden gespeicherter Informationen verwendet Anzahl der Fälle, in denen eine in der Masse von 5 dagegen verdichtete Schlüssel, bei denen die durch
Informationen enthaltene Information nicht mehr die Indexierung vorhandene Redundanz ent-
mit der erforderlichen Geschwindigkeit wieder auf- ferntist.
gefunden werden kann. Obgleich bereits große An- Auf dem Gebiet der Beseitigung von Redundanz strengungen hinsichtlich einer optimalen Lösung die- durch Maßnahmen zur Informationsverdichtung sind ses Problems unternommen wurden, ist bisher noch io mehrere Methoden bekannt. Die USA.-Patente kein grundsätzlicher Weg bekanntgeworden, der das 2 978 535 und 3 225 333 betreffen beispielsweise die Wiederauffinden von Informationen aus einer großen Verdichtung von digitalisierten Fernsehsignalen. Die Anzahl von Dokumenten oder Aufzeichnungen in USA.-Patente 3 185 824 und 3 237 170 zeigen Vergewünschter Weise erlaubt, fahren, bei denen die Anzahl der Nichtübereinstim-
Das erfindungsgemäße Verfahren zeigt einen 15 mungen zwischen aufeinanderfolgenden Verläufen brauchbaren Weg zur maschinellen Lokalisierung digitaler Übertragungssignale festgestellt wird. Das von mittels Schlüsseln oder Kennworten registrierten USA.-Patent 3 237 170 verwendet Maßnahmen zur Informationen. Die Erfindung gestattet es, jegliche Codierung sich wiederholender Bitmuster. Das USA.-Art alphanumerischer Schlüssel, die in einer sortier- Patent 3 275 989 befaßt sich mit Befehlen, die jeten Folge angeordnet sind, in verdichtete Schlüssel ao weils nur den Teil enthalten, der sich vom vorherumzuwandeln und in dieser Form auch wieder zu gehenden Befehl unterscheidet. In entsprechender suchen. Jeder verdichtete Schlüssel liefert eine Ab- Weise betrifft USA.-Patent 3 223 982 ein Verfahren, grenzung für den unverdichteten Schlüssel, den er bei dem bei einer Adresse jeweils nur der Teil verrepräsentiert. Eine örtliche Bestimmung für die dem wendet wird, der sich von der vorhergehenden Schlüssel zugeordnete Information kann einer hinzu- 25 Adresse unterscheidet.
gefügten Adresse, einem sogenannten Zeiger oder Diese bekannten Maßnahmen bedienen sich größ-
dem Schlüssel selbst entnommen werden. tenteils einer Informationsverdichtung, die reyersier-
Verfahren und Einrichtungen zum Wiederauffin- bar sein soll. Die Informationen werden zunächst den von Informationen, die in unverdichteter sor- verdichtet, dann übertragen und schließlich wieder tierter Folge registriert sind, sind in großer Zahl 30 in ihre originale, unverdichtete Form gebracht. Dabekannt. Bei diesen Verfahren werden Computer gegen befaßt sich die Erfindung mit einem Verfahren eingesetzt, wobei spezielle Zugriffsmethoden und zur Beseitigung von durch Sortiermaßnahmen herelektronische Katalogisierung angewandt werden. vorgebrachter Redundanz, wobei die Forderung der Als Stand der Technik auf diesem Gebiet sind ins- Reversierbarkeit nicht besteht,
besondere die USA.-Patente 3 408 631, 3 315 233, 35 Der Erfindung liegt die Aufgabe zugrunde, ein 3 366 928, 3 242 470 und 3 030 609 zu erwähnen. Verfahren zum Wiederauffinden gespeicherter Infor-
Die gegenwärtig gebräuchlichen, mit Computern mation anzugeben, wobei in erster Linie Wert dararbeitenden Verfahren weisen in vieler Hinsicht auf gelegt wird, mit einem Minimum an Speicher-Mängel auf. Ein wesentlicher Mangel ergibt sich aus kapazität und ebenso mit einem Minimum an Suchdem großen Bedarf an Speicherkapazität. Die unver- 40 zeit auszukommen.
dichteten Schlüsselformate bedingen, daß bei jedem Zur Lösung dieser Aufgabe wird gemäß der ErZugriff eine große Anzahl von Bytes in jedem Schlüs- findung ein Verfahren zum Wiederauffinden gespeisel abgetastet werden muß. Diese Verfahren sind cherter Informationen in Verbindung mit einem demnach zeitlich und kostenmäßig sehr aufwendig, Verfahren zur Erzeugung verdichteter Schlüssel aus wenn ein großer Index abgesucht oder auch wenn 45 einer Folge sortierter, verschiedenen Informationsein kleiner Index wiederholt abgesucht werden muß. gegenständen zugeordneter, unverdichteter Schlüssel Die Erfindung vermeidet diese Mängel, da durch sie derart vorgeschlagen, daß aus der sortierten Folge die Anzahl der abzutastenden Bytes je Zugriff nacheinander jeweils ein Schlüssel zusammen mit wesentlich herabgesetzt wird. Auf diese Weise wird dem nächstfolgenden Schlüssel aufgerufen wird, daß der Bedarf an Speicherkapazität und die Suchzeit 50 die in der Sortierfolge gleichwertigen Bytepositionen wesentlich herabgesetzt. beider Schlüssel miteinander verglichen werden und
Bei der gegenwärtigen Computer verwendenden dabei die höchste ungleiche Byteposition ermittelt
Suchtechnik, wie sie in den angegebenen USA.- wird, daß ein diese Byteposition kennzeichnender
Patentschriften beschrieben ist, sind den auf Magnet- Code erzeugt wird und daß dieser Code als Teil
platten- oder Magnettrommelspeichern gespeicher- 55 eines einem der beiden Schlüssel zugeordneten ver-
ten Dokumenten zum Zwecke der Indexierung un- dichteten Schlüssels gespeichert wird,
verdichtete Schlüssel zugeordnet. Eine Suche nach Vorteilhafte Ausgestaltungen des erfindungsgefnä-
einem Dokument kann über den Schlüssel oder über ßen Verfahrens ergeben sich aus den nachstehenden
die Adresse des Dokumentes erfolgen. Beispiels- Einzelmaßnahmen.
weise sind in den USA.-Patentschriften 3 408 631, 60 Es werden in einem der beiden Schlüssel die Bytes
3 350 693, 3 343 134, 3 344 402, 3 344 403 und von der werthöchsten bis zur höchsten ungleichen
3 344 405 unverdichtete Schlüssel auf Magnetplatten- Position markiert, und es werden als Teil eines ver-
speichern registriert. Ein bestimmter Schlüssel kann dichteten Schlüssels nur Schlüsselbytes aus diesen
durch Vergleich mit einem entsprechenden Such- markierten Positionen ausgewählt,
argument ermittelt werden. Sobald Gleichheit zwi- 65 Die Auswahl von Bytes aus einer niedrigeren als
sehen Schlüssel und Suchargument festgestellt wird, der höchsten ungleichen Byteposition im zweiten un-
wird eine mit dem unverdichteten Schlüssel gespei- verdichteten Schlüssel wird blockiert,
cherte Hinweisadresse dazu verwendet, das- an einer Mit dem verdichteten Schlüssel wird eine Hinweis-
5 6
adresse (Zeiger) auf die vom ersten der beiden un- Beseitigung der durch Sortiermaßnahmen hervorverdichteten Schlüssel repräsentierte Information gebrachten Redundanz, so daß für die Abspeichegespeichert. rung der erzeugten verdichteten Schlüssel nur eine
Die höchste ungleiche Byteposition eines Schlüs- relativ geringe Speicherkapazität benötigt wird, selpaares wird bis nach der Erzeugung des nächsten 5 Gleichzeitig wird beim Suchvorgang eine hohe Geverdichteten Schlüssels gespeichert. schwindigkeit erzielt, da jeweils nur relativ wenige
Die Code zweier aufeinanderfolgender Schlüssel- Bytes abgefragt werden müssen.
paare werden verglichen, und es wird ein Verglei- Die Erfindung wird im folgenden an Hand eines
chersignal abgegeben, das angibt, ob der jeweilige Ausführungsbeispiels und der Zeichnungen näher
Code niedriger, gleich oder höher als der vorher- io erklärt. Es zeigt
gehende Code ist, und es wird in Abhängigkeit da- Fig. 1 den Datenfluß in einem ersten Ausfüh-
von ein entsprechender verdichteter Schlüssel erzeugt. rungsbeispiel der Erfindung,
Bei einem Vergleichersignal, das angibt, daß der Fig. 2A schematisch eine Folge- und Verzwei-
jeweilige Code niedriger als der vorhergehende Code gungssteuerung für das in Fig. 1 gezeigte Ausfüh-
ist, wird ein diesen Code, aber keine Schlüsselbytes 15 rungsbeispiel,
enthaltender verdichteter Schlüssel erzeugt. Fig. 2B-I und 2B-2 eine Taktgeberschaltung
Bei einem Vergleichersignal, das anzeigt, daß der und Taktimpulse für das Ausführungsbeispiel der
jeweilige Code gleich dem vorhergehenden Code ist, Fig. 2A,
wird nur ein Schlüsselbyte der höchsten ungleichen Fig. 2C-I bis 2N ein Ausführungsbeispiel der in
Byteposition des zweiten Schlüssels des jeweiligen 20 der Folge- und Verzweigungssteuerung der F i g. 2
Schlüsselpaares ausgewählt. verwendeten Schaltungen,
Bei einem Vergleichersignal, das anzeigt, daß der F i g. 2 Q-I bis 2 Q-3 in einer Tabelle den Steuerjeweilige Code gleich dem vorhergehenden Code ist, signalablauf für ein Beispiel von Steuersignalen, die wird das Vorhandensein eines Schlüsselbytes im vor- erzeugt werden, um die in F i g. 1 gezeigte Datenhergehenden verdichteten Schlüssel abgefühlt, und 25 bahn nach dem in F i g. 3 gezeigten Verfahren durches wird auf Grund dieser Abführung ein verdichteter zuschalten,
Schlüssel ohne Schlüsselbytes erzeugt, der den ersten Fig. 3 die Zusammengehörigkeit der Fig. 3A
der beiden unverdichteten Schlüssel kennzeichnet. bis 3 F,
Bei einem Vergleichersignal, das anzeigt, daß der Fig. 3 A bis 3 F ein genaues Ablauf diagramm
jeweilige Code gleich dem vorhergehenden Code ist, 30 eines erfindungsgemäßen Verfahrens für die in
wird das Fehlen eines Schlüsselbytes im vorher- Fig. 1 gezeigte Datenbahn,
gehenden Code abgefühlt und auf Grund dieser Ab- Fig. 4 bestimmte Grundmerkmale eines in der
fühlung ein verdichteter Schlüssel erzeugt, der min- vorliegenden Erfindung verwendeten ZZK-Paares,
destens ein Schlüsselbyte in der höchsten ungleichen Fig. 5 bestimmte Grundmerkmale zweier in der
Byteposition des zweiten der beiden unverdichteten 35 vorliegenden Erfindung verwendeter nebeneinander-
Schlüssel aufweist. liegenden f/Z-Paare,
Bei einem Vergleichersignal, das anzeigt, daß der Fig. 6Ä ein Ausführungsbeispiel eines erfindungsjeweilige Code größer als der vorhergehende Code gemäßen Verfahrens für die in Fig. 1 gezeigte ist, wird abgefühlt, ob im vorhergehenden verdich- Datenbahn,
teten Schlüssel wenigstens ein Schlüsselbyte vornan- 40 Fig. 6B ein anderes erfindungsgemäßes Verfah-
den ist. Bei einem Vergleichersignal, das anzeigt, ren für die in F i g. 1 gezeigte Datenbahn,
daß der jeweilige Code größer als der vorhergehende Fig. 7 das in Fig. 6A gezeigte Verfahren mit
Code ist, wird ein verdichteter Schlüssel für den CK-Indexblockbildung,
zweiten unverdichteten Schlüssel eines Schlüssel- Fig. 8A, 8B und 8C sortierte ΕΛΚ-Folgen, bei
paares erzeugt, wobei die Bytepositionen von der 45 denen die CK's nach links, rechts oder überhaupt
höchsten ungleichen Byteposition des vorhergehen- nicht verschoben sind,
den Schlüsselpaares bis zu der höchsten ungleichen Fig. 9 eine sortierte UK-Folge und eine daraus
Bytepositiori des anstehenden Schlüsselpaares ver- erzeugte CK-Folge mit maximaler Byteverdichtung,
wendet werden. Fig. 10 eine sortierte UK-Folge und eine daraus
Das Fehlen eines Schlüsselbytes im vorhergehen- 50 erzeugte CK-Folge, in welcher jeder nichtverscho-
den verdichteten Schlüssel wird abgefühlt, und es bene Schlüssel ein K-Byte hat,
wird ein verdichteter Schlüssel für den zweiten un- Fig. 11 ein anderes erfindungsgemäßes Verfahren
verdichteten Schlüssel eines Schlüsselpaares erzeugt, für die Datenbahn in Fig. 1,
wobei die Bytepositionen von der höchsten unglei- Fig. 12A bis 12C weitere Varianten des erfin-
chen Byteposition des vorhergehenden Schlüssel- 55 dungsgemäßen Verfahrens,
paares bis zu der höchsten ungleichen Byteposition Fig. 13 schematisch das Aufzeichnungsformat für
des anstehenden Schlüsselpaares verwendet werden. eine sortierte E/X-Folge,
Es ist ein Kontrollfeld vorgesehen, das einen der Fig. 14A das Aufzeichnungsformat für eine erAnzahl der nicht durch Schlüsselbytes dargestellten zeugte CK-Folge,
hohen Bytepositionen des anstehenden verdichteten 6p Fig. 14B bis 14E verschiedene Aufzeichnungs-Schlüssels entsprechenden Codewert enthält, wobei formate verdichteter Schlüssel,
diese Anzahl aber nicht größer ist als die Anzahl der Fig. 15 die Zugehörigkeit der Fig. 15A zu den Bytes bis zur höchsten ungleichen Byteposition. E i g. 3 A, 3 B und 3 D bis 3 F,
In das Kontrollfeld wird ein Code gestellt, der die Fig. 15A schematisch ein weiteres Ausführungs-Anzahl der Schlüsselbytes im jeweiligen verdichteten 65 beispiel der Erfindung,
Schlüssel angibt. Fig. 15B eine Tabelle mit der Steuersignalfolge
Die beim erfindungsgemäßen Verfahren erzeugten für ein anderes Ausführungsbeispiel und
verdichteten Schlüssel gewährleisten eine optimale Fig. 15C bis 15F Änderungen der in den
7 8
Fig. 2C-2 bis 2N gezeigten Schaltungen für ein oder alle Bytepositionen mit Ausnahme der wertanderes Ausführungsbeispiel der Folge- und Ver- niedrigsten Byteposition gleiche Positionen »E«. Bei zweigungssteuerung zur Erzeugung der Steuersignal- den meisten t/iv-Paaren liegt die Differenzbyteposifolge in Fig. 15B. tion (D) zwischen dem äußersten linken und dem
Das Verfahren zur Erzeugung verdichteter 5 äußersten rechten Byte.
Schlüssel wird auf eine Reihe von Indexschlüsseln Oft haben zwei miteinander verglichene Schlüs-
angewandt, die in normaler nichtverdichteter Form sei χ ... χ und y ... y unterschiedliche Bytelängen,
in sortierter Reihenfolge stehen. Sie können in auf- In diesem Fall ist das erste Byte des längeren Schlüs-
steigender oder absteigender Reihenfolge sortiert und sels, welches rechts der wertniedrigsten Byteposi-
unterschiedlich lang sein. An jeden Schlüssel kann io tionen des kürzeren Schlüssels steht, gemäß Defini- ,
eine zusätzliche Information, z. B. eine Hinweis- tion eine ungleiche Byteposition. Dieser ungleiche
adresse angehängt werden, die entweder direkt oder Bytevergleich bewertet das Byte vom längeren Schlüs-
indirekt eine Aufzeichnung lokalisiert, zu welcher sei höher als das Fehlen eines Bytes aus dem kürze-
der entsprechende Schlüssel gehört. ren Schlüssel. Sobald diese Situation eintritt, kann
F i g. 4 zeigt zwei nebeneinanderliegende Schlüssel 15 angenommen werden, daß der kürzere Schlüssel auf in einer nichtverdichteten Indexreihe, in der die seiner rechten Seite das niedrigste Byte der verwennichtverdichteten Schlüssel (UK) χ ... χ und y ... y deten Sortierfolge hat, z. B. ein Leerbyte,
zwei aufeinanderfolgende Schlüssel in der sortierten In Fig. 4 wird angenommen, daß für den nichtFolge sind. Jeder Schlüssel besteht aus mehreren verdichteten Index eine aufsteigende Sortierung verBytes (Zeichen). Die X und Y in den entsprechen- 20 wendet wird. Wenn eine absteigende Sortierung verden UK stellen ihre Byteposition dar, die sich zah- wendet wird, sind im Ausführungsbeispiel die Opelenmäßig in den verschiedenen UK ändern kann. rationen »größer als« und »kleiner als« zu ver-Die Bytepositionen ändern sich in ihrer Bedeutung tauschen.
während der Sortieroperation von der äußersten lin- Fig. 4 zeigt einen Vergleicht zwischen UKx und
ken Byteposition mit der größten Bedeutung zur 25 UKy, die in der unverdichtet sortierten Indexfolge
äußersten rechten Byteposition mit der kleinsten Be- die Positionen (/— 1) und 7 einnehmen. Diese Posi-
deutung. Die Schlüssel sind in F i g. 4 nach den tionen werden mit EA, die werthöchste ungleiche
äußersten linken Bytes ausgerichtet dargestellt, Byteposition mit DA und die Leerbytes mit NA be-
welche sowohl in der Sortierfolge als auch für die zeichnet.
vorliegende Erfindung die wichtigsten Bytes sind. 30 F i g. 5 zeigt den nächstfolgenden Vergleich B zwi-
Die Bytes in jedem Schlüssel nehmen in bezug auf sehen UKy und UKz, die das nächste Paar aus den
diese Erfindung in ihrer Bedeutung genauso ab, wie Indexpositionen j und (/+1) bilden,
sich ihre Position in einem Schlüssel von links nach Der Vergleich B benutzt den zweiten nichtverdich-
rechts verschiebt. teten Schlüssel y ... y des vorhergehenden Verglei-
Das erfindungsgemäße Verfahren liefert verdich- 35 ches als den ersten nichtverdichteten Schlüssel. Der
tete Schlüssel (CJsC) mit Hilfe einer Folge von Ver- nichtverdichtete Schlüssel ζ... ζ folgt somit unmittel-
gleichen zwischen nebeneinanderstehenden UK in bar dem nichtverdichteten Schlüssel y... y in der
einem Register oder Unterregister. Ein derartiger Sortierfolge der nichtverdichteten Schlüssel.
Vergleich wird zwischen dem Paar (/—1) und 7 und Die Beschriftungen^ und B in den Fig. 4 und 5
dann zwischen dem nächsten Paar/und (7+1) durch- 40 stellen je zwei aufeinanderfolgende Vergleiche dar,
geführt. Somit ist jeder UK mit Ausnahme des ersten aus denen die entsprechenden Werte E, D und N ab-
und des letzten der zweite UK eines Vergleichspaares geleitet werden.
und außerdem der erste UK des nächsten Vergleichs- Die Erfindung setzt die Differenzbytepositionen paares. Jeder Vergleich erfolgt zwischen den Byte- (D) in zwei aufeinanderfolgenden Vergleichen in Bepositionen mit derselben Sortierwertigkeit, d. h., die 45 ziehung zueinander. Dabei gibt es drei Möglichkeiten, am weitesten links stehenden X- und Y-Bytes werden die in der Fig. 5 durch die Fälle I, II und III darverglichen, dann werden die von links gesehen auf gestellt sind. Im Falle I Hegt die Differenzbyteposider zweiten Stelle stehenden Bytes verglichen usw. tionDß auf derselben Stelle wie die Differenzbyte-Ais Ergebnis dieser Bytevergleiche ergibt sich dann position DA im unmittelbar vorhergehenden Vereinmal ein Vergleich, bei dem Ungleichheit fest- 50 gleich. Im Falle II steht das Differenzbyte an der gestellt wird, da sich jeder Schlüssel im Register ab gegenüber DA in F ig. 4 werthöheren Byteposition DB. einer bestimmten Position von jedem anderen Schlüs- In diesem Fall ist DB gegenüber DA nach links versel unterscheidet. Ein derartiger Unterschied in einem schoben. Im Falle III steht das Differenzbyte auf der Verzeichnis kann z. B. bei identischen Namen in der Position DB auf einer wertniedrigeren Stelle als das Anschrift festgestellt werden. 55 Differenzbyte auf der Position DA in F i g. 4. In die-
Jeder UK-Vergleich braucht nicht über die am sem Falle ist also DB relativ zu DA nach rechts verweitesten links stehende Byteposition D mit einem schoben.
ungleichen Vergleichsergebnis hinauszugehen. Die Da sich die Lage der Differenzbyteposition DB ungleiche Byteposition D kann die am weitesten relativ zur vorhergehenden DifierenzbytepositionI>A links stehende oder jede andere Byteposition sein. 60 ändert, ändert sich natürlich auch die Zahl der glei-Ist es nicht die am weitesten links stehende Position, chen Bytepostionen EB und die Anzahl der Leerweist der Schlüssel gleiche Bytes (E) auf seiner lin- bytes NB entsprechend. Da die Differenzbyteposiken Seite auf. Die wertniedrigeren Bytepositionen tioni> immer eine Stelle rechts neben den gleichen rechts von der ungleichen Byteposition D werden als Bytepositionen steht, ist D = 22+1.
Leerbytes N bezeichnet, da sie für die Erzeugung der 65 Jeder UK in einer Indexfolge stellt eine Datenverdichteten Schlüssel nicht erforderlich sind. einheit dar. Jede dieser 172£-Dateneinheiten muß in
Somit sind bei einem Vergleich nebeneinander- ener erzeugten Folge von verdichteten Schlüsseln stehender nichtverdichteter Schlüssel entweder keine (CKs) repräsentiert werden. Der /-ste CK stellt die
9 10
Informationseinheit dar, die durch den /-sten UK Die Bytelänge (L) des .K-Feldes in einem CK hängt wiedergegeben wird. davon ab, welcher der drei in F i g. 5 gezeigten Fälle Jeder Vergleich des / und des /+1 UK erzeugt während eines Vergleiches vorhegt. In dem zweiten den / CK, wozu bestimmte Informationen benutzt der in F i g. 5 gezeigten Fälle (Linksverschiebung), werden, die aus dem unmittelbar vorhergehenden 5 erscheinen keine .K-Bytes im CK und daher ist L=O. Vergleich des j—lUK und des j UK abgeleitet Im ersten in F i g. 5 gezeigten Fall (keine Verschiewerden. Der Vergleich hängt von der Information bung) hängt der Wert L = O oder L = I für die des unmittelbar vorhergehenden Vergleiches ab, wo- minimale Länge des X-Feldes davon ab, ob der vorbei die wichtigste Information die Position DA ist, die hergehende CK null .K-Bytes oder eine andere Anzahl während des vorhergehenden Vergleiches bestimmt io von .K-Bytes enthält. Wenn somit die D-Position in wurde. Außerdem kann eine Information darüber einer ununterbrochenen Folge von Vergleichen mit benötigt werden, ob die vorhergehenden CK-Bytes 0 demselben Wert weiterläuft, weisen die CK abwaren oder nicht. Die Information über die DA-Posi- wechselnd .K-Bytes mit dem Wert L = O und L = I tion kann auf die verschiedenste Weise gegeben wer- auf, da dieser Wert von den unmittelbar vorherden, z. B. indem die Bytezahl gezählt von der wert- 15 gehenden .K-Bytes abhängt. Im dritten der in F i g. 5 höchsten Stelle angegeben wird oder indem die An- gezeigte Fälle (Rechtsverschiebung), ist L = O, entzahl gleicher Positionen (EA) angegeben wird, die hält also eines oder mehrere .K-Bytes. Somit enthält während desselben Vergleiches festgestellt wurde, da im dritten Fall das üC-Feld eine unterschiedliche Andie Deposition um ein Byte höher ist, als der zahl von Bytes, die gleich der Anzahl von ByteposijB^-Wert. Wenn das erste UK-Paar verglichen wird, 20 tionen ist, die hinter der Deposition und vor der wird angenommen, daß vor diesem ersten Vergleich Dß-Position stehen. Eine Definition ist auf vielerlei Anfangsbedingungen vorlagen. Weise möglich, z. B. durch
Der erste Vergleich beginnt vorzugsweise mit
einem Vergleich zwischen den beiden ersten UK in L = DB — DA = (EB + 1) — (EA + 1) = EB — EA, der sortierten Reihenfolge. Dieser erste Vergleich ?5
dient der Erzeugung des ersten verdichteten Schlüssels Der Faktor (F) eines CK stellt die Anzahl von kon-
(CK), der die durch den ersten unverdichteten tinuierlichen Bytepositionen, beginnend mit der wert-
Schlüssel (UK) dargestellte Information wiedergibt. höchsten Byteposition, dar, die kein jK-Byte im
Bei dem folgenden zweiten Vergleich des zweiten laufenden CK sind, durch vorhergehende .K-Bytes im
mit dem dritten UK wird die Information aus dem 30 verdichteten Index jedoch dargestellt sind. Der
ersten Vergleich dazu benutzt, den zweiten CK zu Index B bezeichnet einen Wert im laufenden CjK,
erzeugen, der dann die durch den zweiten UK dar- während der Index .4 einen Wert im unmittelbar
gestellte Information wiedergibt. Dann werden im vorhergehenden CK angibt.
dritten Vergleich der dritte und der vierte UK in der Der Faktor FB wird davon beeinflußt, ob das sortierten Folge verglichen usw. bis zum Ende der 35 laufende UK überhaupt nicht, nach links oder nach Indexfolge. Somit repräsentiert jeder CK die Infor- rechts verschoben ist, wie es im Zusammenhang mit mation, die in dem ersten UK des Paares stand, aus F i g. 5 beschrieben wurde, und ob LA = 0 ist oder welchem der CK erzeugt wurde. nicht. Für die Mindestbedingungen des jK-Bytefeldes Das kleinste Format eines CK hat eine Mindest- hat das Fß-Feld die folgenden Werte: Für einen CK anzahl von Schlüsselbytes (jK-Bytes), die während 40 mit gar keiner oder einer Verschiebung nach links des Vergleiches aus einem der UK abgeleitet wurde. hängt der FB-Wert davon ab, ob der L^-Wert für Das kleinste CK-Format umfaßt eines oder mehrere den unmittelbar vorhergehenden CK gleich 0 ist oder .K-Bytes aus einem nach rechts verschobenen UK, nicht. Ist der L^-Wert bei keiner Verschiebung 0, kein .K-Byte aus einem nach links verschobenen UK stimmt der Fß-Wert mit dem isB-Wert überein. Ist LA und entweder 1 oder 0 jK-Bytes aus einem nicht- 45 bei keiner Verschiebung verschieden von 0, kann FB verschobenen UK. Das kleinste Byteformat für einen jeden Wert zwischen dem Höchstwert EA + 1 bis zu CK kann immer dadurch überschritten werden, daß einem Mindestwert EB + 1 einnehmen. Bei einer man dem UK, aus welchem die X-Bytes abgeleitet Verschiebung nach links kann der Fß-Wert jeden wurden, weitere Bytes hinzufügt, während die rela- Wert zwischen EA +1 und EB + 1 einnehmen, untiven Positionen unter den iC-Bytes aufrechterhalten 50 geachtet dessen, ob L = 0 ist. Ist bei einer Rechtswerden. Eine derartige Information ist zwar redun- verschiebung L = O, ist FB = EA und, wenn L verdant, kann aber z. B. bei fehlerhaften Informationen schieden von 0 ist, ist FB = EA = 1. Zum besseren sehr nützlich sein. Verständnis der in den folgenden Tabellen betrach-Jeder CK benötigt außer den .K-Bytes noch zwei teten Beispiele werden zunächst die aufgestellten weitere Informationselemente, um ihn für eine Such- 55 Definitionen und Regeln in einer Zusammenstellung operation geeignet zu machen. Ein derartiges Infor- wiedergegeben. Diese Zusammenstellung betrifft das mationselement lokalisiert jedes K-Byte eines CK kleinste Format eines verdichteten Schlüssels (CK), entsprechend seiner Bytepositionszahl beginnend mit also einen verdichteten Schlüssel mit der Mindestdem werthöchsten Byte im UK, aus welchem das anzahl von Schlüsselbytes. .K-Byte abgeleitet wurde. Das zweite zusätzliche EIe- 60
ment lokalisiert den nächsten CjK. In diesem Ausführungsbeispiel nehmen diese beiden Informations- Definitionen: elemente die Form von zwei Feldern an, die mit
Faktorenlängenfeld (F) ; und Längenfeld des ver- j) höchste ungleiche Byteposition
dichteten Schlüssels (L) bezeichnet werden und Teil 65 - ,.. . , . ,_ π ^
eines jeden CK sind. Abhängig davon, ob in dem E hochste §leiche Byteposition
Format zuerst F oder L auftauchen soll, hat das voll- N ungleiche Bytepositionen rechts von D
ständige CK-Format dann die Form FLjK oder LFjK. (Leerbytes)
ϊϊ:
K Schlüsselbytes des CK
12
Aufbau eines CK: EFLK
L Längenfeld des UK (Anzahl der X-Bytes) Erstellung eines CK:
^ , , -,,r» ,, , ^ . xxxxxxx (i—l) EA FA La K,
F Faktorlängenfeld [Anzahl der Byteposi- _ ' A A A '
tionen (beginnend mit der höchsten Posi- 5 Vergleich A
tion), die kein £-Byte im laufenden CK yyyyyyyti) Eβ Fb Lb Ka+1)
sind, durch vorhergehende .K-Bytes im CK Vergleich B
■ jedoch dargestellt sind] ζ ζ ζ Ζ ζ ζ ζ
Bestimmung der Einzelelemente des CK:
E ergibt sich aus der höchsten gleichen Byteposition oder aus der Anzahl der gleichen Bytepositionen.
K Rechtsverschiebung: K — 1 Byte
Keine Verschiebung: K = I oder 0 Byte
Linksverschiebung: K = O Byte
L Rechtsverschiebung: L = EB — EA
Keine Verschiebung: L = O oder
Linksverschiebung: L =
Anzahl der aufzunehmenden Schlüsselbytes (entspricht der jeweiligen Anzahl der K-Bytes)
F Rechtsverschiebung: FB = EA, wenn LA =
F8 = EA = 1, wenn L4 φ
Keine Verschiebung: FB = EB, wenn LA =
(EA+1) _- FB ^ (EB+1), wenn LA φ 0
Linksverschiebung: (EA+1)>FB> (EB+1)
In der folgenden Tabelle I ist ein Beispiel für CK mit den kleinsten X-Feldern gegeben.
Tabelle I
UK
CK
Englehard, Hans ,
Engelhard, Ludwig
English, Irvine J
English, Jas J
Ericson, Oscar
Eskind, Ralph R
Esposito, Blas
Evancie, Kenneth G
Ezequelle, Jonathan A ..
Fahnestock & Co
Famularo, Jos J —
Farewell, Richd L
Farrar, Carl E
Feeney, Kermit
Fennell, Lee T
Ferris, Harriet Akin, Mrs. Ferris, Raymond W
11
3 9 1 1
2 1 1 0
2 2 3 1
2 2 8
12 —
3 10 —
12
7 0 1
1 0 1 0
3 0 2 0
2 0 7
Engelhard, L
lish, J
s P ζ
Farn rr
en rris, R
Bei dem in Fig. 5 gezeigten FaIlI kann man die 65 tung bei jeder Liste, in der Folgen ohne Verschie-Operation dadurch vereinfachen, daß man ein bung auftreten, was bei großen Listen häufig der K-Byte, nämlich das DB-Byte hat und L immer = 1 Fall ist. Ein Beispiel für CK, die dieses Prinzip anist. Das führt jedoch zu einer geringeren Verdich- wenden, ist in der folgenden Tabelle Π gegeben.
Tabelle II
υκ
CK
Englehard, Hans
Engelhard, Ludwig
English, Irvine J
English, Jas J
Ericson, Oscar
Eskind, Ralph R
Esposito, Blas
Evancie, Kenneth G
Ezequelle, Jonathan A ...
Fahnestock & Co
Famularo, Jos J .,
Farewell, Richd L
Farrar, Carl E
Feeney, Kermit
Fennell, Lee T
Ferris, Harriet Akin, Mrs.
Ferris, Raymond W
11
3 9 1 1
2 1 1 0
2 2 3 1
2 2 8
12
0
7
0
1
1
0
1
0
3
1
1
0
2
1
6
Engelhard, L
lish, J
s
P
Farn
en
r
ris, R
Daraus ist zu entnehmen, daß jedes verdichtete Verzeichnis durch das Format FLK dargestellt werden kann. Die Werte von F und L können durch je ein Byte dargestellt werden, oder sie können den Bruchteil eines Bytes, z. B. je ein Halbbyte einnehmen. Wenn F und L je die Hälfte von einem 8 Bit großen Byte einehmen, kann jeder der beiden Größenwerte zwischen 0 und 15 annehmen, was in der Praxis für fast alle verdichteten Verzeichnisse ausreicht, da die Durchschnittszahl von .K-Bytes pro CK in großen Verzeichnissen als kleiner ermittelt wurde. Im allgemeinen ist der Wert für K umgekehrt proportional zur Größe der Verzeichnisse, da große Verzeichnisse meist dichter gepackt sind, d. h. sie weisen mehr Redundanz auf.
Um für F und L mehr als 15 Bytes bereitzustellen, kann einer der 4-Bit-Codes für jedes der Halbbytes F und L dazu benutzt werden, einen CK auf den nächsten folgenden CK-Eintrag zu erweitern. Durch diese Erweiterung wird die größte Länge für F oder L bei jedem nichterweiterten CK auf 14 reduziert. Der erweiterte CK stellt eine Erweiterung entweder für F oder für L oder für beide dar, indem der vier Bit große Erweiterungscode (z. B. 15) entsprechend in den F-Teil oder den L-Teil oder in beide gesetzt wird. Wenn nur F einen Erweiterungscode aufweist, verfügt der erweiterte CK über keine K-Bytes und es ist L = 0, da der erweiterte CK nur 1 Byte lang ist. Wenn der Erweiterungscode im L-FeId steht, hat dasselbe CK 14 K-Bytes, und das L-FeId im folgenden Erweiterungs-CLK zeigt an, wieviel zusätzliche X-Bytes im Erweiterungs-CK geführt werden und an die K-Bytes im unmittelbar vorhergehenden Registereintrag angehängt werden sollten. Auf diese Weise läßt sich jeder CK auf eine beliebige Länge für F oder L erweitern. In bekannten Verzeichnissen sind CK mit mehr als 14 X-Bytes jedoch sehr selten, dagegen sind CK mit weniger als 14 .K-Bytes gebräuchlicher. Durch jede derartige Erweiterung des CK wird für die zusätzlichen F- und L-Felder nur ein weiteres Byte hinzugefügt. Verkettete X-Bytes führen zu keiner Redundanz im System.
Bei der Ableitung der ÜC-Bytes in den CK eines Verzeichnisses ergeben sich jeweils zwei Alternativen. Da die .K-Bytes von beiden UK eines Paares abgeleitet werden können, liegt eine erste Alternative, wenn die .K-Bytes vom ersten UK des verglichenen Paares abgeleitet werden und eine zweite Alternative, wenn die .K-Bytes vom zweiten UK des verglichenen UK-Faares abgeleitet werden.
Hat man sich für eine der beiden Alternativen entschieden, müssen anschließend alle CK entsprechend abgeleitet werden. Allgemein wurde festgestellt, daß die zweite Alternative der ersten vorzuziehen ist, da die aus dem zweiten UK abgeleiteten K-Bytes größer sind als die aus dem ersten UK eines Paares. Die Bedingung »größer als« ist vorteilhaft bei Suchoperationen.
Die meisten Verzeichnisse führen zu einer grundlegenderen Informationsquelle als das Verzeichnis selbst ist, obwohl in einigen Fällen die Information direkt an das Verzeichnis angehängt wird. In den meisten Fällen ist jedoch die eigentliche Information zu groß, um sie wirksam an den UK oder den CK anzuhängen. Daher muß in den meisten Fällen an jeden Schlüsseleintrag eine weitere Informationseinheit angehängt werden, die direkt oder indirekt zur aufgeführten Information führt.
Derartige zusätzliche Informationseinheiten können die Adresse der geforderten Information oder auch die Adresse einer anderen Adresse sein, welche Teil einer Adreßkette ist, die dann zu der aufgeführten Information führt.
Um einen Hinweis an einen CK anzuhängen gibt es zwei Möglichkeiten, die mit den Nummern I und II bezeichnet sind. Bei der ersten Möglichkeit wird der Hinweis des ersten UK mit dem aus dem verglichenen UK-Paar erzeugten CK verbunden, bei der zweiten Möglichkeit der Hinweis des zweiten UK. Wenn einmal zwischen diesen beiden Möglichkeiten entschieden worden ist, muß anschließend immer in derselben Regel weitergearbeitet werden. Beim Treffen der Auswahl ist zu berücksichtigen, daß ein Hinweis mehr vorhanden ist, als CjSI durch Vergleich zwi-
15
sehen tatsächlich vorhandenen UK erzeugt werden, d. h. jeder UK hat seinen Hinweis, und daher wird ein CK weniger erzeugt, als UK verglichen werden. Dieser Unterschied zwischen der Anzahl tatsächlicher CK und tatsächlich vorhandener Hinweise kann vorteilhaft dadurch ausgeglichen werden, daß man am Anfang oder Ende einer Liste einen fiktiven CjK hinzufügt.
Verdichtete Schlüssel mit einer kleineren oder größeren Anzahl von Bytes, abgeleitet aus einem entsprechenden unverdichteten Schlüssel wurden bereits beschrieben. Der kleinste verdichtete Schlüssel schaltet alle Byteredundanz aus, die in der sortierten Liste nichtverdichteter Schlüssel gefunden wurde. Unter bestimmten Umständen soll jedoch eine gewisse Redundanzen aufrechterhalten werden. Wenn z. B. nur die sogenannten Leerbytes ausgeschaltet werden, bleibt genügend Redundanz vorhanden, um ein teilverdichtetes Verzeichnis auf derselben Basis abzusuchen, wie ein nichtverdichtetes Verzeichnis ab-
o gesucht werden kann. Die nachfolgend aufgeführte Tabelle III zeigt diese Art der Verdichtung.
Tabelle III
UK E CK
L
K
Englehard, Hans
Engelhard, Ludwig
English, Irvine J
English, Jas J
Ericson, Oscar
Eskind, Ralph R
Esposito, Blas
Evancie, Kenneth G
Ezequelle, Jonathan A
Fahnestock & Co
Famularo, Jos J
Farewell, Richd L
Farrar, Carl E
Feeney, Kermit
Fennell, Lee T
Ferris, Harriet Akin, Mrs
Ferris, Raymond W
11
3
9
1
1
2
1
1
0
2
2
3
1
2
2
, 8
12
3
10
1
2
3
1
2
1
3
2
4
1
3
2
8
Engelhard, L
Eng
English, J
E
Es
Esp
E
Ez
F
Fam
Fa
Farr '
F
Fen
Fe
Ferris, R
Zu jedem in Tabelle III aufgeführten CK können ein oder mehrere zusätzliche Leerbytes aus demselben UK rechts von den 2£-Bytes hinzugefügt werden, die aus den UK abgeleitet wurden. Der Grenzfall tritt dann ein, wenn der CK alle Bytes seines UK enthält und somit keine Verdichtung vorliegt.
Als Alternative zu dem in Tabelle III gezeigten Fall können auch die mindestens erforderlichen ÜT-Bytes und die Leerbytes erhalten, die F-Bytes jedoch ausgeschaltet werden. Wie in der nachfolgenden Tabelle IV, die nach dem erfindungsgemäßen Verfahren nicht abgesucht werden kann, gezeigt ist, ist dieses Verfahren jedoch nicht gleichbedeutend mit der Erhaltung des D-Byte und des iV-Byte.
Tabelle IV
UK
CK
Englehard, Hans
Engelhard, Ludwig
English, Irvine J
English, Jas J
Ericson, Oscar ,
Eskind, Ralph R
Esposito, Blas
Evancie, Kenneth G
Ezequelle, Jonathan A ..
Fahnestock & Co
Famularo, Jos J
Farewell, Richd L
Farrar, Carl E
Feeney, Kermit
Fennell, Lee T
Ferris, Harriet Akin, Mrs. Ferris, Raymond W
4
3
2
1
2
3
1
1
2 3 2
3
3
6 Ludwig 209 541/419
14 lish, Irvine J
11 lish, Jos J
13 ricson, Oscar
14 skind, Ralph R
12 posito, Bias
17 vancie, Kenneth G
20 zequelle, Jonathan A
15 Fahnestock & Co
13 mularo, Jos J
15 rewell, Richd L
11 rar, Carl E
14 eeney, Kermit
12. nnell, Lee T
23 rris, Harriet Akin, Mrs.
9 Raymond, W
Eine andere Variante besteht darin, daß man wenigstens das werthöchste Leerbyte zu dem Mindestfeld an -K-Byte hinzuzieht, indem man diese werthöchste Leerbyte auf das nächsthöhere Zeichen in der verwendeten Sortierfolge erhöht. Das gilt besonders bei Anwendung der in der Alternative I beschriebenen Regeln, da sich dort für die üC-Bytes die Situation »größer als« ergibt, die beim Absuchen des verdichteten Verzeichnisses vorteilhaft ist. Sobald im zuletzt genannten Fall das erste Leerbyte das höchste Zeichen in der Folge ist, wird das nächste
Leerbyte ebenfalls zu den K-Bytes hinzugefügt, da das höchste Zeichen im Wert nicht erhöht werden kann. Wenn ein hinzugefügtes Leerbyte das höchste Zeichen ist, wird das nächste Leerbyte hinzugefügt, bis ein hinzugefügtes Leerbyte nicht das höchste Zeichen in der Folge ist. In der Folge wird nur das zuletzt hinzugefügte Leerbyte auf den nächsthöheren Wert angehoben. Hierbei wird selten mehr als ein Leerbyte benötigt. Die folgende Tabelle zeigt ein Beispiel der Indexverdichtung auf die zuletzt beschriebene Weise mit einer binärcodierten Dezimalfolge.
Tabelle V
UK
BOON, CLYDE E
BOONSTRA, PIET W
BOOS, DONALD
BOOTH, RICHARD R
BOOTH, ROBERT A
BOOTH, RONALD
BOOTH, VERNON
BORCHLEWICZ, ROBERT J
4
3
3
7
8
6
2
5
O
2
5
2
O
O
BOONA
SA
TH, RI OC
BOYD, DARRELL C O O
F = Anzahl der mit einem Faktor versehenen Bytes vom linken Ende des Schlüssels. L = Anzahl der Bytes des in dieser Eintragung aufgezeichneten Schlüssels.
Fig. 6 A zeigt ein Ablauf diagramm eines erfindungsgemäßen Verfahrens. Mit dem Startschritt 10 werden die Register auf O zurückgestellt, die die Werte Für FA und LA enthalten. Im Schritt 11 schaltet das System zum nächsten Paar nichtverdichteter Schlüssel Y und Z weiter, die auf den entsprechenden Positionen/ und 7 + 1 in Fig. 5 dargestellt sind. Es handelt sich hier um die beiden ersten Schlüssel in einem nichtverdichteten Verzeichnis, die aus einem Speichermedium wie Magnetbandspeicher, Magnetplattenspeicher, Kernspeicher usw. entnommen werden. Im nächsten Schritt 12 wird mit einer Indexende-Prüfung festgestellt, ob Schritt 11 das Ende des nichtverdichteten Verzeichnisses erreicht hat. Das Ende des Verzeichnisses kann auf vielerlei Art dargestellt werden, z. B. durch ein Sonderzeichen, eine besondere Aufzeichnung, eine bestimmte Kombination von Zeichen oder durch Abfühlen einer ungültigen Bytezahl für einen UK.
Wenn das Ende des Verzeichnisses nicht erreicht ist, wird der Vergleicherschritt 13 ausgeführt, welcher feststellen muß, daß UK-Y kleiner ist als UK-Z, da die Schlüssel in dem nichtverdichteten Verzeichnis in sortierter Reihenfolge stehen müssen und jeder Schlüssel nur einmal im Verzeichnis enthalten sein darf. Wenn also bei dem Vergleich festgestellt wird, daß UK-Y gleich oder größer als UK-Z ist, stehen die Schlüssel nicht in der richtigen Sortierfolge, und ein Fehler wird durch den Schritt 48 α bzw. 48 c angezeigt. Normalerweise sollte ein derartiger Fehler nicht vorliegen, da die vorhergehende Sortieroperation für die UK richtig abgelaufen sein sollte. Die Anzahl gleicher Bytepositionen EB wird durch den Vergleicherschritt 13 festgestellt, und im Schritt 14 werden diese Positionen gezählt. Der Schritt 14 erhöht EB für jeden gleichen Vergleich zwischen entsprechend stehenden X- und Z-Bytes um Eins und verzweigt für einen Vergleich der nächsten Y- und Z-Bytes zurück zu Schritt 13. Sobald ein Z-Byte größer ist, als das Y-Byte, läuft die Operation zu Schritt 16 weiter. Das letzte, vor Schritt 16 im Schritt 14 gezählte EB wird als die richtige Z?-Zahl für den laufenden CK gespeichert und definiert die Differenzbyteposition D, die um eines höher liegt als der Wert für EB. Der I?ß-Wert wird in einem Register oder einer Wortstelle gespeichert, die ihm zugeordnet ist. Im Schritt 16 wird dann mechanisch oder elektronisch der in einem E^-Register stehende Wert von dem in einem £ß-Register stehenden Wert subtrahiert und das Ergebnis in einem 5-Register gespeichert.
Der Wert im 5-Register wird dann im Schritt 17 mit O verglichen, und es wird festgestellt, daß 5 kleiner, gleich oder größer als O ist. Auf diese Weise ergibt sich, ob die Dß-Position relativ zur früheren Dß-Position nach links, rechts oder überhaupt nicht verschoben ist. Im ersten UK-Faax eines Verzeichnisses ist die £)ß-Position nach rechts verschoben, da für die vorhergehende £>ß-Position O angenommen wurde. Abhängig von der im Schritt 17 getroffenen Feststellung wird einer der drei Wege 21, 22 bzw. 23 ausgewählt. Die Wege 22 und 23 untersuchen zunächst einmal in LA auf O und teilen sich dann in zwei weitere Wege, abhängig davon, ob LA = O ist oder nicht. Daraus ergeben sich fünf mögliche Wege. Einer dieser Wege führt zu einer Wiederholung des Schrittes 17. Für LB und FB können auf verschiedenen Wegen verschiedene Werte
erzeugt werden. Wenn S kleiner als 0 ist, läuft Schritt 30 ab, in welchem eine Null in das Lg-Register gesetzt und der Lß-Wert als L-Komponente des gegenwärtig erzeugten CK gespeichert wird. Dann beginnt Schritt 31, in welchem der Wert des .E8-Registers um Eins erhöht und in das Fß-Register gesetzt wird. Der resultierende Fß-Wert wird als F-Komponente des gerade erzeugten CK gespeichert. Wenn S kleiner als 0 ist, werden keine X-Bytes erzeugt, und nach Schritt 31 folgt Schritt 43 a, in welchem die E/K-Y-Hinweisadresse mit dem gerade erzeugten CK übertragen wird.
Vor Schritt 43 α läuft der Schritt 44 ab, um bei dem in F i g. 6 a gezeigten Verfahren die nächste Wiederholung vorzubereiten. In diesem Schritt wird der Wert im Eß-Register als E4-Wert und der Wert im Lß-Register als L^-Wert neu zugeordnet. Anschließend läuft wieder der Schritt 11 ab, in welchem das nächste Paar nichtverdichteter Schlüssel untersucht wird. Dieses nächste Paar umfaßt den zweiten Schlüssel UK-Z des ersten Paares A, der der erste Schlüssel UK-Y des zweiten Paares B wird, und den UK, der hinter dem UK-Z des ersten Paares stand. Dieser wird der UK-Z des zweiten Paares. Auf diese Weise erhält man alle folgenden Paare von unverdichteten Schlüsseln UK-Y und UK-Z, bis die Reihe der unverdichteten Schlüssel durchlaufen ist, was im Schritt 12 dargestellt ist.
Solange von Schritt 12 auf Schritt 13 übergegangen wird, laufen auch die Wiederholungen weiter. Jedesmal, wenn Schritt 17 erreicht wird, erfolgt eine Verzweigung zu einem der drei Wege 21, 22 oder 23. Weg 21 ist gemäß obiger Beschreibung für die Linksverschiebung gedacht. Weg 22 wird gewählt, wenn Schritt 17 feststellt, daß keine Verschiebung erfolgte. Dann wird mit einem Prüfschritt26a festgestellt, ob das gegenwärtig gespeicherte LA gleich 0 ist. Ist das nicht der Fall und liegt keine Verschiebung vor, beginnen die Schritte 30 und 31 und laufen genauso ab, wie es oben für die Linksverschiebung beschrieben wurde. Ist LA jedoch gleich 0, und liegt keine Verschiebung vor, folgt nach Schritt 26 a der Schritt 32. Im Schritt 32 wird die Zahl 1 in das Lß-Regjster gesetzt und dieser Wert im L-FeId für den gerade erzeugten CK gespeichert. Dann wird Schritt 33 ausgeführt, in welchem der Wert vom Eß-Register auf das Fß-Register übertragen wird; dieser F-Wert wird als Teil des laufenden CK gespeichert. Anschließend wird Schritt 41 begonnen und die Lß-Anzahl von üC-Bytes übertragen, die aus dem Register genommen ist, in welchem das laufende UK-Z gespeichert ist. Das erste X-Byte wird aus Byteposition (Fß + 1) der werthöchsten Byteposition des UK-S genommen. Dieses Byte wird als das erste K-Byte gespeichert. Andere -K-Bytes werden bei Bedarf von danebenliegenden wertniedrigeren Bytepositionen entnommen, bis die Lß-Anzahl von Bytes aus dem UK-Z entnommen ist. Dann folgt Schritt 43, in welchem die zu dem UK-Z gehörige Hinweisadresse gespeichert wird. Anschließend folgt die nächste Wiederholung.
Bei einer Wiederholung kann im Schritt 17 eine Rechtsverschiebung festgestellt werden, angezeigt dadurch, daß S größer als 0 ist. Dann wird Weg 23 eingeschlagen. Das L^-Register wird im Schritt 26 b auf 0 geprüft. Ist L4 = 0, beginnt Schritt 34, wodurch eine Eins zum Wert im 5-Register addiert und der erhöhte Wert dann in das Lß-Register gesetzt wird. Dieser Lß-Wert wird als L-Wert des laufenden CK gespeichert. Nach Beendigung des Schrittes 34 beginnt Schritt 35, in welchem der Wert im E4-Register in das Fß-Register als F-Wert des laufenden
.5 CK übertragen und im laufenden F-FeId gespeichert wird. Dann beginnt Schritt 41, in welchem die X-Bytes genauso erzeugt werden, wie es oben beschrieben wurde.
Wenn jedoch im Schritt 26 b festgestellt wird, daß
ίο der Inhalt des LA-Registers verschieden von 0 ist, beginnt Schritt 36, und der Wert im S-Register wird als Lß-Wert gespeichert. Dann läuft Schritt 37 ab, in welchem der Wert im E^-Register um die Zahl 1 erhöht und dieser erhöhte Wert in das Fß-Register geladen und dort im F-FeId für den laufenden CK gespeichert wird. Dann werden die X-Bytes im Schritt 41 auf bekannte Weise erzeugt.
Die Schritte 43 und 44 beginnen nach Beendigung der Schritte 31 oder 41. Schritt 44 definiert die laufenden Eß- und Lß-Werte neu als Ex- und LA-Werte für die nächste Wiederholung. Schritt 43 speichert den zum laufenden UK-Y gehörenden Hinweis als Hinweis für den laufenden CK. Da die Schritte 43 und 44 voneinander unabhängig sind, ist die relative Reihenfolge ihrer Ausführung nicht kritisch.
Wenn im Schritt 12 das Indexende festgestellt wird, wird ein letzter CK auf besondere Weise dadurch erzeugt, daß in den L- und F-Feldern 0 Bytes und keine X-Bytes gespeichert werden. Der Hinweis des letzten UK wird als Hinweis des letzten CK durch Schritt 43 b gespeichert und die Operation durch Beginn des Schrittes 47 beendet.
In F i g. 6 B ist der in F i g. 6 A gezeigte Schritt 31 durch die Schritte 31B, 26 C und 31,4 ersetzt, während die übrigen in F i g. 6 A gezeigten Schritte beibehalten werden. In dem in Fig. 6A gezeigten Schritt 31 wird ein Mindestwert für F bei Linksverschiebung erzeugt, während im Schritt 31,4 in F i g. 6 B ein Höchstwert F für linksverschobene CK erzeugt wird. Der Mindestwert für F wird vorgezogen, obwohl jeder Wert zwischen dem kleinsten und größten Wert für die Suche des verdichteten Verzeichnisses benutzt werden kann.
Die für den laufenden CK erzeugten L-, F- und X-Bytes werden der Reihe nach in einem Speicher bekannter Bauart gespeichert. Dabei ist zwischen beiden CK keine leere Byteposition erforderlich. Diese sequentielle Ausgabe der CK kann ohne Unterbrechung bis zum Indexende weiterlaufen.
Andererseits kann der Strom kurzzeitig bei einer bestimmten Blockgröße unterbrochen werden, die vom Speichermedium abhängt. Somit kann der Block ein ganzes Verzeichnis umfassen oder auch enden, sobald ein bestimmtes Byte erreicht ist, der Block kann also unterschiedliche Längen haben.
In Fig. 7 sind zusätzlich zu den in Fig. 6A gezeigten Schritten noch Blockbestimmungsschritte vorgesehen. Während des Startschrittes 10 wird ein Blockzähler Q auf die ungefähre erforderliche Byteblockgröße BL gesetzt, die im Schritt 51 nach Ausführung eines der Schritte 30 bis 37 und 41 geprüft wird. Zähler Q wird im Schritt 51 um die Bytelänge Lß des laufenden CK und dessen Hinweislänge CR für jeden, der bei einem der Schritte 30 bis 37, 41 und 43 α ausgegebenen CK zurückgesetzt. Die Rücksetzung pro Schritt 51 beträgt Lß (die Anzahl der laufenden £-Bytes) plus 1 (die Bytezahl für die F- und Lß-Felder) plus C^ (die Hinweisbyte-
21 22
zahl) plus 1 (das Cfi-Byte selbst bei einer Gesamt- und sein LB ist 0. Die Bytelängen der Felder F rücksetzung von LB + CR + 2). Wenn der Zähler β und E sind in den Fig. 8 A, 8B und 8C in den den Wert 0 erreicht, wird im Schritt 55 b ein Block entsprechend bezeichneten Spalten eingetragen. Das geschrieben. zu jedem UK gehörige Hinweisadressen- oder Zeiger-Schritt 52 untersucht den laufenden Inhalt des 5 byte ist in den Figuren mit dem Buchstaben R beZählers Q. Solange im Schritt 51 festgestellt wird, zeichnet.
daß dieser Inhalt des Zählers Q größer als 0 ist, Der erste CK stellt in jeder der Fig. 8A, 8B beginnt nach Schritt 52 Schritt 44 und die nächste oder 8 C immer einen nach rechts verschobenen Wiederholung. Ist der Inhalt von Q jedoch gleich CjK dar, weil L4 und F4 am Anfang im Schritt 10 oder kleiner als 0, beginnt Schritt 55, und der gerade io auf 0 gesetzt werden. Somit kann sich die Position erzeugte Teil des verdichteten Verzeichnisses wird des Differenzbytes beim Vergleich des ersten mit geschrieben. Schritt 55 c leitet die Zählung des dem zweiten UK nur nach rechts verschieben. In ZählersQ für den nächsten Block ein. Über Schritt Fig. 8A verschiebt sich dann die durch die durch- 55 b und Schritt 44 beginnt die nächste Wieder- gehende Linie bezeichnete Position des Differenzholung. Die Wiederholungen laufen ab, bis im Schritt 15 bytes nach links, um den Fall einer Linksverschie-12 das Indexende festgestellt wird. bung einzeln darzustellen. Aus Fig. 8A ist zu er-An den Z7K-Folgen in den Fig. 8A, 8B und 8C sehen, daß der F-Wert des ersten CK Null ist und werden die Operationen der in den Fig. 6A, 6B durch die Position des Differenzbytes im UK-2 neun oder 7 gezeigten Verfahren für die verschiedenen X-Bytes definiert sind, daß also das L-FeId den Wiederholungen unter Benutzung der Wege21 bzw. 20 Wert 9 hat. Die dem ersten in Fig. 8A folgenden 22 und 23 gezeigt. Die UK μηα die entsprechenden CK sind nach links verschoben, wie aus den ab- CK in F i g. 5 sind in der linken senkrechten Spalte nehmenden Werten für E zu ersehen ist. Die linksmit der Beschriftung »Schlüsselnummer« numeriert. verschobenen Schlüssel weisen keine .K-Bytes auf, An der Oberkante der Fig. 5A sind die Byte- und somit ist für jeden nach links verschobenen Positionen in jedem UK mit den Zahlen 1 bis 11 25 Schlüssel L = O. Die Beträge für F und L der CK durchnumeriert. Jedes UK-Byte ist mit dem Buch- sind in den entsprechend bezeichneten Spalten in stäbenB bezeichnet. Es kann sich dabei um jedes Fig. 8A angegeben, wobei jeweils der Zeiger zubeliebige Zeichen aus einem Zeichensatz innerhalb geordnet ist.
der durch die Sortierung vorgegebenen Grenzen Fig. 8A zeigt den Mindestwert Fn, den man
handeln. Das bedeutet, daß jedes Byte in einer 3° durch das in Fig. 6A gezeigte Verfahren und den
Spalte nur gleich oder höher in der Sortierfolge als Höchstwert Fx, den man durch das in Fig. 6B ge-
das unmittelbar vorhergehende Byte in dieser Spalte zeigte Verfahren erhält. In jedem Fall kann das
sein kann. Bei einer aufsteigenden Sortierfolge kann F-FeId einen beliebigen Wert zwischen F^ und Fx
es nicht niedriger als das vorhergehende Byte sein. enthalten. Die mit einer gestrichelten Linie mar-
Bei absteigender Sortierfolge gilt das Gegenteil. 35 kierte Fw-Position ist vorzuziehen, da sie einen
Obwohl für jeden in der F i g. 8 gezeigten UK eine niedrigeren numerischen Wert enthält. In jedem Fall
feste Anzahl von Bytepositionen angenommen wird, ist bei einem linksverschobenen CK kein K-Byte
gilt die Darstellung für verschiedene Bytezahlen in erforderlich.
den UK. Die in Fig. 5 mit DB bezeichnete Diffe- Fig. 8B zeigt einen nach rechts verschobenen renzposition ist in den Fig. 8A, 8B und 8C mit D 4° Schlüssel mit einem L^-Wert dahinter, der gleich bezeichnet, um damit die unterschiedliche Byte- oder verschieden von 0 ist. Bei einem CK-3 mit position im zweiten UK eines jeden verglichenen einem F-Wert von 5 und einem L-Wert von 3 hat Paares wiederzugeben. Gleiche Ε-Bytes für jedes ein nach rechts verschobener Schlüssel einen L^-Wert Vergleichspaar finden sich links von jedem D-Byte, von 2. Der Schlüssel Nr. 5 ist jedoch ein nach rechts und die Leerbytes N stehen rechts von jedem D-Byte. 45 verschobener Schlüssel, der einem Schlüssel mit Rechts von jedem D-Byte ist in den Fig. 8A, 8B einem LA-Wert von 0 folgt. Wenn bei einem rechts- und 8C eine vertikale Linie durchgezogen, rechts verschobenen Schlüssel L4 = 0 ist, ist die vorhervon jedem Faktorbyte F ist eine gestrichelte Linie gehende Differenzbyteposition als ein K-Byte eingezogen, geschlossen, welches für die Fortführung der Suche Die Spalte Fn stellt die Mindestwerte für F dar, die 50 benötigt wird. Wenn der vorhergehende Wert für LA durch das in Fig. 6A gezeigte Verfahren erzeugt verschieden von 0 ist, ist die vorhergehende Diffewerden. Die Spalte Fx zeigt die Maximalwerte für F renzbyteposition nicht als K-Byte eingeschlossen, da für die durch das in Fig. 6B gezeigte Verfahren sie durch ein i?-Byte im F-FeId des laufenden CK erzeugten CK. Die Werte für F^ und Fx unterschei- dargestellt ist. Die Werte für F^ und Fx sind bei den sich nur für einige nach links verschobene CK 55 rechtsverschobenen Schlüsseln gleich, und sind für nicht oder nach rechts verschobene CK F i g. 8 C zeigt die Änderung von LB zwischen gleich. Die vertikalen gestrichelten Linien stehen und 1, wenn eine Folge von Fällen ohne Verschierechts von den Fx-Positionen, die sich von den bung auftritt, d.h., wenn die Differenzbyteposition DB Fjy-Positionen bei demselben UK unterscheiden. Wo während einer Folge von UK-Vergleichen gleich Fx und Fn gleich sind, stellen die vertikalen ge- 60 bleibt. Ist demgemäß ein vorausgegangenes L4 nicht strichelten Linien Fn und Fx dar. 0, so wird LB = 0, ist ein vorausgegangenes L4 = 0, Das X-Bytefeld für einen CK ist links durch eine so wird LB = 1. Die Änderung erfolgt, wenn L von vertikale gestrichelte Linie und rechts durch eine 0 nach 1 und zurück nach 1 wechselt, während F vertikale ausgezogene Linie begrenzt. Wo die aus- umgekehrt zwischen 7 und 6 wechselt. Die Fn- und gezogene Linie und die gestrichelte Linie dasselbe 65 Fx-Werte sind für Schlüssel ohne Verschiebung UK-Byte begrenzen, oder wo die durchgezogene gleich.
Linie links von der gestrichelten Linie steht, liegt Fig. 9 zeigt eine Folge von UK, in welcher ge-
für den entsprechenden CK kein X-Bytefeld vor, punktete, gestrichelte und durchgezogene Linien, die
die Grenzen für Fx, Fn und X-By tes definieren, die Arbeitsweise des in den F i g. 6 A und 6 B gezeigten Verfahrens darstellen. Die entsprechenden F- und L-Werte für die aus den gezeigten UK erzeugten CK sind darin zusammen mit dem zugehörigen Zeiger wiedergegeben. Diese Tabelle gibt eine Übersicht über die Vorgänge bei der Erzeugung von CK aus einer Folge von UK. In Fig. 9 stellen insgesamt 48 Z-Bytes die 37 CK aus einer Gesamtzahl von 518 UK-Bytes dar. Fig. 9 zeigt somit eine Schlüsselverdichtung auf weniger als ein Zehntel der Anzahl von UK-Bytes. Mit einem zusätzlichen Byte für jeden CiC zur Darstellung der F- und L-Werte beträgt die Verdichtung für die CK in Fig. 9 ungefähr ein Siebtel der niohtverdichteten Schlüsselbytes. In der Praxis zeigte sich bei großen Verzeichnissen eine durchschnittliche Verdichtung mit weniger als einem K-Byte pro Schlüssel.
Fig. 11 ändert das in Fig. 6A gezeigte Verfahren für die Fälle, in denen keine Verschiebung vorliegt, in dem der Wechsel zwischen 0 und 1 für LB und die abwechselnde Existenz bzw. Nicht-Existenz eines X-Bytes ausgeschaltet wird, d.h. wo DB für eine Folge von UK auf derselben Byteposition bleibt. Durch das in Fig. 11 gezeigte Verfahren ist LB immer 1, und das Differenzbyte DB ist das K-Byte für alle nichtverschobenen Schlüssel. Fig. 11 ersetzt den Teil der Fig. 6A zwischen dem Ende des Schrittes 16 und dem Anfang des Schrittes 43, der in Fig. 6A durch die Unterbrechungspunkte 20a und 20 b gekennzeichnet ist. Der einzige Unterschied zwischen den in den Fig. 11 und 6A gezeigten Verfahren besteht im Weg22, der in Fig. 11 nur zum Schritt 32 läuft. Der Schritt 26a in Fig. 6 A rindet sich also in Fig. 11 nicht, und der Eingang zum Schritt 30 erfolgt vom Weg 22 her.
Fig. 10 zeigt dieselbe £/X-Folge wie Fig. 9. Auf die in Fig. 10 gezeigte t/X-Folge wird das Verfahren der Fig. 11 angewendet, während auf die in Fig. 9 gezeigte UX-Folge das in den Fig. 6A und 6B gezeigte Verfahren angewendet wird. In Fig. 10 findet sich also nicht der Wechsel wie bei Folgen ohne Verschiebung, die ein einzelnes X-Byte und ein LB von 1 aufweisen. Die offensichtliche Vereinfachung des in Fig. 11 gezeigten Verfahrens gegenüber dem Verfahren in den Fig. 6A oder 6B führt zu einer geringeren durchschnittlichen Verdichtung des Schlüssels, wenn Folgen ohne Verschiebung auftreten, was bei großen Verzeichnissen im allgemeinen der Fall ist. In Fig. 10 ergeben sich 51 X-Bytes gegenüber 48 X-Bytes in Fig. 9 aus einer Gesamtzahl von 518 E/X-Bytes.
In Fig. 12A wird der Schritt 41 in Fig. 6A zwischen den Unterbrechungspunkten 40 und 50 durch den Schritt 41 α ersetzt. Dadurch ergeben sich für die Operation der F i g. 6 A die in der Tabelle IV gezeigten CK. Diese CK schalten die Faktorenbytes aus, behalten jedoch die X-Bytes und alle Leerbytes bei. Wie bereits gesagt, sind die Leerbytes redundant, unter bestimmten Bedingungen, wie z. B. Fehlerermittlung oder Korrektur, jedoch erforderlich.
Fig. 12B wird in die Fig. 6A zwischen den Punkten 20A und 20 B gesetzt und ersetzt somit den entsprechenden Teil in Fig. 6A. Dadurch erhält man CK von der in der Tabelle III gezeigten Art. Diese CjK behalten ihre Faktorenbytes und die X-Bytes und schalten sämtliche Leerbytes aus. Da diese CK alle von der werthöheren Seite entfernten Bytes wiedergeben, hat jeder CK einen F-Wert von 0. Somit braucht im CX-Format der Tabelle III und in dem Verfahren der Fig. 12B kein F-Wert enthalten zu sein, da LB ja immer 0 ist. Somit wird bei dem in Fig. 12B gezeigten Verfahren nurL-Wert mit den X-Bytes gespeichert. Obwohl die Werte für L8 und FB, die wie bei dem in Fig. 6A gezeigten Verfahren in den Registern gehalten werden, nicht
ίο im CX-Format gespeichert sind, werden sie durch das Verfahren in der Fig. 12B bestimmt. Dafür ist in F i g. 12 B ein zusätzlicher Schritt 39 vorgesehen, der die laufend bestimmten Werte für LB und FB in ein Lc-Register addiert. Dann beginnt Schritt 41 b mit der gespeicherten Lc-Anzahl von Bytes vom Anfang des laufenden UK-Z. Dann beginnt das Verfahren wieder von vorn und läuft bis zum Ende des t/X-Verzeichnisses weiter.
Fig. 12C zeigt ein Verfahren, welches die in Tabelle V gezeigten verdichteten Schlüssel erzeugt. Dabei werden die X-Bytes aus einem UK-Y und nicht aus einem UK-Z ausgewählt, wie es bei dem in Fig. 6A gezeigten Verfahren der Fall ist.
Ein weiterer Unterschied besteht darin, daß eine ungleichförmige Codezunahme in der verwendeten Zeichensortierfolge für das in Fig. 6A gezeigte Verfahren keine Rolle spielt, während das in Fig. 12C gezeigte Verfahren besonders daran angepaßt werden muß, weil dort ein nächsthöheres Zeichen in der verwendeten Zeichensortierfolge wählbar sein muß. Wenn der Sortiersatz durch aufeinanderfolgende Codes dargestellt ist, kann jedes folgende Zeichen durch Addieren einer 1 zu einem Code für ein gegebenes Zeichen gewählt werden.
Andererseits kann man das nächste Zeichen auf anderem Wege, z.B. durch eine Tabellensuche, erhalten, wenn die Zeichenfolge in einem Sortiersatz eine entsprechende Fortschaltung um den Wert 1 nicht gestattet. Bei der Tabellensuche kann die Zeichenfolge in aufeinanderfolgende Adreßpositionen in einer Tabelle gesetzt werden, die in einem frei adressierbaren Speicher gespeichert ist. Somit erhält man das nächste Zeichen durch Fortschalten der Adresse für ein gegebenes Zeichen um 1, wodurch man die Adresse zum Abruf des nächsten Zeichens in der Sortierfolge ungeachtet der tatsächlichen Codewerte der Zeichen erhält.
Der erste Teil der Fig. 12C vom Startschritt 10 bis zum Vergleicherschritt 17 ist mit den entsprechend numerierten Schritten in Fig. 6A identisch. Außerdem sind diese Figuren identisch in bezug auf die Linksverschiebung über den Weg 21, wenn S kleiner als 0 ist, und in den Schritten 30, 31, 43, 44 und im Rückweg zu Schritt 11. Unterschiede zwischen den Fig. 6A und 12C treten auf, wenn Schritt 17 auf dem Weg 22 verlassen wird, weil keine Verschiebung vorliegt, oder auf dem Weg 23 bei Vorliegen einer Rechtsverschiebung.
Wenn keine Verschiebung vorliegt, führt Weg 22 zum Schritt 66. Im Schritt 66 wird die Differenzbyteposition DB im unverdichteten Schlüssel Y adressiert; dieses Zeichen ist hier mit YD bezeichnet. Dann wird das nächsthöhere Zeichen hinter Y0 in der Sortierfolge gewählt, und dieses nächsthöhere Zeichen ist mit Y' bezeichnet. Anschließend folgt Schritt 67, in welchem Y' mit dem Zß-Byte im UK-Z an der Differenzposition DB auf Gleichheit oder Ungleichheit verglichen wird. Mit dieser Prüfung wird
209 541/419
25 26
sichergestellt, daß Z0 größer ist als Y', was sich wird, die 0 ist. Das CX-Format in Fig. 14A hat,
durch ein Vergleichsergebnis »ungleich« zeigt. Dann willkürlich gewählt, für jeden CX die Form LFK.
werden die Schritte 32, 33 a und 68 ausgeführt, in L ist die Anzahl der X-Bytes im CK, F die Anzahl
denen als LB eine 1, EB als FB und Y' als das X-Byte der mit einem Faktor von der werthöchsten Seite
des laufenden CK gespeichert werden. Wenn auf der 5 des UK versehenen Bytes, und K stellt die t/X-Bytes
anderen Seite Gleichheit zwischen Y' und Z0 fest- im CK dar, die fehlen können. Zwischen L und F
gestellt wird, müssen eines oder mehrere Leerbytes kann jede Reihenfolge benutzt werden, eine einmal
hinter Y0 dem UK-Y entnommen werden, um eine gewählte Reihenfolge muß jedoch ohne Ausnahme
Unterscheidung zwischen erzeugten X-Bytes und beibehalten werden. Das Format in Fig. 14A wird
den Bytes in den entsprechenden Positionen des io vorgezogen. Das Grund-CX-Format ist in Fig. 14B
UK-Z herbeizuführen. Diese Unterscheidung erhält gezeigt. Die L- und F-Felder können je ein Byte
man, indem man das erste Leerbyte JVl-Y aus dem von acht Bits belegen oder zusammen ein Byte mit
UK-Y nimmt und den Schritt 66 ausführt, um das acht Bits, also je vier Bits. Die Wahl hängt ab von
nächsthöhere Byte Y' nach JVl-Y in der Sortierfolge der Größe der für die in Frage kommende Liste
zu bekommen. Dann wird im Schritt 67 der Ver- 15 erwarteten L- und F-Felder. Wenn überhaupt
gleich ausgeführt, und wenn dieser das Ergebnis X-Bytes vorhanden sind, stehen sie am Schluß im
»ungleich« hat, ist L8 ■= 2, und Y0 und Y' werden Format in derselben Reihenfolge wie in dem UK,
als X-Bytes gespeichert. EB wird für diesen CK als aus dem sie abgeleitet sind. Die Hinweisadressenzahl
FB gespeichert. Das X-FeId wird so lange erhöht, (PTR-CT) und die Hinweisadresse (PTR) stehen
wie eine Gleichheit zwischen Y' und Z0 und JV im 20 unmittelbar hinter dem LFX-FeId und werden direkt
Schritt 32 festgestellt wird, und zwar wird für jede von den entsprechenden Feldern entnommen, die zu
so festgestellte Gleichheit der Wert um 1 erhöht. dem UK gehören, der durch den CK dargestellt
Nach Schritt 33 folgt Schritt 41c, in welchem die wird. Der letzte CK in einer verdichteten Liste in
X-Bytes aus dem UK-Y genauso gespeichert werden Fig. 13 wird durch O-Bits in seinem L-FeId und
wie im Schritt 41 in F i g. 6 A aus dem UK-Z. 25 F-FeId bezeichnet, denen die Felder PTR CT-N und
Nach Schritt 41 c folgt Schritt 69, in welchem das PTR-N folgen. Diese Felder entsprechen dem zu
letzte der gespeicherten X-Bytes zum Byte Y' wird, dem letzten UK im unverdichteten Verzeichnis zu-
das bei Feststellung einer ungleichen Vergleichs- gehörigen Feld.
bedingung im Schritt 67 benutzt wird. Anschließend Die L- oder F-Felder können so erweitert werden, verläuft das Ablauf diagramm in Fig. 12 C genauso 30 daß sie große Mengen von Zeichen für relativ wenige wie das in F i g. 6 A. CK liefern, auch wenn die durchschnittliche CX-Bei jedem Ausführungsbeispiel des erfindungs- Länge für ein verdichtetes Verzeichnis klein ist, z. B. gemäßen Verfahrens muß ein bestimmtes Format zwischen ein und zwei Bytes. Im allgemeinen umfaßt für die unverdichteten und für die verdichteten nur ein kleiner Prozentsatz von CK in einem VerSchlüssel benutzt werden. Die Formatauswahl ist 35 zeichnis eine größere Anzahl von Bytes. Dementsprefreigestellt, ein einmal gewähltes Format muß jedoch chend benutzt man am besten eine kleine LF-Darbeibehalten werden, da jedes Ausführungsbeispiel stellung von z. B. einem Byte, die beispielsweise 95% grundsätzlich auf ein bestimmtes Format beschränkt der CX in diesem Verzeichnis wiedergeben kann, ist. Fig. 13 zeigt ein bestimmtes Format für die Für die verbleibenden weniger als 5°/o der CX einzugebenden UK und die zugehörigen Hinweis- 40 können dann besondere Erweiterungsfelder vorgeadressen und Fig. 14A ein bestimmtes Format für sehen werden.
die resultierenden CK und zugehörigen Hinweis- Fig. 14C zeigt ein Erweiterungsformat, mit
adressen. welchem L- und F-Felder von einem halben Byte bis
In Fig. 13 trägt jeder UK eine Indexnummer zu je 255Bytes erweitert werden können. Wie be-
von 0 bis JV zur Bezeichnung der Lage des UK in 45 reits gesagt, können in dem in Fig. 14A gezeigten
der Sortierfolge. Das Eingabeformat in Fig. 13 ist Format nur im letzten CX eines verdichteten Ver-
UK mit veränderlicher Länge durch ein C/X-Zahlen- zeichnisses L und F Null sein.
feld (UKCT) vor jedem UK angepaßt. Zur An- Die vier Bits für L bzw. F können in 15 von 0
passung an ί/X-Längen bis 255 Bytes kann dieses verschiedenen Codes codiert werden. Einer dieser
Feld ein Byte oder acht Bits umfassen. Das Zahlen- 50 15 Codes, z. B. der Code für 15, kann für die An-
feld trägt dieselbe Indexnummer wie jeder züge- zeige der Erweiterung eines jeden Feldes reserviert
hörige UK. Außerdem gehört zu jedem UK eine werden. Dann können die L-und F-Felder auf einen
mit derselben Indexnummer gekennzeichnete Hin- Höchstwert von je 15 Bytes gebracht werden, d. h.
weisadresse. Die Hinweisadresse adressiert den vom auf einen Maximalwert von 14. Wenn jedoch ent-
UK angegebenen Punkt und kann ebenfalls in der 55 weder beide oder eines der Felder L und F einen
Länge veränderlich sein, wobei die Länge von einem Überlauf über 14 hinaus aufweist, wird dies dadurch
Hinweis-Zahlenfeld (PTRCT) vor jedem Hinweis- angezeigt, daß der 15er-Code in das entsprechende
feld mit derselben Indexzahl angegeben wird. Die Feld gesetzt wird, welches den Wert 14 überlaufen
Hinweiszahl (PTR CT) benötigt auch nur ein Byte hat. Der 15er-Code für eines der beiden Felder L von acht Bits für Hinweisadressen bis zu einem 60 oder F zeigt an, daß ein oder zwei Erweiterungsbytes,
Umfang von 255 Bytes. wie die in F i g. 14 C, D oder E gezeigten, unmittel-
Das Ende einer f/X-Folge wird dadurch ange- bar den Grundbytes für L und F folgen und vor den
geben, daß nach der letzten Hinweisadresse (PTR-n) K-Bytes stehen.
ein aus lauter Nullen bestehendes Byte gesetzt wird. Ein Erweiterungsbyte wird hinzugefügt, wenn eines Dieses Byte tritt auf, wenn ein nächstes C/X-Zahlen- 65 der beiden Grundfelder L oder F den einen Überlauf feld erwartet wird, daher kann ein gültiges Zahlen- anzeigenden 15er-Code enthält. Das Erweiterungsfeld nicht 0 sein. Dementsprechend endet der UK- byte enthält dann ganz die Felder L oder F und um-Erzeugungsvorgang, wenn eine UK-Zahl festgestellt faßt bis zu 255 Bytes. Ein Erweiterungsbyte kann so-
27 28
mit als einzige Darstellung des L- oder F-Wertes können aber auch verschiedene oder sich überdienen. Wenn das L-FeId erweitert wird, ist die An- läppende Bereiche in demselben Speicher wie einem zahl der folgenden 2£-Bytes gleich dem im Erweite- Kernspeicher, einem monolithischen Speicher, einem rungsbyte für L angegebenen Wert. Trommelspeicher oder einem Plattenspeicher sein.
Fig. 14E zeigt einen Fall, in dem beide FelderL 5 Die zwischen die Speicher 83 und 84 geschaltete und F über 14 hinaus erweitert werden müssen. So- Rechenanlage umfaßt mehrere Register, Eingangsmit werden zwei Erweiterungsbytes hinzugefügt. schaltungen, Ausgangsschaltungen und Leitungen.
Jeder Erweiterungswert enthält die entsprechenden Ein Speicherdatenregister (SSDR) verbindet den echten Werte für L und F. Wenn z. B. 33 .K-Bytes Ausgang des Datenspeichers 83 mit einer Ausgangsvorliegen und der F-Wert 21 ist, enthalten die io leitung 86. Das SSDR liefert ein Byte an die AusFelder L und F im Grund-CK-Format für diesen CK gangsleitung 86, wenn der Speicher 83 durch ein je einen 15er-Code, welcher anzeigt, daß die folgen- Startsignal SS betätigt wird, während er eine Adresse den L- und F-Erweiterungsbytes die Werte 33 bzw. entweder von einem Y-Speicheradreßregister (YSAR) 21 haben. 33 IC-Bytes folgen dem F-Erweiterungs- oder einem Z-Speicheradreßregister (ZSAR) empbyte im CK. 15 fängt, wenn eines der beiden Register entsprechend
Fig. 1 zeigt den Datenfluß bei der Erzeugung ver- durch ein OG(YSAR)-I oder ein OG(ZSAR)-I-Si-
dichteter Schlüssel aus unverdichteten Schlüsseln. gnal ausgelesen wird.
Die hier gezeigten Ausführungsbeispiele benutzen Ein Addierer 88 liefert sein Ausgangssignal an eine das in Fig. 13 gezeigte Format für die UK von Addiererverriegelung 89, die die an den Addierer 88 N UK-Feldem, wobei N jede ganze Zahl sein kann. 20 über Eingänge A und B gegebenen Werte speichert. Diese einzugebenden UK sind das Ergebnis einer vor- Die Verriegelung 89 verfügt über eine Vorzeichenhergegangenen t/£-Sortieroperation in einem Rech- stelle G zur Anzeige des Vorzeichens der gespeicherner. Unmittelbar vor jedem UK steht ein Zahlenfeld ten Größe.
mti der Anzahl von Bytes im folgenden Schlüssel, und Ein Vergleich zwischen den Eingängen A und B hinter jedem UK steht ein Hinweisfeld zur Lokali- 25 des Addierers 88 erfolgt durch Addition von A zum sierung der durch den UK dargestellten Daten. Das Zweierkomplement von B. Dabei sind A und B Ausführungsbeispiel arbeitet mit einem Hinweisfeld gleich, wenn sich in der Verriegelung 89 die Größe 0 veränderlicher Länge, wobei ein Hinweisfeld mit ergibt. Eine von 0 verschiedene Größe zeigt eine Unfester Länge als Sonderfall eingeschlossen ist. Ein gleichheit zwischen A und B an, und dann zeigt die Hinweis mit fester Länge kann z. B. zwei Bytes ent- 30 Vorzeichenstelle G an, welcher von beiden Werten halten, aus denen die Adresse des entsprechenden größer als der andere ist. Ist G = I, ist A größer Schlüssels durch einen passenden Algorithmus ab- als B, ist G = O, ist A kleiner als B.
geleitet werden kann, wie er z. B. in dem Basic Direct Das Zweierkomplement eines auf eine Komple-Access Method (BDAM) genannten IBM OS/360 Sy- mentierschaltung 93 gegebenen echten Wertes von B stem Programm verwendet wird. Die Adressierung 35 erhält man über ein Signal IG(C), welches das unter diesem Programm ist in einem allgemein er- ler-Komplement von B liefert und eine 1 addiert, hältlichen IBM-Handbuch mit der FormNr. 228-6617 Eine Eingangsleitung 91 ist mit dem .,4-Eingang genauer beschrieben. und eine Eingangsleitung 92 mit der Komplementier-
Die Anzahl der dem E/Z-Zahlenfeld zugeordneten schaltung 93 am B-Eingang des Addierers 88 verBytes muß natürlich der höchstzulässigen Länge für 4° bunden. Der echte Wert der Signale auf der Leitung die UK angepaßt sein. Das eine in Fig. 13 ver- 92 durchläuft die Komplementierschaltung·93, wenn wendete Bytezahlfeld (UK CT) ist für eine maximale deren Steuersignal IG(C) nicht vorhanden ist.
UK-Länge von 255 Bytes eingerichtet und dürfte An die Komplementierschaltung 93 sind zwei damit den meisten Situationen gerecht werden. Bei weitere Eingänge IG (Bl) und /G (B 2) angeschlossen, Bedarf kann ein zwei Byte langes Zahlfeld benutzt 45 die echte Eingangssignale für die Zahlen 1 bzw. 2 werden, welches dann eine maximale UK-Uänge auf die wertniederste Stelle des Addierereinganges B von über 16 000 Bytes gestattet. geben, wenn nicht das das Zweierkomplement
Die in Verbindung mit Fig. 13 beschriebene Ein- liefernde Signal/G(C) vorhanden ist.
gangsbytefolge wird von einer Datenquelle 81 in den Mit der Addiererausgangsleitung 87 ist ein Nullin F i g. 1 gezeigten Datenspeicher 83 übertragen, der 50 prüfer 94 verbunden, der alle Ausgangssignale der als Magnetkernspeicher, Dünnfilrnspeicher, mono- Verriegelung 89 mit Ausnahme des Signals der Vorlithischer Speicher usw. ausgebildet sein kann. zeichenstelle G empfängt.
Fig. 14A zeigt das Format der von einem Be- Eine Takt-, Verzweigungs- und Torsteuerung95 Stimmungsspeicher 84 in F i g. 1 an einen Ver- empfängt die Signale vom Nullprüfer 94 auf Leibraucher 82 ausgegebenen CK. Dieser CSi-Strom hat 55 tungen94a und 94 b und die Signale von der Voreine Form, die hinterher zum Aufsuchen der darin zeichenstelle G der Verriegelung 89 und liefert die bezeichneten Information benutzt werden kann. entsprechenden Eingabe- und Ausgabesignale sowie
In Fig. 1 liefert eine Datenquelle81, z.B. eine die Speicher-Steuersignale, die in dem in Fig. 1 ge-
E/A-Einheit, eine nichtverdichtete Kette von Bytes zeigten System erforderlich sind, um es nach dm
in dem in Fig. 13 gezeigten Format an einen Daten- 60 in Fig. 6A gezeigten Verfahren in Betrieb zu
Speicher 83. setzen.
Ein Verbraucher 82 in Fig. 1, beispielsweise auch Zwischen der Leitung 91 für den Addierer-
wieder eine E/A-Einheit, empfängt die Ausgabe des eingang .4 und der Addiererausgangsleitung 87 liegen Systems in Fig. 1 in Form einer Kette von verdich- mehrere Register. In jedes dieser Register können teten Schlüsselbytes in dem in Fig. 14A gezeigten 6g von der Leitung 87 Signale geleitet werden, wenn die
Format von einem Bestimmungsspeicher 84. Eingangsschaltung der Register durch /G-Steuer-
Der Datenspeicher 83 und der Bestimmungs- signale entsprechend betätigt werden. In gleicher speicher 84 können verschiedene Speicher sein, Weise kann jedes dieser Register ein Ausgangssignal
auf die Leitung 92 geben, wenn seine Ausgangsschaltung durch entsprechende OG-Steuersignale betätigt wird. Diese Register sind in der folgenden Tabelle definiert, in der in der linken Spalte die Symbole für die Register und in der rechten Spalte deren Bedeutung angegeben ist.
ZSAR Das Z-Speicheradreßregjster. Es enthält die Adresse für das nächste Byte des UK-Z, das vom Datenspeicher 83 abzurufen ist.
YSÄR Das Y-Speicheradreßregister enthält die Adresse des nächsten Bytes des UK-Y, das vom Datenspeicher 83 abzurufen ist.
FB Das laufende F-Register empfängt den F-Wert für den gerade erzeugten CK.
EB Laufendes Register für gleiche Bytes speichert die Anzahl gleicher Bytes im gerade verglichenen UK-Y und UK-Z.
LB Laufendes L-Register empfängt den laufenden L-Wert, der die Anzahl von ÜT-Bytes im gerade erzeugten CK darstellt.
ZCNT Z-Zahlregister speichert die Anzahl der übrigen Bytes im gerade verarbeiteten UK-Z, die nicht abgerufen wurden.
DSAR Bestimmungsspeicher-Adreßregister enthält die Adresse des nächsten im Be-, Stimmungsspeicher 84 zu speichernden Byte.
LA Letztes L-Register speichert den L-Wert des letzten erzeugten CK.
EA Register für letzte gleiche Bytes speichert die Anzahl gleicher Bytes, die im unmittelbar vorhergehenden UK-Vergleich bestimmt wurden.
Z Z-Byteregister speichert das laufende Byte des gerade verarbeiteten UK-Z, kann außerdem zum Speichern des Hinweiszahlenbytes (PTR CT) benutzt werden.
Y F-Byteregister speichert das laufende Byte des gerade verarbeiteten UK-Y.
S S-Wertregister speichert den F-Wert, der die Differenz zwischen den laufenden Werten EB und EA darstellt.
YCNT Y-Zahlregister speichert die Anzahl der in dem gerade verarbeiteten laufenden UK-Y verbleibenden Bytes, die nicht abgerufen wurden.
Der Datenspeicher 83 in Fig. 1 liest in einem CLüT-Taktzyklus ein Byte in das Datenregister SSDR, das im nächsten folgenden Zyklus das Byte auf die Datenspeicher-Ausgangsleitung 86 gibt.
Ein Startspeichersignal SS wird auf Datenspeicher gegeben, so daß das adressierte Byte ins SSDR-Register gestellt und auf Leitung 86 gegeben wird.
Der Bestimmmungsspeicher 84 benötigt zwei CLK-Zyklen zum Schreiben eines vom Bestimmungsspeicher-Datenregister DSDR empfangenen Byte. Während eines CLK-Zyklus empfängt der Speicher 84 ein Bestimmungsspeicher-Startsignal SD, wird auf Grund eines Signals OG(D) vom DSAR adressiert und löscht die adressierte Byteposition. Im nächsten CLK-Zyklus wird der Inhalt des DSDR auf die im Speicher 84 adressierte Byteposition übertragen.
Einige Register verfügen über eine zweite Eingangs- oder Ausgangsschaltung, so daß sie Daten auf mehr als einer Leitung ausgeben oder von mehr als ίο einer Leitung empfangen können. Wo ein Register über mehr als eine Eingangs- oder Ausgangsschaltung verfügt, sind diese Schaltungen durch hinter die entsprechende Bezeichnung der Steuersignale in F i g. 1 gesetzte Zahlen voneinander unterschieden. Die Register ZCNT oder YCNT verfügen über je eine zweite Eingangsschaltung, die mit der Datenspeicher-Ausgangsleitung 86 verbunden ist, über die sie das adressierte Byte aus dem Datenspeicher 83 empfangen können, wenn sie entsprechend durch ao Steuersignale IG (ZCNT)-I, IG(YCNT)-I gesteuert werdend Die anderen Eingangsschaltungen sind mit der Addiererausgangsleitung 87 verbunden, wenn sie entsprechend durch die Steuersignale IG(ZCNI-I oder IG(YCNT)-I betätigt werden. a5 Die Register ZSAR und YSAR verfügen auch über einen zweiten Satz von Ausgangsschaltungen, die mit dem Adressiereingang des Datenspeichers 83 verbunden sind, wenn sie entsprechend durch Steuersignale OG(ZSAR)-I oder OG(YSAR)-I betätigt werden. Die anderen Ausgangsschaltungen der erwähnten Register sind bei entsprechender Steuerung durch die Signale OG(ZSAR)-I oder OG(YSAR)-I mit Addierereingang A verbunden.
Die Register EA, S und YCNT verfügen über zweite Ausgangsschaltungen, die sie mit der Leitung 92 verbinden, wenn sie durch die entsprechenden Steuersignale OG(EA)-2, OG(S)-I, und OG(FCNT)-I eingeschaltet werden. Ihre anderen Ausgangsschaltungen verbinden sie mit Leitung 91, wenn sie durch Steuersignale OG(EA)-1, OG(S)-I oder OG(YCNT)-I betätigt werden. Das DSAR kann entweder mit Addierereingang A durch das Signal IG(DSAR) oder mit dem Bestimmungsspeicher 84 durch das Signal OG(D) verbunden werden.
Die Fig. 2A bis 2N zeigen ein bestimmtes Ausführungsbeispiel der Takt-, Verzweigungs- und Steuerschaltungen 95.
Fig. 2B-I zeigt einen Impulszyklus am Ausgang des in Fig. 2B-2 gezeigten Taktgebers 101. Bei diesem Taktgeber 101 handelt es sich um einen konventionellen binären Taktgeber, der die gezeigten Impulse mit den Bezeichnungen CLA, CLB, CLC, CLR und CLL liefert. Der Impuls CLB beginnt gleichzeitig mit dem Impuls CLA, CLB fällt jedoch vor CLA wieder ab. Der Impuls CLC beginnt mit dem Abfallen von CLA und hat ungefähr die gleiche Dauer wie CLB. Der Impuls CLR hinter CLC hat ungefähr die gleiche Dauer wie CLC während des Mittelteiles des Taktzyklus. Der Impuls CLL am Ende des Taktzyklus hat ungefähr die gleiche Dauer wie der Impuls CLC. Die Impulse CLA, CLB und CLC steuern die in Fig. 2C und 2D gezeigten Schaltungen für den Ablaufsteuerungstakt.
Ein Oszillator 102 oder eine andere Zeitsignalquelle liefert einen Ausgangsimpuls, der den Taktgeber 101 über eine Torschaltung 103 treibt. Der Oszillator 102 kann z. B. 10 Millionen oder mehr Impulse pro Sekunde liefern. Die Torschaltung 103 wird
31 32
über eine Verriegelung 104 einer Taktsperre 105 ge- chenden CLK-Zyklen gezeigt, die den betreffenden
steuert. Schritt ausführen.
Eine Startsignalleitung 100 steht mit dem Rück- Alle Steuersignale, die in einer Spalte der F i g. 2 Q
Stelleingang der Verriegelung 104 in Verbindung, die durch Kommatas in Gruppen geteilt sind, werden
bei Empfang eines Impulses die Torschaltung 103 5 während desselben CLK-Zy)dus auf die Torschaltun-
öffnet, so daß die Oszillatorimpulse zum Taktgeber gen in Fig. 1 gegeben. Einige Signale werden wäh-
101 gelangen, bis durch Setzen der Verriegelung 104 rend derselben Zyklen wie z. B. CLC, CLR oder CLL
mit einem Signal von der Oder-Schaltung 106 wieder zu verschiedenen Zeitpunkten auf die Torschaltungen
eine Sperrung erfolgt. gegeben.
Die Oder-Schaltung 106 liefert ein Stoppsignal, io Alle Signale in Fig. 2Q sind in Fig. 11 gezeigt, wenn eine Operation in F ig. 6 A gezeigten Verfahrens mit Ausnahme der Rückstellsignale sowie der Verbeendet werden muß. So tritt z. B. am Ende eines zweigungssignale TZ, TP und TN. Die Verzweigungs-Indexes oder wenn eine Fehlerbedingung festgestellt signale werden durch die in den Fig. 2M und 2N wird, die ein weiteres zuverlässiges Arbeiten des Ver- gezeigten Schaltungen erzeugt. Diese Rückstellsignale fahrens verhindert, ein Stoppsignal auf. Der Zeit- 15 für die Register sowie die Register selbst sind herpunkt bestimmter Stoppsignale ergibt sich aus den kömmlicher Art und nicht näher beschrieben.
Bezeichnungen an den Eingängen der Und-Schaltun- Es folgen Beispiele für die Arbeitsweise der ersten gen 107 bis UO in Fig. 2A-a. vier CLSC-Zyklen in Fig. 2Q. Daraus werden mit
Fig. 14Q zeigt den Steuersignalablauf für das in HiUe der Fig. 3 A bis 3E alle CZJT-Zyklen in der
den Fig. 3A bis 3E in Verbindung mit der Fig. 1 20 Fig. 2Q verständlich.
gezeigte Verfahren. Die Tabelle der Fig. 2Q zeigt Während des ersten CLÄT-Zyklus 127 sind das
die Reihenfolge meherer CLX-Zyklen und die wäh- YSAR und DSAR auf Startadressen für die Erzeu-
rend jedes CL/sT-Zyklus gelieferten Steuersignale. Die gung eines CK-Verzeichnisses gesetzt. Das YSAR ist
Tabelle umfaßt 62 verschiedene CLX-Zyklen, die an auf die Adresse des Byte UK CNT-O im Datenspei-
der ünken Seite der Tabelle durch Zahlen zwischen 0 25 eher 83 am Anfang des unverdichteten Verzeichnisses
und 127 bezeichnet sind. Die Tabelle verfügt über der in Fig. 13 gezeigten Art gesetzt. Das DSAR ist
drei Spalten, deren mittlere mit T oder F bezeichnet am Anfang auf die Adresse einer ersten Byteposition
ist und die Normalspalte für aufeinanderfolgende im Bestimmungsspeicher 84 gesetzt, in der das L-Byte
Zyklusoperationen darstellt. Die beiden anderen Spal- für den ersten CK der resultierenden C2£-Kette in
ten, von denen die linke T (richtig) und die rechte F 30 dem in Fig. 14A gezeigten Format gespeichert wer-
(falsch) bezeichnet ist, werden für Verzweigungs- den soll,
operationen benutzt. Während des CLK-Zyklus 0 treten die Signale
Die Ausgangsstellung eines Verzweigungstriggers OG(YSAR)-I und SS auf. Durch diese Signale wird 110 in Fig. 2N steuert, welche der beiden Spalten Γ die Adresse im YSAR in den Daten-Speicher 83 ge- oder F in Fig. 2Q zur Anwendung gelangt. Die Stel- 35 bracht und das Zahlbyte (UKCT-O) des ersten UK-lung dieses Triggers wird jedoch ignoriert, wenn die adressiert. Das Signal SS startet einen Speicherzyklus, mittlere Spalte in Fig. 2 Q benutzt wird. Die Aus- in welchem das adressierte Byte, das auf der Speicherwahl von T oder F erfolgt über die Eingangs- und leitung 86 während der nächsten Zykluszeit zur Ver-Ausgangsschaltungen in den Fi g. 2 F bis 2 K zusam- fügung steht, in das SSDR gelesen wird,
men mit den Eingangsschaltungen für die Taktgeber 40 Der CUT-Zyklusl betätigt IG(YCNT)-I so, daß in denF i g. 2B-2 und 2 C. Diese Taktgeber-Eingangs- das Byte UKCT-O auf der Leitung 86 in das Register signale unterbrechen den normalen Taktstopp durch YCNT geleitet und aus diesem auf die Addierer-Aufschalten ihres Zyklus auf einen gegenüber der in eingangsleitung 91 geleitet wird. Wenn der Addierer Fig. 2Q gezeigten CLX-Folge vorwärts oder rück- 88 ein Eingangssignal empfängt, wird dieses am Ende wärts verschobenen CLK. 45 desselben Zyklus durch CLL in die Verriegelung 89
Die CZJ£-Zyklen in Fig. 2Q beginnen bei 127 mit geleitet und steht auf der Addiererausgangsleitung87
Rückstellung aller kritischen Schaltungen. Die für den Nullprüfer 94 während des nächsten Zyklus
Zyklen enden beim CZX-Zyklus 73, in welchem eine zur Verfügung.
Rückverzweigung zum CZJT-Zyklus 0 erfolgt. Jede Der CLX-Zyklus 2 löst ein TZ-Signal aus, durch
Zyklusfolge von CLK 0 bis 73 stellt einen Durchgang 50 welches der Ausgang des Nullprüfers 94 untersucht
durch das in Fig. 6A gezeigte Verfahren zur Erzeu- wird, das SignalOG(YSAR)-I leitet den Inhalt des
gung eines CK aus zwei UK dar. Registers YSAR auf den ^4-Eingang des Addierers 88,
Am Anfang wird von CLKlIl auf CLKO über- und das Signal IG(Bl) leitet eine Zahl 1 zum ß-Ein-
gegangen. Der Zyklus 127 wird zu Beginn der Erzeu- gang des Addierers 88. Während des Taktimpulses
gung eines CK-Verzeichnisses nur jeweils einmal aus- 55 CLL am Ende des laufenden Zyklus enthält die
geführt. Danach lauf en die CLK-Zyklsn in der ^M Addiererverriegelung 89 die um 1 erhöhte YSAR-
Reihenfolge 0 bis 11, 16 bis 27, 32 bis 44, 48 bis 60 IfI Adresse.
und 62 bis 73 ab. Während der Folge von CLK-1 Im Während des CL£-Zyklus 3 erfolgt eine Verzwei-
Zyklen können bestimmte CLST-Zyklen übersprungen »| gung, die während des ΓΖ-Signals im CZX-Zyklus 2
oder wiederholt werden, was durch die Datenkonfigu- 60 durch die Stellung T oder F des Verzweigungstriggers
ration der verarbeitenden Ü7£-Paare bedingt sein HO in Fig. 2N bestimmt war. Die Verzweigungs-
kann. Die Verzweigungssteuerschaltungen sprechen richtung T oder F hängt von den Bedingungen der
auf die Datenkonfiguration an. Eingangsdaten ab, die in Fi g. 3 A gezeigt sind, die
Die in Fig. 2Q gezeigten CiLK-Zyklen führen die das Byte UKCY-O auf lauter Nullen untersuchten,
in dem Ablauf diagramm der Fig. 3 A bis 3 E ge- 65 Ein l/X-Zählbyte kann normalerweise nur 0 sein,
zeigten einzelnen Operationen aus. In den Fig. 3A wenn es das Indexende anzeigen soll. Somit wird
bis 3 E ist eine Bezeichnung zwischen jedem durch durch ein ?7£-Zählbyte aus lauter Nullen die Opera-
einen Kasten dargestellten Schritt und den entspre- tion dadurch gestoppt daß eine Verzweigungnach3 T
33 34
erfolgt. Wenn die UK-Zahl verschieden von 0 ist, fängt, was bei vielen Zyklen später der Fall sein kann,
läuft die Operation mit einer Verzweigung nach 3 F Somit wird durch eines der Signale TZ, PT oder TN
weiter. Das Signal /G (YSAR) leitet die erhöhte die Stellung der Verriegelungsschalter 127 oder 128
YSAR-Adresse in das YSAR, das Signal auf den Verzweigungstrigger 110 übertragen und da-
0G(FCTVT)-I bringt den Inhalt des FCWT-Registers 5 mit die Operation des Systems entsprechend der in
auf Leitung91 und das SignalOG(YSAR)-I leitet Fig. 2Q gezeigten Folge gesteuert. Der Verzwei-
den Inhalt des YCTVT-Registers auf Leitung 92 aus. gungstrigger 110 wird außerdem am Ende eines Takt-
Die Summe steht im nächsten Zyklus am Verriege- zyklus durch einen Taktimpuls CLL gesetzt, wenn
lungsschalter 89 zur Verfügung und ist die Adresse das Signal TZ, TP oder TN anliegt, so daß dieser
des Byte UKCT-I im Speicher 83. Beim ersten Ver- io spezielle T- oder F-Ausgang beim nächsten und den
gleich von UK-Y und UK-Z wird dieses UK-I zu folgenden CLK-Zyklen zur Verfügung steht, bis der
UK-Z. Trigger 110 wieder betätigt wird.
Auf diese Weise kann man den Datenfluß in Fi g. 1 Das Ausgangssignal des Verzweigungstrigers 110 mit Hilfe des Steuersignalablaufs in Fig. 2Q und des wird also gemäß Darstellung in Fig. 2A dazu beAblauf diagramms in den Fig. 3 A bis 3E verfolgen 15 nutzt, phasenverschobene CLST-Zyklen für die Ab- und erhält so das in Fig. 6 A gezeigte Verfahren. lauf steuerung in Fig. 2 C mit CLA -Taktimpulsen Die Verzweigungs-SteuersignaleTZ, TP und TN auszuwählen. Die in Fig. 2Q gezeigte normale werden in den in den Fig. 2M und 2N gezeigten Reihenfolge läuft dadurch ab, daß die Ablauf steue-Schaltungen erzeugt. Das Steuersignal TZ wird durch rung in Fig. 2C die CLB-Impulse und der Ablaufdie Oder-Schaltung 122, das Signal TP durch die 20 Steuerungstaktschalter in Fig. 2D die CLC-Impulse Torschaltung 123 und das Signal TN durch die in empfängt.
Fig. 2N gezeigte Oder-Schaltung 126 erzeugt. Die Ablaufsteuerung in Fig. 2C liefert ihr Aus-Das Signal TZ legt den Zeitpunkt fest, zu welchem gangssignal auf den Eingang des Ablaufsteuerungsdie Stellung eines Nullprüfungsverriegelungsumschal- taktschalters in Fig. 2D. Durch einen Impuls auf ters 127 in Fig. 2M auf den Verzweigungstrigger 110 25 der Startsignalleitung 100 werden alle Binärtrigger übertragen werden muß. Ist die Verriegelung 127 ge- der Ablaufsteuerung auf 1 gesetzt und der Taktgeber setzt, bedeutet das für die Verriegelung 89 den Wert 0, 101 in Fig. 2B-2 gestartet, so daß er seine Takt- und ist die Verriegelung 127 zurückgestellt, wird da- impulse abgibt. Die aus Einsen bestehenden Ausdurch ein von 0 verschiedener Wert angezeigt. Somit gangssignale der binären Trigger 1 bis 64 werden auf gilt ein Null-Ausgangssignal der Verriegelung 127 als 30 die Verriegelungsschalter 1 bis 64 in Fig. 2D durch Γ-Stellung für den Trigger 110 und ein von 0 ver- den CLC-Taktimpuls übertragen. Dadurch werden schiedenes Ausgangssignal als F-Stellung. die Leitungen CLl bis 64 zum binären Decodierer Die Steuersignale TP und TN bestimmen, wann die 23 in Fig. 2E erregt, der daraufhin einen Impuls Stellung einer Vorzeichen-Prüfverriegelung 128 in auf seine Ausgangsleitung CLK127 gibt. Dieser Aus-Fig. 2M auf den Verzweigungstrigger 110 zu über- 35 gangsimpuls auf der Leitung CLKYIl bereitet die tragen ist. Der Unterschied zwischen diesen beiden Und-Schaltung 208 in Fig. 2C vor, die beim näch-Signalen besteht darin, daß für dieselbe Ausgangs- sten CLA -Impuls den Taktgeber dadurch auf lauter stellung der Verriegelung 128 der Verzweigungstrigger Nullen stellt, daß sie alle binären Trigger (BT) auf 0 110 in entgegengesetzte Stellungen gestellt wird. So- setzt. Diese Schaltstellungen werden in der oben mit setzt ein ΓΡ-Signal die Verriegelung 110 auf ein 40 beschriebenen Art auf die Schaltungen in den T-Ausgangssignal für ein G 1-Ausgangssignal von der Fig. 2D und 2E so übertragen, daß die Leitung Verriegelung 128, während ein I7V-Signal die Ver- CLZO erregt wird. Dadurch beginnt die normale riegelung 110 in die F-Ausgangsstellung zurückstellt. CLK-Zyklusfolge, in der die einzelnen CLK-Zyklen Die jeweiligen CLX-Zyklen in Fig. 2Q, in denen durch CLC-Impulse eingeleitet werden, die die Uberdie SignaleTZ, TP und TN auftreten, sind an den 45 tragung in die Verriegelungsschalter Ll bis L 64 verEingängen der jeweiligen Schaltungen 122, 123, 124 anlassen. Durch CLB-Impulse wird dann die Ablauf und 126 bezeichnet. steuerung der Reihe nach durch ihre Zyklen geschal-Eine Prüf schaltung 121 in Fig. 2 M stellt fest, tet, bis diese Operation durch Betätigen einer der wann der Inhalt der Addiererverriegelung89 auf 0 Eingangsschaltungen in Fig. 2C unterbrochen wird, und auf das Vorzeichen hin untersucht werden muß, 50 Jeder CLB-Taktimpuls durchläuft die Und-Schalindem die Ausgangsstellung der Schaltung 95 und der tung 201 in F i g. 2C und schaltet den Binärtrigger 1 Verriegelungsschalter 89 in F i g. 1 auf die Verriege- um. Davon ausgenommen sind die Zeiten während lungsschalter 127 bzw. 128 übertragen wird. Die der Impulse CLK, UT, 35 F, 54 T, 60 und 62 F. Die Schaltung 121 liefert dieses Prüfsignal auf Grund Und-Schaltungen 211 bis 215 in Fig. 2D koppeln eines Steuersignals an die Addiererverriegelung 88 55 ihre Ausgangssignale C 2 bis 64 auf die Und-Schalvon einem der Register L4, LB, ZCNT, LA, Z oder tungen 203 bis 207 in Fig. 2C zurück. Die Und- YCNT. Das Prüfsignal wird auf die in Fig. 2M ge- Schaltung 202 empfängt das echte Ausgangssignal zeigten Und-Schaltungen 131 bis 134 gegeben. Somit Cl vom Verriegelungsschalter Ll in Fig. 2D. werden die beiden Verriegelungsschalter 127 und 128 Nachdem CLKO einen Taktimpuls CLA dazu veram Ende eines Zyklus durch einen Taktimpuls CLL 60 anlaßt, alle binären Trigger auf 0 (F-Stellung) zu stelauf Grund eines Eingangssignals zur Prüfschaltung len, schaltet der folgende CLB den Binärtrigger 1 in 121 entsprechend gesetzt und zeigen den Nullinhalt die T-Stellung, so daß die Ablaufsteuerung auf 1 und das Vorzeichen des Addiererverriegelungsschal- steht. Die folgenden CLC-Impulse übertragen diese ters an. Zahl 1 auf Taktschalter in Fig. 2D, der dann CLl Wenn der Nullprüfungsverriegelungsschalter 127 65 auslöst und das Ausgangssignal Cl auf die Schaloder der Vorzeichenprüf verriegelungsschalter 128 ge- tung 202 zurückkoppelt. CLKl erzeugt CKl aus setzt sind, behalten sie ihre Schaltstellung bei, bis die der in Fig. 2E gezeigten Decodierschaltung. Der Prüfschaltung 121 wieder ein Eingangssignal emp- nächste CLB-Impuls während der Phase CLKl läuft
35 36
durch die Schaltungen 201 und 202 und setzt den gister FA und LA durch die Rückstellung auf 0 gesetzt Taktgeber auf die Zahl 2, die dann auf den Takt- werden. Außerdem werden YSAR und DSAR auf schalter übertragen wird. Impuls CLC bringt CL 2 die erforderlichen Startadressen in den Speichern 83 und beginnt CLK 2. Es erfolgt keine Rückkoppelung und 84 gesetzt.
von der Und-Schaltung 211. Der CLB-Impuls schal- 5 Anschließend wird Schritt 11 eingeleitet, um das tet in den nächsten Zyklen nur den Binärtrigger 1 um Schlüsselpaar UK-Y und UK-Z beginnend mit dem und liefert die Zahl 3 an die Ablaufsteuerung, wobei ersten Paar zu erhalten. Schritt 11 wird ausgeführt, diese Zahl durch CLC auf den Taktschalter über- wenn zwei aufeinanderfolgende UKCT-Bytes enttragen wird. Dadurch wird Und-Schaltung 211 durch- sprechend in die Register YCNT und ZCNT geholt geschaltet, so daß CLl und CL2 geliefert und CLK3 io werden. Zuerst wird das YSAR auf die Adresse des gestartet werden. C 2 wird auf die Schaltung 203 in Zählbytes (UKCT) für das erste UK-Y gesetzt. Dann Fig. 2C zurückgekoppelt und Cl auf die Schaltung wird dieses Byte in das SSDR geholt und während 202. Somit schaltet der CLB-Impuls des nächsten der Taktzyklen 0 und 1 in das Register YCNT ge-Taktzyklus die Binärtrigger 1, 2 und 3 so um, daß leitet. Wie alle abgerufenen UKCT-Bytes ergibt auch man die Zahl 4 für die Taktsteuerung erhält. 15 das Byte YCNT bei der Prüfung einen 0-Wert. Als
Auf diese Weise wirken die Ablaufsteuerung und nächtes wird die Adresse für UK-Z erzeugt, in dem der Ablaufsteuerungstaktschalter als eine Einheit so, das Y-Hinweiszahlenbyte (PTR CT) abgerufen, zum daß aufeinanderfolgende Zyklen vom Taktgeber 101 Inhalt von YCNT addiert, diese Summe zum Inhalt sie binär weiterschalten. Diese binäre Schrittfolge von YSAR addiert und das Ergebnis in das ZSAR wird durch Erregung eines der Eingänge der Und- 20 geladen wird. Zu diesem Zweck wird während der Schaltungen zur Schaltung 14 C unterbrochen. Diese CL£-Zyklen 3 und 4 der Inhalt der Register YCNT Unterbrechung erfolgt unter Steuerung der T- und und YSAR auf den Addierer 88 und ihre Summe F-Stellungen des Verzweigungstriggers 110 in Fig. von der Addiererverriegelung 89 auf das Register 2N, und zwar entsprechend der in Fig. 2Q ange- ZSAR übertragen, um die Adresse des ersten gebenen Verzweigungen. 25 PTR CT-Byte zu erhalten. Dann adressiert das ZSAR
Die Signale CLl bis 64 von der Taktgeberver- den Datenspeicher 83, um das Y-Hinweiszahlenbyte riegelung in Fig. 2D werden als binäre Eingangs- (PTRCT) abzurufen, welches während der CLK-signale auf einen Binärdecodierer gegeben, der in Zyklen 4 und 5 in das Y-Register übertragen wird. Fig. 2E gezeigt ist. Der Decodierer kann herkömm- Während der CLK-Zyklen 5, 6 und 7 wird die licher Art sein, der bei jeder Kombination binärer 30 nächste UK CT-Byteadresse erzeugt, indem der In-Eingangssignale eine bestimmte Ausgangsleitung er- halt des Y-Registers und des ZSAR auf den Addieregt. Die Ausgangsleitungen 62 vom Decodierer ent- rer 88 und deren Summe von der Addiererverriegesprechen den 62 verschiedenen CLiT-Zyklen, die in lung 89 auf das ZSAR übertragen werden, um dieses der linken Spalte in F i g. 2 Q aufgeführt sind. Jede mit der Adresse des UK CT-Byte für den laufenden Leitung für einen CLK-Zyklus ist zu jedem beliebi- 35 UK-Z zu versorgen.
gen Zeitpunkt während einer Periode des Taktgebers Schritt 12 umfaßt die Nullprüfung für jedes abge-
101 stromführend. rufene [LK-Z-Zahlenbyte (CTBT) nach seiner Über-
Die Ein- und Ausgabesteuersignale /G und OG für tragung auf die Addiererverriegelung 89 während des die Register werden durch die in den Fig. 2F bis 2L CLK8. Ergibt sich bei der Prüfung eine 0, wird das gezeigten Steuerschaltungen erzeugt, die die CLK- 40 Ende des Verzeichnisses angezeigt und die CLK-Signale ;und die T- und F-Signale von dem Verzwei- Zyklen 9 T und 10 T stellen die Register LB und FB gungstrigger 110 in Fig. 2N, von dem alle IG- und auf 0 zurück. Ist das Ergebnis verschieden von 0, OG-Signale abgeleitet werden, empfangen. läuft Schritt 13 als nächster ab. Schritt 13 wird aus-
Die in den Fig. 2F-I und 2F-2 erzeugten IG- geführt, wenn die entsprechenden Y- und Z-Bytes Steuersignale steuern den Addiererausgang. Diese 45 vom Speicher 83 abgerufen, auf die Register Y und Z /G-Steuersignale werden mit CLi?-Impulsen getaktet. übertragen und während der CLK-Zyklen SF, 9 F,
Alle anderen /G- und OG-Signale sind während 1OF und 16 verglichen werden. Den Vergleich zwides ganzen erforderlichen CLK-Zyklus vorhanden, sehen den Y- und Z-Bytes in den Registern erhalt der mit der CLC-Taktzeit beginnt und so lange man durch deren Übertragung auf den Addierer 88, dauert, wie ein Zyklus des Taktgebers 101. Die in 50 der das echte binäre Z-Byte zur Zweierkomplementden F i g. 2 G-I und 2 G-2 erzeugten Steuersignale form des Y-Byte addiert. Gleichheit zwischen den steuern die Ausgabe zum Addierereingang A, die in Bytes Y und Z wird durch eine 0 in der Verriege-F ig. 2 H erzeugten Steuersignale die Ausgabe zum lung 89 angezeigt und durch die Nullprüf schaltung Addierereingang B. Die Steuersignale in Fig. 2J 94 festgestellt. Ungleichheit wird durch einen von 0 steuern die Ausgabe zum Datenspeicher 83. Die 55 verschiedenen Wert in der Verriegelung 89 ange-Steuersignale in Fig. 2K veranlassen die Eingabe zeigt. Wenn Z größer als Y ist, ergibt sich durch die aus der Datenspeicherausgangsleitung 87 und die Addition des Zweierkomplementes kein Überlaufbit Steuersignale in Fig. 2L die Eingabe in den Be- auf den Vorzeichentrigger G. Ist Z kleiner als Y, ist Stimmungsspeicher 84. ein Überlaufbit für den Vorzeichentrigger G vorhan-
Die Tabelle der Fig. 2Q faßt das Verfahren der 60 den. Ob der Addierer 88 addiert oder subtrahiert Fig. 6A, angewendet auf den in Fig. 1 gezeigten (vergleicht) wird von einem 7G(C)-Signal an die Datenfluß unter Verwendung der im Ablauf diagramm Komplementiereinrichtung 92 gesteuert,
der Fig. 3A bis 3F gezeigten Steuersignalfolge, zu- Der Abruf von Y- und Z-Bytes endet für ein UK-
sammen. F i g. 3 zeigt die Zusammengehörigkeit der Paar, wenn seine höchste ungleiche Byteposition Fig. 3 Abis 3F. 65 (Dß-Position) dadurch festgestellt, daß Y kleiner alsZ
In Fig. 3 A werden im Schritt 10 alle kritischen aufgefunden wird. Darm beginnt Schritt 16.
Schaltungen der Fig. 1 zurückgestellt. In Fig. 6A ; Schritt 14 beginnt stets, wenn während CLK17 erfolgt diese Rückstellung im Schritt 10, da die Re- und 1ST im Schritt 13 Gleichheit zwischen den Y-
37 38
und Z-Bytes festgestellt wird. Dann wird eine 1 zu oder größer als 0 ist. Wenn der Nullprüfer 94 einen der Zahl im Register EB während CLK18 T und 19 T von 0 verschiedenen Wert anzeigt, gibt die Voraddiert, indem der .Eß-Inhalt durch den Addierer 88 zeichenstelle G an, ob F größer oder kleiner als 0 übertragen wird, während das /G (B 1)-Signal vor- ist. Ist es kleiner als 0, steht in der Position G bei handen ist. Das erhöhte Ergebnis wird vom Verriege- 5 einem von 0 verschiedenen Ausgangsergebnis des lungsschalter 89 in das Eß-Register geladen. Dann Nullprüfers 94 kein Bit. Dann läuft Schritt 30 wähwerden die nächsten Y- und Z-Bytes im i/K-Paar rend der CLK-Zyklen 34 F und 35 T ab, und der Inabgerufen, indem man den Inhalt des YSAR und des halt des Lß-Registers wird auf 0 gesetzt, indem ein ZSAR über den Addierer 88 um 1 erhöht und so die Addiererzyklus eingeleitet wird, ohne daß Eingangs-Adressen für die nächsten Y- und Z-Bytes im Spei- io signale auf den Addierer gegeben werden. Dadurch eher 83 erhält. Außerdem müssen die übrigen UK- wird die Addiererverriegelung 89 auf lauter Nullen Bytezahlen in den Registern YCNT und ZCNT für gesetzt und dieser Inhalt dann auf das LB-Register jedes abgerufene Y- und Z-Byte um 1 erniedrigt übertragen, um während der CLK-Zyklen 36 T und werden. Das erfolgt entsprechend in den CLX-Zyklen 37 T den Schritt 30 abzuschließen.
19 T, 21, 22, 23F, 24 F und 23F, 24F, 26 oder 23 T, 15 Anschließend wird während der CLX-Zyklen 37 T 24 T. Der Registerinhalt wird erniedrigt, indem der und 38 Γ der Schritt 31 ausgeführt, in welchem der Inhalt der Register YCNT oder ZCNT auf den Inhalt des isß-Registers um 1 erhöht wird, indem A -Eingang des Addierers 88 übertragen wird, wäh- dieser über den Addierer 88 geschickt wird, während rend die Steuersignale IG (C) und /G (B 1) vorhan- ein Einersignal auf die Steuerleitung /G (B 1) gegeben den sind. Jedes erniedrigte Ergebnis in der Verriege- 20 wird. Die erhöhten Ergebnisse in der Addiererlung 89 wird während der CLK-Zyklen 21, 22 und verriegelung 89 werden auf das Fß-Register übertra-27 oder 25 auf 0 untersucht, um festzustellen, ob gen und damit der Schritt 31 abgeschlossen,
das Ende eines UK erreicht ist. Ist das nicht der . Wenn im Schritt 17 jedoch festgestellt wird, daß S Fall, wird das in der Verriegelung 89 stehende Er- gleich 0 ist, läuft der Schritt 26^4 während der CLK-gebnis entsprechend auf das Register YCNT oder 25 Zyklen 34 T und 35 T ab, und der Inhalt des LA-Re- ZCNT übertragen. gjsters wird auf den A -Eingang des Addierers 88
Solange die DB-Position im Schritt 13 nicht fest- übertragen und kein Eingangssignal auf den B-Eingestellt und der Inhalt weder des Registers YCNT gang gegeben. Da der unveränderte L^-Wert dann noch des Registers ZCNT im Schritt 14 gleich 0 ist, aus der Addiererverriegelung 89 kommt, stellt der werden im Schritt 14 die nächsten Y- und Z-Bytes 30 Nullprüfer 94 fest, ob der L^-Wert gleich oder verabgerufen, indem man die Adreßwerte im YSAR und schieden von 0 ist, und der Schritt 26 A wird aus- DSAR um 1 erhöht. geführt. Wenn der Lx-Wert verschieden von 0 ist,
Sobald im Vergleicherschritt 13 die Dß-Byteposi- laufen die oben beschriebenen Schritte 30 und 31 ab.
tion festgestellt wird, endet die Vergleichsoperation, Stellt der Nullprüfer 94 jedoch fest, daß LA gleich 0
und es läuft Schritt 16 ab. Die momentan gespei- 35 ist, wird an Stelle des Schrittes 30 der Schritt 32 aus-
cherte E5-ZaIiI ist gültig und stellt die t/üC-Byteposi- geführt und ein echter Einerwert auf die Addierer-
tion (DB1) dar. verriegelung 89 gegeben, indem die Steuerleitung
Bis zum Abfühlen der Dß-Position werden Y- und IG (B 1) erregt wird. Der Inhalt der Verriegelung Z-Bytes abgerufen und verglichen, der Inhalt der wird dann zum Abschluß des Schrittes 32 auf das Register YCNT und ZCNT erniedrigt, und der In- 40 Lß-Register übertragen. Anschließend wird der Inhalt des ZJß-Registers erhöht, so, wie die Schritte 13 halt des ^-Registers auf den v4-Eingang des Addie- und 14 abwechselnd ablaufen. Die £>ß-Position wird rers 88 übertragen, der B-Eingang nicht erregt und grundsätzlich festgestellt, bevor der Inhalt eines der zum Abschluß des Schrittes 33 der JEB-Wert in der Register YCNT oder ZCNT auf 0 erniedrigt wird, Verriegelung 89 in das Fß-Register geleitet,
d. h. bevor die Endposition entweder für UK-Y oder 45 Wenn auf der anderen Seite im Schritt 17 festfür UK-Z erreicht ist. Wenn YCNT vor ZCNT Null gestellt wird, daß S größer als 0 ist, beginnt während wird, was während des CiLK-Zyklus 25 F angezeigt der CLX-Zyklen 34 F und 35 F der Schritt 26 B, in wird, wird der laufende .Eß-Wert gespeichert, und welchem der Inhalt des Registers LA in die Verriegedieser definiert die Dß-Position. ZCNT kann nur vor lung 89 übertragen und genauso wie oben für Schritt YCNT Null werden, wenn ein ZZK-Sortierfehler vor- 50 26^4 beschrieben auf 0 geprüft wird. Wenn in dieliegt und dieser Fehler durch 48 C-I angezeigt ist. sem Fall LA gleich 0 ist, was durch den Nullprüfer Außerdem kann ZCNT nicht auf derselben Byte- 94 angezeigt wird, wird der Inhalt des ^-Registers position 0 werden wie YCNT; dieser Fehler wird auf den Addierer 88 gegeben, um 1 erhöht und das durch 48C-2 angezeigt. Somit bedeutet die Fehler- Ergebnis in der Verriegelung 89 während des CLK-anzeige 48 C-I oder 48C-2, daß UK-Y größer oder 55 Zyklus 40 Γ und 41T in das Lß-Register übertragen gleich UK-Z ist, also ein Sortierfehler vorliegt. Die und damit der Schritt 34 abgeschlossen. Anschlie-Operatiori kann nicht weiterlaufen, bevor nicht alle ßend wird Schritt 35 ausgeführt, in welchem der In-Sortierfehler in der Folge unverdichteter Schlüssel halt des F^-Registers unverändert durch den Addiebehoben sind. " rer 88 und die Verriegelung 89 geleitet und in das
Bei der Ausführung des Schrittes 16 wird der In- 60 Fß-Register übertragen wird, wodurch der Schritt 35
hält des üSß-Registers auf den A -Eingang des Addie- während der CLZ-Zyklen 41T und 42 Γ abgeschlos-
rers 88 übertragen und der Inhalt des JE^-Registers sen wird.
über die Komplementiereinrichtung 93 auf den Wenn LA verschieden von 0 und S größer als 0 ist,
B-Eingang, und so erhält man den subtrahierten wird während der CLjK-Zyklen40F und 41F der Wert S in der Verriegelung 89. Dieser Wert wird von .65 Schritt 36 ähnlich ausgeführt wie der Schritt 34, je-
dort in den CL2£-Zyklen 32 und 33 auf das «S-Register doch wird kein Steuersignal IG (B 1) auf den Addierer
übertragen. Im Schritt 17 wird durch Untersuchung 88 gegeben. Anschließend läuft ähnlich wie der Schritt
auf 0 und Vorzeichen festgestellt, ob S kleiner, gleich 35 während der CL£-Zyklen41F und 42F der
Schritt 37 ab, jedoch wird jetzt mit dem Inhalt des EA -Registers auch ein Steuersignal /G (B 1) auf den Addierer 88 gegeben.
Der in den Schritten 30 bis 37 erzeugte Inhalt der Register L8 und FB wird während der CLK-Zyklen 48 bis 52 gespeichert. Nach Beendigung der Schritte 33, 35 oder 37 beginnt somit in allen nach rechts verschobenen Fällen der Schritt 41. Bei einem von 0 verschiedenen Wert für LA und keiner Verschiebung beginnt der Schritt während des CLK-Zyklus 54 F. Da in diesem Zeitraum der Inhalt der Register LB und EB übertragen wird, führt man zweckmäßigerweise gleich den Schritt 44 während der CLK-Zyklen 52 bis 54 durch und überträgt die Registerinhalte in die Register LA und EA ■ LB wird während der CLK-Zyklen 52 und 53 auf 0 untersucht, um festzustellen, ob Schritt 41 übersprungen werden soll. Wenn LB verschieden von 0 ist, beginnt Schritt 41. Bei Beendigung des Schrittes 31 und einer Verschiebung nach links wird der Schritt 41 jedoch umgangen. Liegt keine Verschiebung vor, und ist der Wert für LA gleich 0, beginnt die Operation bei CLK-Zyklus 54 T.
Während der CLK-Zyklen 42 bis 44 adressierte der Inhalt des ZSAR das erste K-Byte, das aus dem UK-Z zu nehmen ist. Dieser Vorgang hing davon ab, ob bei einer Verschiebung nach rechts LA gleich 0 war oder nicht. War LA gleich 0, enthielt der vorhergehende CK keine K-Bytes, und die laufenden K-Bytes beginnen an der ÖA-Position des laufenden UK-Z. Dieser Vorgang läuft im Schritt 35 A ab.
Wenn LA jedoch verschieden von 0 ist, enthielt der vorhergehende CK K-Bytes und die laufenden K-Bytes beginnen an der Position (DA +1) im laufenden UK-Z. In dem nun ablaufenden Schritt 37^4 wird an Stelle der Zahl 1 im Schritt 35 A die Zahl 2 addiert. Während der CLK-Zyklen 24 bis 41 enthält das ZSAR den Adressenwert für die Z)ß-Byteposition im Speicher 83. Während der CLK-Zyklen 42 und 43 erhält man den ZV Wert durch Subtraktion des S-Wertes vom Dß-Wert und Addition einer 1 bzw. 2 in den Schritten 35 A oder 37 A. Dieser ZSAR-WeTt steht zur Verfügung, um das erste K-Byte abzurufen, wenn L4 gleich 0 ist, wie es nach dem Schritt 33 oder 35 der Fall ist.
Wenn L4 von 0 verschieden ist, wie es nach Schritt 36 der Fall ist, wird die Adresse DA + 1 benötigt und der eingestellte ZSAR-Wert auf den /!-Eingang des Addierers übertragen, während ein Signal IG (B 1) auf den ß-Eingang gegeben wird. Das Ergebnis DA + 1 wird dann aus der Verriegelung 89 in das ZSAR geladen und bildet die erste K-Byteadresse.
Während des Schrittes 41 wird jedes K-Byte vom Datenspeicher 83 in den Bestimmungsspeicher 84 dadurch übertragen, daß das Byte in der ZS/4Z?-Adresse während der CLK-Zyklen 55 und 56 abgerufen, unverändert durch den Addierer 88 und die Verriegelung 89 auf das DSDR geleitet und während der CLK-Zyklen 56 und 57 auf der laufenden DSAR-Adreßposition im Speicher 84 gespeichert wird.
Jedesmal, wenn ein K-Byte im Bestimmungsspeicher 84 gespeichert wird, wird der Inhalt der Register ZSAR und DSAR um je 1 erhöht, so daß jeder die nächste Bytestelle in den entsprechenden Speichern 83 und 84 adressieren kann. Während der CLK-Zyklen 57, 58 oder 58, 59 erfolgt dieses Speichern durch Übertragen des Inhaltes des YSAR oder des DSAR auf den A -Eingang des Addierers 88 und Abgabe einer echten 1 auf den B-Eingang sowie die anschließende Übertragung des erhöhten Inhaltes in der Verriegelung;89 zurück auf das YSAR bzw. DSAR.
Auf diese Weise steht die Adresse für die nächste Byteposition immer im YSAR und DSAR zur Verfügung. Das wird immer nur vorwärts um 1 erhöht im Gegensatz zum YSAR oder ZSAR, die sich zeitweise nicht gleichmäßig ändern.
Nachdem dasZSAR und DSAR um jeweils 1 erhöht und das nächste K-Byte übertragen ist, wird der Inhalt des Lß-Registers während der CLK-Zyklen 59 und 60 um 1 erniedrigt und auf 0 geprüft um festzustellen, ob weitere K-Bytes übertragen werden müssen. Wenn LB von 0 verschieden ist, wird im CLK-Zyklus 62 F das nächste K-Byte vom UK-Z geholt und der Schritt 41 in Fig. 3 für jedes weitere K-Byte wiederholt. Schließlich wird LB auf 0 reduziert und dadurch angezeigt, daß alle K-Bytes übertragen sind. Der CLK-Zyklus 62 zeigt an, daß der zum UK-Y gehörende Hinweis in den Bestimmungsspeicher übertragen werden und der Schritt 43 begonnen werden soll. Im Schritt 43 werden das PTR CT-Byte und die zum UK-Z gehörigen Hinweisbytes übertragen.
Bei Beginn des Schrittes 43 enthält das Register YCNT einen Wert, der die Anzahl der Leerbytes im UK-Y angibt (das sind die Bytes nach der Z)0-PoSition), da das Register YCNT seit dem CLK-Zyklus 22 nicht mehr verändert wurde. Das Register YSAR enthält dann außerdem die Adresse des Byte hinter dem DB-Byte im UK-Y, da das YSAR seit dem CLK-Zyklus 21 nicht mehr verändert wurde. Wenn in der Prüfung während des CLK-Zyklus 62 Γ und 63 festgestellt wird, daß YCNT gleich 0 ist, enthält das YSAR die Adresse des PTR CT-Byte. Ist YCNT von 0 verschieden, muß die Adresse dieses Byte im CLK-Zyklus 63 und 64 F erzeugt werden, indem der Inhalt des YCNT zum Inhalt YSAR addiert wird. Während der CLK-Zyklen 63 und 64 F werden die Inhalte beider Register in den Addierer 88 gegeben und die gebildete Summe aus der Verriegelung 89 in das YSAR übertragen, welches jetzt die Adresse des Y-Hinweiszahlenbyte (PTR CT) enthält.
Als nächstes wird das Y-Hinweiszahlenbyte unter Verwendung der im YSAR stehenden Adresse während der CLK-Zyklen 64 und 65 aus dem Speicher 83 abgerufen und in das SSDR und das YCiVT-Register gesetzt. Der Inhalt des YCAT-Registers wird dann während der CLK-Zyklen 65 und 66 auf das DSDR übertragen und im Bestimmungsspeicher 84 an der momentan vom DSAR adressierten Position gespeichert. Während der CLK-Zyklen 66 und 67 wird der Inhalt der YSAR dann in der oben beschriebenen Art über den Addierer 88 um Γ erhöht, das Register YCNT wird erniedrigt und auf 0 geprüft. Dann wird das erste Y-Hinweisbyte abgerufen und in das Y-Register übertragen. Während der CLK-Zyklen 67 und 68 wird der Inhalt des DSAR um 1 erhöht. Während der Zylen68 und 69 wird das Hinweisbyte vom Y-Register auf das DSDR übertragen und im Bestimmungsspeicher 84 gespeichert. Dann wird in den CLK-Zyklen 69 und 70 der Inhalt des YCiVT-Registers auf die Addiererverriegelung 89 übertragen und auf 0 geprüft. Wenn der erniedrigte Inhalt des YCNT-Registers von 0 verschieden ist, wird der CLK-Zyklus 71F ausgeführt und damit der Inhalt des Registers YSAR erniedrigt und das nächste Y-Hinweisbyte abgerufen. Anschließend läuft der CLK-Zyklus 68 ab, und der Inhalt des DSAR wird erhöht.
209541/419
41 42
Wenn bei der Prüfung festgestellt wird, daß der einer etwas anderen aber gleichwertigen Folge, als sie
Inhalt des YCNT auf 0 erniedrigt ist, ist die Über- in Fig. 6B vorliegt.
tragung des !^-Hinweises beendet, und es läuft der In Fig. 15 wird während des COT-Zyklus 37T,
CLK-Zyklus 71T ab. Dann wird der Inhalt des 38 im Schritt 31A eine 1 zum Inhalt des Registers EA
YSAR und des DSAR in den CLK-Zyklen 71T und 5 addiert und das Ergebnis im Register FB gespeichert.
72 erhöht und so die Speicherung des nächsten Byte Es folgt eine unbedingte Verzweigung zum CLK-
in den Speichern 83 und 84 vorbereitet und das Zyklus 45, in welchem im Schritt 26 C der Inhalt des
2?ß-Register im CÜC-Zyklus 73 auf 0 gesetzt. Registers LA, der im CLX-Zyklus 37 T auf die
Am Ende des Schrittes 43 läuft wieder Schritt 11 Addiererverriegelung 89 übertragen wurde, auf 0 ab, und im CLÜT-Zyklus 0 wird das nächste UK-Paax io geprüft wird. Wenn LA von 0 verschieden ist, verabgerufen. Nach Übertragung des letzten Y-Hinweises zweigt Schritt 26 C zum CLK-Zyklus 46 F, der unim Schritt 43 enthält das YSAR die Adresse für das bedingt zum CLK-Zyklus 48 verzweigt. Wenn an-Zahlbyte (UK CT) des UK-Z in der jetzt abgeschlos- dererseits LA gleich 0 war, verzweigt der Schritt 26 C senen Operation. Somit enthält das Register YSAR zum CLX-Zyklus 46 T, der seinerseits den Inhalt des die Adresse für den UK-Y im nächsten ίΛΚ-Paar und 15 Registers EA auf den Addierer 88 überträgt. Im steht für den Anfang der nächsten Operation mit CLX-Zyklus 47 wird der in der Addiererverriegelung Eintritt in den Schritt 11 bereit. stehende Inhalt des ^-Registers in das Register FB
Ein zweites Ausführungsbeispiel der Erfindung ist geleitet und der Schritt 31B ausgeführt. Anschlie-
in der in den Fig. 15 und 15A bis 15F gezeigten ßend beginnt der Schritt48, und danach läuft die
Schaltungen wiedergegeben. Dieses Ausführungsbei- 20 Operation genauso weiter wie beim ersten Ausfüh-
spiel arbeitet mit einem größten Feldformat F (Fak- rungsbeispiel.
tor) für ein verdichtetes Verzeichnis, daß durch Ab- Die Fig. 15B zeigt Steuersignalablauf beim zwei-
laufdiagramm in F i g. 6 B erzeugt wird. Der Haupt- ten Ausführungsbeispiel. Dort sind nur die CLK-
unterschied zwischen den beiden Ablaufdiagrammen Zyklen im einzelnen gezeigt, die sich von den CLK-
in den Fig. 6A und 6B liegt hinter dem Ausgang 25 Zyklen des ersten in den Fig. 2Q-I bis 2Q-3 ge-
des Schrittes 30. In Fig. 6B wird das ^-Register zeigten Ausführungsbeispiels unterscheiden. Die in
dazu benutzt, den größten Wert für FB zu erzeugen, Fig. 15B gezeigten Zyklen ergeben die in Fig. 15A
während in Fig. 6A das Eß-Register zur Erzeugung gezeigten Schritte.
des kleinsten Wertes für FB dient. In Fig. 6B wird Fig. 15F zeigt die Änderung der in Fig. 2N gein einem Prüfschritt 26 der Inhalt des !^-Registers 30 zeigten Schaltung, die für die Nullprüfung benötigt untersucht und so bestimmt, ob zur Erzeugung von wird, welche die in den Fig. 15A und 15B gezeig- FB zum Inhalt des ß^-Registers eine 1 addiert werden ten Schritte und Zyklen erfordert. Die in F i g. 15 F muß oder nicht. Wenn LA verschieden von 0 ist, be- gezeigte Schaltung wird für die entsprechende Schalginnt der Schritt 31A, in welchem eine 1 zur Erzeu- tungl22 in Fig. 2N eingesetzt, und alle anderen gung von FB zu EA addiert wird. Wenn andererseits 35 Schaltungen der zuletztgenannten Figur werden un- LA 0 ist, was im Schritt 26C festgestellt wird, beginnt verändert übernommen. Fig. 15C ist ein Ersatz für der Schritt 31B, in welchem der laufende Inhalt des die Schaltungen in Fig. 2C-2, die für die nötige EA-Registers in das Fß-Register gespeichert wird. Die Ablaufsteuerungstaktierung beim zweiten Ausfühbeiden Schritte 31A und 31B münden in den Schritt rungsbeispiel benötigt werden. Das zweite Ausfüh-44 in F i g. 6 B. 40 rungsbeispiel übernimmt den Ablaufsteuerungstakt-In den Fig. 15A bis 15F ist die Steuerschaltung schalter der Fig. 2D und den zugehörigen Decodiefür das zweite Ausführungsbeispiel gezeigt, die die in rer in Fi g. 2 E unverändert. Außerdem wird im zweiden Schaltungen notwendigen Änderungen für das in ten Ausführungsbeispiel die in Fig. 15D gezeigte den Fig. 2A bis 2N gezeigte erste Ausführungsbei- Schaltung für die entsprechende Schaltung in der spiel enthält. Somit zeigt die Fig. 15 das Verfahren 45 Fig. 2F-I eingesetzt. Alle anderen Schaltungen in der Fig. 6B angewandt auf den in Fig. 1 gezeigten den Fig. 2F werden unverändert übernommen. Die Datenfluß. Die Fig. 15 unterscheidet sich von der in Fig. 15E gezeigte Schaltung ersetzt die entspre-Fig. 3 dadurch, daß an Stelle der Fig. 3C die chenden Schaltungen in den Fig. 2G-2 und über-Fig. 15A tritt. In Fig. 15 A erhält man den höchsten nimmt die übrigen Schaltungen in den Fig. 2G Fß-Wert durch die Schritte 31A, 26 C und 31B in 50 unverändert.
Hierzu 12 Blatt Zeichnungen

Claims (15)

Patentansprüche:
1. Verfahren zum Wiederauffinden gespeicherter Informationen in Verbindung mit einem Verfahren zur Erzeugung verdichteter Schlüssel aus einer Folge sortierter, verschiedenen Informationsgegenständen zugeordneter, unverdichteter Schlüssel, dadurch gekennzeichnet, daß aus der sortierten Folge nacheinander jeweils ein Schlüssel zusammen mit dem in der Sortierfolge xo nächstfolgenden Schlüssel aufgerufen' wird, daß , die in der Sortierfolge gleichwertigen ,Bytepositionen beider Schlüssel, beginnend mit der werthöchsten Byteposition, miteinander verglichen werden und dabei die werthöchste ungleiche Byteposition ermittelt wird, daß ein diese Byteposition kennzeichnender Code erzeugt wird und daß dieser Code als Teil eines einen der beiden Schlüssel kennzeichnenden und nur Schlüsselbytes aus höheren als der werthöchsten ungleichen Byteposition enthaltenden verdichteten Schlüssels gespeichert wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß in einem der beiden Schlüssel die Bytes von der werthöchsten bis zur höchsten ungleichen Position markiert werden und daß als Teil eines verdichteten Schlüssels nur Schlüsselbytes aus diesen markierten Positionen ausgewählt werden.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die Auswahl von Bytes aus einer niedrigeren als der höchsten ungleichen Byteposition im zweiten unverdichteten Schlüssel blockiert wird.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß mit dem verdichteten Schlüssel eine Hinweisadresse (Zeiger) auf die vom ersten der beiden unverdichteten Schlüssel repräsentierte Information gespeichert wird.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die höchste ungleiche Byteposition eines Schlüsselpaares bis nach der Erzeugung des nächsten verdichteten Schlüssels gespeichert wird.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß die Code zweier aufeinanderfolgender Schlüsselpaare verglichen werden und ein Vergleichersignal abgegeben wird, das angibt, ob der jeweilige Code niedriger, gleich oder höher als der vorhergehende Code ist, und daß in Abhängigkeit davon ein entsprechender verdichteter Schlüssel erzeugt wird.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß bei einem Vergleichersignal, das anzeigt, daß der jeweilige Code niedriger als der vorhergehende Code ist, ein diesen Code, aber keine Schlüsselbytes enthaltender verdichteter Schlüssel erzeugt wird.
8. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß bei einem Vergleichersignal, das anzeigt, daß der jeweilige Code gleich dem vorhergehenden Code ist, nur ein Schlüsselbyte der höchsten ungleichen Byteposition des zweiten Schlüssels des jeweiligen Schlüsselpaares ausgewählt wird.
9. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß bei einem Vergleichersignal, das anzeigt, daß der jeweilige Code gleich dem vorhergehenden Code ist, das Vorhandensein eines Schlüsselbytes im vorhergehenden verdichteten Schlüssel abgefühlt wird, und daß auf Grund dieser Abfühlung ein verdichteter Schlüssel ohne Schlüsselbytes erzeugt wird, der den ersten der beiden unverdichteten Schlüssel kennzeichnet.
10. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß bei einem Vergleichersignal, das anzeigt, daß der jeweilige Code gleich dem vorhergehenden Code ist, das Fehlen eines Schlüsselbytes im vorhergehenden Code abgefühlt und auf Grund dieser Abfühlung ein verdichteter Schlüssel erzeugt wird, der mindestens ein Schlüsselbyte von der höchsten ungleichen Byteposition des zweiten der beiden unverdichteten Schlüssel aufweist.
11. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß bei einem Vergleichersignal, das anzeigt, daß der jeweilige Code größer als der vorhergehende Code ist, abgefühlt wird, ob im vorhergehenden verdichteten Schlüssel wenigstens ein Schlüsselbyte vorhanden ist.
12. Verfahren nach den Ansprüchen 6 oder 11, dadurch gekennzeichnet, daß bei einem Vergleichersignal, das anzeigt, daß der jeweilige Code größer als der vorhergehende Code ist, ein verdichteter Schlüssel für den zweiten unverdichteten Schlüssel eines Schlüsselpaares erzeugt wird, wobei die Bytepositionen von der höchsten ungleichen Byteposition des vorhergehenden Schlüsselpäares bis zu der höchsten ungleichen Byteposition des anstehenden Schlüsselpaares verwendet werden.
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß das Fehlen eines Schlüsselbytes im vorhergehenden verdichteten Schlüssel abgefühlt wird und daß ein verdichteter Schlüssel für den zweiten unverdichteten Schlüssel eines Schlüsselpaares erzeugt wird, wobei die Bytepositionen von der höchsten ungleichen Byteposition des vorhergehenden Schlüsselpaares bis zu der höchsten ungleichen Byteposition des anstehenden Schlüsselpaares verwendet werden.
14. Verfahren nach den Ansprüchen 1 bis 13, dadurch gekennzeichnet, daß ein Kontrollfeld vorgesehen wird, das einen der Anzahl der nicht durch Schlüsselbytes dargestellten hohen Bytepositionen des anstehenden verdichteten Schlüssels entsprechenden Codewert enthält, daß dieser Wert aber nicht größer ist als die Anzahl der Bytes bis zur höchsten ungleichen Byteposition.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß in das Kontrollfeld ein Code gestellt wird, der die Anzahl der Schlüsselbytes im jeweiligen verdichteten Schlüssel angibt.
DE19691964570 1969-01-03 1969-12-23 Verfahren zum wiederauffinden gespeicherter informationen Ceased DE1964570B2 (de)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
DE1964570A1 DE1964570A1 (de) 1970-07-16
DE1964570B2 true DE1964570B2 (de) 1972-10-05

Family

ID=25145616

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19691964570 Ceased DE1964570B2 (de) 1969-01-03 1969-12-23 Verfahren zum wiederauffinden gespeicherter informationen

Country Status (5)

Country Link
US (1) US3593309A (de)
JP (1) JPS4939850B1 (de)
DE (1) DE1964570B2 (de)
FR (1) FR2027736A1 (de)
GB (1) GB1280483A (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3670310A (en) * 1970-09-16 1972-06-13 Infodata Systems Inc Method for information storage and retrieval
US3701111A (en) * 1971-02-08 1972-10-24 Ibm Method of and apparatus for decoding variable-length codes having length-indicating prefixes
CA1071332A (en) * 1974-05-01 1980-02-05 Toshio Kashio Data processing system
GB2060226A (en) * 1979-10-02 1981-04-29 Ibm Data compression-decompression
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
US5276868A (en) * 1990-05-23 1994-01-04 Digital Equipment Corp. Method and apparatus for pointer compression in structured databases
US5270712A (en) * 1992-04-02 1993-12-14 International Business Machines Corporation Sort order preserving method for data storage compression
US5590317A (en) * 1992-05-27 1996-12-31 Hitachi, Ltd. Document information compression and retrieval system and document information registration and retrieval method
CA2125337A1 (en) * 1993-06-30 1994-12-31 Marlin Jay Eller Method and system for searching compressed data
US5832499A (en) * 1996-07-10 1998-11-03 Survivors Of The Shoah Visual History Foundation Digital library system
US6353831B1 (en) 1998-11-02 2002-03-05 Survivors Of The Shoah Visual History Foundation Digital library system
GB2369695B (en) * 2000-11-30 2005-03-16 Indigo One Technologies Ltd Database
US7203431B2 (en) * 2003-12-26 2007-04-10 Ricoh Company, Ltd. Abnormality determining method, abnormality determining apparatus, and image forming apparatus
GB2424722A (en) * 2005-03-21 2006-10-04 Think Software Pty Ltd Method and apparatus for generating relevance sensitive collation keys

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3275989A (en) * 1961-10-02 1966-09-27 Burroughs Corp Control for digital computers
US3185824A (en) * 1961-10-24 1965-05-25 Ibm Adaptive data compactor
DE1162398B (de) * 1961-10-24 1964-02-06 Ibm Verdichter fuer Daten, die aus Bits verschiedener Wertigkeit bestehen
US3225333A (en) * 1961-12-28 1965-12-21 Ibm Differential quantitized storage and compression
US3223982A (en) * 1962-04-06 1965-12-14 Olivetti & Co Spa Electronic computer with abbreviated addressing of data
DE1249924B (de) * 1962-07-17
US3289169A (en) * 1962-09-27 1966-11-29 Beckman Instruments Inc Redundancy reduction memory
US3278907A (en) * 1964-02-17 1966-10-11 Hughes Aircraft Co Time compressor
US3490690A (en) * 1964-10-26 1970-01-20 Ibm Data reduction system
US3413611A (en) * 1966-01-17 1968-11-26 Pfuetze David Method and apparatus for the compaction of data
US3422403A (en) * 1966-12-07 1969-01-14 Webb James E Data compression system

Also Published As

Publication number Publication date
DE1964570A1 (de) 1970-07-16
GB1280483A (en) 1972-07-05
US3593309A (en) 1971-07-13
FR2027736A1 (de) 1970-10-02
JPS4939850B1 (de) 1974-10-29

Similar Documents

Publication Publication Date Title
DE1964570B2 (de) Verfahren zum wiederauffinden gespeicherter informationen
DE2513862C2 (de) Vorrichtung zum Decodieren von Codes minimaler Redundanz und variabler Länge
DE2210044C2 (de) Verfahren zum Umsetzen von Codewörtern
DE3711200C2 (de)
DE2227148C3 (de) Schaltungsanordnung zur Umsetzung digitaler Daten
DE1499225C3 (de) Schaltungsanordnung zur Reduzierung von Datenwortlängen
DE2264090A1 (de) Datenverdichtungssystem
DE2551238C3 (de) Datenkonzentrator
DE2139731A1 (de) Anordnung und Verfahren zur Code Um Setzung mit einem Assoziativ Speicher
DE2521436B2 (de) Informationswiedergewinnungsanordnung
DE2457732A1 (de) Verfahren und anordnung zur codierung und decodierung von information
DE1449765B2 (de) Einrichtung zur Abfrage eines assoziativen Speichers
DE3545125A1 (de) Zeichenfolgen-komparator
DE2208664A1 (de) Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge
DE1449544A1 (de) Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk
DE2053341A1 (de) Verfahren zur Kompression und Dekompression digital kodierter Daten für graphische Zeichen
DE2005806C3 (de) Datenspeicherungs- und Sichtvorrichtung
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE2906923C2 (de) Speichergesteuerte, kraftangetriebene Schreibmaschine
DE2014325A1 (de) Elektronische Rechenmaschine
DE2721527A1 (de) Mikrofilm-suchlesegeraet
DE2006672B2 (de) Datensichtgerät
DE2525394C3 (de) Verfahren und Schaltungsanordnung zum Übertragen, Einspeichern und Ausspeichern von binärcodierten Datenblöcken
EP0427884A1 (de) Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten
DE2848371A1 (de) Elektronisches woerterbuch

Legal Events

Date Code Title Description
SH Request for examination between 03.10.1968 and 22.04.1971
BHV Refusal