DE1964570A1 - Verfahren zum Wiederauffinden gespeicherter Informationen - Google Patents
Verfahren zum Wiederauffinden gespeicherter InformationenInfo
- Publication number
- DE1964570A1 DE1964570A1 DE19691964570 DE1964570A DE1964570A1 DE 1964570 A1 DE1964570 A1 DE 1964570A1 DE 19691964570 DE19691964570 DE 19691964570 DE 1964570 A DE1964570 A DE 1964570A DE 1964570 A1 DE1964570 A1 DE 1964570A1
- 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 82
- 230000015654 memory Effects 0.000 description 61
- 230000006835 compression Effects 0.000 description 11
- 238000007906 compression Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 7
- 230000000295 complement effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 108010076504 Protein Sorting Signals Proteins 0.000 description 6
- 230000003247 decreasing effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 241000501754 Astronotus ocellatus Species 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 101100328957 Caenorhabditis elegans clk-1 gene Proteins 0.000 description 2
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005755 formation reaction Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101100113692 Caenorhabditis elegans clk-2 gene Proteins 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 241001122767 Theaceae Species 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000008021 deposition Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 229940119265 sepp Drugs 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000010409 thin film Substances 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
Verfahren zum Wiederauffinden gespeicherter Infοr-iaationen
Die Erfindung betrifft ein Verfahren zum ti?i@ds:£ auffinden gespeicherter
Informationen in Verbindung mit @iae»B ¥©i*fahren zur
Erseugung yerdichteter Schlüssel aus eines' Folg© sortierter,
verschiedenen Informationsgegenstäsiden zug<s@TänQt®%0 unverrichteter
Schlüssel«
allgemein handelt es sich hei ein Verfallen zvm Ifiederauf»
finden von in geeigneter Weise gespeieheri©sa Isaf© Stationen, die
in Form eines Verzeichnisses sortiert sind«
fall aa In
formationen verschiedenster Art ist ständig iai Wachsen begriffen*
Selbstverständlich erhöht sich dadurch auch die Anzahl der Fälle»
in denen eine in der Masse von Informationen.enthaltene Information
nicht mehr mit der erforderlichen Geschwindigkeit wieder-
009829/U15
aufgefunden werden kann. Obgleich bereits große Anstrengungen
hinsichtlich einer optimalen Lösung dieses Problems unternommen ' wurden, ist bisher noch kein grundsätzlicher Weg bekannt geworden,
der das Wiederauffinden von Informationen aus einer großen Anzahl von Dokumenten oder Aufzeichnungen in gewünschter Weise erlaubt.
Das erfindungsgemäße Verfahren zeigt einen brauchbaren Weg zur
maschinellen Lokalisierung von mittels Schlüsseln oder Kennworten registrierten Informationen. Die Erfindung gestattet es, jegliche
Art alphanumerischer Schlüssel, die in einer sortierten Folge angeordnet sind, in verdichtete Schlüssel umzuwandeln und in dieser
Form auch wieder zu suchen. Jeder verdichtete Schlüssel liefert eine Abgrenzung für den unverdichtetei: Schlüssel, den er repräsentiert.
Eine örtliche Besiimr\ung für die dem Schlüs-sel zugeordnete Information kann einer hinzugefügten Adresse, einem söge-
nannter Zeige; qumt c!©m Schlüssel seihst entnommen werden.
" Verfahren und Einrichtungen zum Wiederauffinden toe Informationen^
die in unverdienteteτ sortierter Folge registriert sind, sind im
großer 2ahl bekannt« Bei diesen Verfall?en werden Computer eingesetzt,
wobei spezielle Zugriffsmet ho den» und elektronische .Katalogisierung
angewandt werden. Als Stand der Technik auf dies©ai
Gebiet ,sind insbesondere die US-Patents 3.408.631, 3.5JS.233..
3.366.928, 3.242*470 und 3.030.609 zu erwähnen*
Die gegenwärtig gebräuchlichen, mit Computern arbeitenden Ve*»
Docket PO 968 024 A 009829/1*1«
BAD ORIGINAL
fahren weisen in vieler Hinsicht Mängel auf. Ein wesentlicher Mangel ergibt sich aus dem großen Bedarf an Speicherkapazität.
Die unverdichteten Schlüsselformate bedingen, daß bei jedem Zugriff eine große Anzahl von Bytes in jedem Schlüssel abgetastet
werden muß. Diese Verfahren sind demnach zeitlich und kostenmäßig sehr aufwendig, wenn ein großer Index abgesucht oder auch wenn
ein kleiner Index wiederholt abgesucht werden muß. Die Erfindung vermeidet diese Mängel, da durch sie die Anzahl der abzutastenden
Bytes je Zugriff wesentlich herabgesetzt wird. Auf diese Weise wird der Bedarf an Speicherkapazität und die Suchzeit wesentlich
herabgesetzt.
Bei der gegenwärtigen, Computer verwendenden Suchtechnik, wie sie
in den angegebenen US-Patentsehriften beschrieben ist, sind den
auf Magnetplatten- oder Magnettrommelspeichern gespeicherten Dokumenten zum Zwecke der Indexierung unverdichtete Schlüssel zugeordnet. Eine Suche nach einem Dokument kann über den Schlüssel
oder über die Adresse des Dokumentes erfolgen. Beispielsweise sind in den US-Patentschriften 3.408.631, 3.350.693, 3.343.134,
3.344.402, 3.344.403 und 3.344.405 unverdichtete Schlüssel auf Magnetplattenspeichern registriert. Ein besimmter Schlüssel kann
durch Vergleich mit einem entsprechenden Suchargument ermittelt werden. Sobald Gleichheit zwischen Schlüssel und Suchargument
festgestellt wird, wird eine mit dem unverdichteten Schlüssel
gespeicherte Hinweisadresse dazu verwendet, das an einer anderen
Stelle des Speichers gespeicherte Dokument abzurufen.
Docket PO 968 024 A 009828/141S
Das erfindungsgemäße Verfahren zum Wiederauffinden gespeicherter
Informationen verwendet dagegen verdichtete Schlüssel, bei denen die durch die Indexierung vorhandene Redundanz entfernt ist.
Auf dem Gebiet der Beseitigung von Redundanz durch Maßnahmen zur Informationsverdichtung sind mehrere Methoden bekannt· Die
US-Patente 2.978.535 und 3.225.333 betreffen beispielsweise die fc Verdichtung von digitalisierten Fernsehsignalen. Die US-Patente
3.185.824 und 3.237.170 zeigen Verfahren, bei denen die Anzahl
der Nichtübereinstimmungen zwischen aufeinanderfolgenden Verläufen digitaler Obertragungssignale festgestellt wird. Das US-Patent
3.237.170 verwendet Maßnahmen zur Codierung sich wiederholender Bitmuster. Das US-Patent 3.275.989 befaßt sich mit Befehlen, die
jeweils nur den Teil enthalten, der sich vom vorhergehenden Befehl unterscheidet. In entsprechender Weise betrifft US-Patent 3.233.
982 ein Verfahren, bei dem bei einer Adresse jeweils nur der Teil
verwendet wird, der sich von der vorhergehenden Adresse unter-
scheidet.
Diese bekannten Maßnahmen bedienen sich größtenteils einer Informationsverdichtung, die reversierbar sein soll. Die Informationen
werden zunächst verdichtet, dann übertragen und schließlich wieder in ihre originale, unverdichtete Form gebracht. Dagegen befaßt
sich die Erfindung mit einem Verfahren zur Beseitigung von durch Sortiermaßnahmen hervorgebrachter Redundanz, wobei die Forderung
der Reversierbarkeit nicht besteht.
Docket PO 968 024 A 0 0 9 8 2 9/1416
■ ~ 5 "
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zum Wiederauffinden
gespeicherter Information anzugeben, wobei in erster Linie Wert darauf gelegt wird, mit einem Minimum an Speicherkapazität
und ebenso mit einem Minimum an Suchzeit auszukommen.
Zur Lösung dieser Aufgabe wird gemäß der Erfindung ein Verfahren zum Wiederauffinden gespeicherter Informationen in Verbindung mit
einem Verfahren zur Erzeugung verdichteter Schlüssel aus einer Folge sortierter, verschiedenen Informationsgegenständen zugeordneter,
unverdichteter Schlüssel derart vorgeschlagen, daß aus
der sortierten Folge nacheinander jeweils ein Schlüssel zusammen mit dem nächstfolgenden Schlüssel aufgerufen wird, daß die in der
Sortierfolge gleichwertigen Bytepositionen beider Schlüssel miteinander verglichen werden und dabei die höchst© uagleiehe Byteposition
ermittelt wird, daß ein diese Byteposition kennzeichnender Code erzeugt wird und daß dieser Code als Teil ©im@s einem
der beiden Schlüssel zugeordneten verdichteten Schlüssels gespeichert wird.
Vorteilhafte Ausgestaltungen des erfindungsgemäßsn Verfahrens ergeben sich aus den nachstehenden Einze!maßnahmen.a
Es werden in Einern der beiden Schlüssel die Bytes υθώ der werthöchsten bis zur höchsten ungleichen Position markiert und es
werden als Teil eines verdichteten Schlüssels nur Schlüsselbytes aus diesen markierten Positionen ausgewählt.
po 968 024 A 00 98 29/1415
Die Auswahl von Bytes aus einer niedrigeren als der höchsten ungleichen
Byteposition im zweiten unverdichteten Schlüssel wird blockiert.
Mit dem verdichteten Schlüssel wird eine Hinweisadresse (Zeiger)
auf die vom ersten der beiden unverdichteten Schlüssel repräsentierte
Information gespeichert.
Die höchste ungleiche Byteposition eines Schlüsselpaares wird bis nach der Erzeugung des nächsten verdichteten Schlüssels gespeichert·
Die Code zweier aufeinanderfolgender Schlüsselpaare werden verglichen
und es wird ein Vergis ichersignal abgegeben, das angibt,
ob der jeweilige Code niedriger, glsich oder höher als der vorhergehend®
Code ist, und es wird in Abhängigkeit davon ein entsprechender verdichteter Schlüssel erzeugt.
Bei einem Vergleichersignal, das angibt, daß der jeweilige Code niedriger als der vorhergehende Code ist, wird ein diesen Code,
aber keine Schlüsselbytes enthaltender verdichteter Schlüssel erzeugt*
Bei einem Vergleichersignal, das anzeigt, daß der jeweilige Code gleich den vorhergehenden Code ist» wird nur ein Schlüsselbyte der
höchsten ungleichen Byteposition des zweiten Schlüssels des je-Docket
PO 968 024 A 008829/1416
weiligen Schlüsselpaares ausgewählt·
Bei einem Vergleichersignal, das anzeigt» daß der jeweilige Code
gleich dem vorhergehenden Code ist, wird das Vorhandensein eines Schlüsselbytes im vorhergehenden verdichteten Schlüssel abgefühlt,
und es wird aufgrund dieser Abfühlung ein verdichteter Schlüssel ohne Schlüsselbytes erzeugt, der den ersten der beiden unverdichteten Schlüssel kennzeichnet.
Bei einem Vergleichersignal, das anzeigt, daß der jeweilige Code
gleich dem vorhergehenden Code ist, wird das Fehlen eines Schlüsselbytes im vorhergehenden Code abgefühlt und aufgrund dieser
Abfühlung ein verdichteter Schlüssel erzeugt, der mindestens ein Schlüsselbyte in der höchsten ungleichen Byteposition des
zweiten der beiden unverdichteten Schlüssel aufweist.
Bei einem Vergleichersignal, das anzeigt, daß der jeweilige
Code größer als der vorhergehende Code ist, wird abgefühlt, ob im vorhergehenden verdichteten Schlüssel wenigstens ein Schlüsselbyte vorhanden ist. Bei einem Vergleichersignal, das anzeigt,
daß der jeweilige Code größer als der vorhergehende Code ist, wird ein verdichteter Schlüssel für den zweiten unverdichteten
Schlüssel eines Schlüsselpaares erzeugt, 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.
Docket PO 968 024 A 009829/1415
Das Fehlen eines Schlüsselbytes im vorhergehenden verdichteten Schlüssel wird abgefühlt und es wird ein verdichteter Schlüssel
für den zweiten unverdichteten Schlüssel eines Schlüsselpaares erzeugt, 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.
Es wird ein Kontrollfeld vorgesehen, das einen der Anzahl der
nicht durch Schlüsselbytes dargestellten hohen Bytepositionen des anstehenden verdichteten Schlüssels entsprechenden Codewert enthält, wobei diese Anzahl aber nicht größer ist als die Anzahl der
Bytes bis zur höchsten ungleichen Byteposition.
Zn das Kontrollfeld wird ein Code gestellt, der die Anzahl der Schlüsselbytes im jeweiligen verdichteten Schlüssel angibt.
Die beim erfindungsgemäßen Verfahren erzeugten verdichteten Schlüs
sei gewährleisten eine optimale Beseitigung der durch Sortiermaßnahmen hervorgebrachten Redundanz, so daß für die Abspeicherung der erzeugten verdichteten Schlüssel nur eine relativ geringe Speicherkapazität benötigt wird. Gleichzeitig wird beim
Suchvorgang eine hohe Geschwindigkeit erzielt, da jeweils nur relativ wenige Bytes abgefragt werden müssen.
Docket PO 968 024 A 0 0 9 8 2 9/1415
Die Erfindung wird im folgenden anhand eines Ausführungsbeispiels und der zugehörigen Zeichnungen näher erklärt. Es zeigen:
Fig. 1 den Datenfluß in einem ersten Ausführungsbeispiel der Erfindung,
Fig. 2A schematisch eine Folge- und Verzweigungssteuerung für das in Fig. 1 gezeigte Ausführungsbeispiel,
Fign. 2B-1
und 2B-2 eine Taktgeberschaltung und Taktimpulse für das
Ausführungsbeispiel der Fig. 2A9
Fign. 2C-1
bis 2N ein Ausführugsbeispiel der in der Folg©- und Verzweigungssteuerung
der Fig. 2 verwendeten Schaltungen,
Fign. 2Q-1
bis 2Q-3 in einer Tabelle den Steuersignalablauf für ein
Beispiel von Steuersignalen, die erzeugt werden, um die in Fig. 1 gezeigte Datenbahn nach
dem in Fig. 3 gezeigten Verfahren durchzuschalten,
Fign. 3A
bis 3F ein genaues Ablaufdiagramm eines erfindungsgemäßen
Fig. 4 bestimmte Grundmerkmale eines in der vorliegenden Erfindung verwendeten ÜK-Paares,
Fig. 5 bestimmte Grundmerkmale zweier in der vorliegenden
Erfindung verwendeter nebeneinanderliegenden UK-Paare,
Fig. 6A ein Ausführungsbeispiel eines erfindungsgemäßen
Verfahrens für die in Fig. 1 gezeigte Datenbahn,
Fig. 6B ein anderes erfindungsgemäßes Verfahren für die in
Fig. 1 gezeigte Datenbahn,
Fig. 7 das in Fig. 6A gezeigte Verfahren mit CK-Indexblockbildung,
Docket PO 968 024 A 009829/1416
Fign. 8A, B + C sortierte UK-Folgen, bei denen die CK1s nach
links, rechts oder überhaupt nicht verschoben sind,
Fig. 9 eine sortierte UK-Folge und eine daraus erzeugte
CK-FoIge mit maximaler Byteverdichtung,
Fig. 10 eine sortierte UK-Folge und eine daraus erzeugte CK-Folge, in welcher jeder nichtverschobene Schlüssel
ein K-Byte hat,
Fig. 11 ein anderes erfindungsgemäßes Verfahren für die
Datenbahn in Fig 1,
Fign. 12A
bis 12C weitere Varianten des erfindungsgemäßen Verfahrens,
Fig. 13 schematisch das Aufzeichnungsformat für eine sortierte UK-Folge,
Fig. 14A das Aufzeichnungsformat für eine erzeugte CK-Folge,
Fign. UB
bis 14E verschiedene Aufzeichnungsformate verdichteter
Schlüssel,
Fig. 15 die Zugehörigkeit der Fig. 15A zu den Fign. 3A, B und 3D-F,
Docket PO 968 024 A 0 0 9 8 2 9/1416
Fig. 15A schematisch ein weiteres Ausführungsbeispiel der Erfindung,
Fig. 15B eine Tabelle mit der Steuersignalfolge für ein anderes Ausführungsbeispiel und
Fign. 15C
bis 15F Änderungen der in den Fign. 2C-2 bis 2N gezeigten
Schaltungen für ein anderes Ausführungsbeispiel
" der Folge- und Verzweigungssteuerung zur Erzeugung
der Steuersignalfolge in Fig. 15B.
Das Verfahren zur Erzeugung verdichteter Schlüssel wird auf eine Reihe von Indexschlüsseln angewandt, die in normaler nichtverdichteter
Form in sortierter Reihenfolge stehen. Sie können in aufsteigender oder absteigender Reihenfolge sortiert und unterschiedlich
lang sein. An jeden Schlüssel kann eine zusätzliche Information wie z.B. eine Hinweisadresse angehängt werden, die
entweder direkt oder indirekt eine Aufzeichnung lokalisiert, zu welcher der entsprechende Schlüssel gehört.
Fig. 4 zeigt zwei nebeneinanderliegende Schlüssel in einer nichtverdichteten Indexreihe, in der die nichtverdichteten
Schlüssel (UK's) x...x und y...y zwei aufeinanderfolgende Schlüssel in der sortierten Folge sind. Jeder Schlüssel besteht
aus mehreren Bytes (Zeichen). Die X's und Y's in den entsprechenden
UK's stellen ihre Byteposition dar, die sich zahlenmäßig
Docket PO 968 024 A 0 0 9 8 2 9/ 1 4 1 B
■ - 13 -
in den verschiedenen UK*s ändern kann. Die Bytepositionen ändern
sich in ihrer Bedeutung während der Sortieroperation von der äußersten linken Byteposition mit der größten Bedeutung zur
äußersten rechten Byteposition mit der kleinsten Bedeutung. Die Schlüssel sind in Fig. 4 nach den äußersten linken Bytes
ausgerichtet dargestellt, welche sowohl in der Sortierfolge als auch für die vorliegende Erfindung die wichtigsten Bytes
sind. Die Bytes in jedem Schlüssel nehmen in Bezug auf diese Erfindung in ihrer Bedeutung genauso ab, wie sich ihre Position
in einem Schlüssel von links nach rechts verschiebt.
Das erfindungsgemäße Verfahren liefert verdichtete Schlüssel
(CK*s) mit Hilfe einer Folge von Vergleichen zwischen nebeneinanderstehenden
UK's in einem Register oder Unterregisterβ Ein
derartiger Vergleich wird zwischen dem Paar (j«f) und j und dann zwischen dem nächsten Paar j und (j+1) duyehgeführt. Somit
ist jeder UK mit Ausnahme des ersten und des letzten der zweite UK eines Vergleichspaares und a8ßerd@m d©r
erste UK des nächsten Vergleichspaares. Jeder Vergleich erfolgt
zwischen den Bytepositionen mit derselben Sortiarwertigkeit,
d.h. die am weitesten links stehenden X- und Y-Bytes werden
verglichen, dann werden die iron links gesehen auf dew zwaiten
Stelle stehenden Bytes verglichen usw. Als Ergebnis dieser Byfcevergleiche
ergibt sich dann einmal ein Vergleich^ bei dem Ungleich«
heit festgestellt wird, da sich jeder Schlüssel im· Register ab
einer bestimmten Position von jedem anderen Schlüssel unterscheidet«
Ein derartiger Unterschied in einen Verzeichnis kann z.B.
Q09829/U16
- 14 bei identischen Namen in den Adressen festgestellt werden.
Jeder UK-Vergleich braucht nicht über die am weitesten links
stehende Byteposition D mit einem ungleichen Vergleichsergebnis hinauszugehen. Die ungleiche Byteposition D kann die am weitesten
links stehende oder jede andere Byteposition sein. Ist es nicht die am weitesten links stehende Position, weist der Schlüssel
gleiche Bytes (E) auf seiner linken Seite auf. Die wertniedrigeren Bytepositionen rechts von der ungleichen Byteposition D werden
als Leerbytes N bezeichnet, da sie für die Erzeugung der verdichteten
Schlüssel nicht erforderlich sind.
Somit sind bei einem Vergleich nebeneinanderstehender nichtverdicliteter
Schlüssel entweder ksine odsr alle ßytepositionen mit Ausnahme der wertniedrigstsn Byteposition gleiche Positionen "E".
Bei den meisten UK-Paaren liegt die Differenzbyteposition (D)
hea deia äußersten linken und dem äußersten rechten Byte.
Oft haben zwei miteinander verglichen® Schlüssel χ··*χ und
y*,.y unterschiedliche Bytelängen. In diesem Fall ist das erste
Byte des längeren Schlüssels» welches jenseits der wsrtniedrig«
sten Byteposition des kürzeren Schlüssels steht, gemäß Definition eine ungleiche Byteposition. Dieser ungleiche Bytevergleich
bewertet das Byte vom längeren Schlüssel höher als das Fehlen eines Bytes aus dem kürzeren Schlüssel· Sobald diese Situation
BAD ORIGINAL
si«tritt, kann angenommen werden, daß der kürzere Schlüssel auf
seiner rechten Seite das niedrigste Byte der verwendeten Sortierfolge hat, z.B. ein Leerbyte.
In Fig. 4 wird angenommen, daß für den nichtverdichteten Index eine aufsteigende Sortierung verwendet wird. Wenn eine absteigende
Sortierung verwendet wird, sind im Ausführungsbeispiel die Operationen "größer als" und "kleine'r als" zu vertauschen.
Fig. 4 zeigt einen Vergleich A zwischen Ukx und UKy, die in der unverdichtet sortierten Indexfolge die Positionen (j-1) und j einnehmen.
Diese Positionen werden mit E., die werthöchste ungleiche Byteposition mit D und die Leerbytes mit N bezeichnet.
•Tv A.
Fig. 5 zeigt den nächstfolgenden Vergleich B zwischen UKy und UKz, die das nächste Paar aus den Indexpositionen j und
(j+1) bilden.
Der Vergleich B benutzt den zweiten nichtverdichteten Schlüssel y...y des vorhergehenden Vergleiches als den ersten nichtverdichteten
Schlüssel. Der nichtverdichtete Schlüssel z...z
Q09823/U15
Docket PO 968 024 A
Docket PO 968 024 A
folgt somit unmittelbar dem nichtverdichteten Schlüssel y...y
in der Sortierfolge der nichtverdichteten Schlüssel.
Die Beschriftungen A und B in den Fign. 4 und 5 stellen je zwei aufeinanderfolgende Vergleiche dar, aus denen die entsprechenden
Werte E, D und N abgeleitet werden.
Die Erfindung setzt die Differenzbytepositionen (D) in zwei aufeinanderfolgenden Vergleichen in Beziehung zueinander.
Dabei gibt es drei Möglichkeiten, die in der Fig. 5 durch die
Fälle I, II und III dargestellt sind. Im Falle I liegt die Differenzbyteposition Dß auf derselben Stelle wie die
Differenzbyteposition D. im unmittelbar vorhergehenden Vergleich. Im Falle II steht das Differenzbyte an der gegenüber
DA in Fig. 4 werthöheren Byteposition D . In diesem Fall ist D
gegenüber DÄ nach links verschoben. Im Falle III steht das
v Differenzbyte auf der Position Dß auf einer wertniedrigeren
Stelle als das Differenzbyte auf der Position D. in Fig. 4· In diesem Falle ist also D relativ zu D nach rechts verschoben.
Da sich die Lage der Differenzbyteposition D7, relativ zur vorher-
gehenden Differenzbyteposition D ändert, ändert sich natürlich
Docket PO 968 O24 A 009829/1416
auch die Anzahl der gleichen Bytepositionen E_ und die Anzahl
der Leerbytes N entsprechend. Da die Differenzbyteposition D immer eine Stelle rechts neben den gleichen Bytepositionen
steht, ist D a E+1.
Jeder UK in einer Indexfolge stellt eine Dateneinheit dar. Jede dieser UK-Dateneinheiten muß in einer erzeugten Folge
von verdichteten Schlüsseln (CK's) repräsentiert werden. Der
j-ste CK stellt die Informationseinheit dar, die durch den
j-sten UK wiedergegeben wird.
Jeder Vergleich des j und des j+1 UK1S erzeugt den
j CK, wozu bestimmte Informationen benutzt werden, die aus dem unmittelbar vorhergehenden Vergleich des j-1 UK's und
des j UK's abgeleitet werden. Der Vergleich hängt von der Information des unmittelbar vorhergehenden Vergleiches
ab, wobei die wichtigste Information die Position D ist, die während des vorhergehenden Vergleiches bestimmt wurde.
Außerdem kann eine Information darüber benötigt werden, ob die vorhergehenden CK-Bytes O waren oder nicht. Die Information
über die D -Position-kann auf die verschiedenste Weise gegeben
A-werden, z.B. indem die Bytezahl gezählt von der werthöchsten
Stelle angegeben wird oder indem die Anzahl gleicher Positionen (E.) angegebnen wird, die während desselben Vergleiches festgestellt
wurde, da die D.-Position um ein Byte höh@r ist als der
E -Wert. Wenn das srste UK»Paar verglichen wird, wird angenommen,
daß vor diesem ersten Vergleich Anfangsbedingungen vor-
lagen*
Der erste Vergleich beginnt vorzugsweise mit einem Vergleich zwischen den beiden ersten UK's in der sortierten Reihenfolge.
Dieser erste Vergleich dient der Erzeugung des ersten verdichteten Schlüssels. (CK), der die durch den ersten unverdichteten
Schlüssel (UK) dargestellte Information wiedergibt. Bei dem folgenden zweiten Vergleich des zweiten mit dem dritten
UK wird die Information aus dem ersten Vergleich dazu benutzt,
den zweiten CK zu erzeugen, der dann die durch den zweiten UK dargestellte Information wiedergibt. Dann werden im dritten
Vergleich der dritte und der vierte UK in der sortierten Folge verglichen usw. bis zum Ende der Indexfolge. Somit repräsentiert
jeder GK die Information, die in dem ersten UK des Paares stand,
aus welchem der CK erzeugt wurde.
Das kleinste Format eines CK hat eine Mindestanzahl von Schlüsselbytes
(K-Bytes), die während des Vergleiches aus einem der UK's abgeleitet wurde. Das kleinste CK-Format umfasst eines oder
mehrere K-Bytes aus einem nach rechts verschobenen UK, kein K-Bytu aus einem nach links verschobenen UK und entweder ein
oder null K-Bytes aus einem nichtverschobenen UK. Das kleinste
Byteformat für einen CK kann immer dadurch überschritten werden, daß man dem UK, aus welchem die K-Bytes abge-
Docket PO 968 024 A 008829/1415
leitet wurden, weitere Bytes hinzufügt, liährend die relativen
Positionen unter den K-Bytes aufrechterhalten werden. Eine
derartige Information ist zwar redundant» kann aber z.B. bei fehlerhaften Informationen sehr nützlich sein.
Jeder GK benötigt außer den K-Bytes noch zwei weitere Informationselemente,
um ihn für eine Suchoperation geeignet zu machen. Ein derartiges Informationselement lokalisiert jedes
K-Byte eines CK entsprechend seiner Bytepositionszahl beginnend
mit dem werthöchsten Byte im UK, aus welchem das K-Byte abgeleitet wurde, Das zweite zusätzliche Element lokalisiert-den
nächsten CK. In diesem Ausführungsbeispiel nehmen diese beiden Informationselemente die Form von zwei Feldern an, die mit
Faktorenlängenfeld (F) und Längenfeld des verdichteten Schlüssels (L) bezeichnet werden und Teil eines jeden CK's sind. Abhängig
davon, ob in dem Format zuerst F oder L auftauchen soll, hat das vollständige CK-Format dann die Form FLK oder LFK.
Die Bytelänge (L) des K-Feldes in einem CK hängt davon ab,
welcher der drei in Fig. 5 gezeigten Fälle während eines Vergleiches vorliegt. In dem zweiten der in Fig. 5
gezeigten Fälle (Linksverschiebung), erscheinen keine K-Bytes im CK und L = 0. Im ersten in Fig. 5 gezeigten Fall
(keine Verschiebung) hängt der Wert L=O oder L = 1 für die minimale Länge des K-Feldes davon ab, ob der vorhergehende
CK null K-Bytes oder eine andere Anzahl von K-Bytes
Docket PO 968 024 A 0 0 9 8 2 9/1415
196457
enthält. Wenn somit die D-Position in einer ununterbrochenen Folge von Vergleichen mit demselben Wert weiterläuft, weisen
die CK1S abwechselnd IC-Bytes mit dem Wert L = O und L=I
auf, da dieser Wert von den unmittelbar vorhergehenden PC-Bytes abhängt· Im dritten der in Fig. 5 gezeigten Fälle
(Rechtsverschiebung), ist L Φ 0, enthält also eines oder
mehrere K-Bytes. Somit enthält im dritten Fall das K-FeId
eine unterschiedliche Anzahl von Bytes, die gleich der Anzahl von Bytepositionen ist, die hinter der D -Position und \ror
der Dg-Position stehen. Eine Definition ist auf vielerlei Weise möglich, z.B. durch L=Dn-D.=(E +1)-E.+1)=E--E..
Der Faktor (F) eines CK stellt die Anzahl von kontinuierlichen Bytepositionen beginnend mit der werthöchsten Byteposition,
dar, die kein K-Byte im laufenden CK sind, durch vorhergehende K-Bytes im verdichteten Index jedoch dargestellt sind. Der
Index B bezeichnet einen Wert im laufenden CK, während der Index A einen Wert im unmittelbar vorhergehenden CK angibt*
Der Faktor F wird davon beeinflusst, ob das laufende UK
ti
überhaupt nicht, nach links oder nach rechts verschoben ist, wie es im Zusammenhang mit Fig. 5 beschrieben wurde und ob
L^ 0 ist oder nicht. Für die Mindestbedingungen des K-Bytefeldes
hat das F„-Feld die folgenden Werte: Für einen CK mit gar keiner oder einer Verschiebung nach links hängt der F-
Wert davon ab, ob der L «Wert für den unmittelbar vorhergehen-
den CK 0 ist oder nicht. Ist der L.-Wert bei keiner Ver-Docket
PO 968 024 A 009829/U1S
Schiebung O, stimmt der F -Wert mit dem Eß=Wert überein» Ist L,
bei keiner Verschiebung verschieden von O, kann F jeden Wert
zwischen dem Höchstwert E.+1 bis zu einem Mindestwsrt EB+1 einnehmen. Bei einer Vsrschiebung nach links kann der F -Wert jeden
Wert zwischen E^M und Eß+1 einnehmen ungeachtet dessen, ob L = O
ist. Ist bei einer Rechtsverschiebung L = O, ist Fn=E., und, wenn
Jt) A
L verschieden 0 ist, ist F =E =1. In der folgenden Tabelle 1 ist
ein Beispiel für CK1s mit den kleinsten K-Feldern gegeben.
Tabelle - | UK | I | E | F | CK | K |
11 | 0 | L | Engelhard, L | |||
Englehard, Hans | 3 | 12-4 | 12 | |||
Engelhard, Ludwig | 9 | 3 | O | lish, J | ||
English, Irvine J | 1 | 10-2 | 7 | |||
English, Jas J | 1 | 1 | O | S | ||
Ericson, Oscar | 2 | 2 | 1 | P | ||
Eskind, Ralph R, | 1 | 3-2 | 1 | |||
Esposito, Blas | 1 | 1 | O | ζ | ||
Evancie, Kenneth G | 0 | 2-1 | 1 | |||
Ezequelle, Jonathan A | 2 | O | O | Farn | ||
Fahnestock & Co | 2 | 3 | 3 | |||
Famularo, Jos J | 3 | 2 | O | rr | ||
Farewell, Richd L | 1 | 4-2 | 2 | |||
Farrar, Carl E | 2 | j | O | en | ||
Feeney, Kermit | 2 | 3 | 2 | |||
Fennel1, Lee T | 8 | 2 | O | rriä, R | ||
Ferris, Harriet Akin, Mrs-j | 7 | |||||
Ferris, Raymond W | ||||||
Docket PO 9ό8 024 A 009829/Ηΐδ
BAD ORIGINAL
- 22 -
Bei dem in Fig, 5 gezeigten Fall I kann man die Operation dadurch vereinfachen, daß man ein K-Byte, nämlich das Dß-Byte
hat und L immer = 1 ist. Das führt jedoch zu einer geringeren Verdichtung bei jeder Liste, in der Folgen ohne Verschiebung
auftreten, was bei großen Listen häufig der Fall ist. Ein Beispiel
für CK's, die dieses Prinzip anwenden, ist in der folgenden Tabelle 2 gegeben.
UK | E | F | CK | K |
11 | O | L | Engelhard. L | |
Englehard, Hans | 3 | 4 | 12 | |
Engelhard, Ludwig | 9 | 3 | O | lish, J |
English, Irvine J | 1 | 2 | 7 | |
English, Jas J | 1 | 1 | 0 | S |
Ericson, Oscar | 2 | 2 | 1 | P |
Eskind, Ralph R. | 1 | 3 | 1 | |
Esposito, Blas | 1 | 1 | O | Z |
Evancie, Kenneth G | O | 1 | 1 | |
Ezequelle» Jonathan A | 2 | O | O | Farn |
Fahnestock & Co | 2 | 2 | 3 | r |
Famularo, Jos J | 3 | 3 | 1 | r |
Farewell, Richd L | 1 | 2 | 1 | |
Farrar. Carl E | 2 | 1 | O | en |
Fueney, Kermit | 2 | 3 | 2 | r |
Fennel1, Lee T | 8 | 3 | 1 | ris, R |
Ferris, Harriet Akin, Mrs. | 6 | |||
Ferris» Raymond W | ||||
009829/UlI
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 einnehmen, kann jeder der beiden Größemverte
zwischen O und 15 annehmen, was in der Praxis für fast alle
verdichteten Verzeichnisse ausreicht, da die Durchschnittszahl von IC-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 größ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,
Docket PO 968 024 A 009829/UU
BAD ORIGINAL,
verfügt der erweiterte CK über keine K-Bytes und es ist L = O, 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-CK zeigt an, wieviel
zusätzliche K-Bytes im Erweiterungs-CK geführt werden und an die K-Bytes im unmittelbar vorhergehenden Registereintrag angehängt
werden sollten. Auf diese Weise lässt sich jeder CK auf " eine beliebige Länge für F oder L erweitern. In bekannten Verzeichnissen
sind CK*s mit mehr als 14 K-Bytes jedoch sehr selten, dagegen sind CK's mit mehr 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
K-Bytes führen zu keiner Redundanz im System.
Bei der Ableitung der K-Bytes in den CK's eines Verzeichnisses
ergeben sich jeweils zwei Alternativen. Da die K-Bytes von beiden UK's 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-Paares
abgeleitet werden.
Hat man sich für eine der beiden Alternativen entschieden, müssen anschließend alle CK's entsprechend abgeleitet werden.
Allgemein wurde festgestellt, daß die zweite Alternative der
Docket PO 968 024 A "009829/UIB
BAD ORIGINAL
196A570
ersten vorzuziehen ists da die aus dem zweiten UI abgeleiteten K-Bytes größer sind als di© aus dos ersten UiC sines Paares.
Die Bedingung "größer als" ist vorteilhaft bei
Die meisten Verzeichnisse £ühr©s sei ©iaos1 gTUT&äl®g®nä®T©n Ia-
formationsquelle als das fefgeieteis gelbst; i§tD ©fet-iofel ia einige» Fällen die Iii-form-atien diir@!r£ aa das '/©ygeidSiais abgehängt
wird. In den EiG is tea Fäll®a ist jedoch dio ©igeatlieh© lafermatiön
zu groß, um sie ^.trfsgaja &n dea UE ©des1 d©a CK ansöftäagen-:
Daher ißuii ia den rasistea Ffillea sä j©d©a Sdülliss5©leiatifsg eine
weiter© ißforG-StionseiiihGit sag@lia.agt ι-ΐΘταΦΈί. ii© di^elst ©dcsr
lafos^atioa filiiito
oa iiöaiaea di© Adresse
üteitsii Ißförsictioa ©dos* stssa di© Adh?©gs@ @1eq? aitiere
sifif ^eleli^ Toil eia©5? Ads"essls@tt@ i§t0 di© da®a eu
T" ~/r ?·'■' " ""^--A-' r ~"? '" :; r~ ".,'■. i^R ρ*.? ^. ji?tv.f ■·.;■'? fJOj/j r?v 13.":. @g 2""'Q2, J-'':·?7^ 'i'.r'·■''■ ^
BAD ORIGINAL
1-964578
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
wsrdsn. Beim Treffen der Auswahl ist zu berücksiclitigenf daß
ein I-iinweis meht vorhanden ist, als CEss durch Vergleich zwischen
tatsächlich vorhandenen·UKfs erzeugt werden, d*iu jeder UK
hat süiasa Hinweis s rad ά&ϊι&τ vjird sin CK weniger erzeugt, als
™ UK3S verglichen werden. Dieser Unterschied zwischen der Anzahl
tatsächlicher"GK*s und tatsächlich vorhandener Hinweise ksH&
vorteilhaft dadurch ausgeglichen wsrji-a, daß man am Anfang oder
Ende Quie-T Lists einen fiktiven UE hiii
Verdichtete Schlüssel mit einer kleineren oder größeren Ansahl
VOK Bytes $ G.bgeioiyst ans finem entpp^eehenden unverdichteten
Schltiggsi ward©E ber&i^E "töschricban. Der kleinste verdichtete
Schlüssel sc&altst alle t'y^-::ciiiuiai^z aus, die in dsr sortierten
Liste iiiditVsrdieirte-""-?"- Sr~Klls?^ .' ~-hi'iόζη wiird-s^ Uiitsr b®-5
st}ji:3.Zü,ii ymsi,i'n.d^n £ΖΛ.1 -^-f:.L :::·ικ ;;5.::^^5 Il5dii!;d£j:ä auf rächt ^
feen £
en
BAD OR(GINAt
Tabelle - III
UK | E | CK | K |
11 | L | Engelhard, L | |
Enßlehard. Hans | 3 | 12 | Eng |
Engelhard, Ludwig | 9 | 3 | English, J |
English, Irvine J | 1 | 10 | E |
English, Jas J | 1 | 1 | Es |
Ericson. Oscar | 2 | 2 | Esp |
Eskind, Ralph R. | 1 | 3 | E |
Esposito, Blas | 1 | 1 | Ez |
Evancie, Kenneth G | O | 2 | F |
Ezequelle. Jonathan A | 2 | 1 | Farn |
Fahnestock & Co | 2 | 3 | Fa |
Famularo, Jos J | 3 | 2 | Farr |
Farewell, Richd L | 1 | 4 | F |
Farrar. Carl E | 2 | 1 | Fen |
Feeney, Kermit | 2 | 3 | Fe |
Fennell, Lee T | 8 | 2 | Ferris, R |
Ferris, Harriet Akin, Mrs. | 8 | ||
Ferris. Raymond W | |||
Zu jedem in Tabelle III aufgeführten CK können ein oder mehrere zusätzliche Leerbytes aus demselben UK rechts von den K-Bytes
hinzugefügt werden, die aus den UK's 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 Docket PO 968 024 A 009829/U16
auch die mindestens erforderlichen K-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 N-Byte.
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 N-Byte.
UK
Engelhard, Ludwig English, Irvine J English, Jas J Ericson, Oscar
Eskind, Ralph R. Esposito, Blas Evaneie, Kenneth G
Ezequelle. Jonathan A Fahnestock & Co Famularo, Jos J
Farewell, Richd L Farrar. Carl E CK
E F
11 0 6 Ludwig
3 4 14 lish, Irvine J
9 3 11 lish, Jos J
1 2 13 ricson, Oscar
1 1 14 skind. Ralph R
2 2 12 posito, Bias
1 3 17 vancie, Kenneth G
1 1 20 zequelle, Jonathan A
0 1 15 Fahnestock & Co
2 0 13 mularo, Jos J
2 2 15 rewell, Richd L
3 3 11 rar, Carl E
1 2 14 eeney. Kermit
Feeney, Kermit 2
Fennell, Lee T 2
Ferris, Harriet Akin, Mrs. 8
Ferris» Raymond W
12 nnell, Lee T 23 rris, Harriet Akin, Mrs 9 Raymond, W
Docket PO 968 024 A
003829/1415
Eine andere Variante besteht darin, daß man wenigstens das werthöchste Leerbyte zu dem Mindestfeld an K-Bytes hinzusieht, indem
man dieses werthöchste Leerbyte auf das nächsthöhere Zeichen
in der verwendeten Sortierfolg© erhöht. Das gilt besonders bei
Anwendung der in der Alternative I beschriebenen Regain, da sich
dort für die K-Bytes die Situation "größer als58 ©rgibtg die beim
Absuchen des verdichteten Verzeichnisses vorteilhaft ist. Sobald im zuletzt genannten Fall das ©rst© Lesrbyt© das höchste Zeichen
in der Folge ist, wird das nächst© Leerbyte ebenfalls su den
K-Bytes hinzugefügt, da das höchste Zeichen im Wert nicht erhöht
werden kann. Wenn ein hinzugefügtes Lesrbyt® das höchste Zeichen
ist, wird das nächste Leerbyt© hinzugefügt;, bis ein hinzugefüg
tes Leerbyte nicht das höchst© Z©ieh©a ia der Folgs-ists. in der
Folge wird nur das zuletzt hinzugefügte Leerbjt© auf d@n nächst höheren Wert angehoben« Hierbei wird selten Mulls' als ©ia Leer-
byte benötigt· Die folgende Tabeli© se-igt sia B@ispi@l der
Index verdichtung auf die zuIqZzZ b@schffi©bea® l'feis© mit einer
öinüreodis-rten BQzim%l£®lgGü ia iiGlokm das Byiä© A d@E Ζ&μ&ο,
folgt*
Folge wird nur das zuletzt hinzugefügte Leerbjt© auf d@n nächst höheren Wert angehoben« Hierbei wird selten Mulls' als ©ia Leer-
byte benötigt· Die folgende Tabeli© se-igt sia B@ispi@l der
Index verdichtung auf die zuIqZzZ b@schffi©bea® l'feis© mit einer
öinüreodis-rten BQzim%l£®lgGü ia iiGlokm das Byiä© A d@E Ζ&μ&ο,
folgt*
- 30- | V | L | K | |
Tabelle - | 5 | BOONA | ||
UK | F | O | - | |
BOON, CLYDE E | O | 2 | SA | |
BOONSTRA, PIET W | 4 | 5 | TH, RJ | |
BOOS, DONALD | 3 | 2 | OC | |
BOOTH, RICHARD R | 3 | O | - | |
BOOTH, ROBERT A | 7 | O | mm | |
BOOTH, RONALD | 8 | 1 | mm mimt | |
BOOTH, VERNON | 6 | |||
BORCHLEWICZ, ROBERT J | 2 | |||
196A570
0 0
F = Anzahl der mit einem Faktor versehenen Bytes vom linken Ende
des Schlüssels.
L s Anzahl der Bytes des in dieser Eintragung aufgezeichneten
Fig, öÄ zeigt öiii ÄhlaiifdlaprsrnK eines erfindiiE.gsgemäßen Verfahrens«
Mit ä&äi S^LViz ehr lit 10 wcr&'i di© Register aaf 0 zis»
r;U".kgösteiltg die die Werte für F. und L. enthalten» Ir. Schritt
I : .-ichsIiJi aas Sy^t^m ^im nächsten Paar iiicht¥:3rdieliteter
BAD ORlGIJÜAt. ,
196457Ö
nommen 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 48a bzw. 48c angezeigt. Normalerweise sollte ein derartiger Fehler nicht vorliegen, da die vorhergehende Sortieroperation
für die UK1S richtig abgelaufen sein sollte. Die Anzahl
gleicher Bytepositionen E wird durch den Vergleicherschritt
13 festgestellt und im Schritt 14 werden diese Positionen gezählt.
Der Schritt 14 erhöht Eß 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äsift die Operation zu Schritt 16 weiter. Das letzte, vor
Schritt 16 i;a Schritt 14 gezählte E
Docket PO 968 024 A 009829/U1 6
Docket PO 968 024 A 009829/U1 6
BAD ORIGINAL
wird als die richtige E -Zahl für den laufenden CK gespeichert und definiert die Differenzbyteposition D , die um eines
höher liegt als der Wert für E . Der E -Wert wird in einem
Β B
Register oder einer Wortstelle gespeichert, die jLhm zugeordnet
ist.
Im Schritt 16 wird dann mechanisch oder elektronisch der in einei
E.-Register stehende Wert von dem in einem E -Register stehenden Wert.subtrahiert und das Ergebnis in einem S-Register gespeicheri
Der Wert im S-Register wird dann im Schritt 17 mit O verglichen
und es wird festgestellt, daß S 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
Jj 13
oder überhaupt nicht verschoben ist. Im ersten UK-Paar eines
Verzeichnisses ist die Dß-Position nach rechts verschoben, da
für die vorhergehende Dß-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 A auf O und teilen sich dann in zwei weitere Wege abhängig davon, ob L * 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 L und F können auf
verschiedenen Wegen verschiedene Werte erzeugt werden. Wenn S kleiner als O ist, läuft Schritt 30 ab, in welchem eine
Null in das L -Register gesetzt und der L -Wert als L-Komponente
D B
des gegenwärtig erzeugten CK gespeichert wird. Dann beginnt Docket PO 968 024 A 00.9829/141 8
BAD ORfGJNAL
Schritt 31, in welchem der Wert des Eg-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 ü ist, werden keine K-Bytes erzeugt und nach Schritt 31 folgt Schritt 43a, in welchem die UK-Y-Hinweisadresse
mit dem gerade erzeugten CK übertragen wird.
Vor Schritt 43a läuft der Schritt'44 ab, um bei dem in
Fig. 6a gezeigten Verfahren die nächste Wiederholung vorzubereiten. In diesem Schritt wird der Wert im E -Register als EA-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 umfasst 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 dies© Weise erhält man alle folgende 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, erfolgi 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,
Docket PO 968 024 A 009829/1415
daß keine Verschiebung erfolgte. Dann wird mit einem Prüfschritt
26a festgestellt, ob das gegenwärtig gespeicherte L.. gleich O 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 L» jedoch gleich O und
liegt keine Verschiebung vor, folgt nach Schritt 26a der Schritt 32. Im Schritt 32 wird die Zahl 1 in das Lg-Register 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 K-Bytes übertragen,
die aus dem Register genommen ist, in welchem das laufende UK-Z gespeichert ist. Das erste K-Byte wird aus Byteposition
(FD + 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 LD-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 testgestellt werden, angezeigt dadurch, daß S größer als
0 ist, Dann wird Weg 23 eingeschlagen. Das LA-Register
wird im Schritt 26b auf ü geprüft. Ist LA = O, beginnt
Schritt 34, wodurch eine Eins zum Wert im S-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 E.-Register in das FB-Register als
F-Wert des laufenden CK übertragen und im laufenden F-FeId gespeichert wird. Dann beginnt Schritt 41, in welchem die
K-Bytes" genauso erzeugt werden, wie es oben beschrieben wurde.
Wenn jedoch im Schritt 26b festgestellt wird, daß der Inhalt des L.-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 -Regi-
ster geladen und dort im F-FeId für den laufenden CK gespeichert
wird. Dann werden die K-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 Lg-Werte
neu als E -und L -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.
Docket PO 968 024 A 0 0 9 8 2 9/1416
Wenn im Schritt 12 das Indexende festgestellt wird, wird ein
letzter CK auf besondere Weise dadurch erzeugt, daß in den L- und F-Feldern O Bytes und keine K-Bytes gespeichert werden.
Der Hinweis des letzten UK wird als Hinweis des letzten CK durch Schritt 43b gespeichert und die Operation durch Beginn
des Schrittes 47 beeendet.
In Fig. 6B ist der in Fig. 6A gezeigte Schritt 31 durch die Schritte 31B, 26C und 31A ersetzt, während die übrigen in Fig.
6A 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 31A in Fig. 6B ein Höchstwert F für linksverschobene CK's 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 K-Bytes werden
der Reihe nach in einem Speicher bekannter Bauart gespeichert. Dabei ist zwischen beiden CK*s keine leere Byteposition erforderlich. Diese sequentielle Ausgabe der CK's 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.
00S829/U16 Docket PO 968 024 A
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 Cn für jeden, der bei
einem der Schritte 30 bis 37, 41 und 43a ausgegebenen CK*s zurückgesetzt.
Die Rücksetzung pro Schritt 51 beträgt Lß (die
Anzahl der laufenden K-Bytes) plus 1 (die Bytezahl für die F-und L -Felder) plus CR (die Hinweisbytezahl) plus 1 (das CR-Byte selbst bei einer Gesamtrücksetzung von L1, + Cn + 2). Wenn
der Zähler Q den Wert O erreicht, wird im Schritt SSb ein Block
geschrieben«
Schritt 52 untersucht den laufenden Inhalt des Zählers Q. So«
lange im Schritt SI festgestellt wird, daß dieser Inhalt des
Zählers Q größer als O ist, beginnt nach Schritt 52 Schritt 44
und die nächste Wiederholung. Ist der Inhalt von Q jedoch gleich oder kleiner als 0f beginnt Schritt 55 und der gerade
erzeugte Teil des verdichteten Verzeichnisses wird geschrieben.
Schritt 55c leitet die Zählung des Zählers Q für den nächsten Block ein. "Über Schritt 55b und Schritt 44 beginnt die nächste
Wiederholung. Die Wiederholungen laufen ab, bis im Schritt 12 das Indexende festgestellt wird·
An den UK-Folgen in den Fign. 8A, B und C werden die Operationen
der in den Fign. 6A, B oder 7 gezeigten Verfahren für die verschiedenen Wiederholungen unter Benutzung der Wege 21 bzw.
22 und 23 gezeigt* Die UK's und die entsprechenden CK*s in Fig. 5 sind in der linken senkrechten Spalte mit der Beschriftung
"Schlüsselnummer" numeriert. An der Oberkante der Fig. 5A
sind die Bytepositionen in jedem UK mit den Zahlen 1 bis 11 durchnumeriert. Jedes UK-Byte ist mit dem Buchstaben B bezeichnet,
Es kann sich dabei ti jedes beliebige Zeichen aus einem
Zeichensatz innerhalb der durch die Sortierung vorgegebenen Grenzen handeln. Das bedeutet, daß jedes Byte in einer
Spalte nur gleich oder höher in 4er Sortierfolge als das unmittelbar
vorhergehende Byte in dieser Spalte sein kann· Bei einer aufsteigenden Sortierfolge kann es nicht niedriger als
das vorhergehende Byte sein· Bei absteigender Sortierfolge gilt das Gegenteil·
* Obwohl für jeden in den Fign. 8 gezeigten UK eine feste Anzahl
von Bytepositionen angenommen wird» gilt die Darstellung für verschiedene Bytezahlen in den UK's· Die in Fig· 5 mit D be-
B zeichnete Differenzposition ist in den Fign. 8At B und C mit
D bezeichnet, um damit die unterschiedliche Byteposition im zweiten UK eines jeden verglichenen Paares wiederzugeben· Gleiche
Ε-Bytes für jedes Vergleichspaar finden sich links von jedem
D-Byte und die Leerbytes N stehen rechts von jeden D-Byte,
Docket PO 968 024 A Q09S29/141S
Rechts von jedem D-Byte ist in den Fign. 8A, B und C eine vertikale Linie durchgezogen, rechts von jedem Faktorbyte F
ist eine gestrichelte Linie gezogen.
Die Spalte F stellt die Mindestwerte für F dar, die durch das
N
in Fig. 6A gezeigte Verfahren erzeugt werden. Die Spalte F
in Fig. 6A gezeigte Verfahren erzeugt werden. Die Spalte F
zeigt die Maximalwerte für F für die durch das in Fig. 6B gezeigte
Verfahren erzeugten CK1s. Die Werte für F und F unter
NX scheiden sich nur für einige nach links verschobene CK1s und
sind für nicht oder nach rechts verschobene CK1s gleich. Die
vertikalen gestrichelten Linien stehen rechts von den F -Posi-
tionen, die sich von den F -Positionen bei demselben UK unter-
scheiden. Wo Ρχ und F.. gleich sind, stellen die vertikalen gestrichelten Linien F und F dar.
Das KrBytefeld für einen CK ist links durch eine vertikale gestrichelte Linie und rechts durch eine vertikale ausgezogene
Linie begrenzt. Wo die ausgezogene Linie und die gestrichelte Linie dasselbe UK-Byte begrenzen, oder wo die durchgezogene Linie
links von der gestrichelten Linie steht, liegt für den entsprechenden CK kein K-Bytefeld vor und sein Lg ist O. Die
Bytelängen der Felder F und £ sind in den Fign. 8A, B und C in den entsprechend bezeichneten Spalten eingetragen. Das zu
jedem UK gehörige Hinweisadressen- oder Zeigerbyte ist in den "Figuren mit dem Buchstaben R bezeichnet.
Der. erste CK stellt in jeder der Fign. 8A, B oder C immer einen
Docket PO 968 024 A 009829/1416
nach rechts verschobenen CK dar, weil L und F am Anfang
A A
im.Schritt 10 auf 0 gesetzt werden. Somit kann sich die Position
des Differenzbytes beim Vergleich des ersten mit dem zweiten UK nur nach rechts verschieben. In Fig. 8A verschiebt sich
dann die durch die durchgehende Linie bezeichnete Position des Differenzbytes nach links, um den Fall einer Linksverschiebung
einzeln darzustellen. Aus Fig. 8A ist zu ersehen, daß der F- ^ Wert des ersten CK Null ist und durch die Position des Differenzbytes
im UK-2 neun K-Bytes definiert sind, daß also das L-FeId den Wert 9 hat. Die dem ersten in Fig. 8A folgenden CK1S sind
nach links verschoben, wie aus den abnehmenden Werten für E zu ersehen ist. Die linksverschobenen Schlüssel weisen keine
K-Bytes auf und somit ist für jeden nach links verschobenen Schlüssel L=O. Die Beträge für F und L der CK's sind in den
entsprechend bezeichneten Spalten in Fig. 8A angegeben, wobei jeweils der Zeiger zugeordnet ist.
" Fig. 8A zeigt den Mindestwert F„, den man durch das in Fig. 6A
gezeigte Verfahren und den Höchstwert Ρχ, den man durch
das in Fig. 6B gezeigte Verfahren erhält. In jedem Fall kann das F-FeId einen beliebigen Wert zwischen Fn und F^ enthalten. Die
mit einer gestrichelten Linie markierte F^-Position ist vorzuziehen,
da sie einen niedrigeren numerischen Wert enthält. In jedem Fall ist bei einem linksverschobenen CK kein K-Byte erforderlich.
Fig. 8B zeigt einen nach rechts verschobenen Schlüssel mit einem
009829/1415 Docket PO 968 024 Λ
BAD ORIGINAL,
. - 41 -
L -Wert dahinter, der gleich oder verschieden von O ist. Bei
einem CK-3 mit einem F-Wert von 5 und einem L-Wert von 3 hat ein nach rechts verschobener Schlüssel einen L-Wert von 2. Der
Schlüssel Nr. 5 ist jedoch ein nach rechts verschobener Schlüssel,
der einem Schlüssel mit einem L.-Wert von O folgt. Wenn bei einem
rechts verschobenen Schlüssel L.= O ist, ist die vorhergehende
Differenzbyteposition als ein K-Byte eingeschlossen, welches für die Fortführung der Suche benötigt wird. Wenn der vorhergehende
Wert für L. verschieden von O ist, ist die vorhergehende Differenzbyteposition
nicht als K-Byte eingeschlossen, da sie durch ein E-Byte im F-FeId des laufenden CK dargestellt ist. Die Werte für F
und F„ sind bei rechtsverschobenen Schlüsseln gleich.
Fig. 8C zeigt die Änderung von Lß zwischen O und 1, wenn eine
Folge von Fällen ohne Verschiebung auftritt, d.h., wenn die Differenzbyteposition
D_ während einer.Folge von UK-Vergleichen gleich
bleibt. Ist demgemäß ein vorausgegangenes L. nicht O, so wird
Ln = O, ist ein vorausgegangenes L = 0, so wird Lsi. Die Änderung
erfolgt, wenn L von 0 nach 1 und zurück nach 1 wechselt, während F umgekehrt zwischen 7 und 6 wechselt. Die Fj.- und Fütterte
sind für Schlüssel ohne Verschiebung gleich.
Fig. 9 zeigt eine Folge von UK's, in welcher gepunktete, gestrichelte
und durchgezogene Linien, die die Grenzen für F , Fj, und K-Bytes definieren, die Arbeitsweise des in den Fign. 6A
und B gezeigten Verfahrens darstellen. Die entsprechenden F- und L-Werte für die aus den gezeigten UK1S erzeugten CK1S sind darin
»ecket PO 968 024 Λ 009829/1418
BAD ORIGINAL
196A570
zusammen mit dem zugehörigen Zeiger wiedergegeben. Diese Tabelle gibt eine Übersicht über die Vorgänge bei der Erzeugung von CK's
aus einer Folge von UK's. In Fig. 9 stellen insgesamt 48 K-Bytes die 37 CK's aus einer Gesamtzahl von 518 UK-Bytes dar. Fig. 9
zeigt somit eine Schlüsselverdichtung auf weniger als 1/1G der
Anzahl von UK-Bytes. Mit einem zusätzlichen Byte für jeden CK zur Darstellung der F- und L-Werte, beträgt die Verdichtung
für die CK's in Fig. 9 ungefähr 1/7 der nichtverdichteten Schlüsselbytes. In der Praxis zeigte sich bei großen Verzeichnissen
eine durchschnittliche Verdichtung mit weniger als einem K-Byte
pro Schlüssel.
βα9Ι29/141Ι
Fig. 11 ändert das in Fig. 6A gezeigte Verfahren für die Fälle, in denen keine Verschiebung vorliegt, in dem der Wechsel zwischen
O und 1 für L und die abwechselnde Existenz bzw. Nicht-
Existenz eines K-Bytes ausgeschaltet wird, d.h. wo Dß für eine
Folge von UK's auf derselben Byteposition bleibt. Durch das in Fig. 11 gezeigte Verfahren ist Lg immer 1 und das Differenzbyte
D_. 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 20b gekennzeichnet ist. Der
einzige Unterschied zwischen den in den Fign. 11 und 6A gezeigten
Verfahren besteht im Weg 22, der in Fig* 11 nur zum Schritt 32 läuft. Der Schritt 26a in Fig. 6A findet sich also
in Fig. 11 nicht und der Eingang zum Schritt 30 erfolgt vom Weg 22 her.
Fig. 10 zeigt dieselbe UK-Folge wie Fig. 9. Auf die in Fig. 10
gezeigte UK-Folge wird das Verfahren der Fig. 11 angewendet, während auf die in Fig. 9 gezeigte UK-Folge das in den Fign. 6A
und 6B gezeigte Verfahren angewendet wird. In Fig. 10 findet sich also nicht der Wechsel wie bei Folgen ohne Verschiebung, die
ein einzelnes K-Byte und ein L von 1 aufweisen. Die offensichtliche
Vereinfachung des in Fig. 11 gezeigten Verfahrens gegenüber dem
Docket PO 968 024 A 0 0 9 8 2 9/141S
196A570
Verfahren in den Fign. 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 K-Bytes gegenüber 48 K-Bytes in Fig. 9 aus einer Gesamtzahl von 518 UK-Bytes.
In Fig. 12A wird der Schritt 41 in Fig. 6A zwischen den Unterbrechungspunkten
40 und 50 durch den Schritt 41a ersetzt. Dadurch ergeben sich für die Operation der Fig. 6A die in der Tabelle
IV gezeigten CK's. Diese CK's schalten die Faktorenbytes
aus, behalten jedoch die K-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 2OA und 2OB ψ gesetzt und ersetzt somit den entsprechenden Teil in Fig. 6A.
Dadurch erhält man CK1S von der in der Tabelle III gezeigten
Art. Diese CK's behalten ihre Faktorenbytes und die K-Bytes
und schalten sämtliche Leerbytes aus. Da diese CK's alle von der werthöheren Seite entfernten Bytes wiedergeben, hat jeder
CK einen F-Wert von 0. Somit braucht im CK-Format der Tabelle III und in dem Verfahren der Fig. 12B kein F-Wert enthalten
zu sein, da L ja immer 0 ist. Somit wird bei dem in Fig. 1.2B
B
•gezeigten Verfahren nur L-Wert mit den K-Bytes gespeichert. Obwohl die Werte für L^ und Fg, die wie bei dem in Fig. 6Λ ^e-Docket
FO 968 024 A 009829/U1S
zeigten Verfahren in den Registern gehalten werden, nicht im CK-Format gespeichert sind, werden sie durch das Verfahren in
der Fig. 12B bestimmt. Dafür ist in Fig. 12B ein zusätzlicher
Schritt 39 vorgesehen, der die laufend bestimmten Werte für
L und F in ein L~-Register addiert. Dann beginnt Schritt 41b
Ii B L
mit der gespeicherten Lp-Anzahl von Bytes vom Anfang des laufenden
UK-Z. Dann beginnt das Verfahren wieder von vorne und läuft bis zum Ende des UK-Verzeichnisses weiter.
Fig. 12C zeigt ein Verfahren, welches die in Tabelle V gezeigten
verdichteten Schlüssel erzeugt. Dabei werden die K-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 angepasst 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 ί'/oge, z.B. durch eine Tabellensuche erhalten,
wenn die Zeichenfolge in einem Sortiersatz eins entsprechende Fortschaltung um den Wert, 1 nicht gestattet. Bei der Tabellen-
Docket PO 968 024 A 008829/1416
BAD ORiGtNAl.
1SS4570
suche kann die Zeichenfolge in aufeinanderfolgende Adresspositionen
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 D im unver*
dichteten Schlüssel Y .dressiert; dieses Zeichen ist hier
mit Y bezeichnet. Dann wird das nächsthöhere Zeichen hinter Yn
D D
in der Sortierfolge gewählt und dieses nächsthöhere Zeichen ist mit Y1 bezeichnet. Anschließend folgt Schritt 67,
in welchem Y' mit dem Z_-ßyte im ϋΚ-Ζ an der Differenzposition
D auf Gleichheit od©r Ungleichheit verglichen wird. Mit dieser
c^t PO S63 024 A
1984570
Prüfung wird sichergestellt, daß Z_ größer ist als-Y1, was sich
durch ein Vergleichsergebnis "ungleich" zeigt. Dann werden die Schritte 32, 33a und 68 ausgeführt, in denen als LR eine 1, E
als F_ und Y1 als das K-Byte des laufenden CK gespeichert werden.
Wenn auf der andern Seite Gleichheit zwischen Y1 und Z festgestellt wird, müssen eines oder mehrere Leerbytes hinter
Yjj dem UK-Y entnommen werden, um eine Unterscheidung zwischen
erzeugten K-Bytes und den Bytes in den entsprechenden Positionen des UK-Z herbeizuführen. Diese Unterscheidung erhält man, indem
man das erste Leerbyte N1-Y aus dem UK-Y nimmt und den Schritt 66 ausführt, um das nächsthöhere Byte Y1 nach N1-Y in der Sortierfolge
zu bekommen. Dann wird im Schritt 67 der Vergleich ausgeführt und wenn dieser das Ergebnis "ungleich11 hat,, ist
L a 2 und Y und Y1 werden als K-Bytes gespeichert« E wird
für diesen CK als F gespeichert. Das K-FeId wird solange er-
B
höht, wie eine Gleichheit zwischen Y1 und Z und N im Schritt 32 festgestellt wird und zwar wird für jede so festgestellte Gleichheit der Wert um 1 erhöht.
höht, wie eine Gleichheit zwischen Y1 und Z und N im Schritt 32 festgestellt wird und zwar wird für jede so festgestellte Gleichheit der Wert um 1 erhöht.
Nach Schritt 33 folgt Schritt 41c, in welchem die K-Bytes aus dem UK-Y genauso gespeichert werden wie im Schritt 41 in
Fig, 6A aus dem UK-Z.
Nach Schritt 41c folgt Schritt 69, in welchem das letzte der gespeicherten K-Bytes zum Byte Y' wird, das bei Feststellung
einer ungleichen Vergleichsbedingung im Schritt 67 benutzt wird.
Docket PO 968 024 A
009828/1416
Anschließend verläuft das Ablaufdiagramm in Fig. 12C genauso
wie das in Fig. 6A.
Bei jedem Ausführungsbeispiel des erfindungsgemäßen Verfahrens
muß ein bestimmtes Format für die unverdichteten und für die verdichteten Schlüssel benutzt werden. Die Formatauswahl ist
freigestellt, ein einmal gewähltes Format muß jedoch beibehalten werden, da jedes Ausführungsbeispiel grundsätzlich auf ein bestimmtes
Format beschränkt ist. Fig. 13 zeigt ein bestimmtes Format für die einzugebenden UK1S und die zugehörigen Hinweisadressen
und Fig. 14A ein bestimmtes Format für die resultierenden GK's und zugehörigen Hinweisadressen.
In Fig. 13 trägt jeder UK eine Indexnummer von 0 bis N zur Bezeichnung der Lage des UK in der Sortierfolge. Das
Eingabeformat in Fig. 13 ist UK's mit veränderlicher Länge durch ein UK-Zahlenfeld (UK CT) vor jedem UK angepaßt. Zur Anpassung
W an .UK-Längen bis 255 Bytes kann dieses Feld ein Byte oder acht
Bits umfassen. Das Zahlenfeld trägt dieselbe Indexnummer wie jeder zugehörige UK. Außerdem gehört zu jedem UK eine mit derselben
Indexnummer gekennzeichnete Hinweisadresse. Die Hinweisadresse adressiert den vom UK angegebenen Punkt und kann ebenfalls
in der Länge veränderlich sein, wobei die Länge von einem Hinweis-Zahlenfeld (PTR CT) vor jedem Hinweisfeld mit derselben
Indexzahl angegeben wird. Die Hinweiszahl (PTR CT) benötigt auch nur ein Byte von acht Bits für Hinweisadressen bis zu
Docket PO 968 024 A 009829/'1416
einem Umfang von 255 Bytes.
Das Ende einer UK-Folge wird dadurch angegeben, daß nach der
letzten Hinweisadresse (PTR-n) ein aus lauter Nullen bestehendes Byte gesetzt wird. Dieses Byte tritt auf, wenn ein nächstes
UK-Zahlenfeld erwartet wird, daher kann ein gültiges Zahlenfeld nicht O sein. Dementsprechend endet der UK-Erzeugungsvorgang,
wenn eine UK-Zahl festgestellt wird, die O ist. Das CK-Format in Fig. 14A hat, willkürlich gewählt, für jeden
CK die Form LFK. L ist die Anzahl der K-Bytes im CK, F die Anzahl der mit einem Faktor von der werthöchsten Seite des UK versehenen
Bytes und K stellt die UK-Bytes im CK dar, die fehlen können. Zwischen L und F kann jede Reihenfolge benutzt werden, eine
einmal gewählte Reihenfolge muß jedoch ohne Ausnahme beibehalten werden. Das Format in Fig. 14A wird vorgezogen. Das Grund-CK-Format
ist in Fig. 14B gezeigt. Die L- und F-Felder können je ein Byte von acht Bits belegen oder zusammen ein Byte mit acht
Bits, also je vier Bits. Die Wahl hängt ab von der Größe der für die in Frage kommende Liste erwarteten L- und F-Felder.
Wenn überhaupt K-Bytes vorhanden sind, stehen sie am Schluß im Format in derselben Reihenfolge wie in dem UK, aus dem sie
abgeleitet sind. Die Hinweisadressenzahl (PTR-CT) und die Hinweisadresse
(PTR) stehen immittelbar hinter dem LFK-FeId und werden
direkt von den entsprechenden Feldern entnommen, die zu dem UK ge hören, der durch den CK dargestellt wird. Der letzte CK in einer
verdichteten Liste in Fig. 13 wird durch O-Bits in seinem L-FeId und F-FeId bezeichnet, denen die Felder PTR CT-N und
Docket PO 968 024 A 009 8 2 9/1416
196457Ö
PTR-N folgen. Diese Felder entsprechen dem zu dem letzten UK im unverdienteten Verzeichnis zugehörigen Feld.
Die L- oder F-Felder können so erweitert werden, daß sie große
Mengen von Zeichen für relativ wenige CK's liefern, auch wenn die durchschnittliche CK-Länge für ein verdichtetes Verzeichnis klein ist, z.B. zwischen ein und zwei Bytes. Im allgemeinen umfaßt nur ein kleiner Prozentsatz von CK's in einem
Verzeichnis eine größere Anzahl von Bytes. Dementsprechend benutzt man am besten eine kleine LF-Darstellung von z.B. einem
Byte, die beispielsweise 95 % der CK's in diesem Verzeichnis wiedergeben kann. Für die verbleibenden weniger als 5 % der
CK's können dann besondere Erweiterungsfelder vorgesehen werden.
Fig. 14C zeigt ein Erweiterungsformat, mit welchem L- und F-Felder von einem halben Byte bis zu je 255 Bytes erweitert
werden können. Wie bereits gesagt, können in dem in Fig. 14A w gezeigten Format nur im letzten CK eines verdichteten Verzeichnisses L und F Null sein.
Die vier Bits für L b„,i. F können in 15 von 0 verschiedenen
Codes codiert werden· Einer dieser 15 Codes, z.B. der Code für 15, kann für die Anzeige der Erweiterung eines jeden Feldes
reserviert werden. Dann können die L- und F-Felder auf einen Höchstwert von je 15 Bytes gebracht werden, d.h. auf einen
Maximalwert von 14. Wenn jedoch entweder beii&e oder ein©s der
Felder L und F einem Überlauf über 14 hinaus aufweist» wird
s PO 963 024 A 0 0 9 8 2 8 / 1 4 1 S
dies dadurch angezeigt, daß der 15er-Code in das entsprechende
Feld gesetzt wird, welches den Wert 14 überlaufen hat. Der 15erCode für eines der beiden Felder L oder F zeigt an, daß ein oder
zwei Erweiterungsbytes, wie die in Fig. 14C1 D oder E gezeigten,
unmittelbar den Grundbytes für L und F folgen und vor den K-Bytes stehen.
Ein Erweiterungsbyte wird hinzugefügt, wenn eines der beiden
Grundfelder L oder F den einen Oberlauf anzeigenden 15er-Code enthält· Das Erweiterungsbyte enthält dann ganz die Felder L
oder F und umfasst bis zu 255 Bytes. Ein Erweiterungsbyte kann somit als einzige Darstellung des L- oder F-Wertes
dienen. Wenn das L-FeId erweitert wird, ist die Anzahl der folgenden K-Bytes gleich dem im Erweiterungsbyte für L angegebenen
Wert.
Fig. 14E zeigt einen Fall, in dem beide Felder L und F über 14 hinaus erweitert werden müssen. Somit werden zwei Erweiterungsbytes hinzugefügt, Jeder Erweiterungswert enthält die
entsprechenden echten Werte für L und F. Wenn z.B. 33 K-Bytes vorliegen und der F-Wert 21 ist, enthalten die Felder L und
F im Grund-CK-Format für diesen CK je einen 15er-Code, welcher
anzeigt, daß die folgenden L- und F-Erweiterungsbytes die Werte 33 bzw· 21 haben. 33 K-Bytes folgen dem F-Erweiterungsbyte im
CK.
Fig» 1 zeigt den Datenfluß bei der Erzeugung verdichteter Schlüssel
aus unverdichteten Schlüsseln·
Die hier gezeigten Ausführungsbeispiele benutzen das in Fig. 13
gezeigte Format für die UK1S von N UK-Feldern, wobei N jede ganze
Zahl sein kann. Diese einzugebenden UK's sind das Ergebnis einer vorhergegangenen UK-Sortieroperation in einem Rechner. Unmittelbar
vor jedem UK steht ein Zahlenfeld mit der Anzahl von Bytes im folgenden Schlüssel und hinter jedem UK steht ein Hinweisfeld zur
Lokalisierung der durch den UK dargestellten Daten. Das Ausführungsbeispiel arbeitet mit einem Hinweisfeld veränderlicher
Länge, wobei ein Hinweisfeld mit fester Länge als Sonderfall eingeschlossen ist. Ein Hinweis mit fester Länge kann z.B. zwei
Bytes enthalten, aus denen die Adresse des entsprechenden Schlüsse
durch einen passenden Algorithmus abgeleitet werden kann, wie er z.B. in dem Basic Direct Access Method (BDAM) genannten IBM
OS/360 System Programm verwendet wird. Die Adressierung unter ψ diesem Programm ist in einem allgemein erhältlichen IBM Handbuch
mit der Form Nr. Z28-6617 genauer beschrieben.
Die Anzahl der dem UK-Zahlenfeld zugeordneten Bytes muß natürlich
der höchstzulässigen Länge für die UICs angepaßt sein. Das eine in Fig. 13 verwendete Bytezahl feld (UK CT) ist für eine
maximale UK-Länge von 255 Bytes eingerichtet und dürfte damit
den meisten Situationen gerecht werden. Bei Bedarf kann ein zwei Byte langes Z aiii feld benutzt werden, welches dann oine
üocket PO 968 Ü24 A Q09829/U1I
1984570
maximale ÜK-Länge von über 16000 Bytes gestattet.
Die in Verbindung mit Fig. 13 beschriebene Eingangsbytefolge wird von einer Datenquelle 81 in den in Fig. 1 gezeigten Datenspeicher
83 übertragen, der als Magnetkernspeicher, Dünnfilmspeicher, monolithischer Speichers usw. ausgebildet sein kann.
Fig. 14A zeigt das Format der von einem Bestimmungsspeicher
84 in Fig. 1 an einen Verbraucher 82 ausgegebenen CK's. Dieser
CK-Strom hat eine Form, die hinterher zum Aufsuchen der darin bezeichneten Information benutzt werden kann.
In Fig. 1 liefert eine Datenquelle 81, z.B. eine E/A-Einheit, eine
nichtverdichtete Kette von Bytes in dem in Figa 13 gezeigten
Format an einen Datenspeicher 83.
Ein Verbraucher 82 in Fig» 1, beispielsweise auch wieder eine E/A-Einheit, empfängt die Ausgabe des Systems in Fig. 1 in Form
einer Kette von verdichte tan Schlüsselbytes in dem in Fig. 14A gezeigten Format von einem Bestimmungsspöicher 84«
Der DatsnäptfiehOi' 83 uud dar Bestimmurigssp^iehsr 84 können
verschieden« fip^iciiör jai»; körnig«, abs? auch verschiedene oder
sich übörl ipp^ntLi Oero ichö in demselben Speicher wie eiiiäm Kern
speicher, -oinesa Miiuolichisiihen Speicher, einem Trommelspeicher
oder einmal iHatc^« spoieiur
κ *>■ on λ 009*29/1411
BAD ORIGINAL
Die zwischen die Speicher 83 und 84 geschaltete Rechenanlage
umfaßt mehrere Register, Eingangsschaltungen, Ausgangsschaltungen und Leitungen.
Ein Speicherdatenregister (SSDR) verbindet den Ausgang des Datenspeichers 83 mit einer Ausgangsleitung 86. Das
SSDR liefert ein Byte an die Ausgangsleitung 86, wenn der Speicher 83 durch ein Startsignal SS betätigt wird, während er
eine Adresse entweder von einem Y-Speicheradressregister (YSAR) oder einem Z-Speicheradressregister (ZSAR) empfängt, wenn eines
der beiden Register entsprechend durch ein OG (YSAR)-2 oder ein OG(ZSAR)-2-Signal ausgelesen wird.
Ein Addierer 88 liefert sein Ausgangssignal an eine Addiererverriegelung
89, die die an den Addierer 88 über Eingänge A und B gegebenen Werte speichert. Die Verriegelung 89 verfügt über
eine Vorzeichenstelle G zur Anzeige des Vorzeichens der gespeicherten Größe.
Ein Vergleich zwischen den Eingängen A und B des Addierers 88 erfolgt durch Addition von A zum Zweierkomplement von B. Dabei
sind A und B gleich, wenn sich in der Verriegelung 89 die Größe C) orgibt. Eine von 0 verschiedene Größe zeigt eine Ungleichheit
zwischen A und B an und dann zeigt die Vorzeichenstelle G an, welcher von beiden Werten grüßer als der andere ist. Ist G=I1,
ist A größer als B, ist G « 0„ ist A kleiner aLs B9
19B4570
Das Zweierkomplement eines auf eine Komplementierschaltung 93
gegebenen echten Wertes von B erhält man über ein Signal IG(C), welches das 1er«Komplement von B liefert und ein© 1 addiert«
Eine EingangsIeitung 91 ist mit dem Α-Eingang und eine Eingangsleitung 92 mit der Komplementierschaltung 93 am B-Eingang des
Addierers 88 verbunden· Der echte Wert der Signale auf der Leitung 92 durchläuft die Komplementierschaltung 93, wenn deren
Steuersignal IG(C) nicht vorhanden 'ist.
An die Komplementierschaltung 93 sind zwei weitere Eingänge
IG(BI) und IG (B 2) angeschlossen, die ©elii© Eingangs signale für
die Zahlen 1 bzw« 2 auf die wertniederste Stell© d@s Addierereinganges B geben, wenn nicht das das Zweierkomplement liefernde
Signal IG(C) vorhanden ist.
Mit der AddiererausgangsIeitung 87 ist ein Nullprüfer 94 verbunden,
der alle Ausgangssignale der Verriegelung 89 mit Ausnahme des
Signals der Vorzeichenstelle G empfängt.
Ein Takt-, Verzweigungs- und Torsteuerung 95 empfängt die Signale vom Nullprüfer 94 auf Leitungen 94a und b und die Signale von der
Vorzeichenstelle G der Verriegelung 89 und liefert die entsprechenden Eingabe« tind Ausgabesignale sowie dig Speicher-Steuersignale,
die in dem in Fig«, 1 gezeigten System erforderlich sind,
um es nach dem in Fig. 6A gezeigten Verfahren in Betrieb zu setzen.
Docket PO P68 024 A 0Q9329/141S
BAD ORfGINAt
196457C
Zwischen der Leitung 91 für den Addierereingang A und der
Addiererausgangsleitung 87 liegen mehrere Register. In jedes dieser Register können von der Leitung 87 Signale geleitet werden,
wenn die Eingangsschaltung der Register durch IG-Steuersignale entsprechend betätigt werden. In gleicher V/eise
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-Speicheradressregister. Es enthält
die Adresse für das nächste Byte des UK-Z^
das vom Datenspeicher 83 abzurufen ist.
YSAR Das Y-Speieheradressregister enthält die
Adresse des nächsten Bytes des UK-Y, das vom Datenspeicher 83 abzurufen ist.
F Das laufende F-Register empfängt den F«°Wert
für den gerade erzeugten CK.
E- Laufende? Register für gleiche Bytes spei
chert die Anzahl gleicher Bytes im gerade
verglichenen UE-V und UI-Z*
Lg Laufendes L-Register empfängt den laufenden
L-Wert» der die Anzahl von K-Bytes im gerade
erzeugten CK darstellt.
Docket PO 968 024 A QQgg29/14i5
BAD ORlQfNAL
ZCNT Z-Zahlregister speichert die Anzahl der
übrigen Bytes im gerade verarbeiteten UK-Z, die nicht abgerufen wurden.
DSAR BestiramungsSpeicher-Adressregister enthält
die Adresse des nächsten im Bestimmungsspeicher 84 zu speichernden Byte.
L. Letztes L-Register speichert den L-Wert des
letzten erzeugten CK.
E. 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 Y-Byteregister speichert das laufende Byte
des gerade verarbeiteten UK-Y.
S S-Wertregister speichert den F-Wert, der
die Differenz zwischen den laufenden Werten E und E. darstellt.
YCNT Y-Zahlrögister speichert die Anzahl der in
* dom g-*jrad«3 verarbeiteten laufenden UK-Y
vsrfcl&ibenden Bytes, die niehfc abgerufen
Ie ii.,
hetat N Mt on » 00 98 3 9/1*1 8
BAD ORIGiNAi
Der Datenspeicher S3 in Fig. liest in einem CLK-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 83 gegeben, so
daß das adressierte Byte ins SSDR-Register gestellt und auf Leitung 86 gegeben wird»
Der Bestimmungsspeicher 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 aufgrund eines
Signales 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 Fig. 1 gesetzte Zahlen von einander unterschieden*
Die Register ZGNT oder YCNT verfügen über je eine zweite Eingangsschaltung, die mit der Datenspeicher-Ausgangsleitung 86
verbunden ist, über die sie das adressierte Byte aus den Bock« PO 968 024 A 009828/1418
Datenspeicher 83 empfangen können, wenn sie entsprechend
durch Steuersignale IG(ZCNT)-Z, IG(YCNT)-Z gesteuert werden.
Die anderen Eingangsschaltungen sind mit der Addiererausgangsleitung
87 verbunden, wenn sie entsprechend durch die Steuersignale IG(ZCNT)-I oder IG(YCNT)-I betätigt werden.
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)-Z oder OG(YSAR)-Z 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 E , S und YCNT verfügen über zweite Ausgangsschal»
tungen, die sie mit der Leitung 9Z verbinden, wenn sie durch
die entsprechende Steuersignale OG(EJ-Z, OG(S)-Z und OG(YCNT)-I eingeschaltet werden. Ihre anderen Ausgangsschaltungen verbinden
sie mit. Leitung 91, wenn sie durch Steuersignale OG(E )-1,
OG(S)-I oder OG(YCNT)-2 betätigt werden. Das DSAR kann entweder
mit Addiex'ereingang A durch das Signal IG(DSAR) oder mit dem
Bestimmungsspeicher 84 durch das Signal OG(D) verbunden werden.
Die Fign* 2A bis H zeigen ein bestimmtes Ausführungsbeispiel
der Takt-, Verzweigungs- und Steuersehaltungen 95.
Fig. 2B-1 zeigt einen Impulszyklus am Ausgang des in Fig« 2B-Z
Docket PO 968 024 A 008829/1415
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 Ausgangs impuls, 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 über eine Verriegelung 104 einer Taktsperre 105 gesteuert.
Eine Startsignalleitung 100«steht mit dem Rückstelleingang der
Verriegelung 104 in Verbindung, die bei Empfang eines Impulses die Torschaltung 103 öffnet, so daß die Oszillatorimpulse zum
Taktgebers 101 gelangen, bis durch Setzen der Verriegelung 104 mit einem Signal von der Oder-Schaltung 106 wieder eine Sperrung
erfolgt.
Die Oder-Schaltung 106 liefert ein Stoppsignal, wenn eine Operation in Fig. 6A gezeigten Verfahrens beendet werden muß. So
009829/U15
Docket PO 968 024 A
BAD ORiGfNAL
tritt z.B. am Ende eines Indexes oder wenn eine Fehlerbedingung
festgestellt wird, die ein weiteres zuverlässiges Arbeiten des Verfahrens verhindert, ein Stoppsignal auf. Der Zeitpunkt bestimmter Stoppsignale ergibt sich aus den Bezeichnungen an den
Eingängen der Und-Schaltungen 107 bis 110 in Fig. 2A-a.
Fig. 14Q zeigt den Steuersignalablauf für das in den Fign. 3A
bis E in Verbindung mit der Fig. 1 gezeigte Verfahren. Die Tabelle der Fig. 2Q zeigt die Reihenfolge mehrerer CLK-Zyklen
und die während jedes CLK-Zyklus gelieferten Steuersignale. Die
Tabelle umfaßt 62 verschiedene CLK-Zyklen, die an der linken Seite der Tabelle durch Zahlen zwischen 0 und 127 bezeichnet
sind. Die Tabelle verfügt über drei Spalten, deren mittlere mit 11T oder F" bezeichnet ist und die Normalspalte für aufeinanderfolgende Zyklusoperationen darstellt. Die beiden andern
Spalten, von denen die linke T (richtig) und die rechte F(falsch) bezeichnet ist, werden für Verzweigungsoperationen benutzt·
Die Ausgangsstellung eines Verzweigungstriggers 110 in Fig. 2N steuert, welche der beiden Spalten T oder F in Fig. 2Q zur Anwendung gelangt. Die Stellung dieses Triggers wird jedoch ignoriert, wenn die mittlere Spalts in Fig. 2Q benutzt wird. Die
Auswahl von T oder erfolgt über die Eingangs- und Ausgangsschaltungen in den Fign» 2F-K zusammen mit den Eingangsschaltungen für
die Taktgeber in den Fign, 2B-2 und 2C, Dies© Taktgeber-Eingangssitfiiale unterbrechen den normalen Taktsepp dureh Aufashaltan
ihrü3 lykVii auf; uinmi gefiziiittmv d©r in FIg6 20 gazeigteii GLK-*
1984570
Die CLK-Zyklen in Fig. 2Q beginnen bei 127 mit der Rückstellung
aller kritischen Schaltungen. Die Zyklen enden beim CLK-Zyklus 73, in welchem eine Rückverzweigung zum CLK-Zyklus O erfolgt.
Jede Zyklusfolge von CLK O bis 73 stellt einen Durchgang durch das in Fig. 6A gezeigte Verfahren zur Erzeugung eines CK aus
zwei UK's dar.
Am Anfang wird von CLK 127 auf CLK 0 übergegangen. Der Zyklus
127 wird zu Beginn der Erzeugung eines CK-Verzeichnisses nur jeweils einmal ausgeführt. Danach laufen die CLK-Zyklen in der
Reihenfolge 0-11, 16-27, 32-44, 48-60 und 62-73 ab. Während der Folge von CLK-Zyklen können bestimmte CLK-Zyklen übersprungen
oder wiederholt werden, was durch die Datenkonfiguration der verarbeitenden UK-Paare bedingt sein kann. Die Verzweigungssteuerschaltungen sprechen auf die Datenkonfiguration an.
Die in Fig. 2Q gezeigten CLK-Zyklen führen die in dem Ablaufdiagramm der Fign. 3A bis E gezeigten einzelnen Operationen aus.
In den Fign. 3A-E ist eine Beziehung zwischen jedem durch einen Kasten dargestellten Schritt und den entsprechenden CLK-Zyklen gezeigt, die den betreffenden Schritt ausführen.
auf die Torschaltungen in Fig. 1 gegeben. Einige Signale werden
während derselben Zyklen wie z.B. CLC, CLR oder CLL zu verschiedenen Zeitpunkten auf die Torschaltungen gegeben.
Alle Signale in Fig. 2Q sind in Fig. 11 gezeigt mit Ausnahme der Rückstellsignale, sowie der Verzweigungssignale TZ, TP und
TN. Die Verzweigungssignale werden durch die in den Fign. 2M und N gezeigten Schaltungen erzeugt. Diese Rückstellsignale für
die Register sowie die Register selbst sind herkömmlicher Art und nicht näher beschrieben.
Es folgen Beispiele für die Arbeitsweise der ersten vier CLK-Zyklen in Fig. 2Q. Daraus werden mit Hilfe der Fign. 3A-E
alle CLK-Zyklen in der Fig. 2Q verständlich.
Während des ersten CLK-Zyklus 127 sind das YSAR und DSAR auf
Startadressen für die Erzeugung eines CK-Verzeichnisses gesetzt. Das YSAR ist auf die Adresse des Byte UK CNT-O im Datenspeicher
83 am Anfang des. unverdichteten Verzeichnisses der in Fig. 13 gezeigten Art gesetzt· Das DSAR ist am Anfang auf die Adresse
einer ersten Byteposition im Bestimmungsspeicher 84 gesetzt, in der das L-Byte für den ersten CK der resultierenden CK-Kette
in dem in Fig. 14A gezeigten Format gespeichert werden soll.
Während des CLK-Zyklus 0 treten die Signale OG(YSAR)-2 und SS
auf. Durch diese Signale wird die Adresse im YSAR in den Daten-Speicher 83 gebracht und das Zahlbyte (UK CT-O) des ersten
009829/1415
Docket PO 968 024 A
1964S70
UK adressiert. Das Signal SS startet einen Speicherzyklus, in welchem das adressierte Byte, das auf der Speicherleitung
während der nächsten Zykluszeit zur Verfügung steht, in das SSDR gelesen wird.
Der CLK-Zyklus 1 betätigt IG(YCNT)-2 und OG(YCNT)-2 so, daß das
Byte UK CT-O auf der Leitung 86 in das Register YCNT geleitet und aus diesem auf die Addierereingangsleitung 91 geleitet wird.
Wenn der Addierer 88 ein Eingangssignal empfängt, wird dieses am Ende desselben Zyklus durch CLL in die Verriegelung 89 geleitet
und steht auf der Addiererausgangsleitung 87 für den Nullprüfer 94 während des nächsten Zyklus zur Verfügung.
Der CLK-Zyklus 2 löst ein TZ-Signal aus, durch welches der Ausgang
des Nullprüfers 94 untersucht wird, das Signal OG(YSAR)-I leitet den Inhalt des Registers YSAR auf den Α-Eingang des Addierers
88 und das Signal IG(BI) leitet eine Zahl 1 zum ™ B-Eingang des Addierers 88. Während des Taktimpulses CLL am Ende
des laufenden Zyklus enthält die Addiererverriegelung 89 die um 1 erhöhte YSAR-Adresse.
Während des CLK-Zyklus 3 erfolgt eine Verzweigung, die während des TZ-Signa'os im CLK-Zyklus 2 durch die Stellung T oder F
des Verzweigungstriggers 110 in Fig. 2N bestimmt war. Die Verzweigungsrichtung T oder F hängt von den Bedingungen der Ein-•gangsdaten
ab, die in Fig. 3A gezeigt sind, die das Byte UK CY-O auf lauter Nullen untersuchten. Ein UK-Zählbyte kann normaler-Docket
PO 968 024 A 009829/U1 S
weise nur O sein, wenn es das Indexende anzeigen soll. Somit
wird durch ein UK-Zählbyte aus lauter Nullen die Operation
dadurch gestoppt, daß eine Verzweigung nach 3T erfolgt. Wenn die UK-Zahl verschieden von 0 ist, läuft die Operation mit einer
Verzweigung nach 3F weiter. Das Signal IG(YSAR) leitet die erhöhte YSAR-Adresse in das YSAR, das Signal OG(YCNT)-I bringt den
Inhalt des YCNT-Registers auf Leitung 91 und das Signal OG(YSAR)-I
leitet den Inhalt des YCNT-Registers auf Leitung 92 aus. Die Summe steht im nächsten Zyklus am Verriegelungsschalter 89 zur
Verfügung und ist die Adresse des Byte UK CT-1 im Speicher 83. Beim ersten Vergleich von UK-Y und UK-Z liird dieses UK-1 zu UK-Z.
Auf diese Weise kann man den Dateafluß in Fig. 1 mit Hilfe des
Steuersignalablaufs in Fig. 2Q und des Ablaufdiagramms in den Fign. 3A-E verfolgen und erhält so das in Fig. 6A gezeigte
Verfahren.
Die Verzweigungs-Steuersignale TZ, TP und TN werden in den in
den Fign. 2M und N gezeigten Schaltungen erzeugt. Das Steuersignal TZ wird durch die Oder-Schaltung 122, das Signal TP durch
die Torschaltung 123 und das Signal TN durch die in Fig. 2N gezeigte Oder-Schaltung 126 erzeugt·
Das Signal TZ legt den Zeitpunkt fest, zu welchem die Stellung eines Nullprüfungsverriegelungsschalters 127 in Fig. 2M auf
den Verzweigungstrigger 110 übertragen werden muß, Ist die Verriegelung
127 gesetzt, bedeutet das für die Verriegelung 89 ^n
.... . . ... A Qiii-m/ir^
BAD ORHSINAt
«64670
Weft O und ist die Verriegelung 127 zurückgestellt, wird dadurch
ein von O verschiedener Wert angezeigt. Somit gilt ein Null-Ausgangssignal
der Verriegelung 127 als T-Ste.llung für den Trigger
110 und ein von O verschiedenes Ausgangssignal als F-Stellung.
Die Steuersignale TP und TN bestimmen, wann die Stellung einer Vorzeichen-Prüfverriegelung 128 in Fig. 2M auf den Verzweigungstrigger 110 zu übertragen ist. Der Unterschied zwischen diesen
beiden Signalen besteht darin, daß für dieselbe Ausgangsstellung der Verriegelung 128 der Verzweigungstrigger 110 in entgegengesetzte
Stellungen gestellt wird. Somit setzt ein TP-Signal die Verriegelung 110 auf ein T-Ausgangssignal für ein G1-Ausgangssignal
von der Verriegelung 128, während ein TN-Signal die Verriegelung
110 in die F-Ausgangsstellung zurückstellt.
Die jeweiligen CLK-Zyklen in Fig. 2Q, in denen die Signale TZ,
TP und TN auftreten, sind an den Eingängen der jeweiligen Schaltungen 122, 123, 124 und 126 bezeichnet·
Eine Prüfschaltung 121 in Fig. 2M stellt fest, wann der Inhalt der Addiererverriegelung 89 auf O und auf das Vorzeichen hin
untersucht werden muß, indem die Ausgangsstellung der Schaltung 95 und der Verriegelungsschalter 89 in Fig. 1 auf die Verriegelungsschalter 127 bzw. 128 übertragen wird. Die Schaltung 121
liefert dieses Prüfsignal aufgrund eines Steuersignales an Sie Addiererverriegelung 88 von einem der Register L.? Lg, ZCNT, L.,
Z oder YCNT. Das Prüfsignal wird auf die in Fig. 2M gezeigten
Und-Schalttmgg-ft 131 bis 134 gegeben. Somit werden die beiden
:.o.,t« t^ca 024 a 009829/U16
Verriegelungsschalter 127 und 128 am Ende eines Zyklus durch
einen Taktimpuls CLL aufgrund eines Eingangssignales zur Prüfschaltung 121 entsprechend gesetzt und zeigen den Nullinhalt
und das Vorzeichen des Addiererverriegelungsschalters an.
Wenn der Nullprüfungsverriegelungsschalter 127 oder der Vorzeichenprüfverriegelungsschalter 128 gesetzt sind, behalten sie
ihre Schaltstellung bei, bis die Prüfschaltung 121 wieder ein Eingangssignal empfängt, was viele·Zyklen später der Fall sein
kann. Somit wird durch eines der Signale TZ1 TP oder TN die
Stellung der Verriegelungsschalter 127 oder 128 auf den Verzweigungstrigger 110 übertragen und damit die Operation des
Systems entsprechend der in Fig. 2Q gezeigten Folge gesteuert. Der Verzweigungstrigger 110 wird außerdem am Ende eines Taktzyklus durch einen Taktimpuls CLL gesetzt, w®an das Signal TZ, TP
oder TN anliegt, so daß dieser spezielle T-oder F-Ausgang beim nächsten und den folgenden CLK-Zyklen zur Verfügung steht, bis
der Trigger 110 wieder betätigt wird.
Da.s Aus gangs signal des Verzweigungstriggers 110 wird also gemäß
Darstellung in Fig. 2A dazu benutzt, phasenverschobene CLK-Zyklen für die Ablaufsteuerung in Fig. 2C mit CLA-Taktimpulsen
auszuwählen. Die in Fig. 2Q gezeigte normale Reihenfolge läuft dadurch ab, daß die Ablaufsteuerung in Fig. 2C die CLB-Impulse und der Ablaufsteuerungstaktschalter in Fig. 2D die CLC-Impulse empfängt.
Die Ablaufsteuerung in Fig. 2C liefert ihr Ausgangssignal
auf den Eingang des Ablaufsteuerungstaktschalters in Fig. 2D. Durch einen Impuls auf der Startsignalleitung 100 werden alle
Binärtrigger der Ablaufsteuerung auf 1 gesetzt und der Taktgeber 101 in Fig. 2B-2 gestartet, so daß er seine Taktimpulse
abgibt. Die aus Einsen bestehenden Ausgangssignale der binären
Trigger 1 bis 64 werden auf die Verriegelungsschalter 1 bis 64 in Fig. 2D durch den CLC-Taktimpuls übertragen. Dadurch werden
die Leitungen CL 1 bis 64 zum binären Decodierer 23 in Fig. 2E erregt, der daraufhin einen Impuls auf seine Ausgangsleitung
CLK 127 gibt. Dieser Aus gangs impuls auf der Leitung CLK 127 bereitet die Und-Schaltung 208 in Fig. 2C vor, die beim nächsten
CLA-Impuls den Taktgeber dadurch auf lauter Nullen stellt, daß
sie alle binären Trigger (BT) auf 0 setzt. Diese Schaltstellungen werden in der oben beschriebenen Art auf die Schaltungen in den
Fig. 2D und E so übertragen, daß die Leitung CLK 0 erregt wird. Dadurch beginnt die normale CLK-Zyklusfolge, in der die einzelnen
CLK-Zyklen durch CLC-Impulse eingeleitet werden, die die Obertragung
in die Verriegelungsschalter L1-L64 veranlassen. Durch CLB-Impulse wird dann die Ablaufsteuerung der Reihe nach durch
ihre Zyklen geschaltet, bis diese Operation durch Betätigen einer der Eingangsschaltungen in Fig. 2C unterbrochen wird.
Jeder CLB-Taktimpuls durchläuft die Und-Schaltung 201 in Fig. 2C
und schaltet den Binärtrigger 1 um. Davon ausgenommen sind die Zeiten während der Impulse CLK 11T, 35F, 54T, 60 und 62F. Die
Ünd-Schaltungen 211 bis 215 in Fig. 2D koppeln ihre Ausgangs-
Docket PO 968 024 A 009829/U1B
Signale C 2 bis 64 auf die Und-Schaltungen 203 bis 207 in Fig.
2C zurück. Die Und-Schaltung 202 empfängt das echte Ausgangssignal
C1 vom Verriegelungsschalter L1 in Fig. 2D.
Nachdem CLK O einen Taktimpuls CLA dazu veranlaßt, alle binären
Trigger auf O (F-Stellung) zu stellen, schaltet der folgende
CLB den Binärtrigger 1 in die T-Stellung, so daß die Ablauf»
Steuerung auf 1 steht. Die folgenden CLC-Impulse übertragen diese
Zahl 1 auf Taktschalter in Fig. 2D, der dann CL1 auslöst und das Ausgangssignal C1 auf die Schaltung 202 zurückkoppelt.
CLK 1 erzeugt CK 1 aus der in Fig. 2E gezeigten Decodierschaltung. Der nächste CLB-Impuls während der Phase CLK 1 läuft durch
die Schaltungen 201 und 202 und setzt den Taktgeber auf die Zahl 2, die dann auf den Taktschalter übertragen wird0 Impuls
CLC bringt CL2 und beginnt CLK 2. Es erfolgt keine Rtickkoppelung
von der Ünd-Schaltung 211. Der CLB-Impuls schaltet in den nächsten
Zyklen nur den Binärtrigger 1 um und liefert di© Zahl 3 an die Ablaufsteuerung, wobei diese Zahl durch CLC auf den Taktschalter
übertragen wird. Dadurch wird Und-Schaltung 211 durchgeschaltet, so daß CL1 und CL2 geliefert und CLK 3 gestartet
werden. C2 wird auf die Schaltung -203 in Fig. 2C zurückgekoppelt
und CI auf die Schaltung 202. Somit schaltet der CLB-Impuls des nächsten Taktzyklus die Binärtrigger 1, 2 und 3 so um, daß man
die Zahl 4 für die Taktsteuerung erhält.
Auf diese Weise wirken die Ablaufsteuerung und der Ablaufsteuerungstaktschalter
als eine Einheit so» daß aufeinanderfolgende iHwk*ί. ^ :'„i*O34 , 09*3329/HIS
Zyklen vom Taktgeber 101 sie binär weiterschalten. Diese binäre Schrittfolge wird durch Erregung eines der Eingänge der Und-Schaltungen
zur Schaltung 14C unterbrochen. Diese Unterbrechung erfolgt unter Steuerung der T- und F-Stellungen des Verzweigungstriggers 110 in Fig. 2N, und zwar entsprechend der in Fig. 2Q
angegebenen Verzweigungen.
Die Signale CL 1 bis 64 von der Taktgeberverriegelung in Fig. 2D werden als binäre Eingangssignale auf einen Binärdecodierer gegeben,
der in Fig. 2E gezeigt ist. Der Decodierer kann herkömmlicher Art sein, der bei jeder Kombination binärer Eingangssignale
eine bestimmte Ausgangsleitung erregt. Die Ausgangsleitungen
62 vom Decodierer entsprechen den 62 verschiedenen CLK-Zyklen, die in d®r linker* Spalte In Fig. 2Q aufgeführt sind. Jede Leitung
für" einen CLK-Zyklus ist zu jedem beliebigen Zeitpunkt während "
einer Periode des Taktgebers 101 stromführend,
Die Ein- und Ausgabesteuersignale IG und OG für die Register werden durch die in der Fign* 2F-L gezeigten Steuerschaltilgen
erzeugt, die die CLK-Signale und die T- und F-Signale von dem
Verzweigungstrigger 110 in Fig. 2N, von dem alle IG- und QG-Signale
abgeleitet werden, empfangen.
Die in den Fign. 2F-1 und 2F-2 erzeugten IG-Steuersignale st©u™
em den Addiererausgang« Diese IG-Steuersignale werden mit CLR-Impulsen
getaktet·
Docket PO 968 024 A
009829/1416
BAD ORIQINAt.'
Alle anderen IG- und OG-Signale sind während des ganzen erforderlichen
CLK-Zyklus vorhanden, der mit der CLC-Taktzeit beginnt und
solange dauert, wie ein Zyklus des Taktgebers 101. Die in den Fign. 2G-1 und 2G-2 erzeugten Steuersignale steuern die Ausgabe
zum Addierereingang A, die in Fig. 2H erzeugten Steuersignale die Ausgabe zum Addierereingang B. Die Steuersignale in Fig. 2J
steuern die Ausgabe zum Datenspeicher 83. Die Steuersignale in Fig. 2K veranlassen die Eingabe aus der Datenspeicherausgangsleitung
87 und die Steuersignale in .Fig. 2L die Eingabe in den Bestimmungsspeicher 84.
Die Tabelle der Fig. 2Q faßt das Verfahren der Fig. 6A, angewendet
auf den in Fig. 1 gezeigten Datenfluß unter Verwendung der im Ablaufdiagramm der Fign. 3A-F gezeigten Steuersignalfolge,
-sammen. Fig. 3 zeigt die Zusammengehörigkeit der Fign. 3A-F.
In Fig. 3A werden im Schritt 10 alle kritischen Schaltungen der
Fig. 1 zurückgestellt. In Fig. 6A erfolgt diese Rückstellung im Schritt 10, da.die Register F. und L durch die Rückstellung
A A
auf 0 gesetzt werden. Außerdem werden YSAR und DSAR auf die erforderlichen Startadressen in den Speichern 83 und 84
gesetzt·
Anschließend wird Schritt 11 eingeleitet, um das Schlüsselpaar
UK-Y und UK-Z beginnend mit dem ersten Paar zu erhalten. Schritt
11 wird ausgeführt, wenn zwei aufeinanderfolgende UKCT-Bytes entsprechend in die Register YCNT und ZCNT geholt werden. Zuerst
Docket PO 968 024 A 001829/1416
wird das YSAR auf die Adresse des Zählbytes (UK CT) für das erste UK-Y gesetzt. Dann wird dieses Byte in das SSDR geholt
und während der Taktzyklen 0 und 1 in das Register YCNT geleitet. Wie alle abgerufenen UK CT-Bytes ergibt auch das Byte YCNT bei
der Prüfung einen O-Wert. Als nächstes wird die Adresse für UK-Z erzeugt, in dem das Y-Hinweiszahlenbyte (PTR CT) abgerufen,
zum Inhalt von YCNT addiert, diese Summe zum Inhalt von YSAR addiert und das Ergebnis in das ZSAR geladen wird. Zu diesem
Zweck wird während der CLK-Zyklen 3 und 4 der Inhalt der Register YCNT und YSAR auf den Addierer 88 und ihre Summe von der Addiererverriegelung
89 auf das Register ZSAR übertragen, um die Adresse des ersten PTR CT-Byte zu erhalten. Dann adressiert das
ZSAR den Datenspeicher 83, um das Y-Hinweiszahlenbyte (PTR
CT) abzurufen, welches während der CLK-Zyklen 4 und 5 in das Y-Register übertragen wird. Während der CLK-Zyklen 5, 6 und
wird die nächste UK CT-Byteadresse erzeugt, indem der Inhalt des Y-Registers und des ZSAR auf den Addierer 88 und deren Summe
von der Addiererverriegelung 89 auf das ZSAR übertragen werden, um dieses mit der Adresse des UK CT-Byte für den laufenden UK-Z
zu versorgen.
Schritt 12 umfaßt die Nullprüfung für jedes abgerufene UK-Z-Zahlenbyte
(CT BT) juach seiner Übertragung auf die Addiererverriegelung
89 während des CLK 8. Ergibt sich bei der Prüfung eine O, wird das Ende des Verzeichnisses angezeigt und die CLK-Zyklen
9T und 1OT stellen die Register Lß und F auf O zurück. Ist das
Ergebnis verschieden von O1 läuft Schritt 13 als nächster ab.
Docket PO 968 024 A 009829/1416
Schritt 13 wird ausgeführt, wenn die entsprechenden Y- und Z-Bytes
vom Speicher 83 abgerufen, auf die Register Y und Z übertragen und während der CLK-Zyklen 8F, 9F, 1OF und 16 verglichen
werden. Den Vergleich zwischen den Y- und Z-Bytes in den Registern erhält man durch deren Übertragung auf den Addierer 88, der das
echte binäre Z-Byte zur Zweierkomplementform des Y-Byte addiert. Gleichheit zwischen den Bytes Y und Z wird durch eine 0 in der
Verriegelung 89 angezeigt und durch die Nullprüfschaltung 94 festgestellt. Ungleichheit wird durch einen von O verschiedenen Wert
in der Verriegelung 89 angezeigt. Wenn Z größer als Y ist, ergibt sich durch die Addition des Zweierkomplementes kein Überlaufbit
auf den Vorzeichentrigger G, Ist Z kleiner als Y, ist ein Überlaufbit
für den Vorzeichentrigger G vorhanden. Ob der Addierer 88 addiert oder subtrahiert (vergleicht) wird von einem IG (C)-Signal
an die Komplementiereinrichtung 92 gesteuert*
Der Abruf von Y- und Z-Bytes endet für ein UK-Paar, wenn seine
höchste ungleiche Byteposition (D -Position) dadurch festgestellt, daß Y kleiner als Z aufgefunden wird. Dann beginnt Schritt 16.
Schritt 14 beginnt stets, wenn während CLK 17 und 1ST im Schritt
13 Gleichheit zwischen den Y- und Z-Bytes festgestellt wird. Dann wird eine 1 zu der Zahl im Register Eß während CLK 18T und
19T addiert, ändern der Eß-Inhalt durch den Addierer 88 übertragen
wird, während das IG (B1)-Signal vorhanden ist. Das erhöhte Ergebnis wird vom Verriegelungsschalter 89 in das EB«Register geladen.
Dann werden die nächsten Y- und Z-Bytes im UK-Paar abge-
cke* PO Ui Q2A Λ HM 9923/1415
BAD ORJGINAU
rufen» indem man den Inhalt des YSAR und des ZSAR über den Addierer
88 um 1 erhöht und so die Adressen für die nächsten Y- und Z-Bytes im Speicher 83 erhält. Außerdem müssen die übrigen UK-Bytezahlen
in den Registern YCNT und ZCNT für jedes abgerufene Y- und Z-Byte um 1 erniedrigt werden. Das erfolgt entsprechend
in den CLK-Zyklen 19T, 21, 22, 23F, 24F und 23F, 24F, 26 oder 23T,
24T. Der Registerinhalt wird erniedrigt, indem der Inhalt der Register YCNT oder ZCNT auf den Α-Eingang des Addierers 88 übertragen
wird, während die Steuersignale IG(C) und IG (B1) vorhanden sind. Jedes erniedrigte Ergebnis in der Verriegelung 89. wird während
der CLK-Zyklen 21, 22 und 27 oder 25 auf O untersucht, um
festzustellen, ob das Ende eines UK erreicht ist. Ist das nicht der Fall, wird das in der Verriegelung 89 stehende Ergebnis entsprechend
auf das Register YCNT oder ZCNT übertragen.
Solange die Dg-Position im Schritt 13 nicht festgestellt und
der Inhalt weder des Registers YCNT noch des Registers ZCNT im Schritt 14 gleich 0 ist, werden im Schritt 14 die nächsten Y-
und Z-Bytes abgerufen, indem man die Adresswerte im YSAR \-?-A
DSAR um 1 erhöht.
Sobald im Vergleicherschritt 13 die Dg-Byteposition festgestellt
wird, endet die Vergleichsoperation und es läuft Schritt 16 ab. Die momentan gespeicherte Eß-Zahl ist gültig und stellt die
UK-Byteposition (Dß-1) dar·
Bis zum Abfühlen der D -Position werden Y- und Z-Bytes abgerufen f,.'te: » im w a 00 9 829/ UI 6
B^ OR(QlNAL
und verglichen, der Inhalt der Register YCNT und ZCNT erniedrigt, und der Inhalt des E_-Registers erhöht, so, wie die Schritte 13
und 14 abwechselnd ablaufen. Die Dß-Postion wird grundsätzlich
festgestellt, bevor der Inhalt eines der Register YCNT oder ZCNT auf O erniedrigt wird, d.h. bevor die- Endposition entweder für
UK-Y oder für UK-Z erreicht ist. Wenn YCNT vor ZCNT Null wird, was während des CLK-Zyklus 25F angezeigt wird, wird der laufende
ED- Wert gespeichert und dieser definiert die D15-PoSition. ZCNT
kann nur vor YCNT Null werden, wenn.ein UK-Sortierfehler vorliegt
und dieser Fehler durch 48C-1 angezeigt ist. Außerdem kann ZCNT nicht auf derselben Byteposition 0 werden wie YCNT; dieser Fehler
wird durch 48C-2 angezeigt. Somit bedeutet die Fehleranzeige 48C-1 oder 48C-2, daß UK-Y größer oder gleich UK-Z ist, also
ein Sortierfehler vorliegt. Die Operation kann nicht weiterlaufen,
{ ;vor nicht alle Sortierfehler in der Folge bnverdichteter Schlüssel
behoben sind.
Bei der Ausführung des Schrittes 16 wird der Inhalt des Eg-Registers
auf den Α-Eingang des Addierers 88 übertragen und der Inhalt des E.-Registers über die Komplementiereinrichtung 93
auf den B-Eingang, und so erhält man den subtrahierten Wert S in der Verriegelung 89. Dieser Wert wird von dort in den CLK-Zyklen
32 und 33 auf das S-Register übertragen. Im Schritt 17 wird durch Untersuchung auf 0 und Vorzeichen festgestellt, ob
S kleiner, gleich oder größer als 0 ist. Wenn der Nullprüfer 94 einen von 0 verschiedenen Wert anzeigt, gibt die Vorzeichenstelle
G an, ob F größer oder kleiner als 0 ist. Ist es kleiner als 0, Docket PO 968 024 A 009828/1418
BAD ORIGINAL
steht in der Position G bei einem von O verschiedenen Ausgangsergebnis
des Nullprüfers 94 kein Bit. Dann läuft Schritt 30 während der CLK-Zyklen 34F und 35T ab und der Inhalt des L-Re-
gisters wird auf 0 gesetzt, indem ein Addiererzyklus eingeleitet wird, ohne daß Eingangssignale auf den Addierer gegeben werden·
Dadurch wird die Addiererverriegelung 89 auf lauter Nullen gesetzt und dieser Inhalt dann auf das L -Register übertragen, um während
der CLK-Zyklen 36T und 37T den Schritt 30 abzuschließen.
Anschließend wird während der CLK-Zyklen 37T und 38T der Schritt
31 ausgeführt, in welchem der Inhalt des Eß-Registers um 1 erhöht
wird, indem dieser über den Addierer 88 geschickt wird, während ein Einersignal auf die Steuerleitung IG (B1) gegeben
wird. Die erhöhten Ergebnisse in der Addiererverriegelung 89 werden auf das Fg-Register übertragen und damit der Schritt 31
abgeschlossen.
Wenn im Schritt 17 jedoch festgestellt wird, daß S gleich 0 ist, läuft der Schritt 26A während der CLK-Zyklen 34T und 35T ab und
der Inhalt des L^-Registers wird auf den Α-Eingang des Addierers
88 übertragen und kein Eingangssignal auf den B-Eingang gegeben. Da der unveränderte L^-Wert dann aus der Addiererverriegelung 89
kommt, stellt der Nullprüfer 94 fest, ob der L -Wert gleich oder verschieden von 0 ist und der Schritt 26A wird ausgeführt. Wenn
der L.-Wert verschieden von 0 ist, laufen die oben beschriebenen A *
Schritte 30 und 31 ab. Stellt der Nullprüfer 94 jedoch fest, daß
gleich 0 ist, wird anstelle des Schrittes 30 der Schritt 32
Docket PO 968 024 A 0 0 9 8 2 9 / U 1 S
ausgeführt und ein echter Einerwert auf die Addiererverriegelung
89 gegeben, indem die Steuerleitung IG (B1) erregt wird· Der Inhalt der Verriegelung wird dann zum Abschluß des Schrittes 32
auf das Lß-Register übertragen. Anschließend wird der Inhalt des
Ε,,-Registers auf den Α-Eingang des Addierers 88 übertragen, der ,
B-Eingang nicht erregt und zum Abschluß des Schrittes 33 der Eg-Wert in der Verriegelung 89 in das F -Register geleitet.
Wenn auf der anderen Seite im Schritt 17 festgestellt wird, daß
S größer als O ist, beginnt während der CLK-Zyklen 34F und 35F
der Schritt 26B, in welchem der Inhalt des Registers LA in die
Verriegelung 89 übertragen und genauso wie oben für Schritt 26A beschrieben auf O geprüft wird. Wenn in diesem Fall L. gleich
ist, was durch den Nullprüfer 94 angezeigt wird, wird der Inhalt des S-Registers auf den Addierer 88 gegeben, um 1 erhöht und
das Ergebnis in der Verriegelung 89 während des CLK-Zyklus 4OT
und 41T in das L -Register übertragen und damit der Schritt 34
abgeschlossen. Anschließend wird Schritt 35 ausgeführt, in welchem
der Inhalt des E.-Registers unverändert durch den Addierer 88
und die Verriegelung 89 geleitet und in das F -Register über-
tragen wird, wodurch der Schritt 35 während der CLK-Zyklen 41T und 42T abgeschlossen wird.
Wenn LA verschieden von 0 und S größer als 0 ist, wird während
der CLK-Zyklen 4OF und 41F der Schritt 36 ähnlich ausgeführt wie der Schritt 34, jedoch wird kein Steuersignal IG (B1) auf
den Addierer 88 gegeben. Anschließend läuft ähnlich wie der
Schritt 35 während der CLK-Zyklen 41F und 42F der Schritt 37
ab, jedoch wird jetzt mit dem Inhalt des Ε-Registers auch ein Steuersignal IG (BI) auf den Addierer 88 gegeben.
und F wird während der CLK-Zyklen 48 bis 52 gespeichert» Nach
B
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 L^ und keiner Verschiebung beginnt
der Schritt während des CLK-Zyklus 54F. Da in diesem Zeitraum
der Inhalt der Register Lß und Eß ü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
L. und E4. Ln wird während der CLK-Zyklen 52 und 53 auf 0 unter-AAB
sucht, um festzustellen, ob Schritt 41 übersprungen werden soll.
Wenn Lg verschieden von O 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 54T.
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 L. gleich 0 war oder nicht· War L. gleich 0, enthielt der vorhergehende CK keine K-Bytes und die laufenden K-Bytes beginnen ,
an der Deposition des laufenden UK-Z. Dieser Vorgang läuft in *
Docket PO 968 024 A 008828/U18
Wenn L jedoch verschieden von O ist, enthielt der vorhergehende
CK K-Bytes und die laufenden K-Bytes beginnen an der Position
(D +1) im laufenden UK-Z. In dem nun ablaufenden Schritt 37A wird anstelle der Zahl 1 im Schritt 35A die Zahl 2 addiert. Während der CLK-Zyklen 24 bis 41 enthält das ZSAR den Adresswert für
die Dg-Byteposition im Speicher 83. Während der CLK-Zyklen 42 und
43 erhält man den D -Wert durch Subtraktion des S-Wertes vom D -Wert
A B
und Addition einer 1 bzw. 2 in den Schritten 3SA oder 37A, Dieser
ZSAR-Wert steht zur Verfügung, um das erste K-Byte abzurufen,
wenn L. gleich O ist, wie es nach dem Schritt 33 oder 35 der Fall
A
Wenn L. von O verschieden ist, wie es nach Schritt 36 der Fall
ist, wird die Adresse D^+1 benötigt und der eingestellte ZSAR-Wert auf den Α-Eingang des Addierers übertragen, während ein
Signal IG (B1) auf den B-Eingang gegeben wird. Das Ergebnis D.+1 wird dann aus der Verriegelung 89 in- das ZSAR geladen und bildet
die .erste K-Byteadresse.
83 in den Bestimmungsspeicher 84 dadurch übertragen, daß das Byte
in der ZSAR-Adresse während der
88 und die Verriegelung 89 auf das DSDR geleitet und während der CLK-Zyklen 56 und 57 auf der laufenden DSAR-Adressposition
Docket PO 968 024 A 009829/1416
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 Obertragen des Inhaltes
des YSAR oder des DSAR auf den Α-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 das ZSAR und DSAR um jeweils 1 erhöht und das nächste
K-Byte übertragen ist, wird der Inhalt des L -Registers während
Jd
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 L« von 0 verschieden ist, wird im CLK-Zyklus 62F 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 Lß 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 Docket PO 968 024 A 009829/1415
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 D -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 Dg-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 62T und 63 festgestellt wird, daß YCNT gleich 0 ist, enthält das YSAR die Adresse
des PTR CT-Byte. Ist YCNT von O verschieden, muß die Adresse dieses Byte im CLK-Zyklus 63 und 64F erzeugt werden, indem der
Inhalt des YCNT zum Inhalt YSAR addiert wird. Während der CLK-Zyklen 63 und 64F 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 ^SDR und das YCNT-Register
gesetzt· Der Inhalt des YCNT-Registers wird dann während der CLK-Zyklen
65 undv66 auf das DSDR übertragen und im Bestimmungsspeicher
84 an der momentan vom DSAR adressierten Position gespeichert. Während dar CLK-Zyklen 66 und 67 wird der Inhalt des YSAR
dann in der oben beschriebenen Art über den Addierer 33 um 1
Doc*« PO 968 024 A
erhöht, das Register YCNT wird erniedrigt und auf O 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 Zyklen 68 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 YCNT-Registers auf die Addiererverriegelung 89 übertragen und auf O geprüft. Wenn der erniedrigte Inhalt des
YCNT-Registers von O 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.
Wenn bei der Prüfung festgestellt wird, daß der Inhalt des YCNT
auf O erniedrigt ist, ist die Übertragung des Y-Hinweises beendet und es läuft der CLK-Zyklus 71T ab. Dann wird der Inhalt
des YSAR und des DSAR in den CLK-Zyklen 71T und 72 erhöht und so die Speicherung des nächsten Byte in den Speichern 83 und
vorbereitet und das Eß-Register im CLK-Zyklus 73 auf O gesetzt.
Am Ende des Schrittes 43 läuft wieder Schritt 11 ab und i* CLK-Zyklus 0 wird das nächste UK-Paar abgerufen. Nach Übertragung
des letzten Y-Hinweises im Schritt 43 enthält das YSAR die Adresse
für das Zahlbyte (UK CT) des UK-Z in der jetzt abgeschlossenen Operation* Somit enthält das Register YSAR die Adresse für den
UK-Y im nächsten UK-Paar und steht für den Anfang der nächsten
Operation mit Eintritt in den Schritt 11 bereit.
Ein- zweites Ausführungsbeispiel der Erfindung ist in der in den
Fign. 15 und 15A-F gezeigten Schaltungen wiedergegeben. Dieses
Ausführungsbeispiel arbeitet mit einem größten Feldformat F(Faktor)
für ein verdichtetes Verzeichnis, daß durch Ablaufdiagramm in Fig. 6B erzeugt wird· Der Hauptunterschied zwischen den beiden
Ablaufdiagrammen in den Fign. 6A und B liegt hinter dem Ausgang des Schrittes 30. In Fig. 6B wird das E^-Register dazu benutzt,
den größten Wert für Fß zur erzeugen, während in Fig. 6A das Eß-
Fig. 6B wird in einem Prüfschritt 26 der Inhalt des LA-Registers
untersucht und so bestimmt, ob zur Erzeugung von F zum Inhalt des E -Registers eine 1 addiert werden muß oder nicht. Wenn L.
verschieden von 0 ist, beginnt der Schritt 31A, in welchem eine 1 zur Erzeugung von Fß zu E addiert wird. Wenn andererseits L
O ist, was im Schritt 26C festgestellt wird, beginnt der Schritt 31B, in welchem der laufende Inhalt des E -Registers in das F_-
Register gespeichert wird. Die beiden Schritte 31A und 31B münden in den Schritt 44 in Fig. 6B.
In den Fign· 15A bis F ist die Steuerschaltung für das zweite
Ausführungsbeispiel gezeigt, die die in den Schaltungen notwendigen Änderungen für das in den Fign. 2A bis N gezeigte erste
Ausführungsbeispiel enthält. Somit zeigt die Fig. 15 das Verfahren der Fig. 6B angewandt auf den in Fig. 1 gezeigten Datenfluß. Die Fig. 15 unterscheidet sich von der Fig. 3 dadurch,
daß anstelle der Fig. 3C die Fig. 15A tritt. In Fig. 15A erhält
Docket PO 968 024 A 009·29/141Β
19S4570
man den höchsten F -Wert durch die Schritte 31A, 26C und 31B
in einer etwas anderen aber gleichwertigen Folge, als sie in Fig.
6B vorliegt*
In Fig. 15 wird während des CLK-Zyklus 37T, 38 im Schritt 31A
eine 1 zum Inhalt des Registers E. addiert und das Ergebnis im Register F gespeichert.
Es folgt eine unbedingte Verzweigung zum CLK-Zyklus 45, in welchem
im Schritt 26C der Inhalt des Registers LA, der im CLK-Zyklus 37T
auf die Addiererverriegelung 89 übertragen wurde, auf 0 geprüft wird. Wenn L. von 0 verschieden ist, verzweigt Schritt 26C zum
CLK-Zyklus 46F, der unbedingt zum CLK-Zyklus 48 verzweigt. Wenn andererseits L gleich 0 war, verzweigt der Schritt 26C zum
CLK-Zyklus 46T, der seinerseits den Inhalt des Registers E. auf
den Addierer 88 überträgt. Im CLK-Zyklus 47 wird der in der Addiererverriegelung stehende Inhalt des EA-Registers in das Register Fg geleitet und der Schritt 31B ausgeführt. Anschließend
beginnt der Schritt 48 und danach läuft die Operation genauso weiter wie beim ersten Ausführungsbeispiel.
Die Fig. 15B zeigt Steuersignalablauf beim zweiten Ausführungsbeispieles. Dort sind nur die CLK-Zyklen im einzelnen gezeigt,
die sich von den CLK-Zyklen des ersten in den Fign. 2Q-1 bis 2Q-3 gezeigten Ausführungsbeispiels unterscheiden. Die in Fig·
1.5B gezeigten Zyklen ergeben die in Fig. 15A gezeigten Schritte.
Docket PO 968 024 A 009829/1415
Fig« 15F zeigt die Änderung der in Fig. 2N gezeigten Schaltung,
die für die Nullprüfung benötigt wird, welche die in den Fign. 15A und B gezeigten Schritte und Zyklen erfordert. Die in
Fig. 15F gezeigte Schaltung wird für die entsprechende Schaltung 122 in Fig· 2N eingesetzt und alle anderen Schaltungen der zuletzt
genannten Figur werden unverändert übernommen. Fig. 15C ist ein Ersatz für die Schaltungen in Fig. 2C-2 die für die nötige Ablaufsteuerungstaktierung beim zweiten Ausführungsbeispieles benötigt
werden. Das zweite Ausführungsbeispiel übernimmt den Ablaufsteuerungstaktschalter der Fig. 2D und den zugehörigen Decodierer in
Fig. 2£ unverändert* Außerdem wird im zweiten Ausführungsbeispiel die in Fig. 15D gezeigte Schaltung für die entsprechende Schaltung
in der Fig. 2F-1 eingesetzt. Alle anderen Schaltungen in den Fign.
2F werden unverändert übernommen. Die in Fig. 15E gezeigte Schaltung ersetzt die entsprechenden Schaltungen in den Fign. 2G-2 und
übernimmt die übrigen Schaltungen in den Fign. 2G unverändert«
009828/141S
Claims (1)
1I64S7Ö
PATENTANSPRÜCHE
1. Verfahren zum Wiederauffinden gespeicherter Informationen in Verbindung mit einem Verfahren zur Erzeugung verdichteter
Schlüssel aus einer Folge sortierter, verschiedenen Informationsgegenständen zugeordneter, unverdichteter Schlüssel,
dadurch gekennzeichnet, daß aus der sortierten Folge nacheinander jeweils ein Schlüssel zusammen mit dem nächstfolgenden
Schlüssel aufgerufen wird, daß die in der Sortierfolge gleichwertigen Bytepositionen beider Schlüssel 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 einem der
beiden Schlüssel zugeordneten 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 unverdichi,ten Schlüssel
blockiert wird.
0Q9829/U15
Docket PO 968 024 A
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
Docket PO 968 024 A 00 9 829/1416
1S84I70
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ß aufgrund 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 aufgrund 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
Srhlüsselbyte \Torhandc?n ist«
12. Verfahren nach den Ansprüchen 6 oder 11, dadurch gekennzei-Docket
I1O 968 024 A 00S82U/141S
. - 89 -
chnet, 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 Schltisselpaares 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.
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 Sc lüssels entsprechenden Codewert enthält, daß dieser Wert aber nicht größer ist als die
Anzahl, der Bytes bis zur höchsten ungleie!i@n Byteposition.
15» Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß in
das Kontrollfal« ein Code gestellt wird, der dia Anzahl dar
4Ji Lm jt^UHgtm verdichteten Schlüssel angibt.
Itoefcor P^ ·)Γ)0 OU A
BAD ORlGtNAL
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 true DE1964570A1 (de) | 1970-07-16 |
DE1964570B2 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 |
US4031515A (en) * | 1974-05-01 | 1977-06-21 | Casio Computer Co., Ltd. | Apparatus for transmitting changeable length records having variable length words with interspersed record and word positioning codes |
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 |
GB2406680B (en) * | 2000-11-30 | 2005-05-18 | Coppereye 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 FR FR6945785A patent/FR2027736A1/fr not_active Withdrawn
- 1969-12-30 GB GB63202/69A patent/GB1280483A/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
US3593309A (en) | 1971-07-13 |
JPS4939850B1 (de) | 1974-10-29 |
FR2027736A1 (de) | 1970-10-02 |
GB1280483A (en) | 1972-07-05 |
DE1964570B2 (de) | 1972-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1964570A1 (de) | Verfahren zum Wiederauffinden gespeicherter Informationen | |
DE2513862C2 (de) | Vorrichtung zum Decodieren von Codes minimaler Redundanz und variabler Länge | |
DE602004010922T2 (de) | Speicher und stromeffizienter mechanismus für schnelles tabellennachschlagen | |
DE2646163C3 (de) | Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers | |
DE3587535T2 (de) | Verfahren und Vorrichtung zur numerischen Datenkodierung. | |
DE2547035C3 (de) | Datenverarbeitungseinrichtung | |
DE2519381C3 (de) | ||
DE2227148B2 (de) | Schaltungsanordnung zur Umsetzung digitaler Daten | |
DE3687285T2 (de) | Verfahren und anordnung zur modifizierung eines lauflaengenbegrenzten codes. | |
DE2918223A1 (de) | Schnittstelleneinrichtung zum einsatz zwischen einem digitalrechner und einem speicher | |
DE2809623A1 (de) | Verfahren und vorrichtung zur assoziativen informationswiedergewinnung | |
DE68920739T2 (de) | Daten-Kodierung für den Sofortstart von PRML-Empfängern. | |
DE2208664A1 (de) | Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge | |
DE2610411A1 (de) | Datenverarbeitungsanlage | |
DE2010772A1 (de) | ||
DE2000340A1 (de) | Verfahren und Vorrichtung zum Suchen verdichteter gespeicherter Informationen | |
DE2747196A1 (de) | Vergleicheranordnung zum vergleichen von information variabler laenge | |
DE1449544A1 (de) | Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk | |
DE2515099A1 (de) | Schaltung zur staendigen erzeugung eines longitudinalen paritaetswortes fuer den hauptspeicher eines digitalen rechenautomaten | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE2136270A1 (de) | Verfahren und Vergleicher zum Vergleich zweier Binärzahlen | |
EP0856176A1 (de) | Datenbankmanagementsystem sowie datenübertragungsverfahren | |
DE3443272C2 (de) | Verfahren zum Ausbreiten eines Fehlers in Daten und Fehlererkennungssystem | |
DE1954475A1 (de) | Zugriffsstelle einer Datenverarbeitungsanlage | |
DE1965507A1 (de) | Verfahren zum Wiederauffinden gespeicherter Informationen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
SH | Request for examination between 03.10.1968 and 22.04.1971 | ||
BHV | Refusal |