米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 株式会社東芝

発明の名称 インタフェース装置、記憶装置、制御方法、及びシステム
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−4707(P2007−4707A)
公開日 平成19年1月11日(2007.1.11)
出願番号 特願2005−186948(P2005−186948)
出願日 平成17年6月27日(2005.6.27)
代理人 【識別番号】100058479
【弁理士】
【氏名又は名称】鈴江 武彦
発明者 牧 夕子
要約 課題
ホスト装置が一つのシリアルインタフェースを介して複数のデバイスをアクセスすることが可能なインタフェース装置を実現する。

解決手段
インタフェース装置111は、シリアルバス2を介してハードディスクドライブ12から通知される記憶容量にハードディスクドライブ11の記憶容量を加算することによって得られる総記憶容量を、シリアルバス1を介してホスト装置10に通知する。インタフェース装置111は、総記憶容量とハードディスクドライブ11の記憶容量との関係に基づいて、ハードディスクドライブ11に割り当てるべきアドレス範囲を示すアドレスマップ情報を作成する。インタフェース装置111は、ホスト装置10からのアクセスコマンドで指定されるアドレス値がハードディスクドライブ11に属するか否かに応じて、アクセスコマンドをデータ記憶部112またはハードディスクドライブ12に発行する。
特許請求の範囲
【請求項1】
記憶装置に搭載可能に構成され、前記記憶装置とホスト装置との間の通信を制御するインタフェース装置であって、
前記ホスト装置との通信を実行する第1のシリアルインタフェースと、
外部デバイスとの通信を実行する第2のシリアルインタフェースと、
前記第2のシリアルインタフェースを介して前記外部デバイスから通知される前記外部デバイスの記憶容量に前記記憶装置の記憶容量を加算して総記憶容量を算出し、当該総記憶容量を前記第1のシリアルインタフェースを介して前記ホスト装置に通知する記憶容量通知手段と、
前記総記憶容量と前記記憶装置の記憶容量との関係に基づいて算出される、前記記憶装置に割り当てるべきアドレス範囲を示すアドレスマップ情報を保持するアドレスマップ保持手段と、
前記ホスト装置から送信されるアクセスコマンドが前記第1のシリアルインタフェースによって受信された場合、前記アクセスコマンドに含まれるアドレス値と前記アドレスマップ情報とに基づいて、前記アドレス値が前記アドレス範囲に属するか否かを判別するアドレスデコード手段と、
前記アドレス値が前記アドレス範囲に属する場合、前記アクセスコマンドを前記記憶装置内のデータ記憶部に送信し、前記アドレス値が前記アドレス範囲に属さない場合、前記アクセスコマンドを前記第2のシリアルインタフェースを介して前記外部デバイスに送信する制御手段とを具備することを特徴とするインタフェース装置。
【請求項2】
前記制御手段は、前記アドレス値が前記アドレス範囲に属さない場合、前記アドレス値を前記データ記憶部の記憶容量に基づいて更新し、当該更新されたアドレス値を含む前記アクセスコマンドを前記第2のシリアルインタフェースを介して前記外部デバイスに送信することを特徴とする請求項1記載のインタフェース装置。
【請求項3】
前記ホスト装置から送信される、前記アクセスコマンド以外のコマンドが前記第1のシリアルインタフェースによって受信された場合、前記受信されたコマンドを前記データ記憶部に送信すると共に、前記受信されたコマンドを前記第2のシリアルインタフェースを介して前記外部デバイスに送信する手段をさらに具備することを特徴とする請求項1記載のインタフェース装置。
【請求項4】
前記第1のシリアルインタフェースは第1のシリアルバスを介して前記ホスト装置に接続されており、前記第2のシリアルインタフェースは第2のシリアルバスを介して前記外部デバイスに接続されていることを特徴とする請求項1記載のインタフェース装置。
【請求項5】
記憶メディアにデータを格納する記憶装置であって、
ホスト装置との通信を実行する第1のシリアルインタフェースと、
外部デバイスとの通信を実行する第2のシリアルインタフェースと、
前記第2のシリアルインタフェースを介して前記外部デバイスから通知される前記外部デバイスの記憶容量に前記記憶メディアの記憶容量を加算して総記憶容量を算出し、当該総記憶容量を前記第1のシリアルインタフェースを介して前記ホスト装置に通知する記憶容量通知手段と、
前記総記憶容量と前記記憶メディアの記憶容量との関係に基づいて算出される、前記記憶装置に割り当てるべきアドレス範囲を示すアドレスマップ情報を保持するアドレスマップ保持手段と、
前記ホスト装置から送信されるアクセスコマンドが前記第1のシリアルインタフェースによって受信された場合、前記アクセスコマンドに含まれるアドレス値と前記アドレスマップ情報とに基づいて、前記アドレス値が前記アドレス範囲に属するか否かを判別するアドレスデコード手段と、
前記アドレス値が前記アドレス範囲に属する場合、前記アクセスコマンドに従って前記記憶メディアをリード/ライトアクセスし、前記アドレス値が前記アドレス範囲に属さない場合、前記アクセスコマンドを前記第2のシリアルインタフェースを介して前記外部デバイスに送信する制御手段とを具備することを特徴とする記憶装置。
【請求項6】
前記制御手段は、前記アドレス値が前記アドレス範囲に属さない場合、前記記憶メディアの記憶容量に基づいて前記アドレス値を更新し、当該更新されたアドレス値を含む前記アクセスコマンドを前記第2のシリアルインタフェースを介して前記外部デバイスに送信することを特徴とする請求項5記載の記憶装置。
【請求項7】
前記ホスト装置から送信される、前記アクセスコマンド以外のコマンドが前記第1のシリアルインタフェースによって受信された場合、前記受信されたコマンドに対応する処理を実行すると共に、前記受信されたコマンドを前記第2のシリアルインタフェースを介して前記外部デバイスに送信する手段をさらに具備することを特徴とする請求項5記載の記憶装置。
【請求項8】
記憶メディアにデータを格納する記憶装置の動作を制御する制御方法であって、前記記憶装置は第1のシリアルバスを介してホスト装置に接続され、且つ第2のシリアルバスを介して外部デバイスに接続されており、
前記第2のシリアルバスを介して前記外部デバイスから通知される前記外部デバイスの記憶容量に前記記憶メディアの記憶容量を加算して総記憶容量を算出し、当該総記憶容量を前記第1のシリアルバスを介して前記ホスト装置に通知するステップと、
前記総記憶容量と前記記憶メディアの記憶容量との関係に基づいて、前記記憶装置に割り当てるべきアドレス範囲を示すアドレスマップ情報を作成するステップと、
前記第1のシリアルバスを介して前記ホスト装置から送信されるアクセスコマンドに含まれるアドレス値と前記アドレスマップ情報とに基づいて、前記アドレス値が前記アドレス範囲に属するか否かを判別するステップと、
前記アドレス値が前記アドレス範囲に属する場合、前記アクセスコマンドに従って前記記憶メディアをリード/ライトアクセスするステップと、
前記アドレス値が前記アドレス範囲に属さない場合、前記アクセスコマンドを前記第2のシリアルバスを介して前記外部デバイスに送信するステップとを具備することを特徴とする制御方法。
【請求項9】
前記アクセスコマンドを前記外部デバイスに送信するステップは、前記記憶メディアの記憶容量に基づいて前記アドレス値を更新し、当該更新されたアドレス値を含む前記アクセスコマンドを前記第2のシリアルバスを介して前記外部デバイスに送信することを特徴とする請求項8記載の制御方法。
【請求項10】
前記第1のシリアルバスを介して前記ホスト装置から前記アクセスコマンド以外のコマンドを受信した場合、前記受信されたコマンドを前記第2のシリアルバスを介して前記外部デバイスに送信するステップをさらに具備することを特徴とする請求項8記載の制御方法。
【請求項11】
ホスト装置と、前記ホスト装置に第1のシリアルバスを介して接続された第1の記憶装置と、前記第1の記憶装置に第2のシリアルバスを介して接続された第2の記憶装置とを含むシステムであって、
前記第1の記憶装置は、
前記第2のシリアルバスを介して前記第2の記憶装置から通知される前記第2の記憶装置の記憶容量に前記第1の記憶装置の記憶容量を加算して総記憶容量を算出し、当該総記憶容量を前記第1のシリアルバスを介して前記ホスト装置に通知する手段と、
前記総記憶容量と前記第1の記憶装置の記憶容量との関係に基づいて算出される、前記第1の記憶装置に割り当てるべきアドレス範囲を示すアドレスマップ情報を保持するアドレスマップ保持手段と、
前記第1のシリアルバスを介して前記ホスト装置から送信されるアクセスコマンドに含まれるアドレス値と前記アドレスマップ情報とに基づいて、前記アドレス値が前記アドレス範囲に属するか否かを判別するアドレスデコード手段と、
前記アドレス値が前記アドレス範囲に属する場合、前記アクセスコマンドに従って前記第1の記憶装置内の記憶メディアをリード/ライトアクセスし、前記アドレス値が前記アドレス範囲に属さない場合、前記アクセスコマンドを前記第2のシリアルバスを介して前記第2の記憶装置に送信する制御手段とを具備することを特徴とするシステム。
発明の詳細な説明
【技術分野】
【0001】
本発明は、シリアルインタフェースを介してホスト装置との間の通信を制御するインタフェース装置およびこのインタフェース装置を備えた記憶装置に関する。
【背景技術】
【0002】
近年、様々なストレージシステムが開発されている。
【0003】
特許文献1には、n個のディスクドライブを備えたディスクサブシステムが開示されている。このディスクサブシステムにおいては、中間制御装置とn個のディスクドライブは、制御情報信号ラインによってデイジーチェーン接続されている。
【0004】
また、特許文献2には、SCSI(Small Computer System Interface)バスを介してデイジーチェーン接続された複数のハードディスクドライブを含むディスクアレイが開示されている。
【0005】
ところで、近年では、シリアル−ATA(ATA:AT Attachment)規格に準拠したシリアルインタフェースを有するデバイスが開発されている。従来のパラレル−ATA(ATA:AT Attachment)規格では、多数の信号線を含むパラレルバス(パラレルケーブル)が用いられている。これに対し、シリアル−ATA規格ではシリアルバス(シリアルケーブル)が利用されている。
【0006】
シリアル−ATA規格に準拠したシリアルインタフェースを有するデバイスは、シリアルバスを介してホスト装置にポイントツーポイントで接続される。このため、ホスト装置に接続可能なデバイスの台数は、ホスト装置が有するシリアルインタフェースの数と同数となる。
【特許文献1】特開平8−16320号公報
【特許文献2】特開平10−269024号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかし、もしホスト装置が有するシリアルインタフェースが1つだけならば、ホスト装置に接続可能なデバイスの台数は1台のみに制限されてしまう。
【0008】
したがって、たとえホスト装置が有するシリアルインタフェースが1つだけであっても、ホスト装置がその一つのシリアルインタフェースを介して複数のデバイスをアクセスできるようにするための新たな機能を実現することが必要となる。これにより、ハードディスクドライブのようなデバイスの増設を容易に実現することが可能となる。
【0009】
しかし、この場合、シリアル−ATA規格との互換性を維持するために、ホスト装置との通信に関するインタフェース仕様を変更することは避けなくてはならない。
【0010】
シリアル−ATA規格においては、上述したように、ホスト装置とデバイスとがシリアルバスを介してポイントツーポイント形式で接続されることを前提としている。このため、ホスト装置からは、そのホスト装置のシリアルインタフェースに接続されたデバイスの数は常に1台として認識されるような仕組みが必要である。
【0011】
本発明は上述の事情を考慮してなされたものであり、ホスト装置が一つのシリアルインタフェースを介して複数のデバイスをアクセスすることが可能なインタフェース装置、記憶装置、制御方法およびシステムを提供することを目的とする。
【課題を解決するための手段】
【0012】
上述の課題を解決するため、本発明は、記憶装置に搭載可能に構成され、前記記憶装置とホスト装置との間の通信を制御するインタフェース装置であって、前記ホスト装置との通信を実行する第1のシリアルインタフェースと、外部デバイスとの通信を実行する第2のシリアルインタフェースと、前記第2のシリアルインタフェースを介して前記外部デバイスから通知される前記外部デバイスの記憶容量に前記記憶装置の記憶容量を加算して総記憶容量を算出し、当該総記憶容量を前記第1のシリアルインタフェースを介して前記ホスト装置に通知する記憶容量通知手段と、前記総記憶容量と前記記憶装置の記憶容量との関係に基づいて算出される、前記記憶装置に割り当てるべきアドレス範囲を示すアドレスマップ情報を保持するアドレスマップ保持手段と、前記ホスト装置から送信されるアクセスコマンドが前記第1のシリアルインタフェースによって受信された場合、前記アクセスコマンドに含まれるアドレス値と前記アドレスマップ情報とに基づいて、前記アドレス値が前記アドレス範囲に属するか否かを判別するアドレスデコード手段と、前記アドレス値が前記アドレス範囲に属する場合、前記アクセスコマンドを前記記憶装置内のデータ記憶部に送信し、前記アドレス値が前記アドレス範囲に属さない場合、前記アクセスコマンドを前記第2のシリアルインタフェースを介して前記外部デバイスに送信する制御手段とを具備することを特徴とする。
【発明の効果】
【0013】
本発明によれば、ホスト装置が一つのシリアルインタフェースを介して複数のデバイスをアクセスすることが可能となる。
【発明を実施するための最良の形態】
【0014】
以下、図面を参照して、本発明の実施形態を説明する。
図1には、本発明の一実施形態に係るインタフェース装置をそれぞれ搭載した複数の記憶装置を含むシステムの構成が示されている。
【0015】
このシステムは、例えば、コンピュータ、ビデオレコーダ等として機能する。このシステムは、ホスト装置10と、複数のハードディスクドライブ11,12,…とから構成されている。これらハードディスクドライブ11,12,…はシリアル−ATA(以下、S−ATAと称する)規格に準拠した幾つかのシリアルバスによってデイジーチェーン接続されている。
【0016】
第1のハードディスクドライブ(HDD#1)11はデータを記憶する記憶装置であり、2つのシリアルポート11a,11bを有している。シリアルポート11aは、ホスト装置側、つまりデイジーチェーンの上流側のデバイスに接続するためのコネクタであり、またシリアルポート11bは、外部デバイス側、つまりデイジーチェーンの下流側のデバイスに接続するためのコネクタである。
【0017】
同様に、第2のハードディスクドライブ(HDD#2)12もデータを記憶する記憶装置であり、2つのシリアルポート12a,12bを有している。シリアルポート12aはデイジーチェーンの上流側のデバイスに接続するためのコネクタであり、またシリアルポート12bは下流側のデバイスに接続するためのコネクタである。
【0018】
第1のハードディスクドライブ(HDD#1)11のシリアルポート11aは、S−ATA規格に準拠したシリアルバス(シリアルケーブル)1を介してホスト装置10に接続されている。シリアルバス1は、2組の差動信号線対を含んでいる。一方の差動信号線対は第1のハードディスクドライブ(HDD#1)11からホスト装置10へのデータ伝送に用いられ、他方の差動信号線対はホスト装置10から第1のハードディスクドライブ(HDD#1)11へのデータ伝送に用いられる。
【0019】
ホスト装置10は、コンピュータ本体またはビデオレコーダ本体内に設けられた、ホストコントローラによって構成されている。ホストコントローラはS−ATA規格に準拠したコントローラであり、シリアルバス1に接続された記憶装置を制御する。
【0020】
第1のハードディスクドライブ(HDD#1)11のシリアルポート11bは、S−ATA規格に準拠したシリアルバス(シリアルケーブル)2を介して第2のハードディスクドライブ(HDD#2)12のシリアルポート12aに接続されている。シリアルバス2も、2組の差動信号線対を含んでいる。一方の差動信号線対は第2のハードディスクドライブ(HDD#2)12から第1のハードディスクドライブ(HDD#1)11へのデータ伝送に用いられ、他方の差動信号線対は第1のハードディスクドライブ(HDD#1)11から第2のハードディスクドライブ(HDD#2)12へのデータ伝送に用いられる。
【0021】
第2のハードディスクドライブ(HDD#2)12のシリアルポート12bは、必要に応じて、S−ATA規格に準拠したシリアルバス(シリアルケーブル)3を介して図示しない第3のハードディスクドライブのシリアルポートに接続される。なお、デイジーチェーンの末端のハードディスクドライブは、必ずしも2つのシリアルポートを持つ必要はない。換言すれば、末端のハードディスクドライブは、S−ATA規格に準拠した一つのシリアルポートを有する通常のデバイスであればよい。
【0022】
第2のハードディスクドライブ(HDD#2)12からは、第1のハードディスクドライブ(HDD#1)11が第2のハードディスクドライブ(HDD#2)12にとってのホスト装置として認識される。同様に、第3のハードディスクドライブからは、第2のハードディスクドライブ(HDD#2)12が第3のハードディスクドライブにとってのホスト装置として認識される。
【0023】
第1のハードディスクドライブ(HDD#1)11は、インタフェース装置111とデータ記憶部112とから構成されている。
【0024】
インタフェース装置111は、2つのシリアルポート11a,11bの各々を介したシリアル通信を制御するために第1のハードディスクドライブ(HDD#1)11に搭載されたLSIである。インタフェース装置111は、2つのシリアルポート11a,11bに接続されている。また、インタフェース装置111は、パラレル−ATA(P−ATA)規格の内部バスを介してデータ記憶部112にも接続されている。
【0025】
インタフェース装置111は、データ記憶部112とホスト装置10との間の通信を制御する機能、および第2のハードディスクドライブ(HDD#2)12との通信を制御する機能を有している。
【0026】
S−ATA規格に準拠した1つのシリアルポートを有する通常のハードディスクドライブに搭載されたインタフェース装置においては、シリアルポートに近いほうから、物理層(Physical Layer)ユニット、リンク層(Link Layer)ユニット、トランスポート層(Transport Layer)ユニット、コマンド層(Command Layer)ユニットを1つずつ持つ構成となっている。本実施形態においては、第1のハードディスクドライブ(HDD#1)11は2つのシリアルポート11a,11bを備えているので、インタフェース装置111は、シリアルポートポート毎に、物理層(Physical Layer)ユニットおよびリンク層(Link Layer)ユニットを備えている。
【0027】
すなわち、インタフェース装置111は、2つの物理層(Physical Layer)ユニット113a,113b、2つのリンク層(Link Layer)ユニット114a,114b、およびトランスポート&コマンド層(Transport Layer & Command Layer)ユニット116を備えている。
【0028】
物理層(Physical Layer)ユニット113aおよびリンク層(Link Layer)ユニット114aは、シリアルポート11aを介してホスト装置10とのシリアル通信を実行する第1のシリアルインタフェースとして機能する。また、物理層(Physical Layer)ユニット113bおよびリンク層(Link Layer)ユニット114bは、シリアルポート11bを介して第2のハードディスクドライブ(HDD#2)12とのシリアル通信を実行する第2のシリアルインタフェースとして機能する。
【0029】
トランスポート&コマンド層(Transport Layer & Command Layer)ユニット116は第1のシリアルインタフェースを通じて、ホスト装置10からのコマンドおよびライトデータの受信、およびホスト装置10へのリードデータおよびレスポンスの送信を実行する。さらに、トランスポート&コマンド層(Transport Layer & Command Layer)ユニット116は、第2のシリアルインタフェースを通じて、第2のハードディスクドライブ(HDD#2)12へのコマンドおよびライトデータの送信、および第2のハードディスクドライブ(HDD#2)12からのリードデータおよびレスポンスの受信を行う。
【0030】
トランスポート&コマンド層(Transport Layer & Command Layer)ユニット116は、制御部117、アービタ118、FIFOバッファ119、およびアドレスデコーダ120、アドレスマップ保持部121等を備えている。
【0031】
制御部117はトランスポート&コマンド層(Transport Layer & Command Layer)ユニット116の動作を制御する。アービタ118は、2つのシリアルインタフェース間の調停を行う回路である。FIFOバッファ119はコマンド、データ、レスポンス等を一時的に保持するバッファである。アドレスデコーダ120は、アドレスマップ保持部121に格納されているアドレスマップ情報に基づいて、ホスト装置10からのアクセスコマンド(リード/ライトコマンド)に含まれるアドレス値が、第1のハードディスクドライブ(HDD#1)11に割り当てられたアドレス範囲(具体的には、データ記憶部112のディスク記憶媒体132に割り当てられたアドレス範囲)に属するか否かを判別するためのアドレスデコード処理を実行する。アドレスデコード処理の詳細は図3、図4を参照して後述する。
【0032】
データ記憶部112は、ディスク制御部131とディスク記憶媒体132等を備えている。ディスク制御部131は、ハードディスクコントローラ(HDC)、マイコン、リード/ライトチャンネル等を含み、データ記憶部112内に設けられたヘッド、アクチュエータ、スピンドルモータなどの駆動機構を制御することによって、ディスク記憶媒体132へのデータの書き込みおよびディスク記憶媒体132からのデータの読み出しを実行する。
【0033】
第2のハードディスクドライブ(HDD#2)12も、第1のハードディスクドライブ(HDD#1)11と同様に、インタフェース装置211とデータ記憶部212とから構成されている。
【0034】
インタフェース装置211は、2つのシリアルポート12a,12bの各々を介したシリアル通信を制御するために、第2のハードディスクドライブ(HDD#2)12に搭載されたLSIである。インタフェース装置211は、2つのシリアルポート12a,12bに接続されている。また、インタフェース装置211は、パラレル−ATA(P−ATA)規格の内部バスを介してデータ記憶部212にも接続されている。
【0035】
インタフェース装置211は、第2のハードディスクドライブ(HDD#2)12のホストである第1のハードディスクドライブ(HDD#1)11とデータ記憶部212との間の通信を制御する機能と、第3のハードディスクドライブとの通信を制御する機能とを有している。
【0036】
インタフェース装置211は、2つの物理層(Physical Layer)ユニット213a,213b、2つのリンク層(Link Layer)ユニット214a,214b、およびトランスポート&コマンド層(Transport Layer & Command Layer)ユニット216を備えている。
【0037】
物理層(Physical Layer)ユニット213aおよびリンク層(Link Layer)ユニット214aは、シリアルポート12aを介して第1のハードディスクドライブ(HDD#1)11とのシリアル通信を実行する第1のシリアルインタフェースとして機能する。また、物理層(Physical Layer)ユニット213bおよびリンク層(Link Layer)ユニット214bは、シリアルポート12bを介して第3のハードディスクドライブとのシリアル通信を実行する第2のシリアルインタフェースとして機能する。
【0038】
トランスポート&コマンド層(Transport Layer & Command Layer)ユニット216は第1のシリアルインタフェースを通じて、第1のハードディスクドライブ(HDD#1)11からのコマンドおよびライトデータの受信、および第1のハードディスクドライブ(HDD#1)11へのリードデータおよびレスポンスの送信を実行する。さらに、トランスポート&コマンド層(Transport Layer & Command Layer)ユニット216は、第2のシリアルインタフェースを通じて、第3のハードディスクドライブへのコマンドおよびライトデータの送信、および第3のハードディスクドライブからのリードデータおよびレスポンスの受信を行う。
【0039】
トランスポート&コマンド層(Transport Layer & Command Layer)ユニット216は、制御部217、アービタ218、FIFOバッファ219、およびアドレスデコーダ220、アドレスマップ保持部221等を備えている。
【0040】
制御部217はトランスポート&コマンド層(Transport Layer & Command Layer)ユニット216の動作を制御する。アービタ218は、2つのシリアルインタフェース間の調停を行う回路である。FIFOバッファ219はコマンド、データ、レスポンス等を一時的に保持するバッファである。アドレスデコーダ220は、アドレスマップ保持部221に格納されているアドレスマップ情報に基づいて、ホスト装置10からのアクセスコマンド(リード/ライトコマンド)に含まれるアドレスが、第2のハードディスクドライブ(HDD#2)12に割り当てられたアドレス範囲(具体的には、データ記憶部212のディスク記憶媒体232に割り当てられたアドレス範囲)に属するか否かを判別するためのアドレスデコード処理を実行する。
【0041】
データ記憶部212は、ディスク制御部231とディスク記憶媒体232等を備えている。ディスク制御部231は、ハードディスクコントローラ(HDC)、マイコン、リード/ライトチャンネル等を含み、データ記憶部212内に設けられたヘッド、アクチュエータ、スピンドルモータなどの駆動機構を制御することによって、ディスク記憶媒体232へのデータの書き込みおよびディスク記憶媒体232からのデータの読み出しを実行する。
【0042】
以下、デイジーチェーン接続されたハードディスクドライの台数が2台である場合を想定して、本実施形態のシステムの動作を説明する。
【0043】
まず、システムの電源投入時の動作について説明する。
【0044】
システムの電源投入時においては、ハードディスクドライブ(HDD#1)11およびハードディスクドライブ(HDD#2)12の各々は、初期化処理の準備が完了したことをホストに知らせる。本システムにおいては、ハードディスクドライブ(HDD#2)12は、初期化処理の準備が完了したことを示すステータスを、ハードディスクドライブ(HDD#2)12にとってのホストであるハードディスクドライブ(HDD#1)11に送信する。ハードディスクドライブ(HDD#2)12は、ハードディスクドライブ(HDD#1)11とハードディスクドライブ(HDD#2)12の両方の初期化処理の準備が完了したところで、ホスト装置10に初期化処理の準備が完了したことを示すステータスを送信する。
【0045】
図2のフローチャートは、電源オン時におけるハードディスクドライブ(HDD#1)11の動作を示している。
【0046】
ハードディスクドライブ(HDD#1)11のインタフェース装置111は、まず、ハードディスクドライブ(HDD#2)12から送信される、ハードディスクドライブ(HDD#2)12の初期化準備完了を示すステータスを第2のシリアルバス2を介して受信する(ステップS101)。次に、インタフェース装置111は、ハードディスクドライブ(HDD#1)11とハードディスクドライブ(HDD#2)12の両方の初期化処理の準備が完了したかどうかを判別する(ステップS102)。ハードディスクドライブ(HDD#1)11とハードディスクドライブ(HDD#2)12の両方の初期化処理の準備が完了したならば(ステップS102のYES)、インタフェース装置111は、初期化処理の準備が完了したことを示すステータスをシリアルバス1を介してホスト装置10に送信する(ステップS103)。
【0047】
なお、ハードディスクドライブ(HDD#2)12のシリアルポート12bに第3のハードディスクドライブが接続されている場合には、ハードディスクドライブ(HDD#2)12のインタフェース装置211は、インタフェース装置111と同じ処理を実行する。すなわち、インタフェース装置211は、ハードディスクドライブ(HDD#2)12と第3のハードディスクドライブの両方の初期化処理の準備が完了したところで、ハードディスクドライブ(HDD#1)11に初期化処理の準備が完了したことを示すステータスを送信する。
【0048】
初期化処理の準備が完了したことを示すステータスをハードディスクドライブ(HDD#1)11から受信した時、ホスト装置10は、IDENTIFY DVICEコマンドを発行する。IDENTIFY DVICEコマンドは、ホスト装置10のシリアルインタフェースに接続されたデバイスの記憶容量を確認するためのコマンドである。ハードディスクドライブ(HDD#1)11はホスト装置10から受信したIDENTIFY DVICEコマンドをデータ記憶部112のディスク制御部131に発行すると同時に、ハードディスクドライブ(HDD#2)12にも発行する。このような、コマンドの転送制御を実行するのが、トランスポート&コマンド層(Transport Layer & Command Layer)ユニット116である。
【0049】
ハードディスクドライブ(HDD#2)12はハードディスクドライブ(HDD#1)11から発行されたIDENTIFY DVICEコマンドをあたかもホスト装置10から発行されたものとして処理し、ハードディスクドライブ(HDD#2)12の記憶容量(ディスク記憶媒体232の最大セクタ数)を示すレスポンスをハードディスクドライブ(HDD#1)11に返す。
【0050】
ハードディスクドライブ(HDD#1)は、ハードディスクドライブ(HDD#2)12からのレスポンスによって、ハードディスクドライブ(HDD#2)12の記憶容量を知ることができる。ハードディスクドライブ(HDD#1)11は、ハードディスクドライブ(HDD#2)12の記憶容量にハードディスクドライブ(HDD#1)11の記憶容量(ディスク記憶媒体132の最大セクタ数)を加算して総記憶容量を算出し、その総記憶容量を示すレスポンスをホスト装置10に返す。
【0051】
このように、本実施形態においては、末端のデバイスからホストに近いデバイスに向けて記憶容量情報を順次通知していく処理が行われる。この場合、各デバイスは、下流側のデバイスから受信した記憶容量に自身の記憶容量を足した値を上流側のデバイスに通知する。これにより、ホスト装置10は、そのホスト装置10のシリアルインタフェースに接続された全てのデバイスの総記憶容量を、ハードディスクドライブ(HDD#1)11の記憶容量として認識することができる。末端のデバイスは、2つのシリアルインタフェースを有するデバイス、または1つのシリアルインタフェースのみを有する通常のデバイスのいずれであってもよい。
【0052】
また、ハードディスクドライブ(HDD#1)11は、総記憶容量に対応するアドレス範囲の中で、ハードディスクドライブ(HDD#1)11に割り当てられるべきアドレス範囲を示すアドレスマップ情報を作成する。ホスト装置10から発行されるアクセスコマンド(リード/ライトコマンド)を受信した時、ハードディスクドライブ(HDD#1)11は、アクセスコマンドに含まれるアドレス値がハードディスクドライブ(HDD#1)11のアドレス範囲にヒットしていれば、アクセスコマンドをデータ記憶部112のディスク制御部131に発行し、ヒットしていなければ、ディスク制御部131にはアクセスコマンドを発行せず、ハードディスクドライブ(HDD#2)12にアクセスコマンドを発行する。
【0053】
このようなアクセスコマンドのデコード制御は、トランスポート&コマンド層(Transport Layer & Command Layer)ユニット116に設けられたアドレスデコーダ120およびアドレスマップ保持部121を用いて実行される。
【0054】
次に、図3のフローチャートを参照して、IDENTIFY DVICEコマンドに応答してハードディスクドライブ(HDD#1)11によって実行される動作を説明する。
【0055】
ハードディスクドライブ(HDD#1)11のインタフェース装置111は、シリアルバス1を介してホスト装置10から送信されるIDENTIFY DVICEコマンドを受信する(ステップS111)。インタフェース装置111の制御部117は、受信したIDENTIFY DVICEコマンドをデータ記憶部112のディテスク制御装置131に送信してIDENTIFY DVICEコマンドに対する処理をディテスク制御装置131に実行させると共に、受信したIDENTIFY DVICEコマンドを、シリアルバス2を介してハードディスクドライブ(HDD#2)12に送信する(ステップS112)。
【0056】
インタフェース装置111は、ハードディスクドライブ(HDD#2)12から送信されるレスポンスをシリアルバス2を介して受信する(ステップS113)。このレスポンスには、ハードディスクドライブ(HDD#2)12の記憶容量を示す情報が含まれている。インタフェース装置111の制御部117は、ハードディスクドライブ(HDD#2)12から通知された記憶容量にハードディスクドライブ(HDD#1)11の記憶容量を加算して総記憶容量を算出する(ステップS114)。このステップS114では、インタフェース装置111の制御部117は、総記憶容量とハードディスクドライブ(HDD#1)11の記憶容量との関係に基づいて、ハードディスクドライブ(HDD#1)11に割り当てるべきアドレス範囲、つまりディスク記憶媒体132に割り当てるべきアドレス範囲を示すアドレスマップ情報を作成する処理も実行する。このアドレスマップ情報により、総記憶容量に対応するアドレス範囲の中のどの範囲がハードディスクドライブ(HDD#1)11に割り当てられているかが規定される。
【0057】
次に、制御部117は、総記憶容量をIDENTIFY DVICEコマンドに対するレスポンスとして、シリアルバス1を介してホスト装置10に送信する(ステップS115)。
【0058】
なお、ハードディスクドライブ(HDD#2)12のシリアルポート12bに第3のハードディスクドライブが接続されている場合には、ハードディスクドライブ(HDD#2)12のインタフェース装置211は、インタフェース装置111と同じ処理を実行する。すなわち、ハードディスクドライブ(HDD#1)11からIDENTIFY DVICEコマンドを受信した時、インタフェース装置211は、受信したIDENTIFY DVICEコマンドをデータ記憶部212のディスク制御部231に送ると共に、受信したIDENTIFY DVICEコマンドをシリアルバス3を介して第3のハードディスクドライブに送信する。次いで、インタフェース装置211は、第3のハードディスクドライブからのレスポンスを受信する。このレスポンスには、第3のハードディスクドライブの記憶容量を示す情報が含まれている。インタフェース装置211は、第3のハードディスクドライブから通知された記憶容量にハードディスクドライブ(HDD#2)12の記憶容量を加算して総記憶容量を算出し、その総記憶容量をIDENTIFY DVICEコマンドに対するレスポンスとしてハードディスクドライブ(HDD#1)11に送信する。また、インタフェース装置211は、算出した総記憶容量とハードディスクドライブ(HDD#2)12の記憶容量との関係に基づいて、ハードディスクドライブ(HDD#2)12に割り当てるべきアドレス範囲、つまりディスク記憶媒体232に割り当てるべきアドレス範囲を示すアドレスマップ情報を作成する処理も実行する。
【0059】
もし、第3のハードディスクドライブの下流側に第4のハードディスクドライブが接続されているならば、第3のハードディスクドライブに設けられたインタフェース装置も、インタフェース装置111と同じ処理を実行する。
【0060】
したがって、ハードディスクドライブ(HDD#2)12からハードディスクドライブ(HDD#1)11に通知される記憶容量の値は、ハードディスクドライブ(HDD#2)12自体の記憶容量を示す場合(ケース1)と、ハードディスクドライブ(HDD#2)12の記憶容量にハードディスクドライブ(HDD#2)12に後続する全てのデバイスそれぞれの記憶容量を加算した記憶容量を示す場合(ケース2)とがある。しかし、ケース1とケース2のいずれであるかについては、ハードディスクドライブ(HDD#1)11は全く意識する必要はない。ハードディスクドライブ(HDD#1)11は、ハードディスクドライブ(HDD#2)12から通知された記憶容量を、ハードディスクドライブ(HDD#1)11のシリアルポート11bに接続された外部デバイスの記憶容量であると認識し、そして、ハードディスクドライブ(HDD#2)12から通知された記憶容量とハードディスクドライブ(HDD#1)11の記憶容量とを含む総記憶容量に対応する総アドレス範囲における、ハードディスクドライブ(HDD#1)11に割り当てられるべきアドレス範囲を管理すればよい。
【0061】
なお、本実施形態のシステムの最小のシステム構成は、ホスト装置10とハードディスクドライブ(#1)11のみを含むシステム構成である。このシステム構成においても、シリアルポート11bに、S−ATA規格に準拠した一つのシリアルポートのみを有する通常のハードディスクを必要に応じて増設することができる。
【0062】
次に、図4のフローチャートを参照して、ホスト装置10からのアクセスコマンドに応答してハードディスクドライブ(HDD#1)11によって実行される動作について説明する。
【0063】
ハードディスクドライブ(HDD#1)11のインタフェース装置111は、シリアルバス1を介してホスト装置10から送信されるアクセスコマンド(リード/ライトコマンド)を受信する(ステップS121)。インタフェース装置111は、受信したアクセスコマンドに含まれるアドレス値とアドレスマップ保持部121に格納されているアドレスマップ情報とに基づいて、受信したアクセスコマンドに含まれるアドレス値がハードディスクドライブ(HDD#1)11のアドレス範囲に属しているか否かを判別する(ステップS122)。このステップS122においては、アドレスデコーダ120は、受信したアクセスコマンドに含まれるアドレス値とアドレスマップ情報とを比較し、その比較結果に基づいて、アドレス値がアドレスマップ情報で指定されるアドレス範囲に属しているか否かを判別する。
【0064】
受信したアクセスコマンドに含まれるアドレス値がハードディスクドライブ(HDD#1)11のアドレス範囲に属しているならば(ステップS122のYES)、インタフェース装置111の制御部117は、アクセスコマンドに対応するリード/ライト処理をデータ記憶部112に実行させるために、受信したアクセスコマンドをディスク制御部131に送信する(ステップS123)。
【0065】
一方、受信したアクセスコマンドに含まれるアドレス値がハードディスクドライブ(HDD#1)11のアドレス範囲に属していないならば(ステップS122のNO)、インタフェース装置111の制御部117は、受信したアクセスコマンドをシリアルバス2を介してハードディスクドライブ(HDD#2)12に送信する(ステップS123)。ステップS123では、制御部117は、必要に応じて、受信したアクセスコマンドに含まれるアドレス値をハードディスクドライブ(HDD#1)11の記憶容量に基づいて更新する処理も実行する。この場合、その更新されたアドレス値を含むアクセスコマンドがシリアルバス2を介してハードディスクドライブ(HDD#2)12に送信される。アドレス更新処理では、例えば、アクセスコマンドに含まれるアドレス値から、ハードディスクドライブ(HDD#1)11の記憶容量が減算され、その減算結果が更新されたアドレス値として算出される。もしアクセスコマンドが、ライトデータが付随するライトコマンドであれば、インタフェース装置111は、ライトデータもシリアルバス2を介してハードディスクドライブ(HDD#2)12に送信する。
【0066】
アクセスコマンドを受信すると、ハードディスクドライブ(HDD#2)12は、そのアクセスコマンドに応じてディスク記憶媒体232に対するリード/ライト処理を実行する。もし、アクセスコマンドがリードコマンドであれば、ハードディスクドライブ(HDD#2)12は、ディスク記憶媒体232から読み出したリードデータをシリアルバス2を介してハードディスクドライブ(HDD#1)11に送信する。ハードディスクドライブ(HDD#1)11は、ハードディスクドライブ(HDD#2)12から受信したリードデータを、シリアルバス1を介してホスト装置10に送信する。
【0067】
なお、ハードディスクドライブ(HDD#2)12のシリアルポート12bに第3のハードディスクドライブが接続されている場合には、ハードディスクドライブ(HDD#2)12のインタフェース装置211は、インタフェース装置111と同じ処理を実行する。すなわち、ハードディスクドライブ(HDD#1)11からアクセスコマンドを受信した時、インタフェース装置211は、アクセスコマンドに含まれるアドレス値とアドレスマップ保持部221に格納されているアドレスマップ情報とに基づいて、アクセスコマンドに含まれるアドレス値がハードディスクドライブ(HDD#2)12に割り当てられたアドレス範囲に属するか否かを判別する。属するならば、リード/ライト処理を実行し、属さないならば、アクセスコマンドをシリアルバス3を介して第3のハードディスクドライブに送信する。この場合、インタフェース装置211は、インタフェース装置111と同様に、必要に応じてアドレス更新処理を実行する。アドレス更新処理では、アクセスコマンドに含まれるアドレス値がハードディスクドライブ(HDD#2)12の記憶容量に基づいて更新される。具体的には、例えば、アクセスコマンドに含まれるアドレス値から、ハードディスクドライブ(HDD#2)12の記憶容量を減算する処理等が実行される。そして、更新されたアドレス値を含むアクセスコマンドがシリアルバス3を介して第3のハードディスクドライブに送信される。
【0068】
以上の処理により、ホスト装置10は、デイジーチェーン接続されたハードディスクドライブ群を一つの記憶装置として扱うことができるので、デイジーチェーン接続されたハードディスクドライブ群の各々を区別することなく、それらハードディスクドライブ群をアクセスすることが可能となる。したがって、S−ATAのようなシリアルインタフェース規格との互換性を損なうことなく、ホスト装置10が一つのシリアルインタフェースを介して複数のデバイスをアクセスすることが可能になる。また、ユーザは、必要に応じて、新たなハードディスクドライブを容易に増設することができる。この場合、新たなハードディスクドライブは、必ずしも、本実施形態のインタフェース装置を備えたハードディスクドライブである必要はなく、S−ATA規格に準拠した通常のハードディスクドライブであってもよい。ユーザは、ハードディスクドライブ(#1)11のシリアルポート11bにS−ATA規格に準拠した通常のハードディスクドライブを接続することで、容易に記憶容量の拡張を実現することができる。
【0069】
ホスト装置10から発行されるコマンドの種類は、アクセスコマンド(リードコマンド、ライトコマンド)と、それ以外のコマンドとに分類される。インタフェース装置111は、ホスト装置10から受信したコマンドがアクセスコマンドであれば図4で説明した処理を実行し、アクセスコマンド以外のコマンドであれば、受信したコマンドをデータ記憶部112に送信すると共に、その受信したコマンドをハードディスクドライブ(#2)12に送信する。ハードディスクドライブ(#2)12のインタフェース装置211も、受信したコマンドがアクセスコマンドであれば図4で説明した処理を実行し、アクセスコマンド以外のコマンドであれば、受信したコマンドをデータ記憶部212に送信すると共に、その受信したコマンドを第3のハードディスクドライブに送信する。
【0070】
次に、図5および図6を参照して、ハードディスクドライブ(HDD#1)11およびハードディスクドライブ(HDD#2)12の記憶容量がそれぞれ40GBである場合におけるアドレスマップ情報の例について説明する。
【0071】
ハードディスクドライブ(HDD#2)12の制御部217には容量通知部302が設けられている。ハードディスクドライブ(HDD#1)11からIDENTIFY DVICEコマンドを受信した時、容量通知部302は、ハードディスクドライブ(HDD#2)12の記憶容量(40GB)をハードディスクドライブ(HDD#1)11に通知する。ハードディスクドライブ(HDD#1)11の制御部117も容量通知部301を備えている。容量通知部301は、ハードディスクドライブ(HDD#2)12から通知された記憶容量(40GB)とハードディスクドライブ(HDD#1)11の記憶容量(40GB)とを足した総記憶容量(80GB)をホスト装置10に通知する。
【0072】
この場合、総記憶容量(80GB)とハードディスクドライブ(HDD#1)11の記憶容量(40GB)との関係に基づいて、ハードディスクドライブ(HDD#1)11においては、例えば図6に示すようなアドレスマップ情報が作成される。
【0073】
ホスト装置10からのアクセスコマンドで指定されるアドレス値が、80GBのアドレス範囲の内の前半の40GBの範囲に属するならば、ハードディスクドライブ(HDD#1)11のリード/ライト処理が実行される。
【0074】
一方、ホスト装置10からのアクセスコマンドで指定されるアドレス値が、80GBのアドレス範囲の内の後半の40GBの範囲に属するならば、ホスト装置10からのアクセスコマンドはハードディスクドライブ(HDD#1)11からハードディスクドライブ(HDD#2)12に送られる。この場合、ハードディスクドライブ(HDD#1)11では、アクセスコマンドで指定されるアドレス値から4OGBを減算することによって、アドレス値を更新する処理が実行される。
【0075】
なお、総記憶容量(80GB)に対応するアドレス範囲の内の後半の40GBにハードディスクドライブ(HDD#1)11のアドレス範囲を割り当ててもよい。
【0076】
この場合、ホスト装置10からのアクセスコマンドで指定されるアドレス値が80GBのアドレス範囲の内の後半の40GBの範囲に属するならば、ハードディスクドライブ(HDD#1)11のリード/ライト処理が実行される。インタフェース装置111は、アクセスコマンドで指定されるアドレス値から、ハードディスクドライブ(HDD#2)12から通知された記憶容量(ここでは40GB)を減算してアドレス値を更新し、その更新されたアドレス値を含むアクセスコマンドをデータ記憶部112に送信する。一方、ホスト装置10からのアクセスコマンドで指定されるアドレス値が80GBのアドレス範囲の内の前半の40GBの範囲に属するならば、ホスト装置10からのアクセスコマンドはハードディスクドライブ(HDD#1)11からハードディスクドライブ(HDD#2)12に送られる。この場合、アドレス更新処理を実行する不要はない。
【0077】
なお、本実施形態では、ホスト装置10からIDENTIFY DVICEコマンドを受信した時に、ハードディスクドライブ(HDD#1)11がハードディスクドライブ(HDD#2)12に対してIDENTIFY DVICEコマンドを発行したが、例えば、システムの電源投入時に、ハードディスクドライブ(HDD#1)11がハードディスクドライブ(HDD#2)12に対してIDENTIFY DVICEコマンドを自動的に発行するようにしてもよい。この場合、ホスト装置10からIDENTIFY DVICEコマンドを受信した時に、ハードディスクドライブ(HDD#1)11は、総記憶容量を直ちにホスト装置10に通知することができる。
【0078】
また本実施形態では、2つのシリアルポートを有する記憶装置としてハードディスクドライブを例示して説明したが、DVDドライブやメモリカード等の記憶装置であってもよい。
【0079】
図7には、本実施形態のシステム構成の他の例が示されている。
【0080】
図7のシステムにおいては、TV受像機400と、複数のハードディスクドライブ50−1〜50−nと、DVDドライブ60とから構成されている。ハードディスクドライブ50−1〜50−nおよびDVDドライブ60は幾つかのシリアルバスによってデイジーチェーン接続されている。TV受像機400は、そのTV受像機400に設けられた一つのシリアルインタフェースを介して、ハードディスクドライブ50−1〜50−nおよびDVDドライブ60をアクセスすることができる。
【0081】
図8は、本実施形態のインタフェース装置の他の例が示されている。
【0082】
図8に示されているように、インタフェース装置111,211の各々においては、リンク層ユニットが2つのシリアルポート間で共通に利用されている。すなわち、インタフェース装置111においては、2つの物理層ユニット113a,113bと1つのリンク層ユニット115とによって、シリアルポート11a,11bに対応する2つのシリアルインタフェースが実現されている。また、インタフェース装置211においては、2つの物理層ユニット213a,213bと1つのリンク層ユニット215とによって、シリアルポート12a,12bに対応する2つのシリアルインタフェースが実現されている。
【0083】
このように、一つのリンク層ユニットを2つのシリアルポート間で共通に利用することにより、インタフェース装置の回路規模を小さくすることができる。このようにリンク層ユニットを1つにするためには、S−ATA規格で定義されたステートマシンとは異なった制御が必要になってくるが、シリアルポートの外部からは、S−ATA規格どおりに動作しているように見えるように設計することは可能である。例えば、2つのシリアルポートの内のどちらかがデータ送信中は、もう1方のシリアルポートからの転送要求のプリミティブ(プリミティブは最小データ転送単位である)の受信をウェイトさせるなどの技術を利用すればよい。
【0084】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0085】
【図1】本発明の一実施形態に係るインタフェース装置を搭載した記憶装置を含むシステムの構成を示すブロック図。
【図2】同実施形態のインタフェース装置がその電源オン時に実行する動作を説明するフローチャート。
【図3】同実施形態のインタフェース装置がホストからのIDENTYFY DEVICEコマンドに応答して実行する動作を説明するフローチャート。
【図4】同実施形態のインタフェース装置がホストからのアクセスコマンドに応答して実行する動作を説明するフローチャート。
【図5】図1のシステムにおいてIDENTYFY DEVICEコマンドに応答して実行される動作を示す図。
【図6】図1のシステムで用いられるアドレスマップ情報の例を示す図。
【図7】図1のシステムの変形例を示す図。
【図8】同実施形態のインタフェース装置の他の構成を示すブロック図。
【符号の説明】
【0086】
1,2,3…シリアルバス(シリアルケーブル)、10…ホスト装置、11,12…ハードディスクドライブ(記憶装置)、11a,11b,12a,12b…シリアルポート、111,211…インタフェース装置、112,212…データ記憶部、113a,113b,213a,213b…物理層ユニット、114a,114b,214a,214b…リンク層ユニット、116,216…トランスポート&コマンド層ユニット、120,220…アドレスデコーダ、121,221…アドレスマップ保持部、301,302…容量通知部。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013