(57)【特許請求の範囲】
【請求項１】
ホスト装置に接続され、前記ホスト装置とデータ送受信を行う記憶装置であって、
前記ホスト装置とのデータ送受信状態を監視する監視手段と、
前記監視手段の監視内容に応じて、前記ホスト装置がエラー発生と判断するまでの時間を変更させるタイムアウト時間変更手段と、
を備え、
前記タイムアウト時間変更手段は、自装置のタイムアウト時間を短く設定することが可能であるか否かを判断し、自装置の状態がタイムアウト時間を短く設定することが可能であると判断した場合には、前記自装置のタイムアウト時間を相対的に短くし、
自装置の状態がタイムアウト時間を短く設定することができないと判断した場合には、前記自装置のタイムアウト時間を相対的に長く設定し、
前記監視手段がデータ送受信の異常状態を検出し、かつ前記自装置のタイムアウト時間が経過した場合には、前記ホスト装置にエラー報告を行うことにより、前記ホスト装置がエラー発生と判断するまでの時間を変更させることを特徴とする記憶装置。
【請求項２】
前記タイムアウト時間変更手段は、
前記監視手段が特定のコマンドを検出した場合に、自装置のタイムアウト時間を短くすることを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記ホスト装置の種別を検出する種別検出手段を備え、
前記タイムアウト時間変更手段は、前記種別検出手段が、特定の種別を検出した場合に、自装置のタイムアウト時間を短くすることを特徴とする請求項１または請求項２に記載の記憶装置。
【請求項４】
前記タイムアウト時間変更手段は、インタフェース変換ブリッジに搭載されていることを特徴とする請求項１〜３のいずれかに記載の記憶装置。
【請求項５】
ホスト装置に実行される、または前記ホスト装置に接続され、前記ホスト装置とデータ送受信を行う記憶装置に実行されるプログラムであって、
前記ホスト装置とのデータ送受信状態を監視する監視手段と、
前記監視手段の監視内容に応じて、前記ホスト装置がエラー発生と判断するまでの時間を変更させるタイムアウト時間変更手段と、
を実現させ、
前記タイムアウト時間変更手段は、自装置のタイムアウト時間を短く設定することが可能であるか否かを判断し、自装置の状態がタイムアウト時間を短く設定することが可能であると判断した場合には、前記自装置のタイムアウト時間を相対的に短くし、
自装置の状態がタイムアウト時間を短く設定することができないと判断した場合には、前記自装置のタイムアウト時間を相対的に長く設定し、
前記監視手段がデータ送受信の異常状態を検出し、かつ前記自装置のタイムアウト時間が経過した場合には、前記ホスト装置にエラー報告を行うことにより、前記ホスト装置がエラー発生と判断するまでの時間を変更させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ホスト装置に接続され、ホスト装置とデータ送受信を行う記憶装置、およびプログラムに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（以下、ＰＣと言う。）等のホスト装置に接続され、当該ホスト装置とデータ送受信を行う記憶装置が普及している。ホスト装置と記憶装置との間で行われるデータ転送において、通信路の異常等が発生した場合、データ転送は停止する。
【０００３】
そこで、一般的にホスト装置や記憶装置には、タイマーカウンタが設定されている。ホスト装置は、記憶装置にコマンドを送信した後、応答がない状態が継続し、所定のタイムアウト時間が経過すると、再度コマンドを送信する。また、記憶装置は、ホスト装置からコマンドを受信した後、応答できない状態が継続し、所定のタイムアウト時間が経過すると、ホスト装置にエラー報告を行い、ホスト装置は、再度コマンドを送信することができる。
【０００４】
ただし、記憶装置は、例えばハードディスクドライブ（以下、ＨＤＤと言う。）のスピンアップに数十秒程度の時間を必要とする場合がある。そのため、タイムアウト時間は、ＨＤＤのスピンアップに要する時間以上の長さに設定されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−４８７４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、例えばホスト装置がテレビ等のコンテンツ録画再生装置である場合、数十秒程度もデータを送受信できない状態が続くと、コンテンツの録画や再生に必要なデータ転送速度を維持することができず、映像や音が途切れる可能性がある。タイムアウト時間を一律に短くすると、スピンアップ等に時間を要して応答が遅れているだけの場合もあるため、適切なデータ転送ができないという課題がある。
【０００７】
そこで、この発明は、タイムアウト時間を短くすることができ、適切なデータ転送を実現できる記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の記憶装置は、ホスト装置に接続され、前記ホスト装置とデータ送受信を行う記憶装置であって、前記ホスト装置とのデータ送受信状態を監視する監視手段と、前記監視手段の監視内容に応じて、前記ホスト装置がエラー発生と判断するまでの時間を変更させるタイムアウト時間変更手段と、を備えたことを特徴とする。
【０００９】
前記ホスト装置とのデータ送受信状態を監視する監視手段を用いることで、記憶装置は、データ送受信の異常状態を検出した場合に、ホスト装置にエラー報告を行うことにより、ホスト装置がエラー発生と判断するまでの時間を短くさせる。データ送受信の異常状態とは、データ転送が所定時間（例えば数秒）以上行われていない場合や、あるいは、全てのデータが転送されていない状態にも関わらず、ホスト装置からステータスを要求された場合等、正常な状態では起こりえない処理が発生した場合等である。
【００１０】
また、タイムアウト時間変更手段は、前記監督手段の監視内容に応じて、前記ホスト装置がエラー発生と判断するまでの時間を変更させる。つまり、本発明の記憶装置は、データ送受信の状態に応じて、タイムアウト時間を短く設定することが可能であると判断した場合にはタイムアウト時間を短くし、ＨＤＤのスピンアップ等、タイムアウト時間を短くすることができないと判断した場合にはタイムアウト時間を長くする。
【００１１】
具体的には、記憶装置は、特定のコマンドを検出した場合に、自装置のタイムアウト時間を変更する態様が考えられる。特定のコマンドとは、例えば、ＲＥＡＤ、ＷＲＩＴＥ、ＶＥＲＩＦＹコマンドである。ＨＤＤがスピンダウンしていなければ、これらのコマンドに対する動作は、即座に行われるため、これらのコマンドを検出した場合には、ＨＤＤがスピンダウンしていなければタイムアウト時間を短くする（例えば数秒程度とする）。これにより、異常時には短い時間でホスト装置にエラー報告を行うことができ、ホスト装置は再度コマンドを送信することができる。
【００１２】
以上のようにして、コンテンツデータを送受信するホスト装置、例えばテレビ、チューナ、レコーダ等の種別であれば、映像や音が途切れることを防止することができる。
【００１３】
また、記憶装置は、ホスト装置の種別を検出する種別検出手段を備え、前記タイムアウト時間変更手段は、前記種別検出手段が、特定の種別を検出した場合に、自装置のタイムアウト時間を変更する態様も可能である。
【００１４】
つまり、記憶装置は、テレビ、チューナ、レコーダ等、タイムアウト時間が長くなると弊害がある特定の種別のホスト装置を検出した場合に、タイムアウト時間を短くする。
【００１５】
なお、上記タイムアウト時間変更手段は、記憶装置の制御部（ＳＡＴＡコントローラ等）に搭載されていてもよいが、インタフェース変換ブリッジ（ＵＳＢ−ＳＡＴＡブリッジ等）に搭載されている態様も可能である。
【発明の効果】
【００１６】
この発明によれば、タイムアウト時間を短くすることができ、適切なデータ転送を実現できる。
【図面の簡単な説明】
【００１７】
【図１】ホスト装置と記憶装置の接続関係を示すブロック図である。
【図２】ＵＳＢ−ＳＡＴＡブリッジの構成を示すブロック図である。
【図３】データ転送のイメージ図である。
【図４】READ/WRITEコマンド処理時の具体的動作を示すフローチャートである。
【図５】ホスト装置、ＵＳＢ−ＳＡＴＡブリッジ、およびＳＡＴＡデバイス間で送受信されるデータの例を示す図である。
【図６】タイムアウト時間変更を行う場合のＵＳＢ−ＳＡＴＡブリッジ５１の動作を示すフローチャートである。
【発明を実施するための形態】
【００１８】
図１は、本発明の記憶装置と、当該記憶装置に接続されるホスト装置と、からなる情報処理システムの構成を示すブロック図である。本実施形態の情報処理システムは、ＵＳＢ通信路２を介して接続されるホスト装置１と、記憶装置３と、からなる。
【００１９】
ホスト装置１は、記憶装置３にデータを書き込む、または記憶装置３からデータを読み出す情報処理装置であり、ＰＣ、テレビ、チューナ、レコーダ、プレーヤ等、種々の種別がある。
【００２０】
記憶装置３は、ホスト装置から送信されたデータを内蔵する記憶デバイスに記憶する、または記憶デバイスに記憶しているデータをホスト装置に送信する。
【００２１】
本実施形態の記憶装置３は、内蔵記憶デバイスとして、ＳＡＴＡデバイス５３を有する。ＳＡＴＡデバイス５３は、ＳＡＴＡインタフェースを有するＨＤＤやＳＳＤ等の補助記憶デバイスである。ＳＡＴＡデバイス５３は、ＳＡＴＡ通信路５２を介してＵＳＢ−ＳＡＴＡブリッジ５１に接続されている。
【００２２】
ＵＳＢ−ＳＡＴＡブリッジ５１は、ＵＳＢ通信路２に接続されるＵＳＢインタフェース、および内部のＳＡＴＡ通信路５２に接続されるＳＡＴＡインタフェースを有するインタフェース変換ブリッジである。
【００２３】
図２は、ＵＳＢ−ＳＡＴＡブリッジ５１の構成を示すブロック図である。ＵＳＢ−ＳＡＴＡブリッジ５１は、ＵＳＢ通信路２に接続されるＵＳＢインタフェース（Ｉ／Ｆ）７１、コントローラ７２、ＳＡＴＡ通信路５２に接続されるＳＡＴＡＩ／Ｆ７３、およびデータ転送残数カウンタレジスタ７４を備えている。
【００２４】
コントローラ７２は、ブリッジ機能を実現するための構成要素であり、ＣＰＵやメモリを内蔵し、ＵＳＢＩ／Ｆ７１から受信したコマンドに応じて種々の動作を行う。例えば、コントローラ７２は、ホスト装置１からＵＳＢマスストレージ規格のREADコマンドを受信した場合、ＳＡＴＡデバイス５３にＳＡＴＡ規格のREADコマンドを送信し、ＳＡＴＡデバイス５３から読み出したデータをホスト装置１に転送する。また、コントローラ７２は、ホスト装置１からＵＳＢマスストレージ規格のWRITEコマンド受信した場合、ＳＡＴＡデバイス５３にＳＡＴＡ規格のWRITEコマンドを送信し、ホスト装置１からの書き込みデータをＳＡＴＡデバイス５３に転送する。このコントローラ７２が、本発明における監視手段およびタイムアウト時間変更手段に対応する。
【００２５】
データ転送残数カウンタレジスタ７４は、ホスト装置１からのコマンドにおけるデータ転送残数を示すものである。コントローラ７２を介してホスト装置１とＳＡＴＡデバイス５３間でデータ転送が行われる毎にデータ転送残数カウンタレジスタ７４の値は変化する。データ転送残数カウンタレジスタ７４の値がゼロになると、データ転送が正常に行われたと判断することができる。
【００２６】
なお、図２において、データ転送残数カウンタレジスタ７４は、ハードウェアとして示しているが、コントローラ７２におけるソフトウェア（ＵＳＢ−ＳＡＴＡブリッジ５１のファームウェアの機能）で実現する態様も可能である。
【００２７】
USBマスストレージ規格の転送方式には、BOT（Bulk-Only Transport）やUAS（USB-Attached SCSI）等がある。
【００２８】
図３は、USBマスストレージ規格の転送方式にBOTを用いたデータ転送のイメージ図である。図３（Ａ）は、正常にデータ転送が行われる場合、図３（Ｂ）は通信路に異常等が発生し正常にデータ転送が行われない場合、図３（Ｃ）は本発明の記憶装置を使用した情報処理システムで通信路に異常等が発生した場合のデータ転送のイメージ図である。
【００２９】
図３（Ａ）でホスト装置１は、記憶装置３にREADコマンドやWRITEコマンドを発行し、データ転送を行うイメージを示している。データ転送は、ある程度の容量のデータ毎にコマンドを発行し、データ本体の転送が行われる。図３（Ａ）では、コマンドＣｍｄ１が発行され、データ本体Ｄａｔａ１の転送が行われ、データ本体Ｄａｔａ１の転送が終了すると次のコマンドＣｍｄ２が発行され、データ本体Ｄａｔａ２の転送が行われる。この様に、コマンド発行とデータ本体の転送を繰り返し、一連のデータ転送が行われることを示している。
【００３０】
一方、図３（Ｂ）は、ホスト装置１からコマンドを発行した後、通信路の異常等によるデータ本体の転送が行われない場合のイメージを示している。
【００３１】
この様な異常に備えて、ホスト装置１やUSB-SATAブリッジ５１は、不図示のタイムアウト異常検出機能を持っている。
【００３２】
ホスト装置１は、記憶装置３にコマンドを発行した後、所定のタイムアウト時間内にデータ本体の転送が完了しない場合は、再度コマンドの発行を行い、データの再送受信を試みる。あるいは、ＵＳＢ−ＳＡＴＡブリッジ５１は、ＳＡＴＡデバイス５３にコマンドを発行した後、所定のタイムアウト時間内にデータ本体の転送が完了しない場合は、ホスト装置１にエラー報告を行い、ホスト装置１は再度コマンドの発行を行い、データ転送の再送受信を試みる。図３（Ｂ）では、ホスト装置１からＣｍｄ２された後、データ本体Data２の転送が行われないまま数十秒が経過し、タイムアウト異常検出により、再度コマンドＣｍｄ２を発行し、データ本体Ｄａｔａ２の転送が行われた場合を示している。
【００３３】
ＳＡＴＡデバイス５３の様な記憶デバイスは、ＨＤＤのスピンアップに時間が必要であったり、不良セクタがあった場合に代替セクタを読み出すための時間が必要であったりする。そのため、タイムアウト時間は、図３（Ｂ）に示すように、一般的に数十秒程度（ＨＤＤのスピンアップに要する時間以上）とされている。
【００３４】
しかし、例えばホスト装置１がテレビ、チューナ、レコーダ、プレーヤ等、コンテンツデータの送受信を行うものである場合、数十秒程度もデータを送受信できない状態が続くと、映像や音が途切れたり、録画に失敗したりする可能性がある。タイムアウト時間を一律に短くすると、スピンアップ等に時間を要して応答が遅れているだけの場合もあるため、適切なデータ転送ができない。
【００３５】
そこで、本実施形態に係る記憶装置３は、データ送受信の状態を監視し、監視内容に応じて、ホスト装置１がエラー発生と判断するまでの時間を短くさせる（例えば２秒程度に短縮させる）。すると、図３（Ｃ）に示すように、ホスト装置１がＣｍｄ２を発行してから応答がない状態が発生したとしても、２秒経過後には、再度ホスト装置１がＣｍｄ２を発行してデータ転送が行われるため、映像や音が途切れたり、録画に失敗したりする可能性が著しく低減される。なお、USBマスストレージ規格の転送方式にBOTを用いて場合だけではなく、UASを用いた場合でも、同等の効果が見込まれる。
【００３６】
ホスト装置１がエラー発生と判断するまでの時間を短縮させるためには、以下の２つの例が考えられる。
（Ａ）記憶装置３が、データ送受信の異常状態を検出した場合に、ホスト装置１にエラー報告を行う例
（Ｂ）記憶装置３が、データ送受信の状態に応じて自装置のタイムアウト時間を変更する例
まず、上記（Ａ）の例について説明する。上記（Ａ）の例は、記憶装置３がデータ送受信の異常状態を検出し、ホスト装置１にエラー報告を行うことで、ホスト装置１がタイムアウト時間の経過を待たずに再度コマンドを送信することができる態様である。
【００３７】
データ送受信の異常状態とは、例えばデータ転送が所定時間（例えば数秒）以上行われていない場合である。データ転送が所定時間以上行われていない状態を検出するには、コントローラ７２がデータ転送残数カウンタレジスタ７４の監視を行う態様が考えられる。
【００３８】
図４は、ＵＳＢ−ＳＡＴＡブリッジ５１のコントローラ７２の動作を示すフローチャートであり、特に、USBマスストレージ規格のREAD/WRITEコマンド処理時の具体的動作を示すフローチャートである。コントローラ７２は、ホスト装置１からREADコマンド、または、WRITEコマンドを受信した場合に図４の動作を行う。
【００３９】
まず、コントローラ７２は、最初に自装置のタイマーカウンタを設定する（ｓ２１）。このタイマーカウンタのタイムアウト時間は、上述のデータ転送が所定時間以上行われていないと判断するためのタイムアウト時間であり、ホスト装置のタイムアウト時間（数十秒）よりも短く設定することができる。例えば、本実施形態では、このタイムアウト時間を２秒に設定する。
【００４０】
その後、コントローラ７２は、ホスト装置１から受信したコマンドに応じて、ＳＡＴＡ規格のコマンドを送信する（ｓ２２）。例えば、図５に示すように、コントローラ７２は、ホスト装置１からWRITEコマンド（ＯＵＴ（ＣＢＷ））を受信した場合、SATAデバイス５３にWRITE DMAコマンド（Register FIS - Host to Device）を送信する。一方、コントローラ７２は、WRITEコマンドを解析することでデータ転送長を取得できるため、このときにデータ転送残数カウンタレジスタ７４をセットする。なお、図５の様にUSBマスストレージ規格の転送方式にBOTを用いている場合は、WRITEコマンドを解析する代わりに、CBWと呼ばれるパケットに含まれるデータ転送長を用いて、データ転送残数カウンタレジスタ７４をセットしてもよい。
【００４１】
その後、コントローラ７２は、ホスト装置１からのデータ転送問い合わせ（PING）に対し、ライト用データを受け取りできない（FIFOに空きがない）状態の場合は、NAK応答(否定応答)し、受け取りできる（FIFOに空きがある）状態の場合は、ACK応答(正常応答)する。また、コントローラ７２は、ホスト装置１からのOUTに対し、ライト用データを受け取った（FIFOに入った）場合は、ACK応答し、受け取れなかった（FIFOに入らなかった）場合は、NAK応答する。ライト用データを受け取ったが次回は受け取れない（FIFOに入ったことでFIFOが一杯になった）場合は、NYET応答（正常応答、次回否定応答）する。そして、受信した（FIFOに入っている）ライト用データは、コントローラ７２が、SATAデバイス５３からDMA Activate FISを受信した後、Data FISとして送信する。この様に、ライト用データの送受信が繰り返し行われることでホスト装置１とSATAデバイス５３との間でデータ転送が行われる。なお、コントローラ７２は、Data FISの送信が行われる毎に、データ転送残数カウンタレジスタ７４を減算する。
【００４２】
一方、コントローラ７２は、上記ｓ２２の処理でWRITE DMAコマンドを送信した後、内蔵するタイマーカウンタを初期値に設定し、タイマー動作を開始させる（ｓ２３）。このタイマーカウンタは、一定時間毎に歩進され、上記タイムアウト時間（２秒）を経過するとタイムアウトとなる。
【００４３】
コントローラ７２は、ＳＡＴＡデバイス５３がコマンド完了したか否かを判断する（ｓ２４）。図５に示すように、ホスト装置１がリクエストした全てのデータ書き込みが完了すると、ＳＡＴＡデバイス５３は、コマンド完了を示すRegister FIS - Device to Hostを送信する。コントローラ７２は、ＳＡＴＡデバイス５３がコマンド完了したと判断した場合、ホスト装置１にステータスを送信し、WRITEコマンド処理を終了する。
【００４４】
一方、コントローラ７２は、ｓ２４の処理でコマンド完了していないと判断した場合、データ転送残数カウンタレジスタ７４に変化があるか否かを判断する（ｓ２５）。データ転送残数カウンタレジスタ７４に変化があった場合、コントローラ７２は、ｓ２３の処理に戻り、内蔵するタイマーカウンタを初期値に設定し、タイマー動作を開始させる（ｓ２３）。つまり、データ転送が正常に動作している場合にはタイマーカウンタは、リセットされる。
【００４５】
一方、データ転送残数カウンタレジスタ７４に変化がなかった場合、コントローラ７２は、タイムアウト時間（２秒）が経過してタイムアウトとなったか否かを判断する（ｓ２６）。タイムアウトでなければ、コントローラ７２は、ｓ２４の処理に戻り、コマンド完了したか否かの判断を行う。タイムアウトとなった場合、コントローラ７２は、ホスト装置１にエラー報告を行い、ホスト装置１は再度コマンドを送信することができる（ｓ２７）。
【００４６】
このようにして、コントローラ７２は、データ転送が所定時間以上行われていない状態を検出し、ホスト装置１のタイムアウトを待つことなくエラー報告を行うことで、ホスト装置１がエラー発生と判断するまでの時間を短縮させる。
【００４７】
図４では、データ送受信の異常状態を検出する例として、コントローラ７２がデータ転送残数カウンタレジスタ７４の監視を行う態様を示したが、この態様以外にも、例えば、SATA通信路５２やUSB通信路２を監視し、通信プロトコルにおいて、特定のパケットが所定時間以上確認できない場合にデータ送受信の異常状態であると判断する態様がある。
【００４８】
この場合、図４のｓ２５の処理に代えて、あるいはｓ２５の処理に追加する。例えば、コントローラ７２は、SATA通信路５２を監視し、DMA Activate FIS、Data FIS、DMA SETUP FIS、PIO SETUP FIS等、SATA規格におけるFISと呼ばれるパケットの送受信が行われたか否かを確認する。FISの送受信が行われていないと判断した場合、ｓ２６の判断に移行し、タイムアウトであればホスト装置１にエラー報告を行い、ホスト装置１は再度コマンドを送信することができる。
【００４９】
また、ＳＡＴＡ規格におけるFISのより単純な構成要素であるプリミティブの確認を行う態様も考えられる。コントローラ７２は、R_IPやR_OK等のプリミティブの送受信が行われたか否かを確認し、プリミティブの受信が行われていないと判断した場合、ｓ２６の判断に移行し、タイムアウトであればホスト装置１にエラー報告を行い、ホスト装置１は再度コマンドを送信することができる。
【００５０】
また、ＵＳＢプロトコルの監視を行う態様も考えられる。コントローラ７２は、USB通信路２を監視し、PINGやACK、NAK等、USB規格のパケットの送受信が行われたか否かを確認し、データの送受信が行われていないと判断した場合、s２６の判断に移行し、タイムアウトであればホスト装置１にエラー報告を行い、ホスト装置１は再度コマンドを送信することができる。
【００５１】
さらに、コントローラ７２は、データ転送残数カウンタレジスタ７４の残数がゼロでなく、全てのデータが転送されていない状態で、ホスト装置１からステータスを要求された場合等、正常な状態では起こりえない処理が発生した場合に、データ送受信の異常状態であると判断し、ｓ２６の判断に移行し、タイムアウトであればホスト装置１にエラー報告を行い、ホスト装置１は再度コマンドを送信することも可能である。
【００５２】
次に、上記（Ｂ）の例について説明する。上記（Ｂ）の例は、記憶装置３が、データ送受信の状態に応じて自装置のタイムアウト時間を変更することで、ホスト装置１がエラー発生と判断するまでの時間を短縮させる態様である。
【００５３】
図６は、ＵＳＢ−ＳＡＴＡブリッジ５１のコントローラ７２の動作を示すフローチャートであり、ホスト装置１からUSBマスストレージ規格に準じたコマンドを受信した場合に図６の動作を行う。
【００５４】
コントローラ７２は、ホスト装置１から受信したコマンドが、READ、WRITE、またはVERIFYコマンドであるか否かを確認する（ｓ３１）。これらコマンド以外のコマンドであれば、ホスト装置１において映像や音が途切れたり、録画に失敗したりする可能性が低いため、コントローラ７２は、例えば、本実施形態では、タイマーカウンタのタイムアウト時間を３０秒に設定する（ｓ３５）。
【００５５】
また、READ、WRITE、VERIFYコマンドであった場合は、前回受信したコマンドがREAD、WRITE、またはVERIFYコマンドであるか否かを確認する（ｓ３２）。
【００５６】
これらのコマンドではない場合、HDDがスピンダウンしているかもしれないため、タイマーカウンタのタイムアウト時間を３０秒に設定する（ｓ３５）。ただし、ＳＡＴＡデバイス５３がＳＳＤ等のスピンダウンがないデバイスである場合は、このｓ３５の処理は不要である。
【００５７】
コントローラ７２は、ＲＥＡＤ、ＷＲＩＴＥ、またはＶＥＲＩＦＹコマンドを連続で受信したと判断した場合、前回のREAD、WRITE、VERIFYコマンドの受信から一定時間以上経過しているか否かを確認する（ｓ３３）。
【００５８】
記憶デバイスのＨＤＤには、オートスピンダウン機能を有するものが存在する。オートスピンダウン機能とは、一定時間ＨＤＤにアクセスがない場合にスピンダウンする機能である。
【００５９】
そのため、ＲＥＡＤ、ＷＲＩＴＥ、またはＶＥＲＩＦＹコマンドを連続で受信した場合であっても、前回のREAD、WRITE、VERIFYコマンドの受信から一定時間以上経過している場合では、HDDがスピンダウンしているかもしれないため、タイマーカウンタのタイムアウト時間を３０秒に設定し（ｓ３５）、前回のREAD、WRITE、VERIFYコマンドの受信から一定時間以上経過していない場合にはタイマーカウンタのタイムアウト時間を短く（この例では２秒に）設定する（ｓ３４）。ただし、ＳＡＴＡデバイス５３がＳＳＤ等のスピンダウンがないデバイスである場合は、このｓ３２およびｓ３５の処理は不要である。
【００６０】
なお、コントローラ７２は、ｓ３２およびｓ３３の処理に代えて、またはｓ３２およびｓ３３の処理に追加して、ＳＡＴＡデバイス５３にＣＨＥＣＫ  ＰＯＷＥＲ  ＭＯＤＥコマンドを発行し、ＳＡＴＡデバイス５３の電力状態を取得してもよい。ＳＡＴＡデバイス５３が低電力、省電力状態である場合には、例えばＨＤＤがスピンダウンしている可能性があり、コマンド応答に時間がかかる場合があるため、コントローラ７２は、タイマーカウンタのタイムアウト時間を短くしない（３０秒に設定する）。
【００６１】
コントローラ７２は、以上のような処理を行った後、コマンド処理を行う（ｓ５１）。コマンド処理は、図４のフローチャートで説明した動作と同様の動作を行う。ただし、図４に示した動作のうち、ｓ２５の処理（記憶装置３が、データ送受信の異常状態を検出する処理）は必須ではない。すなわち、記憶装置３が、データ送受信の異常状態を検出する処理と、記憶装置３が、データ送受信の状態に応じて自装置のタイムアウト時間を変更する処理とは、いずれか一方のみ行ってもよいし、両方の処理を行ってもよい。
【００６２】
なお、記憶装置３は、ホスト装置１の種別を検出する種別検出機能を備えていてもよい。この場合、記憶装置３は、テレビ、チューナ、レコーダ、プレーヤ等、タイムアウト時間が長くなると弊害がある特定の種別のホスト装置に接続されていることを検出した場合に、自装置のタイムアウト時間を変更する。
【００６３】
ホスト装置の種別を検出するための手法は、例えばフォーマットの解析を行う手法が考えられる。ホスト装置１がテレビやチューナ等の種別である場合、最初に記憶装置３を接続した場合に記憶装置３（ＳＡＴＡデバイス５３）のフォーマットを行う。テレビ等では、接続された記憶装置３に行うフォーマットは、ＰＣで一般的に用いられているＮＴＦＳやＦＡＴではない場合が多い。したがって、フォーマットがＮＴＦＳ、ＦＡＴ１６、およびＦＡＴ３２のいずれにも該当しない場合、ホスト装置がテレビやチューナ等の種別であると判断し、タイムアウト時間を短く設定する。
【００６４】
また、ホスト装置では、データ保護のために、ホスト装置１に接続していた記憶装置３を他のホスト装置（例えばＰＣ）に接続したとしても、データを参照することができないようになっている場合がある。例えば、ホスト装置１は、最初に記憶装置３を接続した場合に記憶装置３（ＳＡＴＡデバイス５３）のフォーマットを行うが、意図的にパーティション・タイプ（ＭＢＲ）と実パーティション（ＢＰＢ）を不一致にし、他のホスト装置（例えばＰＣ）でデータを参照することができないようにする場合がある。例えば、パーティション・タイプをＮＴＦＳとし、実パーティションの構造をＦＡＴ３２とする場合がある。したがって、記憶装置３は、パーティション・タイプと実パーティションが異なる場合、接続されているホスト装置１がテレビ等の特定の種別のホスト装置であると判断し、タイムアウト時間を短く設定する。
【００６５】
なお、記憶装置３の内蔵記憶デバイスが物理的に複数存在する場合、あるいは論理的に複数のパーティションに分けられている場合、実際にホスト装置１からアクセスがあるデバイスあるいはパーティションについて、上述の様なフォーマット解析を行う。
【００６６】
ホスト装置の種別を検出するための手法は、特定のファイルやフォルダの存在を確認する手法も考えられる。例えば、ホスト装置１がテレビやチューナであれば、記憶装置３に録画ファイルや録画ファイルに関連した番組情報を示すファイル、暗号化するためのファイル等が生成される場合がある。また、テレビやチューナが録画一覧表示等を行うために使用する録画ファイルを管理するためのファイルが生成される場合がある。したがって、記憶装置３はファイル構成を解析し、特定のファイル構成を検出した場合に、接続されているホスト装置１をテレビ等の特定の種別のホスト装置であると判断し、タイムアウト時間を短く設定する。
【００６７】
また、ホスト装置固有のファイルの場合は、ファイル名称にホスト装置固有の拡張子が用いられている場合や、ホスト装置１からのアクセスがある場合がある。したがって、記憶装置３はファイル名称を解析し、特定の拡張子を検出した場合やホスト装置１からのアクセスを検出した場合に、接続されているホスト装置１をテレビ等の特定の種別のホスト装置であると判断し、タイムアウト時間を短く設定する。
【００６８】
また、ファイル名称、フォルダ名称がホスト装置固有の場合がある。例えば、フォーマット時にホスト装置の名称がフォルダ名称となるフォルダが生成される場合や、録画毎に、録画時点の日時がフォルダ名称、ファイル名称となり、ホスト装置１からアクセスされる場合もある。したがって、記憶装置３は、これらの特定の名称のフォルダ、ファイルを検出した場合やホスト装置１からのアクセスを検出した場合に、接続されているホスト装置１をテレビ等の特定の種別のホスト装置であると判断し、タイムアウト時間を短く設定する。
【００６９】
なお、本実施形態では、ホスト装置と記憶装置の接続にＵＳＢインタフェースを用いる例を示したが、ＵＳＢ以外のインタフェースでホスト装置に接続される場合であってもよい。また、記憶装置の内蔵記憶デバイスとしても、ＳＡＴＡ以外のインタフェースであってもよい。
【００７０】
また、記憶装置の内蔵記憶デバイスがＳＡＴＡであり、ホスト装置と接続されるインタフェースもＳＡＴＡデバイスである場合、上述の様なＵＳＢ−ＳＡＴＡブリッジ５１は不要であるため、本実施形態で示したＵＳＢ−ＳＡＴＡブリッジ５１の機能は、記憶装置の内蔵記憶デバイスのコントローラに搭載させる。
【００７１】
また、本実施形態で示したＵＳＢ−ＳＡＴＡブリッジ５１に搭載されている機能（本発明における、ホスト装置とのデータ送受信状態を監視する監視手段と、前記監視手段の監視内容に応じて、前記ホスト装置がエラー発生と判断するまでの時間を変更させるタイムアウト時間変更手段）を、ホスト装置に搭載させることも可能である。この場合、ホスト装置が記憶装置を制御するためのソフトウェア（プログラム）であるデバイスドライバの一機能として実現することも可能である。
【符号の説明】
【００７２】
１…ホスト装置
２…ＵＳＢ通信路
３…記憶装置
５１…ＵＳＢ−ＳＡＴＡブリッジ
５２…ＳＡＴＡ通信路
５３…ＳＡＴＡデバイス
７１…ＵＳＢＩ／Ｆ
７２…コントローラ
７３…ＳＡＴＡＩ／Ｆ
７４…データ転送残数カウンタレジスタ
【図１】
0005823755.tif 000002
【図２】
0005823755.tif 000003
【図３】
0005823755.tif 000004
【図４】
0005823755.tif 000005
【図５】
0005823755.tif 000006
【図６】
0005823755.tif 000007