-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich allgemein auf Netzwerkgeräte und insbesondere
auf ein eingebettetes System in einem Kommunikationsnetzwerk mit
einem zweckgebundenen Datenempfangskanal für Rundsendedaten.
-
Hintergrund
-
Rechensysteme
mit beschränkten
Ressourcen sind mittlerweile weit verbreitet in Umgebungen, bei
denen Kommunikation mit ein oder mehreren anderen Geräten erforderlich
ist. Häufig
werden diese Systeme als eingebettete Systeme bezeichnet. Dieselben
sind typischerweise in der Funktionalität begrenzt und haben weniger
Ressourcen als ein typischer Personalcomputer, d. h. beispielsweise
begrenzte Verarbeitungsfähigkeit,
Speichergröße und Geschwindigkeit
der internen Busstruktur.
-
In
einer Kommunikationsnetzwerkumgebung haben die eingebetteten Systeme
typischerweise einen einzigen Prozessor und einen Speicher für die Verarbeitung
von Netzwerkdaten, sowie die spezifischen Funktionen, die dieselben
durchführen.
Ein Druckserver in einem lokalen Netz (LAN) ist ein Beispiel eines
eingebetteten Systems in einem Netzwerk. Allgemein können Daten,
die von dem Netzwerk hereinkommen, in zwei Kategorien konzentriert werden,
Rundsende- und Nicht-Rundsendedaten. Nicht-Rundsendedaten sind so
charakterisiert, dass sie zu einem bestimmten Knoten gesendet werden, wo
ein eingebettetes System logisch angeordnet ist. Rundsendedaten
beziehen sich andererseits auf Daten, die an eine Gruppe von Knoten
oder alle Knoten in dem Netzwerk gesendet werden.
-
Da
dem Netzwerk immer mehr Knoten hinzugefügt werden, erhöht sich
der Rundsendedatenverkehr und macht es somit für die eingebetteten Systeme
schwierig, den erhöhten
Datenfluss von dem Netzwerk zu empfangen und zu verarbeiten, insbesondere
die Nicht-Rundsendedaten, die zum Durchführen der bestimmten Funktionen
des eingebetteten Systems notwendig sind. Die Prozessoren in den
eingebetteten Systemen haben typischerweise nicht die Bandbreite,
um die ankommenden Daten schnell genug zu verarbeiten und/oder angemessenen
Speicher- (Puffer-) Strukturen, um alle ankommenden Daten zu speichern.
-
Eine
Handhabung dieses Problems in der Vergangenheit war es, einfach
zu hoffen, dass die Menge an Rundsendedaten nicht die Kapazität des Prozessors überschreitet.
Dies hat sich in Netzwerken mit starken Wellen an Rundsendeverkehr
oder während „Rundsendestürmen" als unangemessen erwiesen.
Ein anderer bekannter Lösungsansatz zum
Lösen des
Problems von hohem Rundsendeverkehr umfasst das Deaktivieren der
Fähigkeit
des eingebetteten Systems, Rundsendedaten zu empfangen. Dies kann
jedoch nicht dynamisch durchgeführt werden
und das eingebettete System muss typischerweise zurückgesetzt
werden. Außerdem
führt dieses
Verfahren bei den meisten serienmäßigen eingebetteten Systemen
zu einem Verlust von aktuellem Netzwerkzustand, wie z. B. Verbindung
mit dem Netzwerk.
-
Das
US-Patent Nr. 5,793,978 beschreibt einen Router zum Routen von Paketen
zu Geräten
in einem Computernetzwerk. Falls ein Paket, das an das Netzwerk
gesendet werden soll, eine Rundsendemitteilung ist, wird dieselbe
auf eine andere Rundsendeübertragungswarteschlange
als die Nicht-Rundsendemitteilungen platziert.
-
Die
WO 98/44686 bezieht sich auf ATM-Schalter in einem Telekommunikationssystem zum
Handhaben von Punkt-zu-Punkt- und Punkt-zu-Mehrpunkt-Verbindungen.
Das System der WO 98/44686 umfasst eine Pufferstruktur zum Speichern
von Zellen gemäß Prioritätsklassen
und Bestimmen der Positionen der Zellen in den Puffern. Alle Eingangszellen
werden durch einen einzigen Kanal empfangen.
-
HAUNG
Y. R. u. a.: „A
high performance input access scheme for ATM Multicast switching", 1996, IEE International
Conference on Communications (ICC), beschreibt eine ATM-Sammelsende-Schaltvorrichtung,
bei der Daten von Sammelsende- und Einsende-Warteschlangen an eine
Eingangszugriffsteuerung und dann an einen Sammelsende-Paketschalter gesendet
werden.
-
Zusammenfassung
der Erfindung
-
Die
vorliegende Erfindung ist in den angehängten Ansprüchen definiert.
-
Ein
eingebettet es System umfasst einen Speicher zum Speichern von Daten,
die von dem Kommunikationsnetzwerk empfangen werden, und eine Steuerung
zum Bestimmen, ob die Daten, die von dem Kommunikationsnetzwerk
empfangen werden, Rundsendedaten oder Nicht-Rundsendedaten sind.
Eine Datensteuerung ist in dem System enthalten und weist einen
ersten Kanal zum Speichern der Rundsendedaten, die von dem Kommunikationsnetzwerk
empfangen werden, in dem Speicher, und einen zweiten Kanal zum Speichern
der Nicht-Rundsendedaten auf.
-
Beschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm eines eingebetteten Systems gemäß einem
Ausführungsbeispiel der
vorliegenden Erfindung;
-
2 ist
ein Datenpakettyp, der durch das eingebettete System von 1 empfangen
wird;
-
3 ist
ein Blockdiagramm eines Speichers des eingebetteten Systems von 1,
der Puffer und entsprechende Zeiger umfasst;
-
4 ist
ein vereinfachtes Diagramm, das verschiedene Felder in den Zeigern
in dem Speicher von Fig. zeigt; und
-
5 ist
eine Anordnung von 5A und 5B; und
-
5A und 5B sind
Flussdiagramme, die einen Prozess darstel len, bei dem Daten durch eine
DMA-Steuerung, die in 1 gezeigt ist, in den Speicher
von 3 gespeichert werden.
-
Detaillierte
Beschreibung der Erfindung
-
Mit
Bezugnahme auf 1 ist das eingebettete System
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung allgemein bei 10 angezeigt, und
ist angepasst, um mit einem Kommunikationsnetzwerk 12 verbunden
zu werden, das eine Kombination von Funktionsmedien (wie z. B. das
eingebettete System 10), Infrastruktur und anderen Rechengeräten umfasst.
Das Netzwerk 12, wie z. B. ein lokales Netz (LAN), ein
weites Netz (WAN) oder ein persönliches
Netz (PAN), ermöglicht
es, dass Informationen erzeugt werden und zwischen den Medien gemeinschaftlich
verwendet werden. Das eingebettete System 10 umfasst eine
physikalische Schicht 14 zum Codieren und Decodieren der
Daten, die zu dem Netzwerk 12 gesendet werden und von demselben empfangen
werden, in verschiedenen bekannten Verfahren. Eine Medienzugriffssteuerung
(MAC) 16 ist mit der physikalischen Schicht 14 verbunden
und ist verantwortlich für
das Steuern von Zugriff zwischen dem eingebetteten System 10 und
dem Netz werk 12, Fehlerprüfen und Adressfiltern von Daten von
dem Netzwerk. Gemäß der Erfindung
ist die MAC 16 auch angepasst, um zu bestimmen, ob die ankommenden
Daten Rundsendedaten oder Nicht-Rundsendedaten sind. Die MAC 16 umfasst auch
eine Adresse oder eine Gruppe von Adressen, die einmalig ist für den Knoten
oder die Adresse des eingebetteten Systems 10 und filtert
Nicht-Rundsendetaten heraus, die nicht für den Knoten des eingebetteten
Systems beabsichtigt sind.
-
Das
eingebettete System 10 umfasst auch eine Mehrkanaldirektspeicherzugriff-
(DMA-) Steuerung 18 zum Steuern der Übertragung von Daten zwischen
einem Speicher 20 des eingebetteten Systems und dem Netzwerk 12.
Bei dem bevorzugten Ausführungsbeispiel
ist der Speicher 20 ein Direktzugriffsspeicher (RAM). Die
DMA-Steuerung 18 umfasst einen Nicht-Rundsendedatenempfangeskanal 21 und einen
Rundsendedatenempfangskanal 23 zum jeweiligen Steuern der Übertragung
von Nicht-Rundsendedaten und Rundsendetaten zwischen dem Speicher 20 und
dem Netzwerk 12. Ein Zuerst-Hinein-Zuerst-Hinaus- (FIFO-) Puffer 22 ist
zwischen der DMA-Steuerung 18 und der MAC 16 vorgesehen,
für eine
begrenzte Speicherung von ankommenden Daten von und ausgehenden
Daten zu dem Netzwerk 12.
-
Daten
von dem Netzwerk 12 werden in dem RAM-Speicher 20 gespeichert,
wo dieselben für
einen Prozessor 26 zugreifbar sind. Daten von dem Prozessor 26,
die an das Netzwerk 12 gesendet (übertragen) werden sollen, werden
auch in dem RAM-Speicher 20 gespeichert, bevor dieselben durch
die DMA-Steuerung 18 gelesen
werden. Der Prozessor 26 ist verantwortlich für das Ausführen von Befehlen,
die die Funktionen des eingebetteten Systems 10 steuern.
Vorzugsweise sind die Befehle für den
Prozessor 26 in einer Firmware vorgesehen, die in einem
Programmspeicher 28 gespeichert ist. Das eingebettete System 10 umfasst
auch eine Funktionsschnittstelle 30 zum wirksamen Verbinden
der eingebetteten Systeme mit anderen Steuersystemen, z. B. Druck-,
Scan- und Kommu nikationsschnittstellen zu anderen Netzwerkverbindungen, wie
z. B. LAN, WAN, usw. Eine digitale Steuerung 32 liefert
die Einrichtung, die notwendig ist, damit die verschiedenen Komponenten
(d. h. die DMA-Steuerung 18, der RAM-Speicher 20,
der Prozessor 26, der Programmspeicher 28 und
die Funktionsschnittstelle 30) des eingebetteten Systems 10 wirksam
miteinander kommunizieren können.
-
Mit
Bezugnahme auf 2 werden Daten in dem Netzwerk 12,
entweder Rundsende- oder Nicht-Rundsendedaten, in einer Paketform übertragen.
Ein Datenpaket 34 umfasst vordefinierte Felder, die zugehörige Informationen
liefern, die durch das Netzwerk 12 benötigt werden. Fachleute auf
diesem Gebiet werden erkennen, dass die Informationen, die in dem
Datenpakte 34 enthalten sind, durch den Standard getrieben
werden, der dem Netzwerk 12 zugeordnet ist, mit dem das
eingebettete System 10 eine Schnittstelle bildet. Beispiele
des Standards umfassen Ethernet, IEEE 802.11, IEEE 802.3, IEEE 802.4,
IEEE 802.5 und BLUETOOTH. Das Paket umfasst ein Startbegrenzungs-
(SD-) Feld 36 zum Anzeigen des Anfangs des Pakets 34,
und ein Bestimmungsadresse- (DA-) Feld 38 zum Anzeigen
des beabsichtigten Empfängers
des Pakets. Das DA-Feld 38 zeigt auch an, ob das Paket 34 Rundsendetaten enthält oder
nicht, vorzugsweise durch ein spezielles Bit. Es sollte jedoch klar
sein, dass andere Felder innerhalb des Pakets 34 auch anzeigen
können,
ob die Daten, die dasselbe trägt,
Rundsende oder Nicht-Rundsende sind, und durch eine andere Einrichtung
außer
einem speziellen Bit.
-
Ein
Quelladress- (SA-) Feld 40 liefert die Identifikation des
Knotens, von dem das Datenpaket 34 stammt, ein Steuerfeld
(CF) 42 beschreibt den Pakettyp, der gesendet wird, und
häufig
die Länge
des Pakets, und ein Datenfeld 44 speichert die Daten, entweder
Rundsende- oder Nicht-Rundsendedaten, die
für den/die
Bestimmungsort(e) des Pakets 34 beabsichtigt sind. Ein
Zyklische-Redundanzprüfsumme-
(CRC-) Feld 46 liefert Informationen zum Bestimmen, ob
während
der Übertragung
ein Fehler aufgetreten ist in den Daten in dem Feld 44,
und ein Endbegrenzungs- (ED-) Feld 48 zeigt den Endpunkt
des Datenpakets 34 an.
-
Mit
Bezugnahme auf 3 und 4 umfasst
der RAM-Speicher 20 eine Mehrzahl von Puffern 50,
jeden zum Speichern von Daten, die in einem einzigen Datenpaket 34 getragen
werden. Zwei oder mehr Puffer 50 können jedoch Daten speichern,
die in einem einzigen Datenpaket 34 enthalten sind, falls es
notwendig ist, wie Fachleute auf diesem Gebiet erkennen werden.
Jeder Puffer 50 wird durch den Prozessor 26 bestimmt,
um entweder Rundsendedaten oder Nicht-Rundsendedaten zu speichern.
-
Der
RAM-Speicher 20 umfasst auch einen entsprechenden Nicht-Rundsendedatenzeiger 52 für jeden
Puffer 50, der bestimmt ist, um Nicht-Rundsendedaten zu
speichern, und einen entsprechenden Rundsendedatenzeiger 53 für jeden
Puffer 50, der bestimmt ist, um Rundsendedaten zu speichern.
Beide Zeigertypen 52, 53 (am besten in 4 gezeigt) umfassen
ein Adresszeigerfeld 54, das seinen entsprechenden Puffer 50 identifiziert,
ein Empfangene-Adresse-Feld 56,
das die Bestimmungsortadresse der Daten identifiziert, die in dem
Datenpaket 34 getragen werden. Ein Quelladressfeld 58 zeigt
die Adresse an, von der die Daten stammen. Optional kann ein Statusfeld 60 anzeigen,
ob die Daten, die in dem entsprechenden Puffern 50 gespeichert
sind, Rundsendedaten sind oder nicht. Dieses Feld 60 kann
auch verwendet werden, um Fehler zu markieren, wie z. B. Kollision,
CRC-Fehler, usw. Ein Feld 62 zeigt 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 das Speichern einer Netzwerktransportprüfsumme.
Ein Feld 66 umfasst ein Flag, das anzeigt, ob der entsprechende
Puffer 50 Daten speichert.
-
Beim
Betrieb wird das Datenpaket 34 von dem Netzwerk 12 durch
die MAC-Steuerung 16 empfangen, nachdem dieselbe durch
die physikalische Schicht 14 entsprechend verarbeitet (d.
h. decodiert) wurde. Die MAC-Steuerung 16 bestimmt, ob
das Paket Rundsendedaten enthält,
normalerweise von dem DA-Feld 38.
Die Daten, die in dem Datenfeld 44 des Pakets 34 enthalten
sind, werden dann an den FIFO-Puffer 22 weitergeleitet,
zusammen mit einer Anzeige, ob die empfangenen Daten Rundsendedaten
oder Nicht-Rundsendedaten sind.
-
Wenn
mit Bezugnahme auf 5A und 5B Daten,
die in dem Paket 34 getragen werden, in dem FIFO-Puffer 22 empfangen
werden (Block 68), bestimmt die DMA-Steuerung 18 zuerst,
ob die Daten in dem Paket 34 Rundsendedaten oder Nicht-Rundsendedaten sind
(Block 70). Falls die empfangenen Daten Nicht-Rundsendedaten
sind, bezieht sich die DMA-Steuerung 18 auf den Nicht-Rundsendezeiger 52,
der dem nächsten
verfügbaren
Nicht-Rundsendepuffer 50 für die Position dieses Puffers
entspricht (Block 73). Die empfangenen Daten werden in
dem nächsten
verfügbaren Nicht-Rundsendepuffer 50 in
dem RAM-Speicher 20 gespeichert, über den Nicht-Rundsendedatenempfangskanal 21 (Block 74),
falls bei Block 72 ein Puffer verfügbar ist.
-
Dann
werden alle Felder in dem entsprechenden Nicht-Rundsendezeiger 52 durch den
Prozessor 26 aktualisiert, um die Informationen zu reflektieren,
die sich auf die neu gespeicherten Nicht-Rundsendedaten beziehen
(Block 76). Die DMA-Steuerung 18 prüft dann
den nächsten Nicht-Rundsendezeiger 52 (Block 78),
und bestimmt, ob sein entsprechender Nicht-Rundsendepuffer 50 verfügbar ist,
um Nicht-Rundsendedaten zu speichern (Block 80). Die DMA-Steuerung 18 prüft das Feld 66 des
Zeigers 52 für
ein Puffer-Voll-Flag für
diesen Zweck.
-
Falls
mit erneuter Bezugnahme auf Block 72 kein Nicht-Rundsendepuffer 50 in
dem RAM-Speicher 20 zum Speichern von Daten verfügbar ist,
sendet die DMA-Steuerung 18 eine Unterbrechung an den Prozessor 26 (Block 81).
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. Folglich, sobald auf den letzten Nicht-Rundsende-Zeiger 52 oder
Puffer 50 in dem RAM-Speicher 20 zugegriffen wurde
oder derselbe verarbeitet wurde, werden der nächste Nicht-Rundsendezeiger
und Puffer zu dem nächsten
Zeiger und Puffer.
-
Fall
bei Block 70 die Daten, die empfangen werden, Rundsendedaten
sind, bestimmt die DMA-Steuerung 18, ob ein Rundsendepuffer 50 in dem
RAM-Speicher 20 für
Speicherung verfügbar
ist (Block 82). Fall dies der Fall ist, bezieht sich die DMA-Steuerung 18 auf
den Rundsendezeiger 53, der dem nächsten verfügbaren Rundsendepuffer 50 entspricht,
für die
Position dieses Puffers (Block 84). Die empfangenen Rundsendedaten
werden über
den Rundsendedatenempfangskanal 23 in dem nächsten verfügbaren Rundsendepuffer 50 gespeichert
(Block 86).
-
Dann
werden alle Felder in dem entsprechenden Rundsendezeiger 53 aktualisiert
durch den Prozessor 26, um die Informationen zu reflektieren, die
sich auf die neu gespeicherten Rundsendedaten beziehen (Block 88).
Die DMA-Steuerung 18 prüft dann
den nächsten
Rundsendezeiger 53 (Block 90) und bestimmt, ob
sein entsprechender Rundsendepuffer 50 verfügbar ist,
um Rundsendedaten zu speichern (Block 92). Die DMA-Steuerung 18 prüft das Feld 66 des
Zeigers 53 auf ein Puffer-Voll-Flag für diesen Zweck.
-
Falls
mit erneuter Bezugnahme auf Block 82 kein Rundsendepuffer 50 in
dem RAM-Speicher 20 zum Speichern von Daten verfügbar ist,
sendet die DMA-Steuerung 18 eine Unterbrechung an den Prozessor 26 (Block 94).
Bei dem bevorzugten Ausführungsbeispiel
wird auf die Zeiger 53 auch durch die DMA-Steuerung 18 in
einer sequentiellen Reihenfolge zuge griffen, und die Daten in den
Puffern 50 werden durch den Prozessor 26 in dieser
gleichen Reihenfolge verarbeitet. Folglich, sobald auf den letzten Zeiger 53 oder
seine entsprechenden Puffer 50 in dem RAM-Speicher 20 zugegriffen
wurde, oder derselbe verarbeitet wurde, werden der erste Rundsendezeiger 53 und
-puffer 50 zu dem nächsten
Rundsendezeiger und -puffer.
-
Sobald
Daten in dem Speicher 20 gespeichert sind, verarbeitet
der Prozessor 26 die gespeicherten Daten, wenn dieselben
die verfügbare
Bandbreite haben. Bei dem bevorzugten Ausführungsbeispiel gibt der Prozessor 26 dem
Verarbeiten von Nicht-Rundsendedaten Priorität, da dieselben typischerweise
der bestimmten Funktion des Geräts
zugeordnet sind. Die Rundsendedaten werden verarbeitet, nachdem
die Nicht-Rundsendedaten
verarbeitet wurden. Andere Verarbeitungsreihenfolgen sollten jedoch
für Fachleute
auf diesem Gebiet erkennbar sein. Wenn es wünschenswert ist, kann der Prozessor 26 die
Zuweisung der Puffer 50 zum Empfangen von Rundsende- und
Nicht-Rundsendedaten variieren. Dies hängt allgemein von der Menge
an Puffern 50 ab, die verfügbar sind, und wie beschäftigt der Prozessor 26 ist.
-
Von
der vorhergehenden Beschreibung sollte klar sein, dass ein verbessertes
eingebettetes System gezeigt und beschrieben wurde, das viele wünschenswerte
Attribute und Vorteile aufweist. Das eingebettete System umfasst
eine DMA-Steuerung
mit einem Kanal zum Empfangen und Speichern von Nicht-Rundsendedaten
an den Speicher und einen getrennten Kanal zum Empfangen und Speichern von
Rundsendedaten.
-
Obwohl
verschiedene Ausführungsbeispiele der
vorliegenden Erfindung gezeigt und beschrieben wurden, sollte klar
sein, dass andere Modifikationen, Substitutionen und Alternativen
für einen
Durchschnittsfachmann auf diesem Gebiet offensichtlich sind. Solche
Modifikationen, Substitutionen und Alternativen können durchgeführt werden,
ohne von dem Schutzbereich der Erfindung abzuweichen, der durch
die angehängten
Ansprüche
definiert ist.
-
Verschiedene
Merkmale der Erfindung sind in den angehängten Ansprüchen beschrieben.