[go: up one dir, main page]

DE69703732T2 - Asynchrones datenübertragungsgerät zur verwaltung asynchroner datenübertragungen zwischen einem anwendungsprogramm und einer busstruktur - Google Patents

Asynchrones datenübertragungsgerät zur verwaltung asynchroner datenübertragungen zwischen einem anwendungsprogramm und einer busstruktur

Info

Publication number
DE69703732T2
DE69703732T2 DE69703732T DE69703732T DE69703732T2 DE 69703732 T2 DE69703732 T2 DE 69703732T2 DE 69703732 T DE69703732 T DE 69703732T DE 69703732 T DE69703732 T DE 69703732T DE 69703732 T2 DE69703732 T2 DE 69703732T2
Authority
DE
Germany
Prior art keywords
data
data transfer
packet
field
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
DE69703732T
Other languages
English (en)
Other versions
DE69703732D1 (de
Inventor
D. Smyers
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 DE69703732D1 publication Critical patent/DE69703732D1/de
Application granted granted Critical
Publication of DE69703732T2 publication Critical patent/DE69703732T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • 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/40071Packet processing; Packet format

Landscapes

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

Description

    GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft das Gebiet der automatischen Verwaltung von Datenübertragungsoperationen zwischen einer Anwendung und einer Busstruktur. Im Besonderen betrifft die vorliegende Erfindung das Gebiet des automatischen Erzeugens von Transaktionen, die erforderlich sind, um eine asynchrone Datenübertragungsoperation zwischen einer Anwendung und einer Busstruktur abzuschließen.
  • STAND DER TECHNIK
  • Der Standard IEEE 1394 "P1394 Standard For A High Performance Serial Bus", Fassung 8.01v1, vom 16. Juni 1995, ist ein internationaler Standard für die Implementierung einer kostengünstigen Hochgeschwindigkeits-Architektur für einen seriellen Bus, der sowohl asynchrone als auch isochrone Datenübertragungsformate unterstützt. Bei isochronen Datenübertragungen handelt es sich um Echtzeitübertragungen, die so erfolgen, dass die Zeitintervalle zwischen Kennzeitpunkten bei sendenden und empfangenden Anwendungen die gleiche Dauer aufweisen. Jedes isochron übertragene Datenpaket wird in einem eigenen Zeitraum übertragen. Ein Beispiel für eine ideale Anwendung für die isochrone Datenübertragung ist die Übertragung von einem Videorekorder zu einem Fernsehgerät. Der Videorekorder zeichnet Bilder und Ton auf und speichert die Daten in diskreten Blöcken oder Paketen. Der Videorekorder überträgt daraufhin jedes Paket, das Aufzeichnungen von Bild und Ton über einen begrenzten Zeitraum darstellt, zur Anzeige durch das Fernsehgerät. Die Busarchitektur gemäß IEEE 1394 Standard sieht mehrere Kanäle für die isochrone Datenübertragung zwischen Anwendungen vor. Ein sechs Bit Kanalnummer wird mit den Daten übermittelt, um den Empfang durch die entsprechende Anwendung zu gewährleisten. Dies ermöglicht es, dass mehrere Anwendungen gleichzeitig isochrone Daten über die Busstruktur übertragen. Asynchrone Übertragungen sind herkömmliche Datenübertragungsoperationen, die so schnell wie möglich erfolgen, und bei denen eine Datenmenge von einer Quelle an einen Empfänger bzw. an ein Ziel übertragen wird.
  • Der IEEE 1394 Standard sieht einen seriellen Hochgeschwindigkeits-Bus zur Verbindung digitaler Vorrichtungen miteinander vor, wodurch eine universale E/A- Verbindung vorgesehen wird. Der IEEE 1394 Standard definiert eine digitale Schnittstelle für die Anwendungen, wodurch es nicht erforderlich ist, dass eine Anwendung digitale Daten in analoge Daten umsetzt, bevor diese über den Bus übermittelt werden. Somit empfängt eine empfangende Anwendung auch digitale Daten von dem Bus und keine analogen Daten, und somit muss diese Anwendung auch keine analogen Daten in digitale Daten umsetzen. Das für den IEEE 1394 Standard erforderliche Kabel weist im Vergleich für größere Kabel für derartige Vorrichtungen einen sehr dünnen Durchmesser auf. Einem IEEE- 1394-Bus können während der Bus aktiv ist, Vorrichtungen hinzugefügt bzw. von diesem entfernt werden. Wenn eine Vorrichtung hinzugefügt oder entfernt wird, konfiguriert sich der Bus automatisch neu, um Daten zwischen den zu diesem Zeitpunkt vorhandenen Knoten zu übermitteln. Ein Knoten wird als ein logisches Objekt mit eindeutiger Adresse an der Busstruktur angesehen. Jeder Knoten sieht einen Kennungs-ROM, eine standardisierte Anordnung von Steuerregistern und einen eigenen Adressraum vor.
  • Der IEEE-1394-Standard definiert ein Protokoll gemäß der Abbildung aus Fig. 1. Das Protokoll weist einen seriellen Bus-Verwaltungsblock 10 auf, der mit einer Transaktionsschicht 12 gekoppelt ist, eine Verknüpfungsschicht 14 und eine physikalische Schicht 16. Die physikalische Schicht 16 sieht die elektrische und mechanische Verbindung zwischen einer Vorrichtung oder einer Anwendung und dem IEEE 1394-Kabel vor. Die physikalische Schicht 16 sieht ferner die Arbitrierung vor, die gewährleistet, dass alle mit dem IEEE 1394-Bus verbundenen Vorrichtungen Zugriff auf den Bus haben, wobei ferner die tatsächliche Übermittlung und der Empfang von Daten vorgesehen werden. Die Verknüpfungsschicht 14 sieht den Datenpaket-Übermittlungsdienst für die Übertragung asynchroner und isochroner Datenpakete vor. Dies unterstützt sowohl die asynchrone Datenübertragung, unter Verwendung eines Quittungsprotokolls, als auch die isochrone Datenübertragung, wobei ein garantiertes Bandbreiten-Protokoll in Echtzeit für eine Just-in-Time-Datenübermittlung vorgesehen wird. Die Transaktionsschicht 12 unterstützt die erforderlichen Befehle für den Abschluss asynchroner Datenübertragungen, darunter Lesen, Schreiben und Sperren. Der serielle Bus- Verwaltungsblock 10 weist einen isochronen Betriebsmittel- Manager zur Verwaltung isochroner Datenübertragungen auf. Der serielle Bus-Verwaltungsblock 10 sieht ferner eine Steuerung der Gesamtkonfiguration des seriellen Busses in Form einer Optimierung des Arbitrierungs-Timings vor, der Gewährleistung ausreichender elektrischer Leistung für alle Vorrichtungen an dem Bus, die Zuweisung des Zyklus-Masters, die Zuweisung isochroner Kanal- und Bandbreiten-Ressourcen sowie grundlegende Fehlermitteilungen.
  • Zur Initialisierung einer isochronen Übertragung kann es sein, dass mehrere asynchrone Datenübertragungen erforderlich sind, um die Anwendungen zu konfigurieren und um den bestimmten Kanal zu bestimmen, der für die Datenübermittlung verwendet wird. Sobald der Kanal bestimmt worden ist, werden Puffer an der übermittelnden Applikation bzw. Anwendung verwendet, um die Daten vor dem Senden zu speichern, und wobei Puffer an der empfangenden Applikation bzw. Anwendung dazu verwendet werden, die Daten vor deren Verarbeitung zu speichern. Bei einigen peripheren Implementierungen ist es wünschenswert, dass das Peripheriegerät große Datenmengen unter Verwendung einer großen Anzahl asynohroner Transaktionen überträgt. Um diese Transaktionen schnell und effizient zu erzeugen, ist es ungünstig, wenn eine Allzweck-CPU oder ein Mikrocontroller für die Gestaltung jedes angeforderten Pakets erforderlich ist.
  • In EP-A-042811 wird ein asynchroner Betriebsmodus unter Verwendung eines Controllers mit direktem Speicherzugriff (DMA-Controller) und eines Ein-Chip-Mikrocomputers mit einer Mehrzahl von Adressregistern offenbart, die sich jeweils aus einem Quelladressenregister zum Speichern einer Quelladresse und einem Zieladressenregister zum Speichern einer Zieladresse zusammensetzen. Die beschriebene Anordnung setzt den Eingriff einer CPU voraus. In US-A-4.493.021 wird ein lokales Netzwerk (LAN) für eine Mehrzahl autonomer Computer beschreiben, die mit verschiedenen Geschwindigkeiten bzw. Frequenzen und unter verschiedenen Protokollen arbeiten. Ein Hostrechner unterteilt eine zu übermittelnde Nachrichtendatei in Blöcke, die jeweils einen Header mit einem Datentyp-Bezeichner und einen Trailer aufweisen. Ein zugeordneter Netzwerkbus, der die Computer mit einem globalen Bus verbindet, weist Netzwerkadapter auf, welche die Daten in Pakete unterteilen, die jeweils einen Header aufweisen, dem ein Transport-Header und ein Trailer hinzugefügt werden, wobei ein Rahmentyp-Code einen von drei Modi der Adressierung bei der Datenübermittlung spezifiziert, d. h. einen physikalischen Adressmodus Übermittlungen von Computer zu Computer unter Verwendung von zwei Bytes für Quell- und Zieladressen, einen logischen Adressmodus und einen Datentyp-Modus.
  • Benötigt wird ein asynchroner Datenübertragungskanal, der eine automatische Erzeugung von Transaktionen vorsieht, die für den Abschluss einer asynchronen Datenübertragungsoperation erforderlich ist, ohne dass eine Überwachung durch eine Programmierschnittstelle (API) und den Prozessor einer Applikation erforderlich ist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein asynchroner Datenübertragungskanal gemäß dem gegenständlichen Anspruch 1.
  • Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung ein Verfahren zur Verwaltung einer Schreib- Datenübertragungsoperation gemäß dem gegenständlichen Anspruch 10.
  • Vorgesehen ist gemäß einem dritten Aspekt der vorliegenden Erfindung ein Verfahren zur Verwaltung einer Lese- Datenübertragungsoperation gemäß dem gegenständlichen Anspruch 15.
  • Ein asynchroner Datenübertragungskanal (ADP) erzeugt automatisch die erforderlichen Transaktionen zum Abschluss asynchroner Datenübertragungsoperationen für eine Anwendung über eine Busstruktur. Der asynchrone Datenübertragungskanal weist eine Registerdatei auf, die durch die Anwendung bzw. die Applikation programmiert wird. Die Registerdatei ermöglicht der Anwendung das Programmieren von Anforderungen und Merkmalen für die Datenübertragungsoperation. Die Registerdatei umfasst die Busgeschwindigkeit, das Transaktionsetikett, den Transaktionscode, den Zielknotenbezeichner, einen Paketzähler, in Paketzähler- Erhöhungsfeld, ein Steuerfeld und ein Zustandsfeld. Nach dem die Registerdatei durch die Anwendung programmiert und eingeleitet worden ist, erzeugt der asynchrone Datenübertragungskanal automatisch die Lese- oder Schreib- Transaktionen, die erforderlich sind, um die Datenübertragungsoperation über den entsprechenden Adressbereich abzuschließen, und zwar unter Verwendung der Informationen in der Registerdatei als Mustervorlage für die Erzeugung der Transaktionen und Header. Der asynchrone Datenübertragungskanal erhöht automatisch den Wert in dem versetzten Zieladressfeld für jede Transaktion gemäß der Länge jedes Datenpakets, sofern das Erhöhungsmerkmal nicht deaktiviert worden ist, wodurch angezeigt wird, dass die Transaktionen an einer einzigen Adresse zu erfolgen haben. Der Paketzählerwert stellt die Anzahl der verbleibenden zu erzeugenden Transaktionen dar. Der Paketzählerwert wird nach der Übertragung jedes Pakets herabgesetzt bzw. erniedrigt. Das Paketzähler-Erhöhungsfeld ermöglicht der Anwendung die Erhöhung des Paketzählerwertes durch Schreiben in das Paketzähler-Erhöhungsfeld.
  • Mehrere asynchrone Datenübertragungskanäle können in einem System zur Verwaltung mehrerer asynchroner Datenübertragungsoperationen vorhanden sein. Bei einem derartigen System weist jeder asynchrone Datenübertragungskanal einen eindeutigen Transaktionsetikettwert oder -wertebereich auf. Ein Multiplexer ist mit jedem asynchronen Datenübertragungskanal gekoppelt, um die Transaktionen und Datenpakete von den asynchronen Datenübertragungskanälen auf die Busstruktur zu multiplexen. Ein Demultiplexer ist ebenfalls mit jedem asynchronen Datenübertragungskanal gekoppelt, um Signale und Datenpakete von der Busstruktur zu empfangen und diese zu dem entsprechenden asynchronen Datenübertragungskanal zu leiten, und zwar unter Verwendung des Transaktionscodes und der Transaktionsetikettenwerte.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Es zeigen:
  • Fig. 1 ein durch den IEEE 1394 Standard definiertes Protokoll;
  • Fig. 2 ein schematisches Blockdiagramm eines Link-Chips mit drei asynchronen Datenübertragungskanälen gemäß der vorliegenden Erfindung; und
  • Fig. 3 eine Registerdatei in jedem asynchronen Datenübertragungskanal.
  • GENAUE BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
  • Ein asynchroner Datenübertragungskanal gemäß der vorliegenden Erfindung erzeugt automatisch die erforderlichen asynchronen Transaktionen für die Implementierung asynchroner Datenübertragungen zu und von einer Anwendung bzw. einem Anwendungsprogramm über eine Busstruktur. Der Begriff Anwendung bzw. Applikation bezieht sich hierin entweder auf ein Anwendungsprogramm oder einen Gerätetreiber. Bei der Busstruktur, über die die Datenübertragungsoperationen ausgeführt werden, handelt es sich vorzugsweise um eine Busstruktur gemäß dem IEEE 1394 Standard. Für den Fachmann ist diesbezüglich allerdings erkennbar, dass sich der erfindungsgemäße asynchrone Datenübertragungskanal auch zur Verwendung bei der Verwaltung von Datenübertragungen über andersartige Busstrukturen eignet. Der asynchrone Datenübertragungskanal ist in Richtung der Anwendung in der Lage, jede beliebige Datenmenge zwischen einem lokalen Datenpuffer oder einem durch die Anwendung vorgesehenen FIFO und einem Adressbereich unter Verwendung mehrerer asynchroner Transaktionen zu übertragen.
  • Der asynchrone Datenübertragungskanal weist eine Registerdatei auf, die durch die Anwendung programmiert wird, wenn eine Datenübertragungsoperation abgeschlossen werden soll. Die Registerdatei ermöglicht es der Anwendung, bestimmte Voraussetzungen für die Datenübertragungsoperation zu programmieren, darunter die Busgeschwindigkeit, mit der die Transaktionen erzeugt werden müssen, ein Transaktionsetikett und ein Transaktionscode, der die Art der Transaktion darstellt, einen Bezeichner für den Zielknoten, mit dem die Übertragung durchgeführt wird, eine versetzte Zieladresse, welche die Anfangsadresse darstellt, an der die Übertragung erfolgt, und eine Länge jedes Datenpakets. Die Registerdatei weist ferner einen Paketzähler auf, der dazu dient, die Anzahl der verbleibenden zu erzeugenden Pakete anzuzeigen, ein Paketzähler-Erhöhungsfeld, das der Anwendung die Erhöhung des Paketzählers ermöglicht, ein Steuerfeld und ein Zustandsfeld. Das Erhöhungsmerkmal des asynchronen Datenübertragungskanals kann durch die Anwendung ausgeschaltet werden, wenn die Transaktionen an der Busstruktur an einer einzigen Adresse erfolgen sollen.
  • Nach dem die Registerdatei durch die Anwendung programmiert und eingeleitet worden ist, erzeugt der asynchrone Datenübertragungskanal automatisch die erforderlichen Lese- oder Schreib-Transaktionen, um die Datenübertragungsoperation über den entsprechenden Adressbereich abzuschließen. Die Informationen in der Registerdatei werden von dem asynchronen Datenübertragungskanal als Mustervorlage für die Erzeugung der erforderlichen Transaktionen und der entsprechenden Header zur Beendigung der Datenübertragungsoperation verwendet. Der asynchrone Datenübertragungskanal erhöht automatisch den Wert in dem versetzten Zieladressfeld für jede Transaktion gemäß der Größe bzw. dem Umfang der übertragenen Pakete, sofern die Erhöhungsfunktion nicht deaktiviert worden ist. Da der asynchrone Datenübertragungskanal die erforderlichen Transaktionen automatisch erzeugt, ist keine unmittelbare Prozessorsteuerung oder Überwachung durch die einleitende Anwendung erforderlich. Dies ermöglicht der Anwendung die Ausführung anderer Funktionen sowie die Durchführung anderer Aufgaben, während der erfindungsgemäße asynchrone Datenübertragungskanal die Datenübertragungsoperation abschließt. Die Registerdatei weist jedoch das Paketzähler- Erhöhungsfeld auf, das es der Anwendung ermöglicht, die Anzahl der verbleibenden, durch den asynchronen Datenübertragungskanal durchzuführenden Transaktionen zu erhöhen. Auf diese Weise ist der asynchrone Datenübertragungskanal in der Lage, bei Bedarf die Erzeugung der erforderlichen Transaktionen für den Abschluss einer Datenübertragungsoperation zu regeln.
  • Ein System kann eine Mehrzahl asynchroner Datenübertragungskanäle zur Verwaltung einer Mehrzahl von asynchronen Datenübertragungsoperationen aufweisen. Bei einem derartigen System ist ein Multiplexer zwischen die Busstruktur und jeden der asynchronen Datenübertragungskanäle geschaltet, um die Transaktionen und Datenpakete von dem asynchronen Datenübertragungskanal auf die Busstruktur zu multiplexen. Ferner ist ein Demultiplexer mit jedem asynchronen Datenübertragungskanal gekoppelt, um Signale und Datenpakete von der Busstruktur zu empfangen und diese zu dem entsprechenden asynchronen Datenübertragungskanal zu leiten. Der Demultiplexer verwendet den Transaktionscode und das Transaktionsetikett, um festzustellen, welcher asynchrone Datenübertragungskanal die Daten empfangen soll bzw. empfängt. Innerhalb des Systems weist jeder asynchrone Datenübertragungskanal einen eigenen eindeutigen Transaktionsetikettwert oder -wertebereich auf.
  • Eine Link-Schaltung bzw. Verknüpfungsschaltung mit drei asynchronen Datenübertragungskanälen (ADP) gemäß der vorliegenden Erfindung ist in der Abbildung aus Fig. 2 dargestellt. In dem bevorzugten Ausführungsbeispiel ist die Link-Schaltung 10 auf einer einzigen integrierten Schaltung bzw. einem Chip ausgebildet. Die Link-Schaltung 10 sieht eine Verknüpfung zwischen den Anwendungen 12 und 14 und einer Busstruktur 58 vor. Die Anwendungen 12 und 14 sind beide mit einem Systembus 16 gekoppelt. Der Systembus 16 ist mit jedem der First-in-First-out-Datenpuffer (FIFOs) 32, 34 und 36 gekoppelt. Die Anwendungen 12 und 14 sind ferner beide mit einer Programmierschnittstellen-Schaltung 18 verbunden. Die Programmierschnittstellen-Schaltung 18 ist mit einer Reihe von Steuerregistern 38, mit jedem asynchronen Datenübertragungskanal 20, 22 und 24 und mit einem Link-Kern 44 verbunden. Jeder asynchrone Datenübertragungskanal 20, 22 und 24 weist eine entsprechende Registeranordnung 26, 28 und 30 auf. Jedes FIFO 32, 34 und 36 entspricht einem entsprechenden asynchronen Datenübertragungskanal 20, 22 und 24. Das FIFO 32 ist mit dem asynchronen Datenübertragungskanal 20 gekoppelt. Das FIFO 34 ist mit dem asynchronen Datenübertragungskanal 22 gekoppelt. Das FIFO 36 ist mit dem asynchronen Datenübertragungskanal 24 gekoppelt. Die Steuerregister 38 sind mit jedem asynchronen Datenübertragungskanal 20, 22 und 24 verbunden. Jeder asynchrone Datenübertragungskanal 20, 22 und 24 ist mit einem Multiplexer 40 für abgehende Datenübertragungsoperationen und mit einem Demultiplexer 42 für eingehende Datenübertragungsoperationen verbunden. Im Sinne dieser Offenbarung handelt es sich bei einer abgehenden Datenübertragung um eine Übertragung von einer Anwendung zu der Busstruktur, während es sich bei einer eingehenden Datenübertragung um eine Übertragung von der Busstruktur zu einer Anwendung handelt.
  • Der Link-Kern 44 weist einen Sender 46, einen Empfänger 48, einen Zyklus-Timer 50, einen Zyklus-Monitor 52, eine CRC- Fehlerprüfschaltung 54 (CRC = zyklische Redundanzprüfung) und eine physikalische Schnittstellenschaltung 56 als physikalische Schnittstelle zu der Busstruktur 58 auf. Der Sender 46 ist mit dem Multiplexer 40, dem Zyklus-Timer 50, der CRC-Fehlerprüfschaltung 54 und der physikalischen Schnittstellenschaltung 56 verbunden. Der Empfänger 48 ist mit dem Demultiplexer 42, dem Zyklus-Monitor 52, der CRC- Fehlerprüfschaltung 54 und der physikalischen Schnittstellenschaltung 56 verbunden. Der Zyklus-Timer 50 ist mit dem Zyklus-Monitor 52 gekoppelt. Die physikalische Schnittstellenschaltung 56 ist mit der Busstruktur 58 gekoppelt.
  • Das in der Abbildung aus Fig. 2 dargestellte System weist drei asynchrone Datenübertragungskanäle 20, 22 und 24 auf. Für den Fachmann ist ersichtlich, dass abhängig von den jeweiligen Anforderungen der Systeme ein System mit jeder beliebigen Anzahl von asynchronen Datenübertragungskanälen 20, 22 und 24 implementiert werden kann. Jeder asynchrone Datenübertragungskanal bietet die Möglichkeit zur automatischen Abwicklung einer Datenübertragungsoperation für eine Anwendung. Wie dies aus der folgenden Beschreibung deutlich wird, steigern zusätzliche asynchrone Datenübertragungskanäle in einem System die Fähigkeiten des Systems, indem gleichzeitig asynchrone Datenübertragungsoperationen ausgeführt werden können.
  • Jeder asynchrone Datenübertragungskanal stellt einen bidirektionalen Datenpfad für Daten zu und von einer Anwendung dar, die über asynchrone Transaktionen über die Busstruktur 58 übermittelt werden. Vor jede Operation eines Datenübertragungskanals muss ein externes Objekt eine Registerdatei in dem asynchronen Datenübertragungskanal programmieren. Bei dem externen Objekt kann es sich um die Anwendung selbst handeln oder um eine andere Intelligenz oder eine Zustandsvorrichtung innerhalb des Systems. In dem bevorzugten Ausführungsbeispiel der Erfindung wird die Registerdatei des asynchronen Datenübertragungskanals durch die Anwendung programmiert. Jeder asynchrone Datenübertragungskanal ist in der Lage, die erforderlichen Header für abgehende Daten zu erzeugen und die Header zu prüfen und daraus eingehende Daten zu entfernen, und zwar unter Verwendung der Registerdatei als Mustervorlage.
  • Die Registerdatei des asynchronen Datenübertragungskanals weist Daten auf, die sich auf die Anfangsadresse der Busstruktur, die Transaktionsart und die Transaktionsgröße beziehen, wie dies nachstehend im Text näher beschrieben wird.
  • In dem bevorzugten Ausführungsbeispiel kann es sich bei der Transaktionsart um eine der folgenden Optionen handeln: Quadlet-Lesen, Quadlet-Schreiben, Block-Lesen oder Block- Schreiben. Bei einer Quadlet-Transaktion beträgt die Transaktionsgröße vier Byte, und bei Blocktransaktionen entspricht die Größe der Blockanforderungsgröße.
  • Bei einer Freigabe überträgt der asynchrone Datenübertragungskanal Anwendungsdaten unter Verwendung asynchroner Transaktionen gemäß den in der Registerdatei programmierten Parameter. Im Falle von Schreib-Transaktionen von der Anwendung zu einem anderen mit der Busstruktur gekoppelten Knoten verwendet der asynchrone Datenübertragungskanal die an der FIFO-Schnittstelle verfügbaren Anwendungsdaten, überträgt die entsprechenden Header-Daten zu den Daten in dem von dem Link-Kern 44 vorausgesetzten Format und überträgt die Daten über den Multiplexer 40 zu dem Link-Kern 44. Bei Lese-Transaktionen von einem anderen mit der Busstruktur gekoppelten Knoten zu der Anwendung gibt der asynchrone Datenübertragungskanal die entsprechenden Leseanforderungspakete ab, und wenn die Daten empfangen werden, werden die Daten in den entsprechenden Leseantwortpaketen über die FIFO-Schnittstelle zu der Anwendung geleitet. Bei den Lese- und Schreib-Transaktionen organisiert der asynchrone Datenübertragungskanal die Daten in für die Busstruktur spezifische Paketformate gemäß den Anforderungen des Link-Kerns 44. Der asynchrone Datenübertragungskanal übernimmt ferner die Adressberechnung für Transaktionen für einen größeren Adressbereich, wie dies für die Anforderung der Anwendung erforderlich ist. Mit anderen Worten werden folgende Transaktionen bei einem größeren Adressbereich in dem Adressraum der Busstruktur adressiert.
  • Die FIFO-Schnittstelle für jeden asynchronen Datenübertragungskanal ist direkt mit einem FIFO 32, 34 oder 36 gekoppelt, das dem Datenpfad zugeordnet ist, den der asynchrone Datenübertragungskanal steuert. Jedes FIFO 32, 34 oder 36 ist einem einzelnen asynchronen Datenübertragungskanal zugeordnet. Die Link-Schnittstelle für jeden asynchronen Datenübertragungskanal ist über den Multiplexer 40 und den Demultiplexer 42 mit dem Link-Kern 44 gekoppelt. Die von jedem asynchronen Datenübertragungskanal dem Link-Kern 44 präsentierten Daten weisen ein Format auf, das von der Link- Kern-Funktion vorausgesetzt wird. Jeder asynchrone Datenübertragungskanal ist so gestaltet, dass er Daten von dem Link-Kern 44 in dem Format empfängt, das durch die Link-Kern- Spezifikation definiert ist. Wenn mehr als ein asynchroner Datenübertragungskanal in dem System vorgesehen ist, ist jeder asynchrone Datenübertragungskanal über den Multiplexer 40 und den Demultiplexer 42 mit dem Link-Kern 44 gekoppelt.
  • Die Daten von dem Link-Kern 44 zu den asynchronen Datenübertragungsleitungen 20, 22 und 24 werden durch den Demultiplexer 42 geleitet. Der Demultiplexer 42 verwendet den Transaktionscode und das Transaktionsetikett um die Daten zu dem entsprechenden asynchronen Datenübertragungskanal zu leiten. Der Demultiplexer 42 leitet Antwortpakete von der Busstruktur 58 zu dem entsprechenden asynchronen Datenübertragungskanal unter Verwendung des Transaktionscodefelds des Paket-Headers und des Werts in dem Transaktionsetikettfeld des Paket-Headers. Danach stimmt der asynchrone Datenübertragungskanal die Antwortpakete mit den entsprechenden Anforderungspaketen ab.
  • Der Demultiplexer 42 ändert keine Informationen, wenn er Pakete von dem Link-Kern 44 zu dem entsprechenden asynchronen Datenübertragungskanal leitet. Alle durch den Link-Kern erzeugten Informationen werden zu dem asynchronen Ziel- Datenübertragungskanal geleitet. Der asynchrone Datenübertragungskanal führt alle erforderlichen Manipulationen der Daten von dem Link-Kern 44 durch bevor diese Daten zu der Anwendung übertragen werden, wobei dies ein etwaiges Entfernen von Header-Informationen gemäß den Erfordernissen des Protokolls für die Busstruktur beinhalten kann. Für abgehende Daten bereitet der asynchrone Datenübertragungskanal Daten von der Anwendung vor, so dass diese in dem entsprechenden, von dem Link-Kern 44 vorausgesetzten Format gegeben sind. Jeder asynchrone Datenübertragungskanal erzeugt die entsprechenden Header- Informationen und bettet diese in die Daten von der Anwendung ein, bevor die Daten über den Multiplexer 40 an den Link-Kern 44 gesendet werden.
  • Für alle asynchronen Datenübertragungskanäle 20, 22 und 24 erzeugt und verbraucht die Link-Schnittstelle Daten in einem Format, das mit den Anforderungen der Funktion des Link-Kerns 44 kompatibel ist. Während der Schreibeoperation erzeugen die asynchronen Datenübertragungskanäle 20, 22 und 24 die erforderlichen spezifischen Header-Informationen für die Busstruktur und betten diese in die Daten von der Anwendung gemäß den Erfordernissen des Link-Kerns 44 ein. Während einer Lese-Operation nimmt der asynchrone Datenübertragungskanal Daten in dem durch den Link-Kern 44 vorgesehenen Format für Daten an, die sich von dem Link-Kern 44 zu einem der asynchronen Datenübertragungskanäle 20, 22 und 24 bewegen. Mit anderen Worten ist keine Manipulation der Daten erforderlich, um Daten von dem Link-Kern 44 zu dem entsprechenden asynchronen Datenübertragungskanal 20, 22 oder 24 zu verschieben.
  • Wenn nur ein asynchroner Datenübertragungskanal in einem System vorhanden ist, kann der asynchrone Datenübertragungskanal direkt mit dem Link-Kern 44 verbunden werden. Wenn mehrere asynchrone Datenübertragungskanäle in einem System vorhanden sind, muss das System einen entsprechenden Multiplexer 40 und Demultiplexer 42 zwischen den asynchronen Datenübertragungskanälen und dem Link-Kern 44 aufweisen. Der Multiplexer 40 ist dafür verantwortlich, die Daten an den Link-Schnittstellen der Mehrzahl von asynchronen Datenübertragungskanälen 20, 22 und 24 zu erfassen und diese Daten in den Link-Kern 44 zu multiplexen und danach Paket für Paket auf die Busstruktur 58. Diese Informationen werden durch die übertragende Anwendung in einer Prioritätsmenge zu der Busstruktur geleitet. Der Demultiplexer 42 verwendet den Wert in dem Transaktionscode und die Transaktionsetikettfelder jedes von der Busstruktur 58 empfangenen Pakets und den Wert in dem Transaktionsetikett des Headers des asynchronen Antwortpakets dazu, das Paket zu dem entsprechenden asynchronen Datenübertragungskanal 20, 22 oder 24 zu leiten.
  • Bei dem asynchronen Datenübertragungskanal der vorliegenden Erfindung handelt es sich um einen bidirektionalen Datenpfad zwischen einem entsprechenden FIFO und dem Link-Kern 44. Bei der Übertragung von Daten von dem entsprechenden FIFO zu dem Link-Kern 44 bildet der asynchrone Datenübertragungskanal die entsprechenden Header-Informationen und überträgt diese auf die Daten, bevor die resultierenden Header- und Anwendungsdaten zu dem Link-Kern 44 gesendet werden. Der Link- Block verwendet die durch den asynchronen Datenübertragungskanal erzeugten Daten zum Erzeugen und Abschließen der Schreibeoperation über die Busstruktur 58. Beim Übermitteln der Daten von dem Link-Kern 44 zu einem FIFO erzeugt der asynchrone Datenübertragungskanal die entsprechenden Header-Informationen für die Lese-Transaktion. Der asynchrone Datenübertragungskanal übermittelt diese Informationen zu dem Link-Kern 44, der die Leseanforderung danach über die Busstruktur 58 übermittelt. Zu einem späteren Zeitpunkt führt der Antwortknoten ein Lese-Antwortpaket zurück. Der Link-Kern 44 erfasst dieses Antwortpaket und übermittelt dieses zu dem Demultiplexer 42, der die Daten daraufhin zu dem asynchronen Datenübertragungskanal leitet, der die Leseanforderung erzeugt hat, und zwar unter Verwendung der Werte in dem Transaktionscode und den Transaktionsetikettfeldern zur Ermittlung des entsprechenden asynchronen Datenübertragungskanals. Danach entfernt der asynchrone Datenübertragungskanal die Header-Tnformationen aus dem Paket und übermittelt die Daten zu dem entsprechenden FIFO. Die Anwendung verarbeitet danach die Daten von dem FIFO. Bei der Erzeugung von Lese- oder Schreib-Anforderungen, die über die Busstruktur 58 übermittelt werden sollen, erzeugt der asynchrone Datenübertragungskanal weiterhin die entsprechenden Anforderungen, bis der Kanal alle Daten zu oder von der Anwendung transportiert hat.
  • Ein System mit mehreren asynchronen Datenübertragungskanälen kann mehrere Threads bzw. Ablaufstränge von Datenübertragungen gleichzeitig erhalten. Dies ist bei eingebetteten Anwendungen nützlich, wie etwa bei Disketten- bzw. CD-Laufwerken, bei denen Mediendaten übertragen werden, während folgende Befehle gelesen oder Zustandsdaten an die einleitende Anwendung gesendet werden. Der Demultiplexer 42 ist dafür verantwortlich, die Daten entsprechend zu jedem asynchronen Datenübertragungskanal zu leiten. In dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung weist jeder asynchrone Datenübertragungskanal ein eindeutiges Transaktionsetikett oder einen eindeutigen Bereich von Transaktionsetiketten auf. Der Demultiplexer 42 bestimmt den entsprechenden asynchronen Datenübertragungskanal gemäß den Daten in dem Transaktionsetikett und den Transaktionscodefeldern.
  • Jeder asynchrone Datenübertragungskanal weist eine dedizierte Registerdatei auf, wie dies nachstehend im Text näher beschrieben wird. Die Registerdatei wird durch eine externe Intelligenz programmiert, wie etwa durch die Anwendung, aus der die Datenübertragungsoperation stammt. Sobald die Registerdatei programmiert ist, kann ein asynchroner Datenübertragungskanal Lese- und Schreib-Transaktionen entweder für einen größer werdenden Adressbereich oder eine feste Adresse über die Busstruktur 58 ausführen. Die Transaktionen können im Block- oder Quadlet-Format erfolgen. Bei der Programmierung der Datenübertragungsoperation liefert die Anwendung entweder einen Gesamtblockzählwert für die Übertragung, "erhöht" den Blockzähler jedes Mal um einen Zählwert oder sieht eine Kombination aus den beiden Möglichkeiten vor. Wenn ein Gesamtblockzählwert für die Übertragung programmiert wird, erzeugt der asynchrone Datenübertragungskanal die erforderlichen Transaktionen zum Abschluss der Operation, während die Anwendung andere Operationen ausführt und andere Aufgaben abschließt. Jeder asynchrone Datenübertragungskanal erhält den für die Busstruktur spezifischen Adresszählerkontext aufrecht und führt Lese- oder Schreib-Transaktionen durch, wenn der Blockzähler einen Wert von ungleich Null aufweist.
  • Jeder asynchrone Datenübertragungskanal erfordert eine dedizierte Registerdatei, die von der Ursprungsanwendung programmiert und dazu verwendet wird, die entsprechenden Transaktionen zu erzeugen, die für den Abschluss einer Datenübertragungsoperation über die Busstruktur 58 erforderlich sind. Die für jeden asynchronen Datenübertragungskanal erforderliche Registerdatei, die Bestandteil des bevorzugten Ausführungsbeispiels der Erfindung ist, ist in der Abbildung aus Fig. 3 veranschaulicht. Die Registerdatei 80 weist 32 Datenbytes auf, die hexadezimal von 0 bis 1F nummeriert sind. In der Abbildung aus Fig. 3 ist die Registerdatei 80 in einem Tabellenformat mit acht horizontalen Zeilen dargestellt, die jeweils vier Bytes aufweisen. Die Abbildung aus Fig. 3 weist eine Versatz-Spalte 82 auf, die den Versatz des Anfangsbytes in jeder Zeile von der Adresse es Anfangs der Registerdatei 80 darstellt. Eine Lese-/Schreib- Spalte 84 ist ebenfalls vorgesehen, um darzustellen, ob die Felder in jeder Zeile ausgelesen, beschrieben oder nur beschrieben werden können.
  • Bei dem Geschwindigkeitsfeld sp handelt es sich um ein Zwei- Bit-Feld in Byte 1 der Registerdatei 80. Das Geschwindigkeitsfeld sp kann ausgelesen und beschrieben werden. Eine Schreiboperation in dieses Feld aktualisiert den Wert in dem Geschwindigkeitsfeld sp. Eine Leseoperation aus dem Geschwindigkeitsfeld sp gibt den zuletzt in das Feld geschriebenen Wert wieder. Ein Wert in dem Geschwindigkeitsfeld stellt einen Zwei-Bit-Wert dar, der die Geschwindigkeit darstellt, mit der alle Anforderungspakete an der Busstruktur 58 erzeugt werden. Die folgende Tabelle definiert die Korrelation zwischen der Geschwindigkeit und dem Wert in dem Geschwindigkeitsfeld sp.
  • TABELLE I
  • Wert Busgeschwindigkeit
  • 00 100 Mbps
  • 01 200 Mbps
  • 10 400 Mbps
  • 11 reserviert
  • Gemäß der Veranschaulichung in Tabelle I definiert ein Wert von 00 in dem Geschwindigkeitsfeld sp somit die Busgeschwindigkeit, mit der alle Anforderungspakete mit 100 Mbps erzeugt werden, wobei ein Wert von 01 einer Busgeschwindigkeit zur Erzeugung von Anforderungspaketen bei 200 Mbps entspricht, während ein Wert von 10 einer Busgeschwindigkeit zur Erzeugung von Anforderungspaketen mit 400 Mbps entspricht.
  • Das Transaktionsetikettfeld tl ist ein Sechs-Bit-Feld in Byte 2 der Registerdatei 80. Das Transaktionsetikettfeld tl kann ausgelesen und beschrieben werden. Das Transaktionsetikettfeld tl speichert den Wert des Transaktionsetiketts zur Verwendung für alle durch den entsprechenden asynchronen Datenübertragungskanal erzeugten Anforderungspakete. In einem alternativen Ausführungsbeispiel verwaltet ein einziger asynchroner Datenübertragungskanal einen Bereich von Transaktionsetiketten. Eine Schreiboperation in dieses Feld aktualisiert den Wert in dem Transaktionsetikettfeld tl. Eine Leseoperation aus dem Transaktionsetikettfeld tl gibt den zuletzt in das Feld geschriebenen Wert wieder. Wenn mehr als ein asynchroner Datenübertragungskanal in einem System vorgesehen sind, muss jeder asynchrone Datenübertragungskanal einen eindeutigen Wert in dem Transaktionsetikettfeld tl aufweisen, so dass der Demultiplexer 42 die Antwortpakete entsprechend zu dem ursprünglichen asynchronen Datenübertragungskanal leiten.
  • In dem bevorzugten Ausführungsbeispiel werden die beiden wertniedrigsten Bits von Byte 2 der Registerdatei 80 dauerhaft auf einen logischen niedrigen Spannungswert programmiert.
  • Bei dem Transaktionscodefeld tCode handelt es sich um ein Vier-Bit-Feld in Byte 3 der Registerdatei 80. Das Transaktionscodefeld tCode kann ausgelesen und beschrieben werden. Das Transaktionscodefeld tCode speichert den Transaktionscode zur Verwendung für alle durch den entsprechenden asynchronen Datenübertragungskanal erzeugten Anforderungspakete. Eine Schreiboperation in das Feld aktualisiert den Wert in dem Transaktionscodefeld tcode. Eine Leseoperation aus dem Transaktionscodefeld tCode gibt den zuletzt in das Feld geschriebenen Wert wieder. Der Wert in dem Transaktionscodefeld tCode stellt einen Vier-Bit-Wert dar, der die Art der durchzuführenden Operation wiedergibt. Die Korrelation zwischen den Werten in dem Transaktionscodefeld tCode und der Art der durchzuführenden Operation wird in der nachstehenden Tabelle II veranschaulicht.
  • TABELLE II
  • tCode Operation
  • 0000 Schreibanforderung für Daten-Quadlet
  • 0001 Schreibanforderung für Datenblock
  • 0100 Leseanforderung für Daten-Quadlet
  • 0101 Leseanforderung für Datenblock
  • 1001 Sperroperation
  • Wenn das Transaktionscodefeld tCode den Wert 0000 aufweist, handelt es sich bei der auszuführenden Datenübertragungsoperation um eine Quadlet-Schreiboperation. Wenn das Transaktionscodefeld tCode den Wert 0001 aufweist, handelt es sich bei der auszuführenden Datenübertragungsoperation um eine Block-Schreiboperation. Wenn das Transaktionscodefeld tCode den Wert 0100 aufweist, handelt es sich bei der auszuführenden Datenübertragungsoperation um eine Quadlet-Leseoperation. Wenn das Transaktionscodefeld tCode den Wert 0101 aufweist, handelt es sich bei der auszuführenden Datenübertragungsoperation um eine Block-Leseoperation. Wenn das Transaktionscodefeld tCode den Wert 1001 aufweist, handelt es sich bei der Operation um eine Sperroperation.
  • In dem bevorzugten Ausführungsbeispiel werden die vier wertniedrigsten Bits von Byte 3 der Registerdatei 80 alle permanent auf einen logischen niedrigen Spannungswert programmiert, so dass ein reserviertes Feld in dem Paket- Header für die Busstruktur vorgesehen wird.
  • Bei dem Zielbezeichnerfeld destination_ID handelt es sich um ein Sechzehn-Bit-Feld in den Bytes 4 und 5 der Registerdatei 80. Das Zielbezeichnerfeld destination_ID kann ausgelesen und beschrieben werden. Das Zielbezeichnerfeld destination_ID speichert den Sechzehn-Bit-Zielknoten_ID, der bei allen Anforderungspaketen verwendet wird, die von dem entsprechenden asynchronen Datenübertragungskanal für eine Datenübertragungsoperation erzeugt werden. Eine Schreiboperation in dieses Feld aktualisiert den Wert in dem Zielbezeichnerfeld destination_ID. Eine Leseoperation aus dem Zielbezeichnerfeld destination_ID gibt den zuletzt in das Feld geschriebenen Wert wieder. Der Wert in dem Zielbezeichnerfeld destination_ID stellt den Knoten an der Busstruktur 58 dar, mit dem die Datenübertragungsoperation erfolgt. Jeder Knoten an der Busstruktur 58 weist somit einen eindeutigen Zielbezeichner auf.
  • Das höherwertige Zielversatzfeld destination_offset Hi ist ein Sechzehn-Bit-Feld in den Bytes 6 und 7 der Registerdatei 80. Das höherwertige Zielversatzfeld destination_offset Hi kann ausgelesen und beschrieben werden. Das höherwertige Zielversatzfeld destination_offset Hi speichert die höherwertigen sechszehn Bits der Zielversatzadresse zur Verwendung des nächsten erzeugten Anforderungspakets. Eine Schreiboperation in dieses Feld aktualisiert den Wert in dem höherwertigen Zielversatzfeld destination_offset Hi. Eine Leseoperation aus dem höherwertigen Zielversatzfeld destination_offset Hi gibt den aktuellen Wert der höherwertigen sechzehn Bits der Zielversatzadresse wieder.
  • Das niederwertige Zielversatzfeld destination_offset Lo ist ein Zweiunddreißig-Bit-Feld in den Bytes 8 bis B der Registerdatei. Das niederwertige Zielversatzfeld destination_offset Lo kann ausgelesen und beschrieben werden. Das niederwertige Zielversatzfeld destination_offset Lo speichert die niederwertigen zweiunddreißig Bits der Zielversatzadresse zur Verwendung für das nächste erzeugte Anforderungspaket. Eine Schreiboperation in dieses Feld aktualisiert den Wert in dem niederwertigen Zielversatzfeld destination_offset Lo. Eine Leseoperation aus dem niederwertigen Zielversatzfeld destination_offset Lo gibt den aktuellen Wert der niederwertigen zweiunddreißig Bits der Zielversatzadresse wieder. Gemeinsam bilden das höherwertige Zielversatzfeld destination_offset Hi und das niederwertige Zielversatzfeld destination_offset Lo die Achtundvierzig-Bit- Zielversatzadresse, für die eine aktuelle Transaktion erzeugt wird. Wenn die Nicht-Inkrementierungs-Flagge in dem Steuerfeld, was nachstehend im Text näher beschrieben wird, einen logischen Niederspannungswert aufweist, inkrementiert der asynchrone Datenübertragungskanal das gesamte Achtundvierzig-Bit-Zielversatzfeld, welches das höherwertige Zielversatzfeld destination_offset Hi und das niederwertige Zielversatzfeld destination_offset Lo umfasst, um den Wert in dem Datenlängenfeld nach der Erzeugung jeder Lese- oder Schreibtransaktion.
  • Bei dem Datenlängenfeld data_length handelt es sich um ein Sechzehn-Bit-Feld in den Bytes C und D der Registerdatei 80. Das Datenlängenfeld data_length kann ausgelesen und beschrieben werden. Das Datenlängenfeld data_length speichert in Bytes die Größe aller Anforderungspakete, die durch den entsprechenden asynchronen Datenübertragungskanal erzeugt werden. Eine Schreiboperation in dieses Feld aktualisiert den Wert in dem Datenlängenfeld data_length. Eine Leseoperation aus dem Datenlängenfeld data_length gibt den letzten in das Feld geschriebenen Wert wieder. Der Wert in dem Datenlängenfeld data_length unterliegt einigen Einschränkungen, und zwar auf der Basis der Werte in den anderen Feldern der Registerdatei, wie dies in der folgenden Tabelle III dargestellt ist. TABELLE III
  • Das erweiterte Transaktionsfeld extended_tCode ist ein Sechzehn-Bit-Feld in den Bytes E und F der Registerdatei 80. Das erweiterte Transaktionsfeld extended_tCode kann ausgelesen und beschrieben werden. Eine Schreiboperation in dieses Feld aktualisiert den Wert in dem erweiterten Transaktionsfeld extended_tCode. Eine Leseoperation aus dem erweiterten Transaktionsfeld extended_tCode gibt den zuletzt in dieses Feld geschriebenen Wert wieder. Das erweiterte Transaktionsfeld extended_tCode weit für alle Transaktionen mit Ausnahme der Sperr-Transaktionen einen Wert von Null auf.
  • Wenn der Wert in dem Transaktionsfeld tcode auf einen Wert von 1001 gesetzt wird, wodurch angegeben wird, dass es sich dabei um eine Sperranforderung handelt, so speichert das erweiterte Transaktionsfeld extended_tCode den erweiterten Transaktionscodewert für die Sperr-Transaktion.
  • Bei dem Paketzählerfeld handelt es sich abhängig von der Konfiguration des Systems um ein Acht- bis Zweiunddreißig-Bit- Feld in den Bytes 10 bis 13 der Registerdatei 80. Das Paketzählerfeld kann ausgelesen und beschrieben werden. Das Paketzählerfeld speichert die Anzahl der zur Beendigung der Datenübertragungsoperation verbleibenden zu erzeugenden Anforderungspakete. Eine Schreiboperation in dieses Feld ändert den Wert in dem Paketzählerfeld. Eine Leseoperation aus dem Paketzählerfeld gibt den aktuellen Paketzählwert der verbleibenden zu erzeugenden Anforderungspakete wieder. Der Wert in dem Paketzählerfeld wird nach der Erzeugung jeder Transaktion herabgesetzt. Zur Gewährleistung einer umfassenden Kontrolle über die Anzahl der erzeugten Pakete darf das Paketzählerfeld nur dann beschrieben werden, wenn der Wert des Feldes gleich Null ist.
  • Bei dem Paketzähler-Erhöhungsfeld handelt es sich um ein lesegeschütztes Feld in den Bytes 14 bis 17 der Registerdatei. Wenn das Paketzähler-Erhöhungsfeld beschrieben wird, erhöht der entsprechende asynchrone Datenübertragungskanal den Wert in dem Paketzählerregister. Wenn das Paketzähler-Erhöhungsfeld ausgelesen wird, ist der zurückgegebene Wert nicht vorhersehbar. Dies ermöglicht es, dass die Ursprungsanwendung zusätzliche Transaktionen für eine aktuelle Datenübertragungstransaktion erzeugt. In dem bevorzugten Ausführungsbeispiel kann nur durch Beschreiben des Paketzähler-Erhöhungsfeldes der Wert in dem Paketzählerfeld erhöht werden, wenn das Paketzählerfeld einen Wert von ungleich Null aufweist.
  • Bei dem Steuerfeld handelt es sich um ein Zweiunddreißig-Bit- Feld in den Bytes 18 bis 1B der Registerdatei 80. Das Steuerfeld kann ausgelesen und beschrieben werden. In dem Steuerfeld sind die Bits 0 bis 29 reserviert, wobei es sich bei dem Bit 30 um ein Nicht-Inkrementierungs-Steuerbit non_incr und bei dem Bit 31 um ein Betriebssteuerbit go handelt. Das Betriebssteuerbit go wird auf einen logischen hohen Spannungswert gesetzt, um den asynchronen Datenübertragungskanal freizugeben. Die Freigabe des Betriebssteuerbits go auf einen logischen niedrigen Spannungswert deaktiviert den asynchronen Datenübertragungskanal sofort oder an der nächsten Transaktionsgrenze, wenn sich der asynchrone Datenübertragungskanal gerade mitten in einer Transaktion befindet. Demgemäß ist ein asynchroner Datenübertragungskanal nur dann funktionsfähig, wenn das Betriebssteuerbit go auf einen logischen hohen Spannungswert gesetzt ist. Das Nicht- Inkrementierungs-Steuerbit non_incr wird auf einen logischen hohen Spannungswert gesetzt, um zu bewirken, dass der asynchrone Datenübertragungskanal alle Anforderungspakete für eine feste bzw. Nicht-Inkrementierungs-Adresse erzeugt. Wenn das Nicht-Inkrementierungs-Steuerbit non_incr einem logischen niedrigen Spannungswert entspricht, inkrementiert der entsprechende asynchrone Datenübertragungskanal den Zielversatzwert um den Wert in dem Feld data_length nach Beendigung jeder Transaktion.
  • Bei dem Zustandsfeld handelt es sich um ein Zweiunddreißig- Bit-Feld in den Bytes 1C bis 1F der Registerdatei 80. Das Zustandsfeld kann ausgelesen und beschrieben werden. Das Zustandsfeld speichert die letzten Quittungscodes und Antwortcodes, die von den Anforderungspaketen resultieren, die durch den entsprechenden asynchronen Datenübertragungskanal erzeugt werden. Das Zustandsfeld weist ein Fehlerfeld, ein Antwortcodefeld, ein Quittung-Ein-Feld und ein Quittung-Aus- Feld auf.
  • Bei dem Fehlerfeld handelt es sich um ein Vier-Bit-Feld, das Bits aufweist, die den Fehler anzeigen, der das Anhalten des Betriebs des entsprechenden asynchronen Datenübertragungskanals bewirkt hat. Das Fehlerfeld wird gelöscht, wenn das Betriebssteuerbit go auf einen logischen hohen Spannungswert gesetzt wird. Das Fehlerfeld ist gültig, wenn das Betriebssteuerbit go durch den asynchronen Datenübertragungskanal auf einen logischen niedrigen Spannungswert gelöscht wird. Die Tabelle IV veranschaulicht das Verhältnis zwischen den möglichen Werten in dem Fehlerfeld und deren Bedeutung.
  • TABELLE IV
  • Fehlerwert Bedeutung
  • 0000 Kein Fehler
  • 0001 ungült. Quittungscode empf. (für Anforderungspaket)
  • 0010 ungült. Quittungscode gesendet (für Antwortpaket)
  • 0100 Geteilte Transaktion Timeout
  • 1000 Bus-Rücksetzung eingetreten
  • Ein Wert von 0000 in dem Fehlerfeld zeigt an, dass kein Fehler vorliegt. Ein Wert von 0001 in dem Fehlerfeld zeigt an, dass der Fehler dadurch bewirkt worden ist, dass ein ungültiger Quittungscode für ein vorher übermitteltes Anforderungspaket empfangen worden ist. Ein Wert von 0010 in dem Fehlerfeld zeigt an, dass der Fehler durch das Senden eines ungültigen Quittungscodes für ein Antwortpaket bewirkt worden ist. Ein Wert von 0100 in dem Fehlerfeld zeigt an, dass der Fehler durch ein auftretendes Timeout für eine geteilte Transaktion bewirkt worden ist. Ein Wert von 1000 in dem Fehlerfeld zeigt an, dass eine Rücksetzung des Busses eingetreten ist.
  • Das Antwortcodefeld rcode ist ein Vier-Bit-Feld, das den letzten empfangenen Antwortcode speichert. Der Wert in dem Antwortcodefeld ist gleich 1111, wenn es sich bei der letzten Transaktion um eine Schreibtransaktion gehandelt hat, die als unifizierte Transaktion ausgeführt worden ist.
  • Das Quittung-Ein-Feld ist ein Vier-Bit-Feld, das das letzte empfangene Quittungssignal von dem entfernten Knoten als Reaktion auf das letzte durch den asynchronen Datenübertragungskanal empfangene Anforderungspaket speichert.
  • Das Quittung-Aus-Feld ist ein Vier-Bit-Feld, das das letzte durch den asynchronen Datenübertragungskanal erzeugte Quittungssignal speichert, und zwar als Reaktion auf ein Antwortpaket, das einem durch den entsprechenden asynchronen Datenübertragungskanal erzeugten Anforderungspaket entspricht.
  • Eine Schreiboperation in das Zustandsfeld ändert den Wert in dem Feld. Eine Leseoperation aus dem Feld gibt den aktuellen Zustand des asynchronen Datenübertragungskanals und der aktuellen Datenübertragungsoperation wieder. Wenn eines der Anforderungspakete oder ein entsprechendes Antwortpaket zu einem Fehler führt, erzeugt der asynchrone Datenübertragungskanal fürs erste keine weiteren Anforderungspakete. Danach speichert der asynchrone Datenübertragungskanal die Werte für das Antwortcodefeld rcode, das Quittung-Ein-Feld ack-in und das Quittung-Aus-Feld ack-out in dem Zustandsfeld. Nach dem Speichern dieser Werte in dem Zustandsfeld sieht der asynchrone Datenübertragungskanal ein Interrupt-Signal über die Anwendungsschnittstelle bzw. die Programmierschnittstelle für die Anwendung vor, um der Anwendung mitzuteilen, dass ein Fehlerzustand während der aktuellen Datenübertragungsoperation aufgetreten ist.
  • Leseoperationen
  • Beim Ausführen einer Leseoperation und der Gewinnung von Daten von einem anderen mit der Busstruktur verbundenen Knoten sowie der Übertragung von Daten zu der Anwendung, erzeugt ein asynchroner Datenübertragungskanal die entsprechenden Lese- Anforderungspakete unter Verwendung der Informationen in der Registerdatei 80 als Mustervorlage. Wenn die Daten danach von dem Zielknoten empfangen werden, leitet der Demultiplexer 42 die Daten zu dem entsprechenden asynchronen Datenübertragungskanal unter Verwendung der Werte in den Transaktionscode- und Transaktionsetikettfeldern. Der asynchrone Datenübertragungskanal entfernt daraufhin die Header-Informationen aus den Datenpaketen und lädt die Datenpakete in das FIFO, wobei die Anwendung von dort die empfangenen Daten verarbeiten kann.
  • Im aktiven Zustand und bei der Übertragung von Daten von der Busstruktur 58 zu der FIFO-Schnittstelle arbeitet jeder asynchrone Datenübertragungskanal als Datenempfangs- Zustandsvorrichtung gemäß der Definition in der folgenden Tabelle V.
  • TABELLE V
  • while (Active ()) {
  • if (RAM_Data==0) /*wenn keine Daten zu entladen*/ continue; /*loop um akt.Zust.z.prüfen*/ /*freier Raum u. aktiv*/
  • AssertReq(); /*assert Anford.*/
  • While(!Ack() /*auf Quitt.warten*/ &&Active()); /*sicherstellen, dass weiter akt.*/
  • if (!Active()) /*verlassen, wenn nicht mehr akt.*/ break;
  • Assertword(); /*Wort an FIFO-Schnittst.ass.*/
  • DeAssertReq(); /*Deass. Anford.*/
  • }
  • Die FIFO-Schnittstelle taktet die Daten von dem asynchronen Datenübertragungskanal in das entsprechende FIFO mit einem Taktsignal, das mit der Busstruktur-Schnittstelle synchronisiert ist. Das FIFO weist immer einen Zustand für den Empfang eines Datenwortes auf, wenn dieses von dem asynchronen Datenübertragungskanal zur Verfügung steht. Wenn das Anforderungssignal geltend gemacht wird und kein Platz in dem FIFO vorhanden ist, kommt es zu einem FIFO-Überlauf. Dies erzeugt einen Fehlerzustand, der durch den entsprechenden asynchronen Datenübertragungskanal erfasst wird. Wenn ein FIFO-Überlauf eintritt, werden die verbleibenden Transaktionen angehalten, bis das FIFO gelöscht und für den Empfang zusätzlicher Daten bereit ist. In diesem Fall reflektiert das Quittung-Aus-Feld des Zustandsregisters den Fehler.
  • Zum Lesen von Daten von der Busstruktur programmiert die Ursprungsanwendung die entsprechenden Informationen in die Registerdatei für den entsprechenden asynchronen Datenübertragungskanal. Der entsprechende Wert für die zu verwendete Busgeschwindigkeit, entweder 100 Mbps, 200 Mbps oder 400 Mbps, wird in das Geschwindigkeitsfeld sp programmiert. Die zu verwendende Busgeschwindigkeit muss innerhalb des Funktionsbereichs der physikalischen Schnittstelle 56 liegen und von der Busstruktur 58 unterstützt werden. Der entsprechende Wert für die spezifische, abzuschließende Transaktion wird in das Transaktionscodefeld tCode programmiert. Der entsprechende Wert, der dem Bezeichner des Zielknotens an der Busstruktur für alle Anforderungspakete entspricht, wird in das Zielbezeichnerfeld destination_ID programmiert.
  • Der anfängliche Achtundvierzig-Bit-Zielversatzwert wird in die hohen und niedrigen Zielversatzfelder destination_offset Hi und destination_offset Lo programmiert. Wenn das Nicht- Inkrementierungs-Bit in dem Steuerfeld einen logischen niedrigen Spannungswert aufweist, wird der Wert in den Zielversatzfeldern nach jeder erzeugten Anforderungstransaktion inkrementiert. Die Anzahl der Bytes für jedes zu erzeugende Anforderungspaket wird in das Datenlängenfeld data_length programmiert. Wenn der Wert in dem Transaktionscodefeld tCode gleich 0100 ist, was anzeigt, dass es sich bei der Transaktion um eine Quadlet-Lesetransaktion handelt, so ist der Wert in dem Datenlängenfeld data_length gleich Vier. Wenn der Wert in dem Transaktionscodefeld tCode gleich 0101 ist, was anzeigt, dass diese Transaktion eine Block-Lesetransaktion darstellt, so wird der Wert in dem Datenlängenfeld data_length mit einem entsprechenden Wert in dem Bereich der zulässigen Zahlen für die programmierte Busgeschwindigkeit programmiert, wie dies in der vorstehenden Tabelle III dargestellt ist. Da es sich bei der durchzuführenden Operation um eine Leseoperation und nicht um eine Sperr-Transaktion handelt, wird der Wert in dem erweiterten Transaktionscodefeld extended_tCode als gleich Null programmiert.
  • Die Anzahl der zu erzeugenden und zu übermittelnden Pakete zum Abschluss dieser Datenübertragungsoperation wird in das Paketzählerfeld programmiert. Der Wert in dem Paketzählerfeld kann anfangs mit gleich Null programmiert werden, wenn die Anwendung in das Paketzähler-Erhöhungsfeld schreibt, um die entsprechenden Transaktionen nacheinander zu erzeugen. Das Nicht-Inkrementierungs-Bit in dem Steuerfeld wird so programmiert, dass es gleich einem logischen hohen Spannungswert ist, wenn alle Anforderungspakete an die gleiche Zielversatzadresse übermittelt werden sollen. Das Nicht- Inkrementierungs-Bit in dem Steuerfeld wird auf einen Wert gleich dem logischen niedrigen Spannungswert programmiert, wenn die Anforderungspakete an einen ansteigenden Adressbereich übermittelt werden sollen. Das Betriebssteuerbit go in dem Steuerfeld wird auf einen Wert gleich einem logischen hohen Spannungswert programmiert, um es zu ermöglichen, dass der asynchrone Datenübertragungskanal mit der Erzeugung der entsprechenden Transaktionen beginnt, die erforderlich sind, um die Datenübertragungsoperation abzuschließen.
  • Wenn das Betriebssteuerbit go in dem Steuerfeld auf einen logischen hohen Spannungswert gesetzt wird, tritt der asynchrone Datenübertragungskanal in den aktiven Zustand ein. Im aktiven Zustand erzeugt der asynchrone Datenübertragungskanal Lese-Anforderungspakete gemäß der Lese- Zustandsvorrichtung gemäß der Definition in Tabelle VI.
  • TABELLE VI
  • while(Active ())
  • if(packet_counter==0) /*wenn keine Pakete z, send.*/ continue; /*loop, um akt. Zust.z.verif.*/
  • if((RAM_Free< data_length) /*wenn nicht genug freier Platz*/ &&(RAM_Data!=0== /*und n. nicht leer*/ continue; /*loop, um akt. Zust.z.verify.*/ /*genug Raum für ein Paket*/
  • Arbitrate (); /*Zugriff auf Link-Kern*/
  • if(tCode==4) /*Wenn Quadlet*/
  • SendHeaderRegs(12); /*ersten 12 Bytes an Headerr. s.*/
  • Else /*ist Block*/
  • SendHeaderRegs(16); /*erst.16 Bytes a.Headerr. send.*/
  • /*Hier müssen ungült. Quittungen bearbeitet werden*/
  • GetData (data_length,/*empf.Daten in Puffer-RAM*/ &RAM_Data, &RAM_Free); /*als angek.Daten anpass.*/
  • /*Hier müssen rcodes, die zurückkommen, bearb. werden*/
  • --packet_counter; /*Paketzähler dekrem.*/ if(!non_increment) /*falls inkrementierend*/
  • destination_offset+=data_length; /*Ziel inkrementieren*/
  • }
  • Die Ursprungsanwendung kann jederzeit in das Paketzähler- Erhöhungsfeld schreiben, wodurch der Wert in dem Paketzählerfeld um Eins erhöht wird. Die Lesezustandsvorrichtung des asynchronen Datenübertragungskanals erzeugt gemäß der Definition in der vorstehenden Tabelle VI immer dann ein Lese-Anforderungspaket, wenn in dem mit dem aktiven asynchronen Datenübertragungskanal ein größerer freier Raum als für ein Paket vorhanden ist. Die Lesezustandsvorrichtung des asynchronen Datenübertragungskanals erzeugt auch dann ein Leseanforderungspaket, wenn das dem asynchronen Datenübertragungskanal entsprechende FIFO völlig leer ist. Wenn die eingebettete Anwendung gewährleistet, dass die Daten schnell genug aus dem entsprechenden FIFO getaktet werden und mit einer ausreichend kurzen Latenz, so kann die Größe des dem asynchronen Datenübertragungskanal entsprechenden FIFO kleiner sein als die Anzahl der Bytes, die durch den Wert in dem Datenlängenfeld data_length in der Registerdatei 80 spezifiziert sind.
  • Für jedes Lese-Anforderungspaket, das durch den asynchronen Datenübertragungskanal erzeugt wird, erwartet der asynchrone Datenübertragungskanal, dass der Zielknoten ein entsprechendes Lese-Antwortpaket erzeugt. Der Demultiplexer verwendet den Transaktionscode tCode und das Transaktionsetikett tl in dem Lese-Antwortpaket, um das Paket zu dem entsprechenden asynchronen Datenübertragungskanal zu leiten, wenn in einem System mehrere asynchrone Datenübertragungskanäle vorgesehen sind. Der empfangende asynchrone Datenübertragungskanal entfernt dann den Header und macht das Datenfeld an der entsprechenden FIFO-Schnittstelle verfügbar.
  • Wenn nach der Erzeugung jedes Lese-Anforderungspakets das Nicht-Inkrementierungs-Bit in dem Steuerfeld nicht auf einen logischen hohen Spannungswert gesetzt ist, erhöht der asynchrone Datenübertragungskanal den Zielversatzadressenwert um den Wert in dem Datenlängenfeld data_length zur Vorbereitung auf die Erzeugung des nächsten Lese- Anforderungspakets. Obwohl dies in der Definition der Lese- Zustandsvorrichtung aus der vorstehenden Tabelle VI nicht vorgesehen ist, untersucht der asynchrone Datenübertragungskanal die Quittung in dem Feld für jedes erzeugte Schreib-Anforderungspaket und das Antwortcodefeld rcode für jedes entsprechende Lese-Antwortpaket. Wenn entweder die Quittung in dem Feld oder das Antwortcodefeld rcode einen Fehler anzeigt, oder wenn der asynchrone Datenübertragungskanal einen ungültigen Quittungscode für das Lese-Antwortpaket aufgrund eines Fehlers zurückführen muss, hält der asynchrone Datenübertragungskanal sofort an und speichert sowohl die Quittungscodes als auch den Antwortcode rcode in dem Zustandsfeld des asynchronen Datenübertragungskanals in der Registerdatei 80. Bei geteilten Transaktionen misst der asynchrone Datenübertragungskanal die Zeit der Antwort. Wenn zwischen dem Anforderungspaket und dem entsprechenden Antwortpaket mehr als 100 Millisekunden liegen, stoppt der asynchrone Datenübertragungskanal und zeigt die definierten Zustandsinformationen in dem Zustandsfeld der Registerdatei 80 an.
  • Schreiboperationen
  • Bei der Ausführung einer Schreiboperation und dem Senden von Daten von der Ursprungsanwendung an einen anderen Knoten, der mit der Busstruktur gekoppelt ist, erzeugt ein asynchroner Datenübertragungskanal einen entsprechenden Header unter Verwendung der Informationen in der Registerdatei 80 als Mustervorlage. Der Header wird danach einem entsprechenden Datenpaket hinzugefügt, und sowohl der Header als auch das Datenpaket werden durch den Link-Kern 44 auf die Busstruktur 58 übertragen. Wenn die Inkrementierungsfunktion nicht deaktiviert ist, erhöht der asynchrone Datenübertragungskanal den Wert in den Zielversatzfeldern und erzeugt den Header für das nächste Datenpaket. Nach der Erzeugung jeder Transaktion wird der Paketzählerwert herabgesetzt. Dieser Prozess wird solange wiederholt, bis der Wert in dem Paketzählerfeld gleich Null ist.
  • Wenn ein asynchroner Datenübertragungskanal aktiv ist und Daten von dem FIFO zu der Busstruktur 58 überträgt, so fungiert der Kanal als eine Datenübermittlungs- Zustandsvorrichtung gemäß der nachstehenden Definition in Tabelle VII.
  • TABELLE VII
  • while (Active ()) {
  • if (RAM-Free==0) /*ohne freiem Platz*/ continue; /*loop, zum Prüfen v. akt.Zustand*/
  • AssertReq (); /*freier Platz und aktiv*/
  • while (!Ack() /*Assert Anford.*/ &&Active()); /*Auf Quittung warten*/
  • if(!Active()) /*verlassen, wenn n. mehr aktiv*/ break;
  • LatchWord(); /*Wort speichern*/
  • DeAssertReq(); /*Deassert Anford.*/
  • }
  • Die FIFO-Schnittstelle taktet die Daten von dem FIFO zu dem entsprechenden asynchronen Datenübertragungskanal mit einem Takt, der mit der Schnittstelle der Busstruktur synchronisiert ist. Die FIFO weist immer ein verfügbares Datenwort auf, wenn der asynchrone Datenübertragungskanal ein Wort anfordert. Wenn das Anforderungssignal Req geltend gemacht wird, wenn keine Daten in dem FIFO sind, so kommt es zu einem FIFO-Unterlauf. Dies erzeugt einen Fehler, der von dem entsprechenden asynchronen Datenübertragungskanal erfasst und bearbeitet wird. Die Anwendung ist dafür verantwortlich zu gewährleisten, dass die entsprechenden Daten in dem FIFO zur Übertragung über die Busstruktur 58 gespeichert werden. Wenn ein FIFO-Unterlauf eintritt, werden die verbleibenden Transaktionen angehalten, bis das FIFO zusätzliche zu übermittelnde Daten aufweist.
  • Zum Schreiben von Daten auf die Busstruktur 58 programmiert die Anwendung die entsprechenden Informationen in die Registerdatei für den entsprechenden asynchronen Datenübertragungskanal. Der entsprechende zu verwendende Wert für die Busgeschwindigkeit, 100 Mbps, 200 Mbps oder 400 Mbps, wird in das Geschwindigkeitsfeld sp programmiert. Die zu verwendende Busgeschwindigkeit wird so ausgewählt, dass sie innerhalb des Funktionsbereichs der physikalischen Schnittstelle 56 liegt und von der Busstruktur 58 unterstützt wird. Der entsprechende Wert für die spezifische Transaktion, die abzuschließen ist, wird in das Transaktionscodefeld tCode programmiert. Wenn es sich bei den Anforderungen um Quadlet- Schreibanforderungen handelt, wird ein Wert von 0000 in das Transaktionscodefeld tCode programmiert. Wenn es sich bei den Anforderungen um Block-Schreibanforderungen handelt, wird ein Wert von 0001 in das Transaktionscodefeld tCode programmiert. Der entsprechende Wert, der dem Bezeichner des Zielknotens an der Busstruktur für alle Anforderungspakete entspricht, wird in das Zielbezeichnerfeld destination_ID programmiert.
  • Der anfängliche Achtundvierzig-Bit-Zielversatzwert wird in die hohen und niedrigen Zielversatzfelder destination_offset Hi und destination_offset Lo programmiert. Wenn das Nicht- Inkrementierungs-Bit in dem Steuerregister einen logischen niedrigen Spannungswert aufweist, wird der Wert in den Zielversatzfeldern der Registerdatei 80 nach Abschluss jeder Anforderungstransaktion erhöht. Die Anzahl der Bytes für jedes zu erzeugende Anforderungspaket wird in das Datenlängenfeld data_length programmiert. Wenn der Wert in dem Transaktionscodefeld tcode gleich 0000 ist, was anzeigt, dass diese Transaktion eine Quadlet-Schreibtransaktion darstellt, so ist der Wert in dem Datenlängenfeld data_length gleich Vier. Wenn der Wert in dem Transaktionscodefeld tCode gleich 0001 ist, was anzeigt, dass es sich bei dieser Transaktion um eine Block-Schreibtransaktion handelt, so wird der Wert in dem Datenlängenfeld data_length mit einem entsprechenden Wert im Bereich der zulässigen Zahlen für die programmierte Busgeschwindigkeit programmiert, wie dies in der vorstehenden Tabelle III dargestellt ist. Da es sich bei der durchgeführten Transaktion um eine Schreiboperation handelt, wird der Wert in dem erweiterten Transaktionscodefeld extended_tCode mit gleich Null programmiert.
  • Die Anzahl der zu erzeugenden Pakete, die zu übermitteln sind, um diese Transaktion abzuschließen, wird in das Paketzählerfeld programmiert. Der Wert in dem Paketzählerfeld kann anfänglich mit gleich Null programmiert werden, wenn die Anwendung das Paketzähler-Erhöhungsfeld beschreibt, um nacheinander die entsprechenden Transaktionen zu erzeugen. Das Nicht-Inkrementierungs-Bit in dem Steuerfeld wird so programmiert, dass es dem logischen hohen Spannungswert entspricht, wenn alle Anforderungspakete an die gleiche Zielversatzadresse gesendet werden sollen. Das Nicht- Inkrementierungs-Bit in dem Steuerfeld wird so programmiert, dass es einem logischen niedrigen Spannungswert entspricht, wenn die Anforderungspakete an einen ansteigenden Adressbereich übermittelt werden sollen. Das Betriebssteuerbit go in dem Steuerfeld wird so programmiert, dass es einem logischen hohen Spannungswert entspricht, so dass der asynchrone Datenübertragungskanal mit dem Erzeugen der entsprechenden Transaktionen beginnen kann, die erforderlich sind, um die Datenübertragungsoperation abzuschließen.
  • Wenn das Betriebssteuerbit go in dem Steuerfeld der Registerdatei 80 auf einen logischen hohen Spannungswert gesetzt wird, tritt der asynchrone Datenübertragungskanal in den aktiven Zustand ein. Im aktiven Zustand erzeugt der asynchrone Datenübertragungskanal Anforderungspakete gemäß der Schreib-Zustandsvorrichtung gemäß der Definition in der folgenden Tabelle VIII.
  • TABELLE VIII
  • while (Active()) {
  • if(packet_counter==0) /*wenn k.Pak. zu senden*/ continue /*Loop, um ak.Z.z.verif.*/
  • if({{RAM_Data< data_length) /*wenn nicht gen. Daten*/ &&(RAM_Free!=0)) /*und n. nicht voll*/ continue; /*lcop, um ak. Z. z ver.*/ /*genug Daten f. ein Paket*/
  • Arbitrate (); /*Zugr. Auf Link-Kern*/
  • if(tCode==0) /*wenn Quadlet*/ SendHeaderRegs(12); /*erste 12 Bytes v. Head.r.s.*/
  • Else /*ansonsten ist es Block*/ SendHeaderRegs(16); /*erst.16 Bytes v. Head.r.se.*/
  • SendData (data_length, /*Datenf.v.Puffer-RAM senden*/ &RAM_Data, &RAM_Free> ; /*bei Dat.übertr. anpassen*/ if(ack==pending) /*bei anh.Quitt.code*/ WaitResponse()1 /*auf Antwortpaket warten*/
  • /*Hinweis: hier müssen ung. Quitt.codes u. ung.rcodes bearb. werden*/
  • --packet_counter; /*Paketzähler herabsetzen*/
  • if(!non_increment) /*falls inkrementierend*/
  • destination_offset+=data_length; /*Ziel inkrementieren*/
  • }
  • Zu jedem Zeitpunkt kann die Ursprungsanwendung das Paketzähler-Erhöhungsfeld beschreiben und dadurch den Wert in dem Paketzählerfeld um Eins erhöhen. Die Schreib- Zustandsvorrichtung des asynchronen Datenübertragungskanals bildet gemäß der Definition in der obigen Tabelle VIII ein Schreib-Anforderungspaket, wenn mehr Daten als für ein Paket in dem FIFO vorgesehen sind, das mit dem aktiven asynchronen Datenübertragungskanal verbunden ist. Die Schreib- Zustandsvorrichtung des asynchronen Datenübertragungskanals bildet ferner ein Schreib-Anforderungspaket, wenn das FIFO, das dem asynchronen Datenübertragungskanal entspricht, ganz gefüllt ist. Wenn die eingebettete Anwendung gewährleistet, dass die Daten in dem entsprechenden FIFO schnell genug gesperrt werden und mit ausreichend kurzer Latenz, kann die Größe des dem asynchronen Datenübertragungskanal entsprechenden FIFO kleiner sein als die Anzahl der Bytes, die durch den Wert in dem Datenlängenfeld data_length in der Registerdatei 80 spezifiziert ist.
  • Nach der Erzeugung jedes Schreib-Anforderungspakets, wenn das Nicht-Inkrementierungs-Bit in dem Steuerfeld nicht auf einen logischen hohen Spannungswert gesetzt ist, erhöht der asynchrone Datenübertragungskanal den Zielversatzadresswert um den Wert in dem Datenlängenfeld data_length in Vorbereitung auf die Erzeugung des nächsten Schreib-Anforderungspakets. Obwohl dies in der in Tabelle VIII definierten Schreib- Zustandsvorrichtung nicht dargestellt ist, untersucht der asynchrone Datenübertragungskanal die Quittung in dem Feld für jedes Schreib-Anforderungspaket, das erzeugt wird und dem Antwortcodefeld rcode, wenn er Zielknoten ein Schreib- Antwortpaket erzeugt. Wenn die Quittung in dem Feld oder das Antwortcodefeld rcode einen Fehler anzeigt oder wenn der asynchrone Datenübertragungskanal aufgrund eines Fehlers einen ungültigen Quittungscode für das Schreib-Antwortpaket zurückführen muss, hält der asynchrone Datenübertragungskanal sofort an und speichert sowohl die Quittungscodes als auch den Antwortcode rcode in dem Zustandsfeld des asynchronen Datenübertragungskanals in der Registerdatei 80. Bei geteilten Transaktionen stoppt der asynchrone Datenübertragungskanal die Zeit der Antwort. Wenn zwischen dem Anforderungspaket und dem entsprechenden Antwortpaket mehr als 100 Millisekunden liegen, hält der asynchrone Datenübertragungskanal an und zeigt die definierten Zustandsinformationen in dem Zustandsfeld der Registerdatei 80 an.
  • In dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung handelt es sich bei der Busstruktur 58 um eine Busstruktur des IEEE 1394 Standards. Somit erzeugt jeder asynchrone Datenübertragungskanal Transaktionen, Header, Anforderungen und Antworten in dem von dem IEEE 1394 Standard vorausgesetzten Format. Für den Fachmann ist es ersichtlich, dass der erfindungsgemäße asynchrone Datenübertragungskanal in Verbindung mit anderen Arten von Busstrukturen und Systemen eingesetzt werden kann. Bei solchen Systemen wird der asynchrone Datenübertragungskanal so angepasst, dass er für die entsprechende Busstruktur jeweils die angemessenen Transaktionen, Header, Anforderungen und Antworten erzeugt.
  • Die vorliegende Erfindung wurde durch spezifische Ausführungsbeispiele mit Details beschrieben, um das Verständnis der Grundsätze der Konstruktion und der Funktionsweise der Erfindung zu erleichtern. Alle Bezugnahmen auf die spezifischen Ausführungsbeispiele und Details schränken den Umfang der anhängigen Ansprüche in keiner Weise ein.

Claims (19)

1. Asynchroner Datenübertragungskanal (20), der so konfiguriert ist, daß er eine Verbindung zwischen einer Anwendung (12) und einer IEEE-1394-Busstruktur vorsieht, um asynchrone Datenübertragungsoperationen zu und von der Anwendung über die Busstruktur (58) zu verwalten, wobei der Datenübertragungskanal folgendes umfaßt:
(a) eine Programmierschaltung, die mit einer Registerdatei (26) verbunden und so konfiguriert ist, daß sie mit der Anwendung (12) derart verbunden ist, daß sie Anweisungen in Bezug auf eine Datenübertragungsoperation von der Anwendung (12) empfängt und die Anweisungen in der Registerdatei (26) speichert; und
(b) eine automatische Transaktionserzeugungsschaltung, die mit der Registerdatei (26) gekoppelt ist, um automatisch die für die Vollendung der Datenübertragungsoperation erforderlichen Transaktionen zu erzeugen, und zwar ohne unmittelbare Prozessorsteuerung oder Überwachung durch die Anwendung (12).
2. Asynchroner Datenübertragungskanal (20) nach Anspruch 1, wobei die Registerdatei (26) als Vorlage für die Erzeugung der Transaktionen und Header verwendet wird, die für die Vollendung der Datenübertragungsoperation erforderlich sind, und zwar ohne unmittelbare Prozessorsteuerung oder Überwachung durch die Anwendung (12).
3. Asynchroner Datenübertragungskanal (20) nach Anspruch 2, wobei die Registerdatei (26) eine Zieladresse, eine zu übertragende Datenlänge, eine Länge jedes zu übertragenden Datenpakets sowie eine Übertragungsrichtung aufweist.
4. Asynchroner Datenübertragungskanal (20) nach Anspruch 3, ferner mit einer physischen Busschnittstelle, die so konfiguriert ist, daß sie die Busstruktur (58) derart verbindet, daß Daten auf der Busstruktur (58) plaziert und Daten aus der Busstruktur (58) gewonnen werden.
5. Asynchroner Datenübertragungskanal (20) nach Anspruch 4, wobei die für die Vollendung der Datenübertragungsoperation erforderlichen Transaktionen für einen ansteigenden Adreßbereich erzeugt werden.
6. Asynchroner Datenübertragungskanal (20) nach Anspruch 4, wobei die für die Vollendung der Datenübertragungsoperation erforderlichen Transaktionen für eine feste Adresse erzeugt werden.
7. Asynchroner Datenübertragungskanal (20) nach Anspruch 4, wobei die Registerdatei (26) ferner einen Paketzählerwert aufweist, der die Anzahl der Pakete darstellt, die für die Übertragung verbleiben, wobei der Paketzählerwert nach der Übertragung jedes Datenpakets dekrementiert wird.
8. Asynchroner Datenübertragungskanal (20) nach Anspruch 7, wobei die Anwendung (12) den Paketzählerwert automatisch erhöht, indem ein vorbestimmtes Feld in der Registerdatei (26) beschrieben wird.
9. Asynchroner Datenübertragungskanal (20) nach Anspruch 8, wobei es sich bei der Busstruktur (58) um eine IEEE-1394- Busstruktur handelt.
10. Verfahren zur Verwaltung einer Schreib- Datenübertragungsoperation zwischen einer Anwendung (12) und einem mit einer Busstruktur (58) gekoppelten Knoten, wobei das Verfahren die folgenden Schritte umfaßt:
(a) Empfangen von Anweisungen in Bezug auf eine Schreib- Datenübertragungsoperation von der Anwendung (12);
(b) Speichern der genannten Anweisungen in einer Registerdatei (26);
(c) Erlangen eines Datenpakets von der Anwendung;
(d) Erzeugen eines Headers für die Datenübertragungsoperation, wobei der Header ohne unmittelbare Prozessorsteuerung oder Überwachung durch die Anwendung erzeugt wird;
(e) Hinzufügen des Headers zu dem Datenpaket, wobei der Header eine Zieladresse für das Datenpaket aufweist; und
(f) Übertragen des Datenpakets, einschließlich des Headers, auf die Busstruktur (58).
11. Verfahren nach Anspruch 10, wobei die Anweisungen eine Zieladresse, eine Länge der zu übertragenden Daten, eine Länge jedes zu übertragenden Datenpakets sowie einen Paketzählerwert aufweisen, der die Anzahl der zu übertragenden Pakete darstellt.
12. Verfahren nach Anspruch 11, wobei die Registerdatei (26) als Vorlage für die Erzeugung des Headers und der Transaktionen verwendet wird, die erforderlich sind, um ein Datenpaket auf die Busstruktur (58) zu schreiben, und zwar ohne unmittelbare Prozessorsteuerung oder Überwachung durch die Anwendung (12).
13. Verfahren nach Anspruch 12, wobei das Verfahren ferner die folgenden Schritte umfaßt:
(g) Erweiterung der Zieladresse um die Länge eines Datenpakets;
(h) Dekrementieren des Paketzählerwertes; und
(i) Wiederholen der Schritte (b) - (h) für jedes zu übertragende Datenpaket, bis der Paketzählerwert gleich Null ist.
14. Verfahren nach Anspruch 13, wobei das Datenpaket aus dem Datenspeicherpuffer (32) gewonnen wird, der durch die Anwendung (12) geladen wird.
15. Verfahren zur Verwaltung einer Lese- Datenübertragungsoperation zwischen einer Anwendung (12) und einem mit einer Busstruktur (58) gekoppelten Knoten, wobei das Verfahren die folgenden Schritte umfaßt:
(a) Empfangen von Anweisungen in Bezug auf eine Lese- Datenübertragungsoperation von der Anwendung (12);
(b) Speichern der genannten Anweisungen in einer Registerdatei (26);
(c) Erzeugen einer Transaktion, die für die Anforderung erforderlich ist, daß ein Datenpaket von dem Knoten auf der Busstruktur (58) plaziert wird, wobei die Transaktion ohne direkte Prozessorsteuerung oder Überwachung durch die Anwendung (12) erzeugt wird;
(d) Erlangen des Datenpakets von der Busstruktur (58);
(e) Auslesen des Datenpakets ohne Headerdaten in die Anwendung (12).
16. Verfahren nach Anspruch 15, wobei die Anweisungen eine Zieladresse aufweisen, die eine Startadresse in dem Knoten darstellt, von der aus die Daten übermittelt werden, eine Länge der zu übertragenden Daten, eine Länge jedes zu übertragenden Datenpakets und einen Paketzählerwert, der einer Anzahl zu übertragender Pakete entspricht.
17. Verfahren nach Anspruch 16, wobei die Registerdatei (26) als Vorlage für die Erzeugung der zum Lesen eines Datenpakets aus dem Knoten erforderlichen Transaktion und des Headers verwendet wird, und zwar ohne unmittelbare Prozessorsteuerung oder Überwachung.
18. Verfahren nach Anspruch 17, wobei das Verfahren ferner die folgenden Schritte umfaßt:
(g) Erweitern der Zieladresse um die Länge eines Datenpakets;
(h) Dekrementieren des Paketzählerwertes; und
(i) Wiederholen der Schritte (b) bis (h) für jedes zu übertragende Datenpaket, bis der Paketzählerwert gleich Null ist.
19. Verfahren nach Anspruch 18, wobei das Datenpaket über einen Datenspeicherpuffer (32) an die Anwendung (12) vorgesehen wird.
DE69703732T 1996-03-07 1997-02-19 Asynchrones datenübertragungsgerät zur verwaltung asynchroner datenübertragungen zwischen einem anwendungsprogramm und einer busstruktur Expired - Lifetime DE69703732T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/612,321 US6519268B1 (en) 1996-03-07 1996-03-07 Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
PCT/US1997/002546 WO1997033230A1 (en) 1996-03-07 1997-02-19 Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure

Publications (2)

Publication Number Publication Date
DE69703732D1 DE69703732D1 (de) 2001-01-25
DE69703732T2 true DE69703732T2 (de) 2001-06-13

Family

ID=24452676

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69703732T Expired - Lifetime DE69703732T2 (de) 1996-03-07 1997-02-19 Asynchrones datenübertragungsgerät zur verwaltung asynchroner datenübertragungen zwischen einem anwendungsprogramm und einer busstruktur

Country Status (10)

Country Link
US (4) US6519268B1 (de)
EP (1) EP0885418B1 (de)
JP (1) JP4155413B2 (de)
KR (1) KR100439539B1 (de)
AT (1) ATE198237T1 (de)
AU (1) AU2129997A (de)
CA (1) CA2247341C (de)
DE (1) DE69703732T2 (de)
TW (1) TW381233B (de)
WO (1) WO1997033230A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10302363A1 (de) * 2003-01-22 2004-08-05 Deutsche Thomson-Brandt Gmbh Verfahren zum Betreiben eines Netzwerks von Schnittstellenknoten und Schnittstelleneinrichtung

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577782B2 (en) * 1996-02-02 2009-08-18 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US6519268B1 (en) * 1996-03-07 2003-02-11 Sony Corporation Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US6233637B1 (en) * 1996-03-07 2001-05-15 Sony Corporation Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure
US5978858A (en) * 1997-09-30 1999-11-02 Compaq Computer Corporation Packet protocol and distributed burst engine
US6128669A (en) * 1997-09-30 2000-10-03 Compaq Computer Corporation System having a bridge with distributed burst engine to decouple input/output task from a processor
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
US6912566B1 (en) * 1998-07-28 2005-06-28 Siemens Aktiengesellschaft Memory device and method for operating the memory device
US6505255B1 (en) 1999-04-29 2003-01-07 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Method for formatting and routing data between an external network and an internal network
US6496862B1 (en) 1998-08-25 2002-12-17 Mitsubishi Electric Research Laboratories, Inc. Remote monitoring and control of devices connected to an IEEE 1394 bus via a gateway device
AU4482000A (en) * 1999-04-23 2000-11-10 Sony Electronics Inc. Method of and apparatus for implementing and sending an asynchronous control mechanism packet
US6633547B1 (en) 1999-04-29 2003-10-14 Mitsubishi Electric Research Laboratories, Inc. Command and control transfer
US6523064B1 (en) 1999-04-29 2003-02-18 Mitsubishi Electric Research Laboratories, Inc Network gateway for collecting geographic data information
US6378000B1 (en) 1999-04-29 2002-04-23 Mitsubish Electric Research Laboratories, Inc Address mapping in home entertainment network
US6859846B2 (en) 1999-05-12 2005-02-22 Sony Corporation Method of distributed recording whereby the need to transition to a second recording device from a first recording device is broadcast by the first recording device
US6247069B1 (en) 1999-05-12 2001-06-12 Sony Corporation Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices
JP2001244952A (ja) * 2000-02-29 2001-09-07 Sony Corp 通信制御装置
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
US6904475B1 (en) 2000-11-06 2005-06-07 Sony Corporation Programmable first-in first-out (FIFO) memory buffer for concurrent data stream handling
US7124292B2 (en) 2001-05-21 2006-10-17 Sony Corporation Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices
US8370517B2 (en) * 2001-09-27 2013-02-05 International Business Machines Corporation Conserving energy in a data processing network
US7248568B1 (en) 2002-02-26 2007-07-24 Marvell International, Ltd. Apparatus for detecting hidden nodes in a wireless network
US7983142B2 (en) 2004-03-30 2011-07-19 Intel Corporation Apparatus, systems, and methods for the reception and synchronization of asynchronous signals
DE102004045118A1 (de) * 2004-09-17 2006-03-23 Robert Bosch Gmbh Verfahren und Vorrichtung zur Datenübertragung
US8156220B1 (en) * 2007-09-28 2012-04-10 Emc Corporation Data storage system
US9063922B2 (en) 2012-12-18 2015-06-23 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Firmware generated register file for use in hardware validation
US10223407B2 (en) * 2014-10-31 2019-03-05 Cisco Technology, Inc. Asynchronous processing time metrics
US10073939B2 (en) 2015-11-04 2018-09-11 Chronos Tech Llc System and method for application specific integrated circuit design
US9977853B2 (en) 2015-11-04 2018-05-22 Chronos Tech Llc Application specific integrated circuit link
US11550982B2 (en) 2015-11-04 2023-01-10 Chronos Tech Llc Application specific integrated circuit interconnect
WO2017124012A1 (en) * 2016-01-13 2017-07-20 Locus-Control Llc Low power communications system
US10181939B2 (en) 2016-07-08 2019-01-15 Chronos Tech Llc Systems and methods for the design and implementation of an input and output ports for circuit design
US10637592B2 (en) * 2017-08-04 2020-04-28 Chronos Tech Llc System and methods for measuring performance of an application specific integrated circuit interconnect
CN109919359B (zh) * 2019-02-01 2024-06-04 武汉天之然知识产权运营有限公司 一种基于adp算法的车辆路径规划方法
US11087057B1 (en) 2019-03-22 2021-08-10 Chronos Tech Llc System and method for application specific integrated circuit design related application information including a double nature arc abstraction

Family Cites Families (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2221629C3 (de) 1972-05-03 1978-04-27 Siemens Ag, 1000 Berlin Und 8000 Muenchen Verfahren zur Synchronisierung in Zeitmultiplex-Übertragungssystemen
US3906484A (en) 1972-09-13 1975-09-16 Westinghouse Electric Corp Decoder input circuit for receiving asynchronous data bit streams
NL7313756A (de) * 1972-10-11 1974-04-16
US4067059A (en) 1976-01-29 1978-01-03 Sperry Rand Corporation Shared direct memory access controller
US4218756A (en) 1978-06-19 1980-08-19 Bell Telephone Laboratories, Incorporated Control circuit for modifying contents of packet switch random access memory
US4409656A (en) 1980-03-13 1983-10-11 Her Majesty The Queen, In Right Of Canada As Represented By The Minister Of National Defense Serial data bus communication system
US4395710A (en) 1980-11-26 1983-07-26 Westinghouse Electric Corp. Bus access circuit for high speed digital data communication
US4379294A (en) 1981-02-12 1983-04-05 Electric Power Research Institute, Inc. Data highway access control system
US4493021A (en) 1981-04-03 1985-01-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Multicomputer communication system
US4507732A (en) 1981-10-05 1985-03-26 Burroughs Corporation I/O subsystem using slow devices
US4633392A (en) 1982-04-05 1986-12-30 Texas Instruments Incorporated Self-configuring digital processor system with logical arbiter
GB8304950D0 (en) 1983-02-22 1983-03-23 Int Computers Ltd Data communication systems
US4897783A (en) 1983-03-14 1990-01-30 Nay Daniel L Computer memory system
US4857910A (en) 1983-12-19 1989-08-15 Pitney Bowes Inc. Bit-map CRT display control
US4739323A (en) 1986-05-22 1988-04-19 Chrysler Motors Corporation Serial data bus for serial communication interface (SCI), serial peripheral interface (SPI) and buffered SPI modes of operation
DE3683943D1 (de) 1986-11-14 1992-03-26 Ibm Steuerungsschnittstelle fuer datentransfer zwischen einer datenverarbeitungseinheit und ein-ausgabevorrichtungen.
JPS63129449U (de) 1987-02-16 1988-08-24
US4972470A (en) 1987-08-06 1990-11-20 Steven Farago Programmable connector
JPH0630035B2 (ja) 1987-11-26 1994-04-20 富士通株式会社 クロック同期型システムにおけるクロック切替え制御方式
US4998245A (en) * 1987-12-17 1991-03-05 Matsushita Electric Industrial Co., Ltd. Information transmission system having collective data transmission and collection devices
JPH0832644B2 (ja) 1988-04-05 1996-03-29 旭化成工業株式会社 メタクリル酸および/またはメタクロレインの製造方法
US5005151A (en) * 1988-05-13 1991-04-02 Dallas Semiconductor Corporation Interleaved arbitration scheme for interfacing parallel and serial ports to a parallel system port
US5140679A (en) 1988-09-14 1992-08-18 National Semiconductor Corporation Universal asynchronous receiver/transmitter
US5008879B1 (en) 1988-11-14 2000-05-30 Datapoint Corp Lan with interoperative multiple operational capabilities
US5359713A (en) 1989-06-01 1994-10-25 Legato Systems, Inc. Method and apparatus for enhancing synchronous I/O in a computer system with a non-volatile memory and using an acceleration device driver in a computer operating system
JPH03123232A (ja) 1989-10-06 1991-05-27 Matsushita Electric Ind Co Ltd データ伝送制御処理方法
JPH03156554A (ja) 1989-11-14 1991-07-04 Hitachi Ltd データ転送制御方式
FR2658971B1 (fr) 1990-02-23 1995-07-28 Europ Rech Electr Lab Procede de traitement des donnees numeriques de controle associees a un signal video de type hd-mac et dispositif pour la mise en óoeuvre du procede.
DE69132300T2 (de) 1990-03-12 2000-11-30 Hewlett-Packard Co., Palo Alto Durch Anwender festgelegter direkter Speicherzugriff mit Anwendung von virtuellen Adressen
US5325510A (en) 1990-05-25 1994-06-28 Texas Instruments Incorporated Multiprocessor system and architecture with a computation system for minimizing duplicate read requests
US5343469A (en) 1990-06-14 1994-08-30 Nec Corporation Communication system and communication devices having lock function
US5157663A (en) 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
US5546553A (en) 1990-09-24 1996-08-13 Texas Instruments Incorporated Multifunctional access devices, systems and methods
US5307491A (en) 1991-02-12 1994-04-26 International Business Machines Corporation Layered SCSI device driver with error handling circuit providing sense data from device directly to the driver on the occurrence of an error
DE4129205A1 (de) 1991-03-28 1992-10-01 Bosch Gmbh Robert Verfahren zum aufbau von botschaften fuer den datenaustausch und/oder fuer die synchronisation von prozessen in datenverarbeitungsanlagen
US5369773A (en) 1991-04-26 1994-11-29 Adaptive Solutions, Inc. Neural network using virtual-zero
US5276684A (en) 1991-07-22 1994-01-04 International Business Machines Corporation High performance I/O processor
JP3243803B2 (ja) 1991-08-28 2002-01-07 ソニー株式会社 Av機器
US5487153A (en) 1991-08-30 1996-01-23 Adaptive Solutions, Inc. Neural network sequencer and interface apparatus
EP0543512B1 (de) * 1991-11-19 1999-10-06 International Business Machines Corporation Multiprozessorsystem
US5471632A (en) 1992-01-10 1995-11-28 Digital Equipment Corporation System for transferring data between a processor and a system bus including a device which packs, unpacks, or buffers data blocks being transferred
US5475860A (en) 1992-06-15 1995-12-12 Stratus Computer, Inc. Input/output control system and method for direct memory transfer according to location addresses provided by the source unit and destination addresses provided by the destination unit
US5497466A (en) 1992-07-17 1996-03-05 Texas Instruments Inc. Universal address generator
US5485594A (en) * 1992-07-17 1996-01-16 International Business Machines Corporation Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system
EP0588046A1 (de) 1992-08-14 1994-03-23 International Business Machines Corporation Standard IEEE 802.2 virtueller Gerättreiber
US5647057A (en) * 1992-08-24 1997-07-08 Texas Instruments Incorporated Multiple block transfer mechanism
US5499344A (en) 1992-10-07 1996-03-12 Texas Instruments Incorporated Programmable dual port data unit for interfacing between multiple buses
EP0596651A1 (de) 1992-11-02 1994-05-11 National Semiconductor Corporation Datennetz mit isochroner Übertragungsfähigkeit
EP0596648A1 (de) 1992-11-02 1994-05-11 National Semiconductor Corporation Erkennung du Fähigkeiten eines Netzendpunkts
US5550802A (en) 1992-11-02 1996-08-27 National Semiconductor Corporation Data communication network with management port for isochronous switch
KR100305268B1 (ko) 1992-11-02 2001-11-22 아담 씨. 스트리겔 스위칭메카니즘에서의등시(等時)데이타의국부루프백
US5544324A (en) 1992-11-02 1996-08-06 National Semiconductor Corporation Network for transmitting isochronous-source data using a frame structure with variable number of time slots to compensate for timing variance between reference clock and data rate
US5361261A (en) 1992-11-02 1994-11-01 National Semiconductor Corporation Frame-based transmission of data
KR940017376A (ko) 1992-12-21 1994-07-26 오오가 노리오 송신 방법, 수신 방법, 통신 방법 및 쌍방향 버스 시스템
EP0607733A1 (de) 1993-01-08 1994-07-27 International Business Machines Corporation Vorrichtung und Verfahren zur Datenkommunikationen zwischen Kroten
US5400340A (en) 1993-03-04 1995-03-21 Apple Computer, Inc. End of packet detector and resynchronizer for serial data buses
GB2275852B (en) 1993-03-05 1997-02-26 Sony Broadcast & Communication Signal synchroniser with resynchronise control
US5689678A (en) 1993-03-11 1997-11-18 Emc Corporation Distributed storage array system having a plurality of modular control units
US5412698A (en) 1993-03-16 1995-05-02 Apple Computer, Inc. Adaptive data separator
US5509126A (en) 1993-03-16 1996-04-16 Apple Computer, Inc. Method and apparatus for a dynamic, multi-speed bus architecture having a scalable interface
US5559967A (en) * 1993-03-18 1996-09-24 Apple Computer, Inc. Method and apparatus for a dynamic, multi-speed bus architecture in which an exchange of speed messages occurs independent of the data signal transfers
DE69321145T2 (de) 1993-03-20 1999-06-02 International Business Machines Corp., Armonk, N.Y. Verfahren und vorrichtung zur herausarbeitung der vermittlungsinformation aus dem kopfteil eines protokolls
DE4323405A1 (de) 1993-07-13 1995-01-19 Sel Alcatel Ag Zugangskontrollverfahren für einen Pufferspeicher sowie Vorrichtung zum Zwischenspeichern von Datenpaketen und Vermittlungsstelle mit einer solchen Vorrichtung
US5887145A (en) 1993-09-01 1999-03-23 Sandisk Corporation Removable mother/daughter peripheral card
JP3373607B2 (ja) * 1993-09-01 2003-02-04 富士通株式会社 プロセッサの制御機構検証用命令列の自動生成方法及び装置
US5444709A (en) 1993-09-30 1995-08-22 Apple Computer, Inc. Protocol for transporting real time data
US5446854A (en) 1993-10-20 1995-08-29 Sun Microsystems, Inc. Virtual memory computer apparatus and address translation mechanism employing hashing scheme and page frame descriptor that support multiple page sizes
US5682493A (en) 1993-10-21 1997-10-28 Sun Microsystems, Inc. Scoreboard table for a counterflow pipeline processor with instruction packages and result packages
CA2134061A1 (en) 1993-10-28 1995-04-29 Aaron William Ogus Frame buffering of network packets
JP3307085B2 (ja) 1993-12-10 2002-07-24 ソニー株式会社 通信方法及び電子機器
US5835726A (en) 1993-12-15 1998-11-10 Check Point Software Technologies Ltd. System for securing the flow of and selectively modifying packets in a computer network
US5659780A (en) 1994-02-24 1997-08-19 Wu; Chen-Mie Pipelined SIMD-systolic array processor and methods thereof
DE69520457T2 (de) * 1994-03-09 2001-10-31 Matsushita Electric Industrial Co., Ltd. Datenübertragungssystem und Verfahren
US5465402A (en) 1994-03-23 1995-11-07 Uniden America Corp. Automatic frequency transfer and storage method
US5566174A (en) 1994-04-08 1996-10-15 Philips Electronics North America Corporation MPEG information signal conversion system
JPH07327287A (ja) 1994-05-31 1995-12-12 Matsushita Electric Ind Co Ltd データ伝送装置
JP3129143B2 (ja) 1994-05-31 2001-01-29 松下電器産業株式会社 データ転送方法
EP0765501B1 (de) * 1994-06-15 1999-03-03 Thomson Consumer Electronics, Inc. Chipkartennachrichtenübertragung ohne mikroprozessoreingriff
US5689244A (en) 1994-06-24 1997-11-18 Sony Corporation Communication system and electronic apparatus
JP3458469B2 (ja) 1994-07-15 2003-10-20 ソニー株式会社 信号受信装置及び通信方法
JP3203978B2 (ja) 1994-07-25 2001-09-04 ソニー株式会社 データ送受信装置、データ受信装置及びデータ送信装置
US5706439A (en) 1994-09-27 1998-01-06 International Business Machines Corporation Method and system for matching packet size for efficient transmission over a serial bus
US5687316A (en) 1994-07-29 1997-11-11 International Business Machines Corporation Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data
US6205538B1 (en) 1994-08-24 2001-03-20 Sun Microsystems, Inc. Instruction result labeling in a counterflow pipeline processor
JP3561969B2 (ja) * 1994-08-30 2004-09-08 ソニー株式会社 編集方法及び編集制御機器
US5586264A (en) 1994-09-08 1996-12-17 Ibm Corporation Video optimized media streamer with cache management
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5603058A (en) 1994-09-08 1997-02-11 International Business Machines Corporation Video optimized media streamer having communication nodes received digital data from storage node and transmitted said data to adapters for generating isochronous digital data streams
US5548587A (en) 1994-09-12 1996-08-20 Efficient Networks, Inc. Asynchronous transfer mode adapter for desktop applications
US5617419A (en) * 1994-09-20 1997-04-01 International Business Machines Corporation Adapting switch port and work station communication adapters to data frame types with disparate formats and data rates
JP3371174B2 (ja) 1994-09-22 2003-01-27 ソニー株式会社 パケット受信装置
US5619646A (en) 1994-09-27 1997-04-08 International Business Machines Corporation Method and system for dynamically appending a data block to a variable length transmit list while transmitting another data block over a serial bus
US5504757A (en) * 1994-09-27 1996-04-02 International Business Machines Corporation Method for selecting transmission speeds for transmitting data packets over a serial bus
US5632016A (en) 1994-09-27 1997-05-20 International Business Machines Corporation System for reformatting a response packet with speed code from a source packet using DMA engine to retrieve count field and address from source packet
US5828903A (en) 1994-09-30 1998-10-27 Intel Corporation System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer
US5640592A (en) 1994-09-30 1997-06-17 Mitsubishi Kasei America, Inc. System for transferring utility algorithm stored within a peripheral device to a host computer in a format compatible with the type of the host computer
GB2308533B (en) 1994-10-31 1999-04-07 Intel Corp M & A for exchanging data, status, and commands over a hierarchical
US5602853A (en) * 1994-11-03 1997-02-11 Digital Equipment Corporation Method and apparatus for segmentation and reassembly of ATM packets using only dynamic ram as local memory for the reassembly process
US5704052A (en) 1994-11-06 1997-12-30 Unisys Corporation Bit processing unit for performing complex logical operations within a single clock cycle
US5664124A (en) 1994-11-30 1997-09-02 International Business Machines Corporation Bridge between two buses of a computer system that latches signals from the bus for use on the bridge and responds according to the bus protocols
KR0138964B1 (ko) 1994-12-14 1998-06-15 김주용 데이타 포멧 변화기를 포함한 차분 펄스 코드 변조기
US5526353A (en) 1994-12-20 1996-06-11 Henley; Arthur System and method for communication of audio data over a packet-based network
US5533018A (en) 1994-12-21 1996-07-02 National Semiconductor Corporation Multi-protocol packet framing over an isochronous network
US5781780A (en) 1994-12-22 1998-07-14 Texas Instruments Incorporated Power management supply interface circuitry, systems and methods
US5835733A (en) 1994-12-22 1998-11-10 Texas Instruments Incorporated Method and apparatus for implementing a single DMA controller to perform DMA operations for devices on multiple buses in docking stations, notebook and desktop computer system
US5533021A (en) 1995-02-03 1996-07-02 International Business Machines Corporation Apparatus and method for segmentation and time synchronization of the transmission of multimedia data
CN100452072C (zh) * 1995-02-13 2009-01-14 英特特拉斯特技术公司 用于管理在第一装置和第二装置之间的数字文档的分布的方法
US5559796A (en) 1995-02-28 1996-09-24 National Semiconductor Corporation Delay control for frame-based transmission of data
US5784712A (en) * 1995-03-01 1998-07-21 Unisys Corporation Method and apparatus for locally generating addressing information for a memory access
US5594732A (en) 1995-03-03 1997-01-14 Intecom, Incorporated Bridging and signalling subsystems and methods for private and hybrid communications systems including multimedia systems
US5519701A (en) 1995-03-29 1996-05-21 International Business Machines Corporation Architecture for high performance management of multiple circular FIFO storage means
JP3249334B2 (ja) 1995-04-06 2002-01-21 株式会社東芝 ディジタルインターフェース装置及びディジタルインターフェース方法
US5655138A (en) 1995-04-11 1997-08-05 Elonex I. P. Holdings Apparatus and method for peripheral device control with integrated data compression
FI98028C (fi) 1995-05-03 1997-03-25 Nokia Mobile Phones Ltd Datasovitin
US5761464A (en) 1995-05-22 1998-06-02 Emc Corporation Prefetching variable length data
US5841771A (en) * 1995-07-07 1998-11-24 Northern Telecom Limited Telecommunications switch apparatus and method for time switching
US5793953A (en) * 1995-07-07 1998-08-11 Sun Microsystems, Inc. Method and apparatus for allowing packet data to be separated over multiple bus targets
US5815678A (en) 1995-07-14 1998-09-29 Adaptec, Inc. Method and apparatus for implementing an application programming interface for a communications bus
US5606559A (en) 1995-08-11 1997-02-25 International Business Machines Corporation System and method for an efficient ATM adapter/device driver interface
US5787298A (en) 1995-08-18 1998-07-28 General Magic, Inc. Bus interface circuit for an intelligent low power serial bus
US5752076A (en) 1995-08-31 1998-05-12 Intel Corporation Dynamic programming of bus master channels by intelligent peripheral devices using communication packets
US5832492A (en) 1995-09-05 1998-11-03 Compaq Computer Corporation Method of scheduling interrupts to the linked lists of transfer descriptors scheduled at intervals on a serial bus
US5692211A (en) 1995-09-11 1997-11-25 Advanced Micro Devices, Inc. Computer system and method having a dedicated multimedia engine and including separate command and data paths
US6122279A (en) * 1995-10-02 2000-09-19 Virata Limited Asynchronous transfer mode switch
US5701302A (en) 1995-10-25 1997-12-23 Motorola, Inc, Method and apparatus for adaptively companding data packets in a data communication system
US5872569A (en) * 1995-10-30 1999-02-16 Xerox Corporation Apparatus and method for programming and/or controlling output of a job in a document processing system
US5751951A (en) 1995-10-30 1998-05-12 Mitsubishi Electric Information Technology Center America, Inc. Network interface
US5970236A (en) 1995-11-14 1999-10-19 Compaq Computer Corporation Circuit for selectively performing data format conversion
US5812883A (en) 1995-11-22 1998-09-22 Mitsubishi Chemical America, Inc. System for reading and storing formatting information after formatting a first storage medium and using the stored formatting information to format a second storage medium
US6631435B1 (en) * 1996-02-02 2003-10-07 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US5991520A (en) * 1996-02-02 1999-11-23 Sony Corporation Application programming interface for managing and automating data transfer operations between applications over a bus structure
US7577782B2 (en) * 1996-02-02 2009-08-18 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US5799041A (en) 1996-02-05 1998-08-25 Xinex Networks Inc. Network for multimedia asynchronous transfer mode digital signal transmission and components thereof
US6233637B1 (en) 1996-03-07 2001-05-15 Sony Corporation Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure
US6519268B1 (en) * 1996-03-07 2003-02-11 Sony Corporation Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US5828416A (en) 1996-03-29 1998-10-27 Matsushita Electric Corporation Of America System and method for interfacing a transport decoder to a elementary stream video decorder
US5761430A (en) 1996-04-12 1998-06-02 Peak Audio, Inc. Media access control for isochronous data packets in carrier sensing multiple access systems
WO1998002881A1 (fr) 1996-07-15 1998-01-22 Kabushiki Kaisha Toshiba Appareil comportant une interface numerique, systeme de reseau mettant en oeuvre cet appareil et procede de protection contre la copie
US5951019A (en) * 1996-09-05 1999-09-14 Centre For Engineering Research Inc. Method of forming a metal-to-metal seal in high pressure applications with low contact stress
US5774683A (en) 1996-10-21 1998-06-30 Advanced Micro Devices, Inc. Interconnect bus configured to implement multiple transfer protocols
US5832245A (en) 1996-10-21 1998-11-03 Advanced Micro Devices, Inc. Method for isochronous flow control across an inter-chip bus
US5761457A (en) 1996-10-21 1998-06-02 Advanced Micro Devices Inc. Inter-chip bus with fair access for multiple data pipes
US5835793A (en) 1997-05-02 1998-11-10 Texas Instruments Incorporated Device and method for extracting a bit field from a stream of data
US5938752C1 (en) * 1997-05-20 2002-02-05 Microsoft Corp System and method for encapsulating legacy data transport protocols for ieee 1394 serial bus
US6085270A (en) 1998-06-17 2000-07-04 Advanced Micro Devices, Inc. Multi-channel, multi-rate isochronous data bus
JP4318649B2 (ja) 2005-02-01 2009-08-26 因幡電機産業株式会社 コーナー用化粧カバー

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10302363A1 (de) * 2003-01-22 2004-08-05 Deutsche Thomson-Brandt Gmbh Verfahren zum Betreiben eines Netzwerks von Schnittstellenknoten und Schnittstelleneinrichtung

Also Published As

Publication number Publication date
CA2247341A1 (en) 1997-09-12
DE69703732D1 (de) 2001-01-25
TW381233B (en) 2000-02-01
JP2000506295A (ja) 2000-05-23
EP0885418B1 (de) 2000-12-20
ATE198237T1 (de) 2001-01-15
US20060291508A1 (en) 2006-12-28
KR19990087389A (ko) 1999-12-27
KR100439539B1 (ko) 2004-11-03
US7567590B2 (en) 2009-07-28
US7145921B2 (en) 2006-12-05
US6519268B1 (en) 2003-02-11
US20030123475A1 (en) 2003-07-03
JP4155413B2 (ja) 2008-09-24
CA2247341C (en) 2008-11-04
WO1997033230A1 (en) 1997-09-12
US7944952B2 (en) 2011-05-17
AU2129997A (en) 1997-09-22
EP0885418A1 (de) 1998-12-23
US20090268760A1 (en) 2009-10-29

Similar Documents

Publication Publication Date Title
DE69703732T2 (de) Asynchrones datenübertragungsgerät zur verwaltung asynchroner datenübertragungen zwischen einem anwendungsprogramm und einer busstruktur
DE69731421T2 (de) Verfahren zum Verknüpfen eines Datenpaketes mit einem Kanal in einem IEEE1394-Datenübertragungssystem
DE69704344T2 (de) Anwendungsprogrammierungsschnittstelle für datenübertragung und busverwaltung über eine busstruktur
DE69531017T2 (de) Datenübertragungssystem und Verfahren
DE3546683C3 (de) Verfahren zum Betreiben einer Datenverarbeitungsanlage
DE69027379T2 (de) Synchrones Datenübertagungssystem für Datenaustauschschnittstelle mit verteilten Fasern
DE102006058818B4 (de) Vorrichtung und Verfahren zur Umwandlung von Textmitteilungen
DE69033679T2 (de) Datenübertragungsadaptervorrichtung
DE3788604T2 (de) Verfahren zur Übertragung eines Berechtigungszeichens in einem Nachrichtenring.
DE69937394T2 (de) Verfahren und vorrichtung zur prädikativen zeitstempelung isochroner datenpakete
EP1987642B1 (de) Gateway zum automatischen routen von nachrichten zwischen bussen
EP2030117B1 (de) Gateway zum datentransfer zwischen seriellen bussen
DE69916583T2 (de) Medienspeichervorrichtung mit eingebettetem datenfilter zur dynamischen datenverarbeitung während lese- und schreiboperationen
DE69935065T2 (de) Datenübertragungssteuerinrichtung und elektronisches gerät
DE69432726T2 (de) Verfahren und System zur seriellen Datenübertragung
EP2030116A1 (de) Kommunikationsbaustein
EP3788756B1 (de) Gateway zur datenkommunikation in einem fahrzeug
DE102017125086A1 (de) Datenübertragungsverfahren und Kommunikationsnetzwerk
DE69935940T2 (de) Zielknoten, Datenkommunikationssystem, Kontrollverfahren eines Zielknotens und Verfahren zum Betreiben eines Datenkommunikationssystems
DE3855566T2 (de) Vielfach-Zeitschlitz-Zugriffssystem
DE69319081T2 (de) Übertragungsverfahren und -vorrichtung
DE69733617T2 (de) Protokoll verarbeitungsgerät für datenstromverarbeitung
EP1370952B1 (de) Kommunikationsverfahren zur realisierung von ereigniskanälen in einem zeitgesteuerten kommunikationssystem
DE69729068T2 (de) Vorrichtung und Verfahren zum Übertragen von digitalen Audio- und Videodaten
DE60038359T2 (de) Einrichtung zur datenübertragungssteuerung und elektronisches gerät

Legal Events

Date Code Title Description
8364 No opposition during term of opposition