DE1964570B2 - Verfahren zum wiederauffinden gespeicherter informationen - Google Patents
Verfahren zum wiederauffinden gespeicherter informationenInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 84
- 230000015654 memory Effects 0.000 description 66
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 61
- 238000012360 testing method Methods 0.000 description 12
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 230000000295 complement effect Effects 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 5
- 108010076504 Protein Sorting Signals Proteins 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 230000008021 deposition Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000036651 mood Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000501754 Astronotus ocellatus Species 0.000 description 1
- 101150038243 CLOCK gene Proteins 0.000 description 1
- MFYMBIZGFDNLPT-UHFFFAOYSA-N CTBT Chemical compound N1=NC2=NN=NN2C2=CC=C(Cl)C=C21 MFYMBIZGFDNLPT-UHFFFAOYSA-N 0.000 description 1
- 101100328957 Caenorhabditis elegans clk-1 gene Proteins 0.000 description 1
- 101100113692 Caenorhabditis elegans clk-2 gene Proteins 0.000 description 1
- 102100040856 Dual specificity protein kinase CLK3 Human genes 0.000 description 1
- 101150087426 Gnal gene Proteins 0.000 description 1
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 1
- 101000749304 Homo sapiens Dual specificity protein kinase CLK3 Proteins 0.000 description 1
- 101100004969 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CAT2 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000001629 sign test Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
- G06F16/902—Indexing; 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-
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,
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
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.
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
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
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] ζ ζ ζ Ζ ζ ζ ζ
■ 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.
In der folgenden Tabelle I ist ein Beispiel für CK mit den kleinsten X-Feldern gegeben.
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.
υκ
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
Ferris, Raymond W
11
3 9 1 1
2 1 1 0
2 2 3 1
2 2 8
12
0
7
0
1
7
0
1
1
0
1
0
0
1
0
3
1
1
0
1
1
0
2
1
6
1
6
Engelhard, L
lish, J
lish, J
s
P
P
Farn
en
r
ris, R
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.
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.
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
3
2
1
2
3
1
1
3
1
1
2
3
2
3
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.
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
3
3
7
8
6
2
5
O
2
5
2
O
O
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
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-
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
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.
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
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
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-
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-
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
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 (DB — 1) 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
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)
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.
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)
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)
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 |
-
1969
- 1969-01-03 US US788807A patent/US3593309A/en not_active Expired - Lifetime
- 1969-12-22 JP JP44102590A patent/JPS4939850B1/ja active Pending
- 1969-12-23 DE DE19691964570 patent/DE1964570B2/de not_active Ceased
- 1969-12-30 GB GB63202/69A patent/GB1280483A/en not_active Expired
- 1969-12-30 FR FR6945785A patent/FR2027736A1/fr not_active Withdrawn
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 |