(57)【要約】【課題】容易な構成でＤＭＡ転送の実行順序を保障することが難しい、という問題を解決すること。【解決手段】ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う転送実行手段を備え、前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を行う。【選択図】図１
2017167644.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う転送実行手段を備え、
前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を行う
データ転送装置。
【請求項２】
請求項１に記載のデータ転送装置であって、
前記転送実行手段は、次のＤＭＡ転送の実行を所定時間待機させるための待機情報を含む前記転送情報が設定されている場合に、前記転送情報に基づいてＤＭＡ転送を行った後、所定時間待機して、別の前記転送情報に基づくＤＭＡ転送を行う
データ転送装置。
【請求項３】
請求項１又は２に記載のデータ転送装置であって、
前記転送実行手段は、次のＤＭＡ転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてＤＭＡ転送を行った後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくＤＭＡ転送を行う
データ転送装置。
【請求項４】
請求項３に記載のデータ転送装置であって、
前記待機時間情報は、ＤＭＡ転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示している
データ転送装置。
【請求項５】
請求項１乃至４のいずれかに記載のデータ転送装置であって、
前記転送情報を設定する制御手段を有する
データ転送装置。
【請求項６】
請求項５に記載のデータ転送装置であって、
前記制御手段は、ＤＭＡ転送を実行する際の転送元及び転送先が所定の条件を満たす場合に、次のＤＭＡ転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報を設定する
データ転送装置。
【請求項７】
請求項６に記載のデータ転送装置であって、
前記制御手段は、転送元及び転送先が予め定められた範囲内に存在し、かつ、先行のＤＭＡ転送の転送先が後続のＤＭＡ転送の転送元に含まれる場合に、先行のＤＭＡ転送を行うための前記転送情報に前記待機時間情報を含める
データ転送装置。
【請求項８】
請求項５乃至７のいずれかに記載のデータ転送装置であって、
複数の転送実行手段を有しており、
前記制御手段は、転送元及び転送先に基づいて一連のＤＭＡ転送であると判断される場合に、一連のＤＭＡ転送を行うための複数の前記転送情報を同一の転送実行手段が実行するよう設定する
データ転送装置。
【請求項９】
データ転送装置により行われるデータ転送方法であって、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行い、
前記転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を行う
データ転送方法。
【請求項１０】
データ転送装置に、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う転送実行手段を実現させ、
前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を行う
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置、データ転送方法、プログラムに関し、特に、ダイレクトメモリアクセスを行うデータ転送装置、データ転送方法、プログラムに関する。
【背景技術】
【０００２】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を介さずにメモリ・メモリ間やレジスタ・メモリ間、メモリ・Ｉ／Ｏデバイス間などのデータ転送を行うための技術として、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）が知られている。
【０００３】
上記ＤＭＡに関する技術として、例えば、特許文献１がある。特許文献１には、複数のＤＭＡ要求コアと、アービタ装置と、タイマと、を有するＤＭＡ制御装置が記載されている。特許文献１によると、ＤＭＡ要求コアは、ＤＭＡ要求を発行する際に、ＤＭＡ転送情報とともにＤＭＡ実行開始要求時刻を表す情報をアービタ装置に転送する。また、アービタ装置は、ＤＭＡ実行開始要求時刻をもとにＤＭＡ実行順序を調停する。特許文献１によると、このような構成により、効率的な制御が可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２１５６２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されている技術の場合、ＤＭＡ転送の実行順序を保障するためには、アービタ装置を用いることが必要である。そのため、アービタ装置を有さない場合、ＤＭＡ転送の実行順序を保障することが出来なかった。つまり、ＤＭＡ転送の実行順序を保障するためにはアービタ装置を用いることが必要であり、容易な構成でＤＭＡ転送の実行順序を保障することが難しい、という問題が生じていた。
【０００６】
そこで、本発明の目的は、容易な構成でＤＭＡ転送の実行順序を保障することが難しい、という問題を解決するデータ転送装置を提供することにある。
【課題を解決するための手段】
【０００７】
かかる目的を達成するため本発明の一形態であるデータ転送装置は、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う転送実行手段を備え、
前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を行う
という構成を採る。
【０００８】
また、本発明の他の形態であるデータ転送方法は、
データ転送装置により行われるデータ転送方法であって、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行い、
前記転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を行う
という構成を採る。
【０００９】
また、本発明の他の形態であるプログラムは、
データ転送装置に、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う転送実行手段を実現させ、
前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を行う
プログラムである。
【発明の効果】
【００１０】
本発明は、以上のように構成されることにより、容易な構成でＤＭＡ転送の実行順序を保障することが難しい、という問題を解決するデータ転送装置を提供することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態に係るシステムの構成の一例を示すブロック図である。
【図２】図１で示すプロセッサ２１が有する構成の一例である。
【図３】図１で示すＤＭＡディスクリプタの構成の一例を示す図である。
【図４】図１で示すＤＭＡディスクリプタの構成の一例を示す図である。
【図５】一般的なシステムがＤＭＡ転送を行う際の動作の一例を示す図である。
【図６】本発明の第１の実施形態に係るシステムが実行順序を保障してＤＭＡ転送を行う際の動作の一例を示す図である。
【図７】本発明の第１の実施形態に係るシステムの動作の一例を示すシーケンス図である。
【図８】一般的なシステムの動作の一例を示すシーケンス図である。
【図９】一般的なシステムの他の動作の一例を示すシーケンス図である。
【図１０】本発明の第２の実施形態に係るデータ転送装置の構成の一例を示す概略ブロック図である。
【発明を実施するための形態】
【００１２】
［第１の実施形態］
本発明の第１の実施形態を図１乃至図９を参照して説明する。図１は、システム１の構成の一例を示すブロック図である。図２は、プロセッサ２１が有する構成の一例である。図３、図４は、ＤＭＡディスクリプタ３１２の構成の一例を示す図である。図５は、一般的なシステムがＤＭＡ転送を行う際の動作の一例を示す図である。図６は、本発明の第１の実施形態に係るシステム１が実行順序を保障してＤＭＡ転送を行う際の動作の一例を示す図である。図７は、システム１の動作の一例を示すシーケンス図である。図８、図９は、一般的なシステムの動作の一例を示すシーケンス図である。
【００１３】
本発明の第１の実施形態では、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うシステム１について説明する。本実施形態におけるシステム１のプロセッサ２１は、ＤＭＡ転送を行う場合、ＤＭＡディスクリプタ３１２の設定を行う。後述するように、本実施形態におけるＤＭＡディスクリプタ３１２には、当該ＤＭＡディスクリプタ３１２に従ってＤＭＡ転送を実行したＤＭＡエンジン３１１が次のＤＭＡ転送を行うまで待機する時間を示すライトリクエスト完了時間を含むことが出来る。ＤＭＡエンジン３１１は、ＤＭＡディスクリプタ３１２にライトリクエスト完了時間が含まれる場合、当該ＤＭＡディスクリプタ３１２に基づいてＤＭＡ転送を実行した後、ライトリクエスト完了時間分待機した後、次のＤＭＡ転送を実行する。
【００１４】
図１を参照すると、本実施形態におけるシステム１（データ転送装置）は、ホストＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）２と、アクセラレーションプロセッサ３と、を有している。また、ホストＰＣ２とアクセラレーションプロセッサ３とは、通信ネットワーク４を介して互いに通信可能なよう接続されている。
【００１５】
ホストＰＣ２は、演算処理を実行するプロセッサ２１（制御手段）と情報を格納するホストメモリ２２とを有している。
【００１６】
本実施形態におけるプロセッサ２１は、図２で示すように、ＤＭＡディスクリプタ設定手段２１１を有している。ＤＭＡディスクリプタ設定手段２１１は、図示しない記憶装置に格納されたプログラムをプロセッサ２１が実行することで実現される。
【００１７】
ＤＭＡディスクリプタ設定手段２１１は、ＤＭＡ転送（データ転送）を実行する場合に後述するＤＭＡディスクリプタ３１２（転送情報）の設定を行う。例えば、ＤＭＡディスクリプタ設定手段２１１は、図３、図４で示すようなＤＭＡディスクリプタ３１２の設定を行う。
【００１８】
図３を参照すると、ＤＭＡディスクリプタ設定手段２１１は、例えば、ライトデータや転送元アドレス、転送先アドレス、転送長、転送リクエストなどの情報を含むＤＭＡディスクリプタ３１２の設定を行う。
【００１９】
また、図４を参照すると、ＤＭＡディスクリプタ設定手段２１１は、ＤＭＡ転送を実行する際の転送元アドレス（転送元）と転送先アドレス（転送先）が所定の条件を満たす場合に、上記構成に追加してライトリクエスト完了時間有効とライトリクエスト完了時間との項目を含むＤＭＡディスクリプタ３１２の設定を行う。
【００２０】
例えば、ＤＭＡディスクリプタ設定手段２１１は、転送元アドレス及び転送先アドレスが予め定められた範囲内に存在し、かつ、先行のＤＭＡ転送の転送先アドレスが後続の転送元アドレスに含まれる場合に、先行のＤＭＡ転送を行うためのＤＭＡディスクリプタ３１２を図４で示すよう設定する。換言すると、ＤＭＡディスクリプタ設定手段２１１は、データの転送が固定時間内に完了することが保障されているアドレス空間に対するＤＭＡ転送を行う場合であって、実行順序の保障を行う場合に、図４で示すようなＤＭＡディスクリプタ３１２の設定を行う。
【００２１】
また、ＤＭＡディスクリプタ設定手段２１１は、転送元アドレス及び転送先アドレスに基づいて、実行順序の保証を行うことが必要となる一連のＤＭＡ転送であると判断される場合に、当該一連のＤＭＡ転送を同一のＤＭＡエンジン３１１が行うよう、同一のＤＭＡディスクリプタ３１２に必要な設定を行う。例えば、ＤＭＡディスクリプタ設定手段２１１は、実行順序を保障したＤＭＡ転送を行わせる場合、同一のＤＭＡディスクリプタ３１２に対して、エントリｎの設定を行った後、エントリｎ＋１の設定を行う。なお、ｎは任意の値となる。
【００２２】
このように、ＤＭＡディスクリプタ設定手段２１１は、転送元アドレス及び転送先アドレスに基づいて、実行順序の保証を行うか否かを決定する。例えば、ＤＭＡディスクリプタ設定手段２１１は、先行のＤＭＡ転送の転送先アドレスが（先行のＤＭＡ転送から所定時間以内の）後続の転送元アドレスに含まれる場合などＤＭＡ転送間のアドレス競合が生じている場合に、実行順序の保証を行うことが必要であると判断する。
【００２３】
なお、ライトリクエスト完了時間有効の項目は、ＤＭＡ転送を行った後、次のＤＭＡ転送を行うまで所定時間待機するか否かを示している。ＤＭＡディスクリプタ３１２にライトリクエスト完了時間有効が設定されている場合、ＤＭＡエンジン３１１は、当該ＤＭＡディスクリプタ３１２に基づいてＤＭＡ転送を行った後、所定時間待機して、次のＤＭＡ転送を行うことになる。一方、ＤＭＡディスクリプタ３１２にライトリクエスト完了時間有効が設定されていない場合、ＤＭＡエンジン３１１は、ＤＭＡ転送とＤＭＡ転送との間に待機することなくＤＭＡ転送を実行する。また、ライトリクエスト完了時間は、ＤＭＡ転送を実行した後、次のＤＭＡ転送を実行するまでの待機時間を示している。ライトリクエスト完了時間は、例えば、転送元アドレスから転送先アドレスまでデータの転送を行う際の、データの転送が完了するまでに必要な時間に基づいて予め定められている。
【００２４】
アクセラレーションプロセッサ３は、ホストＰＣ２のプロセッサ２１により設定されたＤＭＡディスクリプタ３１２に基づいて、プロセッサ２１を介さずにメモリ・メモリ間、レジスタ・メモリ間、レジスタ・レジスタ間などのＤＭＡ転送を実行する。つまり、アクセラレーションプロセッサ３は、ＤＭＡディスクリプタ３１２に基づいて、ホストメモリ２２とメモリ３３の間やレジスタ３２１の間、ホストメモリ２２やメモリ３３とレジスタ３２１の間のデータ転送を実行する。
【００２５】
図１を参照すると、アクセラレーションプロセッサ３は、ＤＭＡ転送を実行するＤＭＡユニット３１と、複数のコア３２と、メモリ３３と、を有している。図１で示すように、ＤＭＡユニット３１とコア３２、コア３２とメモリ３３、コア３２と別のコア３２、メモリ３３とＤＭＡユニット３１とは、それぞれ、互いに通信可能なよう接続されている。
【００２６】
ＤＭＡユニット３１は、複数のＤＭＡエンジン３１１（転送実行手段）と、複数のＤＭＡディスクリプタ３１２と、を有している。ＤＭＡユニット３１は、複数のＤＭＡエンジン３１１と複数のＤＭＡディスクリプタ３１２とにより、複数のＤＭＡ転送を並列して処理することが出来る。
【００２７】
ＤＭＡエンジン３１１は、ＤＭＡディスクリプタ３１２に基づいて、ＤＭＡ転送を実行する。また、ＤＭＡディスクリプタ３１２にライトリクエスト完了時間が含まれる場合、ＤＭＡエンジン３１１は、当該ＤＭＡディスクリプタ３１２に基づいてＤＭＡ転送を行った後、ライトリクエスト完了時間分待機して、次のＤＭＡ転送を行う。
【００２８】
ＤＭＡディスクリプタ３１２は、ＤＭＡ転送を実行する際の転送情報を示している。上述したように、ＤＭＡディスクリプタ３１２には、ライトデータと、転送先アドレスと、転送元アドレスと、転送リクエストと、転送長と、が含まれている（図３参照）。また、ＤＭＡディスクリプタ３１２には、ライトリクエスト完了時間有効（待機情報）と、ライトリクエスト完了時間（待機時間情報）と、を含むことが出来る（図４参照）。
【００２９】
ＤＭＡディスクリプタ３１２は、上述したように、プロセッサ２１のＤＭＡディスクリプタ設定手段２１１により設定される。また、ＤＭＡディスクリプタ３１２は、ＤＭＡエンジン３１１により参照される。
【００３０】
コア３２は、アドレスマップされたレジスタ３２１と、演算器３２２と、を有する。レジスタ３２１へのアクセスパスは２種類存在し、ホストＰＣ２からのアクセスパスとコア３２内に有する演算器３２２からのアクセスパスとを含んでいる。
【００３１】
メモリ３３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶装置である。メモリ３３は、ＤＭＲ転送などの際に利用される。
【００３２】
システム１は、例えば、上記のような構成を有している。
【００３３】
なお、上述したシステム１では、コア３２が有するレジスタ３２１はＤＭＡ転送可能なメモリアドレス空間にマッピングされているものとする。また、ＤＭＡエンジン３１１からレジスタ３２１へのアクセスなど転送元アドレスと転送先アドレスが予め定められた範囲内の場合には、固定時間内に処理が完了するものとする。
【００３４】
また、ＤＭＡディスクリプタ３１２に設定された順番にＤＭＡ転送が行われるとする。一方で、複数のＤＭＡエンジン３１１により複数のＤＭＡディスクリプタ３１２が並列して処理されるため、実行順序は保障されないものとする。また、同一のＤＭＡディスクリプタ３１２を用いたＤＭＡ転送であっても、２つのＤＭＡ転送間でアドレス競合が存在する場合、原則として、実行順序は保障されないものとする。
【００３５】
本実施形態におけるシステム１は、上記のようなライトリクエスト完了時間などを含むＤＭＡディスクリプタ３１２を設定することで、同一のＤＭＡディスクリプタ３１２を用いたＤＭＡ転送において、実行順序を保障することが出来ることになる。
【００３６】
次に、図５及び図６を参照して、一般的なシステム及び本実施形態で説明するシステム１が同一のＤＭＡディスクリプタ３１２を用いたＤＭＡ転送を行う場合の動作の一例について説明する。
【００３７】
図５及び図６では、先行のＤＭＡ転送がアドレス「０ｘ１０００」からアドレス「０ｘ２０００」にデータの転送を行った後、後続のＤＭＡ転送がアドレス「０ｘ２０００」からアドレス「０ｘ３０００」にデータの転送を行う場合の一例を示している。
【００３８】
図５を参照すると、一般的なシステムの場合、アドレス「０ｘ２０００」に対するWrite処理が完了する前に、後続のＤＭＡ転送によるアドレス「０ｘ２０００」からのRead処理が開始される。そのため、後続のＤＭＡ転送は、先行のＤＭＡ転送のデータを反映したデータを読み込むことが出来ないおそれがある。このように、一般的なシステムにおいては、２つのＤＭＡ転送間でデータ転送を確実に保障することが出来なかった。
【００３９】
一方で、図６を参照すると、先行のＤＭＡディスクリプタ３１２には、ライトリクエスト完了時間有効を示す「０ｘ１」と、ライトリクエスト完了時間「０ｘ１００」と、が含まれている。そのため、図６の場合、ＤＭＭエンジン３１１は、先行のＤＭＡ転送を実行した後、ライトリクエスト完了時間分待機して、後続のＤＭＡ転送を実行することになる。従って、図６で示すように、先行のＤＭＡ転送によるアドレス「０ｘ２０００」に対するWrite処理が完了した後に、後続のＤＭＡ転送によるアドレス「０ｘ２０００」からのRead処理を開始することになる。このように、システム１においては、２つのＤＭＡ転送間でデータ転送を確実に保障することが出来ることが分かる。
【００４０】
続いて、図７を参照して、システム１の動作の一例について説明する。図７においては、実行順序を保障したい２つのＤＭＡ転送を行う場合について説明する。
【００４１】
図７を参照すると、プロセッサ２１のＤＭＡディスクリプタ設定手段２１１は、同一のＤＭＡディスクリプタ３１２に対して、必要な設定を行う。具体的には、ＤＭＡディスクリプタ設定手段２１１は、先行のＤＭＡ転送を指示する設定を行う（ステップＳ１０１）とともに、後続のＤＭＡ転送を指示する設定を行う（ステップＳ１０２）。なお、ＤＭＡディスクリプタ設定手段２１１は、先行の設定を行う際に、ライトリクエスト完了時間有効とライトリクエスト完了時間を含む設定を行う。
【００４２】
アクセラレーションプロセッサ３のＤＭＡエンジン３１１は、ＤＭＡディスクリプタ３１２が設定されると、先行のＤＭＡ転送を指示するＤＭＡディスクリプタ３１２に基づいて、ＤＭＡ転送を実行する（ステップＳ２０１）。ＤＭＡ転送は、ＤＭＡリクエストを発行してＤＭＡディスクリプタ３１２が示す転送元から転送先にデータの転送を行うことで行われる。そして、データの転送が完了した後。ＤＭＡ転送は完了する。
【００４３】
また、ＤＭＡエンジン３１１は、先行のＤＭＡ転送を指示するＤＭＡディスクリプタ３１２にライトリクエスト完了時間が含まれるため、上記ＤＭＡ転送を実行した後、ライトリクエスト完了時間が経過するまで待機する。そして、ライトリクエスト完了時間経過後、後続のＤＭＡ転送を指示するＤＭＡディスクリプタ３１２を実行する（ステップＳ２０２）。
【００４４】
このように、本実施形態におけるＤＭＡエンジン３１１は、ＤＭＡディスクリプタ３１２にライトリクエスト完了時間が含まれる場合、ライトリクエスト完了時間分待機した後に、別のＤＭＡ転送を実行する。
【００４５】
なお、２つのＤＭＡ転送の実行順序を保障する方法としては、本実施形態で説明した他に、ポーリングによる確認方法（図８参照）とＤＭＡ転送完了割込みによる確認方法（図９参照）とがある。
【００４６】
図８で示すように、ポーリングによる確認方法の場合、プロセッサ２１は、先行のＤＭＡ転送の終了を確認するためにポーリングを実施することになる。そのため、１つ目のＤＭＡ転送開始から２つ目のＤＭＡ転送開始までの間、ＤＭＡ転送の完了確認のためにプロセッサ２１は占有されることになる。
【００４７】
また、図９で示すように、ＤＭＡ転送完了割込みによる確認方法の場合、ＤＭＡ転送が完了するとアクセラレーションプロセッサ３からホストＰＣ２にＤＭＡ転送完了割込みが通知される。ホストＰＣ２では、ＤＭＡ転送完了割込みを検知するとプロセッサ２１が割込みハンドラのプロセスを起動する。その際、プロセッサ２１は割込み検出前までに行っていたプロセスの退避や新規プロセスの起動を行う必要がある。そのため、ＤＭＡ転送完了通知、ホストＰＣの割込み検出、後続のＤＭＡ転送開始までのレイテンシが悪くなる傾向にある。また、ＤＭＡ転送完了割込みは、ＤＭＡエンジン３１１からＤＭＡ転送のリクエスト発行が完了したことを知ることができるだけであり情報量が少ないため、別途どのＤＭＡディスクリプタ３１２が完了したか、データ転送は成功したかなど確認する必要がある。このように、ＤＭＡ転送完了割込みによる確認方法であっても、レイテンシが悪くなるなどの問題が生じることになる。
【００４８】
以上のように、ポーリングによる確認方法やＤＭＡ転送完了割込みによる確認方法の場合、プロセッサ２１の占有時間が長くなる等の問題が生じることになる。一方で、図７で示すように、本実施形態で説明したシステム１の場合、プロセッサ２１の占有時間が必要以上に生じることなく、ＤＭＡ転送の実行順序を保障することが出来る。つまり、プロセッサリソースを効率的に使用することが出来る。
【００４９】
このように、本実施形態におけるシステム１は、ライトリクエスト完了時間を含むＤＭＡディスクリプタ３１２とＤＭＡエンジン３１１とを有している。このような構成により、ＤＭＡエンジン３１１は、ＤＭＡディスクリプタ３１２にライトリクエスト完了時間が含まれる場合、当該ＤＭＡディスクリプタ３１２に基づいてＤＭＡ転送を行った後、ライトリクエスト完了時間分待機して、次のＤＭＡ転送を行うことが出来る。その結果、先行のＤＭＡ転送が完了した後に、後続のＤＭＡ転送を実行することが出来る。これにより、アクセラレーションプロセッサ３が実行順序の保証を行うことが可能となり、その結果、プロセッサ２１が待つ必要がなくなりプロセッサリソースを効率的に使用することが可能となる。
【００５０】
なお、本実施形態においては、２つのＤＭＡ転送の実行順序を保障する場合について説明した。しかしながら、システム１が実行順序を保障するＤＭＡ転送は２つに限定されない。システム１は、３つ以上の複数のＤＭＡ転送の実行順序を保障するよう構成することが出来る。
【００５１】
また、本実施形態においては、ソフトウェアがＤＭＡ転送間のアドレス競合など実行順序を保障すべきＤＭＡ転送であるか否かを判断する例について説明した。しかしながら、ハードウェアでＤＭＡ転送間のアドレスを比較するよう構成しても構わない。
【００５２】
また、本実施形態においては、２つのＤＭＡ転送の実行順序を保障する場合、先行のＤＭＡディスクリプタ３１２にライトリクエスト完了時間を含めるとした。しかしながら、後続のＤＭＡディスクリプタ３１２にライトリクエスト完了時間に相当する構成を含めるよう構成しても構わない。この場合、ＤＭＡエンジン３１１は、後続のＤＭＡディスクリプタ３１２に基づいてＤＭＡ転送を行おうとする際に、所定時間待機してからＤＭＡ転送を行うことになる。
【００５３】
また、図１で示すシステム１は、あくまで一例である。システム１は、複数のプロセッサ２１を有していても構わないし、４つ以外のコア３２を有していても構わない。また、複数のメモリ３３を有していても構わない。また、ＤＭＡユニット３１が有するＤＭＡエンジン３１１の数やＤＭＡディスクリプタ３１２の数は、特に限定されない。
【００５４】
［第２の実施形態］
次に、図１０を参照して、第２の実施形態について説明する。第２の実施形態では、データ転送装置５の構成の概要について説明する。
【００５５】
図１０を参照すると、本実施形態におけるデータ転送装置５は、転送実行手段５１を有している。
【００５６】
転送実行手段５１は、ＤＭＡ転送を行うための転送情報が設定され、設定された転送情報に基づいてＤＭＡ転送を行う。転送実行手段５１は、転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の転送情報に基づくＤＭＡ転送を行う。
【００５７】
このように、本実施形態におけるデータ転送装置５は、転送実行手段５１を有している。このような構成により、転送実行手段５１は、設定された転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の転送情報に基づくＤＭＡ転送を行うことが出来る。その結果、先行のＤＭＡ転送が完了した後に、後続のＤＭＡ転送を実行することが出来る。つまり、容易な構成でＤＭＡ転送の実行順序を保障することが出来る。
【００５８】
なお、上記データ転送装置５は、当該データ転送装置５に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、データ転送装置に、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された転送情報に基づいてＤＭＡ転送を行う転送実行手段を実現させ、転送実行手段は、転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の転送情報に基づくＤＭＡ転送を行うプログラムである。
【００５９】
また、上述したデータ転送装置５が作動することにより実行されるデータ転送方法は、データ転送装置により行われるデータ転送方法であって、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された転送情報に基づいてＤＭＡ転送を行い、転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の転送情報に基づくＤＭＡ転送を行う、という方法である。
【００６０】
上述した構成を有する、プログラム、又は、データ転送方法、の発明であっても、上記データ転送装置５と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【００６１】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるデータ転送装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【００６２】
（付記１）
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う転送実行手段を備え、
前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を行う
データ転送装置。
【００６３】
（付記２）
付記１に記載のデータ転送装置であって、
前記転送実行手段は、次のＤＭＡ転送の実行を所定時間待機させるための待機情報を含む前記転送情報が設定されている場合に、前記転送情報に基づいてＤＭＡ転送を行った後、所定時間待機して、別の前記転送情報に基づくＤＭＡ転送を行う
データ転送装置。
【００６４】
（付記３）
付記１又は２に記載のデータ転送装置であって、
前記転送実行手段は、次のＤＭＡ転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてＤＭＡ転送を行った後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくＤＭＡ転送を行う
データ転送装置。
【００６５】
（付記４）
付記３に記載のデータ転送装置であって、
前記待機時間情報は、ＤＭＡ転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示している
データ転送装置。
【００６６】
（付記５）
付記１乃至４のいずれかに記載のデータ転送装置であって、
前記転送情報を設定する制御手段を有する
データ転送装置。
【００６７】
（付記６）
付記５に記載のデータ転送装置であって、
前記制御手段は、ＤＭＡ転送を実行する際の転送元及び転送先が所定の条件を満たす場合に、次のＤＭＡ転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報を設定する
データ転送装置。
【００６８】
（付記７）
付記６に記載のデータ転送装置であって、
前記制御手段は、転送元及び転送先が予め定められた範囲内に存在し、かつ、先行のＤＭＡ転送の転送先が後続のＤＭＡ転送の転送元に含まれる場合に、先行のＤＭＡ転送を行うための前記転送情報に前記待機時間情報を含める
データ転送装置。
【００６９】
（付記８）
付記５乃至７のいずれかに記載のデータ転送装置であって、
複数の転送実行手段を有しており、
前記制御手段は、転送元及び転送先に基づいて一連のＤＭＡ転送であると判断される場合に、一連のＤＭＡ転送を行うための複数の前記転送情報を同一の転送実行手段が実行するよう設定する
データ転送装置。
【００７０】
（付記９）
データ転送装置により行われるデータ転送方法であって、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行い、
前記転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を行う
データ転送方法。
【００７１】
（付記９−１）
付記９に記載のデータ転送方法であって、
次のＤＭＡ転送の実行を所定時間待機させるための待機情報を含む前記転送情報が設定されている場合に、前記転送情報に基づいてデータ転送を行った後、所定時間待機して、別の前記転送情報に基づくＤＭＡ転送を行う
データ転送方法。
【００７２】
（付記９−２）
付記９又は付記９−１に記載のデータ転送方法であって、
次のＤＭＡ転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてＤＭＡ転送を行った後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくＤＭＡ転送を行う
データ転送方法。
【００７３】
（付記１０）
データ転送装置に、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う転送実行手段を実現させ、
前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を行った後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を行う
プログラム。
【００７４】
（付記１０−１）
付記１０に記載のプログラムであって、
前記転送実行手段は、ＤＭＡ転送を行った後、次のＤＭＡ転送の実行を所定時間待機させるための待機情報を含む前記転送情報が設定されている場合に、前記転送情報に基づいてデータ転送を行った後、所定時間待機して、別の前記転送情報に基づくＤＭＡ転送を行う
プログラム。
【００７５】
（付記１０−２）
付記１０又は付記１０−１に記載のプログラムであって、
前記転送実行手段は、次のＤＭＡ転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてＤＭＡ転送を行った後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくＤＭＡ転送を行う
プログラム。
【００７６】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００７７】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【００７８】
１  システム
２  ホストＰＣ
２１  プロセッサ
２１１  ＤＭＡディスクリプタ設定手段
２２  ホストメモリ
３  アクセラレーションプロセッサ
３１  ＤＭＡユニット
３１１  ＤＭＡエンジン
３１２  ＤＭＡディスクリプタ
３２  コア
３２１  レジスタ
３２２  演算器
３３  メモリ
４  通信ネットワーク
５  データ転送装置
５１  転送実行手段
【図１】
2017167644.tif 000003
【図２】
2017167644.tif 000004
【図３】
2017167644.tif 000005
【図４】
2017167644.tif 000006
【図５】
2017167644.tif 000007
【図６】
2017167644.tif 000008
【図７】
2017167644.tif 000009
【図８】
2017167644.tif 000010
【図９】
2017167644.tif 000011
【図１０】
2017167644.tif 000012
【手続補正書】
【提出日】平成29年7月4日(2017.7.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う転送実行手段を備え、
前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を開始した後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記転送実行手段は、次のＤＭＡ転送を開始するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてＤＭＡ転送を開始した後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記待機時間情報は、ＤＭＡ転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示しており、
前記転送情報を設定する制御手段を有し、
前記制御手段は、ＤＭＡ転送を実行する際の転送元及び転送先が所定の条件を満たす場合に、次のＤＭＡ転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報を設定する
データ転送装置。
【請求項２】
請求項１に記載のデータ転送装置であって、
前記制御手段は、転送元アドレス及び転送先アドレスが予め定められた範囲内に存在し、かつ、先行のＤＭＡ転送の転送先アドレスが後続のＤＭＡ転送の転送元アドレスに含まれる場合に、先行のＤＭＡ転送を行うための前記転送情報に前記待機時間情報を含める
データ転送装置。
【請求項３】
請求項２又は３に記載のデータ転送装置であって、
複数の転送実行手段を有しており、
前記制御手段は、転送元及び転送先に基づいて一連のＤＭＡ転送であると判断される場合に、一連のＤＭＡ転送を行うための複数の前記転送情報を同一の転送実行手段が実行するよう設定する
データ転送装置。
【請求項４】
データ転送装置により行われるデータ転送方法であって、
転送実行手段は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行い、
前記転送情報に基づいてＤＭＡ転送を開始した後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を開始し、
次のＤＭＡ転送を開始するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてＤＭＡ転送を開始した後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記待機時間情報は、ＤＭＡ転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示しており、
前記転送情報を設定する制御手段を有し、
前記制御手段は、ＤＭＡ転送を実行する際の転送元及び転送先が所定の条件を満たす場合に、次のＤＭＡ転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報を設定する
データ転送方法。
【請求項５】
データ転送装置に、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う転送実行手段を実現させ、
前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を開始した後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記転送実行手段は、次のＤＭＡ転送を開始するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてＤＭＡ転送を開始した後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記待機時間情報は、ＤＭＡ転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示しており、
前記転送情報を設定する制御手段を実現させ、
前記制御手段は、ＤＭＡ転送を実行する際の転送元及び転送先が所定の条件を満たす場合に、次のＤＭＡ転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報を設定する
プログラム。
【請求項６】
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う転送実行手段を備え、
前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を開始した後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記転送実行手段は、次のＤＭＡ転送を開始するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてＤＭＡ転送を開始した後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記待機時間情報は、ＤＭＡ転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示しており、
前記転送情報を設定する制御手段を有し、
複数の転送実行手段を有しており、
前記制御手段は、転送元及び転送先に基づいて一連のＤＭＡ転送であると判断される場合に、一連のＤＭＡ転送を行うための複数の前記転送情報を同一の転送実行手段が実行するよう設定する
データ転送装置。
【手続補正書】
【提出日】平成29年7月28日(2017.7.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う転送実行手段と、前記転送情報を設定する制御手段とを備え、
前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を開始した後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記転送実行手段は、次のＤＭＡ転送を開始するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてＤＭＡ転送を開始した後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記待機時間情報は、ＤＭＡ転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示しており、
前記制御手段は、ＤＭＡ転送を実行する際の転送元及び転送先が所定の条件を満たす場合に、次のＤＭＡ転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報を設定する
データ転送装置。
【請求項２】
請求項１に記載のデータ転送装置であって、
前記制御手段は、転送元アドレス及び転送先アドレスが予め定められた範囲内に存在し、かつ、先行のＤＭＡ転送の転送先アドレスが後続のＤＭＡ転送の転送元アドレスに含まれる場合に、先行のＤＭＡ転送を行うための前記転送情報に前記待機時間情報を含める
データ転送装置。
【請求項３】
請求項１又は２に記載のデータ転送装置であって、
複数の転送実行手段を有しており、
前記制御手段は、転送元及び転送先に基づいて一連のＤＭＡ転送であると判断される場合に、一連のＤＭＡ転送を行うための複数の前記転送情報を同一の転送実行手段が実行するよう設定する
データ転送装置。
【請求項４】
転送実行手段と、制御手段とを有するデータ転送装置により行われるデータ転送方法であって、
前記転送実行手段は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行い、
前記転送情報に基づいてＤＭＡ転送を開始した後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を開始し、
次のＤＭＡ転送を開始するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてＤＭＡ転送を開始した後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記待機時間情報は、ＤＭＡ転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示しており、
前記制御手段は、ＤＭＡ転送を実行する際の転送元及び転送先が所定の条件を満たす場合に、次のＤＭＡ転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報を設定する
データ転送方法。
【請求項５】
データ転送装置に、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う転送実行手段と、前記転送情報を設定する制御手段とを実現させ、
前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を開始した後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記転送実行手段は、次のＤＭＡ転送を開始するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてＤＭＡ転送を開始した後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記待機時間情報は、ＤＭＡ転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示しており、
前記制御手段は、ＤＭＡ転送を実行する際の転送元及び転送先が所定の条件を満たす場合に、次のＤＭＡ転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報を設定する
プログラム。
【請求項６】
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための転送情報が設定され、設定された前記転送情報に基づいてＤＭＡ転送を行う複数の転送実行手段と、前記転送情報を設定する制御手段とを備え、
前記転送実行手段は、前記転送情報に基づいてＤＭＡ転送を開始した後、所定時間待機した後に、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記転送実行手段は、次のＤＭＡ転送を開始するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてＤＭＡ転送を開始した後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくＤＭＡ転送を開始し、
前記待機時間情報は、ＤＭＡ転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示しており、
前記制御手段は、転送元及び転送先に基づいて一連のＤＭＡ転送であると判断される場合に、一連のＤＭＡ転送を行うための複数の前記転送情報を同一の転送実行手段が実行するよう設定する
データ転送装置。