JP7003752B2 - Data transfer device, data transfer method, program - Google Patents

Data transfer device, data transfer method, program Download PDF

Info

Publication number
JP7003752B2
JP7003752B2 JP2018045079A JP2018045079A JP7003752B2 JP 7003752 B2 JP7003752 B2 JP 7003752B2 JP 2018045079 A JP2018045079 A JP 2018045079A JP 2018045079 A JP2018045079 A JP 2018045079A JP 7003752 B2 JP7003752 B2 JP 7003752B2
Authority
JP
Japan
Prior art keywords
transfer
dma
information
requester
registered
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.)
Active
Application number
JP2018045079A
Other languages
Japanese (ja)
Other versions
JP2019159751A (en
Inventor
雅夫 深川
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2018045079A priority Critical patent/JP7003752B2/en
Publication of JP2019159751A publication Critical patent/JP2019159751A/en
Application granted granted Critical
Publication of JP7003752B2 publication Critical patent/JP7003752B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、データ転送装置、データ転送方法、プログラムに関する。 The present invention relates to a data transfer device, a data transfer method, and a program.

CPU(Central Processing Unit)を介さずにメモリ・メモリ間やレジスタ・メモリ間、メモリ・I/Oデバイス間などのデータ転送を行うための技術として、DMA(Direct Memory Access)が知られている。 DMA (Direct Memory Access) is known as a technique for transferring data between memory and memory, between register and memory, and between memory and I / O devices without going through a CPU (Central Processing Unit).

DMAに関する技術としては、例えば、特許文献1がある。特許文献1には、設定された転送情報に基づいてDMA転送を行う転送実行手段を有するデータ転送装置が記載されている。特許文献1によると、転送実行手段は、転送情報に待機時間情報が含まれている場合、DMA転送を開始した後、転送情報に含まれる待機時間情報が示す時間分待機して、別の転送情報に基づくDMA転送を開始する。なお、上記待機時間情報は、DMA転送を実行する際の転送先アドレスが転送元アドレスに含まれる場合など転送先と転送元が所定の条件を満たす場合に設定される。 As a technique related to DMA, for example, there is Patent Document 1. Patent Document 1 describes a data transfer device having a transfer execution means that performs DMA transfer based on the set transfer information. According to Patent Document 1, when the transfer information includes the waiting time information, the transfer executing means starts the DMA transfer, waits for the time indicated by the waiting time information included in the transfer information, and then another transfer. Start DMA transfer based on information. The waiting time information is set when the transfer destination and the transfer source satisfy a predetermined condition, such as when the transfer destination address when executing the DMA transfer is included in the transfer source address.

また、関連する技術として、例えば、特許文献2がある。特許文献2には、DMA転送を行う際のアドレスが重なっている依存関係があるDMA要求を行う際に、依存関係のある後続リクエストの実行開始を遅らせるアービター装置が記載されている。 Further, as a related technique, for example, there is Patent Document 2. Patent Document 2 describes an arbiter device that delays the start of execution of a subsequent request having a dependency when making a DMA request having a dependency in which addresses overlap when performing a DMA transfer.

特開2017-167644号公報Japanese Unexamined Patent Publication No. 2017-167644 特開2006-215621号公報Japanese Unexamined Patent Publication No. 2006-215621

DMA転送を行う際のDMAディスクリプタの設定は、プロセッサのみでなくアクセラレータプロセッサが有するコアなど、複数のリクエスタにより行われることがある。このように複数のリクエスタがDMAディスクリプタの設定を行うと、例えば、先行する依存関係のあるDMA転送の途中で他のリクエスタからの設定に応じたDMA転送が行われてしまい、実行順序の保証が出来なくなるおそれがあった。 The setting of the DMA descriptor at the time of performing the DMA transfer may be performed by a plurality of requesters such as the core of the accelerator processor as well as the processor. When a plurality of requesters set the DMA descriptor in this way, for example, the DMA transfer according to the setting from the other requesters is performed in the middle of the DMA transfer having the preceding dependency, and the execution order is guaranteed. There was a risk that it would not be possible.

特に、DMA転送間の依存関係は、例えば、先行DMA転送により制御を変更するフラグを変更してから後続リクエストを実行したい場合など、転送先アドレスや転送元アドレスなどに関係なく生じることがある。しかしながら、特許文献1、2に記載されている技術の場合、アドレスの重なりしか考慮していない。そのため、特許文献1、2に記載されている技術では、上記のような複数のリクエスタからのDMA転送の設定により、DMA転送間の関係に応じた適切な制御を実行することが出来ないおそれがあった。 In particular, the dependency between DMA transfers may occur regardless of the transfer destination address, the transfer source address, or the like, for example, when it is desired to execute a subsequent request after changing the flag for changing the control by the preceding DMA transfer. However, in the case of the techniques described in Patent Documents 1 and 2, only the overlap of addresses is considered. Therefore, in the techniques described in Patent Documents 1 and 2, there is a possibility that appropriate control according to the relationship between DMA transfers cannot be executed due to the setting of DMA transfer from a plurality of requesters as described above. there were.

そこで、本発明の目的は、複数のリクエスタからのDMA転送の設定が有る場合、DMA転送間の関係に応じた適切な制御を実行することが出来ないおそれがある、という問題を解決するデータ転送装置、データ転送方法、プログラムを提供することにある。 Therefore, an object of the present invention is a data transfer that solves a problem that when there is a DMA transfer setting from a plurality of requesters, it may not be possible to execute appropriate control according to the relationship between the DMA transfers. The purpose is to provide equipment, data transfer methods, and programs.

かかる目的を達成するため本発明の一形態であるデータ転送装置は、
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段を備え、
前記転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、
前記転送実行手段は、前記転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する
という構成をとる。
The data transfer device, which is one embodiment of the present invention, is used to achieve such an object.
Transfer information for performing DMA (Direct Memory Access) transfer is set, and a transfer execution means for performing DMA transfer based on the set transfer information is provided.
The transfer information includes identification information indicating a requester for which the transfer information is set.
The transfer executing means has a configuration in which, after the DMA transfer based on the transfer information is completed, the DMA transfer based on the transfer information registered by another requester different from the requester registered the transfer information is started.

また、本発明の他の形態であるデータ転送方法は、
データ転送装置が、
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行い、
前記転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、
前記転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する
という構成をとる。
Further, the data transfer method, which is another embodiment of the present invention, is
The data transfer device
Transfer information for performing DMA (Direct Memory Access) transfer is set, and DMA transfer is performed based on the set transfer information.
The transfer information includes identification information indicating a requester for which the transfer information is set.
After the DMA transfer based on the transfer information is completed, the DMA transfer based on the transfer information registered by another requester different from the requester registered with the transfer information is started.

また、本発明の他の形態であるプログラムは、
データ転送装置に、
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段を実現させ、
前記転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、
前記転送実行手段は、前記転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する処理を実現させるためのプログラムである。
In addition, the program which is another embodiment of the present invention
For data transfer equipment
Transfer information for performing DMA (Direct Memory Access) transfer is set, and a transfer execution means for performing DMA transfer is realized based on the set transfer information.
The transfer information includes identification information indicating a requester for which the transfer information is set.
The transfer executing means is for realizing a process of starting a DMA transfer based on the transfer information registered by another requester different from the requester registered the transfer information after the DMA transfer based on the transfer information is completed. It is a program.

本発明は、以上のように構成されることにより、複数のリクエスタからのDMA転送の設定が有る場合、DMA転送間の関係に応じた適切な制御を実行することが出来ないおそれがある、という問題を解決するデータ転送装置、データ転送方法、プログラムを提供することが可能となる。 According to the present invention, if there are DMA transfer settings from a plurality of requesters, it may not be possible to execute appropriate control according to the relationship between the DMA transfers. It will be possible to provide data transfer devices, data transfer methods, and programs that solve problems.

本発明の第1の実施形態におけるシステムの構成の一例を示すブロック図である。It is a block diagram which shows an example of the structure of the system in 1st Embodiment of this invention. 第1の実施形態におけるDMAディスクリプタの構成の一例を示す図である。It is a figure which shows an example of the structure of the DMA descriptor in 1st Embodiment. システムが実行するDMA転送の一例を示す図である。It is a figure which shows an example of the DMA transfer performed by a system. システムの動作の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the operation of a system. 一般的なDMA転送の流れの一例を示すシーケンス図である。It is a sequence diagram which shows an example of the flow of a general DMA transfer. 一般的なDMA転送の流れの一例を示すシーケンス図である。It is a sequence diagram which shows an example of the flow of a general DMA transfer. 第2の実施形態におけるDMAディスクリプタの構成の一例を示す図である。It is a figure which shows an example of the structure of the DMA descriptor in the 2nd Embodiment. システムが実行するDMA転送の一例を示す図である。It is a figure which shows an example of the DMA transfer performed by a system. システムの動作の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the operation of a system. 本発明の第3の実施形態におけるデータ転送装置の構成の一例を示すブロック図である。It is a block diagram which shows an example of the structure of the data transfer apparatus in 3rd Embodiment of this invention.

[第1の実施形態]
本発明の第1の実施形態を図1から図6までを参照して説明する。図1は、システム1の構成の一例を示すブロック図である。図2は、第1の実施形態におけるDMAディスクリプタ312の構成の一例を示す図である。図3は、システム1が実行するDMA転送の一例を示す図である。図4は、システム1の動作の一例を示すシーケンス図である。図5、図6は、一般的なDMA転送の流れの一例を示すシーケンス図である。
[First Embodiment]
The first embodiment of the present invention will be described with reference to FIGS. 1 to 6. FIG. 1 is a block diagram showing an example of the configuration of the system 1. FIG. 2 is a diagram showing an example of the configuration of the DMA descriptor 312 in the first embodiment. FIG. 3 is a diagram showing an example of DMA transfer executed by the system 1. FIG. 4 is a sequence diagram showing an example of the operation of the system 1. 5 and 6 are sequence diagrams showing an example of a general DMA transfer flow.

第1の実施形態では、DMA(Direct Memory Access)転送を行うことが可能なシステム1について説明する。本実施形態におけるシステム1においては、プロセッサ2がDMAディスクリプタ312の設定を行うことで、DMAエンジン311がDMA転送を実行する。後述するように、本実施形態におけるDMAディスクリプタ312は、依存関係フラグを有している。DMAディスクリプタ312が依存関係フラグを有することで、DMAエンジン311は、先行するDMA転送と依存関係のある後続DMA転送の実行を待機させつつ、先行するDMA転送と依存関係のない後続DMA転送を待機せず実行することが出来る。 In the first embodiment, a system 1 capable of performing DMA (Direct Memory Access) transfer will be described. In the system 1 of the present embodiment, the processor 2 sets the DMA descriptor 312, so that the DMA engine 311 executes the DMA transfer. As will be described later, the DMA descriptor 312 in this embodiment has a dependency flag. When the DMA descriptor 312 has the dependency flag, the DMA engine 311 waits for the execution of the succeeding DMA transfer that is dependent on the preceding DMA transfer, while waiting for the succeeding DMA transfer that is not dependent on the preceding DMA transfer. It can be executed without.

図1は、本実施形態におけるシステム1の構成の一例を示している。図1を参照すると、本実施形態におけるシステム1(データ転送装置)は、ホストPC(Personal Computer)2と、アクセラレーションプロセッサ3と、を有している。また、ホストPC2とアクセラレーションプロセッサ3とは、通信ネットワーク4を介して互いに通信可能なよう接続されている。 FIG. 1 shows an example of the configuration of the system 1 in the present embodiment. Referring to FIG. 1, the system 1 (data transfer device) in the present embodiment includes a host PC (Personal Computer) 2 and an acceleration processor 3. Further, the host PC 2 and the acceleration processor 3 are connected so as to be able to communicate with each other via the communication network 4.

ホストPC2は、演算処理を実行するとともにDMA転送を実行する際の設定を行う制御手段であるプロセッサ21と、情報を格納するホストメモリ22と、を有している。なお、プロセッサ21は、DMAディスクリプタ312の設定を行うため、リクエスタとも呼ぶ。 The host PC 2 has a processor 21 which is a control means for executing arithmetic processing and setting for executing DMA transfer, and a host memory 22 for storing information. Since the processor 21 sets the DMA descriptor 312, it is also called a requester.

プロセッサ21は、DMA転送を実行する際、通信ネットワーク4を介して、転送情報であるDMAディスクリプタ312の設定を行う。つまり、プロセッサ21は、DMA転送を実行する場合、アクセラレーションプロセッサ3が有するDMAエンジン311のDMAディスクリプタ312にDMA転送のリクエストを書き込む。リクエストがDMAディスクリプタ312に書き込まれることで、DMAエンジン311はDMA転送を開始する。 When executing the DMA transfer, the processor 21 sets the DMA descriptor 312 which is the transfer information via the communication network 4. That is, when executing the DMA transfer, the processor 21 writes a request for the DMA transfer to the DMA descriptor 312 of the DMA engine 311 included in the acceleration processor 3. When the request is written to the DMA descriptor 312, the DMA engine 311 starts the DMA transfer.

なお、プロセッサ21は、図示しない演算装置と記憶装置(ホストメモリ22でも構わないし、ホストメモリ22以外でも構わない)とを有している。プロセッサ21は、例えば、記憶装置に格納されたプログラムを演算装置が実行することで、上記DMAディスクリプタ312の設定を行う機能を実現する。 The processor 21 has an arithmetic unit (not shown) and a storage device (may be host memory 22 or may be other than host memory 22). The processor 21 realizes a function of setting the DMA descriptor 312 by, for example, executing a program stored in the storage device by the arithmetic unit.

プロセッサ21が設定するDMAディスクリプタ312には、例えば、DMAエンジン311がDMA転送を実行する際に必要となる情報と、DMA転送の実行順序を保障する際に必要となる情報と、が含まれている。図2は、プロセッサ21が設定するDMAディスクリプタ312の一例を示している。図2を参照すると、DMAディスクリプタ312は、DMAエンジン311がDMA転送を実行する際に必要となる情報として、ライトデータ、転送先アドレス、転送元アドレス、転送リクエスト、転送長、などの情報を含んでいる。後述するDMAエンジン311は、図2に示すDMAディスクリプタ312上のライトデータ、転送元アドレス、転送先アドレス、転送リクエスト、転送長などの情報を基にデータ転送を実行する。 The DMA descriptor 312 set by the processor 21 includes, for example, information necessary for the DMA engine 311 to execute the DMA transfer and information necessary for guaranteeing the execution order of the DMA transfer. There is. FIG. 2 shows an example of the DMA descriptor 312 set by the processor 21. Referring to FIG. 2, the DMA descriptor 312 includes information such as write data, a transfer destination address, a transfer source address, a transfer request, and a transfer length as information required when the DMA engine 311 executes a DMA transfer. I'm out. The DMA engine 311 described later executes data transfer based on information such as write data, a transfer source address, a transfer destination address, a transfer request, and a transfer length on the DMA descriptor 312 shown in FIG.

さらに、本実施形態におけるDMAディスクリプタ312は、DMA転送の実行順序を保障する際に必要となる情報として、実行順序の保証が必要である旨を示す情報である依存関係フラグ(依存関係情報、要順序保証情報)と、ライトリクエスト完了時間有効と、ライトリクエスト完了時間(待機時間情報)と、を示す情報を含んでいる。 Further, the DMA descriptor 312 in the present embodiment is a dependency flag (dependency information, required) which is information indicating that the execution order must be guaranteed as the information necessary for guaranteeing the execution order of the DMA transfer. Order guarantee information), write request completion time valid, write request completion time (waiting time information), and information indicating.

ライトリクエスト完了時間は、依存関係にあるDMA転送を待機する時間を示している。換言すると、ライトリクエスト完了時間は、DMAディスクリプタ312上の情報に基づいてDMAエンジン311がDMA転送を開始した後、依存関係にある後続のDMA転送の開始を待機する時間を示している。ライトリクエスト完了時間は、例えば、メモリ・メモリ間、レジスタ・メモリ間、レジスタ・レジスタ間など1つのDMAディスクリプタ312に設定されたすべてのデータ転送が完了するまでに必要な時間に基づいて定められる。 The write request completion time indicates the time to wait for the DMA transfer that is dependent on the write request. In other words, the write request completion time indicates the time after the DMA engine 311 starts the DMA transfer based on the information on the DMA descriptor 312 and then waits for the start of the subsequent DMA transfer which is dependent on the DMA engine. The write request completion time is determined based on the time required to complete all the data transfer set in one DMA descriptor 312, for example, between memory and memory, between registers and between registers, and between registers.

ライトリクエスト完了時間有効は、DMAディスクリプタ312に含まれるライトリクエスト完了時間が有効であるか否か示す情報である。ライトリクエスト完了時間有効が有効であり、かつ、ライトリクエスト完了時間が設定されているDMAディスクリプタ312に基づくDMA転送を開始した場合、DMAエンジン311は、依存関係のある後続DMA転送をライトリクエスト完了時間分待機した後に開始することになる。 The write request completion time valid is information indicating whether or not the write request completion time included in the DMA descriptor 312 is valid. When the write request completion time is valid and the DMA transfer based on the DMA descriptor 312 in which the write request completion time is set is started, the DMA engine 311 performs the subsequent DMA transfer having a dependency on the write request completion time. It will start after waiting for a minute.

依存関係フラグは、先行のDMA転送と依存関係があるか否かを示している。例えば、プロセッサ21は、実行順序の保証を行うことが必要であると判断される場合に、依存関係フラグを設定する。実行順序の保証を行うことが必要であると判断される場合とは、例えば、転送元アドレスや転送先アドレスの重なりが有る場合や、フラグの制御を行う場合などアドレスの重なりに関係なく先行のDMA転送と依存関係を持たせたい場合などがある。 The dependency flag indicates whether or not there is a dependency relationship with the preceding DMA transfer. For example, the processor 21 sets the dependency flag when it is determined that it is necessary to guarantee the execution order. When it is judged that it is necessary to guarantee the execution order, for example, when there is an overlap of the forwarding source address and the forwarding address, or when the flag is controlled, the preceding is performed regardless of the overlapping of the addresses. There are cases where you want to have a dependency relationship with DMA transfer.

依存関係フラグが設定されている場合、当該依存関係フラグが設定されたDMAディスクリプタ312に基づくDMA転送は、先行のDMA転送に基づく待機の対象(実行順序保証の対象)となる。つまり、依存関係フラグが設定されているDMAディスクリプタ312に基づくDMA転送は、先行のDMA転送に基づく待機時間(ライトリクエスト完了時間)が経過するまで待機した後開始される。一方、依存関係フラグが設定されていない場合、当該依存関係フラグが設定されていないDMAディスクリプタ312に基づくDMA転送は、先行のDMA転送に基づく待機の対象(実行順序保証の対象)とならない。つまり、依存関係フラグが設定されていないDMAディスクリプタ312に基づくDMA転送は、先行のDMA転送時のDMAディスクリプタ312にライトリクエスト完了時間が設定されているか否かにかかわらず待機せず開始される。 When the dependency flag is set, the DMA transfer based on the DMA descriptor 312 in which the dependency flag is set is the target of the standby based on the preceding DMA transfer (the target of the execution order guarantee). That is, the DMA transfer based on the DMA descriptor 312 in which the dependency flag is set is started after waiting until the waiting time (write request completion time) based on the preceding DMA transfer elapses. On the other hand, when the dependency flag is not set, the DMA transfer based on the DMA descriptor 312 in which the dependency flag is not set is not the target of the standby based on the preceding DMA transfer (the target of the execution order guarantee). That is, the DMA transfer based on the DMA descriptor 312 in which the dependency flag is not set is started without waiting regardless of whether or not the write request completion time is set in the DMA descriptor 312 at the time of the preceding DMA transfer.

DMAディスクリプタ312には、以上説明したような、DMAエンジン311がDMA転送を実行する際に必要となる情報と、DMA転送の実行順序を保障する際に必要となる情報と、が含まれている。 The DMA descriptor 312 includes the information required for the DMA engine 311 to execute the DMA transfer and the information required for guaranteeing the execution order of the DMA transfer as described above. ..

なお、DMAディスクリプタ312とDMAエンジン311とは、例えば、対応関係にある。例えば、同一のDMAディスクリプタ312に基づくDMA転送は、同一のDMAエンジン311が実行する。 The DMA descriptor 312 and the DMA engine 311 have a corresponding relationship, for example. For example, a DMA transfer based on the same DMA descriptor 312 is performed by the same DMA engine 311.

アクセラレーションプロセッサ3は、ホストPC2のプロセッサ21が設定したDMAディスクリプタ312に基づいて、プロセッサ21を介さずにメモリ・メモリ間、レジスタ・メモリ間、レジスタ・レジスタ間などのDMA転送を実行する。つまり、アクセラレーションプロセッサ3は、DMAディスクリプタ312に基づいて、ホストメモリ22とメモリ33の間やレジスタ321の間、ホストメモリ22やメモリ33とレジスタ321の間などのデータ転送を実行する。 The acceleration processor 3 executes DMA transfer between memory memory, register memory, register register, etc. without going through the processor 21 based on the DMA descriptor 312 set by the processor 21 of the host PC 2. That is, the acceleration processor 3 executes data transfer between the host memory 22 and the memory 33, between the registers 321 and between the host memory 22 and the memory 33 and the register 321 based on the DMA descriptor 312.

図1を参照すると、アクセラレーションプロセッサ3は、DMA転送を実行するDMAユニット31と、複数のコア32と、メモリ33と、を有している。図1で示すように、DMAユニット31とコア32、コア32とメモリ33、コア32と別のコア32、メモリ33とDMAユニット31とは、それぞれ、互いに通信可能なよう接続されている。 Referring to FIG. 1, the acceleration processor 3 has a DMA unit 31 that executes DMA transfer, a plurality of cores 32, and a memory 33. As shown in FIG. 1, the DMA unit 31 and the core 32, the core 32 and the memory 33, the core 32 and another core 32, and the memory 33 and the DMA unit 31 are connected so as to be able to communicate with each other.

なお、図1では、アクセラレーションプロセッサ3が4つのコア32(コア32-0、コア32-1、コア32-2、コア32-3)を有する場合について例示する。しかしながら、アクセラレーションプロセッサ3が有するコア32の数は、4つに限定されない。アクセラレーションプロセッサ3は、任意の数のコア32を有することが出来る。 Note that FIG. 1 illustrates a case where the acceleration processor 3 has four cores 32 (cores 32-0, cores 32-1, cores 32-2, and cores 32-3). However, the number of cores 32 included in the acceleration processor 3 is not limited to four. The acceleration processor 3 can have any number of cores 32.

DMAユニット31は、複数のDMAエンジン311と、複数のDMAディスクリプタ312と、を有している。DMAユニット31は、複数のDMAエンジン311と複数のDMAディスクリプタ312とにより、複数のDMA転送を並列して処理することが出来る。 The DMA unit 31 has a plurality of DMA engines 311 and a plurality of DMA descriptors 312. The DMA unit 31 can process a plurality of DMA transfers in parallel by the plurality of DMA engines 311 and the plurality of DMA descriptors 312.

DMAエンジン311は、DMAディスクリプタ312に基づいてDMA転送を実行する転送実行手段である。換言すると、DMAエンジン311は、図2に示すDMAディスクリプタ312上のライトデータ、転送元アドレス、転送先アドレス、転送リクエスト、転送長などの情報を基にデータ転送を行う。DMAエンジン311によるデータ転送は、例えば、ホストメモリ22とメモリ33の間やレジスタ321の間、ホストメモリ22やメモリ33とレジスタ321との間などで行われる。 The DMA engine 311 is a transfer execution means that executes a DMA transfer based on the DMA descriptor 312. In other words, the DMA engine 311 performs data transfer based on information such as write data on the DMA descriptor 312 shown in FIG. 2, a transfer source address, a transfer destination address, a transfer request, and a transfer length. Data transfer by the DMA engine 311 is performed, for example, between the host memory 22 and the memory 33, between the registers 321 and between the host memory 22 and the memory 33 and the register 321.

また、DMAエンジン311は、所定の条件を満たす先行DMA転送を行った場合、所定の条件を満たす後続DMA転送の開始を所定時間経過まで待機する。例えば、DMAエンジン311は、ライトリクエスト完了時間が設定され、かつ、ライトリクエスト完了時間有効が有効であるDMAディスクリプタ312に基づくDMA転送を開始した場合、当該DMA転送を開始してからライトリクエスト完了時間が示す時間(待機時間)が経過するまでの間、依存関係フラグが設定されたDMAディスクリプタ312に基づく後続DMA転送の開始を待機する。また、例えば、DMAエンジン311は、依存関係フラグが設定されていないDMAディスクリプタ312に基づく後続DMA転送については、上記ライトリクエスト完了時間が示す時間の経過前でも待機せず開始する。 Further, when the DMA engine 311 performs the preceding DMA transfer satisfying the predetermined condition, the DMA engine 311 waits until the predetermined time elapses to start the subsequent DMA transfer satisfying the predetermined condition. For example, when the DMA engine 311 starts the DMA transfer based on the DMA descriptor 312 in which the write request completion time is set and the write request completion time is valid, the write request completion time is started after the DMA transfer is started. Waits for the start of the subsequent DMA transfer based on the DMA descriptor 312 in which the dependency flag is set until the time indicated by (waiting time) elapses. Further, for example, the DMA engine 311 starts the subsequent DMA transfer based on the DMA descriptor 312 in which the dependency flag is not set without waiting even before the time indicated by the write request completion time elapses.

このように、DMAエンジン311は、ライトリクエスト完了時間が設定され、かつ、ライトリクエスト完了時間有効が有効であるDMAディスクリプタ312に基づくDMA転送を開始した場合、所定の条件を満たす後続DMA転送の開始を所定時間経過まで待機する。また、DMAエンジン311は、所定の条件を満たす先行DMA転送を行った場合、依存関係フラグが設定されたDMAディスクリプタ312に基づくDMA転送の開始を、先行DMA転送を開始する際に参照したDMAディスクリプタ312に含まれるライトリクエスト完了時間が示す時間が経過するまで待機する。また、DMAエンジン311は、所定の条件を満たす先行DMA転送を行った場合であっても、依存関係フラグが設定されていないDMAディスクリプタ312に基づくDMA転送は待機せず開始する。 As described above, when the DMA engine 311 starts the DMA transfer based on the DMA descriptor 312 in which the write request completion time is set and the write request completion time is valid, the subsequent DMA transfer satisfying a predetermined condition is started. Wait until the specified time elapses. Further, when the DMA engine 311 performs the preceding DMA transfer satisfying a predetermined condition, the DMA descriptor refers to the start of the DMA transfer based on the DMA descriptor 312 in which the dependency flag is set when the preceding DMA transfer is started. Wait until the time indicated by the write request completion time included in 312 elapses. Further, even when the preceding DMA transfer satisfying a predetermined condition is performed, the DMA engine 311 starts the DMA transfer based on the DMA descriptor 312 in which the dependency flag is not set without waiting.

DMAディスクリプタ312は、DMA転送を実行する際に必要となる情報やDMA転送の実行順序を保障する際に必要となる情報などを示している。上述したように、DMAディスクリプタ312には、ライトデータと、転送先アドレスと、転送元アドレスと、転送リクエストと、転送長と、依存関係フラグと、ライトリクエスト完了時間有効と、ライトリクエスト完了時間と、が含まれている。 The DMA descriptor 312 shows information necessary for executing DMA transfer, information necessary for guaranteeing the execution order of DMA transfer, and the like. As described above, the DMA descriptor 312 has the write data, the transfer destination address, the transfer source address, the transfer request, the transfer length, the dependency flag, the write request completion time valid, and the write request completion time. ,It is included.

なお、本実施形態の場合、上述したように、DMAディスクリプタ312はプロセッサ21により設定される。また、DMAディスクリプタ312は、DMAエンジン311により参照される。上述したように、同一のDMAディスクリプタ312に基づくDMA転送は、同一のDMAエンジン311により行われる。 In the case of this embodiment, as described above, the DMA descriptor 312 is set by the processor 21. Also, the DMA descriptor 312 is referred to by the DMA engine 311. As described above, the DMA transfer based on the same DMA descriptor 312 is performed by the same DMA engine 311.

コア32は、アドレスマップされたレジスタ321と、演算器322と、を有する。レジスタ321へのアクセスパスは3種類存在する。具体的には、例えば、ホストPC2からのアクセスパスと、コア32内に有する演算器322からのアクセスパスと、他のコア32からのアクセスパスと、が存在する。 The core 32 has an address-mapped register 321 and an arithmetic unit 322. There are three types of access paths to register 321. Specifically, for example, there are an access path from the host PC 2, an access path from the arithmetic unit 322 in the core 32, and an access path from another core 32.

メモリ33は、RAM(Random Access Memory)などの記憶装置である。メモリ33は、DMA転送などの際に利用される。 The memory 33 is a storage device such as a RAM (Random Access Memory). The memory 33 is used for DMA transfer and the like.

システム1は、例えば、上記のような構成を有している。 The system 1 has, for example, the above configuration.

なお、上述したシステム1では、コア32が有するレジスタ321はDMA転送可能なメモリアドレス空間にマッピングされているものとする。また、DMAエンジン311からコア32が有するレジスタ321へのアクセスは、固定時間内に処理が完了するものとする。 In the system 1 described above, it is assumed that the register 321 of the core 32 is mapped to the memory address space where DMA transfer is possible. Further, it is assumed that the access from the DMA engine 311 to the register 321 of the core 32 is completed within a fixed time.

また、上述したシステム1では、原則として、DMAディスクリプタ312に設定された順番にDMA転送が行われるとする。一方で、複数のDMAエンジン311により複数のDMAディスクリプタ312が並列して処理されるため、実行順序は保障されないものとする。また、同一のDMAディスクリプタ312を用いたDMA転送であっても、2つのDMA転送間でアドレス競合が存在する場合、原則として、実行順序は保障されないものとする。ただし、依存関係フラグやライトリクエスト完了時間有効、ライトリクエスト完了時間などを設定することで、実行順序を保障することが出来る。 Further, in the above-mentioned system 1, in principle, it is assumed that the DMA transfer is performed in the order set in the DMA descriptor 312. On the other hand, since the plurality of DMA descriptors 312 are processed in parallel by the plurality of DMA engines 311, the execution order is not guaranteed. Further, even in the case of DMA transfer using the same DMA descriptor 312, if there is an address conflict between the two DMA transfers, the execution order is not guaranteed in principle. However, the execution order can be guaranteed by setting the dependency flag, the write request completion time valid, the write request completion time, and the like.

次に、図3を参照して、システム1が同一のDMAディスクリプタ312を用いたDMA転送を行う場合の動作の一例について説明する。 Next, with reference to FIG. 3, an example of the operation when the system 1 performs DMA transfer using the same DMA descriptor 312 will be described.

図3では、3つのDMA転送を行う場合について例示している。具体的には、図3のうち1番上のDMA転送では、転送元アドレス「0x1000」からデータをリードして転送先アドレス「0x2000」にデータをライトする。また、図3のうち2番目のDMA転送では、転送元アドレス「0x2000」からデータをリードして転送先アドレス「0x3000」にデータをライトする。また、図3のうち1番下のDMA転送では、転送元アドレス「0x6000」からデータをリードして転送先アドレス「0x7000」にデータをライトする。 FIG. 3 illustrates a case where three DMA transfers are performed. Specifically, in the DMA transfer at the top of FIG. 3, data is read from the transfer source address "0x1000" and the data is written to the transfer destination address "0x2000". Further, in the second DMA transfer in FIG. 3, the data is read from the transfer source address "0x2000" and the data is written to the transfer destination address "0x3000". Further, in the DMA transfer at the bottom of FIG. 3, the data is read from the transfer source address "0x6000" and the data is written to the transfer destination address "0x7000".

また、図3で示す例では、1番上のDMAディスクリプタ312には、ライトリクエスト完了時間有効を示す「0x1」と、ライトリクエスト完了時間「0x100」と、が含まれている。つまり、1番上のDMAディスクリプタ312において、ライトリクエスト完了時間が設定され、かつ、ライトリクエスト完了時間有効が有効である。また、2番目のDMAディスクリプタ312には、依存関係フラグが設定されている旨を示す「0x1」が含まれている。以上のような構成のため、DMAエンジン311は、1番上のDMAディスクリプタ312に基づくDMA転送を開始した後ライトリクエスト完了時間が経過するまでの間、2番目のDMAディスクリプタ312に基づくDMA転送の開始を待機する。つまり、DMAエンジン311は、1番上のDMAディスクリプタ312に基づくDMA転送を開始した後ライトリクエスト完了時間が経過してから、2番目のDMAディスクリプタ312に基づくDMA転送を開始する。一方、1番下のDMAディスクリプタ312には、依存関係フラグが設定されていない旨を示す「0x0」が含まれている。そのため、DMAエンジン311は、1番上のDMA転送を開始してからライトリクエスト完了時間が経過する前であっても、1番下のDMA転送を開始する。以上の結果、例えば、1番下のDMA転送は、2番目のDMA転送よりも早く開始される。 Further, in the example shown in FIG. 3, the top DMA descriptor 312 includes "0x1" indicating that the write request completion time is valid and "0x100" that indicates the write request completion time. That is, in the top DMA descriptor 312, the write request completion time is set and the write request completion time is valid. Further, the second DMA descriptor 312 contains "0x1" indicating that the dependency flag is set. Due to the above configuration, the DMA engine 311 performs the DMA transfer based on the second DMA descriptor 312 from the start of the DMA transfer based on the first DMA descriptor 312 until the write request completion time elapses. Wait for the start. That is, the DMA engine 311 starts the DMA transfer based on the second DMA descriptor 312 after the write request completion time elapses after starting the DMA transfer based on the first DMA descriptor 312. On the other hand, the lowermost DMA descriptor 312 contains "0x0" indicating that the dependency flag is not set. Therefore, the DMA engine 311 starts the lowermost DMA transfer even before the write request completion time elapses after starting the uppermost DMA transfer. As a result of the above, for example, the lowest DMA transfer is started earlier than the second DMA transfer.

以上のように、システム1においては、実行順序の保証が必要な依存関係のあるDMA転送については実行順序の保証を行う一方で、依存関係のないDMA転送については、無駄な待機を行わずにDMA転送を開始することが出来る。 As described above, in the system 1, the execution order is guaranteed for the DMA transfer having the dependency that requires the guarantee of the execution order, while the DMA transfer without the dependency is not waited unnecessarily. DMA transfer can be started.

続いて、図4を参照して、システム1の動作の一例について説明する。図4においては、実行順序を保障したい依存関係のあるDMA転送と、実行順序を保障する必要がない依存関係のないDMA転送を行う場合について説明する。 Subsequently, an example of the operation of the system 1 will be described with reference to FIG. FIG. 4 describes a case where a DMA transfer having a dependency for which the execution order is to be guaranteed and a DMA transfer without a dependency for which the execution order is not required to be guaranteed are performed.

図4を参照すると、プロセッサ21は、同一のDMAディスクリプタ312に対して、必要な設定を行う。具体的には、プロセッサ21は、先行のDMA転送を指示する設定を行う(ステップS101)とともに、後続のDMA転送を指示する設定を行う(ステップS102)(ステップS103)。なお、プロセッサ21は、先行の設定を行う際に、ライトリクエスト完了時間有効とライトリクエスト完了時間を含む設定を行う。また、プロセッサ21は、後続の設定のうちステップS102の設定を行う際に、依存関係フラグを設定する旨を含む設定を行う。また、プロセッサ21は、後続の設定のうちステップS103の設定を行う際に、依存関係フラグを設定しない旨を含む設定を行う。 Referring to FIG. 4, the processor 21 makes necessary settings for the same DMA descriptor 312. Specifically, the processor 21 sets to instruct the preceding DMA transfer (step S101) and sets to instruct the subsequent DMA transfer (step S102) (step S103). The processor 21 makes settings including the write request completion time valid and the write request completion time when making the preceding settings. Further, the processor 21 makes a setting including setting a dependency flag when setting the step S102 among the subsequent settings. Further, the processor 21 makes a setting including not setting the dependency flag when setting the step S103 among the subsequent settings.

アクセラレーションプロセッサ3のDMAエンジン311は、DMAディスクリプタ312が設定されると、先行のDMA転送を指示するDMAディスクリプタ312に基づいて、DMA転送を開始する(ステップS201)。DMA転送は、DMAリクエストを発行してDMAディスクリプタ312が示す転送元から転送先にデータの転送を行うことで行われる。そして、データの転送が完了した後、DMA転送は完了する。 When the DMA descriptor 312 is set, the DMA engine 311 of the acceleration processor 3 starts the DMA transfer based on the DMA descriptor 312 instructing the preceding DMA transfer (step S201). The DMA transfer is performed by issuing a DMA request and transferring data from the transfer source indicated by the DMA descriptor 312 to the transfer destination. Then, after the data transfer is completed, the DMA transfer is completed.

また、DMAエンジン311は、先行のDMA転送を指示するDMAディスクリプタ312にライトリクエスト完了時間が設定され、かつ、ライトリクエスト完了時間有効が有効であるため、依存関係フラグが設定されたステップS102に応じたDMA転送の開始を、ライトリクエスト完了時間が経過するまで待機する。そして、DMAエンジン311は、先行のDMA転送を開始してからライトリクエスト完了時間が経過した後、ステップS102に応じたDMA転送を開始する(ステップS202)。このような動作により、DMAエンジン311は、ステップS101に応じた先行のDMA転送が完了した後にステップS102に応じた後続のDMA転送を開始することになる。一方、DMAエンジン311は、依存関係フラグが設定されていないステップS103に応じたDMA転送については、ライトリクエスト完了時間の経過を待たずにDMA転送を開始する(ステップS203)。これにより、図4で示す場合、ステップS203のDMA転送は、ステップS202のDMA転送よりも早く開始する。 Further, the DMA engine 311 responds to step S102 in which the dependency flag is set because the write request completion time is set in the DMA descriptor 312 instructing the preceding DMA transfer and the write request completion time is valid. Waits for the start of the DMA transfer until the write request completion time elapses. Then, the DMA engine 311 starts the DMA transfer according to the step S102 after the write request completion time has elapsed since the preceding DMA transfer was started (step S202). By such an operation, the DMA engine 311 starts the subsequent DMA transfer according to the step S102 after the preceding DMA transfer according to the step S101 is completed. On the other hand, the DMA engine 311 starts the DMA transfer according to the step S103 in which the dependency flag is not set without waiting for the lapse of the write request completion time (step S203). As a result, in the case shown in FIG. 4, the DMA transfer in step S203 starts earlier than the DMA transfer in step S202.

なお、2つのDMA転送の実行順序を保障する方法としては、本実施形態で説明した他に、ポーリングによる確認方法(図5参照)とDMA転送完了割込みによる確認方法(図6参照)とがある。 In addition to the method described in this embodiment, there are a confirmation method by polling (see FIG. 5) and a confirmation method by a DMA transfer completion interrupt (see FIG. 6) as a method of guaranteeing the execution order of the two DMA transfers. ..

図5で示すように、ポーリングによる確認方法の場合、プロセッサ21は、先行のDMA転送の終了を確認するためにポーリングを実施することになる。そのため、1つ目のDMA転送開始から2つ目のDMA転送開始までの間、DMA転送の完了確認のためにプロセッサ21は占有されることになる。 As shown in FIG. 5, in the case of the confirmation method by polling, the processor 21 performs polling to confirm the end of the preceding DMA transfer. Therefore, the processor 21 is occupied to confirm the completion of the DMA transfer from the start of the first DMA transfer to the start of the second DMA transfer.

また、図6で示すように、DMA転送完了割込みによる確認方法の場合、DMA転送が完了するとアクセラレーションプロセッサ3からホストPC2にDMA転送完了割込みが通知される。ホストPC2では、DMA転送完了割込みを検知するとプロセッサ21が割込みハンドラのプロセスを起動する。その際、プロセッサ21は割込み検出前までに行っていたプロセスの退避や新規プロセスの起動を行う必要がある。そのため、DMA転送完了通知、ホストPCの割込み検出、後続のDMA転送開始までのレイテンシが悪くなる傾向にある。また、DMA転送完了割込みは、DMAエンジン311からDMA転送のリクエスト発行が完了したことを知ることができるだけであり情報量が少ないため、別途どのDMAディスクリプタ312が完了したか、データ転送は成功したかなど確認する必要がある。このように、DMA転送完了割込みによる確認方法であっても、レイテンシが悪くなるなどの問題が生じることになる。 Further, as shown in FIG. 6, in the case of the confirmation method using the DMA transfer completion interrupt, the acceleration processor 3 notifies the host PC 2 of the DMA transfer completion interrupt when the DMA transfer is completed. In the host PC 2, when the DMA transfer completion interrupt is detected, the processor 21 starts the interrupt handler process. At that time, the processor 21 needs to save the process and start a new process that had been performed before the interrupt was detected. Therefore, the latency until the DMA transfer completion notification, the interrupt detection of the host PC, and the subsequent start of the DMA transfer tends to be deteriorated. Further, since the DMA transfer completion interrupt can only know that the DMA transfer request issuance has been completed from the DMA engine 311 and the amount of information is small, which DMA descriptor 312 has been completed and whether the data transfer has been successful. It is necessary to confirm. As described above, even with the confirmation method using the DMA transfer completion interrupt, problems such as poor latency will occur.

以上のように、ポーリングによる確認方法やDMA転送完了割込みによる確認方法の場合、プロセッサ21の占有時間が長くなる等の問題が生じることになる。一方で、図4で示すように、本実施形態で説明したシステム1の場合、プロセッサ21の占有時間が必要以上に生じることなく、DMA転送の実行順序を保障することが出来る。つまり、プロセッサリソースを効率的に使用することが出来る。また、依存関係フラグを設定することで、依存関係のないDMA転送については、ライトリクエスト完了時間の経過を待つことなくDMA転送を開始することが出来る。 As described above, in the case of the confirmation method by polling or the confirmation method by the DMA transfer completion interrupt, problems such as a long occupancy time of the processor 21 will occur. On the other hand, as shown in FIG. 4, in the case of the system 1 described in the present embodiment, the execution order of the DMA transfer can be guaranteed without occupying the processor 21 more than necessary. That is, the processor resources can be used efficiently. Further, by setting the dependency flag, it is possible to start the DMA transfer without waiting for the lapse of the write request completion time for the DMA transfer having no dependency.

このように、本実施形態におけるシステム1は、依存関係フラグを含むDMAディスクリプタ312とDMAエンジン311とを有している。このような構成により、DMAエンジン311は、先行するDMA転送と依存関係のある、実行順序の保証が必要な後続DMA転送の実行を待機させつつ、先行するDMA転送と依存関係のない後続DMA転送を待機せず実行することが出来る。その結果、依存関係のあるDMA転送については実行順序の保証を行うことを可能とする一方で、依存関係のないDMA転送まで転送の開始を遅らせることを防ぐことが出来る。 As described above, the system 1 in the present embodiment has a DMA descriptor 312 including a dependency flag and a DMA engine 311. With such a configuration, the DMA engine 311 waits for the execution of the succeeding DMA transfer, which is dependent on the preceding DMA transfer and requires the guarantee of the execution order, and is independent of the preceding DMA transfer. Can be executed without waiting. As a result, it is possible to guarantee the execution order of the DMA transfer having a dependency, and it is possible to prevent the start of the transfer from being delayed until the DMA transfer having no dependency.

また、DMAディスクリプタ312に依存関係フラグを含んでいるため、転送先アドレスと転送元アドレスが重なっているなど、アドレスの関係とは無関係に、複数のDMA転送間に依存関係を持たせることが可能となる。その結果、DMA転送間の依存関係に応じた適切な制御を行うことが可能となる。例えば、本実施形態で説明したシステム1によると、依存関係フラグを設定する事で、アドレス比較を行わずに強制的にデータ転送の完了待ち合わせを行う事が可能となる。これにより、例えば、異なるアドレス位置のフラグ設定を完了してから、DMA転送を開始することなども行うことが可能となる。 Further, since the DMA descriptor 312 includes the dependency flag, it is possible to have a dependency relationship between a plurality of DMA transfers regardless of the address relationship, such as the transfer destination address and the transfer source address overlapping. It becomes. As a result, it becomes possible to perform appropriate control according to the dependency between DMA transfers. For example, according to the system 1 described in the present embodiment, by setting the dependency flag, it is possible to forcibly wait for the completion of data transfer without performing address comparison. As a result, for example, it is possible to start DMA transfer after completing the flag setting of different address positions.

なお、本実施形態においては、2つのDMA転送の実行順序を保障する場合について説明した。しかしながら、システム1が実行順序を保障するDMA転送は2つに限定されない。システム1は、3つ以上の複数のDMA転送の実行順序を保障するよう構成することが出来る。 In this embodiment, a case where the execution order of two DMA transfers is guaranteed has been described. However, the DMA transfer for which the system 1 guarantees the execution order is not limited to two. The system 1 can be configured to guarantee the execution order of three or more DMA transfers.

また、本実施形態においては、ソフトウェアがDMA転送間のアドレス競合など実行順序を保障すべきDMA転送であるか否かを判断する例について説明した。しかしながら、ハードウェアでDMA転送間のアドレスを比較するよう構成しても構わない。 Further, in the present embodiment, an example of determining whether or not the software is a DMA transfer for which the execution order should be guaranteed, such as an address conflict between DMA transfers, has been described. However, hardware may be configured to compare addresses between DMA transfers.

また、図1で示すシステム1は、あくまで一例である。システム1は、複数のプロセッサ21を有していても構わないし、複数のメモリ33を有していても構わない。また、DMAユニット31が有するDMAエンジン311の数やDMAディスクリプタ312の数は、特に限定されない。 Further, the system 1 shown in FIG. 1 is merely an example. The system 1 may have a plurality of processors 21 or a plurality of memories 33. Further, the number of DMA engines 311 and the number of DMA descriptors 312 included in the DMA unit 31 are not particularly limited.

[第2の実施形態]
次に、本発明の第1の実施形態を図7から図9までを参照して説明する。図7は、DMAディスクリプタ412の構成の一例を示す図である。図8は、システム1が実行するDMA転送の一例を示す図である。図9システム1の動作の一例を示すシーケンス図である。
[Second Embodiment]
Next, the first embodiment of the present invention will be described with reference to FIGS. 7 to 9. FIG. 7 is a diagram showing an example of the configuration of the DMA descriptor 412. FIG. 8 is a diagram showing an example of DMA transfer executed by the system 1. FIG. 9 is a sequence diagram showing an example of the operation of the system 1.

第2の実施形態では、DMA転送を実行する際の設定を行う制御手段(以下、リクエスタという)が複数ある場合について説明する。具体的には、本実施形態の場合、プロセッサ2の他にコア32(コア32-0、コア32-1、コア32-2、コア32-3)もDMAディスクリプタ412の設定を行う。後述するように、本実施形態におけるDMAディスクリプタ412は、第1の実施形態で説明したDMAディスクリプタ312が有する構成に加えて、使用リクエスタ識別子を有している。DMAディスクリプタ412が使用リクエスタ識別子を有することで、DMAエンジン311は、あるリクエスタが依存関係有りのDMA転送を実行している場合、他のリクエスタからのリクエストによるDMA転送を待機することが出来る。 In the second embodiment, a case where there are a plurality of control means (hereinafter referred to as a requester) for setting when executing the DMA transfer will be described. Specifically, in the case of the present embodiment, in addition to the processor 2, the core 32 (core 32-0, core 32-1, core 32-2, core 32-3) also sets the DMA descriptor 412. As will be described later, the DMA descriptor 412 in the present embodiment has a requester identifier used in addition to the configuration of the DMA descriptor 312 described in the first embodiment. Since the DMA descriptor 412 has the requester identifier used, the DMA engine 311 can wait for the DMA transfer by the request from another requester when one requester is executing the DMA transfer with the dependency.

本実施形態におけるシステム1は、第1の実施形態と同様、ホストPC2と、アクセラレーションプロセッサ3と、を有している。本実施形態の場合、ホストPC2が有するプロセッサ21に加えて、アクセラレーションプロセッサ3が有するコア32(コア32-0、コア32-1、コア32-2、コア32-3)もDMAディスクリプタ412の設定を行うことが出来る。以下、本実施形態に特徴的な構成について説明する。 The system 1 in the present embodiment has a host PC 2 and an acceleration processor 3 as in the first embodiment. In the case of the present embodiment, in addition to the processor 21 of the host PC 2, the core 32 (core 32-0, core 32-1, core 32-2, core 32-3) of the acceleration processor 3 is also the DMA descriptor 412. You can make settings. Hereinafter, a configuration characteristic of the present embodiment will be described.

図7は、プロセッサ21、コア32が設定するDMAディスクリプタ412の一例を示している。図7を参照すると、DMAディスクリプタ412は、第1の実施形態で説明したDMAディスクリプタ312が有する構成に加えて、リクエスタを識別するための識別情報である使用リクエスタ識別子を有している。 FIG. 7 shows an example of the DMA descriptor 412 set by the processor 21 and the core 32. Referring to FIG. 7, the DMA descriptor 412 has a used requester identifier which is identification information for identifying the requester, in addition to the configuration of the DMA descriptor 312 described in the first embodiment.

使用リクエスタ識別子は、DMAディスクリプタ412を設定したリクエスタを識別するための識別子である。プロセッサ21やコア32などのリクエスタは、DMAディスクリプタ412の設定を行う際に、予め自身に割り振られた識別子を使用リクエスタ識別子として設定する。つまり、使用リクエスタ識別子は、例えば、プロセッサ21がDMAディスクリプタ412の設定を行った場合と、コア32―0がDMAディスクリプタ412の設定を行った場合と、で異なることになる。 The requester identifier used is an identifier for identifying the requester in which the DMA descriptor 412 is set. When setting the DMA descriptor 412, the requester such as the processor 21 or the core 32 sets the identifier assigned to itself in advance as the used requester identifier. That is, the requester identifier used is different depending on, for example, the case where the processor 21 sets the DMA descriptor 412 and the case where the core 32-0 sets the DMA descriptor 412.

使用リクエスタ識別子が設定されたDMAディスクリプタ412に基づくDMA転送は、同一の使用リクエスタ識別子が付与されていない、他のリクエスタからのリクエストによる依存関係のあるDMA転送が完了するまで待機した後、開始する。つまり、使用リクエスタ識別子が設定されているDMAディスクリプタ412の場合、先行の依存関係のあるDMA転送が完了した後、当該DMAディスクリプタ412に基づくDMA転送を開始する。なお、先行の依存関係のあるDMA転送の完了は、先行のDMA転送の完了フラグに基づいて判断して構わない。また、使用リクエスタ識別子が設定されていない場合、他のリクエスタからのリクエストにより依存関係有りのDMA転送を実行している場合であっても、待機せずDMA転送を開始する。 The DMA transfer based on the DMA descriptor 412 in which the used requester identifier is set is started after waiting for the completion of the dependent DMA transfer by the request from another requester to which the same used requester identifier is not assigned. .. That is, in the case of the DMA descriptor 412 in which the requester identifier to be used is set, the DMA transfer based on the DMA descriptor 412 is started after the DMA transfer having the preceding dependency is completed. The completion of the DMA transfer having the preceding dependency may be determined based on the completion flag of the preceding DMA transfer. Further, when the used requester identifier is not set, the DMA transfer is started without waiting even when the DMA transfer having the dependency is executed by the request from another requester.

次に、図8を参照して、システム1が同一のDMAディスクリプタ412を用いたDMA転送を行う場合の動作の一例について説明する。 Next, with reference to FIG. 8, an example of the operation when the system 1 performs DMA transfer using the same DMA descriptor 412 will be described.

図8では、4つのDMA転送を行う場合について例示している。具体的には、図8のうち1番上、2番目、1番下のDMA転送は、図3を参照して既に説明したDMA転送と同様の転送を行うことになる。一方、図8のうち3番目のDMA転送では、転送元アドレス「0x4000」からデータをリードして転送先アドレス「0x5000」にデータをライトする。 FIG. 8 illustrates a case where four DMA transfers are performed. Specifically, the first, second, and lowest DMA transfers in FIG. 8 are the same as the DMA transfers already described with reference to FIG. On the other hand, in the third DMA transfer in FIG. 8, the data is read from the transfer source address "0x4000" and the data is written to the transfer destination address "0x5000".

図8で示す例では、1番上、2番目、1番下のDMAディスクリプタ412には、使用リクエスタ識別子「0x1」が設定されている。そのため、1番上、2番目、1番下のDMAディスクリプタ412は、同一のリクエスタにより設定されたことになる。一方、3番目のDMAディスクリプタ412には、使用リクエスタ識別子「0x2」が設定されている。そのため、3番目のDMAディスクリプタ412は、1番上、2番目、1番下のDMAディスクリプタ412とは異なるリクエスタにより設定されたことになる。 In the example shown in FIG. 8, the requester identifier "0x1" to be used is set in the DMA descriptor 412 at the top, the second, and the bottom. Therefore, the 1st, 2nd, and 1st DMA descriptors 412 are set by the same requester. On the other hand, the requester identifier used "0x2" is set in the third DMA descriptor 412. Therefore, the third DMA descriptor 412 is set by a requester different from the first, second, and lower DMA descriptors 412.

このような図8で示す状況の場合、異なる使用リクエスタ識別子を有する3番目のDMAディスクリプタ412に基づくDMA転送は、先行する依存関係を有するDMA転送が完了した後、開始される。ここで、図8の場合、先行する依存関係を有するDMA転送として、1番上と2番目のDMA転送がある。そのため、DMAエンジン311は、1番上、2番目のDMAディスクリプタ412に基づくDMA転送が終了した後、使用リクエスタ識別子が異なる3番目のDMAディスクリプタ412に基づくDMA転送を開始する。例えば、DMAエンジン311は、2番目のDMAディスクリプタ412に基づくDMA転送が完了した後、3番目のDMAディスクリプタ412に基づくDMA転送を開始する。これにより、DMAエンジン311は、実行中のリクエストの順序保証を妨げることなく、他のリクエスタからのリクエストを実行することが出来る。 In such a situation shown in FIG. 8, the DMA transfer based on the third DMA descriptor 412 having a different used requester identifier is started after the DMA transfer having the preceding dependency is completed. Here, in the case of FIG. 8, there are the first and second DMA transfers as the DMA transfers having the preceding dependency relationship. Therefore, the DMA engine 311 starts the DMA transfer based on the third DMA descriptor 412 having a different requester identifier used after the DMA transfer based on the first and second DMA descriptors 412 is completed. For example, the DMA engine 311 starts the DMA transfer based on the third DMA descriptor 412 after the DMA transfer based on the second DMA descriptor 412 is completed. As a result, the DMA engine 311 can execute the request from another requester without disturbing the order guarantee of the request being executed.

以上のように、本実施形態の場合、使用リクエスタ識別子が設定されている場合、依存関係があるDMA転送が完了した後、他のリクエスタが設定したDMAディスクリプタ412に基づくDMA転送を開始する。これにより、例えば、プロセッサ21が、依存関係があるDMA転送をDMAディスクリプタ412に設定した後に、コア32-0がDMA転送をDMAディスクリプタ412に設定した場合、DMAエンジン311は、プロセッサ21が設定した依存関係を有するDMA転送の完了後、コア32-0が設定したDMA転送を実施する。このように、他リクエスタのDMA転送の邪魔をしないようにすることで、複数のリクエスタが有る場合でも、DMA転送の実行順序を保障することができる。 As described above, in the case of the present embodiment, when the requester identifier to be used is set, the DMA transfer based on the DMA descriptor 412 set by another requester is started after the DMA transfer having the dependency is completed. Thus, for example, if the processor 21 sets the dependent DMA transfer to the DMA descriptor 412 and then the core 32-0 sets the DMA transfer to the DMA descriptor 412, the DMA engine 311 is set by the processor 21. After the completion of the DMA transfer having the dependency, the DMA transfer set by the core 32-0 is performed. In this way, by not interfering with the DMA transfer of other requesters, it is possible to guarantee the execution order of the DMA transfer even when there are a plurality of requesters.

続いて、図9を参照して、第2の実施形態におけるシステム1の動作の一例について説明する。図9においては、図4を参照して説明した場合に加えて、コア32からのDMAディスクリプタ412の設定が加わった場合について説明する。 Subsequently, an example of the operation of the system 1 in the second embodiment will be described with reference to FIG. In FIG. 9, in addition to the case described with reference to FIG. 4, a case where the setting of the DMA descriptor 412 from the core 32 is added will be described.

図9を参照すると、プロセッサ21は、先行のDMA転送を指示する設定を行う(ステップS101)とともに、後続のDMA転送を指示する設定を行う(ステップS102)(ステップS103)。また、コア32は、プロセッサ21によるステップS101の設定よりも後に、DMA転送を指示する設定を行う(ステップS301)。 Referring to FIG. 9, the processor 21 sets to instruct the preceding DMA transfer (step S101) and sets to instruct the succeeding DMA transfer (step S102) (step S103). Further, the core 32 is set to instruct DMA transfer after the setting of step S101 by the processor 21 (step S301).

アクセラレーションプロセッサ3のDMAエンジン311は、DMAディスクリプタ412が設定されると、先行のDMA転送を指示するDMAディスクリプタ412に基づいて、DMA転送を開始する(ステップS201)。DMA転送は、DMAリクエストを発行してDMAディスクリプタ412が示す転送元から転送先にデータの転送を行うことで行われる。そして、データの転送が完了した後、DMA転送は完了する。 When the DMA descriptor 412 is set, the DMA engine 311 of the acceleration processor 3 starts the DMA transfer based on the DMA descriptor 412 instructing the preceding DMA transfer (step S201). The DMA transfer is performed by issuing a DMA request and transferring data from the transfer source indicated by the DMA descriptor 412 to the transfer destination. Then, after the data transfer is completed, the DMA transfer is completed.

また、DMAエンジン311は、先行のDMA転送を指示するDMAディスクリプタ412にライトリクエスト完了時間が設定され、かつ、ライトリクエスト完了時間有効が有効であるため、依存関係フラグが設定されたステップS102に応じたDMA転送の開始を、ライトリクエスト完了時間が経過するまで待機する。そして、DMAエンジン311は、ライトリクエスト完了時間経過後、ステップS102に応じたDMA転送を開始する(ステップS202)。その結果、先行のDMA転送が完了した後に、DMAエンジン311は、ステップS102に応じたDMA転送を開始することになる。 Further, the DMA engine 311 responds to step S102 in which the dependency flag is set because the write request completion time is set in the DMA descriptor 412 instructing the preceding DMA transfer and the write request completion time is valid. Waits for the start of the DMA transfer until the write request completion time elapses. Then, after the write request completion time has elapsed, the DMA engine 311 starts the DMA transfer according to step S102 (step S202). As a result, after the preceding DMA transfer is completed, the DMA engine 311 starts the DMA transfer according to step S102.

また、DMAエンジン311は、先行のDMA転送と使用リクエスタ識別子が異なるDMAディスクリプタ412が登録されたため、依存関係のある先行のDMA転送が完了するまで、ステップS301に応じたDMA転送の開始を待機する。図9で示す場合、DMAエンジン311は、ステップS202のDMA転送が完了するまで、ステップS301に応じたDMA転送の開始を待機する。そして、DMAエンジン311は、依存関係のある先行のDMA転送が完了した後(例えば、ステップS202のDMA転送に完了フラグがたった後)、ステップS301に応じたDMA転送を開始する(ステップS204)。その結果、実行中のリクエストの順序保証を妨げることなく、他のリクエスタからのリクエストに応じたDMA転送を開始することが出来る。 Further, since the DMA descriptor 412 having a different requester identifier from the preceding DMA transfer is registered, the DMA engine 311 waits for the start of the DMA transfer according to step S301 until the preceding DMA transfer having a dependency is completed. .. In the case shown in FIG. 9, the DMA engine 311 waits for the start of the DMA transfer according to the step S301 until the DMA transfer in the step S202 is completed. Then, the DMA engine 311 starts the DMA transfer according to the step S301 after the preceding DMA transfer having the dependency is completed (for example, after the completion flag is set in the DMA transfer in the step S202). As a result, it is possible to start DMA transfer in response to a request from another requester without disturbing the order guarantee of the request being executed.

また、DMAエンジン311は、依存関係フラグが設定されていないステップS103に応じたDMA転送については、ライトリクエスト完了時間の経過を待たずにDMA転送を開始する(ステップS203)。 Further, the DMA engine 311 starts the DMA transfer according to the step S103 in which the dependency flag is not set without waiting for the lapse of the write request completion time (step S203).

このように、本実施形態におけるシステム1は、使用リクエスタ識別子を含むDMAディスクリプタ412とDMAエンジン311とを有している。このような構成により、DMAエンジン311は、先行する依存関係のある一連のDMA転送が完了した後、他のリクエスタが登録した後続のDMA転送を開始することが出来る。これにより、異なるリクエスタが、それぞれDMA転送を行った場合であってもアクセラレーションプロセッサ3で実行順序の保証を行うことが可能となる。なお、DMA転送の実行順序の保障を行う必要がない場合、使用リクエスタ識別子を設定しなければ、同一のDMAディスクリプタ412を用いたDMA転送間でも待機せずDMA転送を連続して行うことが出来る。 As described above, the system 1 in the present embodiment has a DMA descriptor 412 including a requester identifier used and a DMA engine 311. With such a configuration, the DMA engine 311 can start the subsequent DMA transfer registered by another requester after the series of DMA transfers having the preceding dependency is completed. This makes it possible for the acceleration processor 3 to guarantee the execution order even when different requesters perform DMA transfers. If it is not necessary to guarantee the execution order of DMA transfers, if the requester identifier used is not set, DMA transfers can be continuously performed without waiting even between DMA transfers using the same DMA descriptor 412. ..

なお、第2の実施形態の場合も、第1の実施形態と同様に様々な変形例を採用することが出来る。 In the case of the second embodiment, various modifications can be adopted as in the first embodiment.

[第3の実施形態]
次に、図10を参照して、本発明の第3の実施形態について説明する。図10は、データ転送装置5の構成の一例を示すブロック図である。
[Third Embodiment]
Next, a third embodiment of the present invention will be described with reference to FIG. FIG. 10 is a block diagram showing an example of the configuration of the data transfer device 5.

図10を参照すると、データ転送装置5は、転送実行手段51を有している。転送実行手段51は、DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された転送情報に基づいてDMA転送を行う。ここで、転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれている。転送実行手段51は、転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した転送情報に基づくDMA転送を開始する。 Referring to FIG. 10, the data transfer device 5 has a transfer execution means 51. The transfer executing means 51 is set with transfer information for performing DMA (Direct Memory Access) transfer, and performs DMA transfer based on the set transfer information. Here, the transfer information includes identification information indicating a requester for which the transfer information is set. After the DMA transfer based on the transfer information is completed, the transfer executing means 51 starts the DMA transfer based on the transfer information registered by another requester different from the requester registered the transfer information.

このように、本実施形態におけるデータ転送装置5は、転送情報に基づくDMA転送を行う転送実行手段51を有している。また、転送情報には当該転送情報を設定したリクエスタを示す識別情報が含まれている。このような構成により、転送実行手段51は、あるリクエスタからの登録に基づくDMA転送が完了した後、他のリクエスタからの登録に基づくDMA転送を開始することが出来る。これにより、例えば、先行するあるリクエスタからの登録により依存関係のあるDMA転送が行われていたとしても、当該依存関係のあるDMA転送の完了を待って、他のリクエスタからの登録に基づくDMA転送を開始することが可能となる。その結果、異なるリクエスタがそれぞれDMA転送を行った場合であっても実行順序の保証を行うことが可能となる。 As described above, the data transfer device 5 in the present embodiment has a transfer execution means 51 that performs DMA transfer based on the transfer information. In addition, the transfer information includes identification information indicating a requester for which the transfer information is set. With such a configuration, the transfer executing means 51 can start the DMA transfer based on the registration from another requester after the DMA transfer based on the registration from one requester is completed. As a result, for example, even if a DMA transfer having a dependency is performed by registration from a certain preceding requester, the DMA transfer based on the registration from another requester is waited for the completion of the DMA transfer having the dependency. Can be started. As a result, it is possible to guarantee the execution order even when different requesters perform DMA transfer.

また、上述したデータ転送装置5は、当該データ転送装置5に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、データ転送装置に、DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された転送情報に基づいてDMA転送を行う転送実行手段を実現させ、転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、転送実行手段は、転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した転送情報に基づくDMA転送を開始するプログラムである。 Further, the above-mentioned data transfer device 5 can be realized by incorporating a predetermined program into the data transfer device 5. Specifically, in the program according to another embodiment of the present invention, transfer information for performing DMA (Direct Memory Access) transfer is set in the data transfer device, and transfer is performed based on the set transfer information. The execution means is realized, and the transfer information includes identification information indicating a requester for which the transfer information is set, and the transfer execution means registers the transfer information after the DMA transfer based on the transfer information is completed. It is a program to start DMA transfer based on the transfer information registered by another requester different from the requester.

また、上述したデータ転送装置5により実行されるデータ転送方法は、データ転送装置が、DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された転送情報に基づいてDMA転送を行い、転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した転送情報に基づくDMA転送を開始する、という方法である。 Further, in the data transfer method executed by the data transfer device 5 described above, transfer information for the data transfer device to perform DMA (Direct Memory Access) transfer is set, and DMA transfer is performed based on the set transfer information. The transfer information includes identification information indicating the requester for which the transfer information is set, and after the DMA transfer based on the transfer information is completed, another requester different from the requester that registered the transfer information is registered. It is a method of starting DMA transfer based on the transferred transfer information.

上述した構成を有する、プログラム、又は、データ転送方法、の発明であっても、上記データ転送装置5と同様の作用を有するために、上述した本発明の目的を達成することが出来る。 Even the invention of the program or the data transfer method having the above-mentioned configuration can achieve the above-mentioned object of the present invention because it has the same operation as the above-mentioned data transfer device 5.

<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるデータ転送装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
<Additional Notes>
Part or all of the above embodiments may also be described as in the appendix below. Hereinafter, the outline of the data transfer device and the like in the present invention will be described. However, the present invention is not limited to the following configuration.

(付記1)
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段を備え、
前記転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、
前記転送実行手段は、前記転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する
データ転送装置。
(付記2)
付記1に記載のデータ転送装置であって、
前記転送実行手段は、前記識別情報が設定されていない場合、先行するDMA転送の完了を待たずに他のリクエスタが登録した後続のDMA転送を開始する
データ転送装置。
(付記3)
付記1又は付記2に記載のデータ転送装置であって、
前記転送情報には、実行順序を保障することが必要なDMA転送であることを示す要順序保証情報が含まれており、
前記転送実行手段は、前記要順序保証情報に基づいて実行順序の保証を行うことが必要であると判断される場合、前記設定情報に基づく実行順序の保証が必要なDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する
データ転送装置。
(付記4)
付記3に記載のデータ転送装置であって、
前記転送情報には、前記要順序保証情報として、他のDMA転送との依存関係を示す依存関係情報が含まれており、
前記転送実行手段は、前記依存関係情報に基づいて判断される依存関係のあるDMA転送が完了した後、他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する
データ転送装置。
(付記5)
付記4に記載のデータ転送装置であって、
前記転送実行手段は、前記依存関係情報に基づいて判断される依存関係のあるDMA転送に完了フラグがたった後、他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する
データ転送装置。
(付記6)
付記1から付記5までのいずれか1項に記載のデータ転送装置であって、
データ転送装置は、前記転送情報を設定する設定手段であるリクエスタを複数有しており、
前記識別情報は、前記リクエスタごとに異なる識別子である
データ転送装置。
(付記7)
データ転送装置が、
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行い、
前記転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、
前記転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する
データ転送方法。
(付記8)
付記7に記載のデータ転送方法であって、
前記識別情報が設定されていない場合、先行するDMA転送の完了を待たずに他のリクエスタが登録した後続のDMA転送を開始する
データ転送方法。
(付記9)
データ転送装置に、
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段を実現させ、
前記転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、
前記転送実行手段は、前記転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する
プログラム。
(付記10)
付記9に記載のプログラムであって、
前記転送実行手段は、前記識別情報が設定されていない場合、先行するDMA転送の完了を待たずに他のリクエスタが登録した後続のDMA転送を開始する
プログラム。
(Appendix 1)
Transfer information for performing DMA (Direct Memory Access) transfer is set, and a transfer execution means for performing DMA transfer based on the set transfer information is provided.
The transfer information includes identification information indicating a requester for which the transfer information is set.
The transfer executing means is a data transfer device that starts a DMA transfer based on the transfer information registered by another requester different from the requester registered the transfer information after the DMA transfer based on the transfer information is completed.
(Appendix 2)
The data transfer device according to Appendix 1, wherein the data transfer device is described.
The transfer executing means is a data transfer device that, when the identification information is not set, starts a subsequent DMA transfer registered by another requester without waiting for the completion of the preceding DMA transfer.
(Appendix 3)
The data transfer device according to Supplementary Note 1 or Supplementary Note 2.
The transfer information includes order-required guarantee information indicating that the transfer is a DMA transfer for which it is necessary to guarantee the execution order.
When it is determined that it is necessary for the transfer executing means to guarantee the execution order based on the order-required guarantee information, after the DMA transfer for which the execution order is guaranteed based on the setting information is completed, the transfer execution means is completed. A data transfer device that starts a DMA transfer based on the transfer information registered by another requester different from the requester that registered the transfer information.
(Appendix 4)
The data transfer device according to Appendix 3,
The transfer information includes dependency information indicating a dependency relationship with other DMA transfers as the order guarantee information.
The transfer executing means is a data transfer device that starts a DMA transfer based on the transfer information registered by another requester after the DMA transfer having a dependency determined based on the dependency information is completed.
(Appendix 5)
The data transfer device according to Appendix 4, wherein the data transfer device is described.
The transfer executing means is a data transfer device that starts a DMA transfer based on the transfer information registered by another requester after a completion flag is set for a DMA transfer having a dependency determined based on the dependency information.
(Appendix 6)
The data transfer device according to any one of Supplementary note 1 to Supplementary note 5.
The data transfer device has a plurality of requesters which are setting means for setting the transfer information.
The identification information is a data transfer device having a different identifier for each requester.
(Appendix 7)
The data transfer device
Transfer information for performing DMA (Direct Memory Access) transfer is set, and DMA transfer is performed based on the set transfer information.
The transfer information includes identification information indicating a requester for which the transfer information is set.
A data transfer method for starting a DMA transfer based on the transfer information registered by another requester different from the requester registered the transfer information after the DMA transfer based on the transfer information is completed.
(Appendix 8)
The data transfer method described in Appendix 7
A data transfer method for starting a subsequent DMA transfer registered by another requester without waiting for the completion of the preceding DMA transfer when the identification information is not set.
(Appendix 9)
For data transfer equipment
Transfer information for performing DMA (Direct Memory Access) transfer is set, and a transfer execution means for performing DMA transfer is realized based on the set transfer information.
The transfer information includes identification information indicating a requester for which the transfer information is set.
The transfer executing means is a program that starts a DMA transfer based on the transfer information registered by another requester different from the requester registered the transfer information after the DMA transfer based on the transfer information is completed.
(Appendix 10)
The program described in Appendix 9
The transfer executing means is a program that, when the identification information is not set, starts a subsequent DMA transfer registered by another requester without waiting for the completion of the preceding DMA transfer.

なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。 In addition, the program described in each of the above-described embodiments and appendices may be stored in a storage device or recorded in a recording medium readable by a computer. For example, the recording medium is a portable medium such as a flexible disk, an optical disk, a magneto-optical disk, and a semiconductor memory.

以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。 Although the present invention has been described above with reference to each of the above embodiments, the present invention is not limited to the above-described embodiments. Various changes that can be understood by those skilled in the art can be made to the structure and details of the present invention within the scope of the present invention.

1 システム
2 ホストPC
21 プロセッサ
22 ホストメモリ
3 アクセラレーションプロセッサ
31 DMAユニット
311 DMAエンジン
312 DMAディスクリプタ
32 コア
321 レジスタ
322 演算器
33 メモリ
412 DMAディスクリプタ
5 データ転送装置
51 転送実行手段


1 system 2 host PC
21 Processor 22 Host memory 3 Acceleration processor 31 DMA unit 311 DMA engine 312 DMA descriptor 32 Core 321 Register 322 Computer 33 Memory 412 DMA descriptor 5 Data transfer device 51 Transfer execution means


Claims (8)

DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段を備え、
前記転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、
前記転送実行手段は、前記転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始し、
前記転送実行手段は、前記識別情報が設定されていない場合、先行するDMA転送の完了を待たずに他のリクエスタが登録した後続のDMA転送を開始する
データ転送装置。
Transfer information for performing DMA (Direct Memory Access) transfer is set, and a transfer execution means for performing DMA transfer based on the set transfer information is provided.
The transfer information includes identification information indicating a requester for which the transfer information is set.
After the DMA transfer based on the transfer information is completed, the transfer execution means starts the DMA transfer based on the transfer information registered by another requester different from the requester registered the transfer information .
If the identification information is not set, the transfer executing means starts the subsequent DMA transfer registered by another requester without waiting for the completion of the preceding DMA transfer.
Data transfer device.
請求項に記載のデータ転送装置であって、
前記転送情報には、実行順序を保障することが必要なDMA転送であることを示す要順序保証情報が含まれており、
前記転送実行手段は、前記要順序保証情報に基づいて実行順序の保証を行うことが必要であると判断される場合、前記転送情報に基づく実行順序の保証が必要なDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する
データ転送装置。
The data transfer device according to claim 1 .
The transfer information includes order-required guarantee information indicating that the transfer is a DMA transfer for which it is necessary to guarantee the execution order.
If it is determined that it is necessary for the transfer execution means to guarantee the execution order based on the order guarantee information, after the DMA transfer that requires the guarantee of the execution order based on the transfer information is completed, the transfer execution means completes. A data transfer device that starts a DMA transfer based on the transfer information registered by another requester different from the requester that registered the transfer information.
請求項に記載のデータ転送装置であって、
前記転送情報には、前記要順序保証情報として、他のDMA転送との依存関係を示す依存関係情報が含まれており、
前記転送実行手段は、前記依存関係情報に基づいて判断される依存関係のあるDMA転送が完了した後、他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する
データ転送装置。
The data transfer device according to claim 2 .
The transfer information includes dependency information indicating a dependency relationship with other DMA transfers as the order guarantee information.
The transfer executing means is a data transfer device that starts a DMA transfer based on the transfer information registered by another requester after the DMA transfer having a dependency determined based on the dependency information is completed.
請求項に記載のデータ転送装置であって、
前記転送実行手段は、前記依存関係情報に基づいて判断される依存関係のあるDMA転送に完了フラグがたった後、他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する
データ転送装置。
The data transfer device according to claim 3 .
The transfer executing means is a data transfer device that starts a DMA transfer based on the transfer information registered by another requester after a completion flag is set for a DMA transfer having a dependency determined based on the dependency information.
請求項1から請求項までのいずれか1項に記載のデータ転送装置であって、
データ転送装置は、前記転送情報を設定する設定手段であるリクエスタを複数有しており、
前記識別情報は、前記リクエスタごとに異なる識別子である
データ転送装置。
The data transfer device according to any one of claims 1 to 4 .
The data transfer device has a plurality of requesters which are setting means for setting the transfer information.
The identification information is a data transfer device having a different identifier for each requester.
データ転送装置が、
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行い、
前記転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、
前記転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始し、
前記識別情報が設定されていない場合、先行するDMA転送の完了を待たずに他のリクエスタが登録した後続のDMA転送を開始する
データ転送方法。
The data transfer device
Transfer information for performing DMA (Direct Memory Access) transfer is set, and DMA transfer is performed based on the set transfer information.
The transfer information includes identification information indicating a requester for which the transfer information is set.
After the DMA transfer based on the transfer information is completed, the DMA transfer based on the transfer information registered by another requester different from the requester registered the transfer information is started .
If the identification information is not set, the subsequent DMA transfer registered by another requester is started without waiting for the completion of the preceding DMA transfer.
Data transfer method.
データ転送装置に、
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段を実現させ、
前記転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、
前記転送実行手段は、前記転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始し、
前記転送実行手段は、前記識別情報が設定されていない場合、先行するDMA転送の完了を待たずに他のリクエスタが登録した後続のDMA転送を開始する
プログラム。
For data transfer equipment
Transfer information for performing DMA (Direct Memory Access) transfer is set, and a transfer execution means for performing DMA transfer is realized based on the set transfer information.
The transfer information includes identification information indicating a requester for which the transfer information is set.
After the DMA transfer based on the transfer information is completed, the transfer execution means starts the DMA transfer based on the transfer information registered by another requester different from the requester registered the transfer information .
If the identification information is not set, the transfer executing means starts the subsequent DMA transfer registered by another requester without waiting for the completion of the preceding DMA transfer.
program.
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段を備え、
前記転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、
前記転送実行手段は、前記転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始し、
前記転送情報には、実行順序を保障することが必要なDMA転送であることを示す要順序保証情報が含まれており、
前記転送実行手段は、前記要順序保証情報に基づいて実行順序の保証を行うことが必要であると判断される場合、前記転送情報に基づく実行順序の保証が必要なDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する
データ転送装置。
Transfer information for performing DMA (Direct Memory Access) transfer is set, and a transfer execution means for performing DMA transfer based on the set transfer information is provided.
The transfer information includes identification information indicating a requester for which the transfer information is set.
After the DMA transfer based on the transfer information is completed, the transfer execution means starts the DMA transfer based on the transfer information registered by another requester different from the requester registered the transfer information.
The transfer information includes order-required guarantee information indicating that the transfer is a DMA transfer for which it is necessary to guarantee the execution order.
When it is determined that it is necessary for the transfer execution means to guarantee the execution order based on the order guarantee information, after the DMA transfer for which the execution order is guaranteed based on the transfer information is completed, the transfer execution means is completed. A data transfer device that starts a DMA transfer based on the transfer information registered by another requester different from the requester that registered the transfer information .
JP2018045079A 2018-03-13 2018-03-13 Data transfer device, data transfer method, program Active JP7003752B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018045079A JP7003752B2 (en) 2018-03-13 2018-03-13 Data transfer device, data transfer method, program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018045079A JP7003752B2 (en) 2018-03-13 2018-03-13 Data transfer device, data transfer method, program

Publications (2)

Publication Number Publication Date
JP2019159751A JP2019159751A (en) 2019-09-19
JP7003752B2 true JP7003752B2 (en) 2022-01-21

Family

ID=67994017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018045079A Active JP7003752B2 (en) 2018-03-13 2018-03-13 Data transfer device, data transfer method, program

Country Status (1)

Country Link
JP (1) JP7003752B2 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055947A (en) 2000-07-27 2002-02-20 Samsung Electronics Co Ltd System bus and its bus arbitrating method
JP2008299439A (en) 2007-05-29 2008-12-11 Mitsubishi Electric Corp Packet processing device
JP2009523269A (en) 2006-02-22 2009-06-18 株式会社ソニー・コンピュータエンタテインメント Method and apparatus for providing independent logical address spaces and access management for each
JP2013539085A (en) 2010-06-23 2013-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system, and computer program for facilitating management of system memory in a computing environment
JP2013539098A (en) 2010-08-04 2013-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション Data processing system for determining one or more partitionable endpoints affected by an I / O message
WO2015008354A1 (en) 2013-07-17 2015-01-22 富士通株式会社 Data transfer system, data transfer method, and information processing device
WO2018003629A1 (en) 2016-06-28 2018-01-04 日本電気株式会社 Packet processing device and packet processing method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055947A (en) 2000-07-27 2002-02-20 Samsung Electronics Co Ltd System bus and its bus arbitrating method
JP2009523269A (en) 2006-02-22 2009-06-18 株式会社ソニー・コンピュータエンタテインメント Method and apparatus for providing independent logical address spaces and access management for each
JP2008299439A (en) 2007-05-29 2008-12-11 Mitsubishi Electric Corp Packet processing device
JP2013539085A (en) 2010-06-23 2013-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system, and computer program for facilitating management of system memory in a computing environment
JP2013539098A (en) 2010-08-04 2013-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション Data processing system for determining one or more partitionable endpoints affected by an I / O message
WO2015008354A1 (en) 2013-07-17 2015-01-22 富士通株式会社 Data transfer system, data transfer method, and information processing device
WO2018003629A1 (en) 2016-06-28 2018-01-04 日本電気株式会社 Packet processing device and packet processing method

Also Published As

Publication number Publication date
JP2019159751A (en) 2019-09-19

Similar Documents

Publication Publication Date Title
US7958298B2 (en) System and method for providing address decode and virtual function (VF) migration support in a peripheral component interconnect express (PCIE) multi-root input/output virtualization (IOV) environment
US20060059489A1 (en) Parallel processing system, interconnection network, node and network control method, and program therefor
KR20090013085A (en) Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
JP2013515980A (en) Data transfer apparatus and control method thereof
JP5287301B2 (en) Descriptor transfer device, I / O controller, and descriptor transfer method
JP2010500682A (en) Flash memory access circuit
US20100058001A1 (en) Distributed shared memory multiprocessor and data processing method
JP4642531B2 (en) Arbitration of data requests
US8756356B2 (en) Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size
JP7003752B2 (en) Data transfer device, data transfer method, program
JP2011232917A (en) Semiconductor integrated circuit and request control method
JP6992616B2 (en) Data transfer device, data transfer method, program
JP6106986B2 (en) Arithmetic processing device, information processing device and interrupt control method
JP6206524B2 (en) Data transfer device, data transfer method, and program
JP5058116B2 (en) DMAC issue mechanism by streaming ID method
JP7225904B2 (en) Vector operation processing device, array variable initialization method by vector operation processing device, and array variable initialization program by vector operation processing device
JPH06214875A (en) Storage controller
JP2004005710A (en) Information processor
JP2007264751A (en) Data transfer controller
US20230359392A1 (en) Non-volatile memory-based storage device, device controller and method thereof
JP6940283B2 (en) DMA transfer control device, DMA transfer control method, and DMA transfer control program
EP3945407A1 (en) Systems and methods for processing copy commands
JP2006268734A (en) Memory access controller
JP7078380B2 (en) Instruction control device, instruction control method and program
JP6519343B2 (en) Data processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210720

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210818

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211213