JP2017122972A - 情報処理装置、dma転送制御方法およびdma転送制御プログラム - Google Patents

情報処理装置、dma転送制御方法およびdma転送制御プログラム Download PDF

Info

Publication number
JP2017122972A
JP2017122972A JP2016000537A JP2016000537A JP2017122972A JP 2017122972 A JP2017122972 A JP 2017122972A JP 2016000537 A JP2016000537 A JP 2016000537A JP 2016000537 A JP2016000537 A JP 2016000537A JP 2017122972 A JP2017122972 A JP 2017122972A
Authority
JP
Japan
Prior art keywords
transfer
dma
information
engine
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.)
Granted
Application number
JP2016000537A
Other languages
English (en)
Other versions
JP6698353B2 (ja
Inventor
富子 山田
Tomiko Yamada
富子 山田
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 Platforms Ltd
Original Assignee
NEC Platforms Ltd
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 Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2016000537A priority Critical patent/JP6698353B2/ja
Publication of JP2017122972A publication Critical patent/JP2017122972A/ja
Application granted granted Critical
Publication of JP6698353B2 publication Critical patent/JP6698353B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】リソースの競合による使用効率の低下やシステム全体のスループットの低下を招かずに、複数のDMA転送処理を行うことができる情報処理装置、DMA転送制御方法およびDMA転送制御プログラムを提供する。【解決手段】ディスクリプタ制御部201が、有効ディスクリプタの総数とDMAエンジンの総数とを比較し、有効ディスクリプタの総数がDMAエンジンの総数以上の場合はディスクリプタの分割を行わずに、有効ディスクリプタの並列処理を妨げないようにする。そして、未使用のDMAエンジンが2つ以上ある場合に、エンジン設定部203が、ディスクリプタ101を分割すべきか否かを、所定の判定方法で判定する。そして、ディスクリプタ101の適切な分割数を、所定の算出方法で求める。エンジン設定部203は、求めた適切な分割数でディスクリプタ101を分割し、分割したディスクリプタを基にDMA転送処理が行われる【選択図】 図1

Description

本発明は、情報処理装置、DMA転送制御方法およびDMA転送制御プログラムに関し、特に、複数のDMA転送処理を並行して行う情報処理装置、DMA転送制御方法およびDMA転送制御プログラムに関する。
情報処理装置のメインメモリ、周辺機器接続部などの間でのデータ転送方式の一つである、DMA(「Direct Memory Access」の略称)転送が一般的に知られている。DMA転送では、CPU(「Central Processing Unit」の略称)の負荷を軽減するため、CPUを介さずにメインメモリ、周辺機器接続部などの間で直接データ転送を行う。
すなわち、CPUが、DMA転送専用のコントローラ(以降、「DMAエンジン」とも言う。)にデータ転送の指示を出す。そして、その指示を受けたコントローラが、DMA転送処理の内容が格納されたディスクリプタから情報を取得し、その情報に従ってデータの読み書きを行う。ここで、ディスクリプタは、転送元や転送先の情報および転送データの情報などが格納された所定の記憶領域である。
このようなDMA転送処理のスループットを向上するために、特許文献1に記載の技術では、1つのディスクリプタを複数のサブディスクリプタに分割する。そして、各サブディスクリプタに基づいたDMA転送処理を複数のコントローラが並行して行う。
なお、関連する技術として、特許文献2に記載の技術では、複数のディスクリプタの連続実行時に、ホストシステムに対しエラーフレームを受信したことを報告せずに有効受信フレームのみを報告する。これにより、ホストシステムは、エラーフレーム処理に関するオーバーヘッドを低減することができる。
特許文献3に記載の技術では、DMAコントローラ上で1つのDMA転送を複数の転送要求に分割することにより、実行するDMA転送のサイズを小さくする。そして、DMAコントローラが、複数回にわたって内部バスにDMA転送要求を出す。これにより、プロセッサが、転送速度の遅い周辺IO(「Input−Output」の略称)デバイスのDMA転送処理の終了を長時間待ち合わせることがなくなり、プロセッサの実行性能を向上させることができる。
特許文献4に記載の技術では、連続して実行すべきDMA転送処理がある場合に、全てのDMA転送処理が終了した場合にのみDMA転送処理の終了をCPUに通知する。これにより、DMA転送処理の終了を通知されるCPUにおける処理負担を軽減する。
特許文献5に記載の技術では、転送先デバイスが、DMA制御部から送られた判断情報に基づいてデータ転送の終了判定を行う。これにより、DMAコントローラがデータ転送の終了を判定するための回路を不要とすることができるなど、ハードウェアの規模をあまり増大させずに、DMAエンジン数や転送データ数を増加することが可能となる。
特許文献6に記載の技術では、DMA転送時の転送データのバンドサイズおよび分割数の最適化を図ることにより、ネットワークや外部デバイス等の外部へのデータ送出時の記憶手段の利用効率を向上させることができる。
特開2006−195823号公報 特開平04−277850号公報 特許第5040050号公報 特開2005−071104号公報 特開2007−233522号公報 特開2010−198138号公報
しかしながら、特許文献1に記載された技術において、コントローラ(DMAエンジン)の内部に設けられたデータバッファが十分大きい場合や、転送するデータが小さい場合には、次の問題が生じる。すなわち、ディスクリプタを複数のサブディスクリプタに分割し、各サブディスクリプタに基づく複数のDMA転送処理を並行して実行すると、コントローラのCPUやメモリリソースの競合による使用効率の低下を招く場合があるという問題がある。
また、複数のディスクリプタと複数のコントローラとが存在する場合に、1つのディスクリプタを複数のサブディスクリプタに分割し、分割されたサブディスクリプタが複数のコントローラを占有してしまうと、他のディスクリプタの処理が滞留し、システム全体のスループットが低下するという問題がある。
なお、特許文献2乃至6には、複数のDMA転送処理を並行して行う際に、リソースの競合による使用効率の低下やシステム全体のスループットの低下を招かずにDMA転送処理を行うための技術については、何ら記載がない。
本発明の目的は、リソースの競合による使用効率の低下やシステム全体のスループットの低下を招かずに複数のDMA転送処理を行うことのできる、情報処理装置、DMA転送制御方法およびDMA転送制御プログラムを提供することにある。
本発明の情報処理装置は、
DMA(Direct Memory Access)転送処理に必要な第1の転送情報が格納された少なくとも1つの転送情報記憶手段と、
前記第1の転送情報に基づき前記DMA転送処理を実行する、少なくとも1つのDMAエンジンと、
転送情報制御手段と
を含み、
前記DMAエンジンは、前記DMA転送処理で読み出した転送データを一時的に保持する転送データバッファを備え、
前記転送情報制御手段は、
前記第1の転送情報を分割すべきか否かを、前記転送データの大きさと、前記DMA転送処理が完了するまでの転送時間と、前記転送データバッファの大きさとに基づいて判定し、
前記第1の転送情報を分割すべきと判定した場合は、前記第1の転送情報の分割数を、前記転送データの大きさと、前記転送時間と、前記転送データバッファの大きさと、前記DMA転送処理を実行していない未使用DMAエンジンの数と、前記DMAエンジンによってDMA転送処理が実行されていない前記第1の転送情報の数とに基づいて決定し、
前記決定した分割数で1つの前記第1の転送情報を分割して複数の第2の転送情報を生成し、
前記第2の転送情報の各々を前記DMAエンジンの各々に送付し、各々の前記DMAエンジンを起動する。
また、本発明のDMA転送制御方法は、
DMA(Direct Memory Access)エンジンによって実行されるDMA転送処理に必要な第1の転送情報を分割すべきか否かを、前記DMA転送処理で読み出す転送データの大きさと、前記DMA転送処理が完了するまでの転送時間と、前記転送データを一時的に保持する転送データバッファの大きさとに基づいて判定し、
前記第1の転送情報を分割すべきと判定した場合は、前記第1の転送情報の分割数を、前記転送データの大きさと、前記転送時間と、前記転送データバッファの大きさと、前記DMA転送処理を実行していない未使用DMAエンジンの数と、前記DMAエンジンによってDMA転送処理が実行されていない前記第1の転送情報の数とに基づいて決定し、
前記決定した分割数で1つの前記第1の転送情報を分割して複数の第2の転送情報を生成し、
前記第2の転送情報の各々を前記DMAエンジンの各々に送付し、各々の前記DMAエンジンを起動する。
また、本発明のDMA転送制御プログラムは、
DMA(Direct Memory Access)エンジンによって実行されるDMA転送処理に必要な第1の転送情報を分割すべきか否かを、前記DMA転送処理で読み出す転送データの大きさと、前記DMA転送処理が完了するまでの転送時間と、前記転送データを一時的に保持する転送データバッファの大きさとに基づいて判定する判定処理と、
前記第1の転送情報を分割すべきと判定した場合は、前記第1の転送情報の分割数を、前記転送データの大きさと、前記転送時間と、前記転送データバッファの大きさと、前記DMA転送処理を実行していない未使用DMAエンジンの数と、前記DMAエンジンによってDMA転送処理が実行されていない前記第1の転送情報の数とに基づいて決定する算出処理と、
前記決定した分割数で1つの前記第1の転送情報を分割して複数の第2の転送情報を生成する生成処理と、
前記第2の転送情報の各々を前記DMAエンジンの各々に送付し、各々の前記DMAエンジンを起動するDMAエンジン起動処理と
をコンピュータに実行させる。
本発明には、リソースの競合による使用効率の低下やシステム全体のスループットの低下を招かずに複数のDMA転送を行うことができるという効果がある。
本発明の第1の実施形態を示すブロック図である。 第1の実施形態における、ディスクリプタ制御部200の構成を示すブロック図である。 第1の実施形態における、エンジン使用状況テーブル2021の一例を示す図である。 第1の実施形態における、DMA転送部10の動作を示すフローチャートである。 第1の実施形態における、DMA転送開始時のディスクリプタ制御部200の動作を示すフローチャートである。 第1の実施形態における、DMA転送完了時のディスクリプタ制御部200の動作を示すフローチャートである。 本発明の第2の実施形態を示すブロック図である。
次に、本発明の実施形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1は本発明の第1の実施形態を示すブロック図である。
図1を参照すると、情報処理装置1は、DMA転送部10と、トランザクション制御部20と、少なくとも1つのCPU30と、メモリ40と、少なくとも1つの入出力部50とを含む。DMA転送部10と、CPU30と、メモリ40と、入出力部50とは、トランザクション制御部20を介して相互に接続されている。
DMA転送部10は、それぞれを識別する固有の識別情報が割り当てられた複数のディスクリプタ101からなるディスクリプタ群100と、ディスクリプタ制御部200と、それぞれを識別する固有の識別情報が割り当てられた複数のDMAエンジン300とを含む。
ディスクリプタ101は、DMA転送処理の実行に必要な情報(以降、「DMA転送情報」、または「第1の転送情報」と称する)が格納された所定の記憶領域である。以降、ディスクリプタ101は、「転送情報記憶部」とも呼ばれる。DMA転送情報は、転送するべきデータの場所を示す転送元アドレスと、転送先の場所を示す転送先アドレスと、転送するべきデータの長さを示す転送データ長と、このDMA転送情報が実行対象であるか否かを示す実行バリッドと、このDMA転送情報の転送処理が終了したことを示す転送完了フラグとを含む。なお、本実施形態では、ディスクリプタ101を示す識別情報は、例えば、「ディスクリプタA」、「ディスクリプタB」、「ディスクリプタC」・・・とする。また、実行バリッドは、「1」が登録されている場合は、そのDMA転送情報が実行対象であることを示し、「0(ゼロ)」が登録されている場合は実行対象ではないことを示す。特に、実行バリッドに「1」が登録されているディスクリプタを「有効ディスクリプタ」と称する。転送完了フラグは、「1」が登録されている場合は転送完了を示し、「0(ゼロ)」が登録されている場合は転送が完了していないことを示す。
ディスクリプタ制御部200は、ディスクリプタ101のうち実行すべきディスクリプタを選択し、そのディスクリプタに格納されているDMA転送情報を基にしたDMA転送処理を実行するDMAエンジン300の選択および起動を行う。以降、ディスクリプタ制御部200は、「転送情報制御部」とも呼ばれる。
DMAエンジン300は、DMAリクエスト制御部301とデータバッファ302とを含む。なお、本実施形態では、DMAエンジン300を示す識別情報は、例えば、「DMAエンジンA」、「DMAエンジンB」、「DMAエンジンC」・・・とする。
DMAリクエスト制御部301は、ディスクリプタ101に格納されているDMA転送情報に含まれる転送元アドレスが示す場所から、トランザクション制御部20を介して、予め設定された所定の大きさのデータ(以降、「データブロック」と称する)を読み出す。なお、以降、本動作を「リード」(読み出し)と称し、リードの動作を指示する命令を「リード命令」と称する。また、DMAリクエスト制御部301は、そのデータブロックを、トランザクション制御部20を介してDMA転送情報に含まれる転送先アドレスが示す場所に書き込む。以降、本動作を「ライト」(書き込み)と称し、ライトの動作を指示する命令を「ライト命令」と称する。
また、DMAリクエスト制御部301が、転送元にリード命令を送付してから、実際にデータブロックを受け取るまで、または、転送先にライト命令とデータブロックとを送付してから命令実行完了を示す通知を受け取るまでには、待ち時間が生じる。この待ち時間がDMAエンジンの命令サイクルの何サイクルにあたるかを示す値を、以降、「レイテンシ」と称する。例えば、転送先がメモリ40であり、ライト命令とデータブロックとを送付してから、命令実行完了を示す通知が届くまで8命令サイクルであった場合は、メモリ40のレイテンシは8となる。
DMAリクエスト制御部301は、予め転送元および転送先の装置毎にレイテンシを測定する。そして、ディスクリプタ制御部200は、DMAリクエスト制御部301が測定したレイテンシを所定の記憶場所(図示せず)に保持する。
データバッファ302は、DMAリクエスト制御部301が、転送元アドレスが示す場所から読み出したデータブロックを転送先アドレスが示す場所に書き込むまでの間、一時的に保持するための記憶領域である。このデータバッファ302の容量により、DMAエンジン300が一度に処理できるデータ量が決まる。また、データバッファ302が格納可能なデータブロックの数を、「データバッファの深さ」と称する。例えば、データブロックの大きさが8KB(キロバイト)であり、データバッファの大きさが32KBである場合は、データバッファの深さは4となる。
トランザクション制御部20は、DMA転送部10と、CPU30と、メモリ40と、入出力部50とに接続されている。トランザクション制御部20は、DMA転送部10に含まれる各DMAエンジン300からのリードの指示およびライトの指示を受信し、各指示に従って各接続先からデータブロックを受信し、受信したデータブロックを指定の接続先に送付する。
CPU30は、ディスクリプタ101にDMA転送情報を登録し、ディスクリプタ制御部200にDMA転送処理を開始する旨の指示を送付する。
ディスクリプタ制御部200は、プログラムを記憶する記憶デバイス(図示せず)と、そのプログラムをメモリに読み込んで命令を実行する少なくとも1つのプロセッサ(図示せず)とを含む。
図2は、本実施形態におけるディスクリプタ制御部200の構成を示すブロック図である。
図2を参照すると、ディスクリプタ制御部200は、ディスクリプタ選択部201、エンジン使用状況管理部202、エンジン設定部203、完了通知部204を含む。
ディスクリプタ選択部201は、ディスクリプタ群100に含まれるディスクリプタ101のうち1つのディスクリプタを選択し、そのディスクリプタに格納されたDMA転送情報をエンジン設定部203に送付する。
エンジン使用状況管理部202は、エンジン使用状況テーブル2021を記憶する。エンジン使用状況テーブル2021には、DMAエンジン300を示す識別情報と、そのDMAエンジン300が参照しているDMA転送情報が含まれるディスクリプタ101を示す識別情報とが関連付けられたレコードが登録される。
エンジン設定部203は、エンジン使用状況テーブル2021を参照し、DMAエンジン300のうち、現在未使用のDMAエンジンを検索する。そして、エンジン設定部203は、検索した未使用のDMAエンジン300に、ディスクリプタ選択部201から受け取ったDMA転送情報を送付する。また、転送データ長、未使用のDMAエンジン数などが所定の条件に当てはまる場合には、エンジン設定部203は、DMA転送情報の内容を基に、DMA転送情報を所定の方法で求めた数に分割したDMA転送情報を表す分割DMA転送情報(以降、「第2の転送情報」とも言う。)を生成する。そして、エンジン設定部203は、複数のDMAエンジン300の各々に、生成した分割DMA転送情報の各々を送付する。
完了通知部204は、DMAエンジン300からDMA転送処理が終了した旨の通知を受信すると、エンジン使用状況テーブル2021を更新するとともに、必要な場合はディスクリプタ101の転送完了フラグおよび実行バリッドを更新する。
図3は、本実施形態におけるエンジン使用状況テーブル2021の一例を示す図である。
図3を参照すると、エンジン使用状況テーブル2021は、エンジン識別欄と、ディスクリプタ識別欄と、複数エンジン使用フラグ欄とを含む。
エンジン識別欄には、DMA転送部10に含まれる各DMAエンジン300に割り当てられた識別情報が事前に登録される。
ディスクリプタ識別欄には、エンジン識別欄に登録された識別情報が示すDMAエンジンが参照するDMA転送情報が登録されているディスクリプタ101に割り当てられた識別情報が登録される。
複数エンジン使用フラグ欄には、ディスクリプタ識別欄に登録された識別情報が示すディスクリプタに登録されているDMA転送情報が、複数に分割されて、そのうちの1つがエンジン識別欄に登録されている識別情報が示すDMAエンジンで実行されている場合に「1」が登録される。そして、DMA転送情報が複数に分割されずに、エンジン識別欄に登録されている識別情報が示すDMAエンジンが、そのDMA転送情報を基にDMA転送処理を実行している場合は「0(ゼロ)」が登録される。
エンジン使用状況テーブル2021の各行のレコードにおけるそれぞれの識別情報およびフラグ「1」、「0」は、互いに関連付けて記憶されている。例えば、図3の1行目のレコードを参照すると、エンジン識別欄には「DMAエンジンA」が登録され、ディスクリプタ識別欄には「ディスクリプタA」が登録され、複数エンジン使用フラグ欄には、「1」が登録されている。すなわち、DMAエンジンAという識別情報が示すDMAエンジン300は、ディスクリプタAという識別情報が示すディスクリプタに格納されているDMA転送情報を複数に分割した分割DMA転送情報を、エンジン設定部203から受け取り、その分割DMA転送情報を基にDMA転送処理を実行していることが判る。なお、ディスクリプタ識別欄に識別情報が登録されていないレコードのエンジン識別欄に登録されている識別情報が示すDMAエンジンBが、現在未使用のDMAエンジンである。
次に、DMA転送部10の動作について図4乃至図6のフローチャートを参照して説明する。
図4は、DMA転送処理を実行する際のDMA転送部10の動作を示すフローチャートである。
図4を参照すると、まず、ディスクリプタ制御部200に含まれるディスクリプタ選択部201が、CPU30からDMA転送処理の開始指示を受け取る。なお、ディスクリプタ選択部201は、エンジン使用状況テーブル2021を参照し、現在未使用のDMAエンジンが無い場合(すなわち、全てのレコードのディスクリプタ識別欄に識別情報が登録されている場合。)は、DMA転送処理の開始を待ち合わせる。
未使用のDMAエンジン300がある場合には、ディスクリプタ選択部201は、ディスクリプタ群100に含まれるディスクリプタ101のうち、有効ディスクリプタ(実行バリッドに「1」が登録されているディスクリプタ)であり、且つ、エンジン使用状況テーブル2021に含まれる各レコードのディスクリプタ識別欄に、そのディスクリプタを示す識別情報が登録されていないディスクリプタを1つ選択する(ステップS101)。そして、ディスクリプタ選択部201は、選択したディスクリプタ101に登録されているDMA転送情報をエンジン設定部203に送付する。
次に、エンジン設定部203は、エンジン使用状況テーブル2021のレコードを参照し、現在未使用のDMAエンジン300を検索する。エンジン設定部203は、検索した未使用のDMAエンジン300に、ディスクリプタ選択部201から受け取ったDMA転送情報を送付し、そのDMAエンジンを起動する。
なお、DMA転送情報に含まれる情報等が所定の条件に当てはまる場合には、エンジン設定部203は、ディスクリプタ選択部201から受け取ったDMA転送情報の内容を基に、所定の方法で求めた数の分割DMA転送情報を生成する。所定の条件および所定の方法については、式を使って後述されるので、ここでは説明を省略する。そして、エンジン設定部203は、生成した分割DMA転送情報の各々を複数のDMAエンジン300の各々に送付し、各DMAエンジン300を起動する(ステップS102)。
なお、ステップS101およびS102で説明した、DMA転送処理の開始の際のディスクリプタ制御部200の動作の詳細については、図5のフローチャートを基に後述する。
次に、エンジン設定部203によって起動されたDMAエンジン300のDMAリクエスト制御部301は、送付されたDMA転送情報または分割DMA転送情報に含まれる転送元アドレスなどの情報を含むリード命令を発行し、トランザクション制御部20に送付する(ステップS103)。
次に、ステップS103で送付したリード命令への応答として、トランザクション制御部20からデータブロックを受け取ると、DMAリクエスト制御部301は、受け取ったデータブロックをデータバッファ302に格納する(ステップS104)。そして、DMAリクエスト制御部301は、DMA転送情報または分割DMA転送情報に含まれる転送先アドレスなどと、データバッファ302に格納されているデータブロックとを含むライト命令を発行し、トランザクション制御部20に送付する(ステップS105)。
次に、トランザクション制御部20から、ステップS105で送付したライト命令が完了した旨の通知を受信したDMAリクエスト制御部301は、完了通知部204にDMA転送処理の実行が完了した旨の通知を送付する(ステップS106)。なお、DMA転送情報または分割DMA転送情報に含まれる転送データ長が、データブロックの大きさより大きい場合は、ステップS103乃至S105の処理が複数回繰り返される。
DMA転送処理の実行が完了した旨の通知を受信した完了通知部204は、エンジン使用状況テーブル2021のレコードの情報を更新するとともに、必要な場合は、ディスクリプタ101の転送完了フラグと実行バリッドとを更新することで、ディスクリプタの完了を設定する(ステップS107)。なお、ステップS106およびS107で説明した、DMA転送処理の完了時のディスクリプタ制御部200の動作の詳細については、図6のフローチャートを基に後述する。
このようにして、ディスクリプタ101に格納されたDMA転送情報に基づくDMA転送処理が行われる。
次に、ステップS101およびS102で説明した、DMA転送処理の開始の際のディスクリプタ制御部200の動作について図5のフローチャートを参照して説明する。
図5を参照すると、まず、ディスクリプタ選択部201が、ディスクリプタ群100に含まれる有効ディスクリプタの総数を算出する。そして、ディスクリプタ選択部201は、エンジン使用状況テーブル2021を参照し、DMAエンジン300の総数、すなわちエンジン使用状況テーブル2021に登録されているレコードの数を計数する。そして、ディスクリプタ選択部201は、算出した有効ディスクリプタの総数がDMAエンジン300の総数以上か否かの判定を行う(ステップS201)。
算出した有効ディスクリプタの総数がDMAエンジン300の総数以上の場合(ステップS201で「YES」の場合。)は、ディスクリプタ選択部201は、選択した有効ディスクリプタに登録されているDMA転送情報をエンジン設定部203に送付する。そして、エンジン設定部203は、エンジン使用状況テーブル2021を参照し、現在未使用のDMAエンジン300を選択する。すなわち、エンジン使用状況テーブル2021のディスクリプタ識別欄に識別情報が登録されていないレコードを検索し、検索したレコードのエンジン識別欄に格納されている識別情報が示すDMAエンジン300を選択する。
エンジン設定部203は、選択した未使用のDMAエンジン300に、ディスクリプタ選択部201から受け取ったDMA転送情報を送付し、そのDMAエンジンを起動する(ステップS207)。また、エンジン設定部203は、エンジン使用状況テーブル2021の検索したレコードのディスクリプタ識別欄に、ディスクリプタ選択部201から送付されたDMA転送情報が登録されているディスクリプタを示す識別情報を登録する。そして、エンジン設定部203は、そのレコードの複数エンジン使用フラグ欄に0(ゼロ)を登録する。
一方、算出した有効ディスクリプタの数がDMAエンジン300の総数より少ない場合(ステップS201で「NO」の場合。)は、ディスクリプタ選択部201は、ディスクリプタ群100に含まれるディスクリプタ101のうち、有効ディスクリプタであり、且つ、エンジン使用状況テーブル2021のディスクリプタ識別欄に識別情報が登録されていないディスクリプタ(以降、「未実行ディスクリプタ」と称する)を1つ選択する。なお、選択すべきディスクリプタが複数存在する場合は、ラウンドロビン方式等の予め定めた所定のルールで選択するディスクリプタを決定する。
次に、ディスクリプタ選択部201は、選択した有効ディスクリプタに登録されているDMA転送情報をエンジン設定部203に送付する。そして、エンジン設定部203は、エンジン使用状況テーブル2021を参照し、現在未使用のDMAエンジン300が2つ以上あるか否かを判定する(ステップS202)。すなわち、エンジン使用状況テーブル2021を検索し、ディスクリプタ識別欄に識別情報が登録されていないレコードが2つ以上あるか否かを判定する。
現在未使用のDMAエンジン300が1つしか無い場合(ステップS202で「NO」の場合。)は、エンジン設定部203は、そのDMAエンジン300を選択する。そして、選択した未使用のDMAエンジン300に、ディスクリプタ選択部201から受け取ったDMA転送情報を送付し、そのDMAエンジンを起動する(ステップS207)。また、エンジン使用状況テーブル2021を更新する。
現在未使用のDMAエンジン300が2つ以上ある場合(ステップS202で「YES」の場合。)、エンジン設定部203は、ディスクリプタ選択部201から受け取ったDMA転送情報を分割すべきか否かを、前述の所定の方法で判定する(ステップS203)。ここで、DMA転送情報を分割すべきか否かを判定する方法の一例を以下に説明する。
エンジン設定部203は、データバッファ302の大きさから算出されるデータバッファの深さと、DMA転送情報に含まれる転送データ長、およびデータブロックの大きさから算出した、転送データのデータブロック数(以降、「転送データブロック数」と称する。)と、転送元アドレスが示す転送元のレイテンシの値とを基に、そのDMA転送情報を分割すべきか否かを判定する。
すなわち、以下の式(1)および式(2)の両方が満たされる場合に、エンジン設定部203は、DMA転送情報を分割すべきと判定する。
データバッファの深さ < 転送データブロック数・・・(1)
データバッファの深さ < 転送元のレイテンシの値・・・(2)
例えば、データバッファの深さが4であり、転送元のメモリ40のレイテンシの値が8である場合、エンジン設定部203は、転送データブロック数が5以上の場合は分割すべきであると判定し、4以下の場合は分割すべきではないと判定する。
ステップS203でDMA転送情報を分割すべきではないと判定された場合(ステップS203で「NO」の場合。)は、エンジン設定部203は、現在未使用のDMAエンジン300のうち、1つのDMAエンジン300を選択する。そして、選択した未使用のDMAエンジン300に、ディスクリプタ選択部201から受け取ったDMA転送情報を送付し、そのDMAエンジンを起動する(ステップS207)。また、エンジン使用状況テーブル2021を更新する。
一方、ステップS203でDMA転送情報を分割すべきであると判定された場合(ステップS203で「YES」の場合。)は、エンジン設定部203は、ディスクリプタ選択部201から受け取ったDMA転送情報の分割数を、所定の方法で算出する。そして、エンジン設定部203は、当該DMA転送情報を基に、算出した分割数と同じ数の分割DMA転送情報を生成する(ステップS204)。ここで、DMA転送情報の分割数を算出する方法の一例を以下に説明する。
エンジン設定部203は、ディスクリプタ選択部201から受け取ったDMA転送情報に含まれる転送データ長から算出した転送データブロック数と、データバッファ302の大きさから算出したデータバッファの深さと、未使用DMAエンジン300の数と、未実行ディスクリプタ101の数と、転送元のレイテンシの値とを基に、分割数を算出する。
すなわち、以下の式(3)を満たす場合は、エンジン設定部203は、以下の式(4)の計算結果を切り上げて整数にした値を求め、その値を、分割する最大の数(以降、「最大分割数」と称する。)とする。
転送データブロック数 < 転送元のレイテンシの値・・・(3)
転送データブロック数/データバッファの深さ・・・(4)
また、上記式(3)を満たさない場合は、エンジン設定部203は、以下の式(5)の計算結果を切り上げて整数にした値を求め、その値を最大分割数とする。
転送元のレイテンシの値/データバッファの深さ・・・(5)
例えば、データバッファの深さが4であり、転送元の入出力部50のレイテンシの値が20であり、転送データブロック数が12である場合、上記式(3)を満たすので、エンジン設定部203は、上記式(4)を適用し最大分割数の3を求める。
次に、エンジン設定部203は、求めた最大分割数と、未使用のDMAエンジン300の数とを比較し、以下の式(6)を満たす場合は、未使用DMAエンジンの数を分割数とする。
最大分割数 > 未使用DMAエンジンの数・・・(6)
次に、他に未実行ディスクリプタがある場合は、エンジン設定部203は、以下の式(7)を満たし、且つ、最大分割数以下である分割数を求める。
分割数+他の未実行ディスクリプタ数 <= 未使用DMAエンジンの数・・・(7)
そして、式(6)、および式(7)のどちらも満たさない場合は、エンジン設定部203は、求めた最大分割数を分割数とする。
図5のフローチャートの説明に戻り、次に、エンジン設定部203は、算出した分割数と同じ数の未使用DMAエンジン300を選択する。
そして、エンジン設定部203は、エンジン使用状況テーブル2021を参照し、各選択したDMAエンジン300を示す識別情報がエンジン識別欄に登録されているレコードのディスクリプタ識別欄に、生成した分割DMA転送情報の基となったDMA転送情報が格納されているディスクリプタを示す識別情報を登録する。さらに、エンジン設定部203は、各該レコードの複数エンジン使用フラグ欄に、複数に分割されていることを示す「1」を登録する(ステップS205)。
次に、エンジン設定部203は、ステップS205で選択したDMAエンジン300の各々に、生成した分割DMA転送情報の各々を送付し、各DMAエンジンを起動する(ステップS206)。
このようにして、1つのディスクリプタ101に登録されたDMA転送情報が、適切な分割数の分割DMA転送情報に分割され、それぞれが別のDMAエンジン300で並行して実行される。
次に、ステップS106およびS107で説明した、DMA転送処理の完了時のディスクリプタ制御部200の動作について図6のフローチャートを参照して説明する。
図6を参照すると、まず、DMAリクエスト制御部301は、ディスクリプタ制御部200に含まれる完了通知部204にDMA転送処理の実行が完了した旨の通知を送付する。
完了通知部204は、エンジン使用状況テーブル2021を参照し、完了通知を送付したDMAリクエスト制御部301が含まれるDMAエンジン300を示す識別情報がエンジン識別欄に格納されているレコードの、複数エンジン使用フラグ欄に「0(ゼロ)」が格納されているか否か(すなわち、使用したDMAエンジンは1つか否か)を判定する(ステップS301)。
複数エンジン使用フラグ欄に「0(ゼロ)」が格納されている場合(ステップS301で「YES」の場合。)、完了通知部204は、そのレコードのディスクリプタ識別欄に格納されている識別情報を削除する(ステップS302)。そして、完了通知部204は、その削除した識別情報が示すディスクリプタ101に含まれる実行バリッドに「0(ゼロ)」を登録するとともに、転送完了フラグに「1」を登録する(ステップS305)。
ステップS301で、複数エンジン使用フラグ欄に「1」が格納されている場合(ステップS301で「NO」の場合。)、完了通知部204は、そのレコードのディスクリプタ識別欄に格納されている識別情報と、複数エンジン使用フラグ欄に格納されている値とを削除する(ステップS303)。このとき、完了通知部204は、削除した識別情報と同じ識別情報が、他のレコードのディスクリプタ識別欄に登録されているか否かを判別する(ステップS304)。
他のレコードのディスクリプタ識別欄に、同じ識別情報が登録されていない場合(ステップS304で「NO」の場合。)、完了通知部204は、その削除した識別情報が示すディスクリプタ101に含まれる実行バリッドに「0(ゼロ)」を登録するとともに、転送完了フラグに「1」を登録する(ステップS305)。
以上、本実施形態には、リソースの競合による使用効率の低下やシステム全体のスループットの低下を招かずに、複数のDMA転送処理を行うことができるという効果がある。
その理由としては、ディスクリプタ制御部201が、有効ディスクリプタの総数とDMAエンジン300の総数とを比較し、有効ディスクリプタの総数がDMAエンジン300の総数以上の場合はディスクリプタの分割を行わずに、有効ディスクリプタの並列処理を妨げないようにする。そして、未使用のDMAエンジン300が2つ以上ある場合に、エンジン設定部203が、ディスクリプタ101を分割すべきか否かを、データバッファの深さと、転送データブロック数と、転送元のレイテンシの値とを基にした所定の判定方法で判定する。そして、分割する場合は、ディスクリプタ101の適切な分割数を、転送データブロック数と、データバッファの深さと、未使用DMAエンジン300の数と、未実行のディスクリプタ数と、転送元のレイテンシの値とを基にした所定の算出方法で求める。そして、エンジン設定部203が、求めた適切な分割数でディスクリプタ101を分割し、分割したディスクリプタを基にDMA転送処理が行われるからである。
[第2の実施形態]
次に、本発明の第1の実施形態の基本的な構成を含む、第2の実施形態について説明する。
図7は本実施形態を示すブロック図である。
図7を参照すると、情報処理装置2は、複数の転送情報記憶部110と、転送情報制御部210と、複数のDMAエンジン310とを含む。
転送情報記憶部110には、DMA転送処理の実行に必要な第1の転送情報が格納されている。
DMAエンジン310は、転送情報記憶部110に格納された第1の転送情報に基づきDMA転送処理を行う。また、DMAエンジン310は、DMA転送処理で読み出した転送データを一時的に保持する転送データバッファ(図示せず)を備える。
転送情報制御部210は、プログラムを記憶する記憶デバイス(図示せず)と、そのプログラムをメモリに読み込んで命令を実行する少なくとも1つのプロセッサ(図示せず)とを含む。
転送情報制御部210は、転送情報記憶部110に格納された第1の転送情報を分割すべきか否かを、転送データの大きさと、DMA転送処理が完了するまでの転送時間と、転送データバッファの大きさとに基づいて判定する。なお、第1の転送情報を分割すべきか否かを判定する判定方法の一例については、第1の実施形態で説明した、DMA転送情報を分割すべきか否かを判定する方法の一例と同一であるので、ここでの説明は省略する。
第1の転送情報を分割すべきと判定した場合、転送情報制御部210は、第1の転送情報の分割数を、転送データの大きさと、DMA転送処理が完了するまでの転送時間と、転送データバッファの大きさと、DMA転送処理を実行していない未使用DMAエンジンの数と、DMAエンジンによってDMA転送処理が実行されていない第1の転送情報の数とに基づいて決定する。なお、第1の転送情報の分割数を決定する方法の一例については、第1の実施形態で説明した、DMA転送情報の分割数を算出する方法の一例と同一であるので、ここでの説明は省略する。
そして、転送情報制御部210は、決定した分割数で、1つの転送情報記憶部110に格納された第1の転送情報を分割し、複数の第2の転送情報を生成する。
次に、転送情報制御部210は、生成した第2の転送情報の各々を、DMAエンジン310の各々に送付する。
そして、転送情報制御部210は、第2の転送情報を送付した各DMAエンジンを起動する。
以上、本実施形態には、第1の実施形態と同様に、リソースの競合による使用効率の低下やシステム全体のスループットの低下を招かずに、複数のDMA転送処理を行うことができるという効果がある。
その理由としては、転送情報制御部210が、第1の転送情報を分割すべきか否かを、転送データの大きさと、DMA転送処理が完了するまでの転送時間と、転送データバッファの大きさとに基づいて判定する。そして、分割する場合は、第1の転送情報の適切な分割数を、転送データの大きさと、DMA転送処理が完了するまでの転送時間と、転送データバッファの大きさと、DMA転送処理を実行していない未使用DMAエンジンの数と、DMAエンジンによってDMA転送処理が実行されていない第1の転送情報の数とに基づいて決定する。そして、決定した適切な分割数で第1の転送情報を分割し、分割した第2の転送情報を基にDMA転送処理が行われるからである。
1 情報処理装置
2 情報処理装置
10 DMA転送部
20 トランザクション制御部
30 CPU
40 メモリ
50 入出力部
100 ディスクリプタ群
101 ディスクリプタ
110 転送情報記憶部
200 ディスクリプタ制御部
201 ディスクリプタ選択部
202 エンジン使用状況管理部
203 エンジン設定部
204 完了通知部
210 転送情報制御部
300 DMAエンジン
301 DMAリクエスト制御部
302 データバッファ
310 DMAエンジン
2021 エンジン使用状況テーブル

Claims (7)

  1. DMA(Direct Memory Access)転送処理に必要な第1の転送情報が格納された少なくとも1つの転送情報記憶手段と、
    前記第1の転送情報に基づき前記DMA転送処理を実行する、少なくとも1つのDMAエンジンと、
    転送情報制御手段と
    を含み、
    前記DMAエンジンは、前記DMA転送処理で読み出した転送データを一時的に保持する転送データバッファを備え、
    前記転送情報制御手段は、
    前記第1の転送情報を分割すべきか否かを、前記転送データの大きさと、前記DMA転送処理が完了するまでの転送時間と、前記転送データバッファの大きさとに基づいて判定し、
    前記第1の転送情報を分割すべきと判定した場合は、前記第1の転送情報の分割数を、前記転送データの大きさと、前記転送時間と、前記転送データバッファの大きさと、前記DMA転送処理を実行していない未使用DMAエンジンの数と、前記DMAエンジンによってDMA転送処理が実行されていない前記第1の転送情報の数とに基づいて決定し、
    前記決定した分割数で1つの前記第1の転送情報を分割して複数の第2の転送情報を生成し、
    前記第2の転送情報の各々を前記DMAエンジンの各々に送付し、各々の前記DMAエンジンを起動する
    情報処理装置。
  2. 前記転送情報記憶手段のそれぞれを識別する記憶手段識別情報と、前記DMAエンジンのそれぞれを識別するエンジン識別情報と、前記第1の転送情報が複数の前記第2の転送情報に分割されていることを表すフラグとが関連づけられて登録されているエンジン使用状況管理手段と、
    前記第2の転送情報と同じ数の前記未使用DMAエンジンを選択し、前記エンジン使用状況管理手段に登録されている、前記選択した未使用DMAエンジンを示すエンジン識別情報に関連づけて、前記第2の転送情報の生成元である前記第1の転送情報が格納されている前記転送情報記憶手段を示す記憶手段識別情報と、複数の第2の転送情報に分割されていることを示す分割情報が格納された前記フラグとを登録し、前記第2の転送情報の各々を前記選択した未使用DMAエンジンの各々に送付し、各々のDMAエンジンを起動するエンジン設定手段と、
    前記DMAエンジンのDMA転送処理が完了した場合、前記エンジン使用状況管理手段に登録されている、前記DMA転送処理が完了したDMAエンジンを示す第1のエンジン識別情報に関連づけられた前記フラグに前記分割情報が登録されている場合、その分割情報と、前記第1のエンジン識別情報に関連づけて登録されている記憶手段識別情報とを削除し、前記削除した記憶手段識別情報と同じ識別情報が、前記エンジン使用状況管理手段に登録されていない場合は、前記削除した記憶手段識別情報が示す転送情報記憶手段に登録されている前記第1の転送情報を削除する完了設定手段と
    を含む請求項1に記載の情報処理装置。
  3. 前記未使用DMAエンジンは、前記エンジン使用状況管理手段に登録されているエンジン識別情報のうち、記憶手段識別情報が関連づけて登録されていないエンジン識別情報が示すDMAエンジンである
    請求項2に記載の情報処理装置。
  4. DMA(Direct Memory Access)エンジンによって実行されるDMA転送処理に必要な第1の転送情報を分割すべきか否かを、前記DMA転送処理で読み出す転送データの大きさと、前記DMA転送処理が完了するまでの転送時間と、前記転送データを一時的に保持する転送データバッファの大きさとに基づいて判定し、
    前記第1の転送情報を分割すべきと判定した場合は、前記第1の転送情報の分割数を、前記転送データの大きさと、前記転送時間と、前記転送データバッファの大きさと、前記DMA転送処理を実行していない未使用DMAエンジンの数と、前記DMAエンジンによってDMA転送処理が実行されていない前記第1の転送情報の数とに基づいて決定し、
    前記決定した分割数で1つの前記第1の転送情報を分割して複数の第2の転送情報を生成し、
    前記第2の転送情報の各々を前記DMAエンジンの各々に送付し、各々の前記DMAエンジンを起動する
    DMA転送制御方法。
  5. 前記第2の転送情報と同じ数の前記未使用DMAエンジンを選択し、
    前記選択した未使用DMAエンジンを示すエンジン識別情報と、前記第2の転送情報の生成元である前記第1の転送情報が格納されている転送情報記憶手段を示す記憶手段識別情報と、複数の第2の転送情報に分割されていることを示す分割情報が格納されたフラグとを関連づけてエンジン使用状況管理手段に登録し、
    前記第2の転送情報の各々を前記選択した未使用DMAエンジンの各々に送付し、各々のDMAエンジンを起動し、
    前記DMAエンジンのDMA転送処理が完了した場合、前記エンジン使用状況管理手段に登録されている、前記DMA転送処理が完了したDMAエンジンを示す第1のエンジン識別情報に関連づけられた前記フラグに前記分割情報が登録されている場合、その分割情報と、前記第1のエンジン識別情報に関連づけて登録されている記憶手段識別情報とを削除し、
    前記削除した記憶手段識別情報と同じ識別情報が、前記エンジン使用状況管理手段に登録されていない場合は、前記削除した記憶手段識別情報が示す転送情報記憶手段に登録されている前記第1の転送情報を削除する
    請求項4に記載のDMA転送制御方法。
  6. DMA(Direct Memory Access)エンジンによって実行されるDMA転送処理に必要な第1の転送情報を分割すべきか否かを、前記DMA転送処理で読み出す転送データの大きさと、前記DMA転送処理が完了するまでの転送時間と、前記転送データを一時的に保持する転送データバッファの大きさとに基づいて判定する判定処理と、
    前記第1の転送情報を分割すべきと判定した場合は、前記第1の転送情報の分割数を、前記転送データの大きさと、前記転送時間と、前記転送データバッファの大きさと、前記DMA転送処理を実行していない未使用DMAエンジンの数と、前記DMAエンジンによってDMA転送処理が実行されていない前記第1の転送情報の数とに基づいて決定する算出処理と、
    前記決定した分割数で1つの前記第1の転送情報を分割して複数の第2の転送情報を生成する生成処理と、
    前記第2の転送情報の各々を前記DMAエンジンの各々に送付し、各々の前記DMAエンジンを起動するDMAエンジン起動処理と
    をコンピュータに実行させるDMA転送制御プログラム。
  7. 前記第2の転送情報と同じ数の前記未使用DMAエンジンを選択し、前記選択した未使用DMAエンジンを示すエンジン識別情報と、前記第2の転送情報の生成元である前記第1の転送情報が格納されている転送情報記憶手段を示す記憶手段識別情報と、複数の第2の転送情報に分割されていることを示す分割情報が格納されたフラグとを関連づけてエンジン使用状況管理手段に登録する使用状況登録処理と、
    前記第2の転送情報の各々を、前記選択した未使用DMAエンジンの各々に送付し、各々のDMAエンジンを起動するエンジン制御処理と、
    前記DMAエンジンのDMA転送処理が完了した場合、前記エンジン使用状況管理手段に登録されている、前記DMA転送処理が完了したDMAエンジンを示す第1のエンジン識別情報に関連づけられた前記フラグに前記分割情報が登録されている場合、その分割情報と、前記第1のエンジン識別情報に関連づけて登録されている記憶手段識別情報とを削除する使用状況削除処理と、
    前記削除した記憶手段識別情報と同じ識別情報が、前記エンジン使用状況管理手段に登録されていない場合は、前記削除した記憶手段識別情報が示す転送情報記憶手段に登録されている前記第1の転送情報を削除する転送情報削除処理と
    をコンピュータに実行させる請求項6に記載のDMA転送制御プログラム。
JP2016000537A 2016-01-05 2016-01-05 情報処理装置、dma転送制御方法およびdma転送制御プログラム Active JP6698353B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016000537A JP6698353B2 (ja) 2016-01-05 2016-01-05 情報処理装置、dma転送制御方法およびdma転送制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016000537A JP6698353B2 (ja) 2016-01-05 2016-01-05 情報処理装置、dma転送制御方法およびdma転送制御プログラム

Publications (2)

Publication Number Publication Date
JP2017122972A true JP2017122972A (ja) 2017-07-13
JP6698353B2 JP6698353B2 (ja) 2020-05-27

Family

ID=59306562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016000537A Active JP6698353B2 (ja) 2016-01-05 2016-01-05 情報処理装置、dma転送制御方法およびdma転送制御プログラム

Country Status (1)

Country Link
JP (1) JP6698353B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004079583A1 (ja) * 2003-03-05 2004-09-16 Fujitsu Limited データ転送制御装置およびdmaデータ転送制御方法
JP2006195823A (ja) * 2005-01-14 2006-07-27 Fujitsu Ltd Dma装置
JP2009009186A (ja) * 2007-06-26 2009-01-15 Nec Electronics Corp Dma転送制御装置及びdma転送方法
JP2009075753A (ja) * 2007-09-19 2009-04-09 Fujitsu Ltd データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
JP2010198138A (ja) * 2009-02-23 2010-09-09 Ricoh Co Ltd データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004079583A1 (ja) * 2003-03-05 2004-09-16 Fujitsu Limited データ転送制御装置およびdmaデータ転送制御方法
JP2006195823A (ja) * 2005-01-14 2006-07-27 Fujitsu Ltd Dma装置
JP2009009186A (ja) * 2007-06-26 2009-01-15 Nec Electronics Corp Dma転送制御装置及びdma転送方法
JP2009075753A (ja) * 2007-09-19 2009-04-09 Fujitsu Ltd データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
JP2010198138A (ja) * 2009-02-23 2010-09-09 Ricoh Co Ltd データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体

Also Published As

Publication number Publication date
JP6698353B2 (ja) 2020-05-27

Similar Documents

Publication Publication Date Title
US8554968B1 (en) Interrupt technique for a nonvolatile memory controller
CN100349150C (zh) 通过直接存储器访问控制器传输数据的系统及方法
CN107430628B (zh) 具有直接数据传输机制的加速框架
US11360705B2 (en) Method and device for queuing and executing operation commands on a hard disk
US20070162637A1 (en) Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions
US10331499B2 (en) Method, apparatus, and chip for implementing mutually-exclusive operation of multiple threads
US11308171B2 (en) Apparatus and method for searching linked lists
CN111190854B (zh) 通信数据处理方法、装置、设备、系统和存储介质
CN110119304B (zh) 一种中断处理方法、装置及服务器
US10049035B1 (en) Stream memory management unit (SMMU)
US10592148B2 (en) Information processing system, storage control apparatus, storage control method, and storage control program for evaluating access performance to a storage medium
JP2014120097A (ja) 情報処理装置、プログラム、及び、情報処理方法
US20150186401A1 (en) Using file element accesses to select file elements in a file system to defragment
WO2019223383A1 (zh) 直接内存存取方法、装置、专用计算芯片及异构计算系统
US20120260058A1 (en) Memory management apparatus, memory management method, and control program
WO2017054714A1 (zh) 磁盘阵列的读方法及装置
JP6698353B2 (ja) 情報処理装置、dma転送制御方法およびdma転送制御プログラム
JP6189266B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP2005258509A (ja) ストレージ装置
CN114442925A (zh) 非易失性存储硬盘多队列提交调度方法、装置及存储介质
CN112416826A (zh) 专用计算芯片、dma数据传输系统及方法
CN110647493B (zh) 一种数据传输方法、处理器和pcie系统
CN113157628A (zh) 存储系统、数据处理方法、装置、存储系统及电子设备
US20140207980A1 (en) Interface control apparatus, data storage apparatus and method for interface control
US20110191638A1 (en) Parallel computer system and method for controlling parallel computer system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190917

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191113

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200428

R150 Certificate of patent or registration of utility model

Ref document number: 6698353

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150