DE69837020T2 - Vorrichtung zur Sammlung von Informationen über die Benutzung eines Paketnetzwerks - Google Patents

Vorrichtung zur Sammlung von Informationen über die Benutzung eines Paketnetzwerks Download PDF

Info

Publication number
DE69837020T2
DE69837020T2 DE69837020T DE69837020T DE69837020T2 DE 69837020 T2 DE69837020 T2 DE 69837020T2 DE 69837020 T DE69837020 T DE 69837020T DE 69837020 T DE69837020 T DE 69837020T DE 69837020 T2 DE69837020 T2 DE 69837020T2
Authority
DE
Germany
Prior art keywords
ram
cam
line
signal
data
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
Application number
DE69837020T
Other languages
English (en)
Other versions
DE69837020D1 (de
Inventor
Robert G. Colorado Spring Ward
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of DE69837020D1 publication Critical patent/DE69837020D1/de
Application granted granted Critical
Publication of DE69837020T2 publication Critical patent/DE69837020T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/022Capturing of monitoring data by sampling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/02Protocol performance

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf das Sammeln von Informationen bezüglich der Verwendung eines Kommunikationsbus, was üblicherweise Netzstatistik genannt wird. Insbesondere bezieht sich die vorliegende Erfindung auf einen Paketnetzprotokollanalysator, der einen inhaltsadressierbaren Speicher (CAM) verwendet.
  • 2. Angabe des Problems
  • Kommunikationssysteme, in denen Informationen in Datenpaketen zwischen einem Anfangsblock und einem Abschlussblock übertragen werden, die Informationen bezüglich des Datenpakets liefern, werden allgemein Paketnetze genannt. Es gibt viele Arten von Paketen, die über ein bestimmtes Paketnetz gesendet werden können, wobei jedes derselben durch einen Satz von Regeln oder Übereinkünften, die Protokolle genannt werden, definiert ist. Ein Paket oder Rahmen umfasst allgemein einen Anfangsblock, einen Abschlussblock und eine Nutzlast, die zwischen dem Anfangsblock und dem Abschlussblock angeordnet ist. Das Protokoll für ein bestimmtes Paket oder einen bestimmten Rahmen definiert allgemein den Inhalt des Rahmenanfangsblocks und des Rahmenabschlussblocks, sowie die relative Position des Datenpakets oder der Nutzlast in dem Rahmen. Protokollanalysatoren stellen eine Verbindung zu dem Kommunikationsbus eines Paketnetzes her und sammeln und speichern Informationen bezüglich der Pakete, die sich auf dem Bus bewegen. Derartige Informationen könnten den Typ eines Pakets, z.B. IBM, Novell oder Appletalk, die Anzahl von Bits in dem Rahmen und viele weitere Typen von Informationen umfassen. Diese Informatio nen sind für Netzentwerfer und -überwacher nützlich beim Bestimmen von Ausrüstungsanforderungen, der Quelle von Netzproblemen und allgemein bei der Überwachung des Netzes.
  • Herkömmlicherweise haben Protokollanalysatoren Mikroprozessoren verwendet, die durch eine Software programmiert sind, um die Paketinformationen zu sammeln und zu speichern. Datenkommunikationsnetze des Stands der Technik sind sehr schnell mit einer Datenübertragung mit der Rate von Gigabits pro Sekunde. Softwarebasierte Systeme können mit dem eingehenden Verkehrsfluss in derartigen Hochgeschwindigkeits-Datensystemen nicht Stand halten. Eine häufige Lösung des Stands der Technik für dieses Problem ist die Abtastung der Daten. So sind die Daten statistischer Natur, so der Ausdruck „Netzstatistik". Derartige herkömmliche Protokollanalysatoren können ungenau sein und einige Ereignisse könnten vollständig verfehlt werden. Lösungen des Stands der Technik für dieses Problem umfassen außerdem die Verwendung eines Vorfilterns, um ungewollte Rahmen zu verwerfen, wobei so die Paketrate reduziert wird, bevor die Software den Verkehr verarbeitet. Wenn jedoch alle Rahmen oder ein großer Prozentsatz von Rahmen Rahmen sind, die abgetastet werden sollen, ist diese Lösung nicht brauchbar.
  • Eine weitere Lösung ist die Verwendung einer maßgeschneiderten integrierten Schaltung (IC), die einen Algorithmus verwendet, um die Abtastung in einer Weise anzuleiten, die bedeutungsvolle Rahmen auswählt. Jede beliebige Abtastlösung ist jedoch nicht für einen Protokollanalysator akzeptabel, der auf den R&D-Markt abzielt. R&D-Personen erwarten, absolute Messungen zu sehen und keine Annäherungen. Ferner ist bei Gigabit-Datenübertragungsgeschwindigkeiten die Abtastung bei einer derart niedrigen Rate verglichen mit der Verkehrsrate, dass die Algorithmen unter Umständen nicht weiter gültig zur Durchführung bedeutungsvoller Messungen sind.
  • Zustandsmaschinen sind allgemein in der Elektronikindustrie bekannt, diese wurden jedoch bisher nicht als Protokollanalysatoren eingesetzt, hauptsächlich da es so viele unterschiedliche Paketnetzprotokolle gibt und jedes Protokoll ziemlich komplex ist, so dass man in der Technik geglaubt hat, dass eine Zustandsmaschine, die Protokolle analysieren kann, so groß und komplex wäre, dass dies nicht brauchbar ist. Ferner werden ständig neue Protokolle eingeführt und alte Protokolle verändern sich ständig und man weiß, dass es viel einfacher ist, ein Softwareprogramm zu verändern, um neue und überarbeitete Protokolle zu handhaben, als eine Zustandsmaschine neu zu programmieren, die im Wesentlichen Hardware ist.
  • Die EP 0 650 167 A2 offenbart einen inhaltsadressierbaren Speicher mit einer programmierbaren Feldmaskierung. In dem beschriebenen inhaltsadressierbaren Speicher (CAM) ist zumindest eine Gruppe von Speicherzellen durch eine Wortleitung und eine Übereinstimmungsleitung verbunden. Die Gruppe von Speicherzellen umfasst Datenspeicherzellen, die in eine Anzahl von Datenspeicherzellfeldern unterteilt sind, zum Speichern von Datenbits eines Datenworts. Eine Maskenspeicherzelle ist innerhalb der Gruppe von Speicherzellen zum Speichern zumindest eines Maskenbits, das einen Status von Daten anzeigt, die in zumindest einem der Datenspeicherzellfelder gespeichert sind, vorgesehen. Die Maskenspeicherzelle ist wirksam, um die Übereinstimmungsleitung ansprechend auf das gespeicherte Maskenbit zu unterbrechen. Ein Übereinstimmungsleitungsdetektor erfasst einen Signalpegel auf der Übereinstimmungsleitung, um anzuzeigen, ob Eingangsdatenbits, die auf den Datenspeicherzellbitleitungen geliefert werden, mit Datenbits übereinstimmen, die in zumindest einem der Datenfelder gespeichert sind. Die Datenspeicherzellfelder könnten in eine Hierarchie organisiert sein, wobei Maskenspeicherzellen zwischen die Datenfelder geschaltet sind, um ein hierarchisches Maskieren bereitzustellen. Eine allgemeine programmierbare Maskierung beliebiger Datenfelder innerhalb der Gruppe wird unter Ver wendung gemultiplexter Maskenspeicherzellen, die durch Umgehungsleitungen verbunden sind, bereitgestellt. Die gemultiplexten Maskenspeicherzellen könnten eines oder mehrere Maskenbits speichern, um es zu ermöglichen, dass eine Umgehungsleitung mit Abschnitten der Übereinstimmungsleitung verbunden ist, wodurch ein bestimmtes Datenspeicherzellfeld maskiert wird. Gemäß dem jeweiligen Dokument könnten die Daten in einem Anfangsblock eines Datenpakets verwendet werden, um auf eine gespeicherte Nachschlagtabelle zuzugreifen, um nachfolgende Verarbeitungsschritte, die für das Paket erforderlich sind, zu bestimmen. Ein Paketschalter kann implementiert werden, der eine Nachschlagtabelle beinhaltet.
  • Der Artikel „Real-Time Mechanism for Accounting and Network Access Control", veröffentlicht in IBM Technical Disclosure Bulletin, Band 37, Nr. 04A, April 1994 auf den Seiten 337–339 offenbart einen Echtzeitmechanismus für eine Abrechnung und Telekommunikationsnetzzugriffssteuerung. Eine Abrechnung und Netzzugriffssteuerung werden an einer Verbindung oder an Teilen der Verbindungsinformationen durchgeführt, z.B. Quellenadresse, Zieladresse oder Tore. Diese Verbindungsinformationen werden aus dem Paketanfangsblock extrahiert und in einer Tabelle gespeicherter Adressen gesucht. Wenn die Adresse in der Tabelle gefunden wird, werden die erforderlichen Abrechnungs- oder Zugriffssteueroperationen durchgeführt. Die Abrechnungssteuerung einer derartigen Lösung besteht aus einer Abrechnungstabelle und einer Abrechnungszustandsmaschine.
  • Das Patent 5,351,243 der Vereinigten Staaten offenbart einen Überwacher für Pakete auf einem lokalen Netz, einschließlich eines Satzes von Logikschaltungen, die in einem Computerchip implementiert sind, eines Speichers, der mit dem Computerchip in Wechselwirkung steht, um Überwachungsdaten an die Logikschaltungen zu liefern, einer Logik zum Empfangen eines Pakets von dem lokalen Netz und eines Parsers zur Verarbeitung von Bits des Pakets, wie dieselben empfangen werden. Der Parser verwendet die Überwachungsdaten in Verbindung mit den empfangenen Bits, um Weiterleitungsdaten bereitzustellen, die den Typ des empfangenen Pakets anzeigen. Der Überwacher verwendet die Weiterleitungsdaten, um zu bestimmen, ob das empfangene Paket in einem Speicher gespeichert, verworfen oder an andere Host-Computer in dem Netz weitergeleitet wird. Der Überwacher verwendet die Typinformationen von den Weiterleitungsdaten, um Zählwertinformationen der unterschiedlichen Typen von Paketen beizubehalten, die an einen Host-Computer oder eine entfernte Überwachungsvorrichtung weitergeleitet werden könnten.
  • Die CA 2237986 C offenbart eine Vorrichtung zum Sammeln von Netzstatistikinformationen, die eine elektronische Nachschlagtabelle aufweist, die eine Zustandsmaschine aufweist, die einen inhaltsadressierbaren Speicher (CAM) umfasst, sowie einen Direktzugriffsspeicher (RAM), die in Serie geschaltet sind. Diese Architektur ist aufgrund der geringeren Geschwindigkeit eines CAM verglichen mit einem RAM inhärent langsam.
  • 3. Lösung des Problems
  • Die vorliegende Erfindung löst das obige und weitere Probleme in Protokollanalysatoren des Stands der Technik durch eine Vorrichtung zum Sammeln von Netzstatistikinformationen gemäß Anspruch 1.
  • Die Erfindung liefert nicht nur einen extrem schnellen Protokollanalysator, sie tut dies auch auf eine Weise, die es erlaubt, dass das Statistiksammelsystem mit relativ geringen Kosten hergestellt und umprogrammiert werden kann. Zahlreiche weitere Merkmale, Aufgaben und Vorteile der Erfindung werden aus der folgenden Beschreibung in Verbindung mit den beigefügten Zeichnungen ersichtlich werden.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm, das eine verallgemeinerte logische Beschreibung eines Protokollanalysators gemäß der Erfindung zeigt;
  • 2 ist ein Blockdiagramm, das eine detaillierte logische Beschreibung eines bevorzugten Ausführungsbeispiels eines Protokollanalysators gemäß der Erfindung zeigt;
  • 3 ist ein Blockdiagramm, das die Hardware zeigt, mit der das bevorzugte Ausführungsbeispiel aus 2 implementiert wir
  • 4 ist ein Blockschaltschema des FIFO-Pufferabschnitts des Ausführungsbeispiels aus 3;
  • 5 ist ein Blockschaltschema eines Statistikabschnitts des Ausführungsbeispiels aus 3;
  • 6 ist ein Blockschaltschema des Rahmenanfangsblockpufferabschnitts des Statistikabschnitts aus 5;
  • 7 ist ein Blockschaltschema des ASM-RAM-Verwalter-Abschnitts des Statistikabschnitts aus 5;
  • 8 ist ein Blockschaltschema des CAM-Verwalter-Abschnitts des Statistikabschnitts aus 5;
  • 9 ist ein Blockschaltschema des Statistikzähler-Abschnitts des Statistikabschnitts aus 5; und
  • 10 ist ein Flussdiagramm, das ein Beispiel des Parsens bzw. syntaktischen Analysierens eines TCP/IP-Rahmens durch den Protokollanalysator gemäß der Erfindung zeigt.
  • Beschreibung des bevorzugten Ausführungsbeispiels
  • 1. Übersicht
  • Wie oben erläutert wurde, bezieht sich diese Offenbarung auf Protokollanalysatoren, die üblicherweise verwendet werden, um Informationen über die Verwendung von Kommunikationsnetzen zu sammeln und zu speichern, und insbesondere Paketnetze. In der Technik werden die gesammelten Informationen üblicherweise als „Statistiken" oder „Netzstatistiken" bezeichnet und so werden wir diese Ausdrücke verwenden, um die Informationen anzugeben, die durch die Protokollanalysatoren gemäß der Erfindung gesammelt werden. Es wird jedoch darauf verwiesen, dass die durch den Protokollanalysator gemäß der Erfindung gesammelten Daten unter Umständen nicht statistischer Natur sind, da bei dem bevorzugten Ausführungsbeispiel Informationen über jedes auf einem Netz übertragene Paket gesammelt werden können, selbst bei Gigabit-Übertragungsraten.
  • In der Elektroniktechnik hat der Ausdruck Zustandsmaschine die Bedeutung Digitalelektronikhardware bekommen, die mit Hardwaregeschwindigkeiten läuft; der Ausdruck steht üblicherweise im Kontrast zu prozessorbasierten Systemen, die unter Verwendung einer Software arbeiten, und deshalb viel langsamer sind als reine Hardwaresysteme. Bei der allgemeinsten Verwendung bedeutet jedoch der Ausdruck manchmal ein beliebiges System, das mit einer diskreten Logik arbeitet, was softwarebasierte Systeme umfassen könnte. Bei dieser Offenbarung bedeutet Zustandsmaschine ein diskretes (im Gegensatz zu analog) Logikelektroniksystem, das in Hardware implementiert ist. Dies bedeutet bei dieser Beschreibung, dass der Ausdruck Zustandsmaschine keinen Prozessor umfasst, auf dem ein Softwareprogramm läuft. Diese Verwendung des Ausdrucks ist konsistent mit einer gegenwärtigen Verwendung in der Technik, ist jedoch enger als die breitesten Verwendungen des Ausdrucks.
  • In dieser Beschreibung werden wir uns zur Einfachheit manchmal mit der gleichen Zahl auf eine Signalleitung und das Signal, das durch die Leitung getragen wird, beziehen. Dies reduziert die Ganzzahlen in den Zeichnungen stark und sollte keine Verwirrung bewirken, da in jedem Fall, in dem dies getan wird, die Leitung ein spezifiziertes Signal trägt. Die Leitung 30 in 1 z.B. trägt ein Datensignal 30. In vielen Fällen wird auch das Signal durch einen beschreibenden Namen, wie z.B. „Daten", was auf die Leitung 30 geschrieben ist, bezeichnet.
  • Bezug nehmend auf 1 ist ein verallgemeinertes Blockdiagramm eines Protokollanalysators 15 gemäß der Erfindung gezeigt. Dieses Blockdiagramm ist nützlich bei einem Einführen des allgemeinen Konzepts dessen, wie das System gemäß der Erfindung einen komplizierten Gegenstand, wie z.B. einen Paketnetzrahmen, in einer einfachen Weise ohne Verwendung einer Software analysieren kann. Der verallgemeinerte Protokollanalysator 15 umfasst einen Eingangspuffer 18, eine Nachschlagtabelle, die eine algorithmische Zustandsmaschine (ASM) 20 aufweist, und einen Statistikzähler 28. Der Eingangspuffer 18 akzeptiert und speichert über eine Leitung 17 Informationen, die auf dem PCI-Bus 16 laufen. Er könnte entworfen sein, um nur bestimmte Abschnitte der Businformationen, wie z.B. Anfangsblöcke und Abschlussblöcke, nur Anfangsblöcke zu akzeptieren und zu speichern oder könnte die Informationen abtasten, wenn nur ein statistisches Bild des Busverkehrs erwünscht wird. Puffer, die derartige Aufgaben ohne Software erzielen, sind in der Technik bekannt. Die in dem Puffer 18 gespeicherten Informationen werden mit einer geeigneten Zeitgebung an die Nachschlagtabelle 20 weitergeleitet, so dass die Nachschlagtabelle 20 beschäftigt bleibt, solange Informationen in dem Puffer 18 sind. Die Nachschlagtabelle 20 ist logisch eine einfache Eins-zu-Eins-Tabelle, die einen ersten Abschnitt, der einen digitalen Code speichert, der Datensegmenten von Interesse entspricht, die auf dem Bus 16 laufen könnten, und einen zweiten Abschnitt aufweist, der Instruk tionen bezüglich dessen aufweist, was getan werden soll, wenn ein spezifisches Datensegment gefunden wird. Die Nachschlagtabelle 20 vergleicht jedes Stück Daten, das auf der Leitung 30 eingeht, mit den Datensätzen in dem ersten Abschnitt der Tabelle und spricht durch ein Ausgeben, auf Leitungen 32, 34 und 36, vorbestimmter Signale an, die in einer entsprechenden Position in dem zweiten Abschnitt der Tabelle gespeichert sind. Auf dem einfachsten Pegel könnte die Ausgabe auf der Leitung 36 einfach Signale sein, die die Netzstatistikinformationen darstellen, die bewirken, dass einer oder mehrere Zähler in den Statistikzählern 28 inkrementiert werden. Die Tabelle könnte z.B. ein Datensegment erkennen, das ein NovellTM-Paket anzeigt, und einen Zähler in den Statistikzählern 28 inkrementieren, der die NovellTM-Pakete zählt. Gleichzeitig sagt sie dem Eingangspuffer 18 über die Leitung 34, neue Daten weiterzuleiten. Üblicherweise jedoch ist die Ausgabe der Tabelle komplexer. Das Ergebnis eines Prüfens des Datensegments ist zweideutig und die Tabelle 20 gibt Signale auf der Leitung 32 aus, die ihren Zustand verändern, d. h. sie sagt sich selbst, das Datensegment weiter zu prüfen, um die Zweideutigkeiten zu lösen. Oder die Ausgabe könnte eine Kombination von Signalen auf den Leitungen 32, 34 und 36 sein. So ist die Nachschlagtabelle 20 eine Zustandsmaschine: d. h. für jedes vorgelegte diskrete Datensegment gibt sie bestimmte vorbestimmte diskrete Signale aus, die dazu führen, dass Netzstatistiken aufgezeichnet werden. Die Philosophie des Systems 15 besteht darin, über eine Hardware 20 zu verfügen, die im wesentlichen ignorant gegenüber der Protokollstruktur ist, jedoch in der Lage ist, einen Algorithmus zum Decodieren von Protokollen zu unterstützen, die in einem Basissatz von Instruktionen in dem „Nachschlag"-Teil der Zustandsmaschine codiert werden sollen.
  • Zusammenfassend fordert die algorithmische Zustandsmaschine 20 (ASM) abhängig von der Eingangsdatenstruktur und dem gegenwärtigen Zustand ein neues Stück Daten an, zeichnet einige Statistiken auf, fragt nach einer bestimmten auszu führenden Instruktion und bewegt sich weiter zu dem nächsten Zustand. Diese Instruktionen könnten sein: Inkrementieren eines Zählwerts in einem Statistikregister; Hinzufügen eines neuen Eintrags zu den Statistikzählern; Erzeugen eines Momentaufnahme-Auslöseimpulses, der über die Leitung 40 einem Erfassungs-RAM (2 und 3) sagt, ein spezifisches Datensegment zu speichern; weitere Analyse des Datenabschnitts; und andere Systemverwaltungsfunktionen, wie z.B. Durchführen eines Vergleichs, was unten beschrieben wird.
  • In dieser Beschreibung beschreiben wir ein Ausführungsbeispiel der algorithmischen Zustandsmaschine (ASM) 15, die eine Protokollbestimmung durchführt. Zusätzlich zu der Protokollbestimmung kann ein Algorithmus geschrieben und in der Nachschlagtabelle 20 gespeichert werden, um Statistiken über Adressinformationen zu sammeln, Knotenstatistiken bereitzustellen und Verbindungsstatistiken bereitzustellen. Die Komplexität des ausgeführten Algorithmus beeinflusst die Anzahl von Rahmen pro Sekunde, die analysiert werden können. Durch ein Verwenden mehrerer Nachschlagtabellen 20 jedoch, die an sequentiellen Rahmen arbeiten, kann ein System aufgebaut werden, das so viele Rahmen wie erwünscht in so viel Details wie erwünscht handhaben kann.
  • Aus der obigen allgemeinen Beschreibung ist klar, dass die Nachschlagtabelle 20 eine große Menge an Daten halten und sehr schnell arbeiten muss. Die Kombination eines schnellen inhaltsadressierbaren Speichers (CAM) und eines schnellen Direktzugriffspeichers (RAM) ist in der Lage, diese Anforderung zu erfüllen. Ein CAM passt Eingangsdaten mit Daten zusammen, die in dem Speicher enthalten sind, und erzeugt eine Adresse, die den Daten entspricht. Ein RAM liefert eine Ausgabe, die in dem Speicher an der Adresse, die in den Speicher eingegeben wird, gespeichert wird. Wie diese Kombination als eine große schnelle Nachschlagtabelle wirken kann, kann Bezug nehmend auf 2 gesehen werden, die ein logisches Blockdiagramm des bevorzugten Ausfüh rungsbeispiels des Protokollanalysators 15 gemäß der Erfindung ist. Es wird angemerkt, dass keine Eins-zu-Eins-Entsprechung zwischen jedem Abschnitt aus 1 und jedem Abschnitt aus 2 vorliegt, da 1 vereinfacht wurde, um die Konzepte der Erfindung besser einzuführen. Es wird angemerkt, dass 2 auch eine vereinfachte Version des tatsächlichen Protokollanalysators 15 ist: er umfasst z.B. nicht alle Funktionen des bevorzugten Ausführungsbeispiels des ASM 20 (die unten vollständig beschrieben ist), so dass die essentiellen Funktionen in dieser Übersicht nicht verschleiert werden. Der vereinfachte Protokollanalysator 15 umfasst einen Eingangspuffer 18, einen Adresserzeuger 52, ein Vergleichsregister 54, eine Maske 56 und eine algorithmische Zustandsmaschine (ASM) 20, die eine CAM-Verwalterlogik 60, die einen CAM 62 umfasst, einen ASM-RAM 64 und Auswähler 72, 74 und 76 umfasst. Der Protokollanalysator 15 umfasst außerdem einen Zähler-RAM 66, ein Inkrementier-Latch 67 und einen Addierer-Latch 68. Ein Erfassungs-RAM 80, der nicht Teil der ASM 20 ist, sondern durch die Ausgabe der ASM 20 getrieben wird, ist in 2 ebenso gezeigt. Das Logiksystem aus 2 empfängt eine Eingabe auf einer Leitung 17 von einem Bus 16 (1), was in 2 durch das „B" angezeigt ist. Bei dem bevorzugten Ausführungsbeispiel ist der Bus 16 ein PCI-Bus. In dieser Figur und nachfolgenden Figuren sind die Leitungen, wie z.B. 81, oft Mehrleiterleitungen, wobei die Anzahl von Leitern und so die Anzahl von Bits, die auf einer Leitung übertragen werden können, durch einen Schrägstrich und eine Zahl angezeigt wird. Das „32/"-Zeichen an der Leitung 81 z.B. zeigt an, dass diese in der Lage ist, bis zu 32 Bits gleichzeitig zu tragen.
  • Da das in 2 gezeigte Ausführungsbeispiel nur eine Protokollbestimmung durchführt, muss nur der Rahmenanfangsblockabschnitt jedes Rahmens analysiert werden. So umfasst der Eingangspuffer 18 (1) einen FIFO-Pufferabschnitt 18A (3), der den Rahmenanfangsblock von jedem Rahmen aussortiert und denselben an einen Rahmenanfangsblockpuffer 18B (6) leitet. Eingehende 64 Bit breite Daten auf dem PCI-Bus 16, der eine Burst-Natur besitzt, werden einem Ent-Burst-Vorgang unterzogen und in dem FIFO-Pufferabschnitt 18A abgeschnitten und dann in den Rahmenanfangsblockpuffer 18B geschrieben, um es zu ermöglichen, dass die ASM 20 Direktzugriff auf den Datenpaketanfangsblock hat. Wie unten detaillierter erläutert wird, leitet der Eingangspuffer 18 32-Bit-Datensegmente auf der Leitung 30 an die Zustandsmaschine 20.
  • Der CAM 62 und der ASM-RAM 64 sind mit dem Protokollbestimmungsalgorithmus programmiert. Es ist die Aufgabe der ASM 20, den Protokollbestimmungsalgorithmus in dem CAM 62 und dem ASM-RAM 64 zu verwenden, um die verschiedenen Felder jedes Rahmens der Reihe nach zu prüfen und Entscheidungen darüber, was das Protokoll ist, durchzuführen. Der RAM ist schneller als der CAM bei der Durchführung von 16-Bit-Nachschlägen und wird zur Entscheidungsfindung bei Protokollfeldern mit 8 Bits oder weniger verwendet. Der CAM ist langsamer als der ASM-RAM zum Nachschlag, da derselbe mehr Zyklen benötigt, um zu arbeiten, und jeder Zyklus ist langsamer als ein ähnlicher RAM-Zyklus, er kann jedoch Strukturen mit einer Breite von bis zu 128 Bits übereinstimmen. Dies ist besonders nützlich für Adress- und Torfelder. Es ist am einfachsten, die Funktionsweise der ASM 20 zu verstehen, indem zuerst die Eingabe und Ausgabe des CAM 62 und des ASM-RAM 64 verstanden wird, die sehr wesentlich für das System sind, und indem dann die anderen Funktionen, die weniger wichtig sind, betrachtet werden. Das allgemeine Format der Eingangs- und Ausgangssignale des CAM und ASM-RAM ist in Tabelle I gezeigt.
  • Figure 00130001
    TABELLE 1
  • Die ASM-RAM-Eingabe beträgt immer 16 Bits, die CAM-Eingabe beträgt 32 Bits (siehe unten) und die Ausgabe beider der CAM/ASM-RAM-Kombination und des ASM-RAM beträgt 38 Bits. Die ersten 38 Bits definieren einen spezifischen Abschnitt des CAM und ASM-RAM, in dem Codes für nachfolgende Zyklen des Analysevorgangs gespeichert sind. Aus Bequemlichkeit sind diese acht Bits in zwei Vier-Bit-Abschnitte unterteilt, wobei die ersten derselben der „Stapel" genannt werden und die zweiten derselben die Pegel genannt werden. Allgemein entspricht der Stapel dem bestimmten Protokolltyp, während der Pegel der Anzahl in einer Sequenz von Schritten entspricht, die erforderlich sind, um den Protokolltyp zu parsen oder analysieren. Zusammen definieren der Stapel und der Pegel den Zustand der Zustandsmaschine 20. So kann ein beliebiger Zyklus in der Analysesequenz durch den Zustand x, y definiert sein, wobei x der Stapel ist und y der Pegel ist. Die letzten acht Bits der ASM-RAM-Eingabe sind die Struktur von dem Rah-menanfangsblock, der zusammengepasst werden soll, und die letzten 24, 56, 88 oder 120 Bits der CAM-Eingabe sind die Struktur von dem Rahmenanfangsblock, die zusammengepasst werden soll. Der CAM-Verwalter 60 ist in der Lage, bis zu vier nachfolgende 32- Bit-Datenbits zu speichern, so dass derselbe dem CAM 32, 64, 96 oder 128 Bits vorlegen kann. Die letzten 30 Bits der Ausgabe sind in vier Bits, die die Maske definieren, sechs Bits, die den Adressversatz definieren, d. h. das Delta-Adresssignal, zwölf Bits allgemeiner Instruktionen und acht Bits Zählerindexinformationen unterteilt. Zur Einfachheit sind in 2 nur zwei allgemeine Instruktionen, d. h. die Vergleichsinstruktion und die Auslöseimpulsinstruktion gezeigt und erläutert. Wie in der detaillierten Beschreibung unten zu sehen sein wird, gibt es viele zusätzliche Instruktionen, die durch den CAM 62 und den ASM-RAM 64 ausgegeben werden.
  • Um die Funktionsweise der ASM 20 zu verstehen, nehmen wir an, dass ein anfängliches Datensegment von einem neuen Rahmen gerade durch den Rahmenanfangsblockpufferabschnitt 50 ausgegeben wurde. Der Stapel und Pegel für einen neuen Rahmen sind beide als Null definiert, d. h. der Zustand ist 0,0. Wenn das Datensegment acht Bits oder weniger ist, geht es zu dem ASM-RAM 64, wie durch die Leitung 82 angezeigt ist. Da der Stapel und der Pegel beide Null sind, sind die durch die Zustandsleitung 84 hinzugefügten Bits Null und der Auswähler 76 ist in dem Vorgabezustand, der es dem Datensegment erlaubt, direkt zu dem ASM-RAM 64 durchzulaufen. Wenn der Vorgabezustand 0,0 derart war, dass das Datensegment von Interesse mehr als acht Bits beträgt, geht es über die Leitungen 81, 85, 86 und 86A zu dem CAM-Verwalter 60 und der Maske 56, da der Vorgabezustand des Auswählers 76 der ist, die CAM-Ausgabe weiterzuleiten. Wenn das erste Datensegment mehr als acht Bits beträgt und der CAM eine Übereinstimmung findet, gibt der CAM auf der Leitung 87 eine 10-Bit-Adresse aus, die dem Segment entspricht, wobei vorne in der Adresse die Bits 111111 hinzugefügt werden, was ein eindeutiger Code ist, der dem ASM-RAM anzeigt, dass er eine Eingabe von dem CAM erhält. Der Auswähler 74 leitet dies an den ASM-RAM, da der Vorgabezustand des Auswählers Weiterleiten ist. Wenn keine Übereinstimmung vorliegt, geht die Keine-Übereinstimmung-Leitung 88 nach Hoch und der Auswähler 74 leitet das Signal nicht auf der Leitung 87 weiter, sondern leitet statt dessen ein eindeutiges Signal weiter, d. h. das Signal 1111, 0000, verkettet mit dem Zustand, d. h. die ersten acht Bits sind 1111, 0000 und die letzten acht Bits sind der gegenwärtige Zustand, der durch den Stapel und den Pegel definiert ist. So empfängt der ASM-RAM 64 eine 16 Bit-Adresse, wie auch immer das erste Datensegment ist, das der Zustandsmaschine 20 vorgelegt wird.
  • Ansprechend auf die Adresse erzeugt der ASM-RAM eine Anzahl von Ausgaben, die folgendes umfassen können: eine 6-Bit-Delta-Adresssignalausgabe auf der Leitung 92, um den Erzeuger 52 zu adressieren, der eine neue Adresse erzeugt, um auf ein neues 32-Bit-Wort aus dem Rahmenanfangsblockpuffer 18B zuzugreifen; einen neuen Zustand x, y basierend auf dem Protokolltyp (zu Beginn unbekannt und auf 0 gesetzt) und einem Zählwert (Pegel), wobei dieser Zustand auf der Leitung 90 ausgegeben wird; eine Maskensignalausgabe auf der Leitung 91, die durch das Filter 56 interpretiert wird, um nur die bestimmten Bytes der Rahmenanfangsblockpufferausgabe weiterzuleiten, die geprüft werden müssen; Instruktionsbits, von denen eines, das auf der Leitung 89 ausgegeben wird, auswählt, ob der RAM (16-Bit-Nachschlag) oder CAM (32-, 64-, 96- oder 128-Bit-Nachschlag) im nächsten Zyklus verwendet wird, und weitere, die auf der Leitung 93 an ein Vergleichsregister 54 ausgegeben werden, was unten erläutert wird. Wenn z.B. das erste geprüfte Byte das Typ/Länge-Feld (MSB) ist, wird der RAM-Nachschlag verwendet, da dieses Feld nur 8 Bits breit ist. Abhängig davon, ob dieses Feld >= 0 × 06 ist, gibt der RAM die nächsten Rahmenanfangsblockorte an (über einen kumulativen Adressversatz), die geprüft werden sollen, sowie, wie dieselben geprüft werden sollen (RAM-Nachschlag oder CAM-Nachschlag). Auf diese Weise schreitet die Zustandsmaschine 20 durch den Algorithmus, der in der CAM- und ASM-RAM-Kombination gespeichert ist. An einer bestimmten Stufe in dem Protokoll sind spezielle Aktionen erforderlich, wie z.B. ein Zählen einer Instanz eines Nachrichtentyps oder Durchführen eines Vergleichs von Quellen- und Zieltorfeldern. Diese „speziellen" Funktionen werden durch eine Ausgabe aus dem ASM-RAM ausgelöst. Beispiele dieser speziellen Instruktionen sind: Schreiben des ersten Worts in das CAM-Zielwortregister; Schreiben des zweiten, dritten oder vierten Worts in das CAM-Zielwortregister; Erhalten der CAM-Übereinstimmungsadresse; Rücksetzen des Algorithmus, wenn das Ende der Kopfelementverarbeitung erreicht wurde; Instruktionen an das Inkrementierlatch 67 über die Leitung 94, den Rahmenzähler um Eins zu inkrementieren, und/oder Instruktionen an das Addiererlatch 68 über die Leitung 95, den Byte-Zähler um eine bestimmte Anzahl von Bytes weiterzubewegen, um die Bandbreite eines Protokolls von Interesse aufzuzeichnen; Ausgabeinstruktionen auf der Leitung 93 and das Vergleichsregister 54, zwei 16-Bit-Zahlen zu vergleichen und die niedrigste auszuwählen; Prüfen auf ISL-Anfangsblock; Erzeugen eines Auslöseimpulssignals auf der Leitung 40 an den Erfassungs-RAM 80, Hinzufügen einer unbekannten Datenstruktur zu Liste bekannter Datenstrukturen in dem CAM; Auswählen einer 32-, 64-, 96- oder 128-Bit-CAM-Struktur-Übereinstimmung. Die Rahmengröße wird auf der Leitung 31 in das Latch 68 eingegeben, um es demselben zu ermöglichen, die Anzahl von Bytes des Protokolls zu bestimmen, und der Erfassungs-RAM 80 kommuniziert mit dem PCI-Bus über die Leitung 33, um es demselben zu ermöglichen, einen Rahmen oder Satz von Rahmen ansprechend auf das Signal auf der Auslöseimpulsleitung 40 zu erfassen.
  • Das Logiksystem aus 2 kann in vielen Weisen implementiert sein. Ein exemplarisches und bevorzugtes Ausführungsbeispiel folgt.
  • 2. Detaillierte Beschreibung
  • 3 zeigt ein Blockdiagramm der Hardwareimplementierung des bevorzugten Ausführungsbeispiels des Protokollanalysa tors 15. Er umfasst einen FIFO-Pufferabschnitt 18A, eine ASM 20 und einen Erfassungs-RAM 80. Bei diesem Ausführungsbeispiel umfasst die ASM zwei Statistikabschnitte 314 und 316. Der FIFO-Pufferabschnitt 18A sendet abwechselnd Rahmen an den ersten Statistikabschnitt 314 und dann den zweiten Statistikabschnitt 316. Die Erfindung zieht in Betracht, dass es Ausführungsbeispiele mit einem Statistikabschnitt geben könnte, sowie Ausführungsbeispiele mit drei oder mehr Statistikabschnitten. Allgemein wird die Anzahl von Statistikabschnitten durch die Zeit bestimmt, die es dauert, bis ein Statistikabschnitt einen Rahmen vollständig analysiert hat, sowie die erwartete Übertragungsrate von Rahmen auf dem Bus 16. Die Anzahl von Statistikabschnitten ist so ausgewählt, dass bei einem Normalbetrieb alle Rahmen, die auf dem Bus 16 laufen, analysiert werden können. Je tiefer ein Rahmen analysiert werden soll, desto mehr Statistikabschnitte gibt es, da eine tiefere Analyse mehr Zeit erfordert. Da jeder Statistikabschnitt identisch ist, erläutern wir detailliert nur den ersten Abschnitt 314 und seine Wechselwirkung mit dem FIFO-Pufferabschnitt 18A und dem Erfassungs-RAM 80.
  • Der FIFO-Pufferabschnitt 18A umfasst ein frei programmierbares Gatearray (FPGA) 306, genannt „Puffer-FPGA" und ein Zuerst-Hinein-Zuerst-Hinaus-(FIFO-) Register 310, die auf Leitungen 303 und 305 kommunizieren. Das Puffer-FPGA kommuniziert mit Statistikabschnitten I und II auf Leitungen 307 bzw. 308. Wie oben angezeigt ist, kommuniziert der Erfassungs-RAM 80 mit dem PCI-Bus 16 auf einem Unterbus 33 und mit jedem Statistikabschnitt über eine Auslöseimpulsleitung 40. Der Statistikabschnitt I umfasst ein FPGA mit Namen „Statistik-FPGA", einen CAM 62, einen Zähler-RAM 66 und einen ASM-RAM 64. Bei dem bevorzugten Ausführungsbeispiel sind der RAM 64 und der RAM 66 separate Blöcke, die in mehreren RAM-ICs implementiert sind.
  • Bezug nehmend auf 4 ist ein Blockdiagramm gezeigt, das die Details des FIFO-Pufferabschnitts 18A darstellt. Er umfasst einen FIFO 310, eine Handshake- bzw. Quittungsaustauch-Logikeinheit 410, eine Gegenwärtige-Adresse-Extrahieren-Logikeinheit 412, eine FIFO-Steuerlogikeinheit 414, eine Prozessorschnittstellenlogik 416 und einen Auswähler 422. Er umfasst außerdem eine PCI-Taktleitung 430 und einen Rahmen, der einfach Signale durch den FIFO-Pufferabschnitt 18A an den Statistikabschnitt 314 weiterleitet. Die Handshake-Logikeinheit 410 führt Funktionen durch, um den Austausch von Daten zwischen dem FIFO-Pufferabschnitt 18A und Prozessoren und Peripheriegeräten, die mit dem Bus 16 verbunden sind, zu koordinieren, wie in der Technik bekannt ist. Die Logikeinheit 412 überwacht die Signale FRAME, TRDY und IRDY des PCI-Bus und extrahiert die gegenwärtige Adresse, auf die zu einem beliebigen bestimmten Zeitpunkt zugegriffen wird. Sie erfasst außerdem Schreibzyklen zwischen einem Prozessor an einem Ende des PCI-Bus 16 und einem Speicher an dem anderen Ende des Bus, die durch einen vorbestimmten Adressbereich definiert sind. Schließlich latcht sie die PCI-Adresse des gegenwärtigen Rahmens und erzeugt eine Prozessorunterbrechung, wenn die Auslöseimpulsleitung 437 freigegeben wird. Die FIFO-Steuerlogikeinheit 414 erfasst den Start von Rahmenanfangsblöcken und gibt einen Befehl aus, das Schreiben von bis zu 128 Bits nachfolgender Daten in den FIFO zu beginnen. Der Rahmenanfangsblock wird an der ansteigenden Flanke des PCI-Takts in den FIFO geschrieben. Das Schreiben wird vorzugsweise 8 Bytes breit durchgeführt. Die FIFO- Steuer-Logikeinheit 414 initialisiert außerdem ein Lesen durch den Statistikabschnitt von dem FIFO 310 auf ein Empfangen einer Rahmenanforderung auf der Leitung 436 von dem Statistikabschnitt 314 hin. Wenn das FIFO mit dem Senden eines Rahmens beginnt, wird ein Rahmenstartsignal auf der Leitung 435 gesendet. Das FIFO informiert außerdem den Statistikabschnitt, dass es einen Rahmen oder weniger gespeichert hat, mit einem „Fast-Leer"-(F-Leer-) Signal auf der Leitung 434. Das FIFO arbeitet in zwei 32-Bit-Unterabschnitten, wobei jeder derselben Daten auf einer von Leitungen 432 bzw. 433 sendet. Der Auswähler 422 wählt aus, welche der Leitungen 432 und 433 gelesen werden soll, ansprechend auf ein Signal von dem Statistikabschnitt 314 auf der Leitung 440, und sendet die Daten auf der Leitung 307 an den Statistikabschnitt 314. Die Prozessorschnittstelle 416 stellt eine schnittstellenmäßige Verbindung zu einem Prozessor auf dem PCI-Bus 16 her, wenn der CAM 62 und der ASM-RAM 64 programmiert werden und die Statistiken von dem Statistik-RAM 66 gelesen werden. Sie wandelt PCI-Registerzugriffe auf den Statistikabschnitt 314 in eine Multiplex-Bus-(MUX-Bus-) Anordnung zur Verbindung mit den FPGAs in dem Statistikabschnitt um. Insbesondere weist die Schnittstelle 416 einen Multiplexer auf, der eine 32-Bit-PCI-Adresse in zwei 16-Bit-Wörter umwandelt, und leitet dieselben seriell auf der MUX-Bus-Leitung 439 weiter, und wandelt außerdem ein 32-Bit-PCI-Datensegment in zwei 16-Bit-Datenwörter um, die dieselbe seriell auf der MUX-Bus-Leitung 439 weiterleitet. Dies erlaubt es, dass die Anzahl von Zwischenverbindungsleitungen zwischen Chips in dem System 15 wesentlich reduziert werden kann, ohne eine Leistung des Systems zu beeinträchtigen. Dies heißt, dass, während es länger dauert, bis die Signale auf dem MUX-Bus 439 weitergeleitet sind, dieser Bus nur verwendet wird, wenn das System 15 programmiert und gelesen wird, und beeinflusst so nicht die Geschwindigkeit eines Analysierens von Daten. Die gesamte Logik in dem FIFO-Pufferabschnitt 18A, mit Ausnahme des FIFO, ist mit dem Puffer-FPGA 306 implementiert. Weitere temporäre Speicherhardware, wie z.B. ein RAM, könnte anstelle des FIFO eingesetzt werden, der FIFO wird jedoch bevorzugt, da dies einen einfachen Weg darstellt, um die Leistung des Systems 15 zu verbessern, so dass derselbe nur mit der Durchschnittsrate der Datenübertragung auf dem Bus 16 standhalten muss, und nicht der momentanen Übertragungsrate. Dies bedeutet, dass das FIFO es erlaubt, dass Daten in schnellen Bursts ankommen, jedoch mit einer geringeren Durchschnittsrate analysiert werden können, die langsamer ist als die Spitzen-Burst-Rate.
  • Bezug nehmend auf 5 stellt ein Blockdiagramm allgemein die Logikorganisation des Statistikabschnitts 314 dar. Es sollte zu erkennen sein, dass die tatsächliche Hardware, aus der der Abschnitt 314 aufgebaut ist, relativ einfach ist, und ist in 3 gezeigt. In dieser und nachfolgenden Figuren werden wir uns auf die Logikorganisation konzentrieren, die die Programmierung des Statistik-FPGA 320 und die Verbindung des Statistik-FPGA mit dem CAM 62 und den RAMs 64 und 66 definiert. Mit Ausnahme des Erfassungs-RAM 80 weist 5 im Wesentlichen den gleichen Inhalt auf wie 2, mit der Ausnahme, dass die Signale in 5 detaillierter gegeben sind; die Nummerierung in 2 ist auf 5 übertragen, wo die Teile identisch sind. Der Statistikabschnitt 314 umfasst einen Rahmenanfangsblockpufferabschnitt 50, einen CAM-Verwalter 60, einen ASM-RAM-Verwalter 70, einen Statistikzählerabschnitt 520 und eine MUX-Bus-Schnittstelle 510. Die Signale PCI-Takt, Daten, F-Leer und Rahmen-Start werden von dem FIFO-Pufferabschnitt 18A in den Rahmenanfangsblockpufferabschnitt 50 auf Leitungen 430, 307, 434 bzw. 435 eingegeben und die Signale Auswahl und Rahmenanforderung gehen von dem Rahmenanfangsblockpufferabschnitt 50 auf Leitungen 440 bzw. 436 zu dem FIFO-Pufferabschnitt 18A. Die Signale Durchgeführt, Delta-Adresse, Vergleich, Maske und Zustand werden von dem ASM-RAM-Verwalter 70 in den Rahmenanfangsblockpufferabschnitt 50 eingegeben. Die RAM-Eingangsstruktur (RIP) wird durch den Rahmenanfangsblockpufferabschnitt 50 auf der Leitung 83 an den ASM-RAM-Verwalter 70 ausgegeben und die CAM-Eingangsstruktur (CIP) wird durch den Rahmenanfangsblockpufferabschnitt 50 auf der Leitung 86A an den CAM-Verwalter 60 ausgegeben. Das MUX-Bus-Signal wird von dem FIFO-Pufferabschnitt 18A auf der Leitung 439 in die MUX-Bus-Schnittstelle 510 eingegeben. Das Rahmengrößensignal wird auf der Leitung 31 an den Statistikzähler 520 ausgegeben, während die MUX-Bus-Schnittstelle mit dem CAM-Verwalter, dem ASM-RAM-Verwalter und dem Statistikzähler 520 über einen internen Bus 530 kommuniziert. Der CAM-Verwalter 60 empfängt die Signale CAM-Lesen, CAM-Schreiben, Ansammeln, CAM-Zyklus Setzen und Zustand von dem ASM-RAM-Verwalter 70 auf der Leitung 535. Der CAM-Verwalter gibt die CAM-Ausgabestruktur und das Keine-Übereinstimmung-Signal auf Leitungen 87 bzw. 88 an den ASM-RAM-Verwalter aus. Der ASM-RAM-Verwalter gibt die Signale Index, Inkrementieren und Bytes-Hinzufügen zusätzlich zu den anderen oben erwähnten Ausgaben an den Statistikzählerabschnitt 520 aus.
  • Der Rahmenanfangsblockpufferabschnitt 50 liest Daten von dem FIFO 310 (4), wenn das F-Leer-Signal anzeigt, dass gespeicherte Rahmen verfügbar sind. Der 32 Bit breite Rahmenanfangsblock wird unter Verwendung des PCI-Takts in den Rahmenanfangsblockpufferabschnitt 50 getaktet und braucht 480 Nanosekunden (nS) zur Übertragung des Minimums von 64 Bytes des Anfangsblocks und bis zu 960 nS für das Maximum von 128 Bytes des Anfangsblocks. Der Rahmenanfangsblockpufferabschnitt 50 erzeugt sowohl die RAM- als auch die CAM-Nachschlagstruktur basierend auf Adressierungs-, Zustands-, ISL-Prüf-, Vergleichs- und Maskeninformationen von dem ASM-RAM-Verwalter. Wenn ein CAM-Zugriff zeitlich geplant wird, liefert der CAM-Verwalter entweder die CAM-Adresse bei der Strukturübereinstimmung oder er zeigt Keine-Übereinstimmung an. Der Typ von CAM-Zugriff (1-, 2-, 3- oder 4-Wort) kann vor der tatsächlichen Strukturübereinstimmung über die CAM-Zyklus-Setzen-Instruktion von der ASM aufgebaut werden. Der CAM-Verwalter kann auch aufgebaut sein, um automatisch eine unbekannte Struktur zu seiner Liste bekannter Strukturen hinzuzufügen. Der ASM-Verwalter erzeugt die Instruktionen für den nächsten Zyklus basierend auf seiner vorprogrammierten Nachschlagtabelle. Um Statistiken zu sammeln, liefert die ASM einen Zählerindex und eine Instruktion zum Inkrementieren eines der beiden zugeordneten Zähler und/oder Hinzufügen der Rahmengröße, wie durch das Rahmengrößensignal auf der Leitung 31 gegeben, zu dem anderen zugeordneten Zähler. Das „Index"-Signal sagt dem Statistikzähler, auf welchen der Zähler zugegriffen werden soll. Wenn der ASM-Verwalter anzeigt, dass ein Momentaufnahme-Auslöseimpuls erzeugt werden soll, sagt er dies dem FIFO-Puffer 18A auf der Leitung 437, welcher die PCI-Adresse zwischenspeichert, und unterbricht den Prozessor und sagt außerdem dem Erfassungs-RAM über die Leitung 40, den Rahmen bei dieser PCI-Adresse zu erfassen.
  • Bezug nehmend auf 6 ist ein detailliertes Logikdiagramm des Rahmenanfangsblockpufferabschnitts 50 gezeigt. Der Rahmenanfangsblockpufferabschnitt 50 umfasst einen Zwischen-Schalter-Verbindungs- (ISL-) Anfangsblockdetektor 704, einen Ladeadresserzeuger 606, eine Ladesteuerung 608, einen Adresserzeuger 52, einen Komparator 54, einen Maskenerzeuger 56, einen ISL-Signalerzeuger 612 und einen Rahmenanfangsblockpuffer 18B, der einen RAM-Abschnitt 620, der in acht 16 × 8-Bit-Register unterteilt ist, Auswähler 630, 632 und 72, acht RAM-Eingangsauswähler, die in einen oberen Satz 634 von vier Auswählern und einen unteren Satz 635 von vier Auswählern unterteilt sind, und acht RAM-Ausgangsauswähler 636, die in einen oberen Satz 623 von vier Auswählern und einen unteren Satz 624 von vier Auswählern unterteilt sind, umfasst. Ansprechend auf das Prüf-ISL-Signal, das von dem ASM-RAM-Verwalter 70 auf der Leitung 96 eingegeben wird, liest der ISL-Detektor das Datensignal von dem FIFO-Puffer 18A auf der Leitung 307 und gibt ein Signal an den ISL-Signalerzeuger 612 auf der Leitung 640 aus, wenn ein ISL-Signal erfasst wird. Die Datenleitung 307 ist auch mit dem Dateneingang auf jedem der RAMs 620 verbunden. Das PCI-Taktsignal auf der Leitung 430 und das Rahmenstartsignal auf der Leitung 435 werden in den Ladeadresserzeuger 606 eingegeben, dessen Ausgabe an jeden der Auswähler 634 über die Leitung 644 angelegt wird. Das F-Leer-Signal auf der Leitung 434 wird an die Ladesteuerung 608 angelegt, die das Auswahl- und Rahmenanforderung-Signal auf Leitungen 440 bzw. 436 ausgibt. Die Ladesteuerung 608 gibt außerdem Auswahlsignale an die vier oberen RAM-Eingangsauswähler 634 und Auswähler 630 und 632 über die Leitung 651 und an die vier unteren RAM-Eingangsauswähler 635 über die Leitung 652 aus. Das Durchgeführt-Signal auf der Leitung 641 wird in die Ladesteuerung 608 und den Adresserzeuger 52 eingegeben.
  • Das Delta-Adresse-Signal auf der Leitung 92 wird in den Adresserzeuger 52 eingegeben. Der Adresserzeuger 52 gibt Signale an einen Auswähler in den oberen RAM-Eingangsauswählern 634 und einen Auswähler in den unteren RAM-Eingangsauswählern 635 über jede von vier Adressleitungen 655 aus. Der Adresserzeuger gibt außerdem ein Auswahlsignal an jeden von Auswählern 636 über die Leitung 643 aus. Bei jedem der Auswähler 634 und 635 ist der Ausgang mit dem Adresseingang eines entsprechenden der RAM-Register 620 verbunden. Die Ausgabe jedes RAM-Registers in dem oberen Satz 621 wird an jeden der Auswähler 623 angelegt und die Ausgabe jedes der RAM-Register in dem unteren Satz 622 wird an jeden der Auswähler 624 angelegt. Die Ausgabe jedes der Auswähler 623 und 624 wird an den Auswähler 632 angelegt, während die Ausgabe der Auswähler 625 und 626 auch an den Auswähler 630 angelegt wird. Die Ausgabe des Auswählers 630 wird an den ISL-Signalerzeuger 612 angelegt und der Ausgang des ISL-Signalerzeugers 612 ist die Leitung 82, die die 8-Bit-RAM-Eingangsstruktur liefert. Die Ausgabe des Auswählers 632 wird an den Komparator 54 und den Auswähler 72 angelegt, das Vergleichsinstruktionssignal auf der Leitung 93 wird an den Komparator 54 angelegt und das Maskensignal auf der Leitung 91 wird an den Maskenerzeuger 56 angelegt. Die Ausgabe des Auswählers 72 wird an den Maskengenerator 56 angelegt. Die Ausgabe des Maskenerzeugers 56 ist die CAM-Eingangsstruktur auf der Leitung 86. Es wird angemerkt, dass die Leitungen 641, 90, 91, 92, 93 und 96 Leiter sind, die Teil der Leitung 534 (5) sind.
  • Einige bestimmte Funktionen des Rahmenanfangsblockpuffers, die noch nicht erläutert wurden, sind wie folgt. Der ISL-Detektor 604 sucht nach der 01000c0000-Struktur, wenn die Daten in den RAM geladen werden. Wenn derselbe diese Struktur erfasst, ist das Protokoll eine ISL und die Ausgabe auf der Leitung 82 an den RAM wird bei allen Einsen, falls abgefragt, blockiert. Der Adresserzeuger nimmt das Delta-Adresssignal und fügt dasselbe zu der zwischengespeicherten vorherigen Adresse hinzu. Dann erzeugt er vier versetzte Adressen, eine für jeden der vier RAM-Blöcke 621 oder 622. Der RAM 620 arbeitet als zwei Seiten, von denen eine lädt, während die andere gerade verarbeitet wird. Die Seiten werden ausgetauscht, wenn die Ladesteuerung 608 sieht, dass die „gerade verarbeitete" Seite „erledigt" ist, und also, dass die „gerade geladene" Seite fertig geladen ist. Die Signalausgabe auf der Leitung 86A ist immer ein Signal mit 32 Bits oder weniger, obwohl die Signalausgabe auf der Leitung 86 von der Maske 56 auch ein 32-Bit-Signal ist. Dies bedeutet, dass bei dem anfänglichen Zyklus (0,0) 24 Bits auf der Leitung 86 erzeugt werden und acht Bits über die Leitung 90 hinzugefügt werden, um die 32-Bit-Signalausgabe auf der Leitung 86A zu vervollständigen, bei nachfolgenden Zyklen jedoch werden die vollen 32 Bits auf der Leitung 86 erzeugt.
  • Der ASM-RAM-Verwalter ist in 7 gezeigt. Er umfasst den ASM-RAM 64 und einen CAM-Ausgabe-Zu-RAM-Adresse-Wandler, der die durch den CAM 62 ausgegebene Struktur in eine geeignete RAM-Adresse umwandelt. Außerdem umfasst er einen Auswähler 76, ein Latch 708 und Puffer 710, 712 und 714. Die CAM-Ausgabestruktur wird über eine Leitung 87 in einen Wandler 704 eingegeben und das Keine-Übereinstimmung-Signal wird über eine Leitung 88 eingegeben. Das 111111-Signal und die 1111,0000-Spezialfall-Signale werden ebenso in den Wandler 704 eingegeben. Ein CAM-Lesesignal, das durch den ASM-RAM-Verwalter auf der Leitung 728 ausgegeben wird, wird auch in den Wandler 704 eingegeben. Die Ausgabe des Wandlers 704 wird an den Auswähler 76 angelegt. Das CAM-Lesesignal wird als ein Auswahlsignal über eine Leitung 720 an den Auswähler 76 angelegt. Die RAM-Eingabestruktur wird über eine Leitung 82 in den Auswähler 76 eingegeben. Die interne Busleitung 532 trägt eine Anzahl von Signalen zu und von dem ASM-RAM-Verwalter 70: ein Adresssignal auf einer Leitung 721, das an den Auswähler 76 angelegt wird; ein Schreibfreigabesignal auf eine Leitung 722 und ein Datenschreibsignal auf einer Leitung 723, die an den ASM-RAM 64 angelegt werden; und ein Datenlesesignal auf einer Leitung 724, das durch den ASM-RAM 64 ausgegeben wird. Diese Signale werden verwendet, wenn der ASM-RAM programmiert und gelesen wird. Der ASM-RAM gibt außerdem die Signale Erledigt, Delta-Adresse, Vergleich, Maske, Zustand, CAM-Lesen, CAM-Schreiben, Ansammeln, CAM-Zyklus Setzen, Index, Inkrementieren, Bytes-Hinzufügen, ISL-Prüfen und Auslöser auf der Leitung 728 aus. Das Latch 708 latcht die aus dem ASM-RAM 64 ausgegebenen Signale. Es wird angemerkt, dass die Leitung 728 die gleiche ist wie die Leitungen 38, 40, 437, 534 und 535 aus 5. Die Funktionen des ASM-RAM-Verwalters und die Verwendung seiner Ausgangssignale wurden oben erläutert oder werden unten noch erläutert.
  • Die Details der Logik des CAM-Verwalters 60 sind in 8 gezeigt. Der CAM-Verwalter 60 umfasst einen CAM 62, eine Busschnittstelle 810, eine Steuerung 812, einen CAM-Befehlserzeuger 814, Auswähler 816, 820, 821 und 822 und ein Latch 824. Der interne Bus 531 stellt eine Verbindung zu der Busschnittstelle 810 her. Die Busschnittstelle gibt die folgenden Signale aus: ein Buszugriffsignal auf einer Leitung 836 an den Auswähler 820, das als ein Auswahlsignal für diesen Auswähler dient; ein Datensignal auf einer Leitung 837, das als eine Eingabe an den Auswähler 820 angelegt wird; ein Schreibfreigabesignal auf einer Leitung 838, das als eine Eingabe an den Auswähler 821 angelegt wird; ein Daten/Befehlsauswahl-Signal auf einer Leitung 839, das als eine Eingabe an den Auswähler 822 angelegt wird. Ein Datensignal, das durch den CAM 62 an seinem 32-Bit-Daten-Eingangs/Ausgangsanschluss, D32, ausgegeben wird, wird auf der Leitung 835A an die Busschnittstelle 810 angelegt. Das CAM-Eingangsstruktursignal wird auf der Leitung 86A in den Auswähler 816 eingegeben. Die Signale CAM-Lesen, CAM-Schreiben, Ansammeln und CAM-Zyklus Setzen werden über Leitungen 831, 832, 833 bzw. 834 an die Steuerung 812 angelegt. Die Steuerung gibt Signale auf der Leitung 840 an den CAM-Befehlserzeuger 814 aus, die den Erzeuger 814 anweisen, einen geeigneten Befehl auszugeben, der durch den CAM 62 erkennbar ist; Beispiele dieser Befeh le sind unten erläutert. Die Ausgabe des CAM-Befehlserzeugers wird als eine Eingabe an den Auswähler 814 über die Leitung 841 angelegt. Ein Auswahlsignal wird an den Auswähler 816 durch die Steuerung 812 über die Leitung 842 angelegt. Ein Schreibfreigabesignal wird durch die Steuerung 812 als eine Eingabe an den Auswähler 821 über die Leitung 843 angelegt. Ein Daten/Befehlsauswahl-Signal wird durch die Steuerung 812 auf der Leitung 844 ausgegeben und als eine Eingabe an den Auswähler 822 angelegt. Die Ausgabe des Auswählers 820 wird an den 32-Bit-Dateneingang/-ausgang, D32, des CAM 62 angelegt. Der Dateneingang/-ausgang, D32, gibt auch sein Signal auf der Leitung 835B aus, das an das Latch 826 angelegt wird, und stellt die CAM-Ausgabestruktur auf der Leitung 87 bereit. Die Ausgabe des Auswählers 821 wird an den Schreibfreigabeeingang, w/, des CAM 62 angelegt. Die Ausgabe des Auswählers 822 wird an den Daten/Befehlsauswahl-Eingang, /CM, des CAM 62 angelegt. Die Ausgabe des Übereinstimm-Flag-Ausgangs, /MF, des CAM 62 wird über das Signal 848 an das Latch 826 angelegt und stellt das Keine-Übereinstimmung-Signal auf der Leitung 88 bereit. Das Latch 826 latcht die CAM-Ausgabestruktur und das Keine-Übereinstimmung-Signal, das an dasselbe angelegt wird.
  • Wie oben angezeigt wurde, können Daten durch das D32-Tor entweder in den CAM 62 geschrieben oder aus dem CAM 62 heraus gelesen werden. Das Schreibfreigabesignal, das bei /W eingegeben wird, bestimmt die Richtung eines Datenflusses. Befehle werden auch durch das D32-Tor in den CAM 62 eingegeben. Das an den /CM-Eingang angelegte Signal bestimmt, ob die Eingabe Daten oder ein Befehl ist. Das Signal an dem /MF-Ausgang zeigt an, ob eine Übereinstimmung während eines Vergleichzyklus durchgeführt wurde oder nicht. Der CAM arbeitet, wenn er als eine Nachschlagtabelle verwendet wird, bei 2 zu 5 Zyklen: bei dem ersten bis vierten Takt-Tick gehen zu vergleichende Daten ein; bei dem darauffolgenden Takt-Tick kommt ein Adress- oder ein Keine-Übereinstimmung-Signal heraus. Nach einem Empfang des CAM-Schreibsignals schreibt die Steuerung 812 die vorgelegte CAM-Eingangsstruktur in das Zielwortregister des CAM 62. Das gesetzte CAM-Zyklussignal umfasst Informationen über die Anzahl von 32-Bit-Wörtern, die in das Zielwortregister geschrieben werden, bevor erwartet wird, dass der CAM mit den Daten übereinstimmt. Auf ein Empfangen des gesetzten CAM-Zyklussignals hin verwendet die Steuerung den zeitweiligen Befehlsaufhebe- (TCO-) Befehl, um in das Segmentsteuerregister des CAM zu schreiben, um die erwartete Anzahl von 32-Bit-Wörtern zu setzen, bevor ein Vergleich benötigt wird. Dies könnte 1, 2, 3 oder 4 sein. Auf ein Empfangen eines Ansammlungssignals hin setzt die Steuerung, wenn Keine-Übereinstimmung das Ergebnis eines Vergleichs ist, die SPD-Instruktion auf die nächste freie Adresse und dann bewegt ein Datenbewegungs- (MOV-) Befehl das Zielwortregister in die nächste freie Adresse. Auf ein Empfangen eines CAM-Lesesignals hin führt die Steuerung einen Lesevorgang aus, um die Adresse der Übereinstimmung aus dem Statusregister in dem CAM zu erhalten. Beim Programmieren weist der Prozessor freien Zugriff auf, um sowohl Daten- als auch Befehlsregister zu lesen und zu schreiben. Für weitere Informationen über eine Funktionsweise eines CAM könnten die Beschreibungen und Dokumentation für einen CAM konsultiert werden.
  • Die Logikorganisation des Statistikzählerabschnitts 520 ist in 9 gezeigt. Der Statistikzählerabschnitt 520 umfasst den Zähler-RAM 66, der in zwei Abschnitte 66A und 66B unterteilt ist. Der Statistikzählerabschnitt 520 umfasst auch einen Adressdecodierer 904, einen Herzschlagerzeuger 906, eine Seitenauswahllogikeinheit 908, ein Addiererlatch 68, ein Inkrementierlatch 67, Auswähler 920 bis 927 und Puffer bzw. Zwischenspeicher 930 bis 933. Der Zähler kann als in zwei separate Zählerabschnitte unterteilt betrachtet werden, einen ersten Abschnitt, der den RAM 66A, die Auswähler 924 bis 926 und die Puffer 930 und 931 aufweist, und einen zweiten, der den RAM 66B, die Auswähler 921 bis 923 und die Puffer 932 und 933 aufweist. Mit Ausnahme der Verbindungen zwischen der Seitenauswahllogik 908 und den Auswählern 926 und 923 sind der Entwurf und die Funktionsweise des ersten Abschnitts gleich wie bei dem zweiten, und so erläutern wir nur den ersten detailliert. Wie unten zu sehen ist, wird, während ein RAM gerade beschrieben wird, der Inhalt des anderen RAM gespeichert und bleibt statisch. Ein Decodierer empfängt das interne Bussignal auf einer Leitung 533 und legt geeignete Signale an die Eingänge jedes von Auswählern 924 bis 926 über Leitungen 942 an, sowie das Auswahlsignal an jeden Auswähler auf der Leitung 943, während das Auswahlsignal an Auswähler 921 bis 923 über eine Leitung 941 angelegt wird. Die Ausgabe des Auswählers 926 wird an den Schreibfreigabeeingang des RAM 66A angelegt, die Ausgabe des Auswählers 925 wird an den Adresseingang des RAM 66A angelegt und die Ausgabe. des Auswählers 924 wird an den Dateneingang/-ausgang des RAM 66A durch den Puffer 930 angelegt. Der Dateneingang/-ausgang des RAM 66A ist außerdem mit den Eingängen von Auswählern 920 und 927 durch den Puffer 931 verbunden. Der Ausgang des Auswählers 927 liefert die Datenausgabe über eine Leitung 944 an den internen Bus. Der Herzschlagerzeuger 906 liefert eine Ausgabe auf einer Leitung 968, vorzugsweise eine jede Sekunde, die an die Seitenauswahllogik 908 angelegt wird. Die Seitenauswahllogik 908 legt ein Ausgangssignal an den Eingang des Auswählers 926 über eine Leitung 950 an und ein weiteres Ausgangssignal an den Eingang des Auswählers 923 über eine Leitung 951. Das Indexsignal wird über eine Leitung 956 an den Eingang der Auswähler 925 und 922 angelegt, das Inkrementiersignal wird über eine Leitung 957 an das Inkrementierlatch 67 angelegt, das Bytes-Hinzufügen-Signal wird über eine Leitung 958 an das Addiererlatch 68 angelegt und das Rahmengrößesignal wird über eine Leitung 31 an das Addiererlatch 68 angelegt. Die Ausgabe des Auswählers 920 wird über eine Leitung 961 an das Inkrementierlatch 67 und das Addiererlatch 68 angelegt. Das Indexsignal sagt dem RAM, welches seiner internen Zählregister zu inkrementieren ist und/oder zu welchem Bytes hinzuzufügen sind. Typischerweise könnte ein Statistik-RAM 66A 100 oder mehr unterschiedliche Statistikregister oder -zähler umfassen.
  • Der Herzschlagerzeuger 906 ist ein Eine-Sekunde-Taktgeber, der den Kontext der beiden RAMs 66A und 66B jede Sekunde umschaltet. Dies bedeutet, dass für eine Sekunde ein RAM, z.B. 66A, „aktiv" ist und der andere RAM, 66B, „inaktiv" ist. In der nächsten Sekunde sind die Rollen der RAMs umgekehrt. Wenn ein RAM aktiv ist, werden die eingehenden Statistikdaten in demselben gespeichert. Dies bedeutet, dass, wenn ein Inkrementieren- und/oder Bytes-Hinzufügen-Befehl eingeht, während ein RAM „aktiv" ist, der Inhalt des geeigneten Registers des RAM in das entsprechende Latch gelesen wird, das dann inkrementiert wird und/oder zu demselben wird hinzugefügt, dann wird der Inhalt zurück in das geeignete Register in dem RAM geschrieben. Wenn ein RAM inaktiv ist, kann derselbe gelesen werden, um die gespeicherten Statistikinformationen an einen Prozessor, der mit dem Bus 16 verbunden ist, weiterzuleiten. Der Prozessorbus weist uneingeschränkten Lese/Schreibzugriff auf die RAMs auf, beobachtet jedoch den Zustand des Herzschlags vor einem Zugreifen. Er greift nur auf den „inaktiven" RAM zu, mit Ausnahme zu Initialisierungszwecken.
  • Die FGPAs, die Teile der Puffer und Statistikabschnitte sind, sind vorzugsweise in FGPAs vom Xilinx-Typ implementiert. Ein geeigneter CAM ist ein MU9C1965A Wide LANCAMTM, hergestellt durch MUSIC Semiconductors, 254 B Mountain Avenue, Hadkettstown, New Jersey 07840. Der RAM könnte ein beliebiger geeignet schneller RAM sein.
  • 3. Beispiel: Parsen eines TCP/2P-Rahmens über ein Ethernet
  • Tabelle II stellt das Format eines Anfangsblocks, minus der Präambel, für einen Ethernet-Übertragungs-Steuerprotokoll/Internetprotokoll-(TCP/IP-) Rahmen dar, einen exem plarischen Rahmen, der durch den Protokollanalysator gemäß der Erfindung analysierbar ist.
  • Figure 00300001
    TABELLE II
  • Jede vertikale Unterteilung oder Zeile der Tabelle stellt zwei Bytes dar. Die MAC-Zieladresse z.B. besetzt die ersten sechs Bytes des Anfangsblocks und der Ethertyp besetzt das 13. bis 14. Byte des Anfangsblocks. Wenn eine Zeile in Spalten unterteilt ist, werden die zwei Bytes entsprechend von links nach rechts unterteilt. Der Diensttyp B. besetzt das 16. Byte des Anfangsblocks. 10 ist ein Flussdiagramm, das das Parsen eines bestimmten TCP/IP-Rahmens darstellt. Bei diesem Flussdiagramm stellt jedes Feld mit spitz zulaufenden Enden einen CAM- oder ASM-RAM-Zyklus dar, in dem eine Entscheidung durchgeführt wird. Für jeden derartigen Zyklus gibt es eine Eingabe in und eine Ausgabe aus entweder dem CAM oder ASM-RAM. Wenn der Zyklus ein CAM-Zyklus ist, wird das Wort CAM oben rechts in das Entscheidungsfeld geschrieben, gemeinsam mit einer Zahl, die anzeigt, ob dies ein 32-, 64-, 96- oder 128-Bit-CAM-Zyklus ist. Der Zustand der ASM 20 für den Zyklus ist oben links in dem Feld angezeigt. Felder ohne spitz zulaufende Enden sind Schritte, die nach einem Zyklus stattfinden, es jedoch nicht erforderlich machen, dass ein weiterer Zyklus oder eine weitere Entscheidung durchgeführt wird. Tabelle III zeigt die Eingabe und Ausgabe für jeden Zyklus. In diesem Fall ist das Kommunikationssystem ein Ethernet, so dass der Protokollstapel aus den Ethertyp-(ET-) Feld-Bytes 13 und 14 bestimmt wird und in der Spalte ET gezeigt ist.
  • Nun Bezug nehmend auf die Tabellen II und III und 10 ist der erste Schritt 1004 ein 64-Bit-CAM-Zyklus und der Zustand ist die Anfangsbedingung, 0,0. Die ASM 20 prüft, um zu sehen, ob die Eingangs-(I/P-) Zieladresse (ZA) die ISL-Zieladresse ist, d. h., ob diese gleich 0x01000c0000 ist. Da dieser Schritt ein vorbereitender Schritt ist, der für jeden Rahmen stattfindet, ist er bei dem bevorzugten Ausführungsbeispiel in Hardware implementiert, insbesondere der ISL-Anfangsblockdetektor 604, der in dem Statistik-FPGA 320 (3 und 6) implementiert ist, ist jedoch hier als ein CAM-Zyklus gezeigt, um die Flexibilität des Systems darzustellen. Bei unserem Beispiel ist der Rahmen kein ISL-Rahmen, so dass die Ausgabe der ASM 20 sagt, 12 Bytes auszulassen und sich zu dem höchstwertigen Ethertyp-Byte zu bewegen und dasselbe in dem RAM zu parsen. Das System tut dies in Schritt 1006 und findet den Ethertyp 0x08xx. Da dies größer ist als 0x60xx, ist dies kein 802,3-Länge-Feld. Die Ausgabe weist an, dass das System in den Zustand 0,4 geht, und parst den gesamten Ethertyp in dem CAM. Es wird angemerkt, dass, wenn der Typ nicht größer oder gleich 0x60xx gewesen wäre, das System zu dem Zustand 0,6 gegangen wäre, was zu einem vollständig unterschiedlichen Abschnitt des Algorithmus führen würde, wobei dieser Abschnitt hier nicht gezeigt ist. Der nächste Schritt, d. h. Zustand 0,4, ist ein 32-Bit-CAM-Zyklus, so dass das System den CAM-Zyklus bei Schritt 1007 auf 32 Bits setzt. Schritt 1008 ist ein 32-Bit-CAM-Zyklus, in dem der Ethertyp 0x0806 als IP erkannt wird, und so wird der Zähler, der dem IP-Protokolltyp zugewiesen ist, bei Schritt 1010 inkrementiert und das System 20 gelangt in den 0-ten IP-Zustand, d. h. IP, 0, und schreitet 11 Bytes zu dem Protokolltypfeld voran und zeigt an, dass als Nächstes ein RAM-Zyklus kommt. Wenn der Ethertyp nicht erkannt worden wäre, hätte es entweder einen Fehler gegeben oder dieser Rahmen wäre einer gewesen, an dessen Zählung das System nicht interessiert war, so dass das System zurück zu dem Zustand 0,0 gegangen wäre und sich einen neuen Rahmen angesehen hätte. Bei Schritt 1012 wird der IP-Protokolltyp in dem RAM gelesen und als TCP erkannt. Wieder hätte es, wenn der Typ nicht erkennbar gewesen wäre, einen Fehler gegeben oder dieser Rahmen wäre einer gewesen, an dessen Zählung das System nicht interessiert war, so dass das System zurück in den Zustand 0,0 gegangen wäre und sich einen neuen Rahmen angesehen hätte. Die Instruktionen aus dem RAM bei Schritt 1012 zeigen an, dass der nächste Zustand der IP,1-Zustand ist, und das System sollte die Daten drei Bytes zurück prüfen, was dasselbe in der Fragmentierungsflagregion des Rahmens platziert, sowie, dass der nächste Zyklus ein RAM-Zyklus ist. Wenn keine Fragmentierung vorliegt oder wenn dies das erste Fragment ist, wird der Zähler, der einem Zählen von TCP-Rahmen zugewiesen ist, bei Schritt 1016 inkrementiert und dann werden die Bytes des Rahmen bei Schritt 1018 gezählt. Wenn eine Fragmentierung vorliegt und dies ein bestimmtes anderes Fragment als das erste ist, was hier der Fall ist, werden nur die Bytes gezählt. Die Instruktionen in dem IP,1-Zustand sagen dem System, sechs Bytes zurückzugehen, um sich die Anfangsblocklänge in einem RAM-Zyklus anzusehen, und setzt den nächsten Zustand auf IP,2. Wenn das Anfangsblocklängenfeld nicht gültig ist, würde das System wieder zurück zu dem Zustand 0,0 gehen und sich einen neuen Rahmen ansehen. Bei Schritt 1020 jedoch stellt sich heraus, dass die An fangsblocklänge hier gültig ist, und dies sagt dem System, wo der Beginn der TCP-Schicht ist.
  • Figure 00330001
  • Figure 00340001
    TABELLE III
  • Die Instruktionen in Schritt 1020 für dieses bestimmte Längenfeld sind, dass das System 20 Bytes voranschreiten 5 soll, wo sich das TCP-Quellentor befindet, und dass dies in das Zielwortregister in dem CAM geladen werden soll, was bei Schritt 1022 durchgeführt wird. Es wird angemerkt, dass das Zielwortregister in dem CAM sich von dem Vergleichsregister 54 unterscheidet; ersteres ist ein spezifisches 10 Register in dem CAM 62, während letzteres in dem Statistik-FPGA 320 implementiert ist. Das System fährt dann mit einem Zustand IP,3, wie angewiesen, fort. Unabhängig von der Eingabe bittet bei Schritt 1024 die ASM 20, dass der Zieltor mit dem Quellentor verglichen wird (I/P = xx), und dass 15 der kleinere Wert der ASM bei dem nächsten Zyklus vorgelegt wird, der ein CAM-Zyklus ist. Sie instruiert außerdem, dass, wenn das Tor nicht erkannt wird, dieses als eine neue Struktur hinzugefügt wird und Statistiken darüber zu sammeln sind. Wie angewiesen, werden die Tore bei Schritt 1026 20 verglichen und das System fährt mit dem IP,4-Zustand fort, der Schritt 1028 ist. In diesem Fall wird das Tor nicht erkannt, so dass bei Schritt 1030 das Tor in den CAM geladen wird, und eine Instruktion geht heraus, dass der zugeordnete Statistik-RAM-Zählwert inkrementiert werden soll, was bei Schritt 1032 durchgeführt wird. Der Algorithmus wird dann wieder zurück auf den Anfang gesetzt, um ein neues Paket zu erwarten.
  • Ein Merkmal der Erfindung besteht darin, dass die Nachschlagtabelle eine Zustandsmaschine verwendet und keinen Prozessor und gespeicherte Software. Das bevorzugte Ausführungsbeispiel der Zustandsmaschine umfasst einen CAM und einen RAM, es könnte jedoch auch in anderen Weisen implementiert sein.
  • Ein weiteres Merkmal der Erfindung besteht darin, dass die Nachschlagtabelle einen CAM verwendet. Dies erlaubt es, dass lange Datenabschnitte schnell identifiziert werden können. Die durch den CAM ausgegebene Adresse wird vorzugsweise in einen RAM eingegeben, könnte jedoch auch in ein weiteres beliebiges Logiksystem eingegeben werden, in dem Informationen an spezifischen Adressen gespeichert sind. Es ist auch möglich, dass die ausgegebenen Adressen einfach an einen Speicher übertragen und später verarbeitet werden könnten.
  • Ein weiteres Merkmal der Erfindung besteht darin, dass die Fähigkeit der Zustandsmaschine 20, Statistiken über Rahmen zu sammeln, die auf dem PCI-Bus 16 laufen, nicht auf vorbestimmte Rahmen- und Protokolltypen eingeschränkt ist. Wenn beim Prüfen eines Rahmenanfangsblocks eine neue Struktur gefunden wird, die zuvor in dem System 15 noch nicht gesehen wurde, kann der ASM-RAM-Verwalter 70 eine Instruktion an die Logikeinheit ausgeben, die in dem Statistik-FPGA 320 implementiert ist, um zu bewirken, dass dasselbe die neue Struktur in den CAM schreibt. Ein neuer Zähler kann außerdem zu dem Zähler-RAM 66 hinzugefügt werden, um die Vorkommen der neuen Struktur zu zählen. Auf nachfolgende Auftritte der Struktur hin bewirkt jedes Auftreten, dass der neue Zähler, der der neuen Struktur entspricht, inkrementiert wird.
  • Ein weiteres Merkmal der Erfindung ist die Verwendung eines Adressversatzwertes, um den nächsten Abschnitt des Datenrahmens, der analysiert werden soll, zu lokalisieren. Wie oben angezeigt wurde, ist der Versatzwert die positive oder negative Zahl von Bytes, die das System von der Adresse des gegenwärtigen oder ersten Abschnitts, der gerade analysiert wird, gehen sollte, oder der gerade analysiert würde, um den nächsten Abschnitt oder zweiten Abschnitt, der analysiert werden soll, zu finden. Der Versatzwert wird durch den Adresserzeuger 52 verwendet, um die Adresse des nächsten Abschnitts des Rahmens, der analysiert werden soll, zu erzeugen. Die Verwendung des Versatzes weist zwei unterschiedliche Vorteile auf. Zuerst reduziert sie die Anzahl unterschiedlicher Zweige des Analysealgorithmus stark, d. h. die Anzahl von Zuständen, die in dem CAM 62 und RAM 64 gespeichert werden müssen. Dies heißt, dass, da die relative Länge von Anfangsblöcken variiert, die absolute Adresse eines bestimmten Rahmenanfangsblocks viele unterschiedliche Werte annehmen könnte, während die relative Position der verschiedenen Abschnitte des Rahmenanfangsblocks nicht annähernd so viel variiert. Zweitens reduziert sie die Anzahl von Leitern wesentlich, die benötigt werden, um den Ausgang der Zustandsmaschine mit dem Adresserzeuger zu verbinden, da es viel weniger Leiter braucht, um den Versatzwert zu tragen, als es braucht, um eine absolute Adresse zu tragen.
  • Es wurde ein neuartiger Protokollanalysator zum Sammeln von Informationen über die Verwendung eines Paketnetzes beschrieben, die es dem Benutzer erlauben, Informationen über jeden Rahmen zu sammeln, der auf einem Paketnetz übertragen wird, selbst mit Gigabit-Übertragungsraten, und viele weitere Vorteile aufweisen. Es ist klar, dass, nun, da die Erfindung vollständig offenbart wurde, Fachleute auf dem Gebiet zahlreiche Verwendungen und Modifizierungen des beschriebenen spezifischen Ausführungsbeispiels durchführen könnten, ohne von den erfindungsgemäßen Konzepten abzuweichen. Nun z.B., da offenbart wurde, dass eine relativ einfache Zustandsmaschine verwendet werden kann, um Paketnetzstatistiken zu sammeln, können andere Zustandsmaschinen zu diesem Zweck entworfen werden. Nun, da offenbart wurde, dass ein CAM besonders zur Verwendung in einem Protokollanalysator angepasst ist, können weitere Protokollanalysatoren unter Verwendung eines CAM entworfen werden. Es ist ebenso klar, dass äquivalente Komponenten oder Schältungen anstelle der verschiedenen Komponenten und Schaltungen, die hierin beschrieben sind, eingesetzt werden können. Zusätzliche Merkmale könnten hinzugefügt werden. Eine größere oder kleinere Anzahl von Teilen könnte verwendet werden. Folglich soll die Erfindung als jedes einzelne neuartige Merkmal und jede einzelne neuartige Kombination von Merkmalen, die in dem Protokollanalysatorsystem, das offenbart wurde, vorhanden sind und/oder von demselben besessen werden, umfassend aufgefasst werden.

Claims (1)

  1. Vorrichtung zum Sammeln von Netzstatistikinformationen über ein Paketnetz, wobei die Vorrichtung folgende Merkmale aufweist: einen Eingangspuffer zum Speichern eines Datenpakets, das sich auf dem Paketnetz bewegt; eine elektronische Nachschlagtabelle, die mit dem Puffer kommuniziert, zum Analysieren von zumindest einem Abschnitt des Datenpakets und zum Liefern eines Ausgangssignals, das ein Statistiksignal umfasst, das die Statistikinformationen darstellt, wobei die Nachschlagtabelle eine Zustandsmaschine aufweist; und einen elektronischen Speicher, der mit der Nachschlagtabelle kommuniziert, zum Speichern der Netzstatistiken; dadurch gekennzeichnet, dass der Abschnitt des Datenpakets eine erstes Signal aufweist, das bei einer ersten Adresse in dem Datenpaket positioniert ist, und das Ausgangssignal ein Delta-Adresssignal umfasst, das einem Versatzwert entspricht, und die Zustandsmaschine einen Adressgenerator umfasst, der auf das Delta-Adresssignal anspricht, zum Liefern eines Adresssignals, das einer zweiten Adresse in dem Datenpaket entspricht, die um den Versatzwert von der ersten Adresse versetzt ist.
DE69837020T 1997-08-01 1998-03-26 Vorrichtung zur Sammlung von Informationen über die Benutzung eines Paketnetzwerks Expired - Fee Related DE69837020T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/904,511 US6304903B1 (en) 1997-08-01 1997-08-01 State machine for collecting information on use of a packet network
US904511 1997-08-01

Publications (2)

Publication Number Publication Date
DE69837020D1 DE69837020D1 (de) 2007-03-22
DE69837020T2 true DE69837020T2 (de) 2007-05-24

Family

ID=25419276

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69833814T Expired - Fee Related DE69833814T2 (de) 1997-08-01 1998-03-26 Verfahren und Vorrichtung zur Sammlung von Informationen über die Benutzung eines Paketnetzwerks
DE69837020T Expired - Fee Related DE69837020T2 (de) 1997-08-01 1998-03-26 Vorrichtung zur Sammlung von Informationen über die Benutzung eines Paketnetzwerks

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69833814T Expired - Fee Related DE69833814T2 (de) 1997-08-01 1998-03-26 Verfahren und Vorrichtung zur Sammlung von Informationen über die Benutzung eines Paketnetzwerks

Country Status (4)

Country Link
US (1) US6304903B1 (de)
EP (2) EP1545058B1 (de)
JP (1) JPH11127198A (de)
DE (2) DE69833814T2 (de)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6791947B2 (en) * 1996-12-16 2004-09-14 Juniper Networks In-line packet processing
US6658002B1 (en) * 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
US7333484B2 (en) * 1998-08-07 2008-02-19 Intel Corporation Services processor having a packet editing unit
US7133400B1 (en) * 1998-08-07 2006-11-07 Intel Corporation System and method for filtering data
US9195784B2 (en) * 1998-08-31 2015-11-24 Cadence Design Systems, Inc. Common shared memory in a verification system
US20060117274A1 (en) * 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
CA2351175C (en) 1998-11-24 2016-05-03 Niksun, Inc. Apparatus and method for collecting and analyzing communications data
US6633563B1 (en) * 1999-03-02 2003-10-14 Nortel Networks Limited Assigning cell data to one of several processors provided in a data switch
US6389494B1 (en) * 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US7073020B1 (en) 1999-01-04 2006-07-04 Emc Corporation Method for message transfer in computer storage system
US7117275B1 (en) 1999-01-04 2006-10-03 Emc Corporation Data storage system having separate data transfer section and message network
US6768992B1 (en) * 1999-05-17 2004-07-27 Lynne G. Jolitz Term addressable memory of an accelerator system and method
WO2001061464A1 (fr) * 2000-02-16 2001-08-23 Logic Research Co., Ltd. Automate fini, dispositif a semiconducteur l'utilisant et procede de conception associe
US6993621B1 (en) 2000-03-31 2006-01-31 Emc Corporation Data storage system having separate data transfer section and message network with plural directors on a common printed circuit board and redundant switching networks
US7003601B1 (en) 2000-03-31 2006-02-21 Emc Corporation Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board
US7010575B1 (en) 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US7007194B1 (en) 2000-06-29 2006-02-28 Emc Corporation Data storage system having point-to-point configuration
US6785237B1 (en) 2000-03-31 2004-08-31 Networks Associates Technology, Inc. Method and system for passive quality of service monitoring of a network
US6779071B1 (en) 2000-04-28 2004-08-17 Emc Corporation Data storage system having separate data transfer section and message network with status register
US6671828B1 (en) * 2000-06-12 2003-12-30 Agilent Technologies, Inc. Address routing in a protocol analyzer
US6826180B1 (en) * 2000-06-14 2004-11-30 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for storing summation blocks of context information for a core processor
US6845099B2 (en) * 2000-06-14 2005-01-18 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for modifying selectors to retrieve context information for a core processor
US6791983B1 (en) * 2000-06-14 2004-09-14 Mindspeed Technologies, Inc. Content-addressable memory for use with a communication packet processor to retrieve context information
US6798778B1 (en) * 2000-06-14 2004-09-28 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for updating context information for a core processor
US6891829B1 (en) * 2000-06-14 2005-05-10 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for retrieving context information for a core processor
US6742017B1 (en) * 2000-06-29 2004-05-25 Emc Corporation Data storage system having separate data transfer section and message network with pointer or counters
US7543077B1 (en) * 2000-09-19 2009-06-02 Stragent, Llc Ternary content addressable memory embedded in a central processing unit
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7236490B2 (en) 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US6449214B1 (en) * 2000-11-28 2002-09-10 Silicon Access Networks Statistics counter overflow content addressable memory (CAM) and method
WO2002063421A2 (en) * 2001-01-03 2002-08-15 University Of Southern California System level applications of adaptive computing (slaac) technology
WO2002075556A1 (en) * 2001-03-19 2002-09-26 Empirix Inc. A method for the tracing and analysis of a multi-protocol communication using a multi-protocol communication analysis application program
US7167472B2 (en) * 2001-04-18 2007-01-23 Brocade Communications Systems, Inc. Fibre channel zoning by device name in hardware
US7366194B2 (en) 2001-04-18 2008-04-29 Brocade Communications Systems, Inc. Fibre channel zoning by logical unit number in hardware
US7151778B2 (en) 2001-04-18 2006-12-19 Brocade Communications Systems, Inc. Frame filtering of fibre channel packets
US7266117B1 (en) 2002-05-06 2007-09-04 Foundry Networks, Inc. System architecture for very fast ethernet blade
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US7468975B1 (en) 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US20120155466A1 (en) 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US7017186B2 (en) 2002-07-30 2006-03-21 Steelcloud, Inc. Intrusion detection system using self-organizing clusters
US7206831B1 (en) * 2002-08-26 2007-04-17 Finisar Corporation On card programmable filtering and searching for captured network data
US20040103220A1 (en) * 2002-10-21 2004-05-27 Bill Bostick Remote management system
US7240172B2 (en) * 2003-02-07 2007-07-03 Sun Microsystems, Inc. Snapshot by deferred propagation
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
WO2005036834A1 (ja) * 2003-10-10 2005-04-21 Fujitsu Limited 統計情報採取方法及び装置
US7430203B2 (en) * 2004-01-29 2008-09-30 Brocade Communications Systems, Inc. Fibre channel zoning hardware for directing a data packet to an external processing device
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
US7593409B2 (en) * 2005-12-29 2009-09-22 Honeywell International Inc. Apparatus and methods for monitoring network traffic
JP2007242103A (ja) * 2006-03-07 2007-09-20 Seiko Epson Corp データ再生装置、データ再生方法およびデータ再生プログラム
US7903654B2 (en) 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US20100085891A1 (en) * 2006-12-19 2010-04-08 Andreas Kind Apparatus and method for analysing a network
US8395996B2 (en) 2007-01-11 2013-03-12 Foundry Networks, Llc Techniques for processing incoming failure detection protocol packets
IL220238A (en) * 2007-03-12 2014-03-31 Marvell Israel Misl Ltd A method and system for determining the location of fields in information units
US8037399B2 (en) 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
US8271859B2 (en) 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
US8149839B1 (en) 2007-09-26 2012-04-03 Foundry Networks, Llc Selection of trunk ports and paths using rotation
US20090132747A1 (en) * 2007-11-19 2009-05-21 International Business Machines Corporation Structure for universal peripheral processor system for soc environments on an integrated circuit
US8090901B2 (en) 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
CN102404222B (zh) * 2011-11-28 2014-07-23 曙光信息产业(北京)有限公司 一种支持多端口的网络数据报文统计系统
US9276851B1 (en) 2011-12-20 2016-03-01 Marvell Israel (M.I.S.L.) Ltd. Parser and modifier for processing network packets
US8634247B1 (en) * 2012-11-09 2014-01-21 Sandisk Technologies Inc. NAND flash based content addressable memory
US9178815B2 (en) 2013-03-05 2015-11-03 Intel Corporation NIC flow switching
US9432278B2 (en) 2013-03-07 2016-08-30 Microsoft Technology Licensing, Llc Simulation of interactions between network endpoints
US9450916B2 (en) 2014-08-22 2016-09-20 Honeywell International Inc. Hardware assist for redundant ethernet network
CN104602414B (zh) * 2015-01-22 2017-05-24 生迪光电科技股份有限公司 智能照明装置、控制终端和照明系统
WO2018178906A1 (en) 2017-03-28 2018-10-04 Marvell World Trade Ltd. Flexible processor of a port extender device
TWI663862B (zh) * 2017-08-31 2019-06-21 金儀國際科技股份有限公司 多樣式健身設備相容之通用資料系統
US11343358B2 (en) 2019-01-29 2022-05-24 Marvell Israel (M.I.S.L) Ltd. Flexible header alteration in network devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179549A (en) * 1988-11-10 1993-01-12 Alcatel N.V. Statistical measurement equipment and telecommunication system using same
US5351243A (en) * 1991-12-27 1994-09-27 Digital Equipment Corporation Monitor for packets on a communications network
US5422838A (en) * 1993-10-25 1995-06-06 At&T Corp. Content-addressable memory with programmable field masking
CA2237986C (en) * 1995-11-17 2004-04-20 Telecommunications Techniques Corporation Instrument for test and measurement of atm network virtual connections
US5761191A (en) * 1995-11-28 1998-06-02 Telecommunications Techniques Corporation Statistics collection for ATM networks
US5916305A (en) * 1996-11-05 1999-06-29 Shomiti Systems, Inc. Pattern recognition in data communications using predictive parsers

Also Published As

Publication number Publication date
EP1545058A3 (de) 2005-10-05
DE69833814T2 (de) 2006-11-09
JPH11127198A (ja) 1999-05-11
EP0895376B1 (de) 2006-03-15
EP0895376A2 (de) 1999-02-03
EP1545058B1 (de) 2007-01-31
EP0895376A3 (de) 2004-09-22
DE69837020D1 (de) 2007-03-22
EP1545058A2 (de) 2005-06-22
DE69833814D1 (de) 2006-05-11
US6304903B1 (en) 2001-10-16

Similar Documents

Publication Publication Date Title
DE69837020T2 (de) Vorrichtung zur Sammlung von Informationen über die Benutzung eines Paketnetzwerks
DE69934401T2 (de) Datenerfassungssystem mit mitteln zur analyse und zum abspeichern in echtzeit
DE69733931T2 (de) Kreuzvermittlungsschalter und verfahren mit beschränktem spannungshub und blockierungsfreien vermittlungswegen
DE2725395C3 (de) Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordneten Wörter der Bitlänge n
DD295039A5 (de) Zusatzkarte mit automatischer anpassung an die schlitzposition
DE3038639A1 (de) Eingabe/ausgabe-steuereinrichtung
DE60226141T2 (de) Fifo-speicher system und verfahren dafür
DE112020000146T5 (de) Handhabung einer eingabe-/ausgabe-speicheranweisung
EP0651536A2 (de) Verfahren zur Wiederherstellung einer vorgegebenen Reihenfolge für ATM-Zellen
DE2454613C2 (de) Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage
DE102007006508B4 (de) Mikrocontroller mit Speicher-Trace-Modul
EP0380509B1 (de) Messverfahren und messeinrichtung zur störungsanalyse digitaler übertragungswege
DE4114053A1 (de) Computersystem mit cachespeicher
DE19629868A1 (de) Verfahren zur Übertragung binärer Daten und Schnittstellenbausteine zur Durchführung des Verfahrens
DE10148109B4 (de) Verfahren zum Speichern oder Weiterleiten von Daten
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE19636881A1 (de) Zeitlagearchitektur für eine Testanlage
DE3012133C2 (de)
DE4122831C2 (de) Integrierte Halbleiterschaltung
EP1121646B1 (de) Datenbus und verfahren zum kommunizieren zweier baugruppen mittels eines solchen datenbusses
DE3023024A1 (de) Einrichtung zur erfassung und vorbehandlung von informationen fuer die ueberwachung von rechnern
DE10125388A1 (de) Programmgesteuerte Einheit
DE3110576A1 (de) Schaltungsanordnung mit zwei mikrocomputern, die ueber einen bus-koppler miteinander verbunden sind
DE4204113C1 (en) Measurement data compression method for communication and control processes on distribution line - defining identification classes for data sets, and protocolling repeated sets
EP0067982A2 (de) Mikrorechneranordnung, vorzugsweise für den Einsatz in Multimikrorechnersystemen

Legal Events

Date Code Title Description
8339 Ceased/non-payment of the annual fee