JP2007012021A - 情報処理装置および情報処理方法、並びにプログラム - Google Patents
情報処理装置および情報処理方法、並びにプログラム Download PDFInfo
- Publication number
- JP2007012021A JP2007012021A JP2006030486A JP2006030486A JP2007012021A JP 2007012021 A JP2007012021 A JP 2007012021A JP 2006030486 A JP2006030486 A JP 2006030486A JP 2006030486 A JP2006030486 A JP 2006030486A JP 2007012021 A JP2007012021 A JP 2007012021A
- Authority
- JP
- Japan
- Prior art keywords
- status
- interrupt
- stored
- storage
- information processing
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】割込処理を簡素化し、割込処理に要する時間を削減する。
【解決手段】割込発生部140は割込信号を発生する。割込ステータス保持部142は、割込信号の発生原因を表す割込ステータスを記憶する。割込ステータス供給部141は、割込ステータス保持部により記憶される割込ステータスをRAMに供給し、記憶させる。CPUは、RAMに記憶される割込ステータスに応じて、所定の処理を実行する。本発明は、例えば、ネットワークカードに適用することができる。
【選択図】図6
【解決手段】割込発生部140は割込信号を発生する。割込ステータス保持部142は、割込信号の発生原因を表す割込ステータスを記憶する。割込ステータス供給部141は、割込ステータス保持部により記憶される割込ステータスをRAMに供給し、記憶させる。CPUは、RAMに記憶される割込ステータスに応じて、所定の処理を実行する。本発明は、例えば、ネットワークカードに適用することができる。
【選択図】図6
Description
本発明は、情報処理装置および情報処理方法、並びにプログラムに関し、特に、割込処理を簡素化し、割込処理に要する時間を削減することができるようにする情報処理装置および情報処理方法、並びにプログラムに関する。
図1は、ディスクリプタを用いてDMA(Direct Memory Access)転送を行うネットワークカードを備えたパーソナルコンピュータ(以下、パソコンという)1の一例を示すブロック図である。
図1に示されるように、CPU(Central Processing Unit)11は、バス14を介して、ROM(Read Only Memory)12とRAM(Random Access Memory)13に接続される。CPU11は、ROM12に記憶されているプログラム、または記録部18に記録されているプログラムにしたがって各種の処理を実行する。
例えば、CPU11は、RAM13のディスクリプタ領域31(後述する)に、DMA転送の対象であるパケットが記憶される、RAM13のパケット領域32のアドレスやパケットのサイズ(長さ)などを、ディスクリプタとして記憶させることにより、ネットワークカード19に、そのパケットをDMA転送させる。
また、CPU11は、ネットワークカード19から供給される割込信号に応じて、ネットワークカード19に記憶されている、割込信号の発生原因(ステータス)を表す割込ステータスを読み出し、その割込ステータスに対応する割込ステータス処理を行うことにより、割込処理を行う。
RAM13は、ディスクリプタが記憶されるディスクリプタ領域31、およびDMA転送の対象であるパケットが記憶されるパケット領域32などから構成される。
CPU11にはまた、バス14を介して入出力インターフェース15が接続されている。入出力インターフェース15には、キーボード、マウスなどよりなる入力部16、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)ディスプレイなどよりなる出力部17が接続されている。CPU11は、入力部16から入力される指令に対応して各種の処理を実行する。そして、CPU11は、処理の結果得られた画像や音声などを出力部17に出力する。
入出力インターフェース15に接続されている記録部18は、例えば、ハードディスクなどで構成され、CPU11が実行するプログラムや各種のデータを記録する。ネットワークカード19は、DMA転送を行う。具体的には、ネットワークカード19は、RAM13のディスクリプタ領域31に記憶されるディスクリプタに基づいて、RAM13のパケット領域32に記憶されるパケットを読み出し、そのパケットを、図示せぬネットワークを介して他の装置に送信する。また、ネットワークカード19は、図示せぬネットワークを介して、他の装置からパケットを受信し、そのパケットを、ディスクリプタに基づいて、RAM13のパケット領域32に記憶させる。
さらに、ネットワークカード19は、割込信号を発生し、CPU11に供給するとともに、割込ステータスを設定して記憶する。
入出力インターフェース15に接続されているドライブ20は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア21が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部18に転送され、記録される。
図2は、図1のネットワークカード19の機能的構成例を示すブロック図である。
図2のネットワークカード19は、DMA転送部51、パケット通信部52、割込発生部53、および割込ステータス保持部54から構成される。
DMA転送部51は、DMA転送を制御する。具体的には、DMA転送部51は、CPU11から供給されるDMA転送の要求に応じて、ディスクリプタ領域31(図1)からディスクリプタを読み出す。そして、DMA転送部51は、そのディスクリプタに基づいて、DMA転送の対象であるパケットをパケット領域32から読み出してパケット通信部52に供給したり、パケット通信部52から供給されるパケットをパケット領域32に記憶する。また、DMA転送部51は、パケット通信部52から供給される、パケット通信部52による処理の状態(例えば、パケットの送信完了状態、受信完了状態、送受信のエラー状態など)を表す状態情報を割込発生部53に供給する。
パケット通信部52は、図示せぬネットワークを介して、DMA転送部51からのパケットを、他の装置に送信する。また、パケット通信部52は、図示せぬネットワークを介して、他の装置からパケットを受信し、DMA転送部51に供給する。さらに、パケット通信部52は、状態情報をDMA転送部51に供給する。
割込発生部53は、DMA転送部51からの状態情報に応じて、割込信号を発生させ、CPU11に供給する。また、割込発生部53は、その状態情報に応じて、割込ステータスを設定し、その割込ステータスを割込ステータス保持部54に供給して記憶させる。
割込ステータス保持部54は、割込発生部53からの割込ステータスを保持する。割込ステータス保持部54は、CPU11からの要求に応じて、割込ステータスをクリア(解除)する。
次に、図3を参照して、パソコン1による割込発生処理について説明する。
ステップS11において、ネットワークカード19の割込発生部53は、DMA転送部51からの状態情報に応じて、割込信号を発生し、その割込信号をCPU11に通知(送信)して、ステップS12に進む。
ステップS1において、CPU11は、割込発生部53からの割込信号を受信し、ステップS2に進む。ステップS2において、CPU11は、ネットワークカード19に割込ステータスの読出を要求し、ステップS3に進む。
ステップS12において、ネットワークカード19の割込ステータス保持部54は、CPU11からの割込ステータスの読出の要求を受信し、ステップS13に進む。ステップS13において、割込ステータス保持部54は、割込ステータスの読出の要求に応じて、いま保持している割込ステータスを通知(送信)し、ステップS14に進む。
ステップS3において、CPU11は、割込ステータス保持部54から割込ステータスを受信し、ステップS4に進む。ステップS4において、CPU11は、その割込ステータスに対応する割込ステータス処理を行う。
例えば、割込ステータスが、パケット通信部52による、DMA転送の対象であるパケットの送信の完了を表す割込ステータスである場合、CPU11は、割込ステータス処理として、送信が完了されたパケットが記憶されているパケット領域32に対する解放を行う。即ち、CPU11は、パケット領域32に記憶されている、送信が完了されたパケットを削除する。
ステップS4の処理後は、ステップS5に進み、CPU11は、割込ステータス保持部54に保持されている割込ステータスのクリアを、ネットワークカード19に要求し、処理を終了する。以上のように、CPU11は、ステップS1で割込発生部53から供給される割込信号に応じて、割込処理として、ステップS2乃至S5の処理を行い、処理を終了する。
ステップS14において、ネットワークカード19の割込ステータス保持部54は、CPU11からの割込ステータスのクリアの要求を受信し、その要求に応じて、割込ステータスをクリアする。即ち、割込ステータス保持部54は、保持している割込ステータス(信号)の各ビットをクリアする。
ところで、従来、割込処理を行う装置において、割込通知に関する処理の負荷を軽減するための様々な方法が提案されている。例えば、割込発生装置と割込処理装置との間に、割込集約手段を設け、多重割込を防止する割り込み処理システムがある(例えば、特許文献1参照)。
また、DMA転送が完了した場合、外部I/F(Interface)機器のDMAコントローラが、CPUに割込信号を発生せず、外部I/F機器内のステータスレジスタに記憶される割込信号のステータスのみを更新し、CPUが、所定時間毎に発生されるタイマ割込に応じて、そのステータスレジスタに記憶されるステータスを参照することにより、割込の通知回数を減少させるデータ転送システムがある(例えば、特許文献2参照)。
一般的に、CPU11がバス14を介して行うRAM13へのアクセスに比べて、バス14と入出力インターフェース15を介して行う、ネットワークカード19の割込ステータス保持部54などのレジスタへのアクセスは多くの時間を要する。
従って、図3のステップS2とS3で説明した、CPU11が割込ステータス保持部54から割込ステータスを読み出す処理(以下、読出処理という)は、多くの時間を要する。
一方、割込ステータス処理に要する時間は、読出処理に要する時間に比べて少ない。また、割込ステータス処理に要する時間は、CPU11の処理能力の向上に伴って減少する。即ち、割込ステータス処理に要する時間と読出処理に要する時間との差は、CPU11の処理能力の向上に伴って、大きくなる。
そこで、読出処理におけるCPU11のネットワークカード19へのアクセスを削減することにより、割込処理の簡素化および割込処理に要する時間の削減を行い、CPU11の負荷を軽減することが望ましい。
本発明は、このような状況に鑑みてなされたものであり、割込処理を簡素化し、割込処理に要する時間を削減することができるようにするものである。
本発明の第1側面の情報処理装置は、割込信号を発生する発生手段と、発生手段により発生される割込信号の発生原因を表すステータスを記憶する第1の記憶手段と、第1の記憶手段に記憶されるステータスに応じて、所定の処理を実行する実行手段とを備え、発生手段は、割込信号のステータスを記憶する第2の記憶手段と、第2の記憶手段により記憶されるステータスを、第1の記憶手段に記憶させる記憶制御手段とを備える。
実行手段が第1の記憶手段に記憶されているステータスを読み出すために必要となる第1の時間は、実行手段が第2の記憶手段に記憶されているステータスを読み出すために必要となる第2の時間よりも短いものとすることができる。
第2の記憶手段には、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期しているか否かを判定するための判定情報の第1の記憶領域を含ませることができ、第1の記憶手段には、判定情報を記憶する第2の記憶領域が設けられるとともに、第2の記憶領域とは異なる領域であって、判定情報を一時保持する第3の記憶領域が更に設けられるものとすることができ、記憶制御手段には、第2の記憶手段により記憶されるステータスを、第1の記憶手段に記憶させるとともに、第2の記憶手段の第1の記憶領域に記録される判定情報を、第1の記憶手段の第2の記憶領域に更に記憶させるようにすることができ、実行手段には、所定の処理を実行する場合、第2の記憶領域に記憶された判定情報と、第3の記憶領域に記憶された判定情報を基に、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期していると判断された場合、第1の記憶手段により記憶される第1のステータスに応じて所定の処理を実行させるようにすることができ、第2の記憶領域に記憶された判定情報と、第3の記憶領域に記憶された判定情報を基に、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期していないと判断された場合、第2の記憶手段により記憶される第2のステータスに応じて所定の処理を実行させるようにすることができる。
判定情報は、数値で表されるものとすることができ、実行手段には、第1のステータスまたは第2のステータスに応じて所定の処理を実行した後、第1の記憶領域に記憶された判定情報と同一の値を、第3の記憶領域に記憶させるとともに、第1の記憶領域に記憶された判定情報の値に1を加えさせることができ、次に所定の処理を実行する場合、第2の記憶領域に記憶された判定情報と、第3の記憶領域に記憶された判定情報を比較し、第2の記憶領域に記憶された判定情報の値が、第3の記憶領域に記憶された判定情報の値よりも1大きければ、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期していると判断して第1の記憶手段により記憶される第1のステータスに応じて所定の処理を実行させることができ、それ以外であれば、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期していないと判断して第2の記憶手段により記憶される第2のステータスに応じて所定の処理を実行させることができる。
本発明の第2の側面の情報処理装置は、割込信号を発生する発生手段と、発生手段により発生される割込信号の発生原因を表すステータスを記憶する記憶手段と、記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる記憶制御手段とを備える。
記憶手段には、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定するための判定情報を更に記憶させるようにすることができ、記憶制御手段には、ステータスとともに、判定情報を他の情報処理装置に記録させるようにすることができる。
本発明の第2の側面の情報処理方法は、割込信号を発生する発生ステップと、発生ステップの処理により発生される割込信号のステータスを記憶手段に記憶させる第1の記憶制御ステップと、記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる第2の記憶制御ステップとを含む。
本発明の第2の側面のプログラムは、割込信号を発生する発生ステップと、発生ステップの処理により発生される割込信号のステータスを記憶手段に記憶させる第1の記憶制御ステップと、記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる第2の記憶制御ステップとを含む。
本発明の第3の側面の情報処理装置は、他の情報処理装置から供給される割込信号のステータスを記憶する記憶手段と、記憶手段により記憶されるステータスに応じて、所定の処理を実行する実行手段とを備える。
記憶手段には、他の情報処理装置から、ステータスとともに、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定するための判定情報を更に取得して、ステータスと判定情報とを記憶させるようにすることができ、実行手段には、判定情報を基に、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定して、同期していると判定された場合、記憶手段により記憶されるステータスに応じて、所定の処理を実行させるようにすることができ、同期していないと判定された場合、他の情報処理装置から、ステータスを取得して、他の情報処理装置から取得されたステータスに応じて、所定の処理を実行させるようにすることができる。
割込信号のステータスと、それに対応する処理とを対応付けたテーブルを記憶する割込処理記憶手段をさらに設けさせるようにすることができ、実行手段には、割込処理記憶手段に記憶されるテーブルに基づいて、所定の処理を実行させるようにすることができる。
本発明の第3の側面の情報処理方法は、他の情報処理装置から供給される割込信号のステータスを記憶させる記憶制御ステップと、記憶制御ステップの処理により記憶されるステータスに応じて、所定の処理を実行する実行ステップとを含む。
本発明の第3の側面のプログラムは、他の情報処理装置から供給される割込信号のステータスを記憶させる記憶制御ステップと、記憶制御ステップの処理により記憶されるステータスに応じて、所定の処理を実行する実行ステップとを含む。
本発明の第1の側面においては、割込信号を発生し、その割込信号の発生原因を表すステータスを第2の記憶手段に記憶し、そのステータスを第1の記憶手段に記憶させる。そして、第1の記憶手段に記憶されるステータスに応じて、所定の処理を実行する。
本発明の第2の側面においては、割込信号を発生し、その割込信号の発生原因を表すステータスを記憶し、そのステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる。
本発明の第3の側面においては、他の情報処理装置から供給される割込信号のステータスを記憶し、そのステータスに応じて、所定の処理を実行する。
本発明によれば、割込処理を簡素化し、割込処理に要する時間を削減することができる。
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
本発明の第1の側面の情報処理装置(例えば、図5のパーソナルコンピュータ101または図14のパーソナルコンピュータ161)は、
割込信号を発生する発生手段(例えば、図5のネットワークカード113または図14のネットワークカード172)と、
発生手段により発生される割込信号の発生原因を表すステータスを記憶する第1の記憶手段(例えば、図5のRAM112または図14のRAM172)と、
第1の記憶手段に記憶されるステータスに応じて、所定の処理を実行する実行手段(例えば、図5のCPU111または図14のCPU171)と
を備え、
発生手段は、
割込信号のステータスを記憶する第2の記憶手段(例えば、図6の割込ステータス保持部142または図15の割込ステータス保持部191)と、
第2の記憶手段により記憶されるステータスを、第1の記憶手段に記憶させる記憶制御手段(例えば、図6または図15の割込ステータス供給部141)と
を備える。
割込信号を発生する発生手段(例えば、図5のネットワークカード113または図14のネットワークカード172)と、
発生手段により発生される割込信号の発生原因を表すステータスを記憶する第1の記憶手段(例えば、図5のRAM112または図14のRAM172)と、
第1の記憶手段に記憶されるステータスに応じて、所定の処理を実行する実行手段(例えば、図5のCPU111または図14のCPU171)と
を備え、
発生手段は、
割込信号のステータスを記憶する第2の記憶手段(例えば、図6の割込ステータス保持部142または図15の割込ステータス保持部191)と、
第2の記憶手段により記憶されるステータスを、第1の記憶手段に記憶させる記憶制御手段(例えば、図6または図15の割込ステータス供給部141)と
を備える。
第2の記憶手段には、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期しているか否かを判定するための判定情報(例えば、割り込みバージョンビット)の第1の記憶領域(例えば、図15の割込ステータス保持部191に保持されているステータス32ビットのうちの上位4ビット)が含まれるものとすることができ、
第1の記憶手段には、判定情報(例えば、割り込みバージョンビット)を記憶する第2の記憶領域(例えば、割り込みステータス領域181の23ビット中の上位4ビット)が設けられるとともに、第2の記憶領域とは異なる領域であって、判定情報を一時保持する第3の記憶領域(例えば、割り込みバージョンビットバックアップ領域183)が更に設けられるものとすることができ、
記憶制御手段には、第2の記憶手段により記憶されるステータスを、第1の記憶手段に記憶させるとともに、第2の記憶手段の第1の記憶領域に記録される判定情報を、第1の記憶手段の第2の記憶領域に更に記憶させるようにすることができ、
実行手段は、所定の処理を実行する場合、
第2の記憶領域に記憶された判定情報と、第3の記憶領域に記憶された判定情報を基に、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期していると判断された場合、第1の記憶手段により記憶される第1のステータスに応じて所定の処理を実行させることができ、
第2の記憶領域に記憶された判定情報と、第3の記憶領域に記憶された判定情報を基に、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期していないと判断された場合、第2の記憶手段により記憶される第2のステータスに応じて所定の処理を実行させることができる。
第1の記憶手段には、判定情報(例えば、割り込みバージョンビット)を記憶する第2の記憶領域(例えば、割り込みステータス領域181の23ビット中の上位4ビット)が設けられるとともに、第2の記憶領域とは異なる領域であって、判定情報を一時保持する第3の記憶領域(例えば、割り込みバージョンビットバックアップ領域183)が更に設けられるものとすることができ、
記憶制御手段には、第2の記憶手段により記憶されるステータスを、第1の記憶手段に記憶させるとともに、第2の記憶手段の第1の記憶領域に記録される判定情報を、第1の記憶手段の第2の記憶領域に更に記憶させるようにすることができ、
実行手段は、所定の処理を実行する場合、
第2の記憶領域に記憶された判定情報と、第3の記憶領域に記憶された判定情報を基に、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期していると判断された場合、第1の記憶手段により記憶される第1のステータスに応じて所定の処理を実行させることができ、
第2の記憶領域に記憶された判定情報と、第3の記憶領域に記憶された判定情報を基に、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期していないと判断された場合、第2の記憶手段により記憶される第2のステータスに応じて所定の処理を実行させることができる。
判定情報は、数値(4ビットにより表現される0乃至15の値)で表されるものとすることができ、
実行手段は、
第1のステータスまたは第2のステータスに応じて所定の処理を実行した後、第1の記憶領域に記憶された判定情報と同一の値を、第3の記憶領域に記憶させるとともに、第1の記憶領域に記憶された判定情報の値に1を加え、
次に所定の処理を実行する場合、第2の記憶領域に記憶された判定情報と、第3の記憶領域に記憶された判定情報を比較し、第2の記憶領域に記憶された判定情報の値が、第3の記憶領域に記憶された判定情報の値よりも1大きければ、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期していると判断して第1の記憶手段により記憶される第1のステータスに応じて所定の処理を実行することができ、それ以外であれば、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期していないと判断して第2の記憶手段により記憶される第2のステータスに応じて所定の処理を実行することができる。
実行手段は、
第1のステータスまたは第2のステータスに応じて所定の処理を実行した後、第1の記憶領域に記憶された判定情報と同一の値を、第3の記憶領域に記憶させるとともに、第1の記憶領域に記憶された判定情報の値に1を加え、
次に所定の処理を実行する場合、第2の記憶領域に記憶された判定情報と、第3の記憶領域に記憶された判定情報を比較し、第2の記憶領域に記憶された判定情報の値が、第3の記憶領域に記憶された判定情報の値よりも1大きければ、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期していると判断して第1の記憶手段により記憶される第1のステータスに応じて所定の処理を実行することができ、それ以外であれば、第1の記憶手段により記憶される第1のステータスと、第2の記憶手段により記憶される第2のステータスとが同期していないと判断して第2の記憶手段により記憶される第2のステータスに応じて所定の処理を実行することができる。
本発明の第2の側面の情報処理装置は、
割込信号を発生する情報処理装置(例えば、図6のネットワークカード113または図14のネットワークカード172)であって、
割込信号を発生する発生手段(例えば、図6の割込発生部140)と、
発生手段により発生される割込信号の発生原因を表すステータスを記憶する記憶手段(例えば、図6の割込ステータス保持部142)または図15の割込ステータス保持部191と、
記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる記憶制御手段(例えば、図6または図15の割込ステータス供給部141)と
を備える。
割込信号を発生する情報処理装置(例えば、図6のネットワークカード113または図14のネットワークカード172)であって、
割込信号を発生する発生手段(例えば、図6の割込発生部140)と、
発生手段により発生される割込信号の発生原因を表すステータスを記憶する記憶手段(例えば、図6の割込ステータス保持部142)または図15の割込ステータス保持部191と、
記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる記憶制御手段(例えば、図6または図15の割込ステータス供給部141)と
を備える。
記憶手段は、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定するための判定情報(例えば、割り込みバージョンビット)を更に記憶することができ、
記憶制御手段は、ステータスとともに、判定情報を他の情報処理装置に記録させることができる。
記憶制御手段は、ステータスとともに、判定情報を他の情報処理装置に記録させることができる。
本発明の第2の側面の情報処理方法は、
割込信号を発生し、割込信号の発生原因を表すステータスを記憶させる記憶手段(例えば、図6の割込ステータス保持部142または図15の割込ステータス保持部191)を備える情報処理装置(例えば、図6のネットワークカード113または図14のネットワークカード172)の情報処理方法において、
割込信号を発生する発生ステップ(例えば、図9のステップS56)と、
発生ステップの処理により発生される割込信号のステータスを記憶手段に記憶させる第1の記憶制御ステップ(例えば、図9のステップS54)と、
記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置(例えば、図5のRAM112)に記憶させる第2の記憶制御ステップ(例えば、図10のステップS73の割込ステータス供給部141の処理)と
を含む。
割込信号を発生し、割込信号の発生原因を表すステータスを記憶させる記憶手段(例えば、図6の割込ステータス保持部142または図15の割込ステータス保持部191)を備える情報処理装置(例えば、図6のネットワークカード113または図14のネットワークカード172)の情報処理方法において、
割込信号を発生する発生ステップ(例えば、図9のステップS56)と、
発生ステップの処理により発生される割込信号のステータスを記憶手段に記憶させる第1の記憶制御ステップ(例えば、図9のステップS54)と、
記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置(例えば、図5のRAM112)に記憶させる第2の記憶制御ステップ(例えば、図10のステップS73の割込ステータス供給部141の処理)と
を含む。
本発明の第2の側面のプログラムは、
割込信号の発生原因を表すステータスを記憶させる記憶手段(例えば、図6の割込ステータス保持部142または図15の割込ステータス保持部191)を備える情報処理装置(例えば、図6のネットワークカード113または図14のネットワークカード172)を制御するコンピュータに行わせるプログラムにおいて、
割込信号を発生する発生ステップ(例えば、図9のステップS56)と、
発生ステップの処理により発生される割込信号のステータスを記憶手段に記憶させる第1の記憶制御ステップ(例えば、図9のステップS54)と、
記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置(例えば、図5のRAM112)に記憶させる第2の記憶制御ステップ(例えば、図10のステップS73の割込ステータス供給部141の処理)と
を含む。
割込信号の発生原因を表すステータスを記憶させる記憶手段(例えば、図6の割込ステータス保持部142または図15の割込ステータス保持部191)を備える情報処理装置(例えば、図6のネットワークカード113または図14のネットワークカード172)を制御するコンピュータに行わせるプログラムにおいて、
割込信号を発生する発生ステップ(例えば、図9のステップS56)と、
発生ステップの処理により発生される割込信号のステータスを記憶手段に記憶させる第1の記憶制御ステップ(例えば、図9のステップS54)と、
記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置(例えば、図5のRAM112)に記憶させる第2の記憶制御ステップ(例えば、図10のステップS73の割込ステータス供給部141の処理)と
を含む。
本発明の第3の側面の情報処理装置は、
他の情報処理装置(例えば、図5のネットワークカード113または図14のネットワークカード172)が発生する割込信号の発生原因を表すステータスに応じて、所定の処理を実行する情報処理装置(例えば、図5のCPU111とRAM112または図14のCPU171とRAM172)において、
他の情報処理装置から供給される割込信号のステータスを記憶する記憶手段(例えば、図5のRAM112の割込ステータス領域121または図14のRAM172割込ステータス領域181)と、
記憶手段により記憶されるステータスに応じて、所定の処理を実行する実行手段(例えば、図5のCPU111または図14のCPU171)と
を備える。
他の情報処理装置(例えば、図5のネットワークカード113または図14のネットワークカード172)が発生する割込信号の発生原因を表すステータスに応じて、所定の処理を実行する情報処理装置(例えば、図5のCPU111とRAM112または図14のCPU171とRAM172)において、
他の情報処理装置から供給される割込信号のステータスを記憶する記憶手段(例えば、図5のRAM112の割込ステータス領域121または図14のRAM172割込ステータス領域181)と、
記憶手段により記憶されるステータスに応じて、所定の処理を実行する実行手段(例えば、図5のCPU111または図14のCPU171)と
を備える。
記憶手段は、他の情報処理装置から、ステータスとともに、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定するための判定情報(例えば、割り込みバージョンビット)を更に取得して、ステータスと判定情報とを記憶することができ、
実行手段は、判定情報を基に、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定して、同期していると判定された場合、記憶手段により記憶されるステータスに応じて、所定の処理を実行することができ、同期していないと判定された場合、他の情報処理装置から、ステータスを取得して、他の情報処理装置から取得されたステータスに応じて、所定の処理を実行することができる。
実行手段は、判定情報を基に、記憶手段により記憶されるステータスと、他の情報処理装置に記憶されるステータスとが同期しているか否かを判定して、同期していると判定された場合、記憶手段により記憶されるステータスに応じて、所定の処理を実行することができ、同期していないと判定された場合、他の情報処理装置から、ステータスを取得して、他の情報処理装置から取得されたステータスに応じて、所定の処理を実行することができる。
割込信号のステータスと、それに対応する処理とを対応付けたテーブルを記憶する割込処理記憶手段(例えば、図5のRAM112の割込処理テーブル領域122または図14のRAM172の割込処理テーブル領域182)
をさらに備えることができ、
実行手段は、割込処理記憶手段に記憶されるテーブルに基づいて、所定の処理を実行する(例えば、図11のステップS93,S95、またはS97の処理)ことができる。
をさらに備えることができ、
実行手段は、割込処理記憶手段に記憶されるテーブルに基づいて、所定の処理を実行する(例えば、図11のステップS93,S95、またはS97の処理)ことができる。
本発明の第3の側面の情報処理方法は、
他の情報処理装置(例えば、図5のネットワークカード113または図14のネットワークカード172)が発生する割込信号の発生原因を表すステータスに応じて、所定の処理を実行する情報処理装置(例えば、図5のCPU111とRAM112または図14のCPU171とRAM172)の情報処理方法であって、
他の情報処理装置から供給される割込信号のステータスを記憶させる記憶制御ステップ(例えば、図10のステップS73のRAM112の処理)と、
記憶制御ステップの処理により記憶されるステータスに応じて、所定の処理を実行する実行ステップ(例えば、図11のステップS93,S95、またはS97)と
を含む。
他の情報処理装置(例えば、図5のネットワークカード113または図14のネットワークカード172)が発生する割込信号の発生原因を表すステータスに応じて、所定の処理を実行する情報処理装置(例えば、図5のCPU111とRAM112または図14のCPU171とRAM172)の情報処理方法であって、
他の情報処理装置から供給される割込信号のステータスを記憶させる記憶制御ステップ(例えば、図10のステップS73のRAM112の処理)と、
記憶制御ステップの処理により記憶されるステータスに応じて、所定の処理を実行する実行ステップ(例えば、図11のステップS93,S95、またはS97)と
を含む。
本発明の第3の側面のプログラムは、
他の情報処理装置(例えば、図5のネットワークカード113または図14のネットワークカード172)が発生する割込信号の発生原因を表すステータスに応じて、所定の処理を実行する処理を、コンピュータに行わせるプログラムであって、
他の情報処理装置から供給される割込信号のステータスを記憶させる記憶制御ステップ(例えば、図10のステップS73のRAM112の処理)と、
記憶制御ステップの処理により記憶されるステータスに応じて、所定の処理を実行する実行ステップ(例えば、図11のステップS93,S95、またはS97)と
を含む。
他の情報処理装置(例えば、図5のネットワークカード113または図14のネットワークカード172)が発生する割込信号の発生原因を表すステータスに応じて、所定の処理を実行する処理を、コンピュータに行わせるプログラムであって、
他の情報処理装置から供給される割込信号のステータスを記憶させる記憶制御ステップ(例えば、図10のステップS73のRAM112の処理)と、
記憶制御ステップの処理により記憶されるステータスに応じて、所定の処理を実行する実行ステップ(例えば、図11のステップS93,S95、またはS97)と
を含む。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
図4は、本発明を適用した情報処理システム100の一実施の形態の構成例を示すブロック図である。
図4の情報処理システム100は、パソコン101、ネットワーク102、およびパソコン103から構成される。
パソコン101とパソコン103は、例えば、LAN(Local Area Network)、またはインターネットなどのネットワーク102を介して接続されており、相互に通信を行う。例えば、パソコン101とパソコン103は、TCP(Transmission Control Protocol)やIP(Internet Protocol)などに準拠したヘッダが付加されたパケット(データ)を相互に通信する。
図5は、図4のパソコン101のハードウェア構成例を示すブロック図である。なお、図1と同一のものには、同一の符号を付してあり、説明は省略する。
図5のパソコン101は、ROM12、バス14、入出力インターフェース15、入力部16、出力部17、記録部18、ドライブ20、CPU111、RAM112、およびネットワークカード113から構成される。
CPU111は、バス14を介して、ROM12とRAM112に接続される。CPU111は、ROM112に記憶されているプログラム、または記録部18に記録されているプログラムにしたがって各種の処理を実行する。
例えば、CPU111は、RAM112のディスクリプタ領域31に、DMA転送の対象であるパケットが記憶される、RAM112のパケット領域32のアドレスやパケットのサイズなどを、ディスクリプタとして記憶させることにより、ネットワークカード113に、そのパケットをDMA転送させる。
また、CPU111は、ネットワークカード113から供給される割込信号に応じて、割込処理を行う。具体的には、CPU111は、RAM112の割込ステータス領域121(後述する)に記憶されている、割込信号の発生原因(ステータス)を表す割込ステータスを読み出す。そして、CPU111は、RAM112の割込処理テーブル領域122に記憶される、割込ステータス処理と割込ステータスが表すステータスとが対応付けられている割込処理テーブル160(後述する図7)に基づいて、読み出した割込ステータスに対応する割込ステータス処理を行う。
RAM112は、ディスクリプタ領域31、パケット領域32、割込ステータス領域121、および割込処理テーブル領域122などから構成される。
割込ステータス領域121には、ネットワークカード113から供給される割込ステータスが記憶される。また、割込処理テーブル領域122には、CPU111により予め設定された割込処理テーブル160が記憶されている。
ネットワークカード113は、例えば、マイクロコンピュータなどにより構成され、所定のプログラムを実行することにより、DMA転送を行う。具体的には、ネットワークカード113は、RAM112のディスクリプタ領域31に記憶されるディスクリプタに基づいて、RAM112のパケット領域32に記憶されるパケットを読み出し、そのパケットを、ネットワーク102を介してパソコン103に送信する。また、ネットワークカード113は、ネットワーク102を介して、パソコン103からパケットを受信し、そのパケットを、ディスクリプタに基づいて、RAM112のパケット領域32に記憶させる。
さらに、ネットワークカード113は、割込信号を発生し、CPU111に供給する。また、割込ステータスを設定して記憶するとともに、その割込ステータスをRAM112の割込ステータス領域121に供給して記憶させる。
なお、図4のパソコン103は、パソコン101と同様に構成されるので、説明は省略する。
図6は、図5のネットワークカード113が所定のプログラムを実行することにより有する機能の構成例を示すブロック図である。なお、図2と同一のものには同一の符号を付してある。
図6のネットワークカード113は、DMA転送部51、パケット通信部52、割込発生部140、割込ステータス供給部141、および割込ステータス保持部142から構成される。なお、図6のパケット通信部52は、ネットワーク102を介してパケットの通信を行う。
割込発生部140は、DMA転送部51からの状態情報に応じて、割込信号を発生させ、CPU11に供給する。また、割込発生部140は、その状態情報に応じて、割込ステータスを設定し、その割込ステータスを割込ステータス保持部142に供給して記憶(更新)させる。割込発生部140は、割込ステータスの更新を、割込ステータス供給部141に通知する。
割込ステータス供給部141は、割込発生部140からの通知に応じて、割込ステータス保持部142から割込ステータスを読み出し、その割込ステータスを、RAM112の割込ステータス領域121(図5)に供給して記憶させる。また、割込ステータス供給部141は、CPU111からの要求に応じて、割込ステータス保持部142に保持されている割込ステータス(信号)の各ビットをクリア(消去)する。割込ステータス保持部142は、割込発生部140からの割込ステータスを保持する。
図7は、図5の割込処理テーブル領域122に記憶される割込処理テーブル160の例を示している。図5の割込処理テーブル領域122に記憶されるデータは、割込ステータス保持部142から読み出されて割込ステータス保持部142に保持されている割込ステータスと割込ステータス処理とが対応付けられているものである。すなわち、割込ステータス保持部142から読み出されて割込ステータス保持部142に保持されている割込ステータス(信号)は32ビットからなり、図7と同様のビット配分で情報が記載されているものとする。
図7の割込処理テーブル160では、割込ステータス処理が、割込ステータスが表すステータスと、そのステータスが割り当てられた割込ステータスのビットとに対応付けられている。ここで、割込ステータスの所定のビットが「1」である場合、割込ステータスは、そのビットに割り当てられたステータスを表しているものとする。
例えば、割込処理テーブル160では、パケット通信部52により送信が完了されたパケットが記憶されているRAM112のパケット領域32に対する解放を行う処理が、割込ステータス処理として、パケット通信部52によるパケットの送信の完了であるステータス(以下、送信完了ステータスという)と割込ステータスの下位0ビットとに対応付けられている。
即ち、CPU111は、割込ステータスの下位0ビット目(下位から0ビット目)が「1」である場合(割込ステータスが完了ステータスを表している場合)、割込ステータスに対応する割込ステータス処理として、RAM112のパケット領域32に対する解放を行う。
また、割込処理テーブル160では、パケット通信部52により受信されたパケットが記憶されているパケット領域32からパケットを読み出し、そのパケットを用いて所定の処理を行う処理が、割込ステータス処理として、パケット通信部52によるパケットの受信の完了であるステータス(以下、受信完了ステータスという)と割込ステータスの下位1ビットとに対応付けられている。
さらに、割込処理テーブル160では、ネットワークカード113をリセットする処理が、割込ステータス処理として、パケット通信部52によるパケットの送信または受信のエラーであるステータス(以下、エラーステータスという)と割込ステータスの下位2ビットとに対応付けられている。
なお、割込ステータスの表すステータスは、1つであっても、複数であってもよい。例えば、割込ステータスの32ビットのうち、下位0ビット目と下位1ビット目とが「1」である場合、その割込ステータスは、送信完了ステータスと受信完了ステータスの両方を表している。
次に、図8を参照して、図5のCPU111によるDMA転送要求処理について説明する。このDMA転送要求処理は、例えば、ユーザが入力部16を操作することにより、パソコン103へのパケットの送信を指令したとき、開始される。
ステップS31において、CPU111は、パソコン103に送信するパケット、即ちDMA転送の対象とするパケットを、RAM112のパケット領域32に記憶させ、ステップS32に進む。
ステップS32において、CPU111は、ステップS31でパケットが記憶されるパケット領域32のアドレスやパケットのサイズなどの情報に基づいて、ディスクリプタを生成し、ディスクリプタ領域31に記憶させて、ステップS33に進む。
ステップS33において、CPU111は、ネットワークカード113にDMA転送を要求し、処理を終了する。
なお、図8では、CPU111がネットワークカード113にDMA転送を要求し、パケットをパソコン103に送信させる場合について説明したが、パケットをパソコン103から受信させる場合についても同様の処理が行われる。
この場合、ステップS31の処理は行われず、ステップS32で生成されるディスクリプタには、受信されるパケットを記憶させるパケット領域32のアドレスなどの情報が記憶される。
次に、図9を参照して、図6のネットワークカード113によるDMA転送処理について説明する。このDMA転送処理は、例えば、図8のステップS33でCPU111によりDMA転送が要求されたとき、開始される。
ステップS51において、DMA転送部51は、図8のステップS32でディスクリプタ領域31に記憶されたディスクリプタに基づいて、DMA転送を行う。具体的には、DMA転送部51は、ディスクリプタに基づいて、パケット領域32からパケットを読み出し、パケット通信部52を介してパソコン103に送信させるか、またはパケット領域32にパケット通信部52により受信されたパケットを記憶させる。
ステップS51の処理後は、ステップS52に進み、パケット通信部52は、パケットの送信または受信のエラーが発生したかどうかを判定し、エラーが発生していないと判定された場合、ステップS53に進む。
ステップS53において、DMA転送部51は、ディスクリプタに基づいて、DMA転送の対象とするパケットがあるかどうかを判定し、DMA転送の対象とするパケットがあると判定された場合、ステップS51に戻り、上述した処理を繰り返す。
一方、ステップS52においてエラーが発生したと判定された場合、パケット通信部52は、エラーを表す状態情報を、DMA転送部51を介して割込発生部140に供給して、ステップS54に進む。
また、ステップS53においてDMA転送の対象とするパケットがないと判定された場合、パケット通信部52は、送信または受信の完了を表す状態情報を、DMA転送部51を介して割込発生部140に供給し、ステップS54に進む。
ステップS54において、割込発生部140は、DMA転送部51からの状態情報に応じて、割込ステータスを設定し、その割込ステータスを、割込ステータス保持部142に保持させる。
例えば、DMA転送部51からエラーを表す状態情報が供給される場合、割込発生部140は、割込ステータスを、エラーステータスを表す割込ステータスに設定して、下位2ビット目が「1」の32ビットの割込ステータスを、割込ステータス保持部142に保持させる。また、DMA転送部51から送信または受信の完了を表す状態情報が供給される場合、割込発生部140は、割込ステータスを、送信完了ステータスまたは受信完了ステータスを表す割込ステータスに設定して、下位0ビット目または下位1ビット目が「1」の32ビットの割込ステータスを、割込ステータス保持部142に保持させる。
ステップS54の処理後は、ステップS55に進み、割込発生部140は、割込ステータスの更新を割込ステータス供給部141に通知し、ステップS56に進む。
ステップS56において、割込発生部140は、割込信号を発生して、CPU111に供給し、処理を終了する。
次に、図10を参照して、ネットワークカード113による割込ステータスのコピー処理について説明する。
ステップS71において、割込ステータス供給部141は、割込ステータスが更新されたかどうかを判定する。具体的には、図9のステップS55で割込ステータスの更新が通知された場合、またはCPU111からの要求に応じて割込ステータスがクリアされた場合、割込ステータス供給部141は、割込ステータスが更新されたと判定し、それ以外の場合、割込ステータスが更新されていないと判定する。
ステップS71において、割込ステータスが更新されていないと判定された場合、割込ステータス供給部141は、割込ステータスが更新されるまで待機する。
一方、ステップS71において、割込ステータスが更新されたと判定された場合、ステップS72に進み、割込ステータス供給部141は、割込ステータス保持部142から割込ステータスを読み出し、ステップS73に進む。
ステップS73において、割込ステータス供給部141は、ステップS72で読み出した割込ステータスをRAM112の割込ステータス領域121にコピーする。即ち、割込ステータス供給部141は、割込ステータスをRAM112に供給する。RAM112は、その割込ステータスを割込ステータス領域121に記憶させる。
次に、図11を参照して、CPU111による割込処理1について説明する。この割込処理1は、例えば図9のステップS56で割込発生部140により割込信号が供給されたとき、開始される。
ステップS91において、CPU111は、RAM112の割込ステータス領域121から割込ステータスを読み出し、ステップS92に進む。
ステップS92において、CPU111は、RAM112の割込処理テーブル領域121に記憶される割込処理テーブル160に基づいて、ステップS91で読み出した割込ステータスが表すステータスが、送信完了ステータスであるかどうか、即ち割込ステータスの32ビットのうち下位0ビット目が「1」であるかどうかを判定し、ステータスが送信完了ステータスであると判定した場合、ステップS93に進む。
ステップS93において、CPU111は、割込処理テーブル160に基づいて、送信完了ステータスに対応する割込ステータス処理として、パケット通信部52により送信が完了されたパケットが記憶されている、RAM112のパケット領域32に対する解放を行う。即ち、CPU111は、パケット領域32に記憶されている、送信が完了されたパケットを削除する。
ステップS92でステータスが送信完了ステータスではないと判定された場合、またはステップS93の処理後は、ステップS94に進み、CPU111は、割込処理テーブル160に基づいて、ステップS91で読み出した割込ステータスが表すステータスが、受信完了ステータスであるかどうか、即ち割込ステータスの32ビットのうち下位1ビット目が「1」であるかどうかを判定し、ステータスが受信完了ステータスであると判定した場合、ステップS95に進む。
ステップS95において、CPU111は、割込処理テーブル160に基づいて、受信完了ステータスに対応する割込ステータス処理として、パケット通信部52により受信され、RAM112のパケット領域32に記憶されたパケットを読み出し、そのパケットを用いて所定の処理を行う。例えば、CPU111は、そのパケットを用いて、パケットに対応する画像を出力部17に表示させる処理を行う。
ステップS94でステータスが受信完了ステータスではないと判定された場合、またはステップS95の処理後は、ステップS96に進み、CPU111は、割込処理テーブル160に基づいて、ステップS91で読み出した割込ステータスが表すステータスが、エラーステータスであるかどうか、即ち割込ステータスの32ビットのうち下位2ビット目が「1」であるかどうかを判定する。
ステップS96において、ステータスがエラーステータスであると判定された場合、即ちパケット領域32から読み出された送信対象のパケットや、まだパケット領域32に記憶されていない、受信されたパケットの信頼性が保証されていない場合、ステップS97に進む。
ステップS97において、CPU111は、割込処理テーブル160に基づいて、エラーステータスに対応する割込ステータス処理として、ネットワークカード113をリセットする。
具体的には、CPU111は、例えば、ネットワークカード113のDMA転送部51による、DMA転送の制御に用いられるレジスタの初期化、およびパケット通信部52により送受信中のパケットの破棄を行う。
ステップS96でステータスがエラーステータスではないと判定された場合、またはステップS97の処理後は、ステップS98に進み、CPU111は、割込ステータスのクリアをネットワークカード113に要求し、処理を終了する。
以上のように、パソコン101では、ネットワークカード113の割込ステータス供給部141が、割込ステータスをRAM112の割込ステータス領域121に記憶させるので、CPU111は、割込処理において、RAM112から割込ステータスを読み出すことができる。即ち、CPU111は、ネットワークカード113の割込ステータス保持部142から割込ステータスを読み出す必要がない。その結果、パソコン101では、図3で説明した従来の場合に比べて、割込処理を簡素化し、割込処理に要する時間を削減することができる。
次に、図12を参照して、パソコン101による割込発生処理について説明する。
ステップS151において、ネットワークカード113の割込ステータス供給部141は、割込ステータスをRAM112の割込ステータス領域121に供給し、ステップS152に進む。
ステップS131において、RAM112の割込ステータス領域121は、割込ステータス供給部141からの割込ステータスを記憶する。即ち、割込ステータス供給部141からの割込ステータスは、割込ステータス領域121にコピーされる。
ステップS152において、ネットワークカード113の割込発生部140は、DMA転送部51からの状態情報に応じて、割込信号を発生し、その割込信号をCPU111に通知して、ステップS153に進む。
ステップS111において、CPU111は、割込発生部140からの割込信号を受信し、ステップS112に進む。ステップS112において、CPU111は、RAM112に割込ステータスの読出を要求し、ステップS113に進む。
ステップS131の処理後は、ステップS132に進み、RAM112の割込ステータス領域121は、CPU111からの割込ステータスの読出の要求を受信し、ステップS133に進む。ステップS133において、割込ステータス領域121は、割込ステータスの読出の要求に応じて、いま記憶(保持)している割込ステータスをCPU111に通知し、ステップS134に進む。
ステップS113において、CPU111は、割込ステータス領域121からの割込ステータスを受信し、ステップS114に進む。ステップS114において、CPU111は、割込処理テーブル領域122に記憶される割込処理テーブル160に基づいて、受信した割込ステータスに対応する割込ステータス処理を行い、ステップS115に進む。
ステップS115において、CPU111は、割込ステータス保持部142に保持されている割込ステータスのクリアを、ネットワークカード113に要求し、処理を終了する。以上のように、CPU111は、ステップS111で割込発生部53から供給される割込信号に応じて、割込処理として、ステップS112乃至S115の処理を行い、処理を終了する。
ステップS153において、ネットワークカード113の割込ステータス供給部141は、CPU111からの割込ステータスのクリアの要求を受信し、割込ステータス保持部142に保持されている割込ステータスの各ビットをクリアし、ステップS154に進む。
ステップS154において、割込ステータス供給部141は、割込ステータス保持部142に保持されている割込ステータスを読み出し、RAM112に供給して処理を終了する。
ステップS134において、RAM112の割込ステータス領域121は、割込ステータス供給部141からの割込ステータスを受信して記憶する。即ち、割込ステータス保持部142に保持されている割込ステータスが、割込ステータス領域121にコピーされる。
なお、割込信号を発生するデバイスは、ネットワークカード113に限定されず、例えばデータストレージなどであってもよい。
以上のように、パソコン101では、割込ステータス供給部141が、割込ステータス保持部142に記憶される割込ステータスを、RAM112の割込ステータス領域121に供給し、割込ステータス領域121が割込ステータスを記憶するようにしたので、割込処理を簡素化し、割込処理に要する時間を削減することができる。
ところで、上述した処理においては、割込発生部からCPUに対して割り込みが発生した場合、割込ステータス保持部の内容をメモリにコピーして、それをCPUが読み込み、割り込みの要因を知ることでCPUの負荷の低減を行った。
図12では、ネットワークカード113のステータスをRAM112にコピーした後、割込通知を行うようになっているが、一般にハードウェアがメモリへの書き込みの完了を確認する機構は、コスト上の問題などやバスの仕様などから保証できない。
上述したように、一般的に、CPUがバスを介して行うRAMへのアクセスに比べて、CPUがバスと入出力インターフェースを介して行う、ネットワークカードの割込ステータス保持部などのレジスタへのアクセスは多くの時間を要する。
したがって、例えば、CPU処理速度が高速な場合などにおいては、割込ステータスのコピーが完了する前に割り込み通知を受けたCPUがRAMに記録されている以前の割込ステータスに基づいて割り込み処理を行ってしまう恐れがある。また、例えば、バスが込み合っている場合などには、図13に示されるように、図12における場合と同様のタイミングで割込ステータスのコピーが成功せず、CPUがRAMに記録されている割込ステータスを取得するタイミングが、割込ステータスのコピー成功のタイミング(ステップS151´)よりも早くなってしまうので、RAMに記録されている、以前の(すなわち、古い割り込みに対応する)割込ステータスに基づいて割り込み処理を行ってしまい、割り込みと割り込み処理との同期を取ることが出来なくなってしまう恐れがある。
そこで、CPUが、RAMに記録されている割込ステータスが、正しく更新されたものであるか否かを判断することができるようにすると、更に好適である。具体的には、ネットワークカードの割込ステータス保持部にCPUが使用できる(更新することができる)割込バージョンビットを用意し、ステータスクリアと同時にその領域にデータを書き込むようにしておくとともに、RAMの割込ステータス保持部に保持されている値をコピーする領域(割込ステータス領域)とは異なる領域に、以前の処理における割込バージョンビットのバックアップを保存しておくものとする。そして、CPUは、割り込みが発生されるたびに、RAMにコピーされた割込バージョンビットの値とバックアップしていた以前の処理における割込バージョンビットの値とを比較して、RAMにコピーされたステータスとネットワークカードの割込ステータス保持部に記載されている実際の割り込みのステータスの同期が取れているかを確認することができるようにすると更に好適である。
図14は、RAMにコピーしたステータスと実際の割り込みのステータスの同期を確認することができるパーソナルコンピュータ161の構成を示すブロック図である。
なお、図5における場合と同一のものには、同一の符号を付してあり、その詳細な説明は適宜省略する。
すなわち、図14のパーソナルコンピュータ161は、CPU111に代わってCPU171が設けられ、RAM112に代わってRAM172が設けられ、ネットワークカード113に代わってネットワークカード173が設けられている以外は、図5を用いて説明したパーソナルコンピュータ101と基本的に同様の構成を有するものである。
また、RAM172は、割込ステータス領域121に代わって、割込ステータスビットおよび割込バージョンビットをネットワークカード173からコピーして保持することが可能な割込ステータス領域181が設けられ、割込処理テーブル領域122に代わって、図16を用いて後述する割込処理テーブルを記憶するテーブル領域182が設けられ、新たに、CPU171の処理により割込バージョンビットのバックアップを保持することができる割込バージョンビットバックアップ領域183が設けられている以外は、図5を用いて説明したRAM112と基本的に同様の構成を有するものである。
すなわち、CPU171は、バス14を介して、ROM12とRAM172に接続されており、ROM112に記憶されているプログラム、または記録部18に記録されているプログラムにしたがって各種の処理を実行する。例えば、CPU171は、RAM172のディスクリプタ領域31に、DMA転送の対象であるパケットが記憶される、RAM172のパケット領域32のアドレスやパケットのサイズなどを、ディスクリプタとして記憶させることにより、ネットワークカード173に、そのパケットをDMA転送させる。
また、CPU171は、ネットワークカード173から供給される割込信号に応じて、割込処理を行う。具体的には、CPU171は、RAM172の割込ステータス領域181に記憶されている、割込信号の発生原因(ステータス)を表す割込ステータスとともに、割込バージョンビットを読み出す。そして、CPU171は、読み出された割込バージョンビットの値を参照し、割込バージョンビットバックアップ領域183にバックアップされている値と比較して、RAM172にコピーされているステータスとネットワークカード173の割込ステータス保持部191(図15)に記載されている実際の割り込みのステータスの同期が取れているか否かを確認する。
そして、同期が取れている場合、CPU171は、RAM172の割込処理テーブル領域182に記憶されている、割込ステータス処理と割込ステータスが表すステータスとが対応付けられている割込処理テーブルに基づいて、RAM172の割込ステータス領域181から読み出した割込ステータスに対応する割込ステータス処理を行う。一方、同期が取れていない場合、CPU171は、ネットワークカード173の割込ステータス保持部191に記載されている実際の割り込みのステータスを読み込んで、RAM172の割込処理テーブル領域182に記憶される、割込ステータス処理と割込ステータスが表すステータスとが対応付けられている割込処理テーブルに基づいて、読み出した割込ステータスに対応する割込ステータス処理を行う。
そして、CPU171は、割込ステータス処理の終了後、RAM172の割込バージョンビットバックアップ領域183に保持されている値をバックアップする(すなわち、割込ステータス処理以前の値から1インクリメントする)。そして、CPU171は、ネットワークカード173に保持されている割込ステータス(信号)の各ビットをクリア(消去)させるとともに、割込バージョンビットの値を1インクリメントさせるように、ネットワークカード173を制御する。
RAM172は、ディスクリプタ領域31、パケット領域32、割込ステータス領域181、および割込処理テーブル領域182などから構成される。
割込ステータス領域181には、ネットワークカード173から供給される割込ステータスおよび割込バージョンビットが記憶される。また、割込処理テーブル領域182には、CPU171により予め設定された割込処理テーブルが記憶されている。
図16を用いて、割込処理テーブル領域182に記憶される割込処理テーブルと、割込ステータス領域181に記憶される割込ステータスおよび割込バージョンビットに記載されるデータの構成について説明する。
割込処理テーブル領域182に記憶される割込処理テーブルは、図16に示される構成の割込ステータスおよび割込バージョンビットの値を保持している。割込ステータスについては、図7を用いて説明した場合と同一であるが、更に、上位4ビット分の割込バージョンビットが規定され、上位4ビット分の割込バージョンビットに「1」が書き込まれた場合であっても、割り込み処理が実行されないようになされている。したがって、RAM172の割込ステータス領域181にも、図16に示されるデータ構成の割込ステータスおよび割込バージョンビットの値が保持される。ここでも、割込ステータス(信号)および割込バージョンビットの値は、図7を用いて説明した場合と同様に32ビットからなるものとする。しかしながら、これらのビット数は、32ビットとは異なるものであってもよいことは言うまでもない。
ここでは、割込バージョンビットとして4ビットが与えられているので、割込バージョンビットは10進数における0乃至15の値をとることができる。すなわち、これ以下において割込バージョンビットをインクリメントするという場合、10進数において、0乃至14の値においては、その値に1が加えられることを示し、また値が15の場合においては、その値が0となることを示す。
ネットワークカード173は、例えば、マイクロコンピュータなどにより構成され、所定のプログラムを実行することにより、DMA転送を行う。具体的には、ネットワークカード173は、RAM172のディスクリプタ領域31に記憶されるディスクリプタに基づいて、RAM172のパケット領域32に記憶されるパケットを読み出し、そのパケットを、ネットワーク102を介してパソコン103に送信する。また、ネットワークカード173は、ネットワーク102を介して、パソコン103からパケットを受信し、そのパケットを、ディスクリプタに基づいて、RAM172のパケット領域32に記憶させる。
さらに、ネットワークカード173は、割込信号を発生し、CPU171に供給する。また、割込ステータスを設定して記憶するとともに、その割込ステータスを、割込バージョンビットとともに、RAM172の割込ステータス領域181に供給して記憶させる。
図15は、図14のネットワークカード173の構成を示すブロック図である。なお、図6における場合と同一のものには、同一の符号を付してあり、その詳細な説明は適宜省略する。
すなわち、図15のネットワークカード173は、割込ステータス保持部142に代わって、割込ステータス保持部191が設けられている以外は、図6を用いて説明したネットワークカード113と基本的に同様の構成を有し、同様の機能を有するものである。
すなわち、割込発生部140は、DMA転送部51からの状態情報に応じて、割込信号を発生させ、CPU11に供給する。また、割込発生部140は、その状態情報に応じて、割込ステータスを設定し、その割込ステータスを割込ステータス保持部191に供給して記憶(更新)させる。割込発生部140は、割込ステータスの更新を、割込ステータス供給部141に通知する。
割込ステータス供給部141は、割込発生部140からの通知に応じて、割込ステータス保持部191から割込ステータスおよび割込バージョンビットを読み出し、読み出された割込ステータスおよび割込バージョンビットを、RAM172の割込ステータス領域181に供給して記憶させる。また、割込ステータス供給部141は、CPU171からの要求に応じて、割込ステータス保持部191に保持されている割込ステータス(信号)の各ビットをクリア(消去)するとともに、割込バージョンビットの値を1インクリメントする。割込ステータス保持部191は、割込発生部140またはCPU171の制御に基づいて、割込ステータスおよび割込バージョンビットの値を保持する。
割込ステータス保持部191は、図16に示される構成と同様ビット配分の割込ステータスおよび割込バージョンビットの値を保持することが可能である。また、割込ステータス保持部191の32ビット中の上位4ビット、すなわち、割込バージョンビットの値が保持される領域は、CPU171が自由に使用してもよい。換言すれば、割込バージョンビットの値が保持される領域は、CPU171の制御によりその値を書き換えることが可能な領域として用意されている。
割込ステータス保持部191に保持されている割込ステータスおよび割込バージョンビットは、割り込みが発生して、下位の0ビット目、1ビット目、2ビット目に送信完了、受信完了、および、エラーのそれぞれの割込ステータスの値が変化した場合と、例えば、割込バージョンビットのインクリメントなど、CPU171から割込ステータス保持部191に保持されている値の変更が指令された場合、RAM172の割込ステータス領域181にコピーされる。
なお、パーソナルコンピュータ161においても、DMA転送要求処理、および、DMA転送処理については、図8および図9を用いて説明した場合と基本的に同様であり、コピー処理については、コピーされるデータが、割込ステータスのみではなく、割込ステータスおよび割込バージョンビットであること以外は、図10を用いて説明した場合と基本的に同様であるので、これらの処理についての説明は省略する。
次に、図17のフローチャートを参照して、初期化処理について説明する。
ステップS181において、CPU171は、ネットワークカード171のリセットを行う。
ステップS181において、CPU171は、ネットワークカード171のリセットを行う。
ステップS182において、CPU171は、ネットワークカード171の割込バージョンビットの値を、RAM172の割込バージョンビットバックアップ領域183にバックアップする。
ステップS183において、CPU171は、ステップS182においてRAM172の割込バージョンビットバックアップ領域183にバックアップされた割込バージョンビットの値に1を加えた値を、割込バージョンビットとしてネットワークカード171の割込ステータス保持部191の所定の領域(ここでは、上位4ビット)に書き込むとともに、割込ステータス保持部191の割込ステータスのクリアを要求する。ネットワークカード171の割込ステータス保持部191には、CPU171の制御に基づいて、割込バージョンビットバックアップ領域183にバックアップされた割込バージョンビットの値に1を加えた値が割込バージョンビットとして書き込まれるとともに、送信完了、受信完了、または、エラーなどの割込ステータスの値がクリアされて、処理が終了される。
次に、図18のフローチャートを参照して、CPU171による割込処理2について説明する。この割込処理1は、例えば図9のステップS56で割込発生部140により割込信号が供給されたとき、開始される。
ステップS211において、CPU171は、RAM172の割込ステータス領域181から割込ステータスおよび割込バージョンビットを読み出す。
ステップS212において、CPU171は、RAM172の割込ステータス領域181から読み出された割込バージョンビットの値は、RAM172の割込バージョンビットバックアップ領域183にバックアップされている割込バージョンビットのバックアップ値に1を加えたものであるか否かを判断する。
ステップS212において、RAM172の割込ステータス領域181から読み出された割込バージョンビットの値は、RAM172の割込バージョンビットバックアップ領域183にバックアップされている割込バージョンビットのバックアップ値に1を加えたものであると判断された場合、ステップS213において、CPU171は、ステップS211においてRAM172から読み出された割込ステータスを用いて割り込み処理を実行するものとする。
ステップS212において、RAM172の割込ステータス領域181から読み出された割込バージョンビットの値は、RAM172の割込バージョンビットバックアップ領域183にバックアップされている割込バージョンビットのバックアップ値に1を加えたものではないと判断された場合、ステップS214において、CPU171は、ステップS211においてRAM172から読み出された割込ステータスを用いずに、ネットワークカード173にアクセスし、ネットワークカード173の割込ステータス保持部191に保持されている割込ステータスの値を読み出して、割り込み処理を実行するものとする。
ステップS213、または、ステップS214の処理の終了後、ステップS215乃至ステップS220において、CPU171は、図11のステップS92乃至ステップS97と基本的に同様の処理を実行する。
すなわち、CPU171は、RAM172の割込処理テーブル領域121に記憶される割込処理テーブル160に基づいて、RAM172またはネットワークカード173から読み出された割込ステータスが表すステータスが、送信完了ステータスであるかどうか、即ち割込ステータスの32ビットのうち下位0ビット目が「1」であるかどうかを判定し、ステータスが送信完了ステータスであると判定した場合、割込処理テーブルに基づいて、送信完了ステータスに対応する割込ステータス処理として、パケット通信部52により送信が完了されたパケットが記憶されている、RAM172のパケット領域32に対する解放を行う。即ち、CPU171は、パケット領域32に記憶されている、送信が完了されたパケットを削除する。
ステータスが送信完了ステータスではないと判定された場合、またはRAM172の解放後、CPU171は、読み出された割込ステータスが表すステータスが、受信完了ステータスであるかどうか、即ち割込ステータスの32ビットのうち下位1ビット目が「1」であるかどうかを判定し、ステータスが受信完了ステータスであると判定した場合、割込処理テーブルに基づいて、受信完了ステータスに対応する割込ステータス処理として、パケット通信部52により受信され、RAM172のパケット領域32に記憶されたパケットを読み出し、そのパケットを用いて所定の処理を行う。例えば、CPU171は、そのパケットを用いて、パケットに対応する画像を出力部17に表示させる処理を行う。
ステータスが受信完了ステータスではないと判定された場合、または、読み出されたパケットによる所定の処理の終了後、CPU171は、読み出された割込ステータスが表すステータスが、エラーステータスであるかどうか、即ち割込ステータスの32ビットのうち下位2ビット目が「1」であるかどうかを判定する。ステータスがエラーステータスであると判定された場合、即ちパケット領域32から読み出された送信対象のパケットや、まだパケット領域32に記憶されていない、受信されたパケットの信頼性が保証されていない場合、CPU171は、割込処理テーブル160に基づいて、エラーステータスに対応する割込ステータス処理として、ネットワークカード113をリセットする。具体的には、CPU171は、例えば、ネットワークカード173のDMA転送部51による、DMA転送の制御に用いられるレジスタの初期化、およびパケット通信部52により送受信中のパケットの破棄を行う。
ステップS219においてステータスがエラーステータスではないと判定された場合、またはステップS220の処理の終了後、ステップS221において、CPU171は、RAM172の割込バージョンビットバックアップ領域183にバックアップされている割込バージョンビットの値に1を加える。
ステップS222において、CPU171は、ステップS221でバックアップされた割込バージョンビットの値に1を加えた値を割込バージョンビットとしてネットワークカード173の割込ステータス保持部191に書き込むとともに、割込ステータスのクリアをネットワークカード173に要求し、処理を終了する。
このように、RAM173にコピーされた割込ステータスが、ネットワークカード173の割込ステータスと同期が取れているか否かを判断することができ、CPU171は、同期が取れている場合、RAM173にコピーされた割込ステータスを基に割り込み処理を実行し、同期が取れていない場合、ネットワークカード173にアクセスして、ネットワークカード173の割込ステータスを読み出して割り込み処理を実行するようにしたので、割り込み処理を簡素化し、割込処理に要する時間を削減することができるとともに、割込ステータスのコピーが完了する前に割り込み通知を受けたCPU171がRAM172に記録されている以前の割込ステータスに基づいて割り込み処理を行ってしまうことを防止することができる。
具体的には、図19および図20に示されるように、RAM172の割込ステータス領域181に、割込ステータス供給部141からの割込ステータスが記憶されるタイミングによって処理が異なる。
CPU171がRAM172のRAM172の割込ステータス領域181にアクセスしたとき、RAM173にコピーされた割込ステータスが、ネットワークカード173の割込ステータスと同期が取れている場合の処理について、図19を用いて説明する。
ステップS291において、ネットワークカード173の割込ステータス供給部141は、割込ステータスをRAM172の割込ステータス領域121に供給する。
ステップS271において、RAM172の割込ステータス領域181は、割込ステータス供給部141からの割込ステータスを記憶する。即ち、割込ステータス供給部141からの割込ステータスは、割込ステータス領域181にコピーされる。
ステップS292において、ネットワークカード173の割込発生部140は、DMA転送部51からの状態情報に応じて、割込信号を発生し、その割込信号をCPU171に通知する。
CPU171は、ステップS251において、割込発生部140からの割込信号を受信し、ステップS252において、RAM172に割込ステータスの読出を要求する。
RAM172の割込ステータス領域181は、ステップS272において、CPU171からの割込ステータスの読出の要求を受信し、ステップS273において、割込ステータスの読出の要求に応じて、いま記憶(保持)している割込ステータスをCPU171に通知する。ここでは、ステップS271において、割込ステータスがコピーされているので、RAM172の割込ステータス領域181とネットワークカード173の割込ステータス保持部191とに記録されている割込ステータスは同期している。
CPU171は、ステップS253において、割込ステータス領域121からの割込ステータスを受信し、ステップS254において、バックアップされている割込バージョンビットと、RAM172から読み出された割込バージョンビットとの比較を行う(図18のステップS212の処理)。ここでは、RAM172の割込ステータス領域181とネットワークカード173の割込ステータス保持部191とに記録されている割込ステータスは同期しているので、ステップS255において、CPU171は、すでに読み込まれているRAM172の割込ステータスを用いて、割込処理テーブル領域122に記憶される割込処理テーブル160に基づいて、割込ステータス処理を行う(図18のステップS213およびステップS215乃至ステップS220の処理)。
そして、ステップS256において、CPU171は、RAM173の割込バージョンビットバックアップ領域183にバックアップされている割込バージョンビットの値を1インクリメントする(図18のステップS221の処理)。
ステップS257において、CPU171は、割込ステータス保持部142に保持されている割込バージョンビットを1インクリメントし、割込ステータスをクリアすることを、ネットワークカード173に要求する(図18のステップS222の処理)。
そして、ステップS293において、ネットワークカード173の割込ステータス供給部141は、CPU171から供給される割込バージョンビットのインクリメントと割込ステータスのクリアの要求を受信して、割込ステータス保持部142に保持されている割込バージョンビットをインクリメントするとともに割込ステータス保持部142に保持されている割込ステータスの各ビットをクリアする。そして、割込ステータス供給部141は、ステップS294において、割込ステータス保持部142に保持されている割込ステータスを読み出し、RAM172に供給する。
ステップS274において、RAM172の割込ステータス領域181は、供給された割込ステータスおよび割込バージョンビットを受信して記憶する。即ち、割込ステータス保持部191に保持されている割込ステータスおよび割込バージョンビットが割込ステータス領域181にコピーされて、処理が終了される。
このように、RAM172への割込ステータスのコピーの同期が取れていると判断された場合、CPU171は、そのつどネットワークカード173と情報を授受することにより割込ステータスを取得する場合と比較して、高速に割り込み処理を実行することが可能である。
次に、CPU171がRAM172のRAM172の割込ステータス領域181にアクセスしたとき、RAM173にコピーされた割込ステータスが、ネットワークカード173の割込ステータスと同期が取れていない場合の処理について、図20を用いて説明する。
ステップS351において、ネットワークカード173の割込ステータス供給部141は、割込ステータスをRAM172の割込ステータス領域181に供給する。
しかしながら、RAM172の割込ステータス領域181は、割込ステータス供給部141からの割込ステータスの記憶に失敗する。即ち、割込ステータス供給部141からの割込ステータスは、割込ステータス領域181にコピーされない。ネットワークカード173の割込ステータス供給部141は、割込ステータスをRAM172の割込ステータス領域181に供給する処理を再度実行する(後述するステップS355の処理)
ステップS352において、ネットワークカード173の割込発生部140は、DMA転送部51からの状態情報に応じて、割込信号を発生し、その割込信号をCPU171に通知する。
CPU171は、ステップS311において、割込発生部140からの割込信号を受信し、ステップS312において、RAM172に割込ステータスの読出を要求する。
RAM172の割込ステータス領域181は、ステップS331において、CPU171からの割込ステータスの読出の要求を受信し、ステップS332において、割込ステータスの読出の要求に応じて、いま記憶(保持)している割込ステータスをCPU171に通知する。ここでは、割込ステータスのコピーが失敗しているので、RAM172の割込ステータス領域181とネットワークカード173の割込ステータス保持部191とに記録されている割込ステータスは同期していない。
CPU171は、ステップS313において、割込ステータス領域121からの割込ステータスを受信し、ステップS314において、バックアップされている割込バージョンビットと、RAM172から読み出された割込バージョンビットとの比較を行う(図18のステップS212の処理)。ここでは、バックアップされている割込バージョンビットと、RAM172から読み出された割込バージョンビットとのそれぞれの値が等しいので、RAM172の割込ステータス領域181とネットワークカード173の割込ステータス保持部191とに記録されている割込ステータスは同期していないと判断される。
そして、ステップS315において、CPU171は、ネットワークカード173の割込ステータス保持部191に、割込ステータスの読出要求を行う。
ネットワークカード173の割込ステータス供給部141は、ステップS353において、割込ステータスの読出要求をうけ、ステップS354において、割込ステータス保持部191に記憶されている割込ステータスを読み出して、CPU171に供給する。
CPU171は、ステップS316において、ネットワークカード173の割込ステータス供給部141から割込ステータスの通知を受け、ステップS317において、供給された割込ステータスを用いて、割込処理テーブル領域122に記憶される割込処理テーブル160に基づいて、受信した割込ステータスに対応する割込ステータス処理を行う(図18のステップS214およびステップS215乃至ステップS220の処理)。
そして、ステップS318において、CPU171は、RAM173の割込バージョンビットバックアップ領域183にバックアップされている割込バージョンビットの値を1インクリメントする(図18のステップS221の処理)。
ステップS355において、ネットワークカード173の割込ステータス供給部141は、割込ステータスをRAM172の割込ステータス領域121に供給する。
そして、ステップS333において、RAM172の割込ステータス領域181は、割込ステータス供給部141からの割込ステータスを記憶する。即ち、割込ステータス供給部141からの割込ステータスは、割込ステータス領域181にコピーされる。
ステップS319において、CPU171は、割込ステータス保持部142に保持されている割込バージョンビットを1インクリメントし、割込ステータスをクリアすることを、ネットワークカード173に要求する(図18のステップS222の処理)。
そして、ステップS356において、ネットワークカード173の割込ステータス供給部141は、CPU171から供給される割込バージョンビットのインクリメントと割込ステータスのクリアの要求を受信して、割込バージョンビットをインクリメントするとともに割込ステータス保持部142に保持されている割込ステータスの各ビットをクリアする。そして、割込ステータス供給部141は、ステップS357において、割込ステータス保持部142に保持されている割込ステータスを読み出し、RAM172に供給する。
ステップS334において、RAM172の割込ステータス領域181は、供給された割込ステータスおよび割込バージョンビットを受信して記憶する。即ち、割込ステータス保持部191に保持されている割込ステータスおよび割込バージョンビットが割込ステータス領域181にコピーされて、処理が終了される。
このように、RAM172への割込ステータスのコピーの同期が取れていないと判断された場合、CPU171は、ネットワークカード173と情報を授受することにより割込ステータスを取得するので、過去の割込ステータスにより誤った割り込み処理を実行しない。
このように、本発明を適用することにより、RAMへコピーされたステータスをもちいることにより、CPUは、割り込み要因の読み込み処理の負荷の低減をはかることができるとともに、ステータスコピーと割り込みとのタイミングのずれが発生する場合を考慮して、RAMにコピーされているステータスの同期が取れている場合は、RAMから読み出されたステータスを用いて割り込み処理を実行し、RAMにコピーされているステータスの同期が取れていない場合は、RAMにコピーされているステータスを利用しないようにすることにより、誤った割り込みを行ってしまうことを防ぐことができる。
なお、割込信号を発生するデバイスは、ネットワークカード173に限定されず、例えばデータストレージなどであってもよい。
なお、ここでは、CPU171による割込バージョンビットのバックアップの値と、RAM172にコピーされた割込バージョンビットの値(正しくコピーされていれば、割込バージョンビットとしてネットワークカード173の割込ステータス保持部191に書き込まれるバックアップされた割込バージョンビットの値に1を加えた値)とを比較して、RAM172にコピーされた割込バージョンビットの値が割込バージョンビットのバックアップの値より1大きい場合に、RAM172への割込ステータスのコピーの同期が取れていると判断されるものとして説明したが、RAM172への割込ステータスのコピーの同期が取れているか否かを判断することができれば、割込バージョンビットに割り当てられるビット数や、それぞれ1回にインクリメントされる値などは異なるものであってもよいことは言うまでもない。
また、ここでは、割り込み処理について説明したが、割り込み回数の低減を狙い、例えばタイマなどで一定のインターバルによるポーリングを行った場合おいても、本発明は適用可能である。この場合、ハードウェアの割り込み処理(ネットワークカードからの割り込みによる割り込み処理)の部分をタイマが発生する割り込みによる割り込み処理に置き換えて、同様の処理を行うことができる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
51 DMA転送部, 52 パケット通信部, 101 パーソナルコンピュータ, 111 CPU, 112 RAM, 113 ネットワークカード, 140 割込発生部, 141 割込ステータス供給部, 142 割込ステータス保持部, 161 パーソナルコンピュータ, 171 CPU, 172 RAM, 173 ネットワークカード, 182 割込バージョンビットバックアップ領域, 191 割込ステータス保持部
Claims (13)
- 割込信号を発生する発生手段と、
前記発生手段により発生される割込信号の発生原因を表すステータスを記憶する第1の記憶手段と、
前記第1の記憶手段に記憶されるステータスに応じて、所定の処理を実行する実行手段と
を備え、
前記発生手段は、
前記割込信号のステータスを記憶する第2の記憶手段と、
前記第2の記憶手段により記憶されるステータスを、前記第1の記憶手段に記憶させる記憶制御手段と
を備える情報処理装置。 - 前記実行手段が前記第1の記憶手段に記憶されている前記ステータスを読み出すために必要となる第1の時間は、前記実行手段が前記第2の記憶手段に記憶されている前記ステータスを読み出すために必要となる第2の時間よりも短い
請求項1に記載の情報処理装置。 - 前記第2の記憶手段には、前記第1の記憶手段により記憶される第1のステータスと、前記第2の記憶手段により記憶される第2のステータスとが同期しているか否かを判定するための判定情報の第1の記憶領域が含まれ、
前記第1の記憶手段には、前記判定情報を記憶する第2の記憶領域が設けられるとともに、前記第2の記憶領域とは異なる領域であって、前記判定情報を一時保持する第3の記憶領域が更に設けられ、
前記記憶制御手段は、前記第2の記憶手段により記憶されるステータスを、前記第1の記憶手段に記憶させるとともに、前記第2の記憶手段の前記第1の記憶領域に記録される前記判定情報を、前記第1の記憶手段の前記第2の記憶領域に更に記憶させ、
前記実行手段は、前記所定の処理を実行する場合、
前記第2の記憶領域に記憶された前記判定情報と、前記第3の記憶領域に記憶された前記判定情報を基に、前記第1の記憶手段により記憶される前記第1のステータスと、前記第2の記憶手段により記憶される前記第2のステータスとが同期していると判断された場合、前記第1の記憶手段により記憶される前記第1のステータスに応じて前記所定の処理を実行し、
前記第2の記憶領域に記憶された前記判定情報と、前記第3の記憶領域に記憶された前記判定情報を基に、前記第1の記憶手段により記憶される前記第1のステータスと、前記第2の記憶手段により記憶される前記第2のステータスとが同期していないと判断された場合、前記第2の記憶手段により記憶される前記第2のステータスに応じて前記所定の処理を実行する
請求項1に記載の情報処理装置。 - 前記判定情報は、数値で表され、
前記実行手段は、
前記第1のステータスまたは前記第2のステータスに応じて所定の処理を実行した後、前記第1の記憶領域に記憶された前記判定情報と同一の値を、前記第3の記憶領域に記憶させるとともに、前記第1の記憶領域に記憶された前記判定情報の値に1を加え、
次に前記所定の処理を実行する場合、前記第2の記憶領域に記憶された前記判定情報と、前記第3の記憶領域に記憶された前記判定情報を比較し、前記第2の記憶領域に記憶された前記判定情報の値が、前記第3の記憶領域に記憶された前記判定情報の値よりも1大きければ、前記第1の記憶手段により記憶される前記第1のステータスと、前記第2の記憶手段により記憶される前記第2のステータスとが同期していると判断して前記第1の記憶手段により記憶される前記第1のステータスに応じて前記所定の処理を実行し、それ以外であれば、前記第1の記憶手段により記憶される前記第1のステータスと、前記第2の記憶手段により記憶される前記第2のステータスとが同期していないと判断して前記第2の記憶手段により記憶される前記第2のステータスに応じて前記所定の処理を実行する
請求項3に記載の情報処理装置。 - 割込信号を発生する情報処理装置において、
前記割込信号を発生する発生手段と、
前記発生手段により発生される割込信号の発生原因を表すステータスを記憶する記憶手段と、
前記記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる記憶制御手段と
を備える情報処理装置。 - 前記記憶手段は、前記記憶手段により記憶される前記ステータスと、前記他の情報処理装置に記憶される前記ステータスとが同期しているか否かを判定するための判定情報を更に記憶し、
前記記憶制御手段は、前記ステータスとともに、前記判定情報を前記他の情報処理装置に記録させる
請求項5に記載の情報処理装置。 - 割込信号を発生し、前記割込信号の発生原因を表すステータスを記憶させる記憶手段を備える情報処理装置の情報処理方法において、
前記割込信号を発生する発生ステップと、
前記発生ステップの処理により発生される割込信号のステータスを前記記憶手段に記憶させる第1の記憶制御ステップと、
前記記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる第2の記憶制御ステップと
を含む情報処理方法。 - 割込信号の発生原因を表すステータスを記憶させる記憶手段を備える情報処理装置を制御するコンピュータに行わせるプログラムにおいて、
前記割込信号を発生する発生ステップと、
前記発生ステップの処理により発生される割込信号のステータスを前記記憶手段に記憶させる第1の記憶制御ステップと、
前記記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行する他の情報処理装置に記憶させる第2の記憶制御ステップと
を含む処理をコンピュータに実行させるためのプログラム。 - 他の情報処理装置が発生する割込信号の発生原因を表すステータスに応じて、所定の処理を実行する情報処理装置において、
前記他の情報処理装置から供給される前記割込信号のステータスを記憶する記憶手段と、
前記記憶手段により記憶されるステータスに応じて、前記所定の処理を実行する実行手段と
を備える情報処理装置。 - 前記記憶手段は、前記他の情報処理装置から、前記ステータスとともに、前記記憶手段により記憶される前記ステータスと、前記他の情報処理装置に記憶される前記ステータスとが同期しているか否かを判定するための判定情報を更に取得して、前記ステータスと前記判定情報とを記憶し、
前記実行手段は、前記判定情報を基に、前記記憶手段により記憶される前記ステータスと、前記他の情報処理装置に記憶される前記ステータスとが同期しているか否かを判定して、同期していると判定された場合、前記記憶手段により記憶されるステータスに応じて、前記所定の処理を実行し、同期していないと判定された場合、前記他の情報処理装置から、前記ステータスを取得して、前記他の情報処理装置から取得された前記ステータスに応じて、前記所定の処理を実行する
請求項9に記載の情報処理装置。 - 前記割込信号のステータスと、それに対応する処理とを対応付けたテーブルを記憶する割込処理記憶手段
をさらに備え、
前記実行手段は、前記割込処理記憶手段に記憶されるテーブルに基づいて、前記所定の処理を実行する
請求項9に記載の情報処理装置。 - 他の情報処理装置が発生する割込信号の発生原因を表すステータスに応じて、所定の処理を実行する情報処理装置の情報処理方法において、
前記他の情報処理装置から供給される前記割込信号のステータスを記憶させる記憶制御ステップと、
前記記憶制御ステップの処理により記憶されるステータスに応じて、前記所定の処理を実行する実行ステップと
を含む情報処理方法。 - 他の情報処理装置が発生する割込信号の発生原因を表すステータスに応じて、所定の処理を実行する処理を、コンピュータに行わせるプログラムにおいて、
前記他の情報処理装置から供給される前記割込信号のステータスを記憶させる記憶制御ステップと、
前記記憶制御ステップの処理により記憶されるステータスに応じて、前記所定の処理を実行する実行ステップと
を含むプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006030486A JP2007012021A (ja) | 2005-06-01 | 2006-02-08 | 情報処理装置および情報処理方法、並びにプログラム |
TW095116596A TW200707214A (en) | 2005-06-01 | 2006-05-10 | Information processing apparatus, information processing method and program |
US11/913,164 US8412871B2 (en) | 2005-06-01 | 2006-05-23 | Information processing apparatus, information processing method, and program |
PCT/JP2006/310229 WO2006137234A1 (ja) | 2005-06-01 | 2006-05-23 | 情報処理装置および情報処理方法、並びにプログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005161217 | 2005-06-01 | ||
JP2006030486A JP2007012021A (ja) | 2005-06-01 | 2006-02-08 | 情報処理装置および情報処理方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007012021A true JP2007012021A (ja) | 2007-01-18 |
Family
ID=37570268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006030486A Pending JP2007012021A (ja) | 2005-06-01 | 2006-02-08 | 情報処理装置および情報処理方法、並びにプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US8412871B2 (ja) |
JP (1) | JP2007012021A (ja) |
TW (1) | TW200707214A (ja) |
WO (1) | WO2006137234A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008192128A (ja) * | 2007-01-11 | 2008-08-21 | Sony Corp | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
US8028114B2 (en) | 2005-06-02 | 2011-09-27 | Sony Corporation | Information processing apparatus, method, and program for simplifying an interrupt process |
JP2012190414A (ja) * | 2011-03-14 | 2012-10-04 | Ricoh Co Ltd | データ転送システム及びデータ転送方法 |
US8645668B2 (en) | 2007-01-11 | 2014-02-04 | Sony Corporation | Information processing apparatus, information processing method and computer program |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7948979B2 (en) * | 2008-05-28 | 2011-05-24 | Intel Corporation | Programmable network interface card |
JP2010128696A (ja) * | 2008-11-26 | 2010-06-10 | Toshiba Corp | バスブリッジ装置およびそれを用いたバスブリッジシステム |
US9727494B1 (en) * | 2012-10-11 | 2017-08-08 | Qlogic, Corporation | Method and system for communication between a computing device and a peripheral device |
CN108155978B (zh) * | 2017-11-27 | 2021-08-10 | 北京机电工程研究所 | 一种VxWorks环境下冗余网卡热备份的方法 |
JP7427887B2 (ja) * | 2019-09-09 | 2024-02-06 | 富士通株式会社 | 情報処理装置、情報処理方法及び情報処理プログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04241035A (ja) * | 1991-01-25 | 1992-08-28 | Hitachi Ltd | 二重化バス制御方法及び装置 |
JP2004355543A (ja) * | 2003-05-30 | 2004-12-16 | Toshiba Corp | 情報処理装置および割り込み通知方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761427A (en) * | 1994-12-28 | 1998-06-02 | Digital Equipment Corporation | Method and apparatus for updating host memory in an adapter to minimize host CPU overhead in servicing an interrupt |
US6021456A (en) * | 1996-11-12 | 2000-02-01 | Herdeg; Glenn Arthur | Method for communicating interrupt data structure in a multi-processor computer system |
JP3549703B2 (ja) | 1997-05-12 | 2004-08-04 | 沖電気工業株式会社 | 割り込み処理システム |
US6078970A (en) * | 1997-10-15 | 2000-06-20 | International Business Machines Corporation | System for determining adapter interrupt status where interrupt is sent to host after operating status stored in register is shadowed to host memory |
JPH11212904A (ja) | 1998-01-26 | 1999-08-06 | Toshiba Corp | データ転送システム |
US6298409B1 (en) * | 1998-03-26 | 2001-10-02 | Micron Technology, Inc. | System for data and interrupt posting for computer devices |
US6574694B1 (en) * | 1999-01-26 | 2003-06-03 | 3Com Corporation | Interrupt optimization using time between succeeding peripheral component events |
US6434630B1 (en) * | 1999-03-31 | 2002-08-13 | Qlogic Corporation | Host adapter for combining I/O completion reports and method of using the same |
US6205509B1 (en) * | 1999-07-15 | 2001-03-20 | 3Com Corporation | Method for improving interrupt response time |
US6788704B1 (en) * | 1999-08-05 | 2004-09-07 | Intel Corporation | Network adapter with TCP windowing support |
JP4230272B2 (ja) * | 2002-06-05 | 2009-02-25 | パナソニック株式会社 | 歪補償装置 |
US7234101B1 (en) * | 2003-08-27 | 2007-06-19 | Qlogic, Corporation | Method and system for providing data integrity in storage systems |
US7639743B2 (en) | 2004-03-25 | 2009-12-29 | Sony Corporation | Image decoder and image decoding method and program |
US7669190B2 (en) * | 2004-05-18 | 2010-02-23 | Qlogic, Corporation | Method and system for efficiently recording processor events in host bus adapters |
JP4533713B2 (ja) * | 2004-09-30 | 2010-09-01 | 株式会社東芝 | 情報処理装置およびデータ転送制御方法 |
JP2006293799A (ja) * | 2005-04-13 | 2006-10-26 | Sony Corp | 情報処理装置、および情報処理方法 |
JP5008270B2 (ja) | 2005-04-13 | 2012-08-22 | ソニー株式会社 | 情報処理装置、および情報処理方法 |
JP4645281B2 (ja) * | 2005-04-19 | 2011-03-09 | ソニー株式会社 | 情報処理装置および方法、プログラム、並びに記録媒体 |
-
2006
- 2006-02-08 JP JP2006030486A patent/JP2007012021A/ja active Pending
- 2006-05-10 TW TW095116596A patent/TW200707214A/zh not_active IP Right Cessation
- 2006-05-23 US US11/913,164 patent/US8412871B2/en not_active Expired - Fee Related
- 2006-05-23 WO PCT/JP2006/310229 patent/WO2006137234A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04241035A (ja) * | 1991-01-25 | 1992-08-28 | Hitachi Ltd | 二重化バス制御方法及び装置 |
JP2004355543A (ja) * | 2003-05-30 | 2004-12-16 | Toshiba Corp | 情報処理装置および割り込み通知方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8028114B2 (en) | 2005-06-02 | 2011-09-27 | Sony Corporation | Information processing apparatus, method, and program for simplifying an interrupt process |
JP2008192128A (ja) * | 2007-01-11 | 2008-08-21 | Sony Corp | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
US8645668B2 (en) | 2007-01-11 | 2014-02-04 | Sony Corporation | Information processing apparatus, information processing method and computer program |
JP2012190414A (ja) * | 2011-03-14 | 2012-10-04 | Ricoh Co Ltd | データ転送システム及びデータ転送方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI338226B (ja) | 2011-03-01 |
TW200707214A (en) | 2007-02-16 |
US8412871B2 (en) | 2013-04-02 |
US20090172302A1 (en) | 2009-07-02 |
WO2006137234A1 (ja) | 2006-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007012021A (ja) | 情報処理装置および情報処理方法、並びにプログラム | |
US7089395B2 (en) | Computer systems, virtual storage systems and virtual storage system operational methods | |
JP2009187379A (ja) | 仮想計算機サーバ装置、更新画像検出方法およびプログラム | |
JP2005309550A (ja) | リモートコピー方法及びリモートコピーシステム | |
JP4629413B2 (ja) | 優先順位を割り当てるための方法、システム、およびプログラム | |
US8112598B2 (en) | Apparatus and method for controlling copying | |
US9043283B2 (en) | Opportunistic database duplex operations | |
WO2012124017A1 (ja) | コマンド制御方法およびコマンド制御プログラム | |
JP2010211318A (ja) | デバイス管理装置、デバイス初期化方法、デバイス初期化プログラムおよびデバイスシステム | |
CN100557586C (zh) | 信息处理装置和信息处理方法 | |
JP4563412B2 (ja) | ソフトウェア複製 | |
JP2014038551A (ja) | データ記憶装置、データ記憶装置の制御方法、及びデータ記憶装置の制御プログラム | |
JP2004078683A (ja) | コンピュータシステムおよび共有メモリ制御方法 | |
JP4378308B2 (ja) | バス構成マルチプレクサ | |
US7636821B2 (en) | Asynchronous hybrid mirroring system | |
JP2018206230A (ja) | 情報処理システム、情報処理装置および情報処理方法 | |
WO2023010251A1 (zh) | 显示控制方法、装置、电子设备及存储介质 | |
JP6151365B2 (ja) | 情報処理システム、情報処理方法及びプログラム | |
WO2000034871A1 (fr) | Ordinateur, support enregistre comportant un programme de verification de la validite des adresses et procede de verification de la validite des adresses | |
JP2006146839A (ja) | 装置を管理するシステム及び方法 | |
JP5686590B2 (ja) | クライアント装置、デバイス制御装置、及びその制御方法、並びにデバイス制御システム | |
JP2018165902A (ja) | 試験装置、試験方法、試験プログラム及び試験システム | |
JP2006338353A (ja) | 情報処理装置および情報処理方法、並びにプログラム | |
JP2012256279A (ja) | 情報処理装置および方法、並びにプログラム | |
US8549221B2 (en) | RAID management apparatus, RAID management method, and computer product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090106 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111108 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120329 |