-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft das Gebiet eines Schreibens von Daten
auf eine und Lesens von Daten von einer Medienspeichervorrichtung.
Insbesondere betrifft die vorliegende Erfindung das Gebiet eines Manipulierens
der Daten, die von einer Medienspeichervorrichtung gelesen oder
in diese geschrieben werden.
-
HINTERGRUND DER ERFINDUNG
-
Der
IEEE 1394-1995-Standard 1394-Standard For A High Performance Serial
Bus ist ein internationaler Standard zum Implementieren einer billigen
Hochgeschwindigkeits-Seriellbusarchitektur, die sowohl asynchrone
als auch isochrone Formatdatentransfers stützt. Außerdem weist der IEEE 1394-1995-Bus einen universellen
Taktgeber bzw. Takt auf, der als der Zykluszeitgeber bezeichnet
wird. Dieser Takt ist bei allen Knoten synchronisiert. Isochrone
Datentransfers sind Realzeittransfers, die auf der Basis des universellen
Taktes derart stattfinden, dass die Zeitintervalle zwischen signifikanten
Beispielen bzw. Fällen
sowohl bei Sende- als auch Empfangsanwendungen die gleiche Dauer
haben. Jedes Paket aus isochron transferierten Daten wird in seiner
eigenen Zeitperiode transferiert. Ein Beispiel einer idealen Anwendung
für den
isochronen Datentransfer wäre
die von einem Videorekorder zu einem Fernsehgerät. Der Videorekorder zeichnet
Bilder und Töne
auf und sichert die Daten in diskreten Blöcken oder Paketen. Der Videorekorder
transferiert dann jedes Paket, welches das Bild und den Ton darstellt,
die über
einer begrenzten Zeitperiode aufgezeichnet sind, während dieser Zeitperio de
zur Anzeige durch das Fernsehgerät.
Die IEEE 1394-1995-Standardbusarchitektur
stellt mehrfache unabhängige
Kanäle
zum isochronen Datentransfer zwischen Anwendungen bereit. Mit den
Daten wird eine Sechs-Bit-Kanalnummer rundfunkgesendet, um den Empfang
durch die passende Anwendung sicherzustellen. Dies erlaubt mehrfachen
Anwendungen, isochrone Daten über
die Busstruktur gleichzeitig zu senden. Asynchrone Transfers sind
traditionelle zuverlässige
Datentransferoperation, die stattfinden, sobald Entscheidung gewonnen
ist, und die eine maximale Datenmenge von einer Quelle zu einem
Ziel bzw. Bestimmungsort bzw. einer Bestimmung transferieren.
-
Der
IEEE 1394-1995-Standard stellt einen Hochgeschwindigkeits-Seriellbus
zum miteinander Verbinden von digitalen Vorrichtungen bereit, wodurch
eine universelle E/A-Verbindung bereitgestellt ist. Der IEEE 1394-1395-Standard
definiert eine digitale Schnittstelle für die Anwendungen, wodurch
die Notwendigkeit für eine
Anwendung, digitale Daten in analoge Daten umzuwandeln, bevor sie über den
Bus gesendet werden, eliminiert ist. Demgemäss empfängt eine empfangende Anwendung
digitale Daten vom Bus, nicht analoge Daten, und muss deshalb nicht
analoge Daten in digitale Daten umwandeln. Das vom IEEE 1394-1995-Standard benötigte Kabel
ist im Vergleich zu anderen sperrigeren Kabeln, die zum Verbinden
solcher Vorrichtungen in anderen Verbindungsschemen verwendet sind,
in der Größe sehr
dünn. Zu
einem IEEE 1394-1995-Bus können
Vorrichtungen hinzugefügt
und vom Bus entfernt werden während
der Bus in Betrieb ist. Wenn eine Vorrichtung so hinzugefügt oder
entfernt wird, rekonfiguriert sich der Bus dann zur Übertragung
von Daten zwischen den dann existierenden Knoten automatisch selbst.
Ein Knoten wird als eine logische Entität mit einer eindeutigen Adresse
auf der Busstruktur betrachtet. Jeder Knoten stellt einen Standardadressenraum,
einen Identifikations-ROM, einen standardisierten Satz aus Steuer-Registern
und außerdem
seinen eigenen Adressenraum bereit.
-
Der
IEEE 1394-1995-Standard definiert ein wie in 1 dargestelltes Protokoll. Dieses Protokoll
enthält
einen an eine Transaktionsschicht 12 gekoppelten Seriellbus-Verwal tungs-
bzw. -Managementblock 10, eine Verbindungsschicht 14 und
eine Bitübertragungsschicht
bzw. physikalische Schicht 16. Die physikalische Schicht 16 stellt
die elektrische und mechanische Verbindung zwischen einer Vorrichtung
und dem IEEE 1394-1995-Kabel bereit. Die physikalische Schicht 16 stellt
auch Entscheidung bereit, um sicherzustellen, dass alle an den IEEE
1394-1995-Bus gekoppelten Vorrichtungen entschiedenen Zugriff auf
den Bus sowie tatsächliche
Datenübertragung
bzw. -sendung und -empfang haben. Die Verbindungsschicht 14 stellt
einen Datenpaket-Ausgabedienst für
sowohl asynchronen als auch isochronen Datenpakettransport bereit.
Dies stützt
sowohl asynchronen Datentransport, der ein Quittierungsprotokoll
verwendet, als auch isochronen Datentransport, ein nicht quittiertes,
Realzeit-garantiertes Bandbreitenprotokoll für sofortige bzw. rechtzeitige
Datenausgabe bereitstellt. Die Transaktionsschicht 12 stützt die
zum Vervollständigen
asynchroner Datentransfer notwendigen Befehle, darunter Lesen, Schreiben
und Verriegeln bzw. Sperren. Der Seriellbus-Managementblock 10 enthält einen
isochronen Ressourcenverwalter bzw. -manager zum Verwalten bzw.
Managen isochroner Datentransfers. Der Seriellbus-Managementblock 10 stellt
auch eine Gesamtkonfigurationssteuerung des seriellen Busses in
der Form von optimierendem Entscheidungstiming, Garantieren adäquater elektrischer Leistung
für alle
Vorrichtungen auf dem Bus, Zuordnung des Taktführers bzw. Zyklusmasters, Zuordnung
isochroner Kanal- und Bandbreitenressourcen und grundlegender bzw.
elementarer Meldung bzw. Notifikation von Fehlern bereit.
-
Ein
eine IEEE 1394-1994-Seriellbusschnittstelle enthaltendes Hart- bzw.
Festplattenlaufwerk ist in 2 dargestellt.
Das Festplattenlaufwerk 20 enthält die IEEE 1394-1995-Seriellbusschnittstellenschaltung 22 zum
Schnittstellen-Verbinden
mit einem IEEE 1394-1995-Seriellbusnetzwerk bzw. -netz. Die Schnittstellenschaltung 22 ist
an eine Puffersteuerung bzw. einen Pufferkontroller 24 gekoppelt.
Der Pufferkontroller 24 ist an einen Speicher mit wahlfreiem
Zugriff bzw. Direktzugriffsspeicher (RAM) 26 und an eine
Lese/Schreib- Kanalschaltung 28 gekoppelt.
Die Lese/Schreib-Kanalschaltung 28 ist an die Medien 30 gekoppelt,
auf denen im Festplattenlaufwerk 20 Daten gespeichert sind.
Die Lese/Schreib-Kanalschaltung 28 steuert die Speicheroperationen
auf den Medien 30, darunter das Lesen von Daten von den
Medien 30 und Schreiben von Daten in bzw. auf die Medien 30.
-
Während einer
Schreiboperation in das Festplattenlaufwerk 20 wird ein
Datenstrom von einer durch die IEEE 1394-1995-Schnittstellenschaltung 22 an
die IEEE 1394-1995-Seriellbusstruktur gekoppelten Vorrichtung empfangen.
Dieser Datenstrom wird von der IEEE 1394-1995-Schnittstellenschaltung 22 an
den Pufferkontroller 24 weitergeleitet. Der Pufferkontroller 24 speichert
dann diese Daten zeitweilig in einem Puffer im RAM 26.
Wenn die Lese/Schreib-Kanalschaltung 28 verfügbar ist,
liest der Pufferkontroller 24 die Daten vom RAM 26 und
sendet bzw. leitet sie an die Lese/Schreib-Kanalschaltung 28 weiter.
Die Lese/Schreib-Kanalschaltung 28 schreibt dann die Daten
auf die Medien 30.
-
Während einer
Leseoperation vom Festplattenlaufwerk 20 wird ein Datenstrom
durch die Lese/Schreib-Kanalschaltung 28 von den Medien 30 gelesen.
Dieser Datenstrom wird von der Lese/Schreib-Kanalschaltung 28 an
den Pufferkontroller 24 weitergeleitet. Der Pufferkontroller 24 speichert
dann diese Daten zeitweilig in einem Puffer im RAM 26.
Wenn die IEEE 1394-1995-Seriellbusschnittstellenschaltung 22 verfügbar ist,
liest der Pufferkontroller 24 die Daten vom RAM 26 und
leitet sie zur Schnittstellenschaltung 22 weiter. Die IEEE
1394-1995-Seriellbusschnittstellenschaltung 22 formatiert
dann die Daten entsprechend den Erfordernissen des IEEE 1394-1995-Standards und überträgt diese
Daten über
den IEEE 1394-1995-Seriellbus
zu der geeigneten bzw. passenden Vorrichtung oder den passenden
Vorrichtungen.
-
Ein
wie beschriebenes traditionelles Plattenlaufwerk 20 zeichnet
Daten auf und gibt sie wieder entsprechend Befehlen, die von einem
externen Kontroller, der ein Protokoll wie beispielsweise das Seriellbusprotokoll
(SBP) verwendet, empfangen werden. Der externe Kontroller stellt
dem Festplatten laufwerk 20 Befehlsdatenstrukturen bereit,
die das Festplattenlaufwerk 20 darüber informieren, wo auf die
Medien 30 im Fall einer Schreiboperation die Daten zu schreiben
sind oder im Fall einer Leseoperation von ihnen zu lesen sind. Die
Funktion des Festplattenlaufwerks 20 während einer Leseoperation ist,
den originalen unmodifizierten Datenstrom, der vorher auf die Medien 30 geschrieben
wurde, wiederherzustellen.
-
Mit
der wachsenden Verwendung des IEEE 1394-1995-Seriellbusses sind
nun Personalcomputer in IEEE 1394-1995-Netzen mit Vorrichtungen
zusammen gekoppelt, die traditionell nicht mit Personalcomputern gekoppelt
gewesen sind. Beispiele solcher Vorrichtungen sind Unterhaltungs-
bzw. Konsumelektronikvorrichtungen wie beispielsweise Videokassettenrekorder,
Videocamcorder bzw. Videokamaerarekorder, Digitalvideoplattenspieler
und Kompaktdiscspieler bzw. CD-Spieler. Rohdaten von diesen Konsumvorrichtungen
sind nicht immer direkt von einem Personalcomputer verwendbar. Die
typische Lösung
dieses Problems ist, ein Anwendungssoftwareprogramm zu schreiben,
das auf dem Personalcomputer läuft
und die notwendige Datenmanipulation zum Transformieren der Daten
in ein Format ausführt,
das mit anderen auf dem Personalcomputer laufenden Anwendungen verwendbar
ist.
-
Was
notwendig ist, ist eine Filterungs- bzw. Filtereinrichtung, die
zum Manipulieren der Daten von einer Konsumvorrichtung in ein von
einem Personalcomputer oder einer anderen Vorrichtung benötigtes Format verwendet
werden kann. Was außerdem
notwendig ist, ist eine Filterungs- bzw. Filtereinrichtung die auch
die Daten von einer Personalcomputervorrichtung in ein von einer
Konsumelektronikvorrichtung benötigtes
Format manipulieren kann.
-
Die
europäische
Patentanmeldung
EP
0860 823 A1 , die mit der in japanischer Sprache veröffentlichten
internationalen Patentanmeldung WO 98/02881 korrespondiert, offenbart
ein Gerät,
das eine digitale Schnittstelle gemäß IEEE 1394 (D-Schnittstelle) aufweist,
und ein Netzwerk- bzw. Netzsystem, das ein Kopierschutzgerät und ein
Kopierschutzverfahren anwendet. Das Kopierschutzgerät ist so
ausgebildet, dass es Ko pieerzeugungs-Managementinformation unter
Verwendung einer Kopiekennzeichen-Detektionsschaltung detektiert.
Die Kopieerzeugungsinformation wird in einen CIP-Teil eines Kopfteils
bzw. Headers eines IEEE 1394-Pakets zur Übertragung eingesetzt. Eine
Ausgabeverarbeitungsschaltung wandelt Eingabedaten in das D-Schnittstellenformat
um.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Eine
Medienspeichervorrichtung enthält
ein eingebettetes Filter zum Manipulieren eines universellen Taktes
auf der Basis von Datenströmen,
wenn sie in die Medienspeichervorrichtung geschrieben oder von dieser
gelesen werden. Die Medienspeichervorrichtung manipuliert auch Datenströme, die
nicht in die Medienspeichervorrichtung geschrieben oder von dieser
gelesen werden. Vorzugsweise ist das eingebettete Filter in der
Medienspeichervorrichtung ein isochroner Datenaustauschkanal bzw.
isochrones Datenfilter bzw. Datenrohr bzw. eine isochrone Datenpipe,
der bzw. das bzw. die programmierte Instruktionen von einem externen Kontroller
empfängt
und Datenströme
entsprechend den programmierten Instruktionen in Realzeit, koordiniert mit
dem universellen Takt, manipuliert. Alternativ dazu enthält die isochrone
Datenpipe feste Firmware zur Ausführung der geeigneten bzw. passenden
Manipulationen. Die Medienspeichervorrichtung ist auch vorzugsweise
an eine IEEE 1394-1995-Seriellbusstruktur gekoppelt. Wenn Datenströme von der
Medienspeichervorrichtung während
einer Schreiboperation empfangen werden, können diese Datenströme vom eingebetteten
Filter in ein anderes Format manipuliert werden, bevor sie auf den
Medien in der Medienspeichervorrichtung gespeichert werden. Wenn
Datenströme
von der Medienspeichervorrichtung während einer Leseoperation übertragen
werden, können
diese Datenströme
vom eingebetteten Filter in ein anderes Format manipuliert werden, bevor
sie auf die IEEE 1394-1995-Seriellbusstruktur übertragen
werden. In beiden Fällen
kann der universelle Takt zum Synchronisieren der Datenströme verwendet
werden. Die Medienspeichervorrichtung benutzt auch das eingebettete
Filter zum Manipulieren von Datenströmen, die auf der IEEE 1394-1995-Seriellbusstruktur zwischen
zwei anderen Vorrichtungen übertragen
werden.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN
-
1 stellt einen vom IEEE
1394-1995-Standard definierten Protokollstapel dar.
-
2 stellt ein Blockschaltbild
einer Medienspeichervorrichtung des Standes der Technik dar.
-
3 stellt ein Blockschaltbild
einer Medienspeichervorrichtung gemäß der vorliegenden Erfindung dar.
-
4 stellt eine Registerdatei
in der isochronen Datenpipe dar.
-
5 stellt eine Registerdatei
im isochronen Datenpipesequenzer dar.
-
DETAILLIERTE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Eine
Medienspeichervorrichtung nach der vorliegenden Erfindung enthält ein eingebettetes
Datenfilter zur Filterung von Daten, wenn sie entweder in die Medienspeichervorrichtung
geschrieben oder von der Medienspeichervorrichtung gelesen werden.
Vorzugsweise ist dieses eingebettete Datenfilter eine isochrone
Datenpipe, die programmierbar ist und Datenströme und den universellen Takt
in das richtige Format manipuliert. Die isochrone Datenpipe wird
vorzugsweise für
die passenden Manipulationen von einem externen Kontroller programmiert,
der die Medienspeichervorrichtung steuert bzw. kontrolliert. Alternativ
dazu enthält
die isochrone Datenpipe feste Firmware zur Ausführung der passenden Manipulationen.
-
Die
Medienspeichervorrichtung mit dem eingebetteten Filter nach der
vorliegenden Erfindung zieht Vorteil aus der zentralen Rolle der
Medienspeichervorrichtung bei der Kommunikation von Daten zwischen Konsumelektronikvorrichtungen
und einem Personalcomputer in einem IEEE 1394-1995-Seriellbusnetz.
Das eingebettete Filter in der Medienspeichervorrichtung fügt die Fähigkeit
hinzu, Daten innerhalb der Medienspeichervorrichtung zu filtern,
wenn sie gerade in die Medienspeichervorrichtung geschrieben oder
von der Medienspei chervorrichtung gelesen werden. Die Medienspeichervorrichtung
mit dem eingebetteten Filter kann auch zum Filtern eines Datenstroms
verwendet werden, selbst wenn die Daten gerade nicht in die Medienspeichervorrichtung
geschrieben oder von dieser gelesen werden.
-
In
der Medienspeichervorrichtung manipuliert das eingebettete Filter
einen Datenstrom in ein für
die Vorrichtung, zu der die Daten unter der Steuerung der externen
Steuerungsvorrichtung geleitet werden, richtiges Format. Als Beispiel
manipuliert beim Speichern von Kommunikationen von einer Konsumvorrichtung,
die von einem Personalcomputer zu benutzen sind, das eingebettete
Filter in der Medienspeichervorrichtung diese Kommunikationen vom
empfangenen Format in ein für
den Personalcomputer richtiges Format. Wenn die Kommunikationen
vom Personalcomputer von der Medienspeichervorrichtung gelesen werden,
sind die Kommunikationen dann in dem für den Personalcomputer richtigen
Format. Der Personalcomputer muss nicht irgendeine weitere Manipulation
der Kommunikationen ausführen,
um sie wie es notwendig ist zu verwenden. Wenn notwendig, können die
Kommunikationen vom eingebetteten Filter auch ein zweites Mal manipuliert
werden, wenn sie vom Personalcomputer von der Medienspeichervorrichtung
gelesen werden. In der gleichen Weise können die Kommunikationen vom
Personalcomputer zu einer Konsumvorrichtung vom eingebetteten Filter
in das richtige Format für
die Konsumvorrichtung manipuliert werden.
-
Eine
Medienspeichervorrichtung gemäß der vorliegenden
Erfindung ist in der 3 dargestellt.
Die Medienspeichervorrichtung 44 enthält eine IEEE 1394-1995-Seriellbusschnittstellenschaltung 32 zum
Senden von Kommunikationen zu und empfangen von Kommunikationen
von anderen an das IEEE 1394-1995-Seriellbusnetz
gekoppelten Vorrichtungen. Die Schnittstellenschaltung 32 ist
an ein eingebettetes Filter 42 gekoppelt. Vorzugsweise
ist das eingebettete Filter 42 eine isochrone Datenpipe.
Das eingebettete Filter 42 ist an einen Pufferkontroller 34 gekoppelt.
Der Pufferkontroller 34 ist auch an einen RAM 36 und
an eine Lese/Schreib-Kanalschaltung 38 gekoppelt. Die Lese/Schreib-Kanalschaltung 38 ist
an Medien 40 gekoppelt, auf denen Daten in der Medienspeichervorrichtung 44 gespeichert
sind. Die Lese/Schreib-Kanalschaltung 38 steuert die Steuerungsoperationen
auf den Medien 40, darunter das Lesen von Daten von den
Medien 40 und Schreiben von Daten auf die Medien 40.
Ein externer Kontroller 46 ist an das eingebettete Filter 42 zur
Steuerung der Manipulation von Datenströmen und an den Pufferkontroller 34 zur
Steuerung von Lese- und Schreiboperationen bei den Medien 40 gekoppelt.
-
Während einer
Schreiboperation in die Medienspeichervorrichtung 44 empfängt die
IEEE 1394-1995-Seriellbusschnittstellenschaltung 32 einen
Datenstrom vom IEEE 1394-1995-Seriellbus. Die Schnittstellenschaltung 32 leitet
dann diese Daten zum eingebetteten Filter 42 weiter. Das
eingebettete Filter 42 modifiziert die Daten Byte um Byte,
wie es von den programmierten Instruktionen aus dem externen Kontroller 46 spezifiziert
wird, und leitet die modifizierten Daten zum Pufferkontroller 34 weiter.
Der Pufferkontroller 34 speichert dann diese modifizierten
Daten zeitweilig in einem Puffer im RAM 36. Wenn die Lese/Schreib-Kanalschaltung 38 verfügbar ist,
liest der Pufferkontroller 34 die Daten vom RAM 36 und
leitet sie zur Lese/Schreib-Kanalschaltung 38 weiter.
Die Lese/Schreib-Kanalschaltung 38 schreibt dann die Daten
auf die Medien 40. Da das eingebettete Filter 42 programmierbar
ist, können
die Daten während
einer Schreiboperation, während
einer Leseoperation oder während
sowohl Schreib- als auch Leseoperationen manipuliert werden.
-
Während einer
Leseoperation von der Medienspeichervorrichtung 44 wird
von der Lese/Schreib-Kanalschaltung 38 ein Datenstrom von
den Medien 40 gelesen. Dieser Datenstrom wird von der Lese/Schreib-Kanalschaltung 38 zum
Pufferkontroller 34 weitergeleitet. Der Pufferkontroller 34 steuert
dann diese Daten zeitweilig in einem Zirkularpuffer im RAM 36.
Wenn die IEEE 1394-1995-Seriellbusschnittstellenschaltung 32 verfügbar ist,
liest der Pufferkontroller 34 die Daten vom RAM 36 und
leitet sie zum eingebetteten Filter 42 weiter. Wenn das
ein gebettete Filter 42 programmiert wird bzw. ist, um den
Datenstrom während
einer Leseoperation zu manipulieren, wird diese Manipulation ausgeführt, und
die Daten werden zur IEEE 1394-1995-Seriellbusschnittstelle 32 weitergeleitet.
Die IEEE 1394-1995-Seriellbusschnittstelle 32 formatiert dann
die Daten entsprechend den Erfordernissen des IEEE 1394-1995-Standards
und sendet diese Daten über
den IEEE 1394-1995-Seriellbus zu der oder den passenden Vorrichtungen.
-
Das
eingebettete Filter 42 in der Medienspeichervorrichtung 44 nach
der vorliegenden Erfindung kann zum Manipulieren eines auf die Medien 40 geschriebenen
oder von diesen gelesenen Datenstroms verwendet werden. Das eingebettete
Filter 42 kann auch zum Manipulieren eines zwischen zwei
Vorrichtungen auf den IEEE 1394-1995-Seriellbus übertragenen Datenstroms verwendet
werden, der nicht auf die Medien 40 geschrieben oder von
diesen gelesen wird. Während
einer solchen Operation wird der Datenstrom von der Schnittstellenschaltung 32 empfangen
und zum eingebetteten Filter 42 weitergeleitet. Das eingebettete
Filter 42 manipuliert dann diese Daten entsprechend einer
programmierten Funktion und leitet die Daten zum Pufferkontroller 34 weiter.
Der Pufferkontroller 34 speichert dann die Daten zeitweilig
in einem Zirkularpuffer im RAM 36. Der Pufferkontroller 34 liest
dann diese Daten vom RAM 36 und leitet sie zum eingebetteten
Filter 42 weiter. Wenn das eingebettete Filter 42 auch
programmiert ist, um den Datenstrom zu manipulieren, bevor er rückübertragen
wird, wird diese Manipulation ausgeführt, und die Daten werden zur
IEEE 1394-1995-Seriellbusschnittstellenschaltung 32 weitergeleitet.
Die Schnittstellenschaltung 32 überträgt dann die manipulierten Daten
auf die IEEE 1394-1995-Seriellbusstruktur neu.
-
Das
eingebettete Filter 42 wird vorzugsweise vom externen Kontroller 46 programmiert,
um von der Medienspeichervorrichtung 44 empfangene oder
zu dieser zu übertragende
Datenströme
zu manipulieren. Alternativ dazu enthält das eingebettete Filter 42 feste
Firmware zur Ausführung
der passenden Manipulationen. Das eingebettete Filter 42 kann
zum Manipulieren von Datenströmen
auf dem Weg in die Medienspeichervor richtung und auf dem Weg aus
der Medienspeichervorrichtung programmiert werden. Als ein Beispiel
der Verwendung des eingebetteten Filters in einem IEEE 1394-1995-Seriellbusnetz
können
Datenströme,
die von irgendeiner Vorrichtung oder dem Netz in die Medienspeichervorrichtung
geschrieben werden, alle in ein erstes Format formatiert werden,
wenn sie auf den Medien 40 gespeichert werden. Wenn dann
Daten von den Medien 40 zur Übertragung zu einer speziellen
Vorrichtung gelesen werden, können
diese Daten vom eingebetteten Filter 42 in ein geeignetes
Format für
die spezielle Vorrichtung manipuliert werden. Zusätzlich kann
das eingebettete Filter 42 in speziellen Fällen zum
Manipulieren von Datenströmen
von einer ersten Vorrichtung zu einer zweiten Vorrichtung auf der
IEEE 1394-1995-Seriellbusstruktur verwendet werden.
-
Wie
oben beschrieben ist das eingebettete Filter 42 vorzugsweise
eine isochrone Datenpipe. Eine bevorzugte Ausführungsform der isochronen Datenpipe 42 ist
in der US-Patentanmeldung, Seriennummer 08/612322, angemeldet am
7. März
1996 und betitelt mit "ISOCHRONOUS
DATA PIPE FOR MANAGING AND MANIPULATING A HIGH SPEED STREAM OF ISOCHRONOUS
DATA FLOWING BETWEEN AN APPLICATION AND A BUS STRUCTURE", gelehrt. Die isochrone
Datenpipe 42 ist programmierbar und führt eine Serie von Instruktionen
an einem Datenstrom aus, um Manipulationen an den Daten auszuführen, wie
es zum Setzen der Daten in das passende Format erforderlich ist.
Die isochrone Datenpipe 42 kann zum Manipulieren sowohl
asynchroner als auch isochroner Daten programmiert werden.
-
Für jedes übertragene
Datenquadlett führt
die isochrone Datenpipe 42 eine vorbestimmte Zahl Instruktionen
zum Manipulieren der Daten wie es notwendig ist vom empfangenen
Format in das empfangende Format aus. Beim Umwandeln von Daten arbeitet
die isochrone Datenpipe 42 auf jedem Datenquadlett unabhängig. Die
isochrone Datenpipe 42 führt eine programmierbare Zahl
von Instruktionen auf jedem Quadlett aus, um die Daten wie notwendig
zu manipulieren. Die isochrone Datenpipe 42 enthält auch
eine unabhängige
dedizierte Registerdatei 48.
-
Die
isochrone Datenpipe 42 wird von einer wie in 4 dargestellten unabhängigen,
dedizierten Registerdatei gesteuert. Die Registerdatei wird von
einem externen Kontroller 46 programmiert und zum Manipulieren
der durch die isochrone Datenpipe 42 fließenden Daten
wie es notwendig ist manipuliert. Die Registerdatei 180 enthält vorzugsweise
120 Datenbytes, die hexadezimal von 0 bis 77 nummeriert sind. Bei
der 4 ist die Registerdatei 180 in
einem Tabellenformat mit 30 horizontalen Reihen bzw. Zeilen, deren
jede vier Datenbytes enthält,
dargestellt. In der 4 ist
eine Versatzspalte 182 enthalten, um den Versatz des beginnenden
Bytes in jeder Zeile von der Adresse des Beginns der Registerdatei 180 zu
zeigen. Es ist auch eine Lese/Schreib-Spalte 184 enthalten,
um zu zeigen, ob die Felder in jeder Zeile entweder ausgelesen und
beschrieben oder nur ausgelesen werden können.
-
Das
Zykluszeit-Feld cycle_time ist ein Zwanzig-Bit-Feld in Bytes 0–2 der Registerdatei 180.
Das Zykluszeit-Feld kann ausgelesen und beschrieben werden. Wenn
das nachstehend diskutierte Steuerereignis-Feld den Zykluszahlwert
enthält,
hält das
Zykluszeit-Feld die Zykluszeit, bei der wie nachstehend beschrieben
das Kanalmasken-Feld vom Hängendkanalmasken-Feld
geladen wird.
-
Das
Steuer-Feld ist ein Zweiunddreißig-Bit-Feld
in den Bytes 4–7
der Registerdatei 180. Das Steuer-Feld kann ausgelesen
und beschrieben werden. Das Steuer-Feld enthält ein Ereignis-Feld, ein Ausgabefreigabe-Feld,
ein Stopp-bei-Fehler-Feld,
ein Übertragungsfreigabe-Feld
und ein Spring- bzw. Geh-Feld.
Das Ereignis-Feld ist ein Vier-Bit-Feld in den Bits 28–31 des
Steuer-Registers. Der Wert im Ereignis-Feld definiert das Busereignis
für die
isochrone Datenpipe 42 zum Verwenden als ein Auslöser bzw.
Trigger. Wenn dieses Busereignis auftritt, transferiert die isochrone
Datenpipe 42 den im Hängendkanalmasken-Register pending_ch_mask
gespeicherten Wert zum Laufendkanalmasken-Register_ch_mask. Das
Ereignis-Feld wird für
die möglichen
Busereignisse wie in der nachstehenden Tabelle I dargestellt codiert.
-
-
Wenn
deshalb von einem externen Kontroller ein Wert gleich 0 in das Ereignis-Feld
geschrieben wird, transferiert die isochrone Datenpipe unmittelbar
den Wert im Kanälehängend-Register
zum Kanalmasken-Register. Wenn das Ereignis-Feld einen Wert gleich
1 hält,
transferiert die isochrone Datenpipe den Wert im Kanälehängend-Register
in der wie oben beschriebenen Zykluszeit zum Kanalmasken-Register.
-
Das
Ausgabefreigabe-Feld ist ein Vier-Bit-Feld in den Bits 4–7 des Steuer-Feldes.
Wenn irgendwelche der Bits im Ausgabefreigabe-Feld auf einen logisch
hohen Pegel gesetzt sind, stellt der korrespondierende DMR-Kanal
sicher, dass der passenden Pfad voll gehalten wird.
-
Das
Stopp-bei-Fehler-Feld ist ein Ein-Bit-Feld in Bit 3 des Steuer-Feldes.
Wenn das Stopp-bei-Fehler-Bit auf einen logisch hohen Wert gesetzt
ist, stoppt die isochrone Datenpipe 42 die laufende Operation
beim entgegentretenden ersten Fehler durch Setzen des Wertes im
Kanalmasken-Register auf einen logisch niedrigen Wert. Mögliche Fehler
beim Senden von Daten enthalten einen Datenunterlauf oder ein fehlendes
Zyklusstartpaket. Mögliche
Fehler beim Empfang von Daten enthalten einen Datenüberlauf,
ein fehlendes Zyklusstartpaket, einen Daten-CRC-Fehler, einen Fehler
im Paketformat oder einen Kanalfehlfehler.
-
Das Übertragungsfreigabe-Feld
ist ein Ein-Bit-Feld im Bit 1 des Steuer-Feldes. Wenn das Übertragungsfreigabe-Bit
auf einen logisch hohen Wert gesetzt ist, beginnt die isochrone
Datenpipe 42 die Ausführung des
Ausgabesteuervorratprogramms. Wenn das Geh-Bit auf einem logisch
niedrigen Wert ist oder das Ausgabesteuervorratprogramm eine Rückkehrinstruktion
ausführt,
wird das Übertragungsfreigabe-Bit
gelöscht.
-
Das
Geh-Feld ist ein Ein-Bit-Feld im Bit 0 des Steuer-Feldes. Die Anwendung
setzt das Geh-Bit auf einen logisch hohen Wert, um die isochrone
Datenpipe zum Beobachten eines Ereignisses freizugeben. Wenn die
spezifizierte Ereignisbedingung erfüllt ist, transferiert die isochrone
Datenpipe 42 die Inhalte des Hängendkanalmasken-Registers
zum Laufendkanalmasken-Register.
-
Das
Status-Feld ist ein Zeiunddreißig-Bit-Feld
in den Bytes 8-B der Registerdatei 180. Das Status-Feld kann
ausgelesen und beschrieben werden. Das Status-Feld enthält Statusinformation,
die über
den laufenden Zustand der isochronen Datenpipe 42 berichtet.
Die Bits 0–7
des Status-Feldes korrespondieren mit den Bits 0–7 des Steuer-Feldes und enthalten
ein Ausgabe-Feld, ein Stopp-bei-Fehler-Feld, ein Übertragungsfreigabe-Feld
und ein aktives Feld. Der Wert dieser Felder im Status-Register
zeigt den laufenden Betriebszustand der isochronen Datenpipe 42 an.
Die Bits 8–27
des Status-Felds
sind reserviert. Im Status-Feld ist das aktive Feld ein Ein-Bit-Feld
im Bit 0 des Status-Feldes, das anzeigt, ob die isochrone Datenpipe
aktiv ist oder nicht. Vorzugsweise ist, wenn das aktive Bit gleich
einem logisch hohen Wert ist, die isochrone Datenpipe laufend aktiv
und transferiert Daten. Wenn das aktive Bit gleich einem logisch
niedrigen Pegel ist, ist die isochrone Datenpipe nicht laufend aktiv.
Das Fehler-Feld
ist ein Vier-Bit-Feld in den Bits 28–31 des Status-Feldes. Wenn die isochrone
Datenpipe 42 aufgrund eines Fehlers den Betrieb bzw. die
Operation anhält,
enthält
das Fehler-Feld einen den Fehlerzustand anzeigenden Wert. Das Fehler-Feld
ist nur gültig,
wenn das aktive Bit gleich einem logisch niedrigen Wert ist. Die
möglichen
Werte für
das Fehler-Feld
und die Fehler, mit denen sie korrespondieren, sind in der nachstehenden
Tabelle II aufgelistet.
-
-
Das
Hängendkanalmaskenhoch-Feld
pending_ch_mask_hi ist ein Vier-Byte-Feld in den Bytes 20–23 der
Registerdatei 180. Das Hängendkanalmaskenniedrig-Feld
pending_ch_mask_lo ist ein Vier-Byte-Feld in den Bytes 24–27 der
Registerdatei 180. Zusammen bilden die zwei Hängendkanalmasken-Felder pending_ch_mask_hi
und pending_ch_mask_lo ein Acht-Byte-Feld, das die Maske isochroner
Kanalnummern für
die zu empfangende isochrone Datenpipe 42 enthält. Die
isochrone Datenpipe 42 transferiert die Inhalte dieses
Feldes zum Kanalmasken-Register, wenn das programmierte Triggerereignis
auftritt. Die Bitzuordnung des Hängendkanalmasken-Feldes
ist die gleiche wie die Bitzuordnung des im Kapitel 8 des IEEE 1394-1995-Standards definierten
Kanäleverfügbar-Registers.
-
Das
Laufendkanalmaskenhoch-Feld ch_mask_hi ist ein Vier-Byte-Feld in den
Bytes 28–2
der Registerdatei 180. Das Laufendkanalmaskenniedrig-Feld
ch_mask_lo ist ein Vier-Byte-Feld in den Bytes 2C–2F der Registerdatei 180.
Zusammen bilden die zwei Laufendkanalmasken-Felder ch_mask_hi und
ch_mask_lo ein Acht-Byte-Feld, das die laufend in Betrieb befindliche
Kanalmaske enthält,
wobei jedes Bit in den Laufendkanalmasken-Feldern einen isochronen Kanal repräsentiert.
Das Kanalmasken-Feld wird nur vom Hängendkanalmasken-Feld geladen,
wenn ein Triggerereignis auftritt. Die isochrone Datenpipe 42 ignoriert
empfangene Isochronkanalnummern, für die das korrespondierende
Bit im Laufendkanalmasken-Feld auf einen logisch niedrigen Wert
gesetzt ist.
-
Das
Steuervorratausgabe-Feld CS_output ist ein Ein-Byte-Feld im Byte 34 der
Registerdatei 180. Das Steuervorratausgabe-Feld CS_output
enthält
die Steuervorratadresse im Steuervorratsspeicher, zu dem die isochrone
Datenpipe 42 sendet, wenn Übertragung freigegeben ist.
Der Steuervorratsspeicher enthält
Instruktionen, die von der isochronen Datenpipe bei der Ausführung ihrer
Operationen an einem Datenstrom verwendet werden.
-
Das
Steuervorratzyklusstartadressen-Feld CS_addr_CS ist ein Ein-Byte-Feld
im Byte 37 der Registerdatei 180. Das Steuervorratadressen-Feld
CS_addr_CS enthält
die Steuervorratadresse, zu der die isochrone Datenpipe abzweigt,
wenn das Zyklusstartpaket empfangen wird. Das dem Steuervorratprogramm
verfügbare erste
Quadlett ist das erste Quadlett des Zyklusstartpakets. Die Steuervorratsadressen-Felder
CS_addr_0 bis CS_addr_63 sind jeweils Ein-Byte-Felder in den Bytes
38 bis 77 der Registerdatei 180. Diese Felder enthalten den
Steuervorratsadressenspeicher bzw. -vorrat, bei dem die isochrone
Datenpipe beim Empfang von Daten auf dem zur Byte-Nummer des Steuervorratsadressen-Feldes
passenden isochronen Kanal abzuzweigen hat. Beispielsweise enthält das Steuervorratsadressen-Feld
CS_addr_10 die Adresse im Steuerspeicher bzw. Steuervorrat, bei
der die isochrone Datenpipe beim Empfang von Daten auf der Isochronkanalnummer 10 abzuzweigen
hat. Die isochrone Datenpipe ignoriert alle isochronen Kanäle, für die der
korrespondierende Wert im Steuervorratsadressen-Feld gleich FFh
ist. Nach Senden zu einer in entweder dem Steuervorratszyklusstartadressen-Feld
CS_addr_CS oder einem der Steuervorratsadressen-Felder CS_addr_0
bis CS_addr_63 spezifizierten Steuervorratsadresse führt die
isochrone Datenpipe von dieser Steuervorratsadresse aus, bis sie
auf eine Rückkehrinstruktion
trifft. Wenn die isochrone Datenpipe auf eine Rückkehrinstruktion trifft, kehrt die
isochrone Datenpipe entweder zum Ruhezustand bzw. freien Zustand
zurück,
wenn nicht vorher eine Übertragung
freigegeben war, oder sie kehrt zu der Stelle im Übertragungssteuervorratsprogramm
zurück,
bei dem sie vor dem Senden war.
-
Es
gibt vierundsechzig potentielle isochrone Kanäle 0–63. Die Steuervorratsadressen-Felder CS_addr_0
bis CS_addr_63 korrespondieren jeweils mit einem isochronen Kanal
und enthalten die Adresse im Steuervorratsspeicher, bei der die
Instruktionen für
diesen isochronen Kanal beginnen. Wenn demgemäss die isochrone Datenpipe 42 Daten
auf einem speziellen isochronen Kanal empfängt, zweigt die isochrone Datenpipe 42 zu
der im korrespondierenden Steuervorratsadressen-Feld enthaltenen
Adresse ab, um die Instruktionen zum Manipulieren der Daten für diesen
Kanal zu erhalten. Isochrone Kanäle,
für die
der korrespondierende Wert im Steuervorratsadressen-Feld gleich
FFh ist, werden ignoriert, da sie Kanäle sind, die mit Bits im Laufendkanalmasken-Register
korrespondieren, die gleich 0 sind.
-
Ein
Strom aus isochronen Daten wird von einem oder mehreren isochronen
Kanäle
gebildet. Die isochrone Datenpipe 42 empfängt isochrone
Kanäle,
für welche
das korrespondierende Bit im Laufendkanalmasken-Feld auf einen logisch
hohen Wert gesetzt ist. Die isochrone Datenpipe 42 überträgt isochrone
Daten entsprechend dem bei der Steuervorratsadresse, die durch den
Wert im Steuervorratsausgabe-Register CS_output angezeigt wird,
beginnenden Steuervorratsprogramm.
-
Die
isochrone Datenpipe 42 ist in Wirklichkeit ein programmierbarer
Sequenzer, der um Ausführen
von Operationen am empfangen Datenstrom programmiert werden kann.
Der isochrone Datenpipesequenzer enthält eine wie in 5 dargestellte Registerdatei. In der
Registerdatei 190 ist das Unmittelbarwert-Register IMM ein
Vierunddreißig-Bit-Register
mit einem Registercode von „0", das nur ein Quellen-Register
sein kann. Das Unmittelbarwert-Register IMM spezifiziert, dass das
Vierunddreißig-Bit-Unmittelbar-Feld
der Instruktion die Quellendaten für die gegebene Operation enthält.
-
Das
Buseingabe-Register BUS_IN ist ein Zweiunddreißig-Bit-Register mit einem Registercode
von „1", das nur ein Quellen-Register
sein kann. Ein Zugriff auf das Buseingabe-Register BUS_IN ist eine Quelle eines
Operationstakte-Eins-Quadletts
von Daten durch die isochrone Datenpipe 42. Nach folgende
Zugriffe auf das Buseingabe-Register BUS_IN greifen auf nachfolgende
Datenquadletts im eingegebenen Datenstrom zu.
-
Das
Busausgabe-Register BUS_OUT ist ein Vierunddreißig-Bit-Register mit einem Registercode
von „2", das nur ein Bestimmungs-Register
sein kann. Ein Zugriff auf das Busausgabe-Register BUS_OUT ist eine Bestimmung
eines Operationstakte-Eins-Quadletts von Daten durch die isochrone
Datenpipe 42. Nachfolgende Zugriffe auf das Busausgabe-Register
BUS_OUT takten nachfolgende Datenquadletts im ausgegebenen Datenstrom.
-
Die
Daten-Register D0–D7
sind jeweils Vierunddreißig-Bit-Register mit
einem Registercode von „4", „5", „6", „7", „8", „9", „A" bzw. „B", die entweder ein
Quellen- oder Bestimmungs-Register sein können. Die Daten-Register D0–D7 können als
das Quellen- oder Bestimmungs-Register für jede Operation verwendet
werden.
-
Die
Datenschnittstellen-Register DATA_0-DATA_3 sind jeweils Zweiunddreißig-Bit-Register
mit einem Registercode von „10", „11", „12" bzw. „13", die entweder ein
Quellen- oder Bestimmungs-Register sein können. Jedes der Datenschnittstellen-Register
DATA_0-DATA_3 greift auf einen anderen DMA-Kanal zu. Die Verwendung
dieser Register muss mit der Programmierung des Ausgabefreigabe-Feldes
DMA_out_en konsistent sein.
-
Die
isochrone Datenpipe 42 implementiert einen aus einer linearen
Liste von acht Ein-Byte-Registern gebildeten Stapel. Auf die Stapel-Register
wird nur während
eines Abzweigs zu einer Subroutineninstruktion und einer Rückkehrinstruktion
zugegriffen. Bei der bevorzugten Ausführungsform der vorliegenden
Erfindung weisen die Stapel-Register S0–S7 je eine jeweilige Registeradresse
0–7 auf.
Alternativ dazu variiert die Zahl Stapel-Register tatsächlich von
der spezifischen Implementation abhängig. Beim Laden des Steuervorratsprogramms
wird der Stapelzeiger automatisch auf den Wert 0 initialisiert,
wodurch er auf das korrespondierende Stapel-Register 50 zeigt.
-
Wenn
die isochrone Datenpipe 42 zu einer Subroutine abzweigt,
speichert die isochrone Datenpipe 42 die Adresse der nächsten Steuervorratsoperation
im laufenden Stapel-Register, inkrementiert den Wert des Stapelzeigers
und zweigt dann zu der im Niedrigordnungsbyte des Quellen-Feldes
enthaltenen Steuervorratsinstruktion ab. Wenn die isochrone Datenpipe 42 eine
Rückkehrinstruktion
ausführt,
dekrementiert sie den Stapelzeiger und zweigt dann zu der im laufenden
Stapel-Register enthaltenen Steuervorratsinstruktion ab. Wird der
Stapelzeiger dekrementiert, wenn er einen Wert gleich 0 enthält, bleibt
der Wert des Stapelzeigers bei 0, und die isochrone Datenpipe 42 hält die Operation,
bis sie ein isochrones Datenpaket oder ein Zyklusstartpaket empfängt. Wenn
die isochrone Datenpipe ein Ausgabesteuervorratsprogramm ausführt und
ein Zyklusstartpaket oder ein freigegebener isochroner Kanal empfangen
wird, unterbricht die isochrone Datenpipe 42 die Ausführung des
Ausgabesteuervorratsprogramms, sichert die Adresse der laufenden
Instruktion im Stapel, dekrementiert den Stapelzeiger und sendet
dann zur richtigen Stelle, um das empfangene Paket zu behandeln.
-
Jede
isochrone Steuervorratsinstruktion enthält ein Operationscode-Feld
bzw. OpCode-Feld, ein Quellen-Feld, ein Bestimmungs-Feld, ein Unmittelbarwert-Feld,
ein Unmittelbar-Feld
und ein Reserviert-Feld. Das OpCode-Feld ist ein Sechs-Bit-Feld, das eine
auszuführende
Operation beschreibt. Das Quellen-Feld src ist ein Vier-Bit-Feld,
das ein Register oder einen Unmittelbarwert spezifiziert, das bzw.
der den Quellenwert der spezifizierten Operation enthält. Das
Bestimmungs-Feld
dest ist ein Vier-Bit-Feld, das ein Bestimmungs-Register für die spezifizierte
Operation spezifiziert. Das Unmittelbarwert-Feld imm_val ist ein
Ein-Bit-Feld, das, wenn auf einen logisch hohen Wert gesetzt, spezifiziert,
dass einer der Operanden im Unmittelbar-Feld enthalten ist. Das
Unmittelbar-Feld
imm ist ein Vierunddreißig-Bit-Feld,
das einen Unmittelbarwert zur Verwendung für eine Operation spezifiziert,
wenn das Unmittelbarwert-Feld imm_val auf einen logisch hohen Wert
gesetzt ist. Bei der bevorzugten Ausführungsform der vorlie genden
Erfindung enthält
das Reserviert-Feld dreizehn Bits, die zur Verwendung bei alternativen
Ausführungsformen
der isochronen Datenpipe 20 reserviert sind.
-
Die
Operationscodes, die durch die bevorzugte Ausführungsform des isochronen Datenpipesequenzers
während
einer Manipulation eines Datenstroms implementiert werden und im
OpCode-Feld enthalten sein können,
sind in der nachstehenden Tabelle III aufgelistet. Die isochrone
Datenpipe 42 speichert die Resultate für jede dieser Operationen in
irgendeinem der in 5 dargestellten
Register, das eine Bestimmung sein kann, einschließlich der
Daten-Register D0–D7
und irgendeines DMA-Kanals, der als eine Bestimmung konfiguriert
ist.
-
-
-
Für die meisten
der in Tabelle III aufgelisteten Operationen sind zwei mnemotechnische
Instruktionen enthalten. Die ein „I" enthaltende mnemotechnische Instruktion
spezifiziert die Operation, die unter Verwendung des unmittelbaren
Wertes durchzuführen
ist. Die mnemotechnische Instruktion, die kein „I" enthält, spezifizierte Operation,
die zwischen den Werten in den Quellen- und Bestimmungs-Registern
einzuleiten sind.
-
Beim
Ausführen
einer MOVE-Operation wird der Wert in dem im Quellen-Feld src spezifierten
Register zu dem im Bestimmungs-Feld dest spezifizierten Register
bewegt. Wenn das im Quellen-Feld sre spezifizierte Register ein
Vierunddreißig-Bit-Register ist
und das im Bestimmungs-Feld dest spezifizierte Register ein Zweiunddreißig-Bit-Register
ist, gehen die zwei Bits hoher Ordnung verloren. Wenn das im Quellen-Feld src spezifizierte
Register ein zweiunddreißig-Bit-Register
ist und das im Bestimmungs-Feld dest spezifizierte Register ein
Vierunddreißig-Bit-Register
ist, werden die zwei Bits hoher Ordnung auf einen logisch niedrigen
Pegel gesetzt.
-
Beim
Ausführen
einer MOVE-Multiple-Operation wird eine von einem Zählwert spezifizierte
Zahl Datenquadletts von dem im Quellen-Feld src spezifizierten Register
zu dem im Bestimmungs-Feld dest spezifizierten Register bewegt.
Der Zählwert
wird in dem im Unmittelbar-Feld der Instruktion bezeichneten Register gespeichert.
Vorzugsweise ist für
die MOVE-Multiple-Operation
das im Quellen-Feld src spezifizierte Register eines der Datenschnittstellen-Register
DATA_0-DATA_3, das auf einen DMA-Kanal zugreift, oder das Buseingabe-Register
BUS_IN. Vorzugsweise ist für
diese Operation das im Bestimmungs-Feld dest spezifizierte Register
eines der Datenschnittstellen-Register DATA_0-DATA_3, das auf einen
DMA-Kanal zugreift,
oder das Busausgabe-Register BUS_OUT.
-
Während einer
AND-Operation wird eine logische UND-Operation an den Werten im Quellen-Feld
src und dem Bestimmungs-Feld dest ausgeführt, und das Resultat wird
in dem im Bestimmungs-Feld dest spezifizierten Register gespeichert.
Die ANDI-Form dieser Instruktion verwendet den Wert im Unmittelbar-Feld
anstelle des Wertes im Bestimmungs-Feld als einen der Operanden
und speichert das Resultat in dem im Bestimmungs-Feld dest spezifizierten
Register. Wenn das im Quellen-Feld
src spezifizierte Register ein Vierunddreißig-Bit-Register ist und das
im Bestimmungs-Feld dest spezifizierte Register ein Zweiunddreißig-Bit-Register
ist, gehen die zwei Bits hoher Ordnung verloren. Wenn das im Quellen-Feld
src spezifizierte Register ein Zweiunddreißig-Bit-Register ist und das
im Bestimmungs-Feld dest spezifizierte Register ein Vierunddreißig-Bit-Register
ist, dann werden die zwei Bits hoher Ordnung beide auf einen logisch
niedrigen Wert gesetzt. Wenn die im Quellen-Feld src spezifizierten
Register und das im Bestimmungs-Feld dest spezifizierte Register beide
Vierund dreißig-Bit-Register
sind, wird die AND-Operation an allen vierunddreißig Bits
ausgeführt.
-
Während einer
OR-Operation wird eine logische ODER-Operation an den Werten in
den durch das Quellen-Feld src und das Bestimmungs-Feld dest spezifizierten
Registern ausgeführt,
und das Resultat wird in dem im Bestimmungs-Feld dest spezifizierten
Register gespeichert. Die ORI-Form dieser Instruktion verwendet
den Wert im Unmittelbar-Feld anstelle des Wertes im Bestimmungs-Feld
als einen der Operanden und speichert das Resultat in dem im Bestimmungs-Feld
dest spezifizierten Register. Wenn das im Quellen-Feld src spezifizierte
Register ein Vierunddreißig-Bit-Register
ist und das im Bestimmungs-Feld dest spezifizierte Register ein
Zweiunddreißig-Bit-Register
ist, gehen die zwei Bits hoher Ordnung verloren. Wenn das im Quellen-Feld
src spezifizierte Register ein Zweiunddreißig-Bit-Register ist und das
im Bestimmungs-Feld
dest spezifizierte Register ein Vierunddreißig-Bit-Register ist, werden die zwei Bits hoher
Ordnung beide auf einen logisch niedrigen Wert gesetzt. Wenn das
im Quellen-Feld
src spezifizierte Register und das im Bestimmungs-Feld dest spezifizierte
Register beide Vierunddreißig-Bit-Register
sind, wird die OR-Operation an allen vierunddreißig Bits ausgeführt.
-
Beim
Ausführen
einer SHIFT-Operation wird der Wert im Bestimmungs-Register dest
um eine vom Wert im Quellen-Register src spezifizierte Zahl Bits
verschoben, und das Resultat wird in dem im Bestimmungs-Feld dest
spezifizierten Register gespeichert. Ein positiver Verschiebewert
verschiebt den Wert im Bestimmungs-Register nach rechts zum niedrigstwertigen
Bit, und zum Auffüllen
der verschobenen Bits auf der linken Seite werden beginnend mit
dem höchstwertigen
Bit Nullen verwendet. Ein negativer Verschiebewert verschiebt den
Wert im Bestimmungs-Register nach links zum höchstwertigen Bit, und zum Auffüllen der
verschobenen Bits auf der rechten Seite werden beginnend mit dem
niedrigstwertigen Bit Nullen verwendet. Die SHIFTI-Form der Instruktion
verschiebt den Wert im Quellen-Register um die im Unmittelbar-Feld
spezifizierte Zahl Bits und speichert das Resultat in dem im Bestimmungs-Feld spezifizierten
Register. Wenn das im Quellen-Feld src spezifizierte Register ein
Vierunddreißig-Bit-Register
ist und das im Bestimmungs-Feld dest spezifizierte Register ein
Zweiunddreißig-Bit-Register
ist, gehen die zwei Bits hoher Ordnung verloren. Wenn das im Quellen-Feld
src spezifizierte Register ein Zweiunddreißig-Bit-Register ist und das
im Bestimmungs-Feld dest spezifizierte Register ein Vierunddreißig-Bit-Register
ist, werden die zwei Bits hoher Ordnung beide auf einen logisch
niedrigen Wert gesetzt. Wenn das im Quellen-Feld src spezifizierte
Register und das im Bestimmungs-Feld dest spezifizierte Register
beide Vierunddreißig-Bit-Register sind,
wird die Verschiebeoperation an nur den Zweiunddreißig Bits
niedriger Ordnung ausgeführt.
-
Beim
Ausführen
CMP-Operation wird der Wert im Quellen-Register src vom Wert im Bestimmungs-Feld
dest subtrahiert. Wenn das Resultat der CMP-Operation gleich Null
ist, wird das Z-Bit auf einen logisch hohen Wert gesetzt. Wenn das
Resultat der CMP-Operation nicht gleich Null ist, wird das Z-Bit
auf einen logisch niedrigen Wert gesetzt. Die Resultate der CMP-Operation werden
nicht irgendwo gespeichert. Die CMP-Form der Instruktion subtrahiert
den unmittelbaren Wert vom Wert im Quellen-Register src und setzt
das wie oben spezifizierte Z-Bit
entsprechend dem Resultat. Diese Instruktion speichert das Resultat
der Operation ebenfalls nicht.
-
Beim
Ausführen
einer ADD-Operation wird der Wert im Quellen-Register src zum Wert
im Bestimmungs-Register dest addiert, und das Resultat wird im Bestimmungs-Register
dest gespeichert. Die ADDI-Form dieser Instruktion addiert den Wert
im Quellen-Register src zum unmittelbaren Wert und speichert das Resultat
im Bestimmungs-Register dest. Wenn das im Quellen-Feld src spezifizierte
Register ein Vierunddreißig-Bit-Register ist
und das im Bestimmungs-Feld dest spezifizierte Register ein Zweiunddreißig-Bit-Register ist,
gehen die zwei Bits hoher Ordnung verloren. Wenn das im Quellen-Feld src spezifizierte
Register ein Zweiunddreißig-Bit-Register ist und
das im Bestimmungs-Feld dest spezifizierte Register ein Vierunddreißig-Bit-Register
ist, werden die zwei Bits hoher Ordnung beide auf einen logisch
niedrigen Wert gesetzt. Wenn das im Quellen-Feld src spezifizierte
Register und das im Bestimmungs-Feld dest spezifizierte Register
beide Vierunddreißig-Bit-Register
sind, wird die ADD-Operation an nur den zweiunddreißig Bits
niedriger Ordnung ausgeführt.
-
Beim
Ausführen
einer SUB-Operation wird der Wert im Bestimmungs-Register dest vom
Wert im Quellen-Register src subtrahiert, und das Resultat wird
im Bestimmungs-Register dest gespeichert. Die SUBI-Form dieser Instruktion
subtrahiert den unmittelbaren Wert vom Wert im Quellen-Register,
und das Resultat wird im Bestimmungs-Register dest gespeichert.
Wenn das im Quellen-Feld src spezifizierte Register ein Vierunddreißig-Bit-Register
ist und das im Bestimmungs-Feld
dest spezifizierte Register ein Zweiunddreißig-Bit-Register ist, gehen
die zwei Bits hoher Ordnung verloren. Wenn das im Quellen-Feld src
spezifizierte Register ein Zweiunddreißig-Bit-Register ist und das
im Bestimmungs-Feld dest spezifizierte Register ein Vierunddreißig-Bit-Register
ist, werden die zwei Bits hoher Ordnung beide auf einen logisch
niedrigen Wert gesetzt. Wenn das im Quellen-Feld src spezifizierte
Register und das im Bestimmungs-Feld dest spezifizierte Register
beide Vierunddreißig-Bit-Register
sind, wird die SUB-Operation an nur den zweiunddreißig Bits
niedriger Ordnung ausgeführt.
-
Beim
Ausführen
einer MULT-Operation wird der Wert im Quellen-Register src mit dem
Wert im Bestimmungs-Register dest multipliziert, und das Resultat
wird im Bestimmungs-Register
dest gespeichert. Die MULTI-Form dieser Instruktion multipliziert
den unmittelbaren Wert mit dem Wert im Quellen-Register src, und das Resultat wird
Bestimmungs-Register dest gespeichert. Wenn das im Quellen-Feld
src spezifizierte Register ein Vierunddreißig-Bit-Register ist und das
im Bestimmungs-Feld dest spezifizierte Register ein Zweiunddreißig-Bit-Register ist,
gehen die zwei Bits hoher Ordnung verloren. Wenn das im Quellen-Feld
src spezifizierte Register ein Zweiunddreißig-Bit-Register ist und das
im Bestimmungs-Feld dest spezifizierte Register ein Vierunddreißig-Bit-Register
ist, werden die zwei Bits hoher Ordnung beide auf einen logisch
niedrigen Wert gesetzt. Wenn das im Quellen-Feld src spezifizierte
Register und das im Bestimmungs-Feld dest spezifizierte Register
beide Vierunddreißig-Bit-Register
sind, wird die MULT-Operation an nur den zweiunddreißig Bits
niedriger Ordnung ausgeführt.
-
Beim
Ausführen
einer BRANCH-Operation zweigt die isochrone Datenpipe 42 zu
der im Byte niedriger Ordnung des Quellen-Feldes src enthaltenen
Steuervorratsadresse ab. Das Quellen-Feld src kann ein Register
oder einen unmittelbaren Wert spezifizieren.
-
Beim
Ausführen
einer BRANCH ON ZERO-Operation zweigt die isochrone Datenpipe 42 zu
der im Byte niedriger Ordnung des Quellen-Feldes src enthaltenen
Steuervorratsadresse ab, wenn das Resultat der letzten Arithmetik-
oder Bewegungssteuervorratsinstruktion gleich null war. Das Quellen-Feld
src kann ein Register oder einen unmittelbaren Wert spezifizieren.
-
Beim
Ausführen
einer BRANCH ON NOT ZERO-Operation zweigt die isochrone Datenpipe 42 zu
der im Byte niedriger Ordnung des Quellen-Feldes src enthaltenen
Steuervorratsadresse ab, wenn das Resultat der letzten Arithmetik-
oder Bewegungssteuervorratsinstruktion nicht gleich Null war. Das
Quellen-Feld kann ein Register oder einen unmittelbaren Wert spezifizieren.
-
Beim
Ausführen
einer BSR-Operation wird die Adresse der nächsten Steuervorratsinstruktion
in den Stapel eingespeichert und die isochrone Datenpipe 42 zweigt
zu der im Byte niedriger Ordnung des Quellen-Feldes src enthaltenen
Steuervorratsadresse ab. Das Quellen-Feld src kann ein Register
oder einen unmittelbaren Wert spezifizieren.
-
Beim
Ausführen
einer BSR ON ZERO-Operation werden, wenn das Resultat der letzten
Arithmetik- oder Bewegungssteuervorratsinstruktion gleich Null war,
die Adressen der nächsten
Steuervorratsinstruktion in den Stapel eingespeichert, und die isochrone
Datenpipe 42 zweigt zu der im Byte niedriger Ordnung des Quellen-Feldes
src enthaltenen Steuervorratsad resse ab. Das Quellen-Feld src kann
ein Register oder einen unmittelbaren Wert spezifizieren.
-
Beim
Ausführen
einer BSR ON NOT ZERO-Operation werden, wenn das Resultat der letzten
Arithmetik- oder Bewegungssteuervorratsinstruktion nicht gleich
Null war, die Adressen der nächsten
Steuervorratsinstruktion in den Stapel eingespeichert, und die isochrone
Datenpipe 42 zweigt zu der im Byte niedriger Ordnung des
Quellen-Feldes src enthaltenen Steuervorratsadresse ab. Das Quellen-Feld
src kann ein Register oder einen unmittelbaren Wert spezifizieren.
-
Beim
Ausführen
einer RETURN-Operation wird die letzte Steuervorratsadresse aus
dem Stapel ausgespeichert, und die isochrone Datenpipe 42 zweigt
zu dieser Adresse ab.
-
Die
isochrone Datenpipe 42 der bevorzugten Ausführungsform
wird durch eine Vorrichtung programmiert, bevor sie Daten transferieren
oder manipulieren kann. Einmal programmiert und initialisiert wird
das Steuer-Register zum Ändern
des Operationszustandes der isochronen Datenpipe 42 verwendet.
Der laufende Operationszustand ist durch den Wert im Laufendkanalmasken-Register
und die im Byte niedriger Ordnung des Status-Registers enthaltenen
Information vollständig
definiert.
-
Um
den Zustand der isochronen Datenpipe 42 zu ändern, wird
ein neuer Kanalmaskenwert in das Hängendkanalmasken-Register und
ein neuer Operationszustand in das Steuer-Register programmiert.
Beim gleichen Registerzugriff auf das Steuer-Register wird auch das Geh-Bit gesetzt
und ein Ereignis in das Ereignis-Feld programmiert. Beim Auftreten
eines programmierten Ereignisses transferiert die isochrone Datenpipe 42 den
Wert im Hängendkanalmasken-Register
zum Laufendkanalmasken-Register. Die isochrone Datenpipe 42 transferiert
auch die Information im Byte niedriger Ordnung des Steuer-Registers
in das Byte niedriger Ordnung des Status-Registers.
-
Um
die Operation der isochronen Datenpipe 42 zu stoppen wird
in das Hängendkanalmasken-Register
ein Wert aus allen Nullen und in das Übertragungsfreigabe-Register
im Steuer-Register
ein logisch niedriger Wert programmiert. Wie bei je der Zustandsänderung
wird auch das Geh-Bit gesetzt, und in das Ereignis-Feld des Steuer-Registers
wird ein Ereignis programmiert. Wenn das Ereignis auftritt, wird
der Wert im Laufendkanalmasken-Register gleich null, und das Übertragungsfreigabe-Bit
im Status-Register wird auf einen logisch niedrigen Wert gezogen,
wodurch die Operation der isochronen Datenpipe 42 gestoppt
wird. Wenn die Operation der isochronen Datenpipe 42 gestoppt
ist, wird das aktive Bit im Status-Register ebenfalls auf einen logisch
niedrigen Wert gezogen.
-
Um
die isochrone Datenpipe 42 zu aktivieren, wird ein Steuervorratsprogramm
geladen, und die richtigen Steuervorratsverschiebungen werden in
die Steuervorratsadressen-Registerdatei programmiert. Dann wird
das Hängendkanalmasken-Register
mit einer Bitmaske der Kanäle,
welche die isochrone Datenpipe 42 zu empfangen hat, programmiert.
Wenn die isochrone Datenpipe 42 keine Daten empfängt, wird
der Wert im Hängendkanalmasken-Register
auf null programmiert. Das Geh-Bit
im Steuer-Register wird auf einen logisch hohen Wert gesetzt, um
eine Zustandsänderung
anzuzeigen. Das Übertragungsfreigabe-Bit
im Steuer-Register wird auf einen logisch hohen Wert gesetzt, wenn
die isochrone Datenpipe 42 isochrone Daten zu übertragen
hat. Das Stop-bei-Fehler-Bit im Steuer-Register wird auf einen logisch
hohen Wert gesetzt, wenn die isochrone Datenpipe 42 bei
irgendeinem Fehler die Operation zu stoppen hat. Wenn die isochrone
Datenpipe 42 isochrone Daten überträgt, werden die Ausgabefreigabe-Bits
im Steuer-Register, die mit den in die Übertragung isochroner Daten
involvierten DMA-Kanäle
korrespondieren, auf einen logisch hohen Wert gesetzt. Das Ereignis-Feld
im Steuer-Register wird auf ein Ereignis programmiert, bei dem die
isochrone Datenpipe 42 den Zustand zu ändern hat.
-
Bei
einer alternativen Ausführungsform
der Medienspeichervorrichtung 44 der vorliegenden Erfindung enthält die isochrone
Datenpipe 42 fest codierte feste Firmware zum Manipulieren
von Datenpaketen. Bei dieser Ausführungsform manipuliert die
isochrone Datenpipe 42 nur Kommunikationen in besondere
programmierte Formate. Die isochrone Datenpipe in der bevorzugten
Ausführungsform
der vorliegenden Erfindung kann durch den externen Kontroller 46 programmiert
und zum Manipulieren von Datenpaketen in jedes gewünschte Format
konfiguriert werden. Bei der bevorzugten Ausführungsform wird der passende
Umwandlungscode vom externen Kontroller 46 zur isochronen
Datenpipe 42 heruntergeladen.
-
Wenn
vorzugsweise der externe Kontroller 46 direkt an die Medienspeichervorrichtung 44 gekoppelt ist,
so ist auch zu erkennen, dass der externe Kontroller 46 alternativ
dazu durch das IEEE 1394-1995-Seriellbusnetz an die Medienspeichervorrichtung 44 gekoppelt
sein kann.
-
Das
eingebettete Filter 42 ist in der Medienspeichervorrichtung 44 enthalten,
um Vorteil aus der Tatsache zu ziehen, dass die meisten Datenströme auf die
Medienspeichervorrichtung 44 geschrieben und von dieser
gelesen werden. Demgemäss
können
die auf die Medienspeichervorrichtung 44 geschriebenen
und von dieser gelesenen Daten vom eingebetteten Filter 42 ohne
Unterbrechung ihres Flusses manipuliert werden. Daten, die nicht
in die Medienspeichervorrichtung geschrieben oder von dieser gelesen
werden, können
auch vom eingebetteten Filter 42 manipuliert werden, da
sie auf der IEEE 1394-1995-Seriellbusstruktur
von einer Vorrichtung zu einer anderen Vorrichtung übertragen
werden. Während
Datenoperationen, welche die Medienspeichervorrichtung 44 involvieren,
können
die Daten, wenn sie auf die Medien 40 geschrieben sind
oder nachdem sie von den Medien gelesen worden sind und bevor sie
auf dem IEEE 1304-1995-Seriellbus übertragen werden, manipuliert
werden. Die Daten können
auch manipuliert werden sowohl wenn sie auf die Medien 40 geschrieben
als auch von diesen gelesen werden.
-
Die
vorliegende Erfindung ist in Form von spezifischen Ausführungsformen
beschrieben worden, welche Details zum Erleichtern des Verständnisses
von Konstruktions- und Funktions- bzw. Betriebs- bzw, Operationsprinzipien
der Erfindung enthalten, Eine solche hier gegebene Bezugnahme auf
spezifische Ausführungsformen
und deren Details ist nicht dazu gedacht, den Rahmen bzw. Schutzbereich
der hier beigefügten An sprüche zu beschränken. Insbesondere
ist für
den Fachmann zu erkennen, dass, wenn die bevorzugte Ausführungsform
der vorliegenden Erfindung mit einer IEEE 1394-1995-Seriellbusstruktur
verwendet ist, die vorliegende Erfindung auch bei allen anderen
passenden Busstrukturen implementiert werden kann.