DE112013001213T5 - Datentransfereinrichtung, Datentransferverfahren und Datentransferprogramm - Google Patents

Datentransfereinrichtung, Datentransferverfahren und Datentransferprogramm Download PDF

Info

Publication number
DE112013001213T5
DE112013001213T5 DE112013001213.8T DE112013001213T DE112013001213T5 DE 112013001213 T5 DE112013001213 T5 DE 112013001213T5 DE 112013001213 T DE112013001213 T DE 112013001213T DE 112013001213 T5 DE112013001213 T5 DE 112013001213T5
Authority
DE
Germany
Prior art keywords
read
data
write
transfer
buffer
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.)
Withdrawn
Application number
DE112013001213.8T
Other languages
English (en)
Inventor
c/o Mitsubishi Electric Corporat Yamamoto Kanako
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112013001213T5 publication Critical patent/DE112013001213T5/de
Withdrawn legal-status Critical Current

Links

Images

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/08Methods 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, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
    • G06F5/085Methods 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, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register in which the data is recirculated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

Ein Ziel der vorliegenden Erfindung ist es, ein Auftreten von Datenzerstörung zu verhindern, wenn ein Transferquellbereich und ein Transferzielbereich von Daten miteinander überlappen und sogar wenn ein Transfer unter Verwendung einer Burst-Transfer-Funktion ausgeführt wird. Die von dem Transferquellbereich gelesenen Daten werden temporär in einen Ringpuffer geschrieben, und dann werden die in den Ringpuffer geschriebenen Daten in den Transferquellbereich geschrieben. In diesem Fall wird ein Lesen der Daten von dem Ringpuffer basierend auf einem Größenverhältnis zwischen der Anzahl von Umläufen, welche durch ein Schreiben der Daten in den Ringpuffer erzeugt wird, und der Anzahl von Umläufen, welche durch ein Lesen der Daten von dem Ringpuffer erzeugt wird, gesteuert.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf eine Datentransfertechnik zum Transferieren von in einem Transferquellbereich gespeicherten Daten zu einem Transferzielbereich.
  • Stand der Technik
  • Unter Datentransfer-Techniken wird eine Technik bereitgestellt, welche als DMA(Speicherdirektzugriff)-Transfer bezeichnet wird.
  • In dem DMA-Transfer stellt eine CPU (Zentraleinheit) zuerst DMA-Informationen, wie eine Datentransferquell-Adresse, eine Datentransferziel-Adresse, eine für den Transfer notwendige Datentransfer-Größe in ein Register in einer DMA-Transfer-Steuereinrichtung ein. Dann, wenn die CPU an die DMA-Transfer-Steuereinrichtung den Beginn des Transfers anweist, führt die DMA-Transfer-Steuereinrichtung einen Transferprozess gemäß der in das Register eingestellten DMA-Informationen aus. Die DMA-Transfer-Steuereinrichtung erklärt an die CPU eine DMA-Transfer-Fertigstellungsunterbrechung, wenn der Transfer von Daten, welcher der in das Register eingestellten Transfer-Größe entspricht, fertiggestellt ist. Wenn die CPU die DMA-Transfer-Fertigstellungsunterbrechung feststellt, liest die CPU die Informationen in dem Register der DMA-Transfer-Steuereinrichtung, um ein Ergebnis oder einen Status des DMA-Transfers zu überprüfen.
  • Es ist nicht notwendig, eine Transfersteuerung durch die CPU während der Ausführung des Transferprozesses durch die DMA-Transfer-Steuereinrichtung auszuführen. Folglich kann der Datentransfer in dem DMA-Transfer mit größerer Geschwindigkeit ausgeführt werden als in einem Fall, wo der Datentransfer über die CPU durchgeführt wird. Weiterhin kann eine Last auf der CPU in dem DMA-Transfer reduziert werden.
  • Im Allgemeinen wird in dem DMA-Transfer ein Lesen von für jede eingestellte Größe (Einheitsbetrag) notwendigen Daten durchgeführt, und ein anschließendes Schreiben der Daten wird ausgeführt. Da eine Zeitvorgabe zum Starten des Schreibens nach Fertigstellung des Lesens ist, ist die Transfer-Effizienz in einem Transfer zu einem Gerät mit einer großen Latenzzeit nicht gut.
  • Es wird eine DMA-Transfer-Steuereinheit bereitgestellt, welche einen AXI(Advanced eXtensible Interface)-Bus verwendet.
  • Der AXI-Bus beinhaltet einen Nur-Lese-Bus und einen Nur-Schreib-Bus, so dass eine Datenerfassung von einem Datentransferquellbereich unter Verwendung des Nur-Lese-Busses und ein Datentransfer zu einem Datentransferzielbereich unter Verwendung des Nur-Schreib-Busses parallel ausgeführt werden kann.
  • Der AXI-Bus beinhaltet eine Burst-Transfer-Funktion. Die Burst-Transfer-Funktion ist eine Funktion, bei der eine Vielzahl von Einheitsbeträgen von gelesenen Daten durch eine einmalige Lese-Aufforderung erhalten werden kann, und eine Vielzahl von Einheitsbeträgen von Schreibungen durch eine einmalige Schreib-Aufforderung ausgeführt werden kann.
  • Die DMA-Transfer-Steuereinrichtung, die den AXI-Bus verwendet, kann einen Transfer mit hoher Geschwindigkeit unter Verwendung der Nur-Lese/Nur-Schreib-Busse und der Burst-Transfer-Funktion durchführen.
  • Zitatliste
  • Patentliteratur
    • Patentdokument 1: JP H10-116245
    • Patentdokument 2: JP 2008-83911
  • Zusammenfassung der Erfindung
  • Technisches Problem
  • Wenn ein Transferquellbereich und ein Transferzielbereich von Daten in dem DMA-Transfer miteinander überlappen, kann eine Datenzerstörung auftreten. Besonders wenn der Transfer unter Verwendung der Burst-Transfer-Funktion durchgeführt wird, ist es schwierig, eine Datenzerstörung zu verhindern.
  • Ein Ziel der vorliegenden Erfindung ist es, ein Auftreten von Datenzerstörung zu verhindern, wenn ein Transferquellbereich und ein Transferzielbereich von Daten miteinander überlappen. Insbesondere ist es ein Ziel der vorliegenden Erfindung, ein Auftreten von Datenzerstörung zu verhindern, sogar wenn der Transfer unter Verwendung einer Burst-Transfer-Funktion durchgeführt wird.
  • Lösung des Problems
  • Eine Datentransfereinrichtung gemäß der vorliegenden Erfindung ist eine Datentransfereinrichtung, die in einem Transferquellbereich gespeicherte Daten zu einem Transferzielbereich transferiert. Die Datentransfereinrichtung kann beinhalten:
    eine Transferquell-Lesesteuereinheit, die einen Lesebefehl zum Lesen der in dem Transferquell-Bereich gespeicherten Daten ausgibt;
    eine Puffer-Schreibsteuereinheit, die die Daten, welche durch den Lesebefehl gelesen worden sind, welcher von der Transferquell-Lesesteuereinheit ausgegeben worden ist, erhält, und die Daten in einen Ringpuffer schreibt;
    eine Puffer-Lesesteuereinheit, welche die von der Puffer-Schreibsteuereinheit geschriebenen Daten aus dem Ringpuffer liest und die Daten zu dem Transferzielbereich überträgt;
    eine Transferziel-Schreibsteuereinheit, die einen Schreibbefehl zum Schreiben der von der Puffer-Lesesteuereinheit zu dem Transferzielbereich übertragenen Daten in den Transferzielbereich ausgibt;
    eine Schreibzyklus-Zähleinheit, die die Anzahl von Umläufen von der Puffer-Schreibsteuereinheit zählt;
    eine Lesezyklus-Zähleinheit, die die Anzahl von Umläufen von der Puffer-Lesesteuereinheit zählt; und
    eine datenzerstörungsfreie Steuereinheit die bestimmt, ob ein Schreiben der Daten in den Transferzielbereich erlaubt werden soll oder nicht basierend auf einem Größenverhältnis zwischen der von der Schreibzyklus-Zähleinheit gezählten Anzahl und der von der Lesezyklus-Zähleinheit gezählten Anzahl;
    wobei die Puffer-Lesesteuereinheit die Daten von dem Ringpuffer liest, wenn die datenzerstörungsfreie Steuereinheit bestimmt, ein Schreiben zu erlauben; und
    wobei, wenn die datenzerstörungsfreie Steuereinheit bestimmt, ein Schreiben zu erlauben, gibt die Transferziel-Schreibsteuereinheit den Schreibbefehl aus, um die von der Puffer-Lesesteuereinheit an den Transferzielbereich übertragenen Daten in den Transferzielbereich zu schreiben.
  • Vorteilhafte Effekte der Erfindung
  • Gemäß der Datentransfereinrichtung der vorliegenden Erfindung kann ein Auftreten von Datenzerstörung durch Abstimmen einer Zeitvorgabe zum Lesen von Daten von einem Pufferbereich verhindert werden.
  • Kurze Beschreibung der Zeichnungen
  • [1] ist eine erläuternde Darstellung, wenn eine Datenzerstörung auftritt.
  • [2] ist eine erläuternde Darstellung, wenn eine Datenzerstörung auftritt.
  • [3] ist eine Darstellung, welche Reihenfolgen erläutert, in welchen Datentransfers ausgeführt werden, wenn eine Burst-Transfer-Funktion verwendet wird.
  • [4] ist eine Darstellung, welche eine Konfiguration eines DMA-Transfersystems 10 gemäß eines ersten Ausführungsbeispiels zeigt.
  • [5] ist eine Darstellung, welche eine Konfiguration einer DMA-Transfer-Steuereinrichtung 100 gemäß dem ersten Ausführungsbeispiel zeigt.
  • [6] ist eine Darstellung, welche eine Konfiguration einer datenzerstörungsfreien Steuereinheit 160 gemäß dem ersten Ausführungsbeispiel zeigt.
  • [7] ist eine Darstellung, welche eine Konfiguration einer Puffer-Schreibzyklus-Zähleinheit 170 gemäß dem ersten Ausführungsbeispiel zeigt.
  • [8] ist eine Darstellung, welche eine Konfiguration einer Pufferesezykluszähleinheit 180 gemäß dem ersten Ausführungsbeispiel zeigt.
  • [9] ist ein Flussdiagramm, welches Arbeitsvorgänge der gesamten DMA-Transfer-Steuereinrichtung 100 gemäß dem ersten Ausführungsbeispiel zeigt.
  • [10] ist ein Flussdiagramm, welches Arbeitsvorgänge einer Transferquell-Lesesteuereinheit 110 gemäß dem ersten Ausführungsbeispiel zeigt.
  • [11] ist ein Flussdiagramm, welches Arbeitsvorgänge einer Puffer-Schreibsteuereinheit 120 gemäß dem ersten Ausführungsbeispiel zeigt.
  • [12] ist ein Flussdiagramm, welches Arbeitsvorgänge einer Puffer-Lesesteuereinheit 140 zeigt.
  • [13] ist ein Flussdiagramm, welches Arbeitsvorgänge einer Transferziel-Schreibsteuereinheit 150 gemäß dem ersten Ausführungsbeispiel zeigt.
  • [14] ist ein Flussdiagramm, welches Arbeitsvorgänge der datenzerstörungsfreien Steuereinheit 160 gemäß dem ersten Ausführungsbeispiel zeigt.
  • [15] ist ein Flussdiagramm, welches Arbeitsvorgänge der Puffer-Schreibzyklus-Zähleinheit 170 gemäß dem ersten Ausführungsbeispiel zeigt.
  • [16] ist ein Flussdiagramm, welches Arbeitsvorgänge der Puffer-Lesezyklus-Zähleinheit 180 gemäß dem ersten Ausführungsbeispiel zeigt.
  • [17] ist eine Darstellung (1-1), welche eine Änderung in Daten während eines DMA-Transfers zeigt.
  • [18] ist eine Darstellung (1-2), welche eine Änderung in den Daten während des DMA-Transfers zeigt.
  • [19] ist eine Darstellung (1-3), welche eine Änderung in den Daten während des DMA-Transfers zeigt.
  • [20] ist eine Darstellung (1-4), welche eine Änderung in den Daten während des DMA-Transfers zeigt.
  • [21] ist eine Darstellung (1-5), welche eine Änderung in den Daten während des DMA-Transfers zeigt.
  • [22] ist eine Darstellung (2-1), welche eine Änderung in Daten während des DMA-Transfers zeigt.
  • [23] ist eine Darstellung (2-2), welche eine Änderung in den Daten während des DMA-Transfers zeigt.
  • [24] ist eine Darstellung (2-3), welche eine Änderung in den Daten während des DMA-Transfers zeigt.
  • [25] ist eine Darstellung (2-4), welche eine Änderung in den Daten während des DMA-Transfers zeigt.
  • [26] ist eine Darstellung (2-5), welche eine Änderung in den Daten während des DMA-Transfers zeigt.
  • [27] ist eine Darstellung (3-1), welche eine Änderung in Daten während des DMA-Transfers zeigt.
  • [28] ist eine Darstellung (3-2), welche eine Änderung in den Daten während des DMA-Transfers zeigt.
  • [29] ist eine Darstellung (3-3), welche eine Änderung in den Daten während des DMA-Transfers zeigt.
  • [30] ist eine Darstellung (3-4), welche eine Änderung in den Daten während des DMA-Transfers zeigt.
  • [31] ist eine Darstellung (3-5), welche eine Änderung in den Daten während des DMA-Transfers zeigt.
  • [32] ist eine Darstellung, welche eine Konfiguration der datenzerstörungsfreien Steuereinheit 160 gemäß einem zweiten Ausführungsbeispiel zeigt.
  • [33] ist ein Flussdiagramm, welches Arbeitsvorgänge der gesamten DMA-Transfer-Steuereinrichtung 100 gemäß dem zweiten Ausführungsbeispiel zeigt.
  • Beschreibung von Ausführungsbeispielen
  • Erstes Ausführungsbeispiel
  • 1 und 2 sind jeweils eine erläuternde Darstellung, wenn eine Datenzerstörung auftritt. Insbesondere ist 1 die erläuternde Darstellung, wenn ein Transferquellbereich und ein Transferzielbereich von Daten in einer Vorwärtsrichtung verschoben sind. 2 ist die erläuternde Darstellung, wenn ein Transferquellbereich und ein Transferzielbereich von Daten in einer Rückwärtsrichtung verschoben sind.
  • Basierend auf 1 erfolgt eine Beschreibung über einen Fall, in dem der Transferquellbereich und der Transferzielbereich der Daten in der Vorwärtsrichtung verschoben sind, während der Transferquellbereich und der Transferzielbereich der Daten teilweise miteinander überlappen. Wenn der Adresswert einer Start-Adresse für den Transferquellbereich kleiner ist als der Adresswert einer Start-Adresse für den Transferzielbereich, sind der Transferquellbereich und der Transferzielbereich in der Vorwärtsrichtung verschoben.
  • Bezugnehmend auf 1 sind der Transferquellbereich und der Transferzielbereich Bereiche in einem gleichen Gerät mit einem zwischen dem Transferquellbereich und dem Transferzielbereich überlappenden Bereich B. Weiterhin, bezugnehmend auf 1, ist der Adresswert einer Start-Adresse für einen Bereich A, welches die Start-Adresse für den Transferquellbereich ist, kleiner als der Adresswert einer Start-Adresse für den Bereich B, welches die Start-Adresse für den Transferzielbereich ist. Der Transferquellbereich und der Transferzielbereich sind daher in der Vorwärtsrichtung verschoben.
  • Wenn ein Datentransfer in diesem Fall fortlaufend in der ansteigenden Richtung (inkrementelle Richtung) von Adresswerten ausgeführt wird, werden Daten in dem Bereich A zuerst in den Bereich B geschrieben. Dann werden die Daten in dem Bereich B in einen Bereich C geschrieben. In diesem Fall, bevor die Daten in dem Bereich B in den Bereich C geschrieben werden, werden die Daten in dem Bereich A in den Bereich B geschrieben. Also werden ursprünglich in dem Bereich B gespeicherte Daten zerstört.
  • Dann wird der Datentransfer in diesem Fall fortlaufend in der absteigenden Richtung (dekrementelle Richtung) von Adresswerten ausgeführt. Dann werden die Daten im Bereich B zuerst in den Bereich C geschrieben. Die Daten in dem Bereich A werden anschließend in den Bereich B geschrieben. Folglich kann der Transfer ohne Zerstörung der Daten ausgeführt werden.
  • Basierend auf 2 erfolgt eine Beschreibung über einen Fall, wo der Transferquellbereich und der Transferzielbereich der Daten in der Rückwärtsrichtung verschoben sind, während der Transferquellbereich und der Transferzielbereich der Daten teilweise miteinander überlappen. Wenn der Adresswert einer Start-Adresse für den Transferquellbereich größer ist als der Adresswert einer Start-Adresse für den Transferzielbereich, sind der Transferquellbereich und der Transferzielbereich in der Rückwärtsrichtung verschoben.
  • Ebenfalls bezugnehmend auf 2 sind der Transferquellbereich und der Transferzielbereich Bereiche in dem gleichen Gerät mit dem Bereich B überlappend zwischen dem Transferquellbereich und dem Transferzielbereich wie in 1. Bezugnehmend auf 2 ist der Adresswert einer Start-Adresse für den Bereich B, welches die Start-Adresse für den Transferquellbereich ist, jedoch größer als der Adresswert einer Start-Adresse für den Bereich A, welches die Start-Adresse für den Transferzielbereich ist. Der Transferquellbereich und der Transferzielbereich sind daher in der Rückwärtsrichtung verschoben.
  • Wenn ein Datentransfer in diesem Fall fortlaufend in der absteigenden Richtung (dekrementelle Richtung) von Adresswerten ausgeführt wird, werden Daten im Bereich C zuerst in den Bereich B geschrieben. Dann werden die Daten in dem Bereich B in den Bereich A geschrieben. In diesem Fall, bevor die Daten in dem Bereich B in den Bereich A geschrieben werden, werden die Daten in dem Bereich C in den Bereich B geschrieben. Also werden ursprünglich in dem Bereich B gespeicherte Daten zerstört.
  • Dann wird der Datentransfer in diesem Fall fortlaufend in der aufsteigenden Richtung (inkrementelle Richtung) der Adresswerte ausgeführt. Dann werden die Daten im Bereich B zuerst in den Bereich A geschrieben. Die Daten in dem Bereich C werden anschließend in den Bereich B geschrieben. Folglich kann der Transfer ohne Zerstörung der Daten ausgeführt werden.
  • Kurz gesagt, wenn der Transferquellbereich und der Transferzielbereich in der Vorwärtsrichtung verschoben sind und der dekrementelle Transfer zum fortlaufenden Transferieren der Daten in der absteigenden Richtung der Adresswerte ausgeführt wird, tritt eine Datenzerstörung nicht auf. Andererseits, wenn der Transferquellbereich und der Transferzielbereich in der Rückwärtsrichtung verschoben sind und der inkrementelle Transfer zum fortlaufenden Transferieren der Daten in der aufsteigenden Richtung der Adresswerte ausgeführt wird, tritt eine Datenzerstörung nicht auf.
  • 3 ist eine Darstellung, welche Reihenfolgen erläutert, in welchen Datentransfers ausgeführt werden, wenn eine Burst-Transfer-Funktion verwendet wird. 3 zeigt einen Fall, in dem die Datentransfers in der dekrementellen Richtung unter Verwendung der Burst-Transfer-Funktion ausgeführt werden.
  • In einem gewöhnlichen Datentransfer kann nur ein Einheitsbetrag von Daten durch eine einmalige Lese-/Schreib-Aufforderung transferiert werden. Im Gegenteil dazu, wenn die Burst-Transfer-Funktion verwendet wird, kann eine Vielzahl von Einheitsbeträgen von Daten durch eine einmalige Lese-/Schreib-Aufforderung transferiert werden.
  • Bezugnehmend auf 2 wird angenommen, dass acht Einheitsbeträge von Daten 1 bis 8 transferiert werden. Folglich werden in dem gewöhnlichen Datentransfer acht Lese-/Schreib-Aufforderungen gebraucht. Im Gegenteil dazu, wenn die Burst-Transfer-Funktion verwendet wird, kann der Transfer unter Verwendung des Doppelten an Lese-/Schreib-Aufforderungen ausgeführt werden. Ein Vier-Burst-Transfer wird hier angenommen, in dem vier Einheiten von Daten durch eine einmalige Lese-/Schreib-Aufforderung transferiert werden können.
  • Hier werden Burst-Lesebefehle (Transaktionen) in der dekrementellen Richtung und der inkrementellen Richtung ausgegeben. Jedoch können in jedem Burst-Lesebefehl spezifizierte Daten nur in der inkrementellen Richtung gelesen werden. Folglich, wie in 3 gezeigt, selbst wenn ein Vier-Burst-Lesebefehl zum Lesen der Daten 5 bis 8 zuerst ausgegeben wird und dann ein Vier-Burst-Lesebefehl zum Lesen der Daten 1 bis 4 als zweites ausgegeben wird in der dekrementellen Richtung, werden die Daten in der Reihenfolge der Daten 5, 6, 7, 8, 1, 2, 3 und 4 gelesen. Das heißt, die Daten können nicht in der Reihenfolge der Daten 8, 7, 6, 5, 4, 3, 2 und 1 gelesen werden.
  • Demzufolge, wenn ein Transferquellbereich und ein Transferzielbereich in der Vorwärtsrichtung verschoben sind und ein Datentransfer unter Verwendung der Burst-Transfer-Funktion ausgeführt wird, kann eine Datenzerstörung nicht verhindert werden, selbst wenn der dekrementelle Transfer benutzt wird.
  • Ebenfalls in dem Fall eines Burst-Schreibbefehls können Burst-Schreibbefehle auch in der inkrementellen Richtung sowie in der dekrementellen Richtung ausgegeben werden wie in dem Fall des Burst-Lesebefehls. Jedoch können in jedem Burst-Schreibbefehl spezifizierte Daten nur in der inkrementellen Richtung geschrieben werden.
  • 4 ist eine Darstellung, welche eine Konfiguration eines DMA-Transfersystems 10 gemäß einem ersten Ausführungsbeispiel zeigt.
  • Das DMA-Transfersystem 10 beinhaltet eine DMA-Transfer-Steuereinrichtung 100 (Datentransfereinrichtung), eine CPU 200 und einen Speicher 300.
  • Die DMA-Transfer-Steuereinrichtung 100 ist eine Einrichtung, die auf den Speicher 300 zugreift und einen Datentransfer ausführt, gemäß DMA-Informationen, welche von einem Benutzer der CPU 200 oder ähnlichem in Registern eingestellt worden sind.
  • Die CPU 200 stellt die DMA-Informationen, wie eine Transferquelladresse, welche einen Transferquellbereich spezifiziert, eine Transferzieladresse, welche einen Transferzielbereich spezifiziert, eine Transfer-Größe, die die Größe von zu transferierenden Daten spezifiziert, und die Transferart (wie den inkrementellen Transfer oder den dekrementellen Transfer) in die Register der DMA-Transfer-Steuereinrichtung 100 ein und veranlasst die DMA-Transfer-Steuereinrichtung 100 den Transfer der Daten auszuführen. Es wird hier angenommen, dass die CPU 200 die DMA-Informationen einstellt. Eine andere Einrichtung oder ein anderes System als die CPU 200 kann die DMA-Informationen einstellen.
  • Der Speicher 300 ist eine Zielressource, die als der Transferquellbereich und der Transferzielbereich des Datentransfers dienen wird.
  • 5 ist eine Darstellung, welche eine Konfiguration der DMA-Transfer-Steuereinrichtung 100 gemäß dem ersten Ausführungsbeispiel zeigt. Bezug nehmend auf 5 gibt eine durchgezogene Linie eine Datenleitung an, durch welche Daten fließen, und eine unterbrochene Linie gibt eine Steuerleitung an, durch welche ein Steuersignal fließt.
  • Die DMA-Transfer-Steuereinrichtung 100 beinhaltet eine Transferquell-Lesesteuereinheit 110, eine Puffer-Schreibsteuereinheit 120, einen internen Puffer 130 (Ringpuffer), eine Puffer-Lesesteuereinheit 140, eine Transferziel-Schreibsteuereinheit 150, eine datenzerstörungsfreie Steuereinheit 160, eine Puffer-Schreibzyklus-Zähleinheit 170 und eine Puffer-Lesezyklus-Zähleinheit 180.
  • Die Transferquell-Lesesteuereinheit 110 gibt an den Speicher 300 einen Transferquell-Lesebefehl zum Lesen der in dem Transferquellbereich des Speichers 300 gespeicherten Daten aus.
  • Der Transferquell-Lesebefehl ist eine Information, welche Informationen von einer Lese-Adresse, ein Lese-Adressen-wirksames Signal (oder ein Lese-Aufforderungssignal) und andere Signale (welche eine Burst-Größe und eine Burst-Länge anzeigen) sammelt.
  • Die Puffer-Schreibsteuereinheit 120 erhält die Daten, welche von der Transferquelle gelesen worden sind, gemäß dem Transferquell-Lesebefehl, welcher von der Transferquell-Lesesteuereinheit 110 ausgegeben worden ist, durch einen Nur-Lese-Bus.
  • Die Puffer-Schreibsteuereinheit 120 gibt die erhaltenen, von der Transferquelle gelesenen Daten an den internen Puffer 130 als Puffer-Schreibdaten aus und schreibt die Puffer-Schreibdaten an eine Position des internen Puffers 130, welche durch einen Puffer-Schreibzeiger spezifiziert ist. Der Puffer-Schreibzeiger ist eine Information, welche ein aktuelles Puffer-Schreibziel anzeigt.
  • Die Puffer-Schreibsteuereinheit 120 benachrichtigt die datenzerstörungsfreie Steuereinheit 160 über eine Position, wo ein Schreiben der Puffer-Schreibdaten fertiggestellt ist, als einen Puffer-Schreibfertigstellungszeiger. Mit anderen Worten ist der Puffer-Schreibfertigstellungszeiger eine Information, welche einen Fertigstellungsbereich anzeigt, wo eine Vorbereitung zum Lesen von dem internen Puffer 130 fertiggestellt worden ist.
  • Der interne Puffer 130 ist eine in der DMA-Transfer-Steuereinrichtung 100 enthaltene Ressource zur Speicherung der zu transferierenden Daten.
  • Die Puffer-Lesesteuereinheit 140 liest die Daten von einer durch einen Puffer-Lesezeiger spezifizierten Position des internen Puffers 130 als Puffer-Lesedaten. Der Puffer-Lesezeiger ist eine Information, welche ein aktuelles Puffer-Leseziel anzeigt.
  • Die Puffer-Lesesteuereinheit 140 gibt die gelesenen Puffer-Lesedaten an den Speicher 300 durch einen Nur-Schreib-Bus als Schreibdaten für ein Transferziel aus.
  • Die Puffer-Lesesteuereinheit 140 teilt der datenzerstörungsfreien Steuereinheit 160 den Puffer-Lesezeiger mit.
  • Die Transferziel-Schreibsteuereinheit 150 gibt einen Transferziel-Schreibbefehl an den Speicher 300 aus, um die Schreibdaten für das von der Puffer-Lesesteuereinheit 140 ausgegebene Transferziel in den Transferzielbereich zu schreiben.
  • Der Transferziel-Schreibbefehl ist eine Information, welche Informationen von einer Schreib-Adresse, ein Schreib-Adressen-wirksames Signal (oder ein Schreib-Aufforderungssignal), ein Schreibdaten-wirksames Signal und andere Signale (welche eine Burst-Größe, eine Burst-Länge und ein Strobe-Signal anzeigen) sammelt.
  • Die datenzerstörungsfreie Steuereinheit 160 teilt entsprechenden Steuereinheiten und entsprechenden Zähleinheiten die Transferart (inkrementeller Transfer oder dekrementeller Transfer), die von der CPU 200 eingestellt worden ist, mit. Die entsprechenden Steuereinheiten verweisen auf die Transferquell-Lesesteuereinheit 110, die Puffer-Schreibsteuereinheit 120, die Puffer-Lesesteuereinheit 140 und die Transferziel-Schreibsteuereinheit 150. Die entsprechenden Zähleinheiten verweisen auf die Puffer-Schreibzyklus-Zähleinheit 170 und die Puffer-Lesezyklus-Zähleinheit 180.
  • Im Fall des dekrementellen Transfers bestimmt die datenzerstörungsfreie Steuereinheit 160, ob eine Vorbereitung zum Lesen der Daten an der von dem Puffer-Lesezeiger angezeigten Position fertiggestellt worden ist oder nicht, basierend auf einem „Größenverhältnis zwischen der von der Puffer-Schreibzyklus-Zähleinheit 170 gezählten Anzahl von Umläufen (Puffer-Schreibzyklus-Zählwert) und der von der Puffer-Lesezyklus-Zähleinheit 180 gezählten Anzahl von Umläufen (Puffer-Lesezyklus-Zählwert)” und einem „Größenverhältnis zwischen dem Wert des Puffer-Schreibfertigstellungszeigers und dem Wert des Puffer-Lesezeigers”. Dann, wenn die datenzerstörungsfreie Steuereinheit 160 bestimmt, dass die Vorbereitung zum Lesen der Daten fertiggestellt worden ist, gibt die datenzerstörungsfreie Steuereinheit 160 eine Transferziel-schreibbar-Anweisung an die Puffer-Lesesteuereinheit 140 und die Transferziel-Schreibsteuereinheit 150 aus. Im Fall des inkrementellen Transfers gibt die datenzerstörungsfreie Steuereinheit 160 ständig die Transferziel-schreibbar-Anweisung aus, ungeachtet des Puffer-Schreibfertigstellungszeigers und des Puffer-Lesezeigers.
  • Bei Empfang der Transferziel-schreibbar-Anweisung von der datenzerstörungsfreien Steuereinheit 160 liest die Puffer-Lesesteuereinheit 140 die Daten von dem internen Puffer 130. Bei Empfang der Transferziel-schreibbar-Anweisung von der datenzerstörungsfreien Steuereinheit 160 gibt die Transferziel-Schreibsteuereinheit 150 den Transferziel-Schreibbefehl aus.
  • Die Puffer-Schreibzyklus-Zähleinheit 170 ist ein Zähler, der die Anzahl von Umläufen des Puffer-Schreibfertigstellungszeigers im Fall des dekrementellen Transfers zählt.
  • Die Puffer-Lesezyklus-Zähleinheit 180 ist ein Zähler, der die Anzahl von Umläufen des Puffer-Lesezeigers im Fall des dekrementellen Transfers zählt.
  • Der Nur-Lese-Bus ist ein Bus, der den Transferquell-Lesebefehl und die gelesenen Daten von der Transferquelle führt. Der Nur-Schreib-Bus ist ein Bus, der den Transferziel-Schreibbefehl und die Schreibdaten für das Transferziel führt. Der Nur-Lese-Bus und der Nur-Schreib-Bus sind nicht voneinander abhängig und können parallel betrieben werden.
  • 6 ist eine Darstellung, welche eine Konfiguration der datenzerstörungsfreien Steuereinheit 160 gemäß dem ersten Ausführungsbeispiel zeigt.
  • Die datenzerstörungsfreie Steuereinheit 160 beinhaltet ein Transferart-Einstellregister 161, ein Puffer-Schreibfertigstellungszeiger-Einstellregister 162, ein Puffer-Lesezeiger-Einstellregister 163, eine erste Puffer-Vorbereitungsfertigstellungs-Bestimmungseinheit 164, eine zweite Puffer-Vorbereitungsfertigstellungs-Bestimmungseinheit 165, eine Umlaufanzahl-Übereinstimmungs-Bestimmungseinheit 166 und einen Selektor 167.
  • Die Transferart wird in dem Transferart-Einstellungsregister 161 durch die CPU 200 eingestellt. Die in das Transferart-Einstellregister 161 eingestellte Transferart wird von der datenzerstörungsfreien Steuereinheit 160 an jede Steuereinheit gemeldet.
  • Der Puffer-Schreibfertigstellungszeiger, welcher von der Puffer-Schreibsteuereinheit 120 mitgeteilt worden ist, wird in dem Puffer-Schreibfertigstellungszeiger-Einstellregister 162 eingestellt.
  • Der von der Puffer-Lesesteuereinheit 140 mitgeteilte Puffer-Lesezeiger wird in dem Puffer-Lesezeiger-Einstellregister 163 eingestellt.
  • Die erste Puffer-Vorbereitungsfertigstellungs-Bestimmungseinheit 164 bestimmt, ob die Vorbereitung zum Lesen der Daten von dem internen Puffer 130 fertiggestellt ist oder nicht, basierend auf der Transferart, dem Puffer-Schreibfertigstellungszeiger und dem Puffer-Lesezeiger. Wenn die erste Puffer-Vorbereitungsfertigstellungs-Bestimmungseinheit 164 bestimmt, dass die Vorbereitung zum Lesen der Daten fertiggestellt ist, bestimmt die erste Puffer-Vorbereitungsfertigstellungs-Bestimmungseinheit, dass eine Datenzerstörung nicht auftreten wird, und gibt dann eine Transferziel-schreibbar-Anweisung (Zeiger) an den Selektor 167 aus.
  • Die zweite Puffer-Vorbereitungsfertigstellungs-Bestimmungseinheit 165 bestimmt, ob die Vorbereitung zum Lesen der Daten von dem internen Speicher 130 fertiggestellt ist oder nicht, basierend auf einem Puffer-Schreibzyklus-Zählwert, der von der Puffer-Schreibzyklus-Zähleinheit 170 erhalten worden ist, und einem Puffer-Lesezyklus-Zählwert, der von der Puffer-Lesezyklus-Zähleinheit 180 erhalten worden ist. Wenn die zweite Puffer-Vorbereitungsfertigstellungseinheit 165 bestimmt, dass die Vorbereitung zum Lesen der Daten fertiggestellt ist, bestimmt die zweite Puffer-Vorbereitungsfertigstellungseinheit 165, dass eine Datenzerstörung nicht auftreten wird und gibt dann eine Transferziel-schreibbar-Anweisung (Zähler) an den Selektor 167) aus.
  • Die Umlaufanzahl-Übereinstimmungs-Bestimmungseinheit 166 bestimmt, ob der Puffer-Schreibzyklus-Zählwert, welcher von der Puffer-Schreibzyklus-Zähleinheit 170 erhalten worden ist, und der Puffer-Lesezyklus-Zählwert, welcher von der Puffer-Lesezyklus-Zähleinheit 180 erhalten worden ist, übereinstimmen oder nicht.
  • Der Selektor 167 wählt eine der Transferziel-schreibbar-Anweisung (Zeiger), welche von der ersten Puffer-Vorbereitungsfertigstellungs-Bestimmungseinheit 164 ausgegeben worden ist, und der Transferzielschreibbar-Anweisung (Zähler), welche von der zweiten Puffer-Vorbereitungsfertigstellungs-Bestimmungseinheit 165 ausgegeben worden ist, welche als die Transferziel-schreibbar-Anweisung auszugeben ist, basierend auf einem Bestimmungsergebnis der Umlaufanzahl-Übereinstimmungs-Bestimmungseinheit 166 aus. Der Selektor 167 gibt die gewählte Transferzielschreibbar-Anweisung an die Puffer-Lesesteuereinheit 140 und die Transferziel-Schreibsteuereinheit 150 aus.
  • 7 ist eine Darstellung, welche eine Konfiguration der Puffer-Schreibzyklus-Zähleinheit 170 gemäß dem ersten Ausführungsbeispiel zeigt.
  • Die Puffer-Schreibzyklus-Zähleinheit 170 beinhaltet eine Umlauf-Erfassungseinheit 171 und eine Umlaufanzahl-Zähleinheit 172.
  • Im Fall des dekrementellen Transfers erfasst die Umlauf-Erfassungseinheit 171, ob der Puffer-Schreibfertigstellungszeiger umgelaufen ist oder nicht.
  • Wenn die Umlauf-Erfassungseinheit 171 einen Umlauferfasst, zählt die Umlaufanzahl-Zähleinheit 172 einen Puffer-Schreibzyklus-Zählwert um eins hoch. Dann gibt die Umlaufanzahl-Zähleinheit 172 den hochgezählten Puffer-Schreibzyklus-Zählwert an die datenzerstörungsfreie Steuereinheit 160 aus.
  • 8 ist eine Darstellung, welche eine Konfiguration der Puffer-Lesezyklus-Zähleinheit 180 gemäß dem ersten Ausführungsbeispiel zeigt.
  • Die Puffer-Lesezyklus-Zähleinheit 180 beinhaltet eine Umlauf-Erfassungseinheit 181 und eine Umlaufanzahl-Zähleinheit 182.
  • Im Fall des dekrementellen Transfers erfasst die Umlauf-Erfassungseinheit 181, ob der Puffer-Lesezeiger umgelaufen ist oder nicht.
  • Wenn die Umlauf-Erfassungseinheit 181 einen Umlauf erfasst, zählt die Umlaufanzahl-Zähleinheit 182 einen Puffer-Lesezyklus-Zählwert um eins hoch. Dann gibt die Umlaufanzahl-Zähleinheit 182 den hochgezählten Puffer-Lesezyklus-Zählwert an die datenzerstörungsfreie Steuereinheit 160 aus.
  • Als nächstes erfolgt eine Beschreibung über Arbeitsvorgänge der DMA-Transfer-Steuereinrichtung 100.
  • 9 ist ein Flussdiagramm, welches die Arbeitsvorgänge der gesamten DMA-Transfer-Steuereinrichtung 100 gemäß dem ersten Ausführungsbeispiel zeigt. Im Schritt S11 stellt die CPU 200 DMA-Informationen in die Register der DMA-Transfer-Steuereinrichtung 100 ein und startet die DMA-Transfer-Steuereinrichtung 100. Dann, in Schritt S12, teilt die datenzerstörungsfreie Steuereinheit 160 der DMA-Transfer-Steuereinrichtung 100 jeder Steuereinheit die Transferart (inkrementeller Transfer oder dekrementeller Transfer) mit, welche in das Register (Transferarteinstellregister) 161 eingestellt worden ist. Wenn der inkrementelle Transfer in das Register eingestellt worden ist, veranlasst die DMA-Transfer-Steuereinrichtung 100 den Vorgang zu Schritt S13 fortzufahren. Wenn der dekrementelle Transfer eingestellt worden ist, veranlasst die DMA-Transfer-Steuereinrichtung 100 den Vorgang zu Schritt S14 fortzufahren.
  • In Schritt S13 führt die DMA-Transfer-Steuereinrichtung 100 den inkrementellen Transfer in Bezug auf den Speicher 300 aus. Andererseits, in Schritt S14, führt die DMA-Transfer-Steuereinrichtung 100 den dekrementellen Transfer mit Bezug auf den Speicher 300 aus.
  • Dann, in Schritt S15, wenn es einen DMA-Transferstopp-Einfluss gibt, wie eine Fertigstellung des Transfers von Daten einer spezifizierten Datenlänge, stoppt die DMA-Transfer-Steuereinrichtung 100 den Transfervorgang.
  • 10 ist ein Flussdiagramm, welches Arbeitsvorgänge der Transferquell-Lesesteuereinheit 110 gemäß dem ersten Ausführungsbeispiel zeigt. 10 zeigt die Arbeitsvorgänge der Transferquell-Lesesteuereinheit 110 in Schritt S13 oder S14 in 9.
  • In Schritt S21 bestimmt die Transferquell-Lesesteuereinheit 110, ob der inkrementelle Transfer oder der dekrementelle Transfer ausgeführt werden soll, basierend auf der von der datenzerstörungsfreien Steuereinheit 160 übertragenen Transferart. Wenn die Transferquell-Lesesteuereinheit 110 bestimmt, dass der inkrementelle Transfer ausgeführt werden soll, veranlasst die Transferquell-Lesesteuereinheit 110 den Vorgang zu Schritt S22 fortzuschreiten. Wenn die Transferquell-Lesesteuereinheit 110 bestimmt, dass der dekrementelle Transfer ausgeführt werden soll, veranlasst die Transferquell-Lesesteuereinheit 110 den Vorgang zu Schritt S23 fortzuschreiten.
  • In Schritt S22 oder S23 erzeugt die Transferquell-Lesesteuereinheit 110 einen Burst-Lesebefehl als einen Transferquell-Lesebefehl. Der Burst-Lesebefehl ist ein Befehl zum fortlaufenden Lesen jedes Einheitsbetrages der Daten in einer aufsteigenden Reihenfolge von Adresswerten beginnend bei einer Lese-Startadresse, bis eine vorbestimmte Anzahl von Einheitsbeträgen der Daten erreicht wird, wie basierend auf 3 beschrieben ist.
  • In Schritt S24 im Anschluss an Schritt S22 oder S23 bestimmt die Transferquell-Lesesteuereinheit 110, ob ein Lese-Zugriff möglich ist oder nicht abhängig davon, ob ein freier Bereich zum Speichern der durch den Transferquell-Lesebefehl zu lesenden Daten in dem internen Puffer 130 vorhanden ist oder nicht. Wenn die Transferquell-Lesesteuereinheit 110 bestimmt, dass der Lese-Zugriff möglich ist (JA in Schritt S24), veranlasst die Transferquell-Lesesteuereinheit 110 den Vorgang zu Schritt S25 fortzuschreiten. Auf der anderen Seite, wenn die Transferquell-Lesesteuereinheit 110 bestimmt, dass der Lese-Zugriff unmöglich ist (NEIN in Schritt S24), führt die Transferquell-Lesesteuereinheit 110 den Vorgang zu Schritt S24 zurück. Dann, nach einem Ablauf einer vorbestimmten Zeitspanne, bestimmt die Transferquell-Lesesteuereinheit 110 wieder, ob der Lese-Zugriff möglich ist oder nicht.
  • In Schritt S25 gibt die Transferquell-Lesesteuereinheit 110 den erzeugten Transferquell-Lesebefehl an den Speicher 300 aus, um die Daten von einem Transferquellbereich zu lesen.
  • Dann, in Schritt S26, bestimmt die Transferquell-Lesesteuereinheit 110, ob der Lese-Zugriff auf den Speicher 300 beendet werden soll oder nicht, je nachdem, ob die Transferquell-Lesesteuereinheit 110 einen oder mehrere Transferquell-Lesebefehle zum Lesen der Daten, welche der Größe des Transfers entsprechen, an den Speicher 300 übertragen hat oder nicht. Wenn die Transferquell-Lesesteuereinheit 110 bestimmt, dass der Lese-Zugriff beendet werden soll (JA in Schritt S26), beendet die Transferquell-Lesesteuereinheit 110 den Vorgang. Andererseits, wenn die Transferquell-Lesesteuereinheit 110 bestimmt, dass der Lese-Zugriff nicht beendet werden soll (NEIN in Schritt S26) führt die Transferquell-Lesesteuereinheit 110 den Vorgang zu Schritt S21 zurück.
  • In Schritt S22 erzeugt die Transferquell-Lesesteuereinheit 110 die Burst-Lesebefehle in der inkrementellen Richtung. Das heißt, die Transferquell-Lesesteuereinheit 110 erzeugt die Burst-Lesebefehle so, dass Adresswerte von Lese-Startadressen der Burst-Lesebefehle in der aufsteigenden Reihenfolge angeordnet sind.
  • Andererseits, in Schritt S23, erzeugt die Transferquell-Lesesteuereinheit 110 die Burst-Lesebefehle in der dekrementellen Richtung. Das heißt, die Transferquell-Lesesteuereinheit 110 erzeugt die Burst-Lesebefehle so, dass die Adresswerte der Lese-Startadressen der Burst-Lesebefehle in einer absteigenden Reihenfolge angeordnet sind.
  • 11 ist ein Flussdiagramm, welches Arbeitsvorgänge der Puffer-Schreibsteuereinheit 120 gemäß dem ersten Ausführungsbeispiel zeigt. 11 zeigt die Arbeitsvorgänge der Puffer-Schreibsteuereinheit 120 in Schritt S13 oder S14 in 9.
  • In Schritt S31 bestimmt die Puffer-Schreibsteuereinheit 120, ob der inkrementelle Transfer oder der dekrementelle Transfer ausgeführt werden soll, basierend auf der Transferart, welche von der datenzerstörungsfreien Steuereinheit 160 übertragen worden ist. Wenn die Puffer-Schreibsteuereinheit 120 bestimmt, dass der inkrementelle Transfer ausgeführt werden soll, veranlasst die Puffer-Schreibsteuereinheit 120 den Vorgang zu Schritt S32 fortzuschreiten. Wenn die Puffer-Schreibsteuereinheit 120 bestimmt, dass der dekrementelle Transfer ausgeführt werden soll, veranlasst die Puffer-Schreibsteuereinheit 120 den Vorgang zu Schritt S33 fortzuschreiten.
  • In Schritt S32 oder S33 erzeugt die Puffer-Schreibsteuereinheit 120 einen Burst-Schreibbefehl, welcher einem Transferquell-Lesebefehl entspricht, als einen Puffer-Schreibbefehl. Dieser Puffer-Schreibbefehl ist ein Befehl zum fortlaufenden Schreiben der Daten in der aufsteigenden Reihenfolge von Adresswerten, beginnend bei einer Schreib-Startadresse unter Verwendung, als die Schreib-Startadresse, die Adresse des internen Puffers 130, welche mit der Lese-Startadresse des korrespondierenden Transferquell-Lesebefehls assoziiert ist.
  • In diesem Fall erhält die Puffer-Schreibsteuereinheit 120 von der Transferquell-Lesesteuereinheit 110 Informationen wie die Lese-Startadresse und die Anzahl von Einheitsbeträgen der durch den Transferquell-Lesebefehl zu lesenden Daten, welcher von der Transferquell-Lesesteuereinheit 110 ausgegeben werden soll, und erzeugt den Puffer-Schreibbefehl, welcher mit dem Transferquell-Lesebefehl korrespondiert. Alternativ kann die Puffer-Schreibsteuereinheit 120 die Lese-Startadresse und die Anzahl von Einheitsbeträgen der Daten, welche durch den Transferquell-Lesebefehl gelesen werden sollen, welcher von der Transferquell-Lesesteuereinheit 110 ausgegeben werden soll, mittels einer Logik bestimmen, welche ähnlich jener der Transferquell-Lesesteuereinheit 110 ist, und dadurch den Puffer-Schreibbefehl, welcher mit dem Transferquell-Lesebefehl korrespondiert, erzeugen.
  • In Schritt S33 stellt die Puffer-Schreibsteuereinheit 120 den Puffer-Schreibfertigstellungszeiger in das Puffer-Schreibfertigstellungszeiger-Einstellregister 162 der datenzerstörungsfreien Steuereinheit 160 ein. Es wird angenommen, dass der Puffer-Schreibfertigstellungszeiger in diesem Fall einen Adresswert anzeigt, welcher durch Addieren eines Adresswertes, welcher mit der Größe der Daten korrespondiert, die durch diesen Schreibbefehl geschrieben werden sollen, zu einem Adresswert, der von dem Puffer-Schreibzeiger angezeigt wird, erhalten wird.
  • In Schritt S34 im Anschluss an die Schritte S32 oder S33 gibt die Puffer-Schreibsteuereinheit 120 den Puffer-Schreibbefehl an den internen Puffer 130 aus. Mit dieser Anordnung schreibt die Puffer-Schreibsteuereinheit 120 die durch den einen Transferquell-Lesebefehl von dem Transferquellbereich gelesenen Daten in den internen Puffer 130.
  • Dann, in Schritt S35 bestimmt die Puffer-Schreibsteuereinheit 120, ob der Schreib-Zugriff auf den internen Puffer 130 beendet werden soll oder nicht, je nachdem, ob die Puffer-Schreibsteuereinheit 120 einen oder mehrere Puffer-Schreibbefehle zum Schreiben der mit der Größe des Transfers korrespondierenden Daten an den internen Puffer 130 übertragen hat oder nicht. Wenn die Puffer-Schreibsteuereinheit 120 bestimmt, dass der Schreib-Zugriff beendet werden soll (JA in Schritt S35), beendet die Puffer-Schreibsteuereinheit 120 den Vorgang. Wenn die Puffer-Schreibsteuereinheit 120 bestimmt, dass der Schreib-Zugriff nicht beendet werden soll (NEIN in Schritt S35), führt die Puffer-Schreibsteuereinheit 120 den Vorgang zu Schritt S31 zurück.
  • Wenn die Puffer-Schreibsteuereinheit 120 bestimmt, dass der Schreib-Zugriff beendet werden soll (JA in Schritt S35) in Schritt S35, stellt die Puffer-Schreibsteuereinheit 120 in das Puffer-Schreibfertigstellungszeiger-Einstellregister 162 die Schreib-Startadresse des Burst-Schreibbefehls ein, der am Ende ausgegeben worden ist, als den Puffer-Schreibfertigstellungszeiger. Dann beendet die Puffer-Schreibsteuereinheit 120 den Vorgang.
  • 12 ist ein Flussdiagramm, welches Arbeitsvorgänge der Puffer-Lesesteuereinheit 140 zeigt. 12 zeigt Arbeitsvorgänge der Puffer-Lesesteuereinheit 140 im Schritt S13 oder S14 in 9.
  • In Schritt S41 bestimmt die Puffer-Lesesteuereinheit 140, ob der inkrementelle Transfer oder der dekrementelle Transfer ausgeführt werden soll oder nicht, basierend auf der von der datenzerstörungsfreien Steuereinheit 160 übertragenen Transferart. Wenn die Puffer-Lesesteuereinheit 140 bestimmt, dass der inkrementelle Transfer ausgeführt werden soll, veranlasst die Puffer-Lesesteuereinheit 140 den Vorgang zu Schritt S42 fortzuschreiten. Wenn die Puffer-Lesesteuereinheit 140 bestimmt, dass der dekrementelle Transfer ausgeführt werden soll, veranlasst die Puffer-Lesesteuereinheit 140 den Vorgang zu Schritt S43 fortzuschreiten.
  • In Schritt S42 oder S43 erzeugt die Puffer-Lesesteuereinheit 140 einen Burst-Lesebefehl, welcher mit einem Transferziel-Schreibbefehl korrespondiert, als einen Puffer-Lesebefehl. Dieser Puffer-Lesebefehl ist ein Befehl zum fortlaufenden Lesen der Daten in der aufsteigenden Reihenfolge der Adresswerte beginnend bei einer Start-Adresse unter Verwendung, als die Lese-Startadresse, der Adresse des internen Puffers 130, welche mit der Schreib-Startadresse des korrespondierenden Transferziel-Schreibbefehls assoziiert ist.
  • In diesem Fall erhält die Puffer-Lesesteuereinheit 140 von der Transferziel-Schreibsteuereinheit 140 Informationen wie die Schreib-Startadresse und die Anzahl von Einheitsbeträgen der Daten, welche durch den Transferziel-Schreibbefehl geschrieben werden sollen, der von der Transfer-Schreibsteuereinheit 150 ausgegeben werden soll, und erzeugt den Puffer-Lesebefehl, der mit dem Transferziel-Schreibbefehl korrespondiert. Alternativ kann die Puffer-Lesesteuereinheit 140 die Schreib-Startadresse und die Anzahl von Einheitsbeträgen der Daten, welche durch den Transferziel-Schreibbefehl geschrieben werden sollen, welcher von der Transfer-Schreibsteuereinheit 150 ausgegeben werden soll, mittels einer Logik, die ähnlich jener der Transferziel-Schreibsteuereinheit 150 ist, bestimmen und dadurch den Puffer-Lesebefehl, der mit dem Transferziel-Schreibbefehl korrespondiert, erzeugen.
  • In Schritt S42 oder S43 stellt die Puffer-Lesesteuereinheit 140 in das Puffer-Lesezeiger-Einstellregister 163 der datenzerstörungsfreien Steuereinheit 160 den Puffer-Lesezeiger ein, welcher die Lese-Startadresse des Puffer-Lesebefehls anzeigt, wenn der Puffer-Lesebefehl erzeugt wird.
  • In Schritt S44 im Anschluss an die Schritte S42 und S43 bestimmt die Puffer-Lesesteuereinheit 140, ob ein Lese-Zugriff möglich ist oder nicht. Die Puffer-Lesesteuereinheit 140 bestimmt, dass der Lese-Zugriff möglich ist, wenn (1) die durch den Transferziel-Schreibbefehl zu schreibenden Daten in dem internen Puffer 130 gespeichert sind und (2) eine Transferziel-schreibbar-Anweisung von der datenzerstörungsfreien Steuereinheit 160 erhalten worden ist. Wenn die Puffer-Lesesteuereinheit 140 bestimmt, dass der Lese-Zugriff möglich ist (JA in Schritt S44), veranlasst die Puffer-Lesesteuereinheit 140 den Vorgang zu Schritt S45 fortzuschreiten. Andererseits, wenn die Puffer-Lesesteuereinheit 140 bestimmt, dass der Lese-Zugriff unmöglich ist (NEIN in Schritt S44), führt die Puffer-Lesesteuereinheit 140 den Vorgang zu Schritt S44 zurück. Dann, nach einem Ablauf einer vorbestimmten Zeitspanne, bestimmt die Puffer-Lesesteuereinheit 140 wieder, ob der Lese-Zugriff möglich ist oder nicht.
  • In Schritt S45 gibt die Puffer-Lesesteuereinheit 140 den Puffer-Lesebefehl an den internen Puffer 130 aus. Mit dieser Anordnung liest die Puffer-Lesesteuereinheit 140 von dem internen Puffer 130 die durch einen Transferziel-Schreibbefehl in einen Transferzielbereich zu schreibenden Daten und überträgt die gelesenen Daten an den Speicher 300.
  • Dann, in Schritt S46, bestimmt die Puffer-Lesesteuereinheit 140, ob der Lese-Zugriff auf den internen Puffer 130 beendet werden soll oder nicht, je nachdem, ob die Puffer-Lesesteuereinheit 140 den einen oder mehrere Puffer-Lesebefehle zum Schreiben der mit der Größe des Transfers korrespondierenden Daten an den internen Puffer 130 übertragen hat oder nicht. Wenn die Puffer-Lesesteuereinheit 140 bestimmt, dass der Lese-Zugriff beendet werden soll (JA in Schritt S46), beendet die Puffer-Lesesteuereinheit 140 den Vorgang. Wenn die Puffer-Lesesteuereinheit 140 bestimmt, dass der Lese-Zugriff nicht beendet werden soll (NEIN in Schritt S46), führt die Puffer-Lesesteuereinheit 140 den Vorgang zu Schritt S41 zurück.
  • 13 ist ein Flussdiagramm, welches Arbeitsvorgänge der Transferziel-Schreibsteuereinheit 150 gemäß dem ersten Ausführungsbeispiel zeigt. 13 zeigt die Arbeitsvorgänge der Transferziel-Schreibsteuereinheit 150 in Schritt S13 oder S14 in 9.
  • In Schritt S51 bestimmt die Transferziel-Schreibsteuereinheit 150, ob der inkrementelle Transfer oder der dekrementelle Transfer ausgeführt werden soll oder nicht, basierend auf der von der datenzerstörungsfreien Steuereinheit 160 übertragenen Transferart. Wenn die Transferziel-Schreibsteuereinheit 150 bestimmt, dass der inkrementelle Transfer ausgeführt werden soll, veranlasst die Transferziel-Schreibsteuereinheit 150 den Vorgang zu Schritt S52 fortzuschreiten. Wenn die Transferziel-Schreibsteuereinheit 150 bestimmt, dass der dekrementelle Transfer ausfgeführt werden soll, veranlasst die Transferziel-Schreibsteuereinheit 150 den Vorgang zu Schritt S53 fortzuschreiten.
  • In Schritten S52 und S53 erzeugt die Transferziel-Schreibsteuereinheit 150 einen Burst-Schreibbefehl als einen Transferziel-Schreibbefehl. Dieser Burst-Schreibbefehl ist ein Befehl zum fortlaufenden Schreiben jedes Einheitsbetrages der Daten in der aufsteigenden Reihenfolge von Adresswerten beginnend bei der Schreib-Startadresse, bis eine vorbestimmte Anzahl von Einheitsbeträgen der Daten erreicht wird, wie basierend auf 3 erklärt wird.
  • In Schritt S54 im Anschluss an die Schritte S52 und S53 bestimmt die Transferziel-Schreibsteuereinheit 150, ob ein Schreib-Zugriff möglich ist oder nicht mittels einer Bedingung, welche die gleiche ist wie die zum Bestimmen, durch die Puffer-Lesesteuereinheit 140, ob der Lese-Zugriff möglich ist oder nicht, verwendete Bedingung. Das heißt, die Transferziel-Schreibsteuereinheit 150 bestimmt, dass der Schreib-Zugriff möglich ist, wenn (1) die durch den Transferziel-Schreibbefehl zu schreibenden Daten in dem internen Puffer 130 gespeichert sind und (2) die Transferziel-schreibbar-Anweisung von der datenzerstörungsfreien Steuereinheit 160 erhalten worden ist. Wenn die Transferziel-Schreibsteuereinheit bestimmt, dass der Schreib-Zugriff möglich ist (JA in Schritt S54), veranlasst die Transferziel-Schreibsteuereinheit 150 den Vorgang zu Schritt S55 fortzuschreiten. Andererseits, wenn die Transferziel-Schreibsteuereinheit 150 bestimmt, dass der Schreib-Zugriff unmöglich ist (NEIN in Schritt S54), führt die Transferziel-Schreibsteuereinheit 150 den Vorgang zu Schritt S54 zurück. Dann, nach einem Ablauf einer vorbestimmten Zeitspanne, bestimmt die Transferziel-Schreibsteuereinheit erneut, ob der Schreib-Zugriff möglich ist oder nicht.
  • In Schritt S55 gibt die Transferziel-Schreibsteuereinheit 150 den erzeugten Transferziel-Schreibefehl an den Speicher 300 aus, um die Daten in den Transferzielbereich zu schreiben.
  • Dann, in Schritt S56, bestimmt die Transferziel-Schreibsteuereinheit 150, ob der Schreib-Zugriff auf den Speicher 300 beendet werden soll oder nicht, je nachdem, ob die Transferziel-Schreibsteuereinheit 150 den einen oder mehrere Transferziel-Schreibbefehle zum Schreiben der mit der Größe des Transfers korrespondierenden Daten an den Speicher 300 übertragen hat oder nicht. Wenn die Transferziel-Schreibsteuereinheit 150 bestimmt, dass der Schreib-Zugriff beendet werden soll (JA in Schritt S56), beendet die Transferziel-Schreibsteuereinheit 150 den Vorgang. Andererseits, wenn die Transferziel-Schreibsteuereinheit 150 bestimmt, dass der Schreib-Zugriff nicht beendet werden soll (NEIN in Schritt S56), führt die Transferziel-Schreibsteuereinheit 150 den Vorgang zu Schritt S51 zurück, erzeugt einen anschließenden Transferziel-Schreibbefehl und überträgt an den Speicher 300 den erzeugten anschließenden Transferziel-Schreibbefehl, um die Daten zu schreiben.
  • In Schritt S52 erzeugt die Transferziel-Schreibsteuereinheit 150 die Burst-Schreibbefehle in der inkrementellen Richtung. Das heißt, die Transferziel-Schreibsteuereinheit 150 erzeugt die Burst-Schreibbefehle so, dass Adresswerte von Schreib-Startadressen der Burst-Schreibbefehle in der aufsteigenden Reihenfolge angeordnet sind.
  • Andererseits, in Schritt S53, erzeugt die Transferziel-Schreibsteuereinheit 150 die Burst-Schreibbefehle in der dekrementellen Richtung. Das heißt die Transferziel-Schreibsteuereinheit 150 erzeugt die Burst-Schreibbefehle so, dass die Adresswerte der Schreib-Startadressen der Burst-Schreibbefehle in der absteigenden Reihenfolge angeordnet sind.
  • 14 ist ein Flussdiagramm, welches Arbeitsvorgänge der datenzerstörungsfreien Steuereinheit 160 gemäß dem ersten Ausführungsbeispiel zeigt. 14 zeigt die Arbeitsvorgänge der datenzerstörungsfreien Steuereinheit 160 in Schritt S13 oder S14 in 9.
  • In Schritt S61, bestimmt die datenzerstörungsfreie Steuereinheit 160, ob der inkrementelle Transfer oder der dekrementelle Transfer ausgeführt werden soll oder nicht, basierend auf der in dem Transferart-Einstellregister 161 eingestellten Transferart. Wenn die datenzerstörungsfreie Steuereinheit 160 bestimmt, dass der dekrementelle Transfer ausgeführt werden soll, veranlasst die datenzerstörungsfreie Steuereinheit 160 den Vorgang zu Schritt S62 fortzuschreiten. Wenn die datenzerstörungsfreie Steuereinheit bestimmt, dass der inkrementelle Transfer ausgeführt werden soll, veranlasst die datenzerstörungsfreie Steuereinheit 160 den Vorgang zu Schritt S66 fortzuschreiten.
  • In Schritt S62 bestimmt die datenzerstörungsfreie Steuereinheit 160, ob ein von der Puffer-Schreibzyklus-Zähleinheit 170 gezählter Puffer-Schreibzyklus-Zählwert größer ist als ein von der Puffer-Lesezyklus-Zähleinheit 180 gezählter Puffer-Lesezyklus-Zählwert oder nicht. Wenn bestimmt wird, dass der Puffer-Schreibzyklus-Zählwert nicht größer ist als der Puffer-Lesezyklus-Zählwert (NEIN in Schritt S62), veranlasst die datenzerstörungsfreie Steuereinheit 160 den Vorgang zu Schritt S63 fortzuschreiten. Wenn bestimmt wird, dass der Puffer-Schreibzyklus-Zählwert größer ist als der Puffer-Lesezyklus-Zählwert (JA in Schritt S62), veranlasst die datenzerstörungsfreie Steuereinheit 160 den Vorgang zu Schritt S66 fortzuschreiten.
  • In Schritt S63 bestimmt die datenzerstörungsfreie Steuereinheit 160, ob der von der Puffer-Schreibzyklus-Zähleinheit 170 gezählte Puffer-Schreibzyklus-Zählwert kleiner ist als der von der Puffer-Lesezyklus-Zähleinheit 180 gezählte Puffer-Lesezyklus-Zählwert. Wenn bestimmt wird, dass der Puffer-Schreibzyklus-Zählwert nicht kleiner ist als der Puffer-Lesezyklus-Zählwert (NEIN in Schritt S63), veranlasst die datenzerstörungsfreie Steuereinheit 160 den Vorgang zu Schritt S64 fortzuschreiten. Wenn bestimmt wird, dass der Puffer-Schreibzyklus-Zählwert kleiner ist als der Puffer-Lesezyklus-Zählwert (JA in Schritt S63), veranlasst die datenzerstörungsfreie Steuereinheit 160 den Vorgang zu Schritt S65 fortzuschreiten.
  • In Schritt S64 bestimmt die datenzerstörungsfreie Steuereinheit 160, ob der Adresswert, welcher von dem Puffer-Schreibfertigstellungszeiger angezeigt wird, welcher in dem Puffer-Schreibfertigstellungszeiger-Einstellregister 162 eingestellt ist, gleich oder kleiner als der Adresswert, welcher von dem Puffer-Lesezeiger angezeigt wird, welcher in dem Puffer-Lesezeiger-Einstellregister 163 eingestellt ist, ist oder nicht. Wenn bestimmt wird, dass der von dem Puffer-Schreibfertigstellungszeiger angezeigte Adresswert nicht gleich oder kleiner ist als der von dem Puffer-Lesezeiger angezeigte Adresswert (NEIN in Schritt S64), veranlasst die datenzerstörungsfreie Steuereinheit 160 den Vorgang zu Schritt S65 fortzuschreiten. Andererseits, wenn bestimmt wird, dass der von dem Puffer-Schreibfertigstellungszeiger angezeigte Adresswert gleich oder kleiner ist als der von dem Puffer-Lesezeiger angezeigte Adresswert (JA in Schritt S64), veranlasst die datenzerstörungsfreie Steuereinheit 160 den Vorgang zu Schritt S66 fortzuschreiten.
  • In Schritt S65 bestimmt die datenzerstörungsfreie Steuereinheit 160, dass eine Vorbereitung zum Lesen von dem Puffer nicht fertiggestellt worden ist, und die datenzerstörungsfreie Steuereinheit 160 überträgt daher nicht die Transferziel-schreibbar-Anweisung. Andererseits, in Schritt 566, bestimmt die datenzerstörungsfreie Steuereinheit 160, dass die Vorbereitung zum Lesen von dem Puffer fertiggestellt worden ist, und die datenzerstörungsfreie Steuereinheit 160 überträgt daher die Transferziel-schreibbar-Anweisung an die Puffer-Lesesteuereinheit 140 und die Transferziel-Schreibsteuereinheit 150.
  • In Schritt S67 bestimmt die datenzerstörungsfreie Steuereinheit 160, ob der Vorgang beendet werden soll oder nicht, je nachdem, ob ein Transfer von mit der Größe des Transfers korrespondierenden Daten fertiggestellt worden ist oder nicht. Wenn die datenzerstörungsfreie Steuereinheit 160 bestimmt, dass der Vorgang beendet werden soll (JA in Schritt S67), beendet die datenzerstörungsfreie Steuereinheit 160 den Vorgang. Andererseits, wenn die datenzerstörungsfreie Steuereinheit 160 bestimmt, dass der Vorgang nicht beendet werden soll (NEIN in Schritt S67), führt die datenzerstörungsfreie Steuereinheit 160 den Vorgang zu Schritt S61 zurück und bestimmt dann erneut, ob die Vorbereitung zum Lesen von dem Puffer fertiggestellt worden ist oder nicht.
  • Das heißt, im Fall des inkrementellen Transfers, wird ständig bestimmt, dass die Vorbereitung zum Lesen von dem Puffer fertiggestellt worden ist.
  • Andererseits, im Fall des dekrementellen Transfers,
    • (1) wenn gilt, dass „der Puffer-Schreibzyklus-Zählwert > der Puffer-Lesezyklus-Zählwert”, und
    • (2) wenn gilt, dass „der Puffer-Schreibzyklus-Zählwert = dem Puffer-Lesezyklus-Zählwert” und dass „der von dem Puffer-Schreibfertigstellungszeiger angezeigte Adresswert ≤ dem von dem Puffer-Lesezeiger angezeigten Adresswert”,
    wird bestimmt, dass die Vorbereitung zum Lesen von dem Puffer fertiggestellt worden ist.
  • 15 ist ein Flussdiagramm, welches Arbeitsvorgänge der Puffer-Schreibzyklus-Zähleinheit 170 gemäß dem ersten Ausführungsbeispiel zeigt. 15 zeigt die Arbeitsvorgänge der Puffer-Schreibzyklus-Zähleinheit 170 in Schritt S13 oder S14 in 9.
  • In Schritt S71 bestimmt die Puffer-Schreibzyklus-Zähleinheit, ob der inkrementelle Transfer oder der dekrementelle Transfer ausgeführt werden soll oder nicht, basierend auf der von der datenzerstörungsfreien Steuereinheit 160 übertragenen Transferart. Wenn die Puffer-Schreibzyklus-Zähleinheit 170 bestimmt, dass der dekrementelle Transfer ausgeführt werden soll, veranlasst die Puffer-Schreibzyklus-Zähleinheit 170 den Vorgang zu Schritt 572 fortzuschreiten. Wenn die Puffer-Schreibzyklus-Zähleinheit 170 bestimmt, dass der inkrementelle Transfer ausgeführt werden soll, veranlasst die Puffer-Schreibzyklus-Zähleinheit 170 den Vorgang zu Schritt S74 fortzuschreiten.
  • In Schritt S72 bestimmt die Puffer-Schreibzyklus-Zähleinheit 170, ob der von der Puffer-Schreibsteuereinheit 120 erzeugte Puffer-Schreibfertigstellungszeiger umgelaufen ist oder nicht. Wenn die Puffer-Schreibzyklus-Zähleinheit 170 bestimmt, dass der Puffer-Schreibfertigstellungszeiger umgelaufen ist (JA in Schritt S72), veranlasst die Puffer-Schreibzyklus-Zähleinheit 170 den Vorgang zu Schritt S73 fortzuschreiten. Wenn die Puffer-Schreibzyklus-Zähleinheit 170 bestimmt, dass der Puffer-Schreibfertigstellungszeiger nicht umgelaufen ist (NEIN in Schritt S72) veranlasst die Puffer-Schreibzyklus-Zähleinheit 170 den Vorgang zu Schritt S74 fortzuschreiten.
  • In Schritt S73 zählt die Puffer-Schreibzyklus-Zähleinheit 170 den Zähler um +1 hoch.
  • In Schritt S74 bestimmt die Puffer-Schreibzyklus-Zähleinheit 170, ob der Vorgang beendet werden soll oder nicht, je nachdem, ob ein Transfer der mit der Größe des Transfers korrespondierenden Daten fertiggestellt worden ist oder nicht. Wenn die Puffer-Schreibzyklus-Zähleinheit 170 bestimmt, dass der Vorgang beendet werden soll (JA in Schritt S74), beendet die Puffer-Schreibzyklus-Zähleinheit 170 den Vorgang. Andererseits, wenn die Puffer-Schreibzyklus-Zähleinheit 170 bestimmt, dass der Vorgang nicht beendet werden soll (NEIN in Schritt S74), führt die Puffer-Schreibzyklus-Zähleinheit 170 den Vorgang zu Schritt S71 zurück und bestimmt erneut, ob der Zähler hochgezählt werden soll oder nicht.
  • 16 ist ein Flussdiagramm, welches Arbeitsvorgänge der Puffer-Lesezyklus-Zähleinheit 180 gemäß dem ersten Ausführungsbeispiel zeigt. 16 zeigt die Arbeitsvorgänge der Puffer-Lesezyklus-Zähleinheit 180 in Schritt S13 oder S14 in 9.
  • In Schritt S81 bestimmt die Puffer-Lesezyklus-Zähleinheit 180, ob der inkrementelle Transfer oder der dekrementelle Transfer ausgeführt werden soll oder nicht, basierend auf der von der datenzerstörungsfreien Steuereinheit 160 übertragenen Transferart. Wenn die Puffer-Lesezyklus-Zähleinheit 180 bestimmt, dass der dekrementelle Transfer ausgeführt werden soll, veranlasst die Puffer-Lesezyklus-Zähleinheit 180 den Vorgang zu Schritt S82 fortzuschreiten. Wenn die Puffer-Lesezyklus-Zähleinheit 180 bestimmt, dass der inkrementelle Transfer ausgeführt werden soll, veranlasst die Puffer-Lesezyklus-Zähleinheit den Vorgang zu Schritt S84 fortzuschreiten.
  • In Schritt S82 bestimmt die Puffer-Lesezyklus-Zähleinheit 180, ob der von der Puffer-Lesesteuereinheit 140 erzeugte Puffer-Lesezeiger umgelaufen ist oder nicht. Wenn die Puffer-Lesezyklus-Zähleinheit 180 bestimmt, dass der Puffer-Lesezeiger umgelaufen ist (JA in Schritt S82), veranlasst die Puffer-Lesezyklus-Zähleinheit 180 den Vorgang zu Schritt S83 fortzuschreiten. Wenn die Puffer-Lesezyklus-Zähleinheit 180 bestimmt, dass der Puffer-Lesezeiger nicht umgelaufen ist (NEIN in Schritt S82), veranlasst die Puffer-Lesezyklus-Zähleinheit 180 den Vorgang zu Schritt S84 fortzuschreiten.
  • In Schritt S83 zählt die Puffer-Lesezyklus-Zähleinheit 180 den Zähler um +1 hoch.
  • In Schritt S84 bestimmt die Puffer-Lesezyklus-Zähleinheit 180, ob der Vorgang beendet werden soll oder nicht, je nachdem, ob ein Transfer der mit der Größe des Transfers korrespondierenden Daten fertiggestellt ist oder nicht. Wenn die Puffer-Lesezyklus-Zähleinheit 180 bestimmt, dass der Vorgang beendet werden soll (JA in Schritt S84), beendet die Puffer-Lesezyklus-Zähleinheit 180 den Vorgang. Andererseits, wenn die Puffer-Lesezyklus-Zähleinheit 180 bestimmt, dass der Vorgang nicht beendet werden soll (NEIN in Schritt S84), führt die Puffer-Lesezyklus-Zähleinheit 180 den Vorgang zu Schritt S81 zurück und bestimmt erneut, ob der Zähler hochgezählt werden soll oder nicht.
  • Als nächstes werden spezifische Betriebsbeispiele der DMA-Transfer-Steuereinrichtung 100 beschrieben.
  • 17 bis 21 sind jeweils eine Darstellung, welche eine Änderung in Daten während eines DMA-Transfers zeigen, wenn die Daten mit einer größeren Größe als der Größe des internen Puffers 130 DMA-transferiert worden sind, und der Puffer-Schreibfertigstellungszeiger umgelaufen ist. Das heißt, 17 bis 21 sind jeweils die Darstellung, welche die Änderung in den Daten zeigt, wenn „der Puffer-Schreibzyklus-Zählwert > der Puffer-Lesezyklus-Zählwert”.
  • In dem Beispiel in jeder der 17 bis 21 wird angenommen, dass die Größe des internen Puffers 130 64 Bytes ist, von denen zwei Bytes von jeder Zelle angegeben werden. Es wird auch angenommen, dass eine Transferquelle und ein Transferziel in jeder 17 bis 21 ein gleiches Gerät sind, und jede Zelle der Transferquelle und des Transferziels zwei Bytes angibt.
  • In dem Beispiel in jeder der 17 bis 21 werden die Daten in einem Bereich der Transferquelle, welche durch Adressen 00h bis 58h spezifiziert ist, zu einem Bereich des Transferziels, welcher durch Adressen 20h bis 78h spezifiziert ist, durch den dekrementellen Transfer transferiert. Die DMA-Transfer-Steuereinrichtung 100 gibt an die Transferquelle einen Lese-1(Vier-Burst-Lese)-Befehl, einen Lese-2(Vier-Burst-Lese)-Befehl und einen Lese-3(Vier-Burst-Lese)-Befehl in dieser angegebenen Reihenfolge aus.
  • Lese-Reihenfolgen, welche auf der rechten Seite der Transferquelle in jeder der 17 bis 21 gezeigt sind, geben Reihenfolgen an, in welcher die DMA-Transfer-Steuereinrichtung 100 die gelesenen Daten erhält. Die DMA-Transfer-Steuereinrichtung 100 erhält die gelesenen Daten in der Reihenfolge von R1 bis R12 und schreibt die gelesenen Daten in den internen Puffer 130 in der gleichen Reihenfolge. Schreib-Reihenfolgen, welche auf der rechten Seite des Transferziels in jeder der 17 bis 21 gezeigt sind, geben Reihenfolgen an, in welcher die DMA-Transfer-Steuereinrichtung 100 die Daten an das Transferziel ausgibt. Die DMA-Transfer-Steuereinrichtung 100 erhält die geschriebenen Daten von dem internen Puffer 130 in der Reihenfolge von W1 bis W12 und schreibt die Schreibdaten in das Transferziel in der gleichen Reihenfolge.
  • Der Puffer-Schreibfertigstellungszeiger in jeder der 17 bis 21 zeigt einen Bereich des internen Puffers 130 an, wo die Daten vorbereitet werden könnten, und der Puffer-Lesezeiger zeigt einen Bereich des internen Puffers 130 an, der gelesen werden soll. Der Puffer-Schreibzyklus-Zählwert gibt die Anzahl von Umläufen des Puffer-Schreibfertigstellungszeigers an, und der Puffer-Lesezyklus-Zählwert gibt die Anzahl von Umläufen des Puffer-Lesezeigers an. Jeder der Zeiger zählt mit +1 für jeden Umlauf hoch.
  • Als erstes, in Schritt S11, werden die folgenden Einstellungsinformationen in der DMA-Transfer-Steuereinrichtung 100 eingestellt:
    Transferquelladresse: 00h
    Transferzieladresse: 20h
    Transfer-Größe: 96 Bytes
    Transferart: dekrementeller Transfer
  • Als nächstes, in Schritt S12 wird der dekrementelle Transfer jeder Steuereinheit und jeder Zähleinheit von der datenzerstörungsfreien Steuereinheit 160 mitgeteilt. Dann schreitet der Vorgang zu Schritt S14 fort, wo der DMA-Transfer mittels des dekrementellen Transfers ausgeführt wird.
  • In einem Vorgang 1, welcher in 17 gezeigt ist, gibt die Transferquell-Lesesteuereinheit 110 den Lese-1(Vier-Burst-Lese)-Befehl an den Bereich der Transferquelle bei den Adressen 40h bis 58h aus. Bei Empfang der gelesenen Daten von der Transferquelle gibt die Puffer-Schreibsteuereinheit 120 einen Puffer-Schreib-1-Befehl, welcher mit dem Lese-1-Befehl korrespondiert, an den internen Puffer 130 aus, um die gelesenen Daten in einen Bereich des internen Puffers 130 bei Adressen 20h bis 38h zu schreiben. Wenn der durch den Puffer-Schreib-1-Befehl spezifizierte Vorgang abgeschlossen ist, aktualisiert die Puffer-Schreibsteuereinheit 120 den Puffer-Schreibfertigstellungszeiger auf die Adresse 20h.
  • Die Puffer-Lesesteuereinheit 140 stellt den Puffer-Lesezeiger auf die Adresse 20h (gelesener Bereich der Daten, welche gemäß dem Schreib-1(vier Burst-Schreib)-Befehl, der an das Transferziel ausgegeben wird, ausgegeben werden soll) ein.
  • n einem in 18 gezeigten Vorgang 2 gibt die Transferquell-Lesesteuereinheit 110 den Lese-2(vier Burst-Lese)-Befehl an den Bereich der Transferquelle bei den Adressen 20h bis 38h aus. Bei Empfang der gelesenen Daten von der Transferquelle gibt die Puffer-Schreibsteuereinheit 120 an den internen Puffer 130 einen Puffer-Schreib-2-Befehl, welcher dem Lese-2-Befehl entspricht aus, um die gelesenen Daten in einen Bereich des internen Speichers 130 bei Adressen 00h bis 18h zu schreiben. Wenn der von dem Puffer-Schreib-2-Befehl spezifizierte Vorgang abgeschlossen ist, aktualisiert die Puffer-Schreibsteuereinheit 120 den Puffer-Schreibfertigstellungszeiger auf die Adresse 00h.
  • Parallel zum Lesen von der Transferquelle stellt die datenzerstörungsfreie Steuereinheit 160 fest, dass „der Puffer-Schreibzyklus-Zählwert = dem Puffer-Lesezyklus-Zählwert” und „der Puffer-Schreibfertigstellungszeigerwert ≤ dem Puffer-Lesezeigerwert” und gibt dadurch eine Transferziel-schreibbar-Anweisung aus. Beim Feststellen der Transferziel-schreibbar-Anweisung gibt die Puffer-Lesesteuereinheit 140 einen Puffer-Lese-1-Befehl an den Bereich des internen Puffers 130 bei den Adressen 20h bis 38h aus, um die Daten zu lesen, welche in das Transferziel geschrieben werden sollen. Die Transferziel-Schreibsteuereinheit 150 gibt den Schreib-1(Vier-Burst-Schreib)-Befehl an den Bereich des Transferziels bei den Adressen 60h bis 78h aus.
  • In einem in 19 gezeigten Vorgang 3 gibt die Transferquell-Lesesteuereinheit 110 den Lese-3(Vier-Burst-Lese)-Befehl an den Bereich der Transferquelle bei den Adressen 00h bis 18h aus. Bei Empfang der gelesenen Daten von der Transferquelle gibt die Puffer-Schreibsteuereinheit 120 einen Puffer-Schreib-3-Befehl, der mit dem Schreib-3-Befehl korrespondiert, an den internen Puffer 130 aus, um die gelesenen Daten in den Bereich des internen Puffers 130 bei den Adressen 20h bis 38h zu schreiben. Wenn der durch den Puffer-Schreib-3-Befehl spezifizierte Vorgang abgeschlossen ist, wird der Puffer-Schreibfertigstellungszeiger auf die Adresse 20h aktualisiert. Dabei tritt ein Umlauf auf. Die Puffer-Schreibzyklus-Zähleinheit 170 erfasst den Umlauf des Puffer-Schreibfertigstellungszeigers und zählt dann den Puffer-Schreibzyklus-Zählwert um +1 hoch.
  • Die Puffer-Lesesteuereinheit 140 aktualisiert den Puffer-Lesezeiger auf die Adresse 00h, wenn der durch den Puffer-Lese-1-Befehl spezifizierte Vorgang abgeschlossen ist. Die datenzerstörungsfreie Steuereinheit 160 stellt fest, dass „der Puffer-Schreibzykluszählwert > der Puffer-Lesezyklus-Zählwert”, bestimmt, dass eine Datenvorbereitung abgeschlossen ist und gibt dann eine Transferziel-schreibbar-Anweisung aus. Die Puffer-Lesesteuereinheit 140 gibt bei Erfassung der Transferziel-schreibbar-Anweisung einen Puffer-Lese-2-Befehl an den Bereich des internen Puffers 130 bei den Adressen 00h bis 18h aus. Die Transferziel-Schreibsteuereinheit 150 gibt den Schreib-2(Vier-Burst-Schreib)-Befehl an den Bereich des Transferziels bei den Adressen 40h bis 58h aus.
  • In einem in 20 gezeigten Vorgang 4, wenn der durch den Puffer-Lese-2-Befehl spezifizierte Vorgang abgeschlossen ist, aktualisiert die Puffer-Lesesteuereinheit 140 den Puffer-Lesezeiger auf die Adresse 20h. Dabei tritt ein Umlauf auf. Die Puffer-Lesezyklus-Zähleinheit 180 erfasst den Umlauf und zählt dann den Puffer-Lesezyklus-Zählwert um +1 hoch. Die datenzerstörungsfreie Steuereinheit 160 stellt fest, dass „der Puffer-Schreibzyklus-Zählwert = dem Puffer-Lesezyklus-Zählwert” und „der Puffer-Schreibfertigstellungszeigerwert ≤ dem Puffer-Lesezeigerwert”, bestimmt, dass eine Datenvorbereitung abgeschlossen ist und gibt dann eine Transferziel-schreibbar-Anweisung aus. Die Puffer-Lesesteuereinheit 140 gibt bei Erfassung der Transferzielschreibbar-Anweisung einen Puffer-Lese-3-Befehl an den Bereich des internen Puffers 130 bei den Adressen 20h bis 38h aus. Die Transferziel-Schreibsteuereinheit 150 gibt den Schreib-3(Vier-Burst-Schreib)-Befehl an den Bereich des Transferziels bei den Adressen 20h bis 38h aus.
  • In einem in 21 gezeigten Vorgang 5 wird das DMA-Transferergebnis gezeigt. Wie in dem Transferziel gezeigt ist, ist der Transfer der Daten abgeschlossen ohne ein Auftreten einer Zerstörung der Daten.
  • 22 bis 26 zeigen jeweils eine Darstellung, welche eine Änderung in Daten während eines DMA-Transfers zeigt, wenn die Daten mit einer Größe größer als die Größe des internen Puffers 130 DMA transferiert worden sind und der Puffer-Lesezeiger früher umgelaufen ist. Das heißt, 22 bis 26 sind jeweils die Darstellung, welche die Änderung in den Daten zeigen, wenn „der Puffer-Schreibzyklus-Zählwert < der Puffer-Lesezyklus-Zählwert”.
  • In dem Beispiel in jeder der 22 bis 26 wird angenommen, dass die Größe des internen Puffers 130 64 Bytes ist, von denen zwei Bytes von jeder Zelle angegeben werden. Es wird auch angenommen, dass eine Transferquelle und ein Transferziel in jeder der 22 bis 26 ein gleiches Gerät sind, und jede Zelle der Transferquelle und des Transferziels zwei Bytes angeben.
  • In dem Beispiel in jeder der 22 bis 26 werden die Daten in einen Bereich der Transferquelle, welcher durch Adressen 08h bis 58h spezifiziert ist, zu einem Bereich des Transferziels, welcher durch Adressen 20h bis 70h spezifiziert ist, durch den dekrementellen Transfer transferiert. Die DMA-Transfer-Steuereinrichtung 100 gibt an die Transferquelle einen Lese-1(Vier-Burst-Lese)-Befehl, einen Lese-2(Vier-Burst-Lese)-Befehl und einen Lese-3 (Drei-Burst-Lese)-Befehl in dieser dargelegten Reihenfolge aus. Die DMA-Transfer-Steuereinrichtung 100 gibt an das Transferziel einen Schreib-1(Drei-Burst-Schreib)-Befehl, einen Schreib-2(Vier-Burst-Schreib)-Befehl und einen Schreib-3(Vier-Burst-Lese)-Befehl in dieser dargelegten Reihenfolge aus. Wenn die Adresse eines Leseziels und die Adresse eines Schreibziels sich jeweils über einen 32-Byte-Rand ausdehnen, wird ein Befehl für einen Burst-Transfer von drei Bursts oder weniger zum Runden ausgegeben.
  • Lese-Reihenfolgen, welche auf der rechten Seite der Transferquelle in jeder der 22 bis 26 gezeigt sind, geben Reihenfolgen an, in welchen die DMA-Transfer-Steuereinrichtung 100 die gelesenen Daten erhält. Die DMA-Transfer-Steuereinheit 100 erhält die gelesenen Daten in der Reihenfolge von R1 bis R11 und schreibt die gelesenen Daten in den internen Puffer 130 in der gleichen Reihenfolge. Schreib-Reihenfolgen, welche auf der rechten Seite des Transferziels in jeder 22 bis 26 gezeigt sind, geben Reihenfolgen an, in welchen die DMA-Transfer-Steuereinrichtung 100 die Daten an das Transferziel ausgibt. Die DMA-Transfer-Steuereinrichtung 100 erhält die Schreibdaten von dem internen Puffer 130 in der Reihenfolge von W1 bis W11 und schreibt die erhaltenen Schreibdaten in das Transferziel in der gleichen Reihenfolge. Der Puffer-Schreibfertigstellungszeiger in jeder 22 bis 26 gibt einen Bereich des internen Puffers an, wo die Daten vorbereitet werden könnten, und der Puffer-Lesezeiger gibt einen Bereich des internen Puffers 130 an, der gelesen werden soll. Der Puffer-Schreibzyklus-Zählwert gibt die Anzahl von Umläufen des Puffer-Schreibfertigstellungszeigers an, und der Puffer-Lesezyklus-Zählwert gibt die Anzahl von Umläufen des Puffer-Lesezeigers an. Jeder der Zeiger zählt um +1 für jeden Umlauf hoch.
  • Als erstes, in Schritt S11, werden die folgenden Einstellungsinformationen in der DMA-Transfer-Steuereinrichtung 100 eingestellt:
    Transferquelladresse: 00h
    Transferzieladresse: 20h
    Transfer-Größe: 88 Bytes
    Transferart: dekrementeller Transfer
  • Als nächstes, in Schritt S12, wird der dekrementelle Transfer jeder Steuereinheit und jeder Zähleinheit von der datenzerstörungsfreien Steuereinheit 160 mitgeteilt. Dann schreitet der Vorgang zu Schritt S14 fort, wo der DMA-Transfer durch den dekrementellen Transfer ausgeführt wird.
  • In einem in 22 gezeigten Vorgang 1 gibt die Transferquell-Lesesteuereinheit 110 den Lese-1(Vier-Burst-Lese)-Befehl an den Bereich der Transferquelle bei den Adressen 40h bis 58h aus. Bei Empfang der gelesenen Daten von der Transferquelle gibt die Puffer-Schreibsteuereinheit 120 einen Puffer-Schreib-1-Befehl, welcher mit dem Lese-1-Befehl korrespondiert, an den internen Puffer 130 aus, um die gelesenen Daten in den Bereich des internen Puffers bei den Adressen 20h bis 38h zu speichern. Wenn der durch den Puffer-Schreib-1-Befehl spezifizierte Vorgang abgeschlossen ist, aktualisiert die Puffer-Schreibsteuereinheit 120 den Puffer-Schreibfertigstellungszeiger auf die Adresse 20h. Die Puffer-Schreibsteuereinheit 140 stellt den Puffer-Lesezeiger auf den gelesenen Bereich (bei der Adresse 28h) der Daten ein, welche gemäß dem Schreib-1(Drei-Burst-Schreib)-Befehl ausgegeben werden sollen, welcher an das Transferziel ausgegeben wird. Die datenzerstörungsfreie Steuereinheit 160 stellt fest, dass „der Puffer-Schreibzyklus-Zählwert = dem Puffer-Lesezyklus-Zählwert” und „der Puffer-Schreibfertigstellungszeigerwert ≤ dem Puffer-Lesezeigerwert” und gibt dadurch eine Transferziel-schreibbar-Anweisung aus. Bei Erfassung der Transferziel-schreibbar-Anweisung gibt die Puffer-Lesesteuereinheit 140 einen Puffer-Lese-1-Befehl an einen Bereich des internen Puffers 130 bei den Adressen 28h bis 38h aus, um die Daten zu lesen, welche in das Transferziel geschrieben werden sollen. Die Transferziel-Schreibsteuereinheit 150 gibt den Schreib-1(Drei-Burst-Schreib)-Befehl an den Bereich des Transferziels bei den Adressen 60h bis 70h aus.
  • In einem in 23 gezeigten Vorgang 2 gibt die Transferquell-Lesesteuereinheit 110 den Lese-2(Vier-Burst-Lese)-Befehl an den Bereich der Transferquelle bei den Adressen 20h bis 38h aus. Bei Empfang der gelesenen Daten von der Transferquelle gibt die Puffer-Schreibsteuereinheit 120 an den internen Puffer 130 einen Puffer-Schreib-2-Befehl, welcher mit dem Lese-2-Befehl korrespondiert, aus, um die gelesenen Daten in den Bereich des internen Puffers 130 bei den Adressen 00h bis 18h zu schreiben. Wenn der durch den Puffer-Schreib-2-Befehl spezifizierte Vorgang abgeschlossen ist, aktualisiert die Puffer-Schreibsteuereinheit 120 den Puffer-Schreibfertigstellungszeiger auf die Adresse 00h.
  • Wenn der durch den Puffer-Lese-1-Befehl spezifizierte Vorgang abgeschlossen ist, aktualisiert die Puffer-Lesesteuereinheit 140 den Puffer-Lesezeiger auf die Adresse 08h. Die datenzerstörungsfreie Steuereinheit 160 stellt fest, dass „der Puffer-Schreibzyklus-Zählwert = dem Puffer-Lesezyklus-Zählwert” und „der Puffer-Schreibfertigstellungszeigerwert ≤ dem Puffer-Lesezeigerwert” und gibt dadurch eine Transferquelle-schreibbar-Anweisung aus. Bei Erfassung der Transferquelle-schreibbar-Anweisung gibt die Puffer-Lesesteuereinheit 140 einen Puffer-Lese-2-Befehl an einen Bereich des internen Puffers 130 bei den Adressen 08h bis 20h aus, um die Daten zu lesen, welche in das Transferziel geschrieben werden sollen. Die Transferziel-Schreibsteuereinheit 150 gibt den Schreib-2(Vier-Burst-Schreib)-Befehl an den Bereich des Transferziels bei den Adressen 40h bis 58h aus.
  • In einem in 24 gezeigten Vorgang 3 gibt die Transferquell-Lesesteuereinheit 110 den Lese-3(Drei-Burst-Lese)-Befehl an den Bereich der Transferquelle bei den Adressen 08h bis 18h aus. Bei Empfang der gelesenen Daten von der Transferquelle gibt die Puffer-Schreibsteuereinheit 120 einen Puffer-Schreib-3-Befehl, welcher mit dem Lese-3-Befehl korrespondiert, an den internen Puffer 130 aus, um die gelesenen Daten in den Bereich des internen Puffers bei den Adressen 28h bis 38h zu schreiben. Hier wird angenommen, dass der durch den Puffer-Schreib-3-Befehl spezifizierte Vorgang nicht abgeschlossen ist. Daher wird der Puffer-Schreibfertigstellungszeiger nicht aktualisiert.
  • Da der durch den Puffer-Lese-2-Befehl spezifizierte Vorgang nicht fertiggestellt worden ist, aktualisiert die Puffer-Lesesteuereinheit 140 den Puffer-Lesezeiger auf die Adresse 28h. Dabei tritt ein Umlauf auf. Die Puffer-Lesezyklus-Zähleinheit 180 erfasst den Umlauf und zählt dann den Puffer-Lesezyklus-Zählwert um +1 hoch. Die datenzerstörungsfreie Steuereinheit 160 stellt fest, dass „der Puffer-Schreibzyklus-Zählwert < der Puffer-Lesezyklus-Zählwert”, bestimmt, dass eine Datenvorbereitung nicht abgeschlossen ist und gibt daher eine Transferziel-schreibbar-Anweisung (erlaubt ein Schreiben in das Transferziel nicht) aus. Die Puffer-Lesesteuereinheit 140 erfasst keine Transferziel-schreibbar-Anweisung. Daher gibt die Puffer-Lesesteuereinheit 140 keinen anschließenden Puffer-Lesebefehl an den internen Puffer 130 aus. Gleichermaßen gibt die Transferziel-Schreibsteuereinheit 150 auch nicht den anschließenden Schreib-3(Vier-Burst-Schreib)-Befehl an das Transferziel aus.
  • In einem in 25 gezeigten Vorgang 4 ist ein durch den Puffer-Schreib-3-Befehl spezifizierter Vorgang abgeschlossen. Dann aktualisiert die Puffer-Schreibsteuereinheit 120 den Puffer-Schreibfertigstellungszeiger auf die Adresse 28h. Dabei tritt ein Umlauf auf. Die Puffer-Schreibzyklus-Zähleinheit 170 erfasst den Umlauf des Puffer-Schreibfertigstellungszeigers und zählt dann den Puffer-Schreibzyklus-Zählwert um +1 hoch.
  • Die datenzerstörungsfreie Steuereinheit 160 stellt fest, dass „der Puffer-Schreibzyklus-Zählwert = dem Puffer-Lesezyklus-Zählwert” und „der Puffer-Schreibfertigstellungszeigerwert ≤ dem Puffer-Lesezeigerwert”, bestimmt, dass die Datenvorbereitung abgeschlossen ist und gibt dann die Transferzielschreibbar-Anweisung aus. Die Puffer-Lesesteuereinheit 140 gibt bei Erfassung der Transferziel-schreibbar-Anweisung einen Puffer-Lese-3-Befehl an einen Bereich des internen Puffers 130 bei den Adressen 28h bis 00h aus, um die in das Transferziel zu schreibenden Daten zu lesen. Die Transferziel-Schreibsteuereinheit 150 gibt den Schreib-3(Vier-Burst-Schreib)-Befehl an den Bereich des Transferziels bei den Adressen 20h bis 38h aus.
  • In einem in 26 gezeigten Vorgang 5 ist das DMA-Transfer-Ergebnis gezeigt. Wie in dem Transferziel gezeigt, ist der Transfer der Daten abgeschlossen ohne ein Auftreten von Datenzerstörung.
  • 27 bis 31 zeigen jeweils eine Darstellung, welche eine Änderung in Daten während eines DMA-Transfers zeigt, wenn die Daten von einer Größe kleiner als die Größe des internen Puffers 130 DMA-transferiert worden sind, und weder der Puffer-Schreibfertigstellungszeiger noch der Puffer-Lesezeiger umgelaufen sind. Das heißt, 27 bis 31 zeigen jeweils die Darstellung, welche die Änderung in den Daten zeigt, wenn „der Puffer-Schreibzyklus-Zählwert = dem Puffer-Lesezyklus-Zählwert”. Zur Vereinfachung wird hier ein spezifisches Beispiel aufgezeigt, in dem weder der Puffer-Schreibfertigstellungszeiger noch der Puffer-Lesezeiger umgelaufen sind. Ein ähnlicher Effekt kann jedoch auch erhalten werden, sogar wenn die Anzahlen der Umläufe des Puffer-Schreibfertigstellungszeigers sowie des Puffer-Lesezeigers gleich sind.
  • In dem Beispiel in jeder der 27 bis 31 wird angenommen, dass die Größe des internen Puffers 130 64 Bytes beträgt, von denen zwei Bytes durch jede Zelle angegeben werden. Es wird auch angenommen, dass eine Transferquelle und ein Transferziel in jeder der 27 bis 31 ein gleiches Gerät sind, und jede Zelle der Transferquelle und des Transferziels zwei Bytes angibt.
  • In dem Beispiel in jeder der 27 bis 31 werden die Daten in einem Bereich der Transferquelle, welcher durch Adressen 00h bis 30h spezifiziert ist, zu einem Bereich des Transferziels, welcher durch Adressen 18h bis 48h spezifiziert ist, durch den dekrementellen Transfer transferiert. Die DMA-Transfer-Steuereinrichtung 100 gibt an die Transferquelle einen Lese-1(Drei-Burst-Lese)-Befehl und einen Lese-2(Vier-Burst-Lese)-Befehl in dieser angegebenen Reihenfolge aus. Die DMA-Transfer-Steuereinrichtung 100 gibt an das Transferziel einen Schreib-1(Vier-Burst-Schreib)-Befehl und einen Schreib-2(Drei-Burst-Schreib)-Befehl in dieser angegebenen Reihenfolge aus. Wenn die Adresse eines Leseziels und die Adresse eines Schreibziels jeweils einen 32-Byte-Rand übersteigen, wird ein Befehl zum Burst-Transfer von drei Bursts oder weniger zum Runden ausgegeben.
  • Lese-Reihenfolgen, welche auf der rechten Seite der Transferquelle in jeder der 27 bis 31 gezeigt sind, geben Reihenfolgen an, in welcher die DMA-Transfer-Steuereinrichtung 100 die gelesenen Daten erhält. Die DMA-Transfer-Steuereinrichtung 100 erhält die gelesenen Daten in der Reihenfolge von R1 bis R7 und schreibt die gelesenen Daten in den internen Puffer 130 in der gleichen Reihenfolge. Schreib-Reihenfolgen, welche auf der rechten Seite des Transferziels in jeder der 27 bis 31 gezeigt sind, geben Reihenfolgen an, in welcher die DMA-Transfer-Steuereinrichtung 100 die Daten an das Transferziel ausgeben. Die DMA-Transfer-Steuereinrichtung 100 erhält die geschriebenen Daten von dem internen Puffer 130 in der Reihenfolge von W1 bis W7 und schreibt die Daten in das Transferziel in der gleichen Reihenfolge.
  • Der Puffer-Schreibfertigstellungszeiger in jeder der 27 bis 31 gibt einen Bereich des internen Puffers 130 an, wo die Daten vorbereitet werden könnten, und der Puffer-Lesezeiger gibt einen Bereich des internen Puffers 130 an, der gelesen werden soll. Der Puffer-Schreibzyklus-Zähler gibt die Anzahl von Umläufen des Puffer-Schreibfertigstellungszeigers an, und der Puffer-Lesezyklus-Zähler gibt die Anzahl von Umläufen des Puffer-Lesezeigers an. Jeder der Zeiger zählt für jeden Umlauf um +1 hoch.
  • Zuerst werden in Schritt S11 die folgenden Einstellungsinformationen in der DMA-Transfer-Steuereinheit 100 eingestellt:
    Transferquelladresse: 00h
    Transferzieladresse: 30h
    Transfer-Größe: 56 Bytes
    Transferart: dekrementeller Transfer
  • Als nächstes wird in Schritt S12 jeder Steuereinheit und jeder Zähleinheit der dekrementelle Transfer von der datenzerstörungsfreien Steuereinheit 160 mitgeteilt. Dann schreitet der Vorgang zu Schritt S14 fort, wo der DMA-Transfer durch den dekrementellen Transfer ausgeführt wird.
  • In einem in 27 gezeigten Vorgang 1 gibt die Transferquell-Lesesteuereinheit 110 den Lese-1(Drei-Burst-Lese)-Befehl an den Bereich der Transferquelle bei den Adressen 20h bis 30h aus. Bei Empfang der gelesenen Daten von der Transferquelle gibt die Puffer-Schreibsteuereinheit 120 einen Puffer-Schreib-1-Befehl, welcher mit dem Lese-1-Befehl korrespondiert, an den internen Puffer 130 aus, um die gelesenen Daten in den Bereich des internen Puffers 130 bei den Adressen 28h bis 38h zu schreiben. Wenn der von dem Puffer-Schreib-1-Befehl spezifizierte Vorgang abgeschlossen ist, aktualisiert die Puffer-Schreib-Steuereinheit 120 den Puffer-Schreibfertigstellungszeiger auf die Adresse 28h.
  • Die Puffer-Lesesteuereinheit 140 stellt den Puffer-Lesezeiger auf den gelesenen Bereich (bei der Adresse 20h) der Daten ein, welche gemäß dem Schreib-1(Vier-Burst-Schreib)-Befehl, der an das Transferziel ausgegeben wird, ausgegeben werden sollen.
  • In einem in 28 gezeigten Vorgang 2 gibt die Transferquell-Lesesteuereinheit 110 den Lese-2(Vier-Burst-Lese)-Befehl an den Bereich der Transferquelle bei den Adressen 00h bis 18h aus. Bei Empfang der gelesenen Daten von der Transferquelle, gibt die Puffer-Schreibsteuereinheit 120 an den internen Puffer 130 einen Puffer-Schreib-2-Befehl, welcher mit dem Lese-2-Befehl korrespondiert, aus, um die gelesenen Daten in den Bereich des internen Puffers 130 bei den Adressen 08h bis 20h zu schreiben. Hier wird angenommen, dass der durch den Puffer-Schreib-2-Befehl spezifizierte Vorgang nicht abgeschlossen ist und dass die Puffer-Schreibsteuereinheit 120 den Puffer-Schreibfertigstellungszeiger nicht aktualisiert.
  • Die datenzerstörungsfreie Steuereinheit 160 stellt fest, dass „der Puffer-Schreibzyklus-Zählwert = dem Puffer-Lesezyklus-Zählwert” und der Puffer-Schreibfertigstellungszeigerwert > der Puffer-Lesezeigerwert”, bestimmt, dass eine Datenvorbereitung nicht abgeschlossen ist und gibt daher keine Transferziel-schreibbar-Anweisung aus. Da die Puffer-Lesesteuereinheit 140 die Transferziel-schreibbar-Anweisung nicht erfasst, gibt die Puffer-Lesesteuereinheit 140 keinen Puffer-Lese-1-Befehl aus. Gleichermaßen gibt die Transferziel-Schreibsteuereinheit 150 keinen Schreib-1-Befehl aus. In dem Zustand des Vorgangs 2 wird bestimmt, dass die Datenvorbereitung nicht fertiggestellt worden ist, weil ein Datenbetrag (welcher vier Bursts entspricht), der notwendig für den anschließenden Schreib-1-Befehl ist, vorhanden ist, aber die notwendigen Datentypen (Daten von 13 bis 28) nicht vorhanden sind.
  • In einem in 29 gezeigten Vorgang 3 ist der durch den Puffer-Schreib-2-Befehl spezifizierte Vorgang abgeschlossen. Dann aktualisiert die Puffer-Schreibsteuereinheit 120 den Puffer-Schreibfertigstellungszeiger auf die Adresse 08h.
  • Die datenzerstörungsfreie Steuereinheit 160 stellt fest, dass „der Puffer-Schreibzyklus-Zählwert = dem Puffer-Lesezyklus-Zählwert” und „der Puffer-Schreibfertigstellungszeigerwert ≤ dem Puffer-Lesezeigerwert”, bestimmt, dass die Datenvorbereitung abgeschlossen ist und gibt dann die Transferzielschreibbar-Anweisung aus. Bei Erfassung der Transferziel-Anweisung gibt die Puffer-Lesesteuereinheit 140 den Puffer-Lese-1-Befehl an den Bereich des internen Puffers 130 bei den Adressen 20h bis 38h aus, um die in das Transferziel zu schreibenden Daten zu lesen. Die Transferziel-Schreibsteuereinheit 150 gibt den Schreib-1(Vier-Burst-Schreib)-Befehl an den Bereich des Transferziels bei den Adressen 30h bis 48h aus.
  • In einem in 30 gezeigten Vorgang 4 aktualisiert die Puffer-Lesesteuereinheit 140 den Puffer-Lesezeiger auf die Adresse 08h, wenn der durch den Puffer-Lese-1-Befehl spezifizierte Vorgang abgeschlossen ist. Die datenzerstörungsfreie Steuereinheit 160 stellt fest, dass „der Puffer-Schreibzyklus-Zählwert = dem Puffer-Lesezyklus-Zählwert” und „der Puffer-Schreibfertigstellungszeigerwert” ≤ dem Puffer-Lesezeigerwert”, bestimmt, dass die Datenvorbereitung abgeschlossen ist und gibt dann eine Transferzielschreibbar-Anweisung aus. Bei Erfassung der Transferziel-schreibbar-Anweisung gibt die Puffer-Lesesteuereinheit 140 einen Puffer-Lese-2-Befehl an einen Bereich des internen Puffers 130 bei den Adressen 08h bis 18h aus, um die in das Transferziel zu schreibenden Daten zu lesen. Die Transferziel-Schreibsteuereinheit 150 gibt den Schreib-2(Drei-Burst-Schreib)-Befehl an den Bereich des Transferziels bei den Adressen 18h bis 28h aus.
  • In einem in 31 gezeigten Vorgang 5 ist das DMA-Transfer-Ergebnis gezeigt. Wie in dem Transferziel gezeigt, ist der Transfer der Daten abgeschlossen ohne ein Auftreten von Datenzerstörung.
  • Zweites Ausführungsbeispiel
  • In dem ersten Ausführungsbeispiel spezifiziert die CPU 200, ob der inkrementelle Transfer oder der dekrementelle Transfer ausgeführt werden soll. Das heißt, es ist notwendig, von der CPU 200 zu bestimmen, ob der inkrementelle Transfer oder der dekrementelle Transfer ausgeführt werden soll.
  • In einem zweiten Ausführungsbeispiel erfolgt eine Beschreibung eines Verfahrens, bei dem die DMA-Transfer-Steuereinrichtung 100 geeignet bestimmt, ob der inkrementelle Transfer oder der dekrementelle Transfer ausgeführt werden soll gemäß einem Überlappungszustand zwischen einem Transferquellbereich und einem Transferzielbereich.
  • Die DMA-Transfer-Steuereinrichtung 100 gemäß dem zweiten Ausführungsbeispiel unterscheidet sich von der DMA-Transfer-Steuereinrichtung 100 nur in einer Konfiguration der datenzerstörungsfreien Steuereinheit 160.
  • 32 ist eine Darstellung, welche die Konfiguration der datenzerstörungsfreien Steuereinheit 160 gemäß dem zweiten Ausführungsbeispiel zeigt. Die datenzerstörungsfreie Steuereinheit 160 gemäß dem zweiten Ausführungsbeispiel beinhaltet kein Transferart-Einstellregister 161, welche in der datenzerstörungsfreien Steuereinheit 160 gemäß dem ersten Ausführungsbeispiel enthalten ist. Anstelle des Transferart-Einstellregisters 160 beinhaltet die datenzerstörungsfreie Steuereinheit 160 gemäß dem zweiten Ausführungsbeispiel ein Datenzerstörungsfreie-Funktion-AN/AUS-Einstellregister 191, ein Transferquelladress-Einstellregister 192, ein Transferzieladress-Einstellregister 193, ein Transfer-Größe-Einstellregister 194 und eine Transferart-Bestimmungseinheit 195.
  • In dem Datenzerstörungsfreie-Funktion-AN/AUS-Einstellregister 191 wird eingestellt, ob eine datenzerstörungsfreie Funktion AN (wirksam) oder AUS (unwirksam) sein soll.
  • Eine Start-Adresse für den Transferquellbereich wird in dem Transferquelladress-Einstellregister 192 eingestellt. Eine Start-Adresse für den Transferzielbereich wird in dem Transferzieladress-Einstellregister 193 eingestellt. Die Größe der Transferdaten wird in das Transfer-Größe-Einstellregister 194 eingestellt.
  • Wenn die datenzerstörungsfreie Funktion in das Datemzerstörungsfreie-Funktion-AN/AUS-Einstellregister 191 auf AN eingestellt wird, bestimmt die Transferart-Bestimmungseinheit 195 die Transferart wie folgt und teilt jeder Steuereinheit die Transferart mit:
    • (A) wenn der Transferquellbereich und der Transferzielbereich nicht miteinander überlappen, bestimmt die Transferart-Bestimmungseinheit 195, dass die Transferart der inkrementelle Transfer sein soll.
    • (B) Wenn die Transferquelle und der Transferzielbereich miteinander überlappen, bestimmt die Transferart-Bestimmungseinheit 195, die Transferart gemäß der folgenden Kriterien (a) bis (c): (a) Wenn der Transferquellbereich und der Transferzielbereich vollständig der gleiche Bereich sind, bestimmt die Transferart-Bestimmungseinheit 195, dass die Transferart der inkrementelle Transfer sein soll. (b) Wenn der Adresswert der Adresse (Start-Adresse für den Transferquellbereich) der in das Transferquelladress-Einstellregister 192 eingestellt ist, kleiner ist als der Adresswert der Adresse (Start-Adresse für den Transferzielbereich), der in das Transferzieladress-Einstellregister 193 eingestellt ist, bestimmt die Transferart-Bestimmungseinheit 195, dass die Transferart der dekrementelle Transfer sein soll. (c) Wenn der Adresswert der Adresse (Start-Adresse für den Transferquellbereich), welcher in das Transferquelladress-Einstellregister 192 eingestellt ist, größer ist als der Adresswert der Adresse (Start-Adresse für den Transferzielbereich), welcher in das Transferzieladress-Einstellregister 193 eingestellt ist, bestimmt die Transferart-Bestimmungseinheit 195, dass die Transferart der inkrementelle Transfer sein soll.
  • Andererseits, wenn die datenzerstörungsfreie Funktion in das Datenzerstörungsfreie-Funktion-AN/AUS-Einstellregister 191 auf AUS eingestellt wird, teilt die Transferart-Bestimmungseinheit 195 jeder Steuereinheit ständig den inkrementellen Transfer mit.
  • 33 ist ein Flussdiagramm, welches Arbeitsvorgänge der gesamten DMA-Transfer-Steuereinrichtung 100 gemäß dem zweiten Ausführungsbeispiel zeigt.
  • Schritt S71 ist der gleiche wie S11 in 9. In diesem Schritt wird in das Register auch eingestellt, ob die datenzerstörungsfreie Funktion auf AN oder AUS eingestellt werden soll.
  • In Schritt S72 bestimmt die datenzerstörungsfreie Steuereinheit 160, ob die Einstellung in das Register (Datenzerstörungsfreie-Funktion-AN/AUS-Einstellregister 191) auf AN oder AUS eingestellt werden soll. Wenn bestimmt wird, dass die Einstellung auf AN eingestellt werden soll, veranlasst die DMA-Steuereinrichtung 100 den Vorgang zu Schritt S73 fortzuschreiten. Wenn bestimmt wird, dass die Einstellung auf AUS eingestellt werden soll, teilt die DMA-Transfer-Steuereinrichtung 100 jeder Steuereinheit mit, dass die Transferart der inkrementelle Transfer ist und veranlasst den Vorgang zu Schritt S75 fortzuschreiten.
  • In Schritt S73 bestimmt die datenzerstörungsfreie Steuereinheit 160, ob der inkrementelle Transfer oder der dekrementelle Transfer ausgeführt werden soll. Wenn bestimmt wird, dass der dekrementelle Transfer ausgeführt werden soll, teilt die DMA-Transfer-Steuereinrichtung 100 jeder Steuereinheit den dekrementellen Transfer mit und veranlasst den Vorgang zu Schritt S74 fortzuschreiten. Andererseits, wenn bestimmt wird, dass der inkrementelle Transfer ausgeführt werden soll, teilt die DMA-Transfer-Steuereinrichtung 100 jeder Steuereinheit den inkrementellen Transfer mit und veranlasst den Vorgang zu Schritt S75 fortzuschreiten.
  • In Schritt S74 führt die DMA-Transfer-Steuereinrichtung 100 den dekrementellen Transfer mit Bezug auf den Speicher 300 aus. Andererseits, in Schritt S75, führt die DMA-Transfer-Steuereinrichtung den inkrementellen Transfer mit Bezug auf den Speicher 300 aus.
  • Dann in Schritt S76, wird der Transfervorgang angehalten, wenn es einen DMA-Transferstoppeinfluss gibt, wie eine Fertigstellung des Transfers von Daten mit einer durch die DMA-Transfer-Steuereinrichtung 100 spezifizierten Datenlänge.
  • Wie oben beschrieben kann der Datentransfer gemäß der DMA-Transfer-Steuereinrichtung 100 in dem zweiten Ausführungsbeispiel ausgeführt werden, nachdem die DMA-Transfer-Steuereinrichtung die geeignete Transferart bestimmt hat, wobei die Transferart nicht durch die CPU 200 spezifiziert wird.
  • In der obigen Beschreibung wird jede Steuereinheit durch beispielsweise einen Schaltkreis oder ähnliches gebildet. Daher kann eine Einheit” als ein „~-Schaltkreis” interpretiert werden.
  • Bezugszeichenliste
  • 10
    DMA-Transfersystem
    100
    DMA-Transfer-Steuereinrichtung
    110
    Transferquell-Lesesteuereinheit
    120
    Puffer-Schreibsteuereinheit
    130
    interner Puffer
    140
    Puffer-Lesesteuereinheit
    150
    Transferziel-Schreibsteuereinheit
    160
    datenzerstörungsfreie Steuereinheit
    161
    Transferart-Einstellregister
    162
    Puffer-Schreibfertigstellungszeiger-Einstellregister
    163
    Puffer-Lesezeiger-Einstellregister
    164
    erste Puffer-Vorbereitungsfertigstellungs-Bestimmungseinheit
    165
    zweite Puffer-Vorbereitungsfertigstellungs-Bestimmungseinheit
    166
    Umlaufanzahl-Übereinstimmungs-Bestimmungseinheit
    167
    Selektor
    170
    Puffer-Schreibzyklus-Zähleinheit
    171
    Umlauf-Erfassungseinheit
    172
    Umlaufanzahl-Zähleinheit
    180
    Puffer-Lesezyklus-Zähleinheit
    181
    Umlauf-Erfassungseinheit
    182
    Umlaufanzahl-Zähleinheit
    191
    Datenzerstörungsfreie-Funktion-AN/AUS-Einstellregister
    192
    Transferquelladress-Einstellregister
    193
    Transferzieladress-Einstellregister
    194
    Transfer-Größe-Einstellregister
    195
    Transferart-Bestimmungseinheit
    200
    CPU
    300
    Speicher

Claims (7)

  1. Datentransfereinrichtung, die in einem Transferquellbereich gespeicherte Daten in einen Transferzielbereich transferiert, wobei die Datentransfereinrichtung umfasst: eine Transferquell-Lesesteuereinheit, die einen Lesebefehl zum Lesen der in dem Transferquellbereich gespeicherten Daten ausgibt, eine Puffer-Schreibsteuereinheit, welche die Daten erhält, die durch den Lesebefehl gelesen worden sind, der von der Transferquell-Lesesteuereinheit ausgegeben worden ist, und die Daten in einen Ringpuffer schreibt; eine Puffer-Lesesteuereinheit, welche die von der Puffer-Schreibsteuereinheit geschriebenen Daten von dem Ringpuffer liest und die Daten an den Transferzielbereich überträgt; eine Transferziel-Schreibsteuereinheit, die einen Schreibbefehl zum Schreiben der von der Puffer-Schreibsteuereinheit an den Transferzielbereich übertragenen Daten in den Transferzielbereich ausgibt; eine Schreibzyklus-Zähleinheit, die eine Anzahl von Umläufen der Puffer-Schreibsteuereinheit zählt; eine Lesezyklus-Zähleinheit, die eine Anzahl von Umläufen der Puffer-Lesesteuereinheit zählt; und eine datenzerstörungsfreie Steuereinheit, die bestimmt, ein Schreiben der Daten in den Transferzielbereich basierend auf einem Größenverhältnis zwischen der von der Schreibzyklus-Zähleinheit gezählten Anzahl und der von der Lesezyklus-Zähleinheit gezählten Anzahl zu erlauben oder nicht; wobei die Puffer-Lesesteuereinheit die Daten von dem Ringpuffer liest, wenn die datenzerstörungsfreie Steuereinheit bestimmt, ein Schreiben zu erlauben; und wobei, wenn die datenzerstörungsfreie Steuereinheit bestimmt, ein Schreiben zu erlauben, die Transferziel-Schreibsteuereinheit den Schreibbefehl zum Schreiben der von der Puffer-Lesesteuereinheit an den Transferzielbereich übertragenen Daten in den Transferzielbereich ausgibt.
  2. Datentransfereinrichtung nach Anspruch 1, wobei die datenzerstörungsfreie Steuereinheit bestimmt, ein Schreiben der Daten in den Transferzielbereich weiterhin basierend auf einem Größenverhältnis zwischen einem Wert einer Adresse in dem Ringpuffer, wo die Puffer-Schreibsteuereinheit ein Schreiben der Daten fertiggestellt hat, und einem Wert einer Adresse in dem Ringpuffer, von welcher die Puffer-Lesesteuereinheit die Daten noch lesen wird, zu erlauben oder nicht.
  3. Datentransfereinrichtung nach Anspruch 2, wobei die Transferquell-Lesesteuereinheit eine Vielzahl von Lesebefehlen erzeugt, so dass Adresswerte von Lesestart-Adresse der Vielzahl von Lesebefehlen in einer absteigenden Reihenfolge angeordnet sind, und fortlaufend die Vielzahl von Lesebefehlen ausgibt, wobei jeder Lesebefehl anweist, fortlaufend jeden Einheitsbetrag der Daten in einer ansteigenden Reihenfolge von Adresswerten beginnend bei einer Lese-Startadresse, bis eine vorbestimmte Anzahl von Einheitsbeträgen der Daten erreicht wird, zu lesen; wobei die Puffer-Schreibsteuereinheit jeden Einheitsbetrag der durch jeden von der Transferquellsteuereinheit ausgegebenen Lesebefehl gelesenen Daten in einer Reihenfolge erhält, in der die Transferquell-Lesesteuereinheit den Lesebefehl ausgegeben hat, und die vorbestimmte Anzahl von Einheitsbeträgen der Daten in den Ringpuffer in einer aufsteigenden Reihenfolge von Adresswerten des Ringpuffers beginnend bei einer Adresse in dem Ringpuffer, welche der Lese-Startadresse des Lesebefehls entspricht, schreibt und einen Schreibfertigstellungszeiger an die Adresse in dem Ringpuffer setzt, welche der Lese-Startadresse entspricht, wenn ein Schreiben der durch den Lesebefehl gelesenen Daten in den Ringpuffer beendet ist; wobei die Transferziel-Schreibsteuereinheit eine Vielzahl von Schreibbefehlen erzeugt, so dass Adresswerte von Schreibstart-Adressen der Vielzahl von Schreibbefehlen in einer absteigenden Reihenfolge angeordnet sind, und die Vielzahl von Schreibbefehlen fortlaufend ausgibt, wobei jeder Schreibbefehl anweist, jeden Einheitsbetrag der Daten fortlaufend in einer aufsteigenden Reihenfolge von Adresswerten beginnend bei einer Schreibstart-Adresse, bis eine vorbestimmte Anzahl von Einheitsbeträgen der Daten erreicht wird, zu schreiben; wobei die Puffer-Schreibsteuereinheit einen Lesezeiger an eine Adresse in dem Ringpuffer setzt, welche der Schreibstart-Adresse des im Anschluss an den Lesebefehl von der Transferziel-Schreibsteuereinheit auszugebenden Schreibbefehls entspricht; wobei die datenzerstörungsfreie Steuereinheit bestimmt, ein Schreiben zu erlauben, wenn die von der Schreibzyklus-Zähleinheit gezählte Anzahl größer ist als die von der Lesezyklus-Zähleinheit gezählte Anzahl und wenn die von der Schreibzyklus-Zähleinheit gezählte Anzahl gleich der von der Lesezyklus-Zähleinheit gezählten Anzahl ist und ein Adresswert der Adresse, wo der Lesezeiger gesetzt worden ist, gleich oder größer als ein Adresswert der Adresse ist, wo der Schreibfertigstellungszeiger gesetzt worden ist; wobei, wenn die datenzerstörungsfreie Steuereinheit bestimmt, ein Schreiben zu erlauben, die Puffer-Lesesteuereinheit jeden Einheitsbetrag der Daten in der ansteigenden Reihenfolge der Adresswerte beginnend bei der Adresse, wo der Lesezeiger gesetzt worden ist, liest; und wobei die Transferziel-Schreibsteuereinheit den nachfolgenden Schreibbefehl ausgibt, wenn die datenzerstörungsfreie Steuereinheit bestimmt, ein Schreiben zu erlauben.
  4. Datentransfereinrichtung nach Anspruch 3, wobei die datenzerstörungsfreie Steuereinheit bestimmt, einen dekrementellen Transfer auszuführen, wenn der Transferquellbereich und der Transferzielbereich miteinander überlappen und ein Adresswert einer Start-Adresse, welche eine Start-Position des Transferquellbereichs angibt, gleich oder kleiner als ein Adresswert einer Startadresse, welche eine Start-Position des Transferzielbereichs angibt, ist und wenn andererseits die datenzerstörungsfreie Steuereinheit bestimmt, einen inkrementellen Transfer auszuführen; wobei, wenn die datenzerstörungsfreie Steuereinheit bestimmt, den dekrementellen Transfer auszuführen, die Transferquell-Lesesteuereinheit die Vielzahl von Lesebefehlen erzeugt, so dass die Adresswerte der Lesestart-Adresse der Vielzahl von Lesebefehlen in der absteigenden Reihenfolge angeordnet sind, und die Vielzahl von Lesebefehlen fortlaufend ausgibt und, wenn die Daten-nicht-löschende Steuereinheit bestimmt, den inkrementellen Transfer auszuführen, die Transferquell-Lesesteuereinheit die Vielzahl von Lesebefehlen erzeugt, so dass die Adresswerte der Lesestart-Adresse der Vielzahl von Lesebefehlen in der aufsteigenden Reihenfolge angeordnet sind, und die Vielzahl von Lesebefehlen fortlaufend ausgibt; wobei, wenn die datenzerstörungsfreie Steuereinheit bestimmt, den dekrementellen Transfer auszuführen, die Transferziel-Schreibsteuereinheit die Vielzahl von Schreibbefehlen erzeugt, so dass die Adresswerte der Schreibstart-Adressen der Vielzahl von Schreibbefehlen in der absteigenden Reihenfolge angeordnet sind, und die Vielzahl von Schreibbefehlen fortlaufend ausgibt und, wenn die datenzerstörungsfreie Steuereinheit bestimmt, den inkrementellen Transfer auszuführen, die Transferziel-Schreibsteuereinheit die Vielzahl von Schreibbefehlen erzeugt, so dass die Adresswerte der Schreibstart-Adressen der Vielzahl von Schreibbefehlen in der aufsteigenden Reihenfolge angeordnet sind, und die Vielzahl von Schreibbefehlen fortlaufend ausgibt; und wobei, wenn die datenzerstörungsfreie Steuereinheit bestimmt, den dekrementellen Transfer auszuführen, die datenzerstörungsfreie Steuereinheit bestimmt, ein Schreiben zu erlauben, wenn die von der Schreibzyklus-Zähleinheit gezählte Anzahl größer ist als die von der Lesezyklus-Zähleinheit gezählte Anzahl und wenn die von der Schreibzyklus-Zähleinheit gezählte Anzahl gleich der von der Lesezyklus-Zähleinheit gezählten Anzahl ist und der Adresswert der Adresse, wo der Lesezeiger gesetzt worden ist, gleich oder größer als der Adresswert der Adresse ist, wo der Schreibfertigstellungszeiger gesetzt worden ist, und, wenn die datenzerstörungsfreie Steuereinheit bestimmt, den inkrementellen Transfer auszuführen, die datenzerstörungsfreie Steuereinheit ungeachtet der Adressen, wo der Lesezeiger und der Schreibfertigstellungszeiger gesetzt worden sind, bestimmt, ein Schreiben zu erlauben.
  5. Datentransfereinrichtung nach einem der Ansprüche 1 bis 4, wobei die Puffer-Schreibsteuereinheit die durch den Lesebefehl gelesenen Daten durch einen Lese-Bus erhält; und wobei die Puffer-Lesesteuereinheit die von dem Ringpuffer gelesenen Daten an den Transferzielbereich durch einen von dem Lese-Bus verschiedenen Schreib-Bus überträgt.
  6. Datentransferverfahren zum Transferieren von in einem Transferquellbereich gespeicherten Daten zu einem Transferzielbereich, wobei das Datentransferverfahren umfasst: einen Transferquell-Lesesteuerschritt zum Ausgeben eines Lesebefehls zum Lesen der in dem Transferquellbereich gespeicherten Daten; einen Puffer-Schreibsteuerschritt zum Erhalten der Daten, welche durch den Lesebefehl gelesen wurden, welcher in dem Transferquell-Lesesteuerschritt ausgegeben wurde, und zum Schreiben der gelesenen Daten in einen Ringpuffer; einen Puffer-Lesesteuerschritt zum Lesen der in dem Puffer-Schreibsteuerschritt geschriebenen Daten von dem Ringpuffer und zum Übertragen der Daten an den Transferzielbereich; einen Transferziel-Schreibsteuerschritt zum Ausgeben eines Schreibbefehls zum Schreiben der an den Transferzielbereich in dem Puffer-Lesesteuerschritt übertragenen Daten in den Transferzielbereich; einen Schreibzyklus-Zählschritt zum Zählen einer Anzahl von Umläufen in dem Puffer-Schreibsteuerschritt; einen Lesezyklus-Zählschritt zum Zählen einer Anzahl von Umläufen in dem Puffer-Lesesteuerschritt; und einen datenzerstörungsfreien Steuerschritt zum Bestimmen, ein Schreiben der Daten in den Transferzielbereich basierend auf einem Größenverhältnis zwischen der in dem Schreibzyklus-Zählschritt gezählten Anzahl und der in dem Lesezyklus-Zählschritt gezählten Anzahl zu erlauben oder nicht, wobei in dem Puffer-Lesesteuerschritt die Daten von dem Ringpuffer gelesen werden, wenn die datenzerstörungsfreie Steuereinheit bestimmt, ein Schreiben zu erlauben; und wobei in dem Transferziel-Schreibsteuerschritt, wenn in dem datenzerstörungsfreien Steuerschritt bestimmt wird, ein Schreiben zu erlauben, der Schreibbefehl ausgegeben wird, um die in dem Puffer-Lesesteuerschritt an den Transferzielbereich übertragenen Daten in den Transferzielbereich zu schreiben.
  7. Datentransferprogramm zum Transferieren von in einem Transferquellbereich gespeicherten Daten an einen Datentransferzielbereich, wobei das Datentransferprogramm einen Computer veranlasst, die folgenden Prozesse auszuführen: einen Transferquell-Lesesteuerprozess zum Ausgeben eines Lesebefehls zum Lesen der in dem Transferquellbereich gespeicherten Daten; einen Puffer-Schreibsteuerprozess zum Erhalten der Daten, welche durch den Lesebefehl gelesen wurden, welcher in dem Transferquell-Lesesteuerprozess ausgegeben wurde, und zum Schreiben der Daten in einen Ringpuffer; einen Puffer-Lesesteuerprozess zum Lesen der in dem Puffer-Schreibsteuerprozess geschriebenen Daten von dem Ringpuffer und zum Übertragen der Daten an den Transferzielbereich; einen Transferziel-Schreibsteuerprozess zum Ausgeben eines Schreibbefehls zum Schreiben der in dem Puffer-Lesesteuerprozess an den Transferzielbereich übertragenen Daten in den Transferzielbereich; einen Schreibzyklus-Zählprozess zum Zählen einer Anzahl von Umläufen in dem Puffer-Schreibsteuerprozess; einen Lesezyklus-Zählprozess zum Zählen einer Anzahl von Umläufen in dem Puffer-Lesesteuerprozess; und einen datenzerstörungsfreien Steuerprozess zum Bestimmen, ein Schreiben der Daten in den Transferzielbereich basierend auf einem Größenverhältnis zwischen der in dem Schreibzyklus-Zählprozess gezählten Anzahl und der in dem Lesezyklus-Zählprozess gezählten Anzahl zu erlauben oder nicht, wobei in dem Puffer-Schreibsteuerprozess die Daten von dem Ringpuffer gelesen werden, wenn in dem datenzerstörungsfreien Steuerprozess bestimmt wird, dass ein Schreiben der Daten erlaubt ist; und wobei in dem Transferziel-Schreibsteuerprozess, wenn in dem datenzerstörungsfreien Steuerprozess bestimmt wird, dass ein Schreiben erlaubt ist, der Schreibbefehl ausgegeben wird, um die in dem Puffer-Lesesteuerprozess an den Transferzielbereich übertragenen Daten in den Transferzielbereich zu schreiben.
DE112013001213.8T 2012-02-29 2013-02-04 Datentransfereinrichtung, Datentransferverfahren und Datentransferprogramm Withdrawn DE112013001213T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012043994 2012-02-29
JP2012/043994 2012-02-29
PCT/JP2013/052451 WO2013129031A1 (ja) 2012-02-29 2013-02-04 データ転送装置、データ転送方法及びデータ転送プログラム

Publications (1)

Publication Number Publication Date
DE112013001213T5 true DE112013001213T5 (de) 2014-12-04

Family

ID=49082235

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013001213.8T Withdrawn DE112013001213T5 (de) 2012-02-29 2013-02-04 Datentransfereinrichtung, Datentransferverfahren und Datentransferprogramm

Country Status (7)

Country Link
US (1) US9727504B2 (de)
JP (1) JP5769868B2 (de)
KR (1) KR101593865B1 (de)
CN (1) CN104145255B (de)
DE (1) DE112013001213T5 (de)
TW (1) TWI524267B (de)
WO (1) WO2013129031A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866711B1 (en) 2013-12-16 2020-12-15 Amazon Technologies, Inc. Providing account information to applications
US9473491B1 (en) * 2014-12-16 2016-10-18 Amazon Technologies, Inc. Computing device with integrated authentication token
US10841297B2 (en) 2013-12-16 2020-11-17 Amazon Technologies, Inc. Providing multi-factor authentication credentials via device notifications
US10362026B2 (en) 2013-12-16 2019-07-23 Amazon Technologies, Inc. Providing multi-factor authentication credentials via device notifications
US9819673B1 (en) 2015-06-24 2017-11-14 Amazon Technologies, Inc. Authentication and authorization of a privilege-constrained application
US9864852B2 (en) 2015-07-27 2018-01-09 Amazon Technologies, Inc. Approaches for providing multi-factor authentication credentials
TWI615770B (zh) * 2015-11-17 2018-02-21 群聯電子股份有限公司 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
JP6206524B2 (ja) * 2016-03-14 2017-10-04 日本電気株式会社 データ転送装置、データ転送方法、プログラム
US10162751B2 (en) * 2016-04-26 2018-12-25 Macronix International Co., Ltd. Nested wrap-around memory access with fixed offset
US20180018999A1 (en) * 2016-07-12 2018-01-18 Mediatek Inc. Video processing system using ring buffer and racing-mode ring buffer access control scheme
US12001365B2 (en) 2020-07-07 2024-06-04 Apple Inc. Scatter and gather streaming data through a circular FIFO
CN112098770B (zh) * 2020-08-20 2024-06-14 深圳市宏旺微电子有限公司 针对动态耦合故障模拟极端环境下的测试方法和装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61214047A (ja) * 1985-03-20 1986-09-22 Fujitsu Ltd メモリデ−タ転送回路
JPH083850B2 (ja) * 1985-03-20 1996-01-17 キヤノン株式会社 画像処理装置
JP2703417B2 (ja) 1991-04-05 1998-01-26 富士通株式会社 受信バッファ
JP3176236B2 (ja) * 1994-11-30 2001-06-11 株式会社ソニー・コンピュータエンタテインメント 信号再生装置及び信号再生方法
JPH08292874A (ja) * 1995-04-25 1996-11-05 Nec Eng Ltd メモリ状態検出回路
JP3181515B2 (ja) * 1996-09-11 2001-07-03 株式会社沖データ データ転送方法及びその方法を用いたデータ転送装置
JPH10116245A (ja) 1996-10-14 1998-05-06 Fujitsu Ltd Dma制御装置
JP3768668B2 (ja) 1998-01-05 2006-04-19 キヤノン株式会社 インターフェース装置及び制御方法及び印刷装置
US6311237B1 (en) 1998-01-05 2001-10-30 Canon Kabushiki Kaisha System including single host buffer for transmit and receive data and reception buffer in interface device having stand-by area for use by host buffer when abnormal state is detected
US6571301B1 (en) 1998-08-26 2003-05-27 Fujitsu Limited Multi processor system and FIFO circuit
JP4292598B2 (ja) 1998-08-26 2009-07-08 富士通マイクロエレクトロニクス株式会社 Fifo回路及びマルチプロセッサシステム
JP3765931B2 (ja) * 1998-10-15 2006-04-12 富士通株式会社 バッファ制御方法及びバッファ制御装置
WO2000042515A1 (fr) 1999-01-12 2000-07-20 Fujitsu Limited Dispositif de gestion des acces et procede de gestion des acces a un support d'enregistrement
JP2000293480A (ja) * 1999-04-12 2000-10-20 Oki Data Corp Dma転送装置
JP2001142841A (ja) * 1999-11-12 2001-05-25 Nec Corp Dma転送制御方式
JP3461327B2 (ja) 2000-05-17 2003-10-27 Necマイクロシステム株式会社 トレースメモリに制限されない長時間トレースシステム
JP2002342262A (ja) 2001-05-11 2002-11-29 Fujitsu Ltd ダイレクトメモリアクセス制御装置およびダイレクトメモリアクセス制御方法
JP4749657B2 (ja) * 2003-03-20 2011-08-17 パナソニック株式会社 Dma制御装置
US7519747B1 (en) * 2003-09-11 2009-04-14 Xilinx, Inc. Variable latency buffer and method of operation
US20050289254A1 (en) * 2004-06-28 2005-12-29 Chih-Feng Chien Dynamic buffer allocation method
US20060129714A1 (en) 2004-12-10 2006-06-15 Fujitsu Limited Method and apparatus for transferring data
JP4451837B2 (ja) 2004-12-10 2010-04-14 富士通株式会社 データ転送装置およびデータ転送方法
US20070204076A1 (en) * 2006-02-28 2007-08-30 Agere Systems Inc. Method and apparatus for burst transfer
US7721018B2 (en) * 2006-08-24 2010-05-18 Microchip Technology Incorporated Direct memory access controller with flow control
JP2008083911A (ja) * 2006-09-27 2008-04-10 Matsushita Electric Ind Co Ltd Dma転送制御装置および半導体集積回路装置
FR2913785B1 (fr) * 2007-03-13 2009-06-12 St Microelectronics Sa Gestion de memoire tampon circulaire
US9032113B2 (en) * 2008-03-27 2015-05-12 Apple Inc. Clock control for DMA busses
US8959261B2 (en) * 2010-06-11 2015-02-17 Panasonic Intellectual Property Management Co., Ltd. Data transfer control device, integrated circuit of same, data transfer control method of same, data transfer completion notification device, integrated circuit of same, data transfer completion notification method of same, and data transfer control system

Also Published As

Publication number Publication date
JPWO2013129031A1 (ja) 2015-07-30
TW201403461A (zh) 2014-01-16
KR101593865B1 (ko) 2016-02-12
US9727504B2 (en) 2017-08-08
CN104145255B (zh) 2017-03-08
CN104145255A (zh) 2014-11-12
WO2013129031A1 (ja) 2013-09-06
KR20140128370A (ko) 2014-11-05
JP5769868B2 (ja) 2015-08-26
US20150039803A1 (en) 2015-02-05
TWI524267B (zh) 2016-03-01

Similar Documents

Publication Publication Date Title
DE112013001213T5 (de) Datentransfereinrichtung, Datentransferverfahren und Datentransferprogramm
DE102006002526B4 (de) Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben
DE102005051478B4 (de) Flashdatenspeichervorrichtung
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE4010384C2 (de) Verfahren zur Burst-Datenübertragung
DE68928519T2 (de) Verfahren und Vorrichtung zur Vorhersage der richtigen Durchführung der Übersetzungen von virtuellen in physikalische Adressen
DE69029438T2 (de) Datenverarbeitungssystem mit Umwandlungsmittel von Burst-Operationen zu Pipeline-Operationen
DE2953861C2 (de)
DE69026479T2 (de) Datenprozessor mit Wartezustandsteuerungseinheit
DE4018481C2 (de)
DE69219848T2 (de) Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau
DE3852562T2 (de) Datenschreibverfahren für EEPROM.
DE3128729A1 (de) Halbleiter-speichersystem
DE102014103347B4 (de) Bedingte Verkettungsglieder für Direct-Memory-Access-Controller
DE3688400T2 (de) Cachespeicherschaltung geeignet zur verarbeitung einer leseanforderung waehrend der uebertragung eines datenblocks.
DE102007045497A1 (de) Mechanismus zum Erzeugen von logisch zugeordneten Lese- und Schreib-Kanälen in einer Speichersteuerung
AT389951B (de) Datenuebertragungseinrichtung
DE102012219059A1 (de) Effizientes Befehlsabbildungsschema für Kurze-Datenburstlängen- Speichervorrichtungen
DE102004060348A1 (de) Halbleiterspeichervorrichtung und Gehäuse dazu, und Speicherkarte mit Verwendung derselben
DE60122025T2 (de) Halbleiterspeicheranordnung und Datenverarbeitungseinheit
DE102012202174A1 (de) Mikrocomputer
DE2458259A1 (de) Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen
DE19842677A1 (de) Speicherzugriff-Steuerschaltung
DE112015006089T5 (de) A/D-Wandler, D/A-Wandler und speicherprogrammierbare Steuerung
DE69024913T2 (de) Programmierbare Steuerungsvorrichtung mit Unterbrechungssteuerungsgerät zur Prioritätsbestimmung von Unterbrechungsanforderungen von einer Vielzahl von Ein-/Ausgabeeinrichtungen und zur Unterbrechungsvektorerzeugung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee