CH649164A5 - Datenverarbeitungseinrichtung zum bestimmen des uebereinstimmungsgrades in der gegenueberstellung einer anfrage mit einer gespeicherten datenbank. - Google Patents
Datenverarbeitungseinrichtung zum bestimmen des uebereinstimmungsgrades in der gegenueberstellung einer anfrage mit einer gespeicherten datenbank. Download PDFInfo
- Publication number
- CH649164A5 CH649164A5 CH5028/79A CH502879A CH649164A5 CH 649164 A5 CH649164 A5 CH 649164A5 CH 5028/79 A CH5028/79 A CH 5028/79A CH 502879 A CH502879 A CH 502879A CH 649164 A5 CH649164 A5 CH 649164A5
- Authority
- CH
- Switzerland
- Prior art keywords
- value
- data
- values
- register
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
- Communication Control (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
Die vorliegende Erfindung hat sich zum Ziel gesetzt, eine Datenverarbeitungseinrichtung, mit mehreren Datenspeichern und je einem zugeordneten Zwischenspeicher für jeden dieser Datenspeicher zur Verfügung zu stellen, mit der ein Kriteriumswert und ein dazugehöriger Positionswert bestimmbar sind für den Übereinstimmungsgrad in der Gegenüberstellung mehrerer Ereignistypen einer Anfrage mit mehreren Ereignistypen einer gespeicherten Datenbank,
unter Verwendung eines zuvor gebildeten Datenfeldes, in welchem jeder Datenwert die Anzahl von Ereignispositionen zwischen dem Auftreten eines Ereignistyps in der Anfrage und dem Auftreten eines entsprechenden Ereignistyps in der gespeicherten Datenbank darstellt und in welchem eine aus einem oder mehreren Datenwerten bestehende Gruppe vorgesehen ist für jeden einer Mehrzahl unterschiedlicher Anfrage-Ereignistypen, wobei jede unterschiedliche Gruppe in einem der anderen Datenspeicher gespeichert ist und die Datenwerte dort jeweils in monotoner Reihenfolge, beginnend an einem ersten Ende, angeordnet sind.
Die erfindungsgemässe Datenverarbeitungseinrichtung, mit der die Aufgabe gelöst wird, ist gekennzeichnet durch a) Mittel zum Bezeichnen eines Datenwertes in jedem einer Mehrzahl der Datenspeicher als erster Datenwert,
b) Mittel zum Erfassen wenigstens eines der bezeichneten ersten Datenwerte, der eine vorgegebene Grösse aufweist, in Bezug auf die anderen bezeichneten ersten Daten werte,
c) Mittel zum Speichern des wenigstens einen erfassten Datenwertes in dem Zwischenspeicher, der demjenigen Datenspeicher zugeordnet ist, in welchem der erfasste Datenwert auftritt,
d) Mittel, um für jeden einzelnen Datenspeicher einen ersten Abstandswert zu bilden, welcher die algebraische Differenz zwischen dem erfassten Datenwert und dem bezeichneten Datenwert im jeweiligen Datenspeicher darstellt,
e) Mittel, um für jeden einzelnen Datenspeicher einen zweiten Abstandswert zu bilden, der die algebraische Differenz zwischen dem erfassten Datenwert und einem Datenwert in dem Zwischenspeicher darstellt, der dem jeweiligen Datenspeicher zugeordnet ist,
f) Mittel, um für jeden einzelnen Datenspeicher einen Abstandswert auszuwählen aus dem ersten und dem zweiten Abstandswert, wobei der ausgewählte Abstandswert eine vorgegebene Grösse bezüglich des anderen Wertes aufweist,
g) Mittel, um für den erfassten Datenwert eine Abstandswertsumme zu bilden, die die Summe der absoluten Werte der mit diesem erfassten Datenwert gebildeten ausgewählten Abstandswerte darstellt,
h) Mittel zum Bezeichnen eines neuen Datenwertes in demjenigen Datenspeicher, der den wenigstens einen erfassten Datenwert enthält, wobei der bezeichnete neue Wert derjenige Datenwert ist, der in einer vorbestimmten Reihenfolge innerhalb der monotonen Reihe von Datenwerten auf den zuvor als nächster Datenwert bezeichneten Wert folgt, und
5
10
15
20
25
30
35
40
45
50
55
60
65
649 164
4
i) Mittel zum Verwenden der erfassten Datenwerte und der entsprechenden Abstandswertsummen zum Ableiten des Kriteriumswertes und des Positionswertes.
Vorzugsweise wird in der monotonen Reihe der nächste Datenwert als neuer erster Datenwert seiner Gruppe bezeichnet, nachdem ein Datenwert aus der Gruppe in dem Zwischenspeicher gespeichert wurde, und sind zum Wiederholen des Arbeitsablaufs der vorgenannten Mittel unter Verwendung dieses neuen ersten Datenwertes Mittel vorgesehen.
Vorzugsweise können die Auswählmittel dazu eingerichtet sein, aus dem ersten und dem zweiten Abstandswert den kleineren auszuwählen.
Vorzugsweise besitzt die Datenverarbeitungseinrichtung einen Speicher für die Abstandswertsumme und eine Einrichtung zum Ersetzen eines in dem Abstandswertsummenspei-cher enthaltenen Wertes durch eine neu gebildete Abstandswertsumme.
Vorzugsweise enthalten die Mittel zum Speichern des wenigstens einen erfassten Datenwertes in dem Zwischenspeicher eine Anordnung zum Speichern anderer bezeichneter Datenwerte in den jeweils zugeordneten Zwischenspeichern, welche anderen Datenwerte denselben Wert aufweisen wie der erfasste Datenwert.
In einer bevorzugten Ausführungsform kann die Datenverarbeitungseinrichtung folgendes enthalten: Einen Speicher für einen Suchbreitenwert, Mittel zum Feststellen einer vorgegebenen Beziehung zwischen jedem ausgewählten Abstandswert und einem in dem Suchbreitenspeicher gespeicherten Wert und Mittel, die nach dem Feststellen dieser vorgegebenen Beziehung bei einem der ausgewählten Abstandswerte einen vorbestimmten Wert für die Bildung der Abstandswertsumme an die Stelle dieses ausgewählten Abstandswertes setzen.
In einer anderen bevorzugten Ausführungsform kann zugehörig zu jedem der Datenwerte ein Wichtungswert gespeichert werden und kann die Datenverarbeitungseinrichtung folgendes enthalten: Einen Speicher für eine Wichtungswertsumme und Mittel zum Kombinieren derjenigen Wichtungswerte, die zu den beim Bilden der Abstandswertsumme verwendeten Datenwerten gehören, um dadurch die Wichtungswertsumme zu erzeugen, und zum Ersetzen eines Wertes in dem Wichtungswertsummen-Speicher durch die gebildete Wichtungswertsumme.
Vorzugsweise enthalten die letztgenannten Mittel dabei Mittel zum Ersetzen des in dem Wichtungswertsummen-Speicher enthaltenen Wertes durch die erzeugte Wichtungswertsumme nach Beendigung der Bildung der Abstandswertsumme.
Und weiter kann die Datenverarbeitungseinrichtung folgendes enthalten: Mittel zum Feststellen, ob der erste und der zweite Abstandswert, die mit dem bezeichneten Datenwert in einem Datenspeicher und dem Datenwert im zugeordneten Zwischenspeicher gebildet werden, gleich sind, Mittel, um aus den zwei Wichtungswerten, die zu den zwei als gleich erkannten Abstandswerten gehören, denjenigen Wichtungswert auszuwählen, der bezüglich des anderen eine vorgegebene Grösse aufweist, und Mittel zum Verwenden des ausgewählten Wichtungswertes beim Kombinieren der Wichtungswerte.
Die Mittel zum Auswählen des Wichtungswertes können dabei vorzugsweise den grösseren der beiden Wichtungswerte auswählen.
Die Mittel zum Verwenden des ausgewählten Wichtungswertes für den erfassten Datenwert können die zugehörige Abstandswertsumme und die zugehörige Wichtungswertsumme zum Bilden des Kriteriumswertes verwenden.
Vorzugsweise enthält die Datenverarbeitungseinrichtung dabei einen Speicher für den Kriteriumswert und Mittel zum
Ersetzen des in dem Kriteriumswert-Speicher enthaltenen, zuvor gebildeten Kriteriumswertes durch einen neu gebildeten Kriteriumswert, wenn dieser neu gebildete Kriteriumswert eine vorgegebene Beziehung zu dem Wert in dem Kriteriumswert-Speicher hat.
In einer Weiterbildung kann die Datenverarbeitungseinrichtung einen Speicher für einen Positionswert und Mitte] zum Speichern des betreffenden Positionswertes in dem Positionswertspeicher für jeden erfassten Datenwert enthalten.
In noch einer Weiterbildung kann die Datenverarbeitungseinrichtung Mittel enthalten zum Ersetzen des Positionswertes in dem Positionswertspeicher durch den neuen Positionswert, der zu einem erfassten Datenwert gehört, mit welchem der Kriteriums wert gebildet wid, der zu dem in dem Kriteriumswert-Speicher enthaltenen Wert die vorgegebene Beziehung aufweist.
Im folgenden werden Ausführungsbeispiele der Erfindung anhand der Zeichnungen näher erläutert. Es zeigen:
Fig. I ein allgemeines Blockdiagramm eines durch einen Mikroprozessor gesteuerten Datenprozessors, der eine Ausführungsform der vorliegenden Erfindung darstellt,
Fig. 2 ein Blockdiagramm des Ablagespeichers und des Ablage-Behandlers, der in dem in Fig. 1 gezeigten Datenprozessor verwendet wird,
Fig. 3 ein Blockdiagramm des Unschärfegenerators, der in dem in Fig. 1 dargestellten Datenprozessor verwendet wird,
Fig. 4A bis 4C Wortformate für den CMEM-, QTLF- und PMEM-Speicher in dem in Fig. 2 gezeigten Ablagebehandler,
Fig. 5A bis 5C Ablaufdiagramme zur Veranschaulichung des Operationsablaufs des Ablagespeichers und des Ablage-behandlers,
Fig. 6A bis 6B Ablaufdiagramme zur Veranschaulichung des Operationsablaufs im Unschärfegenerator und
Fig. 7A und 7B, Fig. 8 und Fig. 9A bis 9H Tabellen, welche die Arbeitsweise anhand von Zahlenbeispielen erläutern.
Fig. 1 stellt ein Blockdiagramm eines durch einen Mikroprozessor 10 gesteuerten Datenprozessors 12 dar, der ein Datenmanagement- und Datenbank-Abfragesystem nach einem Ausführungsbeispiel der vorliegenden Erfindung bildet. Der Datenprozessor 12 enthält einen Ablagespeicher (chute) 14, einen Ablagebehandler 16 und einen Unschärfe-(dimness)Generator 18. Der Datenprozessor ist so ausgelegt, dass er bestimmte spezielle Datenbehandlungsfunktionen ausführt in dem Vorgang zum Bestimmen eines Übereinstimmungsgrades zwischen einer Mehrzahl von Ereignissen eines Anfrage-Ereignisfeldes (im folgenden als Anfrage bezeichnet) und einer Mehrzahl von Ereignissen von Einträgen eines gespeicherten Datenbankfeldes (im folgenden als Eintrag bezeichnet).
Sowohl bei den Ereignissen einer Anfrage als auch bei den Ereignissen eines Eintrags handelt es sich um digital codierte Zeichen, und jedes Ereignis belegt eine einzelne Stelle in den entsprechenden Anfrage- und Eintrag-Feldern. Ein Grad von Übereinstimmung zwischen der Anfrage und dem Eintrag wird gebildet, indem nacheinander die Stellen der Anfrage bezüglich den Stellen des Eintrags gegenübergestellt werden und indem die Anzahl von Stellen zwischen gleichen Ereignissen jedes Feldes bei jeder solchen Gegenüberstellung summiert wird. Die beste Übereinstimmung liegt bei derjenigen Stelle vor, wo die derart gebildete Summe ein Minimum hat.
Die oben erläuterte Ablauffolge ist anhand eines Beispiels in der Tabelle l(a), Fig. 7A, dargestellt. Das Abfragewort TENT wird mit dem Eintragewort STATEMENT verglichen. Die Schiebestelle bezieht sich auf die relative Position der Anfrage und des Eintrags, so dass an der Schiebestelle Null das erste Ereignis S des Eintrags STATEMENT dem ersten Ereignis T der Anfrage TENT gegenübersteht. Unter der
5
10
15
20
25
30
35
40
45
50
55
60
65
5
649 164
Überschrift «Anzahl der Stellen» (siehe Tabelle la) ist die Anzahl von Stellen zwischen dem ersten gleichen Ereignis jedes Ereignisses der Anfrage und des Eintrags aufgeführt. Unter der Überschrift «Summe» ist die Summe von Stellen zwischen gleichen Ereignissen in der Anfrage und dem Eintrag für jede Gegenüberstellung aufgelistet. Unter der Überschrift «Schiebestellung» ist die relative Stelle der Anfrage bezüglich des Eintrags angeführt.
So zum Beispiel gibt es in der Schiebestelle -3 vier Stellen zwischen dem ersten T in TENT und dem ersten T in STATEMENT. In ähnlicher Weise gibt es sechs Stellen zwischen dem ersten E in TENT und dem ersten E in STATEMENT, acht Stellen zwischen den Ns sowie eine Stelle zwischen dem letzten T in TENT und dem ersten T in STATEMENT. Die entsprechende Summe der Stellen beträgt 19. Die niedrigste Summe, nämlich 2, zeigt an, dass die beste Übereinstimmung zwischen der Anfrage und dem Eintrag in der Schiebestelle 5 vorliegt. Tabelle l(b), Fig. 7B, veranschaulicht das Feld der Anzahl von Stellen zwischen gleichen Ereignissen des beschriebenen Beispiels für eine Anfangs-Gegenüberstellung in der Schiebestellung «0». Die mit dem Anfrageereignis T ausgerichteten Werte beziehen sich auf die Anzahl von Schiebepositionen sowie auf die Schiebepositionen, die für die Gegenüberstellung mit jedem T des Eintrags erforderlich ist. In ähnlicher Weise beziehen sich die mit den anderen Ereignissen ausgerichteten Werte auf die entsprechende Anzahl von Stellen, die für die Gegenüberstellung mit gleichen Ereignissen in dem Eintrag erforderlich sind.
Bei einem gegebenen derartigen Satz von Zahlen bestimmt der Datenprozessor 12 nach der vorliegenden Erfindung jede relative Gegenüberstellung der Anfrage und des Eintrags, bei der die Summe der Anzahl von Stellen zwischen allen gleichen Ereignissen ein Minimum hat.
Der Datenprozessor 12 erzeugt eine Zahl, die sogenannte Unschärfe, die ein Mass ist für den Ähnlichkeitsgrad aller gespeicherten Eintragereignisse mit den Anfrageereignissen. Die Ähnlichkeit zwischen der Anfrage und dem Eintrag drückt sich aus in der Aufeinanderfolge des Auftretens (sich Ereignens) derartiger gleicher Ereignisse und vollständige Ähnlichkeit liegt vor, wenn die Anfrage dieselben Ereignisarten aufweist, die in derselben Aufeinanderfolge angeordnet sind.
Ein Beispiel eines an den Datenprozessor 12 von dem Mikroprozessor 10 übertragenen Abtast- oder Probe-Datenfeldes ist in Tabelle 2, Fig. 8, gezeigt. Tabelle 2 zeigt weiterhin bestimmte Speichereinrichtungen, die in dem Datenprozessor 12 beim Bestimmen des Unschärfewertes verwendet werden. Die Speichereinrichtungen umfassen vier Ablagespeicher und für jede Ablage (chute) einen Zwischenspeicher, der auch als «Fach» (pocket) bezeichnet wird. Jeder Ablage sowie dem zugehörigen Fach ist eine Ablage-/Fach-Nummer zugeordnet. Im folgenden sind weitere Speicher oder Register mit den darin zu speichernden Daten angeführt.
Register d Kandidaten-Differenz-Summe b Kandidaten-Genauigkeits-Summe
D Endgültige Differenz-Summe B Endgültige Genauigkeits-Summe
PSN Stelle der Vergleichsdaten, bei der die im D-Register enthaltene Summe abgeleitet wird.
QS Anzahl von Ereignissen in einer Anfragefolge; für
Tab. 1: QS = 5 PW Suchbreite (pipe width); sie ist der maximal zulässige Wert der Differenz zwischen einer Anfrageereignisposition und einer Eintragereignisposition; im vorliegenden Beispiel; PW = QS = 5
Jede Reihe von Datenwerten bildet eine unterschiedliche Gruppe von Werten und steht für eine unterschiedliche Art von Anfrageereignissen und ist in einer unterschiedlichen Ablage gespeichert. Die Datenwerte in jeder Ablage sind eine 5 Reihe von in einer monoton abfallenden Reihenfolge von links nach rechts angeordneten Werten. Jeder Wert stellt die Anzahl von Stellen zwischen gleichen Ereignissen einer Anfrage und einem Eintrag einer gespeicherten Datenbank dar. In den Ablagen und in Zusammenhang mit jedem Daten-io wert ist ein dezimaler Wichtungswert gespeichert, der stets kleiner oder gleich 1 ist. Der Wichtungswert wird Genauigkeitswert oder Auswahlwert genannt und stellt die Genauigkeit eines Abfrageelements dar, die in Abhängigkeit von einer Anfrage in einer niedrigeren Ebene einer Datenstruktur erhal-15 ten wird. Derartige Datenstrukturen und Genauigkeits- oder -auswahlwerte (brightness values) sind im einzelnen in der US-PS 4 068 298 erläutert.
Der erste Datenwert jeder Ablage, der auch der grösste Datenwert in dieser Ablage ist, wird zu Beginn in eine Stelle 20 gebracht, die das obere Ende der Ablage genannt wird. Gibt es für eine spezielle Art von Abfrageereignis in dem Eintrag der gespeicherten Datenbank keine gleichen Werte, wird die Ablage als leer (empty) bezeichnet, wie es in Tabelle 2 bei der Ablage 3 der Fall ist. Die Fächer (pockets) werden durch den 25 Ablagebehandler 16 vor dem Einfügen irgendwelcher Daten in das Fach auf leer eingestellt. Wie weiter unten noch erläutert werden wird, wird ein Wert -64 in die Fachstellen eingegeben, um eine Leerbedingung anzuzeigen.
Bei der in Tabelle 2 angedeuteten Datenanordnung geht 30 der Datenprozessor 12 zum Entleeren der Ablagen und Bestimmen der endgültigen Registerwerte gemäss folgendem Satz von Regeln vor.
1. Finde die Ablage mit dem am meisten positiven Wert am oberen Ende der Ablage und bringe ihn in das zugehörige 35 Fach, indem ein zuvor von der Ablage in das Fach gebrachter Wert ersetzt wird.
a) Befindet sich am oberen Ende einer oder mehrerer andere Ablagen ein identischer Wert, so bringe ihn in sein zugehöriges Fach.
40 2. Berechne den Absolutwert der algebraischen Differenz zwischen dem verarbeiteten Fachwert (der letzte in ein Fach gebrachte Wert) und jedem der Werte, die an den oberen Enden sowie in den Fächern der anderen Ablagen vorliegen. Summiere diese Absolutwerte auf und summiere in jedem 45 Fall die Genauigkeitswerte (Wichtungen), die zu demjenigen Ablage- oder Fachwert gehören, von denen der verarbeitete Fachwert subtrahiert wurde.
a) Liegt sowohl am oberen Ende der Ablage als auch in deren zugehörigem Fach ein Wert vor, so verwende den klei-
5o neren der Absolutwerte der algebraischen Differenz zwischen dem verarbeiteten Fachwert und den soeben genannten anderen zwei Werten.
b) Wenn die Differenz zwischen dem verarbeiteten Fachwert und einem Ablagewert und dessen zugehörigem Fach-
55 wert gleich sind, addiere den grössten Genauigkeitswert aus der Ablage oder dem zugehörigen Fach auf die Genauigkeits-wert-Summe.
c) Wenn eine Ablage und ihr zugehöriges Fach ohne Daten sind, wird der Wert QS, d.h. die Anzahl von Ereignisse sen in eine Anfrage, auf die Unschärfesumme addiert, und der Wert 1 wird auf die Genauigkeitssumme addiert.
d) Wenn die Differenz zwischen einem Fachwert und dem entsprechenden Wert am oberen Ende der Ablage 0 ist, ist der in der Genauigkeitssumme verwendete Genauigkeitswert der-
65jenige, der in dem zugehörigen Fach oder in dem zugehörigen oberen Ende der Ablage der grössere ist.
e) Wenn irgendeine in den Schritten 2a bis 2f errechnete Differenz grösser ist als der Wert der Suchbreite PW, ersetze
649164
6
die gebildete Differenz durch den Wert QS. Fachwert.
3. Wenn die in den Schritten 2a bis 2e berechnete Summe kleiner ist als der in dem D-Register vorhandene Wert, ersetze den in diesem Register vorliegenden Wert mit dem soeben errechneten Wert, ersetze den vorliegenden Eintrag in dem PSN-Register mit dem verarbeiteten Fachwert, und ersetze den Wert im B-Register durch die soeben errechnete Genau-igkeitswert-Summe.
a) Wenn die in den Schritten 2a bis 2e berechnete Summe dem Wert im D-Register gleicht, und wenn der Wert im B-Register kleiner ist als die Genauigkeitswert-Summe, so ersetze den Wert im B-Register durch die soeben errechnete Genauigkeitswert-Summe und ersetze den im PSN-Register vorhandenen Wert durch den verarbeiteten
4. Wiederhole die Schritte 1 bis 3a, bis sämtliche Ablagewerte verarbeitet sind. Zu diesem Zeitpunkt stellt der Wert im D-Register die minimale Summe der Differenzen oder die Unschärfe dar; der Wert im PSN-Register ist die relative Schiebeposition für die berechnete Unschärfe; das B-Register enthält die kummulierte Genauigkeit, die der gefundenen Unschärfe zugeordnet ist.
Der Ablauf des Datenprozessors 12 ist so implementiert, dass er die vorstehenden Regeln ausführt, wie es in den Tabellen 3(a) bis 3(h), Fig. 9A bis 9H, dargestellt ist, mit dem Ergebnis, dass die beste Übereinstimmung zwischen Anfrage und Eintrag in der Position 1 vorliegt, wobei ein Unschärfe-wert von 6 und ein Genauigkeitswert von 3,7 errechnet werden. Die in den Tabellen 3(a) bis 3(h) enthaltenen Sternchen beziehen sich auf die spezielle Verarbeitungsregel, die die erläuterte Datenfeldoperation erforderlich macht. Ein Wert -64 wird zu Beginn durch den Mikroprozessor 10 in die Fächer eingeschrieben, um Leerzustände in den Fächern darzustellen.
Im folgenden soll kurz die Operation des Datenprozessors 12 beim Ausführen des in den Tabellen 3(a) bis 3(h) dargestellten Beispiel erläutert werden. Gemäss Tabelle 3(a), Fig. 9A, stellt der Datenprozessor zu Beginn denjenigen Datenwert am oberen Ende der Gruppen von Datenwerten fest, der der grösste ist, d.h. den grössten Wert bezüglich den anderen Datenwerten am oberen Ende der Ablagen. Hierzu wird der Datenwert 5 am oberen Ende der Ablage-/Fach— Nr. 1 festgestellt.
Der festgestellte Datenwert 5 wird dann aus dem oberen Ende seiner Ablage in das entsprechende Fach übertragen, um dort den Leerwert -64 zu ersetzen.
Dann kombiniert der Datenprozessor die Datenwerte, um einen Unschärfewert zu bilden. Insbesondere wird die Summe der Absolutwerte der algebraischen Differenzen gebildet, welche zwischen dem festgestellten Datenwert und den anderen Datenwerten am oberen Ende der Ablagen und Fächer vorliegen.
Hierzu bestimmt der Datenprozessor die algebraische Differenz zwischen den Datenwerten 4 und 5 in dem Fach der Ablage-/Fach-Nummer 1 und dem oberen Ende der Ablage im Ablage-/Fach-Nr. 0, und der Absolutwert von 1 wird gebildet und in das d-Register gespeichert. Anschliessend wird die Absolutdifferenz zwischen dem Wert 5 in dem Fach und dem oberen Ende der Ablage der Ablage-/Fach-Nr. 1 gebildet, und der sich ergebende Wert 0 wird dem Wert 1 im d-Register kombiniert.
Anschliessend wird die algebraische Differenz zwischen dem Datenwert 5 und dem Datenwert 3 im Fach der Ablage-/Fach-Nr. 1 und dem oberen Ende der Ablage der Ablage-/Fach-Nr. 2 gebildet, und er sich ergebende Absolutwert, nämlich der Wert 2 wird mit der Summe im d-Register kombiniert. Anschliessend wird gefunden, dass das Fach und die Ablage der Ablage-/Fach-Nr. 3 leer sind, und dementsprechend wird ein Wert, der der Länge der Anfrage entspricht, in diesem Beispiel gemäss Tabelle 3a, also 5, auf die Summe im d-Register addiert. Ähnlich wie oben erläutert, wird die algebraische Differenz zwischen den Werten 5 und 1 in den Ablage-/Fach-Nr. 1 und 5 gebildet, und der Absolutwert 4 wird auf die Summe im d-Register addiert, wodurch sich eine Gesamtsumme, d.h. ein Unschärfewert von 12 ergibt.
Darüber hinaus werden die Genauigkeitswerte 0,6,0,3, 0,1,1 und 0,8 im b-Register summiert, was einen . Gesamt-Genauigkeitswert von 3,6 ergibt. Da die DB- und PSN-Register anfänglich leer sind, wird der Unschärfewert 12 in das B-Register übertragen, und der Datenwert 5, der in der Ablage-/ Fach-Nr. 1 verarbeitet wird, wird in das PSN-Register übertragen.
Nun soll die Operation des Datenprozessors anhand von Tabelle 3(b), Fig. 9B, betrachtet werden.
Der Datenwert 4 am oberen Ende der Ablage in der Ablage-/Fach-Nr. 0 wird als grösster Wert am oberen Ende der Ablagen festgestellt und er wird in das entsprechende Fach übertragen. Der Ablauf von Operationen, der oben in Zusammenhang mit Tabelle 3(a) erläutert wurde, wird nun wiederholt. Die algebraische Differenz zwischen dem Datenwert 4 im Fach der Ablage-/Fach-Nr. 1 und jedem der Datenwerte am oberen Ende der Ablage in jeder Ablage—
/FachNr. 1,2 und 4 wird gebildet. Da die Ablage-/Fach~ Nr. 3 leer ist, wird die Länge der Anfrage, nämlich 5, für die Ablage-/Fach-Nr. 3 verwendet, wie es oben bei Tabelle 3(a) beschrieben wurde.
Zusätzlich werden die Genauigkeitswerte, die zu jedem der mit dem Datenwert 4 kombinierten Datenwerte gehören, aufsummiert, so dass der gesamte Betrag im b-Register erscheint. Im Anschluss an die Bildung der Summe der Absolutwerte der algebraischen Differenzen und der Summation der Genauigkeitswerte enthält das d-Register einen Wert 10 und das b-Register einen Wert 4. Der Datenprozessor stellt fest, dass der Unschärfewert im d-Register kleiner ist als der im D-Register und überträgt daher den Unschärfewert 10 und die Summe der Genauigkeitswerte 4, vom d-Register bzw. dem b-Register zum D-Register bzw. zum B-Register. Zusätzlich wird der Datenwert 4, der soeben erfasst wurde und in dem Fach der Ablage-/Fach-Nr. 0 verarbeitet wurde, in das PSN-Register übertragen. Auf diese Weise wird der zuvor im D-Register enthaltene Unschärfewert ersetzt durch den kleineren, im d-Register enthaltenen Unschärfewert. In ähnlicher Weise wird der im PSN-Register enthaltene Wert ersetzt durch denjenigen Datenwert, der erfasst wurde, und zum Bilden des neuen Unschärfewertes herangezogen wurden.
Nun soll anhand von Tabelle 3(c), Fig. 9C, die Operation des Datenprozessors betrachtet werden. Der Datenwert 3 am oberen Ende der Ablage-/Fach-Nr. 1 und der Ablage-/Fach-Nr. 2 wird als grösster Wert am oberen Ende der Ablagen festgestellt und in deren entsprechende Fächer übertragen. Beim Abtasten der Fächer von der Ablage-/Fach-Nr. 4 zum Ablage-/Fach-Nr. 0 hin stellt der Prozessor zuerst den Wert 3 in der Ablage-/Fach-Nr. 2 fest und wählt somit diesen Wert als zu verarbeitenden Wert aus und nicht den Wert 3 unter Nr. 1. Das Erfassen und Auswählen des Wertes 3 unter Nr. 1 würde jedoch zu identischen Ergebnissen führen.
Nun wird die Ablauffolge von Operationen wiederholt, die oben anhand von Tabelle 3(a) bereits erläutert wurde. Die algebraische Differenz zwischen dem Datenwert unter Nr. 2 und des Datenwertes am oberen Ende der Ablage unter Nr. 4 wird gebildet. Da die Ablage-/Fach-Nr. 3 leer ist, wird die Länge der Anfrage, nämlich 5, zu der Summe in d-Register addiert. Da sowohl im Fach als auch am oberen Ende der Ablage unter Nr. 0 Werte vorhanden sind, wird die kleinste Differenz zwischen dem Fachwert 3 unter Nr. 2 und dem Fachwert 4 unter Nr. 0 sowie dem Wert 0 im oberen Ende der
5
10
15
20
25
30
35
40
45
50
55
60
65
7
649 164
Ablage unter Nr. 0 verwendet. Das bedeutet, der Wert 1, der die kleinere Betragsdifferenz zwischen (3-4) und (3-0) hat, wird zu der Summe in dem Unschärfegenerator addiert.
Zusätzlich werden die Genauigkeitswerte, die zu jedem der Datenwerte gehören, mit denen der Datenwerte 3 unter Nr. 2 kombiniert, aufsummiert, so dass die Gesamtsumme im b-Register auftritt. Im Anschluss an die Bildung der Summe der Absolutwerte der algebraischen Differenzen und der Summation der Genauigkeitswerte enthält das d-Register einen Wert 8 und das b-Register einen Wert 4. Der Datenprozessor 12 stellt fest, dass der Unschärfewert in d-Register kleiner ist als der Wert im D-Register und überträgt daher den Unschärfewert 8 und die Summe des Genauigkeitswerts 4, aus dem d-Register bzw. dem b-Register in das D-Register bzw. B-Register. Zusätzlich wird der Datenwert, der soeben im Fach unter der Ablage-/Fach-Nr. 2 verarbeitet wurde, in das PSN-Register übertragen. Auf diese Weise wird der zuvor im D-Register enthaltene Wert durch den kleineren Unschärfewert aus dem d-Register ersetzt. In ähnlicher Weise wird der im PSN-Register enthaltene Wert ersetzt durch den Datenwert, der erfasst wurde, und bei der Bildung des neuen Unschärfewertes herangezogen wurde.
Nun soll anhand der Tabelle 3(d), Fig. 9D, die Operationsfolge des Datenprozessors betrachtet werden.
Der Datenwert 1 am oberen Ende der Ablage unter Ablage-/Fach-Nr. 4 wird als grösster Wert am Ende der Ablagen festgestellt und in das entsprechende Fach übertragen. Zusätzlich wird der Ablagewert 1, der nun für die beiden Ablage-/Fach-Nr. 1 und 2 als oberes Ende der Ablage zu betrachten ist, in die entsprechenden Fächer der Nummern 1 und 2 übertragen, und zwar zusammen mit ihren zugehörigen Genauigkeitswerten. Die Ablauffolge, die oben in Zusammenhang mit Tabelle 3(a) erläutert wurde, wird nun wiederholt. Die algebraische Differenz zwischen dem Datenwert 1 im Fach unter Nr. 4 und dem Datenwert am oberen Ablageende unter Nr. 0 sowie dem Fachwert unter den Nr. 1,2 und 4 wird jeweils gebildet. Da die Ablage-/Fach-Nr. 3 leer ist, wird die Länge der Anfrage, nämlich 5, für die Ablage-/Fach-Nr. 3 verwendet, wie es bei Tabelle 3(a) erläutert wurde. Da sowohl im Fach als auch in der Ablage für die Nr. 0 ein Wert vorliegt, wird die kleinste Differenz zwischen dem Wert 1 unter Nr. 4 und den Werten in dem Fach und der Ablage unter Nr. 0 in das d-Register addiert. Demzufolge wird der Wert 1, der den kleineren Differenzwert aus (1-0) und (1-4) darstellt, auf die Summe im d-Register addiert. Im Anschluss an die Bildung der Absolutwerte der algebraischen Differenzen und der Summation der Genauigkeitswerte enthält das d-Register einen Wert 6, und das b-Register enthält einen Wert 3,7. Der Datenprozessor 12 stellt fest, dass der Unschärfewert im d-Register kleiner ist als der im D-Register und überträgt daher den Unschärfewert 10 und die Summe der Genauigkeitswerte 3,7 aus dem d-Register bzw. aus dem b-Register.
Zusätzlich wird der soeben erfasste und in dem Fach unter Nr. 4 verarbeitete Datenwert 1 in das PSN-Register übertragen. Auf diese Weise wird der zuvor in D-Register enthaltene Unschärfewert durch den kleineren Unschärfewert aus dem d-Register ersetzt. In ähnlicher Weise wird der im PSN-Register enthaltene Wert durch den Datenwert ersetzt, der zur Bildung des neuen Unschärfewertes erfasst und verwendet würde.
Nun soll anhand von Tabelle 3(e), Fig. 9E, die Arbeitsweise des Prozessors erläutert werden.
Der Datenwert 0 am oberen Ablageende unter Nr. 0 wird als grösster Wert der oberen Ablageenden festgestellt und in das entsprechende Fach übertragen. Die Ablauffolge der Operationen, die anhand von Fig. 3(e) erläutert wurde, wird nun wiederholt. Es wird die algebraische Differenz zwischen dem Datenwert 0 im Fach unter Nr. 0 und jedem der Datenwerte im Fach jeder der Nummern 0, 1, 2 und 4 gebildet. Da die Ablage-/Fach-Nr. 3 leer ist, wird die Länge der Anfrage, nämlich 5, für die Nummer 3 verwendet, wie es oben bereits für Tabelle 3(a) gesagt wurde. Ferner werden die Genauigkeitswerte, die zu jedem der mit dem Datenwert 0 unter Nr. 0 verglichenen Datenwerte gehören, summiert, so dass der Gesamtbetrag im d-Register erscheint. Im Anschluss an die Bildung der Summe der Absolutwerte der algebraischen Differenzen und der Summation der Genauigkeitswerte enthält das d-Register einen Wert 8, und das b-Register enthält einen Wert 3,7. Der Datenprozessor stellt fest, dass der Unschärfewert im b-Register grösser ist als derjenige im D-Register und überträgt aus diesem Grund den Datenwert 8 und die Summe der Genauigkeitswerte 3,7 nicht aus dem d-Register und b-Register zu dem D-Register bzw. dem B-Register. Demzufolge wird der soeben erfasste und im Fach unter Nr. 0 verarbeitete Datenwert 0 nicht in das PSN-Register übertragen. Auf diese Weise wird der zuvor im D enthaltene Unschärfewert nicht durch den grösseren Unschärfewert im d-Register ersetzt. In ähnlicher Weise wird der im PSN-Register enthaltene Wert nicht durch den für die Bildung des neuen Unschärfewertes erfassten und verwendeten Datenwert ersetzt.
Nun wird die Operationsfolge des Datenprozessors unter Bezugnahme auf Tabelle 3(f), Fig. 9F, erläutert.
Der Datenwert — 1 am oberen Ende der Ablage unter der Ablage-/Fach-Nr. 2 wird als grösster Wert am oberen Ende der Ablagen festgestellt und in das entsprechende Fach übertragen. Die Operationsfolge, die anhand von Tabelle 3(a) erläutert wurde, wird wiederholt. Die algebraische Differenz zwischen dem Datenwert — 1 im Fach unter Nr. 2 und dem Datenwert am oberen Ablageende unter Nr. 4 wird gebildet. Wie zuvor wird, da die Ablage-/Fach-Nr. 3 leer ist, die Länge der Anfrage, nämlich 5, für die Ablage-/Fach-Nr. 3 verwendet und auf das d-Register addiert. Da in dem oberen Ende der Ablagen unter Nr. 0 und 1 keine Datenwerte vorliegen, werden die Differenzen zwischen dem Wert des Fachs unter Nr. 2 und den Werten in den Fächern unter den Nr. 0 und 1 gebildet. Im Anschluss an die Bildung der Summe der Absolutwerte der algebraischen Differenzen und der Summation der Genauigkeitswerte enthält das d-Register einen Wert 10 und das b-Register enthält einen Wert 3,6. Der Datenprozessor stellt fest, dass der Unschärfewert im d-Register grösser ist als derjenige im D-Register und überträgt aus diesem Grund nicht den Unschärfewert 10 und den Genauigkeitswert 3,6 aus dem d-Register bzw. dem b-Register in das D-Register bzw. das B-Register. Weiterhin wird der Datenwert — 1, der zuvor festgestellt und im Fach unter Nr. 2 verarbeitet wurde, nicht in das PSN-Register gebracht.
Nun soll anhand der Tabelle 3(g), Fig. 9G, die Arbeitsweise des Datenprozessors erläutert werden. Der Datenwert — 3 am oberen Ablageende unter Nr. 4 wird als grösster Wert an den oberen Ablageenden festgestellt und in das entsprechende Fach übertragen. Entsprechend den Verarbeitungsschritten des Datenprozessors nach Massgabe der Tabellen 3(a) bis 3(g) bildet der Datenprozessor die Summe der Absolutwerte der algebraischen Differenzen und die Summation der Genauigkeitswerte und das d-Register enthält einen Wert 14, während das b-Register einen Wert 3,6 enthält. Der Datenprozessor stellt fest, dass der Unschärfewert im d-Register grösser ist als derjenige im D-Register und überträgt aus diesem Grund den Unschärfewert 14 und die Summe der Genauigkeits werte 3,6 nicht aus dem d-Register, bzw. dem b-Register in das D-Register, bzw. das B-Register. Darüber hinaus wird der Datenwert — 3, der zuvor festgestellt und im Fach unter Nr. 4 verarbeitet wurde, nicht in das PSN-Register übertragen.
Nun soll anhand der Tabelle 3(h), Fig. 9H, die Arbeits5
10
15
20
25
30
35
40
45
50
55
60
65
649164
8
weise des Datenprozessors beim Ausführen des Beispiels erläutert werden, wobei nunmehr keine weiteren Ablagewerte zur Verarbeitung vorliegen.
Der Datenwert — 4 am oberen Ablageende unter Nr. 4 wird als grösster Wert am oberen Ende der Ablagen festgestellt und in das entsprechende Fach übertragen. Entsprechend den Verarbeitungsschritten, die in Zusammenhang mit den Tabellen 3(a) bis 3(g) beschrieben wurden, bildet der Datenprozessor eine Summe von Absolutwerten der algebraischen Differenzen und die Summation der Genauigkeitswerte. Das d-Register enthält einen Wert 17, das b-Register enthält einen Wert 3,4. Der Datenprozessor stellt fest, dass der Unschärfewert im d-Register kleiner ist als derjenige im D-Register und überträgt daher nicht den Unschärfewert 17 und den Genauigkeitswert 3,4 aus dem d- und b-Register in das D-Register bzw. B-Register. Darüber hinaus wird der Datenwert - 4, der soeben festgestellt und in dem Fach unter Nr. 4 verarbeitet wurde, nicht in das PSN-Register übertragen.
Die durch die Operation des Datenprozessors beim Ausführen der in den Tabellen 3(a) bis 3(h) dargestellten Beispiele erzielten Resultate zeigen, dass die beste Übereinstimmung zwischen der Anfrage und dem Eintrag bei Position 1 mit einem entsprechenden Unschärfewert von 6 und einem zugehörigen Genauigkeitswert von 3,7 vorliegen.
Im folgenden soll unter Bezugnahme auf die Fig. 2 und 3 der Datenprozessor 12 erläutert werden. Es wird ein Datenprozessor erläutert, der dazu bestimmt ist, eine spezielle Übereinstimmung zwischen mehreren Ereignissen einer Anfrage und mehreren Ereignissen einer gespeicherten Datenbank unter Verwendung eines vorab gebildeten Feldes von Datenwerten festzustellen. Ein Beispiel des vorab gebildeten Datenwertfeldes ist in Tabelle 2 (Fig. 8) gezeigt. Jeder Datenwert repräsentiert die Anzahl von Ereignispositionen zwischen der gegenübergestellten Position eines Ereignisses der Anfrage und dem entsprechenden Ereignis in der gespeicherten Datenbank. Wie oben bereits erläutert wurde, ist eine Gruppe bestehend aus einem oder mehreren Datenwerten für jede von mehreren Arten von Anfrageereignissen vorgesehen. Der Datenprozessor enthält einen Speicher SDW 100 für einen Unschärfewert, einen Speicher PSN 62 für einen Positionswert sowie mehrere Datenspeicher, von denen jeder aus einer Speicherstelle besteht, die als Ablage bezeichnet wird und in einem CMEM-Speicher 20 vorgesehen ist. Jede unterschiedliche Gruppe von Datenwerten ist in einer unterschiedlichen Ablage innerhalb des CMEM-Speichers 20 abgespeichert, wobei die Datenwerte in monotoner Reihenfolge, beginnend mit dem grössten Datenwert am oberen Ende, gespeichert sind. Wie noch im einzelnen erläutert werden wird, ist das obere Ende in jeder Ablage keine feste Stelle, sondern wird durch einen Kellerspeicherzeiger (stack pointer) SPR 32 spezifiziert; dieser Kellerzeiger zeigt auf den nächsten Datenwert in der Ablage, welcher in dieser Ablage zu verarbeiten ist. Der PMEM-Speicher 26 enthält ein separates Fach, d.h. einen Zwischenspeicher für jede Speicherstelle (Ablage) im CMEM-Speicher 20. Jedes Fach speichert einen Datenwert sowie einen zugehörigen Genauigkeitswert, wie noch erläutert werden wird.
Betrachtet man die Arbeitsweise des Datenprozessors 12, so stellt der Ablagebehandler 16 (siehe Fig. 2) den Datenwert am oberen Ende des CMEM-Speichers 20 fest, der eine vorgegebene Relation zu den anderen Datenwerten am oberen Ende der Ablagen in dem CMEM-Speicher 20 aufweist. Insbesondere vergleicht der Ablagebehandler die Datenwerte an den oberen Enden der Ablagen, stellt den grössten Datenwert fest und speichert diesen in das XREF-Register 50. Dies geschieht unter Steuerung durch den Mikroprozessor 21, während dessen Zustände 2 bis 6 für die ersten erfassten
Datenwerte, sowie während der Zustände 10, 17 und 18 für die zweiten und anschliessenden erfassen Datenwerte. Der Ablagebehandler veranlasst, dass der erfasste grösste Datenwert aus der entsprechenden Stelle im CMEM-Speicher 20 in das zugehörige Fach innerhalb des PMEM-Speichers 26 übertragen wird. Dies geschieht durch Steuerung des Mikroprozessors 21, während dieser die Zustände 14,15 und 16 einnimmt.
Der Unschärfegenerator 18 kombiniert den erfassten Datenwert mit den anderen Datenwerten am oberen Ende der Ablagen und den in den Fächern des PMEM-Speichers 26 gespeicherten Datenwerten. Hierzu wird der Absolutwert der algebraischen Differenz zwischen dem erfassten, d.h. festgestellten grössten Datenwert und den individuellen Datenwerten, die am oberen Ende jeder Ablage sowie in den Fächern gespeichert sind, bestimmt, und die Summe dieser Werte wird gebildet, um einen Unschärfewert in der oben erläuerten Weise zu erzeugen. Dies geschieht in dem Unschärfegenerator für jede Ablage wie folgt. Der festgestellte Datenwert in XREF 50 wird nach REF 60 (Fig. 3) übertragen, und der Datenwert im oberen Ablageende sowie der zugehörige Genauigkeitswert werden in die Register TOS2 58 und TOSI 56 übertragen (Fig. 3), und der Datenwert und sein zugehöriger Genauigkeitswert werden aus XPOC 40 in die Register POC2 54 und POC1 52 übertragen. Die algebraische Differenz wird zwischen dem festgestellten Daten wert, der in REF 60 gespeichert ist, und den Datenwerten in POC2 54 gebildet, und es wird die algebraische Differenz gebildet zwischen dem erfassten Datenwert in REF 60 und dem Datenwert in TOS2 58. Die kleinere dieser Differenzen wird in eine «Kandidaten»-Unschärfesumme addiert, die in einen SDC-Akkumulatorregister 90 gebildet wird. Es sei darauf hingewiesen, dass der Genauigkeitswert in TOSI 56 und POC1 52 zu dem Datenwert in TOS2 58 bzw. POC2 54 gehört. Weiterhin wird der Genauigkeitswert, der zu dem Datenwert aus POC2 54 oder TOS2 58, resultiert aus der kleineren Differenz, gehört, in einem SBC-Akkumulatorregister 92 aufsummiert. Dies geschieht durch den Mikroprozessor 51 während der Zustände 4, 5,6,7 und 10.
Das oben Gesagte kennzeichnet die Bedingung, dass die gebildeten algebraischen Differenzen nicht gleich sind. Sind die algebraischen Differenzen gleich, werden die Genauigkeitswerte in den Registern TOSI 56 und POC1 52 verglichen und die grössere Genauigkeit von beiden wird in dem SBC-Akkumulator-Register 92 aufsummiert, während der entsprechende Datenwert in dem SDC-Akkumulator-Register 90 summiert wird. Dies geschieht durch Steuerung des Mikroprozessors 51 während der Zustände 4, 5, 6,7 und 10, wobei der Zustand 7 derjenige ist, bei dem gleiche oder ungleiche Zustände festgestellt werden.
Der Mikroprozessor 51 stellt in den Zuständen 12 und 13 fest, ob der Unschärfewert, der in SDC 90 gebildet und gespeichert wird, kleiner ist als der Wert, der derzeit im SDW-Register 100 enthalten ist. Das SDW-Register 100 enthält den minimalen Unschärfewert, der soweit bestimmt wurde.
Der Mikroprozessor 51 bildet im Zustand 14 die Einrichtung zum Ersetzen des Wertes in SDW 100 mit dem soeben gebildeten Unschärfewert, der in SDC 90 enthalten ist, falls der Wert in SCD 90 kleiner ist als der Wert in SDW 100. Gleichzeitig wird der Wert in SBW 102 ersetzt durch den Wert SC 92. Darüberhinaus wird, wenn festgestellt wird, dass der gebildete Unschärfewert in SDC 90 kleiner ist, der in dem Positionsspeicher-Register 62 (PSN-Register) gespeicherte Wert ersetzt durch den im REF-Register 60 gespeicherten festgestellten Datenwert. Der Wert in PSN 62 stellt die relative Position der Anfrage und des Eintrags dar, die zu dem Wert in SDW 100 gehört.
Für den Fall, dass SDC 90 und SDW 100 gleich sind, stellt
5
10
15
20
25
30
35
40
45
50
55
60
65
9
649 164
der Mikroprozessor 51 fest, ob der Genauigkeitswert in SBC 92 grösser ist als der Genauigkeitswert im Speicherregister SBW 102. SBW 102 enthält den zu dem derzeitig in SDW 100 enthaltenen Unschärfewert gehörigen Genauigkeitswert. Der Wert in SBW 102 wird durch den Wert SBC 92 ersetzt, wenn SBC grösser ist als SBW und der Wert in SDC 90 ersetzt den Wert in SDW 100, während der Wert in REF 60 den Wert in PSN 62 ersetzt. Dies geschieht durch den Mikroprozessor 51 während des Zustandes 14.
Im folgenden soll der Ablagespeicher erläutert werden. Sämtliche Ablagebehandler-Daten und Daten-Zugriffszeiger liegen in vier Speichern vor, nämlich in den Speichern CMEM 20, QTLF 22, SPM 24 und PMEM 26. Diese Speicher werden mit den entsprechenden Daten und Adresszeigern durch den Mikroprozessor 10 vor Beginn der Operation des Ablagebehandlers geladen. Weiterhin wird ein Adressregister LFM AR 28 durch den Mikroprozessor 10 mit einem Initialisierungswert geladen, welcher die Adresse des ersten Datenausdrucks in QTLF darstellt, der durch den Ablagebehandler 14 zu verarbeiten ist.
Nachstehend sind die einzelnen Bauelemente erläutert.
CMEM : Der CMEM-Speicher 20 ist ein 4K x 14 Bit (K= 1024) Schreib-/Lese-Speicher (RAM), vorzugsweise handelt es sich um 14 Bauelemente Nr. 2147 der Firma Intel. Dieser Speicher speichert die Ablagefeld-Elementwerte, die von dem Mikroprozessor 10 übertragen werden. Bei dem CMEM-Speicher 20 handelt es sich vorzugsweise um ein 64 x 64-Wortfeld mit 64-Ablagen, von denen jede 64 Worte umfasst. Das Speicher-Wortformat ist in Fig. 4(a) dargestellt. Es handelt sich um ein 14-Bit-Wort, dessen Bits 7 bis 13 den Wert für jedes Daten wertelement der Ablage enthalten, während die Bits 6 bis 0 den zu dem entsprechenden Ablageelement zugehörigen Genauigkeitswert enthalten. Jedes Speicherwort ist durch eine 12-Bit-Zahl adressierbar. Diese wird gebildet durch Aneinanderkettung des im QTR-Register 30 gespeicherten Wertes, der die Zahl der verarbeiteten Ablage enthält, und des im Kellerzeigerregister SPR 32 gespeicherten Wertes, der auf die Wortstelle in einer gegebenen Ablage, auf die zugegriffen werden soll, «zeigt». Der im QTR-Register 30 gespeicherte Wert stellt die sechs höherwertigen Bits dar, der Wert aus dem Kellerzeigerregister SPR 32 stellt die sechs niedrigwertigen Bits dar. Die Ablagespeicher-Datenwerte und die zugehörigen Genauigkeitswerte werden durch den Mikroprozessor 10 über den Datenbus 31 vor der Operation des Ablagebehandlers geladen.
QTLF: Der QTLF-Speicher 22 ist ein herkömmlicher 1K = 16-Bit-Speicher, vorzugsweise handelt es sich um vier Intel-Elemente Nr. 2114 (RAM) und jedes Speicherwort in QTLF enthält die Ablageadressen, die die oberen und unteren Ablagen definieren, wobei letztere wiederum ein vollständiges Feld in CMEM 20 definieren. Das 13-Bit-Wort-Format von QTLF 22 ist in Fig. 4(b) dargestellt. Bit 12 enthält das Flag CONT, welches durch den Mikroprozessor 10 in allen Einträgen von QTLF 22 auf « 1 » gesetzt wird, mit Ausnahme des letzten, welches auf «0» gesetzt wird, um den End-Ein-trag anzuzeigen. Die Bits 11 bis 6 enthalten MAX, die Adresse der ersten Ablage im CMEM-20-Feld, und die Bits 5 bis 0 enthalten MIN, die Adresse der letzten Ablage in dem Feld. QTLF 22 enthält 64 Speicherworte, dies ist die grösstmögliche Anzahl von Feldern, die in CMEM 20 gespeichert werden kann.
Der Wert von MAX wird in das QTR-Register 30 übertragen, und der Wert von MIN wird in das MIN-Register 34 durch den Ablagebehandler 16 übertragen. Der Wert in QTR 30 wird verwendet und dann dekrementiert, bis der Wert in QTR 30 dem Wert in MIN 34 gleicht. Zu diesem Zeitpunkt sind alle oberen Ablagewerte abgetastet worden. Das MIN-Register 34 ist ein herkömmliches oktales D-Flip-Flop,
vorzugsweise vom Typ 74LS377 der Firma Texas Instruments. Das LFMAR-Register 28, bei dem es sich um einen herkömmlichen 4-Bit-Zähler handelt, besteht vorzugsweise aus zwei Bauelementen 25LS2569 der Firma Texas Instruments und dient zum Adressieren von QTLF 22. Das LFMAR-Register 28 wird dann um 1 vermindert, um den Ablagebehandler 16 durch die Speicherworte im QTLF-Register 22 und somit durch die Felder in CMEM 20 fortzuschalten.
SPM: Der Kellerzeigerspeicher SPM 24, ist als herkömmlicher 2Kx 16-Bit-RAM ausgebildet, vorzugsweise aus zwei Intel-Bauelementen Nr. 2114-2, wobei jedes Speicherwort, adressiert durch QTR 30 auf einen oder mehrere nächste Datenwerte in einer CMEM-20-Ablage zeigt, welche durch den Ablagebehandler 16 zu verarbeiten sind.
PMEM: Der Fachspeicher PMEM 26 ist als herkömmlicher 2Kx 16-Bit-RAM ausgebildet, vorzugsweise besteht er aus vier Intel-Bauelementen Nr. 2114, und er enthält das entsprechende Fach für jede der 64 Ablagen in CMEM 20. Das 15 Bit umfassende Wortformat von PMEM 26 ist in Fig. 4(c) dargestellt. Bit 14 des Wortes enthält das Flag «Fach leer» (pocket empty) (PE), welches dem Unschärfegenerator 18 anzeigt, ob in dem Fach der verarbeiteten Ablage ein Wert vorliegt. Ist der Wert in der Bitstelle 14 «1», so ist das Fach leer. Ist andererseits das Bit eine «0» liegt in dem Fach ein Wert vor. Die Bits 13 bis 7 enthalten den Fach-Datenwert, die Bits 6 bis 0 enthalten den Genauigkeitswert, welcher dem Datenwert in den Bits 13 bis 7 entspricht.
Im folgenden soll im einzelnen der Ablagebehandler erläutert werden.
Die grundsätzliche Funktion des Ablagebehandlers besteht darin, die Ablagen in einer sequentiellen Reihenfolge zu leeren und den Datenwert des oberen Ablagefachs und die zugehörige Genauigkeit, den entsprechenden Fachdatenwert und die zugehörige Genauigkeit und einen am meisten positiven Bezugsdatenwert an den Unschärfegenerator für jede Iteration der Ablageverarbeitung zu liefern. Darüber hinaus liefert der Ablagebehandler Operations-Steuerflag-Signale an den Unschärfegenerator.
Nachstehend sind die einzelnen Bauelemente erläuert.
SPR: Das Kellerzeigerregister SPR 32 ist ein herkömmliches 8-Bit-Zählregister, vorzugsweise vom Typ Nr. 25LS2569 der Firma Advanced Microproducts. Der Zähler enthält einen Wert, der auf den nächsten in einer Ablage zu verarbeitenden Datenwert «zeigt». Das SPR-Register 32 wird über den SPM-Bus 25 aus dem SPM-Speicher 26 geladen. Jeder Datenwert in einer CMEM-20-Ablage wiederum wird identifiziert durch dekrementieren von SPR 32. Wenn der in SPR 32 enthaltene Wert für eine spezielle Ablage Null ist,
sind sämtliche Datenwerte in dieser Ablage verarbeitet.
QTR: Das QTR-Register 30 ist ein 8-Bit-Zählregister, vorzugsweise handelt es sich um zwei Artikel 25LS2569 der Firma Advanced Microproducts. Dieses Zählregister enthält einen Wert, der auf die nächste zu verarbeitende Ablage zeigt. Das QTR-Register 30 wird über einen Datenbus 31 aus dem QTLF-Speicher 22 geladen. Jede Ablage in einem CMEM-20-Feld wird durch Dekrementieren des Wertes in QTR 30 identifiziert. Ist QTR gleich MIN, sind sämtliche Ablagen in einem speziellen CMEM-Feld 20 verarbeitet. Das QTR-Register 30 dient weiterhin als Adressregister für SPM 24 und es enthält die höchstwertigen Bits jeder CMEM-20-Adresse.
MIN: Das MIN-Register 34 ist ein oktales D-Flip-Flop, vorzugsweise vom Typ 74LS377 der Firma Texas Instruments, welches die Adresse einer Ablage in CMEM 20 enthält, die eine untere Ablagegrenze eines CMEM-20-Feldes bedeutet. Der Wert in QTR 30 wird, wenn er dekrementiert ist, mit dem Wert in MIN 34 verglichen und Koinzidenz zeigt an, dass alle Ablagen in einem CMEM-20-Feld verareitet sind. MIN 34 wird über den Datenbus 31 aus QTLF 22 geladen.
5
10
15
20
25
30
35
40
45
50
55
60
65
649164
10
COMP2: COMP2 36 ist ein 8-Bit-Komparator, vorzugsweise ein Bauelement Nr. 25LS2521 der Firma Advanced Microproducts. Dieses Bauelement liefert sodann ein Ausgangssignal, wenn die verglichenen Grössen gleich sind. COMP2 36 stellt fest, wenn QTR 30 und MIN 34 gleich sind und zeigt somit an, dass alle Ablagen verarbeitet wurden. COMP2 36 wird aus QTR 30 über den MAR-Bus 37 sowie direkt aus dem MIN-Register 34 geladen.
XPOC, PE: Bei dem Bauelement XPOC, PE 40 handelt es sich um ein oktales D-Flip-Flop, vorzugsweise um zwei Bauelemente 74LS377 der Firma Texas Instruments. Das Bauelement enthält Fachdaten, die der gerade in Bearbeitung befindlichen Ablage entsprechen. Das höchstwertige Bit von XPOC 40 ist das Flag «Fach leer» (PE). XPOC 40 ist das Register, das jeden Fach-Datenwert, die entsprechende Genauigkeit und das PE-Flag, die für eine spezielle durch den Unschärfegenerator 18 verarbeitete Ablage benötigt werden, an den Unschärfegenerator 18 liefert. XPOC 40 wird über den Bus 31 aus CMEM 20 geladen.
XTOS: XTOS 42 ist ein oktales D-Flip-Flop, vorzugsweise handelt es sich um zwei Bauelemente 74LS377 der Firma Texas Instruments. XTOS 42 enthält den Datenwert sowie den zugehörigen Genauigkeitswert, der am oberen Ende der in Bearbeitung befindlichen Ablage vorliegt.
XTOS 42 wird über den Datenbus 31 aus CMEM 20 geladen. XTOS 42 liefert für jede spezielle Ablage Ablagedatenwerte und die zugehörige Genauigkeit an den Unschärfegenerator 18, um dort für Berechnungen zur Verfügung zu stehen.
EMQS: Das EMQS-Register 44 ist ein oktales D-Flip-Flop, vorzugsweise handelt es sich um zwei Bauelemente 74LS374 der Firma Texas Instrumens, die den Datenwertab-schnitt eines CMEM-20-Datenwortes ohne die zugehörige Genauigkeit enthalten. Der Wert in EMQS 44 wird dazu verwendet, den grössten Datenwert an den oberen Enden der Ablagen herauszufinden. EMQS 44 wird über den Datenbus 31 aus CMEM 20 geladen.
NEXTREF: Das NEXTREF-Register 46 ist ein oktales D-Flip-Flop und es besteht vorzugsweise aus zwei Bauelementen des Typs 74LS374 der Firma Texas Instruments. Das Register enthält den grössten Datenwert des oberen Endes der Ablage, der soweit festgestellt wurde. NEXTREF 46 wird mit einem Wert — 64 initialisiert, der garantiert, dass beim ersten Vergleich durch den Komparator (COMP 1) 48 in EMQS 44 stets ein Wert ist, der grösser ist als der Wert, der in NEXTREF 46 vorliegt. Hierdurch wird sichergestellt, dass der erste obere Ablagewert, der verarbeitet wird, in das NEX-TREF-Register 46 gebracht wird. Das Bauelement NEXTREF 46 wird direkt durch einen nicht-invertierenden, oktalen 3-Zustand-Pufferverstärker 48 initialisiert. Bei dem Verstärker 48 handelt es sich vorzugsweise um ein Bauelement des Typs 74LS244 der Firma Texas Instruments. Die Initialisierung erfolgt über den NEXTREF-Bus 49 mit einem Anfangswert von « — 64». Der Wert « — 64» wird aus dem Pufferverstärker 48 abgeleitet, dessen Eingang permanent so verdrahtet ist, dass er ein Ausgangssignal von - 64 erzeugt. NEXTREF 46 wird direkt durch das EMQS-Register 44 nur dann geladen, wenn der Wert in EMQS 44 denjenigen Wert übersteigt, der in NEXTREF 46 vorliegt.
COMPI : COMPI ist ein 8-Bit-Komparator, vorzugsweise handelt es sich um zwei Bauelemente des Typs 74LS85 der Firma Texas Instruments. Der Komparator vergleicht den Wert in EMQS 44 und NEXTREF 46 und veranlasst, dass der Wert in EMQS 44 nach NEXTREF 46 geladen wird, wenn der Wert in EMQS 44 den Wert von NEXTREF 46 übersteigt.
XREF: Das XREF-Register 50 ist ein oktales D-Flip-Flop, vorzugsweise ein Bauelement des Typs 74LS374 der Firma Texas Instruments. Das Register enthält den an den oberen Enden der Ablagen vorhandenen, am meisten positiven Wert. XREF 50 wird aus NEXTREF 46 geladen, wenn die Abtastung aller Ablagen vollständig ist. XREF 50 liefert an den Unschärfegenerator den am meisten positiven Wert, der bei den Berechnungen in dem Unschärfegenerator ver-5 wendet wird.
Im folgenden soll der Ablagebehandler näher erläutert werden.
Zuerst sollen die Flags beschrieben werden. Sämtliche Flags werden am Ausgang eines dualen D-Flip-Flops erzeugt, io bei dem es sich vorzugsweise um ein Bauelement des Typs 74LS374A der Firma Texas Instruments handelt.
SE: Das SE-Flag, das Ausgangssignal des Flip-Flops (f/f) 110, das durch den Mikroprozessor 21 auf «1» gesetzt wird, wenn der Wert in SPR = 0 ist, dient zum Anzeigen, dass sämt-15 liehe Daten werte in einer Ablage verarbeitet wurden.
EQ: Das EQ-Flag, der Ausgang des Flip-Flops 112, wird durch den Mikroprozessor 21 auf « 1 » gesetzt, wenn ein Fachwert und der entsprechende Wert des oberen Endes der Ablage gleich sind.
20 QTRMIN: Dies ist der Ausgang des Flip-Flops 114; er wird durch den Mikroprozessor 21 auf «1» gesetzt, wenn der Wert in QTR 30 gleich ist dem Wert in MIN 34, um somit anzuzeigen, dass der Ablagebehandler eine Abtastung der Ablagen in einem CMEM 20-Feld abgeschlossen hat. 25 CHRDY: Dies ist der Ausgang des Flip-Flops 116; er wird durch den Mikroprozessor 21 auf « 1 » gesetzt, um anzuzeigen, dass die Daten in XPOC 40, XTOS 42 und XREF 50 für den Transfer zum und für die Bearbeitung durch den Unschärfegenerator 16 bereitstehen.
3o CHDONE: Dies ist der Ausgang des Flip-Flops 118; er wird durch den Mikroprozessor 21 auf «1» gesetzt, um dem Unschärfegenerator 18 anzuzeigen, dass der Ablagebehandler 16 die Verarbeitung eines CMEM-20-Feldes abgeschlossen hat.
35 CONT: Dies ist der Ausgang des Flip-Flops 120, der ebenfalls das Bit 12 des QTLF-Datenwortes ist. Der Ausgang wird durch den Mikroprozessor 10 auf «I» gesetzt, wenn in CMEM 20 mehrere Datenfelder zu verarbeiten sind, und umgekehrt verbleiben keine weiteren Felder für die Verarbei-40 tung, wenn CONT durch den Mikroprozessor 10 auf «0» gelöscht wird.
CEMPTY: Dies ist der Ausgang des Flip-Flops 122, der durch den Mikroprozessor 21 auf «1» gesetzt wird, wenn alle Einträge in CMEM 20 verarbeitet sind. CEMPTY versetzt 45 den Ablagebehandler 16 in einen Zustand «unbesetzt» bzw. in einen Ruhezustand, bis CMEM 20 mit einem neuen Satz von Datenfeldern durch den Mikroprozessor 10 geladen ist. Dann löscht der Mikroprozessor 10 CEMPTY auf «0», um anzuzeigen, dass der Ablagebehandler 16 die Operation be-50 ginnen soll.
Im folgenden soll der Unschärfegenerator näher besprochen werden.
Der Unschärfegenerator 18 empfängt Daten vom Ablagebehandler 16 für jedes zu verarbeitende Datenfeld. Derartige 55 Daten bestehen aus dem Datenwert des oberen Endes einer Ablage und dem zugehörigen Genauigkeitswert, dem Fach-Datenwert und dem diesem zugehörigen Genauigkeitswert sowie dem am meisten positiven Bezugsdatenwert für jede verarbeitete Ablage. Der Unschärfegenerator bildet die abso-60 luten Differenzwerte zwischen dem Bezugsdatenwert einerseits und dem Datenwert des oberen Endes einer Ablage sowie dem Fach-Datenwert für jede Ablage andererseits. Dann findet der Generator die minimale Summe dieser absoluten Differenzwerte für sämtliche Ablagen heraus. Zusätz-65 lieh summiert der Unschärfegenerator die Genauigkeitswerte, die denjenigen Datenwerten entsprechen, die zum Bilden der absoluten Differenzwerte verwendet werden.
Der Ablagebehandler enthält folgende Bauelemente:
11
649 164
POC1 : Das POC1-Register 52 ist ein 8 Bits umfassendes oktales D-Flip-Flop-Register, vorzugsweise handelt es sich um ein Bauelement des Typs 74LS374 der Firma Texas Instruments. Das Register 52 enthält den zu dem Datenwert in POC2 54 zugehörigen Genauigkeitswert. POC1 52 wird aus 5 dem Register XPOC 40 geladen.
POC2: Das POC2-Register 54 ist ein 8 Bits umfassendes oktales D-Flip-Flop-Register, vorzugsweise handelt es sich um ein Bauelement des Typs 74LS374 der Firma Texas Instruments. Das Register enthält den Fach-Datenwert der 10 verarbeiteten Ablage. POC2 54 wird direkt us XPOC 40 geladen.
TOSI : Das TOSI-Register 56 ist ein 8 Bits aufweisendes oktales D-Flip-Flop-Register, vorzugsweise vom Typ 74LS374 der Firma Texas Instruments. Das Register enthält den zu dem Datenwert im TOS2-Register 58 gehörigen Genauigkeits- 15 wert. Das TOSI-Register 56 wird direkt aus dem XTOS-Regi-ster 42 geladen.
TOS2: Das TOS2-Register 58 ist ein 8 Bits aufweisendes oktales D-Flip-Flop-Register, vorzugsweise vom Typ 74LS374 der Firma Texas Instruments. Das Register 58 enthält den zu 20 Datenwert des oberen Endes einer in Bearbeitung befindlichen Ablage. Das TOS2-Register 58 wird direkt aus dem XTOS-Register 42 geladen.
REF: Das REF-Register 60 ist ein oktales D-Flip-Flop-Register, vorzugsweise vom Typ 74LS377 der Firma Texas 25 Instruments. Das Register 60 enthält den am meisten positiven Bezugsdatenwert des oberen Endes einer Ablage für das laufende obere Ende der Ablageabtastung. Das REF-Register 60 wird direkt aus dem XREF-Register 50 geladen.
PSN : Das PSN-Register 62 ist ein oktales D-Flip-Flop- 30 Register, vorzugsweise vom Typ 74LS377 der Firma Texas Instruments. Das Register 62 enthält den am meisten positiven Bezugsdatenwert des oberen Endes einer Ablage, welcher zu der minimalen Unschärfesumme gehört. Das PSN-Register 62 wird direkt aus dem REF-Regiter 60 geladen. 35
PW: Das PW-Register 64 ist ein oktales D-Flip-FIop-Register, vorzugsweise vom Typ 74LS374 der Firma Texas Instruments. Das Register 64 enthält einen Grenzwert, der die maximal zulässige Differenz zwischen dem Bezugsdatenwert im REF-Register 60 und den Werten im POC2-Register 54 40 und dem TOS2-Register 58 auf einen vorbestimmten Wert beschränkt. Das PW-Register 64 wird direkt aus dem Mikroprozessor 10 geladen.
QS: Das QS-Register 66 ist ein oktales D-Flip-Flop-Regi-ster, vorzugsweise vom Typ 74LS377 der Firma Texas Instru- 45 ments. Das Register 66 enthält einen Wert, der die Anzahl von Datenwerten in eine Anfrage darstellt. Das Register wird direkt durch den Mikroprozessor 10 geladen und bei der Unschärfeberechnung immer dann verwendet, wenn die Differenz zwischen dem Wert im REF-Register 60 und dem 50 POC2-Register 54 sowie dem TOS2-Register 58 den Wert im PW-Register 64 überschreitet.
MULTIPLEXER (MUX) 68: Der Multiplexer (MUX) 68 ist ein 14-zu-7-Multiplexer, vorzugsweise handelt es sich um zwei Bauelemente vom Typ 74LS157 der Firma Texas Instru- 55 ments. Der Multiplexer 68 überträgt in Abhängigkeit von Bedingungen den Ausgang entweder des POC1 -Registers 52 oder des TOSI-Registers 56 zum Eingang eines Zwischenspeicherregisters 70. Der von Bedingungen abhängige Transfer wird durch den Mikroprozessor 51 bestimmt. 60
El : Das El-Register 70 ist ein oktales D-Flip-Flop-Regi-ster, vorzugsweise handelt es sich um ein Bauelement des Typs 74LS374 der Firma Texas Instruments. Das Register 70 stellt einen Zwischenspeicher dar für den Inhalt des POC1 -Registers 52 oder des TOS 1 -Registers 56. 65
MULTIPLEXER (MUX) 72: Der Multiplexer 72 ist ein 28-zu-7-Multiplexer, vorzugsweise handelt es sich um vier Bauelemente des Typs 74LS253 der Firma Texas Instruments.
Der Multiplexer überträgt in Abhängigkeit von Bedingungen den Inhalt des QS-Registers 66, den Inhalt eines Zwischenspeicherregisters (DI) 74, den Ausgang einer arithmetischlogischen Einheit (ALU1) 76 und den Ausgang einer arithmetisch-logischen Einheit (ALU2) 78 in ein Zwischenspeicherregister (DR) 80. Der unter Bedingungen stattfindende Transfer wird durch den Mikroprozessor 51 bestimmt.
DR: Das DR-Register 80 ist ein oktales D-Flip-Flop-Register, vorzugsweise vom Typ 74LS374 der Firma Texas Instruments. Das Register 80 dient als Zwischenspeicherregister, welches die minimale Differenzberechnung zwischen dem Wert des REF-Registers 60 und den Werten des POC2-Regi-sters 54 und des TOS2-Registrs 58 aufnimmt. Das DR-Register 80 wird direkt entweder vom Ausgang des Multiplexers (MUX) 72 oder vom Ausgang eines Zwischenspeicher-Registers D2 82 geladen.
MULTIPLEXER (MUX) 84: Der Multiplexer 84 ist ein 19-zu-12 Multiplexer, vorzugsweise handelt es sich um ein Bauelement des Typs 74LS157 der Firma Texas Instruments. Der Multiplexer 84 überträgt in Abhängigkeit von Bedingungen den Ausgang des REF-Register 60 oder den Ausgang eines DifferenzsummenKandidaten-Registers 90 (SBC) z uder ALU 1.76. Der Transfer wird durch den Mikroprozessor 51 festgelegt.
MULTIPLEXER (MUX) 86: Der Multiplexer (MUX) 86 ist ein 19-zu-12-MuItiplexer, vorzugsweise Firma Texas Instruments. Der Multiplexer 86 überträgt in Abhängigkeit von Bedingungen den Ausgang des REF-Registers 60 oder den Ausgang eines Genauigkeitssummen-Kandidaten (SBC) Registers 92 zu der ALU2 78. Der Transfer wird durch den Mikroprozessor 51 festgelegt.
MULTIPLEXER (MUX) 88: Der Multiplexer 88 ist ein 19-zu-12-Multiplexer, vorzugsweise vom Typ 74LS157 der Firma Texas Instruments. Dieser Multiplexer überträgt bedingt den Ausgang des SBC-Registers 92, den Ausgang des Dl-Registers 74 oder den Ausgang des DR-Registers 80 zu einem Eingang eines Komparators COMP2 94. Der Transfer wird durch den Mikroprozessor 51 bestimmt.
COMPI : Der Komparator (COMPI) 96 ist ein 12 Bits aufweisender Komparator, vorzugsweise handelt es sich um drei Bauelemente des Typs 74LS85 der Firma Texas Instruments. Der Komparator vergleicht den Ausgang des POC 1-Registers 52 mit dem Ausgang des TOSI-Registers 56 sowie den Ausgang des SDC-Registers 90 mit dem Ausgang eines Differenz-Summen-Gewinner-(SDW-)Registers 100. Der Ausgang 97 des Vergleichers COMPI 96 geht zum Mikroprozessor 51.
COMP2: Der Komparator (COMP2) 94 ist ein 12 Bits umfassender Vergleicher, vorzugsweise handelt es sich um drei Bauelemente des Typ 74LS85 der Firma Texas Instruments. Der Komparator 94 vergleicht den Ausgang des Dl-Registers 74 mit dem Ausgang des D2-Registers 82, den Ausgang des DR-Registers 80 mit dem Ausgang des PW-Registers 64, sowie den Ausgang des SBC-Registers 92 mit dem Ausgang eines Genauigkeitssummen-Gewinner-(SBW-) Registers 102.
ALU1 : Die arithmetisch-logische Einheit 1 (ALU1) 76 besteht aus zwei herkömmlichen ALU-Funktionsgeneratoren, vorzugsweise handelt es sich um einen Vier-Bit-Addierer des Typs 74LS381 der Firma Texas Instruments, ein Bauelement des Typs 25LS2517 der Firma Advanced Microproducts, und einen Lock-ahead-Übertragsgenerator (vorausschauend arbeitender Übertragsgenerator) des Typs 74LS182 der Firma Texas Instruments. Die ALU1 76 bildet den Absolutwert zwischen dem Ausgang des POC2-Registers 54 und dem Ausgang des REF-Registers 60. Zusätzlich summiert die ALU 1-76 den Ausgang des SDC-Registers 90 auf den Ausgang des DR-Registers 80.
649 164
12
ALU2: Die arithmetisch-logische Einheit 2 (ALU2) 78 enthält einen herkömmlichen ALU-Funktionsgenerator,
einen 4-Bit-Addierer, sowie einen vorausschauend arbeitenden Übertraggenerator identisch wie bei der obenerläuterten ALU1 76. Die ALU2 78 bildet den Absolutwert zwischen dem Ausgang des TOS2-Registers 58 und dem Ausgang des REF-Registers 60. Zusätzlich summiert die ALU2 78 den Ausgang des El-Registers 70 auf den Ausgang des SBC-Registers 92.
Dl : Das Dl-Register 74 ist ein oktales D-Flip-Flop-Regi-ster, vorzugsweise vom Typ 74LS374 der Firma Texas Instruments. Das Register 74 dient als Zwischenspeicher für den Ausgang der ALU1 76, welcher die Differenz darstellt zwischen dem Wert im REF-Register 60 und dem Wert im POC2-Register 54.
D2: Das D2-Register 82 ist ein oktales D-Flip-Flop-Regi-ster, vorzugsweise vom Typ 74LS374 der Firma Texas Instruments. Das Register 82 dient als Zwischenspeicher für das Ausgangssignal der ALU2 78, welches die Differenz darstellt zwischen dem Wert im REF-Register 60 und dem Wert im TOS2-Register 58.
SDC: Das Differenzsummen-Kandidaten-(SDC-)Register 90 ist ein oktales D-Flip-Flop-Register, vorzugsweise vom Typ 74LS374 der Firma Texas Instruments. Das Register 90 enthält die akkumulierte Summe der Absolutwerte der Differenzen, die zwischen dem Ausgang des REF-Registers 60 und den Ausgängen des POC2-Registers 54 und des TOS2-Regi-sters 58 für eine spezielle Abtastung des oberen Endes der Ablagen gefunden wurden. SDC 90 wird direkt durch die ALU1 76 geladen.
SBC: Das Genauigkeitssummen-Kandidaten-(SBC-)Regi-ster 92 ist ein oktale D-Flip-Flop-Register, vorzugsweise vom Typ 74LS377 der Firma Texas Instruments. Das Register 92 enthält die akkumulierte Summe derjenigen Genauigkeitswerte, die zu der Summe in SDC 90 für eine gegebene Ablageabtastung gehören. Das SDC-Register 92 wird direkt durch die ALU2 78 geladen.
SDW: Das Differenzsummen-Gewinner-(SDW-)Register 100 ist ein oktales D-Flip-Flop-Register, vorzugsweise vom Typ 74LS374 der Firma Texas Instruments. Das Register 100 enthält die minimale Differenzsumme, die durch den Datenprozessor 12 bestimmt wurde, nachdem alle Verarbeitungsschritte abgeschlossen sind. Das SDW-Register 100 wird direkt durch das SDC-Register 90 geladen.
SBW: Das Genauigkeitssummen-Gewinner-(SBW-)Regi-ster 102 ist ein oktales D-Flip-Flop-Register, vorzugsweise vom Typ 74LS374 der Firma Texas Instruments. Das Register 102 enthält die grösste Genauigkeitssumme, die zu dem im SDW-Register 100 gespeicherten Wert gehört. Das SBW-Register 102 wird direkt durch das SBC-Register 92 geladen.
Sämtliche Flags werden am Ausgang von dualen D-Flip-Flops erzeugt, vorzugsweise handelt es sich hierbei um Bauelemente des Typs 74LS374 der Firma Texas Instruments.
LOOP: Das LOOP-Flag ist der Ausgang des Flip-Flops (f/f)122 und wird auf das Komplement von QTRMIN eingestellt, welcher Wert durch den Ablagebehandler 16 geliefert wird. Wird das LOOP-Flag gelöscht, ist eine Abtastung des oberen Endes der Ablage abgeschlossen.
DGDONE: Dies ist der Ausgang des Flip-Flops 124; er wird auf den Wert des CHDONE-Flags durch den Mikroprozessor 21 im Ablagebehandler 16 gesetzt. DGDONE-Flag wird durch den Mikroprozessor 10 gelöscht, um anzuzeigen, dass der Mikroprozessor 10 die Ausgangsdaten vom Unschärfegenerator 18 empfangen hat.
Nun soll im einzelnen der Betriebsablauf des Ablagebehandlers und des Unschärfegenerators erläutert werden.
Bevor auf Einzelheiten eingegangen wird, soll kurz ein allgemeiner Überblick gegeben werden.
Der Unschärfegenerator 18 und der Ablagebehandler 16 arbeiten sowohl seriell als auch parallel, um ihre Verarbeitungsaufgaben (tasks) durchzuführen. Insbesondere holt der Ablagebehandler 16 Sätze von Datenwerten aus dem Ablagespeicher CMEM 20 in einer weiter unten noch zu erläuternden Weise und gibt die Datenwerte an den Unschärfegenerator 18 zwecks Berechnung der Unschärfe- und Genauigkeits (Auswahl-)Werte. Während der Ablagebehandler 16 nachfolgende Sätze von Datenwerten aus dem CMEM 20 holt, verarbeitet der Unschärfegenerator 18 die im gerade zuvor durch den Ablagebehandler 16 zugeführten Datenwerte. Die Operation des Ablagebehandlers 16 wird ausgesetzt, während der Mikroprozessor 10 den Ablagespeicher CMEM 20 mit zu verarbeitenden Daten lädt. Wenn die Ablage-Ladeoperation abgeschlossen ist, signalisiert der Mikroprozessor 10 dem Ablagebehandler 16, mit dem Ablauf zu beginnen. Hat der Ablagebehandler 16 den letzten im Speicher CMEM 20 gespeicherten Datenwert verarbeitet, wird er durch den Mikroprozessor 10 in einem Ruhezustand gehalten, bis ein neues Datenfeld durch den Mikroprozessor 10 in den CMEM 20 übertragen wird.
Der Arbeitsablauf des Unschärfegenerators 18 wird ausgesetzt, bis der Mikroprozessor 10 das Flag DGDONE löscht und somit anzeigt, dass der Mikroprozessor 10 die zuletzt gebildeten Unschärfe- und Genauigkeitswerte vom Unschärfegenerator 18 empfangen hat. Zu diesem Zeitpunkt löscht der Unschärfegenerator B das Flag CHDONE, setzt das Flag PASSI, initialisiert das SDC-Register 90 und das SBC-Register 92 mit Null und geht dann in einen Ruhezustand über, bis der Ablagebehandler 16 anzeigt, dass ein Satz von Datenwerten für den Unschärfegenerator 18 zur Verarbeitung verfügbar ist. Der Unschärfegenerator 18 fährt mit dem Verarbeiten der Datensätze, die durch den Ablagebehandler 16 zugeführt wurden, fort, bis sämtliche Datenwerte im Speicher CMEM 20 durch den Ablagebehandler 16 verarbeitet sind. Zu diesem Zeitpunkt wird das Ausgangssignal des Unschärfegenerators 18 für den Mikroprozessor 10 verfügbar gemacht und in einem Ruhezustand gehalten, bis der Mikroprozessor 10 anzeigt, dass sämtliche durch den Unschärfegenerator 18 gelieferten Daten empfangen sind.
Nun soll die Arbeitsweise des Ablagebehandlers im einzelnen erläutert werden.
Tabelle 4 zeigt eine Programmauflistung logischer Gleichungen, welche den Operationsablauf der Ablagespeicherund Ablagebehandler-Moduln beschreiben. Die Fig. 5A bis 5C zeigen die Flussdiagramme, welche die Ablauffolge für jeden in Tabelle 4 beschriebenen Zustand veranschaulichen. Auf die genannte Tabelle und die genannten Figuren sollte bei der folgenden Diskussion Bezug genommen werden.
Netz-Ein-Verarbeitung : Wird beim Einschalten des Systems zum erstenmal Leistung zugeführt, wird eine Netz-Ein-Voreinstell-Leitung durch den Mikroprozessor 10 auf niedrigen Pegel gebracht, wodurch der Ablagebehandler in den Zustand «0» (Wartezustand) gebracht wird. Der Mikroprozessor 10 hält die Netz-Ein-Voreinstell-Leitung auf niedrigem Pegel, während er den Ablagespeicher CMEM 20 mit den ersten zu verarbeitenden Datenwertefeldern lädt. Ist diese Aufgabe beendet, zieht der Mikroprozessor 10 die Netz-Ein-Voreinstell-Leitung hoch, wodurch der Ablagebehandler 16 die Verarbeitung aufnehmen kann.
Normale Verarbeitung: Der Mikroprozessor 21 implementiert eine Reihe von Steuerungen des Ablage-Behandlers 16, die durch einen vorprogrammierten Nur-Lese-Speicher (ROM) bereitgestellt werden. Hierdurch werden die Betriebs-zustände des Ablagebehandlers 16 erreicht. Der Mikroprozessor 21 verbleibt im Ruhezustand, solange das Flag CEMPTY auf « 1 » eingestellt ist. Der Mikroprozessor 10 löscht das Flag CEMPTY auf «0», wenn der Feld-Transfer vom Mikropro-
5
10
15
20
25
30
35
40
45
50
55
60
65
13
649 164
zessor 10 zum Ablagespeicher CMEM 20 abgeschlossen ist. Wenn das Flag CEMPTY gelöscht ist, greift der Mikroprozessor 21 auf das QTLF 22-Datenwort zu, welches durch den Wert in dem LFMAR 28 (Zustand 1), adressiert wird, indem das Feld CONT in das Flag CONT gespeichert wird, das Feld MAX nach QTR 30 und das Feld MIN nach MIN 34 gespeichert wird. Diese Folge von Operationen spezifiziert das spezielle Datenfeld im Speicher CMEM 20, welches der Ablagebehandler 16 verarbeiten soll.
Die erste, durch den Mikroprozessor 21 zu bearbeitende Aufgabe besteht darin, den am meisten positiven Datenwert in den oberen Enden der Ablagen festzustellen. Hierzu initialisiert der Mikroprozessor 21 NEXTREF 46 mit einem Wert - 64. Hierdurch wird sichergestellt, dass der erste Datenwert im oberen Ende der Ablage grösser ist als der Wert in NEXTREF, und auf diese Weise wird dieser grössere Wert in NEXTREF 46 für anschliessende Vergleichsvorgänge mit den anderen Datenwerten am oberen Ende der Ablage gespeichert. Der Mikroprozessor 21 bewirkt als nächstes die Steuerungen, die in den Zuständen 2 bis 5 ausgeführt werden müssen für jede Ablage des Datenwertfeldes in dem Speicher CMEM 20, die verarbeitet wird. Der Mikroprozessor 21 greift auf das SPM-24-Datenwort zu, welches durch den Wert in QTR 30 adressiert wird und speichert den Datenwert in SPR 32 (Zustand 2). Der Datenwert in dem QTR-ten Datenwort von SPM 24 ist der Adresszeiger auf die QTR-te Ablage des Speichers CMEM 20, die auf den SPR-ten Ablage-Datenwert, erhöht um 1, zeigt, auf welchen zugegriffen werden soll. Der Ablagedatenwert, auf den zugegriffen werden soll, ist definiert als der Datenwert des oberen Endes der Ablage. Als nächstes werden die Werte in QTR30 und MIN 34 im Vergleicher COMP2 48 (Zustand 3) für anschliessendes Testen im Zustand 5 gespeichert. Der Zweck dieses Vergleichs besteht darin, festzustellen, wann der Wert in QTR 30 (in vermindertem Zustand) dem Wert in MIN 34 gleicht, was bedeutet, dass sämtliche Werte am oberen Ende der Ablagen aufgegriffen wurden. Dann dekrementiert der Mikroprozessor 21 den Wert in SPR 32 um 1 (Zustand 3), so dass dieser Wert nun auf den QTR-ten Datenwert am oberen Ende der Ablage zeigt. Der Wert in den Bits 13-7 des Datenwort sim CMEM 20, welches durch die zusammengeketteten Werte aus QTR 30 und SPR 32 adressiert wird, wird im EMQS 44 gespeichert (Zustand 4). Die Werte in QTR 30 (die sechs höchstwertigen Bits der CMEM 20-Adresse) lokalisiert die verarbeitete Ablage und der Wert in FPR 32 (die sechs niedrigwertigen Bits der CMEM 20-Adresse) lokalisiert den speziellen Ablageende-Datenwert. Der Wert in EMQS 44 ist nun der Ablageende-Datenwert, der mit dem Wert in NEXTREF 46 zu vergleichen ist. Das höchstwertige Bit (Bit 14) des PMEM 26-Datenwor-tes, welches durch den Wert in QTR 30 adressiert wird, wird nun auf 1 (Zustand 4) gesetzt. Das Bit 14 dient als «Fach leer»-(PE-)Flag. PE = 1 bedeutet, dass das entsprechende Fach keinen Datenwert enthält; PE = 0 bedeutet, dass das entsprechende Fach einen Datenwert enthält. Der Wert in EMQS 44 und der Wert in NEXTREF 46 werden in den Vergleicher COMPI 48 (Zustand 5) gebracht. Der grössere dieser beiden Werte wird, wie durch den Ausgang von COMPI 48 angezeigt wird, in NEXTREF 46 (Zustand 5) gespeichert. Als nächstes prüft der Mikroprozessor 21 die Bedingung des Flags QTRMIN (Zustand 5). Die Bedingung oder der Zustand von QTRMIN wird bestimmt durch die Ergebnisse des Vergleichs, der im Zustand 3 zwischen dem Wert in QTR 30 und dem Wert in MIN 34 durchgeführt wird. Zeigt COMP2 Gleichheit an, wird QTRMIN auf «1» gesetzt; sonst wird QTRMIN auf «0» eingestellt. Wenn der Mikroprozessor 21 feststellt, dass QTRMIN = 0 ist, d.h. dass der Wert in QTR 30 immer noch grösser ist als der Wert in MIN 34, was bedeutet, dass auf weitere Ablageende-Werte zuzugreifen ist, wird der Wert in QTR 30 um 1 vermindert, so dass er auf die nächste zu verarbeitende Ablage zeigt. Die Steuerung des Mikroprozessors 21 kehrt zum Zustand 2 zurück, um auf den nächsten Ablageende-Wert zuzügreifen. Stellt der Mikroprozessor 21 fest, dass QTRMIN = 1 (alle Ablagen sind verarbeitet worden), wird der Wert in NEXTREF 46 nach XREF 50 gespeichert (Zustand 6). Der Wert in XREF 50 ist der am meisten positive Ablageende-Wert, der angetroffen wird, da dieser Wert mit anderen Ablageenden-Werten im Vergleicher COMPI 48 verglichen wurde. Hierdurch wird die Verarbeitung des Mikroprozessors 21 zum Erfassen des ersten am meisten positiven Bezugswertes beendet. Dann wird ein Wert — 64 in NEXTREF 46 (Zustand 6) gespeichert; dies ist der erste Schritt beim Auffinden anschliessender Ablageende-Werte, die als am meisten positiver Bezugswert dienen. Man beachte, dass jeder verarbeitete Datenwert im CMEM-20-Feld in absteigender Reihenfolge als einer der am meisten positiven Bezugswerte dient.
Der Mikroprozessor 21 greift auf das QTLF-22-Datenwort zu, das durch den Wert in LFMAR 28 adressiert wird, und speichert das Feld MAX im Register QTR 30 (Zustand 6).
Dies dient dazu, aufs Neue die erste Ablage des CMEM-20-Datenfeldes auszuwählen, damit der Mikroprozessor 21 mit der Ablageverarbeitung beginnen kann. Dann greift der Mikroprozessor 21 auf das durch den Wert in QTR 30 adressierte Datenwort in SPM 24 zu und speichert die Daten nach SPR 32 (Zustand 7). Das SPR-Register 32 wird dann durch den Mikroprozessor 21 daraufhin geprüft, ob der nunmehr darin enthaltene Wert 0 ist (Zustand 9). Ist dies der Fall, so bedeutet das, dass sämtliche Datenwerte in der QTR-ten Ablage in CMEM 20 verarbeitet sind und dass die Ablage nun «leer» ist; der Mikroprozessor 21 setzt das Flag SE auf « 1 », um diese Bedingung anzuzeigen. Anderenfalls setzt der Mikroprozessor 21 das Flag SE auf «0» (Zustand 9), und die Mikroprozessor-Steuerung geht in den Zustand 10 über. Der Wert in SPR wird um 1 vermindert (Zustand 9), so dass der Wert auf den oberen Ablage-Wert in der QTR-ten Ablage zeigt. Das CMEM-20-Datenwort, das durch die konkatinier-ten Werte in QTR und SPR adressiert wird, wird ausgelesen (Zustand 10), und a) die Werte in den Bits 13 bis 7 werden in EQMS 44,
b) die Werte in den Bits 13 bis 0 werden in XTOS 42 gespeichert.
Das durch den Wert in QTR 30 adressierte Datenwort im Speicher PMEM 26 wird ausgelesen und die Werte in dem Bit 13-0 werden in XPOC 40 gespeichert (Zustand 11), und der Wert im Bit 14 wird nach PE gespeichert (Zustand 11), was den Rest des Wortes in XPOC 40 darstellt. Dann überprüft der Mikroprozessor 21 das Flag SE (Zustand 11). Ist Se gleich 1, was anzeigt, dass sämtliche Datenwerte in der QTR-ten Ablage verarbeitet sind, so wird das Flag EQ auf «0» gesetzt (Zustand), um anzuzeigen, dass der QTR-te Ablageende-Datenwert nicht gleich sein kann mit dem QTR-ten Fach-Datenwert (da die Ablage «leer» ist und das Fach einen Datenwert aus dem vorhergehenden Iterationsschritt der Ablageverarbeitung enthalten muss). Die Logik für diese Bedingung ist wie folgt:
a) normalerweise enthalten alle Ablagen zu Beginn wenigstens einen Datenwert, so dass der Wert in SPR 32, der Adresszeiger auf den Wert in der Ablage, grösser sein muss als 0.
b) Damit der Wert in SPR gleich 0 ist (und somit SE = 1 und EQ = 0), muss wenigstens ein Datenwert in jener Ablage verarbeitet sein und in das QTR-te Fach gebracht worden sein.
Somit muss ein Fach-Datenwert in dem QTR-ten Fach vorliegen, wenn der Zeiger auf die QTR-te Ablage (der Wert in SPR 32) Null ist. Dann wird das Flag CHRDY auf «1»
5
10
15
20
25
30
35
40
45
50
55
60
65
649 164
14
gesetzt (Zustand 11), um anzuzeigen, dass die Werte in XREF 50, XTOS 42 und XPOC 40 für die Verarbeitung durch den Unschärfegenerator 18 verfügbar sind.
Ist andernfalls SE = 0 (Zustand 11), werden die Werte in EMQS 44 und XREF 50 in den Komparator COMPI gebracht. Stellt der Mikroprozessor 21 fest, dass der Wert in EMQS nicht gleich ist dem Wert in XREF (Zustand 14), dann wird das Flag EQ auf «0» gesetzt und die Steuerung des Mikroprozessors 21 geht in den Zustand 18 über. Stellt der Mikroprozessor 21 fest, dass der Wert in EMQS 44 gleich ist dem Wert in XREF 50, wird das Flag EQ auf «1» gesetzt (Zustand 14). Wenn der Wert in EMQS 44 und somit der Datenwert am QTR-ten Ablageende, gleich ist dem Wert in XREF 50, wird angezeigt, dass der momentan in XREF 50 vorliegende Wert aus diesem Ablageende-Datenwert entnommen ist und somit dieser Datenwert in das entsprechende Fach gebracht erden muss. Als nächstes speichert der Mikroprozessor 21 den Wert im SPR 32 zurück zu dem Datenwort vom SPM 24, das durch den Wert in QTR 30 adressiert wird (Zustand 15). Dies geschieht, damit, wenn dieses spezielle Datenwort aus SPM 24 aufs neue in SPR 32 gespeichert und dekrementiert wird, der resultierende Wert in SPR 32 auf den Datenwert in der QTR-ten Ablage zeigt, der als nächstfolgender zu verarbeiten ist (da der vorherige Datenwert in das entsprechende Fach übertragen wurde).
Das durch die Verkettung der Werte in QTR 30 und SPR 32 adressierte Datenwort in CMEM 20 wird von dem Mikroprozessor 21 ausgelesen und die Werte in den Bits 13-0 des Datenwortes werden auf den Datenbus 31 gespeichert (Zustand 15). Der Businhalt wird dann in dasjenige Datenwort von PMEM 26 gespeichert, das durch den Wert in QTR 30 adressiert ist (Zustand 16). Das Bit 14 (MSB) des QTR-ten Datenwortes in PMEM 26 (Flag PE) wird dann auf «0» gesetzt (Zustand 16), um anzuzeigen, dass das Fach der QTR-ten Ablage einen Datenwert enthält. Der Mikroprozessor 21 prüft den Wert in SPR 34 (Zustand 16). Ist der Wert «0», was eine leere Ablage bedeutet, wird das Flag CHRDY auf «1» gesetzt (Zustand 16), um anzuzeigen, dass die Werte in XREF 50, XTOS 42 und XPOC 40 für die Verarbeitung durch den Unschärfegenerator 18 zur Verfügung stehen. Ist der Wert in SPR 34 nicht «0», so bedeutet dies, dass noch mehr Datenwerte zur Verarbeitung in der QTR-ten Ablage anstehen, so dass der Wert in SPR34 um 1 vermindert wird, um auf den nächsten Datenwert am Ende der Ablage zu zeigen: (Zustand 16). Der Mikroprozessor 21 speichert die Datenwerte in dem Bit 13-7 des CMEM-20-Datenwortes, das durch die Konkatenation der Wert in QTR 30 und SPR 32 adressiert wird, nach EMQS (Zustand 17). Das Flag CHRDY wird durch den Mikroprozessor 21 auf « 1» gesetzt (Zustand 18), um anzuzeigen, dass die Werte in XREF 50, XTOS 42 und XPOC 40 für die Verarbeitung durch den Unschärfegenerator 18 zur Verfügung stehen. Als nächstes werden die Werte in EMQS 44 und NEXTREF 46 in den Vergleicher COMPI 48 gegeben. Stellt der Mikroprozessor 21 fest, dass der Wert in EMQS 44 grösser ist als der Wert in NEXTREF 46 (Zustand 18), speichert er den Wert in EMQS 44 nach NEXTREF 46 (Zustand 18). Der Wert in NEXTREF 46 sowie der Wert - 64 der durch den Pufferverstärker 47 geladen wurde, werden in den Vergleicher COMPI 48 (Zustand 19) zur Vorbereitung des Tests im Zustand 21 gegeben.
Der Mikroprozessor 21 prüft den Zustand des Flags CHRDY (Zustand 20). Ist das Flag CHRDY = 1, was bedeutet, dass der Unschärfegenerator noch nicht die in XREF 50, XTOS 42 und XPOC 40 verfügbaren Daten übertragen hat, verbleibt die Steuerung des Mikroprozessors 21 im Zustand 20. Ist das Flag CHRDY = 0, indem es durch den Betrieb des Unschärfegenerators auf «0» gelöscht wurde, so prüft der Mikroprozessor 21 den Status des Flags QTRMIN (Zustand
21). Ist QTRMIN = 0, was anzeigt, dass noch weitere Ablagen zur Verarbeitung anstehen, so vermindert der Mikroprozessor 21 den Wert in QTR 30 um 1 (Zustand 21), und die Steuerung des Mikroprozessors 21 kehrt zum Zustand 7 zwecks Verarbeitung der nächsten Ablage zurück. Ist QTRMIN = 1, was bedeutet, dass sämtliche oberen Enden der Ablagen verarbeitet sind, prüft der Mikroprozessor 21 den Wert von NEXTREF 46 (Zustand 21). Ist der Wert in NEXTREF — 64, so wurden keine neuen Datenwerte in CMEM 20 gefunden, d.h. alle Datenwerte sind verarbeitet (Zustand 21). Ist der Wert in NEXTREF 46 grösser als — 64, so bedeutet dies, dass wenigstens ein weiterer Datenwert in dem CMEM-20-Datenfeld noch zu verarbeiten ist; in diesem Fall kehrt die Mikroprozessor-Steuerung zurück zum Zustand 6 (Zustand 21), um mit der Verarbeitung eines neuen XREF-50-Wertes fortzufahren. Andernfalls setzt der Mikroprozessor 21 das Flag CHDONE auf «1» (Zustand 21), um dem Unschärfegenerator 18 anzuzeigen, dass die Verarbeitung für ein gegebenes CMEM-20-Feld abgeschlossen ist. Der Mikroprozessor 21 prüft das Flag CONT (Zustand 22). Ist CONT = 0, was anzeigt, dass das soeben verarbeitete CMEM-20-Feld das letzte Feld in CMEM 20 war, so setzt der Mikroprozessor 21 das Flag CEMPTY auf «1», und die Mikroprozessorsteuerung geht in den Zustand 0 (Zustand 22) über, um auf ein neues Auffüllen des Speichers CMEM 20 durch den Mikroprozessor zu warten. Andernfalls wird der Wert in LFMAR 28 um 1 vermindert (Zustand 22), so dass dieser auf das nächste zu verarbeitende Datenfeld in CMEM 20 zeigt, und die Steuerung des Mikroprozessors 21 geht in den Zustand 1 über, um das nächst CMEM-20-Datenfeld zu verarbeiten.
Im folgenden soll im einzelnen die Arbeitsweise des Unschärfegenerators erläutert werden.
Tabelle 5 zeigt die Programmauflistung von logischen Gleichungen, die die Arbeitsweise des Unschärfegenerator-Moduls beschreiben. Fig. 6A und 6B sind Ablaufdiagramme, die die Operationsfolge für jeden in Tabelle 5 beschriebenen Zustand veranschaulichen. Auf diese Unterlagen sollte bei der folgenden Diskussion Bezug genommen werden.
Netz-Ein-Verarbeitung : Wird beim Einschalten des Systems zum erstenmal Leistung zugeführt, so wird durch den Mikroprozessor 10 eine Netz-Ein-Voreinstell-Leitung auf niedrigen Pegel gebracht, wodurch der Unschärfegenerator 18 zwangsweise in den Zustand 0 (Ruhezustand) gebracht wird. Der Mikroprozessor 10 hält die Netz-Ein-Voreinstell-Leitung auf niedrigen Pegel, während er den Ablagespeicher CMEM 20 mit den ersten zu verarbeitenden Datenwertfeldern lädt. Ist diese Aufgabe beendet, zieht der Mikroprozessor 10 die Netz-Ein-Voreinstell-Leitung auf hohen Pegel, wodurch der Unschärfegenerator 18 seinen Betrieb aufnehmen kann.
Normale Operation: Der Mikroprozessor 51 implementiert eine Reihe von Steuervorgängen für den Unschärfegenerator 18, die durch einen vorprogrammierten Nur-Lese-Speicher (ROM) geliefert werden und die Operationszustände des Unschärfegenerators 18 festlegen. Der Mikroprozessor 51 verbleibt in einem Ruhezustand, solange das Flag DGDONE auf «1» gesetzt ist. Der Mikroprozessor 10 löscht das Flag DGDONE auf «0», nachdem er von dem Unschärfegenerator 18 die letzten gebildeten Unschärfe- und Genauigkeitswerte empfangen hat. Ist dea Flag DGDONE gelöscht (Zustand 0), setzt der Mikroprozessor 51 das Flag CHDONE auf «0», um dem Ablagebehandler 16 anzuzeigen, dass der Unschärfegenerator 18 bereit ist, Daten zu verarbeiten. Der Mikroprozessor 51 setzt weiterhin das Flag PASS 1 auf « 1 » (Zustand 0), um anzuzeigen, dass der Unschärfegenerator 18 für den ersten Verarbeitungsdurchlauf (pass) mit neuen Daten aus dem Ablagebehandler 16 bereit ist. Als nächstes setzt der Mikroprozessor 51 die Wert ein SDC 90 und SBC 92 auf Null, um die Akkumulation der Differenzwerte und Genauig5
10
15
20
25
30
35
40
45
50
55
60
65
15
649 164
keitswerte bei der nachstehenden Verarbeitung durch den Mikroprozessor 51 vorzubereiten.
Der Mikroprozessor 51 prüft den Status des Flags CHRDY. CHRDY = 0, zeigt dem Mikroprozessor 51 an, dass der Ablagebehandler noch nicht für den Unschärfegenerator 18 zur Verarbeitung bereite Datenwerte hat. Der Unschärfegenerator 18 verbleibt in einem Ruhezustand (Zustand 2), bis das Flag CHRDY durch den Ablagebehandler 16 auf «1» gesetzt ist. Wenn der Mikroprozessor 51 feststellt, dass das Flag CHRDY gleich «1» ist, was anzeigt, dass der Ablagebehandler 16 Datenwerte für den Unschärfegenerator 18 zur Behandlung hat, setzt der Mikroprozessor 51 das Flag CHRDY auf «0» (Zustand 2), um dem Ablagebehandler 16 anzuzeigen, die Verarbeitung der Ablageende-Werte in CHEM 20 wieder aufzunehmen. Der Mikroprozessor 51 setzt weiterhin das Flag LOOP auf das Komplement des Flags QTRMIN. L00p = 0 (QTREMIN = 1) zeigt an, dass der Ablagebehandler 16 einen Durchlauf durch die Werte der oberen Enden der Ablagen in CMEM 20 abgeschlossen hat, wodurch dem Unschärfegenerator 18 ermöglicht ist, die Unschärfe- und Genauigkeitsregister SDW 100 und SBW 102 nach einem Test des Flags LOOP im Zustand 10 auf den neuesten Stand zu bringen.
Im Anschluss an das Setzen des Flags LOOP (Zustand 2) speichert der Mikroprozessor 51 den Datenwert in XREF 50 nach REF 60; den Datenwert sowie den zugehörigen Genauigkeitswert in XPOC 40 nach POC2 54 und POCl 52, und den Datenwert sowie den zugehörigen Genauigkeitswert in XTOS 42 nach TOS2 58 bzw. TOSI 56 (Zustand 2). Als nächstes prüft der Mikroprozessor 51 das Flag EQ. Ist EQ= 1 (Zustand 3), was anzeigt, dass der Ablageende-Wert in TOS2 58 und der Fachwert in POC2 54 gleich ist dem am meisten positiven Bezugswert in REF 60, wird der zu TOS2 58 gehörige Genauigkeitswert, nämlich TOSI 56 in El 70 gespeichert und die Steuerung des Mikroprozessors 51 geht in den Zustand 11 über. Ist EQ = 0, was anzeigt, dass die Werte in TOS2 58 und REF 60 nicht gleich sind, vollzieht der Mikroprozessor 51 folgende Schritte (Zustände und 4) ;
a) er bildet den Absolutwert der algebraischen Differenz zwischen dem Wert in TOS2 58 und dem Wert in REF 60.
b) er bildet den Absolutwert der algebraischen Differenz zwischen dem Wert in POC2 54 und dem Wert in REF 60.
Der Mikroprozessor 51 prüft als nächstes die Bedingung der Flags PE und SE wie folgt (Zustand 4):
a) wenn PE = 1 und SE = 0, was anzeigt, dass POC2 54 leer ist und TOS2 58 einen Datenwert enthält, dann wird der Wert in TOSI 56, der dem Datenwert in TOS2 58 zugehörige Genauigkeitswert in El 70 gespeichert und der Absolutwert der algebraischen Differenz zwischen dem Wert in TOS2 58 und dem Wert in REF 60 wird in DR 80 gespeichert. Die Mikroprozessor-Steuerung geht dann in den Zustand 8 über.
b) Wenn PE = 0 und SE = 1 ist, was anzeigt, dass POC2 54 einen Datenwert enthält und TOS2 58 leer ist, dann wird der Wert in POCl 52, der zu dem Datenwert in POC2 54 gehörige Genauigkeitswert, in El 70 gespeichert, und der Absolutwert der algebraischen Differenz zwischen POC2 54 und REF 60 wird in DR 80 gespeichert. Die Mikroprozessor-Steuerung geht dann in den Zustand 8 über.
c) Wenn PE = 0 und SE = 0 ist, was anzeigt, dass sowohl POC2-54 als auch TOS2-58 Datenwert enthalten, dann wird der Absolutwert der algebraischen Differenz zwischen POC2 54 und REF 60 in Dl 54 gespeichert, während der Absolutwert der algebraischen Differenz zwischen TOS2 58 und REF 60 in D2 82 gespeichert wird.
Als nächstes bringt der Mikroprozessor 51 die zu den Datenwerten in POC2 54 und TOS2 58 gehörigen Genauigkeitswerte, nämlich POCl 52 und TOSI 54 zum Vergleicher COMPI 96 (Zustand 5). Dann bringt der Mikroprozessor 51
die Wert ein Dl 54 und D2 82 zum Vergleicher COMP2 94 (Zustand 5). Die Ausgänge der Vergleicher COMPI 96 und COMPI 94 werden wie folgt getestet;
a) Wenn der Wert in Dl 74 kleiner ist als der Wert in D2 82, wird der Wert in Dl 74 nach DR 80 gespeichert und der Wert in POCl 52 wird nach El 70 gespeichert.
b) Wenn der Wert in D2 82 kleiner ist als der Wert in Dl 54, dann wird der Wert in D2 82 nach DR 80 gespeichert und der Wert TOSI wird nach El 70 gespeichert.
c) Wenn der Wert in Dl 74 gleich ist dem Wert in D2 82, und der Wert in TOSI 56 grösser ist als der Wert in POC; 52, dann wird der Wert in D2 82 nach DR 80 gespeichert und der Wert in TOSI 5 wird in El 70 gespeichert.
d) Gleicht der Wert in Dl 74 dem Wert in D2 82 und ist der Wert in POCl 52 grösser als oder gleich dem Wert in TOSI 56, wird der Wert in Dl 74 nach DR 80 und der Wert in POCl 52 nach El 70 gespeichert.
Der Mikroprozessor 51 bringt den Wert in DR 80 und den Wert in PW 64 zum Vergleicher COMP2 (Zustand 8). Ist der Wert in DR 80 grösser als der Wert in PW 64, wird der Wert in QS 66 nach DR 80 gespeichert (Zustand 9). Ist der Wert in DR 80 gleich oder kleiner als der Wert in PW 64, wird die Mikroprozessor-Steuerung zum Zustand 10 übertragen.
Der Mikroprozessor 51 summiert als nächstes den Wert in DR 80 und den Wert in El 70 in die Akkumulator-Register SDC 90 und SBC 92 (Zustand 10). Dann wird der Zustand des Flags LOOP geprüft. Ist LOOP= 1, was anzeigt, dass der Ablagebehandler 16 eine Abtastung der Ablageende-Werte im in Bearbeitung befindlichen CMEM-20-Feld noch nicht abgeschlossen hat, geht die Mikroprozessor-Steuerung über in den Zustand 2, um den nächsten Satz von Datenwerten aus dem Ablagebehandler 16 abzuwarten. Ist L00p = 0, was anzeigt, dass der Ablagebehandler 16 eine Abtastung der Ablageende-Wert in dem verarbeiteten CMEM-20-Feld abgeschlossen hat, lädt der Mikroprozessor 51 die Werte in SDC 90 und SDW 100 in den Komparator COMPI 96 und die Werte in SBC 92 und SBW 102 in den Komparator COMP2 94 (Zustand 12). Verlässt die Mikroprozessor-Steuerung den Zustand 3, summiert der Mikroprozessor 51 den Wert in El 70 nach SBC 92 (Zustand 11). Der Mikroprozessor 51 testet die Ausgänge von COMPI 96 und COMP2 94 wie folgt (Zustand 14):
a) Wenn der Wert in SDC 90 grösser ist als der Wert in SDW 100, oder der Wert in SDC 90 dem Wert in SDW 100 gleicht und der Wert in SBC 92 kleiner ist oder gleich dem Wert in SBW 102 oder das Flag PASSI = 0 ist, setzt der Mikroprozessor 51 das Flag DGDONE entsprechend dem Zustand des Flags CHDONE.
b) Wenn der Wert in SDC 90 kleiner ist als der Wert in SDW 100, oder der Wert in SDC 90 dem Wert in SDW 100 gleicht und der Wert in SBC 92 grösser ist als der Wert in SBW 102, oder das Flag PASSI = 1 ist, speichert der Mikroprozessor 51 den Wert in SDC 90 nach SDW 100, den Wert aus SBC 92 nach SBW 102 und den Wert in REF 60 nach PSN 62, und er setzt das Flag PASSI auf «0». Dann setzt der Mikroprozessor 51 das Flag DGDONE entsprechend der Bedingung des Flags CHDONE.
Der Mikroprozessor 51 prüft die Bedingung des Flags DGDONE. Ist DGDONE = 0, was anzeigt, dass der Ablagebehandler 16 die Vearbeitung des Datenfeldes in CMEM 20, welches derzeit in Bearbeitung ist, noch nicht beendet hat, geht die Mikroprozessorsteuerung über in den Zustand 1, wo die Register SDC 90 und SBC 92 gelöscht werden in Vorbereitung einer weiteren Abtastung der Datenfeldwerte an den oberen Enden der Ablagen. Ist DGDONE = 1, was anzeigt, dass der Ablagebehandler 16 die Verarbeitung des laufenden Datenfeldes in CMEM 20 beendet hat, kehrt die Steuerung des Mikroprozessors 51 in den Zustand 0, d.h. in den Ruhezustand zurück, um auf eine Anzeige zu warten, dass der Mikro-
5
10
15
20
25
30
35
40
45
50
55
60
65
649 164
16
Prozessor 10 den Ausgangswert des Unschärfegenerators 18 empfangen hat, nämlich den minimalen Unschärfewert in SDW 100, den Genauigkeitswert in SBW 102, der zu dem minimalen Unschärfewert in SDW 100 gehört, sowie den Positionswert in PSN 62, der zu dem minimalen Unschärfewert in SDW 100 gehört. Bei den nachstehenden Tabellen 4 und 5 bedeuten die Ausdrücke IF... THEN ...: Falls die Bedingung..., dann ... (Operation). GO TO bedeutet Sprung zu einer bestimmten Stelle des Programms (zu einem bestimmten Zustand). Bei den einzelnen Grössenvergleichen bedeuten EQ: gleich, GT: grösser als und LT: kleiner als, GE: grösser oder gleich. Der Ausdruck ELSE DO gibt eine Alternative zu der auf THEN folgenden Operation an, wenn die durch IF angesprochene Bedingung nicht erfüllt ist.
Tabelle 4
Zu- Operation stand
Funktion
0 IF CEMPTY = 1 GO TO Zustand 0
1 CONT, MIN, QTR«—QTLF (LFMAR)
NEXTREF« 64
2 SPR«—SPM (QTR)
3 COMP2i—QTR, MIN
SPR«—SPR-1
4 EMQS«—CMEM (QTR:SPR)
PMEM(QTR)(MSB)«—1
5 COMPI«—EMQS, NEXTREF wenn
EMQS.GT.NEXTREF, dann
NEXTREF«—EMQS wenn QTRMIN = 0, dann DO ;
QTR«—QTR - 1 ; Zustand 2
Im Nullzustand in Ruhe, bis CEMPTY durch Mikroproz. gelöscht ist.
Setze für den LFMAR-ten Ausdruck in QTLF CONT auf 1 oder 0 mit dem Bit 12 im QTLF-Wort (1 = noch mehr Einträge zu verarbeiten; 0 = letzter Eintrag verarbeitet) Setze MIN auf MIN-Feld (Bits 5-0) und QTR auf MAX-Feld (Bits 11-6).
Setze Kandidaten-Wert für XREF auf - 64 (negativer als irgendein mögl. Wert von TOX oder POC).
Lese QTR-ten Eintrag von SPM nach SPR (init. Kellerzeiger). SPR ist nun Zeiger auf die QTR-te Ablage im Kellerspeicher.
Laden, ATR und MIN in Vergleicher für Vorbereitung auf Gleichheitstest im Zustand.
Dekrem. SPR, um auf den 1-Ausdruck TOS in der Ablage zu zeigen.
Laden TOS (kleiner Genauigkeitswert) des SPR-ten Ausdrucks des QTR-ten
Ablage-Kellerspeichers nach EMQS.
Setzen PE-Bit in XPOC, um ein anfänglich leeres Fach anzuzeigen.
Laden COMPI mit EMQS und NEXTREF. Ist EMQS grösser als NEXTREF —64 bei der ersten verarbeiteten Ablage, so ersetze NEXTREF durch EMQS.
Zeigt Ergebnis im Zus. 3 an, dass QTR noch nicht gleich MIN ist dekrem. QTR, um auf nächste zu verarbeitende Ablage zu zeigen und kehre
10
35
12
55 13 14
XREF-«—NEXTREF ;
NEXTREF. 64
QWTR«—QTRL (LFMAR)
SPR«—SPM(QTR)
NO OP IF SPR = 0,
Then SE = 1 ;
ELSE DO:
SE = 0;
SPR«—SPR-1
XTOS,EMQS«—CMEM (QTR:SPR)
XPOC-«—PMEM(QTR); PE«—PMEM(QTR) (MSB)
IF SE= 1,
THEN DO: EQ<—0; CHRDY«—1 ; GO TO STATE 19
COMPl-f—EMQS, XREF
NO OP
IF EMS = XREF, THEN DO:
EQ= 1 ELSE DO:
EQ = 0;
GO TO Zustand 18
zurück zum Zustand 2, um die nächste Ablage TOS nachzuschauen und mit NEXTREF zu vergleichen. Wenn QTR MIN =1 (TOS-Abtastung fertig) dann gehe zum Zustand 6.
Setze FEF auf den am meisten positiven TOS, und reinitialisiere NEXTREF, um nächsten XREF zu finden. Lesen des QTR-ten Ausdrucks von SPM nach SPR (init. Kellerzeiger)
Prüfen, ob in SPR Null.
Ist der derz. Kellersp. leer, setzen des Flags «Kellerspe. leer», sonst löschen dieses Flags und dekrementieren des Kellerzeigers, damit dieser auf TOS zeigt.
TOS-Daten auslesen nach XTOS, um sie für den Unschärfe-Generator (DG) verfügbar zu machen. Einkopieren des TOS-Feldes nach EMQS um nächste Vergleichssequenz zu beginnen und dadurch den neuen XREF zu erhalten. Lesen des Fach-Werkes der in Bearbeitung befindl. Ablage nach XPOC in Vorber. d. Bereitstellung für den Unschärfe-Gen. (DG). Setzen des Flags «Fach leer» auf den Wert im MSB des PMEM-Ausdrucks.
Bei leerer Ablage Löschen des EQ-Flags, um dem Umschl.-Gen. anzuzeigen,
dass XTOS = XREF, Setzen CHRDY, um XTREF, XTOS und XPOC an Umsch.-Gen. zu geben ; Sprung in Zus. 19, um auf Antwort des Unschärfe-Gen. zu warten. Sonst fortfahren nach Zustand 12.
Derzeit TOX und XREF zum Vergi, in Vorbereitung des Tests im Zustand 14.
Prüfen, ob EMQS gleich NEXTREF.
Sind EMQS und XREF gleich, setzen der Flags «gleich» und Fortschreiten zum Zustand 15. Sonst löschen der Flags «gleich» und Sprung zum Zustand 18, um Daten für Umschl.-Generator bereitzustellen. Zustände 15 und 16 bringen den Wert TOS der geprüften Ablage in das Fach.
17
649 164
15 SPM(QTR)-«—SPR
16
BUS«—CMEM (QTRrSPR)
19
Zurückschreiben des dekrementierten Wertes aus SPR nach SPM.
Verwenden des Datenbusses als Zwischenspeicherregister, um den Wert TOS, der in das Fach zu übertragen ist, zu halten.
PMEM(QTR)*—BUS; Lesen der auf dem Bus PMEM(QTR)(MSB)-<—0 gehaltenen TOS-Daten in das Fach. Setzen des MSB des PMEM-Wortes, um ein volles Fach anzuzeigen (Löschen PE).
Wenn Ablage nun leer, dann Setzen CHRDY, um dem Unschärfe-Generator anzuzeigen, dass Daten bereitstehen. Übergang zum Zustand 19.
Sonst dekrementieren SPR, um auf nächstes Kellerelement zu zeigen (unbelegt, wenn vorheriger TOS-Wert in Fach gebracht wurde) zur Vorbereitung eines neuen EMQS/NESTREF-Ver-gleichszyklus. Weiter in den Zustand 17.
Lesen des neuen TOS-Wertes nach EMQS als neuen XREF-Kandidaten. (Für den ersten Durchlauf (PASS) ist NEXTREF im Zustand 6 auf — 64 eingestellt.
Bereitstellen der Daten für Unschärfe-Generator zwecks weiterer Verarbeitung.
Laden EMQS, NEXTREF in Vergi. Ist
EMQS > NEXTREF, dann
ELSE
GOTO STATE 6;
IF SPR = 0,
THEN DO: CHRDY =1 ; GOTO STATE 19
ELSE SPR-«—SPR-1
ELSE DO: QTR-«—QTR-1 ; GO TO STATE 7
22
EMQS-«—CMEM (QTR:SPR)
18 CHRDY = 1
COMP»—EMQS,
NEXTREF;
IF
30
IF CONT = 0, THEN DO; CEMPTY = 1 ; GO TO STATE 0;
ELSE DO:
LFM AR*—LFM AR-1 ; GO TO STATE 1
EMQS.GT.NEXTREF, gleichsetzen NEXTREF mit THEN EMQS. (Fortgang des
NEXTREF-«—EMQS Prozesses des Findens des am meisten positiven Wertes in TOS für jede gegebene TOS-Abtastung (TOS = top of Stack) = oberstes Kellerelement).)
40
45
CHDONE, um dem Unschärfe-Gen. anzuzeigen, dass der Ablagebehandler (CH) diesen Eintrag beendet hat. Weiter nach Zustand 22. Wenn NEXTREF einen Wert grösser als — 64 enthält, dann müssen noch weitere Ablagen bearbeitet werden. Weiter in den Zustand 6 und neu-init. QTR, um Verarbeitung der ersten Ablage des vorliegenden Eintrags wieder zu beginnen.
Ist QTRMIN = 0 (QTR ¥= MIN), müssen noch weitere Ablagen bei dieser TOS-Abtastung durch den vorliegenden Eintrag verarbeitet werden. Dekrementieren QTR, um auf die nächste zu verarbeitende Ablage zu zeigen. Weiter in Zustand 7, um Kellerzeiger für diese Ablage zu reinitialisieren.
Wenn der letzte Eintrag in CMEM (Zeiger hierauf ist letzter Ausdruck in QTLF mit dem CONT-Bit = 0) gerade verarbeitet ist, setzen CEMPTY, um den Ablagebehandler im Ruhezustand zu halten, um auf reinit. durch den PC zu warten.
Sonst, Auswahl des nächsten zu verarbeitenden Eintrags in CMEM ; weiter zum Zustand 1 ; nachschauen, nach dem ersten XREF-Wert für diesen Eintrag.
Tabelle 5
COMPI* -64
COMP2-«
-NEXTREF, Laden NEXTREF und -64 in so Zu- Operation
Funktion
-QTR, MIN
Vergi, zum Vorbereiten des Tests im Zustand 21.
stand
20 IF CHRDY = 1, GO TO Im Zustand 20 in Ruhe, bis
STATE 20
21 IF QTRMIN =1, THEN IF NEXTREF = -64 THEN DO: CHDONE=1 ; GO TO STATE 22
der Umsch.-Generator CHRDY löscht, was anzeigt, dass er die verfügbaren Datensatzwerte (XREF, XTOS, XPOC) übertragen hat. Falls QTR=MIN (QTRMIN = 1) (d.h. dass alle TOS-Elemente aller Ablagen im Eintrag abgetastet sind) und falls NEXTREF = -64 (kein neuer TOS-Wert wurde als Kandidat für XTREF gefunden), dann sind alle Ablage-Kellerspeicher verarbeitet. Setzen Flag
IF DGDONE =1, THEN GO TO STATE 0
ELSE;
CHDONE = 0;
PASSI = 1
60
65
SDC* SBC*-
-0; -0
Im Zustand 0 in Ruhe, bis DGDONE durch PC gelöscht.
Ist DGDONE gelöscht, rücksetzen CHDONE und setzen PASSI, um anzuzeigen, dass dies der erste Durchlauf (Pass) durch einen neuen Eintrag ist.
Löschen des
Abstandssummen-Kandidaten und
Genauigkeitssummen-Kand., um ersten Satz neuer Daten zu erhalten. Anf.-Bed. für Iteration durch die Ablagen.
649164
18
IF CHRDY = 0,
THEN GO TO STATE 2;
ELSE;
CHRDY = 0;
LOOP=QTRMIN REF»—XREF; POC-f—XPOC; TOS*—XTOS;
IF EQ = 0
THEN DO; ALU1*—POC2, REF; DI*—REF-POC2 ; IF D1.LT.0, (state 4) THEN DO: ALU1*—POC2, REF; D1 *—POC2-REF ;
THEN DO: ALU2*—TOS2, REF; D2*—REF-TOS2 ; IF D2.LT.0, (state 4) THEN DO: ALU2*—TOS2, REF; D2*—TOS2-REF ;
IF EQ= 1 THEN DO:
El*—TOSI ;
GO TO STATE 11 ;
IF PE= 1 AND SE = 0, THEN DO:
El*—TOSI ;
DR*—F2;
GOTO STATE 8; IF PE = 0 and SE= 1, THEN DO:
El*—POCl ;
DR*—Fl
Go TO STATE 8; IF PE = 0 AND SE = 0, THEN DO:
Dl*—Fl ;*
D2*—F2;*
COMPI* COMP2* NO OP
-POCl, TOSI -Dl, D2
Im Zustand 2 in Ruhe, bis der Ablage-Behandler anzeigt,
dass er zul. Daten für Unsch.-Gen. hat.
Stehen der Daten für den Ablage-Behandler bereit,
rücks. CHRDY, um anzuzeigen, dass der Abl.-Beh. arbeitet; Setzen LOOP auf Komplement von QTRMIN, und übertragen eines Datenwertsatzes vom Ablage-Behandler zu entsprechenden Registern. Zustand 2 ist der Anfangszustand für jede Ablage-Fach-Bezugsabstands-Berechnung.
Ist TOS ungleich REf, laden der entsprechenden ALU. Bestimmen der Diff. zwischen REF und dem verarbeiteten Fach-Wert. Ergibt die erste Subtraktion ein negatives Ergebnis werden die Operanden ausgetauscht und nochmals subtrahiert, um Absolutwert der Differenz zu bilden.
Bestimmte Differenz zwischen REF und den in Bearbeitung befindl. TOS (d.h. dem obersten Kellerelement, top of Stack). Bei negativem Ergebnis: Austausch der Operanden, um Absolutwert zu bilden.
TOS = REF : Differenz ist Null, erhalten des zugehörigen Genauigkeitswertes zum Berechnen der Genauigkeitssumme.
Für diese Ablage ist das Fach leer und das TOS voll. Retten der TOS-Genauigkeit und der Diff. zwischen TOS und REF.
Für die Ablage ist das Fach voll und TOS leer; Retten der Fach-Genauigkeit und Differenz 6 zwischen Fach und REF.
Für diese Ablage liegt sowohl ein Fachwert als auch ein TOS-Wert vor. Retten beider Werte für Test in Zuständen 5-7.
; Vergleichen Genauigkeit und Differenzen.
Prüfen ob Dl <D2, D2<D1, D2 = D1; POC>TOSl. Die Differenz zwischen dem Fach und REF ist kleiner als die Differenz zwischen REF und TOS.
10
35
40
45
50
11
55
12
IF D1.LT.D2, THEN DO: DR*—Dl ; Dl*—POCl ; IF D2.LT.D1, THEN DO: DR*—D2; El*—TOSI ;
IF Dl = D2 AND POC1.GE.TOS1 THEN DR*—Dl ; El^-POCl
IF Dl =D2 AND TOS1.GT.POC1, THEN DR*—D2; El*—TOSI
25 8 COMP2*—DR, PW
IF DR.GT.PW, THEN DR*—QS
ALU1*—DR, SDC; SDC*—Fl
ALU2*—El, SBC; SBC*—F2
IF LOOP=0, GOTO STATE 12
ELSE;
GO TO STATE 2
ALU2*—SBC, El ; SBC*—F2
IF L00p = 0,
THEN GO TO STATE
12
ELSE;
GO TO STATE 2 COMPI*—SDC, SDW; COMP2*—SBC, SBW
Die Differenz zwischen TOS und REF ist kleiner als die Diff. zwischen Fach und REF ; daher rette erstere mit zugehöriger Genauigkeit. REF hat gleiche Diff. bezüglich TOS und dem Fach, aber die zu letzterem gehörige Genauigkeit ist grösser als die von TOS, also rette die Diff. Fach/REF und die zugehörige Genauigkeit.
REF hat gleiche Diff. bezügl. TOS und Fach, aber der zu TOS gehörige
Genauigkeitswert ist grösser als der vom Fach; daher rette Diff. zwischen TOS und REF sowie zugehörigen Genauigkeitswert.
Vergleichen der Differenz, die im Zustand 7 ausgewählt wurde; mit
Suchabschnittsbreite (pipe width).
Die Differenz ist grösser als die Suchabschnittsbreite,
daher ersetze Anfragegrösse für den Abstand.
Summiere zuletzt gefundene Diff. mit den anderen Diff. in dieser Ablageabtastung. Summiere die zu der zuletzt gefundenen Diff. gehörige Genauigkeit mit den anderen. Genauigkeitswerten für diesen Ablagendurchlauf.
Dies beendet eine Abtastung durch die Ablagen, daher Sprung zum Zust. 12, um Summe der Diff. und Genauigkeiten im «Gewinner»-Register und REF auf neuesten Stand zu bringen.
Sprung in Zust. 2 und Verarbeiten des nächsten Datensatzes in Ablage-Behandler.
(Siehe Zust. 3) Diff. von REF für dieselbe Ablage, wenn REF-Differenz Null ist; daher rette TOS-Genauigkeit für Genauigkeitssumme.
Vergleichen der Diff. und Gen.kandidaten mit vorherigen Gewinnern. Dieser Zustand wird nach Abtastung aller Ablagen betreten.
19
649 164
13 NOOP
14 IF SDC.LT.SDW OR (SDC = SDW AND SBC.GT.SBW) or PASSI = 1,
THEN SDW<—SDC; SBW-i—SBC; PSN-«—REF; PASSI =0
DGDONE=CHDONE IF DGDONE = 0, THEN GO TO STATE 1;
ELSE;
GO TO STATE 0
Prüfen od SDC.LT.SDW, SDC.EQ.SDW SDC.GT.SDW, SBC.LT.SBW, SBC.EQ.SBW, SBX.GT.SBW
Bringe SBW (Summe der Diff. Gewinn). SBW (Summe der Gen.Gewinn) und REF auf neuesten Stand. Drei Bedingungen, um diese Register auf neuen Stand zu bringen.
1. PASS = 1 ; Dies ist erster Durchlauf durch die Ablagen, daher sind SDC und SDW leer. Erzwungenes Auf-neuen-Stand-Bringen.
2. SDC < SDW, daher ist SDC der Gewinner.
3. Gleiche Differenzen aber Kandidat hat grössere Genauigkeit.
Löschen PASSI, da Unschärfe-Generator nun für 2. Durchlauf bereit. Ist der Ablage-Behandler nicht fertig, gehe in Zust. 1, um SDC- und SBC-Register für nächste Ablage-Abtastung vorzubereiten. Ist Abi.-Beh. fertig melde an PC, dann in Zust. 0 und Ruhezustand bis PC das FLAG DGDONE löscht.
* Fl = Ausgang der ALU 1, F2 = Ausgang der ALU 1
18 Blatt Zeichnungen
Claims (15)
- 6491642PATENTANSPRÜCHE1. Datenverarbeitungseinrichtung, mit mehreren Datenspeichern (20) und je einem zugeordneten Zwischenspeicher (26) für jeden dieser Datenspeicher, mit der ein Kriteriumswert und ein dazugehöriger Positionswert bestimmbar sind für den Übereinstimmungsgrad in der Gegenüberstellung mehrerer Ereignistypen einer Anfrage mit mehreren Ereignistypen einer gespeicherten Datenbank, unter Verwendung eines zuvor gebildeten Datenfeldes, in welchem jeder Datenwert die Anzahl von Ereignispositionen zwischen dem Auftreten eines Ereignistyps in der Anfrage und dem Auftreten eines entsprechenden Ereignistyps in der gespeicherten Datenbank darstellt und in welchem eine aus einem oder mehreren Datenwerten bestehende Gruppe vorgesehen ist für jeden einer Mehrzahl unterschiedlicher Anfrage-Ereignisty-pen, wobei jede unterschiedliche Gruppe in einem anderen der Datenspeicher (20) gespeichert ist und die Datenwerte dort jeweils in monotoner Reihenfolge, beginnend an einem ersten Ende, angeordnet sind, gekennzeichnet durch a) Mittel (32) zum Bezeichnen eines Datenwertes in jedem einer Mehrzahl der Datenspeicher (20) als erstem Datenwert,b) Mittel (44,46,48) zum Erfassen wenigstens eines der bezeichneten ersten Datenwerte, der eine vorgegebene Grösse aufweist in Bezug auf die anderen bezeichneten ersten Datenwerte,c) Mittel (21) zum Speichern des wenigstens einen erfassten Datenwertes in dem Zwischenspeicher (26), der demjenigen Datenspeicher (20) zugeordnet ist, in welchem der erfasste Datenwert auftritt,d) Mittel (58, 60, 78), um für jeden einzelnen Datenspeicher (20) einen ersten Abstandswert zu bilden, welcher die algebraische Differenz zwischen dem erfassten Datenwert und dem bezeichneten Datenwert im jeweiligen Datenspeicher (20) darstellt,e) Mittel (54, 60, 76), um für jeden einzelnen Datenspeicher (20) einen zweiten Abstandswert zu bilden, der die algebraische Differenz zwischen dem erfassten Datenwert und einem Datenwert in dem Zwischenspeicher (26) darstellt, der dem jeweiligen Datenspeicher (20) zugeordnet ist,f) Mittel (94), um für jeden einzelnen Datenspeicher (20) einen Abstandswert auszuwählen aus dem ersten und dem zweiten Abstandswert, wobei der ausgewählte Abstandswert eine vorgegebene Grösse bezüglich des anderen Wertes aufweist,g) Mittel (90), um für den erfassten Datenwert eine Abstandswertsumme zu bilden, die die Summe der absoluten Werte der mit diesem erfassten Datenwert gebildeten ausgewählten Abstandswerte darstellt,h) Mittel (32) zum Bezeichnen eines neuen Datenwertes in demjenigen Datenspeicher (20), der den wenigstens einen erfassten Datenwert enthält, wobei der bezeichnete neue Wert derjenige Datenwert ist, der in einer vorbestimmten Reihenfolge innerhalb der monotonen Reihe von Datenwerten auf den zuvor als nächster Datenwert bezeichneten Wert folgt, und i) Mittel (100, 62) zum Verwenden der erfassten Datenwerte und der entsprechenden Abstandswertsummen zum Ableiten des Kriteriumswertes und des Positionswertes.
- 2. Datenverarbeitungseinrichtung nach Anspruch 1, in der der nächste Datenwert in der monotonen Reihe als neuer erster Datenwert seiner Gruppe bezeichnet wird, nachdem ein Datenwert aus der Gruppe in dem Zwischenspeicher (26) gespeichert ist, dadurch gekennzeichnet, dass zum Wiederholen des Betriebsablaufes der vorgenannten Mittel unter Verwendung dieses neuen ersten Daten wertes Mittel (10) vorgesehen sind.
- 3. Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Auswählmittel (94) dazu eingerichtet sind, aus dem ersten und dem zweiten Abstandswert den kleineren auszuwählen.
- 4. Datenverarbeitungseinrichtung nach Anspruch 1, gekennzeichnet durch einen Speicher (100) für die Abstandswertsumme und eine Einrichtung (90) zum Ersetzen eines in dem Abstandswertsummen-Speicher(lOO) enthaltenen Wertes durch eine neu gebildete Abstandswertsumme.
- 5. Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Mittel (21) zum Speichern des wenigstens einen erfassten Datenwertes in dem Zwischenspeicher (26) eine Anordnung aufweisen zum Speichern anderer bezeichneter Datenwerte in den jeweils zugeordneten Zwischenspeichern (26), welche andere Datenwerte denselben Wert aufweisen wie der erfasste Datenwert.
- 6. Datenverarbeitungseinrichtung nach Anspruch 1, gekennzeichnet durch einen Speicher (64) für einen Suchbreitenwert, Mittel (94) zum Feststellen einer vorgegebenen Beziehung zwischen jedem ausgewählten Abstandswert und einem in dem Suchbreitenspeicher (64) gespeicherten Wert und Mittel (66,72), die nach dem Feststellen dieser vorgegebenen Beziehung bei einem der ausgewählten Abstandswerte einen vorbestimmten Wert für die Bildung der Abstandswertsumme an die Stelle dieses ausgewählten Abstandswertes setzen.
- 7. Datenverarbeitungseinrichtung nach Anspruch 1, in der ein Wichtungswert zu jedem der Datenwerte gespeichert wird, gekennzeichnet durch einen Speicher (102) für eine Wichtungswertsumme und Mittel (78,92) zum Kombinieren derjenigen Wichtungswerte, die zu den beim Bilden der Abstandswertsumme verwendeten Datenwerten gehören, um dadurch die Wichtungswertsumme zu erzeugen, und zum Ersetzen eines Wertes in dem Wichtungswertsummen-Spei-cher (102) durch die gebildete Wichtungswertsumme.
- 8. Datenverarbeitungseinrichtung nach Anspruch 7, dadurch gekennzeichnet, dass die letztgenannten Mittel (78, 92) Mittel enthalten zum Ersetzen des in dem Wichtungswert-summen-Speicher (102) enthaltenen Wertes durch die erzeugte Wichtungswertsumme nach Beendigung der Bildung der Abstandswertsumme.
- 9. Datenverarbeitungseinrichtung nach Anspruch 8, gekennzeichnet durch Mittel (94) zum Feststellen, ob der erste und der zweite Abstandswert, die mit dem bezeichneten Datenwert in einem Datenspeicher (20) und dem Datenwert im zugeordneten Zwischenspeicher gebildet werden, gleich sind, Mittel (96), um aus den zwei Wichtungswerten, die zu den zwei als gleich erkannten Abstandswerten gehören, denjenigen Wichtungswert auszuwählen, der bezüglich des anderen eine vorgegebene Grösse aufweist, und Mittel (51) zum Verwenden des ausgewählten Wichtungswertes beim Kombinieren der Wichtungswerte.
- 10. Datenverarbeitungseinrichtung nach Anspruch 9, dadurch gekennzeichnet, dass die Mittel (96) zum Auswählen des Wichtungswertes den grösseren der beiden Wichtungswerte auswählen.
- 11. Datenverarbeitungseinrichtung nach Anspruch 10, dadurch gekennzeichnet, dass die Mittel (51) zum Verwenden des ausgewählten Wichtungswertes für den erfassten Datenwert die zugehörige Abstandswertsumme und die zugehörige Wichtungswertsumme dazu verwenden, den Kriteriumswert zu bilden.
- 12. Datenverarbeitungseinrichtung nach Anspruch 11, gekennzeichnet durch einen Speicher (100) für den Kriteriumswert und Mittel (90) zum Ersetzen des in dem Kriteriumswert-Speicher (100) enthaltenen, zuvor gebildeten Kriteriumswertes durch einen neu gebildeten Kriteriumswert,wenn dieser neu gebildete Kriteriumswert eine vorgegebene Beziehung zu dem in dem Kriteriumswert-Speicher (100) enthaltenen Wert aufweist.51015202530354045505560653649 164
- 13. Datenverarbeitungseinrichtung nach Anspruch 12, gekennzeichnet durch einen Speicher (62) für einen Positionswert und Mittel (60) zum Speichern des betreffenden Positionswertes in dem Positionswertspeicher (62) für jeden erfassten Datenwert.
- 14. Datenverarbeitungseinrichtung nach Anspruch 13, gekennzeichnet durch Mittel (51, 60) zum Ersetzen des in dem Positionswertspeicher (62) enthaltenen Positionswertes durch den neuen Positionswert, der zu einem erfassten Datenwert gehört, mit welchem der Kriteriumswert gebildet wird, der zu dem in dem Kriteriumswert-Speicher (100) enthaltenen Wert die vorgegebene Beziehung hat.
- 15. Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet, dass zum Wiederholen des Betriebsablaufes der vorgenannten Mittel so lange, bis sämtliche Datenwerte in den Datenspeicher (20) verarbeitet sind, Mittel ( 10) vorgesehen sind.Datenverarbeitungsverfahren und -Vorrichtungen zum Verarbeiten von Datenfeldern sind bekannt. Es sind auch Verfahren und Vorrichtungen dieser Art bekannt, mit denen eine Übereinstimmung zwischen einem Datenfeld, nachfolgend als Anfrage bezeichnet, und einem gespeicherten Datenbank-Feld überprüft werden kann.Ein Verfahren und eine Vorrichtung der letztgenannten Art sind in der US-PS 4 068 298 beschrieben. Diese Patentschrift offenbart ein Verfahren und eine Vorrichtung, um unter Verwendung von als «piping» und «brightness» bezeichneten Konzepten solche Einträge n einer gespeicherten Datenbank zu lokalisieren, die einen vorgegebenen Grad von Übereinstimmung, d.h. eine vorgegebene Genauigkeit («brightness») mit einer Anfrage aufweisen. Um die Reihenfolge des Auftretens (sich Ereignens) von Ereignissen und Einträgen (die sich aus Ereignissen zusammensetzen), welche die Datenbank bilden, darzustellen, werden Ereignis-Zeit-punkte oder Zeit-Ticks verwendet. Unter Verwendung der Zeit-Ticks werden nach dem Verfahren und der Vorrichtung diejenigen gespeicherten Datenbank-Einträge bestimmt, die mit der Anfrage einen vorgegebenen Übereinstimmungsgrad aufweisen. Die Anzahl von Ereignispositionsabständen zwischen einem Ereignis der Anfrage und einem entsprechenden (d.h. dem gleichen) Ereignis in der Datenbank wird dazu herangezogen, den vorgegebenen Grad von Übereinstimmung zu bestimmen. Als Ergebnis werden genaue und ungenaue Daten-Recherchenergebnisse aus der gespeicherten Datenbank einfacher, effizienter und rascher erzielt.Nachstehend werden zunächst einige Ausdrücke angeführt, wie sie in der nachfolgenden Beschreibung der Ausführungsbeispiele verwendet werden:- Eintrag: gespeichertes Datenbank-Feld- Anfrage: zu vergleichendes Datenfeld- Ereignis: digital dargestellte Zeichen; jedes Ereignis befindet sich jeweils an einem bestimmten Ort in der Anfrage bzw. im Eintrag- Ereignistypen: Buchstaben, Worte, Sätze, Absätze- Ereignispositionen = Stellen: Orte, wo sich Ereignisse in der Anfrage und im Eintrag befinden können- relative Stellen: relative Lage von solchen Orten- Positionswert: Ordnungszahl einer Stelle- Daten: auszulesende gespeicherte Information- Datenwert: Zahl der Ereignispositionen zwischen einem Ereignis in der Anfrage und dem entsprechenden Ereignis im Eintrag- Schiebestelle: = Schiebeposition: relative Lage von Anfrage und Eintrag- Abstandswert: algebraische Differenz zwischen festgestelltem Datenwert und vorgegebenem Datenwert- Abstandswertsumme: Summe der absoluten Werte der ausgewählten Abstandswerte- Kriteriums wert: Unschärfe oder Genauigkeit- Unschärfe: Zahl, die ein Mass darstellt für den Grad der Abweichung zwischen allen Ereignissen im Eintrag und den Ereignissen in der Anfrage- Genauigkeit = Ähnlichkeitsgrad = Wichtungswert: gewichteter Dezimalwert, der ein Mass darstellt für den Übereinstimmungsgrad zwischen gleichen Ereignissen und ihren Lagen in einer Anfrage und im Eintrag- Übereinstimmungsgrad: Ausmass des Passens, das sich nach Abfrage in einer Ebene ergibt- Suchbreite, Suchbreitenwert: Grenze bzw. Grenzwert für die maximal zulässige Differenz zwischen einem Ereignis in der Anfrage und dem Eintrag
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB25738/78A GB1588827A (en) | 1978-05-31 | 1978-05-31 | Data processor method and means for determining degree of match between two data arrays |
Publications (1)
Publication Number | Publication Date |
---|---|
CH649164A5 true CH649164A5 (de) | 1985-04-30 |
Family
ID=10232481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CH5028/79A CH649164A5 (de) | 1978-05-31 | 1979-05-30 | Datenverarbeitungseinrichtung zum bestimmen des uebereinstimmungsgrades in der gegenueberstellung einer anfrage mit einer gespeicherten datenbank. |
Country Status (23)
Country | Link |
---|---|
US (1) | US4290115A (de) |
JP (1) | JPS54157456A (de) |
AU (1) | AU529460B2 (de) |
BE (1) | BE876591A (de) |
BR (1) | BR7903523A (de) |
CA (1) | CA1110771A (de) |
CH (1) | CH649164A5 (de) |
DD (1) | DD144136A5 (de) |
DE (1) | DE2838106A1 (de) |
DK (1) | DK223379A (de) |
EG (1) | EG13611A (de) |
ES (1) | ES8103405A1 (de) |
FI (1) | FI791459A (de) |
FR (1) | FR2427645A1 (de) |
GB (1) | GB1588827A (de) |
IL (1) | IL57205A (de) |
IT (1) | IT1197508B (de) |
LU (1) | LU81335A1 (de) |
NL (1) | NL7904267A (de) |
NO (1) | NO791742L (de) |
PL (1) | PL215977A1 (de) |
SE (1) | SE7904315L (de) |
YU (1) | YU126279A (de) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4490811A (en) * | 1979-03-14 | 1984-12-25 | Yianilos Peter N | String comparator device system circuit and method |
FR2459512A1 (fr) * | 1979-06-19 | 1981-01-09 | Vidalin Jacques | Procede pour la commande de rapprochement a effectuer entre des entites logiques de reference et des entites logiques issues d'un fichier |
US4381551A (en) * | 1979-09-13 | 1983-04-26 | Sharp Kabushiki Kaisha | Electronic translator |
US4422158A (en) * | 1980-11-28 | 1983-12-20 | System Development Corporation | Method and means for interrogating a layered data base |
US4525803A (en) * | 1982-08-12 | 1985-06-25 | L'universite De Bordeaux 1 | Method for controlling the comparison to be effected between reference logical entities and logical entities issuing from a file |
US4700294A (en) * | 1982-10-15 | 1987-10-13 | Becton Dickinson And Company | Data storage system having means for compressing input data from sets of correlated parameters |
EP0157768A4 (de) * | 1983-10-04 | 1987-12-09 | Proximity Technology Inc | Kettenvergleichsvorrichtung enthaltendes system, schaltung und verfahren. |
US4698751A (en) * | 1984-07-13 | 1987-10-06 | Ford Aerospace & Communications Corporation | Systolic array for solving cyclic loop dependent algorithms |
US4727483A (en) * | 1984-08-15 | 1988-02-23 | Tektronix, Inc. | Loop control system for digital processing apparatus |
US5212697A (en) * | 1988-09-13 | 1993-05-18 | Ricoh Company, Ltd. | Variable length character string detection apparatus |
AU624205B2 (en) * | 1989-01-23 | 1992-06-04 | General Electric Capital Corporation | Variable length string matcher |
US5008818A (en) * | 1989-04-24 | 1991-04-16 | Alexander K. Bocast | Method and apparatus for reconstructing a token from a token fragment |
JP3201945B2 (ja) * | 1995-01-10 | 2001-08-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データベースのテーブルを比較する方法 |
JPH08255172A (ja) * | 1995-03-16 | 1996-10-01 | Toshiba Corp | 文書検索システム |
JPH0981574A (ja) * | 1995-09-14 | 1997-03-28 | Fujitsu Ltd | 検索集合表示画面を利用したデータベース検索法およびシステム |
US5813002A (en) * | 1996-07-31 | 1998-09-22 | International Business Machines Corporation | Method and system for linearly detecting data deviations in a large database |
US20020180736A1 (en) * | 2001-05-31 | 2002-12-05 | Millmore Martin John | Data entry control system |
US7251646B1 (en) * | 2006-02-13 | 2007-07-31 | Microsoft Corporation | Minimal difference query and view matching |
US7797319B2 (en) * | 2006-05-15 | 2010-09-14 | Algebraix Data Corporation | Systems and methods for data model mapping |
US7865503B2 (en) * | 2006-05-15 | 2011-01-04 | Algebraix Data Corporation | Systems and methods for data storage and retrieval using virtual data sets |
US7720806B2 (en) * | 2006-05-15 | 2010-05-18 | Algebraix Data Corporation | Systems and methods for data manipulation using multiple storage formats |
US7613734B2 (en) * | 2006-05-15 | 2009-11-03 | Xsprada Corporation | Systems and methods for providing data sets using a store of albegraic relations |
US7877370B2 (en) * | 2006-05-15 | 2011-01-25 | Algebraix Data Corporation | Systems and methods for data storage and retrieval using algebraic relations composed from query language statements |
US7769754B2 (en) * | 2006-05-15 | 2010-08-03 | Algebraix Data Corporation | Systems and methods for data storage and retrieval using algebraic optimization |
US9600513B2 (en) | 2011-06-09 | 2017-03-21 | International Business Machines Corporation | Database table comparison |
US9074402B2 (en) * | 2012-05-01 | 2015-07-07 | Toyota Motor Engineering & Manufacturing North America, Inc. | Sliding door obstacle detection |
US8583687B1 (en) | 2012-05-15 | 2013-11-12 | Algebraix Data Corporation | Systems and methods for indirect algebraic partitioning |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3221158A (en) * | 1961-06-28 | 1965-11-30 | Ibm | Combinatorial word analyzer |
US3568156A (en) * | 1967-08-09 | 1971-03-02 | Bell Telephone Labor Inc | Text matching algorithm |
US3729712A (en) * | 1971-02-26 | 1973-04-24 | Eastman Kodak Co | Information storage and retrieval system |
GB1343867A (en) * | 1971-06-17 | 1974-01-16 | Ibm | Data processing system |
FR2226078A5 (de) * | 1973-04-13 | 1974-11-08 | Sodema | |
FR2293741A1 (fr) * | 1974-12-04 | 1976-07-02 | Anvar | Procede et systeme de rapprochement iteratif et simultane de donnees avec un ensemble de donnees de reference |
US4068298A (en) * | 1975-12-03 | 1978-01-10 | Systems Development Corporation | Information storage and retrieval system |
US4084260A (en) * | 1976-07-12 | 1978-04-11 | Sperry Rand Corporation | Best match content addressable memory |
-
1978
- 1978-05-31 GB GB25738/78A patent/GB1588827A/en not_active Expired
- 1978-08-14 CA CA309,246A patent/CA1110771A/en not_active Expired
- 1978-08-31 DE DE19782838106 patent/DE2838106A1/de not_active Withdrawn
-
1979
- 1979-02-14 JP JP1513879A patent/JPS54157456A/ja active Pending
- 1979-05-03 IL IL57205A patent/IL57205A/xx unknown
- 1979-05-07 FI FI791459A patent/FI791459A/fi not_active Application Discontinuation
- 1979-05-14 US US06/038,518 patent/US4290115A/en not_active Expired - Lifetime
- 1979-05-15 FR FR7912289A patent/FR2427645A1/fr active Granted
- 1979-05-16 SE SE7904315A patent/SE7904315L/xx not_active Application Discontinuation
- 1979-05-28 BE BE0/195432A patent/BE876591A/xx not_active IP Right Cessation
- 1979-05-28 NO NO791742A patent/NO791742L/no unknown
- 1979-05-29 AU AU47517/79A patent/AU529460B2/en not_active Ceased
- 1979-05-29 DD DD79213236A patent/DD144136A5/de unknown
- 1979-05-30 CH CH5028/79A patent/CH649164A5/de not_active IP Right Cessation
- 1979-05-30 ES ES481046A patent/ES8103405A1/es not_active Expired
- 1979-05-30 NL NL7904267A patent/NL7904267A/xx not_active Application Discontinuation
- 1979-05-30 DK DK223379A patent/DK223379A/da not_active Application Discontinuation
- 1979-05-30 YU YU01262/79A patent/YU126279A/xx unknown
- 1979-05-30 PL PL21597779A patent/PL215977A1/xx unknown
- 1979-05-30 EG EG331/79A patent/EG13611A/xx active
- 1979-05-30 LU LU81335A patent/LU81335A1/xx unknown
- 1979-05-30 IT IT68169/79A patent/IT1197508B/it active
- 1979-05-31 BR BR7903523A patent/BR7903523A/pt unknown
Also Published As
Publication number | Publication date |
---|---|
GB1588827A (en) | 1981-04-29 |
IL57205A (en) | 1981-12-31 |
US4290115A (en) | 1981-09-15 |
IT1197508B (it) | 1988-11-30 |
IT7968169A0 (it) | 1979-05-30 |
NO791742L (no) | 1979-12-03 |
ES481046A0 (es) | 1981-02-16 |
EG13611A (en) | 1981-12-31 |
YU126279A (en) | 1983-04-30 |
IL57205A0 (en) | 1979-09-30 |
FR2427645B1 (de) | 1985-04-19 |
BE876591A (fr) | 1979-11-28 |
AU529460B2 (en) | 1983-06-09 |
DE2838106A1 (de) | 1979-12-06 |
PL215977A1 (de) | 1980-09-08 |
SE7904315L (sv) | 1980-01-25 |
ES8103405A1 (es) | 1981-02-16 |
AU4751779A (en) | 1980-02-28 |
NL7904267A (nl) | 1979-12-04 |
FI791459A (fi) | 1979-12-01 |
BR7903523A (pt) | 1980-01-22 |
CA1110771A (en) | 1981-10-13 |
DK223379A (da) | 1980-01-18 |
FR2427645A1 (fr) | 1979-12-28 |
DD144136A5 (de) | 1980-09-24 |
JPS54157456A (en) | 1979-12-12 |
LU81335A1 (fr) | 1979-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CH649164A5 (de) | Datenverarbeitungseinrichtung zum bestimmen des uebereinstimmungsgrades in der gegenueberstellung einer anfrage mit einer gespeicherten datenbank. | |
DE69330701T2 (de) | Verfahren zur Durchführung der Suche nach Ähnlichkeiten mit einer Abfrage in einer Dokumentenmenge | |
DE69524601T2 (de) | Verfahren zum daten speichern und daten wiederfinden und eine speicheranordnung | |
DE3852384T2 (de) | Adaptives Hilfs-/Dialogsystem. | |
DE69127847T2 (de) | Verfahren und Gerät zur Klassifizierung von Daten | |
DE69231113T2 (de) | Speicherverfahren für bibliographische Information über Daten aus einer endlichen Textquelle, und insbesondere Dokumentverbuchungen zur Verwendung in einem Suchsystem für Ganztextdokumente | |
DE69027017T2 (de) | Anordnung und Verfahren zur Speicherverwaltung in einem Mikrorechner | |
DE1424732A1 (de) | Elektronische Ziffernrechenmaschine | |
DE3709399A1 (de) | Elektronische abrechnungs-speichervorrichtung | |
DE3855494T2 (de) | Abfragevorrichtung und -methode | |
DE4040348A1 (de) | Vorrichtung zur designauswertung | |
DE69629540T2 (de) | Verfahren und Gerät zum Sortieren von Elementen | |
DE10048478C2 (de) | Verfahren zum Zugriff auf eine Speichereinheit bei der Suche nach Teilzeichenfolgen | |
DE2233193C3 (de) | Stapel-Speichersystem | |
DE68914478T2 (de) | Elektronische Waage zum Zählen. | |
WO2010078859A1 (de) | Verfahren und system zum ermitteln einer ähnlichkeit von dokumenten | |
DE69229491T2 (de) | Verfahren und Gerät um die lexikalen Eigenschaften von zusammengesetzten Wörtern zu bestimmen | |
DE2809341C2 (de) | ||
Hodges | The" intermediate classes" in Marxian theory | |
EP0912952B1 (de) | Datenbanksystem und verfahren zum verwalten eines n-dimensionalen datenbestands | |
Dasgupta | RELATIVE PREDICTABILITY OF FIVE INDICES OF ADOPTION OF RECOMMENDED FARM PRACTICES1 | |
DE1955797A1 (de) | Verfahren zur Steuerung der Verarbeitung von Eingabedaten und Datenverarbeitungsanlage hierfuer | |
CH646805A5 (de) | Optisches handlesegeraet fuer maschinelle zeichenerkennung. | |
EP1204917A1 (de) | Operandenstapelspeicher und verfahren zum betreiben eines operandenstapelspeichers | |
WO1998049622A1 (de) | Chipkarte mit speicherzugriffsmaximierung und protokollierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PL | Patent ceased |