(57)【要約】【課題】  情報処理システムにおいて、ダイレクトメモリアクセス（ＤＭＡ）によるデータ転送の効率を向上させる。【解決手段】  ＣＰＵ１１の制御プログラム１２ａは、データ３２およびデータ３２のＤＭＡ処理の制御に必要なディスクリプタ３１をまとめて情報ブロック３０としてメモリ１２上に設定して（ステップ２０１）、ＤＭＡコントローラ１３を起動する（ステップ２０２）。起動されたＤＭＡコントローラ１３は、メモリ１２から情報ブロック３０を読み出してディスクリプタ３１を抽出し（ステップ２０４）、ディスクリプタ３１を解析して、Ｉ／Ｏアドレス３１ａ、転送データサイズ３１ｂ等の制御情報を認識し、目的のＩ／Ｏデバイス２０にデータ３２を転送する（ステップ２０５）。転送完了後、割り込みにて、ＣＰＵ１１に転送終了通知を行う（ステップ２０６）。【選択図】図１
2006209448.tif 000002
【特許請求の範囲】
【請求項１】
処理装置からダイレクトメモリアクセス制御装置に与えられた制御情報に従って前記ダイレクトメモリアクセス制御装置がメモリ上のデータを入出力デバイスへ転送するダイレクトメモリアクセス制御方法であって、
前記処理装置が、前記制御情報および前記データからなる情報ブロックを前記メモリ上に設定するステップと、
前記処理装置から前記ダイレクトメモリアクセス制御装置に対して前記情報ブロックのアドレス情報を与えるステップと、
前記ダイレクトメモリアクセス制御装置が、前記アドレス情報に基づいて前記メモリから前記情報ブロックを読み出して前記制御情報を抽出するステップと、
前記ダイレクトメモリアクセス制御装置が、前記制御情報に基づいて前記情報ブロック内の前記データを前記入出力デバイスに転送するステップと、
を含むことを特徴とするダイレクトメモリアクセス制御方法。
【請求項２】
請求項１記載のダイレクトメモリアクセス制御方法において、前記制御情報は、前記データの送信先アドレスと、前記データのサイズと、を含むことを特徴とするダイレクトメモリアクセス制御方法。
【請求項３】
処理装置から与えられた制御情報に従ってメモリ上のデータを入出力デバイスへ転送するダイレクトメモリアクセス制御装置であって、
前記制御情報および前記データを含む情報ブロックの前記メモリ上におけるアドレス情報が前記処理装置から設定されるアドレス設定手段と、
前記メモリから読み出され、前記制御情報を含む前記情報ブロックの一部が格納されるバッファと、
前記バッファ上の前記情報ブロックから前記制御情報を抽出し、前記制御情報に基づいて前記情報ブロックに含まれる前記データの前記入出力デバイスへの転送を実行するデータ転送制御手段と、
を含むことを特徴とするダイレクトメモリアクセス制御装置。
【請求項４】
処理装置と、メモリと、前記処理装置から与えられる制御情報に基づいて、前記メモリ上のデータを入出力デバイスに転送するダイレクトメモリアクセス制御装置と、を含む情報処理システムであって、
前記処理装置は、前記制御情報および前記データを含む情報ブロックを前記メモリ上に設定する操作と、前記情報ブロックのアドレス情報を前記ダイレクトメモリアクセス制御装置に伝達する操作とを実行するための制御論理を含み、
前記ダイレクトメモリアクセス制御装置は、前記処理装置から伝達される前記アドレス情報に基づいて前記情報ブロックを前記メモリから読み出し、前記情報ブロックに含まれる前記制御情報を抽出し、前記制御情報に基づいて前記情報ブロックに含まれる前記データを前記入出力デバイスに転送するデータ転送制御手段を備えた
ことを特徴とする情報処理システム。
【請求項５】
メモリから入出力デバイスへのデータの転送処理が発生したとき、前記転送処理をダイレクトメモリアクセス制御装置に実行させる処理装置を制御するプログラムであって、
前記転送処理に必要な制御情報と前記データとを含む情報ブロックを前記メモリ上に設定する操作と、
前記情報ブロックのアドレス情報を与えて前記ダイレクトメモリアクセス制御装置を起動する操作と、
を前記処理装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダイレクトメモリアクセス制御技術、情報処理技術、プログラムに関し、特に、高速データ転送を必要とする情報処理システムにおけるダイレクトメモリアクセス（ＤＭＡ：Direct Memory Access）技術等に適用して有効な技術に関する。
【背景技術】
【０００２】
コンピュータシステムにおいて、メモリとメモリの間、またはメモリと入出力デバイス（Ｉ／Ｏデバイス）の間のデータ転送を効率よく行うことは、コンピュータシステムの性能を高めるために重要な課題であるが、この課題を解決するための方法としてＤＭＡが知られている（例えば、特許文献１参照）。
【０００３】
Ｉ／Ｏデバイスは、メモリに対してデータを転送したり、メモリから転送されたデータを受け取る装置であり、記憶装置やインタフェース装置がこれに含まれる。また、ＤＭＡは、中央処理装置（ＣＰＵ）がコンピュータシステム内のデータ転送を制御する代わりに、ＤＭＡ制御回路と呼ばれる専用のハードウェアがＣＰＵからの命令に基づいてデータ転送を制御する仕組みである。
【０００４】
この場合、ＣＰＵ、メモリおよびＤＭＡ制御回路は、たとえばメモリハブを介して相互に接続され、ＣＰＵ、メモリおよびＤＭＡ制御回路は、このメモリハブを介してデータの授受を行うことが考えられる。
【０００５】
ＣＰＵからＤＭＡ制御回路に発行される命令はディスクリプタと呼ばれ、ＣＰＵがディスクリプタをメモリ上に用意した後に、ＤＭＡ制御回路がメモリからディスクリプタを自律的に読み出して参照する方法が広く用いられている。
【０００６】
すなわち、従来では、ＣＰＵ配下のローカルのメモリにＤＭＡで転送されるデータとは別にＤＭＡの制御情報（転送元のアドレス、転送先のアドレス、転送サイズ等）が入っているディスクリプタが展開される。
【０００７】
そして、ＣＰＵによってＤＭＡが起動されると、ＤＭＡ制御回路は、先ずこのディスクリプタをリードして制御情報を解析し、転送元のアドレス（ローカルのメモリ）で特定されるデータを、ディスクリプタ指定のデータサイズ分、Ｉ／Ｏデバイスに転送する。
【０００８】
上述した動作シーケンスから分かるように、ＣＰＵは、ディスクリプタを用意してＤＭＡ制御回路を起動すると、割り込みによってＤＭＡの終了通知が行われるまでのデータ転送が行われている間は、別の処理を行うことができる。これにより、ＣＰＵはデータ転送という比較的単純な処理から解放されて、より複雑な処理に時間を割くことができるので、システムの性能が向上する。
【０００９】
ところが、上述のように、ディスクリプタとデータを別々にメモリ上に用意する従来のＤＭＡ制御技術には、次のような技術的課題がある。
すなわち、上述の従来技術の場合、ＤＭＡ制御回路がディスクリプタを読み出すための「ディスクリプタ・フェッチ」と、ＤＭＡ転送対象のデータを読み出すための「データ・フェッチ」で２回のメモリリードが発生することになるが、どの様なインタフェースでも一般的にＤＭＡで行うような長いデータ転送のリードをメモリハブを経由して行う場合はメモリハブでデータのプリフェッチを行う事等からデータ転送に伴うオーバヘッドが大きくなる。
【００１０】
なお、上述の特許文献１には、ＤＭＡ処理装置の各機能を命令語に対応付け、ＤＭＡ処理装置のプログラム格納領域に命令語より成る転送処理手続を外部から入力するようにし、入力された命令語に対応する機能に従って転送処理を行うようにすることで、ＤＭＡ処理装置の機能をプログラムにて変更可能にする技術が開示されているが、上述の技術的課題については認識されていない。
【特許文献１】特開平０５−２１６８０８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、情報処理システムにおいて、ＤＭＡによるデータの転送効率を向上させることにある。
【課題を解決するための手段】
【００１２】
本発明の第１の観点は、処理装置からダイレクトメモリアクセス制御装置に与えられた制御情報に従って前記ダイレクトメモリアクセス制御装置がメモリ上のデータを入出力デバイスへ転送するダイレクトメモリアクセス制御方法であって、
前記処理装置が、前記制御情報および前記データからなる情報ブロックを前記メモリ上に設定するステップと、
前記処理装置から前記ダイレクトメモリアクセス制御装置に対して前記情報ブロックのアドレス情報を与えるステップと、
前記ダイレクトメモリアクセス制御装置が、前記アドレス情報に基づいて前記メモリから前記情報ブロックを読み出して前記制御情報を抽出するステップと、
前記ダイレクトメモリアクセス制御装置が、前記制御情報に基づいて前記情報ブロック内の前記データを前記入出力デバイスに転送するステップと、
を含むダイレクトメモリアクセス制御方法を提供する。
【００１３】
本発明の第２の観点は、第１の観点記載のダイレクトメモリアクセス制御方法において、前記制御情報は、前記データの送信先アドレスと、前記データのサイズと、を含むダイレクトメモリアクセス制御方法を提供する。
【００１４】
本発明の第３の観点は、処理装置から与えられた制御情報に従ってメモリ上のデータを入出力デバイスへ転送するダイレクトメモリアクセス制御装置であって、
前記制御情報および前記データを含む情報ブロックの前記メモリ上におけるアドレス情報が前記処理装置から設定されるアドレス設定手段と、
前記メモリから読み出され、前記制御情報を含む前記情報ブロックの一部が格納されるバッファと、
前記バッファ上の前記情報ブロックから前記制御情報を抽出し、前記制御情報に基づいて前記情報ブロックに含まれる前記データの前記入出力デバイスへの転送を実行するデータ転送制御手段と、
を含むダイレクトメモリアクセス制御装置を提供する。
【００１５】
本発明の第４の観点は、処理装置と、メモリと、前記処理装置から与えられる制御情報に基づいて、前記メモリ上のデータを入出力デバイスに転送するダイレクトメモリアクセス制御装置と、を含む情報処理システムであって、
前記処理装置は、前記制御情報および前記データを含む情報ブロックを前記メモリ上に設定する操作と、前記情報ブロックのアドレス情報を前記ダイレクトメモリアクセス制御装置に伝達する操作とを実行するための制御論理を含み、
前記ダイレクトメモリアクセス制御装置は、前記処理装置から伝達される前記アドレス情報に基づいて前記情報ブロックを前記メモリから読み出し、前記情報ブロックに含まれる前記制御情報を抽出し、前記制御情報に基づいて前記情報ブロックに含まれる前記データを前記入出力デバイスに転送するデータ転送制御手段を備えた
情報処理システムを提供する。
【００１６】
本発明の第５の観点は、メモリから入出力デバイスへのデータの転送処理が発生したとき、前記転送処理をダイレクトメモリアクセス制御装置に実行させる処理装置を制御するプログラムであって、
前記転送処理に必要な制御情報と前記データとを含む情報ブロックを前記メモリ上に設定する操作と、
前記情報ブロックのアドレス情報を与えて前記ダイレクトメモリアクセス制御装置を起動する操作と、
を前記処理装置に実行させるプログラムを提供する。
【００１７】
上記した本発明によれば、ダイレクトメモリアクセス制御装置は、転送対象のデータおよび当該データのＤＭＡ転送処理に必要な制御情報を、情報ブロックとしてまとめて一回のメモリアクセスにてメモリから取得することができ、制御情報とデータとを別々にアクセスする従来技術の場合に比較して、メモリアクセスの所要時間を短縮することができる。この結果、情報処理システムにおいて、ＤＭＡによるデータの転送効率を向上させることができる。
【発明の効果】
【００１８】
本発明によれば、情報処理システムにおいて、ＤＭＡによるデータの転送効率を向上させることができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照しながら、本発明の実施の形態について詳細に説明する。
図１は、本発明の一実施の形態である情報処理システムの作用の一例を示すシーケンス図、図２は、本発明の一実施の形態である情報処理システムにおけるＤＭＡにて用いられる情報ブロックの構成の一例を示す概念図、図３は、本発明の一実施の形態である情報処理システムの構成の一例を示すブロック図、図４は、本実施の形態の情報処理システムに含まれるＤＭＡコントローラの構成の一例を示す概念図、図５は、本実施の形態のＤＭＡコントローラの作用の一例を示すフローチャート、図６は、本実施の形態の情報処理システムの全体の作用の一例を示すシーケンス図、図７は、本実施の形態の情報処理システムにおけるＣＰＵの動作の一例を示すフローチャートである。
【００２０】
図３に例示されるように、本実施の形態の情報処理システム１０は、ＣＰＵ（中央処理装置）１１、メモリ１２、ＤＭＡコントローラ１３、メモリハブ１４を含んでいる。
ＤＭＡコントローラ１３は、入出力インタフェース１５を介してＩ／Ｏデバイス２０に接続されている。
【００２１】
メモリ１２には、ＣＰＵ１１にて実行されるプログラムやデータが格納され、このプログラムをＣＰＵ１１が実行することで、所望の情報処理が行われる。
また、メモリ１２とＩ／Ｏデバイス２０との間におけるデータ転送が必要な場合、後述のように、ＣＰＵ１１がＤＭＡコントローラ１３を制御することで、当該ＣＰＵ１１の代わりにＤＭＡコントローラ１３が当該データ転送を処理する。
【００２２】
以下では、ＣＰＵ１１の代わりにＤＭＡコントローラ１３がメモリ１２とＩ／Ｏデバイス２０との間で行うデータ転送処理をＤＭＡ（ダイレクトメモリアクセス）と記す。
本実施の形態の場合、メモリ１２には、ＣＰＵ１１がＤＭＡコントローラ１３を制御してＤＭＡを実行させるための制御プログラム１２ａ（制御論理）が格納されている。この制御プログラム１２ａは、図６や図７に例示される処理をＣＰＵ１１に行わせる。
【００２３】
本実施の形態の場合、制御プログラム１２ａは、図２に例示されるように、転送対象のデータ３２と、当該データ３２のＤＭＡ転送制御に必要な制御情報であるディスクリプタ３１とが一体となった情報ブロック３０をメモリ１２上に生成する機能を備えている。
【００２４】
そして、この情報ブロック３０のメモリ１２上における格納領域の先頭アドレス（以下、情報ブロックアドレス３０ａと記す）をＤＭＡコントローラ１３に与えて、ＤＭＡを行わせる。
【００２５】
図４に例示されるように、本実施の形態のＤＭＡコントローラ１３は、メモリインタフェース１３ａ、Ｉ／Ｏインタフェース１３ｂ、ディスクリプタフェッチ回路１３ｃ、ディスクリプタバッファ１３ｄ、ステートマシン回路１３ｅ、データ転送制御ブロック１３ｇ、およびＤＭＡ開始制御レジスタ１３ｆ、ＤＭＡアドレスポインタレジスタ１３ｋ（アドレス設定手段）を備えている。
【００２６】
メモリインタフェース１３ａはメモリハブ１４に接続されている。Ｉ／Ｏインタフェース１３ｂは入出力インタフェース１５を介してＩ／Ｏデバイス２０に接続されている。
ＤＭＡ開始制御レジスタ１３ｆには、ＣＰＵ１１からＤＭＡ起動コマンドが設定される。
【００２７】
ＤＭＡアドレスポインタレジスタ１３ｋには、ＣＰＵ１１によって、メモリ１２上における情報ブロック３０の格納位置を示す情報ブロックアドレス３０ａが設定される。
ステートマシン回路１３ｅは、ＤＭＡ開始制御レジスタ１３ｆに設定されたコマンドにて起動されると、ＤＭＡアドレスポインタレジスタ１３ｋに設定された情報ブロックアドレス３０ａにて特定されるメモリ１２の領域から情報ブロック３０を読み出すように、ＤＭＡコントローラ１３の全体を制御する。
【００２８】
ディスクリプタフェッチ回路１３ｃは、メモリハブ１４およびメモリインタフェース１３ａを通じてメモリ１２から読み出される情報ブロック３０のうち、ディスクリプタ３１を含む情報ブロック３０の先頭部分をディスクリプタバッファ１３ｄに格納する。
【００２９】
ステートマシン回路１３ｅは、ディスクリプタバッファ１３ｄに格納された情報ブロック３０に含まれるディスクリプタ３１を抽出して解析し、データ転送制御ブロック１３ｇにデータ転送を指示し、データ転送制御ブロック１３ｇは、ステートマシン回路１３ｅからの指示を受けて、メモリインタフェース１３ａ（メモリ１２）とＩ／Ｏインタフェース１３ｂ（Ｉ／Ｏデバイス２０）との間におけるデータ転送を行う。
【００３０】
データ転送制御ブロック１３ｇは、メモリ転送制御回路１３ｈ、データバッファ１３ｉ、およびＩ／Ｏデバイス転送制御回路１３ｊを備える。
メモリ転送制御回路１３ｈは、ステートマシン回路１３ｅから起動され、メモリインタフェース１３ａを通じてメモリ１２とデータバッファ１３ｉの間でデータ転送を行う。
【００３１】
Ｉ／Ｏデバイス転送制御回路１３ｊは、ステートマシン回路１３ｅから起動され、Ｉ／Ｏインタフェース１３ｂを通じてデータバッファ１３ｉとＩ／Ｏデバイス２０との間でデータ転送を行う。
【００３２】
本実施の形態の場合、ディスクリプタフェッチ回路１３ｃは、メモリハブ１４およびメモリインタフェース１３ａを通じてメモリ１２からデータバッファ１３ｉに読み出される情報ブロック３０のうち、ディスクリプタ３１を含む情報ブロック３０の先頭部分をディスクリプタバッファ１３ｄに格納する。
【００３３】
すなわち、情報ブロック３０をメモリインタフェース１３ａを介してメモリ１２からデータバッファ１３ｉに読み出す際に、ディスクリプタ３１を含む情報ブロック３０の先頭部分は並行してディスクリプタフェッチ回路１３ｃに格納される。
【００３４】
以下、本実施の形態の作用の一例について説明する。
図１に例示されるように、メモリ１２上のデータを外部のＩ／Ｏデバイス２０にＤＭＡ転送する場合、制御プログラム１２ａにて制御されるＣＰＵ１１は、ディスクリプタ３１およびデータ３２からなる情報ブロック３０を生成してメモリ１２上に格納する（ステップ２０１）。
【００３５】
そして、メモリ１２上における情報ブロック３０の格納領域の先頭アドレスである情報ブロックアドレス３０ａをＤＭＡアドレスポインタレジスタ１３ｋに設定するとともに、ＤＭＡ開始制御レジスタ１３ｆにライトコマンド（メモリ１２からＩ／Ｏデバイス２０へのデータ転送命令）を書き込むことで、ＤＭＡコントローラ１３を起動する（ステップ２０２）。
【００３６】
この起動を受けたＤＭＡコントローラ１３は、ＤＭＡアドレスポインタレジスタ１３ｋに設定された情報ブロックアドレス３０ａに基づいて、メモリ１２をアクセスして情報ブロック３０を読み出す（ステップ２０３）。
【００３７】
そして、読み出された情報ブロック３０からディスクリプタ３１を抽出して解析し（ステップ２０４）、データ３２を、Ｉ／Ｏアドレス３１ａで特定される目的のＩ／Ｏデバイス２０に対して転送する（ステップ２０５）。
【００３８】
このデータ転送に際して、転送データサイズ３１ｂで特定されるサイズのデータ３２の転送処理が完了すると、たとえば、ＣＰＵ１１に対する割り込み処理にて、ＤＭＡの終了通知を行う（ステップ２０６）。
【００３９】
この時の、ＤＭＡコントローラ１３の動作をより詳細に例示したものが図５のフローチャートである。
すなわち、ＤＭＡコントローラ１３は、ＤＭＡ開始制御レジスタ１３ｆを監視しつつ待機し（ステップ１０１）、ＣＰＵ１１からＤＭＡ開始制御レジスタ１３ｆにライトコマンドが書き込まれると、ＤＭＡアドレスポインタレジスタ１３ｋから情報ブロックアドレス３０ａを読み出して（ステップ１０２）、この情報ブロックアドレス３０ａに基づいて、メモリ１２から情報ブロック３０を読み出す（ステップ１０３）。
【００４０】
この時、情報ブロック３０は、データバッファ１３ｉに読み込まれるとともに、情報ブロック３０の先頭部分のディスクリプタ３１は、並行してディスクリプタフェッチ回路１３ｃによってディスクリプタバッファ１３ｄに読み込まれる。
【００４１】
そして、ステートマシン回路１３ｅは、ディスクリプタバッファ１３ｄのディスクリプタ３１を解析して、Ｉ／Ｏアドレス３１ａおよび転送データサイズ３１ｂ（Ｍ）の情報を特定し（ステップ１０４）、このＩ／Ｏアドレス３１ａおよび転送データサイズ３１ｂに基づいて、データバッファ１３ｉからＩ／Ｏアドレス３１ａにて特定される目的のＩ／Ｏデバイス２０に対してデータ３２の転送を実行しつつ（ステップ１０５、ステップ１０６）、転送サイズをチェックする（ステップ１０７）。
【００４２】
そして、転送済みの累積データサイズＮが転送データサイズ３１ｂで指定されたデータサイズＭと等しくなった時に、割り込み等の方法でＣＰＵ１１に対して転送終了通知を行う（ステップ１０８）。
【００４３】
なお、Ｉ／Ｏデバイス２０からメモリ１２へのＤＭＡの場合には、図６の下側に例示されるような処理が行われる。
すなわち、ＣＰＵ１１は、メモリ１２上に情報ブロック３０の格納領域を確保し（ステップ２１１）、情報ブロック３０のディスクリプタ３１に送信元のＩ／Ｏデバイス２０を特定する送信元アドレスおよび転送データサイズ３１ｂを設定し、さらにＤＭＡアドレスポインタレジスタ１３ｋに情報ブロックアドレス３０ａを設定した後、ＤＭＡ開始制御レジスタ１３ｆにリードコマンド（Ｉ／Ｏデバイス２０からメモリ１２へのデータ転送命令）を設定してＤＭＡコントローラ１３を起動する（ステップ２１２）。
【００４４】
このＤＭＡ開始制御レジスタ１３ｆへのリードコマンドの設定を契機に、ＤＭＡコントローラ１３は、メモリ１２から情報ブロック３０のディスクリプタ３１を読み出して（ステップ２１３）、解析し（ステップ２１４）、Ｉ／Ｏデバイス２０からデータバッファ１３ｉに転送データを読み出して（ステップ２１５）、メモリ１２のデータ３２の領域に書き込む（ステップ２１６）。
【００４５】
そして、転送が終了すると、割り込みによりＣＰＵ１１に転送終了を通知する（ステップ２１７）。
上述のような、メモリ１２からＩ／Ｏデバイス２０へのデータ転送（ライト転送）処理、およびＩ／Ｏデバイス２０からメモリ１２へのデータ転送（リード転送）処理におけるＣＰＵ１１の動作を図７のフローチャートに示す。
【００４６】
まず、ライト転送（メモリ１２からＩ／Ｏデバイス２０へのデータ転送）か否かを判別し（ステップ２００）、ライト転送の場合には、メモリ１２上に情報ブロック３０を格納する（ステップ２０１ａ）。そして、情報ブロック３０の中のディスクリプタ３１の転送データサイズ３１ｂに転送バイト長さ（Ｍ）を設定し（ステップ２０１ｂ）、さらにＩ／Ｏアドレス３１ａには、転送先のＩ／Ｏデバイス２０を特定するＩ／Ｏアドレス３１ａを設定する（ステップ２０１ｃ）。
【００４７】
その後、ＤＭＡアドレスポインタレジスタ１３ｋに情報ブロックアドレス３０ａを設定し（ステップ２０２ａ）、ＤＭＡ開始制御レジスタ１３ｆにライトコマンドを設定することでＤＭＡコントローラ１３を起動した後（ステップ２０２ｂ）、別の処理に移行する（ステップ２２０）。
【００４８】
また、上述のステップ２００で、ライト転送ではない（リード転送）と判定された場合には、メモリ１２上に情報ブロック３０を格納領域を確保する（ステップ２１１ａ）。そして、情報ブロック３０の格納領域におけるディスクリプタ３１の領域に転送データサイズ３１ｂに転送バイト長さ（Ｍ）を設定し（ステップ２１１ｂ）、さらにＩ／Ｏアドレス３１ａの領域には、転送先のＩ／Ｏデバイス２０を特定するＩ／Ｏアドレス３１ａを設定する（ステップ２１１ｃ）。
【００４９】
その後、ＤＭＡアドレスポインタレジスタ１３ｋに情報ブロックアドレス３０ａを設定し（ステップ２１２ａ）、ＤＭＡ開始制御レジスタ１３ｆにライトコマンドを設定することでＤＭＡコントローラ１３を起動した後（ステップ２０２ｂ）、別の処理に移行する（ステップ２２０）。
【００５０】
上述の別の処理の間に割り込み等により、ＤＭＡコントローラ１３の側からＤＭＡ終了の通知を受けることは上述のとおりである。
以上説明したように、本実施の形態によれば、情報ブロック３０の中に、データ３２および当該データ３２のＤＭＡ処理の制御に必要なディスクリプタ３１をまとめた状態でメモリ１２に格納し、ＤＭＡコントローラ１３の側からメモリ１２への一回の読み出しアクセスにてこの情報ブロック３０を読み出すので、ディスクリプタ３１とデータ３２とを別個にメモリ１２から読み出す場合のオーバーヘッドの発生が回避され、メモリ１２からＩ／Ｏデバイス２０へのＤＭＡ処理を短時間に効率よく実行することが可能になる。
【００５１】
情報処理システム１０のＤＭＡコントローラ１３には、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等の記憶装置およびインタフェース装置の他に、別のＤＭＡコントローラもＩ／Ｏデバイス２０として接続することができる。
【００５２】
また、情報処理システム１０の一例としては、ストレージ装置が挙げられる。ストレージ装置は、ホストコンピュータのような複数のアクセス装置により共用される記憶装置と、アクセス装置と記憶装置の間のデータ転送を制御するストレージ制御装置からなる。この場合、記憶装置がＩ／Ｏデバイス２０に対応し、ストレージ制御装置が情報処理システム１０に対応する。本発明をストレージ装置に適用することで、ストレージ制御装置から記憶装置へのＤＭＡによるデータ転送が効率化される。
なお、本発明は、上述の実施の形態に例示した構成に限らず、その趣旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【００５３】
（付記１）  処理装置からダイレクトメモリアクセス制御装置に与えられた制御情報に従って前記ダイレクトメモリアクセス制御装置がメモリ上のデータを入出力デバイスへ転送するダイレクトメモリアクセス制御方法であって、
前記処理装置が、前記制御情報および前記データからなる情報ブロックを前記メモリ上に設定するステップと、
前記処理装置から前記ダイレクトメモリアクセス制御装置に対して前記情報ブロックのアドレス情報を与えるステップと、
前記ダイレクトメモリアクセス制御装置が、前記アドレス情報に基づいて前記メモリから前記情報ブロックを読み出して前記制御情報を抽出するステップと、
前記ダイレクトメモリアクセス制御装置が、前記制御情報に基づいて前記情報ブロック内の前記データを前記入出力デバイスに転送するステップと、
を含むことを特徴とするダイレクトメモリアクセス制御方法。
【００５４】
（付記２）
付記１記載のダイレクトメモリアクセス制御方法において、前記制御情報は、前記データの送信先アドレスと、前記データのサイズと、を含むことを特徴とするダイレクトメモリアクセス制御方法。
【００５５】
（付記３）
付記１記載のダイレクトメモリアクセス制御方法において、前記処理装置および前記メモリおよび前記ダイレクトメモリアクセス制御装置は、メモリハブを介して相互に情報の授受を行うことを特徴とするダイレクトメモリアクセス制御方法。
【００５６】
（付記４）
処理装置から与えられた制御情報に従ってメモリ上のデータを入出力デバイスへ転送するダイレクトメモリアクセス制御装置であって、
前記制御情報および前記データを含む情報ブロックの前記メモリ上におけるアドレス情報が前記処理装置から設定されるアドレス設定手段と、
前記メモリから読み出され、前記制御情報を含む前記情報ブロックの一部が格納されるバッファと、
前記バッファ上の前記情報ブロックから前記制御情報を抽出し、前記制御情報に基づいて前記情報ブロックに含まれる前記データの前記入出力デバイスへの転送を実行するデータ転送制御手段と、
を含むことを特徴とするダイレクトメモリアクセス制御装置。
【００５７】
（付記５）
付記４記載のダイレクトメモリアクセス制御装置において、前記制御情報は、前記データの送信先アドレスと、前記データのサイズと、を含むことを特徴とするダイレクトメモリアクセス制御装置。
【００５８】
（付記６）
付記４記載のダイレクトメモリアクセス制御装置において、前記ダイレクトメモリアクセス制御装置は、メモリハブを介して前記処理装置および前記メモリに接続されていることを特徴とするダイレクトメモリアクセス制御装置。
【００５９】
（付記７）
処理装置と、メモリと、前記処理装置から与えられる制御情報に基づいて、前記メモリ上のデータを入出力デバイスに転送するダイレクトメモリアクセス制御装置と、を含む情報処理システムであって、
前記処理装置は、前記制御情報および前記データを含む情報ブロックを前記メモリ上に設定する操作と、前記情報ブロックのアドレス情報を前記ダイレクトメモリアクセス制御装置に伝達する操作とを実行するための制御論理を含み、
前記ダイレクトメモリアクセス制御装置は、前記処理装置から伝達される前記アドレス情報に基づいて前記情報ブロックを前記メモリから読み出し、前記情報ブロックに含まれる前記制御情報を抽出し、前記制御情報に基づいて前記情報ブロックに含まれる前記データを前記入出力デバイスに転送するデータ転送制御手段を備えた
ことを特徴とする情報処理システム。
【００６０】
（付記８）
付記７記載の情報処理システムにおいて、
前記制御情報は、前記データの送信先アドレスと、前記データのサイズと、を含むことを特徴とする情報処理システム。
【００６１】
（付記９）
付記７記載の情報処理システムにおいて、
前記処理装置および前記メモリおよび前記ダイレクトメモリアクセス制御装置が接続されるメモリハブをさらに備え、前記処理装置および前記メモリおよび前記ダイレクトメモリアクセス制御装置は前記メモリハブを介して相互に情報の授受を行うことを特徴とする情報処理システム。
【００６２】
（付記１０）
メモリから入出力デバイスへのデータの転送処理が発生したとき、前記転送処理をダイレクトメモリアクセス制御装置に実行させる処理装置を制御するプログラムであって、
前記転送処理に必要な制御情報と前記データとを含む情報ブロックを前記メモリ上に設定する操作と、
前記情報ブロックのアドレス情報を与えて前記ダイレクトメモリアクセス制御装置を起動する操作と、
を前記処理装置に実行させることを特徴とするプログラム。
【００６３】
（付記１１）
付記１０記載のプログラムにおいて、
前記制御情報は、前記データの送信先アドレスと、前記データのサイズと、を含むことを特徴とするプログラム。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施の形態である情報処理システムの作用の一例を示すシーケンス図である。
【図２】本発明の一実施の形態である情報処理システムにおけるＤＭＡにて用いられる情報ブロックの構成の一例を示す概念図である。
【図３】本発明の一実施の形態である情報処理システムの構成の一例を示すブロック図である。
【図４】本発明の一実施の形態である情報処理システムに含まれるＤＭＡコントローラの構成の一例を示す概念図である。
【図５】本発明の一実施の形態であるＤＭＡコントローラの作用の一例を示すフローチャートである。
【図６】本発明の一実施の形態である情報処理システムの全体の作用の一例を示すシーケンス図である。
【図７】本発明の一実施の形態である情報処理システムにおけるＣＰＵの動作の一例を示すフローチャートである。
【符号の説明】
【００６５】
１０  情報処理システム
１１  ＣＰＵ
１２  メモリ
１２ａ  制御プログラム
１３  ＤＭＡコントローラ
１３ａ  メモリインタフェース
１３ｂ  Ｉ／Ｏインタフェース
１３ｃ  ディスクリプタフェッチ回路
１３ｄ  ディスクリプタバッファ
１３ｅ  ステートマシン回路
１３ｆ  ＤＭＡ開始制御レジスタ
１３ｇ  データ転送制御ブロック
１３ｈ  メモリ転送制御回路
１３ｉ  データバッファ
１３ｊ  Ｉ／Ｏデバイス転送制御回路
１３ｋ  ＤＭＡアドレスポインタレジスタ
１４  メモリハブ
１５  入出力インタフェース
２０  Ｉ／Ｏデバイス
３０  情報ブロック
３０ａ  情報ブロックアドレス
３１  ディスクリプタ
３１ａ  Ｉ／Ｏアドレス
３１ｂ  転送データサイズ（Ｍ）
３２  データ
【図１】
2006209448.tif 000003
【図２】
2006209448.tif 000004
【図３】
2006209448.tif 000005
【図４】
2006209448.tif 000006
【図５】
2006209448.tif 000007
【図６】
2006209448.tif 000008
【図７】
2006209448.tif 000009