JP7003752B2 - Data transfer device, data transfer method, program - Google Patents
Data transfer device, data transfer method, program Download PDFInfo
- 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
Links
- 238000012546 transfer Methods 0.000 title claims description 563
- 238000000034 method Methods 0.000 title claims description 31
- 230000015654 memory Effects 0.000 claims description 44
- 230000001133 acceleration Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000012790 confirmation Methods 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
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
また、関連する技術として、例えば、特許文献2がある。特許文献2には、DMA転送を行う際のアドレスが重なっている依存関係があるDMA要求を行う際に、依存関係のある後続リクエストの実行開始を遅らせるアービター装置が記載されている。
Further, as a related technique, for example, there is
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
そこで、本発明の目的は、複数のリクエスタからの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の実施形態]
本発明の第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
第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
図1は、本実施形態におけるシステム1の構成の一例を示している。図1を参照すると、本実施形態におけるシステム1(データ転送装置)は、ホストPC(Personal Computer)2と、アクセラレーションプロセッサ3と、を有している。また、ホストPC2とアクセラレーションプロセッサ3とは、通信ネットワーク4を介して互いに通信可能なよう接続されている。
FIG. 1 shows an example of the configuration of the
ホストPC2は、演算処理を実行するとともにDMA転送を実行する際の設定を行う制御手段であるプロセッサ21と、情報を格納するホストメモリ22と、を有している。なお、プロセッサ21は、DMAディスクリプタ312の設定を行うため、リクエスタとも呼ぶ。
The host PC 2 has a
プロセッサ21は、DMA転送を実行する際、通信ネットワーク4を介して、転送情報であるDMAディスクリプタ312の設定を行う。つまり、プロセッサ21は、DMA転送を実行する場合、アクセラレーションプロセッサ3が有するDMAエンジン311のDMAディスクリプタ312にDMA転送のリクエストを書き込む。リクエストがDMAディスクリプタ312に書き込まれることで、DMAエンジン311はDMA転送を開始する。
When executing the DMA transfer, the
なお、プロセッサ21は、図示しない演算装置と記憶装置(ホストメモリ22でも構わないし、ホストメモリ22以外でも構わない)とを有している。プロセッサ21は、例えば、記憶装置に格納されたプログラムを演算装置が実行することで、上記DMAディスクリプタ312の設定を行う機能を実現する。
The
プロセッサ21が設定するDMAディスクリプタ312には、例えば、DMAエンジン311がDMA転送を実行する際に必要となる情報と、DMA転送の実行順序を保障する際に必要となる情報と、が含まれている。図2は、プロセッサ21が設定するDMAディスクリプタ312の一例を示している。図2を参照すると、DMAディスクリプタ312は、DMAエンジン311がDMA転送を実行する際に必要となる情報として、ライトデータ、転送先アドレス、転送元アドレス、転送リクエスト、転送長、などの情報を含んでいる。後述するDMAエンジン311は、図2に示すDMAディスクリプタ312上のライトデータ、転送元アドレス、転送先アドレス、転送リクエスト、転送長などの情報を基にデータ転送を実行する。
The
さらに、本実施形態におけるDMAディスクリプタ312は、DMA転送の実行順序を保障する際に必要となる情報として、実行順序の保証が必要である旨を示す情報である依存関係フラグ(依存関係情報、要順序保証情報)と、ライトリクエスト完了時間有効と、ライトリクエスト完了時間(待機時間情報)と、を示す情報を含んでいる。
Further, the
ライトリクエスト完了時間は、依存関係にある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ディスクリプタ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転送と依存関係があるか否かを示している。例えば、プロセッサ21は、実行順序の保証を行うことが必要であると判断される場合に、依存関係フラグを設定する。実行順序の保証を行うことが必要であると判断される場合とは、例えば、転送元アドレスや転送先アドレスの重なりが有る場合や、フラグの制御を行う場合などアドレスの重なりに関係なく先行のDMA転送と依存関係を持たせたい場合などがある。
The dependency flag indicates whether or not there is a dependency relationship with the preceding DMA transfer. For example, the
依存関係フラグが設定されている場合、当該依存関係フラグが設定された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ディスクリプタ312には、以上説明したような、DMAエンジン311がDMA転送を実行する際に必要となる情報と、DMA転送の実行順序を保障する際に必要となる情報と、が含まれている。
The
なお、DMAディスクリプタ312とDMAエンジン311とは、例えば、対応関係にある。例えば、同一のDMAディスクリプタ312に基づくDMA転送は、同一のDMAエンジン311が実行する。
The
アクセラレーションプロセッサ3は、ホストPC2のプロセッサ21が設定したDMAディスクリプタ312に基づいて、プロセッサ21を介さずにメモリ・メモリ間、レジスタ・メモリ間、レジスタ・レジスタ間などのDMA転送を実行する。つまり、アクセラレーションプロセッサ3は、DMAディスクリプタ312に基づいて、ホストメモリ22とメモリ33の間やレジスタ321の間、ホストメモリ22やメモリ33とレジスタ321の間などのデータ転送を実行する。
The
図1を参照すると、アクセラレーションプロセッサ3は、DMA転送を実行するDMAユニット31と、複数のコア32と、メモリ33と、を有している。図1で示すように、DMAユニット31とコア32、コア32とメモリ33、コア32と別のコア32、メモリ33とDMAユニット31とは、それぞれ、互いに通信可能なよう接続されている。
Referring to FIG. 1, the
なお、図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
DMAユニット31は、複数のDMAエンジン311と、複数のDMAディスクリプタ312と、を有している。DMAユニット31は、複数のDMAエンジン311と複数のDMAディスクリプタ312とにより、複数のDMA転送を並列して処理することが出来る。
The
DMAエンジン311は、DMAディスクリプタ312に基づいてDMA転送を実行する転送実行手段である。換言すると、DMAエンジン311は、図2に示すDMAディスクリプタ312上のライトデータ、転送元アドレス、転送先アドレス、転送リクエスト、転送長などの情報を基にデータ転送を行う。DMAエンジン311によるデータ転送は、例えば、ホストメモリ22とメモリ33の間やレジスタ321の間、ホストメモリ22やメモリ33とレジスタ321との間などで行われる。
The
また、DMAエンジン311は、所定の条件を満たす先行DMA転送を行った場合、所定の条件を満たす後続DMA転送の開始を所定時間経過まで待機する。例えば、DMAエンジン311は、ライトリクエスト完了時間が設定され、かつ、ライトリクエスト完了時間有効が有効であるDMAディスクリプタ312に基づくDMA転送を開始した場合、当該DMA転送を開始してからライトリクエスト完了時間が示す時間(待機時間)が経過するまでの間、依存関係フラグが設定されたDMAディスクリプタ312に基づく後続DMA転送の開始を待機する。また、例えば、DMAエンジン311は、依存関係フラグが設定されていないDMAディスクリプタ312に基づく後続DMA転送については、上記ライトリクエスト完了時間が示す時間の経過前でも待機せず開始する。
Further, when the
このように、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ディスクリプタ312は、DMA転送を実行する際に必要となる情報やDMA転送の実行順序を保障する際に必要となる情報などを示している。上述したように、DMAディスクリプタ312には、ライトデータと、転送先アドレスと、転送元アドレスと、転送リクエストと、転送長と、依存関係フラグと、ライトリクエスト完了時間有効と、ライトリクエスト完了時間と、が含まれている。
The
なお、本実施形態の場合、上述したように、DMAディスクリプタ312はプロセッサ21により設定される。また、DMAディスクリプタ312は、DMAエンジン311により参照される。上述したように、同一のDMAディスクリプタ312に基づくDMA転送は、同一のDMAエンジン311により行われる。
In the case of this embodiment, as described above, the
コア32は、アドレスマップされたレジスタ321と、演算器322と、を有する。レジスタ321へのアクセスパスは3種類存在する。具体的には、例えば、ホストPC2からのアクセスパスと、コア32内に有する演算器322からのアクセスパスと、他のコア32からのアクセスパスと、が存在する。
The
メモリ33は、RAM(Random Access Memory)などの記憶装置である。メモリ33は、DMA転送などの際に利用される。
The
システム1は、例えば、上記のような構成を有している。
The
なお、上述したシステム1では、コア32が有するレジスタ321はDMA転送可能なメモリアドレス空間にマッピングされているものとする。また、DMAエンジン311からコア32が有するレジスタ321へのアクセスは、固定時間内に処理が完了するものとする。
In the
また、上述したシステム1では、原則として、DMAディスクリプタ312に設定された順番にDMA転送が行われるとする。一方で、複数のDMAエンジン311により複数のDMAディスクリプタ312が並列して処理されるため、実行順序は保障されないものとする。また、同一のDMAディスクリプタ312を用いたDMA転送であっても、2つのDMA転送間でアドレス競合が存在する場合、原則として、実行順序は保障されないものとする。ただし、依存関係フラグやライトリクエスト完了時間有効、ライトリクエスト完了時間などを設定することで、実行順序を保障することが出来る。
Further, in the above-mentioned
次に、図3を参照して、システム1が同一のDMAディスクリプタ312を用いたDMA転送を行う場合の動作の一例について説明する。
Next, with reference to FIG. 3, an example of the operation when the
図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
以上のように、システム1においては、実行順序の保証が必要な依存関係のあるDMA転送については実行順序の保証を行う一方で、依存関係のないDMA転送については、無駄な待機を行わずにDMA転送を開始することが出来る。
As described above, in the
続いて、図4を参照して、システム1の動作の一例について説明する。図4においては、実行順序を保障したい依存関係のあるDMA転送と、実行順序を保障する必要がない依存関係のないDMA転送を行う場合について説明する。
Subsequently, an example of the operation of the
図4を参照すると、プロセッサ21は、同一のDMAディスクリプタ312に対して、必要な設定を行う。具体的には、プロセッサ21は、先行のDMA転送を指示する設定を行う(ステップS101)とともに、後続のDMA転送を指示する設定を行う(ステップS102)(ステップS103)。なお、プロセッサ21は、先行の設定を行う際に、ライトリクエスト完了時間有効とライトリクエスト完了時間を含む設定を行う。また、プロセッサ21は、後続の設定のうちステップS102の設定を行う際に、依存関係フラグを設定する旨を含む設定を行う。また、プロセッサ21は、後続の設定のうちステップS103の設定を行う際に、依存関係フラグを設定しない旨を含む設定を行う。
Referring to FIG. 4, the
アクセラレーションプロセッサ3のDMAエンジン311は、DMAディスクリプタ312が設定されると、先行のDMA転送を指示するDMAディスクリプタ312に基づいて、DMA転送を開始する(ステップS201)。DMA転送は、DMAリクエストを発行してDMAディスクリプタ312が示す転送元から転送先にデータの転送を行うことで行われる。そして、データの転送が完了した後、DMA転送は完了する。
When the
また、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
なお、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
また、図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
以上のように、ポーリングによる確認方法や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
このように、本実施形態におけるシステム1は、依存関係フラグを含むDMAディスクリプタ312とDMAエンジン311とを有している。このような構成により、DMAエンジン311は、先行するDMA転送と依存関係のある、実行順序の保証が必要な後続DMA転送の実行を待機させつつ、先行するDMA転送と依存関係のない後続DMA転送を待機せず実行することが出来る。その結果、依存関係のあるDMA転送については実行順序の保証を行うことを可能とする一方で、依存関係のないDMA転送まで転送の開始を遅らせることを防ぐことが出来る。
As described above, the
また、DMAディスクリプタ312に依存関係フラグを含んでいるため、転送先アドレスと転送元アドレスが重なっているなど、アドレスの関係とは無関係に、複数のDMA転送間に依存関係を持たせることが可能となる。その結果、DMA転送間の依存関係に応じた適切な制御を行うことが可能となる。例えば、本実施形態で説明したシステム1によると、依存関係フラグを設定する事で、アドレス比較を行わずに強制的にデータ転送の完了待ち合わせを行う事が可能となる。これにより、例えば、異なるアドレス位置のフラグ設定を完了してから、DMA転送を開始することなども行うことが可能となる。
Further, since the
なお、本実施形態においては、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
また、本実施形態においては、ソフトウェアが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
[第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
第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
本実施形態におけるシステム1は、第1の実施形態と同様、ホストPC2と、アクセラレーションプロセッサ3と、を有している。本実施形態の場合、ホストPC2が有するプロセッサ21に加えて、アクセラレーションプロセッサ3が有するコア32(コア32-0、コア32-1、コア32-2、コア32-3)もDMAディスクリプタ412の設定を行うことが出来る。以下、本実施形態に特徴的な構成について説明する。
The
図7は、プロセッサ21、コア32が設定するDMAディスクリプタ412の一例を示している。図7を参照すると、DMAディスクリプタ412は、第1の実施形態で説明したDMAディスクリプタ312が有する構成に加えて、リクエスタを識別するための識別情報である使用リクエスタ識別子を有している。
FIG. 7 shows an example of the
使用リクエスタ識別子は、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ディスクリプタ412に基づくDMA転送は、同一の使用リクエスタ識別子が付与されていない、他のリクエスタからのリクエストによる依存関係のあるDMA転送が完了するまで待機した後、開始する。つまり、使用リクエスタ識別子が設定されているDMAディスクリプタ412の場合、先行の依存関係のあるDMA転送が完了した後、当該DMAディスクリプタ412に基づくDMA転送を開始する。なお、先行の依存関係のあるDMA転送の完了は、先行のDMA転送の完了フラグに基づいて判断して構わない。また、使用リクエスタ識別子が設定されていない場合、他のリクエスタからのリクエストにより依存関係有りのDMA転送を実行している場合であっても、待機せずDMA転送を開始する。
The DMA transfer based on the
次に、図8を参照して、システム1が同一のDMAディスクリプタ412を用いたDMA転送を行う場合の動作の一例について説明する。
Next, with reference to FIG. 8, an example of the operation when the
図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
このような図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
以上のように、本実施形態の場合、使用リクエスタ識別子が設定されている場合、依存関係がある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
続いて、図9を参照して、第2の実施形態におけるシステム1の動作の一例について説明する。図9においては、図4を参照して説明した場合に加えて、コア32からのDMAディスクリプタ412の設定が加わった場合について説明する。
Subsequently, an example of the operation of the
図9を参照すると、プロセッサ21は、先行のDMA転送を指示する設定を行う(ステップS101)とともに、後続のDMA転送を指示する設定を行う(ステップS102)(ステップS103)。また、コア32は、プロセッサ21によるステップS101の設定よりも後に、DMA転送を指示する設定を行う(ステップS301)。
Referring to FIG. 9, the
アクセラレーションプロセッサ3のDMAエンジン311は、DMAディスクリプタ412が設定されると、先行のDMA転送を指示するDMAディスクリプタ412に基づいて、DMA転送を開始する(ステップS201)。DMA転送は、DMAリクエストを発行してDMAディスクリプタ412が示す転送元から転送先にデータの転送を行うことで行われる。そして、データの転送が完了した後、DMA転送は完了する。
When the
また、DMAエンジン311は、先行のDMA転送を指示するDMAディスクリプタ412にライトリクエスト完了時間が設定され、かつ、ライトリクエスト完了時間有効が有効であるため、依存関係フラグが設定されたステップS102に応じたDMA転送の開始を、ライトリクエスト完了時間が経過するまで待機する。そして、DMAエンジン311は、ライトリクエスト完了時間経過後、ステップS102に応じたDMA転送を開始する(ステップS202)。その結果、先行のDMA転送が完了した後に、DMAエンジン311は、ステップS102に応じたDMA転送を開始することになる。
Further, the
また、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エンジン311は、依存関係フラグが設定されていないステップS103に応じたDMA転送については、ライトリクエスト完了時間の経過を待たずにDMA転送を開始する(ステップS203)。
Further, the
このように、本実施形態におけるシステム1は、使用リクエスタ識別子を含むDMAディスクリプタ412とDMAエンジン311とを有している。このような構成により、DMAエンジン311は、先行する依存関係のある一連のDMA転送が完了した後、他のリクエスタが登録した後続のDMA転送を開始することが出来る。これにより、異なるリクエスタが、それぞれDMA転送を行った場合であってもアクセラレーションプロセッサ3で実行順序の保証を行うことが可能となる。なお、DMA転送の実行順序の保障を行う必要がない場合、使用リクエスタ識別子を設定しなければ、同一のDMAディスクリプタ412を用いたDMA転送間でも待機せずDMA転送を連続して行うことが出来る。
As described above, the
なお、第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
図10を参照すると、データ転送装置5は、転送実行手段51を有している。転送実行手段51は、DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された転送情報に基づいてDMA転送を行う。ここで、転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれている。転送実行手段51は、転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した転送情報に基づくDMA転送を開始する。
Referring to FIG. 10, the
このように、本実施形態におけるデータ転送装置5は、転送情報に基づくDMA転送を行う転送実行手段51を有している。また、転送情報には当該転送情報を設定したリクエスタを示す識別情報が含まれている。このような構成により、転送実行手段51は、あるリクエスタからの登録に基づくDMA転送が完了した後、他のリクエスタからの登録に基づくDMA転送を開始することが出来る。これにより、例えば、先行するあるリクエスタからの登録により依存関係のあるDMA転送が行われていたとしても、当該依存関係のあるDMA転送の完了を待って、他のリクエスタからの登録に基づくDMA転送を開始することが可能となる。その結果、異なるリクエスタがそれぞれDMA転送を行った場合であっても実行順序の保証を行うことが可能となる。
As described above, the
また、上述したデータ転送装置5は、当該データ転送装置5に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、データ転送装置に、DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された転送情報に基づいてDMA転送を行う転送実行手段を実現させ、転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、転送実行手段は、転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した転送情報に基づくDMA転送を開始するプログラムである。
Further, the above-mentioned
また、上述したデータ転送装置5により実行されるデータ転送方法は、データ転送装置が、DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された転送情報に基づいてDMA転送を行い、転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した転送情報に基づくDMA転送を開始する、という方法である。
Further, in the data transfer method executed by the
上述した構成を有する、プログラム、又は、データ転送方法、の発明であっても、上記データ転送装置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
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるデータ転送装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
<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
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
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
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
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
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
21
Claims (8)
前記転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、
前記転送実行手段は、前記転送情報に基づく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.
データ転送装置は、前記転送情報を設定する設定手段であるリクエスタを複数有しており、
前記識別情報は、前記リクエスタごとに異なる識別子である
データ転送装置。 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転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づく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 .
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002055947A (en) | 2000-07-27 | 2002-02-20 | Samsung Electronics Co Ltd | Bus system and bus arbitration 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 |
JP2013539098A (en) | 2010-08-04 | 2013-10-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Data processing system for determining one or more partitionable endpoints affected by an I/O message - Patents.com |
JP2013539085A (en) | 2010-06-23 | 2013-10-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method, system, and computer program for facilitating management of system memory in a computing environment |
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 |
-
2018
- 2018-03-13 JP JP2018045079A patent/JP7003752B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002055947A (en) | 2000-07-27 | 2002-02-20 | Samsung Electronics Co Ltd | Bus system and bus arbitration 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 - Patents.com |
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 | |
KR101051815B1 (en) | Storage controller and storage system | |
JP2013515980A (en) | Data transfer apparatus and control method thereof | |
CN109284241A (en) | Storage device, processor and computing system for storing latency information | |
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 | |
US12271628B2 (en) | Non-volatile memory-based storage device, device controller and method thereof | |
US20060059489A1 (en) | Parallel processing system, interconnection network, node and network control method, and program therefor | |
JP2011232917A (en) | Semiconductor integrated circuit and request control method | |
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 | |
JP6992616B2 (en) | Data transfer device, data transfer method, program | |
CN110603521A (en) | Hyperthreaded processor | |
JP4642531B2 (en) | Arbitration of data requests | |
JP6206524B2 (en) | Data transfer device, data transfer method, and program | |
JP5058116B2 (en) | DMAC issue mechanism by streaming ID method | |
JPH06214875A (en) | Storage controller | |
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 | |
JP2004005710A (en) | Information processing device | |
JP2007264751A (en) | Data transfer controller | |
CN109597770B (en) | Semiconductor device and method for use in semiconductor device | |
JP6940283B2 (en) | DMA transfer control device, DMA transfer control method, and DMA transfer control program | |
JP6519343B2 (en) | Data processor | |
JP6037029B2 (en) | Data transfer apparatus, information processing apparatus, and IO control method |
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 | Request for written amendment filed |
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 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7003752 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |