(57)【要約】【課題】割込処理を簡素化し、割込処理に要する時間を削減する。【解決手段】ステップＳ５２において、ネットワークカードポインタとCPUクリアポインタが一致しない、即ち実行されたDMA転送処理で用いられたパケットに対応し、かつDMA転送完了処理が行われていないパケット領域があると判定された場合、ステップＳ５３に進み、割込発生部は、割込ステータスを完了ステータスに設定し、ステップＳ５４に進む。ステップＳ５４において、割込発生部は、割込信号を発生する。一方、ステップＳ５２において、実行されたDAM転送処理で用いられたパケットに対応し、かつDMA転送完了処理が行われていないパケット領域がないと判定された場合、ステップＳ５５に進み、割込発生部は、完了ステータスを解除する。本発明は、例えば、ネットワークカードに適用することができる。【選択図】図９
2006338353.tif 000002
【特許請求の範囲】
【請求項１】
所定のデータを記憶するデータ記憶手段と、
前記データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、前記データ処理を実行する実行手段と、
割込信号を発生する発生手段と、
前記発生手段により発生される割込信号に応じて、前記データ記憶手段を解放する解放手段と
を備え、
前記発生手段は、
前記実行手段により実行されたデータ処理で用いられた前記データに対応し、かつ前記解放手段により解放されていない前記データ記憶手段があるかどうかの判定を行う判定手段と、
前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御手段と
を備える
ことを特徴とする情報処理装置。
【請求項２】
所定のデータを記憶するデータ記憶手段を備える他の情報処理装置に割込を行う情報処理装置において、
前記データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、前記データ処理を実行する実行手段と、
前記実行手段により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定手段と、
前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御手段と
を備えることを特徴とする情報処理装置。
【請求項３】
前記実行手段により実行されたデータ処理に対応する処理情報を表す実行処理情報と、既に解放された前記データ記憶手段に対応する前記処理情報を表す解放処理情報とを記憶する実行解放処理情報記憶手段
をさらに備え、
前記判定手段は、前記実行解放処理情報記憶手段に記憶される前記実行処理情報と前記解放処理情報とに基づいて、前記判定を行う
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記処理情報には、その処理情報に対応する前記データ処理が実行されたかどうかを表す実行情報が含まれており、
前記実行手段は、前記処理情報に対応する前記データ処理を実行した場合、その処理情報に含まれる実行情報を更新し、
前記判定手段は、前記実行情報に基づいて、前記判定を行う
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
所定のデータを記憶するデータ記憶手段を備える他の情報処理装置に割込を行う情報処理装置の情報処理方法において、
前記データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、前記データ処理を実行する実行ステップと、
前記実行ステップの処理により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定ステップと、
前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御ステップと
を含むことを特徴とする情報処理方法。
【請求項６】
所定のデータを記憶するデータ記憶手段を備える情報処理装置に割込を行う処理を、コンピュータに行わせるプログラムにおいて、
前記データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、前記データ処理を実行する実行ステップと、
前記実行ステップの処理により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定ステップと、
前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法、並びにプログラムに関し、特に、割込処理を簡素化し、割込処理に要する時間を削減することができるようにする情報処理装置および情報処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
図１は、ディスクリプタ７０（図３）を用いてDMA（Direct Memory Access）転送を行うネットワークカードを備えたパーソナルコンピュータ（以下、パソコンという）１の一例を示すブロック図である。
【０００３】
図１に示されるように、CPU（Central Processing Unit）１１は、バス１４を介して、ROM(Read Only Memory)１２とRAM（Random Access Memory）１３に接続される。CPU１１は、ROM１２に記憶されているプログラム、または記録部１８に記録されているプログラムにしたがって各種の処理を実行する。
【０００４】
例えば、CPU１１は、RAM１３のディスクリプタ領域３１（後述する）に、DMA転送の対象とする、RAM１３のパケット領域３２に記憶されているパケットのアドレスなどを、ディスクリプタ７０として記憶させることにより、ネットワークカード１９に、そのパケットをDMA転送させる。即ち、ディスクリプタ７０は、ネットワークカード１９にDMA転送処理を実行させるための情報である。
【０００５】
また、CPU１１は、次にディスクリプタ７０を記憶させるディスクリプタ領域３１のアドレスを表すCPUセットポインタを、RAM１３のポインタ情報領域３３に記憶させる。CPU１１は、ネットワークカード１９から供給される割込信号に応じて、ネットワークカード１９に記憶されている、割込信号の発生原因（ステータス）を表す割込ステータスに対応する割込処理として、例えば、ネットワークカード１９により既に実行されたDMA転送処理に対応するディスクリプタ７０で利用したRAM１３（のパケット領域３２）に対して、解放などのDMA転送完了処理を行う。そして、CPU１１は、DMA転送完了処理が行われたパケット領域３２に対応するディスクリプタ７０の次のディスクリプタ７０(次にDMA転送完了処理の対象とするパケット領域３２に対応するディスクリプタ７０)のアドレスを表すCPUクリアポインタを、RAM１３のポインタ情報領域３３に記憶させる。CPU１１は、ネットワークカード１９に記憶されている割込ステータスをクリア（解除）する。
【０００６】
RAM１３は、ディスクリプタ７０が記憶されるディスクリプタ領域３１、DMA転送の対象となるパケットが記憶されるパケット領域３２、およびCPUセットポインタとCPUクリアポインタがポインタ情報として記憶されるポインタ情報領域３３などから構成される。
【０００７】
CPU１１にはまた、バス１４を介して入出力インターフェース１５が接続されている。入出力インターフェース１５には、キーボード、マウスなどよりなる入力部１６、LCD（Liquid Crystal Display）やCRT（Cathode Ray Tube）ディスプレイなどよりなる出力部１７が接続されている。CPU１１は、入力部１６から入力される指令に対応して各種の処理を実行する。そして、CPU１１は、処理の結果得られた画像や音声などを出力部１７に出力する。
【０００８】
入出力インターフェース１５に接続されている記録部１８は、例えば、ハードディスクなどで構成され、CPU１１が実行するプログラムや各種のデータを記録する。ネットワークカード１９は、DMA転送を行う。具体的には、ネットワークカード１９は、RAM１３のディスクリプタ領域３１に記憶されるディスクリプタ７０に基づいて、RAM１３のパケット領域３２に記憶されるパケットを読み出し、そのパケットを、図示せぬネットワークを介して他の装置に送信する。また、ネットワークカード１９は、図示せぬネットワークを介して、パケットを受信し、RAM１３に記憶させる。
【０００９】
なお、以下では、ネットワークカード１９がDMA転送を行い、その結果得られるパケットを送信する場合についてのみ説明するが、パケットの受信についても同様に行われる。
【００１０】
入出力インターフェース１５に接続されているドライブ２０は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア２１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部１８に転送され、記録される。
【００１１】
図２は、図１のネットワークカード１９の機能的構成例を示すブロック図である。
【００１２】
図２のネットワークカード１９は、ディスクリプタ情報保持部５１、ディスクリプタ制御部５２、パケット通信部５３、割込発生部５４、および割込ステータス保持部５５から構成される。
【００１３】
ディスクリプタ情報保持部５１には、RAM１３のディスクリプタ領域３１の先頭アドレス（以下、ディスクリプタ先頭アドレスという）とディスクリプタ領域３１に記憶可能なディスクリプタ数とが予め保持（記憶）されている。これにより、ディスクリプタ制御部５２は、ディスクリプタ先頭アドレスとディスクリプタ数に基づいて、RAM１３のディスクリプタ領域３１にアクセスすることができる。
【００１４】
また、ディスクリプタ情報保持部５１には、図１のCPU１１からポインタ情報領域３３に記憶されているポインタ情報であるCPUセットポインタとCPUクリアポインタが供給され、保持される。
【００１５】
さらに、ディスクリプタ情報保持部５１は、ディスクリプタ制御部５２から供給される、既に実行されたDMA転送処理に対応するディスクリプタ７０の次のディスクリプタ７０のアドレス（次に実行するDMA転送処理に対応するディスクリプタ７０）を表すネットワークカードポインタを記憶する。なお、まだ何も処理が行われていない場合、ディスクリプタ制御部５２は、ディスクリプタ情報保持部５１からディスクリプタ先頭アドレスを読み出し、そのディスクリプタ先頭アドレスをネットワークカードポインタとしてディスクリプタ情報保持部５１に供給し、記憶させる。また、ディスクリプタ情報保持部５１は、CPU１１からの要求に応じて、ネットワークカードポインタをCPU１１に供給する。
【００１６】
ディスクリプタ制御部５２は、ディスクリプタ情報保持部５１からネットワークカードポインタとCPUセットポインタとを読み出し、そのネットワークカードポインタとCPUセットポインタに基づいて、実行対象とするDMA転送処理に対応するディスクリプタ７０を決定する。
【００１７】
ディスクリプタ制御部５２は、そのディスクリプタ７０をディスクリプタ領域３１から読み出し、そのディスクリプタ７０に基づいて、パケット領域３２からDMA転送の対象とするパケットを読み出し、そのパケットを、パケット通信部５３に供給することにより、DMA転送処理を行う。
【００１８】
また、ディスクリプタ制御部５２は、パケット通信部５３から供給されるDMA転送処理の完了を表す完了情報に応じて、ディスクリプタ情報保持部５１に記憶されるネットワークカードポインタを更新するとともに、割込発生部５４にDMA転送処理の完了を通知する。
【００１９】
パケット通信部５３は、図示せぬネットワークを介して、ディスクリプタ制御部５２からのパケットを、他の装置に送信する。また、パケット通信部５３は、ディスクリプタ制御部５２からのパケットに応じて、完了情報をディスクリプタ制御部５２に供給する。
【００２０】
割込発生部５４は、ディスクリプタ制御部５２からのDMA転送処理の完了の通知に応じて、割込信号を発生させ、CPU１１に供給する。また、割込発生部５４は、その通知に応じて、割込ステータス保持部５５に記憶される割込ステータスを、割込信号の発生原因がディスクリプタ７０に対応するDMA転送処理の完了であることを表す割込ステータス(以下、完了ステータスという)に更新させる。
【００２１】
割込ステータス保持部５５は、割込ステータスを保持する。割込ステータス保持部５５は、割込発生部５４の制御により、割込ステータスを、完了ステータスに設定(更新)する。また、割込ステータス保持部５５は、CPU１１からの要求に応じて、完了ステータスを解除する。
【００２２】
図３は、図１のディスクリプタ領域３１に記憶されるディスクリプタ７０の例を示している。
【００２３】
図３に示すように、ディスクリプタ７０は、上位アドレス領域７１、下位アドレス領域７２、予約領域７３、およびパケットサイズ領域７４から構成される。
【００２４】
上位アドレス領域７１または下位アドレス領域７２には、それぞれ、DMA転送の対象とするパケットのアドレスのうち、例えば上位３２ビットまたは下位３２ビットが記憶される。予約領域７３は、何も記憶されない空き領域である。パケットサイズ領域７４には、DMA転送の対象とするパケットのデータサイズが記憶される。
【００２５】
ディスクリプタ制御部５２は、ディスクリプタ７０に対応する処理として、パケット領域３２の、上位アドレス領域７１と下位アドレス領域７２に記憶される６４ビットのアドレスのパケットを読み出し、パケット通信部５３に供給する。
【００２６】
次に、図４を参照して、ディスクリプタ保持部５１に保持されるディスクリプタ先頭アドレス、ディスクリプタ数、CPUクリアポインタ、ネットワークカードポインタ、およびCPUセットポインタについて説明する。
【００２７】
なお、ディスクリプタ７０には、先頭から順に０から番号が付されており、以下では、番号がｉのディスクリプタ７０を、ディスクリプタ＃ｉという。
【００２８】
図４のディスクリプタ領域３１は、RAM１３上に連続して並べられた、ｎ＋１個のディスクリプタ＃０乃至ディスクリプタ＃ｎそれぞれが記憶されるディスクリプタ領域９１−０乃至９１−ｎから構成される。即ち、図２のディスクリプタ情報保持部５１に保持される、ディスクリプタ領域３１に記憶可能なディスクリプタ数は、ｎ＋１である。また、ディスクリプタ情報保持部５１には、ディスクリプタ＃０のアドレスが、ディスクリプタ先頭アドレスとして記憶される。
【００２９】
図４では、CPU１１は、ディスクリプタ＃０乃至ディスクリプタ＃４を生成し、それぞれをディスクリプタ領域９１−０乃至９１−４に記憶させる。CPU１１は、次に生成するディスクリプタ＃５を記憶させるディスクリプタ領域９１−５のアドレスを、CPUセットポインタとして、ディスクリプタ情報保持部５１に記憶させる。
【００３０】
ディスクリプタ制御部５２は、ディスクリプタ＃０乃至＃３に対応する処理として、ディスクリプタ＃０乃至＃３に基づいて、パケット領域３２からDMA転送の対象とするパケットを読み出し、そのパケットをパケット通信部５３に供給することにより、DMA転送を行う。
【００３１】
ディスクリプタ制御部５２は、パケット通信部５３がDMA転送の完了に応じて供給する、ディスクリプタ＃０乃至＃３に対応するDMA転送処理の完了を表す完了情報に応じて、次に実行するDMA転送処理に対応するディスクリプタ＃４のアドレスを、ネットワークカードポインタとしてディスクリプタ情報保持部５１に記憶させる。
【００３２】
なお、CPUセットポインタとネットワークカードポインタとの間のディスクリプタ領域９１−４に記憶されるディスクリプタ＃４が、CPU１１により記憶されているが、まだディスクリプタ制御部５２により実行されていないDMA転送処理に対応するディスクリプタ７０である。
【００３３】
また、CPU１１は、割込発生部５４による割込信号に応じて、ディスクリプタ制御部５２により実行されたDMA転送処理に対応するディスクリプタ７０であるディスクリプタ＃０の上位アドレス領域７１、下位アドレス領域７２、およびパケットサイズ領域７４で指定されたRAM１３（のパケット領域３２）に対して、解放などのDMA転送完了処理を行う。CPU１１は、次にDMA転送完了処理の対象とするパケット領域３２に対応するディスクリプタ＃１のアドレスを、CPUクリアポインタとして、ディスクリプタ情報保持部５１に記憶させる。
【００３４】
次に、図５を参照して、パソコン１による割込処理について説明する。
【００３５】
ステップＳ１１において、ネットワークカード１９の割込発生部５４は、ディスクリプタ制御部５２からのDMA転送処理の完了の通知に応じて、割込信号を発生させ、その割込信号をCPU１１に通知(送信)し、ステップＳ１２に進む。
【００３６】
ステップＳ１において、CPU１１は、割込発生部５４からの割込信号を受信し、ステップＳ２に進む。ステップＳ２において、CPU１１は、ネットワークカード１９に割込ステータスの読出を要求し、ステップＳ３に進む。
【００３７】
ステップＳ１２において、ネットワークカード１９の割込ステータス保持部５５は、CPU１１からの割込ステータスの読出の要求を受信し、ステップＳ１３に進む。ステップＳ１３において、割込ステータス保持部５５は、割込ステータスの読出の要求に応じて、いま割込ステータスとして保持されている完了ステータスを通知（送信）し、ステップＳ１４に進む。
【００３８】
ステップＳ３において、CPU１１は、割込ステータス保持部５５から完了ステータスを受信し、ステップＳ４に進む。ステップＳ４において、CPU１１は、ネットワークカード１９にネットワークカードポインタの読出を要求し、ステップＳ５に進む。
【００３９】
ステップＳ１４において、ネットワークカード１９のディスクリプタ情報保持部５１は、CPU１１からネットワークカードポインタの読出の要求を受信し、ステップＳ１５に進む。ステップＳ１５において、ディスクリプタ情報保持部５１は、ネットワークカードポインタの読出の要求に応じて、保持しているネットワークカードポインタを通知し、ステップＳ１６に進む。
【００４０】
ステップＳ５において、CPU１１は、ディスクリプタ情報保持部５１からネットワークカードポインタを受信し、ステップＳ６に進む。ステップＳ６において、CPU１１は、RAM１３のポインタ情報領域３３（図１）に記憶されているポインタ情報のCPUクリアポインタを読み出し、そのCPUクリアポインタとディスクリプタ情報保持部５１からのネットワークカードポインタとに基づいて、RAM１３のディスクリプタ領域９１−１乃至９１−ｎのうちのいずれかに対応するパケット領域３２に対して、解放などのDMA転送完了処理を行う。
【００４１】
例えば、RAM１３のディスクリプタ領域３１が、図４に示したディスクリプタ領域３１である場合、CPU１１は、ネットワークカードポインタであるディスクリプタ＃４のアドレスと、CPUクリアポインタであるディスクリプタ＃１のアドレスとに基づいて、既にディスクリプタ制御部５２により実行されたDMA転送処理に対応するディスクリプタ７０が、ディスクリプタ＃０乃至＃３であり、そのディスクリプタ＃０乃至＃３に対応するパケット領域３２のうちのディスクリプタ＃０に対応するパケット領域３２に対してのみDMA転送完了処理が行われていることを認識する。
【００４２】
そこで、CPU１１は、ディスクリプタ制御部５２により既に実行されたDMA転送処理で用いられたパケットに対応し、かつまだDMA転送完了処理が行われていない、ディスクリプタ＃１乃至＃３の上位アドレス領域７１、下位アドレス領域７２、パケットサイズ領域７４で指定されたRAM１３のパケット領域３２に対して、解放などのDMA転送完了処理を行う。
【００４３】
以上のように、CPU１１は、割込ステータスが完了ステータスである場合、ディスクリプタ制御部５２により既に実行されたDMA転送処理に対応するディスクリプタ７０で利用したRAM１３のパケット領域３２に対して、解放などのDMA転送完了処理を行うので、完了ステータスは、既に実行されたDMA転送処理に対応するパケット領域３２に対してDMA転送完了処理を行わせるための割込ステータスであるといえる。
【００４４】
ステップＳ６の処理後は、ステップＳ７に進み、CPU１１は、ステップＳ６でDMA転送完了処理の対象としたパケット領域３２に対応するディスクリプタ領域９１−０乃至９１−ｎに応じて、次にDMA転送完了処理の対象とするパケット領域３２に対応するディスクリプタ領域９１−０乃至９１−ｎのアドレスを、CPUクリアポインタとしてネットワークカード１９に送信することにより、CPUクリアポインタの更新を要求する。
【００４５】
ステップＳ１６において、ネットワークカード１９のディスクリプタ情報保持部５１は、CPU１１からCPUクリアポインタを受信し、いま保持しているCPUクリアポインタを、受信したCPUクリアポインタに変更することにより、CPUクリアポインタの更新を行い、ステップＳ１７に進む。
【００４６】
ステップＳ７の処理後は、ステップＳ８に進み、CPU１１は、割込ステータス保持部５５に割込ステータスとして記憶されている完了ステータスの解除を要求し、処理を終了する。
【００４７】
ステップＳ１７において、ネットワークカード１９の割込ステータス保持部５５は、CPU１１からの完了ステータスの解除の要求を受信し、その要求に応じて、完了ステータスを解除する。即ち、割込ステータス保持部５５は、保持している割込ステータスをクリアする。
【００４８】
ところで、従来、割込処理を行う装置において、その割込処理を正確に、または効率的に行うための様々な方法が提案されている。例えば、微分回路、積分回路、およびレジスタなどを用いて、非同期なクロックで動作するI/OデバイスとCPUとの間で、割込信号を正確に扱うことを可能とする非同期割込通知回路がある（例えば、特許文献１参照）。
【００４９】
また、フリップフロップを用いて、割込処理を行うプロセッサよりも低周波数で動作している周辺装置に対して、効率的に割込をクリアするロジックユニットがある(例えば、特許文献２参照)。
【００５０】
【特許文献１】特開２００１−１８４２９８号公報
【特許文献２】特開２００２−１４９４１９号公報
【発明の開示】
【発明が解決しようとする課題】
【００５１】
一般的に、CPU１１がバス１４を介して行うRAM１３へのアクセスに比べて、バス１４と入出力インターフェース１５を介して行う、ネットワークカード１９のディスクリプタ情報保持部５１や割込ステータス保持部５５などのレジスタへのアクセスは多くの時間を要する。
【００５２】
従って、図５に示したように、CPU１１が、割込処理として、ディスクリプタ情報保持部５１に保持されているネットワークカードポインタとCPUクリアポインタ、並びに割込ステータス保持部５５に保持されている割込ステータスの読出を行う場合、割込処理に多くの時間を要することになる。
【００５３】
そこで、割込処理におけるCPU１１のネットワークカード１９へのアクセスを削減し、割込処理を簡素化することにより、割込処理に要する時間を削減し、CPU１１の負荷を軽減することが望ましい。
【００５４】
本発明は、このような状況に鑑みてなされたものであり、割込処理を簡素化し、割込処理に要する時間を削減することができるようにするものである。
【課題を解決するための手段】
【００５５】
本発明の第１の情報処理装置は、所定のデータを記憶するデータ記憶手段と、データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、データ処理を実行する実行手段と、割込信号を発生する発生手段と、発生手段により発生される割込信号に応じて、データ記憶手段を解放する解放手段とを備え、発生手段は、実行手段により実行されたデータ処理で用いられたデータに対応し、かつ解放手段により解放されていないデータ記憶手段があるかどうかの判定を行う判定手段と、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があると判定された場合、割込信号を発生するとともに、割込信号のステータスを、所定のステータスに設定し、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段がないと判定された場合、所定のステータスを解除する割込制御手段とを備えることを特徴とする。
【００５６】
本発明の第２の情報処理装置は、データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、データ処理を実行する実行手段と、実行手段により実行されたデータ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があるかどうかの判定を行う判定手段と、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があると判定された場合、割込信号を発生するとともに、割込信号のステータスを、所定のステータスに設定し、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段がないと判定された場合、所定のステータスを解除する割込制御手段とを備えることを特徴とする。
【００５７】
この情報処理装置には、実行手段により実行されたデータ処理に対応する処理情報を表す実行処理情報と、既に解放されたデータ記憶手段に対応する処理情報を表す解放処理情報とを記憶する実行解放処理情報記憶手段をさらに設け、判定手段は、実行解放処理情報記憶手段に記憶される実行処理情報と解放処理情報とに基づいて、判定を行うことができる。
【００５８】
処理情報には、その処理情報に対応するデータ処理が実行されたかどうかを表す実行情報が含まれており、実行手段は、処理情報に対応するデータ処理を実行した場合、その処理情報に含まれる実行情報を更新し、判定手段は、実行情報に基づいて、判定を行うことができる。
【００５９】
本発明の情報処理方法は、データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、データ処理を実行する実行ステップと、実行ステップの処理により実行されたデータ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があるかどうかの判定を行う判定ステップと、判定ステップの処理により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があると判定された場合、割込信号を発生するとともに、割込信号のステータスを、所定のステータスに設定し、判定ステップの処理により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段がないと判定された場合、所定のステータスを解除する割込制御ステップとを含むことを特徴とする。
【００６０】
本発明のプログラムは、データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、データ処理を実行する実行ステップと、実行ステップの処理により実行されたデータ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があるかどうかの判定を行う判定ステップと、判定ステップの処理により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があると判定された場合、割込信号を発生するとともに、割込信号のステータスを、所定のステータスに設定し、判定ステップの処理により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段がないと判定された場合、所定のステータスを解除する割込制御ステップとを含むことを特徴とする。
【００６１】
本発明の第１の情報処理装置においては、データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、データ処理を実行し、実行されたデータ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があるかどうかの判定を行い、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があると判定された場合、割込信号を発生するとともに、割込信号のステータスを、所定のステータスに設定し、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段がないと判定された場合、所定のステータスを解除する。また、割込信号に応じて、データ記憶手段を解放する。
【００６２】
本発明の第２の情報処理装置および情報処理方法、並びにプログラムにおいては、データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、データ処理を実行し、実行されたデータ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があるかどうかの判定を行い、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があると判定された場合、割込信号を発生するとともに、割込信号のステータスを、所定のステータスに設定し、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段がないと判定された場合、所定のステータスを解除する。
【発明の効果】
【００６３】
本発明によれば、割込処理を簡素化し、割込処理に要する時間を削減することができる。
【発明を実施するための最良の形態】
【００６４】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００６５】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００６６】
請求項１に記載の情報処理装置は、
所定のデータを記憶するデータ記憶手段(例えば、図６のパケット領域３２)と、
前記データを用いた処理であるデータ処理（例えば、DMA転送処理）を実行させるための処理情報(例えば、図３のディスクリプタ７０)に基づいて、前記データ処理を実行する実行手段(例えば、図８のステップＳ３２を実行する図７のディスクリプタ制御部１２１)と、
割込信号を発生する発生手段(例えば、図７のディスクリプタ制御部１２１および割込発生部１２２)と、
前記発生手段により発生される割込信号に応じて、前記データ記憶手段を解放する解放手段(例えば、図６のCPU１０１)と
を備え、
前記発生手段は、
前記実行手段により実行されたデータ処理で用いられた前記データに対応し、かつ前記解放手段により解放されていない前記データ記憶手段があるかどうかの判定を行う判定手段(例えば、図９のステップＳ５２の処理を実行するディスクリプタ制御部１２１)と、
前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御手段(例えば、図９のステップＳ５３，Ｓ５４、およびＳ５５の処理を実行する割込発生部１２２)と
を備える
ことを特徴とする。
【００６７】
請求項２に記載の情報処理装置は、
所定のデータを記憶するデータ記憶手段(例えば、図６のパケット領域３２)を備える他の情報処理装置（例えば、図６のCPU１０１とRAM１３）に割込を行う情報処理装置（例えば、図６のネットワークカード１０２）において、
前記データを用いた処理であるデータ処理を実行させるための処理情報(例えば、図３のディスクリプタ)に基づいて、前記データ処理を実行する実行手段(例えば、図８のステップＳ３２を実行する図７のディスクリプタ制御部１２１)と、
前記実行手段により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定手段(例えば、図９のステップＳ５２の処理を実行するディスクリプタ制御部１２１)と、
前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御手段(例えば、図９のステップＳ５３，Ｓ５４、およびＳ５５の処理を実行する割込発生部１２２)と
を備えることを特徴とする。
【００６８】
請求項３に記載の情報処理装置は、
前記実行手段により実行されたデータ処理に対応する処理情報を表す実行処理情報（例えば、ネットワークカードポインタ）と、既に解放された前記データ記憶手段に対応する前記処理情報を表す解放処理情報(例えば、CPUクリアポインタ)とを記憶する実行解放処理情報記憶手段(例えば、図７のディスクリプタ情報保持部５１)
をさらに備え、
前記判定手段は、前記実行解放処理情報記憶手段に記憶される前記実行処理情報と前記解放処理情報とに基づいて、前記判定を行う（例えば、図９のステップＳ５２の処理）
ことを特徴とする。
【００６９】
請求項４に記載の情報処理装置は、
前記処理情報には、その処理情報に対応する前記データ処理が実行されたかどうかを表す実行情報(例えば、DMA完了ビット)が含まれており、
前記実行手段は、前記処理情報に対応する前記データ処理を実行した場合、その処理情報に含まれる実行情報を更新し(例えば、図１５のステップＳ１２４の処理)、
前記判定手段は、前記実行情報に基づいて、前記判定を行う(例えば、図１６のステップＳ１４３の処理)
ことを特徴とする。
【００７０】
請求項５に記載の情報処理方法は、
所定のデータを記憶するデータ記憶手段（例えば、図６のパケット領域３２）を備える他の情報処理装置(例えば、図６のCPU１０１およびRAM１３)に割込を行う情報処理装置(例えば、図６のネットワークカード１０２)の情報処理方法において、
前記データを用いた処理であるデータ処理(例えば、DMA転送処理)を実行させるための処理情報（例えば、図３のディスクリプタ７０）に基づいて、前記データ処理を実行する実行ステップ(例えば、図８のステップＳ３２)と、
前記実行ステップの処理により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定ステップ(例えば、図９のステップＳ５２)と、
前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御ステップ(例えば、図９のステップＳ５３，Ｓ５４、およびＳ５５)と
を含むことを特徴とする。
【００７１】
請求項６に記載のプログラムは、
所定のデータを記憶するデータ記憶手段(例えば、図６のパケット領域３２)を備える情報処理装置(例えば、図６のCPU１０１およびRAM１３)に割込を行う処理を、コンピュータに行わせるプログラムにおいて、
前記データを用いた処理であるデータ処理(例えば、DMA転送処理)を実行させるための処理情報（例えば、図３のディスクリプタ７０）に基づいて、前記データ処理を実行する実行ステップ(例えば、図８のステップＳ３２)と、
前記実行ステップの処理により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定ステップ(例えば、図９のステップＳ５２)と、
前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御ステップ(例えば、図９のステップＳ５３，Ｓ５４、およびＳ５５)と
を含むことを特徴とする。
【００７２】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００７３】
図６は、本発明を適用したパソコン１００の一実施の形態のハードウェア構成例を示すブロック図である。なお、図１と同一のものには、同一の符号を付してあり、説明は省略する。
【００７４】
図６のパソコン１００は、ROM１２、RAM１３、バス１４、入出力インターフェース１５、入力部１６、出力部１７、記録部１８、ドライブ２０、CPU１０１、およびネットワークカード１０２から構成され、ディスクリプタ７０に基づいて、RAM１３に記憶されるパケットを、ネットワークカード１０２にDMA転送する。
【００７５】
図６のCPU１０１は、RAM１３のディスクリプタ領域３１に、DMA転送の対象とする、RAM１３のパケット領域３２に記憶されているパケットのアドレスなどを、ディスクリプタ７０として記憶させることにより、ネットワークカード１０２に、そのパケットをDMA転送させる。
【００７６】
また、CPU１０１は、次にディスクリプタ７０を記憶させるディスクリプタ領域３１のアドレスを表すCPUセットポインタを、RAM１３のポインタ情報領域３３に記憶させる。CPU１０１は、ネットワークカード１０２から供給される割込信号に応じて、ネットワークカード１０２に記憶されている、完了ステータスに対応する割込処理として、ネットワークカード１０２により既に実行されたDMA転送処理に対応するディスクリプタ７０で利用したRAM１３のパケット領域３２に対して、解放などのDMA転送完了処理を行う。そして、CPU１０１は、次にDMA転送完了処理の対象とするパケット領域３２に対応するディスクリプタ７０のアドレスを表すCPUクリアポインタを、RAM１３のポインタ情報領域３３に記憶させる。
【００７７】
ネットワークカード１０２は、DMA転送を行う。具体的には、ネットワークカード１０２は、RAM１３のディスクリプタ領域３１に記憶されるディスクリプタ７０に基づいて、RAM１３のパケット領域３２に記憶されるパケットを読み出し、そのパケットを、図示せぬネットワークを介して他の装置に送信する。また、ネットワークカード１０２は、ネットワークカードポインタとCPUクリアポインタとに基づいて、完了ステータスを解除する。
【００７８】
図７は、図６のネットワークカード１０２が所定のプログラムを実行することにより有する機能の構成例を示すブロック図である。なお、図２と同一のものには同一の符号を付してある。
【００７９】
図７のディスクリプタ制御部１２１は、ディスクリプタ情報保持部５１からネットワークカードポインタとCPUセットポインタとを読み出し、そのネットワークカードポインタとCPUセットポインタに基づいて、実行対象とするDMA転送処理に対応するディスクリプタ７０を決定する。ディスクリプタ制御部１２１は、そのディスクリプタ７０に基づいて、DMA転送の対象とするパケットをパケット領域３２から読み出し、パケット通信部５３に供給することにより、DMA転送処理を行う。
【００８０】
また、ディスクリプタ制御部１２１は、パケット通信部５３から供給されるDMA転送処理の完了を表す完了情報に応じて、ディスクリプタ情報保持部５１に記憶されるネットワークカードポインタを更新するとともに、割込発生部５４にDMA転送処理の完了を通知する。
【００８１】
さらに、ディスクリプタ制御部１２１は、ディスクリプタ情報保持部５１からネットワークカードポインタとCPUクリアポインタとを読み出し、そのネットワークカードポインタとCPUクリアポインタに基づいて、完了ステータスの設定または解除を割込発生部１２２に指示する。
【００８２】
割込発生部１２２は、ディスクリプタ制御部１２１からのDMA転送処理の完了の通知に応じて、割込信号を発生させ、CPU１０１に供給する。また、割込発生部１２２は、ディスクリプタ制御部１２１からの完了ステータスの設定または解除の指示に応じて、割込ステータス保持部１２３に記憶される割込ステータスを完了ステータスに更新させるか、または完了ステータスを解除する。
【００８３】
割込ステータス保持部１２３は、割込ステータスを保持する。割込ステータス保持部１２３は、割込発生部１２２の制御により、割込ステータスを完了ステータスに設定したり、完了ステータスを解除する。
【００８４】
次に、図８を参照して、ネットワークカード１０２によるDMA転送処理について説明する。このDMA転送処理は、例えば、CPU１０１から供給されたCPUセットポインタが、ディスクリプタ情報保持部５１に保持されたとき、開始される。
【００８５】
ステップＳ３１において、ディスクリプタ制御部１２１は、ディスクリプタ情報保持部５１からネットワークカードポインタとCPUセットポインタとを読み出し、ネットワークカードポインタとCPUセットポインタとが一致するかどうかを判定する。
【００８６】
ステップＳ３１において、ネットワークカードポインタとCPUセットポインタとが一致しないと判定された場合、即ちまだ実行されていないDMA転送処理に対応するディスクリプタ７０が存在する場合、ディスクリプタ制御部１２１は、DMA転送を行う。
【００８７】
具体的には、ディスクリプタ制御部１２１は、ネットワークカードポインタが表すアドレスに記憶されるディスクリプタ７０をRAM１３のディスクリプタ領域３１から読み出す。そして、ディスクリプタ制御部１２１は、そのディスクリプタ７０の上位アドレス領域７１と下位アドレス領域７２に記憶されているアドレスに基づいて、RAM１３のパケット領域３２に記憶されているパケットを読み出し、パケット通信部５３に供給する。
【００８８】
例えば、ネットワークカードポインタがディスクリプタ＃４のアドレスを、CPUセットポインタがディスクリプタ＃５のアドレスを表している場合、ディスクリプタ制御部１２１は、ディスクリプタ＃４を読み出しパケット通信部５３に供給することにより、DMA転送処理を行う。
【００８９】
ステップＳ３２の処理後は、ステップＳ３３に進み、ディスクリプタ制御部１２１は、ディスクリプタ情報保持部５１に記憶されているネットワークカードポインタを、ステップＳ３２で行われたDMA転送処理に対応するディスクリプタ７０の次のアドレス、即ちいまネットワークカードポインタが表しているアドレスに記憶されるディスクリプタ７０の、次のディスクリプタ７０のアドレスに更新し、ステップＳ３１に戻る。
【００９０】
また、ステップＳ３１において、ネットワークカードポインタとCPUセットポインタが一致すると判定された場合、即ちディスクリプタ領域３１に記憶されているすべてのディスクリプタ７０に対応するDMA転送処理が実行された場合、処理は終了する。
【００９１】
次に、図９を参照して、ネットワークカード１０２による割込発生処理について説明する。この割込発生処理は、例えば、CPU１０１の要求に応じて、ディスクリプタ情報保持部５１に保持されているCPUクリアポインタまたはネットワークカードポインタの更新が行われたとき、開始される。
【００９２】
ステップＳ５１において、ディスクリプタ制御部１２１は、ディスクリプタ情報保持部５１からネットワークカードポインタとCPUクリアポインタを読み出し、ステップＳ５２に進む。
【００９３】
ステップＳ５２において、ディスクリプタ制御部１２１は、ステップＳ５１で読み出したネットワークカードポインタとCPUクリアポインタとが一致するかどうかを判定し、一致しないと判定した場合、即ちディスクリプタ制御部１２１により実行されたDMA転送処理で用いられたパケットに対応し、かつCPU１０１によりDMA転送完了処理が行われていないパケット領域３２がある場合、割込発生部１２２に完了ステータスの設定を指示し、ステップＳ５３に進む。
【００９４】
ステップＳ５３において、割込発生部１２２は、ディスクリプタ制御部１２１からの完了ステータスの設定の指示に応じて、割込ステータス保持部１２３に保持される割込ステータスを、完了ステータスに設定（更新）し、ステップＳ５４に進む。
【００９５】
ステップＳ５４において、割込発生部１２２は、割込ステータスが完了ステータスである割込信号を発生させて、その割込信号を通知する。即ち、割込発生部１２２は、ディスクリプタ制御部１２１により実行されたDMA転送処理に対応するディスクリプタ７０で利用したパケット領域３２に対して、解放などのDMA転送完了処理を行わせるための割込信号を通知する。
【００９６】
一方、ステップＳ５２において、ネットワークカードポインタとCPUクリアポインタとが一致すると判定された場合、ディスクリプタ制御部１２１は、完了ステータスの解除を割込発生部１２２に指示し、ステップＳ５５に進む。
【００９７】
ステップＳ５５において、割込発生部１２２は、ディスクリプタ制御部１２１からの完了ステータスの解除の指示に応じて、完了ステータスを解除し、処理を終了する。
【００９８】
次に、図１０を参照して、CPU１０１によるRAM解放処理を説明する。このRAM解放処理は、例えば、ネットワークカード１０２から割込信号が供給され、割込ステータスが完了ステータスであるとき、開始される。
【００９９】
ステップＳ７１において、CPU１０１は、RAM１３のポインタ情報領域３３から、CPUクリアポインタを読み出し、ステップＳ７２に進む。
【０１００】
ステップＳ７２において、CPU１０１は、ネットワークカード１０２にネットワークカードポインタの読出を要求し、ステップＳ７３に進む。
【０１０１】
ステップＳ７３において、CPU１０１は、ネットワークカードポインタの読出の要求に応じてディスクリプタ情報保持部５１から送信されてくるネットワークカードポインタを受信したかどうかを判定し、受信していない場合、受信するまで待機する。
【０１０２】
一方、ステップＳ７３において、ネットワークカードポインタを受信したと判定された場合、ステップＳ７４に進み、CPU１０１は、そのネットワークカードポインタと、ステップＳ７１で読み出されたCPUクリアポインタとが一致するかどうかを判定する。
【０１０３】
ステップＳ７４において、ネットワークカードポインタとCPUクリアポインタとが一致しないと判定された場合、ステップＳ７５に進み、CPU１０１は、CPUクリアポインタが表すアドレスに記憶されるディスクリプタ７０で利用したRAM１３のパケット領域３２に対して、解放などのDMA転送完了処理を行い、ステップＳ７６に進む。
【０１０４】
ステップＳ７６において、CPU１０１は、RAM１３のポインタ情報領域３３に記憶されているCPUクリアポインタを、ステップＳ７５でDMA転送完了処理が行われたパケット領域３２に対応するディスクリプタ７０の次のアドレス、即ちいまCPUクリアポインタが表すアドレスの次のアドレスを表すCPUクリアポインタに更新し、ステップＳ７４に戻る。
【０１０５】
また、ステップＳ７４において、ネットワークカードポインタとCPUクリアポインタとが一致すると判定された場合、ステップＳ７７に進み、CPU１０２は、そのCPUクリアポインタをディスクリプタ情報保持部５１に供給することにより、ディスクリプタ情報保持部５１にCPUクリアポインタの更新を要求し、処理を終了する。
【０１０６】
次に、図１１を参照して、パソコン１００による割込処理について説明する。
【０１０７】
ステップＳ１０１において、ネットワークカード１０２は、図９のステップＳ５１乃至Ｓ５４の処理を行い、割込信号をCPU１０１に通知し、ステップＳ１０２に進む。
【０１０８】
ステップＳ９１乃至Ｓ９５の処理は、図５のステップＳ１乃至Ｓ５の処理と同様であるので、説明は省略する。また、ステップＳ１０２乃至Ｓ１０５の処理は、図５のステップＳ１２乃至Ｓ１５の処理と同様であるので、説明は省略する。
【０１０９】
ステップＳ９５の処理後は、ステップＳ９６に進み、CPU１０１は、図１０のステップＳ７１乃至Ｓ７６の処理を行い、RAM１３のパケット領域３２を解放し、ステップＳ９７に進む。
【０１１０】
ステップＳ９７において、CPU１０１は、図１０のステップＳ７７の処理を行い、CPUクリアポインタの更新を要求し、処理を終了する。
【０１１１】
ステップＳ１０５の処理後は、ステップＳ１０６に進み、ネットワークカード１０２のディスクリプタ情報保持部５１は、CPU１０１からのCPUクリアポインタを受信し、いま保持しているCPUクリアポインタを、受信したCPUクリアポインタに変更することにより、CPUクリアポインタの更新を行う。そして、ネットワークカード１０２は、図９のステップＳ５１，Ｓ５２、およびＳ５５の処理を行い、完了ステータスを解除する。
【０１１２】
以上のように、パソコン１００では、ディスクリプタ制御部２２１がネットワークカードポインタとCPUクリアポインタが一致するかどうか、即ち既に実行されたDMA転送処理で用いられたパケットに対応し、かつCPU１０１によりまだDMA転送完了処理が行われていないパケット領域３２が存在するかどうかを判定し、そのパケット領域３２が存在しない場合、割込発生部１２２が完了ステータスを解除するので、CPU１０２がネットワークカード１０２にアクセスして、完了ステータスの解除を要求する必要がない。その結果、パソコン１００では、図５で説明した従来の場合に比べて、割込処理を簡素化し、割込処理に要する時間を削減することができる。
【０１１３】
図１２は、本発明を適用したパソコン１００の他の一実施の形態のハードウェア構成例を示すブロック図である。なお、図６と同一のものには、同一の符号を付してあり、説明は省略する。
【０１１４】
なお、図１２のパソコン１００で用いられるディスクリプタ２４０（後述する図１４）には、そのディスクリプタ２４０に対応するDMA転送処理の実行が完了した（実行された）かどうかを表すDMA完了ビットが含まれている。例えば、ディスクリプタ２４０のDMA完了ビットは、そのディスクリプタ２４０に対応するDMA転送処理の実行が完了した場合、「１」に設定され、まだDMA転送処理の実行が完了していない場合、「０」に設定される。
【０１１５】
図１２のパソコン１００は、ROM１２、バス１４、入出力インターフェース１５、入力部１６、出力部１７、記録部１８、ドライブ２０、CPU２０１、RAM２０２およびネットワークカード２０３から構成され、ディスクリプタ２４０に基づいて、RAM２０２に記憶されるパケットを、ネットワークカード２０３にDMA転送する。
【０１１６】
図１２のCPU２０１は、図６のCPU１０１と同様に、RAM２０２のディスクリプタ領域２１１に、DMA転送の対象とする、RAM２０２のパケット領域３２に記憶されているパケットのアドレスなどを、ディスクリプタ２４０として記憶させることにより、ネットワークカード１０２に、そのパケットをDMA転送させる。
【０１１７】
また、CPU２０１は、CPUセットポインタを、RAM２０２のポインタ情報領域３３に記憶させる。CPU２０１は、ネットワークカード２０３から供給される割込信号に応じて、ネットワークカード２０３に記憶されている、完了ステータスに対応する割込処理として、ネットワークカード２０３により既に実行されたDMA転送処理に対応するディスクリプタ２４０で利用したパケット領域３２に対して、解放などのDMA転送完了処理を行う。そして、CPU２０１は、CPUクリアポインタを、RAM２０２のポインタ情報領域３３に記憶させる。
【０１１８】
RAM２０２は、パケット領域３２、ポインタ情報領域３３、およびディスクリプタ２４０が記憶されるディスクリプタ領域２１１などから構成される。
【０１１９】
ネットワークカード２０３は、図６のネットワークカード１０２と同様に、DMA転送を行う。また、ネットワークカード２０３は、完了したDMA転送処理に対応するディスクリプタ２４０のDAM完了ビットを、DMA転送処理が完了したことを表す「１」に設定する。さらに、ネットワークカード２０３は、ネットワークカードポインタとCPUクリアポインタとに基づいて、完了ステータスを解除する。
【０１２０】
図１３は、図１２のネットワークカード２０３の詳細構成例を示すブロック図である。なお、図７と同一のものには同一の符号を付してある。
【０１２１】
図１３のディスクリプタ制御部２２１は、図７のディスクリプタ制御部１２１と同様に、ディスクリプタ情報保持部５１からネットワークカードポインタとCPUセットポインタとを読み出し、そのネットワークカードポインタとCPUセットポインタに基づいて、実行対象とするDMA転送処理に対応するディスクリプタ２４０を決定する。ディスクリプタ制御部２２１は、そのディスクリプタ２４０に基づいて、DMA転送の対象とするパケットを、パケット領域３２から読み出し、パケット通信部５３に供給する。
【０１２２】
また、ディスクリプタ制御部２２１は、パケット通信部５３から供給される完了情報に応じて、ディスクリプタ情報保持部５１に記憶されるネットワークカードポインタを更新するとともに、割込発生部５４にDMA転送処理の完了を通知する。さらに、ディスクリプタ制御部２２１は、完了情報に応じて、その完了情報が完了を表すDMA転送処理に対応する、ディスクリプタ領域２１１のディスクリプタ２４０のDMA完了ビットを「１」に更新する。
【０１２３】
ディスクリプタ制御部２２１は、ディスクリプタ情報保持部５１からネットワークカードポインタとCPUクリアポインタとを読み出し、そのネットワークカードポインタとCPUクリアポインタに基づいて、完了ステータスの設定または解除を割込発生部１２２に指示する。
【０１２４】
次に、図１４を参照して、図１２のディスクリプタ領域２１１に記憶されるディスクリプタ２４０の例について説明する。なお、図３と同一のものには同一の符号を付してある。
【０１２５】
図１４のディスクリプタ２４０は、上位アドレス領域７１、下位アドレス領域７２、予約領域７３、パケットサイズ領域７４、および完了ビット領域２４１から構成される。
【０１２６】
完了ビット領域２４１には、DMA完了ビットが記憶される。なお、CPU２０２がディスクリプタ２４０を作成するとき、DMA完了ビット領域２４１には、DMA完了ビットとして、そのディスクリプタ２４０に対応するDMA転送処理が完了していないことを表す「０」が記憶されている。
【０１２７】
ディスクリプタ制御部２２１は、パケット通信部５３からの完了情報に応じて、その完了情報が完了を表すDMA転送処理に対応する、ディスクリプタ領域２１１のディスクリプタ２４０のDMA完了ビットを「０」から「１」に更新する。
【０１２８】
次に、図１５を参照して、ネットワークカード２０３によるDMA転送処理について説明する。このDMA転送処理は、例えば、CPU２０１から供給されたCPUセットポインタが、ディスクリプタ情報保持部５１に保持されたとき、開始される。
【０１２９】
ステップＳ１２１乃至Ｓ１２３の処理は、図８のステップＳ３１乃至Ｓ３３の処理と同様であるので、説明は省略する。
【０１３０】
ステップＳ１２３の処理後は、ステップＳ１２４に進み、ディスクリプタ制御部２２１は、ステップＳ１２２で行われたDAM転送処理に対応するディスクリプタ２４０のDMA完了ビットを「１」に設定し、ステップＳ１２１に戻る。
【０１３１】
次に、図１６を参照して、CPU２０１によるRAM解放処理を説明する。このRAM解放処理は、例えば、ネットワークカード２０３から割込信号が供給され、割込ステータスが完了ステータスであるとき、開始される。
【０１３２】
ステップＳ１４１において、CPU２０１は、RAM２０２のポインタ情報領域３３から、ポインタ情報であるCPUセットポインタとCPUクリアポインタを読み出し、ステップＳ１４２に進む。
【０１３３】
ステップＳ１４２において、CPU２０１は、CPUクリアポインタが表すアドレスに記憶されるディスクリプタ２４０をDMA転送完了処理候補として、ディスクリプタ領域２１１から読み出し、ステップＳ１４３に進む。
【０１３４】
ステップＳ１４３において、CPU２０１は、DMA転送完了処理候補であるディスクリプタ２４０の完了ビット領域２４１に記憶されているDMA完了ビットが「１」であるかどうかを判定し、DMA完了ビットが「１」であると判定した場合、即ちDMA転送完了処理候補であるディスクリプタ２４０が、既にネットワークカード２０３により実行されたDMA転送処理に対応し、かつ、そのディスクリプタ２４０で利用したパケット領域３２に対して、まだDMA転送完了処理が行われていない場合、ステップＳ１４４に進む。
【０１３５】
ステップＳ１４４において、CPU２０１は、DMA転送完了処理候補であるディスクリプタ２４０に対応するパケット領域３２に対して、解放などのDMA転送完了処理を行い、ステップＳ１４５に進む。
【０１３６】
ステップＳ１４５において、CPU２０１は、RAM２０２のポインタ情報領域３３に記憶されているCPUクリアポインタを、ステップＳ１４４でDMA転送完了処理が行われたパケット領域３２に対応するディスクリプタ２４０の次のディスクリプタ２４０のアドレスに更新し、ステップＳ１４６に進む。
【０１３７】
ステップＳ１４６において、CPU２０１は、ステップＳ１４５で更新したCPUクリアポインタと、CPUセットポインタとが一致するかどうかを判定し、CPUクリアポインタとCPUセットポインタとが一致しない場合、ステップＳ１４２に戻る。
【０１３８】
一方、ステップＳ１４３において、DMA完了ビットが「１」ではないと判定された場合、またはステップＳ１４６において、CPUクリアポインタとCPUセットポインタとが一致すると判定された場合、ステップＳ１４７に進み、CPU１０２は、図１０のステップＳ７７と同様に、RAM２０２のポインタ情報領域３３に記憶されているCPUクリアポインタを読み出し、ディスクリプタ情報保持部５１に供給することにより、ディスクリプタ情報保持部５１にCPUクリアポインタの更新を要求し、処理を終了する。
【０１３９】
次に、図１７を参照して、図１２のパソコン１００による割込処理について説明する。
【０１４０】
ステップＳ１８１乃至Ｓ１８３の処理は、図１１のステップＳ１０１乃至Ｓ１０３の処理と同様であるので説明は省略する。また、ステップＳ１６１乃至Ｓ１６３の処理は、図１１のステップＳ９１乃至Ｓ９３の処理と同様であるので説明は省略する。
【０１４１】
ステップＳ１６４において、CPU２０１は、図１６のステップＳ１４１乃至Ｓ１４６の処理を行い、RAM２０２のパケット領域３２を解放し、ステップＳ１６５に進む。
【０１４２】
ステップＳ１６５において、CPU２０１は、図１６のステップＳ１４７の処理を行い、図１１のステップＳ９７と同様に、CPUクリアポインタの更新を要求し、処理を終了する。
【０１４３】
ステップＳ１８３の処理後は、ステップＳ１８４に進み、ネットワークカード２０３のディスクリプタ情報保持部５１は、図１１のステップＳ１０６と同様に、CPU２０１からのCPUクリアポインタを受信し、CPUクリアポインタの更新を行う。そして、ネットワークカード２０３は、図９のステップＳ５１，Ｓ５２、およびＳ５５の処理を行い、完了ステータスを解除する。
【０１４４】
以上のように、図１２のパソコン１００では、ディスクリプタ２４０の完了ビット領域２４１にDMA完了ビットが記憶されるので、CPU２０１がネットワークカード２０３にアクセスして、ネットワークカードポインタの読出を要求する必要がない。その結果、図１２のパソコン１００では、図６のパソコン１００に比べて、さらに割込処理を簡素化し、割込処理に要する時間を削減することができる。
【０１４５】
また、ディスクリプタ７０または２４０を用いてDMA転送を行うデバイスは、ネットワークカード１０２または２０３に限定されず、例えばデータストレージなどであってもよい。
【０１４６】
以上のように、ネットワークカード１０２（２０３）では、ディスクリプタ制御部１２１（２２１）が、実行されたDMA転送処理で用いられたパケットに対応し、かつDMA転送完了処理が行われていないパケット領域３２があるかどうかの判定を行い、実行されたDMA転送処理で用いられたパケットに対応し、かつDMA転送完了処理が行われていないパケット領域３２があると判定した場合、割込発生部１２２に、割込信号を発生させるとともに、割込ステータスを完了ステータスに設定させ、実行されたDMA転送処理で用いられたパケットに対応し、かつDMA転送完了処理が行われていないパケット領域３２がないと判定された場合、割込発生部１２２に、完了ステータスを解除させるようにしたので、割込処理を簡素化し、割込処理に要する時間を削減することができる。
【０１４７】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０１４８】
また、プログラムは、１台のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【図面の簡単な説明】
【０１４９】
【図１】従来のパーソナルコンピュータの一例を示すブロック図である。
【図２】図１のネットワークカードの機能的構成例を示すブロック図である。
【図３】ディスクリプタの例を示す図である。
【図４】ディスクリプタ保持部に保持される情報について説明する図である。
【図５】パソコン１による割込処理について説明するアローチャートである。
【図６】本発明を適用したパソコンの一実施の形態のハードウェア構成例を示すブロック図である。
【図７】図６のネットワークカードの詳細構成例を示すブロック図である。
【図８】ネットワークカードによるDMA転送処理について説明するフローチャートである。
【図９】ネットワークカードによる割込発生処理について説明するフローチャートである。
【図１０】CPUによるRAM解放処理を説明するフローチャートである。
【図１１】パソコンによる割込処理について説明するアローチャートである。
【図１２】本発明を適用したパソコンの他の一実施の形態のハードウェア構成例を示すブロック図である。
【図１３】図１２のネットワークカードの詳細構成例を示すブロック図である。
【図１４】ディスクリプタの例について説明する図である。
【図１５】ネットワークカードによるDMA転送処理について説明するフローチャートである。
【図１６】CPUによるRAM解放処理を説明するフローチャートである。
【図１７】図１２のパソコンによる割込処理について説明するアローチャートである。
【符号の説明】
【０１５０】
１３  RAM，  ３１  ディスクリプタ領域，  ３２  パケット領域，  ３３  ポインタ情報領域，  ５１  ディスクリプタ情報保持部，  ５３  パケット通信部，  １００  パーソナルコンピュータ，  １０１  CPU，  １０２  ネットワークカード，  １２１  ディスクリプタ制御部，  １２２  割込発生部，  １２３  割込ステータス保持部，  ２０１  CPU，  ２０２  RAM，  ２１１  ディスクリプタ領域，  ２０３  ネットワークカード，  ２２１  ディスクリプタ制御部，  ２４０  ディスクリプタ，  ２４１  完了ビット領域
【図１】
2006338353.tif 000003
【図２】
2006338353.tif 000004
【図３】
2006338353.tif 000005
【図４】
2006338353.tif 000006
【図５】
2006338353.tif 000007
【図６】
2006338353.tif 000008
【図７】
2006338353.tif 000009
【図８】
2006338353.tif 000010
【図９】
2006338353.tif 000011
【図１０】
2006338353.tif 000012
【図１１】
2006338353.tif 000013
【図１２】
2006338353.tif 000014
【図１３】
2006338353.tif 000015
【図１４】
2006338353.tif 000016
【図１５】
2006338353.tif 000017
【図１６】
2006338353.tif 000018
【図１７】
2006338353.tif 000019