DE60303162T2 - Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren - Google Patents

Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren Download PDF

Info

Publication number
DE60303162T2
DE60303162T2 DE60303162T DE60303162T DE60303162T2 DE 60303162 T2 DE60303162 T2 DE 60303162T2 DE 60303162 T DE60303162 T DE 60303162T DE 60303162 T DE60303162 T DE 60303162T DE 60303162 T2 DE60303162 T2 DE 60303162T2
Authority
DE
Germany
Prior art keywords
bus
command
data
bus2
packet
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
DE60303162T
Other languages
English (en)
Other versions
DE60303162D1 (de
Inventor
Shinichiro Suwa-shi Fujita
Akemi Suwa-shi Ito
Hiroyuki Suwa-shi Kanai
Koji Suwa-shi Nakao
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Application granted granted Critical
Publication of DE60303162D1 publication Critical patent/DE60303162D1/de
Publication of DE60303162T2 publication Critical patent/DE60303162T2/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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein Datenübertragungssteuersystem, ein elektronisches Werkzeug, ein Programm sowie ein Datenübertragungssteuerverfahren.
  • In den vergangenen Jahren hat eine IEEE 1394 genannte Schnittstellennorm Aufmerksamkeit erregt. Nicht nur Peripheriegeräte von Rechnern, beispielsweise Festplattenlaufwerke, Bildplattenlaufwerke, Drucker und Scanner können gemäß dieser IEEE 1394 mit einem Bus verbunden werden, sondern auch elektrische Hausgeräte, wie Videokameras, Videorecorder und Fernsehgeräte. Aus diesem Grund wird erwartet, daß mit dieser Norm eine dramatische Beschleunigung der Digitalisierung elektronischer Werkzeuge (instruments) möglich wird.
  • Wenn gemäß dem IEEE 1394 eine an einen Bus angeschlossene Anzahl Knoten geändert wird, beispielsweise wenn ein zusätzliches elektronisches Werkzeug mit dem Bus verbunden oder ein elektronisches Werkzeug vom Bus entfernt wird, kommt es zu einer Busrücksetzung. Wenn eine Busrücksetzung geschieht, wird die Knotentopologieinformation gelöscht. Nach der Busrücksetzung wird die Knotentopologieinformation automatisch wieder hergestellt.
  • Da die Knotentopologieinformation gemäß IEEE 1394 nach der Busrücksetzung automatisch wiederhergestellt wird, ergibt sich ein sogenannter "heißer Stecker". Das bedeutet, daß ein Benutzer jederzeit elektronische Werkzeuge hineinstecken und herausziehen kann, wie er das mit herkömmlichen elektrischen Hausgeräten, beispielsweise Videorecordern tut. Das trägt dazu bei, Netzsysteme zuhause beliebter zu machen.
  • Aber durch diese Busrücksetzung können verschiedene Probleme verursacht werden. Wenn ein Befehl an ein Festplattenlaufwerk ausgegeben wird (oder eine Speichervorrichtung in weiterem Sinn oder eine Vorrichtung in weiterem Sinn) und eine Übertragung mit direktem Speicherzugriff (DMA) in Gang gesetzt wird und dann während der DMA-Übertragung eine Busrücksetzung geschieht, kann das Festplattenlaufwerk beispielsweise einen Hänger erleiden.
  • Als herkömmliche Technik zum Lösen verschiedener durch das Auftreten einer Busrücksetzung verursachter Probleme ist zum Beispiel ein in der japanischen offengelegten Patentanmeldung Nr. 2001-177537 (US 2001/0042141 A1) offenbartes Verfahren bekannt. Auf diesen Stand der Technik wird weiter unten in dieser Beschreibung noch näher eingegangen.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Angesichts der oben beschriebenen technischen Schwierigkeit kann die vorliegende Erfindung ein Datenübertragungssteuersystem, ein elektronisches Werkzeug, ein Programm und ein Datenübertragungssteuerverfahren bieten, mit denen ein an die Vorrichtung ausgegebener Befehl abgebrochen werden kann.
  • Dieses Ziel wird mit einem Datenübertragungssteuersystem gemäß Anspruch 1, einem elektronischen Werkzeug gemäß Anspruch 9, einem Programm gemäß Anspruch 10 und einem Verfahren gemäß Anspruch 13 erreicht. Bevorzugte Ausführungsbeispiele der Erfindung sind der Gegenstand der abhängigen Ansprüche.
  • Bei diesem Datenübertragungssteuersystem wird der vom Befehlspaket angezeigte, durch den ersten Bus übertragene Befehl an die mit dem zweiten Bus verbundene Vorrichtung ausgegeben und die DMA-Übertragung begonnen. Der an die mit dem zweiten Bus verbundene Vorrichtung ausgegebene Befehl wird nach Beendigung der DMA-Übertragung abgebrochen (oder aufgehoben). Das verhindert das Auftauchen eines Problems, wie eines Blockierens der mit dem zweiten Bus verbundenen Vorrichtung, wenn die DMA-Übertragung nicht normal vollendet wird, wodurch der an die Vorrichtung ausgegebene Befehl zweckmäßig abgebrochen werden kann. Es sei noch erwähnt, daß der erste Bus ein Bus sein kann, der Daten überträgt, die einer ersten Schnittstellennorm entsprechen, während der zweite Bus ein Bus sein kann, der beispielsweise einer zweiten Schnittstellennorm entspricht.
  • Das Datenübertragungssteuersystem kann ferner einen Befehlsvergleichsteil aufweisen, in welchem der Inhalt eines über den ersten Bus übertragenen Befehlspaketes vor einer Busrücksetzung mit dem Inhalt eines zweiten Befehlspakets verglichen wird, welches nach der Busrücksetzung über den ersten Bus übertragen wird, wenn die die Knotentopologieinformation löschende Busrücksetzung während der Verarbeitung des ersten Befehlspakets aufgetreten ist, wobei der Befehlsabbruchteil einen Befehl, der an die mit dem zweiten Bus aufgrund des ersten Befehlspaketes verbundene Vorrichtung ausgegeben wurde, abbrechen kann, wenn eine DMA-Übertragung vollendet ist, die auf der Grundlage des ersten Befehlspaketes begonnen wurde, wenn sich herausstellt, daß der Inhalt des ersten Befehlspakets sich vom Inhalt des zweiten Befehlspakets unterscheidet.
  • Wenn der Inhalt des ersten und zweiten Befehlspaketes als gleich festgestellt wird, kann die Datenübertragung ab dem Punkt des Auftretens der Busrücksetzung wieder aufgenommen werden.
  • Wenn bei diesem Datenübertragungssteuersystem eine Busrücksetzung, die Knotentopologieinformation löscht, während der Verarbeitung eines ersten Befehlspaketes auftritt, kann der Befehl des ersten Befehlspakets abgebrochen werden, falls ein Befehl des ersten Befehlspakets an die mit dem zweiten Bus verbundene Vorrichtung ausgegeben wurde, und, falls der Befehl des ersten Befehlspakets nicht an die mit dem zweiten Bus verbundene Vorrichtung ausgegeben wurde, kann die Verarbeitung eines zweiten Befehlspakets beginnen, ohne den Befehl des ersten Befehlspakets abzubrechen.
  • Mit diesem Datenübertragungssteuersystem kann der Befehlsabbruchteil Scheindatenübertragungen zur und von der mit dem zweiten Bus verbundenen Vorrichtung steuern, bis die DMA-Übertragung vollendet ist.
  • Hierbei kann die Scheindatenübertragung dadurch gesteuert werden, daß eine Scheinaktualisierung an einem Zeiger eines Paketpuffers vorgenommen wird, der übertragene Daten zeitweilig speichert, oder durch das Anordnen von Hardware für die Scheindatenübertragung. Die Scheindaten können beispielsweise Daten sein, die über den zweiten Bus, aber nicht über den ersten Bus übertragen werden.
  • Mit diesem Datenübertragungssteuersystem kann der Befehlsabbruchteil einen Befehl auch ohne Steuern einer Scheindatenübertragung abbrechen, wenn zum Feststellen, ob der Befehl abzubrechen ist oder nicht, keine DMA-Übertragung durchgeführt wird. Das bedeutet, daß die Verarbeitung einer Scheindatenübertragungssteuerung weggelassen werden kann, wodurch der Wirkungsgrad der Verarbeitung verbessert werden kann.
  • Das Datenübertragungssteuersystem kann ferner folgendes aufweisen: einen Zeigerverwaltungsteil, der Zeiger für einen Paketpuffer, bei dem es sich um einen Ringpuffer handelt, verwaltet und übertragene Daten zeitweilig speichert. Der Zeigererwaltungsteil aktualisiert immer dann einen ersten Zeiger, wenn vom zweiten Bus übertragene Daten in den Paketpuffer geschrieben werden, und er aktualisiert einen zweiten Zeiger immer dann, wenn an den ersten Bus zu übertragende Daten aus dem Paketpuffer gelesen werden. Dabei kann der Befehlsabbruchteil die Scheindatenübertragung dadurch steuern, daß er eine Scheinaktualisierung am zweiten Zeiger vornimmt, so daß der erste Zeiger keinen Vorsprung vor dem zweiten Zeiger bekommt.
  • Das Datenübertragungssteuersystem kann ferner folgendes aufweisen: einen Zeigerverwaltungsteil, der Zeiger für einen Paketpuffer, bei dem es sich um einen Ringpuffer handelt, verwaltet und übertragene Daten zeitweilig speichert, wobei der Zeigerverwaltungsteil einen dritten Zeiger immer dann aktualisiert, wenn an den zweiten Bus zu übertragende Daten aus dem Paketpuffer gelesen werden, und auch einen vierten Zeiger immer dann aktualisiert, wenn vom ersten Bus übertragene Daten in den Paketpuffer geschrieben werden. Dabei steuert der Befehlsabbruchteil die Scheindatenübertragung dadurch, daß er am vierten Zeiger eine Scheinaktualisierung vornimmt, so daß der dritte Zeiger keinen Vorsprung vor dem vierten Zeiger bekommt.
  • In diesem Datenübertragungssteuersystem kann der erste Bus Daten überfragen, die der Norm IEEE 1394 entsprechen, und der zweite Bus kann Daten übertragen, die der Norm ATA/ATAPI (Advanced Technology Attachment/Advanced Technology Attachment Packet Interface) entsprechen.
  • KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNG
  • Es zeigt:
  • 1 ein Diagramm eines Schichtaufbaus gemäß IEEE 1394 und Serial Bus Protocol 2 (SBP-2);
  • 2 ein Diagramm einer Zusammenfassung der Verarbeitung von SBP-2;
  • 3 ein Diagramm einer Befehlsverarbeitung für den Fall der Übertragung von Daten von einem Initiator an ein Ziel gemäß SBP-2;
  • 4 ein Diagramm der Befehlsverarbeitung für den Fall einer Übertragung von Daten von einem Ziel zu einem Initiator gemäß SBP-2;
  • 5A bis 5C Diagramme zur Erläuterung einer Seitentabelle;
  • 6 ein Diagramm von Knotentopologieinformation, die durch eine Busrücksetzung gelöscht wird;
  • 7A und 7B Diagramme zur Erläuterung eines Problems, welches auftritt, wenn eine Busrücksetzung während der Datenübertragung geschieht;
  • 8 ein Diagramm eines Konfigurationsbeispiels eines Datenübertragungssteuersystems und eines elektronischen Werkzeugs in einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 9 ein Fließschema einer detaillierten Verarbeitung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 10 ein Fließschema einer detaillierten Verarbeitung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 11 ein Diagramm der Wiederaufnahmeverarbeitung der Datenübertragung;
  • 12 ein Diagramm eines Vergleichs der Inhalte von Operationsanforderungsblöcken (ORB);
  • 13 ein Diagramm einer Befehlsabbruchverarbeitung;
  • 14A bis 14E Diagramme einer Zeitsteuerung (beim Lesen), um die Verarbeitung einer Scheindatenübertragung zu verwirklichen;
  • 15A bis 15E Diagramme einer Zeitsteuerung (beim Schreiben), um die Verarbeitung einer Scheindatenübertragung zu verwirklichen;
  • 16 ein Diagramm eines Konfigurationsbeispiels einer ATA/ATAPI-Schnittstellenschaltung;
  • 17A und 17B Wellenverlaufdiagramme von Signalverlaufsbeispielen während des PIO-Lesens und PIO-Schreibens;
  • 18A und 18B Wellenformdiagramme von Signalverlaufsbeispielen während des DMA-Lesens und DMA-Schreibens;
  • 19A und 19B Wellenverlaufdiagramme von Signalverlaufsbeispielen während des UltraDMA-Lesens und UltraDMA-Schreibens.
  • DETAILLIERTE BESCHREIBUNG DES AUSFÜHRUNGSBEISPIELS
  • Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend beschrieben. Es sei erwähnt, daß die nachstehend beschriebenen Ausführungsbeispiele in keiner Weise den Umfang der Erfindung, wie in den Ansprüchen umrissen, einschränken. Darüber hinaus sollten alle Elemente der nachfolgend beschriebenen Ausführungsbeispiele nicht als wesentliche Erfordernisse der vorliegenden Erfindung aufgefaßt werden.
  • 1. IEEE 1394 und SBP-2
  • 1.1. Schichtaufbau
  • Ein Protokoll namens Serial Bus Protocol 2 (SBP-2) wurde als ein Protokoll höherer Ebene vorgeschlagen und schließt einen Teil einer Funktion einer Transaktionsschicht der IEEE 1394 ein. SBP-2 (SBP in einem weiteren Sinn) ist vorgeschlagen worden, damit ein Befehlssatz von SCSI (MMC-2) auf dem Protokoll der IEEE 1394 verwendet werden kann. SBP-2 macht es möglich, einen Befehlssatz, der bereits in einem elektronischen Werkzeug entsprechend der SCSI Norm benutzt wurde, in einem elektronischen Werkzeug entsprechend der Norm IEEE 1394 zu benutzen, wenn lediglich minimale Änderungen am Befehlssatz vorgenommen werden. Aus diesem Grund kann die Auslegung und Entwicklung eines elektronischen Werkzeugs erleichtert werden.
  • In 1 ist ein Schichtaufbau (oder ein Protokollstapel) gemäß IEEE 1394 und SBP-2 schematisch dargestellt. Die Protokolle IEEE 1394 (IEEE 1394-1995, P1394a, P1394b, usw.) umfassen eine Transaktionsschicht, eine Verbindungsschicht und eine physikalische Schicht. Die Transaktionsschicht bietet eine obere Schicht mit einer Schnittstelle (Dienstleistung) in einer Transaktionseinheit und führt Transaktionen, wie Lesen, Schreiben und eine Einrasttransaktion über eine von der Verbindungsschicht gebotene Schnittstelle in einer tieferen Schicht durch.
  • Bei der Lesetransaktion werden Daten von einem Rückmelderknoten zu einem Anfordererknoten übertragen. Bei der Schreibtransaktion werden Daten vom Anfordererknoten an den Rückmelderknoten übertragen. Bei der Einrasttransaktion werden Daten vom Anfordererknoten zum Rückmelderknoten übertragen, und der Rückmelderknoten verarbeitet die Daten und schickt die verarbeiteten Daten an den Anfordererknoten zurück.
  • Die Verbindungsschicht sorgt für Adressieren, Daten prüfen, Rahmen von Daten für die Paketüber mittlung und Empfang, zyklische Steuerung für isochrone Übertragung und dergleichen.
  • Die physikalische Schicht übersetzt von der Verbindungsschicht verwendete logische Symbole in elektrische Signale, entscheidet für den Bus und bietet eine physikalische Busschnittstelle.
  • Wie aus 1 hervorgeht, bietet eine SBP-2-Schicht ein Protokoll höherer Ebene einschließlich eines Teils der Funktion der Transaktionsschicht gemäß IEEE 1394 (erste Schnittstellennorm in weiterem Sinn).
  • 1.2. Verarbeitung von SBP-2
  • 2 ist ein Fließschema der gesamten Verarbeitung von SBP-2 (erstes Protokoll höherer Ebene der ersten Schnittstellennorm im weiteren Sinn). Im SBP-2 erfolgt die Leseverarbeitung eines Konfigurations-ROM zum Bestätigen angeschlossener Vorrichtungen, wie in 2 gezeigt (Schritt T1). Es erfolgt eine Anmeldeverarbeitung (Schritt T2), um es einem Initiator (z.B. PC) zu erlauben, ein Zugangsrecht zu einem Ziel (z.B. Speichervorrichtung) zu erwerben (Erlaubnis zum Initiieren anfordern; Recht zur Benutzung des Bus). Im einzelnen wird die Anmeldeverarbeitung mit Hilfe eines Anmelde-Operationsanforderungsblocks (ORB) durchgeführt, den der Initiator erzeugt. Ein Abrufagent wird initialisiert (Schritt T3). Die Befehlsverarbeitung wird mit Hilfe eines Befehlsblock-ORB (normaler Befehl ORB) (Schritt T4) durchgeführt, und die Abmeldeverarbeitung wird mit Hilfe eines Abmelde-ORB (Schritt T5) durchgeführt.
  • Bei der Befehlsverarbeitung im Schritt T4 überträgt der Initiator ein Schreibanforderungspaket (gibt eine Schreibanforderungstransaktion aus) an ein Türklingelregister des Ziels, wie mit A1 in 3 angedeutet. Das Ziel überträgt ein Leseanforderungspaket, und der Initiator schickt ein dem Leseanforderungspaket entsprechendes Leseantwortpaket zurück, wie mit A2 angedeutet. Das macht es möglich, den vom Initiator erzeugten ORB (Befehlsblock ORB) in einem Datenpuffer (Paketpuffer) des Ziels abzurufen. Das Ziel analysiert einen Befehl, der in dem im Datenpuffer abgerufenen ORB enthalten ist.
  • Wenn der im ORB enthaltene Befehl ein SCSI Schreibbefehl ist, überträgt das Ziel ein Leseanforderungspaket an den Initiator, und der Initiator schickt ein Leseantwortpaket entsprechend dem Leseanforderungspaket zurück, wie mit A3 angedeutet. Das ermöglicht die Übertragung von in einem Datenpuffer des Initiators gespeicherten Daten an das Ziel. Für den Fall, daß das Ziel eine Speichervorrichtung ist, werden die übertragenen Daten in die Speichervorrichtung eingegeben.
  • Wenn der im ORB enthaltene Befehl ein SCSI Lesebefehl ist, überträgt das Ziel eine Reihe von Leseanforderungspaketen an den Initiator, wie mit B1 in 4 angedeutet. Für den Fall, daß es sich bei dem Ziel um eine Speichervorrichtung handelt, werden aus der Speichervorrichtung gelesene Daten an den Datenpuffer des Initiators übertragen.
  • Gemäß SBP-2 kann das Ziel je nach Zweckmäßigkeit Daten durch Übertragen eines Anforderungspakets (Ausgabe einer Transaktion) übermitteln oder empfangen. Da es also unnötig ist, daß der Initiator und das Ziel synchronisiert zusammenarbeiten, kann die Wirksamkeit der Datenübertragung erhöht werden.
  • Als ein Protokoll höherer Ebene gemäß IEEE 1394 ist zusätzlich zum SBP-2, welches zur Datenübertragung einer Speichervorrichtung oder eines Druckers geeignet ist, ein AV/C-Befehl vorgeschlagen worden, der sich zum Übertragen von Bild- und Tondaten eignet. Als Protokoll zum Übertragen von Internetprotokollpaketen (IP) auf dem IEEE 1394 Bus ist auch ein Protokoll namens IPover 1394 vorgeschlagen worden.
  • Beim Übertragen von Daten zwischen dem Ziel und dem Initiator kann es einen Fall geben, bei dem eine Seitentabelle im Datenpuffer des Initiators (PC oder Partnerknoten) vorhanden ist, wie in 5A gezeigt, und auch einen Fall, bei dem im Datenpuffer des Initiators keine Seitentabelle vorhanden ist. Bei Vorhandensein einer Seitentabelle ist die Seitentabellenadresse und die Anzahl Elemente in einem vom Initiator erzeugten ORB enthalten, wie in 5B gezeigt. Die Adresse (Leseadresse oder Schreibadresse) der zu übertragenden Daten wird mit Hilfe der Seitentabelle indirekt adressiert.
  • Ist keine Seitentabelle vorhanden, ist eine Adresse und die Datenlänge im ORB enthalten, und die zu übertragenden Daten werden unmittelbar adressiert, wie in 5C gezeigt.
  • 1.3. Busrücksetzung
  • Bei IEEE 1394 geschieht eine Busrücksetzung (wird ausgegeben), wenn mitten in einer Transaktion die Stromversorgung zu einer Vorrichtung eingeschaltet oder eine Vorrichtung eingesteckt oder herausgezogen wird. Im einzelnen überwacht jeder Knoten eine Spannungsänderung des Anschlusses. Ändert sich die Spannung des Anschlusses, weil ein neuer Knoten mit dem Bus oder dergleichen verbunden wird, benachrichtigt ein die Spannungsänderung erfassender Knoten weitere Knoten am Bus über das Auftreten der Busrücksetzung. Diese physikalische Schicht jedes Knotens benachrichtigt die Verbindungsschicht über das Auftreten der Busrücksetzung.
  • Wenn es zur Busrücksetzung kommt, wird die in 6 gezeigte Topologieinformation (Knoten ID und dergleichen) gelöscht. Die Topologieinformation wird dann automatisch wiederhergestellt. Im einzelnen werden drei Prozesse zur Identifizierung und Selbstidentifizierung nach der Busrücksetzung durchgeführt. Verwaltungsknoten, beispielsweise ein isochroner Ressourcenmanager, ein Taktführer und ein Busmanager werden dann bestimmt und die normale Paketübertragung wieder aufgenommen.
  • Da die Topologieinformation nach der Busrücksetzung automatisch wiederhergestellt wird, kann gemäß IEEE 1394 ein Kabel jederzeit in ein elektronisches Werkzeug eingesteckt oder herausgezogen werden, womit ein sogenannter "heißer Stecker" verwirklicht werden kann.
  • Falls die Busrücksetzung mitten in einer Transaktion passiert, wird die Transaktion gelöscht. Der Anfordererknoten, der die gelöschte Transaktion ausgegeben hat, überträgt das Anforderungspaket neu, wenn die Topologieinformation wiederhergestellt ist. Der Rückmelderknoten darf das Antwortpaket der durch die Busrücksetzung gelöschten Transaktion nicht an den Anfordererknoten zurückschicken.
  • 1.4. Blockierung wegen Busrücksetzung
  • Es hat sich gezeigt, daß folgende Schwierigkeit auftritt, wenn die Busrücksetzung während der Datenübertragung geschieht.
  • Wie 7A zeigt, geschieht die Busrücksetzung zum Beispiel nachdem an einem mit C1 bezeichneten Ort (Adresse) Daten übertragen wurden. In diesem Fall werden alle während der Busrücksetzung in Verarbeitung befindlichen Transaktionen gelöscht. Der Initiator, beispielsweise ein PC, der eine Datenübertragung mit Hilfe eines ORB angefordert hat, der vor der Busrücksetzung übertragen wurde (nachfolgend möglicherweise als "ORB1" bezeichnet), stellt einen nach der Busrücksetzung übertragenen ORB wieder her (nachfolgend möglicherweise als "ORB2" bezeichnet) und trägt dem Ziel, beispielsweise einer Speichervorrichtung auf, Daten neu zu übertragen, wie in 7B gezeigt. Die Datenübertragung wird also an einem mit C2 in 7B bezeichneten Ort wiederaufgenommen, wodurch Daten zweimal übertragen werden.
  • Um dieses Problem zu lösen, wird bei der in der offengelegten japanischen Patentanmeldung Nr. 2001-177537 offenbarten Technik ein Verfahren angewandt, gemäß dem der Inhalt des ORB1 vor der Busrücksetzung mit dem Inhalt des ORB2 nach der Busrücksetzung verglichen und die Datenübertragung an einem in 7B mit C3 angedeuteten Ort wiederaufgenommen wird, wenn der Inhalt des ORB1 der gleiche ist wie der des ORB2.
  • Je nach der Architektur des Betriebssystems (OS) des PC kann jedoch ein ORB2 mit anderem Inhalt als dem des ORB1 vor der Busrücksetzung vom PC nach der Busrücksetzung übertragen werden. Zum Beispiel enthält der ORB1 den SCSI (MMC-2) Schreibbefehl, wie in 3 gezeigt, und die Busrücksetzung geschieht während der Datenübertragung auf der Grundlage des Schreibbefehls. In diesem Fall kann das Betriebssystem des PC nach der Busrücksetzung einen ORB2 senden, der einen Lesebefehl für eine Dateizuordnungstabelle (FAT) enthält, um den Inhalt der FAT zu prüfen.
  • Da der Datenschreibbefehl vom ORB1 vor Busrücksetzung und der FAT Lesebefehl vom ORB nach der Busrücksetzung angezeigt wird, unterscheidet sich folglich in diesem Fall der Inhalt des ORB1 vom Inhalt des ORB2. Deshalb muß der Schreibbefehl des ORB1, der in der nachfolgenden Stufe an die Speichervorrichtung ausgegeben wurde, abgebrochen werden.
  • Wenn allerdings die DMA-Übertragung auf der Grundlage des Schreibbefehls des ORB1 bereits vor der Busrücksetzung begonnen (oder initiiert) wurde, kommt es bei einem Abbruch des Schreibbefehls zu einem Problem, bei dem die Speichervorrichtung in der nachfolgenden Stufe einen Hänger hat.
  • 2. Gesamtkonfiguration
  • 8 zeigt ein Beispiel einer Gesamtkonfiguration eines Datenübertragungssteuersystems, mit dem das obige Problem gelöst werden kann, und eines elektronischen Werkzeugs, welches das Datenübertragungssteuersystem umfaßt. Die nachfolgende Beschreibung betrifft einen Fall, bei dem ein Ziel, welches eine Datenübertragung zwischen dem Initiator und dem Ziel durchführt, zum Beispiel eine Speichervorrichtung ist (Festplattenlaufwerk, CD-Laufwerk, DVD-Laufwerk oder dergleichen). Allerdings ist die vorliegende Erfindung nicht hierauf beschränkt.
  • Ein PC (Zentralrechner) 2 mit einem Datenpuffer 4 ist über einen Bus BUS1 (erster Bus) gemäß IEEE 1394 mit einem elektronischen Werkzeug 8 verbunden. Das elektronische Werkzeug 8 umfaßt ein Datenübertragungssteuersystem 10 und eine Speichervorrichtung 100 (Vorrichtung im weiteren Sinn). Das elektronische Werkzeug 8 kann eine System-CPU, einen Systemspeicher (ROM und RAM), einen Betriebsteil, einen Signalverarbeitungsteil und dergleichen umfassen (nicht gezeigt).
  • Das Datenübertragungssteuersystem 10 umfaßt eine physikalische Schichtschaltung 14 (PHY), eine Verbindungsschichtschaltung 20, eine SBP-2 Schaltung 22, eine Schnittstellenschaltung 30, eine Paketverwaltungsschaltung 38 und einen Paketpuffer 40 (Datenpuffer). Das Datenübertragungssteuersystem 10 umfaßt eine CPU 42 und einen Blitzspeicher 44 (EEPROM). Das Datenübertragungssteuersystem 10 umfaßt Firmware 50, dessen Verarbeitungsmodule (Programm) im Blitzspeicher 44 gespeichert sind und das von der CPU 42 (Prozessor im weiteren Sinn) ausgeführt wird. Das Datenübertragungssteuersystem 10 dieses Ausführungsbeispiels umfaßt nicht notwendigerweise alle in 8 gezeigten Schaltungsblöcke und Funktionsblöcke. Einige der Schaltungsblöcke und Funktionsblöcke können weggelassen sein.
  • Die physikalische Schichtschaltung 14 ist eine Schaltung zum Verwirklichen des Protokolls der in 1 gezeigten physikalischen Schicht mittels der Hardware. Die physikalische Schichtschaltung 14 hat eine Funktion der Übertragung logischer Symbole, die von der Verbindungsschichtschaltung 20 benutzt werden, in elektrische Signale.
  • Die Verbindungs-(& Transaktions)-Schichtschaltung 20 ist eine Schaltung zur Verwirklichung eines Teils des Protokolls der Verbindungsschicht und der Transaktionsschicht gemäß 1 mittels der Hardware. Die Verbindungsschichtschaltung 20 liefert verschiedene Dienste für die Paketübertragung zwischen den Knoten.
  • Datenübertragung in Übereinstimmung mit IEEE 1394 kann zwischen dem elektronischen Werkzeug 8 und dem PC 2 (einem elektronischen Werkzeug im weiteren Sinn) über den Bus BUS1 (erster Bus) mit Hilfe der Funktionen der physikalischen Schichtschaltung 14 und der Verbindungsschichtschaltung 20 durchgeführt werden.
  • Die SBP-2 Schaltung 22 (Übertragungsausführungsschaltung) ist eine Schaltung, die einen Teil des SBP-2 Protokolls und einen Teil der Transaktionsschicht mittels der Hardware verwirklicht. Die Verarbeitung zum Aufteilen der Übertragungsdaten in eine Reihe von Paketen und das kontinuierli che Übertragen der aufgeteilten Reihe von Paketen kann mittels der Funktion der SBP-2 Schaltung 22 verwirklicht werden. Die Schnittstellenschaltung 30 ist eine Schaltung, die eine Schnittstellenverarbeitung zwischen dem Datenübertragungssteuersystem 10 und der Speichervorrichtung 100 durchführt. Eine Datenübertragung entsprechend AT Attachment (ATA) und ATA Packet Interface (ATAPI) kann zwischen dem Datenübertragungssteuersystem 10 und der Speichervorrichtung 100 mittels der Funktion der Schnittstellenschaltung 30 über einen Bus BUS2 (zweiter Bus) durchgeführt werden.
  • Das Datenübertragungssteuersystem 10 kann mit einer Konvertierungsbrückenfunktion zwischen IEEE 1394 (erste Schnittstellennorm im weiteren Sinn und ATA (IDE/ATAPI) (zweite Schnittstellennorm im weiteren Sinn) versehen werden, indem die physikalische Schichtschaltung 14, die Verbindungsschichtschaltung 20 und die Schnittstellenschaltung 30 vorgesehen werden, wie in 8 gezeigt.
  • Ein in die Schnittstellenschaltung 30 eingeschlossener DMA-Controller 32 ist eine Schaltung, die eine DMA-Übertragung (direkter Speicherzugriff) zwischen dem Datenüberragungssteuersystem 10 und der Speichervorrichtung 100 über den Bus BUS2 durchführt. Die mit dem Bus BUS2 verbundene Speichervorrichtung 100 umfaßt eine Schnittstellenschaltung 102 für die Datenübertragung entsprechend ATA (IDE)/ATAPI und eine Zugriffssteuerschaltung 104, welche den Zugang (schreiben oder lesen) zu einem Speicher 106, beispielsweise eine Festplatte oder Bildplatte steuert.
  • Die Pufferverwaltungsschaltung 38 ist eine Schaltung, die eine Schnittstelle zwischen dem Paketpuffer 40 und der Verbindungsschichtschaltung 20 und dergleichen verwaltet. Die Pufferverwaltungsschaltung 38 umfaßt Register zum Steuern der Paketverwaltungsschaltung 38, eine Entscheidungsschaltung, die für die Busverbindung mit dem Paketpuffer 40 entscheidet, einen Ablaufverfolger, der verschiedene Steuersignale generiert, und dergleichen.
  • Die Pufferverwaltungsschaltung 38 umfaßt einen Zeigerverwaltungsteil 39. Der Zeigerverwaltungsteil 39 verwaltet Zeiger des Paketpuffers 40 mittels eines Ringpuffers und aktualisiert eine Vielzahl von Zeigern zum Schreiben und Lesen. Der Paketpuffer 40 (Paketspeicher oder Datenpuffer) ist ein Puffer zur zeitweiligen Speicherung von Paketen (übertragenen Daten) und ist in Form von Hardware, beispielsweise als SRAM, SDRAM oder DRAM ausgebildet. Bei diesem Ausführungsbeispiel wirkt der Paketpuffer 40 als Paketspeicherteil mit Direktzugriff. Der Paketpuffer 40 ist unter Umständen nicht in das Datenübertragungssteuersystem 10 eingeschlossen, sondern extern vorgesehen.
  • Die Zentraleinheit CPU 42 (Prozessor im weiteren Sinn) steuert die gesamte Vorrichtung und Datenübertragung.
  • Der Blitzspeicher 44 (EEEPROM) ist ein elektrisch löschbarer, programmierbarer, nichtflüchtiger Speicher. Die Verarbeitungsmodule (Programm) der Firmware 50 sind im Blitzspeicher 44 gespeichert. Die Firmware 50 ist ein Programm, welches verschiedene Verarbeitungsmodule (Verarbeitungsroutinen) umfaßt und auf die CPU 42 einwirkt. Die Protokolle der Transaktionsschicht und dergleichen werden von der Firmware 50 und der Hardware, beispielsweise der CPU 42 verwirklicht. Die Firmware 50 (F/W) umfaßt einen Kommunikationsteil 52, einen Verwaltungsteil 60, einen Abrufteil 70, einen Speicheraufgabenteil 80 und einen Herunterlader 90. Die Firmware 50 muß nicht unbedingt alle diese Funktionsblöcke einschließen. Einige der Funktionsblöcke können weggelassen sein. Der Kommunikationsteil 52 ist ein Verarbeitungsmodul, welches als Schnittstelle zwischen der Firmware 50 und der Hardware, beispielsweise der physikalischen Schichtschaltung 14 und der Verbindungsschichtschaltung 20 dient.
  • Der Verwaltungsteil 60 (Verwaltungsagent) ist ein Verarbeitungsmodul, welches Anmelden, neu Verbinden, Abmelden, Rücksetzen und dergleichen verwaltet. Wenn der Initiator eine Anmeldung an das Ziel anfordert, empfängt der Verwaltungsteil 60 den Anmeldebefehl. Der Abrufteil 70 (Abrufagent) ist ein Verarbeitungsmodul, welches einen Operationsanforderungsblock (ORB) empfängt, einen Befehlszustand ausgibt und den Speicheraufgabenteil 80 anweist, die Befehlsverarbeitung durchzuführen. Der Abrufteil kann auch eine Verbindungsliste eines ORB handhaben, den der Abrufteil 70 auf Befehl vom Initiator abgerufen hat, anders als der Verwaltungsteil 60, der nur einen einzigen Befehl handhaben kann. Der Speicheraufgabenteil 80 ist ein Verarbeitungsmodul zum Verarbeiten eines in einem ORB enthaltenen Befehls und zum Verarbeiten der DMA-Übertragung. Der Herunterlader 90 ist ein Verarbeitungsmodul zum Aktualisieren des Verarbeitungsmoduls der Firmware 50, die im Blitzspeicher 44 gespeichert ist, und dergleichen.
  • Der Speicheraufgabenteil 80 umfaßt einen Befehlsverarbeitungsteil 82, einen Befehlsvergleichsteil 84, einen Befehlsabbruchteil 86 und einen Übertragungswiederaufnahmeteil 88.
  • Der Befehlsverarbeitungsteil 82 führt verschiedene Arten der Verarbeitung eines über den Bus BUS1 (erster Bus entsprechend der ersten Schnittstellennorm, zum Beispiel IEEE 1394) übertragenen ORB durch (Befehlspaket oder ein Befehlspaket zur Datenübertragungsoperationsanforderung im weiteren Sinn). Im einzelnen empfängt der Befehlsverarbeitungsteil 82 einen ORB vom Bus BUS1, gibt einen im ORB enthaltenen Befehl SCSI oder MMC-2 Befehl) an die Speichervorrichtung 100 (Vorrichtung im weiteren Sinn) aus, die mit dem Bus BUS2 verbunden ist (zweiter Bus der zweiten Schnittstellennorm, zum Beispiel ATA/ATAPI) und befiehlt den Beginn der DMA-Übertragung (Datenübertragung ohne Beteiligung der CPU) über den Bus BUS2.
  • Wenn die Busrücksetzung (Rücksetzung, die die Knotentopologieinformation löscht) während der Verarbeitung eines ORB geschieht (während der Datenübertragung auf der Grundlage des ORB), vergleicht der Befehlsvergleichsteil 84 den Inhalt des über den Bus BUS1 vor der Busrücksetzung übertragenen ORB1 mit dem Inhalt eines ORB2, der nach der Busrücksetzung über den Bus BUS1 übertragen wurde.
  • Der Befehlsabbruchteil 86 bricht den Befehl (SCSI Lesebefehl, SCSI Schreibbefehl oder dergleichen), der aufgrund des ORB an die Speichervorrichtung 100 ausgegeben wurde, ab, wenn die DMA-Übertragung (kontinuierliche Datenübertragung), die aufgrund des ORB (Befehl) begonnen wurde, vollendet ist.
  • Genauer gesagt, wird vom Befehlsabbruchteil 86 der Befehl, abgebrochen (beendet oder gelöscht), der aufgrund des ORB1 an die Speichervorrichtung 100 ausgegeben wurde, wenn die DMA-Übertragung vollendet ist, die aufgrund des OR81 (Befehl) initiiert wurde, falls festgestellt wird, daß der Inhalt des ORB1 vor der Busrücksetzung sich vom Inhalt des ORB2 nach der Busrücksetzung unterscheidet. In diesem Fall steuert der Befehlsabbruchteil 86 so, daß Scheindaten zwischen dem Datenübertragungssteuersystem 10 und der Speichervorrichtung 100 übertragen werden, bis die DMA-Übertragung vollendet ist, die aufgrund des ORB begonnen worden war.
  • Bei dem Datenübertragungssteuersystem 10 gemäß diesem Ausführungsbeispiel mit einer Buskonvertierungsbrückenfunktion werden von der Speichervorrichtung 100 über den Bus BUS2 übertragene Daten über den Bus BUS1 an den PC 2 übertragen. Vom PC 2 über den Bus BUS1 übertragene Daten werden über den Bus BUS2 an die Speichervorrichtung 100 übertragen.
  • Bei der Übertragung von Scheindaten werden Scheindaten von der Speichervorrichtung 100 über den Bus BUS2 an das Datenübertragungssteuersystem 10 übertragen, aber nicht an den PC 2. Scheindaten werden über den Bus BUS2 auch dann an die Speichervorrichtung 100 übertragen, wenn vom PC 2 über den Bus BUS1 keine Daten an das Datenübertragungssteuersystem übertragen werden.
  • Der Befehlsabbruchteil 86 führt die Abbruchverarbeitung durch, wenn die nach der Busrücksetzung durchgeführte Verarbeitung zur Neuverbindung beendet ist. Der Übertragungswiederaufnahmeteil 88 führt die Verarbeitung zur Wiederaufnahme der Datenübertragung dort durch, wo die Busrücksetzung auftrat (Daten im Anschluß an die Daten, die übertragen wurden, als die Busrücksetzung geschah) wenn festgestellt wird, daß der Inhalt des ORB1 vor der Busrücksetzung der gleiche ist wie der Inhalt des ORB2 nach der Busrücksetzung.
  • 3. Einzelheiten der Verarbeitung
  • Einzelheiten der Verarbeitung bei diesem Ausführungsbeispiel werden nachfolgend unter Hinweis auf die in 9 und 10 und dergleichen gezeigten Ablaufdiagramme beschrieben. 9 ist ein Fließschema der Gesamtverarbeitung bei diesem Ausführungsbeispiel.
  • Wenn das Datenübertragungssteuersystem 10 während der SBP-2 Verarbeitung (Schritt S1) einen ORB1 einschließlich eines Befehls CMD1 empfängt, urteilt das Datenübertragungssteuersystem 10, ob die Busrücksetzung stattgefunden hat oder nicht (Schritt S2). Gab es keine Busrücksetzung, gibt das Datenübertragungssteuersystem 10 den im ORB1 enthaltenen Befehl CMD1 an die Speichervorrichtung 100 (Festplattenlaufwerk) aus, wie mit D1 in 11 angedeutet (Schritt S3). Da im SBP-2 Befehle ähnlich den SCSI (MMC-2) (Lesen, Schreiben, Modus erfassen, Modus auswählen und dergleichen) benutzt sind, führt die Speichervorrichtung 100 solche Operationen wie Lesen oder Schreiben mit Hilfe dieser Befehle durch. Das Datenübertragungssteuersystem 10 gemäß diesem Ausführungsbeispiel gewinnt den im ORB1 enthaltenen Befehl CMD1 zurück und gibt den Befehl CMD1 über die Schnittstellenschaltung 30 und den BUS2 (ATA/ATAPI) an die Speichervorrichtung 100 weiter.
  • Nach Ausgabe des Befehls CMD1 urteilt das Datenübertragungssteuersystem 10, ob die Busrücksetzung stattgefunden hat oder nicht (Schritt S4). Wenn die Busrücksetzung nicht aufgetreten ist, urteilt das Datenübertragungssteuersystem 10, ob ein Signal DMARQ von der Speichervorrichtung 100 über den BUS2 gesendet wurde oder nicht (Schritt S5). Genauer gesagt werden Signale wie das DMA-Übertragungsanforderungssignal DMARQ und ein DMARQ-Bestätigungssignal DMACK für den BUS2 in Übereinstimmung mit ATA/ATAPI festgelegt, wie weiter unten beschrieben. Wenn die Schnittstellenschaltung 102 der Speichervorrichtung 100 das Signal DMARQ aktiviert und die Schnittstellenschaltung 30 des Datenübertragungssteuersystems 10 dann das Signal DMACK aktiviert, beginnt die DMA-Übertragung.
  • Ist das Signal DMARQ nicht von der Speichervorrichtung 100 ausgesandt worden, urteilt das Datenübertragungssteuersystem 10, ob die Busrücksetzung stattgefunden hat oder nicht (Schritt S6). Geschah keine Busrücksetzung, urteilt das Datenübertragungssteuersystem 10, ob das Signal DMARQ von der Speichervorrichtung 100 gesendet wurde. Das Datenübertragungssteuersystem 10 wiederholt die Beurteilung in den Schritten S5 und S6, bis das Signal DMARQ von der Speichervorrichtung 100 gesendet wird.
  • Ist das Signal DMARQ von der Speichervorrichtung 100 gesendet worden, ordnet das Datenübertragungssteuersystem 10 den Beginn der DMA-Übertragung durch Aktivieren des Signals DMACK und dergleichen an (Schritt S7). Das ermöglicht die Datenübertragung über den Bus BUS1 (IEEE 1394) und den Bus BUS2 (ATA/ATAPI), wie mit D2 und D3 in 11 angedeutet. Die Datenübertragung über den Bus BUS1 wird von der physikalischen Schichtschaltung 14, der Verbindungsschichtschaltung 20, der SBP-2 Schaltung 22 und dergleichen durchgeführt. Das ermöglicht es, Daten, die im Datenpuffer 4 des PC 2 gespeichert sind, in den Paketpuffer 40 zu schreiben oder im Paketpuffer 40 gespeicherte Daten in den Datenpuffer 4 einzulesen.
  • Die Datenübertragung über den Bus BUS2 wird von der Schnittstellenschaltung 30 und dergleichen bewerkstelligt. Das ermöglicht es, im Paketpuffer 40 gespeicherte Daten in den Speicher 106 der Speichervorrichtung 100 zu schreiben oder im Speicher 106 gespeicherte Daten in den Paketpuffer 40 einzulesen.
  • Das Datenübertragungssteuersystem 10 urteilt, ob die Busrücksetzung stattgefunden hat oder nicht (Schritt S8). Wenn es keine Busrücksetzung gegeben hat und die DMA-Übertragung vollendet ist (Schritt S9), beendet das Datenübertragungssteuersystem 10 die Befehlsverarbeitung des Befehls ORB1 (Schritt S10) und benachrichtigt den PC 2 über den Zustand des Befehls ORB1 (Schritt S11). Auf diese Weise wird eine Befehlsverarbeitungsserie des Befehls ORB1 vollendet.
  • Wenn das Datenübertragungssteuersystem 10 beurteilt, daß die Busrücksetzung im Schritt S2, S4, S6 oder S8 stattgefunden hat, wird eine Verarbeitung zum erneuten Verbinden durchgeführt, bei der das Datenübertragungssteuersystem 10 auf die Neuverbindung des Initiators wartet, wie mit D4 in 11 angedeutet (Schritt S12).
  • Gemäß SBP-2 kann ein Initiator, der sich vor der Busrücksetzung beim Ziel angemeldet hatte, sich vorzugsweise mit dem Ziel für eine gewisse Zeitspanne nach der Busrücksetzung neu verbinden. Dadurch, daß die Verarbeitung des Neuverbindens nach der Busrücksetzung durchgeführt wird, kann der Initiator ausschließlich das Zugriffsrecht auf das Ziel haben (das Recht, den Bus zu benutzen).
  • Wenn das Datenübertragungssteuersystem 10 nach der Verarbeitung zum Neuverbinden einen ORB2 empfängt, der einen Befehl CMD2 enthält, führt das Datenübertragungssteuersystem 10 eine Verarbeitung zum Befehlsvergleich durch, bei dem der Inhalt des ORB1 (CMD1) vor der Busrücksetzung mit dem Inhalt des ORB2 nach der Busrücksetzung verglichen wird, wie mit D5 in 11 angedeutet (Schritt S14).
  • Wie aus 12 hervorgeht, werden bei diesem Ausführungsbeispiel ein Kennzeichen P für das Vorhandensein einer Seitentabelle, die Datengröße, Operationscode (Code, der einen Schreibbefehl, Lesebefehl und dergleichen unterscheidet) und die Datenlänge in einem Befehlsblockfeld (Befehl gesetzt) verglichen, die in dem ORB enthalten sind. Wenn der ORB Information zur Identifizierung des ORB enthält (beispielsweise eine Laufzahl), kann diese Identifizierungsinformation verglichen werden. In Fällen, in denen keine Seitentabelle benutzt wird, können Werte von Datenschlüsselbegriffen verglichen werden. Wird eine Seitentabelle benutzt, kann die Anzahl der Segmente verglichen werden. Wenn die obigen Informationen verglichen werden, kann unter Zuhilfenahme einfacher Verarbeitung mit Sicherheit beurteilt werden, ob der ORB1 vor der Busrücksetzung der gleiche ist wie der ORB2 nach der Busrücksetzung. Wenn das Datenübertragungssteuersystem 10 entscheidet, daß der Inhalt des ORB1 derselbe ist wie der Inhalt des ORB2, führt das Datenübertragungssteuersystem 10 eine Verarbeitung zur Wiederaufnahme der Datenübertragung am ORB1 durch (Schritt S15). Das macht es möglich, die Datenübertragung dort wiederaufzunehmen, wo die Busrücksetzung geschah, wie mit D6 in 11 angedeutet. Die Einzelheiten zur Verarbeitung der Wiederaufnahme der Datenübertragung sind in der offengelegten japanischen Patentanmeldung Nr. 2001-177537 offenbart.
  • Wenn das Datenübertragungssteuersystem 10 entscheidet, daß der Inhalt des ORB1 sich vom Inhalt des ORB2 unterscheidet, wie mit E4 in 13 angedeutet, urteilt das Datenübertragungssteuersystem 10, ob der im ORB1 enthaltene Befehl CMD1 an die Steuervorrichtung 100 ausgegeben wurde oder nicht (Schritt S16). Ist der Befehl CMD1 nicht ausgegeben worden, geht das Datenübertragungssteuersystem 10 zur Verarbeitung des neu gesendeten ORB2 über, ohne eine Verarbeitung des Befehlsabbruchs durchzuführen (Schritt S17). Für den Fall, daß während der Verarbeitung des Befehls CMD1 die Busrücksetzung geschieht, führt bei diesem Ausführungsbeispiel das Datenübertragungssteuersystem 10 eine Abbruchverarbeitung durch (Schritt S21), wenn geurteilt wird, daß der Befehl CMD1 ausgegeben wurde (Schritt S16). Lautet das Urteil, daß der Befehl CMD1 nicht ausgegeben wurde (Schritt S16), geht das Datenübertragungssteuersystem 10 zur Verarbeitung des ORB2 über (Schritt S17), ohne die Abbruchverarbeitung durchzuführen.
  • Wenn der Befehl CMD1 an die Speichervorrichtung 100 ausgegeben wurde, urteilt das Datenübertragungssteuersystem 10, ob die DMA-Übertragung begonnen wurde oder nicht (Schritt S18). Hat die DMA-Übertragung begonnen, geht das Datenübertragungssteuersystem 10 zur Abbruchverar beitung des Befehls CMD1 über, wie mit E5 in 13 angedeutet (Schritt S21). Wurde der Befehl CMD1 nicht ausgegeben, urteilt das Datenübertragungssteuersystem 10, ob das DMA-Übertragungsanforderungssignal DMARQ von der Speichervorrichtung 100 gesendet wurde oder nicht (Schritt S19). Wurde das Signal DMARQ nicht von der Speichervorrichtung 100 gesendet, geht das Datenübertragungssteuersystem 10 zur Abbruchverarbeitung des Befehls CMD1 über. Wurde das Signal DMARQ von der Speichervorrichtung 100 gesendet, ordnet das Datenübertragungssteuersystem 10 den Beginn der DMA-Übertragung an (Schritt S20) und geht zur Abbruchverarbeitung des Befehls CMD1 über. Nachdem das Datenübertragungssteuersystem 10 die Abbruchverarbeitung des Befehls CMD1 fertiggestellt hat, geht das Datenübertragungssteuersystem 10 zur Verarbeitung des ORB2 (CMD2) über (Schritt S17).
  • 10 ist ein Fließschema der Abbruchverarbeitung des Befehls CMD1. Das Datenübertragungssteuersystem 10 urteilt, ob die DMA-Übertragung aktiv ist oder nicht (Schritt S31). Wenn zum Beispiel das Datenübertragungssteuersystem 10 urteilt, daß die DMA-Übertragung im Schritt S18 in 9 nicht begonnen wurde, und daß das Signal DMARQ im Schritt S19 nicht gesendet wurde, entscheidet das Datenübertragungssteuersystem 10 im Schritt S31 in 10, daß die DMA-Übertragung nicht aktiv ist. In diesem Fall bricht das Datenübertragungssteuersystem 10 den Befehl CMD1 ab, ohne die Kontrollverarbeitung hinsichtlich der Scheindatenübertragung in den Schritten S32 bis S38 durchzuführen. Das macht es möglich, die Verarbeitung in den Schritten S32 bis S38 wegzulassen, wodurch die Leistungsfähigkeit der Verarbeitung erhöht werden kann.
  • Wenn das Datenübertragungssteuersystem 10 entscheidet, daß die DMA-Übertragung aktiv ist, urteilt das Datenübertragungssteuersystem 10, ob der Befehl CMD1 entweder ein Lesebefehl oder ein Schreibbefehl ist oder nicht (Schritt S32). Ist der Befehl CMD1 ein Lesebefehl, urteilt das Datenübertragungssteuersystem 10, ob die DMA-Übertragung auf der Grundlage des Befehls CMD1 vollendet wurde oder nicht (Schritt S33). Ist die DMA-Übertragung nicht vollendet, nimmt das Datenübertragungssteuersystem 10 die Verarbeitung der Übertragung von Scheindaten in den Schritten S33 bis S35 zwischen dem Datenübertragungssteuersystem 10 und der Speichervorrichtung 100 vor, bis die DMA-Übertragung vollendet ist. Entscheidet das Datenübertragungssteuersystem 10, daß die DMA-Übertragung vollendet wurde, führt das Datenübertragungssteuersystem 10 die Abbruchverarbeitung des Befehls CMD1 durch, wie mit E7 in 13 angedeutet (Schritt S39).
  • Ist der Befehl CMD1 ein Schreibbefehl, urteilt das Datenübertragungssteuersystem 10, ob die DMA-Übertragung aufgrund des Befehls CMD1 vollendet wurde oder nicht (Schritt S36). Ist die DMA-Übertragung nicht fertig, führt das Datenübertragungssteuersystem 10 eine Übertragungs-(Schreib)-Verarbeitung von Scheindaten in den Schritten S36 bis S38 zwischen dem Datenübertragungssteuersystem 10 und der Speichervorrichtung 100 durch, bis die DMA-Übertragung vollendet ist. Wenn das Datenübertragungssteuersystem 10 urteilt, daß die DMA-Übertragung fertig ist, nimmt das Datenübertragungssteuersystem 10 die Abbruchverarbeitung des Befehls CMD1 vor (Schritt S39).
  • Die Befehlsabbruchverarbeitung kann beispielsweise mittels einer in ATA/ATAPI definierten Softwarerücksetzung verwirklicht werden. Im einzelnen wird die Softwarerücksetzung dadurch ausgeführt, daß in einem in der Schnittstellenschaltung 102 der Speichervorrichtung 100 enthaltenen SRST-Bit eines Vorrichtungssteuerregisters eine "1" gesetzt wird. Der Wert kann im Register dadurch gesetzt werden, daß man es der Schnittstellenschaltung 30 erlaubt, Zugriff zu nehmen auf das Register der Schnittstellenschaltung 102 durch PIO-Übertragung unter Verwendung von BUS2 Signalen CS[1:0], DA[2:0], DIOW, DIOR und dergleichen, wie weiter unten beschrieben.
  • Bei diesem Ausführungsbeispiel wird der vor der Busrücksetzung an die Speichervorrichtung 100 ausgegebene Befehl CMD1 (siehe Schritt S3 in 9 und E1 in 13) abgebrochen, nachdem die aufgrund von ORB1 (CMD1) begonnene DMA-Übertragung (siehe Schritte S7 und S20 in 9 und E3 in 13) vollendet ist (siehe Schritt S39 in 10 und E7 in 13). Das macht es möglich, den Befehl CMD1 abzubrechen, wenn die DMA-Übertragung zwischen dem Datenübertragungssteuersystem 10 und der Speichervorrichtung 100 über den Bus BUS2 normal vollendet worden ist. Da die Speichervorrichtung 100 also normalerweise die DMA-Übertragung vollenden kann, kann das Auftauchen eines Problems, bei dem die Speichervorrichtung 100 hängt, verhindert werden. Außerdem gibt es keinen nachteiligen Einfluß auf die Verarbeitung des PC 2, da die DMA-Übertragung über den Bus BUS2 durch Scheindatenübertragung solange durchgeführt wird, bis der Befehl CMD1 abgebrochen wird.
  • Da die Speichervorrichtung 100 mit einer ATA(IDE)/ATAP1-Schnittstelle ursprünglich als eingebaute Speichervorrichtung für den PC 2 ausgelegt ist, ist die Speichervorrichtung 100 insbesondere nicht so konstruiert, daß sie das Auftreten der IEEE 1394 Busrücksetzung während der DMA-Übertragung berücksichtigt. Wenn also die Speichervorrichtung 100 mit dem Datenübertragungssteuersystem 10 bei diesem Ausführungsbeispiel, welches eine Brückenfunktion zwischen IEEE 1394 und ATA/ATAPI hat, verbunden ist, kann die Speichervorrichtung 100 aufgrund des Auftretens einer unerwarteten Busrücksetzung blockieren. Da jedoch gemäß diesem Ausführungsbeispiel der Befehl abgebrochen wird, nachdem die DMA-Übertragung vollendet ist, kann das Auftreten einer Blockierung vermieden werden.
  • 4. Scheindatenübertragung
  • Die Übertragungsverarbeitung von Scheindaten in den Schritten S33 bis S35 und S36 bis S38 in 10 wird nachfolgend unter Hinweis auf die 14A bis 14E und 15A bis 15E beschrieben. Die 14A bis 14E veranschaulichen eine Zeigersteuerung des Paketpuffers 40 für den Fall, daß der PC 2 Daten liest, die in der Speichervorrichtung 100 gespeichert sind (Datenübertragungssteuersystem 10 übermittelt Daten).
  • In 14A bis 14E ist ein Zeiger ATXP1 (erster Zeiger) ein Zeiger zum Schreiben von Daten, die vom Bus BUS2 übertragen wurden (Speichervorrichtung 100, ATA/ATAPI), in den Paketpuffer 40. Der Zeiger ATXP1 wird jedes Mal dann aktualisiert, wenn vom Bus BUS2 übertragene Daten in den Paketpuffer 40 geschrieben werden. Ein Zeiger LTXP2 (zweiter Zeiger) ist ein Zeiger zum Lesen von Daten, die vom Paketpuffer 40 zum Bus BUS1 übertragen wurden (PC 2, IEEE 1394). Der Zeiger LTXP2 wird jedes Mal dann aktualisiert, wenn zum Bus BUS1 übertragene Daten aus dem Paketpuffer 40 gelesen werden. Diese Zeiger werden vom Zeigerverwaltungsteil 39 aktualisiert.
  • Wie 14A zeigt, wird der Zeiger ATXP1 immer dann aktualisiert, wenn vom Bus BUS2 übertragene Daten durch die Schnittstellenschaltung 20 in den Paketpuffer 40 geschrieben werden, und ein vom Zeiger ATXP1 angezeigter Ort wird abwärts bewegt (in Datenspeicherrichtung). Der Zeiger ATXP1 wird mittels eines Ringpuffers verwaltet. Deshalb wird der Zeiger ATXP1, wenn er eine untere Grenze BD2 des Speicherbereichs erreicht, zu einer oberen Grenze BD1 des Speicherbereichs zurückgeführt (Ringe) wie in 14B gezeigt.
  • Wenn entschieden wird, daß ATXP1 = LTXP2 (Schritt S34 in 10), werden im gesamten Speicherbereich des Paketpuffers 40 Daten gespeichert, wie in 14C gezeigt. In 14A bis 14E bedeuten mit Schrägstrichen markierte Bereiche die gespeicherten Daten.
  • Bei diesem Ausführungsbeispiel wird der gleiche Wert noch einmal in das Zeigerregister des Zeigers LTXP2 geschrieben, wie in 14D gezeigt (Schritt S35 in 10). Das ermöglicht eine Scheinaktualisierung des Zeigers LTXP2, und damit wird ein Ergebnis erhalten, bei dem die im gesamten Speicherbereich gespeicherten Daten gelesen werden. Der Zeiger ATXP1 wird dann aktualisiert, wie in 14E gezeigt, wodurch vom Bus BUS2 übertragene Daten in den Speicherbereich eingeschrieben werden, aus dem scheinbar Daten gelesen werden. Die Zeigersteuerung gemäß den 14A bis 14E wird so lange wiederholt, bis die DMA-Übertragung vollendet ist (Schritt S33 in 10), so daß Scheindaten zwischen dem Datenübertragungssteuersystem 10 und der Speichervorrichtung 100 über den BUS2 übertragen werden.
  • Bei diesem Ausführungsbeispiel erfolgt die Übertragungssteuerung von Scheindaten dadurch, daß eine Scheinaktualisierung des Zeigers LTXP2 vorgenommen wird, so daß der Zeiger ATXP1 (erster Zeiger), der jedes Mal aktualisiert wird, wenn vom Bus BUS2 übertragene Daten in den Paketpuffer 40 geschrieben werden, keinen Vorsprung vor dem Zeiger LTXP2 (zweiter Zeiger) bekommt.
  • Die 15A bis 15E zeigen eine Zeigersteuerung des Paketpuffers 40 für den Fall, daß der PC 2 Daten in die Speichervorrichtung 100 schreibt (das Datenübertragungssteuersystem 10 empfängt Daten).
  • In 15A bis 15E ist ein Zeiger ARXP3 (dritter Zeiger) ein Zeiger zum Lesen von Daten, die vom Paketpuffer 40 zum Bus BUS2 übertragen werden. Der Zeiger ARXP3 wird immer dann aktualisiert, wenn an den Bus BUS2 übertragene Daten aus dem Paketpuffer 40 gelesen werden. Ein Zeiger LRXP4 (vierter Zeiger) ist ein Zeiger, mit dem vom Bus BUS1 übertragene Daten in den Paketpuffer 40 geschrieben werden. Der Zeiger LRXP4 wird immer dann aktualisiert, wenn vom Bus BUS1 übertragene Daten in den Paketpuffer 40 geschrieben werden. Diese Zeiger werden vom Zeigerverwaltungsteil 39 aktualisiert.
  • Wie aus 15A hervorgeht, wird der Zeiger ARXP3 jedes Mal aktualisiert, wenn an den Bus BUS2 übertragene Daten aus dem Paketpuffer 40 gelesen werden, und ein vom Zeiger ARXP3 angezeigter Ort wird abwärts bewegt. Der Zeiger ARXP3 wird mittels eines Ringpuffers verwaltet. Wenn also der Zeiger ARXP3 eine untere Grenze BD2 erreicht, wird der Zeiger ARXP3 zur oberen Grenze BD1 zurückgeführt.
  • Wird entschieden, daß ARXP3 = LRXP4 (Schritt 37 in 10), werden Daten aus dem gesamten Speicherbereich des Paketpuffers gelesen, wie in 15C gezeigt.
  • Bei diesem Ausführungsbeispiel wird der gleiche Wert noch einmal in das Zeigerregister des Zeigers LRXP4 geschrieben, wie in 15D gezeigt (Schritt S38 in 10). Das ermöglicht eine Scheinaktualisierung des Zeigers LRXP4, wodurch ein Ergebnis erhalten wird, bei dem die Daten in den ganzen Speicherbereich geschrieben werden. Der Zeiger ARXP3 wird dann aktualisiert, wie in 15E gezeigt, wodurch zum Bus BUS2 übertragene Daten aus dem Speicherbereich gelesen werden, in den scheinbar Daten geschrieben wurden. Die in den 15A bis 15E gezeigte Zeigersteuerung wird so lange wiederholt, bis die DMA-Übertragung vollendet ist (Schritt S36 in 10), so daß über den Bus BUS2 Scheindaten zwischen dem Datenübertragungssteuersystem 10 und der Speichervorrichtung 100 übertragen werden.
  • Bei diesem Ausführungsbeispiel wird die Übertragungssteuerung von Scheindaten dadurch verwirklicht, daß am Zeiger LRXP4 eine Scheinaktualisierung durchgeführt wird, so daß der Zeiger ARXP3 (dritter Zeiger), der immer dann aktualisiert wird, wenn zum Bus BUS2 übertragene Daten aus dem Paketpuffer 40 gelesen werden, keinen Vorsprung vor dem Zeiger LRXP4 (vierter Zeiger) erhält.
  • Bei diesem Ausführungsbeispiel werden Scheindaten imitierend zwischen dem Datenübertragungssteuersystem 10 und der Speichervorrichtung 100 über den Bus BUS2 übertragen, bis die DMA-Übertragung vollendet ist, und der Befehl CMD1 wird nach vollendeter DMA-Übertragung abgebrochen. Der PC 2 liest oder schreibt imitierend übertragene Daten, indem er eine Scheinaktualisierung an den Zeigern LTXP2 und LRXP4 vornimmt, wie in 14D und 15D gezeigt. Damit kann verhindert werden, daß die Verarbeitung des PC 2 leidet, wenn die DMA-Übertragung fortgesetzt wird, bis der Befehl CMD1 abgebrochen ist. So kann der vom PC 2 nach der Busrücksetzung erneut gesendete ORB2 (CMD2) ordnungsgemäß verarbeitet werden, nachdem der Befehl CMD1 abgebrochen wurde.
  • Dieses Verfahren, eine Scheinaktualisierung an den Zeigern LTXP2 und LRXP4 vorzunehmen, ist nicht auf die in 14A bis 15D gezeigten Verfahren begrenzt. Es reicht, die Zeiger LTXP2 und LRXP4 so zu steuern, daß mindestens die Zeiger ATXP1 und ARXP3 keinen Vorsprung vor den Zeigern LTXP2 und LRXP4 bekommen. Die Übertragungsverarbeitung von Scheindaten kann so verwirklicht werden, daß statt der in den 14A bis 15D gezeigten Zeigersteuerung eine Hardwareschaltung ausschließlich für die Scheindatenübertragung vorgesehen wird.
  • 5. ATA/ATAPI Schnittstellenschaltung
  • 16 zeigt ein Konfigurationsbeispiel der ATA/ATAPI Schnittstellenschaltung 30. Die Schnittstellenschaltung 30 umfaßt nicht notwendigerweise alle in 16 gezeigten Schaltungsblöcke. Einige der Schaltungsblöcke können weggelassen sein.
  • Ein FIFO 31 ist ein Puffer zum Einstellen (Puffern) des Unterschieds in der Datenübertragungsgeschwindigkeit. Ein DMA-Controller 32 ist eine Schaltung, die den FIFO 31 und eine Schnittstellenkernschaltung 34 steuert (REQ/ACK Steuerung). Die Schnittstellenschaltung 34 ist eine Schaltung, welche die DMA-Übertragung und dergleichen steuert. Ein in der Schnittstellenkernschaltung 34 enthaltener Zähler 35 ist ein ATA (IDE)/ATAPI Rücksetzzähler. Eine in der Schnittstellenkernschaltung 34 enthaltene UDMA Schaltung 36 ist eine Schaltung zum Steuern der ATA/ATAPI UltraDMA-Übertragung. Zu der UDMA Schaltung 36 gehört ein UltraDMA FIFO 37 und eine UltraDMA CRC Rechenschaltung 38. Ein Register 33 ist ein Register zum Steuern der Initiierung der DMA-Übertragung und dergleichen. Das Register 33 ist für die Firmware 50 (CPU 42) zugänglich.
  • Ein Signal CS[1:0] ist ein Chipauswählsignal, welches zum Zugriff auf jedes ATA Register benutzt wird. Ein Signal DA[2:0] ist ein Adressiersignal zum Zugriff auf Daten oder einen Datenanschluß. Die Signale DMARQ und DMACK sind für die DMA-Übertragung benutzte Signale. Das Signal DMARQ wird von der Speichervorrichtung 100 (Vorrichtung) aktiviert (aufgedrückt), wenn die Vorbereitungen für die Datenübertragung vollendet sind, und das Signal DMARQ wird vom Datenübertragungssteuersystem 10 (Zentralvorrichtung) aktiviert, wenn in Abhängigkeit vom Signal DMACK die DMA-Übertragung initiiert wird. Ein Signal DIOW (STOP) ist ein Schreibsignal, welches zum Schreiben von Daten in ein Register oder einen Datenanschluß benutzt wird. Das Signal DIOW funktioniert als STOP Signal während der UltraDMA Übertragung. Ein Signal DIOR (HDMARDY, HSTROBE) ist ein Lesesignal, welches zum Lesen von Daten aus einem Register oder einer Datenöffnung benutzt wird. Das Signal DIOR funktioniert als ein HDMARDYINSTROBE Signal während der UltraDMA-Übertragung. Ein Signal IORDY (DDMARDY, DSTROBE) wird als ein Wartesignal oder dergleichen benutzt, wenn die Speichervorrichtung 100 die Vorbereitungen für die Datenübertragung nicht vollendet. Das Signal IORDY funktioniert als DDMARDYIDSTROBE Signal während der UltraDMA-Übertragung.
  • Die 17A bis 19B zeigen Beispiele von Signalverläufen der obigen ATA Signale. In den 17A bis 19B bedeutet "#", daß das Signal ein negatives logisches Signal ist (aktiv bei L Pegel). 17A und 17B sind Beispiele von Signalverläufen während des PIO-(Parallel I/O) Lesens und PIO-Schreibens. Das ATA Zustandsregister wird beim in 17A gezeigten PIO-Lesen gelesen. Das Steuerregister wird vom in 17B gezeigten PIO-Schreiben geschrieben. Durch das in 17B gezeigte PIO-Schreiben wird zum Beispiel im SRST Bit des Registers der Schnittstellenschaltung 102 eine "1" gesetzt, um eine Softwarerücksetzung zum Abbruch eines Befehls zu generieren, der an die Speichervorrichtung 100 ausgegeben wurde.
  • Die 18A und 18B zeigen Beispiele von Signalverläufen während des DMA-Lesens und DMA-Schreibens. Die Speichervorrichtung 100 (Schnittstellenschaltung 102) aktiviert das Signal DMARQ (H Pegel), wenn die Vorbereitungen zur Datenübertragung vollendet sind. Das Datenübertragungssteuersystem 10 (Schnittstellenschaltung 30) aktiviert das Signal DMACK (L Pegel) in Abhängigkeit von Signal DMARQ, um die DMA-Übertragung zu initiieren. Die DMA-Übertragung von Daten DD[15:0] wird mittels des Signals DIOR (während des Lesens) oder DIOW (während des Schreibens) durchgeführt.
  • Die 19A und 19B zeigen Beispiele von Signalverläufen während des UltraDMA-Lesens und UltraDMA-Schreibens. Die Speichervorrichtung 100 aktiviert das Signal DMARQ, wenn die Vorbereitungen für die Datenübertragung vollendet sind. Das Datenübertragungssteuersystem 10 aktiviert das Signal DMACK in Abhängigkeit vom Signal DMARQ, um die DMA-Übertragung zu initiieren. Die UltraDMA-Übertragung von Daten DD[15:0] wird mittels der Signale DIOW, DIOR und IORDY durchgeführt.
  • Es sei erwähnt, daß die vorliegende Erfindung nicht auf die vorstehend beschriebenen Ausführungsbeispiele begrenzt ist und daß verschiedene Abwandlungen innerhalb des Umfangs der Erfindung vorgenommen werden können.
  • In einem Teil dieser Beschreibung sind beispielsweise Ausdrücke wie IEEE 1394, ATA/ATAPI, SBP-2, IPower1394, ORB, PC/Speichervorrichtung, Festplattenlaufwerk/Bildplattenlaufwerk, Speichervorrichtung und CPU durch Ausdrücke in weiterem Sinn ersetzt, wie erste Schnittstellennorm, zweite Schnittstellennorm, ein erstes Protokoll höherer Ebene der ersten Schnittstellennorm, ein zweites Protokoll höherer Ebene der ersten Schnittstellennorm, ein Befehlspaket, elektronisches Werkzeug, Speichervorrichtung, Vorrichtung und Prozessor; aber diese Ausdrücke können auch in einem anderen Teil der Beschreibung ersetzt werden.
  • Ein Teil der Erfordernisse in irgend einem Anspruch der vorliegenden Erfindung könnte aus einem abhängigen Anspruch weggelassen werden, der von diesem Anspruch abhängt. Darüber hinaus könnte ein Teil der Erfordernisse irgendeines unabhängigen Anspruchs der vorliegenden Erfindung von irgendeinem anderen unabhängigen Anspruch abhängig gemacht werden.
  • Die Konfiguration des Datenübertragungssteuersystems und des elektronischen Werkzeugs der vorliegenden Erfindung ist nicht auf die in 8 gezeigte Konfiguration beschränkt, sondern es sind verschiedene Abwandlungen möglich. Zum Beispiel kann ein Teil der in 9 und 18 gezeigten Schaltungsblöcke und Funktionsblöcke weggelassen oder die Verbindung zwischen den Blöcken abgewandelt werden. Der zweite Bus (BUS2) kann mit einer anderen Vorrichtung als der Speichervorrichtung verbunden werden. Die Verbindung der physikalischen Schichtschaltung, der Verbindungsschichtschaltung und des Paketpuffers ist nicht auf die in 8 gezeigte Verbindung beschränkt.
  • Auch wenn die Ausführungsbeispiele einen Fall veranschaulichen, bei dem die Funktionen des Befehlsverarbeitungsteils, Befehlsabbruchteils, Befehlsvergleichsteils, Übertragungswiederaufnahmeteils und dergleichen mittels Firmware (Programm) verwirklicht sind, kann ein Teil dieser Funktionen oder alle mittels Hardware verwirklicht werden.
  • Die vorliegende Erfindung ist besonders nützlich zur Busrücksetzung gemäß IEEE 1394. Aber die vorliegende Erfindung kann auch auf eine andere Rücksetzung angewandt werden, mit der mindestens die Knotentopologieinformation gelöscht wird. Die vorliegende Erfindung kann auf die Befehlsabbruchverarbeitung angewandt werden, die zu anderer Zeit als die Busrücksetzung durchgeführt wird.
  • Die vorliegende Erfindung kann auf verschiedene Arten elektronischer Geräte angewandt werden (beispielsweise Festplattenlaufwerke, Bildplattenlaufwerke, magneto-optische Plattenlaufwerke, PDA, Erweiterungsvorrichtungen, Tonvorrichtungen, digitale Videokameras, Mobiltelefone, Drucker, Scanner, Fernsehgeräte, Videorecorder, Telephone, Anzeigevorrichtungen, Projektoren, PCs oder elektronische Notizbücher).
  • Die Ausführungsbeispiele der vorliegenden Erfindung beschreiben den Fall, bei dem die vorliegende Erfindung auf die Datenübertragung in Übereinstimmung mit den Normen IEEE 1394, SBP-2 und ATA/ATAPI angewandt wird. Aber die vorliegende Erfindung kann auch auf Datenübertragungen entsprechend Normen angewandt werden, die auf Ideen ähnlich denen der IEEE 1394 (P1394a), SBP-2 (SBP) und ATA/ATAPI oder auf aus den Normen IEEE 1394, SBP-2 und ATA/ATAPI entwickelten Normen beruhen.

Claims (15)

  1. Datenübertragungssteuersystem zur Datenübertragung über einen Bus, aufweisend: einen Befehlsverarbeitungsteil (82), der geeignet ist, ein über einen ersten Bus (BUS1) übertragenes Befehlspaket zu empfangen, einen von dem Befehlspaket angezeigten Befehl an eine mit einem zweiten Bus (BUS2) verbundene Vorrichtung (100) auszugeben, und den Beginn einer Direktspeicherzugriff-(DMA)-Übertragung über den zweiten Bus (BUS2) anzuordnen; und einen Befehlsabbruchteil (86), der geeignet ist, die DMA-Übertragung mittels Scheindatenübertragungen zu oder von der mit dem zweiten Bus (BUS2) verbundenen Vorrichtung (100) durchzuführen, wenn eine Busrücksetzung auftritt, auf die Vollendung der DMA-Übertragung mittels der Scheindatenübertragungen zu warten, und den an die Vorrichtung (100) ausgegebenen Befehl aufgrund des Befehlspakets nach Vollendung der DMA-Übertragung abzubrechen.
  2. System nach Anspruch 1, ferner aufweisend: einen Befehlsvergleichsteil (84), der geeignet ist, den Inhalt eines ersten Befehlspakets, welches vor einer Busrücksetzung über den ersten Bus (BUS1) übertragen wurde, mit dem Inhalt eines zweiten Befehlspakets zu vergleichen, welches nach der Busrücksetzung über den ersten Bus (BUS1) übertragen wurde, wenn die Busrücksetzung, welche Knotentopologieinformation löscht, während der Verarbeitung des ersten Befehlspakets aufgetreten ist, wobei der Befehlsabbruchteil (86) geeignet ist, einen Befehl, der aufgrund des ersten Befehlspakets an die mit dem zweiten Bus (BUS2) verbundene Vorrichtung (100) ausgegeben wurde, nach Vollendung einer DMA-Übertragung, die aufgrund des ersten Befehlspaketes begonnen wurde, abzubrechen, wenn sich herausstellt, daß der Inhalt des ersten Befehlspakets sich von dem Inhalt des zweiten Befehlspakets unterscheidet.
  3. System nach Anspruch 1 oder 2, bei dem beim Auftreten einer Knotentopologieinformation löschenden Busrücksetzung während der Verarbeitung eines ersten Befehlspakets für den Fall, daß ein Befehl des ersten Befehlspakets an die mit dem zweiten Bus (BUS2) verbundene Vorrichtung (100) ausgegeben wurde, der Befehl des ersten Befehlspakets abgebrochen wird, und für den Fall, daß der Befehl des ersten Befehlspakets nicht an die mit dem zweiten Bus (BUS2) verbundene Vorrichtung (100) ausgegeben wurde, die Verarbeitung eines zweiten Befehlspakets beginnt, ohne daß der Befehl des ersten Befehlspakets abgebrochen wird.
  4. System nach einem der Ansprüche 1 bis 3, bei dem der Befehlsabbruchteil (86) geeignet ist, Scheindatenübertragungen zu und von der mit dem zweiten Bus (BUS2) verbundenen Vorrichtung (100) bis zur Vollendung der DMA-Übertragung zu steuern.
  5. System nach Anspruch 4, bei dem der Befehlsabbruchteil (86) geeignet ist, bei der Feststellung, ob ein Befehl abgebrochen werden soll oder nicht, zu entscheiden, den Befehl abzubrechen, wenn, während diese Feststellung getroffen wird, keine DMA-Übertragung durchgeführt wird.
  6. System nach Anspruch 4 oder 5, ferner aufweisend: einen Zeigerverwaltungsteil (39), der geeignet ist, Zeiger für einen Paketpuffer, bei dem es sich um einen Ringpuffer handelt, zu verwalten, und der übertragene Daten zeitweilig speichert, wobei der Zeigerverwaltungsteil (39) immer dann einen ersten Zeiger aktualisiert, wenn vom zweiten Bus (BUS2) übertragene Daten in den Paketpuffer geschrieben werden, und auch einen zweiten Zeiger immer dann aktualisiert, wenn an den ersten Bus (BUS1) zu übertragende Daten aus dem Paketpuffer gelesen werden, wobei der Befehlsabbruchteil (86) geeignet ist, eine Scheindatenübertragung zu steuern, indem er eine Scheinaktualisierung am zweiten Zeiger durchführt, so daß der erste Zeiger nicht dem zweiten Zeiger vorauseilt.
  7. System nach einem der Ansprüche 4 bis 6, ferner aufweisend: einen Zeigerverwaltungsteil (39), der geeignet ist, Zeiger für einen Paketpuffer zu verwalten, bei dem es sich um einen Ringpuffer handelt, und der übertragene Daten zeitweilig speichert, wobei der Zeigerverwaltungsteil (39) immer dann einen dritten Zeiger aktualisiert, wenn zum zweiten Bus (BUS2) zu übertragende Daten aus dem Paketpuffer gelesen werden, und auch einen vierten Zeiger immer dann aktualisiert, wenn vom ersten Bus (BUS1) übertragene Daten in den Paketpuffer geschrieben werden, wobei der Befehlsabbruchteil (86) geeignet ist, eine Scheindatenübertragung zu steuern, indem er eine Scheinaktualisierung am vierten Zeiger durchführt, so daß der dritte Zeiger nicht dem vierten Zeiger vorauseilt.
  8. System nach einem der Ansprüche 1 bis 7, bei dem der erste Bus (BUS1) Daten überträgt, die der Norm IEEE 1394 entsprechen, und der zweite Bus (BUS2) Daten überträgt, die der Norm "Advanced Technology Attachment/Advanced Technology Attachment Packet Interface (ATA/ATAPI)" entsprechen.
  9. Elektronisches Werkzeug, aufweisend: das Datenübertragungssteuersystem nach einem der Ansprüche 1 bis 8 und die mit dem zweiten Bus (BUS2) verbundene Vorrichtung (100).
  10. Programm, welches ein Datenübertragungssteuersystem veranlaßt, wie folgt zu wirken: als Befehlsverarbeitungsteil (82), der ein über einen ersten Bus (BUS1) übertragenes Befehlspaket empfängt, einen vom Befehlspaket angezeigten Befehl an eine mit einem zweiten Bus (BUS2) verbundene Vorrichtung (100) ausgibt, und den Beginn einer Direktspeicherzugriff-DMA-Übertragung durch den zweiten Bus (BUS2) anordnet; und als Befehlsabbruchteil (86), der die DMA-Übertragung mittels Scheindatenübertragungen zu und von der mit dem zweiten Bus (BUS2) verbundenen Vorrichtung (100) durchführt, wenn eine Busrücksetzung geschieht, auf die Vollendung der DMA-Übertragung mittels Scheindatenübertra gungen wartet und den an die Vorrichtung (100) aufgrund des Befehlspakets ausgegebenen Befehl nach Vollendung der DMA-Übertragung abbricht.
  11. Programm nach Anspruch 10, welches das Datenübertragungssteuersystem veranlaßt, ferner zu wirken als Befehlsvergleichsteil (84), der Inhalte eines ersten Befehlspakets, welches vor einer Busrücksetzung über den ersten Bus (BUS1) übertragen wurde, mit Inhalten eines zweiten Befehlspakets vergleicht, wenn die Knotentopologieinformation löschende Busrücksetzung während der Verarbeitung des ersten Befehlspakets aufgetreten ist, wobei der Befehlsabbruchteil (86) einen Befehl, der aufgrund des ersten Befehlspakets an die mit dem zweiten Bus (BUS2) verbundene Vorrichtung (100) ausgegeben wurde, nach Vollendung einer DMA-Übertragung, die aufgrund des ersten Befehlspakets begonnen wurde, abbricht, wenn festgestellt wird, daß sich der Inhalt des ersten Befehlspakets vom Inhalt des zweiten Befehlspakets unterscheidet.
  12. Programm nach Anspruch 10 oder 11, bei dem der Befehlsabbruchteil (86) Scheindatenübertragungen zu oder von dem Datenübertragungssteuersystem und der mit dem zweiten Bus (BUS2) verbundenen Vorrichtung (100) bis zur Vollendung der DMA-Übertragung steuert.
  13. Datenübertragungssteuerverfahren zur Datenübertragung über einen Bus, aufweisend: Ausgeben eines Befehls, der von einem über einen ersten Bus (BUS1) übertragenen Befehlspaket angezeigt wird, an eine mit einem zweiten Bus (BUS2) verbundene Vorrichtung (100) und Anordnen des Beginns einer Direktspeicherzugriff-(DMA)-Übertragung über den zweiten Bus (BUS2); und Abbrechen des Befehls, der aufgrund des Befehlspakets an die mit dem zweiten Bus (BUS2) verbundene Vorrichtung (100) ausgegeben wurde, nach der Vollendung der DMA-Übertragung, die aufgrund des Befehlspakets begonnen wurde; Durchführen der DMA-Übertragung mittels Scheindatenübertragungen zu und von der mit dem zweiten Bus (BUS2) verbundenen Vorrichtung (100), wenn eine Busrücksetzung auftritt, Warten auf die Vollendung der DMA-Übertragung mit Scheindatenübertragungen, und Abbrechen des an die Vorrichtung (100) aufgrund des Befehlspakets ausgegebenen Befehls nach Vollendung der DMA-Übertragung.
  14. Datenübertragungssteuerverfahren nach Anspruch 13, ferner aufweisend: Vergleichen von Inhalten eines ersten Befehlspakets, welches vor einer Busrücksetzung über den ersten Bus (BUS1) übertragen wurde, mit Inhalten eines zweiten Befehlspakets, welches nach der Busrücksetzung über den ersten Bus (BUS1) übertragen wurde, wenn die Knotentopologieinformation löschende Busrücksetzung während der Verarbeitung des ersten Befehlspakets auftrat; und Abbrechen eines Befehls, der aufgrund des ersten Befehlspakets an die mit dem zweiten Bus (BUS2) verbundene Vorrichtung (100) ausgegeben wurde, nach Vollendung einer DMA-Übertragung, die aufgrund des ersten Befehlspakets begonnen wurde, wenn festgestellt wird, daß der Inhalt des ersten Befehlspakets sich vom Inhalt des zweiten Befehlspakets unterscheidet.
  15. Datenübertragungssteuerverfahren nach Anspruch 13 oder 14, ferner aufweisend: Steuern von Scheindatenübertragungen zu oder von der mit dem zweiten Bus (BUS2) verbundenen Vorrichtung (100) bis zur Vollendung der DMA-Übertragung.
DE60303162T 2002-08-05 2003-08-04 Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren Expired - Lifetime DE60303162T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002227303A JP2004070570A (ja) 2002-08-05 2002-08-05 データ転送制御システム、電子機器、プログラム及びデータ転送制御方法
JP2002227303 2002-08-05

Publications (2)

Publication Number Publication Date
DE60303162D1 DE60303162D1 (de) 2006-04-06
DE60303162T2 true DE60303162T2 (de) 2006-08-10

Family

ID=30768018

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60303162T Expired - Lifetime DE60303162T2 (de) 2002-08-05 2003-08-04 Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren

Country Status (6)

Country Link
US (1) US7165124B2 (de)
EP (1) EP1389761B1 (de)
JP (1) JP2004070570A (de)
CN (1) CN1275164C (de)
AT (1) ATE315807T1 (de)
DE (1) DE60303162T2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004070571A (ja) 2002-08-05 2004-03-04 Seiko Epson Corp データ転送制御システム、電子機器、プログラム及びデータ転送制御方法
JP3714420B2 (ja) * 2002-08-13 2005-11-09 セイコーエプソン株式会社 データ転送制御装置、電子機器、プログラム及び電子機器の製造方法
US7376943B2 (en) * 2003-12-18 2008-05-20 Lsi Corporation Safe method for upgrading firmware of optical disk product
US20060129714A1 (en) * 2004-12-10 2006-06-15 Fujitsu Limited Method and apparatus for transferring data
JP4451837B2 (ja) * 2004-12-10 2010-04-14 富士通株式会社 データ転送装置およびデータ転送方法
JP4207912B2 (ja) * 2005-03-24 2009-01-14 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP4581815B2 (ja) 2005-04-26 2010-11-17 セイコーエプソン株式会社 印刷制御装置及び印刷システム
US8856390B1 (en) 2008-03-28 2014-10-07 Western Digital Technologies, Inc. Using device control field to implement non-disruptive notification of an ATA device
US7827320B1 (en) 2008-03-28 2010-11-02 Western Digital Technologies, Inc. Serial ATA device implementing intra-command processing by detecting XRDY primitive while in the XRDY state
JP4706720B2 (ja) * 2008-05-15 2011-06-22 富士ゼロックス株式会社 Dma制御システム、印刷装置、および転送指示プログラム
CN101419536B (zh) * 2008-12-02 2011-01-12 山东省计算中心 一种计算机内存数据获取方法与系统
DE102010062567A1 (de) * 2010-12-07 2012-06-14 Robert Bosch Gmbh Verfahren, Sensormodul und System zur Datenübertragung
US9632711B1 (en) 2014-04-07 2017-04-25 Western Digital Technologies, Inc. Processing flush requests by utilizing storage system write notifications
US9645752B1 (en) 2014-04-07 2017-05-09 Western Digital Technologies, Inc. Identification of data committed to non-volatile memory by use of notification commands
JP2023139529A (ja) * 2022-03-22 2023-10-04 株式会社東芝 ディスク装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US42141A (en) * 1864-03-29 Feancis ho yet
GB2002936B (en) 1977-08-04 1982-04-28 Honeywell Inf Systems Data transfer control systems
JPH01106254A (ja) 1987-10-20 1989-04-24 Yokogawa Electric Corp Scsiホスト・アダプタ回路
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
JPH10143329A (ja) 1996-11-06 1998-05-29 Nec Ibaraki Ltd 磁気ディスク制御装置
US5974483A (en) * 1997-05-21 1999-10-26 Microsoft Corporation Multiple transparent access to in put peripherals
US6636922B1 (en) * 1999-03-17 2003-10-21 Adaptec, Inc. Methods and apparatus for implementing a host side advanced serial protocol
JP3598923B2 (ja) * 1999-12-20 2004-12-08 セイコーエプソン株式会社 データ転送制御装置、情報記憶媒体及び電子機器
JP2002207713A (ja) 2001-01-11 2002-07-26 Matsushita Electric Ind Co Ltd Cpu間データ通信方法および装置
JP4098987B2 (ja) * 2002-01-31 2008-06-11 富士通株式会社 インターフェース変換システム及びデータ転送方法

Also Published As

Publication number Publication date
EP1389761A3 (de) 2004-06-09
US20040167995A1 (en) 2004-08-26
CN1275164C (zh) 2006-09-13
ATE315807T1 (de) 2006-02-15
EP1389761B1 (de) 2006-01-11
JP2004070570A (ja) 2004-03-04
DE60303162D1 (de) 2006-04-06
US7165124B2 (en) 2007-01-16
CN1485750A (zh) 2004-03-31
EP1389761A2 (de) 2004-02-18

Similar Documents

Publication Publication Date Title
DE60309391T2 (de) Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren
DE60303162T2 (de) Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren
DE60128396T2 (de) Computer-peripheriegerät, das betreibbar bleibt, wenn die operationen des zentralprozessors suspendiert werden
DE69433377T2 (de) Leistungsverwaltungssystem fuer rechnervorrichtungszwischenverbindungsbus und verfahren hierfür
DE112010002778B4 (de) Rauschunterdrückung zur Begrenzung von falschem Wecken
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE19962768B4 (de) Verfahren zum Übertragen von Daten über einen Datenbus mit minimierter digitaler Intersymbolstörung
DE69836426T2 (de) Steuergerät für einen universellen seriellen Bus
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE4003759C2 (de) Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen
DE69923802T2 (de) Konfiguration eines Satzes von Bänden mit einer einzigen Betriebsansicht
DE19900331A9 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE19900369A9 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE4142756A1 (de) Datenweg-einrichtung zur kopplung zweier busse
DE19900290A9 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE19900331A1 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE19900369A1 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE19900245A1 (de) Vorrichtung und Verfahren zum Senden und Empfangen von USB-Isochrondaten
DE102013110085A1 (de) Host zum Steuern einer nicht-flüchtigen Speicherkarte, System mit demselben sowie Verfahren zum Betreiben des Hosts und des Systems
DE10234991A1 (de) Hostcontrollerdiagnose für einen seriellen Bus
DE112012001526T5 (de) Zumindest partielles Erleichtern des Zugriffs auf mindestens eine Controller-Befehlsschnittstelle durch Schaltungen
DE10234990B4 (de) Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache
DE10234992A1 (de) Retry-Mechanismus für blockierende Schnittstellen
DE69935940T2 (de) Zielknoten, Datenkommunikationssystem, Kontrollverfahren eines Zielknotens und Verfahren zum Betreiben eines Datenkommunikationssystems
DE19882975B4 (de) Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus

Legal Events

Date Code Title Description
8364 No opposition during term of opposition