(57)【要約】【課題】不要なＩＤＥ初期設定処理のやり直しを防止すること。【解決手段】電子機器２０において、デバイスコントローラ３０は、ホスト装置１からバスリセット信号やリセットコマンドが入力されると、ＩＤＥ初期設定処理を実行中かを判断し、実行中ならば実行中のＩＤＥ初期設定処理を継続し、実行中でないならばＩＤＥ初期設定処理を開始する。【選択図】図１
2009187336.tif 000002
【特許請求の範囲】
【請求項１】
所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器の制御回路が実行するデバイス制御方法であって、
内蔵された前記デバイスの認識処理を行って前記電子機器を初期設定する初期設定処理と、
前記初期設定処理を少なくとも含み、前記電子機器をリセットするリセット処理と、
を前記制御回路が実行可能な処理として含んでおり、更に、
前記リセット処理には、
前記初期設定処理を実行中かを判断することと、
前記初期設定処理を実行中と判断した場合には、実行中の前記初期設定処理を継続して新たな初期設定処理を行わず、実行中でないと判断した場合には、前記初期設定処理を実行することと、
が含まれるデバイス制御方法。
【請求項２】
前記デバイスはＡＴＡ／ＡＴＡＰＩ規格の内部バスで前記制御回路と接続されたハードディスクであり、前記電子機器は前記デバイスを複数内蔵し、前記制御回路は前記複数のデバイスを統括して制御し、前記外部バスはＩＥＥＥ１３９４規格又はＵＳＢ規格のバスであって複数の前記電子機器がディジーチェーン接続可能なバスであり、
前記リセット処理は、前記制御回路が、前記ホスト装置から、前記外部バスに接続されている接続ノードである各電子機器に対するバスリセット信号を受け付けた際に実行する処理である、
請求項１に記載のデバイス制御方法。
【請求項３】
前記リセット処理には、少なくとも前記デバイスの制御命令キュー及びエラー状態をリセットするソフトウェアリセット処理と、少なくとも前記初期設定処理を実行するハードウェアリセット処理とがあり、
前記ホスト装置から入力される制御命令に従って前記デバイスを制御する命令実行処理と、
前記命令実行処理の実行に当たり、前記初期設定処理の実行要否を判定する処理と、
を実行可能な処理として更に含み、
前記リセット処理における前記初期設定処理を実行中かの前記判断は、前記初期設定処理の実行要否の判定で必要と判定された場合に行う、
請求項１又は２に記載のデバイス制御方法。
【請求項４】
所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器の制御回路であるコンピュータに、請求項１〜３の何れか一項に記載のデバイス制御方法を実行させるためのプログラム。
【請求項５】
所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器の制御回路であって、
内蔵された前記デバイスの認識処理を行って前記電子機器を初期設定する処理を実行する初期設定処理部と、
前記初期設定処理を少なくとも含み、前記電子機器をリセットするリセット処理部と、
を備え、更に、
前記リセット処理部は、前記初期設定処理を実行中かを判断する判断部を有し、前記初期設定処理を実行中と判断した場合には、実行中の前記初期設定処理を継続して新たな初期設定処理を行わず、実行中でないと判断した場合には、前記初期設定処理を実行する制御回路。
【請求項６】
所定のデバイスと、前記デバイスを制御する請求項５に記載の制御回路とを備え、所定の標準化規格で規格化された外部バスでホスト装置と接続された電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス制御方法等に関する。
【背景技術】
【０００２】
ＨＤＤ（Hard Disk Drive）や光ディスクドライブ等のＩＤＥ（Integrated Drive Electronics）デバイスとこのＩＤＥデバイスを制御する制御回路（デバイスコントローラ）とが、ＡＴＡ／ＡＴＡＰＩ規格に準拠した内部バスで接続されて内蔵された電子機器であって、ＰＣ（Personal Computer）等のホスト装置とは外部バスで接続される電子機器が知られている。このような構成の電子機器において、制御回路による制御の一つとしてリセット処理がある。リセット処理では、実行中のタスクの中断、蓄積されているジョブや発生エラーのクリア等のほか、内部バスの初期化や接続されているＩＤＥデバイスの認識といったＩＤＥデバイスに対する初期設定処理（ＩＤＥ初期設定処理）が行われる（例えば、特許文献１参照）。
【特許文献１】特開２００４−１９９６６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述のような従来の電子機器は、ホスト装置との接続インターフェースが、ＩＥＥＥ１３９４規格やＵＳＢ（Universal Serial Bus）規格といったディジーチェーン接続可能なインターフェースである場合がある。この場合、ＩＤＥ初期設定処理中にバスリセット等の外部バスのリセット要求を受けると、ディジーチェーン接続されている各接続ノードの接続がリセットされることとなるため、実行中のＩＤＥ初期設定処理を中止し、新たにＩＤＥ初期設定処理をやり直していた。ＩＤＥ初期設定処理に要する時間は、デバイスにもよるが、大凡数秒から十数秒程度であり、ＩＤＥ初期設定処理をやり直しするとなると、最終的にＩＤＥ初期設定処理が終了するまでの時間が長くなり過ぎてしまうという問題が生じていた。本発明は、上記技術的課題に鑑みてなされたものであり、不必要なＩＤＥ初期設定処理のやり直しを防止することを目的としている。
【課題を解決するための手段】
【０００４】
上記課題を解決するための第１の発明は、所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器の制御回路が実行するデバイス制御方法であって、内蔵された前記デバイスの認識処理を行って前記電子機器を初期設定する初期設定処理と、前記初期設定処理を少なくとも含み、前記電子機器をリセットするリセット処理とを前記制御回路が実行可能な処理として含んでおり、更に、前記リセット処理には、前記初期設定処理を実行中かを判断することと、前記初期設定処理を実行中と判断した場合には、実行中の前記初期設定処理を継続して新たな初期設定処理を行わず、実行中でないと判断した場合には、前記初期設定処理を実行することとが含まれるデバイス制御方法である。
【０００５】
また、第５の発明は、所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器の制御回路であって、内蔵された前記デバイスの認識処理を行って前記電子機器を初期設定する処理を実行する初期設定処理部と、前記初期設定処理を少なくとも含み、前記電子機器をリセットするリセット処理部とを備え、更に、前記リセット処理部は、前記初期設定処理を実行中かを判断する判断部を有し、前記初期設定処理を実行中と判断した場合には、実行中の前記初期設定処理を継続して新たな初期設定処理を行わず、実行中でないと判断した場合には、前記初期設定処理を実行する制御回路である。
【０００６】
また、第６の発明は、所定のデバイスと、前記デバイスを制御する第５の発明の制御回路とを備え、所定の標準化規格で規格化された外部バスでホスト装置と接続された電子機器である。
【０００７】
この第１、第５又は第６の発明によれば、所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器において、初期設定処理を含み電子機器をリセットするリセット処理を行う際には、初期設定処理を実行中かが判断され、実行中の場合には実行中の初期設定処理が継続されて新たな初期設定処理が行われず、実行中でない場合に初期設定処理が実行される。これにより、リセット処理を行う際に、実行中の初期設定処理を中断して新たに初期設定処理をやり直すことなく、初期設定処理に要する時間が必要以上に長くなることが防止される。
【０００８】
第２の発明は、第１の発明のデバイス制御方法であって、前記デバイスはＡＴＡ／ＡＴＡＰＩ規格の内部バスで前記制御回路と接続されたハードディスクであり、前記電子機器は前記デバイスを複数内蔵し、前記制御回路は前記複数のデバイスを統括して制御し、前記外部バスはＩＥＥＥ１３９４規格又はＵＳＢ規格のバスであって複数の前記電子機器がディジーチェーン接続可能なバスであり、前記リセット処理は、前記制御回路が、前記ホスト装置から、前記外部バスに接続されている接続ノードである各電子機器に対するバスリセット信号を受け付けた際に実行する処理であるデバイス制御方法である。
【０００９】
この第２の発明によれば、ホスト装置と電子機器とを接続する外部バスはＩＥＥＥ１３９４規格又はＵＳＢ規格のバスであり、複数の電子機器がディジーチェーン接続可能である。そして、リセット処理は、ホスト装置から外部バスに接続されている接続ノードである各電子機器に対するバスリセット信号を受け付けた際に実行される。ここで、バスリセット信号は、例えば、新たな電子機器が接続されたときや、接続されている電子機器が取り外されたときに生成される。
【００１０】
第３の発明は、第１又は第２の発明のデバイス制御方法であって、前記リセット処理には、少なくとも前記デバイスの制御命令キュー及びエラー状態をリセットするソフトウェアリセット処理と、少なくとも前記初期設定処理を実行するハードウェアリセット処理とがあり、前記ホスト装置から入力される制御命令に従って前記デバイスを制御する命令実行処理と、前記命令実行処理の実行に当たり、前記初期設定処理の実行要否を判定する処理とを実行可能な処理として更に含み、前記リセット処理における前記初期設定処理を実行中かの前記判断は、前記初期設定処理の実行要否の判定で必要と判定された場合に行うデバイス制御方法である。
【００１１】
この第３の発明によれば、リセット処理には、ソフトウェアリセット処理と、初期設定処理を実行するハードウェアリセット処理とがあり、ホスト装置から入力される制御命令に従った命令実行処理の実行に当たり、初期設定処理の実行要否が判定され、実行が必要と判定された場合に、リセット処理における初期設定処理を実行中かの判断が行われる。
【００１２】
第４の発明は、所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器の制御回路であるコンピュータに、第１〜第３の何れかの発明のデバイス制御方法を実行させるためのプログラムである。
【００１３】
この第４の発明によれば、このプログラムをコンピュータに実行させることで、第１〜第３の何れかの発明と同様の作用効果を奏することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して、本発明の好適な実施形態を説明する。なお、以下では、デバイスとしてＨＤＤを有する電子機器を説明するが、本発明の適用可能な実施形態がこれに限定されるものではない。
【００１５】
［構成］
図１は、本実施形態における電子機器２０の構成図である。同図によれば、電子機器２０は、ＩＥＥＥ１３９４規格に準拠したバス１（外部バス）によって、ＰＣであるホスト装置１０と接続されている。なお、ホスト装置１０は、ＰＣに限らず、携帯情報端末や携帯電話機等の他の電子機器であっても良い。また、バス１は、ＩＥＥＥ１３９４規格に準拠したバスに限らず、ＵＳＢ規格に準拠したバスであっても良い。
【００１６】
電子機器２０は、制御回路であるデバイスコントローラ３０と、ＨＤＤである複数のＩＤＥデバイス４０とを有し、デバイスコントローラ３０とＩＤＥデバイス４０それぞれとは、ＡＴＡ／ＡＴＡＰＩ規格に準拠したバス２（内部バス）により接続されている。なお、電子機器２０が複数台のＩＤＥデバイス４０を有する場合であっても、ホスト装置１０からは、全体として１台のＨＤＤとして認識される。また、ＩＤＥデバイス４０は、ＡＴＡ／ＡＴＡＰＩインターフェースに接続可能なデバイスであればよく、光ディスクドライブ等のハードディスク以外のストレージデバイスであっても良い。更には、バス２は、ＡＴＡ／ＡＴＡＰＩ規格に準拠したバスに限らず、例えばＳＣＳＩ規格に準拠したバスであっても良い。
【００１７】
デバイスコントローラ３０は、ＣＰＵ３１やフラッシュＲＯＭ３２を有するマイクロコンピュータで実現され、ホスト装置１０とＩＤＥデバイス４０それぞれとの間のデータ転送を制御する。
【００１８】
ＣＰＵ３１は、デバイスコントローラ３０の全体制御や、ホスト装置１０とＩＤＥデバイス４０との間のデータ転送の制御を行う。また、ＣＰＵ３１は、デバイス制御プログラム３２１に従ったデバイス制御処理を行う。
【００１９】
具体的には、電子機器２０の起動時に、初期設定処理として、ＩＤＥデバイス４０に対するＩＤＥ初期設定処理を行う。ＩＤＥ初期設定処理では、ＩＰＬ（Initial Program Loader）プログラムの実行やＯＳの起動を行い、バス２に接続されているＩＤＥデバイス４０の数や種類、機器番号等を検出し、検出したＩＤＥデバイス４０それぞれとの間のデータの転送モードや転送速度を決定する。また、このＩＤＥ初期設定処理の開始時に「処理中フラグ」を「１」に設定（セット）し、ＩＤＥ初期設定処理の終了時に「０」に設定（クリア）する。この処理中フラグの設定値は、処理中フラグデータ３２２に格納されている。つまり、処理中フラグの設定値によって、ＩＤＥ初期設定処理を実行中であるか否かを判断することができる。
【００２０】
次いで、ホスト装置１０から割込信号として、バス１をリセットするバスリセット信号が入力されると、バスリセット処理を行う。バスリセット処理では、ＩＤＥ初期設定処理を実行中であるか否かを判断し、処理中でないならば、ＩＤＥ初期設定処理を行う。ここで、ＩＤＥ初期設定処理を実行中であるか否かは、処理中フラグの設定値によって判断する。また、ＩＤＥ初期設定処理の実行中であるか否かに関わらず、バス１の初期設定といったＩＤＥ初期設定処理以外の処理を行う。
【００２１】
バスリセット信号は、次のような場合に生成される。すなわち、図２に示すように、電子機器２０同士は、ＩＥＥＥ１３９４規格に準拠したバス１によってディジーチェーン（数珠つなぎ）接続可能である。そして、ホスト装置１０に接続されている電子機器２０に新たな電子機器２０が接続されたときや、接続されている電子機器２０が取り外されたときに、ホスト装置１０から各電子機器２０（接続ノード）に対してバスリセット信号が生成される。また、バス１に異常が生じたと判断された場合にも、ホスト装置１０から各電子機器２０（接続ノード）に対して、バスリセット信号が生成される。
【００２２】
また、ＣＰＵ３１は、ホスト装置１０から制御命令としてリセットコマンドが入力されると、リセットコマンド処理を行う。ここで、リセットコマンドには、例えば強制終了命令である「Abortコマンド」がある。リセットコマンド処理では、入力コマンドを解析して、必要なリセットがハードリセットであるかソフトリセットであるかを判断する。ハードリセットが必要な場合には、続いて、ＩＤＥ初期設定処理を実行中であるかを判断し、ＩＤＥ初期設定処理中でないならばＩＤＥ初期設定処理を行う。また、必要に応じて、実行中のタスクの停止や制御命令キュー（ジョブ）のクリア、発生エラーのクリア等のソフトリセット処理も行う。一方、ソフトリセットが必要な場合には、上述のソフトリセット処理を行う。
【００２３】
フラッシュＲＯＭ３２は、ＣＰＵ３１がデバイスコントローラ３０を統括制御するためのシステムプログラムや、デバイス制御処理を含む各種プログラムやデータを記憶する。本実施形態では、フラッシュＲＯＭ３２は、デバイス制御プログラム３２１と、処理中フラグデータ３２２とを記憶するとともに、ホスト装置１０とＩＤＥデバイス４０との間の転送データを一時的に格納するバッファを有している。
【００２４】
［処理の流れ］
図３は、ＣＰＵ３１が、デバイス制御プログラム３２１に従って行うデバイス制御処理のフローチャートである。同図によれば、ＣＰＵ３１は、先ず、ＩＤＥ初期設定処理（図４参照）を開始する（ステップＡ１）。
【００２５】
そして、ホスト装置１０から割込信号が入力されると（ステップＡ３：ＹＥＳ）、その入力された割込信号がバスリセット信号であるかを判断する。バスリセット信号ならば（ステップＡ５：ＹＥＳ）、ＩＤＥ初期設定処理を実行中であるかを判断し、処理中でないならば（ステップＡ７：ＮＯ）、ＩＤＥ初期設定処理（図４参照）を開始する（ステップＡ９）。一方、割込信号がバスリセット信号以外の信号ならば（ステップＡ５：ＮＯ）、その割込信号に応じた所定の割込処理を行う（ステップＡ１１）。
【００２６】
また、ホスト装置１０からコマンドが入力されると（ステップＡ１３：ＹＥＳ）、その入力コマンドを解析し（ステップＡ１５）、リセットが必要なコマンド（リセットコマンド）であるかを判断する。そして、リセットが必要なコマンドならば（ステップＡ１７：ＹＥＳ）、ＩＤＥ初期設定処理を実行中であるかを判断し、処理中でないならば（ステップＡ１９：ＮＯ）、続いて、入力コマンドが、ハードリセットが必要なコマンドであるかを判断する。ハードリセットが必要なコマンドならば（ステップＡ２１：ＹＥＳ）、ＩＤＥ初期設定処理（図４参照）を開始する（ステップＡ２３）。一方、ハードリセットが不要なコマンドならば（ステップＡ２１：ＮＯ）、所定のソフトリセット処理を行う（ステップＡ２５）。一方、入力コマンドがリセットが不要なコマンドならば（ステップＡ１７：ＮＯ）、その入力コマンドに応じた所定のコマンド処理を行う（ステップＡ２７）。
【００２７】
その後、電子機器の電源が遮断（ＯＦＦ）されたかを判断し、遮断されていないならば（ステップＡ２９：ＮＯ）、ステップＡ３に戻り、遮断されたならば（ステップＡ２９：ＹＥＳ）、デバイス制御処理を終了する。
【００２８】
図４は、ＩＤＥ初期設定処理の流れを説明する図である。同図によれば、先ず、処理中フラグを「１」に設定する（ステップＢ１）。次いで、バス２に接続されているＩＤＥデバイス４０の認識処理を行う（ステップＢ３）。ＩＤＥデバイス４０の認識処理は、バス２へのＩＤＥデバイス４０の接続有無を検出し、検出したＩＤＥデバイス４０それぞれに対して問い合わせ信号を送信し、これに応答して送信されてくる応答信号をもとに、各ＩＤＥデバイス４０の種類や機器番号等を取得することで行う。
【００２９】
そして、全てのＩＤＥデバイス４０の認識が完了すると（ステップＢ５：ＹＥＳ）、これらのＩＤＥデバイス４０それぞれについて、データ転送方式を設定し（ステップＢ７）、次いで、設定したデータ転送方式でのデータ転送速度を設定する（ステップＢ９）。ここで、データ転送方式及びデータ転送速度の設定は、ＩＤＥデバイス４０それぞれに対して問い合わせ信号を送信し、これに応答して送信されてくる応答信号に含まれる、当該ＩＤＥデバイス４０が実装している転送方式及び転送速度をもとに決定する。その後、処理中フラグを「０」に設定（クリア）する（ステップＢ１１）。以上の処理を行うと、ＩＤＥ初期設定処理を終了する。
【００３０】
［作用・効果］
このように、本実施形態によれば、電子機器２０において、デバイスコントローラ３０は、ホスト装置１からバスリセット信号やリセットコマンドが入力されると、ＩＤＥ初期設定処理を実行中かを判断し、実行中ならば実行中のＩＤＥ初期設定処理を継続し、実行中でないならばＩＤＥ初期設定処理を開始する。これにより、ＩＤＥ初期設定処理の不必要なやり直しを行うことなく、ＩＤＥ初期設定処理の終了間までに要する時間が必要以上に長くなることを防止できる。
【図面の簡単な説明】
【００３１】
【図１】デバイスを有する電子機器の構成図。
【図２】複数の電子機器の接続例。
【図３】デバイス制御処理のフローチャート。
【図４】デバイス制御処理中に実行されるＩＤＥ初期設定処理のフローチャート。
【符号の説明】
【００３２】
１０  ホスト装置、２０  電子機器、３０  デバイスコントローラ、３１  ＣＰＵ、３２  フラッシュＲＯＭ、３２１  デバイス制御プログラム、３２２  処理中フラグデータ、４０  ＩＤＥデバイス
【図１】
2009187336.tif 000003
【図２】
2009187336.tif 000004
【図３】
2009187336.tif 000005
【図４】
2009187336.tif 000006