JP6206524B2 - データ転送装置、データ転送方法、プログラム - Google Patents

データ転送装置、データ転送方法、プログラム Download PDF

Info

Publication number
JP6206524B2
JP6206524B2 JP2016049879A JP2016049879A JP6206524B2 JP 6206524 B2 JP6206524 B2 JP 6206524B2 JP 2016049879 A JP2016049879 A JP 2016049879A JP 2016049879 A JP2016049879 A JP 2016049879A JP 6206524 B2 JP6206524 B2 JP 6206524B2
Authority
JP
Japan
Prior art keywords
transfer
dma
information
waiting time
data
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
JP2016049879A
Other languages
English (en)
Other versions
JP2017167644A (ja
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 JP2016049879A priority Critical patent/JP6206524B2/ja
Publication of JP2017167644A publication Critical patent/JP2017167644A/ja
Application granted granted Critical
Publication of JP6206524B2 publication Critical patent/JP6206524B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、データ転送装置、データ転送方法、プログラムに関し、特に、ダイレクトメモリアクセスを行うデータ転送装置、データ転送方法、プログラムに関する。
CPU(Central Processing Unit)を介さずにメモリ・メモリ間やレジスタ・メモリ間、メモリ・I/Oデバイス間などのデータ転送を行うための技術として、DMA(Direct Memory Access)が知られている。
上記DMAに関する技術として、例えば、特許文献1がある。特許文献1には、複数のDMA要求コアと、アービタ装置と、タイマと、を有するDMA制御装置が記載されている。特許文献1によると、DMA要求コアは、DMA要求を発行する際に、DMA転送情報とともにDMA実行開始要求時刻を表す情報をアービタ装置に転送する。また、アービタ装置は、DMA実行開始要求時刻をもとにDMA実行順序を調停する。特許文献1によると、このような構成により、効率的な制御が可能となる。
特開2006−215621号公報
特許文献1に記載されている技術の場合、DMA転送の実行順序を保障するためには、アービタ装置を用いることが必要である。そのため、アービタ装置を有さない場合、DMA転送の実行順序を保障することが出来なかった。つまり、DMA転送の実行順序を保障するためにはアービタ装置を用いることが必要であり、容易な構成でDMA転送の実行順序を保障することが難しい、という問題が生じていた。
そこで、本発明の目的は、容易な構成でDMA転送の実行順序を保障することが難しい、という問題を解決するデータ転送装置を提供することにある。
かかる目的を達成するため本発明の一形態であるデータ転送装置は、
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段を備え、
前記転送実行手段は、前記転送情報に基づいてDMA転送を行った後、所定時間待機した後に、別の前記転送情報に基づくDMA転送を行う
という構成を採る。
また、本発明の他の形態であるデータ転送方法は、
データ転送装置により行われるデータ転送方法であって、
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行い、
前記転送情報に基づいてDMA転送を行った後、所定時間待機した後に、別の前記転送情報に基づくDMA転送を行う
という構成を採る。
また、本発明の他の形態であるプログラムは、
データ転送装置に、
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段を実現させ、
前記転送実行手段は、前記転送情報に基づいてDMA転送を行った後、所定時間待機した後に、別の前記転送情報に基づくDMA転送を行う
プログラムである。
本発明は、以上のように構成されることにより、容易な構成でDMA転送の実行順序を保障することが難しい、という問題を解決するデータ転送装置を提供することが可能となる。
本発明の第1の実施形態に係るシステムの構成の一例を示すブロック図である。 図1で示すプロセッサ21が有する構成の一例である。 図1で示すDMAディスクリプタの構成の一例を示す図である。 図1で示すDMAディスクリプタの構成の一例を示す図である。 一般的なシステムがDMA転送を行う際の動作の一例を示す図である。 本発明の第1の実施形態に係るシステムが実行順序を保障してDMA転送を行う際の動作の一例を示す図である。 本発明の第1の実施形態に係るシステムの動作の一例を示すシーケンス図である。 一般的なシステムの動作の一例を示すシーケンス図である。 一般的なシステムの他の動作の一例を示すシーケンス図である。 本発明の第2の実施形態に係るデータ転送装置の構成の一例を示す概略ブロック図である。
[第1の実施形態]
本発明の第1の実施形態を図1乃至図9を参照して説明する。図1は、システム1の構成の一例を示すブロック図である。図2は、プロセッサ21が有する構成の一例である。図3、図4は、DMAディスクリプタ312の構成の一例を示す図である。図5は、一般的なシステムがDMA転送を行う際の動作の一例を示す図である。図6は、本発明の第1の実施形態に係るシステム1が実行順序を保障してDMA転送を行う際の動作の一例を示す図である。図7は、システム1の動作の一例を示すシーケンス図である。図8、図9は、一般的なシステムの動作の一例を示すシーケンス図である。
本発明の第1の実施形態では、DMA(Direct Memory Access)転送を行うシステム1について説明する。本実施形態におけるシステム1のプロセッサ21は、DMA転送を行う場合、DMAディスクリプタ312の設定を行う。後述するように、本実施形態におけるDMAディスクリプタ312には、当該DMAディスクリプタ312に従ってDMA転送を実行したDMAエンジン311が次のDMA転送を行うまで待機する時間を示すライトリクエスト完了時間を含むことが出来る。DMAエンジン311は、DMAディスクリプタ312にライトリクエスト完了時間が含まれる場合、当該DMAディスクリプタ312に基づいてDMA転送を実行した後、ライトリクエスト完了時間分待機した後、次のDMA転送を実行する。
図1を参照すると、本実施形態におけるシステム1(データ転送装置)は、ホストPC(Personal Computer)2と、アクセラレーションプロセッサ3と、を有している。また、ホストPC2とアクセラレーションプロセッサ3とは、通信ネットワーク4を介して互いに通信可能なよう接続されている。
ホストPC2は、演算処理を実行するプロセッサ21(制御手段)と情報を格納するホストメモリ22とを有している。
本実施形態におけるプロセッサ21は、図2で示すように、DMAディスクリプタ設定手段211を有している。DMAディスクリプタ設定手段211は、図示しない記憶装置に格納されたプログラムをプロセッサ21が実行することで実現される。
DMAディスクリプタ設定手段211は、DMA転送(データ転送)を実行する場合に後述するDMAディスクリプタ312(転送情報)の設定を行う。例えば、DMAディスクリプタ設定手段211は、図3、図4で示すようなDMAディスクリプタ312の設定を行う。
図3を参照すると、DMAディスクリプタ設定手段211は、例えば、ライトデータや転送元アドレス、転送先アドレス、転送長、転送リクエストなどの情報を含むDMAディスクリプタ312の設定を行う。
また、図4を参照すると、DMAディスクリプタ設定手段211は、DMA転送を実行する際の転送元アドレス(転送元)と転送先アドレス(転送先)が所定の条件を満たす場合に、上記構成に追加してライトリクエスト完了時間有効とライトリクエスト完了時間との項目を含むDMAディスクリプタ312の設定を行う。
例えば、DMAディスクリプタ設定手段211は、転送元アドレス及び転送先アドレスが予め定められた範囲内に存在し、かつ、先行のDMA転送の転送先アドレスが後続の転送元アドレスに含まれる場合に、先行のDMA転送を行うためのDMAディスクリプタ312を図4で示すよう設定する。換言すると、DMAディスクリプタ設定手段211は、データの転送が固定時間内に完了することが保障されているアドレス空間に対するDMA転送を行う場合であって、実行順序の保障を行う場合に、図4で示すようなDMAディスクリプタ312の設定を行う。
また、DMAディスクリプタ設定手段211は、転送元アドレス及び転送先アドレスに基づいて、実行順序の保証を行うことが必要となる一連のDMA転送であると判断される場合に、当該一連のDMA転送を同一のDMAエンジン311が行うよう、同一のDMAディスクリプタ312に必要な設定を行う。例えば、DMAディスクリプタ設定手段211は、実行順序を保障したDMA転送を行わせる場合、同一のDMAディスクリプタ312に対して、エントリnの設定を行った後、エントリn+1の設定を行う。なお、nは任意の値となる。
このように、DMAディスクリプタ設定手段211は、転送元アドレス及び転送先アドレスに基づいて、実行順序の保証を行うか否かを決定する。例えば、DMAディスクリプタ設定手段211は、先行のDMA転送の転送先アドレスが(先行のDMA転送から所定時間以内の)後続の転送元アドレスに含まれる場合などDMA転送間のアドレス競合が生じている場合に、実行順序の保証を行うことが必要であると判断する。
なお、ライトリクエスト完了時間有効の項目は、DMA転送を行った後、次のDMA転送を行うまで所定時間待機するか否かを示している。DMAディスクリプタ312にライトリクエスト完了時間有効が設定されている場合、DMAエンジン311は、当該DMAディスクリプタ312に基づいてDMA転送を行った後、所定時間待機して、次のDMA転送を行うことになる。一方、DMAディスクリプタ312にライトリクエスト完了時間有効が設定されていない場合、DMAエンジン311は、DMA転送とDMA転送との間に待機することなくDMA転送を実行する。また、ライトリクエスト完了時間は、DMA転送を実行した後、次のDMA転送を実行するまでの待機時間を示している。ライトリクエスト完了時間は、例えば、転送元アドレスから転送先アドレスまでデータの転送を行う際の、データの転送が完了するまでに必要な時間に基づいて予め定められている。
アクセラレーションプロセッサ3は、ホストPC2のプロセッサ21により設定されたDMAディスクリプタ312に基づいて、プロセッサ21を介さずにメモリ・メモリ間、レジスタ・メモリ間、レジスタ・レジスタ間などのDMA転送を実行する。つまり、アクセラレーションプロセッサ3は、DMAディスクリプタ312に基づいて、ホストメモリ22とメモリ33の間やレジスタ321の間、ホストメモリ22やメモリ33とレジスタ321の間のデータ転送を実行する。
図1を参照すると、アクセラレーションプロセッサ3は、DMA転送を実行するDMAユニット31と、複数のコア32と、メモリ33と、を有している。図1で示すように、DMAユニット31とコア32、コア32とメモリ33、コア32と別のコア32、メモリ33とDMAユニット31とは、それぞれ、互いに通信可能なよう接続されている。
DMAユニット31は、複数のDMAエンジン311(転送実行手段)と、複数のDMAディスクリプタ312と、を有している。DMAユニット31は、複数のDMAエンジン311と複数のDMAディスクリプタ312とにより、複数のDMA転送を並列して処理することが出来る。
DMAエンジン311は、DMAディスクリプタ312に基づいて、DMA転送を実行する。また、DMAディスクリプタ312にライトリクエスト完了時間が含まれる場合、DMAエンジン311は、当該DMAディスクリプタ312に基づいてDMA転送を行った後、ライトリクエスト完了時間分待機して、次のDMA転送を行う。
DMAディスクリプタ312は、DMA転送を実行する際の転送情報を示している。上述したように、DMAディスクリプタ312には、ライトデータと、転送先アドレスと、転送元アドレスと、転送リクエストと、転送長と、が含まれている(図3参照)。また、DMAディスクリプタ312には、ライトリクエスト完了時間有効(待機情報)と、ライトリクエスト完了時間(待機時間情報)と、を含むことが出来る(図4参照)。
DMAディスクリプタ312は、上述したように、プロセッサ21のDMAディスクリプタ設定手段211により設定される。また、DMAディスクリプタ312は、DMAエンジン311により参照される。
コア32は、アドレスマップされたレジスタ321と、演算器322と、を有する。レジスタ321へのアクセスパスは2種類存在し、ホストPC2からのアクセスパスとコア32内に有する演算器322からのアクセスパスとを含んでいる。
メモリ33は、RAM(Random Access Memory)などの記憶装置である。メモリ33は、DMR転送などの際に利用される。
システム1は、例えば、上記のような構成を有している。
なお、上述したシステム1では、コア32が有するレジスタ321はDMA転送可能なメモリアドレス空間にマッピングされているものとする。また、DMAエンジン311からレジスタ321へのアクセスなど転送元アドレスと転送先アドレスが予め定められた範囲内の場合には、固定時間内に処理が完了するものとする。
また、DMAディスクリプタ312に設定された順番にDMA転送が行われるとする。一方で、複数のDMAエンジン311により複数のDMAディスクリプタ312が並列して処理されるため、実行順序は保障されないものとする。また、同一のDMAディスクリプタ312を用いたDMA転送であっても、2つのDMA転送間でアドレス競合が存在する場合、原則として、実行順序は保障されないものとする。
本実施形態におけるシステム1は、上記のようなライトリクエスト完了時間などを含むDMAディスクリプタ312を設定することで、同一のDMAディスクリプタ312を用いたDMA転送において、実行順序を保障することが出来ることになる。
次に、図5及び図6を参照して、一般的なシステム及び本実施形態で説明するシステム1が同一のDMAディスクリプタ312を用いたDMA転送を行う場合の動作の一例について説明する。
図5及び図6では、先行のDMA転送がアドレス「0x1000」からアドレス「0x2000」にデータの転送を行った後、後続のDMA転送がアドレス「0x2000」からアドレス「0x3000」にデータの転送を行う場合の一例を示している。
図5を参照すると、一般的なシステムの場合、アドレス「0x2000」に対するWrite処理が完了する前に、後続のDMA転送によるアドレス「0x2000」からのRead処理が開始される。そのため、後続のDMA転送は、先行のDMA転送のデータを反映したデータを読み込むことが出来ないおそれがある。このように、一般的なシステムにおいては、2つのDMA転送間でデータ転送を確実に保障することが出来なかった。
一方で、図6を参照すると、先行のDMAディスクリプタ312には、ライトリクエスト完了時間有効を示す「0x1」と、ライトリクエスト完了時間「0x100」と、が含まれている。そのため、図6の場合、DMMエンジン311は、先行のDMA転送を実行した後、ライトリクエスト完了時間分待機して、後続のDMA転送を実行することになる。従って、図6で示すように、先行のDMA転送によるアドレス「0x2000」に対するWrite処理が完了した後に、後続のDMA転送によるアドレス「0x2000」からのRead処理を開始することになる。このように、システム1においては、2つのDMA転送間でデータ転送を確実に保障することが出来ることが分かる。
続いて、図7を参照して、システム1の動作の一例について説明する。図7においては、実行順序を保障したい2つのDMA転送を行う場合について説明する。
図7を参照すると、プロセッサ21のDMAディスクリプタ設定手段211は、同一のDMAディスクリプタ312に対して、必要な設定を行う。具体的には、DMAディスクリプタ設定手段211は、先行のDMA転送を指示する設定を行う(ステップS101)とともに、後続のDMA転送を指示する設定を行う(ステップS102)。なお、DMAディスクリプタ設定手段211は、先行の設定を行う際に、ライトリクエスト完了時間有効とライトリクエスト完了時間を含む設定を行う。
アクセラレーションプロセッサ3のDMAエンジン311は、DMAディスクリプタ312が設定されると、先行のDMA転送を指示するDMAディスクリプタ312に基づいて、DMA転送を実行する(ステップS201)。DMA転送は、DMAリクエストを発行してDMAディスクリプタ312が示す転送元から転送先にデータの転送を行うことで行われる。そして、データの転送が完了した後。DMA転送は完了する。
また、DMAエンジン311は、先行のDMA転送を指示するDMAディスクリプタ312にライトリクエスト完了時間が含まれるため、上記DMA転送を実行した後、ライトリクエスト完了時間が経過するまで待機する。そして、ライトリクエスト完了時間経過後、後続のDMA転送を指示するDMAディスクリプタ312を実行する(ステップS202)。
このように、本実施形態におけるDMAエンジン311は、DMAディスクリプタ312にライトリクエスト完了時間が含まれる場合、ライトリクエスト完了時間分待機した後に、別のDMA転送を実行する。
なお、2つのDMA転送の実行順序を保障する方法としては、本実施形態で説明した他に、ポーリングによる確認方法(図8参照)とDMA転送完了割込みによる確認方法(図9参照)とがある。
図8で示すように、ポーリングによる確認方法の場合、プロセッサ21は、先行のDMA転送の終了を確認するためにポーリングを実施することになる。そのため、1つ目のDMA転送開始から2つ目のDMA転送開始までの間、DMA転送の完了確認のためにプロセッサ21は占有されることになる。
また、図9で示すように、DMA転送完了割込みによる確認方法の場合、DMA転送が完了するとアクセラレーションプロセッサ3からホストPC2にDMA転送完了割込みが通知される。ホストPC2では、DMA転送完了割込みを検知するとプロセッサ21が割込みハンドラのプロセスを起動する。その際、プロセッサ21は割込み検出前までに行っていたプロセスの退避や新規プロセスの起動を行う必要がある。そのため、DMA転送完了通知、ホストPCの割込み検出、後続のDMA転送開始までのレイテンシが悪くなる傾向にある。また、DMA転送完了割込みは、DMAエンジン311からDMA転送のリクエスト発行が完了したことを知ることができるだけであり情報量が少ないため、別途どのDMAディスクリプタ312が完了したか、データ転送は成功したかなど確認する必要がある。このように、DMA転送完了割込みによる確認方法であっても、レイテンシが悪くなるなどの問題が生じることになる。
以上のように、ポーリングによる確認方法やDMA転送完了割込みによる確認方法の場合、プロセッサ21の占有時間が長くなる等の問題が生じることになる。一方で、図7で示すように、本実施形態で説明したシステム1の場合、プロセッサ21の占有時間が必要以上に生じることなく、DMA転送の実行順序を保障することが出来る。つまり、プロセッサリソースを効率的に使用することが出来る。
このように、本実施形態におけるシステム1は、ライトリクエスト完了時間を含むDMAディスクリプタ312とDMAエンジン311とを有している。このような構成により、DMAエンジン311は、DMAディスクリプタ312にライトリクエスト完了時間が含まれる場合、当該DMAディスクリプタ312に基づいてDMA転送を行った後、ライトリクエスト完了時間分待機して、次のDMA転送を行うことが出来る。その結果、先行のDMA転送が完了した後に、後続のDMA転送を実行することが出来る。これにより、アクセラレーションプロセッサ3が実行順序の保証を行うことが可能となり、その結果、プロセッサ21が待つ必要がなくなりプロセッサリソースを効率的に使用することが可能となる。
なお、本実施形態においては、2つのDMA転送の実行順序を保障する場合について説明した。しかしながら、システム1が実行順序を保障するDMA転送は2つに限定されない。システム1は、3つ以上の複数のDMA転送の実行順序を保障するよう構成することが出来る。
また、本実施形態においては、ソフトウェアがDMA転送間のアドレス競合など実行順序を保障すべきDMA転送であるか否かを判断する例について説明した。しかしながら、ハードウェアでDMA転送間のアドレスを比較するよう構成しても構わない。
また、本実施形態においては、2つのDMA転送の実行順序を保障する場合、先行のDMAディスクリプタ312にライトリクエスト完了時間を含めるとした。しかしながら、後続のDMAディスクリプタ312にライトリクエスト完了時間に相当する構成を含めるよう構成しても構わない。この場合、DMAエンジン311は、後続のDMAディスクリプタ312に基づいてDMA転送を行おうとする際に、所定時間待機してからDMA転送を行うことになる。
また、図1で示すシステム1は、あくまで一例である。システム1は、複数のプロセッサ21を有していても構わないし、4つ以外のコア32を有していても構わない。また、複数のメモリ33を有していても構わない。また、DMAユニット31が有するDMAエンジン311の数やDMAディスクリプタ312の数は、特に限定されない。
[第2の実施形態]
次に、図10を参照して、第2の実施形態について説明する。第2の実施形態では、データ転送装置5の構成の概要について説明する。
図10を参照すると、本実施形態におけるデータ転送装置5は、転送実行手段51を有している。
転送実行手段51は、DMA転送を行うための転送情報が設定され、設定された転送情報に基づいてDMA転送を行う。転送実行手段51は、転送情報に基づいてDMA転送を行った後、所定時間待機した後に、別の転送情報に基づくDMA転送を行う。
このように、本実施形態におけるデータ転送装置5は、転送実行手段51を有している。このような構成により、転送実行手段51は、設定された転送情報に基づいてDMA転送を行った後、所定時間待機した後に、別の転送情報に基づくDMA転送を行うことが出来る。その結果、先行のDMA転送が完了した後に、後続のDMA転送を実行することが出来る。つまり、容易な構成でDMA転送の実行順序を保障することが出来る。
なお、上記データ転送装置5は、当該データ転送装置5に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、データ転送装置に、DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された転送情報に基づいてDMA転送を行う転送実行手段を実現させ、転送実行手段は、転送情報に基づいてDMA転送を行った後、所定時間待機した後に、別の転送情報に基づくDMA転送を行うプログラムである。
また、上述したデータ転送装置5が作動することにより実行されるデータ転送方法は、データ転送装置により行われるデータ転送方法であって、DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された転送情報に基づいてDMA転送を行い、転送情報に基づいてDMA転送を行った後、所定時間待機した後に、別の転送情報に基づくDMA転送を行う、という方法である。
上述した構成を有する、プログラム、又は、データ転送方法、の発明であっても、上記データ転送装置5と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるデータ転送装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段を備え、
前記転送実行手段は、前記転送情報に基づいてDMA転送を行った後、所定時間待機した後に、別の前記転送情報に基づくDMA転送を行う
データ転送装置。
(付記2)
付記1に記載のデータ転送装置であって、
前記転送実行手段は、次のDMA転送の実行を所定時間待機させるための待機情報を含む前記転送情報が設定されている場合に、前記転送情報に基づいてDMA転送を行った後、所定時間待機して、別の前記転送情報に基づくDMA転送を行う
データ転送装置。
(付記3)
付記1又は2に記載のデータ転送装置であって、
前記転送実行手段は、次のDMA転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてDMA転送を行った後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくDMA転送を行う
データ転送装置。
(付記4)
付記3に記載のデータ転送装置であって、
前記待機時間情報は、DMA転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示している
データ転送装置。
(付記5)
付記1乃至4のいずれかに記載のデータ転送装置であって、
前記転送情報を設定する制御手段を有する
データ転送装置。
(付記6)
付記5に記載のデータ転送装置であって、
前記制御手段は、DMA転送を実行する際の転送元及び転送先が所定の条件を満たす場合に、次のDMA転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報を設定する
データ転送装置。
(付記7)
付記6に記載のデータ転送装置であって、
前記制御手段は、転送元及び転送先が予め定められた範囲内に存在し、かつ、先行のDMA転送の転送先が後続のDMA転送の転送元に含まれる場合に、先行のDMA転送を行うための前記転送情報に前記待機時間情報を含める
データ転送装置。
(付記8)
付記5乃至7のいずれかに記載のデータ転送装置であって、
複数の転送実行手段を有しており、
前記制御手段は、転送元及び転送先に基づいて一連のDMA転送であると判断される場合に、一連のDMA転送を行うための複数の前記転送情報を同一の転送実行手段が実行するよう設定する
データ転送装置。
(付記9)
データ転送装置により行われるデータ転送方法であって、
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行い、
前記転送情報に基づいてDMA転送を行った後、所定時間待機した後に、別の前記転送情報に基づくDMA転送を行う
データ転送方法。
(付記9−1)
付記9に記載のデータ転送方法であって、
次のDMA転送の実行を所定時間待機させるための待機情報を含む前記転送情報が設定されている場合に、前記転送情報に基づいてデータ転送を行った後、所定時間待機して、別の前記転送情報に基づくDMA転送を行う
データ転送方法。
(付記9−2)
付記9又は付記9−1に記載のデータ転送方法であって、
次のDMA転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてDMA転送を行った後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくDMA転送を行う
データ転送方法。
(付記10)
データ転送装置に、
DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段を実現させ、
前記転送実行手段は、前記転送情報に基づいてDMA転送を行った後、所定時間待機した後に、別の前記転送情報に基づくDMA転送を行う
プログラム。
(付記10−1)
付記10に記載のプログラムであって、
前記転送実行手段は、DMA転送を行った後、次のDMA転送の実行を所定時間待機させるための待機情報を含む前記転送情報が設定されている場合に、前記転送情報に基づいてデータ転送を行った後、所定時間待機して、別の前記転送情報に基づくDMA転送を行う
プログラム。
(付記10−2)
付記10又は付記10−1に記載のプログラムであって、
前記転送実行手段は、次のDMA転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてDMA転送を行った後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくDMA転送を行う
プログラム。
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
1 システム
2 ホストPC
21 プロセッサ
211 DMAディスクリプタ設定手段
22 ホストメモリ
3 アクセラレーションプロセッサ
31 DMAユニット
311 DMAエンジン
312 DMAディスクリプタ
32 コア
321 レジスタ
322 演算器
33 メモリ
4 通信ネットワーク
5 データ転送装置
51 転送実行手段


Claims (6)

  1. DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段と、前記転送情報を設定する制御手段とを備え、
    前記転送実行手段は、前記転送情報に基づいてDMA転送を開始した後、所定時間待機した後に、別の前記転送情報に基づくDMA転送を開始し、
    前記転送実行手段は、次のDMA転送を開始するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてDMA転送を開始した後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくDMA転送を開始し、
    前記待機時間情報は、DMA転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示しており
    前記制御手段は、DMA転送を実行する際の転送元及び転送先が所定の条件を満たす場合に、次のDMA転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報を設定する
    データ転送装置。
  2. 請求項1に記載のデータ転送装置であって、
    前記制御手段は、転送元アドレス及び転送先アドレスが予め定められた範囲内に存在し、かつ、先行のDMA転送の転送先アドレスが後続のDMA転送の転送元アドレスに含まれる場合に、先行のDMA転送を行うための前記転送情報に前記待機時間情報を含める
    データ転送装置。
  3. 請求項1又は2に記載のデータ転送装置であって、
    複数の転送実行手段を有しており、
    前記制御手段は、転送元及び転送先に基づいて一連のDMA転送であると判断される場合に、一連のDMA転送を行うための複数の前記転送情報を同一の転送実行手段が実行するよう設定する
    データ転送装置。
  4. 転送実行手段と、制御手段とを有するデータ転送装置により行われるデータ転送方法であって、
    前記転送実行手段は、DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行い、
    前記転送情報に基づいてDMA転送を開始した後、所定時間待機した後に、別の前記転送情報に基づくDMA転送を開始し、
    次のDMA転送を開始するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてDMA転送を開始した後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくDMA転送を開始し、
    前記待機時間情報は、DMA転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示しており
    前記制御手段は、DMA転送を実行する際の転送元及び転送先が所定の条件を満たす場合に、次のDMA転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報を設定する
    データ転送方法。
  5. データ転送装置に、
    DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段と、前記転送情報を設定する制御手段とを実現させ、
    前記転送実行手段は、前記転送情報に基づいてDMA転送を開始した後、所定時間待機した後に、別の前記転送情報に基づくDMA転送を開始し、
    前記転送実行手段は、次のDMA転送を開始するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてDMA転送を開始した後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくDMA転送を開始し、
    前記待機時間情報は、DMA転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示しており
    前記制御手段は、DMA転送を実行する際の転送元及び転送先が所定の条件を満たす場合に、次のDMA転送を実行するまでの待機時間を示す待機時間情報を含む前記転送情報を設定する
    プログラム。
  6. DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う複数の転送実行手段と、前記転送情報を設定する制御手段とを備え、
    前記転送実行手段は、前記転送情報に基づいてDMA転送を開始した後、所定時間待機した後に、別の前記転送情報に基づくDMA転送を開始し、
    前記転送実行手段は、次のDMA転送を開始するまでの待機時間を示す待機時間情報を含む前記転送情報が設定されている場合、前記転送情報に基づいてDMA転送を開始した後、当該転送情報に含まれる前記待機時間情報が示す時間分待機して、別の前記転送情報に基づくDMA転送を開始し、
    前記待機時間情報は、DMA転送により実行される、転送元から転送先までのデータの転送が完了するまでに必要となる時間を示しており
    前記制御手段は、転送元及び転送先に基づいて一連のDMA転送であると判断される場合に、一連のDMA転送を行うための複数の前記転送情報を同一の転送実行手段が実行するよう設定する
    データ転送装置。
JP2016049879A 2016-03-14 2016-03-14 データ転送装置、データ転送方法、プログラム Active JP6206524B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016049879A JP6206524B2 (ja) 2016-03-14 2016-03-14 データ転送装置、データ転送方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016049879A JP6206524B2 (ja) 2016-03-14 2016-03-14 データ転送装置、データ転送方法、プログラム

Publications (2)

Publication Number Publication Date
JP2017167644A JP2017167644A (ja) 2017-09-21
JP6206524B2 true JP6206524B2 (ja) 2017-10-04

Family

ID=59913537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016049879A Active JP6206524B2 (ja) 2016-03-14 2016-03-14 データ転送装置、データ転送方法、プログラム

Country Status (1)

Country Link
JP (1) JP6206524B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6992616B2 (ja) * 2018-03-13 2022-01-13 日本電気株式会社 データ転送装置、データ転送方法、プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293799A (ja) * 2005-04-13 2006-10-26 Sony Corp 情報処理装置、および情報処理方法
GB0814484D0 (en) * 2008-08-07 2008-09-10 Icera Inc Dma engine
JP5769868B2 (ja) * 2012-02-29 2015-08-26 三菱電機株式会社 データ転送装置、データ転送方法及びデータ転送プログラム

Also Published As

Publication number Publication date
JP2017167644A (ja) 2017-09-21

Similar Documents

Publication Publication Date Title
JP5963282B2 (ja) 割り込み分配スキーム
WO2011103825A2 (zh) 多处理器系统负载均衡的方法和装置
MX2012005183A (es) Linea de espera de comandos para componente periferico.
JP2012038293A5 (ja)
US10409744B1 (en) Low-latency wake-up in a peripheral device
TW200525365A (en) Optimization of SMI handling and initialization
US11307801B2 (en) Method, apparatus, device and storage medium for processing access request
CN110659115A (zh) 具有硬件辅助任务调度的多线程处理器核
US11995351B2 (en) DMA engines configured to perform first portion data transfer commands with a first DMA engine and second portion data transfer commands with second DMA engine
US20140129751A1 (en) Hybrid interface to improve semiconductor memory based ssd performance
JP2006209778A (ja) ダイレクトメモリアクセスの実現方法および装置、ダイレクトメモリアクセスコンピュータシステム
US9047264B2 (en) Low pin count controller
JP6206524B2 (ja) データ転送装置、データ転送方法、プログラム
US20140195709A1 (en) Delivering real time interrupts with an advanced programmable interrupt controller
KR101203157B1 (ko) 데이터 전달 시스템, 장치 및 방법
JP2010003151A (ja) データ処理装置
CN110837482B (zh) 分布式块存储低延迟控制方法、系统及设备
WO2007088582A1 (ja) 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体
JP7003752B2 (ja) データ転送装置、データ転送方法、プログラム
JP6992616B2 (ja) データ転送装置、データ転送方法、プログラム
JP2010092101A (ja) 情報処理装置
US9092581B2 (en) Virtualized communication sockets for multi-flow access to message channel infrastructure within CPU
JP5541544B2 (ja) コンピュータ装置、データ転送方法、及びプログラム
JP6519343B2 (ja) データ処理装置
JP2007328539A (ja) バスシステムおよびバススレーブならびにバス制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170728

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: 20170808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170821

R150 Certificate of patent or registration of utility model

Ref document number: 6206524

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150