説明

デバイス制御方法、プログラム、制御回路及び電子機器

【課題】不要なIDE初期設定処理のやり直しを防止すること。
【解決手段】電子機器20において、デバイスコントローラ30は、ホスト装置1からバスリセット信号やリセットコマンドが入力されると、IDE初期設定処理を実行中かを判断し、実行中ならば実行中のIDE初期設定処理を継続し、実行中でないならばIDE初期設定処理を開始する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デバイス制御方法等に関する。
【背景技術】
【0002】
HDD(Hard Disk Drive)や光ディスクドライブ等のIDE(Integrated Drive Electronics)デバイスとこのIDEデバイスを制御する制御回路(デバイスコントローラ)とが、ATA/ATAPI規格に準拠した内部バスで接続されて内蔵された電子機器であって、PC(Personal Computer)等のホスト装置とは外部バスで接続される電子機器が知られている。このような構成の電子機器において、制御回路による制御の一つとしてリセット処理がある。リセット処理では、実行中のタスクの中断、蓄積されているジョブや発生エラーのクリア等のほか、内部バスの初期化や接続されているIDEデバイスの認識といったIDEデバイスに対する初期設定処理(IDE初期設定処理)が行われる(例えば、特許文献1参照)。
【特許文献1】特開2004−199668号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
上述のような従来の電子機器は、ホスト装置との接続インターフェースが、IEEE1394規格やUSB(Universal Serial Bus)規格といったディジーチェーン接続可能なインターフェースである場合がある。この場合、IDE初期設定処理中にバスリセット等の外部バスのリセット要求を受けると、ディジーチェーン接続されている各接続ノードの接続がリセットされることとなるため、実行中のIDE初期設定処理を中止し、新たにIDE初期設定処理をやり直していた。IDE初期設定処理に要する時間は、デバイスにもよるが、大凡数秒から十数秒程度であり、IDE初期設定処理をやり直しするとなると、最終的にIDE初期設定処理が終了するまでの時間が長くなり過ぎてしまうという問題が生じていた。本発明は、上記技術的課題に鑑みてなされたものであり、不必要なIDE初期設定処理のやり直しを防止することを目的としている。
【課題を解決するための手段】
【0004】
上記課題を解決するための第1の発明は、所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器の制御回路が実行するデバイス制御方法であって、内蔵された前記デバイスの認識処理を行って前記電子機器を初期設定する初期設定処理と、前記初期設定処理を少なくとも含み、前記電子機器をリセットするリセット処理とを前記制御回路が実行可能な処理として含んでおり、更に、前記リセット処理には、前記初期設定処理を実行中かを判断することと、前記初期設定処理を実行中と判断した場合には、実行中の前記初期設定処理を継続して新たな初期設定処理を行わず、実行中でないと判断した場合には、前記初期設定処理を実行することとが含まれるデバイス制御方法である。
【0005】
また、第5の発明は、所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器の制御回路であって、内蔵された前記デバイスの認識処理を行って前記電子機器を初期設定する処理を実行する初期設定処理部と、前記初期設定処理を少なくとも含み、前記電子機器をリセットするリセット処理部とを備え、更に、前記リセット処理部は、前記初期設定処理を実行中かを判断する判断部を有し、前記初期設定処理を実行中と判断した場合には、実行中の前記初期設定処理を継続して新たな初期設定処理を行わず、実行中でないと判断した場合には、前記初期設定処理を実行する制御回路である。
【0006】
また、第6の発明は、所定のデバイスと、前記デバイスを制御する第5の発明の制御回路とを備え、所定の標準化規格で規格化された外部バスでホスト装置と接続された電子機器である。
【0007】
この第1、第5又は第6の発明によれば、所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器において、初期設定処理を含み電子機器をリセットするリセット処理を行う際には、初期設定処理を実行中かが判断され、実行中の場合には実行中の初期設定処理が継続されて新たな初期設定処理が行われず、実行中でない場合に初期設定処理が実行される。これにより、リセット処理を行う際に、実行中の初期設定処理を中断して新たに初期設定処理をやり直すことなく、初期設定処理に要する時間が必要以上に長くなることが防止される。
【0008】
第2の発明は、第1の発明のデバイス制御方法であって、前記デバイスはATA/ATAPI規格の内部バスで前記制御回路と接続されたハードディスクであり、前記電子機器は前記デバイスを複数内蔵し、前記制御回路は前記複数のデバイスを統括して制御し、前記外部バスはIEEE1394規格又はUSB規格のバスであって複数の前記電子機器がディジーチェーン接続可能なバスであり、前記リセット処理は、前記制御回路が、前記ホスト装置から、前記外部バスに接続されている接続ノードである各電子機器に対するバスリセット信号を受け付けた際に実行する処理であるデバイス制御方法である。
【0009】
この第2の発明によれば、ホスト装置と電子機器とを接続する外部バスはIEEE1394規格又はUSB規格のバスであり、複数の電子機器がディジーチェーン接続可能である。そして、リセット処理は、ホスト装置から外部バスに接続されている接続ノードである各電子機器に対するバスリセット信号を受け付けた際に実行される。ここで、バスリセット信号は、例えば、新たな電子機器が接続されたときや、接続されている電子機器が取り外されたときに生成される。
【0010】
第3の発明は、第1又は第2の発明のデバイス制御方法であって、前記リセット処理には、少なくとも前記デバイスの制御命令キュー及びエラー状態をリセットするソフトウェアリセット処理と、少なくとも前記初期設定処理を実行するハードウェアリセット処理とがあり、前記ホスト装置から入力される制御命令に従って前記デバイスを制御する命令実行処理と、前記命令実行処理の実行に当たり、前記初期設定処理の実行要否を判定する処理とを実行可能な処理として更に含み、前記リセット処理における前記初期設定処理を実行中かの前記判断は、前記初期設定処理の実行要否の判定で必要と判定された場合に行うデバイス制御方法である。
【0011】
この第3の発明によれば、リセット処理には、ソフトウェアリセット処理と、初期設定処理を実行するハードウェアリセット処理とがあり、ホスト装置から入力される制御命令に従った命令実行処理の実行に当たり、初期設定処理の実行要否が判定され、実行が必要と判定された場合に、リセット処理における初期設定処理を実行中かの判断が行われる。
【0012】
第4の発明は、所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器の制御回路であるコンピュータに、第1〜第3の何れかの発明のデバイス制御方法を実行させるためのプログラムである。
【0013】
この第4の発明によれば、このプログラムをコンピュータに実行させることで、第1〜第3の何れかの発明と同様の作用効果を奏することができる。
【発明を実施するための最良の形態】
【0014】
以下、図面を参照して、本発明の好適な実施形態を説明する。なお、以下では、デバイスとしてHDDを有する電子機器を説明するが、本発明の適用可能な実施形態がこれに限定されるものではない。
【0015】
[構成]
図1は、本実施形態における電子機器20の構成図である。同図によれば、電子機器20は、IEEE1394規格に準拠したバス1(外部バス)によって、PCであるホスト装置10と接続されている。なお、ホスト装置10は、PCに限らず、携帯情報端末や携帯電話機等の他の電子機器であっても良い。また、バス1は、IEEE1394規格に準拠したバスに限らず、USB規格に準拠したバスであっても良い。
【0016】
電子機器20は、制御回路であるデバイスコントローラ30と、HDDである複数のIDEデバイス40とを有し、デバイスコントローラ30とIDEデバイス40それぞれとは、ATA/ATAPI規格に準拠したバス2(内部バス)により接続されている。なお、電子機器20が複数台のIDEデバイス40を有する場合であっても、ホスト装置10からは、全体として1台のHDDとして認識される。また、IDEデバイス40は、ATA/ATAPIインターフェースに接続可能なデバイスであればよく、光ディスクドライブ等のハードディスク以外のストレージデバイスであっても良い。更には、バス2は、ATA/ATAPI規格に準拠したバスに限らず、例えばSCSI規格に準拠したバスであっても良い。
【0017】
デバイスコントローラ30は、CPU31やフラッシュROM32を有するマイクロコンピュータで実現され、ホスト装置10とIDEデバイス40それぞれとの間のデータ転送を制御する。
【0018】
CPU31は、デバイスコントローラ30の全体制御や、ホスト装置10とIDEデバイス40との間のデータ転送の制御を行う。また、CPU31は、デバイス制御プログラム321に従ったデバイス制御処理を行う。
【0019】
具体的には、電子機器20の起動時に、初期設定処理として、IDEデバイス40に対するIDE初期設定処理を行う。IDE初期設定処理では、IPL(Initial Program Loader)プログラムの実行やOSの起動を行い、バス2に接続されているIDEデバイス40の数や種類、機器番号等を検出し、検出したIDEデバイス40それぞれとの間のデータの転送モードや転送速度を決定する。また、このIDE初期設定処理の開始時に「処理中フラグ」を「1」に設定(セット)し、IDE初期設定処理の終了時に「0」に設定(クリア)する。この処理中フラグの設定値は、処理中フラグデータ322に格納されている。つまり、処理中フラグの設定値によって、IDE初期設定処理を実行中であるか否かを判断することができる。
【0020】
次いで、ホスト装置10から割込信号として、バス1をリセットするバスリセット信号が入力されると、バスリセット処理を行う。バスリセット処理では、IDE初期設定処理を実行中であるか否かを判断し、処理中でないならば、IDE初期設定処理を行う。ここで、IDE初期設定処理を実行中であるか否かは、処理中フラグの設定値によって判断する。また、IDE初期設定処理の実行中であるか否かに関わらず、バス1の初期設定といったIDE初期設定処理以外の処理を行う。
【0021】
バスリセット信号は、次のような場合に生成される。すなわち、図2に示すように、電子機器20同士は、IEEE1394規格に準拠したバス1によってディジーチェーン(数珠つなぎ)接続可能である。そして、ホスト装置10に接続されている電子機器20に新たな電子機器20が接続されたときや、接続されている電子機器20が取り外されたときに、ホスト装置10から各電子機器20(接続ノード)に対してバスリセット信号が生成される。また、バス1に異常が生じたと判断された場合にも、ホスト装置10から各電子機器20(接続ノード)に対して、バスリセット信号が生成される。
【0022】
また、CPU31は、ホスト装置10から制御命令としてリセットコマンドが入力されると、リセットコマンド処理を行う。ここで、リセットコマンドには、例えば強制終了命令である「Abortコマンド」がある。リセットコマンド処理では、入力コマンドを解析して、必要なリセットがハードリセットであるかソフトリセットであるかを判断する。ハードリセットが必要な場合には、続いて、IDE初期設定処理を実行中であるかを判断し、IDE初期設定処理中でないならばIDE初期設定処理を行う。また、必要に応じて、実行中のタスクの停止や制御命令キュー(ジョブ)のクリア、発生エラーのクリア等のソフトリセット処理も行う。一方、ソフトリセットが必要な場合には、上述のソフトリセット処理を行う。
【0023】
フラッシュROM32は、CPU31がデバイスコントローラ30を統括制御するためのシステムプログラムや、デバイス制御処理を含む各種プログラムやデータを記憶する。本実施形態では、フラッシュROM32は、デバイス制御プログラム321と、処理中フラグデータ322とを記憶するとともに、ホスト装置10とIDEデバイス40との間の転送データを一時的に格納するバッファを有している。
【0024】
[処理の流れ]
図3は、CPU31が、デバイス制御プログラム321に従って行うデバイス制御処理のフローチャートである。同図によれば、CPU31は、先ず、IDE初期設定処理(図4参照)を開始する(ステップA1)。
【0025】
そして、ホスト装置10から割込信号が入力されると(ステップA3:YES)、その入力された割込信号がバスリセット信号であるかを判断する。バスリセット信号ならば(ステップA5:YES)、IDE初期設定処理を実行中であるかを判断し、処理中でないならば(ステップA7:NO)、IDE初期設定処理(図4参照)を開始する(ステップA9)。一方、割込信号がバスリセット信号以外の信号ならば(ステップA5:NO)、その割込信号に応じた所定の割込処理を行う(ステップA11)。
【0026】
また、ホスト装置10からコマンドが入力されると(ステップA13:YES)、その入力コマンドを解析し(ステップA15)、リセットが必要なコマンド(リセットコマンド)であるかを判断する。そして、リセットが必要なコマンドならば(ステップA17:YES)、IDE初期設定処理を実行中であるかを判断し、処理中でないならば(ステップA19:NO)、続いて、入力コマンドが、ハードリセットが必要なコマンドであるかを判断する。ハードリセットが必要なコマンドならば(ステップA21:YES)、IDE初期設定処理(図4参照)を開始する(ステップA23)。一方、ハードリセットが不要なコマンドならば(ステップA21:NO)、所定のソフトリセット処理を行う(ステップA25)。一方、入力コマンドがリセットが不要なコマンドならば(ステップA17:NO)、その入力コマンドに応じた所定のコマンド処理を行う(ステップA27)。
【0027】
その後、電子機器の電源が遮断(OFF)されたかを判断し、遮断されていないならば(ステップA29:NO)、ステップA3に戻り、遮断されたならば(ステップA29:YES)、デバイス制御処理を終了する。
【0028】
図4は、IDE初期設定処理の流れを説明する図である。同図によれば、先ず、処理中フラグを「1」に設定する(ステップB1)。次いで、バス2に接続されているIDEデバイス40の認識処理を行う(ステップB3)。IDEデバイス40の認識処理は、バス2へのIDEデバイス40の接続有無を検出し、検出したIDEデバイス40それぞれに対して問い合わせ信号を送信し、これに応答して送信されてくる応答信号をもとに、各IDEデバイス40の種類や機器番号等を取得することで行う。
【0029】
そして、全てのIDEデバイス40の認識が完了すると(ステップB5:YES)、これらのIDEデバイス40それぞれについて、データ転送方式を設定し(ステップB7)、次いで、設定したデータ転送方式でのデータ転送速度を設定する(ステップB9)。ここで、データ転送方式及びデータ転送速度の設定は、IDEデバイス40それぞれに対して問い合わせ信号を送信し、これに応答して送信されてくる応答信号に含まれる、当該IDEデバイス40が実装している転送方式及び転送速度をもとに決定する。その後、処理中フラグを「0」に設定(クリア)する(ステップB11)。以上の処理を行うと、IDE初期設定処理を終了する。
【0030】
[作用・効果]
このように、本実施形態によれば、電子機器20において、デバイスコントローラ30は、ホスト装置1からバスリセット信号やリセットコマンドが入力されると、IDE初期設定処理を実行中かを判断し、実行中ならば実行中のIDE初期設定処理を継続し、実行中でないならばIDE初期設定処理を開始する。これにより、IDE初期設定処理の不必要なやり直しを行うことなく、IDE初期設定処理の終了間までに要する時間が必要以上に長くなることを防止できる。
【図面の簡単な説明】
【0031】
【図1】デバイスを有する電子機器の構成図。
【図2】複数の電子機器の接続例。
【図3】デバイス制御処理のフローチャート。
【図4】デバイス制御処理中に実行されるIDE初期設定処理のフローチャート。
【符号の説明】
【0032】
10 ホスト装置、20 電子機器、30 デバイスコントローラ、31 CPU、32 フラッシュROM、321 デバイス制御プログラム、322 処理中フラグデータ、40 IDEデバイス

【特許請求の範囲】
【請求項1】
所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器の制御回路が実行するデバイス制御方法であって、
内蔵された前記デバイスの認識処理を行って前記電子機器を初期設定する初期設定処理と、
前記初期設定処理を少なくとも含み、前記電子機器をリセットするリセット処理と、
を前記制御回路が実行可能な処理として含んでおり、更に、
前記リセット処理には、
前記初期設定処理を実行中かを判断することと、
前記初期設定処理を実行中と判断した場合には、実行中の前記初期設定処理を継続して新たな初期設定処理を行わず、実行中でないと判断した場合には、前記初期設定処理を実行することと、
が含まれるデバイス制御方法。
【請求項2】
前記デバイスはATA/ATAPI規格の内部バスで前記制御回路と接続されたハードディスクであり、前記電子機器は前記デバイスを複数内蔵し、前記制御回路は前記複数のデバイスを統括して制御し、前記外部バスはIEEE1394規格又はUSB規格のバスであって複数の前記電子機器がディジーチェーン接続可能なバスであり、
前記リセット処理は、前記制御回路が、前記ホスト装置から、前記外部バスに接続されている接続ノードである各電子機器に対するバスリセット信号を受け付けた際に実行する処理である、
請求項1に記載のデバイス制御方法。
【請求項3】
前記リセット処理には、少なくとも前記デバイスの制御命令キュー及びエラー状態をリセットするソフトウェアリセット処理と、少なくとも前記初期設定処理を実行するハードウェアリセット処理とがあり、
前記ホスト装置から入力される制御命令に従って前記デバイスを制御する命令実行処理と、
前記命令実行処理の実行に当たり、前記初期設定処理の実行要否を判定する処理と、
を実行可能な処理として更に含み、
前記リセット処理における前記初期設定処理を実行中かの前記判断は、前記初期設定処理の実行要否の判定で必要と判定された場合に行う、
請求項1又は2に記載のデバイス制御方法。
【請求項4】
所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器の制御回路であるコンピュータに、請求項1〜3の何れか一項に記載のデバイス制御方法を実行させるためのプログラム。
【請求項5】
所定のデバイスを内蔵し、所定の標準化規格で規格化された外部バスでホスト装置と接続される電子機器の制御回路であって、
内蔵された前記デバイスの認識処理を行って前記電子機器を初期設定する処理を実行する初期設定処理部と、
前記初期設定処理を少なくとも含み、前記電子機器をリセットするリセット処理部と、
を備え、更に、
前記リセット処理部は、前記初期設定処理を実行中かを判断する判断部を有し、前記初期設定処理を実行中と判断した場合には、実行中の前記初期設定処理を継続して新たな初期設定処理を行わず、実行中でないと判断した場合には、前記初期設定処理を実行する制御回路。
【請求項6】
所定のデバイスと、前記デバイスを制御する請求項5に記載の制御回路とを備え、所定の標準化規格で規格化された外部バスでホスト装置と接続された電子機器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2009−187336(P2009−187336A)
【公開日】平成21年8月20日(2009.8.20)
【国際特許分類】
【出願番号】特願2008−27225(P2008−27225)
【出願日】平成20年2月7日(2008.2.7)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】