-
Die
vorliegende Erfindung bezieht sich allgemein auf Netzwerkvorrichtungen,
auf ein eingebettetes System, das eine Rundsendedatenspeichersteuerung
aufweist, und insbesondere auf ein eingebettetes System in einem
Kommunikationsnetzwerk (Kommunikationsnetz) zum Begrenzen rundgesendeter
Daten, die in dem Speicher des eingebetteten Systems gespeichert
sind.
-
Rechensysteme
mit begrenzten Ressourcen werden sehr häufig in Umgebungen, in denen
Kommunikationen mit einer oder mehreren anderen Vorrichtungen erforderlich
sind. Häufig
werden diese Systeme als eingebettete Systeme bezeichnet. Dieselben
sind typischerweise in einer Funktionalität begrenzt und weisen weniger
Ressourcen als ein typischer Personalcomputer auf, d. h. beispielsweise eine
begrenzte Verarbeitungsfähigkeit,
Speichergröße und Geschwindigkeit
von internen Busstrukturen.
-
In
einer Kommunikationsnetzwerkumgebung weisen die eingebetteten Systeme
typischerweise einen einzigen Prozessor und einen Speicher zum Verarbeiten
von Netzwerkdaten sowie der spezifischen Funktionen auf, die dieselben
durchführen.
Ein Druckserver in einem lokalen Netz (LAN = Local Area Network)
ist ein Beispiel eines eingebetteten Systems in einem Netzwerk.
Allgemein können
Daten, die von dem Netzwerk eingehen, in zwei Kategorien konzentriert
werden, rundgesendet und nicht rundgesendet. Nicht rundgesendete
Daten sind als zu einem speziellen Knoten gesendet gekennzeichnet,
bei dem ein eingebettetes System logisch positioniert ist. Rundgesendete
Daten jedoch beziehen sich auf Daten, die zu einer Gruppe von Knoten
oder allen Knoten in dem Netzwerk gesendet werden.
-
Wenn
mehr und mehr Knoten zu dem Netzwerk hinzugefügt werden, erhöht sich
ein Rundsendedatenverkehr, wobei es so den eingebetteten Systemen
erschwert ist, den erhöhten
Datenfluss von dem Netzwerk zu empfangen und zu verarbeiten, insbesondere
die nicht rundgesendeten Daten, die zum Durchführen der speziellen Funktionen
des eingebetteten Systems notwendig sind. Die Prozessoren in den
eingebetteten Systemen weisen typischerweise nicht die Bandbreite
auf, um die eingehenden Daten schnell genug zu verarbeiten, und/oder
einen angemessenen Speicher (Pufferstrukturen), um alle eingehenden
Daten zu speichern.
-
Eine
Behandlung dieses Problems in der Vergangenheit bestand darin, einfach
zu hoffen, dass die Menge an rundgesendeten Daten die Kapazität des Prozessors
nicht überschreitet.
Dies hat sich bei Netzwerken mit einer hohen Spitze eines Rundsendeverkehrs
oder während „Rundsendestürmen" als unangemessen
erwiesen. Ein anderer bekannter Versuch, das Problem eines hohen
Rundsendeverkehrs zu lösen,
betrifft ein Deaktivieren der Fähigkeit des
eingebetteten Systems, rundgesendete Daten zum empfangen. Dies kann
jedoch nicht dynamisch vorgenommen werden und das eingebettete System muss
typischerweise rückgesetzt
werden. Bei den meisten standardmäßigen eingebetteten Systemen resultiert
dieses Verfahren ferner in einem Verlust eines aktuellen Netzwerkzustands,
wie beispielsweise einer Verbindung mit dem Netzwerk.
-
Das
Dokument
US 5,898,687 offenbart
eine Schaltschaltung zum Übertragen
von einzelgesendeten und sammelgesendeten Daten zu Vorrichtungen in
einem Netzwerk. Eine einzige Kopie von Nutzlastdaten ist in einem
gemeinschaftlich verwendeten Speicher gespeichert und lediglich
ein Zeiger zu dem Speicher ist repliziert.
-
Das
Dokument
EP 0847168 offenbart
eine Kantenvorrichtung für
ATM-Netzwerke, die angeordnet ist, um die Anzahl von Zellen pro
empfangener Verbindung proaktiv zu begrenzen.
-
Das
Dokument
US 5, 636, 345 offenbart
ein Verfahren und eine Vorrichtung zum Erfassen von Rundsendestürmen bei
einem emulierten LAN.
-
Das
Dokument
US 5,793,978 offenbart
ein Verfahren und ein Arraysystem zum Leiten (Routen) von Paketen,
bei denen eine Kommunikationsbandbreite, die rundgesendeten Paketen
zugewiesen ist, begrenzt ist.
-
Das
Dokument WO 02/23816 (das lediglich zu Neuheitszwecken relevant
ist) offenbart ein System und ein Verfahren zum Steuern eines Sammelsendeverkehrs
eines Datenpaketschalters.
-
Gemäß einem
Aspekt der vorliegenden Erfindung ist ein System gemäß Anspruch
1 vorgesehen.
-
1 ist
ein Blockdiagramm eines eingebetteten Systems gemäß einem
Ausführungsbeispiel der
Erfindung;
-
2 ist
ein Typ eines Datenpakets, das durch das eingebettete System von 1 empfangen
wird;
-
3 ist
ein Blockdiagramm eines Speichers des eingebetteten Systems von 1,
einschließlich
Puffern und entsprechenden Zeigern;
-
4 ist
ein vereinfachtes Diagramm, das verschiedene Felder in den Zeigern
in dem Speicher von 3 zeigt;
-
5 ist
eine Anordnung von 5A und 5B; und
-
5A und 5B sind
Flussdiagramme, die einen Prozess darstellen, bei dem Daten in dem Speicher
von 3 durch eine DMA-Steuerung gespeichert werden,
die in 1 gezeigt ist.
-
Unter
jetziger Bezugnahme auf 1 ist das eingebettete System
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung allgemein bei 10 angegeben und
ist angepasst, um mit einem Kommunikationsnetzwerk 12 verbunden
zu sein, das eine Kombination von Funktionsmedien (wie beispielsweise
das eingebettete System 10), einer Infrastruktur und anderer
Rechenvorrichtungen umfasst. Das Netzwerk 12, wie beispielsweise
ein lokales Netz (LAN), ein weites Netz (WAN = Wide Area Network) oder
ein persönliches
Netz (PAN = Personal Area Network), ermöglicht, dass Informationen über die Medien
hinweg erzeugt und gemeinschaftlich verwendet werden. Das eingebettete
System 10 umfasst eine physische Schicht 14 zum
Codieren und Decodieren von Daten, die in verschiedenen bekannten
Verfahren zu dem Netzwerk 12 gesendet und von demselben
empfangen werden. Eine Medienzugriffssteuerung (MAC = Media Access
Controller) 16 ist mit der physischen Schicht 14 verbunden
und ist zum Steuern eines Zugriffs zwischen dem eingebetteten System 10 und
dem Netzwerk 12, ein Fehlerprüfen und ein Adressfiltern von
Daten von dem Netzwerk verantwortlich. Gemäß der Erfindung ist die MAC 16 ebenfalls
angepasst, um zu bestimmen, ob die eingehenden Daten rundgesendete
Daten oder nicht rundgesendete Daten sind. Die MAC 16 umfasst
ferner eine Adresse oder eine Gruppe von Adressen, die für diesen
Knoten oder diese Adresse des eingebetteten Systems 10 eindeutig
ist, und filtert nicht rundgesendete Daten heraus, die nicht für den Knoten
des eingebetteten Systems bestimmt sind.
-
Das
eingebettete System 10 umfasst ferner eine Direktspeicherzugriffssteuerung
(DMA-Steuerung; DMA = Direct Memory Access) 18 zum Steuern eines
Transfers von Daten zwischen dem Speicher des eingebetteten Systems
und dem Netzwerk 12. Ein Zuerst-Hinein-Zuerst-Hinaus-Puffer
(FIFO-Puffer; FIFO = first in first out) 20 ist zwischen
der DMA-Steuerung 18 und der MAC 16 für eine begrenzte
Speicherung eingehender Daten von und ausgehender Daten zu dem Netzwerk 12 vorgesehen.
Die DMA-Steuerung 18 umfasst einen Zähler 22 zum Verfolgen
der Anzahl von Stücken
von rundgesendeten Daten, die in Frage kommen, um in einem Systemspeicher 24 gespeichert
zu werden, der bei dem bevorzugten Ausführungsbeispiel ein Direktzugriffspeicher
(RAM = Random Access Memory) ist.
-
Daten
von dem Netzwerk 12 sind in dem RAM-Speicher 24 gespeichert,
wo dieselben für
einen Prozessor 26 zugreifbar sind. Daten von dem Prozessor 26,
die nicht zu dem Netzwerk 12 gesendet (übertragen) werden sollen, werden
ebenfalls in dem RAM-Speicher 24 gespeichert, bevor dieselben durch
die DMA-Steuerung 18 gelesen werden. Der Prozessor 26 ist
für ein
Ausführen
von Anweisungen (Befehlen) verantwortlich, die die Funktionen des
eingebetteten Systems 10 steuern. Vorzugsweise sind die
Anweisungen für
den Prozessor 26 in einer Firmware vorgesehen, die in einem
Programmspeicher 28 gespeichert ist. Das eingebettete System 10 umfasst
ferner eine Funktionsschnittstelle 30 zum wirksamen Verbinden
des eingebetteten Systems 10 mit anderen Steuersystemen,
z. B. Druck-, Abtast- und Kommunikationsschnittstellen mit anderen
Netzwerkverbindungen, wie beispielsweise LAN, WAN, etc. Eine digitale
Steuerung 32 liefert die Einrichtung, die notwendig ist,
damit die verschiedenen Komponenten (d. h. die DMA-Steuerung 18,
der RAM-Speicher 24, der Prozessor 26, der Programmspeicher 28 und
die Funktionsschnittstelle 30) des eingebetteten Systems 10 wirksam
miteinander kommunizieren.
-
Mit
Bezug auf 2 werden Daten in dem Netzwerk 12,
entweder rundgesendet oder nicht rundgesendet, in Paketform gesendet.
Ein Datenpaket 34 umfasst vordefinierte Felder, die zugehörige Informationen
liefern, die durch das Netzwerk 12 benötigt werden. Die Informationen,
die in dem Datenpaket 34 enthalten sind, sind durch den
Standard getrieben, der dem Netzwerk 12 zugeordnet ist,
mit dem das eingebettete System 10 schnittstellenmäßig verbunden
ist. Beispiele des Standards umfassen Ethernet, IEEE 802.11, IEEE
802.3, IEEE 802.4, IEEE 802.5 und BLUETOOTH. Das Paket umfasst ein Startabgrenzungseinrichtungsfeld
(SD-Feld; SD = Start Delimiter) 36 zum Angeben des Anfangs
des Pakets 34 und ein Bestimmungsadressfeld (DA-Feld; DA
= Destination Address) 38 zum Angeben des beabsichtigten
Empfängers
des Pakets. Das DA-Feld 38 gibt ferner an, ob das Paket 34 rundgesendete Daten
enthält
oder nicht, vorzugsweise durch ein spezielles Bit. Es ist jedoch
klar, dass andere Felder innerhalb des Pakets 34 ebenfalls
angeben können, ob
die Daten, die dasselbe trägt,
rundgesendet oder nicht rundgesendet sind, und durch eine andere
Einrichtung außer
einem speziellen Bit.
-
Ein
Quelladressfeld (SA-Feld; SA = Source Address) 40 liefert
die Identifizierung des Knotens, von dem das Datenpaket 34 stammte,
ein Steuerfeld (CF = Control Field) 42 beschreibt den gesendeten Pakettyp
und häufig
die Länge
des Pakets und ein Datenfeld 44 speichert die Daten, entweder
rundgesendet oder nicht rundgesendet, die für den Bestimmungsort (die Bestimmungsorte)
des Pakets 34 bestimmt sind. Ein Zyklische-Redundanz-Prüfsumme-Feld
(CRC-Feld; CRC = Cyclic Redundancy Checksum) 46 liefert
Informationen zum Bestimmen, ob während einer Übertragung
ein Fehler bei den Daten in dem Feld 44 aufgetreten ist,
und ein Endabgrenzungseinrichtungsfeld (ED-Feld; ED = End Delimiter) 48 gibt
den Endpunkt des Datenpakets 34 an.
-
In
Betrieb wird das Datenpaket 34 von dem Netzwerk 12 durch
die MAC-Steuerung 16 empfangen, nachdem dasselbe durch
die physische Schicht 14 geeignet verarbeitet (d. h. decodiert)
wurde. Die MAC-Steuerung 16 bestimmt gewöhnlich aus
dem DA-Feld 38,
ob das Paket rundgesendete Daten enthält. Die Daten, die in dem Datenfeld 44 des
Pakets 34 enthalten sind, werden dann zusammen mit einer Angabe,
ob die empfangenen Daten rundgesendete Daten oder nicht rundgesendete
Daten sind, zu dem FIFO-Puffer 20 weitergeleitet. Basierend
auf diesen Informationen schreibt die DMA-Steuerung 18 die Daten,
die in dem Datenpaket 34 empfangen werden, zu dem nächsten verfügbaren Puffer
in dem RAM-Speicher 24, der eine vorbestimme Anzahl von Puffern 50 (in 3 gezeigt) umfasst,
die für
sowohl rundgesendete Daten als auch nicht rundgesendete Daten bestimmt
sind.
-
Genauer
gesagt verfolgt der Rundsendedatenzähler 22 eine vorbestimmte
Anzahl von Rundsendedatenpaketen 34, die empfangen werden
können.
Diese Anzahl wird jedes Mal, wenn rundgesendete Daten, die in einem
Datenpaket 34 enthalten sind, in diesen Puffern 50 gespeichert
werden, um eins dekrementiert. Die DMA-Steuerung 18 schreibt weiter
rundgesendete Daten zu den Puffern 50 des RAM 24,
bis der Zähler 22 auf
Null dekrementiert wurde. Wenn dieser Punkt erreicht ist, hört die DMA-Steuerung 18 auf,
rundgesendete Daten zu dem RAM-Speicher 24 zu schreiben,
bis der Prozessor 26 bestimmt, dass der Speicher einen
Raum für mehr
rundgesendete Daten aufweist. Zu dieser Zeit inkrementiert der Prozessor
den Zähler 22 auf
eine Zahl von nicht Null und macht die Puffer 50 für ein Speichern
zusätzlicher
rundgesendeter Daten verfügbar,
wodurch ermöglicht
wird, dass die DMA-Steuerung 18 neue rundgesendete Daten
in diese Puffer schreibt. Bei dem bevorzugten Ausführungsbeispiel ist
der Zähler 22 in
die Hardware der DMA-Steuerung 18 eingegliedert. Durchschnittsfachleute
auf dem Gebiet verstehen jedoch, dass der Zähler 22 auch als eine
getrennte Hardware implementiert sein kann, oder sogar in einer
Kombination einer Hardware und einer Firmware beispielsweise.
-
Wenn
die DMA-Steuerung 18 ein nicht rundgesendetes Datum empfängt, wird
dasselbe zu dem nächsten
verfügbaren
Puffer 50 geschrieben, ungeachtet des Rundsendedatenzählers 22.
Bei dem bevorzugten Ausführungsbeispiel
gibt der Prozessor 26 dem Prozess von nicht rundgesendeten Daten
Priorität
und verarbeitet rundgesendete Daten erst nachdem die nicht rundgesendeten
Daten verarbeitet wurden. Andere Verarbeitungsreihenfolgen sollten
jedoch Fachleuten auf dem Gebiet ersichtlich sein.
-
Unter
jetziger Bezugnahme auf 3 und 4 umfasst
der RAM-Speicher 24 eine
Mehrzahl der Puffer 50. Bei dem bevorzug ten Ausführungsbeispiel
speichert jeder Puffer 50 Daten, die in einem einzigen
Datenpaket 34 getragen sind. Falls nötig, können jedoch zwei oder mehr
Puffer 50 Daten speichern, die in einem einzigen Datenpaket 34 enthalten sind,
wie es Fachleuten auf dem Gebiet ersichtlich ist. Eine Zahl, die
bestimmt, wie viele Puffer in Frage kommen, um rundgesendete Daten
zu speichern, ist durch den Entwickler des eingebetteten Systems 10 gewählt. Der
RAM-Speicher 24 umfasst ferner einen entsprechenden Zeiger 52 für jeden
Puffer 50. Jeder Zeiger 52 (am besten in 4 gezeigt)
umfasst ein Adresszeigerfeld 54, das den entsprechenden
Puffer 50 desselben identifiziert, ein Empfangsadressfeld 56,
das die Bestimmungsadresse der Daten identifiziert, die in dem Datenpaket 34 getragen
sind. Ein Quelladressfeld 58 gibt die Adresse an, von der
die Daten stammen. Ein Statusfeld 60 gibt an, ob die Daten,
die in dem entsprechenden Puffer 50 gespeichert sind, rundgesendete
Daten sind oder nicht. Dieses Feld 60 kann ferner zum Markieren
von Fehlern verwendet werden, wie beispielsweise einer Kollision,
eines CRC-Fehlers, etc. Ein Feld 62 gibt die Anzahl von
Datenbytes an, die in dem entsprechenden Puffer 50 gespeichert
sind, und ein Feld 64 wird für andere Informationen verwendet,
die für
den Entwickler des eingebetteten Systems von Nutzen sein können, beispielsweise
ein Speichern einer Netzwerktransportprüfsumme. Ein Feld 66 umfasst
ein Flag, das angibt, ob der entsprechende Puffer 50 Daten
speichert.
-
Unter
jetziger Bezugnahme auf 5A und 5B ist
der Prozess detaillierter beschrieben, der zwischen der DMA-Steuerung 18 und
dem RAM-Speicher 24 auftritt. Wenn Daten, die in dem Paket 34 getragen
sind, bei dem FIFO-Puffer 20 empfangen werden (Block 68),
bestimmt (Block 70) die DMA-Steuerung 18 zuerst, ob die
Daten in dem Paket 34 rundgesendete Daten oder nicht rundgesendete
Daten sind. Falls die empfangenen Daten nicht rundgesendet sind,
verweist die DMA-Steuerung 18 auf den Zeiger 52,
der dem nächsten
verfügbaren
Puffer 50 entspricht, für
die Position des Puffers und speichert (Block 74) die Daten
in diesem Puffer in dem RAM-Speicher 24, falls bei dem
Block 72 ein Puffer verfügbar ist. Dann werden alle
Felder in dem entsprechenden Zeiger 52 durch den Prozessor 26 aktualisiert
(Block 76), um die Informationen wiederzuspiegeln, die
sich auf die neu gespeicherten Daten beziehen. Die DMA-Steuerung 18 prüft (Block 78)
dann den nächsten
Zähler 52 und
bestimmt (Block 80), ob der entsprechende Puffer 50 derselben
verfügbar
ist, um Daten zu speichern. Die DMA-Steuerung 18 prüft das Feld 66 zu
diesem Zweck auf ein Puffer-Voll-Flag.
-
Unter
erneuter Bezugnahme auf den Block 72 sendet (Block 81)
die DMA-Steuerung 18 eine Unterbrechung zu dem Prozessor 26,
falls kein Puffer 50 in dem RAM-Speicher 24 zum
Speichern von Daten verfügbar
ist. Bei dem bevorzugten Ausführungsbeispiel
wird auf die Zeiger 52 durch die DMA-Steuerung 18 in einer sequentiellen
Reihenfolge zugegriffen und die Daten in den Puffern 50 werden
durch den Prozessor 26 in dieser gleichen Reihenfolge verarbeitet.
Sobald auf den letzten Zeiger 52 oder Puffer 50 in
dem RAM-Speicher 24 zugegriffen wurde oder derselbe verarbeitet
wurde, werden folglich der erste Zeiger und Puffer zu dem nächsten Zeiger
und Puffer.
-
Falls
die empfangenen Daten rundgesendete Daten sind (bei Block 70),
prüft die
DMA-Steuerung 18 den Rundsendedatenzähler 22, um zu sehen,
ob der Zählwert
bei Null liegt (Block 82), was angibt, dass die vorbestimmte
Anzahl zum Speichern rundgesendeter Daten in dem RAM-Speicher 24 erreicht
wurde. Falls der Zählwert
bei Null liegt, wird hinsichtlich der empfangenen rundgesendeten
Daten keine Handlung unternommen (Block 84). Mit anderen
Worten, die Daten werden nicht in dem RAM-Speicher 24 gespeichert.
Falls der Zähler 22 nicht
bei Null liegt, aber kein Puffer 50 in dem RAM-Speicher 24 zum
Speichern der Daten verfügbar
ist (Block 86), wird mit Bezug auf die rundgesendeten Daten
in dem Paket 34 keine Handlung unternommen (Block 88).
-
Falls
jedoch ein Puffer verfügbar
ist (Block 86), verweist die DMA-Steuerung 18 auf
den Zeiger 52, der dem verfügbaren Puffer 50 entspricht,
für die Position
dieses Puffers, speichert (Block 90) die rundgesendeten
Daten in dem Puffer und dekrementiert (Block 92) den Zähler 22 um
eins. Dann werden die Felder in dem entsprechenden Zeiger 52,
der oben beschrieben ist, durch den Prozessor 26 aktualisiert
(Block 92), um die Informationen wiederzuspiegeln, die
sich auf die neu gespeicherten rundgesendeten Daten beziehen. Die
DMA-Steuerung 18 prüft (Block 96)
dann den nächsten
Zeiger und bestimmt (Block 98), ob der entsprechende Puffer
desselben verfügbar
ist, um Daten zu empfangen, d. h. prüft das Puffer-Voll-Flag in
dem Feld 66.
-
Aus
der vorhergehenden Beschreibung ist klar, dass ein verbessertes,
eingebettetes System gezeigt und beschrieben wurde, das viele erwünschte Attribute
und Vorteile aufweist. Das eingebettete System umfasst eine DMA-Steuerung,
die einen Zähler
aufweist, der eine Anzahl von rundgesendeten Daten verfolgt, die
in dem Speicher gespeichert sind, so dass dieselben die vorbestimmte
Anzahl nicht überschreiten,
wodurch eine ausreichende Menge von Puffern in dem Speicher für eine Speicherung
von nicht rundgesendeten Daten gelassen wird.
-
Während verschiedene
Ausführungsbeispiele
der vorliegenden Erfindung gezeigt und beschrieben wurden, ist klar,
dass andere Modifikationen, Substitutionen und Alternativen einem
Durchschnittsfachmann auf dem Gebiet ersichtlich sind. Derartige Modifikationen,
Substitutionen und Alternativen können vorgenommen werden, ohne
von dem Schutzbereich der Erfindung abzuweichen, der aus den beigefügten Ansprüchen bestimmt
sein sollte.
-
Verschiedene
Merkmale der Erfindung sind in den beigefügten Ansprüchen dargelegt.