-
Die
vorliegende Erfindung betrifft die Kommunikation über ein
Datennetzwerk und konkret die Sprachtelefonie über ein herkömmliches
Ethernet-Netzwerk.
-
Sprache über Internet-Protokoll
(„Voice
Over Internet Protocol",
VoIP) ist ein Protokoll, das die Verwendung eines Datennetzwerks
für Sprachtelefonie ermöglicht.
Ein VoIP-Telefonsystem kann in einen Arbeitsplatzrechner integriert
sein, aber die meisten Anwender bevorzugen einen separaten Telefonhörer, der
eher in Übereinstimmung
mit einem herkömmlichen
Telefonsystem ist. Um einen separaten Telefonhörer zu verwenden, können das
VoIP-Telefon und der Arbeitsplatzrechner eine Netzwerkverbindung gemeinsam
benutzen, ansonsten benötigen
sie separate Netzwerkverbindungen. Viele Arbeitsplatzrechner sind
mit nur einer Netzwerkverbindung ausgestattet, und daher ist es
von Vorteil, ein System bereitzustellen, in dem der Arbeitsplatzrechner
und das VoIP-Telefon dieselbe Netzwerkverbindung gemeinsam benutzen
können.
Schaltmodule, die es mehr als einem System ermöglichen, sich mit einem Netzwerk
unter Verwendung derselben Netzwerkverbindung zu verbinden, sind
als Netzwerkerweiterungsmodule bekannt.
-
Ein
bekanntes Halb-Duplex-VoIP-System verwendet die in 1 gezeigte
Konfiguration. Ein VoIP-Telefon 1, ein Arbeitsplatzrechner 2 und
ein Netzwerk 3 sind jeweils mit einem Zwischenverstärker („repeater") 4 verbunden.
Wenn entweder das VoIP-Telefon 1, der Arbeitsplatzrechner 2 oder
das Netzwerk 3 Daten übertragen
möchte,
muss diese Vorrichtung die Steuerung über den Zwischenverstärker 4 erlangen.
Dann können
Daten von dieser Vorrichtung an den Zwischenverstärker 4 übertragen werden.
Der Zwischenverstärker 4 wiederholt
dann die eingehenden Daten für
die anderen beiden Anschlüsse.
Auf diese Art ermöglicht
es der Zwischenverstärker 4,
dass Daten von dem Arbeitsplatzrechner 2 an das Netzwerk 3,
von dem Netzwerk an den Arbeitsplatzrechner, von dem VoIP-Telefon 1 an
das Netzwerk und von dem Netzwerk an das VoIP-Telefon übertragen
werden können.
Des Weiteren ermöglicht
es der Zwischenverstärker 4,
dass Steuerdaten zwischen dem Arbeitsplatzrechner 2 und
dem VoIP-Telefon 1 übermittelt
werden.
-
Ein
wesentlicher Nachteil der Konfiguration aus 1 ist es,
dass es sich um eine Halb-Duplex-Verbindung handelt (d.h. lediglich
in eine Richtung gleichzeitig). Voll-Duplex-Verbindungen weisen andererseits
die doppelte Bandbreite von Halb-Duplex-Verbindungen aus. Des Weiteren
müssen
die beiden Anschlüsse
bei einem Verkehr in beide Richtungen nicht miteinander um die Steuerung
des Netzwerks konkurrieren, wenn eine Voll-Duplex-Verbindung verwendet
wird; beide Anschlüsse
können
zur selben Zeit Daten übertragen.
-
W098/11758
offenbart eine ISDN-Netzabschlusseinheit mit einer ersten Schnittstelle
für den Anschluss
an das ISDN-Netzwerk, einer zweiten Schnittstelle für den Anschluss
von ISDN-Geräten (z.B.
Telefonapparate, Fax-Geräte)
und einer dritten Schnittstelle für den Anschluss von Geräten, die
nicht dem ISDN-Standard
entsprechen.
-
Es
ist ein Ziel der vorliegenden Erfindung, ein verbessertes Mittel
zur Hinzufügung
zum Beispiel einer VoIP-Telefonverbindung zu einer herkömmlichen Verbindung
eines Arbeitsplatzrechners mit einem Datennetzwerk unter Verwendung
einer einzelnen Netzwerkverbindung bereitzustellen.
-
Die
Erfindung stellt ein Modul zur Verbindung einer ersten und einer
zweiten Datenquelle mit einem Netzwerk unter Verwendung einer einzelnen
Netzwerkverbindung bereit, umfassend:
ein erstes bzw. zweites
Schnittstellenmittel zur Weiterleitung von Daten zum und vom Netzwerk
bzw. zur und von der ersten Datenquelle, wobei das Modul so angeordnet
ist, dass es Daten vom ersten Schnittstellenmittel zum zweiten Schnittstellenmittel
und vom zweiten Schnittstellenmittel zum ersten Schnittstellenmittel überträgt, um eine
Kommunikation zwischen der ersten Datenquelle und dem Netzwerk zu ermöglichen,
wenn sie mit dem Modul verbunden sind; und
ein drittes und
viertes Schnittstellenmittel, beide zur Weiterleitung von Daten
zur und von der zweiten Datenquelle,
dadurch gekennzeichnet,
dass das Modul so angeordnet ist, dass es Daten vom dritten Schnittstellenmittel
zum ersten Schnittstellenmittel und vom ersten Schnittstellenmittel
zum dritten Schnittstellenmittel überträgt, um eine Kommunikation zwischen
der zweiten Datenquelle und dem Netzwerk zu ermöglichen, wenn sie mit dem Modul
verbunden sind, aber um keine Daten zwischen dem dritten Schnittstellenmittel
und dem zweiten Schnittstellenmittel zu übertragen, und dass es so angeordnet
ist, dass es Daten vom vierten Schnittstellenmittel zum zweiten
Schnittstellenmittel und vom zweiten Schnittstellenmittel zum vierten
Schnittstellenmittel überträgt, um eine Kommunikation
zwischen der zweiten Datenquelle und der ersten Datenquelle zu ermöglichen,
wenn sie mit dem Modul verbunden sind, aber um keine Daten zwischen
dem vierten Schnittstellenmittel und dem ersten Schnittstellenmittel
zu übertragen.
-
Das
dritte Schnittstellenmittel kann so angeordnet sein, dass es Daten
nur zwischen der zweiten Datenquelle, wenn diese verbunden ist,
und dem ersten Schnittstellenmittel überträgt, und das vierte Schnittstellenmittel
kann so angeordnet sein, dass es Daten nur zwischen der zweiten
Datenquelle, wenn diese verbunden ist, und dem zweiten Schnittstellenmittel überträgt. Das
erste und zweite Schnittstellenmittel sind vorzugsweise Media Access
Controller. Das dritte und vierte Schnittstellenmittel sind vorzugsweise
so angeordnet, dass sie Daten zu und von einem VoIP-Telefon übertragen.
-
Das
Modul umfasst vorzugsweise Puffermittel zur Steuerung des Flusses
von Daten zwischen den Schnittstellenmitteln. Das Puffermittel kann
eine Mehrzahl von FIFO-Puffern umfassen. Konkret kann das Modul
einen ersten FIFO, der den Fluss von Daten vom ersten Schnittstellenmittel
zum zweiten Schnittstellenmittel steuert, einen zweiten FIFO, der den
Fluss von Daten vom zweiten Schnittstellenmittel zum ersten Schnittstellenmittel
steuert, einen dritten FIFO, der den Fluss von Daten vom ersten
Schnittstellenmittel zum dritten Schnittstellenmittel steuert, einen
vierten FIFO, der den Fluss von Daten vom dritten Schnittstellenmittel
zum ersten Schnittstellenmittel steuert, einen fünften FIFO, der den Fluss von Daten
vom zweiten Schnittstellenmittel zum vierten Schnittstellenmittel
steuert, und einen sechsten FIFO, der den Fluss von Daten vom vierten
Schnittstellenmittel zum zweiten Schnittstellenmittel steuert, umfasst.
-
Das
Modul kann zumindest einen weiteren FIFO umfassen, der mit einem
der ersten bis sechsten FIFOs parallel geschaltet ist. Die parallelen FIFOs
können
dann Daten von unterschiedlicher Wichtigkeit übertragen, wobei das entsprechende Schnittstellenmittel
Daten von den parallelen FIFOs in der Reihenfolge der relativen
Wichtigkeit der von den FIFOs übertragenen
Daten bearbeitet. Das oder ein weiterer FIFO kann parallel mit dem
vierten FIFO geschaltet sein, wobei das Modul so angeordnet ist, dass
es Sprachdaten vom dritten Schnittstellenmittel in einem dieser
beiden FIFOs platziert und andere Daten vom dritten Schnittstellenmittel
im anderen platziert, und dass es die Sprachdaten bei der Übertragung
von Daten aus diesen beiden FIFOs vorrangig behandelt.
-
Die
FIFO-Puffer können
in einem Speicherbaustein implementiert sein, wobei jeder FIFO durch eine
Gruppe von Speicherstellen vertreten ist. Dieser Speicherbaustein
ist vorzugsweise ein RAM. Ferner kann das Modul Mittel zur dynamischen
Zuordnung von Speicherstellen zu den FIFO-Puffern umfassen.
-
Das
Modul kann Mittel zur Priorisierung der Übertragung von Daten, die über das
zweite Schnittstellenmittel und das dritte Schnittstellenmittel
im Modul eintreffen, über
das erste Schnittstellenmittel enthalten. Das Modul kann so angeordnet
sein, dass Daten, die über
das dritte Schnittstellenmittel eintreffen, Vorrang über Daten,
die über
das zweite Schnittstellenmittel eintreffen, eingeräumt wird.
-
Das
Modul kann Mittel zur Priorisierung der Übertragung von Daten, die über das
erste Schnittstellenmittel und das vierte Schnittstellenmittel eintreffen, über das
zweite Schnittstellenmittel enthalten. Das Modul kann so angeordnet
sein, dass Daten, die über
das vierte Schnittstellenmittel eintreffen, Vorrang über Daten,
die über
das erste Schnittstellenmittel eintreffen, eingeräumt wird.
-
Ein
Ausführungsbeispiel
des Netzwerkerweiterungsmoduls wird nun lediglich als Beispiel unter Bezugnahme
auf die beigefügten
Zeichnungen beschrieben, in denen:
-
1 ein
Blockdiagramm eines bekannten Halb-Duplex-VoIP-Telefonsystems darstellt;
-
2 ein
Blockdiagramm eines Voll-Duplex-VoIP-Telefonsystems darstellt, das
einen Schalter mit drei Anschlüssen
verwendet;
-
3 eine
graphische Darstellung des Datenflusses in dem Telefonsystem aus 2 darstellt;
-
4 ein
Blockdiagramm eines Voll-Duplex-VoIP-Telefonsystems darstellt, das
ein Netzwerkerweiterungsmodul in Übereinstimmung mit der vorliegenden
Erfindung enthält;
-
5 ein
Blockdiagramm des VoIP-Telefonsystems aus 4 darstellt,
das unter Verwendung von RAM umgesetzt ist.
-
2 zeigt
eine Konfiguration, die Voll-Duplex-Verbindungen bereitstellt. In 2 wird
der Zwischenverstärker 4 aus 1 durch
einen Schalter mit drei Anschlüssen 5 ersetzt.
Jeder Anschluss des Schalters stellt zwei Verbindungen bereit – einen
Leitungseingang und einen Leitungsausgang – um eine Voll-Duplex-Verbindung
bereitzustellen. Ein Schalter ermöglicht es, dass an einem Anschluss
empfangene Daten allgemein an jeden beliebigen anderen seiner Anschlüsse geleitet
werden können;
der interne Aufbau des für
diese Weiterleitung benötigten
Schalters ist kompliziert und wird untenstehend beschrieben.
-
Zwei
bekannte Verfahren zur Verarbeitung der Übertragung von Punkt-Multipunkt-Datenpaketen („braodcast
packets of data")
in dem Schalter 5 sind (1) die Erstellung einer Kopie jedes
der eingehenden Punkt-Multipunkt-Datenpakete für jeden Zielanschluss und (2)
die Verwendung von Datenstrukturen, um Paketdaten so zu verwalten,
dass von jedem Zielanschluss auf eine einzelne Kopie jedes Punkt-Multipunkt-Datenpakets
verwiesen werden kann. Das erste Verfahren erfordert eine relativ
hohe Bandbreite, da mehrere Kopien derselben Daten erstellt werden.
Das zweite Verfahren erfordert eine Speicherverwaltung, um sicherzustellen,
dass die einzelne Kopie der Daten lediglich so lange existiert, bis
alle Zielanschlüsse
diese Daten gesendet haben. Eine mögliche Umsetzung besteht in
der Verwendung von verketteten Listen. Die verketteten Listen bilden
Warteschlangen von Datenpaketen, zum Beispiel Punkt-Multipunkt-Datenpakete,
für jeden
Anschluss des Schalters, wobei Datenpakete in mehr als einer Warteschleife
existieren können.
Jedes Datenpaket kann erst gelöscht
werden, nachdem die Verknüpfung
für alle
seine Zielwarteschlangen gelöst wurde.
Diese letzte Option ist komplizierter.
-
Der
Datenverkehr in einem VoIP-Schaltmodul, wie dem aus 2,
besteht aus drei Kanälen.
- 1. Computerdatenverkehr zwischen dem Netzwerk 3 und
dem Arbeitsplatzrechner 2;
- 2. VoIP-Verkehr zwischen dem VoIP-Telefon 1 und dem
Netzwerk 3;
- 3. Gelegentlicher Steuerverkehr zwischen dem VoIP-Telefon 1 und
dem Arbeitsplatzrechner 2.
-
Die
drei Datenverkehrskanäle
werden in 3 diagrammatisch gezeigt.
-
Der
Verkehr zwischen dem Netzwerk 3 und dem Arbeitsplatzrechner 2 umfasst
den Großteil
des Verkehrs, der durch den Schalter 5 fließt, wobei
der Steuerverkehr zwischen dem VoIP-Telefon 1 und dem Arbeitsplatzrechner 2 relativ
selten ist. Die vorliegende Erfindung nutzt den eingeschränkten Datenfluss
aus, insbesondere durch Vereinfachung der allgemeinen Pufferungsanforderungen.
-
Ein
Ausführungsbeispiel
eines Netzwerkerweiterungsmoduls gemäß der vorliegenden Erfindung
wird in 4 gezeigt. Im Betrieb ersetzt
das Netzwerkerweiterungsmodul 6 aus 4 den Schalter 5 aus 2.
Das Netzwerkerweiterungsmodul 6 umfasst zwei Media Access
Controller (MACs) 7 und 8, zwei Puffermanager 9 und 10 und
sechs Zuerst-rein-zuerst-raus-Speicher- („first-in-first-out-", FIFO-)Puffer 11 bis 16.
-
Der
MAC 7 steuert den Fluss von Daten zu und von dem Netzwerk 3,
der MAC 8 steuert den Fluss von Daten zu und von dem Arbeitsplatzrechner 2.
Die Puffermanager 9 und 10 steuern den Datenfluss
zu und von dem VoIP-Telefon 1, aber der Puffermanager 9 wickelt
den Verkehr zwischen dem Netzwerk 3 und dem VoIP-Telefon 1 ab,
und der Puffermanager 10 wickelt den Verkehr zwischen dem
Arbeitsplatzrechner 2 und dem VoIP-Telefon ab. Die FIFOs 11 bis 16 sind
zwischen die MACs 7 und 8 und die Puffermanager 9 und 10 geschaltet,
um den Fluss von Daten zwischen diesen zu steuern. Der FIFO 11 steuert
den Fluss von Daten von dem MAC 7 zu dem MAC 8,
der FIFO 12 steuert den Fluss von Daten von dem MAC 8 zu
dem MAC 7, Die FIFOs 13 und 14 steuern
den Fluss von Daten von dem MAC 7 zu dem Puffermanager 9 bzw.
von dem Puffermanager 9 zu dem MAC 7, und die
FIFOs 15 und 16 steuern den Fluss von Daten von
dem MAC 8 zu dem Puffermanager 10 bzw. von dem
Puffermanager 10 zu dem MAC 8.
-
Jeder
der MACs 7 und 8 führt die Serialisierung und
Deserialisierung der Daten aus und verarbeitet die Netzwerkzugangsprotokolle,
die für
die Übertragung
von Daten zu und von dem Netzwerk 3 und zu und von dem
Arbeitsplatzrechner 2 benötigt werden, wobei vorzugsweise
Standardnetzwerkprotokolle verwendet werden. Die Puffermanager 9 und 10 übertragen
Datenpakete zu und von dem VoIP-Telefon 1 und den MACs 7 und 8.
Daten zwischen dem VoIP-Telefon 1 und dem Netzwerkerweiterungsmodul 6 werden
allgemein über
eine physikalisch kurze Verbindung mit niedriger Bandbreite übertragen. Deshalb
ist es dort nicht notwendig, Datenübertragungstechniken zu verwenden.
Die Puffermanager 9 und 10 werden nicht benötigt, um
Netzwerkzugangsprotokolle zu verarbeiten oder eine Serialisierung und
Deserialisierung von Daten auszuführen; die Daten können parallel
zu und von dem VoIP-Telefon geleitet werden, und es kann ein vom
Standard abweichendes Übertragungsprotokoll
verwendet werden, da das VoIP-Telefon speziell darauf ausgelegt
sein kann, mit dem Netzwerkerweiterungsmodul zusammenzuarbeiten,
und in der Tat ein Teil derselben Einheit sein kann. Die Puffermanager 9 und 10 sind
deshalb in dem bevorzugten Ausführungsbeispiel
wesentlich einfachere Vorrichtungen als die MACs 7 und 8.
-
Der
MAC 7 holt Daten von den FIFOs 12 und 14 (nacheinander)
und der MAC 8 holt Daten von den FIFOs 11 und 16.
Die Daten werden dann gepuffert und an das Netzwerk (im Falle des
MAC 7) oder den Arbeitsplatzrechner (im Falle des MAC 8)
weitergeleitet. Die MACs 7 bzw. 8 empfangen ebenfalls
Daten von dem Netzwerk 3 bzw. dem Arbeitsplatzrechner 2 und
leiten diese Daten zu einem oder beiden der FIFOs 11 und 13 (im
Falle des MAC 7) und zu einem oder beiden der FIFOs 12 und 15 (im
Falle des MAC 8). Eingehende Daten, die an eine bestimmte
Quelle adressiert sind (Punkt-Punkt-Daten, „unicast data"), werden an den
entsprechenden FIFO geleitet. Daten, die nicht derart adressiert
sind (Punkt-Multipunkt-Daten, „broadcast
data") werden an
beide der relevanten FIFOs geleitet. Als Reaktion auf relevante Adressteile
der eingehenden Datenpakete aktivieren Steuerschaltungen (nicht
gezeigt) die MACs und FIFOs entsprechend, um dies zu erreichen.
Diese Schaltungen sind vorzugsweise verbunden, um auf die Adressteile
zu reagieren, wenn sich das Datenpaket in dem MAC befindet, in dem
es von dem Netzwerk oder dem Arbeitsplatzrechner empfangen wurde.
Vorzugsweise findet die Adresserkennung entweder vor order während der Übertragung
von Daten von den MACs zu den FIFOs statt. Wenn die Adressenerkennung
während
dem Datentransfer geschieht, können
die Hinweisadressen der FIFOs bearbeitet werden, um ungewünschte geschriebene Daten
zu löschen.
-
Die
Puffermanager 9 und 10 holen Daten von den FIFOs 13 bzw. 15,
puffern die Daten und übertragen
sie an das VoIP-Telefon 1. Die Puffermanager 9 und 10 holen
auch Daten von dem VoIP-Telefon 1, puffern die Daten und
leiten sie an die FIFOs 14 bzw. 16 weiter. Das
VoIP-Telefon 1 ist vorzugsweise so aufgebaut, dass es Sprach-
und Steuerdaten für
das Netzwerk zu und von dem Puffermanager 9 senden und
empfangen kann, und dass es Steuerdaten zu und von dem Arbeitsplatzrechner über den
Puffermanager 10 senden und empfangen kann. Die Verbindung
zwischen dem VoIP-Telefon 1 und dem Netzwerkerweiterungsmodul 6 kann
aus einem einzelnen Bus bestehen, auf dem Daten zu und von dem Arbeitsplatzrechner 2 und
Daten zu und von dem Netzwerk 3 verschachtelt wären. Die
verschachtelten Daten werden dann nach Bedarf durch einen einzelnen Puffermanager
geleitet, wobei der Puffermanager die Aufgaben der Puffermanager 9 und 10 durchführt, indem
beide Gruppen von FIFOs 13 und 14 bzw. 15 und 16 abgearbeitet
werden. Ansonsten handelt es sich um herkömmliche Schaltungen des VoIP-Telefons.
-
In
dem MAC 7 eingehende Daten, die für das Netzwerk bestimmt sind,
können
entweder von dem VoIP-Telefon 1 über den FIFO 14 oder
von dem Arbeitsplatzrechner 2 über den FIFO 12 eintreffen.
Der MAC 7 benötigt
deshalb ein Verfahren zur Auswahl der nächsten Daten, besonders dann,
wenn sowohl der FIFO 12 als auch der FIFO 14 bereit
sind, ein Datenpaket zu übertragen.
Die einfachste Form der Steuerung räumt entweder dem VoIP-Telefon 1 oder dem
Arbeitsplatzrechner 2 Vorrang ein. Unter normalen Umständen sollte
dem VoIP-Telefon 1 Vorrang eingeräumt werden,
da der Anwender leicht eine Zunahme der Latenzzeit von Telefondaten
bemerkt. Wenn dem VoIP-Telefon 1 immer Vorrang eingeräumt wird,
wie es vorzuziehen ist, wenn Daten von dem FIFO 12 und
dem FIFO 14 bereit sind, gleichzeitig an den MAC 7 gesendet
zu werden, überträgt der MAC
einfach das Datenpaket von dem FIFO 14 und signalisiert
dem FIFO 12, um zu verhindern, dass dieser seine Pakete
sendet. Diese Datenübertragung dauert
so lange an, bis der FIFO 14 leer ist; der MAC 7 würde dann
Daten von dem FIFO 12 holen. Dasselbe Verfahren wird von
dem MAC 8 angewendet, um gleichzeitig von den FIFOs 11 und 16 eintreffende Daten
zu verarbeiten, wobei vorzugsweise dem VoIP-Telefon 1 Vorrang
eingeräumt
wird.
-
Man
wird verstehen, dass andere Paketprioritätsschemen festgelegt werden
könnten,
und dass die Erfindung nicht auf die hierin offenbarten Beispiele
begrenzt ist.
-
Derartige
mögliche
Schemen umfassen die Round-Robin-Priorisierung, bei der die MACs
zwischen der Frage, welche der beiden miteinander konkurrierenden Datenreihen
sie übertragen
sollen, und der Bandbreitenzuordnung abwechseln, wobei die Priorisierung
auf der durch die Übertragungen
verbrauchten Menge an Bandbreite basiert. In dem vorliegenden Fall
ist es jedoch aus mindestens drei Gründen vorzuziehen, dem VoIP-Telefon 1 ständig Vorrang
einzuräumen.
Erstens werden die niedrigen Latenzzeitanforderungen an die VoIP-Telefondaten erfüllt. Zweitens
wird die Übertragung
von Daten zwischen dem Netzwerk 3 und dem Arbeitsplatzrechner 2 auf
Grund der niedrigen Bandbreite der VoIP-Telefondaten nicht sonderlich
behindert. Drittens ist dies ein äußerst einfach zu implementierendes
Schema.
-
Neben
dem Empfang von Daten von zwei FIFOs können die MACs 7 und 8,
wie oben erwähnt, auch
Daten an zwei FIFOs übertragen.
Wenden wir uns 4 zu; der MAC 7 kann
Daten an den Arbeitsplatzrechner 2 über den FIFO 11, an
das VoIP-Telefon 1 über
den FIFO 13 oder an beide übertragen; der MAC 8 kann
Daten an das Netzwerk 3 über den FIFO 12, an
das VoIP-Telefon 1 über
FIFO 15 oder an beide übertragen.
-
Vorzugsweise
wird dieser Datenfluss dadurch gesteuert, indem der MAC 7 mit
einem Datenbus ausgestattet wird, der sowohl mit dem Eingang von
dem FIFO 11 als auch mit dem Eingang von dem FIFO 13 verbunden
ist, und indem auf spezifischen Leitern für jeden der FIFOs 11 und 13 Steuersignale bereitgestellt
werden, die anzeigen, ob die Daten auf dem Datenbus für diesen
FIFO bestimmt sind, wobei jeder der FIFOs 11 und 13 jegliche
Daten an seinem Eingang ignoriert, wenn die Steuersignale anzeigen, dass
die Daten für
den anderen FIFO bestimmt sind. Jeder der FIFOs 11 und 13 hält dann
lediglich die für ihn
bestimmten Daten. Alternativ können
die FIFOs 11 und 13 alle Daten halten, wobei die
Hinweisadressen in dem FIFO bearbeitet werden, um unerwünschte Daten
zu löschen,
um zu verhindern, dass diese die FIFO-Puffer füllen. Man könnte es zulassen, dass Daten-
und Steuersignale in FIFOs gehalten werden, und dass der MAC 8 und
der Puffermanager 9 die unerwünschten Daten herausfiltern,
dies ist weniger vorteilhaft als die anderen beiden Regelungen,
da riskiert wird, dass die FIFOs mit unerwünschten Daten gefüllt werden.
Durch den MAC 7 empfangene Punkt-Multipunkt-Datenpakete
werden in beide der FIFOs 11 und 13 kopiert.
-
Jedes
der oben erläuterten
Verfahren zur Steuerung des Flusses von Daten von dem MAC 7 zu den
FIFOs 11 und/oder 13 kann auch für die Steuerung
des Flusses von Daten von dem MAC 8 zu den FIFOs 12 und 15 verwendet
werden. In dem bevorzugten Ausführungsbeispiel
der Erfindung wird ein einzelner Datenbus bereitgestellt, um Daten
von dem MAC 7 an die FIFOs 11 und 13 und
von dem MAC 8 an die FIFOs 12 und 15 zu
leiten, wobei einzelne Steuersignale anzeigen, ob diese Daten für diesen FIFO
bestimmt sind.
-
Der
Großteil
des Datenflusses findet zwischen dem Netzwerk 3 und dem
Arbeitsplatzrechner 2 und umgekehrt statt. Betrachten wir
den Datenfluss von dem Arbeitsplatzrechner 2 zu dem Netzwerk 3; ein
Datenpaket wird an den MAC 8 übertragen, der das Datenpaket
an den FIFO 12 (und möglicherweise auch
an den FIFO 15) leitet. Wenn dieses Datenpaket das andere
Ende des FIFO 12 erreicht, werden die Daten an den MAC 7 geleitet.
Der MAC 7 puffert dieses Signal und steuert die Verbindung
mit dem Netzwerk. Auf ähnliche
Weise wird ein an dem MAC 7 von dem Netzwerk 3 empfangenes
Datenpaket an den FIFO 11 (und möglicherweise auch an den FIFO 13)
geleitet. Dieses Datenpaket wird an den MAC 8 geleitet,
der dieses Signal puffert und die Verbindung mit dem Arbeitsplatzrechner 2 steuert.
-
Die
beschriebene Situation betrifft die Übertragung von Daten zwischen
dem Arbeitsplatzrechner 2 und dem Netzwerk 3,
wenn das VoIP-Telefon 1 nicht verwendet wird. Unter diesen
Umständen
werden die einzigen der Verbindung zwischen dem Arbeitsplatzrechner 2 und
dem Netzwerk 3 zugeführten Verzögerungen
durch das Leiten der Daten durch die MACs 7 und 8 und
die FIFOs 11 oder 12 verursacht. Somit beeinträchtigt die
Bereitstellung des VoIP-Telefons 1 die Leistungsfähigkeit
des Arbeitsplatzrechners nicht maßgeblich, wenn das VoIP-Telefon
nicht verwendet wird. In der Tat kann die durch die Einführung des
VoIP-Telefons 1 verursachte Verzögerung bei der Übertragung
von Daten zwischen dem Arbeitsplatzrechner 2 und dem Netzwerk,
wenn dieses Telefon nicht verwendet wird, vernachlässigbar
gemacht werden, da die Verarbeitung von Daten in dem Netzwerkerweiterungsmodul 6 üblicherweise
deutlich schneller ist als die Übertragung
von Daten über das
Netzwerk 3. Dies ist wichtig, da der Großteil der übertragenen
Daten zwischen dem Arbeitsplatzrechner 2 und dem Netzwerk 3 auftritt,
und der Anwender keine maßgebliche
Beeinträchtigung
der Leistungsfähigkeit
als Ergebnis der Hinzufügung
des Erweiterungsmoduls und eines VoIP-Telefons 1 bemerken wird.
-
Da
es möglich
ist, mehr Daten für
einen Anschluss zu empfangen als zu übertragen, wird eine Flusssteuerung
bereitgestellt, um zu verhindern, dass Datenpakete auf Grund des
Aufbaus eines Verarbeitungsrückstands
von auf die Übertragung
wartenden Datenpaketen verloren gehen. In dem bevorzugten Ausführungsbeispiel
enthält
das Modul ein Mittel für
das Senden eines Flusssteuerungspakets an eine Datenquelle, um anzuzeigen,
dass sie die Übertragung
von Daten an das Modul beenden soll. Dieses Thema wirkt sich auch
auf die Mindestgröße der FIFOs 11 und 13 aus.
Wenn die Datenquelle mit dem Senden eines Datenpakets an das Modul
zu dem Zeitpunkt begonnen hat, zu dem eine Flusssteuerung als notwendig
erachtet wird, muss das Flusssteuerungspaket abwarten, bis dieses
Datenpaket übertragen
wurde, bevor es gesendet werden kann. Wenn dieses Flusssteuerungspaket
an der Datenquelle ankommt, kurz nachdem die Quelle mit dem Senden
eines Datenpakets begonnen hat, wird dieses Paket gesendet, bevor
die Datenquelle blockiert wird. Somit müssen unter Umständen zwei
Datenpakete nach dem Zeitpunkt, zu dem die Flusssteuerung als notwendig
erachtet wird, gepuffert werden. Deshalb müssen die FIFOs 11 und 12 relativ
groß sein. Mit
Datenpaketen von 1,5 Kilobyte (kB) sollten die FIFOs 11 und 12 jeweils
mindestens 6 kB groß sein.
-
Ein
wie in 5 gezeigtes, alternatives Ausführungsbeispiel der Erfindung
weist auch einen MAC 7 für das Netzwerk 3,
einen MAC 8 für
den Arbeitsplatzrechner 2 und zwei Puffermanager 9 und 10 für das VoIP-Telefon 1 auf.
Die FIFOs 11 bis 16 werden jedoch durch einen
einzelnen RAM 17 ersetzt. Der RAM 17 kann in eine
Reihe von Speicherblöcken aufgeteilt
sein, wobei jeder Block einen der FIFOs 11 bis 16 darstellt.
Auf diese Art wird der RAM 17 dafür verwendet, um die FIFOs aus 4 einfach
umzusetzen. Alternativ hierzu kann die Zuordnung von Speicher in
dem RAM 17 dynamisch sein, wobei der die FIFOs 11 bis 16 darstellende
Speicher so variiert wird, wie er für den relativen Datendurchsatz
benötigt wird.
Eine solche dynamische Zuordnung von RAM könnte unter Verwendung einer
verketteten Listenstruktur umgesetzt werden. Der Einfachheit halber werden
Punkt-Multipunkt-Datenpakete in die Listen für jedes Ziel (d.h. beide der
zwei möglichen
Ziele) kopiert.
-
Das
in 4 gezeigte Netzwerkerweiterungsmodul 6 umfasst
einen FIFO für
jede in 3 gezeigte Datenroute. Es kann
vorteilhaft sein, mehr FIFOs als diese bereitzustellen. Einige Datenklassen können zum
Beispiel wichtiger sein als andere. Unter solchen Umständen könnte jeder
der FIFOs in 4 durch zwei FIFOs ersetzt werden,
einer für
Prioritätsdaten
und einer für
weniger wichtige Daten, die dieselbe Route nehmen. Den FIFOs, die
wichtige Daten übertragen,
würde Vorrang über andere
FIFOs eingeräumt.
Dies ist für
das VoIP-Telefon 1 besonders vorteilhaft, da es möglich wäre, den
VoIP-Datenpaketen, die Sprachinformationen übertragen, Vorrang über andere
VoIP-Daten (wie die an das Netzwerk gerichteten Steuerinformationen,
zum Beispiel das Telefon auf der anderen Seite des Telefonanrufs)
einzuräumen,
da es besonders wichtig ist, dass die Sprachinformationen nicht
verzögert
werden. Daher ist es (auf Kosten von zusätzlichen Schaltkreisen) vorteilhaft,
zwei FIFOs für
die Übertragung
von Datenpaketen von dem Puffermanager 10 an den MAC 7 bereitzustellen,
den ersten davon für
Sprachinformationen und den zweiten für andere VoIP-Daten (z.B. Steuerdaten),
wobei dem ersten Priorität über den
zweiten eingeräumt
wird.
-
Da
das Netzwerkerweiterungsmodul der vorliegenden Erfindung die Form
eines separaten Moduls, das einer vorher bestehenden Verbindung
zwischen einem Arbeitsplatzrechner und einem Netzwerk hinzugefügt werden
kann, annehmen kann, ist das Netzwerkerweiterungsmodul gut dazu
geeignet, Teil einer VoIP-Telefoneinheit zu sein. Es könnte auch
in dem Computer bereitgestellt werden, zum Beispiel als Teil einer
Netzwerkkarte in dem Computer. Wenn das Modul in dem Computer bereitgestellt wird,
dann könnten
die anderen herkömmlichen Schaltkreise
des VoIP-Telefons ebenfalls in dem Computer bereitgestellt werden
(z.B. auf der Netzwerkkarte).
-
Das
Netzwerkerweiterungsmodul kann als Hardware umgesetzt werden. Die
MACs 7 und 8 und die Puffermanager 9 und 10 können zum
Beispiel als ASIC-Module
bereitgestellt werden, wobei die FIFO-Puffer durch das ASIC oder
durch einen separaten Speicherblock, wie in 5 gezeigt,
bereitgestellt werden.