DE60129448T2 - Busbrücke mit einem Burst-Übertragungsmodebus und einem Einzel-Übertragungsmodebus - Google Patents

Busbrücke mit einem Burst-Übertragungsmodebus und einem Einzel-Übertragungsmodebus Download PDF

Info

Publication number
DE60129448T2
DE60129448T2 DE60129448T DE60129448T DE60129448T2 DE 60129448 T2 DE60129448 T2 DE 60129448T2 DE 60129448 T DE60129448 T DE 60129448T DE 60129448 T DE60129448 T DE 60129448T DE 60129448 T2 DE60129448 T2 DE 60129448T2
Authority
DE
Germany
Prior art keywords
dma
data
bus
register
mode bus
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 - Lifetime
Application number
DE60129448T
Other languages
English (en)
Other versions
DE60129448D1 (de
Inventor
David Windlesham Kent
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.)
Renesas Electronics Europe Ltd
Original Assignee
Renesas Electronics Europe Ltd
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 Renesas Electronics Europe Ltd filed Critical Renesas Electronics Europe Ltd
Application granted granted Critical
Publication of DE60129448D1 publication Critical patent/DE60129448D1/de
Publication of DE60129448T2 publication Critical patent/DE60129448T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Description

  • Die vorliegende Erfindung betrifft eine Computersystemkomponente.
  • US-B-6 247 086 beschreibt einen Brückenchip für eine Komponente für eine periphere Schnittstelle (PCI) zur Kommunikation von Anweisungsdaten zwischen einem primären PCI-Bus und einem sekundären PCI-Bus. Die US-A-5 941 960 offenbart ein System, bei dem eine Host-zu-PCI-Brückenlokig und eine Datenpfadeinheit (DPU) zwischen einem Host-Bus und einem PCI-Bus vorgesehen sind, so dass die Konvertierung des Nicht-Burstmodus-Schreiben von einer CPU in ein Burstmodus-Schreiben auf den PCI-Bus ermöglicht ist. In der US-B-6 298 407 ist eine PCI-Brücke beschrieben, deren Leistung verbessert werden kann.
  • Es wurde bereits vorgeschlagen, einen System-Bus oder einen lokalen Bus in parallele schnelle und langsame Busse aufzuteilen bzw. zu gabeln. Damit ist der Vorteil verbunden, dass die tatsächliche Geschwindigkeit des schnellen Bus nicht auf die Geschwindigkeit der darauf zugreifenden langsamen Einrichtungen reduziert wird. Weiterhin unterstützen das System und die schnellen Busse typischerweise den Datentransfer im Burstmodus. Falls diese Busse mit relativ langsamen Einrichtungen benutzt werden, müssen Sie beide Einzelübertragungs-Modi unterstützen, oder die langsamen Einrichtungen müssen mit ihren eigenen Mitteln versehen werden, um die Bursts aufzubauen oder zu zerlegen.
  • Es ist das Ziel der vorliegenden Erfindung diese Probleme zu beheben.
  • Ein Bauteil für ein Computersystem nach der vorliegenden Erfindung ist ein Burstmodus-Datenübertragungsproxy zum Überbrücken eines ersten Bus, der in einem Burstmodus betreibbar ist, mit einem Einzel-Übertragungsmodusbus, mit:
    aus der Entfernung programmierbaren Kontrollregistermitteln;
    einer Mehrzahl von Pufferspeichern (zum Beispiel FIFO's, die in einem RAM implementiert sind) zum Zwischenspeichern von Datenübertragungen zwischen einem Burstmodusbus und einem Einzel-Übertragungsmodusbus;
    einer ersten Burstmodusbus-Schnittstelle, die in Abhängigkeit von Kontrolldaten in den Registermitteln betreibbar ist, um die Pufferspeicher mit einer ersten Burstmodusbus-Schnittstelle zu verbinden;
    einer zweiten Burstmodusbus-Schnittstelle, die in Abhängigkeit von Kontrolldaten in den Registermitteln betreibbar ist, um die Pufferspeicher mit einer zweiten Burstmodusbus-Schnittstelle zu verbinden; und
    einer Einzel-Übertragungsmodus(bus)-Schnittstelle, die in Abhängigkeit von Kontrolldaten in den Registermitteln betreibbar ist, um die Pufferspeicher mit einem Einzel-Übertragungsmodusbus zu verbinden.
  • Die Pufferspeicher bedeuten, dass die Einrichtungen an dem Einzel-Übertragungsmodusbus keine eigenen Pufferspeicher für die Datenbursts haben müssen.
  • Vorzugsweise benutzen die erste Burstmodusbus-Schnittstelle und die Einzel-Übertragungsmodus-Schnittstelle, einen Anschluß des RAM (random access memeory = Speicher mit wahlfreiem Zugriff), wobei der RAM, der die Pufferspeicher ausbildet, ein RAM mit zwei Anschlüssen für den Zugriff ist, sowie die zweite Burstmodusbus-Schnittstelle den anderen Anschluß des RAM benutzt. Weiter bevorzugt sind die Anordnungen und die Größen der FIFO's (first in, first out = zuerst hinein, zuerst heraus) in dem RAM durch Daten in den Kontrollregistern definiert. Damit sind die FIFO's rekonfigurierbar und können an sich verändernde Umstände angepaßt werden.
  • Vorzugsweise ist die erste Burstmodusbus-Schnittstelle konfigurierbar, nämlich durch die Kontrollregistermittel, so dass eine entfernt liegende Einrichtung einen Burst (Bitbündelübertragung) von Daten direkt in die Zellen schreiben kann, die einen der Pufferspeicher ausbilden.
  • Vorzugsweise ist die erste Burstmodusbus-Schnittstelle konfigurierbar, nämlich durch die Kontrollregistermittel, so dass eine entfernt liegende Einrichtung einen Burst (Bit bündelübertragung) von Daten direkt aus den Zellen lesen kann, die einen der Pufferspeicher ausbilden.
  • Vorzugsweise sind die Burstmodusbus-Schnittstellen mittels der Kontrollregistermittel konfigurierbar, um einen Burst von Daten aus einem der Pufferspeicher auszulesen, und um diese an eine entfernt liegende Adresse zu schreiben, mittels eines Burstmodusbus, wobei die entfernte Adresse und die Pufferspeicher durch Daten in den Kontrollregistermitteln bestimmt sind.
  • Vorzugsweise sind die Burstmodusbus-Schnittstellen mittels der Kontrollregistermittel konfigurierbar, um einen Burst von Daten von einer entfernt liegenden Adresse mittels eines Burstmodusbus auszulesen, und um diese in einen der Pufferspeicher zu schreiben, wobei die entfernte Adresse und die Pufferspeicher durch Daten in den Kontrollregistermitteln bestimmt sind.
  • Vorzugsweise ist die Einzel-Übertragungsmodusbus-Schnittstelle derart konfiguriert, dass sie Daten aus dem Kopf eines FIFO ausliest und diese an eine entfernt liegende Adresse schreibt, identifiziert durch eine FIFO-zu-Adressen-Umrechnung, die von den Kontrollregistern vorgesehen wird, und zwar über einen Einzel-Übertragungsmodusbus.
  • Vorzugsweise umfasst ein Bauteil für ein Computersystem nach der vorliegenden Erfindung ein Kontrollmittel für den direkten Zugriff auf den Speicher, welches in Antwort auf Anforderungssignale für einen direkten Zugriff auf den Speicher betreibbar ist sowie die Einzel-Übertragungsmodusbus-Schnittstelle in Antwort auf ein Anforderungssignal für den direkten Speicherzugriff, welches die Direkt-Zugriffsmittel auf den Speicher erhalten haben, Daten von einer entfernt liegenden Adresse in einen der FIFO's überträgt, nämlich über einen Einzel-Übertragungsmodusbus. Noch bevorzugter sind die Kontrollregister programmierbar, so dass der FIFO in Abhängigkeit von der Quelle des Zugriffssignals für den direkten Speicherzugriff ausgewählt wird.
  • Vorzugsweise umfasst ein Bauteil für ein Computersystem nach der vorliegenden Erfindung ein Kontrollmittel für den direkten Zugriff auf den Speicher, welches in Antwort auf Anforderungssignale für einen direkten Zugriff auf den Speicher betreibbar ist sowie die Einzel-Übertragungsmodusbus-Schnittstelle in Antwort auf ein Anforderungssignal für den direkten Speicherzugriff, welches die Direkt-Zugriffsmittel auf den Speicher erhalten haben, Daten zu einer entfernt liegenden Adresse von einem der FIFO's überträgt, nämlich über einen Einzel-Übertragungsmodusbus. Noch bevorzugter sind die Kontrollregister programmierbar, so dass der FIFO in Abhängigkeit von der Quelle des Zugriffssignals für den direkten Speicherzugriff ausgewählt wird.
  • Vorzugsweise sind die erste Burstmodusbus-Schnittstelle und die Einzel-Übertragungsmodus-Schnittstelle derart konfiguriert, dass sie die FIFO's für Einzel-Übertragungsmodus-Übertragungen zwischen einem Burstmodusbus, der mit der ersten Burstmodusbus-Schnittstelle verbunden ist, und einem Einzel-Übertragungsmodusbus, der mit der Einzel-Übertragungsmodus-Schnittstelle verbunden ist, umgehen. Weiter bevorzugt unterscheidet die erste Burstmodusbus-Schnittstelle die Einzel-Übertragungsmodus-Übertragungen von den Burstmodus-Übertragungen mittels der zugehörigen Adressensignale. Besonders bevorzugt ist die Einzel-Übertragungsmodus-Schnittstelle konfiguriert, den Zugriff auf einen Einzel-Übertragungsmodusbus zu begrenzen, der damit verbunden ist, für die Einzel-Übertragungsmodus-Übertragungen von einem Burstmodusbus, der mit der ersten Burstmodusbus-Schnittstelle verbunden ist. Noch weiter bevorzugt zählt die Einzel-Übertragungsmodus-Schnittstelle einen Zähler um einen Wert hoch, nämlich in einem vorbestimmten der Kontrollregister, für jeden Zyklus einer Uhr, während dessen eine Einzel-Übertragungsmodus-Übertragung stattfindet, unter Umgehung der FIFO's und verhindert den Zugriff auf den Einzel-Übertragungsmodusbus, wenn der Zähler einen Schwellenwert erreicht, der in einem bestimmten der Kontrollregister definiert ist, sowie der Zähler um Eins erniedrigt wird für jeden Zyklus der Uhr, wenn keine Einzel-Übertragungsmodus-Übertragung stattfindet.
  • Gemäß der vorliegenden Erfindung ist ein Peripherieschaltkreis zum Einsatz in einer Computervorrichtung vorgesehen, wobei der Schaltkreis umfasst:
    ein Bauteil für ein Computersystem nach der vorliegenden Erfindung, mit:
    fernprogrammierbaren Kontrollregistermitteln;
    einer Mehrzahl von Pufferspeichern (z.B. FIFO's, die in einem RAM implementiert sind), um Datenübertragungen zwischenzuspeichern, zwischen einem Burstmodusbus und einem Einzel-Übertragungsmodusbus;
    einer ersten Burstmodusbus-Schnittstelle, die in Abhängigkeit von Kontrolldaten in den Registermitteln zur Verbindung der Pufferspeicher mit einem ersten Burstmodusbus betreibbar ist; und
    einer Einzel-Übertragungsmodusbus-Schnittstelle, die in Abhängigkeit von Kontrolldaten in den Registermitteln zur Verbindung der Pufferspeicher mit einem Einzel-Übertragungsmodusbus betreibbar ist;
    einem ersten Burstmodusbus, der mit der zweiten Burstmodusbus-Schnittstelle des Bauteils des Computersystems verbunden ist;
    einem Einzel-Übertragungsmodusbus, der mit der Einzel-Übertragungsmodusbus-Schnittstelle des Bauteils des Computersystems verbunden ist; und
    einem Schnittstellen-Schaltkreis, um den Peripherieschaltkreis mit dem zweiten Burstmodusbus zu verbinden,
    wobei der Schaltkreis effektiv den ersten Burstmodusbus oder die erste Burstmodusbus-Schnittstelle des Bauteils des Computersystems mit dem zweiten Burstmodusbus verbindet, in Abhängigkeit von einer Adresse, die mit einer Datenübertragung über den Schnittstellen-Schaltkreis assoziiert ist.
  • Vorzugsweise umfasst ein Peripherieschaltkreis nach der vorliegenden Erfindung einen SDRAM (Synchroner Dynamischer RAM), auf den über den ersten Burstmodusbus und/oder ein Untersystem zugegriffen werden kann, welches einen direkten Zugriff auf den ersten Burstmodusbus zur Übertragung von Signaldaten hat und welches direkten Zugriff auf den Einzel-Übertragungsmodusbus zur Übertragung der Kontrolldaten hat und/oder ein Subsystem, welches einen direkten Zugriff auf den Einzel-Übertragungsmodusbus zur Übertragung von sowohl Signaldaten als auch Kontrolldaten hat.
  • Gemäß dem vorliegenden Computersystem, welches eine CPU (zentraler Mikroprozessor), einen Burstmodusbus, auf den von der CPU zugegriffen werden kann und einen Peripherieschaltkreis nach der vorliegenden Erfindung umfasst, verbindet der Schnittstellenschaltkreis den Burstmodusbus, auf den von der CPU zugegriffen werden kann, mit dem ersten Burstmodusbus und der Komponente des Computersystems.
  • Ausführungsformen der vorliegenden Erfindung werden im Folgenden beispielhaft und unter Bezugnahme auf die zugehörigen Figuren beschrieben, in denen:
  • 1 ein Blockdiagramm eines ersten Computersystems nach der vorliegenden Erfindung zeigt;
  • 2 ein Blockdiagramm eines zweiten Computersystems nach der vorliegenden Erfindung zeigt;
  • 3 ein Blockdiagramm des grafischen Eingabe-/Ausgabe-Systems zeigt, welches in dem Computersystem nach den 1 und 2 benutzt wird;
  • 4 ein Blockdiagramm der Kontrolleinheit zum Direktzugriff auf den Speicher des grafischen Eingabe-/Ausgabe-Systems nach der 3 zeigt;
  • 5 den Adressraum zeigt, der für den Betrieb der Kontrolleinheit zum Direktzugriff auf den Speicher des grafischen Eingabe-/Ausgabe-Systems nach der 3 relevant ist;
  • 6 ein Flußdiagramm zeigt, in dem der Betrieb der Registerbus-Schnittstelle der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4 erläutert ist;
  • 7 ein Datenflußdiagramm zeigt, in dem der Betrieb eines Computersystems nach der vorliegenden Erfindung erläutert ist;
  • 8 ein Flußdiagramm zeigt, in dem eine Initialisierungsroutine für die Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4 erläutert ist;
  • 9 und 10 Flußdiagramme zeigen, die einen ersten Betriebsmodus der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4 erläutern;
  • 11, 12 und 13 Flußdiagramme zeigen, die einen zweiten Betriebsmodus der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4 erläutern;
  • 14 und 15 einen dritten Betriebsmodus zeigen, und zwar der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4;
  • 16, 17 und 18 einen vierten Betriebsmodus zeigen, und zwar der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4;
  • 19 und 20 einen fünften Betriebsmodus zeigen, und zwar der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4;
  • 21, 22 und 23 einen sechsten Betriebsmodus zeigen, und zwar der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4;
  • 24 und 25 einen siebenten Betriebsmodus zeigen, und zwar der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4;
  • 26, 27 und 28 einen achten Betriebsmodus zeigen, und zwar der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4;
  • 29 und 30 einen neunten und zehnten Betriebsmodus zeigen, und zwar der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4;
  • 31 und 32 einen elften und zwölften Betriebsmodus zeigen, und zwar der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4;
  • 33 und 34 einen dreizehnten, vierzehnten, fünfzehnten und sechzehnten Betriebsmodus zeigen, und zwar der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4;
  • 35 und 36 einen siebzehnten Betriebsmodus zeigen, und zwar der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4;
  • 37 und 38 einen achtzehnten Betriebsmodus zeigen, und zwar der Kontrolleinheit zum Direktzugriff auf den Speicher nach der 4;
  • 39 ein Flußdiagramm zeigt, in dem eine DMA-Vorverarbeitungs-Routine erläutet ist, und
  • 40 ein Flußdiagramm zeigt, in dem eine DMA-Nachbearbeitungs-Routine erläutert ist.
  • Unter Bezugnahme auf die 1 umfasst ein erstes Computersystem, unter anderem ein Hitachi SH4 1, einen zentralen Mikroprozessor 2 (CPU), sowie eine PCI-Brücke 4, ein System-RAM 3, ein grafisches Eingabe-/Ausgabe-System 5, einen Flüssigkristallanzeigeschirm (LCD) 6 und ein UMA SDRAM 7. Die CPU 2, der System-RAM 3 und die PCI-Brücke 4 sind durch einen Systembus 8 miteinander verbunden. Die PCI-Brücke 4 verbindet den Systembus 8 mit einem PCI-Bus 9, an dem das grafische Eingabe-/Ausgabe-System 5 angeschlossen ist. Das Grafik-Eingabe/Ausgabe-System 5 hat einen digitalen Videoausgang zum Anschluß des LCD-Bildschirm 6 und Zugriff auf den UMA SDRAM 7. Das grafische Eingabe-/Ausgabe-System 5 weist zahlreiche Eingangs- und Ausgangs-Anschlüsse auf.
  • Unter Bezugnahme auf die 2 umfasst ein zweites Computersystem, unter anderem ein Hitachi SH 4 1, einen zentralen Mikroprozessor 2 (CPU), einen System-RAM 3, ein grafisches Eingabe-/Ausgabe-System 5, einen Flüssigkeitskristallbildschirm (LCD) 6, und einen UMA SDRAM 7. Die CPU 2, der System-RAM 3 und das grafische Eingabe-/Ausgabe-System 5 sind mittels eines Hitachi-MPX-Bus 8 verbunden.
  • Das grafische Eingabe-/Ausgabe-System 5 weist zahlreiche Eingangs- und Ausgangs-Anschlüsse auf.
  • Unter Bezugnahme auf die 3 umfasst das grafische Eingabe-/Ausgabe-System 5, welches bei beiden der oben beschriebenen Computersystemen benutzt wird, eine PCI/MPX-Schnittstelle 11, eine Kontrolleinheit 12 für den Direktzugriff auf den Speicher, eine Speicher-Schnittstelle 13, eine Grafikmaschine 14, eine Videoeingangs-Schnittstelle 15, eine Schnittstelle 16 für einen digitalen Flachbildschirm, eine ATAPI-Schnittstelle 17 und erste bis zwanzigste erste Eingangs-/Ausgangs-Subsysteme 31, ...51. Ein 32-Bit-Synchron-Hochgeschwindigkeits-Burstmodusbus (99 MHz/100 MHz) 20 (der „Pixelbus" bzw. der „Bildpunktebus") verbindet die PCI/MPX-Schnittstelle 11, die Kontrolleinheit 12 für den Direktzugriff auf den Speicher, die Grafikmaschine 14, die Videoeingangs-Schnittstelle 15, die Schnittstelle 16 für den digitalen Flachbildschirm, und die ATAPI-Schnittstelle 17 sowie die siebzehnten und achtzehnten Eingangs-/Ausgangs-Subsysteme 47 und 48 miteinander. Ein Stromsteuerungs- und Konfigurationssubsystem 52 enthält Register zur Steuerung des Betriebs des grafischen Eingabe-/Ausgabe-Systems 5.
  • Ein synchroner, langsamerer (33 MHz oder 50 MHz, in Abhängigkeit davon, ob der externe Bus ein PCI-Bus oder ein MPX-Bus ist) 32-Bit-Bus 21 (der „Registerbus"), der nicht im Burstmodus arbeitet, verbindet die Kontrolleinheit 12 für den Direktzugriff auf den Speicher, die Grafikmaschine 14, die Schnittstelle 15 für den Videoeingang, die Schnittstelle 16 für den digitalen Flachbildschirm, die ATAPI-Schnittstelle 17 und die Eingangs-/Ausgangs-Subsysteme 31, ...51 miteinander.
  • Der Pixelbus 20 wird benutzt, um Blöcke von Daten zu übertragen, primär Videodaten, aber auch Audiodaten und Programmdaten, nämlich zum und vom UMA SDRAM 7, und zwar mit hoher Geschwindigkeit, während der Registerbus 21 dazu benutzt wird, Daten zu übertragen, die einzelne Worte oder langsame Sequenzen von Worten umfassen. Zum Beispiel wird ein Kontrollsignal, welches ein einziges Wort enthält, zu einem der Eingabe-/Ausgabe-Subsysteme 31, ..., 51 über den Registerbus 21 übertragen. Ähnlich würden langsame Bilddaten von einer seriellen Schnittstelle über den Registerbus 21 als eine Sequenz von Worten in jeweiligen Datenübertragungsoperationen geschickt werden.
  • Die Subsysteme, welche mit dem Pixelbus 20 verbunden sind, sind für ihre DMA („direct memory access” = „Direkter Speicherzugriff") Adressen zum Datentransfer verantwortlich und unterhalten ihre eigenen internen FIFO's, zum Zusammensetzen und Auseinanderlegen der Datenbursts.
  • Der Pixelbus 20 arbeitet mit getrennten Anweisungen und Übertragungsphasen, so dass es ermöglich ist, das eine Anweisung übertragen wird, bevor eine vorhergehende Anweisung ausgeführt worden ist. Der Pixelbus 20 enthält getrennte Schreib- und Lese-Busse, so dass die gleichzeitige Nutzung des Busses für zwei Übertragungen möglich ist. Der Pixelbus 20 ist synchronisiert mit dem PCI-Bus 9 oder dem MPX-Bus 8, welcher halt das grafische Eingabe-/Ausgabe-System 5 in der spezifischen Ausführungsform bedient, sowie die Vermittlung parallel mit Datenübertragungen stattfindet. Jedes Subsystem 12, 13, 14, 15, 16, 17, 47 und 48, welches mit dem Pixelbus 20 verbunden ist, kann als Bus-Master arbeiten bzw. funktionieren.
  • Der Zugriff auf den Pixelbus 20 wird durch einen herkömmlichen Vermittler 53 kontrolliert. Der Vermittlungs-Algorithmus kombiniert feste und runde Robin-Vermittlungen, um sowohl Echtzeitzugriff, zum Beispiel für die Schnittstelle 15 für den Videoeingang, als auch Nicht-Echtzeitzugriff zu ermöglichen, zum Beispiel für die Grafikmaschine 14.
  • Der Registerbus 21 erfordert zwei Uhrzyklen, um ein Lesen oder ein Schreiben auszuführen. Der erste Uhrzyklus ist die Adressphase und der zweite Uhrzyklus ist die Datenphase. Der Registerbus 21 ist synchronisiert mit dem PCI-Bus 9 oder mit dem MPX-Bus 8, welcher auch immer das grafische Eingangs-/Ausgangs-System 5 bedient, und die Vermittlung findet parallel zu den Übertragungen statt. Die Kontrolleinheit 12 für den direkten Zugriff auf den Speicher ist immer der Bus-Master für den Registerbus 21.
  • Die Grafikmaschine 14 arbeitet bei 99 MHz oder 100 MHz, in Abhängigkeit von der Geschwindigkeit des Pixelbus 20 und kann BitBLT ausführen (Quelle + Ziel => Ziel), so dass die logische Kombination des Quellenbereichs mit dem Zielbereich ermöglicht ist. Andere unterstütze Funktionen umfassen:
    • (i) Alpha-Wert zu Farbexpansion, wobei eine Abbildung, die als ein 4 bpp („bits pro Bildpunkt") Intensitätswert beschrieben ist, in eine Farbabbildung konvertiert wird, bei der die resultierenden Pixel bzw. Bildpunkte Verhältnisse der Vordergrundfarbe und der Hintergrundabbildung sind, bei denen die Verhältnisse durch einen 4-Bit-Alpha-Wert definiert sind,
    • (ii) Binäre zu Farbexpansion, bei der ein 1 bpp Bild in eine Farbabbildung konvertiert wird, wobei die Farbe durch die Vordergrund- und die Hintergrundfarbe vorgegeben wird,
    • (iii) Vorab- und Nachher-Hardware-Ausschneiden, bei dem Linien, die vollständig ausserhalb des Auschnittfensters liegen, entfernt werden und dann werden die Linien, die teilweise außerhalb des Ausschnittfensters liegen, entfernt,
    • (iv) Bresenham-Linienziehen,
    • (v) Raster-Operationen,
    • (vi) Strukturierung durch Kacheln eines Ziels mit Kopien einer Quellenabbildung,
    • (vii) Lineare Adressierung,
    • (viii) 8/16 bpp,
    • (ix) Anti-Treppeneffekt-Schriftsätze, indem 16 Stufen von Alpha-Übergängen benutzt werden,
    • (x) Rotation, und
    • (xi) Zoomen, d.h. Vergrößern und Verkleinern.
  • Die Schnittstelle 15 für den Videoeingang umfasst eine ITU-R BT.656 Schnittstelle, die mit 27 MHz arbeitet und die Farbraumkonversion und Fehlerdiffusion von 4:2:2 YCrCb zu RGB 5:6:5 unterstützt. Die Schnittstelle für den Videoeingang kann ungerade oder gerade Felder oder beide Felder festhalten und kann beide Felder gemeinsam in einem einzigen Rahmen bzw. Bild verarbeiten. Ein Unterpixel-Interpolierer ist vorgesehen für die Skalierung der Auflösung. Ein 9-fach abgreifender horizontal programmierbarer Minderungsfilter und ein 2-fach abgreifender vertikaler Interpolierer zum Skalieren (auf und ab) um einen Faktor von drei sind ebenfalls vorgesehen. Darüber hinaus werden Dreifachbilder für die Bildratenkonversion unterstützt.
  • Eine Schnittstelle 16 für einen digitalen Flachbildschirm ist eine 18-Bit-RGB-Schnittstelle, die duale Ebene unterstützt, sowohl 8 als auch 16 bpp, mit einem zusätzlichen Bild-im-Bild auf der Hintergrundebene. Die Vordergrund- und Hintergrund-Ebenen können Alpha-gemischt werden und Farbsättigungsabtastung kann ausgeführt werden. Zwei 64×64 Hardware-Bildschirmzeiger sind vorgesehen. Die Hintergrundebene kann gerollt werden, d.h., dass die Hintergrundebenen-Leinwand größer ist als der sichtbare Bereich der Hintergrundebene, und wird umgeklappt. Automatische Doppel-/Dreifach-Pufferumschaltung ist für die Video-/Grafik-Ebenen vorgesehen. Anzeigeschirme von bis zu 854×480 Pixel werden unterstützt und die Auffrischungsraten sind programmierbar. VSYNCH, HSYNCH und Anzeigeaktivierungssignale sind auch Ausgänge.
  • Die Schnittstelle 13 für den Speicher hat eine Multibankaktivierung für eine reduzierte Vorladung und Aktivierungsverzögerungen und überlappenden SDRAM Anweisungszugriff, obwohl das auch deaktiviert werden kann, um die Wartezeit zu verkürzen, auf Kosten der Bandbreite. Bis zu 128 Mbytes an SDRAM werden unterstützt und die Schnittstelle für den Speicher arbeitet synchron mit dem Pixelbus.
  • Die ATAPI-Schnittstelle 17 hat eine primäre Kanal- und Master/Slave-Unterstützung. Die Schnittstelle für Eingang/Ausgang (E/A) arbeitet mit 3,3 V und den E/A-Modi 0-4, Vielfachwort-DMA-Modi 0-2 und Ultra-DMA-Modi 0-2 werden auch unterstützt.
  • Das erste Subsystem 31 kann konfiguriert werden, indem ein Kontrollregister in der Stromsteuerung und im Konfigurations-Subsystem 52 gesetzt wird, um einerseits zwei Unterbrechungen, zwei pulsweite Modulatoren, zwei serielle Hitachi-Protokollschnittstellen und einen allgemein programmierbaren E/A-Anschluß und eine AVLINK-Schnittstelle andererseits vorzusehen. Die Unterbrechungseingänge wandeln Eingangssignale in eine einzelne Unterbrechung um, für die zentrale Kontrolleinheit für Unterbrechungen, indem die Kanten oder Stufen erkannt werden. Die zwei pulsweiten Modulatoren haben programmierbare Quellenuhrfrequenzen, die Zykluszeiten ab 30 ns mit einem PCI-Bus vorgeben, und ab 20 ns für einen MPX-Bus vorgeben, hinauf bis zu 2 Minuten. Der Hochwert und die Dauer (8 bits) sind ebenfalls programmierbar.
  • Die AVLINK-Schnittstelle kann digitale Audio-/Videodaten senden, organisiert in Paketen mit variabler Länge, und zwar zu einem passenden Audio-/Video-Dekoder. Der Start jedes Pakets kann dem Audio-/Video-Dekoder signalisiert werden und fehlerhafte Pakete können ebenfalls identifiziert werden. Der Audio-/Video-Dekoder kann die Rate kontrollieren, mit der die Daten mittels eines Datenanforderungseingangs an das Modul gesendet werden.
  • Das zweite und dritte Subsystem 32 und 33 kann durch Setzen eines Kontrollregisters in der Stromsteuerung und dem Konfigurationssubsystem 52 konfiguriert werden, um einerseits einen allgemein programmierbaren E/A-Anschluß zu schaffen, und um andererseits einen pulsweiten Modulator zu schaffen, wie oben beschrieben.
  • Das vierte Subsystem kann konfiguriert werden durch Setzen eines Kontrollregisters in der Stromsteuerung und dem Konfigurationssubsystem 52, um einerseits drei Unterbrechungen (interrupts) vorzusehen und um andererseits eine serielle Hitachi-Protokollschnittstelle vorzusehen. Die serielle Hitachi-Protokollschnittstelle kann konfiguriert werden, um entweder im Mastermodus oder im Slavemodus zu arbeiten und hat eine programmierbare Datenrate.
  • Das fünfte Subsystem 35 ist ein Farbraumkonverter, der ein Eingangsvideosignal in YUV oder DELTA YUV aufnehmen kann und der Ausgang ist ein RGB (R:5 bits, G:6 bits, B:5 bits) Signal. Diese Funktion kann nur mit der DMA-Übertragung oder Videodaten genutzt werden.
  • Das sechste Subsystem 36 kann durch Setzen eines Kontrollregisters in der Stromsteuerung und in dem Konfigurationssubsystem 52 konfiguriert werden, um auf der einen Seite eine OS8104-Schnittstelle zu schaffen und um auf der anderen Seite eine Expansionsbusschnittstelle zu schaffen. Sie kann für MOST- oder SRAM-Type-Schnittstellen konfiguriert werden und für eine nicht überwachte Hardware- Flußkontrolle im OS8104-Modus. Die Anbindung weiterer Peripherie ist in dem SRAM-Modus erlaubt.
  • Das siebente Subsystem 37 schafft zwei Hitachi-I2C-Schnittstellen, die durch ein Register in dem Subsystem selber ausgewählt werden können. Jede Schnittstelle kann als ein 7- oder 10-Bit kompatibler Master oder Slave betrieben werden, bei Geschwindigkeiten von bis zu 400 Kbit/Sekunde. Sie unterstützen die Philips-I2C-Schnittstelle und haben programmierbare Uhren, die von der Registerbusuhr abgeleitet werden.
  • Das achte Subsystem 38 schafft einen seriellen Klang. Die serielle Klang-Schnittstelle unterstützt Mehrfachkanäle und komprimierte Daten, programmierbare Rahmengrößen und das Philipsformat.
  • Das neunte Subsystem 39 kann konfiguriert werden durch Setzen eines Kontrollregisters in der Stromsteuerung und dem Konfigurationssubsystem 52, um auf der einen Seite eine HCAN (Hitachi Controller Area Network) Schnittstelle zu schaffen, und um auf der anderen Seite ein UART und eine serielle Hitachi-Protokollschnittstelle zu schaffen. Die HCAN-Schnittstelle unterstützt CAN-Spezifikationen 2.0A und 2.0B, Standard-Daten und entfernt liegende Rahmen (11-Bit Identifizierer), Erweiterte Daten und entfernt liegende Rahmen (29-Bit Identifizierer), 32 unabhängige Nachrichtenspeicher, die ein Standard-(11 Bit) oder erweitertes (29 Bit) Identifizierungsformat benutzen, 31 Mailboxen, programmierbar für die Richtung zum Übertragen oder Empfangen, eine Mailbox nur zum Empfang, Akzeptanzfilterung durch den Identifizierer (Standardnachrichtidentifizierer oder Identifizierer für die erweiterte Nachricht), einen Schlafmodus für niedrigen Energieverbrauch, programmierbare lokale Akzeptanzfiltermasken (Standard- oder erweiterter Indentifizierer), die von allen Mailboxen unterstützt werden, programmierbare CAN-Datenraten von bis zu 1 Mbit/Sekunde, Übertragungsnachrichtenwarteschlangen mit einem internen Prioritätssortierungsmechanismus gegen das Problem der Prioritätsinversion für Echtzeitanwendungen, Datenpufferzugriff ohne Abnahmequittungserfordernisse, 16-Bit Zeitgeber (frei laufend) mit flexiblen Uhrquellen und Vorab-Skalierung, 3 Zeitgeber-Vergleichs-und-Übereinstimmungs-Register, CAN-ID-Vergleichs-Übereinstimmung, 2 Eingabe- Einnahme-Register, Abweichungs-Korrektur-Register, lokale Offset-Register, 4-Bit Basiszykluszähler für zeitgetriggerte Übertragung, Zeitgeber-Vergleichs-Übereinstimmungs-Register mit Unterbrecher-Erzeugung und Zeitgeber-/Zahler-Lösch-/Setz-Fähigkeiten, um geplante Überwachungen der Übertragung/des Empfangs zu unterstützen, monostabile Übertragung zu einer spezifischen Zeit, usw., CAN-ID Vergleichs-/Übereinstimmung mit Zeitgeber-Lösch-/Setzfunktion, plus Eingangsaufnahmeregisterdeaktivierung, wenn ein spezifischer CAN-Rahmen empfangen wird, Eingangsaufnahmeregister, welche für Zeitstempel und globale Synchronisation auf einem CAN-System eingesetzt werden, interagierend mit SOF/EOF des CAN-Rahmens und der CAN-ID-Vergleichs/Übereinstimmung, flexible Zeitstempel für sowohl die Übertragung als auch den Empfang (Zeitstempel programmierbar), zeitgetriggerte Übertragung (periodische Übertragung, unterstützt zusätzlich zur vorfallsgesteuerten Übertragung), sowie Zeitgeberzähler und Basiszykluswert, in einem CAN-Rahmen eingebettet und übertragen.
  • Das zehnte Subsystem 40 schafft einen UART und eine irDA-Schnittstelle, die mittels eines Registers in dem Subsystem selber ausgewählt werden kann. Die irDA-Schnittstelle ist implementiert, indem ein Kanal des UART konfiguriert ist und SIR-kompatibel (langsame irDA:115.2 Kbps) ist.
  • Das elfte und das zwölfte Subsystem 41 und 42 kann konfiguriert werden, indem ein Kontrollregister in der Energie- bzw. Stromsteuerung und dem Konfigurationssubsystem 52 gesetzt wird, um auf der einen Seite eine serielle Klangschnittstelle zu schaffen, wie oben beschrieben und um auf der anderen Seite ein UART vorzusehen.
  • Das dreizehnte Subsystem 43 kann konfiguriert werden, indem ein Kontrollregister in der Stromsteuerung und dem Konfigurationssubsystem 52 gesetzt wird, um auf der einen Seite eine Unterbrechung und zwei UART's und auf der anderen Seite eine AC97-Schnittstelle zu schaffen. Die AC97-Schnittstelle schafft eine digitale Schnittstelle zu einem einzelnen AC97, Version 2.1 Audio-Kodierer-Dekodierer, PIO von den Statuseinschubschlitzen 1 und 2 des Rx-Rahmens, PIO zu den Anweisungsschlitzen 1 und 2 des Tx-Rahmens, PIO von den Datenschlitzen 3 und 4 des Rx- Rahmens, PIO zu den Datenschlitzen 3 und 4 des Tx-Rahmens, wählbare 16-oder-20-Bit DMA von den Datenschlitzen 3 und 4 des Rx-Rahmens, wählbare 16-oder-20-Bit DMA zu den Datenschlitzen 3 und 4 des Tx-Rahmens, Unterstützung für verschiedene Abtastraten durch qualifizierte Schlitzdaten mit Markierungsbits und Antworten auf Rx-Rahmenschlitzanforderungsbits für den Tx-Rahmen, die Erzeugung von Unterbrechungen für Daten fertig/Daten angefordert und Überlauf/Unterlauf, sowie einen 12,3 MHz Datenuhreingang.
  • Das vierzehnte Subsystem 44 umfasst zwei auswählbare Unterbrecher bzw. Unterbrechungen.
  • Das fünfzehnte Subsystem 45 umfasst einen Zeitgeber/Zähler. Das Zeitgeber-/Zähler-Modul umfasst vier programmierbare frei laufende 32-Bit-Zähler und vier Eingabeaufnahme-/Ausgabe-Vergleicher. E/A-Kontakte der Zeitgeber können ganz allgemein für die programmierbare E/A benutzt werden.
  • Das sechzehnte Subsystem 46 umfasst zwei wählbare Pulsweitenmodulatoren, wie oben beschrieben.
  • Das siebenzehnte Subsystem 47 umfasst einen USB-Host und das achtzehnte Subsystem 48 kann als ein USB-Host oder als eine USB-Funktion konfiguriert werden, nämlich mittels eines Registers in dem achtzehnten Subsystem 48. Das USB-Subsystem 47 und 48 unterstützt 1,5 Mbit/Sekunde und 12 Mbit/Sekunde Datenübertragungsrate, USB Version 1.1 für Host und Funktion, sowie die OHCI Version 1.0. Eine 48 MHz Uhr (Takt) ist vorgesehen, entweder über einen externen Uhreneingang oder über einen lokalen Schwingkristall. Übertragungs- und Empfangspufferspeicher sind in dem UMA SDRAM 07 und direkt über den Pixelbus 20 zugreifbar.
  • Das neunzehnte Subsystem 49 umfasst eine Hitachi S/PDIF-Schnittstelle mit separatem Transmitter und Receiver und unterstützt den IEC 60958 Kommunikationsstandard. Der Empfänger bzw. Receiver erfasst automatisch die IEC 6937 Kompressionsmodusdaten.
  • Das zwanzigste Subsystem 50 umfasst eine HCAN-Schnittstelle, wie oben beschrieben.
  • Das einundzwanzigste Subsystem 51 schafft wahlweise durch ein Register in dem Subsystem selber eine serielle Klangschnittstelle oder eine serielle Klangschnittstelle mit einem CD-ROM-Block-Decoder.
  • Die Konfiguration von Subsystemen in Abhängigkeit von dem Register in der Stromsteuerung und dem Konfigurationssubsystem 52 is so, dass maximal 4 Pulsweitenmodulatoren vorhanden sein können, dass maximal drei serielle Hitachi-Protokollschnittstellen vorhanden sein können, und dass maximal drei UART's vorhanden sein können. Bis zu zwei serielle Klangschnittstellen an dem Grafik-E/A-System 6 können als allgemein programmierbare E/A's konfiguriert werden.
  • Ein Unterbrecherkonzentrierer 54 empfängt die Anforderungen für Unterbrechungen von den verschiedenen Subsystemen des grafischen E/A-Systems und leitet diese weiter an einen einzelnen Unterbrechungsanforderungsanschluß der CPU 2.
  • Der Registerbus 21 ist ebenso mit der Speicherschnittstelle 13 verbunden, um Kontrolldaten in die Kontroll-Register 13 der Speicherschnittstelle einzuladen. Die Speicherschnittstelle 13 sieht keinen Zugriff auf das UMA SDRAM 7 und auf den Registerbus 21 vor.
  • Die PCI-/MPX-Busschnittstelle 11 leitet die Datenübertragung von dem externen Bus (PCI-Bus 9 oder MPX-Bus 5) zu dem UMA SDRAM 7, und zwar über den Pixelbus 20, um die Daten von dem externen Bus zu Puffern und um die Bursts aufzufüllen, wann immer möglich. Die Datenübertragungen umfassen die Grafikmaschine 14, die Videoeingangsschnittstelle 15, die Schnittstelle 16 für den digitalen Flachbildschirm, die ATAPI-Schnittstelle 17, und auch das siebzehnte und achtzehnte Subsystem 47 und 48 werden über das UMA SDRAM 7 umgeleitet. Mit anderen Worten ausgedrückt, müssen die Daten von einem dieser Subsysteme in den UMA SDRAM 7 geschrieben werden, bevor auf diese durch die CPU 2 zugegriffen werden kann. Ähnlich muss die CPU 2 Daten schreiben, die für eines dieser Subsysteme vorgesehen ist, und zwar muss die CPU diese Daten in das UMA SDRAM 7 einschreiben. Nichtsdestotrotz können Kontrollcodes zu diesen Subsystemen durchgeleitet werden, mittels des Kontrollers 12 für den direkten Speicherzugriff und mittels des Registerbus 21.
  • Der Direktspeicherzugriffskontroller 12 organisiert den Datentransfer zwischen den DMA-fähigen Subsystemen auf dem Registerbus 21 und mit dem externen Speicher, d.h. dem System-RAM 3 und dem UMA SDRAM 7, oder mit anderen Subsystemen auf dem Registerbus 21. Darüber hinaus unterstützt der Direktspeicherzugriffskontroller 12 vier DMA-Modi, einen Master-DMA-Modus, einen Slave-DMA-Modus, einen Zwischen-Subsystem-DMA-Modus und einen externen DMA-Modus. Der externe DMA-Modus wird nur benutzt, wenn der externe Bus ein MPX-Bus 5 ist. Übertragungen im Master-DMA-Modus zu dem System-RAM 3 sind nicht verfügbar, wenn der externe Bus ein MPX-Bus ist.
  • Im Master-DMA-Modus wirkt der Direktspeicherzugriffskontroller 12 als Busmaster für entweder den externen Bus oder für den Pixelbus 20 und überträgt Daten zwischen einem Subsystem auf dem Registerbus 21 und dem externen Speicher.
  • Im Slave-DMA-Modus wirkt der Direktspeicherzugriffskontroller 12 als Slave für den externen Bus und überträgt Daten zwischen einem Subsystem auf dem Registerbus 21 und einem internen FIFO-DMA-Kanalpuffer (wird später im Detail beschrieben). Die CPU 2 ist verantwortlich für die Übertragung der Daten von einem FIFO-DMA-Kanalpuffer zu dem System-RAM 3, wobei sie PIO-Zugriff (programmierbare E/A) nutzt, unter Einsatz des Burst- oder Einzelzugriffsmodus.
  • Im Zwischen-Subsystem-DMA-Modus überträgt der Direktspeicherzugriffskontroller 12 die Daten zwischen den Subsystemen auf dem Registerbus 21.
  • Im externen DMA-Modus führt der Direktspeicherzugriffskontroller 12 der CPU 2 die DMA-Operation aus, unter Einsatz eines einzigen DMA-Kanals des Direktspeicherzugriffskontrollers 12 und überträgt die Daten zwischen einem Subsystem und dem System-RAM 3.
  • Der DMA-Daten-Transfer passiert immer zwischen einer primären DMA-Adresse und einer sekundären DMA-Adresse. Die primäre DMA-Adresse ist immer eine Registeradresse eines Subsystems auf dem Registerbus 21. Die sekundäre DMA-Adresse ist entweder eine externe Speicheradresse oder eine Registeradresse eines Subsystems auf dem Registerbus 21.
  • Unter Bezugnahme auf die 4 umfasst der Direktspeicherzugriffskontroller 12 sechzehn rekonfigurierbare FIFO's 61, die sechzehn DMA-Kanälen entsprechen, implementiert unter Verwendung eines Blocks an RAM, sowie eine Systemschnittstelle 62 zur Kommunikation mit der PCI-/MPX-Schnittstelle 11, eine Pixelbusschnittstelle 63 zur Kommunikation mittels des Pixelbus 20 und eine Registerbusschnittstelle 64 zur Kommunikation mittels des Registerbus 21. Ein Satz von Registern 65 umfasst DMA-Zähler-Register 66, zur Kontrolle des Betriebs der sechzehn DMA-Kanäle, sowie DMA-Kanal-Register 67, zur Speicherung der Konfigurationsdaten, die die FIFO's 61 definieren und Kontrollregister 68, die Kontrollwerte speichern, die der Direktspeicherzugriffskontroller 12 benutzt. Auf diese Register 65 ist von der Systemschnittstelle, der Pixelbus- und der Registerbus-Schnittstelle 62, 63 und 64 zugreifbar, um deren Operation zu steuern.
  • Der RAM, der die FIFO's implementiert, hat einen dualen Anschluß, wobei ein Anschluß von der Pixelbusschnittstelle 63 genutzt wird. Der andere Anschluß des RAM wird geteilt genutzt, zwischen der Systemschnittstelle 63 und der Registerbusschnittstelle 64, und zwar mittels eines Multiplexers 69.
  • Ein programmierter E/A-(„PIO")-Umgehungskanal 70 ist zwischen der Systemschnittstelle 62 und der Registerbusschnittstelle 64 vorgesehen. Der PIO-Umgehungskanal 70 ermöglicht es der CPU 2 (siehe 1 und 2) mit den Subsystemen zu kommunizieren, die mit dem Registerbus 21 verbunden sind, ohne dabei die FIFO's 61 in Anspruch zu nehmen.
  • Eine Unterbrechereinheit 71 empfängt die verschiedenen Unterbrechungen, die in dem Direktspeicherzugriffskontroller 12 erzeugt werden und gibt eine einzelne Unterbrechung an den Unterbrechungskonzentrierer 54 (3) aus.
  • Unter Bezugnahme auf die 5 umfasst der 32-Bit-Adressraum des Direktspeicherzugriffskontrollers, und zwar in Reihenfolge, von unten her, einen Subsystemadressblock 81, der Adressen enthält, die auf Subsysteme abgebildet werden, die mit dem Registerbus 21 verbunden sind, einen DMA-Kontrollblock 83, der die Adressen der DMA-Kontrollregister enthält, einen DMA-Kanalblock 84, der die Adressen der Register enthält, die die FIFO's 61 definieren, einen DMA-Zählerblock 85, der Register enthält, die Zähler beinhalten, die bei der DMA-Übertragung benutzt werden, und ganz oben einen FIFO-Block 86, der die Adressen der FIFO's 61 enthält.
  • Der Speicher, der jedem Subsystem in dem Subsystemadressblock 81 zugewiesen ist, hängt von der Anzahl der Register und/oder der Menge an Speicher in jedem Subsystem ab. Bei dem vorliegenden Beispiel hat die Grafikmaschine 14 16384 Bytes zugewiesen, der Videoeingang 15 hat 256 Bytes zugewiesen, die Schnittstelle 16 für den digitalen Flachbildschirm hat 4096 Bytes zugewiesen, die ATAPI-Schnittstelle hat 256 Bytes zugewiesen, der UART des zehnten Subsystems 40 hat 32 Bytes zugewiesen und das USB-Host/Funktions-Subsystem 48 hat 1024 Bytes zugewiesen bekommen.
  • Der DMA-Kontrollblock 83 umfasst einen Satz von 4-Byte-Worten, die vorsehen: externe DMA-Auswahl, DMA-Status, DMA-FIFO-Status, DMA-FIFO-Leerung, PIO-Monitor, PIO-Monitor-Status, DMA-Subsystem-Anforderungsstatus, und DMA-Unterbrechungsquellenregister und einunddreissig DMA-Subsystem-Anforderungsadressregister.
  • Der DMA-Kanalblock 84 umfasst vier 4-Byte-Kontrollworte, die als Register für jeden FIFO 61 wirken. Die Register sind die DMA-Startadressenregister, die DMA-Längenregister, die DMA-Kontrollregister und die DMA-RAM-Puffergrößenregister. Die Bits von jedem dieser Register sind wie folgt organisiert:
  • DMA Startadressenregister
  • Diese Register werden nur im Master- und Zwischen-Subsystem-Modus verwendet. Mastermodus
    Bit Bitname Anfangswert R/W Beschreibung
    31 bis 2 Start-Adresse 0 R/W Diese Bits halten die DMA-Startadresse in dem externen Speicher
    1 bis 0 Anforderungs-Nummer 0 R/W Diese Bits sind immer auf Null gesetzt
    Zwischen-Modul-DMA-Modus
    Bit Bitname Anfangswert R/W Beschreibung
    31 bis 5 0 R/W Nicht benutzt
    4 bis 0 Anforderungs-Nummer 0 R/W Diese Bits spezifizieren die sekundäre DMA-Adresse, die indirekt von der DMA-Anforderungsnummer genutzt wird, die mit dem empfangenden Subsystem assoziiert ist. Die aktuelle sekundäre DMA-Adresse ist spezifiziert in den assoziierten Register, welches DMA-Anforderungsnummern auf Adressen zuweist.
    DMA-Längenregister
    Bit Bitname Anfangswert R/W Beschreibung
    31 bis 22 0 R Nicht benutzt
    21 bis 16 Burst 0 R/W Die Anzahl der Langworte, die im FIFO-Kanalpuffer verfügbar ist oder die Anzahl der Langworte an Speicher, die in dem FIFO-Kanalpuffer verfügbar sind, so dass das korrespondierende Burst-Flag gesetzt ist. Die Burst-Größe wird nur genutzt, um den Schwellenwert zu setzen, bei dem das FIFO-Burst-Statusflag in dem DMA-FIFO-Statusregister gesetzt wird. Falls dieses Register auf die halbe Puffergröße gesetzt ist, die in dem relevanten Puffergrößenregister definiert ist, dann funktioniert das Flag als ein Halbvoll- oder Halbleer-Flag oder als Unterbrechung. Das Flag oder die Unterbrechung wirken als Teilvollflag, falls der Kanal auf Schreiben ins Subsystem gesetzt ist und wirken als Teilleerflag, wenn der Kanal auf Lesen vom Subsystem gesetzt ist. Die maximale Burstgröße ist 63 Langworte. Burstgröße ist nur gültig im Slavemodus und im externen DMA-Modus..
    15 bis 2 DMA-Länge 0 R/W DMA-Länge spezifiziert die Länge des DMA-Transfers in Langworten, mit Ausnahme des kontinuierlichen Datentransfers im Slave- und Zwischensub-System-Modus.
    1,0 0 0 R/W Immer 00
  • DMA Kontrollregister
  • Die Kontrollregister für jeden DMA-Kanal, die die Kontrollwerte beinhalten, die den Betrieb des Direktspeicherzugriffskontrollers 12 für einen Transfer steuern, sind wie folgt angeordnet:
    Bit Bitname Anfangswert R/W Beschreibung
    31 bis 22 0 R Nicht benutzt
    20 bis 16 CSEL 0 R/W Kanal-Auswahl (CSEL) Diese Bits spezifizieren die Primäre DMA-Anforderungs-Nummer des DMA-Kanals. Die primäre DMA-Adresse ist in dem assoziierten DMA-Anforderungs-Adressregister angegeben. Die Datentransferrichtung ist in dem DR-Flag von diesem Register spezifiziert. Die sekundäre DMA-Adresse ist in dem DMA-Startadressregister spezifiziert.
    15 ENDD 0 R/W „Endian"-Bytesortierung
    14 ENDS 0 R/W Diese Flags spezifizieren die Datenausrichtung in den externen Speicherbytes der Quellen- und Zieldaten. Falls „Little Endian" spezifiziert ist, so richtet der Direktspeicherzugriffskontroller 12 die Daten „on the fly" wieder aus, mit Ausnahme des Zwischen-Subsystem-DMA-Modus, in dem die Endian-Umwandlung nicht stattfindet. Bit 15: Zieldatenausrichtung (ENDD) Dieses Flag spezifiziert die Sortierung (Endian) der Daten in der Zieladresse. Falls das Ziel nicht der externe Speicher ist, ist dieses Flag nicht gültig und sollte 0 sein. 1: „Big Endian" 0: „Little Endian" Bit 14: Quellendatenausrichtung (ENDS) Dieses Flag spezifiziert die Sortierung (Endian) der Daten in der Quellenadresse. Falls die Quelle nicht der externe Speicher ist, ist dieses Flag nicht gültig und sollte 0 sein. 1: „Big Endian" 0: „Little Endian"
    21 PTEN 0 R/W Unterbrechung ermöglichen
    13 FBEN 0 R/W Diese Flags werden benutzt, um zu spezifizieren, ob
    12 FSEN 0 R/W Anschlußzählerunterbrechung (TC), Subsystem
    11 TCEN 0 R/W Anschlußzähler (PT), FIFO-Status-Unterbrechung (FSEN) und FIFO-Burst-Status-Unterbrechung (FBEN) werden zugewiesen oder nicht, wenn die spezifische Kondition zutrifft. Bit 21: Subsystem Anschlußzähler Unterbrechung aktivieren (PTEN) 1: PT Unterbrechung wird zugewiesen, wenn der DMA-Datentransfer zwischen einem Subsystem auf dem Registerbus 21 und einem FIFO-Kanalpuffer n vervollständigt ist. 0: Subsystem Anschlußzählerunterbrechung ist deaktiviert. Subsystem-Anschlußzählerunterbrechung funktioniert im kontinuierlichen Datentransfermodus nicht. Subsystem-Anschlußzähler funktioniert im Master-DMA-Modus ebenfalls nicht, wobei das DR-Bit gleich 0 ist. In diesen Modi sollte PTEN deaktiviert sein.
    Bit 13: FIFO-Burst-Unterbrechung aktiviert (FBEN) 1: FIFO-Burst-Unterbrechung wird zugewiesen werden, wenn entweder die Burst-Lese- oder die Burst-Schreibe-Bedingung zutrifft für den FIFO-Kanalpuffer. 0: FIFO-Burst-Unterbrechung ist deaktiviert. FBEN Flag funktioniert nur im Slave-DMA-Modus. Mit anderen Worten ausgedrückt, sollte der FBEN deaktiviert sein. Bit 12: FIFO-Status-Unterbrechung aktiviert (FSEN) 1: FIFO-Status-Unterbrechung wird zugewiesen, wenn entweder eine einzelne Lese- oder Schreib-Operation zutrifft, für den FIFO-Kanalpuffer n. 0: FIFO-Status-Unterbrechung ist deaktiviert. FSEN Flag arbeitet nur im Slave-DMA-Modus. So mit anderen Worten ausgedrückt, sollte FSEN deaktiviert sein. Bit 11: Anschlußzähler-Unterbrechung aktiviert (TCEN) 1: Anschlußzähler-Unterbrechung wird zugewiesen, wenn der DMA-Datentransfer zwischen einer externen Speicherstelle und einem FIFO-Kanalpuffer n vervollständigt ist 0: Anschlußzähler-Unterbrechung ist deaktiviert. Anschlußzähler-Unterbrechung funktioniert nur im Master-DMA-Modus, wenn das DR Bit gleich 0 ist oder im kontinuierlichen Datentransfermodus. So sollte TCEN in anderen Modi deaktiviert sein.
    10 DBEN 0 R/W Doppel-Puffer aktiviert (DBEN) Dieses Flag setzt den Datentransfermodus auf entweder kontinuierliche oder fixierte Länge und kann in allen DMA-Modi angewandt werden, mit Ausnahme des externen DMA-Modus. 1: Kontinuierlicher Datentransfermodus 0: Datentransfermodus mit fester Länge Für den Master-DMA-Modus Erfordert DBEN Doppelpuffer im externen Speicher für den kontinuierlichen Datentransfer, jedoch für andere DMA-Modi bedeutet DBEN den kontinuierlichen Datentransfer und benötigt keinen Doppelpuffer. Im kontinuierlichen Datentransfermodus spezifiziert die DMA-Länge, die in dem passenden DMA-Längenregister angegeben ist, nicht die aktuelle Datentransferlänge.
    Im kontinuierlichen Datentransfermodus zählt der Direktzugriffsspeicherkontroller 12 die übertragenen Daten nicht. Somit kann der kontinuierliche Datentransfermodus nur dann benutzt werden, wenn die unten angegebenen Bedingungen zutreffen. Im Master-DMA-Modus, im Slave-DMA-Modus muß das Ziel-Subsystem auf dem Registerbus 21 sowohl einen DMA-Zähler als auch eine Datentransfer-Vervollständigungs-Unterbrechung unterstützen. Das Zählen der Daten sollte sowohl in dem Subsystem auf dem Registerbus 21 als auch in der Software ausgeführt werden. Im Zwischen-Subsystem-DMA-Modus muss das Ziel-Subsystem auf dem Registerbus 21 die DMA-Stopp-Funktion unterstützen. Ob Datenzählung und Daten-Übertragungsvervollständigungs-Unterbrechung notwendig sind oder nicht, hängt von der benutzten Einrichtung. ab.
    Master-DMA-Modus Im kontinuierlichen Datentranfermodus werden die Daten kontinuierlich zwischen dem externen Speicher und einem Subsystem auf dem Registebus 21 übertragen. Der Direkzugriffsspeicherkontroller 12 zykliert kontinuierlich zwischen zwei Puffern in dem externen Speicher, der als zusammenhängender externer Speicherblock angeordnet ist, sowie das Anschlußzählungsereignis am Ende jedes Puffertransfers auftritt und dann automatisch auf den anderen Puffer umschaltet. Die Startadresse und die Pufferlänge sind jeweils in dem DMA-Start-Adressenregister und in dem DMA-Längenregister gesetzt. Die CPU 2 muss aus dem Datenpuffer lesen oder muss in den Datenpuffer schreiben, auf den nicht zugegriffen wird. Beide Puffer haben die gleiche Länge, Puffer 1 ist an der Adresse (passende DMA-Startadresse) und Puffer 2
    ist an der Adresse (passende DMA-Start-Adresse + passende DMA-Länge). Die DMA-Länge sollte größer sein als die FIFO-Kanalpuffergröße. Im Transfermodus mit fixer Länge tritt das Anschluß-Zählerereignis auf, wenn der DMA-Adressenzähler das Ende des Puffers erreicht und der Transfer wird dann angehalten. Slave-DMA-Modus Beim kontinuierlichen Datentransfermodus ist die Datenübertragung zwischen einem FIFO 61 und einem Subsystem auf dem Registerbus 21 kontinuierlich. Das Löschen der DBEN Flags hält die Datenübertragung an, sobald die Anzahl der Bytes übertragen worden sind, die in dem DMA-Längenregister angegeben sind. Im Datenübertragungsmodus mit fixer Länge werden DMA n Längen übertragen. Zwischen-Subsystem-DMA-Modus Im Datenübertragungsmodus mit kontinuierlicher Übertragung werden die Daten zwischen zwei Subsystemen auf dem Registerbus 21 kontinuierlich transportiert. Das Löschen der DBEN Flags hält den Datentransfer an, nachdem die Anzahl der Bytes, die in dem passenden DMA-Längenregister angegeben sind, übertragen worden sind.
    Im Datenübertragungsmodus mit fixer Länge wird die Anzahl an Bytes übertragen, die in dem DMA-Längenregister angegeben ist. Diese Datenübertragung wird nur fortgesetzt, wenn das Quellen-Subsystem auf dem Registerbus 21 warten kann, bis der FIFO-Speicher verfügbar ist, da der Direktzugriffsspeicherkontroller 12 auf die DMA-Anforderung von dem Quellen-Subsystem an dem Registerbus 21 nicht antworten wird, wenn der FIFO 61 voll ist. Ebenfalls sollte das Ziel-Subsystem an dem Registerbus 21 in der Lage sein zu warten, bis der FIFO 61 nicht leer ist. Jegliche Ablaufkontrolle zwischen dem Quellen- und dem Ziel-Subsystem auf dem Registerbus 21 wird außerhalb des Direktzugriffspeicherkontrollers 12 ausgeführt. Externer DMA-Modus Der Datentransfermodus ist nicht relevant. Das DBEN Flag sollte 0 sein.
    9 ML 0 R/W Externe Speicherstelle (ML) Im Master-DMA-Modus spezifiziert dieses Flag, wo der externe Speicher angeschlossen ist. Dieses Flag wird in den anderen DMA-Modi ignoriert. 1: System-Speicher verbunden mit dem PCI-/MPX-Bus 8, 9 0: Grafikspeicher verbunden mit der Speicher-Schnittstelle 13, über den Pixelbus 20.
    8 RBEN 0 R/W Registerbus aktiviert (RBEN) Falls dieses Flag auf 1 gesetzt Ist, dann befindet sich der Datentransfer im Zwischen-Subsystem-DMA-Modus für den korrespondierenden DMA-Kanal. 1: Spezifiziert den Zwischen-Subsystem-DMA-Modus, d.h. zwischen den Subsystemen an dem Registerbus 21. 0: Spezifiziert, dass der DMA zwischen einem Subsystem auf dem Registerbus 21 und dem externen Speicher vorliegt Das RBEN Flag ist 0 in den Modi, die nicht der Zwischen-Subsystemmodus sind. Endian-Umwandlung wird nicht unterstützt in dem Zwischen-Subsystem-DMA-Modus. Falls das RBEN Flag auf 1 gesetzt ist, sollte das RTRA Flag auch auf 1 gesetzt sein.
    7 MM 0 R/W Mastermodus (MM) Jeder Kanal in dem Direktzugriffsspeicherkontroller 12 kann konfiguriert werden für entweder den Master- oder den Slave-DMA-Modus beim PCI-/MPX-Busbetrieb. Im Master-DMA-Modus steuert der Direktzugriffsspeicherkontroller 12 die Übertragung der Daten zwischen einem FIFO 61 und dem externen Speicher. Im Slave-DMA-Modus kann auf einen FIFO 61 direkt durch entweder die CPU 2 oder durch eine Einrichtung auf dem PCI-Bus 9 zugegriffen werden, falls benutzt. Im Slave-DMA-Modus ist die externe Einrichtung verantwortlich für die Steuerung des Datentransfers und der Kanal-Startadressenregisterwert wird ignoriert. 1: DMA-Kanal ist im Master-DMA-Modus 0: DMA-Kanal ist nicht im Master-DMA-Modus Das MM Flag ist 0 im Zwischen-Subsystem-DMA-Modus und im externen DMA-Modus
    6 DTRA 0 R/W Starte Master-DMA-Transfer (DTRA) Im Master-DMA-Modus, wenn das Flag auf 1 gesetzt ist, initialisiert der Direktzugriffspeicherkontroller 12 den DMA-Datentransfer von einem FIFO 61 zu dem externen Speicher. Master-DMA kann in beiden Datentransfermodi arbeiten, die durch das DBEN Flag spezifiziert sind. Datentransfer mit fixer Länge (DBEN = 0) Schreiben einer „1" In das DTRA Flag startet den Master-DMA-Transfer. Dieses Flag wird automatisch gelöscht und auf 0 gesetzt, am Ende des Transfers, wenn der spezifizierte DMA-Transfer vervollständigt ist. Das Löschen dieses Flags hält den Datentransfer an. Falls eine DMA-Länge von 0 spezifiziert ist, wird dieses Flag gelöscht, auf 0 gesetzt, ohne DMA-Transfer.
    1: Starte Master-DMA-Transfer zwischen einem FIFO 61 und dem externen Speicher 0: Halte den Datentransfer an und setze die Adressenzähler zurück (nicht notwendig im der normalen DMA-Ausführung) Kontinuierlicher Datentransfer (DBEN = 1) Schreiben einer „1" in das DTRA Flag startet den Master-DMA-Transfer, wobei der Transfer solange ausgeführt wird, bis das DTRA Flag durch die CPU 2 auf 0 gesetzt wird. Der Datentransfer hält dann an, am Ende des Puffers, der gerade übertragen wird, sowie die Adresszähler auf ihren anfänglichen Zustand gesetzt werden. Um den kontinuierlichen Datentransfer zu stoppen, sollte die DMA-Stopp-Operation ausgeführt werden. 1: Starte Master-DMA-Transfer zwischen einem FIFO 61 und dem externen Speicher 0: Halte den Datentransfer am Ende des aktuellen Puffers an und setze die Adressenzähler zurück. Sowohl im Slave-DMA-Modus als auch im Zwischen-Subsystem-Modus als auch im externen DMA-Modus setze das DTRA Flag auf 0
    5 DR 0 R/W Richtung (DR) Das Richtungsflag spezifiziert die Richtung des Datentransfers zwischen der primären DMA-Adresse, spezifiziert in der CSEL, und der sekundären DMA-Adresse, spezifiziert in dem passenden DMA-Startadressenregister.
    4 RTRA 0 R/W Starte Registerbustransfer (RTRA) Schreiben einer „1" in dieses Flag initialisiert den DMA-Datentransfer auf dem Registerbus 21. Im Datentransfermodus mit fixer Länge, wird das RTRA Flag auf 0 gesetzt, wenn der Datentransfer vervollständigt ist. Im kontinuierlichen Datentransfermodus wird das RTRA Flag nicht auf 0 gesetzt, und zwar durch den Direktzugriffsspeicherkontroller 12. Falls RTRA auf 0 gesetzt ist während eines DMA, dann wird die Übertragung angehalten. Falls die DMA auf halbem Weg in der Übertragung angehalten wird, dann könnten Daten in der FIFO 61 zurück bleiben. Das RTRA Flag steuert die Übertragung der Daten über den Registerbus 21. Für diesen Fall, dass Daten von einem Subsystem auf den Registerbus 21 übertragen werden, startet der Transfer sobald dieses Flag auf 1 gesetzt wird und setzt sich fort, bis der FIFO 61 voll ist. Für den Fall eines Datentransfers zu einem Subsystem auf dem Registerbus 21, passiert das nur, wenn dieses Flag auf 1 gesetzt ist und es Daten im FIFO-Kanalpuffer gibt. 1: Starte Registerbus-DMA-Transfer 0: Halte den Datentransfer an und setze die Adresszähler zurück (nicht notwendig in der normalen DMA-Ausführung)
    3, 2 CWD 0 R/W Bits 3, 2: Kanalweitenbestimmung (CWD)
    1, 0 CWS 0 R/W Bits 1, 0: Kanalweitenquelle (CWS) CWS spezifiziert die Datenweite in der Quellen-DMA-Adresse und CWD spezifiziert die Datenweite in der Ziel-DMA-Adresse, mit Ausnahme der Zwischen-Subsystem-DMA-Modus.
    00:32 Bits 01:16 Bits 11:8 Bits CWD ist nur gültig, wenn die Zieladresse die primäre DMA-Adresse ist und CWS ist nur gültig, wenn die Quellenadresse die primäre DMA-Adresse ist. Falls CWD oder CWS ungültig ist, dann sollte der Wert gleich 00 sein. Falls CWD gültig ist, ist ENDS gültig und CWS/ENDD sind ungültig. Falls CWS gültig ist, ist ENDD gültig und CWD/ENDS sind ungültig. Im Zwischen-Subsystem-DMA-Modus sind alle CWD/CWS/ENDD/ENDS nicht gültig. Diese Felder in Verbindung mit den ENDS/ENDD Flags kontrollieren die Übertragung der Daten zum und vom externen Speicher und zum und vom Subsystem auf dem Registerbus 21, die keine 32-Bit Breite aufweisen, wenn das Packen
    und Entpacken der Daten erforderlich ist. Um das Packen und Entpacken der Daten zu erreichen, ist der Endian der Daten und der Subsysteme auf dem Registerbus 21 notwendig, so dass die Datenausrichtung und die Datenreihenfolge beim Datentransfer korrekt ist. Alle DMA-Übertragungen sind Langworte (32-Bit-Breite), jedoch wenn Daten zu oder von einem Subsystem auf dem Registerbus 21 übertragen werden, der nicht 32-Bit breit ist, so können die Daten in den externen Speicher gepackt werden, wobei diese Flags die Datenbreite eines bestimmten Subsystems auf dem Registerbus 21 angeben. Das Packen oder Entpacken der Daten kann durch den Direktzugriffsspeicherkontroller 12 ausgeführt werden, falls die Datengröße des Subsystems auf dem Registerbus 21 auf 16 Bit oder 8 Bit gesetzt ist. Der externe Speicher ist immer 32 Bit. Für den Fall eines 8-Bit Subsystems auf dem Registerbus 21 werden die Daten zu dem 32-Bit externen Speicher übertragen, CWS = 11 und CWD = 00. In Abhängigkeit von dem Ziel-Endian, in diesem Fall der externe Speicher, wird jedes Byte in seine korrekte Position in dem passenden FIFO 61 geschrieben, so dass die Daten dann in den externen Speicher im richtigen Format übertragen werden.
    Für den Fall eines 8-Bit Subsystems auf dem Registerbus 21 werden die Daten vom 32-Bit externen Speicher empfangen und CWS = 00 und CWD = 11. Jedes Langwort wird in den FIFO 61 geschrieben und in Abhängigkeit von dem Quellen-Endian, in diesem Fall der externe Speicher, werden die Daten dann byteweise von der korrekten Position in dem FIFO 61 zu dem Subsystem auf dem Registerbus 21 übertragen. Falls nicht gepackte Daten in die Subsysteme geschrieben oder aus den Subsystemen über den Registerbus 21 ausgelesen werden, werden die Daten am wenigsten signifikanten Wort oder Byte ausgerichtet. Die ENDS/ENDD Flags dieses Registers setzen den Endian der Daten in der Quellen-DMA-Adresse und in der Ziel-DMA-Adresse. Peripheriegeräte, die keine 32-Bit-Register haben, werden ein Byte-Tauschen ausführen, falls notwendig.
    Die CWS und CWD Flags kontrollieren das Packen und Entpacken der Daten, und falls diese Funktion nicht erforderlich ist, sogar wenn die Datenbreite des Subsystems auf dem Registerbus 21 nicht 32 Bit breit ist, sind diese Flags auf 32 Bit zu setzen. Die Endian-Umwandlung wird nicht für den Datentransfer im Zwischen-Subsystem-DMA-Modus unterstützt. Für diesen Fall müssen Subsysteme auf dem Registerbus 21, die miteinander verbunden sind, sowohl im Endian als auch in der Datengröße übereinstimmen. Die Größen-Flags müssen auf 1 bis 32 gesetzt sein, um anzuzeigen, dass die Übertragungen als 32-Bit Breite behandelt werden, jedoch sind für diesen Fall nicht alle Bits gültig.
    DMA-RAM Puffergrößenregister
    Bit Bitname Anfangswert R/W Beschreibung
    31 bis 12 0 R Nicht benutzt
    11 bis 4 Start 0 R/W Spezifiziert den Startadressenoffset des FIFO-Kanalpuffers innerhalb des RAM in 4 Langworten.
    3 bis 0 Länge 0 R/W Spezifiziert die Länge des FIFO-Kanalpuffers innerhalb des RAM in 4 Langworten. Die Pufferlänge kann entweder 16, 32 oder 64 Langworte sein.
  • Der DMA-Zählerregisterblock 85 umfasst ein Subsystemzählerregister (PCOUNT) und ein externes Speicher-Zählregister (MCOUNT) für jeden DMA-Kanal. Die PCOUNT-Register speichern die Anzahl der Bytes eines DMA-Transfers zwischen einem Subsystem auf dem Registerbus 21 und dem korrespondierenden FIFO 61, die übertragen worden sind. Die MCOUNT-Register speichern die Anzahl der Bytes eines DMA-Transfers zwischen dem korrespondierenden FIFO 61 und einem externen Speicher 3, 7, die übertragen worden sind.
  • Schließlich umfasst der FIFO-Block 86 ein 4-Byte-Wort, welches einem entsprechenden Wart der FIFO's 61 entspricht. Das Schreiben in eine dieser Adressen addiert Daten an das Ende des korrespondierenden FIFO's 61 und das Lesen aus einer dieser Adressen erhält die Daten vom Kopf des korrespondierenden FIFO's 61.
  • Unter Bezugnahme auf die 3 weist die Registerbus-Schnittstelle 64 eine Mehrzahl von DMA-Anforderungsleitungen 50 auf, die dort hinein führen. Diese Anforderungsleitungen 50 sind mit den DMA-Anforderungsanschlüssen der Subsysteme auf dem Registerbus 21 verbunden. Die DMA-Anforderungsnummern, die mit diesen Leitungen 50 assoziiert sind, sind vorbestimmt und feststehend. Im vorliegenden Fall sind dies:
    Subsystem Registername der Adresse DMA-Anforderungs-Adressenregister DMA-Anforderung Mehrfach genutzt zwischen den Subsystemen DMA-Anforderungs-Nummer
    OS8104 i/f Packet Tx (36) MIM_PacketTx Ja 0
    Erweiterungsbus 0 (36) Erweiterungsanschluß 0 Ja 0
    OS8104 i/f Rx (36) MIM_PacketRx Ja 1
    Erweiterungsbus 1 (36) Erweiterungsanschluß 1 Ja 1
    OS8104 i/f Fluß 1 (36) MIM_Stream1 Nein 2
    O88104 i/f Fluß 2 (36) MIM_Stream2 Nein 3
    O88104 i/f Fluß 3 (36) MIM_Stream3 Nein 4
    OS8104 i/f Fluß 4 (36) MIM_Stream4 Nein 5
    SS10 (serielle Klangschnittstelle 0) (41) Übertrage Daten Register 0/Empfange Datenregister 0 Nein 6
    SSI1 (38) Übertrage Daten Register 1/Empfange Datenregister 1 Nein 7
    SSI2 (38 oder 51) Übertrage Daten Register 2/Empfange Datenregister 2 Ja 8
    CD-ROM Block Decoder (51) Ausgabe_Datenregister Ja 8
    SSI3 (42) Übertrage Daten Register 3/Empfange Datenregister 3 Nein 9
    SPDIF Tx (49) Transmitter-DMA Audio-Daten Nein 10
    SPDIF Rx (49) Empfänger-DMA Audio-Daten Nein 11
    HSPI0 Tx (31) Übertragungspuffer Register 0 Ja 12
    AV-Link (31) AV Datenregister Ja 12
    HSPI0 Rx (31) Empfangspuffer Register 0 Nein 13
    HSPI1 Tx (31 oder 34) Übertragungspuffer Register 1 Nein 14
    HSPI1 Rx (31 oder 34) Empfangspuffer Register 1 Nein 15
    CSC 0 (35) Eingangsdaten Nein 16
    CSC 1 (35) Ausgangsdaten Nein 17
    AC97 Tx (43) TX DMA Register Nein 18
    AC97 Rx (43) RX DMA Register Nein 19
    UART0 Tx (40) Übertragungsdaten Register 0 Nein 20
    UART0 Rx (40) Empfangsdaten Register 0 Nein 21
    UART1 Tx (41 oder 43) Übertragungsdaten Register 1 Nein 22
    UART1 Rx (41 oder 43) Empfangsdaten Register 1 Nein 23
    UART2 Tx (42 oder 43) Übertragungsdaten Register 2 Nein 24
    UART2 Rx (42 oder 43) Empfangsdaten Register 2 Nein 25
    UART3 Tx (39) Übertragungsdaten Register 3 Ja 26
    HSPI2 Tx (39) Übertragungspuffer Register 2 Ja 26
    UART3 Rx (39) Empfangsdaten Register 3 Ja 27
    HSPI2 Rx (39) Empfangspuffer Register 2 Ja 27
    ATAPI (17) Datenregister Nein 28
    USB Funktion 1 (48) EP1 Datenregister Nein 29
    USB Funktion 2 (48) EP2 Datenregister Nein 30
  • Die Kontrollregister 68 umfassen die DMA-Subsystem-Anforderungsadressregister, die die DMA-Anforderungsleitungen 70 auf die Subsystem-Registerabdressen mappen, sowie auf das DMA-Externauswahlregister, das DMA-Statusregister, das DMA-FIFO-Statusregister, ein FIFO-Burststatusregister, das DMA-Unterbrechungsquellenregister, das DMA-FIFO-Löschregister, das DMA-Subsystemanforderungsstatusregister und das PIO-Überwachungsregister.
  • Das DMA-Externauswahlregister ist in den Kontrollregistern 68 enthalten. Dieses Register ist wie folgt organisiert:
    Bit Bitname Anfangswert R/W Beschreibung
    31 bis 7 0 R Nicht benutzt
    6 MEND 0 R/W Falls der externe Bus ein MPX-Bus 9 ist, setzt dieses Flag den Endian der CPU 2 PIO-Zugriffe auf den Adressraum des Direktzugriffsspeicherkontrollers 12. 1: Großer Endian 0: Kleiner Endian
    5 DDEN 0 R/W Falls dieses Flag auf 1 gesetzt ist, dann wird der nächste Zugriff auf ein Subsystem auf dem Registerbus auf das System schauen, genauso wie ein DMA-Zyklus. Es gibt einige Subsysteme, die falsche DMA-Anforderungen machen und die keinen Mechanismus haben, um ihre eigenen DMA-Anforderungen zu löschen. Dieses Flag muss auf 0 zurück gesetzt werden, nach dem Zugriff auf das Subsystem. 1: PIO Zugriff programmiert für Dummy-DMA-Zyklus 0: PIO Zugriff benutzt den Dummy-DMA-Zyklus nicht
    4 EDMA 0 R/W Falls dieses Flag auf 1 gesetzt ist, startet der externe DMA, um Daten in den oder aus dem FIFO-Kanalpuffer zu übertragen, spezifiziert in dem EDMS Feld. Falls dieses Flag auf 0 gelöscht wird, wird der DMA-Transfer gestoppt. Das System unterstützt nur einen externen DMA-Kanal, wenn der externe Bus ein MPX-Bus 9 ist. Der externe DMA-Kanal kann jedem der 16 DMA-Kanäle zugewiesen werden, während der Initialisierung des Direktzugriffsspeicherkontrollers 12. Falls das EDMA Flag auf 1 gesetzt ist, dann wird der DMA-Kanal, der durch das EDMS Feld adressiert ist, als ein normaler DMA-Transfer konfiguriert. Die FIFO-Kanal-Pufferstatusflags werden an den externen DMA-Kontroller als DMA-Anforderung durchgeroutet. Auf diese Art und Weise führt die CPU 2 die Strömungssteuerung zu den FIFO-DMA-Kanal aus. 1: Starte externen DMA-Datentransfer 0: Stoppe externen DMA-Datentransfer
    3 bis 0 EDMS 0 R/W Spezifiziert den DMA-Kanal, der für den externen DMA ausgewählt worden ist.
  • Das DMA-Statusregister umfasst ein Subsystem-Anschlußzählerstatusflag (PT) für jeden DMA-Kanal und ein Anschlußzählerstatusflag (TC) für jeden DMA-Kanal. Das PT Flag spezifiziert den Subsystem-Anschlußzählerstatus des jeweiligen DMA-Kanals. Diese Flags werden gesetzt, wenn die DMA-Transfers zu dem und vom Subsystem zum passenden FIFO 61 vervollständigt sind. Es gibt eine Option für eine Unterbrechung, die erzeugt wird, wenn diese Flags gesetzt sind. Die TC Flags wer den gesetzt, wenn die DMA-Transfers von einem korrespondierenden FIFO 61 und dem externen Speicher vervollständigt sind.
  • Das DMA-FIFO-Statusregister wird nur im Slave-Modus benutzt und zeigt durch Flags an, ob die individuellen FIFO's 61 für Einzellesen und -schreiben oder Burstlesen und -schreiben verfügbar sind. Der Direktzugriffsspeicherkontroller 12 kann derart konfiguriert werden, dass er Unterbrechungen erzeugt, wenn diese Flags gesetzt sind.
  • Das FIFO-Burststatusregister zeigt an, ob individuelle FIFO's 61 für das Burstlesen und -schreiben verfügbar sind, d.h. für Interaktionen über den Pixelbus 20 oder den externen Bus 8, 9.
  • Das DMA-Unterbrechungsquellenregister umfasst einen Satz von Kanalunterbrechungsmaskierungsflags, ein Flag für jeden Kanal, sowie Kanalunterbrechungsmasken. Die Kanalunterbrechungsflags zeigen den Unterbrechungsstatus der DMA-Kanäle an. Diese Flags sind jeweils das Ergebnis von allen Unterbrechungen, die diesem Kanal zuzurechnen sind und werden gesetzt, wenn eine Unterbrechung anhängig wird. Wenn die Unterbrechung abgearbeitet worden ist, wird das zugehöroge Flag zurück gesetzt. Die Kanalunterbrechungsmaske hat ein Bit für jeden DMA-Kanal und die Zustände der Bits bestimmen, ob eine Unterbrechung, die einem speziellen DMA-Kanal zuzurechnen ist, an die CPU 2 weiter geleitet wird.
  • Das DMA-FIFO-Löschregister umfasst ein Flag für jeden FIFO 61. Das Setzen von einem dieser Flags bewirkt, dass der korrespondierende FIFO 61 gelöscht wird und die Daten gelöscht werden.
  • Das DMA-Subsystem-Anforderungsstatusregister zeigt anhängige DMA-Anforderungen von den Subsystemen an. Wenn ein Subsystem eine DMA-Anforderung macht, wird das korrespondierende Flag in dem DMA-Subsystem-Anforderungsstatusregister gesetzt. Dieses Register setzt die Ordnung fest, mit der die DMA-Anforderungen von den Subsystemen abgearbeitet werden.
  • Das PIO-Überwachungsregister ist als Teil eines Schemas vorgesehen, um den Zugriff auf den Registerbus 21 durch die CPU 2 zu kontrollieren, um eine Beeinträchtigung mit einer effektiven DMA-Operation zu vermeiden. Unter diesem Schema wird dem Zugriff der CPU 2 auf den Registerbus 21 die oberste Priorität eingeräumt. Wenn jedoch die Anforderungen der CPU 2 für einen Zugriff auf den Registerbus 21 ein bestimmtes Ausmaß übersteigen, wird diese hohe Priorität übersteuert.
  • Die Bits des programmierbaren E/A-Überwachungsregisters werden aufgeteilt zwischen einem Schwellenwertzähler, einem Hochzähler, einem Aktivierungsflag und einem Monitorzähler. Der Schwellenwertzähler setzt eine Grenze für die PIO-Benutzung des Registerbus 21 fest, die eintreten kann bevor eine Aktion unternommen wird, die einen solchen Zugriff verhindern soll. Das ist notwendig, da unter normalen Umständen diese Zugriffe die höchste Priorität für die Bus-Vermittlung haben und es könnten die Subsysteme von dem Registerbus 21 für eine nicht gewünschte lange Zeitspanne ferngehalten werden. Der Zähler ist vorgegeben durch den Monitorzählerwert, der durch den Hochzählerwert hochgezählt wird, nämlich für jeden Systembusuhrzyklus während der programmierbaren E/A-Operation durch die CPU 2. Der Zähler wird um eins nach unten gezählt, für jeden Systembusuhrzyklus bzw. -takt außerhalb des PIO-Zugriffs.
  • Der Hochzählwert wird in Abhängigkeit von der Basis der operativen Konditionen gesetzt, die bei speziellen Anwendungen aufgetreten sind.
  • Das Aktivierungsflag wird gesetzt, wenn der Monitorzählerwert auf 0 gesetzt ist und wird zurück gesetzt, wenn der Monitorzähler den Schwellenwertzähler überschreitet.
  • Der Betrieb der Systemschnittstelle 62 des Direktzugriffsspeicherkontrollers 12 im Burstbetrieb wird nun beschrieben werden.
  • Die aktiven DMA-Kanäle werden bestimmt, um eine Maske zu erzeugen, die die DMA-Kanäle identifiziert, die einem „round robin priority Algorithmus" unterzogen werden sollten. Ein Kanal ist aktiv, falls die Anzahl der DMA-Transfers, die vervollständigt werden sollen, größer ist als die Burstgröße und es liegt eine Burstgröße an Daten in dem FIFO des Kanals oder eine Burstgröße an Raum/Speicher in dem FIFO, in Abhängigkeit von der Richtung des Transfers. Falls die Anzahl der DMA-Transfers geringer ist als die Burstgröße, so ist der Kanal aktiv, falls die Anzahl von Worten, die für den Transfer noch übrig sind, gleich dem Raum/Speicher in dem FIFO ist oder gleich den Worten ist, die in dem FIFO verfügbar sind, in Abhängigkeit von der Richtung des Datentransfers. Die Anzahl der Worte, die übrig sind, ist die Differenz zwischen dem MCOUNT-Registerwert und der Transferlänge in dem korrespondierenden DMA-Längenregister. Die Kanäle, die aktiv sind, werden als ein Maskenwert an den round robin Algorithmus weitergeleitet, der den nächsten aktiven Kanal auswählt, und ein Burst wird an den externen Bus 8, 9 geschickt oder von dort empfangen.
  • Bei der vorliegenden Ausführungsform ist die Burstgröße, die von der Systemschnittstelle 62 genutzt wird, auf 8 festgesetzt. Dies kann jedoch für andere Ausführungsformen unterschiedlich sein.
  • Der Betrieb der Systemschnittstelle 62 des Direktzugriffsspeicherkontrollers 12 im Slave-Modus wird im folgenden beschrieben werden.
  • Im Slave-DMA-Modus führt die CPU 2 die DMA-Operationen aus, indem ein DMA-Kanal des Direktzugriffsspeicherkontrollers 12 benutzt wird, und überträgt Daten zwischen einem Subsystem auf dem Registerbus 21 und dem System-RAM 3. Die Systemschnittstelle 62 zeigt der CPU 2 an, dass es einen burstgroßen Speicher gibt oder einen Burstwert an Daten in dem FIFO gibt, indem ein Unterbrechungssignal gesandt wird oder indem ein Flag gesetzt wird, welches durch die CPU 2 abgefragt wird. Für den Fall eines Transfers von einem Subsystem auf dem Registerbus 21 stellt die CPU 2 die FIFO-Adresse, in dem Block 86 (5), auf den externen Bus und die Systemschnittstelle 62 liest den Inhalt des FIFO, der so adressiert ist und setzt diesen sequentiell auf den externen Bus 8, 9. Für den Fall einer Übertragung zu einem Subsystem auf dem Registerbus 21, plaziert die CPU 2 die FIFO-Adresse, in dem Block 86 (5) auf den Systembus, gefolgt von dem Burst an Daten. Die Systemschnittstelle 62 empfängt den Burst an Daten und schreibt diese in die empfan gene FIFO-Adresse. Alle Daten werden in die gleiche Adresse geschrieben, werden jedoch in unterschiedliche physikalische Orte in dem RAM eingeschrieben.
  • Der Betrieb der Systemschnittstelle 62 des Direktzugriffsspeicherkontrollers 12 für den externen DMA-Modus, wobei der externe Bus ein MPX-Bus 9 ist, wird im folgenden beschrieben werden.
  • Im externen DMA-Modus führt der Direktzugriffsspeicherkontroller der CPU 2 die DMA-Operation aus, indem ein DMA-Kanal des Direktzugriffsspeicherkontrollers 12 benutzt wird und überträgt die Daten zwischen einem Subsystem auf dem Registerbus 21 und dem System-RAM 3. Die Systemschnittstelle 62 zeigt dem externen DMA-Kontroller an, dass es einen burstgroßen Speicher/Raum gibt oder einen Burstwert an Daten in dem FIFO, indem ein MPX-DMA-Anforderungssignal an den externen DMA-Kontroller weiter geleitet wird. Dieses Signal wird bestätigt und entfernt. Der externe DMA-Kontroller sendet dann die Adresse des passenden FIFO's 61 und überträgt dann einen Burst an Daten zu der Systemschnittstelle 62 oder empfängt diese von dort, indem das MPX-DMA-Anforderungsbestätigungssignal benutzt wird, um anzuzeigen, dass es ein DMA-Transfer ist. Die Systemschnittstelle 62 handhabt das Lesen und das Schreiben von Daten in dem RAM auf der Basis der empfangenen FIFO-Adresse. Wenn die Übertragung vervollständigt ist und falls ein anderer Transfer möglich ist, dann wird die Systemschnittstelle 62 das MPX-DMA-Anforderungssignal erneut senden.
  • Der Betrieb der Pixelbusschnittstelle 63 des Direktzugriffsspeicherkontrollers 12 für den Burstzugriff wird im folgenden beschrieben werden.
  • Die aktiven DMA-Kanäle werden bestimmt, um eine Maske zu erzeugen, die die DMA-Kanäle identifiziert, die einem „round robin Algorithmus" unterworfen werden sollen. Ein Kanal ist aktiv, falls die Anzahl der DMA-Transfers, die vervollständigt werden sollen, größer ist als die minimale Burstgröße, und es gibt einen minimalen Burstgrößenwert an Daten in ihrem FIFO 61 oder einen minimalen Burstgrößenwert an Speicher/Raum in ihrem FIFO 61, in Abhängigkeit von der Richtung des Transfers der Daten. Falls die Anzahl der DMA-Transfers geringer ist als die minimale Burstgröße, ist der Kanal aktiv, falls die Anzahl der Worte, die für den Transfer überig sind, gleich dem Speicher/Raum in dem FIFO 61 ist, oder gleich den Worten ist, die in dem FIFO 61 verfügbar sind, in Abhängigkeit von der Richtung des Transfers der Daten. Die Anzahl der Worte, die übrig sind, ist die Differenz zwischen dem MCOUNT-Registerwert und der Transferlänge in dem korrespondierenden DMA-Längenregister. Die Kanäle, die aktiv sind, werden als ein Maskenwert an den round robin Algorithmus weiter gegeben, der den nächsten aktiven Kanal auswählt, und ein Burst wird über den Pixelbus 20 für den ausgewählten Kanal geschickt oder empfangen.
  • Bei dem vorliegenden Beispiel ist die minimale Burstgröße 4 und die maximale Burstgröße ist 8. Bei anderen Ausführungsformen können jedoch auch andere Werte genutzt werden.
  • Der Betrieb der Registerbus-Schnittstelle 64 des Direktzugriffsspeicherkontrollers 12 wird nun beschrieben werden, mit PIO-Überwachung aktiviert und unter Bezugnahme auf die 6.
  • Zuerst, falls der programmierte E/A-Zugriff auf den Registerbus 21 durch den PIO-Monitor (Schritt s1) nicht blockiert wird, wie es durch das Aktivierungsflag in dem PIO-Monitorregister angezeigt ist, wird bestimmt, ob irgendwelche PIO-Operationen anhängig sind (Schritt s2). Falls eine PIO-Operation anhängig ist, wird der PIO-Monitorzähler nach oben gezählt (Schritt s3) und die PIO-Operation wird gehandhabt durch Plazieren der Adresse auf den Registerbus 21 (Schritt s4). Im Schreibmodus plaziert die Registerbusschnittstelle 64 die Daten von dem entfernten Gerät auf den Registerbus 20. Im Lesemodus liest jedoch die Registerbus-Schnittstelle 64 die Daten aus dem Adressregister und leitet diese weiter an den PIO-Umgehungskanal 40, zur Übertragung an den externen Bus 8, 9. Der PIO-Monitorzähler wird dann so gesetzt, dass er nach unten zählt (Schritt s5).
  • Falls der programmierte E/A-Zugriff nicht aktiviert ist (Schritt s1) oder falls es keine anhängigen programmierten E/A-Operationen gibt (Schritt s2), werden die DMA- Transfers zu dem Registerbus 21 über die FIFO's 61 durch Einsatz des round robin Algorithmus gehandhabt.
  • Das Handhaben des programmierten E/A-Zugriffs auf die Subsysteme auf dem Registerbus 21 durch die CPU 2 wird im folgenden beschrieben werden.
  • Um in ein Register eines Subsystems auf dem Registerbus 21 zu schreiben, plaziert die CPU 2 die Adresse des Registers auf dem Systembus 8. Die Adresse wird dann zu der PCI-/PMX-Schnittstelle 11 übertragen. Die PCI-/PMX-Schnittstelle 11 erfasst, dass die Adresse nicht in dem UMA SDRAM 7 ist und leitet sie weiter an die System-Schnittstelle 32 des Direktzugriffsspeicherkontrollers 12. Die System-Schnittstelle 32 des Direktzugriffsspeicherkontrollers 12 entscheidet, dass die Adresse die Adresse eines Registers eines Subsystems an dem Registerbus 21 ist und leitet diese in der Konsequenz an den PIO-Umgehungskanal 40 weiter, wo sie gepuffert wird.
  • Die Registerbus-Schnittstelle 64 erfasst, dass eine PIO-Operation in dem PIO-Umgehungskanal 40 anhängig ist, und in Übereinstimmung mit dem Registerbus-Vermittlungsschema wird die Adresse, die in dem PIO-Umgehungskanal 40 gehalten ist, auf dem Registerbus 21 plaziert, gefolgt von den Daten. In der Folge werden die Daten in das passende Register eines Subsystems an dem Registerbus 21 geladen.
  • Die vorherigen DMA-Übertragungen werden von Signalen begleitet, die anzeigen, dass ein DMA-Transfer anstatt eines Einzelübertragungsmodustransfers stattfindet.
  • Unter Bezugnahme auf die 7 wird es bevorzugt, dass in der Software-Domaine eine Anwendung 91 mit dem Direktzugriffsspeicherkontroller 12 und den Subsystemen auf dem Registerbus 21 interagiert, und zwar mittels eines Gerätetreibers 92 und mittels eines Geräte-Direktzugriffsspeicherkontrollers 93 für das in Frage kommende Subsystem. Die Inhaberschaft der Kontrollregister 68 in dem Direktzugriffsspeicherkontroller 12 wird aufgeteilt zwischen dem Direktzugriffsspeicherkontroller 93 und dem Gerätetreiber 92 und dem System-Unterbrechungshandhaber. Insbesondere besitzt der Direktzugriffsspeicherkontroller 93 die Register, die die Größe und die Orte der FIFO's 61 und die DMA-Anforderungsadressregister anzeigen. Der Geräte treiber 92 besitzt die Register, die die DMA-Transferstartadresse in dem externen Speicher, die Burstgröße und die Transferlänge in den Bursts, den Kontrollwert, der den DMA-Modus festlegt, die primäre DMA-Adresse und die Transferrichtung, ob das Packen oder Entpacken von Daten erforderlich ist, ob eine Endian-Umwandlung erforderlich ist, den Daten-Transfer-Modus, d.h. kontinuierliche oder feste Längen, welche Unterbrechungen und Pufferstati berichtet werden sollen, und ob ein Transfer gestartet werden soll, die Register in dem FIFO-Block 82, das DMA-FIFO-Löschregister, sowie das DMA-Subsystem-Anforderungsstatusregister enthalten. Der System-Unterbrechungshandhaber besitzt die DMA-Unterbrechungsquelle und die DMA-FIFO-Statusregister.
  • Unter Bezugnahme auf die 8, wenn das System initialisiert wird, wird dort eine Initialisierungsroutine des Direktzugriffsspeicherkontrollers 93 aufgerufen. Diese Routine setzt zuerst die anfängliche Größe des FIFO's 61 (Schritt s11). Die FIFO's werden dann gelöscht, indem eine 1 in jedes Bit des DMA-FIFO-Löschregisters geschrieben wird, korrespondierend zu einem DMA-Kanal (Schritt s12). Schließlich werden die DMA-Anforderungsadressregister auf die Adressen der korrespondierenden Subsysteme an dem Registerbus 21 gesetzt (Schritt s13).
  • Szenario 1 – Master-Modus
  • Der Transfer von Daten durch die DMA von einem UART auf dem Registerbus 21 zum System-RAM 3 unter Einsatz eines PCI-Bus 9 im Transfermodus mit fixer Datenlänge wird nun beschrieben werden. Der UART benutzt die DMA-Anforderungsnummer 20, die auf den DMA-Kanal 2 in diesem Beispiel umgelegt wird.
  • Unter Bezugnahme auf die 9 startet der Gerätetreiber 92 für den UART durch Schreiben der Zielstartadresse in das Startadressregister für den DMA-Kanal 2 (Schritt s21). Dann schreibt der Gerätetreiber 92 den Bytezähler in das Längenregister für den DMA-Kanal 2 (Schritt s22). Nachdem der DMA-Kanal vorbereitet worden ist, ruft der Gerätetreiber 92 eine Standard-DMA-Vorverarbeitungs-Routine (unten beschrieben) auf (Schritt s23). Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 92 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal 2 (Schritt s24). Dieser Kontrollwert umfasst:
    CSEL 10100
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 0
    FSEN 0
    TCEN 1
    DBEN 0
    ML 1
    RBEN 0
    MM 1
    DTRA 1
    DR 0
    RTRA 1
    CWD 00
    CWS 01
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in dem UART durch den Gerätetreiber 92 gestartet, der in ein Kontrollregister des UART schreibt, indem er die programmierbare E/A (Schritt s25) verwendet. Das bewirkt, dass der UART den DMA anfordert, indem er auf der DMA-Anforderungsleitung 20 ein Signal sendet.
  • Der Direktzugriffsspeicherkontroller 12 fängt an die Daten zu lesen, jeweils 2 Bytes gleichzeitig, nämlich von dem UART. Die von dem UART gelesenen Daten werden hinten bzw. am Ende im geeigneten FIFO 61 eingeschrieben.
  • Die Daten des FIFO 61, der dem DMA-Kanal 2 zugewiesen ist, wird in Bursts in den System-RAM 3 ausgegeben, und zwar mittels der Systemschnittstell 62, wie oben beschrieben.
  • Unter Bezugnahme auf die 10, unterbricht ein Unterbrechungshandhaber, bei einer Unterbrechung (interrupt), die durch das Setzen des TC Flags erzeugt wird oder die durch Zeitablauf erzeugt wird, den DMA-Prozeß in dem UART, indem die passenden Kontrolldaten dorthin geschrieben werden (Schritt s31) und führt jedwede Fehlerbehandlung durch, die mit dem UART assoziiert ist (Schritt s32). Eine Standard-DMA-Nachbearbeitungsroutine wird im Schritt s33 ausgeführt (unten beschrieben).
  • Szenario 2 – Master-Modus
  • Falls ein Subsystem auf dem Registerbus seinen eigenen DMA-Zähler und seine eigene Vervollständigungsunterbrechung hat, im vorliegenden Beispiel eine serielle Klangschnittstelle, kann der kontinuierliche Datentransfermodus benutzt werden. Die serielle Klangschnittstelle benutzt die DMA-Anforderungsnummer 7, die beim vorliegenden Beispiel auf den DMA-Kanal 5 gemappt ist, sowie der externe Bus ein PCI-Bus 9 ist.
  • Unter Bezugnahme auf die 11 wird eine Übertragung bzw. ein Transfer in diesem Modus initiiert durch den relevanten Gerätetreiber 92, der die Zielstartadresse in das Startadressenregister für den DMA-Kanal 5 einschreibt (Schritt s41). Dann schreibt der Gerätetreiber 92 die Pufferlänge in das Längenregister für den DMA-Kanal (Schritt s42). Nachdem der DMA-Kanal eingerichtet worden ist, ruft der Gerätetreiber 92 die Standard-DMA-Vorverarbeitungsroutine (Schritt s43) auf. Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 52 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal (Schritt s44). Dieser Kontrollwert umfasst:
    CSEL 00111
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 0
    FSEN 0
    TCEN 1
    DBEN 1
    ML 1
    RBEN 0
    MM 1
    DTRA 1
    DR 0
    RTRA 1
    CWD 00
    CWS 00
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in dem Subsystem gestartet, indem der Gerätetreiber 92 in ein Kontrollregister der seriellen Klangschnittstelle schreibt, unter Benutzung der programmierbaren E/A (Schritt s45). Das bewirkt, dass die serielle Klangschnittstelle den DMA anfordert, indem auf der DMA-Anforderungsleitung ein Signal gesendet wird. Dann Startet die DMA-Verarbeitung in der seriellen Klangschnittstelle.
  • Der Direktzugriffsspeicherkontroller 12 fängt an die Daten aus der seriellen Klangschnittstelle auszulesen.
  • Die Daten in dem FIFO 61, die dem DMA-Kanal 5 zugewiesen sind, werden in Bursts in den System-RAM 3 ausgegeben, durch die Systemschnittstelle 62, wie oben beschrieben.
  • Unter Bezugnahme auf die 12 muss bei einer Unterbrechung, die durch das TC Flag erzeugt wird, welches gesetzt wird, der Puffer, der mit dem System-RAM 3 be nutzt wird, geändert werden (Schritt s51) und die Daten in dem vollen Puffer werden in den Benutzeradressraum (Schritt s52) kopiert.
  • Unter Bezugnahme auf die 13 muss bei einer Unterbrechung, die durch die serielle Klangschnittstelle erzeugt worden ist, um das Ende der Datenübertragung zu markieren, oder um einen Zeitablauf zu markieren, ein Unterbrechungshandhaber den DMA-Prozeß in der seriellen Klangschnittstelle beenden, indem die passenden Kontrolldaten dort hinein geschrieben werden (Schritt s61) und indem jedwede Fehlerbehandlung ausgeführt wird, die mit der seriellen Klangschnittstelle assoziiert ist (Schritt s62). Die Standard-DMA-Nachbearbeitungsroutine (Schritt s63) wird dann ausgeführt.
  • Szenario 3 – Master-Modus
  • Die Übertragung von Daten mittels DMA von dem oben erwähnten UART auf dem Registerbus 21 zu dem UMA SDRAM 7 im Datenübertragungsmodus mit fester Länge wird nun beschrieben werden.
  • Unter Bezugnahme auf die 14 startet der Gerätetreiber 92 für den UART, indem die Zielstartadresse in das Startadressenregister für den DMA-Kanal 2 geschrieben wird, der der Übertragungskanal (Schritt s71) für den UART ist. Dann schreibt der Gerätetreiber 92 die Bytezähler in das Längenregister für den DMA-Kanal 2 (Schritt s72). Nachdem der DMA-Kanal vorbereitet worden ist, ruft der Gerätetreiber 92 die Standard-DMA-Vorbearbeitungsroutine auf (Schritt s73). Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 92 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal 2 (Schritt s74). Dieser Kontrollwert umfasst:
    CSEL 10101
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 0
    FSEN 0
    TCEN 1
    DBEN 0
    ML 0
    RBEN 0
    MM 1
    DTRA 1
    DR 0
    RTRA 1
    CWD 00
    CWS 01
  • Der Direktzugriffsspeicherkontroller 12 ist nunmehr konfiguriert. Der DMA-Prozeß wird in dem UART gestartet, indem der Gerätetreiber 92 in ein Kontrollregister des UART schreibt, indem die programmierbare E/A (Schritt s75) benutzt wird. Damit wird bewirkt, dass der UART den DMA anfordert.
  • Der Direktzugriffsspeicherkontroller 12 fängt an die Daten aus dem UART zu lesen, wie oben beschrieben. Die Daten in dem FIFO, der dem DMA-Kanal 2 zugewiesen ist, werden in Bursts zu dem UMA SDRAM 7 ausgegeben, nämlich über die Pixelbusschnittstelle 63, wie oben beschrieben.
  • Unter Bezugnahme auf die 15 beendet bei einer Unterbrechung, die durch das gesetzte TC-Flag erzeugt wird oder die durch Zeitablauf erzeugt wird, ein Unterbrechungshandhaber den DMA-Prozeß in dem UART, indem die passenden Kontrolldaten dorthin geschrieben werden (Schritt s81) und führt jedwede Fehlerbehandlung aus, die mit dem UART assoziiert ist (Schritt s82). Dann wird die Standard-DMA-Nachbearbeitungsroutine (Schritt s83) ausgeführt.
  • Szenario 4 – Master-Modus
  • Falls ein Subsystem auf dem Registerbus seinen eigenen DMA-Zähler und seine eigene Vervollständigungsunterbrechung hat, im vorliegenden Beispiel die ATAPI-Schnittstelle 17, kann die kontinuierliche Datenübertragung genutzt werden. Für diesen Fall wird der DMA-Kanal 5 benutzt.
  • Unter Bezugnahme auf die 16 wird ein Transfer in diesem Modus gestartet, indem der relevante Gerätetreiber 92 die Zielstartadresse in das Startadressenregister für den DMA-Kanal 5 einschreibt (Schritt s91). Dann schreibt der Gerätetreiber 92 die Puffergröße in das Längenregister für den DMA-Kanal 5 (Schritt s92). Nachdem der DMA-Kanal eingerichtet worden ist, ruft der Gerätetreiber die Standard-DMA-Vorbearbeitungsroutine (Schritt s93) auf. Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 92 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal (Schritt s94). Der Kontrollwert umfasst:
    CSEL 11100
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 0
    FSEN 0
    TCEN 1
    DBEN 1
    ML 1
    RBEN 0
    MM 1
    DTRA 1
    DR 0
    RTRA 1
    CWD 00
    CWS 00
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in der ATAPI-Schnittstelle 17 durch den Gerätetreiber 92 gestartet, indem in das Kontrollregister der ATAPI-Schnittstelle 17 geschrieben wird, unter Verwendung der programmierbaren E/A (Schritt s95). Damit wird bewirkt, dass die ATAPI-Schnittstelle 17 den DMA anfordert.
  • Der Direktzugriffsspeicherkontroller 12 fängt and die Daten aus der ATAPI-Schnittstelle 17 auszulesen, wie oben beschrieben. Die Daten in den FIFO's 61, die dem DMA-Kanal 5 zugewiesen sind, werden in Bursts an den UMA SDRAM 7 ausgegeben, nämlich über die Pixelbusschnittstelle 63, wie oben beschrieben.
  • Unter Bezugnahme auf die 17 muss bei einer Unterbrechung, die durch das gesetzte TC Flag erzeugt wird, der vom UMA SDRAM 7 benutzte Puffer geändert werden (Schritt s101) und die Daten in dem vollen Puffer werden in den Benutzeradressraum (Schritt s102) kopiert.
  • Unter Bezugnahme auf die 18 beendet bei einer Unterbrechung, die durch die ATAPI-Schnittstelle 17 erzeugt worden ist, um das Ende der Übertragung der Daten oder um einen Zeitablauf zu markieren, ein Unterbrechungshandhaber den DMA-Prozeß in der ATAPI-Schnittstelle 17, indem die passenden Kontrolldaten dort hinein geschrieben werden (Schritt s111) und führt jedwede Fehlerbehandlung aus, die mit der ATAPI-Schnittstelle 17 (s112) assoziiert ist. Die Standard-DMA-Nachbearbeitungsroutine wird dann ausgeführt (Schritt s113).
  • Szenario 5 – Mastermodus
  • Die Übertragung von Daten mittels DMA zu einem UART auf dem Registerbus 21 von dem System-RAM 3 im Datenübertragungsmodus mit fixer Länge wird nun beschrieben werden. Der UART benutzt die DMA-Anforderungsnummer 21, die auf den DMA-Kanal 3 in diesem Beispiel gemappt ist, um die Daten zu empfangen, sowie der externe Bus ein PCI-Bus 9 ist.
  • Unter Bezugnahme auf die 19, fängt der Gerätetreiber 92 für den UART an, indem er die System-RAM-Startadresse in das Startadressenregister für den DMA-Kanal 3 einschreibt (Schritt s121). Dann schreibt der Gerätetreiber 92 den Bytezähler in das Längenregister für den DMA-Kanal 3 ein (Schritt s122). Nachdem der DMA-Kanal vorbereitet worden ist, ruft der Gerätetreiber 92 die Standard-DMA-Vorbearbeitungsroutine (Schritt s123) auf. Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 92 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal 3 (Schritt s124). Dieser Kontrollwert umfasst:
    CSEL 10101
    ENDD 0
    ENDS 0
    PTEN 1
    FBEN 0
    FSEN 0
    TCEN 0
    DBEN 0
    ML 1
    RBEN 0
    MM 1
    DTRA 1
    DR 1
    RTRA 1
    CWD 01
    CWS 00
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in dem UART gestartet, indem der Gerätetreiber 92 in ein Kontrollregister des UART einschreibt, indem die programmierbare E/A benutzt wird (Schritt s125). Damit wird bewirkt, dass der UART den DMA anfordert.
  • Der Direktzugriffsspeicherkontroller 12 startet nun die Daten aus dem System-RAM 3 auszulesen, im Burst-Modus, in Übereinstimmung mit der sekundären DMA-Adresse, und speichert diese in dem passenden FIFO 61. Die Registerbusschnittstelle 64 liest die Daten aus dem Kopf des passenden FIFO 61 aus und sendet diese zu dem UART, in Übereinstimmung mit der primären DMA-Adresse. Da das Eingangsregister des UART nur 16 Bit breit ist, müssen die 32 Bits von dem System-RAM 3 in zwei Schreiboperationen an den UART geschickt werden.
  • Unter Bezugnahme auf die 20 muss bei einer Unterbrechung, die durch das gesetzte PT Flag erzeugt wird, die durch den UART oder eine Zeitablauf erzeugt wird, der Gerätetreiber 92 den DMA-Prozeß in der UART beenden, indem die passenden Kontrolldaten dort hinein geschrieben werden (Schritt s131) und führt jedwede Fehlerbehandlung aus, die mit dem UART assoziiert ist (Schritt s132). Dann wird die Standard-DMA-Nachbearbeitungsroutine (Schritt s133) ausgeführt.
  • Szenario 6 – Mastermodus
  • Falls ein Subsystem auf dem Registerbus seinen eigenen DMA-Zähler und seine eigene Vervollständigungsunterbrechung hat, im vorliegenden Fall die ATAPI-Schnittstelle 17, kann der kontinuierliche Datenübertragungsmodus benutzt werden. In diesem Beispiel wird der DMA-Kanal 5 benutzt.
  • Unter Bezugnahme auf die 21 wird ein Transfer in diesem Modus durch den relevanten Gerätetreiber 92 gestartet, indem die Quellenstartadresse in das Startadressenregister für den DMA-Kanal 5 eingeschrieben wird (Schritt s141). Dann schreibt der Gerätetreiber 92 die Puffergröße in das Längenregister für den passenden DMA-Kanal (Schritt s142). Nachdem der DMA-Kanal vorbereitet worden ist, ruft der Gerätetreiber 92 die Standard-DMA-Vorbearbeitungsroutine (Schritt s143) auf. Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 92 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal (Schritt s144). Dieser Kontrollwert umfasst:
    CSEL 11100
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 0
    FSEN 0
    TCEN 1
    DBEN 1
    ML 1
    RBEN 0
    MM 1
    DTRA 1
    DR 1
    RTRA 1
    CWD 00
    CWS 00
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in der ATAPI-Schnittstelle 17 gestartet, indem der Gerätetreiber 92 in ein Kontrollregister des Subsystems einschreibt, unter Benutzung der programmierbaren E/A (Schritt s145). Das bewirkt, dass die ATAPI-Schnittstelle 17 den DMA anfordert.
  • Der Direktzugriffsspeicherkontroller 12 fängt nun an die Daten aus dem System-RAM 3 im Burstmodus auszulesen und diese in dem geeigneten FIFO 61 zu speichern.
  • Das Registerbus-Interface(-Schnittstelle) 64 liest die Daten vom Kopf des passenden FIFO 61 aus und sendet diese an die ATAPI-Schnittstelle 17, in Übereinstimmung mit der sekundären DMA-Adresse, die aus der gespeicherten DMA-Startadresse abgeholt wird.
  • Unter Bezugnahme auf die 22 muss bei einer Unterbrechung, die durch das gesetzte TC Flag erzeugt wird, der Puffer, welcher durch das System-RAM 3 benutzt wird, geändert werden (Schritt s151) und die Daten werden in einen leeren Puffer aus dem Benutzeradressraum kopiert (Schritt s152).
  • Unter Bezugnahme auf die 23 muss der Gerätetreiber 92, wenn eine Unterbrechung vorliegt, die durch die ATAPI-Schnittstelle 17 erzeugt worden ist, um das Ende des Datentransfers zu markieren oder um einen Zeitablauf zu markieren, den DMA-Prozeß in der ATAPI-Schnittstelle 17 beenden, indem die passenden Kontrolldaten dort hinein geschrieben werden (Schritt s161) und es wird jedwede Fehlerbehandlungs ausgeführt, die mit der ATAPI-Schnittstelle 17 assoziiert ist (Schritt s162). Die Standard-DMA-Nachbearbeitungsroutine (Schritt s163) wird dann ausgeführt.
  • Szenario 7 – Mastermodus
  • Die Übertragung der Daten durch DMA von dem UMA SDRAM 7 zu dem oben erwähnten UART auf dem Registerbus 21 in dem Datenübertragungsmodus mit fixer Länge wird nun beschrieben werden. Der UART benutzt die DMA-Anforderungsnummer 21, die auf den DMA-Kanal 3 gemappt ist, im vorliegenden Beispiel, um die Daten zu empfangen.
  • Unter Bezugnahme auf die 24 startet der Gerätetreiber 92 für den UART, indem die Quellenstartadresse in das Startadressenregister für den DMA-Kanal 3 eingeschrieben wird (Schritt s171). Dann schreibt der Gerätetreiber 92 den Bytezähler in das Längenregister für den DMA-Kanal 3 (Schritt s172). Nachdem der DMA-Kanal vorbereitet worden ist, ruft der Gerätetreiber 92 die Standard-DMA-Vorbearbeitungsroutine auf (Schritt s173). Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 92 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal 3 (Schritt s174). Dieser Kontrollwert umfasst:
    CSEL 10101
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 0
    FSEN 0
    TCEN 0
    DBEN 0
    ML 0
    RBEN 0
    MM 1
    DTRA 1
    DR 1
    RTRA 1
    CWD 01
    CWS 00
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in dem UART gestartet durch den Gerätetreiber 92, der in ein Kontrollregister des UART schreibt, indem die programmierbare E/A genutzt wird (Schritt s175). Damit wird bewirkt, dass der UART den DMA anfordert.
  • Der Direktzugriffsspeicherkontroller 12 beginnt nun mit dem Lesen der Daten in Bursts vom UMA SDRAM 3 und speichert diese in dem passenden FIFO 61 ab. Die Registerbusschnittstelle 64 des Direktzugriffsspeicherkontrollers 12 gibt die Daten am Kopf des FIFO aus, nämlich an den UART und über den Registerbus 21.
  • Unter Bezugnahme auf die 25 beendet, bei einer Unterbrechung, die das gesetzte PT Flag, der UART oder ein Zeitablauf erzeugt, der Unterbrechungshandhaber den DMA-Prozeß in dem UART 18, indem die passenden Kontrolldaten dort hinein geschrieben werden (Schritt s181) und führt jedwede Fehlerbehandlung aus, die mit dem UART 18 assoziiert ist (Schritt s182). Die Standard-DMA-Nachbearbeitungsroutine (Schritt s183) wird dann ausgeführt.
  • Szenario 8 – Mastermodus
  • Falls ein Subsystem auf dem Registerbus seinen eigenen DMA-Zähler und seine eigene Vervollständigungsunterbrechung hat, für das vorliegende Beispiel die ATAPI- Schnittstelle 17, kann der kontinuierliche Datenübertragungsmodus genutzt werden.
  • Der DMA-Kanal 5 wird bei diesem Beispiel genutzt.
  • Unter Bezugnahme auf die 26 wird ein Transfer in diesem Modus begonnen durch den relevanten Gerätetreiber 92, indem die Quellenstartadresse in das Startadressenregister für den passenden DMA-Kanal (Schritt s191) eingeschrieben wird.
  • Dann schreibt der Gerätetreiber 92 die Puffergröße in das Längenregister des geeigneten DMA-Kanals (Schritt s192) ein. Nachdem der DMA-Kanal vorbereitet worden ist, ruft der Gerätetreiber 92 die Standard-DMA-Vorbereitungsroutine (Schritt s193) auf. Der DMA-Transfer kann dann beginnen.
  • Der Gerätetreiber 92 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal (Schritt s194). Dieser Kontrollwert umfasst:
    CSEL 11100
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 0
    FSEN 0
    TCEN 1
    DBEN 1
    ML 0
    RBEN 0
    MM 1
    DTRA 1
    DR 1
    RTRA 1
    CWD 00
    CWS 00
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in der ATAPI-Schnittstelle 17 durch den Gerätetreiber 92 gestartet, indem in ein Kon trollregister der ATAPI-Schnittstelle 17 eingeschrieben wird, unter Verwendung der programmierbaren E/A (Schritt s195).
  • Der Direktzugriffsspeicherkontroller 12 startet nun das Lesen der Daten von dem UMA SDRAM 3 und speichert diese in dem passenden FIFO 61. Die Registerbusschnittstelle 64 des Direktzugriffsspeicherkontrollersd 12 gibt die Daten vom Kopf des FIFO 61 an die ATAPI-Schnittstelle 17 aus, nämlich mittels des Registerbus 21.
  • Unter Bezugnahme auf die 27 muss, bei einer Unterbrechung, die durch das gesetzte TC Flag erzeugt wird, der Puffer, der bei dem UMA SDRAM 7 benutzt wird, geändert werden (Schritt s201) und die Daten werden in einen leeren Puffer aus dem Benutzeradressraum kopiert (Schritt s202).
  • Unter Bezugnahme auf die 28 beendet, bei einer Unterbrechung, die durch die ATAPI-Schnittstelle 17 erzeugt worden ist, um das Ende des Datentransfers anzuzeigen, oder die durch Zeitablauf erzeugt worden ist, der Unterbrechungshandhaber den DMA-Prozeß in der ATAPI-Schnittstelle 17, indem die passenden Kontrolldaten dort eingeschrieben werden (Schritt s211) und führt jedwede Fehlerbehandlung aus, die mit diesem Subsystem assoziiert ist (Schritt s212). Die Standard-DMA-Nachbearbeitungsroutine wird dann ausgeführt (Schritt s213).
  • Szenario 9 – Mastermodus
  • Der Transfer von Daten durch DMA von dem oben erwähnten UART zu dem System-RAM 3 im Datenübertragungsmodus mit fixer Länge wird nun beschrieben werden, und zwar für einen Fall, in dem der Direktzugriffsspeicherkontroller 12 nicht der externe Busmaster ist.
  • Unter Bezugnahme auf die 29, schreibt der Gerätetreiber 92 für den UART die Burstgröße und den Bytezähler in das Längenregister für den DMA-Kanal 2 (Schritt s221). Nachdem der DMA-Kanal vorbereitet worden ist, ruft der Gerätetreiber 92 die Standard-DMA-Vorbearbeitungsroutine auf (Schritt s222). Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 92 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal 3 ein (Schritt s223). Dieser Kontrollwert umfasst:
    CSEL 10100
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 1
    FSEN 0
    TCEN 0
    DBEN 0
    ML 0
    RBEN 0
    MM 0
    DTRA 0
    DR 0
    RTRA 1
    CWD 00
    CWS 01
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in dem UART durch den Gerätetreiber 92 gestartet, indem in ein Kontrollregister des UART eingeschrieben wird, indem die programmierbare E/A benutzt wird (Schritt s225).
  • Der Direktzugriffsspeicherkontroller 12 beginnt die Daten von dem UART zu lesen, in den passenden FIFO 61.
  • Unter Bezugnahme auf die 30, bei der Erzeugung einer FIFO-Burst-Unterbrechung, die anzeigt, dass ein Burst in dem FIFO von dem UART gespeichert worden ist, aktualisiert der Unterbrechungshandhaber die System-RAM-Adresse, die durch die CPU 2 gehalten wird, auf das Ziel für den nächsten Burst (Schritt s231).
  • Der Burst an Daten wird dann aus dem FIFO 61 direkt durch die CPU 2 ausgelesen und wird in das System-RAM 3 geschrieben (Schritt s232). Nachdem ein Burst gelesen worden ist, wird bestimmt, ob alle zu sendenden Daten wirklich gesendet worden sind (Schritt s233). Falls die Daten noch nicht alle gesendet worden sind, kehrt der Unterbrechungshandhaber zurück. Wenn jedoch alle Daten übertragen worden sind, wird der DMA-Prozeß in dem UART angehalten (Schritt s234), die Fehlerbehandlung für den UART wird ausgeführt (Schritt s235) und die Standard-DMA-Nachbearbeitung wird ausgeführt (Schritt s236).
  • Szenario 10 – Mastermodus
  • Der kontinuierliche Datentransfermodus von einem Subsystem, bei dem der Direktzugriffsspeicherkontroller 12 nicht der externe Busmaster ist, wird im allgemeinen auf die gleiche Art und Weise ausgeführt wie der Datentransfermodus mit fixer Länge. Der Kontrollwert, der in dem Kontrollregister für den DMA-Kanal gesetzt ist, der benutzt wird, unterscheidet sich darin, dass Doppelpufferbenutzung aktiviert ist, anstatt eines Wertes, der in dem DMA-Längenregister gesetzt ist, wobei das Ende des Datentransfers durch das Subsystem bestimmt wird, welches die Daten überträgt.
  • Szenario 11 – Slavemodus
  • Der Transfer an Daten durch DMA zu dem oben erwähnten UART von dem System-RAM 3 im Datentransfermodus mit fixer Länge, für den Fall, dass der Direktzugriffsspeicherkontroller 12 nicht der externe Busmaster ist, wird nun beschrieben werden.
  • Unter Bezugnahme auf die 31, schreibt der Gerätetreiber 92 für den UART die Burstgröße und den Bytezähler in das Längenregister für den DMA-Kanal 2 (Schritt s241). Nachdem der DMA-Kanal vorbereitet worden ist, ruft der Gerätetreiber 92 die Standard-DMA-Vorbearbeitungsroutine (Schritt s242) auf. Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 92 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal 3 ein (Schritt s243). Dieser Kontrollwert umfasst:
    CSEL 10100
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 1
    FSEN 0
    TCEN 0
    DBEN 0
    ML 0
    RBEN 0
    MM 0
    DTRA 0
    DR 1
    RTRA 1
    CWD 00
    CWS 01
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in dem UART gestartet durch den Gerätetreiber 92, indem dieser in ein Kontrollregister des UART schreibt, indem die programmierbare E/A (Schritt s245) genutzt wird.
  • Die CPU 2 schreibt Bursts an Daten direkt in den passenden FIFO 61 und die Daten in dem FIFO 61 wird mit einzelnen Transfers in den UART geschrieben, nämlich mittels der Registerbusschnittstelle 63.
  • Unter Bezugnahme auf die 32, bei der Erzeugung eines FIFO-Burst-Interrupts, der anzeigt, dass ein Burst in dem FIFO gespeichert worden ist, aktualisiert ein Unterbrechungshandhaber die System-RAM-Adresse auf die Quelle für den nächsten Burst (Schritt s251). Ein neuer Burst an Daten von dem System-RAM 3 kann in den FIFO 61 geschrieben werden, durch die CPU 2, wenn der FIFO 61 durch die Registerbusschnittstelle 64 geleert worden ist (Schritt s252). Nachdem ein Burst in einen FIFO geschrieben worden ist, wird bestimmt, ob alle zu sendenden Daten tatsächlich gesendet worden sind (Schritt s253). Falls alle Daten noch nicht gesendet worden sind, kehrt der Unterbrechungshandhaber zurück. Wenn jedoch alle Daten übertragen worden sind, wird der DMA-Prozeß in dem UART gestoppt (Schritt s254), die Fehlerbehandlung für den UART wird ausgeführt (Schritt s255) und die Standard-DMA-Nachbearbeitungsroutine wird ausgeführt (Schritt 256).
  • Szenario 12 – Slavemodus
  • Der kontinuierliche Datentransfermodus vom System-RAM 3 zu einem Subsystem, bei dem der Direktzugriffsspeicherkontroller 12 nicht der externe Busmaster ist, wird im allgemeinen auf die gleiche Art und Weise ausgeführt wie der Datentransfermodus mit fixer Länge. Der Kontrollwert, der in dem Kontrollregister für den DMA-Kanal gesetzt ist, der benutzt wird, unterscheidet sich darin, dass Doppelpufferbenutzung aktiviert ist, undanstatt eines Wertes, der in dem DMA-Längenregister gesetzt ist, wird das Ende des Datentransfers durch das Subsystem bestimmt, welches die Daten überträgt.
  • Der Direktzugriffsspeicherkontroller 12 kann auch die Daten zwischen Subsystemen an dem Registerbus 21 übertragen.
  • Szenario 13 – Zwischen-Subsystemmodus
  • Ein erstes Verfahren zum Übertragen von Daten mittels DMA zwischen zwei Subsystemen auf dem Registerbus 21 im Datenübertragungsmodus mit fixer Länge wird nun beschrieben werden.
  • Unter Bezugnahme auf die 33 startet der Gerätetreiber 92 für das Übertragungssubsystem, indem die Zieladresse in das Startadressenregister für den passenden DMA-Kanal (Schritt s261) eingeschrieben wird. Dann schreibt der Gerätetreiber 92 den Bytezähler in das Längenregister für den DMA-Kanal (Schritt s262). Nachdem der DMA-Kanal vorbereitet worden ist, ruft der Gerätetreiber 92 die Standard-DMA-Vorbereitungsroutine (Schritt s263) auf. Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 52 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal 3 (Schritt s264). Dieser Kontrollwert umfasst:
    CSEL nnnnn
    ENDD 0
    ENDS 0
    PTEN 0/1
    FBEN 0
    FSEN 0
    TCEN 0
    DBEN 0
    ML 0
    RBEN 1
    MM 0
    DTRA 0
    DR 0
    RTRA 1
    CWD nn
    CWS nn
    wobei „n" eine binäre Zahl repräsentiert.
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in dem übertragenden Subsystem durch den Gerätetreiber 92 gestartet, indem in ein Kontrollregister des übertragenden Subsystems geschrieben wird, unter Benutzung der programmierbaren E/A (Schritt s125). Damit wird bewirkt, dass das übertragende Subsystem den DMA anfordert.
  • Der Direktzugriffsspeicherkontroller 12 startet nun das Lesen der Daten aus dem übertragenden Subsystem und speichert diese Daten in dem passenden FIFO 61 ab.
  • Die Registerbusschnittstelle 64 liest die Daten vom Kopf des FIFO 61 aus und sendet diese an das empfangende Subsystem, in Übereinstimmung mit der sekundären DMA-Adresse, die aus der gespeicherten DMA-Startadresse abgeleitet wird.
  • Unter Bezugnahme auf die 34 beendet, bei einer Unterbrechung, die durch das gesetzte PT Flag erzeugt wird, durch das übertragende Subsystem oder durch einen Zeitablauf erzeugt wird, ein Unterbrechungshandhaber den DMA-Prozeß in dem übertragenden Subsystem, indem die passenden Kontrolldaten dorthin geschrieben werden (Schritt s271) und führt jedwede Fehlerbehandlung durch, die mit dem übertragenden Subsystem assoziiert ist (Schritt s272). Die Standard-DMA-Nachbearbeitungsroutine (Schritt s273) wird dann ausgeführt.
  • Szenario 14 – Zwischen-Subsystemmodus
  • Ein erstes Verfahren zum Übertragen von Daten mittels DMA zwischen zwei Subsystemen auf dem Registerbus 21 im kontinuierlichen Datenübertragungsmodus wird nun beschrieben werden.
  • Unter wiederholter Bezugnahme auf die 33 startet der Gerätetreiber 92 für das Übertragungssubsystem, indem die System-RAM-Adresse in das Startadressenregister für den passenden DMA-Kanal (Schritt s261) eingeschrieben wird. Nachdem der DMA-Kanal vorbereitet worden ist, ruft der Gerätetreiber 92 die Standard-DMA-Vorbereitungsroutine (Schritt s262) auf. Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 52 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal 3 (Schritt s263). Dieser Kontrollwert umfasst:
    CSEL nnnnn
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 0
    FSEN 0
    TCEN 0
    DBEN 1
    ML 0
    RBEN 1
    MM 0
    DTRA 0
    DR 0
    RTRA 1
    CWD nn
    CWS nn
    wobei „n" eine binäre Zahl repräsentiert.
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in dem übertragenden Subsystem durch den Gerätetreiber 92 gestartet, indem in ein Kontrollregister des übertragenden Subsystems geschrieben wird, unter Benutzung der programmierbaren E/A (Schritt s264). Damit wird bewirkt, dass das übertragende Subsystem den DMA anfordert. Danach startet der DMA-Prozeß in dem übertragenden Subsystem.
  • Der Direktzugriffsspeicherkontroller 12 startet nun das Lesen der Daten aus dem übertragenden Subsystem und speichert diese Daten in dem passenden FIFO 61 ab.
  • Die Registerbusschnittstelle 64 liest die Daten vom Kopf des passenden FIFO 61 aus und sendet diese an das empfangende Subsystem, in Übereinstimmung mit der sekundären DMA-Adresse, die aus der gespeicherten DMA-Startadresse abgeleitet wird.
  • Unter wiederholter Bezugnahme auf die 34 beendet bei einer Unterbrechung, die durch das übertragende Subsystem oder durch einen Zeitablauf erzeugt wird, ein Unterbrechungshandhaber den DMA-Prozeß in dem übertragenden Subsystem, indem die passenden Kontrolldaten dorthin geschrieben werden (Schritt s271) und führt jedwede Fehlerbehandlung durch, die mit dem übertragenden Subsystem assoziiert ist (Schritt s272). Die Standard-DMA-Nachbearbeitungsroutine (Schritt s273) wird dann ausgeführt.
  • Szenario 15 – Zwischen-Subsystemmodus
  • Ein zweites Verfahren zum Übertragen von Daten mittels DMA zwischen zwei Subsystemen auf dem Registerbus 21 im Datenübertragungsmodus mit fixer Länge wird nun beschrieben werden.
  • Unter wiederholter Bezugnahme auf die 33 startet der Gerätetreiber 92 für das übertragende Subsystem bzw. für das Übertragungssubsystem, indem die System-RAM-Adresse in das Startadressenregister für den passenden DMA-Kanal (Schritt s261) eingeschrieben wird. Dann schreibt der Gerätetreiber 92 den Bytezähler in das Längenregister für den DMA-Kanal (Schritt s262) ein. Nachdem der DMA-Kanal vorbereitet worden ist, ruft der Gerätetreiber 92 die Standard-DMA-Vorbereitungsroutine (Schritt s263) auf. Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 52 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal 3 (Schritt s264). Dieser Kontrollwert umfasst:
    CSEL nnnnn
    ENDD 0
    ENDS 0
    PTEN 0/1
    FBEN 0
    FSEN 0
    TCEN 0
    DBEN 0
    ML 0
    RBEN 1
    MM 0
    DTRA 0
    DR 0
    RTRA 1
    CWD nn
    CWS nn
    wobei „n" eine binäre Zahl repräsentiert.
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in dem empfangenden Subsystem durch den Gerätetreiber 92 gestartet, indem in ein Kontrollregister des empfangenden Subsystems geschrieben wird, unter Benutzung der programmierbaren E/A (Schritt s265). Damit wird bewirkt, dass das empfangende Subsystem den DMA anfordert.
  • Der Direktzugriffsspeicherkontroller 12 startet nun das Lesen der Daten aus dem übertragenden Subsystem und speichert diese Daten in dem passenden FIFO 61 ab. Die Registerbusschnittstelle 64 liest die Daten vom Kopf des passenden FIFO 61 aus und sendet diese an das empfangende Subsystem, in Übereinstimmung mit der primären DMA-Adresse.
  • Unter erneuter Bezugnahme auf die 34 beendet, bei einer Unterbrechung, die durch das gesetzte PT Flag erzeugt wird, die durch das empfangende Subsystem oder durch einen Zeitablauf erzeugt wird, ein Unterbrechungshandhaber den DMA-Prozeß in dem Empfangs-Subsystem, indem die passenden Kontrolldaten dorthin geschrieben werden (Schritt s271) und führt jedwede Fehlerbehandlung durch, die mit dem übertragenden Subsystem assoziiert ist (Schritt s272).
  • Szenario 16 – Zwischen-Subsystemmodus
  • Ein zweites Verfahren zum Übertragen von Daten mittels DMA zwischen zwei Subsystemen auf dem Registerbus 21 im kontinuierlichen Datenübertragungsmodus wird nun beschrieben werden.
  • Unter wiederholter Bezugnahme auf die 33 startet der Gerätetreiber 92 für das übertragende Subsystem bzw. für das Übertragungssubsystem, indem die System-RAM-Adresse in das Startadressenregister für den passenden DMA-Kanal (Schritt s261) eingeschrieben wird. Nachdem der DMA-Kanal vorbereitet worden ist, ruft der Gerätetreiber 92 die Standard-DMA-Vorbereitungsroutine (Schritt s262) auf. Der DMA-Transfer kann nun beginnen.
  • Der Gerätetreiber 52 schreibt einen Kontrollwert in das Kontrollregister für den DMA-Kanal 3 (Schritt s263). Dieser Kontrollwert umfasst:
    CSEL nnnnn
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 0
    FSEN 0
    TCEN 0
    DBEN 1
    ML 0
    RBEN 1
    MM 0
    DTRA 0
    DR 1
    RTRA 1
    CWD nn
    CWS nn
    wobei „n" eine binäre Zahl repräsentiert.
  • Der Direktzugriffsspeicherkontroller 12 ist nun konfiguriert. Der DMA-Prozeß wird in dem empfangenden Subsystem durch den Gerätetreiber 92 gestartet, indem in ein Kontrollregister des empfangenden Subsystems geschrieben wird, unter Benutzung der programmierbaren E/A (Schritt s265). Damit wird bewirkt, dass das empfangende Subsystem den DMA anfordert. Danach startet der DMA-Prozeß in dem Empfangs-Subsystem.
  • Der Direktzugriffsspeicherkontroller 12 startet nun das Lesen der Daten aus dem übertragenden Subsystem und speichert diese Daten in dem passenden FIFO 61 ab. Die Registerbusschnittstelle 64 liest die Daten vom Kopf des passenden FIFO 61 aus und sendet diese an das empfangende Subsystem, in Übereinstimmung mit der primären DMA-Adresse.
  • Unter erneuter Bezugnahme auf die 34 beendet, bei einer Unterbrechung, die durch das übertragende Subsystem oder durch einen Zeitablauf erzeugt wird, ein Unterbrechungshandhaber den DMA-Prozeß in dem Empfangs-Subsystem, indem die passenden Kontrolldaten dorthin geschrieben werden (Schritt s271) und führt jedwede Fehlerbehandlung durch, die mit dem empfangenden Subsystem assoziiert ist (Schritt s272). Die Standard-DMA-Nachbearbeitungsroutine (Schritt s273) wird dann ausgeführt.
  • Szenario 17 – Externer Modus
  • Ein Transfer mittels DMA von einem UART auf dem Registerbus zu dem System-RAM 3 unter der Kontrolle der CPU und deren Direktzugriffsspeicherkontrollers wird im folgenden beschrieben werden. Der UART nutzt die DMA-Anforderungsnummer 20, die auf den DMA-Kanal 2 in diesem Beispiel gemappt ist.
  • Unter Bezugnahme auf die 35 startet der Gerätetreiber für den UART, indem er die Burstgröße und die Transferlänge in Bytes in das DMA-Längenregister des DMA-Kanals 2 einschreibt (Schritt s281). Die Standard-DMA-Vorverarbeitung wird dann ausgeführt (Schritt s282) und die DMA-Operation wird in dem UART gestartet, indem das passende DMA-Kontrollregister gesetzt wird (Schritt s283). Der Wert, der in dem Kontrollregister gesetzt wird, umfasst:
    CSEL 10100
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 0
    FSEN 0
    TCEN 0
    DBEN 0
    ML 0
    RBEN 0
    MM 0
    DTRA 0
    DR 0
    RTRA 1
    CWD 00
    CWS 01
  • Die DMA-Kanalnummer 2 wird in das EDMS Feld des externen DMA-Auswahlregisters eingeschrieben und das EDMA Bit wird auf 1 gesetzt und der DMA-Kontroller in der CPU 2 ist vorbereitet. Der Direktzugriffsspeicherkontroller 12 und der DMA-Kontroller der CPU sind nun konfiguriert. Der DMA-Prozeß wird gestartet in dem UART durch den Gerätetreiber, indem dieser in seine Kontrollregister schreibt, unter Benutzung der programmierbaren E/A. Damit wird bewirkt, dass der UART den DMA anfordert, indem er auf der DMA-Anforderungsleitung 20 ein Signal sendet. Der Direktzugriffsspeicherkontroller 12 beginnt dann mit dem Lesen der Daten, 2 Bytes zeitgleich, von dem UART, und schreibt diese Daten in den passenden FIFO 61 ein.
  • Die Daten in dem zugewiesenen FIFO 61 werden dann durch den DMA-Kontroller der CPU ausgelesen. Dieser Prozeß wird durch Signale kontrolliert, die durch die Systemschnittstelle 62 erzeugt werden, wie oben beschrieben.
  • Unter Bezugnahme auf die 36 wird der DMA beendet, wenn eine Unterbrechung für die CPU 2 empfangen wird, oder wenn eine Unterbrechung wegen Zeitablauf empfangen wird. Bei Empfang von einer dieser Unterbrechungen wird eine Stop-DMA-Anforderung an die CPU 2 gesendet und das externe DMA-Flag in dem DMA-Kontrollregister wird zurück gesetzt (Schritt s291). Die DMA-Operation der CPU wird dann angehalten (Schritt s292) und die DMA-Operation in dem Subsystem wird an gehalten (Schritt s293). Die Fehlerbehandlung wird ausgeführt (Schritt s294), gefolgt von der DMA-Nachbearbeitung (Schritt s295).
  • Szenario 18 – Externer Modus
  • Ein Transfer vom System-RAM 3 zu der ATAPI-Schnittstelle unter der Kontrolle des Direktzugriffsspeicherkontrollers der CPU wird nun beschrieben werden. Dieses Beispiel benutzt den DMA-Kanal 5.
  • Unter Bezugnahme auf die 37 startet der Gerätetreiber für die ATAPI-Schnittstelle 17, indem die Burstgröße und die Transferlänge in Bytes in das DMA-Längenregister des DMA-Kanals 5 eingeschrieben wird (Schritt s301). Die Standard-DMA-Vorverarbeitung wird dann ausgeführt (Schritt s302) und die DMA-Operation wird in der ATAPI-Schnittstelle 17 gestartet, indem das passende DMA-Kontrollregister gesetzt wird (Schritt s303). Der Wert, der in dem Kontrollregister gesetzt wird, umfasst:
    CSEL 11100
    ENDD 0
    ENDS 0
    PTEN 0
    FBEN 0
    FSEN 0
    TCEN 0
    DBEN 0
    ML 0
    RBEN 0
    MM 0
    DTRA 0
    DR 1
    RTRA 1
    CWD 00
    CWS 00
  • Die DMA-Kanalnummer 5 wird in das EDMS Feld des externen DMA-Auswahlregisters geschrieben und das EDMA Bit wird auf 1 gesetzt und der DMA-Kontroller in der CPU 2 ist vorbereitet. Der Direktzugriffsspeicherkontroller 12 und der DMA-Kontroller der CPU sind nun konfiguriert. Der DMA-Prozeß wird in der ATAPI-Schnittstelle 17 durch den Gerätetreiber gestartet, indem in ihre Kontrollregister geschrieben wird, unter Verwendung der programmierbaren E/A. Damit wird bewirkt, dass der ATAPI den DMA anfordert, indem auf der DMA-Anforderungsleitung 28 ein Signal gesendet wird. Der Direktzugriffsspeicherkontroller 12 fordert dann den DMA von dem DMA-Kontroller der CPU an. Der DMA-Kontroller der CPU antwortet durch Senden eines Bursts von Daten zu dem Direktzugriffsspeicherkontroller 12, der diese in dem FIFO für den DMA-Kanal 0 speichert. Die Registerbusschnittstelle 63 liest die Daten aus dem FIFO 61 wortweise aus und sendet die Daten zu der ATAPI-Schnittstelle 17. Falls ausreichende Speicher/Raum in dem FIFO 61 für einen Burst vorhanden ist, wird eine weitere DMA-Anforderung zu dem DMA-Kontroller der CPU geschickt.
  • Unter Bezugnahme auf die 38 wird der DMA beendet beim Empfang einer Unterbrechung für die CPU 2 oder beim Empfang einer Unterbrechung aufgrund Zeitablauf. Beim Empfang einer dieser Unterbrechungen wird eine HALT-DMA-Anforderung an die CPU 2 geschickt und das externe DMA-Flag in dem DMA-Kontrollregister wird zurückgesetzt (Schritt s311). Die DMA-Operation der CPU wird dann angehalten (Schritt s312) und die DMA-Operation in dem Subsystem wird angehalten (Schritt s313). Die Fehlerbehandlung wird ausgeführt (Schritt s314), gefolgt von der DMA-Nachbearbeitung (Schritt s315).
  • Unter Bezugnahme auf die 39, umfasst die zuvor erwähnte Vorbearbeitung die Bestimmung, ob die Übertragung eine Zwischen-Subsystem-Übertragung (Schritt s321) ist, und falls nicht, das Löschen der Anforderungswartelinie in dem Direktzugriffsspeicherkontroller 12 für die primäre DMA-Adresse (Schritt s322), indem das DMA-Subsystem-Anforderungsstatusregister RS Flag für die primäre DMA-Adresse auf 1 gesetzt wird und indem alle anderen RS Flags auf 0 gesetzt werden. Falls der Transfer eine Zwischen-Subsystem-Übertragung ist (Schritt s321), dann werden die DMA-Anforderungswartelinie in dem Direktzugriffsspeicherkontroller 12 für sowohl die primäre als auch die sekundäre DMA-Adresse gelöscht (Schritt s323), indem die DMA-Subsystem-Anforderungsstatusregister RS Flags für die primäre und die sekundäre DMA-Adresse auf 1 gesetzt werden und alle anderen RS Flags auf 0 gesetzt werden.
  • Unter Bezugnahme auf die 40 umfasst die oben erwähnte Nachbearbeitung die Bestimmung, ob der Direktzugriffsspeicherkontroller 12 als Busmaster für den Pixelbus 20 oder den externen Bus 8, 9 arbeitet (Schritt s331). Falls ja, werden die DTRA, RTRA und DBEN Flags gelöscht (Schritt s332) bevor der DMA-Kanal angehalten wird, durch Löschen des korrespondierenden Kontrollregisters (Schritt s333), andernfalls wird das Kontrollregister direkt nach dem Schritt s331 gelöscht. Schließlich werden die anderen Flags und Zähler gelöscht, die mit dem DMA-Kanal assoziiert sind und der FIFO 61 wird entleert.
  • Es ist noch anzumerken, dass die Ausführungsformen, die oben beschrieben worden sind, auf zahlreiche Arten verändert werden können. Zum Beispiel können die Anzahl und die Art der Subsysteme an dem Registerbus und dem Pixelbus geändert werden. Ebenso können andere Bus-Protokolle eingesetzt werden.

Claims (23)

  1. Bauteil für ein Computersystem, welches als Burst-Übertragungsmodusproxy zum Überbrücken eines ersten Bus, der in einem Burst-Übertragungsmodus (20) betreibbar ist, mit einem Einzel-Übertragungsmodusbus (21), mit: einer Mehrzahl von Pufferspeichern (61), zum Zwischenspeichern von Datenübertragungen zwischen einem Burstmodusbus und einem Einzel-Übertragungsmodusbus; einer ersten Burstmodusbus-Schnittstelle (62); einer zweiten Burstmodusbus-Schnittstelle (63); einer Einzel-Übertragungsmodus-Schnittstelle (64); und ferngesteuert programmierbaren Kontrollregistermitteln (65), wobei die erste Burstmodusbus-Schnittstelle (62) in Abhängigkeit von Kontrolldaten in den Registermitteln betreibbar ist, um die Pufferspeicher (61) auf den ersten Burstmodusbus (20) zu schalten, sowie die Einzel-Übertragungsmodus-Schnittstelle (64) in Abhängigkeit von Kontrolldaten in den Registermitteln betreibbar ist, um die Pufferspeicher (61) auf den Einzel-Übertragungsmodusbus (21) zu schalten, sowie die zweite Burstmodusbus-Schnittstelle (63) in Abhängigkeit von Kontrolldaten in den Registermitteln betreibbar ist, um die Pufferspeicher (61) auf einen zweiten Burstmodusbus (8, 9) zu schalten.
  2. Bauteil für ein Computersystem nach Anspruch 1, wobei die Pufferspeicher (61) eine Vielzahl von FIFO's umfassen.
  3. Bauteil für ein Computersystem nach Anspruch 1 oder 2, wobei die Pufferspeicher (61) mittels Zellen eines Speichers mit wahlfreiem Zugriff implementiert sind.
  4. Bauteil für ein Computersystem nach Anspruch 3, wobei der Speicher mit wahlfreiem Zugriff ein Zweianschlußspeicher mit wahlfreiem Zugriff ist, wobei sich die erste Burstmodusbus-Schnittstelle (62) und die Einzel-Übertragungsmodus- Schnittstelle (64) einen Anschluß des Speichers mit wahlfreiem Zugriff teilen sowie die zweite Burstmodusbus-Schnittstelle (63) den anderen Anschluß des Speichers mit wahlfreiem Zugriff benutzt.
  5. Bauteil für ein Computersystem nach Anspruch 3 oder 4, wobei die Anordnungen und Größen der FIFO's in dem Speicher mit wahlfreiem Zugriff durch Daten in den Kontrollregistermitteln (65) definiert sind.
  6. Bauteil für ein Computersystem nach Anspruch 3, 4 oder 5, wobei die erste Burstmodusbus-Schnittstelle mittels der Kontrollregistermittel (65) konfigurierbar ist, um es einer entfernten Einrichtung zu ermöglichen, einen Burst an Daten direkt in die Zellen zu schreiben, die einen der Pufferspeicher ausbilden.
  7. Bauteil für ein Computersystem nach Anspruch 3, 4 oder 5, wobei die erste Burstmodusbus-Schnittstelle (62) mittels der Kontrollregistermittel (65) konfigurierbar ist, um es einer entfernten Einrichtung zu ermöglichen, einen Burst an Daten direkt aus den Zellen zu lesen, die einen der Pufferspeicher ausbilden.
  8. Bauteil für ein Computersystem nach irgendeinem der Ansprüche 3 bis 7, wobei die Burstmodusbus-Schnittstellen (62, 63) mittels der Kontrollregistermittel (65) konfigurierbar sind, um einen Burst an Daten aus einem der Pufferspeicher auszulesen und um diese über einen Burstmodusbus auf eine entfernte Adresse zu schreiben, wobei die entfernte Adresse und die Pufferspeicher durch die Daten in den Kontrollregistermitteln bestimmt sind.
  9. Bauteil für ein Computersystem nach irgendeinem der Ansprüche 3 bis 8, wobei die Burstmodusbus-Schnittstellen (62, 63) mittels der Kontrollregistermittel derart konfigurierbar sind, um einen Burst an Daten aus einer entfernten Adresse über einen Burstmodusbus auszulesen und um diese in einen der Pufferspeicher zu schreiben, wobei der Pufferspeicher und die entfernte Adresse durch die Daten in den Kontrollregistermitteln bestimmt sind.
  10. Bauteil für ein Computersystem nach irgendeinem der Ansprüche 2 bis 9, wobei die Einzel-Übertragungsmodusbus-Schnittstelle (64) derart konfiguriert ist, um Daten aus dem Kopf eines FIFO auszulesen und um diese auf eine entfernte Adresse zu schreiben, identifiziert mittels eines FIFO zur Adressenabbildung, die durch die Kontrollregister zur Verfügung gestellt werden, über einen Einzel-Übertragungsmodusbus (21).
  11. Bauteil für ein Computersystem nach irgendeinem der Ansprüche 2 bis 10, umfassend Kontrollmittel für einen Speicher mit Direktzugriff, die auf Anforderungssignale zum Direktzugriff auf den Speicher reagieren, wobei die Einzel-Übertragungsmodusbus-Schnittstelle (64) in Antwort auf ein Anforderungssignal zum Direktzugriff auf den Speicher betreibbar ist, welches die Zugriffsmittel für den Direktspeicher empfangen, um Daten von einer entfernten Adresse zu einem der FIFO's über den Einzel-Übertragungsmodusbus zu übertragen.
  12. Bauteil für ein Computersystem nach Anspruch 11, wobei die Kontrollregister derart programmierbar sind, dass der FIFO in Abhängigkeit von der Quelle des Anforderungssignals zum Direktzugriff auf den Speicher ausgewählt wird.
  13. Bauteil für ein Computersystem nach irgendeinem der Ansprüche 2 bis 12, umfassend Kontrollmittel für einen Speicher mit Direktzugriff, die auf Anforderungssignale zum Direktzugriff auf den Speicher reagieren, wobei die Einzel-Übertragungsmodusbus-Schnittstelle (64) in Antwort auf ein Anforderungssignal zum Direktzugriff auf den Speicher betreibbar ist, welches die Zugriffsmittel für den Direktspeicher empfangen, um Daten zu einer entfernten Adresse von einem der FIFO's über den Einzel-Übertragungsmodusbus zu übertragen.
  14. Bauteil für ein Computersystem nach Anspruch 13, wobei die Kontrollregister derart programmierbar sind, dass der FIFO in Abhängigkeit von der Quelle des Anforderungssignals zum Direktzugriff auf den Speicher ausgewählt wird.
  15. Bauteil für ein Computersystem nach irgendeinem der Ansprüche 2 bis 14, wobei die erste Burstmodusbus-Schnittstelle (62) und die Einzel-Übertragungsmodus bus-Schnittstelle (64) konfiguriert sind, um die FIFO's für Einzel-Übertragungsmodus-Übertragungen zu umgehen, zwischen einem Burstmodusbus, der mit der Burstmodusbus-Schnittstelle verbunden ist, und einem Einzel-Übertragungsmodusbus, der mit der Einzel-Übertragungsmodusbus-Schnittstelle verbunden ist.
  16. Bauteil für ein Computersystem nach Anspruch 15, wobei die Burstmodusbus-Schnittstelle (62) die Einzel-Übertragungsmodus-Übertragungen von den Burstmodus-Übertragungen mittels der zugehörigen Adressensignale unterscheidet.
  17. Bauteil für ein Computersystem nach Anspruch 15 oder 16, wobei die Einzel-Übertragungsmodus-Schnittstelle (64) konfiguriert ist, um den Zugriff auf einen Einzel-Übertragungsmodusbus (21) zu begrenzen, der damit für Einzel-Übertragungsmodus-Übertragungen von einem Burstmodusbus verbunden ist, der mit der ersten Burstmodusbus-Schnittstelle verbunden ist.
  18. Bauteil für ein Computersystem nach Anspruch 17, wobei die Einzel-Übertragungsmodus-Schnittstelle (64) einen Zähler um einen Wert in einem bestimmten Register der Kontrollregister erhöht, für jeden Zyklus einer Uhr und während eine Einzel-Übertragungsmodus-Übertragung stattfindet, wobei die FIFO's umgangen werden und der Zugriff auf den Einzel-Übertragungsmodusbus verhindert wird, sowie, wenn der Zähler einen Schwellenwert erreicht, der in einem bestimmten Register der Kontrollregister definiert ist, der Zähler um Eins für jeden Zyklus der Uhr heruntergezählt wird, wenn keine Einzel-Übertragungsmodus-Übertragung stattfindet.
  19. Peripherieschaltkreis zum Einsatz in einer Computervorrichtung, wobei der Schaltkreis umfasst: ein Bauteil (12) für ein Computersystem nach einem der vorhergehenden Ansprüche; einen ersten Burstmodusbus (20), der mit der zweiten Burstmodusbus-Schnittstelle des Bauteils des Computersystems verbunden ist; einen Einzel-Übertragungsmodusbus (21), der mit der Einzel-Übertragungsmodusbus-Schnittstelle des Bauteils des Computersystems verbunden ist; und einen Schnittstellen-Schaltkreis (11), um den Peripherieschaltkreis mit dem zweiten Burstmodusbus (8, 9) zu verbinden, wobei der Schaltkreis effektiv den ersten Burstmodusbus (20) oder die erste Burstmodusbus-Schnittstelle (62) des Bauteils des Computersystems mit dem zweiten Burstmodusbus (8, 9) verbindet, in Abhängigkeit von einer Adresse, die mit einer Datenübertragung über den Schnittstellen-Schaltkreis (11) assoziiert ist.
  20. Peripherieschaltkreis nach Anspruch 19, umfassend einen SDRAM (7), auf den über den ersten Burstmodusbus (20) zugegriffen wird.
  21. Peripherieschaltkreis nach Anspruch 19 oder 20, umfassend ein Untersystem (47), welches einen Direktzugriff auf den ersten Burstmodusbus (20) hat, um Signaldaten zu übertragen und um auf den Einzel-Übertragungsmodusbus (21) direkt zuzugreifen, zur Übertragung von Kontrolldaten.
  22. Peripherieschaltkreis nach Anspruch 19, 20 oder 21, umfassend ein Untersystem, welches einen Direktzugriff auf den Einzel-Übertragungsmodusbus hat, um sowohl Signaldaten als auch Kontrolldaten zu übertragen.
  23. Computersystem mit einer zentralen Recheneinheit (2) und mit einem Burstmodusbus (8), auf den die zentrale Recheneinheit und ein Peripherieschaltkreis (5) zugreifen können, gemäß einem der Ansprüche 19 bis 22, wobei der Schnittstellen-Schaltkreis (11) den Burstmodusbus (8), auf den die zentrale Recheneinheit zugreifen kann, mit dem ersten Burstmodusbus (20) und dem Bauteil des Computersystems verbindet.
DE60129448T 2001-12-07 2001-12-07 Busbrücke mit einem Burst-Übertragungsmodebus und einem Einzel-Übertragungsmodebus Expired - Lifetime DE60129448T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP01310244A EP1318457B1 (de) 2001-12-07 2001-12-07 Busbrücke mit einem Burst-Übertragungsmodebus und einem Einzel-Übertragungsmodebus

Publications (2)

Publication Number Publication Date
DE60129448D1 DE60129448D1 (de) 2007-08-30
DE60129448T2 true DE60129448T2 (de) 2008-04-10

Family

ID=8182520

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60129448T Expired - Lifetime DE60129448T2 (de) 2001-12-07 2001-12-07 Busbrücke mit einem Burst-Übertragungsmodebus und einem Einzel-Übertragungsmodebus

Country Status (5)

Country Link
US (1) US6954818B2 (de)
EP (1) EP1318457B1 (de)
JP (1) JP2003196226A (de)
AT (1) ATE367610T1 (de)
DE (1) DE60129448T2 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI115006B (fi) * 2003-06-13 2005-02-15 Nokia Corp Menetelmä ja järjestely parannellun näyttölaiterajapinnan sovittamiseksi näyttölaitteen ja prosessorin välille
US7136943B2 (en) * 2004-03-18 2006-11-14 International Business Machines Corporation Method and apparatus for managing context switches using a context switch history table
JP4547198B2 (ja) * 2004-06-30 2010-09-22 富士通株式会社 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体
SE533636C2 (sv) * 2004-10-25 2010-11-16 Xinshu Man L L C Anordning vid bussförbindelse i CAN-system
US7496686B2 (en) * 2005-01-28 2009-02-24 Gencsus Localizing a remote event timestamp from a network device with an independent clock method and apparatus
JP2006345285A (ja) * 2005-06-09 2006-12-21 Sharp Corp 映像機器
US7444442B2 (en) * 2005-12-13 2008-10-28 Shashank Dabral Data packing in a 32-bit DMA architecture
US7685371B1 (en) * 2006-04-19 2010-03-23 Nvidia Corporation Hierarchical flush barrier mechanism with deadlock avoidance
FR2901618A1 (fr) * 2006-05-24 2007-11-30 St Microelectronics Sa Controleur de dma, systeme sur puce comprenant un tel controleur de dma, procede d'echange de donnees par l'intermediaire d'un tel controleur de dma
US20080005257A1 (en) * 2006-06-29 2008-01-03 Kestrelink Corporation Dual processor based digital media player architecture with network support
US7856516B2 (en) * 2006-10-27 2010-12-21 Kyocera Mita Corporation Interfacing incompatible signaling using generic I/O and interrupt routines
US7924296B2 (en) * 2007-02-20 2011-04-12 Mtekvision Co., Ltd. System and method for DMA controlled image processing
US7673091B2 (en) * 2007-04-24 2010-03-02 Texas Instruments Incorporated Method to hide or reduce access latency of a slow peripheral in a pipelined direct memory access system
US8041855B1 (en) * 2009-01-27 2011-10-18 Xilinx, Inc. Dual-bus system for communicating with a processor
JP5347772B2 (ja) * 2009-07-01 2013-11-20 富士通株式会社 転送速度設定方法、データ転送装置及び情報処理システム
DE102011009518B4 (de) * 2011-01-26 2013-09-12 Ruprecht-Karls-Universität Heidelberg Schaltungsanordnung für Verbindungsschnittstelle
US20140082238A1 (en) * 2012-09-14 2014-03-20 Nvidia Corporation Method and system for implementing a control register access bus
US9563586B2 (en) * 2013-04-11 2017-02-07 Apple Inc. Shims for processor interface
CN104915213B (zh) * 2015-06-19 2018-05-18 东南大学 一种可重构系统的局部重构控制器
US9927997B2 (en) * 2015-12-21 2018-03-27 Sandisk Technologies Llc Methods, systems, and computer readable media for automatically and selectively enabling burst mode operation in a storage device
JP2017208750A (ja) * 2016-05-20 2017-11-24 ローム株式会社 映像監視装置、映像表示システム、及び車両
CN112835842A (zh) * 2021-03-05 2021-05-25 深圳市汇顶科技股份有限公司 端序处理方法、电路、芯片以及电子终端

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537602A (en) * 1988-09-16 1996-07-16 Hitachi, Ltd. Process system for controlling bus system to communicate data between resource and processor
JP2601960B2 (ja) * 1990-11-15 1997-04-23 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理方法及びその装置
US5897667A (en) * 1993-11-16 1999-04-27 Intel Corporation Method and apparatus for transferring data received from a first bus in a non-burst manner to a second bus in a burst manner
US5771359A (en) * 1995-10-13 1998-06-23 Compaq Computer Corporation Bridge having a data buffer for each bus master
US6298407B1 (en) * 1998-03-04 2001-10-02 Intel Corporation Trigger points for performance optimization in bus-to-bus bridges
US6247086B1 (en) * 1998-11-12 2001-06-12 Adaptec, Inc. PCI bridge for optimized command delivery
JP3976927B2 (ja) * 1999-01-25 2007-09-19 キヤノン株式会社 バス制御装置

Also Published As

Publication number Publication date
ATE367610T1 (de) 2007-08-15
EP1318457A1 (de) 2003-06-11
EP1318457B1 (de) 2007-07-18
US20030200373A1 (en) 2003-10-23
DE60129448D1 (de) 2007-08-30
US6954818B2 (en) 2005-10-11
JP2003196226A (ja) 2003-07-11

Similar Documents

Publication Publication Date Title
DE60129448T2 (de) Busbrücke mit einem Burst-Übertragungsmodebus und einem Einzel-Übertragungsmodebus
DE19900345B4 (de) Schnittstellenmodul für einen Universellen Seriellen Bus (USB) zur Verbindung mit einem USB über eine Programmierschnittstelle für eine USB-Funktion und Vorrichtung zum Anschluß an einen universellen seriellen Bus
DE19900369B4 (de) Vorrichtung zum Anschluß an einen Universal Serial Bus (USB) und Verfahren zum Betreiben eines Steuerendpunktes an einem Universal Serial Bus (USB)
DE19900325B4 (de) Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung
DE19900290B4 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE60309391T2 (de) Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren
DE19855645C2 (de) Verfahren und Anordnung zum Betreiben eines Direktzugriffsspeichers mit verringertem Energieverbrauch
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE60128396T2 (de) Computer-peripheriegerät, das betreibbar bleibt, wenn die operationen des zentralprozessors suspendiert werden
DE60026539T2 (de) Ein-/ausgabeadressübersetzung in einer brücke in unmittelbarer nähe eines lokalen ein-/ausgabebuses
DE60013470T2 (de) Gerät zur initialisierung einer rechnerschnittstelle
DE112011103209B4 (de) Verfahren, vorrichtung und system zur steuerung von anzeigeaktivität
DE69627604T2 (de) Verfahren und vorrichtung zum verarbeiten von e/a-anforderungen
DE69908765T2 (de) Verfahren und vorrichtung zur steuerung des datenflusses zwischen miteinander durch einen speicher verbundenen geräten
DE19983026B4 (de) Brücke zwischen zwei Bussen mit einem Puffer mit einer einstellbaren Mindestspeicherraummenge für ein Akzeptieren einer Schreibanforderung und Verfahren hierzu
DE102004063847B4 (de) Schaltungsanordnung zur DMA-Bilddatenverarbeitung und Kameraschnittstelle
DE69828074T2 (de) Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl
DE69935065T2 (de) Datenübertragungssteuerinrichtung und elektronisches gerät
DE69829987T2 (de) E/a bus mit schnellen 16-bit zerteilten transaktionen
DE19900345A9 (de) Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
DE10234991A1 (de) Hostcontrollerdiagnose für einen seriellen Bus
DE19900290A9 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE102006041793A1 (de) Verfahren und System zum Liefern von Multimediadaten von verschiedenen Quellen zu verschiedenen Clientanwendungen
DE102018005753A1 (de) Serdes link training
DE19882975B4 (de) Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus

Legal Events

Date Code Title Description
8364 No opposition during term of opposition