DE69731421T2 - Verfahren zum Verknüpfen eines Datenpaketes mit einem Kanal in einem IEEE1394-Datenübertragungssystem - Google Patents

Verfahren zum Verknüpfen eines Datenpaketes mit einem Kanal in einem IEEE1394-Datenübertragungssystem Download PDF

Info

Publication number
DE69731421T2
DE69731421T2 DE69731421T DE69731421T DE69731421T2 DE 69731421 T2 DE69731421 T2 DE 69731421T2 DE 69731421 T DE69731421 T DE 69731421T DE 69731421 T DE69731421 T DE 69731421T DE 69731421 T2 DE69731421 T2 DE 69731421T2
Authority
DE
Germany
Prior art keywords
data
dma
word
channel
logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69731421T
Other languages
English (en)
Other versions
DE69731421D1 (de
Inventor
Richard T. Austin Baker
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Application granted granted Critical
Publication of DE69731421D1 publication Critical patent/DE69731421D1/de
Publication of DE69731421T2 publication Critical patent/DE69731421T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40123Interconnection of computers and peripherals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40058Isochronous transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40071Packet processing; Packet format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40117Interconnection of audio or video/imaging devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/626Queue scheduling characterised by scheduling criteria for service slots or service orders channel conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4135Peripherals receiving signals from specially adapted client devices external recorder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4143Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4342Demultiplexing isochronously with video sync, e.g. according to bit-parallel or bit-serial interface formats, as SDI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network
    • H04N21/43632Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network involving a wired protocol, e.g. IEEE 1394
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines

Description

  • TECHNISCHES GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich allgemein auf das Gebiet elektronischer Vorrichtungen und insbesondere auf ein Verfahren zum Zuweisen eines Datenpakets zu einem von mehreren DMA-Kanälen, auf eine Schaltung zum Zuweisen eines Datenpakets zu einem DMA-Kanal und auf ein Personalcomputersystem.
  • HINTERGRUND DER ERFINDUNG
  • Für viele Multimediaanwendungen ist nicht nur die Prozessorgeschwindigkeit wichtig, sondern außerdem die Eingabe/Ausgabe-Bandbreite ein entscheidender Faktor, der Anwendungen in Personalcomputern begrenzt. Um diese Beschränkung zu behandeln, ermöglicht die IEEE-Norm 1394 Hochleistungs-Multimediaverbindungen mit Camcordern, Fernsehgeräten, Stereoanlagen, CD-Wechslern, Set-Top-Boxen, Mischkonsolen und Musik-Keyboards sowie herkömmlichen Personalcomputervorrichtungen. Die auch als die "FireWire"-Norm bekannte IEEE 1394 schafft eine Busschnittstellennorm für tragbare und Desktop-Computerumgebungen. Die IEEE-Norm 1394 dient als eine wichtige Verknüpfungstechnologie, die eine Brücke zwischen dem Verbraucher- und dem Computermarkt schlägt und einen seriellen Bus beschreibt, der durch ein fortgeschrittenes Kommunikationsprotokoll angesteuert wird. Der serielle IEEE-1394-Bus ist für niedrige Systemkosten konstruiert, während er die Datenübertragungsraten bereitstellt, die für Hochleistungs-Peripheriebusse erforderlich sind.
  • Die durch das Institute of Electrical and Electronic Engineers (IEEE) und seine Liste von Mitgliedscomputerunternehmen entwickelte IEEE-Norm 1394 ist eine serielle Busschnittstelle, die eine preiswerte digitale Hochgeschwindigkeitsdatenübertragung und -kommunikation ermöglicht. Die Übertragungsgeschwindigkeiten zwischen den Vorrichtungen können sowohl über die asynchrone als auch über die isochrone Datenübertragungsbetriebsart bis zu 400 Megabits pro Sekunde (MBit/s) erreichen. Da die Schnittstelle der IEEE-Norm 1394 ein isochrones Zeitscheibensystem betreibt, eignet sie sich für Videoanwendungen. Falls das System z. B. zur Ausgabe eines Teilbilds pro 1/15 Sekunden konfiguriert ist, gibt es in jedem ausgesendeten Paket wenigstens ein Teilbild. Dies führt zu einer ruhigen Videobetrachtung. Aus diesem Grund ist die Schnittstelle der IEEE-Norm 1394 hochkompatibel mit Technologien wie der asynchronen Übertragungsbetriebsart (ATM), die ebenfalls in einer isochronen Betriebsart arbeitet.
  • Nutzen der IEEE-Norm 1394 sind eine Echtzeitdatenübertragung, die den Nutzen einer idealen Verbindung für Multimediaanwendungen schafft. Die IEEE-Norm 1394 erzeugt unter Verwendung eines kleinen, haltbaren und biegsamen Kabels und kleiner, haltbarer und biegsamer Kabelverbinder Kosteneinsparungen und beseitigt bestimmte Kabelanforderungen. Die IEEE-Norm 1394 schafft universelle Eingangs/Ausgangs-Verbindungen, die Eingangs/Ausgangs-Ports integrieren und Leiterplattenraum verdichten. Außerdem schafft die IEEE-Norm 1394 eine gleichberechtigte Kommunikationsstruktur, die ermöglicht, dass die Peripheriegeräte direkt miteinander kommunizieren, ohne die Host-Einheit zu belasten.
  • Die IEEE-Norm 1394 schafft einen seriellen Hochgeschwindigkeitsbus, der Paketdaten verwendet, die einen Anfangsblock enthalten. Der Anfangsblock enthält Leitungsinformationen. Außerdem enthalten die Paketdaten Nutzdaten. Die physikalischen Eigenschaften der Medien sind nicht notwendig für eine lange Übertragungsentfernung bestimmt. Die IEEE-Norm 1394 ist für kurze Entfernungen wie etwa für lokale Netze, die an einem Desktop-Bus betrieben werden, bestimmt. Die Entfernungen sind häufig länger als einfach die Desktop-Entfernungen, wobei die IEEE-Norm 1394 aber nicht zur Verwendung für Operationen lokaler Netze bestimmt ist. Somit schafft die IEEE-Norm 1394 im Wesentlichen eine Hochgeschwindigkeitsverbindung, die serielle Busse und parallele Busse zum Zugreifen auf Vorrichtungen wie etwa Workstations, Home-Computer, Fernsehgeräte, VCRs und Camcorder mit verschiedenen Medientypen wie etwa Audio, Video und Text ersetzt.
  • Um die Anforderungen einer Schnittstellenvorrichtung zur Kommunikation gemäß der IEEE-Norm 1394 zu erfüllen, gibt es die Anforderung, zu identifizieren, dass ein gegebenes Paket durch einen besonderen Knoten empfangen werden soll. Die IEEE-Norm 1394 tut dies auf programmierbare Weise. Um sicherzustellen, dass lediglich gewünschte Pakete von den Peripheriegeräten an den Personalcomputer übertragen werden, ist es erforderlich, dass lediglich die gewünschten Pakete freigelassen und an den Personalcomputer weitergeleitet werden. Nach Kenntnis des Anmelders ermöglicht die bestehende Technologie keine enge Auswahl von Paketen auf programmierbare, flexible und anpassbare Weise. Nach Kenntnis des Anmelders können bestehende Schnittstellenvorrichtungen für den 1394-Bus reservierte Operationscodes oder Tcodes in dem Paketanfangsblock nicht auf programmierbare Weise behandeln. Nach Kenntnis des Anmelders ermöglicht keine bestehende Schnittstelle für einen IEEE-1394-Bus, aus den Kanälen, die an Datenmuster angepasst sind, einen Kanal mit der höchsten Priorität auszuwählen. Nach Kenntnis des Anmelders ermöglicht kein bestehendes System, ein Datenmuster mit einem Übereinstimmungsdatenmuster zu vergleichen und das Datenmuster einem besonderen Kanal zuzuweisen. Außerdem schaffen die bestehenden Schnittstellenvorrichtungen keinen Weg, mehrere Mengen gewünschter Muster anzugeben, um ein gegebenes Datenmuster mit einem gegebenen Datenkanal zu vergleichen und ihm zuzuweisen.
  • Das US-Patent Nr. 5.434.976 beschreibt eine Schaltung mit einem Vierkanal-DMA-Controller und zwei CPUs für das Management von Kommunikationen mit verschiedener, jeder der CPUs zugeordneter höherer und niedrigerer Funktionalität. Die Anordnung besitzt einen zugeordneten DMA-Controller, auf den jede CPU gleichzeitig zugreifen kann. Allerdings leidet die durch US 5.434.976 offenbarte Anordnung an einigen der oben erwähnten Nachteile.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Somit besteht ein Bedarf daran, zu identifizieren, dass ein gegebenes Paket in einer Kommunikationsschnittstelle wie etwa der Schnittstelle der IEEE-Norm 1394 durch einen besonderen Knoten empfangen werden soll.
  • Es besteht ein Bedarf an einem Verfahren und an einem System, die identifizieren, dass ein gegebenes Paket auf programmierbare Weise durch einen besonderen Knoten empfangen werden soll.
  • Es besteht ein Bedarf an einem Verfahren und an einer Vorrichtung, die bestimmte Pakete beseitigen oder ausschließen und somit eine enge Auswahl der Datenpakete ermöglichen, die einem gegebenen DMA-Kanal zugewiesen werden. Außerdem sollte dieser Bedarf durch ein Verfahren und eine Vorrichtung befriedigt werden, die programmierbar, flexibel und anpassungsfähig und insbesondere auf die IEEE-Norm 1394 anwendbar sind.
  • Es besteht ein Bedarf an einem Verfahren und an einer Vorrichtung zur Behandlung von Reserveoperationscodes oder -übertragungscodes in einem Datenpaket-Anfangsblock.
  • Es besteht ein weiterer Bedarf an einem Verfahren und an einer Vorrichtung, die unter denjenigen Kanälen, die mit gewünschten Anfangsblock-Datenmustern übereinstimmen, die Kanäle mit der höchsten Priorität auswählen können. Es besteht ein Bedarf an einer Möglichkeit, ein Datenmuster in einem Datenpaket mit dem Datenpaket eines besonderen Kanals zu vergleichen und diesem Datenpaket den besonderen Kanal zuzuweisen.
  • Es besteht ein nochmals weiterer Bedarf an einem Verfahren und an einer Vorrichtung zum Angeben mehrerer Mengen gewünschter Datenmuster zum Vergleichen eines gegebenen Übereinstimmungsdatenmusters mit einem gegebenen Datenkanal und zum Zuweisen des gegebenen Übereinstimmungsdatenmusters zu dem gegebenen Datenkanal.
  • In Übereinstimmung mit der vorliegenden Erfindung werden ein Verfahren und eine Vorrichtung zum Zuweisen eines Datenpakets zu einem von mehreren DMA-Kanälen geschaffen, die die Nachteile und Probleme im Zusammenhang mit früher entwickelten Verfahren und Vorrichtungen zum Zuweisen von Datenpaketen zu einem Datenkommunikations-DMA-Kanal im Wesentlichen beseitigen oder verringern.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren zum Zuweisen eines Datenpakets zu einem von mehreren DMA-Kanälen geschaffen, wobei das Verfahren die folgenden Schritte umfasst: Empfangen wenigstens eines Abschnitts des Datenpakets, Vergleichen des wenigstens einen Abschnitts des Datenpakets mit einer vorgegebenen Übereinstimmungsdatenmenge, wobei wenigstens ein Anschnitt der Übereinstimmungsdatenmenge programmierbar variable Datenbereiche aufweist, die wenigstens einem der mehreren DMA-Kanäle entsprechen; und Lenken eines Kanalauswahlsignals zu wenigstens einem der mehreren DMA-Kanäle, falls eine vorgegebene Korrespondenz zwischen dem wenigstens einen Abschnitt des empfangenen Datenpakets und der Übereinstimmungsdatenmenge vorhanden ist.
  • Gemäß einem zweiten Aspekt der Erfindung wird eine Schaltung zum Zuweisen eines Datenpakets zu einem DMA-Kanal geschaffen, mit: einem Komparator, der wenigstens einen Abschnitt eines Datenpakets empfängt, einer Schaltungsanordnung, die dem Komparator zugeordnet ist, um wenigstens den Abschnitt des Datenpakets mit einer vorgegebenen Übereinstimmungsdatenmenge zu vergleichen, wobei wenigstens ein Abschnitt der Übereinstimmungsdatenmenge programmierbar variable Datenbereiche aufweist, die wenigstens einem von mehreren DMA-Kanälen entsprechen; und einer Schaltungsanordnung zum Lenken eines Kanalauswahlsignals zu dem wenigstens einen DMA-Kanal, falls eine vorgegebene Entsprechung zwischen dem wenigstens einen Abschnitt und der Übereinstimmungsdatenmenge vorhanden ist.
  • Gemäß einem dritten Aspekt der Erfindung wird ein Personalcomputersystem geschaffen, mit: wenigstens einem Peripheriegerät, das einen Datenpaket-Übertragungsbus verwendet; einem Computer, der umfasst: eine Host-CPU, die einen PCI-Bus umfasst; und eine PCI-Schnittstellenvorrichtung, die eine Schnittstelle zwischen dem PCI-Bus und dem Peripheriegerät schafft, wobei die PCI-Schnittstellenvorrichtung eine Schaltung zum Zuweisen eines Datenpakets zu einem DMA-Kanal in Übereinstimmung mit dem zweiten Aspekt umfasst.
  • Ein technischer Vorteil der vorliegenden Erfindung ist, dass sie einen programmierbaren, flexiblen und anpassungsfähigen Weg schafft, um zu bestimmen, dass ein besonderes Datenpaket zu einem besonderen DMA-Kommunikationskanal gehen sollte.
  • Ein weiterer technischer Vorteil der vorliegenden Erfindung ist, dass sie einen programmierbaren, flexiblen und anpassungsfähigen Weg schafft, bestimmte Datenpakete von besonderen Datenkanälen auszuwählen und auszuschließen.
  • Ein nochmals weiterer technischer Vorteil der vorliegenden Erfindung ist, dass sie einen zweckmäßigen Mechanismus oder ein zweckmäßiges Verfahren schafft, um einen Operationscode oder Übertragungscodes und andere Codes in Datenpaket-Anfangsblöcken auf flexible und programmierbare Weise zu verwenden, um die Zuweisung und Priorität gegebener Datenpakete zu bestimmen.
  • Ein nochmals weiterer technischer Vorteil der vorliegenden Erfindung ist, dass sie einen schnellen, effizienten und praktischen Weg schafft, um zu priorisieren, welche Datenpakete zu welchem DMA-Kanal gehen.
  • Ein weiterer technischer Vorteil der vorliegenden Erfindung ist, dass sie einen Weg schafft, um zu bestimmen, dass Datenpakete, die mit besonderen übereinstimmenden Datenmengen übereinstimmen, zu einem besonderen DMA-Kanal gehen sollten.
  • Ein nochmals weiterer technischer Vorteil der vorliegenden Erfindung ist, dass sie einen Weg schafft, um zu bestimmen, dass mehrere Typen von Datenpaketen, die mehreren übereinstimmenden Datenmengen entsprechen, zu einem einzigen DMA-Kanal gehen sollten.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Ein vollständigeres Verständnis der vorliegenden Erfindung und ihrer Vorteile kann mit Bezug auf die folgende Beschreibung in Verbindung mit der beigefügten Zeichnung gewonnen werden, in der gleiche Bezugszeichen gleiche Merkmale angeben und in der:
  • 1 eine Betriebsübersicht der Personalcomputerumgebung veranschaulicht, die die vorliegende Erfindung enthält;
  • 2 eine allgemeine Betriebsübersicht der Funktionslogik der vorliegenden Erfindung gibt;
  • 3 eine konzeptionelle Ansicht der Komparatorlogik für die vorliegende Erfindung veranschaulicht;
  • 4 eine ausführlichere konzeptionelle Darstellung der Komparatorlogik der vorliegenden Erfindung gibt;
  • 5 die Anfangsblock-Komparatorfunktionen für die Paketempfängerlogik der vorliegenden Erfindung noch ausführlicher veranschaulicht;
  • 6 bis 9 mögliche Datenwerte für die Felder angepasster Datenmengen veranschaulichen, die auf die vorliegende Erfindung anwendbar sind;
  • 10 die eine Ausführungsform der programmierbar wählbaren Schreibfreigabe-Datenflipflops der vorliegenden Erfindung veranschaulicht;
  • 11 ein Beispiel eines Adressenfelds zur Implementierung des Aspekts der programmierbaren Bitauswahl der vorliegenden Erfindung gibt;
  • 12 eine Veranschaulichung einer Direktspeicherzugriffs-Mehrkanalumgebung gibt, die zeitmultiplexiert ist, um die DMA-Befehlsverarbeitungsoperation der vorliegenden Erfindung zu veranschaulichen;
  • 13 eine Tabelle zur Veranschaulichung der Zuweisung der Priorität anhand des momentan aktiven Kanals gibt;
  • 14 einen Abschnitt der auf die Autoboot-Funktion anwendbaren Schnittstellenvorrichtungsarchitektur für die vorliegende Erfindung zeigt;
  • 15 eine Tabelle der PCI-Master-Busbefehle gibt, die den Bits 31 und 30 des internen PCI-Adressenbusses entsprechen, wenn der Autoboot-Anschlussstift aus 14 aktiv gesetzt ist;
  • 16 die Lokalbusschnittstelle der vorliegenden Erfindung in Blockschaltbildform zeigt;
  • 17 graphisch die Logik der Schnittstellenvorrichtung der vorliegenden Erfindung beim Erfassen der Anwesenheit horizontaler und vertikaler Synch-Signale zeigt;
  • 18 einen weiteren Aspekt der vorliegenden Erfindung veranschaulicht, der den Betrieb des Lenkens eines einzelnen Datenpakets zu einer einzelnen Abtastleitung enthält;
  • 19 den Betrieb der vorliegenden Ausführungsform zum Abbilden eines einzelnen Datenpakets auf mehrere Videoabtastzeilen zeigt;
  • 20 ein Speicherabbild der Paketsteuerlisten-Datenstrukturen und der Datenpuffer veranschaulicht, die von dem DMA-Paketprozessor der vorliegenden Erfindung verwendet werden;
  • 21 einen Teilablaufplan der DMA-Maschine zeigt, der den Paketprozessorbetrieb der vorliegenden Erfindung zeigt;
  • 22 einen Teilablaufplan der DMA-Maschine gibt, der die Asynchron-Sendeoperation der vorliegenden Erfindung zeigt;
  • 23 ein Teilablaufplan der DMA-Maschine ist, der eine Isochron-Sendeoperation der vorliegenden Erfindung zeigt;
  • 24 einen beispielhaften Hilfsfunktionsablaufplan der vorliegenden Erfindung gibt;
  • 25 einen Teilablaufplan der DMA-Maschine zeigt, der den Lokalbus-zu/von-PCI-Bus-Betrieb der vorliegenden Erfindung zeigt; und
  • 26 konzeptionell auf einer hohen Ebene graphisch die Funktionen darstellt, die in den FIFO-Schaltungen der vorliegenden Erfindung auftreten.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • In den Figuren sind bevorzugte Ausführungsformen der vorliegenden Erfindung veranschaulicht, wobei sich gleiche Bezugszeichen auf gleiche und einander entsprechende Teile der verschiedenen Figuren beziehen.
  • 1 veranschaulicht konzeptionell eine Personalcomputerumgebung 10, die einen (durch den Strichlinienkasten angegebenen) Personalcomputer 12 und (durch einen Strichlinienkasten angegebene) zugeordnete Peripheriegeräte 14 enthält. In dem Personalcomputer 12 gibt es verschiedene Busse und Knoten, die die Operationen des Personalcomputers steuern. Beispielsweise unterstützt der Schnittstellenbus 16 die Kommunikation mit der Drei-Port-Schnittstelle 18 der Bitübertragungsschicht und mit der Schnittstellenvorrichtung 20 der vorliegenden Erfindung. Der serielle EPROM 22 unterstützt den Betrieb der PCI-Schnittstellenvorrichtung 20. Ferner enthält die PCI-Schnittstellenvorrichtung 20 Schnittstellen mit dem PCI-Bus 24 und mit dem Hilfs-Port-Lokalbus 26. Außerdem kommunizieren der Lokalbus 28 und die PCI-Agenten 30 und 32 mit dem PCI-Bus 24. Die PCI-Host-Bridge 34 führt Host-Bridge-Funktionen zwischen dem Lokalbus 28 und dem PCI-Bus 24 aus. Der Hilfs-Port-Lokalbus 26 kommuniziert mit einem Flash-PROM (oder RPL-ROM) 36, mit einem statischen Direktspeicherzugriff-Kanalsteuerungs-RAM (DMA-Kanalsteuerungs-RAM) (SRAM) 38, mit einer anwenderdefinierten Funktion (AUX) 40 und mit einem Zoom-Video-Port (ZV-Port) 42 zur Videoeingabe und -ausgabe. Der Host-Lokalbus 28 kommuniziert mit der Host-CPU 44 und mit dem Lokalspeicher 46.
  • Die Peripheriegeräte 14, die mit der Bitübertragungsschicht-Schnittstellenvorrichtung 18 kommunizieren können, können eine CD-ROM-Vorrichtung 48, einen Laserdrucker 50, eine Desktopkamera 52 und einen digitalen Videokassettenrecorder (VCR) mit einer Schnittstelle mit einer videofähigen Set-Top-Box 56 umfassen.
  • Die PCI-Schnittstellen-ASIC 20 in 1 führt eine Hauptfunktion des Steuerns der Übertragung von Datenpaketen zwischen den Vorrichtungen, die in einer Umgebung arbeiten, die den PCI-Bus 24 unterstützt, und den Vorrichtungen, die in einer Hochgeschwindigkeits-Eingabe/Ausgabe-Peripherieumgebung wie etwa der, die die Umgebung der IEEE-Norm 1394-1995 festsetzt, arbeiten, aus. Die PCI-Schnittstellen-ASIC 20 der vorliegenden Ausführungsform entspricht der IEEE-Norm 1394-1995 und der PCI-Spezifikation, Ausgabe 2.0. Außerdem führt die PCI-Schnittstellen-ASIC 20 insbesondere in der Umgebung der IEEE 1394-1995 die Funktion eines Zyklus-Masters aus, wobei sie die Fähigkeit besitzt, verlorene Zyklusstartnachrichten zu erfassen. Die PCI-Schnittstellen-ASIC 20 besitzt die Fähigkeit, Signale für eine zyklische 32-Bit-Redundanzprüfung (32-Bit-CRC) zum Senden von IEEE-Norm-1394-Paketen zu erzeugen sowie beim Empfang der IEEE-1394-Pakete eine 32-Bit-CRC-Prüfung auszuführen. Die PCI-Schnittstellen-ASIC 20 unterstützt eine Grenze zwischen der PCI-Schnittstellen-ASIC 20 und der physikalischen Schnittstellenschicht 18. Außerdem unterstützt die PCI-Schnittstellen-ASIC 20 die IEEE-1394-Übertragungsraten von 100, 200 und 400 MBit/s und stellt drei größenprogrammierbare FIFOs (z. B. ASynch-Senden, Isochron-Senden und Allgemein-Empfangen) bereit.
  • Wie unten diskutiert wird, schafft die PCI-Schnittstellen-ASIC 20 eine programmierbare Kanaladressen-Komparatorlogik, die ankommende Datenpakete empfängt und einem DMA-Kanal zuweist. In wenigstens einer Ausführungsform schafft die vorliegende Erfindung fünf Scatter/Gather-DMA-Kanäle, wobei der Datenpaketbetrieb jedes Kanals in der Weise programmiert werden kann, dass er: (1) asynchrone Paketsendungen, (2) isochrone Paketsendungen, (3) asynchrone Paketempfangsfunktionen und (4) isochrone Paketempfangsfunktionen unterstützt.
  • Außerdem schafft die PCI-Schnittstellen-ASIC 20 PCI-Master-Busfunktionen zur Unterstützung von DMA-Operationen sowie PCI-Slave-Funktionen für den Lese- und Schreibzugriff auf interne Register. Die PCI-Schnittstellen-ASIC 20, die einen 32-Bit-PCI-Adressen-Daten-Pfad implementiert, schafft nicht nur eine PCI-Adressen-Daten-Paritätsprüfung, sondern auch eine Software-Steuerung für Unterbrechungsereignisse. Die PCI-Schnittstellen-ASIC 20 schafft einen programmierbaren externen Lokalbus zur Implementierung eines zugeordneten Pfads zur externen Logik. Außerdem schafft die PCI-Schnittstellen-ASIC 20 eine 8-Bit- oder 16-Bit-Schnittstelle zu einem Zoom-Video-Port (ZV-Port), um Videodaten direkt an einen externen Bewegtvideospeicherträger zu übertragen.
  • 2 gibt einen Blockschaltplan 58, der die Funktionsaufteilung der PCI-Schnittstellen-ASIC 20 der vorliegenden Erfindung zeigt. Die Logik in der PCI-Schnittstellen-ASIC 20 enthält die PCI-Buslogik 60, die die serielle EPROM-Schnittstelle 62 zur Kommunikation mit dem seriellen EPROM 22 enthält. Die PCI-Master-Logik 64 und die PCI-Slave-Logik 66 sowie die PCI-Konfiguration und das Steuerstatusregister 68 schaffen die erforderliche Logik für Kommunikationen mit dem PCI-Bus 24. Die Lokalbus-Schnittstellenlogik 70 schafft die erforderliche Steuerlogik für die Schnittstelle zu dem Hilfs-Port-Lokalbus 26.
  • Die DMA-Logik 72 in der PCI-Schnittstellen-ASIC 20 enthält die DMA-Maschine 74 und das DMA-Steuer- und -Statusregister 76 zum Steuern der Operationen und Kommunikationen mit der PCI-Buslogik 60 und mit der FIFO-Logik 78. Die FIFO-Logik 78 enthält den Allgemein-Empfangs-FIFO 80, den Asynchron-Sende-FIFO 82, den Isochron-Sende-FIFO 84, die Zeigeradressen-Abbildungslogik 86 und die FIFO-Steuerungs- und -Statusregister 88.
  • Die Sicherungsschicht-Steuerlogik 90 enthält die Steuer- und Statusregister 92, die den Status aller Funktionen in der Sicherungsschicht-Steuerlogik 90 steuern und berichten. Die Paketsende-Steuerlogik 98 und die Paketempfangs-Steuerlogik 102 arbeiten mit einer Logik und mit dem Zykluszeitgeber 94 sowie mit der Zyklusüberwachungseinrichtung 96. Die Schnittstellenlogik 104 der Bitübertragungsschicht enthält Parallel-Seriell- und Seriell-Parallel-Funktionen.
  • Die PCI-Buslogik 60 in 2 implementiert die Logik für die Schnittstelle der PCI-Schnittstellen-ASIC 20 zum PCI-Bus 24. Die PCI-Slave-Logik 66 schafft für die externen PCI-Agenten die Fähigkeit, die Slave-Schnittstellen-Steuerlogik zu lesen und zu schreiben, um alle Steuerungs- und Statusregister 68, 76, 88 und 92 der PCI-Schnittstelle 20, die die Anwendungssoftware zum Steuern des Betriebs der PCI-Schnittstellen-ASIC 20 und zum Überwachen ihres Betriebsstatus benötigt, zu beurteilen. Die PCI-Master-Logik 64 schafft für die DMA-Logik 72 die Fähigkeit, als eine Master-Vorrichtung Datenübertragungen über den PCI-Bus 24 zu beginnen. Die PCI-Konfigurations-Steuerungs- und -Statusregister 68 können von der Anwendungssoftware des Personalcomputersystems 12 genutzt werden, um die PCI-Schnittstellen-ASIC 20 zu konfigurieren und zu programmieren. Dies umfasst die von der PCI geforderten Steuer- und Basisregister sowie ein Unterbrechungssteuerungs- und Statussignal für die PCI-Schnittstellen-ASIC 20 sowie verschiedene Steuerungs- und Statusregister. Die Lokalbus-Schnittstellenlogik 70 enthält einen Hilfs-Port als Schnittstelle und Steuerung zum RAM, zum ROM, zu Hilfsfunktionen, zum Zoom-Video-Port und zu vier GPIO-Schnittstellen. Außerdem stellt die serielle EEPROM-Schnittstelle 62 nach dem Hochfahren bestimmte geforderte PCI-Konfigurationsdaten und konstante Systemsteuerregisterinformationen bereit.
  • Die serielle EEPROM-Schnittstelle 62 schafft eine Kommunikation zwischen der PCI-Schnittstellen-ASIC 20 und dem seriellen EEPROM 22 (1). Beim Hochfahren initialisiert die serielle EEPROM-Schnittstelle 62 eine kleine Anzahl von Stellen in den PCI-Konfigurationsregistern 68 vom seriellen EEPROM 22. Während die serielle EEPROM-Zustandsmaschine auf den seriellen EEPROM 22 zugreift, wird irgendein ankommender PCI-Slave-Zugriff mit Wiederholungsversuchsstatus abgeschlossen.
  • Außerdem enthält der serielle EEPROM 22 Konfigurationsdaten für das PCI-Konfigurations-Steuerungs- und -Statusregister 68. Diese Informationen werden von der Host-CPU 44 gelesen und geschrieben, die über das Steuerregister ein serielles Zweidraht-Busprotokoll für den seriellen EEPROM 22 emuliert. Der serielle Zweidrahtbus wird vom Host-Prozessor 44 manipuliert, indem er das Ausgabefreigabebit des seriellen EEPROM 22 auf einen Wert "1" setzt und daraufhin auf die Daten- und Taktbits zugreift, um das serielle Zweidraht-Busproto koll zu emulieren. Das PCI-Konfigurations-Steuerungs- und -Statusregister 68 enthält ein Zeitgeberbit, das eine Zeitreferenz für die Zeitgebung der Ereignisse des seriellen Zweidraht-Busprotokolls bereitstellt.
  • Die PCI-Master-Logik 64 implementiert die Steuerung, die für die PCI-Schnittstellen-ASIC 20 erforderlich ist, um am PCI-Bus 24 als eine Master-Vorrichtung zu arbeiten. Diese Logik ermöglicht den Betrieb von Speicherlesevorgängen, Speicherschreibvorgängen, Speicherzeilenleseanweisungen und Speicherzeilenschreibanweisungen sowie Schreibannullierungsanweisungen. Für die Speicherlesefunktion führt die DMA-Leseoperation der PCI-Schnittstellen-ASIC 20 zu einem Speicherlesen des Speicherzeilenlesebefehls auf dem PCI-Bus. Für die Speicherschreiboperation führt die DMA-Schreiboperation der PCI-Schnittstellen-ASIC 20 zu einem PCI-Speicherschreibbefehl, zu einem PCI-Speicherzeilenschreibbefehl oder zu einem PCI-Speicherschreibannulierungsbefehl auf dem PCI-Bus.
  • Die PCI-Slave-Logik 66 führt die Steuerlogik aus, die für die PCI-Schnittstellen-ASIC 20 erforderlich ist, um auf dem PCI-Bus als eine Slave-Vorrichtung zu arbeiten. Wenn die PCI-Slave-Funktion 66 freigegeben ist, reagiert sie auf Speicherlese- oder -schreibbefehle an den PCI-Speicheradressenbereichen, die durch die in 68 enthaltenen Basisadressenregistern angegeben werden. Wenn dies durch das Slave-Burst-Bit in dem Verschiedenes-Steuerregister freigegeben ist, führt die PCI-Slave-Logik 66 Slave-Burst-Übertragungen aus. Wenn dies durch ein Steuerbit in dem Verschiedenes-Steuerregister freigegeben ist, führt die PCI-Slave-Logik 66 aufgegebene Schreiboperationen aus.
  • Die PCI-Konfigurations-Steuerungs- und -Statusregister 68 stellen für die System- und Anwendungssoftware die Fähigkeit bereit, die PCI-Operationskonfiguration der PCI-Schnittstellen-ASIC 20 auszuführen.
  • Die Lokalbus-Schnittstellenlogik 70 stellt eine Gruppe von Spezial-Eingangs/Ausgangs-Ports bereit, die eine übliche Logik gemeinsam nutzen. Auf diese Ports kann entweder vom PCI-Bus 24 oder von der DMA-Maschine 74 zugegrif fen werden. Externe Vorrichtungen an diesen Ports können nicht als Master-Vorrichtungen arbeiten. Diese Ports ermöglichen, dass die PCI-Schnittstellen-ASIC 20 die externen Vorrichtungen oder Schnittstellen verbindet, um autonome Datenübertragungen zwischen diesen Vorrichtungen zu schaffen. Alle Lokalbusschnittstellen mit Ausnahme der Zoom-Video-Busschnittstelle sind synchron zu einem Lokaltakt, der eine angebotene Version des PCI-Takts ist. Der ZV-Port-Takt wird anhand von Versionen des PCI-Takts, des IEEE-1394-Takts oder eines externen Takts programmiert.
  • Die Lokalbus-Schnittstellenlogik 70 stellt einen gemeinsam genutzten Lokaladressenbus, der in der vorliegenden Ausführungsform ein 16-Bit-Adressenbus ist, und einen gemeinsam genutzten 8-Bit- oder 16-Bit-Lese- oder -Schreibdatenbus mit programmierbaren Wartezuständen und Bereit-Bedingungen bereit. Die Lokalbusadressen und die Datenbusse werden unter den ROM-, RAM-, AUX- und ZOOM-Port-Funktionen gemeinsam genutzt. Außerdem stellt der ZV-Ausgangs-Port das Horizontale-Synch-Daten-Gültig, das Vertikale-Synch-Daten-Gültig und den ZV-PIXEL.CLK bereit. Weitere Ein- und Ausgangssignale für die Lokalbus-Schnittstellenlogik 70 umfassen vier Universal-E/A-Anschlussstifte (GPIO-Anschlussstifte), die programmierbare Richtungs- und Polaritätsfunktionen aufweisen. In der vorliegenden Ausführungsform der Lokalbusschnittstellenschaltung 70 umfassen die verschiedenen Signale das Lokalbus-Taktausgangssignal, das Rücksetzausgangssignal, das Unterbrechungseingangssignal und das externe Bereit-Eingangssignal. Die PCI-Konfigurations-Steuerungs- und -Statusregister 68 stellen die notwendigen Steueranweisungen und Informationen für die Operationskonfiguration der Lokalbus-Schnittstellenlogik 70 bereit.
  • Die PCI-Schnittstellen-ASIC 20 enthält einen Fernstartprogramm-Nur-Lese-Speicher (RPL-ROM), der für den Personalcomputer 12 die Fähigkeit bereitstellt, Boot-Code von einem angebrachten RPL-ROM zu lesen. Dies ermöglicht, dass das System von einer IEEE-1394-Vorrichtung bootet, selbst wenn das System beim Einschaltrücksetzen keinen spezifischen IEEE-1394-Boot-Code besitzt. Außerdem kann die ROM-Schnittstelle verallgemeinert werden, um eine Funktiona lität über das Zugreifen auf den RPL-ROM allein bereitzustellen. Die Lokalbus-Schnittstellenlogik 70 unterstützt den Lese/Schreib-Zugriff des PCI-Slave und des internen DMA auf Vorrichtungen wie etwa auf den Flash-PROM 36, auf den SRAM 38 und auf andere RAM-artige Vorrichtungen, die in 1 erscheinen. Der ROM-Zugriff wird durch die PCI-Konfigurations-Steuerungs- und -Statusregister 68 gesteuert und dadurch freigegeben, dass in das niedrigstwertige Bit des ROM-Basisadressenregisters eine 1 geschrieben wird. Eine ROM-Schnittstelle kann entweder als 8 Bits oder 16 Bits breite Daten, als eine angegebene Anzahl von Wartezuständen oder als ähnliche Funktionen konfiguriert werden. Die ROM-Optionen werden beim Einschaltrücksetzen über den seriellen PROM 22 konfiguriert und treten über PCI-Slave-Zugriffe ein.
  • Auf die RAM-Schnittstelle wird durch ein zweites Speicher-basiertes PCI-Register in dem PCI-Konfigurations-Steuerungs- und -Statusregister 68 zugegriffen. Dieser Speicher kann für DMA-Steuerstrukturen oder -Datenpuffer oder als gemeinsam genutzte Speicherschnittstelle für andere Funktionen wie etwa für einen digitalen Signalprozessor verwendet werden. Die RAM-Schnittstelle kann entweder als 16 Bits oder 8 Bits breite Daten, als eine angegebene Anzahl von Wartezuständen oder als ein externes Bereit/Im-Takt-Gehalten konfiguriert werden.
  • Die Hilfsschnittstelle ist ein allgemeiner Eingabe/Ausgabe-Port, auf den über ein drittes Speicher-basiertes PCI-Adressenregister in dem PCI-Konfigurations-Steuerungs- und -Statusregister 68 zugegriffen werden kann. Dieser Port kann dazu verwendet werden, einen Hochgeschwindigkeitsdatenpfad zu externen zugeordneten Betriebsmitteln wie etwa zu einer Kompressions/Dekompressions-Logik oder zu einem Videoprozessor/Bildwiederholspeicher zu implementieren. Falls der ZV-Port freigegeben ist, wird ein Abschnitt des AUX-Adressenraums auf den ZV-Port abgebildet. Andernfalls ist dieser Raum in der bevorzugten Ausführungsform als Teil der Hilfsadressenbasis verfügbar. In der vorliegenden Ausführungsform kann die Hilfsschnittstelle entweder als 8 Bits oder als 16 Bits breite Daten, als eine angegebene Anzahl von Wartezuständen oder als ein externes Bereit/Im-Takt-Gehalten konfiguriert werden.
  • In der bevorzugten Ausführungsform ist die FIFO-Logik um einen einzelnen getakteten 256 × 33-Dualport-RAM konstruiert, der in drei logische FIFOs aufgeteilt ist. Die Größe jedes FIFO ist von 0 bis 256 Wörtern programmierbar. Für eine gegebene Kombination von FIFO-Größen muss die Gesamtsumme der drei FIFO-Größen kleiner oder gleich 256 Wörtern sein.
  • Der Allgemein-Empfangs-FIFO (GRF) 80 enthält ein Lese- und Schreibzeigerpaar zur Verwendung beim Zugreifen auf den FIFO-Dualport-RAM. Jeder Zeiger zählt in dem Bereich von 0 bis zu seinem fifo_size_value minus 1. Der FIFO-RAM-Adressierungsbereich für jeden Zeiger wird durch eine Logik eingestellt, die einen Versatzwert erzeugt. Der Versatz ist zu dem Wert des Zeigers zu addieren, um ihn auf einen eindeutigen Bereich von RAM-Adressen abzubilden. Der Lesezeiger ist von dem aktiven DMA-Kanal dazu zu verwenden, asynchrone oder isochrone Pakete von der PCI-Seite des RAM zu lesen und in den Host-Speicher zu schreiben. Der IEEE-1394-Empfänger verwendet den Schreibzeiger, um asynchrone oder isochrone Pakete – die über den IEEE-1394-Bus empfangen wurden – auf die Verbindungsseite des FIFO-RAM zu schreiben. Da beide Seiten des FIFO-Dualport-RAM in verschiedenen Taktdomänen liegen, werden die zwei Zeiger über eine Synchronisierlogik an beide Seiten des FIFO-RAM übermittelt.
  • Der Asynchron-Sende-FIFO 82 enthält ein Lese- und Schreibzeigerpaar zum Zugreifen auf den FIFO-Dualport-RAM. Jeder Zeiger zählt in dem Bereich von 0 bis zu seinem fifo_size_value minus 1. Der Adressierungsbereich des FIFO-RAM wird für jeden Zeiger durch Logik eingestellt, die einen Versatzwert erzeugt. Der Versatz wird zu dem Wert des Zeigers addiert, um ihn auf einen eindeutigen Adressenbereich abzubilden. Der aktive DMA-Kanal verwendet den Schreibzeiger, um asynchrone Pakete – die er aus dem Host-Speicher liest – auf die PCI-Seite des RAM zu schreiben. Der Lesezeiger ist von dem IEEE-1394-Sender zu verwenden, der den Lesezeiger dazu verwendet, asynchrone Pakete von der Verbindungsseite des FIFO-RAM zu lesen und über den IEEE-1394-Bus zu senden. Da beide Seiten des FIFO-Dualport-RAM in verschiedenen Taktdomänen liegen, werden die zwei Zeiger über eine Synchronisierlogik an beide Seiten des FIFO-RAM übermittelt.
  • Der Isochron-Sende-FIFO 84 enthält ein Lese- und Schreibzeigerpaar zum Zugreifen auf den FIFO-Dualport-RAM. Jeder Zeiger zählt in dem Bereich von 0 bis zu seinem fifo_size_value minus 1. Der Adressierungsbereich des FIFO-RAM wird für jeden Zeiger durch Logik eingestellt, die einen Versatzwert erzeugt. Der Versatz wird zu dem Wert des Zeigers addiert, um ihn auf einen eindeutigen Adressenbereich abzubilden. Der aktive DMA-Kanal verwendet den Schreibzeiger, um isochrone Pakete – die er aus dem Host-Speicher liest – auf die PCI-Seite des RAM zu schreiben. Der IEEE-1394-Sender verwendet den Lesezeiger dazu, isochrone Pakete von der Verbindungsseite des FIFO-RAM zu lesen und über den IEEE-1394-Bus zu senden. Da beide Seiten des FIFO-Dualport-RAM in verschiedenen Taktdomänen liegen, werden der Lese- und der Schreibzeiger über eine Synchronisierlogik an beide Seiten des FIFO-RAM übermittelt.
  • Die Zeiger-Dualport-Adressenabbildungslogik 86 verwendet die drei Größenwerte von dem FIFO-Größenregister, um jedes der FIFO-Lese-Schreibzeigerpaare auf einen eindeutigen Adressenbereich in dem FIFO-Dualport-RAM abzubilden. Die Zeigeradressen-Abbildungsfunktion ist in Übereinstimmung mit den wie in der unten stehenden Tabelle gezeigten Gleichungen zu erzeugen:
  • Figure 00170001
  • Die FIFO-Steuerungs- und -Statusregister 88 implementieren den Steuerungs- und Statusregistersatz der FIFO-Logik 78. Die FIFO-Steuerungs- und -Statusregister 88 umfassen ein FIFO-Größenregister zum Einstellen der Größe jedes logischen FIFO. Dieses Register stellt drei Größenparameter zur Programmierung der Größe des Isochron-Sende-FIFO 84, des Asynchron-Sende-FIFO 82 und des Allgemein-Empfangs-FIFO 80 bereit. Auf diese Register wird über eine Lese- oder Schreiboperation des PCI-Slave 66 zugegriffen. Ein Schreib/Lese-Port des FIFO-Zeigers der PCI-Seite stellt für Software einen Schreib/Lese-Port des PCI-Slave 66 zum Holen des momentanen Werts der Zeiger der PCI-Seite oder zum Schreiben eines Werts in sie bereit. Ein Schreib/Lese-Port des FIFO-Zeigers der Verbindungsseite stellt für Software einen Lese-Port des PCI-Slave zum Holen des momentanen Werts der Zeiger der Verbindungsseite oder zum Schreiben eines Werts in sie bereit. Ein POP-PUSH-Port des Allgemein-Empfangs-FIFO kann ein 32-Bit-Slave-Schreiben empfangen, das veranlasst, dass das Daten-Quadlet oben auf den GRF 80 geschoben wird. Ein 32-Bit-Slave-Lesen von diesem Port veranlasst, dass ein Daten-Quadlet von oben von dem GRF 80 abgehoben wird. Ein POP-PUSH-Port des Asynchron-Sende-FIFO kann ein 32-Bit-Slave-Schreiben für diesen Port empfangen, das veranlasst, dass das Daten-Quadlet oben auf den Asynchron-Sende-FIFO geschoben wird. Ein 32-Bit-Slave-Lesen von diesem Port veranlasst, dass ein Daten-Quadlet von oben von dem Asynchron-Sende-FIFO 82 abgehoben wird. Ein POP-PUSH-Port des Isochron-Sende-FIFO kann ein 32-Bit-Slave-Schreiben für diesen Port empfangen, das veranlasst, dass das Daten-Quadlet oben auf den Isochron-Sende-FIFO 84 geschoben wird. Ein 32-Bit-Slave-Lesen von diesem Port veranlasst, dass ein Daten-Quadlet oben von dem Isochron-Sende-FIFO 84 abgehoben wird. Ein FIFO-Steuer-Token-Status-Lese-Port liefert ein Slave-Lesen, das den Wert des Bits 33 des letzten Daten-Quadlets zurückgibt, das von einem der drei FIFOs, auf die zuvor zugegriffen worden ist, abgehoben wurde. Das FIFO-Diagnose-Test- und -Steuerregister stellt für Software einen Lese/Schreib-Port des PCI-Slave bereit, um die FIFO-Logik für Diagnose-Tests zu konfigurieren und ihren Betrieb zu steuern. Außerdem stellt ein Sende-FIFO-Schwellenwertregister für Software einen Lese/Schreib-Port des PCI-Slave bereit, um den Sendeschwellenwert für den ASynch- und für den Isochron-Sende-FIFO einzustellen.
  • Die CRC-Logik 100 implementiert die Logik zum Ausführen der Funktionen, die das Erzeugen eines 32-Bit-Auto-DIN-CRC-Fehlercodes an dem Anfangsblockteil des durch die Senderlogik erzeugten Paketdatenstroms umfassen. Der Sender fügt diesen Code nach dem Anfangsblock in den Datenstrom ein. Für Pakete, die Datennutzinformationen besitzen, erzeugt die CRC-Logik 100 an dem Datennutzinformationsabschnitt des durch die Senderlogik erzeugten Paketstroms einen 32-Bit-Auto-DIN-CRC-Fehlercode. Der Sender fügt diesen Code am Ende des Paketstroms ein. Die CRC-Logik 100 erzeugt an dem Anfangsblockteil eines ankommenden Paketdatenstroms einen 32-Bit-Auto-DIN-CRC-Fehlercode. Falls der berechnete Code gleich dem mit dem Paket gesendeten Anfangsblock-CRC-Code ist, betrachtet der Empfänger den Anfangsblock als richtig. Außerdem erzeugt die CRC-Logik 100 an dem Nutzinformationsabschnitt eines ankommenden Paketdatenstroms einen 32-Bit-Auto-DIN-CRC-Fehlercode. Falls der berechnete Code gleich dem mit dem Paket gesendeten Daten-CRC-Code ist, betrachtet der Empfänger die Datennutzinformationen als richtig.
  • Die 1394-Sicherungsschichtlogik 90 implementiert die IEEE-1394-Sicherungsschicht-Steuerlogik (LLC), wie sie in der IEEE-Norm 1394-1995 spezifiziert ist. Diese Funktion steuert die Sendung und den Empfang der IEEE-1394-Paketdaten zwischen der FIFO-Logik 78 und anderen Vorrichtungen an dem IEEE-1394-Bus.
  • Das 1394-Sicherungsschicht-Steuerungs- und -Statusregister 92 implementiert die Steuerungs- und Statusregister-Logik, die für Anwendungssoftware erforderlich ist, um den Betrieb der LLC zu steuern und ihren Betrieb zu überwachen. Ein 1394-Busnummer-Knotennummer-Register stellt für die Anwendungssoftware die Schnittstelle zum Programmieren der Bus- und Knotennummern bereit. Ein 1394-Sicherungsschicht-Steuerregister stellt für Anwendungssoftware die Schnittstelle zum Steuern der Betriebsart der LLC bereit. Ein 1394-Sicherungsschicht-Unterbrechungsstatusregister stellt für Anwendungssoftware die Schnittstelle zum Decodieren der Ursache von durch die LLC erzeugten Unterbrechungen bereit und einen Mechanismus zum Löschen des Unterbrechungsstatus bereit. Ein 1394-Si cherungsschicht-Unterbrechungsfreigaberegister stellt für Anwendungssoftware die Schnittstelle zum wahlweisen Freigeben der Statusbits in dem Unterbrechungsstatus-Register zum Erzeugen einer LLC-Unterbrechung oder zu deren Sperren des Erzeugens einer LLC-Unterbrechung bereit. Ein 1394-Zykluszeitgeber-Register stellt für Anwendungssoftware die Schnittstelle zum Programmieren des Zykluszeitgebers mit einem Anfangswert oder zum Lesen seines momentanen Werts bereit. Wenn diese LLC als ein Zyklus-Master arbeitet, ist dieser Zeitgeber zu verwenden, um alle 125 Mikrosekunden die Übertragung der Zyklusstartpakete zu takten. Ein 1394-Bitübertragungsschicht-Zugriffsregister stellt für Anwendungssoftware die Schnittstelle zum Schreiben von Daten in die Steuer- und Statusregister der Bitübertragungsschicht-I/F 18 oder zum Lesen von Daten aus ihnen bereit.
  • Ein 1394-Diagnose-Teststeuerregister stellt für Anwendungssoftware die Schnittstelle zum Ausführen von Diagnose-Tests der 1394-LLC-Logik bereit. Außerdem enthalten die 1394-Sicherungsschicht-Steuerungs- und -Statusregister 92 DMA-Kanal-4-0-Wort-0-Empfangspaket-Übereinstimmungswertregister. Jedem Register ist eine DMA-Kanal-Komparatorlogikfunktion zugewiesen. Der DMA-Kanal-Komparator vergleicht eine ausgewählte Menge von Bitstellen in dem Übereinstimmungswertregister mit entsprechenden Bitstellen des ersten Quadlets (Wort 0) des ankommenden Pakets. Die zu vergleichenden Bitstellen werden durch den Maskenwert angegeben, der in dem Wort-0-Empfangspaket-Vergleichsmaskenregister enthalten ist. Ein DMA-Kanal-4-0-Wort-0-Empfangspaket-Vergleichsmaskenregister ist einem entsprechenden DMA-Kanal-Komparator zugewiesen. Die DMA-Kanal-Vergleichslogik verwendet den Maskenwert in diesem Register, um diejenigen Bitstellen im Wort 0 auszuwählen, die mit den entsprechenden Bitstellen in dem Wort-0-Empfangsübereinstimmungswertregister übereinstimmen. Den DMA-Kanal-4-0-Wort-1-Empfangspaket-Übereinstimmungswertregistern ist eine DMA-Kanal-Komparatorlogikfunktion zugewiesen. Der DMA-Kanal-Komparator vergleicht eine ausgewählte Menge von Bitstellen in dem Übereinstimmungswertregister mit entsprechenden Bitstellen des zweiten Quadlets (Wort 1) des ankommenden Pakets. Die zu vergleichenden Bitstellen werden durch den Maskenwert angegeben, der in dem Wort-1-Empfangspaket-Vergleichsmaskenregister enthalten ist. Ein DMA-Kanal-4-0-Wort-1-Empfangspaket-Vergleichsmaskenregister ist ebenfalls dem entsprechenden DMA-Kanal-Komparator zugewiesen. Die DMA-Kanal-Vergleichslogik verwendet den Maskenwert in dem Register, um diejenigen Bitstellen in dem Wort 1 auszuwählen, die mit den entsprechenden Bitstellen in dem Wort-1-Übereinstimmungswertregister übereinstimmen.
  • Außerdem enthalten die 1394-Sicherungsschicht-Steuerungs- und -Statusregister 92 ein Belegt/Wiederholungsversuch-Zählregister, dessen Inhalt die Anzahl angibt, in der der 1394-Sender die Sendung eines ASynch-Pakets erneut versuchen sollte, wenn von dem Zielknoten eine Belegt-Quittierung empfangen wird. Dieses Register ist durch Anwendungssoftware über einen PCI-Slave-Zugriff zu lesen/zu schreiben. Ein Belegt/Wiederholungsversuch-Sendezeit-Intervallregister enthält das Zeitintervall, das der Sender für jeden Versuch zwischen aufeinander folgenden Wiederholungsversuchen verzögern muss, wenn ein Belegt-Quittierungssignal empfangen wird. Dieses Register wird durch Anwendungssoftware über einen PCI-Slave-Zugriff gelesen geschrieben. Außerdem gibt es ein Zustandsmaschinenvektorregister, das für Software die Fähigkeit zur Überwachung des Zustandsvektors jeder in der LLC implementierten Zustandsmaschine bereitstellt. Außerdem zählen FIFO-Fehlerzähler die Unterläufe, die in den ASynch- und Isochron-Sende-FIFOs 82 und 84 während Paketsendungen auftreten, und die Überläufe, die im GRF 80 während des Paketempfangs auftreten.
  • Die Paketempfänger-Steuerlogik 102 implementiert die zum Empfangen ankommender IEEE-1394-Pakete erforderliche Logik. Die Empfängersteuerlogik entspricht ausführlich den genauen wie in IEEE 1394-1995 spezifizierten Funktionsanforderungen. Diese umfassen die folgenden Funktionen der Verwendung der Bus- und Knoten-ID-Register und/oder der DMA-Kanal-Empfangspaketkomparatoren zur Bestimmung, ob ein ankommendes asynchrones oder isochrones Paket anzunehmen ist. Die CRC-Logikfunktion überprüft durch Prüfung der Anfangs block-CRC den richtigen Empfang eines ankommenden Pakets. Falls das Paket Nutzinformationen besitzt, ist die Daten-CRC zu prüfen, wobei die empfangenen Pakete in den GRF 80 zu laden sind, falls das Paket die Adressierungs- und CRC-Prüfungen besteht. Die Paketempfänger-Steuerlogik 102 erzeugt eine Quittierung über asynchrone Empfangspakete.
  • Die Zykluszeitgeberlogik 94 impliziert die Logik zur Ausführung der Zykluszeitgeberfunktion. Die Zykluszeitgeberlogik 94 entspricht den Anforderungen einer Zykluszeitfunktion, wie sie in der IEEE-Norm 1394-1995 spezifiziert ist. Der Zykluszeitgeber enthält den Zykluszähler und den Zyklusversatzzähler. Der Versatzzähler ist frei laufend oder wird bei einem Tief/Hoch-Übergang an einem ausgewählten Signalanschlussstift neu gestartet oder nimmt auf der Grundlage des Zustands des Zyklus-Master- und des Zyklus-Quellen-Bits in den 1394-LLC-Steuerungs- und -Statusregistern 92 einen Neustartwert von dem Empfänger. Der Zykluszeitgeber ist zur Unterstützung isochroner Datenübertragungen zu verwenden. Die Zykluszeit soll 32 Bits breit sein. In der vorliegenden Ausführungsform zählen die niederwertigen 12 Bits als ein Modulo-3072-Zähler, der jede 24,576-MHz-Taktperiode oder (40,69 ns) einmal inkrementiert wird. Die nächsten 13 höherwertigen Bits sollen eine Zählung von 8 kHz (oder 125 μs) sein und die höchsten 7 Bits zählen in Sekunden.
  • Die Zyklusüberwachungslogik 96 implementiert die Logik zum Ausführen der Zyklusüberwachungsfunktion. Die Zyklusüberwachungslogik 96 unterstützt isochrone Datenübertragungen zum Überwachen der LLC-Aktivität und zum Behandeln der Planung der isochronen Aktivität. Wenn die Zyklusüberwachungslogik 96 ein Zyklusstartpaket empfängt oder sendet, gibt sie das Auftreten dieser Ereignisse dadurch an, dass sie eine Zyklus-Gestartet-Unterbrechung oder eine Zyklus-Empfangen-Unterbrechung erzeugt. Außerdem erfasst die Zyklusüberwachungslogik 96 fehlende Zyklusstartpakete und erzeugt sie eine Zyklus-Verloren-Unterbrechung. Wenn ein isochroner Zyklus abgeschlossen ist, aktiviert die Zyklusüberwachungslogik 96 eine Zyklus-Fertig-Unterbrechung. Wenn das Zyklus-Master-Freigabebit in dem 1394-LLC-Steuerungs- und -Statusregister 92 aktiviert ist, signalisiert die Zyklus-Überwachungslogik 96 dem Gesendeten, ein Zyklusstartpaket zu senden.
  • Die Paketsende-Steuerlogik implementiert die Logik zur Steuerung der Bewegung der IEEE-1394-Pakete entweder von dem Isochron-Sende-FIFO 82 oder von dem Asynchron-Sende-FIFO 84 zur PHY-LINK-Schnittstellenlogik 104, um sie über den IEEE-1394-Bus zu senden. Die Sendesteuerlogik 98 entspricht den in der IEEE-Norm 1394-1995 spezifizierten Funktionsanforderungen. Die Sendesteuerlogik 98 formatiert die Sendepaketformate.
  • Die 1394-Paketsende-Steuerlogik 98 entlädt die Quadlets aus dem Asynchron-Sende-FIFO 84 und formatiert sie richtig zu einem parallelen asynchronen 1394-32-Bit-Paketstrom. Die Steuerlogik 98 entlädt die Quadlets von dem Isochron-Sende-FIFO 82 und formatiert sie richtig zu einem parallelen isochronen 1394-32-Bit-Paketstrom. Die Steuerlogik 98 fügt unter Verwendung der CRC-Logik zum Berechnen eines CRC-Codes für den Anfangsblock- und für den Nutzinformationsabschnitt eines Pakets die CRC-Codes so, wie es von dem Format des Pakets, das gesendet wird, gefordert wird in den Paketstrom in dem Zeitschlitz ein. Die 1394-Paketsende-Steuerlogik 98 gibt die parallelen Paketströme zur Umsetzung von einem parallelen in ein serielles Datenstromformat in die PHY-LINK-Schnittstellenlogik ein, um sie an die PHY zu senden.
  • Wenn die LLC so programmiert ist, dass sie als der Zyklus-Master arbeitet, sendet die 1394-Paketsende-Steuerlogik-98 das Zyklusstartpaket. Die 1394-Paketsende-Steuerlogik 98 sendet die 1394-Sendebusanforderungen an die PHY. Die PHY-Schicht entscheidet für den Bus und sendet die Angabe an den Sender, um die Sendung zu starten, wenn die BUS-Freigabe empfangen wird. Wenn in Reaktion auf ein gesendetes ASynch-Paket eine Belegt-Quittierung zurückgegeben wird, führt die ausgeführte 1394-Paketsende-Steuerlogik 98 unter Verwendung des Einphasen-Wiederholungs-X-Protokolls, wie es in der IEEE-Norm 1394-1995 spezifiziert ist, Wiederholungssendungen aus. Außerdem stellt die 1394-Paketsende-Steuerlogik-98 die Geschwindigkeit der Paketsendung ein.
  • Die PHY-LINK-Schnittstellenlogik 104 implementiert die Logik der Schnittstelle der PCI-Schnittstellen-ASIC 20 zu dem Bitübertragungsschicht-Chip. Die PHY-LINK-Schnittstellenlogik 104 entspricht den Anforderungen der Verbindungs-PHY-Schnittstellenspezifikation in der IEEE-Norm 1394-1995. Diese Funktion schafft für die PCI-Schnittstellen-ASIC 20 einen Zugriff auf die Dienste der Bitübertragungsschicht. Die PHY-LINK-Schnittstellenlogik 104 verwendet den Paketgeschwindigkeitscode von dem Sender, um die Anzahl der zu erzeugenden seriellen Datenströme auszuwählen. Falls der Geschwindigkeitscode für 100 MBit/s eingestellt ist, wird der parallele Datenstrom in zwei serielle Datenströme umgesetzt, die jeweils mit 50 MBit/s fließen. Falls der Geschwindigkeitscode für 200 MBit/s eingestellt ist, wird der parallele Datenstrom in vier serielle Datenströme umgesetzt, die jeweils mit 50 MBit/s fließen. Die PHY-LINK-Schnittstellenlogik 104 verwendet eine PHY-Empfangsgeschwindigkeitsangabe, um die ankommenden seriellen Datenströme von der PHY zur Eingabe in die Empfangssteuerlogik in einen parallelen Datenstrom umzusetzen. Die PHY erzeugt für irgendein ankommendes Paket zwei serielle Datenströme zur PCI-Schnittstellen-ASIC 20, wenn sie das Paket mit 100 MBit/s erzeugt, oder vier serielle Datenströme, wenn sie das Paket mit 200 MBit/s erzeugt. Die seriellen Datenströme werden jeweils mit 50 MHz getaktet. Die PHY-LINK-Schnittstellenlogik 104 erfasst und empfängt serielle Statusantworten von der PHY und setzt sie in ein paralleles Format um. Die Statusantworten befördern die PHY-Unterbrechungsangaben und/oder Rückdaten in Reaktion auf eine Lesezugriffsanforderung des PHY-Registers. Die PHY-LINK-Schnittstellenlogik 104 erfasst und empfängt serielle Quittierungspakete und setzt sie in ein paralleles Format um. Außerdem nimmt die PHY-LINK-Schnittstellenlogik 104 Sendepaket-Sendeanforderungen oder PHY-Register-Lese/Schreib-Zugriffsanforderungen an und formatiert sie zur Sendung an die PHY zu einem seriellen Anforderungsstrom. Außerdem kann die PHY-LINK Schnittstellenlogik 104 optional mit einer elektrischen Grenze zwischen den PHY- und den PCI-LYNX-Vorrichtungen arbeiten.
  • Die DMA-Logik 74 verwendet die PCI-Master-Logik 64, um den PCI-Bus 24 zu erlangen und als eine Master-Vorrichtung zu wirken. Die DMA-Logik 72 ent hält eine DMA-Maschine 74, die eine übliche Zustandsmaschine enthält, die Prioritäts-Zeit-multiplexiert ist. Außerdem enthält die DMA-Maschine eine Entscheidungslogik, um anhand eines zugewiesenen Prioritätsniveaus den Kanal zu aktivieren. Außerdem stellen die DMA-Steuerungs- und -Statusregister 76 für jeden DMA-Kanal zusammen mit dem PCI-Slave 66 eine Datenpfadsteuerung bereit, um auf diese Register von der PCI-Schnittstellen-ASIC 20 zuzugreifen.
  • Die DMA-Maschine 74 implementiert die Zustandsmaschinenlogik zum Holen der Steuerparameter und Datenpufferzeiger von der PCL. Die Zustandsmaschinenlogik oder der Paketprozessor verwendet diese Parameter zum Steuern der Datenübertragung zu und von den Datenpuffern.
  • 3 veranschaulicht die in der 1394-Paketempfangslogik 102 enthaltene Anfangsblock-Vergleichslogik, die den 32-Bit-Paketdatenstrom 106 von der PHY-LINK-Schnittstellenlogik 104 empfängt. Der 32-Bit-Paketdatenstrom 106 geht zu der IEEE-1394-Empfängerlogik 102 und zu der mit dem Bezugszeichen 110 bezeichneten Anfangsblock-Vergleichslogik. Außerdem stellt der PCI-Slave 66 einen 32-Bit-Lese/Schreib-Zugriff für die bei Bezugszeichen 110 enthaltenen Komparatorsteuerregister bereit. Die Linie 117 gibt die Anfangsblockvergleichsübereinstimmungs-Ausgabe für den DMA-Kanal 0 an. Die Linie 119 gibt die Anfangsblockvergleichsübereinstimmung für den DMA-Kanal eins an. Die Linie 121 zeigt die Anfangsblockvergleichsübereinstimmung für den DMA-Kanal zwei. Die Linie 123 zeigt die Anfangsblockvergleichsübereinstimmung für den Kanal drei. Jede dieser Ausgaben geht zum Prioritätscodierer 128 und zu der logischen ODER-Schaltung 129. Der Prioritätscodierer 128 erzeugt eine DMA-Kanal-Ausgabe 130, die zur 1394-Empfängerlogik 102 geht. Die ODER-Logikschaltung 129 stellt auf der Leitung 132, die zu der 1394-Empfängerlogik 102 geht, eine Komparatorübereinstimmung für das Empfängersteuerlogiksignal als eine 0, die keine Übereinstimmung angibt, oder als eine 1, die eine Übereinstimmung angibt, bereit.
  • Die DMA-Maschine 74 kann als fünf (5) oder mehr unabhängige DMA-Kanäle betrachtet werden, die alle gleichzeitig fließen. Die tatsächliche Implementie rung verwendet eine Hauptsteuerungs-Zustandsmaschine zum Zeitmultiplexieren zwischen den DMA-Kanälen. Eine superisochrone Prioritätslogik untersucht ständig den momentanen Kontext aller Kanäle und weist der Zustandsmaschine den Kanal mit der höchsten Priorität mit einer anstehenden Aktivität zur Ausführung zu.
  • 4 veranschaulicht die allgemeinen Konzepte, die 3 beschreibt, genauer. In 4 enthalten die Empfangsdaten 106 die Anfangsblockdaten 108 mit den Wörtern WD0 und WD1. Die Wörter WD0 und WD1 werden jedem der N DMA-Kanal-Anfangsblockvergleichsblöcke der Logik 110 (z. B. wie etwa den vier Kanälen 0–3 aus 3) zugeführt. Die DMA-Anfangsblockvergleichsregister für jeden DMA-Kanal in der Logik 110 enthalten in der Schaltungsanordnung Anweisungen zum Vergleichen des Anfangsblock-WD 0 bei 108 auf Übereinstimmung mit den Auswahlregisterinhalten 120 und mit der Steuerwertelogik 122. Gleichfalls wird das WD 1 bei 109 unter Verwendung von Vergleichsanweisungen, wie sie durch den Inhalt des Registers 124 und durch die Inhalte der Auswahlregister 126 angegeben sind, verglichen. Die Ausgabe der DMA-Anfangsblockvergleichsregister und -logik wird als Kanalauswahl [0] bis Kanalauswahl [N – 1] dargestellt. 4 gibt außerdem an, dass der Prioritätscodierer 128 diese Kanalauswahlausgaben empfängt, um auf der Leitung 130 des ausgewählten DMA-Kanals eine Kanalnummer und eine Adressenübereinstimmungsausgabe 132 zu erzeugen. Wie 3 und der beigefügte Text beschreiben, fließen die Ausgabe 130 des ausgewählten DMA-Kanals und die Adressenübereinstimmungsausgabe 132 zu der IEEE-1394-Empfängerlogik 102.
  • Das DMA-Anfangsblockvergleichsregister und die DMA-Anfangsblockvergleichslogik 110 und der Prioritätscodierer 128 implementieren die Logik, die erforderlich ist, um zu bestimmen, ob ein ankommendes Paket anzunehmen und in den GRF 80 zu laden ist. 3 zeigt vier DMA-Kanäle, wobei fünf oder mehr DMA-Kanäle im Umfang der Erfindung liegen. Jede DMA-Anfangsblockvergleichsregister- und -Logikschaltung 110 ist zum Bedienen eines DMA-Kanals zugewiesen. Ein Komparator enthält ein WD-0-Feldauswahlregister 122, ein WD-1-Auswahlregister 126, ein WD-0-Vergleichswertregister 120, ein WD-1-Vergleichswertregister 124 und eine Vergleichslogik. Die zwei Feldauswahlmaskenregister geben diejenigen Bitfelder das WD 0 und das WD 1 des ankommenden Pakets an, die durch die Komparatorlogik mit einem erwarteten Wert verglichen werden. Die zwei Vergleichswertregister geben die erwarteten Bitmuster an, die mit den ausgewählten Bitfeldern im Wort 0 und im Wort 1 des ankommenden Pakets verglichen werden. Der Prioritätscodierer 128 sammelt die DMA-Kanal-Übereinstimmungsangaben von jedem DMA-Anfangsblockvergleichsregister und jeder DMA-Anfangsblockvergleichslogik 110 und erzeugt einen Bitcode, der das ankommende Paket auf einen besonderen DMA-Kanal abbildet. Die ODER-Logikschaltung 129 kombiniert die Auswahlangaben von den DMA-Anfangsblockvergleichsregistern und von der DMA-Anfangsblock-Vergleichslogik 110 und erzeugt eine einzelne Komparatorvergleichsangabe für die IEEE-1394-Empfängerlogik 102. Die IEEE-1394-Empfängerlogik verwendet die DMA-Kanalnummer und die Komparatorvergleichsangabe, um zu bestimmen, ob das ankommende Paket in dem GRF 80 zu empfangen ist.
  • Der DMA-Paketprozessor kann in der vorliegenden Ausführungsform als unabhängige DMA-Kanäle arbeiten, die alle unabhängig fließen. Die tatsächliche Implementierung nutzt eine Hauptsteuerungs-Zustandsmaschine, die zwischen den mehreren DMA-Kanälen (z. B. fünf DMA-Kanälen) zeitmultiplexiert. Die superisochrone Prioritätslogik untersucht ständig den momentanen Kontext aller Kanäle und weist den Kanal mit der höchsten Priorität einer anstehenden Aktivität der Zustandsmaschine zur Ausführung zu. Ein DMA-Kanal wird nach dem Rücksetzen in einen statischen Zustand initialisiert, wo er auf einen gültigen PCL-Zeiger wartet, der in das Paketsteuerungslisten-Startadressenregister zu schreiben ist, sowie darauf wartet, dass die Kanalfreigabe- und Verkettungsbits in dem DMA-Steuerregister gesetzt werden. Ein gültiger PCL-Zeiger ist durch den Zustand des Bits null des Paketsteuerungslisten-Startadressenregisters bestimmt. Eine Eins gibt eine ungültige Adresse an, während eine Null gibt eine gültige Adresse angibt. Daraufhin geht der DMA zu der Adresse, auf die das Paketsteuerungslisten- Startadressenregister zeigt, holt die neue Adresse und macht diese, wenn sie gültig ist, zu der momentanen PCL-Adresse und beginnt mit der Ausführung.
  • Falls diese Adresse ungültig ist, wird das Verkettungsbit in dem DMA-Steuerregister gelöscht und für diesen Kanal in dem Unterbrechungsstatusregister eine DMA-Angehalten-Unterbrechung mit dem zugeordneten Status erzeugt, wobei der Kanal inaktiv wird. Dieser Mechanismus schafft eine Vernunft-Prüfung an den PCL-Speicherstrukturen und schafft einen verhältnismäßig leichten Weg, um die Kanal-PCL-Ausführung fortzusetzen, falls eine nächste Adressenverbindung fehlt. Wenn eine gültige Adresse der nächsten PCL erfasst wird, setzt der DMA daraufhin das BUSY-Bit in dem DMA-Steuerregister und holt die ersten Steuerwörter an dem PCL-Versatz. Daraufhin wird eine Prüfung vorgenommen, um zu bestimmen, ob der Befehl ein Empfangs-, ein Sende-, ein PCI-zum/vom-Lokalbus- oder ein Hilfsbefehl ist. Je nachdem, welcher DMA-Kanal eine Übereinstimmung besitzt, identifiziert der Kanal mit der höchsten Priorität vom Prioritätscodierer 128, der eine Übereinstimmung besitzt, einen besonderen DMA-Kanal, der auszuwählen ist.
  • 5 zeigt in nochmals größerer Einzelheit den Betrieb einer Anfangsblock-Vergleichslogik 120 eines gegebenen DMA-Kanals gemäß der vorliegenden Ausführungsform. Beispielsweise gehen zu der Anfangsblock-Vergleichslogik 120 die Empfangsdaten, die die Wörter WD0 und WD1 enthalten. Dies umfasst, dass das Codesegment 134 des Worts WD0 zu der Ziel-ID-Vergleichslogik 136 geht. Der WD0-Abschnitt 138 geht zu der Tcode-Vergleichslogik 140. Der WD0-Abschnitt 142 geht zu der Vergleichslogik 144 für die WD0-Bits 15:6 und 3:0. Außerdem empfängt die Vergleichslogik 146, wie durch den WD1-Abschnitt 148 angegeben ist, die Bits 31:16. Die Vergleichslogikausgaben von der Ziel-ID-Vergleichslogik 136, von der Tcode-Vergleichslogik 140, von der Vergleichslogik 144, die die WD0-Bits 3:0 und die WD0-Bits 15:6 bearbeiten, sowie die Ausgabe der Vergleichslogik 146 für die WD1-Bits 31:16 gehen zu der UND-Funktion 150. Die Ausgabe der UND-Funktion 150 ist eine Kanalauswahlfunktion [x], die eine Kanalauswahl [0] bis zu einer Kanalauswahl [N – 1] sein kann, die der Priori tätscodierer 128 wie oben beschrieben empfängt, um das DMA-Kanal-Ausgewählt-Signal 130 und das Adressenübereinstimmungssignal 132 zu erzeugen.
  • Die 6, 7, 8 und 9 geben ausführliche Ansichten der Empfangsdatenbits, die zu der DMA-Kanal-Anfangsblock-Vergleichslogik 120 gehen. Insbesondere zeigt 6, dass der T-Code 160 die [7:4] des Asynchron-Anfangsblocks 162 enthält. Ähnlich bilden die Tcode-Bits 164 die Bits [7:4] des Isochron-Anfangsblocks 166. Die Übereinstimmungsdatenmenge 168 in einem gegebenen DMA-Kanal enthält bei 170 das Übereinstimmungsdaten-Anfangsblock-WD0, das dem Anfangsblock-WD 0 bei 162 entspricht, und die Auswahlübereinstimmungs-Datenmenge 172, die dem Anfangsblock-WD 0 bei 166 entspricht. Wie 6 veranschaulicht, bestimmen die durch die Bits [7:4] 176 des Vergleichsauswahl-WD-0 bei 172 geänderten Vergleichsbits [7:4] 174 die Übereinstimmungsergebnisse für das Empfangsanfangsblock-WD 0, Bits [7:4]. Um den Übereinstimmungswert 117 für einen besonderen DMA-Kanal zu bestimmen, wird die Ausgabe von diesem Vergleich mit anderen Teilvergleichsergebnissen UND-verknüpft.
  • 6 zeigt eine mögliche Zieldatenwert-Anordnung für besondere Felder. Die vorliegende Erfindung nimmt die Empfangsdaten, jedes Feld einzeln, und versucht, mögliche Wege zu zeigen, die Vergleichswörter und Auswahlwörter zum Empfangen eines besonderen Ergebnisses einzustellen. Insbesondere zeigt 6 den Vergleich mit dem Tcode-160-Feld. Einer der Tcodes 160 oder 164 gibt einen Operationscode, der den Datentyp auf dem Empfangsdatenbus 16 und die seriellen 1394-Daten [Bezugszeichen erforderlich??] als isochrone oder asynchrone Daten identifiziert. Im Beispiel aus 6 sind die Tcodes in demselben Feld. Dieser Vergleich funktioniert sowohl an asynchronen Anfangsblöcken als auch an den isochronen Anfangsblöcken auf die gleiche Weise. Es kann verschiedene Wege geben, um isochrone und asynchrone Anfangsblöcke zu decodieren. Sie können wie gezeigt sein oder miteinander vermischt sein. Die tatsächliche Codierung kann schwanken, wobei das Verhalten dadurch, dass ein Vergleich oder kein Vergleich erhalten wird, aber ähnlich ist.
  • In 7 sind die Bits [3:0] 178 und die Bits [15:8] 180 des Asynchron-Anfangsblocks 162 sowie die Synch-Bits [3:0] 182 und die Kanalbits [15:8] 184 des Isochron-Anfangsblocks 166 hervorgehoben. Die Bits [3:0] des Anfangsblocks-WD-0, entweder die Primärbits 178 oder die Synch-Bits 182, werden mit den durch die Bits [3:0] 188 des Vergleichsauswahl-WD 0 bei 172 geänderten Bits [3:0] 186 des WD 0 bei 170 verglichen. Darüber hinaus werden die Bits [15:7] des Anfangsblock-WD 0 bei 170, entweder die Bits [15:7] 180 des Asynchron-Anfangsblocks 162 oder die Bits [15:7] 184 des Isochron-Anfangsblocks 166, mit den durch die Bits [15:7] des Vergleichsauswahl-WD 0 bei 172 geänderten Bits [15:7] 190 des Vergleichs-WD 0 bei 170 verglichen. Die Ausgabe von diesen Vergleichen, die gemäß 7 erfolgen, entspricht den WD-0-Bits [3:0] und [15:7] der Vergleichslogik 144 der Schaltung 110.
  • 8 zeigt einen weiteren Vergleich, der der Ziel-ID-Vergleichslogikschaltung 136 der DMA-Kanal-Vergleichslogik 110 entspricht. Der Asynchron-Anfangsblock 162 enthält die mit dem Bezugszeichen 200 bezeichneten Ziel-ID-Bits [31:15]. Dieselben Bitstellen, die Bits [31:16] des Anfangsblock-WD 0 bei 166, enthalten die mit den Bezugszeichen 202 bezeichneten Datenlängenbits [31:16] für isochrone Datenpakete. Gleichfalls enthalten die Bits [31:16] eines besonderen Sicherungsschicht-Steuerregisters 92, die hier mit dem Bezugszeichen 204 bezeichnet sind, Knotennummer- und Busnummerdaten. 8 zeigt den Vergleich des Asynchron-Empfangsdatenblock-WD 0 bei 162 oder das Isochron-Empfangsdatenblock-WD 0 bei 166 mit den Bits 206 der Übereinstimmungsdatenmenge 170 für die wie durch die Bits 208 der Datenmenge 172 geänderten Bits [31:16]. Die Übereinstimmungsdatenmenge 210 enthält die Bits [15:11] als Ziel-ID-Mengen-Bits 212. Anhand des Vergleichs, den 8 erzeugt, wird im Logikblock 146 eine DMA-Kanalnummer abgeleitet, die zur UND-Funktion 150 der DMA-Kanal-Vergleichslogik 110 geht.
  • Wegen der Art, in der die IEEE-Norm 1394 Zielkennungen behandelt, können die höherwertigen Bits [31:16] des Asynchron-Anfangsblock-WD 0 eine spezielle Bedeutung haben. Beispielsweise bestimmt die IEEE-1394-Codierung für ver schiedene Anfangsblöcke den Rundsende-Nachrichtentyp. Für den Empfangsdatenblock gibt es ein Vergleichswort 0 und ein Bitauswahlwort 0, die die Auswahl eines spezifischen Empfangsanfangsblockworts ermöglichen. Außerdem wählt jedes Bit im Vergleichsauswahlwort 1 [15:11] 212 einzeln eine besondere Ziel-ID-Vergleichsgleichung aus.
  • 9 zeigt den Asynchron-Anfangsblock 162, der bei 220 die Quell-ID-Bits [31:16] enthält. Diese Bitstellen 222 sind in einem Isochron-Anfangsblock 166 Teil der variablen Daten. Der DMA-Kanal 120 in der WD-1-Vergleichslogik 146 vergleicht die Bits 16 bis 31 der durch die Bits [31:16] bei 226 des Vergleichsauswahlworts 1 geänderten Übereinstimmungsdatenmenge 170 mit den Bits [31:16] des Anfangsblock-WD 1 bei 220 oder 222.
  • 10 zeigt die Registerschreib-Schaltungsanordnung 250 zum Schreiben einer beliebigen Anzahl von Datenregisterbits mit einer einzigen Registerschreiboperation. Die Schaltungsanordnung 250 zeigt eine einer beliebigen Anzahl ähnlicher Schaltungen: Jede Schaltung steuert ein besonderes Bit aus der beliebigen Anzahl von Datenbits. Die Universal-E/A-Schreibdateneingabe (GPIO-Schreibdateneingabe) 252 in der Registerschreib-Schaltungsanordnung 250 geht zum Datenflipflop 254. Außerdem empfängt das Datenflipflop 254 das Taktsignal 256 und das Schreibfreigabeeingangssignal 258 von der UND-Funktion 260. Die UND-Funktion 260 empfängt das GPIO-Adresse-Okay-Signal 262, das Schreibstandardsignal 264 und die GPIO-Adressenbiteingabe 266. Die UND-Funktion 260 liefert das UND-Ausgangssignal 258 für das Schreibfreigabebit 268 des Datenflipflops 250. Lediglich in die Flipflops 250 mit einer 1 in ihrem besonderen zugewiesenen Adressenbit 266 werden ihre jeweiligen GPIO-Schreibdaten 252 geschrieben.
  • Die Registerschreib-Schaltungsanordnung 250 ermöglicht, dass nur in jene Bits geschrieben wird, die sich in einem Register ändern müssen, während der vorangehende Wert des Rests der Bits erhalten wird. Außerdem ermöglicht die Registerschreib-Schaltungsanordnung 250, dass Software kritische Datenbits än dert, ohne dass Registerbits, die sich nicht auf eine besondere Aktion beziehen, zurückgerufen, spezifiziert oder bearbeitet werden müssen.
  • Wenn es eine Adresse eines Registers gibt, in das die 1 bis 4 GPIOs des Schreibfreigabebits 258 anhand des Adressenfelds geschrieben werden können, repräsentieren die Ax in der [GPIO]-Adressennummereingabe 266 dasjenige Adressenbit, auf dem dieses Schreiben beruht, um zu bestimmen, ob es ein Schreiben in dieses Bit gibt oder nicht. Die Schreibübernahme 264 sagt, dass dies eine Schreiboperation ist. Das GPIO-Adresse-OK 262 ist eine Grundadressendecodierung für das gesamte Register. Die Schreibfreigabe 258 zum Flipflop 250 ist das Ausgangssignal der UND-Funktion. Wenn die Schreibfreigabe aktiv ist, werden die Eingangsschreibdaten 252 ins Flipflop 254 geschrieben, wobei sie am Ausgang 270 des Flipflops erscheinen.
  • 11 zeigt das Adressenfeld 272, das die GPIO-Registeradressenbits 274 und gemäß dem Bitwert 0 oder 1 der zugeordneten Bits im Adressenfeld 272 die Adressenbits A0, A1, A2 und A3 des Einzelbitauswahlfelds 276 enthält. Die letzteren zwei Bits 278 des Adressenfelds 272 nehmen allgemein einen Wert null an. Die zwei niedrigstwertigen Bits in der Adresse 272 nehmen einen Wert null an. Dies liegt an der Busarchitektur. Die nächsten als A0, A1, A2 und A3 spezifizierten vier Bits ermöglichen einzeln oder in verschiedenen Kombinationen das Adressieren von vier Bits. Die höherwertigen oder höchstwertigen Bits sind die besonderen für diese besondere Funktion spezifizierten oder zugeordneten Adressen. Somit gibt es für den gegebenen GPIO-Adressenwert eine feste Menge von Bitmusteradressen zur Auswahl der besonderen Adressen. Das Ergebnis ist eine ganze Anordnung von Adressen von 0000 bis 1111 (d. h. 16 verschiedene mögliche Kombinationen), die adressiert werden können.
  • Die DMA-Prioritätsauswahleinrichtung ist verantwortlich für die Aktivierung des Kontexts desjenigen Kanals, der den dringendsten Bedarf an einer PCI-Datenbewegung hat. Der DMA ist als eine Hauptzustandsmaschine (dma_fsm.v) entworfen, die die Zustände eines ausgewählten Kanals ausführt. Der ausgewählte Kanal besitzt zu irgendeinem Zeitpunkt eine Anzahl gespeicherter Bedingungen. Diese gespeicherten Bedingungen werden sein Kontext genannt. Ein Teil des Kontexts eines Kanals ist der momentane Zustand seiner Ausführung durch die Hauptzustandsmaschine.
  • Die Zustandsmaschine besitzt mehrere potentiale Spin-Zustände, wobei die Ausführung eines Kanals warten muss, bis bestimmte Bedingungen so sind, dass die Ausführung fortgesetzt werden kann. Ein offensichtlicher Fall liegt vor, wenn ein Kanal im Leerlauf ist und darauf wartet, dass eine gültige PCL-Adresse geladen wird, wenn das Kanalfreigabebit zu setzen ist und wenn das Verkettungsbit zu setzen ist. Ein weiterer Fall liegt vor, wenn ein Empfangskanal auf Daten in dem Empfangs-FIFO wartet. Wenn ein Kanal auf Empfangsdaten wartet, während ein anderer Kanal zum Übertragen von Daten in den Sende-FIFO bereit ist, muss die Sendung bedient werden. Diese Art von Szenarien kann in einer Anzahl von Fällen auftreten.
  • Jeder dieser Spin-Zustände stellt ein "Gelegenheitsfenster" dar, wo die Ausführung eines anderen Kanals fortschreiten kann. Die Prioritätsauswahleinrichtung betrachtet alle diese möglichen Spinzustände und wählt aus, welcher Zustand und Kanal zu diesem Zeitpunkt die höchste Priorität besitzt.
  • 12 zeigt ein Beispiel der DMA-Befehlsverarbeitung in der Umgebung 300. Die PCI-Registerschreibdaten 302 in 12 gehen zum Multiplexer 304. Außerdem empfängt der Multiplexer 304 die DMA-Registerschreibdaten 306. Je nach der auszuführenden Operation wird die richtige Datenquelle ausgewählt 308. Das Ausgangssignal vom Multiplexer 304 geht zu den DMA-Registern 310, die in dem veranschaulichten Beispiel sechs Kanäle, Kanal 0 bis Kanal 5, enthalten. Die DMA-Felder bei jedem Kanal enthalten ein Feld 312 für die vorangehende Adresse oder temporäres Feld 312, ein Feld 314 für die momentane PCI-Adresse, die Datenpufferadresse 316, das Statusbit 320, das Befehlsbit 322, das Bit 324 für den momentanen Zustand und das Bereit-Bit 326. Außerdem liefert die DMA-Registerschreibentscheidungs-Auswahlschaltung 328 in die DMA-Register 310 eine Eingabe, die für das PCI-Slave-Signal 330, für das PCI-Master-Signal 332, für das DMA-PCI-Master-Zykluseingangssignal 334 und für das DMA-PCI-Slave-Fertig-Eingangssignal 336 verantwortlich ist. Die DMA-Kanal-Entscheidungseinrichtung 340 empfängt das Kanalverriegelungs-Eingangssignal 342 und liefert ein Eingangssignal an den Multiplexer 346. Das Slave-Registerleseadressen-Eingangssignal 348 steuert den Betrieb des Multiplexers 344. Das DMA-Registerlesedaten-Ausgangssignal 350 gibt die DMA-Registerdaten an die PCI-Schnittstelle zurück. Der Multiplexer 346 liefert ein Ausgangssignal an die Logik 352 der DMA-Zustandsmaschine für den nächsten Zustand. Die Werte 354 der DMA-Zustandsmaschine für den nächsten Zustand werden über den Multiplexer 304 in das Zustandsregister und in die anderen Ausgangsregister zurückgeschrieben. Die Ausgabe von der DMA-Befehlsverarbeitungsumgebung 300 umfasst das FIFO-Lesesignal 356, das FIFO-Schreibsignal 356 und das FIFO-Auswahlsignal 356 sowie zahlreiche Signale.
  • Die DMA-Kanal-Entscheidungseinrichtung 340 steuert, welcher Kanal in der Ausführung ist. Diese Entscheidung beruht auf Signalen von dem FIFO 358 sowie auf "der aktive FIFO-Kanal erfordert Daten" und "der aktive FIFO-Kanal" sowohl darauf, welcher FIFO zum Übertragen von Daten bereit ist und welche Kanäle freigegeben und aktiv sind.
  • Die DMA-Register 310 implementieren einen Steuer- und Statusregistersatz zum Steuern und Überwachen des Status jedes DMA-Kanals. Die DMA-Register 310 unterstützen jeden DMA-Kanal mit zahlreichen Funktionen. Beispielsweise stellt das Register 312 für die Startadresse der vorangehende Paketsteuerliste/das Temp-Register 312 ein Register bereit, das durch die DMA-Maschine 74 aktualisiert wird, während es während asynchroner Sendungen eine Warteschlange von Paketen verarbeitet. Außerdem wird es während Hilfsbefehlen als ein temporäres Halteregister für Lade- und Speicherdaten verwendet. Das Paketsteuerlisten-Startadressenregister 314 wird durch Anwendungssoftware initialisiert, so dass es auf den Start der ersten PCL (Leer-PCL) in einer PCL-Kette zeigt. Die DMA-Maschine 74 verwendet die nächste in diese PCL geladene Adresse zum Verketten mit der ersten tatsächlichen PCL. Während die PCLs verarbeitet werden, wird das Paketsteuerlisten-Startadressenregister 314 durch den aktiven DMA-Kanal aktualisiert. Während der aktive DMA-Kanal die PCL verarbeitet, wird das DMA-Puffer-Startadressenregister 316 mit den von der PCL geholten Datenpufferzeigern geladen. Das DMA-Statusregister 320 speichert eine andauernde Zählung der Anzahl der während dieser PCL übertragenen Bits und enthält den Abschlussstatus der Übertragung. Nachdem die Verarbeitung der PCL abgeschlossen ist, schreibt der aktive DMA-Kanal die Statusinformationen dieses Registers an den Versatz 0xC in der PCL zurück.
  • Das DMA-Steuerregister 322 enthält Steuerbits, die ermöglichen, dass die Anwendungssoftware den Betrieb des DMA-Kanals freigibt oder sperrt und die nächste Adresse einer PCL zur Verkettung erneut holt. Das DMA-Steuerregister 322 steuert die Datenpuffer-Übertragungssteuerung, die Übertragungsbitzählung und die Befehle, die von der PCL geholt werden. Das niedrigstwertige Bit des DMA-Bereit-Registers 326 kann veranlassen, dass der DMA-Kanal auf eine Bereit-Bedingung wartet, bevor er die Ausführung eines XMT-, eines RCV-, eines LOAD-, eines STORE-, eines STORE0- oder eines STORE1-Befehls fortsetzt. Diese Bereit-Bedingung wird durch das Steuerwort bzw. durch die Steuerwörter der PCL ausgewählt. Das niedrigstwertige Bit des DMA-Bereit-Registers 326 kann veranlassen, dass der DMA-Kanal während der Ausführung eines BRANCH-Befehls bedingt verzweigt. Diese Bedingung wird durch das Steuerwort bzw. durch die Steuerwörter der PCL ausgewählt. Das Register 324 für den momentanen DMA-Zustand speichert den Zustandsvektor für den DMA-Kanal. Dieses Register wird während der aktiven Zeit des DMA-Kanals aktualisiert und unterhält den letzten Zustandsvektor, der erzeugt wird, wenn der Kanal inaktiv wird.
  • Außerdem enthalten die DMA-Register 310 ein (nicht gezeigtes) Empfangspaket-Zählregister, das die Zählung der momentan empfangenen Pakete enthält. Die DMA-Maschine 74 lädt dieses Register mit der in GRF-80-Token-Wörtern übergebenen Empfangspaketzählung. Diese Zählung wird daraufhin dekrementiert, während die Daten auf den PCI-Bus 24 übertragen werden. Außerdem kann ein (nicht gezeigtes) globales DMA-Register enthalten sein, das Zustandsmerker zur Verwendung durch die Zustandsmaschine zum Verfolgen der Ausführung eines Asynchron-Sendepakets enthält. Das globale DMA-Register kann die Bits der unteren Grenze speichern, die in Verbindung mit dem Cache-Zeilengrößenregister verwendet wird, um die von dem PCI-Master angeforderte Burst-Größe zu bestimmen.
  • 21 zeigt, wie ein DMA-Kanal nach dem Rücksetzen auf eine statische Bedingung im Abschnitt 135 initialisiert wird. Jeder DMA-Kanal 310 wartet darauf, dass in ein Paketsteuerungslisten-Startadressenregister 314 ein gültiger PCL-Zeiger geschrieben wird und dass die Kanalfreigabe- und Verkettungsbits in dem DMA-Steuerregister gesetzt werden. Ein gültiger PCL-Zeiger ist durch den Zustand des Bits 0 des Adressenregisters der momentanen Paketsteuerliste (PCL-Adressenregister) bestimmt. Ein Wert 1 gibt eine ungültige Adresse an, während ein Wert 0 eine gültige Adresse angibt. Daraufhin geht der DMA zu der Adresse, auf die das Startadressenregister des Registers für die Adresse der momentanen PCL zeigt, erhält er die Adresse der nächsten PCL und macht er diese, wenn sie gültig ist, zu der Adresse der momentanen PCL und beginnt er mit der Ausführung. Falls diese Adresse ungültig ist, wird das Verkettungsbit in dem DMA-Steuerregister gelöscht, wird für diesen Kanal eine DMA-Angehalten-Unterbrechung mit dem dazugehörenden Status in dem Unterbrechungsstatusregister erzeugt und wird der Kanal inaktiv. Dieser Mechanismus schafft eine Vernunftprüfung an die PCL-Speicherstrukturierung sowie einen verhältnismäßig leichten Weg, mit der Kanal-PCL-Ausführung fortzusetzen, falls eine Verkettung zur nächsten Adresse fehlt (d. h. ungültig ist). Wenn die DMA-Maschine 74 eine gültige Adresse der nächsten PCL erfasst, setzt sie das BSY-Bit in den DMA-Steuerungs- und -Statusregistern 76 und erhält sie die Wörter in der richtigen PCL. Daraufhin wird eine Prüfung vorgenommen, um zu bestimmen, ob der Befehl ein Empfangs-, ein Sende-, ein PCI-zu/von-Lokalbus- oder ein Hilfsbefehl ist.
  • Weiter veranschaulicht 21, wie die DMA-Maschine 74 in Abschnitt 137 die Empfangsoperation für isochrone und asynchrone Daten im GRF 80 ausführt.
  • Die DMA-Maschine 74 fährt fort, indem sie prüft, um zu sehen, ob eine Wartebedingung vorhanden ist. Wenn die Wartebedingung nicht mehr vorhanden ist, tritt der Prozessor in eine Datenbewegungsphase ein. Die DMA-Maschine 74 tritt hier in eine Schleife ein, in der die Zählung der momentanen Übertragung geprüft wird, um zu sehen, ob sie zu null geworden ist. Wenn das der Fall ist, wird eine Prüfung vorgenommen, um zu sehen, ob dies der letzte Datenpuffer der PCL-Pufferliste ist. Wenn es der letzte Puffer ist und durch die Sicherungsschicht-Steuerlogik 90, die ein Spezialsteuer-Token-Wort in den GRF 80 schreibt, keine Paketgrenze angegeben worden ist, ist ein Fehler aufgetreten, da mehr Paketdaten übertragen werden sollen, als der Puffer halten kann. In diesem Fall wird das PKT-ERR-Bit in den DMA-Steuerungs- und -Statusregistern 76 gesetzt, wobei die DMA-Maschine 74 die verbleibenden Daten bis zu der Paketgrenze entleert. Falls die Zählung der momentanen Übertragung auf null dekrementiert worden ist und es einen weiteren Puffer in der PCL-Liste gibt, erfasst die DMA-Maschine 74 die neue Pufferadresse und Übertragungszählung und fährt mit der Übertragung fort.
  • Während die DMA-Maschine 74 Daten vom GRF 80 zu der PCI-Schnittstellenlogik 70 bewegt, wartet sie darauf, dass der GRF 80 ausreichend Daten besitzt, bevor sie anfordert, dass der PCI-Bus-Master eine Übertragung ausführt. Dieser Übertragungsschwellenwert wird jedes Mal erreicht, wenn eine von zwei Bedingungen erfüllt ist. Die DMA-Maschine 74 fordert jedes Mal eine Übertragung des PCI-Masters an, wenn die Anzahl der Bits in dem Empfangs-FIFO eine "Hochwassermarke" erreicht. Diese Hochwassermarke ist gleich dem größeren des Cache-Zeilengrößenregisters oder dem Feld für die untere Grenze des globalen DMA-Registers.
  • Wenn das Paket zum ersten Mal durch die Sicherungsschicht-Steuerlogik 90 in den GRF 80 geschrieben wird, erhält der DMA von der Verbindung Informationen über die Datengröße eines Pakets. Er verwendet diese Übertragungszählung, um zu bestimmen, ob die Daten im GRF 80 die verbleibenden Daten in dem Paket sind, wobei er, wenn es der Fall ist und die Größe kleiner als die Hochwasser marke ist, eine Übertragung der PCI-Master-Logik 64 anfordert, wobei die Übertragungszählung gleich diesem Rest ist. Während die DMA-Maschine 74 Daten überträgt, werden das Datenpuffer-Startadressenregisterbit und das Datenpuffer-Übertragungslängenbit in den DMA-Steuerungs- und -Statusregistern 76 aktualisiert, so dass sie den momentanen Zustand der Übertragung widerspiegeln.
  • Wie der Abschnitt 139 aus 21 angibt, schreibt die Sicherungsschicht-Steuerlogik 90, wenn sie das Ende eines Pakets feststellt, in das GRF 80 ein Spezialsteuer-Token-Wort, das das Ende eines Pakets markiert. In dieses Steuerwort sind Statusbits eingebettet, die den Abschlussstatus des Pakets auf dem Bus angeben. Die DMA-Maschine 74 verwendet diese Paket-Ende-Marke, um die Datenübertragung vom GRF 80 zum PCI-Bus 24 abzuschließen. Falls die Paket-Ende-Marke angibt, dass ein IEEE-1394-Belegt-Quittierungssignal vorhanden ist, erfasst die DMA-Maschine 74 die erste Pufferadresse und Übertragungszählung der PCL erneut und startet sie die Übertragung des Pakets noch einmal von vorn. Falls es keinen von der Paket-Ende-Marke angegebenen Belegt-Quittierungsstatus gab, werden die DMA-Steuerungs- und -Statusregister 76 mit dem von der Sicherungsschicht-Steuerlogik 90 in der Paket-Ende-Marke übergebenen Quittierungsstatus geladen und wird ein Paket-Vollständig-Bit gesetzt. Daraufhin wird der Paketabschlussstatus in dem PCL-Statuswort in den Speicher geschrieben und eine Unterbrechung signalisiert und in dem entsprechenden Bit in dem Unterbrechungsstatusregister zwischengespeichert. Falls der Befehl ein Empfangs- und Aktualisierungsbefehl war, werden die Zählung der verbleibenden Übertragung und die nächste Pufferadresse in die richtigen PCL-Versätze geschrieben.
  • 13 zeigt die Tabelle 360 zur Angabe des Betriebs der DMA-Kanalentscheidungsschaltung 340. Die Tabelle 360 zeigt, dass, falls momentan ein Kanal auf dem Bus der IEEE-Norm 1394 aktiv ist, dieser Kanal die höchste Priorität besitzt, die für die Ausführung in dem DMA-Kanal zu planen ist. Andernfalls besitzt die Kanalpriorität die Reihenfolge der Kanalnummer, wobei 0 die höchste Priorität ist. Bei 362 ist als der Wert "X" ein "Unbedeutend"-Wert zugewiesen. Das heißt, dass der momentan aktive Kanal unabhängig von den anderen Werten die höchste Priorität besitzt. Das sind die Kanäle, die so früh wie möglich geplant werden.
  • Der Betrieb der DMA-Befehlsverarbeitung kann durch das folgende Beispiel gesehen werden. Es wird angenommen, dass der DMA momentan den Kanal 3 bearbeitet. Somit sind über den Multiplexer 346 in dem DMA alle Register für den Kanal 3 ausgewählt. Der DMA wählt den besonderen Schnitt von Registern aus, der in der Logik der DMA-Zustandsmaschine für den momentanen Zustand und für den nächsten Zustand erscheint.
  • 14 gibt ein vereinfachtes Diagramm der Personalcomputerumgebung 12 der vorliegenden Erfindung, die die Autoboot-Funktion 370 enthält. Der Anschlussstift 370 der PCI-Schnittstellen-ASIC 20 schafft eine direkte Eingabe in die Autoboot-PCI-Schnittstellen-ASIC 20. Im Ergebnis kann die PCI-Schnittstellen-ASIC 20 über den PCI-Bus 24 als eine Host-Vorrichtung für die PCI-Vorrichtung Nr. 1 beim Bezugszeichen 30 und für die PCI-Vorrichtung Nr. 2 beim Bezugszeichen 31 arbeiten. Die Befehle für den autonomen Betrieb der PCI-Schnittstellen-ASIC 20 können den RPL-ROM 36 und den SRAM 38 verwenden. Außerdem kann die PCI-Schnittstellen-ASIC 20 über den Schnittstellenbus 16 mit der PHY-Schnittstelle 18 kommunizieren.
  • Wenn der Autoboot-Anschlussstift 370 aktiv (d. h. hochgezogen) ist, ist die Autoboot-Betriebsart der vorliegenden Erfindung ausgewählt. Die Autoboot-Betriebsart ermöglicht eine Anzahl von Merkmalen, die zulassen, dass die PCI-Schnittstellen-ASIC 20 autonom funktioniert. Der autonome Betrieb enthält die Merkmale des Holens der Adresse der ersten Paketsteuerliste unter Verwendung des DMA-Kanals 0 nach dem Einschaltrücksetzen. Außerdem ermöglicht die Autoboot-Betriebsart, nach dem Einschaltrücksetzen den DMA-Master-Zugriff auf den externen RPL-ROM freizugeben. Außerdem gibt die Autoboot-Betriebsart nach dem Einschaltrücksetzen das Merkmal des DMA-Master-Zugriffs auf die internen Verbindungsregister frei.
  • Wenn die PCI-Schnittstellen-ASIC 20 als Master auf dem PCI-Bus 24 freigegeben ist, kann sie auf dem PCI-Bus 24 PCI-Konfigurations-, PCI-Eingabe/Ausgabe- sowie PCI-Speicherlese- und PCI-Speicherschreibbefehle ausgeben, indem sie den richtigen Adressenbereich in der Steuer-Paketsteuerliste angibt. In der Autoboot-Betriebsart ist der externe PCI-Adressenraum auf 30 Bits beschränkt. Die zwei höchstwertigen Adressenbits sind immer auf einem Wert 0. Diese zwei Bits werden intern zum Auswählen des PCI-Befehls verwendet.
  • Der Zustand des Autoboot-Anschlussstifts 370 kann zu Diagnosezwecken von einem Spezialbit in einem Verschiedenes-Steuerregister gelesen werden. Bei ausgewählter Autoboot-Betriebsart und bei einem externen ROM kann die vorliegende Erfindung die PCI-Schnittstellen-ASIC 20 als den lokalen Prozessor zum Einrichten aller internen Register der PCI-Schnittstellen-ASIC 20, zum Initialisieren anderer Vorrichtungen am PCI-Bus 24 und zum Bauen und Einreihen weiterer PCLs in einer Warteschlange betreiben. Die verschiedenen DMA-Kanäle können freigegeben werden, um diese PCLs auszuführen, so dass Daten über den IEEE-1394-Bus übertragen werden.
  • Durch Hinzufügen des externen Lokalbus-RAM zur PCI-Schnittstellenvorrichtung 20 wird für Vorrichtungen am PCI-Bus 24 ein PCI-Slave-Speicher geschaffen, um Steuerinformationen zu erhalten und einen Lokalspeicher für die Datenübertragung zu haben. PCL-Programme können dann die Vorrichtungssteuerung/Daten über die IEEE-1394 zu einem anderen System übertragen. Dementsprechend könnte eine Umgebung, die die Autoboot-Betriebsart der vorliegenden Erfindung nutzt, für Peripheriegeräte verwendet werden, wo möglicherweise kein geeigneter Prozessor für das Management der PCI-Schnittstellenumgebung verfügbar ist.
  • Die Schaltungsanordnung aus 14 stellt über einen externen Anschlussstift eine weitere Betriebsart für den Chip bereit. Die Wirkung ist, dass ein Abschnitt des Speicherabbilds freigegeben und vorspezifiziert wird, um zu ermöglichen, dass beim Hochfahren genug Betriebsmittel für die DMA-Maschine 74 zugänglich sind, um alle erforderlichen Funktionen auszuführen und auf alle erforderli chen Funktionen Zugriff zu haben, um nützliche Arbeit zu verrichten. Außerdem besteht die Wirkung darin, dass das Verhalten der DMA-Maschine 74 in der Weise geändert wird, dass die DMA-Maschine, wenn sie in einer besonderen Betriebsart ist, neue Anweisungen von einem hierzu vorgesehenen ROM anfordert, anstatt inaktiv zu werden.
  • Die DMA-Maschine 74 kommt aktiv hoch und erfasst eine bestimmte Adresse, um Anweisungen zu erhalten. Dies ermöglicht, dass die PCI-Schnittstellen-ASIC 20 in einer Einzelbetriebsart arbeitet. Außerdem ermöglicht dies die Erzeugung von PCI-Speicherbefehlen und von Eingabe/Ausgabe-Befehlen sämtlich von der PCI-Schnittstellen-ASIC 20.
  • Unter Verwendung des Autoboot-Anschlussstifts 370 ermöglicht die vorliegende Erfindung, das Hochfahr-Speicherabbild zu rekonfigurieren, indem der Zugriff freigegeben wird und die ROM- und RAM-Basisadressenregister initialisiert werden. Dies ermöglicht für die DMA-Maschine den Lese- und Schreibzugriff nach dem Hochfahren. Außerdem ändert die vorliegende Erfindung das Verhalten der DMA-Maschine 74, wenn die Autoboot-Betriebsart ausgewählt wird. Dies ermöglicht, beim Hochfahren von einer hierzu vorgesehenen ROM-Adresse eine neue Anweisung zu erfassen. In der vorliegenden Implementierung ist die Anfangszugriffsadresse genau 0. Ferner schafft die Erfindung ein Verfahren zum Erzeugen von Busbefehlen und ein Protokoll, die in einer normalen Umgebung nicht erforderlich sind.
  • Wenn die Autoboot-Option ausgewählt ist, kann die DMA-Maschine 74 Anweisungen vom RPL-ROM 36 erfassen und ausführen. Dies ermöglicht, dass die DMA-Maschine 74 die geforderten Befehle erzeugt, um auf einem externen PCI-Bus als ein Master-Agent zu wirken, der andere PCI-Vorrichtungen an diesem externen Bus konfiguriert, initialisiert und ihr Management ausführt.
  • Tabelle 380 aus 15 zeigt die Abbildung der Bits [31:30] des internen PCI-Adressenbusses auf Befehle auf dem PCI-Bus, wenn das Autoboot-Eingangssignal 370 aktiv ist. Zum Beispiel wird der PCI-Speicherbefehl aktiviert, falls das Bit 31 einen Wert 0 annimmt und das Bit 30 irgendeinen Wert annimmt. Anschließend tritt ein PCI-E/A-Befehl auf, wobei das Adressenbit 31 einen Wert 1 annimmt und das Adressenbit 30 einen Wert 0 annimmt. Bei einem Wert 1 des Adressenbits 31 und einem Wert 1 des Adressenbits 30 geht der PCI-Konfigurationsbefehl zu der PCI-Schnittstellen-ASIC 20.
  • 16 zeigt ein Diagramm eines Lokalbus-Schnittstellenblocks 390 gemäß einem Aspekt der vorliegenden Erfindung. Der Lokalbus-Schnittstellenblock 390 enthält die Lokalbus-Konfigurationsregister 392 und den Zoom-Video-Decodierungsschnittstellenblock (ZV-Decodierungsschnittstellenblock) 394, der mit der ZV-Maschine 396 kommuniziert. Die Pack/Entpack-Zustandsmaschinen 398 enthalten die Adressen-/Daten-/Bitfreigabehalteregister 398. Außerdem enthält der Lokalbus-Schnittstellenblock 390 die Lokalbus-Schnittstellen-Zustandsmaschine 400 und den Slave-Quittierungsunterbrechungsblock 402.
  • Der ZV-Port aus 2 ist ein Nur-Ausgabe-Port, der zur Übertragung von Daten von dem IEEE-Norm-1394-Bus zu einer externen Vorrichtung an der PCI-Schnittstellen-ASIC 20 bestimmt ist. Wenn die ZV-Schnittstellenlogik richtig programmiert ist, schafft sie ein Verfahren, um mit den richtigen Steuersignalen IEEE-1394-Digitalkamerapakete zu empfangen und die Nutzinformationen an eine externe ZV-kompatible Vorrichtung zu übertragen.
  • Auf die ZV-Decodierungsschaltung 394 wird über eine Teilmenge des Adressenregisters auf der Grundlage des dritten PCI-Speichers zugegriffen. Wenn die ZV-Decodierungsschaltung 394 freigegeben ist, werden die Hilfsadressen zwischen 0xF000 und 0xFFFF auf den ZV-Port abgebildet. Der ZV-Port wird freigegeben, wenn eine der sechs verfügbaren Taktquellen 395 als der ZV-Pixeltakt ausgewählt wird. Falls keiner der sechs Takte ausgewählt ist, ist der ZV-Port gesperrt, wobei die Hilfsschnittstelle den gesamten Adressenraum beansprucht. Wenn der ZV-Port gesperrt ist, sind alle ZV-bezogenen Ausgänge mit Ausnahme des Datenbusses, der während Hilfs-, RAM- und ROM-Zugriffen weiter angesteuert wird, hochimpedant.
  • Beim Erfassen des Synch-Felds des IEEE-1394-Isochron-Paketanfangsblocks gleich 0X1 wird bei dem ZV-Port ein vertikales Synch-Signal erzeugt. In der vorliegenden Ausführungsform enthält das Datenbit 24 die signifikanten Synch-Felddaten. Bei Erfassung dieses vertikalen Synch-Bits wird ein Vertikal-Synch-Ausgangssignal erzeugt. Für den Rest des Teilbilds wird jedes Mal, wenn beim Übertragen von Videodaten an dem Zoom-Port auf eine Spezialadresse zugegriffen wird, ein Horizontal-Sync-Ausgangssignal erzeugt. Durch richtige Programmierung der Paketsteuerliste können alle IEEE-1394-Digitalkamerapakete über den ZV-Port übertragen werden.
  • 17 zeigt eine Ausführungsform der Sync-Erfassungs-Schaltungsanordnung 405 der vorliegenden Erfindung zum Erzeugen des Vertikal-Sync-Erfasst-Signals 407 und des Horizontal-Sync-Erfasst-Signals 409. Wenn die PCI-Slave-Adressenbits [15:0] einen Wert 0XF000 annehmen und das Slave-Datenbit 28 den Wert binär 1 annimmt, senden die Vergleichsschaltungsanordnungen 411 und 413 Signale an das UND-Gatter 415. Dieses erzeugt auf der Leitung 407 ein Vertikal-Sync-Erfasst-Signal. Ähnlich erscheint auf der Leitung 409 ein Horizontal-Sync-Erfasst-Signal, wenn die Slave-Adressenbits [15:0] das 0XF004 an die Vergleichsschaltungsanordnung 417 liefern.
  • 18 zeigt eine Videoabtastzeile für das Paket-Zoom-Portadressenabbild 410 gemäß der vorliegenden Erfindung. Das Zoom-Port-Adressenabbild 410 enthält als die Bezugszeichen 414 bis 424 ausführlich den Isochron-Paket-Anfangsblock 412, der bei der Adresse 0XF000 beginnt, und den Isochron-Paket-Datenraum, der bei der Adresse 0XF004 beginnt und bei der Adresse 0XFFFF endet. Jedes isochrone Paket wird in den Zoom-Port-Adressenraum übertragen, wobei das Anfangsblock-Quadlet an die Adresse 0XF000, das erste Datennutzinformations-Quadlet 428 an die Adresse 0XF004 und die verbleibenden Quadlets in dem Paket an die nachfolgenden Adressen übertragen werden, bis das Ende der Paketnutzinformationsdaten für N Quadlets lange Pakete an die Adresse (0XF000 + (N – 1)) übertragen wird.
  • 18 zeigt, dass die vorliegende Erfindung das autonome Anzeigen des angezeigten Videobilds ohne Software-Unterstützung in einem Fenster, dessen Management durch die Hardware ausgeführt wird, ermöglicht. Die vorliegende Erfindung ermöglicht, dass Rohdaten, die in einem kompatiblen Format als Eingangsdaten in die Video-Controller-Chips gehen, über den IEEE-1394-Bus versandt werden und in den Zoom-Port fließen. Dies ermöglicht das autonome Anzeigen von Daten, während die horizontale und die vertikale Teilbild-Sync aufrechterhalten werden.
  • Im Betrieb wird der Zoom-Video-Port in einen bestimmten Adressenraum abgebildet. Die Anfangsblöcke enthalten Teilbild-Sync-Informationen oder -Signale. Durch Aufbau der richtigen Steuerstrukturen, die bewirken, dass die Anfangsblockpaketdaten anhand der Adresse zu einer besonderen Adresse übertragen werden, sucht die Logik nach bestimmten Feldern. Im Fall der Sony-Kamera, die der IEEE-P1394-Digitalkameraspezifikation entspricht, gibt ein Bit in dem Isochron-Anfangsblock-Sync-Feld den Beginn eines Videoteilbilds an. Durch Decodieren dieses besonderen Isochron-Anfangsblock-Sync-Feldbits wird ein vertikales Sync-Signal erzeugt. Diese Informationen können zum Synchronisieren des Empfangs der Zoom-Port-Daten an dem Zoom-Port verwendet werden.
  • Es gibt zwei Fälle dieser Implementierung, einen für die horizontale Sync und den anderen für die vertikale Sync. Für die vertikale Sync erfordert die Decodierung eine besondere Adresse und ein besonderes Isochron-Anfangsblock-Sync-Bit. Die horizontale Sync wird durch Decodieren einer weiteren besonderen Adresse erzeugt.
  • Der Video-Zoom-Aspekt der vorliegenden Erfindung schafft die Fähigkeit, aus den Paketdaten, die eingebettete Steuerinformationen wie etwa codiertes Video enthalten, autonom Steuerinformationen wie etwa horizontale oder vertikale Sync-Signale zu entnehmen. Die Vergleichslogik 411 und 413 erfasst Übertragungen der spezifischen Datenwerte zu einer spezifischen Zieladresse.
  • Außerdem schafft die vorliegende Erfindung Software- oder Hardware-Steuerstrukturen, die die richtigen Zieladressen für verschiedene Segmente der Paketdaten angeben. Die DMA-Struktur ermöglicht, dass die Daten gesammelt oder gestreut werden, so dass ein besonderes Paket in verschiedene Zieladressen verschiedener Längen zerlegt wird. Dementsprechend kann die vorliegende Erfindung Anfangsblockfelder an eine besondere Adresse und Datenfelder an eine andere Adresse schreiben. Unter Verwendung dieses Merkmals steuert die vorliegende Erfindung, welche Abschnitte der PCI-Schnittstellenvorrichtung welche Adressen sehen.
  • Ferner schafft die vorliegende Erfindung programmierbare Zähler, die dazu verwendet werden, die Steuersignalerzeugung auf Mehrfachzugriffe auf besondere Adressenplätze und/oder Datenmuster zu stützen. Dies erfolgt durch die Verwendung von Zählern, um die Option mehrerer Pakete pro horizontale Zeile oder zwischen horizontalen Syncs zu geben. Dementsprechend kann sofort nach dem vertikalen Sync-Signal ein horizontales Sync-Signal erzeugt werden. Dies ermöglicht, die Anzahl zu zählen, in der ein System eine besondere Adresse durchläuft. Zum Beispiel erzeugt das System erst nach vier Iterationen durch die Adresse ein weiteres horizontales Sync-Signal. Dies ermöglicht, gemäß der besonderen Kamera, Auflösung usw. vier Pakete über die horizontale Zeile zu packen.
  • 19 zeigt das Verfahren des Abbildens eines einzelnen Videopakets auf mehrere Videoabtastzeilen unter Verwendung des Zoom-Port-Adressenabbilds 410. Das Zoom-Port-Adressen-Abbild 410 enthält den Isochron-Paketanfangsblock 412, der an die Isochron-Paketdaten 414 angrenzt. Die Speicherräume 416 bis 424 sind wie in 17 beschrieben. Das Zoom-Video-Isochron-Paket 440 enthält das Anfangsblock-Quadlet 0, das in dem Isochron-Anfangsblock-Sync-Feld ein Teilbild-Startbit enthalten kann. Das Quadlet 1 ist das erste Videodaten-Nutzinformations-Quadlet, das den Beginn der Videoabtastung A angibt. Durch das Schreiben dieses Quadlets an die Adresse 0XF004 wird ein horizontales Sync-Signal erzeugt. Ähnlich gibt das Schreiben des Daten-Quadlets 442 an die Ad resse 0XF004 den Beginn der Videoabtastung A + 1 durch Erzeugen einer horizontalen Sync an. Die Datenschreibvorgänge, die bei 0XF000 beginnen und bis [0XF000 + (N – 1)] gehen, sind tatsächlich diejenigen Daten, die über den Zoom-Video-Port ausgegeben werden (d. h. die Zoom-Daten). Der Anfangsblock wird entfernt und ist nicht Teil des Datenfelds.
  • Dementsprechend erzeugt dieser Fall eine vertikale Sync und eine horizontale Sync für das erste Paket in einem Videoteilbild. Die folgenden Pakete bedeuten die folgenden Abtastzeilen, die den Rest der Videoteilbild-Anfangsblöcke ausfüllen, wobei die Anfangsblöcke aber die Sync-Felder nicht enthalten. Die Daten fließen für alle Pakete auf die gleiche Weise, wobei sie jeweils bei dem Punkt 0XF000 beginnen, wo der Anfangsblock ist, und wobei die vertikale Sync nicht eingestellt wird, wenn es in dem Anfangsblock kein Sync-Bit gibt. Beim Schreiben in F004 wird die horizontale Sync erzeugt. Dies erzeugt den Beginn einer Abtastzeile, so dass die verbleibenden Daten als Teil der Abtastzeile herausfließen.
  • Noch weiter gibt es die Situation mehrerer Abtastzeilen pro Paket. Um diese zu behandeln, werden die Paketsteuerlisten verwendet.
  • Die DMA-Maschine 74 der vorliegenden Erfindung wird durch Datenstrukturen gesteuert, die Paketsteuerlisten oder PCLs genannt werden. Die PCL enthält Befehlsinformationen, die der DMA bei Bedarf aus dem Speicher holt. Diese Befehle teilen dem DMA die Quellen und Ziele für die Daten und wie viele Bytes zu übertragen sind mit. Einige Befehle bewegen Datenstücke zwischen den IEEE-1394-Sende-FIFOs und dem PCI-Bus 24 oder zwischen dem Allgemein-Empfangs-FIFO 80 und dem PCI-Bus 24. Ein weiterer Befehl bewegt Daten zwischen dem PCI-Bus 24 und dem Hilfs-Port-Lokalbus 26. Weitere Befehle sind für sekundäre Funktionen und werden Hilfsbefehle genannt. Diese Hilfsbefehle ermöglichen, dass der DMA Quadlets angegebener Daten an irgendeiner PCI-Adresse direkt liest oder direkt speichert, und ermöglichen eine bedingte Verzweigung unter Verwendung der PCLs. Die beabsichtigte Verwendung ist zu ermöglichen, dass der DMA spezielle Datenbewegungssteuerungen ausführt und als ein Einzelprozessor wirkt, der in einer Autoboot-Sequenz PCLs bauen kann. Der gesamte Umfang dieser Funktionalität ist nicht reglementiert, wobei weitere Verwendungen des DMA entstehen werden.
  • Die Anwendungssoftware der vorliegenden Erfindung programmiert den Betrieb eines DMA-Kanals unter Verwendung der PCL-Datenstruktur, die im Host-Speicher liegt. Die Anwendungssoftware ist verantwortlich für die Konstruktion der PCL und für das Zuordnen von Speicher für ihre Speicherung. Eine PCL kann als eine ununterbrochene Menge von Speicherplätzen organisiert sein, die die Befehle, die Steuerparameter und die Datenpufferzeiger enthalten, die ein DMA-Kanal zum Übertragen eines IEEE-1394-Datenpakets oder zum Bewegen von Daten zwischen dem PCI-Bus 24 und dem Hilfs-Port-Lokalbus 26 oder zum Ausführen eines oder mehrerer Hilfsbefehle benötigt. Die Gesamtzahl der Speicherplätze, die eine PCL benötigt, ist in der momentanen Implementierung allgemein auf 32 Quadlets begrenzt.
  • Als eine Minimalanforderung ist die PCL-Startadresse auf eine Quadlet-Grenze ausgerichtet. Für die optimale DMA-Leistung wird empfohlen, dass die PCL-Startadresse eine Zeile an einer Cache-Zeilengrenze ist. Die Datenpufferzeiger können auf eine beliebige Byte-Grenze ausgerichtet sein. Für die optimale DMA-Leistung richtet die vorliegende Erfindung die Datenpufferzeiger auf eine Cache-Zeilengrenze aus. Falls dies nicht möglich ist, sollte die zweitoptimale Datenpufferzeigerausrichtung an einer Quadlet-Grenze sein. Die Summe der Größen der Datenpuffer, auf die die PCL zeigt, ist für eine IEEE-1394-Bitrate von 100 MBit/s auf etwa ein Kilobit beschränkt oder für eine IEEE-1394-Bitrate von 200 MBit/s auf etwa 2 Kilobits begrenzt.
  • In der vorliegenden Ausführungsform holt der aktive DMA-Kanal die Befehle und Steuerparameter von der PCL und verwendet sie, um den Kanal selbst zu konfigurieren, um den Befehl bei der Übertragung auszuführen.
  • Die Anwendungssoftware-Programme ermöglichen, dass der DMA-Kanal durch Verkettung mehrerer Paketsteuerlisten zu einer PCL-Listenwarteschlange mehrere IEEE-1394-Datenpakete überträgt. Die vorliegende Erfindung konstruiert die Warteschlange dadurch, dass sie das Feld für die nächste Adresse jeder PCL in der Weise einstellt, dass es auf die Startadresse der nächsten PCL im Speicher zeigt. Die letzte PCL in der Warteschlange kann in der Weise programmiert werden, dass sie entweder die DMA-Verarbeitung anhält, auf den Start der Warteschlange zurückzeigt oder auf eine neue Warteschlange zeigt. Irgendwo in einer PCL-Warteschlange, jedoch nicht in beiden, können PCLs eingebettet sein, die Hilfsbefehle enthalten. Eine PCL-Warteschlange kann Empfangs- und Sende- und Hilfsbefehle miteinander mischen; allerdings muss wegen des möglichen Pipeline-Wesens von Sendungen und der Möglichkeit eines Paketwiederholungsversuchs auf einen Asynchron-Sendebefehl ein weiterer Asynchron-Sendebefehl folgen. Andererseits schließt das Setzen des "Warte-auf-Status"-Bits in dem Asynchron-Sendebefehl diese Anforderung aus.
  • 20 veranschaulicht ein Beispiel einer verketteten Liste von Paketsteuerlisten gemäß der vorliegenden Ausführungsform der Erfindung. Die PCI-Warteschlange 450 in 20 beginnt bei der Startadresse 452. Der Verfahrensablauf geht von der Startadresse 452 zur Leer-Paketsteuerliste 454. Die Leer-Paketsteuerliste 454 sendet den Verfahrensablauf zur Übertragung der Befehls-Paketsteuerliste 456. Bei der Übertragung der Befehls-Paketsteuerliste 0 gehen der Datenpuffer-Zählbefehl und die Datenpuffer-Adresseninformationen zu den Datenpuffern 460, 462, z. B. zum Datenpuffer 464, weiter, was in diesem Beispiel vierzehn Datenpuffer in Verwendung angibt.
  • Die Übertragungsbefehls-Paketsteuerliste 0 beim Bezugszeichen 456 enthält die Adresse 466 der nächsten Liste, die zu der Hilfsbefehls-Paketsteuerliste 1 beim Bezugszeichen 470 geht. Die Hilfsbefehls-Paketsteuerliste 1 beim Bezugszeichen 470 enthält einen Ladebefehl 472, eine Quelladresse am Platz 474 und einen Speicherbefehl am Platz 476. Der Ladebefehl 472 geht zum Datenregister 478, das das DMA-Register 480 versorgt. Der Speicher-1-Befehl 476 liefert eine Eingabe in den Speicherplatz 482. Außerdem enthält die Hilfsbefehls-Paketsteuerliste 1 beim Bezugszeichen 470, wenn sie wahr ist, die Zieladresse 484, die die PCI-Verfahrenssteuerung bedingt zur Übertragungsbefehls-Paketsteuerliste 2 beim Bezugszeichen 486 sendet. Die Übertragungsbefehls-Paketsteuerliste 2 beim Bezugszeichen 486 enthält die Adresse 488 der nächsten Liste, die, wie mit dem Bezugszeichen 490 bezeichnet ist, zu weiteren PCIs geht, während die Datenzählung und die Datenpufferadressen 492 und dergleichen zum Datenpuffer 494 und dergleichen gehen. Falls die Zieladresse 484, falls sie wahr ist, den Verfahrensablauf der PCI-Warteschlange steuert, geht die Adresse 468 der nächsten Liste zur Übertragungsbefehls-Paketsteuerliste 2 beim Bezugszeichen 486. Daraufhin gehen diese Informationen von der Adresse 488 der nächsten Liste zu anderen PCIs, wie sie mit dem Bezugszeichen 490 bezeichnet sind, während die Datenpuffer-0-Adresse und die Zählbefehlsinformationen zu dem Datenpuffer 1 und dergleichen gehen.
  • Da keine vorherige PCL vorhanden ist, ordnet die Host-CPU 44 im Betrieb typisch Speicher für den Bau einer Paketsteuerliste und einer Leeradresse der nächsten PCL zu. Die Leeradresse der nächsten PCL liefert einen Speicherplatz, der ein Zeiger auf den Beginn der ersten vollen PCL, d. h. PCL 0, ist. Daraufhin baut der Host-Prozessor die gewünschte Liste der PCLs auf, um die Operation mit der Datenübertragung oder einer Art Hilfsbefehl wie etwa den Hilfsbefehlen, die tatsächliche prozessorähnliche Befehle ausführen, auszuführen.
  • Die Räume in den Adressen der nächsten PCL umfassen eine Fehleradresse, einen Reserveplatz und den Status. Das nächste Paar ist der Steuer-Stat, die Übertragungszählung. Die nächste nach diesen ist die Datenpufferadresse. Diese zwei Langwörter bilden eine Anweisungs- oder Datenübertragung zu einem Datenpuffer. Das Übertragungsbeispiel ist eine Pufferadresse, die auf einen Datenpufferplatz in dem Speicher zeigt, zu dem oder von dem die Daten übertragen werden sollen. Falls ununterbrochen Daten übertragen werden sollen, ermöglicht die vorliegende Ausführungsform die Bildung einer großen Steuerschleife für die zusammenhängende Datenübertragung.
  • Die 21 bis 25 und die folgende Diskussion beschreiben den Betrieb der vorliegenden Erfindung für eine Empfangs-, eine Sende-, eine PCI-zu/von-Lokal bus- oder eine Hilfsoperation. Wie 21 zeigt, beginnt der Verfahrensablauf in einer Empfangsoperation für isochrone und asynchrone Daten im GRF 80 dadurch, dass geprüft wird, um zu sehen, ob eine Wartebedingung vorhanden ist. Wie 23 zeigt, gibt es für eine isochrone Sendung keine Wartebedingung, falls die Kanalfreigabe gleich 1 ist, die Sendefunktion bereit ist und das zyklische Startbit OK ist. Durch die Warteauswahlbits des Datenpuffersteuerworts null wird eine Wartebedingung bestimmt. Wenn eine Wartebedingung nicht mehr vorhanden ist, tritt der Prozessor in eine Datenbewegungsphase ein. Hier wird in eine Schleife eingetreten, wo die momentane Übertragungszählung geprüft wird, um zu sehen, ob sie zu null geworden ist. Wenn das der Fall ist, wird eine Prüfung vorgenommen, um zu sehen, ob dies der letzte Datenpuffer der PCL-Pufferliste ist. Falls der Datenpuffer der letzte Datenpuffer ist und durch den Sicherungsschicht-Controller, der ein Spezialsteuer-Token-Wort in den GRF-FIFO schreibt, keine Paketgrenze angegeben worden ist, ist ein Fehler aufgetreten, da mehr Paketdaten gesendet werden sollen, als der Puffer halten kann. In diesem Fall wird das Paketfehlerbit in dem DMA-Statusregister gesetzt, wobei der DMA die verbleibenden Daten bis zu der Paketgrenze entleert. Falls die momentane Übertragungszählung auf null dekrementiert worden ist und es einen weiteren Puffer in der PCL-Liste gibt, erfasst der DMA die neue Pufferadresse und die neue Übertragungszählung und fährt mit der Übertragung fort.
  • Während der DMA Daten von dem Empfangs-FIFO zu der PCI-Schnittstelle bewegt, wartet er darauf, dass der FIFO ausreichend Daten hat, bevor er anfordert, dass der PCI-Bus-Master eine Übertragung ausführt. Dieser Übertragungsschwellenwert ist jedes Mal erreicht, wenn eine von zwei Bedingungen erfüllt ist. Der DMA fordert jedes Mal eine Übertragung des PCI-Masters an, wenn die Anzahl der Bytes in dem Empfangs-FIFO eine "Hochwassermarke" erreicht. Diese Hochwassermarke ist gleich dem größeren des Cache-Zeilengrößenregisters oder des Felds für die untere Grenze des globalen DMA-Registers. Der DMA erhält von der Verbindung Informationen über die Größe der Daten eines Pakets, wenn das Paket erstmals durch den Längenschicht-Controller in den FIFO geschrieben wird. Er verwendet diese Übertragungszählung, um zu bestimmen, ob die Daten in dem FIFO die verbleibenden Daten in dem Paket sind, wobei er eine Übertragung des PCI-Masters anfordert, bei der die Übertragungszählung gleich diesem Rest ist, falls die Größe kleiner als die Hochwassermarke ist. Während der DMA Daten überträgt, wird das Datenpuffer-Startadressenregister in den datengepufferten Übertragungslängenbits in dem DMA-Steuerregister aktualisiert, so dass es den momentanen Zustand der Übertragung widerspiegelt.
  • Wenn der Sicherungsschicht-Controller das Ende eines Pakets feststellt, schreibt er in den FIFO ein Spezialsteuer-Token-Wort, dass das Ende eines Pakets markiert. In dieses Steuerwort sind Statusbits eingebettet, die den Abschlusszustand des Pakets auf dem Bus angeben. Der DMA verwendet diese Paket-Ende-Marke, um die Datenübertragung von dem FIFO zu dem PCI-Bus abzuschließen. Falls die Paket-Ende-Marke eine IEEE-1394-Belegt-Quittierung angibt, erfasst der DMA die erste Pufferadresse der PCL und die Übertragungszählung erneut und beginnt er die Paketübertragung von vorn. Falls von der Paket-Ende-Marke kein Belegt-Status angegeben wird, wird das DMA-Statusregister mit dem von dem Sicherungsschicht-Controller in der Paket-Ende-Marke übergebenen Quittierungsstatus geladen und der Paketabschluss gesetzt. Daraufhin wird er zusammen mit der Anzahl der für diese PCL übertragenen Bits in dem PCL-Statuswort in den Speicher geschrieben. Falls das INT-Bit für den Datenpuffersteuerungs/Byte-Zählungs-Befehl in der PCL gesetzt ist, wird eine Unterbrechung signalisiert und in dem entsprechenden DMA-PCL-Bit in dem Unterbrechungsstatusregister zwischengespeichert. Falls der Befehl ein Empfangs- und Aktualisierungsbefehl war, werden die verbleibende Übertragungszählung und die nächste Pufferadresse in die PCL geschrieben. Daraufhin bestimmt der DMA, indem er das Feld der Adresse der nächsten Liste der momentanen PCL holt, ob eine weitere PCL mit der momentanen PCL verkettet worden ist. Falls es eine verkettete PCL gibt, macht der DMA die verkettete PCL zu der momentanen PCL, wobei er die Ausführung fortsetzt. Falls mit der momentanen PCL keine weitere PCL verkettet worden ist, werden das Verkettungs- und das Belegt-Bit in dem DMA-Steuerregister gelöscht, wird für diesen Kanal eine DMA-Angehalten-Unterbrechung mit dem zugeord neten Status in dem Unterbrechungsstatusregister erzeugt und geht der Kanal in den Leerlauf über.
  • Wie 22 zeigt, wird für die DMA-Asynchron-Sendeoperation ein asynchrones Senden bestimmt, nachdem ein gültiger PCL-Zeiger in das Paketsteuerlisten-Startadressenregister geschrieben worden ist und das Kanalfreigabe- und das Verkettungsbit gesetzt worden sind. Das Gesamtziel des asynchronen Paketprozessors ist es, dem momentanen Paket, das durch den Sicherungsschicht-Controller von dem FIFO an den IEEE-1394-Bus übertragen wird, ein Paket voraus zu sein. Vom Standpunkt des DMA aus war dieses Paket auf dem Bus ein vorangehendes Paket. Es wird angenommen, dass irgendein von dem Sicherungsschicht-Controller berichteter Status für dieses vorangehende Paket ist; allerdings verhindert das Setzen des "Warte-auf-Status"-Bits in dem "Datenpuffer/Bytezählung/Befehl" in der PCL diese Pipeline-Operation. Der DMA hält die Adresse der Startadresse der vorangehenden Paketsteuerliste in dem Register für die Startadresse der vorangehenden Paketssteuerliste/temporären Register. Der "vorangehende PCL gültig" genannte Merker wird durch den DMA in dem globalen DMA-Register gehalten, um zu verfolgen, ob er eine gespeicherte gültige Adresse besitzt. Eine Sendeoperation für einen asynchronen Kanal findet dadurch statt, dass geprüft wird, um zu sehen, ob eine Wartebedingung vorhanden ist. Eine Wartebedingung ist durch die Warteauswahlbits des "Datenpuffersteuerung/Bytezählung/Befehls" in der PCL bestimmt. Durch den DMA wird ein "Wiederholungsversuch" genannter Merker in dem globalen DMA-Register gehalten. Der DMA verwendet diesen Merker, um zu verfolgen, wann die Wartebedingung ausgewertet werden sollte, da diese Wartebedingungen während Wiederholungsversuchen ignoriert werden.
  • Wenn die Wartebedingung nicht mehr vorhanden ist, schreibt der DMA in den FIFO ein Steuer-Token, das den Beginn eines Pakets angibt, wobei er in eine Datenbewegungsphase eintritt. Hier wird in eine Schleife eingetreten, in der die momentane Übertragungszählung geprüft wird, um zu sehen, ob sie zu null geworden ist. Wenn das der Fall ist, wird eine Prüfung vorgenommen, um zu sehen, ob dies der letzte Datenpuffer der PCL-Pufferliste ist. Falls es einen weiteren Puffer in der PCL-Liste gibt, erfasst der DMA die neue Pufferadresse und Übertragungszählung und fährt mit der Übertragung fort. Während der DMA Daten von der PCI-Schnittstelle an den Asynchron-Sende-FIFO überträgt, wartet er darauf, dass der FIFO genug Raum hat, bevor er anfordert, dass der PCI-Bus-Master eine Leseübertragung ausführt. Der DMA fordert eine Übertragung des PCI-Masters mit der Bitzählung gleich der Hochwassermarke an, wie sie hinsichtlich der DMA-Empfangsoperation definiert ist. Während der DMA Daten überträgt, werden das Datenpuffer-Startadressenregisterbit und das Datenpuffer-Übertragungsverknüpfungsbit in dem DMA-Steuerregister aktualisiert, so dass sie den momentanen Zustand der Übertragung widerspiegeln.
  • Wenn das letzte Datenbit aus einem Puffer an den Asynchron-Sende-FIFO übertragen worden ist und der Puffer, wie durch das Letzter-Puffer-Bit in dem Steuerungs/Bytezählungs-PCL-Wort angegeben ist, der letzte der PCL-Liste ist, weiß der DMA, dass das Ende des Pakets erreicht worden ist. Falls die Adresse des vorangehenden Pakets gültig ist, verzögert der DMA den Prüfstatus, bis ein volles Paket in die Warteschlange des Sende-FIFO eingereiht worden ist. Auf diese Weise ist der Rückgabestatus immer für das vorangehende Paket, es sei denn, dass das Warte-auf-Status-Bit gesetzt ist. Wenn es nur ein Paket in der Übertragung gibt, sind das vorausgehende und das momentane Paket dasselbe. Wenn die Adresse des vorangehenden Pakets gültig ist, betrachtet der DMA den Paketzähler. Wenn durch den Sicherungsschicht-Controller ein Paket auf den IEEE-1394-Bus gesendet worden ist und der Status für dieses Paket gültig ist, dekrementiert der Sicherungsschicht-Controller den Paketzähler. Der DMA dreht sich, wobei er darauf wartet, dass der Paketzähler zu null wird, was angibt. dass für das vorangehende Paket der Gültig-Status verfügbar ist. Falls der Status angibt, dass das vorangehende Paket erneut versucht werden soll, stellt der DMA für den Sicherungsschicht-Controller eine FIFO-Entleerungsanforderung ein, woraufhin er wartet, dass der Sicherungsschicht-Controller den Abschluss des FIFO-Entleerens durch Entfernung der Wiederholungsversuchangabe angibt. Daraufhin "geht" der DMA zu dem vorangehenden Paket "zurück" und beginnt die Übertra gung von vorn. Falls kein Wiederholungsversuch stattgefunden hat, aktualisiert der DMA das DMA-Statusregister mit dem von dem Sicherungsschicht-Controller übergebenen quittierten Status, setzt er das Paket-abgeschlossen und schreibt er daraufhin den Abschlussstatus zusammen mit der Anzahl der für die momentan aktive PCL übertragenen Bits, die für die vorangegangene PCL möglicherweise nicht relevant ist, in dem Statuswort der vorangehenden PCL in den Speicher. Falls das Unterbrechungsbit in der PCL gesetzt ist, wird die Unterbrechung signalisiert und in dem entsprechenden Unterbrechungsstatusregisterbit zwischengespeichert.
  • Wenn der Status geprüft worden ist, schreibt der DMA in den Sende-FIFO ein Spezialsteuer-Token, das das Ende des Pakets markiert. Um für den Sicherungsschicht-Controller anzugeben, dass durch den DMA das Paket-Ende geschrieben worden ist, wird die Paketzählung um eins inkrementiert. Die momentane PCL-Adresse wird als die vorangehende PCL-Adresse gesichert, und das Register der Startadresse der vorangehenden Paketsteuerliste und ein "Vorangehend-Gültig"-Merker in dem globalen DMA-Register werden gesetzt. Daraufhin bestimmt der DMA durch Holen des Adressenwerts der nächsten Liste, ob mit der momentanen PCL eine weitere PCL verknüpft worden ist. Wenn sie gültig ist, macht die DMA diese zu der Adresse der momentanen PCL und setzt die Ausführung fort. Wenn sie nicht gültig ist oder wenn das Warte-auf-Status-Bit gesetzt ist, wartet der DMA darauf, dass durch den Sicherungsschicht-Controller das momentane Paket übertragen wird. Wenn, wie durch den auf null dekrementierten Paketzähler angegeben wird, ein Gültig-Status verfügbar ist, prüft der DMA, um zu sehen, ob das Paket, wie durch einen IEEE-1394-Belegt-Status angegeben wird, erneut versucht werden muss. Wenn das der Fall ist, wird der FIFO wie zuvor erwähnt entleert und die Sendung erneut versucht.
  • Falls es, wie durch den Sicherungsschicht-Controller angegeben wird, eine Sendezeitüberschreitung, einen Wiederholungsversuch-Überlauf oder einen FIFO-Unterlauf gegeben hat, wird das Paketfehlerbit in dem DMA-Statusregister zusammen mit dem Quittierungsstatus gesetzt. Daraufhin wird der Status in der PCL aktualisiert. Im Fall einer Sendezeitüberschreitung oder eines Wiederholungsversuchsüberlaufs kann es möglich sein, dass der Zielknoten nicht mehr antwortet. Der DMA behandelt diese Situation dadurch, dass er ermöglicht, die PCL(s), die den Datenstrom für diesen besonderen Zielknoten bildet bzw. bilden, zu überspringen. Die Software kann den Eintrag des nächsten PCL-Stroms der PCL so einstellen, dass er auf die erste PCL zu dem nächsten Sendedatenstrom zeigt (d. h. auf die nächsten asynchronen Sendungen zu einem anderen 1394-Knoten zeigt). Wenn die Adresse des nächsten PCL-Stroms gültig ist, setzt der DMA die Ausführung mit dieser PCL fort. Falls diese Adresse nicht gültig ist, geht der DMA-Kanal zu irgendeinem Zeitpunkt, zu dem er feststellt, dass die Adresse der nächsten PCL als ungültig gekennzeichnet ist, in den Leerlauf über. Falls dieses Merkmals des nächsten Stroms nicht verwendet werden soll, sollte dieser Wert auf den gleichen Wert wie die Adresse der nächsten Liste gesetzt werden. Falls der DMA das Absenden eines DMA-Halt-Unterbrechungsstatus anhält und der Eintrag des nächsten PCL-Stroms ungültig ist, ist ein Neuschreiben des nächsten PCL-Stroms erforderlich, da der DMA in dem Erhalte-Nächsten-Strom-Zustand ist und der DMA die Adresse der nächsten Liste ignoriert. Somit ist es erforderlich, die "Adresse der nächsten Liste" und den "nächsten PCL-Strom" immer auf die gleiche Adresse zu setzen, falls das Merkmal des nächsten Stroms nicht verwendet werden soll, um ein Hängen in irgendeinem Asynchron-Sendekanal zu verhindern, was wegen eines Fehlers den Eintrag des nächsten PCL-Stroms aufruft.
  • 24 zeigt einen Ablaufplan ähnlich dem oben für die Asynchron- und für die Isochron-Sendeoperation beschriebenen, wie er aber auf die Hilfsoperationen der DMA-Maschine 74 angewendet wird.
  • Wie 25 zeigt, steuert die PCI-LOCAL-Bus- und die LOCAL-Bus-PCI-Übertragungsoperation die Datenübertragung zwischen dem PCI-Bus und dem LOCAL-Bus. Wie für andere Übertragungsbefehle wie etwa Sendungen werden die PCI-Adresse und die Anzahl der zu übertragenden Bits aus dem ctl/bit_cnt/cmd-Wort bzw aus den ctl/bit_cnt/cmd-Wörtern des PCL-data-buf in der PCL abgeleitet. Der Unterschied ist, dass das Ziel oder die Quelle der Über tragung nicht der FIFO, sondern der LOCAL-Bus ist. Die LOCAL-Bus-Adresse wird aus dem AUX ADR-Register erzeugt (siehe Hardware-Register-Definitionen).
  • Dadurch, dass geprüft wird, um zu sehen, ob eine Wartebedingung vorhanden ist, findet eine PCI-zu/von-LOCAL-Operation statt. Die Wartebedingung ist durch die Warteauswahlbits des ctl/bit_cnt/cmd des data buf0 am PCL-Versatz 0x18 bestimmt. Wenn die Wartebedingungen nicht mehr vorhanden sind, tritt der DMA in eine Schleife ein, wo die momentane Übertragungszählung geprüft wird, um zu sehen, ob sie zu null geworden ist. Wenn das der Fall ist, wird eine Prüfung vorgenommen, um zu sehen, ob dies der letzte Datenpuffer der PCL-Pufferliste ist. Wenn ein weiterer Puffer in der PCL-Liste ist, erfasst der DMA die neue Pufferadresse und Übertragungszählung und fährt mit der Übertragung fort. Während der DMA Daten überträgt, werden das Datenpuffer-Startadressenregisterbit und das Datenpuffer-Übertragungslängenbit in dem DMA-Steuerregister aktualisiert, so dass sie den momentanen Übertragungszustand widerspiegeln.
  • Wenn das letzte Datenbit von einem Puffer zu/von dem LOCAL-Bus übertragen worden ist und der Puffer, wie durch das LAST-BUF-Bit des ctl/bit_cnt-PCL-Worts angegeben wird, der letzte der PCL-Liste ist, weiß der DMA, dass das Ende der Übertragung erreicht ist. Der DMA aktualisiert das DMA-Statusregister mit dem Status 0x0001, das PKT-CMP wird gesetzt und daraufhin zusammen mit der Anzahl der übertragenen Bytes am PCL-Versatz 0xC in das PCL-Statuswort geschrieben. Wenn das INT-Bit beim PCL-Versatz 0x18 in dem ctl/bit_cnt/cmd des data buf0 gesetzt ist, wird eine Unterbrechung signalisiert und in dem entsprechenden (DMA_PCL[x])-Bit in dem Unterbrechungsstatusregister zwischengespeichert.
  • Daraufhin bestimmt der DMA durch Holen der Adresse der nächsten Liste (PCL-Versatz 0x00), ob mit der momentanen PCL eine weitere PCL verkettet worden ist. Wenn es gültig ist, was durch das Bit 0 = 0 angegeben wird, macht der DMA diese zu der Adresse der momentanen PCL, wobei er die Ausführung wie gezeigt fortsetzt. Falls keine weitere PCL mit der momentanen PCL verkettet worden ist, was durch das Bit 0 = 1 angegeben wird, werden das Verkettungs- und das BSY-Bit in dem DMA-Steuerregister gelöscht, wobei für diesen Kanal eine DMA-Angehalten-Unterbrechung mit dem zugeordneten Status (DMA_HLT[x]) in dem Unterbrechungsstatusregister erzeugt wird, woraufhin der Kanal in den Leerlauf übergeht.
  • 26 zeigt einen höheren FIFO-Funktionsblockschaltplan 500 zur Beschreibung des Betriebs der FIFOs für den GRF 80, für den Asynchron-Sende-FIFO 82 und für den Isochron-Sende-FIFO 84. Die FIFO-Logik der vorliegenden Erfindung enthält eine Taktdomäne 502 der Verbindungsseite und eine Taktdomäne 504 der PCI-Seite. Die FIFO-Steuerungs- und -Statusregister 88 in der Taktdomäne 504 der PCI-Seite sind echt und werden durch die PCI-Busschnittstellenlogik geschrieben. Außerdem liefern die FIFO-Controller-Statusregister 88 eine Eingabe in die Zeigeradressen-Abbildungslogik 86. Die Zeigeradressen-Abbildungslogik 86 erzeugt RAM-Adressenabbildungsversätze zu den FIFO-Lese-Schreibzeigerpaaren.
  • Der Dualport-RAM 501 stellt die Datenspeicherung für den GRF 80, für den Asynchron-Sende-FIFO 82 und für den Isochron-Sende-FIFO 84 bereit und überspannt die Begrenzung zwischen der Taktdomäne 502 der Verbindungsseite und der Taktdomäne 504 der PCI-Seite. Eine Taktdomänenzeiger-Übersetzungslogik 506 der Taktdomäne 504 der PCI-Seite erzeugt eine Eingabe in die DMA-FIFO-Belegungsstatuslogik 508. Die DMA-FIFO-Belegungsstatuslogik 508 erzeugt für das DMA-Logiksignal 510 den FIFO-Status. In der Taktdomäne 502 auf der Verbindungsseite liefert die Taktdomänenzeiger-Übersetzungslogik 512 eine Eingabe in die 1394-FIFO-Sender- und -Empfänger-Belegungsstatuslogik 514, die einen FIFO-Status für das 1394-Sende-Empfangs-Logiksignal 516 erzeugt.
  • Der Dualport-RAM 501 empfängt Adresseneingaben vom Multiplexer 518 und vom Multiplexer 520. Der Multiplexer 518 empfängt eine Eingabe vom Allgemein-Empfangs-Schreibzeiger 522, vom Asynchron-Sende-Lesezeiger 524 und vom Isochron-Sende-Lesezeiger 526. Der Allgemein-Empfangs-Schreibzeiger 522 empfängt eine Steuerung vom 1394-Empfänger und von der Adressenabbil dungslogik. Der Asynchron-Sende-Lesezeiger 524 und der Isochron-Sende-Lesezeiger 526 empfangen eine Steuerung von der 1394-Sender- und Adressenabbildungslogik. Die Ausgaben vom Allgemein-Empfangs-Schreibzeiger 522, vom Asynchron-Sende-Lesezeiger 524 und vom Isochron-Sende-Lesezeiger 526 gehen sämtlich zur Sender- und Empfänger-Belegungsstatuslogik 514, zur Taktdomänen-Zeiger-Übersetzungslogik 506 und zum Multiplexer 518.
  • Der Allgemein-Empfangszeiger 528, der Asynchron-Sende-Schreibzeiger 530 und der Isochron-Sende-Schreibzeiger 532 empfangen alle die Steuerung von der DMA-Logik und Adressenabbildungslogik. Der Allgemein-Empfangs-Lesezeiger 528, der Asynchron-Sende-Schreibzeiger 530 und der Isochron-Sende-Schreibzeiger 532 liefern alle eine Ausgabe an die DMA-FIFO-Statuslogik 508, an die Taktdomänen-Zeiger-Übersetzungslogik 512 und an den Multiplexer 520.
  • Außerdem empfängt der Dualport-RAM 501 entlang des 33-Bit-Datenbusses 534 die Dateneingabe von der 1394-Empfangslogik, das Verbindungstakt-25-MHz-Signal 536 und auf der Leitung 538 die Steuerung von der 1394-Sende/Empfangs-Logik. Außerdem geht die Steuerung von der 1394-Sende/Empfangs-Logik 538 zu dem Adressenmultiplexer 518 auf der Verbindungsseite. Die Byte-Packlogik 540 empfängt über die Steuerung von der DMA-Logik DMA-Lesedaten vom Host-Speicher und liefert an den 33-Bit-Datenbus 542 eine Ausgabe, die zu dem Dateneingang auf der PCI-Seite des Dualport-RAM 501 geht. Die Byte-Entpacklogik 544 empfängt vom 33-Bit-Bus 546 des Datenausgangs der PCI-Seite des Dualport-RAM 501 eine Datenausgabe, um DMA-Schreibdaten an den Host-Speicher zu liefern. Außerdem geht die Steuerung von der DMA-Logik zu der Byte-Entpacklogik 544, zum Multiplexer 520 und zum Dualport-RAM 501. Eine Null zum 33-MHz-PCI-Taktsignal geht zum Dualport-RAM 501.
  • Die folgende Schreibung gibt in Verbindung mit der in 2 in dem beigefügten Text gegebenen Beschreibung weitere Einzelheiten hinsichtlich der Funktion der FIFOs, des GRF 80, des Asynchron-Sende-FIFO 82 und des Isochron-Sende-Schreib-FIFO 84.
  • Die FIFO-Statuslogik 514 und 516 implementiert für jeden Logik-FIFO die Logik, die zum Erzeugen eines Belegungsstatus erforderlich ist. Die Verbindungstaktdomäne-PCI-Taktdomäne-Übersetzungslogik tastet beim Berechnen des FIFO-Status der PCI-Seite den momentanen Wert jedes Zeigers auf der Verbindungsseite des FIFO ab und übersetzt diese Abtastwerte von der Verbindungstaktdomäne in die PCI-Taktdomäne. Jeder übersetzte Zeiger der Verbindungsseite wird mit seinem entsprechenden Zeiger der PCI-Seite verglichen, um für jeden FIFO einen Belegungsstatus zu erzeugen. Dieser Status wird von der DMA-Logik verwendet, um die Datenübertragung zwischen dem Host-Speicher und dem FIFO im Takt zu halten. Ähnlich tastet die PCI-Taktdomäne-Verbindungstaktdomäne-Übersetzungslogik bei der Berechnung des FIFO-Status der Verbindungsseite den momentanen Wert jedes Zeigers auf der PCI-Seite des FIFO ab und übersetzt diese Abtastwerte aus der PCI-Taktdomäne in die Verbindungstaktdomäne. Jeder übersetzte Zeiger der PCI-Seite wird mit seinem entsprechenden Zeiger der Verbindungsseite verglichen, um für jeden FIFO einen Belegungsstatus zu berechnen. Dieser Status wird von der 1394-Sende-Empfangs-Logik verwendet, um die Datenübertragung zwischen dem 1394-Bus und dem FIFO im Takt zu halten.
  • Die Byte-Packlogik 540 implementiert die Logik zum Zusammensetzen eines vollständigen Quadlets unter Verwendung von Daten, die durch den aktiven DMA-Kanal an Byte-ausgerichteten Adressen aus dem Host-Speicher gelesen wurden. Vorzugsweise enthält die Logik vier 8-Bit-breite Register und vier 8-zu-1-Multiplexer. Jedes Register-Mux-Paar entspricht einer Bytespur. Der Eingang jedes Registers ist mit einer Eingangs-Bytespur verbunden, die durch den aktiven DMA-Kanal zum Host-Speicher geschaltet wird. Der Ausgang jedes Mux ist mit einer Ausgangs-Bytespur verbunden, die den FIFO ansteuert. Für jeden 8-zu-1-Multiplexer sind vier Eingänge in einer eineindeutigen Entsprechung mit jedem Registerausgang zu verbinden. Die verbleibenden vier Eingänge sind in einer eineindeutigen Entsprechung mit jedem Registereingang verbunden. Diese Konfiguration ermöglicht, dass Bit-ausgerichtete DMA-Lesedaten von den vier Eingangs-Bytespuren in einer anderen Reihenfolge zu den vier Ausgangs-Byte spuren koppelpunktgeschaltet werden. Die Steuerung der Bytespur-Multiplexer erfolgt durch den aktiven DMA-Lesekanal.
  • Die Byte-Entpacklogik 544 implementiert die Logik, die erforderlich ist, um die von dem FIFO gelesenen Quadlet-Daten in einzeln auswählbare Bytes zu zerlegen, um sie durch den aktiven DMA-Kanal an Byte-ausgerichteten Adressen in den Host-Speicher zu schreiben. Diese Logik besteht aus vier 8-Bit-breiten Registern und aus vier 8-zu-1-Multiplexern. Jedes Register-Mux-Paar entspricht einer Bytespur. Der Eingang jedes Registers ist mit einer Eingangs-Bytespur verbunden, die von dem FIFO angesteuert wird. Der Ausgang jedes Multiplexers ist mit einer Ausgangs-Bytespur verbunden, die durch den DMA-Kanal zu dem Host-Speicher geschaltet wird. Für jeden der 8-zu-1-Multiplexer sind vier Eingänge in einer eineindeutigen Entsprechung mit jedem Registerausgang verbunden. Die verbleibenden vier Eingänge sind in einer eineindeutigen Entsprechung mit jedem Registereingang verbunden. Diese Konfiguration ermöglicht, dass das von dem FIFO gelesene Quadlet in einer anderen Reihenfolge auf die Ausgangs-Bytespuren koppelpunktgeschaltet wird. Die Steuerung der Bytespur-Multiplexer erfolgt durch den aktiven DMA-Schreibkanal.
  • Obgleich die vorliegende Erfindung ausführlich beschrieben worden ist, können an ihr selbstverständlich verschiedene Änderung, Ersetzungen und Abänderungen vorgenommen werden, ohne von dem Umfang der beanspruchten Erfindung abzuweichen.

Claims (25)

  1. Verfahren zum Zuweisen eines Datenpakets zu einem von mehreren DMA-Kanälen, wobei das Verfahren die folgernden Schritte umfasst: Empfangen wenigstens eines Abschnitts des Datenpakets (162, 166, 108), dadurch gekennzeichnet, dass das Verfahren ferner umfasst: Vergleichen des wenigstens einen Abschnitts des Datenpakets mit einer vorgegebenen Übereinstimmungsdatenmenge (168), wobei wenigstens ein Anschnitt der Übereinstimmungsdatenmenge programmierbar variable Datenbereiche aufweist, die wenigstens einem der mehreren DMA-Kanäle entsprechen; und Zuführen eines Kanalauswahlsignals zu wenigstens einem der mehreren DMA-Kanäle, falls eine vorgegebene Korrespondenz zwischen dem wenigstens einen Abschnitt des empfangenen Datenpakets (162, 166, 108) und der Übereinstimmungsdatenmenge (168) vorhanden ist.
  2. Verfahren nach Anspruch 1, bei dem der Schritt des Empfangens wenigstens eines Abschnitts des Datenpakets (162, 166, 108) das Empfangen wenigstens eines Abschnitts des Datenpakets, dem mehrere gleiche Datenpakete zugeordnet sind, umfasst.
  3. Verfahren nach Anspruch 2, bei dem der Schritt des Vergleichens des wenigstens einen Abschnitts des Datenpakets (162, 166, 108) das Vergleichen wenigstens eines Abschnitts jedes der mehreren Datenpakete mit einer entsprechenden Datenübereinstimmungsmenge umfasst.
  4. Verfahren nach Anspruch 3, bei dem der Schritt des Zuführens des Kanalauswahlsignals das Zuführen mehrerer Kanalauswahlsignale zu wenigstens einem der mehreren DMA-Kanäle umfasst, falls eine Korrespondenz zwischen einem Abschnitt eines oder mehrerer der mehreren Datenpakete (108, 162, 166) und entsprechenden Datenübereinstimmungsmengen vorhanden ist.
  5. Verfahren nach einem vorhergehenden Anspruch, bei dem der Schritt des Zuführens des Kanalauswahlsignals das Zuführen wenigstens eines Kanalauswahlsignals zu wenigstens einem von mehreren DMA-Kanälen in Übereinstimmung mit einer vorgegebenen Priorität, die mehreren Kanalauswahlsignalen zugeordnet ist, umfasst.
  6. Verfahren nach Anspruch 4 oder Anspruch 5, das ferner umfasst: Kombinieren der mehreren Datenauswahlsignale, um ein logisch ODER-verknüpftes Vergleichsübereinstimmungssignal (132) für eine dem wenigstens einen der DMA-Kanäle zugeordnete Empfängersteuerlogik (102) zu schaffen.
  7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem der Vergleichsschritt den Schritt des Vergleichens der Inhalte eines Wort-0-Feldauswahlregisterinhalts (122) mit den Inhalten eines Wort-0-Vergleichswertregisters (120) umfasst.
  8. Verfahren nach einem der Ansprüche 1 bis 6, bei dem der Vergleichsschritt den Schritt des Vergleichens der Inhalte eines Wort-1-Feldauswahlregisterinhalts (126) mit den Inhalten eines Wort-1-Vergleichswertregisterinhalts (124) umfasst.
  9. Verfahren nach einem der Ansprüche 1 bis 6, bei dem der Vergleichsschritt den Schritt des Vergleichens des Abschnitts des Datenpakets, der ein Wort-0 und ein Wort-1 eines empfangenen Datenpakets enthält, mit einer Übereinstimmungsdatenmenge umfasst.
  10. Verfahren nach einem vorhergehenden Anspruch, bei dem der Vergleichsschritt den Schritt des Vergleichens des Abschnitts des Datenpakets mit einer Übereinstimmungsdatenmenge umfasst, wobei die Übereinstimmungsdatenmenge einen erwarteten Wert für ein Wort-0 und ein Wort-1 enthält.
  11. Schaltung zum Zuweisen eines Datenpakets zu einem DMA-Kanal, mit: einem Komparator (110), der wenigstens einen Abschnitt eines Datenpakets (108) empfängt, dadurch gekennzeichnet, dass die Schaltung ferner umfasst: eine Schaltungsanordnung, die dem Komparator zugeordnet ist, um wenigstens den Abschnitt des Datenpakets mit einer vorgegebenen Übereinstimmungsdatenmenge zu vergleichen, wobei wenigstens ein Abschnitt der Übereinstimmungsdatenmenge programmierbar variable Datenbereiche aufweist, die wenigstens einem von mehreren DMA-Kanälen entsprechen; und eine Schaltungsanordnung zum Zuführen eines Kanalauswahlsignals zu dem wenigstens einen DMA-Kanal, falls eine vorgegebene Entsprechung zwischen dem wenigstens einen Abschnitt und der Übereinstimmungsdatenmenge vorhanden ist.
  12. Schaltung nach Anspruch 11, bei der dem Datenpaket mehrere ähnliche Datenpakete zugeordnet sind.
  13. Schaltung nach Anspruch 12, bei der die Lenkungsschaltungsanordnung so beschaffen ist, dass sie mehrere Kanalauswahlsignale für wenigstens einen DMA-Kanal lenkt.
  14. Schaltung nach Anspruch 13, ferner mit: einem Prioritätscodierer (128), der das Kanalauswahlsignal und die mehreren entsprechenden Kanalauswahlsignale empfängt; einer Zuführschaltungsanordnung (130, 102), die dem Prioritätscodierer (128) zugeordnet ist, um das wenigstens eine Kanalauswahlsignal und die mehreren entsprechenden Kanalauswahlsignale in Übereinstimmung mit einem vorgegebenen Prioritätsdatenwert, der dem Kanalauswahlsignal zugeordnet ist, wenigstens einem DMA-Kanal zuzuführen.
  15. Schaltung nach einem der Ansprüche 11 bis 14, ferner mit einer Schaltungsanordnung (129) zum Kombinieren der mehreren jeweiligen Kanalauswahlsignale, um ein logisch ODER-verknüpftes Vergleichsübereinstimmungssignal (132) für eine wenigstens einem der DMA-Kanäle zugeordnete Empfängersteuerlogik (102) zu schaffen.
  16. Schaltung nach einem der Ansprüche 11 bis 15, bei der die dem Komparator (110) zugeordnete Schaltungsanordnung ferner eine Schaltungsanordnung umfasst, die einen Wort-0-Feldauswahlregisterinhalt (122) mit einem Wort-0-Vergleichswertregisterinhalt (120) vergleicht.
  17. Schaltung nach einem der Ansprüche 11 bis 15, bei der die dem Komparator (110) zugeordnete Schaltungsanordnung ferner eine Schaltungsanordnung umfasst, die einen Wort-1-Feldauswahlregisterinhalt (126) mit einem Wort-1-Vergleichswertregisterinhalt vergleicht.
  18. Schaltung nach einem der Ansprüche 11 bis 15, bei der die Vergleichsschaltung den Abschnitt des Datenpakets, der ein Wort-0 und ein Wort-1 eines empfangenen Datenpakets enthält, mit einer Übereinstimmungsdatenmenge vergleicht.
  19. Schaltung nach einem der Ansprüche 11 bis 18, bei der die Vergleichsschaltungsanordnung ferner eine Schaltungsanordnung umfasst, die den Abschnitt des Datenpakets mit einer Übereinstimmungsdatenmenge vergleicht, wobei die Übereinstimmungsdatenmenge einen erwarteten Wert für ein Wort-0 und für ein Wort-1 enthält.
  20. Personalcomputersystem, mit: wenigstens einem Peripheriegerät (14), das einen Datenpaket-Übertragungsbus verwendet; einem Computer (12), der umfasst: eine Host-CPU (44), die einen PCI-Bus (24) umfasst; und eine PCI-Schnittstellenvorrichtung (20), die eine Schnittstelle zwischen dem PCI-Bus und dem Peripheriegerät schafft, wobei die PCI-Schnittstellenvorrichtung eine Schaltung zum Zuweisen eines Datenpakets zu einem DMA-Kanal nach Anspruch 11 umfasst.
  21. System nach Anspruch 20, bei dem die Schaltung ferner eine Schaltungsanordnung (129) umfasst, um die mehreren Kanalauswahlsignale zu kombinieren, um ein logisch ODER-verknüpftes Vergleichsüberinstimmungssignal (132) für eine wenigstens einem der DMA-Kanäle zugeordnete Empfängersteuerlogik (102) zu schaffen.
  22. System nach Anspruch 21, bei dem die Vergleichsschaltungsanordnung ferner eine Schaltungsanordnung (110) umfasst, die einen Wort-0-Feldauswahlregisterinhalt mit einem Wort-0-Vergleichswertregisterinhalt (120) vergleicht.
  23. System nach Anspruch 21, bei dem die Vergleichsschaltungsanordnung ferner eine Schaltungsanordnung (110) umfasst, die einen Wort-1-Feldauswahlregisterinhalt (126) mit einem Wort-1-Vergleichswertregisterinhalt (124) vergleicht.
  24. System nach Anspruch 21, bei dem die Vergleichsschaltungsanordnung ferner eine Schaltungsanordnung umfasst, die den Abschnitt des Datenpakets, das ein Wort-0 und ein Wort-1 eines ankommenden Datenpakets enthält, mit einer Übereinstimmungsdatenmenge vergleicht.
  25. System nach einem der Ansprüche 21 bis 24, bei dem die Vergleichsschaltungsanordnung ferner eine Schaltungsanordnung umfasst, die den Abschnitt des Datenpakets mit einer Übereinstimmungsdatenmenge vergleicht, wobei die Übereinstimmungsdatenmenge einen erwarteten Wert für ein Wort-0 und ein Wort-1 enthält.
DE69731421T 1996-04-26 1997-04-24 Verfahren zum Verknüpfen eines Datenpaketes mit einem Kanal in einem IEEE1394-Datenübertragungssystem Expired - Fee Related DE69731421T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US1684196P 1996-04-26 1996-04-26
US16841 1996-04-26

Publications (2)

Publication Number Publication Date
DE69731421D1 DE69731421D1 (de) 2004-12-09
DE69731421T2 true DE69731421T2 (de) 2005-11-10

Family

ID=21779267

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69731421T Expired - Fee Related DE69731421T2 (de) 1996-04-26 1997-04-24 Verfahren zum Verknüpfen eines Datenpaketes mit einem Kanal in einem IEEE1394-Datenübertragungssystem

Country Status (7)

Country Link
US (1) US5948080A (de)
EP (1) EP0803819B1 (de)
JP (1) JPH1074175A (de)
KR (1) KR970072827A (de)
DE (1) DE69731421T2 (de)
SG (1) SG77135A1 (de)
TW (1) TW386208B (de)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219697B1 (en) * 1997-05-02 2001-04-17 3Com Corporation Method and apparatus for operating the internet protocol over a high-speed serial bus
GB9720811D0 (en) * 1997-09-30 1997-12-03 Sgs Thomson Microelectronics Dual port buffer
US6298406B1 (en) * 1997-10-24 2001-10-02 Sony Corporation Method of and apparatus for detecting direction of reception of bus packets and controlling direction of transmission of bus packets within an IEEE 1394 serial bus node
US6188699B1 (en) * 1997-12-11 2001-02-13 Pmc-Sierra Ltd. Multi-channel encoder/decoder
US6209070B1 (en) * 1998-03-20 2001-03-27 International Business Machines Corporation System for multiple data transfer operations
US6134617A (en) * 1998-04-03 2000-10-17 Lsi Logic Corporation Method and apparatus for managing access to a loop in a data processing system
WO1999059296A1 (fr) * 1998-05-12 1999-11-18 Sony Corporation Machine de traitement des donnees, procede de traitement des donnees, systeme de traitement des donnees, et support y relatif
US6148357A (en) * 1998-06-17 2000-11-14 Advanced Micro Devices, Inc. Integrated CPU and memory controller utilizing a communication link having isochronous and asynchronous priority modes
US6202116B1 (en) 1998-06-17 2001-03-13 Advanced Micro Devices, Inc. Write only bus with whole and half bus mode operation
US6199132B1 (en) 1998-06-17 2001-03-06 Advanced Micro Devices, Inc. Communication link with isochronous and asynchronous priority modes
US6151651A (en) * 1998-06-17 2000-11-21 Advanced Micro Devices, Inc. Communication link with isochronous and asynchronous priority modes coupling bridge circuits in a computer system
US6532019B1 (en) 1998-06-17 2003-03-11 Advanced Micro Devices, Inc. Input/output integrated circuit hub incorporating a RAMDAC
US6263390B1 (en) * 1998-08-18 2001-07-17 Ati International Srl Two-port memory to connect a microprocessor bus to multiple peripherals
US6336179B1 (en) 1998-08-21 2002-01-01 Advanced Micro Devices, Inc. Dynamic scheduling mechanism for an asynchronous/isochronous integrated circuit interconnect bus
US6122189A (en) * 1998-10-02 2000-09-19 Rambus Inc. Data packet with embedded mask
US6269413B1 (en) * 1998-10-30 2001-07-31 Hewlett Packard Company System with multiple dynamically-sized logical FIFOs sharing single memory and with read/write pointers independently selectable and simultaneously responsive to respective read/write FIFO selections
US6304936B1 (en) * 1998-10-30 2001-10-16 Hewlett-Packard Company One-to-many bus bridge using independently and simultaneously selectable logical FIFOS
US6470410B1 (en) 1998-11-23 2002-10-22 Advanced Micro Devices, Inc. Target side concentrator mechanism for connecting multiple logical pipes to a single function utilizing a computer interconnection bus
US6690676B1 (en) 1998-11-23 2004-02-10 Advanced Micro Devices, Inc. Non-addressed packet structure connecting dedicated end points on a multi-pipe computer interconnect bus
US6421751B1 (en) 1998-11-23 2002-07-16 Advanced Micro Devices, Inc. Detecting a no-tags-free condition in a computer system having multiple outstanding transactions
US6457084B1 (en) 1998-11-23 2002-09-24 Advanced Micro Devices, Inc. Target side distributor mechanism for connecting multiple functions to a single logical pipe of a computer interconnection bus
US6457081B1 (en) 1998-11-23 2002-09-24 Advanced Micro Devices, Inc. Packet protocol for reading an indeterminate number of data bytes across a computer interconnection bus
US6618782B1 (en) 1998-11-23 2003-09-09 Advanced Micro Devices, Inc. Computer interconnection bus link layer
US6611891B1 (en) 1998-11-23 2003-08-26 Advanced Micro Devices, Inc. Computer resource configuration mechanism across a multi-pipe communication link
US6499079B1 (en) 1998-11-23 2002-12-24 Advanced Micro Devices, Inc. Subordinate bridge structure for a point-to-point computer interconnection bus
US6633926B1 (en) * 1998-11-30 2003-10-14 Matsushita Electric Industrial Co., Ltd. DMA transfer device capable of high-speed consecutive access to pages in a memory
KR20000039742A (ko) * 1998-12-15 2000-07-05 서평원 에이티엠 셀 버스 모니터링 방법
US6519265B1 (en) * 1999-05-28 2003-02-11 Sony Corporation System and method for context switching in an electronic network
US6169745B1 (en) * 1999-06-18 2001-01-02 Sony Corporation System and method for multi-level context switching in an electronic network
JP2003506793A (ja) * 1999-08-09 2003-02-18 クロス マッチ テクノロジーズ, インコーポレイテッド インターフェイスケーブルを介して位置アドレスおよびラインスキャンデータを有するパケットを送信するシステムおよび方法
US6529979B1 (en) * 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus for a high-speed serial communications bus protocol with positive acknowledgement
DE69940781D1 (de) * 1999-12-30 2009-06-04 Sony Deutschland Gmbh Schnittstellenverbindungsschicht- Einrichtung zum Aufbau eines verteilten Netzwerks
JP2001230821A (ja) * 2000-02-16 2001-08-24 Sony Corp データ中継装置および方法、並びに提供媒体
JP2001244952A (ja) * 2000-02-29 2001-09-07 Sony Corp 通信制御装置
US20010046231A1 (en) * 2000-04-20 2001-11-29 Masahide Hirasawa Communication control apparatus
US6643728B1 (en) * 2000-05-30 2003-11-04 Lexmark International, Inc. Method and apparatus for converting IEEE 1284 signals to or from IEEE 1394 signals
US6697887B1 (en) * 2000-06-14 2004-02-24 Advanced Micro Devices, Inc. System and method for interfacing between a media access controller and a number of physical layer devices using data addressing
JP3748376B2 (ja) 2000-08-22 2006-02-22 松下電器産業株式会社 送信装置、ソースパケット生成装置、パケット形態決定方法、及び記録媒体
FR2813410B1 (fr) * 2000-08-31 2003-07-18 Canon Kk Procede de transfert et de formatage de donnees et dispositif pour la mise en oeuvre de ce procede
JP4505985B2 (ja) 2000-12-04 2010-07-21 ソニー株式会社 データ転送方法、データ転送装置、通信インターフェース方法および通信インターフェース装置
US6647447B1 (en) * 2000-12-29 2003-11-11 Sony Corporation Allocating isochronous channel numbers to devices on an IEEE-1394 bus
US7194766B2 (en) * 2001-06-12 2007-03-20 Corrent Corporation Method and system for high-speed processing IPSec security protocol packets
DE10132276A1 (de) * 2001-07-04 2003-01-23 Siemens Ag System zum Schalten, Steuern, Programmieren und Bedienen von Kommunikationseinrichtungen
US7613699B2 (en) * 2001-08-03 2009-11-03 Itt Manufacturing Enterprises, Inc. Apparatus and method for resolving security association database update coherency in high-speed systems having multiple security channels
US7171509B2 (en) * 2002-01-09 2007-01-30 International Business Machines Corporation Method and apparatus for host messaging unit for Peripheral Component Interconnect busmaster devices
WO2004099970A1 (en) * 2003-05-08 2004-11-18 Endace Technology Limited Data transmission processing system and method
KR100566266B1 (ko) * 2004-01-20 2006-03-29 삼성전자주식회사 휴대용 단말기와 pc간의 데이터 통신방법
US7747936B2 (en) * 2004-03-02 2010-06-29 Stmicroelectronics Sa Device for protection against error injection into an asynchronous logic block of an elementary logic module
US20060031603A1 (en) * 2004-08-09 2006-02-09 Bradfield Travis A Multi-threaded/multi-issue DMA engine data transfer system
AU2005287981B2 (en) * 2004-08-17 2008-08-28 Nokia Technologies Oy Method and system for forming and transmitting/receiving neighbor base station information in a BWA communication system
DE102004046822A1 (de) * 2004-09-27 2006-03-30 Infineon Technologies Ag Verfahren zum Übertragen von Daten zwischen einem Speicher und mehreren peripheren Einheiten mit Hilfe einer Direct Memory Access-Steuerung sowie entsprechende Direct Memory Access-Steuervorrichtung
US7865624B1 (en) 2005-04-04 2011-01-04 Oracle America, Inc. Lookup mechanism based on link layer semantics
US7843926B1 (en) * 2005-04-05 2010-11-30 Oracle America, Inc. System for providing virtualization of network interfaces at various layers
US7797467B2 (en) * 2005-11-01 2010-09-14 Lsi Corporation Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
JP4530971B2 (ja) * 2005-11-07 2010-08-25 株式会社ソニー・コンピュータエンタテインメント 起動処理装置、dma転送システム、dma転送方法
WO2008068612A1 (en) * 2006-12-08 2008-06-12 Marvell World Trade Ltd. System and method for peripheral device communications
US9367496B2 (en) * 2007-02-28 2016-06-14 Nec Corporation DMA transfer device and method
US8125936B2 (en) * 2007-03-08 2012-02-28 Marvell International Ltd. Low power data streaming
US8001285B1 (en) 2007-12-11 2011-08-16 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for reducing host processor activity during interaction with peripheral devices
US9032113B2 (en) * 2008-03-27 2015-05-12 Apple Inc. Clock control for DMA busses
US20100064072A1 (en) * 2008-09-09 2010-03-11 Emulex Design & Manufacturing Corporation Dynamically Adjustable Arbitration Scheme
US9152483B2 (en) 2009-01-16 2015-10-06 F5 Networks, Inc. Network devices with multiple fully isolated and independently resettable direct memory access channels and methods thereof
US8843651B2 (en) * 2009-06-30 2014-09-23 Oracle America, Inc. Software aware throttle based flow control
US8447897B2 (en) * 2011-06-24 2013-05-21 Freescale Semiconductor, Inc. Bandwidth control for a direct memory access unit within a data processing system
US9128925B2 (en) 2012-04-24 2015-09-08 Freescale Semiconductor, Inc. System and method for direct memory access buffer utilization by setting DMA controller with plurality of arbitration weights associated with different DMA engines
US20140019650A1 (en) * 2012-07-10 2014-01-16 Zhi Bin Li Multi-Write Bit-Fill FIFO
CN104123252A (zh) * 2013-04-26 2014-10-29 韩国科亚电子股份有限公司 多通道直接存储器存取控制器及其控制方法
JP6176058B2 (ja) 2013-10-29 2017-08-09 株式会社ソシオネクスト ダイレクトメモリアクセス制御装置、その制御方法、及び情報処理システム
JP6294732B2 (ja) * 2014-03-31 2018-03-14 株式会社メガチップス データ転送制御装置及びメモリ内蔵装置
US20150324136A1 (en) * 2014-05-07 2015-11-12 Lsi Corporation Storage system having fifo storage and reserved storage
EP3001322B1 (de) * 2014-09-29 2018-08-08 F5 Networks, Inc Netzwerkvorrichtungen mit mehreren vollisolierten und unabhängig rücksetzbaren DMA-Kanälen und Verfahren dafür
CN105117358B (zh) * 2015-08-18 2018-05-29 广东威创视讯科技股份有限公司 一种dma数据传输方法及装置
US11855898B1 (en) 2018-03-14 2023-12-26 F5, Inc. Methods for traffic dependent direct memory access optimization and devices thereof
TWI782694B (zh) * 2021-09-06 2022-11-01 智原科技股份有限公司 時序調整電路、時序不對稱消除方法及接收電路

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5103461A (en) * 1989-06-29 1992-04-07 Symbol Technologies, Inc. Signal quality measure in packet data communication
JP2833796B2 (ja) * 1989-10-11 1998-12-09 日本電気株式会社 バス調停装置
US5491802A (en) * 1992-05-29 1996-02-13 Hewlett-Packard Company Network adapter for inserting pad bytes into packet link headers based on destination service access point fields for efficient memory transfer
US5434976A (en) * 1992-09-28 1995-07-18 Standard Microsystems Corporation Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers
US5450551A (en) * 1993-05-28 1995-09-12 International Business Machines Corporation System direct memory access (DMA) support logic for PCI based computer system
US5675732A (en) * 1995-05-08 1997-10-07 Lucent Technologies Inc. Dynamic channel assignment for TCP/IP data transmitted via cable television channels by managing the channels as a single sub network
US5606561A (en) * 1995-07-28 1997-02-25 Motorola, Inc. Method, device/microprocessor, and computer software for providing packet fragmentation for fair, efficient downlink transmission with low packet delay
US5752076A (en) * 1995-08-31 1998-05-12 Intel Corporation Dynamic programming of bus master channels by intelligent peripheral devices using communication packets
US5768267A (en) * 1995-10-18 1998-06-16 Telefonaktiebolaget Lm Ericsson Method for system registration and cell reselection
US5701302A (en) * 1995-10-25 1997-12-23 Motorola, Inc, Method and apparatus for adaptively companding data packets in a data communication system

Also Published As

Publication number Publication date
SG77135A1 (en) 2000-12-19
US5948080A (en) 1999-09-07
EP0803819A3 (de) 2002-01-09
EP0803819A2 (de) 1997-10-29
JPH1074175A (ja) 1998-03-17
KR970072827A (ko) 1997-11-07
EP0803819B1 (de) 2004-11-03
TW386208B (en) 2000-04-01
DE69731421D1 (de) 2004-12-09

Similar Documents

Publication Publication Date Title
DE69731421T2 (de) Verfahren zum Verknüpfen eines Datenpaketes mit einem Kanal in einem IEEE1394-Datenübertragungssystem
US5996032A (en) System for writing a plurality of data bits less than from the total number of bits in a data register using a single register write operation
US6333938B1 (en) Method and system for extracting control information from packetized data received by a communications interface device
US6006286A (en) System for controlling data packet transfers by associating plurality of data packet transfer control instructions in packet control list including plurality of related logical functions
US5983301A (en) Method and system for assigning a direct memory access priority in a packetized data communications interface device
US6081852A (en) Packet data transferring system for autonomously operating a DMA by autonomous boot mode select signal wherein the DMA is enabled to at least one program control list
DE69723726T2 (de) Anwendungsprogrammierungsschnittstelle für Datenübertragung und Busverwaltung einer Busstruktur
EP2553590B1 (de) Verfahren zur übertragung von daten über einen canopen-bus
DE60309391T2 (de) Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren
DE69916583T2 (de) Medienspeichervorrichtung mit eingebettetem datenfilter zur dynamischen datenverarbeitung während lese- und schreiboperationen
DE69531015T2 (de) Datenübertragungssystem und Verfahren
DE69936225T2 (de) Gleichzeitige serielle verbindung zur integrierung von funktionellen blöcken in eine integrierte schaltungsvorrichtung
DE60003387T2 (de) Direktspeicherzugriffssteuerung in einem rechnersystem
CA2247341C (en) Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US6947442B1 (en) Data transfer control device and electronic equipment
DE69935940T2 (de) Zielknoten, Datenkommunikationssystem, Kontrollverfahren eines Zielknotens und Verfahren zum Betreiben eines Datenkommunikationssystems
DE19805799C2 (de) Datensendeapparat und Datenempfangsapparat
DE69918053T2 (de) Datenübertragungs-steuervorrichtung und elektronische vorrichtung
US6810445B1 (en) Data transfer control device and electronic equipment
KR20010080097A (ko) 프로그램 위치에 프로세싱 요소를 디스패칭하기 위한 방법및 장치
US6904475B1 (en) Programmable first-in first-out (FIFO) memory buffer for concurrent data stream handling
DE60034398T2 (de) Verfahren zur Datenübertragungsverwaltung
EP0803803B1 (de) Verfahren zur Konfiguration eines Datenpaketübertragungsgerätes
DE60215997T2 (de) Vorrichtung zur Ausgabe von Befehlen an einer seriellen Hochgeschwindigkeitschnittstelle
EP0803821A2 (de) DMA-Kanalzuordnung in einem Datenpaketübertragungsgerät

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee