-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft eine Datenübertragungssteuervorrichtung
und elektronisches Gerät
und bezieht sich insbesondere auf eine Steuervorrichtung für Datenübertragung
und ein elektronisches Gerät
zum Ausführen
einer Datenübertragung auf
der Basis einer Norm, beispielsweise IEEE 1394, zwischen einer Vielzahl
an einen Bus angeschlossener Knoten.
-
Einschlägiger Stand der Technik
-
Einer
Schnittstellennorm namens IEEE 1394 wurde kürzlich viel Aufmerksamkeit
geschenkt. In dieser IEEE 1394 sind Normen für serielle Hochgeschwindigkeits-Busschnittstellen
festgelegt, mit denen die nächste
Generation multimedialer Geräte
bedient werden kann. Die Norm IEEE 1394 ermöglicht die Handhabung von Daten,
die Echtzeitfähigkeiten aufweisen
müssen,
beispielsweise bewegliche Bilder. Ein Bus gemäß IEEE 1394 kann nicht nur
an periphere Geräte
für Rechner,
beispielsweise Drucker, Scanner, CD-RW Laufwerke und Festplattenlaufwerke
angeschlossen werden, sondern auch an Haushaltsgeräte, wie
Videokameras, Videorekorder und Fernsehgeräte. Deshalb erwartet man von
dieser Norm, daß sie
eine dramatische Beschleunigung der Digitalisierung elektronischer
Ausrüstung
ermöglicht.
-
Gemäß dieser
Norm IEEE 1394 passiert ein Ereignis, genannt Busrücksetzvorgang,
wenn ein neues elektronisches Gerät an den Bus angeschlossen
wird, ein elektronisches Gerät
vom Bus entfernt wird oder die Anzahl der an den Bus angeschlossenen
Knoten zunimmt. Kommt es zu einem Busrücksetzvorgang, so wird die
die Knoten betreffende Topologieinformation gelöscht, dann wird diese Topologieinformation
automatisch zurückgesetzt.
Mit anderen Worten, nach einem Busrücksetzvorgang wird eine Baumidentifizierung
(Bestimmung des Stammknotens) und eine Selbstidentifizierung durchgeführt, dann
werden die Knoten, die als Leitknoten dienen sollen, beispielsweise
der isochrone Betriebsmittelverwalter bestimmt. Danach beginnt die
gewöhnliche Paketübertragung.
-
Da
nach einem Busrücksetzvorgang
gemäß IEEE 1394
die Topologieinformation automatisch zurückgesetzt wird, können Kabel
in einem sogenannten Heißzustand
(Heißstöpseln) eingefügt und herausgenommen
werden. Deshalb kann ein Benutzer Kabel frei einstecken wie bei
gewöhnlichen
elektrischen Haushaltsgeräten,
beispielsweise Videorekordern, und das könnte ein nützlicher Faktor sein, um Netzsysteme
für zuhaus
beliebt zu machen.
-
Allerdings
ist klargeworden, daß ein
solcher Busrücksetzvorgang
auch Probleme verursacht, wie nachfolgend beschrieben.
- 1.) Da durch das Auftreten eines Busrücksetzvorganges Topologieinformation,
beispielsweise Knotenkennungen gelöscht werden, erfordert das Geschehnis
einer Busrücksetzung
während
einer Transaktion, daß diese
Transaktion wiederholt werden muß. Daher ist es für die Knoten
nötig,
zu bestimmen, welche Transaktionen unvollständig sind, wenn eine Busrücksetzung
geschieht.
-
Aber
das Verarbeitungsvermögen
der Firmware (CPU), mit der die Pakete verarbeitet werden, ist im
allgemeinen gering, so daß die
Verarbeitung eines empfangenen Pakets nach Ablauf einer gegebenen
Zeitspanne ab dem Empfang des Pakets geschieht. Aus diesem Grund
gibt es immer eine große Anzahl
unverarbeiteter Pakete, und es muß bestimmt werden, welche dieser
vielen nicht verarbeiteten Pakete vor oder nach einem Busrücksetzvorgang
empfangen wurden. Wegen dieser Verarbeitung wird die Firmware stark
belastet. Da nach einem Busrücksetzvorgang
Pakete in extrem großer
Zahl zwischen den Knoten übertragen
werden, ist insbesondere auch die Anzahl der nach einem Busrücksetzvorgang empfangenen
Pakete extrem groß,
was das Problem einer verstärkten
Arbeitsbelastung für
die Firmware noch verschärft.
- 2.) Wenn ein Busrücksetzvorgang auftritt, nachdem
die Firmware einen Paketsendestartbefehl ausgegeben hat, wird diese
Sendung angehalten. Wenn ein Busrücksetzvorgang im wesentlichen gleichzeitig
mit der Ausgabe eines Sendestartbefehls geschieht, kann die Firmware
unmöglich wissen,
ob die Sendung aufgrund des Auftretens des Busrücksetzvorganges geschah oder
nicht. Aus diesem Grund besteht die Gefahr, daß die Verarbeitung der Firmware
sich verzögert,
wobei die Firmware in Bereitschaftsstellung bleibt, bis der Zustand "Sendung vollendet" hereinkommt.
-
Das
Dokument
EP 0 939 530
A (Stand der Technik nach Artikel 54(3) EPÜ) offenbart
eine Datenübertragungsteuervorrichtung
zum Übertragen von
Daten zwischen einer Vielzahl von an einen Bus angeschlossenen Knoten
und betrifft die Wiederaufnahme des Sendens nach dem Eintritt eines
Busrücksetzvorganges.
Bei diesem Stand der Technik prüft
die Steuerung, die den Busrücksetzvorgang festgestellt
hat, ob die Knotenkennungen der Sendequelle und des Sendeziels geändert wurden
oder nicht. Im Anschluß daran
gibt die Steuerung der Quelle und dem Ziel Anweisungen, das Senden
von Daten wieder aufzunehmen. Das der Quelle gesendete Nachrichtenpaket,
welches die Anweisung zur Wiederaufnahme der Sendung trägt, enthält die Knotenkennung
des Ziels, welches vom Busrücksetzvorgang
spezifiziert wurde. Darüber
hinaus enthalten die Daten in diesem Nachrichtenpaket entsprechende Information,
wenn eine Verarbeitung zum erneuten Senden durchgeführt werden
soll. Auf die gleiche Weise enthält
das Nachrichtenpaket, welches das Ziel anweist, das Senden wieder
aufzunehmen, die Knotenkennung der durch den Busrücksetzvorgang spezifizierten
Quelle. Das Ziel benachrichtigt die Quelle über die in einem internen Register
gespeicherte Offset-Adresse
und wartet außerdem
auf Datenpakete, die von der Quelle neu zu senden sind. Im Anschluß an die
Mitteilung der Offset-Adresse nimmt die Quelle das asynchrone Senden
der Datenpakete wieder auf und vergleicht den Wert der Anfangsadresse
des Empfangspuffers, bereitgestellt vom Ziel, mit dem Wert der von
diesem Ziel mitgeteilten Offset-Adresse und identifiziert, auf der
Grundlage des Unterschiedes zwischen den beiden Werten, das Paket,
ab dem die Sendung wiederaufzunehmen ist.
-
Das
Dokument
US 5 764 930
A offenbart eine Datenübertragungssteuervorrichtung
gemäß dem Oberbegriff
von Anspruch 1. Genauer gesagt, ist in diesem Dokument ein Rechnersystem
beschrieben, das eine Vielzahl von Knoten umfaßt, jeweils mit einer zugehörigen einmaligen
Identifikation und Busadresse, die durch Punkt-zu-Punkt Verknüpfungen verbunden
sind. Gerätedatenaufzeichnungen
werden in einem Speicher des Rechnersystems verwaltet, worin einmalige
Knotenidentifikationen, die durch einen Busrücksetzvorgang unveränderlich
sind, entsprechenden Knotenbusadressen zugeordnet sind, die einer Änderung
bei Busrücksetzvorgängen unterliegen.
Ein Treiber, der einem Ursprungsknoten zugeordnet ist, löst eine
Bustransaktion aus und spezifiziert eine Bezugsidentifikation für den Zielknoten. Die
Bezugsidentifikation des Zielknotens wird zum Zugriff auf die Gerätedatenaufzeichnungen
benutzt, um die entsprechende Zielknotenbusadresse zu erhalten.
Wenn eine Bustransaktion nicht vollendet werden kann, weil ein Busrücksetzvorgang
eintritt, werden die Gerätedatenaufzeichnungen
aktualisiert, um die neuen Busadressen der Knoten den entsprechenden
einmaligen Knotenidentifikationen zuzuordnen. Die neue Zielknotenbusadresse
wird benutzt, um diejenige Bustransaktion zu vollenden, die durch den
Busrücksetzvorgang
unterbrochen wurde.
-
Offenbarung der Erfindung
-
Aufgabe
der vorliegenden Erfindung ist es, eine Datenübertragungssteuervorrichtung
zu schaffen, die es ermöglicht,
die Bearbeitungsbelastung der Firmware zu verringern, wenn ein Rücksetzvorgang, der
Knotentopologieinformation löscht,
eintritt, was es ermöglicht,
Schwierigkeiten, wie das Verzögern der
Verarbeitung der Firmware zu vermeiden, die durch das Eintreten
eines Rücksetzvorganges
verursacht wird, und dieselbe benutzende elektronische Ausrüstung bereitzustellen.
-
Dieses
Ziel wird mit einer Datenübertragungssteuervorrichtung
gemäß Anspruch
1 erreicht. Bevorzugte Ausführungsbeispiele
der Erfindung sind in den abhängigen
Ansprüchen
definiert.
-
Die
vorliegende Erfindung ermöglicht
die Feststellung, ob ein Ntes und ein (N + 1)tes Paket in verschiedenen
Rücksetzintervallen
empfangen wurden, zum Beispiel, durch mit dem empfangenen Nten Paket
verknüpfte
Nte Identifikationsinformation und mit dem als nächstes empfangenen (N + 1)ten
Paket verknüpfte
(N + 1)te Identifikationsinformation. Anders ausgedrückt, wenn
das Nte und das (N + 1)te Paket innerhalb des gleichen Mten Rücksetzintervalls
empfangen wurden, hätte
die Nte und die (N + 1)te Identifikationsinformation den gleichen
Wert, als Beispiel; aber wenn das Nte und das (N + 1)te Paket innerhalb
der Mten und Lten Rücksetzintervalle
empfangen wurden, die verschieden sind, hätte die Nte und die (N + 1)te
Identifikationsinformation unterschiedliche Werte. Deshalb ist es
möglich,
festzustellen, ob das Nte und das (N + 1)te Paket innerhalb verschiedener
Rücksetzintervalle
empfangen wurden oder nicht, mit anderen Worten, ob ein Rücksetzvorgang
zwischen dem Empfang des Nten Pakets und dem des (N + 1)ten Pakets
eintrat oder nicht, indem auf eine Änderung in der Nten und (N
+ 1)ten Identifikationsinformation geprüft wird. Die Firmware oder dergleichen
kann deshalb die Zeit, zu der der Rücksetzvorgang geschah, auf
einfache Weise erfahren, was eine Verringerung der Verarbeitungslast
während
des Rücksetzgeschehnisses
ermöglicht.
-
Die
Identifikationsinformation kann ein Wechselbit sein, das von Null
zu Eins oder von Eins zu Null wechselt, wenn ein empfangenes Paket
und das nächste
empfangene Paket Pakete sind, die innerhalb verschiedener Rücksetzintervalle
empfangen wurden. Das macht es möglich,
auf einfache Weise die Zeit in Erfahrung zu bringen, zu der ein Rücksetzvorgang
geschah, indem einfach auf eine Änderung
im Wechselbit geprüft
wird, wodurch die Verarbeitungslast der Firmware während eines
Rücksetzvorganges
weiter verringert wird.
-
Wenn
die Paketspeichereinrichtung eine Speichereinrichtung mit Direktzugriff
und in einen Steuerinformationsbereich, in dem Paketsteuerinformation
gespeichert ist, und einen Datenbereich aufgeteilt ist, in dem Paketdaten
gespeichert sind, kann die Identifikationsinformation innerhalb
der in den Steuerinformationsbereich geschriebenen Steuerinformation
enthalten sein. Das macht es möglich,
die Verarbeitungsbelastung der Firmware oder dergleichen durch das
Teilen der Paketspeichereinrichtung in einen Steuerinformationsbereich
und einen Datenbereich zu verringern, wodurch eine Erhöhung der tatsächlichen Übertragungsgeschwindigkeit
des gesamten Systems möglich
wird. Durch den Einschluß der
Identifikationsinformation innerhalb der in den Steuerinformationsbereich
eingeschriebenen Steuerinformation wird es möglich, daß die Firmware oder dergleichen
die Identifikationsinformation bei geringer Verarbeitungslast einfach
liest.
-
In
der vorliegenden Erfindung kann der Rücksetzvorgang ein Busrücksetzvorgang
gemäß Definition
in der Norm IEEE 1394 sein. In der vorliegenden Erfindung kann eine
Datenübertragung
gemäß der Norm
IEEE 1394 erfolgen.
-
Ein
elektronisches Gerät
gemäß der vorliegenden
Erfindung weist auf: irgendeine der vorstehend beschriebenen Datenübertragungssteuervorrichtungen;
eine Vorrichtung, die eine gegebene Verarbeitung an Daten durchführt, die
von einem anderen Knoten durch die Datenübertragungssteuervorrichtung
und einen Bus empfangen worden ist; und eine Vorrichtung, die einer
Verarbeitung unterzogene Daten ausgibt oder speichert.
-
Gemäß der vorliegenden
Erfindung kann, da die Verarbeitungsbelastung der die Datenübertragung
steuernden Firmware oder dergleichen verringert ist, die elektronische
Anlage weniger teuer gemacht werden, aber mit höheren Verarbeitungsgeschwindigkeiten.
Da es möglich
ist, eine Situation zu vermeiden, bei der das System verzögert ist
durch das Auftreten eines Rücksetzvorganges,
der Topologieinformation löscht,
kann auch die Zuverlässigkeit der
elektronischen Anlage erhöht
werden.
-
Kurzbeschreibung der Zeichnungen
-
Es
zeigt:
-
1 den
Schichtaufbau von IEEE 1394;
-
2A und 2B Illustrationen
der verschiedenen von der Transaktionsschicht und der Verknüpfungsschicht
gebotenen Dienstleistungen;
-
3 eine
Illustration des SBP-2;
-
4 ein
Beispiel der Konfiguration einer Datenübertragungssteuervorrichtung
gemäß einem Ausführungsbeispiel
dieser Erfindung;
-
5 eine
Illustration einer Technik zum Trennen (Teilen) innerhalb eines
RAM (Paketspeichereinrichtung);
-
6 die
Konfiguration eines Vergleichsbeispiels;
-
7 eine
Illustration des Verfahrens der Datenübertragung, welches von der
in 6 gezeigten Konfiguration verwirklicht ist;
-
8 eine
Illustration des Verfahrens der Datenübertragung dieses Ausführungsbeispiels
der vorliegenden Erfindung;
-
9A und 9B Illustrationen
des Anhaltens einer Transaktion durch den Eintritt eines Busrücksetzvorganges;
-
10 eine
Illustration des Wechselbits BT;
-
11 eine
Illustration eines Verfahrens, bei dem Vorspannbereiche das Wechselbit
BT aufweisen;
-
12 eine
Illustration des Busrücksetzzeigers;
-
13A, 13B und 13C Illustrationen der Verarbeitung der Firmware,
wenn ein Busrücksetzpaket
benutzt wird und wenn ein Busrücksetzzeiger
benutzt wird;
-
14 eine
Illustration des Busrücksetz-ORB-Zeigers;
-
15A und 15B Ablaufdiagramme
zur Illustration der Verarbeitung der Firmware, wenn nur ein Busrücksetzvorspannzeiger
benutzt wird und wenn ein Busrücksetz-ORB-Zeiger
benutzt wird;
-
16 ein
Ablaufdiagramm zur Illustration eines Verfahrens, bei dem die Verarbeitung
einem nach einem Busrücksetzvorgang
empfangenen Paket Priorität
geben;
-
17A, 17B, 17C und 17D Illustrationen
des Busrücksetzsendehaltzustands;
-
18A und 18B Ablaufdiagramme
der Verarbeitung der Firmware, wenn der Busrücksetzsendehaltzustand angewandt
und wenn er nicht angewandt wird;
-
19 Einzelheiten
der Konfiguration der Empfangsseite;
-
20A das Format eines Pakets mit Blockdaten bei
asynchroner Übertragung
gemäß der Norm IEEE
1394, und 20B das Format des Vorspannteils
eines im RAM gespeicherten Pakets mit Blockdaten bei asynchronem
Empfang;
-
21 eine
Illustration von TAG;
-
22A und 22B Zustandsübergangsdiagramme
der BT-Erzeugerschaltung;
-
23 ein
Impulswellendiagramm zur Illustration des Betriebs der BT-Erzeugerschaltung;
-
24 eine
Illustration von Einzelheiten der verschiedenen Zeigerregister;
-
25 eine
Illustration von Einzelheiten des Busrücksetzsendehaltzustands;
-
26 ein
Impulswellendiagramm zur Illustration von Einzelheiten des Busrücksetzsendehaltzustands;
-
27A, 27B und 27C Beispiele der internen Blockdiagramme verschiedener
elektronischer Anlagenposten;
-
28A, 28B und 28C zeigen Außenansichten
verschiedener elektronischer Anlagenposten.
-
Beste Art und Weise zum Ausführen der
Erfindung
-
Detaillierte
Ausführungsbeispiele
dieser Erfindung werden nachfolgend unter Hinweis auf die beigefügten Zeichnungen
beschrieben.
-
1. IEEE 1394
-
1.1 Die Beschreibung bezieht sich zunächst auf
einen Umriß von
IEEE 1394.
-
1.1 Umriß
-
Die
Norm IEEE 1394 (IEEE 1394 – 1995; P1394.a)
ermöglicht
eine Hochgeschwindigkeitsdatenübertragung
mit 100 bis 400 MbPs (P1394.b betrifft 800 bis 3200 Mbps). Sie erlaubt
auch den Anschluß von
Knoten unterschiedlicher Übertragungsgeschwindigkeiten
an den gleichen Bus.
-
Die
Knoten sind in Baumkonfiguration verbunden, bei der maximal 63 Knoten
mit einem Bus verbunden sein können.
Es sei darauf hingewiesen, daß die
Verwendung von Busbrücken
den Anschluß von
etwa 64000 Knoten möglich
macht.
-
Die
Norm IEEE 1394 bietet asynchrone Übertragung und isochrone Übertragung
als Paketübertragungsverfahren.
Hier eignet sich die asynchrone Übertragung
für Datenübertragungen,
bei denen Zuverlässigkeit
erforderlich ist, und isochrone Übertragung
für die Übertragung
von Daten, wie bewegten Bildern und Ton, wo Echtzeiterfordernisse
erfüllt sein
müssen.
-
1.2 Schichtaufbau
-
1 zeigt
den Schichtaufbau (Protokollstruktur) der von der Norm IEEE 1394
abgedeckt ist.
-
Das
Protokoll gemäß IEEE 1394
ist aus einer Transaktionsschicht, einer Verknüpfungsschicht und einer physischen
Schicht aufgebaut. Eine Seriellbusverwaltungsfunktion überwacht
und steuert die Transaktionsschicht, die Verknüpfungsschicht und die physische
Schicht und bietet verschiedene Funktionen zum Steuern von Knoten
und Verwalten von Busbetriebsmitteln.
-
Die
Transaktionsschicht bietet eine Schnittstelle (Dienstleistung) für Transaktionseinheiten
innerhalb oberer Schichten und eine Verknüpfungsschicht für untere
Schichten und führt
Transaktionen, beispielsweise Lesetransaktionen, Schreibtransaktionen
und Sperrtransaktionen aus.
-
Hier
veranlaßt
eine Lesetransaktion, daß Daten
vom antwortenden Knoten an den Knoten gesendet werden, der die Daten
angefordert hat. Ähnlich veranlaßt eine
Schreibtransaktion, daß Daten
vom anfordernden Knoten an den antwortenden Knoten gesendet werden.
Eine Sperrtransaktion veranlaßt, daß vom anfordernden
Knoten an den antwortenden Knoten Daten gesendet werden und daß der antwortende
Knoten dann diese Daten verarbeitet und zum anfordernden Knoten
zurücksendet.
-
Die
von der Transaktionsschicht gebotenen Dienstleistungen sind für vier Dienste
gestaltet (Anforderung, Anzeige, Antwort und Bestätigung),
wie in 2A gezeigt.
-
Hier
ist eine Transaktionsanforderung eine Dienstleistung, die die anfordernde
Seite veranlaßt, eine
Transaktion zu beginnen; und eine Transaktionsanzeige ist eine Dienstleistung,
welche die antwortende Seite darüber
informiert, daß eine
Anforderung mitgeteilt wurde. Eine Transaktionsantwort ist eine
Dienstleistung, die den Zustand oder Daten der antwortenden Seite
an die anfordernde Seite zurückleitet,
und eine Transaktionsbestätigung
ist eine Dienstleistung, die die anfordernde Seite darüber informiert,
daß eine
Antwort von der antwortenden Seite angekommen ist.
-
Die
Verknüpfungsschicht
bietet Funktionen, wie das Adressieren, Datenprüfung, Datenblockbildung für die Paketübertragung/Empfang
und eine Zyklussteuerung für
isochrone Übertragung.
Die von der Verknüpfungsschicht
gebotenen Dienstleistungen sind für vier Dienste gestaltet (Anforderung,
Anzeige, Antwort und Bestätigung),
wie in 2B gezeigt. Hier ist eine Verknüpfungsanforderung
eine Dienstleistung, die ein Paket an die antwortende Seite überträgt, und
eine Verknüpfungsanzeige
ist eine Dienstleistung, die ein Paket von der antwortenden Seite
empfängt.
Eine Verknüpfungsantwort
ist eine Dienstleistung, die eine Rückmeldung von der antwortenden
Seite überträgt, und
eine Verknüpfungsbestätigung ist
eine Dienstleistung, die eine Rückmeldung
von der anfordernden Seite empfängt.
-
Die
physische Schicht wandelt die von der Verknüpfungsschicht benutzten logischen
Symbole in elektrische Signale um, führt eine Busentscheidung durch
und bestimmt die physische Busschnittstelle.
-
Die
physische Schicht und die Verknüpfungsschicht
sind normalerweise durch Hardware verwirklicht, beispielsweise eine
Datenübertragungssteuervorrichtung
(Schnittstellenchip). Die Transaktionsschicht ist entweder in Form
von Firmware (Verarbeitungseinrichtung), die auf der Zentraleinheit
arbeitet, oder in Form von Hardware verwirklicht.
-
Es
sei erwähnt,
daß ein
Protokoll, genannt Seriellbusprotokoll 2 (SBP-2) als ein Protokoll
höherer
Ordnung vorgeschlagen wurde, welches einige der Funktionen der Transaktionsschicht
gemäß IEEE 1394
aufweist, wie in 3 gezeigt.
-
Hier
ist SBP-2 vorgeschlagen, um die Nutzung des SCSI-Befehls, der oben
auf das IEEE 1394 Protokoll gesetzt ist, zu ermöglichen. Durch die Benutzung
dieses SBP-2 werden die Änderungen,
die an dem im elektronischen Gerät
verwendeten SCSI-Befehlssatz vorgenommen werden müssen und den
bestehenden SCSI-Normen entsprechen, auf ein Minimum eingeschränkt, und
außerdem
ist deren Benutzung in einer elektronischen Anlage möglich, welche
die Norm IEEE 1394 erfüllt.
Dadurch kann die Auslegung und Entwicklung von elektronischer Ausrüstung vereinfacht
werden. Da es auch möglich
ist, gerätespezifische
Befehle einzukapseln und nicht nur SCSI-Befehle, wird die universelle
Anwendbarkeit des Befehlssatzes stark erweitert.
-
Im
Fall von SBP-2 erfolgt eine Anmeldeverarbeitung dadurch, daß zunächst ein
Operationsanforderungsblock (ORB) zum Initialisieren eines Anmelde-
oder Abrufagenten benutzt wird, der von einem Initiator erzeugt
wird (beispielsweise einem PC). Der Initiator erzeugt dann einen
ORB (Befehlsblock-ORB), der einen Befehl (zum Beispiel einen Lesebefehl
und Schreibbefehl) aufweist, informiert dann das Ziel über die
Adresse des so erzeugten ORB. Das Ziel erfaßt den vom Initiator erzeugten ORB
durch Abruf von dieser Adresse. Wenn der Befehl innerhalb des ORB
ein Lesebefehl war, führt
das Ziel eine Blockschreibtransaktion durch, um Daten vom Ziel an
den Datenpuffer (Speicher) des Initiators zu übertragen. War andererseits
der Befehl innerhalb des ORB ein Schreibbefehl, führt das
Ziel eine Blocklesetransaktion aus, um Daten vom Datenpuffer des Initiators
zu empfangen.
-
Mit
diesem SBP-2 kann das Ziel eine Transaktion zum Senden oder Empfangen
von Daten ausführen,
wenn es seine eigenen Umstände
erlauben. Da es folglich nötig
ist, daß der
Initiator und das Ziel synchron arbeiten, kann der Wirkungsgrad
der Datenübertragung
verbessert werden.
-
Es
sei erwähnt,
daß auch
andere Protokolle als BP2 als Protokolle einer höheren Ordnung als IEEE 1394
vorgeschlagen werden, beispielsweise das Funktionskontrollprotokoll
(FCP).
-
1.3. Busrücksetzvorgang
-
Gemäß der Norm
IEEE 1394 geschieht ein Busrücksetzvorgang,
wenn Leistung angelegt oder Vorrichtungen während anliegender Leistung
abgetrennt oder verbunden wurden. Anders ausge drückt, jeder Knoten überwacht
den Spannungszustand am entsprechenden Anschluß. Wenn an einem Anschluß eine Spannungsänderung
auftritt, weil beispielsweise ein neuer Knoten an den Bus angeschlossen
wurde, informiert ein Knoten, der diese Änderung wahrgenommen hat, die
anderen Knoten am Bus darüber, daß ein Busrücksetzvorgang
eingetreten ist. Die physische Schicht jedes Knotens teilt der Verknüpfungsschicht
mit, daß ein
Busrücksetzvorgang
stattgefunden hat.
-
Wenn
ein solcher Busrücksetzvorgang
eintritt, wird Topologieinformation, beispielsweise Knotenkennungen,
gelöscht,
dann wird diese Topologieinformation automatisch zurückgesetzt.
Mit anderen Worten, es wird nach einem Busrücksetzvorgang eine Baumidentifikation
und Selbstidentifikation durchgeführt. Dann werden die Knoten
festgelegt, die als Leitknoten dienen sollen, beispielsweise der isochrone
Betriebsmittelmanager, Taktführer
und Busmanager. Die gewöhnliche
Paketübertragung
beginnt.
-
Da
bei dieser Norm IEEE 1394 die Topologieinformation nach jedem Busrücksetzvorgang
automatisch zurückgesetzt
wird, kann eine Heißstöpsel-Konfiguration
verwirklicht werden, bei der die Kabel der elektronischen Ausrüstung frei
entfernt oder eingefügt
werden können.
-
Es
sei erwähnt,
daß bei
Auftreten eines Busrücksetzvorganges
während
einer Transaktion, diese aufgehoben wird. Der anfordernde Knoten,
der die annullierte Transaktion ausgegeben hat, überträgt das Anforderungspaket erneut,
nachdem die Topologieinformation zurückgesetzt wurde. Der antwortende
Knoten schickt kein Antwortpaket für eine durch einen Busrücksetzvorgang
aufgehobene Transaktion an den anfordernden Knoten zurück.
-
2. Gesamtkonfiguration
-
Die
Gesamtkonfiguration der Datenübertragungssteuervorrichtung
gemäß diesem
Ausführungsbeispiel
der Erfindung wird nachfolgend unter Hinweis auf 4 beschrieben.
-
In 4 ist
eine PHY-Schnittstelle 10 ein Schaltkreis, der eine Schnittstelle
mit einer PHY-Vorrichtung bereitstellt (Baustein der physischen Schicht).
-
Ein
Verknüpfungskern 20 (Verknüpfungseinrichtung)
ist ein Schaltkreis, der in Hardware verwirklicht ist und einen
Teil des Verknüpfungsschichtprotokolls
und des Transaktionsschichtprotokolls bereitstellt. Er bietet verschiedene
Dienstleistungen in bezug auf die Paketübertragung zwischen den Knoten. Ein
Register 22 ist zum Steuern des Verknüpfungsknotens 20 vorgesehen
und verwirklicht diese Protokolle.
-
Für asynchrone Übertragung,
isochrone Übertragung
bzw. Empfang sind FIFO-Bauelemente vorgesehen, ein FIFO (ATF) 30,
ein FIFO (ITF) 32 und ein FIFO (RF) 34. Sie sind
jeweils in Hardware als Register oder Halbleiterspeicher gestaltet.
Bei diesem Ausführungsbeispiel
der Erfindung haben diese FIFO-Bauelemente 30, 32 und 34 eine
extrem kleine Anzahl an Stufen. Die Zahl der Stufen pro FIFO kann
beispielsweise nicht mehr als 3 oder nicht mehr als zwei betragen.
-
Eine
DMAC 40 (Leseeinrichtung), eine DMAC 42 (Leseeinrichtung)
und eine DMAC 44 (Schreibeinrichtung sind DMA-Steuerungen
für ATF, ITF
bzw. RF. Die Verwendung dieser DMAC 40, 42 und 44 ermöglicht eine
Datenübertragung
zwischen einem RAM 80 und dem Verknüpfungskern 20 ohne über eine
CPU 66 zu gehen. Es sei erwähnt, daß ein Register 46 Steuerung,
beispielsweise für
die DMAC 40, 42 und 44 bietet.
-
Eine
Anschlußschnittstelle 50 ist
ein Schaltkreis, der eine Schnittstelle mit einer Vorrichtung der Anwendungsschicht
bereitstellt (beispielsweise einer Vorrichtung zum Durchführen der
Druckverarbeitung für
einen Drucker). Bei diesem Ausführungsbeispiel der
Erfindung ermöglicht
es die Benutzung dieser Anschlußschnittstelle 50,
beispielsweise 8-Bit-Daten zu übertragen.
-
Ein
FIFO (PF) 52 ist ein FIFO zur Benutzung für die Übertragung
von Daten zwischen einer Vorrichtung der Anwendungsschicht, und
eine DMAC 54 ist eine DMA-Steuerung für PF. Ein Register 56 bietet eine
Steuerung der Anschlußschnittstelle 50 und
der DMAC 54.
-
Ein
SBP-2 Kern 84 ist ein Schaltkreis, der einen Teil des SBP-2
Protokolls mittels Hardware verwirklicht. Ein Register 88 ermöglicht die
Steuerung des SBP-2 Kerns 84. Ein DMAC 86 (für SBP-2) ist eine DMA-Steuerung
für den
SBP-2 Kern 84.
-
Eine
RAM Bereichsmanagementschaltung 300 ist ein Schaltkreis
zum Verwalten der verschiedenen Bereiche innerhalb des RAM 80.
Wenn jeder der Bereiche im RAM 80 voll oder leer wird,
nutzt die RAM Bereichsmanagementschaltung 300 Voll- oder Leersignale
zum Steuern der DMAC 40, 42, 44, 54 und 86.
-
Eine
CPU Schnittstelle 60 stellt eine Schnittstelle mit der
CPU 66 her, die die Datenübertragungssteuervorrichtung
steuert. Die CPU Schnittstelle 60 weist einen Adressendekodierer 62,
eine Datensynchronisationsschaltung 63 und eine Unterbrechungssteuerung 64 auf.
Eine Taktsteuerschaltung 68 steuert die von diesem Ausführungsbeispiel
benutzten Taktsignale, und es werden in diese SCLK eingegeben, die
von der PHY Vorrichtung (PHY-Chip) und von der Hauptuhr HCLK gesendet
werden. Ein Puffermanager 70 ist ein Schaltkreis, der die
Schnittstelle mit dem RAM 80 verwaltet. Der Puffermanager 70 weist
ein Register 72 zum Steuern des Puffermanagers, eine Entscheidungsschaltung 74,
welche über die
Bus-Verbindung mit dem RAM 80 entscheidet, und eine Folgesteuerung 76 auf,
die verschiedene Steuersignale erzeugt.
-
Der
RAM 80 wirkt als Paketspeichereinrichtung für Direktzugriff,
bei dem diese Funktion durch SRAM, SDRAM oder DRAM oder dergleichen
verwirklicht ist.
-
Es
sei erwähnt,
daß der
RAM 80 bei diesem Ausführungsbeispiel
der Erfindung innerhalb der Datenübertragungssteuervorrichtung
aufgenommen sein kann, aber es ist auch möglich, einen Teil oder den
gesamten RAM 80 extern anzubringen.
-
Ein
Beispiel der Speicherkarte des RAM 80 ist in 5 gezeigt.
Bei diesem Ausführungsbeispiel der
Erfindung gemäß 5 ist
der RAM 80 in Vorspannbereiche (AR2, AR3, AR4 und AR6)
und Datenbereiche (AR5, AR7, AR8 und AR9) unterteilt. Der Vorspann
eines Pakets (allgemein gesprochen, Steuerinformation) ist in einem
Vorspannbereich und die Daten (ORB und Strom) sind in einem Datenbereich gespeichert.
-
Bei
diesem Ausführungsbeispiel
der Erfindung sind die Datenbereiche (AR5, AR7, AR8 und AR9) im
RAM 80 in ORB Bereiche (AR5 und AR7) und Strombereiche
(AR8 und AR9) unterteilt, wie aus 5 hervorgeht.
-
Darüber hinaus
ist der RAM 80 bei diesem Ausführungsbeispiel in Empfangsbereiche
(AR2, AR4, AR5 und AR9) sowie Sendebereiche (AR3, AR6, AR7 und AR8)
unterteilt.
-
Es
sei erwähnt,
daß jeder
ORB (erste Daten für
eine erste Schicht) Daten (Befehle) darstellt, die SBP-2 entsprechen,
wie vorstehend beschrieben. Ein Strom (zweite Daten für eine zweite
Schicht, die sich oberhalb der ersten Schicht befindet) sind Daten für die Anwendungsschicht
(beispielsweise Druckdaten für
einen Drucker, Lese- oder Schreibdaten für ein CD-RW oder Bilddaten,
die von einem Scanner abgerufen wurden).
-
Ein
Seitentabellenbereich für
Hardware (HW), ein Empfangsvorspannbereich für HW und ein Sendevorspannbereich
für HW,
die mit AR1, AR2 und AR3 bezeichnet sind, sind vom SBP-2 Kern 84 gemäß 4 benutzte
Bereiche für
das Schreiben und Lesen der Seitentabelle, des Empfangsvorspanns
und des Sendevorspanns.
-
Es
sei erwähnt,
daß die
mit AR4, AR5, AR8 und AR9 in 5 bezeichneten
Bereiche eine Struktur bilden, die als Ringpuffer bezeichnet wird.
-
Ein
in 4 gezeigter Bus 90 (oder Busse 92 und 94)
dient zur Verbindung mit Anwendungen (ein erster Bus). Ein weiterer
Bus 95 (oder Bus 96), der zum Steuern der Datenübertragungssteuervorrichtung
dient, ist elektrisch mit einem Baustein verbunden (beispielsweise
einer CPU), welche die Datenübertragungssteuervorrichtung
als ein zweiter Bus steuert. Als dritter Bus dient noch ein weiterer Bus 100 (oder
Busse 102, 104, 105, 106, 107, 108 und 109)
zum elektrischen Anschluß an
Vorrichtungen der physischen Schicht (beispielsweise einen PHY-Baustein).
Ein weiterer Bus 110 (ein vierter Bus) dient zur elektrischen
Verbindung mit dem RAM, der als Speichereinrichtung für Direktzugriff
wirkt. Noch ein weiterer Bus 99 (ein fünfter Bus) dient zum Lesen und
Schreiben von Vorspanninformation und Seitentabelleninformation
zur Aktivierung des SBP-2 Kerns 84, um den SBP-2 mittels
Hardware zu verwirklichen.
-
Die
Entscheidungsschaltung 74 im Puffermanager 70 entscheidet über Buszugriffsanforderungen
von den DMAC 40, 42 und 44, der CPU Schnittstelle 60 sowie
den DMAC 86 und 54. Auf der Grundlage der Ergebnisse
dieser Entscheidung wird ein Datenweg zwischen einem der Busse 105, 107, 109, 96, 99 und 94 und
dem Bus 110 des RAM 80 hergestellt (das heißt es wird
ein Datenweg von einem der Busse eins, zwei, drei und fünf zum vierten
Bus hergestellt).
-
Ein
Merkmal dieses Ausführungsbeispiels der
vorliegenden Erfindung besteht in der Art und Weise, in der es mit
dem RAM 80 versehen ist, welcher Pakete in einer Weise
für direkten
Zugriff speichert, und auch die untereinander unabhängigen Busse 90, 96, 99 und 100 ebenso
wie die Entscheidungsschaltung 74 zum Verbinden eines dieser
Busse mit dem Bus 110 des RAM 80.
-
Eine
Datenübertragungssteuervorrichtung, die
einen anderen Aufbau hat als dieses Ausführungsbeispiel ist als Beispiel
in 6 gezeigt. Bei dieser Datenübertragungssteuervorrichtung
ist ein Verknüpfungskern 902 durch
eine PHY-Schnittstelle 100 und einen Bus 922 mit
einem PHY-Baustein
verbunden. Der Verknüpfungskern 902 ist
mit einer CPU 912 über
FIFO-Bauelemente 904, 906 und 908, eine CPU
Schnittstelle 910 und einen Bus 920 verbunden. Über einen
Bus 924 ist die CPU 912 auch an einen RAM 914 angeschlossen,
bei dem es sich um einen lokalen Speicher in der CPU handelt.
-
Das
Verfahren zur Übertragung
von Daten mit der Datenübertragungssteuervorrichtung
des in 6 gezeigten Aufbaus soll nun unter Hinweis auf 7 beschrieben
werden. Ein empfangenes Paket, das von einem anderen Knoten durch
einen PHY-Baustein 930 gesendet wird, durchläuft den
Bus 922, eine Datenübertragungssteuervorrichtung 932 und
den Bus 920 und wird dann von der CPU 912 angenommen.
Die CPU 912 schreibt das angenommene, empfangene Paket über den
Bus 924 zeitweilig in den RAM 914. Dann liest 912 das
empfangene Paket, das über
den Bus 924 in den RAM 914 eingeschrieben wurde,
verarbeitet das empfangene Paket zu einer Form, die von der Anwendungsschicht
benutzt werden kann, überträgt es dann über einen
Bus 926 an eine Vorrichtung 934 der Anwendungsschicht.
Wenn andererseits die Vorrichtung 934 der Anwendungsschicht
Daten überträgt, schreibt
die CPU 912 diese Daten in den RAM 914. Den Daten
im RAM 914 wird ein Vorspann hinzugefügt, um ein Paket zu schaffen,
das der Norm IEEE 1394 entspricht. Das so geschaffene Paket wird über den
Weg, der die Datenübertragungssteuervorrichtung 932 und den
PHY-Baustein 930 aufweist, an einen weitern Knoten gesandt.
-
Wenn
aber das Datenübertragungsverfahren gemäß 7 angewandt
wird, ist die Verarbeitungsbelastung der CPU 912 äußert groß. Das bedeutet, daß selbst
bei einer großen Übertragungsgeschwindigkeit über den
die Knoten verbindenden seriellen Bus die tatsächliche Übertragungsgeschwindigkeit des
gesamten Systems durch Faktoren, wie Verarbeitungsorganisation der
CPU 912 verlangsamt wird, so daß es letztendlich nicht möglich ist,
eine Hochgeschwindigkeitsdatenübertragung
zu erhalten.
-
Im
Gegensatz dazu stellt dieses Ausführungsbeispiel der Erfindung
sicher, daß der
Bus 90 zwischen einer Datenübertragungssteuervorrichtung 120 und
einer Vorrichtung der Anwendungsschicht 124; der CPU Bus 96;
und der Bus 110 zwischen der Datenübertragungsteuervorrichtung 120 und
dem RAM 80 jeweils voneinander getrennt sind, wie 8 zeigt.
Hier ist die Konfiguration folglich so, daß der CPU Bus 96 ausschließlich zum
Steuern der Datenübertragung
benutzt werden kann. Der Bus 90 ist auch so zugeordnet,
daß er
für die
Datenübertragung zwischen
der Datenübertragungssteuervorrichtung 120 und
der Vorrichtung 124 der Anwendungsschicht verwendet werden
kann. Ist beispielsweise das elektronische Gerät, in das die Datenübertragungssteuervorrichtung 120 eingebaut
ist, ein Drucker, kann der Bus 90 ausschließlich zum Übertragen
von Druckdaten verwendet werden. Folglich kann die Verarbeitungsbelastung
der CPU 66 verringert und die tatsächliche Übertragungsgeschwindigkeit
des Gesamtsystems erhöht
werden. Außerdem
kann eine kostengünstige
Vorrichtung als CPU 66 verwendet werden, und es ist auch
nicht mehr nötig,
einen Hochgeschwindigkeitsbus als CPU Bus 96 vorzusehen.
Hierdurch ist sichergestellt, daß das elektronische Gerät billiger
und kompakter gemacht werden kann.
-
3. Merkmale dieses Ausführungsbeispiels
-
3.1. Durch Busrücksetzvorgang wechselndes Bit
-
Eine
IEEE 1394 Transaktion wird dadurch vollendet, daß der anfordernde Knoten ein
Anforderungspaket an den antwortenden Knoten sendet und der anfordernde
Knoten das entsprechende Antwortpaket vom antwortenden Knoten empfängt, wie
in 9A gezeigt. Es gibt kein Problem, wenn nach Vollendung
einer solchen Transaktion ein Busrücksetzvorgang eintritt.
-
Wenn
aber während
einer Transaktion ein Busrücksetzvorgang
eintritt, halt die Transaktion an, wie bei C1 in 9B dargestellt.
In einem solchen Fall kann der antwortende Knoten das Antwortpaket für die angehaltene
Transaktion nicht an den anfordernden Knoten zurücksenden. Da die Transaktion vollendet
wurde, muß der
anfordernde Knoten das Anforderungspaket erneut an den antwortenden Knoten
senden, wie bei C2 dargestellt.
-
Wenn
die Datenübertragungsteuervorrichtung
gemäß diesem
Ausführungsbeispiel
der vorliegenden Erfindung in ein peripheres Gerät, beispielsweise einen Drucker
oder ein CD-RW Laufwerk eingebaut ist, ist es unter dem Gesichtspunkt,
die Produktionskosten unter Kontrolle zu halten, üblich, eine preisgünstige CPU
mit wenig Verarbeitungsvermögen
als CPU 66 in 4 vorzusehen. Die Verarbeitungskapazität der Firmware
zum Betreiben der CPU 66 ist deshalb auch gering. Das bedeutet,
daß empfangene
Pakete nicht verarbeitet werden können, sobald sie empfangen
werden, so daß eine
große
Anzahl unverarbeiteter empfangener Pakete im RAM 80 vorhanden
ist. Deshalb muß beim
Auftreten eines Busrücksetzvorganges
eine Verarbeitung durchgeführt
werden, um festzustellen, ob diese unverarbeiteten Pakete entweder
vor oder nach dem Busrücksetzvorgang
empfangen wurden. Anders ausgedrückt,
eine Verarbeitung muß durchgeführt werden, damit
der Zeitpunkt festgestellt werden kann, an dem der Busrücksetzvorgang
geschah. Da die Verarbeitungskapazitäten insgesamt als niedrig erachtet
werden, wie schon erwähnt,
sollte die Verarbeitung zum Feststellen der Zeit, zu der ein Busrücksetzvorgang eintrat,
vorzugsweise so sein, daß die
Belastung verringert wird.
-
Bei
diesem Ausführungsbeispiel
der vorliegenden Erfindung wird das unter Hinweis auf 10 beschriebene
Verfahren angewandt.
-
Mit
anderen Worten, ein Busrücksetzintervall wird
definiert als das Intervall zwischen einem Busrücksetzvorgang (einem Zurücksetzen
das Knoteninformation löscht)
und dem nächsten
Busrücksetzvorgang.
Wie als Beispiel in 10 dargestellt, ist das Intervall
zwischen Busrücksetzvorgängen M und
M + 1 ein Busrücksetzintervall
M und das Intervall zwischen Busrücksetzvorgängen M + 1 und M + 2 ein Busrücksetzintervall
M + 1.
-
Hierbei
wird in diesem Ausführungsbeispiel der
Erfindung ein Wechselbit BT (allgemein gesagt Identifikationsinformation)
erzeugt, um festzustellen, ob ein empfangenes Paket und das nächste empfangene
Paket in unterschiedlichen Rücksetzintervallen empfangen
wurden oder nicht. Die Auslegung ist dabei so, daß dieses
Wechselbit BT mit jedem Paket verknüpft und in den RAM eingeschrieben
wird (die Paketspeichereinrichtung), wie bei C11 in 10 gezeigt.
-
Mit
anderen Worten, die Pakete N und N + 1 wurden in der gleichen Busrücksetzperiode
M der 10 empfangen, so daß BT für beide
Null ist. Da die Pakete N + 1 und N + 2 in unterschiedlichen Busrücksetzintervallen
M und M + 1 empfangen wurden, ist das BT für das Paket N + 1 Null, während das
BT für
das Paket N + 2 1 ist. Mit anderen Worten, das BT wechselt zwischen
Null und Eins. Ähnlich
wurden die Pakete N + 4 und N + 5 in den Busrücksetzintervallen M + 1 und
M + 2 empfangen, so daß das
BT von Eins zu Null wechselt. Die Pakete N + 5 und N + 6 wurden während der
Busrücksetzintervalle
M + 2 und M + 4 empfangen, so daß das BT von Null zu Eins wechselt.
-
Wie
aus C12, C13 und C14 in 10 hervorgeht,
ist folglich die Konfiguration so, daß der Zeitpunkt, zu dem BT
gewechselt hat, der Zeit entspricht, zu der der Busrücksetzvorgang
eintrat (Grenzen im RAM). Aus diesem Grund kann die Firmware (Verarbeitungseinrichtung)
die Zeit, zu der der Busrücksetzvorgang
passierte, einfach dadurch erfahren, daß die Zeit geprüft wird,
zu der BT wechselte. Folglich kann die Firmware die Verarbeitung
durchführen und
die Pakete N + 6, N + 7 und N + 8 (die beispielsweise nach dem letzten
Busrücksetzvorgang
empfangen wurden) auf die übliche
Weise verarbeiten und eine Verarbeitung zum Vernichten der Pakete
N bis N + 5 durchführen,
die vor dem Eintritt des letzten Busrücksetzvorganges empfangen wurden.
-
Dieses
Ausführungsbeispiel
der vorliegenden Erfindung ist besonders durch die Art und Weise gekennzeichnet,
in der BT bei C15 in 10 nicht wechselt. Mit anderen
Worten, wenn BT so zu setzen wäre,
daß es
jedes Mal beim Auftreten eines Busrücksetzvorganges wechselte,
würde es
bei C15 wechseln, weil dann der Busrücksetzvorgang M + 4 auftritt.
Sollte das passieren, würde
BT unabhängig von
der Tatsache, daß die
Pakete N + 5 und N + 6 in unterschiedlichen Busrücksetzintervallen empfangen werden,
bei C14 in 10 von Null zu Eins wechseln.
Folglich kommt es zu einem Problem, denn die Firmware wäre nicht
imstande, das Auftreten des Busrücksetzvorganges
zwischen dem Empfang des Pakets N + 5 und dem Empfang des Pakets
N + 6 zu erkennen.
-
Diese
Schwierigkeit tritt bei dem Ausführungsbeispiel
der vorliegenden Erfindung nicht auf, denn es ist so gestaltet,
daß BT
nur unter der Bedingung von Null zu Eins oder von Eins zu Null wechselt, wenn
aufeinander folgend empfangene Pakete in unterschiedlichen Rücksetzintervallen
empfangen wurden.
-
Es
sei noch erwähnt,
daß bei
diesem Ausführungsbeispiel
der Erfindung der unter Hinweis auf 5 beschriebene
RAM in einen Vorspannbereich und einen Datenbereich (ORB und Strom)
unterteilt ist. Die im Vorspannbereich gespeicherten Vorspanne und
die im Datenbereich gespeicherten Daten sind durch Datenzeiger verknüpft, die
die Vorspanne aufweisen. Bei diesem Ausführungsbeispiel der Erfindung
ist das vorstehend beschriebene Wechselbit BT (Identifikationsinformation)
innerhalb des Vorspanns enthalten, der in den Vorspannbereich geschrieben
ist, wie 11 zeigt. Aufgrund dieser Konfiguration
kann die Firmware auf einfache Weise den Zeitpunkt erfassen, zu
dem der Busrücksetzvorgang eintrat,
indem einfach alle Vorspanne im Vorspannbereich gelesen und die
Werte des BT in diesen Vorspannen geprüft werden. Hierdurch ist eine
weitere Verringerung der Verarbeitungsbelastung für die Firmware
erzielbar.
-
Es
sei erwähnt,
daß die
Beschreibung unter Hinweis auf 10 einen
Fall betrifft, bei dem die Identifikationsinformation ein einziges
Bit Daten ist; aber die Identifikationsinformation kann ebenso gut zwei
oder mehr Bits Daten darstellen. Der Wert der Identifikationsinformation
könnte
zum Beispiel auf 1, 2, 3 und so weiter bei C12, C13 und C14 in 10 erhöht werden,
statt von Null zu Eins oder Eins zu Null zu wechseln.
-
3.2. Busrücksetzzeiger
-
Dieses
Ausführungsbeispiel
der vorliegenden Erfindung ist auch mit einem Busrücksetzzeigerregister
BPR (erste Zeigerspeichereinrichtung) versehen, was eine wirksame
Erkennung des Zeitpunktes des Busrücksetzvorganges ermöglicht,
wie aus 12 hervorgeht.
-
Hier
spezifiziert ein innerhalb des Busrücksetzzeigerregisters BPR gehaltener
Busrücksetzzeiger
BP eine Grenze RB1 im RAM zwischen den Paketen N bis N + 2, die
empfangen wurden, ehe ein Busrücksetzvorgang
auftrat, und den Pakten N + 3 bis N + 6, die empfangen wurden, nachdem
der Busrücksetzvorgang
stattfand. Genauer gesagt, deutet der Zeiger BP die Startadresse
des nächsten
Pakets N + 3 nach dem Paket N + 2 an, welches unmittelbar vor Eintritt
des Busrücksetzvorganges
empfangen wurde.
-
Dieses
Ausführungsbeispiel
der vorliegenden Erfindung ist auch mit einem Zeigerregister für verarbeitete
Pakete UPR (zweite Zeigerspeichereinrichtung) und einem Zeigerregister
für empfangene Pakete
PPR (dritte Zeigerspeichereinrichtung) versehen, wie aus 12 hervorgeht.
-
Hier
spezifiziert ein Zeiger UP für
verarbeitete Pakete, der im Register UPR gehalten ist, eine Grenze
RBP2 im RAM zwischen einem verarbeiteten (benutzten) Paket N – 1 und
einem unverarbeiteten (nicht benutzten) Paket N. Genauer gesagt,
zeigt der Zeiger UP die Startadresse des nächsten Pakets N nach dem verarbeiteten
Paket N – 1.
-
Ähnlich spezifiziert
ein Zeiger PP für
empfangene Pakete, der innerhalb des Registers PPR gehalten ist,
eine Grenze RBP3 im RAM zwischen dem letzten (nach) empfangenen
Paket N + 6 und dem nicht empfangenen N + 7 (dem nächsten Paket,
das hätte
empfangen werden sollen). Genauer gesagt zeigt der Zeiger PP die
Startadresse des nicht empfangenen Pakets N + 7 an, das als nächstes nach dem
letzten empfangenen Paket N + 6 hätte ankommen sollen.
-
Die
Anordnung des Registers BPR erlaubt es der Firmware, zwischen einem
Paket, das vor dem Busrücksetzvorgang
empfangen wurde, und einem Paket zu unterscheiden, welches nach
dem Busrücksetzvorgang
empfangen wurde, und das auf einfache Weise. Die Anordnung der Register
UPR und PPR ermöglicht
es auch der Firmware festzustellen, welches der Pakete nicht verarbeitet
wurde, auch auf einfache Weise (die Pakete N bis N + 6 in 12 sind unverarbeitet).
-
Insbesondere
zeigt der Zeiger BP die Startadresse des Pakets N + 3 an, welches
unmittelbar nach dem Busrücksetzvorgang
empfangen wurde. Die Firmware kann deshalb mit dem Verarbeiten der Pakete
nach dem Busrücksetzvorgang
ganz einfach dadurch beginnen, daß sie den Zeiger BP aus dem Register
BPR liest. Der Zeiger UP zeigt die Startadresse des unverarbeiteten
Pakets N an. Durch einfaches Lesen des Zeigers UP aus dem Register
UPR kann deshalb die Firmware mit der Verarbeitung unverarbeiteter
Pakete beginnen.
-
Ein
weiteres, in Betracht zu ziehendes Verfahren zur Unterscheidung
zwischen einem vor einem Busrücksetzvorgang
empfangenen Paket und einem nach dem Busrücksetzvorgang empfangenen Paket
ist ein Verfahren, das ein Paket nutzt, welches als Busrücksetzpaket
bezeichnet wird. Die Benutzung eines solchen Busrücksetzpaketes
ermöglicht es
festzustellen, daß Pakete
N bis N + 2, die vor dem Busrücksetzpaket
gespeichert wurden, Pakete sind, die vor dem Busrücksetzvorgang
empfangen wurden, und daß Pakete
N + 3 bis N + 6, die nach dem Busrücksetzpaket gespeichert sind,
Pakete sind, die nach dem Busrücksetzvorgang
empfangen wurden, wie aus 13A hervorgeht.
-
Bei
diesem Verfahren muß allerdings
die Firmware unverarbeitetes empfangenes Paket in Folge aus dem
RAM bis zum Busrücksetzpaket
lesen, wie in den Schritten S1 und S2 im Ablaufdiagramm der 13B gezeigt. Deshalb gibt es bei diesem Verfahren
insofern eine Schwierigkeit, als die Firmware unter einer großen Verarbeitungslast
leidet, und diese Schwierigkeit ist besonders schlimm, wenn es eine
große
Anzahl unverarbeiteter Pakete gibt, die sich im RAM angesammelt
haben.
-
Im
Gegensatz dazu wird mit diesem Ausführungsbeispiel der Erfindung,
welches den Busrücksetzzeiger
BP benutzt, sichergestellt, daß die
Firmware nur den Zeiger BP aus dem Register BPR lesen muß, wie im
Schritt S3 in 13C gezeigt. Im Vergleich zu
dem in 13B gezeigten Verfahren kann die
Verarbeitungslast der Firmware infolgedessen dramatisch verringert
werden.
-
Bei
diesem Ausführungsbeispiel
der vorliegenden Erfindung ist der in 5 gezeigte
RAM in einen Vorspannbereich und einen Datenbereich unterteilt.
Aus diesem Grund sind als Busrücksetzzeigerregister
BR der 12 ein Busrücksetzvorspann-Zeigerregister
BR der 12 ein Busrücksetzvorspann-Zeigerregister
BHPR (vierte Zeigerspeichereinrichtung) und ein Busrücksetz-ORB-Zeigerregister
BOPR (fünfte
Zeigerspeichereinrichtung) vorgesehen, wie 14 zeigt.
-
Außerdem sind
als Zeigerregister für
verarbeitete Pakete UPR ein Zeigerregister für verarbeitete Vorspanne UHPR
und ein Zeigerregister für
verarbeitete ORB UOPR vorgesehen. Als Zeigerregister für empfangene
Pakete PPR ist ein Zeigerregister für empfangene Vorspanne PHPR
und ein Zeigerregister für
empfangene ORB POPR vorgesehen.
-
In
diesem Fall spezifizieren Zeiger BHP (vierte Zeigerinformation),
UHP und PHP, die in den Registern BHPR, UHPR bzw. PHPR gehalten
sind, Grenzen RB11 RB11, RB21 und RB31 innerhalb des Vorspannbereichs
des RAM.
-
Ähnlich spezifizieren
Zeiger BOP (fünfte
Zeigerinformation), UOP und POP, die in den Registern BOPR, UOPR
bzw. POPR gehalten sind, Grenzen RB12, RB22 und RB32 innerhalb des
ORB (erste Daten) Bereichs des RAM.
-
Die
nachfolgend beschriebenen Vorteile können erhalten werden, wenn
man den Zeiger BOP benutzt, der die Grenze RB12 des Busrücksetzvorgangs
im ORB Bereich anzeigt, wie in 14 dargestellt.
-
Mit
anderen Worten, da die Grenze RB12 im ORB Bereich mit einem Verfahren
spezifiziert werden kann, welches nur einen Zeiger BHP benutzt,
der die Grenze RB11 im Vorspannbereich anzeigt, muß die Firmware
die im Ablaufdiagramm der 15A dargestellte
Verarbeitung durchführen.
-
Zuerst
wird die Adresse des Zeigers UOP gespeichert (Schritt S10). Dann
bestimmt das System, ob es vor dem Zeiger BHP einen Vorspann gibt oder
nicht (Schritt 11) und, wenn es einen gibt, liest es den
Vorspann (Schritt S12). Dadurch wird zum Beispiel der Vorspann in 14 gelesen.
-
Das
System bestimmt dann, ob der gerade gelesene Vorspann der Vorspann
eines Pakets (ORB Paket) ist, welches Daten im ORB Bereich hat (Schritt
S13). Da die Vorspanne N und N + 1 in 14 nicht
die Vorspanne von ORB Paketen sind, kehrt der Ablauf zu den Schritten
S11 und S12 zurück,
ohne zum Schritt S14 fortzufahren. Da die Vorspanne N + 2 und N
+ 3 andererseits ORB-Pakete sind, kehrt der Ablauf zu den Schritten
S11 und 12 zurück,
ohne zum Schritt S14 fortzufahren. Da die Vorspanne N + 2 und N
+ 3 andererseits ORB-Zeiger sind, fährt der Ablauf an diesem Punkt
mit dem Schritt S14 fort, wo die Adressen der ORB-Zeiger (die Grenzen
RB02 und RB12) berechnet und gespeichert werden, und zwar anhand
der Datenzeiger und Datenlängen,
die in diesen Vorspannen enthalten sind. Da der nächste Vorspann
N + 4 kein ORB-Zeiger ist, kehrt der Ablauf an diesem Punkt zu S11
zurück.
Da im Schritt S11 bestimmt wurde, daß es vor dem Zeiger BHP keinen
Vorspann gibt, zweigt, wenn dies geschieht, der Ablauf zum Schritt
S15 ab, wo festgestellt wird, daß die Adresse (RB12) des unmittelbar
zuvor gespeicherten ORB-Zeigers die Grenze des ORB Bereichs ist,
wegen des Busrücksetzvorgangs.
-
Wie
gesagt, muß bei
dem Verfahren der alleinigen Benutzung des Zeigers BHP die Firmware
eine große
Verarbeitungslast tragen, wie aus 15A hervorgeht.
Diese Situation wird besonders ernst, wenn die Verarbeitungskapazitäten der
Firmware gering sind und sich eine große Anzahl von Vorspannen im
RAM angesammelt hat. Im Gegensatz dazu macht es die Verwendung des
Zeigers BOP möglich,
daß die
Firmware die Grenze RB12 ganz einfach durch Lesen des Zeigers BOP
aus dem Register BOPR bestimmt, wie im Ablaufdiagramm gemäß 15B gezeigt. Im Vergleich mit dem Verfahren der
alleinigen Benutzung des Zeigers BHP ist infolgedessen hier eine
dramatische Verringerung der Verarbeitungsbelastung für die Firmware
möglich.
Unter SBP-2 hat jeder Knoten (Initiator oder Ziel) zusätzlich zu
der üblichen
16-Bit Knotenkennung eine 64-Bit Kennung (ID), die als EUI-64 bezeichnet
ist. Im Gegensatz zu den Knotenkennungen, die durch einen Busrücksetzvorgang
zurückgesetzt
werden und die immer nach einem Busrücksetzvorgang wahrscheinlich
völlig anders
sind, ist jede EUI-64 einmalig für
den entsprechenden Knoten und infolgedessen nach einem Busrücksetzvorgang
nicht verändert.
Deshalb ist es nötig,
jede EUI-64 nach einem Busrücksetzvorgang
mit einer neuen Knotenkennung zu verknüpfen; und zur Verarbeitung
dieser Verknüpfung
wird eine große
Anzahl von Paketen zwischen den Knoten übertragen. Aus diesem Grund
sammeln sich im RAM innerhalb kurzer Zeit nach einem Busrücksetzvorgang
viele Pakete an. Die Zahl dieser angesammelten Pakete nimmt in dem
Maß zu,
wie die Anzahl der an den Bus angeschlossenen Knoten steigt.
-
Es
ist klar, daß sich
die Verarbeitung dieser Knoten verzögert, wenn die Firmware (Transaktionsschicht)
jedes Knotens der Verarbeitung der Pakete Priorität geben
würde,
die empfangen wurden, ehe der Busrücksetzvorgang geschah. Wenn
die Verarbeitung eines Knotens sich verzögert, werden dadurch auch die
anderen Knoten beeinträchtigt.
-
Wenn
ein Busrücksetzvorgang
bei diesem Ausführungsbeispiel
der vorliegenden Erfindung eingetreten ist, verarbeitet die Firmware
(Verarbeitungseinrichtung) zuerst ein Paket, das nach dem Busrücksetzvorgang
empfangen wurde.
-
Wenn
festgestellt wird, daß ein
Busrücksetzvorgang
eingetreten ist (Schritt S20 im Ablaufdiagramm der 16)
bedeutet dies mit anderen Worten, daß die Firmware die Zeiger BHP
und BOP aus den Registern BHPR und BOPR liest (Schritt S21). Dann
gibt sie der Verarbeitung eines Pakets Priorität, welches nach dem Busrücksetzvorgang
empfangen wurde (ein Paket, was die Knotenkennung und EUI 64 verknüpft) (Schritt
S22). Mit anderen Worten, dieses Ausführungsbeispiel der Erfindung
stellt die Zeiger BHP und BOP im voraus zur Verfügung, wie schon gesagt, und
macht es dadurch möglich,
ein Paket zu spezifizieren, das nach einem Busrücksetzvorgang empfangen wurde,
und zwar durch das einfache Verfahren des Lesens dieser Zeiger aus
den Registern BHPR und BOPR. Folglich gibt es keine nennenswerte
Vergrößerung der
Verarbeitungsbelastung der Firmware, selbst wenn auf diese Weise die
Verarbeitung dem nach einem Busrücksetzvorgang
empfangenen Paket Priorität
gibt.
-
Die
Firmware liest dann die Zeiger UHP und UOP aus den Registern UHPR
und UOPR (Schritt S23) und verarbeitet die vor dem Busrücksetzvorgang
empfangenen Pakete (Schritt S24). Sie fährt in anderen Worten mit der
Verarbeitung fort, beispielsweise mit der Bestimmung, ob die Pakete
zerstört werden
sollen oder nicht, oder ob sie für
eine Transaktion bestimmt sind, die durch den Busrücksetzvorgang
angehalten wurde.
-
3.3. Busrücksetzsendehaltzustand
-
Die übliche Sendeverarbeitung
wird dadurch begonnen, daß die
Firmware einen Sendestartbefehl ausgibt (durch Schreiben des Sendestartbefehls
in das Register 46 in 4), wie
in 17A gezeigt. Wenn dieser Sendestartbefehl ausgegeben
wird, wird über
den Bus entschieden, und wenn die Firmware bei der Entscheidung
erfolgreich ist, beginnt die tatsächliche Paketübertragung über den
Bus. Wenn von einem anderen Knoten ein ACK (Rückmeldung) empfangen wird,
wird der Zustand "Sendung
vollendet" der Firmware
zugeleitet.
-
Wenn
unmittelbar vor der Ausgabe des Sendestartbefehls ein Busrücksetzvorgang
aufgetreten war, wie in 17B gezeigt,
wird die übliche
Sendeverarbeitung auf ähnliche
Weise durchgeführt
wie in 17A gezeigt. Tritt ein Busrücksetzvorgang
unmittelbar nach Ausgabe des Sendestartbefehls auf, wird andererseits
das Senden angehalten, kein ACK von einem Knoten zurückgesandt
und infolgedessen der Zustand "Sendung
vollendet" nicht
an die Firmware geleitet, wie in 17C gezeigt.
-
Wenn
aber ein solcher Busrücksetzvorgang kurz
vor der Ausgabe des Sendestartbefehls (Einschreiben ins Register)
auftritt, kann die Firmware nicht bestimmen, welcher der in 17B und 17C dargestellten
Fälle eingetreten
ist.
-
Anders
ausgedrückt,
nach Ausgabe des Sendestartbefehls (Schritt S30) stellt die Firmware fest,
ob ein Busrücksetzvorgang
stattgefunden hat oder nicht (Schritt S31). Gab es keinen Busrücksetzvorgang,
wartet sie auf die Ankunft des Zustands "Sendung vollendet" (Schritt S32). Dies ist der in 17B dargestellte Fall. Wenn andererseits ein Busrücksetzvorgang
stattgefunden hat, wartet die Firmware nicht auf den Zustand "Sendung vollendet", sondern annulliert
die Sendung (Schritt S33). Dies ist der in 17C dargestellte
Fall.
-
Wenn
der Busrücksetzvorgang
kurz vor Ausgabe des Sendestartbefehls aufgetreten ist, wie bei C20
in 18A gezeigt, läuft
die Verarbeitung der Firmware in den Schritten S31 und S32 in der
Schleife und damit wird die Verarbeitung verzögert. Es ist mit anderen Worten
nicht möglich,
das Auftreten des Busrücksetzvorganges
festzustellen, so daß das Senden
nicht aufgehoben wird (die Verarbeitung wird nicht mit dem Schritt
S33 fortgesetzt), und der Zustand "Sendung vollendet" wird nicht zurückgegeben, was bedeutet, daß die Verarbeitung
in den Schritten S31 und S2 in einer Schleife verläuft.
-
Bei
diesem Ausführungsbeispiel
der vorliegenden Erfindung wird der Zustand, der anzeigt, daß die Sendung
durch einen Busrücksetzvorgang
angehalten wurde, wie in 17D gezeigt,
an die Firmware weitergegeben. Im einzelnen wird bei Auftreten eines
Busrücksetzvorganges
und wenn die Hardware der Datenübertragungssteuervorrichtung
die Verarbeitung zum Anhalten des Sendens durchführt, der Busrücksetzsendehaltzustand
in das Register 46 der 4 eingegeben.
Hierdurch wird die Firmware in die Lage versetzt, festzustellen,
ob das Senden durch den Busrücksetzvorgang
angehalten wurde oder nicht, wie im Schritt S41 der 18B gezeigt. Wenn festgestellt wird, daß das Senden
durch einen Busrücksetzvorgang
angehalten wurde, sieht die Konfiguration vor, daß das Senden
annulliert wird, ohne auf den Zustand "Sendung vollendet" zu warten (Schritt S44). Hierdurch
ist es möglich,
eine Situation zu vermeiden, bei der die Verarbeitung der Firmware sich
verzögert.
-
4. Detailliertes Beispiel
-
4.1 Detaillierte Konfiguration der Empfangsseite
-
Die
Beschreibung wendet sich nunmehr Einzelheiten der Gestaltung der
Empfangsseite zu. 19 zeigt ein Beispiel der detaillierten
Gestaltung des Verknüpfungskerns 20 (Verknüpfungseinrichtung)
eines FIFO 34 und des DMAC 44 (Schreibeinrichtung).
-
Der
Verknüpfungskern 20 weist
eine Busüberwachungsschaltung 130,
eine Seriell/Parallel-Umsetzschaltung 132 und eine Paketformungs(Umformungs)-Schaltung 160 auf.
-
Die
Busüberwachungsschaltung 130 überwacht
in diesem Fall einen 8-Bit breiten Datenbus D und einen 2-Bit breiten
Steuerbus CTL, die über
die PHY-Schnittstelle 10 mit einem PHY-Baustein verbunden
sind.
-
Die
Seriell/Parallel-Umsetzschaltung 132 setzt die Daten auf
dem Datenbus D in 32-Bitdaten um. Die Paketformungsschaltung 160 unterzieht
jedes Paket, das von einem anderen Knoten übertragen wurde, einer Formung
(Umformung) so daß eine Form
entsteht, die von einer oberen Schicht benutzt werden kann. Als
Beispiel zeigt 20A das Format eines Pakets,
das Blockdaten in einer asynchronen Übertragung entsprechend der
Norm IEEE 1394 hat. Das Format des Vorspannteils (im Vorspannbereich des
RAM 80 gespeichert) eines Pakets mit Blockdaten in asynchronem
Empfang ist in 20B gezeigt. Das so gestaltete
Ausführungsbeispiel
der vorliegenden Erfindung formt ein Paket des in 20A gezeigten Formats zu einem Paket des in 20B gezeigten Formats, so daß es von einer oberen Schicht, wie
der Firmware benutzt werden kann.
-
Die
Paketformungsschaltung 160 weist eine Paketprüfschaltung 142,
eine Folgesteuerung 167, einen Puffer 168 und
einen Wähler 170 auf;
und die Paketprüfschaltung 142 weist
eine Markierungserzeugerschaltung 162, eine Zustandserzeugerschaltung 164 und
eine Fehlerprüfschaltung 166 auf.
Die Paketprüfschaltung 142 ist
in diesem Fall ein Schaltkreis, der Pakete diagnostiziert. Die Markierungserzeugerschaltung 162 generiert
Markierungen, die Information zum Identifizieren von Schreibbereichen
in Paketen sind, und die Zustandserzeugerschaltung 164 schafft
verschiedene, den Paketen hinzuzufügende Zustände. Die Fehlerprüfschaltung 166 untersucht
Fehlerprüfinformation,
beispielsweise Paritätsinformation
und CRC, die in jedem Paket enthalten sind, um irgendwelche Fehler
darin festzustellen.
-
Die
Folgesteuerung 167 erzeugt verschiedene Steuersignale.
Mit Hilfe eines SEL-Signals von der Paketprüfschaltung 142 wählt der
Puffer 168 und der Wähler 170 einen
von DI von der Seriell/Parallel-Umsetzschaltung 132, einen
Zustand von der Paketprüfschaltung 142 oder
Datenzeiger von der DMAC 44.
-
Das
FIFO-Bauelement 34 wirkt als Puffer zum Einstellen der
Phase von RD) das sind Ausgabedaten vom Verknüpfungskern 20), und
der Phase von WDATA (das sind in den RAM 80 einzugebende Daten),
und es weist eine Beurteilungsschaltung für den FIFO-Zustand 35 auf.
Die Beurteilungsschaltung 35 für den FIFO-Zustand veranlaßt, daß ein Signal EMPTY
aktiv wird, wenn das FIFO leer ist und ein Signal FULL aktiv wird,
wenn das FIFO voll ist.
-
Die
DMAC 44 weist eine Paketdividierschaltung 180,
eine Zugriffanforderungs-Ausführschaltung 190 und
eine Zugriffanforderungs-Erzeugerschaltung 192 auf. Die
Paketdividierschaltung 180 teilt in diesem Fall Pakete
auf, die von der Paketformungsschaltung 160 zu Daten, Vorspannen
und sonstigen Teilen geformt wurden, und zwar auf der Basis der Markierungen
(DTAG), und sie gibt dann diese Teile in die verschiedenen RAM Bereiche
ein (siehe 5).
-
Die
Zugriffanforderungs-Ausführschaltung 190 führt Zugriffanforderungen
vom Verknüpfungskern 20 aus.
Wenn das Signal FULL von der Beurteilungsschaltung 35 für den FIFO-Zustand
aktiv ist, veranlaßt
die Zugriffanforderungs-Ausführungsschaltung 190,
daß ein
Signal FFULL aktiv wird. Die Folgesteuerung 167 innerhalb
der Paketformungsschaltung 160 veranlaßt, daß RDS, ein RD (RxData) Strobe
Signal, aktiv wird, vorausgesetzt, daß FFULL nicht aktiv ist. Es
sei erwähnt,
daß ein
von der Folgesteuerung 167 verwendetes Signal RFAIL dazu
dient, der Zugriffanforderungs-Ausführungsschaltung 190 mitzuteilen,
daß ein
Empfang mißlungen
ist.
-
Die
Zugriffanforderungs-Erzeugerschaltung 192 gibt eine Zugriffanforderung
an den RAM 80 aus. Die Zugriffanforderungs-Erzeugerschaltung 192 empfängt WACK
(das ist eine Schreibrückmeldung vom
Puffermanager 70) und EMPTY von der Beurteilungsschaltung 35 für den FIFO-Zustand
und gibt WREQ (das ist eine Schreibanforderung) an den Puffermanager 70 aus.
-
Zu
der Paketdividierschaltung 180 gehört, wie 19 zeigt,
eine Markierungsfeststellschaltung 182 und eine Adressenerzeugerschaltung 188,
und die Adressenerzeugerschaltung 188 weist eine Zeigeraktualisierungsschaltung 184 auf.
In diesem Fall identifiziert die Zeigerfeststellschaltung 182 die
von der Markerierungserzeugerschaltung 162 erzeugten Markierungen
(DTAG) und bestimmt den Schreibbereich für die Ausgabe WDATA des FIFO 34.
-
Von
der in der Adressenerzeugerschaltung 188 enthaltenen Zeigeraktualisierungsschaltung 184 werden
der Reihe nach die Zeiger (Datenzeiger und Vorspannzeiger) in dem
bestimmten Bereich aktualisiert (inkrementiert oder dekrementiert).
Die Adressenerzeugerschaltung 188 generiert eine Adresse, wie
von den der Reihe nach aktualisierten Zeigern angezeigt und gibt
sie als WADR an den Puffermanager 70 aus. Die Adressenerzeugerschaltung 188 gibt an
die Paketformungsschaltung 160 einen Datenzeiger DP aus
(einen Datenzeiger für
den Empfangs-ORB-Bereich oder einen Datenzeiger für den Empfangsstrombereich).
Die Paketformungsschaltung 160 bettet diesen Datenzeiger
in den Vorspann des Pakets ein (siehe C30 in 20B).
Das macht es möglich,
jeden im Vorspannbereich gespeicherten Vorspann mit den entsprechenden
Daten zu verknüpfen,
die im Datenbereich gespeichert sind (siehe 11).
-
Beispiele
für die
von diesem Ausführungsbeispiel
der vorliegenden Erfindung benutzten Markierungen (DTAG) sind in 21 gezeigt.
Wenn, wie als Beispiel in 21 gezeigt,
die Markierung (0001) oder (0010) ist, wird der
Vorspann des empfangenen Pakets (die Ausgabe WDATA des FIFO 34)
in den Empfangsvorspannbereich gemäß 5 eingegeben.
Ist die Markierung (0100), werden die Daten des empfangenen
Pakets in den Empfangs- oder ORB-Bereich eingeschrieben, oder wenn
die Markierung (0101) ist, werden die Daten des empfangenen Pakets
in den Empfangsstrombereich eingeschrieben.
-
Ist
die Markierung (1001) oder (1010), wird der Vorspann
des empfangenen Pakets in den Emp fangsvorspannbereich für Hardware
(HW) eingegeben. und wenn die Markierung (1100) ist, werden
die Daten des empfangenen Pakets in den Empfangs-ORB Bereich für HW eingegeben,
oder wenn die Markierung (1101) ist, werden die Daten des empfangenen
Pakets in den Empfangsstrombereich für HW eingegeben. Es sei erwähnt, daß "für Hardware/HW" in diesem Fall bedeutet,
daß diese
Daten für
den SBP-2 Kern 84 in 4 bestimmt
sind.
-
4.2. BT-Erzeugerschaltung
-
Die
Zustandserzeugerschaltung 164 weist eine BT-Erzeugerschaltung 165 auf.
Von dieser BT-Erzeugerschaltung 165 wird
das unter Hinweis auf 10 beschriebene Wechselbit erzeugt.
Das erzeugte Bit wird in den Vorspann des Pakets eingebettet, nachdem
es geformt wurde, wie bei C31 in 20B dargestellt.
-
Zustandsübergangsdiagramme
der BT-Erzeugerschaltung 165 sind in den 22A und 22B gezeigt.
-
In 22 ist RECEIVED ein internes Signal der
BT-Erzeugerschaltung 165 und BRIP ein Signal, welches anzeigt,
daß ein
Busrücksetzvorgang
läuft. Dieses
Signal BRIP wird von der Busüberwachungsschaltung 130, 19 erzeugt.
Anders ausgedrückt, die
Busüberwachungsschaltung 130 akzeptiert
Zustandsinformation vom PHY-Baustein über den Datenbus D und bestimmt
anhand dieser Zustandsinformation, ob ein Busrücksetzvorgang stattgefunden hat
oder nicht. Stellt die Busüberwachungsschaltung 130 fest,
daß es
einen Busrücksetzvorgang
gegeben hat, setzt sie BRIP auf hoch und danach wieder auf tief.
-
Wie
das Zustandsübergangsdiagramm
gemäß 22A zeigt, geht RECEIVED von tief nach hoch, wenn
ein Paket empfangen worden ist oder von hoch nach tief, wenn BRIP
hoch ist. Wie das Zustandsübergangsdiagramm
der 22B zeigt, wechselt das Wechselbit
BT von tief nach hoch oder von hoch nach tief, vorausgesetzt, daß sowohl
BRIP als auch RECEIVED hoch sind.
-
Ein
Impulsdiagramm der obigen Signale ist in 23 gezeigt.
C40, C41 und C42 in 23 zeigen Punkte, an denen RECEIVED
von tief auf hoch geht, weil ein Paket empfangen wurde. C43, C44
und C45 zeigen Punkte, an denen RECEIVED von hoch auf tief geht,
weil BRIP (das Signal, welches anzeigt, daß ein Busrücksetzvorgang läuft) auf
hoch gegangen ist.
-
C46,
C47 und C48 zeigen Punkte, an denen BT von tief nach hoch wechselt
oder von hoch nach tief, weil sowohl BRIP als auch RECEIVED hoch sind.
Aber bei C49 ändert
sich BT nicht, weil RECEIVED nicht hoch ist. Mit anderen Worten,
da während dieses
Busrücksetzintervalls
M + 2 kein Paket empfangen wurde, ändert sich BT auch dann nicht,
wenn während
dieser ein Busrücksetzvorgang
geschah (das heißt
BRIP auf hoch ging). Mit dieser Konfiguration ist es möglich, das
Wechselbit BT so zu erzeugen, daß es sich immer dann ändert, wenn
der Reihe nach empfangene Pakete Pakete sind, die während verschiedener
Busrücksetzintervalle
empfangen wurden, wie schon im Zusammenhang mit 10 beschrieben.
-
4.3. Zeigerregister
-
Die
Beschreibung befaßt
sich nunmehr mit Einzelheiten der in 14 gezeigten
Zeigerregister und verweist dazu auf 24.
-
Die
Register 310, 314 und 318 sind Register zum
Speichern des empfangenen Vorspannzeigers, des empfangenen ORB-Zeigers
bzw. des empfangenen Stromzeigers (siehe 14). Diese
Register 310, 314 und 318 empfangen WHADR
(Adresse des Vorspannbereichs, WOADR (Adresse des ORB-Bereichs) und WSADR
(Adresse des Strombereichs) von der Adressenerzeugerschaltung 188.
Die Register 310, 314 und 318 empfangen
auch ein Signal RXCOMP, welches den vollendeten Empfang anzeigt, vom
Verknüpfungskern 20.
Zu dem Zeitpunkt, zu dem RXCOMP aktiv wird, werden WHADR, WOADR und
WSADR durch die Register 310, 314 und 318 von
der Adressenerzeugerschaltung 188 abgerufen und gespeichert.
Hierdurch ist es möglich,
die Adressen der Grenzen RB31, RB32 usw. gemäß 14 zu speichern.
-
Bei
den Registern 312 und 316 handelt es sich um Register
zum Speichern des Busrücksetzvorspannzeigers
bzw. des Busrücksetz-ORB-Zeigers (siehe 14).
Diese Register 312 und 316 empfangen das Signal
BRIP zur Anzeige, daß ein
Busrücksetzvorgang
läuft,
vom Verknüpfungskern 20.
Von den Registern 312 und 316 werden die in den
Registern 310 und 314 gespeicherten Adressen abgerufen und
gespeichert, wenn dieses BRIP aktiv wird. Hierdurch ist es möglich, die
Adressen der Grenzen RB11 und RB12 in 14 zu
speichern.
-
Die
Register 320, 322 und 324 sind Register zum
Speichern des verarbeiteten Vorspannzeigers, des verarbeiteten ORB-Zeigers
bzw. des verarbeiteten Stromzeigers (siehe 14).
-
In
einem Anfang/Ende-Adressenregister 326 ist die Anfangsadresse
und die Endadresse jedes der in 5 gezeigten
Bereiche gespeichert. Adressenerzeugerschaltungen 188 und 332 steuern
die Erzeugung von Adressen anhand der Anfangs- und Endadressen aus
dem Register 326. Genauer gesagt, aktualisieren sie die
Zeiger der Reihe nach und benutzen dafür jede Anfangsadresse als Startpunkt.
Wenn ein Zeiger eine Endadresse passiert hat, ist die Steuerung
so, daß der
Zeiger zur entsprechenden Anfangsadresse zurückkehrt (Ringpufferstruktur).
-
Zu
der RAM Bereichsmanagementschaltung 300 gehört eine
Empfangsmanagementschaltung 302 für den Vorspannbereich, eine
Empfangsmanagementschaltung 304 für den ORB-Bereich und eine
Empfangsmanagementschaltung 306 für den Strombereich.
-
Die
Empfangsmanagementschaltung 302 für den Vorspannbereich empfängt den
empfangenen Vorspannzeiger vom Register 310 und den verarbeiteten
Vorspannzeiger vom Register 320 und gibt ein Signal HDRFULL,
welches anzeigt, daß der
Empfangsvorspannbereich voll ist, an die Zugriffanforderungserzeugerschaltung 192 aus.
-
Die
Empfangsmanagementschaltung 304 für den ORB-Bereich empfängt den
empfangenen ORB-Zeiger
vom Register 314 und den verarbeiteten ORB-Zeiger vom Register 322 und
gibt ein Signal ORB FULL, welches anzeigt, daß der Empfangs-ORB-Bereich
voll ist, an die Zugriffanforderungs-Erzeugerschaltung 192 aus.
Die Empfangsmanagementschaltung 306 für den Strombereich empfängt den
empfangenen Stromzeiger vom Register 318 und den verarbeiteten
Stromzeiger vom Register 324, gibt ein Signal STRMFULL,
welches anzeigt, daß der
Empfangsstrombereich voll ist, an die Zugriffanforderungs-Erzeugerschaltung 192 aus.
Sie gibt auch ein Signal STRMEMPTY, welches anzeigt, daß der Empfangsstrombereich
leer ist, an eine Zugriffanforderungs-Erzeugerschaltung 334 aus.
Die Zugriffanforderungs-Erzeugerschaltungen 192 und 334 empfangen
diese Voll- und Leersignale und legen fest, ob eine Schreibanforderung
WREQ oder eine Leseanforderung RREQ an den Puffermanager 70 ausgegeben
werden soll oder nicht.
-
4.4 Busrücksetzsendehaltzustand
-
Unter
Hinweis auf die 25 und 26 befaßt sich
die nachfolgende Beschreibung mit Einzelheiten des Busrücksetzsendehaltzustands.
-
In 25 schreibt
die Firmware einen Sendestartbefehl in ein Sendestartsetzregister 340. Wenn
das geschieht, veranlaßt
eine START-Erzeugerschaltung 342, daß ein Signal START aktiv wird, wie
bei C60 in 26 gezeigt. Wenn das geschieht, gibt
die DMAC 40 eine Leseanforderung an den Puffermanager 70 aus,
und das Senden beginnt.
-
Wenn
eine TXPRD-Erzeugerschaltung 346 das Signal START empfängt, veranlaßt sie,
daß ein Signal
TXPRD aktiv wird, um zu zeigen, daß eine Sendung unterwegs ist,
wie bei C61 gezeigt. Wenn die Paketübertragung ohne Schwierigkeiten
endet und der Verknüpfungskern 20 veranlaßt, daß ein Signal
TXCOMP aktiv wird, welches anzeigt, daß eine Sendung vollendet ist,
wie bei 62 gezeigt, wird das Signal TXPRD inaktiv.
-
Wenn
während
des Sendens (wenn TXPRD aktiv ist) das Signal BRIP aktiv wird (d.
h. wenn ein Busrücksetzvorgang
eintritt), wie bei C63 gezeigt, veranlaßt eine TXBRABORT Erzeugerschaltung 348 in 25,
daß ein
Signal TXBRABORT aktiv wird, wie bei C64 gezeigt. Der Zustand, der
anzeigt, daß eine
Sendung durch einen Busrücksetzvorgang
angehalten wurde, wird über
ein Sendehaltzustandsregister 350 an die Firmware weitergeleitet.
-
Wenn
andererseits keine Sendung unterwegs ist (wenn TXPRD inaktiv ist),
wird TXBRABORT auch dann nicht aktiv, wenn ein Busrücksetzvorgang
geschieht und BRIP aktiv wird, wie bei C65 in 26 gezeigt.
-
Mit
diesem Ausführungsbeispiel
der vorliegenden Erfindung ist also sichergestellt, daß der Busrücksetzsendehaltzustand
nur dann an die Firmware gelangt, wenn das Senden angehalten wurde,
weil während
der Sendung ein Busrücksetzvorgang
eintrat.
-
5. Elektronische Ausrüstung
-
Die
Beschreibung befaßt
sich nun mit Beispielen elektronischer Geräte, welche die Datenübertra gungssteuervorrichtung
gemäß diesem
Ausführungsbeispiel
der Erfindung aufweisen.
-
Ein
Blockschaltbild des Inneren eines Druckers, der ein Beispiel eines
solchen elektronischen Geräts
ist, zeigt die 27A, während
eine Außenansicht in 28A gezeigt ist. Eine CPU (Mikrorechner) 510 hat
verschiedene Funktionen, einschließlich der, das gesamte System
zu steuern. Ein Betriebsabschnitt 511 ist so konstruiert,
daß er
es einem Benutzer ermöglicht,
den Drucker zu betätigen.
Daten, wie ein Steuerprogramm und Schriftzeichensätze sind
in einem ROM 516 gespeichert, und ein RAM 518 dient als
Arbeitsbereich für
die CPU 510. Eine Anzeigetafel 519 soll den Benutzer über den
Betriebszustand des Druckers informieren.
-
Druckdaten,
die von einem weiteren Knoten, beispielsweise einem PC über einen
PHY-Baustein 502 und eine Datenübertragungssteuervorrichtung 500 gesendet
werden, gelangen unmittelbar über
einen Bus 504 an einen Druckverarbeitungsabschnitt 512.
Die Druckdaten werden vom Druckbearbeitungsabschnitt 512 einer
gegebenen Verarbeitung unterzogen und zum Bedrucken von Papier mittels eines
Druckabschnitts (einer Vorrichtung zur Ausgabe von Daten) 514,
die Bauelemente, wie einen Druckkopf aufweist, ausgegeben.
-
Ein
Blockschaltbild des Inneren eines Scanners, bei dem es sich um ein
weiteres Beispiel eines elektronischen Geräts handelt, ist in 27B gezeigt, während
die 28B eine Außenansicht desselben zeigt.
Eine CPU 520 hat verschiedene Funktionen, einschließlich der,
das gesamte System zu steuern. Ein Betriebsabschnitt 521 ist
so konstruiert, daß er
es dem Benutzer ermöglicht,
den Scanner zu betätigen.
Daten, wie ein Steuerprogramm sind in einem ROM 526 gespeichert,
und ein RAM 528 dient als Arbeitsbereich für die CPU 520.
-
Eine
Abbildung eines Dokuments wird von einem Bildleseabschnitt (einem
Gerät zum
Abruf von Daten) 522 gelesen, zu dem Bauelemente wie eine Lichtquelle
und ein optoelektrischer Umsetzer gehören, und Daten der eingelesenen
Abbildung werden von einem Bildverarbeitungsabschnitt 524 verarbeitet.
Die verarbeiteten Bilddaten werden unmittelbar über einen Bus 505 an
die Datenübertragungssteuervorrichtung 500 gesendet.
Die Datenübertragungssteuervorrichtung 500 schafft
Pakete durch das Anheften von Vorspannen und dergleichen an diese Bilddaten
und sendet dann diese Pakete durch den PHY-Baustein 502 an
einen weiteren Knoten, beispielsweise einen PC.
-
Ein
Blockschaltbild des Inneren eines CD-RW-Laufwerks, bei dem es sich
um ein weiteres Beispiel eines elektronischen Geräts handelt,
ist in 27C gezeigt, während eine
Außenansicht
desselben in 28C dargestellt ist. Eine CPU 530 hat verschiedene
Funktionen, einschließlich
der das gesamte System zu steuern. Ein Betriebsabschnitt 531 ist
so konstruiert, daß der
Benutzer das CD-RW
betätigen
kann. Daten, wie ein Steuerprogramm, sind in einem ROM 536 gespeichert,
und ein RAM 538 wirkt als Arbeitsbereich für die CPU 530.
-
Daten,
die ein Lese/Schreibabschnitt (ein Gerät zum Abruf von Daten oder
ein Gerät
zum Speichern von Daten) 533, zu dem Bauelemente, wie ein Laser,
ein Motor und ein optisches System gehört, aus einem CD-RW 532 liest,
werden in einen Signalverarbeitungsabschnitt 534 eingegeben,
wo sie einer gegebenen Signalverarbeitung, beispielsweise einer Fehlerkorrektur
unterzogen werden. Die dieser Signalverarbeitung unterzogenen Daten
werden unmittelbar über
einen Bus 506 an die Datenübertragungssteuervorrichtung 500 gesendet.
Die Datenübertragungssteuervorrichtung 500 schafft
Pakete durch das Anheften von Vorspannen und dergleichen an diese
Daten und sendet dann diese Pakete durch den PHY-Baustein 502 an
einen weiteren Knoten, beispielsweise einen PC.
-
Daten,
die von einem weiteren Knoten über den
PHY-Baustein 502 und die Datenübertragungssteuervorrichtung 500 eingesandt
wurden, werden andererseits unmittelbar über den Bus 506 an
den Signalverarbeitungsabschnitt 534 gesandt. Die Daten werden
vom Signalverarbeitungsabschnitt 534 einer gegebenen Signalverarbeitung
unterzogen und dann vom Lese/Schreibabschnitt 533 in dem
CD-RW 532 gespeichert.
-
Es
sei darauf hingewiesen, daß zusätzlich zum
CPU 510, 520 oder 530 gemäß 27A, 27B oder 27C ein gesonderter CPU vorgesehen sein könnte, um
eine Datenübertragungssteuerung
in bezug auf die Datenübertragungssteuervorrichtung 500 bereitzustellen.
-
Ferner
ist in den 27A, 27B und 27C ein RAM 501 (ein Äquivalent zum RAM 80 der 4)
außerhalb
der Datenübertragungssteuervorrichtung 500 angeordnet
gezeigt, aber der RAM 501 könnte auch ebenso gut innerhalb
der Datenübertragungssteuervorrichtung 500 vorgesehen
sein.
-
Die
Verwendung der Datenübertragungssteuervorrichtung
gemäß diesem
Ausführungsbeispiel
in einem elektronischen Gerät
macht es möglich,
eine Hochgeschwindigkeitsdatenübertragung durchzuführen. Wenn
also ein Benutzer einen Ausdruck von einem PC oder dergleichen in
Auftrag geben möchte,
kann der Ausdruck mit nur geringer zeitlicher Verzögerung fertiggestellt
werden. Ähnlich kann
ein Benutzer ein abgetastetes Bild mit nur geringfügiger zeitlicher
Verzögerung
nach der Anweisung an den Scanner, ein Bild aufzunehmen, anschauen.
Es ist ebenfalls möglich,
mit hoher Geschwindigkeit Daten aus einem CD/RW zu lesen oder in
einen CD/RW einzugeben. Die vorliegende Erfindung macht es auch
einfach, eine Vielzahl von elektronischen Geräteposten zu benutzen, die mit
einem Zentralsystem verbunden sind, oder eine Vielzahl von elektronischen
Geräteposten,
die beispielsweise mit einer Vielzahl von Zentralsystemen verbunden sind.
-
Bei
Benutzung der Datenübertragungssteuervorrichtung
gemäß diesem
Ausführungsbeispiel
in einem elektronischen Gerät
wird auch die Verarbeitungsbelastung der Firmware, die auf der CPU
läuft, verringert,
was die Benutzung einer preisgünstigen CPU
und Busse mit geringer Geschwindigkeit ermöglicht. Gleichfalls ermöglicht sind
Kostensenkungen und Verringerungen der Größe der Datenübertragungssteuervorrichtung,
was die Kosten senkt und die Größe des elektronischen
Geräts
verkleinert.
-
Diese
Konfiguration macht es auch möglich, eine
Situation zu vermeiden, bei der eine normale Datenübertragung
zwischen elektronischen Geräteposten
lange warten muß,
falls ein Busrücksetzvorgang
durch den Anschluß eines
neuen elektronischen Geräts
an den Bus hervorgerufen wird.
-
Es
sei darauf hingewiesen, daß das
elektronische Gerät,
das mit einer Datenübertragungssteuervor richtung
gemäß der vorliegenden
Erfindung arbeiten kann, nicht auf die vorstehend beschriebenen Ausführungsbeispiele
beschränkt
ist, sondern daß verschiedene
weitere Beispiele in Betracht gezogen werden können, beispielsweise verschiedene
Arten von Laufwerken für
optische Platten (CD-ROM
oder DVD), magnetoptische Platten (MO), Festplatten, Fernsehgeräte, Videorekorder,
Videokameras, Audiogeräte,
Telefone, Projektoren, PCs, elektronische Organizer sowie zweckbestimmte
Textverarbeitungsgeräte.
-
Es
sei erwähnt,
daß die
vorliegende Erfindung nicht auf die hier beschriebenen Ausführungsbeispiele
beschränkt
ist und daß viele
Abwandlungen innerhalb des hier beschriebenen Umfangs der Erfindung
möglich
sind. So kann beispielsweise die Konfiguration der Datenübertragungssteuervorrichtung gemäß der vorliegenden
Erfindung die in 4 gezeigte sein, ist aber nicht
hierauf beschränkt.
Besonders nützlich
ist die vorliegende Erfindung für
Busrücksetzvorgänge entsprechend
IEEE 1394, aber sie läßt sich
ebenso gut auf irgendeinen Rücksetzvorgang
anwenden, mit dem mindestens Knotentopologieinformation gelöscht wird.
-
Die
Zeigerinformation gemäß der vorliegenden
Erfindung ist nicht auf die Anfangsadressen von Paketen beschränkt, vorausgesetzt
daß mindestens Grenzen
innerhalb der Paketspeichereinrichtung dadurch spezifiziert sind.
-
Das
Verfahren, mit dem die Paketspeichereinrichtung aufgeteilt wird,
ist gleichfalls nicht auf das unter Hinweis auf 5 beschriebene
beschränkt.
-
Auch
kann die vorliegende Erfindung auf eine Datenübertragung angewandt werden,
die durch die Norm IEEE 1394 festgelegt ist; aber sie ist nicht
darauf beschränkt.
So kann die vorliegende Erfindung zum Beispiel auf eine Datenübertragung
gemäß Normen
angewandt werden, die auf einem ähnlichen
Konzept wie die der IEEE 1394 beruhen oder Normen, die aus IEEE
1394 entwickelt wurden.