(57)【要約】【課題】ドライバソフトウェアがＯＳに組み込まれる前に割り込みが発生しても、無限ループに入らないＣＰＵ搭載装置起動方法，装置，プログラム及び該プログラムを記録した記録媒体プログラムを提供する。【解決手段】周辺制御装置のドライバソフトウェアを、ＣＰＵ搭載装置のＯＳに組み込む前に発生した割り込みをリセット発生条件判断手段によって判断し（Ｓ４１）、該判断がリセット発生条件を満たす場合に、リセット発生手段を用いてリセット（Ｓ４２）を行う。【選択図】図１
2008102646.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと該ＣＰＵに接続された周辺制御装置から構成されたＣＰＵ搭載装置を起動するＣＰＵ搭載装置起動方法であって、
前記周辺制御装置のドライバソフトウェアを、該ＣＰＵ搭載装置のＯＳに組み込む前に発生した割り込みの割り込み要因を確認するステップと、
前記割り込み要因に基づいてリセット発生条件を満たすか、否か、を判断するリセット発生条件判断ステップと、
前記リセット発生条件判断ステップによる判断が、リセット発生条件を満たす、と判断した場合に、リセット発生手段を用いて前記ＣＰＵ搭載装置をリセットするステップと、
を有することを特徴とするＣＰＵ搭載装置起動方法。
【請求項２】
請求項１に記載のＣＰＵ搭載装置起動方法であって、
同一の割り込み要因が発生する毎に、該割り込み要因の割り込み要因回数をカウントするステップを有し、
前記リセット発生条件判断ステップが、
同一の割り込み要因が所定の時間内に連続して最大割り込み要因回数以上発生したことを前記リセット発生条件が成立したものと見做す判断を行うステップを有する、
ことを特徴とするＣＰＵ搭載装置起動方法。
【請求項３】
請求項１に記載のＣＰＵ搭載装置起動方法であって、
前記リセット発生条件判断ステップが、
前記割り込み要因に係るシーケンスチェックを行い、該シーケンスが誤っていたことを前記リセット発生条件が成立したものと見做す判断を行うステップを有する、
ことを特徴とするＣＰＵ搭載装置起動方法。
【請求項４】
ＣＰＵと該ＣＰＵに接続された周辺制御装置から構成されたＣＰＵ搭載装置であって、
前記周辺制御装置のドライバソフトウェアを、該ＣＰＵ搭載装置のＯＳに組み込む前に発生した割り込みの割り込み要因を確認し、該割り込み要因に基づいてリセット発生条件を満たすか、否か、を判断するリセット発生条件判断手段と、
リセット発生条件が成立した場合に、前記ＣＰＵ搭載装置をリセットするリセット発生手段と、
を有することを特徴とするＣＰＵ搭載装置。
【請求項５】
同一の割り込み要因が発生する毎に、該割り込み要因の割り込み要因回数をカウントし、
前記のリセット発生条件判断手段が、
同一の割り込み要因が所定の時間内に連続して最大割り込み要因回数以上発生したことを前記リセット発生条件が成立したものと見做す判断を行うこと、
を特徴とする請求項４に記載のＣＰＵ搭載装置。
【請求項６】
前記リセット発生条件判断手段が、
前記割り込み要因に係るシーケンスチェックを行い、該シーケンスが誤っていたことを前記リセット発生条件が成立したものと見做す判断を行うこと、
を特徴とする請求項４に記載のＣＰＵ搭載装置。
【請求項７】
請求項１乃至３のいずれかに記載のＣＰＵ搭載装置起動方法を、コンピュータプログラムで記載してそれを実行可能にしたことを特徴とするプログラム。
【請求項８】
請求項１乃至３のいずれかに記載のＣＰＵ搭載装置起動方法を、コンピュータで実行可能に記載したプログラム記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ搭載装置起動方法，装置，プログラム及び該プログラムを記録した記録媒体であって、例えば、装置制御技術に関するものである。
【背景技術】
【０００２】
一般的に、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を搭載した装置（以下、ＣＰＵ搭載装置と称す）には、その装置に係る周辺装置を制御するための周辺制御装置（例えば、バッファＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ），ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ），ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）コントローラ）を有している。そして、前記のＣＰＵ搭載装置が起動する際には、前記の制御装置群と該ＣＰＵ間で、様々な信号が送受信され、該ＣＰＵ搭載装置の起動が行われることになる。
【０００３】
ここで、前記のＣＰＵ搭載装置の起動シーケンスを図４及び図５に基づいて、以下に説明する。まず、前記のＣＰＵ搭載装置に対するリセット（または、電源投入）操作によって、リセット信号が図４Ａ中の周辺制御装置３（例えば、バッファＩＣやＦＰＧＡ）から送信される。例えば、図４Ａ中の周辺制御装置３からＣＰＵ１に対してリセット信号ａが送信され、周辺制御装置３から周辺制御装置２（例えば、ＬＡＮコントローラ）に対してリセット信号ｂが送信される。
【０００４】
前記のリセット操作後には、図４Ｂに示す処理フローに従って、前記のＣＰＵ搭載装置の起動処理が行われることになる。図４Ｂ中では、前記のＣＰＵのスタートアップ処理が行われ（Ｓ１）、該ＣＰＵと周辺制御装置に対する初期設定が行われる（Ｓ２）。次に、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が起動し、割り込み許可（Ｓ３）が行われ、各周辺装置のドライバソフトウェアがＯＳに組み込まれ実行される（あるいは、該ドライバソフトウェアが起動される）（Ｓ４）。そして、ＣＰＵ及び周辺制御装置は通常動作状態へ移行する（Ｓ５）。
【０００５】
前記の通常動作状態中に、図４中の周辺制御装置２内で、割り込みが発生し、ＬＡＮ割り込み信号ｃが発信されると、該ＬＡＮ割り込み信号ｃが周辺制御装置３に受信される。
【０００６】
次に、前記の周辺制御装置３は、前記のＬＡＮ割り込み信号ｃの受信を契機に、割り込み信号ｄをＣＰＵ１に対して送信する。
【０００７】
次に、前記のＣＰＵ１は、前記の割り込み信号ｄを受信すると、図５に示す処理フローに従って割り込み処理を行う。図５中では、前記の割り込み信号ｄの受信によって、ＣＰＵ１は、割り込み処理を開始（または、割り込み処理を起動）する（Ｓ２１）。なお、この時に、ＣＰＵ１は割り込み状態に入ることになる。
【０００８】
次に、前記の割り込み信号ｄに対する割り込みの要因確認が行われる（Ｓ２２）。
【０００９】
次に、割り込み処理要因に対する処理が実行（Ｓ２２’）された後で、割り込みフラグをクリアし、割り込み状態を解除する（Ｓ２３）。
【００１０】
次に、割り込み処理を終了し（Ｓ２４）、通常動作状態に復帰する（Ｓ２５）。
【００１１】
なお、ＣＰＵや周辺制御装置で異常が発生し、ＣＰＵや周辺制御装置が自動的にリセットされた場合でも、前記の起動シーケンスは実行されることになる。
【００１２】
また、類似する割り込み処理の一例としては、例えば、次のようなものが知られている。
【００１３】
ネットワークからのパケットを受信することによって発生する割り込みの回数を測定し、その測定結果と特定の閾値を比較して、その割り込みの発生要因であるパケット受信処理を禁止するものである（例えば、特許文献１参照）。
【特許文献１】特開２００５−３４７８９４（段落［００１０］〜［００１２］等）。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
前述のようなＣＰＵ搭載装置の起動シーケンスでは、ＣＰＵ及び周辺制御装置が正常に動作している状態ならば、問題は発生せずに、図５で示すような割り込み処理動作が正常に作動することになる。
【００１５】
しかし、周辺制御装置に異常が発生し、ソフトウェアまたはハードウェアによるリセットによってＣＰＵと周辺制御装置が再起動される場合に、問題が発生することがある。
【００１６】
例えば、図４Ｂでは、ＣＰＵと周辺制御装置に対する初期設定が行われた後に、ＯＳが起動し、ＣＰＵの割り込みを許可する。即ち、この時点では、各周辺装置のドライバソフトウェアがＯＳに組み込まれておらず（例えば、割り込みベクタの書き換えが行われていない）、さらに、実行されてもいない（あるいは、該ドライバソフトウェアが起動されていない）。
【００１７】
前記の時点で周辺制御装置（例えば、ＬＡＮコントローラ）に異常が発生し、その異常によって割り込み信号が発信された場合には、前記のドライバソフトウェアがＯＳに組み込まれていない（あるいは、該ドライバソフトウェアが起動されていない）ため、割り込み状態を解除できずに、図６に示すシーケンスのような無限ループ（Ｓ２１，Ｓ２２，Ｓ２４が無限ループ）に陥ってしまう。即ち、ウォッチドッグタイマによるリセットが発生する過程にも至らないため、ＣＰＵ搭載装置がハングアップ状態になる。
【００１８】
前記のような異常が発生した場合に、ＣＰＵ搭載装置は、その異常内容を所定の装置に通知し、再起動することが一般的な動作である。即ち、前記のような無限ループやハングアップ状態に陥ることは、最も避けなければならない事象である。
【００１９】
本発明は、前記課題に基づいてなされたものであり、ドライバソフトウェアがＯＳに組み込まれる（あるいは、該ドライバソフトウェアが起動される）前に割り込みが発生しても、無限ループに入らないＣＰＵ搭載装置起動方法，装置，プログラム及び該プログラムを記録した記録媒体を提供することにある。
【課題を解決するための手段】
【００２０】
前記課題の解決を図るために、請求項１記載の発明は、ＣＰＵと該ＣＰＵに接続された周辺制御装置から構成されたＣＰＵ搭載装置を起動するＣＰＵ搭載装置起動方法であって、前記周辺制御装置のドライバソフトウェアを、該ＣＰＵ搭載装置のＯＳに組み込む前に発生した割り込みの割り込み要因を確認するステップと、前記割り込み要因に基づいてリセット発生条件を満たすか、否か、を判断するリセット発生条件判断ステップと、前記リセット発生条件判断ステップによる判断が、リセット発生条件を満たす、と判断した場合に、リセット発生手段を用いて前記ＣＰＵ搭載装置をリセットするステップと、を有することを特徴とする。
【００２１】
請求項２記載の発明は、請求項１記載の発明において、同一の割り込み要因が発生する毎に、該割り込み要因の割り込み要因回数をカウントするステップを有し、前記リセット発生条件判断ステップが、同一の割り込み要因が所定の時間内に連続して最大割り込み要因回数以上発生したことを前記リセット発生条件が成立したものと見做す判断を行うステップを有する、ことを特徴とする。
【００２２】
請求項３記載の発明は、請求項１記載の発明において、前記リセット発生条件判断ステップが、前記割り込み要因に係るシーケンスチェックを行い、該シーケンスが誤っていたことを前記リセット発生条件が成立したものと見做す判断を行うステップを有する、ことを特徴とする。
【００２３】
請求項４記載の発明は、ＣＰＵと該ＣＰＵに接続された周辺制御装置から構成されたＣＰＵ搭載装置であって、前記周辺制御装置のドライバソフトウェアを、該ＣＰＵ搭載装置のＯＳに組み込む前に発生した割り込みの割り込み要因を確認し、該割り込み要因に基づいてリセット発生条件を満たすか、否か、を判断するリセット発生条件判断手段と、リセット発生条件が成立した場合に、前記ＣＰＵ搭載装置をリセットするリセット発生手段と、を有することを特徴とする。
【００２４】
請求項５記載の発明は、請求項４記載の発明において、同一の割り込み要因が発生する毎に、該割り込み要因の割り込み要因回数をカウントし、前記のリセット発生条件判断手段が、同一の割り込み要因が所定の時間内に連続して最大割り込み要因回数以上発生したことを前記リセット発生条件が成立したものと見做す判断を行うこと、を特徴とする。
【００２５】
請求項６記載の発明は、請求項４記載の発明において、前記リセット発生条件判断手段が、前記割り込み要因に係るシーケンスチェックを行い、該シーケンスが誤っていたことを前記リセット発生条件が成立したものと見做す判断を行うこと、を特徴とする。
【００２６】
請求項７記載の発明は、請求項１乃至３のいずれかに記載のＣＰＵ搭載装置起動方法を、コンピュータプログラムで記載してそれを実行可能にしたことを特徴とする。
【００２７】
請求項８記載の発明は、請求項１乃至３のいずれかに記載のＣＰＵ搭載装置起動方法を、コンピュータで実行可能に記載したプログラム記録したことを特徴とする。
【００２８】
前記の請求項１，４記載の発明によれば、割り込み要因が、リセット発生条件を満たすか、否かを判断することができる。
【００２９】
前記の請求項２，５記載の発明によれば、同一の割り込み要因が連続して発生する回数をカウントすることができる。
【００３０】
前記の請求項３，６記載の発明によれば、シーケンスをチェックすることができる。
【００３１】
前記の請求項７記載の発明によれば、ＣＰＵ搭載装置起動方法を実装したプログラムを取得することができる。
【００３２】
前記の請求項８記載の発明によれば、ＣＰＵ搭載装置起動方法を実装したプログラムを記録媒体に記録することができる。
【発明の効果】
【００３３】
以上示したように請求項１，４記載の発明によれば、ドライバソフトウェアをＯＳに組み込む前に割り込みが発生しても、無限ループやハングアップ状態に陥らないで、前記のＣＰＵ搭載装置を起動することができる。
【００３４】
請求項２，５記載の発明によれば、同一の割り込み要因が連続して発生する回数に基づいて、リセット発生条件に係る判断を行うことができる。
【００３５】
請求項３，６記載の発明によれば、シーケンスチェックに基づいて、リセット発生条件に係る判断を行うことができる。
【００３６】
請求項７記載の発明によれば、ＣＰＵ搭載装置起動方法を実装したプログラムを実行することができる。
【００３７】
請求項８記載の発明によれば、ＣＰＵ搭載装置起動方法を実装したプログラムを記録した記録媒体を取得することができる。
【００３８】
これらを以って装置制御の分野に貢献できる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明の実施の第１乃至第３形態におけるＣＰＵ搭載装置起動方法，装置，プログラム及び該プログラムを記録した記録媒体を図面等に基づいて詳細に説明する。
【００４０】
本実施の第１乃至第３形態では、周辺制御装置のドライバソフトウェアをＣＰＵ搭載装置のＯＳに組み込む（あるいは、該ドライバソフトウェアが起動される）前に発生した割り込みをリセット発生条件判断手段によって判断し、該判断がリセット発生条件を満たす場合に、リセット発生手段を用いてリセットを行う方法，装置，プログラム及び該プログラムを記録した記録媒体（例えば、磁気ディスク，光ディスクなど）である。
【００４１】
［本実施の第１形態］
本実施の第１形態を図１に基づいて以下に説明する。まず、ＣＰＵは、割り込み処理を開始する（Ｓ２１）。次に、前記の割り込み要因の確認が行われ、同一の該割り込み要因が発生する毎に、該割り込み要因の割り込み要因回数をカウントする（Ｓ２２）。
【００４２】
なお、割り込み要因には、同一の該割り込み要因が発生した最大回数（以後、最大割り込み要因回数と称する；例えば、１０回）を設定されているものとする。
【００４３】
また、前記のＣＰＵは、例えば、同一の割り込み要因が所定の時間内に連続して最大割り込み要因回数以上発生した（即ち、リセット発生条件が成立した）か、否か、を判断する手段（即ち、リセット発生条件判断手段）を使用できる（あるいは、備えている）ものとする。
【００４４】
次に、前記のリセット発生条件判断手段によって、リセット発生条件が成立した場合（Ｓ４１）に、リセット発生手段（例えば、ソフトウェアリセットを行うリセット発生手段）を使って、前記のＣＰＵに対してリセット（即ち、ＣＰＵ搭載装置のリセット）を行う（Ｓ４２）。
【００４５】
一方、前記のリセット発生条件が成立しなかった場合（Ｓ４１）には、割り込み処理を終了する（Ｓ２４）。
【００４６】
そして、前記のリセット発生条件判断手段は、ドライバソフトウェアに対する設定が完了した後に、その手段自体が無効にされる。
【００４７】
なお、本実施の第１形態をプログラミングすることも可能であり、かつ、そのプログラムを記録媒体に記録して配布できるものである。
【００４８】
［本実施の第２形態］
本実施の第２形態を図２に基づいて以下に説明する。まず、ＣＰＵは、割り込み処理を開始する（Ｓ２１）。次に、前記の割り込み要因の確認が行われる（Ｓ２２）。
【００４９】
なお、前記のＣＰＵは、ドライバソフトウェアの組み込み（或いは、該ドライバソフトウェアの起動）前に、前記の割り込み要因に係る割り込み処理を中止する（即ち、リセット発生条件が成立した）か、否かを判断する手段（即ち、リセット発生条件判断手段）を使用できる（あるいは、備えている）ものとする。
【００５０】
また、前記のリセット発生条件判断手段によって、「割り込み処理を中止する」という判断が提出された場合（Ｓ５１）には、リセット発生手段を使って、前記のＣＰＵのリセット（即ち、ＣＰＵ搭載装置のリセット）を行う（Ｓ４２）。
【００５１】
例えば、前記のリセット発生条件判断手段は、次のようなシーケンスチェック処理を行い判断する。起動中におけるドライバソフトウェアの組み込み状態を示すフラグ（以後、ドライバ組み込みフラグと称する）を用意し、起動シーケンスに入った直後に、前記ドライバ組み込みフラグを「未組み込み」に設定する。そして、割り込みが発生して起動要因確認を行う際に、前記のドライバ組み込みフラグが「未組み込み」に設定されていた（即ち、シーケンス誤りが発生した）場合には、該割り込みに係る割り込み処理を中止し、リセットを行う。
【００５２】
一方、前記のリセット発生条件が成立しなかった場合（Ｓ５１）には、割り込み処理を終了する（Ｓ２４）。
【００５３】
そして、前記のリセット発生条件判断手段は、前記のドライバソフトウェアに対する設定が完了した後に、その手段自体が無効にされる。例えば、前記のドライバ組み込みフラグが「組み込み済み」に設定されたことによって、リセット発生条件判断手段が無効にさえれた、と見做しても良い。
【００５４】
なお、本実施の第２形態をプログラミングすることも可能であり、かつ、そのプログラムを記録媒体に記録して配布できるものである。
【００５５】
［本実施の第３形態］
本実施の第３形態を図３に基づいて以下に説明する。
【００５６】
まず、図３中の周辺制御装置３’は、周辺制御装置２からＬＡＮ割り込み信号ｃを受信すし、割り込み処理を開始する。次に、前記の周辺制御装置３’は前記の割り込み要因の確認を行う。
【００５７】
なお、前記の周辺制御装置３’は、ドライバソフトウェアの組み込み（あるいは、該ドライバソフトウェアが起動される）前に、前記の割り込み要因に係る割り込み処理を中止する（即ち、リセット発生条件が成立した）か、否かを判断する手段（即ち、リセット発生条件判断手段）４を有しているものとする。
【００５８】
また、前記のリセット発生条件判断手段４によって、「割り込み処理を中止する」という判断が提出された場合には、リセット発生手段（例えば、図３中のリセット信号駆動回路５）を使って、前記のＣＰＵ１または周辺制御装置２に対してリセット信号を送信し、リセットを行う。
【００５９】
一方、前記のリセット発生条件が成立しなかった場合には、割り込み処理を終了する。
【００６０】
そして、前記のリセット発生条件判断手段４は、ドライバソフトウェアに対する設定が完了した後に、その手段自体が無効にされる。
【００６１】
なお、本実施の第３形態をプログラミングすることも可能であり、かつ、そのプログラムを記録媒体に記録して配布できるものである。
【００６２】
以上示したように本実施の第１乃至第３形態によれば、ドライバソフトウェアがＯＳに組み込まれる前に、割り込み処理が発生しても、無限ループやハングアップ状態に陥ることなく、リセットを発生させ、ＣＰＵ搭載装置を再起動することができる。
【００６３】
以上、本発明において、記載された具体例に対してのみ詳細に説明したが、本発明の技術思想の範囲で多彩な変形および修正が可能であることは、当業者にとって明白なことであり、このような変形および修正が特許請求の範囲に属することは当然のことである。
【００６４】
例えば、本実施の第１形態における変形例としては、前記の割り込み要因回数をカウントアップして、最大割り込み要因回数以上発生したか否かを判断しても良いし、前記の割り込み要因回数をカウントダウンして、最大割り込み要因回数以上発生したか否かを判断しても良い。
【図面の簡単な説明】
【００６５】
【図１】本実施の第１形態における割り込み処理フローチャート。
【図２】本実施の第２形態における割り込み処理フローチャート。
【図３】本実施の第３形態におけるＣＰＵ搭載装置の構成図。
【図４】一般的なＣＰＵ搭載装置の構成図及び起動フローチャート。
【図５】一般的な割り込み処理フローチャート。
【図６】ハングアップ（もしくは、無限ループ）状態のフローチャート。
【符号の説明】
【００６６】
１…ＣＰＵ
２，３，３’…周辺制御装置
４…リセット発生条件判断手段
５…リセット信号駆動回路
ａ，ｂ…リセット信号
ｃ…ＬＡＮ割り込み信号
ｄ…割り込み信号
【図１】
2008102646.tif 000003
【図２】
2008102646.tif 000004
【図３】
2008102646.tif 000005
【図４】
2008102646.tif 000006
【図５】
2008102646.tif 000007
【図６】
2008102646.tif 000008