-
HINTERGRUND
DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft ein Datenübertragungssteuersystem, ein
elektronisches Instrument, ein Programm und ein Datenübertragungssteuerverfahren.
-
Ein
als IEEE1394 bezeichneter Schnittstellenstandard ist für Personal
Computer (kann im Folgenden "PC" bezeichnet werden)
weit verbreitet im Einsatz. Ein Protokoll mit der Bezeichnung Serial
Bus Protocol-2 (SBP-2) ist als ein Protokoll höherer Schicht bekannt, das
einen Teil einer Funktion einer Transaktionsschicht von IEEE1394
enthält.
Im SBP-2 (SBP im weit gefassten Sinn) wird ein Befehlssatz ähnlich dem
von SCST (MMC-2) verwendet.
-
Ein
Schnittstellenstandard mit der Bezeichnung ATA (IDE)/ATAPI ist für Speichergeräte wie CD-Laufwerke, DVD-Laufwerke
und Festplattenlaufwerke in weitem Umfang in Einsatz.
-
Deshalb
wird ein Datenübertragungssteuersystem
mit einer Busbrückenfunktion
zwischen IEEE1394 und ATA/ATAPI benötigt, um ein Speichergerät mit einer
ATA/ATAPI-Schnittstelle mit einem PC mit einer IEEE1394-Schnittstelle
zu verbinden.
-
Dieser
Typ Datenübertragungssteuersystem gibt
einen SCSI-(MMC-2)-Befehl aus, der mittels IEEE1394 SBP-2 als ein
ATA/ATAPI-Befehl an ein Speichergerät übertragen wird. Das Datenübertragungssteuersystem
decodiert den SCSI-Befehl, analysiert den Inhalt des SCSI-Befehls
und startet eine DMA-Übertragung
zwischen dem Datenübertragungssteuersystem
und dem Speichergerät.
-
Da
jedoch verschiedene Befehlstypen unter Verwendung von SBP-2 übertragen
werden, erhöht die
Decodierverarbeitung (Analyse) solcher Befehle die Verarbeitungslast
und die Verarbeitungszeit.
-
Die
US 6,052,745 beschreibt
ein Verfahren und ein System für
Datenbündel
mit fester Länge
auf einem Bus innerhalb eines Datenverarbeitungssystems, die ein
Datenbündelübertragungsprotokoll
bereitstellen, das die Bereitstellung der Längeninformation eines Datenbündels fester
Länge über ein
Signal von mindestens einem Master-Gerät zu mindestens einem Slave-Gerät enthält, wenn
das mindestens eine Master-Gerät
das Datenbündel
fester Länge
anfordert. Das Verfahren und das System enthalten außerdem das
Senden eines Signals zum Beenden eines Datenbündels von dem mindestens einem
Slave-Gerät
vor einem letzten Zyklus im Datenbündel mit fester Länge und
das Senden eines Signals 'Datenbündel' abgeschlossen während des
letzten Zyklus im Datenbündel
mit fester Länge
für ein
Schreibdatenbündel
oder einen Zyklus vor dem letzten Zyklus im Datenbündel mit
fester Länge
für ein
Lesedatenbündel
auf Basis des Wertes des Signals. Wahlweise können Datenbündelübertragungen offen sein, d.
h. die maximale Anzahl der Datenübertragungen ist
zum Zeitpunkt der Zugriffseinleitung nicht bekannt, und die Übertragung
wird entweder vom Master oder vom Slave beendet.
-
KURZE ZUSAMMENFASSUNG
DER ERFINDUNG
-
Zur
Lösung
des obigen Problems stellt die vorliegende Erfindung ein Datenübertragungssteuersystem
gemäß Anspruch
1 bereit.
-
Ein
Aspekt der vorliegenden Erfindung betrifft ein Datenübertragungssteuersystem
zum Übertragen
von Daten über
einen Bus, aufweisend:
einen Befehlsverarbeitungsabschnitt,
der ein Befehlspaket empfängt,
das über
einen ersten Bus übertragen
wird und einen im Befehlspaket enthaltenen Befehl an ein Gerät ausgibt,
das mit einem zweiten Bus verbunden ist; und einen Direct Memory
Access (direkter Speicherzugriff) (DMA)-Übertragungsanweisungsabschnitt,
der eine feste DMA-Datenlänge
ungeachtet des Typs des ausgegebenen Befehls einstellt und den Start
der DMA-Übertragung
zum und vom Gerät,
das mit dem zweiten Bus verbunden ist, anweist.
-
Gemäß diesem
Datenübertragungssteuersystem
wird ein Befehl, der in dem über
den ersten Bus übertragenen
Befehlspaket enthalten ist, an ein Gerät ausgegeben, das mit dem zweiten
Bus verbunden ist. Die feste DMA-Datenlänge ist ungeachtet des Typs
des ausgegebenen Befehls eingestellt, und die DMA-Übertragung
wird dann gestartet. Das Datenübertragungssteuersystem
braucht deshalb keine Verarbeitung zum Erfassen der dem Befehlstyp
entsprechenden DMA-Datenlänge auszuführen, wodurch
die Verarbeitungslast verringert werden kann.
-
Bei
diesem Datenübertragungssteuersystem kann
der DMA-Übertragungsanweisungsabschnitt die
gestartete DMA-Übertragung
abbrechen, wenn das mit dem zweiten Bus verbundene Gerät, das den ausgegebenen
Befehl empfangen hat, über
die Beendigung der Befehlsverarbeitung informiert.
-
Dies
gestattet es, die DMA-Übertragung,
die nach Einstellen einer ausreichend langen DMA-Datenlänge gestartet worden ist, unter
der Bedingung abzubrechen, dass das Datenübertragungssteuersystem eine
Meldung bezüglich
der Beendigung der Befehlsverarbeitung empfängt, wodurch die DMA-Übertragung
einwandfrei beendet werden kann.
-
Bei
diesem Datenübertragungssteuersystem kann
der DMA-Übertragungsanweisungsabschnitt den
Start der DMA-Übertragung
anweisen, wenn das mit dem zweiten Bus verbundene Gerät, das den ausgegebenen
Befehl empfangen hat, den Start der DMA-Übertragung anfordert.
-
Bei
diesem Datenübertragungssteuersystem kann
das mit dem zweiten Bus verbundene Gerät ein Gerät sein, das über den
zweiten Bus übertragene Daten
in einen Speicher schreibt, oder das über den zweiten Bus zu übertragende
Daten aus dem Speicher ausliest, und
der DMA-Übertragungsanweisungsabschnitt
kann einen Wert als die feste DMA-Datenlänge einstellen, der größer ist
als die Speicherkapazität
des Speichers.
-
Bei
diesem Datenübertragungssteuersystem kann
der DMA-Übertragungsanweisungsabschnitt
einen Wert einstellen, der größer ist
als die Datenlänge,
die von einem Befehl vorgegeben werden kann, der im Befehlspaket
als die feste DMA-Datenlänge enthalten
ist.
-
Bei
diesem Datenübertragungssteuersystem kann
der Befehlsverarbeitungsabschnitt einen im Befehlspaket enthaltenen
Befehl an das Gerät
ausgeben, das mit dem zweiten Bus verbunden ist, ohne den Befehl
zu decodieren.
-
Dadurch
kann die Decodierverarbeitung (Decodierverarbeitung zur Berechnung
der Größe der DMA-Datenlänge) des
Befehls entfallen, wodurch die Verarbeitungslast verringert werden
kann.
-
Bei
diesem Datenübertragungssteuersystem kann
der erste Bus ein Bus sein, über
den Daten gemäß einem
ersten Schnittstellenstandard übertragen werden,
und der zweite Bus kann ein Bus sein, über den Daten gemäß einem
zweiten Schnittstellenstandard übertragen
werden, und das Befehlspaket kann ein Paket sein, das von einem
Protokoll höherer Schicht
des ersten Schnittstellenstandards definiert wird.
-
Bei
diesem Datenübertragungssteuersystem kann
der erste Bus ein Bus sein, über
den Daten gemäß dem IEEE1394-Standard übertragen
werden, und der zweite Bus kann ein Bus sein, über den Daten gemäß dem AT
Attachment (ATA)/ATA Packet Interface (ATAPI)-Standard übertragen
werden, und
das Befehlspaket kann ein ORB-Paket sein, das vom Serial
Bus Protocol-2 (SBP-2) definiert wird.
-
Ein
anderer Aspekt der vorliegenden Erfindung betrifft ein elektronisches
Instrument, das eines der obigen Datenübertragungssteuersysteme und das
mit dem zweiten Bus verbundene Gerät aufweist.
-
Ein
weiterer Aspekt der vorliegenden Erfindung betrifft ein Programm,
das bewirkt, dass ein Datenübertragungssteuersystem
arbeitet als:
ein Befehlsverarbeitungsabschnitt, der ein über einen
ersten Bus übertragenes
Befehlspaket empfängt und
einen im Befehlspaket enthaltenen Befehl an ein mit einem zweiten
Bus verbundenes Gerät
ausgibt; und
ein Direct Memory Access (DMA)-Übertragungsanweisungsabschnitt,
der eine feste DMA-Datenlänge ungeachtet
des ausgegebenen Befehls einstellt und den Start der DMA-Übertragung
zu dem oder von dem mit dem zweiten Bus verbundenen Gerät anweist.
-
Ein
weiterer Aspekt der vorliegenden Erfindung betrifft ein Datenübertragungssteuerverfahren zum Übertragen
von Daten über
einen Bus, wobei das Verfahren aufweist:
Empfangen eines über einen
ersten Bus übertragenes
Befehlspaket und Ausgeben eines im Befehlspaket enthaltenen Befehls
an ein mit einem zweiten Bus verbundenes Gerät; und
Einstellen einer
festen Direct Memory Access (DMA)-Datenlänge ungeachtet des Typs des
ausgegebenen Befehls und Anweisen des Starts der DMA-Übertragung
zu dem oder von dem mit dem zweiten Bus verbundenen Gerät.
-
KURZBESCHREIBUNG
DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNG
-
1 ist
eine Ansicht zur Veranschaulichung einer Schichtstruktur des IEEE1394
und des SBP-2.
-
2 veranschaulicht
eine Übersicht über die
Verarbeitung des SBP-2.
-
3 veranschaulicht
die Befehlsverarbeitung im SBP-2 für den Fall der Datenübertragung
von einem Initiator zu einem Ziel.
-
4 veranschaulicht
die Befehlsverarbeitung im SBP-2 für den Fall der Datenübertragung
von einem Ziel zu einem Initiator.
-
5A bis 5C sind
beispielhafte Ansichten einer Seitentabelle.
-
6A und 6B sind
beispielhafte Ansichten einer Busbrückenfunktion eines Datenübertragungssteuersystems
und der Beziehungen zwischen verschiedenen Befehlen.
-
7 ist
eine Ansicht eines Konfigurationsbeispiels eines Datenübertragungssteuersystems und
eines elektronischen Instruments gemäß einem Aspekt der vorliegenden
Erfindung.
-
8 veranschaulicht
eine Übersicht über den
Fluss einer Paketbefehlsverarbeitung gemäß ATA Packet Interface (ATAPI).
-
9 ist
ein Flussdiagramm eines detaillierten Verarbeitungsbeispiels gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
10 ist
ein Flussdiagramm eines detaillierten Verarbeitungsbeispiels gemäß einer
Ausführungsform
der vorliegenden Erfindung
-
11 ist
eine veranschaulichende Ansicht der Datenübertragungssteuerung gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
12 ist
ein Flussdiagramm eines Verarbeitungsbeispiels gemäß einem
Vergleichsbeispiel.
-
13 ist
eine veranschaulichende Ansicht der Datenübertragungssteuerung gemäß einem
Vergleichsbeispiel.
-
14 ist
ein Flussdiagramm eines Verarbeitungsbeispiels gemäß einem
anderen Vergleichsbeispiel.
-
15 ist
eine Ansicht eines Konfigurationsbeispiels einer AT Attachment (ATA)/ATAPI-Schnittstellenschaltung.
-
16A und 16B sind
Ansichten, die Beispiele von Signalwellenformen während des PIO-Lesens
und PIO-Schreibens darstellen.
-
17A und 17B sind
Ansichten, die Beispiele von Signalwellenformen während des DMA-Lesens
und DMA-Schreibens darstellen.
-
18A und 18B sind
Ansichten, die Beispiele von Signalwellenformen während des
UltraDMA-Lesens
und UltraDMA-Schreibens darstellen.
-
DETAILLIERTE
BESCHREIBUNG DER AUSFÜHRUNGSFORM
-
Nachstehend
werden Ausführungsformen der
vorliegenden Erfindung beschrieben.
-
Es
ist zu beachten, dass die nachstehend beschriebenen Ausführungsformen
den Gültigkeitsbereich
der Erfindung, wie er durch die hier dargelegten Ansprüche definiert
ist, nicht einschränken.
Analog sollte die Gesamtkonfiguration der nachstehenden Ausführungsformen
nicht dahingehend interpretiert werden, dass sie den von der vorliegenden
Erfindung definierten Gegenstand einschränkt.
-
IEEE1394 und SBP-2
-
1.1 Schichtaufbau
-
Ein
Protokoll mit der Bezeichnung Serial Bus Protocol-2 (SBP-2) ist
als ein Protokoll höherer Schicht
vorgeschlagen worden, das einen Teil einer Funktion einer Transaktionsschicht
des IEEE1394 enthält.
Das SBP-2 (SBP im weit gefassten Sinn) ist vorgeschlagen worden,
um es zu ermöglichen,
dass ein Befehlssatz von SCSI (MMC-2) im Protokoll des IEEE1394
verwendet werden kann. Das SBP-2 ermöglicht, dass der Befehlssatz,
der in einem dem SCSI-Standard entsprechenden elektronischen Instrument
verwendet worden ist, in einem dem IEEE1394-Standard entsprechenden
elektronischen Instrument verwendet werden kann, indem dem Befehlssatz
nur minimale Änderungen
hinzugefügt
werden. Deshalb können
Auslegung und Entwicklung eines elektronischen Instruments vereinfacht
werden.
-
1 ist
eine schematische Darstellung einer Schichtstruktur (Protokollstapel)
des IEEE1394 und des SBP-2.
-
Die
Protokolle des IEEE1394 (IEEE1394-1995, P1394a, P1394b usw.) enthalten eine
Transaktionsschicht, eine Link-Schicht und eine physikalische Schicht.
-
Die
Transaktionsschicht stellt eine obere Schicht mit einer Schnittstelle
(Dienst) in einer Transaktionseinheit bereit und führt Transaktionen,
wie etwa eine Lesetransaktion, eine Schreibtransaktion und eine
Synchronisiertransaktion über
eine Schnittstelle aus, die von einer Link-Schicht in einer unteren Schicht
bereitgestellt ist.
-
Bei
der Lesetransaktion werden Daten von einem Responderknoten an einen
Anfordererknoten übertragen.
Bei der Schreibaktion werden Daten vom Anfordererknoten an den Responderknoten übertragen.
Bei der Synchronisiertransaktion werden Daten vom Anfordererknoten
an den Responderknoten übertragen,
und der Responderknoten verarbeitet die Daten und schickt die verarbeiteten
Daten an den Anfordererknoten zurück.
-
Die
Link-Schicht stellt Adressierung, Datenprüfung, Datenblockbildung für Paketübertragung und
-empfang, Zyklussteuerung für
isochrone Übertragung
und dgl. bereit.
-
Die
physikalische Schicht übersetzt
logische Symbole, die in der Link-Schicht verwendet werden, in elektrische
Signale, arbitriert für
den Bus und stellt eine physikalische Busschnittstelle bereit.
-
Wie
aus 1 ersichtlich ist, stellt eine SBP-2-Schicht ein
Protokoll höherer
Schicht bereit, das einen Teil der Funktion der Transaktionsschicht des
IEEE1394 (im weitgefassten Sinn erster Schnittstellenstandard) enthält.
-
1.2 Verarbeitung des SBP-2
-
2 zeigt
ein Flussdiagramm der gesamten Verarbeitung des SBP-2 (erstes Protokoll
höherer Schicht
des ersten Schnittstellenstandards im weitgefassten Sinn).
-
In
SBP-2 erfolgt eine Leseverarbeitung eines Konfigurations-ROM, um
die angeschlossene Ausrüstung
zu bestätigen,
wie in 2 (Schritt T1) dargestellt ist.
-
Die
Anmeldeverarbeitung, mit der es einem Initiator (z. B. Personal
Computer) gestattet wird, ein Zugriffsrecht auf ein Ziel (z. B.
Speichergerät)
zu beschaffen (Genehmigung zur Anforderungsveranlassung; Benutzungsrecht
für den
Bus) erfolgt in (Schritt T2). Genauer gesagt, erfolgt die Anmeldeverarbeitung
durch die Verwendung eines Anmeldeoperations-Anforderungsblocks
(operation request block; ORB), der vom Initiator erzeugt wird.
-
Ein
Holagent wird initialisiert (Schritt T3). Die Befehlsverarbeitung
erfolgt unter Verwendung eines Befehlsblock-ORB (normaler Befehls-ORB)
(Schritt T4), und die Abmeldeverarbeitung erfolgt unter Verwendung
eines Abmelde-ORB (Schritt T5).
-
Bei
der Befehlsverarbeitung in Schritt T4 überträgt der Initiator ein Schreibanforderungspaket (gibt
eine Schreibanforderungstransaktion aus), um ein Türklingelregister
(doorbell register) des Ziels zu rufen, wie mit A1 in 3 angezeigt
ist. Das Ziel überträgt ein Leseanforderungspaket,
und der Initiator schickt ein Leseantwortpaket entsprechend dem Leseanforderungspaket
zurück,
wie mit A2 angegeben ist. Dadurch kann der vom Initiator erzeugte
ORB (Befehlsblock-ORB) in einen Datenpuffer (Paketpuffer) des Ziels
geholt werden. Das Ziel analysiert den Befehl, der in dem in den
Datenpuffer geholten 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 angezeigt ist. Damit können
im Datenpuffer des Initiators gespeicherte Daten an das Ziel übertragen
werden. In dem Fall, in dem das Ziel ein Speichergerät ist, werden
die übertragenen
Daten in das Speichergerät
geschrieben.
-
Wenn
der im ORB enthaltene Befehl ein SCSI-Schreibbefehl ist, überträgt das Ziel
eine Reihe Schreibanforderungspakete an den Initiator, wie mit B1
in 4 angegeben ist. In dem Fall, in dem das Ziel
ein Speichergerät
ist, werden die aus dem Speichergerät ausgelesenen Daten an den
Datenpuffer des Initiators übertragen.
-
Gemäß SBP-2
kann das Ziel Daten übertragen
oder empfangen, indem ein Anforderungspaket (Ausgabe einer Transaktion)
nach Belieben übertragen
wird. Da es also nicht erforderlich ist, dass der Initiator und
das Ziel synchron arbeiten, kann die Effizienz der Datenübertragung
gesteigert werden.
-
Als
ein Protokoll höherer
Schicht des IEEE1394 ist ein AV/C-Befehl, der zum Übertragen von
Bild- und Tondaten
geeignet ist, zusätzlich
zum BSP-2 vorgeschlagen worden, der zum Übertragen von Daten eines Speichergeräts oder
eines Druckers geeignet ist. Als ein Protokoll zum Übertragen
von Internet-Protokoll-(IP)Paketen auf dem IEEE1394-Bus ist auch
ein Protokoll mit der Bezeichnung IPover1394 vorgeschlagen worden.
-
Im
Fall der Übertragung
von Daten zwischen dem Ziel und dem Initiator kann es sein, dass
eine Seitentabelle im Datenpuffer des Initiators (Personal Computer
oder Partnerknoten) vorhanden ist wie in 5A dargestellt
oder dass keine Seitentabelle im Datenpuffer des Initiators vorhanden
ist.
-
In
dem Fall, in dem eine Seitentabelle vorliegt, sind die Adresse der
Seitentabelle und die Anzahl Elemente in dem vom Initiator erzeugten
ORB enthalten wie in 5B dargestellt. Die Adresse
(Lese- oder Schreibadresse) der zu übertragenden Daten wird durch
Verwenden der Seitentabelle indirekt adressiert.
-
In
dem Fall, in dem keine Seitentabelle vorliegt, sind die Adresse
und die Datenlänge
im ORB enthalten, und die zu übertragenden
Daten werden direkt adressiert wie in 5C dargestellt.
-
1.3 Busbrückenfunktion
-
Wie
aus 6A ersichtlich ist, hat ein Datenübertragungssteuersystem 10 bei
der vorliegenden Ausführungsform
eine Busbrückenfunktion
zwischen einem Bus BUS1 (erster Bus), der IEEE1394 (SBP-2) entspricht,
und einem Bus BUS2 (zweiter Bus), der ATA (IDE)/ATAPI entspricht.
ATA (AT Attachment) wird in weitem Umfang als Schnittstellenstandard hauptsächlich für Festplattenlaufwerke
verwendet. ATAPI (ATA Packet Interface) ist ein Schnittstellenstandard,
der es ermöglicht,
ATA für
optische Plattenlaufwerke wie CD-Laufwerke zu verwenden.
-
Das
in 6A dargestellte Datenübertragungssteuersystem 10,
das die Busbrückenfunktion verwirklichen
kann, gibt einen SCSI-(SBP-2)Befehl aus, der in einem ORB (im weitgefassten
Sinn Befehlspaket) enthalten ist, der von einem Personal Computer 2 an
ein Speichergerät 100 (optisches Plattenlaufwerk)
als ein ATAPI-Befehl übertragen wird.
Das Datenübertragungssteuersystem 10 decodiert
den mittels SBP-2 übertragenen
SCSI-Befehl, analysiert den Inhalt des SCSI-Befehls und startet
die DMA-Übertragung
zwischen dem Datenübertragungssteuersystem 10 und
dem Speichergerät 100.
-
Da
jedoch verschiedene Befehlstypen über den SBP-2-Bus übertragen
werden, nehmen die Verarbeitungslast und die Verarbeitungszeit zu,
wenn solche Befehle decodiert und analysiert werden.
-
Wie
aus 6B ersichtlich ist, werden nur Befehle, die SCSI
(Small Computer System Interface) und ATAPI (AT Attachment Packet
Interface) gemeinsam sind, in Betriebssystemen (operating systems;
OS) verwendet, die von Apple Computer, Inc., Microsoft Corporation
und dgl. hergestellt werden, die auf dem Personal Computer 2 laufen.
-
Die
vorliegende Erfindung verwendet ein Datenübertragungssteuersystem mit
einer nachstehend beschriebenen Konfiguration, bei dem die obigen Probleme
berücksichtigt
sind.
-
2. Gesamtkonfiguration
-
7 zeigt
ein Beispiel einer Gesamtkonfiguration eines Datenübertragungssteuersystems
der vorliegenden Ausführungsform
und ein elektronisches Instrument, das das Datenübertragungssteuersystem enthält. Die
folgende Beschreibung basiert auf einem Fall, bei dem ein Ziel,
das eine Datenübertragung
zwischen dem Initiator und dem Ziel ausführt, z. B. ein Speichergerät ist (CD-Laufwerk, DVD-Laufwerk
oder dgl.). Die vorliegende Erfindung ist jedoch nicht darauf beschränkt.
-
Der
Personal Computer (Host-Computer) 2 mit einem Datenpuffer 4 ist
mit einem elektronischen Instrument 8 über den Bus BUS1 (erster Bus)
verbunden, der IEEE1394 entspricht. Das elektronische Instrument 8 enthält das Datenübertragungssteuersystem 10 und
das Speichergerät 100 (im
weitgefassten Sinn Gerät).
-
Das
elektronische Instrument 8 kann eine System-CPU, einen
Systemspeicher (ROM und RAM), einen Betriebsabschnitt, ein Signalverarbeitungsgerät und dgl.
(nicht dargestellt) enthalten.
-
Das
Datenübertragungssteuersystem 10 enthält eine
physikalische Schichtschaltung (PHY) 14, eine Link-Schichtschaltung 20,
eine SBP-2-Schaltung 22, eine Schnittstellenschaltung 30,
eine Paketmanagementschaltung 38 und einen Paketpuffer 40 (Datenpuffer).
Das Datenübertragungssteuersystem 10 enthält eine
CPU 42 und einen Flash-Speicher 44 (EEPROM). Das
Datenübertragungssteuersystem 10 enthält Firmware 50,
von der Verarbeitungsmodule (Programm) im Flash-Speicher 44 gespeichert
sind, und die von der CPU 42 (im weitgefassten Sinn Prozessor)
ausgeführt
wird. Das Datenübertragungssteuersystem 10 der
vorliegenden Ausführungsform
enthält
nicht notwendi gerweise alle in 7 dargestellten
Schaltungs- und Funktionsblöcke.
Einige der Schaltungs- und Funktionsblöcke können entfallen.
-
Die
physikalische Schichtschaltung 14 ist eine Schaltung zur
hardwaremäßigen Verwirklichung des
Protokolls der in 1 dargestellten physikalischen
Schicht. Die physikalische Schichtschaltung 14 hat die
Funktion der Übersetzung
der von der Link-Schichtschaltung 20 verwendeten logischen Symbole
in elektrische Signale.
-
Die
Link-(und Transaktions-)Schichtschaltung 20 ist eine Schaltung
zur hardwaremäßigen Verwirklichung
eines Teils der Protokolle der in 1 dargestellten
Link-Schicht und Transaktionsschicht. Die Link-Schichtschaltung 20 stellt
verschiedene Dienste zur Paketübertragung
zwischen den Knoten bereit.
-
Die
Datenübertragung
gemäß IEEE1394 kann
zwischen dem Datenübertragungssteuersystem 10 und
dem Personal Computer 2 (im weitgefassten Sinn ein elektronisches
Instrument) über
den Bus BUS1 (erster Bus) erfolgen, indem die Funktionen der physikalischen
Schichtschaltung 14 und der Link-Schichtschaltung 20 genutzt
werden.
-
Die
SBP-2-Schaltung 22 (Übertragungsausführungsschaltung)
ist eine Schaltung, die einen Teil des SBP-2-Protokolls und einen
Teil der Transaktionsschicht hardwaremäßig verwirklicht. Die Funktion der
SBP-2-Schaltung 22 ermöglicht
eine Verarbeitung zum Teilen der Übertragungsdaten in eine Reihe von
Paketen und die kontinuierliche Übertragung
der geteilten Reihe von Paketen.
-
Die
Schnittstellenschaltung 30 ist eine Schaltung, die die
Schnittstellenverarbeitung zwischen dem Datenübertragungssteuersystem 10 und
dem Speichergerät 100 ausführt. Eine
Datenübertragung gemäß ATA (AT
Attachment) und ATAPI (ATA Packet Interface) kann zwischen dem Datenübertragungssteuersystem 10 und
dem Speichergerät 100 über den
Bus BUS2 (zweiter Bus) durch die Funktion der Schnittstellenschaltung 30 erfolgen.
-
Das
Datenübertragungssteuersystem 10 kann
mit einer Busbrückenfunktion
zwischen dem IEEE1394 (im weitgefassten Sinn erster Schnittstellenstandard)
und dem ATA (IDE)/ATAPI (im weitgefassten Sinn zweiter Schnittstellenstandard)
durch die Bereitstellung der physikalischen Schichtschaltung 14,
der Link-Schichtschaltung 20 und der Schnittstellenschaltung 30 versehen
werden, wie in 7 dargestellt ist.
-
Eine
DMA-Steuerung 32 in der Schnittstellenschaltung 30 ist
eine Schaltung zur Ausführung
einer Direct Memory Access (direkter Speicherzugriff) (DMA)-Übertragung
zwischen dem Datenübertragungssteuersystem 10 und
dem Speichergerät 100 über den
Bus BUS2.
-
Das
mit dem Bus BUS2 verbundene Speichergerät 100 enthält eine
Schnittstellenschaltung 102 zur Ausführung der Datenübertragung
gemäß ATA (IDE)/ATAPI
und eine Zugriffssteuerschaltung 104, die den Zugriff (Schreiben
oder Lesen) auf einen Speicher 106 wie eine optische Platte
oder Festplatte steuert.
-
Die
Puffermanagementschaltung 38 ist eine Schaltung, die eine
Schnittstelle zwischen dem Paketpuffer 40 und der Link-Schichtschaltung 20 und dgl.
verwaltet. Die Puffermanagementschaltung 38 enthält Register
zur Steuerung der Puffermanagementschaltung 38, eine Arbitrierungsschaltung,
die für
die Busverbindung mit dem Paketpuffer 40 arbitriert, eine
Folgesteuerung, die verschiedene Steuersignale erzeugt und dgl.
-
Die
Puffermanagementschaltung 38 enthält einen Zeigermanagementabschnitt 39.
Der Zeigermanagementabschnitt verwaltet Zeiger des Paketpuffers 40,
indem er ein Ringpufferverfahren anwendet und aktualisiert eine
Mehrzahl Zeiger zum Schreiben und Lesen.
-
Der
Paketpuffer 40 (Paketspeicher oder Datenpuffer) ist ein
Puffer zum vorübergehenden
Speichern von Paketen (übertragene
Daten) und durch Hardware wie einen SRAM, SDRAM oder DRAM gebildet.
Bei der vorliegenden Ausführungsform
arbeitet der Paketpuffer 40 als Paketspeicherabschnitt
mit Direktzugriff. Der Paketpuffer 40 braucht nicht im
Datenübertragungssteuersystem 10 enthalten
zu sein und kann extern bereitgestellt werden.
-
Die
CPU (im weitgefassten Sinn Prozessor) steuert das gesamte Gerät und die
Datenübertragung.
-
Der
Flash-Speicher 44 (EEPROM) ist ein elektrisch löschbarer,
programmierbarer, nicht flüchtiger
Speicher. Die Verarbeitungsmodule (Programm) der Firmware 50 sind
im Flash-Speicher 44 gespeichert.
-
Die
Firmware 50 ist ein Programm, das verschiedene Verarbeitungsmodule
(Verarbeitungsroutinen) enthält
und auf der CPU 42 läuft.
Die Protokolle der Transaktionsschicht und dgl. werden von der Firmware 50 und
der Hardware wie der CPU 42 verwirklicht.
-
Die
Firmware 50 (F/W) enthält
einen Kommunikationsabschnitt 52, einen Managementabschnitt 60,
einen Holabschnitt 70, einen Speicherungsaufgabenabschnitt 80 und
einen Herunterladerabschnitt 90. Die Firmware 50 braucht
nicht unbedingt alle diese Funktionsblöcke (Module) zu enthalten.
Einige der Funktionsblöcke
können
entfallen.
-
Der
Kommunikationsabschnitt 52 ist ein Verarbeitungsmodul,
das als Schnittstelle zwischen der Firmware 50 und der
Hardware, wie etwa der physikalischen Schichtschaltung 14 und
der Link-Schichtschaltung 20 fungiert.
-
Der
Managementabschnitt 60 (Managementagent) ist ein Verarbeitungsmodul,
das Anmelden, neu Verbinden, Abmelden, Rücksetzen (Reset) und dgl. verwaltet.
In dem Fall, in dem der Initiator eine Anmeldung beim Ziel anfordert,
empfängt
der Managementabschnitt 60 die Anmeldungsanforderung.
-
Der
Holabschnitt 70 (Holagent) ist ein Verarbeitungsmodul,
das einen Operationsanforderungsblock (ORB) empfängt, einen Status ausgibt und
den Speicherungsaufgabenabschnitt 80 auffordert, eine Befehlsverarbeitung
auszuführen.
Der Holabschnitt 70 kann auch eine Verknüpfungsliste
eines ORB handhaben, die vom Holabschnitt 70 als Antwort
auf eine Anforderung vom Initiator geholt wird, wodurch er sich
vom Managementabschnitt 60 unterscheidet, der nur eine
einzige Anforderung handhaben kann.
-
Der
Speicherungsaufgabenabschnitt 80 ist ein Verarbeitungsmodul
zur Verarbeitung eines in einem ORB enthaltenen Befehls und zur
Verarbeitung einer DMA-Übertragung.
-
Der
Herunterladerabschnitt 90 ist ein Verarbeitungsmodul zur
Aktualisierung des Verarbeitungsmoduls der Firmware 50,
die im Flash-Speicher 44 gespeichert ist, und dgl.
-
Der
Speicherungsaufgabenabschnitt 80 enthält einen Befehlsverarbeitungsabschnitt 82 und
einen DMA-Übertragungsanweisungsabschnitt 84.
-
Der
Befehlsverarbeitungsabschnitt 82 führt verschiedene Arten der
Verarbeitung eines ORB (im weitgefassten Sinn Befehlspaket oder
Befehlspaket zur Datenübertragungsoperationsanforderung),
der über
den Bus BUS1 (erster Bus gemäß dem ersten Schnittstellenstandard
wie IEEE1394) übertragen wird.
Genauer gesagt, empfängt
der Befehlsverarbeitungsabschnitt 82 einen ORB vom Bus
BUS1 und gibt einen im ORB enthaltenen Befehl (SCSI- oder MMC-2-Befehl)
an das Speichergerät 100 (im
weitgefassten Sinn Gerät)
aus, das mit dem Bus BUS2 (zweiter Bus gemäß dem zweiten Schnittstellenstandard
wie ATA/ATAPI) verbunden ist. In diesem Fall gibt der Befehlsverarbeitungsabschnitt 82 den
vom ORB abgerufenen Befehl (Befehlspaket) an das Speichergerät 100 aus,
ohne den Befehl zu decodieren (Decodierverarbeitung zur Prüfung der
Datenzählung,
Anzahl der Sektoren oder im Befehl angegebenen Parameter), speziell
ohne den Inhalt des Befehls zu analysieren.
-
Der
DMA-Übertragungsanweisungsabschnitt 84 stellt
eine feste (vorgegebene) DMA-Datenlänge ein, weist den Start (Veranlassung)
einer DMA-Übertragung
(Datenübertragung
ohne Beteiligung der CPU) über
den Bus BUS2 an und dgl.
-
Genauer
gesagt, stellt der DMA-Übertragungsanweisungsabschnitt 84 eine
feste DMA-Datenlänge
(DMA-Datengröße) ein,
ungeachtet des Befehls (im ORB enthaltener Befehl), der vom Befehlsverarbeitungsabschnitt 82 ausgegeben
worden ist. Speziell stellt der DMA-Übertragungsanweisungsabschnitt 84 eine
feste DMA-Datenlänge
in einem gegeben Register (Einstellregister für die DMA-Datenlänge) der Schnittstellenschaltung 30 ein,
selbst wenn der Befehl z. B. ein Lesebefehl oder ein Lese-CD-Befehl
ist. Der DMA-Übertragungsanweisungsabschnitt 84 weist
die Schnittstellenschaltung 30 (Speichergerät 100)
und dgl. an, die DMA-Übertragung
für die DMA-Datenlänge zu starten.
Genauer gesagt, weist der DMA-Übertragungsanweisungsabschnitt 84 die Ausgabe
eines Quittierungssignals für
die DMA-Übertragungsanforderung
(DMACK) an als Antwort auf ein DMA-Übertragungsanforderungssignal
(DMARQ) vom Speichergerät 100,
die DMA-Übertragung
zu starten.
-
Der
DMA-Übertragungsanweisungsabschnitt 84 bricht
die gestartete DMA-Übertragung
ab, wenn das mit dem Bus BUS2 verbundene Speichergerät 100 das
Datenübertragungssteuersystem 10 über die
Beendigung der Befehlsverarbeitung informiert, indem ein Signal
INTRQ (Interrupt) oder dgl. verwendet wird. Genauer gesagt, gibt
der DMA-Übertragungsanweisungsabschnitt 84 die Schnittstellenschaltung 30 (DMA-Steuerung 32)
und dgl. aus einem DMA-Übertragungs-
oder Empfangsstatus frei und löscht
einen DMA-Übertragungszähler auf
null (Anfangswert).
-
Als
die feste DMA-Datenlänge
kann ein Wert verwendet werden, der größer ist als die Speicherkapazität (z. B.
670 MByte (CD) oder 4,7 GByte (DVD)) des Speichers 106 (Medium,
in das bzw. aus dem Übertragungsdaten
vom Speichergerät 100 geschrieben
bzw. gelesen werden). Ein Wert, der größer ist als eine Datenlänge, die
mit einem Befehl (SBP-2 oder ATAPI) (maximale Datenlänge, die durch
die Anzahl Bits im Datenlängenfeld
des Pakets angegeben werden kann), kann ebenfalls verwendet werden.
Eine maximale Datenlänge,
die durch Einschränkungen
seitens der Hardware, des Schnittstellenstandards und des Protokolls
bestimmt wird, kann ebenfalls verwendet werden. Die feste DMA-Datenlänge kann
im Register (D-Flipflops oder Speicher) oder dgl. im Voraus eingestellt
werden und braucht nicht bei jedem Start einer DMA-Übertragung
eingestellt zu werden.
-
3. Einzelheiten
der Verarbeitung
-
8 ist
ein Flussdiagramm, das eine Übersicht über eine
ATAPI-Paketbefehlsverarbeitung zeigt.
-
ATAPI
ist ein Schnittstellenstandard zur Steuerung von Multimediageräten wie
CD- und DVD-Laufwerke.
Ein ATAPI-Paketbefehl befindet sich in einer oberen Schicht eines
ATA-Befehls und wird mittels des ATA-Befehls ausgegeben.
-
Bei
ATA wird ein Befehl ausgeführt,
indem Parameter in einem ATA-Register eingestellt werden und der
Befehl in ein Befehlsregister geschrieben wird. Bei ATAPI wird nur
ein Befehl PACKET in das Befehlsregister geschrieben, und ein Gerätesteuerbefehl
wird in der anschließenden
ATAPI-Paketbefehlsübertragung übertragen.
Die Daten werden nach der Paketbefehlsübertragung an ein Datenregister übertragen.
Dadurch kann ATAPI durch Nutzen des ATA-Steuersystems verwirklicht
werden.
-
Das
Datenübertragungssteuersystem 10 der vorliegenden
Erfindung verwirklicht die Datenübertragung über den
Bus BUS2 mittels des ATAPI-Paketbefehls.
-
Die 9 und 10 zeigen
detaillierte Flussdiagramme der Verarbeitung bei der vorliegenden
Ausführungsform.
-
Wenn
das Datenübertragungssteuersystem 10 während der
SBP-2-Verarbeitung einen ORB empfängt (Schritt S1), erfasst das
Datenübertragungssteuersystem 10 eine
SBP-2-Datenlänge
aus der Datengröße des ORB
(oder der Seitentabelle) und stellt eine DMA-Datenlänge z. B.
auf 2 TByte (Terabyte) ein (Schritt S2).
-
Insbesondere
führt das
Datenübertragungssteuersystem 10 keine
Decodierverarbeitung (Erfassen der Datenzählung oder der Anzahl der Sektoren, Analyse
der Parameter und dgl.) des im ORB enthaltenen Befehls (Lesebefehl,
Schreibbefehl, Lese-CD-Befehl oder dgl.) aus, wie mit E1 in 11 angegeben.
Das Datenübertragungssteuersystem 10 stellt
eine feste DMA-Datenlänge
(2 TByte) ein, ungeachtet des Typs des im ORB enthaltenen Befehls.
Das Datenübertragungssteuersystem 10 gibt den
im ORB enthaltenen Befehl über
den Bus BUS2 an das Speichergerät 100 aus,
wie mit E2 in 11 angegeben ist (Schritt S10).
-
10 zeigt
ein Flussdiagramm der Verarbeitung einer Befehlsausgabe in Schritt
S10.
-
Das
Datenübertragungssteuersystem 10 wählt ein
Laufwerk (Master/Slave) (Schritt S21). Das Datenübertragungssteuersystem 10 bestimmt,
ob das Speichergerät 100 beschäftigt ist
oder nicht (Schritt S22). Wenn das Speichergerät 100 nicht beschäftigt ist,
gibt das Datenübertragungssteuersystem 10 einen
Befehl PACKET aus (Schritt S23; siehe 8). Das
Datenübertragungssteuersystem 10 bestimmt
dann, ob das Speichergerät 100 beschäftigt ist
oder nicht, oder ob das Signal DMARQ vom Speichergerät 100 empfangen
worden ist oder nicht (Schritt S24). Wenn das Speichergerät 100 nicht
beschäftigt
ist oder wenn das Signal DMARQ vom Speichergerät empfangen worden ist, bestimmt
das Datenübertragungssteuersystem 10,
ob ein Fehler aufgetreten ist oder nicht (Schritt S25). Wenn ein
Fehler aufgetreten ist, bricht das Datenübertragungssteuersystem 10 den
Befehl ab (Schritt S28) und geht zur Verarbeitung der Statusübertragung
in Schritt S19 in 9 über.
-
Wenn
kein Fehler aufgetreten ist, überträgt das Datenübertragungssteuersystem 10 einen
ATAPI-Paketbefehl
(Schritt S26; siehe 8). Das Datenübertragungssteuersystem 10 bestimmt
dann, ob ein Fehler aufgetreten ist oder nicht (Schritt S27). Wenn
ein Fehler aufgetreten ist, bricht das Datenübertragungssteuersystem 10 den
Befehl ab (Schritt S28) und geht zur Verarbeitung der Statusübertragung
in Schritt S19 in 9 über. Wenn kein Fehler aufgetreten
ist, schließt
das Datenübertragungssteuersystem 10 die
Verarbeitung der Befehlsausgabe normal ab.
-
Nachstehend
wird die in 9 dargestellte Verarbeitung
beschrieben. Nachdem die Verarbeitung der Befehlsausgabe abgeschlossen
worden ist, bestimmt das Datenübertragungssteuersystem 10, ob
die Datenlänge
null ist oder nicht (Schritt S11). Wenn der im ORB enthaltene Befehl
ein Befehl Testeinheit bereit (test unit ready) oder ein Befehl
Einheit Start/Stopp (start/stop unit) ist, beträgt die Datenlänge null.
Wenn die Datenlänge
null ist, geht das Datenübertragungssteuersystem 10 zu
Schritt S17 über.
-
Wenn
die Datenlänge
nicht null ist, bestimmt das Datenübertragungssteuersystem 10,
ob das Speichergerät 100 das
Signal DMARQ (DMA-Übertragungsanforderungssignal)
gesendet hat oder nicht, wie mit E3 in 11 angegeben
(Schritt S12). Wenn des Signal DMARQ gesendet worden ist, weist das
Datenübertragungssteuersystem 10 den
Start von 2 TBytes DMA-Übertragung
zwischen dem Datenübertragungssteuersystem 10 und
dem Speichergerät 100 an,
wie mit E4 in 11 angegeben (Schritt S13).
-
Insbesondere
werden Signale wie das DMA-Übertragungsanforderungssignal
DMARQ und das DMARQ-Quittierungssignal DMACK für den Bus BUS2 definiert, der
ATA/ATAPI entspricht, was später beschrieben
wird. Wenn die Schnittstellenschaltung 102 des Speichergeräts 100 das
Signal DMARQ sendet und die Schnittstellenschaltung 30 des
Datenübertragungssteuersystems 10 dann
das Signal DMACK sendet, wird die DMA-Übertragung gestartet.
-
Das
Datenübertragungssteuersystem 10 weist
dann den Start der Datenübertragung
für die SBP-2-Datenlänge zwischen
dem Datenübertragungssteuersystem 10 und
dem PC (Personal Computer) 2 an, wie mit E5 in 11 angegeben
ist (Schritt S14).
-
Bei
der vorliegenden Ausführungsform
wird die Datenübertragung
zwischen dem Datenübertragungssteuersystem 10 und
dem PC unter Verwendung der SBP-2-Schaltung 22 (Hardware-Schaltung) verwirklicht.
Dadurch können
Daten (Schreibdaten), die vom PC über den Bus BUS1 empfangen
werden, automatisch über
den Paketpuffer 40 und den Bus BUS2 an das Speichergerät 100 übertragen
werden, nachdem die SBP-2-Datenlänge
und die DMA-Datenlänge
eingestellt worden sind. Außerdem
können Daten
(Lesedaten), die vom Speichergerät 100 über den
Bus BUS2 empfangen werden, automatisch über den Paketpuffer 40 und
den Bus BUS1 an den PC übertragen
werden. Die Firmware 50 (CPU 42) braucht deshalb
erst dann an der Datenübertragungsverarbeitung
teilzunehmen, wenn die SBP-2-Übertragung über den
Bus BUS1 und die ATAPI DMA-Übertragung über den
Bus BUS2 beendet sind. Dies verringert die Verarbeitungslast der Firmware
erheblich.
-
Wenn
das Datenübertragungssteuersystem 10 bestimmt,
dass die Datenübertragung
(hardwaremäßige SBP-2-Übertragung)
zwischen dem Datenübertragungssteuersystem 10 und
dem PC beendet worden ist (Schritt S16), bestimmt das Datenübertragungssteuersystem 10,
ob die Befehlsverarbeitung des Speichergeräts 100 abgeschlossen
worden ist oder nicht (Schritt S17). Die Bestimmung erfolgt durch
die Verwendung des Interrupt-Signals INTRQ, das in ATA/ATAPI oder
dgl. definiert ist. Wenn das Datenübertragungssteuersystem 10 bestimmt,
dass die Befehlsverarbeitung beendet worden ist, bricht das Datenübertragungssteuersystem 10 die DMA-Übertragung
ab, wie mit E6 in 13 angegeben (Schritt S18).
Das Datenübertragungssteuersystem 10 überträgt dann
den Status an den PC, wie mit E7 angegeben ist (Schritt S19).
-
Bei
der vorliegenden Ausführungsform
wird ein hinreichend großer
Wert (2 TByte) als die DMA-Datenlänge eingestellt,
wie mit dem Schritt S2 in 9 angegeben
ist. Die DMA-Übertragung
ist deshalb nicht beendet, weil die DMA-Datenlänge nicht null wird. Deshalb
wird die DMA-Übertragung unter
der Bedingung abgebrochen, dass die Befehlsverarbeitung beendet
ist (die DMA-Übertragung
wird als abgeschlossen betrachtet), wie mit Schritt S17 angegeben
ist.
-
Um
es genauer zu sagen: Da die DMA-Datenlänge selbst dann nicht null
wird, wenn die Datenübertragung über den
Bus BUS2 im Wesentlichen abgeschlossen ist, befindet sich das Datenübertragungssteuersystem 10 in
einem Übertragungs-
oder Empfangs-Wartezustand für
die DMA-Übertragung. Wenn
das Speichergerät 100 das
Datenübertragungssteuersystem 10 in
diesem Zustand über
die Beendigung der Befehlsverarbeitung durch Senden des Interrupt-Signals
INTRQ informiert, beendet das Datenübertragungssteuersystem 10 bei
der vorliegenden Ausführungsform
den Übertragungs-
oder Empfangs-Wartezustand für
die DMA-Übertragung und
bricht die DMA-Übertragung
ab. Dadurch kann die DMA-Übertragung
normal abgeschlossen werden.
-
Da
bei der vorliegenden Ausführungsform eine
hinreichend große
DMA-Datenlänge
eingestellt ist, kann der SCSI-Befehl, der im vom Bus BUS1 übertragenen
ORB enthalten ist, über
den Bus BUS2 an das Speichergerät 100 ausgegeben
werden, ohne dass der Inhalt des SCSI-Befehls analysiert wird. Deshalb
kann die Decodierverarbeitung des Befehls entfallen, wodurch die
Verarbeitungslast erheblich verringert werden kann. Selbst wenn
die DMA-Übertragung
nach dem Einstellen einer hinreichend großen DMA-Datenlänge gestartet
wird, kann außerdem die
DMA-Übertragung
normal beendet werden, indem die DMA-Übertragung abgebrochen wird,
nachdem das Speichergerät 100 über die
Beendigung der Befehlsverarbeitung informiert worden ist.
-
Unter
SCSI wird anders als unter ATAPI ein Steuer-Byte an das Ende eines
Befehls hinzugefügt. SCSI
verwendet 6 Byte-, 10 Byte- und 12 Byte-Befehle, und ATAPI verwendet
nur 12 Byte-Befehle. Ein Befehlsblock in einem ORB umfasst 12 Bytes.
Ein Befehl aus weniger als 12 Bytes wird aufgefüllt und dem Befehl wird kein
Steuer-Byte hinzugefügt.
Deshalb tritt selbst dann kein Problem auf, wenn ein in einem ORB
enthaltener SCSI-(MMC-2)Befehl an das ATAPI-Speichergerät 100 ausgegeben
wird. Bei der vorliegenden Ausführungsform
kann ein in einem ORB enthaltener Befehl an das Speichergerät 100 ausgegeben
werden, nachdem einige Änderungen an
den Befehl hinzugefügt
worden sind.
-
12 ist
ein Flussdiagramm eines Verfahrens zur Datenübertragungssteuerung bei einem Vergleichsbeispiel
der vorliegenden Ausführungsform.
Bei dem in 12 dargestellten Vergleichsbeispiel
wird die DMA-Datenlänge
durch Decodieren eines in einem ORB enthaltenen Befehls erfasst.
-
Befehle,
die decodiert werden sollten, können
z. B. wie folgt klassifiziert werden.
-
Beispiele
für Befehle
zum Übertragen
oder Empfangen von Daten sind u. a. ein Modusabfragebefehl, ein
Modusauswahlbefehl und ein Abfragebefehl, die die Datenlänge mit
der Anzahl der Bytes angeben, sowie ein Lesebefehl und ein Schreibbefehl, die
die Datenlänge
mit der Anzahl der Sektoren angeben und dgl.
-
Beispiele
für Befehle,
die keine Daten übertragen
oder empfangen, sind u. a. ein Befehl Testeinheit bereit, ein Befehl
Einheit Start/Stopp und dgl.
-
In
dem Fall, in dem die Datenlänge
durch die Anzahl der Sektoren angegeben wird, ist es erforderlich,
die Sektorlänge
anzugeben, um die tatsächliche Datenlänge zu berechnen.
In diesem Fall kann die Sektorlänge
durch Anwenden der folgenden Verfahren angegeben werden.
-
(1) Angeben der Sektorlänge durch
den Modusauswahlbefehl (Vorläufer[legacy)-SCSI-Spezifikation)
-
Die
Sektorlänge
wird durch einen Parameter eines Modusauswahlbefehls angegeben.
Wenn das Speichergerät
(CD-Laufwerk) den Modusauswahlbefehl normal ausführt, wird die im Modusauswahlbefehl
angegebene Sektorlänge
als die anschließende Sektorlänge verwendet.
-
(2) Angeben der Sektorlänge durch
den Lese-CD-Befehl
-
In
dem Fall, in dem die Sektorlänge
durch einen Parameter eines Lese-CD-Befehls angegeben wird, ist
die Sektorlänge
nur für
einen Befehl wirksam.
-
Beim
Vergleichsbeispiel ist die in 12 dargestellte
Verarbeitung erforderlich, um mit solchen verschiedenen Befehlen
umzugehen.
-
Wenn
wie in 12 dargestellt das Datenübertragungssteuersystem
einen ORB empfängt (Schritt
S31), decodiert das Datenübertragungssteuersystem
einen im ORB enthaltenen Befehl und bestimmt, ob die Datenzählung in
einer Byte-Einheit angegeben ist oder nicht (Schritt S32). Wenn
die Datenzählung
in einer Byte-Einheit angegeben ist, verwendet das Datenübertragungssteuersystem
die im Befehl angegebene Datenzählung
als die Datengröße (Schritt
S33). Wenn die Datenzählung
nicht in einer Byte-Einheit angegeben ist, bestimmt das Datenübertragungssteuersystem
ob die Datenzählung
in einer Sektoreinheit angegeben ist oder nicht (Schritt S34). Wenn
die Datenzählung
nicht in einer Sektoreinheit angegeben ist, stellt das Datenübertragungssteuersystem
die Datengröße auf null
ein (Schritt S35).
-
Wenn
die Datenzählung
in einer Sektoreinheit angegeben ist, bestimmt das Datenübertragungssteuersystem,
ob die Sektorgröße vorliegt
oder nicht (Schritt S36). Wenn die Sektorgröße nicht vorliegt, verwendet
das Datenübertragungssteuersystem
2048 Bytes × (Anzahl
Sektoren im Befehl) als die Datengröße (Schritt S37). Wenn die
Sektorgröße vorliegt,
verwendet das Datenübertragungssteuersystem
die (angegebene Sektorgröße) × (Anzahl
Sektoren im Befehl) als die Datengröße (Schritt S38).
-
Bei
dem in 12 dargestellten Vergleichsbeispiel
stellt das Datenübertragungssteuersystem die
durch die obige Verarbeitung erhaltene Datengröße als die SBP-2-Datenlänge und
die DMA-Datenlänge ein
(Schritt S39). Das Datenübertragungssteuersystem
führt dann
eine Verarbeitung in den Schritten S40 bis S48 aus. Bei der Verarbeitung
in den Schritten S40 bis S48 bestimmt das Datenübertragungssteuersystem auf
Basis der DMA-Datenlänge und
dgl. in Schritt S45 (siehe F6 in 13), ob
die DMA-Übertragung
beendet ist oder nicht, was ein Unterschied zur Verarbeitung bei
der in 9 dargestellten vorliegenden Ausführungsform
ist. Die Abbruchverarbeitung der DMA-Übertragung
in Schritt S18 von 9 ist in 12 nicht
vorgesehen.
-
Da
bei dem in 12 dargestellten Vergleichsbeispiel
die Befehlsdecodier-(Analyse)Verarbeitung in den Schritten S32 bis
S38 erfolgt (siehe F1 in 13), wird
die Verarbeitungslast erhöht.
Da andererseits die Befehlsdecodierverarbeitung bei der in 9 dargestellten
vorliegenden Ausführungsform nicht
erforderlich ist, ist die vorliegende Ausführungsform unter diesem Gesichtspunkt
vorteilhafter.
-
14 ist
ein Flussdiagramm, das die Verarbeitung eines Datenübertragungssteuerverfahren
bei einem weiteren Vergleichsbeispiel zeigt. Bei dem in 14 dargestellten
Vergleichsbeispiel wird die DMA-Datenlänge anhand einer Seitentabelle
eines ORB und dgl. erfasst.
-
Wenn
in 14 das Datenübertragungssteuersystem
einen ORB empfängt
(Schritt S51), bestimmt das Datenübertragungssteuersystem, ob
die Datengröße im ORB
null ist oder nicht (Schritt S52). Wenn die Datengröße im ORB
null ist, geht das Datenübertragungssteuersystem
zu Schritt S56 über. Wenn
die Datengröße im ORB
nicht null ist, bestimmt das Datenübertragungssteuersystem, ob
eine Seitentabelle im Datenpuffer des PC vorhanden ist oder nicht
(Schritt S53). Wenn eine Seitentabelle vorhanden ist, liest das
Datenübertragungssteuersystem
die gesamte Seitentabelle und berechnet die Datengröße (Schritt
S54). Das Datenübertragungssteuersystem
stellt dann die berechnete Datengröße als die SBP-2-Datenlänge und
die DMA-Datenlänge
ein (Schritt S56). Die anschließende
Verarbeitung in den Schritten S60 bis S68 ist die gleiche wie die
Verarbeitung in den Schritten S40 bis S48 in 12.
-
Da
bei dem in 14 dargestellten Vergleichsbeispiel
die Verarbeitung in den Schritten S52 bis S54 erforderlich ist,
nimmt die Verarbeitungslast zu. Unter diesem Gesichtspunkt ist deshalb
die in 9 dargestellte vorliegende Ausführungsform
vorteilhafter.
-
4. ATA/ATAPI-Schnittstellenschaltung
-
15 zeigt
ein Konfigurationsbeispiel der ATA/ATAPI-Schnittstellenschaltung 30.
Die Schnittstellenschaltung 30 enthält nicht notwendigerweise alle
in 15 dargestellten Schaltungsblöcke. Manche der Schaltungsblöcke können entfallen.
-
Ein
FIFO 31 ist ein Puffer zum Einregeln (Puffern) der Differenz
der Datenübertragungsrate. Die
DMA-Steuerung 32 ist eine Schaltung, die den FIFO 31 und
eine Schnittstellenkernschaltung 34 steuert (REQ/ACK-Steuerung).
-
Die
Schnittstellenkernschaltung 34 ist eine Schaltung, die
die DMA-Übertragung
und dgl. steuert. Ein in der Schnittstellenkernschaltung 34 enthaltener
Zähler 35 ist
ein ATA (IDE)/ATAPI-Reset-Zähler.
Eine UDMA-Schaltung 36, die in der Schnittstellenkernschaltung 34 enthalten
ist, ist eine Schaltung zum Steuern der ATA/ATAPI UltraDMA-Übertragung. Die
UDMA-Schaltung 36 enthält
einen UltraDMA FIFO 37 und eine UltraDMA CRC-Berechnungsschaltung 38.
-
Ein
Register 33 ist ein Register zum Steuern des Starts einer
DMA-Übertragung
und dgl. Der Zugriff auf das Register 33 ist über die
Firmware 50 (CPU 42) möglich.
-
Ein
Signal CS[1:0] ist ein Chip-Auswahlsignal, das dazu dient, auf jedes
der ATA-Register zuzugreifen. Ein Signal DA[2:0] ist ein Adresssignal
zum Zugriff auf Daten oder einen Datenport.
-
Die
Signale DMARQ und DMACK sind Signale, die zur DMA-Übertragung
verwendet werden. Das Speichergerät 100 (Gerät) sendet
(aktiviert) das Signal DMARQ, wenn die Vorbereitungen für die Datenübertragung
abgeschlossen sind, und das Datenübertragungssteuersystem 10 (Host)
sendet das Signal DMACK, wenn die DMA-Übertragung als Antwort auf
das Signal DMARQ veranlasst wird.
-
Ein
Signal DIOW (STOP) ist ein Schreibsignal, das zum Schreiben von
Daten in ein Register oder einen Datenport verwendet wird. Das Signal DIOW
fungiert während
einer UltraDMA-Übertragung als
ein STOP-Signal. Ein Signal DIOR (HDMARDY, HSTROBE) ist ein Lesesignal,
das zum Lesen von Daten aus einem Register oder einem Datenport
verwendet wird. Das Signal DIOR fungiert während einer UltraDMA-Übertragung
als ein HDMARDY/HSTROBE-Signal.
-
Ein
Signal IORDY (DDMARDY, DSTROBE) dient als ein Wartesignal, wenn
das Speichergerät 100 die
Vorbereitung für
eine Datenübertragung
und dgl. nicht abschließt.
Das Signal IORDY fungiert während
einer UltraDMA-Übertragung
als ein DDMARDY/DSTROBE-Signal.
-
Das
Signal INTRQ ist ein Signal, das das Speichergerät 100 (Gerät) verwendet,
um eine Unterbrechung zum Datenübertragungssteuersystem 10 (Host)
anzufordern. Wenn das Datenübertragungssteuersystem 10 den
Inhalt des Statusregisters des Speichergeräts 100 liest, nachdem
das Signal INTRQ gesendet worden ist, negiert (deaktiviert) das Speichergerät 100 das
Signal INTRQ nach Ablauf einer gegebenen Zeitspanne. Das Speichergerät 100 kann
das Datenübertragungssteuersystem 10 über den
Abschluss der Befehlsverarbeitung durch Verwenden des Signals INTRQ
informieren.
-
Die 16A bis 18B zeigen
Beispiele der Signalwellenformen der obigen ATA-Signale. In den 16A bis 18B bedeutet "#", dass das Signal ein negatives logisches
Signal ist (auf Pegel L aktiviert).
-
Die 16A und 16B sind
Beispiele für Signalwellenformen
während
des PIO (Parallel I/O; Parallel-E/A)-Lesens und PIO-Schreibens.
Das ATA-Statusregister wird durch das in 16A dargestellte
PIO-Lesen gelesen. Durch das in 16B dargestellte
PIO-Schreiben wird in das Steuerregister geschrieben. Die Ausgabe
des Befehls PACKET und die Übertragung
des ATAPI-Paketbefehls
an das Speichergerät 100 (siehe 8 und 10)
kann z. B. durch die PIO-Übertragung
erfolgen.
-
Die 17A und 17B sind
Beispiele für Signalwellenformen
während
des DMA-Lesens und DMA-Schreibens. Das Speichergerät 100 (Schnittstellenschaltung 102)
sendet das Signal DMARQ (Pegel H), wenn die Vorbereitungen für eine Datenübertragung
abgeschlossen sind. Das Datenübertragungssteuersystem 10 (Schnittstellenschaltung 30) sendet
das Signal DMACK (Pegel L) als Antwort auf das Signal DMARQ, um
die DMA-Übertragung
zu starten. Die DMA-Übertragung
der Daten DD[15:0] erfolgt durch Verwenden des Signals DIOR (während des
Lesens) oder DIOW (während
des Schreibens).
-
Die 18A und 18B sind
Beispiele für Signalwellenformen
während
des UltraDMA-Lesens und UltraDMA-Schreibens. Das Speichergerät 100 sendet
das Signal DMARQ, wenn die Vorbereitungen für eine Datenübertragung
abgeschlossen sind. Das Datenübertragungssteuersystem 10 sendet
das Signal DMACK als Antwort auf das Signal DMARQ, um die DMA-Übertragung
zu starten. Die UltraDMA-Übertragung
der Daten DD[15:0] erfolgt durch Verwenden der Signale DIOW, DIOR
und IORDY.
-
Die
vorliegende Erfindung ist nicht auf die vorliegende Ausführungsform
beschränkt.
Verschiedene Modifikationen und Variationen sind innerhalb des Gültigkeitsbereichs
der vorliegenden Erfindung möglich.
-
So
können
beispielsweise die Begriffe (IEEE1394, ATA/ATAPI, SBP-2, IPover1394,
ORB, Personal Computer/Speichergerät, Festplattenlaufwerk/optisches
Plattenlaufwerk, Speichergerät,
CPU und dgl.), die in der Beschreibung als Begriffe in einem weitgefassten
Sinn (erster Schnittstellenstandard, zweiter Schnittstellenstandard,
erstes Protokoll höherer
Schicht des ersten Schnittstellenstandards, zweites Protokoll höherer Schicht
des zweiten Schnittstellenstandards, Befehlspaket, elektronisches
Instrument, Speichergerät,
Gerät,
Prozessor und dgl.) genannt werden, durch die Begriffe in einem weitgefassten
Sinn in einer anderen Beschreibung ersetzt werden.
-
Ein
Teil der Anforderungen eines Anspruchs der vorliegenden Erfindung
könnte
im Unteranspruch, der sich auf diesen Anspruch bezieht, entfallen.
Ferner könnte
ein Teil der Anforderungen jedes Hauptanspruchs der vorliegenden
Erfindung als Unteranspruch jedes anderen Hauptanspruchs formuliert
werden.
-
Die
Konfiguration des Datenübertragungssteuersystems
und des elektronischen Instruments der vorliegenden Erfindung ist
nicht auf die in 7 dargestellte Konfiguration
beschränkt.
Zahlreiche Modifikationen und Variationen sind möglich. So kann z. B. ein Teil
jedes der Schaltungsblöcke
und der Funktionsblöcke
in den 9 und 18 entfallen, oder
die Verbindungsbeziehung zwischen den Blöcken kann modifiziert werden.
Der zweite Bus (BUS2) kann mit einem anderen Gerät als dem Speichergerät verbunden
werden. Die Verbindungskonfiguration der physikalischen Schichtschaltung,
der Link-Schichtschaltung und des Paketpuffers ist nicht auf die
in 7 dargestellte Verbindungskonfiguration beschränkt.
-
Die
vorliegende Ausführungsform
veranschaulicht den Fall, in dem die Funktionen des Befehlsverarbeitungsabschnitts,
des DMA-Übertragungsanweisungsabschnitts
und dgl. von der Firmware (Programm) verwirklicht werden. Ein Teil
oder alle Funktionen dieser Abschnitte können jedoch durch Hardware
verwirklicht werden.
-
Die
vorliegende Erfindung kann auf verschiedene Typen elektronischer
Instrumente angewendet werden (Festplattenlaufwerk, optisches Plattenlaufwerk,
magnetooptisches Plattenlaufwerk, PDA, Erweiterungsgerät, Audioausrüstung, digitale
Videokamera, Mobiltelefon, Drucker, Scanner, TV, VTR, Telefon, Anzeigegerät, Projektor,
Personal Computer, elektronisches Notebook und dgl.).
-
Die
vorliegende Ausführungsform
veranschaulicht den Fall, in dem die vorliegende Erfindung auf die
Datenübertragung
gemäß den Standards IEEE1394,
SBP-2 und ATA/ATAPI angewendet wird. Die vorliegende Erfindung kann
jedoch auch auf die Datenübertragung
gemäß solchen
Standards angewendet werden, die auf dem selben Prinzip wie IEEE1394
(P1394a), SBP-2 (SBP) und ATA/ATAPI basieren und Standards, die
aus IEEE1394, SBP-2 und ATA/ATAPI entwickelt werden.