【手続補正書】
【提出日】平成22年3月19日(2010.3.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
情報処理系の第１記憶部と情報転送系の第２記憶部との間で情報をダイレクトメモリアクセス（ＤＭＡ）転送する情報処理装置であって、
前記情報処理系は、
前記情報を保存する第１記憶部と、
当該装置を制御する制御部とを有し、
前記情報転送系は、
前記情報の前記第１記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を保存する第２記憶部と、
前記第２記憶部に保存されたディスクリプタ情報に基づいて、前記第１記憶部と当該第２記憶部との間で前記情報をＤＭＡ転送するＤＭＡ転送部とを有し、
前記ＤＭＡ転送部は、
ＤＭＡ転送した前記情報に係る前記ディスクリプタ情報を、当該第２記憶部から前記第１記憶部にＤＭＡ転送し、
前記制御部は、
前記ＤＭＡ転送部によりＤＭＡ転送されたディスクリプタ情報を当該第１記憶部から読み出すことを特徴とする情報処理装置。
【請求項２】
前記ＤＭＡ転送部は、
前記情報のＤＭＡ転送が完了した場合に、当該情報のＤＭＡ転送完了を示すディスクリプタ情報を前記情報転送系の第２記憶部から前記情報処理系の第１記憶部にＤＭＡ転送し、
前記制御部は、
前記ＤＭＡ転送完了を示すディスクリプタ情報を当該第１記憶部から読み出すことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ＤＭＡ転送部は、
前記情報のＤＭＡ転送回数を計数するカウンタを有し、
前記情報のＤＭＡ転送回数の基準となる回数基準値と、前記カウンタにより計数した計数値とを比較し、
当該比較結果に基づいて、ＤＭＡ転送した情報に係る前記ディスクリプタ情報を、前記情報転送系の第２記憶部から前記情報処理系の第１記憶部にＤＭＡ転送するか否かを判定することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記ＤＭＡ転送部は、
前記情報のＤＭＡ転送時間を計測するタイマを有し、
前記情報のＤＭＡ転送時間の基準となる時間基準値と、前記タイマにより計測した計測値とを比較し、
当該比較結果に基づいて、ＤＭＡ転送した情報に係る前記ディスクリプタ情報を、前記情報転送系の第２記憶部から前記情報処理系の第１記憶部にＤＭＡ転送するか否かを判定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
情報処理系の第１記憶部と情報転送系の第２記憶部との間で情報をＤＭＡ転送する情報処理方法であって、
前記情報の前記第１記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、
生成したディスクリプタ情報を前記情報転送系の第２記憶部に保存するステップと、
前記第２記憶部に保存したディスクリプタ情報に基づいて、前記第１記憶部と当該第２記憶部との間で前記情報をＤＭＡ（ダイレクトメモリアクセス）転送するステップと、
ＤＭＡ転送した情報に係るディスクリプタ情報を、前記第２記憶部から前記第１記憶部にＤＭＡ転送するステップと、
ＤＭＡ転送したディスクリプタ情報を前記第１記憶部から読み出すステップと
を有することを特徴とする情報処理方法。
【請求項６】
情報処理系の第１記憶部と情報転送系の第２記憶部との間で情報をＤＭＡ（ダイレクトメモリアクセス）転送するために、
前記情報の前記第１記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、
生成したディスクリプタ情報を前記情報転送系の第２記憶部に保存するステップと、
前記第２記憶部に保存したディスクリプタ情報に基づいて、前記第１記憶部と当該第２記憶部との間で前記情報をＤＭＡ転送するステップと、
ＤＭＡ転送した情報に係るディスクリプタ情報を、前記第２記憶部から前記第１記憶部にＤＭＡ転送するステップと、
ＤＭＡ転送したディスクリプタ情報を前記第１記憶部から読み出すステップと
を有することを特徴とする情報処理方法をコンピュータに実行させるためのプログラム。
【請求項７】
情報処理系の第１記憶部と情報転送系の第２記憶部との間で情報をＤＭＡ（ダイレクトメモリアクセス）転送するために、
前記情報の前記第１記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、
生成したディスクリプタ情報を前記情報転送系の第２記憶部に保存するステップと、
前記第２記憶部に保存したディスクリプタ情報に基づいて、前記第１記憶部と当該第２記憶部との間で前記情報をＤＭＡ転送するステップと、
ＤＭＡ転送した情報に係るディスクリプタ情報を、前記第２記憶部から前記第１記憶部にＤＭＡ転送するステップと、
ＤＭＡ転送したディスクリプタ情報を前記第１記憶部から読み出すステップと
を有することを特徴とする情報処理方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な媒体。
【請求項８】
情報処理系の第１記憶部と情報転送系の第２記憶部との間で情報をＤＭＡ（ダイレクトメモリアクセス）転送するＤＭＡコントローラであって、
前記情報の前記第１記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を保存する前記第２記憶部と、
前記第２記憶部に保存されたディスクリプタ情報に基づいて、前記第１記憶部と当該第２記憶部との間で前記情報をＤＭＡ転送するＤＭＡ転送部とを有し、
前記ＤＭＡ転送部は、
ＤＭＡ転送した前記情報に係る前記ディスクリプタ情報を、当該第２記憶部から前記第１記憶部にＤＭＡ転送することを特徴とするＤＭＡコントローラ。
【請求項９】
前記ＤＭＡ転送部は、
前記情報のＤＭＡ転送が完了した場合に、当該情報のＤＭＡ転送完了を示すディスクリプタ情報を前記情報転送系の第２記憶部から前記情報処理系の第１記憶部にＤＭＡ転送することを特徴とする請求項８に記載のＤＭＡコントローラ。
【請求項１０】
前記ＤＭＡ転送部は、
前記情報のＤＭＡ転送回数を計数するカウンタを有し、
前記情報のＤＭＡ転送回数の基準となる回数基準値と、前記カウンタにより計数した計数値とを比較し、
当該比較結果に基づいて、ＤＭＡ転送した情報に係る前記ディスクリプタ情報を、前記情報転送系の第２記憶部から前記情報処理系の第１記憶部にＤＭＡ転送するか否かを判定することを特徴とする請求項８に記載のＤＭＡコントローラ。
【請求項１１】
前記ＤＭＡ転送部は、
前記情報のＤＭＡ転送時間を計測するタイマを有し、
前記情報のＤＭＡ転送時間の基準となる時間基準値と、前記タイマにより計測した計測値とを比較し、
当該比較結果に基づいて、ＤＭＡ転送した情報に係る前記ディスクリプタ情報を、前記情報転送系の第２記憶部から前記情報処理系の第１記憶部にＤＭＡ転送するか否かを判定することを特徴とする請求項８に記載のＤＭＡコントローラ。
【請求項１２】
情報処理系の第１記憶部と情報転送系の第２記憶部との間で情報をＤＭＡ（ダイレクトメモリアクセス）転送する方法であって、
前記情報の前記第１記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、
生成したディスクリプタ情報を前記情報転送系の第２記憶部に保存するステップと、
前記第２記憶部に保存したディスクリプタ情報に基づいて、前記第１記憶部と当該第２記憶部との間で前記情報をＤＭＡ転送するステップと、
ＤＭＡ転送した情報に係るディスクリプタ情報を、前記第２記憶部から前記第１記憶部にＤＭＡ転送するステップと
を有することを特徴とするＤＭＡ転送方法。
【請求項１３】
情報処理系の第１記憶部と情報転送系の第２記憶部との間で情報をＤＭＡ（ダイレクトメモリアクセス）転送するために、
前記情報の前記第１記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、
生成したディスクリプタ情報を前記情報転送系の第２記憶部に保存するステップと、
前記第２記憶部に保存したディスクリプタ情報に基づいて、前記第１記憶部と当該第２記憶部との間で前記情報をＤＭＡ転送するステップと、
ＤＭＡ転送した情報に係るディスクリプタ情報を、前記第２記憶部から前記第１記憶部にＤＭＡ転送するステップと
を有することを特徴とするＤＭＡ転送方法をコンピュータに実行させるためのプログラム。
【請求項１４】
情報処理系の第１記憶部と情報転送系の第２記憶部との間で情報をＤＭＡ（ダイレクトメモリアクセス）転送するために、
前記情報の前記第１記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、
生成したディスクリプタ情報を前記情報転送系の第２記憶部に保存するステップと、
前記第２記憶部に保存したディスクリプタ情報に基づいて、前記第１記憶部と当該第２記憶部との間で前記情報をＤＭＡ転送するステップと、
ＤＭＡ転送した情報に係るディスクリプタ情報を、前記第２記憶部から前記第１記憶部にＤＭＡ転送するステップと
を有することを特徴とするＤＭＡ転送方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、例えばネットワークカードなどの情報転送系の記憶部と、マイクロプロセッサ（ＣＰＵ）を有した情報処理系の記憶部との間で情報をＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ：ダイレクトメモリアクセス）転送する情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにＤＭＡコントローラ、ＤＭＡ転送方法、当該ＤＭＡ転送方法を実行するためのプログラム及び当該プログラムを記録した媒体に関する。詳しくは、ＤＭＡ転送した情報に係るディスクリプタ情報を、情報転送系の第２記憶部から情報処理系の第１記憶部にＤＭＡ転送し、ＤＭＡ転送したディスクリプタ情報をこの第１記憶部から読み出すことで、処理時間がかかる情報転送系の第２記憶部にアクセスせずにディスクリプタ情報を読み出せるようにすると共に、当該装置の処理速度を高速化できるようにしたものである。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
図４は、送信ディスクリプタ２１の構成例を示す説明図である。図４に示す送信ディスクリプタ２１は、少なくとも送信パケット先頭アドレス２０ａと送信パケットサイズ２０ｂからなる単位送信ディスクリプタ２０をｎ＋１個（＝要素数０〜ｎ）有して構成されている。この送信ディスクリプタ２１は、ＣＰＵ１によりＲＡＭ３（図１参照）上の連続領域に生成される。なお、この単位送信ディスクリプタ２０の構成は、ネットワークカード９及びＣＰＵ１の双方に対して既知である。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
ＣＰＵ１はネットワークカード９のＤＭＡ転送部９ｂに対して、ＲＡＭ３上の送信ディスクリプタ２１の先頭アドレスと先頭からの個数(インデックス)ｉを指定すると、ＤＭＡ転送部９ｂは該当するインデックスの単位送信ディスクリプタ２０の先頭位置を特定できるようになる。これは、上述したようにＤＭＡ転送部９ｂは、単位送信ディスクリプタ２０の構成を知っているからである。なお、以下このインデックスｉの値をディスクリプタ番号（０〜ｎ）と称する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５４
【補正方法】変更
【補正の内容】
【００５４】
図８及び図９は、送信パケットのＤＭＡ転送例を示すシーケンス図である。紙面の都合上、図８に示すネットワークカード９のＤＭＡ転送処理ブロック５０の処理内容を図９に示している。図８に示すＣＰＵ１側の送信処理開始スレッド１ａは、先ずカウンタ値iに「０」を設定して初期化する(800)。次に、送信処理開始スレッド１ａは、ＲＡＭ３上の送信ディスクリプタcpu_desc（図５参照）に対して、送信パケットp_iのアドレス@p_i及びサイズを設定する（801）。次に、送信処理開始スレッド１ａは、送信テイルポインタcpu_tx_tailを更新する(802)。ここで、このcpu_tx_tailの更新は基本的に１インクリメントするものだが（803）、送信ディスクリプタ２１をリング状に使用するためにディスクリプタ数ｎでモジュロ（modulo）をとる。上述の(801)〜(802)の動作を必要回数（例えば送信パケット数ｍ）繰り返す。最後に、送信処理開始スレッド１ａは、送信テイルポインタ設定用のレジスタTX_TAILに送信テイルポインタcpu_tx_tailの値を書き込み、ネットワークカード９のＤＭＡ転送部９ｂに転送開始を指示する(804)。