DE69924475T2 - Multikanal-DMA mit Datenverkehrplanung auf die Ausgänge - Google Patents

Multikanal-DMA mit Datenverkehrplanung auf die Ausgänge Download PDF

Info

Publication number
DE69924475T2
DE69924475T2 DE69924475T DE69924475T DE69924475T2 DE 69924475 T2 DE69924475 T2 DE 69924475T2 DE 69924475 T DE69924475 T DE 69924475T DE 69924475 T DE69924475 T DE 69924475T DE 69924475 T2 DE69924475 T2 DE 69924475T2
Authority
DE
Germany
Prior art keywords
channel
port
address
dma
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69924475T
Other languages
English (en)
Other versions
DE69924475D1 (de
Inventor
Laurent Six
Daniel Mozzocco
Armelle Laine
Gerald Ollivier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of DE69924475D1 publication Critical patent/DE69924475D1/de
Application granted granted Critical
Publication of DE69924475T2 publication Critical patent/DE69924475T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

  • Diese Erfindung bezieht sich im Allgemeinen auf Mikroprozessoren und insbesondere auf Verbesserungen in Direktspeicherzugriff-Schaltungen, Systemen und Verfahren der Herstellung.
  • Mikroprozessoren sind Mehrzweck-Prozessoren, die hohe Befehlsdurchsätze bereitstellen, um die in ihnen ablaufende Software auszuführen, wobei sie, abhängig von den speziellen beteiligten Software-Anwendungen, einen weiten Bereich von Verarbeitungsanforderungen besitzen können. Einem Prozessor ist oft ein Direktspeicherzugriff-Controller (DMA-Controller) zugeordnet, um die Last des Übertragens der Blöcke der Daten von einem Speicher oder einem Peripherie-Betriebsmittel zu einem anderen zu übernehmen und dadurch die Leistung des Prozessors zu verbessern.
  • Es sind viele verschiedene Typen von Prozessoren bekannt, von denen die Mikroprozessoren nur ein Beispiel sind. Digitale Signalprozessoren (DSPs) werden z. B. weit und breit verwendet, insbesondere für spezifische Anwendungen, wie z. B. mobile Verarbeitungsanwendungen. Die DSPs sind typischerweise konfiguriert, um die Leistung der betroffenen Anwendungen zu optimieren, wobei sie spezialisiertere Ausführungseinheiten und Befehlssätze verwenden, um dies zu erreichen. Insbesondere, aber nicht ausschließlich in Anwendungen, wie z. B. der mobilen Telekommunikation, ist es erwünscht, ständig zunehmende DSP-Leistung bereitzustellen, während die Leistungsaufnahme so niedrig wie möglich gehalten wird.
  • Die vorliegende Erfindung offenbart Verbesserungen in der Leistung der Prozessoren, wie z. B., aber nicht ausschließlich, digitaler Signalprozessoren.
  • Die europäische Patentanmeldung, Veröffentlichungs-Nr. 0486145, offenbart einen Mehrkanal-Direktspeicherzugriff-Controller (Mehrkanal-DMA-Controller) für Datenverarbeitungssysteme. Die Register und die Betriebsmittel, die für die Pipeline-Kommunikation der Daten und der Steuersignale bezüglich mehrerer Kanäle verwendet werden, werden adaptiv bezüglich eines einzelnen Kanals geteilt, wenn bezüglich dieses Kanals eine Befehlsverkettung erforderlich ist.
  • Gemäß einem ersten Aspekt der Erfindung wird ein digitales System mit einem Mehrkanal-Direktspeicherzugriff-Controller (Mehrkanal-DMA-Controller) geschaffen, wobei der DMA-Controller mehrere Kanalschaltungen, wovon jede wenigstens einen Kanaladressen-Ausgangsknoten, um eine Kanaladresse bereitzustellen, und wenigstens einen Anforderungsausgang besitzt, und mehrere Port-Schaltungen umfasst, wovon jede mehrere Kanaladressen-Eingangsknoten besitzt, die mit einem entsprechenden Kanaladressen-Ausgangsknoten der mehreren Kanalschaltungen verbunden sind, wobei jede Port-Schaltung der mehreren Port-Schaltungen einen Speicheradressen-Ausgangsknoten besitzt, um für ein entsprechendes zugeordnetes Speicherbetriebsmittel eine Speicheradresse bereitzustellen, die von den mehreren Adresseneingangsknoten ausgewählt ist. In der Erfindung weist jeder Port ferner eine Ablaufsteuerschaltung auf, die mit den Anforderungsausgängen der mehreren Kanalschaltungen verbunden ist. Die Ablaufsteuerschaltung ist so betreibbar, dass sie die nächste Anforderung auswählt, die durch den Port bedient wird, derart, dass die mehreren Port-Schaltungen so betreibbar sind, dass sie gleichzeitig auf die entsprechenden zugeordneten Speicherbetriebsmittel zugreifen. Jede Port-Schaltung umfasst ferner eine Port-Steuerschaltung, die einen Kanalschnittstellenknoten, der mit der entsprechenden Ablaufsteuerschaltung verbunden ist, um eine ausgewählte Kanaladresse zu empfangen, und einen Speicherschnittstellenknoten, um die Speicheradresse und ein Protokoll für den Zugriff auf das entsprechende zugeordnete Speicherbetriebsmittel bereitzustellen, besitzt, derart, dass alle der mehreren Port-Steuerschaltungen gleiche Kanalschnittstellenknoten besitzen.
  • Die vorliegende Anmeldung offenbart ferner eine Ausführungsform der Erfindung, in der jede Kanalschaltung einen FIFO-Puffer umfasst und bei dem wenigstens eine der Port-Schaltungen so betreibbar ist, dass sie eine Burst-Übertragung von Daten zwischen dem FIFO-Puffer einer ausgewählten Kanalschaltung und der Speicherschaltung, die der wenigstens einen Port-Schaltung zugeordnet ist, ausführt.
  • Die vorliegende Anmeldung offenbart noch weiter eine Ausführungsform der Erfindung, in der jede Kanalschaltung ferner eine Leseadressenschaltung und eine gesonderte Schreibkanal-Adressenschaltung aufweist. Es gibt einen gesonderten Bus, der zwischen jede Leseadressenschaltung und die entsprechenden Kanaladressen-Eingangsknoten der mehreren Port-Schaltungen geschaltet ist, und einen gesonderten Bus, der zwischen jede Schreibadressenschaltung und die entsprechenden Kanaladressen-Eingangsknoten der mehreren Port-Schaltungen geschaltet ist.
  • Die anderen Ausführungsformen des ersten Aspekts der Erfindung sind in den beigefügten Ansprüchen dargelegt.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren zum Betreiben eines digitalen Systems, wie es oben angegeben worden ist, geschaffen, das einen Mikroprozessor umfasst, wobei der Mikroprozessor mit einer Mehrkanal-Direktspeicherzugriff-Schaltung verbunden ist, die mehrere Kanalschaltungen und mehrere Port-Schaltungen besitzt, wovon jede mit einem Speicherbetriebsmittel verbunden ist, um Datenwörter zu übertragen. In den Kanalschaltungen werden mehrere anstehende Übertragungsanforderungen mit Übertragungsadressen gleichzeitig erzeugt. Die anstehenden Übertragungsanforderungen und die Übertragungsadressen werden für jede der mehreren Port-Schaltungen bereitgestellt. Der Betriebsablauf jedes Ports wird durch Auswählen einer Übertragungsanforderung und eines Kanals aus den anstehenden Übertragungsanforderungen individuell gesteuert. Zwischen jedem Port und dem ausgewählten Kanal wird eine Datenübertragung derart ausgeführt, dass alle der mehreren Ports ein angefordertes Datenwort im selben Taktzyklus übertragen.
  • Besondere Ausführungsformen gemäß der Erfindung werden nun unter Bezugnahme auf die beigefügte Zeichnung lediglich beispielhaft beschrieben, worin:
  • 1 ein Blockschaltplan eines digitalen Systems ist;
  • 2 ein ausführlicherer Blockschaltplan einer Megazelle aus 1 ist;
  • 3 ein ausführlicher Blockschaltplan des DMA-Controllers nach 2 ist;
  • 4 ein Blockschaltplan eines Abschnitts des DMA-Controllers ist, der die parallele Busstruktur veranschaulicht;
  • 5 eine graphische Darstellung der Aktivität ist, die ein Beispiel einer Konfiguration für den DMA-Controller veranschaulicht;
  • 6 ein Blockschaltplan ist, der die an der Ablaufsteuerung jedes Kanals des DMA-Controllers beteiligten Betriebsmittel veranschaulicht;
  • 7 eine schematische Darstellung des Zeitablaufs ist, die eine Round-Robin-Ablaufsteuerung im DMA-Controller veranschaulicht;
  • 8 ein DMA-Freigabe/Sperr-Steuerregister veranschaulicht;
  • 9 ein DMA-Kanalsteuerregister veranschaulicht;
  • 10 ein zusätzliches DMA-Kanalregister veranschaulicht;
  • 11 ein DMA-Kanalzustandsregister veranschaulicht;
  • 12 ein DMA-Hauptdatenseitenregister veranschaulicht;
  • 13 ein DMA-Quelladressenregister veranschaulicht;
  • 14 ein DMA-Zieladressenregister veranschaulicht;
  • 15 ein DMA-Elementzählerstandregister veranschaulicht;
  • 16 ein DMA-Rahmenzählerstandregister veranschaulicht;
  • 17 ein DMA-Elementindexregister veranschaulicht;
  • 18 ein DMA-Elementrahmenindexadressenregister veranschaulicht;
  • 19 ein Ablaufplan ist, der den Betrieb des DMA-Controllers veranschaulicht;
  • 20 ein Blockschaltplan einer Adressenpipeline des DMA-Controllers ist;
  • 21 ein Blockschaltplan einer Verschachtelungseinrichtungs-/Port-Pipeline des DMA-Controllers ist;
  • 22 ein Ablaufplan ist, die eine Übertragung von sechs Wörtern vom SARAM-Port zum RHEA-Port veranschaulicht;
  • 23 eine schematische Darstellung einer integrierten Schaltung ist, die das digitale System nach 1 enthält; und
  • 24 eine beispielhafte Implementierung eines Beispiels einer derartigen integrierten Schaltung in einer Mobiltelekommunikationsvorrichtung, wie z. B. einem Mobiltelephon, veranschaulicht.
  • Entsprechende Zahlen und Symbole in den verschiedenen Figuren und Tabellen beziehen sich auf entsprechende Teile, wenn nichts anderes angegeben ist. Gleiche Bezugszeichen werden verwendet, um gleiche Teile zu bezeichnen, in denen sich die Figuren auf das digitale System nach 1 und den DMA-Controller nach 2 beziehen, wenn nichts anderes angegeben ist.
  • Obwohl die Ausführungsformen der vorliegenden Erfindung spezielle Anwendung in digitalen Signalprozessoren (DSPs) finden, die z. B. in einer anwendungsspezifischen integrierten Schaltung (ASIC) implementiert sind, können sie außerdem in anderen Formen von Prozessoren Anwendung finden. Eine ASIC kann eine oder mehrere Megazellen enthalten, wovon jede kundenspezifische funktionale Schaltungen enthält, die mit den durch eine Entwicklungsbibliothek bereitgestellten im Voraus konstruierten funktionalen Schaltungen kombiniert sind.
  • 1 ist ein Blockschaltplan eines digitalen Systems, das eine Ausführungsform der vorliegenden Erfindung enthält. Die Megazelle 100 enthält eine CPU, einen DMA-Controller und Speicherschaltungen, wobei sie später ausführlich beschrieben wird. Der Host-Prozessor 110 ist über eine verbesserte Host-Port-Schnittstelle (EHPI) 112 mit der Megazelle 100 verbunden. Die EHPI 112 stellt die Multiplexierung des Host-Adressen- und Daten-Busses 111 bereit, um die durch die Megazelle 100 bereitgestellte Host-Port-Schnittstelle 115 anzupassen. Durch den Host-Prozessor 110 oder die CPU innerhalb der Megazelle 100 kann auf den Speicher 122, die Mehrzweck-Peripherievorrichtungen 132 und die dedizierten Peripherievorrichtungen 134 zugegriffen werden. Die Steuer-Schaltungsanordnung 170 stellt die Taktsignale für die Schaltungsanordnung innerhalb der Megazelle 100 bereit. Die MCU 110 enthält ihre eigene Zeitgeber-Schaltungsanordnung, was erfordert, dass die Zugriffe durch die im MCU 110 auf die durch die Megazelle 100 gesteuerten Betriebsmittel mit der Zeitbasis der Megazelle 100 synchronisiert werden müssen.
  • Der JTAG-Prüf-Port 160 enthält Hardware-Erweiterungen für fortgeschrittene Fehlersuchmerkmale. Diese unterstützen die Entwicklung des Anwendungssystems (Software und die Hardware) des Anwenders, das nur die JTAG-Schnittstelle, einen Prüf-Zugriffs-Port und die durch den IEEE-1149.1-Standard definierte Grenz-Abtast-Architektur mit erweiterten Betriebsart-Verbesserungen verwendet, wie im US-Patent 5.828.824 beschrieben ist. Die Emulations-Schaltungsanordnung 150 stellt die Fehlersuchprogrammsteuerung und die Ausführungsverfolgerungseinrichtungen bereit.
  • 2 ist ein ausführlicher Blockschaltplan der Megazelle 100. Die CPU 200 ist ein digitaler Signalprozessor (DSP). Die CPU 200 greift über die Speicherschnittstellenschaltung 202 auf die Speicherschaltungen 220, 222 und 224 zu. Die CPU 200 greift über die externe Speicherschnittstelle (EMIF) 120 auf den externen Speicher zu. Die CPU 200 greift über die RHEA-Brücke 230 zum RHEA-Bus 130 auf die anderen Betriebsmittel zu. DMA-Controller 210 kann ein Mehrkanal-DMA-Controller mit gesonderten Kanal- und Port-Controllern sein, wobei jeder Port eine lokale Ablaufsteuerschaltungsanordnung besitzt. Der DMA 210 kann programmiert sein, um die Daten zwischen verschiedenen Quellen und Zielen innerhalb des digitalen Systems 10, wie z. B. dem Einzelzugriffs-RAM 220, dem Doppelzugriffs-RAM 222, dem externen Speicher 122 über die externe Speicherschnittstelle 120 und den Peripherievorrichtungen auf dem Betriebsmittelbus (RHEA) 130 über die RHEA-Brücke 230, zu übertragen. Die MCU 110 kann außerdem über die Host-Port-Schnittstelle (HPI) 115, die mit dem DMA-Controller 210 verbunden ist, auf diese Betriebsmittel zugreifen. Der Weg zwischen dem HPI-Port und dem Speicher ist ein DMA-Kanal.
  • Die Speicherschaltung 220 ist ein 128 k × 16-Einzelzugriffs-RAM (SARAM), der sechzehn 32-kByte-Module umfasst. Der DMA 210 kann durch einen 16-Bit-DMA-Bus auf den SARAM zugreifen. Der DMA-Buszugriff (R/W) kann in der SAM-Betriebsart (Gemeinschaftszugriff-Betriebsart) oder HOM-Betriebsart (Nur-Host-Betriebsart) erfolgen. Ein Zugriff durch die MCU 110 in der HOM-Betriebsart umgeht die Synchronisationsschaltungsanordnung innerhalb des DMA 210, die die MCU-Taktung mit der Taktung der Megazelle 100 synchronisiert. Das Prioritätsschema zwischen der CPU 200 und dem DMA 210 ist programmierbar. Die Prioritätsschaltungsanordnung ist im SARAM implementiert, wohingegen sich das Steuerregister im DMA-IO-Raum befindet, der über den RHEA-Buszweig 130a zugänglich ist.
  • Die Speicherschaltung 222 ist ein 32 k × 16-Doppelzugriffs-RAM (DARAM), der vier 16-kByte-Module umfasst. Die CPU 200 kann in einem Zyklus zwei Zugriffe auf ein DARAM-Speichermodul ausführen; z. B. einen Einzel-Lesevorgang und einen Einzel-Schreibvorgang oder einen langen Lesevorgang und einen langen Schreibvorgang, einen Doppel-Lesevorgang und einen Einzel-Schreibvorgang usw. Die den verschiedenen Zugriffen zugeordneten Prioritäten werden durch den DARAM bearbeitet. Das Prioritätsschema zwischen der CPU und dem DMA ist programmierbar. Die Prioritätsschaltungsanordnung ist im DARAM implementiert, wohingegen sich das Steuerregister im DMA-IO-Raum befindet, der über den RHEA-Bus zugänglich ist.
  • Alternative Ausführungsformen der Schaltungen und Systeme, die hierin offenbart sind, können andere Konfigurationen des Speichers und der Peripherievorrichtungen besitzen.
  • 2 zeigt nur diejenigen Abschnitte der Megazelle 100, die für ein Verständnis einer speziellen Ausführungsform der vorliegenden Erfindung relevant sind. Die Einzelheiten der allgemeinen Konstruktionen für DSPs sind wohlbekannt, wobei sie leicht anderswo gefunden werden können. US-Patent 5.072.418, erteilt an Frederick Boutaud u. a., beschreibt z. B. einen DSP ausführlich. US-Patent 5.329.471, erteilt an Gary Swoboda u. a., beschreibt ausführlich, wie ein DSP zu prüfen und zu emulieren ist. Die Einzelheiten der Abschnitte des DMA-Controllers 210, die für eine Ausführungsform der vorliegenden Erfindung relevant sind, sind im Folgenden ausreichend ausführlich erklärt, um einem Durchschnittsfachmann auf dem Gebiet der Mikroprozessoren zu ermöglichen, die Erfindung auszuführen und zu verwenden.
  • Die Tabelle 1 fasst mehrere der überall in diesem Dokument verwendeten Akronyme zusammen.
  • Figure 00090001
  • Figure 00100001
    Tabelle 1 – Glossar der Begriffe
  • Der DMA-Controller 210 überträgt die Daten zwischen den Punkten im Speicherraum ohne Eingriff durch die CPU. Der DMA erlaubt, dass die Bewegungen der Daten zum und vom internen Speicher, externen Speicher und zu und von den Peripherievorrichtungen im Hintergrund der CPU-Operation geschehen. Der DMA besitzt sechs unabhängige programmierbare Kanäle, die sechs verschiedene Kontexte für den DMA-Betrieb erlauben, die in der Zeitvielfachzugriff-Betriebsart (TDM-Betriebsart) ausgeführt werden.
  • Die DMA-Architektur ist um Ports und Kanäle organisiert. In 2 besitzt jedes Betriebsmittel, auf das der DMA zugreifen kann, seinen eigenen Port: den SARAM-Port 212a, den DARAM-Port 212b, den EMIF-Port 212c und den RHEA-Port 212d. Der HPI-Port 214 ist ein Spezialfall, der später erörtert wird. Ein Port kann Lese- und Schreibzugriffe auf das Betriebsmittel, mit dem er verbunden ist, durch einen dedizierten Bus ausführen.
  • Dieser DMA-Controller deckt den Bedarf an einem Fluss mit hoher Rate und an Mehrkanal-Anwendungen, wie z. B. der Basisstationen drahtloser Telephone oder des Datenverkehrs eines Zellenhandapparats.
  • 3 ist ein ausführlicher Blockschaltplan des DMA-Controllers nach 2. Ein Kanal enthält einen Quell-Port, einen FIFO und einen Ziel-Port. Gemäß einer Ausführungsform der vorliegenden Erfindung können der Quell-Port und der Ziel-Port jedes Kanals dynamisch programmierbar sein. In der vorliegenden Ausführungsform sind sechs Kanäle verfügbar, obwohl andere Ausführungsformen eine alternative Anzahl von Kanälen aufweisen können. Sechs Kanal-Controller 310315 steuern die sechs Kanäle. Alle sechs Kanäle werden über die entsprechenden Port-Multiplexer 330333 in jenem Port multiplexiert. Jede Kanalsteuerung besitzt einen entsprechenden FIFO(n). Die FIFOs werden nicht durch die Kanäle geteilt; jeder Kanal besitzt seinen eigenen FIFO. Dies erlaubt mehr Unabhängigkeit zwischen den Übertragungen. Eine DMA-Übertragung im Kanal (n) wird in zwei Schritten ausgeführt: der Quell-Port führt einen Lesezugriff auf ein Quell-Betriebsmittel aus, erhält die Daten und setzt sie in den FIFO des Kanals (n); sobald sich die Daten im FIFO befinden, wird der Ziel-Port aktiviert, wobei er einen Schreibzugriff auf das Ziel-Betriebsmittel ausführt, um die Daten zu schreiben. Jeder Kanal-Controller enthält eine gesonderte Leseadresseneinheit RAU(0–5) und eine gesonderte Schreibadresseneinheit WAU(0–5).
  • Alle Ports arbeiten parallel. In dieser Ausführungsform sind vier Ports mit den vier Datenspeicher-Betriebsmitteln verbunden, deshalb können im selben Taktzyklus vier gleichzeitige Lese-/Schreibzugriffe ausgeführt werden. Um diese Zugriffsrate zu unterstützen, werden die Adressenberechnung und die Verschachtelung in einer Pipeline verarbeitet. Die maximale Übertragungsrate für diese Ausführungsform mit vier Ports beträgt zwei Wörter (zwei Lesevorgänge und zwei Schreibvorgänge) pro CPU-Zyklus. Dies wird erreicht, wenn die Quellen und die Ziele unabhängig sind. Eine alternative Ausführungsform kann eine größere Anzahl von Ports mit einer entsprechend höheren maximalen Übertragungsrate aufweisen.
  • Ein Leseadressenbus RA enthält sieben einzelne Busse, um eine Kanalleseadresse von jeder Leseadresseneinheit RAU(0–5) und vom HPI-Port zu jedem Port-Eingangs-Multiplexer 330333 parallel zu befördern. Ein Schreibadressenbus WA enthält sieben einzelne Busse, um eine Kanalschreibadresse von jeder Schreibadresseneinheit WAU(0–5) und vom HPI-Port zu jedem Port-Eingangs-Multiplexer 330333 parallel zu befördern. Gleichermaßen enthält ein Datenausgangsbus DO sieben einzelne Busse, um einen Datenausgangswert von jedem FIFO(0–5) und vom HPI-Port zu jedem Port-Eingangs-Multiplexer 330333 parallel zu befördern.
  • Ein Dateneingangsbus DI enthält vier einzelne Busse, um einen Dateneingangswert von jedem Port zu jedem FIFO(0–5) und zum HPI-Port parallel zu befördern.
  • Ein DMA-Port sendet eine Anforderung an seinen zugeordneten Speicher, um ein Datenelement in diesem Speicher zu lesen oder zu schreiben. Eine Übertragung von einem Wort besteht aus einer Leseanforderung an einem Quell-Port i, gefolgt von einer Schreibanforderung an einen Ziel-Port j (i kann gleich j sein). Eine Anforderung ist durch ihren Typ (r für Lesen, w für Schreiben) und den Kanal, zu dem sie gehört, definiert.
  • Beispiel: ri ist eine Leseanforderung im Kanal i, wj ist eine Schreibanforderung im Kanal j.
  • Jeder Port besitzt seine eigene Verschachtelungseinrichtung 350353, um die Kanalmultiplexierung im zugeordneten Port zu steuern. Die Verschachtelungseinrichtung empfängt die Lese- und Schreibanforderungen von jedem Kanal, berechnet, was die nächste Anforderung ist, die bedient werden muss, und löst eine Port-Steuerungs-Zustandsmaschine aus, um diese Anforderung zu bedienen.
  • Der DMA-Controller 210 besitzt verteilte Anforderungs-Zuordnungseinrichtungen 340343, die jeweils dem Port zugeordnet sind. Es kann bis zu dreizehn Anforderungen umgeben, die in irgendeinem gegebenen Taktzyklus anstehend sind: sechs Leseanforderungen, sechs Schreibanforderungen und eine HPI-Anforderung. Um die Komplexität der Verschachtelungseinrichtung zu verringern, kann in der vorliegenden Ausführungsform eine Verschachtelungseinrichtung ein Maximum von fünf gleichzeitigen Anforderungen gleichzeitig verschachteln. Die Anforderungs-Zuordnungseinrichtungen 340343 tasten die DMA-Konfiguration und die anstehenden Anforderungssignale auf dem Anforderungsbus 345 ab und wählen ein Maximum von fünf Anforderungssignalen aus, um sie an jede Verschachtelungseinrichtung für die Verarbeitung zu senden. In einer alternativen Ausführungsform können die Zuordnungseinrichtungen 340343 in einer einzelnen Zuordnungseinrichtungs-Schaltung zusammen gruppiert sein. In einer weite ren Ausführungsform kann eine komplexere Verschachtelungseinrichtung alle durch alle Kanäle bereitgestellten Anforderungen direkt empfangen und ihren Betriebsablauf steuern.
  • Jeder Port besitzt einen zugeordneten Port-Steuerblock 360363. Diese Blöcke sind für das Einleiten der Lese-/Schreibzugriffe auf die Speicher und Peripherievorrichtungen verantwortlich. Sie implementieren das Transaktions-Zugriffsprotokoll zwischen den Speichern oder Peripherievorrichtungen und dem DMA. Diese Protokolle sind für SARAM und DARAM die gleichen. Das RHEA-Busprotokoll und das EMIF-Protokoll sind verschieden. Folglich ist jeder Port auf den Typ des Betriebsmittels maßgeschneidert, mit dem er verbunden ist.
  • Jeder Kanal-Controller besitzt einen zugeordneten Prioritätsblock PRIO(0–5). Die Funktion dieses Blocks ist, ein im DMA verfügbares Prioritätsschema mit drei Ebenen zu implementieren: die hohe Priorität für die HPI, die hohe Priorität für die Kanäle und die niedrige Priorität für die Kanäle.
  • Jeder Kanal-Controller besitzt einen zugeordneten Ereignissynchronisationsblock EVENT(0–5). Jeder Ereignissynchronisationsblock wartet auf Ereignisse, die eine Übertragung in seinem Kanal auslösen. Jeder Block sucht außerdem nach Ereignisabfällen.
  • Die Kanal-FIFOs besitzen in dieser Ausführungsform jeder acht Stufen. Die FIFO empfangen die von einem Quell-Port zu einem Ziel-Port übertragenen Daten. Sie erlauben die Pipeline-Verarbeitung der DMA-Übertragungen und die Burst-Übertragung zu/von den externen Speichern. In allen Kanälen sind Bursts aus acht Datenwörtern möglich.
  • Der Unterbrechungsgenerator 370 erzeugt die Unterbrechungen für die CPU entsprechend der DMA-Konfiguration und dem DMA-Zustand. Jeder Kanal besitzt sein eigenes zugeordnetes Unterbrechungssignal dma_nirq(5-0).
  • Die RHEA-Schnittstelle 380 schließt den RHEA-Bus 130a von der RHEA-Brücke an. Die RHEA-Schnittstelle 380 wird nur für CPU-Lesevorgänge und -Schreibvorgänge in die DMA-Konfigurationsregister verwendet. Die DMA-Zugriffe auf die RHEA-Peripherievorrichtungen werden durch den RHEA-Port, nicht durch die RHEA-Schnittstelle ausgeführt.
  • Die Deskriptor-Blöcke CFG(0–5) werden verwendet, um den Zustand der DMA-Übertragungen zu steuern und zu überwachen. Es gibt einen Deskriptor-Block pro Kanal. Sie werden über die RHEA-Schnittstelle 380 gelesen/geschrieben.
  • Der HPI-Port 214 erlaubt direkte Übertragungen zwischen dem HOST und dem Speicher. Dieser Weg unterstützt die HOM- und SAM-Betriebsart. In der HOM-Betriebsart werden die DMA-Register umgangen. Das Umschalten von SAM zu HOM erfordert, dass der DMA-HOST-Kanal vor dem Umschalten leer ist.
  • 4 ist ein Blockschaltplan eines Abschnitts eines DMA-Controllers 400, der die parallele Busstruktur veranschaulicht. Der DMA-Controller 400 repräsentiert den DMA-Controller 210, er ist jedoch vereinfacht, um die parallele Busstruktur deutlicher zu veranschaulichen. Für die Klarheit sind nur drei Kanal-Controller 410412 und zwei Ports 450451 veranschaulicht. Die Busse CP(0–2) vom Kanal zum Port repräsentieren die parallelen Busse, die im Leseadressenbus RA, im Schreibadressenbus WA und im Datenausgangsbus DO nach 3 enthalten sind. In dieser Figur ist für die Klarheit nur der Leseadressenbus RA gezeigt. Gleichermaßen repräsentieren die Busse PC(0–1) vom Port zum Kanal die parallelen Busse, die im Dateneingangsbus DI enthalten sind. Die Ablaufsteuerschaltungsanordnung 420 innerhalb des Ports 450 enthält eine Anforderungszuordnungseinrichtungs-Schaltungsanordnung, eine Verschachtelungseinrichtungs-Schaltungsanordnung und eine Multiplexerschaltungsanordnung und wählt einen der Busse CP(0–2) vom Kanal zum Port aus, der in jedem Taktzyklus mit dem Port-Controller 460 zu verbinden ist, um eine Adresse für eine in jedem Taktzyklus ausgeführte Transaktion bereitzustellen. Gleichermaßen enthält die Ablaufsteuerschaltungsanordnung 421 innerhalb des Ports 451 eine Anforderungszuordnungseinrichtungs-Schaltungsanordnung, eine Verschachtelungseinrichtungs- Schaltungsanordnung und eine Multiplexerschaltungsanordnung und wählt einen der Busse CP(0–2) vom Kanal zum Port aus, der in jedem Taktzyklus mit dem Port-Controller 461 zu verbinden ist, um eine Adresse für eine in jedem Taktzyklus ausgeführte Transaktion bereitzustellen. Vorteilhaft arbeitet jede Ablaufsteuereinrichtung 420421 parallel, wobei die Quell/Ziel-Adressenwörter über die durch CP0–CP2 repräsentierten parallelen Busse zu jeder Ablaufsteuereinrichtung parallel übertragen werden. Vorteilhaft werden die Eingangs/Ausgangs-Datenwörter außerdem zu/von jedem Port-Controller 460461 parallel übertragen.
  • Die CPU 403 stellt die Konfigurationsinformationen über den Bus 404 dem DMA-Controller 400 bereit. Der erste Port 460 ist mit dem Betriebsmittel 401 verbunden, während der zweite Port 461 mit einem zweiten Betriebsmittel 402 verbunden ist. Der Port-Controller 460 ist maßgeschneidert, um ein durch das Betriebsmittel 401 benötigtes Zugriffsprotokoll bereitzustellen, während der Port-Controller 461 maßgeschneidert ist, um ein durch das Betriebsmittel 402 benötigtes Zugriffsprotokoll bereitzustellen.
  • Eine Kanalschnittstelle 470 innerhalb des Port-Controllers 460 empfängt die ausgewählte Kanaladresse und die Datensignale von der Ablaufsteuerschaltungsanordnung 420. Die Kanalschnittstelle 471 innerhalb des Port-Controllers 461 empfängt die ausgewählte Kanaladresse und die Datensignale von der Ablaufsteuerschaltungsanordnung 421. Die Speicherschnittstelle 472 innerhalb des Port-Controllers 460 schafft eine Verbindung zum Speicherbetriebsmittel 401, um Adressen und Daten zu übertragen. Die Speicherschnittstelle 472 innerhalb des Port-Controllers 460 schafft eine Verbindung zum Speicherbetriebsmittel 401, um Adressen und Daten zu übertragen. Die Kanalschnittstellen 470471 in allen Ports im DMA-Controller sollten völlig gleich sein, während die Speicherschnittstellen 472473 maßgeschneidert sein sollten, damit sie dem Übertragungsprotokoll des zugeordneten Speicherbetriebsmittels entsprechen.
  • In einer alternativen Ausführungsform können die Port-Controller 460461 maßgeschneidert sein, um ein von einem anderen Typ des Betriebsmittels benötigtes Zugriffsprotokoll bereitzustellen. Vorteilhaft kann die Kanal- und Ab laufsteuer-Schaltungsanordnung innerhalb des Kanal-Controller-Abschnitts 400a des DMA-Controllers 400 mit verschiedenen Versionen der maßgeschneiderten Port-Controller in Wechselwirkung treten, ohne modifiziert zu werden.
  • In 2 erlaubt der DMA-Controller 210 acht Typen der Übertragungsbetriebsart für den internen Speicher, den externen Speicher und die Peripherievorrichtungen durch jeden Kanal, während die EHPI vier Typen der Übertragungen erlaubt, wie in der Tabelle 2 zusammengefasst ist. Die Datenübertragung von Peripherievorrichtung zu Peripherievorrichtung, wie z. B. von der Empfangsseite eines seriellen Ports zur Sendeseite eines weiteren seriellen Ports, wird durch den DMA nicht direkt unterstützt. Der Speicher muss als ein vorübergehender Puffer verwendet werden, um die DMA-Übertragungen von Peripherievorrichtung zu Peripherievorrichtung zu implementieren.
  • Figure 00170001
    Tabelle 2 – Zusammenfassung der Übertragungsbetriebsarten
  • Die in der Tabelle 3 zusammengefassten Kanal-Deskriptoren werden verwendet, um eine Übertragung im Kanal i zu konfigurieren.
  • Figure 00180001
    Tabelle 3 – Die Kanal-Deskriptoren
  • Die Tabelle 4 veranschaulicht eine Beispielkonfiguration der sechs Kanäle der vorliegenden Ausführungsform, die außerdem in 5 veranschaulicht ist. In 5 ist jeder Kanal durch die mit C(0–5) beschrifteten Kästen gezeigt; jeder Port ist durch die mit P(0–3) beschrifteten Kreise gezeigt und jedes Betriebsmittel ist durch die mit M(0–3) beschriften Kästen gezeigt.
  • Figure 00190001
    Tabelle 4 – Beispiel-DMA-Konfiguration
  • Vorteilhaft gibt es keine Einschränkungen in der DMA-Konfiguration. Ein Kanal kann an einem Port eine Schleife bilden, wobei in diesem Fall derselbe Port die Quelle und das Ziel für eine Übertragung ist, was eine Kopie eines Datenblocks von einer Adresse zu einer weiteren Adresse im selben Speicher erlaubt, z. B.: channel[i].src = channel[i].dst. Irgendeine Anzahl von Kanälen kann zum selben Port zeitmultiplexiert werden, z. B.: channel[0].src = channel[1].scr = channel[2].scr. Alle Kanäle können eine Schleife zum selben Port bilden, z. B.: channel[i].src = channel[i].dst = channel[j].src = channel[j].dst, für alle i ∈ {0, 1, 2, 3, 4, 5}, für alle j ∈ {0, 1, 2, 3, 4, 5}, i ≠ j.
  • Vorteilhaft erlaubt diese Ausführungsform des DMA-Controllers, dass zwei Übertragungen völlig parallel erfolgen, falls sie verschiedene Ports einschließen, z. B.: channel[i].src = 0, channel[i].dst = 1, für i ∈ {0, 1, 2, 3, 4, 5}, channel[j].src = 2, channel[j].dst = 3, für j ∈ {0, 1, 2, 3, 4, 5}, i ≠ j.
  • Die Ablaufsteuerung
  • Um die oben beschriebene Flexibilität zu schaffen, besitzt jeder Port seine eigene Ablaufsteuerschaltungsanordnung. Wenn mehrere Kanäle Zugriff auf einen DMA-Port erlangen wollen, senden sie Anforderungen an diesen Port. Der Port muss berechnen, welche Anforderung gleich bedient wird, was hierin als Ablaufsteuerung bezeichnet wird.
  • Die Anzahl der Anforderungen, deren Betriebsablauf ein Port steuern muss, hängt von der DMA-Konfiguration ab, wie sie durch die CPU für eine gegebene Anwendung programmiert ist. Der Round-Robin-Dienst wird verwendet, um sicherzustellen, dass alle auf den Dienst wartenden Anforderungen bedient werden. Die Ablaufsteuerung ist unabhängig vom Betriebsmittel, mit dem der Port verbunden ist; deshalb wird der gleiche Ablaufsteueralgorithmus für alle Ports verwendet. Wie "der Betriebsablauf einer Anforderung wird gesteuert" hierin verwendet wird, bedeutet, dass die Port-Ablaufsteuereinrichtung berechnet hat, welche Anforderung (unter allen Anforderungen, die diesen Port benötigen) beim nächsten Taktzyklus gleich bedient wird. "Eine Anforderung wird quittiert" bedeutet, dass ein Speicher ein Quittungssignal sendet, nachdem er eine Anforderung von dem Port empfangen hat, mit dem er verbunden ist.
  • 6 ist ein Blockschaltplan, der die an der Ablaufsteuerung jedes Kanals des DMA-Controllers beteiligten Betriebsmittel veranschaulicht. Jeder Kanal besitzt zwei Zähler, um den Zustand seines FIFO zu überwachen. Ein FIFO_write_counter 610 des channel[i] zählt die Anzahl der Schreibvorgänge, die gleich im FIFO 600 ausgeführt werden. Er wird jedesmal inkrementiert, wenn der Betriebsablauf einer Leseanforderung ri im Quell-Port 630 des Kanals i gesteuert wird. Der FIFO_write_counter wird jedesmal dekrementiert, wenn am Ziel-Port 632 des Kanals i eine Anforderung wi quittiert wird (d. h. jedesmal, wenn Daten des Kanals i in den Zielspeicher 642 geschrieben werden). Der Rücksetzwert die ses Zählers ist null. Der Kanal i erzeugt eine Schreibanforderung an einen Port p, wenn es wenigstens ein Datenelement im FIFO des Kanals i gibt.
  • Ein FIFO_read_counter 620 des channel[i] zählt die Anzahl der Datenelemente, die im FIFO 600 gelesen werden können. Er wird jedesmal inkrementiert, wenn am Quell-Port 630 des Kanals i eine Leseanforderung ri quittiert wird (d. h. jedesmal, wenn ein Datenelement aus dem Quellspeicher 640 gelesen wird). Der FIFO_read_counter 620 des channel[i] wird jedesmal dekrementiert, wenn der Betriebsablauf einer Schreibanforderung wi am Ziel-Port 630 des Kanals i gesteuert wird. Der Rücksetzwert dieses Zählers ist null. Der Kanal i erzeugt eine Leseanforderung an einen Port p, wenn es wenigstens eine Stelle gibt, um die im FIFO 600 des Kanals i gelesenen Daten zu speichern.
  • Eine Schreibanforderung an den Ziel-Port kann nur auftreten, falls für den channel[i] FIFO_read_counter > 0 gilt, d. h., nur nachdem eine Leseanforderung im Quell-Port bedient worden ist.
  • Die Ablaufsteuereinrichtung tastet alle Register der Kanal-Deskriptoren (Quelldeskriptor 650, Zieldeskriptor 652 und Freigabedeskriptor 654) und die FIFO-Zähler (FIFO_write_counter 610 und FIFO_read_counter 620) ab, um festzustellen, ob Anforderungen warten, um bedient zu werden. Jeder möglichen Anforderung wird eine Anforderungskennung gegeben, d. h.: Leseanforderungs-Kennung des channel(i) = i·2, wobei i ∈ {0, 1, 2, 3, 4, 5} gilt, Schreibanforderungs-Kennung des channel(i) = i·2 + 1.
  • Die Gesamtzahl der möglichen aktiven Kanalanforderungen im DMA beträgt zweimal die Anzahl der Kanäle, weil eine Schreib- und eine Leseanforderung in jedem Kanal möglich sind. Außerdem wird eine Anforderung vom HPI-Port als eine DMA-Kanalanforderung behandelt. Falls es eine wartende Anforderung gibt, wird sie bedient. Falls es mehrere wartende Anforderungen gibt, werden sie in einem Round-Robin-Schema bedient: falls die Anforderung r die aktuelle bediente Anforderung ist, ist die nächste bediente Anforderung:
    request (r + 1) mod REQUEST_NUMBER, falls diese Anforderung vorhanden ist
    else request (r + 2) mod REQUEST_NUMBER, falls diese Anforderung vorhanden ist
    else request (r + 3) mod REQUEST_NUMBER, falls diese Anforderung vorhanden ist
    ...
    else request (r + REQUEST_NUMBER) mod REQUEST_NUMBER, falls diese Anforderung vorhanden ist
    else none
  • 7 ist eine schematische Darstellung des Zeitablaufs, die eine Round-Robin-Ablaufsteuerung im DMA-Controller veranschaulicht. Eine bei 710 angegebene Menge von Anforderungen wird in der bei 720 angegebenen Reihenfolge bedient.
  • Der Ablaufsteuerungsalgorithmus ist in der Tabelle 6 unter Verwendung des Pseudo-Codes mit den in der Tabelle 5 definierten Begriffen ausführlicher beschrieben.
  • Figure 00230001
  • Figure 00240001
    Tabelle 5 – Die im Ablaufsteueralgorithmus verwendeten Begriffe
  • Figure 00240002
    Tabelle 6 – Der Ablaufsteueralgorithmus
  • Diese Berechnung der Ablaufsteuerung wird in jedem der DMA-Ports in einem Taktzyklus ausgeführt. Dieser Algorithmus ist generisch, wobei er für alle DMA-Ports der gleiche ist. Das einzige von jedem der Betriebsmittel benötigte Signal ist ein Quittungssignal. Wenn das Betriebsmittel kein Quittungssignal besitzt, dann wird eine bekannte vorhersagbare Reaktionszeit verwendet. Es gibt keine direkte Kommunikation zwischen den Quell- und Ziel-Ports: beide sehen nur die FIFO-Überwachungszähler. Folglich passt sich die Ziel-Übertragungsrate selbst der Quell-Leserate an. Der Ablaufsteuerungsalgorithmus arbeitet mit jeder Anzahl von Kanälen; die einzige Einschränkung ist die Zeitdauer (Taktperiode), die verfügbar ist, um next_request zu berechnen, und das für zusätzliche Transistoren verfügbare Flächenbudget, weil ein neuer Kanal einen neuen FIFO und eine neue Menge von Deskriptoren hinzufügt.
  • Während des Betriebs kann ein gegebener Port leicht spezialisiert werden, um nur einen Kanal oder eine Teilmenge der Kanäle abzuwickeln, indem die unerwünschten Kanäle am gegebenen Port unter Verwendung des Freigabe-Deskriptor-Registers gesperrt werden. In einer weiteren Ausführungsform kann ein gegebener Port leicht spezialisiert werden, um nur einen Kanal oder eine Teilmenge der Kanäle abzuwickeln, indem die unerwünschten Kanäle am gegebenen Port permanent gesperrt werden.
  • Nun werden die verschiedenen Steuerregister ausführlicher beschrieben. Die DMA-Steuerregister sind in einem 64-KW-Peripherieraum der Megazelle 100 speicherkonform. Alternative Ausführungsformen können die Steuerregister in anderen Speicheradressenräumen unterbringen, oder es kann z. B. direkt auf die Register zugegriffen werden. 8 veranschaulicht ein einzelnes globales DMA-Kanal-Freigabe/Sperr-Steuerregister. Die Tabelle 7 listet eine Menge von Steuerregister auf, die dem DMA-Kanal zugeordnet sind.
  • Figure 00260001
    Tabelle 7 – Die jedem Kanal zugeordneten Steuerregister
  • In 8 ist das DMA-Freigabe/Sperr-Steuerregister (DMEDC) ein 16-Bit-Lese-/Schreibregister. Es enthält die DMA-Übertragungsprioritäts- und -Übertragungsfreigabe-Steuerung für jeden DMA-Kanal. Ein Feld für das DMA-Freigabe/Sperr-Steuerbit (DE[5:0]) spezifiziert die DMA-Freigabe-/Sperrsteuerung für jeden Kanal (0 = gesperrt, 1 = freigegeben). Die DE[5:0]-Felder werden beim Rücksetzen auf null gesetzt.
  • Ein Feld für die Kanalpriorität PRIO[5:0] definiert die Priorität jedes Kanals: PRIO[i] = 0 gibt an, dass der Kanal i eine niedrige Priorität besitzt; PRIO[i] = 1 gibt an, dass der Kanal i eine hohe Priorität besitzt. Ein Feld für die HPI-Priorität HPI[1:0] definiert die Priorität des Host-Ports in Bezug auf die DMA-Kanäle. Wenn EHPI[1:0] = 10 oder 11 gilt, besitzt HPI die HÖCHSTE Priorität gegenüber allen DMA-Kanälen, wobei nur er auf den RAM auf dem Chip zugreifen kann. Die anderen DMA-Kanäle können nicht auf den RAM auf dem Chip zugreifen. Wenn HPI[1:0] = 01 gilt, ist die HPI in den TDM-Fluss des DMA-Kanals integriert und wird als ein Kanal mit HOHER Priorität behandelt. Wenn HPI[1:0] = 00 gilt, ist die HPI in den TDM-Fluss des DMA-Kanals integriert und wird als ein Kanal mit NIEDRIGER Priorität behandelt. Beim Rücksetzen gilt HPI[1:0] = 11.
  • Die Übertragungen aller Kanäle werden in einer Round-Robin-Weise zeitmultiplexiert. In einer gegebenen Round-Robin-Warteschlange wird jeder Kanal zum nächsten Kanal geschaltet, nachdem sein Lesevorgang ausgelöst worden ist. Die Kanäle mit niedriger Priorität sind solange anstehend, wie die Kanäle mit hoher Priorität ausgelöst werden müssen. Die Kanäle mit niedriger Priorität werden in einer Round-Robin-Weise ausgelöst, wenn die ereignissynchronisierten Kanäle mit hoher Priorität auf Ereignisse warten und die nicht synchronisierten Kanäle mit hoher Priorität abgeschlossen sind.
  • In 8 spezifiziert das Prioritätsbit der CPU/DMA-Busse die Priorität der CPU 200 in Bezug auf den DMA-Controller 210, wenn beide auf dasselbe Speicherbetriebsmittel zugreifen. Wenn CPU/DMA = 1 gilt, besitzen die Busse der CPU 200 Priorität gegenüber den Bussen des DMA 210 für alle internen und externen Speicherzugriffe. Wenn CPU/DMA = 0 gilt, besitzen die Busse des DMA 210 Priorität gegenüber den Bussen der CPU 200 für alle internen und externen Speicherzugriffe.
  • Ein FREE-Bit steuert eine Freilauf-Betriebsart. Falls FREE = 1 gilt, wird der Freilauf in der Situation ausgewählt, wenn z. B. in einer Fehlersucheinrichtung einem Unterbrechungspunkt begegnet wird.
  • 9 veranschaulicht ein Kanalsteuerregister, wie es in der Tabelle 7 aufgelistet ist. Das DMA-Kanalsteuerregister DMCCRn ist ein 16-Bit-Lese-/Schreibregister, das den DMA-Betrieb seines zugeordneten Kanals steuert. Ein Feld für die DMA-Wort/Burst-Übertragungsbetriebsart (WDBRT[1:0]) definiert die Elementgröße der Übertragung, wie in der Tabelle 8 angegeben ist.
  • Figure 00280001
    Tabelle 8 – Die Übertragungsbetriebsart
  • Wenn die 32-Bit-Wort- oder Burst-Übertragungsbetriebsart freigegeben ist, werden zwei aufeinanderfolgende DMA-Übertragungen ausgeführt, wobei die DMA-Zustandsmaschine außerdem auf sie achtgeben wird. Ungeachtet der Indexbetriebsart erzeugt die DMA-Adresseneinheit die Adresse für das höchstwertige Wort (MSW) mit dem effektiven Adressenwert und die Adresse für das niedrigstwertige Wort (LSW) durch das Invertieren des LSB der effektiven Adresse.
  • Die Bits des Feldes für die Übertragungsindex-Betriebsart für die Quelle (SIND[1:0]) und des Feldes für die Übertragungsbetriebsart für das Ziel (DIND[1:0]) spezifizieren die Indexbetriebsart für die Adressierung, wie in der Tabelle 9 angegeben ist. Die SIND- u. DIND-Bits werden beim Rücksetzen auf null gesetzt.
  • Figure 00290001
    Tabelle 9 – Die Übertragungsindex-Betriebsart
  • Ein Feld für die DMA-Übertragungs-Quellraumauswahl (SRC[1:0]) spezifiziert die Raumauswahl für die Quelladresse der Übertragung. Ein Feld für die DMA-Übertragungs-Zielraumauswahl (DST[1:0]) spezifiziert die Raumauswahl für die Zieladresse der Übertragung, wie in der Tabelle 10 angegeben ist. Eine weitere Ausführungsform kann andere Betriebsmittel für die Quelle/das Ziel besitzen.
  • Figure 00290002
    Tabelle 10 – Die Auswahl des Übertragungsraums
  • Ein Rahmensynchronisationsbit steuert die Rahmensynchronisation. Wenn FS = 0 gilt, ist die Rahmensynchronisation gesperrt, wobei die Elementsynchronisations-Betriebsart freigegeben ist. Jede Elementübertragung wartet, dass das ausgewählte Ereignis auftritt, bevor fortgefahren wird. Wenn FS = 1 gilt, ist die Rahmensynchronisation freigegeben. Jede Rahmenübertragung wartet, dass das ausgewählte Ereignis auftritt, bevor fortgefahren wird. Es ist nur ein Ereignis notwendig, um die ganze Rahmenübertragung (alle Rahmenelemente) zu synchronisieren.
  • Die Elementsynchronisations-Betriebsart erfordert ein Ereignis pro Elementübertragung (ein Element kann ein 16-Bit-Wort oder ein 32-Bit-Wort, ein Burst aus 4·16 Bits oder 8·16 Bits sein, abhängig von der gewählten Elementgröße). In einer Übertragung in der 32-Bit-Betriebsart erfordert der DMA-Controller z. B. nur eine Ereigniseingabe für die aufeinanderfolgenden zwei 16-Bit-Wort-Übertragungen.
  • Die Rahmensynchronisations-Betriebsart erfordert ein Ereignis, um die ganze Rahmenübertragung auszulösen, was der Übertragung aller Rahmenelemente entspricht. Falls ein Kanal nicht ereignissynchronisiert ist, wird eine Übertragung in dem Kanal begonnen, wenn er in dem Round-Robin-Schema an der Reihe ist.
  • Die Bits des Synchronisationssteuerbit-Feldes (DSYN[4:0]) spezifizieren das Ereignis, das die DMA-Übertragung für den entsprechenden DMA-Kanal einleiten kann. Das 5-Bit-Feld DSYN[4:0] erlaubt viele Synchronisationsoptionen. Die Megazelle 100 besitzt sechs externe Unterbrechungen, zwei Zeitgeberunterbrechungen und vier Eingangsereignisse für jede der drei Peripherievorrichtungen. Andere Ausführungsformen können verschiedene Ereignissynchronisationsoptionen besitzen. Das DSYN[4:0]-Feld wird beim Rücksetzen auf null gesetzt. Wenn es null ist, ist keine Ereignissynchronisation vorgesehen.
  • 10 veranschaulicht das DMA-Kanalsteuerregister 2 (DMCCR2), das ein Lese-/Schreibregister ist, das die Steuerung für die Auslösung der Unterbrechung für den Kanal vom DMA zur CPU 200 bereitstellt. Eine DMA-Kanalunterbre chung zur CPU kann ausgelöst werden, wenn: ein Übertragungsblock abgeschlossen ist UND/ODER ein Rahmen abgeschlossen ist UND/ODER die 1. Hälfte eines Rahmens abgeschlossen ist UND/ODER wenigstens letzte Rahmen eines Blocks beginnt UND/ODER eine Synchronisation eines abgefallenen Ereignisses aufgetreten ist. Jede Kombination aus diesen fünf verschiedenen Bedingungen kann gewählt werden, um die DMA-Kanalunterbrechung zur CPU auszulösen.
  • Das AUTOINIT-Bit spezifiziert die automatische Initialisierungsbetriebsart, die der DMA nach dem Abschluss einer Blockübertragung selbst automatisch erneut initialisieren kann. Jeder Kanalkontext ist durch eine Menge aktiver Register und eine Menge von Initialisierungs-/Neulade-Registern definiert. Nur die Initialisierungs-/Neulade-Register sind für den Benutzer sichtbar. Die aktiven Register werden nicht in den IO-Speicherraum abgebildet. Beim Beginn einer Blockübertragung wird die Menge der Initialisierungs-/Neulade-Register automatisch in die Menge der aktiven Register kopiert, wobei die Übertragung beginnt. Am Ende eines Blocks werden, wenn Auto-init = 0 gilt, dann die Kanalübertragungen angehalten. Wenn Auto-init = 1 gilt, dann wird die Menge der Initialisierungs-/Neulade-Register des Kanals zur Menge der aktiven Register des Kanals kopiert, wobei der nächste Übertragungsblock mit den durch diese neue Menge definierten Einstellungen begonnen wird.
  • Für den kontinuierlichen Betrieb kann die CPU 200 die Initialisierungs-/Neulade-Register ändern, während ein aktueller Block ausgeführt wird. Ein nächster Block wird mit dem neuen Kontext übertragen, aber ohne den DMA anzuhalten. Für den sich wiederholenden Betrieb modifiziert die CPU 200 die Initialisierungs-/Neulade-Register nicht. Derselbe Kontext wird immer erneut verwendet. Durch Vorgabe wird die Menge der Initialisierungs-/Neulade-Register zur Menge der aktiven Register initialisiert. In der vorliegenden Ausführungsform benötigt ein Neuladen vier Zyklen für ein Neuladen während des kontinuierlichen Betriebs.
  • In 10 wird ein Kanalzustand-Löschbit (CLEAR STATUS) verwendet, um die Kanalzustandsbits (im DMSTAT-Register) zu löschen. DMSTAT ist ein Nur- Lese-Register, wobei es nur durch dieses Bit zurückgesetzt werden kann. CLEAR STATUS kehrt automatisch zu null zurück, sobald DMSTAT gelöscht ist.
  • 11 veranschaulicht das DMA-Kanalzustandsregister (DMSTAT). Das DMSTAT ist ein Leseregister, das den Status in der Auslösung der Unterbrechung für den Kanal vom DMA zur CPU bereitstellt. Das SYNC STATUS-Bit gibt an, dass die Kanalsynchronisation empfangen worden ist.
  • Es sind mehrere Zustandsbits verfügbar, um die CPU über signifikante Ereignisse oder potentielle Probleme im Betrieb des DMA-Kanals zu informieren. Diese Zustände stehen in den 'STAT'-Bitfeldern des DMA-Zustandsregisters. Derartige Ereignisse können verwendet werden, um die Unterbrechung vom DMA zur CPU für den entsprechenden Kanal auszulösen, indem das Unterbrechungsfreigabe-Bitfeld 'IE' im DMCCR2-Register gesetzt wird. Ein Zustandsbit wird nur aktualisiert, wenn sein entsprechendes IE-Bit gesetzt wird. Das logische ODER aller freigegebenen Bedingungen (mit Ausnahme von Zeitablauf) bildet das DMA-Kanalunterbrechungsignal für die CPU. Falls das Zeitablauf-IE-Bit gesetzt ist und ein Zeitablauf/Busfehler auftritt, wird ein Zeitablauf/Busfehler-Signal an die CPU gesendet.
  • Nachdem ein Statusbit gelesen worden ist, muss es dann durch die CPU gelöscht werden. Das Löschen wird ausgeführt, indem 1 in das CLEAR STATUS-Bit des DMCCR2n-Registers geschrieben wird. Die Tabelle 11 besitzt eine Beschreibung jedes verfügbaren Status/jeder verfügbaren Bedingung.
  • Figure 00330001
    Tabelle 11 – Die Zustandsbits
  • 12 veranschaulicht ein DMA-Hauptdatenseitenregister DMMDPn. Der Adressenraum der CPU 200 ist mit 23-Bit-Wörtern adressierbar. Für den Speicherzugriff wird eine Adresse in eine Hauptdatenseite, die die 7 MSB der 23-Bit-Adresse aufweist, und in eine Adresse in der Seite, die die 16 LSB der 23-Bit-Adresse aufweist, aufgeteilt.
  • Das MDP_SRC wird für den Speicherzugriff als die Übertragungsquelle verwendet. Das MDP_DST wird für den Speicherzugriff als das Übertragungsziel verwendet. Dieses Register wird beim Rücksetzen nicht initialisiert. Dieses Re gister kann während einer DMA-Übertragung geschrieben werden. Wenn das Ende des Blocks erreicht wird, falls autoinit gesetzt ist, wird das DMMDPn in sein Schattenregister bewegt.
  • 13 veranschaulicht ein DMA-Quelladressenregister DMSRCn. Das DMSRCn ist ein 16-Bit-Lese/Schreib-Register, das die Quelladresse für die nächste DMA-Übertragung enthält. Dieses Register wird beim Rücksetzen nicht initialisiert. Dieses Register kann während einer DMA-Übertragung geschrieben werden. Wenn das Ende des Blocks erreicht wird, falls autoinit gesetzt ist, wird das DMSRCn in sein Schattenregister bewegt. Falls die Quelle der interne oder externe Speicher ist, wird diese 16-Bit-Adresse mit den 7 Bits vom MDP_SRC verkettet, die im DMMDPn gespeichert sind.
  • 14 veranschaulicht ein DMA-Zieladressenregister DMDSTn. Das DMDSTn ist ein 16-Bit-Lese/Schreib-Register, das die Zieladresse für die nächste DMA-Übertragung enthält. Dieses Register wird beim Rücksetzen nicht initialisiert. Dieses Register kann während einer DMA-Übertragung geschrieben werden. Wenn das Ende des Blocks erreicht wird, falls autoinit gesetzt ist, wird das DMDSTn in sein Schattenregister bewegt. Falls das Ziel der interne oder externe Speicher ist, wird diese 16-Bit-Adresse mit den 7 Bits vom MDP_DST verkettet, die im DMMDPn gespeichert sind.
  • Wenn der Quell- und/oder Zielraum der Speicher ist, sind mehrere Adressenerzeugungsschemata vorhanden: die konstante Adressierung, das spätere Inkrementieren, das einzeln indexierte spätere Inkrementieren (Elementindex) und das mehrfach indexierte spätere Inkrementieren (Elementindex u. Rahmenindex).
  • Die kreisförmige Adressierung ist implizit, wenn für den Kanal die automatische Initialisierungsbetriebsart gewählt ist. Für das einzeln indexierte spätere Inkrementieren ist pro Kanal ein Elementindexregister verfügbar und kann für das indexierte spätere Inkrementieren des aktuellen Kanals verwendet werden. Für das mehrfach indexierte spätere Inkrementieren ist außer dem Elementindexregister ein Rahmenindexregister pro Kanal verfügbar. Dies erlaubt die flexible Sortierung von Mehrfachrahmen-Übertragungen.
  • 15 veranschaulicht ein DMA-Elementzählerstandregister DMECn. Das DMA-Elementzählerstandregister ist ein 16-Bit-Lese/Schreib-Register, das die Anzahl der Elemente pro Rahmen im Kanalübertragungsblock enthält. Dieses 16-Bit-Register erlaubt die Spezifikation des vorzeichenlosen 16-Bit-Zählwertes. Die Anzahl der zu übertragenen Elemente kann zwischen 1 und 65535 festgelegt werden. Dieses Register wird beim Rücksetzen nicht initialisiert. Dieses Register kann während einer DMA-Übertragung geschrieben werden. Wenn das Ende des Blocks erreicht wird, falls autoinit gesetzt ist, wird das DMECn in sein Schattenregister bewegt.
  • 16 veranschaulicht ein DMA-Rahmenzählerstandregister DMFCn. Das DMA-Kanalrahmenzählerstandregister ist ein 16-Bit-Lese/Schreib-Register, das die Gesamtzahl der Rahmen enthält. Der Rahmenzählerstand kann von 1 bis 65535 gesetzt werden. Dieses Register wird beim Rücksetzen nicht initialisiert. Dieses Register kann während einer DMA-Übertragung geschrieben werden. Wenn das Ende des Blocks erreicht wird, falls autoinit gesetzt ist, wird das DMFCn in sein Schattenregister bewegt.
  • 17 veranschaulicht ein DMA-Elementindexregister DMEIDXn. Das DMA-Elementindexadressenregister ist ein 16-Bit-Lese/Schreib-Register. Die Werte des Indexregisters werden als der Elementindex für Aktualisierungen der Quell-/Zieladressen verwendet. Die Werte im DMEIDXn werden als ein vorzeichenbehafteter 16-Bit-Wert betrachtet. Der Indexbereich reicht von –32768 bis 32767. Das DMEIDXn wird beim Rücksetzen nicht initialisiert. Dieses Register kann während einer DMA-Übertragung geschrieben werden. Wenn das Ende des Blocks erreicht wird, falls autoinit gesetzt ist, wird das DMEIDX in sein Schattenregister bewegt.
  • 18 veranschaulicht ein DMA-Elementrahmenindexadressenregister DMFIDXn. Das DMA-Rahmenindexregister ist ein 16-Bit-Lese/Schreib-Register.
  • Die Werte des Rahmenindexregisters werden als der Rahmenindex für Aktualisierungen der Quell-/Zieladressen verwendet. Die Werte im DMFRI0/1 werden als ein vorzeichenbehafteter 16-Bit-Wert betrachtet. Der Indexbereich reicht von –32768 bis 32767. Das DMFIDXn wird beim Rücksetzen nicht initialisiert. Dieses Register kann während einer DMA-Übertragung geschrieben werden. Wenn das Ende des Blocks erreicht wird, falls autoinit gesetzt ist, wird das DMFIDX in sein Schattenregister bewegt.
  • Die Ports
  • In 2 sind die Ports 212(a-d) jeder mit einem spezifischen Speicherbetriebsmittel verbunden. Jeder Port ist maßgeschneidert, um die Wechselwirkungen mit dem Betriebsmittel zu unterstützen, mit dem er verbunden ist. Die folgenden Abschnitte beschreiben die verschiedenen Ports ausführlicher.
  • Der RHEA-Port 212d wickelt das Kommunikationsprotokoll zwischen dem DMA-Controller 210 und der RHEA-Brücke 230 ab. Das Protokoll wird durch eine Zustandsmaschine angesteuert. Diese Zustandsmaschine ist in der Tabelle 12 beschrieben.
  • Figure 00370001
    Tabelle 12 – die endliche Zustandsmaschine für den Rhea-Port
  • Wenn ein Abrechnen (Busfehler/Zeitablauf, even_drop oder Ungültigmachen eines Kanals) auftritt, geht die Zustandsmaschine in den Abbruchzustand, um das req-Signal inaktiv zu machen. Die RHEA-Brücke sendet ihr bus_error-Signal immer mit einem bereit.
  • Der SARAM-Port 212a und der DARAM-Port 212b wickeln das Kommunikationsprotokoll zwischen dem DMA und der SARAM-Umlaufeinrichtung 220 bzw. der DARAM-Umlaufeinrichtung 230 ab. Die Umlaufeinrichtung enthält die Speicherschaltungsanordnung und die Zugriffs/Steuer-Schaltungsanordnung, um auf die Speicherschaltungsanordnung zuzugreifen. Diese Umlaufeinrichtungen besitzen das gleiche Zugriffsprotokoll. Wenn die HPI 214 ein hohes Prioritätsniveau besitzt, besitzen die HPI-Anforderungen Priorität gegenüber den Anforderungen der Verschachtelungseinrichtung 350/351; deshalb werden die Anforderungen der Verschachtelungseinrichtung nur berücksichtigt, falls es keine HPI-Anforderungen mit hoher Priorität ergibt. Das Protokoll für jeden Port wird durch eine Zustandsmaschine angesteuert. Diese Zustandsmaschinen sind in der Tabelle 13 beschrieben.
  • Figure 00390001
  • Figure 00400001
    Tabelle 13 – Die SARAM-, DARAM-Zustandsmaschine
  • Wenn ein Abbrechen (Zeitablauf, event_drop oder Ungültigmachen eines Kanals) auftritt, geht die Zustandsmaschine in den anfänglichen Wartezustand, um das req-Signal inaktiv zu machen. Um die Zeitablauf-Ereignisse zu überwachen, wird jedesmal, wenn eine neue Anforderung gesendet wird, ein Zähler gestartet. Falls der Wert dieses Zählers einen Schwellenwert erreicht, wird ein Zeitablauf signalisiert; die aktuelle Anforderung wird abgebrochen und alle Kanalübertragungen werden angehalten.
  • Der EMIF-Port 212c wickelt das Kommunikationsprotokoll zwischen dem DMA-Controller 210 und der externen Speicherschnittstelle 120 ab. Er empfängt die Anforderungen von der EMIF-Verschachtelungseinrichtung 352. Die Burst-Zugriffe werden im gleichen Schema wie für die Wortzugriffe ausgeführt. Alle Adressen werden ausgegeben, selbst wenn nur die erste benötigt wird. Der einzige Unterschied ist der Wert des Burst-Codes. Das Protokoll wird durch eine Zustandsmaschine angesteuert. Diese Zustandsmaschine ist in der Tabelle 14 beschrieben.
  • Figure 00410001
  • Figure 00420001
    Tabelle 14 – Die endliche Zustandsmaschine des EMIF-Ports
  • Die Zustandsmaschine des EMIF-Ports besitzt 7 Zustände:
  • wait
    Warten auf eine Anforderung,
    req1
    Senden der ersten Anforderung,
    req2
    Senden der zweiten Anforderung,
    wait2
    Warten auf die Bereit-Begrenzung für die erste Anforderung,
    wait1
    Warten auf die Bereit-Begrenzung für die zweite Anforderung,
    abort2
    Abrechen der ersten Anforderung,
    abort1
    Abrechen der zweiten Anforderung. Im abort1-Zustand kann weder bereit noch Abbrechen aktiv sein, weil abort1 nur vom abort2-Zustand erreicht wird, wenn keine Anforderung gesendet wird.
  • In alternativen Ausführungsformen können andere Typen der Speicherbetriebsmittel durch andere Ports aufgenommen werden, die maßgeschneidert sind, um die Protokollanforderungen des zugeordneten Speicherbetriebsmittels zu erfüllen. Vorteilhaft stellt jeder maßgeschneiderte Port den DMA-Kanal-Controllern, wie z. B. 310315, dieselbe Schnittstelle bereit, sodass die Kanal-Controller mit diesen anderen maßgeschneiderten Ports kommunizieren können, ohne modifiziert zu werden.
  • Die DMA-Pipeline
  • Der DMA enthält zwei gleichzeitige Pipelines: eine Adressenpipeline und eine Verschachtelungseinrichtungs-Pipeline. In diesen Pipelines sind einige Stufen für einen Kanal allein, während einige zwischen den Kanälen geteilt werden. Die Verschachtelungseinrichtungs-Pipeline besteht aus zwei Mengen von Stufen: die Lesestufen (Präfix R) und die Schreibstufen (Präfix W). Eine Ein-Wort-Übertragung geht durch alle Stufen: die Lesestufen für die Leseanforderung und die Schreibstufen für die Schreibanforderung.
  • 19 ist ein Ablaufplan, der den Betrieb des DMA-Controllers beschreibt und die verschiedenen Stufen der Pipeline bezeichnet. Die Tabelle 15 beschreibt die Stufen.
  • Figure 00430001
  • Figure 00440001
    Tabelle 15 – Die Stufen der DMA-Pipeline
  • Ein Quell-Datenwort wird in der Stufe R_ACK vom bestimmten Quellspeicher abgerufen. Das Quell-Datenwort wird in der Stufe W_ACK vom ausgewählten Zielspeicher angenommen. Das Quell-Datenwort wird im Kanal-FIFO zwischen diesen zwei Stufen gespeichert.
  • Jede Adressenpipeline besteht aus fünf Stufen für die Leseadresse und fünf Stufen für die Schreibadresse. Diese Anzahl der Adressenstufen ist ausgewählt, damit sie der Anzahl der Stufen in der Verschachtelungseinrichtungs-Pipeline entspricht. Jede Adressenrohrstufe stimmt mit einer Stufe des Verschachtelungseinrichtungs-Rohrs überein. Die Latenzzeit jeder DMA-Controller-Pipeline beträgt unter der Voraussetzung, dass es keine Speicherwartezustände gibt, einen Zyklus; d. h., es wird ein Datenwort in jedem Zyklus übertragen. Die Verzögerung beträgt unter der Voraussetzung, dass es keine Speicherwartezustände gibt, neun Zyklen. Eine Übertragung benötigt neun Zyklen. Während es in der DMA-Pipeline für jede vollständige Übertragung von einer Quelle zu einem Ziel zehn Stufen gibt, sind jedoch nur neun Taktzyklen notwendig, um die Pipeline vollständig zu durchqueren. Die erste Adresse einer Übertragung wird nicht berechnet, sondern direkt unter Umgehung der Adressenstufe A0 in die Adressenstufe A1 geladen.
  • Einige der Pipelinestufen sind für jeden Kanal allein (eine Stufe pro Kanal); die anderen werden zwischen den Kanälen multiplexiert. Die alleinigen Stufen der Verschachtelungseinrichtung sind R_RDY und W_RDY; die alleinigen Adressenstufen sind R_A0, R_A1, R_A2, W_A0, W_A1, W_A2. Die geteilten Stufen der Verschachtelungseinrichtung sind: R_INTER, R_REQ, R_ACK, W_INTER, W_REQ, W_ACK; die geteilten Adressenstufen sind: R_Aout, W_Aout.
  • In 19 zeigt dieser Ablaufplan die Teilung der Pipelinestufen und den Datenfluss für eine DMA-Übertragung 1900 im Kanal 0 vom SARAM-Port 1901 zum RHEA-Port 1902. In der R_RDY-Stufe 1920 werden die active_read- und read_ready-Signale für den Kanal 0 aktiviert. In der W_RDY-Stufe 1922 werden die active_write- und write_read-Signale für den Kanal 0 aktiviert.
  • Der Block 1910, 1910a repräsentiert die Schreibadresseneinheit 0, während der Block 1911 die Leseadresseneinheit 0 repräsentiert. Der Block 1914 repräsentiert die Verschachtelungseinrichtungs-Schaltungsanordnung für den SARAM-Port, während der Block 1915 die Port-Controller-Schaltungsanordnung für den SARAM-Port repräsentiert. Der Block 1916 repräsentiert die Verschachtelungseinrichtungs-Schaltungsanordnung für den RHEA-Port, während der Block 1917 die Port-Controller-Schaltungsanordnung für den RHEA-Port repräsentiert.
  • Die Stufen R_INTER, R_REQ, R_ACK im SARAM-Port verwenden die gleiche Logik wie die Stufen W_INTER, W_REQ, W_ACK des SARAM-Ports, wenn er ein Ziel ist. Diese Stufen befinden sich in der SARAM-Verschachte lungseinrichtung und im SARAM-Port. Die (nicht gezeigten) Multiplexer empfangenen die read_ready-, read_active-, write_ready- und write_active-Signale von jeden Kanal.
  • 20 ist ein Blockschaltplan einer Adressenpipeline des DMA-Controllers des digitalen Systems 10. Dieses Rohr besitzt sowohl für die Lese- als auch die Schreibadressen und für alle Kanäle die gleiche Struktur. Die Stufen A0, A1, A2 und A3 bilden 12-mal im DMA eine Instanz (6 Kanäle, die Lese- und Schreibanforderungen für jeden Kanal). Die Stufe Aout ist in jedem DMA-Port vorhanden.
  • Die Kanaladressenausgabe der Stufe A3 wird an jeden DMA-Port gesendet. Der Multiplexer 2010 empfängt die Lesekanal-Adressenbusse 2011 von allen Kanälen, während der Multiplexer 2012 die Schreibkanal-Adressenbusse 2013 von allen Kanälen empfängt. Diese Multiplexer repräsentieren einen Abschnitt der Multiplexer 330333 in 3. Die Multiplexierung wird entsprechend der in der Stufe REQ der entsprechenden Verschachtelungseinrichtungs-Rohrstufe verarbeiteten Anforderung ausgeführt.
  • 21 ist ein Blockschaltplan einer Verschachtelungseinrichtung/Port-Pipeline des DMA-Controllers des digitalen Systems 10. Der Block 2100 enthält zwei Verschachtelungseinrichtungs-Stufen RDY und INTER. Der Block 2110 enthält die zwei Port-Stufen REQ und ACK. Die Multiplexer 2120a und 2120b empfangen die Signale 2122a–c von den Konfigurationsregistern, den FIFO-Zustandszählern, einer Ereignis-Zustandsmaschine und der HPI und stellen sie der Bereit- und Aktiv-Schaltungsanordnung 2123 bereit, um die Bereit- bzw. Aktiv-Signale von allen Adresseneinheiten zu bilden. Die Bereit- und Aktiv-Signale werden der endlichen Verschachtelungseinrichtungs-Zustandsmaschine 2124 bereitgestellt, die die Anforderung auswählt, die durch den zugeordneten Port als Nächstes verarbeitet wird. Die Verschachtelungseinrichtungs-Anforderungstabellen 2126a und 2126b speichern den anstehenden Operationstyp bzw. Kanal. Eine ausgewählte Anforderung zusammen mit dem Typ der Operation (Lesen, Schreiben) und der ausgewählte Kanal werden jeweils auf den Signalleitungen 2128a–c der REQ-Stufe der Port-Steuerschaltungsanordnung 2110 bereitgestellt. Gleichzeitig wird von der Verschachtelungseinrichtungs-Steuerschaltungsanordnung 2117 ein Anforderungssignal zu dem Multiplexer 2010 oder 2012 gesendet, um die geeignete Kanaladresse in Reaktion auf die Übertragung, deren Betriebsablauf durch die Verschachtelungseinrichtung gesteuert wird, auszuwählen. Die ausgewählte Adresse wird dann von der A_out-Stufe zu dem Speicherbetriebsmittel gesendet, das dem Port zugeordnet ist. Ein Bereitsignal 2130 wird dann durch den zugeordneten Speicher oder die zugeordnete RHEA-Brücke aktiviert, um anzuzeigen, dass ein angefordertes Datenwort gelesen worden ist und verfügbar ist oder geschrieben worden ist.
  • 22 ist ein Ablaufplan, der eine Übertragung von sechs Wörtern vom SARAM-Port zum RHEA-Port veranschaulicht, die für eine typische Übertragung zwischen irgendeinem Paar von Ports im digitalen System 10 repräsentativ ist, wie z. B. in 19 veranschaulicht ist. In dieser Figur bedeutet für den Kanal-FIFO-Schreibzählerbefehl w_com "+" inkrementieren, während "–" dekrementieren bedeutet. Das Signal nw_cnt gibt den nächsten Zustand des Kanal-FIFO-Schreibzählers an. Gleichermaßen bedeutet für den Kanal-FIFO-Lesezählerbefehl r_com "+" inkrementieren, während "–" dekrementieren bedeutet. Das Signal nr_cnt gibt den nächsten Zustand des Kanal-FIFO-Lesezählers an.
  • Figure 00470001
    Tabelle 16 – Die Schreibweise für Fig. 22
  • In 22 ist die Übertragung von sechs Wörtern vom SARAM zu RHEA in einem als a bezeichneten Kanal veranschaulicht.
  • Die Pipeline beginnt zum Zeitpunkt t0 mit dem Laden der anfänglichen Adressen in den r_a1- und w_a2-Registern und des anfänglichen Werts der Wort-, Element- und Rahmenzähler (Stufe r_a0, w_a0). Aus diesen Werten werden die end_element-, end_block- und end_frame-Signale berechnet. Wenn end_block nicht erreicht wird, geht read_ready (r_rdy-Stufe) zu 1 über, was erlaubt, dass die erste Anforderung a0 zum Zeitpunkt t2 verschachtelt wird (r_inter-Stufe) und zum Zeitpunkt t3 ausgegeben wird (r_req-Stufe).
  • Gleichzeitig breiten sich die Schreibadressen in der Schreibadressenpipeline aus. Da sich immer noch keine Daten im FIFO befinden, bleibt write_ready bei 0 (w_rdy-Stufe), wobei keine Anforderungen des Kanals a in der Stufe w_inter verschachtelt werden. Dies erzeugt ein Stehenbleiben der Verschachtelungseinrichtung für die Schreibadressenpipeline, um die Ausbreitung der Schreibadressen anzuhalten.
  • Die Daten werden zum Zeitpunkt t5 aus dem Speicher gelesenen und in den FIFO geschrieben. Sobald zum Zeitpunkt t4 der nächste Zustand des FIFO_read_counter 1 ist, geht zum Zeitpunkt t5 write_ready hoch, wobei zum Zeitpunkt t6 die Verschachtelung der Schreibanforderungen des Kanals a beginnt.
  • Wenn zum Zeitpunkt t4 in der Stufe r_a0 die letzte Leseadresse des Sechs-Wort-Blocks erreicht wird, wird zum Zeitpunkt t5 end_block signalisiert (Stufe r_a0). Dies bewirkt, dass zum Zeitpunkt t7 read_ready tief geht (Stufe r_rdy), wobei das Senden der Leseanforderungen bei t8 abgeschlossen wird.
  • Sobald das letzte zu schreibende Datenwort vom FIFO übertragen worden ist, geht zum Zeitpunkt t11 der FIFO-Lesezähler auf 0. Dies und das durch die w_a0-Stufe signalisierte end_block bewirken, dass zum Zeitpunkt t11 das write_ready-Signal deaktiviert wird. Die letzte verschachtelte Schreibanforderung a6 wird abgebrochen, wobei die Sechs-Wort-Übertragung zum Zeitpunkt t13 abgeschlossen ist.
  • Wenn eine Anforderung in einem Kanal gesendet wird, müssen die FIFO-Zustandszähler dieses Kanals aktualisiert werden. Dies wird durch den Verschachtelungs-Steuerblock 2127 ausgeführt, der den FIFO_write_counter-Inkrementierungsbefehl (read_req_sent, w_com +) und den FIFO_read_counter-Dekrementierungsbefehl (write_req_sent, r_com –) zum richtigen Kanal sendet.
  • Der aktuelle Kanal in der INTER-Stufe wird mit jedem möglichen Kanal verglichen. Ein Aktualisierungsbefehl wird nur in dem Kanal gesendet, der dem aktuellen Kanal entspricht. Falls die Operation ein Lesevorgang ist und falls es eine Verschachtelungseinrichtungs-Anforderung in der aktuellen Stufe (irq = 1) gibt, wird das richtige read_req_sent aktiviert. Falls die Operation ein Schreibvorgang ist und falls es eine Verschachtelungseinrichtungs-Anforderung in der aktuellen Stufe (irq = 1) gibt, wird das richtige write_req_sent aktiviert.
  • Ein Stehenbleiben der Verschachtelungseinrichtung wird an alle Adressen-, Ende-der-Übertragung- und Ende-des-Elements-Pipelines in allen Kanälen gesendet, die gegenwärtig in der INTER-Stufe nicht aktiv sind. Ein Signal write_inter_stall wird an den Schreibabschnitt dieser Rohre gesendet, während ein Signal read_inter_stall an den Leseabschnitt gesendet wird. Jedes Rohr empfängt diese Befehle gleichzeitig von den vier Ports. Ein Rohr bleibt nur stehen, falls die vier Befehle, die es empfängt, alle aktiv sind.
  • Wenn in einem Kanal eine Anforderung quittiert wird, müssen die FIFO-Zustandszähler dieses Kanals aktualisiert werden. Dies wird durch den Quittungssteuerblock 2132 ausgeführt.
  • 23 ist eine schematische Darstellung einer integrierten Schaltung 40, die den Prozessor 100 enthält. Wie gezeigt ist, enthält die integrierte Schaltung mehrere Kontakte für den Oberflächeneinbau. Die integrierte Schaltung könnte jedoch andere Konfigurationen enthalten, z. B. mehrere Anschlussstifte auf einer unteren Oberfläche der Schaltung für den Einbau in einen steckkraftfreien Sockel oder in der Tat irgendeine andere geeignete Konfiguration.
  • 24 veranschaulicht eine beispielhafte Implementierung eines Beispiels einer derartigen integrierten Schaltung in einer Mobiltelekommunikationsvorrichtung, wie z. B. einem Mobiltelephon, mit einer integrierten Tastatur 12 und einer integrierten Anzeige 14. Wie in 24 gezeigt ist, ist das in der integrierten Schaltung 40 enthaltene digitale System 10 mit der Tastatur 12, wo es geeignet ist über einen (nicht gezeigten) Tastaturadapter, mit der Anzeige 14, wo es geeignet ist über einen (nicht gezeigten) Anzeigeadapter, und mit der Hochfrequenz-Schaltungsanordnung (HF-Schaltungsanordnung) 16 verbunden. Die HF-Schaltungsanordnung 16 ist mit einer Antenne 18 verbunden.
  • In 4 können in einer alternativen Ausführungsform die Ports maßgeschneidert sein, um ein durch einen anderen Typ des Betriebsmittels benötigtes Zugriffsprotokoll bereitzustellen. Vorteilhaft kann die Kanal- und Ablaufsteuerungs-Schaltungsanordnung mit verschiedenen Versionen der maßgeschneiderten Ports in Wechselwirkung treten, ohne modifiziert werden, weil die Kanalschnittstelle an der Port-Steuerschaltung für alle Ports die gleiche ist. Eine Entwicklungsbibliothek kann mit einer Entwicklungszelle vorgesehen sein, die für den DMA-Kanal-Controller 400a repräsentativ ist, die parametrisiert ist, sodass die Anzahl der Kanäle, die in einer gegebenen ASIC-Entwicklung eine Instanz bilden soll, spezifiziert werden kann. Die Entwicklungsbibliothek kann mit Entwicklungszellen für verschiedene Port-Controller versehen sein, wovon jeder eine Standard-Kanalschnittstelle bereitstellen, die mit der Schnittstelle 470 kompatibel ist, und die verschiedene Speicherschnittstellen besitzen. Andere Port-Controller-Zellen können maßgeschneidert werden, damit sie den Protokollanforderungen eines anderen Typs des Speicherbetriebsmittels entsprechen. Die DMA-Kanal-Controller-Zelle muss nicht modifiziert werden, um sie an die maßgeschneiderten Port-Controller anzuschließen, weil die Kanalschnittstellen alle kompatibel sind.
  • Die Fertigung des digitalen Systems 10 umfasst mehrere Schritte des Implantierens verschiedener Mengen von Störstellen in ein Halbleitersubstrat und des Diffundierens der Störstellen in ausgewählte Tiefen innerhalb des Substrats, um Transistorvorrichtungen auszubilden. Es werden Masken ausgebildet, um die An ordnung der Störstellen zu steuern. Es werden mehrere Schichten leitenden Materials und isolierenden Materials abgeschieden und geätzt, um die verschiedenen Vorrichtungen zu verbinden. Diese Schritte werden in einer Reinraumumgebung ausgeführt.
  • Ein signifikanter Teil der Kosten, um die Datenverarbeitungsvorrichtung zu erzeugen, umfasst das Prüfen. Die einzelnen Vorrichtungen werden in einen Betriebszustand vorgespannt und mit einer Sonde auf die elementare betriebsfähige Funktionalität untersucht, während sie in einer Wafer-Form vorliegen. Der Wafer wird dann in einzelne Chips getrennt, die als bloße Chips oder eingekapselt verkauft werden können. Nach der Einkapselung werden die fertiggestellten Teile in einen Betriebszustand vorgespannt und auf betriebsfähige Funktionalität geprüft.
  • Das digitale System 10 enthält Hardware-Erweiterungen für fortschrittliche Fehlersuche-Merkmale. Diese unterstützen die Entwicklung eines Anwendungssystems. Weil diese Fähigkeiten Teil des Kerns der CPU 200 selbst sind, sind sie unter Verwendung nur der JTAG-Schnittstelle mit den Erweiterungen einer erweiterten Betriebsart verfügbar. Sie stellen einen einfachen, preiswerten und geschwindigkeitsunabhängigen Zugriff auf den Kern für die hochentwickelte Fehlersuche und die wirtschaftliche Systementwicklung bereit, ohne die teuere Verdrahtung und den Zugriff auf die Prozessor-Anschlussstifte, die durch herkömmliche Emulatorsysteme erforderlich sind, und das Eindringen in Systembetriebsmittel zu erfordern.
  • Folglich wird ein digitales System mit einem Mehrkanal-DMA-Controller geschaffen, um Daten zwischen verschiedenen Betriebsmitteln zu übertragen. Für die Leseadressen, Schreibadressen und Datenausgaben von jedem Kanal zu jedem Port sind parallele Busse vom Kanal zum Port vorgesehen. Für die Dateneingaben von jedem Port in jeden Kanal sind parallele Busse vom Port zum Kanal vorgesehen. Die Ablaufsteuerschaltungsanordnung enthält die Anforderungszuordnungseinrichtungs-Schaltungsanordnung, die Verschachtelungseinrichtungs-Schaltungsanordnung und die Multiplexer-Schaltungsanordnung und wählt in jedem Taktzyklus einen der Busse vom Kanal zum Port aus, der mit einem zugeordneten Port-Controller zu verbinden ist, um eine Adresse für eine in jedem Taktzyklus ausgeführte Transaktion bereitzustellen. Die Ablaufsteuereinrichtungen arbeiten parallel, wobei die Quell/Ziel-Kanaladressenwörter über die parallelen Busse vom Kanal zum Port zu jeder Ablaufsteuereinrichtung parallel übertragen werden. Die Eingangs/Ausgangs-Datenwörter werden außerdem zu/von jedem Port parallel übertragen. Jeder Port ist maßgeschneidert, um ein durch sein zugeordnetes Betriebsmittel benötigtes Zugriffsprotokoll bereitzustellen.
  • Die Leistung wird durch die Bereitstellung mehrerer parallele Busse optimiert, sodass alle Ports im selben Taktzyklus Daten von einem zugeordneten Speicherbetriebsmittel lesen oder in es schreiben können. Eine neue Übertragungsadresse, die entweder eine Leseadresse oder eine Schreibadresse sein kann, kann in jedem Taktzyklus zu jedem Port gesendet werden, sodass alle Ports gesonderte Ströme der Daten parallel übertragen können.
  • Die Ports können in verschiedenen Ausführungsformen maßgeschneidert sein, um ein durch einen anderen Typ des Betriebsmittels benötigtes Zugriffsprotokoll bereitzustellen. Die Kanal- und Ablaufsteuerungs-Schaltungsanordnung innerhalb eines Unterabschnitts des DMA-Controllers kann mit verschiedenen Versionen der maßgeschneiderten Ports in Wechselwirkung treten, ohne modifiziert zu werden.
  • Die Begriffe "angelegt", "verbunden" und "Verbindung" bedeuten, wie sie hierin verwendet werden, elektrisch verbunden, einschließlich des Falls, in dem sich zusätzliche Elemente im elektrischen Verbindungsweg befinden können. "Zugeordnet" bedeutet eine Steuerbeziehung, wie z. B. ein Speicherbetriebsmittel, das durch einen zugeordneten Port gesteuert wird.
  • Während die Erfindung unter Bezugnahme auf veranschaulichende Ausführungsformen beschrieben worden ist, ist nicht beabsichtigt, dass diese Beschreibung in einem einschränkenden Sinn ausgelegt wird.

Claims (9)

  1. Digitales System mit einem Mehrkanal-Direktspeicherzugriff-Controller (Mehrkanal-DMA-Controller), wobei der DMA-Controller mehrere Kanalschaltungen (310, 311, 312, 314, 315) umfasst, wovon jede wenigstens einen Kanaladressen-Ausgangsknoten (rau0, wau0, rau1, wau1, rau2, wau2, rau3, wau3, rau4, wau4, rau5, wau5), um eine Kanaladresse bereitzustellen, und wenigstens einen Anforderungsausgang besitzt, dadurch gekennzeichnet, dass das digitale System mehrere Port-Schaltungen (212a, 212b, 212c, 212d) umfasst, wovon jede mehrere Kanaladressen-Eingangsknoten (330, 331, 332, 333) besitzt, die mit einem entsprechenden Kanaladressen-Ausgangsknoten der mehreren Kanalschaltungen verbunden sind, wobei jede Port-Schaltung der mehreren Port-Schaltungen einen Speicheradressen-Ausgangsknoten (A) besitzt, um für ein entsprechendes zugeordnetes Speicherbetriebsmittel (120, 220, 222, 230) eine Speicheradresse bereitzustellen, die von den mehreren Adresseneingangsknoten ausgewählt ist, wobei jede Port-Schaltung ferner eine Ablaufsteuerschaltung (420, 421) umfasst, die mit den Anforderungsausgängen der mehreren Kanalschaltungen verbunden ist, wobei die Ablaufsteuerschaltung so betreibbar ist, dass sie die nächste Anforderung auswählt, die durch den Port bedient wird, derart, dass die mehreren Port-Schaltungen so betreibbar sind, dass sie gleichzeitig auf die entsprechenden zugeordneten Speicherbetriebsmittel zugreifen; und wobei jede Port-Schaltung ferner eine Port-Steuerschaltung umfasst, die einen Kanalschnittstellenknoten (460, 461), der mit der entsprechenden Ablaufsteuerschaltung verbunden ist, um eine ausgewählte Kanaladresse zu empfangen, und einen Speicherschnittstellenknoten, um die Speicheradresse und ein Protokoll für den Zugriff auf die entsprechende zugeordnete Speicherquelle bereitzustellen, besitzt, derart, dass alle der mehreren Port-Steuerschaltungen gleiche Kanalschnittstellenknoten besitzen.
  2. Digitales System nach Anspruch 1, bei dem die Ablaufsteuerschaltung mehrere Ablaufsteuerschaltungen umfasst, so dass jeder Port-Schaltung eine gesonderte Ablaufsteuerschaltung zugeordnet ist.
  3. Digitales System nach Anspruch 1, bei dem jede Kanalschaltung einen FIFO-Puffer (600) umfasst und bei dem wenigstens eine der Port-Schaltungen so betreibbar ist, dass sie eine Burst-Übertragung von Daten zwischen dem FIFO-Puffer einer ausgewählten Kanalschaltung und dem Speicherbetriebsmittel, das der wenigstens einen Port-Schaltung zugeordnet ist, ausführt.
  4. Digitales System nach Anspruch 1, bei dem jeder Kanal ferner eine Adressenschaltungsanordnung (20) umfasst, die mit dem Kanaladressen-Ausgangsknoten verbunden ist, wobei jede Adressenschaltung so betreibbar ist, dass sie eine mehrfach indexierte Adressenberechnung ausführt.
  5. Digitales System nach Anspruch 1, bei dem jede Kanalschaltung ferner eine Leseadressenschaltung (630), die einen ersten Kanaladressen-Ausgangsknoten besitzt, und eine Schreibkanal-Adressenschaltung (632), die einen gesonderten zweiten Kanaladressen-Ausgangsknoten besitzt, umfasst.
  6. Digitales System nach Anspruch 1, bei dem ein gesonderter Bus (RA, DI, 4) vorhanden ist, der zwischen jeden Kanaladressen-Ausgangsknoten und die entsprechenden Kanaladressen-Eingangsknoten der mehreren Port-Schaltungen geschaltet ist.
  7. Digitales System nach Anspruch 1, bei dem jede Port-Steuerschaltung so betreibbar ist, dass sie in Reaktion auf das zugeordnete Speicherbetriebsmittel ein Schnittstellenprotokoll bereitstellt, derart, dass eine erste Port-Steuerschaltung ein erstes Schnittstellenprotokoll (472) bereitstellt und eine zweite Port-Steuerschaltung ein zweites Schnittstellenprotokoll (473) bereitstellt, derart, dass das erste Schnittstellenprotokoll von dem zweiten Schnittstellenprotokoll verschieden ist.
  8. Digitales System nach Anspruch 1, das ein Zellentelephon ist und ferner umfasst: einen Mikroprozessor, der mit dem Mehrkanal-DMA-Controller steuerbar verbunden ist; eine integrierte Tastatur (12), die mit dem Mikroprozessor über einen Tastaturadapter verbunden ist; eine Anzeige (14), die mit dem Mikroprozessor über einen Anzeigeadapter verbunden ist; eine Hochfrequenz-Schaltungsanordnung (HF-Schaltungsanordnung) (16), die mit dem Mikroprozessor verbunden ist; und eine Antenne (18), die mit der HF-Schaltungsanordnung verbunden ist.
  9. Verfahren zum Betreiben eines digitalen Systems nach Anspruch 1, das einen Mikroprozessor umfasst, wobei der Mikroprozessor mit einer Mehrkanal-Direktspeicherzugriff-Schaltung verbunden ist, die mehrere Kanalschaltungen und mehrere Port-Schaltungen besitzt, wovon jede mit einem Speicherbetriebsmittel verbunden ist, um Datenwörter zu übertragen, wobei das Verfahren die folgenden Schritte umfasst: gleichzeitiges Erzeugen mehrerer anstehender Übertragungsanforderungen mit einer entsprechenden Mehrzahl von Übertragungsadressen in den Kanalschaltungen; Bereitstellen der mehreren anstehenden Übertragungsanforderungen und der mehreren Übertragungsadressen für jede der mehreren Port-Schaltungen; individuelles Steuern des Betriebsablaufs jedes Ports durch Auswählen einer Übertragungsanforderung und eines Kanals aus den anstehenden Übertragungsanforderungen; und Ausführen einer Datenübertragung zwischen jedem Port und dem ausgewählten Kanal, derart, dass alle der mehreren Ports ein entsprechendes angefordertes Datenwort im selben Taktzyklus übertragen.
DE69924475T 1999-06-09 1999-06-09 Multikanal-DMA mit Datenverkehrplanung auf die Ausgänge Expired - Lifetime DE69924475T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP99401389A EP1059589B1 (de) 1999-06-09 1999-06-09 Multikanal-DMA mit Datenverkehrplanung auf die Ausgänge

Publications (2)

Publication Number Publication Date
DE69924475D1 DE69924475D1 (de) 2005-05-04
DE69924475T2 true DE69924475T2 (de) 2006-02-16

Family

ID=8242004

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69924475T Expired - Lifetime DE69924475T2 (de) 1999-06-09 1999-06-09 Multikanal-DMA mit Datenverkehrplanung auf die Ausgänge

Country Status (3)

Country Link
US (1) US6738881B1 (de)
EP (1) EP1059589B1 (de)
DE (1) DE69924475T2 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2372115A (en) * 2001-02-08 2002-08-14 Mitel Semiconductor Ltd Direct memory access controller
US20020163930A1 (en) * 2001-02-28 2002-11-07 Phillip Kreider Methods and systems for interleaving data from multi-rate channels into a single interface
JP2003029932A (ja) * 2001-07-18 2003-01-31 Hitachi Ltd ディスク制御装置
JP2003087270A (ja) * 2001-09-11 2003-03-20 Fujitsu Ltd マルチチャネル管理装置、マルチチャネル対応端末、マルチチャネル管理プログラム、マルチチャネル混信管理プログラムおよびマルチチャネル設定装置
JP2003150395A (ja) * 2001-11-15 2003-05-23 Nec Corp プロセッサとそのプログラム転送方法
US7269709B2 (en) * 2002-05-15 2007-09-11 Broadcom Corporation Memory controller configurable to allow bandwidth/latency tradeoff
KR100532416B1 (ko) * 2003-01-18 2005-11-30 삼성전자주식회사 다중 소스의 다중 채널로의 할당 방법 및 시스템
US7243178B2 (en) * 2003-05-16 2007-07-10 Intel Corporation Enable/disable claiming of a DMA request interrupt
US7836222B2 (en) * 2003-06-26 2010-11-16 International Business Machines Corporation System and method for tracking messages between a processing unit and an external device
US7200689B2 (en) * 2003-07-31 2007-04-03 International Business Machines Corporation Cacheable DMA
US7873797B2 (en) 2003-12-09 2011-01-18 Thomson Licensing Memory controller
US7657667B2 (en) * 2004-03-25 2010-02-02 International Business Machines Corporation Method to provide cache management commands for a DMA controller
US7287111B2 (en) * 2004-09-23 2007-10-23 International Business Machines Corporation Method and system for creating and dynamically selecting an arbiter design in a data processing system
EP1899825B1 (de) * 2005-06-30 2009-07-22 Freescale Semiconductor, Inc. Einrichtung und verfahren zur steuerung mehrerer dma-tasks
CN101218570B (zh) * 2005-06-30 2010-05-26 飞思卡尔半导体公司 在直接存储器存取任务请求之间进行仲裁的装置和方法
DE602005027003D1 (de) 2005-06-30 2011-04-28 Freescale Semiconductor Inc Einrichtung und verfahren zur steuerung einer ausführung einer dma-task
EP1899827B1 (de) * 2005-06-30 2010-09-08 Freescale Semiconductor, Inc. Einrichtung und verfahren zum ausführen einer dma-task
US7716387B2 (en) * 2005-07-14 2010-05-11 Canon Kabushiki Kaisha Memory control apparatus and method
GB2433333B (en) * 2005-12-13 2011-07-13 Advanced Risc Mach Ltd Distributed direct memory access provision within a data processing system
US20070162643A1 (en) * 2005-12-19 2007-07-12 Ivo Tousek Fixed offset scatter/gather dma controller and method thereof
WO2007083197A1 (en) 2006-01-18 2007-07-26 Freescale Semiconductor Inc. Device having data sharing capabilities and a method for sharing data
FR2898455A1 (fr) * 2006-03-13 2007-09-14 Thomson Licensing Sas Procede et dispositif de transmission de paquets de donnees
GB2442501B (en) * 2006-10-05 2011-04-13 Advanced Risc Mach Ltd Apparatus and method for data processing having an on-chip or off-chip interconnect between two or more devices
US9141572B2 (en) * 2006-12-15 2015-09-22 Microchip Technology Incorporated Direct memory access controller
US8117475B2 (en) * 2006-12-15 2012-02-14 Microchip Technology Incorporated Direct memory access controller
US20080240324A1 (en) * 2007-03-27 2008-10-02 Microsoft Corporation Independent Dispatch of Multiple Streaming Queues Via Reserved Time Slots
US7917671B2 (en) * 2007-12-18 2011-03-29 Nvidia Corporation Scalable port controller architecture supporting data streams of different speeds
US8571834B2 (en) * 2010-01-08 2013-10-29 International Business Machines Corporation Opcode counting for performance measurement
US8314807B2 (en) 2010-09-16 2012-11-20 Apple Inc. Memory controller with QoS-aware scheduling
US8631213B2 (en) 2010-09-16 2014-01-14 Apple Inc. Dynamic QoS upgrading
KR101706201B1 (ko) * 2010-12-15 2017-02-15 한국전자통신연구원 다이렉트 메모리 액세스 컨트롤러 및 그것의 동작 방법
US9003369B2 (en) 2011-08-31 2015-04-07 Nvidia Corporation HDMI-muxed debug port methods and apparatuses
US8943238B2 (en) * 2012-05-18 2015-01-27 Atmel Corporation Operations using direct memory access
US9053058B2 (en) 2012-12-20 2015-06-09 Apple Inc. QoS inband upgrade
US9229896B2 (en) 2012-12-21 2016-01-05 Apple Inc. Systems and methods for maintaining an order of read and write transactions in a computing system
US10025748B2 (en) * 2013-09-27 2018-07-17 Intel Corporation Lane division multiplexing of an I/O link
US10277663B1 (en) 2016-06-24 2019-04-30 Amazon Technologies, Inc. Management of asynchronous media file transmissions
US10728291B1 (en) * 2016-06-29 2020-07-28 Amazon Technologies, Inc. Persistent duplex connections and communication protocol for content distribution
US10783151B1 (en) 2016-06-29 2020-09-22 Amazon Technologies, Inc. Popularity-based content feed management system
TWI730454B (zh) * 2019-07-10 2021-06-11 慧榮科技股份有限公司 主機輸出入命令的執行裝置及方法及電腦程式產品
CN113114224B (zh) * 2021-05-10 2022-10-18 深圳市麒博精工科技有限公司 基于时钟计时器驯服锁频环系统
CN113687625B (zh) * 2021-10-26 2022-04-22 菲尼克斯(南京)智能制造技术工程有限公司 一种模拟量通道类型可配置的电路模块
CN116897581A (zh) * 2022-01-29 2023-10-17 华为技术有限公司 计算任务调度装置、计算装置、计算任务调度方法和计算方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5182800A (en) * 1990-11-16 1993-01-26 International Business Machines Corporation Direct memory access controller with adaptive pipelining and bus control features
US5546547A (en) * 1994-01-28 1996-08-13 Apple Computer, Inc. Memory bus arbiter for a computer system having a dsp co-processor
US5528584A (en) * 1994-10-27 1996-06-18 Hewlett-Packard Company High performance path allocation system and method with fairness insurance mechanism for a fiber optic switch
JPH08278916A (ja) * 1994-11-30 1996-10-22 Hitachi Ltd マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路
US6185222B1 (en) * 1995-09-28 2001-02-06 Cisco Technology, Inc. Asymmetric switch architecture for use in a network switch node
US5890013A (en) * 1996-09-30 1999-03-30 Intel Corporation Paged memory architecture for a single chip multi-processor with physical memory pages that are swapped without latency
US6308248B1 (en) * 1996-12-31 2001-10-23 Compaq Computer Corporation Method and system for allocating memory space using mapping controller, page table and frame numbers
US6141376A (en) * 1997-04-01 2000-10-31 Lsi Logic Corporation Single chip communication device that implements multiple simultaneous communication channels
JPH113310A (ja) * 1997-06-12 1999-01-06 Kofu Nippon Denki Kk ダイレクトメモリアクセスリクエスト制御装置
CN1304520A (zh) * 1997-11-17 2001-07-18 西加特技术有限责任公司 用于环路初始化和响应的专用帧缓存器及其方法

Also Published As

Publication number Publication date
DE69924475D1 (de) 2005-05-04
EP1059589B1 (de) 2005-03-30
US6738881B1 (en) 2004-05-18
EP1059589A1 (de) 2000-12-13

Similar Documents

Publication Publication Date Title
DE69924475T2 (de) Multikanal-DMA mit Datenverkehrplanung auf die Ausgänge
DE60008139T2 (de) Cachespeicheranordnung für einen digitalen signalprozessor
DE3751616T2 (de) Parallel-Grossrechner.
DE60006842T2 (de) Multiprozessor-Node-Controller-Schaltung und Verfahren
DE69932481T2 (de) Kellerzeigerverwaltung
DE60037065T2 (de) Übertragungsteuerung mit Naben- und Torachitektur
EP1059587B1 (de) Host-Zugriff zu gemeinschaftlichem Speicher mit Hochprioritätsbetriebsart
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE60207177T2 (de) System, welches zwei oder mehr Paketschnittstellen, einen Schalter, einen gemeinsamen Paket-DMA (Direct Memory Access)-Schaltkreis sowie einen L2 (Level 2) Cache aufweist
DE68924934T2 (de) Parallelsynchronisationstechnik.
EP1941674B1 (de) Teilnehmer und kommunikationscontroller eines kommunikationssystems und verfahren zur realisierung einer gateway-funktionalität in einem teilnehmer eines kommunikationssystems
DE2230830C2 (de) Datenverarbeitungsanlage
US6687796B1 (en) Multi-channel DMA with request scheduling
DE60207210T2 (de) System mit Schnittstellen, einem Schalter und einer Speicherbrücke mit cc-numa (cache-coherent non-uniform memory access)
DE69334165T2 (de) Netzwerkanpassungseinrichtung mit hauptrechnerunterbrechung und indikationsverwaltung
CH634671A5 (de) Kanalspeicher-adapter.
CH616013A5 (de)
DE68928040T2 (de) Pufferspeichersubsystem für Peripheriesteuerungen und Verfahren
CN109154934A (zh) 用于暂存器使能的多核处理器的行程长度编码感知直接存储器访问过滤引擎
DE102013113262B4 (de) Auslöser-Leitwegeinheit
WO2007039634A2 (de) Teilnehmerschnittstelle zwischen einem mikrocontroller und einem flexray-kommunikationsbaustein, flexray-teilnehmer und verfahren zur übertragung von botschaften über eine solche schnittstelle
DE69919992T2 (de) Verteilter Speicher mit programmierbarer Grösse
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
DE2725522A1 (de) Datenverarbeitungsvorrichtung
DE68919018T2 (de) Zeitgeberkanal mit Übereinstimmungserkennungsmerkmalen.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition