[go: up one dir, main page]

DE60215997T2 - Vorrichtung zur Ausgabe von Befehlen an einer seriellen Hochgeschwindigkeitschnittstelle - Google Patents

Vorrichtung zur Ausgabe von Befehlen an einer seriellen Hochgeschwindigkeitschnittstelle Download PDF

Info

Publication number
DE60215997T2
DE60215997T2 DE60215997T DE60215997T DE60215997T2 DE 60215997 T2 DE60215997 T2 DE 60215997T2 DE 60215997 T DE60215997 T DE 60215997T DE 60215997 T DE60215997 T DE 60215997T DE 60215997 T2 DE60215997 T2 DE 60215997T2
Authority
DE
Germany
Prior art keywords
orb
command
packet
status
cpu
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
DE60215997T
Other languages
English (en)
Other versions
DE60215997D1 (de
Inventor
Isamu Kyotanabe-shi Ishimura
Yoshihiro Osaka-shi Tabira
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE60215997D1 publication Critical patent/DE60215997D1/de
Application granted granted Critical
Publication of DE60215997T2 publication Critical patent/DE60215997T2/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
    • 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/126Program 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 and has means for transferring I/O instructions and statuses between control unit and main processor

Landscapes

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

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf eine Befehlsausgabevorrichtung für eine serielle Hochgeschwindigkeitsschnittstelle.
  • In den letzten Jahren wird IEEE-1394-Schnittstellen Aufmerksamkeit als serielle Hochgeschwindigkeitsschnittstellen für die Verbindung von audiovisuellen Geräten und Computern zuteil. Die IEEE-1394-Technologie kann nicht nur zur Datenübertragung zwischen Computern über ATAPI (AT Attachment Packet Interface) und SCSI (Small Computer System Interface), die herkömmliche parallele Schnittstellen sind, verwendet werden, sondern auch für Datenübertragung zwischen audiovisuellen Geräten. Dies liegt daran, dass IEEE 1394 asynchrone Kommunikation und isochrone Kommunikation definiert.
  • Wenn Computerdaten auf einer Magnetplatte wie einer Festplatte oder auf einer optischen Speicherplatte wie einer DVD-RAM gespeichert werden oder wenn Computerdaten, die auf einer solchen Platte gespeichert sind, von einem Hostrechner mittels der IEEE-1394-Technologie gelesen werden, werden üblicherweise ein Steuerbefehl und Daten mittels asynchroner Kommunikation gesendet. SBP-2 (Serial Bus Protocol 2), ein Protokoll, das asynchrone Kommunikation verwendet, ist gewöhnlich für die Datenübertragung zwischen dem Hostrechner (Auslöseeinrichtung) und der Festplatte oder der DVD-RAM (Ziel) verwendet worden.
  • Mit dem Beginn des digitalen Rundfunks in Japan ist der Zusammenschluss von audiovisuellen Geräten und Computern beschleunigt worden, und es ist begonnen worden, eine Festplatte und DVD-RAM als Aufzeichnungsmedium für eine Set-Top-Box (STB) zu verwenden. Audiovisuelle Daten werden auf diesen Platten in einem Format aufgezeichnet, das als Computerdatei verarbeitet werden kann, um die Verwaltung und Aufbereitung von Daten zu erleichtern. In einem solchen Fall ist es erforderlich, dass eine SBP-2-Auslösefähigkeit in der STB, bei der es sich um ein audiovisuelles Gerät handelt, bereitgestellt wird.
  • Weil die vorherrschenden Geräte, die über SBP-2-Auslösefähigkeit verfügen, Computer gewesen sind, haben über ausreichende Geschwindigkeitsleistung verfügende Zentral einheiten (CPUs) einem Programm entsprechend das Senden und den Empfang aller Pakete gesteuert, insbesondere die Erzeugung von Paketen, die Operation Request Blocks (ORBs) enthalten. In Bezug auf das Preis-Leistungs-Verhältnis ist es jedoch schwierig, eine CPU einzubeziehen, die in einem audiovisuellen Gerät eine ausreichende Geschwindigkeitsleistung bietet.
  • Des Weiteren kann die CPU, wenn in einer Zielvorrichtung (wie einem Festplatten-Laufwerk oder DVD-RAM-Laufwerk) von einer Auslöseeinrichtung (STB) audiovisuelle Daten aufgezeichnet oder Bilder wiedergegeben oder aufbereitet werden, keine ausreichenden Befehlsverarbeitungsgeschwindigkeiten bereitstellen, und daher kann die Übertragungsgüte der Zielvorrichtung nicht vollständig ausgeschöpft werden. Überdies kann die erforderliche Übertragungsleistung des gesamten Systems nicht erreicht werden.
  • JP 2000-250846A beschreibt einen Sequenzprozessor zur Übertragung von Daten mit einer hohen Geschwindigkeit, indem die Last auf einer CPU während der Ausführung einer Befehlsverarbeitungs-Sequenz verringert wird. Der Sequenzprozessor ist mit einer Link-Kernschaltung zum Empfangen eines Paketes von einem Bus ausgestattet, mit einer Paketfilterschaltung zum Empfangen des Paketes von der Link-Kernschaltung und zum Ausgeben eines Steuersignals, das den Inhalten des Paketes entspricht, mit einer Sequenz-Steuerschaltung zur Steuerung der Ausführung der Befehlsverarbeitungs-Sequenz in Reaktion auf das Steuersignal von der Paketfilterschaltung und mit einer Paketverarbeitungsschaltung zum Ausgeben des Paketes aus der Link-Kernschaltung an einen Befehlsempfangs-Puffer unter Steuerung durch die Sequenz-Steuerschaltung. Auf Basis des Paketes, das in dem Befehlsempfangs-Puffer gespeichert ist, führt die CPU den Befehl aus.
  • ÜBERSICHT ÜBER DIE ERFINDUNG
  • Es ist ein Ziel der vorliegenden Erfindung, Last auf einer CPU zu verringern, wenn sie einen Befehl an eine Vorrichtung ausgibt, die über Auslösefähigkeit einer seriellen Hochgeschwindigkeitsschnittstelle verfügt. Um das Ziel zu erreichen, stellt die vorliegende Erfindung eine Befehlsausgabevorrichtung nach Anspruch 1 bereit.
  • Nach der vorliegenden Erfindung wird, sobald die CPU einen Befehls-ORB oder einen Verwaltungs-ORB in ihrem Übertragungspuffer speichert und die Sequenz- Steuerschaltung aktiviert, keine zusätzliche Last auf der CPU erzeugt, bis sie einen Status für den ausgegebenen ORB empfängt.
  • Nach der vorliegenden Erfindung kann eine Auslösefähigkeit mit hoher Ansprechleistung in der Befehlsausgabevorrichtung unter Verwendung einer nichtprogrammierten Steuerung bereitgestellt werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1A stellt einen Aufbau eines BWRQ-Paketes auf einem IEEE-1394-Bus dar.
  • 1B stellt einen Aufbau eines QWRQ-Paketes auf dem IEEE-1394-Bus dar.
  • 1C stellt einen Aufbau eines WRS-Paketes auf dem IEEE-1394-Bus dar.
  • 1D stellt einen Aufbau eines BRRQ-Paketes auf dem IEEE-1394-Bus dar.
  • 1E stellt einen Aufbau eines BRRS-Paketes auf dem IEEE-1394-Bus dar.
  • 2 stellt ein Datenformat eines Verwaltungs-ORB in dem SBP-2 dar.
  • 3 stellt ein Datenformat eines Befehls-ORB in dem SBP-2 dar.
  • 4 stellt ein Datenformat eines Status in dem SBP-2 dar.
  • 5 stellt ein Schaubild zur Erklärung der Verknüpfungen zwischen Befehls-ORBs in dem SBP-2 dar.
  • 6 stellt ein Zustandsübergangsdiagramm eines Ziels in dem SBP-2 dar.
  • 7 stellt ein Blockschaltbild eines Datenübertragungssystems dar, in dem eine SBP-2-Befehlsausgabevorrichtung nach der vorliegenden Erfindung bereitgestellt wird.
  • 8 stellt eine Sequenz zur Ausgabe eines Verwaltungs-ORB durch die Befehlsausgabevorrichtung, die in 7 dargestellt wird, dar.
  • 9A stellt ein Ablaufdiagramm dar, das Operationen von Bestandteilen angibt, die in 7 dargestellt werden, wenn der Verwaltungs-ORB ausgegeben wird.
  • 9B stellt ein Ablaufdiagramm fortgesetzt von 9A dar.
  • 10 stellt eine Befehls-ORB-Ausgabe-Sequenz dar, die von der Befehlsausgabevorrichtung ausgeführt wird, die in 7 dargestellt wird.
  • 11A stellt ein Ablaufdiagramm dar, das Operationen der in 7 dargestellten Bestandteile angibt, wenn ein Befehls-ORB ausgegeben wird.
  • 11B stellt ein Ablaufdiagramm fortgesetzt von 11A dar.
  • 12A stellt eine Sequenz zur Ausgabe verknüpfter Befehls-ORB dar, die von der in 7 dargestellten Befehlsausgabevorrichtung ausgeführt werden.
  • 12B stellt ein Sequenzdiagramm fortgesetzt von 12A dar.
  • 13A stellt ein Ablaufdiagramm dar, das Operationen der in 7 dargestellten Bestandteile angibt, wenn die verknüpften Befehls-ORB ausgegeben werden.
  • 13B stellt ein Ablaufdiagramm fortgesetzt von 13A dar.
  • 13C stellt ein Ablaufdiagramm fortgesetzt von 13B dar.
  • 14A stellt eine Sequenz zur Ausgabe eines zusätzlichen Befehls-ORB durch die in 7 dargestellte Befehlsausgabevorrichtung während der Ausführung verknüpfter Befehls-ORBs dar.
  • 14B stellt eine Sequenz fortgesetzt von 14A dar.
  • 15A stellt ein Ablaufdiagramm dar, das Operationen der in 7 dargestellten Bestandteile angibt, wenn der zusätzliche Befehls-ORB während der Ausführung der verknüpften Befehls-ORBs ausgegeben wird.
  • 15B stellt ein Ablaufdiagramm fortgesetzt von 15A dar.
  • 15C stellt ein Ablaufdiagramm fortgesetzt von 15B dar.
  • 15D stellt ein Ablaufdiagramm fortgesetzt von 15C dar.
  • 16 stellt eine Operationssequenz dar, die in der in 7 dargestellten Befehlsausgabevorrichtung ausgeführt wird, wenn ein Befehlsfehler auftritt.
  • 17A stellt ein Ablaufdiagramm der in 7 dargestellten Bestandteile dar, wenn der Befehlsfehler auftritt.
  • 17B stellt ein Ablaufdiagramm fortgesetzt von 17A dar.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Ausführungsformen der vorliegenden Erfindung werden unten mit Bezug auf die beigefügten Zeichnungen genau beschrieben werden. Die folgende Beschreibung beschränkt jedoch nicht den technischen Anwendungsbereich der vorliegenden Erfindung.
  • 1A bis 1E stellen den Aufbau einiger der asynchronen Pakete dar, die im IEEE 1394 definiert sind. IEEE 1394 definiert Anforderungspakete zur Anforderung von Operationen und Antwortpakete zum Zurückgeben der Ergebnisse der Operation, die mittels des Anforderungspaketes angefordert worden war. Wenn eines dieser Pakete empfangen wird, wird ein Bestätigungspaket (ACK-Paket) an die anfordernde Vorrichtung zurückgegeben, das den Zustand des Empfangs des Paketes angibt. Das ACK-Paket gibt einen Zustand wie „ack_complete" an, der die Vollendung einer Operation angibt, "ack_pending", der angibt, dass eine Anforderung empfangen worden ist und eine angeforderte Operation durchgeführt wird, und "ack_busy", der eine Anforderung zum erneuten Senden (ack_busy) angibt. Ein Anforderungspaket und ein Antwortpaket werden gewöhnlich paarweise verwendet.
  • 1A, 1B und 1D stellen Anforderungspakete dar, jeweils ein BWRQ-Paket (Schreibanforderung für ein Datenblockpaket), ein QWRQ-Paket (Schreibanforderung für ein Datenquadletpaket) und ein BRRQ-Paket (Leseanforderung für ein Datenblockpaket). Ein WRS-Paket (Schreibantwortpaket), dargestellt in 1C, ist für die Schreibanforderungspakete (BWRQ und QWRQ) definiert. Ein BRRS-Paket (Leseantwort für ein Datenblockpaket), dargestellt in 1E, ist für das BRRQ-Paket definiert. Jedes dieser Anforderungs- und Antwortpakete enthält einen Transaktionscode (tcode), der den Pakettyp bezeichnet, und einen Transaktionsbezeichner (tl), der für die Transaktion spezifische, angehängte Information darstellt. Die Antwortpakete enthalten einen Antwortcode (rcode), der einen Antwortzustand angibt. Der Transaktionstyp kann demnach durch den tcode bestimmt werden, und ein Paar aus Anforderungs- und Antwortpaket kann durch den tl bestimmt werden. Siehe den Standard IEEE 13941995 für weiterführende Informationen.
  • 2, 3 und 4 stellen ein in dem SBP-2 spezifiziertes Datenformat dar. Eine Auslöseeinrichtung erzeugt einen ORB in ihrem Systemspeicher. Das SBP-2 definiert Verwaltungsbefehle zur Verwaltung von Verbindungen zwischen der Auslöseeinrichtung und einer Ziel- und Befehlsausführung. Diese Befehle sind in einem in 2 dargestellten Verwaltungs-ORB enthalten, um sie zu verarbeiten. Befehle wie ein READ-Befehl und ein WRITE-Befehl sind in einem in 3 dargestellten Befehls-ORB enthalten, um sie zu verarbeiten. Ein Befehl ist in einem Command_block-Feld enthalten. 4 stellt das Datenformat eines Status dar. Register wie ein MANAGEMENT_AGENT-Register und ein CommandAgent-Register sind in einem CSR-Feld (Steuer- und Status-Register-Feld) definiert. Das CommandAgent-Register besteht aus AGENT_STATE-, AGENT_RESET-, ORB_POINTER- und DOORBELL-Registern.
  • 5 stellt Verknüpfungen zwischen Befehls-ORB dar. Das in 3 dargestellte Next_ORB-Feld eines Befehls-ORB, das mit keinem Befehls-ORB verknüpft ist, ist auf Null gesetzt. Insbesondere gibt "1" im Startbit des Next_ORB-Feldes Null an. Wenn andererseits der Befehls-ORB A mit dem Befehl B verknüpft wird, enthält das Next_ORB-Feld des Befehls A, der vor dem Befehls-ORB ausgegeben wurde, die Adresse des Befehls B, wie im oberen Abschnitt von 5 dargestellt. Dies gestattet es dem Ziel, einen Befehls-ORB an einer von dem Next_ORB-Feld angegebenen Adresse zu erhalten, bis das Next_ORB-Feld eines erhaltenen ORB-Befehls Null angibt.
  • Eine Zustandsverwaltung, die von einem Ziel in dem SBP-2 ausgeführt wird, wird unten mit Bezug auf 6 beschrieben werden. Wie in 6 dargestellt, wird das Ziel mit den Zuständen RESET, ACTIVE, SUSPEND und DEAD verwaltet. Diese vier Zustände werden von einem AGENT_STATE-Register angegeben, das eines von CommandAgent-Registern darstellt. Das Ziel ist während des Hochfahrens im RESET-Zustand. Wenn auf das ORB-POINTER-Register in dem Ziel zugegriffen wird und ein Befehls-ORB erhalten wird, wechselt das Ziel in den ACTIVE-Zustand. Nach der Vollendung des Befehls-ORB gibt es einen Status zurück und geht in den SUSPEND-Zustand über. Danach geht das Ziel in den ACTIVE-Zustand über, wenn auf das ORB_POINTER-Register oder auf das DOORBELL-Register zugegriffen wird und ein Befehls-ORB erhalten wird, und wechselt nach der Rückgabe eines Status in den SUSPEND-Zustand. Diese Sequenz wird wiederholt. Wenn ein Befehls-ORB fehlerhaft endet oder ein Transaktionsfehler in der Ausführungs-Sequenz des Befehls-ORB auftritt, wechselt das Ziel in den DEAD-Zustand. Weil das Ziel in dem DEAD-Zustand nicht weiterhin Befehls-ORBs erhalten kann, veranlasst das Ziel die Auslöseeinrichtung, auf das AGENT_RESET-Register zuzugreifen, um in den RESET-Zustand zurückzukehren.
  • 7 stellt ein Blockschaltbild eines Datenübertragungssystems dar, in dem eine SBP-2-Befehlsausgabevorrichtung nach der vorliegenden Erfindung bereitgestellt wird. In dem in 7 dargestellten System ist eine Auslöseeinrichtung 1 mit einem Ziel 2 über einen IEEE-1394-Bus 3 verbunden. Die Auslöseeinrichtung 1 kann eine STB sein, und das Ziel 2 kann zum Beispiel ein Festplattenlaufwerk oder ein Laufwerk einer optischen Speicherplatte sein. Die Auslöseeinrichtung 1 enthält eine CPU 10 und die Befehlsausgabevorrichtung 20. Die Befehlsausgabevorrichtung 20 umfasst eine Bitübertragungsschicht-Steuerung (PHY) 21, eine Sicherungsschicht-Steuerung (LINK) 22, einen asynchronen Sende-FIFO-Puffer (ATF) 23, einen asynchronen Empfangs-FIFO-Puffer (ARF) 24, ein Steuerungsregister-Modul 25, einen Sendefilter (TFIL) 26, einen Empfangsfilter (RFIL) 27, eine Paketverarbeitungsschaltung (PPRC) 28, eine Sequenz-Steuerschaltung (SQC) 29, einen Befehls-ORB-Sendepuffer (COTB) 30, einen Verwaltungs-ORB-Sendepuffer (MOTB) 31, einen Verwaltungs-Statusempfangs-Puffer (SRBM) 32 und einen Befehls-Statusempfangs-Puffer (SRBC) 33.
  • Die Bitübertragungsschicht-Steuerung 21 ist in der Lage, den Bus 3 zu initialisieren, Daten zu verschlüsseln/entschlüsseln, Arbitration durchzuführen und eine Vorspannung bereitzustellen/zu ermitteln. Die Sicherungsschicht-Steuerung 22 ist in der Lage, Pakete zu senden und zu empfangen und einen Fehlerkorrekturcode zu erzeugen/zu ermitteln. Der asynchrone Sende-FIFO-Puffer 23 speichert ein zu sendendes Paket, und der asynchrone Empfangs-FIFO-Puffer 24 speichert ein an die CPU 10 gerichtetes, empfangenes Paket. Das Steuerungsregister-Modul 25 ist eine Registergruppe, die bei verschiedenen Steuerungsoperationen verwendet wird, die von der CPU 10 beim Senden oder Empfangen eines Paketes, beim Vornehmen der Anfangseinstellung zur Ausgabe eines Befehls, beim Speichern eines ORB und beim Auslesen eines Status verrichtet werden.
  • Der Sendefilter 26 empfängt eine Paketsendeanforderung von der Paketverarbeitungsschaltung 28 oder eine Paketsendeanforderung von der CPU 10 und schreibt, wenn der Sendepuffer 23 leer ist, das angeforderte Paket in den Sendepuffer 23. Der Sendefilter 26 verfügt über eine Arbitrationsfunktion, um einer der von der Paketverarbeitungsschaltung 28 bereitgestellten Paketsendeanforderungen und einer gleichzeitigen Paketsendeanforderung von der CPU 10 Vorrang einzuräumen. Er verfügt darüber hinaus über die Funktion zu verhindern, dass ein Paket in den Sendepuffer 23 geschrieben wird, wenn er nicht leer ist.
  • Der Empfangsfilter 27 unterscheidet zwischen einem Paket, das an die Paketverarbeitungsschaltung 28 gerichtet ist, und einem Paket, das an die CPU 10 gerichtet ist. Der Empfangsfilter 27 bestimmt insbesondere ein Paket als eines, das an die Paketverarbeitungsschaltung 28 gerichtet ist, auf Basis von Informationen, die von der Paketverarbeitungsschaltung 28 bereitgestellt werden, wenn ein Befehl ausgegeben wird, das heißt, auf Basis von tcode und destination_offset (Paketzieladresse) für ein Anforderungspaket oder tcode und tl für ein Antwortpaket, und gibt das empfangene Paket an die Paketverarbeitungsschaltung 28 ab. Der Empfangsfilter 27 bestimmt andere empfangene Pakete als solche, die an die CPU 10 gerichtet sind, und speichert sie in dem Empfangs-Puffer 24.
  • Die Paketverarbeitungsschaltung 28 erzeugt Pakete und verwaltet Transaktionen, die zu einer Befehlsausgabe-Sequenz und dem Empfang eines Status in Beziehung stehen. Einzelheiten seiner Funktionsweise werden später beschrieben werden.
  • Die Sequenz-Steuerschaltung 29 steuert zusammen mit dem Befehls-ORB-Sendepuffer 30 und dem Verwaltungs-ORB-Sendepuffer 31 eine Befehlsausgabe-Sequenz. Die Sequenz-Steuerschaltung 29 empfängt von der CPU 10 oder anderen Blöcken eine Anforderung zum Zugriff auf jedes MANAGEMENT_AGENT-Register und CommandAgent-Register auf Basis der Adressen jedes der MANAGEMENT_AGENT-Register und der CommandAgent-Register von dem Ziel 2 und der Ziel-ID von dem Ziel 2, das von der CPU 10 durch ein Steuerungsregister-Modul 25 empfangen wurde, erzeugt ein Anforderungspaket und stellt es für die Paketverarbeitungsschaltung 28 bereit. Die Sequenz-Steuerschaltung 29 empfängt außerdem eine Benachrichtigung über den Empfang eines Anfwortpaketes, das auf das Anforderungspaket von der Paketverarbeitungsschaltung 28 zur Verwaltung der Befehlsausgabe-Sequenz antwortet.
  • Der Befehls-ORB-Sendepuffer 30 speichert einen Befehls-ORB, der von der CPU 10 durch das Steuerungsregister-Modul 25 bereitgestellt wurde. Des Weiteren hat der Befehls-ORB-Sendepuffer 30 die Funktion, die Adressen von Befehls-ORBs automatisch zu verwalten. Wenn ein Befehls-ORB von der CPU 10 gespeichert wird, bestimmt der Befehls-ORB-Sendepuffer 30 insbesondere automatisch die Adresse des Befehls-ORB und teilt die Adresse der Sequenz-Steuerschaltung 29 mit. Die Sequenz-Steuerschaltung 29 wird bei der Ausgabe des Befehls-ORB ein BWRQ-Paket verwenden, um die Adresse des Befehls-ORB in das ORB_POINTER-Register von dem Ziel 2 zu schreiben. Die Adresse des Befehls-ORB wird von der Sequenz-Steuerschaltung 29 außerdem dem Empfangsfilter 27 durch die Paketverarbeitungsschaltung 28 mitgeteilt. Wenn der destination_offset des von dem Ziel 2 empfangenen BWRQ-Paketes mit der Adresse des Befehls-ORB übereinstimmt, wird das BWRQ-Paket für die Paketverarbeitungsschaltung 28 bereitgestellt, und die Paketverarbeitungsschaltung 28 erzeugt ein BRRS-Paket, das einen ORB enthält, der aus dem Befehls-ORB-Sendepuffer 30 ausgelesen wurde, und stellt es für den Sendefilter 26 bereit.
  • Der Befehls-ORB-Sendepuffer 30 kann eine Vielzahl von ORBs speichern. Er besitzt die Fähigkeit, ORB automatisch zu verknüpfen, wenn sich ein nicht ausgegebener Befehl in dem Befehls-ORB-Sendepuffer 30 befindet, wenn ein Befehls-ORB von der CPU 10 bereitgestellt wird. Wie im unteren Abschnitt von 5 dargestellt, weist der Befehls-ORB-Sendepuffer 30 dem zusätzlich zwischengespeicherten Befehls-ORB automatisch eine Adresse zu und ändert das Next_ORB-Feld des zuvor zwischengespeicherten Befehls-ORB in die Adresse des zusätzlich zwischengespeicherten Befehls-ORB. Der Befehls-ORB-Sendepuffer 30 schickt außerdem eine Anforderung zum Zugriff auf das DOORBELL-Register von dem Ziel 2 an die Sequenz-Steuerschaltung 29.
  • Der Verwaltungs-ORB-Sendepuffer 31 speichert einen Verwaltungs-ORB, der von der CPU 10 durch das Steuerungsregister-Modul 25 bereitgestellt wurde. Des Weiteren hat der Verwaltungs-ORB-Sendepuffer 31 die Fähigkeit, Adressen von Verwaltungs-ORBs automatisch zu verwalten. Wenn ein Verwaltungs-ORB von der CPU 10 zwischengespeichert wird, bestimmt der Verwaltungs-ORB-Sendepuffer 31 insbesondere automatisch die Adresse des Verwaltungs-ORB und teilt die Adresse der Sequenz-Steuerschaltung 29 mit. Die Sequenz-Steuerschaltung 29 wird bei der Ausgabe des Verwaltungs-ORB ein BWRQ-Paket verwenden, um die Adresse des ORB in das MANAGEMENT_AGENT-Register von dem Ziel 2 schreiben. Die Adresse des Verwaltungs-ORB wird von der Sequenz-Steuerschaltung 29 außerdem dem Empfangsfilter 27 durch die Paketverarbeitungsschaltung 28 mitgeteilt. Wenn der destination_offset eines von dem Ziel 2 empfangenen BWRQ-Paketes mit der Adresse des Verwaltungs-ORB übereinstimmt, wird das BWRQ-Paket für die Paketverarbeitungsschaltung 28 bereitgestellt. Die Paketverarbeitungsschaltung 28 erzeugt ein BRRS-Paket, das einen ORB enthält, der aus dem Verwaltungs-ORB-Sendepuffer 31 ausgelesen wurde, und stellt es für den Sendefilter 26 bereit.
  • Der Verwaltungs-Statusempfangs-Puffer 32 speichert einen für einen ausgegebenen Verwaltungs-ORB empfangenen Status und teilt ihn der CPU 10 mit. Wenn der Empfangsfilter 27 von dem Ziel 2 ein BWRQ-Paket empfängt, das über einen destination_offset verfügt, der mit der Adresse in dem STATUS_FIFO, die von der CPU 10 vor der Ausgabe des Verwaltungs-ORB durch das Steuerungsregister-Modul 25 für das Empfangsregister 27 bereitgestellt wurde, übereinstimmt, stellt das Empfangsregister 27 das BWRQ-Paket für die Paketverarbeitungsschaltung 28 bereit. Wenn die von dem Verwaltungs-ORB-Sendepuffer 31 mitgeteilte Adresse des Verwaltungs-ORB mit dem ORB_offset_hi/ORB_offset_lo (siehe 4) des empfangenen Status übereinstimmt, stellt die Paketverarbeitungsschaltung 28 den Status für den Verwaltungs-Statusempfangs-Puffer 32 bereit.
  • Der Befehls-Statusempfangs-Puffer 33 speichert einen für einen ausgegebenen Befehls-ORB empfangenen Status und teilt ihn der CPU 10 mit. Wenn der Empfangsfilter 27 ein BWRQ-Paket empfängt, das über einen destination_offset verfügt, der mit der Adresse im STATUS_FIFO, die von der CPU 10 durch das Steuerungsregister-Modul 25 von dem Ziel 2 vor der Ausgabe des Befehls-ORB dem Empfangsfilter 27 mitgeteilt wurde, übereinstimmt, stellt der Empfangsfilter 27 das BWRQ-Paket für die Paketverarbeitungsschaltung 28 bereit. Wenn die von dem Verwaltungs-ORB-Sendepuffer 31 mitgeteilte Adresse des Verwaltungs-ORB nicht mit dem ORB_offset_hi/ORB_offset_lo des empfangenen Staus übereinstimmt, stellt die Paketverarbeitungsschaltung 28 den Status für den Befehls-Statusempfangs-Puffer 33 bereit. Der Befehls-Statusempfangs-Puffer 33 ist in der Lage, eine Vielzahl von Stati zu speichern. Der Befehl-Statusempfangs-Puffer 33 hat außerdem die Funktion, eine Anforderung zum Zugriff auf das AGENT_RESET-Register von dem Ziel 2 an die Sequenz-Steuerschaltung 29 zu schicken, falls er feststellt, dass der empfangene Status ein Fehler ist (das Bit d, das im Status, der 4 dargestellt ist, gesetzt ist, gibt an, dass der entsprechende Befehls-ORB fehlerhaft ist).
  • Fünf Beispieloperationen der in 1 dargestellten Befehlsausgabevorrichtung 20 werden unten beschrieben werden.
  • (Erste Beispieloperation)
  • Eine Operation der Befehlsausgabevorrichtung 20, die ausgeführt wird, wenn ein Verwaltungs-ORB ausgegeben wird, wird mit Bezug auf 8, 9A und 9B beschrieben werden. Obwohl eine Auslöseeinrichtung 1 von dem Konfigurations-ROM von einem Ziel 2 die Adresse eines MANAGEMENT_AGENT-Registers erhalten sollte, bevor sie den Verwaltungs-ORB ausgibt, wird auf die Beschreibung dieser Operation hier verzichtet.
    • (1) Die CPU 10 setzt die von dem Ziel 2 erhaltene Adresse des MANAGEMENT_AGENT-Registers und die Knoten-ID von dem Ziel 2 in der Sequenz-Steuerschaltung 29 und setzt die Adresse eines Statusempfangs-Puffers (STATUS_FIFO) in dem Verwaltungs-Statusempfangs-Puffer 32 als Anfangseinstellungen.
    • (2) Die CPU 10 erzeugt einen auszugebenden Verwaltungs-ORB und speichert ihn in dem Verwaltungs-ORB-Sendepuffer 31. Der Verwaltungs-ORB-Sendepuffer 31 bestimmt die Adresse (*P in 8) des Verwaltungs-ORB und teilt sie der Sequenz-Steuerschaltung 29 mit. Er teilt die Adresse außerdem der Paketverarbeitungsschaltung 28 und dem Empfangsfilter 27 mit.
    • (3) Die CPU 10 fordert die Sequenz-Steuerschaltung 29 auf, den Verwaltungs-ORB auszugeben (Phase „a" in 8 beginnt).
    • (4) Die Sequenz-Steuerschaltung 29 erzeugt ein in 1A dargestelltes BWRQ-Paket, in dem die von der CPU 10 bereitgestellte Knoten-ID von dem Ziel 2 in dem Destination_ID-Feld gesetzt ist, die Adresse des MANAGEMENT_AGENT-Registers im Destination_offset-Feld gesetzt ist, die Adresse (*P) des Verwaltungs-ORB, der von dem Verwaltungs-ORB-Sendepuffer 31 bereitgestellt wurde, im data_field gesetzt ist, und der tcode auf "1" gesetzt ist (und so angibt, dass dies ein BWRQ-Paket ist), und data_length auf "8" gesetzt ist. Dann stellt die Sequenz-Steuerschaltung 29 es für die Paketverarbeitungsschaltung 28 bereit.
    • (5) Die Paketverarbeitungsschaltung 28 setzt einen vorgegebenen Wert in dem tl in dem BWRQ-Paket und sendet es durch den Sendefilter 26, den Sendepuffer 23, die Sicherungsschicht-Steuerung 22 und die Bitübertragungsschicht-Steuerung 21 auf den 1394-Bus 3. Die Paketverarbeitungs-Schaltung 28 teilt den tcode und den tl dem Empfangsfilter 27 mit.
    • (6) Das Ziel 2 empfängt das BWRQ-Paket und gibt ein WRS-Paket zurück.
    • (7) Wenn der Empfangsfilter 27 bestimmt, dass der tcode des empfangenen WRS-Paketes WRS ist und der tl mit dem übereinstimmt, der von der Paketverarbeitungsschaltung 28 bereitgestellt wurde, meldet der Empfangsfilter 27 den Empfang des WRS-Paketes an die Paketverarbeitungsschaltung 28 und die Sequenz-Steuerschaltung 29 und löscht das WRS-Paket selbst (Phase „a" in 8 endet).
    • (8) Dann sendet das Ziel 2 ein BRRQ-Paket an die Adresse (*P) des Verwaltungs-ORB, um einen Verwaltungs-ORB zu erhalten. Wenn der Empfangsfilter 27 bestimmt, dass der destination_offset des empfangenen BRRQ-Paketes mit der Adresse (*P) des Verwaltungs-ORB, die von der Paketverarbeitungsschaltung 28 mitgeteilt wurde, übereinstimmt, meldet er der Paketverarbeitungsschaltung 28 den Empfang des BRRQ-Paketes, stellt den tl für das Paket zur Verfügung und löscht das BRRQ-Paket selbst (Phase "b" in 8 beginnt).
    • (9) Die Paketverarbeitungsschaltung 28 positioniert den Verwaltungs-ORB, der aus dem Verwaltungs-ORB-Sendepuffer 31 ausgelesen wurde, in dem data_field, um ein BRRS-Paket zu erzeugen. Dann ändert die Paketverarbeitungsschaltung 28 den tl des BRRS-Paketes in den von dem Empfangsfilter 27 empfangenen tl und sendet es durch den Sendefilter 26, den Sendepuffer 23, die Sicherungsschicht-Steuerung 22 und die Bitübertragungsschicht-Steuerung 21 auf den 1394-Bus 3.
    • (10) Das Ziel 2 empfängt das BRRS-Paket, um den Verwaltungs-ORB zu erhalten, und führt ihn aus (Phase "b" in 8 endet).
    • (11) Nach der Vollendung des ORB erzeugt das Ziel 2 einen in 4 dargestellten Status, positioniert ihn in dem data_field in einem BWRQ-Paket und sendet ihn an die Auslöseeinrichtung 1 (Phase "c" in 8 beginnt).
    • (12) Wenn der Empfangsfilter 27 bestimmt, dass der destination_offset in dem BWRQ-Paket, das den empfangenen Status enthält, mit der Adresse in dem STATUS_FIFO, die in der CPU 10 gesetzt ist, übereinstimmt, meldet er der Paketverarbeitungsschaltung 28 den Empfang des BWRQ-Paketes und stellt das BWRQ-Paket für die Paketverarbeitungsschaltung 28 bereit.
    • (13) Die Paketverarbeitungsschaltung 28 referenziert den ORB_offset_hi und den ORB_offset_lo (siehe 4) in dem Status, der in dem data_field in dem BWRQ-Paket enthalten ist, und speichert, wenn sie mit der von dem Verwaltungs-ORB-Sendepuffer 31 erhaltenen Adresse (*P) des Verwaltungs-ORB übereinstimmen, den Status in dem Verwaltungs-Statusempfangs-Puffer 32. Gleichzeitig erzeugt sie ein WRS-Paket für das BWRQ-Paket und sendet es durch den Sendefilter 26, den Sendepuffer 23, die Sicherungsschicht-Steuerung 22 und die Bitübertragungsschicht-Steuerung 21 auf den 1394-Bus 3.
    • (14) Wenn die Paketverarbeitungsschaltung 28 bestimmt, dass Informationen in einem ACK-Paket für das gesendete WRS-Paket ein normales Ende angeben, meldet sie der CPU 10 den Empfang des Status für den Verwaltungs-ORB (Phase „c" in 8 endet).
    • (15) Die CPU 10 liest den Status aus dem Verwaltungs-Statusempfangs-Puffer 32 aus.
  • Wie oben beschrieben, kann die Befehlsausgabevorrichtung 20 Last beseitigen, die auf der CPU 10 erzeugt würde, bis die CPU 10 die Meldung über den Empfang des Status empfängt und den Status ausliest, sobald die CPU 10 die Anfangseinstellung vorgenommen, ein Verwaltungs-ORB erzeugt und registriert und die Ausgabe des Verwaltungs-ORB angefordert hat.
  • (Zweite Beispieloperation)
  • Es wird unten eine Operation der Befehlsausgabevorrichtung 20 bei der Ausgabe eines Befehls-ORB mit Bezug auf die 10, 11A und 11B beschrieben werden. Obwohl eine Auslöseeinrichtung 1 die Adresse eines CommandAgent-Registers, die durch Einloggen in ein Ziel 2 erhalten werden kann, vor der Ausgabe eines Befehls-ORB erhalten sollte, wird auf die Beschreibung dieser Operation hier verzichtet.
    • (1) Die CPU 10 setzt die von dem Ziel 2 erhaltene Adresse des CommandAgent-Registers und die Knoten-ID von dem Ziel 2 in der Sequenz-Steuerschaltung 29 und setzt die Adresse des Statusempfangs-Puffers (STATUS_FIFO) in dem Befehl-Statusempfangs-Puffer 33 als Anfangseinstellungen. Die Knoten-ID von dem Ziel 2 ist die gleiche wie der Wert, der bei der Ausgabe eines Verwaltungs-ORB verwendet wurde. Wenn der Verwaltungs-ORB vorher ausgegeben wurde, kann daher auf das Setzen der Knoten-ID verzichtet werden. Wenn der Befehls-ORB ein zweites oder folgendes Mal ausgegeben wird, kann auf das Setzen der Adressen des CommandAgent-Registers und des STATUS_FIFO ebenfalls verzichtet werden.
    • (2) Die CPU 10 erzeugt den auszugebenden Befehls-ORB und speichert ihn in dem Befehls-ORB-Sendepuffer 30. Der Befehls-ORB-Sendepuffer 30 bestimmt die Adresse (*P in 10) des Befehls-ORB und teilt sie der Sequenz-Steuerschaltung 29 mit. Er teilt die Adresse außerdem der Paketverarbeitungsschaltung 28 und dem Empfangsfilter 27 mit.
    • (3) Die CPU 10 fordert die Sequenz-Steuerschaltung 29 auf, den Befehls-ORB auszugeben (Phase „a" in 10 beginnt).
    • (4) Die Sequenz-Steuerschaltung 29 erzeugt ein in 1A dargestelltes BWRQ-Paket, in dem die von der CPU 10 bereitgestellte Knoten-ID von dem Ziel 2 in dem Destination_ID-Feld gesetzt ist, die Adresse eines ORB_POINTER-Registers in dem Destination_offset-Feld gesetzt ist, die Adresse (*P) des Befehls-ORB, die von dem Befehls-ORB-Sendepuffer 30 bereitgestellt wurde, in dem data_field gesetzt ist, der tcode auf „1" gesetzt ist (und so angibt, dass dies ein BWRQ-Paket ist) und data_length auf „8" gesetzt ist. Dann stellt die Sequenz-Steuerschaltung 29 das BWRQ-Paket für die Paketverarbeitungsschaltung 28 bereit.
    • (5) Die Paketverarbeitungsschaltung 28 setzt einen vorgegebenen Wert in dem tl in dem BWRQ-Paket und sendet das BWRQ-Paket durch den Sendefilter 26, den Sendepuffer 23, die Sicherungsschicht-Steuerung 22 und die Bitübertragungsschicht-Steuerung 21 auf den 1394-Bus 3. Die Paketverarbeitungsschaltung 28 teilt den tcode und den tl dem Empfangsfilter 27 mit.
    • (6) Das Ziel 2 empfängt das BWRQ-Paket und gibt ein WRS-Paket zurück.
    • (7) Wenn der Empfangsfilter 27 bestimmt, dass der tcode in dem empfangenen WRS-Paket WRS ist und dass der tl mit dem übereinstimmt, der von der Paketverarbeitungsschaltung 28 bereitgestellt wurde, meldet er den Empfang des WRS-Paketes an die Paketsteuerschaltung 28 und die Sequenz-Steuerschaltung 29 und löscht das WRS-Paket selbst (Phase „a" in 10 endet).
    • (8) Dann sendet das Ziel 2 ein BRRQ-Paket an die Adresse (*P) des Befehls-ORB, um den Befehls-ORB zu erhalten. Wenn der Empfangsfilter 27 bestimmt, dass der destination_offset des empfangenen BRRQ-Paketes mit der Adresse (*P) des Befehls-ORB, die von der Paketverarbeitungsschaltung 28 mitgeteilt wurde, übereinstimmt, teilt er der Paketverarbeitungsschaltung 28 den Empfang des BRRQ-Paketes und den tl mit und löscht das BRRQ-Paket selbst (Phase „b" in 10 beginnt).
    • (9) Die Paketverarbeitungsschaltung 28 liest den Befehls-ORB aus dem Befehls-ORB-Sendepuffer 30 aus und positioniert ihn in dem data_field, um ein BRRS-Paket zu erzeugen. Dann ändert die Paketverarbeitungsschaltung 28 den tl des BRRS-Paketes in den von dem Empfangsfilter 27 empfangenen tl und sendet es durch den Sendefilter 26, den Sendepuffer 23, die Sicherungsschicht-Steuerung 22 und die Bitübertragungsschicht-Steuerung 21 auf den 1394-Bus 3.
    • (10) Das Ziel 2 empfängt das BRRS-Paket, um den Befehls-ORB zu erhalten, und führt ihn aus (Phase „b" in 10 endet).
    • (11) Nachdem die Ausführung des ORB vollendet ist, erzeugt das Ziel 2 einen in 4 dargestellten Status, positioniert ihn in dem data_field in dem BWRQ-Paket und sendet ihn an die Auslöseeinrichtung 1 (Phase „c" in 10 beginnt).
    • (12) Wenn der Empfangsfilter 27 bestimmt, dass der destination_offset in dem BWRQ-Paket, das den Status enthält, mit der Adresse in dem STATUS_FIFO, die in der CPU 10 gesetzt ist, übereinstimmt, meldet er der Paketverarbeitungsschaltung 28 den Empfang des BWRQ-Paketes und stellt das BWRQ-Paket für die Paketverarbeitungsschaltung 28 bereit.
    • (13) Die Paketverarbeitungsschaltung 28 referenziert den ORB_offset_hi und den ORB_offset_lo (siehe 4) in dem Status, der in dem data_field in dem BWRQ-Paket enthalten ist, und speichert, wenn sie nicht mit der von dem Verwaltungs-ORB-Sendepuffer 31 erhaltenen Adresse des Verwaltungs-ORB übereinstimmen, den Status in dem Befehls-Statusempfangs-Puffer 33. Gleichzeitig erzeugt sie ein WRS-Paket für das BWRQ-Paket und sendet es durch den Sendefilter 26, den Sendepuffer 23, die Sicherungsschicht-Steuerung 22 und die Bitübertragungsschicht-Steuerung 21 auf den 1394-Bus 3.
    • (14) Wenn die Paketverarbeitungsschaltung 28 bestimmt, dass Informationen in einem ACK-Paket für das gesendete WRS-Paket ein normales Ende angeben, meldet sie der CPU 10 den Empfang des Status für den Befehls-ORB (Phase "c" in 10 endet).
    • (15) Die CPU 10 liest den Status aus dem Befehls-Statusempfangs-Puffer 33 aus.
  • So kann die Befehlsausgabevorrichtung 20 die Last beseitigen, die auf der CPU 10 während des Zeitraums erzeugt würde, bis sie die Benachrichtigung über den Empfang des Staus erhält und den Status nach Vornehmen der Anfangseinstellung ausliest, einen Befehls-ORB erzeugt und speichert und die Ausgabe des Befehls-ORB anfordert. Während die Operation zur Ausgabe des Befehls-ORB durch Zugriff auf das ORB_POINTER-Register mit Bezug auf die Beispieloperation beschrieben worden ist, werden ähnliche Funktionen bei der Ausgabe eines Befehls-ORB durch Zugriff auf das DOORBELL-Register ausgeführt, während das AGENT_STATE-Register in SUSPEND ist.
  • (Dritte Beispieloperation)
  • Es wird unten eine Operation der Befehlsausgabevorrichtung 20 bei der Ausgabe verknüpfter Befehls-ORBs mit Bezug auf die 12A12B und 13A13C beschrieben werden. In diesem Beispiel wird eine Operation vor dem Befehl C in 5 hinzugefügt, das heißt, es wird eine Operation zur Ausgabe von zwei Befehls-ORBs von Befehl A und Befehl B beschrieben werden.
  • In dieser Beispieloperation erzeugt die CPU 10 zwei auszugebende Befehls-ORBs (ORB A, ORB B) und speichert sie der Reihe nach in dem Befehls-ORB-Sendepuffer 30. Der Befehls-ORB-Sendepuffer 30 bestimmt die Adresse des ORB von Befehl A ("*A" in 12A) und teilt sie der Sequenz-Steuerschaltung 29 mit. Er teilt die Adresse außerdem der Paketverarbeitungsschaltung 28 und dem Empfangsfilter 27 mit. Dann bestimmt der Befehls-ORB-Sendepuffer 30 die Adresse des ORB von Befehl B („*B" in 12A) und ändert das Next_ORB-Feld des ORB von Befehl A in "*B". Wie bei dem ORB von Befehl A teilt er der Paketverarbeitungsschaltung 28 und dem Empfangsfilter 27 die Adresse ("*B" in 12A) des ORB von Befehl B mit.
  • Der Prozess von Phase „a" bis Phase "c" in 12A läuft wie in der zweiten Beispieloperation ab. Wenn der CPU 10 der Empfang des Status für den ORB von Befehl A gemeldet wird, liest die CPU 10 den Status aus dem Befehls-Statusempfangs-Puffer 33 aus. Alternativ kann jeweils eine Vielzahl von Status in dem Befehls-Statusempfangs-Puffer 33 gespeichert werden und es damit ermöglichen, dass das Auslesen des Status für den ORB von Befehl A durch die CPU 10 aufgeschoben wird, bis ein Status für den ORB von Befehl B ausgelesen worden ist.
  • Das Ziel 2 bestimmt, dass das Next_ORB-Feld in dem ORB von Befehl A nicht Null, sondern *B ist. So wird der ORB von Befehl B erhalten, und seine Ausführung wird begonnen. Die Phasen d und e in 12B sind die gleichen wie die Phasen b und c in 12A.
  • Wie oben beschrieben, ermöglicht die Befehlsausgabevorrichtung 20 der CPU 10, eine Vielzahl von Befehls-ORBs zwischenzuspeichern und ihr Next_ORB-Feld auf Null zu belassen, statt die ORBs absichtlich zu verknüpfen, wenn die CPU 10 die Befehls-ORBs ausgibt, und verringert dadurch die Last auf der CPU 10.
  • (Vierte Beispieloperation)
  • Es wird unten eine Operation der Befehlsausgabevorrichtung 20 mit Bezug auf die 14A14B und 15A15D beschrieben werden, wenn ein zusätzlicher Befehls-ORB während der Ausführung eines verknüpften Befehls-ORB ausgegeben wird. In diesem Beispiel wird eine Operation für einen zusätzlichen Befehl C während der Ausführung von Befehl A ausgegeben, nachdem zwei ORBs für die Befehle A und B verknüpft und ausgegeben wurden, wie in 5 dargestellt.
  • Die Phasen a und b in 14A laufen wie diejenigen in der dritten Beispieloperation ab. Die CPU 10 erzeugt den ORB des dritten Befehls, C, und speichert ihn während der Ausführung des ORB von Befehl A in dem Befehls-ORB-Sendepuffer 30. Der Befehls-ORB-Sendepuffer 30 bestimmt die Adresse (*C in 14A) des ORB von Befehl C und teilt sie der Paketverarbeitungsschaltung 28 und dem Empfangsfilter 27 mit. Der Befehls-ORB-Sendepuffer 30 ändert das Next_ORB-Feld des zuvor zwischengespeicherten ORB von Befehl B in "*C" und fordert die Sequenz-Steuerschaltung 29 zum Zugriff auf das DOORBELL-Register von dem Ziel 2 auf. Die Sequenz-Steuerschaltung 29 greift nicht auf das DOORBELL-Register zu, weil der ORB von Befehl A ausgeführt wird. Wenn jedoch der letzte verknüpfte ORB, der ORB von Befehl B, ausgeführt wird, greift sie auf das DOORBELL-Register zu.
  • Die Beschreibung von Phase c in 14A und der Phasen d bis g in 14B wären nicht erforderlich. Auch in diesem Beispiel kann jeweils eine Vielzahl von Stati in dem Befehls-Statusempfangs-Puffer 33 gespeichert werden, so dass das Auslesen der Status für die ORBs der Befehle A und B durch die CPU 10 aufgeschoben werden kann, bis ein Status für den ORB von Befehl C ausgelesen worden ist.
  • Auf diese Weise ermöglicht es die Befehlsausgabevorrichtung 20 der CPU 10, alle Befehls-ORBs zwischenzuspeichern und ihr Next_ORB-Feld auf Null zu belassen, statt die ORBs absichtlich zu verlinken, wenn die CPU 10 während der Ausführung einer Vielzahl von verlinkten ausgegebenen Befehls-ORBs einen zusätzlichen Befehls-ORB ausgibt, und verringert dadurch die Last auf der CPU 10.
  • (Fünfte Beispieloperation)
  • Es wird unten eine Operation der Befehlsausgabevorrichtung 20 in einer Situation, in der ein Befehlsfehler auftritt, mit Bezug auf die 16 und 17A17B beschrieben werden. Der Übergang zum DEAD-Zustand und eine Rückkehr zum RESET-Zustand werden dabei beschrieben werden.
  • Die Phasen a und b in 16 laufen wie in der zweiten Beispieloperation ab. Nachdem das Ziel 2 in Phase "a" in 16 ein WRS-Paket an die Auslöseeinrichtung 1 zurückgegeben hat, vollzieht es einen Übergang vom RESET-Zustand zum ACTIVE-Zustand. Falls ein Fehler auftritt, während das Ziel 2 einen ORB ausführt, erzeugt das Ziel 2 einen Fehlerstatus nach dem in 4 dargestellten Format, positioniert ihn in dem data_field in einem BWRQ-Paket und sendet ihn an die Auslöseeinrichtung 1. Der Fehlerstatus wird durch Setzen des Bits "d" in 4 erzeugt. Dann wechselt das Ziel 2 in den DEAD-Zustand (Phase "c" in 16 beginnt).
  • Die Phasen c und d in 16 werden unten genau beschrieben werden.
    • (1) Wenn der Empfangsfilter 27 bestimmt, dass der destination_offset in dem BWRQ-Paket, das den empfangenen Fehlerstatus enthält, mit der Adresse in dem STATUS_FIFO, die in der CPU 10 gesetzt ist, übereinstimmt, dann meldet er der Paketverarbeitungsschaltung 28 den Empfang des BWRQ-Paketes und stellt das BWRQ-Paket für die Paketverarbeitungsschaltung 28 bereit.
    • (2) Die Paketverarbeitungsschaltung 28 referenziert den ORB_offset_hi und den ORB_offset_lo in dem Status (siehe 4), der in dem data_field in dem BWRQ-Paket enthalten ist, und speichert, falls sie nicht mit der von dem Verwaltungs-ORB-Sendepuffer 31 empfangenen Adresse eines Verwaltungs-ORB übereinstimmen, den Status in dem Befehls-Statusempfangs-Puffer 33. Gleichzeitig erzeugt sie ein WRS-Paket für das BWRQ-Paket und sendet es durch den Sendefilter 26, den Sendepuffer 23, die Sicherungsschicht-Steuerung 22 und die Bitübertragungsschicht-Steuerung 21 auf den 1394-Bus 3.
    • (3) Wenn die Paketverarbeitungsschaltung 28 bestimmt, dass Informationen in einem auf das gesendete WRS-Paket antwortenden ACK-Paket eine erfolgreiche Beendigung angeben, meldet sie der CPU 10 den Empfang des Status für den Befehls-ORB (Phase "c" in 16 endet).
    • (4) Wenn der Befehls-Statusempfangs-Puffer 33, der den Status speichert, bestimmt, dass das Bit "d" in dem in 4 dargestellten Status gesetzt ist, fordert er die Sequenz-Steuerschaltung 29 auf, auf das AGENT_RESET-Register von dem Ziel 2 zuzugreifen.
    • (5) Die CPU 10 liest den Status aus dem Befehls-Statusempfangs-Puffer 33 aus.
    • (6) Wenn die Sequenz-Steuerschaltung 29 die Aufforderung zum Zugriff auf das AGENT_RESET-Register empfängt, erzeugt sie ein in 1B dargestelltes QWRQ-Paket, in dem die von der CPU 10 bereitgestellte Knoten-ID von dem Ziel 2 in dem Destination_ID-Feld, die Adresse in dem AGENT_RESET-Register in dem Destination_offset-Feld gesetzt ist, ein vorgegebener Wert in dem Quadlet_data-Feld und der tcode auf „0" gesetzt ist, und stellt dann das QWRQ-Paket für die Paketverarbeitungsschaltung bereit (Phase „d" in 16 beginnt).
    • (7) Die Paketverarbeitungsschaltung 28 setzt einen vorgegebenen Wert in dem tl in dem QWRQ-Paket und sendet es durch den Sendefilter 26, den Sendepuffer 23, die Sicherungsschicht-Steuerung 22 und die Bitübertragungsschicht-Steuerung 21 auf den 1394-Bus 3. Die Paketverarbeitungsschaltung 28 teilt dem Empfangsfilter 27 den tcode und den tl mit.
    • (8) Das Ziel 2 empfängt das QWRQ-Paket und gibt ein WRS-Paket zurück. Dann wechselt das Ziel 2 in den RESET-Zustand.
    • (9) Wenn der Empfangsfilter 27 bestimmt, dass der tcode in dem empfangenen WRS-Paket WRS ist und der tl mit dem übereinstimmt, der von der Paketverarbeitungsschaltung 28 bereitgestellt wurde, meldet er der Paketverarbeitungsschaltung 28 und der Sequenz-Steuerschaltung 29 den Empfang des WRS-Paketes und löscht das WRS-Paket selbst (Phase „d" in 16 endet).
    • (10) Die Sequenz-Steuerschaltung 29 meldet der CPU 10 den Zugriff auf das AGENT_RESET-Register.
  • Wie oben beschrieben, beseitigt die Befehlsausgabevorrichtung 20 die Notwendigkeit für die CPU 10, das Ziel 2 in den RESET-Zustand zu ändern, selbst wenn das Ziel 2 aufgrund einer fehlerhaften Beendigung eines ausgegebenen Befehls-ORB in den DEAD-Zustand übergeht, und verringert dadurch die Last auf der CPU 10. Des Weiteren kann die Befehlsausgabevorrichtung 20, wenn ein Fehler auftritt, während verlinkte Befehls-ORBs ausgeführt werden, fortfahren, gespeicherte Befehls-ORB auszugeben, indem sie auf das ORB_POINTER-Register zugreift, nachdem sie auf das AGENT_RESET-Register zugegriffen hat, und daher kann die CPU 10 fortfahren, Befehls-ORBs auszugeben.

Claims (3)

  1. Befehlsausgabevorrichtung (20) als Auslöseeinrichtung (1) in einer seriellen Hochgeschwindigkeitsschnittstelle zum Ausgeben eines Befehls an ein Ziel (2) unter Verwendung eines Paketes, wobei sie umfasst: eine Sequenz-Steuerschaltung (29), die durch eine CPU (10) aktiviert wird, um eine Befehlsausgabe-Sequenz zu steuern; eine Paketverarbeitungsschaltung (28) zum Zusammenstellen von ORB (Operation Request Blocks), die auszugeben sind, zu einem Sendepaket und zum Extrahieren eines Status aus einem empfangenen Paket; einen Befehls-ORB-Sendepuffer (30) zum Speichern eines Befehls-ORB, der durch die CPU (10) bereitgestellt wird; einen Verwaltungs-Statusempfangs-Puffer (32) zum Speichern eines für einen ausgegebenen Verwaltungs-ORB empfangenen Status und zum Bereitstellen des Status für die CPU (10); und einen Befehls-Statusempfangs-Puffer (33) zum Speichern eines für einen ausgegebenen Befehls-ORB empfangenen Status und zum Bereitstellen des Status für die CPU (10), gekennzeichnet durch: einen Verwaltungs-ORB-Sendepuffer (31) zum Speichern eines Verwaltungs-ORB, der an das Ziel (2) auszugeben ist und durch die CPU (10) bereitgestellt wird; wobei der Befehls-ORB-Sendepuffer (30) eine Kapazität zum jeweiligen Speichern einer Vielzahl an das Ziel (2) auszugebender Befehls-ORB aufweist, und der Befehls-ORB-Sendepuffer (30) selbst automatisch eine Adresse zuweist und in ein Next_ORB-Feld eines am Ende des Befehls-ORB-Sendepuffers (30) gespeicherten Befehls-ORB überschreibt, so dass eine Vielzahl von ORB verknüpft weiden, wenn die CPU (10) einen zusätzlichen Befehls-ORB ausgibt und dabei ihr eigenes Next_ORB-Feld auf NULL belässt.
  2. Befehlsausgabevorrichtung (20) nach Anspruch 1, wobei der Befehls-ORB Sendepuffer (30) selbst das Next_ORB-Feld überschreibt, um die ORB zu verknüpfen, und dann die Sequenz-Steuerschaltung (29) ohne Verwendung der CPU (10) auffordert, auf ein DOORBELL-Register des Ziels (2) zuzugreifen, wenn ein neuer Befehls-ORB während der Ausführung eines am Ende des Befehls-ORB-Sendepuffers (30) gespeicherten Befehls-ORB gespeichert wird; und die Sequenz-Steuerschaltung (29) ein Paket erzeugt und ausgibt und damit in Reaktion auf die Anforderung von dem Befehls-ORB-Sendepuffer (30) auf das DOORBELL-Register zugreift.
  3. Befehlsausgabevorrichtung (20) nach Anspruch 1 oder 2, wobei der Befehls-Statusempfangspuffer (33) eine Kapazität zum jeweiligen Speichern einer Vielzahl von Befehlen hat.
DE60215997T 2001-04-19 2002-04-19 Vorrichtung zur Ausgabe von Befehlen an einer seriellen Hochgeschwindigkeitschnittstelle Expired - Lifetime DE60215997T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001120745 2001-04-19
JP2001120745A JP2002318777A (ja) 2001-04-19 2001-04-19 高速シリアルインターフェース用のコマンド発行装置

Publications (2)

Publication Number Publication Date
DE60215997D1 DE60215997D1 (de) 2006-12-28
DE60215997T2 true DE60215997T2 (de) 2007-03-01

Family

ID=18970735

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60215997T Expired - Lifetime DE60215997T2 (de) 2001-04-19 2002-04-19 Vorrichtung zur Ausgabe von Befehlen an einer seriellen Hochgeschwindigkeitschnittstelle

Country Status (4)

Country Link
US (1) US7127530B2 (de)
EP (1) EP1253520B1 (de)
JP (1) JP2002318777A (de)
DE (1) DE60215997T2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039690B2 (en) * 2001-08-01 2006-05-02 Lucent Technologies Inc. System and method for accessing registers of PHY device in network
JP3808394B2 (ja) * 2002-04-02 2006-08-09 松下電器産業株式会社 ストリームデータ処理装置、ストリームデータ処理方法、プログラム、及び、媒体
JP4094931B2 (ja) * 2002-10-29 2008-06-04 三菱電機株式会社 トランシーバ集積回路及び通信モジュール
CN1313942C (zh) * 2003-07-02 2007-05-02 国际商业机器公司 在操作系统级实现数据处理的方法、设备和系统
TWI237771B (en) * 2004-03-22 2005-08-11 Via Tech Inc Media player control system and control method used therein
US8082381B2 (en) * 2008-09-02 2011-12-20 Nvidia Corporation Connecting a plurality of peripherals
US8103803B2 (en) * 2008-11-21 2012-01-24 Nvidia Corporation Communication between a processor and a controller
US8610732B2 (en) * 2008-12-11 2013-12-17 Nvidia Corporation System and method for video memory usage for general system application
US8677074B2 (en) * 2008-12-15 2014-03-18 Nvidia Corporation Shared memory access techniques
US8032673B2 (en) * 2009-12-14 2011-10-04 Apple Inc. Transaction ID filtering for buffered programmed input/output (PIO) write acknowledgements
US9244741B2 (en) * 2011-04-02 2016-01-26 Open Invention Network, Llc System and method for service mobility

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5920030A (ja) 1982-07-26 1984-02-01 Fujitsu Ltd 入出力命令制御方式
JP4086345B2 (ja) * 1997-09-09 2008-05-14 キヤノン株式会社 通信制御方法及び装置及び通信システム
JP4111472B2 (ja) * 1998-05-15 2008-07-02 キヤノン株式会社 通信制御方法及び装置及び通信システム
US6243778B1 (en) 1998-10-13 2001-06-05 Stmicroelectronics, Inc. Transaction interface for a data communication system
US6185632B1 (en) * 1998-10-19 2001-02-06 Hewlett-Packard Company High speed communication protocol for IEEE-1394 including transmission of request and reply writes to a datagram-FIFO-address to exchange commands to end a job
JP3990833B2 (ja) * 1998-12-11 2007-10-17 キヤノン株式会社 通信制御方法及び装置
US6205494B1 (en) 1998-12-18 2001-03-20 Western Digital Corporation Controller with automatic generation of linked list of data transfer descriptors for sequential commands, with linked list being used for execution of sequential data transfers
JP3408442B2 (ja) * 1998-12-24 2003-05-19 エヌイーシーアクセステクニカ株式会社 データ転送装置
JP2000224195A (ja) * 1999-02-04 2000-08-11 Matsushita Electric Ind Co Ltd データ伝送装置
JP3838606B2 (ja) 1999-02-26 2006-10-25 松下電器産業株式会社 シーケンス処理装置
JP3365377B2 (ja) * 1999-08-12 2003-01-08 セイコーエプソン株式会社 ログイン装置、被ログイン装置、及び装置間通信システム、ログイン制御方法、並びに記録媒体
JP3598923B2 (ja) * 1999-12-20 2004-12-08 セイコーエプソン株式会社 データ転送制御装置、情報記憶媒体及び電子機器
US6763402B2 (en) * 2000-05-25 2004-07-13 Bnl Technologies, Inc. Data storage subsystem
US7164689B2 (en) * 2000-12-05 2007-01-16 Matsushita Electric Industrial Co., Ltd. Multi-initiator control unit and method

Also Published As

Publication number Publication date
DE60215997D1 (de) 2006-12-28
EP1253520B1 (de) 2006-11-15
EP1253520A3 (de) 2005-02-02
EP1253520A2 (de) 2002-10-30
US20020156943A1 (en) 2002-10-24
US7127530B2 (en) 2006-10-24
JP2002318777A (ja) 2002-10-31

Similar Documents

Publication Publication Date Title
DE60309391T2 (de) Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren
DE69731421T2 (de) Verfahren zum Verknüpfen eines Datenpaketes mit einem Kanal in einem IEEE1394-Datenübertragungssystem
DE60038448T2 (de) Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen
DE69133257T2 (de) Vorrichtung und verfahren zur schnellen paketvermittlung
DE19962768B4 (de) Verfahren zum Übertragen von Daten über einen Datenbus mit minimierter digitaler Intersymbolstörung
DE10234991B4 (de) Hostcontrollerdiagnose für einen seriellen Bus
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE69521101T2 (de) Gemeinsam genutzte virtuelle Platten mit anwendungstransparenter Wiedergewinnung
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE69702523T2 (de) Cache-speichersteuereinheit in einer raid-schnittstelle
DE60215997T2 (de) Vorrichtung zur Ausgabe von Befehlen an einer seriellen Hochgeschwindigkeitschnittstelle
DE19900345A1 (de) Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
EP1093252A2 (de) Zugrifssteuerungsvorrichtung für ein IEEE 1394 Busnetz
DE19900345A9 (de) Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
DE112013006549T5 (de) Computersystem und Datensteuerverfahren
DE112004002043B4 (de) Verfahren, System und Programm zum Aufbau eines Pakets
DE102004024130B4 (de) Speichersystem und Verfahren zum Betrieb eines Speichersystems
US7545746B2 (en) Computer system for controlling routed data amount
DE69730399T2 (de) Schnittstellengerät zur Anpassung von Datenbreite an Systembusbreite
JP3780776B2 (ja) データ転送制御装置及び電子機器
DE19900251B4 (de) Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals
DE60314641T2 (de) Verfahren, system und programm zur konfiguration von teilnehmern auf einem bus fürein-/ausgabeoperationen
DE3854770T2 (de) Busadapter für digitales Rechensystem
EP1039368A2 (de) Datenkommunikations-Gerät
DE60028270T2 (de) Übertragungsvorrichtung mit Mittel zur Zuweisung von einer alternativen Bestimmungsinformation zu jeder Funktionseinheit, und Übertragungssystem mit zwei solchen Übertragungsvorrichtungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP