-
Hintergrund
der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf eine Datenverarbeitungsvorrichtung,
die in einem seriellen Kommunikationssystem benutzt wird, in welchem
eine Datenübertragung
mit einem Host-Computer über
eine serielle Schnittstelle durchgeführt wird.
-
Eine
Datenübertragung
durch eine USB (Universal Serial Bus)-Schnittstelle entsprechend
einer Art von seriellen Schnittstellen wird konventionell zwischen
einem Host-Computer
(wird nachfolgend als ein "USB-Host" bezeichnet) und
einer Datenverarbeitungsvorrichtung (wird nachfolgend als "USB-Vorrichtung" bezeichnet) errichtet,
die durch diesen USB-Host kontrolliert wird. Der USB-Host besitzt
solch eine Funktion als ein Datenübertragungs-/Verwaltungs-Master.
Grundsätzlich
wird ein in dieser USB-Vorrichtung
ausgeführter
Datenverarbeitungsvorgang entsprechend einem Interrupt durchgeführt, der
durch ein Ereignis eines Bus-Ereignisses, wenn ein Token, Daten,
ein Bus-Signal und dergleichen von dem USB-Host empfangen werden, oder
wenn Daten und dergleichen zu dem USB-Host übertragen werden, ausgelöst wird.
Im Hinblick auf große
Datenmengen oder auf solche Daten, welche sehr häufig periodisch erzeugt werden,
wird eine vorbestimmte Menge dieser Daten gepuffert und folglich ein
Interrupt erzeugt.
-
4 ist
ein Zeitdiagramm zum Erläutern
eines Beispiels eines Interruptvorgangs in einer konventionellen
USB-Vorrichtung. In 4 ist durch die USB-Spezifikation
definierter 1-Frame 113 (1 ms) als eine Dauer (Zeitdauer)
zwischen SOF (Start of Frame)-Signalen 111 und 112 angezeigt,
welche von dem USB-Host empfangen werden. In diesem 1-Frame 113 (K:tn-Frame)
enthält
ein auf einem USB-Bus eingetroffenes Bus-Ereignis 100 ein Bus-Rücksetzsignal 101,
Daten 102 einer Übertragung
1, Daten 103 einer Übertragung
2 und Daten 104 einer Übertragung
3. Diese Signal und Daten sind Zeit-Sequentiell eingerichtet. Eine
durch eine CPU (Zentraleinheit) ausgelöste Datenverarbeitung 105 enthält Verarbeitungen 106 bis 109,
welche Zeit-Sequentiell eingerichtet sind. Einen Interrupt 110 (in
dieser Zeichnung als "Interrupt-Modus
A" bezeichnet) tritt
bei jedem Bus-Ereignis ein. Dieser Interrupt 110 wird zum
Benachrichtigen des Bus- Ereignisses 100 in
dem USB-Bus zu der CPU benutzt. Jedes Mal, wenn dieser Interrupt 110 auftritt,
wird die Datenverarbeitung 105 durch die CPU ausgelöst. Mit
anderen Worten werden die Verarbeitung 106 in Bezug auf
das Bus-Rücksetzsignal 101,
die Verarbeitung 107 in Bezug auf die Daten 102 der Übertragung
1, die Verarbeitung 108 in Bezug auf die Daten 103 der Übertragung
2 und die Verarbeitung 109 in Bezug auf die Daten 104 der Übertragung
3 sequentiell durchgeführt.
-
Bei
der oben beschriebenen konventionellen Datenverarbeitungsvorrichtung,
die in dem seriellen Kommunikationssystem benutzt wird, verwaltet
der USB-Host alle Übertragungsvorgänge betreffend
die Daten und dergleichen und plant den Übertragungsablauf. Als ein
Ergebnis kann auf Seite der USB-Vorrichtung eine Interrupt-Gesamtzeit,
welche direkt proportional zu den Ereigniszeiten der Bus-Ereignisse ist,
während
die Bus-Signale
und die Daten übertragen/empfangen
werden, nicht reguliert werden.
-
In
solch einem Fall, bei dem eine USB-Schnittstelle in ein zusammengesetztes
System eingebaut wird, würden
die Arten von Übertragungsvorgängen und
eine Gesamtanzahl von Endpunkten erhöht werden, da die Kommunikationsapplikationssoftware
erhöht
ist, so dass eine Gesamtzeit der Interrupts erhöht werden würde. Mit anderen Worten wird
die Arbeitsbelastung in Bezug auf eine CPU erhöht, was zu nachteiligen Bedingungen
führt.
-
US-A-6
115 779 beschreibt ein Interrupt-Verwaltungssystem, welches einem
Nutzer ermöglicht, Interrupt-Ereignisse
entweder in einem Echtzeit-Verwaltungsmodus oder in einem Batch-Verwaltungsmodus
zu bearbeiten. In dem Echtzeit-Modus wird ein Interrupt-Anforderungssignal
in Antwort auf jedes Interrupt-Ereignis durchgesetzt. In dem Batch-Modus wird
ein Interrupt-Anforderungssignal verzögert bis eine vorbestimmte
Anzahl von Interrupt-Ereignissen erfasst worden ist oder bis ein
vorbestimmtes Zeitintervall vergangen ist, seit das letzte Interrupt-Ereignis erfasst
wurde. In Antwort auf ein Interrupt-Ereignis wird das entsprechende
Bit in einem Interrupt-Register in einen aktiven Zustand versetzt.
Ein Interrupt-Kontrollbit ist in einem Interrupt-Kontrollregister für jedes
Interrupt bereitgestellt, um die Aktivierung von einem Interrupt-Anforderungspin
in Antwort zu dem Interrupt-Ereignis zu ermöglichen. Ein Batch-Freigabebit
ist in einem Batch-Register
für jedes
Interrupt-Ereignis bereitgestellt, um das Batching des Interrupt-Ereignisses zu ermöglichen.
-
US-A-6
119 195 beschreibt ein Verfahren und eine Vorrichtung zum Virtualisieren
einer seriellen Bus-Informationsquelle/Senke (sink point) einer seriellen
Bus-Vorrichtung zu einem Adressraum eines Prozessors. Eine Registereinheit
ist mit einer parallelen Anschlussvorrichtung verbunden, um eine serielle
Bus-Transaktion zwischen dem Prozessor und der seriellen Bus-Vorrichtung
zu unterstützen. Die
Registereinheit hat eine Vielzahl von Registern, welche in dem Adressraum
des Prozessors über
die parallele Anschlussvorrichtung abgebildet werden, eines der
Vielzahl von Registern entspricht der seriellen Bus-Informationsquelle/Senke.
Ein Steuerkreis ist mit der Registereinheit gekoppelt, um dem Prozessor
die Informationsquelle/Senke über
die parallele Anschlussvorrichtung zugänglich zu machen.
-
Zusammenfassung
der Erfindung
-
Die
vorliegende Erfindung wurde gemacht, um die oben erläuterten
Probleme zu lösen
und hat deshalb die Aufgabe zum Bereitstellen solch einer Datenverarbeitungsvorrichtung,
die in einem seriellen Kommunikationssystem benutzt wird, welche
in der Lage ist, in ein zusammengesetztes System einer USB-Schnittstelle
(serielle Schnittstelle) eingebaut zu werden, während eine Interrupt-Gesamtzeit
auf der Seite einer USB-Vorrichtung (und zwar die Datenverarbeitungsvorrichtung)
angepasst werden kann und außerdem
eine CPU-Arbeitsbelastung reduziert werden kann.
-
Die
oben beschriebene Aufgabe wird mit den Merkmalen von Anspruch 1
erzielt. Bevorzugte Ausführungsformen
sind in den Unteransprüchen
angegeben.
-
Kurze Zusammenfassung
der Zeichnungen
-
1 ist
ein Zeitdiagramm zum Erläutern
eines Beispiels eines in einer USB-Vorrichtung ausgeführten Interruptvorgangs
gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
2 ist
ein Blockdiagramm zum Veranschaulichen einer Struktur der USB-Vorrichtung
gemäß der vorliegenden
Erfindung;
-
3 ist
ein Diagramm zum schematischen Anzeigen einer Struktur von jedem
der Endpunktpuffer, welche einen Datenpuffer bilden, und auch einer Struktur
eines in Zusammenhang mit diesen Endpunktpuffern eingesetzten Zustandsregister;
und
-
4 ist
ein Zeitdiagramm zum Erläutern
eines Beispiels des Interrupt-Vorgangs ausgeführt in der konventionellen
USB-Vorrichtung.
-
Detaillierte
Beschreibung der bevorzugten Ausführungsform
-
In
Bezug auf die Zeichnungen wird nun eine Ausführungsform der vorliegenden
Erfindung detailliert beschrieben.
-
Zuerst
wird ein Beispiel eines in einer USB-Vorrichtung gemäß einer
Ausführungsform
der vorliegenden Erfindung ausgeführten Interrupt-Vorgangs in
Bezug auf 1 beschrieben. In 1 wird 1-Frame
(ein Frame) 213 als eine zwischen einem SOF-Signal 211 und
einem weiteren SOF-Signal 212 definierte Zeitdauer festgelegt,
in anderen Worten, eine Zeitdauer (5 ms) entsprechend 5 Aufzählungen von
SOF-Signalen, die von einem USB-Host abgeleitet sind. In diesem
1-Frame 213 (K:tn Frame) enthält ein in einem USB-Bus auftretendes
Bus-Ereignis 200 ein Bus-Rücksetzsignal 201,
Daten 202 einer Übertragung
1, Daten 203 einer Übertragung
2 und Daten 204 einer Übertragung
3, welche in einer Zeit-Sequentiellen Art und Weise eingerichtet
sind. Eine von einer CPU ausgeführten
Datenverarbeitung 205 enthält Verarbeitungen 206 bis 208,
welche Zeit-Sequentiell
eingerichtet sind.
-
In
diesem Fall sind zwei Arten von Interrupts zur Benachrichtigung
des Eintritts des Bus-Ereignisses 200 in
dem USB-Bus zu der CPU vorgesehen, d. h. sowohl ein Interrupt 209 (angezeigt
als ein "Interrupt-Modus
A" in der Zeichnung)
als auch ein weiterer Interrupt 210 (angezeigt als "Interrupt-Modus B" in der Zeichnung). Ähnlich wie
bei dem konventionellen System wird das durch den Interrupt-Modus
A erzeugte Interrupt 209 jedes Mal, wenn ein Bus-Ereignis
eintritt, erzeugt. Dann wird jedes Mal wenn dieser Interrupt 209 erzeugt
wird, die Datenverarbeitung 205 durch die CPU ausgeführt. Andererseits
wird das durch den Interrupt-Modus B erzeugte Interrupt 210 für jeden
1-Frame 213 im Gleichlauf mit dem SOF-Signal erzeugt. Zu
diesem Zeitpunkt wird die Datenverarbeitung 205 durch die
CPU durchgeführt.
Das heißt,
der Interrupt 210 wird erzeugt, während der 1-Frame 213 als
eine Interrupt-Zeitdauer festgelegt wird. Mit anderen Worten sowohl
die Verarbeitung 206 in Bezug auf das Bus-Rücksetzsignal 201 als auch
die Verarbeitung 207 in Bezug auf die Daten 202 der Übertragung
1 werden sequentiell in dem K:tn Frame ausgeführt, wobei die Verarbeitung 208 bezüglich sowohl
der Daten 203 der Übertragung
2 als auch der Daten 204 der Übertragung 3 in einem (K+1)-
Frame nachfolgend zu dem K:tn Frame ausgeführt wird. Es soll beachtet
werden, dass obwohl die durch den Interrupt-Modus B erzeugte Interrupt-Zeitdauer
auf 5 ms, welche 5 Aufzählungen
der SOF-Signale in dieser Ausführungsform
entspricht, festgelegt ist, so kann diese Interrupt-Zeitdauer auf eine
willkürlich
ausgewählte
Zeit festgelegt werden.
-
Der
oben beschriebene Interrupt-Modus "A" wird
beispielsweise in solch einem Übertragungsvorgang
eines Bus-Signals, Kontrollsystemdaten und dergleichen verwendet,
beispielsweise bei Kabel-Aufschnitt (cable cut-out) und Rückstellen
eines USB-Bus. Diese Ereignisse treten nicht allzu häufig auf,
erfordern aber sehr dringende, d. h. unverzügliche Verarbeitungsvorgänge sind
erforderlich. In dem Beispiel gemäß 1 wird der
Interrupt-Modus A sowohl für
das Bus-Rücksetzsignal 201 als
auch für
die Daten 202 der Übertragung
1 angewandt. Ähnlich wie
bei der konventionellen Vorgehensweise entspricht dieser Interrupt-Modus
A solch einem Interrupt-Modus, welcher nicht auf Zeitbasis verwaltet wird.
Der oben beschriebene Interrupt-Modus B entspricht andererseits
solch einem Interrupt-Modus, welcher Zeit gesteuert ist, und wird
für einen Übertragungsvorgang
in Bezug auf Sprachdaten, die in einem sehr häufigen Maß erzeugt werden, und auch für Paketkommunikationsdaten
angewandt, deren Kapazität
groß ist
und welche lokal in einem sehr häufigen
Maß erzeugt
werden. In dem Beispiel gemäß 1 wird
dieser Interrupt-Modus "B" für sowohl
die Daten 203 der Übertragung
2 als auch der Daten 204 der Übertragung 3 angewandt. Es
ist somit erforderlich, dass eine Entscheidung, ob der Interrupt-Modus "A" oder der Interrupt-Modus "B" für ein
bestimmtes Ereignis angewandt werden kann, im Voraus in Bezug auf
jedes Bus-Ereignis (Endpunkt und Bus-Signal) festgelegt werden sollte.
-
Als
Nächstes
wird nun eine Struktur einer USB-Vorrichtung gemäß dieser Ausführungsform
in Bezug auf 2 beschrieben. In 2 ist
ein USB-Host 300 über
ein USB-Kabel 301 gegenseitig mit
einer USB-Vorrichtung 302 verbunden. In der USB-Vorrichtung 302 ist
eine Puffer-Steuereinheit 304, welche einen SIE (Serial
Interface Engine) 303 steuert, und ein Daten-Puffer (wird
nachfolgend beschrieben) 306 gegenseitig über einen
Bus 319 mit einem Decoder 305, welcher eine Endpunktadresse analysiert,
verbunden. Der Daten-Puffer 306 entsprechend zu jedem der
Endpunkte, eine Zeitein heit 307, eine Signal-Kontrolleinheit 308,
ein in dem Daten-Puffer 306 benutztes Zustandsregister 309,
eine CPU 310 zum Ausführen
von Datenverarbeitungsvorgängen
und dergleichen und auch andere periphere Schaltkreise 318 sind
gegenseitig über
einen Bus 320 miteinander verbunden. Die Zeiteinheit 307 misst
eine vorher ausgewählte
Zeitdauer, welche die Interrupt-Zeitdauer von dem Interrupt-Modus "B" bildet. Bei dieser Ausführungsform
misst die Zeiteinheit 307 5 ms (Millisekunden) oder zählt 5 Mengen
von SOF-Signalen. Die Signal-Kontrolleinheit 308 gibt ein Interrupt-Signal 317 in
Antwort auf ein von dem Daten-Puffer 306 zugeführtes Signal
ab.
-
Der
Daten-Puffer 306 enthält
eine Vielzahl von Endpunkt-Puffern 306-1, 306-2,
..., 306-n (das Symbol "n" ist eine natürliche Zahl),
welche den jeweiligen Endpunkten entsprechen. Diese Endpunkt-Puffer 306 sind
mit der Puffer-Steuereinheit 304 verbunden. Die Endpunkt-Puffer 306-1, 306-2, ..., 306-n sind
jeweils auch mit der Signal-Steuereinheit 308 verbunden
und jeweils auch mit der Zeiteinheit 307 verbunden. Als
ein Ergebnis werden Benachrichtigungssignale 311 bis 313 in
Verbindung mit einem Puffer-Zustand jedes Endpunktes zu sowohl der
Signal-Kontrolleinheit 308 als auch zu der Zeiteinheit 307 von
dem jeweiligen Endpunkt-Puffern 306-1, 306-2,
..., 306-n zugeführt.
Auch ein Bus 319 ist mit sowohl der Signal-Kontrolleinheit 308 als
auch der Zeiteinheit 307 verbunden. Als ein Ergebnis wird ein
Signal 314 zu jeweils der Signal-Kontrolleinheit 308 und
der Zeiteinheit 307 zugeführt. Dieses Signal 314 wird
benutzt, um anzuzeigen, dass ein USB-Kabel angeschlossen/getrennt
ist, und USB-Bus-Signale wie beispielsweise ein USB-Rücksetzen,
ein USB-Aussetzen und ein USB-Wiederaufnehmen werden erzeugt. Außerdem ist
der Bus 319 mit der Zeiteinheit 307 verbunden,
so dass ein weiteres Signal 316 zum Benachrichtigen eines
SOF-Signals zu der Zeiteinheit 307 gesendet wird.
-
Die
Zeiteinheit 307 ist mit der Signal-Steuereinheit 308 verbunden.
Als ein Ergebnis wird ein Signal 315 von der Zeiteinheit 307 zu
der Signal-Steuereinheit 308 zugeführt. Dieses Signal 315 zeigt
eine solche Tatsache an, dass eine vorbestimmte Zeitdauer gemessen
ist, welche die Interrupt-Zeitdauer des Interrupt-Modus B begründet. Ferner
ist die Signal-Steuereinheit 308 mit der CPU 310 verbunden. Als
ein Ergebnis wird ein Interrupt-Signal 317,
erzeugt auf Basis von entweder den Signalen 311 bis 313 oder
dem Signal 314, von der Signal-Steuereinheit 308 zu
der CPU 310 geliefert. In Antwort auf dieses Interrupt-Signal 317 wird
ein Interrupt, der entweder durch den oben erläuterten Interrupt-Modus "A" oder den oben beschriebenen Interrupt-Modus "B" erzeugt wurde, in Bezug auf die CPU 310 ausgeführt. Außerdem sind
andere periphere Schaltkreise 318 auf ähnliche Art und Weise mit der
CPU 310 verbunden. Als ein Ergebnis werden unterschiedliche
Arten von Signalen zu der CPU 310 zugeführt. Es sollte auch berücksichtigt
werden, dass eine Entscheidung, ob der Interrupt-Modus "A" oder der Interrupt-Modus "B" für
ein bestimmtes Ereignis angewandt werden könnte, vorab in Bezug auf jedes
der Bus-Ereignisse (Endpunkte und Bus-Signale) in der Signal-Steuereinheit 308 festgelegt
werden sollte. Dieser Einstellungsvorgang kann programmierbar ausgeführt werden.
-
Nachfolgend
werden nun Vorgänge
der USB-Vorrichtung 302 erläutert. Wenn die USB-Vorrichtung 302 ein
Bus-Ereignis, welches in dem USB-Kabel 301 eintrifft, erfasst,
analysieren sowohl die SIE 303 als auch der Decoder 305 dieses
Bus-Ereignis. Wenn das analysierte Bus-Ereignis einem USB-Bussignal
entspricht, meldet die USB-Vorrichtung 302 diese Tatsache
der Signal-Steuereinheit 308 durch Einsetzen des Signals 314.
Wenn das analysierte Bus-Ereignis einem Bus-Ereignis entspricht,
welches sich auf Übertragung/Empfang
von Übertragungsdaten
im Hinblick auf jeden der Endpunkte bezieht, überträgt die USB-Vorrichtung 302 über die
Puffer-Steuereinheit 304 Daten zu dem Daten-Puffer 306 und
meldet dann einen Zustand betreffend jeden der Endpunkte zu der
Signal-Steuereinheit 308 durch Nutzung der Signale 311 bis 313.
In diesem Fall kann der Daten-Puffer 306 eine Puffergröße hiervon
in programmierbarer Weise ändern.
-
Wenn
die Zeiteinheit 307 eine vorher ausgewählte Zeitdauer, entsprechend
der Interrupt-Zeitdauer
des Interrupt-Modus B misst, meldet diese Zeiteinheit 307 diese
Tatsache der Signal-Steuervorrichtung 308 durch Nutzung
des Signals 315. In diesem Fall werden als die Eingabesignale
zu der Zeiteinheit 307 die Signale 311 bis 313,
abgeleitet von dem Daten-Puffer 306, das Signal 314,
verwendet zum Anzeigen des USB-Bussignals, und das Signal 316,
verwendet zum Anzeigen des SOF-Signals, benutzt. Diese Signale können genutzt
werden, um den Zeitvorgang zu starten und können auch als ein Aufzählungsfaktor
in der Zeitmessungsvorrichtung 307 benutzt werden. Es soll
auch verstanden werden, dass das Zeitintervall (Zeitdauer), die
Aufzählungsnummer
und die Auswahlvorgänge
der hierzu verwandten Signale als die Auslöser in der Zeiteinheit 307 programmierbar
ausgeführt
werden können.
Beispielsweise sind die folgenden Benachrichtigungsverfahren denkbar.
Wenn ein SOF-Signal als ein Aufzählungsfaktor
verwendet wird, wird jedes Mal, wenn 5 Aufzählungen gezählt worden sind, diese Tatsache der
Signal-Steuerungseinheit 308 gemeldet. Wenn eine Vervollständigung
einer Datenübertragung durch
den Endpunk-Puffer 306 als ein Auslöser zum Starten des Zeitvorgangs benutzt
wird, so wird solch eine Tatsache der Signal-Steuerungseinheit 308 nach
3 ms gemeldet.
-
Die
Signal-Steuerungseinheit 308 steuert den Zeitablauf, bei
welchem das Interrupt-Signal 317 in
Antwort auf ein aufgetretenes Bus-Ereignis ausgegeben wird. Mit
anderen Worten, wenn solch ein Bus-Ereignis, für welches der Interrupt-Modus
A angewandt wird, eintritt, führt
die Signal-Steuerungseinheit 308 das Interrupt-Signal 317 unverzüglich zu
der CPU 310. Wenn solch ein Bus-Ereignis, für welches der
Interrupt-Modus B angewandt wird, eintritt, führt andererseits die Signal-Steuereinheit 308 das
Interrupt-Signal 317 zu
der CPU 310 in Antwort auf (in Synchronismus mit) das von
der Zeiteinheit 307 zugeführte Signal 315.
-
Bezug
nehmend auf 3 wird nun eine Struktur von
jedem der Endpunkt-Puffer beschrieben, welche den Daten-Puffer 306 bilden,
und auch eine Struktur eines Zustandsregisters 309, welches
diesem entspricht. In 3 besitzen die jeweiligen Endpunkt-Puffer, welche den
Daten-Puffer 306 bilden, einen Datenspeicherbereich 402.
Das Statusregister 309 beinhaltet Register 405 bis 411,
ein Register 403, um darin alle Größen von Daten, die in jedem
der Endpunkt-Puffer gespeichert sind, zu speichern, und ein Register 404,
um darin eine Gesamtanzahl von effektiven Paketen zu speichern.
Die Register 405 bis 411 speichern darin eine
Datenspeichergröße jedes Daten-Paketes
entsprechend jedem der Endpunkt-Puffer.
-
In
diesem Fall werden nun Vorgänge
beschrieben, welche ausgeführt
werden, wenn die Daten empfangen werden. Zuerst wird angenommen, dass
die Übertragung
2 innerhalb des K:tn Frame, wie in 1 gezeigt,
einem Übertragungsvorgang von
Paket-Kommunikationsdaten entspricht. Um einen Interrupt 210,
erzeugt durch den Interrupt-Modus B, auszuführen, misst die Zeiteinheit 307 eine
vorgewählte
Zeitdauer (5 ms bei dieser Ausführungsform), welche
einer Interrupt-Zeitdauer entspricht. In der Annahme, dass die Übertragung
2 durch 5 Daten-Pakete gebildet wird, definiert sich die Datengröße der zugehörigen Daten-Pakete
jeweils mit 64 Byte, 0 Byte, 64 Byte, 48 Byte und 64 Byte. In diesem
Fall entsprechen 0-Byte-Daten solchen Daten, bei denen eine Datenregion
gleich 0 Byte ist, und diese Daten besitzen nur einen Anfangbereich,
welcher auf ein Übertragungsziel
und dergleichen hinweist. Diese Daten werden gepuffert bis diese
Daten durch den Interrupt 210 in einem Batch-Modus verarbeitet
werden, und Informationen bezüglich
der Datengröße und dergleichen
werden in jedem dieser in dem Zustandsregister 309 eingesetzten
Register gespeichert. Eine willkürlich
ausgewählte
Nummer dieser Register 405 bis 411, welche darin
die Speicherdatengrößen jedes
Daten-Paketes speichern, kann zum Einsatz kommen. Da eine Massenübertragung zum Übertragen
von Kommunikationsdatenpaketen in einer nicht-periodischen Art und
Weise erfolgt und ferner 0-Byte-Daten gemäß der USB-Spezifikation übertragen
werden können,
wird solch ein Register 404 benötigt, welches darin eine Gesamtanzahl
von effektiven Paketen speichert, nämlich Informationen, welche
in der Lage sind, anzuzeigen, welcher Teil des Registers 405 bis 411 gültig ist.
-
Das
Beispiel von 3 zeigt, dass 5 Pakete empfangen
werden und 208-Byte-Daten werden als Gesamtdaten erzeugt. Es ist
erkennbar, dass obwohl in dem Register 406 gespeicherte
0-Byte-Daten gültig
sind, die in den beiden Registern 410 und 411 gespeicherte
0-Byte-Daten ungültig
sind. Wie oben erläutert,
können
die Daten auf flexible Art und Weise zusammengestellt werden, weil
die Aufteilung der Vielzahl von Paketen klar durch das Zustandsregister 309 definiert
ist, wenn der Interruptvorgang durchgeführt wird, der durch den Interrupt-Modus
B, verwaltet auf Basis der Zeit, erzeugt wird. Ferner kann das Register 403,
benutzt um darin die Datengrößen von
allen Daten zu speichern, in solch einem Fall benutzt werden, dass
die Daten zwischen dem Endpunkt-Puffer und einem weiteren Speicher
in dem DMA-Übertragungsmodus übertragen
werden. Es soll auch beachtet werden, dass während der Übertragung der Daten ausgeführte Vorgänge auf
eine ähnliche
Art und Weise durchgeführt
werden, wie solche, die durchgeführt
werden, wenn die Daten empfangen werden.
-
Wie
aus der oben erläuterten
Beschreibung ersichtlich, kann gemäß der Datenverarbeitungsvorrichtung,
die in dem seriellen Kommunikationssystem der vorliegenden Erfindung
benutzt wird, eine Gesamtzeit der Interrupt-Vorgänge auf der Seite der USB-Vorrichtung (Datenverarbeitungsvorrichtung) geregelt
werden, während
die zwei Arten von Interrupt-Modi miteinander kombiniert werden,
und zwar der Interrupt-Modus "A" (erster Interrupt-Modus)
wird mit dem Interrupt-Modus "B" (zweiter Interrupt-Modus)
kombiniert. Da die an der CPU angelegte Arbeitsbelastung reduziert
ist, kann die USB-Schnittstelle
(serielle Schnittstelle) mit dem zusammengestellten System bestückt oder
kombiniert werden. Zusätzlich
kann die Datenübertragungsrate
gleich der des konventionellen Systems beibehalten werden, sogar
wenn der Interrupt-Modus B benutzt wird, welcher basierend auf der
benutzten Zeit verwaltet wird.