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

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

Info

Publication number
JP2019159751A
JP2019159751A JP2018045079A JP2018045079A JP2019159751A JP 2019159751 A JP2019159751 A JP 2019159751A JP 2018045079 A JP2018045079 A JP 2018045079A JP 2018045079 A JP2018045079 A JP 2018045079A JP 2019159751 A JP2019159751 A JP 2019159751A
Authority
JP
Japan
Prior art keywords
transfer
dma
information
requester
dma transfer
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.)
Granted
Application number
JP2018045079A
Other languages
English (en)
Other versions
JP7003752B2 (ja
Inventor
雅夫 深川
Masao Fukagawa
雅夫 深川
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/ja
Publication of JP2019159751A publication Critical patent/JP2019159751A/ja
Application granted granted Critical
Publication of JP7003752B2 publication Critical patent/JP7003752B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】複数のリクエスタからのDMA転送の設定が有る場合、DMA転送間の関係に応じた適切な制御を実行することが出来ないおそれがある、という課題を解決すること。【解決手段】DMA(Direct Memory Access)転送を行うための転送情報が設定され、設定された前記転送情報に基づいてDMA転送を行う転送実行手段を備え、前記転送情報には、当該転送情報を設定したリクエスタを示す識別情報が含まれており、前記転送実行手段は、前記転送情報に基づくDMA転送が完了した後、当該転送情報を登録したリクエスタとは異なる他のリクエスタが登録した前記転送情報に基づくDMA転送を開始する。【選択図】図7

Description

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


Claims (10)

  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転送を開始する
    プログラム。
JP2018045079A 2018-03-13 2018-03-13 データ転送装置、データ転送方法、プログラム Active JP7003752B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018045079A JP7003752B2 (ja) 2018-03-13 2018-03-13 データ転送装置、データ転送方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018045079A JP7003752B2 (ja) 2018-03-13 2018-03-13 データ転送装置、データ転送方法、プログラム

Publications (2)

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

Family

ID=67994017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018045079A Active JP7003752B2 (ja) 2018-03-13 2018-03-13 データ転送装置、データ転送方法、プログラム

Country Status (1)

Country Link
JP (1) JP7003752B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055947A (ja) * 2000-07-27 2002-02-20 Samsung Electronics Co Ltd バスシステム及びそのバス仲裁方法
JP2008299439A (ja) * 2007-05-29 2008-12-11 Mitsubishi Electric Corp パケット処理装置
JP2009523269A (ja) * 2006-02-22 2009-06-18 株式会社ソニー・コンピュータエンタテインメント 独立論理アドレス空間とそれぞれに対するアクセス管理を提供する方法および装置
JP2013539098A (ja) * 2010-08-04 2013-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション I/oメッセージの影響を受ける1つ又は複数個のパーティション化可能なエンドポイントを決定するデータ処理システム
JP2013539085A (ja) * 2010-06-23 2013-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピューティング環境のシステム・メモリの管理を容易にする方法、システム、コンピュータ・プログラム
WO2015008354A1 (ja) * 2013-07-17 2015-01-22 富士通株式会社 データ転送装置、データ転送方法及び情報処理装置
WO2018003629A1 (ja) * 2016-06-28 2018-01-04 日本電気株式会社 パケット処理装置、及び、パケット処理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055947A (ja) * 2000-07-27 2002-02-20 Samsung Electronics Co Ltd バスシステム及びそのバス仲裁方法
JP2009523269A (ja) * 2006-02-22 2009-06-18 株式会社ソニー・コンピュータエンタテインメント 独立論理アドレス空間とそれぞれに対するアクセス管理を提供する方法および装置
JP2008299439A (ja) * 2007-05-29 2008-12-11 Mitsubishi Electric Corp パケット処理装置
JP2013539085A (ja) * 2010-06-23 2013-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピューティング環境のシステム・メモリの管理を容易にする方法、システム、コンピュータ・プログラム
JP2013539098A (ja) * 2010-08-04 2013-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション I/oメッセージの影響を受ける1つ又は複数個のパーティション化可能なエンドポイントを決定するデータ処理システム
WO2015008354A1 (ja) * 2013-07-17 2015-01-22 富士通株式会社 データ転送装置、データ転送方法及び情報処理装置
WO2018003629A1 (ja) * 2016-06-28 2018-01-04 日本電気株式会社 パケット処理装置、及び、パケット処理方法

Also Published As

Publication number Publication date
JP7003752B2 (ja) 2022-01-21

Similar Documents

Publication Publication Date Title
JP5180373B2 (ja) 仮想化環境における割り込みメッセージ終了のレイジー処理
JP4939443B2 (ja) ディスクリプタ・プリフェッチを用いてダイレクト・メモリ・アクセス・ブロック移動を行なう方法、ダイレクト・メモリ・アクセス装置、及びデータ処理システム
JP5241737B2 (ja) プロセッサ・システムにおいて命令レベルでのリソース割り当ての識別を可能にする方法および装置
US20090248973A1 (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
JP6508382B1 (ja) 情報処理装置、情報処理方法、プログラム
US20060059489A1 (en) Parallel processing system, interconnection network, node and network control method, and program therefor
JP2015026263A (ja) 計算機システム、キャッシュ管理方法、及び計算機
JP2010500682A (ja) フラッシュメモリアクセス回路
JP5287301B2 (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
US20140129751A1 (en) Hybrid interface to improve semiconductor memory based ssd performance
US20180011636A1 (en) Information processing apparatus and method of accessing a memory
JP5254710B2 (ja) データ転送装置、データ転送方法およびプロセッサ
US11481250B2 (en) Cooperative workgroup scheduling and context prefetching based on predicted modification of signal values
JP7003752B2 (ja) データ転送装置、データ転送方法、プログラム
JP6206524B2 (ja) データ転送装置、データ転送方法、プログラム
JP6992616B2 (ja) データ転送装置、データ転送方法、プログラム
KR101203157B1 (ko) 데이터 전달 시스템, 장치 및 방법
JP4440181B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
JP7225904B2 (ja) ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム
JP7184424B2 (ja) 更新処理装置、更新処理方法、及びプログラム
JP2012128656A (ja) ベクトル演算処理装置、ベクトル演算処理方法およびベクトル演算処理プログラム
JP2004005710A (ja) 情報処置装置
US20230359392A1 (en) Non-volatile memory-based storage device, device controller and method thereof
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP2015215641A (ja) 情報処理装置,エミュレーションプログラム,及びエミュレーション方法

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