DE102004046822A1 - Verfahren zum Übertragen von Daten zwischen einem Speicher und mehreren peripheren Einheiten mit Hilfe einer Direct Memory Access-Steuerung sowie entsprechende Direct Memory Access-Steuervorrichtung - Google Patents

Verfahren zum Übertragen von Daten zwischen einem Speicher und mehreren peripheren Einheiten mit Hilfe einer Direct Memory Access-Steuerung sowie entsprechende Direct Memory Access-Steuervorrichtung Download PDF

Info

Publication number
DE102004046822A1
DE102004046822A1 DE102004046822A DE102004046822A DE102004046822A1 DE 102004046822 A1 DE102004046822 A1 DE 102004046822A1 DE 102004046822 A DE102004046822 A DE 102004046822A DE 102004046822 A DE102004046822 A DE 102004046822A DE 102004046822 A1 DE102004046822 A1 DE 102004046822A1
Authority
DE
Germany
Prior art keywords
data
memory
control device
dma
dma control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102004046822A
Other languages
English (en)
Inventor
Jochen Dipl.-Ing. Kraus
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Germany Holding GmbH
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102004046822A priority Critical patent/DE102004046822A1/de
Priority to PCT/SG2004/000401 priority patent/WO2006036124A1/en
Priority to US11/235,945 priority patent/US7620745B2/en
Publication of DE102004046822A1 publication Critical patent/DE102004046822A1/de
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
    • H04L2012/5653Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly using the ATM adaptation layer [AAL]
    • H04L2012/5658Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly using the ATM adaptation layer [AAL] using the AAL5

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bus Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Insbesondere für Breitband-Datenübertragungen spielt das "Quality of Service"(QoS)-Merkmal zunehmend eine Rolle. Zur Realisierung dieses QoS-Merkmals wird vorgeschlagen, in einem DMA-Controller (1) eine prioritätsgesteuerte Datenübertragung zu implementieren, wobei den zu übertragenden Daten Prioritäten zugewiesen werden und der DMA-Controller (1) die zu übertragenden Daten in Übereinstimmung mit den jeweils zugewiesenen Prioritäten zwischen mehreren peripheren Modulen (5) und einem Speicher (4) überträgt. Die prioritätsgesteuerte Datenübertragung erfolgt dabei in Empfangsrichtung (7) und in Senderichtung (11) voneinander unabhängig, wobei den Daten bzw. jeder peripheren Einheit eine Vielzahl unterschiedlicher Prioritätsklassen zugewiesen sein können. Dadurch ist gewährleistet, dass Daten mit höchster Priorität mit geringster Verzögerung übertragen werden, um somit Jitter bei der Datenübertragung minimal zu halten.

Description

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

Claims (29)

  1. Verfahren zum Übertragen von Daten zwischen einem Speicher (4) und mehreren peripheren Einheiten (5) mit Hilfe einer Direct Memory Access (DMA)-Steuerung, dadurch gekennzeichnet , dass den zu übertragenden Daten Prioritäten zugewiesen werden, und dass von der DMA-Steuerung (1) die Daten zwischen dem Speicher (4) und den peripheren Einheiten (5) in Übereinstimmung mit den jeweils zugewiesenen Prioritäten übertragen werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Zuweisung der Prioritäten und die Übertragung in Übereinstimmung mit den jeweils zugewiesenen Prioritäten für Daten, welche von den peripheren Einheiten (5) zu dem Speicher (4) übertragen werden, und für Daten, welche von dem Speicher (4) zu den peripheren Einheiten (5) übertragen werden, voneinander unabhängig erfolgt.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Zuweisung der Prioritäten abhängig von dem jeweiligen Datentyp erfolgt.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass den zu übertragenden Daten für jede periphere Einheit (5) eine von mehreren zur Verfügung stehenden Prioritäten zugewiesen werden.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der DMA-Steuerung (1) die Priorität für von einer peripheren Einheit (5) zu dem Speicher (4) zu übertragenden Daten von der entsprechenden peripheren Einheit (5) mitgeteilt wird, während der DMA-Steuerung (1) die Priorität für von dem Speicher (4) zu einer peripheren Einheit (5) zu übertragenden Daten von einem mit der DMA-Steuerung (1) zusammenarbeitenden Prozessor (2) mitgeteilt wird.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass jeweils nach Übertragung eines Datenbursts, welcher eine bestimmte Anzahl von Dateneinheiten umfasst, die Prioritäten der zu übertragenden Daten neu überprüft werden.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass die Größe des Datenbursts programmiert werden kann.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei Auftreten von zu übertragenden Daten mit einer höheren Priorität als die augenblicklich übertragenen Daten die Übertragung der augenblicklich übertragenen Daten unterbrochen wird, um zunächst die Daten mit der höheren Priorität zu übertragen.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass nach der Übertragung der Daten mit der höheren Priorität wieder die Übertragung der zuvor übertragenen Daten fortgesetzt wird.
  10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass gewährleistet wird, dass zu einem beliebigen Zeitpunkt stets lediglich ein Zugriff auf den Speicher (4) zum Speichern von Daten in dem Speicher (4) oder zum Auslesen von Daten aus dem Speicher (4) erfolgt.
  11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass jeder peripheren Einheit (5) ein logischer Kanal zugewiesen wird, und dass die Prioritäten den einzelnen logischen Kanälen zugewiesen werden.
  12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass für jeden logischen Kanal eine Deskriptorliste (19) erzeugt wird, wobei die Deskriptorliste (19) mindestens einen Deskriptor mit einen Pointer auf einen entsprechenden Datenbereich in dem Speicher (4) umfasst.
  13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, dass jeder Deskriptor eine Angabe über die Länge des Datenbereichs sowie mindestens ein Steuerbit umfasst.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass das mindestens eine Steuerbit ein Bit zur Koordinierung von Schreib- und Lesezugriffen auf den Speicher (4) durch die DMA-Steuerung (1) und durch einen mit der DMA-Steuerung (1) zusammenarbeitenden Prozessor (2) umfasst, wodurch gewährleistet wird, dass zu einem beliebigen Zeitpunkt entweder nur die DMA-Steuerung (1) oder nur der Prozessor (2) einen in dem Speicher (4) gespeicherten Deskriptor verändern kann.
  15. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren in einem Breitband-Datenübertragungsnetz zur Übertragung von Daten über einen Breitband-Zugang angewendet wird.
  16. DMA-Steuervorrichtung (1) zur Übertragung von Daten zwischen einem Speicher (4) und mehreren peripheren Einheiten (5), dadurch gekennzeichnet, dass den zu übertragenden Daten Prioritäten zugewiesen sind, und dass die DMA-Steuervorrichtung (1) Priorisierungsmittel (8, 13) aufweist, welche derart ausgestaltet sind, dass sie die Übertragung der Daten in Übereinstimmung mit den jeweils zugewiesenen Prioritäten zwischen dem Speicher (4) und den peripheren Einheiten (5) veranlassen.
  17. DMA-Steuervorrichtung nach Anspruch 16, dadurch gekennzeichnet, dass die DMA-Steuervorrichtung (1) einen Empfangsabschnitt (7) zum Übertragen von Daten von den peripheren Einheiten (5) zu dem Speicher (4) und einen Sendeabschnitt (11) zum Übertragen von Daten von dem Speicher (4) zu den peripheren Einheiten (5) umfasst, wobei sowohl der Empfangsabschnitt (7) als auch der Sendeabschnitt (11) voneinander unabhängig Priorisierungsmittel (8, 13) zur Übertragung der Daten über den Empfangsabschnitt (7) bzw. über den Sendeabschnitt (11) in Übereinstimmung mit den jeweils zugewiesenen Prioritäten aufweist.
  18. DMA-Steuervorrichtung nach Anspruch 17, dadurch gekennzeichnet, dass sowohl der Empfangsabschnitt (7) als auch der Sendeabschnitt (11) eine DMA-Steuereinheit (10, 12) zur Erzeugung einer Anforderung für einen Zugriff auf den Speicher (4) aufweist.
  19. DMA-Steuervorrichtung nach Anspruch 18, dadurch gekennzeichnet, dass zwischen den jeweiligen Priorisierungsmitteln (8, 13) und der jeweiligen DMA-Steuereinheit (10, 12) sowohl im Empfangsabschnitt (7) als auch im Sendeabschnitt (11) ein Zwischenspeicher (9, 14) zum Zwischenspeichern von zu übertragenden Daten vorgesehen ist.
  20. DMA-Steuervorrichtung nach Anspruch 19, dadurch gekennzeichnet, dass der Zwischenspeicher (9, 14) Daten im Umfang eines Datenbursts zwischenspeichern kann, wobei die Größe des Datenbursts programmierbar ist.
  21. DMA-Steuervorrichtung nach einem der Ansprüche 16-20, dadurch gekennzeichnet, dass jeder peripheren Einheit (5) ein logischer Kanal zugewiesen ist, wobei der Speicher (4) für jeden logischen Kanal eine Deskriptorliste (19) mit mindestens einem Deskriptor umfasst, wobei der Deskriptor einen Pointer auf einen entsprechenden Datenbereich des Speichers (4) aufweist.
  22. DMA-Steuervorrichtung nach Anspruch 21, dadurch gekennzeichnet, dass die DMA-Steuervorrichtung (1) Koordinierungsmittel (17) zur Koordinierung von Zugriffen auf die Deskriptoren der in dem Speicher (4) gespeicherten Deskriptorlisten (19) sowohl für eine Übertragung von Daten von dem Speicher (4) zu den peripheren Einheiten (5) als auch für eine Übertragung von Daten von den peripheren Einheiten (5) zu dem Speicher (4) umfasst.
  23. DMA-Steuervorrichtung nach Anspruch 22, dadurch gekennzeichnet, dass die DMA-Steuervorrichtung (1) einen Zwischenspeicher (23) umfasst, wobei die Koordinierungsmittel (17) derart ausgestaltet sind, dass sie bei Auftreten von Daten mit einer höheren Priorität als augenblicklich übertragene Daten die Übertragung der augenblicklich übertragenen Daten abbrechen, eine Information über den Status der augenblicklich übertragenen Daten in dem Zwischenspeicher (23) ablegen und eine Übertragung der Daten mit der höheren Priorität veranlasst.
  24. DMA-Steuervorrichtung nach einem der Ansprüche 16-23, dadurch gekennzeichnet, dass die DMA-Steuervorrichtung (1) eine Einrichtung (16) umfasst, welche derart ausgestaltet ist, dass sie zu einem beliebigen Zeitpunkt jeweils lediglich einen Zugriff eines Empfangsabschnitts (7) oder eines Sendeabschnitts (11) der DMA-Steuervorrichtung (1) auf den Speicher (4) zulässt.
  25. DMA-Steuervorrichtung nach einem der Ansprüche 16-24, dadurch gekennzeichnet, dass die DMA-Steuervorrichtung (1) eine Einrichtung (18) als Schnittstelle zu einem mit der DMA-Steuervorrichtung (1) zusammenarbeitenden Prozessor (2) umfasst, um über die Einrichtung (18) Steuer-, Konfigurations- und/oder Statusinformationen mit dem Prozessor (2) auszutauschen.
  26. DMA-Steuervorrichtung nach Anspruch 25, dadurch gekennzeichnet, dass die als Schnittstelle zu dem Prozessor (2) dienende Einrichtung (18) zur Erzeugung von Interrupts für den Prozessor (2) ausgestaltet ist.
  27. DMA-Steuervorrichtung nach einem der Ansprüche 16-26, dadurch gekennzeichnet, dass die DMA-Steuervorrichtung (1) zur Durchführung des Verfahrens nach einem der Ansprüche 1-15 ausgestaltet ist.
  28. Datenübertragungsanordnung zum Senden und/oder Empfangen von Daten über ein Datenübertragungsnetz mit einer DMA-Steuervorrichtung (1) nach einem der Ansprüche 16-27.
  29. Datenübertragungsanordnung nach Anspruch 28, dadurch gekennzeichnet, dass die Datenübertragungsanordnung eine Breitband-Datenübertragungsanordnung ist.
DE102004046822A 2004-09-27 2004-09-27 Verfahren zum Übertragen von Daten zwischen einem Speicher und mehreren peripheren Einheiten mit Hilfe einer Direct Memory Access-Steuerung sowie entsprechende Direct Memory Access-Steuervorrichtung Pending DE102004046822A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102004046822A DE102004046822A1 (de) 2004-09-27 2004-09-27 Verfahren zum Übertragen von Daten zwischen einem Speicher und mehreren peripheren Einheiten mit Hilfe einer Direct Memory Access-Steuerung sowie entsprechende Direct Memory Access-Steuervorrichtung
PCT/SG2004/000401 WO2006036124A1 (en) 2004-09-27 2004-12-07 Improved handling of atm data
US11/235,945 US7620745B2 (en) 2004-09-27 2005-09-27 Transferring data between a memory and peripheral units employing direct memory access control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004046822A DE102004046822A1 (de) 2004-09-27 2004-09-27 Verfahren zum Übertragen von Daten zwischen einem Speicher und mehreren peripheren Einheiten mit Hilfe einer Direct Memory Access-Steuerung sowie entsprechende Direct Memory Access-Steuervorrichtung

Publications (1)

Publication Number Publication Date
DE102004046822A1 true DE102004046822A1 (de) 2006-03-30

Family

ID=34959479

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004046822A Pending DE102004046822A1 (de) 2004-09-27 2004-09-27 Verfahren zum Übertragen von Daten zwischen einem Speicher und mehreren peripheren Einheiten mit Hilfe einer Direct Memory Access-Steuerung sowie entsprechende Direct Memory Access-Steuervorrichtung

Country Status (3)

Country Link
US (1) US7620745B2 (de)
DE (1) DE102004046822A1 (de)
WO (1) WO2006036124A1 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7693145B2 (en) * 2005-02-28 2010-04-06 Hewlett-Packard Development Company, L.P. Method and apparatus for direct reception of inbound data
US20060193318A1 (en) * 2005-02-28 2006-08-31 Sriram Narasimhan Method and apparatus for processing inbound and outbound quanta of data
JP4781880B2 (ja) * 2006-03-31 2011-09-28 富士通株式会社 中継装置、中継方法、中継プログラムおよび通信システム
US8295310B2 (en) * 2006-09-25 2012-10-23 Futurewei Technologies, Inc. Inter-packet gap network clock synchronization
US8494009B2 (en) * 2006-09-25 2013-07-23 Futurewei Technologies, Inc. Network clock synchronization timestamp
US8340101B2 (en) * 2006-09-25 2012-12-25 Futurewei Technologies, Inc. Multiplexed data stream payload format
US8660152B2 (en) * 2006-09-25 2014-02-25 Futurewei Technologies, Inc. Multi-frame network clock synchronization
US7675945B2 (en) * 2006-09-25 2010-03-09 Futurewei Technologies, Inc. Multi-component compatible data architecture
US8588209B2 (en) 2006-09-25 2013-11-19 Futurewei Technologies, Inc. Multi-network compatible data architecture
US8976796B2 (en) * 2006-09-25 2015-03-10 Futurewei Technologies, Inc. Bandwidth reuse in multiplexed data stream
US7986700B2 (en) 2006-09-25 2011-07-26 Futurewei Technologies, Inc. Multiplexed data stream circuit architecture
US7809027B2 (en) 2006-09-25 2010-10-05 Futurewei Technologies, Inc. Network clock synchronization floating window and window delineation
CN101569147B (zh) 2007-01-26 2012-05-02 华为技术有限公司 多组件兼容数据体系结构
TWI466018B (zh) * 2007-08-24 2014-12-21 Via Tech Inc 降低電腦系統耗能的方法、電腦系統、及控制裝置
KR100963140B1 (ko) * 2008-11-27 2010-06-16 한국과학기술원 직접 메모리 접근 장치 및 직접 메모리 접근 방법
JP5685848B2 (ja) * 2010-07-27 2015-03-18 富士通株式会社 計算機、プログラム、及び計算機の制御方法
JP6122135B2 (ja) * 2012-11-21 2017-04-26 コーヒレント・ロジックス・インコーポレーテッド 分散型プロセッサを有する処理システム
CN106294233B (zh) * 2015-06-29 2019-05-03 华为技术有限公司 一种直接内存访问的传输控制方法及装置
US10932202B2 (en) * 2018-06-15 2021-02-23 Intel Corporation Technologies for dynamic multi-core network packet processing distribution

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379381A (en) * 1991-08-12 1995-01-03 Stratus Computer, Inc. System using separate transfer circuits for performing different transfer operations respectively and scanning I/O devices status upon absence of both operations
US5948080A (en) * 1996-04-26 1999-09-07 Texas Instruments Incorporated System for assigning a received data packet to a data communications channel by comparing portion of data packet to predetermined match set to check correspondence for directing channel select signal
WO2004061687A1 (en) * 2002-12-19 2004-07-22 Emulex Design & Manufacturing Corporation Direct memory access controller system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619727A (en) * 1995-03-08 1997-04-08 United Microelectronics Corp. Apparatus for a multiple channel direct memory access utilizing a virtual array technique
US6009097A (en) * 1997-04-04 1999-12-28 Lucent Technologies Inc. System for routing packet switched traffic
US6266715B1 (en) * 1998-06-01 2001-07-24 Advanced Micro Devices, Inc. Universal serial bus controller with a direct memory access mode
US7002985B2 (en) * 2001-01-16 2006-02-21 Motorola, Inc. Method and apparatus for organizing and scheduling multimedia data transfers over a wireless channel
US7339890B2 (en) * 2002-02-01 2008-03-04 Broadcom Corporation Scalable, high-resolution asynchronous transfer mode traffic shaper and method
US7321591B2 (en) * 2002-09-24 2008-01-22 Efficient Networks, Inc. Methods and systems for providing differentiated quality of service in a communications system
US7293121B2 (en) * 2004-02-25 2007-11-06 Analog Devices, Inc. DMA controller utilizing flexible DMA descriptors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379381A (en) * 1991-08-12 1995-01-03 Stratus Computer, Inc. System using separate transfer circuits for performing different transfer operations respectively and scanning I/O devices status upon absence of both operations
US5948080A (en) * 1996-04-26 1999-09-07 Texas Instruments Incorporated System for assigning a received data packet to a data communications channel by comparing portion of data packet to predetermined match set to check correspondence for directing channel select signal
WO2004061687A1 (en) * 2002-12-19 2004-07-22 Emulex Design & Manufacturing Corporation Direct memory access controller system

Also Published As

Publication number Publication date
WO2006036124A1 (en) 2006-04-06
US7620745B2 (en) 2009-11-17
WO2006036124A8 (en) 2006-08-03
US20070192515A1 (en) 2007-08-16

Similar Documents

Publication Publication Date Title
DE102004046822A1 (de) Verfahren zum Übertragen von Daten zwischen einem Speicher und mehreren peripheren Einheiten mit Hilfe einer Direct Memory Access-Steuerung sowie entsprechende Direct Memory Access-Steuervorrichtung
DE69634983T2 (de) Verfahren und vorrichtung für ein hybrides wettbewerbs- und abfrageprotokoll
DE69735936T2 (de) Seriendatenschnittstellenverfahren und vorrichtung #
EP1941674B1 (de) Teilnehmer und kommunikationscontroller eines kommunikationssystems und verfahren zur realisierung einer gateway-funktionalität in einem teilnehmer eines kommunikationssystems
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
EP1388238B1 (de) System und verfahren zur parallelen übertragung von echtzeitkritischen und nicht echtzeitkritischen daten über schaltbare datennetze, insbesondere ethernet
DE69635834T2 (de) Hochgeschwindigkeitsdatennetz- System und Verfahren
DE60210733T2 (de) System und Verfahren zur Überlastregelung in Netzwerken
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
DE4426123C2 (de) Arbitrierung bei verzögernder Buskopplung
EP2030116B1 (de) Kommunikationsbaustein
DE69533680T2 (de) Verfahren und Vorrichtung zur dynamischen Bestimmung und Zuteilung von Zugriffsguoten für ein gemeinsames Betriebsmittel
DE69836778T2 (de) Vorrichtung und Verfahren zur Fernpufferspeicherzuordnung und Verwaltung für Nachrichtenübertragung zwischen Netzknoten
EP1502400B1 (de) Verfahren und system zur übertragung von daten über schaltbare datennetze
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE102018001574A1 (de) Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems
DE102011122646A1 (de) Nachrichtenverlustverhinderung durch Verwendung von Sender- und Empfängerpuffern in durch ein Ereignis ausgelösten verteilten eingebetteten Echtzeitsystemen
DE102004001435A1 (de) Verfahren, Schnittstelle und Netzwerk zum zyklischen Versenden von Ethernet-Telegrammen
EP1805952B1 (de) Verfahren zur übermittlung von in form von datenpaketen zur verfügung stehenden daten
DE19935127B4 (de) Verfahren zum Betrieb eines Vermittlungssystems für Datenpakete
DE102019125545B3 (de) Datenübertragungsverfahren, segment-telegramm und automatisierungskommunikationsnetzwerk
DE102022108581A1 (de) Vorhersagen von freiem Pufferplatz in einer USB-Erweiterungsumgebung
DE102009050767A1 (de) Verfahren und Vorrichtung zur Datenübertragung
DE2914665C2 (de) Fernmeldesystem, insbesondere Bildschirmtext-System, sowie teilzentraler und dezentraler Schaltungsbaustein für dieses System
DE19846913A1 (de) Elektronische Steuereinrichtung mit einem parallelen Datenbus und Verfahren zum Betreiben der Steuereinrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE

R081 Change of applicant/patentee

Owner name: LANTIQ DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 81669 MUENCHEN, DE

Effective date: 20110325

R010 Appeal proceedings settled by withdrawal of appeal(s) or in some other way