DE10202758A1 - DMA-Controller sowie Verfahren und Computersystem mit einem solchen - Google Patents

DMA-Controller sowie Verfahren und Computersystem mit einem solchen

Info

Publication number
DE10202758A1
DE10202758A1 DE10202758A DE10202758A DE10202758A1 DE 10202758 A1 DE10202758 A1 DE 10202758A1 DE 10202758 A DE10202758 A DE 10202758A DE 10202758 A DE10202758 A DE 10202758A DE 10202758 A1 DE10202758 A1 DE 10202758A1
Authority
DE
Germany
Prior art keywords
buffer
address
circulation
dma controller
block
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.)
Ceased
Application number
DE10202758A
Other languages
English (en)
Inventor
Anthony Mark Walker
Matthew Charles Buckley
Maison Llyod Worroll
Jonathan Evered
Daniel Fisher
David Aldridge
Andrew Watkins
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.)
Microsemi Semiconductor Ltd
Original Assignee
Zarlink Semiconductor Ltd
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 Zarlink Semiconductor Ltd filed Critical Zarlink Semiconductor Ltd
Publication of DE10202758A1 publication Critical patent/DE10202758A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory

Landscapes

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

Abstract

Es wird ein Verfahren zum Übertragen eines Datenblocks von einem ersten in einen zweiten Umlaufpuffer eines Computersystems angegeben. Bei diesem Verfahren wird der DMA-Controller über die Quell- und die Zieladresse für die Übertragung, die Größen der Umlaufpuffer und die Größe des zu übertragenden Datenblocks informiert. Im DMA-Controller werden jeweilige Basis- und Neuumlaufadressen der Umlaufpuffer identifiziert. Daten werden aus dem ersten Umlaufpuffer, ausgehend von der Quelladresse gelesen, wobei der Lesevorgang fortgesetzt wird, bis die Neuumlaufadresse erreicht ist, und es wird weiter ab der Pufferbasisadresse fortgesetzt, bis das Ende des Blocks erreicht ist. Daten werden ab der Zieladresse in den zweiten Umlaufpuffer eingeschrieben, es wird fortgesetzt, bis die Neuumlaufadresse erreicht ist, und es wird ab der Pufferbasisadresse fortgesetzt, bis das Ende des Blocks erreicht ist.

Description

Priorität: 27. Januar 2001, Großbritannien, 0102173.2 (P)
Die Erfindung betrifft einen DMA(Direct Memory Access)-Con­ troller für den Zugriff auf Umlaufpuffer für Speicherzwecke in einem Computersystem, ein Zugriffs- und ein Übertragungs­ verfahren zur Anwendung in einem Computersystem mit einem derartigen DMA-Controller sowie ein Computersystem mit einem solchen.
Herkömmliche Computersysteme beruhen auf der Kombination ei­ nes Prozessors (typischerweise eines Mikroprozessors) und internem oder externem Speicher. Um die Belastung des Mikro­ prozessors zu verringern wurden sogenannte DMA-Controller eingeführt. Diese sind typischerweise auf demselben Chip wie der Prozessor integriert.
DMA-Controller beinhalten eine fest verdrahtete Logik zum Ausführen von Speicherzugriffsoperationen. In der Fig. 1 ist eine Computersystem-Architektur mit einem DMA-Controller 1 dargestellt. Typischerweise speichert ein Mikroprozessor 2, um eine Zugriffsoperation betreffend einen Datenblock auszu­ führen, die folgenden Daten in jeweiligen Registern: die Start(oder "Quell"-)adresse des Speicherblocks, aus dem die Daten zu übertragen sind; die End(oder "Ziel"-)adresse des Speicherblocks, an den die Daten zu übertragen sind; und die Größe des zu übertragenden Datenblocks. Typischerweise be­ findet sich von der Quell- und der Zielstelle eine in einem Speicher 3, der sich auf demselben Chip wie der Prozessor und der DMA-Controller befindet, wobei sich die andere die­ ser Stellen in einem externen Speicher 4 befindet. Jedoch können eine oder beide der Stellen ein Prozessorregister oder ein auf einen externen Speicher abgebildetes Speicher­ element sein.
Warteschlangensysteme und Datenpuffer sind in einem Speicher häufig als Umlaufpuffer realisiert, um den Speicher effi­ zient zu nutzen. Ein 16 Bytes an Speicherraum belegender Um­ laufpuffer ist in der Fig. 2 dargestellt. Die Datensequenz in einem Umlaufpuffer kann von der Oberseite des Puffers bis zu seinem Startpunkt herumgeführt sein.
Das Ausführen einer DMA-Zugriffsoperation auf einen Umlauf­ puffer ist immer noch prozessorintensiv, da der Mikroprozes­ sor berechnen muss, ob das obere Ende des Puffers während irgendeiner vorgegebenen Zugriffsoperation erreicht wird, d. h., ob die für den Zugriff durch DMA verbleibende Block­ größe nicht um 1 dekrementiert werden muss, wenn das obere Ende des Herumführ(oder Neuumlauf-)zustands erreicht ist.
Für den 16-Byte-Umlaufpuffer der Fig. 1 sei angenommen, dass es der Mikroprozessor wünscht, auf einen 10 Bytes langen Da­ tenblock zuzugreifen und dass der Startpunkt aus der Über­ tragung die Speicheradresse 9 ist. Der Mikroprozessor führt, bevor er den DMA-Controller anweist, die Zugriffsoperation auszuführen, eine Prüfung dahingehend aus, ob während des Zugriffs der Neuumlaufzustand eintreten wird. Wenn ein Neu­ umlauf auftritt, muss der Mikroprozessor den DMA-Zugriff in zwei aufeinanderfolgende Übertragungsoperationen aufteilen. Während des ersten Zugriffs werden die Register des DMA-Con­ trollers wie folgt eingestellt:
Quelladresse: 9
Übertragungsgröße: 3
Dies sorgt dafür, dass auf die in der Fig. 2 angegebenen sieben Bytes zugegriffen wird. Beim zweiten Zugriff werden die Register des DMA-Controllers wie folgt eingestellt:
Quelladresse: 0
Übertragungsgröße: 3
Dies bewirkt, dass auf die drei in der Fig. 3 angegebenen Bytes zugegriffen wird.
Um zu erkennen, dass ein Neuumlaufzustand eintreten wird, kommt es im Mikroprozessor zu zusätzlichen Verarbeitungs­ overheads. Zusätzliche Verarbeitungsoverheads rühren auch davon her, dass zwei Quelladressen, zwei Zieladressen und zwei Übertragungsblockgrößen berechnet werden müssen.
Der Erfindung liegt die Aufgabe zugrunde, einen DMA-Control­ ler mit vereinfachten DMA-Operationen sowie ein Zugriffsver­ fahren, ein Übertragungsverfahren und ein Computersystem un­ ter Verwendung eines solchen Controllers zu schaffen.
Diese Aufgabe ist hinsichtlich des DMA-Controllers durch die Lehren der beigefügten Ansprüche 9 und 10, hinsichtlich des Zugriffsverfahrens durch die Lehre des Anspruchs 1, hin­ sichtlich des Übertragungsverfahrens durch die Lehre des An­ spruchs 8 und hinsichtlich des Computersystems durch die Lehre des Anspruchs 11 gelöst.
Beim erfindungsgemäßen Zugriffsverfahren wird die Start­ adresse des Blocks, auf den zuzugreifen ist, vorzugsweise durch den Prozessor in ein dazu vorhandenes Register des DMA-Controllers eingeschrieben. Die Größe des Umlaufpuffers kann ebenfalls in dieses Register eingeschrieben werden.
Vorzugsweise wird ein die Größe des Umlaufpuffers repräsen­ tierender Wert vom Prozessor an den DMA-Controller übertra­ gen. Dieser Wert kann eine eindeutige Größe einer Gruppe von Puffergrößen kennzeichnen. Zum Beispiel kann eine Gruppe von acht Puffergrößen in eindeutiger Weise durch einen 3-Bit- Wert gekennzeichnet werden.
Bevorzugter ist es, die Basisadresse jedes der in Gebrauch befindlichen Umlaufpuffer so zu spezifizieren, dass sie an einer einer Potenz von 2 entsprechenden Grenze liegt oder um einen vorbestimmten Abstand von einer solchen entfernt. Die­ se Architektur erlaubt es, die Basisadresse eines Umlaufpuf­ fers unter Verwendung bestimmter der höchstsignifikanten Bits einer Quell-/Zieladresse zu bestimmen, die einer Zu­ griffsanforderung auf diesen Puffer zugeordnet ist, und die restlichen geringstsignifikanten Bits auf 0 zu setzen. Die Anzahl der auf 0 gesetzten Bits entspricht der Größe des Um­ laufpuffers.
Beim erfindungsgemäßen Übertragungsverfahren gemäß dem An­ spruch 8 können die Schritte des Lesens und Schreibens gleichzeitig ausgeführt werden, wobei ein Wort aus dem ers­ ten Puffer gelesen wird und dieses Wort in den zweiten Puf­ fer eingeschrieben wird, bevor das nächste Wort aus dem ers­ ten Puffer gelesen wird. Alternativ können Daten in Unter­ blöcken, oder als gesamter Block, gelesen und geschrieben werden.
Für ein besseres Verständnis der Erfindung und um zu zeigen, wie diese realisiert werden kann, wird nun beispielhaft auf die beigefügten Zeichnungen Bezug genommen.
Fig. 1 veranschaulicht schematisch eine Computersystem-Ar­ chitektur mit einem DMA-Controller;
Fig. 2 veranschaulicht schematisch einen Umlaufpuffer, wobei die Positionen eines ersten DMA-Übertragungsblocks gekenn­ zeichnet sind;
Fig. 3 veranschaulicht schematisch den Umlaufpuffer der Fig. 2, wobei die Positionen eines zweiten DMA-Übertragungsblocks gekennzeichnet sind;
Fig. 4 ist eine Tabelle zum Veranschaulichen eines Mechanis­ mus zum Berechnen der Basisadresse eines Umlaufpuffers;
Fig. 5 veranschaulicht schematisch ein Neuumlaufszenarium in einem Umlaufpuffer; und
Fig. 6 veranschaulicht den Inhalt von Quell- und Zieladress­ puffern.
Unter Bezugnahme auf die Fig. 1 bis 3 wurde ein Computersys­ tem unter Verwendung eines DMA-Controllers für den Zugriff auf einen Umlaufpuffer beschrieben. Nun wird ein neues Ver­ fahren zum Betreiben eines DMA-Controllers beschrieben. Bei diesem ist es erforderlich, dass der Prozessor eine Anzahl zusätzlicher Felder in die Quell- und Zieladressregister des DMA-Controllers einschreibt. Das erste dieser Felder ist ein Feld NEUUMLAUF AKTIVIEREN, das eine Länge von 1 Bit auf­ weist. Dieses wirkt als Flag, um zu kennzeichnen, ob dieses Merkmal für die fragliche Speicherzugriffsoperation akti­ viert ist oder nicht (d. h., um zu kennzeichnen, ob der Speicherzugriff einen Umlaufpuffer oder einen linearen Spei­ cherblock betrifft). Es wird darauf hingewiesen, dass das Neuumlaufmerkmal für nur das Quell- oder nur das Zielregis­ ter, aber nicht für das andere, oder für beide aktiviert werden kann. Die folgende Erörterung nimmt das Letztere an.
Ein zweites neues Feld definiert die Größe des Quell-/Ziel­ puffers. Bei einer ersten Ausführungsform der Erfindung ist das zweite Feld ausreichend breit dafür, die Puffergröße in digitaler Form zu definieren. So ist z. B. ein 18 Bit brei­ tes Feld erforderlich, wenn die maximale Puffergröße 128 kByte beträgt. Ein drittes Feld, das ebenfalls vom Pro­ zessor in das Register eingeschrieben wird, ist dazu erfor­ derlich, die Basisadresse des fraglichen Umlaufpuffers zu spezifizieren.
Dann schreibt der Prozessor die Größe des übertragenden Da­ tenblocks in das Übertragungsregister ein. Ein Startflag dieses Registers wird ebenfalls auf 1 gesetzt, um den DMA- Controller zu triggern, mit der Übertragung zu beginnen. Der DMA-Controller berechnet die Anzahl der Bytes, auf die in jedem Umlaufpuffer zugegriffen (gelesen oder geschrieben) werden kann, bevor das obere Ende des Puffers erreicht ist, und auch die Anzahl der Bytes, auf die ab dem unteren Ende jedes Puffers zugegriffen werden muss, wenn einmal ein Neu­ umlauf auftritt.
Um die Größe des Felds zu verringern, das dazu erforderlich ist, die Pufferlänge zu spezifizieren, kann die Gruppe mög­ licher Puffergrößen unter Verwendung eines Codes fester Län­ ge codiert werden. Zum Beispiel könnte ein 3-Bit-Code dazu verwendet werden, eine der folgenden acht Puffergrößen zu kennzeichnen: 1k, 2k, 4k, 8k, 16k, 32k, 64k, 128k. Außerdem kann ein drittes Feld zum Spezifizieren der Basisadresse des Umlaufpuffers vorhanden sein.
Es wurde jedoch erkannt, dass dann, wenn die Basisadressen der in Gebrauch befindlichen Puffer Grenzen innerhalb des abgebildeten Adressenraums entsprechen, die einer Potenz von 2 entsprechen, ein einfacher Mechanismus dazu verwendet wer­ den kann, die Basisadresse aus der Quell- oder der Ziel­ adresse zu bestimmen. Dazu gehört das Einstellen der Anzahl der geringstsignifikanten Bits (LSB) der Quell/Ziel-Adresse auf 0, wobei diese Zahl der Größe des Umlaufpuffers ent­ spricht. Die Fig. 4 zeigt eine Tabelle, in der die erste Spalte die kennzeichnenden 3-Bit-Codes enthält, während die zweite Spalte die Puffergrößen zeigt, die auf diese 3-Bit- Codes abgebildet sind. Die dritte Spalte zeigt für jede Puf­ fergröße die Anzahl der LSB, die auf 0 gesetzt sind.
Um ein Beispiel zu liefern, sei angenommen, dass die DMA-Re­ gister wie folgt konfiguriert sind (wobei die Hexadezimalno­ tation für die Quell- und die Zieladresse verwendet ist):
Quelladresse: F23B; Puffergröße: 001 (2k)
Zieladresse: 6310; Puffergröße: 001 (2k)
Wenn der Neuumlaufzustand auftritt (gemäß der Fig. 4), wer­ den die unteren 12 Bits der Quell- und der Zieladresse auf 0 gesetzt, d. h.:
Basisquelladresse: F000
Basiszieladresse: 6000
Die Fig. 5 ist eine schematische Darstellung der Quelladres­ se bei einem Neuumlauf im Umlaufpuffer.
Die Fig. 6 veranschaulicht die Inhalte des Quell- und Ziel­ adresseregisters, wie sie sich aus dem oben beschriebenen Verfahren ergeben. Die Register sind 32-Bit-Register, und sie enthalten eine 26-Bit-Adresse, ein 3-Bit-Feld zum Kenn­ zeichnen der Puffergröße, ein Neuumlauf(Ein/Aus)-Bit und ein nicht benutztes Bit. Die Register beinhalten auch ein Bit (+/-), das anzeigt, ob inkrementierend oder dekrementierend auf den Puffer zuzugreifen ist.
Der Prozessor, der DMA-Controller und der mindestens eine Speicher, sind über Adress- und Datenbusse miteinander ver­ bunden.

Claims (11)

1. Verfahren zum Zugreifen auf einen Umlaufpuffer inner­ halb eines Speichers eines Computersystems, mit einem Pro­ zessor und einem DMA-Controller, das folgende Schritte auf­ weist:
  • - Mitteilen der Startadresse eines Speicherblocks, auf den zuzugreifen ist, der Größe des Speicherblocks und der Größe des Umlaufpuffers an den DMA-Controller;
  • - Identifizieren, im DMA-Controller, einer Basisadresse und einer Neuumlaufadresse des Umlaufpuffers; und
  • - Zugreifen auf den Umlaufpuffer ausgehend von der Start­ adresse, fortsetzend bis die Neuumlaufadresse erreicht ist, und Fortsetzen des Zugriffs ab der Puffer-Basisadresse, bis das Ende des Blocks erreicht ist.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Umlaufpuffer ein Quell- oder ein Zielpuffer für einen Datenübertragungsvorgang ist.
3. Verfahren nach einem der vorstehenden Ansprüche, da­ durch gekennzeichnet, dass die Startadresse des Blocks, auf den zuzugreifen ist, durch den Prozessor in ein dazu vorhan­ denes Register des DMA-Controllers eingeschrieben wird und auch die Größe des Umlaufpuffers in dasselbe Register einge­ schrieben wird.
4. Verfahren nach einem der vorstehenden Ansprüche, ge­ kennzeichnet durch das Übertragen eines die Größe des Um­ laufpuffers repräsentierenden Werts vom Prozessor an den DMA-Controller.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass der genannte Wert eine einzelne Größe einer Gruppe von Puf­ fergrößen eindeutig kennzeichnet.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Basisadresse jedes der in Gebrauch befindlichen Umlauf­ puffers so festgelegt wird, dass sie an einer einer Potenz von 2 entsprechenden Grenze, oder einen vorbestimmten Ab­ stand von einer solchen entfernt, liegt, wodurch die Basis­ adresse des Umlaufpuffers unter Verwendung der Startadresse bestimmt werden kann.
7. Verfahren nach Anspruch 6, gekennzeichnet durch das Be­ stimmen der Basisadresse des Umlaufpuffers durch Einstellen einer Anzahl der geringstsignifikanten Bits der Startadresse auf 0, wobei diese Anzahl der Größe des Umlaufpuffers ent­ spricht.
8. Verfahren zum Übertragen eines Datenblocks von einem ersten in einen zweiten Umlaufpuffer eines Computersystems mit einem Prozessor und einem DMA-Controller, mit den fol­ genden Schritten:
  • - Mitteilen der Quell- und der Zieladresse für die Übertra­ gung im ersten bzw. zweiten Puffer, der Größen der Umlauf­ puffer und der Größe des zu übertragenden Datenblocks an den DMA-Controller;
  • - Identifizieren der jeweiligen Basis- und Neuumlaufadresse der Umlaufpuffer im DMA-Controller;
  • - Lesen von Daten aus dem ersten Umlaufpuffer beginnend mit der Quelladresse, Fortsetzen bis die Neuumlaufadresse er­ reicht ist, und Fortsetzen ab der Pufferbasisadresse, bis das Ende des Blocks erreicht ist; und
  • - Schreiben von Daten in den zweiten Umlaufpuffer ab der Zieladresse, Fortsetzen bis die Neuumlaufadresse erreicht ist, un Fortsetzen ab der Pufferbasisadresse, bis das Ende das Blocks erreicht ist.
9. DMA-Controller für den Zugriff auf einen Umlaufpuffer innerhalb eines Speichers eines Computersystems, wobei die­ ser DMA-Controller Folgendes aufweist:
eine Eingangseinrichtung zum Empfangen eines Befehls von einem Prozessor für den Zugriff auf einen Block in einem Umlaufpuffer;
ein erstes Register zum Empfangen einer Startadresse in­ nerhalb des Puffers und eines die Größe des Umlaufpuffers definierenden Werts;
ein zweites Register zum Empfangen eines die Größe eines Blocks des Umlaufpuffers, auf den zuzugreifen ist, definie­ renden Werts;
eine Einrichtung zum Identifizieren einer Basisadresse und einer Neuumlaufadresse des Umlaufpuffers; und
eine Einrichtung zum Zugreifen auf den Umlaufpuffer ausge­ hend von der Startadresse, zum Fortsetzen bis die Neuumlauf­ adresse erreicht ist, und zum Fortsetzen des Zugriffs ab der Pufferbasisadresse, bis das Ende des Blocks erreicht ist.
10. DMA-Controller zum Übertragen eines Datenblocks von ei­ nem ersten in einen zweiten Umlaufpuffer eines Computersys­ tems, wobei dieser Umlaufpuffer Folgendes aufweist:
ein erstes Register zum Empfangen einer Quelladresse in­ nerhalb des ersten Puffers und eines die Größe des ersten Umlaufpuffers definierenden Werts;
ein zweites Register zum Empfangen einer Zieladresse in­ nerhalb des zweiten Puffers sowie eines die Größe des zwei­ ten Umlaufpuffers definierenden Werts;
ein drittes Register zum Empfangen eines die Größe des zu übertragenden Datenblocks definierenden Werts;
eine Einrichtung zum Identifizieren jeweiliger Basis- und Neuumlaufadressen der Umlaufpuffer; und
eine Einrichtung zum Lesen von Daten aus dem ersten Um­ laufpuffer ausgehend von der Quelladresse, zum Fortsetzen bis die Neuumlaufadresse erreicht ist, und zum Fortsetzen ab der Pufferbasisadresse, bis das Ende des Blocks erreicht ist, und zum Schreiben von Daten in den zweiten Umlaufpuffer ausgehend von der Zieladresse, zum Fortsetzen bis die Neuum­ laufadresse erreicht ist, und zum Fortsetzen ab der Puffer­ basisadresse, bis das Ende des Blocks erreicht ist.
11. Computersystem mit:
einem Prozessor;
einem DMA-Controller gemäß einem der Ansprüche 9 und 10;
einem Speicher und
Adress- und Datenbussen, die den Prozessor, den DMA-Con­ troller und den Speicher miteinander verbinden.
DE10202758A 2001-01-27 2002-01-24 DMA-Controller sowie Verfahren und Computersystem mit einem solchen Ceased DE10202758A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0102173A GB2371641B (en) 2001-01-27 2001-01-27 Direct memory access controller for circular buffers

Publications (1)

Publication Number Publication Date
DE10202758A1 true DE10202758A1 (de) 2002-08-14

Family

ID=9907652

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10202758A Ceased DE10202758A1 (de) 2001-01-27 2002-01-24 DMA-Controller sowie Verfahren und Computersystem mit einem solchen

Country Status (4)

Country Link
US (1) US6725292B2 (de)
DE (1) DE10202758A1 (de)
FR (1) FR2823875A1 (de)
GB (1) GB2371641B (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801991B2 (en) * 2001-12-21 2004-10-05 Agere Systems Inc. Method and apparatus for buffer partitioning without loss of data
US7120708B2 (en) * 2003-06-30 2006-10-10 Intel Corporation Readdressable virtual DMA control and status registers
NZ528325A (en) * 2003-09-18 2006-05-26 Endace Technology Ltd Data transfer management method, software and system
CN1332319C (zh) * 2003-12-22 2007-08-15 松下电器产业株式会社 存储系统控制方法
JP2005209163A (ja) * 2003-12-22 2005-08-04 Matsushita Electric Ind Co Ltd メモリシステム制御方法
TWI237806B (en) * 2004-11-03 2005-08-11 Sunplus Technology Co Ltd Audio decoding system with ring buffer and method thereof
US20080222370A1 (en) * 2007-03-09 2008-09-11 Texas Instruments Incorporated Method and apparatus for data stream management
FR2961923B1 (fr) * 2010-06-25 2013-12-20 Commissariat Energie Atomique Dispositif, chaine et procede de traitement de donnees, et programme d'ordinateur correspondant
US9965278B1 (en) * 2016-12-20 2018-05-08 Texas Instruments Incorporated Streaming engine with compressed encoding for loop circular buffer sizes
EP3567485B1 (de) 2018-05-09 2020-11-25 Nxp B.V. Schreibblock für einen empfänger
US11210248B2 (en) * 2019-12-20 2021-12-28 Advanced Micro Devices, Inc. System direct memory access engine offload
CN113900974B (zh) * 2021-12-07 2022-04-19 睿思芯科(深圳)技术有限公司 一种存储装置、数据存储方法及相关设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926322A (en) * 1987-08-03 1990-05-15 Compag Computer Corporation Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management
US5623621A (en) * 1990-11-02 1997-04-22 Analog Devices, Inc. Apparatus for generating target addresses within a circular buffer including a register for storing position and size of the circular buffer
JPH064458A (ja) * 1992-06-18 1994-01-14 Fuji Xerox Co Ltd Dma制御装置
US5687395A (en) * 1994-10-28 1997-11-11 Hewlett-Packard Company Main memory buffer for low cost / high performance input/output of data in a computer system
US6101329A (en) * 1997-02-18 2000-08-08 Lsi Logic Corporation System for comparing counter blocks and flag registers to determine whether FIFO buffer can send or receive data
JP3789583B2 (ja) * 1997-02-19 2006-06-28 株式会社ルネサステクノロジ データ処理装置
GB9802097D0 (en) * 1998-01-30 1998-03-25 Sgs Thomson Microelectronics DMA controller
US6134607A (en) * 1998-04-03 2000-10-17 Avid Technology, Inc. Method and apparatus for controlling data flow between devices connected by a memory
US6112267A (en) * 1998-05-28 2000-08-29 Digital Equipment Corporation Hierarchical ring buffers for buffering data between processor and I/O device permitting data writes by processor and data reads by I/O device simultaneously directed at different buffers at different levels
US6526451B2 (en) * 1998-09-30 2003-02-25 Stmicroelectronics, Inc. Method and network device for creating circular queue structures in shared memory
US6363470B1 (en) * 1998-10-06 2002-03-26 Texas Instruments Incorporated Circular buffer management
US6314478B1 (en) * 1998-12-29 2001-11-06 Nec America, Inc. System for accessing a space appended to a circular queue after traversing an end of the queue and upon completion copying data back to the queue
JP2001005636A (ja) * 1999-06-25 2001-01-12 Nec Eng Ltd バッファメモリ制御回路
US6327249B1 (en) * 1999-08-04 2001-12-04 Ess Technology, Inc Data communication device
EP1085719A2 (de) * 1999-09-15 2001-03-21 Koninklijke Philips Electronics N.V. Benutzung der Puffergrösse-Maske in Verbindung mit Adressezeiger zum Erkennen von Puffervoll- und Pufferrücksatzbedingungen in einem CAN Mikrokontroller, der einen rekonfigurierbaren Nachrichtenpuffer benutzt

Also Published As

Publication number Publication date
GB0102173D0 (en) 2001-03-14
US6725292B2 (en) 2004-04-20
GB2371641B (en) 2004-10-06
FR2823875A1 (fr) 2002-10-25
GB2371641A (en) 2002-07-31
US20030007396A1 (en) 2003-01-09

Similar Documents

Publication Publication Date Title
DE60019148T2 (de) Dma-deskriptor-architektur mit verknüpfter liste
DE3607889C2 (de)
DE2350884C2 (de) Adreßumsetzungseinheit
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE69630126T2 (de) Historische zustandinformation verwendendes entscheidungsprotokoll für zugriff auf ein geteiltes speichergebiet
DE69822221T2 (de) Umleitung von interruptzielen unterstützende transaktionen sowie niveauabhängigeinterruptsemantik
DE602005002691T2 (de) Verfahren zur Programmierung einer System auf Chip DMA Steuerung, sowie ein System auf Chip dafür.
DE3224034A1 (de) Mehrprozessorensystem
DE2813128A1 (de) Mikroprogrammspeicher
DE2556661A1 (de) Steuerschaltung mit adressenerweiterung
DE3741850A1 (de) Ausfuehrungseinheit fuer einen i/o-prozessor
DE10202758A1 (de) DMA-Controller sowie Verfahren und Computersystem mit einem solchen
DE602004010399T2 (de) Neuadressierbare virtuelle dma-steuer und statusregister
DE60006007T2 (de) Verfahren und gerät zur kombinierten umordnung von transaktionen und pufferverwaltung
DE2718551A1 (de) Adressenumsetzvorrichtung in einer datenverarbeitungsvorrichtung
DE2758829A1 (de) Multiprozessor-datenverarbeitungssystem
DE2926322A1 (de) Speicher-subsystem
DE3911721C2 (de)
DE3338329C2 (de)
DE4225611A1 (de) System zum Verbinden einer IC-Speicherkarte mit einer zentralen Verarbeitungseinheit eines Computers
DE3932695A1 (de) Datenverarbeitungssystem vom mehrfach virtuellen adressraum-typ
DE2458259A1 (de) Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen
EP0111161B1 (de) Vorrichtung zur Mikrobefehls-Bereitstellung für mindestens zwei unabhängig arbeitende Funktionseinheiten in einem integrierten, mikroprogrammierten elektronischen Baustein und Verfahren zu ihrem Betrieb
DE3235264C2 (de)
DE2717700C2 (de) Speicherzugriffsanordnung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 1328

8131 Rejection