(57)【要約】【課題】割込処理を簡素化し、割込処理に要する時間を削減する。【解決手段】割込発生部１４０は割込信号を発生する。割込ステータス保持部１４２は、割込信号の発生原因を表す割込ステータスを記憶する。割込ステータス供給部１４１は、割込ステータス保持部により記憶される割込ステータスをRAMに供給し、記憶させる。CPUは、RAMに記憶される割込ステータスに応じて、所定の処理を実行する。本発明は、例えば、ネットワークカードに適用することができる。【選択図】図６
2007012021.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転送させる。
【０００５】
また、CPU１１は、ネットワークカード１９から供給される割込信号に応じて、ネットワークカード１９に記憶されている、割込信号の発生原因（ステータス）を表す割込ステータスを読み出し、その割込ステータスに対応する割込ステータス処理を行うことにより、割込処理を行う。
【０００６】
RAM１３は、ディスクリプタが記憶されるディスクリプタ領域３１、およびDMA転送の対象であるパケットが記憶されるパケット領域３２などから構成される。
【０００７】
CPU１１にはまた、バス１４を介して入出力インターフェース１５が接続されている。入出力インターフェース１５には、キーボード、マウスなどよりなる入力部１６、LCD（Liquid Crystal Display）やCRT（Cathode Ray Tube）ディスプレイなどよりなる出力部１７が接続されている。CPU１１は、入力部１６から入力される指令に対応して各種の処理を実行する。そして、CPU１１は、処理の結果得られた画像や音声などを出力部１７に出力する。
【０００８】
入出力インターフェース１５に接続されている記録部１８は、例えば、ハードディスクなどで構成され、CPU１１が実行するプログラムや各種のデータを記録する。ネットワークカード１９は、DMA転送を行う。具体的には、ネットワークカード１９は、RAM１３のディスクリプタ領域３１に記憶されるディスクリプタに基づいて、RAM１３のパケット領域３２に記憶されるパケットを読み出し、そのパケットを、図示せぬネットワークを介して他の装置に送信する。また、ネットワークカード１９は、図示せぬネットワークを介して、他の装置からパケットを受信し、そのパケットを、ディスクリプタに基づいて、RAM１３のパケット領域３２に記憶させる。
【０００９】
さらに、ネットワークカード１９は、割込信号を発生し、CPU１１に供給するとともに、割込ステータスを設定して記憶する。
【００１０】
入出力インターフェース１５に接続されているドライブ２０は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア２１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部１８に転送され、記録される。
【００１１】
図２は、図１のネットワークカード１９の機能的構成例を示すブロック図である。
【００１２】
図２のネットワークカード１９は、DMA転送部５１、パケット通信部５２、割込発生部５３、および割込ステータス保持部５４から構成される。
【００１３】
DMA転送部５１は、DMA転送を制御する。具体的には、DMA転送部５１は、CPU１１から供給されるDMA転送の要求に応じて、ディスクリプタ領域３１（図１）からディスクリプタを読み出す。そして、DMA転送部５１は、そのディスクリプタに基づいて、DMA転送の対象であるパケットをパケット領域３２から読み出してパケット通信部５２に供給したり、パケット通信部５２から供給されるパケットをパケット領域３２に記憶する。また、DMA転送部５１は、パケット通信部５２から供給される、パケット通信部５２による処理の状態（例えば、パケットの送信完了状態、受信完了状態、送受信のエラー状態など）を表す状態情報を割込発生部５３に供給する。
【００１４】
パケット通信部５２は、図示せぬネットワークを介して、DMA転送部５１からのパケットを、他の装置に送信する。また、パケット通信部５２は、図示せぬネットワークを介して、他の装置からパケットを受信し、DMA転送部５１に供給する。さらに、パケット通信部５２は、状態情報をDMA転送部５１に供給する。
【００１５】
割込発生部５３は、DMA転送部５１からの状態情報に応じて、割込信号を発生させ、CPU１１に供給する。また、割込発生部５３は、その状態情報に応じて、割込ステータスを設定し、その割込ステータスを割込ステータス保持部５４に供給して記憶させる。
【００１６】
割込ステータス保持部５４は、割込発生部５３からの割込ステータスを保持する。割込ステータス保持部５４は、CPU１１からの要求に応じて、割込ステータスをクリア（解除）する。
【００１７】
次に、図３を参照して、パソコン１による割込発生処理について説明する。
【００１８】
ステップＳ１１において、ネットワークカード１９の割込発生部５３は、DMA転送部５１からの状態情報に応じて、割込信号を発生し、その割込信号をCPU１１に通知(送信)して、ステップＳ１２に進む。
【００１９】
ステップＳ１において、CPU１１は、割込発生部５３からの割込信号を受信し、ステップＳ２に進む。ステップＳ２において、CPU１１は、ネットワークカード１９に割込ステータスの読出を要求し、ステップＳ３に進む。
【００２０】
ステップＳ１２において、ネットワークカード１９の割込ステータス保持部５４は、CPU１１からの割込ステータスの読出の要求を受信し、ステップＳ１３に進む。ステップＳ１３において、割込ステータス保持部５４は、割込ステータスの読出の要求に応じて、いま保持している割込ステータスを通知（送信）し、ステップＳ１４に進む。
【００２１】
ステップＳ３において、CPU１１は、割込ステータス保持部５４から割込ステータスを受信し、ステップＳ４に進む。ステップＳ４において、CPU１１は、その割込ステータスに対応する割込ステータス処理を行う。
【００２２】
例えば、割込ステータスが、パケット通信部５２による、DMA転送の対象であるパケットの送信の完了を表す割込ステータスである場合、CPU１１は、割込ステータス処理として、送信が完了されたパケットが記憶されているパケット領域３２に対する解放を行う。即ち、CPU１１は、パケット領域３２に記憶されている、送信が完了されたパケットを削除する。
【００２３】
ステップＳ４の処理後は、ステップＳ５に進み、CPU１１は、割込ステータス保持部５４に保持されている割込ステータスのクリアを、ネットワークカード１９に要求し、処理を終了する。以上のように、CPU１１は、ステップＳ１で割込発生部５３から供給される割込信号に応じて、割込処理として、ステップＳ２乃至Ｓ５の処理を行い、処理を終了する。
【００２４】
ステップＳ１４において、ネットワークカード１９の割込ステータス保持部５４は、CPU１１からの割込ステータスのクリアの要求を受信し、その要求に応じて、割込ステータスをクリアする。即ち、割込ステータス保持部５４は、保持している割込ステータス（信号）の各ビットをクリアする。
【００２５】
ところで、従来、割込処理を行う装置において、割込通知に関する処理の負荷を軽減するための様々な方法が提案されている。例えば、割込発生装置と割込処理装置との間に、割込集約手段を設け、多重割込を防止する割り込み処理システムがある(例えば、特許文献１参照)。
【００２６】
また、DMA転送が完了した場合、外部I/F（Interface）機器のDMAコントローラが、CPUに割込信号を発生せず、外部I/F機器内のステータスレジスタに記憶される割込信号のステータスのみを更新し、CPUが、所定時間毎に発生されるタイマ割込に応じて、そのステータスレジスタに記憶されるステータスを参照することにより、割込の通知回数を減少させるデータ転送システムがある(例えば、特許文献２参照)。
【００２７】
【特許文献１】特許第３５４９７０３号明細書
【特許文献２】特開平１１−２１２９０４号公報
【発明の開示】
【発明が解決しようとする課題】
【００２８】
一般的に、CPU１１がバス１４を介して行うRAM１３へのアクセスに比べて、バス１４と入出力インターフェース１５を介して行う、ネットワークカード１９の割込ステータス保持部５４などのレジスタへのアクセスは多くの時間を要する。
【００２９】
従って、図３のステップＳ２とＳ３で説明した、CPU１１が割込ステータス保持部５４から割込ステータスを読み出す処理（以下、読出処理という）は、多くの時間を要する。
【００３０】
一方、割込ステータス処理に要する時間は、読出処理に要する時間に比べて少ない。また、割込ステータス処理に要する時間は、CPU１１の処理能力の向上に伴って減少する。即ち、割込ステータス処理に要する時間と読出処理に要する時間との差は、CPU１１の処理能力の向上に伴って、大きくなる。
【００３１】
そこで、読出処理におけるCPU１１のネットワークカード１９へのアクセスを削減することにより、割込処理の簡素化および割込処理に要する時間の削減を行い、CPU１１の負荷を軽減することが望ましい。
【００３２】
本発明は、このような状況に鑑みてなされたものであり、割込処理を簡素化し、割込処理に要する時間を削減することができるようにするものである。
【課題を解決するための手段】
【００３３】
本発明の第１側面の情報処理装置は、割込信号を発生する発生手段と、発生手段により発生される割込信号の発生原因を表すステータスを記憶する第１の記憶手段と、第１の記憶手段に記憶されるステータスに応じて、所定の処理を実行する実行手段とを備え、発生手段は、割込信号のステータスを記憶する第２の記憶手段と、第２の記憶手段により記憶されるステータスを、第１の記憶手段に記憶させる記憶制御手段とを備える。
【００３４】
実行手段が第１の記憶手段に記憶されているステータスを読み出すために必要となる第１の時間は、実行手段が第２の記憶手段に記憶されているステータスを読み出すために必要となる第２の時間よりも短いものとすることができる。
【００３５】
第２の記憶手段には、第１の記憶手段により記憶される第１のステータスと、第２の記憶手段により記憶される第２のステータスとが同期しているか否かを判定するための判定情報の第１の記憶領域を含ませることができ、第１の記憶手段には、判定情報を記憶する第２の記憶領域が設けられるとともに、第２の記憶領域とは異なる領域であって、判定情報を一時保持する第３の記憶領域が更に設けられるものとすることができ、記憶制御手段には、第２の記憶手段により記憶されるステータスを、第１の記憶手段に記憶させるとともに、第２の記憶手段の第１の記憶領域に記録される判定情報を、第１の記憶手段の第２の記憶領域に更に記憶させるようにすることができ、実行手段には、所定の処理を実行する場合、第２の記憶領域に記憶された判定情報と、第３の記憶領域に記憶された判定情報を基に、第１の記憶手段により記憶される第１のステータスと、第２の記憶手段により記憶される第２のステータスとが同期していると判断された場合、第１の記憶手段により記憶される第１のステータスに応じて所定の処理を実行させるようにすることができ、第２の記憶領域に記憶された判定情報と、第３の記憶領域に記憶された判定情報を基に、第１の記憶手段により記憶される第１のステータスと、第２の記憶手段により記憶される第２のステータスとが同期していないと判断された場合、第２の記憶手段により記憶される第２のステータスに応じて所定の処理を実行させるようにすることができる。
【００３６】
判定情報は、数値で表されるものとすることができ、実行手段には、第１のステータスまたは第２のステータスに応じて所定の処理を実行した後、第１の記憶領域に記憶された判定情報と同一の値を、第３の記憶領域に記憶させるとともに、第１の記憶領域に記憶された判定情報の値に１を加えさせることができ、次に所定の処理を実行する場合、第２の記憶領域に記憶された判定情報と、第３の記憶領域に記憶された判定情報を比較し、第２の記憶領域に記憶された判定情報の値が、第３の記憶領域に記憶された判定情報の値よりも１大きければ、第１の記憶手段により記憶される第１のステータスと、第２の記憶手段により記憶される第２のステータスとが同期していると判断して第１の記憶手段により記憶される第１のステータスに応じて所定の処理を実行させることができ、それ以外であれば、第１の記憶手段により記憶される第１のステータスと、第２の記憶手段により記憶される第２のステータスとが同期していないと判断して第２の記憶手段により記憶される第２のステータスに応じて所定の処理を実行させることができる。
【００３７】
本発明の第２の側面の情報処理装置は、割込信号を発生する発生手段と、発生手段により発生される割込信号の発生原因を表すステータスを記憶する記憶手段と、記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる記憶制御手段とを備える。
【００３８】
記憶手段には、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定するための判定情報を更に記憶させるようにすることができ、記憶制御手段には、ステータスとともに、判定情報を他の情報処理装置に記録させるようにすることができる。
【００３９】
本発明の第２の側面の情報処理方法は、割込信号を発生する発生ステップと、発生ステップの処理により発生される割込信号のステータスを記憶手段に記憶させる第１の記憶制御ステップと、記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる第２の記憶制御ステップとを含む。
【００４０】
本発明の第２の側面のプログラムは、割込信号を発生する発生ステップと、発生ステップの処理により発生される割込信号のステータスを記憶手段に記憶させる第１の記憶制御ステップと、記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる第２の記憶制御ステップとを含む。
【００４１】
本発明の第３の側面の情報処理装置は、他の情報処理装置から供給される割込信号のステータスを記憶する記憶手段と、記憶手段により記憶されるステータスに応じて、所定の処理を実行する実行手段とを備える。
【００４２】
記憶手段には、他の情報処理装置から、ステータスとともに、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定するための判定情報を更に取得して、ステータスと判定情報とを記憶させるようにすることができ、実行手段には、判定情報を基に、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定して、同期していると判定された場合、記憶手段により記憶されるステータスに応じて、所定の処理を実行させるようにすることができ、同期していないと判定された場合、他の情報処理装置から、ステータスを取得して、他の情報処理装置から取得されたステータスに応じて、所定の処理を実行させるようにすることができる。
【００４３】
割込信号のステータスと、それに対応する処理とを対応付けたテーブルを記憶する割込処理記憶手段をさらに設けさせるようにすることができ、実行手段には、割込処理記憶手段に記憶されるテーブルに基づいて、所定の処理を実行させるようにすることができる。
【００４４】
本発明の第３の側面の情報処理方法は、他の情報処理装置から供給される割込信号のステータスを記憶させる記憶制御ステップと、記憶制御ステップの処理により記憶されるステータスに応じて、所定の処理を実行する実行ステップとを含む。
【００４５】
本発明の第３の側面のプログラムは、他の情報処理装置から供給される割込信号のステータスを記憶させる記憶制御ステップと、記憶制御ステップの処理により記憶されるステータスに応じて、所定の処理を実行する実行ステップとを含む。
【００４６】
本発明の第１の側面においては、割込信号を発生し、その割込信号の発生原因を表すステータスを第２の記憶手段に記憶し、そのステータスを第１の記憶手段に記憶させる。そして、第１の記憶手段に記憶されるステータスに応じて、所定の処理を実行する。
【００４７】
本発明の第２の側面においては、割込信号を発生し、その割込信号の発生原因を表すステータスを記憶し、そのステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる。
【００４８】
本発明の第３の側面においては、他の情報処理装置から供給される割込信号のステータスを記憶し、そのステータスに応じて、所定の処理を実行する。
【発明の効果】
【００４９】
本発明によれば、割込処理を簡素化し、割込処理に要する時間を削減することができる。
【発明を実施するための最良の形態】
【００５０】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００５１】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００５２】
本発明の第１の側面の情報処理装置(例えば、図５のパーソナルコンピュータ１０１または図１４のパーソナルコンピュータ１６１)は、
割込信号を発生する発生手段(例えば、図５のネットワークカード１１３または図１４のネットワークカード１７２)と、
発生手段により発生される割込信号の発生原因を表すステータスを記憶する第１の記憶手段(例えば、図５のRAM１１２または図１４のRAM１７２)と、
第１の記憶手段に記憶されるステータスに応じて、所定の処理を実行する実行手段（例えば、図５のCPU１１１または図１４のCPU１７１）と
を備え、
発生手段は、
割込信号のステータスを記憶する第２の記憶手段（例えば、図６の割込ステータス保持部１４２または図１５の割込ステータス保持部１９１）と、
第２の記憶手段により記憶されるステータスを、第１の記憶手段に記憶させる記憶制御手段（例えば、図６または図１５の割込ステータス供給部１４１）と
を備える。
【００５３】
第２の記憶手段には、第１の記憶手段により記憶される第１のステータスと、第２の記憶手段により記憶される第２のステータスとが同期しているか否かを判定するための判定情報（例えば、割り込みバージョンビット）の第１の記憶領域（例えば、図１５の割込ステータス保持部１９１に保持されているステータス３２ビットのうちの上位４ビット）が含まれるものとすることができ、
第１の記憶手段には、判定情報（例えば、割り込みバージョンビット）を記憶する第２の記憶領域（例えば、割り込みステータス領域１８１の２３ビット中の上位４ビット）が設けられるとともに、第２の記憶領域とは異なる領域であって、判定情報を一時保持する第３の記憶領域（例えば、割り込みバージョンビットバックアップ領域１８３）が更に設けられるものとすることができ、
記憶制御手段には、第２の記憶手段により記憶されるステータスを、第１の記憶手段に記憶させるとともに、第２の記憶手段の第１の記憶領域に記録される判定情報を、第１の記憶手段の第２の記憶領域に更に記憶させるようにすることができ、
実行手段は、所定の処理を実行する場合、
第２の記憶領域に記憶された判定情報と、第３の記憶領域に記憶された判定情報を基に、第１の記憶手段により記憶される第１のステータスと、第２の記憶手段により記憶される第２のステータスとが同期していると判断された場合、第１の記憶手段により記憶される第１のステータスに応じて所定の処理を実行させることができ、
第２の記憶領域に記憶された判定情報と、第３の記憶領域に記憶された判定情報を基に、第１の記憶手段により記憶される第１のステータスと、第２の記憶手段により記憶される第２のステータスとが同期していないと判断された場合、第２の記憶手段により記憶される第２のステータスに応じて所定の処理を実行させることができる。
【００５４】
判定情報は、数値（４ビットにより表現される０乃至１５の値）で表されるものとすることができ、
実行手段は、
第１のステータスまたは第２のステータスに応じて所定の処理を実行した後、第１の記憶領域に記憶された判定情報と同一の値を、第３の記憶領域に記憶させるとともに、第１の記憶領域に記憶された判定情報の値に１を加え、
次に所定の処理を実行する場合、第２の記憶領域に記憶された判定情報と、第３の記憶領域に記憶された判定情報を比較し、第２の記憶領域に記憶された判定情報の値が、第３の記憶領域に記憶された判定情報の値よりも１大きければ、第１の記憶手段により記憶される第１のステータスと、第２の記憶手段により記憶される第２のステータスとが同期していると判断して第１の記憶手段により記憶される第１のステータスに応じて所定の処理を実行することができ、それ以外であれば、第１の記憶手段により記憶される第１のステータスと、第２の記憶手段により記憶される第２のステータスとが同期していないと判断して第２の記憶手段により記憶される第２のステータスに応じて所定の処理を実行することができる。
【００５５】
本発明の第２の側面の情報処理装置は、
割込信号を発生する情報処理装置(例えば、図６のネットワークカード１１３または図１４のネットワークカード１７２)であって、
割込信号を発生する発生手段（例えば、図６の割込発生部１４０）と、
発生手段により発生される割込信号の発生原因を表すステータスを記憶する記憶手段(例えば、図６の割込ステータス保持部１４２)または図１５の割込ステータス保持部１９１と、
記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる記憶制御手段(例えば、図６または図１５の割込ステータス供給部１４１)と
を備える。
【００５６】
記憶手段は、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定するための判定情報（例えば、割り込みバージョンビット）を更に記憶することができ、
記憶制御手段は、ステータスとともに、判定情報を他の情報処理装置に記録させることができる。
【００５７】
本発明の第２の側面の情報処理方法は、
割込信号を発生し、割込信号の発生原因を表すステータスを記憶させる記憶手段(例えば、図６の割込ステータス保持部１４２または図１５の割込ステータス保持部１９１)を備える情報処理装置（例えば、図６のネットワークカード１１３または図１４のネットワークカード１７２）の情報処理方法において、
割込信号を発生する発生ステップ（例えば、図９のステップＳ５６）と、
発生ステップの処理により発生される割込信号のステータスを記憶手段に記憶させる第１の記憶制御ステップ(例えば、図９のステップＳ５４)と、
記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置(例えば、図５のRAM１１２)に記憶させる第２の記憶制御ステップ(例えば、図１０のステップＳ７３の割込ステータス供給部１４１の処理)と
を含む。
【００５８】
本発明の第２の側面のプログラムは、
割込信号の発生原因を表すステータスを記憶させる記憶手段(例えば、図６の割込ステータス保持部１４２または図１５の割込ステータス保持部１９１)を備える情報処理装置（例えば、図６のネットワークカード１１３または図１４のネットワークカード１７２）を制御するコンピュータに行わせるプログラムにおいて、
割込信号を発生する発生ステップ(例えば、図９のステップＳ５６)と、
発生ステップの処理により発生される割込信号のステータスを記憶手段に記憶させる第１の記憶制御ステップ(例えば、図９のステップＳ５４)と、
記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置(例えば、図５のRAM１１２)に記憶させる第２の記憶制御ステップ(例えば、図１０のステップＳ７３の割込ステータス供給部１４１の処理)と
を含む。
【００５９】
本発明の第３の側面の情報処理装置は、
他の情報処理装置(例えば、図５のネットワークカード１１３または図１４のネットワークカード１７２)が発生する割込信号の発生原因を表すステータスに応じて、所定の処理を実行する情報処理装置（例えば、図５のCPU１１１とRAM１１２または図１４のCPU１７１とRAM１７２）において、
他の情報処理装置から供給される割込信号のステータスを記憶する記憶手段(例えば、図５のRAM１１２の割込ステータス領域１２１または図１４のRAM１７２割込ステータス領域１８１)と、
記憶手段により記憶されるステータスに応じて、所定の処理を実行する実行手段(例えば、図５のCPU１１１または図１４のCPU１７１)と
を備える。
【００６０】
記憶手段は、他の情報処理装置から、ステータスとともに、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定するための判定情報（例えば、割り込みバージョンビット）を更に取得して、ステータスと判定情報とを記憶することができ、
実行手段は、判定情報を基に、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定して、同期していると判定された場合、記憶手段により記憶されるステータスに応じて、所定の処理を実行することができ、同期していないと判定された場合、他の情報処理装置から、ステータスを取得して、他の情報処理装置から取得されたステータスに応じて、所定の処理を実行することができる。
【００６１】
割込信号のステータスと、それに対応する処理とを対応付けたテーブルを記憶する割込処理記憶手段(例えば、図５のRAM１１２の割込処理テーブル領域１２２または図１４のRAM１７２の割込処理テーブル領域１８２)
をさらに備えることができ、
実行手段は、割込処理記憶手段に記憶されるテーブルに基づいて、所定の処理を実行する（例えば、図１１のステップＳ９３，Ｓ９５、またはＳ９７の処理）ことができる。
【００６２】
本発明の第３の側面の情報処理方法は、
他の情報処理装置（例えば、図５のネットワークカード１１３または図１４のネットワークカード１７２）が発生する割込信号の発生原因を表すステータスに応じて、所定の処理を実行する情報処理装置(例えば、図５のCPU１１１とRAM１１２または図１４のCPU１７１とRAM１７２)の情報処理方法であって、
他の情報処理装置から供給される割込信号のステータスを記憶させる記憶制御ステップ(例えば、図１０のステップＳ７３のRAM１１２の処理)と、
記憶制御ステップの処理により記憶されるステータスに応じて、所定の処理を実行する実行ステップ（例えば、図１１のステップＳ９３，Ｓ９５、またはＳ９７）と
を含む。
【００６３】
本発明の第３の側面のプログラムは、
他の情報処理装置(例えば、図５のネットワークカード１１３または図１４のネットワークカード１７２)が発生する割込信号の発生原因を表すステータスに応じて、所定の処理を実行する処理を、コンピュータに行わせるプログラムであって、
他の情報処理装置から供給される割込信号のステータスを記憶させる記憶制御ステップ(例えば、図１０のステップＳ７３のRAM１１２の処理)と、
記憶制御ステップの処理により記憶されるステータスに応じて、所定の処理を実行する実行ステップ(例えば、図１１のステップＳ９３，Ｓ９５、またはＳ９７)と
を含む。
【００６４】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００６５】
図４は、本発明を適用した情報処理システム１００の一実施の形態の構成例を示すブロック図である。
【００６６】
図４の情報処理システム１００は、パソコン１０１、ネットワーク１０２、およびパソコン１０３から構成される。
【００６７】
パソコン１０１とパソコン１０３は、例えば、LAN（Local Area Network）、またはインターネットなどのネットワーク１０２を介して接続されており、相互に通信を行う。例えば、パソコン１０１とパソコン１０３は、TCP（Transmission Control Protocol）やＩＰ（Internet Protocol）などに準拠したヘッダが付加されたパケット（データ）を相互に通信する。
【００６８】
図５は、図４のパソコン１０１のハードウェア構成例を示すブロック図である。なお、図１と同一のものには、同一の符号を付してあり、説明は省略する。
【００６９】
図５のパソコン１０１は、ROM１２、バス１４、入出力インターフェース１５、入力部１６、出力部１７、記録部１８、ドライブ２０、CPU１１１、RAM１１２、およびネットワークカード１１３から構成される。
【００７０】
CPU１１１は、バス１４を介して、ROM１２とRAM１１２に接続される。CPU１１１は、ROM１１２に記憶されているプログラム、または記録部１８に記録されているプログラムにしたがって各種の処理を実行する。
【００７１】
例えば、CPU１１１は、ＲＡＭ１１２のディスクリプタ領域３１に、DMA転送の対象であるパケットが記憶される、RAM１１２のパケット領域３２のアドレスやパケットのサイズなどを、ディスクリプタとして記憶させることにより、ネットワークカード１１３に、そのパケットをDMA転送させる。
【００７２】
また、CPU１１１は、ネットワークカード１１３から供給される割込信号に応じて、割込処理を行う。具体的には、CPU１１１は、ＲＡＭ１１２の割込ステータス領域１２１（後述する）に記憶されている、割込信号の発生原因（ステータス）を表す割込ステータスを読み出す。そして、CPU１１１は、ＲＡＭ１１２の割込処理テーブル領域１２２に記憶される、割込ステータス処理と割込ステータスが表すステータスとが対応付けられている割込処理テーブル１６０(後述する図７)に基づいて、読み出した割込ステータスに対応する割込ステータス処理を行う。
【００７３】
RAM１１２は、ディスクリプタ領域３１、パケット領域３２、割込ステータス領域１２１、および割込処理テーブル領域１２２などから構成される。
【００７４】
割込ステータス領域１２１には、ネットワークカード１１３から供給される割込ステータスが記憶される。また、割込処理テーブル領域１２２には、CPU１１１により予め設定された割込処理テーブル１６０が記憶されている。
【００７５】
ネットワークカード１１３は、例えば、マイクロコンピュータなどにより構成され、所定のプログラムを実行することにより、DMA転送を行う。具体的には、ネットワークカード１１３は、RAM１１２のディスクリプタ領域３１に記憶されるディスクリプタに基づいて、RAM１１２のパケット領域３２に記憶されるパケットを読み出し、そのパケットを、ネットワーク１０２を介してパソコン１０３に送信する。また、ネットワークカード１１３は、ネットワーク１０２を介して、パソコン１０３からパケットを受信し、そのパケットを、ディスクリプタに基づいて、RAM１１２のパケット領域３２に記憶させる。
【００７６】
さらに、ネットワークカード１１３は、割込信号を発生し、CPU１１１に供給する。また、割込ステータスを設定して記憶するとともに、その割込ステータスをRAM１１２の割込ステータス領域１２１に供給して記憶させる。
【００７７】
なお、図４のパソコン１０３は、パソコン１０１と同様に構成されるので、説明は省略する。
【００７８】
図６は、図５のネットワークカード１１３が所定のプログラムを実行することにより有する機能の構成例を示すブロック図である。なお、図２と同一のものには同一の符号を付してある。
【００７９】
図６のネットワークカード１１３は、DMA転送部５１、パケット通信部５２、割込発生部１４０、割込ステータス供給部１４１、および割込ステータス保持部１４２から構成される。なお、図６のパケット通信部５２は、ネットワーク１０２を介してパケットの通信を行う。
【００８０】
割込発生部１４０は、DMA転送部５１からの状態情報に応じて、割込信号を発生させ、CPU１１に供給する。また、割込発生部１４０は、その状態情報に応じて、割込ステータスを設定し、その割込ステータスを割込ステータス保持部１４２に供給して記憶（更新）させる。割込発生部１４０は、割込ステータスの更新を、割込ステータス供給部１４１に通知する。
【００８１】
割込ステータス供給部１４１は、割込発生部１４０からの通知に応じて、割込ステータス保持部１４２から割込ステータスを読み出し、その割込ステータスを、RAM１１２の割込ステータス領域１２１（図５）に供給して記憶させる。また、割込ステータス供給部１４１は、CPU１１１からの要求に応じて、割込ステータス保持部１４２に保持されている割込ステータス（信号）の各ビットをクリア(消去)する。割込ステータス保持部１４２は、割込発生部１４０からの割込ステータスを保持する。
【００８２】
図７は、図５の割込処理テーブル領域１２２に記憶される割込処理テーブル１６０の例を示している。図５の割込処理テーブル領域１２２に記憶されるデータは、割込ステータス保持部１４２から読み出されて割込ステータス保持部１４２に保持されている割込ステータスと割込ステータス処理とが対応付けられているものである。すなわち、割込ステータス保持部１４２から読み出されて割込ステータス保持部１４２に保持されている割込ステータス（信号）は３２ビットからなり、図７と同様のビット配分で情報が記載されているものとする。
【００８３】
図７の割込処理テーブル１６０では、割込ステータス処理が、割込ステータスが表すステータスと、そのステータスが割り当てられた割込ステータスのビットとに対応付けられている。ここで、割込ステータスの所定のビットが「１」である場合、割込ステータスは、そのビットに割り当てられたステータスを表しているものとする。
【００８４】
例えば、割込処理テーブル１６０では、パケット通信部５２により送信が完了されたパケットが記憶されているRAM１１２のパケット領域３２に対する解放を行う処理が、割込ステータス処理として、パケット通信部５２によるパケットの送信の完了であるステータス（以下、送信完了ステータスという）と割込ステータスの下位０ビットとに対応付けられている。
【００８５】
即ち、CPU１１１は、割込ステータスの下位０ビット目（下位から０ビット目）が「１」である場合（割込ステータスが完了ステータスを表している場合）、割込ステータスに対応する割込ステータス処理として、RAM１１２のパケット領域３２に対する解放を行う。
【００８６】
また、割込処理テーブル１６０では、パケット通信部５２により受信されたパケットが記憶されているパケット領域３２からパケットを読み出し、そのパケットを用いて所定の処理を行う処理が、割込ステータス処理として、パケット通信部５２によるパケットの受信の完了であるステータス（以下、受信完了ステータスという）と割込ステータスの下位１ビットとに対応付けられている。
【００８７】
さらに、割込処理テーブル１６０では、ネットワークカード１１３をリセットする処理が、割込ステータス処理として、パケット通信部５２によるパケットの送信または受信のエラーであるステータス（以下、エラーステータスという）と割込ステータスの下位２ビットとに対応付けられている。
【００８８】
なお、割込ステータスの表すステータスは、１つであっても、複数であってもよい。例えば、割込ステータスの３２ビットのうち、下位０ビット目と下位１ビット目とが「１」である場合、その割込ステータスは、送信完了ステータスと受信完了ステータスの両方を表している。
【００８９】
次に、図８を参照して、図５のCPU１１１によるDMA転送要求処理について説明する。このDMA転送要求処理は、例えば、ユーザが入力部１６を操作することにより、パソコン１０３へのパケットの送信を指令したとき、開始される。
【００９０】
ステップＳ３１において、CPU１１１は、パソコン１０３に送信するパケット、即ちDMA転送の対象とするパケットを、RAM１１２のパケット領域３２に記憶させ、ステップＳ３２に進む。
【００９１】
ステップＳ３２において、CPU１１１は、ステップＳ３１でパケットが記憶されるパケット領域３２のアドレスやパケットのサイズなどの情報に基づいて、ディスクリプタを生成し、ディスクリプタ領域３１に記憶させて、ステップＳ３３に進む。
【００９２】
ステップＳ３３において、CPU１１１は、ネットワークカード１１３にDMA転送を要求し、処理を終了する。
【００９３】
なお、図８では、CPU１１１がネットワークカード１１３にDMA転送を要求し、パケットをパソコン１０３に送信させる場合について説明したが、パケットをパソコン１０３から受信させる場合についても同様の処理が行われる。
【００９４】
この場合、ステップＳ３１の処理は行われず、ステップＳ３２で生成されるディスクリプタには、受信されるパケットを記憶させるパケット領域３２のアドレスなどの情報が記憶される。
【００９５】
次に、図９を参照して、図６のネットワークカード１１３によるDMA転送処理について説明する。このDMA転送処理は、例えば、図８のステップＳ３３でCPU１１１によりDMA転送が要求されたとき、開始される。
【００９６】
ステップＳ５１において、DMA転送部５１は、図８のステップＳ３２でディスクリプタ領域３１に記憶されたディスクリプタに基づいて、DMA転送を行う。具体的には、DMA転送部５１は、ディスクリプタに基づいて、パケット領域３２からパケットを読み出し、パケット通信部５２を介してパソコン１０３に送信させるか、またはパケット領域３２にパケット通信部５２により受信されたパケットを記憶させる。
【００９７】
ステップＳ５１の処理後は、ステップＳ５２に進み、パケット通信部５２は、パケットの送信または受信のエラーが発生したかどうかを判定し、エラーが発生していないと判定された場合、ステップＳ５３に進む。
【００９８】
ステップＳ５３において、DMA転送部５１は、ディスクリプタに基づいて、DMA転送の対象とするパケットがあるかどうかを判定し、DMA転送の対象とするパケットがあると判定された場合、ステップＳ５１に戻り、上述した処理を繰り返す。
【００９９】
一方、ステップＳ５２においてエラーが発生したと判定された場合、パケット通信部５２は、エラーを表す状態情報を、DMA転送部５１を介して割込発生部１４０に供給して、ステップＳ５４に進む。
【０１００】
また、ステップＳ５３においてDMA転送の対象とするパケットがないと判定された場合、パケット通信部５２は、送信または受信の完了を表す状態情報を、DMA転送部５１を介して割込発生部１４０に供給し、ステップＳ５４に進む。
【０１０１】
ステップＳ５４において、割込発生部１４０は、DMA転送部５１からの状態情報に応じて、割込ステータスを設定し、その割込ステータスを、割込ステータス保持部１４２に保持させる。
【０１０２】
例えば、DMA転送部５１からエラーを表す状態情報が供給される場合、割込発生部１４０は、割込ステータスを、エラーステータスを表す割込ステータスに設定して、下位２ビット目が「１」の３２ビットの割込ステータスを、割込ステータス保持部１４２に保持させる。また、DMA転送部５１から送信または受信の完了を表す状態情報が供給される場合、割込発生部１４０は、割込ステータスを、送信完了ステータスまたは受信完了ステータスを表す割込ステータスに設定して、下位０ビット目または下位１ビット目が「１」の３２ビットの割込ステータスを、割込ステータス保持部１４２に保持させる。
【０１０３】
ステップＳ５４の処理後は、ステップＳ５５に進み、割込発生部１４０は、割込ステータスの更新を割込ステータス供給部１４１に通知し、ステップＳ５６に進む。
【０１０４】
ステップＳ５６において、割込発生部１４０は、割込信号を発生して、CPU１１１に供給し、処理を終了する。
【０１０５】
次に、図１０を参照して、ネットワークカード１１３による割込ステータスのコピー処理について説明する。
【０１０６】
ステップＳ７１において、割込ステータス供給部１４１は、割込ステータスが更新されたかどうかを判定する。具体的には、図９のステップＳ５５で割込ステータスの更新が通知された場合、またはCPU１１１からの要求に応じて割込ステータスがクリアされた場合、割込ステータス供給部１４１は、割込ステータスが更新されたと判定し、それ以外の場合、割込ステータスが更新されていないと判定する。
【０１０７】
ステップＳ７１において、割込ステータスが更新されていないと判定された場合、割込ステータス供給部１４１は、割込ステータスが更新されるまで待機する。
【０１０８】
一方、ステップＳ７１において、割込ステータスが更新されたと判定された場合、ステップＳ７２に進み、割込ステータス供給部１４１は、割込ステータス保持部１４２から割込ステータスを読み出し、ステップＳ７３に進む。
【０１０９】
ステップＳ７３において、割込ステータス供給部１４１は、ステップＳ７２で読み出した割込ステータスをRAM１１２の割込ステータス領域１２１にコピーする。即ち、割込ステータス供給部１４１は、割込ステータスをRAM１１２に供給する。RAM１１２は、その割込ステータスを割込ステータス領域１２１に記憶させる。
【０１１０】
次に、図１１を参照して、CPU１１１による割込処理１について説明する。この割込処理１は、例えば図９のステップＳ５６で割込発生部１４０により割込信号が供給されたとき、開始される。
【０１１１】
ステップＳ９１において、CPU１１１は、RAM１１２の割込ステータス領域１２１から割込ステータスを読み出し、ステップＳ９２に進む。
【０１１２】
ステップＳ９２において、CPU１１１は、RAM１１２の割込処理テーブル領域１２１に記憶される割込処理テーブル１６０に基づいて、ステップＳ９１で読み出した割込ステータスが表すステータスが、送信完了ステータスであるかどうか、即ち割込ステータスの３２ビットのうち下位０ビット目が「１」であるかどうかを判定し、ステータスが送信完了ステータスであると判定した場合、ステップＳ９３に進む。
【０１１３】
ステップＳ９３において、CPU１１１は、割込処理テーブル１６０に基づいて、送信完了ステータスに対応する割込ステータス処理として、パケット通信部５２により送信が完了されたパケットが記憶されている、RAM１１２のパケット領域３２に対する解放を行う。即ち、CPU１１１は、パケット領域３２に記憶されている、送信が完了されたパケットを削除する。
【０１１４】
ステップＳ９２でステータスが送信完了ステータスではないと判定された場合、またはステップＳ９３の処理後は、ステップＳ９４に進み、CPU１１１は、割込処理テーブル１６０に基づいて、ステップＳ９１で読み出した割込ステータスが表すステータスが、受信完了ステータスであるかどうか、即ち割込ステータスの３２ビットのうち下位１ビット目が「１」であるかどうかを判定し、ステータスが受信完了ステータスであると判定した場合、ステップＳ９５に進む。
【０１１５】
ステップＳ９５において、CPU１１１は、割込処理テーブル１６０に基づいて、受信完了ステータスに対応する割込ステータス処理として、パケット通信部５２により受信され、RAM１１２のパケット領域３２に記憶されたパケットを読み出し、そのパケットを用いて所定の処理を行う。例えば、CPU１１１は、そのパケットを用いて、パケットに対応する画像を出力部１７に表示させる処理を行う。
【０１１６】
ステップＳ９４でステータスが受信完了ステータスではないと判定された場合、またはステップＳ９５の処理後は、ステップＳ９６に進み、CPU１１１は、割込処理テーブル１６０に基づいて、ステップＳ９１で読み出した割込ステータスが表すステータスが、エラーステータスであるかどうか、即ち割込ステータスの３２ビットのうち下位２ビット目が「１」であるかどうかを判定する。
【０１１７】
ステップＳ９６において、ステータスがエラーステータスであると判定された場合、即ちパケット領域３２から読み出された送信対象のパケットや、まだパケット領域３２に記憶されていない、受信されたパケットの信頼性が保証されていない場合、ステップＳ９７に進む。
【０１１８】
ステップＳ９７において、CPU１１１は、割込処理テーブル１６０に基づいて、エラーステータスに対応する割込ステータス処理として、ネットワークカード１１３をリセットする。
【０１１９】
具体的には、CPU１１１は、例えば、ネットワークカード１１３のDMA転送部５１による、DMA転送の制御に用いられるレジスタの初期化、およびパケット通信部５２により送受信中のパケットの破棄を行う。
【０１２０】
ステップＳ９６でステータスがエラーステータスではないと判定された場合、またはステップＳ９７の処理後は、ステップＳ９８に進み、CPU１１１は、割込ステータスのクリアをネットワークカード１１３に要求し、処理を終了する。
【０１２１】
以上のように、パソコン１０１では、ネットワークカード１１３の割込ステータス供給部１４１が、割込ステータスをRAM１１２の割込ステータス領域１２１に記憶させるので、CPU１１１は、割込処理において、RAM１１２から割込ステータスを読み出すことができる。即ち、CPU１１１は、ネットワークカード１１３の割込ステータス保持部１４２から割込ステータスを読み出す必要がない。その結果、パソコン１０１では、図３で説明した従来の場合に比べて、割込処理を簡素化し、割込処理に要する時間を削減することができる。
【０１２２】
次に、図１２を参照して、パソコン１０１による割込発生処理について説明する。
【０１２３】
ステップＳ１５１において、ネットワークカード１１３の割込ステータス供給部１４１は、割込ステータスをRAM１１２の割込ステータス領域１２１に供給し、ステップＳ１５２に進む。
【０１２４】
ステップＳ１３１において、RAM１１２の割込ステータス領域１２１は、割込ステータス供給部１４１からの割込ステータスを記憶する。即ち、割込ステータス供給部１４１からの割込ステータスは、割込ステータス領域１２１にコピーされる。
【０１２５】
ステップＳ１５２において、ネットワークカード１１３の割込発生部１４０は、DMA転送部５１からの状態情報に応じて、割込信号を発生し、その割込信号をCPU１１１に通知して、ステップＳ１５３に進む。
【０１２６】
ステップＳ１１１において、CPU１１１は、割込発生部１４０からの割込信号を受信し、ステップＳ１１２に進む。ステップＳ１１２において、CPU１１１は、RAM１１２に割込ステータスの読出を要求し、ステップＳ１１３に進む。
【０１２７】
ステップＳ１３１の処理後は、ステップＳ１３２に進み、RAM１１２の割込ステータス領域１２１は、CPU１１１からの割込ステータスの読出の要求を受信し、ステップＳ１３３に進む。ステップＳ１３３において、割込ステータス領域１２１は、割込ステータスの読出の要求に応じて、いま記憶（保持）している割込ステータスをCPU１１１に通知し、ステップＳ１３４に進む。
【０１２８】
ステップＳ１１３において、CPU１１１は、割込ステータス領域１２１からの割込ステータスを受信し、ステップＳ１１４に進む。ステップＳ１１４において、CPU１１１は、割込処理テーブル領域１２２に記憶される割込処理テーブル１６０に基づいて、受信した割込ステータスに対応する割込ステータス処理を行い、ステップＳ１１５に進む。
【０１２９】
ステップＳ１１５において、CPU１１１は、割込ステータス保持部１４２に保持されている割込ステータスのクリアを、ネットワークカード１１３に要求し、処理を終了する。以上のように、CPU１１１は、ステップＳ１１１で割込発生部５３から供給される割込信号に応じて、割込処理として、ステップＳ１１２乃至Ｓ１１５の処理を行い、処理を終了する。
【０１３０】
ステップＳ１５３において、ネットワークカード１１３の割込ステータス供給部１４１は、CPU１１１からの割込ステータスのクリアの要求を受信し、割込ステータス保持部１４２に保持されている割込ステータスの各ビットをクリアし、ステップＳ１５４に進む。
【０１３１】
ステップＳ１５４において、割込ステータス供給部１４１は、割込ステータス保持部１４２に保持されている割込ステータスを読み出し、RAM１１２に供給して処理を終了する。
【０１３２】
ステップＳ１３４において、RAM１１２の割込ステータス領域１２１は、割込ステータス供給部１４１からの割込ステータスを受信して記憶する。即ち、割込ステータス保持部１４２に保持されている割込ステータスが、割込ステータス領域１２１にコピーされる。
【０１３３】
なお、割込信号を発生するデバイスは、ネットワークカード１１３に限定されず、例えばデータストレージなどであってもよい。
【０１３４】
以上のように、パソコン１０１では、割込ステータス供給部１４１が、割込ステータス保持部１４２に記憶される割込ステータスを、RAM１１２の割込ステータス領域１２１に供給し、割込ステータス領域１２１が割込ステータスを記憶するようにしたので、割込処理を簡素化し、割込処理に要する時間を削減することができる。
【０１３５】
ところで、上述した処理においては、割込発生部からCPUに対して割り込みが発生した場合、割込ステータス保持部の内容をメモリにコピーして、それをCPUが読み込み、割り込みの要因を知ることでCPUの負荷の低減を行った。
【０１３６】
図１２では、ネットワークカード１１３のステータスをＲＡＭ１１２にコピーした後、割込通知を行うようになっているが、一般にハードウェアがメモリへの書き込みの完了を確認する機構は、コスト上の問題などやバスの仕様などから保証できない。
【０１３７】
上述したように、一般的に、CPUがバスを介して行うRAMへのアクセスに比べて、CPUがバスと入出力インターフェースを介して行う、ネットワークカードの割込ステータス保持部などのレジスタへのアクセスは多くの時間を要する。
【０１３８】
したがって、例えば、CPU処理速度が高速な場合などにおいては、割込ステータスのコピーが完了する前に割り込み通知を受けたCPUがＲＡＭに記録されている以前の割込ステータスに基づいて割り込み処理を行ってしまう恐れがある。また、例えば、バスが込み合っている場合などには、図１３に示されるように、図１２における場合と同様のタイミングで割込ステータスのコピーが成功せず、CPUがＲＡＭに記録されている割込ステータスを取得するタイミングが、割込ステータスのコピー成功のタイミング（ステップＳ１５１´）よりも早くなってしまうので、ＲＡＭに記録されている、以前の（すなわち、古い割り込みに対応する）割込ステータスに基づいて割り込み処理を行ってしまい、割り込みと割り込み処理との同期を取ることが出来なくなってしまう恐れがある。
【０１３９】
そこで、ＣＰＵが、ＲＡＭに記録されている割込ステータスが、正しく更新されたものであるか否かを判断することができるようにすると、更に好適である。具体的には、ネットワークカードの割込ステータス保持部にCPUが使用できる（更新することができる）割込バージョンビットを用意し、ステータスクリアと同時にその領域にデータを書き込むようにしておくとともに、ＲＡＭの割込ステータス保持部に保持されている値をコピーする領域（割込ステータス領域）とは異なる領域に、以前の処理における割込バージョンビットのバックアップを保存しておくものとする。そして、ＣＰＵは、割り込みが発生されるたびに、ＲＡＭにコピーされた割込バージョンビットの値とバックアップしていた以前の処理における割込バージョンビットの値とを比較して、ＲＡＭにコピーされたステータスとネットワークカードの割込ステータス保持部に記載されている実際の割り込みのステータスの同期が取れているかを確認することができるようにすると更に好適である。
【０１４０】
図１４は、ＲＡＭにコピーしたステータスと実際の割り込みのステータスの同期を確認することができるパーソナルコンピュータ１６１の構成を示すブロック図である。
【０１４１】
なお、図５における場合と同一のものには、同一の符号を付してあり、その詳細な説明は適宜省略する。
【０１４２】
すなわち、図１４のパーソナルコンピュータ１６１は、ＣＰＵ１１１に代わってＣＰＵ１７１が設けられ、ＲＡＭ１１２に代わってＲＡＭ１７２が設けられ、ネットワークカード１１３に代わってネットワークカード１７３が設けられている以外は、図５を用いて説明したパーソナルコンピュータ１０１と基本的に同様の構成を有するものである。
【０１４３】
また、ＲＡＭ１７２は、割込ステータス領域１２１に代わって、割込ステータスビットおよび割込バージョンビットをネットワークカード１７３からコピーして保持することが可能な割込ステータス領域１８１が設けられ、割込処理テーブル領域１２２に代わって、図１６を用いて後述する割込処理テーブルを記憶するテーブル領域１８２が設けられ、新たに、ＣＰＵ１７１の処理により割込バージョンビットのバックアップを保持することができる割込バージョンビットバックアップ領域１８３が設けられている以外は、図５を用いて説明したＲＡＭ１１２と基本的に同様の構成を有するものである。
【０１４４】
すなわち、ＣＰＵ１７１は、バス１４を介して、ROM１２とＲＡＭ１７２に接続されており、ROM１１２に記憶されているプログラム、または記録部１８に記録されているプログラムにしたがって各種の処理を実行する。例えば、ＣＰＵ１７１は、ＲＡＭ１７２のディスクリプタ領域３１に、DMA転送の対象であるパケットが記憶される、RAM１７２のパケット領域３２のアドレスやパケットのサイズなどを、ディスクリプタとして記憶させることにより、ネットワークカード１７３に、そのパケットをDMA転送させる。
【０１４５】
また、ＣＰＵ１７１は、ネットワークカード１７３から供給される割込信号に応じて、割込処理を行う。具体的には、ＣＰＵ１７１は、ＲＡＭ１７２の割込ステータス領域１８１に記憶されている、割込信号の発生原因（ステータス）を表す割込ステータスとともに、割込バージョンビットを読み出す。そして、ＣＰＵ１７１は、読み出された割込バージョンビットの値を参照し、割込バージョンビットバックアップ領域１８３にバックアップされている値と比較して、ＲＡＭ１７２にコピーされているステータスとネットワークカード１７３の割込ステータス保持部１９１（図１５）に記載されている実際の割り込みのステータスの同期が取れているか否かを確認する。
【０１４６】
そして、同期が取れている場合、ＣＰＵ１７１は、ＲＡＭ１７２の割込処理テーブル領域１８２に記憶されている、割込ステータス処理と割込ステータスが表すステータスとが対応付けられている割込処理テーブルに基づいて、ＲＡＭ１７２の割込ステータス領域１８１から読み出した割込ステータスに対応する割込ステータス処理を行う。一方、同期が取れていない場合、ＣＰＵ１７１は、ネットワークカード１７３の割込ステータス保持部１９１に記載されている実際の割り込みのステータスを読み込んで、ＲＡＭ１７２の割込処理テーブル領域１８２に記憶される、割込ステータス処理と割込ステータスが表すステータスとが対応付けられている割込処理テーブルに基づいて、読み出した割込ステータスに対応する割込ステータス処理を行う。
【０１４７】
そして、ＣＰＵ１７１は、割込ステータス処理の終了後、ＲＡＭ１７２の割込バージョンビットバックアップ領域１８３に保持されている値をバックアップする（すなわち、割込ステータス処理以前の値から１インクリメントする）。そして、ＣＰＵ１７１は、ネットワークカード１７３に保持されている割込ステータス（信号）の各ビットをクリア(消去)させるとともに、割込バージョンビットの値を１インクリメントさせるように、ネットワークカード１７３を制御する。
【０１４８】
ＲＡＭ１７２は、ディスクリプタ領域３１、パケット領域３２、割込ステータス領域１８１、および割込処理テーブル領域１８２などから構成される。
【０１４９】
割込ステータス領域１８１には、ネットワークカード１７３から供給される割込ステータスおよび割込バージョンビットが記憶される。また、割込処理テーブル領域１８２には、ＣＰＵ１７１により予め設定された割込処理テーブルが記憶されている。
【０１５０】
図１６を用いて、割込処理テーブル領域１８２に記憶される割込処理テーブルと、割込ステータス領域１８１に記憶される割込ステータスおよび割込バージョンビットに記載されるデータの構成について説明する。
【０１５１】
割込処理テーブル領域１８２に記憶される割込処理テーブルは、図１６に示される構成の割込ステータスおよび割込バージョンビットの値を保持している。割込ステータスについては、図７を用いて説明した場合と同一であるが、更に、上位４ビット分の割込バージョンビットが規定され、上位４ビット分の割込バージョンビットに「１」が書き込まれた場合であっても、割り込み処理が実行されないようになされている。したがって、ＲＡＭ１７２の割込ステータス領域１８１にも、図１６に示されるデータ構成の割込ステータスおよび割込バージョンビットの値が保持される。ここでも、割込ステータス（信号）および割込バージョンビットの値は、図７を用いて説明した場合と同様に３２ビットからなるものとする。しかしながら、これらのビット数は、３２ビットとは異なるものであってもよいことは言うまでもない。
【０１５２】
ここでは、割込バージョンビットとして４ビットが与えられているので、割込バージョンビットは１０進数における０乃至１５の値をとることができる。すなわち、これ以下において割込バージョンビットをインクリメントするという場合、１０進数において、０乃至１４の値においては、その値に１が加えられることを示し、また値が１５の場合においては、その値が０となることを示す。
【０１５３】
ネットワークカード１７３は、例えば、マイクロコンピュータなどにより構成され、所定のプログラムを実行することにより、DMA転送を行う。具体的には、ネットワークカード１７３は、ＲＡＭ１７２のディスクリプタ領域３１に記憶されるディスクリプタに基づいて、ＲＡＭ１７２のパケット領域３２に記憶されるパケットを読み出し、そのパケットを、ネットワーク１０２を介してパソコン１０３に送信する。また、ネットワークカード１７３は、ネットワーク１０２を介して、パソコン１０３からパケットを受信し、そのパケットを、ディスクリプタに基づいて、ＲＡＭ１７２のパケット領域３２に記憶させる。
【０１５４】
さらに、ネットワークカード１７３は、割込信号を発生し、ＣＰＵ１７１に供給する。また、割込ステータスを設定して記憶するとともに、その割込ステータスを、割込バージョンビットとともに、ＲＡＭ１７２の割込ステータス領域１８１に供給して記憶させる。
【０１５５】
図１５は、図１４のネットワークカード１７３の構成を示すブロック図である。なお、図６における場合と同一のものには、同一の符号を付してあり、その詳細な説明は適宜省略する。
【０１５６】
すなわち、図１５のネットワークカード１７３は、割込ステータス保持部１４２に代わって、割込ステータス保持部１９１が設けられている以外は、図６を用いて説明したネットワークカード１１３と基本的に同様の構成を有し、同様の機能を有するものである。
【０１５７】
すなわち、割込発生部１４０は、DMA転送部５１からの状態情報に応じて、割込信号を発生させ、CPU１１に供給する。また、割込発生部１４０は、その状態情報に応じて、割込ステータスを設定し、その割込ステータスを割込ステータス保持部１９１に供給して記憶（更新）させる。割込発生部１４０は、割込ステータスの更新を、割込ステータス供給部１４１に通知する。
【０１５８】
割込ステータス供給部１４１は、割込発生部１４０からの通知に応じて、割込ステータス保持部１９１から割込ステータスおよび割込バージョンビットを読み出し、読み出された割込ステータスおよび割込バージョンビットを、ＲＡＭ１７２の割込ステータス領域１８１に供給して記憶させる。また、割込ステータス供給部１４１は、ＣＰＵ１７１からの要求に応じて、割込ステータス保持部１９１に保持されている割込ステータス（信号）の各ビットをクリア(消去)するとともに、割込バージョンビットの値を１インクリメントする。割込ステータス保持部１９１は、割込発生部１４０またはＣＰＵ１７１の制御に基づいて、割込ステータスおよび割込バージョンビットの値を保持する。
【０１５９】
割込ステータス保持部１９１は、図１６に示される構成と同様ビット配分の割込ステータスおよび割込バージョンビットの値を保持することが可能である。また、割込ステータス保持部１９１の３２ビット中の上位4ビット、すなわち、割込バージョンビットの値が保持される領域は、ＣＰＵ１７１が自由に使用してもよい。換言すれば、割込バージョンビットの値が保持される領域は、ＣＰＵ１７１の制御によりその値を書き換えることが可能な領域として用意されている。
【０１６０】
割込ステータス保持部１９１に保持されている割込ステータスおよび割込バージョンビットは、割り込みが発生して、下位の0ビット目、1ビット目、2ビット目に送信完了、受信完了、および、エラーのそれぞれの割込ステータスの値が変化した場合と、例えば、割込バージョンビットのインクリメントなど、ＣＰＵ１７１から割込ステータス保持部１９１に保持されている値の変更が指令された場合、ＲＡＭ１７２の割込ステータス領域１８１にコピーされる。
【０１６１】
なお、パーソナルコンピュータ１６１においても、ＤＭＡ転送要求処理、および、ＤＭＡ転送処理については、図８および図９を用いて説明した場合と基本的に同様であり、コピー処理については、コピーされるデータが、割込ステータスのみではなく、割込ステータスおよび割込バージョンビットであること以外は、図１０を用いて説明した場合と基本的に同様であるので、これらの処理についての説明は省略する。
【０１６２】
次に、図１７のフローチャートを参照して、初期化処理について説明する。
ステップＳ１８１において、ＣＰＵ１７１は、ネットワークカード１７１のリセットを行う。
【０１６３】
ステップＳ１８２において、ＣＰＵ１７１は、ネットワークカード１７１の割込バージョンビットの値を、ＲＡＭ１７２の割込バージョンビットバックアップ領域１８３にバックアップする。
【０１６４】
ステップＳ１８３において、ＣＰＵ１７１は、ステップＳ１８２においてＲＡＭ１７２の割込バージョンビットバックアップ領域１８３にバックアップされた割込バージョンビットの値に１を加えた値を、割込バージョンビットとしてネットワークカード１７１の割込ステータス保持部１９１の所定の領域（ここでは、上位４ビット）に書き込むとともに、割込ステータス保持部１９１の割込ステータスのクリアを要求する。ネットワークカード１７１の割込ステータス保持部１９１には、ＣＰＵ１７１の制御に基づいて、割込バージョンビットバックアップ領域１８３にバックアップされた割込バージョンビットの値に１を加えた値が割込バージョンビットとして書き込まれるとともに、送信完了、受信完了、または、エラーなどの割込ステータスの値がクリアされて、処理が終了される。
【０１６５】
次に、図１８のフローチャートを参照して、CPU１７１による割込処理２について説明する。この割込処理１は、例えば図９のステップＳ５６で割込発生部１４０により割込信号が供給されたとき、開始される。
【０１６６】
ステップＳ２１１において、CPU１７１は、RAM１７２の割込ステータス領域１８１から割込ステータスおよび割込バージョンビットを読み出す。
【０１６７】
ステップＳ２１２において、CPU１７１は、RAM１７２の割込ステータス領域１８１から読み出された割込バージョンビットの値は、ＲＡＭ１７２の割込バージョンビットバックアップ領域１８３にバックアップされている割込バージョンビットのバックアップ値に１を加えたものであるか否かを判断する。
【０１６８】
ステップＳ２１２において、RAM１７２の割込ステータス領域１８１から読み出された割込バージョンビットの値は、ＲＡＭ１７２の割込バージョンビットバックアップ領域１８３にバックアップされている割込バージョンビットのバックアップ値に１を加えたものであると判断された場合、ステップＳ２１３において、CPU１７１は、ステップＳ２１１においてＲＡＭ１７２から読み出された割込ステータスを用いて割り込み処理を実行するものとする。
【０１６９】
ステップＳ２１２において、RAM１７２の割込ステータス領域１８１から読み出された割込バージョンビットの値は、ＲＡＭ１７２の割込バージョンビットバックアップ領域１８３にバックアップされている割込バージョンビットのバックアップ値に１を加えたものではないと判断された場合、ステップＳ２１４において、CPU１７１は、ステップＳ２１１においてＲＡＭ１７２から読み出された割込ステータスを用いずに、ネットワークカード１７３にアクセスし、ネットワークカード１７３の割込ステータス保持部１９１に保持されている割込ステータスの値を読み出して、割り込み処理を実行するものとする。
【０１７０】
ステップＳ２１３、または、ステップＳ２１４の処理の終了後、ステップＳ２１５乃至ステップＳ２２０において、CPU１７１は、図１１のステップＳ９２乃至ステップＳ９７と基本的に同様の処理を実行する。
【０１７１】
すなわち、ＣＰＵ１７１は、ＲＡＭ１７２の割込処理テーブル領域１２１に記憶される割込処理テーブル１６０に基づいて、ＲＡＭ１７２またはネットワークカード１７３から読み出された割込ステータスが表すステータスが、送信完了ステータスであるかどうか、即ち割込ステータスの３２ビットのうち下位０ビット目が「１」であるかどうかを判定し、ステータスが送信完了ステータスであると判定した場合、割込処理テーブルに基づいて、送信完了ステータスに対応する割込ステータス処理として、パケット通信部５２により送信が完了されたパケットが記憶されている、ＲＡＭ１７２のパケット領域３２に対する解放を行う。即ち、ＣＰＵ１７１は、パケット領域３２に記憶されている、送信が完了されたパケットを削除する。
【０１７２】
ステータスが送信完了ステータスではないと判定された場合、またはＲＡＭ１７２の解放後、ＣＰＵ１７１は、読み出された割込ステータスが表すステータスが、受信完了ステータスであるかどうか、即ち割込ステータスの３２ビットのうち下位１ビット目が「１」であるかどうかを判定し、ステータスが受信完了ステータスであると判定した場合、割込処理テーブルに基づいて、受信完了ステータスに対応する割込ステータス処理として、パケット通信部５２により受信され、ＲＡＭ１７２のパケット領域３２に記憶されたパケットを読み出し、そのパケットを用いて所定の処理を行う。例えば、ＣＰＵ１７１は、そのパケットを用いて、パケットに対応する画像を出力部１７に表示させる処理を行う。
【０１７３】
ステータスが受信完了ステータスではないと判定された場合、または、読み出されたパケットによる所定の処理の終了後、ＣＰＵ１７１は、読み出された割込ステータスが表すステータスが、エラーステータスであるかどうか、即ち割込ステータスの３２ビットのうち下位２ビット目が「１」であるかどうかを判定する。ステータスがエラーステータスであると判定された場合、即ちパケット領域３２から読み出された送信対象のパケットや、まだパケット領域３２に記憶されていない、受信されたパケットの信頼性が保証されていない場合、ＣＰＵ１７１は、割込処理テーブル１６０に基づいて、エラーステータスに対応する割込ステータス処理として、ネットワークカード１１３をリセットする。具体的には、ＣＰＵ１７１は、例えば、ネットワークカード１７３のDMA転送部５１による、DMA転送の制御に用いられるレジスタの初期化、およびパケット通信部５２により送受信中のパケットの破棄を行う。
【０１７４】
ステップＳ２１９においてステータスがエラーステータスではないと判定された場合、またはステップＳ２２０の処理の終了後、ステップＳ２２１において、ＣＰＵ１７１は、ＲＡＭ１７２の割込バージョンビットバックアップ領域１８３にバックアップされている割込バージョンビットの値に１を加える。
【０１７５】
ステップＳ２２２において、ＣＰＵ１７１は、ステップＳ２２１でバックアップされた割込バージョンビットの値に１を加えた値を割込バージョンビットとしてネットワークカード１７３の割込ステータス保持部１９１に書き込むとともに、割込ステータスのクリアをネットワークカード１７３に要求し、処理を終了する。
【０１７６】
このように、ＲＡＭ１７３にコピーされた割込ステータスが、ネットワークカード１７３の割込ステータスと同期が取れているか否かを判断することができ、ＣＰＵ１７１は、同期が取れている場合、ＲＡＭ１７３にコピーされた割込ステータスを基に割り込み処理を実行し、同期が取れていない場合、ネットワークカード１７３にアクセスして、ネットワークカード１７３の割込ステータスを読み出して割り込み処理を実行するようにしたので、割り込み処理を簡素化し、割込処理に要する時間を削減することができるとともに、割込ステータスのコピーが完了する前に割り込み通知を受けたCPU１７１がＲＡＭ１７２に記録されている以前の割込ステータスに基づいて割り込み処理を行ってしまうことを防止することができる。
【０１７７】
具体的には、図１９および図２０に示されるように、RAM１７２の割込ステータス領域１８１に、割込ステータス供給部１４１からの割込ステータスが記憶されるタイミングによって処理が異なる。
【０１７８】
ＣＰＵ１７１がＲＡＭ１７２のRAM１７２の割込ステータス領域１８１にアクセスしたとき、ＲＡＭ１７３にコピーされた割込ステータスが、ネットワークカード１７３の割込ステータスと同期が取れている場合の処理について、図１９を用いて説明する。
【０１７９】
ステップＳ２９１において、ネットワークカード１７３の割込ステータス供給部１４１は、割込ステータスをRAM１７２の割込ステータス領域１２１に供給する。
【０１８０】
ステップＳ２７１において、RAM１７２の割込ステータス領域１８１は、割込ステータス供給部１４１からの割込ステータスを記憶する。即ち、割込ステータス供給部１４１からの割込ステータスは、割込ステータス領域１８１にコピーされる。
【０１８１】
ステップＳ２９２において、ネットワークカード１７３の割込発生部１４０は、DMA転送部５１からの状態情報に応じて、割込信号を発生し、その割込信号をCPU１７１に通知する。
【０１８２】
CPU１７１は、ステップＳ２５１において、割込発生部１４０からの割込信号を受信し、ステップＳ２５２において、RAM１７２に割込ステータスの読出を要求する。
【０１８３】
RAM１７２の割込ステータス領域１８１は、ステップＳ２７２において、CPU１７１からの割込ステータスの読出の要求を受信し、ステップＳ２７３において、割込ステータスの読出の要求に応じて、いま記憶（保持）している割込ステータスをCPU１７１に通知する。ここでは、ステップＳ２７１において、割込ステータスがコピーされているので、RAM１７２の割込ステータス領域１８１とネットワークカード１７３の割込ステータス保持部１９１とに記録されている割込ステータスは同期している。
【０１８４】
CPU１７１は、ステップＳ２５３において、割込ステータス領域１２１からの割込ステータスを受信し、ステップＳ２５４において、バックアップされている割込バージョンビットと、ＲＡＭ１７２から読み出された割込バージョンビットとの比較を行う（図１８のステップＳ２１２の処理）。ここでは、RAM１７２の割込ステータス領域１８１とネットワークカード１７３の割込ステータス保持部１９１とに記録されている割込ステータスは同期しているので、ステップＳ２５５において、ＣＰＵ１７１は、すでに読み込まれているＲＡＭ１７２の割込ステータスを用いて、割込処理テーブル領域１２２に記憶される割込処理テーブル１６０に基づいて、割込ステータス処理を行う（図１８のステップＳ２１３およびステップＳ２１５乃至ステップＳ２２０の処理）。
【０１８５】
そして、ステップＳ２５６において、ＣＰＵ１７１は、ＲＡＭ１７３の割込バージョンビットバックアップ領域１８３にバックアップされている割込バージョンビットの値を１インクリメントする（図１８のステップＳ２２１の処理）。
【０１８６】
ステップＳ２５７において、CPU１７１は、割込ステータス保持部１４２に保持されている割込バージョンビットを１インクリメントし、割込ステータスをクリアすることを、ネットワークカード１７３に要求する（図１８のステップＳ２２２の処理）。
【０１８７】
そして、ステップＳ２９３において、ネットワークカード１７３の割込ステータス供給部１４１は、CPU１７１から供給される割込バージョンビットのインクリメントと割込ステータスのクリアの要求を受信して、割込ステータス保持部１４２に保持されている割込バージョンビットをインクリメントするとともに割込ステータス保持部１４２に保持されている割込ステータスの各ビットをクリアする。そして、割込ステータス供給部１４１は、ステップＳ２９４において、割込ステータス保持部１４２に保持されている割込ステータスを読み出し、RAM１７２に供給する。
【０１８８】
ステップＳ２７４において、RAM１７２の割込ステータス領域１８１は、供給された割込ステータスおよび割込バージョンビットを受信して記憶する。即ち、割込ステータス保持部１９１に保持されている割込ステータスおよび割込バージョンビットが割込ステータス領域１８１にコピーされて、処理が終了される。
【０１８９】
このように、ＲＡＭ１７２への割込ステータスのコピーの同期が取れていると判断された場合、ＣＰＵ１７１は、そのつどネットワークカード１７３と情報を授受することにより割込ステータスを取得する場合と比較して、高速に割り込み処理を実行することが可能である。
【０１９０】
次に、ＣＰＵ１７１がＲＡＭ１７２のRAM１７２の割込ステータス領域１８１にアクセスしたとき、ＲＡＭ１７３にコピーされた割込ステータスが、ネットワークカード１７３の割込ステータスと同期が取れていない場合の処理について、図２０を用いて説明する。
【０１９１】
ステップＳ３５１において、ネットワークカード１７３の割込ステータス供給部１４１は、割込ステータスをRAM１７２の割込ステータス領域１８１に供給する。
【０１９２】
しかしながら、RAM１７２の割込ステータス領域１８１は、割込ステータス供給部１４１からの割込ステータスの記憶に失敗する。即ち、割込ステータス供給部１４１からの割込ステータスは、割込ステータス領域１８１にコピーされない。ネットワークカード１７３の割込ステータス供給部１４１は、割込ステータスをRAM１７２の割込ステータス領域１８１に供給する処理を再度実行する（後述するステップＳ３５５の処理）
【０１９３】
ステップＳ３５２において、ネットワークカード１７３の割込発生部１４０は、DMA転送部５１からの状態情報に応じて、割込信号を発生し、その割込信号をCPU１７１に通知する。
【０１９４】
CPU１７１は、ステップＳ３１１において、割込発生部１４０からの割込信号を受信し、ステップＳ３１２において、RAM１７２に割込ステータスの読出を要求する。
【０１９５】
RAM１７２の割込ステータス領域１８１は、ステップＳ３３１において、CPU１７１からの割込ステータスの読出の要求を受信し、ステップＳ３３２において、割込ステータスの読出の要求に応じて、いま記憶（保持）している割込ステータスをCPU１７１に通知する。ここでは、割込ステータスのコピーが失敗しているので、RAM１７２の割込ステータス領域１８１とネットワークカード１７３の割込ステータス保持部１９１とに記録されている割込ステータスは同期していない。
【０１９６】
CPU１７１は、ステップＳ３１３において、割込ステータス領域１２１からの割込ステータスを受信し、ステップＳ３１４において、バックアップされている割込バージョンビットと、ＲＡＭ１７２から読み出された割込バージョンビットとの比較を行う（図１８のステップＳ２１２の処理）。ここでは、バックアップされている割込バージョンビットと、ＲＡＭ１７２から読み出された割込バージョンビットとのそれぞれの値が等しいので、RAM１７２の割込ステータス領域１８１とネットワークカード１７３の割込ステータス保持部１９１とに記録されている割込ステータスは同期していないと判断される。
【０１９７】
そして、ステップＳ３１５において、ＣＰＵ１７１は、ネットワークカード１７３の割込ステータス保持部１９１に、割込ステータスの読出要求を行う。
【０１９８】
ネットワークカード１７３の割込ステータス供給部１４１は、ステップＳ３５３において、割込ステータスの読出要求をうけ、ステップＳ３５４において、割込ステータス保持部１９１に記憶されている割込ステータスを読み出して、ＣＰＵ１７１に供給する。
【０１９９】
CPU１７１は、ステップＳ３１６において、ネットワークカード１７３の割込ステータス供給部１４１から割込ステータスの通知を受け、ステップＳ３１７において、供給された割込ステータスを用いて、割込処理テーブル領域１２２に記憶される割込処理テーブル１６０に基づいて、受信した割込ステータスに対応する割込ステータス処理を行う（図１８のステップＳ２１４およびステップＳ２１５乃至ステップＳ２２０の処理）。
【０２００】
そして、ステップＳ３１８において、ＣＰＵ１７１は、ＲＡＭ１７３の割込バージョンビットバックアップ領域１８３にバックアップされている割込バージョンビットの値を１インクリメントする（図１８のステップＳ２２１の処理）。
【０２０１】
ステップＳ３５５において、ネットワークカード１７３の割込ステータス供給部１４１は、割込ステータスをRAM１７２の割込ステータス領域１２１に供給する。
【０２０２】
そして、ステップＳ３３３において、RAM１７２の割込ステータス領域１８１は、割込ステータス供給部１４１からの割込ステータスを記憶する。即ち、割込ステータス供給部１４１からの割込ステータスは、割込ステータス領域１８１にコピーされる。
【０２０３】
ステップＳ３１９において、CPU１７１は、割込ステータス保持部１４２に保持されている割込バージョンビットを１インクリメントし、割込ステータスをクリアすることを、ネットワークカード１７３に要求する（図１８のステップＳ２２２の処理）。
【０２０４】
そして、ステップＳ３５６において、ネットワークカード１７３の割込ステータス供給部１４１は、CPU１７１から供給される割込バージョンビットのインクリメントと割込ステータスのクリアの要求を受信して、割込バージョンビットをインクリメントするとともに割込ステータス保持部１４２に保持されている割込ステータスの各ビットをクリアする。そして、割込ステータス供給部１４１は、ステップＳ３５７において、割込ステータス保持部１４２に保持されている割込ステータスを読み出し、RAM１７２に供給する。
【０２０５】
ステップＳ３３４において、RAM１７２の割込ステータス領域１８１は、供給された割込ステータスおよび割込バージョンビットを受信して記憶する。即ち、割込ステータス保持部１９１に保持されている割込ステータスおよび割込バージョンビットが割込ステータス領域１８１にコピーされて、処理が終了される。
【０２０６】
このように、ＲＡＭ１７２への割込ステータスのコピーの同期が取れていないと判断された場合、ＣＰＵ１７１は、ネットワークカード１７３と情報を授受することにより割込ステータスを取得するので、過去の割込ステータスにより誤った割り込み処理を実行しない。
【０２０７】
このように、本発明を適用することにより、ＲＡＭへコピーされたステータスをもちいることにより、ＣＰＵは、割り込み要因の読み込み処理の負荷の低減をはかることができるとともに、ステータスコピーと割り込みとのタイミングのずれが発生する場合を考慮して、ＲＡＭにコピーされているステータスの同期が取れている場合は、ＲＡＭから読み出されたステータスを用いて割り込み処理を実行し、ＲＡＭにコピーされているステータスの同期が取れていない場合は、ＲＡＭにコピーされているステータスを利用しないようにすることにより、誤った割り込みを行ってしまうことを防ぐことができる。
【０２０８】
なお、割込信号を発生するデバイスは、ネットワークカード１７３に限定されず、例えばデータストレージなどであってもよい。
【０２０９】
なお、ここでは、ＣＰＵ１７１による割込バージョンビットのバックアップの値と、ＲＡＭ１７２にコピーされた割込バージョンビットの値（正しくコピーされていれば、割込バージョンビットとしてネットワークカード１７３の割込ステータス保持部１９１に書き込まれるバックアップされた割込バージョンビットの値に１を加えた値）とを比較して、ＲＡＭ１７２にコピーされた割込バージョンビットの値が割込バージョンビットのバックアップの値より１大きい場合に、ＲＡＭ１７２への割込ステータスのコピーの同期が取れていると判断されるものとして説明したが、ＲＡＭ１７２への割込ステータスのコピーの同期が取れているか否かを判断することができれば、割込バージョンビットに割り当てられるビット数や、それぞれ１回にインクリメントされる値などは異なるものであってもよいことは言うまでもない。
【０２１０】
また、ここでは、割り込み処理について説明したが、割り込み回数の低減を狙い、例えばタイマなどで一定のインターバルによるポーリングを行った場合おいても、本発明は適用可能である。この場合、ハードウェアの割り込み処理（ネットワークカードからの割り込みによる割り込み処理）の部分をタイマが発生する割り込みによる割り込み処理に置き換えて、同様の処理を行うことができる。
【０２１１】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０２１２】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０２１３】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０２１４】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２１５】
【図１】従来のパーソナルコンピュータの一例を示すブロック図である。
【図２】図１のネットワークカードの機能的構成例を示すブロック図である。
【図３】図１のパソコンによる割込発生処理について説明するアローチャートである。
【図４】本発明を適用した情報処理システムの一実施の形態の構成例を示すブロック図である。
【図５】図４のパソコンのハードウェア構成例を示すブロック図である。
【図６】図５のネットワークカードの機能的構成例を示すブロック図である。
【図７】割込処理テーブルの例を示す図である。
【図８】CPUによるDMA転送要求処理について説明するフローチャートである。
【図９】ネットワークカードによるDMA転送処理について説明するフローチャートである。
【図１０】ネットワークカードによる割込ステータスのコピー処理について説明するフローチャートである。
【図１１】CPUによる割込処理１について説明するフローチャートである。
【図１２】パソコンによる割込発生処理について説明するアローチャートである。
【図１３】パソコンによる割込発生処理で動作に不具合が発生する場合について説明するアローチャートである。
【図１４】パーソナルコンピュータの構成を示すブロック図である。
【図１５】図１４のネットワークカードの機能的構成例を示すブロック図である。
【図１６】割込処理テーブルの例を示す図である。
【図１７】初期化処理について説明するフローチャートである。
【図１８】CPUによる割込処理２について説明するフローチャートである。
【図１９】パソコンによる割込発生処理について説明するアローチャートである。
【図２０】パソコンによる割込発生処理について説明するアローチャートである。
【符号の説明】
【０２１６】
５１  DMA転送部，  ５２  パケット通信部，  １０１  パーソナルコンピュータ，  １１１  CPU，  １１２  RAM，  １１３  ネットワークカード，  １４０  割込発生部，  １４１  割込ステータス供給部，  １４２  割込ステータス保持部，  １６１  パーソナルコンピュータ，  １７１  CPU，  １７２  RAM，  １７３  ネットワークカード，  １８２  割込バージョンビットバックアップ領域，  １９１  割込ステータス保持部
【図１】
2007012021.tif 000003
【図２】
2007012021.tif 000004
【図３】
2007012021.tif 000005
【図４】
2007012021.tif 000006
【図５】
2007012021.tif 000007
【図６】
2007012021.tif 000008
【図７】
2007012021.tif 000009
【図８】
2007012021.tif 000010
【図９】
2007012021.tif 000011
【図１０】
2007012021.tif 000012
【図１１】
2007012021.tif 000013
【図１２】
2007012021.tif 000014
【図１３】
2007012021.tif 000015
【図１４】
2007012021.tif 000016
【図１５】
2007012021.tif 000017
【図１６】
2007012021.tif 000018
【図１７】
2007012021.tif 000019
【図１８】
2007012021.tif 000020
【図１９】
2007012021.tif 000021
【図２０】
2007012021.tif 000022