-
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.