DE10202758A1 - DMA-Controller sowie Verfahren und Computersystem mit einem solchen - Google Patents
DMA-Controller sowie Verfahren und Computersystem mit einem solchenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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/10—Methods 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
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
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)
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
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.
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.
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.
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.
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)
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)
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 |
-
2001
- 2001-01-27 GB GB0102173A patent/GB2371641B/en not_active Expired - Fee Related
-
2002
- 2002-01-24 DE DE10202758A patent/DE10202758A1/de not_active Ceased
- 2002-01-24 FR FR0200881A patent/FR2823875A1/fr not_active Withdrawn
- 2002-01-25 US US10/056,859 patent/US6725292B2/en not_active Expired - Fee Related
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 |