JP2009187313A - ディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラム - Google Patents

ディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラム Download PDF

Info

Publication number
JP2009187313A
JP2009187313A JP2008026907A JP2008026907A JP2009187313A JP 2009187313 A JP2009187313 A JP 2009187313A JP 2008026907 A JP2008026907 A JP 2008026907A JP 2008026907 A JP2008026907 A JP 2008026907A JP 2009187313 A JP2009187313 A JP 2009187313A
Authority
JP
Japan
Prior art keywords
descriptor
information
instruction
response
area
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
JP2008026907A
Other languages
English (en)
Other versions
JP4839489B2 (ja
Inventor
Tomoko Nakamura
知子 中村
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 Solution Innovators Ltd
Original Assignee
NEC System Technologies 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 System Technologies Ltd filed Critical NEC System Technologies Ltd
Priority to JP2008026907A priority Critical patent/JP4839489B2/ja
Publication of JP2009187313A publication Critical patent/JP2009187313A/ja
Application granted granted Critical
Publication of JP4839489B2 publication Critical patent/JP4839489B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】CPUへの負荷なく、より高速なDMA転送を可能にするディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラムを提供することを目的とする。
【解決手段】メモリ上のデータを転送するDMAを行うための情報であるディスクリプタを制御するディスクリプタ制御方法である。データの転送前に必要な情報である指示ディスクリプタの領域(a)を、データ転送後の情報である応答ディスクリプタの領域(b)から分離し、指示ディスクリプタの領域のみを2以上記憶領域に配置する指示ディスクリプタ設定ステップ。前記設定ステップで配置された2以上の指示ディスクリプタ情報を、DMA制御装置にまとめて読み込む指示ディスクリプタ入力ステップと、前記転送したデータについて発生した応答ディスクリプタ情報のみを2以上一括して記憶領域(b)に書き込む応答ディスクリプタ書込ステップと、を備える。
【選択図】図2

Description

本発明は、ダイレクトメモリアクセスに用いるディスクリプタを制御するディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラムに関する。
近年、より高速な通信が求められており、ダイレクトメモリアクセス(DMA:Direct Memory Access。以下、DMA転送という)の機能に加えて、CPUオフロードや信頼性向上などの付加機能が数多く考え出されている。これらの付加機能のため、DMA転送に用いるディスクリプタ情報として様々なフィールドが追加されている。しかし、ディスクリプタのフィールド拡張を行うと、実際に通信されるデータ帯域に対して制御情報の帯域の割合が大きくなり、高速な通信を妨げてしまう。
DMA転送の効率を向上するために、例えば、特許文献1の技術では、データおよびデータのDMA処理の制御に必要なディスクリプタをまとめて情報ブロックとしてメモリ上に設定して、DMAコントローラを起動する。起動されたDMAコントローラは、メモリから情報ブロックを読み出してディスクリプタを抽出する。ディスクリプタをメモリに連続して配置することが、特許文献3および4にも記載されている。
特許文献2には、メモリ上のデータをDMAにより読み出して送信する際の送信間隔を高い精度で調整することが記載されている。特許文献2の技術は、ディスクリプタには、対応するパケットのメモリにおける記録開始アドレスの上位32ビットを示すaddress(high)および下位32ビットを示す address(low)、並びにパケット長を示す16ビットのlengthが記述され、さらにパケットのDMA転送の間隔を調整するための遅延時間を示すdelayが記述されている。ディスクリプタ取得部は、メモリに設けられたディスクリプタテーブルから、ディスクリプタ制御部のレジスタに記憶されている番号に対応する全てのディスクリプタを取得する。
また、特許文献5には、2つのプロセッサ間の通信制御方式として、コマンドやステータスデータの転送効率を向上する技術が記載されている。特許文献5の技術は、第1のプロセッサに送るべき1つ以上のステータスデータをまとめ、ステータスデータ群としてステータスキューに一度に書き込む。
特開2006−209448号公報 特開2006−293799号公報 特開2006−293800号公報 特開平04−177445号公報 特開平07−182275号公報
関連する技術のディスクリプタ制御方法は、ディスクリプタのフィールド拡張がデータ転送性能の低下に顕著に影響してしまうものだった。また、データ転送速度の向上のために、CPUの負荷軽減なしに、送受信に共通して効果的に適用できる施策が存在しなかった。
関連する技術のディスクリプタ情報の構成の例を図6に示す。図6に示すディスクリプタのうち、アドレス、サイズ、追加機能が使用する領域は、DMA転送を開始するために必要なディスクリプタ情報(以下、転送前ディスクリプタ情報と表現する)である。また、ステータスおよび追加機能が使用する領域の一部(例えば、信頼性向上のために使用する領域)は、転送処理デバイスがDMA転送を完了したのち、CPUへ報告しなければならないディスクリプタ情報(以下、転送後ディスクリプタ情報と表現する)である。関連する技術のディスクリプタ情報は、転送前ディスクリプタ情報と、転送後ディスクリプタ情報が1つのディスクリプタ領域に混在して存在している。
図7および図8は、関連する技術のDMA転送のシーケンスの例を示す。図7は送信シーケンスの例、図8は受信シーケンスの例である。図7および図8では、破線で囲んだシーケンスをDMA転送の数だけ繰り返す。
図7の送信シーケンスにおいて、図6に示すようなディスクリプタの構成であったとすると、ディスクリプタをまとめて読み出す場合に(ステップC1)、書き戻しのみ必要な領域(転送後ディスクリプタ情報の領域)も合わせて読み出す必要がある。そして、一連の転送を完了したのちにディスクリプタをまとめて書き戻すときに(ステップC2)、読み出しのみ必要な領域(転送前ディスクリプタ情報の領域)も書き戻す必要がある。
図8の受信シーケンスでは、ディスクリプタの書き戻し(ステップC3)は転送ごとに行う。データ受信のタイミングが外部デバイスに依存するので、一定数のDMA転送の受信完了をまとめる場合に、受信完了通知(ステップC4)が遅延する可能性がある。
関連する技術のディスクリプタ制御方法には、DMA転送をより高速にする上で、いくつかの問題点がある。
第1の問題点は、転送処理デバイスが、転送前ディスクリプタ情報をメインメモリから取得する際に、複数のDMA転送分のディスクリプタ情報を一回のバーストリード要求によって取得するためには、不必要なディスクリプタ情報まで同時に取ってこなければならない、ということである。また、転送後ディスクリプタ情報をメインメモリへ格納する際に、複数のDMA転送分のディスクリプタ情報を一回のバーストライト要求によって格納するためには、不必要なディスクリプタ情報まで同時に書き上げなければならない、ということである。この問題が発生する原因は、ディスクリプタ情報はDMA転送を開始するために必要な情報の領域と、DMA転送したのちに報告する情報の領域の両方を含み、転送前ディスクリプタ情報と転送後ディスクリプタ情報がメインメモリ上に混在して配置されているからである。
第2の問題点は、ランダムなタイミングでデータ受信またはデータ送信する場合、DMA転送において、1つのDMA転送完了の都度、転送後ディスクリプタ情報をメインメモリに書き上げており、複数の転送分の転送後ディスクリプタ情報を同時にメインメモリに書き上げていない、ということである。この問題が発生する原因は、DMA転送開始前に同時に用意したディスクリプタの個数によって、DMA転送後同時に報告するディスクリプタの個数が決まってしまい、決められた個数分のデータ受信あるいは送信の完了するのを待っていると完了報告が大幅に遅延する可能性があることに起因する。
本発明は、上述のような事情に鑑みてなされたもので、CPUへの負荷なく、より高速なDMA転送を可能にするディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラムを提供することを目的とする。
本発明の第1の観点に係るディスクリプタ制御方法は、
メモリ上のデータを転送するダイレクトメモリアクセスを行うための情報であるディスクリプタを制御するディスクリプタ制御方法であって、
データの転送に前もって必要な情報である指示ディスクリプタ情報の領域を、転送したデータについて発生する情報である応答ディスクリプタ情報の領域から分離し、前記指示ディスクリプタ情報のみを2以上記憶領域に配置する指示ディスクリプタ設定ステップと、
前記指示ディスクリプタ設定ステップで前記記憶領域に配置された2以上の指示ディスクリプタ情報を、ダイレクトメモリアクセス制御装置にまとめて読み込む指示ディスクリプタ入力ステップと、
前記転送したデータについて発生した応答ディスクリプタ情報のみを2以上一括して記憶領域に書き込む応答ディスクリプタ書込ステップと、
を備えることを特徴とする。
本発明の第2の観点に係るダイレクトメモリ転送装置は、
データの転送に前もって必要な情報である指示ディスクリプタ情報の領域を、転送したデータについて発生する情報である応答ディスクリプタ情報の領域から分離し、前記指示ディスクリプタ情報のみを2以上記憶領域に配置する指示ディスクリプタ設定手段と、
前記指示ディスクリプタ設定手段で前記記憶領域に配置された2以上の指示ディスクリプタ情報を、ダイレクトメモリアクセス制御装置にまとめて読み込む指示ディスクリプタ入力手段と、
前記指示ディスクリプタ情報に従って転送したデータについて発生した応答ディスクリプタ情報のみを、2以上一括して記憶領域に書き込む応答ディスクリプタ書込手段と、
を備えることを特徴とする。
本発明の第3の観点に係るプログラムは、コンピュータを
データの転送に前もって必要な情報である指示ディスクリプタ情報の領域を、転送したデータについて発生する情報である応答ディスクリプタ情報の領域から分離し、前記指示ディスクリプタ情報のみを2以上記憶領域に配置する指示ディスクリプタ設定手段と、
前記指示ディスクリプタ設定手段で前記記憶領域に配置された2以上の指示ディスクリプタ情報を、ダイレクトメモリアクセス制御装置にまとめて読み込む指示ディスクリプタ入力手段と、
前記指示ディスクリプタ情報に従って転送したデータについて発生した応答ディスクリプタ情報のみを、2以上一括して記憶領域に書き込む応答ディスクリプタ書込手段
として機能させることを特徴とする。
本発明によれば、DMAの送受信ともに共通して、制御情報の通信に必要な帯域を削減することが可能であり、実際に送受信するデータの帯域を拡大することができる。
本発明では、ディスクリプタ情報のうち、DMA転送を開始するために必要な情報を指示ディスクリプタ情報という。また、DMA転送を完了したのち、CPUへ報告しなければならない情報を、応答ディスクリプタ情報という。本発明のディスクリプタ制御方法は、指示ディスクリプタ情報の領域を、応答ディスクリプタ情報の領域から分離する。そして、指示ディスクリプタ情報のみを2以上記憶領域に配置する。また、転送処理デバイスが指示ディスクリプタ情報を1転送分ずつメインメモリから読み出すのではなく、CPUが用意できている全てのディスクリプタを同時に読み出すようにする。さらに、転送処理デバイスが応答ディスクリプタ情報を1転送分ずつメインメモリに書き上げるのではなく、ある決められた時間内に発生した完了報告を同時に書き上げるようにする。
以下、本発明の実施の形態について図面を参照して詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。
(実施の形態1)
図1は、本発明に係るダイレクトメモリ転送装置の構成例を示すブロック図である。ダイレクトメモリ転送装置10は、CPU1、主記憶2、外部バス接続装置3、IOデバイス4、および外部デバイス6から構成される。外部バス接続装置3は、例えば、PCI Expressのルートコンプレックスである。PCI Expressのルートコンプレックスは、内部バス7と、I/OシリアルインターフェースであるPCI Expressバスを接続する。IOデバイス4はさらにDMAコントローラ5を含む。
DMA転送の上位システム側はCPU1、主記憶2および外部バス接続装置3から構成される。外部バス接続装置3からPCIExpressバスを経由した先にIOデバイス4が接続されており、そのIOデバイス4が外部デバイス6と通信を行う。
主記憶2はRAM(Random-Access Memory)等から構成され、DMA制御用プログラム20をロードし、CPU1の作業領域として用いられる。主記憶2には、後述する指示ディスクリプタ領域21および応答ディスクリプタ領域22が配置される。
本発明のディスクリプタ情報は、指示ディスクリプタ情報と応答ディスクリプタ情報に分離し、それぞれ別に取り扱う。本発明のディスクリプタ情報の構成の例を図2に示す。図2(a)は指示ディスクリプタ領域21の配置と構成の例を示す。図2(b)は、応答ディスクリプタ領域22の配置と構成の例を示す。指示ディスクリプタ情報をディスクリプタA、応答ディスクリプタ情報をディスクリプタBとして、それぞれのディスクリプタ情報を連続あるいはチェーンされた領域として配置している。
実施の形態1では、ディスクリプタAとディスクリプタBはそれぞれ、記憶領域に独立に配置される。ディスクリプタAは、ディスクリプタA#0〜#m(mは0または正の整数)で構成される。ディスクリプタBは、ディスクリプタB#0〜#n(nは0または正の整数)で構成される。
ディスクリプタA#i(iは0〜mのいずれか)は、転送するデータのアドレスとデータサイズ、追加機能が使用する領域、およびポインタから構成される。追加機能が使用する領域は、例えば、CPUオフロードや信頼性向上のために使用する領域である。ポインタは、次のディスクリプタA#j(j=i+1)のアドレスを示す。
ディスクリプタAはポインタによって、チェーンされている。一連の最後のディスクリプタは、ポインタが例えば先頭のディスクリプタA#0のアドレスまたは終端記号(例えばnull)である。図2(a)では、たまたまディスクリプタA#2とディスクリプタA#3が連続して配置されているが、ディスクリプタA#i同士は、別々に配置されて構わない。ディスクリプタAを読み込むIOデバイス4は、ディスクリプタAのポインタをたどって、主記憶2に配置されたディスクリプタAを次々と一括して読み込むことができる。
ディスクリプタB#i(iは0〜nのいずれか)は、データを転送した結果のステータスと、追加機能が使用する領域、およびポインタから構成される。追加機能が使用する領域は、例えば、CPUオフロードや信頼性向上のために使用する領域である。ポインタは、次のディスクリプタB#j(j=i+1)のアドレスを示す。
ディスクリプタBはポインタによって、チェーンされている。一連の最後のディスクリプタBはポインタが、例えば、先頭のディスクリプタB#0のアドレスまたは終端記号(例えばnull)である。図2(b)では、たまたまディスクリプタB#1とディスクリプタB#2が連続して配置されているが、ディスクリプタB#i同士は、別々に配置されて構わない。ディスクリプタBを読み込むCPU1は、ディスクリプタBのポインタをたどって、主記憶2に配置されたディスクリプタBを次々と一括して読み込むことができる。
図3は、本実施の形態に係るDMA転送の動作の一例を示すシーケンス図である。まず、CPU1は主記憶2上に複数の転送分のディスクリプタAを用意する(ステップS1)。そして、準備完了をIOデバイス4へ通知する(ステップS2)。準備完了通知には、ディスクリプタAの先頭(図2(a)のディスクリプタA#0)のアドレスが含まれる。
IOデバイス4は、読み出す必要がある指示ディスクリプタ領域21に対してのみ、主記憶2へリード要求を行い(ステップS3)、指示ディスクリプタ情報を取得する(ステップS4)。図3では、チェーンされた指示ディスクリプタすべてを読み込むことを、複数の線で表しているが、チェーンされた指示ディスクリプタは連続して読み込まれる。
IOデバイス4は、外部のデバイスとデータの転送を繰り返す(ステップS5)。この間、CPU1は新たに用意した指示ディスクリプタ情報をIOデバイス4に通知することができる。一方、IOデバイス4は最初の受信が完了してから、タイマのカウントを始める。タイマがタイムアウトしたタイミングで、それまでに行った転送のステータスやその他必要な情報をまとめて主記憶2へ書き込む(ステップS6)。その後、CPU1に対して受信完了通知を行う(ステップS7)。
従って、一度に読み込んだ指示ディスクリプタ情報の個数と、受信完了通知を行ったときの応答ディスクリプタ情報の個数は異なる場合がある。指示ディスクリプタ情報の書込と、応答ディスクリプタ情報の書込は同期させる必要がなく、独立して行うことができる。
以上のように、本実施の形態によれば、DMAの送受信ともに共通して、制御情報の通信に必要な帯域を削減することが可能であり、実際に送受信するデータの帯域を拡大することができる。
また、CPUの一度に準備するディスクリプタの数に依らず、自由に送受信の完了報告をまとめて行うことができる。更に、タイマのカウント閾値を変動させることによってシステムの動作を考慮した転送速度のチューニングを行うことができる。
(実施の形態2)
図4は、本発明に係るディスクリプタ情報の構成例を示す図である。実施の形態2では、実施の形態1と同様のダイレクトメモリ転送装置10の構成例を用いて、指示ディスクリプタ情報および応答ディスクリプタ情報をそれぞれ連続して配置する。
図4(a)は指示ディスクリプタ領域21の配置と構成の例を示す。図4(b)は、応答ディスクリプタ領域22の配置と構成の例を示す。指示ディスクリプタ情報をディスクリプタA、応答ディスクリプタ情報をディスクリプタBとして、それぞれのディスクリプタ情報を連続して配置している。
実施の形態2では、ディスクリプタAとディスクリプタBはそれぞれ、記憶領域に連続して配置される。ディスクリプタAは、ディスクリプタA#0〜#m(mは0または正の整数)で構成される。ディスクリプタBは、ディスクリプタB#0〜#n(nは0または正の整数)で構成される。
ディスクリプタA#i(iは0〜mのいずれか)は、転送するデータのアドレスとデータサイズ、追加機能が使用する領域から構成される。追加機能が使用する領域は、例えば、CPUオフロードや信頼性向上のために使用する領域である。実施の形態1と異なり連続した領域に配置するため、ディスクリプタA#iにポインタはない。
ディスクリプタAは連続領域に配置している。ディスクリプタAを読み込むIOデバイス4は、先頭のディスクリプタA#0から順に主記憶2に配置されたディスクリプタAを一括して読み込む。ポインタをたどってディスクリプタAを読み出す必要がないので、読み込み時間を短縮することができる。
ディスクリプタB#i(iは0〜nのいずれか)は、データを転送した結果のステータスと、追加機能が使用する領域から構成される。追加機能が使用する領域は、例えば、CPUオフロードや信頼性向上のために使用する領域である。実施の形態1と異なり連続した領域に配置するため、ディスクリプタB#iにポインタはない。
ディスクリプタBは連続領域に配置している。ディスクリプタBを読み込むCPU1は、先頭のディスクリプタB#0から順に主記憶2に配置されたディスクリプタBを一括して読み込む。ポインタをたどってディスクリプタBを読み出す必要がないので、読み込み時間を短縮することができる。
図5は、本実施の形態に係るDMA転送の動作の一例を示すシーケンス図である。図5のシーケンス図は、実施の形態1と同様のステップに同じ符号を付している。実施の形態1と異なるのは、主に、ステップT4およびステップT6である。
まず、CPU1は主記憶2上に複数の転送分のディスクリプタAを用意する(ステップS1)。そして、準備完了をIOデバイス4へ通知する(ステップS2)。準備完了通知には、ディスクリプタAの先頭(図4(a)のディスクリプタA#0)のアドレスと、指示ディスクリプタ情報のデータ量または個数が含まれる。あるいは、一連のディスクリプタAの最後に終端記号(例えばnull)などを付加して、データの末尾を表してもよい。
IOデバイス4は、読み出す必要がある指示ディスクリプタ領域21に対してのみ、主記憶2へリード要求を行い(ステップS3)、指示ディスクリプタ情報を取得する(ステップT4)。図5では、連続領域に配置した指示ディスクリプタすべてを連続して読み込むことを、中抜き太線で表している。
IOデバイス4は、外部のデバイスとデータの転送を繰り返す(ステップS5)。この間、CPU1は新たに用意した指示ディスクリプタ情報をIOデバイス4に通知することができる。一方、IOデバイス4は最初の受信が完了してから、タイマのカウントを始める。タイマがタイムアウトしたタイミングで、それまでに行った転送のステータスやその他必要な情報をまとめて主記憶2へ書き込む(ステップT6)。その後、CPU1に対して受信完了通知を行う(ステップS7)。図5では、連続領域に配置した応答ディスクリプタすべてを連続して書き込むことを、中抜き太線で表している。
実施の形態2においても、一度に読み込んだ指示ディスクリプタ情報の個数と、受信完了通知を行ったときの応答ディスクリプタ情報の個数は異なる場合がある。指示ディスクリプタ情報の書込と、応答ディスクリプタ情報の書込は同期させる必要がなく、独立して行うことができる。
以上説明したとおり、実施の形態2によれば、実施の形態1と異なり、ポインタ情報の取得とポインタをたどって、主記憶2に配置された次のディスクリプタを探す処理が不要となる。DMAの送受信ともに共通して、制御情報の通信に必要な帯域を削減することが可能であり、実際に送受信するデータの帯域を拡大することができる。
また、実施の形態2は、実施の形態1と同様に、CPUの一度に準備するディスクリプタの数に依らず、自由に送受信の完了報告をまとめて行うことができる。しかも、ポインタ情報の取得とポインタをたどって、主記憶2に配置された次のディスクリプタを探す処理が不要となるため、DMA転送に要する時間をさらに短縮することができる。また、タイマのカウント閾値を変動させることによってシステムの動作を考慮した転送速度のチューニングを行うことができる。
以上のように、本発明のダイレクトメモリ転送装置10によれば、CPUへの負荷なく、高速なDMA転送を行うことができる。
その他、本発明の好適な変形として、以下の構成が含まれる。
本発明の第1の観点に係るディスクリプタ制御方法について、
好ましくは、前記指示ディスクリプタ設定ステップは、前記2以上の指示ディスクリプタ情報を連続する記憶領域に配置することを特徴とする。
好ましくは、前記応答ディスクリプタ書込ステップは、前記転送したデータについて発生する2以上の応答ディスクリプタ情報を連続する記憶領域に書き込むことを特徴とする。
本発明の第2の観点に係るダイレクトメモリ転送装置について、
好ましくは、前記指示ディスクリプタ設定手段は、前記指示ディスクリプタ情報を連続する記憶領域に配置することを特徴とする。
好ましくは、前記応答ディスクリプタ書込手段は、前記転送したデータについて発生する応答ディスクリプタ情報を連続する記憶領域に書き込むことを特徴とする。
以上説明したように、本発明においては、DMAの送受信ともに共通して、制御情報の通信に必要な帯域を削減することが可能であり、実際に送受信するデータの帯域を拡大することができる。また、CPUの一度に準備するディスクリプタの数に依らず、自由に送受信の完了報告をまとめて行うことができる。更に、タイマのカウント閾値を変動させることによってシステムの動作を考慮した転送速度のチューニングを行うことができる。
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更及び修正が可能である。
CPU1、主記憶部2、IOデバイス4、および内部バス7などから構成される構成変更判定処理または設定流用処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するダイレクトメモリ転送装置を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでダイレクトメモリ転送装置を構成してもよい。
また、ダイレクトメモリ転送装置の機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
本発明の実施の形態1に係るダイレクトメモリ転送装置の構成例を示すブロック図である。 実施の形態1に係るディスクリプタ情報の構成の一例を示す図である。 実施の形態1に係るDMA転送の動作の一例を示すシーケンス図である。 本発明の実施の形態2に係るディスクリプタ情報の構成の一例を示す図である。 実施の形態2に係るDMA転送の動作の一例を示すシーケンス図である。 一般的なディスクリプタ情報の構成の一例を示す図である。 一般的なDMA転送の送信動作の一例を示すシーケンス図である。 一般的なDMA転送の受信動作の一例を示すシーケンス図である。
符号の説明
1 CPU
2 主記憶
3 外部バス接続装置
4 IOデバイス
5 DMAコントローラ
6 外部デバイス
7 内部バス
10 ダイレクトメモリ転送装置
20 DMA制御用プログラム
21 指示ディスクリプタ領域
22 応答ディスクリプタ領域

Claims (7)

  1. メモリ上のデータを転送するダイレクトメモリアクセスを行うための情報であるディスクリプタを制御するディスクリプタ制御方法であって、
    データの転送に前もって必要な情報である指示ディスクリプタ情報の領域を、転送したデータについて発生する情報である応答ディスクリプタ情報の領域から分離し、前記指示ディスクリプタ情報のみを2以上記憶領域に配置する指示ディスクリプタ設定ステップと、
    前記指示ディスクリプタ設定ステップで前記記憶領域に配置された2以上の指示ディスクリプタ情報を、ダイレクトメモリアクセス制御装置にまとめて読み込む指示ディスクリプタ入力ステップと、
    前記転送したデータについて発生した応答ディスクリプタ情報のみを2以上一括して記憶領域に書き込む応答ディスクリプタ書込ステップと、
    を備えることを特徴とするディスクリプタ制御方法。
  2. 前記指示ディスクリプタ設定ステップは、前記2以上の指示ディスクリプタ情報を連続する記憶領域に配置することを特徴とする請求項1に記載のディスクリプタ制御方法。
  3. 前記応答ディスクリプタ書込ステップは、前記転送したデータについて発生する2以上の応答ディスクリプタ情報を連続する記憶領域に書き込むことを特徴とする請求項1または2に記載のディスクリプタ制御方法。
  4. データの転送に前もって必要な情報である指示ディスクリプタ情報の領域を、転送したデータについて発生する情報である応答ディスクリプタ情報の領域から分離し、前記指示ディスクリプタ情報のみを2以上記憶領域に配置する指示ディスクリプタ設定手段と、
    前記指示ディスクリプタ設定手段で前記記憶領域に配置された2以上の指示ディスクリプタ情報を、ダイレクトメモリアクセス制御装置にまとめて読み込む指示ディスクリプタ入力手段と、
    前記指示ディスクリプタ情報に従って転送したデータについて発生した応答ディスクリプタ情報のみを、2以上一括して記憶領域に書き込む応答ディスクリプタ書込手段と、
    を備えることを特徴とするダイレクトメモリ転送装置。
  5. 前記指示ディスクリプタ設定手段は、前記指示ディスクリプタ情報を連続する記憶領域に配置することを特徴とする請求項4に記載のダイレクトメモリ転送装置。
  6. 前記応答ディスクリプタ書込手段は、前記転送したデータについて発生する応答ディスクリプタ情報を連続する記憶領域に書き込むことを特徴とする請求項4または5に記載のダイレクトメモリ転送装置。
  7. コンピュータを
    データの転送に前もって必要な情報である指示ディスクリプタ情報の領域を、転送したデータについて発生する情報である応答ディスクリプタ情報の領域から分離し、前記指示ディスクリプタ情報のみを2以上記憶領域に配置する指示ディスクリプタ設定手段と、
    前記指示ディスクリプタ設定手段で前記記憶領域に配置された2以上の指示ディスクリプタ情報を、ダイレクトメモリアクセス制御装置にまとめて読み込む指示ディスクリプタ入力手段と、
    前記指示ディスクリプタ情報に従って転送したデータについて発生した応答ディスクリプタ情報のみを、2以上一括して記憶領域に書き込む応答ディスクリプタ書込手段
    として機能させることを特徴とするプログラム。
JP2008026907A 2008-02-06 2008-02-06 ディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラム Expired - Fee Related JP4839489B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008026907A JP4839489B2 (ja) 2008-02-06 2008-02-06 ディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008026907A JP4839489B2 (ja) 2008-02-06 2008-02-06 ディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2009187313A true JP2009187313A (ja) 2009-08-20
JP4839489B2 JP4839489B2 (ja) 2011-12-21

Family

ID=41070480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008026907A Expired - Fee Related JP4839489B2 (ja) 2008-02-06 2008-02-06 ディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラム

Country Status (1)

Country Link
JP (1) JP4839489B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011060051A (ja) * 2009-09-11 2011-03-24 Mitsubishi Electric Corp 情報処理装置
WO2018135437A1 (ja) 2017-01-19 2018-07-26 Necプラットフォームズ株式会社 転送制御装置、転送装置、転送制御方法及び転送制御プログラム
JP2020102218A (ja) * 2018-12-21 2020-07-02 三星電子株式会社Samsung Electronics Co.,Ltd. アプリケーション関数を装置にオフロードするためのシステム及び方法
US11079972B2 (en) 2018-07-23 2021-08-03 Renesas Electronics Corporation Semiconductor device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04177445A (ja) * 1990-11-08 1992-06-24 Nec Corp ディスクリプタ制御方式
JP2006195823A (ja) * 2005-01-14 2006-07-27 Fujitsu Ltd Dma装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04177445A (ja) * 1990-11-08 1992-06-24 Nec Corp ディスクリプタ制御方式
JP2006195823A (ja) * 2005-01-14 2006-07-27 Fujitsu Ltd Dma装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011060051A (ja) * 2009-09-11 2011-03-24 Mitsubishi Electric Corp 情報処理装置
WO2018135437A1 (ja) 2017-01-19 2018-07-26 Necプラットフォームズ株式会社 転送制御装置、転送装置、転送制御方法及び転送制御プログラム
US11023399B2 (en) 2017-01-19 2021-06-01 Nec Platforms, Ltd. Transfer control device, transfer device, transfer control method, and transfer control program
US11079972B2 (en) 2018-07-23 2021-08-03 Renesas Electronics Corporation Semiconductor device
JP2020102218A (ja) * 2018-12-21 2020-07-02 三星電子株式会社Samsung Electronics Co.,Ltd. アプリケーション関数を装置にオフロードするためのシステム及び方法
JP7506472B2 (ja) 2018-12-21 2024-06-26 三星電子株式会社 アプリケーション関数を装置にオフロードするためのシステム及び方法

Also Published As

Publication number Publication date
JP4839489B2 (ja) 2011-12-21

Similar Documents

Publication Publication Date Title
US9934160B1 (en) Bit-mapped DMA and IOC transfer with dependency table comprising plurality of index fields in the cache for DMA transfer
JP2006195823A (ja) Dma装置
US20090138570A1 (en) Method for setting parameters and determining latency in a chained device system
CN111159075B (zh) 数据传输方法和数据传输装置
JP5637145B2 (ja) バスモニタ回路及びバスモニタ方法
JP2006338538A (ja) ストリームプロセッサ
JP4839489B2 (ja) ディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラム
JP2006293927A (ja) ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi
JP2007034392A (ja) 情報処理装置及びデータ処理方法
EP1508100A2 (en) Inter-chip processor control plane
US20050172063A1 (en) Scalable bus structure
US9128924B2 (en) Method and apparatus for wireless broadband systems direct data transfer
US20130238881A1 (en) Data transmission device, data transmission method, and computer program product
JP5360594B2 (ja) Dma転送装置及び方法
CN115777098A (zh) 通过循环fifo分散和聚集流式传输数据
US20190391840A1 (en) Memory module
CN110764710A (zh) 低延迟高iops的数据访问方法与存储系统
JP2006285724A (ja) 情報処理装置および情報処理方法
US20100153610A1 (en) Bus arbiter and bus system
US11513852B2 (en) Data transferring apparatus and method for transferring data with overlap
WO2023115319A1 (zh) 一种数据存储方法、存储装置及设备
CN113568665B (zh) 一种数据处理装置
US20230176932A1 (en) Processor, information processing apparatus, and information processing method
CN118567566A (zh) 指令处理方法、电子设备及非瞬时计算机可读取记录媒体
JP2005333481A (ja) データ転送装置及び通信データ処理システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110524

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110722

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110916

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141014

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees