(57)【要約】【課題】ホスト装置が一つのシリアルインタフェースを介して複数のデバイスをアクセスすることが可能なインタフェース装置を実現する。【解決手段】インタフェース装置１１１は、シリアルバス２を介してハードディスクドライブ１２から通知される記憶容量にハードディスクドライブ１１の記憶容量を加算することによって得られる総記憶容量を、シリアルバス１を介してホスト装置１０に通知する。インタフェース装置１１１は、総記憶容量とハードディスクドライブ１１の記憶容量との関係に基づいて、ハードディスクドライブ１１に割り当てるべきアドレス範囲を示すアドレスマップ情報を作成する。インタフェース装置１１１は、ホスト装置１０からのアクセスコマンドで指定されるアドレス値がハードディスクドライブ１１に属するか否かに応じて、アクセスコマンドをデータ記憶部１１２またはハードディスクドライブ１２に発行する。【選択図】      図１
2007004707.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に搭載可能に構成され、前記記憶装置とホスト装置との間の通信を制御するインタフェース装置であって、
前記ホスト装置との通信を実行する第１のシリアルインタフェースと、
外部デバイスとの通信を実行する第２のシリアルインタフェースと、
前記第２のシリアルインタフェースを介して前記外部デバイスから通知される前記外部デバイスの記憶容量に前記記憶装置の記憶容量を加算して総記憶容量を算出し、当該総記憶容量を前記第１のシリアルインタフェースを介して前記ホスト装置に通知する記憶容量通知手段と、
前記総記憶容量と前記記憶装置の記憶容量との関係に基づいて算出される、前記記憶装置に割り当てるべきアドレス範囲を示すアドレスマップ情報を保持するアドレスマップ保持手段と、
前記ホスト装置から送信されるアクセスコマンドが前記第１のシリアルインタフェースによって受信された場合、前記アクセスコマンドに含まれるアドレス値と前記アドレスマップ情報とに基づいて、前記アドレス値が前記アドレス範囲に属するか否かを判別するアドレスデコード手段と、
前記アドレス値が前記アドレス範囲に属する場合、前記アクセスコマンドを前記記憶装置内のデータ記憶部に送信し、前記アドレス値が前記アドレス範囲に属さない場合、前記アクセスコマンドを前記第２のシリアルインタフェースを介して前記外部デバイスに送信する制御手段とを具備することを特徴とするインタフェース装置。
【請求項２】
前記制御手段は、前記アドレス値が前記アドレス範囲に属さない場合、前記アドレス値を前記データ記憶部の記憶容量に基づいて更新し、当該更新されたアドレス値を含む前記アクセスコマンドを前記第２のシリアルインタフェースを介して前記外部デバイスに送信することを特徴とする請求項１記載のインタフェース装置。
【請求項３】
前記ホスト装置から送信される、前記アクセスコマンド以外のコマンドが前記第１のシリアルインタフェースによって受信された場合、前記受信されたコマンドを前記データ記憶部に送信すると共に、前記受信されたコマンドを前記第２のシリアルインタフェースを介して前記外部デバイスに送信する手段をさらに具備することを特徴とする請求項１記載のインタフェース装置。
【請求項４】
前記第１のシリアルインタフェースは第１のシリアルバスを介して前記ホスト装置に接続されており、前記第２のシリアルインタフェースは第２のシリアルバスを介して前記外部デバイスに接続されていることを特徴とする請求項１記載のインタフェース装置。
【請求項５】
記憶メディアにデータを格納する記憶装置であって、
ホスト装置との通信を実行する第１のシリアルインタフェースと、
外部デバイスとの通信を実行する第２のシリアルインタフェースと、
前記第２のシリアルインタフェースを介して前記外部デバイスから通知される前記外部デバイスの記憶容量に前記記憶メディアの記憶容量を加算して総記憶容量を算出し、当該総記憶容量を前記第１のシリアルインタフェースを介して前記ホスト装置に通知する記憶容量通知手段と、
前記総記憶容量と前記記憶メディアの記憶容量との関係に基づいて算出される、前記記憶装置に割り当てるべきアドレス範囲を示すアドレスマップ情報を保持するアドレスマップ保持手段と、
前記ホスト装置から送信されるアクセスコマンドが前記第１のシリアルインタフェースによって受信された場合、前記アクセスコマンドに含まれるアドレス値と前記アドレスマップ情報とに基づいて、前記アドレス値が前記アドレス範囲に属するか否かを判別するアドレスデコード手段と、
前記アドレス値が前記アドレス範囲に属する場合、前記アクセスコマンドに従って前記記憶メディアをリード／ライトアクセスし、前記アドレス値が前記アドレス範囲に属さない場合、前記アクセスコマンドを前記第２のシリアルインタフェースを介して前記外部デバイスに送信する制御手段とを具備することを特徴とする記憶装置。
【請求項６】
前記制御手段は、前記アドレス値が前記アドレス範囲に属さない場合、前記記憶メディアの記憶容量に基づいて前記アドレス値を更新し、当該更新されたアドレス値を含む前記アクセスコマンドを前記第２のシリアルインタフェースを介して前記外部デバイスに送信することを特徴とする請求項５記載の記憶装置。
【請求項７】
前記ホスト装置から送信される、前記アクセスコマンド以外のコマンドが前記第１のシリアルインタフェースによって受信された場合、前記受信されたコマンドに対応する処理を実行すると共に、前記受信されたコマンドを前記第２のシリアルインタフェースを介して前記外部デバイスに送信する手段をさらに具備することを特徴とする請求項５記載の記憶装置。
【請求項８】
記憶メディアにデータを格納する記憶装置の動作を制御する制御方法であって、前記記憶装置は第１のシリアルバスを介してホスト装置に接続され、且つ第２のシリアルバスを介して外部デバイスに接続されており、
前記第２のシリアルバスを介して前記外部デバイスから通知される前記外部デバイスの記憶容量に前記記憶メディアの記憶容量を加算して総記憶容量を算出し、当該総記憶容量を前記第１のシリアルバスを介して前記ホスト装置に通知するステップと、
前記総記憶容量と前記記憶メディアの記憶容量との関係に基づいて、前記記憶装置に割り当てるべきアドレス範囲を示すアドレスマップ情報を作成するステップと、
前記第１のシリアルバスを介して前記ホスト装置から送信されるアクセスコマンドに含まれるアドレス値と前記アドレスマップ情報とに基づいて、前記アドレス値が前記アドレス範囲に属するか否かを判別するステップと、
前記アドレス値が前記アドレス範囲に属する場合、前記アクセスコマンドに従って前記記憶メディアをリード／ライトアクセスするステップと、
前記アドレス値が前記アドレス範囲に属さない場合、前記アクセスコマンドを前記第２のシリアルバスを介して前記外部デバイスに送信するステップとを具備することを特徴とする制御方法。
【請求項９】
前記アクセスコマンドを前記外部デバイスに送信するステップは、前記記憶メディアの記憶容量に基づいて前記アドレス値を更新し、当該更新されたアドレス値を含む前記アクセスコマンドを前記第２のシリアルバスを介して前記外部デバイスに送信することを特徴とする請求項８記載の制御方法。
【請求項１０】
前記第１のシリアルバスを介して前記ホスト装置から前記アクセスコマンド以外のコマンドを受信した場合、前記受信されたコマンドを前記第２のシリアルバスを介して前記外部デバイスに送信するステップをさらに具備することを特徴とする請求項８記載の制御方法。
【請求項１１】
ホスト装置と、前記ホスト装置に第１のシリアルバスを介して接続された第１の記憶装置と、前記第１の記憶装置に第２のシリアルバスを介して接続された第２の記憶装置とを含むシステムであって、
前記第１の記憶装置は、
前記第２のシリアルバスを介して前記第２の記憶装置から通知される前記第２の記憶装置の記憶容量に前記第１の記憶装置の記憶容量を加算して総記憶容量を算出し、当該総記憶容量を前記第１のシリアルバスを介して前記ホスト装置に通知する手段と、
前記総記憶容量と前記第１の記憶装置の記憶容量との関係に基づいて算出される、前記第１の記憶装置に割り当てるべきアドレス範囲を示すアドレスマップ情報を保持するアドレスマップ保持手段と、
前記第１のシリアルバスを介して前記ホスト装置から送信されるアクセスコマンドに含まれるアドレス値と前記アドレスマップ情報とに基づいて、前記アドレス値が前記アドレス範囲に属するか否かを判別するアドレスデコード手段と、
前記アドレス値が前記アドレス範囲に属する場合、前記アクセスコマンドに従って前記第１の記憶装置内の記憶メディアをリード／ライトアクセスし、前記アドレス値が前記アドレス範囲に属さない場合、前記アクセスコマンドを前記第２のシリアルバスを介して前記第２の記憶装置に送信する制御手段とを具備することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルインタフェースを介してホスト装置との間の通信を制御するインタフェース装置およびこのインタフェース装置を備えた記憶装置に関する。
【背景技術】
【０００２】
近年、様々なストレージシステムが開発されている。
【０００３】
特許文献１には、ｎ個のディスクドライブを備えたディスクサブシステムが開示されている。このディスクサブシステムにおいては、中間制御装置とｎ個のディスクドライブは、制御情報信号ラインによってデイジーチェーン接続されている。
【０００４】
また、特許文献２には、ＳＣＳＩ（Small Computer System Interface）バスを介してデイジーチェーン接続された複数のハードディスクドライブを含むディスクアレイが開示されている。
【０００５】
ところで、近年では、シリアル−ＡＴＡ（ATA:AT Attachment）規格に準拠したシリアルインタフェースを有するデバイスが開発されている。従来のパラレル−ＡＴＡ（ATA:AT Attachment）規格では、多数の信号線を含むパラレルバス（パラレルケーブル）が用いられている。これに対し、シリアル−ＡＴＡ規格ではシリアルバス（シリアルケーブル）が利用されている。
【０００６】
シリアル−ＡＴＡ規格に準拠したシリアルインタフェースを有するデバイスは、シリアルバスを介してホスト装置にポイントツーポイントで接続される。このため、ホスト装置に接続可能なデバイスの台数は、ホスト装置が有するシリアルインタフェースの数と同数となる。
【特許文献１】特開平８−１６３２０号公報
【特許文献２】特開平１０−２６９０２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、もしホスト装置が有するシリアルインタフェースが１つだけならば、ホスト装置に接続可能なデバイスの台数は１台のみに制限されてしまう。
【０００８】
したがって、たとえホスト装置が有するシリアルインタフェースが１つだけであっても、ホスト装置がその一つのシリアルインタフェースを介して複数のデバイスをアクセスできるようにするための新たな機能を実現することが必要となる。これにより、ハードディスクドライブのようなデバイスの増設を容易に実現することが可能となる。
【０００９】
しかし、この場合、シリアル−ＡＴＡ規格との互換性を維持するために、ホスト装置との通信に関するインタフェース仕様を変更することは避けなくてはならない。
【００１０】
シリアル−ＡＴＡ規格においては、上述したように、ホスト装置とデバイスとがシリアルバスを介してポイントツーポイント形式で接続されることを前提としている。このため、ホスト装置からは、そのホスト装置のシリアルインタフェースに接続されたデバイスの数は常に１台として認識されるような仕組みが必要である。
【００１１】
本発明は上述の事情を考慮してなされたものであり、ホスト装置が一つのシリアルインタフェースを介して複数のデバイスをアクセスすることが可能なインタフェース装置、記憶装置、制御方法およびシステムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述の課題を解決するため、本発明は、記憶装置に搭載可能に構成され、前記記憶装置とホスト装置との間の通信を制御するインタフェース装置であって、前記ホスト装置との通信を実行する第１のシリアルインタフェースと、外部デバイスとの通信を実行する第２のシリアルインタフェースと、前記第２のシリアルインタフェースを介して前記外部デバイスから通知される前記外部デバイスの記憶容量に前記記憶装置の記憶容量を加算して総記憶容量を算出し、当該総記憶容量を前記第１のシリアルインタフェースを介して前記ホスト装置に通知する記憶容量通知手段と、前記総記憶容量と前記記憶装置の記憶容量との関係に基づいて算出される、前記記憶装置に割り当てるべきアドレス範囲を示すアドレスマップ情報を保持するアドレスマップ保持手段と、前記ホスト装置から送信されるアクセスコマンドが前記第１のシリアルインタフェースによって受信された場合、前記アクセスコマンドに含まれるアドレス値と前記アドレスマップ情報とに基づいて、前記アドレス値が前記アドレス範囲に属するか否かを判別するアドレスデコード手段と、前記アドレス値が前記アドレス範囲に属する場合、前記アクセスコマンドを前記記憶装置内のデータ記憶部に送信し、前記アドレス値が前記アドレス範囲に属さない場合、前記アクセスコマンドを前記第２のシリアルインタフェースを介して前記外部デバイスに送信する制御手段とを具備することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ホスト装置が一つのシリアルインタフェースを介して複数のデバイスをアクセスすることが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して、本発明の実施形態を説明する。  
図１には、本発明の一実施形態に係るインタフェース装置をそれぞれ搭載した複数の記憶装置を含むシステムの構成が示されている。
【００１５】
このシステムは、例えば、コンピュータ、ビデオレコーダ等として機能する。このシステムは、ホスト装置１０と、複数のハードディスクドライブ１１，１２，…とから構成されている。これらハードディスクドライブ１１，１２，…はシリアル−ＡＴＡ（以下、Ｓ−ＡＴＡと称する）規格に準拠した幾つかのシリアルバスによってデイジーチェーン接続されている。
【００１６】
第１のハードディスクドライブ（ＨＤＤ＃１）１１はデータを記憶する記憶装置であり、２つのシリアルポート１１ａ，１１ｂを有している。シリアルポート１１ａは、ホスト装置側、つまりデイジーチェーンの上流側のデバイスに接続するためのコネクタであり、またシリアルポート１１ｂは、外部デバイス側、つまりデイジーチェーンの下流側のデバイスに接続するためのコネクタである。
【００１７】
同様に、第２のハードディスクドライブ（ＨＤＤ＃２）１２もデータを記憶する記憶装置であり、２つのシリアルポート１２ａ，１２ｂを有している。シリアルポート１２ａはデイジーチェーンの上流側のデバイスに接続するためのコネクタであり、またシリアルポート１２ｂは下流側のデバイスに接続するためのコネクタである。
【００１８】
第１のハードディスクドライブ（ＨＤＤ＃１）１１のシリアルポート１１ａは、Ｓ−ＡＴＡ規格に準拠したシリアルバス（シリアルケーブル）１を介してホスト装置１０に接続されている。シリアルバス１は、２組の差動信号線対を含んでいる。一方の差動信号線対は第１のハードディスクドライブ（ＨＤＤ＃１）１１からホスト装置１０へのデータ伝送に用いられ、他方の差動信号線対はホスト装置１０から第１のハードディスクドライブ（ＨＤＤ＃１）１１へのデータ伝送に用いられる。
【００１９】
ホスト装置１０は、コンピュータ本体またはビデオレコーダ本体内に設けられた、ホストコントローラによって構成されている。ホストコントローラはＳ−ＡＴＡ規格に準拠したコントローラであり、シリアルバス１に接続された記憶装置を制御する。
【００２０】
第１のハードディスクドライブ（ＨＤＤ＃１）１１のシリアルポート１１ｂは、Ｓ−ＡＴＡ規格に準拠したシリアルバス（シリアルケーブル）２を介して第２のハードディスクドライブ（ＨＤＤ＃２）１２のシリアルポート１２ａに接続されている。シリアルバス２も、２組の差動信号線対を含んでいる。一方の差動信号線対は第２のハードディスクドライブ（ＨＤＤ＃２）１２から第１のハードディスクドライブ（ＨＤＤ＃１）１１へのデータ伝送に用いられ、他方の差動信号線対は第１のハードディスクドライブ（ＨＤＤ＃１）１１から第２のハードディスクドライブ（ＨＤＤ＃２）１２へのデータ伝送に用いられる。
【００２１】
第２のハードディスクドライブ（ＨＤＤ＃２）１２のシリアルポート１２ｂは、必要に応じて、Ｓ−ＡＴＡ規格に準拠したシリアルバス（シリアルケーブル）３を介して図示しない第３のハードディスクドライブのシリアルポートに接続される。なお、デイジーチェーンの末端のハードディスクドライブは、必ずしも２つのシリアルポートを持つ必要はない。換言すれば、末端のハードディスクドライブは、Ｓ−ＡＴＡ規格に準拠した一つのシリアルポートを有する通常のデバイスであればよい。
【００２２】
第２のハードディスクドライブ（ＨＤＤ＃２）１２からは、第１のハードディスクドライブ（ＨＤＤ＃１）１１が第２のハードディスクドライブ（ＨＤＤ＃２）１２にとってのホスト装置として認識される。同様に、第３のハードディスクドライブからは、第２のハードディスクドライブ（ＨＤＤ＃２）１２が第３のハードディスクドライブにとってのホスト装置として認識される。
【００２３】
第１のハードディスクドライブ（ＨＤＤ＃１）１１は、インタフェース装置１１１とデータ記憶部１１２とから構成されている。
【００２４】
インタフェース装置１１１は、２つのシリアルポート１１ａ，１１ｂの各々を介したシリアル通信を制御するために第１のハードディスクドライブ（ＨＤＤ＃１）１１に搭載されたＬＳＩである。インタフェース装置１１１は、２つのシリアルポート１１ａ，１１ｂに接続されている。また、インタフェース装置１１１は、パラレル−ＡＴＡ（Ｐ−ＡＴＡ）規格の内部バスを介してデータ記憶部１１２にも接続されている。
【００２５】
インタフェース装置１１１は、データ記憶部１１２とホスト装置１０との間の通信を制御する機能、および第２のハードディスクドライブ（ＨＤＤ＃２）１２との通信を制御する機能を有している。
【００２６】
Ｓ−ＡＴＡ規格に準拠した１つのシリアルポートを有する通常のハードディスクドライブに搭載されたインタフェース装置においては、シリアルポートに近いほうから、物理層（Physical Layer）ユニット、リンク層（Link Layer）ユニット、トランスポート層（Transport Layer）ユニット、コマンド層（Command Layer）ユニットを１つずつ持つ構成となっている。本実施形態においては、第１のハードディスクドライブ（ＨＤＤ＃１）１１は２つのシリアルポート１１ａ，１１ｂを備えているので、インタフェース装置１１１は、シリアルポートポート毎に、物理層（Physical Layer）ユニットおよびリンク層（Link Layer）ユニットを備えている。
【００２７】
すなわち、インタフェース装置１１１は、２つの物理層（Physical Layer）ユニット１１３ａ，１１３ｂ、２つのリンク層（Link Layer）ユニット１１４ａ，１１４ｂ、およびトランスポート＆コマンド層（Transport Layer & Command Layer）ユニット１１６を備えている。
【００２８】
物理層（Physical Layer）ユニット１１３ａおよびリンク層（Link Layer）ユニット１１４ａは、シリアルポート１１ａを介してホスト装置１０とのシリアル通信を実行する第１のシリアルインタフェースとして機能する。また、物理層（Physical Layer）ユニット１１３ｂおよびリンク層（Link Layer）ユニット１１４ｂは、シリアルポート１１ｂを介して第２のハードディスクドライブ（ＨＤＤ＃２）１２とのシリアル通信を実行する第２のシリアルインタフェースとして機能する。
【００２９】
トランスポート＆コマンド層（Transport Layer & Command Layer）ユニット１１６は第１のシリアルインタフェースを通じて、ホスト装置１０からのコマンドおよびライトデータの受信、およびホスト装置１０へのリードデータおよびレスポンスの送信を実行する。さらに、トランスポート＆コマンド層（Transport Layer & Command Layer）ユニット１１６は、第２のシリアルインタフェースを通じて、第２のハードディスクドライブ（ＨＤＤ＃２）１２へのコマンドおよびライトデータの送信、および第２のハードディスクドライブ（ＨＤＤ＃２）１２からのリードデータおよびレスポンスの受信を行う。
【００３０】
トランスポート＆コマンド層（Transport Layer & Command Layer）ユニット１１６は、制御部１１７、アービタ１１８、ＦＩＦＯバッファ１１９、およびアドレスデコーダ１２０、アドレスマップ保持部１２１等を備えている。
【００３１】
制御部１１７はトランスポート＆コマンド層（Transport Layer & Command Layer）ユニット１１６の動作を制御する。アービタ１１８は、２つのシリアルインタフェース間の調停を行う回路である。ＦＩＦＯバッファ１１９はコマンド、データ、レスポンス等を一時的に保持するバッファである。アドレスデコーダ１２０は、アドレスマップ保持部１２１に格納されているアドレスマップ情報に基づいて、ホスト装置１０からのアクセスコマンド（リード／ライトコマンド）に含まれるアドレス値が、第１のハードディスクドライブ（ＨＤＤ＃１）１１に割り当てられたアドレス範囲（具体的には、データ記憶部１１２のディスク記憶媒体１３２に割り当てられたアドレス範囲）に属するか否かを判別するためのアドレスデコード処理を実行する。アドレスデコード処理の詳細は図３、図４を参照して後述する。
【００３２】
データ記憶部１１２は、ディスク制御部１３１とディスク記憶媒体１３２等を備えている。ディスク制御部１３１は、ハードディスクコントローラ（ＨＤＣ）、マイコン、リード／ライトチャンネル等を含み、データ記憶部１１２内に設けられたヘッド、アクチュエータ、スピンドルモータなどの駆動機構を制御することによって、ディスク記憶媒体１３２へのデータの書き込みおよびディスク記憶媒体１３２からのデータの読み出しを実行する。
【００３３】
第２のハードディスクドライブ（ＨＤＤ＃２）１２も、第１のハードディスクドライブ（ＨＤＤ＃１）１１と同様に、インタフェース装置２１１とデータ記憶部２１２とから構成されている。
【００３４】
インタフェース装置２１１は、２つのシリアルポート１２ａ，１２ｂの各々を介したシリアル通信を制御するために、第２のハードディスクドライブ（ＨＤＤ＃２）１２に搭載されたＬＳＩである。インタフェース装置２１１は、２つのシリアルポート１２ａ，１２ｂに接続されている。また、インタフェース装置２１１は、パラレル−ＡＴＡ（Ｐ−ＡＴＡ）規格の内部バスを介してデータ記憶部２１２にも接続されている。
【００３５】
インタフェース装置２１１は、第２のハードディスクドライブ（ＨＤＤ＃２）１２のホストである第１のハードディスクドライブ（ＨＤＤ＃１）１１とデータ記憶部２１２との間の通信を制御する機能と、第３のハードディスクドライブとの通信を制御する機能とを有している。
【００３６】
インタフェース装置２１１は、２つの物理層（Physical Layer）ユニット２１３ａ，２１３ｂ、２つのリンク層（Link Layer）ユニット２１４ａ，２１４ｂ、およびトランスポート＆コマンド層（Transport Layer & Command Layer）ユニット２１６を備えている。
【００３７】
物理層（Physical Layer）ユニット２１３ａおよびリンク層（Link Layer）ユニット２１４ａは、シリアルポート１２ａを介して第１のハードディスクドライブ（ＨＤＤ＃１）１１とのシリアル通信を実行する第１のシリアルインタフェースとして機能する。また、物理層（Physical Layer）ユニット２１３ｂおよびリンク層（Link Layer）ユニット２１４ｂは、シリアルポート１２ｂを介して第３のハードディスクドライブとのシリアル通信を実行する第２のシリアルインタフェースとして機能する。
【００３８】
トランスポート＆コマンド層（Transport Layer & Command Layer）ユニット２１６は第１のシリアルインタフェースを通じて、第１のハードディスクドライブ（ＨＤＤ＃１）１１からのコマンドおよびライトデータの受信、および第１のハードディスクドライブ（ＨＤＤ＃１）１１へのリードデータおよびレスポンスの送信を実行する。さらに、トランスポート＆コマンド層（Transport Layer & Command Layer）ユニット２１６は、第２のシリアルインタフェースを通じて、第３のハードディスクドライブへのコマンドおよびライトデータの送信、および第３のハードディスクドライブからのリードデータおよびレスポンスの受信を行う。
【００３９】
トランスポート＆コマンド層（Transport Layer & Command Layer）ユニット２１６は、制御部２１７、アービタ２１８、ＦＩＦＯバッファ２１９、およびアドレスデコーダ２２０、アドレスマップ保持部２２１等を備えている。
【００４０】
制御部２１７はトランスポート＆コマンド層（Transport Layer & Command Layer）ユニット２１６の動作を制御する。アービタ２１８は、２つのシリアルインタフェース間の調停を行う回路である。ＦＩＦＯバッファ２１９はコマンド、データ、レスポンス等を一時的に保持するバッファである。アドレスデコーダ２２０は、アドレスマップ保持部２２１に格納されているアドレスマップ情報に基づいて、ホスト装置１０からのアクセスコマンド（リード／ライトコマンド）に含まれるアドレスが、第２のハードディスクドライブ（ＨＤＤ＃２）１２に割り当てられたアドレス範囲（具体的には、データ記憶部２１２のディスク記憶媒体２３２に割り当てられたアドレス範囲）に属するか否かを判別するためのアドレスデコード処理を実行する。
【００４１】
データ記憶部２１２は、ディスク制御部２３１とディスク記憶媒体２３２等を備えている。ディスク制御部２３１は、ハードディスクコントローラ（ＨＤＣ）、マイコン、リード／ライトチャンネル等を含み、データ記憶部２１２内に設けられたヘッド、アクチュエータ、スピンドルモータなどの駆動機構を制御することによって、ディスク記憶媒体２３２へのデータの書き込みおよびディスク記憶媒体２３２からのデータの読み出しを実行する。
【００４２】
以下、デイジーチェーン接続されたハードディスクドライの台数が２台である場合を想定して、本実施形態のシステムの動作を説明する。
【００４３】
まず、システムの電源投入時の動作について説明する。
【００４４】
システムの電源投入時においては、ハードディスクドライブ（ＨＤＤ＃１）１１およびハードディスクドライブ（ＨＤＤ＃２）１２の各々は、初期化処理の準備が完了したことをホストに知らせる。本システムにおいては、ハードディスクドライブ（ＨＤＤ＃２）１２は、初期化処理の準備が完了したことを示すステータスを、ハードディスクドライブ（ＨＤＤ＃２）１２にとってのホストであるハードディスクドライブ（ＨＤＤ＃１）１１に送信する。ハードディスクドライブ（ＨＤＤ＃２）１２は、ハードディスクドライブ（ＨＤＤ＃１）１１とハードディスクドライブ（ＨＤＤ＃２）１２の両方の初期化処理の準備が完了したところで、ホスト装置１０に初期化処理の準備が完了したことを示すステータスを送信する。
【００４５】
図２のフローチャートは、電源オン時におけるハードディスクドライブ（ＨＤＤ＃１）１１の動作を示している。
【００４６】
ハードディスクドライブ（ＨＤＤ＃１）１１のインタフェース装置１１１は、まず、ハードディスクドライブ（ＨＤＤ＃２）１２から送信される、ハードディスクドライブ（ＨＤＤ＃２）１２の初期化準備完了を示すステータスを第２のシリアルバス２を介して受信する（ステップＳ１０１）。次に、インタフェース装置１１１は、ハードディスクドライブ（ＨＤＤ＃１）１１とハードディスクドライブ（ＨＤＤ＃２）１２の両方の初期化処理の準備が完了したかどうかを判別する（ステップＳ１０２）。ハードディスクドライブ（ＨＤＤ＃１）１１とハードディスクドライブ（ＨＤＤ＃２）１２の両方の初期化処理の準備が完了したならば（ステップＳ１０２のＹＥＳ）、インタフェース装置１１１は、初期化処理の準備が完了したことを示すステータスをシリアルバス１を介してホスト装置１０に送信する（ステップＳ１０３）。
【００４７】
なお、ハードディスクドライブ（ＨＤＤ＃２）１２のシリアルポート１２ｂに第３のハードディスクドライブが接続されている場合には、ハードディスクドライブ（ＨＤＤ＃２）１２のインタフェース装置２１１は、インタフェース装置１１１と同じ処理を実行する。すなわち、インタフェース装置２１１は、ハードディスクドライブ（ＨＤＤ＃２）１２と第３のハードディスクドライブの両方の初期化処理の準備が完了したところで、ハードディスクドライブ（ＨＤＤ＃１）１１に初期化処理の準備が完了したことを示すステータスを送信する。
【００４８】
初期化処理の準備が完了したことを示すステータスをハードディスクドライブ（ＨＤＤ＃１）１１から受信した時、ホスト装置１０は、IDENTIFY DVICEコマンドを発行する。IDENTIFY DVICEコマンドは、ホスト装置１０のシリアルインタフェースに接続されたデバイスの記憶容量を確認するためのコマンドである。ハードディスクドライブ（ＨＤＤ＃１）１１はホスト装置１０から受信したIDENTIFY DVICEコマンドをデータ記憶部１１２のディスク制御部１３１に発行すると同時に、ハードディスクドライブ（ＨＤＤ＃２）１２にも発行する。このような、コマンドの転送制御を実行するのが、トランスポート＆コマンド層（Transport Layer & Command Layer）ユニット１１６である。
【００４９】
ハードディスクドライブ（ＨＤＤ＃２）１２はハードディスクドライブ（ＨＤＤ＃１）１１から発行されたIDENTIFY DVICEコマンドをあたかもホスト装置１０から発行されたものとして処理し、ハードディスクドライブ（ＨＤＤ＃２）１２の記憶容量（ディスク記憶媒体２３２の最大セクタ数）を示すレスポンスをハードディスクドライブ（ＨＤＤ＃１）１１に返す。
【００５０】
ハードディスクドライブ（ＨＤＤ＃１）は、ハードディスクドライブ（ＨＤＤ＃２）１２からのレスポンスによって、ハードディスクドライブ（ＨＤＤ＃２）１２の記憶容量を知ることができる。ハードディスクドライブ（ＨＤＤ＃１）１１は、ハードディスクドライブ（ＨＤＤ＃２）１２の記憶容量にハードディスクドライブ（ＨＤＤ＃１）１１の記憶容量（ディスク記憶媒体１３２の最大セクタ数）を加算して総記憶容量を算出し、その総記憶容量を示すレスポンスをホスト装置１０に返す。
【００５１】
このように、本実施形態においては、末端のデバイスからホストに近いデバイスに向けて記憶容量情報を順次通知していく処理が行われる。この場合、各デバイスは、下流側のデバイスから受信した記憶容量に自身の記憶容量を足した値を上流側のデバイスに通知する。これにより、ホスト装置１０は、そのホスト装置１０のシリアルインタフェースに接続された全てのデバイスの総記憶容量を、ハードディスクドライブ（ＨＤＤ＃１）１１の記憶容量として認識することができる。末端のデバイスは、２つのシリアルインタフェースを有するデバイス、または１つのシリアルインタフェースのみを有する通常のデバイスのいずれであってもよい。
【００５２】
また、ハードディスクドライブ（ＨＤＤ＃１）１１は、総記憶容量に対応するアドレス範囲の中で、ハードディスクドライブ（ＨＤＤ＃１）１１に割り当てられるべきアドレス範囲を示すアドレスマップ情報を作成する。ホスト装置１０から発行されるアクセスコマンド（リード／ライトコマンド）を受信した時、ハードディスクドライブ（ＨＤＤ＃１）１１は、アクセスコマンドに含まれるアドレス値がハードディスクドライブ（ＨＤＤ＃１）１１のアドレス範囲にヒットしていれば、アクセスコマンドをデータ記憶部１１２のディスク制御部１３１に発行し、ヒットしていなければ、ディスク制御部１３１にはアクセスコマンドを発行せず、ハードディスクドライブ（ＨＤＤ＃２）１２にアクセスコマンドを発行する。
【００５３】
このようなアクセスコマンドのデコード制御は、トランスポート＆コマンド層（Transport Layer & Command Layer）ユニット１１６に設けられたアドレスデコーダ１２０およびアドレスマップ保持部１２１を用いて実行される。
【００５４】
次に、図３のフローチャートを参照して、IDENTIFY DVICEコマンドに応答してハードディスクドライブ（ＨＤＤ＃１）１１によって実行される動作を説明する。
【００５５】
ハードディスクドライブ（ＨＤＤ＃１）１１のインタフェース装置１１１は、シリアルバス１を介してホスト装置１０から送信されるIDENTIFY DVICEコマンドを受信する（ステップＳ１１１）。インタフェース装置１１１の制御部１１７は、受信したIDENTIFY DVICEコマンドをデータ記憶部１１２のディテスク制御装置１３１に送信してIDENTIFY DVICEコマンドに対する処理をディテスク制御装置１３１に実行させると共に、受信したIDENTIFY DVICEコマンドを、シリアルバス２を介してハードディスクドライブ（ＨＤＤ＃２）１２に送信する（ステップＳ１１２）。
【００５６】
インタフェース装置１１１は、ハードディスクドライブ（ＨＤＤ＃２）１２から送信されるレスポンスをシリアルバス２を介して受信する（ステップＳ１１３）。このレスポンスには、ハードディスクドライブ（ＨＤＤ＃２）１２の記憶容量を示す情報が含まれている。インタフェース装置１１１の制御部１１７は、ハードディスクドライブ（ＨＤＤ＃２）１２から通知された記憶容量にハードディスクドライブ（ＨＤＤ＃１）１１の記憶容量を加算して総記憶容量を算出する（ステップＳ１１４）。このステップＳ１１４では、インタフェース装置１１１の制御部１１７は、総記憶容量とハードディスクドライブ（ＨＤＤ＃１）１１の記憶容量との関係に基づいて、ハードディスクドライブ（ＨＤＤ＃１）１１に割り当てるべきアドレス範囲、つまりディスク記憶媒体１３２に割り当てるべきアドレス範囲を示すアドレスマップ情報を作成する処理も実行する。このアドレスマップ情報により、総記憶容量に対応するアドレス範囲の中のどの範囲がハードディスクドライブ（ＨＤＤ＃１）１１に割り当てられているかが規定される。
【００５７】
次に、制御部１１７は、総記憶容量をIDENTIFY DVICEコマンドに対するレスポンスとして、シリアルバス１を介してホスト装置１０に送信する（ステップＳ１１５）。
【００５８】
なお、ハードディスクドライブ（ＨＤＤ＃２）１２のシリアルポート１２ｂに第３のハードディスクドライブが接続されている場合には、ハードディスクドライブ（ＨＤＤ＃２）１２のインタフェース装置２１１は、インタフェース装置１１１と同じ処理を実行する。すなわち、ハードディスクドライブ（ＨＤＤ＃１）１１からIDENTIFY DVICEコマンドを受信した時、インタフェース装置２１１は、受信したIDENTIFY DVICEコマンドをデータ記憶部２１２のディスク制御部２３１に送ると共に、受信したIDENTIFY DVICEコマンドをシリアルバス３を介して第３のハードディスクドライブに送信する。次いで、インタフェース装置２１１は、第３のハードディスクドライブからのレスポンスを受信する。このレスポンスには、第３のハードディスクドライブの記憶容量を示す情報が含まれている。インタフェース装置２１１は、第３のハードディスクドライブから通知された記憶容量にハードディスクドライブ（ＨＤＤ＃２）１２の記憶容量を加算して総記憶容量を算出し、その総記憶容量をIDENTIFY DVICEコマンドに対するレスポンスとしてハードディスクドライブ（ＨＤＤ＃１）１１に送信する。また、インタフェース装置２１１は、算出した総記憶容量とハードディスクドライブ（ＨＤＤ＃２）１２の記憶容量との関係に基づいて、ハードディスクドライブ（ＨＤＤ＃２）１２に割り当てるべきアドレス範囲、つまりディスク記憶媒体２３２に割り当てるべきアドレス範囲を示すアドレスマップ情報を作成する処理も実行する。
【００５９】
もし、第３のハードディスクドライブの下流側に第４のハードディスクドライブが接続されているならば、第３のハードディスクドライブに設けられたインタフェース装置も、インタフェース装置１１１と同じ処理を実行する。
【００６０】
したがって、ハードディスクドライブ（ＨＤＤ＃２）１２からハードディスクドライブ（ＨＤＤ＃１）１１に通知される記憶容量の値は、ハードディスクドライブ（ＨＤＤ＃２）１２自体の記憶容量を示す場合（ケース１）と、ハードディスクドライブ（ＨＤＤ＃２）１２の記憶容量にハードディスクドライブ（ＨＤＤ＃２）１２に後続する全てのデバイスそれぞれの記憶容量を加算した記憶容量を示す場合（ケース２）とがある。しかし、ケース１とケース２のいずれであるかについては、ハードディスクドライブ（ＨＤＤ＃１）１１は全く意識する必要はない。ハードディスクドライブ（ＨＤＤ＃１）１１は、ハードディスクドライブ（ＨＤＤ＃２）１２から通知された記憶容量を、ハードディスクドライブ（ＨＤＤ＃１）１１のシリアルポート１１ｂに接続された外部デバイスの記憶容量であると認識し、そして、ハードディスクドライブ（ＨＤＤ＃２）１２から通知された記憶容量とハードディスクドライブ（ＨＤＤ＃１）１１の記憶容量とを含む総記憶容量に対応する総アドレス範囲における、ハードディスクドライブ（ＨＤＤ＃１）１１に割り当てられるべきアドレス範囲を管理すればよい。
【００６１】
なお、本実施形態のシステムの最小のシステム構成は、ホスト装置１０とハードディスクドライブ（＃１）１１のみを含むシステム構成である。このシステム構成においても、シリアルポート１１ｂに、Ｓ−ＡＴＡ規格に準拠した一つのシリアルポートのみを有する通常のハードディスクを必要に応じて増設することができる。
【００６２】
次に、図４のフローチャートを参照して、ホスト装置１０からのアクセスコマンドに応答してハードディスクドライブ（ＨＤＤ＃１）１１によって実行される動作について説明する。
【００６３】
ハードディスクドライブ（ＨＤＤ＃１）１１のインタフェース装置１１１は、シリアルバス１を介してホスト装置１０から送信されるアクセスコマンド（リード／ライトコマンド）を受信する（ステップＳ１２１）。インタフェース装置１１１は、受信したアクセスコマンドに含まれるアドレス値とアドレスマップ保持部１２１に格納されているアドレスマップ情報とに基づいて、受信したアクセスコマンドに含まれるアドレス値がハードディスクドライブ（ＨＤＤ＃１）１１のアドレス範囲に属しているか否かを判別する（ステップＳ１２２）。このステップＳ１２２においては、アドレスデコーダ１２０は、受信したアクセスコマンドに含まれるアドレス値とアドレスマップ情報とを比較し、その比較結果に基づいて、アドレス値がアドレスマップ情報で指定されるアドレス範囲に属しているか否かを判別する。
【００６４】
受信したアクセスコマンドに含まれるアドレス値がハードディスクドライブ（ＨＤＤ＃１）１１のアドレス範囲に属しているならば（ステップＳ１２２のＹＥＳ）、インタフェース装置１１１の制御部１１７は、アクセスコマンドに対応するリード／ライト処理をデータ記憶部１１２に実行させるために、受信したアクセスコマンドをディスク制御部１３１に送信する（ステップＳ１２３）。
【００６５】
一方、受信したアクセスコマンドに含まれるアドレス値がハードディスクドライブ（ＨＤＤ＃１）１１のアドレス範囲に属していないならば（ステップＳ１２２のＮＯ）、インタフェース装置１１１の制御部１１７は、受信したアクセスコマンドをシリアルバス２を介してハードディスクドライブ（ＨＤＤ＃２）１２に送信する（ステップＳ１２３）。ステップＳ１２３では、制御部１１７は、必要に応じて、受信したアクセスコマンドに含まれるアドレス値をハードディスクドライブ（ＨＤＤ＃１）１１の記憶容量に基づいて更新する処理も実行する。この場合、その更新されたアドレス値を含むアクセスコマンドがシリアルバス２を介してハードディスクドライブ（ＨＤＤ＃２）１２に送信される。アドレス更新処理では、例えば、アクセスコマンドに含まれるアドレス値から、ハードディスクドライブ（ＨＤＤ＃１）１１の記憶容量が減算され、その減算結果が更新されたアドレス値として算出される。もしアクセスコマンドが、ライトデータが付随するライトコマンドであれば、インタフェース装置１１１は、ライトデータもシリアルバス２を介してハードディスクドライブ（ＨＤＤ＃２）１２に送信する。
【００６６】
アクセスコマンドを受信すると、ハードディスクドライブ（ＨＤＤ＃２）１２は、そのアクセスコマンドに応じてディスク記憶媒体２３２に対するリード／ライト処理を実行する。もし、アクセスコマンドがリードコマンドであれば、ハードディスクドライブ（ＨＤＤ＃２）１２は、ディスク記憶媒体２３２から読み出したリードデータをシリアルバス２を介してハードディスクドライブ（ＨＤＤ＃１）１１に送信する。ハードディスクドライブ（ＨＤＤ＃１）１１は、ハードディスクドライブ（ＨＤＤ＃２）１２から受信したリードデータを、シリアルバス１を介してホスト装置１０に送信する。
【００６７】
なお、ハードディスクドライブ（ＨＤＤ＃２）１２のシリアルポート１２ｂに第３のハードディスクドライブが接続されている場合には、ハードディスクドライブ（ＨＤＤ＃２）１２のインタフェース装置２１１は、インタフェース装置１１１と同じ処理を実行する。すなわち、ハードディスクドライブ（ＨＤＤ＃１）１１からアクセスコマンドを受信した時、インタフェース装置２１１は、アクセスコマンドに含まれるアドレス値とアドレスマップ保持部２２１に格納されているアドレスマップ情報とに基づいて、アクセスコマンドに含まれるアドレス値がハードディスクドライブ（ＨＤＤ＃２）１２に割り当てられたアドレス範囲に属するか否かを判別する。属するならば、リード／ライト処理を実行し、属さないならば、アクセスコマンドをシリアルバス３を介して第３のハードディスクドライブに送信する。この場合、インタフェース装置２１１は、インタフェース装置１１１と同様に、必要に応じてアドレス更新処理を実行する。アドレス更新処理では、アクセスコマンドに含まれるアドレス値がハードディスクドライブ（ＨＤＤ＃２）１２の記憶容量に基づいて更新される。具体的には、例えば、アクセスコマンドに含まれるアドレス値から、ハードディスクドライブ（ＨＤＤ＃２）１２の記憶容量を減算する処理等が実行される。そして、更新されたアドレス値を含むアクセスコマンドがシリアルバス３を介して第３のハードディスクドライブに送信される。
【００６８】
以上の処理により、ホスト装置１０は、デイジーチェーン接続されたハードディスクドライブ群を一つの記憶装置として扱うことができるので、デイジーチェーン接続されたハードディスクドライブ群の各々を区別することなく、それらハードディスクドライブ群をアクセスすることが可能となる。したがって、Ｓ−ＡＴＡのようなシリアルインタフェース規格との互換性を損なうことなく、ホスト装置１０が一つのシリアルインタフェースを介して複数のデバイスをアクセスすることが可能になる。また、ユーザは、必要に応じて、新たなハードディスクドライブを容易に増設することができる。この場合、新たなハードディスクドライブは、必ずしも、本実施形態のインタフェース装置を備えたハードディスクドライブである必要はなく、Ｓ−ＡＴＡ規格に準拠した通常のハードディスクドライブであってもよい。ユーザは、ハードディスクドライブ（＃１）１１のシリアルポート１１ｂにＳ−ＡＴＡ規格に準拠した通常のハードディスクドライブを接続することで、容易に記憶容量の拡張を実現することができる。
【００６９】
ホスト装置１０から発行されるコマンドの種類は、アクセスコマンド（リードコマンド、ライトコマンド）と、それ以外のコマンドとに分類される。インタフェース装置１１１は、ホスト装置１０から受信したコマンドがアクセスコマンドであれば図４で説明した処理を実行し、アクセスコマンド以外のコマンドであれば、受信したコマンドをデータ記憶部１１２に送信すると共に、その受信したコマンドをハードディスクドライブ（＃２）１２に送信する。ハードディスクドライブ（＃２）１２のインタフェース装置２１１も、受信したコマンドがアクセスコマンドであれば図４で説明した処理を実行し、アクセスコマンド以外のコマンドであれば、受信したコマンドをデータ記憶部２１２に送信すると共に、その受信したコマンドを第３のハードディスクドライブに送信する。
【００７０】
次に、図５および図６を参照して、ハードディスクドライブ（ＨＤＤ＃１）１１およびハードディスクドライブ（ＨＤＤ＃２）１２の記憶容量がそれぞれ４０ＧＢである場合におけるアドレスマップ情報の例について説明する。
【００７１】
ハードディスクドライブ（ＨＤＤ＃２）１２の制御部２１７には容量通知部３０２が設けられている。ハードディスクドライブ（ＨＤＤ＃１）１１からIDENTIFY DVICEコマンドを受信した時、容量通知部３０２は、ハードディスクドライブ（ＨＤＤ＃２）１２の記憶容量（４０ＧＢ）をハードディスクドライブ（ＨＤＤ＃１）１１に通知する。ハードディスクドライブ（ＨＤＤ＃１）１１の制御部１１７も容量通知部３０１を備えている。容量通知部３０１は、ハードディスクドライブ（ＨＤＤ＃２）１２から通知された記憶容量（４０ＧＢ）とハードディスクドライブ（ＨＤＤ＃１）１１の記憶容量（４０ＧＢ）とを足した総記憶容量（８０ＧＢ）をホスト装置１０に通知する。
【００７２】
この場合、総記憶容量（８０ＧＢ）とハードディスクドライブ（ＨＤＤ＃１）１１の記憶容量（４０ＧＢ）との関係に基づいて、ハードディスクドライブ（ＨＤＤ＃１）１１においては、例えば図６に示すようなアドレスマップ情報が作成される。
【００７３】
ホスト装置１０からのアクセスコマンドで指定されるアドレス値が、８０ＧＢのアドレス範囲の内の前半の４０ＧＢの範囲に属するならば、ハードディスクドライブ（ＨＤＤ＃１）１１のリード／ライト処理が実行される。
【００７４】
一方、ホスト装置１０からのアクセスコマンドで指定されるアドレス値が、８０ＧＢのアドレス範囲の内の後半の４０ＧＢの範囲に属するならば、ホスト装置１０からのアクセスコマンドはハードディスクドライブ（ＨＤＤ＃１）１１からハードディスクドライブ（ＨＤＤ＃２）１２に送られる。この場合、ハードディスクドライブ（ＨＤＤ＃１）１１では、アクセスコマンドで指定されるアドレス値から４ＯＧＢを減算することによって、アドレス値を更新する処理が実行される。
【００７５】
なお、総記憶容量（８０ＧＢ）に対応するアドレス範囲の内の後半の４０ＧＢにハードディスクドライブ（ＨＤＤ＃１）１１のアドレス範囲を割り当ててもよい。
【００７６】
この場合、ホスト装置１０からのアクセスコマンドで指定されるアドレス値が８０ＧＢのアドレス範囲の内の後半の４０ＧＢの範囲に属するならば、ハードディスクドライブ（ＨＤＤ＃１）１１のリード／ライト処理が実行される。インタフェース装置１１１は、アクセスコマンドで指定されるアドレス値から、ハードディスクドライブ（ＨＤＤ＃２）１２から通知された記憶容量（ここでは４０ＧＢ）を減算してアドレス値を更新し、その更新されたアドレス値を含むアクセスコマンドをデータ記憶部１１２に送信する。一方、ホスト装置１０からのアクセスコマンドで指定されるアドレス値が８０ＧＢのアドレス範囲の内の前半の４０ＧＢの範囲に属するならば、ホスト装置１０からのアクセスコマンドはハードディスクドライブ（ＨＤＤ＃１）１１からハードディスクドライブ（ＨＤＤ＃２）１２に送られる。この場合、アドレス更新処理を実行する不要はない。
【００７７】
なお、本実施形態では、ホスト装置１０からIDENTIFY DVICEコマンドを受信した時に、ハードディスクドライブ（ＨＤＤ＃１）１１がハードディスクドライブ（ＨＤＤ＃２）１２に対してIDENTIFY DVICEコマンドを発行したが、例えば、システムの電源投入時に、ハードディスクドライブ（ＨＤＤ＃１）１１がハードディスクドライブ（ＨＤＤ＃２）１２に対してIDENTIFY DVICEコマンドを自動的に発行するようにしてもよい。この場合、ホスト装置１０からIDENTIFY DVICEコマンドを受信した時に、ハードディスクドライブ（ＨＤＤ＃１）１１は、総記憶容量を直ちにホスト装置１０に通知することができる。
【００７８】
また本実施形態では、２つのシリアルポートを有する記憶装置としてハードディスクドライブを例示して説明したが、ＤＶＤドライブやメモリカード等の記憶装置であってもよい。
【００７９】
図７には、本実施形態のシステム構成の他の例が示されている。
【００８０】
図７のシステムにおいては、ＴＶ受像機４００と、複数のハードディスクドライブ５０−１〜５０−ｎと、ＤＶＤドライブ６０とから構成されている。ハードディスクドライブ５０−１〜５０−ｎおよびＤＶＤドライブ６０は幾つかのシリアルバスによってデイジーチェーン接続されている。ＴＶ受像機４００は、そのＴＶ受像機４００に設けられた一つのシリアルインタフェースを介して、ハードディスクドライブ５０−１〜５０−ｎおよびＤＶＤドライブ６０をアクセスすることができる。
【００８１】
図８は、本実施形態のインタフェース装置の他の例が示されている。
【００８２】
図８に示されているように、インタフェース装置１１１，２１１の各々においては、リンク層ユニットが２つのシリアルポート間で共通に利用されている。すなわち、インタフェース装置１１１においては、２つの物理層ユニット１１３ａ，１１３ｂと１つのリンク層ユニット１１５とによって、シリアルポート１１ａ，１１ｂに対応する２つのシリアルインタフェースが実現されている。また、インタフェース装置２１１においては、２つの物理層ユニット２１３ａ，２１３ｂと１つのリンク層ユニット２１５とによって、シリアルポート１２ａ，１２ｂに対応する２つのシリアルインタフェースが実現されている。
【００８３】
このように、一つのリンク層ユニットを２つのシリアルポート間で共通に利用することにより、インタフェース装置の回路規模を小さくすることができる。このようにリンク層ユニットを１つにするためには、Ｓ−ＡＴＡ規格で定義されたステートマシンとは異なった制御が必要になってくるが、シリアルポートの外部からは、Ｓ−ＡＴＡ規格どおりに動作しているように見えるように設計することは可能である。例えば、２つのシリアルポートの内のどちらかがデータ送信中は、もう1方のシリアルポートからの転送要求のプリミティブ（プリミティブは最小データ転送単位である）の受信をウェイトさせるなどの技術を利用すればよい。
【００８４】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００８５】
【図１】本発明の一実施形態に係るインタフェース装置を搭載した記憶装置を含むシステムの構成を示すブロック図。
【図２】同実施形態のインタフェース装置がその電源オン時に実行する動作を説明するフローチャート。
【図３】同実施形態のインタフェース装置がホストからのIDENTYFY DEVICEコマンドに応答して実行する動作を説明するフローチャート。
【図４】同実施形態のインタフェース装置がホストからのアクセスコマンドに応答して実行する動作を説明するフローチャート。
【図５】図１のシステムにおいてIDENTYFY DEVICEコマンドに応答して実行される動作を示す図。
【図６】図１のシステムで用いられるアドレスマップ情報の例を示す図。
【図７】図１のシステムの変形例を示す図。
【図８】同実施形態のインタフェース装置の他の構成を示すブロック図。
【符号の説明】
【００８６】
１，２，３…シリアルバス（シリアルケーブル）、１０…ホスト装置、１１，１２…ハードディスクドライブ（記憶装置）、１１ａ，１１ｂ，１２ａ，１２ｂ…シリアルポート、１１１，２１１…インタフェース装置、１１２，２１２…データ記憶部、１１３ａ，１１３ｂ，２１３ａ，２１３ｂ…物理層ユニット、１１４ａ，１１４ｂ，２１４ａ，２１４ｂ…リンク層ユニット、１１６，２１６…トランスポート＆コマンド層ユニット、１２０，２２０…アドレスデコーダ、１２１，２２１…アドレスマップ保持部、３０１，３０２…容量通知部。
【図１】
2007004707.tif 000003
【図２】
2007004707.tif 000004
【図３】
2007004707.tif 000005
【図４】
2007004707.tif 000006
【図５】
2007004707.tif 000007
【図６】
2007004707.tif 000008
【図７】
2007004707.tif 000009
【図８】
2007004707.tif 000010