DE60217884T2 - Verfahren und apparat für verteilten direktspeicherzugriff in einem system auf einem chip - Google Patents

Verfahren und apparat für verteilten direktspeicherzugriff in einem system auf einem chip Download PDF

Info

Publication number
DE60217884T2
DE60217884T2 DE60217884T DE60217884T DE60217884T2 DE 60217884 T2 DE60217884 T2 DE 60217884T2 DE 60217884 T DE60217884 T DE 60217884T DE 60217884 T DE60217884 T DE 60217884T DE 60217884 T2 DE60217884 T2 DE 60217884T2
Authority
DE
Germany
Prior art keywords
data
dma
access
bus
memory
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
DE60217884T
Other languages
English (en)
Other versions
DE60217884D1 (de
Inventor
Kumar Palo Alto GANAPATHY
Ruban Pleasanton KANAPATHIPPILLAI
Saurin Sunnyvale SHAH
George Sunnyvale MOUSSA
F. Earle Union City PHILHOWER
Ruchir Mountain View SHAH
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 Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE60217884D1 publication Critical patent/DE60217884D1/de
Application granted granted Critical
Publication of DE60217884T2 publication Critical patent/DE60217884T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese nicht vorläufige US-Patentanmeldung beansprucht den Nutzen der vorläufigen US-Patentanmeldung Nr. 60/231,421 mit der Bezeichnung „METHOD AND APPARATUS FOR DISTRIBUTED DIRECT MEMORY ACCESS FOR SYSTEMS ON CHIP", die am 8. September 2000 von Ganapathy et al. eingereicht wurde, und die beide auf Intel Corporation übertragen worden sind
  • GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft im allgemeinen direkte Speicherzugriffssteuerungen. Insbesondere betrifft die Erfindung einen direkten Speicherzugriff für ein System auf einem Chip.
  • ALLGEMEINER STAND DER TECHNIK
  • Innerhalb eines Computersystems gibt es im allgemeinen drei Verfahren zum Datentransfer zwischen einem Hauptspeicher oder den Registern einer zentralen Verarbeitungseinheit (CPU) und Eingabe-/Ausgabe (I/O)-Vorrichtungen über einen Systembus. Diese drei Verfahren sind die programmierte I/O, die unterbrochen angetriebene I/O und der direkte Speicherzugriff (DMA). Bei der programmierten I/O und der unterbrochen angetriebenen I/O ist die CPU für den Erhalt von Daten aus dem Hauptspeicher zum Transfer zu den I/O-Vorrichtungen und für den Erhalt von Daten aus den I/O-Vorrichtungen zum Transfer zu dem Hauptspeicher über den Systembus verantwortlich. Folglich erfordern die programmierte I/O und die unterbrochen angetriebene I/O die direkte Einbeziehung der CPU, welche sie einspannt und den Datentransfer derart verwaltet, daß sie ansonsten keine anderen wichtigeren Funktionen ausführen können.
  • Der direkte Speicherzugriff (DMA) wurde eingeführt und erforderte eine zentralisierte DMA-Steuerung, um die CPU-Mitwirkung bei dem Datentransfer abzuschwächen. Die zentralisierte DMA-Steuerung ist gut bekannt. Die zentralisierte DMA-Steuerung übernahm im wesentlichen die Rolle der Übertragung von Daten über den Systembus zwischen dem Hauptspeicher und I/O-Vorrichtungen. Bei DMA-Zugriffen wurde die CPU-Mitwirkung auf das anfängliche Aufbauen des DMA-Transfers und die Reinigung bei Vollendung des DMA-Transfers reduziert. Während der tatsächliche DMA-Datentransfer durch die DMA-Steuerung gesteuert wurde, konnte die CPU andere Berechnungen oder Funktionen ausführen. Folglich war der DMA-Datentransfer effizienter als die Verfahren der programmierten I/O oder der unterbrochen angetriebenen I/O. Um Kollisionen auf dem Systembus zu vermeiden, wurde die DMA-Steuerung in eine zentralisierte DMA-Steuerung zentralisiert. Die zentralisierte DMA-Steuerung vermittelte zwischen dem Systembus und den angeschlossenen I/O-Vorrichtungen und gestattete nur jeweils einer gleichzeitig, Daten zwischen ihr und dem Hauptspeicher zu übertragen. Wenn darüber hinaus eine Vielzahl von I/O-Vorrichtungen gewünscht wurde, um einen DMA-Zugriff gleichzeitig auszuführen, mußte die zentralisierte DMA-Steuerung ein bestimmtes Priorisierungsverfahren ausführen. Folglich kann die Steuerlogik der zentralisierten DMA-Steuerung recht kompliziert sein, was zu einer recht großen Blockgröße der Schaltung einer zentralisierten DMA-Steuerung führen kann.
  • Verbesserte Halbleiterherstellungstechniken waren das Verkleinern der Merkmalsgrößen in integrierten Schaltungen wie der Transistorkanallängen. Die kleineren Transistoren ermöglichten den Bau von komplizierteren integrierten Schaltungschips, so daß funktionelle Systeme nun innerhalb eines einzigen integrierten Schaltungschips gebildet werden können und zufriedenstellende Leistungen hervorbringen. Diese funktionellen Systeme, die im wesentlichen vollständige Systeme sind, werden häufig als ein System auf einem Chip (SOC) bezeichnet. In einem SOC kann es viele funktionelle Blöcke geben, die den Transfer von Daten zu oder aus einem Speicher erfordern. Außerdem ist es bei der Konstruktion eines SOCs oft wünschenswert, es flexibel zu machen, so daß die Anzahl funktioneller Blöcke erweitert werden kann, um mehr Daten zu verwalten und/oder andere Typen funktioneller Blöcke hinzuzufügen. Mit der Zunahme der Anzahl funktioneller Blöcke nehmen die potentiellen Vermittlungsprobleme in einem SOC zu. Ein Nachteil der Benutzung einer zentralisierten DMA-Steuerung ist in diesem Fall, daß die Steuerlogik möglicherweise neugestaltet werden muß, um die Erweiterung bereitzustellen.
  • GB 2 195 038 A offenbart ein Mehrprozessorsystem mit einer Vielzahl von Computermodulen, die mit einem gemeinsamen Systembus verbunden sind. Jedes Computermodul umfaßt eine DMA-Steuerung, eine First-In-First-Out-Einheit und einen gemeinsamen Speicher, um auf den Systembus zuzugreifen. Die First-In-First-Out-Einheit und der gemeinsame Speicher sind mit dem Systembus durch Schnittstellenlogikeinheiten verbunden, die eine Vermittlungslogik umfassen.
  • Der Gegenstand der vorliegenden Erfindung wird durch ein System nach Anspruch 1 und ein Verfahren nach Anspruch 5 definiert.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm eines Systems auf einem Chip der vorliegenden Erfindung.
  • 2 ist ein detailliertes Blockdiagramm eines Sprachübermittlungspaket (VOP)-Systems auf einem Chip der vorliegenden Erfindung.
  • 3 ist ein Blockdiagramm eines Beispiels eines Kernprozessors, der eine direkte Speicherzugriffssteuerung (DMA) des Kerns aufweist, die in 2 dargestellt ist.
  • 4 ist ein beispielhaftes Speicherabbildungsdiagramm des globalen Pufferspeichers, der DMA-Daten aufweist, die DMA-Anfangs- und DMA-Endadreßstellen und eine DMA-Deskriptortabelle aufweisen, welche die DMA-Daten beschreibt, die in dem globalen Pufferspeicher gespeichert sind.
  • 5 ist ein Blockdiagramm einer seriellen DMA-Steuerung aus 2.
  • 6A ist ein beispielhafter serieller Datenstrom von Rahmen von Daten, die durch den seriellen Mehrkanalanschluß aus 2 gesendet oder empfangen werden.
  • 6B ist eine beispielhafte Neuabbildung von Rahmen von Daten für den seriellen Mehrkanalanschluß, die von dem TDM-Neuabbildungsspeicher aus 5 ausgeführt wird.
  • 7 ist ein Blockdiagramm einer DMA-Kernsteuerung aus 2.
  • 8 ist ein Blockdiagramm einer DMA-Hoststeuerung aus 2.
  • Ähnliche Bezugzeichen und Bezeichnungen in den Zeichnungen zeigen ähnliche Elemente an, welche eine ähnliche Funktionalität bereitstellen. Ein Buchstabe nach einem Bezugszeichen steht für ein Beispiel eines Elements, das das Bezugszeichen aufweist.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • In der folgenden ausführlichen Beschreibung der vorliegenden Erfindung werden zahlreiche spezifische Details dargestellt, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Für den Fachmann wird es jedoch offensichtlich sein, daß die Erfindung ohne diese spezifischen Details in die Praxis umgesetzt werden kann. An anderen Stellen sind gut bekannte Verfahren, Vorgehensweisen, Bestandteile und Schaltungen nicht im Detail beschrieben worden, um die Aspekte der vorliegenden Erfindung nicht unnötig zu verdunkeln.
  • Ein Verfahren, eine Vorrichtung und ein System eines verteilten direkten Speicherzugriffs (DMA) werden innerhalb eines Systems auf einem Chip (SOC) bereitgestellt. DMA-Steuereinheiten werden auf funktionelle Module verteilt, welche einen direkten Speicherzugriff auf einen globalen Pufferspeicher wünschen. Die DMA-Steuereinheiten richten darüber, welcher funktionelle Block auf den globalen Pufferspeicher Zugriff hat. Die funktionellen Module sind mit einem Systembus verknüpft, über den der direkte Speicherzugriff stattfindet. Der globale Pufferspeicher, auf welchen der direkte Speicherzugriff gewünscht wird, ist mit dem Systembus verbunden. Busvermittler werden benutzt, um zu vermitteln, welche funktionellen Module auf den Systembus Zugriff haben, um den direkten Speicherzugriff auszuführen. Sobald ein funktionelles Modul von dem Busvermittler ausgewählt worden ist, um auf den Systembus zuzugreifen, kann es eine DMA-Routine mit dem globalen Pufferspeicher erstellen.
  • Mit Bezug auf 1 ist ein Blockdiagramm eines Systems auf einem Chip (SOC) dargestellt. Das System auf einem Chip (SOC) 100 ist in einer Ausführungsform ein Sprachübermittlungspaket (VOP)-System, das einen seriellen Vollduplex-Mehrkanalanschluß, um mit einem Telefonnetzwerk über eine Verbindung verbunden zu werden, und einen anderen Anschluß aufweist, um mit einem Paketnetzwerk durch eine andere Verbindung verbunden zu werden. Das Telefonnetzwerk ist in einer Ausführungsform ein PSTN-Telefonnetzwerk mit einem seriellen TDM-Datenstrom.
  • Mit Bezug auf 2 ist ein detailliertes Blockdiagramm des Sprachübermittlungspaket-Systems auf einem Chip (VOP-SOC) 100 dargestellt. Das Sprachübermittlungspaket-System auf einem Chip 100 weist einen zentralen Systembus 200 auf, der mit einem globalen Pufferspeicher 210 verbunden ist. Der Systembus 200 ist ein standardgemäßer Systembus, der leitfähige Ablaufverfolgungen oder Drähte für Adreßsignale, Datensignale und Steuersignale aufweist. Die Adreßleitungen werden von dem Bus benutzt, um DMA-Übertragungen auszuführen. Der Bus bündelt gleichzeitig eine Anzahl von DMA-Transaktionen im Multiplexverfahren und befaßt sich jeweils nur mit einer Transaktion zu einem bestimmten Zeitpunkt. Folglich wird für diesen Transfer (Lesen oder Schreiben) ein Satz von Adreßleitungen benötigt. Die Adreß- und Datenleitungen sind unterschiedlich. Die Busbreite des Systembusses 200 für die Datensignale weist in einer Ausführungsform eine Datensystembusbreite (DSBW) von vierundsechzig Bits auf. Eine vierundsechzig Bit breite Datensystembusbreite ermöglicht Datenübertragungen von hoher Bandbreite. Der Zugriff auf den zentralen Systembus 200 durch die Funktionsmodule des Systems auf einem Chip 100 wird durch den Busvermittler 201A-201N vermittelt, der mit dem Systembus 200 verbunden ist, indem ein einheitliches programmierbares Vermittlungsprotokoll benutzt wird. Der standardgemäße Systembus 200 und das einheitliche Vermittlungsprotokoll, das von den Busvermittlern 201A-201N geliefert wird, vereinfachen die Vermittlung des Systembusses 200. Um auf den globalen Pufferspeicher 210 Zugriff zu bekommen, müssen die funktionellen Module des Systems auf einem Chip 100 zuerst Zugriff auf den Systembus 200 durch die Busvermittler 201A-201N bekommen. Ein Round-Robin-Vermittlungsschema auf dem Systembus 200 gewährleistet, daß jede der verteilten DMA-Hauptsteuerungen 203A-203N, 207 und 215 hin und wieder Zugriff auf den Systembus 200 haben und auf den globalen Speicher 210 zu diesem Zeitpunkt zugreifen können.
  • Alle Code-, Daten- und Zustandsinformationen für das VOP-SOC 100 werden in dem globalen Pufferspeicher 210, der als ein zentraler Aufbewahrungsort fungiert, gespeichert und davon gelesen. Folglich ist es wichtig und wünschenswert, Informationen in und aus dem globalen Pufferspeicher 210 über den Systembus 200 effizient zu übertragen, indem ein System mit einem verteilten direkten Speicherzugriff (DMA) der vorliegenden Erfindung benutzt wird. Während die Busvermittler auf den Systembus zugreifen, vermittelt das verteilte DMA-System den Zugriff auf den globalen Pufferspeicher 210. Der globale Speicher 210 ist ein den verteilten DMA-Hauptsteuerungen in dem System auf einem Chip 100 untergeordnete Einheit und weist eine untergeordnete DMA-Schnittstelle auf. Der globale Pufferspeicher 210 antwortet auf die DMA-Transferanfrage über den Systembus 200, der von den verteilten DMA-Steuerungen initiiert wird. Das verteilte DMA-System ermöglicht, daß die funktionellen Module ihre eigenen Adressen für den globalen Pufferspeicher erzeugen, und vermeiden, daß bei jedem Zyklus ständig Befehle gesendet werden, um auf große Datenblöcke zuzugreifen. Während eines DMAs wird ein Register eingerichtet, das ermöglicht, daß Adressen automatisch erzeugt werden und auf eine Vielzahl von Datenblöcken oder Bytes sequentiell zugegriffen wird. Die funktionellen Module des Systems auf einem Chip 100, welche einen direkten Speicherzugriff auf den globalen Pufferspeicher 210 wünschen, weisen einen oder mehrere Signalkernprozessoren 202A-202N, einen seriellen Vollduplex-Mehrkanalanschluß 206 zum Verbinden mit einem Telfonnetzwerk und einen Hostanschluß 214 zum Verbinden mit einem Host und einem Paketnetzwerk auf. Der globale Pufferspeicher 210 des SOCs 100 ist mit dem zentralen Systembus 200 verbunden.
  • Die Module des Systems auf einem Chip 100, welche einen direkten Speicherzugriff zu dem globalen Pufferspeicher 210 wünschen, weisen außer der Mikrosteuerung 223 ihre eigenen direkten Speicherzugriffs (DMA)-Steuerungen auf. Die Mikrosteuerung 223 ist mit dem Systembus 200 durch eine Busschnittstelle 224 und einen Busvermittler 201C verbunden. Die Mikrosteuerung 223 fungiert als ein System- oder Betriebsleiter, der die Ablaufsteuerung von Aufgaben und den Datenstrom aus dem seriellen Anschluß 206 und dem Hostanschluß 214 dirigiert. Sie erfordert keine DMA-Steuerung, sondern erzeugt Cachezeilen-Verlusteinheiten für Befehle und Daten, die zu dem globalen Speicher 210 geleitet werden. Die Mikrosteuerung weist einen Datencache 227 und einen Befehlscache 223 auf, der damit assoziiert ist, welche die Erzeugung von Cachezeilen-Verlusteinheiten bewirken. Die Mikrosteuerung erstellt DMA-Deskriptoren und befiehlt den einzelnen funktionellen Einheiten des SOCs 100, die DMA-Übertragungen auszuführen. Der Busvermittler 201C und die Busschnittstelle 224 kommunizieren miteinander, damit die Mikrosteuerung auf den Systembus Zugriff erhält. Die Mikrosteuerung 223 stellt eine Auftragssteuerung bereit und dirigiert die Datenübertragungen in und aus dem globalen Pufferspeicher 210, der als ein Datenverkehrspolizist fungiert. Die Mikrosteuerung 223 erstellt einen DMA durch Schreiben einer DMA-Deskriptorliste bezüglich des DMA-Datentransfers in den globalen Pufferspeicher. Sie kommuniziert dann mit der funktionellen Einheit, um den DMA der Daten auszuführen, indem sie auf die Anfangsadresse der DMA-Deskriptorliste zeigt. Die funktionelle Einheit liest die DMA-Deskriptorliste und führt den DMA der Daten aus. Die DMA-Deskriptorliste weist eine Anfangsadresse für die Daten und die Anzahl der zu übertragenden Bytes auf. Die DMA-Deskriptorliste weist andere Informationen auf, die nachstehend ausführlicher beschrieben werden. Neben der Mikrosteuerung 223 können der eine oder die mehreren Kernprozessoren 202A-202N insbesondere für DMA-Kernübertragungen auch DMA-Deskriptoren in dem globalen Speicher 210 bilden. Zum Beispiel erstellt die Mikrosteuerung 223 einen DMA mit einem der Kernprozessoren 202A-202N, um einen Datenrahmen oder -block für einen gegebenen Kommunikationskanal zu verarbeiten. Sie teilt dem einen Kernprozessor die Anfangsadresse der Deskriptorliste in dem globalen Pufferspeicher mit. Der eine Kernprozessor liest durch jede Zeile in der Deskriptorliste und führt den DMA der Daten von dem globalen Pufferspeicher in den lokalen Speicher des Kernprozessors aus.
  • Der serielle Mehrkanalanschluß 206 ist mit einer Vielzahl von Zeitmultiplex (TDM)-Vollduplex-Telekommunikationskanälen verbunden, damit das VOP-SOC 100 die Vielzahl von Kommunikationskanälen unterstützen kann. Der serielle Mehrkanalanschluß 206 fungiert als ein Empfänger und Sender für jeden der Vielzahl von Kommunikationskanälen, die in einer Ordnung von 512 Kanälen liegen. Daten, die von dem Telefonnetzwerk empfangen werden, werden von dem seriellen Mehrkanalanschluß 206 in dem globalen Pufferspeicher 210 gespeichert, um von den Kernprozessoren 202A-202N verarbeitet zu werden. Daten, die nach der Verarbeitung von den Kernprozessoren 202A-202N zu dem Telefonnetzwerk gesendet werden sollen, werden von dem seriellen Mehrkanalanschluß 206 aus dem globalen Pufferspeicher 210 abgerufen. Um auf den globalen Pufferspeicher direkt zuzugreifen, weist der serielle Mehrkanalanschluß 206 eine serielle DMA-Steuerung 207 auf, welche mit dem Busvermittler 201A verbunden ist.
  • Der Hostanschluß 214 ist mit einem Host verbunden, um bei Einschalt- und Einrichtungsinformationen hinsichtlich der Kommunikationskanäle, die er verarbeiten wird, externe Daten zu empfangen. Außerdem ist der Hostanschluß 214 mit einem Paketnetzwerk verbunden, um Paketnutzlasten von Daten in Vollduplex für Mehrkommunikationskanäle zu übermitteln. Daten, die von dem Telefonnetzwerk empfangen werden, werden von dem Hostanschluß 214 in dem globalen Pufferspeicher 210 gespeichert, um von den Kernprozessoren 202A-202N verarbeitet zu werden. Daten, die nach der Verarbeitung durch die Kernprozessoren 202A-202N auf das Paketnetzwerk gesendet werden sollen, werden von dem Hostanschluß 214 aus dem globalen Pufferspeicher aufgerufen. Die Paketnutzlasten, die von dem Hostanschluß 214 aus dem globalen Pufferspeicher 214 übermittelt werden, werden nach dem Empfang aus dem Paketnetzwerk in die Paketnutzlast-Daten depaketiert, die durch den Hostanschluß empfangen werden. Alternativ kann in dem VOP-SOC 100 ein Paketierer oder Depaketierer enthalten sein, um ein Paketnetzwerk direkt zu verknüpfen.
  • In einer Ausführungsform setzt der Hostanschluß 214 auch die Protokolle eines Intel I960-kompatiblen Hostanschlusses um. Der Hostanschluß 214 ist mit einem Host wie einem Intel I960-Hostprozessor verbunden, um externe Informationen zu empfangen, da sich der globale Pufferspeicher 210 innerhalb des Systems auf einem Chip 100 befindet. Der Host stellt durch den Hostanschluß 214 Informationen hinsichtlich einer Hochfahrsequenz während des Hochfahrens des SOCs 100 sowie Kanaleinrichtungsinformationen hinsichtlich der Kommunikationskanäle, welche das SOC 100 unterstützen soll, und sämtliche anderen externen Informationen bereit, die ein Benutzer zum Laden in das SOC 100 benötigt. Der Hostanschluß 214 weist in einer Ausführungsform einen zweiunddreißig Bit breiten parallelen Datenanschluß auf. Das heißt, die Paketnutzlastdaten und anderen Informationen können mit Hilfe einer Datenwortbreite von zweiunddreißig Bit von einer externen Quelle in und aus dem Hostanschluß strömen. Der Hostanschluß 214 wandelt die 32-Bit-Daten auf dem externen Bus zur Übertragung über den Systembus 200 in 64-Bit-Daten und die 64-Bit-Daten aus dem Systembus 200 zur Übertragung aus dem Hostanschluß in 32-Bit-Daten um.
  • Die Kernprozessoren 202A-202N verarbeiten die empfangenen TDM-Signale aus dem Telefonnetzwerk und können als Antwort TDM-Signale zur Kommunikation zurück über das Telefonnetzwerk erzeugen oder sie können Paketnutzlasten zur Kommunikation über das Paketnetzwerk erzeugen. Paketnutzlasten, die aus dem Paketnetzwerk empfangen werden, werden von den Kernprozessoren 202A-202N in Paketnutzlasten zur Übertragung zurück über das Paketnetzwerk oder in TDM-Daten zur Kommunikation über das Telefonnetzwerk verarbeitet. In jedem Fall werden die Daten, die verarbeitet werden müssen, zuerst in dem globalen Pufferspeicher 210 gespeichert. Der eine oder die mehreren Kernprozessoren 202A-202N rufen dann die Daten für den gegebenen Kanal zur Verarbeitung auf. Nachdem die Verarbeitung der Daten von dem einen oder den mehreren Kernprozessoren 202A-202N beendet ist, werden sie in dem globalen Pufferspeicher 210 gespeichert. Um auf den globalen Pufferspeicher direkt zuzugreifen, weisen der eine oder die mehreren Kernprozessoren 202A-202N eine oder mehrere DMA-Kernsteuerungen 203A-203N auf, um auf die Daten in ihrem lokalen Speicher direkt zuzugreifen. Der Code, der mit der funktionellen Verarbeitung des Kanals in Verbindung steht, und die Zustandsinformationen zur vorherigen Verarbeitung des Kanals und seine Datenproben werden auch in dem globalen Pufferspeicher 210 gespeichert und durch DMA in den lokalen Speicher (Programmspeicher und Datenspeicher) des einen oder der mehreren Kernprozessoren übertragen, welche die neuen Datenproben verarbeiten werden.
  • Mit Bezug auf 3 ist ein Blockdiagramm eines Kernprozessors 202 dargestellt. Der Kernprozessor 202, der in 3 dargestellt ist, steht für ein Beispiel des einen oder der mehreren Kernprozessoren 202A-202N in 2. Der Kernprozessor 202 weist eine DMA-Kernsteuerung 203, einen digitalen Signalprozessor (DSP) 300, den Datenspeicher 302 und einen Programmspeicher 304 auf, die wie in 3 dargestellt miteinander verbunden sind. Speicherstellen in dem Datenspeicher 302 und dem Programmspeicher 304 können in dualen Kanälen zur Verarbeitung von zwei Kommunikationskanälen zugewiesen werden. Das Zuweisen von Speicherstellen in zwei Kanäle auf diese Weise wird manchmal als ein doppelt gepuffertes Speicherschema bezeichnet. Das heißt, der Datenspeicher 302 kann als über zwei Kanäle aufgeteilt betrachtet werden, nämlich als ein Speicher von Kanal-Eins-Daten 302A und Speicher von Kanal-Zwei-Daten 302B. In ähnlicher Weise kann der Programmspeicher 304 als in zwei Kanäle aufgeteilt betrachtet werden, nämlich den Programmspeicher von Kanal eins 304A und den Programmspeicher von Kanal zwei 304B. Der Programmspeicher von Kanal eins 304A entspricht dem Datenspeicher von Kanal eins 302A. Der Programmspeicher von Kanal zwei 304B entspricht dem Datenspeicher von Kanal zwei 302B.
  • Die DMA-Kernsteuerung 203 und der DSP 300 springen zwischen den Speicherkanälen, auf welche jede zugreift, hin und her. Die DMA-Kernsteuerung 203 schreibt Daten oder Codes in die Speicherstellen des Datenspeichers und Programmspeichers entsprechend dem Kanal, der nicht verarbeitet wird. Während ein Kanal von Speicherstellen von dem DSP 300 verarbeitet wird, wird der andere Kanal von Speicherstellen durch DMA gelesen oder aktualisiert. Zum Beispiel verarbeitet der DSP 300 die Daten in Kanal eins 302A des Datenspeichers 302 mit Hilfe des Codes, der in Kanal eins 304A des Programmspeichers 304B gespeichert ist. Während der DSP 300 Kanal eins verarbeitet, aktualisiert die DMA-Kernsteuerung 203 Kanal zwei 302B des Programmspeichers 304B, um einen nächsten Kanal zu verarbeiten. Die DMA-Kernsteuerung 203 kann auch Daten aus Kanal zwei lesen, nachdem die Verarbeitung vollendet ist, und dann Kanal zwei 302B mit neuen Daten zur Verarbeitung des nächsten Kanals aktualisieren. Die DMA-Kernsteuerung 203 überträgt Codes und Daten zwischen dem globalen Pufferspeicher 210 und dem Datenspeicher 302 und dem Programmspeicher 304 mit Hilfe des direkten Speicherzugriffs.
  • Der Datentransfer zwischen dem Datenspeicher 302 und der DMA-Kernsteuerung 203 findet mittels opportunistischer Lese- und Schreibvorgänge statt. Das heißt, Daten werden bei jeder Gelegenheit zwischen einem Datenspeicher 302 des einen oder der mehreren Kernprozessoren 200A-200N und der DMA-Kernsteuerung 203 übertragen. Wenn ein Prozessor keinen der Anschlüsse des Datenspeichers 302 mit dualem Anschluß benutzt, können Daten in jeden der Anschlüsse geschrieben oder aus jedem der Anschlüsse gelesen werden. Immer wenn eine freie Speicherstelle(n) zum Schreiben von Daten in eine gerade verarbeitete Bank verfügbar ist, kann der DMA-Prozeß in die freie Speicherstelle(n) schreiben. Nachdem eine Speicherstelle Daten enthält, deren Verarbeitung vollendet ist, kann der DMA-Prozeß aus der Speicherstelle(n) in dem Datenspeicher 302, falls verfügbar, lesen. Die Kernprozessoren 200A-200N haben eine höhere Priorität, um auf Speicherbanken zuzugreifen, wobei der DMA-Steuerungszyklus opportunistische Lese- und Schreibvorgänge entwendet, um auf den Datenspeicher Zugriff zu bekommen. In ähnlicher Weise findet der Codetransfer zwischen dem Programmspeicher 304 und dem globalen Pufferspeicher 210 mittels opportunistischer Lese- und Schreibvorgänge statt.
  • Die Befehle für den DMA-Transfer zwischen einem Datenspeicher 302 und dem globalen Pufferspeicher 210 weisen Starten, Anhalten, Fortfahren, Unterbrechen und Wiederaufnehmen auf. In den DMA-Steuerungen 203 gibt es DMA-Deskriptorregister. Einer oder mehrere dieser Befehle können in die DMA-Deskriptorregister geschrieben werden, während der DMA im Gange ist, und können bewirken, daß die angemessene Handlung ausgeführt wird. Ein DMA-Transfer kann mit Hilfe des Befehls Anhalten oder des Befehls Unterbrechen auch von einem Benutzer angehalten werden. Nachdem ein DMA-Transfer angehalten ist, kann er mit Hilfe des Befehls Fortfahren fortgesetzt werden. Nach dem Anhalten oder Unterbrechen kann ein Benutzer einen anderen DMA-Transferprozeß beginnen. Nach dem Unterbrechen kann ein unterbrochener DMA-Transfer mit Hilfe des Befehls Wiederaufnehmen wiederaufgenommen werden. Bei Vollendung des DMA-Prozesses wird ein Unterbrechungssignal rückgekoppelt, um dem Host, der Mikrosteuerung oder dem Kernprozessor (DSP) anzuzeigen, den Status der DMA-Steuerung zu überprüfen.
  • Die Bitbreite der Wörter von Daten, die in einem der Kanäle des Datenspeichers 302 gespeichert sind, stimmt mit derjenigen der Datensystembusbreite (DSBW) des Systembusses 200 überein. Es ist wünschenswert, daß die Bitbreite der Wörter von Codes, die in jedem der Kanäle des Programmspeichers 304 gespeichert sind, mit derjenigen der Befehlsbreite des DSPs 300 übereinstimmt. In einer Ausführungsform ist die Breite von Datenwörtern, die in einem der Kanäle des Datenspeichers 302 gespeichert sind, vierundsechzig Bits breit, während die Breite von Programmcodewörtern, die in einem der Kanäle des Programmspeichers 304 gespeichert sind, vierzig Bits breit ist. Folglich wandelt die DMA-Kernsteuerung 203 64 Programmcodebits, die aus dem globalen Pufferspeicher 210 empfangen werden, in Wortbreiten von vierzig Bit um (das heißt, packt diese selektiv). Die DMA-Steuerung stellt dem DSP jeweils 40 Bits bereit. Der FIFO, der in der DMA-Kernsteuerung 203 enthalten ist, führt die 64-zu-40-Bit-Umwandlungen aus. Alle fünf Wörter von vierundsechzig Codebits (insgesamt 320 Bits), die aus dem globalen Pufferspeicher 210 gelesen werden, werden in acht Wörter von vierzig Codebits (insgesamt 320 Bits) umgewandelt. Das heißt, die Bits werden in ein Wort gepackt, das der kleinste gemeinsame Nenner zwischen der Datensystembusbreite und der Wortbreite des Programmspeichers 304 ist.
  • Jede der verteilten DMA-Steuerungen stellt dem globalen Pufferspeicher beim Lesen eine Quellenadresse und dem globalen Pufferspeicher beim Schreiben eine Zieladresse bereit. Die DMA-Kernsteuerung 203 erzeugt ferner beim Schreiben darein eine Zieladresse für den Datenspeicher 302 und den Programmspeicher 304 und beim Lesen daraus eine Quellenadresse. Der Programmspeicher 304 ist 40-Bit-adressierbar und weist eine Adreßwort auf, das 40 Bit breit sein kann. Der Datenspeicher 302 ist 64-Bit-adressierbar und weist eine Adreßwort in den Speicher auf, das 64 Bit breit sein kann. Folglich stellt die DMA-Kernsteuerung 203 sowohl eine Quellen- als auch eine Zieladresse bereit, wenn DMA-Transfers zwischen dem globalen Pufferspeicher 210 und dem Datenspeicher 302 oder dem Programmspeicher 304 ausgeführt werden.
  • Mit Bezug auf 4 ist ein Blockdiagramm einer beispielhaften Speicherabbildung für den globalen Pufferspeicher 210 dargestellt. Ein Datenwort oder -block wird in einem globalen Pufferspeicher gespeichert und daraus gelesen, der eine Größe aufweist, die mit der Datensystembusbreite (DSBW) übereinstimmt. In einer Ausführungsform betragen die Datensystembusbreite und die Breite von Datenwörtern in adressierbaren Speicherstellen in dem globalen Pufferspeicher vierundsechzig Bits. Das heißt, wenn dem globalen Pufferspeicher eine Adresse bereitgestellt wird, können vierundsechzig Bits gleichzeitig herausgelesen oder gleichzeitig hinein geschrieben werden. Der globale Pufferspeicher ist auf 64-Bit-Grenzen mit einem Adreßwort adressierbar, das 23 Bits breit ist.
  • In der beispielhaften Speicherabbildung aus 4 weist der globale Pufferspeicher 210 Daten zwischen einer ersten Anfangsadresse B1 und einer ersten Endadresse E1 als einen Datensatz auf, auf den durch einen direkten Speicherzugriff zugegriffen werden kann (als DMAD 1 bezeichnet). DMAD 1 stehen zum Beispiel für Daten, die von dem Hostanschluß oder dem seriellen Mehrkanalanschluß empfangen worden sind, oder Daten, die von einem der Kernprozessoren 200A-200N geschrieben worden sind. Die beispielhafte Speicherabbildung aus 4 weist auch Daten zwischen einer zweiten Anfangsadresse B2 und einer zweiten Endadresse E2 als einen zweiten Satz von Daten auf, auf die durch einen direkten Speicherzugriff direkt zugegriffen werden kann (als DMAD 2 bezeichnet). Die beispielhafte Speicherabbildung aus 4 stellt auch den globalen Pufferspeicher 210 dar, der Daten zwischen einer dritten Anfangsadresse B3 und einer dritten Endadresse E3 als einen dritten Datensatz aufweist, auf den durch einen direkten Speicherzugriff zugegriffen werden kann (als DMAD 3 bezeichnet).
  • Der globale Pufferspeicher weist auch eine DMA-Deskriptortabelle 401 auf. Die DMA-Deskriptortabelle 401 weist eine oder mehrere deskriptive DMA-Listen 402A-402N mit Informationen auf, die sich auf die Daten beziehen, auf die durch direkten Speicherzugriff direkt zugegriffen werden kann und die in dem globalen Pufferspeicher 210 gespeichert sind. Eine oder mehrere deskriptive DMA-Listen werden von jeder der verteilten DMA-Steuerungen benutzt, wenn Informationen durch DMA an den globalen Pufferspeicher 210 übertragen werden. Jede der deskriptiven DMA-Listen 402A-402N weist Anfangszeiger bezüglich Daten, Code, Status oder anderer Informationen in dem globalen Pufferspeicher auf. Eine oder mehrere deskriptive DMA-Listen 402A-402N innerhalb der deskriptiven DMA-Tabelle 401 zeigen auf die Daten DMAD 1, DMAD 2 und DMAD 3, die durch direkten Speicherzugriff zugänglich sind. Nachdem die Daten, die durch direkten Speicherzugriff zugänglich sind, nicht mehr gültig oder brauchbar sind, werden die deskriptiven DMA-Listen annulliert oder gelöscht.
  • In 4 weist die DMA-Deskriptortabelle 401 eine beispielhafte deskriptive DMA-Liste 402A auf, die innerhalb des globalen Pufferspeichers 210 zum Verarbeiten eines gegebenen Kanals gespeichert ist. Eine deskriptive DMa-Liste 402N kann bereits von der seriellen DMA-Steuerung oder der DMA-Hoststeuerung im Hinblick auf DMA-Informationen aus ihren jeweiligen Anschlüssen in dem globalen Pufferspeicher benutzt worden sein. Die deskriptive DMA-Liste kann im Hinblick auf die DMA-Information aus dem globalen Pufferspeicher in den lokalen Speicher, den Datenspeicher und Programmspeicher von einem oder mehreren der Kernprozessoren 200A-200N benutzt werden. In diesem Fall kann die deskriptive DMA-Liste eine Verknüpfung zu der deskriptiven DMA-Liste 402N aufweisen.
  • 4 zeigt eine beispielhafte deskriptive DMA-Liste 402A zum Verarbeiten eines Kanals. Die beispielhafte deskriptive DMA-Liste 402A weist einen Sendeprogrammzeiger 410, eine Probentypbeschreibung 412, einen Zustandsinformationszeiger 414, einen gemischten Steuerzeiger 416, einen Anfangsdaten-Speicherzeiger 418 und einen verknüpften Listenzeiger 420 auf. Der Sendeprogrammzeiger 410 zeigt auf eine Anfangsadresse für einen Code, der zum Verarbeiten des gegebenen Kanals zu benutzen ist. Die Probentypbeschreibung 412 beschreibt den Typ von Datenproben auf dem seriellen Anschluß im Hinblick darauf, ob sie 4-Bit, 3-Bit, 16-Bit sind und ob sie komprimiert sind oder nicht, und falls ja, welche Komprimierungsart benutzt wird. Der Zustandsinformationszeiger zeigt auf die Daten in dem Speicher, falls vorhanden, des letzten Berechnungszustands von Datenproben für den Kanal, der bei der derzeitigen Berechnung benutzt werden kann. Der gemischte Steuerzeiger 416 zeigt auf gemischte Steuerinformation bezüglich der Datenproben, dem Code, Zustandsinformation oder anderer Information, auf die durch direkten Speicherzugriff in oder aus dem globalen Pufferspeicher 210 zugegriffen werden soll. Die Anfangsspeicherstelle 418 stellt die Anfangsadresse der Daten bereit, auf die durch direkten Speicherzugriff zugegriffen werden soll, und zeigt auf das erste Wort oder den ersten Datenblock wie B1, B2 oder B3 der beispielhaften Speicherabbildung. Als Alternative kann der verknüpfte Listenzeiger 420 auf eine andere deskriptive Liste 420N für die Daten oder andere Information zeigen 422, auf die durch direkten Speicherzugriff aus oder zu dem globalen Pufferspeicher zugegriffen werden muß. Auf diese Weise können die DMA-Deskriptorlisten miteinander verkettet werden.
  • Mit Bezug auf 5 ist ein Blockdiagramm der seriellen DMA-Steuerung 207 dargestellt. Die serielle DMA-Steuerung 207 weist einen Empfangs-FIFO-Puffer 502, einen Sende-FIFO-Puffer 504, ein Kanalregister 505, einen Datenzähler 506, ein Status-/Steuerregister 507, eine Steuerlogik 508 und einen TDM-Neuabbildungsspeicher 510 auf. Die Daten, die über den seriellen Anschluß gesendet oder empfangen werden, können durch einen Kompressionsalgorithmus komprimiert werden. Falls die Daten Sprachdaten sind, kann der Kompressionsalgorithmus eine Gesetz-A-Kompression oder eine Gesetz-Mu-Kompression sein. Die Sprachdaten sind in ihrer nicht komprimierten Form PCM oder durch Impulscode modulierte Daten. Außerdem werden die Daten auf dem seriellen Datenstrom in einem Zeitmultiplexverfahren in Zeitschlitze für jeden Kommunikationskanal aufgeteilt. Da der verteilte DMA der vorliegenden Erfindung besonders geeignet ist, um Datenblöcke für gegebene Kanäle zu unterstützen, stellt der serielle Anschluß eine Verschachtelung und Entschachtelung von Daten aus dem seriellen Datenstrom für jeden Kanal bereit.
  • Die serielle DMA-Steuerung 207 ist mit dem Systembus 200 durch den Busvermittler 201A verbunden, um parallele Datenbits zu empfangen und zu senden. Die serielle DMA-Steuerung 207 ist mit dem Telefonnetzwerk verbunden, um einen seriellen Datenstrom zu empfangen und zu senden. Die serielle DMA-Steuerung 207 weist auch DMA-Steuersignale auf, um den direkten Speicherzugriff durch den Systembus 200 anzufordern und zu steuern. Diese DMA-Steuersignale weisen eine DMA-Anfrage (DMA REQ, DMA-Anerkennung (DMA ACK), Unterbrechungsanfrage (INT) und ein Lese-/Schreib-Abtastsignal (R/W) auf, die durch den Busvermittler 201A auf den Steuerleitungen des Systembusses 200 verbunden sind. Die DMA-Steuersignale sind mit dem Steuerlogikblock 508 verbunden. Der Steuerlogikblock 508 erzeugt die DMA REQ-, die INT- und die R/W-Abtastsignale und empfängt das DMA-ACK-Signal. Der parallele Datenanschluß der seriellen Datensteuerung 207 ist mit dem Busvermittler 201A verbunden. Der Empfangs-FIFO-Puffer 502, der Sende-FIFO-Puffer 504, das Kanalregister, der Datenzähler 506 und das Status-/Steuerregister 507 sind durch den parallelen Datenanschluß der seriellen DMA-Steuerung 207 mit dem Busvermittler 201A verbunden. Der Empfangs-FIFO-Puffer 502 und der Sende-FIFO-Puffer 504 sind in einer Ausführungsform ein bis zwei Eingänge (64-Bit) tief und stellen Burst-Schreibvorgänge und -Lesevorgänge mit dem TDM-Neuabbildungsspeicher 510 und dem globalen Pufferspeicher 210 bereit. Der TDM-Neuabbildungsspeicher 510 der seriellen DMA-Steuerung 207 ist durch den seriellen Mehrkanal-Datenanschluß mit dem Telefonnetzwerk verbunden, um darauf einen seriellen Datenstrom zu senden und zu empfangen.
  • Der TDM-Neuabbildungsspeicher 510 stellt eine Seriell-zu-Parallel-Umwandlung bereit, wenn er einen seriellen Datenstrom aus dem Telefonnetzwerk empfängt. Der TDM-Neuabbildungsspeicher 510 stellt eine Parallel-zu-Seriell-Umwandlung bereit, wenn er einen seriellen Datenstrom zu dem Telefonnetzwerk empfängt. Der TDM-Neuabbildungsspeicher verschachtelt Daten angemessen in Zeitschlitze des seriellen Datenstroms zur Übertragung. Der TDM-Neuabbildungsspeicher entschachtelt Daten angemessen aus Zeitschlitzen des seriellen Datenstroms zu empfangenen Daten. Der TDM-Neuabbildungsspeicher 510 bildet auch die angemessenen Daten in Speicherstellen neu ab, so daß eine Vielzahl von seriellen Kommunikationskanälen unterstützt wird. Das heißt, der serielle Datenstrom wird bei Empfang serieller Daten in den TDM-Neuabbildungsspeicher gelesen, indem Daten aus Zeitschlitzen in angemessene Speicherstellen entschachtelt werden, so daß ein ganzer Datenrahmen für einen gegebenen Kanal zum DMA in den globalen Pufferspeicher bereit ist. Zum Senden serieller Daten wird ein ganzer Datenrahmen in dem TDM-Neuabbildungsspeicher gespeichert, so daß Blöcke gleichzeitig herausgelesen und in angemessene Zeitschlitze für einen gegebenen Kanal verschachtelt werden können.
  • Das Status-/Steuerregister 507 der seriellen DMA-Steuerung stellt Statusinformation hinsichtlich des seriellen Anschlusses 206 und der seriellen DMA-Steuerung bereit. Das Status-/Steuerregister 507 verwaltet eine Anzahl von Flags, die ein volles Flag des Empfangs-FIFO-Puffers und ein volles Flag des Sende-FIFO-Puffers aufweisen. Wenn das volle Flag des Puffers festgelegt ist, können keine weiteren Daten in dem jeweiligen Puffer gespeichert werden, bis das Flag gelöscht ist. Das Kanalregister 505 wird auf eine bestimmte Kanalanzahl festgelegt, wenn ein spezifischer Status im Hinblick auf diesen Kanal gewünscht wird. Wenn eine Kanalanzahl von dem Kanalregister nicht ausgewählt wird, wird ein allgemeiner Status bereitgestellt, wenn das Status-/Steuerregister 507 gelesen wird. Wenn in das Status-/Steuerregister 507 geschrieben wird, können die Steuerung der seriellen DMA-Steuerung 207 und des seriellen Anschlusses 206 erstellt oder aktualisiert werden. Der Datenzähler 506 zählt die Bytezählung in einem DMA-Transfer, um zu bestimmen, wann ein Transfer vollendet ist. Der Zählungswert des Datenzählers 506 ermöglicht auch die Erzeugung von Adressen für den globalen Pufferspeicher 210.
  • Mit Bezug auf 6A und 6B ist die Funktionalität des TDM-Neuabbildungsspeichers 510 dargestellt. 6A zeigt einen beispielhaften seriellen Datenstrom auf dem seriellen Anschluß des seriellen Mehrkanalanschlusses 207. Der serielle Datenstrom auf dem seriellen Anschluß wird einem Zeitmultiplexverfahren (TDM) unterzogen. Die Kommunikationskanäle (CH1 bis CHN) werden bestimmten Zeitschlitzen zwischen Rahmensynchronisationsimpulsen (FS) über Rahmen 1 bis Rahmen M zugewiesen. Jeder Kanalzeitschlitz ist in einer Ausführungsform ein DSO-Datenbyte von acht Datenbits. In einer alternativen Ausführungsform beträgt jeder Kanalzeitschlitz 16 Datenbits. Die vorliegende Erfindung kann an alternative Datenbits pro Zeitschlitz pro Kanal angepaßt werden.
  • 6B stellt eine beispielhafte Neuabbildung von Datenrahmen in Daten der jeweiligen Kanäle 1 bis N oder umgekehrt dar. Die Daten von Kanal 1 über Rahmen 1 bis M sind zusammen angeordnet. Die Daten von Kanal 2 über Rahmen 1 bis M sind zusammen angeordnet, und so weiter und so fort, bis Kanal N. Für N Kommunikationskanäle sind M Rahmen in dem TDM-Neuabbildungsspeicher gespeichert. Sobald N DSO-Wörter von Kanal-1-Daten in dem TDM-Neuabbilder gespeichert werden, kann ein Rahmen von Kanal-1-Daten während des Empfangs über DMA in den globalen Pufferspeicher 210 geschrieben werden. Der TDM-Neuabbildungsspeicher bildet die DSO-Wörter ab, die in den Rahmen von Daten für jeden Kanal empfangen werden. Sobald ein Datenrahmen in dem TDM-Neuabbildungsspeicher für jeden der N Kanäle gespeichert ist, kann während der Übertragung ein Rahmen von seriellen TDM-Daten an das Telefonnetzwerk übertragen werden. Der TDM-Neuabbildungsspeicher bildet den Datenrahmen für die N Kanäle in die DSO-Wörter für jeden Kanal ab.
  • Mit Bezug auf 7 ist ein Blockdiagramm der DMA-Kernsteuerung 203 dargestellt. Die DMA-Kernsteuerung 203 ist ein Beispiel der einen oder mehreren DMA-Kernsteuerungen 203A-203N. Die DMA-Kernsteuerung 203 weist einen Empfangs-FIFO-Puffer 702, einen Sende-FIFO-Puffer 704, ein Status-/Steuerregister 705, einen Datenzähler 706, ein Warteschlangenregister/-zähler 707, eine Steuerlogik 708, einen Decoder 711, ein Paar Multiplexer 712-713 und einen Codierer 714 auf. Die Steuerlogik 708 weist DMA-Steuersignale (DMA REQ PROC., DMA ACK PROC, INT PROC- und R/W PROC.), die auf der Prozessorseite mit dem Datenspeicher 302 und dem Programmspeicher 304 für eine Verbindung verbunden sind, und DMA-Steuersignale (DMA REQ BUS, DMA ACK BUS, INT BUS und R/W BUS) auf einer Busseite auf, die durch den Systembus mit dem globalen Pufferspeicher 210 für eine zweite Verbindung verbunden sind. Der Empfangs-FIFO-Puffer 702, Sende-FIFO-Puffer 704, Status-/Steuerregister 705, Datenzähler 706, Warteschlangenregister/-zähler 707, Decoder 711 und Codierer 714 der DMA-Kernsteuerung 203 sind auf einer Seite mit dem Datenspeicher 302 und dem Programmspeicher 304 eines Kernprozessors 200 verbunden. Der Empfangs-FIFO-Puffer 702, Sende-FIFO-Puffer 704, Status-/Steuerregister 705, Datenzähler 706 und Warteschlangenregister/-zähler 707 der DMA-Kernsteuerung 203 sind mit dem globalen Speicher 210 durch den einen oder die mehreren Busvermittler 201A-201N und den Systembus 200 auf der Busseite verbunden. Der Empfangs-FIFO-Puffer 702 und der Sende-FIFO-Puffer 704 sind in einer Ausführungsform vierundsechzig Bytes tief und stellen Burst-Lesevoränge und – Schreibvorgänge mit dem globalen Pufferspeicher und dem Kernprozessor bereit.
  • Es ist zu beachten, daß die Breite von Datenwörtern, die in einem der Kanäle des Datenspeichers 302 gespeichert sind, in einer Ausführungsform vierundsechzig Bits beträgt, während die Breite von Programmcodewörtern, die in dem einen der Kanäle des Programmspeichers 304 angeordnet sind, vierzig Bits beträgt. In diesem Fall wandelt die DMA-Kernsteuerung 203 64 Programmcodebits, die aus dem globalen Pufferspeicher 210 empfangen werden, in Wortbreiten von vierzig Bit um. Der Programmcode mit einer Breite von 64 Bits wird in dem Empfangs-FIFO in acht 8-Bit-Bytes gespeichert. Der Programmcode wird aus dem jeweiligen FIFO von einem Prozessor gelesen, so daß fünf 8-Bit-Bytes (das heißt, 40 Bits) von Code gleichzeitig herausgelesen und in den Programmspeicher 304 gelesen werden. Als Alternative können diese als fünf 64-Bit-Wörter (320 Bits) betrachtet werden, die aus dem Empfangs-FIFO gelesen werden.
  • Außerdem kann die DMA-Kernsteuerung Daten, die von dem globalen Pufferspeicher vor dem Schreiben in den Datenspeicher 304 empfangen werden, dekomprimieren und kann Daten, die aus dem Datenspeicher 304 vor dem Schreiben in den globalen Pufferspeicher 210 gelesen werden, komprimieren. Der Multiplexer 712 wählt aus, ob Information aus dem Empfangs-FIFO-Puffer 702 direkt mit dem Datenspeicher und Programmspeicher verbunden wird oder mit einem der zwei entschlüsselten Ausgaben des Decoders 711 verbunden wird, der die Information entschlüsselt. Der Multiplexer 712 ermöglicht auch, daß Information aus dem Datenzähler 706, dem Status-/Steuerregister 705 und dem Warteschlangenregister/-zähler 707 mit dem Prozessor oder dem Datenspeicher und dem Programmspeicher verbunden wird. Der Multiplexer 713 wählt aus, ob Information aus dem Datenspeicher, dem Programmspeicher oder dem DSP direkt mit dem Sende-FIFO-Puffer 702 verbunden wird oder ob eine oder zwei verschlüsselte Ausgaben des Codierers 714 verbunden werden, welche die Information verschlüsseln. In einer Ausführungsform kann das komprimierte Format ein nichtlineares komprimiertes Gesetz-A- o oder Gesetz-Mu-Format sein, während das dekomprimierte Format linear ist oder durch Impulscode modulierte Daten. Die Komprimierung und Dekomprimierung wird durch Festlegen von Bits in dem Status-/Steuerregister 705 in Antwort auf eine DMA-Deskriptorliste ausgewählt.
  • Durch Verschlüsseln (Komprimieren) und Entschlüsseln (Dekomprimieren) von Daten innerhalb der DMA-Kernsteuerung können die Daten aus dem seriellen Anschluß von dem seriellen Anschluß über den Systembus in dem globalen Pufferspeicher und dann in die DMA-Kernsteuerung durch den Systembus komprimiert bleiben. Das Komprimierthalten der Daten innerhalb des SOCs 100 so lange wie möglich stellt eine erhöhte Bandbreite für den Datentransfer bereit.
  • Das Status-/Steuerregister 705 der DMA-Kernsteuerung stellt beim Lesen Statusinformation hinsichtlich des jeweiligen Kernprozessors 200 und der DMA-Kernsteuerung bereit. Das Status-/Steuerregister 705 verwaltet eine Anzahl von Flags, die ein volles Flag des Empfangs-FIFO-Puffers und ein volles Flag des Sende-FIFO-Puffers aufweisen. Wenn das volle Flag des Puffers festgelegt ist, können keine weiteren Daten in dem jeweiligen Puffer gespeichert werden, bis das Flag gelöscht ist. Wenn in das Status-/Steuerregister 705 geschrieben wird, kann die Steuerung der DMA-Kernsteuerung 203 erstellt oder aktualisiert werden. Der Datenzähler 706 zählt die Bytezählung in einem DMA-Transfer, um zu bestimmen, wann ein Transfer vollendet ist. Der Zählungswert des Datenzählers 706 ermöglicht auch die Erzeugung von Adressen für den globalen Pufferspeicher 210.
  • Bei dem DMA von Daten zwischen dem globalen Pufferspeicher und Datenspeicher oder Programmspeicher eines Kernprozessors benutzt jede der DMA-Kernsteuerungen die gleiche DMA-Deskriptorliste, die für den DMA der Daten von de Hostanschluß oder seriellen Anschluß in den globalen Pufferspeicher benutzt wurden. Eine zusätzliche DMA-Deskriptorliste ist unnötig.
  • Mit Bezug auf 8 ist der Hostanschluß 214 dargestellt, der die DMA-Hoststeuerung 215 aufweist. Die DMA-Hoststeuerung 215 weist einen Empfangs-FIFO-Puffer 802, einen Sende-FIFO-Puffer 804, ein Status-/Steuerregister 805, einen Datenzähler 806, ein Warteschlangenregister/-zähler 807, eine Steuerlogik 808, die eine Stromsteuerung bereitstellt, und I/O-Anschlußregister auf. Die Steuerlogik 808 weist eine Logik auf, um eine Datenstromsteuerung bereitzustellen und DMA-Steuerstrukturen bereitzustellen. Die DMA-Steuerstrukturen dienen der Handhabung von Warteschlangen. Das Status-/Steuerregister 807 stellt einem externen Host Zugriff auf Steuer- und Statusinformation und der internen Mikrosteuerung 223 Statusmitteilungs- und Warteschlangenzählerinformationen bereit. Der Empfangs-FIFO-Puffer 802 und der Sende-FIFO-Puffer 804 sind in einer Ausführungsform vierundsechzig Bytes tief. Der Empfangs-FIFO-Puffer 802 und der Sende-FIFO-Puffer 804 stellen Burst-Schreibvorgänge und – Lesevorgänge zwischen einem Hostprozessor und dem SOC 100 bereit. Der Hostanschluß 214 aus 8 weist ferner I/O-Anschlußregister 810 auf, um sich selektiv mit einem Hostprozessor zu verbinden. Die Steuerlogik 808 der DMA-Steuerung 215 weist DMA-Steuersignale (DMA REQ BUS, DMA ACK BUS, INT BUS und R/W BUS) auf der Busseite auf, die mit dem globalen Pufferspeicher 210 durch den Vermittler 201 und den Systembus 200 verbunden sind. Die Steuerlogik 808 weist DMA-Steuersignale (DMA REQ HOST, DMA ACK HOST, INT HOST und R/W HOST) auf der Hostseite auf, die mit dem Host verbunden sind. Der Empfangs-FIFO 802, der Sende-FIFO 804, der Datenzähler 806, das Status/Steuerregister 805 und Warteschlangenregister/-zähler 807 sind auf einer Seite mit dem Busvermittler 201 verbunden. Der Empfangs-FIFO 802, der Sende-FIFO 804 und der Datenzähler 806 sind auf einer gegenüberliegenden Seite mit dem I/O-Puffer 810 verbunden. Auf diese Weise können parallele Daten von Paketnutzlasten zwischen dem Host und dem Systembus 200 in und aus dem globalen Pufferspeicher 210 strömen.
  • Die I/O-Anschlußregister 810 des Hostanschlusses 214 stellen einen Punkt für einen Hostprozessor bereit, um Daten zu schreiben und Daten zu lesen.
  • Das Status-/Steuerregister 805 der DMA-Hoststeuerung stellt beim Lesen Statusinformation hinsichtlich des Hostanschlusses 214 und der DMA-Hoststeuerung bereit. Das Status-/Steuerregister 805 verwaltet eine Anzahl von Flags, die ein volles Flag des Empfangs-FIFO-Puffers und ein volles Flag des Sende-FIFO-Puffers aufweisen. Wenn das volle Flag des Puffers festgelegt ist, können keine weiteren Daten in dem jeweiligen Puffer gespeichert werden, bis das Flag gelöscht ist. Beim Schreiben in das Status-/Steuerregister 805 können die Steuerung der DMA-Hoststeuerung 215 und des Hostanschlusses 214 erstellt oder aktualisiert werden. Der Datenzähler 806 zählt die Bytezählung in einem DMA-Transfer, um zu bestimmen, wann ein Transfer vollendet ist. Der Zählungswert des Datenzählers 806 ermöglicht auch die Erzeugung von Adressen für den globalen Pufferspeicher 210.
  • Die bevorzugten Ausführungsformen der vorliegenden Erfindung sind somit beschrieben worden. Wie der Durchschnittsfachmann erkennen wird, hat die vorliegende Erfindung viele Vorteile. Ein Vorteil der vorliegenden Erfindung ist, daß die Bandbreite für den globalen Pufferspeicher aufgrund des breiten Systembusses, der Neuabbildung serieller Daten und der Komprimierung/Dekomprimierung von fliegenden Daten erhöht wird. Ein anderer Vorteil der Erfindung ist, daß die Vermittlung durch Benutzen gemeinsamer Normen für die Busvermittlung vereinfacht und auf Grund der Verteilung der Steuerungen mit direktem Speicherzugriff verbessert wird.
  • Wenngleich die vorliegende Erfindung in einer bestimmten Ausführungsform eines Sprachübermittlungspaket-Systems auf einem Chip beschrieben worden ist, ist sie genauso auf andere Systeme auf Chips anwendbar. Außerdem kann die vorliegende Erfindung in Hardware, Software, Firmware oder einer Kombination davon umgesetzt und in Systemen, Subsystemen, Komponenten oder Subkomponenten davon benutzt werden. Bei der Softwareumsetzung sind die Elemente der vorliegenden Erfindung im wesentlichen die Codesegmente, um die notwenigen Aufgaben auszuführen. Die Programm- oder Codesegmente können in einem von einem Prozessor lesbaren Medium gespeichert oder von einem Computerdatensignal gesendet werden, das in einer Trägerwelle über ein Übertragungsmedium oder einer Kommunikationsverknüpfung verkörpert ist. Das "von einem Prozessor lesbare Medium" kann jedes beliebige Medium aufweisen, das Informationen speichern oder übertragen kann. Beispiele des von einem Prozessor lesbaren Mediums weisen eine elektronische Schaltung, eine Halbleiter-Speichervorrichtung, einen ROM, einen Flashspeicher, einen löschbaren ROM (EROM), eine Diskette, einen CD-ROM, eine optische Platte, eine Festplatte, ein faseroptisches Medium, eine Radiofrequenz-(RF)-Verknüpfung usw. auf. Das Computerdatensignal kann jedes beliebige Signal aufweisen, das über ein Transmissionsmedium wie elektronische Netzwerkkanäle, Glasfasern, Luft, Elektromagnetik, RF-Verknüpfungen usw. verbreitet werden kann. Die Codesegmente können über Computernetzwerke wie das Internet, Intranet usw. heruntergeladen werden. In jedem Fall soll die vorliegende Erfindung durch solche Ausführungsformen nicht als einschränkend betrachtet werden, sondern gemäß den nachfolgenden Ansprüchen.

Claims (9)

  1. System, umfassend: einen Systembus (200); mehrere Busvermittler (201A-201N), die mit dem Systembus (200) verbunden sind; und mehrere funktionelle Module, die mit den mehreren Busvermittlern (201A-201N) verbunden sind, wobei jedes der mehreren funktionellen Module eine direkte Speicherzugriff (DMA)-Steuerung (203A-203N, 207, 215) aufweist, dadurch gekennzeichnet, daß jede DMA-Steuerung (203A-203N, 207, 215) mit einem Busvermittler der mehreren Busvermittler (201A-201N) verbunden ist, wobei die DMA-Steuerung (203A-203N, 207, 215) einen direkten Speicherzugriff auf einen globalen Pufferspeicher (210) bereitstellt, der direkt mit dem Systembus (200) verbunden ist, und dadurch, daß das System auf einem Chip (100) angeordnet ist.
  2. System auf einem Chip (100) nach Anspruch 1, wobei die mehreren Busvermittler (201A-201N) einen Zugriff auf den Systembus (200) durch die mehreren funktionellen Module aushandeln.
  3. System auf einem Chip (100) nach Anspruch 1 oder 2, ferner umfassend: eine Mikrosteuerung (223), die mit dem Systembus (200) verbunden ist.
  4. System auf einem Chip (100) nach Anspruch 1, wobei das System auf einem Chip ein Sprachübermittlungspaket-System auf einem Chip ist; und die mehreren funktionellen Module Folgendes aufweisen einen oder mehrere Signalprozessoren (202A-202N), um Daten von mehreren Kommunikationskanälen zu verarbeiten, wobei der eine oder die mehreren Prozessoren (202A-202N) direkt auf den globalen Pufferspeicher (210) zugreifen, um Daten zur Verarbeitung zu lesen und Daten nach der Verarbeitung zu schreiben, einen Hostanschluß (214), um sich mit einem Paketnetzwerk zu verbinden und Paketnutzlasten mit dem Paketnetzwerk zu senden und zu empfangen und auf den globalen Pufferspeicher (210) durch direkten Speicherzugriff zuzugreifen, um Daten aus dem globalen Pufferspeicher (210) zu lesen und darein zu schreiben, und einen seriellen Mehrkanalanschluß (206), um sich mit einem Telefonnetzwerk zu verbinden und Daten mit dem Telefonnetzwerk zu senden und zu empfangen und auf den globalen Pufferspeicher (210) durch direkten Speicherzugriff zuzugreifen, um Daten aus dem globalen Pufferspeicher (210) zu lesen und darein zu schreiben.
  5. Verfahren eines verteilten direkten Speicherzugriffs auf einen globalen Pufferspeicher (210), wobei das Verfahren Folgendes umfaßt: Bereitstellen mehrerer funktioneller Einheiten, die jeweils eine direkte Speicherzugriffssteuerung (203A-203N, 207, 215) aufweisen; Anfordern des Zugriffs auf einen Systembus (200) von mindestens einer der mehreren funktionellen Einheiten, um auf den globalen Pufferspeicher (210), der direkt mit dem Systembus verbunden ist, durch direkten Speicherzugriff zuzugreifen; Vermitteln des Zugriffs auf den Systembus (200) durch mindestens eine der mehreren funktionellen Einheiten; Erhalten des Zugriffs auf den Systembus (200) durch eine der mehreren funktionellen Einheiten; und Erstellen einer direkten Speicherzugriffsverbindung durch die eine der mehreren funktionellen Einheiten mit dem globalen Pufferspeicher (210) und Lesen von Daten aus oder Schreiben von Daten in Speicherstellen in dem globalen Pufferspeicher.
  6. Verfahren nach Anspruch 5, ferner umfassend Erneutes Abbilden eines seriellen Datenstroms in einen parallelen Datenstrom vor dem direkten Zugreifen auf den globalen Pufferspeicher (210) durch mindestens eine der mehreren funktionellen Einheiten.
  7. Verfahren nach Anspruch 5, ferner umfassend Erneutes Abbilden eines parallelen Datenstroms in einen seriellen Datenstrom nach dem direkten Zugreifen auf den globalen Pufferspeicher (210) durch die eine der mehreren funktionellen Einheiten.
  8. Verfahren nach einem der Ansprüche 5 bis 7, wobei die Schritte in einem System auf einem Chip (100) ausgeführt werden.
  9. Verfahren nach Anspruch 8, wobei das System auf einem Chip (100) ein Sprachübermittlungs-Paketsystem ist, das mit einem Paketnetzwerk auf einem Ende und einem Telefonnetzwerk auf einem entgegengesetzten Ende verknüpft ist.
DE60217884T 2001-09-07 2002-08-30 Verfahren und apparat für verteilten direktspeicherzugriff in einem system auf einem chip Expired - Lifetime DE60217884T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/949,461 US6874039B2 (en) 2000-09-08 2001-09-07 Method and apparatus for distributed direct memory access for systems on chip
US949461 2001-09-07
PCT/US2002/027642 WO2003023625A1 (en) 2001-09-07 2002-08-30 Method and apparatus for distributed direct memory access for systems on chip

Publications (2)

Publication Number Publication Date
DE60217884D1 DE60217884D1 (de) 2007-03-15
DE60217884T2 true DE60217884T2 (de) 2007-11-08

Family

ID=25489127

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60217884T Expired - Lifetime DE60217884T2 (de) 2001-09-07 2002-08-30 Verfahren und apparat für verteilten direktspeicherzugriff in einem system auf einem chip

Country Status (8)

Country Link
US (6) US6874039B2 (de)
EP (1) EP1430405B1 (de)
KR (1) KR100801763B1 (de)
CN (1) CN1552028B (de)
AT (1) ATE352814T1 (de)
DE (1) DE60217884T2 (de)
TW (1) TWI268426B (de)
WO (1) WO2003023625A1 (de)

Families Citing this family (174)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003593B2 (en) * 1997-12-17 2006-02-21 Src Computers, Inc. Computer system architecture and memory controller for close-coupling within a hybrid processing system utilizing an adaptive processor interface port
US6874039B2 (en) 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
US20020104011A1 (en) * 2001-02-01 2002-08-01 Bechtel Bwtx Idaho, Llc Systems and methods for employing opportunistic data transfer to create a dynamically mobile data communication system
JP2003150395A (ja) * 2001-11-15 2003-05-23 Nec Corp プロセッサとそのプログラム転送方法
WO2004006105A2 (en) * 2002-07-08 2004-01-15 Globespanvirata Incorporated Dma scheduling mechanism
US7958289B2 (en) 2002-08-08 2011-06-07 International Business Machines Corporation Method and system for storing memory compressed data onto memory compressed disks
US20040039835A1 (en) * 2002-08-21 2004-02-26 Intel Corporation Method and apparatus for transferring general purpose control information between processors
US7551909B1 (en) * 2002-08-29 2009-06-23 Silicon Image, Inc. CMOS transceiver with dual current path VCO
EP1570360B1 (de) * 2002-12-06 2011-02-09 Telecom Italia S.p.A. Dma-verfahren, entsprechende system und rechnerprogrammprodukt
ATE309577T1 (de) * 2002-12-26 2005-11-15 Cit Alcatel Datenverarbeitungsgerät
JP2004326180A (ja) * 2003-04-21 2004-11-18 Matsushita Electric Ind Co Ltd 集積回路、それを用いた画像入出力装置及び画像入出力方法
US7243178B2 (en) * 2003-05-16 2007-07-10 Intel Corporation Enable/disable claiming of a DMA request interrupt
US7200689B2 (en) * 2003-07-31 2007-04-03 International Business Machines Corporation Cacheable DMA
TWI220614B (en) * 2003-10-21 2004-08-21 Benq Corp Method and device for updating frame number and automatically generating frame boundary
US20050091432A1 (en) * 2003-10-28 2005-04-28 Palmchip Corporation Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
KR100524076B1 (ko) * 2003-11-13 2005-10-26 삼성전자주식회사 데이터 압축 및 복원 장치
JP2005165508A (ja) * 2003-12-01 2005-06-23 Renesas Technology Corp ダイレクトメモリアクセスコントローラ
KR101034493B1 (ko) * 2004-01-09 2011-05-17 삼성전자주식회사 화상 변환 장치, 화상 변환을 위한 직접 메모리 액세스장치 및 화상 변환을 지원하는 카메라 인터페이스
US7467238B2 (en) * 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
JP4405277B2 (ja) * 2004-02-16 2010-01-27 株式会社日立製作所 ディスク制御装置
CN100369023C (zh) * 2004-02-25 2008-02-13 中国科学院计算技术研究所 直接存储器访问传输装置及其方法
US7475168B2 (en) * 2004-03-11 2009-01-06 Sonics, Inc. Various methods and apparatus for width and burst conversion
US7543088B2 (en) * 2004-03-11 2009-06-02 Sonics, Inc. Various methods and apparatuses for width and burst conversion
US7657667B2 (en) * 2004-03-25 2010-02-02 International Business Machines Corporation Method to provide cache management commands for a DMA controller
US7320090B2 (en) * 2004-06-09 2008-01-15 International Business Machines Corporation Methods, systems, and media for generating a regression suite database
US7392330B2 (en) * 2004-07-02 2008-06-24 Mediatek Usa Inc. Memory access bandwidth allocation and latency control in a digital camera
US20060026308A1 (en) * 2004-07-29 2006-02-02 International Business Machines Corporation DMAC issue mechanism via streaming ID method
US9274586B2 (en) * 2004-09-08 2016-03-01 Cisco Technology, Inc. Intelligent memory interface
US7155554B2 (en) * 2004-11-02 2006-12-26 Sonics, Inc. Methods and apparatuses for generating a single request for block transactions over a communication fabric
US7277975B2 (en) * 2004-11-02 2007-10-02 Sonics, Inc. Methods and apparatuses for decoupling a request from one or more solicited responses
US8032676B2 (en) * 2004-11-02 2011-10-04 Sonics, Inc. Methods and apparatuses to manage bandwidth mismatches between a sending device and a receiving device
US20060125835A1 (en) * 2004-12-10 2006-06-15 Li Sha DMA latency compensation with scaling line buffer
KR100714096B1 (ko) * 2004-12-21 2007-05-02 한국전자통신연구원 온-칩 네트워크를 구비한 동영상 인코딩 장치 및 그 설계방법
US7499452B2 (en) * 2004-12-28 2009-03-03 International Business Machines Corporation Self-healing link sequence counts within a circular buffer
KR100621631B1 (ko) 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US7774512B2 (en) * 2005-02-08 2010-08-10 Sony Computer Entertainment Inc. Methods and apparatus for hybrid DMA queue and DMA table
KR100694095B1 (ko) * 2005-03-05 2007-03-12 삼성전자주식회사 버스 연결 방법 및 장치
JP2006268753A (ja) * 2005-03-25 2006-10-05 Fujitsu Ltd Dma回路及びコンピュータシステム
DE102005026436B4 (de) * 2005-06-08 2022-08-18 Austriamicrosystems Ag Schnittstellenanordnung, insbesondere für ein System-on-Chip, und deren Verwendung
CN101218569B (zh) * 2005-06-30 2011-07-13 飞思卡尔半导体公司 用于控制dma任务的执行的装置
CN101218570B (zh) * 2005-06-30 2010-05-26 飞思卡尔半导体公司 在直接存储器存取任务请求之间进行仲裁的装置和方法
DE602005023542D1 (de) * 2005-06-30 2010-10-21 Freescale Semiconductor Inc Einrichtung und verfahren zum ausführen einer dma-task
US7370135B2 (en) * 2005-11-21 2008-05-06 Intel Corporation Band configuration agent for link based computing system
US7768936B2 (en) * 2006-06-23 2010-08-03 At&T Intellectual Property I, L.P. Method and apparatus for transporting deterministic traffic in a gigabit passive optical network
US20080082715A1 (en) * 2006-09-29 2008-04-03 Honeywell International Inc. Data transfers over multiple data buses
US7587575B2 (en) * 2006-10-17 2009-09-08 International Business Machines Corporation Communicating with a memory registration enabled adapter using cached address translations
US7590817B2 (en) * 2006-10-17 2009-09-15 International Business Machines Corporation Communicating with an I/O device using a queue data structure and pre-translated addresses
US7617377B2 (en) * 2006-10-17 2009-11-10 International Business Machines Corporation Splitting endpoint address translation cache management responsibilities between a device driver and device driver services
US8769168B2 (en) * 2006-10-17 2014-07-01 International Business Machines Corporation Method for communicating with a network adapter using a queue data structure and cached address translations
US7506084B2 (en) * 2006-10-17 2009-03-17 International Business Machines Corporation Method for communicating with an I/O adapter using cached address translations
US7788437B2 (en) * 2006-10-27 2010-08-31 Hewlett-Packard Development Company, L.P. Computer system with network interface retransmit
US8868397B2 (en) * 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
US9178713B1 (en) * 2006-11-28 2015-11-03 Marvell International Ltd. Optical line termination in a passive optical network
JP4881140B2 (ja) * 2006-12-07 2012-02-22 キヤノン株式会社 データ転送装置、データ転送制御方法、およびデータ転送制御プログラム
US20080162836A1 (en) * 2006-12-29 2008-07-03 Wojciechowski Roy D Staggered interleaved memory access
KR100827287B1 (ko) 2006-12-29 2008-05-07 주식회사 태진인포텍 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법
KR101029074B1 (ko) * 2007-01-10 2011-04-18 삼성전자주식회사 호스트 컨트롤러에서의 디스크립터 추적 장치 및 그 추적방법
US7836143B2 (en) * 2007-04-25 2010-11-16 International Business Machines Corporation Message communications of particular message types between compute nodes using DMA shadow buffers
US8325633B2 (en) * 2007-04-26 2012-12-04 International Business Machines Corporation Remote direct memory access
US20080281999A1 (en) * 2007-05-07 2008-11-13 Mediatek Inc. Electronic system with direct memory access and method thereof
US7827024B2 (en) * 2007-05-09 2010-11-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US7966618B2 (en) * 2007-05-29 2011-06-21 International Business Machines Corporation Controlling data transfers from an origin compute node to a target compute node
US8037213B2 (en) * 2007-05-30 2011-10-11 International Business Machines Corporation Replenishing data descriptors in a DMA injection FIFO buffer
US7921428B2 (en) * 2007-06-18 2011-04-05 International Business Machines Corporation Multi-registration of software library resources
US8438320B2 (en) * 2007-06-25 2013-05-07 Sonics, Inc. Various methods and apparatus for address tiling and channel interleaving throughout the integrated system
US9292436B2 (en) * 2007-06-25 2016-03-22 Sonics, Inc. Various methods and apparatus to support transactions whose data address sequence within that transaction crosses an interleaved channel address boundary
US8108648B2 (en) * 2007-06-25 2012-01-31 Sonics, Inc. Various methods and apparatus for address tiling
US8468416B2 (en) 2007-06-26 2013-06-18 International Business Machines Corporation Combined group ECC protection and subgroup parity protection
US8010875B2 (en) 2007-06-26 2011-08-30 International Business Machines Corporation Error correcting code with chip kill capability and power saving enhancement
US8756350B2 (en) 2007-06-26 2014-06-17 International Business Machines Corporation Method and apparatus for efficiently tracking queue entries relative to a timestamp
US7793038B2 (en) 2007-06-26 2010-09-07 International Business Machines Corporation System and method for programmable bank selection for banked memory subsystems
US8103832B2 (en) * 2007-06-26 2012-01-24 International Business Machines Corporation Method and apparatus of prefetching streams of varying prefetch depth
US8458282B2 (en) 2007-06-26 2013-06-04 International Business Machines Corporation Extended write combining using a write continuation hint flag
US8032892B2 (en) * 2007-06-26 2011-10-04 International Business Machines Corporation Message passing with a limited number of DMA byte counters
US7886084B2 (en) * 2007-06-26 2011-02-08 International Business Machines Corporation Optimized collectives using a DMA on a parallel computer
US7827391B2 (en) 2007-06-26 2010-11-02 International Business Machines Corporation Method and apparatus for single-stepping coherence events in a multiprocessor system under software control
US8108738B2 (en) 2007-06-26 2012-01-31 International Business Machines Corporation Data eye monitor method and apparatus
US7984448B2 (en) * 2007-06-26 2011-07-19 International Business Machines Corporation Mechanism to support generic collective communication across a variety of programming models
US7802025B2 (en) 2007-06-26 2010-09-21 International Business Machines Corporation DMA engine for repeating communication patterns
US8509255B2 (en) 2007-06-26 2013-08-13 International Business Machines Corporation Hardware packet pacing using a DMA in a parallel computer
US8140925B2 (en) 2007-06-26 2012-03-20 International Business Machines Corporation Method and apparatus to debug an integrated circuit chip via synchronous clock stop and scan
US7694035B2 (en) * 2007-06-26 2010-04-06 International Business Machines Corporation DMA shared byte counters in a parallel computer
US8230433B2 (en) 2007-06-26 2012-07-24 International Business Machines Corporation Shared performance monitor in a multiprocessor system
US7877551B2 (en) * 2007-06-26 2011-01-25 International Business Machines Corporation Programmable partitioning for high-performance coherence domains in a multiprocessor system
US7624310B2 (en) 2007-07-11 2009-11-24 Micron Technology, Inc. System and method for initializing a memory system, and memory device and processor-based system using same
US8478834B2 (en) 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US8018951B2 (en) * 2007-07-12 2011-09-13 International Business Machines Corporation Pacing a data transfer operation between compute nodes on a parallel computer
US7805546B2 (en) * 2007-07-27 2010-09-28 International Business Machines Corporation Chaining direct memory access data transfer operations for compute nodes in a parallel computer
US8959172B2 (en) * 2007-07-27 2015-02-17 International Business Machines Corporation Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer
US20090031001A1 (en) * 2007-07-27 2009-01-29 Archer Charles J Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer
CN100547572C (zh) * 2007-10-22 2009-10-07 威盛电子股份有限公司 动态建立直接内存访问通路的方法及系统
US8261025B2 (en) 2007-11-12 2012-09-04 International Business Machines Corporation Software pipelining on a network on chip
US8526422B2 (en) 2007-11-27 2013-09-03 International Business Machines Corporation Network on chip with partitions
US7917703B2 (en) * 2007-12-13 2011-03-29 International Business Machines Corporation Network on chip that maintains cache coherency with invalidate commands
CN101482853B (zh) * 2008-01-10 2010-10-27 松翰科技股份有限公司 直接存储器访问系统及方法
US8473667B2 (en) 2008-01-11 2013-06-25 International Business Machines Corporation Network on chip that maintains cache coherency with invalidation messages
US8010750B2 (en) * 2008-01-17 2011-08-30 International Business Machines Corporation Network on chip that maintains cache coherency with invalidate commands
US8018466B2 (en) * 2008-02-12 2011-09-13 International Business Machines Corporation Graphics rendering on a network on chip
US7913010B2 (en) * 2008-02-15 2011-03-22 International Business Machines Corporation Network on chip with a low latency, high bandwidth application messaging interconnect
US8490110B2 (en) 2008-02-15 2013-07-16 International Business Machines Corporation Network on chip with a low latency, high bandwidth application messaging interconnect
KR101471114B1 (ko) * 2008-03-06 2014-12-10 삼성전자주식회사 프로세서 및 컴퓨팅 시스템
KR20090099734A (ko) 2008-03-18 2009-09-23 삼성전자주식회사 스트림 기반의 인터페이스 시스템 및 그 제어 방법
US9009350B2 (en) * 2008-04-01 2015-04-14 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US9225545B2 (en) * 2008-04-01 2015-12-29 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US20090245257A1 (en) * 2008-04-01 2009-10-01 International Business Machines Corporation Network On Chip
US8078850B2 (en) * 2008-04-24 2011-12-13 International Business Machines Corporation Branch prediction technique using instruction for resetting result table pointer
US20090271172A1 (en) * 2008-04-24 2009-10-29 International Business Machines Corporation Emulating A Computer Run Time Environment
US8423715B2 (en) 2008-05-01 2013-04-16 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US7958340B2 (en) 2008-05-09 2011-06-07 International Business Machines Corporation Monitoring software pipeline performance on a network on chip
US8214845B2 (en) 2008-05-09 2012-07-03 International Business Machines Corporation Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data
US8392664B2 (en) 2008-05-09 2013-03-05 International Business Machines Corporation Network on chip
US8494833B2 (en) 2008-05-09 2013-07-23 International Business Machines Corporation Emulating a computer run time environment
US7991978B2 (en) * 2008-05-09 2011-08-02 International Business Machines Corporation Network on chip with low latency, high bandwidth application messaging interconnects that abstract hardware inter-thread data communications into an architected state of a processor
US7861065B2 (en) * 2008-05-09 2010-12-28 International Business Machines Corporation Preferential dispatching of computer program instructions
US8020168B2 (en) 2008-05-09 2011-09-13 International Business Machines Corporation Dynamic virtual software pipelining on a network on chip
US8230179B2 (en) 2008-05-15 2012-07-24 International Business Machines Corporation Administering non-cacheable memory load instructions
US8040799B2 (en) * 2008-05-15 2011-10-18 International Business Machines Corporation Network on chip with minimum guaranteed bandwidth for virtual communications channels
US20090307408A1 (en) * 2008-06-09 2009-12-10 Rowan Nigel Naylor Peer-to-Peer Embedded System Communication Method and Apparatus
US8438578B2 (en) 2008-06-09 2013-05-07 International Business Machines Corporation Network on chip with an I/O accelerator
US8195884B2 (en) 2008-09-18 2012-06-05 International Business Machines Corporation Network on chip with caching restrictions for pages of computer memory
TWI385672B (zh) * 2008-11-05 2013-02-11 Lite On It Corp 儲存裝置之適應性多通道控制器及其方法
US8547971B1 (en) 2009-01-07 2013-10-01 Marvell Israel (M.I.S.L) Ltd. Multi-stage switching system
JP5287301B2 (ja) * 2009-01-30 2013-09-11 富士通株式会社 ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
JP2010211322A (ja) * 2009-03-06 2010-09-24 Renesas Electronics Corp ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法
US8358651B1 (en) 2009-09-21 2013-01-22 Marvell International Ltd. Switch device having a plurality of processing cores
US8544026B2 (en) 2010-02-09 2013-09-24 International Business Machines Corporation Processing data communications messages with input/output control blocks
US8972995B2 (en) 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8949328B2 (en) 2011-07-13 2015-02-03 International Business Machines Corporation Performing collective operations in a distributed processing system
CN103034598B (zh) * 2011-09-28 2015-09-09 安凯(广州)微电子技术有限公司 保存dma下行数据时写使能信号的处理方法及系统
CN102541780B (zh) * 2011-12-15 2014-10-22 苏州国芯科技有限公司 一种多数据流通道dma系统
US20130166795A1 (en) * 2011-12-23 2013-06-27 Stec, Inc. System and method for streaming data in flash memory applications
CN103176931B (zh) * 2011-12-26 2016-03-09 安凯(广州)微电子技术有限公司 一种改进的dma通信方法及装置
US8930962B2 (en) 2012-02-22 2015-01-06 International Business Machines Corporation Processing unexpected messages at a compute node of a parallel computer
US9026568B2 (en) 2012-03-30 2015-05-05 Altera Corporation Data compression for direct memory access transfers
US9514069B1 (en) 2012-05-24 2016-12-06 Schwegman, Lundberg & Woessner, P.A. Enhanced computer processor and memory management architecture
WO2014081457A1 (en) * 2012-11-21 2014-05-30 Coherent Logix Incorporated Processing system with interspersed processors dma-fifo
DE112013001361B4 (de) * 2013-03-15 2023-06-15 Tahoe Research, Ltd. System auf einem Chip, Verfahren, maschinenlesbares Medium und System für die Bereitstellung einer Snoop-Filterung zugeordnet mit einem Datenpuffer
US9471521B2 (en) 2013-05-15 2016-10-18 Stmicroelectronics S.R.L. Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
US9606803B2 (en) 2013-07-15 2017-03-28 Texas Instruments Incorporated Highly integrated scalable, flexible DSP megamodule architecture
US10203958B2 (en) 2013-07-15 2019-02-12 Texas Instruments Incorporated Streaming engine with stream metadata saving for context switching
US9053093B1 (en) * 2013-08-23 2015-06-09 Altera Corporation Modular direct memory access system
CN103593437A (zh) * 2013-11-14 2014-02-19 浪潮电子信息产业股份有限公司 一种基于dma的数据压缩芯片结构及其实现方法
US9886736B2 (en) 2014-01-20 2018-02-06 Nvidia Corporation Selectively killing trapped multi-process service clients sharing the same hardware context
KR102181441B1 (ko) 2014-04-15 2020-11-24 에스케이하이닉스 주식회사 복수의 기능 블록들을 포함하는 반도체 장치
KR101510862B1 (ko) 2014-04-17 2015-04-09 주식회사 텔레칩스 시스템온칩에서 상이한 도메인의 블록연결을 위한 단일채널 비동기 브리지 시스템
US10210114B2 (en) * 2014-08-01 2019-02-19 Universiti Teknologi Malaysia Interrupt-driven I/O arbiter for a microcomputer system
US10114770B2 (en) * 2014-08-01 2018-10-30 Universiti Teknologi Malaysia Homogenous device access method which removes physical device drivers in a computer operating system
US20160092118A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Memory write management in a computer system
US9684615B1 (en) 2015-01-08 2017-06-20 Altera Corporation Apparatus and methods for multiple-channel direct memory access
CN105991475B (zh) * 2015-02-27 2020-01-07 中兴通讯股份有限公司 报文接收方法、装置及中央处理器
DE102015104776B4 (de) * 2015-03-27 2023-08-31 Infineon Technologies Ag Verfahren und Vorrichtung zum Verarbeiten von Radarsignalen
EP3298500B1 (de) * 2015-05-22 2021-08-25 Hewlett-Packard Development Company, L.P. Datenkanalzuweisung
CN105116797A (zh) * 2015-07-31 2015-12-02 上海卫星工程研究所 多通道高速数据采编soc芯片
US9697320B2 (en) * 2015-09-24 2017-07-04 Qualcomm Incorporated Rectilinear macros having non-uniform channel spacing
US10078606B2 (en) * 2015-11-30 2018-09-18 Knuedge, Inc. DMA engine for transferring data in a network-on-a-chip processor
KR102466160B1 (ko) * 2016-01-08 2022-11-14 삼성전자주식회사 데이터의 루프백을 수행하는 시스템 온 칩과 집적 회로, 및 이들을 포함하는 모바일 장치
US10904150B1 (en) 2016-02-02 2021-01-26 Marvell Israel (M.I.S.L) Ltd. Distributed dynamic load balancing in network systems
DE102016205536A1 (de) * 2016-04-04 2017-10-05 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung für eine einen Arbeitsspeicher aufweisende Recheneinheit
DE102016211768A1 (de) * 2016-06-29 2018-01-04 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung und Betriebsverfahren hierfür
US10678545B2 (en) 2016-07-07 2020-06-09 Texas Instruments Incorporated Data processing apparatus having streaming engine with read and read/advance operand coding
US20180011709A1 (en) 2016-07-08 2018-01-11 Texas Instruments Incorporated Stream reference register with double vector and dual single vector operating modes
US9965278B1 (en) 2016-12-20 2018-05-08 Texas Instruments Incorporated Streaming engine with compressed encoding for loop circular buffer sizes
CN109240954A (zh) * 2017-07-10 2019-01-18 恩智浦美国有限公司 具有触发序列发生器的dma控制器
US10642535B2 (en) 2018-01-23 2020-05-05 International Business Machines Corporation Register access in a distributed memory buffer system
KR20190123984A (ko) 2018-04-25 2019-11-04 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN110083571B (zh) * 2019-03-27 2023-02-03 中国计量大学上虞高等研究院有限公司 一种分布式实时存储装置及其数据传输方法
FR3094507A1 (fr) 2019-03-29 2020-10-02 Stmicroelectronics (Grenoble 2) Sas Accès direct en mémoire
CN111400214B (zh) * 2020-02-27 2021-06-18 深圳震有科技股份有限公司 一种双核共用网口的实现方法、智能终端及存储介质
CN114661651A (zh) 2020-12-23 2022-06-24 富泰华工业(深圳)有限公司 数据存取方法以及系统
TWI766497B (zh) * 2020-12-23 2022-06-01 鴻海精密工業股份有限公司 資料存取方法及系統
KR20230016816A (ko) * 2021-07-27 2023-02-03 주식회사 세미파이브 시스템 온 칩에서 기능 블록 간의 데이터 송수신을 위한 인터페이스 방법 및 이를 이용하는 시스템 온 칩

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4099236A (en) * 1977-05-20 1978-07-04 Intel Corporation Slave microprocessor for operation with a master microprocessor and a direct memory access controller
JPS57154681A (en) * 1981-03-19 1982-09-24 Canon Electronics Inc Magnetic disk device
US4507732A (en) * 1981-10-05 1985-03-26 Burroughs Corporation I/O subsystem using slow devices
US4490785A (en) * 1982-05-07 1984-12-25 Digital Equipment Corporation Dual path bus structure for computer interconnection
US4701841A (en) * 1984-07-25 1987-10-20 Digital Equipment Corporation System for altering data transmission modes
CA1221068A (en) * 1986-01-14 1987-04-28 Richard Leduc Fire extinguishing system
GB2195038A (en) 1986-07-05 1988-03-23 Narayanaswamy D Jayaram A multi-microprocessor system with confederate processors
US4853846A (en) * 1986-07-29 1989-08-01 Intel Corporation Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors
US4779190A (en) * 1986-12-03 1988-10-18 Ncr Corporation Communication bus interface
US4782439A (en) * 1987-02-17 1988-11-01 Intel Corporation Direct memory access system for microcontroller
US4982321A (en) * 1987-10-23 1991-01-01 Honeywell Inc. Dual bus system
US5175826A (en) * 1988-05-26 1992-12-29 Ibm Corporation Delayed cache write enable circuit for a dual bus microcomputer system with an 80386 and 82385
JP2910303B2 (ja) * 1990-06-04 1999-06-23 株式会社日立製作所 情報処理装置
US5109517A (en) * 1990-10-09 1992-04-28 Ast Research, Inc. System for selectively controlling slots in an IBM-AT/NEC 9801 dual-compatible computer
EP0518488A1 (de) * 1991-06-12 1992-12-16 Advanced Micro Devices, Inc. Busschnittstelle und Verarbeitungssystem
US5369748A (en) * 1991-08-23 1994-11-29 Nexgen Microsystems Bus arbitration in a dual-bus architecture where one bus has relatively high latency
US5333274A (en) * 1991-10-15 1994-07-26 International Business Machines Corp. Error detection and recovery in a DMA controller
US5749092A (en) * 1993-03-18 1998-05-05 Intel Corporation Method and apparatus for using a direct memory access unit and a data cache unit in a microprocessor
US5794070A (en) * 1993-06-30 1998-08-11 Intel Corporation Method and apparatus for fast DMA transfer on an industry standard architecture (ISA) bus
US5751270A (en) * 1993-08-06 1998-05-12 Intel Corporation Method and apparatus for displaying an image using direct memory access
US5619729A (en) * 1993-12-02 1997-04-08 Intel Corporation Power management of DMA slaves with DMA traps
US5708849A (en) * 1994-01-26 1998-01-13 Intel Corporation Implementing scatter/gather operations in a direct memory access device on a personal computer
JP3308386B2 (ja) * 1994-04-25 2002-07-29 ファナック株式会社 制御システム
US5828903A (en) * 1994-09-30 1998-10-27 Intel Corporation System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer
US5644784A (en) * 1995-03-03 1997-07-01 Intel Corporation Linear list based DMA control structure
EP0732659B1 (de) * 1995-03-17 2001-08-08 LSI Logic Corporation (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung
US5729762A (en) * 1995-04-21 1998-03-17 Intel Corporation Input output controller having interface logic coupled to DMA controller and plurality of address lines for carrying control information to DMA agent
US5664197A (en) * 1995-04-21 1997-09-02 Intel Corporation Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller
US5890012A (en) * 1995-04-25 1999-03-30 Intel Corporation System for programming peripheral with address and direction information and sending the information through data bus or control line when DMA controller asserts data knowledge line
US5805842A (en) * 1995-09-26 1998-09-08 Intel Corporation Apparatus, system and method for supporting DMA transfers on a multiplexed bus
US5774680A (en) * 1995-12-11 1998-06-30 Compaq Computer Corporation Interfacing direct memory access devices to a non-ISA bus
US5761532A (en) * 1995-12-29 1998-06-02 Intel Corporation Direct memory access controller with interface configured to generate wait states
US5859990A (en) * 1995-12-29 1999-01-12 Intel Corporation System for transferring data segments from a first storage device to a second storage device using an alignment stage including even and odd temporary devices
US5870628A (en) * 1996-06-11 1999-02-09 International Business Machines Corporation Adaptor for receiving and processing asynchronous transfer mode cells within a computer network
US5802269A (en) * 1996-06-28 1998-09-01 Intel Corporation Method and apparatus for power management of distributed direct memory access (DDMA) devices
US5954809A (en) * 1996-07-19 1999-09-21 Compaq Computer Corporation Circuit for handling distributed arbitration in a computer system having multiple arbiters
US5898694A (en) * 1996-12-30 1999-04-27 Cabletron Systems, Inc. Method of round robin bus arbitration
US6449259B1 (en) * 1997-03-31 2002-09-10 Lucent Technologies Inc. Communication controller
US5944800A (en) * 1997-09-12 1999-08-31 Infineon Technologies Corporation Direct memory access unit having a definable plurality of transfer channels
US6157970A (en) * 1997-09-24 2000-12-05 Intel Corporation Direct memory access system using time-multiplexing for transferring address, data, and control and a separate control line for serially transmitting encoded DMA channel number
US6138503A (en) * 1997-10-16 2000-10-31 Raymax Technology, Inc. Scanning probe microscope system including removable probe sensor assembly
US6081851A (en) * 1997-12-15 2000-06-27 Intel Corporation Method and apparatus for programming a remote DMA engine residing on a first bus from a destination residing on a second bus
US6151654A (en) * 1997-12-24 2000-11-21 Intel Corporation Method and apparatus for encoded DMA acknowledges
US6108743A (en) * 1998-02-10 2000-08-22 Intel Corporation Technique for performing DMA including arbitration between a chained low priority DMA and high priority DMA occurring between two links in the chained low priority
US6192428B1 (en) * 1998-02-13 2001-02-20 Intel Corporation Method/apparatus for dynamically changing FIFO draining priority through asynchronous or isochronous DMA engines in response to packet type and predetermined high watermark being reached
US6122679A (en) * 1998-03-13 2000-09-19 Compaq Computer Corporation Master DMA controller with re-map engine for only spawning programming cycles to slave DMA controllers which do not match current programming cycle
US6182165B1 (en) * 1998-06-01 2001-01-30 Advanced Micro Devices, Inc. Staggered polling of buffer descriptors in a buffer descriptor ring direct memory access system
US6041400A (en) * 1998-10-26 2000-03-21 Sony Corporation Distributed extensible processing architecture for digital signal processing applications
US6260081B1 (en) * 1998-11-24 2001-07-10 Advanced Micro Devices, Inc. Direct memory access engine for supporting multiple virtual direct memory access channels
US6317804B1 (en) * 1998-11-30 2001-11-13 Philips Semiconductors Inc. Concurrent serial interconnect for integrating functional blocks in an integrated circuit device
US6430628B1 (en) * 1998-12-08 2002-08-06 Intel Corporation Method and apparatus for reducing direct memory access transfers using smart coalescing
US6275242B1 (en) * 1998-12-31 2001-08-14 Intel Corporation Method and apparatus for terminating direct memory access transfers from system memory to a video device
US6385671B1 (en) * 1999-03-29 2002-05-07 Intel Corporation Method/apparatus for flushing DMA transmit packet in FIFO when self-ID code generated by counter after bus reset is different than FIFO message self-ID field
US6782465B1 (en) 1999-10-20 2004-08-24 Infineon Technologies North America Corporation Linked list DMA descriptor architecture
US6418489B1 (en) * 1999-10-25 2002-07-09 Motorola, Inc. Direct memory access controller and method therefor
US6829254B1 (en) 1999-12-28 2004-12-07 Nokia Internet Communications, Inc. Method and apparatus for providing efficient application-level switching for multiplexed internet protocol media streams
US6622183B1 (en) * 2000-03-21 2003-09-16 Lsi Logic Corporation Data transmission buffer having frame counter feedback for re-transmitting aborted data frames
US6874039B2 (en) 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
US6622193B1 (en) 2000-11-16 2003-09-16 Sun Microsystems, Inc. Method and apparatus for synchronizing interrupts in a message passing queue oriented bus system
EP1570360B1 (de) * 2002-12-06 2011-02-09 Telecom Italia S.p.A. Dma-verfahren, entsprechende system und rechnerprogrammprodukt

Also Published As

Publication number Publication date
US20090070513A1 (en) 2009-03-12
EP1430405A1 (de) 2004-06-23
CN1552028A (zh) 2004-12-01
US7970961B2 (en) 2011-06-28
ATE352814T1 (de) 2007-02-15
US20110320672A1 (en) 2011-12-29
US7464197B2 (en) 2008-12-09
TWI268426B (en) 2006-12-11
WO2003023625A1 (en) 2003-03-20
US20130138877A1 (en) 2013-05-30
KR100801763B1 (ko) 2008-02-05
CN1552028B (zh) 2011-11-30
KR20040040458A (ko) 2004-05-12
DE60217884D1 (de) 2007-03-15
US20050216613A1 (en) 2005-09-29
US8386665B2 (en) 2013-02-26
US8719465B2 (en) 2014-05-06
EP1430405B1 (de) 2007-01-24
US6874039B2 (en) 2005-03-29
US7155541B2 (en) 2006-12-26
US20050125572A1 (en) 2005-06-09
US20020038393A1 (en) 2002-03-28

Similar Documents

Publication Publication Date Title
DE60217884T2 (de) Verfahren und apparat für verteilten direktspeicherzugriff in einem system auf einem chip
DE60033529T2 (de) Netzprozessor, speicherorganisation und verfahren
DE60212190T2 (de) Übermittlung von transaktionstypen zwischen agenten in einem computersystem durch verwendung von paketkopfteilen mit einem erweiterten typen-/längenerweiterungsfeld
DE112004002043B4 (de) Verfahren, System und Programm zum Aufbau eines Pakets
DE69432613T2 (de) Vorrichtung und Verfahren zur Kommunikation zwischen einem Rechner und einem periphären Gerät
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE112020000518T5 (de) Datenabtastwertetransportschema und zugehörige systeme, verfahren und vorrichtungen
DE102007029833A1 (de) Datenmodifikationsmodul
EP0692893A1 (de) Vorrichtung zur Vermittlung in digitalen Datennetzen für asynchronen Transfermodus
EP0185260B1 (de) Schnittstelle für direkten Nachrichtenaustausch
EP0141247B1 (de) Multiprozessor-Rechner, insbesondere Multiprozessor-Zentralsteuereinheit eines Fernsprech-Vermittlungssystems
DE60008662T2 (de) FIFO-System mit Schnittstelle mit veränderlicher Breite zum Hostprozessor
DE112017003018T5 (de) Technologien zum koordinieren des zugriffs auf datenpakete in einem speicher
DE102016216495A1 (de) Basic-CAN Controller
DE60224700T2 (de) Methode und verfahren für seitenband-leseantwortkopf in einem speicher-verbindungsnetzwerk
DE69735546T2 (de) Paketvermittelte leitweglenkung-architektur für mehrere gleichzeitige verbindungen
DE60115010T2 (de) Bus-brücke und system für mehrkanalübertragung von daten- und steuerinformationen
DE69736882T2 (de) Vereinfachte Schnittstelle für ein Zeitmultiplex-Fernmeldesystem
DE112011104443B4 (de) Verbinden eines externen Netzwerkcoprozessors mit einem Netzwerkprozessor-Paket-Parser
DE102019210552A1 (de) Fahrzeugelektronikeinheit mit einer physikalischen Netzwerkschnittstelle und mehreren, virtuelle Netzwerkschnittstellen aufweisenden virtuellen Maschinen sowie Datenkommunikationsverfahren
EP0528060B1 (de) Verfahren zur Durchführung von Ein-/Ausgabeoperationen in Datenverarbeitungssystemen
DE102023201766A1 (de) System und verfahren für gpu-initiierte kommunikation
DE102023201767A1 (de) System und verfahren für gpu-initiierte kommunikation
DE102006045903B4 (de) Prozessoranordnung mit einer Kopplungsvorrichtung zum Koppeln eines Speichers mit einem Prozessor, Datenverarbeitungsanordnung und Verfahren zum Übertragen von Daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition