(57)【要約】  【課題】複数の割込み要因の発生順序を認識することができる割込み要因保持装置を提供する。  【解決手段】割込み要因保持装置３０は、複数の割込み要因レジスタ３２−１〜３２−ｎと制御部３４とを有する。割込み要因保持装置３０は、バス・コントローラ等の通信ＩＦ２４に設けられている。要因レジスタ３２は、例えば８ビットのビット列を保持することにより複数の割込み要因を保持するレジスタからなる。制御部３４は、要因レジスタ３２−１〜３２−ｎに、発生した割込み要因を順に保持させる。より具体的には、制御部３４は、最初に発生した割込み要因が要因レジスタ３２−１に保持され、一番新しく発生した割込み要因が３２−ｎに保持されるように制御する。即ち、割込み要因保持装置３０は、ＦＩＦＯ型の要因レジスタとして動作する。【選択図】図４
2007310526.tif 000002
【特許請求の範囲】
【請求項１】
複数の割込み要因のいずれかを保持し、順序付けられてなる複数の保持領域を有する保持手段と、
前記保持手段の複数の保持領域に、発生した割込み要因を順に保持させる制御手段と
を有する割込み要因保持装置。
【請求項２】
前記保持手段は、発生した割込み要因の数が、保持されうる割込み要因の数を超えたことをさらに保持する
請求項１に記載の割込み要因保持装置。
【請求項３】
前記保持手段は、データ伝送に関する割込み要因を保持する
請求項１又は２に記載の割込み要因保持装置。
【請求項４】
前記保持手段は、プラグアンドプレイに従う伝送路において発生する割込み要因を保持する
請求項３に記載の割込み要因保持装置。
【請求項５】
前記保持手段は、レジスタからなる
請求項１乃至４のいずれかに記載の割込み要因保持装置。
【請求項６】
前記保持手段は、データ構造からなる
請求項１乃至４のいずれかに記載の割込み要因保持装置。
【請求項７】
割込み要因保持装置を有するデータ転送装置であって、
前記割込み要因保持装置は、
複数の割込み要因のいずれかを保持し、順序付けられてなる複数の保持領域を有する保持手段と、
前記保持手段の複数の保持領域に、発生した割込み要因を順に保持させる制御手段と
を有するデータ転送装置。
【請求項８】
複数の割込み要因のいずれかを保持し、順序付けられてなる複数の保持領域を有する保持手段を有する割込み要因保持装置において、
前記保持手段の複数の保持領域に、発生した割込み要因を順に保持させる
割込み要因保持方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割込み要因を保持する割込み要因保持装置に関する。
【背景技術】
【０００２】
一般に、一つのＩ／Ｏ装置においては、割込み要因レジスタが１つだけ設けられている。
図１は、割込み要因レジスタについて説明する図であって、図１（Ａ）は、割込み要因レジスタの構成を示し、図１（Ｂ）は、この種の割込み要因レジスタを有する装置ａと装置ｂとの間の動作を例示する。
図１（Ａ）に示すように、割込み要因レジスタは、例えばビット０〜ビット７により、複数の割込み要因を保持する。例えば、ビット０は、そのビットが「１」である（即ち、オンである）場合、割込み要因が受信完了であることを保持する。また、例えば、ビット１は、割込み要因が送信完了であることを保持し、ビット３は、割込み要因がバスリセットであることを保持する。割込みハンドラ等のソフトウェアは、Ｉ／Ｏ装置からの通知を受け付けて、割込み要因レジスタの所定のビットを読み出すことにより、発生した割込み要因を認識する。したがって、この種の割込み要因レジスタでは、割込み要因が発生すると、この割込み要因に対応するビットは「１」になり、割込みハンドラ等のソフトウェアが割込み要因レジスタを読み出すと、当該ビットは「０」になる（即ち、オフになる）。
【０００３】
しかしながら、複数の割込み要因が、短期間に発生した場合、ソフトウェアは、当該複数の割込み要因が発生した順序を認識できないことがある。最初の割り込みが発生してから、ソフトウェアが割込み要因レジスタを読み出すまでには、ある程度の時間がかかるので、その間に複数の要因ビットが設定される（即ち、「１」になる）からである。
【０００４】
例えば、図１（Ｂ）に示すように、時刻ｔ１において、装置ａが装置ｂに対してパケットを送信し、時刻ｔ２において、バスリセットが発生し、時刻ｔ３において、装置ａが装置ｂに対してパケットを送信した場合を考える。この場合、時刻ｔ２と時刻ｔ３の間が時間が極めて短いと、ソフトウェアが時刻ｔ２において発生した割込み要因を認識する前に、ビット０も「１」に設定されてしまう。このため、図１（Ａ）に示すように、装置ｂの割込み要因レジスタでは、バスリセットに対応するビット３に加えて、受信完了に対応するビット０が「１」になるので、ソフトウェアは、これらの割込み要因の発生順序を認識できない。
【０００５】
したがって、データ転送中にバスリセットが発生すると、ソフトウェアは、データをどこまで転送したのかを認識できないことがある。
ここで、プリンタ等のデータ受信装置の制御ソフトウェアが、割込み要因レジスタを読み出したところ、「バスリセット発生」と「パケット受信完了」の２つの要因ビットがオンに設定されていた場合を考える。この場合、データ受信装置は、受信しているであろうパケットのデータ（一般に、受信用データＦＩＦＯに格納されている）を通常に処理するか、又は無効とみなして破棄するかを判断する。
しかしながら、この判断結果に基づいて、パーソナルコンピュータ等のデータ送信装置と、データ受信装置との間で、判断結果が一致しないことが起こりうる。その結果、データの重複もしくは欠落が引き起こされる。
【０００６】
従来、このようなデータの重複等による不都合が発生することを避けるために、データ送信装置は、データ転送を中止し、全てのパケットを最初から転送し直す。例えば、Ｗｉｎｄｏｗｓ(登録商標）が動作するパーソナルコンピュータとプリンタとが、ＵＳＢ又はｉ．Ｌｉｎｋ（ＩＥＥＥ１３９４）により接続されている場合、データ送信装置は、上記の動作を行うことにより、データ重複等を回避する。
しかしながら、このような対応では、バスリセットが多く発生する環境（例えば、プラグアンドプレイバスでの環境）においては、全体としてのデータ転送効率が低下してしまう。
【０００７】
例えば、特許文献１〜特許文献３では、複数の割込み要因に関する手法が開示されている。
特許文献１においては、割込要因を保持している割込要因レジスタのみをリセットして後から発生した割込みを認識可能として、上位装置の負担を軽減する回路が開示されている。
特許文献２においては、同一の優先レベルに複数の割込み要因を割り当てても、複数の割込み要因の発生順序をＣＰＵが認識できる割込み回路が開示されている。
特許文献３においては、割り込み禁止状態あるいは割り込み処理中に累積された複数の割り込みを割り込み発生順に処理しつつ、割り込み処理時間を短縮する手法が開示されている。
【０００８】
【特許文献１】特開平８−４４５７２号公報
【特許文献２】特開平１０−２８３１９６号公報
【特許文献３】特開平８−２１２０８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、上述した背景からなされたものであり、複数の割込み要因の発生順序を認識することができる割込み要因保持装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明に係る割込み要因保持装置は、複数の割込み要因のいずれかを保持し、順序付けられてなる複数の保持領域を有する保持手段と、前記保持手段の複数の保持領域に、発生した割込み要因を順に保持させる制御手段とを有する。
【００１１】
好適には、前記保持手段は、発生した割込み要因の数が、保持されうる割込み要因の数を超えたことをさらに保持する。
好適には、前記保持手段は、データ伝送に関する割込み要因を保持する。
好適には、前記保持手段は、プラグアンドプレイに従う伝送路において発生する割込み要因を保持する。
【００１２】
好適には、前記保持手段は、レジスタからなる。
好適には、前記保持手段は、データ構造からなる。
【００１３】
また、本発明に係るデータ転送装置は、割込み要因保持装置を有するデータ転送装置であって、前記割込み要因保持装置は、複数の割込み要因のいずれかを保持し、順序付けられてなる複数の保持領域を有する保持手段と、前記保持手段の複数の保持領域に、発生した割込み要因を順に保持させる制御手段とを有する。
【００１４】
さらに、本発明に係る割込み要因保持方法は、複数の割込み要因のいずれかを保持し、順序付けられてなる複数の保持領域を有する保持手段を有する割込み要因保持装置において、前記保持手段の複数の保持領域に、発生した割込み要因を順に保持させる。
【発明の効果】
【００１５】
本発明の割込み要因保持装置によれば、複数の割込み要因の発生順序を認識することができる。
【発明を実施するための最良の形態】
【００１６】
図２は、本発明の実施形態に係るデータ転送装置を含むデータ転送システム１を示す図である。
図２に示すように、データ転送システム１は、ネットワーク１４を介して接続された画像形成装置１０並びに端末装置１２を含む。端末装置１２は、印刷ジョブ等の印刷データを生成して、画像形成装置１０に対して送信する。画像形成装置１０は、端末装置１２から送信された印刷データを受け付けて、印刷データに応じた画像を用紙上に出力する。例えば、画像形成装置１０は、バスリセット対応ＵＳＢプリンタである。ネットワーク１４は、ＵＳＢ又はＩＥＥＥ１３９４に対応するものであってもよいし、ＴＣＰ／ＩＰによる通信を行うものであってもよい。 
【００１７】
図３は、本発明の実施形態に係るデータ転送装置を含む画像形成装置１０及び端末装置１２のハードウェア構成を示す図である。
図３に例示するように、画像形成装置１０等は、ＣＰＵ１８、メモリ２０、ハードディスクドライブ（ＨＤＤ）等の記憶装置２２、ネットワーク１４を介して外部のコンピュータなどとデータの送信及び受信を行う通信インタフェース（ＩＦ）２４、タッチパネル又は液晶ディスプレイ並びにキーボードを含むユーザインタフェース（ＵＩ）装置２６を有する。通信ＩＦ２４は、本発明の実施形態に係る割込み要因保持装置を含み、データ転送装置を構成する。通信ＩＦ２４は、例えば、ｉ．Ｌｉｎｋバス（ＩＥＥＥ１３９４バス）コントローラ、ＵＳＢバスコントローラ等のプラグアンドプレイ・バス用のバス・コントローラである。画像形成装置１０は、プリントエンジン等を含み、通信ＩＦ２４又は図示しないスキャナを介して入力された画像を記録用紙上に印刷する印刷装置２８をさらに有する。これらの構成要素は、制御バス１６を介して互いに接続されている。
【００１８】
図４は、本発明の実施形態に係る割込み要因保持装置３０を示す図である。
図４に示すように、割込み要因保持装置３０は、複数の割込み要因レジスタ３２−１〜３２−ｎ（ｎは、２以上の整数）と制御部３４とを有する。割込み要因保持装置３０は、図３に示される通信ＩＦ２４に設けられている。なお、割込み要因レジスタ３２−１，３２−２，…，３２−ｎなど複数ある構成部分のいずれかを特定せずに示す場合には、単に割込み要因レジスタ３２などと略記することがある。また、以降、割込み要因レジスタ３２を要因レジスタ３２と略記することがある。
【００１９】
要因レジスタ３２は、ビット列を保持することにより複数の割込み要因を保持するレジスタからなる。ビット列は、例えばビット０〜ビット７の８ビットからなる。ここで、ビット０は、割込み要因が受信完了であることを保持し、ビット１は、割込み要因が送信完了であることを保持し、ビット３は、割込み要因がバスリセットであることを保持し、ビット７は、オーバーフローが発生したことを保持する。なお、ビット列におけるビット数、及び各ビットにおいて保持される割込み要因は、本例に限定されない。
【００２０】
割込み要因保持装置３０において、要因レジスタ３２−１〜３２−ｎは、順序付けられており、割込み要因保持装置３０は、最初に発生した割込み要因を要因レジスタ３２−１に保持し、一番新しく発生した割込み要因を３２−ｎに保持する。
制御部３４は、要因レジスタ３２−１〜３２−ｎに、発生した割込み要因を順に保持させる。より具体的には、制御部３４は、最初に発生した割込み要因が要因レジスタ３２−１に保持され、一番新しく発生した割込み要因が３２−ｎに保持されるように制御する。
【００２１】
このため、時刻ｔ１、時刻ｔ２、…、時刻ｔｎにおいて割込み要因が発生した場合、時刻ｔ１における割込み要因は要因レジスタ３２−１に保持され、時刻ｔ２における割込み要因は要因レジスタ３２−２に保持され、時刻ｔｎにおける割込み要因は、要因レジスタ３２−ｎに保持される。即ち、割込み要因保持装置３０は、ＦＩＦＯ（First-In First-Out）型の要因レジスタとして動作する。これにより、割込みハンドラ等のソフトウェアは、第１の要因レジスタ３２−１を順に読み出すことにより、発生した複数の割込み要因を、当該複数の割込み要因が発生した順序で認識することができる。
【００２２】
また、要因レジスタ３２は、パケット受信完了、パケット送信完了、バスリセットコンディション発生等、データ転送に関する割込み要因を保持する。さらに、要因レジスタ３２が、プラグアンドプレイ・バス用のバスコントローラ等の通信ＩＦ２４に設けられている場合、要因レジスタ３２は、プラグアンドプレイに従う伝送路において発生する割込み要因を保持する。
【００２３】
次に、割込み要因保持装置３０のオーバーフロービットを説明する。
図５は、割込み要因保持装置３０のオーバーフロービットを説明する図であって、図５（Ａ）は、端末装置１２と画像形成装置１０との間でなされるデータ転送のシーケンス図を示し、図５（Ｂ）は、オーバーフローが発生したことを保持する４段の割込み要因保持装置３０を示す図である。
【００２４】
図５（Ａ）に示すように、割込み要因保持装置３０を有するデータ転送装置（端末装置１２及び画像形成装置１０）の間のデータ転送において、時刻ｔ１において、端末装置１２が画像形成装置１０に対してパケットを送信し、時刻ｔ２において、バスリセットが発生し、時刻ｔ３及び時刻ｔ４において、端末装置１２が画像形成装置１０に対してパケットをさらに送信し、時刻ｔ５及び時刻ｔ６において、バスリセットが再び発生した場合を考える。
【００２５】
この場合、図５（Ｂ）に示すように、第１の要因レジスタ３２−１は、ビット０を「１」にして時刻ｔ１の発生要因（受信完了）を保持し、第２の要因レジスタ３２−２は、ビット３を「１」にして時刻ｔ２の発生要因（バスリセット）を保持し、第３の要因レジスタ３２−３は、ビット０を「１」にして時刻ｔ３の発生要因（受信完了）を保持する。また、第４の要因レジスタ３２−４は、ビット０を「１」にして時刻ｔ４の発生要因（受信完了）をする。
【００２６】
ここで、割込みハンドラ等のソフトウェアが第１の要因レジスタ３２−１を読み出す前に、時刻ｔ５の割込み要因（バスリセット）が発生した場合、第４の要因レジスタ３２−４は、ビット３を「１」にして時刻ｔ５の発生要因を保持する。このように、第４の要因レジスタ３２−４は、既に保持している割込み要因に加えて、新たに発生した割込み要因を保持する。即ち、第４の要因レジスタ３２−４は、既に発生している割込み要因のビット列と、新たに発生した割込み要因のビット列とをオア演算する。
【００２７】
第４の割込み要因レジスタ３２−４は、少なくとも２つの割込み要因を保持した場合、オーバーフロービット（本例では、ビット７）を「１」にする。このようにして、割込み要因レジスタ３２は、発生した割込み要因の数が、保持されうる割込み要因の数（本例では４）を超えたことをさらに保持する。したがって、割込みハンドラ等のソフトウェアは、オーバーフロービットが「１」であるか否かを確認することにより、割込み要因の溢れが発生したか否かを認識することができる。
【００２８】
次に、このような割込み要因保持装置３０から割込み要因を読み出すプログラムの動作について説明する。
図６は、割込みハンドラ等の読み出しプログラムによる要因レジスタ読み出し処理（Ｓ１０）のフローチャートを示す図である。
図６に示すように、ステップ１００（Ｓ１００）において、読み出しプログラムは、割込み要因保持装置３０から割込み通知を受け付けたか否かを判定する。読み出しプログラムは、割込み通知を受け付けた場合にはＳ１０２の処理に進み、そうでない場合にはＳ１００の処理に戻る。
【００２９】
ステップ１０２（Ｓ１０２）において、読み出しプログラムは、割込み要因保持装置３０の第１の要因レジスタ３２−１を読み出す。ここで、割込み要因保持装置３０は、第２の要因レジスタ３２−２に保持されていた割込み要因が、第１の要因レジスタ３２−１に保持されるように、制御部３４により制御される。また、第３の要因レジスタ３２−３以降に保持されていた割込み要因も、第２の要因レジスタ３２−２以降に保持されるように制御される。
【００３０】
ステップ１０４（Ｓ１０４）において、読み出しプログラムは、読み出したビット列のうちオーバーフロービットがオンであるか否か（「１」であるか否か）を判定する。つまり、読み出しプログラムは、割込み要因の溢れが発生したか否かを判定する。読み出しプログラムは、オーバーフロービットがオンである場合にはＳ１０６の処理に進み、そうでない場合にはＳ１０８の処理に進む。
ステップ１０６（Ｓ１０６）において、読み出しプログラムは、所定の回復処理を行って処理を終了する。例えば、読み出しプログラムは、データ転送を中止し、当該データ転送に係る全てのデータを最初から送信及び受信する。
【００３１】
ステップ１０８（Ｓ１０８）において、読み出しプログラムは、読み出したビット列において、オンである要因ビットはいずれのビットであるかを判定する。即ち、読み出しプログラムは、発生した割込み要因を判定する。読み出しプログラムは、割込み要因がバスリセットである場合にはＳ１１０の処理に進み、割込み要因が送信完了である場合にはＳ１１４の処理に進み、割込み要因が受信完了である場合にはＳ１２０の処理に進む。また、読み出しプログラムは、オンである要因ビットがビット列に含まれない場合、処理を終了する。なお、割込み要因が、これらの要因でない場合（他の要因ビットがオンである場合）、読み出しプログラムは、当該発生した割込み要因に対応する処理を行う。
【００３２】
割込み要因がバスリセットである場合、ステップ１１０（Ｓ１１０）において、読み出しプログラムは、確立されている接続（セッション）を切断する。さらに、読み出しプログラムは、状態をアイドル状態に遷移させる。
ステップ１１２（Ｓ１１２）において、読み出しプログラムは、最終の送受信パケットに関する情報を、メモリ２０、記憶装置２２等に保存する。このようにして、読み出しプログラムは、セッションの再開及びデータ転送の継続処理に備える。その後、読み出しプログラムは、Ｓ１０２の処理に戻る。
【００３３】
割込み要因が送信完了である場合、ステップ１１４（Ｓ１１４）において、読み出しプログラムは、状態がアイドル状態であるか否かを判定する。読み出しプログラムは、状態がアイドル状態である場合にはＳ１１６の処理に進み、そうでない場合にはＳ１１８の処理に進む。
ステップ１１６（Ｓ１１６）において、読み出しプログラムは、当該送信完了を不正な送信完了とみなして、この割込みを無視する。
ステップ１１８（Ｓ１１８）において、読み出しプログラムは、パケット送信処理の後処理を行う。
その後、読み出しプログラムは、Ｓ１０２の処理に戻る。
【００３４】
割込み要因が受信完了である場合、ステップ１２０（Ｓ１２０）において、読み出しプログラムは、状態がアイドル状態であるか否かを判定する。読み出しプログラムは、状態がアイドル状態である場合にはＳ１２２の処理に進み、そうでない場合にはＳ１２４の処理に進む。
ステップ１２２（Ｓ１２２）において、読み出しプログラムは、当該受信を不正受信とみなして、パケットを破棄する。
ステップ１２４（Ｓ１２４）において、読み出しプログラムは、パケットを受信する。
その後、読み出しプログラムは、Ｓ１０２の処理に戻る。
【００３５】
このようにして、読み出しプログラムは、割込み要因保持装置３０の第１の要因レジスタ３２−１においてオンである要因ビットがない状態になるまで、第１の要因レジスタ３２−１の読み出しを繰り返す。この間、割込み要因保持装置３０においては、発生した割込み要因が、ＦＩＦＯ方式で保持されているので、読み出しプログラムは、発生した複数の割込み要因を、発生した順序で認識することができる。
【００３６】
次に、データ転送システム１（図２）の全体動作を説明する。
図７は、端末装置１２及び画像形成装置１０の間でなされるパケットデータの送受信に関する全体動作（Ｓ２０）を示すシーケンス図である。なお、本発明に係る割込み要因保持装置３０は、通信ＩＦ２４に含まれている。
図７に示すように、ステップ２００（Ｓ２００）において、端末装置１２上で動作する送信プログラムは、第１のパケットの送信を通信ＩＦ２４に対して要求する。
ステップ２０２（Ｓ２０２）において、端末装置１２の通信ＩＦ２４は、ネットワーク１４を介して画像形成装置１０に対して第１のパケットを送信し、画像形成装置１０の通信ＩＦ２４は、送信された第１のパケットを受信する。
【００３７】
パケット送信側である端末装置１２では、ステップ２０４（Ｓ２０４）において、送信完了ビットがオンになる。ここで、送信完了ビットは、通信ＩＦ２４に含まれる割込み要因保持装置３０の第１の要因レジスタ３２−１のビット１である。
パケット受信側である画像形成装置１０では、ステップ２０６（Ｓ２０６）において、受信完了ビットがオンになる。ここで、受信完了ビットは、通信ＩＦ２４に含まれる割込み要因保持装置３０の第１の要因レジスタ３２−１のビット０である。
【００３８】
端末装置１２では、ステップ２０８（Ｓ２０８）において、通信ＩＦ２４が、送信プログラムに対して割込み通知を出力する。送信プログラムは、当該割込み通知を受け付けると、通信ＩＦ２４に含まれる割込み要因保持装置３０の第１の要因レジスタ３２−１を読み出して、パケット送信の後処理を行う（図６；Ｓ１０）。
一方、画像形成装置１０では、ステップ２１０（Ｓ２１０）において、通信ＩＦ２４が、受信プログラムに対して割込み通知を出力する。受信プログラムは、当該割込み通知を受け付けると、通信ＩＦ２４に含まれる割込み要因保持装置３０の第１の要因レジスタ３２−１を読み出して、パケット受信処理を行う（図６；Ｓ１０）。
このようにして、第１のパケットの送受信処理が、正常に完了する。
【００３９】
その後、ステップ２１２（Ｓ２１２）において、バスリセットが発生する。
さらに、当該バスリセットが発生した直後、ステップ２１４（Ｓ２１４）において、端末装置１２上で動作する送信プログラムは、第２のパケットの送信を通信ＩＦ２４に対して要求する。
端末装置１２では、ステップ２１６（Ｓ２１６）において、当該バスリセットにより、バスリセット発生ビットがオンになる。ここで、バスリセット発生ビットは、通信ＩＦ２４に含まれる割込み要因保持装置３０の第１の要因レジスタ３２−１のビット３である。
画像形成装置１０でも同様に、ステップ２１８（Ｓ２１８）において、バスリセット発生ビットがオンになる。
【００４０】
端末装置１２では、ステップ２２０（Ｓ２２０）において、通信ＩＦ２４が、送信プログラムに対して割込み通知を出力する。送信プログラムは、当該割込み通知を受け付けると、通信ＩＦ２４に含まれる割込み要因保持装置３０の第１の要因レジスタ３２−１を読み出して、セッションの切断処理、アイドル状態への遷移処理等を行う（図６；Ｓ１０）。
一方、画像形成装置１０では、ステップ２２２（Ｓ２２２）において、通信ＩＦ２４が、受信プログラムに対して割込み通知を出力する。
【００４１】
ステップ２２４（Ｓ２２４）において、端末装置１２の通信ＩＦ２４は、ネットワーク１４を介して画像形成装置１０に対して第２のパケットを送信し、画像形成装置１０の通信ＩＦ２４は、送信された第２のパケットを受信する。
【００４２】
パケット送信側である端末装置１２では、ステップ２２６（Ｓ２２６）において、送信完了ビットがオンになる。
パケット受信側である画像形成装置１０では、ステップ２２８（Ｓ２２８）において、受信完了ビットがオンになる。このとき、画像形成装置１０の割込み要因保持装置３０では、第１の要因レジスタ３２−１が、割込み要因がバスリセット発生である旨を既に保持しているので、第２の要因レジスタ３２−２が、発生した割込み要因は受信完了である旨を保持する。即ち、受信完了ビットは、第２の要因レジスタ３２−２のビット０である。
【００４３】
端末装置１２では、ステップ２３０（Ｓ２３０）において、通信ＩＦ２４が、送信プログラムに対して割込み通知を出力する。送信プログラムは、当該割込み通知を受け付けると、通信ＩＦ２４に含まれる割込み要因保持装置３０の第１の要因レジスタ３２−１を読み出す。ここで、送信プログラムは、状態がアイドル状態であるので、当該送信完了は不正な送信完了であるとみなして、当該割り込みを無視する（図６；Ｓ１０）。
【００４４】
一方、画像形成装置１０では、受信プログラムは、Ｓ２２２の処理における割込み通知に基づいて、通信ＩＦ２４に含まれる割込み要因保持装置３０の第１の要因レジスタ３２−１を読み出す。ここで、第１の要因レジスタ３２−１は、割込み要因がバスリセット発生である旨を保持しているので、受信プログラムは、セッションの切断処理、アイドル状態への遷移処理等を行う（図６；Ｓ１０）。
【００４５】
さらに、割込み要因保持装置３０では、制御部３４が、ＦＩＦＯ方式に基づいて、第１の要因レジスタ３２−１が、第２の要因レジスタ３２−２に保持されていた割込み要因を保持するように制御する。受信プログラムは、第１の要因レジスタ３２−１を再び読み出す。ここで、受信プログラムは、状態がアイドル状態であるので、当該受信は不正受信であるとみなして、第２のパケットを破棄する（図６；Ｓ１０）。
【００４６】
したがって、送信側である端末装置１２は、第２のパケットの送信処理が無効であることを認識している。また、受信側である画像形成装置１０も同様に、第２のパケットの受信処理が無効であることを認識している。よって、送信側及び受信側の双方の認識が一致している。
これにより、送信側である端末装置１２は、複数のパケットを送信するデータ転送を処理している間にバスリセットが発生した場合においても、最初のパケットから送信しなおす必要はなく、無効となったパケット（本例では、第２のパケット）からデータ転送を継続することが可能となる。
【００４７】
以上説明したように、本発明に係る割込み要因保持装置は、複数の割込み要因のいずれかを保持し、順序付けられてなる複数の保持領域を有する保持手段と、前記保持手段の複数の保持領域に、発生した割込み要因を順に保持させる制御手段とを有する。これにより、ソフトウェアは、複数の割込み要因の発生順序を認識することができる。また、ソフトウェアは、データの重複や欠落を生じさせることなく、無効となったパケットからデータ転送を継続することが可能となるので、データを効率よく転送することができる。このため、ネットワークにかかる負荷が低減されることができる。
【００４８】
本発明に係る割込み要因保持装置は、プラグアンドプレイバスの制御用コントローラなどの通信ＩＦに設けられた場合に特に有効である。例えば、通信ＩＦが、ｉ．Ｌｉｎｋ（ＩＥＥＥ１３９４）に対応する場合、ユーザは、ＩＥＥＥ１３９４を使ってデジタルテレビから映像録画装置へ映像を録画している間に（即ち、データ転送中に）、同一のネットワークに、ＩＥＥＥ１３９４カメラやパーソナルコンピュータを接続して用いることができる。
【００４９】
また、ソフトウェアが、本発明に係る割込み要因保持装置に対応している場合、ソフトウェアにおいては、図６に示されるフローチャートのように、発生した割込み要因とこの割込み要因に対する処理との組は、複数、直列的に配置されることなく、水平的に配置されることができる。このため、ソフトウェアの設計・保守効率が向上されることができる。また、処理が直列的に配置される場合、ソフトウェア設計者は、それぞれの処理の優先順位を考慮して設計する必要があるが、処理が水平的に配置される場合、ソフトウェア設計者は、優先順位を考慮する必要がなくなる。したがって、ソフトウェア設計者は、ソフトウェアを効率よく設計・開発することができる。
【００５０】
次に、本発明の実施形態に係る割込み要因保持装置の変形例を説明する。
図８は、本発明の実施形態に係る割込み要因保持装置の変形例を示す図である。
図８に示すように、割込み要因保持装置は、メモリ２０上に記憶されるデータ構造として実現される。より具体的には、メモリ２０に、複数の割込み要因のいずれかを保持する複数の保持領域が確保され、その最初の保持領域（時刻ｔ１に発生した割込み要因を保持する領域）が、割込み要因ポインタレジスタにより指定されている。また、複数の保持領域は、発生した割込み要因を順に保持させる制御（不図示）により、例えばＦＩＦＯ方式で複数の割込み要因を保持するように制御される。したがって、割込みハンドラ等のソフトウェアは、割込み要因ポインタレジスタを参照し、第１の割込み要因保持領域を読み出すことにより、発生した複数の割込み要因を、当該複数の割込み要因が発生した順序で認識することができる。
【図面の簡単な説明】
【００５１】
【図１】割込み要因レジスタについて説明する図であって、図１（Ａ）は、割込み要因レジスタの構成を示し、図１（Ｂ）は、この種の割込み要因レジスタを有する装置ａと装置ｂとの間の動作を例示する。
【図２】本発明の実施形態に係るデータ転送装置を含むデータ転送システム１を示す図である。
【図３】本発明の実施形態に係るデータ転送装置を含む画像形成装置１０及び端末装置１２のハードウェア構成を示す図である。
【図４】本発明の実施形態に係る割込み要因保持装置３０を示す図である。
【図５】割込み要因保持装置３０のオーバーフロービットを説明する図であって、図５（Ａ）は、端末装置１２と画像形成装置１０との間でなされるデータ転送のシーケンス図を示し、図５（Ｂ）は、オーバーフローが発生したことを保持する４段の割込み要因保持装置３０を示す図である。
【図６】割込みハンドラ等の読み出しプログラムによる要因レジスタ読み出し処理（Ｓ１０）のフローチャートを示す図である。
【図７】端末装置１２及び画像形成装置１０の間でなされるパケットデータの送受信に関する全体動作（Ｓ２０）を示すシーケンス図である。
【図８】本発明の実施形態に係る割込み要因保持装置の変形例を示す図である。
【符号の説明】
【００５２】
１ データ転送システム
１０ 画像形成装置
１２ 端末装置
１４ ネットワーク
１６ 制御バス
１８ ＣＰＵ
２０ メモリ
２２ 記憶装置
２４ 通信ＩＦ
３０ 割込み要因保持装置
３２ 割込み要因レジスタ
３４ 制御部
【図１】
2007310526.tif 000003
【図２】
2007310526.tif 000004
【図３】
2007310526.tif 000005
【図４】
2007310526.tif 000006
【図５】
2007310526.tif 000007
【図６】
2007310526.tif 000008
【図７】
2007310526.tif 000009
【図８】
2007310526.tif 000010