(57)【要約】【課題】複数のディスク型記憶装置を連携させて動作させる場合において、夫々のディスク型記憶装置の回転を同期させることなく、回転待ち時間をそろえてアクセス時間を短縮すること。【解決手段】複数のＨＤＤ１、２における記憶媒体であるディスクの回転位相差を測定する応答時間測定部５と、ＨＤＤ１、２におけるアクセス対象のアドレスの指定を受け付ける制御コマンド判別部６２と、測定された回転位相差に相当するＨＤＤ１、２におけるアドレスのオフセット量を算出し、算出したオフセット量に基づき、指定されたアクセス対象のアドレスを変換するセクタアドレス演算部６３とを含むことを特徴とする。【選択図】図５
2015005178.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスク型記憶装置を連携させて制御する記憶媒体制御装置であって、
前記複数のディスク型記憶装置における記憶媒体であるディスクの回転位相差を測定する位相差測定部と、
測定された回転位相差に相当する前記ディスク型記憶装置におけるアドレスのオフセット量を算出するアドレスオフセット量算出部と、
前記ディスク型記憶装置におけるアクセス対象のアドレスの指定を受け付けるアドレス指定受付部と、
算出された前記アドレスオフセット量に基づき、指定された前記アクセス対象のアドレスを変換するアドレス変換部とを含むことを特徴とする記憶媒体制御装置。
【請求項２】
前記位相差測定部は、前記複数のディスク型記憶装置夫々から同一セクタをリードし、リード完了までに要した時間の差分に基づいて前記ディスクの回転位相差を測定することを特徴とする請求項１に記載の記憶媒体制御装置。
【請求項３】
前記アドレス変換部は、指定された前記アクセス対象のアドレスが、前記ディスク型記憶装置におけるアドレスのうち変換対象として定められたアドレス範囲に含まれる場合にのみ、前記アドレスオフセット量に基づき、指定された前記アクセス対象のアドレスを変換することを特徴とする請求項１または２に記載の記憶媒体制御装置。
【請求項４】
前記アドレス変換部は、
指定された前記アクセス対象のアドレスを示す信号及び変換されたアドレスのいずれかを出力するセレクタと、
前記変換対象として定められたアドレス範囲を記憶する変換対象アドレス範囲記憶部と、
指定された前記アクセス対象のアドレスが前記定められたアドレス範囲に含まれる場合、前記セレクタの出力を前記変換されたアドレスに切り替えるセレクタ制御部とを含むことを特徴とする請求項３に記載の記憶媒体制御装置。
【請求項５】
測定された前記回転位相差を記憶する回転位相差記憶部を含み、
前記アドレスオフセット量算出部は、記憶された前記回転位相差に基づいて前記オフセット量を算出することを特徴とする請求項１乃至４いずれか１項に記載の記憶媒体制御装置。
【請求項６】
前記アドレス変換部は、指定された前記アクセス対象のアドレスが、前記ディスク型記憶装置におけるアドレスのうち変換対象として定められたアドレス範囲に含まれる場合にのみ、前記アドレスオフセット量に基づき、指定された前記アクセス対象のアドレスを変換し、
前記位相差測定部は、前記変換対象として定められたアドレス範囲以外のアドレス範囲のリードの際に前記ディスクの回転位相差を測定して、測定した回転位相差を前記回転位相差記憶部に記憶させることを特徴とする請求項５に記載の記憶媒体制御装置。
【請求項７】
前記ディスク型記憶装置におけるアドレスのうち変換対象として定められたアドレス範囲であって、異なる複数のアドレス範囲夫々に対応した複数の前記回転位相差記憶部を含み、
前記位相差測定部は、前記異なる複数のアドレス範囲毎に前記ディスクの回転位相差を測定し、測定した前記回転位相差を前記異なる複数のアドレス範囲毎に対応する前記回転位相差記憶部に記憶させることを特徴とする請求項１乃至６いずれか１項に記載の記憶媒体制御装置。
【請求項８】
請求項１乃至７いずれか１項に記載の記憶媒体制御装置を含むことを特徴とするディスク型記憶装置。
【請求項９】
複数のディスク型記憶装置を連携させて制御する記憶媒体制御方法であって、
前記複数のディスク型記憶装置における記憶媒体であるディスクの回転位相差を測定し、
測定された回転位相差に相当する前記ディスク型記憶装置におけるアドレスのオフセット量を算出し、
前記ディスク型記憶装置におけるアクセス対象のアドレスの指定を受け付け、
算出された前記アドレスオフセット量に基づき、指定された前記アクセス対象のアドレスを変換することを特徴とする記憶媒体制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体制御装置、ディスク型記憶装置及び記憶媒体の制御方法に関し、特に、複数の記憶媒体を連携させて動作させる場合の制御に関する。
【背景技術】
【０００２】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）のような磁気ディスク記憶装置の小型化、低価格化により、複数台を連携させて動作させるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）技術が用いられることが一般的になっている。ＲＡＩＤによれば、例えば、１つのデータ分散して複数台の装置に格納することにより、データの書き込み及び読出しに要する時間を短縮することや、１つのデータを複数台の装置に夫々格納することにより、データ損失のリスクを低減することが可能となる。
【０００３】
このような複数台の磁気ディスク装置を連携させる場合において、夫々の装置における回転待ち時間が異なるために、性能が発揮されないという問題がある。このような課題を解決するための技術として、複数のＨＤＤを同期回転させる方法が提案されている（例えば、特許文献１参照）。また、夫々の装置における転送要求のタイミングをずらし、転送要求の衝突を防ぐために、回転を同期させたうえでデータの格納位置を装置毎にずらす方法が提案されている（例えば、特許文献２参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１、２いずれの技術も、夫々の装置における磁気ディスクの回転同期をとることが前提となっている。そのため、回転同期の機能が搭載されていない磁気ディスク装置には適用することができない。尚、このような課題は磁気ディスク装置に限らず、ディスク型の記憶媒体を用いる記憶装置であれば同様に問題となり得る。
【０００５】
本発明は、このような課題を解決するためになされたものであり、複数のディスク型記憶装置を連携させて動作させる場合において、夫々のディスク型記憶装置の回転を同期させることなく、回転待ち時間をそろえてアクセス時間を短縮することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の一態様は、複数のディスク型記憶装置を連携させて制御する記憶媒体制御装置であって、前記複数のディスク型記憶装置における記憶媒体であるディスクの回転位相差を測定する位相差測定部と、測定された回転位相差に相当する前記ディスク型記憶装置におけるアドレスのオフセット量を算出するアドレスオフセット量算出部と、前記ディスク型記憶装置におけるアクセス対象のアドレスの指定を受け付けるアドレス指定受付部と、算出された前記アドレスオフセット量に基づき、指定された前記アクセス対象のアドレスを変換するアドレス変換部とを含むことを特徴とする。
【０００７】
また、本発明の他の態様は、ディスク型記憶装置であって、上述した記憶媒体制御装置を含むことを特徴とする。
【０００８】
また、本発明の更に他の態様は、複数のディスク型記憶装置を連携させて制御する記憶媒体制御方法であって、前記複数のディスク型記憶装置における記憶媒体であるディスクの回転位相差を測定し、測定された回転位相差に相当する前記ディスク型記憶装置におけるアドレスのオフセット量を算出し、前記ディスク型記憶装置におけるアクセス対象のアドレスの指定を受け付け、算出された前記アドレスオフセット量に基づき、指定された前記アクセス対象のアドレスを変換することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複数のディスク型記憶装置を連携させて動作させる場合において、夫々のディスク型記憶装置の回転を同期させることなく、回転待ち時間をそろえてアクセス時間を短縮することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る記憶媒体制御装置の構成を示すブロック図である。
【図２】本発明の実施形態に係る記憶媒体のトラック、セクタ構成を示す図である。
【図３】本発明の実施形態に係る２つのＨＤＤへのデータの分散態様を示す図である。
【図４】本発明の実施形態に係る回転位相差の測定態様を示す図である。
【図５】本発明の実施形態に係るセクタアドレス変換部の機能構成を示すブロック図である。
【図６】本発明の実施形態に係る２つのＨＤＤにおけるアドレス位置の例を示す図である。
【図７】本発明の他の実施形態に係るＨＤＤにおけるバッファ領域の態様を示す図である。
【図８】本発明の他の実施形態に係るセクタアドレス変換部の機能構成を示すブロック図である。
【図９】本発明の他の実施形態に係る変換対象範囲レジスタの設定例を示す図である。
【図１０】本発明の他の実施形態に係るバッファ領域の判別態様を示す図である。
【発明を実施するための形態】
【００１１】
実施の形態１．
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、２台のＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を連携させて動作させる記憶媒体制御装置を例として説明する。
【００１２】
図１は、本実施形態に係る記憶媒体制御装置を含む電子機器の全体構成を示すブロック図である。図１に示すように、本実施形態に係る記憶媒体制御装置１００を含む電子機器は、ＨＤＤ１、ＨＤＤ２、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）制御部３、ＳＡＴＡ制御部４、応答時間差計測部５、セクタアドレス変換部６、ＳＡＴＡ制御コマンド発行部７、データ整形部８、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）９、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１を含む。
【００１３】
ＨＤＤ１及びＨＤＤ２は、夫々磁気ディスクを記憶媒体として用いるディスク型記憶装置であり、各種プログラム、データを分散記憶するＳＡＴＡ規格準拠の同型のハードディスクドライブのペアである。即ち、本実施形態においては、ＨＤＤ１及びＨＤＤ２が、連携して動作するディスク型記憶装置として用いられる。データの分散配置については後に詳述する。
【００１４】
ＳＡＴＡ制御部３は、ＳＡＴＡ制御コマンド発行部７が発行するコマンドに従がってＨＤＤ１に対して制御コマンドを発行し、データのリード／ライトを実行する。ＨＤＤ１へのデータライトの際、ＳＡＴＡ制御部３は、データ整形部８が出力する３２ｂｉｔ幅データをシリアル化して、ＨＤＤ１へ送信する。また、ＨＤＤ１からのデータリードの際、ＳＡＴＡ制御部３は、ＨＤＤ１が出力するデータを受信し、３２ｂｉｔ幅に変換してデータ整形部８へ送信する。リード／ライトが完了すると、ＳＡＴＡ制御部３は転送完了信号をアサートする。
【００１５】
ＳＡＴＡ制御部４は、ＳＡＴＡ制御コマンド発行部７が発行するコマンドを、セクタアドレス変換部６経由で受信すると、このコマンドに従ってＨＤＤ２に対して制御コマンドを発行し、データのリード／ライトを実行する。ＨＤＤ２へのデータライトの際、ＳＡＴＡ制御部４は、データ整形部８が出力する３２ｂｉｔ幅データをシリアル化して、ＨＤＤ２へ送信する。また、ＨＤＤ２からのデータリードの際、ＳＡＴＡ制御部４は、ＨＤＤ２が出力するデータを受信し、３２ｂｉｔ幅に変換してデータ整形部８へ送信する。リード／ライトが完了すると、ＳＡＴＡ制御部４転送完了信号をアサートする。
【００１６】
応答時間差計測部５は、ＳＡＴＡ制御コマンド発行部７が出力するコマンド発行タイミング信号を受信すると、タイミングカウント動作を開始し、ＳＡＴＡ制御部３からの転送完了信号がアサートされたタイミングと、ＳＡＴＡ制御部４からの転送完了信号がアサートされたタイミングとの時間差を計測し、応答時間差をセクタアドレス変換部６へ送信する。即ち、応答時間差計測部５が、位相差測定部として機能する。
【００１７】
セクタアドレス変換部６は、ＳＡＴＡ制御コマンド発行部７が出力するＳＡＴＡ制御部４用のコマンド、即ち、ＨＤＤ２のための制御コマンドを受信し、受信コマンドが、データを読み出す範囲やデータを書き込む範囲、即ち、リード／ライト対象セクタアドレスを設定するコマンドの場合であって、且つ、予め設定されている変換対象のセクタアドレス範囲の場合に、設定に従ってセクタアドレスを変換し、変換後コマンドをＳＡＴＡ制御部４へ送信する。
【００１８】
セクタアドレスの変換は、応答時間差計測部５の出力する応答時間差と、ＣＰＵ１０が設定する変換パラメータを基に実行する。受信コマンドが、リード／ライト対象セクタアドレスを設定するコマンドではない場合、または、変換対象のセクタアドレス範囲外の場合には、受信コマンドを加工することなく、そのままＳＡＴＡ制御部４へ送信する。
【００１９】
ＳＡＴＡ制御コマンド発行部７は、ＣＰＵ１０からの制御命令を受信し、ＨＤＤ１及びＨＤＤ２夫々のための制御コマンドを発行する。ＨＤＤ１のための制御コマンドは、ＳＡＴＡ制御部３に入力され、ＨＤＤ２のための制御コマンドはセクタアドレス変換部６を経てＳＡＴＡ制御部４に入力される。ＣＰＵ１０からのデータリード／ライト指令を受信した場合には、リード／ライトの開始契機となるコマンドを、ＳＡＴＡ制御部３及びセクタアドレス変換部６夫々に対して同時に発行する。さらに、ＣＰＵ１０からの指令がリードの場合には、コマンド発行と同時に、コマンド発行タイミング信号を応答時間差計測部５へ出力する。 
【００２０】
データ整形部８は、ＨＤＤ１及びＨＤＤ２夫々に格納するデータの分配処理や、ＨＤＤ１及びＨＤＤ２から夫々読み出されたデータの統合処理を行う。データライトの際、データ整形部８は、ＤＭＡＣ９が出力する６４ｂｉｔ幅のデータを受信すると、受信データを３２ｂｉｔ幅のデータに分割し、ＳＡＴＡ制御部３及びＳＡＴＡ制御部４夫々に対して３２ｂｉｔずつ送信する。
【００２１】
データリードの際、データ整形部８は、ＳＡＴＡ制御部３及びＳＡＴＡ制御部４夫々が出力した３２ｂｉｔ幅のデータを受信し、２つの受信データを統合して６４ｂｉｔ幅のデータを生成して、ＤＭＡＣ９へ送信する。
【００２２】
ＤＭＡＣ９は、データ整形部８とＲＡＭ１１間のデータ転送を実行するダイレクトメモリアクセスコントローラである。ＤＭＡＣ９の転送先アドレス、転送元アドレス、転送方向、データサイズはＣＰＵ１０が設定する。データライトの際、ＤＭＡＣ９は、ＲＡＭ１１からリードしたデータをデータ整形部８へ送信する。データリードの際、ＤＭＡＣ９は、データ整形部８が出力したデータをＲＡＭ１１へライトする。
【００２３】
ＣＰＵ１０は演算装置であり、セクタアドレス変換部６、ＳＡＴＡ制御コマンド発行部７、データ整形部８及びＤＭＡＣ９に対して、レジスタ値を設定することにより、動作制御を行う。ＲＡＭ１１は揮発性の記憶媒であり、ＣＰＵ１０が演算を行うためのプログラムの格納領域として機能する他、ＨＤＤ１及びＨＤＤ２に対して書き込み、若しくはＨＤＤ１及びＨＤＤ２から読み出すデータを一時的に記憶する。
【００２４】
次に、ＨＤＤ１、２における記憶領域と格納データについて図２を参照して説明する。図２に示すように、本実施形態においては、１トラックあたりのセクタ数が１０２４セクタで一定であり、１セクタあたりの記憶容量が５１２ＢｙｔｅであるＨＤＤを例としている。セクタアドレスはＨＤＤの全セクタに割り振った通し番号であり、ＨＤＤの最外周トラックにゼロ番地を割り当て、内周トラックほど大きい値となる。本実施例では、外周トラックの１ＧＢｙｔｅ（０ｘ００００＿００００〜０ｘ００１Ｆ＿ＦＦＦＦ番地）をバッファ領域として使用し、一時データのライト／リードで使用する。
【００２５】
本実施形態においては、ＨＤＤ２のバッファ領域にアクセスする場合にのみ、セクタアドレス変換部６によるセクタアドレス変換が実行される。即ち、このバッファ領域が、アドレス変換対象として設定される。ＨＤＤ１のバッファ領域にアクセスする場合にはセクタアドレス変換は実行されない。内周トラックは、プログラム格納領域とし、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、各種アプリケーション・プログラム等を記憶する。ライト時とリード時のセクタアドレスが異なると、正常にアクセスできないため、プログラム格納領域にアクセスする場合には、セクタアドレス変換は実行されない。
【００２６】
次に、本実施形態に係るＨＤＤ１、２夫々に対する、データの分散配置の態様について図３を参照して説明する。図１において説明したように、ＤＭＡＣ９が出力する６４ｂｉｔ幅のデータは、データ整形部８によって２つの３２ｂｉｔ幅のデータとしてＨＤＤ１、２夫々に格納されるが、具体的には、図３に示すように、ＨＤＤ１、２夫々に８ｂｉｔずつ交互に格納される。即ち、データ整形部８は、データライトの際、ＤＭＡＣ９から受信した６４ｂｉｔ幅のデータを、８ｂｉｔずつ交互にＳＡＴＡ制御部３、４夫々に入力する。
【００２７】
上述したように、本実施形態に係るＨＤＤ１、２夫々の１セクタあたりの記憶容量は５１２Ｂｙｔｅである。本実施形態においては、２台のＨＤＤにデータを分散配置するため、連結されたＨＤＤ１、２をＣＰＵ１０から見ると、１０２４Ｂｙｔｅのセクタサイズを有するＨＤＤが１つあるように見える。
【００２８】
次に、応答時間差計測部５による応答時間差の計測態様について図４を参照して説明する。応答時間差計測部５は、ＳＡＴＡ制御コマンド発行部７が出力するコマンド発行タイミング信号のアサートに応じてカウントを開始する。コマンド発行タイミング信号は、上述したように、リード開始コマンドと同時にアサートされる信号である。
【００２９】
即ち、応答時間差計測部５による応答時間差の計測に際しては、ＨＤＤ１及びＨＤＤ２夫々の同一セクタがリードされ、ＨＤＤ１及びＨＤＤ２夫々においてリード完了までに要した時間差が求められる。応答時間差計測部５は、コマンド発行タイミング信号のアサートに応じたカウントの開始後、ＳＡＴＡ制御部３からの転送完了信号がアサートされたタイミングにおけるカウンタ値“ＴｃｍｐＡ”を記憶すると共に、ＳＡＴＡ制御部４からの転送完了信号がアサートされたタイミングにおけるカウンタ値“ＴｃｍｐＢ”を記憶する。そして、応答時間差計測部５は、２つのカウント値の差分“ＴｃｍｐＡ−ＴｃｍｐＢ”を計算し、この応答時間差をセクタアドレス変換部６へ送信する。
【００３０】
次に、本実施形態に係るセクタアドレス変換部６の機能構成について図５を参照して説明する。図５に示すように、セクタアドレス変換部６は、セレクタ６１、制御コマンド判別部６２、セクタアドレス演算部６３、変換対象範囲レジスタ６４、ディスク回転時間レジスタ６５、トラックあたりセクタ数レジスタ６６、応答時間差更新許可レジスタ６７及び応答時間差レジスタ６８を含む。
【００３１】
セレクタ６１は、制御コマンド判別部６２から入力されるセレクト信号に従い、アドレス変換後のコマンドと、加工なしコマンドのどちらをＳＡＴＡ制御部４に出力するかを選択する。変換対象範囲レジスタ６４は、ＣＰＵ１０によって設定される値であって、アドレス変換を実施する対象のＨＤＤ２におけるアドレス範囲を設定するための値を記憶しておくレジスタである。即ち、変換対象範囲レジスタ６４が、変換対象アドレス範囲記憶部として機能する。本実施形態においては、図２において説明したように、ＨＤＤ２のバッファ領域［０ｘ００００＿００００〜０ｘ００１Ｆ＿ＦＦＦＦ］が設定される。
【００３２】
制御コマンド判別部６２は、ＳＡＴＡ制御コマンド発光部７から、ＨＤＤ２を制御するためのＳＡＴＡ制御コマンドを受信する。即ち、アクセス対象のアドレスの指定を受け付けるアドレス指定受付部として機能する。そして、制御コマンド判別部６２は、受信したコマンドがＨＤＤ２についてのリード／ライト対象セクタアドレスを設定するコマンドの場合であって、変換対象範囲レジスタ６４において設定されている変換対象のセクタアドレス範囲である場合に、アドレス変換が必要であると判断する。
【００３３】
アドレス変換が必要であると判断した場合、制御コマンド判別部６２は、セクタアドレス演算部６３が出力するセクタアドレス変換後のコマンドを出力するように、セレクタ６１に入力するセレクト信号を切り替えると共に、受信したＳＡＴＡ制御コマンドに含まれるセクタアドレス情報をセクタアドレス演算部６３に入力する。即ち、制御コマンド判別部６２がセレクタ制御部として機能する。
【００３４】
他方、受信したコマンドがリード／ライト対象セクタアドレスを設定するコマンドではない場合や、変換対象のセクタアドレス範囲外であり、アドレス変換が不要であると判断した場合、制御コマンド判別部６２は、変換されていないそのままのコマンドを出力するようにセレクタ６１に入力するセレクト信号を切り替えると共に、受信したＳＡＴＡ制御コマンドに含まれるセクタアドレス情報をセレクタ６１に入力する。
【００３５】
ディスク回転時間レジスタ６５は、ＣＰＵ１０によって設定される値であって、ＨＤＤ２の１回転分に要する時間の値を記憶しておくレジスタである。ＨＤＤ２の回転数が５４００（ｒｐｍ）の場合、ディスク１回転に要する時間は約１１．１１１（ｍｓ）である。
【００３６】
トラックあたりセクタ数レジスタ６６は、ＣＰＵ１０によって設定される値であって、ＨＤＤ２の１トラックあたりに含まれるセクタ数を記憶しておくレジスタである。上述したように、本実施形態に係るＨＤＤ２の１トラックあたりのセクタ数は１０２４である。
【００３７】
応答時間差レジスタ６８は、応答時間差計測部５によって計測された応答時間差を記憶しておくレジスタである。即ち、応答時間差レジスタ６８が、回転位相差記憶部として機能する。応答時間差レジスタ６８は、応答時間差更新許可レジスタ６７に設定されたレジスタ値がイネーブルを示す値の場合に、応答時間差計測部５の出力値である“ＴｃｍｐＡ−ＴｃｍｐＢ”を取り込む。
【００３８】
応答時間差更新許可レジスタ６７は、ＣＰＵ１０によって設定される値であって、応答時間差レジスタ６８の値の更新を行うことを指定する値を記憶しておくレジスタである。ＣＰＵ１０は、応答時間差レジスタ６８の更新を指示する際、応答時間差更新許可レジスタ６７の値をイネーブルに対応する値に設定する。
【００３９】
例えば、図２において説明したプログラム格納領域へのアクセスの際に、応答時間差更新許可レジスタ６７の設定値をイネーブルに対応する値に設定しておくことで、ＯＳ起動時のリード動作で、応答時間差を更新することができる。また、ＨＤＤ１とＨＤＤ２とが同型である場合にも、定常状態の回転数に微小な違いがあるため、長時間経過後には回転位相差が生じてしまうが、リードを実行する度に応答時間差を再計測するため、回転位相差の時間変化を補正することができる。
【００４０】
また、バッファ領域にライトする前、または、後に、応答時間差更新許可レジスタ６７をディスエーブルにすることで、ライト時とリード時のアドレス変換を同一にでき、バッファ領域のデータを何度もリードすることができる。 バッファ領域のデータが不要になった時点で、応答時間差更新許可レジスタ６７をイネーブルにすることで、次のリード動作時に回転位相差の時間変化を補正することができる。
【００４１】
セクタアドレス演算部６３は、制御コマンド判別部６２から入力されるアクセス対象セクタアドレスの値、ディスク回転時間レジスタ６５の設定値、トラックあたりセクタ数レジスタ６６の設定値、応答時間差レジスタ６８の設定値を用いて、変換後のセクタアドレスを演算する。本実施形態に係るトラックあたりのセクタ数は１０２４である。従って、各トラックにおけるセクタアドレスは通し番号であるセクタアドレスの下位１０ｂｉｔで表される。そのため、セクタアドレスの下位１０ｂｉｔに対して変換を実施する。即ち、セクタアドレス演算部６３が、アドレス変換部として機能する。
【００４２】
セクタアドレス演算部６３による変換後のセクタアドレス下位１０ｂｉｔの計算は、“（変換後セクタアドレス下位１０ｂｉｔ）＝（アクセス対象セクタアドレス下位１０ｂｉｔ）＋（オフセットセクタ数）”という式によって行われる。但し、計算結果が１１ｂｉｔ以上になる場合、１１ｂｉｔ目を切り捨てる。この処理は、計算結果が１０２４よりも大きくなる場合に、１０２４を引く処理に等しい。
【００４３】
また、オフセットセクタ数の計算は、応答時間差がプラスの場合とマイナスの場合とで異なり、応答時間差がプラスの場合には、“（オフセットセクタ数）＝（応答時間差）／（１セクタ分のヘッド通過時間）”という式によって行われる。更に、“（１セクタ分のヘッド通過時間）”は、ディスク回転時間レジスタ６５の設定値及びトラックあたりセクタ数レジスタ６６の設定値を用いて、“（ディスク１回転に要する時間）／（トラックあたりのセクタ数）”という式によって求められる。即ち、セクタアドレス演算部６３が、アドレスオフセット量算出部として機能する。
【００４４】
他方、応答時間差がマイナスの場合、オフセットセクタ数の計算は、“（オフセットセクタ数）＝（応答時間差）／（１セクタ分のヘッド通過時間）＋１０２４”という式によって行われる。“（１セクタ分のヘッド通過時間）”は、上記と同様である。
【００４５】
例えば、応答時間差が４（ｍｓ）、アクセス対象セクタアドレスが０ｘ００１Ｆ＿Ｆ１ＡＡである場合、回転位相差を相殺するオフセットセクタ数は、“４（ｍｓ）÷｛１１．１１１（ｍｓ）／１０２４｝≒３６９”である。その結果、変換後セクタアドレスの下位１０ｂｉｔは、０ｘ３１Ｂとなり、変換後セクタアドレスは、０ｘ００１Ｆ＿Ｆ３１Ｂとなる。
【００４６】
また、応答時間差が−４（ｍｓ）、アクセス対象セクタアドレスが０ｘ００１Ｆ＿Ｆ１ＡＡである場合、回転位相差を相殺するオフセットセクタ数は、“−４（ｍｓ）／｛１１．１１１（ｍｓ）／１０２４｝＋１０２４≒６５５”である。その結果、変換後セクタアドレスの下位１０ｂｉｔは、０ｘ０３９となり、変換後セクタアドレスは、０ｘ００１Ｆ＿Ｆ０３９となる。
【００４７】
セクタアドレス演算部６３は、変換後アドレスを含むＳＡＴＡ制御コマンドを生成し、セクタアドレス変換後コマンドとして、セレクタ６１に入力する。これにより、セレクタ６１は、制御コマンド判別部６２から入力されるセレクト信号に従い、セクタアドレス演算部６３から入力される変換後アドレスを選択してＳＡＴＡ制御部４へ送信する。
【００４８】
図６は、本実施形態に係るアドレス変換による効果を示す図である。図６は、定常回転中のＨＤＤ１及びＨＤＤ２の、あるトラックにおけるセクタアドレス位置のイメージ図である。尚、本実施形態においては、ＨＤＤ１及びＨＤＤ２は同型である場合を例とする。通常、ＨＤＤ毎の回転は同期していないため、同じセクタアドレス“０００”にアクセスする場合でも、アクセス対象セクタがヘッドに到達するまでの回転待ち時間は異なる。
【００４９】
これに対して、本実施形態に係る記憶媒体制御装置においては、ＨＤＤ１へのアクセスを基準とし、ＨＤＤ２へのアクセスについては、本来のアクセス対象セクタアドレス“０００”の替わりに、回転待ち時間が同一になる変換後のセクタアドレス“ＸＸＸ”にアクセスする。このため、ＨＤＤ１及びＨＤＤ２において、回転待ち時間を揃えることができる。
【００５０】
即ち、本実施形態に係る記憶媒体制御装置においては、ＨＤＤ２へのアクセスに際して、ＨＤＤ１との回転位相差を相殺するようなアドレス変換を実施するため、ＨＤＤ１及びＨＤＤ２の回転待ち時間を揃えることができる。その結果、複数のディスク型記憶装置を連携させて動作させる場合において、夫々のディスク型記憶装置の回転を同期させることなく、回転待ち時間をそろえてアクセス時間を短縮することが可能となる。
【００５１】
実施の形態２．
実施の形態１においては、制御対象のＨＤＤにおいて、バッファ領域が１つだけ設けられている場合を例として説明した。本実施形態においては、１つのＨＤＤにおいて複数のバッファ領域が設けられている場合を例として説明する。尚、実施の形態１と同一の符号を付す構成については、同一、または相当部を示すものとし、詳細な説明を省略する。
【００５２】
図７は、本実施形態に係るＨＤＤ１、２における記憶領域について示す図である。図２と同様に、１トラックあたりのセクタ数が１０２４セクタで一定であり、１セクタあたりの記憶容量が５１２ＢｙｔｅであるＨＤＤを例としている。図７に示すように、本実施形態に係るＨＤＤ１、２においては、１ＧＢｙｔｅのバッファ領域が複数設けられている。そのため、本実施形態に記憶媒体制御装置においては、複数設けられたバッファ領域に対応するため、セクタアドレス変換部６の機能構成が実施の形態１とは異なる。
【００５３】
本実施形態に係るＨＤＤ１、２においては、外周トラックの４ＧＢｙｔｅ（０ｘ００００＿００００〜０ｘ００７Ｆ＿ＦＦＦＦ番地）分の領域が、各１ＧＢｙｔｅの４つのバッファ領域０、バッファ領域１、バッファ領域２、バッファ領域３として、一時データのライト／リードで使用される。ＨＤＤ２の各バッファ領域にアクセスする場合には、各領域毎に、独立にセクタアドレス変換を実行する。ＨＤＤ１のバッファ領域にアクセスする場合や、ＨＤＤ１、２のプログラム格納領域にアクセスする場合には、セクタアドレス変換は実行しない。
【００５４】
次に、本実施形態に係るセクタアドレス変換部６の機能構成について図８を参照して説明する。図８に示すように、本実施形態にセクタアドレス変換部６は、図５において説明した実施の形態１に係るセクタアドレス変換部６と略同一の構成を有し、制御コマンド判別部６２に替えて制御コマンド判別部６２１、変換対象範囲レジスタ６４に替えて変換対象範囲レジスタ６４１、応答時間差更新許可レジスタ６７に替えて応答時間差更新許可レジスタ６７１、応答時間差レジスタ６８に替えて、応答時間差レジスタ６８０〜６８３を含む。更に、バッファ領域判別部６９１及びセレクタ６９２を含む。
【００５５】
変換対象範囲６４１は、ＣＰＵ１０によって設定される値であって、アドレス変換を実施する対象のＨＤＤ２におけるアドレス範囲を設定するための値を記憶しておくレジスタである。本実施形態においては、図７において説明したように、ＨＤＤ２の４つのバッファ領域０［０ｘ００００＿００００〜０ｘ００１Ｆ＿ＦＦＦＦ］、バッファ領域１［０ｘ００２０＿００００〜０ｘ００３Ｆ＿ＦＦＦＦ］、バッファ領域２［０ｘ００４０＿００００〜０ｘ００５Ｆ＿ＦＦＦＦ］、バッファ領域３［０ｘ００６０＿００００〜０ｘ００７Ｆ＿ＦＦＦＦ］が設定される。
【００５６】
図９は、変換対象範囲レジスタ６４１における設定の例を示す図である。図９に示すように、変換対象範囲レジスタ６４１においては、バッファ領域０〜４の夫々について、アドレス範囲が設定されることによって、アドレス変換を実施する対象が設定される。
【００５７】
制御コマンド判別部６２１は、ＳＡＴＡ制御コマンド発光部７から、ＨＤＤ２を制御するためのＳＡＴＡ制御コマンドを受信する。そして、制御コマンド判別部６２１は、受信したコマンドがＨＤＤ２についてのリード／ライト対象セクタアドレスを設定するコマンドの場合であって、変換対象範囲レジスタ６４１において設定されている変換対象のセクタアドレス範囲である場合に、アドレス変換が必要であると判断する。
【００５８】
アドレス変換が必要であると判断した場合、制御コマンド判別部６２は、セクタアドレス演算部６３が出力するセクタアドレス変換後のコマンドを出力するように、セレクタ６１に入力するセレクト信号を切り替えると共に、受信したＳＡＴＡ制御コマンドに含まれるセクタアドレス情報をセクタアドレス演算部６３及びバッファ領域判別部６９１に入力する。セクタアドレス情報をバッファ領域判別部６９１にも入力することが、実施の形態１とは異なる点である。
【００５９】
応答時間差レジスタ６８０〜６８３は、応答時間差計測部５によって計測された応答時間差を記憶しておくレジスタである。応答時間差レジスタ６８０は、応答時間差更新許可レジスタ６７１のバッファ領域０についての設定がイネーブルの場合であって、バッファ領域判別部６９１の出力する選択信号がバッファ領域０を選択している場合に、応答時間差計測部５の出力値である“ＴｃｍｐＡ−ＴｃｍｐＢ”を取り込む。
【００６０】
応答時間差レジスタ６８１は、応答時間差更新許可レジスタ６７１のバッファ領域１についての設定がイネーブルの場合であって、バッファ領域判別部６９１の出力する選択信号がバッファ領域１を選択している場合に、応答時間差計測部５の出力値である“ＴｃｍｐＡ−ＴｃｍｐＢ”を取り込む。
【００６１】
応答時間差レジスタ６８２は、応答時間差更新許可レジスタ６７１のバッファ領域２についての設定がイネーブルの場合であって、バッファ領域判別部６９１の出力する選択信号がバッファ領域２を選択している場合に、応答時間差計測部５の出力値である“ＴｃｍｐＡ−ＴｃｍｐＢ”を取り込む。
【００６２】
応答時間差レジスタ６８３は、応答時間差更新許可レジスタ６７１のバッファ領域３についての設定がイネーブルの場合であって、バッファ領域判別部６９１の出力する選択信号がバッファ領域３を選択している場合に、応答時間差計測部５の出力値である“ＴｃｍｐＡ−ＴｃｍｐＢ”を取り込む。
【００６３】
応答時間差更新許可レジスタ６７１は、ＣＰＵ１０によって設定される値であって、応答時間差レジスタ６８０〜６８３夫々の値の更新を行うことを指定する値を記憶しておくレジスタである。即ち、応答時間差更新許可レジスタ６７１は、応答時間差レジスタ６８０〜６８３夫々の値の更新の可否を示す値を設定するためのイネーブルビットを含む。
【００６４】
ＣＰＵ１０は、ＨＤＤ２のバッファ領域０〜３にライトする前、または、後に、応答時間差更新許可レジスタ６７１のバッファ領域０〜３に対応するイネーブルビットをディスエーブルにすることで、ライト時とリード時のアドレス変換を同一にでき、バッファ領域のデータを何度もリードすることができるようになる。応答時間差レジスタ６８０〜６８３の更新／維持をそれぞれ独立に制御できるため、バッファ領域０〜３の用途を、１回のリードのみ実行するデータを記憶する領域と、２回以上のリードを実行するデータを記憶する領域で使い分けることができる。
【００６５】
バッファ領域判別部６９１は、変換対象範囲レジスタ６４１の内容と、制御コマンド判別部６２１の出力するアクセス対象セクタアドレスの情報から、バッファ領域０〜３のうち、どの領域にアクセスするかを判別し、応答時間差レジスタ６８０〜６８３と、セレクタ６９２に対してバッファ領域選択信号を出力する。
【００６６】
図１０は、バッファ領域判別部６９１によるバッファ領域の判別態様を示す図である。図１０に示すように、本実施形態においては、バッファ領域０〜３と、応答時間差レジスタ６８０〜６８３とが夫々関連付けられている。このような判断手法は、例えば図１０に示すようなテーブルの情報がバッファ領域判別部６９１に格納されていることにより実現される。
【００６７】
そして、バッファ領域判別部６９１は、制御コマンド判別部６２１の出力するアクセス対象セクタアドレスの情報に基づいて図９において説明した設定値を参照することにより、アクセス対象のバッファ領域を判断する。また、その判断結果に基づいて図１０に示すように対応する応答時間差レジスタ６８０〜６８３を選択する。
【００６８】
セレクタ６９２は、バッファ領域判別部６９１の出力する選択信号に従い、応答時間差レジスタ６８０〜６８３夫々から入力されるレジスタ値のうち、いずれか１つの値を選択してセクタアドレス演算部６３に入力する。セクタアドレス演算部６３は実施の形態１と同一の機能を有するが、セレクタ６９２によって選択されて出力されるレジスタ値を用いる点が実施の形態１と異なる。
【００６９】
このような構成によれば、実施の形態１において説明した効果に加えて、複数のバッファ領域を備えることで、１回のリードのみ実行するデータを記憶する領域と、２回以上のリードを実行するデータを記憶する領域を使い分けることができる。
【００７０】
尚、実施の形態１、２においては、２つのＨＤＤを用いる場合を例として説明した。しかしながら、これは一例であり、３つ以上のＨＤＤを連携させる場合にも適用可能である。その場合、応答時間差レジスタ６８の値は、複数のＨＤＤのうちのいずれか１つを基準ＨＤＤとして定め、他のＨＤＤ夫々について基準ＨＤＤの応答時間との時間差を求めて設定される。そして、セクタアドレス演算部６３は、基準ＨＤＤ以外の夫々のＨＤＤについて、夫々対応する応答時間差レジスタ６８の設定値を用いてアドレスオフセット量を求めてアドレス変換を行う。
【符号の説明】
【００７１】
１、２  ＨＤＤ
３、４  ＳＡＴＡ制御部
５  応答時間差計測部
６  セクタアドレス変換部
７  ＳＡＴＡ制御コマンド発行部
８  データ整形部
９  ＤＭＡＣ
１０  ＣＰＵ
１１  ＲＡＭ
６１  セレクタ
６２、６２１  制御コマンド判別部
６３  セクタアドレス演算部
６４、６４１  変換対象範囲レジスタ
６５  ディスク回転時間レジスタ
６６  トラックあたりセクタ数レジスタ
６７、６７１  応答時間差更新許可レジスタ
６８、６８０、６８１、６８２、６８３  応答時間差レジスタ
６９１  バッファ領域判別部
６９２  セレクタ
【先行技術文献】
【特許文献】
【００７２】
【特許文献１】特開平０８−３２８７５９号公報
【特許文献２】特開２００４−０１３８２７号公報
【図１】
2015005178.tif 000003
【図２】
2015005178.tif 000004
【図３】
2015005178.tif 000005
【図４】
2015005178.tif 000006
【図５】
2015005178.tif 000007
【図６】
2015005178.tif 000008
【図７】
2015005178.tif 000009
【図８】
2015005178.tif 000010
【図９】
2015005178.tif 000011
【図１０】
2015005178.tif 000012