DE69733617T2 - Protokoll verarbeitungsgerät für datenstromverarbeitung - Google Patents

Protokoll verarbeitungsgerät für datenstromverarbeitung Download PDF

Info

Publication number
DE69733617T2
DE69733617T2 DE69733617T DE69733617T DE69733617T2 DE 69733617 T2 DE69733617 T2 DE 69733617T2 DE 69733617 T DE69733617 T DE 69733617T DE 69733617 T DE69733617 T DE 69733617T DE 69733617 T2 DE69733617 T2 DE 69733617T2
Authority
DE
Germany
Prior art keywords
isochronous
data stream
data
bus structure
application
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
DE69733617T
Other languages
English (en)
Other versions
DE69733617D1 (de
Inventor
D. Scott SMYERS
Bruce Fairman
Hisato Shima
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 Electronics Inc
Original Assignee
Sony Electronics Inc
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 Electronics Inc filed Critical Sony Electronics Inc
Publication of DE69733617D1 publication Critical patent/DE69733617D1/de
Application granted granted Critical
Publication of DE69733617T2 publication Critical patent/DE69733617T2/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/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40058Isochronous transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40065Bandwidth and channel allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • Die Erfindung betrifft die Durchführung von isochronen Datentransferoperationen zu und von einer Applikation über eine Busstruktur. Die Erfindung bezieht sich insbesondere auf das Verwalten und Bearbeiten eines Hochgeschwindigkeitsstroms von isochronen Daten zur Durchführung einer Datentransferoperation zwischen einer Applikation und einem mit einer Busstruktur verbundenen Knoten.
  • Der IEEE-1394-Standard "P1394 Standard For A High Performance Serial Bus", Entwurf 8.01v1, 16. Juni 1995, ist ein internationaler Standard zur Implementierung einer kostengünstigen seriellen Hochgeschwindigkeits-Busarchitektur, die Datentransfer sowohl in asynchronem als auch in isochronem Format unterstützt. Isochrone Datentransfers sind Echtzeitübertragungen, die in der Weise stattfinden, daß die Zeitintervalle zwischen signifikanten Zeitpunkten sowohl in der sendenden als auch in der empfangenden Applikation gleiche Dauer haben. Jedes isochron übertragene Datenpaket wird in seiner eigenen Zeitperiode übertragen. Ein Beispiel einer idealen Applikation für die isochrone Übertragung von Daten wäre die Übertragung von einem Videorecorder zu einem Fernsehgerät. Der Videorecorder zeichnet Bilder und Töne auf und sichert die Daten in diskreten Stücken oder Paketen. Der Videorecorder überträgt dann jedes Paket, das über eine begrenzte Zeitperiode aufgezeichnete Bild- und Toninformation repräsentiert, während dieser Zeitperiode für die Anzeige in dem Fernsehgerät. Die Busarchitektur nach dem IEEE-1394-Standard sieht Mehrfachkanäle für die isochrone Datenübertragung zwischen Applikationen vor. Mit den Daten wird eine 6-Bit-Kanalnummer gesendet, um den Empfang durch die passende Applikation zu gewährleisten. Dadurch können mehrere Applikationen gleichzeitig isochrone Daten über die Busstruktur senden. Asynchrone Übertragungen sind traditionelle Datenübertragungsoperationen, die so bald wie möglich stattfinden und eine Datenmenge von einer Quelle zu einem Ziel übertragen.
  • Der IEEE-1394-Standard stellt einen seriellen Hochgeschwindigkeits-Bus für die Verbindung von digitalen Geräten zur Verfügung und liefert damit eine universelle I/O-Verbindung. Der IEEE-1394-Standard definiert ein digitales Interface für die Applikationen, so daß die Notwendigkeit entfällt, daß eine Applikation digitale Daten in analoge Daten umwandeln muß, bevor sie über den Bus übertragen werden. Dementsprechend empfängt eine empfangende Applikation digitale Daten und keine analogen Daten von dem Bus und muß deshalb keine analogen Daten in digitale Daten umwandeln. Das von dem IEEE-1394-Standard benötigte Kabel ist sehr dünn im Vergleich zu den dickeren Kabeln, die für die Verbindung solcher Geräte benutzt werden. Geräte können an einen IEEE-1394-Bus angeschlossen und von ihm getrennt werden, während der Bus aktiv ist. Wenn ein Gerät in dieser Weise angeschlossen oder getrennt wird, rekonfiguriert sich der Bus automatisch selbst, um Daten zwischen den dann existierenden Knoten zu übertragen. Ein Knoten wird als eine logische Entität mit einer eindeutigen Adresse an der Busstruktur betrachtet. Jeder Knoten stellt ein Identifikations-ROM, einen standardisierten Satz von Steuerregistern und seinen eigenen Adressenraum zur Verfügung.
  • Der IEEE-1394-Standard definiert ein Protokoll, wie es in 1 dargestellt ist. Dieses Protokoll umfaßt einen Verwaltungsblock 10 für einen seriellen Bus, der mit einer Transaktionsschicht 12, einer Verknüpfungsschicht 14 und einer physikalischen Schicht 16 verbunden ist. Die physikalische Schicht 16 liefert die elektrische und mechanische Verbindung zwischen einem Gerät oder einer Applikation und dem IEEE-1394-Kabel. Die physikalische Schicht 16 führt auch eine Bewertung durch, um sicherzustellen, daß alle mit dem IEEE-1394-Bus verbundenen Geräte Zugriff auf den Bus haben, um das tatsächliche Senden und Empfangen der Daten zu gewährleisten. Die Verknüpfungsschicht 14 bietet einen Datenpaket-Lieferservice sowohl für asynchronen als auch isochronen Datenpakettransport. Dieser unterstützt sowohl asynchronen Datentransport, wobei ein Quittungsprotokoll benutzt wird, als auch isochronen Datentransport, bei dem ein echtzeit-garantiertes Bandbreitenprotokoll für die zeitgerechte Datenlieferung vorgesehen ist. Die Transaktionsschicht 12 unterstützt die Befehle, die für die Durchführung von asynchronen Datenübertragungen, einschließlich Lesen, Schreiben und Sperren, erforderlich sind. Der Verwaltungsblock 10 für den seriellen Bus enthält einen isochronen Ressourcen-Manager zum Verwalten der isochronen Datenübertragungen. Der Verwaltungsblock 10 für den seriellen Bus ermöglicht auch die Kontrolle über die Gesamtkonfiguration des seriellen Busses in Form von optimierender zeitlicher Abstimmung der Bewertung, eine Garantie für die passende elektrische Leistung für alle Geräte an dem Bus, die Zuteilung des Zyklus-Masters, die Zuteilung von isochronen Kanal- und Bandbreiten-Ressourcen und eine grundlegenden Fehlermeldung.
  • Zur Initialisierung des isochronen Transfers können mehrere asynchrone Datenübertragungen erforderlich sein, um die Applikationen zu konfigurieren und den spezifischen Kanal zu bestimmen, der für die Datenübertragung benutzt wird. Sobald der Kanal festgelegt ist, werden Puffer benutzt, in der sendenden Applikation, um die Daten zu speichern, bevor sie gesendet werden, und in der empfangenden Applikation zur Speicherung der Daten, bevor sie verarbeitet werden. In einem Universal-Host oder einer peripheren Implementierung liegt das Format der gesendeten Daten nicht in einer von der Applikation verwendbaren Form vor. In den meisten Fällen muß ein Universal-Prozessor den Datenstrom vorverarbeiten, bevor er zu der Applikation gesendet wird. Die Vorverarbeitung nimmt oft erhebliche Rechenleistung in Anspruch, so daß es unter Umständen nicht gelingt, den Echtzeit-Datenstrom effektiv zu verarbeiten.
  • Was benötigt wird, ist eine isochrone Daten-Pipe, die der Applikation die Fähigkeit verleiht, einen Hochgeschwindigkeits-Datenstrom, der über eine Busstruktur von der Applikation gesendet oder empfangen wird, zu verwalten und zu manipulieren. Was außerdem benötigt wird, ist eine isochrone Daten-Pipe, die es der Applikation erlaubt, Daten in ihrem nativen Format zu senden und zu empfangen und dadurch die Fähigkeit der Applikation zu verbessern, einen kontinuierlichen Datenstrom über die Zeit effektiv zu bearbeiten.
  • Das Dokument "The Programmable Protocol VLSI Engine (PROVE)" von Krishnakumar et al., veröffentlicht in IEEE Transactions on Communications, Band 42, Nr. 8, 1. August 1994, Seiten 2630 bis 2642, beschreibt eine sehr hoch integrierte (VLSI) programmierbare Protokollmaschine. Die VLSI-Protokollmaschine ist ein programmierbarer VLSI-Chipsatz, der zur Implementierung verschiedener Standard-Kommunikationsprotokolle benutzt werden kann. Das zu implementierende Protokoll wird in einer formalen APSL (augmented protocol specification language) beschrieben. Die VLSI-Protokollmaschine besteht aus einem Message-Parser, einem Message-Assembler, einer zentralen Steuereinheit und einem Interface zu der oberen Schicht. Der Message-Parser trennt den Header jedes ankommenden Pakets von der unteren Schicht und leitet die in dem Paket enthaltenen Daten zu der Datenverwaltungseinheit. Die zentrale Steuereinheit lädt den Message-Assembler mit der für den Aufbau des Headers eines abgehenden Pakets benötigten Information. Der Message-Assembler konstruiert den Header dann entsprechend den Paket-Formatierungsregeln und sendet ihn zu der unteren Schicht. Die zentrale Steuereinheit implementiert die Protokoll-Funktionen, die als eine Kollektion von Finite-State-Maschinen spezifiziert sind. Die von der zentralen Steuereinheit implementierten Zustandsmaschinen sind in einem in einem externen RAM residenten Mikroprogramm beschrieben, das die Prozesse spezifiziert, die das Protokoll umfassen.
  • Die europäische Patentanmeldung EP-A-0 696 853 beschreibt ein Signalempfangsgerät, das isochrone Daten kontinuierlich ohne Unterbrechung empfangen kann und unregelmäßig gesendete asynchrone Daten ebenfalls empfangen kann. Das Signalempfangsgerät empfängt isochrone und asynchrone Pakete, die an den Empfänger adressiert sind, und sendet sie zu einem Separator. Der Separator liefert dann die isochronen Pakete an ein isochrones Empfangs-FIFO und die asynchronen Pakete an ein asynchrones Empfangs-FIFO. Die isochronen Pakete werden dann aus dem isochronen Empfangs-FIFO in einen isochronen Datenverarbeitungsblock ausgelesen. Die asynchronen Pakete werden aus dem asynchronen Empfangs-FIFO in den asynchronen Datenverarbeitungsblock ausgelesen.
  • Das Dokument "The Parallel Protocol Engine" von Kaiserswerth, veröffentlicht in IEEE/ACM Transactions on Networking, Band 1, Nr. 6, 1. Dezember 1993, Seiten 650 bis 663, beschreibt eine Parallel-Protokollmaschine für die Ausführung von Protokollen mit Parallelpipelines. Die parallele Protokollmaschine verwendet zwei separate, gemeinsam genutzte Speicher zum Senden und Empfangen von Daten. Bis zu vier Protokoll-Prozessoren greifen auf jeder Seite des Adapters auf den gemeinsam genutzten Speicher zu.
  • In den anliegenden Ansprüchen sind verschiedene Aspekte der Erfindung angegeben.
  • In einem speziellen Ausführungsbeispiel der Erfindung bietet eine isochrone Daten-Pipe einen bidirektionalen Datenpfad zwischen einer Applikation und einer Busstruktur. Die isochrone Daten-Pipe kann senden, empfangen und an einem beliebigen isochronen Datenstrom, der Daten auf einer beliebigen Anzahl von isochronen Kanälen einschließt, Manipulationen vornehmen. Die isochrone Daten-Pipe ist eine programmierbare Folgesteuerung (sequencer), die den isochronen Datenstrom bearbeitet, wenn dieser durch die isochrone Daten-Pipe wandert. Die isochrone Daten-Pipe wird von einer Applikation programmiert, um spezifische Operationen an dem Datenstrom vorzunehmen, bevor die Daten entweder über die Busstruktur übertragen oder zu der Applikation gesendet werden, und führt dadurch eine Vorverarbeitung und Manipulation der Daten durch, bevor sie an ihr Ziel ausgeliefert werden. Die Operationen werden sowohl an dem Paket-Header als auch an dem Datenfeld des Datenpakets vorgenommen. Die isochrone Daten-Pipe kann beim Auftreten spezifischer Ereignisse gestoppt und gestartet werden. In einem alternativen Ausführungsbeispiel der Erfindung ist die isochrone Daten-Pipe so programmiert, daß sie sowohl isochrone als auch asynchrone Daten sendet und empfängt, einschließlich der Erzeugung von Anforderungen und geeigneten Paket-Headern.
  • 1 zeigt ein durch den IEEE-1394-Standard definiertes Protokoll,
  • 2 zeigt ein schematisches Blockdiagramm einer Verknüpfungsschaltung mit einer isochronen Daten-Pipe gemäß der Erfindung und einer asynchronen Daten-Pipe,
  • 3 zeigt eine Registerdatei in der isochronen Daten-Pipe,
  • 4 zeigt eine Registerdatei in dem isochronen Daten-Pipe-Sequencers,
  • 5 zeigt ein Beispiel für einen isochronen Datenstrom und veranschaulicht das isochrone Aufzeichnungsformat.
  • Eine isochrone Daten-Pipe sendet und empfängt über eine Busstruktur Daten für eine Applikation. Die Busstruktur ist vorzugsweise eine Busstruktur nach dem IEEE-1394-Standard. Die isochrone Daten-Pipe ist programmierbar und führt eine Reihe von Instruktionen an einem Datenstrom aus, um an den Daten die von der Applikation geforderten Manipulationen vorzunehmen. Eine Verknüpfungsschaltung enthält eine isochrone Daten-Pipe zum Senden und Empfangen von isochronen Daten und eine asynchrone Daten-Pipe zum Senden und Empfangen von asynchronen Daten. Die Daten aus der isochronen Daten-Pipe und die Daten aus der asynchronen Daten-Pipe sind auf der Busstruktur gemultiplext. Die von der Busstruktur empfangenen Daten werden auf die isochrone Daten-Pipe und die asynchrone Daten-Pipe demultiplext. Alternativ ist die isochrone Daten-Pipe so programmiert, daß sie sowohl isochrone als auch asynchrone Daten sendet und empfängt.
  • 2 zeigt eine Verknüpfungsschaltung mit einer isochronen Daten-Pipe (IDP) nach der vorliegenden Erfindung und einer asynchrone Daten-Pipe. Die Verknüpfungsschaltung 10 stellt eine Verknüpfung her zwischen Applikationen 12 und 14 und einer Busstruktur 58. Beide Applikationen 12 und 14 sind mit einem Systembus 16 verbunden. Der Systembus 16 ist sowohl mit der isochronen Daten-Pipe 20 als auch mit der asynchronen Daten-Pipe 26 verbunden. Die Applikationen 12 und 14 sind außerdem mit einer Applikations-Interface-Schaltung 18 verbunden. Die Applikations-Interface-Schaltung 18 ist mit einem Satz von Steuerregistern 38, der isochronen Daten-Pipe 20, der asynchronen Daten-Pipe 26 und einem Verknüpfungskern 44 verbunden. Sowohl die isochrone Daten-Pipe als auch die asynchrone Daten-Pipe 26 enthalten einen Registersatz 24 bzw. 28. Das abgehende FIFO 30 entspricht der isochronen Daten-Pipe 20 und ist zwischen der isochronen Daten-Pipe 20 und einem Multiplexer 40 angeordnet. Das abgehende FIFO 32 entspricht der asynchronen Daten-Pipe 26 und ist zwischen der asynchronen Daten-Pipe 26 und dem Multiplexer 40 angeordnet. Die Steuerregister 38 sind ebenfalls sowohl mit der isochronen Daten-Pipe 20 als auch mit der asynchronen Daten-Pipe 26 verbunden. Ein ankommendes FIFO 34 ist mit einem Demultiplexer 42 verbunden. Der Demultiplexer 42 ist sowohl mit der isochronen Daten-Pipe 20 als auch mit der asynchronen Daten-Pipe 26 verbunden.
  • Der Verknüpfungskern 44 enthält einen Sender 46, einen Empfänger 48, einen Zyklus-Timer 50, einen Zyklus-Monitor 52, eine CRC-Fehlerprüfschaltung 54 und eine physikalische Interfaceschaltung 56 für den physikalischen Anschluß an die Busstruktur 58. Der Sender 46 ist mit dem Multiplexer 40, dem Zyklus-Timer 50, der CRC-Fehlerprüfschaltung 54 und der physikalischen Interface-Schaltung 56 verbunden. Der Empfänger 48 ist mit dem ankommenden FIFO 34, dem Zyklus-Monitor 52, der CRC-Fehlerprüfschaltung 54 und der physikalischen Interfaceschaltung 56 verbunden. Der Zyklus-Timer 50 ist mit dem Zyklus-Monitor 52 verbunden. Die physikalische Interfaceschaltung 56 ist mit der Busstruktur 58 verbunden.
  • Die in 2 dargestellte Verknüpfungsschaltung 10 enthält ein Einfach-FIFO 34 für alle ankommenden sowohl isochronen als auch asynchronen Daten, ein speziell für die isochrone Daten-Pipe 20 bestimmtes FIFO 30 für abgehende Daten und ein speziell für die asynchrone Daten-Pipe 26 bestimmtes FIFO 32 für ausgehende Daten. Die ausgehenden Daten aus den FIFOs 30 und 32 werden von dem Multiplexer 40 über den Verknüpfungskern 44 und auf die Busstruktur 58 gemultiplext. Die ankommenden Daten aus dem FIFO 34 werden von dem Demultiplexer 42 entweder der isochronen Daten-Pipe 20 oder der asynchronen Daten-Pipe 26 zugeführt, wie dies weiter unten erläutert wird.
  • Das ankommende FIFO 34 hat vorzugsweise eine Breite von 33 Bit, das ausgehende FIFO 30 hat eine Breite von 34 Bits und das abgehende FIFO 32 hat eine Breite von 33 Bits. In jedem der FIFOs 30, 32 und 34 sind die Bits 0 bis 31 für den Datentransport bestimmt, und das Bit 32 ist für Transport eines Paket-Grenz-Markierer bestimmt. Für abgehende Pakete setzen die isochrone Daten-Pipe 20 und die asynchrone Daten-Pipe 26 das Bit 32 in dem ersten Quadlet jedes Pakets auf hohen logischen Spannungspegel. Für ankommende Pakete setzt der Verknüpfungskern 44 das Bit 32 in dem ersten Quadlet jedes Pakets auf hohen logischen Spannungspegel.
  • In dem abgehenden FIFO 30, das der isochronen Daten-Pipe 20 entspricht, dient das Bit 33 zur Bezeichnung einer isochronen Zyklus-Grenze. Die isochrone Daten-Pipe 20 setzt das Bit 33 in dem ersten Quadlet des ersten isochronen Pakets jedes isochronen Zyklus auf hohen logischen Spannungspegel. Wenn der Verknüpfungskern 44 ein Daten-Quadlet empfängt, bei dem das Bit 33 auf einen hohen logische Spannungspegel gesetzt ist, verzögert er bis zu dem nächsten Zyklusstart, sendet dann alle isochronen Pakete in dem abgehenden FIFO 30, bis ein weiteres Quadlet detektiert wird, dessen Bit 33 auf hohen logischen Spannungspegel gesetzt ist.
  • Um von einer der Applikationen 12 und 14 Applikationsdaten auf die Busstruktur 58 zu senden, erzeugen sowohl die isochrone Daten-Pipe 20 als auch die asynchrone Daten-Pipe 26 eine geeignete Header-Information und hängen die passenden Applikationsdaten an, um ein Paket in der von der Busstruktur 58 geforderten Form zu bilden. Diese Pakete werden dann in dem passenden FIFO 30 bzw. 32 für das Senden auf der Busstruktur 58 gespeichert.
  • Die asynchrone Daten-Pipe 26 ist vorzugsweise so implementiert, wie dies in der internationalen Patentanmeldung WO 97/33230 mit dem Titel "Asynchronous Data Pipe For Automatically Managing Asynchronous Data Transfers Between An Application And A Bus Structure" beschrieben ist, die am 12. September 1997 veröffentlicht wurde. Die asynchrone Daten-Pipe 26 erzeugt automatisch Transaktionen, die zur Durchführung von asynchronen Datentransfer-Operationen für eine Applikation über eine Busstruktur erforderlich sind. Die asynchrone Daten-Pipe 26 enthält eine von der Applikation programmierte Registerdatei 28. Die Registerdatei 28 ermöglicht es der Applikation, Erfordernisse und Eigenschaften für die Datentransfer-Operation zu programmieren. Die Registerdatei 28 enthält die Bus-Geschwindigkeit, ein Transaktions-Label, einen Transaktions-Code, einen Zielknoten-Identifi zierer, eine Ziel-Offset-Adresse, die Länge der einzelnen Datenpakete, einen Paketzähler, ein Paketzähler-Pufferfeld, ein Steuerfeld und ein Statusfeld.
  • Nachdem die Registerdatei 28 programmiert und von der Applikation initiiert ist, erzeugt die asynchrone Daten-Pipe 26 automatisch die Lese- oder Schreib-Transaktionen, die zur Durchführung der Datentransfer-Operation über den passenden Adressenbereich benötigt werden, wobei die Information in der Registerdatei als Schablone zur Erzeugung der Transaktionen und Header benutzt wird. Die asynchrone Daten-Pipe 26 inkrementiert automatisch den Wert in dem Ziel-Offset-Adressenfeld für jede Transaktion entsprechend der Länge jedes Datenpakets, außer wenn ein Inkrementierungs-Merkmal deaktiviert wurde, wodurch signalisiert wird, daß die Transaktionen an eine Einzeladresse stattfinden sollen. Der Wert des Paket-Zählers repräsentiert die Zahl der verbleibenden Generationen, die erzeugt werden sollen. Nach jeder Übertragung eines Datenpakets wird der Wert des Paket-Zählers dekrementiert. Das Paketzähler-Pufferfeld ermöglicht es der Applikation, den Wert des Paketzählers zu inkrementieren, indem in das Paketzähler-Pufferfeld eingeschrieben wird.
  • In einer Verknüpfungsschaltung 10 können mehrere asynchrone Daten-Pipes enthalten sein, um mehrere asynchrone Datentransfer-Operationen zu verwalten. In einem solchen System besitzt jede asynchrone Daten-Pipe ihren eindeutigen Transaktions-Labelwert oder Wertebereich. Der Multiplexer 40 multiplext die Transaktionen und Datenpakete aus den asynchronen Daten-Pipes und der isochronen Daten-Pipe auf der Busstruktur 58. Der Demultiplexer 42 empfängt Signale und Datenpakete von der Busstruktur 58 und leitet sie zu der passenden asynchronen Daten-Pipe oder isochronen Daten-Pipe, wobei der Transaktions-Code und die Transaktions-Labelwerte benutzt werden.
  • In der Verknüpfungsschaltung 10 gibt es nur eine isochrone Daten-Pipe 20. Diese isochrone Daten-Pipe 20 kann mehrere isochrone Kanäle verarbeiten, und in dem Daten-Interface kann die isochrone Daten-Pipe 20 mehr als einen Strom von isochronen Daten unterstützen, wobei jeder Datenstrom aus einem oder mehreren isochronen Kanälen besteht. In einem alternativen Ausführungsbeispiel, das weiter unten beschrieben wird, kann die isochrone Daten-Pipe 20 auch asynchrone Daten senden und empfangen und damit die Funktionen einer asynchronen Daten-Pipe ausüben.
  • Der Verknüpfungskern 44 akzeptiert Datenpakete aus den abgehenden FIFOs 30 und 32, erzeugt Pakete, die dem von der Busstruktur 58 geforderten Format entsprechen, und überträgt dann die Pakete über das physikalische Interface 56 auf die Busstruktur 58. Der Verknüpfungskern 44 sendet in jedem isochronen Zyklus ein Datenwort des isochronen Zyklus aus dem abgehenden isochronen FIFO 30. Wenn der Verknüpfungskern 44 keine isochro nen Daten sendet, sendet er asynchrone Pakete aus dem abgehenden asynchronen FIFO 32.
  • Der Verknüpfungskern 44 sendet alle empfangenen Pakete an das ankommende FIFO 34. Sofern der Verknüpfungskern 44 nicht in einem Überwachungs-Modus (Snoop-Modus) arbeitet, empfängt er nur asynchrone Pakete, die an die passende Knoten-ID adressiert sind, sowie isochrone Pakete mit den passenden Kanalnummern. Im Snoop-Modus empfängt der Verknüpfungskern 44 alle Pakete ohne Rücksicht auf ihre Zielknoten-ID oder ihre isochrone Kanalnummer.
  • Die isochrone Daten-Pipe 20 bildet einen bidirektionalen Datenpfad für Applikationsdaten, die über die Busstruktur 58 gesendet werden sollen. Ein Strom von isochronen Daten ist aus Daten eines oder mehrerer isochroner Kanäle zusammengesetzt. Die isochrone Daten-Pipe 20 kann mit einem beliebigen Strom von isochronen Daten arbeiten, der Daten auf einer beliebigen Anzahl von isochronen Kanälen enthält. Die isochrone Daten-Pipe 20 ist ein programmierbarer Sequencer, der auf einen Strom von isochronen Daten von dem Bus 16 zu dem abgehenden isochronen FIFO 30 oder von dem Empfangs-FIFO 34 zu dem Bus 16 einwirkt.
  • Die isochrone Daten-Pipe 20 führt für jedes übertragene Daten-Quadlet eine vorbestimmte Anzahl von Instruktionen aus, um die Daten so zu manipulieren, wie dies notwendig ist. Diese Instruktionen können auf das isochrone Datenblock-Paket einwirken. Beim Senden von Daten, die an die Busstruktur 58 ausgegeben werden sollen, ist der von der isochronen Daten-Pipe 20 ausgegebene Datenstrom sowohl von dem der isochronen Daten-Pipe 20 zugeführten Datenstrom als auch von den Manipulationen, die von der isochronen Daten-Pipe 20 an den Daten vorgenommen werden, abhängig. Wenn Daten von der Busstruktur 58 empfangen werden, ist der von der isochronen Daten-Pipe 20 an den Bus 16 ausgegebene Datenstrom dementsprechend von dem der isochronen Daten-Pipe 20 zugeführten Datenstrom und von den Manipulationen, die von der isochronen Daten-Pipe 20 an den Daten vorgenommen werden, abhängig.
  • Die isochrone Daten-Pipe 20 unterstützt verschiedene Scheduling-Merkmale für das Starten und Stoppen von isochronen Datenübertragungen in Abhängigkeit von dem laufenden Betriebszustand der isochronen Daten-Pipe. Mit einer geeigneten Programmierung unterstützt die isochrone Daten-Pipe die isochronen Aufzeichnungs-Datenformate, wie sie in dem seriellen Sus-Protokoll-Standard SCSI-3 definiert sind. Dieses Protokoll definiert, wie ein isochroner Datenstrom zu etikettieren ist, wenn er aufgezeichnet wird, so daß er bei der Wiedergabe präzise wiederhergestellt werden kann. Die isochrone Daten-Pipe ist eine programmierbare Datenbearbeitungsmaschine in dem isochronen Datenpfad. Mit geeigneter Pro grammierung implementiert diese Maschine die isochronen Aufzeichnungsformate und besitzt darüber hinaus die Fähigkeit, die Daten zu filtern, indem sie Quadlets löscht oder spezifische Operationen an jedem Ouadlet ausführt, das zu der oder von der Busstruktur 58 übertragen wird.
  • Das FIFO-Interface sowohl für die isochrone Daten-Pipe 20 als auch für die asynchrone Daten-Pipe 26 ist direkt mit dem FIFO 30 bzw. 32 verbunden. Das FIFO 30 ist speziell für den Datenpfad bestimmt, der von der isochronen Daten-Pipe 20 gesteuert wird. Das FIFO 32 ist speziell für den Datenpfad bestimmt, der von der asynchronen Daten-Pipe 26 gesteuert wird. Das Verknüpfungs-Interface für die isochrone Daten-Pipe 20 und Verknüpfungs-Interface für die asynchrone Daten-Pipe 26 sind beide über den Multiplexer 40 und den Demultiplexer 42 mit dem Verknüpfungskern 44 verbunden. Die Daten, die von der isochronen Daten-Pipe 20 und der asynchronen Daten-Pipe 26 dem Verknüpfungskern 44 präsentiert werden, liegen in dem von der Verknüpfungskern-Funktion geforderten Format vor. Sowohl die isochrone Daten-Pipe 20 als auch die asynchrone Daten-Pipe 26 erwarten, daß die von dem Verknüpfungskern 44 kommenden Daten das durch die Verknüpfungskern-Spezifikation definierte Format haben. Falls das System zusätzliche logische Blöcke enthält, ist jeder logische Block über den Multiplexer 40 und den Demultiplexer 42 mit dem Verknüpfungskern 44 verbunden. Ein System kann beispielsweise mehrere asynchrone Daten-Pipes enthalten. In einem System mit mehreren asynchronen Daten-Pipes ist jede der asynchronen Daten-Pipes über das FIFO 32 mit dem Multiplexer 40 verbunden. In einem solchen System ist zwischen den asynchronen Daten-Pipes und dem FIFO 32 ein zusätzlicher Multiplexer vorgesehen, um Datenpakete in das FIFO 32 zu multiplexen.
  • Wenn Daten aus der isochronen Daten-Pipe 20 geleitet werden, erkennt der Multiplexer 40, wenn Daten aus der isochronen Daten-Pipe verfügbar sind, und der Multiplexer 40 sendet für jeden isochronem Zyklus pro Kanal ein Datenpaket. Die von dem Verknüpfungskern 44 zu der isochronen Daten-Pipe 20 und der asynchronen Daten-Pipe 26 gesendeten Daten werden durch das FIFO 34 und den Multiplexer 42 umgeleitet. Der Demultiplexer 42 ändert keine Information, wenn er Pakete von dem Verknüpfungskern 44 zu dem geeigneten Exemplar der isochronen Daten-Pipe 20 oder der asynchronen Daten-Pipe 26 umleitet. Jede von dem Verknüpfungskern erzeugte Information wird zu dem logischen Ziel-Block gesendet. Die isochrone Daten-Pipe 20 und die asynchrone Daten-Pipe 26 nehmen an den Daten aus dem Verknüpfungskern 44 jede erforderliche Manipulation vor, bevor diese Daten zu einer der Applikationen 12 und 14 übertragen werden, wobei diese Manipulation das Abtrennen der Header-Information umfassen kann, die von dem Protokoll für die Busstruktur 58 benötigt wird. Für abgehende Daten bereiten sowohl die isochrone Daten-Pipe 20 als auch die asynchrone Daten-Pipe 26 die Daten aus der Applikation so vor, daß sie die passende Form haben, wie sie von dem Verknüpfungskern 44 benötigt wird. Sowohl die isochrone Daten-Pipe 20 als auch die asynchrone Daten-Pipe 26 erzeugen die geeignete Header-Information und betten diese in die Daten aus der Applikation ein, bevor die Daten über den Multiplexer 40 zu dem Verknüpfungskern 44 gesendet werden.
  • Sowohl für die isochrone Daten-Pipe 20 als auch für die asynchrone Daten-Pipe 26 erzeugt und konsumiert das Verknüpfungs-Interface Daten in einem Format, das mit den Forderungen der Funktion des Verknüpfungskerns 44 kompatibel ist. Während einer Datensendeoperation erzeugt die isochrone Daten-Pipe 20 die für die Busstruktur erforderliche, spezifische Header-Information und bettet sie in die Daten aus der Applikation ein, wie dies von dem Verknüpfungskern 44 gefordert wird. Um während einer Datenempfangsoperation Daten von dem Verknüpfungskern 44 entweder zu der isochronen Daten-Pipe 20 oder zu der asynchronen Daten-Pipe 26 bewegen zu können, akzeptieren sowohl die isochrone Daten-Pipe 20 als auch die asynchrone Daten-Pipe 26 diese Daten in dem von dem Verknüpfungskern 44 gelieferten Format. Mit anderen Worten, es ist keine Manipulation der Daten erforderlich, um Daten aus dem Verknüpfungskern 44 zu der isochronen Daten-Pipe 20 oder der asynchronen Daten-Pipe 26 zu übertragen.
  • Wenn innerhalb eines Systems nur ein logischer Block enthalten ist, kann dieser logische Block direkt mit dem Verknüpfungskern 44 verbunden sein. Wenn mehrere logische Blöcke innerhalb eines Systems vorhanden sind, besitzt das System einen geeigneten Multiplexer 40 und einen geeigneten Demultiplexer 42 zwischen den logischen Blöcken und dem Verknüpfungskern 44. Der Multiplexer 40 ist dafür verantwortlich, die Daten an den Verknüpfungs-Interfaces der mehreren logischen Blöcke zu übernehmen und diese Daten auf einer Basis Paket für Paket über den Verknüpfungskern 44 und auf die Busstruktur 58 zu multiplexen. Diese Information ist applikationsspezifisch und wird zu der Busstruktur in einer Priorität umgeleitet, die durch die Übertragungsoperation festgelegt ist. Jedes isochrone Datenpaket wird von dem Multiplexer 40 während seiner passenden Zeitperiode gesendet. Der Demultiplexer 42 benutzt den Wert in dem Transaktionscode und die Kanalnummernfelder jedes von der Busstruktur 58 empfangenen Pakets, um das Paket zu dem passenden logischen Block 20 oder 26 umzuleiten. Wenn nicht mehr als eine isochrone Daten-Pipe 20 und eine asynchrone Daten-Pipe 26 vorhanden ist, ist der Transaktionscode das einzige, was für die richtige Umlenkung des Pakets benötigt wird. Der Demultiplexer 42 liest zuerst den Transaktionscode aus, um festzustellen, ob das Paket aus asynchronen Daten besteht und zu einer asynchronen Daten-Pipe gelenkt werden sollte. Falls nicht mehr als eine asynchrone Daten-Pipe in dem System vorhanden ist, benutzt der Demultiplexer 42 dann den Wert in dem Transaktions-Label des asynchronen Antwort-Paket-Headers, um das Paket zu der passenden asynchronen Daten-Pipe umzulenken.
  • Die isochrone Daten-Pipe der vorliegenden Erfindung bildet einen bidirektionalen Datenpfad zwischen einem entsprechenden FIFO und dem Verknüpfungskern 44. Mit geeigneter Programmierung unterstützt die isochrone Daten-Pipe das isochrone Datenaufzeichnungsformat, wie es in dem seriellen Bus-Protokoll-(SBP)-Standard SCSI-3 dokumentiert ist, und ermöglicht eine programmierbare Manipulation der Daten in dem isochronen Strom.
  • Wenn Daten durch das entsprechende FIFO 30 zu dem Verknüpfungskern 44 übertragen oder wenn Daten von dem Demultipiexer 42 empfangen werden, wirkt die isochrone Daten-Pipe 20 unabhängig auf jedes Daten-Quadlet ein. Die isochrone Daten-Pipe 20 führt an jedem Quadlet eine programmierbare Anzahl von Instruktionen aus, um die Daten so zu manipulieren, wie dies notwendig ist. Die möglichen Instruktionen, die von der isochronen Daten-Pipe 20 ausgeführt werden können, sind in einem Instruktionssatz enthalten, der weiter unten im Detail erläutert wird. Die isochrone Daten-Pipe 20 enthält auch eine unabhängige dedizierte Registerdatei 24, die ebenfalls weiter unten im Detail erläutert wird.
  • Wenn ein Bus-Reset stattfindet, während die isochrone Daten-Pipe 20 Daten überträgt, wird die Operation der isochronen Daten-Pipe 20 exakt dort wiederaufgenommen, wo sie eingestellt wurde, wenn das nächste Zyklus-Startpaket auf der Busstruktur 48 erscheint. Obwohl die Verarbeitung von isochronen Daten unverzüglich wiederaufgenommen wird, ordnet die eingebettete Applikation Kanalnummern, Bandbreite und irgendwelche Verbindungen, die vor dem Bus-Reset in Benutzung waren, neu zu, wie dies in dem IEEE-1394-Standard und dem IEC-Standard für Consumergeräte definiert ist.
  • Die isochrone Daten-Pipe 20 wird von einer unabhängigen dedizierten Registerdatei gesteuert, wie dies in 3 dargestellt ist. Diese Registerdatei wird von der Ursprungs-Applikation programmiert und dient zur Erzeugung von Headern, Befehlen und Transaktionen, die für die Durchführung einer isochronen Datentransfer-Operation über die Busstruktur 58 benötigt werden. Die Registerdatei 80 enthält 120 Datenbytes, die hexadezimal von 0 bis 77 numeriert sind. In 3 ist die Registerdatei 80 in einem Tabellenformat mit 30 horizontalen Zeilen mit jeweils vier Datenbytes dargestellt. 3 enthält eine Offset-Spalte 82, um den Versatz des Anfangs-Bytes in jeder Zeile gegenüber der Adresse des Anfangs der Registerdatei 80 darzustellen. Eine Lese-/Schreib-Spalte 84 ist ebenfalls enthalten, um darzustellen, ob aus den Feldern in jeder Spalte ausgelesen und in sie eingeschrieben werden kann oder nur aus ihnen ausgelesen werden kann.
  • Die Zykluszeit cycle_time ist ein 20-Bit-Feld innerhalb der Bytes 0 bis 2 der Registerdatei 80. Die Zykluszeit kann ausgelesen und beschrieben werden. Wenn das weiter unten näher erläuterte Steuer-Ereignis-Feld den Zykluszahlwert enthält, speichert das Zykluszeit-Feld die Zykluszeit, zu der die isochrone Daten-Pipe 20 die Übertragung von isochronen Daten startet oder stoppt.
  • Das Steuerfeld ist ein 32-Bit-Feld innerhalb der Bytes 4 bis 7 der Registerdatei 80. Das Steuerfeld kann ausgelesen und beschrieben werden. Das Steuerfeld enthält ein Ereignis-Feld, ein Ausgabe-Aktivierungs-Feld, ein Stopp-bei-Fehler-Feld, ein Sende-Aktivierungs-Feld und ein GO-Feld. Das Ereignis-Feld ist ein 4-Bit-Feld in den Bits 28 bis 31 des Steuerregisters. Der Wert in dem Ereignis-Feld definiert das Bus-Ereignis für die isochrone Daten-Pipe 20, das als Trigger benutzt werden soll. Wenn dieses Bus-Ereignis eintritt, überträgt die isochrone Daten-Pipe den Wert, der in dem wartenden Kanalmasken-Register pending_ch_mask gespeichert ist, zu dem laufenden Kanalmasken-Register_ch_mask. Das Ereignis-Feld ist für die möglichen Bus-Ereignisse so kodiert, wie dies in der folgenden Tabelle I dargestellt ist.
  • Tabelle I
    Figure 00120001
  • Deshalb startet oder stoppt die isochrone Daten-Pipe unverzüglich, wenn das Ereignis-Feld den Wert 0 hält. Wenn das Ereignis-Feld den Wert 1 hält, startet oder stoppt die isochrone Daten-Pipe in einem Zeitpunkt, der durch den Wert in dem Zykluszeit-Feld spezifiziert ist, wie dies oben diskutiert wurde.
  • Das Ausgabe-Aktivierungsfeld ist ein 4-Bit-Feld in den Bits 4 bis 7 des Steuerfelds. Wenn eines der Bits in dem Ausgabe-Aktivierungsfeld auf hohen logischen Spannungspegel gesetzt ist, stellt der entsprechende Kanal für den direkten Speicherzugriff (DMA-Kanal) sicher, daß das Vorfüll-FIFO voll gehalten wird und die isochrone Daten-Pipe 20 den Ausgabebefehl jedesmal an den Steuerspeicher absendet, wenn es in dem abgehenden FIFO 30 ein leeres Quadlet gibt.
  • Das Stopp-bei-Fehler-Feld ist ein 1-Bit-Feld in dem Bit 3 des Steuerfelds. Wenn das Stopp-bei-Fehler-Bit auf einen hohen logischen Pegelwert gesetzt ist, stoppt die isochrone Daten-Pipe die laufende Operation bei dem ersten angetroffenen Fehler, indem der Wert in dem Kanal-Masken-Register auf niedrigen logischen Spannungspegel gesetzt wird. Zu den möglichen Fehlern beim Senden von Daten gehört ein FIFO-Unterlauf oder ein fehlendes Zyklusstart-Paket. Zu den möglichen Fehlern beim Empfang von Daten gehört ein FIFO-Überlauf, ein fehlendes Zyklusstart-Paket, ein Daten-CRC-Fehler, ein Fehler im Paketformat oder ein Fehler aufgrund eines fehlenden Kanals.
  • Das Sende-Aktivierungs-Feld ist ein 1-Bit-Feld in dem Bit 1 des Steuerfelds. Wenn das Sende-Aktivierungs-Bit auf hohen logischen Spannungspegel gesetzt ist, beginnt die isochrone Daten-Pipe 20 mit der Ausführung des Ausgabesteuer-Speicherprogramms. Wenn das GO-Bit einen niedrigen logischen Spannungspegel hat oder das Ausgabe-Steuerspeicherprogramm einen Rückkehrbefehl ausführt, wird das Sende-Aktivierungs-Bit gelöscht.
  • Das GO-Feld ist ein 1-Bit-Feld in dem Bit 0 des Steuerfelds. Die Applikation setzt das GO-Bit auf hohen logischen Spannungspegel, um die isochrone Daten-Pipe in die Lage zu versetzen, ein Ereignis zu überwachen. Wenn die spezifizierte Ereignis-Bedingung erfüllt ist, überträgt die isochrone Daten-Pipe 20 die Inhalte des wartenden Kanal-Masken-Registers in das laufende Kanal-Masken-Register.
  • Das Status-Feld ist ein 32-Bit-Feld innerhalb der Bytes 8 bis B der Registerdatei 80. Das Status-Feld kann ausgelesen und beschrieben werden. Das Status-Feld enthält Status-Informationen, die den laufenden Zustand der isochronen Daten-Pipe 20 melden. Die Bits 0 bis 7 des Status-Felds entsprechen den Bits 0 bis 7 des Steuerfelds und enthalten ein Ausgabe-Feld, ein Stopp-bei-Fehler-Feld, ein Sende-Aktivierungs-Feld und ein aktives Feld. Der Wert dieser Felder in dem Status-Register zeigt den laufenden Betriebszustand der isochronen Daten-Pipe 20 an. Die Bits 8 bis 27 des Status-Felds sind reserviert. Innerhalb des Status-Felds ist das aktive Feld ein 1-Bit-Feld in dem Bit 0 des Status-Felds, das anzeigt, ob die isochrone Daten-Pipe aktiv ist oder nicht. Insbesondere wenn das aktive Bit einen hohen logischen Spannungspegel hat, ist die isochrone Daten-Pipe laufend aktiv und überträgt Daten. Wenn das aktive Bit einen niedrigen logischen Spannungspegel hat, ist die isochrone Daten-Pipe nicht laufend aktiv. Das Fehlerfeld ist ein 4-Bit-Feld in den Bits 28 bis 31 des Status-Felds. Wenn die isochrone Daten-Pipe 20 ihren Betrieb aufgrund eines Fehlers anhält, enthält das Fehlerfeld einen Wert, der den Fehlerzustand anzeigt. Das Fehlerfeld ist nur gültig, wenn das aktive Bit einen niedrigen logischen Spannungspegel hat. Die möglichen Werte für das Fehlerfeld und den Fehler, dem sie entsprechen, sind in der folgenden Tabelle II aufgelistet.
  • Tabelle II
    Figure 00140001
  • Das wartende hohe Kanal-Masken-Feld pending_ch_mask_hi ist ein 4-Byte-Feld in den Bytes 20 bis 23 der Registerdatei 80. Das wartende niedrige Kanal-Masken-Feld pending_ch_mask_lo ist ein 4-Byte-Feld in den Bits 24 bis 27 der Registerdatei 80. Die beiden wartenden Kanal-Masken-Felder pending_ch_mask_hi und pending_ch_mask_lo bilden zusammen ein 8-Byte-Feld, das die Maske von zu empfangenden isochronen Kanalnummern für die isochrone Daten-Pipe 20 enthält. Die isochrone Daten-Pipe 20 überträgt die Inhalte dieses Felds zu einem Kanal-Masken-Register, wenn das programmierte Trigger-Ereignis auftritt. Die Bit-Zuordnung des wartenden Kanal-Masken-Felds ist die gleiche wie die Bit-Zuordnung des Register der verfügbaren Kanäle, die in Kapitel 8 des IEEE-1394-Standards definiert sind.
  • Das laufende hohe Kanal-Masken-Feld ch_mask_hi ist ein 4-Byte-Feld in den Bytes 28 bis 2B der Registerdatei 80. Die beiden laufenden Kanal-Masken-Felder ch_mask_hi und ch_mask_lo bilden zusammen ein 8-Byte-Feld, das die Kanalmaske enthält, die sich im laufenden Betrieb befindet, wobei jedes Bit innerhalb der laufenden Kanal-Masken-Felder einen isochronen Kanal repräsentiert. Das Kanal-Masken-Feld wird nur dann aus dem wartenden Kanal-Masken-Feld geladen, wenn ein Trigger-Ereignis stattfindet. Die isochrone Daten-Pipe 20 ignoriert empfangene isochrone Kanalnummern, für die das entsprechende Bit in dem laufenden Kanal-Masken-Feld auf hohen logischen Spannungspegel gesetzt ist.
  • Das Steuerspeicher-Ausgabe-Feld CS_output ist ein 1-Byte-Feld in dem Byte 34 der Registerdatei 80. Das Steuerspeicher-Ausgabe-Feld CS_output enthält die Steuerspeicher-Adresse innerhalb des Steuerspeiches, zu der die isochrone Daten-Pipe 20 jedesmal verzweigt, wenn sich in dem ausgehenden FIFO ein leeres Quadlet befindet und die isochrone Daten-Pipe 20 nicht laufend ein isochrones Daten-Paket empfängt. Der Steuerspeicher enthält Instruktionen, die von der isochronen Daten-Pipe bei der Durchführung ihrer Operationen an einem Datenstrom benutzt werden.
  • Das Steuerspeicher-Zyklusstart-Adressenfeld CS_addr_CS ist ein 1-Byte-Feld in dem Byte 37 der Registerdatei 80. Das Steuerspeicher-Adressenfeld CS_addr_CS enthält die Steuerspeicher-Adresse, zu der die isochrone Daten-Pipe verzweigt, wenn das Zyklus-Start-Paket empfangen wird. Das erste Quadlet, das dem Steuerspeicherprogramm zur Verfügung steht ist das erste Quadlet des Zyklus-Startpakets. Die Steuerspeicher-Adressenfelder CS_addr_0 bis CS_addr_63 sind jeweils 1-Byte-Felder in den Bytes 38 bis 77 der Registerdatei 80. Diese Felder enthalten die Steuerspeicher-Adresse, an der die isochrone Daten-Pipe verzweigen soll, wenn auf dem isochronen Kanal Daten empfangen werden, die der Bytenummer des Steuerspeicher-Adressenfelds entsprechen. So enthält z.B. das Steuerspeicher-Adressenfeld CS_addr_10 die Adresse in dem Steuerspeicher, an der die isochrone Daten-Pipe verzweigen soll, wenn auf dem isochronen Kanal mit der Nummer 10 Daten empfangen werden. Die isochrone Daten-Pipe ignoriert alle isochronen Kanäle, für die der entsprechende Wert in dem Steuerspeicher-Adressenfeld gleich FFh ist. Es ist zu beachten, daß das Steuerspeicher-Adressenfeld sich beim Senden von isochronen Daten in der gleichen Weise verhält wie beim Empfang.
  • Es gibt 64 potentielle isochrone Kanäle 0 bis 63. Die Steuerspeicher-Adressenfelder CS_addr_0 bis CS_addr_63 entsprechen jeweils einem isochronen Kanal und enthalten die Adresse in dem Steuerspeicher, an der die Befehle für diesen isochronen Kanal beginnen. Wenn die isochrone Daten-Pipe 20 Daten auf einem speziellen isochronen Kanal empfängt, verzweigt deshalb die isochrone Daten-Pipe 20 zu der Adresse, die in dem entsprechenden Steuerspeicher-Adressenfeld enthalten ist, um die Befehle für die Behandlung der Daten für diesen Kanal zu gewinnen. Isochrone Kanäle, für die der entsprechende Wert in dem Steuerspeicher-Adressenfeld gleich FFh ist, werden ignoriert.
  • Ein Strom von isochronen Daten wird aus einem oder mehreren isochronen Kanälen gebildet. Die isochrone Daten-Pipe 20 empfängt isochrone Kanäle, für die das entsprechende Bit in dem laufenden Kanal-Masken-Feld auf hohen logischen Spannungspegel gesetzt ist. Die isochrone Daten-Pipe sendet isochrone Daten nach Maßgabe des Steuerspeicherprogramms, beginnend an der Steuerspeicher-Adresse, auf die der Wert in dem Steuerspeicher-Ausgaberegister CS_output zeigt. Wenn z.B. die isochronen Kanäle 3, 4 und 5 in der Busstruktur 58 existieren und die Applikation wünscht, daß die isochrone Daten-Pipe 20 die Kanäle 3 und 5 zu einem einzigen Strom kombiniert, ohne irgendwelche Manipulationen an den in diesen isochronen Kanälen enthaltenden Daten vorzunehmen, programmiert die Applikation z.B. in den Steuerspeicher-Adressenfeldern CS_addr_3 und CS_addr_5 einen Wert "10h". An der Steuerspeicher-Adresse "10h" lädt die Applikation dann eine Befehls-Sequenz, wie sie in der Tabelle III dargestellt ist.
  • Tabelle III
    Figure 00160001
  • Die Applikation programmiert dann einen Wert "28h" in die wartende Kanal-Maske unf schreibt dann einen Wert "i" in das Steuerfeld. Dieser Wert in dem Steuerfeld zeigt ein Ereignis an, bei dem keine DMA-Kanäle unmittelbar für die Ausgabe programmiert sind. Dies hat zur Folge, daß die isochrone Daten-Pipe 20 den Wert des wartenden Kanal-Masken-Felds unverzüglich in das laufende Kanal-Masken-Feld verschiebt. Da die Bits 3 und 5 nun in dem laufenden Kanal-Masken-Feld auf hohen logischen Spannungspegel gesetzt sind, beginnt die isochrone Daten-Pipe 20 mit der Verarbeitung der isochronen Kanäle 3 und 5 entsprechend dem an der Adresse "10h" beginnenden Steuerspeicherprogramm. Es ist zu beachten, daß in diesem Beispiel beide Steuerspeicher-Felder CS_addr_3 und CS_addr_5 den Wert "10h" enthalten, so daß die Daten für die beiden isochronen Kanäle 3 und 5 nach der gleichen Steuerspeicherbefehlssequenz verarbeitet werden, beginnend an der Adresse "10h".
  • Das in der Tabelle III dargestellte Steuerspeicherprogramm ist ein Programm, das die Daten aus dem Empfangs-FIFO 34 in den DMA-Kanal 0 auf dem Bus 16 verschiebt. Die isochrone Daten-Pipe 20 ignoriert alle Daten, die auf dem isochronen Kanal 4 empfangen werden, weil das Bit 4 in dem laufenden Kanal-Masken-Feld nicht auf hohen logischen Spannungspegel gesetzt ist.
  • In der letzten Zeile des in Tabelle III dargestellten Steuerspeicherprogramms ist ein Rückkehrbefehl enthalten. Der Rückkehr-Befehl bewirkt in allen Fällen, daß die isochrone Daten-Pipe 20 die gleichen Aufgaben ausführt. Und zwar dekrementiert die isochrone Daten-Pipe den Wert des Stapelzeigers und übergibt an den Befehl innerhalb des Stapels, auf den der Stapelzeiger laufend zeigt. Falls der Stapelzeiger gleich 0 ist, wenn ein Rückkehrbefehl ausgeführt wird, hält die isochrone Daten-Pipe 20 die Operation an, bis der nächste aktivierte isochrone Kanal empfangen wird oder ein Zyklusstart-Paket empfangen wird. Falls die isochrone Daten-Pipe 20 ein Ausgabe-Steuerspeicherprogramm ausführt, bewirkt ein Rückkehrbefehl, daß die isochrone Daten-Pipe die Operation bei einem Befehl wieder aufnimmt, bei dem das Ausgabeprogramm durch das empfangene isochrone Paket unterbrochen wurde.
  • Die isochrone Daten-Pipe ist in der Praxis ein programmierbarer Sequencer, der so programmiert werden kann, daß er Operationen an dem empfangenen isochronen Datenstrom ausführen kann. Der isochrone Daten-Pipe-Sequencer enthält eine Registerdatei, wie sie in 4 dargestellt ist. Innerhalb der Registerdatei 90 ist das Direkt-Wert-Register IMM ein 34-Bit-Register mit einem Registercode "0" das nur ein Source-Register sein kann. Das Direkt-Wert-Register IMM gibt an, daß das 34-Bit-Direkt-Feld des Befehls die Source-Daten für die gegebene Operation enthält.
  • Das Bus-Eingabe-Register BUS_IN ist ein 32-Bit-Register mit dem Registercode "1", das nur ein Source-Register sein kann. Das Zugreifen auf das Bus-Eingabe-Register BUS_IN als Quelle einer Operation taktet ein Daten-Quadlet aus dem Empfangs-FIFO 34 durch die isochrone Daten-Pipe 20. Nachfolgende Zugriffe auf das Bus-Eingabe-Register BUS_IN greifen auf nachfolgende Daten-Quadlets in dem Eingangs-Datenstrom zu.
  • Das Bus-Ausgabe-Register BUS_OUT ist ein 34-Bit-Register mit dem Registercode "2", das nur ein Ziel-Register sein kann. Das Zugreifen auf das Bus-Ausgabe-Register BUS_OUT als Ziel einer Operation taktet ein Daten-Quadlet durch die isochrone Daten-Pipe 20 zu dem abgehenden isochronen FIFO 30. Nachfolgende Zugriffe auf das Bus-Ausgabe-Register BUS_OUT takten nachfolgende Daten-Ouadlets in den Ausgangs-Datenstrom.
  • Die Datenregister D0 bis D7 sind jeweils 34-Bit-Register mit dem Registercode "4", "5", "6", "7", "8", "9", "A" bzw. "B", die entweder Source- oder Zielregister sein können. Die Datenregister D0 bis D7 können für eine beliebige Operation als Source- oder Zielregister benutzt werden.
  • Die Daten-Interface-Register DATA_0 bis DATA_3 sind jeweils 32-Bit-Register mit einem Registercode "10", "11 ", "12" bzw. "13", die entweder Source- oder Zielregister sein können. Jedes der Daten-Interface-Register DATA_0 bis DATA_3 greift auf einen anderen DMA-Kanal zu. Die Verwendung dieser Register muß mit der Programmierung des Ausgabe-Aktivierungs-Felds DMA_out_en konsistent sein. Die isochrone Daten-Pipe 20 implementiert einen Stapel, der aus einer linearen Liste von acht 1-Byte-Registern besteht. Auf die Stapel-Register wird nur während eines Befehls zur Verzweigung zu einer Subroutine und einem Rückkehrbefehl zugegriffen. In dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung haben die Stapel-Register S0 bis S7 jeweils eine entsprechende Registeradresse 0 bis 7. Alternativ variiert die tatsächliche Zahl der Stapel-Register in Abhängigkeit von der spezifischen Implementierung. Wenn das Steuerspeicherprogramm geladen wird, wird der Stapelzeiger automatisch auf den Wert 0 initialisiert, so daß er auf das entsprechende Stapel-Register S0 zeigt.
  • Wenn die isochrone Daten-Pipe 20 zu einer Subroutine verzweigt, dekrementiert die isochrone Daten-Pipe 20 den Stapelzeiger, speichert die Adresse des nächsten Steuerspeicherbefehls in dem laufenden Stapel-Register, inkrementiert den Wert des Stapelzeigers, verzweigt dann zu dem in dem niedrigsten Byte des Source-Felds enthaltenen Steuerspeicherbefehl. Wenn die isochrone Daten-Pipe 20 einen Rückkehrbefehl ausführt, dekrementiert sie den Stapelzeiger, dann verzweigt die isochrone Daten-Pipe 20 zu dem in dem laufenden Stapel-Register enthaltenen Steuerspeicherbefehl. Falls der Stapelzeiger dekrementiert wird, wenn er den Wert 0 enthält, bleibt der Wert des Stapelzeigers auf 0, und die isochrone Daten-Pipe 20 hält die Operation an, bis sie ein isochrones Datenpaket oder ein Zyklusstart-Paket empfängt. Wenn die isochrone Daten-Pipe ein Ausgabe-Steuerspeicherprogramm ausführt und ein Zyklusstart-Paket oder ein aktivierter isochroner Kanal empfangen wird, unterbricht die isochrone Daten-Pipe 20 die Ausführung des Ausgabe-Steuerspeicherprogramms, sichert die Adresse des laufenden Befehls in dem Stapel, dekrementiert den Stapelzeiger und übergibt dann an die passende Stelle, um das empfangene Paket zu bearbeiten.
  • Jeder isochrone Steuerspeicherbefehl enthält ein OpCode-Feld, ein Source-Feld, ein Ziel-Feld, ein Direkt-Wert-Feld, ein Direkt-Feld und ein reserviertes Feld. Das OpCode-Feld ist ein 6-Bit-Feld, das eine auszuführende Operation beschreibt, wie dies unten anhand von 5 erläutert wird. Das Source-Feld src ist ein 4-Bit-Feld, das ein Register oder einen Direkt-Wert bezeichnet, der den Source-Wert für die spezifizierte Operation enthält. Das Ziel-Feld dest ist ein 4-Bit-Feld, das ein Zielregister für die spezifizierte Operation angibt. Das Direkt-Wert-Feld imm_val ist ein 1-Bit-Feld, das, wenn es auf hohen logischen Spannungspegel gesetzt wird, anzeigt, daß einer der Operanden in dem Direkt-Feld enthalten ist. Das Direkt-Feld imm ist ein 34-Bit-Feld, das einen Direkt-Wert spezifiziert, der für eine Operation zu benutzen ist, wenn das Direkt-Wert-Feld imm_val auf hohen logischen Spannungspegel gesetzt ist. In dem bevorzugten Ausführungsbeispiel der Erfindung enthält das reservierte Feld 13 Bits, die für die Verwendung bei anderen Ausführungsformen der isochronen Daten-Pipe 20 reserviert sind.
  • Die Operations-Codes, die von dem isochronen Daten-Pipe-Sequencer während der Behandlung eines Datenstroms implementiert werden und in dem OpCode-Feld enthalten sein können, sind unten in der Tabelle IV aufgelistet. Die isochrone Daten-Pipe 20 speichert die Ergebnisse für irgendwelche dieser Operationen in einem Register, das ein Ziel sein kann, einschließlich der Daten-Register D0 bis D7, des abgehenden isochronen FIFO 30 und eines als Ziel konfigurierten DMA-Kanals, wie dies in 4 dargestellt ist.
  • Tabelle IV
    Figure 00190001
  • Tabelle IV (Fortsetzung)
    Figure 00200001
  • Für die meisten der in der Tabelle IV aufgelisteten Operationen sind dort zwei mnemotechnische Instruktionen enthalten. Die mnemotechnische Instruktion, die ein "I" enthält, gibt an, daß die Operation unter Verwendung des Direkt-Werts durchzuführen ist. Die mnemotechnische Instruktion, die kein "I" enthält, gibt an, daß die Operation zwischen den Werten in den Source- und Ziel-Registern auszuführen ist.
  • Wenn eine MOVE-Operation ausgeführt wird, wird der Wert in dem Register, das in dem Source-Feld src spezifiziert ist, in das Register verschoben, das in dem Ziel-Feld dest spezifiziert ist. Falls das in dem Source-Feld src spezifizierte Register ein 34-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 32-Bit-Register ist, gehen die zwei obersten Bits verloren. Wenn das in dem Source-Feld src spezifizierte Register ein 32-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 34-Bit-Register ist, werden die beiden oberen Bits auf niedrigen logischen Spannungspegel gesetzt.
  • Wenn eine Mehrfach-MOVE-Operation ausgeführt wird, wird eine durch einen Zählwert spezifizierte Anzahl von Daten-Quadlets aus dem in dem Source-Feld src spezifizierten Register in das in dem Ziel-Feld dest spezifizierte Register verschoben. Der Zählwert ist in dem Register gespeichert, das in dem Direkt-Feld des Befehls festgelegt ist. Für die Mehrfach-MOVE-Operation ist das in dem Source-Feld src spezifizierte Register vorzugsweise eines der Daten-Interface-Register DATA_0 bis DATA_3, die auf einen DMA-Kanal zugreifen, oder das Bus-Eingabe-Register BUS_IN. Für diese Operation ist das in dem Ziel-Feld dest spezifizierte Register vorzugsweise eines der Daten-Interface-Register DATA_0 bis DATA_3, die auf einen DMA-Kanal zugreifen, oder das Bus-Ausgabe-Register BUS-OUT.
  • Während einer UND-Operation wird an den Werten in dem Source-Feld src und dem Ziel-Feld dest eine logische UND-Verknüpfung ausgeführt, und das Ergebnis wird in dem in dem Ziel-Feld dest des spezifizierten Registers gespeichert. Die ANDI-Form dieses Befehls benutzt den Wert in dem Direkt-Feld anstelle des Werts in dem Ziel-Feld als einen der Operanden und speichert das Ergebnis in dem in dem Ziel-Feld dest spezifizierten Register. Falls das in dem Source-Feld src spezifizierte Register ein 34-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 32-Bit-Register ist, gehen die beiden oberen Bits verloren. Falls das in dem Source-Feld src spezifizierte Register ein 32-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 34-Bit-Register ist, werden die beiden oberen Bits auf niedrigen logischen Spannungspegel gesetzt. Falls sowohl das in dem Source-Feld src spezifizierte Register als auch das in dem Ziel-Feld dest spezifizierte Register 34-Bit-Register sind, wird die UND-Operation an allen 34 Bits durchgeführt.
  • Während einer ODER-Operation wird eine logische ODER-Operation an den Werten in den Registern durchgeführt, die durch das Source-Feld src und das Ziel-Feld dest spezifiziert sind, und das Ergebnis wird in dem durch das Ziel-Feld dest spezifizierten Register gespeichert. Die ORI-Form dieses Befehls benutzt den Wert in dem Direkt-Feld anstelle des Werts in dem Ziel-Feld als einen der Operanden und speichert das Ergebnis in dem in dem Ziel-Feld lest spezifizierten Register. Falls das in dem Source-Feld src spezifizierte Register ein 34-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 32-Bit-Register ist, gehen die beiden oberen Bits verloren. Falls das in dem Source-Feld src spezifizierte Register ein 32-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 34-Bit-Register ist, werden die zwei oberen Bits beide auf niedrigen logischen Spannungspegel gesetzt. Wenn sowohl das in dem Source-Feld src spezifizierte Register als auch das in dem Ziel-Feld dest spezifizierte Register 34-Bit-Register sind, wird die ODER-Operation an allen 34 Bits ausgeführt.
  • Wenn eine SHIFT-Operation durchgeführt wird, wird der Wert in dem Zielregister dest um die Bitzahl verschoben, die durch den Wert in dem Source-Register src angegeben ist, und das Ergebnis wird in dem in dem durch das Ziel-Feld dest spezifizierten Register gespeichert. Ein positiver Verschiebungswert verschiebt den Wert in dem Ziel-Register nach rechts in Richtung auf das niedrigstwertige Bit, und zum Ausfüllen in den nach links verschobenen Bits, beginnend mit dem höchstwertigen Bit, werden Nullen verwendet. Ein negativer Verschiebungswert verschiebt den Wert in dem Ziel-Register nach links in Richtung auf das höchstwertige Bit, und zum Ausfüllen der verschobenen Bits nach rechts, beginnend mit dem niedrigstwertigen Bit, werden Nullen benutzt. Die SHIFTI-Form dieses Befehls verschiebt den Wert in dem Source-Register um die dem Direkt-Feld spezifizierte Bitzahl und speichert das Ergebnis in dem in dem Ziel-Feld spezifizierten Register. Falls das in dem Source-Feld src spezifizierte Register ein 34-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 32-Bit-Register ist, gehen die beiden oberen Bits verloren. Falls das in dem Source-Feld src spezifizierte Register ein 32-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 34-Bit-Register ist, werden die beiden oberen Bits auf niedrigen logischen Spannungspegel gesetzt. Wenn sowohl das in dem Source-Feld src spezifizierte Register als auch das in dem Ziel-Feld dest spezifizierte Register 34-Bit-Register sind, wird die SHIFT-Operation nur an den unteren 32 Bits vorgenommen.
  • Wenn eine CMP-Operation durchgeführt wird, wird der Wert in dem Source-Register src von dem Wert in dem Ziel-Register dest subtrahiert. Wenn das Ergebnis der CMP-Operation ein positiver Wert ist, wird das Z-Bit auf hohen logischen Spannungspegel gesetzt. Wenn das Ergebnis der CMP-Operation negativ oder gleich Null ist, wird das Z-Bit auf niedrigen logischen Spannungspegel gesetzt. Die Ergebnisse der CMP-Operation werden nirgendwo gespeichert. Die CMPI-Form dieses Befehls subtrahiert den Direkt-Wert von dem Wert in dem Source-Register src und setzt das Z-Bit entsprechend dem Ergebnis, wie oben spezifiziert. Dieser Befehl speichert das Ergebnis der Operation ebenfalls nicht.
  • Wenn eine ADD-Operation durchgeführt wird, wird der Wert in dem Source-Register src zu dem Wert in dem Ziel-Register dest addiert, und das Ergebnis wird in dem Ziel-Register dest gespeichert. Die ADDI-Form dieses Befehls addiert den Wert in dem Source-Register src zu dem Direkt-Wert und speichert das Ergebnis in dem Ziel-Register dest. Falls das in dem Source-Feld src spezifizierte Register ein 34-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 32-Bit-Register ist, gehen die beiden oberen Bits verloren. Wenn das in dem Source-Feld src spezifizierte Register ein 32-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 34-Bit-Register ist, werden die zwei oberen Bits beide auf niedrigen logischen Spannungspegel gesetzt. Wenn sowohl das in dem Source-Feld src spezifizierte Register als auch das in dem Ziel-Feld dest spezifizierte Register 34-Bit-Register sind, wird die ADD-Operation nur an den unteren 32 Bits vorgenommen.
  • Wenn eine SUB-Operation durchgeführt wird, wird der Wert in dem Ziel-Register dest von dem Wert in dem Source-Register src subtrahiert, und das Ergebnis wird in dem Ziel-Register dest gespeichert. Die SUBI-Form dieses Befehls subtrahiert den Direkt-Wert von dem Wert in dem Source-Register, und das Ergebnis wird in dem Ziel-Register dest gespeichert. Wenn das in dem Source-Feld src spezifizierte Register ein 34-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 32-Bit-Register ist, gehen die beiden oberen Bits verloren. Wenn das in dem Source-Feld src spezifizierte Register ein 32-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 34-Bit-Register ist, werden die zwei oberen Bits beide auf niedrigen logischen Spannungspegel gesetzt. Wenn sowohl das in dem Source-Feld src spezifizierte Register als auch das in dem Ziel-Feld dest spezifizierte Register 34-Bit-Register sind, wird die SUB-Operation nur an den unteren 32 Bits vorgenommen.
  • Wenn eine MULT-Operation durchgeführt wird, wird der Wert in dem Source-Register src mit dem Wert in dem Ziel-Register dest multipliziert, und das Ergebnis wird in dem Ziel-Register dest gespeichert. Die MULTI-Form dieses Befehls multipliziert den Direkt-Wert mit dem Wert in dem Source-Register src, und das Ergebnis wird in dem Ziel-Register dest gespeichert. Wenn das in dem Source-Feld src spezifizierte Register ein 34-Bit-Register ist und das in dem Ziel-Feld dest spezifizierte Register ein 32-Bit-Register ist, gehen die beiden oberen Bits verloren. Wenn das in dem Source-Feld src spezifizierte Register ein 32-Bit-Register und das in dem Ziel-Feld dest spezifizierte Register ein 34-Bit-Register ist, werden die beiden oberen Bits auf niedrigen logischen Spannungspegel gesetzt. Wenn sowohl das in dem Source-Feld src spezifizierte Register als auch das in dem Ziel-Feld dest spezifizierte Register 34-Bit-Register sind, wird die MULT-Operation nur an den unteren 32 Bits vorgenommen.
  • Wenn eine BRANCH-Operation (Verzweigungs-Operation) durchgeführt wird, verzweigt die isochrone Daten-Pipe 20 zu der in dem untersten Byte des Source-Felds src enthaltenen Steuerspeicher-Adresse. Das Source-Feld src kann ein Register oder einen Direktwert spezifizieren.
  • Wenn eine BRANCH-ON-ZERO-Operation (Verzweigung-auf-Null-Operation) durchgeführt wird, verzweigt die isochrone Daten-Pipe 20 zu der in dem untersten Byte des Source-Felds src enthaltenen Steuerspeicher-Adresse, falls das Ergebnis des letzten Rechen- oder Bewegungs-Steuerspeicherbefehls gleich Null war. Das Source-Feld src kann ein Register oder einen Direktwert spezifizieren.
  • Wenn eine BRANCH-ON-NOT-ZERO-Operation (Verzweigung-auf-nicht-Null-Operation) durchgeführt wird, verzweigt die isochrone Daten-Pipe 20 zu der in dem untersten Byte des Source-Felds src enthaltenen Steuerspeicher-Adresse, falls das Ergebnis der letzten Rechen- oder Bewegungs-Steuerspeicherbefehls nicht gleich Null war. Das Source-Feld kann ein Register oder einen Direktwert spezifizieren.
  • Wenn eine BSR-Operation durchgeführt wird, wird die Adresse des nächsten Steuerspeicherbefehls auf den Stapel geschoben, und die isochrone Daten-Pipe 20 verzweigt zu der in dem untersten Byte des Source-Felds src enthaltenen Steuerspeicher-Adresse. Das Source-Feld src kann ein Register oder einen Direktwert spezifizieren.
  • Wenn eine BSR-ON-ZERO-Operation durchgeführt wird, falls das Ergebnis des letzten Rechen- oder Bewegungs-Steuerspeicherbefehls gleich Null war, wird die Adresse des nächsten Steuerspeicherbefehls auf den Stapel geschoben, und die isochrone Daten-Pipe 20 verzweigt zu der in dem untersten Byte des Source-Felds src enthaltenen Steuerspeicher-Adresse. Das Source-Feld src kann ein Register oder einen Direktwert spezifizieren.
  • Wenn eine BSR-ON-NOT-ZERO-Operation durchgeführt wird, falls das Ergebnis des letzten Rechen- oder Bewegungs-Steuerspeicherbefehls nicht gleich Null war, wird die Adresse des nächsten Steuerspeicherbefehls auf den Stapel geschoben, und die isochrone Daten- Pipe 20 verzweigt zu der in dem untersten Byte des Source-Felds src enthaltenen Steuerspeicher-Adresse. Das Source-Feld src kann ein Register oder einen Direktwert spezifizieren.
  • Wenn eine RETURN-Operation durchgeführt wird, wird die letzte Steuerspeicher-Adresse aus dem Stapel herausgeholt, und die isochrone Daten-Pipe 20 verzweigt zu dieser Adresse.
  • Das in dem seriellen Bus-Protokoll definierte isochrone Aufzeichnungsformat definiert ein Standard-Format zum Aufzeichnen eines Stroms von isochronen Daten, wie sie über die Busstruktur 58 gesendet werden. Die isochrone Daten-Pipe 20 der vorliegenden Erfindung kann so programmiert werden, daß sie einen empfangenen Strom von isochronen Daten nach dem seriellen Bus-Protokoll in das isochrone Aufzeichnungsformat umwandelt. Entsprechend kann die isochrone Daten-Pipe auch so programmiert werden, daß sie aus einem Strom von Daten in dem isochronen Aufzeichnungsformat einen Strom von isochronen Daten erzeugt. Ein Strom von Daten im isochronen Aufzeichnungsformat ist in 5 dargestellt. Es ist zu beachten, daß der in 5 dargestellte Datenstrom an einer isochronen Zyklus-Grenze beginnt.
  • Der Datenstrom in 5 enthält 94 Datenpakete, die für jeden isochronen Zyklus in beiden Kanälen A und B enthalten sind. 5 enthält eine Offset-Spalte 92, um den Offset des Beginns jeder horizontalen Zeile darzustellen. Die horizontalen Header-Zeilen enthalten jeweils vier Bytes. Der Datenabschnitt enthält so viele Bytes, wie für die Übertragung des Datenpakets benötigt werden. Der Header für jedes Paket enthält ein Sekunden-Feld, ein Zyklusnummer-Feld und ein Zyklus-Feld. Jeder Subheader für jeden Kanal innerhalb jedes Pakets enthält ein Datenlänge-Feld (data_length), ein Kennzeichen-(tag)-Feld tg, ein Kanal-Feld, ein Daten-Felg und ein Synchronisier-Feld sy. Auf den Subheader folgt dann in dem Paket der Datenabschnitt.
  • Beispiel: Umwandlung von isochronen Daten in das isochrone Aufzeichnungsformat
  • Das Steuerspeicherprogramm in der folgenden Tabelle V zeigt ein Beispiel dafür, wie die isochrone Daten-Pipe 20 der vorliegenden Erfindung von einer Applikation so programmiert werden kann, daß sie einen aus Kanälen 3 und 5 bestehenden isochronen Datenstrom erfaßt, Kanal 3 auf Kanal 7 und Kanal 5 auf Kanal 9 abbildet und dann den resultierenden Datenstrom im isochronen Aufzeichnungsformat zu dem DMA-Kanal 0 sendet.
  • Tabelle V
    Figure 00250001
  • Beispiel: Umwandlung aus dem isochronen Aufzeichnungsformat
  • Das in der folgenden Tabelle VI enthaltene Steuerspeicherprogramm zeigt ein Beispiel dafür, wie die isochrone Daten-Pipe 20 der vorliegenden Erfindung von einer Applikation so programmiert werden kann, daß sie einen im isochronen Aufzeichnungsformat vorliegenden Datenstrom in dem DMA-Kanal 3 aufnimmt und einen Strom von isochronen Daten für die Übertragung über die Busstruktur 58 erzeugt. Der Source-Datenstrom enthält isochrone Kanäle 7 und 9. Das Steuerspeicherprogramm bildet den Kanal 7 auf den Kanal 1 und den Kanal 9 auf den Kanal 2 ab. Es ist zu beachten, daß es für das in Tabelle VI dargestellte Programm erforderlich ist, daß das erste in dem DMA-Kanal präsentierte Daten-Quadlet ein Zyklusstart-Quadlet ist.
  • Tabelle VI
    Figure 00250002
  • Tabelle VI (Fortsetzung)
    Figure 00260001
  • Formate zur Übertragung von digitalen Consumer-Audio- und -Videodaten über einen Bus nach dem IEEE-1394-Format mittels eines isochronen Kanals enthalten Absolutzeit-Marken, die von dem Sender eingefügt und in dem Empfänger zur Wiederherstellung der Zeitinformation benutzt werden, die zum Dekodieren des Datenstroms benötigt wird. In ähnlicher Weise modifizieren auch Nicht-Consumer-Audio- und -Videospeichervorrichtungen, wie ein Festplattenlaufwerk, diese eingebettete Zeitmarkeninformation in der Weise, daß ein Consumer-Gerät, das die Daten empfängt, richtig arbeitet, wenn die Daten zu einem späteren Zeitpunkt wiedergegeben werden.
  • Die isochrone Daten-Pipe 20 wird zunächst durch eine Applikation initialisiert, bevor sie isochrone Daten übertragen kann. Sobald sie initialisiert ist, benutzt die Applikation das Steuer-Register dazu, den Betriebszustand der isochronen Daten-Pipe 20 zu ändern. Der laufende Betriebszustand ist durch den Wert in dem laufenden Kanal-Masken-Register und die in dem untersten Byte des Status-Registers enthaltene Information vollständig definiert.
  • Um den Zustand der isochronen Daten-Pipe 20 zu ändern, programmiert die Applikation einen neuen Kanal-Masken-Wert in das wartende Kanal-Masken-Register und einen neuen Betriebszustand in das Steuer-Register. In dem gleichen Register-Zugriff auf das Steuer-Register setzt die Applikation auch das GO-Bit und programmiert ein Ereignis in das Ereignis-Feld. Wenn das programmierte Ereignis auftritt, überträgt die isochrone Daten-Pipe 20 den Wert in dem wartenden Kanal-Masken-Register zu dem laufenden Kanal-Masken-Register. Die isochrone Daten-Pipe 20 überträgt außerdem die Information in dem niedrigstwertigen Byte des Steuer-Registers in das niedrigstwertige Byte des Status-Registers.
  • Um die Operation der isochronen Daten-Pipe 20 zu stoppen, programmiert die Applikation einen Wert Eins in das wartende Kanal-Masken-Register und einen niedrigen logischen Spannungspegel in das Sende-Aktivierungs-Bit in dem Steuer-Register. Wie bei jeder Zustandsänderung setzt die Applikation auch das GO-Bit und programmiert ein Ereignis in das Ereignis-Feld des Steuer-Registers. Wenn das Ereignis auftritt, wird der Wert in dem laufenden Kanal-Masken-Register gleich Null, und das Sende-Aktivierungs-Bit in dem Status-Register wird auf niedrigen logischen Spannungspegel gezogen, wodurch die Operation der isochronen Daten-Pipe 20 gestoppt wird. Wenn die Operation der isochronen Daten-Pipe 20 gestoppt ist, wird auch das aktive Bit in dem Status-Register auf niedrigen logischen Spannungspegel gezogen.
  • Um die isochrone Daten-Pipe 20 zu aktivieren, lädt die Applikation zunächst ein Speicher-Steuer-Programm und programmiert die passenden Steuerspeicher-Offsets in die Steuerspeicher-Adressen-Registerdatei. Das wartende Kanal-Masken-Register wird dann mit einer Bit-Maske der Kanäle programmiert, die von der isochronen Daten-Pipe 20 empfangen werden sollen. Falls die isochrone Daten-Pipe 20 keine Daten empfängt, wird der Wert in dem wartenden Kanal-Masken-Register auf Null programmiert. Das GO-Bit in dem Steuer-Register wird auf hohen logischen Spannungspegel gesetzt, um eine Zustandsänderung anzuzeigen. Das Sende-Aktivierungs-Bit in dem Steuer-Register wird auf hohen logischen Spannungspegel gesetzt, falls die isochrone Daten-Pipe 20 isochrone Daten sendet. Das Stopp-bei-Fehler-Bit in dem Steuer-Register wird auf hohen logischen Spannungspegel gesetzt, wenn die isochrone Daten-Pipe 20 die Operation bei einem Fehler stoppen soll. Wenn die isochrone Daten-Pipe 20 isochrone Daten überträgt, werden die Ausgabe-Aktivierungs-Bits in dem Steuer-Register, die den mit der Übertragung von isochronen Daten befaßten DMA-Kanälen entsprechen, auf hohen logischen Spannungspegel setzt. Das Ereignis-Feld in dem Steuer-Register wird auf ein Ereignis programmiert, bei dem die isochrone Daten-Pipe ihren Zustand ändern soll.
  • Die asynchrone Daten-Pipe 26 erzeugt, wie oben erwähnt, automatisch Transaktionen, die für die Durchführung von asynchronen Datentransfer-Operationen für eine Applikation über die Busstruktur 58 benötigt werden. In einem alternativen Ausführungsbeispiel der isochronen Daten-Pipe 20 der vorliegenden Erfindung kann die isochrone Daten-Pipe 20 so programmiert werden, daß sie sowohl isochrone als auch asynchrone Daten überträgt und empfängt. Dementsprechend können in diesem Ausführungsbeispiel die asynchrone Daten-Pipe 26 und das entsprechende FIFO 32 entfallen. Da die isochrone Daten-Pipe 20 der einzige logische Block innerhalb der Verknüpfungsschaltung ist, können außerdem auch der Multiplexer 40 und der Demultiplexer 42 entfallen.
  • Wie oben beschrieben wurde, ist die isochrone Daten-Pipe 20 des bevorzugten Ausführungsbeispiels so programmiert, daß sie ein Steuerspeicherprogramm ausführt und eine Reihe von Operationen an einem Strom von isochronen Daten vornimmt. In diesem alternativen Ausführungsbeispiel kann die isochrone Daten-Pipe 20 auch so programmiert werden, daß sie asynchrone Daten sendet und empfängt. In diesem Ausführungsbeispiel erscheint die isochrone Daten-Pipe 20 als virtuelle asynchrone Daten-Pipe und ist so programmiert, daß sie die für die Durchführung von asynchronen Datentransfer-Operationen erforderlichen Transaktionen erzeugt und die passenden Header generiert, wenn Daten gesendet und Header von empfangenen Daten getrennt werden, wie dies in der internationalen Patentanmeldung WO 97/33230 mit dem Titel "Asynchronous Data Pipe For Automatically Managing Asynchronous Data Transfers Between An Application And A Bus Structure", veröffentlicht am 12. September 1997, beschrieben ist.
  • In diesem alternativen Ausführungsbeispiel sendet oder empfängt die isochrone Daten-Pipe 20 sowohl isochrone als auch asynchrone Daten. Die isochrone Daten-Pipe 20 wird von einer Applikation so programmiert, daß sie ein geeignetes Programm für die Behandlung entweder eines isochronen oder eines asynchronen Datenstrom ausführt, so wie dies erforderlich ist. Beim Empfangen oder Senden von asynchronen Daten wird die isochrone Daten-Pipe 20 so programmiert, daß sie die für die Durchführung der Datentransfer-Operation erforderlichen Lese- oder Schreib-Transaktionen über den passenden Adressenbereich erzeugt. Die isochrone Daten-Pipe inkrementiert den Wert in dem Ziel-Offset-Adressenfeld für jede Transaktion entsprechend der Länge jedes Datenpakets automatisch richtig, falls nicht ein Inkrementierungs-Merkmal deaktiviert wurde, was anzeigt, daß die Transaktionen an einer einzelnen Adresse stattfinden sollen.
  • Die vorliegende Erfindung wurde an spezifischen Ausführungsbeispielen beschrieben, die Details enthalten, die das Verständnis der Konstruktions- und Funktionsprinzipien der Erfindung erleichtern sollen. Eine solche Bezugnahme auf spezifische Ausführungsbeispiele und deren Details soll den Rahmen der anliegenden Ansprüche nicht einschränken.

Claims (27)

  1. Verfahren zum Steuern von Datenströmen zwischen einer Applikation (12, 14) und einer Busstruktur (58) mit den Verfahrensschritten: a. Empfangen eines Datenstroms aus einer aus der Applikation (12, 14) und der Busstruktur (58) ausgewählten Quelle, um dadurch einen Empfangsdatenstrom zu erzeugen, b. Gewinnen in einer Daten-Pipe einer Reihe aus wenigstens einem Operationscode für die Durchführung von von der Applikation geforderten Verarbeitungen an dem Empfangsdatenstrom und c. Erzeugen eines Ausgangsdatenstroms durch Umwandeln in der Daten-Pipe des Empfangsdatenstroms in den Ausgangsdatenstrom durch das Ausführen der Reihe von Operationscodes.
  2. Verfahren nach Anspruch 1, bei dem der Empfangsdatenstrom ein isochroner Datenstrom ist.
  3. Verfahren nach Anspruch 1, mit dem weiteren Verfahrensschritt, daß eine Kanalnummer für den Empfangsdatenstrom bestimmt wird, wobei die Reihe von Operationscodes aus einer Speicheradresse gewonnen wird, die der Kanalnummer des empfangenen isochronen Datenstrom entspricht.
  4. Verfahren nach Anspruch 3, bei dem die Busstruktur (58) eine Busstruktur nach dem IEEE-1394-Standard ist.
  5. Verfahren nach Anspruch 1, bei dem der Empfangsdatenstrom entweder ein isochroner oder ein asynchroner Datenstrom ist.
  6. Verfahren nach Anspruch 5, mit dem weiteren Verfahrensschritt, daß festgestellt wird, ob der Empfangsdatenstrom ein isochroner oder ein asynchroner Datenstrom ist.
  7. Verfahren nach Anspruch 6, bei dem die Reihe von Operationscodes aus einer der Kanalnummer entsprechenden Speicheradresse gewonnen wird, wenn der Empfangsdatenstrom ein isochroner Datenstrom ist, und aus einer den asynchronen Daten entsprechenden Speicheradresse, wenn der Empfangsdatenstrom ein asynchroner Datenstrom ist.
  8. Verfahren nach Anspruch 7, bei dem die Busstruktur (58) eine Busstruktur nach dem IEEE-1394-Standard ist.
  9. Gerät zum Steuern von bidirektionalen Datenströmen zwischen einer Applikation (12, 14) und einer Busstruktur (58) mit a. einer Empfangseinrichtung zum Empfangen eines Datenstroms aus einer Quelle, die aus der Applikation (12, 14) und der Busstruktur (58) ausgewählt ist, und zur Erzeugung eines Empfangsdatenstroms, b. einer Einrichtung zum Beschaffen in einer Daten-Pipe einer Reihe aus wenigstens einem Operationscode für die Durchführung von von der Applikation geforderten Verarbeitungen an dem Empfangsdatenstrom und c. einer mit der Beschaffungseinrichtung gekoppelten Einrichtung zum Erzeugen eines Ausgangsdatenstroms für die Umwandlung in der Daten-Pipe des Empfangsdatenstroms in den Ausgangsdatenstrom durch die Ausführung der Reihe von Operationscodes.
  10. Gerät nach Anspruch 9, bei dem dann, wenn der Empfangsdatenstrom von der Applikation (12, 14) empfangen wird, der Ausgangsdatenstrom an die Busstruktur (58) geliefert wird, und dann, wenn der Empfangsdatenstrom von der Busstruktur (58) empfangen wird, der Ausgangsdatenstrom an die Applikation geliefert wird.
  11. Gerät nach Anspruch 9, ferner mit einem Speicher (24), der mit der Beschaffungseinrichtung verbunden ist und für die Verbindung mit der Applikation konfiguriert ist, um die Reihe von Operationscodes zu speichern.
  12. Gerät nach Anspruch 11, bei dem der Empfangsdatenstrom ein isochroner Datenstrom ist.
  13. Gerät nach Anspruch 12, bei dem die Reihe von Operationscodes an einer Speicheradresse gespeichert ist, die der Nummer eines Kanals entspricht, auf dem der Empfangsdatenstrom gesendet wird.
  14. Gerät nach Anspruch 13, bei dem die Busstruktur (58) eine Busstruktur nach dem IEEE-1394-Standard ist.
  15. Gerät nach Anspruch 11, ferner mit einer mit der Empfangseinrichtung verbundenen Einrichtung zum Feststellen, ob der Empfangsdatenstrom ein isochroner Datenstrom oder ein asynchroner Datenstrom ist.
  16. Gerät nach Anspruch 15, bei dem die Reihe von Operationscodes an einer Speicheradresse gespeichert ist, die der Nummer eines Kanals entspricht, auf dem der Empfangsdatenstrom gesendet wird, wenn der Empfangsdatenstrom ein isochroner Datenstrom ist, und aus einer den asynchronen Daten entsprechenden Adresse, wenn der Empfangsdatenstrom ein asynchroner Datenstrom ist.
  17. Gerät nach Anspruch 16, bei dem die Busstruktur (58) eine Busstruktur nach dem IEEE-1394-Standard ist.
  18. Gerät nach Anspruch 9, ferner mit einem physikalischen Bus-Interface (56), das für die Verbindung mit der Busstruktur (58) konfiguriert ist, um Daten auf der Busstruktur (58) zu plazieren und Daten von der Busstruktur (58) zu gewinnen.
  19. Gerät nach Anspruch 18, mit einem Speicher (24), der mit der Beschaffungseinrichtung verbunden ist und für die Verbindung mit der Applikation konfiguriert ist, um die Reihe von Operationscodes zu speichern.
  20. Gerät nach Anspruch 19, ferner mit einer asynchronen Daten-Pipe (26) zum automatischen Steuern von asynchronen Datentransfer-Operationen zu der und von der Applikation (12, 14) über die Busstruktur (58) mit a. einer Empfangseinrichtung zum Empfangen von Instruktionen, die für die Verbindung mit der Applikation (12, 14) konfiguriert sind, um Instruktionen bezüglich einer asynchronen Datentransfer-Operation zu empfangen, und b. einer Einrichtung zum automatischen Erzeugen von Transaktionen, die für die Vervollständigung der asynchronen Datentransfer-Operation zwischen der Applikation (12, 14) und einem mit der Busstruktur (58) verbundenen Knoten benötigt werden.
  21. Gerät nach Anspruch 20, ferner mit einer Multiplexerschaltung (14), die mit der Vorrichtung (20) zur isochronen Datenverarbeitung, der asynchronen Daten-Pipe (26) und dem physikalischen Bus-Interface (56) verbunden ist, um Datenpakete von der isochronen Datenverarbeitungsvorrichtung (20) und der asynchronen Daten-Pipe (26) zu der Busstruktur (58) zu übertragen.
  22. Gerät nach Anspruch 21, ferner mit einer mit der isochronen Datenverarbeitungsvorrichtung (20), der asynchronen Daten-Pipe (26) und dem physikalischen Bus-Interface (56) verbundenen Demultiplexerschaltung (42) zum Umleiten der von der Busstruktur (58) gewonnen Datenpakete zu der jeweils passenden Einrichtung aus der isochronen Datenverarbeitungsvorrichtung (20) und der asynchronen Daten-Pipe (26).
  23. Gerät nach Anspruch 22, bei dem die Busstruktur (58) eine Busstruktur nach dem IEEE-1394-Standard ist.
  24. Gerät nach Anspruch 19, bei dem die isochrone Datenverarbeitungsvorrichtung (20) eine Reihe von Operationscodes ausführt, die sowohl isochrone als asynchrone empfangene Datenströme betreffen.
  25. Gerät nach Anspruch 24, bei dem die Reihe von Operationscodes an einer Speicheradresse gespeichert ist, die Nummer eines Kanals entspricht, auf dem der Empfangsdatenstrom gesendet wird, wenn der Empfangsdatenstrom ein isochroner Datenstrom ist, und an einer Speicheradresse, die den asynchronen Daten entspricht, wenn der Empfangsdatenstrom ein asynchroner Datenstrom ist.
  26. Gerät nach Anspruch 25, bei dem die Busstruktur (58) eine Busstruktur nach dem IEEE-1394-Standard ist.
  27. Isochrone Datenverarbeitungsvorrichtung (20), die für die Verbindung zwischen einer Applikation (12, 14) und einer Busstruktur (58) nach dem IEEE-1394-Standard konfiguriert ist, um Datentransfer-Operationen zu der und von der Applikation (12, 14) über die Busstruktur (58) zu steuern, mit a. einem Steuerspeicher (24), in dem die Applikation (12, 14) wenigstens eine Reihe aus wenigstens einem Operationscode für die Umwandlung eines isochronen Datenstroms speichert, b. einer Empfangsschaltung (44) zum Empfangen eines Datenstroms von einer aus der Applikation (12, 14) und der Busstruktur (58) nach dem IEEE-1394-Standard ausgewählten Quelle und zum Erzeugen eines Empfangsdatenstroms und c. einer mit dem Steuerspeicher und der Empfangsschaltung verbundenen Wandlerschaltung (20) zum Gewinnen der Reihe von Operationscodes und zum Umwandeln des Empfangsdatenstrom in den Ausgangsdatenstrom durch Ausführen der Reihe von Operationscodes, wobei die Reihe von Operationscodes zur Durchführung von von der Applikation geforderten Verarbeitungen an dem Empfangsdatenstrom dient.
DE69733617T 1997-04-15 1997-04-15 Protokoll verarbeitungsgerät für datenstromverarbeitung Expired - Lifetime DE69733617T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1997/006240 WO1998047271A1 (en) 1997-04-15 1997-04-15 Protocol processor for manipulating a stream of data

Publications (2)

Publication Number Publication Date
DE69733617D1 DE69733617D1 (de) 2005-07-28
DE69733617T2 true DE69733617T2 (de) 2006-05-11

Family

ID=22260718

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69733617T Expired - Lifetime DE69733617T2 (de) 1997-04-15 1997-04-15 Protokoll verarbeitungsgerät für datenstromverarbeitung

Country Status (8)

Country Link
EP (1) EP0976228B1 (de)
JP (1) JP4033915B2 (de)
KR (1) KR100497166B1 (de)
AT (1) ATE298485T1 (de)
AU (1) AU2669797A (de)
CA (1) CA2286163C (de)
DE (1) DE69733617T2 (de)
WO (1) WO1998047271A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292844B1 (en) * 1998-02-12 2001-09-18 Sony Corporation Media storage device with embedded data filter for dynamically processing data during read and write operations
KR100316650B1 (ko) * 1998-08-29 2002-01-12 윤종용 상위 계층 데이터 전송을 위한 상위 프로토콜과 ieee 1394버스 정합 방법
DE19913585A1 (de) * 1999-03-25 2000-09-28 Thomson Brandt Gmbh Verfahren zum Verwalten von über einen Datenbus empfangenen Daten sowie Vorrichtung zur Durchführung des Verfahrens
US6519265B1 (en) * 1999-05-28 2003-02-11 Sony Corporation System and method for context switching in an electronic network
US6535940B1 (en) * 1999-07-28 2003-03-18 Sony Corporation System and method for fast data transfers in an electronic network
US6721859B1 (en) * 1999-10-21 2004-04-13 Sony Corporation Multi-protocol media storage device implementing protocols optimized for storing and retrieving both asynchronous and isochronous data
EP1178395A3 (de) 2000-07-31 2009-05-20 Texas Instruments Incorporated Anordnung und Verfahren zur Übertragung einer digitalen Mehrwortnachricht mit einem isochronen Signalprozessor
FR2813408B1 (fr) * 2000-08-29 2006-08-04 Canon Kk Procedes de transfert de types multiples de donnees au sein d'un noeud de communication, et reseaux comportant un tel noeud

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3458469B2 (ja) * 1994-07-15 2003-10-20 ソニー株式会社 信号受信装置及び通信方法

Also Published As

Publication number Publication date
DE69733617D1 (de) 2005-07-28
CA2286163C (en) 2009-10-13
WO1998047271A1 (en) 1998-10-22
JP2001520823A (ja) 2001-10-30
KR100497166B1 (ko) 2005-06-23
ATE298485T1 (de) 2005-07-15
KR20010006297A (ko) 2001-01-26
EP0976228B1 (de) 2005-06-22
JP4033915B2 (ja) 2008-01-16
AU2669797A (en) 1998-11-11
CA2286163A1 (en) 1998-10-22
EP0976228A1 (de) 2000-02-02

Similar Documents

Publication Publication Date Title
DE69916583T2 (de) Medienspeichervorrichtung mit eingebettetem datenfilter zur dynamischen datenverarbeitung während lese- und schreiboperationen
US6587910B2 (en) Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure
DE69920782T2 (de) Verfahren unf Vorrichtung zur bidirektionalen Datenübertragung zwischen einem IEEE1394 Bus und einem Gerät
DE69531012T2 (de) Datenübertragungssystem und Verfahren
DE69933285T2 (de) Netzwerk und informationsdarstellung mittels objekte
DE69921342T2 (de) Verfahren und system zur elektronischen kommunikation
DE69630084T2 (de) Anlage und Verfahren zur Paketierung und Segmentierung von MPEG-Paketen
DE69636846T2 (de) Verfahren und Apparat zur Aufteilung von Lade- und Entladefunktionen in einer ATM-Schnittstelle
DE69937394T2 (de) Verfahren und vorrichtung zur prädikativen zeitstempelung isochroner datenpakete
DE3312723A1 (de) Signaluebertragungsanlage
DE2647241A1 (de) Anordnung fuer eine digitale datenuebertragung
DE19900325A1 (de) Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung
DE2719247B2 (de) Datenverarbeitungssystem
DE3241376A1 (de) Dma-steuereinrichtung zur uebertragung von daten zwischen einem datensender und einem datenempfaenger
DE19805799C2 (de) Datensendeapparat und Datenempfangsapparat
DE69733617T2 (de) Protokoll verarbeitungsgerät für datenstromverarbeitung
DE69935940T2 (de) Zielknoten, Datenkommunikationssystem, Kontrollverfahren eines Zielknotens und Verfahren zum Betreiben eines Datenkommunikationssystems
DE19757964A1 (de) Verfahren zum Organisieren der Übertragung von Datenzellen in einem ATM-Netz
WO1993000752A1 (de) Verfahren zur gemeinsamen übertragung von digitalen audio- und steuerdaten auf einer gemeinsamen busleitung, bussystem zur durchführung des verfahrens und schnittstelle zum einsatz bei dem verfahren
DE69730399T2 (de) Schnittstellengerät zur Anpassung von Datenbreite an Systembusbreite
EP0685950A2 (de) Lokales, nach dem asynchronen Transfermodus (ATM) arbeitendes Netzwerk
DE2707820A1 (de) Datenverarbeitungsanlage
DE60027975T2 (de) Kommunikationssystem in Audio- und Musikdatenübertragung
DE19914838A1 (de) Verfahren zum Zusammenstellen von Buspaketen für die Isochrondatenübertragung über einen Datenbus sowie Vorrichtung zur Durchführung des Verfahrens
EP0725518B1 (de) Verfahren zur gemeinsamen Übertragung von digitalen Quell- und Steuerdaten zwischen über Datenleitungen verbundenen Datenquellen und -senken

Legal Events

Date Code Title Description
8364 No opposition during term of opposition