DE2217500A1 - Method and device for searching for key words in an electronic data processing system - Google Patents

Method and device for searching for key words in an electronic data processing system

Info

Publication number
DE2217500A1
DE2217500A1 DE19722217500 DE2217500A DE2217500A1 DE 2217500 A1 DE2217500 A1 DE 2217500A1 DE 19722217500 DE19722217500 DE 19722217500 DE 2217500 A DE2217500 A DE 2217500A DE 2217500 A1 DE2217500 A1 DE 2217500A1
Authority
DE
Germany
Prior art keywords
address
address list
register
bit
successor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE19722217500
Other languages
German (de)
Inventor
Luther Jay Poughkeepsie N.Y. Woodrum (V.St.A.)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2217500A1 publication Critical patent/DE2217500A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees

Description

Verfahren und Einrichtung zum Suchen von Schlüsselwörtern in einer elektronischen Datenverarbeitungsanlage Die Erfindung betrifft ein Verfahren und eine Einrichtung zum Suchen von Schlüsselwörtern in einer elektronischen Datenverarbeitungsanlage, die einen Adressenspeicher enthält zur Aufnahme der Schlüsselwörter zusammen mit einer Adressenliste, deren Einträge eine Baumstruktur bilden, die ferner einen oder mehrere Datenspeicher enthält zur Aufnahme von Daten, deren Adressen in den Schlüsselwörtern enthalten sind, und die einen Suchwortspeicher aufweist zur Aufnahme eines Suchargumentes, dessen Elemente den Einträgen der Adressenliste zugeordnet sind und einen Suchpfad durch die Baumstruktur festlegen, in dessen Endzweigen sich die Schlüsselwörter befinden.Method and device for searching for keywords in a electronic data processing system The invention relates to a method and a device for searching for keywords in an electronic data processing system, which contains an address memory for receiving the keywords together with an address list, the entries of which form a tree structure, which also contains an or contains several data memories for holding data whose addresses are in the keywords are included, and which has a search word memory for receiving a search argument, whose elements are assigned to the entries in the address list and a search path through the tree structure, in the end branches of which the keywords are located.

Es ist bekannt, zum Auffinden von Daten in den Speichern einer Datenverarbeitungsanlage Schlüsselwörter zu verwenden, die nacheinander mit einem Suchargument verglichen werden. Die Schlüsselwörter sind in einem Speicher der Datenverarbeitungsanlage in einer sortierten Folge gespeichert. Es wird ein Suchschema angewandt, das in Form binärer Verzweigungen verläuft und auch binäres Suchen genannt wird (H. Wedekind, "Datenorganisation" Berlin 1970, Seiten 56 und 57). Die Suchoperation wird durch einen Vergleich des Suchargumentes mit einem Schlüsselwort begonnen, das etwa in der Mitte der Schlüsselwortfolge liegt. Das Vergleichsergebnis gibt Auskunft, ob das gesuchte Schlüsselwort kleiner oder größer als das Suchargument ist. In Abhängigkeit dann wird als nächstes das Schlüsselwort in der Mitte der linken oder der rechten Hälfte der sortierten Schlüsselwortfolge einem Vergleich mit dem Suchargument unterzogen. Dieser Vorgang wird solange wiederholt, bis das gesuchte Schlüsselwort gefunden ist. Das Schlüsselwort bezeichnet die gesuchten Daten, die entweder dem Schlüsselwort benachbart oder an anderer Stelle auf einer im Schlüsselwort enthaltenen Adresse gespeichert sind. Dieses Verfahren erfordert eine sortierte Schlüsselwortfolge, die das nachträgliche Andern des Schlüsselwortbestandes erschwert. Sollen z.B. dem Schlüsselwortbestand weitere Schlüsselworte hinzugefügt werden, ist ein zeitaufwendiger neuer Sortiervorgang durchzuführen.It is known to find data in the memories of a data processing system Use keywords that are compared one after the other with a search argument will. The keywords are in a memory of the data processing system stored in a sorted sequence. A search scheme is used that is defined in Form of binary branches and is also called binary search (H. Wedekind, "Datenorganisation" Berlin 1970, pages 56 and 57). The search operation is through started a comparison of the search argument with a keyword that is roughly in lies in the middle of the keyword sequence. The comparison result indicates whether the searched keyword is smaller or larger than the search argument. Dependent on then next is the keyword in the middle of the left or the right half of the sorted keyword sequence a comparison with the Subject to search argument. This process is repeated until the desired Keyword is found. The keyword denotes the data searched for, the either adjacent to the keyword or elsewhere on one of the keyword are stored in the address. This procedure requires an assorted Keyword sequence that makes it difficult to subsequently change the keyword inventory. If, for example, further keywords are to be added to the keyword inventory, a time-consuming new sorting process has to be carried out.

Zum zeitsparenden Suchen von Schlüsselwörtern, die in unsortierter Folge im Speicher einer Datenverarbeitungsanlage gespeichert sind, ist es bekannt, eine Adressenliste zu benutzen, die den Charakter eines Adreßbuches (Directory) hat. Die Einträge der Adressenliste sind über Hinweis adressen miteinander zu einer Baumstruktur verbunden, die aus mehreren Verzweigungsstufen besteht, von denen jede mehrere Einträge aufweist. (Z.B Seiten 183 - 186 des obengenannten Buches). Das Suchargument besteht aus mehreren Bytes, deren Anzahl von der Größe des Schlüsselwortbestandes abhängt. Jeder Eintrag der Adressenliste ist einem dieser Bytes zugeordnet. Diejenigen Einträge, die den Enden der Bauzzweige zugeordnet sind, bilden jeweils die Schlüsselwörter. Das Suchargument legt einen Suchweg fest durch die Adressenliste bis zum gesuchten Schlüsselwort. Die Suchoperation durch die Adressenliste erfolgt stufenweise, wobei jede Stufe einem Verzweigungsniveau der Baumstruktur entspricht. Zunächst werden alle über Hinweisadressen verkettete Schlüsselwörter der ersten Stufe durchsucht, bis der dem ersten Teil des Schlüsselwortes entsprechende Eintrag gefunden ist. Dieser Eintrag enthält neben der Verkettungs-Hinweisadresse eine Hinweisadresse auf einen Eintrag der zweiten Stufe. Auf dieser Stufe wird die Suchoperation nach einem Eintrag fortgesetzt, welcher dem zweiten Byte des Suchargumentes entspricht. Hierbei werden jeweils die Namensfelder der Eintragungen der betreffenden Stufe mit dem jeweiligen Byte des Suchargumentes verglichen. In dieser Weise wird von Stufe zu Stufe die Baumstruktur durchlaufen, bis das gesuchte Schlüsselelement gefunden ist. Bei diesem Verfahren ist es nachteilig, daß im Falle eines großen Schlüsselwortbestandes verhältnismäßig lange Suchargumente benötigt werden.To save time searching for keywords that are in unsorted Sequence are stored in the memory of a data processing system, it is known to use an address list that has the character of an address book (Directory) Has. The entries in the address list are linked to one another via reference addresses Tree structure, which consists of several levels of branching, each of which has multiple entries. (E.g. pages 183-186 of the above-mentioned book). That Search argument consists of several bytes, the number of which depends on the size of the keyword stock depends. Each entry in the address list is assigned to one of these bytes. Those Entries that are assigned to the ends of the building branches form the key words. The search argument defines a search path through the address list to the one you are looking for Keyword. The search operation through the address list takes place in stages, where each level corresponds to a branch level of the tree structure. First will be searches all key words of the first level linked via reference addresses, until the entry corresponding to the first part of the keyword is found. In addition to the concatenation reference address, this entry contains a reference address to a second level entry. At this stage the search operation for continued with an entry which corresponds to the second byte of the search argument. The name fields of the entries for the relevant level are used here compared with the respective byte of the search argument. In this way the tree structure is traversed from level to level until the key element sought is found. In this method, it is disadvantageous that in the case of a large Keyword inventory relatively long search arguments are required.

Außerdem sind in den meisten Stufen der Baumstruktur mehrere Einträge der Adressenliste für eine Vergleichsoperation aufzurufen, wodurch der Zeitbedarf erhöht wird.In addition, there are several entries in most levels of the tree structure to call the address list for a comparison operation, which reduces the time required is increased.

Aufgabe der Erfindung ist es, ein Verfahren der letztgenannten Art anzugeben, das unter Vermeidung dieser Nachteile ein schnelleres und weniger Zugriffe erforderndes Durchsuchen einer Adressenliste zur Ermittlung eines bestimmten Schlüsselwortes ermöglicht. Gemäß der Erfindung wird dies dadurch erreicht, daß jedem auf dem Suchpfad liegenden Eintrag einer als binäre Baumstruktur organisierten Adressenliste eine Bitstelle im Suchargument zugeordnet ist, deren Inhalt bei Erreichen des betreffenden Eintrages abgefragt wird und die Auswahl einer von zwei Ausgangsverbindungen steuert, daß aus dem Eintrag der Adressenliste eine der ausgewählten Ausgangsverbindung entsprechende Hinweisadresse zum Nachfolger-Eintrag in der Baumstruktur abgeleitet wird, daß vor dem Übergang zum Nachfolger-Eintrag ein in jedem Eintrag der Adressenliste enthaltenes Kennzeichen abgetastet wird und daß der Nachfolger-Eintrag aufgesucht wird, wenn das Kennzeichen kein Ende der Suchoperation anzeigt.The object of the invention is to provide a method of the last-mentioned type indicate that while avoiding these disadvantages, a faster and fewer accesses requiring searching a list of addresses to determine a particular keyword enables. According to the invention, this is achieved by having everyone on the search path entry of an address list organized as a binary tree structure Bit position in the search argument is assigned, the content of which is assigned when the relevant Entry is queried and controls the selection of one of two output connections, that from the entry in the address list one of the selected output connections corresponds Reference address to the successor entry in the tree structure is derived that before The transition to the successor entry contains one in each entry in the address list Identifier is scanned and that the successor entry is sought when the flag does not indicate the end of the search operation.

Es ist auch Aufgabe der Erfindung, eine vorteilhafte Einrichtung zur Ausführung des obengenannten Verfahrens anzugeben. Gemäß der Erfindung besteht eine solche Einrichtung darin, daß ein Speicher zur Aufnahme einer als binäre Baumstruktur organisierten Adressenliste vorgesehen ist, der für eine selektive selektive Entnahme von durch ein Zeilenadreßregister bezeichneten Adressenlistenzeilen sowie von Einzeldaten eingerichtet ist, daß an den Speicher ein Zeilenregister angeschlossen ist, das ein Verbindungsfeld, ein Kennzeichnungsfeld und ein Suchargument-Indexierungsfeld enthält, von denen der Inhalt des letzteren Feldes zur Adressierung eines Bits in einem über ein Adressenregister voradressierten Suchargument im Speicher dient, daß ein Suchargument-Bitregister zur Aufnahme dieser Bits vorgesehen ist und daß eine Steuerschaltung vorgesehen ist, durch die in Abhängigkeit von einem vorbestimmten Inhalt des Suchargument-Bitregisters der Inhalt des Verbindungsfeldes allein oder zusammen mit einem Zeilenadressen-Inkrementwert zum Inhalt des Zeilenadreßregisters addiert wird, um die Adresse der nächsten Adressenlistenzeile zu erhalten.It is also an object of the invention to provide an advantageous device for The execution of the above procedure. According to the invention there is one such a facility is that a memory to hold a binary tree structure organized mailing list is provided for a selective selective removal of address list lines identified by a line address register and of individual data is arranged that a line register is connected to the memory, the a connection field, a label field, and a search argument index field contains, of which the content of the latter field is used to address a bit in serves a search argument in the memory that is pre-addressed via an address register, that a search argument bit register for These bits are intended for inclusion is and that a control circuit is provided by the function of a predetermined content of the search argument bit register the content of the connection field alone or together with a line address increment value for the content of the line address register is added to get the address of the next line of the mailing list.

Nachfolgend sich mehrere vorteilhafte Ausführungsbeispiele des erfindungsgemäßen Verfahrens und ein vorteilhaftes Ausführungsbeispiel einer Einrichtung zur Ausführung des erfindungsgemäßen Verfahrens anhand von Zeichnungen beschrieben.Below are several advantageous embodiments of the invention Method and an advantageous embodiment of a device for execution of the method according to the invention described with reference to drawings.

Es zeigen; Fig. 1 ein Beispiel einer Adressenliste in Form einer binären Baumstruktur, Fig. 2A ein Beispiel einer Anzahl Adressenlisteneinträge, die zu einer binären Baumstruktur miteinander verbunden sind, Fig. 2B das Datenformat der Einträge von Fig. 2A, Fig. 3 eine Datenverarbeitungsanlage, die zur Ausführung der als Ausführungsbeispiel beschriebenen Verfahren geeignet ist, Fig. 4A ein Ablaufdiagramm zur Erläuterung der Verfahrensschritte eines ersten Ausführungsbeispiels, Fign. 4B und 4C eine Speicher- und Registerorganisation, wie sie zur Ausführung des Verfahrens gemäß Fig. 4A benutzt wird, Fig. 5A ein Ablaufdiagramm für die Arbeitsschritte eines weiteren Ausfihrungsbeispiels des erfindungsgemäßen Verfahrens, Fig. 5B eine Abwandlung des Verfahrens von Fig. 5A, Fig. 6 eine. Speicher- und Registerorganisation, wie sie in Verbindung mit dem Verfahren von Fig. 5A verwendet wird, Fig. 7 ein Ausführungsbeispiel einer Einrichtung zur Ausführung des Verfahrens von Fig. 4A, Fig. 8 eine Taktgeberschaltung, wie sie in der Einrichtung von Fig. 7 verwendbar ist, Fig. 9 eine Schaltung zur Erzeugung von Torsteuersignalen in der Einrichtung von Fig. 7 und Fig. 10 eine Folgesteuerschaltung für die Taktgeberschaltung von Fig. 8.Show it; 1 shows an example of an address list in the form of a binary one Tree structure, FIG. 2A shows an example of a number of mailing list entries which are part of a binary tree structure, Fig. 2B shows the data format of the entries 2A, 3 show a data processing system which is used to carry out the as an exemplary embodiment The method described is suitable, FIG. 4A shows a flowchart for explanation of the method steps of a first embodiment, FIGS. 4B and 4C a memory and register organization as used to carry out the method of FIG. 4A 5A is a flow chart for the working steps of a further exemplary embodiment of the invention Method, FIG. 5B shows a modification of the method of Fig. 5A, Fig. 6 a. Memory and register organization as they are in connection is used with the method of FIG. 5A, FIG. 7 shows an embodiment of a Device for carrying out the method of Fig. 4A, Fig. 8 a clock circuit, as can be used in the device of FIG. 7, FIG. 9 shows a circuit for Generation of gate control signals in the device of Fig. 7 and Fig. 10 a sequence control circuit for the clock circuit of FIG. 8.

Fig. 1 zeigt eine Baumstruktur, die aus einer Anzahl Schlüsselelementen KO bis K32 und einer Anzahl von Scheitelelementen D1 bis D33 besteht. Die Schlüsselelemente befinden sich jeweils an den Enden der Baumzweige, während die Scheitelelemente den Verzweigungen des Baumes zugeordnet sind. Das oberste Scheitelelement D25 der Baumstruktur wird Quellenscheitel genannt. Alle anderen Scheitelelemente sind innere Scheitel der Baumstruktur.Fig. 1 shows a tree structure made up of a number of key elements KO to K32 and a number of vertex elements D1 to D33. The key elements are located at the ends of the tree branches, while the apex elements are assigned to the branches of the tree. The topmost vertex element D25 of the The tree structure is called the source vertex. All other vertex elements are internal Vertex of the tree structure.

Jedes der Scheitelelemente wird durch ein Datenwort dargestellt, dessen Format aus Fig. 2B ersichtlich ist. Es weist ein rechtes Feld 11 auf, welches Daten enthält, die die Verbindung eines Scheitelelementes zu den innerhalb der Baumstruktur nachfolgenden Elementen oder zu den vorausgehenden und nachfolgenden Elementen darstellt. Ein mit FLG bezeichnetes Feld 12 dient als Kennzeichnungsfeld, welches angibt, ob die beiden Nachfolgerelemente des betreffenden Scheitelelementes wiederum Scheitelelemente sind o - ~ ob es sich um Schlüsselelemente handelt. Das linke Feld 13, das in Fig. 2B mit D-Index bezeichnet ist, dient als Xennfeld zur Steuerung einer Suchoperation durch die Baumstruktur nach einem bestimmten Schlüsselelement. Die Funktionen des D-Index-Feldes werden im einzelnen in späteren Abschnitten der Beschreibung erläutert. Zunächst soll die Funktion des äußersten rechten Feldes im Datenwortformat von Fig. 2B unter Bezugnahme auf Fig. 2A beschrieben werden.Each of the vertex elements is represented by a data word whose Format can be seen in Fig. 2B. It has a right field 11 which contains data containing the connection of a vertex element to those within the tree structure subsequent elements or to the preceding and following elements. A field labeled FLG 12 serves as an identification field which indicates whether the two successor elements of the respective apex element in turn apex elements are o - ~ whether they are key elements. The left field 13, which is designated in Fig. 2B with D-Index, serves as an Xenn field for controlling a Search operation through the tree structure for a specific key element. the Functions of the D-Index field are detailed in later sections of the description explained. First, the function of the rightmost field in the data word format of Fig. 2B will be described with reference to Fig. 2A.

Die Fig. 2A ist eine andere Darstellung einer Baumstruktur, worin die einzelnen Scheitelelemente durch entsprechende Datenwort-Speicherplätze einer Datenverarbeitungsanlage und die Schlüsselelemente durch weitere Datenwort-Speicherplätze angegeben sind, wobei die letzteren beispielsweise die Adressen enthalten zu Datenaufzeichnungen, die in externen Speichern der Datenverarbeitungsanlage gespeichert sind. Die Scheitelelemente besitzen ein Format, das dem in Fig. 2B dargestellten entspricht. Bei der Baumstruktur von Fig. 2A handelt es sich um einen binären Raum, dessen Quellenscheitel a ist. Die Nachfolger von a sind die inneren Scheitelelemente b und bsl. Die Verbindung zu diesen Nachfolgern wird über das Verbindungsfeld 11 hergestellt, das die Adresse des Scheitelelementes b enthält. Die Adresse des Scheitelelementes kil wird durch Addition von 1 zum Wert b erzeugt. Der Wert 1 ist hierbei eine Adreßkonstante; anstelle des Wertes 1 kann auch ein beliebiger anderer konstanter Wert verwendet werden, z.B. die Wortlänge der Scheitelelemente. In der gleichen Weise wird die Adresse des rechten Nachfolgers eines jeden Scheitelelementes durch Addition von 1 zum Adreßwert des linken Nachfolgers ermittelt, wie dies beispielsweise für die Nachfolger c und cal des Scheitelelementes b in der Baumstruktur von 2A ersichtlich ist. Das gleiche geschieht für die Schlüsselelemente, die den linken und rechten Nachfolger eines #cheitelelementes darstellen, wie beispielsweise f und ffl.Figure 2A is another illustration of a tree structure wherein the individual vertex elements by corresponding data word storage locations Data processing system and the key elements through further data word storage locations are specified, the latter e.g. containing the addresses for data records, which are stored in external memories of the data processing system. The apex elements have a format similar to that shown in Figure 2B. In the tree structure of Fig. 2A is a binary space whose source vertex is a. The successors of a are the inner vertex elements b and bsl. The connection to these successors is established via the connection field 11 that contains the address of the apex element b contains. The address of the vertex element kil is given by Addition of 1 to the value b is generated. The value 1 is an address constant; instead of of the value 1, any other constant value can also be used, e.g. the word length of the vertex elements. In the same way is the address of the right successor of each vertex element by adding 1 to the address value of the left successor is determined, as is the case, for example, for the successors c and cal of the apex element b can be seen in the tree structure of FIG. 2A. The same happens for the key elements that are the left and right successors of one #cheitelelementes, such as f and ffl.

Der Inhalt der Verbindungsfelder 11 aller inneren Scheitel, wie z.B. b, c, c+l usw. ist so gewählt, daß sie eine sogenannte umkehrbare Verbindung enthalten. Hierunter wird ein Adressenwert des betreffenden Elementes verstanden, der sich durch Anwendung einer Rechenvorschrift aus dem Vorgänger dieses Elementes und dem Nachfolger dieses Elementes innerhalb der Baumstruktur ergibt.The content of the connection fields 11 of all inner vertices, e.g. b, c, c + l etc. are chosen to contain a so-called reversible connection. Below this is an address value understood the element in question, which results from the application of a calculation rule from the predecessor of this element and the successor of this element within the tree structure.

Die Rechenvorschrift ist so gewählt, daß sie eine Umkehrung gestattet. Als Rechenvorschrift kommt z.B. die Addition in Frage, deren Umkehrung die Subtraktion ist. Weitere Beispiele sind Multiplikation und Division, mathematische Ringe oder Gruppen, oder die logische Operation Exklusiv-Oder. Die letztere Operation besitzt als Umkehrung die gleiche Rechenvorschrift Exklusix-Oder.The calculation rule is chosen so that it allows a reversal. As a calculation rule, for example, addition comes into question, the reverse of which is subtraction is. Other examples are multiplication and division, or mathematical rings Groups, or the logical operation exclusive-or. The latter operation owns the reverse is the same calculation rule Exclusive-Or.

Im dargestellten Beispiel wird die Exklusiv-Oder-Operation als umkehrbare Verbindung benutzt, da sie in der Datenverarbeitungsanlage mit einfachen Schaltmitteln und sehr schnell ausführbar ist.In the example shown, the exclusive-or operation is considered to be reversible Connection used because it is in the data processing system with simple switching means and can be executed very quickly.

Die umkehrbare Verbindung im Feld 11 des Scheitelelementes b ergibt sich somit aus a Y c, worin a die Adresse des Quellenscheitelelementes ist, das der Vorgänger von b ist, und worin c die Adresse des (linken) Nachfolgers von b ist. Ebenso ergibt sich der Inhalt des Verbindungsfeldes des Scheitelelementes c+l aus b V e, worin b der Vorgänger von csl und e dessen Nachfolger ist, der ein Schlüsselelement darstellt mit dem Inhalt "ADR2".The reversible connection in field 11 of the apex element b results thus results from a Y c, where a is the address of the source vertex element that is the predecessor of b, and where c is the address of the (left) successor of b is. The content of the connection field of the vertex element c + l is also obtained from b V e, where b is the predecessor of csl and e is its successor, the one key element with the content "ADR2".

Die umkehrbaren Verbindungen in den Verbindungsfeldern de Elemente der Baumstruktur von Fig. 2A gestatten ein Durchsuchen der Baumstruktur in beiden Richtungen, sofern zwei aufeinanderfolgende Startelemente bekannt sind. Wenn die Baumstruktur von oben nach unten durchsucht werden soll, genügt es, daß das Quellenscheitelelement a bekannt ist, da dieses die direkte Adresse seines linken Nachfolgers b enthält. Damit sind zwei aufeinanderfolgende Scheitelelemente bekannt, so daß nach der Rechenvorschrift, der die Daten in den Verbindungsfeldern 11 genügen, die anschließenden Elemente bestimmt werden können. Z.B. kann die Adresse des internen Scheitelelementes c, das der linke Nachfolger von b ist, durch die Verknüpfungsoperation c = (a V c) V a bestimmt werden. Ebenso kann die Adresse des linken Nachfolgers von c bestimmt werden durch f = b V (b V f). Auf diese Weise kann jeder Pfad innerhalb der Baumstruktur vom Quellenscheitel bis zu einem der Schlüsselelemente durchlaufen werden, indem jeweils die Adresse des Nachfolgers durch Anwendung der Exklusiv-Oder-Rechenvorschrift abgeleitet wird.The reversible connections in the connection fields of the elements the tree structure of Figure 2A allow browsing of the tree structure in both Directions, provided that two consecutive starting elements are known. If the If the tree structure is to be searched from top to bottom, it is sufficient that the source vertex element a is known because it contains the direct address of its left successor b. This means that two successive vertex elements are known, so that according to the calculation rule, which the data in the connection fields 11 satisfy, the subsequent elements can be determined. E.g. the address of the internal vertex element c, that is the left successor of b, by the operation c = (a V c) V a can be determined. The address of the left successor of c can also be determined are given by f = b V (b V f). That way you can every path within traverse the tree structure from the top of the source to one of the key elements by adding the address of the successor by applying the exclusive-or calculation rule is derived.

Ebenso kann jeder Pfad in umgekehrter Richtung, also von einem der Schlüsselelemente zurück zum Quellenscheitelelement in der gleichen Weise gefunden werden, sofern die Adresse des betreffenden Schlüsselelementes und die von dessen Vorgänger bekannt sind.Likewise, each path can go in the opposite direction, i.e. from one of the Found key elements back to the source vertex element in the same way if the address of the relevant key element and that of its Predecessors are known.

Z.B. können bei Vorliegen der Adressen von f und c die Adressen von b und a abgeleitet werden durch b = f V (b v f) und a = c V (a V c). Die Möglichkeit, die Baumstruktur wahlweise in Vorwärts-oder in Rückwärtsrichtung durchsuchen zu können, erhöht ihre Anwendbarkeit.E.g. if the addresses of f and c are available, the addresses of b and a are derived by b = f V (b v f) and a = c V (a V c). The possibility, Browse the tree structure in either forward or backward direction can increase their applicability.

Abweichend von der oben erläuterten Ausführungsform kann der Inhalt der Verbindungsfelder 11 in den internen Scheitelelementen der Baumstruktur auch jeweils die direkte Adresse zum jeweiligen Nachfolger enthalten. Diese Art von Verbindung ist im Ausführungsbeispiel von Fig. 2A lediglich für den Quellenscheitel a angegeben.Deviating from the embodiment explained above, the content the connection fields 11 in the internal vertices of the tree structure as well each contain the direct address to the respective successor. That kind of connection is indicated in the embodiment of FIG. 2A only for the source vertex a.

Dabei ist es nicht notwendig, daß die Felder 11 einen absoluten Adreßwert enthalten. Der Adreßwert ist vielmehr relativ zum Quellenscheitel zu verstehen der beispielsweise die relative Adresse O haben kann. Durch entsprechende Verschiebe-Adreßkomponenten kann dann die Baumstruktur an einen beliebigen Platz innerhalb des Speichers der Datenverarbeitungsanlage gebracht werden.It is not necessary for fields 11 to have an absolute address value contain. Rather, the address value is to be understood relative to the vertex of the source for example, the relative address O can have. By appropriate shift address components can then move the tree structure to any location within the memory of the Data processing system are brought.

Eine weitere Möglichkeit, Verbindungen zwischen den Elementen der Baumstruktur herzustellen, besteht darin, daß in den Verbindungsfeldern eine sogenannte Versetzung" gespeichert wird.Another way of making connections between the elements of the To create a tree structure consists in creating a so-called Relocation "is saved.

Diese Versetzung gibt den Abstand an, den das betreffende Element von seinem Nachfolgerelement aufweist. Es kann sich dabei z.B.This offset indicates the distance that the element in question of its successor element. It can e.g.

um eine bestimmte Anzahl von Adressenpositionen handeln. Die Versetzung kann sowohl positiv als auch negativ sein, d.h., der Nachfolger kann im Speicher der Datenverarbeitungsanlage von dem betreffenden Element oder nach dem betreffenden zement gespeichert sein.act around a certain number of address positions. The dislocation can be both positive and negative, i.e. the successor can be in memory the data processing system from the element concerned or after the concerned cement stored.

Vorausgehend wurde erläutert, wie die einzelnen Elemente der Baumstruktur miteinander in Verbindung stehen. Im folgenden soll darauf eingegangen werden, wie eine derartige Baumstruktur nach einem bestimmten Schlüsselelement durchsucht wird.It was previously explained how the individual elements of the tree structure are related to each other. The following will explain how such a tree structure is searched for a certain key element.

Als Suchargument für eine Suchoperation kann jedes Schlüsselelement dienen, wie beispielsweise die Schlüsselelemente KO bis K32 der Baumstruktur von Fig. 1. Es kann auch jedes nicht in der Baumstruktur enthaltene Schlüsselelement für eine Suchoperation verwendet werden; es wird in diesem Falle jedoch kein entsprechendes Schlüsselelement gefunden.Any key element serve, such as the key elements KO to K32 of the tree structure of Fig. 1. Any key element not contained in the tree structure can also be used used for a search operation; in this case, however, there is no corresponding one Key element found.

Das Suchargument besteht ebenso wie ein Schlüsselelement aus einer Folge von Bits von einer hochstelligen bis zu einer niedrigstelligen Wertstelle, d.h. vom äußersten linken Bit zum äußersten rechten Bit nach der Art, wie Binärzahlen in einer Datenverarbeitungsanlage gespeichert werden. Jedes Suchargument definiert einen ihm eigenen ~Pfad" durch eine in Form einer Baumstruktur aufgebauten Adressenliste vom Quellenscheitelelement bis zum Schlüsselelement, welches dem Suchelement entspricht, sofern ein derartiges Schlüsselelement in der Adressentabelle existiert. Die Reihenfolge der Bits im Suchargument wird durch diesen Suchpfad bestimmt. Von der Reihenfolge von Bits, wie sie durch ein Suchargument angegeben wird, kann während der Suchoperation abgewichen werden, indem einzelne der Bits des Suchargumentes übersprungen werden, Die Reihenfolge von Bits, die den Suchpfad definieren, werden "Pfadvektor" genannt.Like a key element, the search argument consists of a Sequence of bits from a high to a low digit value, i.e. from the leftmost bit to the rightmost bit in the manner of binary numbers be stored in a data processing system. Each search argument is defined its own ~ path "through an address list built up in the form of a tree structure from the source vertex element to the key element that corresponds to the search element, if such a key element exists in the address table. The chronological order the bits in the search argument are determined by this search path. From the order of bits, as specified by a search argument, can be used during the search operation deviated from by skipping individual bits of the search argument, The order of bits that define the search path is called the "path vector".

Bei Betrachtung einer Suchoperation in der Baumstruktur von Fig. 1 kann ein Suchvektor gebildet werden aus den Namen einer Anzahl von Scheiteln, die während der Suchoperation nacheinander zu durchlaufen sind. Z.B. würde in Fig, 1 der Suchvektor D25, D17, D9, Dll, D13, D15, K14 vom Quellenscheitelelement D25 zum Schlüsselelement K14 führen.Looking at a search operation in the tree structure of FIG a search vector can be formed from the names of a number of vertices that are to be traversed one after the other during the search operation. For example, in Fig. 1 the search vector D25, D17, D9, Dll, D13, D15, K14 from the source vertex element D25 to the Lead key element K14.

Im Gegensatz hierzu bringt der "Pfadvektor" eine Unterscheidung zwischen a n linken und rechten Verbindungen von den Ausgängen der Scheitelelemente beim Durchlaufen der Baumstruktur zum Ausdruck. Diese Unterscheidung kann für jedes innere Scheitelelement durch ein einzelnes Bit erfolgen, das z.B. für eine linke Verbindung den Wert 0 und für eine rechte Verbindung den Wert 1 enthält. Es kann daher für jeden inneren Scheitel die Ausgangsrichtung durch den O-Zustand oder den Zustand eines diesem Scheitel zugeordneten Bits definiert werden, das sich im Pfadvektor des Suchargumentes befindet. Der 0- oder l-Zustand des äußersten linken -Bits im Pfadvektor liefert jeweils die Steuerinformation für die Auswahl der Nachfolger des Quellenscheitels.In contrast, the "path vector" makes a distinction between a n left and right connections from the outputs of the vertex elements when going through the tree structure. This distinction can be made for anyone inner vertex element can be made by a single bit, e.g. for a left Connection contains the value 0 and for a right connection the value 1. It can hence for each inner vertex the exit direction through the O-state or the State of a bit assigned to this vertex can be defined, which is in the path vector of the search argument. The 0 or 1 state of the leftmost bit in the The path vector supplies the control information for the selection of the successors the vertex of the spring.

Der Zustand des nächsten Bits bestimmt die Nachfolger der Nachfolger des Quellenscheitels im binären Baum usw. Der Pfadvektor legt somit die Verbindungsauswahl für alle Scheitelelemente fest, die während eines Durchgangs durch die Baumstruktur aufzurufen sind, und zwar in der Reihenfolge, in der dieser Aufruf stattfindet. Durch den Pfadvektor erübrigt es sich deshalb, die einzelnen Scheitelelemente über besondere Namen anzusprechen, die im Suchvektor enthalten sein müssen, wozu eine erheblich größere Anzahl von Bits benötigt wird. Der erfindungsgemäße Pfadvektor sieht dagegen für jedes Scheitelelement nur eine einzelne Bitstelle vor, wobei im Pfadvektor außerdem nicht explizit aufgezeichnet werden muß, welche Scheitel beim Durchgang durch die Baumstruktur aufgesucht werden müssen.The state of the next bit determines the successors of the successors of the source vertex in the binary tree etc. The path vector thus defines the connection selection for all vertex elements found during one pass through the tree structure are to be called in the order in which they are called. The path vector therefore makes it unnecessary to use the individual vertex elements address special names that must be included in the search vector, including a a considerably larger number of bits is required. The path vector according to the invention however, provides only a single bit position for each vertex element, with im Path vector also does not have to be explicitly recorded which vertices at Must be sought through the tree structure.

Die Pfadvektordarstellung für die oben als Beispiel angegebene Suchfolge vom Quellenscheitelelement D25 bis zum Schlüsselelement K14 lautet somit -001110, wozu sechs Bitstellen benötigt werden.The path vector representation for the search sequence given above as an example from the source vertex element D25 to the key element K14 is -001110, for which six bit positions are required.

Der die einzelnen Scheitelelemente über deren Namen ansprechende Spurvektor benötigt dagegen ein mehrfaches dieser Bitstellenzahl.The track vector that appeals to the individual vertex elements by their names however, requires a multiple of this number of bits.

In den Fign. 4B und 6 sind Adressenlisten dargestellt, die Einträge nach Art von Fig. 2B aufweisen und die in ihrer Gesamtheit eine binäre Baumstruktur bilden. Jede Zeile dieser Adressenlisten mit Ausnahme der ersten Zeile enthält eine Bitgruppe, die dem Feld 12 von Fig. 2B entspricht und als Anzeige dafür dient, ob der durch das Feld 11 dargestellte Eintrag für die Verbindung zum linken Nachfolger auf ein internes Scheitelelement oder auf ein Schlüsselelement (auch Endelement genannt) bezogen ist. Das D-Indexfeld 13 innerhalb eines Eintrages, der auf ein internes Scheitelelement bezogen ist, ordnet den Eintrag einer bestimmten Pfadvektor-Bitposition in einem Suchargument zu. Der eigentliche Pfadvektor wird aus dem Suchargument zur gleichen Zeit erzeugt, wenn die Bits des Pfadvektors zur Festlegung des Pfades während der Suchoperation benutzt werden. Es besteht daher keine Notwendigkeit, in der Datenverarbeitungsanlage neben dem Suchargument separat einen Pfadvektor zu speichern. Die Erzeugung eines Pfadvektors während einer Suchoperation erfolgt durch nachstehende Schritte: Schritt 1: In der Adreßliste wird der D-Index des als nächsten ausgewählten Scheitelelementes gelesen (am Anfang der Suchoperation ist dies das Quellenscheitelelement).In FIGS. 4B and 6 show address lists, the entries in the manner of FIG. 2B and which in their entirety have a binary tree structure form. Each line of these mailing lists except the first line contains one Bit group corresponding to field 12 of Fig. 2B and serving as an indication of whether the entry represented by field 11 for the connection to the left Successor to an internal vertex element or to a key element (also Called end element). The D index field 13 within an entry that is related to an internal vertex element, assigns the entry to a specific one Path vector bit position in a search argument. The actual path vector becomes generated from the search argument at the same time as the bits of the path vector to the Defining the path can be used during the search operation. It therefore exists no need in the data processing system in addition to the search argument separately store a path vector. The creation of a path vector during a search operation takes place through the following steps: Step 1: In the address list, the D-Index of the next selected vertex element read (at the beginning of the search operation this is the source vertex element).

Schritt 2: Im Suchargument wird die Bitstelle aufgesucht, die vom Inhalt des gelesenen D-Indexfeldes bestimmt wird. Dieses Bit ist ein Bit des Pfadvektors.Step 2: In the search argument, the bit position is sought which is sent by the Content of the read D-index field is determined. This bit is one bit of the path vector.

Schritt 3: Das Bit der in Schritt 1 bestimmten Bitstelle wird auf seinen Inhalt geprüft. Wenn der Inhalt O ist, wird die Verbindung des Schlüsselelementes zu seinem linken Nachfolger ausgewählt. Wenn der Inhalt des Bits dagegen 1 ist, wird die Verbindung zum rechten Nachfolger ausgewählt. Der Nachfolger der ausgewählten Verbindung stellt das nächste Scheitelelement im Suchpfad dar.Step 3: The bit of the bit position determined in step 1 is set to checked its content. When the content is O, the connection becomes the key element elected to his leftist successor. On the other hand, if the content of the bit is 1, the connection to the right successor is selected. The successor to the selected Connection represents the next vertex element in the search path.

Schritt 4: Das Kennzeichenfeld 12 des laufenden Scheitelelementes wird geprüft, um zu bestbpdmen, ob der Nachfolger der ausgewählten Verbindung ein inneres Scheitelelement oder ein Schlüsselelement ist. Wenn es sich um ein Schlüsselelement handelt, wird es aufgesucht, und die Suchoperation in der Adressenliste ist beendet. Wenn es sich dagegen um ein inneres Scheitelelement handelt, wird die Suchoperation durch Entnahme des Nachfolger-Scheitelelementes fortgesetzt, das der ausgewählten Verbindung entspricht. Mit diesem Scheitelelement werden die Schritte O bis 3 wiederholt.Step 4: The label field 12 of the running vertex element a check is made to determine whether the successor of the selected connection is a inner crown element or a key element. If it is a key element it is searched and the search operation in the address list is completed. On the other hand, if it is an inner vertex, the find operation will continued by removing the successor vertex element that the selected one Connection corresponds. Steps O to 3 are repeated with this vertex element.

In der oben erläuterten Weise werden nacheinander die Bits des Suchpfadvektors in Verbindung mit dem Suchargument bestimmt. Der Suchpfadvektor ist vollständig, wenn im Verlaufe des Schrittes 4 festgestellt wird, daß der Nachfolger ein Schlüsselelement ist.In the manner explained above, the bits of the search path vector are sequentially determined in connection with the search argument. The search path vector is complete, if in the course of step 4 it is determined that the successor is a key element is.

Wie oben bereits ausgeführt wurde, dient im Datenformat von Fig.As already stated above, in the data format of Fig.

2B jeweils ein einzelnes Feld zur Kennzeichnung sowohl der linken als auch der rechten Verbindung eines inneren Scheitelelementes zu einem Nachfolgerpaar von Scheitelelementen. Dies kann dadurch verwirklicht werden, daß die beiden Scheitelelemente des Nachfolgerpaares in der Adressenliste unmittelbar nebeneinander oder durch eine vorbestimmte Zeilenzahl voneinander entfernt gespeichert sind. Der Inhalt des Verbindungsfeldes 11 bezeichnet jeweils die Verbindung (Adresse) zum linken Nachfolger und die Verbindung (Adresse) zum rechten Nachfolger wird in der Adressenliste erhalten, indem die Zeilenadresse dieser Liste um 1 erhöht wird bzw. um die vorerwähnte vorgegebene Zeilenzahl inkrementiert wird. In der Adressenliste der Baumstruktur von Fig. 2A sind die rechten Nachfolger jeweils direkt hinter den linken Nachfolgern gespeichert, weshalb die Adresse der rechten Nachfolger durch Inkrementierung der Zeilenadresse der linken Nachfolger um 1 gefunden wird.2B each has a single field to identify both the left as well as the right connection of an inner apex element to a successor pair of vertex elements. This can be achieved in that the two apex elements of the successor pair in the address list directly next to each other or by a a predetermined number of lines are stored away from each other. The content of the connection field 11 each denotes the connection (address) to the left successor and the connection (Address) to the right successor is obtained in the address list by adding the line address this list is increased by 1 or is incremented by the aforementioned predetermined number of lines will. In the address list of the tree structure of Fig. 2A, the right-hand descendants are in each case stored directly behind the left successors, which is why the address of the right successor by incrementing the line address of the left successor at 1 is found.

In der Adressenliste ist jedoch die Speicherposition eines Nachfolgerpaares nur selten der Adresse des Listeneintrages benachbart, der in der binären Baumstruktur dem Vorgänger-Scheitelelement dieses Nachfolgerpaares entspricht. Die Darstellung der Verbindungen im Feld 11 der Finträge nimmt auf willkürliche Distanzunterschiede zwischen den einzelnen Einträgen Rücksicht.In the address list, however, is the storage position of a successor pair rarely adjacent to the address of the list entry in the binary tree structure corresponds to the predecessor vertex element of this successor pair. The representation of the connections in field 11 of the fintragroup takes on arbitrary differences in distance consideration between the individual entries.

Durch den Umstand, daß der Inhalt des Kennzeichnungsfeldes 12 jeweils auf die beiden Nachfolgereinträge bezogen ist, macht es überflüssig, die Schlüsselelemente ebenfalls mit Kennzeichnungsfeldern zu versehen. Dies ist aus der Darstellung von Fig.By the fact that the content of the identification field 12 each is related to the two successor entries, it makes the key elements superfluous also to be provided with identification fields. This is from the representation of Fig.

2A ersichtlich, wo die Schlüsselelemente f, e, und d lediglich die Adresse zu einer bestimmten Datenaufzeichnung enthalten.2A shows where the key elements f, e, and d are only the Contain address to a specific data record.

Die vorerwähnte Kennzeichnungsweise gestattet auch einen Abbruch der Suchoperation, wenn der Vorgänger eines Schlüsselelementes erreicht ist, was in bestimmten Fällen erwünscht ist. Alle Kennzeichnungsinformation ist somit in den Einträgen der inneren Scheitelelemente enthalten, und in jedem Listeneintrag, der sich auf ein Schlüsselelement bezieht, kann daher die gesamte Zeile der Liste für die Aufnahme der Daten des Schlüsselelementes benutzt werden. Dies ist wesentlich, da zur Darstellung der Adressen der gesuchten Daten eine größere Anzahl Bitsstellen benötigt werden. Diese Daten können z.B. im Hauptspeicher der Datenverarbeitungsanlage oder in einem angeschlossenen externen Speicher, wie z.B. einer Art Magnetplatteneinheit, gespeichert sein. Das Format innerhalb eines Schlüsselelementes unterliegt keinen Beschränkungen. Es können daher beliebige voneinander abweichende Adressierungsschemata zur Anwendung kommen.The aforementioned method of labeling also allows the Search operation when the predecessor of a key element is reached, which is done in is desirable in certain cases. All identification information is therefore in the Entries of the inner vertex elements included, and in each list entry that contains refers to a key element, therefore the entire line of the list can be used for the recording of the data of the key element can be used. This is essential because a larger number of bit positions are used to represent the addresses of the data sought are needed. These data can e.g. in the main memory of the data processing system or in a connected external memory, such as a kind of magnetic disk unit, be saved. The format within a key element is not subject to any Restrictions. Any addressing schemes that differ from one another can therefore be used come into use.

In Fig. 3 ist eine allgemeine Blockdarstellung einer Datenverarbeitungsanlage wiedergegeben. Die Datenverarbeitungsanlage besteht aus einer zentralen Datenverarbeitungseinheit 38, einem mit dieser verbundenen Hauptspeicher 40 und mehreren an die zentrale Verarbeitungseinheit angeschlossenen Eingabe/Ausgabeeinheiten 39. Der Hauptspeicher besitzt 3 Speicherbereiche 40a, 40b und 4Oc. Der Speicherbereich 40a dient zur Aufnahme der Adressenliste, wie sie im einzelnen in Fig. 4B oder 6 dargestellt ist. Der Bereich 40B wird durch verschiedene Operationsfelder und Register gebildet, wie sie in den Fign. 4C und 6 im einzelnen dargestellt sind.In Fig. 3 is a general block diagram of a data processing system reproduced. The data processing system consists of a central data processing unit 38, a main memory 40 connected to this and several to the central processing unit connected input / output units 39. The main memory has 3 memory areas 40a, 40b and 4Oc. The memory area 40a is used to hold the address list, as shown in detail in FIG. 4B or 6. The area 40B is through various operational fields and registers formed as shown in FIGS. 4C and 6 are shown in detail.

Der Bereich 40c dient zur Aufnahme von Steuerdaten. Die von diesen Daten gesteuerten Operationen werden nachfolgend anhand der Fign. 4A und 5A erläutert. Das Zusammenwirken der zentralen Verarbeitungseinheit 38 mit den Eingabe/Ausgabeeinheiten 39 erfolgt in für sich bekannter Weise.The area 40c is used to receive control data. The ones of these Data-controlled operations are described below with reference to FIGS. 4A and 5A explained. The interaction of the central Processing unit 38 with the Input / output units 39 take place in a manner known per se.

Anhand der Fig. 4A werden nachfolgend die wesentlichen Schritte für eine Suchoperation SRCH1 erläutert, wobei davon ausgegangen wird, daß die Verbindungen in den Feldern 11 der inneren Scheitelelemente in Form von Versetzungsadressen gespeichert sind.The essential steps for explains a search operation SRCH1, it being assumed that the connections stored in the fields 11 of the inner vertex elements in the form of offset addresses are.

Der Speicherteil 40a ist im Detail in Fig. 4B dargestellt. Er enthält die Adressenliste, die aus einer Vielzahl von Zeileneinträgen besteht. Jeder Zeileneintrag weist ein D-Indexfeld, ein Verbindungsfeld vom Versetzungstyp und ein Kennzeichnungsfeld auf, das die Bitstellen to cg, tl und cl enthält (z.B.The storage part 40a is shown in detail in FIG. 4B. It contains the address list, which consists of a large number of line entries. Each line entry has a D-index field, an offset-type connection field, and a label field containing the bit positions to cg, tl and cl (e.g.

Zeile 41a in Fig. 4B). Das Versetzungsfeld enthält einen Wert, der für jedes innere Scheitelelement die Zahl der Zeilen angibt, die sich in der Adressenliste zwischen diesem Scheitelelement und seinem Nachfolgerpaar befindet. Das Feld enthält außerdem ein Vorzeichenbit, welches anzeigt, ob das Nachfolgerpaar sich oberhalb oder unterhalb des betreffenden Scheitelelementes in der Adressenliste befindet. Eine solche Verbindungsdarstellung kann leicht für jeden inneren Scheitel erzeugt werden durch Subtraktion der Zeilenadresse seiner Position innerhalb der Adressenliste von der Zeilenadresse des Nachfolgerpaares.Line 41a in Fig. 4B). The displacement field contains a value that for each inner vertex element specifies the number of lines in the address list is located between this apex element and its successor pair. The field contains also a sign bit, which indicates whether the successor pair is above or below the relevant vertex element in the address list. Such a connection representation can easily be generated for each inner vertex are made by subtracting the line address from its position within the address list from the line address of the successor pair.

Ein Suchargument ist in einem Teilabschnitt 41 c gespeichert, dessen Adresse in einem Teilabschnitt 41e enthalten ist. Ein weiterer Teilabschnitt 41d enthält die Adresse des Quellenscheitelelemtes der Adressenliste.A search argument is stored in a subsection 41 c, whose Address is contained in a subsection 41e. Another subsection 41d contains the address of the source vertex of the address list.

In Fig. 4C sind verschiedene Register des Speicherbereiches 40b im einzelnen dargestellt. Es handelt sich um ein Register 42a zur Aufnahme der Adresse des Suchargumentes, ein Register 42b zur Aufnahme der Zeilenadresse, welche den jeweils in Behandlung befindlichen Eintrag aus der Adressenliste bezeichnet, und ein Register 42c enthält den Inhalt der jeweils aufgerufenen Zeile der Adressenliste.In Fig. 4C, various registers of the memory area 40b are in the shown individually. It is a register 42a for receiving the address of the search argument, a register 42b for receiving the line address, which the each entry under treatment from the address list denotes, and a register 42c contains the content of the respectively called line of the address list.

Die Suchoperation beginnt mit einem Startschritt 20, der durch ein Signal von der zentralen Verarbeitungseinheit 38 eingeleitet wird. Es folgt daraufhin der Schritt 25, in welchem der Inhalt des Speicher-Teilabschnittes 41d in das Zeilenadreßregister 42b übertragen wird. Im Schritt 30 wird die Adresse des Suchargumentes aus dem Speicher-Teilabschnitt 41e in das Suchargumentadressenregister 42a übertragen. Sofern das Suchargument aus einer Reihe von Suchargumenten besteht, handelt es sich bei der zum Register 42a zu übertragenden Adresse um die Adresse des ersten Suchargumentes. Im Schritt 35 erfolgt ein Speicherzugriff mit dem Inhalt des Zeilenadreßregisters 42b. Der Inhalt der betreffenden Adresse wird aus dem Speicher in das Zeilenregister 42c übertragen. Das Zeilenadreßregister 42b enthält ursprünglich die Adresse des Quellenscheiteleintrages in der Suchliste im Speicherabschnitt 40a. Es wird daher als erster Eintrag aus der Adressenliste das Quellenscheitelelement in das Zeilenregister 42c geladen. Später wird während der Schritte 60 und/oder 65 der Inhalt des Zeilenadreßregisters 42b inkrementiert, um die Adresse des nächsten Scheitelelementes in der Adressenliste zu erhalten. Im Schritt 44 wird eine Bitstelle im Suchpfadvektor bestimmt. Es handelt sich dabei um die Bitstelle, die vom D-Index-Feld im Register 42c angegeben wird. Das D-Index-Feld nimmt die Bitstellen O bis EO im Register 42c ein. Der Binärwert in diesem Feld bestimmt die Bitstelle im Suchargument unter Bezugnahme auf dessen höchste Bitstelle, d.h. der äußersten linken Bitstelle. Mit den 11 Bits im D-Index-Feld können somit Bitpositionen von 0 bis 355 im Suchargument adressiert werden. Das Bit der adressierten Bitstelle im Suchargument wird als ausgewähltes Suchargument-Bit bezeichnet und stellt ein ausgewähltes Suchpfadvektor-Bit dar. Das ausgewählte Bit wird aus dem Teilabschnitt 41c (Fig. 4B) des Speichers entnommen und im Schritt 45 auf seinen Wert überfprüft. Der 0- oder 1-Zustand dieses Bits steuert die Auswahl des NachEolgerscheitels und bestimmt daher den Suchpfad beim Durchlaufen des binären saumes. Wenn das Suchargument-Bit den Wert O hat, wird der linke Nachfolgerscheitel als nächstes ausgewählt. Wenn dagegen das Suchargument-Bit ren Wert 1 hat, wird der rechte Nachfolgerscheitel ausgewählt. Für diese Prüfung ist es nicht notwendig, das Bit dem Teilabschnitt 41c des Speichers zu entnehmen. Die Prüfung kann vielmehr an Ort und Stelle in diesem Teilbereich erfolgen, in dem geprüft wird, ob die betreffende Bitstelle den Wert 1 oder 0 enthält.The search operation begins with a start step 20, which is preceded by a Signal from the central processing unit 38 is initiated. It then follows the step 25, in which the contents of the memory subsection 41d in the row address register 42b is transmitted. In step 30, the address of the search argument is obtained from the memory subsection 41e is transferred to the search argument address register 42a. Unless the search argument consists of a number of search arguments, it is the one for the register 42a, the address to be transmitted is the address of the first search argument. In step 35 a memory access takes place with the content of the line address register 42b. Of the The content of the relevant address is transferred from the memory to the line register 42c transfer. Line address register 42b originally contains the address of the source vertex entry in the search list in the storage section 40a. It is therefore made out as the first entry of the address list, the source vertex element is loaded into line register 42c. Later, during steps 60 and / or 65, the contents of the row address register become 42b increments to the address of the next vertex in the address list to obtain. In step 44 a bit position in the search path vector is determined. It deals is the bit position specified by the D-Index field in register 42c. The D-Index field occupies the bit positions O to EO in register 42c. The binary value in this field determines the bit position in the search argument with reference to it highest bit position, i.e. the leftmost bit position. With the 11 bits in the D index field bit positions from 0 to 355 can thus be addressed in the search argument. That Bit of the addressed bit position in the search argument is used as the selected search argument bit denotes and represents a selected search path vector bit. The selected bit is taken from the subsection 41c (FIG. 4B) of the memory and in step 45 checked for its value. The 0 or 1 state of this bit controls the selection of the NachEolger vertex and therefore determines the search path when traversing the binary seams. When the search argument bit is 0, the left successor vertex becomes selected next. If, on the other hand, the search argument bit has a value of 1, then the right successor vertex selected. For this test it is not necessary the Bit to be taken from subsection 41c of the memory. The exam can rather take place on the spot in this sub-area in which the test is carried out, whether the bit position concerned contains the value 1 or 0.

Durch die Schritte 50 und 55 werden die Bitstellen tot cg oder tl, cl im Kennzeichnungsfeld des Registers 42c abgefragt, um zu bestimmen, ob der ausgewählte Nachfolgerscheitel ein Schlüsselelement oder ein inneres Scheitelelement ist. Wenn das im Schritt 45 abgefragte Suchargument-Bit den Wert 0 hat, führt der Schritt 50 eine Abfrage der Bitstellen t0, c, durch, wodurch bestimmt wird, ob der linke Nachfolger ein Schlüsselelement oder ein inneren Scheitelelement ist. Wenn die Bitstelle to eine 1 enthält, ist der linke Nachfolger ein inneres Scheitelelement, wenn dagegen t0 den Wert O enthält, ist der linke Nachfolger ein Schlüsselelement. Wenn im anderen Falle durch den Schritt 45 der rechte Nachfolger ausgewählt worden ist, wird durch den Schritt 55 die Kennzeichnungsbitstelle tl abgefragt nach dem Bitwert 1 oder 0, um zu bestimmen, ob der rechte Nachfolger ein innerer Scheitel oder ein Schlüsselelement ist. Die Bits CO oder cl werden ebenfalls in den Schritten 50 und 55 abgefragt, um zu ermitteln, ob der ausgewählte Nachfolger im Hauptspeicher enthalten ist. Dies ist insofern von Bedeutung, als der Nachfolger in einem der Eingabe/Ausgabeeinheiten 39 gespeichert sein kann Die Bitstellen c, und cl zeigen dann an, daß eine Übertragung des betreffenden Nachfolgers in den Hauptspeicher durchgeführt werden muß. Der Schaltzustand der Kennzeichenbitstellen tot c0, tlt cl wird durch entsprechende Programminstruktionen veranlaßt.Through steps 50 and 55, the bit positions tot cg or tl, cl is queried in the identifier field of register 42c to determine whether the selected Successor vertex is a key element or an inner vertex element. if the search argument bit queried in step 45 has the value 0, the step leads 50 an interrogation of the bit positions t0, c, by which it is determined whether the left Successor is a key element or an inner apex element. If the bit position to contains a 1, the left successor is an inner vertex element, if against it t0 contains the value 0, the left child is a key element. If in the other If the right successor has been selected by step 45, is done by the step 55 the identification bit position tl interrogated for the bit value 1 or 0 to determine whether the right successor is an inner vertex or a key element is. The bits CO or cl are also queried in steps 50 and 55, to determine whether the selected successor is in main memory. this is important as the successor in one of the input / output units 39 can be stored The bit positions c, and cl then indicate that a transmission of the successor concerned must be carried out in the main memory. The switching state of the identifier bit positions tot c0, tlt cl is determined by appropriate program instructions caused.

Durch den Schritt 60 wird der Inhalt des Zeilenandreßregisters 42b abgeändert entsprechend dem ausgewählten Nachfolger. Wie bereits erwähnt wurde, ist der rechte Nachfolger unmittelbar neben den linken Nachfolger in der Adressenliste gespeichert. Es ~fügt daher die einfache Zeilenlänge zum Inhalt des Zeilenadreßregisters zu addieren, um den rechten Nachfolger auszuwählen. Dies geschieht, bevor die Versetzung aus dem Versetzungsfeld des Registers 42c zum Inhalt dieses Registers addiert wird, das daraufhin die Adresse des rechten Nachfolgerscheitel enthält. Die letate Operation ist Gegenstand des Schrittes 65. Der Schritt 65 kann auch im Anschluß an den Schritt 50 erfolgen. In diesem Falle wird lediglich die Versetzung zum Inhalt des Zeilenadreßregisters 42b addiert, womit die Adresse des linken Nachfolgers ermittelt worin Dul70hden Schritt 70 wird das Resultat der Abfrageoperationen von den Schritten 50 und 55 ausgewertet. Durch diese Abfrageoperationen wurde ein Konditionscode in einem bisher nicht erwähnten erw#t##t#n RegisterCC gesetzt, der nun im Schritt 70 abgefragt wird. Enthält das Der gister CC die Werte 1 1 erfolgt eine Verzweigung zurück zum Schritt 35. Dies ist dann der Fail, wenn der Nachfolger ein inneres Scheitelelement ist, das sich im Speicher befindet. Durch den Schritt 35 wird der Nachfolger in das Zeilenregister 42c geladen, und in der Folge werden die oben beschriebenen Schritte wiederholt. Wenn dagegen der Schritt 70 anzeigt, d# eines der beiden Bits im Register CC den Wert a hat, wird zum Schritt 75 übergegangen, durch den mit dem Inhalt des Zeilenadreßretisters #2b# ein Speicherzugriff durchgeführt wurde dessen Ergebnis als Suchresultat in den Teilabschnitt 41b fFig. 4B) übertragen wird. Nach dem Schritt 75 folgt als Abschlußschritt der Schritt 80, der das Ende der Suchoperation anzeigt W#nn im Register CC fUr die r-L#t stelle c der Wert 1 und für die Bitstelle t der zeigt 0 steht, ist der angeforderte Nachfolger ein Schlüsselelement im Speicher 40.Step 60 reveals the contents of the line address register 42b modified according to the selected successor. As already mentioned, is the right successor immediately next to the left successor in the address list saved. It ~ therefore adds the single line length to the contents of the line address register to add to pick the right successor. This is done before the transfer from the offset field of register 42c is added to the content of this register, that then the address of the right successor vertex. The letate operation is the subject of step 65. Step 65 can also be performed in Connection to step 50 take place. In this case, only the transfer is added to the contents of line address register 42b, which is the address of the left child determines where Dul70hden step 70 is the result of the query operations of evaluated in steps 50 and 55. These query operations resulted in a condition code set in a previously not mentioned Erw # t # n RegisterCC, which is now in step 70 is queried. If the register CC contains the values 1 1, a branch is made back to step 35. This is the case if the successor has an inner vertex element that is in memory. The successor in the line register 42c is loaded and the following steps follow repeated. Conversely, if step 70 indicates d # either of the two bits in the register CC has the value a, the process goes to step 75, through which the content of the Line address retisters # 2b # a memory access has been carried out, the result of which is as a search result in the subsection 41b fFig. 4B) is transmitted. After the step The final step is followed by step 80, which indicates the end of the search operation W # nn in register CC for the r-L # t place c the value 1 and for the bit position t the shows 0, the requested successor is a key element in memory 40.

Die Suchoperation ist daher beendet, nachdem die Adresse dieses Schlüsselelementes im Zeilenadreßregister 42b eingestellt 11'worden ist. Wenn dagegen die Bitstelle c=0, so bedeutet diese daX der gesuchte Nachfolger nicht im Speicher 40 enthalten ist und deshalb unter Benutzung der Adresse im Zeilenadreßregister 42b in den Speicher geholt werden muß. Letztere Operation wird durch den' Schritt 75 ausgeführt. Der Schritt 80 bewirkt eine Beendigung der Arbeit der Datenverarbeitungsanlage oder eine Rückkehr zu dem Programm, von der die Buckne nach der nunmehr ermittelten Datengruppe ausgegangen ist.The search operation is therefore finished after the address of this key element has been set 11 'in the line address register 42b. If, on the other hand, the bit position c = 0, this means that the successor sought is not contained in the memory 40 and therefore into memory using the address in row address register 42b must be fetched. The latter operation is carried out by step 75. Of the Step 80 brings about termination of the work of the data processing system or a return to the program from which the Buckne after the now determined data group has gone out.

Anhand von Fig. 5 soll im folgenden eine Suchoperation SRCH2 erläu@ert w@@@en, bei der davon ausgegangen wird, daß die Felder 11 (Fig. 2B) in den Einträgen der Adressenliste umkehrbare Verbindunen enthalten. Die einzelnen Operationen von Fig. 5 sind ähnlich denen von Fig 4A mit Ausnahme der Ermittlung der Adresse für den jeweilig Nachfolger eines internen Scheitelelementes.A search operation SRCH2 is to be explained below with reference to FIG. 5 w @@@ en, which assumes that the fields 11 (Fig. 2B) contain reversible links in the entries in the address list. The single ones Operations of Fig. 5 are similar to those of Fig. 4A except for determination the address for the respective successor of an internal vertex element.

Die Fig. 6 gibt den Inhalt des Speicherabschnittes 40a an. Die Ableitung der Verbindungen geschieht in der oben anhand von Fig.Fig. 6 indicates the content of the memory section 40a. The derivation the connections takes place in the above with reference to Fig.

2A beschriebenen Weise. Die ig. 6 zeigt auch verschiedene Register, de zur Ausführung der Operationen von Fig. 5A benutzt werden.2A described manner. The ig. 6 also shows various registers, de can be used to perform the operations of Figure 5A.

Eine Suchoperation in der Adressenliste deren Einträge umkehrbare Verbindungen enthalten, fordert die Speicherung der Speicheradresse eines jedes Vryengers zum jeweils in Behandlung befindlichen Scheitelelement. Die Adresse des Nachfolgers wird durch eine exklusiv-oder-Verknüpfung des Inhaltes des Verbindungsfeldes im laufenden Scheitelelement mit der Adresse, die vom Zugriff zum Vorgänger-Scheitelelement au@bewahrt wurde.A search operation in the address list whose entries are reversible Containing connections calls for the storage of the memory address of each Vryengers to the apex element currently being treated. The address of the Successor is created by an exclusive-or-linkage of the content of the connection field in the current vertex with the address given by the access to the previous vertex au @ was preserved.

Von der in Fig. 6 dargestellten Registern enthält ein Register 80 den Z-Index desVorgängers, ein Register 81 den Z-Index des laufende@ scheitelelementes cnd ein Register 82 den Z-Index des Nachfolg@@@ Scheitelelementes. Z-Index bedeutet hierbei jeweils eine Zeile@@@@@@sse für betreffande Scheiteleleinent in der Adressenlist zur Register 83 enthält die Adresse der Adressenliste im Speicher 40. 93. Ein Zeilenregister 84 dient zur Aufnahme des Inhaltes der jeweils in Behandlung befindlichen Zeile aus der Adressenliste.Of the registers shown in FIG. 6, one register contains 80 the Z-index of the predecessor, a register 81 the Z-index of the current @ vertex element cnd a register 82 the Z index of the successor @@@ vertex element. Z index means one line @@@@@@ sse for the relevant vertex element in the address list to register 83 contains the address of the address list in memory 40. 93. A line register 84 is used to record the content of the line currently being processed from the address list.

Außerdem ist ein Register 85 zur Aufnahme der Adresse eines Suchargumentes vorgesehen, d.h. zur diese der höchsten Bitstelle des Suchargumentes.There is also a register 85 for receiving the address of a search argument provided, i.e. for this of the highest bit position of the search argument.

Die Su@@operation Ç beginnt mit dem Startschritt 51. Im folgenden @@@@@ 52 wird das Register 80 auf 0 gestellt, da der erste Zugir# n der Adressenlist@ @um Quellanscheitelelement erfolgt, das Keinen @@nger aufweist. Das Register 81 wird mit dem Wert 1 geladen. @@@ den g Z-Index (Zeile@ adresse 1) zur der Adressenliste im Speichera@@@@@@t 40a darstellt.The Su @@ operation Ç begins with the start step 51. In the following @@@@@ 52 register 80 is set to 0 because the first access to the address list @ @ takes place around the source apex element that has no @@ nger. Register 81 is loaded with the value 1. @@@ the g Z index (line @ address 1) for the address list in Speichera @@@@@@ t 40a represents.

Im Schritt 53 wird das erste reld in der Adressen te 2efgesuchtt welches die Zahl der in der Adressenliste enthaltenen Zellen angibt. Die Zahl der Schlüsselelem-nte kann ermittelt werden, indem der Inhalt dieses Feldes durch 2 geteilt wird. Im Schritt 31 wird festgestellt, ob diese Zahl der Schlüsselelemente größer als 1 ist. Wenn dies der Fall ist, erfolgt ein Übergang zum Schritt 57. Wenn dagegen nur ein oder kein Eintrag in der Adressenliste vorhanden ist, erfolgt ein Übergang zum Schritt 54, der bestimmt, ob in der Adressenliste überhaupt ein Schlüsselelement vorhanden ist. Sofern dies der Fall ist, stellt der Schritt 55 ein Konditionscode-Register CC in Fig. 6 (nicht dargestellt) auf den Inhalt 1, 1. Im anderen Falle wird durch den Schritt 56 dieses Register auf 0,0 gestellt. Nach Beendigung der Schritte 55, 56 ist die Suchoperation beendet.In step 53 the first reld is searched for in address te 2ef indicates the number of cells contained in the address list. The number of key elements can be determined by dividing the content of this field by 2. In step 31 it is determined whether this number of key elements is greater than 1. if this is the case, a transition is made to step 57. If, on the other hand, only one or If there is no entry in the address list, there is a transition to the step 54, which determines whether there is a key element at all in the address list is. If this is the case, step 55 sets a condition code register CC in Fig. 6 (not shown) to the content 1, 1. In the other case, is through set step 56 of this register to 0.0. After completing step 55, 56 the search operation is finished.

Normalerweise wird jedoch im Schritt 53 festgestellt, daß mehr als ein Eintrag in der AdreæsenlisLe vorliegt, da diese üblicherweise zur Unterstützung einer sehr großen Datenbasis benutzt wird.Normally, however, it is determined in step 53 that more than there is an entry in the AdreæsenlisLe, as this is usually for support a very large database is used.

Es erfolgt daher ein Ubergang zum Schritt 57, durch den ein Zugriff zu der Zeile in der Adressenliste erfolg6, auf welche der Inhalt des Registers 81 hinweist. Der Inhalt dieser Zeile wird in das Register 84 geladen. Der nächste Schritt 48 erzeugt daraufhin den Z-Index für das Nachfolgerpaar und speichert d:es--z im Register 82. Der Z-Index des Nachfolgerpaares wird durch Exklusiv-Oder-Verknüpfung des Inhaltes des Verbindungsfeldes in Register 84 und des Inhaltes des Registers 84 gebildet, das üblicherweise den Z-Index des Vorgängers von dem Scheitelelement enthält, das durch den Z-Index im Register 81 bezeichnet wird. Durch den Schritt 59 wird ein Suchargument-Bit ausgewählt als laufendes Suchpfadvektor-Bit. Die Auswahl erfolgt in der in Verbindung mit Fig. 4A beschriebenen Weise dadurch, daß der Inhalt des D-Indexfeldes aus dem Register 84 doe betreffende Bitsposition des Suchargumentes in bezug auf dessen höchste Bitstelle anzeigt.There is therefore a transition to step 57, through which an access to the line in the address list sucess6 to which the content of the register 81 indicates. The contents of this line are loaded into register 84. The next step 48 then generates the Z index for the successor pair and stores d: es - z im Register 82. The Z-index of the successor pair is determined by an exclusive-OR link the content of the connection field in register 84 and the content of the register 84 is formed, which is usually the Z-index of the predecessor of the apex element which is identified by the Z index in register 81. By the step 59, a search argument bit is selected as the current search path vector bit. The selection takes place in the manner described in connection with FIG. 4A in that the content of the D index field from register 84 doe the relevant bit position of the search argument with respect to its highest bit position.

fer Schritt 60 stellt fest, ob das Suchargument-Bit im Zustand oder im Zustand ist. Wenn ersteres der Fall ist, wird der linke Nachfolger des laufenden Scheitelelementes als nächstes Scheitelelement auf dem Suchpfad ausgewählt. Im anderen Falle erfolgt eine Auswahl des rechten Nachfolgers als nächstes Scheitelelement. Bei der Auswahl des linken Nachfolgers wird als nächstes der Schritt 61 durchgeführt, der die Kennzeichen-Bitstelle tot c für den linken Nachfolger in das Konditionscode-Register CC überträgt. Wenn stattdessen der rechte Nachfolger ausgewählt worden ist, führt der Schritt 62 die gleiche Operation für die Kennzeichenbits tl, cl durch, die dem rechten Nachfolger zugeordnet sind.fer step 60 determines whether the search argument bit is in the state or is in the state. If the former is the case, the will left successor of the current vertex is selected as the next vertex on the search path. Otherwise, the right successor is selected as the next vertex element. When selecting the left successor, step 61 is carried out next, the identifier bit position tot c for the left successor in the condition code register CC transmits. If the right successor has been selected instead, leads the step 62 performs the same operation for the flag bits tl, cl, which the right successors are assigned.

Im Falle der Auswahl des linken Nachfolgers ist keine Korrektur des Inhaltes des Registers 82 notwendig, da in dieses Register im Schritt 58 die Hinweisadresse auf den linken Nachfolger eingespeichert wurde. Wenn dagegen der rechte Nachfolger im Schritt 60 ausgewählt worden ist, muß der Inhalt des Registers 82 entsprechend abgeändert werden. Dies geschieht durch den Schritt 63, der den Z-Index im Register 82 (Adresse des linken Nachfolgers) um 1 erhöht, um so den Z-Index für den rechten Nachfolger zu erzeugen.If the left successor is selected, there is no correction of the Content of register 82 is necessary because the reference address is in this register in step 58 was saved on the left successor. If, on the other hand, the right successor has been selected in step 60, the contents of register 82 must accordingly be modified. This is done through step 63, which has the Z index in the register 82 (address of the left successor) increased by 1, thus adding the Z index for the right one To generate successors.

Die Schritte 64 und 65 dienen zur Vorbereitung der nächsten Operation. Der Schritt 64 überträgt das laufende Scheitelelement aus dem Register 81 in das Register 80, wodurch dieses Scheitelelement zum Vorgangerelement wird. Im Schritt 65 wird der Inhalt des Registers 82 in das Register 81 übertragen, wodurch der im Schritt 60 ausgewählte Nachfolger zum neuen laufenden Scheitelelement wird. Die nächste Ithation wird jedoch nur wirksam, wenn das Nachfolgerelement ein inneres Scheitelelement ist. Hierüber gibt der Schritt 70 Auskunft, der das Konditionscode-Register CC auf den Zustand 1,1 abfragt. Wenn dies der Fall ist, wird die oben erläuterte Schrittfolge, beginnend mit dem Schritt 57, mit dem nun im Register 81 stehenden laufenden Scheitelelement wiederholt.Steps 64 and 65 are used to prepare for the next operation. Step 64 transfers the current vertex element from register 81 to the Register 80, which makes this vertex element the predecessor element. In step 65, the content of register 82 is transferred to register 81, whereby the im Step 60 becomes the selected successor as the new current vertex element. the However, the next itthation will only take effect if the successor element has an inner Vertex element is. Information about this is provided by step 70, which is provided by the condition code register CC queries the state 1,1. If so, the above will be discussed Sequence of steps, beginning with step 57, with the one now in register 81 running vertex element repeated.

Dies geschieht lange7 bis durch den sckr4-tt 70 angezeigt wird, daß ein SchlCsekeleme ereicht ist. In diesem Falle wird bei 71 das Ende der Suchoperat#: ang~zeigt. Mit dem Ende der Suchoperation kann ein Übergang zu einem Programm der zentralen Verarbeitungseinheit 38 erfolgen, das die Suchoperation eingeleitet hat. Die Adresse des Schlüsselelementes wird durch eine ExX;1usiv-Oder-Verknüpfung des Inhaltes des Registers 80 (Z-Index des Vorgängers) und des Inhaltes des Registers 81 (Z-Index des laufenden Scheitelelementes) gewonnen. Mit der so gewonnenen Adresse wird das Schlüsselelement aufgesucht, dessen Inhalt daraufhin zum Adressieren der während eines Verarbeitungsvorganges von der zentralen Verarbeitungseinheit 38 benötigten Daten verwendet wer den kann. Diese Daten können beispiels#eise in einem der Anschlußgeräte 39 gespeichert sein.This happens for a long time until the sckr4-tt 70 indicates that a key has been reached. In this case, the end of the search operation at 71 is #: ang ~ shows. With the end of the search operation can be a transition too a program of the central processing unit 38, which the search operation has initiated. The address of the key element is given by an ExX; 1usiv-OR link the content of register 80 (Z index of the previous one) and the content of the register 81 (Z-index of the current vertex element) won. With the address obtained in this way the key element is searched, the content of which is then used to address the required by the central processing unit 38 during a processing operation Data can be used. These data can, for example, be stored in one of the connection devices 39 must be saved.

Wenn anstelle der umkehrbaren Adressen in den Feldern 11 der inneren Scheitelelemente (Fig. 2B) absolute Verbindungen enthalten sind, wird der oben anhand von Fig. 5 erläuterte Vorgang insofern abgeändert, als der Schritt 58 durch einen Schritt 73 (Fig. 5B) ersetzt wird. Die diesbezüglichen Anschlußstellen sind mit 74 und 75 bezeichnet. Der Schritt 72 überträgt die Verbindung aus dem jeweiligen Feld 11 in das Register 82. Bei einer derartigen Suchoperation, die mit SRCH3 bezeichnet wird, können auch die Schritte 52 und 64 von Fig. 5A wegfallen. Im übrigen erfolgt diese Suchoperation in der gleichen Weise, wie es vorausgehend anhand von Fig. 5A beschrieben wurde.If instead of the reversible addresses in fields 11 of the inner If vertex elements (Fig. 2B) contain absolute connections, the above is based on of Fig. 5 is modified to the extent that step 58 is replaced by a Step 73 (Fig. 5B) is replaced. The relevant connection points are with 74 and 75. Step 72 transfers the connection from the respective Field 11 in register 82. In such a search operation, denoted by SRCH3 steps 52 and 64 of FIG. 5A can also be omitted. Otherwise takes place perform this search operation in the same manner as previously described with reference to Fig. 5A has been described.

In den Fign. 7 bis 10 ist eine Einrichtung dargestellt, die zur Ausführung des oben anhand von Fig. 4A erläuterten Suchverfahrens benutzt werden kann. Die Einrichtung von Fig. 7 enthält einen Speicher 40, der aus einer größeren Anzahl von Bitstellen besteht, von denen jede wahlfrei adressierbar ist. Der Zugriff zum Speicher 40 erfolgt über eine Sammelleitung 106. Zur Erzeugung von übertragungssteuersignalen dient eine Steuerschaltung 117e die im Detail in Fig. 7 dargestellt ist. Der Inhalt des Speic#ers 40 ist in der aus Fig. 4B ersichtlichen Weise organisiert und steuert die tm susammenhang mit dieser Figur beschriebenen Operationen.In FIGS. 7 to 10 a device is shown which is used to carry out the search method explained above with reference to FIG. 4A can be used. the The device of FIG. 7 includes a memory 40 which is selected from a large number of of bit positions, each of which is freely addressable. Access to the Memory 40 takes place via a bus line 106. For generating transmission control signals A control circuit 117e, which is shown in detail in FIG. 7, is used. The content of the memory 40 is organized and controlled in the manner shown in FIG. 4B the operations described in connection with this figure.

In fi. 7 sind alle rsorschaLtunyenU die eine DateneRngab@ in die dargestellten Funktionseinheiten bewirken, mit "IG" bezeichnet.In fi. 7 are all rsorschaLtunyenU the a data input @ in the shown Effect functional units, labeled "IG".

Ebenso sind alle Torschaltungen, die mit dem Ausgang dieser Funktionseinheiten verbunden sind und betätigt werden, wenn Daten von diesen Funktionseinheiten zu anderen Funktionseinheiten zu übertragen sind, mit ~OG" bezeichnet. Die hinter diesen Bezeichnungen in Klammern stehenden Buchstaben geben in Übe reinstimmung mit der nachstehenden Tabelle jeweils die betreffende Funktionseinheit oder Dateneinheit an, auf die sich die jeweiligen Toroperationen beziehen, Die Tabelle enthält außerdem auch andere Symbole, die in den Fign. 7 bis 10 benutzt werden: (A) = Zeilenadreßregister (C) = Adressenlisten-Zeile (D) = Entnahme der Zeilenadressenkonstante (E) = Entnahme der Suchargument-Adressenkonstante (F) = Versetzungsfeld (H) = Addierer-Verriegelungsschaltungen (I) = Bitindexfeld (Bitadresse) (L) = Zuführung der Zeilenlängenkonstante (M) = Speicheradressenübertragung (R) r Zugriff zum Suchresultat-Feld im Speicher (s) e Suchargument-Adressenregister (Z) = Laufendes Suchargument-Bit (o) = Feld to CO (1) = Feld tl, cl C0-C7 Z Taktsignale Y = Operation-Fortsetzen-Signal Z = Suchargument-Bit-Register-Ausgabe.Likewise, all gates connected to the output of these functional units are connected and actuated when data from these functional units to are to be transferred to other functional units, denoted by ~ OG ". The ones behind these Designations in brackets indicate in agreement with the The table below shows the relevant functional unit or data unit to which the respective gate operations refer. The table also contains also other symbols that are shown in FIGS. 7 to 10 can be used: (A) = row address register (C) = address list line (D) = extraction of the line address constant (E) = extraction the search argument address constant (F) = offset field (H) = adder latches (I) = bit index field (bit address) (L) = supply of line length constant (M) = Memory address transfer (R) r Access to the search result field in the memory (s) e Search argument address register (Z) = Current search argument bit (o) = field to CO (1) = field tl, cl C0-C7 Z clock signals Y = operation continue signal Z = search argument bit register output.

Die Übertragungen über die Sammelleitung 106 zur Ausführung der Verfahrensschritte von Fig. 4A sind aus der folgenden Tabelle A ersichtlich. Die Fintragungen CO, C1 bis C7 entsprechen qleichlautenden Eintragungen in Fig. 4A zur Bezeichnunq der zugehörigen Operationsschritte.The transmissions over the bus 106 for performing the method steps of Figure 4A can be seen from Table A below. The finitions CO, C1 to C7 correspond to identical entries in FIG. 4A for the designation of the associated Surgical steps.

Tabelle A CO: OG(D),IG(A),IG(X) C1: IG(S>,OG(E),IG(M) C2: IG(C),OG(A),IG(M),IG(H) C3: OG(S),IG(Z),IG(I),IG(M)IG(H) C4 & Z: OG(L),OG(A),IG(H) C5 & Z: IG(A) C5: OG(A),OG(F) C6: IG(A) C6 & Z: OG(1) C6 & Z: OG(O) C7 OG(A),IG(H),IG(M),IG(R) Der Speicher 40 (Fig. 7) ist so ausgebildet, daß er die Entnahme einer Zeile der Adressenliste gestattet, wobei diese Zeile auf jeder Bitposition des Speichers beginnen kann. Die Entnahmeadresse wird dem Speicher über IG(M> zugeführt. Die gesamte entnommene Zeile wird über die Sammelleitung PO parallel übertragen, die zu diesem Zweck aus einer Anzahl Einzelleitungen besteht, von denen jede zur Übertragung eines Bits geeignet ist. Table A CO: OG (D), IG (A), IG (X) C1: IG (S>, OG (E), IG (M) C2: IG (C), OG (A), IG (M) , IG (H) C3: OG (S), IG (Z), IG (I), IG (M) IG (H) C4 & Z: OG (L), OG (A), IG (H) C5 & Z: IG (A ) C5: OG (A), OG (F) C6: IG (A) C6 & Z: OG (1) C6 & Z: OG (O) C7 OG (A), IG (H), IG (M), IG (R) The memory 40 (Fig. 7) is designed so that it is the removal of a line of the Address list allowed, this line starting at every bit position of the memory can. The removal address is fed to the memory via IG (M>. The entire removed line is transmitted in parallel via the bus PO, which is to this Purpose consists of a number of individual lines, each of which is used to transmit one Bits is suitable.

In einigen Fällen ist es erwünscht, aus dem Speicher 40 lediglich ein einzelnes Bit zu entnehmen, wie es beispiels#Yeise für eine Übertragung eines Sucharguinent-Bits zu einem Register 107 der Fall ist. Das Register 107 ist daher nur mit derjenigen sinzelleitung in der Sammelleitung 106 verbunden, welche der höchsten Bitstelle zugeordnet ist. Die Einrichtung weist weitere Register 108 bis 111 auf, deren Eingänge jeweils mit allen Einzelleitungen der Sammelleitung 106 verbunden sind.In some cases it is desirable to only use memory 40 a single bit can be extracted, for example # Yeise for a transmission of a Search arguinent bits to a register 107 is the case. Register 107 is therefore connected only to the single line in the manifold 106 which the is assigned to the highest bit position. The device has further registers 108 to 111, the inputs of which are connected to all the individual lines of the bus line 106 are connected.

Im Speicher 40 sind bestin#te Felder dlb bis 41e vorgesehen S die sich auf Speicherpositionen befinden welche stets unverändert bleiben. Die Adressen für diese Speicherpositionen werden von Konstantwert-Schaltungen lCl 102 und 103 erhaltene Das Torsteuersignal OG(E) überträgt die Adressenkonstante zum Speicher 40, welche im Speicher das reld glc bezeichnete in dem das Suchargument gespeichert ist. Das Torsteuersignal OG(D) überträgt von der Adressenkonstantwert-Schaltung 101 die Adresse zum Speicher, welche das Feld 41d bezeichnet, in dem das Quellenscheitelelement gespeichert ist, mit dem die Suchoperation beginnt. Durch das Torsteuersignal OG(R) wird von der Adressenkonstantwert-Schaltung 103 eine Adresse zum Speicher übertragen, die das Feld 41b adressiert, indem das Suchresultat nach Beendigung einer Suchoperation gespeichert wird. Bei jeder Übertragung einer Adresse aus den Schaltungen 101 bis 103 zum Speicher 40 bezeichnet diese jeweils die höchste Bitstelle des betreffenden Feldes. Jede der genannten Adressen wird dem Speicher über eine Torschaltung zugeführt, die durch das Torsteuersignal IG(M) betätigt wird. Unter Wirkung dieses Signals werden dem Speicher auch Adressen von der Sammelleitung 106 zugeführt.Certain fields dlb to 41e are provided in memory 40 are in memory positions which always remain unchanged. The addresses constant-value circuits IC1 102 and 103 The gate control signal OG (E) transfers the address constant to the memory 40, which denotes the reld glc in the memory in which the search argument is stored is. The gate control signal OG (D) transmits from the address constant value circuit 101 is the address to memory which designates field 41d in which the source vertex element with which the search operation begins. By the gate control signal OG (R) an address is transmitted to the memory from the address constant value circuit 103, which addresses the field 41b by displaying the search result upon completion of a search operation is saved. Each time an address is transmitted from the circuits 101 to 103 to memory 40, this denotes the highest bit position of the respective Field. Each of the addresses mentioned is fed to the memory via a gate circuit, which is actuated by the gate control signal IG (M). Under the action of this signal addresses from bus 106 are also provided to memory.

Die Einrichtung von Fig. 7 umfaßt ferner einen Addierer 113, an dessen Ausgang eine Addierer-Verriegelungsschaltung 114 angeschlossen ist. Der Inhalt der Addierer-Verriegelungsschaltung wird ständig der Sammelleitung 106 zugeführt. Durch ein Steuersignal IG(H) wird die Addierer-Yerriegelungsschaltung 114 in den 0Zustand zurückgestellt. Nach Auftreten dieses Signals hat der Addiererausgang somit keinen Einfluß auf andere Signale, die auf den Adern der Sammelleitung 106 auftreten.The device of FIG. 7 also includes an adder 113, at which Output an adder latch circuit 114 is connected. The content of the Adder latch circuitry is continuously fed to bus 106. By a control signal IG (H) turns the adder lock circuit 114 into the 0 state deferred. After this signal has occurred, the adder output does not have any Influence on other signals that occur on the wires of the bus 106.

Das Einschreiben in den Speicher 40 erfolgt durch ein Eingabetorsteuersignal (R). Für eine Einschreiboperation wird der Speicher durch ein Steuersignal IG(M) in der oben beschriebenen Weise adressiert. Das Register 108 dient zur Aufnahme der Adresse des Suchargumentes, nachdem diese aus dem Teilbereich 41c des Speichers 40 entnommen wurde, Das Register 109 empfängt die Zeilenadresse aus dem Teilbereich 41e. Während allen Teilschritten enthalten die Register 108 und 109 jeweils die Adresse des Suchargumentes und die der jeweiligen Teile der Adressenliste. Die Ausgang ge der Register 108 und 109 sind an den linken Eingang des Addierers 113 angeschlossen; eine Signalübertragung über diese Verbindungen findet statt unter der Wirkung der Torsteuersignale OG(S) und OG(A).The writing in the memory 40 is carried out by an input gate control signal (R). For a write operation, the memory is activated by a control signal IG (M) addressed in the manner described above. The register 108 is used for recording the address of the search argument after it has been retrieved from sub-area 41c of the memory 40, the register 109 receives the row address from the sub-area 41e. During all sub-steps, registers 108 and 109 each contain the Address of the search argument and that of the respective parts of the address list. The exit ge of registers 108 and 109 are connected to the left input of adder 113; a signal transmission over these connections takes place under the effect of the Gate control signals OG (S) and OG (A).

Das Register 111 dient zur Aufnahme jeweils einer adressierten Zeile (z.B. 41a) aus der Adressenliste 40a im Speicher 40. Das Register 111 empfängt die dem Speicher entnommene Zeile über die Sammelleitung 106 und ein Eingangstor, das durch das Torsteuersignal IG(C) für einen Signaldurchlaß gesteuert wird, Das Register 111 enthält ein Bit-Index-Feld, ein Versetzungsfeld und ein Kennzeichenfeld, das aus den Bitstellen tot cO, t16 cl besteht. Diese Felder sind unabhängig voneinander für eine Datenentnahme ansteuerbar. Durch ein Torsteuersignal OG(F) wird der Inhalt des Versetzungsfeldes aus dem Register 111 zum rechten Eingang des Addierers 113 übertragen. Das Versetzungsfeld enthält die Versetzungswerte in Zweierkomplement-Form. Das Vorzeichenbit dieser Werte, welches links von der höchsten signifikanden Ziffer steht, belegt am Addierereingang alle übrigen links von dieser Ziffernstelle befindlichen Ziffernstellen.The register 111 is used to receive one addressed at a time row (e.g. 41a) from address list 40a in memory 40. Register 111 receives the line extracted from memory via bus 106 and an entrance gate, the controlled by the gating signal IG (C) for signal passage, the register 111 contains a bit index field, an offset field and a label field, the consists of the bit positions tot cO, t16 cl. These fields are independent of each other controllable for data extraction. The content is controlled by a gate control signal OG (F) of the offset field from register 111 to the right input of adder 113 transfer. The displacement field contains the displacement values in two's complement form. The sign bit of these values, which is to the left of the highest significant digit occupies all the others at the adder input to the left of this digit Digits.

Ein Torsteuersignal OG(I) überträgt das Bitindexfeld vom Register 111 zum rechten Eingang des Addierers 1136 In diesem Falle werden alle am Addierereingang links vom Bitindexfeld verbleibenden Bitpositionen mit Nullen aufgefüllt.A gating signal OG (I) transfers the bit index field from the register 111 to the right input of the adder 1136 In this case all are at the adder input The remaining bit positions to the left of the bit index field are filled with zeros.

Die Bitstellen tot cg oder tl, cl des Kennzeichenfeldes im Register 111 werden unter Wirkung von Torsteuersignalen OG(0> oder OG(1) in das Register 109 übertragen in dessen zwei Bitstellen am äußersten linken Ende dieses Registers Diese Bitstellen sind in Fig. 7 mit t und c bezeichnet und dienen zur Aufnahme des Konditionscodes CC (Register CC von Fig. 4A>.The bit positions tot cg or tl, cl of the identifier field in the register 111 are entered into the register under the effect of gate control signals OG (0> or OG (1)) 109 transferred in its two bit positions at the far left end of this register These bit positions are denoted by t and c in FIG. 7 and are used to receive the Condition codes CC (register CC of Fig. 4A>.

Der durch die Torsteuersignale OG(O) oder Q(1) aus dem Register 111 entnommene Teil des Kennzeichenfeldes wird außerdem gleichzeitig zum Eingang einer UND-Schaltung 116 übertragen, die über eine Ausgangsverbindung Y ein Taktsignal zum Start der Taktsteuerung 117B liefert. Über einen Inverter 116A wird auf einem Ausgang Y ein Signal erzeugt, das eine Invertierung zu den auf dem Ausgang Y erscheinenden Signal darstellt und ebenfalls zur;Taktsteuerung 117B geleitet wird.That by the gate control signals OG (O) or Q (1) from the register 111 The part of the license plate that has been removed also becomes the input of a AND circuit 116 transmitted via an output connection Y a clock signal at the start of the clock controller 117B. An inverter 116A is used on a Output Y generates a signal that is an inversion of those appearing at output Y. Represents the signal and is also passed to the clock control 117B.

Eine Zeilenlängenkonstante-Registerschaltung 112 liefert an ihrem Ausgang ein Signal, das die Zeilenlänge der Adressenliste darstellt, d.h. die Zahl der Bits, welche eine solche seile aufweist. Die Ausgangssignale aus der Registerschaltung 112 gelangen zum rechten Eingang des Addierers 113, wenn ein Torsteuersignal OG(L) durch die Torsteuerung 117C geliefert wird.A line length constant register circuit 112 supplies its The output is a signal that represents the line length of the address list, i.e. the number the bits that such a rope has. The output signals from the register circuit 112 go to the right input of adder 113 when a gate control signal OG (L) is provided by the gate controller 117C.

In Fig. 8 ist ein Ausführungsbeispiel tür eine Taktgeberschaltung dargestellt, wie sie zur Steuerung der Operationsfolge von Fig. 4A verwendet werden kann. Diese Schaltung besteht aus einer Anzahl bistabiler Stufen 120 bis 127, welche Taktsignal während der Zeitintervalle Co, C1 bis C7 erzeugen Anfänglich werden alle Stufen 120 bis 127 durch ein Signal auf einer Leitung 138 rückgestellt. Zur Synchronisierung der Taktschritte dient ein Oszillator 128, der einen Zähler 129 speist, welcher jeweils nach 16 Zählschritten ein Ausgangssignal liefert.In Fig. 8, one embodiment is a clock circuit as used to control the sequence of operations of Figure 4A can. This circuit consists of a number of bistable stages 120 to 127, which Generate clock signal during time intervals Co, C1 to C7. Initially, all of them Stages 120 to 127 reset by a signal on line 138. For synchronization the clock steps are an oscillator 128, which feeds a counter 129, which supplies an output signal after every 16 counting steps.

Die Ausgangssignale des Zählers 129 gelangen über eine Leitung 132 zu den Eingängen aller Stufen 120 bis 127, um diese zu synchronisieren. Von diesen Stufen empfängt zu einer bestimmten Zeit jeweils nur eine ein Startsignal, um eine seriale Durchschaltung zu erreichen. Anfangs empfängt die Stufe 120 einen Startimpuls, auf einer Leitung 130, der von einer externen Quelle stammt, z.B. ein in die Datenverarbeitungsanlage manuell eingegebenes Signal oder ein von einer Programminstruktion ausgelöstes Signal sein kann. Zur gleichen Zeit wird der Zähler 129 durch einen Startimpuls von der gleichen Leitung 130 in den O-Zählzustand zurückgestellt.The output signals of the counter 129 arrive via a line 132 to the inputs of all stages 120 to 127 in order to synchronize them. Of these Only one stage receives a start signal at a given time to start one to achieve serial connection. Initially, stage 120 receives a start pulse, on a line 130 that comes from an external source, e.g., one into the data processing system manually entered signal or a signal triggered by a program instruction can be. At the same time, the counter 129 is activated by a start pulse from the same line 130 is reset to the 0 counting state.

Die Erzeugung der verschiedenen Startsignale ist aus Fig. 10 ersichtlich. Dort sind eine Anzahl UND-Schaltungen 171 bis 178 dargestellt, von denen jede einen Synchronisierimpuls T vom Zähler 129 empfängt. An die zweiten Eingänge der UND-Schaltungen werden die Ausgangs-Taktimpulse von den Stufen 120 bis 127 (Fig. 8) angelegt. Am Ende des Taktzyklus CO wird daher die UND-Schaltung 171 durch das Signal D geöffnet und liefert ein Startsignal T1.The generation of the various start signals can be seen from FIG. There a number of AND circuits 171 to 178 are shown, each of which is one Synchronization pulse T from counter 129 receives. To the second inputs of the AND circuits the output clock pulses from stages 120-127 (FIG. 8) are applied. At the At the end of the clock cycle CO, the AND circuit 171 is therefore opened by the signal D and supplies a start signal T1.

Dementsprechend wird jede der übrigen UND-Schaltungen 172 bis 178 durch die Takt-Ausgangssignale Cl bis C6 und das Signal T betätigt.Accordingly, each of the remaining AND circuits 172 to 178 by the clock output signals Cl to C6 and the signal T is actuated.

Immer wenn ein T-Impuls auftritt, wird der laufende Taktzyklus beendet, und der nächste Taktzyklus wird durch ein Ausgangssignal von einer der UND-Schaltungen 171 bis 178 eingeleitet. Eine ODER-Schaltung 179 erzeugt den Startimpuls C2 sowohl am Ende des Taktzyklus C1 als auch am Ende des Taktzyklus C6, so daß sich die Zyklen C2 bis C6 wiederholen, bis die Suchoperation für das laufende Suchargument beendet ist. Die Taktzyklen CO und C1 werden demnach für jedes Suchargument nur einmal durchlaufen. Die Signale auf den Eingängen Y und Y, die vom Ausgang der Schaltung 116 in Fig. 7 geliefert werden, dienen zur Steuerung von Verzweigungsoperationen der Taktsteuerung, um entweder den Taktzyklus C2 oder den Taktzyklus C7 einzuleiten.Whenever a T-pulse occurs, the current clock cycle is ended, and the next clock cycle is determined by an output from one of the AND circuits 171 to 178 initiated. An OR circuit 179 generates the start pulse C2 both at the end of clock cycle C1 as well as at the end of clock cycle C6, so that the cycles Repeat C2 to C6 until the search operation for the current search argument ends is. The clock cycles CO and C1 are therefore run through only once for each search argument. The signals on inputs Y and Y, which are derived from the output of circuit 116 in Fig. 7 are supplied, are used to control branch operations of the clock control, to initiate either clock cycle C2 or clock cycle C7.

Die Fig. 9 zeigt die Schaltung der Torsteuerung 117D. Diese Schaltung besteht aus einer Anzahl logischer Schaltungen 151 bis 164, die als ODER-Schaltungen oder als UND-Schaltungen ausgebildet sind und zur Erzeugung der Torsteuersignale IG und OG dienen. Ein Teil dieser Torsteuersignale wird auch ohne Verwendung von logischen Schaltungen in der aus Fig. 9 ersichtlichen Weise direkt aus den Taktsignalen gewonnen. Die Eingangssignale in Fig. 9 werden vom Ausgang der Taktgeberschaltung von Fig. 8 gewonnen. Eingangssignale der Schaltung von Fig. 9 sind auch die Signale Z und Z vom Ausgang des Registers 107 in Fig. 7.Fig. 9 shows the circuit of the gate controller 117D. This circuit consists of a number of logic circuits 151 to 164, which act as OR circuits or are designed as AND circuits and for generating the gate control signals IG and OG serve. Some of these gate control signals are also available without the use of logic circuits in the manner shown in FIG. 9 directly from the clock signals won. The input signals in Figure 9 are taken from the output of the clock circuit obtained from FIG. Input signals to the circuit of FIG. 9 are also the signals Z and Z from the output of register 107 in FIG. 7.

Anstelle der Steuerschaltungen 117 (Fig. 7) kann zur Erzeugung der Torsteuersignale IG und OG auch ein für sich bekanntes Mikroprogramm-Steuerwerk Verwendung finden.Instead of the control circuits 117 (FIG. 7) can be used to generate the Gate control signals IG and OG are also known as a microprogram control unit Find use.

Claims (14)

PATENTANSPRÜCHEPATENT CLAIMS 1. Suchverfahren für Schlüsselwörter in einer elektronischen Datenverarbeitungsanlage, die einen Adressenspeicher enthält zur Aufnahme der Schlüsselwörter zusammen mit einer Adressenliste, deren Einträge eine Baumstruktur bilden, die ferner einen oder mehrere Datenspeicher enthält zur Aufnahme von Daten, deren Adressen in den Schlüsselwörtern enthalten sind, und die einen Suchwortspeicher aufweist zur Aufnahme eines Suchargumentes, dessen Elemente den Einträgen der Adressenliste zugeordnet sind und einen Suchpfad durch die Baumstruktur festlegen, in dessen Endzweigen sich die Schlüsselwörter befinden, dadurch gekennzeichnet, daß jedem auf dem Suchpfad liegenden Eintrag einer als binäre Baumstruktur organisierten Adressenliste eine Bitstelle im Suchargument zugeordnet ist, deren Inhalt bei Erreichen des betreffenden Eintrages abgefragt wird und die Auswahl einer von zwei Ausgangsverbindungen steuert, daß aus dem Eintrag der Adressenliste eine der ausgewählten Ausgangsverbindung entsprechende Hinweis adresse zum Nachfolger-Eintrag in der Baumstruktur abgeleitet wird, daß vor dem Übergang zum Nachfolger-Eintrag ein in jedem Eintrag der Adressenliste vorhandenes Kennzeichen abgetastet wird und daß der Nachfolger-Eintrag aufgesucht wird, wenn das Kennzeichen kein Ende der Suchoperation anzeigt.1. Search method for keywords in an electronic data processing system, which contains an address memory for receiving the keywords together with an address list, the entries of which form a tree structure, which also contains an or contains several data memories for holding data whose addresses are in the keywords are included, and which has a search word memory for receiving a search argument, whose elements are assigned to the entries in the address list and a search path through the tree structure, in the end branches of which the keywords are located, characterized in that each entry lying on the search path is one Address list organized as a binary tree structure has a bit position in the search argument is assigned, the content of which is queried when the relevant entry is reached and the selection of one of two output connections controls that from the entry a note corresponding to the selected output connection in the address list address is derived from the successor entry in the tree structure that before the Transition to the successor entry is an existing one in every entry in the address list Identifier is scanned and that the successor entry is sought when the flag does not indicate the end of the search operation. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Auswahl eines Bits im Suchargument durch eine Bitadresse erfolgt, die in einem Feld der Adressenlisteneinträge enthalten ist.2. The method according to claim 1, characterized in that the selection of a bit in the search argument is made by a bit address in a field of the Mailing list entries is included. 3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß zur Auswahl eines Bits im Suchargument zunächst ein Byte des ucharguments in Abhängigkeit vom Inhalt eines Byteausw#nlfeldes im jeweils aufgerufenen Adressenlisteneintrag und durch nachfolgende Auswahl wenigstens eines Bits in diesem Byte in Abhängigkeit vom Inhalt eines ebenfalls im Adressenlisteneintrag enthaltenen Bitauswahlfeldes erfolgt.3. The method according to claim 1 or 2, characterized in that for Selection of a bit in the search argument first of all depending on a byte of the uchargument the content of a byte selection field in the address list entry called up and by subsequently selecting at least one Bits in this Byte depending on the content of one that is also contained in the address list entry Bit selection field. 4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß die Bitauswahl durch Maskierung des ausgewählten Byte mit dem Inhalt des Bitauswahlfeldes erfolgt.4. The method according to claim 3, characterized in that the bit selection takes place by masking the selected byte with the content of the bit selection field. 5. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß die Bitauswahl durch Indexierung einer Bitstelle erfolgt, die durch den Byteauswahischritt gefunden wurde, und daß als Intexierungswert der Inhalt des Bitauswahlfeldes verwendet wird.5. The method according to claim 3, characterized in that the bit selection is done by indexing a bit position found by the byte selection step and that the content of the bit selection field is used as the intextization value. 6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß der linke und der rechte Nachfolger zu jedem Adressenlisteneintrag nebeneinander oder um eine vorbestimmte Speicherstellenzahl voneinander entfernt gespeichert sind, daß in jedem Adressenlisteneintrag jeweils nur die Verbindung zu einem der Nachfolger vorliegt, und daß die Auswahl unter den beiden Nachfolgern dadurch vorgenommen wird, daß die aus der vorliegenden Verbindung gewonnene Adresse mit einer Adressenkonstante modifiziert wird oder nicht.6. The method according to any one of claims 1 to 5, characterized in that that the left and the right successor to each address list entry side by side or are stored away from each other by a predetermined number of memory locations, that in each address list entry only the connection to one of the successors is present, and that the selection between the two successors is made by that the address obtained from the present connection with an address constant is modified or not. 7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die Ableitung der Adresse des Nachfolgers durch Verknüpfung des Inhalts eines Verbindungsfeldes im laufenden Adressenlisteneintrag mit der Adresse seines Vorgänger-Adressenlisteneintrags durch eine Rechenoperation erfolgt, die eine Umkehrung gestattet.7. The method according to any one of claims 1 to 6, characterized in that that the derivation of the address of the successor by linking the contents of a Connection field in the current address list entry with the address of its previous address list entry is done by an arithmetic operation that allows reversal. 8. Verfahren nach Anspruch 6 und 7, dadurch gekennzeichnet, daß als umkehrbare Rechenoperation zur Ableitung der Nachfolgeradresse die logische Operation "Exklusiv-Oder" dient.8. The method according to claim 6 and 7, characterized in that as reversible arithmetic operation to derive the successor address the logical operation "Exclusive-Or" is used. 9. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß zur Ableitung der Adresse des Nachfolger-Adressenlisteneintrages die Adresse des laufenden Adressenlisteneintrages um einen Wert inkrementiert wird, welcher der Länge des laufenden Adressenlisteneintrages entspricht. 9. The method according to any one of claims 1 to 6, characterized in that that to derive the address of the successor address list entry the address of the current address list entry is incremented by a value, which corresponds to the length of the current address list entry. 10. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die Ableitung der Adresse des Nachfolger-Adressenlisteneintrages durch Addition eines ganzzahligen Vielfachen der Länge eines der untereinander gleich langen Adressenlisteneinträge und durch Addition des Inhaltes eines Inkrement-Feldes im laufenden Adressenlisteneintrag zu dessen Adresse erfolgt, wobei das ganzzahlige Vielfache eine positive oder negative Zahl, einschließlich Null, sein kann. 10. The method according to any one of claims 1 to 6, characterized in, that the derivation of the address of the successor address list entry by addition an integer multiple of the length of one of the address list entries of equal length and by adding the contents of an increment field in the current address list entry to its address, where the integer multiple is a positive or negative Number, including zero, can be. 11. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die Ableitung der Adresse des Nachfolger-Adressenlisteneintrages durch Addition eines ganzzahligen Vielfachen der Länge eines der untereinander gleich langen Adressenlisteneinträge zum Inhalt eines Adressenfeldes im laufenden Adressenlisteneintrag erfolgt, das den nächsten Adressenlisteneintrag bezeichnet, und daß die Größe des Vielfachen durch die Abfühlung der dem laufenden Adressenlisteneintrag zugeordneten Bitstelle im Suchargument bestimmt wird. 11. The method according to any one of claims 1 to 5, characterized in that that the derivation of the address of the successor address list entry by addition an integer multiple of the length of one of the address list entries of equal length to the content of an address field in the current address list entry, the denotes the next address list entry, and that the size of the multiple by sensing the bit position assigned to the current address list entry is determined in the search argument. Einrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß ein Speicher (40) zur Aufnahme einer als binäre Baumstruktur organisierten Adressenliste vorgesehen ist, der zur selektiven Entnahme von durch ein Zeilenadreßregister (109) bezeichneten Adressenlistenzeilen sowie zur Entnahme von Einzeldaten eingerichtet ist, daß an den Speicher ein Zeilenregister (111) angeschlossen ist$ welches ein Verbindungsfeld (11), ein Kennzeichenfeld (12)-und ein Suchargument-Intexierungsfeld (13) enthält, von denen der Inhalt des letzteren zur Adressierung eines Bits in einem über ein zusätzliches Adreßregister (102) voradressierten Suchargument dient, daß ein Suchargument-Bitregister (107) zur Aufnahme dieses Bits vorgesehen ist und daß eine Steuerschaltung (117) vorgesehen ist, durch die in Abhängigkeit von einem vorbestimmten Inhalt des Suchargument-Bitregisters (107) der Inhalt des Verbindungsfeldes (11) allein oder ergänzend zu einem Zeilenadressen-Inkrementwert zum Inhalt des Zeilenadreßregisters (109) addiert wird, um die Adresse der nächsten Adressenlistenzeile zu erhalten Device for carrying out the method according to one of the claims 1 to 11, characterized in that a memory (40) for receiving a binary Tree structure organized address list is provided for selective extraction address list lines designated by a line address register (109) as well as for the removal of individual data it is set up that a line register is attached to the memory (111) is connected $ which has a connection field (11), an identifier field (12) and contains a search argument text box (13) of which the content of the latter for addressing a bit in an additional address register (102) pre-addressed search argument is used to ensure that a search argument bit register (107) is provided for receiving this bit and that a control circuit (117) is provided is by depending on a predetermined content of the search argument bit register (107) the content of the connection field (11) alone or in addition to a row address increment value to the contents of the line address register (109) is added to the address of the next Get mailing list line 13. Einrichtung nach Anspruch 12, dadurch gekennzeichnetr daß ein Konditionscode-Register (111-12, 109-CC) vorgesehen ist, welches ein erstes Teilfeld zur Aufnahme einer Suchebeendet-Anzeige und ein zweites Teilfeld zur Aufnahme einer Nachfolger-im-Speicher-Anzeige enthält und das einen Teil aus jeder der vom Speicher (40) entnommenen Zeilen empfängt, und daß die Steuerschaltung (117) zur Abfrage des Konditionscode-Registers dient und bei einem vorbestimmten Inhalt eine Beendigung der Adressenerzeugungszyklen veranlaßt.13. Device according to claim 12, characterized gekennzeichnetr that a condition code register (111-12, 109-CC) is provided, which is a first Subfield for recording a search ended display and a second subfield for recording a successor-in-memory display and that contains a portion of each of the dated Memory (40) received lines removed, and that the control circuit (117) for Query of the condition code register is used and with a predetermined content a Caused the termination of the address generation cycles. 14. Einrichtung nach Anspruch 12 oder 13, dadurch gekennzeichnet, daß ein Resultatregister (41b) vorgesehen ist, das durch den Inhalt eines Resultat-Adreßregisters glO3) adressierbar ist und in das die Steuerschaltung (117) nach Beendigung der Adressenerzeugungs zyklen den nächsten Adressenlisteneintrag überträgt14. Device according to claim 12 or 13, characterized in that that a result register (41b) is provided by the content of a result address register glO3) is addressable and in which the control circuit (117) after completion of the Address generation cycles transmits the next address list entry
DE19722217500 1971-04-23 1972-04-12 Method and device for searching for key words in an electronic data processing system Ceased DE2217500A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13668671A 1971-04-23 1971-04-23

Publications (1)

Publication Number Publication Date
DE2217500A1 true DE2217500A1 (en) 1972-10-26

Family

ID=22473919

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19722217500 Ceased DE2217500A1 (en) 1971-04-23 1972-04-12 Method and device for searching for key words in an electronic data processing system

Country Status (1)

Country Link
DE (1) DE2217500A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0097820A1 (en) * 1982-06-28 1984-01-11 International Business Machines Corporation Method for adaptively assigning index numbers to picture element array patterns
DE3736455A1 (en) * 1986-10-30 1988-05-05 Apple Computer HIERARCHICAL FILING SYSTEM

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0097820A1 (en) * 1982-06-28 1984-01-11 International Business Machines Corporation Method for adaptively assigning index numbers to picture element array patterns
DE3736455A1 (en) * 1986-10-30 1988-05-05 Apple Computer HIERARCHICAL FILING SYSTEM

Similar Documents

Publication Publication Date Title
DE2554442C2 (en) Device for comparing logical quantities with a group of logical reference quantities
DE1901343C3 (en) Data processing system for the execution of material invoices
DE2521436B2 (en) Information retrieval arrangement
DE1303416B (en)
DE2809623A1 (en) METHOD AND DEVICE FOR ASSOCIATIVE INFORMATION RECOVERY
DE2154106A1 (en) RAM drive
DE2457612A1 (en) MICROPROGRAMMING CONTROL SYSTEM
DE2062165A1 (en) Method and arrangement for sorting or shuffling data records
DE2133638C3 (en) Method for operating an adaptive system made up of adaptive data processing units connected in cascade and suitable for non-linear data processing
DE2854782C2 (en) Data processing system and method for replacing a block of data in high-speed storage
DE1271191B (en) Device for the transmission of information units in the binary form of a circular memory
DE2506671C3 (en) Binary data handling network
DE1499190B2 (en) Electronic data processing system
DE2136270A1 (en) Method and comparator for comparing two binary numbers
DE2617485B2 (en) Circuit arrangement for data processing systems for processing micro instruction sequences
DE1774607C3 (en) Memory arrangement with an information-destructively readable memory
DE1499713A1 (en) Method and circuit arrangement for packing information in a cyclically circulating memory with random access to the memory cells located on the tracks
DE1180171B (en) Number calculator
DE2459476C3 (en)
DE2519195C2 (en) Associative memory
DE1957600C3 (en)
DE2217500A1 (en) Method and device for searching for key words in an electronic data processing system
DE2062164A1 (en) Method for generating a multi-level index for stored data units
DE2459476A1 (en) CIRCUIT ARRANGEMENT FOR NON-CYCLIC DATA PERMUTATIONS
DE1096086B (en) System for summarizing pre-sorted information

Legal Events

Date Code Title Description
OI Miscellaneous see part 1
8131 Rejection