-
HINTERGRUND
DER ERFINDUNG
-
1. Bereich
der Erfindung
-
Die
vorliegende Erfindung betrifft eine Technik, die ein Einloggen von
mehreren sich einloggenden Vorrichtungen in eine eingeloggte Vorrichtung über einen
vorbestimmten Kommunikationspfad erzielt. Genauer gesagt betrifft
die vorliegende Erfindung eine Technik, die vorzugsweise im Falle
einer Kommunikation zwischen mehreren Vorrichtungen gemäß einem
SBP(serielles Busprotokoll)-2-Protokoll
in einem System, in dem die Vorrichtungen gemeinsam über einen
IEEE1394-Bus verbunden sind, angewendet wird.
-
2. Beschreibung des Standes
der Technik
-
Der
IEEE1394 ist ein serieller Busstandard, der von der IEEE vorgeschlagen
wurde und zur Übertragung
von digitalen Daten verwendet wird, und ist durch "IEEE STD. 1394–1995 IEEE
Standard für
einen seriellen Hochleistungsbus" definiert.
-
Das
SBP-2-Protokoll (im folgenden als das SBP-2 bezeichnet) wird zur
Standardisierung von ANSI-X3T10 in den Vereinigten Staaten empfohlen und
ist ein Protokoll einer Transportschicht, die konform mit dem IEEE1394-Standard
entwickelt ist.
-
In
einem System, in dem mehrere Vorrichtungen gemeinsam über einen
IEEE1394-Bus verbunden sind, wird in einem Fall, in dem das SBP-2 zur
Kommunikation zwischen den Vorrichtungen angewendet wird, die Vorrichtung,
die einen allgemeinen Speicher aufweist, als Initiator bezeichnet,
und die Vorrichtung, die den allgemeinen Speicher nicht aufweist,
wird als ein Ziel bezeichnet.
-
Das
Ziel weist mindestens eine logische Einheit auf, die jeweils einen
Dienst bereitstellt. Der Initiator erfordert ein Einloggen in die
logische Einheit, die in dem Ziel enthalten ist, und das Erhalten
eines Rechts zur Verwendung der logischen Einheit, die den Dienst
bereitstellt. Entsprechend einer konkreten Prozedur gibt der Initiator
eine Anforderung eines Einloggens an die logische Einheit, die in
dem Ziel enthalten ist, aus und empfängt eine Antwort hinsichtlich
des Akzeptierens des Einloggens von der logischen Einheit.
-
Wenn
die Verwendung der logischen Einheit beendet ist, loggt sich der
Initiator aus der logischen Einheit, die in dem Ziel enthalten ist,
aus und gibt das Recht zur Verwendung der logischen Einheit auf.
Entsprechend einer konkreten Prozedur gibt der Initiator eine Anforderung
des Ausloggens an die logische Einheit, die in dem Ziel enthalten
ist, aus und empfängt
eine Antwort hinsichtlich des Akzeptierens des Ausloggens von der
logischen Einheit.
-
Eine
Anzahl von Initiatoren, die sich gleichzeitig Einloggen können (eine
erlaubte Anzahl von gleichzeitigen Einloggungen) wird im Voraus
in der Entwicklungsstufe in Bezug auf jede logische Einheit, die
in dem Ziel enthalten ist, bestimmt. In dem Fall, in dem die Anzahl
der Initiatoren, die derzeitig in eine bestimmte logische Einheit,
die in dem Ziel enthalten ist, eingeloggt sind, die erlaubte Anzahl
von gleichzeitigen Einloggungen, die in Bezug auf die logische Einheit
eingestellt ist, erreicht, gibt die logische Antwort eine Antwort
hinsichtlich des Fehlschlagens des Einloggens zu jedem anderen Initiator, der
noch nicht eingeloggt ist und derzeitig eine Anforderung eines Einloggens
ausgibt, aus.
-
Nach
dem Empfang der Antwort hinsichtlich des Fehlschlagens des Einloggens,
die von der logischen Einheit ausgegeben wird, gibt der Initiator
wiederholt die Anforderung eines Einloggens an die logische Einheit
in voreingestellten Zeitintervallen aus, um eine Antwort hinsichtlich
des Akzeptierens des Einloggens zu erhalten. Wenn sich einer der
Initiatoren, die in die logische Einheit eingeloggt sind, ausloggt,
wird die Anzahl der Initiatoren, die in der logischen Einheit eingeloggt
sind, kleiner als die erlaubte Anzahl von gleichzeitigen Einloggungen.
Beim Empfang einer nächsten
Anforderung eines Einloggens von dem Initiator, der wiederholt die
Anforderung eines Einloggens ausgibt, gibt die logische Einheit
eine Antwort hinsichtlich des Akzeptierens des Einloggens an den
Initiator aus. Der Initiator, der wiederholt die Anforderung eines
Einloggens ausgegeben hat, ist dementsprechend beim Einloggen in
die logische Einheit erfolgreich und erlangt ein Recht zur Verwendung
der logischen Einheit.
-
Die
folgenden Probleme treten jedoch in der Technik gemäß dem Stand
der Technik auf. In einem Beispiel wird angenommen, dass ein erster
Initiator zuerst eine Anforderung eines Einloggens an eine bestimmte
logische Einheit, die in dem Ziel enthalten ist, ausgibt, und ein
zweiter Initiator danach eine Anforderung eines Einloggens an die
bestimmte logische Einheit auszugeben beginnt, während die Anzahl der Initiatoren,
die derzeitig in der bestimmten logischen Einheit eingeloggt sind,
die erlaubte Anzahl von gleichzeitigen Einloggungen erreicht. Unter
einer derartigen Bedingung fahren sowohl der erste Initiator als
auch der zweite Initiator fort, die Anforderung eines Einloggens
an die logische Einheit zu unter schiedlichen Zeitpunkten mit voreingestellten
Zeitintervallen auszugeben. Wenn irgendeiner der Initiatoren, der
in der logischen Einheit eingeloggt ist, sich ausloggt, gibt in
einigen Fällen
der erste Initiator eine nächste
Anforderung eines Einloggens zu einem früheren Zeitpunkt als dem Zeitpunkt
aus, zu dem der zweite Initiator eine nächste Anforderung eines Einloggens
ausgibt. In diesem Fall erlangt der Initiator, der das Ausgeben
einer Anforderung eines Einloggens zuerst begonnen hat, die Möglichkeit,
sich zuerst einzuloggen. Dieses verursacht kein Problem. In anderen
Fällen
jedoch gibt der erste Initiator eine nächste Anforderung eines Einloggens
zu einem späteren
Zeitpunkt als dem Zeitpunkt, zu dem der zweite Initiator eine nächste Anforderung
eines Einloggens ausgibt, aus. In diesem Fall erlangt der zweite
Initiator, der später
begonnen hat, die Anforderung eines Einloggens auszugeben, die Möglichkeit
des Einloggens vor dem ersten Initiator.
-
Wenn
andere Initiatoren zusätzlich
zum zweiten Initiator starten, die Anforderung eines Einloggens
auszugeben, können
diese Initiatoren sich vor dem ersten Initiator in die logische
Einheit einloggen. In diesem Fall braucht der erste Initiator eine
unerwünscht
lange Zeit, um sich in die logische Einheit einloggen zu können und
ein Recht zur Verwendung der logischen Einheit zu erlangen.
-
Das
Dokument
US 5734909 beschreibt
ein Verfahren und ein System zum Steuern des Sperrens und Entsperrens
(locking and unlocking) von Systemressourcen in einer verteilten
Computerumgebung mit geteilten Ressourcen. Informationen über eine
Warteanforderung werden in Steuerstrukturen bewahrt; dann wird derselbe
Prozess, der eine Ressource freigibt, verwendet, um auf in einer
Warteschlange angeordnete Anforderungen für diese Ressource zu antworten.
Ein Computerprozessor führt Prozesskommunikationen
mit mehreren fernen Computerprozessoren über ein Netzwerk durch. Das Computersystem
weist mehrere Ressourcen, die mit einem Zentralcomputer verbunden
sind, auf. Ein Client fordert den Zugriff auf eine Ressource wie
z.B. eine Serverdatendatei an, wenn der Client die Ressource nutzen
muss. Der Zugriff auf die Ressourcen wird verwaltet, wenn mehrere
Clients versuchen, dieselben Ressourcen gleichzeitig zu verwenden.
Um komplexe Sperrstrukturen und ein Ausbilden von Warteschlangen
für die
Sperrungen einer Ressource zu vermeiden, wird vorgeschlagen, Sperrungen
zurückzuweisen,
wenn ein Wettbewerb vorhanden ist, wobei der Anforderer der Sperrung
aufgefordert wird, die Sperrung zu einem späteren Zeitpunkt erneut zu versuchen.
-
Das
Dokument
US 4199661 beschreibt
ein Verfahren und eine Vorrichtung zum Eliminieren von Konflikten
auf einem Kommunikationskanal, und insbesondere auf einem geteilten
Kommunikationskanal, der mehrere aktive Stationen aufweist, die
jeweils in der Lage sind, die Verwendung des Kanals aufzunehmen.
Ein Zähler
an jeder Station enthält eine
Darstellung der Identität
der Station, die die derzeitige Möglichkeit hat, die Verwendung
des Kanals aufzunehmen. Die Darstellung wird sequentiell geändert, um
jeder Station die Möglichkeit
zu geben, die Verwendung des Kanals aufzunehmen, und jede Station,
der eine derartige Möglichkeit
nicht gegeben wird, wird daran gehindert, den Kanal zu verwenden. Die
Darstellungen in den Zählern
werden jedes Mal synchronisiert, wenn eine Station die Verwendung des
Kanals aufnimmt, und können
ebenfalls synchronisiert werden, wenn keine Station die Verwendung des
Kanals aufnimmt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Aufgabe
der vorliegenden Erfindung ist es somit, eine Technik bereitzustellen,
die praktisch gewährleistet,
dass ein Initiator, der mit dem Ausgeben einer Anforderung eines
Einloggens in ein Ziel zuerst beginnt, sich zuerst Einloggen kann.
-
Zumindest
ein Teil der obigen und der weiteren betreffenden Aufgaben wird
durch eine eingeloggte Vorrichtung, in die von mehreren bestimmten Vorrichtungen über einen
vorbestimmten Kommunikationspfad eingeloggt wird, gelöst. Die
eingeloggte Vorrichtung enthält:
eine Antworteinheit, die eine Antwort hinsichtlich des Fehlschlagens
eines Einloggens an eine bestimmte interessierende Vorrichtung gibt, die
gerade einer Anforderung eines Einloggens ausgegeben hat, wenn eine
Anzahl von bestimmten Vorrichtungen, die derzeitig in der eingeloggten
Vorrichtung eingeloggt sind, eine vorbestimmte erlaubte Anzahl von
gleichzeitigen Einloggungen erreicht; und eine Wiederanforderungszeitpunktbestimmungseinheit,
die einen Zeitpunkt der Wiederanforderung eines Einloggens bestimmt,
um einen Zeitpunkt festzulegen, wann die bestimmte interessierende
Vorrichtung, die gerade die Anforderung eines Einloggens ausgegeben
hat und die Antwort hinsichtlich des Fehlschlagens eines Einloggens
empfangen hat, eine weitere Anforderung des Einloggens ausgeben sollte.
-
In
der eingeloggten Vorrichtung der vorliegenden Erfindung gibt in
dem Fall, in dem die Anzahl der bestimmten Vorrichtungen, die derzeitig
in der eingeloggten Vorrichtung eingeloggt sind, eine vorbestimmte
erlaubte Anzahl von gleichzeitigen Einloggungen erreicht, die Antworteinheit
die Antwort hinsichtlich des Fehlschlagens des Einloggens an die bestimmte
interessierende Vorrichtung, die gerade die Anforderung eines Einloggens
ausgegeben hat, aus. Die Wiederanforderungszeitpunktbestim mungseinheit
bestimmt dann den Zeitpunkt der Wiederanforderung des Einloggens,
um den Zeitpunkt festzulegen, wann die bestimmte interessierende
Vorrichtung, die gerade die Antwort hinsichtlich des Fehlschlagens
des Einloggens empfangen hat, eine weitere Anforderung des Einloggens
ausgeben sollte.
-
In
der eingeloggten Vorrichtung der vorliegenden Erfindung kann die
Wiederanforderungszeitpunktbestimmungseinheit unterschiedliche Zeitpunkte
der Wiederanforderung eines Einloggens den bestimmten Vorrichtungen,
die auf das Einloggen warten, zuweisen. Der Zeitpunkt der Wiederanforderung eines
Einloggens wird somit bestimmt, um es der bestimmten interessierenden
Vorrichtung, die die Anforderung eines Einloggens zuerst ausgegeben
hat, zu ermöglichen
das Einloggen zuerst durchzuführen. Diese
Anordnung gewährleistet
praktisch, dass die bestimmte Vorrichtung, die das Ausgeben der
Anforderung eines Einloggens zuerst an die eingeloggte Vorrichtung
gestartet hat, das Einloggen zuerst durchführt.
-
In
dieser Beschreibung ist das Einloggen ein Prozess des Erlangens
eines Rechtes zur Verwendung der eingeloggten Vorrichtung.
-
Gemäß einer
bevorzugten Anwendung der eingeloggten Vorrichtung enthält die Wiederanforderungszeitpunktbestimmungseinheit: eine
Vorrangbestimmungseinheit, die der bestimmten interessierenden Vorrichtung,
die gerade die Anforderung eines Einloggens ausgegeben hat, eine Ordnungsnummer
des Vorrangs zuweist, und eine Wiederanforderungszeitpunktfestlegungseinheit,
die den Zeitpunkt der Wiederanforderung eines Einloggens in Bezug
auf die bestimmte interessierende Vorrichtung auf der Grundlage
der Ordnungsnummer des Vorrangs, die der bestimmten interessierenden Vorrichtung
zugewiesen ist, festlegt.
-
Diese
Anordnung ermöglicht
es, den Zeitpunkt der Wiederanforderung eines Einloggens entsprechend
der Ordnungsnummer des Vorrangs, die der jeweiligen bestimmten Vorrichtung,
die auf das Einloggen wartet, zugewiesen ist, zu bestimmen.
-
Entsprechend
einer anderen bevorzugten Anwendung der vorliegenden Erfindung enthält die eingeloggte
Vorrichtung mindestens eine logische Einheit, in die unabhängig von
jeder der bestimmten Vorrichtungen eingeloggt wird. Die Antworteinheit gibt
eine Antwort hinsichtlich des Fehlschlagens des Einloggens in Bezug
auf eine bestimmte logische Einheit an eine bestimmte interessierende
Vorrichtung aus, die gerade eine Anforderung eines Einloggens an
die bestimmte logische Einheit ausgegeben hat, wenn eine Anzahl
der bestimmten Vorrichtungen, der derzeitig in der bestimmten logischen
Einheit eingeloggt sind, eine erlaubte Anzahl von gleichzeitigen
Einloggungen, die für
die bestimmte logische Einheit eingestellt ist, erreicht. Die Wiederanforderungszeitpunktbestimmungseinheit bestimmt
einen Zeitpunkt der Wiederanforderung eines Einloggens, um einen
Zeitpunkt festzulegen, wann die bestimmte interessierende Vorrichtung,
die grade die Anforderung eines Einloggens an die bestimmte logische
Einheit ausgegeben hat und die Antwort hinsichtlich des Fehlschlagens
des Einloggens empfangen hat, eine weitere Anforderung eines Einloggens
an die bestimmte logische Einheit ausgeben sollte.
-
In
der Struktur, bei der die eingeloggte Vorrichtung eine oder mehrere
logische Einheiten enthält,
in die unabhängig
eingeloggt wird, ermöglicht diese
Anordnung, dass der Zeitpunkt der Wiederanforderung eines Einloggens,
zu dem die bestimmte. Vorrichtung eine weitere An forderung eines
Einloggens ausgeben sollte, in Bezug auf jede logische Einheit bestimmt
werden kann.
-
Die
vorliegende Erfindung ist ebenfalls auf eine Einlogg-Vorrichtung
gerichtet, die sich in eine bestimmte Vorrichtung über einen
vorbestimmten Kommunikationspfad einloggt. Die Einlogg-Vorrichtung
enthält
eine Einlogg-Anforderungseinheit,
die eine Anforderung eines Einloggens an die bestimmte Vorrichtung
ausgibt und, wenn sie eine Antwort hinsichtlich des Fehlschlagens
des Einloggens und eine Bestimmung eines Zeitpunkts der Wiederanforderung
von der bestimmten Vorrichtung empfängt, eine weitere Anforderung
eines Einloggens an die bestimmte Vorrichtung zu dem bestimmten
Zeitpunkt der Wiederanforderung ausgibt.
-
In
der Einlogg-Vorrichtung der vorliegenden Erfindung gibt die Einlogg-Anforderungseinheit
die Anforderung eines Einloggens erneut an die bestimmte Vorrichtung
zu dem Zeitpunkt der Wiederanforderung eines Einloggens, der von
der bestimmten Vorrichtung bestimmt wird, aus. Der Zeitpunkt der Wiederanforderung
eines Einloggens kann bestimmt werden, um es der bestimmten Vorrichtung,
die die Anforderung eines Einloggens zuerst ausgegeben hat, zu ermöglichen
sich zuerst einzuloggen. Diese Anordnung gewährleistet praktisch, dass die
bestimmte Vorrichtung, die das Ausgeben der Anforderung eines Einloggens
in die eingeloggte Vorrichtung zuerst gestartet hat, sich zuerst
einloggen kann.
-
Die
vorliegende Erfindung ist außerdem
auf ein System zur Kommunikation zwischen Vorrichtungen gerichtet,
bei dem in eine eingeloggte Vorrichtung von mehreren Einlogg-Vorrichtungen über einen vorbestimmten
Kommunikationspfad eingeloggt wird. Die eingeloggte Vorrichtung
enthält:
eine Antworteinheit, die eine Antwort hinsichtlich des Fehlschlagens des
Einloggens an eine interessierende Einlogg-Vorrichtung ausgibt,
die grade eine Anforderung eines Einloggens ausgegeben hat, wenn
eine Anzahl der Einlogg-Vorrichtungen, die derzeitig in die eingeloggte
Vorrichtung eingeloggt sind, eine vorbestimmte erlaubte Anzahl von
gleichzeitigen Einloggungen erreicht, und eine Wiederanforderungszeitpunktbestimmungseinheit,
die einen Zeitpunkt der Wiederanforderung des Einloggens bestimmt,
um einen Zeitpunkt festzulegen, wann die interessierende Einlogg-Vorrichtung,
die grade die Anforderung eines Einloggens ausgegeben hat und die
Antwort hinsichtlich des Fehlschlagens des Einloggens empfangen
hat, eine weitere Anforderung eines Einloggens ausgeben sollte.
Jede der Einlogg-Vorrichtungen enthält eine Einlogg-Anforderungseinheit,
die die Anforderung eines Einloggens an die eingeloggte Vorrichtung
ausgibt und, wenn sie die Antwort hinsichtlich des Fehlschlagens
des Einloggens und die Bestimmung des Zeitpunktes der Wiederanforderung
von der eingeloggten Vorrichtung empfängt, eine weitere Anforderung
eines Einloggens an die eingeloggte Vorrichtung zu dem bestimmten
Zeitpunkt der Wiederanforderung ausgibt.
-
Das
System zur Kommunikation zwischen Vorrichtungen der vorliegende
Erfindung gewährleistet
praktisch, dass die Einlogg-Vorrichtung, die das Ausgeben der Anforderung
eines Einloggens an die eingeloggte Vorrichtung zuerst gestartet
hat, sich zuerst einloggen kann.
-
Die
vorliegende Erfindung ist ebenfalls auf ein Verfahren zum Steuern
des Einloggens gerichtet, um es mehreren Einlogg-Vorrichtungen zu
ermöglichen,
sich in mindestens eine logische Einheit, die in einer eingeloggten
Vorrichtung enthalten ist, über
einen vorbestimmten Kommunikationspfad einzuloggen. Das Verfahren
enthält
die Schritte: (a) Bewirken, dass die eingeloggte Vorrichtung eine
Antwort hinsichtlich des Fehlschlagens eines Einloggens in Bezug
auf eine bestimmte logische Einheit einer interessierenden Einlogg-Vorrichtung
gibt, die grade eine Anforderung eines Einloggens an die bestimmte
logische Einheit ausgegeben hat, wenn eine Anzahl von Einlogg-Vorrichtungen, die
derzeitig in die bestimmte logische Einheit eingeloggt sind, eine
erlaubte Anzahl von gleichzeitigen Einloggungen erreicht, die für die bestimmte
logische Einheit voreingestellt ist; (b) Bewirken, dass die eingeloggte
Vorrichtung einen Zeitpunkt der Wiederanforderung eines Einloggens bestimmt,
um einen Zeitpunkt festzulegen, wann die interessierende Einlogg-Vorrichtung, die
grade die Anforderung eines Einloggens an die bestimmte logische
Einheit ausgegeben hat und die Antwort hinsichtlich des Fehlschlagens
des Einloggens empfangen hat, eine weitere Anforderung eines Einloggens an
die bestimmte logische Einheit ausgeben sollte; und (c) Bewirken,
dass die interessierende Einlogg-Vorrichtung
eine weitere Anforderung eines Einloggens an die bestimmte logische
Einheit, die in der eingeloggten Vorrichtung enthalten ist, zu dem
vorbestimmten Zeitpunkt der Wiederanforderung ausgibt, wenn die
interessierende Einlogg-Vorrichtung die Antwort hinsichtlich des
Fehlschlagens des Einloggens in Bezug auf die bestimmte logische
Einheit und die Bestimmung des Zeitpunkts der Wiederanforderung
von der eingeloggten Vorrichtung empfängt.
-
In
dem Verfahren der vorliegenden Erfindung kann die eingeloggte Vorrichtung
den Einlogg-Vorrichtungen, die auf das Einloggen warten, unterschiedliche
Zeitpunkte der Wiederanforderung eines Einloggens zuweisen. Der
Zeitpunkt der Wiederanforderung eines Einloggens wird somit bestimmt,
um es der interessierenden Einlogg-Vorrichtung, die die Anforderung
eines Einloggens zuerst ausgegeben hat, zu ermöglichen sich zuerst einzuloggen.
Diese Anordnung gewährleistet
praktisch, dass sich die Einlogg- Vorrichtung,
die das Ausgeben der Anforderung eines Einloggens an die eingeloggte
Vorrichtung zuerst gestartet hat, zuerst einloggen kann.
-
Gemäß einer
bevorzugten Anwendung des Verfahrens enthält der Schritt (b) den Schritt
des Bewirkens, dass die eingeloggte Vorrichtung Ordnungsnummern
des Vorrangs den Einlogg-Vorrichtungen in einer Abfolge des Ausgebens
erster Anforderungen eines Einloggens an die bestimmte logische
Einheit zuweist, und einen kürzeren
Zeitpunkt der Wiederanforderung eines Einloggens einer Einlogg-Vorrichtung, die
eine größere Ordnungsnummer
des Vorrangs aufweist, zuweist. Diese Anordnung bewirkt, dass die
interessierende Einlogg-Vorrichtung, die die erste Anforderung eines
Einloggens zuerst ausgegeben hat, die höhere Ordnungsnummer des Vorrangs und
den kürzeren
Zeitpunkt der Wiederanforderung eines Einloggens aufweist. Im Vergleich
zu den anderen Einlogg-Vorrichtungen gibt die interessierende Einlogg-Vorrichtung,
die die erste Anforderung eines Einloggens zuerst ausgegeben hat,
eine weitere Anforderung eines Einloggens zu dem kürzesten
Zeitpunkt der Wiederanforderung aus, und gibt dadurch eine größte Anzahl
von Anforderungen eines Einloggens je Zeiteinheit aus. In dem Fall,
in dem sich eine der Einlogg-Vorrichtungen,
die sich eingeloggt hat, ausloggt, besteht eine gute Möglichkeit,
dass die interessierende Einlogg-Vorrichtung
die nächste
Anforderung eines Einloggens zuerst ausgibt und sich zuerst einloggt.
-
Die
vorliegende Erfindung ist außerdem
auf ein erstes Computerprogrammprodukt gerichtet, das bewirkt, dass
ein Computer eine Abfolge von eingeloggten Verarbeitungen ausführt, wobei
in den Computer von mehreren bestimmten Vorrichtungen über einen
vorbestimmten Kommunikationspfad eingeloggt wird. Das erste Computerprogrammprodukt enthält: einen
ersten Programmcode, der bewirkt, dass der Computer eine Antwort
hinsichtlich des Fehlschlagens eines Einloggens einer bestimmten interessierenden
Vorrichtung gibt, die grade eine Anforderung eines Einloggens ausgegeben
hat, wenn eine Anzahl bestimmter Vorrichtungen, die derzeitig in
die eingeloggte Vorrichtung eingeloggt sind, eine vorbestimmte erlaubte
Anzahl von gleichzeitigen Einloggungen erreicht; einen zweiten Programmcode, der
bewirkt, dass der Computer einen Zeitpunkt der Wiederanforderung
eines Einloggens bestimmt, um einen Zeitpunkt festzulegen, wann
die bestimmte interessierende Vorrichtung, die grade die Anforderung eines
Einloggens ausgegeben hat und die Antwort hinsichtlich des Fehlschlagens
des Einloggens empfangen hat, eine weitere Anforderung eines Einloggens
ausgeben sollte; und ein computerlesbares Medium, auf dem der erste
Programmcode und der zweite Programmcode gespeichert sind.
-
In
dieser Beschreibung kann der Computer ein Personalcomputer, ein
mobiler Computer, ein Informationsverarbeitungsterminal, eine Arbeitsstation, ein
beliebiger anderer Computer, eine beliebige periphere Einrichtung,
die praktisch die Funktionen des Computers aufweist, wie beispielsweise
ein Drucker, ein Kopiergerät
oder eine Schnittstellenschaltvorrichtung, oder eine beliebige Heim-
und Geschäftseinrichtung
sein, die praktisch die Funktionen des Computers aufweist, wie beispielsweise
eine Audioeinrichtung oder eine Videoeinrichtung. In der später beschriebenen
Ausführungsform
kann der Ausdruck "Computer" im engeren Sinne
verwendet werden und stellt einen Personalcomputer oder einen anderen äquivalenten
Computer dar.
-
Der
Computer führt
den ersten und den zweiten Programmcode zum Aktualisieren der Funktionen ähnlich denjenigen
der Antworteinheit und der Wiederanforderungszeitpunktbestimmungseinheit, die
in der eingeloggten Vorrich tung der vorliegenden Erfindung enthalten
sind, aus. Das erste Computerprogrammprodukt übt dementsprechend dieselben Wirkungen
wie diejenigen der oben beschriebenen eingeloggten Vorrichtung aus.
-
Gemäß einer
bevorzugten Anwendung des ersten Computerprogrammprodukts enthält der zweite
Programmccde einen Programmcode, der bewirkt, dass der Computer
Ordnungsnummern des Vorrangs den bestimmten Vorrichtungen in einer
Abfolge des Ausgebens der ersten Anforderungen eines Einloggens
zuweist und einen kürzeren
Zeitpunkt der Wiederanforderung eines Einloggens einer bestimmten Vorrichtung,
die eine höhere
Ordnungsnummer des Vorrangs aufweist, zuweist.
-
Diese
Anordnung bewirkt, dass die bestimmte interessierende Vorrichtung,
die die erste Anforderung eines Einloggens zuerst ausgegeben hat,
eine weitere Anforderung eines Einloggens zum kürzesten Zeitpunkt der Wiederanforderung
ausgibt und dadurch eine größte Anzahl
von Anforderungen des Einloggens je Zeiteinheit ausgibt. In dem
Fall, in dem sich eine der bestimmten Vorrichtungen, die sich eingeloggt
hat, ausloggt, besteht eine gute Möglichkeit, dass die bestimmte
interessierende Vorrichtung die nächste Anforderung eines Einloggens
zuerst ausgibt und sich zuerst einloggt.
-
Die
vorliegende Erfindung ist außerdem
auf ein zweites Computerprogrammprodukt gerichtet, das bewirkt,
dass ein Computer eine Folge von Einlogg-Verarbeitungen ausführt, wobei
sich der Computer in eine bestimmte Vorrichtung über einen vorbestimmten Kommunikationspfad
einloggt. Das zweite Computerprogrammprodukt enthält: einen
Programmcode, der bewirkt, dass der Computer eine Anforderung eines
Einloggens an die bestimmte Vorrichtung ausgibt und, wenn er eine
Antwort hinsichtlich des Fehl schlagens des Einloggens und eine Bestimmung
des Zeitpunkts der Wiederanforderung von der bestimmten Vorrichtung
empfängt,
eine weitere Anforderung eines Einloggens an die bestimmte Vorrichtung
zu dem bestimmten Zeitpunkt der Wiederanforderung ausgibt; und ein
computerlesbares Medium, auf dem das Computerprogramm gespeichert ist.
-
Der
Computer führt
den Programmcode aus, um die Funktionen ähnlich denjenigen der Einlogg-Anforderungseinheit,
die in der Einlogg-Vorrichtung der vorliegenden Erfindung enthalten
ist, zu aktualisieren. Das zweite Computerprogrammprodukt übt dementsprechend
dieselben Wirkungen wie diejenigen der Einlogg-Vorrichtung, die
oben beschrieben wurde, aus.
-
Das
Prinzip der vorliegenden Erfindung kann durch eine Vielzahl von
Anwendungen, beispielsweise durch die eingeloggte Vorrichtung, die
Einlogg-Vorrichtung, das System zur Kommunikation zwischen Vorrichtungen
und das Verfahren zum Steuern des Einloggens, die oben beschrieben
wurden, ebenso wie durch Computerprogramme, die eine beliebige derartiger
Vorrichtungen bilden, Aufzeichnungsmedien, in denen die Computerprogramme
aufgezeichnet sind, sowie Datensignale, die die Computerprogramme
enthalten und in Trägern
verkörpert
sind, erzielt werden.
-
Diese
und weitere Aufgaben, Merkmale, Aspekte und Vorteile der vorliegenden
Erfindung werden anhand der folgenden genaueren Beschreibung der
bevorzugten Ausführungsform
und den zugehörigen
Zeichnungen deutlich.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Es
zeigen:
-
1 ein
Blockdiagramm, das ein System zur Kommunikation zwischen Vorrichtungen
in einer Ausführungsform
gemäß der vorliegenden
Erfindung darstellt,
-
2 ein
Blockdiagramm, das die Hardwarestruktur eines Computers und eines
Druckers, die jeweils als Initiator und als Ziel der 1 dienen, zeigt,
-
3 ein
Flussdiagramm, das eine Verarbeitungsroutine eines Einloggens, die
durch einen der in 1 gezeigten Initiatoren ausgeführt wird, zeigt,
-
4 ein
Flussdiagramm, das eine Verarbeitungsroutine eines Einloggens, die
von dem in 1 gezeigten Ziel ausgeführt wird,
zeigt,
-
5 ein
Zeitdiagramm, das zur Übertragung
von Anforderungen und Antworten zwischen den jeweiligen Initiatoren
und dem Ziel, die in 1 gezeigt sind, zeigt,
-
6A bis 6H jeweils
eine beispielhafte Warteschlange, die in einem Verwaltungsagenten ME1
enthalten ist,
-
7 eine
beispielhafte Zeitkonstantentabelle, die in dem Verwaltungsagenten
ME1 enthalten ist, und
-
8 ein
Flussdiagramm, das eine Verarbeitungsroutine eines Ausloggens, die
von dem in 1 gezeigten Ziel ausgeführt wird,
zeigt.
-
BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Ein
Modus zur Durchführung
der vorliegenden Erfindung wird unten als eine bevorzugte Ausführungsform
der vorliegenden Erfindung beschrieben. Vor der Beschreibung der Ausführungsform werden
ein IEEE1394-Bus und ein SBP-2 skizziert.
-
(A) Skizzierung des IEEE1394-Bus
und des SBP-2
-
Der
IEEE1394-Bus wird durch Serialisieren von Prozessorbussen, die einen
Adressraum von 64 Bit aufweisen, auf einer identischen Signalleitung,
erhalten. Die Übertragungsgeschwindigkeit
des IEEE1394-Bus beträgt
bisher 400 MHz, aber es wird in Zukunft erwartet, dass sie sich
auf maximal 3,2 GHz erhöht.
Der IEEE1394-Bus ähnelt
grundlegend den herkömmlichen
Prozessorbussen, die auf einem Motherboard eines Computers verwendet
werden, unterstützt
aber einen großen
Speicherraum durch eine einzige Signalleitung.
-
Der
IEEE1394-Bus wird nicht ausschließlich für einen Prozessor verwendet,
sondern verbindet mehrere Prozessoren miteinander. Dieses ist äquivalent
zu einer Zuordnung des Speicherraums, der von einem Bus belegt wird,
in den Prozessoren. Die Prozessoren verwenden gemeinsam einen Signalpfad. Dieses
erzielt eine Situation, die einem Netzwerk sehr ähnelt.
-
Mehrere
Computer können
mit einem IEEE1394-Bus verbunden werden. Außerdem ermöglicht die Verbindung eines
Druckers mit dem IEEE1394-Bus eine geteilte Verwendung des Druckers
von mehreren Computern. Dieses wird als ein Netzwerk geringer Größe betrachtet.
-
Entgegen
dem allgemeinen Netzwerk folgt der IEEE1394-Bus jedoch dem Entwurf der Prozessorbusse
und ermöglicht
im Wesentlichen die Verwaltung von Anforderungen, die von den jeweiligen Prozessoren
ausgegeben werden, ohne jegliche Kollision. Dieser Mechanismus wird
Busarbitration genannt. Während
des Datentransfers für
den IEEE1394-Bus ermöglicht
es die Busarbitration nur einem Knoten (in diesem Fall einem Computer),
den Datentransfer auszuführen.
Mit anderen Worten verhindert, wenn ein bestimmter Knoten den IEEE1394-Bus
belegt, die Steuerung, dass die anderen Knoten den Bus in derselben
Zykluszeit (125 μms)
verwenden. Der IEEE1394-Bus benötigt
dementsprechend nicht die Technik der Steuerung der ausschließlichen
Ressourcen, die in dem allgemeinen Netzwerk verwendet wird, wie
beispielsweise das Erfassen von Trägern oder das Erfassen von
Kollisionen (Kollisionen von Paketen). Da der IEEE1394-Bus keine
Erfassung von Kollisionen ausführt,
sollte ein Protokoll einer oberen Schicht oder ein Anwendungsprogramm
für den
Wettbewerb um die Ressourcen zuständig sein.
-
Das
SBP-2 ist andererseits auf einer Verbindungsbasis ausgelegt. D.h.,
eine Host-Vorrichtung, die die Verwendung eines bestimmten Ziels
des SBP-2 fordert, sollte als ein Initiator des SBP-2 ausgelegt
sein. Der Initiator gibt eine Anforderung eines Einloggens an das
Ziel und erlangt ein Recht zur Verwendung des Ziels nur in dem Fall
eines akzeptierten Einloggens. Genauer gesagt erfordert der Initiator
ein Einloggen in Bezug auf jede logische Einheit, die in dem Ziel
enthalten ist. Aus Gründen
der Klarheit der Darstellung wird jedoch angenommen, dass der Initiator
einfach eine Anforderung eines Einloggens an das Ziel ausgibt. Sogar
wenn nur ein Ziel für
mehrere Initiatoren vorhanden ist, kann nur der Initiator mit dem
akzeptierten Einloggen in dem Moment das Ziel verwenden. Diese Anordnung
ermöglicht
es, dass mehrere Initiatoren das Ziel teilen.
-
Die
Spezifikation des SBP-2 verhindert nicht, dass sich mehrere Initiatoren
in ein Ziel einloggen. Das gleichzeitige Einloggen durch mehrere
Initiatoren kann somit erlaubt werden, so lange wie das Ziel ausgelegt ist,
die gleichzeitigen Einloggungen zu akzeptieren. Die Anzahl der Initiatoren,
die sich gleichzeitig einloggen können, d.h. die erlaubte Anzahl
von gleichzeitigen Einloggungen wird in der Entwicklungsstufe des
Ziels entsprechend den Entwicklungsgrenzen bestimmt. In einigen
Fällen,
in denen ein bestimmtes Ziel die erlaubte Anzahl N von gleichzeitigen
Einloggungen aufweist, geben M Initiatoren (wobei M größer als
N ist) die Anforderung eines Einloggens an das bestimmte Ziel aus.
In diesen Fällen
akzeptiert das Ziel das Einloggen bis zu N Initiatoren, weist aber
jede anschließende
Anforderung eines Einloggens zurück,
bis die Anzahl der Initiatoren, die gleichzeitig eingeloggt sind,
kleiner als N wird, d.h. bis sich irgendeiner der Initiatoren, die
eingeloggt sind, ausloggt.
-
In
dem SBP-2 sind die Initiatoren mit den Zielen über den IEEE1394-Bus verbunden.
Der IEEE1394-Bus ermöglicht
es den Zielen, Daten von den Speichern der Initiatoren zu lesen
und in diese zu schreiben. Wie zuvor erwähnt werden in dem SBP-2 die
Vorrichtungen, die allgemeine Speicher aufweisen, Initiatoren genannt,
während
die Vorrichtungen, die den allgemeinen Speicher nicht aufweisen,
Ziele genannt werden. Es ist nicht notwendig, dass sowohl die Initiatoren
als auch die Ziele allgemeine Speicher aufweisen. Es ist nämlich ausreichend,
dass nur die Initiatoren allgemeine Speicher aufweisen. Jeder der Initiatoren
weist einen allgemeinen Speicher als Teil seines eigenen Speichers
auf und ermöglicht
es dementsprechend, dass Daten durch den lokalen Zugriff gelesen
und geschrieben werden können.
Jeder der Ziele verwendet andererseits einen Teil des Speichers,
der dem Initiator als der allgemeine Speicher gehört, und
muss Daten durch den Fernzugriff lesen und schreiben. Die Rollen
der jeweiligen Vorrichtungen als Initiatoren und Ziele werden in
der Anfangsstufe des Entwicklungsprozesses bestimmt. Im All gemeinen
werden die Hostvorrichtungen, beispielsweise Computer, als Initiatoren
definiert, und die Vorrichtungen wie beispielsweise der Drucker
und der Scanner werden als die Ziele definiert. Diese Rollen sind festgelegt
und werden im Prinzip nicht geändert,
obwohl es ein Entwurf erlauben kann, dass sich die Rolle einer Vorrichtung
beispielsweise über
einen Schalter von dem Ziel zum Initiator ändert.
-
Wenn
sich der Initiator in das Ziel einloggt, läuft folgendes in dem SBP-2
ab.
-
Der
Initiator stellt zunächst
eine bestimmte Datenstruktur, die ORB (Betriebsanforderungsblock) genannt
wird, auf seinem eigenen allgemeinen Speicher bereit und hält die Daten,
die an das Ziel zu geben sind, in dem ORB. In einem Beispiel ist
der Initiator ein Computer und das Ziel ist ein Drucker. In diesem
Fall hält
der Computer, der als der Initiator dient, die Bilddaten, die durch
den Drucker, der als das Ziel dient, zu drucken sind, in einem bestimmten
Teil des allgemeinen Speicherraums und speichert einen Adresszeiger,
der den bestimmten Teil anzeigt, an einer vorbestimmten Position
in dem ORB. Diese Anordnung ermöglicht
es, dass der Initiator die benötigte
Verarbeitung mit der größtmöglichen
Geschwindigkeit unabhängig
von dem Zustand des Ziels durchführt.
Das Ziel nimmt andererseits aufeinander folgend die ORBs auf, die
in dem allgemeinen Speicher des Initiators platziert sind, und verarbeitet
die Inhalte in den ORBs. Der Drucker, der als das Ziel dient, nimmt
einen nächsten
Satz von Bilddaten auf und verarbeitet diese unmittelbar nachdem
der Drucker das Drucken eines bestimmten Satzes von Bilddaten beendet
hat, um einen Freiraum in seinem eigenen Speicher bereitzustellen.
Der Drucker fährt dementsprechend
mit dem Drucken ohne Rest fort und verarbeitet die Jobs mit der
größtmöglichen
Effizienz.
-
Das
herkömmliche
Netzwerk führt
eine Steuerung vom Push-Typ durch, wobei der Initiator den Zustand
des Ziels abruft und einen Befehl sendet, wenn das Ziel für die Akzeptierung
der Anforderung bereit ist. Das SBP-2 führt andererseits eine Steuerung
vom Pull-Typ aus, wobei der Initiator einen Befehl und Daten in
seinem eigenen Speicherraum hält, die
dem Ziel zu geben sind, und das Ziel nimmt den Befehl und die Daten
zur Verarbeitung zu einem für ihn
geeigneten Zeitpunkt auf, der die Verarbeitung gewährleistet.
Diese Anordnung des SBP-2 verbessert die Gesamteffizienz der Durchführung.
-
(B) Struktur der Ausführungsform
-
Auf
der Grundlage eines derartigen Wissens wird eine Ausführungsform
der vorliegenden Erfindung anhand der Zeichnung der 1 beschrieben. 1 ist
ein Blockdiagramm, das ein System zur Kommunikation zwischen Vorrichtungen
gemäß der Ausführungsform
der vorliegenden Erfindung darstellt, das mehrere Initiatoren und
ein Ziel enthält.
In dem System zur Kommunikation zwischen Vorrichtungen der 1 sind
die jeweiligen Vorrichtungen über
einen IEEE1394-Bus B1 verbunden und kommunizieren entsprechend dem
SBP-2-Protokoll miteinander. Die Vorrichtungen, die mit dem IEEE1394-Bus
B1 verbunden sind, beinhalten Initiatoren I0 bis I3, die allgemeine
Speicher aufweisen, und ein Ziel T1 ohne den allgemeinen Speicher.
In dieser Ausführungsform
sind die Initiatoren I0 bis I3 Computer, und das Ziel T1 ist ein
Drucker.
-
Die
Initiatoren I0 bis I3 weisen jeweils Steuerungen C0 bis C3 und allgemeine
Speicher SM0 bis SM3 auf.
-
Das
Ziel T1 weist eine logische Einheit LUN1 auf. Wie zuvor beschrieben
kann der Initiator das Einloggen für jede logische Einheit, die
in dem Ziel enthalten ist, durchführen. In dieser Ausführungsform weist
das Ziel T1 nur eine logische Einheit LUN1 auf, so dass die Initiatoren
I0 bis I3 das Einloggen nur für diese
logische Einheit LUN1 des Ziels T1 erlangen können.
-
Wie
zuvor beschrieben weist jede logische Einheit, die in dem Ziel enthalten
ist, die voreingestellte Anzahl von Initiatoren auf, die gleichzeitig
ein Einloggen durchführen
können,
d.h. die erlaubte Anzahl von gleichzeitigen Einloggungen, die in
der Entwurfsstufe festgelegt wird. Zur Vereinfachung der Darstellung
weist die logische Einheit LUN1, die in dem Ziel T1 enthalten ist,
eine erlaubte Anzahl von gleichzeitigen Einloggungen von "1" auf. Nach dem Akzeptieren des Einloggens
von irgendeinem der Initiatoren weist die logische Einheit LUN1
weitere anschließende
Anforderungen eines Einloggens zurück.
-
Die
logische Einheit LUN1, die in dem Ziel T1 enthalten ist, weist einen
Verwaltungsagenten ME1, der eine Anforderung eines Einloggens oder
eines Ausloggens von dem Initiator empfängt und eine geeignete Antwort
an den Initiator ausgibt, und einen Hohlagenten FE1 auf, der Daten
zu und von dem Initiator überträgt, der
das Einloggen durchgeführt
hat.
-
2 ist
ein Blockdiagramm, das die Hardwarestruktur eines Computers und
eines Druckers, die jeweils als Initiator und Ziel der 1 dienen,
darstellt.
-
Wie
es in 2 gezeigt ist, enthält der Computer 100,
der als der Initiator dient, eine CPU 102, die verschiedene
Prozesse und Steuerungen entsprechend Computerprogrammen ausführt, und
einen Speicher 104, in dem die Computerprogramme gespeichert
sind und Daten, die im Ver laufe der Verarbeitung erhalten werden,
zeitweilig registriert werden. Der Computer 100 enthält außerdem eine I/O-Einheit 106,
die für
die Datenübertragung
zwischen der CPU 102 und den verschiedenen peripheren Vorrichtungen
und dem IEEE1394-Bus B1 zuständig
ist, eine Festplatte 108, auf der verschiedene Daten gespeichert
sind, und ein CD-ROM-Laufwerk 110. Eine Tastatur 112 und
eine Maus 114, die zum Eingeben von Befehlen von Nutzern
verwendet werden, und ein Monitor 116, der zum Anzeigen
von Daten verwendet wird, sind extern mit dem Computer 100 verbunden.
-
Die
CPU 102 liest ein gewünschtes
Computerprogramm, das in dem Speicher 104 gespeichert ist,
aus, und führt
dieses aus, wodurch sie als die in 1 gezeigte
Steuerung dient. Ein Teil des Speichers 104 ist dem allgemeinen
Speicher der 1 zugeordnet.
-
Der
Drucker 200, der als das Ziel dient, enthält eine
CPU 202, die verschiedene Prozesse und Steuerungen entsprechend
Computerprogrammen ausführt,
und einen Speicher 204, in dem die Computerprogramme gespeichert
sind und Daten, die im Verlaufe der Verarbeitung erhalten werden,
zeitweilig registriert werden. Der Drucker 200 enthält außerdem eine
I/O-Einheit 206, die für
die Datenübertragung
zwischen der CPU 202 und den verschiedenen peripheren Vorrichtungen
und dem IEEE1394-Bus B1 zuständig
ist, einen Druckermechanismus 208, der einen Druckbetrieb
zum Drucken eines Bildes auf ein Druckpapier auf einen Befehl von
der CPU 202 hin ausführt,
und einen Eingangspuffer 210, in dem Druckdaten zeitweilig
registriert werden.
-
Die
CPU 202 liest ein gewünschtes
Computerprogramm, das in dem Speicher 204 gespeichert ist,
aus und führt
dieses aus, wodurch sie als die logische Einheit der 1 wirkt.
-
In
dieser Ausführungsform
sind die Computerprogramme, die in dem Speicher 104 des
Computers 100 gespeichert sind, in der Form einer Aufzeichnung
auf einer CD-ROM 111 als Aufzeichnungsmedium vorgesehen
und werden von dem CD-ROM-Laufwerk 110 ausgelesen,
um in den Computer 100 aufgenommen zu werden. Die eingegebenen
Computerprogramme werden zur Festplatte 108 und außerdem zum
Speicher 104 nach Bedarf, beispielsweise zum Zeitpunkt
der Aktivierung transferiert. Die eingegebenen Computerprogramme
können
alternativ nicht über
die Festplatte 108, sondern direkt zum Speicher 104 transferiert
werden.
-
In
dem Drucker 200 ist andererseits ein Teil des Speichers 204 als
ein ROM aufgebaut. Die Computerprogramme für den Drucker 200 sind
in dem ROM gespeichert und in Form einer Aufzeichnung in dem ROM-Chip
vorgesehen. Der Teil des Speichers 104 kann an Stelle des
ROM alternativ als ein wiederbeschreibbarer nichtflüchtiger
Speicher aufgebaut sein. In dieser alternativen Struktur sind die
Computerprogramme für
den Drucker 200 in Form einer Aufzeichnung in der CD-ROM 111 vorgesehen.
Die Computerprogramme werden von dem CD-ROM-Laufwerk 110 des
Computers 100 gelesen und zum Drucker 200 über ein
Netzwerk (nicht gezeigt) transferiert, um in den nicht flüchtigen
Speicher geschrieben zu werden.
-
In
dieser Ausführungsform
werden die CD-ROM und der ROM als die Aufzeichnungsmedien verwendet,
auf denen die Computerprogramme auf computerlesbare Weise aufgezeichnet
sind. Andere Beispiele für
ein verfügbare
Aufzeichnungsmedien beinhalten Disketten, magnetooptische Laufwerke,
IC-Karten, ROM-Module, Lochkarten, Drucke mit Barcodes oder anderen
Codes darauf gedruckt, interne Speichervorrichtungen (Speicher wie
ein RAM) und externe Speicher vorrichtungen des Computers sowie eine
Vielzahl anderer computerlesbarer Medien.
-
Die
Computerprogramme können
andererseits in dem Computer 100 oder dem Drucker 200 von
einem Programmserver (nicht gezeigt) aufgenommen werden, auf den über ein
Netzwerk zugegriffen wird und der als ein Versorger von Computerprogrammen
dient.
-
Ein
Teil der Computerprogramme kann in dem Betriebssystem enthalten
sein.
-
(C) Betrieb der Ausführungsform
-
Der
Betrieb der Ausführungsform
wird unten mit Bezug auf die 3 bis 5 beschrieben.
-
3 ist
ein Flussdiagramm, das eine Verarbeitungsroutine eines Einloggens,
die von irgendeinem der Initiatoren der 1 ausgeführt wird,
zeigt. 4 ist ein Flussdiagramm, das eine Verarbeitungsroutine
eines Einloggens, die von dem Ziel der 1 ausgeführt wird,
zeigt. 5 ist ein Zeitdiagramm, das die Übertragung
von Anforderungen und Antworten zwischen den jeweiligen Initiatoren
und dem Ziel der 1 zeigt. Die Ordinate der 5 bezeichnet
die Zeitachse. Die jeweiligen Spalten von links nach rechts stellen
die Zeitpunkte der Übertragung
der Anforderungen und Antworten beim Initiator I0, dem Ziel T1,
dem Initiator I1, dem Initiator I2 und dem Initiator I3 dar.
-
Die
jeweiligen Initiatoren I0 bis I3 und das Ziel T1 sind über den
IEEE1394-Bus B1 verbunden. Gemäß der Busarbitration,
die zuvor beschrieben wurde, wird, während ein Initiator, der unter
den Initiatoren I0 bis I3 ausgewählt
wird, eine Anforderung zum Ziel T1 sendet, der IEEE1394- Bus B1 von dem ausgewählten Initiator
belegt. Die anderen Initiatoren werden somit daran gehindert, die
Anforderungen gleichzeitig zu senden.
-
In
dem Beispiel der 5 gibt der Initiator I0 als
erstes eine Anforderung eines Einloggens an das Ziel T1 aus. Die
Steuerung C0 des Initiators I0 sendet dann im Schritt S102 des Flussdiagramms
der 3 ein Einlogg-Paket
zum Ziel T1. Das Einlogg-Paket enthält eine Anforderung eines Einloggens
zum Auffordern des Ziels T1, ein Einloggen zu akzeptieren, und eine
GUID des Initiators I0. Die GUID steht hier für globale einzigartige Identifikation
(Gobal Unique Identification) und stellt einen Identifikationscode
dar, der jedem der Initiatoren und Ziele immanent ist. Die GUID
wird als einzigartiger Identifikationscode nur einmal in der Welt
einer jeweiligen Vorrichtung, die als Initiator oder Ziel aufgebaut
ist, in deren Entwurfsstufe zugewiesen. In dieser Ausführungsform
besitzt der Initiator I0 die GUID "I0".
Auf ähnliche
Weise besitzen die Initiatoren I1, I2 und I3 jeweils die GUIDs "I1", "I2" und "I3". Die GUID, die in
dem Einlogg-Paket,
das von dem Initiator I0 gesendet wird, enthalten ist, ist dementsprechend "I0", wie es in 5 gezeigt ist.
-
In
dem Flussdiagramm der 4 wartet unterdessen der Verwaltungsagent
ME1 des Ziels T1 im Schritt S204 auf die Eingabe eines Einlogg-Pakets. Wenn
er ein Paket empfängt,
bestimmt der Verwaltungsagent ME1, ob das eingegebene Paket eine
Anforderung eines Einloggens enthält. In dem Fall, in dem die
Anforderung eines Einloggens in dem eingegebenen Paket enthalten
ist, identifiziert der Verwaltungsagent ME1 das eingegebene Paket
als ein Einlogg-Paket
und schreitet zur Verarbeitung des Schrittes S206.
-
Im
Schritt S206 liest der Verwaltungsagent ME1 die GUID, die in dem
eingegebenen Einlogg-Paket enthalten ist, aus. Wie zuvor erwähnt ist,
wenn der Verwaltungsagent ME1 das Einlogg-Paket, das von dem Initiator
I0 gesendet wird, empfängt,
die gelesene GUID "I0". Auf der Grundlage
der ausgelesenen GUID bestimmt der Verwaltungsagent ME1, dass das
eingegebene Einlogg-Paket von dem Initiator I0 gesendet wurde.
-
Der
Verwaltungsagent ME1 weist eine Warteschlange auf, in die die GUIDs
der Initiatoren, die die Anforderung eines Einloggens ausgeben,
registriert sind. 6 zeigt eine beispielhafte
Warteschlange, die in dem Verwaltungsagenten ME1 enthalten ist.
Die 6A bis 6H entsprechen
der zeitlichen Folge des Zeitdiagramms der 5.
-
Die
GUIDs der Initiatoren werden an Adressen n = 1 bis 7 der Warteschlange
der 6A in einer Folge des Empfangens der ersten Anforderung eines
Einloggens von den jeweiligen Initiatoren registriert. Die Adressen
n = 1 bis 7 stellen dementsprechend die Reihenfolge des Empfangens
der ersten Anforderung eines Einloggens von den jeweiligen Initiatoren
dar. In der Ausführungsform
wird dieses als die Ordnung des Vorrangs der Initiatoren betrachtet. Die
GUID des Initiators, der sich in die logische Einheit LUN1 eingeloggt
hat, ist an der Adresse n = 0 registriert. In diesem Beispiel besitzt
die logische Einheit LUN1 wie zuvor erwähnt die erlaubte Anzahl von gleichzeitigem
Einloggen von "1". Die Anzahl von
Initiatoren, die sich gleichzeitig einloggen können, beträgt dementsprechend nur eins.
Es wird somit nur eine Adresse n = 0 dem Initiator zugewiesen, der
sich in die logische Einheit LUN1 eingeloggt hat.
-
Der
Verwaltungsagent ME1 bestimmt im Schritt S208, ob die GUID, die
im Schritt S206 ausgelesen wird, bereits in der Warteschlange registriert wurde.
Zu diesem Zeitpunkt ist die Anforderung eines Einloggens von dem
Initiator I0 die erste Anforderung eines Einloggens. Die gelesene
GUID "I0" wurde somit noch
nicht in der Warteschlange registriert, wie es in 6A gezeigt
ist. Das Programm schreitet dementsprechend zur Verarbeitung des
Schrittes S218.
-
Der
Verwaltungsagent ME1 fügt
im Schritt S218 die gelesene GUID zum derzeitigen Ende der Warteschlange
hinzu. Zu diesem Zeitpunkt besteht keine Registrierung an den Adressen
n = 1 bis 7 in der Warteschlange. Der Verwaltungsagent ME1 registriert
dementsprechend die derzeitig gelesene GUID "I0" an
der Adresse n = 1 in der Warteschlange der 6B.
-
Der
Verwaltungsagent ME1 liest dann eine Anzahl von Initiatoren "p", die derzeitig in der logischen Einheit
LUN1 eingeloggt sind, im Schritt S210 aus. Wie zuvor beschrieben
wird, wenn einer der Initiatoren sich in die logische Einheit LUN1
einloggt, die GUID des Initiators an der Adresse n = 0 in der Warteschlange
registriert. Der Verwaltungsagent ME1 überprüft dementsprechend im Schritt
S210 die Adresse n = 0. Wenn irgendeine GUID an der Adresse n =
0 registriert ist, beträgt
die Anzahl der Initiatoren "p", die derzeitig eingeloggt
sind, gleich "1". Wenn an der Adresse
n = 0 keine Registrierung vorliegt, beträgt im Gegensatz dazu die Anzahl
der Initiatoren "p" gleich "0". Zu diesem Zeitpunkt wurde noch keine GUID
an der Adresse n = 0 in der Warteschlange registriert, so dass im
Schritt S210 die Anzahl der Initiatoren "p" gleich "0" ausgelesen wird.
-
Im
anschließenden
Schritt S212 vergleicht der Verwaltungsagent ME1 die eingegebene
Anzahl von Initiatoren "p" mit der vorbestimmten
erlaubten Anzahl von gleichzeitigen Einloggungen der logischen Einheit
LUT1, die gleich "1" gesetzt ist. D.h., der
Verwaltungsagent ME1 bestimmt, ob die Anzahl der Initiatoren "p", die derzeitig in die logische Einheit LUN1
eingeloggt sind, die erlaubte Anzahl von gleichzeitigen Einloggungen "1" der logischen Einheit LUN1 erreicht.
-
In
dem Fall, in dem die Anzahl der Initiatoren "p",
die derzeitig eingeloggt sind, die erlaubte Anzahl von gleichzeitigen
Einloggungen "1" erreicht, kann die
logische Einheit LUN1 kein weiteres Einloggen von irgendeinem Initiator
akzeptieren. Das Programm schreitet dementsprechend zur Verarbeitung des
Schrittes S213 und der folgenden Schritte, die später beschrieben
werden.
-
In
dem Fall, in dem die Anzahl der Initiatoren "p",
die derzeitig eingeloggt sind, die erlaubte Anzahl von gleichzeitigen
Einloggungen "1" nicht erreicht, kann
andererseits die logische Einheit LUN1 das Einloggen des Initiators,
der gerade die Anforderung eines Einloggens ausgegeben hat, akzeptieren.
Das Programm schreitet dementsprechend zur Verarbeitung des Schrittes
S220 und der anschließenden Schritte.
-
Wie
es in 5 gezeigt ist, sendet der Verwaltungsagent ME1
im Schritt S220 ein Statuspaket, das auf einen Status eines erfolgreichen
Einloggens gesetzt ist, zum Initiator I0, der gerade die Anforderung
eines Einloggens gegeben hat. Der Status des erfolgreichen Einloggens
stellt eine Antwort hinsichtlich des Akzeptierens des Einloggens
dar.
-
Der
Verwaltungsagent ME1 verschiebt dann sämtliche GUIDs, die in der Warteschlange
registriert sind, im Schritt S222. In diesem Beispiel ist die GUID, die
in der Warteschlange registriert ist, nur die GUID des Initiators
I0, die an der Adresse n = 1 registriert ist, wie es in 6B gezeigt
ist. Die GUID des Initiators I0 wird dementsprechend zur Adresse
n = 0 verschoben, was den Einloggzustand darstellt, wie es in 6C gezeigt
ist.
-
Nach
der Beendigung der Verarbeitung im Schritt S222 wartet der Verwaltungsagent
ME1 im Schritt S204 erneut auf die Eingabe eines anderen Einlogg-Pakets.
-
Im
Flussdiagramm der 3 wartet die Steuerung C0 des
Initiators I0 im Schritt S104 auf die Eingabe des Statuspakets,
nachdem das Einlogg-Paket im Schritt S102 gesendet wurde. Wenn sie
das Statuspaket von dem Ziel T1 empfängt, liest die Steuerung C0
den Status, der in dem Statuspaket spezifiziert ist, im Schritt
S106 aus.
-
Die
Steuerung C0 bestimmt dann im Schritt S108, ob der eingegebene Status
ein Einlogg-Fehlerstatus ist, der ein Fehlschlagen eines Einloggens
darstellt. Wenn der eingegebene Status der Einlogg-Fehlerstatus
ist, ist das Einloggen fehlgeschlagen. Die Steuerung C0 führt dementsprechend
die Verarbeitung des Schrittes S110 aus, um eine weitere Anforderung
eines Einloggens zum Ziel T1 auszugeben. Die Verarbeitung des Schrittes
S110 und der anschließenden
Schritte wird später
beschrieben.
-
Wenn
der eingegebene Status nicht der Einlogg-Fehlerstatus, sondern der Status eines
erfolgreichen Einloggens ist, wird andererseits das Einloggen akzeptiert.
Die Steuerung C0 beendet dementsprechend die Folge der Einlogg-Verarbeitungen
des Flussdiagramms der 3.
-
Wenn
der Initiator I0 sich durch die obige Prozedur in die logische Einheit
LUN1 des Ziels T1 einloggt, startet die Steuerung C0 des Initiators
I0 die tatsächliche Übertragung
von Daten zu und von dem Hohlagenten FE1 des Ziels T1.
-
In
dem Beispiel der 5 gibt, nachdem sich der Initiator
I0 in die logische Einheit LUN1 des Ziels T1 eingeloggt hat, ein
anderer Initiator I1 eine Anforderung eines Einloggens an das Ziel
T1 aus. Die Folge der Verarbeitungen schreitet dann auf die folgende
Weise fort.
-
Die
Steuerung C1 des Initiators I1 sendet zuerst im Schritt S102 im
Flussdiagramm der 3 ein Einlogg-Paket, das eine Anforderung
eines Einloggens und die GUID des Initiators I1 enthält, zum
Ziel T1. In diesem Fall ist die GUID, die in dem Einlogg-Paket enthalten
ist, "I1", wie es in 5 gezeigt ist.
-
Im
Flussdiagramm der 4 empfängt der Verwaltungsagent ME1
das Einlogg-Paket und liest die GUID, die in dem eingegebenen Einlogg-Paket enthalten
ist, im Schritt S206 aus. Auf der Grundlage der ausgelesenen GUID "I1" bestimmt der Verwaltungsagent
ME1, dass das eingegebene Einlogg-Paket von dem Initiator I1 gesendet
wurde.
-
Der
Verwaltungsagent ME1 bestimmt dann im Schritt S208, ob die gelesene
GUID bereits in der Warteschlange registriert wurde. Zu diesem Zeitpunkt
ist die Anforderung eines Einloggens von dem Initiator I1 die erste
Anforderung eines Einloggens, so dass die gelesene GUID "I1" noch nicht in der Warteschlange
registriert wurde, wie es in 6C gezeigt
ist. Der Verwaltungsagent ME1 fügt
dementsprechend im Schritt S218 die gelesene GUID zum derzeitigen
Ende der Warteschlange hinzu. Zu diesem Zeitpunkt ist die GUID "I0" des Initiators I0
an der Ad resse n = 0 in der Warteschlange registriert, aber es besteht
keine Registrierung an den Adressen n = 1 bis 7. Der Verwaltungsagent
ME1 registriert dementsprechend die derzeitige gelesene GUID "I1" an der Adresse n
= 1, wie es in 6D gezeigt ist.
-
Der
Verwaltungsagent ME1 liest anschließend die Anzahl der Initiatoren "p", die derzeitig in die logische Einheit
LUN1 eingeloggt sind, im Schritt S210 aus. Zu diesem Zeitpunkt wurde
die GUID des Initiators I0 bereits an der Adresse n = 0 in der Warteschlange
registriert, wie es in 6D gezeigt ist. Die Anzahl der
Initiatoren "p", die auf "1" gesetzt ist, wird dementsprechend in
Schritt S210 gelesen.
-
Der
Verwaltungsagent ME1 vergleicht dann die eingegebene Anzahl von
Initiatoren "p" mit der erlaubten
Anzahl von gleichzeitigen Einloggungen "1" im
Schritt S212. In diesem Fall ist die Anzahl der Initiatoren "p" zu "1" gesetzt und gleicht
der erlaubten Anzahl von gleichzeitigen Einloggungen "1". Der Verwaltungsagent ME1 bestimmt
dann, dass die Anzahl von Initiatoren "p",
die bereits in der logischen Einheit LUN1 eingeloggt sind, die erlaubte
Anzahl von gleichzeitigen Einloggungen "1" erreicht
und dass die logische Einheit LUN1 keine weitere Einloggung eines
Initiators erlaubt. Das Programm schreitet dementsprechend zur Verarbeitung
des Schritts S213 und der anschließenden Schritte.
-
Der
Verwaltungsagent ME1 liest eine Ordnungsnummer des Vorrangs "n", die der GUID des interessierenden
Initiators zugewiesen ist, im Schritt S213 aus. Zu diesem Zeitpunkt
ist die GUID des interessierenden Initiators, d.h. des Initiators
I1, an der Adresse n = 1 in der Warteschlange registriert, wie es in 6D gezeigt
ist. Da die GUID die zugeordnete Ordnungsnummer des Vorrangs "1" aufweist, liest der Verwaltungsagent
ME1 die Ordnungsnummer des Vorrangs "1" im
Schritt S213 aus.
-
Im
anschließenden
Schritt S214 liest der Verwaltungsagent ME1 eine Zeitkonstante,
die mit der Ordnungsnummer des Vorrangs, die im Schritt S213 ausgelesen
wird, übereinstimmt
bzw. zu dieser passt, von einer Zeitkonstantentabelle aus, die im
Voraus bereitgestellt wird.
-
Die
Zeitkonstante stellt hier eine Zeitdauer dar, die verstreicht, bevor
der interessierende Initiator, der einmal eine Anforderung eines
Einloggens ausgegeben hat und eine Antwort hinsichtlich des Fehlschlagens
des Einloggens empfangen hat, eine weitere Anforderung eines Einloggens
ausgibt. In der Anordnung der Ausführungsform bestimmt das Ziel einen
Zeitpunkt der Wiederanforderung eines Einloggens, um eine Zeit festzulegen,
wann der interessierende Initiator, der grade die Anforderung eines
Einloggens ausgegeben hat und die Antwort hinsichtlich des Fehlschlagens
des Einloggens empfangen hat, eine weitere Anforderung eines Einloggens
ausgeben sollte. Die Zeitkonstante wird hier dem interessierenden
Initiator als Zeitpunkt der Wiederanforderung eines Einloggens gegeben.
-
In
dieser Ausführungsform
wird eine vorbestimmte Beziehung zwischen der Zeitkonstante und der
Ordnungsnummer des Vorrangs "n" (d.h., die Ordnungsnummer
des Vorrangs in der Warteschlange), die dem interessierenden Initiator
zugewiesen ist, der eine Anforderung eines Einloggens gegeben hat,
eingestellt. Der Verwaltungsagent ME1 stellt im Voraus die Zeitkonstantentabelle,
die diese Beziehung darstellt, bereit. 7 zeigt
eine beispielhafte Zeitkonstantentabelle, die in dem Verwaltungsagenten
ME1 enthalten ist.
-
Im
Schritt S214 liest der Verwaltungsagent ME1 die Zeitkonstante, die
mit der zugewiesenen Ordnungsnummer des Vorrangs "n" übereinstimmt, aus
dieser Zeitkonstantentabelle aus. Hier ist die Ordnungsnummer des
Vorrangs "n", die im Schritt S213
gelesen wird, gleich "1", so dass "t1", die mit n = 1 übereinstimmt,
als die Zeitkonstante aus der Zeitkonstantentabelle, die in 7 gezeigt
ist, ausgelesen wird.
-
Wie
es in 5 gezeigt ist, sendet der Verwaltungsagent ME1
anschließend
im Schritt S216 das Statuspaket, das auf den Einlogg-Fehlerstatus gesetzt
ist, zum Initiator I1, der grade die Anforderung eines Einloggens
ausgegeben hat. Der Einlogg-Fehlerstatus stellt eine Antwort hinsichtlich
des Fehlschlagens eines Einloggens dar. Zu diesem Zeitpunkt sendet
der Verwaltungsagent ME1 das Statuspaket, das den Einlogg-Fehlerstatus
enthält,
ebenso wie die Zeitkonstante "t1", die im Schritt
S214 gelesen wird, wie es in 5 gezeigt
ist. Der Verwaltungsagent ME1 bestimmt dementsprechend den Zeitpunkt
der Wiederanforderung eines Einloggens, um die Zeit festzulegen,
wann der Initiator I1, der grade die Anforderung eines Einloggens
ausgegeben hat, eine weitere Anforderung eines Einloggens ausgeben
sollte.
-
Nach
der Beendigung der Verarbeitung im Schritt S216 wartet der Verwaltungsagent
ME1 im Schritt S204 erneut auf die Eingabe eines anderen Einlogg-Pakets.
-
Im
Flussdiagramm der 3 empfängt die Steuerung C1 des Initiators
I1 das Statuspaket, das von dem Ziel T1 gesendet wird, und liest
den Status, der in dem Statuspaket spezifiziert ist, im Schritt S106
aus. Die Steuerung C1 bestimmt dann im Schritt S108, ob der eingegebene
Status der Einlogg-Fehlerstatus ist, der ein Fehlschlagen hinsichtlich
des Einloggens darstellt. Zu diesem Zeit punkt ist der eingegebene
Status der Einlogg-Fehlerstatus, der
das Fehlschlagen eines Einloggens darstellt. Die Steuerung C1 führt dementsprechend
die Verarbeitung des Schrittes S110 aus, um eine weitere Anforderung
eines Einloggens zum Ziel T1 auszugeben.
-
Die
Steuerung C1 liest die Zeitkonstante, die in dem empfangenen Statuspaket
enthalten ist, im Schritt S110 aus und bestimmt anschließend im Schritt
S112, ob eine Zeitdauer, die von der eingegebenen Zeitkonstante
spezifiziert wird, verstrichen ist, seitdem das vorherige Einlogg-Paket
im Schritt S102 zum Ziel T1 ausgegeben wurde. Die Zeitkonstante, die
zu diesem Zeitpunkt eingegeben wird, ist gleich "t1".
Es wird dementsprechend bestimmt, ob die Zeitdauer "t1" seit der vorherigen
Anforderung eines Einloggens verstrichen ist. In dem Fall, in dem
die Zeitdauer "t1" noch nicht verstrichen
ist, wartet die Steuerung C1 auf das Verstreichen der Zeitdauer "t1". In dem Fall, in
dem die Zeitdauer "t1" bereits verstrichen ist,
kehrt das Programm andererseits zum Schritt S102 zurück, bei
dem die Steuerung C1 erneut das Einlogg-Paket zum Ziel T1 ausgibt.
D.h., der Initiator I1 sendet nach dem Verstreichen der Zeitdauer "t1" nach der Ausgabe
der ersten Anforderung eines Einloggens eine zweite Anforderung
eines Einloggens zum Ziel T1, wie es in 5 gezeigt
ist. Auf diese Weise gibt die Steuerung C1 eine weitere Anforderung
eines Einloggens zum Ziel T1 auf der Grundlage des Zeitpunkts der
Wiederanforderung eines Einloggens, der als die Zeitkonstante durch
das Ziel T1 bestimmt wird, aus.
-
In
dem Fall, in dem weitere Initiatoren I2 und I3 jeweils eine Anforderung
eines Einloggens zum Ziel T1 in der Zeitdauer zwischen der Ausgabe
der ersten Anforderung eines Einloggens und der Ausgabe der zweiten
Anforderung eines Einloggens durch den Initiator I1 ausgeben, folgt das
Programm der Folge der Verarbeitung, die der Verarbeitung, die oben
mit Bezug auf den Initiator I1 beschrieben wurde, ähnelt.
-
Im
Schritt S102 geben die Steuerung C2 des Initiators I2 und die Steuerung
C3 des Initiators I3 jeweils das Einlogg-Paket aus, das eine Anforderung eines
Einloggens und die GUID, die dem Initiator immanent ist, enthält, zum
Ziel T1 zu den Zeitpunkten, die in 5 gezeigt
sind, aus. Der Verwaltungsagent ME1 des Ziels T1 empfängt das
Einlogg-Paket zu den jeweiligen Zeitpunkten, die in 5 gezeigt
sind, in Schritt S204, liest die GUID, die in dem empfangenen Einlogg-Paket
enthalten ist, in Schritt S206 aus und bestimmt im Schritt S208,
ob die eingegebene GUID bereits in der Warteschlange registriert
wurde. Zu diesem Zeitpunkt sind beide Anforderungen eines Einloggens
von den Initiatoren I2 und I3 die ersten Anforderungen eines Einloggens.
Keine der gelesenen GUIDs wurde bereits in der Warteschlange registriert,
wie es in 6D gezeigt ist. Der Verwaltungsagent
ME1 fügt
dann im Schritt S218 die gelesene GUID zum derzeitigen Ende der
Warteschlange hinzu. Genauer gesagt wurde die GUID "I1" des Initiators I1
bereits an der Adresse n = 1 in der Warteschlange registriert, wie
es in 6D gezeigt ist. Zu dem Zeitpunkt,
zu dem die Anforderung eines Einloggens von dem Initiator I2 empfangen
wird, registriert der Verwaltungsagent ME1 die derzeitig gelesene GUID "I2" des Initiators I2
an der Adresse n = 2, wie es in 6E gezeigt
ist. Im anschließenden
Zeitpunkt, zu dem er die Anforderung eines Einloggens von dem Initiator
I3 empfängt,
registriert der Verwaltungsagent ME1 die derzeitig gelesene GUID "I3" des Initiators I3
an der Adresse n = 3, wie es in 6F gezeigt
ist.
-
Zu
jedem der Zeitpunkte ist der Initiator I0 bereits in die logische
Einheit LUN1 eingeloggt. Der Verwaltungs agent ME1 bestimmt dementsprechend in
den Schritten S210 und S212, dass die Anzahl der Initiatoren "p", die derzeitig eingeloggt sind, die
erlaubte Anzahl gleichzeitiger Einloggungen "1" erreicht,
und liest die Ordnungsnummer des Vorrangs "n",
die der GUID des interessierenden Initiators zugewiesen ist, aus
der Warteschlange in Schritt S213 aus. Die Warteschlange weist den
in 6E gezeigten Zustand auf, wenn der Verwaltungsagent
ME1 die Anforderung eines Einloggens von dem Initiator I2 empfängt. Da
die GUID des Initiators I2 an der Adresse n = 2 in der Warteschlange
registriert wurde, liest der Verwaltungsagent ME1 die Ordnungsnummer
des Vorrangs "n" gleich "2" in Schritt S213 aus. Die Warteschlange
weist den in 6F gezeigten Zustand auf, wenn
der Verwaltungsagent ME1 die Anforderung eines Einloggens von dem
Initiator I3 empfängt.
Da die GUID des Initiators I3 an der Adresse n = 3 in der Warteschlange
registriert wurde, liest der Verwaltungsagent ME1 die Ordnungsnummer des
Vorrangs "n" gleich "3" im Schritt S213 aus. Der Verwaltungsagent
ME1 liest anschließend
die Zeitkonstante, die mit einer jeweiligen Ordnungsnummer des Vorrangs "n" übereinstimmt,
aus der Zeitkonstantentabelle, die in 7 gezeigt
ist, im Schritt S214 aus. Genauer gesagt wird "t2",
die mit n = 2 übereinstimmt,
als die Zeitkonstante des Initiators I2 ausgelesen, wohingegen "t3", die mit n = 3 übereinstimmt, als
die Zeitkonstante des Initiators I3 ausgelesen wird.
-
In
dieser Ausführungsform
stimmt die kürzere
Zeitkonstante mit der höheren
Ordnungsnummer des Vorrangs "n" überein, und die längere Zeitkonstante
stimmt mit der niedrigeren Ordnungsnummer des Vorrangs "n" überein,
wie es in 7 gezeigt ist. Hier ist die
Zeitkonstante "t1", die mit der Ordnungsnummer
des Vorrangs "n
= 1" übereinstimmt,
auf den Bezugswert eingestellt. Die Zeitkonstante "t2", die mit n = 2 übereinstimmt,
beträgt
das Zweifache des Bezugswerts "t1". Die Zeitkonstante "t3", die mit n = 3 übereinstimmt,
beträgt
das Vierfache des Bezugswerts "t1". Die Zeitkonstante "t4", die mit n = 4 übereinstimmt,
beträgt
das Achtfache des Bezugswerts "t1". D.h. die Zeitkonstante "ti", die mit n = i übereinstimmt,
beträgt
das 2i-fache des Bezugswerts "t1". Eine Bestimmung
der zu langen Zeitkonstante hat jedoch keine signifikanten Wirkungen.
Die Zeitkonstante "t7", die mit der relativ
niedrigen Ordnungsnummer des Vorrangs "n = 7" übereinstimmt,
wird somit gleich der Zeitkonstanten "t6" (d.h.
dem 32-fachen des Bezugswerts "t1") eingestellt, die
mit der Ordnungsnummer des Vorrangs "n = 6" übereinstimmt.
-
Im
anschließenden
Schritt S216 sendet der Verwaltungsagent ME1 das Statuspaket, das
den Einlogg-Fehlerstatus
enthält,
und die Zeitkonstante zu den Initiatoren I2 und I3, die grade die
Anforderung eines Einloggens ausgegeben haben, zu den jeweiligen
Zeitpunkten, die in 5 gezeigt sind. Die Steuerung
C2 des Initiators I2 und die Steuerung C3 des Initiators I3 empfangen
dann jeweils das Statuspaket zu den Zeitpunkten, die in 5 gezeigt
sind, im Schritt S104, lesen den Status, der in dem empfangenen
Statuspaket enthalten ist, im Schritt S106 aus und bestimmen im
Schritt S108, ob der eingegebene Status der Einlogg-Fehlerstatus
ist. In diesem Fall ist der eingegebene Status der Einlogg-Fehlerstatus,
so dass die Steuerungen C2 und C3 anschließend die Zeitkonstante aus
dem Statuspaket im Schritt S110 auslesen. Genauer gesagt liest die
Steuerung C2 die Zeitkonstante "t2" aus, und die Steuerung
C3 liest die Zeitkonstante "t3" aus. Die Steuerung
C2 gibt dementsprechend das Einlogg-Paket erneut an das Ziel T1
nach dem Verstreichen der Zeitdauer "t2" seit
der vorherigen Anforderung eines Einloggens in den Schritten S112
und S102 aus. Auf ähnliche
Weise gibt die Steuerung C3 das Einlogg-Paket erneut zum Ziel T1
nach dem Verstreichen der Zeitdauer "t3" seit
der vorherigen Anforderung eines Einloggens in den Schritten S112
und S102 aus. D.h. der Initiator I2 sendet eine zweite Anforderung
eines Einloggens zum Ziel T1 nach dem Verstreichen der Zeitdauer "t2" seit der Ausgabe
der ersten Anforderung eines Einloggens, wohingegen der Initiator
I3 eine zweite Anforderung eines Einloggens zum Ziel T1 nach dem
Verstreichen der Zeitdauer "t3" seit der Ausgabe
der ersten Anforderung eines Einloggens sendet, wie es in 5 gezeigt
ist.
-
Auf
diese Weise geben die Initiatoren I1 bis I3 jeweils die zweiten
und anschließenden
Anforderungen eines Einloggens zum Ziel T1 aus. In diesem Fall sind
die GUIDs, die von den jeweiligen Einlogg-Paketen gelesen werden,
bereits in der Warteschlange registriert. Der Verwaltungsagent ME1
des Ziels T1 überspringt
dementsprechend die Verarbeitung des Schrittes S218 auf der Grundlage
der Bestimmung des Schrittes S208 und schreitet zur Verarbeitung
des Schrittes S210.
-
In
dieser Ausführungsform
geben, wie es in 5 gezeigt ist, nachdem der letzte
Initiator I3 die erste Anforderung eines Einloggens ausgegeben hat,
keine weiteren Initiatoren als die Initiatoren I1 bis I3 erneut
eine Anforderung eines Einloggens zum Ziel T1 aus, bis der Initiator
I0, der eingeloggt ist, sich ausloggt. Die Warteschlange, die in
dem Verwaltungsagenten ME1 enthalten ist, hält dementsprechend den Zustand
der 6F unverändert.
Keine Änderung
wird in Bezug auf die Ordnungsnummern des Vorranges, die den GUIDs
der jeweiligen Initiatoren I1 bis I3, die in der Warteschlange registriert
sind, zugewiesen sind, durchgeführt.
Auf die zweiten und anschließenden
Anforderungen eines Einloggens von den Initiatoren I1 bis I3 hin
sendet der Verwaltungsagent ME1 entsprechend das Statuspaket, das die
Zeitkonstante ent hält,
die identisch zur vorherigen ausgegebenen Zeitkonstante ist, zum
interessierenden Initiator, der grade die Anforderung eines Einloggens
ausgegeben hat. Die Initiatoren I1 bis I3 geben jeweils eine andere
Anforderung eines Einloggens zum Ziel T1 zu den Zeitpunkten, die
von den Zeitkonstanten bestimmt werden, die identisch mit den vorherigen
Zeitkonstanten sind, aus, wie es in 5 gezeigt
ist.
-
In
dem Fall, in dem der Initiator I0 bereits in der logischen Einheit
LUN1 eingeloggt ist, weist die Technik gemäß der Ausführungsform die kürzere Zeitdauer
zwischen einer Anforderung eines Einloggens und einer nächsten Anforderung
eines Einloggens (d.h. die kürzere
Zeitkonstante) dem vorherigen Initiator zu, der die erste Anforderung
eines Einloggens zum früheren
Zeitpunkt ausgegeben hat. D.h. der vorherige Initiator gibt eine
größere Anzahl
von Anforderungen eines Einloggens je Zeiteinheit aus.
-
Genauer
gesagt ist das Verhältnis
der Zeitkonstanten der Initiatoren I1, I2 und I3 1 zu 2 zu 4, wie es
anhand der 7 klar ersichtlich ist. Das
Verhältnis
der Anzahl der Anforderungen eines Einloggens, die je Zeiteinheit
von den Initiatoren I1, I2 und I3 ausgegeben werden, beträgt dementsprechend
4 zu 2 zu 1.
-
In
dem Fall, in dem sich der Initiator I0, der sich eingeloggt hat,
zu einem beliebigen Zeitpunkt ausloggt, loggt sich der Initiator,
der die Anforderung eines Einloggens zu dem frühesten Zeitpunkt nach dem Ausloggen
ausgibt, in die logische Einheit LUN1 ein. Es besteht eine gute
Möglichkeit,
dass der Initiator, der die größte Anzahl
von Anforderungen eines Einloggens je Zeiteinheit ausgibt, die Anforderung
eines Einloggens zu dem frühesten
Zeitpunkt nach dem Ausloggen ausgibt. D.h. es besteht eine hohe Wahrscheinlichkeit,
dass der Initiator I1 sich als nächstes
in die logische Einheit LUN1 einloggt. Die Technik der vorliegenden
Erfindung gewährleistet
somit praktisch, dass der Initiator, der die erste Anforderung eines
Einloggens zum Ziel T1 zuerst ausgibt, sich zuerst einloggt.
-
In
dem Fall, in dem der Initiator I0 eine Anforderung eines Ausloggens
zum Ziel T1 zum Zeitpunkt, der in 5 gezeigt
ist, ausgibt, führt
das Programm die Folge von Verarbeitungen, die unten beschrieben werden,
aus.
-
Wenn
die Datenübertragung,
die zwischen der Steuerung C0 des Initiators I0 und dem Holagenten
FE1 des Ziels C1 durchgeführt
wird, beendet ist, sendet die Steuerung C0 ein Auslogg-Paket zum
Ziel T1. Das Auslogg-Paket enthält
eine Anforderung eines Ausloggens zum Auffordern des Zieles T1,
ein Ausloggen zu akzeptieren, und die GUID des Initiators I0, wie
es in 5 gezeigt ist.
-
Unterdessen
führt das
Ziel T1 die Auslogg-Verarbeitung
durch. 8 ist ein Flussdiagramm, das eine Verarbeitungsroutine
eines Ausloggens zeigt, die von dem Ziel der 1 ausgeführt wird.
-
Der
Verwaltungsagent ME1 des Ziels T1 wartet im Schritt S302 auf die
Eingabe eines Auslogg-Pakets. Wenn er ein Paket empfängt, bestimmt der
Verwaltungsagent ME1, ob das eingegebene Paket eine Anforderung
eines Ausloggens enthält.
In dem Fall, in dem die Anforderung eines Ausloggens in dem eingegebenen
Paket enthalten ist, identifiziert der Verwaltungsagent ME1 das
eingegebene Paket als ein Auslogg-Paket und schreitet zur Verarbeitung des
Schrittes S304.
-
Im
Schritt S304 liest der Verwaltungsagent ME1 die GUID, die in dem
eingegebenen Auslogg-Paket enthalten ist, aus. Zu diesem Zeitpunkt
ist die gelesene GUID "I0", so dass der Verwaltungsagent
ME1 bestimmt, dass das eingegebene Auslogg-Paket von dem Initiator
I0 gesendet wurde.
-
Der
Verwaltungsagent ME1 vergleicht anschließend im Schritt S304 die GUID,
die an der Adresse n = 0 in der Warteschlange registriert ist, d.h. die
GUID des Initiators, der sich eingeloggt hat, mit der GUID, die
ausgelesen wird. Wenn die beiden GUIDs identisch sind, löscht der
Verwaltungsagent ME1 im Schritt S306 die registrierte GUID aus der Warteschlange.
In diesem Fall weist die Warteschlange den in 6F gezeigten
Zustand auf, wo "I0" an der Adresse n
= 0 als die GUID des Initiators, der eingeloggt ist, registriert
ist. Die im Schritt S304 gelesene GUID ist ebenfalls "I0" und damit identisch mit
der registrierten GUID. Der Verwaltungsagent ME1 löscht dann
die GUID "I0", die an der Adresse
n = 0 registriert ist, wie es in 6G gezeigt
ist.
-
Im
anschließenden
Schritt S308 sendet der Verwaltungsagent ME1 das Statuspaket, das
auf einen Status eines erfolgreichen Ausloggens gesetzt wurde, zum
Initiator I0, der grade die Anforderung des Ausloggens ausgegeben
hat, wie es in 5 gezeigt ist. Der Status eines
erfolgreichen Ausloggens stellt eine Antwort hinsichtlich eines
akzeptierten Ausloggens dar.
-
Nach
Beendigung der Verarbeitung im Schritt S308 wartet der Verwaltungsagent
ME1 erneut im Schritt S302 auf die Eingabe eines anderen Auslogg-Pakets.
-
Durch
die Folge der oben beschriebenen Verarbeitung loggt sich der Initiator
I0, der eingeloggt ist, aus der logischen Einheit LUN1 des Ziels
T1 aus.
-
In
dem Fall, in dem der Initiator I1 eine Anforderung eines Einloggens
an das Ziel T1 zum Zeitpunkt, der in 5 gezeigt
ist, nach dem Ausloggen des Initiators I0 aus der logischen Einheit
LUN1 ausgibt, folgt das Programm der Folge der Verarbeitung, die
unten beschrieben wird.
-
Der
Initiator I1 und das Ziel T1 führen
die Folge der Einlogg-Verarbeitung durch, die im Wesentlichen der
Folge der Verarbeitung, die ausgeführt wird, wenn sich der Initiator
I0 in die logische Einheit LUN1 des Ziels T1 einloggt, ähnelt, mit
Ausnahme der Verarbeitung ab dem Schritt S210, die von dem Ziel
T1 ausgeführt
wird.
-
Der
Verwaltungsagent ME1 liest die Anzahl der Initiatoren "p", die derzeitig in der logischen Einheit
LUN1 eingeloggt sind, im Schritt S210 aus. Zu diesem Zeitpunkt wurde
die GUID, die an der Adresse n = 0 in der Warteschlange registriert
war, wie zuvor erläutert
und in 6G gezeigt gelöscht. Die
Anzahl der Initiatoren "p", die hier gelesen
wird, beträgt dementsprechend "0".
-
Im
anschließenden
Schritt S212 vergleicht der Verwaltungsagent ME1 die eingegebene
Anzahl der Initiatoren "p" mit der vorbestimmten
erlaubten Anzahl von gleichzeitigen Einloggungen "1" der logischen Einheit LUT1. In diesem
Fall erreicht die Anzahl der Initiatoren "p",
die derzeitig eingeloggt sind, nicht die vorbestimmte erlaubte Anzahl
von gleichzeitigen Einloggungen "1". Wie es in 5 gezeigt
ist, sendet der Verwaltungsagent ME1 im Schritt S220 dementsprechend
das Statuspaket, das auf den Status eines erfolgreichen Einloggens
eingestellt ist, der die Antwort hinsichtlich eines akzeptierten
Einloggens darstellt, zum Initiator I1, der grade die Anforderung
eines Einloggens ausgegeben hat. Der Verwaltungsagent ME1 verschiebt
dann sämtliche
GUIDs, die in der Warteschlange registriert sind, im Schritt S222.
In diesem Beispiel sind die GUID des Initiators I1, die GUID des
Initiators I2 und die GUID des Initiators I3 jeweils an den Adressen
n = 1, n = 2 und n = 3 in der Warteschlange registriert, wie es
in 6G gezeigt ist. Die konkrete Prozedur des Schrittes
S222 verschiebt somit zunächst
die GUID des Initiators I1 von der Adresse n = 1 zur freien Adresse
n = 0. D.h. die GUID des Initiators I1, der grade die Anforderung eines
Einloggens ausgegeben hat, wird zur Adresse n = 0 verschoben, die
den Einlogg-Zustand
darstellt. Die Prozedur verschiebt dann die GUIDs der Initiatoren
I2 und I3, die an den Adressen n = 2 und n = 3 registriert sind,
jeweils um eins auf die oberen Adressen. Die Warteschlange weist
dementsprechend den in 6H gezeigten Zustand auf.
-
Auf
diese Weise hat sich der Initiator I1, der die Anforderung eines
Einloggens zum frühesten Zeitpunkt
nach dem Ausloggen des Initiators I0 ausgegeben hat, in die logische
Einheit LUN1 des Ziels T1 eingeloggt.
-
In
dem Fall, in dem die Initiatoren I2 und I3 jeweils die Anforderung
eines Einloggens zum Ziel T1 zu den in 5 gezeigten
Zeitpunkten ausgeben, nachdem sich der Initiator I1 eingeloggt hat,
folgt das Programm der Folge der Verarbeitung, die unten beschrieben
wird.
-
In
diesem Fall führen
die Initiatoren I2 und I3 und das Ziel T1 die Folge der Verarbeitung
aus, die im Wesentlichen der Verarbeitung, die ausgeführt wird,
wenn die Initiatoren I2 und I3, die die vorherige Anforderung eines
Einloggens zum Ziel T1 ausgegeben haben, ausgeführt wird, ähnelt, mit Ausnahme einiger
Details.
-
In
der Einlogg-Verarbeitung durch das Ziel T1 liest der Verwaltungsagent
ME1 im Schritt S213 die Ordnungsnummer des Vorrangs "n", die der GUID des interessierenden
Initiators zugewiesen ist, der grade die Anforderung eines Einloggens
ausgegeben hat, aus der Warteschlange aus. Hier weist die Warteschlange
den in 6H gezeigten Zustand auf. Die
GUID des Initiators I2, der an der Adresse n = 2 in dem vorherigen
Zyklus der Verarbeitung registriert war, ist derzeitig an der Adresse
n = 1 registriert, so dass die Ordnungsnummer des Vorrangs "n", die hier mit Bezug auf den Initiator
I2 gelesen wird, gleich "1" ist. Auf ähnliche
Weise ist die GUID des Initiators I3, die an der Adresse n = 3 in
dem vorherigen Zyklus der Verarbeitung registriert war, derzeitig
an der Adresse n = 2 registriert, so dass die Ordnungsnummer des
Vorrangs "n", die hier mit Bezug
auf den Initiator I3 gelesen wird, gleich "2" ist.
D.h. beide Initiatoren I2 und I3 haben eine höhere Ordnungsnummer des Vorrangs "n" als in dem vorherigen Zyklus der Verarbeitung.
-
Im
anschließenden
Schritt S214 liest der Verwaltungsagent ME1 die Zeitkonstanten,
die mit den jeweiligen Ordnungsnummern des Vorrangs "n" übereinstimmen,
aus der Zeitkonstantentabelle der 7 aus. Hier
wird die Zeitkonstante "t1", die mit "n = 1" übereinstimmt, in Bezug auf
den Initiator I2 ausgelesen, und die Zeitkonstante "t2", die mit "n = 2" übereinstimmt, wird in Bezug
auf den Initiator I3 ausgelesen. Die Zeitkonstante des Initiators
I2 hat sich dementsprechend von "t2" zu "t1" geändert, wohingegen
sich die Zeitkonstante des Initiators I3 von "t3" zu "t2" geändert hat.
D.h. beide Initiatoren I2 und I3 haben Zeitkonstanten, die sich
auf jeweils die Hälfte verkürzt haben.
-
Im
anschließenden
Schritt S216 sendet der Verwaltungsagent ME1 das Statuspaket, das
den Einlogg-Fehlerstatus
enthält,
und die Zeitkonstante an die Initiatoren I2 und I3, die grade die
Anforderung eines Einloggens ausgegeben haben, zu den jeweiligen
Zeitpunkten, die in 5 gezeigt sind. Die Steuerung
C2 des Initiators I2 und die Steuerung C3 des Initiators I3 empfangen
dann im Schritt S104 jeweils das Statuspaket zu den in 5 gezeigten
Zeitpunkten und lesen im Schritt S110 die Zeitkonstante aus dem
Statuspaket aus. Zu diesem Zeitpunkt liest die Steuerung C2 die
Zeitkonstante "t1" aus, und die Steuerung
C3 liest die Zeitkonstante "t2" aus. Die Steuerung
C2 gibt dementsprechend das Einlogg-Paket erneut an das Ziel T1
nach dem Verstreichen der Zeitdauer "t1" seit
der vorherigen Anforderung eines Einloggens in den Schritten S112
und S102 aus. Auf ähnliche
Weise gibt die Steuerung C3 das Einlogg-Paket erneut an das Ziel
T1 nach dem Verstreichen der Zeitdauer "t2" seit
der vorherigen Anforderung eines Einloggens in den Schritten S112 und
S102 aus.
-
Die
Zeitdauern zwischen einer Anforderung eines Einloggens und einer
nächsten
Anforderung eines Einloggens (d.h., die Zeitkonstanten), die nach dem
Einloggen des Initiators I1 für
die Initiatoren I2 und I3 eingestellt sind, werden jeweils auf die
Hälfte der
Zeitdauern vor dem Einloggen des Initiators I1 verringert. D.h.
die Anzahl der Anforderungen eines Einloggens, die zum Ziel T1 je
Zeiteinheit ausgegeben werden, wird jeweils in Bezug auf beide Initiatoren
I2 und I3 verdoppelt. Diese Anordnung ermöglicht es, dass der Initiator,
der auf das nächste
Einloggen gewartet hat, die Anforderung eines Einloggens zum frühen Zeitpunkt
ausgibt, wenn sich der Initiator I1, der sich eingeloggt hat, zu
einem beliebigen Zeitpunkt ausloggt.
-
Auf
diese Weise weisen die Initiatoren I2 und I3 die kürzeren Zeitkonstanten
auf und geben die größeren Anzahlen
von Anforderungen eines Einloggens je Zeiteinheit nach dem Einloggen
des Initiators I1 als vor dem Einloggen des Initiators I1 aus. Der
Initiator I2, der die erste Anforderung eines Einloggens früher als
der Initiator I3 ausgegeben hat, weist jedoch die kürzere Zeitkonstante
auf und gibt die größere Anzahl
von Anforderungen eines Einloggens je Zeiteinheit aus als der Initiator
I3. Wenn der Initiator I1, der sich eingeloggt hat, zu einem beliebigen
Zeitpunkt ausloggt, besteht eine gute Möglichkeit, dass der Initiator
I2, der die größere Anzahl
von Anforderungen eines Einloggens je Zeiteinheit ausgibt, eine nächste Anforderung
eines Einloggens zu dem früheren
Zeitpunkt ausgibt. D.h. es besteht eine hohe Wahrscheinlichkeit,
dass sich der Initiator I2 als nächstes
in die logische Einheit LUN1 einloggt.
-
(D) Ergänzung
-
Wie
zuvor beschrieben sendet jeder der jeweiligen Initiatoren I0 bis
I3 das Einlogg-Paket oder das Auslogg-Paket zum Ziel T1, und das Ziel T1 sendet
das Statuspaket zu jedem der Initiatoren I0 bis I3. Diese Operationen
werden genauer beschrieben.
-
In 1 weisen
die jeweiligen Initiatoren I0 bis I3 die allgemeinen Speicher SM0
bis SM3 auf. Jeder der Initiatoren I0 bis I3 sendet das Einlogg-Paket oder
das Auslogg-Paket zum Ziel T1 auf die folgende Weise. Jeder der
Initiatoren I0 bis I3, d.h. der interessierende Initiator, ordnet
jeweils zunächst
die Daten des Einlogg-Pakets oder des Auslogg-Pakets, die an das
Ziel T1 auszugeben sind, in Form einer bestimmten Datenstruktur,
die ein Verwaltungs-ORB genannt wird, wie es in 1 gezeigt ist,
in den entsprechenden der jeweiligen allgemeinen Speicher SM0 bis SM3
an. Der interessierende Initiator sendet dann einen Zeiger, der
eine Adresse im allgemeinen Speicher anzeigt, an der die bestimmte
Datenstruktur angeordnet ist, zum Verwaltungsagenten ME1 des Ziels T1 über den
IEEE1394-Bus B1. Der Verwaltungsagent ME1 des Ziels T1 empfängt den
Zeiger, erlangt Zugriff auf den allgemeinen Speicher des interessierenden
Initiators, der grade den Zeiger gesendet hat, über den IEEE1394-Bus B1 und übernimmt
den Verwaltungs-ORB, der an der Adresse, die von dem Zeiger bestimmt
wird, angeordnet ist, um die Daten des Einlogg-Pakets oder des Auslogg-Pakets
zu empfangen. Auf diese Weise sendet jeder der Initiatoren I0 bis
I3 das Einlogg-Paket oder das Auslogg-Paket zum Ziel T1.
-
Auf
die Eingabe des Einlogg-Pakets oder des Auslogg-Pakets hin sendet das Ziel T1 das Statuspaket
zu jedem der Initiatoren I0 bis I3, d.h. dem interessierenden Initiator.
Das Einlogg-Paket oder das Auslogg-Paket, das von dem interessierenden Initiator
gesendet wird, enthält
den Zeiger, der die Adresse in dem allgemeinen Speicher des Initiators bestimmt,
zusätzlich
zur Anforderung eines Einloggens oder Ausloggens und die GUID. Wenn
er das Einlogg-Paket oder das Auslogg-Paket empfängt, liest der Verwaltungsagent
ME1 des Ziels T1 den Zeiger, der in dem eingegebenen Paket enthalten
ist, aus, erlangt Zugriff auf den allgemeinen Speicher des interessierenden
Initiators über
den IEEE1394-Bus B1 und schreibt die Daten des Statuspakets in ein STATUS_FIFO,
das durch den Zeiger spezifiziert ist. Auf diese Weise schreibt
das Ziel T1 von Ferne das Statuspaket in jeden der Initiatoren I0
bis I3.
-
Nachdem
sich der interessierende Initiator in die logische Einheit LUN1
des Ziels T1 einloggt hat, wird die Datenübertragung zwischen dem interessierenden
Initiator und dem Holagenten FE1 des Ziels T1 auf ähnliche
Weise durchgeführt.
In dem Fall der Datenübertragung
zwischen dem Initiator und dem Holagenten FE1 platziert der Initiator
jedoch die Daten in seinem eigenen allgemeinen Speicher in einer bestimmten
Datenform, die eine normale ORB genannt wird, wie in 1 gezeigt
ist, anstelle der oben beschriebenen Verwaltungs-ORB.
-
Wie
es zuvor beschrieben wurde, besteht gemäß der Technik der Ausführungsform,
wenn sich der Initiator I0, der sich eingeloggt hat, zu einem beliebigen
Zeitpunkt ausloggt, eine gute Möglichkeit,
dass der Initiator I1, der die größte Anzahl von Anforderungen
eines Einloggens je Zeiteinheit ausgibt, eine nächste Anforderung eines Einloggens
zum frühesten
Zeitpunkt ausgibt. In dem Beispiel der 5 gibt, nachdem
sich der Initiator I0 ausloggt, der Initiator I1 die Anforderung
eines Einloggens zum Ziel T1 zum frühesten Zeitpunkt aus. In dem
tatsächlichen
Zustand besteht jedoch weiterhin die Möglichkeit, dass der Initiator
I2 oder I3 die Anforderung eines Einloggens zum Ziel T1 zum frühesten Zeitpunkt
nach dem Ausloggen des Initiators I0 ausgibt. Dieses hängt von dem
Auslogg-Zeitpunkt des Initiators I0 ab. Es wird z.B. angenommen,
dass der Initiator I2 oder I3 die Anforderung eines Einloggens zwischen
der vorherigen Anforderung eines Einloggens und der nächsten Anforderung
eines Einloggens durch den Initiator I1 ausgibt. In dem Fall, in
dem sich der Initiator I0 nach der vorherigen Anforderung eines
Einloggens durch den Initiator I1 und vor der nächsten Anforderung eines Einloggens
durch den Initiator I2 oder I3 ausloggt, gibt der Initiator I2 oder
I3 die Anforderung eines Ausloggens zum Ziel T1 zum frühesten Zeitpunkt nach
dem Ausloggen aus.
-
In
derartigen Fällen
loggt sich der Initiator I2 oder I3, der die Anforderung eines Einloggens
zum frühesten
Zeitpunkt nach dem Ausloggen des Initiators I0 ausgegeben hat, in
die logische Einheit LUN1 des Ziels T1 ein. D.h. der Initiator I2
oder I3, der die erste Anforderung eines Einloggens später als
der Initiator I1 ausgegeben hat, loggt sich vor dem Initiator I1
ein.
-
In
diesem Fall wird die Verarbeitung des Schrittes S222 in der Folge
der Einlogg-Verarbeitungen durch das Ziel T1 auf die folgende Weise
durchgeführt.
In Schritt S222 verschiebt der Verwaltungsagent ME1 sämtliche
GUIDs, die in der Warteschlange registriert sind. In diesem Beispiel
gibt, nachdem der Initiator I0 sich ausloggt, der Initiator I2 die
Anforderung eines Einloggens zum Ziel T1 zum frühesten Zeitpunkt aus, um sich
einzuloggen.
-
Hier
weist die Warteschlange den in 6G gezeigten
Zustand auf. Die GUID des Initiators I1, die GUID des Initiators
I2 und die GUID des Initiators I3 sind jeweils an den Adressen n
= 1, n = 2 und n = 3 in der Warteschlange registriert. Unter derartigen Umständen verschiebt
der Verwaltungsagent ME1 die GUID des Initiators I2, der grade die
Anforderung eines Einloggens ausgegeben hat, von der Adresse n =
2 zur Adresse n = 0, die den Einloggzustand darstellt. Der Verwaltungsagent
ME1 verschiebt dann die GUID des Initiators I3 von der Adresse n
= 3 um eins zur oberen Adresse, d.h. zur freien Adresse n = 2. Die
GUID des Initiators I1 wird unverändert gehalten.
-
In
diesem Fall loggt sich der Initiator I2, der die erste Anforderung
eines Einloggens später
ausgegeben hat, vor dem Initiator I1 ein, der die erste Anforderung
eines Einloggens früher
ausgegeben hat. D.h. jedoch, es gibt keine Änderung der Ordnungsnummer
des Vorrangs "n", die der GUID des Initiators
I1 in der Warteschlange zugewiesen ist. Nachdem sich der Initiator
I2 eingeloggt hat, weist der Initiator I1 weiterhin die kürzeste Zeitdauer
zwischen einer Anforderung eines Einloggens und einer nächsten Anforderung
eines Einloggens (d.h. die kürzeste
Zeitkonstante) auf und gibt die größte Anzahl von Anforderungen
eines Einloggens je Zeiteinheit aus. Daher besteht weiterhin eine
gute Möglichkeit, dass
der Initiator I1 die nächste
Anforderung eines Einloggens zum frühesten Zeitpunkt ausgibt, um
sich als nächstes
einzuloggen, nachdem sich der Initiator I2, der sich eingeloggt
hat, zu einem beliebigen Zeitpunkt ausgeloggt hat.
-
Das
folgende Problem kann jedoch in der zuvor beschriebenen Verarbeitung
auftreten. Hier wird angenommen, dass der Initiator I1, der die
erste Anforderung eines Einloggens zu einem früheren Zeitpunkt ausgegeben
hat, das wiederholte Ausgeben der Anforderung eines Einloggens aus
irgendeinem Grund, beispielsweise aufgrund einer Entfernung der Verbindung
des Initiators I1 zum IEEE1394-Bus B1 stoppt. Als Ergebnis der obigen
Verarbeitung in Schritt S222 verbleibt die GUID des Initiators I1
an der Adresse n = 1 in der Warteschlange, die die Ordnungsnummer
des Vorrangs "n" gleich "1" aufweist. Der Initiator I3, dessen
GUID von der Adresse n = 3 zur Adresse n = 2 verschoben wird, weist
die Ordnungsnummer des Vorrangs "n" von gleich "2" auf. Während der Initiator I1 das
Ausgeben der Anforderung eines Einloggens zum Ziel T1 stoppt, wird "t2", das mit der Ordnungsnummer
des Vorrangs "n
= 2" übereinstimmt,
weiterhin als die Zeitkonstante des Initiators I3 verwendet. Dieses
verlängert
den Zeitpunkt des Ausgebens der Anforderung eines Einloggens von
dem Initiator I3 zu dem Ziel T1 auf unerwünschte Weise.
-
Zum
Zwecke der Verbesserung kann die Verarbeitung des Schritts S222,
die oben beschrieben wurde, durch einen unten beschriebenen anderen Prozess
ersetzt werden.
-
Hier
weist die Warteschlange den in 6G gezeigten
Zustand auf. Der Verwaltungsagent ME1 verschiebt die GUID des Initiators
I2, der grade die Anforderung eines Einloggens ausgegeben hat, von der
Adresse n = 2 zur Adresse n = 0, die den Einloggzustand darstellt,
und löscht
die GUID des bestimmten Initiators, der eine höhere Ordnungsnummer des Vorrangs "n" als diejenige aufweist, die der GUID
des Initiators I2 zugewiesen ist (d.h. die GUID des Initiators I1),
aus der Warteschlange. Der Verwaltungsagent ME1 verschiebt dann
die GUID des Initiators I3, der die niedrigere Ordnungsnummer des
Vorrangs "n" als diejenige, die
der GUID des Initiators I2 zugewiesen ist, um zwei von der Adresse
n = 3 zur oberen Adresse, d.h. zur freien Adresse n = 1. Dieser
Prozess löst
das oben beschriebene Problem.
-
Gemäß einer
anderen möglichen
Prozedur erfasst der Verwaltungsagent ME1 den Zeitpunkt der wiederholten
Anforderung eines Einloggens, die von einem jeweiligen Initiator
ausgegeben wird. Wenn keine weitere Anforderung eines Einloggens
von dem interessierenden Initiator nach dem Verstreichen einer vorbestimmten
Zeitdauer ausgegeben wird, löscht
der Verwaltungsagent ME1 die GUID des Initiators aus der Warteschlange.
-
Die
vorliegende Erfindung ist nicht auf die obige Ausführungsform
oder ihre Modifikationen beschränkt,
sondern es können
viele anderen Modifikationen, Änderungen
und Alternativen angewendet werden, ohne von dem Bereich oder dem
Geist der Hauptkennzeichen der vorliegenden Erfindung abzuweichen.
-
In
der oben beschriebenen Ausführungsform sind
vier Initiatoren und ein Ziel mit dem IEEE1394-Bus B1 verbunden,
wie es in 1 gezeigt ist. Die Technik der
vorliegenden Erfindung ist jedoch nicht auf eine derartige Anzahl
beschränkt.
In dem Fall, in dem zwei oder mehr Ziele mit dem IEEE1394-Bus B1
verbunden sind, wird die oben beschriebene Folge der Verarbeitungen
von jedem Ziel durchgeführt.
-
In
der oben beschriebenen Ausführungsform weist
das Ziel T1 nur eine logische Einheit LUN1 auf. Das Ziel kann jedoch
auch zwei oder mehr logische Einheiten aufweisen. In diesem Fall
loggt sich jeder Initiator unabhängig
in jede logische Einheit ein. Die logische Einheit LUN1 weist in
der obigen Ausführungsform
eine erlaubte Anzahl von gleichzeitigen Einloggungen von "1" auf. Die erlaubte Anzahl von gleichzeitigen
Einloggungen kann jedoch auch auf einen anderen Wert von nicht weniger
als zwei eingestellt sein. Im letzteren Fall sollte die Verarbeitung des
Schritts S212 in der Folge der Einlogg-Verarbeitung durch das Ziel,
die in dem Flussdiagramm der 4 gezeigt
ist, entsprechend der voreingestellten erlaubten Anzahl von gleichzeitigen
Einloggungen modifiziert werden.
-
In
der oben beschriebenen Ausführungsform sind
die Initiatoren die Computer und das Ziel ist der Drucker. Die Technik
der vorliegenden Erfindung ist jedoch nicht auf derartige Vorrichtungen
beschränkt. Der
Initiator kann ein Scanner oder eine andere geeignete Vorrichtung
als der Computer sein. Das Ziel kann ebenfalls eine andere geeignete
Vorrichtung als der Drucker sein. In einem Beispiel kann eine Schnittstellenschaltvorrichtung
als das Ziel festgesetzt sein. In diesem Fall spielt das Ziel nur
die Rolle des Schaltens zwischen dem IEEE1394-Bus und ei ner vorhandenen
Schnittstelle, die mit einem Scanner oder einem Drucker verbunden
ist.
-
Der
Bereich der vorliegenden Erfindung ist nur durch die zugehörigen Ansprüche begrenzt.