DE3688317T2 - Maschine zur mehrfachen Filterung. - Google Patents
Maschine zur mehrfachen Filterung.Info
- Publication number
- DE3688317T2 DE3688317T2 DE86308442T DE3688317T DE3688317T2 DE 3688317 T2 DE3688317 T2 DE 3688317T2 DE 86308442 T DE86308442 T DE 86308442T DE 3688317 T DE3688317 T DE 3688317T DE 3688317 T2 DE3688317 T2 DE 3688317T2
- Authority
- DE
- Germany
- Prior art keywords
- byte
- ram
- data
- bytes
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000001914 filtration Methods 0.000 title description 9
- 230000015654 memory Effects 0.000 claims description 28
- 238000000034 method Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000005516 deep trap Effects 0.000 description 18
- 238000013507 mapping Methods 0.000 description 6
- 238000003909 pattern recognition Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- VCBKOGTZQNFBOT-ATZDWAIDSA-N ram-325 Chemical compound C1C(=O)CC[C@@]2(O)[C@H]3CC4=CC=C(OC)C(OC)=C4[C@]21CCN3C VCBKOGTZQNFBOT-ATZDWAIDSA-N 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 101100172132 Mus musculus Eif3a gene Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004870 electrical engineering Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/02—Indexing scheme relating to groups G06F7/02 - G06F7/026
- G06F2207/025—String search, i.e. pattern matching, e.g. find identical word or best match in a string
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Small-Scale Networks (AREA)
- Time-Division Multiplex Systems (AREA)
Description
- Eine allgemeine Aufgabe digitaler Entwürfe ist die Erkennung eines gegebenen Bitmusters oder einer Bitfolge in einem Bitstrom oder einer Datenfolge. Digitale Vorrichtungen, welche solche Mustererkennungen durchführen, werden als "Zustandsmaschinen" bezeichnet. Solche Maschinen sind so aufgebaut, daß sie binäre Datensequenzen als Eingangssignal annehmen und ein vorgegebenes Ausgangssignal erzeugen, wenn eine gegebene Datensequenz in dem Eingangssignal enthalten ist. Eine Zustandsmaschine kann beispielsweise so ausgelegt sein, daß sie "hoch geht", wenn sie auf die Auslöse- oder Triggerfolge 10101010 innerhalb einer Eingangs-Datensequenz trifft. Das Eingangssignal 0010101010111 würde daher die Maschine triggern, weil die Triggerfolge in der Eingangs-Datenfolge enthalten ist. Andererseits würde das Eingangssignal 0010101011111 die Maschine nicht triggern, weil das erforderliche Triggersignal nicht in der Eingangs- Datenfolge vorhanden ist. Eine solche Zustandsmaschine kann also die Triggerfolge erkennen. Verfahren für einen leistungsfähigen Entwurf solcher Zustandsmaschinen und für deren Aufbau mit logischen Komponenten und verschiedenen Arten von Flip-Flop-Schaltungen sind in der Elektrotechnik gut bekannt. Ein Beispiel für eine solche Zustandsmaschine ist beschrieben in "Switching and Finite Automata Theory", Teil III, von Zvi Kohavi, (McGraw- Hill, 1978)
- Die von Zustandsmaschinen in modernen digitalen Einrichtungen vorgesehene Mustererkennungs-Fähigkeit wird heute dringend benötigt. Eine wichtige Anwendung betrifft die sogenannten lokalen Netze (Local Area Networks; LAN). Ein LAN ist ein Kommunikationsnetzwerk, das Verbindungen verschiedener Datenübertragungsvorrichtungen innerhalb eines kleinen Bereiches herstellt. Ein solches Netzwerk ist beschrieben in "Local Network", Teil 2 von William Stallings (Macmillan Publishing Company, 1984).
- Ein typisches LAN ist ein Computernetzwerk, das auf ein geografisch kleines Gebiet, wie ein Fabrikgelände oder ein Bürohaus, begrenzt ist. Verschiedene Vorrichtungen, wie Computer, Terminals, etc., sind an verschiedenen Stellen des Netzes in das Netzwerk "eingestöpselt". Jeder Vorrichtung ist eine Adresse zugeordnet, so daß digitale Nachrichten zwischen den Vorrichtungen über das Netzwerk ordnungsgemäß übertragen und empfangen werden können. Selbstverständlich muß jede Vorrichtung unter anderem ihre eigene Adresse erkennen können, wobei die oben angesprochene Mustererkennung notwendig wird.
- Ein weithin bekannter und kommerziell aktzeptierter LAN- Standard ist der IEEE (Institute of Electrical and Electronic Engineers)-Standard 802.3. Eine Realisierung dieses Standards durch die Digital Equipment Corporation ist im Handel unter dem Namen "Ethernet" gut bekannt. Die IEEE-Standard 802.3 nutzt ein CSMA/CD-Medienzugriffverfahren (CSMA/CD steht als Abkürzung für "Carrier Sense Multiple Access with Collision Detection" und bezeichnet eine Methode zum kollisionsfreien Mehrfachzugriff auf private Ortsnetze), wobei zwei oder mehr Stationen (Vorrichtungen) ein gemeinsames Busübertragungsmedium teilen, im allgemeinen ein Koaxialkabel. Um über das LAN zu übertragen, wartet eine Station oder Vorrichtung auf eine Ruheperiode auf dem Bus, d. h., keine andere Station überträgt, und sendet dann seine beabsichtigte Nachricht in bit-serieller Form bei Raten von bis zu 10 Mbits/sec.
- Im Ethernet oder IEEE-System 802.3 "reisen" Nachrichten zwischen den Vorrichtungen am Netz in Paketen oder (Nachrichten-)Rahmen auf dem Netz. Ein Ethernet-Paket ist in Fig. 1 gezeigt. Beim Untersuchen des Paketes von oben nach unten kann man sehen, daß es aus einer 64 Bit Preambel, einer 48 Bit Empfangsadresse, einer 48 Bit Absenderadresse, einem 16 Bit Typenfeld, und einem Datenfeld besteht, das zwischen 46 Byte und bis zu 1500 Byte lang sein kann, wobei die letzten 4 Bytes eine zyklische Redundanz-Prüf- oder Rahmenprüffolge von 32 Bit Länge bilden. Dieses Ethernet-Nachrichtenformat bildet den Standard, der für eine weitverbreitete Realisierung der LAN-Technologie notwendig war.
- Ein wichtiger Bereich der LAN-Technologie betrifft Datenübertragungs-Prüfeinrichtungen, die allgemein als Protokollanalysatoren bekannt sind. Diese Vorrichtungen können den Verkehr auf dem LAN- oder Ethernet-Übertragungsbus überwachen sowie erzeugen und ihn dann für Kundendienstzwecke, die Unterstützung eines elektronischen Datenverarbeitungszentrums, die Forschung, Entwicklung, Herstellung, Installation und Wartung von Netzwerkkomponenten und eine allgemeine Netzwerk-Fehlersuche analysieren.
- Die Untersuchung der Felder von Ethernet-Paketen wird oft notwendig sein. Beispielsweise kann die Fehleranalyse das Erfassen aller Ethernet-Pakete im Verkehr erfordern, die bestimmte Parameter aufweisen, beispielsweise, daß jedes vierte Bit des Datenfeldes ein bestimmtes AS- CII-Zeichen ist (ASCII steht als Abkürzung für American Standard Code for Information Interchange und bezeichnet den amerikanischen Standardcode). Man kann also an Paketen interessiert sein, die Datenfelder enthalten, welche zu einem bestimmten Muster passen.
- Wie bereits bemerkt, ist die Mustererkennung die Aufgabe der Zustandsmaschinen. Herkömmliche Zustandsmaschinen sind jedoch oft unbrauchbar für die schnellen Datenerkennungsanforderungen der neuesten Ethernet-System-Protokollanalysatoren und ähnlicher Systeme. Ein Hauptdefizit ist, daß, während ein bestimmtes Muster mit einer herkömmlichen Zustandsmaschine lokalisiert werden kann, eine Veränderung der zu erkennenden Muster ein aufwendiges Redesign und einen Umbau der Zustandsmaschine erfordern würde. Eine solche Einschränkung machte die effiziente Fehleranalyse beispielsweise in Ethernet-Systemen beinahe unmöglich. Ferner erfordern unprogrammierte Sprünge oder Traps tief in das Datenfeld hinein bei einer herkömmlichen Zustandsmaschine einen übermäßigen Aufwand an Hardware.
- Die EP-A-0 124 238 beschreibt einen Schaltkreis zum Erfassen der Anwesenheit einer digitalen Wort folge in einem Datenstrom. Die Schaltung umfaßt eine Vorrichtung zum sequentiellen Lesen von Worten aus dem Datenstrom, eine Vergleichsvorrichtung zum Vergleichen gespeicherter Worte mit aus dem Datenstrom gelesenen Worten und eine Zählvorrichtung, die durch jedes aus dem Datenstrom gelesene Wort inkrementiert wird, zum Erzeugen eines Ausgangssignales zum Ansteuern von Adressenauswahlleitungen höherer Ordnung der Vergleichsvorrichtung.
- Die vorliegende Erfindung umfaßt eine digitale Bytefolge-Identifikationseinrichtung und ein Verfahren zum Identifizieren einer Byte folge in einem Datenstrom gemäß den unabhängigen Ansprüchen 1 bzw. 4.
- Das bevorzugte Ausführungsbeispiel der Erfindung könnte als Tieftrap-Maschine bezeichnet und als eine Über-Zustandsmaschine betrachtet werden, die die Beschränkungen herkömmlicher Zustandsmaschinen überwindet, insbesondere bezüglich des oben beschriebenen Ethernet-Systems, jedoch auch mit einem weiten Bereich an Anwendungsmöglichkeiten über das Ethernet-System hinaus. Die Tieftrap- Maschine führt eine komplexe Mustererkennung, ein in der Beschreibung als Filterung bezeichneter Prozeß, durch einen einzigartigen Dialog (Interaktion) zwischen Direktzugriffsspeichern (Random Access Memories; RAM) durch.
- Eine Bytefolge, wie das Datenfeld eines Ethernet-Paketes, kann von der Tieftrap-Maschine gefiltert werden, um die Anwesenheit eines oder mehrerer Muster in der Bytefolge zu ermitteln. Diese Muster werden in der Beschreibung als Filter bezeichnet. Die Bytes einer Folge werden von einer Übertragungsleitung mit einer Breite von einem Byte byteweise abgezogen und byteweise zu den Adressauswahlleitungen niedriger Ordnung eines großen Direktzugriffsspeichers geschickt, der in der Beschreibung als der COMP RAM bezeichnet ist. Gleichzeitig mit dem Ziehen jedes Bytes in die Tieftrap-Maschine wird ein Zähler inkrementiert, der dadurch jeweils der Ordinalposition des Bytes in der Bytefolge entspricht. Das Ausgangssignal des Zählers steuert nach jedem Inkrementieren die Adressenauswahlleitung eines kleineren Direktzugriffsspeichers an, der in der Beschreibung als der COUNT RAM bezeichnet ist. Der COUNT RAM reagiert ähnlich auf jede Zunahme des Zählers, indem er das Wort ausgibt, das bei der dem momentanen Zählerwert entsprechenden Adresse permanent vorhanden ist. Dieses COUNT RAM-Wort steuert dann die Adressenauswahlleitungen höherer Ordnung des COMP RAM zur selben Zeit an, zu der das richtige Byte die Adressenauswahlleitungen niedriger Ordnung des COMP RAM ansteuert. Dadurch greift jedes Byte der Folge zusammen mit seinem entsprechenden COUNT RAM-Wort auf ein bestimmtes Wort des COMP RAM zu. Dieses COMP RAM-Wort kann als ein Muster aus wahren/falschen Werten bezüglich der Erfüllung von zu erkennenden Mustern, d. h. Filtern, durch ein gegebenes Byte betrachtet werden. Dieses COMP RAM-Wort wird dann an eine Bank oder Reihe von "bei falsch hängenden", elektronischen Schaltern ausgegeben, die am Anfang jeder neuen Bytefolge auf wahr gesetzt werden. Von da an schaltet jede Bytefolge, die ein bestimmtes Filter nicht erfüllt, einen Schalter von wahr auffalsch, wobei der Schalter bis zum Ende der Bytefolge in diesem Zustand bleibt. Am Ende der Folge bestimmen also die Schalterwerte, welche Filter für diese besondere Bytefolge erfüllt waren.
- Die Tieftrap-Maschine hat also die folgenden Fähigkeiten:
- I. Sie kann mehr als ein Muster innerhalb einer einzelnen Datenfolge suchen, d. h. filtern, und aufzeichnen, welche Filter erfüllt sind und welche nicht.
- II. Sie kann eine Positionsabhängigkeit bewirken, d. h., große Teile von Datenfolgen "ignorieren" und nur andere vorgegebene Abschnitte fokussieren, d. h. einfangen. Es sei beispielsweise angenommen, daß das Muster, das erkannt werden soll, nur die Untersuchung solcher Bytes erfordert, die bestimmte vorgegebene Ordinalpositionen in dem Datenfeld eines Ethernet-Paketes belegen, beispielsweise die Bytes in den Positionen 10, 20 und 30, während alle anderen Bytes in dem Paket für das Muster irrelevant sind. Die Tieftrap-Maschine ermöglicht, nur die kritischen Bytes einzufangen und zu vergleichen und den Rest im wesentlichen zu ignorieren.
- III. Sie kann die richtige Datenfolgelänge überprüfen.
- IV. Die Tieftrap-Maschine führt all diese Funktionen mit hoher Geschwindigkeit und Effizienz aus.
- V. Schließlich ist die Tieftrap-Maschine programmierbar, so daß nicht jedes Mal, wenn neue Filter benötigt werden, ein aufwendiger Neuaufbau der Zustandsmaschine erforderlich ist. Die Tieftrap-Maschine erreicht also eine Leistungsfähigkeit und Flexibilität, welche von herkömmlichen Zustandsmaschinen unerreicht sind.
- In den Figuren zeigen:
- Fig. 1 eine schematische Darstellung eines Ethernet-Paketes
- Fig. 2 eine schematische Darstellung eines Direktzugriffspeichers, der als COMP RAM bezeichnet ist,
- Fig. 3 eine schematische Darstellung eines durch eine Daten-plus-Speicher-Abbildung angesteuerten Direktzugriffsspeichers,
- Fig. 4 eine schematische Darstellung eines Speicherabbildungs-Systemes,
- Fig. 5 eine detailliertere Darstellung eines Direktzugriffsspeichers, der als COMP RAM bezeichnet ist,
- Fig. 6 eine schematische Darstellung eines durch Daten angesteuerten Direktzugriffsspeichers,
- Fig. 7 eine detailliertere Darstellung eines durch Daten angesteuerten Direktzugriffsspeichers,
- Fig. 8 eine schematische Darstellung eines durch Daten und einen Zähler angesteuerten Direktzugriffsspeichers,
- Fig. 9 eine schematische Darstellung eines durch Daten und eine Speicherabbildung angesteuerten Direktzugriffsspeichers,
- Fig. 10 eine schematische Darstellung eines durch Daten und eine Speicherabbildung angesteuerten Direktzugriffsspeichers,
- Fig. 11 eine schematische Darstellung eines durch Daten und eine Speicherabbildung angesteuerten Direktzugriffsspeichers und
- Fig. 12 ein Blockdiagramm der bevorzugten Ausführungsform der Erfindung.
- Die Tieftrap-Maschine realisiert im allgemeinen ein schnelles Datenerkennungsschema, bei dem die Adressauswahlleitungen eines Direktzugriffsspeichers (RAM) durch die Daten angesteuert werden, die gerade untersucht werden. Ein einzelnes 8 Bit Byte kann beispielsweise einen beliebigen von 256 möglichen Werten darstellen. Ein 256 · 1 RAM kann also zum Erkennen irgendeines gegebenen Bytes verwendet werden, indem ein einzelner wahrer Wert in die RAM-Adresse geladen wird, die dem Wert des zu erkennenden Bytes entspricht, und indem in alle anderen Adressen falsche Werte geladen werden. Die Adressenauswahlleitungen des RAM können dann durch die Daten, d. h. die Bytes, angesteuert werden, nach denen gesucht wird. Dadurch greift nur das Sollbyte auf die Adresse zu, die den einzigen wahren Wert enthält, so daß das Ausgangssignal des RAM nur dann wahr ist, wenn das Sollbyte "erkannt" wurde, während es bei allen anderen Eingangssignalen falsch ist. Wenn beispielsweise das Byte FF (hex) erkannt werden soll, muß in der Adresse 255 ein wahrer Wert und in den Adressen 0 bis 254 des RAM müssen falsche Werte sein. Nur das Byte FF (hex) wird daher ein wahres Ausgangssignal erzeugen.
- Selbstverständlich stellen numerische Werte nur einen Parameter dar, nach dem ein Byte untersucht werden kann. Es können auch andere Parameter überprüft werden, beispielsweise, ob ein Byte gerade oder ungerade ist. Um gerade Bytes zu prüfen, würden bei einem 256 · 1 RAM bei allen geradzahligen Adressen wahre Werte und bei allen ungeradzahligen Adressen falsche Werte geladen werden. Das Ansteuern der Adressenauswahlleitungen eines solchen RAM mit den Bytes, nach denen gesucht wird, würde nur bei geraden Bytes ein wahres Ausgangssignal erzeugen.
- Ein einzelner 256 · 1 RAM-Bereich ist in der nachfolgenden Beschreibung als ein "Datenvergleichs-Parameter" bezeichnet. Es ist jedoch möglich, daß Datenvergleichs- Parameter verschiedene Größen haben, vorausgesetzt, daß es eine kritische Beziehung zwischen dem Datenvergleichs-Parameter und der Dateneinheit, die diesen ansteuert, gibt, so daß bei einer Dateneinheit von n Bit breite die Dimensionen ihres passenden Datenvergleichs- Parameters (2n) · 1 ist. Für Daten mit der Breite von 1 Byte, d. h. 8 Bit, hätte der passende Datenvergleichs- Parameter die Dimension 2n · 1 = 256 · 1.
- Ferner kann die Anzahl der Datenvergleichs-Parameter, nach denen für jeweils ein Byte gesucht wird, variieren. Beispielsweise kann bei Verwendung eines 256 · 8 oder eines 256 · 16 RAM nach 8 bzw. 16 Datenvergleichs-Parametern, pro Byte der Eingangsdaten parallel, gesucht werden. Zusätzlich kann eine vertikale Folge von Datenvergleich-Parametern, die in der Beschreibung als "Filter" bezeichnet ist, an eine Folge von Dateneinheiten angelegt werden.
- Die Tieftrap-Maschine nutzt die oben beschriebenen Prinzipien bei ihrer Realisierung des sogenannten Vergleichs-RAM oder COMP RAM. Um ganze Bytefolgen, und nicht nur einzelne Bytes, zu vergleichen, wird ferner die Größe des COMP RAM erweitert. Die bevorzugte Ausführungsform der Tieftrap-Maschine verwendet ein 16K · 16 COMP RAM, das, wie in Fig. 2 gezeigt, 16384 Worte von 16 Bit Länge vorsieht.
- Um den Vergleich der Bytefolgen, beispielsweise im Datenfeld eines Ethernet-Paketes, unterzubringen, werden die Adressenauswahlleitungen höherer Ordnung eines derartigen RAM durch die Ausgangssignale eines binären Zählers angesteuert, der so getaktet ist, daß er sich nach jedem Eingangsbyte erhöht, während die Adressenauswahlleitungen niedriger Ordnung nach wie vor von den einzelnen Bytes angesteuert werden. Die Zählerinkremente sind so aufgebaut, daß sie die Ordinalposition eines Bytes in einer Bytefolgen wiedergeben. Da der Zähler nach jedem Eingangsbyte, das einem Vergleichszyklus entspricht, inkrementiert wird, wird auf das COMP RAM in Segmenten von 256 Worten mit 16 Bit Länge pro Adressierbyte zugegriffen. Der COMP RAM kann daher logisch in 64 Segmente von 256 Worten pro Segment partitioniert werden, wobei jedes Segment sechzehn 256 · 1 Datenvergleichs-Parameter breit ist und wobei jedes Segment Datenvergleichs-Parameter enthält, die für ein einzelnes Byte anwendbar sind.
- Die Reihung der Segmente erlaubt ferner natürlich eine Reihung der Datenvergleichs-Parameter. Bei der bevorzugten Ausführungsform der Tieftrap-Maschine ist eine Folge solcher Datenvergleichs-Parameter, d. h. eine Spalte aus 256 · 1 Datenvergleichs-Parametern, als ein "Filter" bekannt, wobei ein einzelnes Filter an eine ganze Folge von Bytes, wie dem Datenfeld eines Ethernet-Paketes, anlegbar ist. In der Terminologie der vorliegenden Erfindung ermöglicht die 16K · 16 Organisation des COMP RAM theoretisch das parallele Anlegen von 16 Filtern an eine einzelne Bytefolge, wobei jedes Filter bis zu 64 Datenvergleichsparameter lang sein kann. D.h., theoretisch könnte man durch "Filtern" des Datenfeldes eines einzelnen Ethernet-Paketes nach 16 verschiedenen Bytemustern gleichzeitig suchen, wobei jedes Filter bis zu 64 Byte lang sein kann. (Bei der bevorzugten Ausführungsform der Erfindung ist die maximale Filterlänge jedoch 62 Byte, weil zwei Segmente des COMP RAM für spezielle Zwecke reserviert sind, die weiter unten noch beschrieben werden.)
- Die bevorzugte Ausführungsform der Erfindung erhöht ferner die Leistung der Tieftrap-Maschine durch Verwendung eines zweiten RAM, das als COUNT RAM bezeichnet ist. Der Ausgang des Zählers steuert das COUNT RAM, während der Ausgang des COUNT RAM die oberen Adressenauswahlleitungen des COMP RAM ansteuert, wie in Fig. 3 gezeigt. Das COUNT RAM dient zum Abbilden des tatsächlichen Zählwertes, der die Ordinalposition eines Bytes in einer Bytefolge wiedergibt, in einen logischen Zählwert, der als ein Adressenzeiger zu passenden Segmenten des COMP RAM dient. Ein 2K · 8 COUNT RAM kann beispielsweise 2048 tatsächliche Zählwerte auf 256 logischen Werten abbilden. Da die maximale Größe eines Ethernet-Paket-Datenfeldes 1514 Byte ist, bietet dies mehr als genug Zählwerte, um Ethernet-Pakete zu handhaben. Da ferner das COMP RAM so konfiguriert ist, daß es maximal 64 Datenvergleichs-Parameter-Segmente vorsieht, sind die 256 logischen Werte des COUNT RAM ebenfalls mehr als ausreichend.
- Die Wechselwirkung zwischen COUNT RAM und COMP RAM wird vielleicht durch eine Vorführung der Möglichkeiten der Positionsabhängigkeit der Tieftrap-Maschine am deutlichsten. Positionsabhängigkeit hat das "Einfangen" von nur den Bytes zur Folge, die bestimmte Positionen in einer Datenfolge aus Bytes besetzen, während alle anderen Bytes in der Datenfolge als "unbeachtliche" Größen "ignoriert" werden. Beispielsweise können nur die Bytes von Interesse sein, die die erste und die zehnte Position einer Datenfolge besetzen, wie in Fig. 4 gezeigt. Bei der bevorzugten Ausführungsform würden alle Bytes außer dem ersten und dem zehnten ignoriert werden, indem in ein einziges Segment des COMP RAM nur "unbeachtliche", d. h. nur wahre Werte, geladen werden. Gleichzeitig werden in das COUNT RAM Zeiger, d. h. logische Zählwerte, zu den "unbeachtlichen" Segmenten des COMP RAM bei den COUNT RAM-Adressen geladen, die den Positionen der "unbeachtlichen" Bytes in der Datenfolge entsprechen. Ähnlich, wird zum "Einfangen" und Vergleichen des ersten und zehnten Bytes mit Datenvergleichs-Parametern, die erste und die zehnte Adresse des COUNT RAM jeweils mit Zeigern zu den richtigen Segmenten des COMP RAM belegt, die die für die "eingefangenen" Bytes anwendbaren Datenvergleichs-Parameter enthalten.
- Bei der bevorzugten Ausführungsform muß ferner die Länge der Bytes jeder Datenfolge in einem letzten Vergleichszyklus überprüft werden. Dies ist notwendig, weil die bevorzugte Ausführungsform ein "wahr, bis falsch bewiesen ist"-Schema realisiert, um aufzuzeigen, welche Filter pro Datenfolge erfüllt sind. Ohne eine letzte Überprüfung der Länge der Folge, könnte die Tieftrap-Maschine ein fehlerhaftes Ausgangssignal erzeugen: Eine bestimmte Folge kann einen Anfangsteil eines gegebenen Musters, beispielsweise die ersten paar Bytes eines Filters, erfüllen und dann enden. Es wäre also keine vollständig Übereinstimmung vorhanden, aber das Ausgangssignal der Trap-Maschine wäre bei dem "wahr, bis falsch bewiesen"-Schema wahr. Ein letzter Vergleichszyklus zum Überprüfen der richtigen Länge der Folge löst dieses Problem. Bei der bevorzugten Ausführungsform ist diese Lösung realisiert, indem die Größe des COUNT RAM verdoppelt wird und ein Multiplexerinterface zwischen dem COUNT RAM und dem COMP RAM hinzugefügt ist, um zwischen einem "normalen" und dem Längenprüf-Vergleich auszuwählen.
- Während "normaler" Vergleiche steuert eine Hälfte des COUNT RAM die oberen Adressenauswahlleitungen des COMP RAM an, wie oben beschrieben. Nach dem Empfang des letzten Bytes einer Folge löst ein von einer eigenen Vorrichtung (die in der parallelen Patentanmeldung von REA- MES mit dem Titel "Real-Time End of Packet Signal Generator" beschrieben ist) erzeugtes Folgenende-Signal einen letzten Vergleichszyklus für diese Folge aus: eine Überprüfung der minimalen Länge, die notwendig ist, um jedes Filter zu befriedigen. Während dieses letzten Zyklus steuert die andere Hälfte des COUNT RAM die unteren fünf Adressenauswahlleitungen des COMP RAM an, während alle anderen Adressenleitungen des COMP RAM auf einen hohen Pegel gezogen werden, so daß auf das vierundsechzigste, d. h. das letzte, Segment des COMP RAM zugegriffen wird. Die fünf vom COUNT RAM während des Längenprüf- Zyklus angesteuerten Leitungen zeigen zu einem von 17 Worten, die Längenprüfinformation enthalten. Wenn die empfangene Datenfolge zu kurz ist, um einem der Filter zu genügen, wird das Wort adressiert, das nur falsche Werte enthält. Wenn die Folge lang genug ist, um den Anforderungen aller Filter zu genügen, wird das Wort adressiert, das nur wahre Werte enthält. Ähnlich wird, wenn die Folge die Längenkriterien einiger Filter erfüllt, auf eines der anderen fünfzehn Worte zugegriffen, die die passende Mischung aus wahren/falschen Werten enthält, welche zuvor von einem Mikroprozessor geladen wurden.
- An dieser Stelle sei bemerkt, daß nur zwei der vierundsechzig Segmente des COMP RAM reservierte Benutzungsarten haben, wie in Fig. 5 gezeigt. Nur ein Segment ist für die "unbeachtlichen" Werte reserviert, und genau ein anderes Segment für die Längenprüfinformation. Bei der bevorzugten Ausführungsform enthält das höchste Segment, das vierundsechzigste (Nr. 63), die Längenprüfinformation; das nächsthöchste, das dreiundsechzigste (Nr. 62) enthält die "unbeachtlichen", d. h. nur wahre, Werte; die übrigen Segmente, Nr. 0 bis Nr. 61, sind daher für die sechzehn Filter frei, wobei jedes bis zu zweiundsechzig Bytes, d. h. zweiundsechzig Segmente, lang sein kann.
- Schließlich müssen die Ergebnisse der "Filterung" jeder Datenfolge aufgezeichnet werden. Dies wird erreicht, indem die sechzehn Datenausgangsleitungen des COMP RAM, eine für jedes Filter, mit sechzehn elektronischen Signalspeicher-Schaltern, einer für jede Ausgangsleitung, verbunden werden. Vor jeder Datenfolge wird jeder Schalter auf wahr initialisiert. Die Schalter sind so aufgebaut, daß sie "bei falsch haften", so daß nur ein falsches Eingangssignal an einem Schalter, diesen von wahr auf falsch umschaltet, wobei er in diesem Zustand bleibt, bis er von außen auf wahr zurückgesetzt wird. Solche Schalter werden bei der bevorzugten Ausführungsform durch J-K:NICHT (J-K)-Flip-Flop-Schaltungen realisiert.
- Während der Filterung der Datenfolge erzeugt das COMP RAM nach jedem Vergleichszyklus ein Ausgangssignal, d. h., nach jedem Byte der Datenfolge und nach dem Längenprüfzyklus. Jedes Byte einer Folge, das zu keinem Filtersegment paßt, und jede Folge, die zu kurz ist, um den Anforderungen eines einzelnen Filters zu genügen, wird also ein falsches Ausgangssignal auslösen, welches wiederum die passenden Schalter von wahr auf falsch umschaltet und so aufzeichnet, welche Filter erfüllt wurden und welche nicht.
- Bei der bevorzugten Ausführungsform werden die Ergebnisse einer gefilterten Datenfolge in Form eines 16-Bit- Wortes von den Schaltern zu einem FIFO-Speicherpuffer übertragen (FIFO ist die Abkürzung für first in, first out und bezeichnet eine Methode, bei der das erste ankommende Signal auch zuerst bearbeitet wird.), die Schalter werden auf Null zurückgesetzt, der Zähler für das COUNT RAM wird auf Null zurückgesetzt, und die Tieftrap-Maschine ist dann für die nächste Datenfolge bereit.
- Es sei bemerkt, daß, obwohl beim bevorzugten Ausführungsbeispiel der Erfindung angenommen wird, daß einzelne Dateneinheiten der Speicher-Datensequenzen ein Byte, d. h. 8 Bit pro Dateneinheit, breit sind, die Erfindung an Dateneinheiten beliebiger Breite angepaßt werden kann. Eine solche Anpassung muß lediglich bestimmte kritische Beziehungen zwischen den Komponenten der vorliegenden Erfindung aufrechterhalten.
- Zunächst ist es notwendig, daß die Beziehung zwischen der Bitbreite einer Dateneinheit und einem einzelnen Datenvergleichsparameter-Abschnitt des COMP RAM (und also eines einzelnen Segmentes des COMP RAM) so gewählt ist, daß die Anzahl der RAM-Adressen, die an eine einzige Dateneinheit anlegbar sind, gleich der Größe von ist, wobei n ein Exponent ist, der gleich der Anzahl der Bits in der Dateneinheit ist, wie am Anfang der Beschreibung erläutert. Für eine Dateneinheit von 1 Bit wird also ein 2 · 1 Datenvergleichs-Parameter benötigt; für eine Dateneinheit von 2 Bit wird ein 4 · 1 Datenvergleichs-Parameter benötigt; für eine Dateneinheit von 3 Bit wird ein 8 · 1 Datenvergleichsparameter benötigt und so weiter. Für eine 1 Byte breite Dateneinheit, d. h. 8 Bit, wird ein 256 · 1 Datenvergleichs-Parameter benötigt.
- Ferner muß ein einzelnes Segment des COMP RAM nicht genau 16 Datenvergleichs-Parameter breit sein. Es kann je nach Anforderungen an das Design unterschiedliche Breiten aufweisen. Die einzige Beschränkung liegt darin, daß die Anzahl der Ausgangsschalter des COMP RAM gleich der Datenvergleichs-Parameter-Breite eines COMP RAM-Segmentes ist, d. h., ein Schalter pro Filter.
- Ebenso muß die Länge des COMP RAM nicht auf 64 Datenvergleichs-Parameter begrenzt sein, entsprechend der 64 Segmente der Datenvergleichs-Parameter. Das COMP RAM kann auch eine andere Größe haben. Es muß jedoch wenigstens ein Segment den "unbeachtlichen", d. h. nur wahren, Werten zugeordnet sein, wenn eine Positionsabhängigkeit gewünscht wird, und mindestens ein anderes muß der Längenprüfinformation zugeordnet sein, wenn die Datensequenzen längenvariabel sind.
- Ferner ist die Größe des COUNT RAM, das für die Speicherabbildung einzelner Dateneinheiten auf bestimmte Segmente des COMP RAM verwendet wird, nicht auf die Dimension von 4K · 8 gemäß der bevorzugten Ausführungsform beschränkt. Seine Größe kann variieren, es muß jedoch mindestens so viele Worte, d. h. Adressen, enthalten, wie die Anzahl von Dateneinheiten in der größtmöglichen, zu erwartenden Datenfolge plus zusätzliche Adressen für den Längenprüfzyklus, wie weiter unten beschrieben ist. Ähnlich muß jedes Wort des COUNT RAM mindestens ausreichend viele Bits haben, um eine Zahl darzustellen, die gleich der Anzahl der Segmente der Datenvergleichs-Parameter im COMP RAM ist. Bei der bevorzugten Ausführungsform wurde ein 4K · 8 COUNT RAM verwendet, weil Ethernet-Datenfolgen untergebracht werden sollten, die maximal 1514 Dateneinheiten lang sind, und weil es 64 Segmente im COMP RAM gibt.
- Auch sind die richtigen Zähler und COMP RAM-Größen kritisch für den Datenfolge-Längenprüfzyklus, auch wenn sie nicht fest eingestellt sind. Bei der bevorzugten Ausführungsform steuert die obere Hälfte des COUNT RAM während "normaler" Dateneinheit-Vergleiche die Adressenauswahlleitungen des COMP RAM an. Eine Hälfte des COUNT RAM hat also mindestens so viele Worte, d. h. Adressen, wie die Anzahl der Dateneinheiten in der größtmöglichen, erwarteten Datenfolge, die bei Ethernet-Systemen 1514 Byte ist. Andererseits steuert während des letzten Längenprüfzyklus die untere Hälfte des COUNT RAM die unteren fünf Adressenleitungen des COMP RAM an, um auf die Längenprüfinformations-Worte zuzugreifen, während die übrigen Adressenauswahlleitungen des COMP RAM durch den Multiplexer, der eine Schnittstelle zwischen dem COUNT RAM und dem COMP RAM bildet, auf einen hohen Pegel gezogen werden. Der Zähler, der das COUNT RAM ansteuert, muß also groß genug sein, um bis zu den höchstmöglichen Ordinalpositionen der Dateneinheiten von ankommenden Datenfolgen zu zählen. Mindestens muß der Zähler genügend Bits haben, um eine Zahl darzustellen, die so groß wie die höchste Adresse im COUNT RAM geteilt durch zwei ist.
- Es sei ferner bemerkt, daß die "bei falsch haftenden" Schalter auch anders als durch die J-K-Flip-Flop-Schaltungen der bevorzugten Ausführungsform realisiert sein können. Es ist lediglich erforderlich, daß ein schneller Schalter die Eigenschaft hat, bei dem falschen Wert zu bleiben.
- Die Prinzipien, die zu einer vollständigen Realisierung einer kompletten Tieftrap-Maschine führen, sind im folgenden mit Bezug auf die Figuren erläutert. In Fig. 6 bezeichnet Bezugszeichen 200 ein Datenbyte, das parallel auf acht Adressenauswahlleitungen eines 256 · 1 Direktzugriffsspeichers (RAM) 210 über einen Kanal 205 ausgegeben werden soll. Das niederwertigste Bit des Bytes steuert die niederwertigste Adressenauswahlleitung an, das zweitniederwertigste Bit steuert die zweitniederwertigste Adressenauswahlleitung an, usw., bis jedes Bit des Bytes seiner Adressenauswahlleitung entsprechender Ordnung zugeordnet ist.
- Das 256 · 1 RAM kann zum "Erkennen" eines gegebenen Bytes verwendet werden, indem ein einzelner wahrer Wert bei der Adresse geladen wird, die dem Wert des zu erkennenden Bytes entspricht, und falsche Werte bei den übrigen 255 Adressen geladen werden. In diesem Beispiel soll angenommen werden, daß "1" einen wahren Wert und "0" einen falschen Wert darstellt, wobei die umgekehrte Vereinbarung äquivalent wäre, wenn sie durchgängig angewendet würde. Durch Ansteuern der Adressenauswahlleitungen des RAM mit den zu untersuchenden Dateneinheiten, d. h. Bytes, gibt das RAM einen wahren Wert über die Datenausgangsleitung 215 nur dann aus, wenn das Soll-Byte auftritt, und es wird immer sonst falsche Werte ausgeben. In Fig. 6 ist dieses Prinzip gezeigt, wobei ein wahrer Wert bei Adresse 255 und falsche Werte bei Adressen 0 bis 254 vorgesehen sind. Es wird also nur ein Byte, das nur aus Einsen besteht, ein wahres Ausgangssignal vom RAM 210 auslösen, wobei im wesentlichen signalisiert wird, daß das Soll-Byte erkannt wurde. In der Terminologie des bevorzugten Ausführungsbeispiels heißt das, ein einzelner 256 · 1 Bereich des RAM wird als ein Datenvergleichs-Paratmer bezeichnet.
- In Fig. 7 ist ein 256 · 16 RAM 235 gezeigt, woraus ersichtlich ist, daß mehr als ein Datenvergleichs-Parameter bei einer einzelnen Dateneinheit angewendet werden kann. Bei diesem Aufbau können 16 Datenvergleichs-Parameter parallel an eine einzelne Dateneinheit angelegt werden. Auch hier wird die Dateneinheit, d. h. das Byte, 252 über Dateneingangsleitungen 230 zu den Adressenauswahlleitungen des RAM 235 übergeben. Im RAM 235 stellen jede der sechzehn 256 · 1 Logikabschnitte des RAM einen einzelnen Datenvergleichs-Parameter dar, wobei, wie gesagt, alle sechzehn parallel an jedes ankommende Byte angelegt werden. Um beispielsweise einen bestimmten Byte-Wert zu überprüfen, und um zu überprüfen, ob Bytes gerade oder ungerade sind, wird ein wahrer Wert bei der Adresse eingesetzt, die den gewünschten numerischen Werten entspricht, und falsche Werte bei den verbleibenden Adressen des ersten 256 · 1 Datenvergleichs-Parameters, während wahre Werte bei allen geradzahligen Adressen und falsche Werte bei allen ungeradzahligen Adressen des nächsten Datenvergleichs-Parameters eingesetzt werden. Ähnlich kann byteweise nach weiteren Parametern gesucht werden, indem die verbleibenden 14 Datenvergleichs-Parameter mit geeigneten wahren/falschen Werten auf geeignete Weise geladen werden. Bei diesem Beispiel sei wiederum angenommen, daß "1" einen wahren Wert und "0" einen falschen Wert bezeichnet, wobei die umgekehrte Zuordnung äquivalent wäre, wenn sie durchgängig angewendet würde.
- Wie bereits gesagt, steuert dann eine Dateneinheit, wie das Byte 225, die Adressenauswahlleitungen des 256 · 16 RAM an und induziert ein 16-Bit-Wort-Ausgangssignal auf den Datenausgangsleitungen 240, wobei jedes Bit des 16- Bit-Wort-Ausgangssignals einem einzelnen Datenvergleichs-Parameter entspricht. Das 16 Bit Muster aus wahren/falschen Werten für jedes 16-Bit-Wort-Ausgangssignal des RAM 235 gibt an, welche Datenvergleichs-Parameter für ein einzelnes Byte des Eingangssignals erfüllt wurden.
- In Fig. 8 ist eine weitere Ausführungsform realisiert, um Bytefolgen zu vergleichen. Dateneinheiten, d. h. Bytes einer Datenfolge 255, und das Ausgangssignal eines Zählers 245 werden zum Ansteuern der niederwertigen Adressenauswahlleitungen 265 bzw. der hochwertigen Adressenauswahlleitungen 270 des RAM 260, welches das COMP RAM ist, verwendet. Der Zähler 245 wird über eine Vorrichtung 250 getaktet, so daß er sich bei der Ankunft jedes neuen Bytes in der Datenfolge 255 um 1 zu erhöht. Jede Dateneinheit, d. h. Byte, der Datenfolge 255 greift dabei also auf ein anderes Segment des COMP RAM 260 zu. Das Byte Nr. 0 greift auf das Segment Nr. 0 zu und wird mit dem Datenvergleichs-Parameter im Segment Nr. 1 verglichen, und so weiter für jedes Byte der Datenfolge.
- Ähnlich wird die gleichzeitige Ankunft eines Bytes und seines zugeordneten Zählwertes bei den Adressenauswahlleitungen des COMP RAM 260 ein 16-Bit-Wort-Ausgangssignal vom COMP RAM 260 für jedes Byte des Eingangssignales erzeugen, wobei das 16-Bit-Wort-Ausgangssignal angibt, welche Datenvergleichs-Parameter für jedes Byte der Folge erfüllt wurden. Das 16-Bit-Wort-Ausgangssignal geht parallel über einen Kanal 275 zu einer Reihe 280 aus 16 J-K-Flip-Flops, ein J-K-Flip-Flop für jede Bit Position des Ausgangswortes.
- Die 16 J-K-Flip-Flops werden am Anfang beim Beginn einer ankommenden Datenfolge auf wahr eingestellt. Die J-K- Flip-Flops sind so ausgelegt, daß sie, einmal auf wahr eingestellt, nur bei einem falschen Eingangssignal auf falsch umschalten und in dem falschen Zustand bleiben, bis sie von außen auf wahr zurückgesetzt werden. Es schalten also nur falsche Bits in dem 16-Bit-Wort-Ausgangssignal des RAM ihre jeweiligen J-K-Flip-Flops auf falsch um.
- Jedes Bit eines solchen Ausgangswortes entspricht den Ergebnissen des Vergleichs eines einzelnen Bytes der Datenfolge mit einem einzelnen Patenvergleichs-Parameters des COMP RAM 260. Ähnlich entspricht jedes 16 Bit Ausgangssignalwort dem Ergebnis des Vergleichs eines einzelnen Bytes der Datenfolge mit einem einzelnen Segment, d. h. einem 256 · 16 Abschnitt, des RAM 260. Schließlich wird jedes 16 Bit Ausgangssignalwort, eines für jedes Byte der Datenfolge, parallel an die Reihe 280 der 16 J-K-Flip-Flops angelegt. Wie oben beschrieben, schalten falsche Bits in Ausgangssignalworten ihre zugeordneten J-K-Flip-Flops von wahr auf falsch um, und diese Flip-Flops bleiben im falschen Zustand, bis sie vor einer neuen Datenfolge von außen auf wahr zurückgesetzt werden. Am Ende einer Datenfolge hält die Reihe 280 der 16 J-K-Flip-Flops ein Muster aus wahren/falschen Werten, die dem Ergebnis des Vergleichs der gesamten Datenfolge mit dem gesamten COMP RAM (260)-System aus 16 parallelen, vertikalen Folgen von Datenvergleichs-Parametern, d. h. den 16 Filtern, entspricht.
- Zwei solche Filter 285 und 290 sind in Fig. 8 angegeben. Das RAM 260 umfaßt also 16 Filter, und es gibt ein J-K- Flip-Flop pro Filter. Jedes J-K-Flip-Flop hält daher schließlich die Ergebnisse des Vergleiches einer gesamten Byte-Datenfolge mit einem einzelnen Filter.
- In Fig. 9 ist eine weitere Ausführungsform realisiert, bei der eine Speicherabbildung bestimmter Bytes einer Datenfolge auf bestimmte Segmente des COMP RAM durchgeführt werden kann. Wie oben beschrieben, werden Dateneinheiten, d. h. Bytes, einer Datenfolge 310 verwendet, um die niederwertigen Adressenauswahlleitungen eines COMP RAM 340 anzusteuern. Gleichzeitig wird ein Zähler 300 über eine Vorrichtung 305 getaktet, um sich bei jedem Byte der Datenfolge 310 um Eins zu erhöhen. Das Ausgangssignal des Zählers 300 steuert dann Adressenauswahlleitungen 315 eines COUNT RAM 325 an. Abhängig von den Zählerwert-Eingangssignalen gibt das COUNT RAM 325 Worte aus, die die höherwertigen Adressenauswahlleitungen des COMP RAM 340 ansteuern. Das System wird so getaktet, daß die Zählerwerte des Zählers 300 den Ordinalpositionen (in der Datenfolge 310) der die niederwertigen Adressenauswahlleitungen 320 des COMP RAM 340 ansteuernden Bytes entsprechen. Ein Byte der Datenfolge 310 und sein entsprechendes, durch den Zählerwert angesteuertes COUNT RAM-Wort treffen also gleichzeitig bei den niederwertigen bzw. den höherwertigen Adressenauswahlleitungen des COMP RAM 340 an. Die Worte des COUNT RAM dienen also als Zeiger zu bestimmten Segmenten des COMP RAM 340, während die Bytes der Datenfolge 310 als Zeiger zu bestimmten Worten innerhalb dieser Segmente dienen.
- In Zusammenfassung heißt das, der Zähler 300 wird so getaktet, daß er den Ordinalpositionen von Dateneinheiten, d. h. Bytes, in der Datenfolge 310 entsprechende Zählerwerte ausgibt. Die Zählerwerte entsprechen wiederum Adressen im COUNT RAM 325. Bei jeder Adresse liegt ein Wort, das zu einem bestimmten Segment des COMP RAM 340 zeigt, abhängig davon, welches Byte in der Datenfolge 310 momentan verarbeitet wird. Im Fall von Fig. 9, kann man beispielsweise sehen, daß basierend auf den Worten im COUNT RAM 325 das Byte Nr. 0 der Datensequenz 310 auf dem Segment Nr. 0 des COMP RAM 340 abgebildet wird; das Byte Nr. 1 wird auf dem Segment Nr. 1 abgebildet; das Byte Nr. 2 wird auf dem Segment Nr. 2 abgebildet; usw. Schließlich induziert, wie weiter oben erläutert, jedes Byte der Datenfolge 310 zusammen mit seinem zugeordneten COUNT RAM-Wort ein 16 Bit COMP RAM- Wort, das ausgegeben und über Datenausgangsleitungen 345 an die 16 J-K-Flip-Flops einer Reihe 350 übergeben wird.
- In Fig. 10 ist eine weitere Ausführungsform realisiert, bei der vorgesehen ist, bestimmte Teile einer Datenfolge wirksam zu ignorieren und die anderen zu fokussieren. Wie bereits erläutert, ist eine Hauptaufgabe der vorliegenden Erfindung die Erkennung und/oder der Vergleich ganzer Datenfolgen; in den meisten Fällen muß jedoch nicht jede Dateneinheit, d. h. jedes Byte, einer Datenfolge untersucht werden. Beispielsweise können nur die eine bestimmte Ordinalposition in einer Datenfolge besetzenden Bytes von Interesse sein, während die übrigen Bytes in der Folge als "unwesentliche" Größen ignoriert werden können, wie bei der Diskussion des sogenannten Positionsabhängigkeits-Merkmals der Erfindung erläutert wurde.
- Positionsabhängigkeit wird auf die in Fig. 10 gezeigte Weise erreicht. In Fig. 10 ist, wie in Fig. 9, ein Speicherabbildungs-Schema realisiert. Dateneinheiten, d. h. Bytes, einer Datenfolge 410 steuern die niederwertigen Adressenauswahlleitungen eines COMP RAM 435 an. Zusätzlich wird ein Zähler 400 über eine Vorrichtung 405 getaktet, um sich bei jedem Byte der Datenfolge 410 um Eins zu erhöhen. Das Ausgangssignal des Zählers 400 steuert dann die Adressenauswahlleitung 415 eines COUNT RAM 425 an. Nach diesen Zählerwert-Eingaben gibt das COUNT RAM 425 Worte aus, die bei den Adressen, auf die zugegriffen wird, resident sind, und die die höherwertigen Adressenauswahlleitungen 430 des COMP RAM 435 ansteuern. Ein Byte der Datenfolge 410 und sein jeweiliges durch den Zählerwert angesteuertes COUNT RAM-Wort treffen also gleichzeitig bei den niederwertigen bzw. höherwertigen Adressenauswahlleitungen des COMP RAM 435 ein. Die COUNT RAM-Worte dienen also als Zeiger zu bestimmten Segmenten des COMP RAM, während die Bytes der Datenfolge 410 als Zeiger zu bestimmten Worten innerhalb dieser Segmente dienen.
- Der Zähler 400 wird daher so getaktet, daß er Zählerwerte ausgibt, die den Ordinalposition von Dateneinheiten in der Datenfolge 410 entsprechen. Ähnlich entsprechen die Zählerwerte Adressen im COUNT RAM 425. Bei allen derartigen Adressen ist ein Wort, das zu einem bestimmten Segment des COMP RAM 435 zeigt, abhängig davon, welches Byte in der Datenfolge 410 momentan verarbeitet wird. So wie auch bei Fig. 9, sei mit Bezug auf Fig. 10 erwähnt, daß jedes Byte der Datenfolge 410 zusammen mit seinem jeweiligen COUNT RAM-Wort, die Ausgabe eines 16 Bit COMP RAM-Wortes über Datenausgangsleitungen 440 zu den 16 J-K-Flip-Flops einer Reihe 445 induziert.
- Wie bereits erwähnt, kann es jedoch sein, daß nicht alle Bytes einer Datenfolge von Interesse sind. Es sei beispielsweise angenommen, daß nur das erste und das zehnte Byte einer Datenfolge von Interesse sind, während die übrigen Bytes "unbeachtliche" Größen darstellen. Alle Bytes, außer dem ersten und dem zehnten, können dann "ignoriert" werden. Dies kann auf die in Fig. 10 gezeigte Weise erreicht werden, bei der die Bytes Nr. 0 und Nr. 9 von Interesse sind, während die Bytes Nr. 1 bis Nr. 8 als "unbeachtliche" Größen ignoriert werden sollen.
- Es sei bemerkt, daß in einem Segment des COMP RAM 435, dem Segment Nr. 62, nur wahre Werte geladen sind. (In diesem Beispiel sei angenommen, daß "1" einen wahren Wert und "0" einen falschen Wert darstellt, obwohl die umgekehrte Vereinbarung äquivalent wirken würde, wenn sie durchgehend angewandt würde.) Wie oben beschrieben, realisiert die vorliegende Erfindung ein "wahr, bis falsch bewiesen ist"-Schema, bei dem die J-K-Flip-Flops am Anfang alle auf wahr gesetzt werden. Die J-K-Flip- Flop-Schaltungen sind so aufgebaut, daß, wenn sie einmal auf wahr gesetzt sind, nur ein falsches Eingangssignal ein Umschalten in einen falschen Zustand bewirkt, und sie in diesem Zustand bleiben, bis sie von außen auf wahr zurückgesetzt werden. Unabhängig davon, in welchem Zustand die J-K-Flip-Flops sind, wird dieser Zustand von solchen Eingangssignalen nicht beeinflußt, die nur aus wahren Werten bestehen, wie die Worte des Segmentes Nr. 62 des COMP RAM 435. In der Terminologie der vorliegenden Erfindung ist das Segment Nr. 62 als das "unbeachtliche" Segment bezeichnet.
- Wie in Fig. 10 gezeigt, können also die Bytes Nr. 1 bis Nr. 8 in der Datenfolge 410 als "unbeachtliche" Größen ignoriert werden, indem in das COUNT RAM 425 bei den Adressen, die Ordinalpositionen der "unbeachtlichen" Bytes in der Datenfolge 410 entsprechen, Worte geladen werden, die zu dem "unbeachtlichen" Segment, Nr. 62, des COMP RAM 435, zeigen. Alle "unbeachtlichen" Bytes in der Datenfolge 410 werden daher COMP RAM-Ausgangssignalworte aus dem "unbeachtlichen" Segment induzieren, das nur aus wahren Werten besteht, wodurch der Zustand des J-K-Flip- Flops nicht beeinflußt wird.
- Ähnlich können die interessierenden Bytes, im Beispiel Bytes Nr. 0 und Nr. 9, aufanderen Segmenten des COMP RAM abgebildet werden, indem zu anderen Segmenten zeigende Worte bei deren Ordinalpositionen entsprechenden Adressen in das COUNT RAM geladen werden. In dem Beispiel von Fig. 10 soll das Byte Nr. 0 auf das Segment Nr. 0 des COMP RAM abgebildet werden, und das Byte Nr. 9 wird auf das Segment Nr. 1 abgebildet.
- Die interessierenden Bytes, Nr. 0 und Nr. 9 in Fig. 10, werden also auf Segmente des COMP RAM abgebildet, die die passenden Datenvergleichs-Parameter enthalten. Inzwischen werden die verbleibenden "unbeachtlichen" Bytes, Nr. 1 bis Nr. 8, auf das "unbeachtliche" Segment abgebildet, das nur wahre Werte enthält.
- Da das bevorzugte Ausführungsbeispiel ein "wahr, bis falsch bewiesen ist"-Schema verwendet, muß schließlich die Möglichkeit eines falschen Ausgangssignals betrachtet werden. Dies könnte auftreten, wenn eine Datenfolge den Anforderungen der ersten paar Segmente eines COMP RAM-Filters genügt und dann endet. Das Ausgangssignal der Trap-Maschine wäre dann wahr, aber die Datenfolge wäre zu kurz. Das bevorzugte Ausführungsbeispiel löst dieses Problem, indem es einen letzten Vergleichszyklus durchführt, um die richtige Länge der Datenfolge zu überprüfen.
- In Fig. 11 ist eine weitere Ausführungsform realisiert, die den letzten Vergleichszyklus umfaßt, um die richtige Länge der Datenfolge zu überprüfen. Nach dem Durchgang des letzten Bytes der Datenfolge 515 wird ein Ende-der- Folge-Signal, das von einer eigenen Vorrichtung 510 (die in der parallelen Anmeldung von Reames mit dem Titel "Real Time End of Packet Signal Generator" beschrieben ist) erzeugt wird, an einen Zähler 505 und einen Multiplexer (MUX) 535 über Kanäle 500 bzw. 512 übergeben.
- Vor dem Erzeugen dieses Folgenende-Signals arbeitet das System von Fig. 11 genauso wie das System von Fig. 10. Auf das Folgenende-Signal hin werden jedoch die unteren fünf Adressenauswahlleitungen eines COMP RAM 545 durch Worte angesteuert, die allein von der unteren Hälfte eines COUNT RAM 525 abgeleitet sind. Gleichzeitig werden die verbleibenden Adressenauswahlleitungen durch den Multiplexer 535 auf einen hohen Pegel gezogen, wodurch nur auf das höchste, d. h. das vierundsechzigste, Segment des COMP RAM zugegriffen wird. Es sei bemerkt, daß die Bits des Zählers 505 eine Zahl darstellen, die gleich der Länge der Datenfolge 515 in Dateneinheiten, d. h. Bytes, ist, bevor der Zähler zurückgesetzt wird. Basierend auf dieser Zahl werden also bestimmte im voraus ermittelte Adressenauswahlleitungen des COUNT RAM angesteuert, so daß auf ein zu dieser bestimmten Längenzahl passendes COUNT RAM-Wort zugegriffen wird.
- Dieses COUNT RAM-Wort steuert dann die unteren fünf Adressenauswahlleitungen an. Die nun durch das COUNT RAM angesteuerten fünf Adressenauswahlleitungen zeigen zu einer von siebzehn (17 = n + 1, wobei n = die Anzahl der Filter) Adressen in dem vierundsechzigsten Segment des COMP RAM, welches 16-Bit-Worte mit der Längeninformation enthält. Wenn die empfangene Datenfolge 515 zu kurz ist, um einem der Filter zu genügen, wird auf ein aus nur falschen Werten bestehendes Wort zugegriffen. Wenn die empfangene Datenfolge lang genug ist, um allen Filtern zu genügen, wird auf ein aus nur wahren Werten bestehendes Wort zugegriffen. Wenn die Datenfolge den Längenkriterien einiger, jedoch nicht aller Filter genügt, wird auf eines der anderen 15 Worte zugegriffen, die ein Muster aus wahren/falschen Werten wiedergeben, das zuvor mittels eines Mikroprozessors geladen wurde, und das den Filtern entspricht, deren Anforderungen erfüllt wurden. (Auch bei Fig. 11 wird angenommen, daß "1" einen wahren Wert und "0" einen falschen Wert darstellt, wobei die umgekehrte Vereinbarung äquivalent wirkend wäre, wenn sie durchgängig angewandt würde.)
- Das passende COMP RAM-Längenprüfwort, auf das so zugegriffen wurde, wird dann über einen Kanal 550 an die 16 J-K-Flip-Flops einer Reihe 555 ausgegeben. Dieses Wort repräsentiert den letzten Vergleichszyklus für die Datenfolge 515. Falsche Bits in dem Wort werden ihre jeweiligen J-K-Flip-Flops umschalten, vorausgesetzt, daß das Flip-Flop nicht schon während eines vorherigen Byte- Vergleichszyklus umgeschaltet wurde. Schließlich enthalten zu diesem Zeitpunkt die J-K-Flip-Flops der Reihe 555 ein 16 Bit Muster aus wahren/falschen Werten, welches die Ergebnisse der Filterung der Datenfolge 515 darstellt. Jedes wahre Bit, das heißt J-K-Flip-Flop, gibt an, daß die Datenfolge 515 die Anforderungen des jeweiligen Filters erfüllt hat, während jedes falsche Bit angibt, daß die Datenfolge 515 die Anforderungen seines zugeordneten Filters nicht erfüllt hat. Dieses 16-Bit- Wort, das in den 16 J-K-Flip-Flops der Reihe 555 gehalten wird, stellt schließlich das Ergebnis der Filterung der Datenfolge 515 dar. Dieses Bit-Ergebnis kann nun von der Reihe 515 weitergeschaltet und zur weiteren Verwendung an andere Vorrichtung übergeben werden.
- In Fig. 12 ist ein vollständiges Diagramm der vorliegenden Erfindung gezeigt. Bezugszeichen 10 bezeichnet einen Systembus, auf dem die Datenfolge in Einheiten von der Breite eines Bytes an der erfindungsgemäßen Vorrichtung vorbei umlaufen, so daß die Datenfolge, beispielsweise von einem LAN-Bus abgezogene Ethernet-Pakete, byteweise gelesen und weitergeschaltet werden kann. Nach den von einer Systembus-Schnittstelleneinheit 15 (die Standardkomponenten enthält, wie ein Systembus-Interface, Signalspeicher-Schaltern, Adressenkomparatoren und eine Kontroller-Zustandsmaschine) durchgeführten Lese- und Schaltfunktionen werden die Bytes einer Datenfolge byteweise über einen Kanal 55, durch einen Multiplexer 30 über einen Kanal 80 zu den niederwertigen Adressenauswahlleitungen eines statischen Direktzugriffsspeichers (SRAM) 35 übergeben. SRAM 35 ist der COMP RAM.
- Gleichzeitig erzeugt die Systembus-Schnittstelleneinheit 15 über Kanäle 60 und 65 getaktete Steuersignale. Die Steuersignale treffen mit dem Lesen und Weiterschalten von Bytes der Systembus-Schnittstelleneinheit zusammen, so daß die Steuersignale byteweise über Steuerleitungen 60 zu einem binären Zähler 20, gleichzeitig mit dem Durchgang von Bytes durch den Datenkanal 55, übergeben werden können.
- Der binäre Zähler 20 wird dadurch getaktet, so daß er sich mit der Abgabe jedes Bytes an die Trap-Maschine um Eins erhöht und dabei die Ordinalposition jedes Bytes in einer Bytefolge zählt.
- Zusätzlich wird der momentane Zählwert des binären Zählers über Zähler-Ausgangsleitungen 70 an Adressenauswahlleitungen des SRAM 25 übergeben. SRAM 25 ist der COUNT RAM. Die Zählwerte des binären Zählers 20 entsprechen also direkt den Adressen des COUNT RAM, bei denen vorgegebene residente binäre Worte gelesen werden. Die COUNT RAM-Worte, auf die so zugegriffen wird, werden über COUNT RAM-Datenausgangsleitungen, über einen Kanal 75, durch den Multiplexer 30, über einen Kanal 80 zu den höherwertigen Adressenauswahlleitungen des COMP RAM übergeben.
- Die Kontroller-Zustandsmaschine innerhalb der Systembus- Schnittstelleneinheit 15 ist so aufgebaut, daß sie Steuer- und/oder Taktsignale über Kanäle 60, 65, 100, 105 und 110 ausgibt, so daß ein einzelnes Byte und sein zugeordnetes COUNT RAM-Wort bei den Adressenauswahlleitungen des SRAM 35, dem COUNT RAM, gleichzeitig ankommen, so daß einzelne Bytes die niederwertigen Adressenauswahlleitungen ansteuern, während ihre entsprechenden COUNT RAM-Worte die höherwertigen Adressenauswahlleitungen ansteuern.
- Die so an die COMP RAM-Adressenauswahlleitungen übergebenen Datenbyte-plus-COUNT RAM-Signale greifen auf bestimmte 16-Bit-Worte im COMP RAM zu. Jedes COMP RAM- Wort, auf das auf diese Weise zugegriffen wird, wird dann über COMP RAM-Datenausgangsleitungen, über Kanal 85, an eine Reihe 40, die aus 16 J-K-Flip-Flops besteht, ausgegeben. Es gibt ein J-K-Flip-Flop pro COMP RAM-Datenausgangsleitung oder entsprechend pro Bit jedes COMP RAM-Wortes.
- Die J-K-Flip-Flops werden am Anfang durch Steuersignale, die über Kanäle 60, 65 und 120 von der Systembus- Schnittstelleneinheit 15 ausgegeben werden, auf wahr gesetzt, bevor das erste Byte einer Datenfolge empfangen wird. Die einzelnen Bits des COMP RAM-Wortes dienen dann als Eingangssignale für ihre jeweiligen einzelnen J-K- Flip-Flops. Die J-K-Flip-Flop-Schaltung ist so aufgebaut, daß, wenn sie einmal auf wahr eingestellt ist, nur ein falsches Eingangssignal das Flip-Flop in einen falschen Zustand umschaltet, in welchem es bleibt, bis es von außen auf wahr zurückgesetzt wird, wodurch das oben beschriebene "wahr, bis falsch bewiesen ist"-Schema realisiert ist.
- Nach dem letzten Byte einer Datenfolge empfängt die Systembus-Schnittstelleneinheit ein Folgenende-Signal, das von einer eigenen Vorrichtung erzeugt wurde (die in der parallelen Anmeldung von REAMES mit dem Titel "Real Time End of Packet Signal Generator" beschrieben ist). Beim Empfang dieses Signales schickt die Systembus-Schnittstelleneinheit über Kanäle 60, 65, 100, 105, 110 und 115 Steuersignale zum Zähler 20, zum COUNT RAM, zur MUX 30 und zum COMP RAM. Während dieser letzten Phase steuert die andere Hälfte des SRAM 25, das COUNT RAM, die unteren fünf Adressenauswahlleitungen des SRAM 35, dem COMP RAM, an, während die verbleibenden Adressenauswahlleitungen auf einen hohen Pegel gezogen werden, wodurch auf den letzten Abschnitt des COMP RAM zugegriffen wird. Während das höchstwertige Bit des Zählers 20 steuert, auf welche Hälfte des COUNT RAM zugegriffen wird, entsprechend die rechts vom höchstwertigen Bit liegenden Bits einer Zahl, die gleich der Länge der Datenfolge in Bytes ist, bevor der Zähler zurückgesetzt wird. Basierend auf dieser Längenzahl werden also bestimmte, im voraus ermittelte COUNT RAM-Adressenauswahlleitungen angesteuert, so daß auf das für diese bestimmte Längenzahl passende COUNT RAM-Wort zugegriffen wird. Dieses COUNT RAM-Wort steuert die unteren fünf Adressenauswahlleitungen des COMP RAM an. Die nun durch das COUNT RAM angesteuerten fünf Adressenauswahlleitungen zeigen auf einen der 17 Adressen in dem vierzehnten Abschnitt des COMP RAM, welches 16-Bit-Worte mit Längeninformation enthält. Wenn die empfangene Datenfolge zu kurz ist, um den Anforderungen der Filter zu genügen, wird auf das nur aus falschen Werten bestehende Wort zugegriffen. Wenn die empfangene Datenfolge lang genug ist, um den Anforderungen aller Filter zu genügen, wird auf das nur aus wahren Werten bestehende Wort zugegriffen. Wenn die Datenfolge die Längenkriterien eines oder mehrerer, jedoch nicht aller Filter erfüllt, wird auf eines der anderen 15 Worte zugegriffen, welche Muster aus wahren/falschen Werten wiedergeben, die zuvor von einem Mikroprozessor geladen wurden, und den Filtern entsprechen, deren Anforderungen erfüllt wurden.
- Das richtige COMP RAM-Längenprüfwort, auf das so zugegriffen wurde, wird dann über Kanal 85 an die J-K-Flip- Flops der Reihe 40 ausgegeben. Dieses Wort stellt den letzten Vergleichszyklus für diese Datenfolge dar. Alle falschen Bits in dem Wort schalten ihre zugeordneten J- K-Flip-Flops um, vorausgesetzt, daß die jeweiligen Flip- Flops nicht bereits während vorhergehender Byte-Vergleichszyklen umgeschaltet wurden, die für diese Datenfolge relevant waren. Zu diesem Zeitpunkt halten die J- K-Flip-FLops schließlich ein 16-Bit-Muster aus wahren/falschen Werten, die die Ergebnisse der Filterung einer einzelnen Datenfolge repräsentieren. Jedes wahre Bit, d. h. J-K-Flip-Flop, gibt an, daß die Anforderungen seines zugeordneten Filters von der Datenfolge erfüllt wurden.
- Nach den von der Systembus-Schnittstelleneinheit 15 über die Kanäle 60, 65 und 125 geschickten Steuersignalen kann also dieses endgültige 16 Bit Ergebnis, das die Filterungsergebnisse für eine einzelne Datenfolge enthält, von den 16 J-K-Flip-Flops der Reihe 40 über einen Kanal 90 in den FIFO-Puffer 25 weitergeschaltet werden. Die gepufferten Ergebnisse können dann vom Puffer 45 über einen Kanal 95 zu anderen Vorrichtungen für deren Weiterverwendung über eine DIO-Bus-Schnittstellenschaltung 50 weitergeschaltet werden (nachdem die Steuersignale von der Systembus-Schnittstelleneinheit 15 über die Kanäle 60, 65 und 125 gesandt wurden).
Claims (4)
1. Bytefolge-Identifikationseinrichtung zum Identifizieren
einer digitalen Byte folge in einem Datenstrom, der
längs eines Übertragungsmediums (10) verläuft, mit
einer Lesevorrichtung (15) zum Lesen von Bytes aus dem
Datenstrom und zum Leiten der Bytes zu einer
Zählvorrichtung (20, 25, 425, 525) und zu einer
Vergleichsvorrichtung (35, 435, 545), wobei
die Vergleichsvorrichtung (35, 435, 545) eine
programmierbare, adressierbare Speichervorrichtung aufweist,
die in mehrere Speichersegmente (0-61) aufgeteilt ist,
wobei jedes Segment mehrere adressierbare
Speicherstellen zum parallelen Speichern jeweils mehrerer
Daten-Vergleichsparameter für jedes Byte hat, jeder
Daten-Vergleichsparameter ein Benutzer-definiertes
Bytemuster darstellt und die Vergleichsvorrichtung
Ausgangssignale erzeugt, die Vergleiche zwischen jedem
einzelnen Byte und den mehreren
Daten-Vergleichsparametern angeben,
die Zählvorrichtung (20, 25, 425, 545) inkrementiert
wird, wenn jedes Byte sequentiell vom
Übertragungsmedium (10) gelesen wird, wodurch ein Ausgangssignal
zum Ansteuern von höherwertigen
Adressen-Auswahlleitungen der Vergleichsvorrichtung (35, 435, 545) erzeugt
wird, um ein entsprechendes Speichersegment in der
Speichervorrichtung der Vergleichsvorrichtung (35,
435, 545) auszuwählen, wobei die vom Datenstrom
gelesenen Bytes zum Ansteuern vorgegebener
niederwertiger Adressen-Auswahlleitungen (420) der
Vergleichsvorrichtung (35, 435, 545) verwendet werden, um ein
bestimmtes Wort innerhalb eines bestimmten
Speichersegments auszuwählen,
die Speichersegmente in der Speichervorrichtung der
Vergleichsvorrichtung (35, 435, 545) in Folgen
angeordnet sind, um mehrere parallele Filter zu bilden,
von den jedes Filter jeweils für eine gegebene Folge
von zu identifizierenden Bytes anwendbar ist, wobei
die mehreren Filter ermöglichen, daß eine Vielzahl von
entsprechenden verschiedenen Byte folgen identifizierbar
ist,
dadurch gekennzeichnet, daß
die adressierbare Speichervorrichtung der
Vergleichsvorrichtung (35, 435, 545) ein weiteres Speichersegment
(62) aufweist, das zum Speichern von Werten zum
Ignorieren von Bytes an nicht-vorgegebenden Stellen in der
Bytefolge bestimmt ist, die Zählvorrichtung eine Zähl-
RAM-Vorrichtung (20, 25, 425, 525) aufweist, in der
logische Zählwerte geladen sind, die das letztere
Speichersegment adressieren, um Bytes an den
nichtvorgegebenen Stellen zu ignorieren,
die adressierbare Speichervorrichtung der
Vergleichsvorrichtung (35, 435, 545) ebenfalls ein
Speichersegment (63) aufweist, das zum Überprüfen der Länge der
Information bestimmt ist, wobei auf dieses bestimmten
Speichersegment (63) von der Zählvorrichtung (20, 25,
424, 525) nach jedem der Bytefolge-Vergleiche
zugegriffen wird, um sicherzustellen, ob die an die
jeweiligen Filter angelegten Byte folgen eine vorgegebene
Länge aufweisen oder nicht, und
daß eine Schalt/Halte-Vorrichtung (40, 445, 555)
vorgesehen ist, um die von der Vergleichsvorrichtung (35,
435, 545) erzeugten Ausgangssignale nach jedem der
Byte folge-Vergleiche und der
Bytefolge-Längenüberprüfungen für jedes der Filter zu speichern, wobei der
Zustand der Schalt/Halte-Vorrichtung angibt, welche
Filter den Anforderungen genügen.
2. Bytefolge-Identifikationsvorrichtung nach Anspruch 1,
bei der die Zählvorrichtung (20, 25, 425, 525) ein RAM
aufweist, das auch betriebsbereit ist, nachdem das
letze Byte einer gegebenen Bytefolge empfangen ist, um
die niederwertigen Adressen-Auswahlleitungen der
Vergleichsvorrichtung (35, 434, 545) anzusteuern, während
die niederwertigen Adressen-Auswahlleitungen außer
Betrieb gesetzt sind, wobei die Zähl-RAM-Vorrichtung
(20, 25, 425, 525) auf das bestimmte Speichersegment
(63) der Vergleichsvorrichtung zugreift, um die
Längenüberprüfung auszuführen.
3. Bytefolge-Identifikationsvorrichtung nach einem der
vorangehenden Ansprüche, bei der die Schalt/Halte-
Vorrichtung (40, 445, 555) jeweils ein Schalt/Halte-
Element für jedes der Filter aufweist, wobei jedes
Schalt/Halte-Element so konfiguriert ist, daß es dann,
wenn es extern auf einen wahren Wert gesetzt ist, bei
Empfang eines falschen Eingangssignals auf ein falschen
Wert umschaltet, und auf dem falschen Wert bleibt, bis
es extern wieder auf einen wahren Wert zurückgesetzt
wird.
4. Verfahren zum Identifizieren einer Bytefolge in einem
Datenstrom, der längs eines Übertragungsmediums (10)
verläuft, mit den folgenden Verfahrenschritten:
paralleles Speicher von mehreren
Daten-Vergleichsparametern
für jedes Byte in eines von mehreren
Speichersegmenten (0-61) einer adressierbaren
Speichervorrichtung (435), wobei jeder Daten-Vergleichsparameter
ein Benutzer-definiertes Bytemuster darstellt, die
Speichersegmente in mehrere parallele Filter
bildenden Folgen angeordnet sind, wobei jedes der Filter
jeweils für eine gegebene Folgen von zu
identifizierenden Bytes anwendbar ist und die mehreren Filter mehrere
entsprechende verschiedene, zu identifizierende
Bytefolgen freigeben,
Lesen von Bytes aus dem Datenstrom,
Auswählen von niederwertigen Adressen der
adressierbaren Speichervorrichtung nach Maßgabe jedes vom
Datenstrom gelesenen Bytes, wobei die niederwertige Adresse
ein bestimmtes Wort innerhalb eines bestimmten der
Speichersegmente auswählt,
Zählen der sequentiell vom Datenstrom gelesenen Bytes
und dabei Auswählen von höherwertigen Adressen der
adressierbaren Speichervorrichtung, wobei die
höherwertige Adresse ein bestimmtes der die
Daten-Vergleichsparameter speichernden Speichersegmente
auswählt,
Vergleichen von sequentiell vom Datenstrom gelesenen
Bytes mit den gespeicherten Daten-Vergleichsparametern
und Erzeugen von die Vergleiche angebenden
Ausgangssignalen,
gekennzeichnet durch die folgenden
Verfahrenschritte:
Speichern von Werten zum Ignorieren von Bytes an
nichtvorgegebenen Stellen in der Byte folge in einem weiteren
Speichersegment (62) und Speichern von logischen
Zählwerten zum Adressieren der gespeicherten Werte in dem
weiteren Speichersegment, um die Bytes an den
nichtvorgegebenen Stellen zu ignorieren,
Speichern von Werten in einem anderen weiteren
Speichersegment
(63) zum Ausführen der Längenüberprüfung
jeder an die entsprechenden Filter angelegten
Bytefolge, um sicherzustellen, ob die Folgen jeweils eine
vorgegebene Länge aufweisen, und
Speichern von entsprechenden Daten in
Schalt/Halteelementen nach dem Vergleichen und der
Längenüberprüfung, wobei die Schalt/Halte-Elemente angeben, ob
bestimmte Byte folgen in dem Datenstrom identifiziert
wurden und eine vorgegebene Länge aufweisen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/798,055 US4754420A (en) | 1985-11-14 | 1985-11-14 | Digital data filter for local area network |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3688317D1 DE3688317D1 (de) | 1993-05-27 |
DE3688317T2 true DE3688317T2 (de) | 1993-11-25 |
Family
ID=25172423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE86308442T Expired - Fee Related DE3688317T2 (de) | 1985-11-14 | 1986-10-29 | Maschine zur mehrfachen Filterung. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4754420A (de) |
EP (1) | EP0223458B1 (de) |
JP (1) | JPH07112194B2 (de) |
CA (1) | CA1277772C (de) |
DE (1) | DE3688317T2 (de) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE68928114T2 (de) * | 1988-05-31 | 1998-01-22 | Digital Equipment Corp | Bitfolgenverarbeitungsgerät und -verfahren |
US5146560A (en) * | 1988-05-31 | 1992-09-08 | Digital Equipment Corporation | Apparatus for processing bit streams |
US5163047A (en) * | 1989-09-15 | 1992-11-10 | At&T Bell Laboratories | Time division multiplex system and method having a time slot reuse capability |
US5343471A (en) * | 1992-05-11 | 1994-08-30 | Hughes Aircraft Company | Address filter for a transparent bridge interconnecting local area networks |
WO1994001950A1 (en) * | 1992-07-07 | 1994-01-20 | Evtech Pty. Ltd. | Computer/telephone interface apparatus |
DE69323283T2 (de) * | 1992-10-14 | 1999-08-12 | Bayer Corp., Agfa Division, Wilmington, Ma. | Verfahren und Anordnung zur Erkennung von Bit-Sequenzen in Datenströmen |
US5590159A (en) * | 1995-02-07 | 1996-12-31 | Wandel & Goltermann Technologies, Inc. | Digital data sequence pattern filtering |
US6925572B1 (en) * | 2000-02-28 | 2005-08-02 | Microsoft Corporation | Firewall with two-phase filtering |
US6918037B2 (en) * | 2001-09-27 | 2005-07-12 | Intel Corporation | Method and apparatus for command perception by data value sequencing, allowing a bounded total amount of spurious data |
US6901354B2 (en) * | 2001-09-27 | 2005-05-31 | Intel Corporation | Method and apparatus for command perception by data value sequencing, allowing finite amount of unrelated interim data |
US7308561B2 (en) * | 2003-12-12 | 2007-12-11 | Alcatel Lucent | Fast, scalable pattern-matching engine |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4891935A (de) * | 1972-03-08 | 1973-11-29 | ||
US3881101A (en) * | 1974-01-04 | 1975-04-29 | Texas Instruments Inc | Correlator method and system for identifying sequences of pulses |
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 |
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 |
US4524427A (en) * | 1982-08-04 | 1985-06-18 | The University Of Bordeaux 1 | Method for making comparisons between reference logical entities and logical entities proceeding from a file |
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 |
US4575864A (en) * | 1983-03-07 | 1986-03-11 | E-Systems, Inc. | Digital programmable packet switch synchronizer |
EP0124238A3 (de) * | 1983-05-02 | 1987-05-06 | Tektronix, Inc. | Speicherbasierter Digitalwortsequenzerkenner |
-
1985
- 1985-11-14 US US06/798,055 patent/US4754420A/en not_active Expired - Lifetime
-
1986
- 1986-10-29 DE DE86308442T patent/DE3688317T2/de not_active Expired - Fee Related
- 1986-10-29 EP EP86308442A patent/EP0223458B1/de not_active Expired - Lifetime
- 1986-11-13 CA CA000522915A patent/CA1277772C/en not_active Expired - Lifetime
- 1986-11-14 JP JP61271627A patent/JPH07112194B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0223458A2 (de) | 1987-05-27 |
JPH07112194B2 (ja) | 1995-11-29 |
DE3688317D1 (de) | 1993-05-27 |
JPS62115938A (ja) | 1987-05-27 |
EP0223458B1 (de) | 1993-04-21 |
US4754420A (en) | 1988-06-28 |
EP0223458A3 (en) | 1989-03-15 |
CA1277772C (en) | 1990-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68925557T2 (de) | Verfahren zum Zugriff von Daten in einer Tabelle und seine Anwendung zum Lenken von Daten zwischen entfernten Stationen | |
DE69434330T2 (de) | Übertragungsvorrichtgung und verfahren | |
DE3809129C2 (de) | Verfahren und Vorrichtung zur Steuerung von videotechnischen Geräten | |
DE3300262A1 (de) | Schaltungsanordnung zur zuteilung des zugriffs zu einer auf anforderungsbasis gemeinsam benutzten sammelleitung | |
DE4104601A1 (de) | Empfangsdatenverarbeitungsanlage | |
DE3688317T2 (de) | Maschine zur mehrfachen Filterung. | |
DE3015875A1 (de) | Speicherzugriffssystem und verfahren fuer einen zugriff zu einem digitalen speichersystem | |
DE1474062B2 (de) | Datenverarbeitungsanlage mit einer anzahl von pufferspeichern | |
DE2827270A1 (de) | Schaltungsanordnung fuer eine vermittlungsanlage | |
DE69117482T2 (de) | Adressverwaltung für entfernte Stationen in einem schleifenförmigen digitalen Übertragungssystem | |
DE19629868A1 (de) | Verfahren zur Übertragung binärer Daten und Schnittstellenbausteine zur Durchführung des Verfahrens | |
DE69610874T2 (de) | Vorrichtung zur Datenübertragung zwischen einer Mehrzahl von Funktionsmodulen in einer lokalen Buseinheit und einem externen ARINC-629-Bus | |
EP1139603A1 (de) | Verfahren und Vorrichtung zur Analyse von Daten | |
DE3733278A1 (de) | Messverfahren zur stoerungsanalyse digitaler uebertragungswege und messeinrichtung zur durchfuehrung des messverfahrens | |
EP0840229B1 (de) | Vorrichtung und Verfahren zur Selektion von Adressenwörtern | |
DE2242279C3 (de) | Schaltungsanordnung zur Ermittlung von Fehlern in einer Speichereinheit eines programmgesteuerten Datenvermittlungssystems | |
DE2126456C3 (de) | Schaltungsanordnung zur Verwendung in einer Datenverarbeitungsanlage | |
DE3889214T2 (de) | Protokoll und Vorrichtung für selektives Abtasten von verschiedenen Leitungen, die mit einem Übertragungsgerät verbunden sind. | |
DE1774849C3 (de) | Adressierungseinrichtung für eine Speicherabschnittkette | |
DE3012133C2 (de) | ||
EP0408936A2 (de) | Verfahren zum Auffinden eines Zeichenmusters in einem Datenstrom | |
EP0840230A2 (de) | Vorrichtung zur Selektion von Adressenwörtern mittels Demultiplex-Decodierung | |
DE3850903T2 (de) | Steuerungssystem mit zwei Mikroprozessoren. | |
DE69300379T2 (de) | Vorrichtung zum Anschluss eines Terminals an einen Übertragungskanal. | |
DE1524264C3 (de) | Einrichtung zur Erzeugung einer Bildaufzeichnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: AGILENT TECHNOLOGIES, INC. (N.D.GES.D.STAATES DELA |
|
8339 | Ceased/non-payment of the annual fee |