-
Die
vorliegende Erfindung betrifft ein Verfahren zum Übertragen
von Daten zwischen einem Speicher und mehreren peripheren Einheiten,
wie beispielsweise einem Busadapter, einem DSL-Anschluss („Digital
Subscriber Line"),
einem Switch oder einem Router etc., mit Hilfe einer Direct Memory Access-Steuerung (DMA) sowie
eine entsprechende DMA-Steuervorrichtung
(DMA-Controller). Insbesondere betrifft die vorliegende Erfindung
ein derartiges DMA-Verfahren bzw. eine derartige DMA-Steuervorrichtung,
die auch bei Heim-Breitbandanwendungen „Quality
of Service" (QoS)
unterstützt,
wobei dies insbesondere sowohl für
die Sende- als auch für
die Empfangsrichtung zutrifft.
-
In
computer- bzw. rechnergestützten
Anwendungen betrifft ein wesentlicher Anteil der Rechneroperationen
die Übertragung
von Daten zwischen einem internen Speicher und externen peripheren
Einheiten bzw. Modulen. Ein einfaches Beispiel ist das Laden von
Daten von einem externen Datenspeicher in den Hauptspeicher eines
Computers, so dass der Prozessor („Central Processing Unit", CPU) auf diese Daten
zugreifen und sie verarbeiten kann. Umgekehrt ist es häufig notwendig,
die an unterschiedlichen Speicherstellen gespeicherten Daten an
verschiedene Eingabe-/Ausgabevorrichtungen zu übertragen oder von diesen Eingabe-/Ausgabevorrichtungen
Daten in den Speicher zu schreiben. Um den Prozessor von der Aufgabe
des Datentransfers zu entlasten, werden hierzu häufig DMA-Controller eingesetzt. Stellt der Prozessor
fest, dass eine Eingabe bzw. Ausgabe von Daten erforderlich ist,
werden von dem Prozessor entsprechende Befehle an den DMA-Controller übertragen,
wobei diese Befehle insbesondere die Adresse der zu übertragenden
Daten, den Umfang der zu übertragenden
Daten und das Ziel der Datenübertragung
umfassen können.
Der DMA-Controller
führt dann
den Datentransfer auf Grundlage dieser Befehle durch, wobei in der
Zwischenzeit der Prozessor mit anderen Operationen fortfahren kann,
bis ein von dem DMA-Controller
generierter Interrupt das Ende des Datentransfers anzeigt. Auf diese
Weise kann durch die Unterstützung des
DMA-Controllers erheblich Zeit eingespart werden.
-
DMA-Controller
werden auch in Systemen mit Breitbandzugang, insbesondere mit DSL-Zugang,
eingesetzt. Herkömmlicherweise
wird bei Heimanwendungen mit Breitbandzugang ein Modem für den Internet-Zugang
eingesetzt, wobei ein gleichmäßiger Datenstrom übertragen
wird. Die in herkömmlichen
Breitbandsystemen eingesetzten DMA-Controller übertragen dabei die Daten von
verschiedenen peripheren Einheiten (z.B. Busadapter, DSL-Leitung, Ethernet-Switch
etc.) zu dem Speicher des Systems (d.h. in Empfangsrichtung) sowie
von dem Speicher zu den verschiedenen peripheren Einheiten (d.h.
in Senderichtung) gemäß einem
einfachen „Round
Robin"-Algorithmus, ohne
dass QoS unterstützt
wird, auch wenn gegebenenfalss die peripheren Einheiten selbst QoS
unterstützen
können.
Für reine
Datenanwendungen ist dieser Datentransfermechanismus ausreichend,
wobei jedoch möglicherweise
hierdurch die zukünftigen
Bedürfnisse
in Breitbandsystemen insbesondere für Heimanwendungen nicht erfüllt werden
können.
-
Moderne
Hardwarekomponenten für WAN-Netze
(„Wide
Area Network"),
wie z.B. Gateways, Router, DSLAMs etc., sind üblicherweise in der Lage, QoS
für unterschiedliche
Datenströme
zu unterstützen,
ohne dass jedoch QoS bisher vollständig in die Hardware von Modems
für Breitbandzugang implementiert
worden ist. Dies hat unterschiedliche Gründe, wobei ein Grund insbesondere
darin besteht, dass der Markt für
Heimanwendungen mit Breitbandzugang einem extremen Preisdruck unterliegt.
-
Dennoch
ist es jedoch von erheblicher Bedeutung, dass jede an einem Datentransfer
beteiligte Komponente in den unterschiedlichen Netzwerksystemen
in der Lage ist, QoS effektiv zu unterstützen, um die auch als „Jitter" bekannten Gesamtverzögerungszeitschwankungen
möglichst
minimal zu halten. Dies ist umso wichtiger, da das Bedürfnis zur Übertragung
sowohl von Sprachinformationen als auch von Videoinformationen und
Datenströmen über das
Internet unter Verwendung eines Breitbandzugangs insbesondere für Heimanwendungen
kontinuierlich zunehmen wird.
-
Der
vorliegenden Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren
und eine entsprechend ausgestaltete Vorrichtung für die Übertragung von
Daten zwischen peripheren Einheiten und einem Speicher mittels DMA-Steuerung
bereitzustellen, womit „Quality
of Service" (QoS)
unterstützt
werden kann, wobei dies insbesondere sowohl für die Sende- als auch die Empfangsrichtung
gelten soll.
-
Erfindungsgemäß wird diese
Aufgabe durch ein Verfahren zum Übertragen
von Daten zwischen einem Speicher und mehreren peripheren Einheiten mit
Hilfe einer DMA-Steuerung gemäß Anspruch
1 sowie eine entsprechend ausgestaltete DMA-Steuervorrichtung mit den Merkmalen
des Anspruches 16 gelöst.
Die Unteransprüche
definieren jeweils bevorzugte und vorteilhafte Ausführungsformen
der vorliegenden Erfindung.
-
Erfindungsgemäß werden
den zu übertragenden
Daten Prioritäten
zugewiesen, wobei von der DMA-Steuerung die Daten zwischen dem Speicher und
den einzelnen peripheren Einheiten in Übereinstimmung mit den jeweils
zugewiesenen Prioritäten übertragen
werden.
-
Die
Zuweisung der Prioritäten
erfolgt dabei vorzugsweise für
die Sende- und Empfangsrichtungen voneinander unabhängig, wobei
in Empfangsrichtung die Prioritäten
der DMA-Steuerung von den peripheren Einheiten mitgeteilt werden,
während
in Senderichtung die Prioritäten
von einem Prozessor festgelegt werden, welcher durch die DMA-Steuerung
unterstützt
bzw. entlastet wird, wobei es sich bei dem Prozessor insbesondere
um einen auf demselben Siliziumsubstrat wie die DMA-Steuerung ausgebildeten „Embedded
Processor" handeln
kann. Vorteilhafterweise werden die Prioritäten abhängig von dem jeweiligen Datentyp
in Form von mehreren Prioritätsklassen
festgelegt, wobei die Prioritätsklassen bzw.
Prioritäten
beispielsweise gemäß folgender
Reihenfolge eine zunehmende Wichtigkeit anzeigen: Benutzerdaten-Videodaten-Sprachdaten-Managementdaten.
-
Die
erfindungsgemäß vorgeschlagene
Priorisierung erlaubt eine vollständige Implementierung des „Quality
of Service"-Merkmals auch in
Systeme mit Breitbandzugang für
Heimanwendungen, um somit für
die unterschiedlichen Datenströme
Schwankungen der Laufzeit („Jitter") auszugleichen bzw.
minimal zu halten. Dabei werden von der DMA-Steuerung sowohl in
Senderichtung als auch in Empfangsrichtung diejenigen Daten zuerst
bedient, denen eine höhere
Priorität
zugewiesen worden ist. Liegen während
der Übertragung
von Daten mit einer bestimmten Priorität andere Daten mit einer höheren Priorität vor, so
wird die augenblickliche Datenübertragung unterbrochen,
um die Daten mit der höheren
Priorität übertragen
zu können.
Erst nach Abschluss des Datentransfers der Daten mit der höheren Priorität wird mit
dem Datentransfer der ursprünglichen
Daten fortgefahren. Auf diese Weise ist gewährleistet, dass sowohl in Senderichtung
als auch in Empfangsrichtung stets diejenigen Daten zuerst übertragen
werden, welche die höchste
Priorität
aufweisen bzw. welche von größter Wichtigkeit
sind.
-
Zur
Realisierung des zuvor beschriebenen Prioritätsschemas können in der DMA-Steuerung mehrere
logische Kanäle
vorgesehen sein, wobei jeweils ein logischer Kanal einer bestimmten
peripheren Einheit bzw. einem bestimmten peripheren Modul, beispielsweise
einem Busadapter, einer DSL-Leitung
oder einem Ethernet-Switch etc., zugewiesen sind. Innerhalb der
DMA-Steuerung werden dann den einzelnen logischen Kanälen abhängig von den
jeweils mitgeteilten Prioritäten
die entsprechenden Prioritäten
zugeordnet. Dabei kommt vorzugsweise auch eine Deskriptorliste zum
Einsatz, wobei für
jeden logischen Kanal eine separate Deskriptorliste vorgesehen und
in dem Speicher abgelegt ist. Jeder Deskriptor der Deskriptorliste
kann dabei einen Datenpointer auf die Adresse eines entsprechenden Datenabschnitts
in dem Speicher und eine Angabe über
die Länge
der entsprechenden Daten umfassen. Darüber hinaus kann der Deskriptor
auch Status-/Steuerbits
aufweisen. Der Einsatz dieser Deskriptoren ermöglicht der DMA-Steuerung insbesondere
in Senderichtung, die von dem Prozessor in dem Speicher abgelegten
Daten entsprechend ihrer zugewiesenen Priorität auszulesen, zu verarbeiten und
an die jeweils entsprechende periphere Einheit zu übertragen.
-
Innerhalb
der DMA-Steuerung kommt vorzugsweise ein DMA-Manager als Schnittstelle zu dem zugeordneten
Prozessor zum Einsatz, um Steuer-, Konfigurations- und/oder Statusinformationen sowie
Interrupts an den Prozessor zu übertragen.
Die in dem Speicher abgelegten Deskriptoren werden insbesondere
von einem Deskriptor-Manager der DMA-Steuerung verarbeitet, welcher unter
anderem die Zugriffe auf die in dem Speicher abgelegten Deskriptoren
koordiniert.
-
Die
Erfindung wird vorzugsweise in DMA-Steuerungen für Breitband-Datenübertragungsnetze
zur Unterstützung
des QoS-Merkmals eingesetzt,
wobei die vorliegende Erfindung selbstverständlich nicht auf diesen bevorzugten
Anwendungsbereich beschränkt
ist, sondern grundsätzlich in
jeder beliebigen Art von DMA-Steuerung implementiert werden kann.
-
Die
vorliegende Erfindung wird nachfolgend unter Bezugnahme auf die
beigefügte
Zeichnung anhand bevorzugter Ausführungsbeispiele erläutert.
-
1 zeigt
ein vereinfachtes Blockschaltbild einer DMA-Steuervorrichtung gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung,
-
2 zeigt
eine schematische Darstellung zur Verdeutlichung des Datentransfers
unter Verwendung einer DMA-Steuervorrichtung,
-
3 zeigt
ein Flussdiagramm zur Verdeutlichung der Funktionsweise eines in 1 dargestellten
Deskriptor-Managers,
-
4 zeigt
eine Darstellung zur Verdeutlichung der Funktion der in 1 dargestellten DMA-Steuervorrichtung
bei einem Datentransfer in Empfangsrichtung,
-
5 zeigt
eine Darstellung zur Verdeutlichung der Funktion der in 1 dargestellten DMA-Steuervorrichtung
bei einem Datentransfer in Senderichtung, und
-
6 zeigt
ein schematisches Blockschaltbild eines in 1 gezeigten
DMA-Managers.
-
2 zeigt
eine schematische Darstellung zur Verdeutlichung der generellen
Funktionsweise einer DMA-Steuervorrichtung 1 (DMA-Controller),
wie sie auch auf die vorliegende Erfindung zutrifft.
-
Die
DMA-Steuervorrichtung 1 steuert bzw. koordiniert den Datentransfer
zwischen einem Speicher 4 und mehreren peripheren Einheiten
bzw. peripheren Modulen 5_1...5_N, wobei N die
Anzahl der peripheren Einheiten bezeichnet. Bei den peripheren Einheiten
kann es sich im Prinzip um beliebige Einrichtungen zur Ein- und/oder
Ausgabe von Daten handeln, wie beispielsweise einen Busadapter,
einen DSL-Leitungsanschluss,
einen Ethernet-Switch, einen Router etc. In Senderichtung (TX) werden
die Daten aus dem Speicher 4 ausgelesen und an eine der
peripheren Einheiten übertragen.
In Empfangsrichtung (RX) werden hingegen von der DMA-Steuervorrichtung
die Daten von einer der peripheren Einheiten empfangen und in den
Speicher 4 geschrieben.
-
Wie
nachfolgend noch näher
erläutert
wird, kommt im Rahmen der vorliegenden Erfindung bei dem Datentransfer
sowohl in Senderichtung als auch in Empfangsrichtung eine Prioritätssteuerung
zum Einsatz, so dass von der DMA-Steuervorrichtung 1 zunächst die
Daten mit der höchsten
Priorität übertragen
werden, wobei die Prioritäten
vorzugsweise jeweils auf Datenburstebene (beispielsweise mit einem Umfang
von 32-64 Byte) unterschieden werden, d.h. jeweils nach Übertragung
eines Datenbursts wird von der DMA-Steuervorrichtung 1 erneut
entschieden, ob in der Zwischenzeit ein Datenburst höherer Priorität vorliegt,
wobei in diesem Fall die Übertragung
der Daten des zuvor übertragenen
Datenstroms unterbrochen wird, um zunächst die Daten des Datenstroms
mit der höheren
Priorität
an das gewünschte Ziel
zu übertragen.
-
4 zeigt
ein Beispiel für
einen Datentransfer in Empfangsrichtung, wobei das Auftreten verschiedener
Daten an dem mit den einzelnen peripheren Einheiten 5_1-5_N gekoppelten
Anschluss der DMA-Steuervorrichtung 1 über die Zeit t dargestellt ist.
-
Gemäß 4 liegen
zunächst
Daten DATA1 an der DMA-Steuervorrichtung 1 an,
wobei es sich bei den Daten DATA1 beispielsweise um Videodaten der
peripheren Einheit 5_1 handeln kann, denen die Priorität 2 zugewiesen
worden ist. Diese Daten DATA1 werden von der DMA-Steuervorrichtung 1 in den
Speicher 4 geschrieben. Während des Datentransfers der Daten
DATA1 treten Daten DATA2 einer anderen peripheren Einheit, beispielsweise
der peripheren Einheit 5_2, auf, welche eine höhere Priorität als die
zuvor übertragenen
Daten DATA1 besitzen. Bei den Daten DATA2 kann es sich beispielsweise um
Sprachdaten (VoIP-Daten, „Voice
over IP") mit der
Priorität 1 handeln.
Bei Auftreten der Daten DATA2 unterbricht die DMA-Steuervorrichtung 1 den Datentransfer
der Daten DATA1 und bedient stattdessen die Daten DATA2 mit der
höheren
Priorität, um
diese in den Speicher 4 zu schreiben. Erst nach Abschluss
des Datentransfers der Daten DATA2 kehrt die DMA-Steuervorrichtung 1 wieder
zu dem zuvor unterbrochenen Datenstrom DATA1 zurück, um die restlichen Daten
DATA1 in den Speicher 4 zu schreiben.
-
In 4 bezeichnet
SOP1 bzw. SOP2 den Beginn eines Datenpakets („Start Of Packet") der Daten DATA1
bzw. DATA2, während
EOP1 bzw. EOP2 das Ende des entsprechenden Datenpakets („End of Packet") bezeichnet.
-
5 zeigt
ein Beispiel für
den prioritätsgesteuerten
Datentransfer der DMA-Steuervorrichtung 1 in Senderichtung,
wobei in 5 der Datentransfer von dem
Speicher 4 zu den entsprechenden peripheren Einheiten 5_1-5_N über die
Zeit t dargestellt ist.
-
Zunächst wird
gemäß 5 angenommen, dass
in dem Speicher 4 ein Datenblock DATA1 gespeichert ist,
dem die Priorität 2 zugewiesen
ist. Bei diesem Datenblock DATA1 kann es sich beispielsweise wieder
um Videodaten handeln, welche an die periphere Einheit 5_1 zu übertragen
sind. Die DMA-Steuervorrichtung 1 beginnt
mit dem Auslesen der Daten DATA1 aus dem Speicher 4, um
diese an die periphere Einheit 5_1 zu übertragen. Zu einem bestimmten
Zeitpunkt sind in dem Speicher 4 zusätzlich zu den noch vorhandenen
Daten DATA1 neue Daten DATA2 vorhanden, welche von einem mit der DMA-Steuervorrichtung 1 zusammenarbeitenden Prozessor
in den Speicher 4 geschrieben worden sind. Bei den Daten
DATA2 kann es sich beispielsweise wiederum um Sprachdaten (VoIP-Daten)
der Priorität 1 handeln,
welche somit eine höhere
Priorität als
die zuvor aus dem Speicher 4 ausgelesenen und an die periphere
Einheit 5_1 übertragenen
Daten DATA1 aufweisen. Demzufolge unterbricht die DMA-Steuervorrichtung 1 den
Datentransfer der Daten DATA1 und beginnt sofort mit dem Auslesen
und Übertragen
der Daten DATA2 an die gewünschte
periphere Einheit, beispielsweise an die periphere Einheit 5_2.
Erst nach Abschluss des Datentransfers der Daten DATA2 kehrt die
DMA-Steuervorrichtung 1 wieder zu den noch in dem Speicher 4 vorhandenen Daten
DATA1 zurück,
um die restlichen Daten DATA1 an die gewünschte periphere Einheit 5_1 zu übertragen.
-
Nachdem
die DMA-Steuervorrichtung 1 Datenströme verarbeiten muss, welche
unterschiedlichen Prioritäten
bzw. Prioritätsklassen
zugeordnet sind, muss der DMA-Steuervorrichtung 1 die
jeweilige Priorität
bekannt sein bzw. mitgeteilt werden, so dass die DMA-Steuervorrichtung 1 den
Datentransfer zur Gewährleistung
geringer Verzögerungszeitschwankungen
(„Jitter") und zur Realisierung
des QoS-Dienstes handeln kann. Dabei erhält die DMA-Steuervorrichtung 1 die Information über die
jeweilige Prioritätsklasse
der zu übertragenden
Dateneinheit entweder von der entsprechenden peripheren Einheit
(bei einem Datentransfer in Empfangsrichtung) oder von dem Prozessor
(bei einem Datentransfer in Senderichtung), wobei im letztgenannten Fall
insbesondere eine Deskriptorliste zum Einsatz kommt, in welcher
von dem Prozessor, vorzugsweise einem so genannten „Embedded
Processor", der
mit der DMA-Steuervorrichtung 1 auf
einem gemeinsamen Siliziumsubstrat ausgebildet ist, die zu übertragenden
Daten gespeichert werden.
-
Nach
dem Starten der DMA-Steuervorrichtung 1 überprüft diese
kontinuierlich und in regelmäßigen Abständen, ob
neue Daten der peripheren Einheiten 5_1-5_N oder
neue, noch nicht verwendete Datendeskriptoren in der Deskriptorliste
vorhanden sind. Bei Feststellen von neu zu übertragenden Daten startet
die DMA-Steuervorrichtung mit dem Datentransfer derjenigen Dateneinheit
in Sende- oder Empfangsrichtung, welche die höchste Priorität besitzt.
Treten während
eines Datentransfers in Sende- oder Empfangsrichtung neue Daten
mit einer höheren
Priorität
als die augenblicklich übertragenen
Daten auf, so wird – wie
bereits zuvor beschrieben – der augenblickliche
Datentransfer unterbrochen, und die Daten mit der höheren Priorität werden übertragen.
-
Dabei
gewährleistet
die DMA-Steuervorrichtung 1 eine echte Vollduplex-Funktionalität, da der Datentransfer
in Senderichtung und der Datentransfer in Empfangsrichtung vollkommen
unabhängig voneinander
durchgeführt
werden, wobei insbesondere in Senderichtung und Empfangsrichtung
voneinander unabhängige
Prioritätsmodule
implementiert sind.
-
Die
Auswertung der Prioritäten
der vorhandenen Daten sowie die Entscheidung, welche Daten auf Grundlage
der festgestellten Prioritäten
als nächstes
zu übertragen
sind, wird vorzugsweise jeweils nach Übertragung eines Datenbursts,
der eine Vielzahl von Dateneinheiten (beispielsweise mit insgesamt
einer Größe von 64
Byte) umfassen kann, getroffen. Dies bedeutet, dass in Empfangsrichtung diese
Entscheidung jeweils nach Übertragung
eines Datenbursts in den Speicher 4 und in Senderichtung nach Übertragung
eines Datenbursts an eine bestimmte periphere Einheit 5_1-5_N getroffen
wird. Vorzugsweise ist die Datenburstgröße sowohl für Senderichtung als auch für Empfangsrichtung
variabel und programmierbar. Sollen Daten mit der höchsten Prioritätsklasse übertragen
werden, so ist die maximale Verzögerung
bis zum Beginn des Datentransfers dieser Daten somit die Dauer eines
augenblicklich übertragenen
Datenbursts. Somit kann bei einem Datentransfer in Empfangsrichtung
der Prozessor die Dateneinheiten mit höherer Priorität früher verarbeiten,
wobei die DMA-Steuervorrichtung 1 den Prozessor vorzugsweise in
Form eines Interrupts über
jede vollständig übertragene
Dateneinheit informiert. Darüber
hinaus gewährleistet
dieses prioritätsbasierte Verfahren,
dass der Prozessor für
einen Datentransfer in Senderichtung neue Deskriptorlisteneinträge ohne
Berücksichtigung
des Zustands der augenblicklich in Senderichtung durchgeführten Datentransfers erzeugen
und aktivieren kann. Die DMA-Steuervorrichtung 1 unterstützt somit
QoS auch in Senderichtung, da Dateneinheiten eines aktivierten Deskriptorlisteneintrags
mit der höchsten
Priorität
zuerst übertragen
werden.
-
Treten
gleichzeitig mehrere Datenblöcke derselben
Priorität
zur Übertragung
in ein und dieselbe Übertragungsrichtung
auf, so kann die DMA-Steuervorrichtung 1 zwischen diesen
Datenblöcken
auf Datenburst-Ebene umschalten, so dass abwechselnd ein Datenburst
des einen Datenpakets und ein Datenburst des anderen Datenpakets
verarbeitet und übertragen
wird. Dies gewährleistet
eine minimale Verzögerung
auch bei Auftreten von mehreren Datenblöcken derselben Priorität.
-
1 zeigt
den Aufbau einer DMA-Steuervorrichtung 1 gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung, wobei die DMA-Steuervorrichtung 1 zusammen
mit einem Prozessor 2 („Embedded Processor"), einer Speichersteuerung 3 und
mehreren peripheren Einheiten 5_1-5_N auf einem
gemeinsamen Siliziumsubstrat ausgebildet ist. Die DMA-Steuervorrichtung 1 greift über die
Speichersteuerung 3 auf einen Speicher 4 zu, um
in Empfangsrichtung von den peripheren Einheiten 5_1-5_N empfangene
Daten in dem Speicher 4 zu speichern bzw. in Senderichtung
Daten aus dem Speicher 4 auszulesen und an eine gewünschte periphere
Einheit 5_1-5_N zu übertragen.
-
Die
DMA-Steuervorrichtung 1 kann im Wesentlichen in zwei Hauptabschnitte,
nämlich
einen Empfangsabschnitt 7 und einen Sendeabschnitt 11, unterteilt
werden. Der Sende- und Empfangsbetrieb ist voneinander unabhängig, wobei
jedoch zu einem beliebigen Zeitpunkt nur der Empfangsabschnitt 7 oder
der Sendeabschnitt 11 auf den Speicher 4 zugreifen
kann. Zur Koordinierung der Speicherzugriffe weist die DMA-Steuervorrichtung 1 einen
auch als „Arbiterblock" bezeichneten Block 16 auf,
welcher gewährleistet,
dass zu einem beliebigen Zeitpunkt nur der Empfangsabschnitt 7,
der Sendeabschnitt 11 oder ein nachfolgend noch näher erläuterter
Deskriptor-Manager 17 der DMA-Steuervorrichtung 1 auf den
Speicher 4, beispielsweise einem SDRAM-Speicher, zugreifen
kann.
-
Die
von der DMA-Steuervorrichtung 1 durchgeführten Datentransfers
werden unter Verwendung von mehreren logischen Kanälen durchgeführt, die den
einzelnen peripheren Einheiten 5-1-5_N sowie entsprechenden
Prioritätsklassen
zugewiesen sind. So können
beispielsweise von einer peripheren Einheit in jede Übertragungsrichtung
vier Prioritätsklassen
unterstützt
werden, welche wie folgt unterschiedlichen Datenarten zugewiesen
sind:
Prioritätsklasse
0: Managementdaten
Prioritätsklasse
1: Sprachdaten
Prioritätsklasse
2: Videodaten
Prioritätsklasse
3: Benutzerdaten
-
Eine
kleinere Nummer der Prioritätsklasse entspricht
dabei einer höheren
Priorität.
-
Die
Anzahl der unterstützten
Prioritätsklassen
hängt von
dem Typ der peripheren Einheit ab, so dass die unterstützten Prioritätsklassen
für jede
periphere Einheit 5_1-5_N sowohl in Sende- als
auch in Übertragungsrichtung
zwischen lediglich einer Prioritätsklasse
und vier unterschiedlichen Prioritätsklassen variieren kann. Auch
wenn eine periphere Einheit lediglich eine Prioritätsklasse
in eine bestimmte Übertragungsrichtung
unterstützt,
kann im Prinzip den entsprechenden Daten dieser peripheren Einheit sowie
der entsprechenden Übertragungsrichtung jede
beliebige Prioritätsklasse
zugeordnet werden.
-
Die
logischen Kanäle
existieren lediglich in der DMA-Steuervorrichtung 1 sowie
in den entsprechend zugeordneten Deskriptoren der Deskriptorlisten,
wobei die Datentransfers tatsächlich
ausschließlich über den
physikalischen Sendekanal bzw. den physikalischen Empfangskanal
durchgeführt
werden.
-
Der
Empfangsabschnitt 7 ist für die Übertragung von Daten von einer
jeweiligen peripheren Einheit 5_1-5_N in den Speicher 4 unter
Verwendung eines entsprechenden logischen Empfangskanals verantwortlich.
Sollen von einer peripheren Einheit 5_1-5_N Daten
RXDATA in den Speicher 4 übertragen werden, so sendet
die entsprechende periphere Einheit zunächst ein Anforderungssignal
RxPi Req, i=1...N, an die DMA-Steuervorrichtung,
wobei zugleich von der entsprechenden peripheren Einheit die Prioritätsklasse
der zu übertragenden
Daten in Form einer Mitteilung RxPi_PrioClass mitgeteilt wird. Bei
Abschluss eines Datentransfers, d.h. bei vollständigem Speichern der Daten
in dem Speicher 4, wird von der DMA-Steuervorrichtung 1 ein
Bestätigungssignal
RxPi_Ack an die entsprechende periphere Einheit übertragen.
-
Der
Empfangsabschnitt 7 bzw. der physikalische Empfangskanal
kann in eine Empfang-Priorisierungseinheit 8, einen Empfang-Zwischenspeicher 9 und
eine Empfang-DMA-Steuereinheit 10 unterteilt werden. Die
Empfang-Priorisierungseinheit 8 ist verantwortlich für die Ordnung
der ankommenden Dateneinheiten (Datenpakete/Datenzellen) der einzelnen
peripheren Einheiten 5_1-5_N gemäß den jeweils
mitgeteilten Prioritätsklassen
und für
die Weiterleitung der Daten in der gemäß den Prioritätsklassen
geordneten Reihefolge an den Empfang-Zwischenspeicher 9, wobei es
sich hierbei insbesondere um einen FIFO-Speicher („First
In First Out") mit
der Größe eines
Datenbursts handelt. Die Empfang-DMA-Steuereinheit 10 ist
für den
Datentransfer der in dem Empfang-Zwischenspeicher 9 zwischengespeicherten
Daten in den Speicher 4 verantwortlich.
-
Der
Sendeabschnitt 11 hingegen ist verantwortlich für den Datentransfer
von dem Speicher 4 zu einer gewünschten peripheren Einheit 5_1-5_N unter Verwendung
eines entsprechenden logischen Sendekanals. Durch ein Anforderungssignal
TxPi_Req kann eine der peripheren Einheiten einen Datentransfer
gegenüber
der DMA-Steuervorrichtung 1 anfordern.
Wie nachfolgend noch näher
erläutert
wird, erfolgt der Datentransfer in Senderichtung unter Verwendung
von Deskriptorlisten 19, wobei in dem Speicher 4 für jede periphere
Einheit, d.h. für
jeden logischen Sendekanal, eine derartige Deskriptorliste gespeichert
ist. Die Aktivierung der entsprechenden logischen Kanäle sowie
die Erzeugung der entsprechenden Deskriptoren in den einzelnen Deskriptorlisten
dieser logischen Kanäle
erfolgt durch den Prozessor 2.
-
Der
Sendeabschnitt 11 umfasst eine Sende-DMA-Steuereinheit 12,
eine Sende-Priorisierungseinheit 13, einen Sende-Zwischenspeicher 14 und
eine Sende-Übertragungseinheit 15.
Die Sende-Priorisierungseinheit 13 ist dafür verantwortlich, aus
den in dem Speicher 4 gespeicherten Dateneinheiten (Datenpakete/Datenzellen)
die als nächstes zu übertragende
Dateneinheit abhängig
von den jeweils zugewiesenen Prioritäten auszuwählen. Die Sende-DMA-Steuereinheit 12 greift
abhängig
von der Entscheidung der Sende-Priorisierungseinheit 13 auf den
Speicher 4 zu, um die ausgewählte Dateneinheit von dem Speicher 4 in
den Sende-Zwischenspeicher 14 zu übertragen,
wobei der Sende-Zwischenspeicher 14 vorzugsweise
analog zu dem Empfang-Zwischenspeicher 9 die
Größe eines
Datenbursts aufweist. Die Sende-Übertragungseinheit 15 ist
schließlich
dafür verantwortlich,
dass die in dem Sende-Zwischenspeicher 14 zwischengespeicherten
Dateneinheiten vor dem Sende- Zwischenspeicher 14 in
Form von Sendedaten TXDATA an die gewünschte periphere Einheit 5_1-5_N übertragen
werden.
-
Nachdem
ein von einer peripheren Einheit angefordertes Datenpaket von der
DMA-Steuervorrichtung 1 an die entsprechende periphere
Einheit übertragen
worden ist, wird von der DMA-Steuervorrichtung 1 an die
entsprechende periphere Einheit eine Bestätigung TxPi Ack gesendet. Zudem
wird die Prioritätsklasse
der übertragenen
Daten in Form eines Signals TxPi_PrioClass mitgeteilt.
-
Wie
aus 1 ersichtlich ist, umfasst die DMA-Steuervorrichtung 1 darüber hinaus
zwei weitere Blöcke 17 und 18,
wobei der Block 17 als Deskriptor-Manager und der Block 18 als
DMA-Manager bezeichnet werden kann.
-
Der
grundsätzliche
Aufbau des DMA-Managers 18 ist in 6 dargestellt.
-
Der
DMA-Manager 18 dient primär als Schnittstelle zwischen
dem Prozessor 2 und der DMA-Steuervorrichtung 1 und
weist demzufolge einen Busadapter 22 auf, welcher einerseits
mit dem Prozessor 2 und andererseits mit einem Registerblock 20 und
einem Interruptblock 21 verbunden ist. Der Interruptblock
21 dient zur Erzeugung verschiedener Arten von Interrupts für den Prozessor 2,
beispielsweise bei Abschluss eines Datentransfers. Der Registerblock 20 dient
als Schnittstelle zu anderen Komponenten der DMA-Steuervorrichtung 2,
wie z.B. zu den Empfang- und Sende-Priorisierungseinheiten 8, 13,
um mit diesen Steuer-, Konfiguration- und Statusinformationen RxPA
bzw. TxPA auszutauschen, oder den Empfang- bzw. Sende-DMA-Steuereinheiten 10, 12,
um ebenfalls mit diesen Steuer-, Konfiguration- und Statusinformationen
RX_DMA_SAI bzw.
-
TX_DMA_SAI
auszutauschen. Darüber
hinaus dient der Registerblock 20 auch als Schnittstelle zu
dem Deskriptor-Manager 17.
Insgesamt stellt der DMA-Manager 18 die Steuer-, Konfiguration-
und Statusfunktionen der DMA-Steuervorrichtung 1 zur Verfügung.
-
Die
Hauptaufgabe des Deskriptor-Managers 17 ist die Pflege
der für
alle logischen Kanäle
in dem Speicher 4 abgelegten Deskriptorlisten 19.
Die Deskriptorliste 19 jedes logischen Kanals setzt sich
aus mehreren Deskriptorlisteneinträgen zusammen, die gemäß einem
bestimmten Schema in dem Speicher 4 abgelegt sind. Dabei
besitzt jeder logische Kanal eine eigene Deskriptorliste 19,
wobei jeder Deskriptorlisteneintrag beispielsweise eine Breite von
64 Bit aufweisen kann und einen Datenpointer auf den entsprechenden
Speicherbereich, wo die entsprechende Dateneinheit gespeichert ist,
ein Datenlängefeld sowie
verschiedene Steuer-/Statusbits umfasst. Bei einem Sende-Deskriptor
zeigt das Datenlängefeld die
Anzahl der zu übertragenden
Bits an. Bei einem Empfang-Deskriptor
dient das Datenlängefeld
hingegen zwei Zwecken. Bei Erzeugung des Deskriptors schreibt der
Prozessor 2 zunächst
den zur Verfügung stehenden
Speicherbereich in das Datenlängefeld, während bei
Verwendung des Deskriptors durch die DMA-Steuervorrichtung 1 dieses
Datenlängefeld
von der DMA-Steuervorrichtung 1 mit der Anzahl der tatsächlich in
den entsprechenden Speicherbereich geschriebenen gültigen Bits
aktualisiert.
-
Bei
den in den einzelnen Deskriptorlisteneinträgen enthaltenen Steuer-/Statusbits
kann es sich abhängig
davon, ob es sich um einen Sende- oder Empfang-Deskriptor handelt,
um unterschiedliche Steuer-/Statusbits handeln. Ein Beispiel ist
ein Bit, welches angibt, ob der entsprechende Deskriptor den Anfang
(„Start
Of Packet", SOP)
und/oder das Ende („End
Of Packet", EOP)
eines Datenpakets abdeckt oder nicht. Ein weiteres wichtiges Status-/Steuerbit
jedes Deskriptors ist ein Bit, welches anzeigt, ob der entsprechende
Deskriptor bzw. Deskriptorlisteneintrag dem Prozessor 2 oder
der DMA-Steuervorrichtung 1 zugeordnet
ist bzw. von dem Prozessor 2 oder der DMA-Steuervorrichtung 1 „besessen" wird, so dass dieses
Status-/Steuerbit auch als OWN-Bit bezeichnet werden kann. Ist der
Deskriptorlisteneintrag nicht dem Prozessor 2 zugeordnet,
so kann der Prozessor 2 den Status des entsprechenden Deskriptors
nicht beschreiben oder aktualisieren, während der Prozessor 2 jedoch
den Deskriptor zur Überprüfung des
Status lesen kann. Auf analoge Art und Weise kann die DMA-Steuervorrichtung 1 einen
Deskriptorlisteneintrag nur dann verändern, wenn durch dieses OWN-Bit
der Deskriptorlisteneintrag der DMA-Steuervorrichtung 1 zugewiesen
ist, während im
anderen Fall lediglich ein Lesen des Deskriptorlisteneintrags durch
die DMA-Steuervorrichtung 1 möglich ist. Das OWN-Bit dient
demzufolge primär
zur Koordinierung der Zugriffe durch den Prozessor 2 einerseits
und die DMA-Steuervorrichtung 1 andererseits auf die in
dem Speicher 4 hinterlegten Deskriptorlisteneinträge.
-
Eine
wesentliche Aufgabe des Deskriptor-Managers 17 ist die
Bearbeitung der Deskriptoranforderungen der Empfang-DMA-Steuereinheit 10 und
der Sende-DMA-Steuereinheit 12. Darüber hinaus muss der Deskriptor-Manager 17 auch
in der Lage sein, möglichst
vorausschauend auf die Deskriptorlisteneinträge zuzugreifen, wobei hierzu
insbesondere auch der Deskriptor-Manager 17 dadurch mitlernen
kann, dass er sich Deskriptorlisteneinträge, deren Deskriptoren zuvor
verarbeitet worden sind, merkt.
-
Der
Deskriptor-Manager dient als Kommunikationsagent zwischen der DMA-Steuervorrichtung 1 einerseits
und dem Prozessor 2 andererseits und stellt entsprechende
Deskriptorlisteneinträge
immer dann zur Verfügung,
wenn entsprechende Anforderungen von der Empfang-DMA-Steuereinheit 10 bzw. der
Sende-DMA-Steuereinheit 12 vorliegen. Augenblicklich verarbeitete
Deskriptoren werden von dem Deskriptor-Manager 17 in einem
internen DMA-Statusspeicher 23 gespeichert, wobei es sich
hierbei um einen Zwischenspeicher relativ geringer Größe handelt,
welcher beispielsweise lediglich bis zu drei Deskriptoren aufnehmen
kann. Für
den Fall, dass die DMA-Steuervorrichtung 1 einen augenblicklichen Datentransfer
unterbricht und mit einem neuen Transfer von Daten höherer Priorität beginnt,
speichert der Deskriptor-Manager 17 den
augenblicklichen Status des zuvor verarbeiteten Deskriptors in dem
internen DMA-Statusspeicher 23 und greift auf den Deskriptorlisteneintrag
für den
bezüglich
der Daten mit der höheren
Priorität
zu bedienenden logischen Kanal zu, um den entsprechenden Deskriptorlisteneintrag
an die gewünschte
periphere Einheit 5_1-5_N zu übertragen.
-
In 3 ist
ein Flussdiagramm dargestellt, welches die grundsätzliche
Funktionsweise des Deskriptor-Managers 17 veranschaulicht.
-
Nach
dem Starten des Deskriptor-Managers 17 bzw. der DMA-Steuervorrichtung 1 (Schritt 100) wird
zunächst
geprüft,
ob Anforderungen der Empfang-DMA-Steuereinheit 10 bzw.
der Sende-DMA-Steuereinheit 12 für Deskriptoren der von diesen
Einheiten augenblicklich bedienten logischen Kanäle vorliegen. Der Deskriptor-Manager 17 prüft beispielsweise
gemäß einem
einfachen „Round
Robin"-Schema den
Eingang derartiger Anforderungen der Empfang-DMA-Steuereinheit 10 und
der Sende-DMA-Steuereinheit 12.
-
Sobald
der Deskriptor-Manager 17 erkannt hat, dass von einer dieser
Einheiten eine Anforderung für
einen Deskriptor vorliegt und demzufolge diese Anforderung bedient
werden muss, prüft
der DMA-Manager 17, ob der entsprechende Deskriptorlisteneintrag
des jeweiligen logischen Kanals augenblicklich von der DMA-Steuervorrichtung 1 bereits verwendet
wird (Schritt 101).
-
Ist
dies der Fall (vgl. Zweig „Y"), liest der DMA-Manager 17 einfach
den angeforderten Deskriptor aus dem internen DMA-Statusspeicher 23 aus (Schritt 102)
und leitet ihn an die anfordernde Einheit mit dem jeweils gültigen Status
weiter (Schritt 103).
-
Wird
hingegen der angeforderte Deskriptorlisteneintrag augenblicklich
nicht von der DMA-Steuervorrichtung 1 verwendet (vgl. Zweig „N"), erzeugt der DMA-Manager 17 zunächst eine
Anforderung für einen
Speicherzugriff, um den entsprechenden Deskriptorlisteneintrag lesen
zu können
(Schritt 104) und wartet auf den Eingang des entsprechenden
Deskriptorlisteneintrags (Schritt 105). Sobald der Deskriptorlisteneintrag
aus dem Speicher 4 ausgelesen werden konnte, überprüft der Deskriptor-Manager,
ob der Deskriptorlisteneintrag augenblicklich dem Prozessor 2 oder
der DMA-Steuervorrichtung 1 in Form einer „Inhaberschaft" zugewiesen ist (Schritt 106).
Ist der Deskriptor der DMA-Steuervorrichtung 1 augenblicklich zugewiesen
(vgl. den Zweig „Y"), kann der Deskriptor-Manager 17 den
Deskriptorlisteneintrag mit dem gültigen Status an die anfordernde
Einheit weiterleiten (Schritt 107). Ist hingegen der angeforderte
Deskriptorlisteneintrag dem Prozessor 2 zugewiesen (vgl.
den Zweig „N"), kann der Deskriptorlisteneintrag noch
nicht an die anfordernde Einheit weitergeleitet werden, sondern
es wird stattdessen der Empfang-DMA-Steuereinheit 10 und
der Sende-DMA-Steuereinheit 12 mitgeteilt, dass der angeforderte
Deskriptorlisteneintrag augenblicklich von dem Prozessor 2 verarbeitet
wird, so dass sichergestellt ist, dass beide Einheiten denselben
Deskriptorlisteneintrag nicht noch einmal anfordern, bis der Prozessor 2 die
Verarbeitung des Deskriptorlisteneintrags abgeschlossen hat (Schritt 108).
Gleichzeitig wird ein Interrupt an den Prozessor 2 gesendet,
um den Prozessor 2 zu veranlassen, die Verarbeitung des
angeforderten Deskriptorlisteneintrags abzubrechen.
-
Haben
die Empfang-DMA-Steuereinheit 10 und die Sende-DMA-Steuereinheit 12 die
Verwendung eines augenblicklichen Deskriptorlisteneintrags abgeschlossen,
senden sie eine Anforderung für
einen Status-Update an den Deskriptor-Manager 17. Der Deskriptor-Manager 17 wechselt
gemäß einem „Round
Robin"-Schema zwischen
zwei unterschiedlichen Status-Updates. Bei Eingang einer Status-Update-Anforderung überprüft diesbezüglich der
Deskriptor-Manager 17 zunächst, ob der augenblickliche Datentransfer
vollständig
abgeschlossen worden ist, d.h. ob ein vollständiges Datenpaket bzw. eine
vollständige
Datenzelle erfolgreich übertragen
worden ist (Schritt 109). Ist dies der Fall (vgl. Zweig „Y"), erzeugt der Deskriptor-Manager 17 eine
Anforderung für
einen Speicherzugriff, um den entsprechenden Deskriptorlisteneintrag
in dem Speicher 4 zu aktualisieren, und erzeugt Interrupt-Statussignale
für den Interruptblock 21 des
DMA-Managers 18 (Schritt 110). Wurde hingegen
im Schritt 109 festgestellt, dass der augenblickliche Datentransfer
noch nicht vollständig
abgeschlossen worden ist (vgl. Zweig „N), so aktualisiert der Deskriptor-Manager 17 den
augenblicklichen Status für
den augenblicklich verarbeiteten Deskriptorlisteneintrag in dem
internen DMA-Statusspeicher 23 (Schritt 111).
-
Allgemein
verarbeitet der Deskriptor-Manager 17 Deskriptoranforderungen
(vgl. Zweig zwischen 100 und 101 in 3)
bevorzugt gegenüber Status-Update-Anforderungen
(vgl. Zweig zwischen 100 und 109 in 3).