説明

記憶装置、およびプログラム

【課題】タイムアウト時間を短くすることができ、適切なデータ転送を実現する記憶装置を提供する。
【解決手段】記憶装置3は、ホスト装置1とのデータ送受信の状態を監視し、データ送受信の状態に応じて、ホスト装置1がエラー発生と判断するまでの時間を短くさせる。ホスト装置1がエラー発生と判断するまでの時間を短縮させるためには、(A)記憶装置3が、データ送受信の異常状態を検出した場合に、ホスト装置1にエラー報告を行う例や、(B)記憶装置3が、データ送受信の状態に応じて自装置のタイムアウト時間を変更する例、等が考えられる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ホスト装置に接続され、ホスト装置とデータ送受信を行う記憶装置、およびプログラムに関する。
【背景技術】
【0002】
近年、パーソナルコンピュータ(以下、PCと言う。)等のホスト装置に接続され、当該ホスト装置とデータ送受信を行う記憶装置が普及している。ホスト装置と記憶装置との間で行われるデータ転送において、通信路の異常等が発生した場合、データ転送は停止する。
【0003】
そこで、一般的にホスト装置や記憶装置には、タイマーカウンタが設定されている。ホスト装置は、記憶装置にコマンドを送信した後、応答がない状態が継続し、所定のタイムアウト時間が経過すると、再度コマンドを送信する。また、記憶装置は、ホスト装置からコマンドを受信した後、応答できない状態が継続し、所定のタイムアウト時間が経過すると、ホスト装置にエラー報告を行い、ホスト装置は、再度コマンドを送信することができる。
【0004】
ただし、記憶装置は、例えばハードディスクドライブ(以下、HDDと言う。)のスピンアップに数十秒程度の時間を必要とする場合がある。そのため、タイムアウト時間は、HDDのスピンアップに要する時間以上の長さに設定されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−48742号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、例えばホスト装置がテレビ等のコンテンツ録画再生装置である場合、数十秒程度もデータを送受信できない状態が続くと、コンテンツの録画や再生に必要なデータ転送速度を維持することができず、映像や音が途切れる可能性がある。タイムアウト時間を一律に短くすると、スピンアップ等に時間を要して応答が遅れているだけの場合もあるため、適切なデータ転送ができないという課題がある。
【0007】
そこで、この発明は、タイムアウト時間を短くすることができ、適切なデータ転送を実現できる記憶装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の記憶装置は、ホスト装置に接続され、前記ホスト装置とデータ送受信を行う記憶装置であって、前記ホスト装置とのデータ送受信状態を監視する監視手段と、前記監視手段の監視内容に応じて、前記ホスト装置がエラー発生と判断するまでの時間を変更させるタイムアウト時間変更手段と、を備えたことを特徴とする。
【0009】
前記ホスト装置とのデータ送受信状態を監視する監視手段を用いることで、記憶装置は、データ送受信の異常状態を検出した場合に、ホスト装置にエラー報告を行うことにより、ホスト装置がエラー発生と判断するまでの時間を短くさせる。データ送受信の異常状態とは、データ転送が所定時間(例えば数秒)以上行われていない場合や、あるいは、全てのデータが転送されていない状態にも関わらず、ホスト装置からステータスを要求された場合等、正常な状態では起こりえない処理が発生した場合等である。
【0010】
また、タイムアウト時間変更手段は、前記監督手段の監視内容に応じて、前記ホスト装置がエラー発生と判断するまでの時間を変更させる。つまり、本発明の記憶装置は、データ送受信の状態に応じて、タイムアウト時間を短く設定することが可能であると判断した場合にはタイムアウト時間を短くし、HDDのスピンアップ等、タイムアウト時間を短くすることができないと判断した場合にはタイムアウト時間を長くする。
【0011】
具体的には、記憶装置は、特定のコマンドを検出した場合に、自装置のタイムアウト時間を変更する態様が考えられる。特定のコマンドとは、例えば、READ、WRITE、VERIFYコマンドである。HDDがスピンダウンしていなければ、これらのコマンドに対する動作は、即座に行われるため、これらのコマンドを検出した場合には、HDDがスピンダウンしていなければタイムアウト時間を短くする(例えば数秒程度とする)。これにより、異常時には短い時間でホスト装置にエラー報告を行うことができ、ホスト装置は再度コマンドを送信することができる。
【0012】
以上のようにして、コンテンツデータを送受信するホスト装置、例えばテレビ、チューナ、レコーダ等の種別であれば、映像や音が途切れることを防止することができる。
【0013】
また、記憶装置は、ホスト装置の種別を検出する種別検出手段を備え、前記タイムアウト時間変更手段は、前記種別検出手段が、特定の種別を検出した場合に、自装置のタイムアウト時間を変更する態様も可能である。
【0014】
つまり、記憶装置は、テレビ、チューナ、レコーダ等、タイムアウト時間が長くなると弊害がある特定の種別のホスト装置を検出した場合に、タイムアウト時間を短くする。
【0015】
なお、上記タイムアウト時間変更手段は、記憶装置の制御部(SATAコントローラ等)に搭載されていてもよいが、インタフェース変換ブリッジ(USB−SATAブリッジ等)に搭載されている態様も可能である。
【発明の効果】
【0016】
この発明によれば、タイムアウト時間を短くすることができ、適切なデータ転送を実現できる。
【図面の簡単な説明】
【0017】
【図1】ホスト装置と記憶装置の接続関係を示すブロック図である。
【図2】USB−SATAブリッジの構成を示すブロック図である。
【図3】データ転送のイメージ図である。
【図4】READ/WRITEコマンド処理時の具体的動作を示すフローチャートである。
【図5】ホスト装置、USB−SATAブリッジ、およびSATAデバイス間で送受信されるデータの例を示す図である。
【図6】タイムアウト時間変更を行う場合のUSB−SATAブリッジ51の動作を示すフローチャートである。
【発明を実施するための形態】
【0018】
図1は、本発明の記憶装置と、当該記憶装置に接続されるホスト装置と、からなる情報処理システムの構成を示すブロック図である。本実施形態の情報処理システムは、USB通信路2を介して接続されるホスト装置1と、記憶装置3と、からなる。
【0019】
ホスト装置1は、記憶装置3にデータを書き込む、または記憶装置3からデータを読み出す情報処理装置であり、PC、テレビ、チューナ、レコーダ、プレーヤ等、種々の種別がある。
【0020】
記憶装置3は、ホスト装置から送信されたデータを内蔵する記憶デバイスに記憶する、または記憶デバイスに記憶しているデータをホスト装置に送信する。
【0021】
本実施形態の記憶装置3は、内蔵記憶デバイスとして、SATAデバイス53を有する。SATAデバイス53は、SATAインタフェースを有するHDDやSSD等の補助記憶デバイスである。SATAデバイス53は、SATA通信路52を介してUSB−SATAブリッジ51に接続されている。
【0022】
USB−SATAブリッジ51は、USB通信路2に接続されるUSBインタフェース、および内部のSATA通信路52に接続されるSATAインタフェースを有するインタフェース変換ブリッジである。
【0023】
図2は、USB−SATAブリッジ51の構成を示すブロック図である。USB−SATAブリッジ51は、USB通信路2に接続されるUSBインタフェース(I/F)71、コントローラ72、SATA通信路52に接続されるSATAI/F73、およびデータ転送残数カウンタレジスタ74を備えている。
【0024】
コントローラ72は、ブリッジ機能を実現するための構成要素であり、CPUやメモリを内蔵し、USBI/F71から受信したコマンドに応じて種々の動作を行う。例えば、コントローラ72は、ホスト装置1からUSBマスストレージ規格のREADコマンドを受信した場合、SATAデバイス53にSATA規格のREADコマンドを送信し、SATAデバイス53から読み出したデータをホスト装置1に転送する。また、コントローラ72は、ホスト装置1からUSBマスストレージ規格のWRITEコマンド受信した場合、SATAデバイス53にSATA規格のWRITEコマンドを送信し、ホスト装置1からの書き込みデータをSATAデバイス53に転送する。このコントローラ72が、本発明における監視手段およびタイムアウト時間変更手段に対応する。
【0025】
データ転送残数カウンタレジスタ74は、ホスト装置1からのコマンドにおけるデータ転送残数を示すものである。コントローラ72を介してホスト装置1とSATAデバイス53間でデータ転送が行われる毎にデータ転送残数カウンタレジスタ74の値は変化する。データ転送残数カウンタレジスタ74の値がゼロになると、データ転送が正常に行われたと判断することができる。
【0026】
なお、図2において、データ転送残数カウンタレジスタ74は、ハードウェアとして示しているが、コントローラ72におけるソフトウェア(USB−SATAブリッジ51のファームウェアの機能)で実現する態様も可能である。
【0027】
USBマスストレージ規格の転送方式には、BOT(Bulk-Only Transport)やUAS(USB-Attached SCSI)等がある。
【0028】
図3は、USBマスストレージ規格の転送方式にBOTを用いたデータ転送のイメージ図である。図3(A)は、正常にデータ転送が行われる場合、図3(B)は通信路に異常等が発生し正常にデータ転送が行われない場合、図3(C)は本発明の記憶装置を使用した情報処理システムで通信路に異常等が発生した場合のデータ転送のイメージ図である。
【0029】
図3(A)でホスト装置1は、記憶装置3にREADコマンドやWRITEコマンドを発行し、データ転送を行うイメージを示している。データ転送は、ある程度の容量のデータ毎にコマンドを発行し、データ本体の転送が行われる。図3(A)では、コマンドCmd1が発行され、データ本体Data1の転送が行われ、データ本体Data1の転送が終了すると次のコマンドCmd2が発行され、データ本体Data2の転送が行われる。この様に、コマンド発行とデータ本体の転送を繰り返し、一連のデータ転送が行われることを示している。
【0030】
一方、図3(B)は、ホスト装置1からコマンドを発行した後、通信路の異常等によるデータ本体の転送が行われない場合のイメージを示している。
【0031】
この様な異常に備えて、ホスト装置1やUSB-SATAブリッジ51は、不図示のタイムアウト異常検出機能を持っている。
【0032】
ホスト装置1は、記憶装置3にコマンドを発行した後、所定のタイムアウト時間内にデータ本体の転送が完了しない場合は、再度コマンドの発行を行い、データの再送受信を試みる。あるいは、USB−SATAブリッジ51は、SATAデバイス53にコマンドを発行した後、所定のタイムアウト時間内にデータ本体の転送が完了しない場合は、ホスト装置1にエラー報告を行い、ホスト装置1は再度コマンドの発行を行い、データ転送の再送受信を試みる。図3(B)では、ホスト装置1からCmd2された後、データ本体Data2の転送が行われないまま数十秒が経過し、タイムアウト異常検出により、再度コマンドCmd2を発行し、データ本体Data2の転送が行われた場合を示している。
【0033】
SATAデバイス53の様な記憶デバイスは、HDDのスピンアップに時間が必要であったり、不良セクタがあった場合に代替セクタを読み出すための時間が必要であったりする。そのため、タイムアウト時間は、図3(B)に示すように、一般的に数十秒程度(HDDのスピンアップに要する時間以上)とされている。
【0034】
しかし、例えばホスト装置1がテレビ、チューナ、レコーダ、プレーヤ等、コンテンツデータの送受信を行うものである場合、数十秒程度もデータを送受信できない状態が続くと、映像や音が途切れたり、録画に失敗したりする可能性がある。タイムアウト時間を一律に短くすると、スピンアップ等に時間を要して応答が遅れているだけの場合もあるため、適切なデータ転送ができない。
【0035】
そこで、本実施形態に係る記憶装置3は、データ送受信の状態を監視し、監視内容に応じて、ホスト装置1がエラー発生と判断するまでの時間を短くさせる(例えば2秒程度に短縮させる)。すると、図3(C)に示すように、ホスト装置1がCmd2を発行してから応答がない状態が発生したとしても、2秒経過後には、再度ホスト装置1がCmd2を発行してデータ転送が行われるため、映像や音が途切れたり、録画に失敗したりする可能性が著しく低減される。なお、USBマスストレージ規格の転送方式にBOTを用いて場合だけではなく、UASを用いた場合でも、同等の効果が見込まれる。
【0036】
ホスト装置1がエラー発生と判断するまでの時間を短縮させるためには、以下の2つの例が考えられる。
(A)記憶装置3が、データ送受信の異常状態を検出した場合に、ホスト装置1にエラー報告を行う例
(B)記憶装置3が、データ送受信の状態に応じて自装置のタイムアウト時間を変更する例
まず、上記(A)の例について説明する。上記(A)の例は、記憶装置3がデータ送受信の異常状態を検出し、ホスト装置1にエラー報告を行うことで、ホスト装置1がタイムアウト時間の経過を待たずに再度コマンドを送信することができる態様である。
【0037】
データ送受信の異常状態とは、例えばデータ転送が所定時間(例えば数秒)以上行われていない場合である。データ転送が所定時間以上行われていない状態を検出するには、コントローラ72がデータ転送残数カウンタレジスタ74の監視を行う態様が考えられる。
【0038】
図4は、USB−SATAブリッジ51のコントローラ72の動作を示すフローチャートであり、特に、USBマスストレージ規格のREAD/WRITEコマンド処理時の具体的動作を示すフローチャートである。コントローラ72は、ホスト装置1からREADコマンド、または、WRITEコマンドを受信した場合に図4の動作を行う。
【0039】
まず、コントローラ72は、最初に自装置のタイマーカウンタを設定する(s21)。このタイマーカウンタのタイムアウト時間は、上述のデータ転送が所定時間以上行われていないと判断するためのタイムアウト時間であり、ホスト装置のタイムアウト時間(数十秒)よりも短く設定することができる。例えば、本実施形態では、このタイムアウト時間を2秒に設定する。
【0040】
その後、コントローラ72は、ホスト装置1から受信したコマンドに応じて、SATA規格のコマンドを送信する(s22)。例えば、図5に示すように、コントローラ72は、ホスト装置1からWRITEコマンド(OUT(CBW))を受信した場合、SATAデバイス53にWRITE DMAコマンド(Register FIS - Host to Device)を送信する。一方、コントローラ72は、WRITEコマンドを解析することでデータ転送長を取得できるため、このときにデータ転送残数カウンタレジスタ74をセットする。なお、図5の様にUSBマスストレージ規格の転送方式にBOTを用いている場合は、WRITEコマンドを解析する代わりに、CBWと呼ばれるパケットに含まれるデータ転送長を用いて、データ転送残数カウンタレジスタ74をセットしてもよい。
【0041】
その後、コントローラ72は、ホスト装置1からのデータ転送問い合わせ(PING)に対し、ライト用データを受け取りできない(FIFOに空きがない)状態の場合は、NAK応答(否定応答)し、受け取りできる(FIFOに空きがある)状態の場合は、ACK応答(正常応答)する。また、コントローラ72は、ホスト装置1からのOUTに対し、ライト用データを受け取った(FIFOに入った)場合は、ACK応答し、受け取れなかった(FIFOに入らなかった)場合は、NAK応答する。ライト用データを受け取ったが次回は受け取れない(FIFOに入ったことでFIFOが一杯になった)場合は、NYET応答(正常応答、次回否定応答)する。そして、受信した(FIFOに入っている)ライト用データは、コントローラ72が、SATAデバイス53からDMA Activate FISを受信した後、Data FISとして送信する。この様に、ライト用データの送受信が繰り返し行われることでホスト装置1とSATAデバイス53との間でデータ転送が行われる。なお、コントローラ72は、Data FISの送信が行われる毎に、データ転送残数カウンタレジスタ74を減算する。
【0042】
一方、コントローラ72は、上記s22の処理でWRITE DMAコマンドを送信した後、内蔵するタイマーカウンタを初期値に設定し、タイマー動作を開始させる(s23)。このタイマーカウンタは、一定時間毎に歩進され、上記タイムアウト時間(2秒)を経過するとタイムアウトとなる。
【0043】
コントローラ72は、SATAデバイス53がコマンド完了したか否かを判断する(s24)。図5に示すように、ホスト装置1がリクエストした全てのデータ書き込みが完了すると、SATAデバイス53は、コマンド完了を示すRegister FIS - Device to Hostを送信する。コントローラ72は、SATAデバイス53がコマンド完了したと判断した場合、ホスト装置1にステータスを送信し、WRITEコマンド処理を終了する。
【0044】
一方、コントローラ72は、s24の処理でコマンド完了していないと判断した場合、データ転送残数カウンタレジスタ74に変化があるか否かを判断する(s25)。データ転送残数カウンタレジスタ74に変化があった場合、コントローラ72は、s23の処理に戻り、内蔵するタイマーカウンタを初期値に設定し、タイマー動作を開始させる(s23)。つまり、データ転送が正常に動作している場合にはタイマーカウンタは、リセットされる。
【0045】
一方、データ転送残数カウンタレジスタ74に変化がなかった場合、コントローラ72は、タイムアウト時間(2秒)が経過してタイムアウトとなったか否かを判断する(s26)。タイムアウトでなければ、コントローラ72は、s24の処理に戻り、コマンド完了したか否かの判断を行う。タイムアウトとなった場合、コントローラ72は、ホスト装置1にエラー報告を行い、ホスト装置1は再度コマンドを送信することができる(s27)。
【0046】
このようにして、コントローラ72は、データ転送が所定時間以上行われていない状態を検出し、ホスト装置1のタイムアウトを待つことなくエラー報告を行うことで、ホスト装置1がエラー発生と判断するまでの時間を短縮させる。
【0047】
図4では、データ送受信の異常状態を検出する例として、コントローラ72がデータ転送残数カウンタレジスタ74の監視を行う態様を示したが、この態様以外にも、例えば、SATA通信路52やUSB通信路2を監視し、通信プロトコルにおいて、特定のパケットが所定時間以上確認できない場合にデータ送受信の異常状態であると判断する態様がある。
【0048】
この場合、図4のs25の処理に代えて、あるいはs25の処理に追加する。例えば、コントローラ72は、SATA通信路52を監視し、DMA Activate FIS、Data FIS、DMA SETUP FIS、PIO SETUP FIS等、SATA規格におけるFISと呼ばれるパケットの送受信が行われたか否かを確認する。FISの送受信が行われていないと判断した場合、s26の判断に移行し、タイムアウトであればホスト装置1にエラー報告を行い、ホスト装置1は再度コマンドを送信することができる。
【0049】
また、SATA規格におけるFISのより単純な構成要素であるプリミティブの確認を行う態様も考えられる。コントローラ72は、R_IPやR_OK等のプリミティブの送受信が行われたか否かを確認し、プリミティブの受信が行われていないと判断した場合、s26の判断に移行し、タイムアウトであればホスト装置1にエラー報告を行い、ホスト装置1は再度コマンドを送信することができる。
【0050】
また、USBプロトコルの監視を行う態様も考えられる。コントローラ72は、USB通信路2を監視し、PINGやACK、NAK等、USB規格のパケットの送受信が行われたか否かを確認し、データの送受信が行われていないと判断した場合、s26の判断に移行し、タイムアウトであればホスト装置1にエラー報告を行い、ホスト装置1は再度コマンドを送信することができる。
【0051】
さらに、コントローラ72は、データ転送残数カウンタレジスタ74の残数がゼロでなく、全てのデータが転送されていない状態で、ホスト装置1からステータスを要求された場合等、正常な状態では起こりえない処理が発生した場合に、データ送受信の異常状態であると判断し、s26の判断に移行し、タイムアウトであればホスト装置1にエラー報告を行い、ホスト装置1は再度コマンドを送信することも可能である。
【0052】
次に、上記(B)の例について説明する。上記(B)の例は、記憶装置3が、データ送受信の状態に応じて自装置のタイムアウト時間を変更することで、ホスト装置1がエラー発生と判断するまでの時間を短縮させる態様である。
【0053】
図6は、USB−SATAブリッジ51のコントローラ72の動作を示すフローチャートであり、ホスト装置1からUSBマスストレージ規格に準じたコマンドを受信した場合に図6の動作を行う。
【0054】
コントローラ72は、ホスト装置1から受信したコマンドが、READ、WRITE、またはVERIFYコマンドであるか否かを確認する(s31)。これらコマンド以外のコマンドであれば、ホスト装置1において映像や音が途切れたり、録画に失敗したりする可能性が低いため、コントローラ72は、例えば、本実施形態では、タイマーカウンタのタイムアウト時間を30秒に設定する(s35)。
【0055】
また、READ、WRITE、VERIFYコマンドであった場合は、前回受信したコマンドがREAD、WRITE、またはVERIFYコマンドであるか否かを確認する(s32)。
【0056】
これらのコマンドではない場合、HDDがスピンダウンしているかもしれないため、タイマーカウンタのタイムアウト時間を30秒に設定する(s35)。ただし、SATAデバイス53がSSD等のスピンダウンがないデバイスである場合は、このs35の処理は不要である。
【0057】
コントローラ72は、READ、WRITE、またはVERIFYコマンドを連続で受信したと判断した場合、前回のREAD、WRITE、VERIFYコマンドの受信から一定時間以上経過しているか否かを確認する(s33)。
【0058】
記憶デバイスのHDDには、オートスピンダウン機能を有するものが存在する。オートスピンダウン機能とは、一定時間HDDにアクセスがない場合にスピンダウンする機能である。
【0059】
そのため、READ、WRITE、またはVERIFYコマンドを連続で受信した場合であっても、前回のREAD、WRITE、VERIFYコマンドの受信から一定時間以上経過している場合では、HDDがスピンダウンしているかもしれないため、タイマーカウンタのタイムアウト時間を30秒に設定し(s35)、前回のREAD、WRITE、VERIFYコマンドの受信から一定時間以上経過していない場合にはタイマーカウンタのタイムアウト時間を短く(この例では2秒に)設定する(s34)。ただし、SATAデバイス53がSSD等のスピンダウンがないデバイスである場合は、このs32およびs35の処理は不要である。
【0060】
なお、コントローラ72は、s32およびs33の処理に代えて、またはs32およびs33の処理に追加して、SATAデバイス53にCHECK POWER MODEコマンドを発行し、SATAデバイス53の電力状態を取得してもよい。SATAデバイス53が低電力、省電力状態である場合には、例えばHDDがスピンダウンしている可能性があり、コマンド応答に時間がかかる場合があるため、コントローラ72は、タイマーカウンタのタイムアウト時間を短くしない(30秒に設定する)。
【0061】
コントローラ72は、以上のような処理を行った後、コマンド処理を行う(s51)。コマンド処理は、図4のフローチャートで説明した動作と同様の動作を行う。ただし、図4に示した動作のうち、s25の処理(記憶装置3が、データ送受信の異常状態を検出する処理)は必須ではない。すなわち、記憶装置3が、データ送受信の異常状態を検出する処理と、記憶装置3が、データ送受信の状態に応じて自装置のタイムアウト時間を変更する処理とは、いずれか一方のみ行ってもよいし、両方の処理を行ってもよい。
【0062】
なお、記憶装置3は、ホスト装置1の種別を検出する種別検出機能を備えていてもよい。この場合、記憶装置3は、テレビ、チューナ、レコーダ、プレーヤ等、タイムアウト時間が長くなると弊害がある特定の種別のホスト装置に接続されていることを検出した場合に、自装置のタイムアウト時間を変更する。
【0063】
ホスト装置の種別を検出するための手法は、例えばフォーマットの解析を行う手法が考えられる。ホスト装置1がテレビやチューナ等の種別である場合、最初に記憶装置3を接続した場合に記憶装置3(SATAデバイス53)のフォーマットを行う。テレビ等では、接続された記憶装置3に行うフォーマットは、PCで一般的に用いられているNTFSやFATではない場合が多い。したがって、フォーマットがNTFS、FAT16、およびFAT32のいずれにも該当しない場合、ホスト装置がテレビやチューナ等の種別であると判断し、タイムアウト時間を短く設定する。
【0064】
また、ホスト装置では、データ保護のために、ホスト装置1に接続していた記憶装置3を他のホスト装置(例えばPC)に接続したとしても、データを参照することができないようになっている場合がある。例えば、ホスト装置1は、最初に記憶装置3を接続した場合に記憶装置3(SATAデバイス53)のフォーマットを行うが、意図的にパーティション・タイプ(MBR)と実パーティション(BPB)を不一致にし、他のホスト装置(例えばPC)でデータを参照することができないようにする場合がある。例えば、パーティション・タイプをNTFSとし、実パーティションの構造をFAT32とする場合がある。したがって、記憶装置3は、パーティション・タイプと実パーティションが異なる場合、接続されているホスト装置1がテレビ等の特定の種別のホスト装置であると判断し、タイムアウト時間を短く設定する。
【0065】
なお、記憶装置3の内蔵記憶デバイスが物理的に複数存在する場合、あるいは論理的に複数のパーティションに分けられている場合、実際にホスト装置1からアクセスがあるデバイスあるいはパーティションについて、上述の様なフォーマット解析を行う。
【0066】
ホスト装置の種別を検出するための手法は、特定のファイルやフォルダの存在を確認する手法も考えられる。例えば、ホスト装置1がテレビやチューナであれば、記憶装置3に録画ファイルや録画ファイルに関連した番組情報を示すファイル、暗号化するためのファイル等が生成される場合がある。また、テレビやチューナが録画一覧表示等を行うために使用する録画ファイルを管理するためのファイルが生成される場合がある。したがって、記憶装置3はファイル構成を解析し、特定のファイル構成を検出した場合に、接続されているホスト装置1をテレビ等の特定の種別のホスト装置であると判断し、タイムアウト時間を短く設定する。
【0067】
また、ホスト装置固有のファイルの場合は、ファイル名称にホスト装置固有の拡張子が用いられている場合や、ホスト装置1からのアクセスがある場合がある。したがって、記憶装置3はファイル名称を解析し、特定の拡張子を検出した場合やホスト装置1からのアクセスを検出した場合に、接続されているホスト装置1をテレビ等の特定の種別のホスト装置であると判断し、タイムアウト時間を短く設定する。
【0068】
また、ファイル名称、フォルダ名称がホスト装置固有の場合がある。例えば、フォーマット時にホスト装置の名称がフォルダ名称となるフォルダが生成される場合や、録画毎に、録画時点の日時がフォルダ名称、ファイル名称となり、ホスト装置1からアクセスされる場合もある。したがって、記憶装置3は、これらの特定の名称のフォルダ、ファイルを検出した場合やホスト装置1からのアクセスを検出した場合に、接続されているホスト装置1をテレビ等の特定の種別のホスト装置であると判断し、タイムアウト時間を短く設定する。
【0069】
なお、本実施形態では、ホスト装置と記憶装置の接続にUSBインタフェースを用いる例を示したが、USB以外のインタフェースでホスト装置に接続される場合であってもよい。また、記憶装置の内蔵記憶デバイスとしても、SATA以外のインタフェースであってもよい。
【0070】
また、記憶装置の内蔵記憶デバイスがSATAであり、ホスト装置と接続されるインタフェースもSATAデバイスである場合、上述の様なUSB−SATAブリッジ51は不要であるため、本実施形態で示したUSB−SATAブリッジ51の機能は、記憶装置の内蔵記憶デバイスのコントローラに搭載させる。
【0071】
また、本実施形態で示したUSB−SATAブリッジ51に搭載されている機能(本発明における、ホスト装置とのデータ送受信状態を監視する監視手段と、前記監視手段の監視内容に応じて、前記ホスト装置がエラー発生と判断するまでの時間を変更させるタイムアウト時間変更手段)を、ホスト装置に搭載させることも可能である。この場合、ホスト装置が記憶装置を制御するためのソフトウェア(プログラム)であるデバイスドライバの一機能として実現することも可能である。
【符号の説明】
【0072】
1…ホスト装置
2…USB通信路
3…記憶装置
51…USB−SATAブリッジ
52…SATA通信路
53…SATAデバイス
71…USBI/F
72…コントローラ
73…SATAI/F
74…データ転送残数カウンタレジスタ

【特許請求の範囲】
【請求項1】
ホスト装置に接続され、前記ホスト装置とデータ送受信を行う記憶装置であって、
前記ホスト装置とのデータ送受信状態を監視する監視手段と、
前記監視手段の監視内容に応じて、前記ホスト装置がエラー発生と判断するまでの時間を変更させるタイムアウト時間変更手段と、
を備えたことを特徴とする記憶装置。
【請求項2】
前記タイムアウト時間変更手段は、
前記監視手段がデータ送受信の異常状態を検出した場合に、前記ホスト装置にエラー報告を行うことにより、前記ホスト装置がエラー発生と判断するまでの時間を変更させることを特徴とする請求項1に記載の記憶装置。
【請求項3】
前記タイムアウト時間変更手段は、
前記監視手段が特定のコマンドを検出した場合に、自装置のタイムアウト時間を変更することを特徴とする請求項1または請求項2に記載の記憶装置。
【請求項4】
前記ホスト装置の種別を検出する種別検出手段を備え、
前記タイムアウト時間変更手段は、前記種別検出手段が、特定の種別を検出した場合に、自装置のタイムアウト時間を変更することを特徴とする請求項1〜3のいずれかに記載の記憶装置。
【請求項5】
前記タイムアウト時間変更手段は、インタフェース変換ブリッジに搭載されていることを特徴とする請求項1〜4のいずれかに記載の記憶装置。
【請求項6】
ホスト装置に実行される、または前記ホスト装置に接続され、前記ホスト装置とデータ送受信を行う記憶装置に実行されるプログラムであって、
前記ホスト装置とのデータ送受信状態を監視する監視手段と、
前記監視手段の監視内容に応じて、前記ホスト装置がエラー発生と判断するまでの時間を変更させるタイムアウト時間変更手段と、
を実現させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate