-
Diese
Erfindung offenbart, wie ein System, von dem verlangt wird, dass
es Schnittstellen mit sich unterscheidenden Echtzeitanforderungen
unterstützt,
durch den Einsatz eines gemeinsamen Busses unterstützt werden
kann.
-
Es
ist wohlbekannt, dass sich Systeme, die aus Untersystemen bestehen,
durch den Einsatz von Bussen oder geschalteten Sternnetzwerken konstruieren
lassen. Bussysteme, wie z.B. Multibus, SCSI, ISA und PCI, werden
zur Verbindung von Untersystemen oder individuellen Vorrichtungen
verwendet. Der Nachteil dieser Busse besteht darin, dass sie nicht ausdrücklich zur
Lieferung von Dienstgüte
(QoS) vorgesehen sind, und folglich ist es, wenn Untersysteme oder
Chips mit derartigen Bussen verbunden sind, Aufgabe des Prozessors
bzw. der Prozessoren, die Eigenschaften solcher Untersysteme zu
kennen. Dies bedeutet, dass eine einfache modulare Methode zur Erweiterung
eines Systems nicht möglich
ist, weil das Hinzufügen
einer neuen Vorrichtung Überlegungen
in Bezug auf jede andere Vorrichtung im System notwendig macht.
Also kommt es, während
der Bereich der unterstützten
Funktionen wächst,
zu einem exponentiellen Anstieg der Komplexität bei Tests und Design.
-
Es
gibt Busse, die zur Unterstützung
der Dienstgüte
entworfen sind, und zu den Beispielen dafür zählen USB und IEE1394 (bei denen
es sich um öffentlich
verfügbare
Standards handelt, die von den jeweiligen Organisationen unter www.usb.org
und www.ieee.org im Netz gehalten werden). Diese Busse sind typischerweise
so entworfen, dass sie zwischen großen Untersystemen arbeiten
und eine serielle Schnittstelle nutzen, um die Anzahl erforderlicher Schnittstellen-Pins
zu minimieren. Kennzeichnenderweise unterstützen sie nur zwei Verkehrstypen,
nämlich
den isochronen und den asynchronen. Dies verringert ihre Komplexität im Vergleich
zu jener der nicht QoS-bewussten Busse, aber mit dem Aufkommen von
Geräten,
die eine umfangreichere Dienstgüte
erfordern, stellt die Komplexität
noch immer eine erhebliche Belastung dar.
-
Ein
System umfasst für
jede der Schnittstellen, die es unterstützt, sowohl Hardware- als auch Softwarekomponenten.
Der Prozessor bzw. die Prozessoren des Systems lässt bzw. lassen gewöhnlich ein
Betriebssystem und Gerätetreiber
laufen, die speziell für
jede Schnittstelle geschrieben sind. Ein Gerätetreiber hat mehrere Funktionen
durchzuführen:
- (i) Schnittstelleninitialisierung
- (ii) Datentransport von der Schnittstelle weg und zu ihr hin
- (iii) Schnittstellenverwaltung
-
Diese
Funktionen unterliegen gewöhnlich verschiedenen
Zwängen
bezüglich
der Rate der Interaktionen durch den Prozessor. Beispielsweise handelt
es sich bei der Initialisierung gemeinhin um einen einmaligen Vorgang,
der abgeschlossen sein muss, bevor die Schnittstelle betriebsbereit
ist. Der Datentransport stellt einen Echtzeitvorgang dar, dessen
Charakteristiken von der Schnittstelle und dem unterstützten Datentyp
abhängen.
Die Verwaltung der Schnittstelle ist abhängig von deren Komplexität, der Häufigkeit
der Anfragen aus einem Verwaltungssystem, etc.
-
Deshalb
ist ein bestimmter Gerätetreiber
so zu schreiben, dass die unterschiedlichen Echtzeiteinschränkungen
der Schnittstelle Berücksichtigung
finden. Dann ist der Gerätetreiber
als Teil des Gesamtsystems anzusehen, und eine der wichtigen Überlegungen
besteht darin, welche anderen Gerätetreiber vorhanden sind. Üblicherweise
verfügt
ein System über
eine Gruppe von Schnittstellen, die miteinander in Konflikt stehende
Anforderungen stellen, und die daraus resultierende Komplexität führt zu längeren Zeiten
für Integration,
Test und Debugging.
-
JP 11 074898 (NEC eng.
Ltd.) offenbart eine Vorrichtung, welche CBR-Daten auf einer TDM-Übertragungsleitung und VBR-Daten
auf einer ATM-Übertragungsleitung
zur selben Zeit verarbeitet, indem sie den Verkehr im Fall eines
Assemblierens/Disassemblierens von CBR- und VBR-Zellen einheitlich macht, um
eine Verzögerungszeit
und eine fluktuierte Zeit der CBR-Zellen zu verkürzen.
-
GB 2 303 521 (PMC Sierra
Inc.) offenbart eine ATM-Schicht-Vorrichtung, die zwischen einem Switch
und einer Mehrzahl von PHY-Vorrichtungen eine Schnittstelle bildet.
Diese Vorrichtung führt
eine Anzahl von ATM-Schicht-Funktionen aus, beispielsweise Zell-Identifikations-,
Translations-, Kontroll-, Überwachungs-
und Verwaltungsfunktionen, bevor eine Zelle vom ATM-Core-Switch
empfangen wird.
-
Dieser
Erfindung liegt die Aufgabe zugrunde, die Einschränkungen
bezüglich
Komplexität,
Tests und begrenztem QoS-Bewusstsein anzugehen und zu überwinden.
-
Die
Erfindung ist durch die begleitenden Ansprüche definiert.
-
Nun
erfolgt die Beschreibung von Ausführungsformen der Erfindung
anhand von Beispielen und unter Bezugnahme auf die begleitende Zeichnung,
in der:
-
1 die
schematische Darstellung eines Systems ist, das die Erfindung verkörpert.
-
Zunächst wird
eine allgemeine Beschreibung des Hintergrunds der Erfindung vorgenommen.
-
Bei
ATM handelt es sich um eine Netzwerktechnologie, die weitverbreitet
zur Unterstützung
von Anwendungen eingesetzt wird, welche sich unterscheidende Dienstgüteanforderungen
aufweisen. Die zahlreichen Standards, die von Organisationen, wie
z.B. dem ATM-Forum und der ITU, hervorgebracht werden, erläutern, in
welcher Weise Anwendungen sich unterscheidende Dienstgütegrade
verlangen können,
wobei auf fundamentalster Ebene Zellen mit zuvor definierten Feldern
verwendet werden; diese Felder werden von den Endpunkten und den
Zwischenknoten benutzt, um Zellen zu routen, deren Dienstgüte sicherzustellen
und eine Rückmeldung über den
Zustand des intervenierenden Netzwerks zu liefern.
-
Das
ATM-Forum hat UTOPIA, eine PHY-Level-Schnittstelle, definiert, (die
eine standardmäßige ATM-Schnittstelle
darstellt, deren Spezifikation im ATM-Forum verfügbar ist unter www.atmforum.com, Referenz-Nr.
af-phy-0017.00 (UTOPIA 1) und af-phy-0039.00 (UTOPIA 2), welche
anwendbar sind, um ATM-Systeme miteinander zu verkoppeln). Die Spezifikation
für UTOPIA
Level 2 beschreibt einen Master-Slave-Bus, in dem eine einzige Master-Einrichtung
in der Lage ist, mit bis zu 31 Slave-Einrichtungen zu kommunizieren.
UTOPIA ist nicht nur in seriellen, sondern auch in parallelen Varianten
und sowohl mit bandinterner als auch mit bandexterner Steuerung
definiert.
-
Die
Erfindung unterbreitet den Vorschlag, PHY-Level-Schnittstellen,
wie z.B. UTOPIA, als QoS-bewussten Bus einzusetzen. Die Verwendung eines
solchen Busses in Kombination mit ATM-Dienstgütemerkmalen, wie sie von vielen
Standardgeräten
unterstützt
werden, ermöglicht
die Entwicklung eines Systems, welches das Problem des Lieferns
von Verkehr, und zwar mit Dienstgüte, in skalierbarer und testbarer
Weise angeht. Diese Neuverteilung von Funktionen innerhalb des Systems macht
eine einfachere Peripherie möglich,
während es
ein intern einheitliches Rahmenwerk für die Entwicklung von Gerätetreibern
bietet.
-
Nun
bezugnehmend auf 1 wird jedes der Peripheriegeräte 1 vom
ATM SAR & Scheduler
2 als separater UTOPIA-Slave-Port angesteuert. Der ATM SAR & Scheduler stellt
Tempofunktionen für
die Schnittstelle zur Verfügung,
wobei alle der verfügbaren
ATM-Verkehrsklassen
genutzt werden. Beispielsweise bieten viele handelsübliche Geräte UBR- und CBR-Verkehr,
welche im Kontext dieser Erfindung als asynchroner und synchroner
Verkehr angesehen werden können.
Der Einsatz standardmäßiger ATM-Scheduling-Techniken ermöglicht die
Verwendung wohlbekannter Mechanismen, um den Verkehr über den
UTOPIA-Bus zeitlich einzuteilen; falls der Scheduler andere Verkehrsklassen
implementiert, beispielsweise VBR, eröffnet sich die Möglichkeit, das
Peripheriegerätdesign
zu vereinfachen, da die Dienstgüteeigenschaften
gestatten, dass die Peripheriegerätlogik minimiert und das Design
des Gerätetreibers
simplifiziert wird.
-
Innerhalb
eines Systems gibt es viele mögliche
Peripheriegeräte,
und im Folgenden wird eine Untergruppe dieser Möglichkeiten detaillierter erläutert.
-
Die TDM-Schnittstelle
-
TDM-Schnittstellen
(Time Division Multiplexing) stellen eine Rahmenstruktur her, innerhalb
derer Kanäle
eingerichtet werden; in jedem Rahmen besteht ein Kanal aus einer
Anzahl von Bits, und zwar typischerweise aus acht. Die Anzahl der
Kanäle hängt vom
Rahmenintervall ab. Operationen für eine TDM-Schnittstelle bestehen
aus dem Zuteilen der Kanäle
zu Zeitschlitzen innerhalb eines Rahmens und dem Multiplexen/Demultiplexen
von Kanaldaten innerhalb eines zugeteilten Zeitschlitzes.
-
In
herkömmlichen
Systemen wird eine TDM-Schnittstelle aus Timing-Logik, Serialisierungslogik,
einem Multikanal-DMA-Controller und Arbitrierungslogik zu einem
Speichersystem konstruiert. Der Gerätetreiber für eine solche Schnittstelle
verwaltet die Initialisierung, Transfers, etc., und macht dies gewöhnlich in
einer Weise, die einmalig für
Schnittstellenlogik oder Chip ist.
-
Mithilfe
der Erfindung lassen sich sowohl die Hardware als auch die Software
einer TDM-Schnittstelle
erheblich vereinfachen. Die Hardware kann z.B. auf eine UTOPIA-Schnittstelle,
eine Frame-Timing-Logik und eine Serialisierungsfunktion reduziert werden.
-
Was
die Software anbelangt, kann die TDM-Schnittstelle insgesamt als
CBR-Datenstrom angesehen werden. Der Rest der TDM-Schnittstelle kann
nun gänzlich
unter Verwendung von ATM-Konstrukten aufgebaut werden, wie z.B.
Switching, QoS, SAR, etc. Einfache ATM SAR- und Scheduling-Vorrichtungen
sind nur zur Unterstützung
des CBR-Basisstroms in der Lage; in diesem Fall ist andere Software
innerhalb des Systems notwendig, um die Kanal-Multiplexing/Demultiplexing-Funktionen
zu implementieren. Ausgeklügeltere
ATM SAR- und Scheduling-Vorrichtungen bieten eine breitere und größere Unterstützung, welche
die Software weiter vereinfacht. Insgesamt schafft die Fähigkeit,
ATM-Konstrukte beim Zuordnen von Systemressourcen zu verwenden,
die Möglichkeit
einer Neuverteilung im Design, welche Tests, Interoperabilität und Debugging
vereinfacht. Die Neuverteilung der Hardware eröffnet die Möglichkeit einer effizienteren
gemeinsamen Nutzung von zentralen Ressourcen, z.B. Speichern. Die
Vorteile für
den Systemdesigner bestehen darin, dass der gemeinsame Kern von
Prozessor und Scheduler mittels sehr einfacher externer Hardware-Blöcke vergrößert werden
kann, die sich beispielsweise in kleinen FPGAs (zur Entwicklung)
oder ASICs (zum Deployment) implementieren lassen.
-
Die HDLC-Schnittstelle
-
Bei
HDLC-Schnittstellen handelt es sich um synchrone serielle Schnittstellen,
welche Pakete variabler Länge
in den Datenstrom einbetten. Die Paketgrenzen sind durch Flags mit
einem einmaligen Muster markiert; Bit-Stuffing/Unstuffing-Logik
wird verwendet, um zu gewährleisten,
dass Datenmuster, die mit dem Flag übereinstimmen könnten, oder
Abbruchsequenzen nicht weitergeleitet werden. Die Pakete können eine
Länge von
bis zu 65536 Bytes besitzen.
-
Bei
herkömmlichen
Systemen ist eine HDLC-Schnittstelle aus Timing-Logik, Serialisierungslogik,
Paketpuffern und gewöhnlich
auch aus einem DMA-Controller, etc. konstruiert, um die Daten zu/aus
einem Speichersystem zu transferieren. Mittels der Erfindung lässt sich
die Hardware zu Timing-Logik, Serialisierungslogik und einer geringen Anzahl
von Zellpuffern vereinfachen.
-
Was
die Software anbelangt, kann die HDLC-Schnittstelle als ein VBR-Datenstrom
angesehen werden, wobei die Spitzenzellenrate (PCR) gleich der Leitungsrate
des HDLC-Controllers
und die Burst-Größe gleich
der Paketlänge
ist. Weitere Erwägungen ähneln jenen
bezüglich
der TDM-Schnittstelle und führen
zu vereinfachten Peripheriegeräten,
zur effizienteren Nutzung zentraler Systemressourcen und zu einer
gut definierten Gruppe von Konstrukten, aus denen der Gerätetreiber
gebildet wird. Erneut besteht einer der wichtigen Punkte darin,
dass die Gerätetreiber
nun innerhalb einer in sich schlüssigen
Architektur entwickelt werden können,
die unabhängig
zu einer einfacheren Systemintegration, unkomplizierteren Tests
und einer leichteren Wartung führt.
-
Es
ist wichtig anzumerken, dass trotz der hierin erfolgten Beschreibung
sehr simpler Peripheriegerätfunktionen
die Gelegenheit besteht, geringfügig
kompliziertere Geräte
einzusetzen, welche weitere Vorteile aus ATM-Funktionen ziehen können. Beispielsweise
ist im Fall der soweit erläuterten
simplen Peripheriegerätfunktionen
der Header der ATM-Zellen überhaupt
nicht verwendet worden – auf
der grundlegendsten Ebene werden Datenströme über einen QoS-bewussten Bus
gemultiplext. Allerdings lässt
sich dadurch, dass z.B. das VPI/VCI-Feld als HDLC-Adresse verwendet
wird, die Treibersoftware sowohl vereinfachen als auch erweitern,
um spezifischen Adressen Dienstgüte
für individuelle
Pakete anzubieten. Auf diese Weise wird ein einfaches und elegantes
Mittel zur Erweiterung bestehender Funktionen geboten. Dies mit
einem herkömmlichen
System zu erreichen, würde
einen erheblichen Arbeitsaufwand für die Neugestaltung erfordern.
-
Die RAM-Schnittstelle
-
Systeme
können
sich aus vielen Prozessoren zusammensetzen, die miteinander kommunizieren
müssen.
Beispielsweise kann ein Router über
zusätzliche
Prozessoren verfügen,
um Video (MPEG, etc.) oder Sprache (G.711, etc.) zu unterstützen. Der günstigste
Weg zur Implementierung der Kommunikation zwischen Prozessoren besteht
in der Verwendung eines gemeinsam genutzten Speichers. In den angeführten Beispielen
bilden die Daten einen kontinuierlichen Strom, und die Gerätetreiber
müssen
so konstruiert sein, dass sie diese Datenströme zwischen den Prozessoren
weiterleiten.
-
Die
Erfindung unterstützt
gemeinsam genutzte Speichersysteme mit deren zugehörigen Echtzeit-Streaming-Anforderungen.
Beispielsweise können
die ATM-VPI/VCI-Felder neu definiert werden, damit sie Adressen
innerhalb eines gemeinsam genutzten Speichers sind, wobei es den
anderen Fluss-Steuerfeldern überlassen
bleibt, Interlocks zwischen den Prozessoren herzustellen. Welche
Verkehrsklasse vom ATM SAR & Scheduler
implementiert wird, hängt
von den Stream-Anforderungen ab – für MPEG und G.711 wären nur
CBR-Streams erforderlich.
-
Einmal
mehr besteht der Vorteil darin, dass eine in sich schlüssige, QoS-bewusste
Umgebung vorhanden ist, in der sowohl die Schnittstellen-Hardware
also auch der zugehörige
Gerätetreiber
entwickelt wird.
-
Die Ethernet-Schnittstelle
-
Bei
Ethernet-Schnittstellen handelt es sich um synchrone serielle Schnittstellen,
welche Datenpakete übertragen;
die Paketlänge
ist abhängig
von der Geschwindigkeit der Schnittstelle und davon, ob die Schnittstelle
Prioritäten
oder Dienstgüte
unterstützt
oder nicht (IEEE 802.1p und 802.1q).
-
Typischerweise
müssen
Peripheriegeräte über einen
Speicher verfügen,
der genügend
Platz für
ein komplettes Ethernetpaket enthält, weil Daten, sobald eine Übertragung
beginnt, mit der Ethernet-Leitungsrate geliefert werden müssen; andernfalls
wird das Paket fehlerhaft. Falls die Erfindung eingesetzt wird,
kann der Scheduler so programmiert werden, dass er eine VBR-Verkehrsklasse
mit einer Spitzenzellenrate implementiert, die gleich der Ethernetleitungsrate
ist, und mit einer Burstgröße, die gleich
dem längsten
Ethernetpaket ist. In solch einem System müsste lediglich das Peripheriegerät anstatt über die üblicheren
zwei Pakete (~ 3000 Bytes) über zwei
Zellen (96 Bytes) zum Puffern verfügen – der ATM SAR & Scheduler stellt
zentralisierte Speicher- und Scheduling-Dienste zur Verfügung. Die
verringerte Komplexität
des Peripheriegeräts
erlaubt einfacheres Testen und bietet die Gelegenheit zur Integration
weiterer derartiger Peripheriegeräte. Dies verschafft außerdem einen
natürlichen
Mechanismus zur Unterstützung
der Dienstgüte
an der Ethernetschnittstelle selbst – und dies stellt eine wichtige Erwägung dar,
während
die Präsenz
der Dienstgüte immer
mehr zunimmt.
-
In
einem System, in dem der UTOPIA-Bus oder ein äquivalenter Bus intern enthalten
ist, besteht überhaupt
keine Notwendigkeit, dass das Peripheriegerät die vordefinierten Felder
in der ATM-Zelle nutzt. Das Peripheriegerät wird durch die UTOPIA-Portzahl angesteuert.
In einigen Fällen
kann die Verwendung dieser Felder für andere Zwecke das Design
des Peripheriegeräts
weiter vereinfachen. Falls beispielsweise ein Dual-ported Memory
mithilfe dieser Technik konstruiert wird, können die VPI/VCI-Felder der ATM-Zellen
als Adresse eines Ortes bzw. von Orten innerhalb des Dual-ported
Memory benutzt werden. Dies wäre
beispielsweise dann von Wichtigkeit, wenn z.B. ein MPEG-Decoder
angesteuert wird und der Videostrom mit garantierter Dienstgüte geliefert
werden muss, um die Bildqualität
des Decoders aufrechtzuerhalten.
-
Somit
ist es ersichtlich, dass durch die Neuverteilung von Funktionen,
welche von Peripheriegeräten
verlangt werden, die Möglichkeit
besteht, das Design des Peripheriegeräts zu vereinfachen, was zu niedrigeren
Kosten und geringerer Größe führt, die zentralisierten
Ressourcen in effizienterer Weise zu teilen und einen Erweiterungsmechanismus
zu bieten, der sich mühelos
ausdehnen lässt,
um auf unterschiedliche Dienstanforderungen einzugehen. Im Hinblick
auf ATM SAR & Schedulers,
die über
eine höhere
Verarbeitungsleistung verfügen,
eröffnet
sich ferner die Möglichkeit,
mehr von der Peripheriegerätfunktionalität in Software
zu implementieren, was zu anpassbareren Lösungen führt.