DE69636458T2 - Verfahren zur Verkehrsformung und Verkehrformer - Google Patents

Verfahren zur Verkehrsformung und Verkehrformer Download PDF

Info

Publication number
DE69636458T2
DE69636458T2 DE1996636458 DE69636458T DE69636458T2 DE 69636458 T2 DE69636458 T2 DE 69636458T2 DE 1996636458 DE1996636458 DE 1996636458 DE 69636458 T DE69636458 T DE 69636458T DE 69636458 T2 DE69636458 T2 DE 69636458T2
Authority
DE
Germany
Prior art keywords
class
stream
streams
increment
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 - Lifetime
Application number
DE1996636458
Other languages
English (en)
Other versions
DE69636458D1 (de
Inventor
c/o Sony Objective Composer Paul Hodgins
c/o Sony Objective Composer Gert J.E. Copejans
c/o Sony Objective Composer Johan de Vos
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.)
Sony Europe Belgium NV
Original Assignee
Sony Service Center Europe NV
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 Sony Service Center Europe NV filed Critical Sony Service Center Europe NV
Application granted granted Critical
Publication of DE69636458D1 publication Critical patent/DE69636458D1/de
Publication of DE69636458T2 publication Critical patent/DE69636458T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/568Load balancing, smoothing or shaping

Description

  • Die vorliegende Erfindung bezieht sich auf Server für eine Datenabgabe. Traditionelle Server wurden mit dem Streben aufgebaut, in die physikalische Datenübertragung aktiv einbezogen zu werden. Für Anwendungen, wie für Video auf Anforderung oder Karaoke auf Anforderung ist eine Abgabe von digitalen Echtzeit-Videoströmen in einer hohen Zahl erforderlich. Der digitale Videostrom weist in typischer Weise Videodaten auf, die entsprechend ISO/IEC 11172 oder ISO/IEC 13818 komprimiert sind; diese Standards sind üblicherweise als MPEG-1-Standard bzw. als MPEG-2-Standard bekannt.
  • Ein auf dem ATM-(asynchronen Transfer-Modus)-systembasiertes Serversystem mit Erweiterungsfähigkeiten über eine bloße Datenabgabe hinaus ist bereits in der europäischen Patentanmeldung Nr. 95 200 819.1 vorgeschlagen worden.
  • Eine Stromzusammenstellung- bzw. Strombildungsmaschine für eine ATM-Kommunikation bzw. -Übermittlung, die als eine ASIC-Schaltung (das ist eine anwendungsspezifische integrierte Schaltung) aufgebaut ist, ist in der unter dem PCT veröffentlichen internationalen Anmeldung WO 96/08896 vorgeschlagen worden.
  • Ein Verfahren zur Aufzeichnung und Wiedergabe von komprimierten Videodaten entsprechend dem MPEG-Standard ist in der europäischen Patentanmeldung EP 0 667 713 A2 vorgeschlagen worden. In diesem Fall werden die komprimierten Videodaten auf einer Disk in der speziellen Form aufgezeichnet, die eine Abtastinformation enthält, so dass die bestimmte komprimierte Videodaten wiedergebende Wiedergabevorrichtung Videokassettenrekorder-(VCR)-Funktionen erzielen kann (beispielsweise einen schnellen Vorlauf FF, einen schnellen Rücklauf FR).
  • Aus „IEICE Transactions on Electronics" Vol. E78-C Nr. 12, Dezember 1995, Seiten 1738-1745, Yasuharu Tomimitsu et al: An ATM Chip Set for High Performance Computer Interfaces, Affording over 100Mbps Sustained Throughput"- "ein ATM-Chipsatz für Hochleistungs-Computerschnittstellen bringt einen unterstützten Durchsatz von über 100Mbps mit sich" ist ein ATM-Chipsatz für Hochleistungs-Computerschnittstellen bekannt, der einen unterstützten Durchsatz von über 100Mbps mit sich bringt.
  • Eine Aufgabe der vorliegenden Erfindung besteht darin, eine Verbesserung gegenüber dem oben erwähnten Stand der Technik zu schaffen und/oder einen Server für zukünftige Anwendungen bereitzustellen.
  • Die vorliegende Erfindung stellt ein Verfahren zur Verkehrsformung bereit, umfassend die Schritte:
    • – Klassifizieren eines oder mehrerer erster Datenströme von Daten hoher Priorität, wie von Videodaten, in eine oder mehrere Klassen, wobei jede Klasse einen oder mehrere Ströme mit denselben Bitraten-Charakteristiken enthält,
    • – Festlegen eines Satzes von Parametern zur Steuerung der Bitrate für jede Klasse,
    • – Ausführen einer Ratenschrittsteuerung bezüglich jeder Klasse entsprechend den gespeicherten Parametern,
    • – Formen des Verkehrs eines oder mehrerer zweiter Ströme niedriger Priorität, wie allgemeine Daten in festliegenden Verkehrsklassen, die einen oder mehrere Ströme derselben Spitzen-Zellrate aufweisen, unter Heranziehung einer zweiten Klassifizierungseinrichtung (20), wobei der Strom von Datenpaketen des Abschnitts niedriger Priorität lediglich dann abgegeben werden kann, wenn die Übertragungsschlange des Abschnitts hoher Priorität leer ist.
  • Ein Vorteil einer solchen Ausführungsform liegt darin, dass Daten hoher Priorität und Daten niedriger Priorität mit unterschiedlichen Algorithmen behandelt bzw. verarbeitet werden können. Daher kann ein bestimmter Algorithmus, der Daten hoher Priorität optimiert, wie dies in den Ansprüchen 3 bis 6 und unten in der Beschreibung ausgeführt ist, zur Behandlung der hohe Priorität aufweisenden Ströme angewandt werden.
  • Bevorzugte Ausführungsformen des Verfahrens gemäß der vorliegenden Erfindung sind in den abhängigen Unteransprüchen beschrieben bzw. erfasst.
  • Ferner stellt die vorliegende Erfindung einen Verkehrsformer gemäß Anspruch 6 bereit, wobei die Parameter eine ideale vorgesehene Zeit (TS) und ein Inkrement (Δ) für die ideale vorgesehene Zeit aufweisen und wobei die Einrichtung zur Ausführung der Inkremente der idealen vorgesehenen Zeit mit dem Inkrement in dem Fall, dass eine Zelle eines gerade vorliegenden Stromes in einer Klasse in eine Übertragungsschlange (216) eingefügt wird bzw. ist, einen Referenztakt mit der inkrementierten idealen vorgesehenen Zeit vergleicht und eine Zelle eines nächsten Stromes in der Klasse in die Übertragungsschlange einfügt, wenn die inkrementierte ideale vorgesehene Zeit gleich oder kleiner wird als der Referenztakt.
  • Weitere Vorteile, Merkmale und Einzelheiten der vorliegenden Erfindung werden aus der nachfolgenden Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen näher ersichtlich werden. In den Zeichnungen zeigen
  • 1 eine generelle Systemarchitektur eines interaktiven Kommunikationssystems,
  • 2 ein detailliertes Blockdiagramm einer Ausführungsform der Vorrichtung gemäß der vorliegenden Erfindung,
  • 3 ein Blockdiagramm eines Tx-Adressenumsetzers gemäß 2,
  • 4 ein Beispiel der Anwendung des Adressen-Umsetzers gemäß 3,
  • 5A, 5B und 5C Beispiele einer Adressenumsetzung für eine TCP-IP-Paketierung,
  • 6 ein Beispiel der Anwendung des Tx-Raten-Blocks gemäß 2,
  • 7 das Verhalten einer Bitrate, die durch den Verkehrsformer gemäß 2 erzielt wird,
  • 8 ein Diagramm zur Erläuterung des Aussendens eines Stromes innerhalb einer Zellperiode,
  • 9 die Unterordnung von Zellen für verschiedene Klassen,
  • 10 ein Blockdiagramm einer Architektur für den Verkehrsformer gemäß 2,
  • 11 ein Blockdiagramm des Befehlsblockes gemäß 2,
  • 12 ein Diagramm zur Erläuterung der Arbeitsweise eines Byte-Austauschers gemäß 2,
  • 13 ein Format einer in UNI benutzten ATM-Zelle,
  • 14 ein Blockdiagramm eines VPI/VCI-Umsetzers gemäß 2,
  • 15 ein Blockdiagramm eines Muster-Detektors gemäß 2 und
  • 16 ein Beispiel eines Adressen-Umsetzers gemäß 2.
  • 1 zeigt eine generelle Systemarchitektur einer bevorzugten Ausführungsform eines interaktiven Kommunikationssystems. Dieses System ist ein Breitbandsystem, welches virtuell jede Art von interaktiver Multimediaanwendung unterstützt. Besondere Aufmerksamkeit wird Echtzeit-Multimediaabgabemodus-Anwendungen gewidmet.
  • Ein Server 10 wirkt als VOD-(Video-auf-Anforderungs-)-Server, als KOD-(Karaoke-auf-Anforderungs-)-Server und/oder als Internet-Server, etc. und kommuniziert mit SetTopBoxen (STB) 18 als Clients über ein öffentliches Netzwerk 16. Der Server 10 besteht aus einem lokalen ATM-Koppelfeld 14 und mehreren SMU-Einheiten 12 (Speichermediumeinheiten), die durch das lokale ATM-Koppelfeld 14 miteinander verbunden sind. Die Hauptzwecke des lokalen ATM-Koppelfeldes 14 bestehen darin, Daten zwischen den SMU-Einheiten 12 weiterzuleiten (beispielsweise einen entsprechend dem MPEG-Standard komprimierten Film von einer SMU-Einheit zu einer anderen SMU-Einheit zu kopieren), innerhalb des Servers 10 ein ATM-basiertes LAN-Netz zu bilden und mit dem öffentlichen Netzwerk 16 eine Schnittstellenverbindung herzustellen. Jede SMU-Einheit 12 kommuniziert mit dem lokalen ATM-Koppelfeld 14 mit hoher Geschwindigkeit, und zwar mit der derzeitigen Technologie bei beispielsweise maximal 622Mbps. Das öffentliche Netzwerk ist optional vorgesehen, und der Server 10 kann mit den SetTopBoxen 18 direkt kommunizieren.
  • 2 zeigt ein detailliertes Blockdiagramm der SMU-Einheit 12. Die SMU-Einheit 12 weist als Haupteinheiten Speichervorrichtungen 20, einen Host 28 und eine Stromzusammenstellungs- bzw. Strombildungsmaschine 36 auf. Diese Einheiten sind über einen PCI-Bus 24 (das ist ein peripherer Komponenten-Verbindungs-Bus) miteinander verbunden. Eine Host-CPU 30 und ein Host-Speicher 32 in dem Host 28 sind durch einen MIPS-Bus 34 in einer konventionellen Konfiguration verbunden. Bei dieser Ausführungsform ist der MIPS-Bus 34 durch eine CPI-Brücke 26 mit dem CPI- Bus 24 verbunden. Der Host 28 hat hauptsächlich den Zweck, Anwendungen, wie VOD, KOD, in einem Internet-Server laufen zu lassen, der mit den Clients oder den SetTopBoxen in Interaktion steht.
  • Die Speichervorrichtungen 20 enthalten eine oder mehrere Reihen von Festplatten. Diese Festplatten sind durch SCSI oder einen Faserkanal verbunden, und sie speichern Echtzeit-sensitive Daten, wie MPEG-2-codierte Videoströme und die Inhalte von Datenpaketen, wie den Hauptteil von TCP/IP-(Übertragungssteuerungsprotokoll/Internetprotokoll)-Paketen ohne die Header.
  • Die Stromzusammenstellungs- bzw. Strombildungsmaschine 36 ist vorzugsweise als Einzel-ASIC-Schaltung (anwendungsspezifische integrierte Schaltung) aufgebaut. Die Strombildungsmaschine 36 gibt einen Strom der sensitiven Echtzeitdaten und der Datenpakete ab. Die Strombildungsmaschine 36 verfügt als Hauptteile über einen Sende- bzw. Übertragungspfad 50 und einen Empfangspfad 80 sowie über ein PCI-Interface 38 und ein Interface 40. Der Übertragungspfad 50 verarbeitet den abgehenden Datenstrom von den Speichervorrichtungen 20 und dem Host 28 zu dem lokalen ATM-Koppelfeld 14 hin. Der Empfangspfad 80 verarbeitet den ankommenden Datenstrom von dem lokalen ATM-Koppelfeld bzw. -Switch 14 zu den Speichervorrichtungen 20 und dem Host 28 hin. Die Hochgeschwindigkeitsverbindungen und die Unabhängigkeit des Sende- bzw. Übertragungspfades und des Empfangspfades ermöglichen gleichzeitig 622Mbps in beiden Richtungen.
  • Das PCI-Interface 38 stellt eine Schnittstelle zwischen dem PCI-Bus 24 und dem Übertragungspfad 50 sowie dem Empfangspfad 80 her. Das PCI-Interface 38 überträgt den abgehenden Datenstrom von dem PCI-Bus 24 zu einem PCI-FIFO-Speicher 52 in dem Übertragungspfad 50 sowie den ankommenden Datenstrom von einem PCI-FIFO-Speicher 98 im Empfangspfad zu dem PCI-Bus 24.
  • Das Interface 40 stellt eine Schnittstelle zwischen dem Übertragungspfad 50 und dem Empfangspfad 80 mit einer in einer physikalischen Schicht liegenden (nicht dargestellten) externen Vorrichtung dar, die an dem lokalen ATM-Koppelfeld 14 angeschlossen ist. Das Interface 40 kann zwei Arten von ATM-Schnittstellen entsprechend dem UTOPIA-Standard der Ebene 2 (Universal Test and Operation PHY-Interface für ATM) enthalten. Der eine Interfacetyp ist ein UTOPIA-Interface in einem 8 Bit breiten Datenpfadmodus, und der andere Interfacetyp ist ein UTOPIA-Interface in einem 16 Bit breiten Datenpfad-Modus.
  • Der Sende- bzw. Übertragungspfad 50 besteht aus mehreren funktionalen Blöcken, die zusammenwirken, um eine schnelle bzw. Hochgeschwindigkeits-Übertragung auszuführen.
  • Der erste Block in dem Sende- bzw. Übertragungspfad 50 ist der Tx-Adressenumsetzer 54, der den abgehenden Datenstrom aus dem PCI-FIFO-Speicher 52 in Hostspezifizierten Speicherplätzen eines Strompuffers 44 unterbringt, welcher in einem externen RAM-Speicher 42 zugeteilt ist. Dies ermöglicht eine gesteuerte „Verteilung" von Daten in einem nicht zusammenhängenden Speicher, was für einen Betrieb von Nutzen ist, der in gewissem Ausmaß der so genannten RAID-Operation (Redundant-Array-of-Inexpensive-Disks-Operation) ähnlich ist, welche die Integrität von Datenströmen und die TCP/IP-Paketierung gewährleistet.
  • Der TCP/IP-Prüfsummenblock 56 stellt eine Hardware-Unterstützung zur Berechnung von TCP/IP-Prüfsummen bereit. Seine Funktion besteht darin, eine Teilprüfsumme für jedes Paket zu berechnen und aufrecht zu erhalten, bis sämtliche Daten übertragen worden sind. Der TCP/IP-Prüfsummenblock 56 arbeitet mit dem Tx-Adressenumsetzer 54 zusammen, um TCP/IP-Pakete direkt in dem Strompuffer 44 zu erzeugen. Der TCP/IP-Header und die Nutzlast der Pakete werden in dem Strompuffer 44 gesondert untergebracht, indem sie durch den Prüfsummenblock 56 hindurch geführt werden, der eine Teilprüfsumme aufbewahrt. Sobald sämtliche Daten in dem Strompuffer 44 sind, wird der Prüfsummenwert an der korrekten Stelle des TCP/IP-Headers untergebracht, womit das Paket für eine Übertragung bereitsteht.
  • Das RAM-Interface 58 bildet eine Schnittstelle zwischen dem externen RAM-Speicher 42 und dem Sende- bzw. Übertragungspfad 50. Der externe RAM-Speicher 42 kann einen Doppelanschluss-SDRAM-Speicher (das ist ein synchroner dynamischer RAM-Speicher) umfassen. Dieser externe RAM-Speicher 42 enthält mehrere Strompuffer 44 zur Entkopplung des burstartigen Datenverkehrs von den Disks der Speichervorrichtungen 20, und er stellt die erforderlichen Datenströme mit konstanter Bitrate für das ATM-Netzwerk 16 bereit. Jeder Strompuffer verarbeitet einen abgehenden Datenstrom. Im Gegensatz zur ankommenden Richtung können die Pufferanforderungen vorab abgeschätzt werden, da die Datenstromcharakteristiken in der abgehenden Richtung vollständig vorhersagbar (steuerbar) sind. Daher werden die Strompuffer 44 in dem externen RAM-Speicher 42 statistisch zugewiesen.
  • Der Tx-RAID- oder SDI-(Strom-Daten-Integritäts-)-Block 60 liefert eine Unterstützung für eine Datenredundanz. Der Tx-Adressenumsetzer 54 bringt die Daten, wie gefordert, in dem Strompuffer 44 unter. Wenn Daten aus dem Strompuffer 44 abgegeben werden, korrigiert der Tx-RAID-Block 60 sodann Fehlerdaten in dem Augenblick, in dem eine der Disks in den Speichervorrichtungen 20 versagt.
  • Der Verkehrsformer 62 steuert die Strombildung der abgehenden Daten aus den Strom-Puffern 44 des ATM-Netzwerks 16. Er ist für einen sehr genauen Ratenschritt und eine niedrige CDV-Größe (Zellverzögerungsvariation) ausgelegt. Der Verkehrsformer 62 besteht aus zwei Hauptabschnitten. Der eine Abschnitt verarbeitet Daten hoher Priorität, wie den Videoverkehr, und der andere Abschnitt verarbeitet den allgemeinen Datenverkehr niedriger Priorität.
  • Der Befehlsblock 66 dient dazu, den Host, speziell den Host 28 von Echtzeitsensitiven Aufgaben zu entlasten. Er führt Aktionen aus, die durch die Übertragung des Inhalts von exakt bekannten Stellen im abgehenden Datenstrom getriggert werden.
  • Der Segmentierungsblock 70 segmentiert den abgehenden Datenstrom, der von dem Strompuffer 44 bereitgestellt wird, in AAL-5-PDU-Einheiten (ATM-Adaptionsschicht-5-Protokoll-Dateneinheiten), und bildet die AAL-5-PDU-Einheiten in ATM-Zellen ab. In dem Fall, dass der abgehende Datenstrom ein MPEG-2-SPTS-Datenstrom ist (Einzelprogramm-Transportstrom), ist der Segmentierungsblock 70 imstande, zwei TS-Pakete in dem MPEG-2-SPTS-Strom in eine AAL-5-PDU-Einheit zu segmentieren, sofern nicht weniger als zwei TS-Pakete in dem MPEG-2-SPTS-Strom vorhanden sind; im letzteren Fall nimmt die AAL-5-PDU-Einheit eine Abbildung in 8 ATM-Zellen vor. Im generellen Fall wird die AAL-5-Segmentierung durch die PDU-Größe gesteuert, die pro Strom programmierbar ist.
  • Der Empfangspfad 80 weist mehrere Blöcke entsprechend dem umgekehrten Betrieb der Blöcke des Sende- bzw. Übertragungspfades 50 auf.
  • Ein VPI/VCI-(Virtual Path Identifier/Virtual Channel Identifier)-Filterungsblock 84 führt eine schnelle und effiziente VPI/VCI-Filterung der ankommenden ATM-Zellen durch. Dies geschieht durch kombinierte Hash- und lineare Suchfunktionen über die Einträge in einer VPI/VCI-Tabelle.
  • Ein Wiederaufbaublock 86 führt grundsätzlich die umgekehrten Funktionen des Segmentierungsblocks 70 durch. Der Wiederaufbaublock 86 rekonstruiert die AAL-5-PDU-Einheiten unter Heranziehung der Nutzlast der ATM-Zellen und nimmt sodann eine Abbildung der AAL-5-PDU-Einheiten in den Daten der oberen Schicht (zum Beispiel MPEG-2-SPTS, TCP/IP-Pakete) vor.
  • Ein TCP-Prüfsummen-Überprüfungsblock 88 überprüft die TCP-Prüfsumme im TCP-Header, falls der ankommende Datenstrom durch das TCP-Protokoll übertragen wird.
  • Ein Muster-Detektor 92 ermöglicht die Ermittlung einer begrenzten Anzahl von Bitmustern in einem ankommenden Datenstrom. Es wird eine Liste erzeugt, die exakt angibt, wo die spezifizierten Bitmuster in dem Datenstrom auftreten. Dies unterstützt gewisse Verarbeitungsanforderungen, die während der Übertragung ausgeführt werden können, während sie ansonsten mit einer Nachverarbeitung vorzunehmen wären.
  • Ein Rx-RAID- oder SDI-Block 90 fügt dem ankommenden Datenstrom Redundanz hinzu. Falls eine Folge von N Wörtern in einen (nicht dargestellten) Puffer geschrieben wird bzw. ist, wird die Parität bezüglich dieser N Wörter als nächstes geschrieben. Diese Funktion kann ein-/ausgeschaltet werden. Falls der ankommende Datenstrom in der Speichervorrichtung 20 gespeichert und später als TCP/IP-Pakete über den Übertragungspfad 50 übertragen wird, wird die Funktion ausgeschaltet.
  • Ein RAM-Interface 94 stellt eine Schnittstelle zwischen dem Empfangspfad 80 und einem externen RAM-Speicher 46 dar. Der externe RAM-Speicher 46 kann einen doppelte Anschlüsse aufweisenden SDRAM-Speicher umfassen. Der externe RAM- Speicher 46 wird als mehrere Strompuffer 48 genutzt, in denen ankommende Datenströme gespeichert werden. Jeder Strompuffer 48 verarbeitet einen ankommenden Datenstrom. Die ankommenden Datenströme können unvorhersagbare Eigenschaften aufweisen. So können beispielsweise einige der Datenpakete sehr bursthaft sein. Dies bedeutet, dass die erforderliche Pufferkapazität von Strom zu Strom und von Zeit zu Zeit variiert. Daher wird in dem externen RAM-Speicher 46 eine dynamische Pufferzuteilung bevorzugt.
  • Ein Rx-Adressenumsetzer 96 liefert die in Frage kommenden Leseadressen an den Pufferstrom 48.
  • Die Einzelheiten der Hauptblöcke in der Strombildungsmaschine 36 werden unten beschrieben.
  • Tx-Adressenumsetzer
  • Der abgehende Datenstrom wird der Strombildungsmaschine 36 von der Speichervorrichtung 20 in einer Bwstübertragung über den PCI-Bus 24 bereitgestellt. Der Zweck des Tx-Adressenumsetzers 54 besteht darin, einen zusammenhängenden DMA-Burst in geeigneten Bereichen des Strompuffers 44 zu verteilen.
  • 3 zeigt ein Blockdiagramm des Tx-Adressenumsetzers 54. Bevor ein zusammenhängender DMA-Burst von der Speichervorrichtung 20 ankommt, wird die korrekte Startadresse mittels einer Speichervorrichtungs-Steuereinrichtung 22 in ein Register 102 geschrieben. Der Inhalt des Registers 102 wird als Schreibadresse für den Strompuffer 44 genutzt. Ein Zähler 106 zählt die Anzahl der Bits des von dem PCI-FIFO-Speicher 52 abgehenden Datenstromes. Jedes Mal, wenn ein aus 32 Bits bestehendes Datenwort den Zähler 106 passiert, wird eine Inkrement-Steuereinrichtung 104 darüber informiert, dass ein Wort zu dem Strompuffer 44 übertragen wird. Mit jedem neuen Wort inkrementiert die Inkrement-Steuereinrichtung 104 den Inhalt des Registers 102 mit ADDRESS_INCREMENT, bei dem es sich um einen programmierbaren Wert handelt. In dem Fall, dass der abgehende Datenstrom gegeben ist durch RAID-verarbeitete Daten, ist der Wert von ADDRESS_INCREMENT grundsätzlich entsprechend der Anzahl der für das RAID-System benutzten Disks festgelegt. In dem Fall, dass der abgehende Datenstrom durch die Nutzlast eines TCP/IP-Pakets gegeben ist, ist der Wert von ADDRESS_INCREMENT grundsätzlich entsprechend den Paketierungsparametern festgelegt.
  • Nachstehend wird unter Bezugnahme auf 4 eine Adressenumsetzung für den Fall beschrieben, dass der abgehende Datenstrom gegeben ist durch RAID-verarbeitete Daten. Bei diesem Beispiel besteht das RAID- oder SDI-System aus vier Disks, nämlich aus der Disk 0, der Disk 1, der Disk 2 und der Disk 3. Die Disk 0 enthält zu dem lokalen ATM-Koppelfeld 14 zu übertragende Wörter 1, 4, 7, ... Die Disk 1 enthält ebenfalls zu dem lokalen ATM-Koppelfeld 14 zu übertragende Wörter 2, 5, 8, ... Die Disk 2 enthält ebenfalls zu dem lokalen ATM-Koppelfeld 14 zu übertragende Wörter 3, 6, 9, ... Die Disk 3 enthält Paritätswörter 0, 1, 2, ... für eine Fehlerkorrektur. Jedes Paritätswort (beispielsweise die Parität 0) ist in dem Rx-RAID-Block 90 aus drei Wörtern (zum Beispiel aus den Wörtern 1, 2 und 3) erzeugt worden, die eine so genannte Streifeneinheit des RAID-Systems zusammen mit den Paritätswort bilden.
  • Im Falle eines Ausfalls bei einer der Disks (beispielsweise der Disk 20) wird ein zusammenhängender DMA-Burst, der Paritätswörter enthält, zu dem Tx-Adressenumsetzer 54 übertragen. Zur Vereinfachung der Erläuterung sei angenommen, dass die Größe eines zusammenhängenden DMA-Bursts 96 Bytes (24 Wörter) beträgt, obwohl die tatsächliche Größe größer als 100kBytes sein kann (in Abhängigkeit von der Geschwindigkeit der Hard-/und Software). In diesem Fall besteht der zusammenhängende DMA-Burst 120 aus den Wörtern 1, 4, 7, 10, 13, 16 von der Disk 0, aus den Wörtern 2, 5, 8, 11, 14, 17 von der Disk 1, aus den Wörtern 3, 6, 9, 12, 15, 18 von der Disk 2 und aus den Paritätswörtern 0, 1, 2, 3, 4, 5 von der Disk 3. Der Tx-Adressenumsetzer 54 erzeugt die folgende Sequenz von Adressen:
    178, 182, 186, 190, 194, 198 (Daten von der Disk 0),
    179, 183, 187, 191, 195, 199 (Daten von der Disk 1),
    180, 184, 188, 192, 196, 200 (Daten von der Disk 2),
    181, 185, 189, 193, 197, 204 (Daten von der Disk 3).
  • Bevor der zusammenhängende DMA-Burst 120 am Strompuffer 44 ankommt, wird genauer gesagt ein Wert 178 in dem Register 102 als Startadresse gespeichert. Sodann wird das Wort 1 von der Disk 0 unter der Adresse 178 in den Strompuffer 44 geschrieben. Wenn das Wort 1 durch den Zähler 106 gelangt, inkrementiert die Inkrement-Steuereinrichtung 104 den Wert 178 in dem Register 102 mit ADDRESS_INCREMENT eines der Anzahl der Disks entsprechenden Wertes 4. Sodann wird das Wort 4 von der Disk 0 unter der Adresse 182 in den Strompuffer 44 geschrieben. Wenn das Wort 4 durch den Zähler 106 gelangt, inkrementiert die Inkrement-Steuereinrichtung 104 den Wert 182 in dem Register 102 mit ADDRESS_INCREMENT eines Wertes 4. Sodann wird das Wort 7 von der Disk 0 unter der Adresse 186 in den Strompuffer 44 geschrieben. In entsprechender Weise werden die übrigen Wörter 10, 13 und 16 von der Disk 0 unter den Adressen 190, 194 bzw. 198, bei denen es sich um die beiseite liegende Anzahl der Disk handelt, in den Strompuffer 44 geschrieben.
  • Wenn das Wort 16 von der Disk 0 durch den Zähler 106 gelangt, inkrementiert die Inkrement-Steuereinrichtung 104 den Wert 198 in dem Register 102 mit ADDRESS_INCREMENT des Wertes – 19. Sodann wird das Wort 2 von der Disk 1 unter der Adresse 179 in den Strompuffer 44 geschrieben. Wenn das Wort 2 durch den Zähler 106 gelangt, inkrementiert die Inkrement-Steuereinrichtung 104 den Wert 179 in dem Register 102 mit ADDRESS_INCREMENT des Wertes 4. Sodann wird das Wort 5 von der Disk 1 unter der Adresse 183 in den Strompuffer 44 geschrieben. Wenn das Wort 5 durch den Zähler 106 gelangt, inkrementiert die Inkrement-Steuereinrichtung 104 den Wert 183 in dem Register 102 mit ADDRESS_INCREMENT des Wertes 4. Sodann wird das Wort 8 von der Disk 1 unter der Adresse 187 in den Strompuffer 44 geschrieben. In entsprechender Weise werden die übrigen Wörter von der Disk 1 unter den Adressen 191, 195 und 199, bei denen es sich um die abseitige Anzahl der Disk handelt, in den Strompuffer 44 geschrieben.
  • In derselben Weise werden Wörter von den Disks 2 und 3 unter in Frage kommenden Adressen in den Strompuffer 44 geschrieben. Die in den Strompuffer 44 geschriebenen Wörter werden in linearer Weise gelesen und dem Tx-RAID-Block 60 zur Korrektur von Fehlern bereitgestellt.
  • Wenn der abgehende Datenstrom von der Speichervorrichtung 20 eine TCP/IP-Nutzlast ist, arbeiten der Adressenumsetzer 54 und der TCP-Prüfsummen- Berechnungsblock 56 eng zusammen, um für die TCP/IP-Paketerzeugung zu sorgen. Der Host 28 nimmt eine Vorprogrammierung des Tx-Adressenumsetzers 54 vor, so dass Daten entsprechend einer spezifizierten Paketgröße verteilt werden. Zunächst muss der Host 28 sämtliche Paketierungsparameter kennen. Wichtige Parameter für diese Operation sind die Größe der TCP-Nutzlast, die Größe des TCP-Headers, die Größe des IP-Headers und die Größe der IP-Nutzlast. Der TCP-Header und der IP-Header weisen grundsätzlich Raum für optionale Daten auf, der indessen in der Praxis nicht genutzt wird. Daher kann eine Vereinfachung dadurch eingeführt werden, dass Standardgrößen für die Header angenommen werden: die Größe des TCP-Headers beträgt fünf Wörter (20 Bytes) und die Größe des IP-Headers beträgt fünf Wörter (20 Bytes).
  • Der Mechanismus kann wie folgt beschrieben werden.
  • Der Host 28 selbst nimmt eine Teilprüfsummen-Berechnung bezüglich des Pseudo-Headers des TCP/IP-Headers vor. Sodann initialisiert er ein TCP-Prüfsummen-Register 57 in dem TCP-Prüfsummen-Block 56 für das betreffende TCP/IP-Paket mit diesem Wert. Platz für den Strompuffer 44 wird außerdem in dem externen RAM-Speicher 47 zur Anpassung an das vollständige TCP-Paket zuzüglich des TCP- und IP-Header-Overheads reserviert.
  • Der Host 28 instruiert sodann die Inkrement-Steuereinrichtung 104 in dem Tx-Adressenumsetzer 54 über die Größe der TCP-Nutzlast, die Größe des TCP-Headers, die Größe des IP-Headers und die Größe der IP-Nutzlast. Die TCP-Nutzlast kann dann als ein zusammenhängender DMA-Burst über den PCI-Bus 24 übertragen und in dem Strompuffer 44 innerhalb des Bereiches untergebracht werden, der dafür durch den Tx-Adressenumsetzer 54 reserviert ist, womit Platz für die Header übrig bleibt. Im Zuge des Übergangs von dem PCI-Bus 24 zu dem Strompuffer 44 aktualisierte der Prüfsummen-Berechnungsblock 56 die Teilprüfsumme in dem TCP-Prüfsummen-Register 57. Es sei darauf hingewiesen, dass mit diesem Verfahren die Nutzlast, die üblicherweise die Masse der TCP/IP-Pakete darstellt, nicht erst aus den Speichervorrichtungen 20 in den Host-Speicher 32 für eine Verarbeitung und sodann zu dem Strompuffer 44 kopiert zu werden braucht. Dies spart wertvolle Busbandbreite und Overhead für die Host-CPU 30 ein. Nachdem die Nutzlast geschrieben worden ist, wird die durch den Host 28 vorbereitete Header-Information durch den Adressenumsetzer 54 zu dem Strompuffer 44 übertragen. Wie bei der Nutzlast bringt der Tx-Adressenumsetzer 54 den Header an den zuvor reservierten Speicherplätzen unter.
  • Diese Sequenz kann umgekehrt werden, wodurch die Header-Information zuerst und die Nutzlast an zweiter Stelle geschrieben werden.
  • In jedem Falle wird dann, wenn sowohl der Header als auch die Nutzlast geschrieben worden sind, die TCP-Prüfsumme vollständig sein, und sie kann automatisch an die korrekte Stelle kopiert werden.
  • Dieser Mechanismus kann auch dazu genutzt werden, eine Segmentierung eines TCP-Pakets in eine Mehrzahl von kleineren IP-Paketen effizient zu unterstützen. In diesem Fall wird bzw. ist Platz für jedes IP-Paket reserviert. Die TCP-Paketdaten (Header + Nutzlast) werden in diese Pakete segmentiert, und der Header jedes IP-Pakets wird durch den Host 28 geschrieben.
  • Sämtliche IP-Pakete werden dieselbe Größe aufweisen, allerdings mit Ausnahme des letzten Blockes, bezüglich dessen es wahrscheinlich ist, dass er eine von den anderen Blöcken unterschiedliche Größe aufweist. Der Adressenumsetzer 54 berücksichtigt dies. Nachdem das (die) vollständige(n) TCP/IP-Paket(e) gebildet worden ist bzw. sind, steht dieses bzw. stehen diese für eine Übertragung bereit.
  • 5A, 5B und 5C zeigen ein Beispiel einer Adressenumsetzung für die TCP-IP-Paketierung. Bevor die TCP/IP-Nutzlast, die als ein zusammenhängender DMA-Burst 130 übertragen wird, im Strompuffer 44 ankommt, wird in diesem Fall ein Wert 310 in dem Register 102 als Start-Schreibadresse gespeichert, und sodann wird das erste Wort der ersten Daten unter der Adresse 310 in den Strompuffer 44 geschrieben. Wenn das erste Wort der ersten Daten den Zähler 106 durchläuft, inkrementiert die Inkrement-Steuereinrichtung 104 den Wert 310 in dem Register 102 mit ADDRESS_INCREMENT des Wertes 1. Sodann wird das zweite Wort der ersten Daten unter der Adresse 311 in den Strompuffer 44 geschrieben. Wenn das zweite Wort der ersten Daten den Zähler 106 durchläuft, inkrementiert die Inkrement- Steuereinrichtung 104 den Wert 311 in dem Register 102 mit ADDRESS_INCREMENT des Wertes 1. Sodann wird das dritte Wort der ersten Daten unter der Adresse 312 in den Strom 44 geschrieben. Die Inkrementierung mit ADDRESS_INCREMENT des Wertes 1 wird in einer der Größe der IP-Nutzlast entsprechenden Häufigkeit wiederholt. Somit werden die ersten Daten der TCP/IP-Nutzlast in einen geeigneten Bereich geschrieben.
  • Sodann inkrementiert die Inkrement-Steuereinrichtung 104 den Inhalt im Register 102 mit ADDRESS_INCREMENT eines der Größe des IP-Headers entsprechenden Wertes. Sodann beginnt das Schreiben der zweiten Daten von der Adresse entsprechend dem Inhalt des Registers 102. Somit erzeugt der Adressenumsetzer 54 Schreibadressen für die Nutzlast, so dass der Raum für die Header übrig bleibt. Bezüglich der letzten Daten ist es wahrscheinlich, dass sie eine andere Größe besitzen als die anderen Daten. Die Größe der letzten Daten wird in der Inkrement-Steuereinrichtung 104 durch folgenden Ausdruck berechnet:
    Größe der letzten Daten = Größe der TCP-Nutzlast mod Größe der IP-Nutzlast.
  • Daher wird die Inkrementzahl dadurch gesteuert, dass die Größe der letzten Daten berücksichtigt wird. Auf diese Weise wird die als ein zusammenhängender DMA-Burst übertragene Nutzlast innerhalb des Strompuffers 44 in die schraffierten Bereiche verteilt, wie dies in 5A veranschaulicht ist.
  • Wenn der TCP-Header 132 als ein zusammenhängender Burst über den PCI-Bus 24 übertragen wird, dann erzeugt der Adressenumsetzer 54 anschließend Schreibadressen entsprechend den zuvor reservierten Speicherplätzen für den TCP-Header in dem Strompuffer 44.
  • Bevor der TCP-Header, der als ein zusammenhängender Burst 132 übertragen worden ist, den Strompuffer 44 erreicht, wird – genauer gesagt – ein Wert 305 in dem Register 102 als Start-Schreibadresse festgelegt, woraufhin das erste Wort das TCP-Headers unter der Adresse 305 in den Strompuffer 44 geschrieben wird. Wenn das erste Wort des TCP-Headers den Zähler 106 durchläuft, inkrementiert die Inkrement-Steuereinrichtung 104 den Wert 305 in dem Register 102 mittels ADDRESS_INCREMENT des Wertes 1. Sodann wird das zweite Wort des TCP-Headers unter der Adresse 306 in den Strompuffer 44 geschrieben. Wenn das zweite Wort des TCP-Headers den Zähler 106 durchläuft, inkrementiert die Inkrement-Steuereinrichtung 104 den Wert 306 in dem Register 102 mittels ADDRESS_INCREMENT des Wertes 1. Sodann wird das dritte Wort des TCP-Headers unter der Adresse 307 in den Strompuffer 44 geschrieben. Das Inkrementieren mit ADDRESS_INCREMENT des Wertes 1 wird in einer der Größe des TCP-Headers entsprechenden Häufigkeit wiederholt. Somit wird der TCP-Header in den in 5B schraffiert dargestellten Bereich in dem Strompuffer 44 geschrieben.
  • Wenn die IP-Header 134 als ein zusammenhängender Burst über den PCI-Bus 24 übertragen werden, erzeugt der Adressenumsetzer 54 anschließend Schreibadressen entsprechend den zuvor reservierten Speicherplätzen für die IP-Header in dem Strompuffer 44.
  • Bevor die IP-Header, die als ein zusammenhängender Burst 134 übertragen worden sind, am Strompuffer 44 ankommen, wird – genauer gesagt – ein Wert 300 in dem Register 102 als Start-Schreibadresse festgelegt, woraufhin das erste Wort des ersten IP-Headers unter der Adresse 300 in den Strompuffer 44 geschrieben wird. Wenn das erste Wort des ersten IP-Headers den Zähler 106 durchläuft, inkrementiert die Inkrement-Steuereinrichtung 104 den Wert 300 in dem Register 102 mit ADDRESS_INCREMENT des Wertes 1. Sodann wird das zweite Wort des ersten IP-Headers unter der Adresse 301 in den Strompuffer 44 geschrieben. Wenn das zweite Wort des ersten IP-Headers den Zähler 106 durchläuft, inkrementiert die Inkrement-Steuereinrichtung 104 den Wert 301 in dem Register 102 mit ADDRESS_INCREMENT des Wertes 1. Sodann wird das dritte Wort des ersten IP-Headers unter der Adresse 302 in den Strompuffer 44 geschrieben. Die Inkrementierung mit ADDRESS_INCREMENT des Wertes 1 wird in einer der Größe des IP-Headers entsprechenden Häufigkeit wiederholt.
  • Sodann inkrementiert die Inkrement-Steuereinrichtung 104 den Inhalt in dem Register 102 mit ADDRESS_INCREMENT eines Wertes, welcher der Größe des TCP-Headers + der Größe der IP-Nutzlast entspricht. Sodann beginnt das Schreiben des zweiten IP-Headers von der dem Inhalt des Registers 102 entsprechenden Adresse aus. Somit werden die IP-Header in die in 5C dargestellten schraffierten Bereiche in dem Strompuffer 44 geschrieben.
  • Anschließend wird die TCP-Prüfsumme, die durch den TCP-Prüfsummen-Block 56 komplettiert ist, an die richtige Stelle kopiert.
  • Auf diese Weise wird die TCP/IP-Paketierung vervollständigt bzw. abgeschlossen und kann in linearer Weise aus dem Strompuffer 44 gelesen werden.
  • Bei der obigen Ausführungsform ist die TCP/IP-Paketierung erwähnt worden. Es ist jedoch möglich, anstelle des TCP-Protokolls das UDP-Programm (Benutzer-Datenpaket-Programm) zu verwenden. In diesem Fall beträgt die Standardgröße des UDP-Headers zwei Wörter (8 Bytes).
  • Darüber hinaus sind bei der obigen Ausführungsform der TCP-Header und die IP-Header von dem Host 28 zu dem Tx-Adressenumsetzer 54 als unterschiedliche Bursts übertragen worden. Es ist jedoch möglich, den TCP-Header und die IP-Header gemeinsam als einen zusammenhängenden Burst von dem Host 28 zu dem Tx-Adressenumsetzer 54 zu übertragen.
  • Tx-RAID- oder SDI-Block
  • In die Folge der Wörter in dem Strompuffer 44 können Paritätswörter eingefügt sein. Diese Redundanz stellt ein Mittel bzw. einen Weg zur Korrektur von Fehlern bereit. Der Tx-RAID- oder SDI-Block 60 nimmt eine Folge von N+1 Wörtern ein, von denen das letzte Wort die Parität bezüglich den N ersten Wörtern darstellt. In dem Fall, dass durch Hardware und/oder Software angegeben wird, dass ein Wort M verfälscht ist, beispielsweise aufgrund eines Diskausfalls, wird das Paritätswort aus der Speichervorrichtung 20 abgerufen und zum Rekonstruieren bzw. Wiederherstellen des Wortes M herangezogen.
  • Im Falle der 4 enthalten beispielsweise die Wörter 3, 6, 9, 12, 15, 18 von der fehlerhaften Disk 2 in den Eingangsdaten 142 einen Fehler, wie dies in 6 gezeigt ist. Der Tx-RAID-Block 60 stellt das Wort 3 unter Heranziehung der Wörter 1, 2 und des Paritätswortes 0 wieder her. Der Tx-RAID-Block 60 stellt das Wort 6 unter Heranziehung der Wörter 4, 5 und des Paritätswortes 1 wieder her. In entsprechender Weise werden die Wörter 9, 12, 15, 18 durch den Tx-RAID-Block 60 wieder hergestellt. Damit führt der Tx-RAID-Block 60 eine Fehlerkorrektur aus und gibt die Folge bzw. Sequenz 142 der Wörter 1, 2, 3, 4, ... ohne Fehler ab.
  • Die RAID-Funktion kann durch den Befehlsblock 66 ein-/ausgeschaltet werden.
  • Verkehrsformer
  • Der Verkehrsformer 62 besteht aus zwei Hauptabschnitten; der eine Abschnitt verarbeitet Daten hoher Priorität, wie einen Videoverkehr, und der andere Abschnitt für eine niedrige Priorität verarbeitet einen allgemeinen Datenverkehr.
  • Der Abschnitt hoher Priorität ist in mehrere Verkehrsklassen gegliedert, wobei eine Klasse eine Gruppe von einem oder mehreren Strömen darstellt, die dieselbe Bitratencharakteristik aufweisen. So gehören beispielsweise sämtliche Ströme einer CBR-Rate (das ist eine konstante Bitrate) von 2Mbps zur selben Klasse. Eine Klasse des VBR-Typs (mit variabler Bitrate) enthält in typischer Weise lediglich einen Strom, da es unwahrscheinlich ist, dass zwei VBR-Ströme stets identische Bandbreitenmuster aufweisen. Jede Klasse weist einen einzigen Satz von Übertragungsparametern zur Steuerung der Bitrate auf, die für einen niedrigen CDV-Wert (Zellverzögerungs-Variation) und für eine genaue Ratengeschwindigkeit sorgen. Die Anzahl der Klassen ist programmierbar, allerdings auf maximal 128 begrenzt.
  • Jede Klasse weist zwei Hauptübertragungsparameter auf, eine ideale vorgesehene bzw. programmgemäße Zeit (TS) und ein Inkrement (Δ) für die Zeit TS. Der Grundmechanismus besteht darin, dass dann, wenn die Zeit TS gleich einem Referenztakt oder kleiner als dieser wird, ein Stromzeiger in die Übertragungsschlange eingesetzt wird. Zugleich wird der Wert TS mit dem Wert Δ inkrementiert. Die Übertragungsschlange ist eine FIFO-Schlange, in der die erste eingegebene Information die erste ausgegebene Information ist und die den durch den Stromzeiger bezeichneten Strom an den ATM-FIFO-Speicher 72 sobald wie möglich abgibt.
  • In dem Abschnitt hoher Priorität werden eine hochgenaue Bitrate und ein niedriger CDV-Wert durch folgende Mechanismen erzielt.
  • Aufgrund der endlichen Auflösung des Referenztaktes mit üblicherweise einem einzigen Δ-Wert wird nicht die gewünschte Genauigkeit erzielt. Um die gewünschte Genauigkeit zu erreichen, werden zwei Δ-Werte abwechselnd verwendet, die gerade einen Zählerwert auseinander liegen. Diese beiden Werte führen zu einer Rate, die etwas oberhalb und etwas unterhalb der geforderten Bitrate liegt. Unter Heranziehung des jeweiligen Δ-Wertes für unterschiedliche Zahlen von Zellen erfolgt eine Kompensation bezüglich der begrenzten Taktauflösung, und es kann eine beliebige Genauigkeit geliefert werden. ΔH und ΔL (wobei ΔL = ΔH + 1 gilt) repräsentieren die beiden unterschiedlichen Inkrementwerte. Die NH- und NL-Parameter repräsentieren die Anzahl der Zellen, für die der entsprechende Inkrementwert abwechselnd gültig ist. Durch diesen Mechanismus wird der Strom moduliert, wodurch die mittlere Bitrate sich an die geforderte Bitrate innerhalb der gewünschten Genauigkeit annähert. 7 zeigt ein Verhalten einer Bitrate, die durch diesen Mechanismus erzielt wird. In 7 werden NH-Zellen mit ΔH übertragen, und NL-Zellen werden mit ΔL übertragen. Diese Folge wird zyklisch wiederholt. Damit wird die mittlere Bitrate, wie durch eine gestrichelte Linie dargestellt, als Langzeit-Bitrate aufrechterhalten.
  • Ein niedriger CDV-Wert wird dadurch erzielt, dass die Kollisionen in den vorgesehenen bzw. programmgemäßen Zeiten der Zellen von unterschiedlichen Strömen reduziert werden. Ein Hauptgrund von Kollisionen in vielen existierenden Verkehrsformungsmechanismen liegt darin, dass Ströme derselben Bitrate zur selben Zeit vorgesehen sind. Dies stellt insbesondere dann ein Problem dar, wenn eine große Anzahl von Strömen und eine niedrige Anzahl von unabhängigen Bitraten vorliegen. Diesem Problem wird bei der bevorzugten Ausführungsform durch gleichmäßiges Beabstanden der Zellen von Strömen angegangen, die zur selben Klasse gehören. Falls das Inkrement für einen Strom gegeben sein sollte mit Δ, dann heißt dies mit anderen Worten ausgedrückt, dass das Inkrement für die Klasse gegeben ist mit Δ/n, wobei n die Anzahl der Ströme innerhalb einer Klasse ist. Jedes Mal, wenn eine Klasse zu bedienen bzw. zu berücksichtigen ist, werden die Daten aus aufeinander folgenden Strömen herangezogen. Falls beispielsweise Zellen des zur Klasse 0 gehörendes Stromes 0 durch Δ inkrementiert werden sollten, wird jede Zelle der Ströme (das sind der Strom 0 – Strom n-1), die zur selben Klasse 0 gehören, mit dem Abstand von Δ/n übertragen, wie dies in 8 veranschaulicht ist.
  • Durch die Kombination der obigen beiden Mechanismen werden eine Bitrate mit hoher Genauigkeit und ein niedriger CDV-Wert erzielt. Falls die Übertragungsschlange nicht blockiert wird, werden die Zellen abgegeben, wie dies in 9 veranschaulicht ist.
  • Der Bereich bzw. Abschnitt hoher Priorität verarbeitet außerdem den VBR-Verkehr. Der Verkehrsformer 62 unterstützt eine gleichmäßige Aktualisierung der Übertragungsparameter. Diese Aktualisierung kann durch den Host 28, jedoch auch durch den Befehlsblock 66 erfolgen. Der Befehlsblock 66 wird durch den Host 28 programmiert, und seine Aktionen werden getriggert, wenn von einer exakten Stelle aus dem Strompuffer 44 übertragen wird. Eine derartige Maßnahme besteht darin, die Übertragungsparameter für einen spezifizierten Strom in dem Verkehrsformer 62 zu ersetzen. Sobald die Daten unmittelbar vor einer Änderung in der Bitrate übertragen sind, aktualisiert der Befehlsblock 66 die Parameter. Nach erfolgter Einrichtung ist dieser Prozess autonom und erfordert keinerlei Interaktion mehr seitens der Host-CPU 30. Infolgedessen braucht der Host 28 nicht genau in dem Augenblick einzuwirken, in welchem eine Interaktion erforderlich wäre. Auf diese Weise wird der Echtzeitcharakter des Stromes aufrechterhalten, und die Hostbelastung wird auf einem Minimum gehalten.
  • Der Abschnitt bzw. Bereich niedriger Priorität ist beispielsweise in feste 32 Verkehrsklassen gegliedert, von denen eine Klasse eine Gruppe aus einem oder mehreren Strömen mit derselben PCR-Rate (Spitzen-Zellrate) darstellt. Hinsichtlich des allgemeinen Datenverkehrs sind Echtzeit-Einschränkungen wesentlich weniger signifikant. Das Hauptziel der Verkehrsformung des Abschnitts niedriger Priorität besteht darin, die PCR-Rate zu begrenzen, um eine Netzwerkkontrolle zu vermeiden. Die Verkehrsformung der Datenpakete wird durch einen Mechanismus unter Heranziehung einer idealen vorgesehenen Zeit (TS) und eines Inkrementes (Δ) für die betreffende Zeit TS realisiert, was ähnlich dem Grund-Verkehrsformungsmechanismus in dem Abschnitt hoher Priorität ist. Die Festlegung der Datenpakete erhält jedoch eine niedrigere Priorität als der Echtzeit-Verkehr. Lediglich dann, wenn die Übertragungsschlange des Abschnitts hoher Priorität leer ist, kann ein Strom der Datenpakete an den ATM-FIFO-Speicher 72 abgegeben werden.
  • Der Mechanismus wird mit einer Architektur realisiert, wie sie in 10 veranschaulicht ist. Der Verkehrsformer 62 besteht aus dem Abschnitt 200 hoher Priorität und dem Abschnitt 202 niedriger Priorität, wie dies oben erwähnt worden ist.
  • In dem Abschnitt 200 hoher Priorität speichert ein Speicher 203 einen Satz von neuen Übertragungsparametern für jede Klasse, die von dem Host 28 bereitgestellt wird bzw. vorgesehen ist. Jeder Satz der neuen Übertragungsparameter besteht aus den Größen TSi, ΔHi, ΔLi, NHi, NLi und PTi, wobei 0 ≤ i ≤ 127 gilt. Bei dieser Ausführungsform enthält PTi einen oder mehrere Stromzeiger, die einen oder mehrere Ströme angeben, welche der Klasse i angehängt sind. Ein Speicher 206 speichert aktuelle Übertragungsparameter. Wenn ein Befehl durch den Host 28 oder den Befehlsblock 66 veranlasst wird, wird durch den Befehl eine Aktualisierungslogik 204 getriggert, wodurch die aktuellen Übertragungsparameter in dem Speicher 206 durch die neuen Übertragungsparameter in dem Speicher 203 aktualisiert werden. Ein Register 212 speichert einen Parameter Nr-Klassen, der die Anzahl der Klassen von dem Host 28 auf dessen Empfang hin angibt. Eine Verkehrslogik 208 überprüft bezüglich jeder der Klassen von 0 bis Nr_Classes-1, ob TSi gleich der aktuellen Zeit oder kleiner als diese ist, die durch einen Referenztakt 210 angegeben ist. Falls dies der Fall ist, wird der Stromzeiger des an diese Klasse i angehängten ersten Stromes in die Übertragungsschlange 216 hoher Priorität eingefügt, und TSi im Speicher 206 wird mit ΔHi oder mit ΔLi dieser Klasse i durch die Verkehrslogik 208 inkrementiert. Die Größen ΔHi und ΔLi werden entsprechend NHi und NLi abwechselnd genutzt. Der Segmentierungsblock 70 empfängt dann den Stromzeiger von der Übertragungsschlange 216 hoher Priorität und führt eine ATM-Zelle, die zu dem durch den Stromzeiger bezeichneten Strom gehört, in den ATM-FIFO-Speicher 72 ein.
  • In dem Abschnitt 202 niedriger Priorität wird ein Satz von Übertragungsparametern für jede von dem Host 28 bereitgestellte Klasse in einem Speicher 218 gespeichert. Bei dieser Ausführungsform besteht jeder Satz der Übertragungsparameter aus TSj, Δj und Ptj (wobei 0 ≤ j ≤ 31 gilt). Ptj enthält einen oder mehrere Stromzeiger, die einen oder mehrere an die Klasse j angehängte Ströme anzeigen. Eine Verkehrslogik 220 überprüft jede der Klassen 0 bis 31, falls TSj gleich der aktuellen Zeit oder kleiner als diese ist, welche durch den Referenztakt 210 angegeben wird, und sie überwacht den Fall, dass die Übertragungsschlange 216 hoher Priorität leer ist. Falls dies der Fall ist, wird der an diese Klasse j angehängte Stromzeiger des ersten Stromes in die Übertragungsschlange 222 niedriger Priorität eingefügt, und TSj in dem Speicher 218 wird mit Δj dieser Klasse j mittels der Verkehrslogik 220 inkrementiert. Sodann empfängt der Segmentierungsblock 70 den Stromzeiger von der Übertragungsschlange 222 niedriger Priorität und fügt eine ATM-Zelle, die zu dem durch den Stromzeiger angezeigten Strom gehört, in den ATM-FIFO-Speicher 72 ein.
  • Bei der obigen Ausführungsform wird ein Verkehrsformungsmechanismus ähnlich dem Mechanismus des Abschnitts 200 hoher Priorität beim Abschnitt 202 niedriger Priorität angewandt. Es kann jedoch bei dem Verkehrsformungsmechanismus des Abschnitts 202 niedriger Priorität ein Leaky-Bucket-Mechanismus angewandt werden kann.
  • Befehlsblock
  • In eine Echtzeit-Datenabgabe sind zuweilen Aktionen eingeschlossen, die an bestimmten Stellen im abgehenden Datenstrom auftreten. Diese Aktionen müssen unverzüglich erfolgen, damit die Integrität des Stromes aufrechterhalten wird. Aufgrund der vielen Verantwortlichkeiten des Hosts 28 kann eine rechtzeitige Interaktion nicht immer garantiert werden. Bei der bevorzugten Ausführungsform hat der Befehlsblock 66 die Verantwortung, diese Interaktionen auszuführen. Im Prinzip weiß der Host 28 genau, wo im abgehenden Datenstrom die Stromparameter eingestellt werden müssen. Da jeder Strompuffer 44 statistisch zugeteilt wird, wie dies oben erwähnt wurde, ist es möglich, eine Stelle, an der die Aktionen vorzunehmen sein sollten, im Lesezeiger des Strompuffers 44 anzugeben. Der Host 28 lädt eine Liste des Befehlsblocks 66 mit einer Anzahl von Befehlen zu dem geeigneten Zeitpunkt. Der geeignete Zeitpunkt ist der Zeitpunkt zwischen dem Laden des abgehenden Datenstromes in den Strompuffer 44 und dem Zeitpunkt, zu dem der abgehende Datenstrom von dem Strompuffer 44 übertragen wird. Der Befehlsblock 66 nimmt eine Abtastung des Lesezeigers des Strompuffers 44 vor. Falls eine Übereinstimmung mit einer spezifizierten Adresse ermittelt wird, wird ein Befehl, der mit der betreffenden Adresse verkettet ist, ausgeführt, und der Befehl wird aus dem Befehlsblock 66 eliminiert.
  • Der Befehlsblock 66 nimmt eine Triggerung auf die Adresse der Daten hin vor, die den Strompuffer 44 verlassen. Wenn ein Strompuffer 44 gelesen wird, wird der Lesezeiger mit einem Umlauf schrittweise inkrementiert. Jeder Strom weist eine verbundene bzw. gekettete Liste auf, die Datenpaare (Adresse, Befehl) enthält, welche entsprechend der Adresse zu speichern sind. Eine Adresse besteht aus einem Angabenpaar (L, M), welches die Adresse in der Datei angibt und welche von der physikalischen Adresse unabhängig ist. Mit L ist die Anzahl der Blöcke bezeichnet, wobei eine Blockgröße gleich der Größe des Strompuffers 44 ist. M ist die Sequenznummer im letzten Block. Jeder Strom enthält einen WAC-Zähler (Umlaufzähler), der die Häufigkeit zählt, mit der der Lesezeiger umgelaufen ist. Eine Adressenübereinstimmung wird festgestellt, wenn
    L = WAC ist und wenn M = Lesezeiger – Puffer-Offset ist.
  • Dieser Mechanismus wird wie folgt realisiert. 11 veranschaulicht in einem Blockdiagramm den Befehlsblock 66. Der Befehlsblock 66 besteht aus mehreren Befehlsgeneratoren 300. Jeder Befehlsgenerator 300 behandelt bzw. bearbeitet die Befehle für jeden abgehenden Datenstrom. Der Host 28 lädt zum in Frage kommenden Zeitpunkt eine Liste von Befehlen in dem Befehlsregister 316 in den jeweiligen Befehlsgenerator 300.
  • In einem Befehlsgenerator 300 speichert ein Register 302 einen Puffer-Versatz bzw. -Offset. Ein Komparator 304 vergleicht den Puffer-Offset in dem Register 302 mit dem Lesezeiger des Strompuffers 44. Wenn ein Umlauf erfolgt, zieht der Lesezeiger den Puffer-Offset heran. Wenn durch den Komparator 304 eine Übereinstimmung ermittelt wird, wird daher der WAC-(Umlauf)-Zähler 306 inkrementiert. Der Komparator 308 vergleicht die Zählerstellung des WAC-Zählers 306 mit der aktuellen Größe L, die von dem Befehlsregister 316 geliefert wird. Ein Komparator 310 vergleicht die aktuelle Größe M, die von dem Befehlsregister 316 bereitgestellt wird, mit dem Lesezeiger – Puffer-Offset. Wenn durch den Komparator 308 und den Komparator 310 Übereinstimmungen ermittelt werden, entfernt das UND-Glied 312 einen durch eine Warteschlange 314 gespeicherten aktuellen Befehl. Jedes Mal, wenn ein aktueller Befehl entsprechend der aktuellen Adresse (L, M) von der Warteschlange 314 abgegeben wird, wird ein einer nächsten Adresse entsprechender Befehl aus dem Befehlsregister 316 in die Warteschlange 314 eingereiht. Somit weist jedes Befehlsregister 300 Befehle entsprechend einem Lesezeiger des Strompuffers 44 an.
  • Die von dem Befehlsblock 66 anzuweisenden Befehle sind:
    Ändern der Bitrate: dieser Befehl ermöglicht es, eine Strombandbreite zu ändern. Wenn dieser Befehl angewiesen wird, löst der Verkehrsformer 62 einen Strom aus seiner aktuellen Klasse heraus, aktualisiert die Δ-Werte für die aktuelle Klasse, hängt den Strom an eine neue Klasse an und aktualisiert die verbundenen bzw. geketteten Δ-Werte der neuen Klasse. Somit wird die Bitrate von individuellen Strömen an bestimmten Stromstellen geändert. Dies ist beispielsweise für einen MPEG-Bitstrom mit variabler Bitrate (VBR) von Nutzen.
  • Einfügen von RCI: Dieser Befehl ermöglicht das Einfügen eines Ratenänderungs-Zeigers bzw. -Hinweises (RCI) an einer bestimmten Stelle im Strom. Dieser RCI-Anzeiger ist imstande, dem entfernt liegenden Terminal (zum Beispiel der SetTopBox 18) die Ratenänderungen zu den betreffenden Augenblick zu melden und eine Taktwiedergewinnung für MPEG-Decoder zu unterstützen. Die Einzelheit bezüglich des RCI-Zeigers ist als „Datenrate-Daten" in der europäischen Patentanmeldung EP 0 712 250 A2 beschrieben. Wenn dieser Befehl angewiesen wird, erzeugt der RCI-Generator 68 den RCI-Zeiger, und der Segmentierungsblock 70 beendet die gegenwärtige Segmentierung, und eine gesonderte AAL-5-PDU-Einheit (eine ATM-Zelle) wird für den RCI-Zeiger erzeugt. Dies ist für den MPEG-Bitstrom mit der variablen Bitrate VBR von Nutzen.
  • Einschalten von RAID: Dieser Befehl stellt die in Frage kommenden Parameter in dem Tx-RAID-Block 60 für die Fehlerkorrektur ein.
  • Ausschalten von RAID: Diese Funktion ist die inverse Funktion der obigen Freigabe-RAID-Funktion.
  • Ausführen eines Byte-Austausches: Dieser Befehl ermöglicht es, mit den Problemen des Klein-Endenders (little Endian)/Groß-Endenders (big Endian) zwischen dem Server 10 und der SetTopBox 18 fertig zu werden. Wenn dieser Befehl angewiesen wird, nimmt der Byte-Austauscher 64 eine Um- bzw. Neuordnung der Bytes innerhalb eines Wortes 350 im abgehenden Strom in eine Reihenfolge eines Wortes 352 vor, wie dies in 12 gezeigt ist.
  • Einschalten einer unterschiedlichen PDU-Größe: Das TCP-Protokoll kann eine Segmentierung erfordern. Ein TCP-Paket ist in verschiedene IP-Pakete aufzuteilen. Das letzte IP-Paket benötigt üblicherweise eine unterschiedliche AAL-5-PDU-Größe als das vorhergehende Paket. Wenn dieser Befehl angewiesen wird, ändert der Segmentierungsblock 70 die AAL-5-PDU-Größe.
  • Unterbrechung der CPU: Dies stellt die generellste Funktion dar. Sie verlangt von der Host-CPU 70 auf die Ermittlung einer bestimmten Stelle in dem Strom hin eine Interaktion.
  • VPI/VCI-Filterungsblock
  • 13 zeigt ein Format einer in einem Benutzer-Netzwerk-Interface (UNI) verwendeten ATM-Zelle. Eine ATM-Zelle besteht aus 53 Bytes. Die ersten 5 Bytes bilden einen ATM-Header, und die übrigen 48 Bytes tragen die Nutzlast. Die ersten vier Bits im ATM-Header werden GFC (allgemeine Fluss-Steuerung) genannt. Die folgenden 24 Bits im ATM-Header werden VPI/VCI genannt. Tatsächlich besteht der VPI/VCI-Bereich aus dem VPI-Bereich von 8 Bits und dem VCI-Bereich von 16 Bits. Die folgenden 3 Bits im ATM-Header werden Nutzlasttyp (PT) genannt. Das folgende 1 Bit im ATM-Header wird CLP (Zellverlust-Priorität) genannt. Die letzten 8 Bits im ATM-Header werden HEC (Headerfehler-Steuerung) genannt. Der VPI/VCI-Filterungsblock 84 empfängt derartige ATM-Zellen von dem ATM-FIFO-Speicher 82.
  • Der VPI/VCI-Filterungsblock 84 bestimmt, ob ein VPI/VCI-Bereich der empfangenen ATM-Zelle ein Element des Satzes von VPI/VCI-Bereichen ist, welches akzeptiert werden sollte; er bestimmt, zu welchem Strom die ATM-Zelle gehört, und er filtert OAM-(Operations-, Administrations- und Wartungs)-F5-Zellen. Um diesen Filterungsprozess auszuführen, wird in einem VPI/VCI-Umsetzer 85 in dem VPI/VCI-Filterungsblock 84 eine VPI/VCI-Umsetzung von einer VPI/VCI-Angabe in eine interne Strom-ID ausgeführt.
  • Die Aufgabe des VPI/VCI-Umsetzmechanismus besteht darin, einen Bereich von legalen VPI/VCIs zuzulassen, so weit wie möglich, während zur selben Zeit eine schnelle Umsetzung erleichtert wird. Vorzugsweise sollten sämtliche VPI/VCI-Angaben erlaubt sein. Die VPI/VCI-Umsetzung kann unter Heranziehung von konventionellen binären Suchverfahren erfolgen. Aufgrund der Zeitbeschränkungen liegt jedoch die größte akzeptable Suche in der Größenordnung einer binären Suche von 512 Einträgen. Andererseits sollte die maximale Anzahl von aktiven VPI/VCI-Angaben größer sein als 512, um gleichzeitige Kommunikationen mit einer großen Anzahl von Clients zu unterstützen.
  • Um die Aufgabe zu erfüllen, ist die VPI/VCI-Tabelle in Abschnitte von 512 Einträgen unterteilt. Jeder Eintrag gibt eine Beziehung zwischen einer VPI/VCI-Angabe und einer internen Strom-ID an und ist in Abhängigkeit von einem Verteilungsmechanismus in einen bestimmten Abschnitt eingegeben; innerhalb jedes Abschnitts sind die Einträge geordnet.
  • Auf den Empfang einer ATM-Zelle hin kann, nachdem der korrekte Abschnitt gefunden worden ist, eine binäre Suche in dem betreffenden Abschnitt ausgeführt werden, um den korrekten Eintrag zu finden. Daher muss der Verteilungsmechanismus zur Verteilung der VPI/VCI-Angaben eine unverzügliche Indizierung in einem Abschnitt gemäß der VPI/VCI-Angabe ermöglichen. Um eine effiziente Nutzung der VPI/VCI-Tabelle zu ermöglichen, muss der Mechanismus darüber hinaus eine weite Verteilung der VPI/VCI-Angaben ermöglichen. Mit anderen Worten ausgedrückt heißt dies, dass der Mechanismus die Einträge so zufällig wie möglich über die gesamte VPI/VCI-Tabelle verteilen muss. Falls eine VPI/VCI-Angabe in einem Abschnitt der VPI/VCI-Tabelle abgebildet wird, der bereits voll ist, muss sie sogar dann zurückgewiesen werden, wenn in anderen Abschnitten Platz vorhanden ist.
  • Ein Verteilungsmechanismus, der zu den Anforderungen passt, besteht darin, einfach die unteren X Bits (wobei X eine ganze Zahl ist, die beispielsweise 3 beträgt) der VCI- Angabe als Hash-Schlüssel zu verwenden, um eine Indizierung in der VPI/VCI-Tabelle vorzunehmen. Es ist angemessen, dass bei Vorliegen einer großen Anzahl von aktiven VP/VC-Einrichtungen die unteren Bits die zufälligsten Bits der 24 Bits des VPI/VCI-Feldes sind und eine gleichmäßige Verteilung ermöglichen.
  • Unter Heranziehung dieser Art von Mechanismus werden die Anforderungen nach einem schnellen Nachschlagen und nach keinen illegalen oder unzulässigen VPI/VCI-Angaben erfüllt. Der Mechanismus wird wie folgt realisiert.
  • 14 zeigt ein Blockdiagramm des VPI/VCI-Umsetzers 85. Wenn eine neue VP/VC-Einrichtung aktiv wird, werden ein neuer Eintrag, der eine VPI/VCI-Angabe der betreffenden neuen VP/VC-Einrichtung angibt, und eine interne Strom-ID, die der betreffenden VPI/VCI-Angabe entspricht, in einen Abschnitt entsprechend den unteren drei Bits der VCI-Angabe (das sind die Bits 7, 6, 5 des vierten Bytes in 13) durch eine Hash-Funktion 400 eingegeben. Falls die unteren drei Bits der VCI-Angabe gegeben sind mit 000, wird genauer gesagt der Eintrag im Abschnitt 1 der VPI/VCI-Tabelle 402 gespeichert. Falls die unteren drei Bits der VCI-Angabe gegeben sind mit 001, wird der Eintrag im Abschnitt 2 in der VPI/VCI-Tabelle 402 gespeichert. Falls die unteren drei Bits der VCI-Angabe gegeben sind mit 010, wird der Eintrag im Abschnitt 3 in der VPI/VCI-Tabelle 402 gespeichert. In entsprechender Weise werden alle neuen Einträge in in Frage kommenden Abschnitten entsprechend den unteren drei Bits der VCI-Angabe gespeichert. Somit ist die VPI/VCI-Tabelle 402 mit beispielsweise 4096 Einträgen in bis zu acht Abschnitten (Abschnitt 1-8) von beispielsweise 512 Einträgen unterteilt. Innerhalb jedes Abschnitts sind die Einträge in aufsteigender oder abnehmender Reihenfolge aufgezeichnet, um eine binäre Suche zu realisieren.
  • Auf den Empfang einer ATM-Zelle hin wird die VPI/VCI-Angabe der empfangenen ATM-Zelle einer Suchmaschine 420 und der Hash-Funktion 400 bereitgestellt. Die Hash-Funktion 400 stellt einen Abschnitts-Index auf der Grundlage der unteren drei Bits VPI/VCI-Angabe für die Suchmaschine 420 bereit. Sodann wird durch die Suchmaschine 420 eine binäre Suche über einen bzw. in einem Abschnitt ausgeführt, der dem Abschnitts-Index entspricht, um den korrekten Eintrag zu ermitteln. Falls beispielsweise die unteren drei Bits der VCI-Angabe der empfangenen ATM-Zelle gegeben sind mit 010, liefert die Hash-Funktion 400 eine 3 als Abschnitts-Index für die Suchmaschine 420. Die Suchmaschine 420 führt dann eine binäre Suche über den bzw. in dem Abschnitt 3 aus, um den korrekten Eintrag zu ermitteln und um eine interne Strom-ID des ermittelten Eintrags abzugeben. Falls die unteren drei Bits der VCI-Angabe der empfangenen ATM-Zelle gegeben sind mit 111, liefert die Hash-Funktion 400 eine 8 als Abschnitts-Index für die Suchmaschine 420. Die Suchmaschine 420 führt sodann eine binäre Suche im bzw. über den Abschnitt 8 aus, um einen korrekten Eintrag zu ermitteln und um eine interne Strom-ID des ermittelten Eintrags abzugeben. Die abgegebene interne Strom-ID wird für den Filterungsprozess verwendet.
  • Bei der obigen Ausführungsform sind die unteren drei Bits des VPI/VCI-Feldes einfach als Abschnitts-Index verwendet worden. Eine komplexere Hash-Funktion kann jedoch über bzw. in dem VPI/VCI-Feld angewandt werden, um einen Abschnitts-Index zu erzeugen.
  • Wenn bei der obigen Ausführungsform eine neue VP/VC-Einrichtung aktiv wird, wird der neue Eintrag durch die Hash-Funktion 400 in einen in Frage kommenden Abschnitt eingegeben. Es ist jedoch möglich, eine neue VPI/VCI-Tabelle zu erzeugen, die den neuen Eintrag im Host 28 enthält, der eine Hash-Funktion desselben Mechanismus aufweist wie die Hash-Funktion 400, die neue VPI/VCI-Tabelle zu dem VPI/VCI-Umsetzer 85 zu übertragen und die VPI/VCI-Tabelle 402 mit der neuen VPI/VCI-Tabelle zu aktualisieren.
  • Muster-Detektor
  • Der Host 28 weiß aus einer bestimmten VC-Einrichtung, welche Art von Daten ankommen. Der Host 28 weist den Muster-Detektor 92 per VC-Angabe an, welches Muster abzutasten ist. Der Zweck des Muster-Detektors 92 besteht darin, ein zuvor festgelegtes Bitmuster im ankommenden Datenstrom zu detektieren. Jedes Mal, wenn eine Übereinstimmung ermittelt wird, informiert der Muster-Detektor 92 den Host 28 über den Zustand „der ermittelten Daten". Wenn der Host die Information über die Ermittlung empfängt, fügt er die Adresse, unter der diese auftritt, in einer Liste in dem Host-Speicher 32 an. Da die Ermittlung selbst automatisch abläuft, kann der Host 28 in der Zwischenzeit andere Aufgaben wahrnehmen. Der Host 28 braucht lediglich in dem Fall unterbrochen zu werden, dass das zuvor festgelegte Bitmuster ermittelt wird und dass die Aktion ausgeführt werden kann.
  • 15 zeigt ein Blockdiagramm des Muster-Detektors 92. Bevor der ankommende Datenstrom über den Empfangspfad 80 übertragen wird, weist der Host 28 die Musterdetektier-Steuereinrichtung 506 per VC-Angabe an, nach welchem Muster abzutasten ist. Die Musterdetektier-Steuereinrichtung 506 kann vier vorprogrammierte Bitmuster mit einer Breite von 32 Bits im Register 504 je Strom festlegen. Die Abgleichschaltung 500 führt einen Byte-Abgleich des ankommenden Datenstromes aus. Die Abstimmungsschaltung 502 führt einen Abgleich des abgeglichenen Bytes gegenüber vier vorprogrammierten Bitmustern pro Strom aus. Jedes Mal, wenn eine Übereinstimmung ermittelt wird, informiert die Abstimmungsschaltung 502 die Steuereinrichtung 506 über die Ermittlung.
  • Ein Beispiel des Zwecks des Muster-Detektors 92 besteht darin, die Stellen eines I-Bildes in einem Videobitstrom zu ermitteln, der entsprechend dem MPEG-Standard komprimiert ist. Im MPEG-Bitstrom ist ein Bild, welches unmittelbar einem GOP-Header folgt, stets ein I-Bild. Daher ist es möglich, eine Lage bzw. Stelle des I-Bildes dadurch zu ermitteln, dass der Gruppen_Start_Code (32 Bits), der den Beginn des GOP-Headers bestimmt, und ein Bild_Start_Code (32 Bits), der den Beginn des Bild-Headers bestimmt, ermittelt werden.
  • Wenn beispielsweise ein MPEG-Bitstrom eines Filmes von einer anderen SMU-Einheit 12 übertragen wird, um den Film zu kopieren bzw. zu duplizieren, werden der Gruppen_Start_Code und der Bild_Start_Code in dem Register 504 als zuvor festgelegte Bitmuster festgelegt. Der Muster-Detektor 92 ermittelt den Gruppen_Start_Code und den Bild_Start_Code in dem empfangenen MPEG-Bitstrom. Jedes Mal, wenn in der Abstimmungsschaltung 502 ein Bild_Start_Code unmittelbar nach der Ermittlung eines Gruppen_Start_Code ermittelt wird, informiert die Musterdetektier-Steuereinrichtung 506 die Host-CPU 30 über den Ermittlungszustand. Die Host-CPU 30 fügt eine Adresse der Speichervorrichtung 20, in der das I-Bild gespeichert ist, zu einer Liste in dem Host-Speicher 32 hinzu. Somit wird die Liste, welche die Lagen des I-Bildes angibt, errichtet, während der MPEG-Bitstrom in den Empfangspfad 80 strömt.
  • Die Liste wird für den Videokassettenrecorder-(VCR)-Betrieb verwendet, wenn der gespeicherte MPEG-Bitstrom zu der SetTopBox 18 übertragen wird. Falls die SetTopBox 18 einen VCR-Betrieb (beispielsweise einen schnellen Vorlauf FF, einen schnellen Rücklauf FR) fordert, bezieht sich der Host 28 auf diese Liste und weist die Speichervorrichtungs-Steuereinrichtung 22 dahingehend an, auf die I-Bilder zuzugreifen und diese abzuholen.
  • Unter Heranziehung dieses Merkmals stellen die in der Speichervorrichtung 20 gespeicherten Daten „Rohdaten" dar, und sie sind für eine bestimmte Anwendung nicht formatiert. Dies steigert die „Anwendungsunabhängigkeit" und Interoperabilität des Serversystems 10 (1).
  • Rx-Adressenumsetzer
  • Der Zweck des Rx-Adressenumsetzers 96 besteht darin, verschiedene (nicht zusammenhängende) Wörter von einem Strompuffer 46 zu sammeln und Burstdaten für den PCI-Bus 24 zu erzeugen. Grundsätzlich handelt es sich hierbei um die inverse Funktion der Adressenumsetzung des Tx-Adressenumsetzers 54. Der Unterschied besteht darin, dass in diesem Fall eine dynamische Pufferstruktur berücksichtigt werden muss. Die Burstdaten werden über den PCI-Bus 24 zu der Speichervorrichtung 20 oder zu dem Host 28 übertragen.
  • 16 veranschaulicht ein Beispiel einer Adressenumsetzung, die auf einen ankommenden Datenstrom angewandt ist, der in der Disk 0, 1, 2 und 3 der Speichervorrichtung 20 zu speichern ist. Bei diesem Beispiel wird durch den Rx-Adressenumsetzer 96 die folgende Sequenz von Leseadressen für den Strompuffer 48 erzeugt, um Burstdaten 600 zu erzeugen.
    178, 182, 13, 17, 1099, 1103 (für die Disk 0)
    179, 183, 14, 18, 1100, 1104 (für die Disk 1)
    180, 184, 15, 19, 1101, 1105 (für die Disk 2)
    181, 185, 16, .... (für die Disk 3)

Claims (10)

  1. Verfahren zur Verkehrsformung, umfassend die Schritte: – Verarbeiten eines oder mehrerer erster Datenströme von Daten hoher Priorität, – Verarbeiten eines oder mehrerer zweiter Datenströme von allgemeinen Daten, – Klassifizieren der genannten ersten Ströme in eine oder mehrere Klassen, wobei jede Klasse einen oder mehrere Ströme mit denselben Bitraten-Charakteristiken enthält, – Festlegen eines Satzes von Übertragungsparametern zur Steuerung der Bitrate für jede Klasse, – Speichern der genannten Parameter in einem Speicher, – Ausführen einer Ratenschrittsteuerung bezüglich jeder Klasse entsprechend den gespeicherten Parametern, – Formen des Verkehrs der genannten zweiten Ströme in festliegenden Verkehrsklassen, die einen oder mehrere Ströme derselben Spitzen-Zellrate aufweisen, wobei die zweiten Übertragungsparameter der genannten zweiten Ströme in dem Speicher gespeichert werden und wobei der Strom der Datenpakete des Abschnitts niedriger Priorität lediglich dann abgegeben werden kann, wenn die Übertragungsschlange des Abschnitts hoher Priorität leer ist.
  2. Verfahren zur Verkehrsformung nach Anspruch 1, wobei die Parameter eine ideale festgelegte Zeit (TS) und ein Inkrement (Δ) für die ideale festgelegte Zeit enthalten und wobei der Ausführungsschritt umfasst: – Inkrementieren der idealen festgelegten Zeit mit dem Inkrement (Δ), wenn eine Zelle eines vorliegenden Stromes in einer Klasse in eine Übertragungsschlange eingebracht wird, – Vergleichen eines Referenztaktes mit der inkrementierten idealen festgelegten Zeit und – Einbringen einer Zelle eines nächsten Stroms in der Klasse in die Übertragungsschlange, wenn die inkrementierte ideale festgelegte Zeit gleich oder kleiner wird als der Referenztakt.
  3. Verfahren zur Verkehrsformung nach Anspruch 2, wobei das Inkrement der jeweiligen Klasse zwei Alternativwerte (ΔH, ΔL) annimmt, wobei einer der Werte eine Bitrate angibt, die höher ist als eine benötigte Bitrate, und wobei der andere Wert eine Bitrate angibt, die niedriger ist als die benötigte Bitrate, und wobei der Ausführungsschritt ein zyklisches Wechseln der Inkrementwerte umfasst.
  4. Verfahren zur Verkehrsformung nach Anspruch 1 oder 3, wobei das Inkrement einen solchen Wert annimmt, dass die Zellen der Ströme, die zur selben Klasse gehören, in gleichmäßigem Abstand vorgesehen sind.
  5. Verfahren zur Verkehrsformung nach einem der Ansprüche 1 bis 4, wobei die ersten Ströme einen VBR-Strom mit variabler Bitrate enthalten und ferner umfassend: – Lösen des VBR-Stromes von einer vorliegenden Klasse, wenn sich eine Bitratencharakteristik des VBR-Stromes ändert, – Aktualisieren der Parameter der vorliegenden Klasse, – Zuteilen des VBR-Stromes zu einer neuen Klasse und – Aktualisieren der Parameter der neuen Klasse.
  6. Verkehrsformer für ein Verfahren nach einem der Ansprüche 1 bis 5, umfassend – eine Einrichtung (200) zum Klassifizieren eines oder mehrerer erster Ströme, die eine hohe Priorität aufweisen, in eine oder mehrere Klassen, wobei jede Klasse einen oder mehrere Ströme aufweist, welche dieselben Bitraten-Charakteristiken aufweisen, – eine Speichereinrichtung (206) zum Speichern eines Satzes von Parametern für die Steuerung der Bitrate bezüglich jeder Klasse, – eine Einrichtung (208) zum Ausführen einer Raten-Schrittsteuerung bezüglich jeder Klasse entsprechend dem Satz der Parameter in der Speichereinrichtung, wobei die ersten Ströme eine hohe Priorität aufweisen, und – eine Einrichtung (202) zum Formen des Verkehrs eines oder mehrerer zweiter Ströme, die eine niedrige Priorität aufweisen.
  7. Verkehrsformer nach Anspruch 6, wobei die Parameter eine ideale festgelegte Zeit (TS) und ein Inkrement (Δ) für die ideale festgelegte Zeit aufweisen, wobei die Ausführungseinrichtung die ideale festgelegte Zeit mit dem Inkrement in dem Fall inkrementiert, dass eine Zelle eines vorliegenden Stromes in einer Klasse in eine Übertragungsschlange (216) eingebracht ist, einen Referenztakt mit der inkrementierten idealen festgelegten Zeit vergleicht und eine Zelle eines nächsten Stromes in der Klasse in die Übertragungsschlange einfügt, wenn die inkrementierte ideale festgelegte Zeit gleich oder kleiner wird als der Referenztakt.
  8. Verkehrsformer nach Anspruch 7, wobei das Inkrement der jeweiligen Klasse zwei Alternativwerte (ΔH, ΔL) annimmt, wobei einer der Werte eine Bitrate angibt, die höher ist als eine benötigte Bitrate, und wobei der andere Wert eine Bitrate angibt, die niedriger ist als die benötigte Bitrate, und wobei die Ausführungseinrichtung die Werte des Inkrements zyklisch wechselt.
  9. Verkehrsformer nach Anspruch 7 oder 8, wobei das Inkrement einen solchen Wert annimmt, dass die Zellen der Ströme, die zur selben Klasse gehören, in gleichmäßigem Abstand vorgesehen sind.
  10. Verkehrformer nach einem der Ansprüche 6 bis 9, wobei die ersten Ströme einen VBR-Strom mit variabler Bitrate enthalten und wobei in dem Fall, dass sich eine Bitraten-Charakteristik des VBR-Stromes ändert, die Klassifizierungseinrichtung den VBR-Strom aus einer vorliegenden Klasse löst und den VBR-Strom einer neuen Klasse zuteilt, und wobei die Parameter der vorliegenden Klasse und der neuen Klasse aktualisiert werden.
DE1996636458 1996-11-27 1996-11-27 Verfahren zur Verkehrsformung und Verkehrformer Expired - Lifetime DE69636458T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP19960203336 EP0847166B1 (de) 1996-11-27 1996-11-27 Verfahren zur Verkehrsformung und Verkehrformer

Publications (2)

Publication Number Publication Date
DE69636458D1 DE69636458D1 (de) 2006-09-28
DE69636458T2 true DE69636458T2 (de) 2007-03-15

Family

ID=8224627

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1996636458 Expired - Lifetime DE69636458T2 (de) 1996-11-27 1996-11-27 Verfahren zur Verkehrsformung und Verkehrformer

Country Status (2)

Country Link
EP (1) EP0847166B1 (de)
DE (1) DE69636458T2 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2337402B (en) * 1998-05-11 2003-04-23 Gen Datacomm Advanced Res Ct L Bundle shaping or policing
US6490298B1 (en) * 1999-02-26 2002-12-03 Harmonic Inc. Apparatus and methods of multiplexing data to a communication channel
WO2003017587A1 (en) * 2001-08-17 2003-02-27 Nokia Corporation Method, network element, and terminal device for marking data packets

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2653284B1 (fr) * 1989-10-12 1994-05-06 Alcatel Cit Dispositif de regularisation de debit de circuit virtuels empruntant une voie de transmission a multiplexage temporel asynchrone.
CA2104753C (en) * 1992-10-29 1999-02-16 Kotikalapudi Sriram Bandwidth allocation, transmission scheduling, and congestion avoidance in broadband atm networks
JP2993351B2 (ja) 1994-02-14 1999-12-20 松下電器産業株式会社 圧縮データ記録装置
US5548587A (en) 1994-09-12 1996-08-20 Efficient Networks, Inc. Asynchronous transfer mode adapter for desktop applications

Also Published As

Publication number Publication date
EP0847166B1 (de) 2006-08-16
DE69636458D1 (de) 2006-09-28
EP0847166A1 (de) 1998-06-10

Similar Documents

Publication Publication Date Title
DE69630084T2 (de) Anlage und Verfahren zur Paketierung und Segmentierung von MPEG-Paketen
KR100520321B1 (ko) 데이터 서브 방법 및 장치
DE69717455T2 (de) Verfahren und anlage zur steuerung von quellengeschwindigkeit in einem atm netzwerk
DE69533425T2 (de) Atm anpassungseinrichtung für desktop anwendungen
DE69834080T2 (de) Verfahren zur verteilten Bearbeitung von Video-Clips über ein Telekommunikationsnetz
DE60023019T2 (de) Verfahren und system zur ablösung oder regeneration von quittierungspaketen in adsl kommunikationen
DE69931302T2 (de) Zeitbasierte Ablaufsteuerungsarchitektur und Verfahren für ATM Netzwerke
DE19536401B4 (de) Verfahren und Einrichtung zum Codieren und Decodieren von Daten
DE4408118B4 (de) Verfahren und Vorrichtung zum Zuweisen von Informationswerten eines ATM-Headers
DE112006002644T5 (de) Mediendatenverarbeitung unter Verwendung von charakteristischen Elementen für Streaming- und Steuerprozesse
EP0862349A2 (de) Koppeleinrichtung
DE60316662T2 (de) Komprimierung von zellkopfteilen zur datenkommunikation
US6137779A (en) Transmission rate calculation scheme using table-lookup
US6892287B1 (en) Frame reassembly in an ATM network analyzer
DE10023037A1 (de) Koppelfeld für ein Fernmeldenetz und Verfahren zur Vermittlung in einem Koppelfeld
EP1727315B1 (de) Verfahren und Vorrichtung zum nach ATM-Kanälen geordneten Bereitstellen von ATM-Zellen an einer zwischen einem ersten und einem zweiten Knoten eines Übertragungssystems angeordneten Schnittstelle
DE69733199T2 (de) Verfahren und audio-server-system für ein unzuverlässiges netzwerk
DE60305560T2 (de) Eingebettetes System für die Überlastregelung von Rundfunkverkehr in einem Kommunikationsnetzwerk
DE69636458T2 (de) Verfahren zur Verkehrsformung und Verkehrformer
DE19857843B4 (de) Internet-Protokoll-Schichtprozessor
EP0634879A2 (de) Anordnung und Verfahren zum Bearbeiten von Datenstrukturen bei deren Durchlauf durch einen Netzwerkknoten
EP2538618A1 (de) Verfahren zur Übertragung von Datenpaketen
EP1313284B1 (de) Router
DE60015574T2 (de) Signalvermittlung
DE69839297T2 (de) Verfahren und Anordnung für die ATM-Wiederzusammensetzung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition