(57)【要約】【課題】同一のデータが記録された複数台のＨＤＤからデータを読み出す際に、読み出し速度の高速化を実現する。【解決手段】記録装置２のＲＡＩＤコントローラ３は、制御部３１、及び論理アドレスマップが格納された記憶部３２を備えている。論理アドレスマップには、論理アドレスと、ＨＤＤ４−１，４−２のセクタアドレスとの対応付けが規定されている。制御部３１は、記憶部３２から論理アドレスマップを読み出し、論理アドレスマップに基づいて、ＰＣ本体１から指定された論理アドレスをＨＤＤ４−１，４−２のセクタアドレスに変換し、ＨＤＤ４−１，４−２のセクタアドレスが示す連続したセクタに対し、複数のセクタにより構成されるブロック単位に、所定数のブロックを読み出し単位として常に並列に読み出す。【選択図】図７
2012103856.tif 000002
【特許請求の範囲】
【請求項１】
複数台のハードディスクドライブに同一のデータが記録された記録装置において、
所定数のセクタによりブロックが構成され、所定数の前記ブロックにより構成された読み出し単位にて、前記複数台のハードディスクドライブにおける異なるブロック毎に、データを並列に読み出す制御部を備えたことを特徴とする記録装置。
【請求項２】
請求項１に記載の記録装置において、
当該記録装置からデータを読み出す際に指定される論理アドレスと、前記複数台のハードディスクドライブのセクタアドレスとを対応付けた論理アドレスマップを備え、
前記制御部は、
前記論理アドレスマップに基づいて、データを読み出す際に指定された論理アドレスをセクタアドレスに変換し、前記読み出し単位にて、前記複数台のハードディスクドライブにおける異なるブロック毎の前記セクタアドレスの示すセクタから、データを並列に読み出すことを特徴とする記録装置。
【請求項３】
請求項２に記載の記録装置において、
前記論理アドレスマップは、前記論理アドレスに対応付けたセクタアドレスの数が、前記複数台のハードディスクドライブのそれぞれについて同一であることを特徴とする記録装置。
【請求項４】
請求項１から３までのいずれか一項に記載の記録装置において、
前記制御部は、
前記複数台のハードディスクドライブからデータを並列に読み出す際に、読み出し異常が発生した場合、前記読み出し異常が発生していないハードディスクドライブが１台のとき、前記１台のハードディスクドライブからデータを順次読み出し、前記読み出し異常が発生していないハードディスクドライブが複数台のとき、前記複数台のハードディスクドライブからデータを並列に読み出すことを特徴とする記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像コンテンツ等のデータを記録するハードディスクドライブ（以下、ＨＤＤという。）を用いた記録装置に関する。
【背景技術】
【０００２】
従来、映像コンテンツ等のデータを記録及び再生する記録装置が知られている。記録装置は、映像コンテンツ等のデータを処理するコンピュータ本体（以下、ＰＣ本体という。）に接続され、記録装置に備えたＨＤＤへＰＣ本体からアクセスすることによって、データが記録され、また、データが読み出されて再生される。このような記録装置では、映像コンテンツ等のデータを保護し、データの信頼性を向上させるために、例えば、２台のＨＤＤを用いたミラーリングによる２重化が広く行われている。
【０００３】
ミラーリングによる２重化の技術は、同一のデータを２台のＨＤＤに記録することにより冗長性を持たせ、一方のＨＤＤが故障した場合であっても、他方のＨＤＤを用いて処理を続行することで、データの消失を防ぐものである。ＰＣ本体は、ミラーリングされたＨＤＤを備えた記録装置に対し、１台のＨＤＤであるかのようにアクセスすることができる。このような技術をＲＡＩＤ１（Redundant Arrays of Inexpensive Disks １）という。
【０００４】
図１０は、従来の、ミラーリングされたＨＤＤを備えた記録装置における異常処理を示すフローチャートである。記録装置は、ミラーリングされた２台のＨＤＤ（１）及びＨＤＤ（２）を備え、ＨＤＤ（１）がマスター用であり、ＨＤＤ（２）がバックアップ用であるとする。以下、記録装置において、ＨＤＤ（１）のセクタＮ＝０１〜１００からデータを読み出す際の異常処理について説明する。記録装置は、ＰＣ本体からのアクセスに伴ってＨＤＤ（１）（２）からデータを読み出し、読み出したデータをＰＣ本体へ出力する制御部を備えている。
【０００５】
まず、記録装置に備えた制御部は、読み出し開始セクタのアドレスをＮ＝０１に設定する（ステップＳ１００１）。そして、制御部は、ＨＤＤ（１）のセクタＮ〜Ｎ＋１０からデータを読み出す（ステップＳ１００２）。最初はＮ＝０１であるから、セクタ０１〜１０からデータが読み出される。読み出しが正常に完了した場合（ステップＳ１００２：ＯＫ（正常））、Ｎ＝Ｎ＋１０を設定する（ステップＳ１００３）。
【０００６】
制御部は、最終セクタまでのデータの読み出しが完了したか否かを判定し（ステップＳ１００９）、読み出しが完了していない場合（ステップＳ１００９：Ｎｏ）、ステップＳ１００２へ移行し、データ読み出しを行う。一方、１０個のセクタからの読み出しを１０回行い、セクタＮ＝０１〜１００からのデータの読み出しが完了している場合（ステップＳ１００９：Ｙｅｓ）、処理を終了する。
【０００７】
制御部は、ステップＳ１００２において、ＨＤＤ（１）のセクタＮ〜Ｎ＋１０からデータを読み出しているときに異常が発生した場合（ステップＳ１００２：ＮＧ（異常））、ＨＤＤ（１）における設定分のセクタＮ〜Ｎ＋１０からデータを繰り返して読み出す（ステップＳ１００４）。読み出しが正常に完了した場合（ステップＳ１００４：ＯＫ（正常））、ステップＳ１００３へ移行し、次のセクタからデータを読み出すため、Ｎ＝Ｎ＋１０を設定する。
【０００８】
制御部は、ステップＳ１００４において、ＨＤＤ（１）における設定分のセクタＮ〜Ｎ＋１０からデータを繰り返して読み出しているときに異常が再度発生した場合（ステップＳ１００４：ＮＧ（異常））、ＨＤＤ（１）が故障したと判定し（ステップＳ１００５）、バックアップ用のＨＤＤ（２）の同じセクタＮ〜Ｎ＋１０からデータを読み出す（ステップＳ１００６）。読み出しが正常に完了した場合（ステップＳ１００６：ＯＫ（正常））、ＨＤＤ（２）をマスター用に設定し、ＨＤＤ（１）を切り離し、以降、ＨＤＤ（２）をＨＤＤ（１）として処理を行うため（ステップＳ１００７）、ステップＳ１００３へ移行する。
【０００９】
一方、制御部は、ステップＳ１００６において、ＨＤＤ（２）の同じセクタＮ〜Ｎ＋１０からデータを読み出しているときに異常が発生した場合（ステップＳ１００６：ＮＧ（異常））、データ読み出しに失敗したと判定し（ステップＳ１００８）、処理を終了する。
【００１０】
このようなミラーリングされたＨＤＤを備えた記録装置の例として、同一のデータが記録された２台のＨＤＤのそれぞれから同一のデータを読み出す際に、一方のＨＤＤからのデータの読み出し順と他方のＨＤＤからのデータの読み出し順が異なるように、読み出しコマンドを発行し、エラーチェックを行う記録装置が知られている（特許文献１を参照）。例えば、１ワードのデータを読み出す際に、一方のＨＤＤからは０ビットから１５ビットまで順に読み出し、他方のＨＤＤからは８ビットから１５ビット及び０ビットから７ビットまで順に読み出し（特許文献１の図３を参照）、エラーチェックを行う。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００８−１５８８０４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ところで、ミラーリングされたＨＤＤを備えた記録装置の老朽化または記録メディアの変更に伴って、映像コンテンツ等のデータを、新しい記録装置または記録メディアへコピーすることがある。古い老朽化した記録装置から新しい記録装置等へデータをコピーする場合、通常は、新しい記録装置等の性能が古い記録装置よりも上がっている。このため、読み出し速度の遅い記録装置からデータを読み出し、記録速度の速い記録装置等へデータを記録することになるから、全体のコピー速度は、古い老朽化した記録装置の読み出し速度に制限されてしまう。
【００１３】
したがって、従来の記録装置では、古い記録装置から新しい記録装置等へのコピーを効率的に行うことができないという問題があり、ミラーリングされたＨＤＤを備えた記録装置から、データをできる限り高速に読み出すことが望まれていた。
【００１４】
前述の特許文献１では、ミラーリングされたＨＤＤを備えた記録装置からデータを読み出す際に、２台のＨＤＤから同時に同じデータを、ビット順を変えて読み出すから、例えば、１ワードのデータのうちの半分の時点において高速化を実現することができる（特許文献の図３においてＴ８の時点）。これは、１ワードのデータのうち前半の８ビットを一方のＨＤＤから読み出し、これと同時に、１ワードのデータのうち後半の８ビットのデータを他方のＨＤＤから読み出すからである。しかし、各ＨＤＤにおいて読み出し単位は１ワードであり、１ワードのデータ全体を読み出すことに変わりがない。例えば、複数ワードのデータを連続して読み出す場合、２台のＨＤＤのそれぞれから複数ワードのデータの全てを連続して読み出すことになる。したがって、複数ワードのデータを読み出す場合、必ずしも高速化を実現できるとは限らない。
【００１５】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、同一のデータが記録された複数台のＨＤＤからデータを読み出す際に、読み出し速度の高速化を実現する記録装置を提供することにある。
【課題を解決するための手段】
【００１６】
前記目的を達成するために、本発明による記録装置は、複数台のハードディスクドライブに同一のデータが記録された記録装置において、所定数のセクタによりブロックが構成され、所定数の前記ブロックにより構成された読み出し単位にて、前記複数台のハードディスクドライブにおける異なるブロック毎に、データを並列に読み出す制御部を備えたことを特徴とする。
【００１７】
また、本発明による記録装置は、当該記録装置からデータを読み出す際に指定される論理アドレスと、前記複数台のハードディスクドライブのセクタアドレスとを対応付けた論理アドレスマップを備え、前記制御部が、前記論理アドレスマップに基づいて、データを読み出す際に指定された論理アドレスをセクタアドレスに変換し、前記読み出し単位にて、前記複数台のハードディスクドライブにおける異なるブロック毎の前記セクタアドレスの示すセクタから、データを並列に読み出すことを特徴とする。
【００１８】
また、本発明による記録装置は、前記論理アドレスマップについて、前記論理アドレスに対応付けたセクタアドレスの数が、前記複数台のハードディスクドライブのそれぞれについて同一であることを特徴とする。
【００１９】
また、本発明による記録装置は、前記制御部が、前記複数台のハードディスクドライブからデータを並列に読み出す際に、読み出し異常が発生した場合、前記読み出し異常が発生していないハードディスクドライブが１台のとき、前記１台のハードディスクドライブからデータを順次読み出し、前記読み出し異常が発生していないハードディスクドライブが複数台のとき、前記複数台のハードディスクドライブからデータを並列に読み出すことを特徴とする。
【発明の効果】
【００２０】
以上のように、本発明によれば、複数台のＨＤＤにおける異なるブロック毎に、データを並列に読み出すようにした。これにより、同一のデータが記録された複数台のＨＤＤからデータを読み出す際に、読み出し速度の高速化を実現することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態による記録装置の構成を示すブロック図である。
【図２】ファイルのデータ長が短い場合の読み出し処理を説明する図である。
【図３】ファイルのデータ長が長い場合の読み出し処理を説明する図である。
【図４】ＲＡＩＤコントローラの構成を示すブロック図である。
【図５】論理アドレスマップの構成例を示す図である。
【図６】論理アドレスとセクタアドレスとの関係を説明する図である。
【図７】ＲＡＩＤコントローラにおける制御部の読み出し処理を示すフローチャートである。
【図８】ＲＡＩＤコントローラにおける制御部の異常処理を示すフローチャートである。
【図９】ＲＡＩＤコントローラにおける制御部の書き込み処理を示すフローチャートである。
【図１０】従来の記録装置における異常処理を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。図１は、本発明の実施形態による記録装置の構成を示すブロック図である。この記録装置２は、ＲＡＩＤコントローラ３、ミラーリングされた２台のＨＤＤ４−１，４−２及びキャッシュメモリ５を備えている。記録装置２は、ＰＣ本体１からのアクセスにより、ＨＤＤ４−１，４−２の同一のセクタに同一のデータが記録され、また、ＨＤＤ４−１，４−２からデータが読み出される。
【００２３】
記録装置２のＲＡＩＤコントローラ３は、ＰＣ本体１から読み出し指令を入力し、読み出し指令に従って、後述する論理アドレスマップに基づきＨＤＤ４−１，４−２からデータを並列に読み出し、キャッシュメモリ５に格納する。そして、ＲＡＩＤコントローラ３は、キャッシュメモリ５からデータを読み出し、読み出し指令の応答として、読み出したデータをＰＣ本体１へ出力する。
【００２４】
また、ＲＡＩＤコントローラ３は、ＰＣ本体１から書き込み指令及びデータを入力し、入力したデータをキャッシュメモリ５に格納する。そして、ＲＡＩＤコントローラ３は、書き込み指令に従って、キャッシュメモリ５からデータを読み出し、後述する論理アドレスマップに基づきＨＤＤ４−１，４−２にデータを並列に記録し、書き込み完了をＰＣ本体１へ出力する。ＲＡＩＤコントローラ３は、書き込み完了を出力した後、ＨＤＤ４−１に記録した同一のデータを、ＨＤＤ４−２の同じセクタアドレスに記録すると共に、ＨＤＤ４−２に記録した同一のデータを、ＨＤＤ４−１の同じセクタアドレスに記録する。これにより、ＨＤＤ４−１，４−２の同一のセクタには同一のデータが記録されることになる。
【００２５】
〔読み出し処理〕
まず、記録装置２に備えたＲＡＩＤコントローラ３による読み出し処理について説明する。図２は、読み出されるファイルのデータ長が短い場合の読み出し処理を説明する図である。図２に示すように、ミラーリングの記録によって、ＨＤＤ４−１，４−２の同一論理セクタ上には同一のデータが記録されているものとする。具体的には、ＨＤＤ４−１の４個のセクタＳ００１〜Ｓ００４（Ｓ×××はセクタアドレスを示す。）にファイルが記録されており、ＨＤＤ４−２の４個のセクタＳ００１〜Ｓ００４にも同一のファイルが記録されているものとする。つまり、ＨＤＤ４−１のセクタＳ００１のデータとＨＤＤ４−２のセクタＳ００１のデータは同一であり、セクタＳ００２〜Ｓ００４の各データについても同一であり、ファイルのデータ長は、セクタＳ００１〜Ｓ００４に記録されたデータの大きさである。
【００２６】
記録装置２のＲＡＩＤコントローラ３は、２セクタを１ブロックとし、２ブロックを読み出し単位として、ＨＤＤ４−１のセクタＳ００１，Ｓ００２（図２のαの箇所）からデータを、ＨＤＤ４−２のセクタＳ００３，Ｓ００４（βの箇所）からデータを、ブロック毎に並列に読み出す。ここで、並列に読み出すとは、一方のデータの読み出し処理と他方のデータの読み出し処理とを同時に行うことをいう。
【００２７】
このように、ファイルを構成するデータは、ＨＤＤ４−１，４−２のセクタを２セクタずつのブロックに分け、ブロックを単位とした４セクタ（２ブロック）を読み出し単位として、ＨＤＤ４−１，４−２からブロック毎に並列に読み出される。これにより、１台のＨＤＤのセクタＳ００１〜Ｓ００４からデータを順番に読み出す処理に比べ、約２倍の速度で読み出しを行うことができる。
【００２８】
図３は、読み出されるファイルのデータ長が長い場合の読み出し処理を説明する図である。図３に示すように、ミラーリングの記録によって、ＨＤＤ４−１，４−２の同一論理セクタ上には同一のデータが記録されているものとする。具体的には、ＨＤＤ４−１の１０個のセクタＳ００１〜Ｓ０１０にファイルが記録されており、ＨＤＤ４−２の１０個のセクタＳ００１〜Ｓ０１０にも同一のファイルが記録されているものとする。つまり、ＨＤＤ４−１のセクタＳ００１のデータとＨＤＤ４−２のセクタＳ００１のデータは同一であり、セクタＳ００２〜Ｓ０１０の各データについても同一であり、ファイルのデータ長は、セクタＳ００１〜Ｓ０１０に記録されたデータの大きさである。
【００２９】
記録装置２のＲＡＩＤコントローラ３は、２セクタを１ブロックとし、２ブロックを読み出し単位として、ＨＤＤ４−１のセクタＳ００１，Ｓ００２（図３のα１の箇所）からデータを、ＨＤＤ４−２のセクタＳ００３，Ｓ００４（β１の箇所）からデータを、ブロック毎に並列に読み出し、キャッシュメモリ５に格納する。また、ＲＡＩＤコントローラ３は、ＨＤＤ４−１のセクタＳ００５，Ｓ００６（α２の箇所）からデータを、ＨＤＤ４−２のセクタＳ００７，Ｓ００８（β２の箇所）からデータを、ブロック毎に並列に読み出し、キャッシュメモリ５に格納する。また、ＲＡＩＤコントローラ３は、ＨＤＤ４−１のセクタＳ００９，Ｓ０１０（α３の箇所）からデータを読み出し、キャッシュメモリ５に格納する。そして、ＲＡＩＤコントローラ３は、キャッシュメモリ５から、セクタＳ００１〜Ｓ０１０のデータ（ファイル）を読み出し、ＰＣ本体１へ出力する。
【００３０】
このように、ファイルを構成するデータは、ＨＤＤ４−１，４−２のセクタを２セクタずつのブロックに分け、ブロックを単位とした４セクタ（２ブロック）を読み出し単位として、ＨＤＤ４−１，４−２からブロック毎に並列に順次読み出される。これにより、１台のＨＤＤのセクタＳ００１〜Ｓ０１０からデータを順番に読み出す処理に比べ、約２倍の速度で連続的な読み出しを行うことができる。
【００３１】
（ＲＡＩＤコントローラ）
次に、図１に示したＲＡＩＤコントローラ３の構成及び読み出し処理について詳細に説明する。図４は、ＲＡＩＤコントローラ３の構成を示すブロック図である。このＲＡＩＤコントローラ３は、制御部３１及び記憶部３２を備えている。記憶部３２には、論理アドレスマップが予め格納されている。
【００３２】
図５は、記憶部３２に格納された論理アドレスマップの構成例を示す図であり、図６は、図５に示す論理アドレスマップを用いた場合の、論理アドレスとセクタアドレスとの関係を説明する図である。図５に示す論理アドレスマップは、図１に示したＰＣ本体１が管理する記録装置２の論理アドレスと、ＨＤＤ４−１，４−２のセクタアドレスとの関係を規定したマップである。図５には、記録装置２の論理アドレスＳ００１，Ｓ００２に対応して、ＨＤＤ４−１のセクタアドレスＳ１０１，Ｓ１０２が規定されている。また、記録装置２の論理アドレスＳ００３，Ｓ００４に対応して、ＨＤＤ４−２のセクタアドレスＳ２０３，Ｓ２０４が規定されている。
【００３３】
図６に示すように、ＰＣ本体１が管理する記録装置２の論理アドレスＳ００１〜Ｓ００５に対応して、ＨＤＤ４−１のセクタアドレスＳ１０１〜Ｓ１０５及びＨＤＤ４−２のセクタアドレスＳ２０１〜Ｓ２０５が存在する。ＨＤＤ４−１のセクタアドレスＳ１０１〜Ｓ１０５、及び対応するＨＤＤ４−２のセクタアドレスＳ２０１〜Ｓ２０５の各セクタには、同一のデータがミラーリングにより記録されている。ＰＣ本体１は、記録装置２の論理アドレスを指定することにより、ＨＤＤ４−１，４−２へデータを記録し、また、ＨＤＤ４−１，４−２からデータを読み出す。記録装置２のＲＡＩＤコントローラ３は、記憶部３２に格納された論理アドレスマップに基づいて、ＰＣ本体１により指定された記録装置２の論理アドレスをＨＤＤ４−１，４−２のセクタアドレスに変換し、記録及び読み出しを行う。
【００３４】
図５及び図６に示した例は、ＰＣ本体１が記録装置２の論理アドレスＳ００１，Ｓ００２を指定すると、記録装置２のＲＡＩＤコントローラ３は、ＨＤＤ４−１のセクタアドレスＳ１０１，Ｓ１０２へアクセスし、ＰＣ本体１が記録装置２の論理アドレスＳ００３，Ｓ００４を指定すると、ＲＡＩＤコントローラ３は、ＨＤＤ４−２のセクタアドレスＳ２０３，Ｓ２０４へアクセスすることを示している。
【００３５】
このように、２セクタを１ブロックとし、２ブロックをアクセス単位とした場合、図５に示すように論理アドレスマップとして、ＨＤＤ４−１，４−２のセクタアドレスを論理アドレスに交互に１ブロック単位で割り振るように規定した。つまり、アクセス単位である２ブロック（４セクタ）のうち、同じ１ブロックをＨＤＤ４−１，４−２にそれぞれ振り分けるようにした。これにより、ＲＡＩＤコントローラ３は、ＰＣ本体１からの読み出し指令を受けて、ＨＤＤ４−１，４−２の連続ブロックに対し、ブロック毎（２セクタ毎）に常に並列でアクセスするように制御することができる。これにより、高速読み出しが可能となる。
【００３６】
図７は、図４に示したＲＡＩＤコントローラ３における制御部３１の読み出し処理を示すフローチャートである。ＲＡＩＤコントローラ３の制御部３１は、ＰＣ本体１から、論理アドレスを含む読み出し指令を入力すると（ステップＳ７０１）、論理アドレスに対応するＨＤＤ４−１，４−２のセクタアドレスから、データを並列に読み出す処理を行う（ステップＳ７０２，ステップＳ７１１〜ステップＳ７１５）。図５及び図６に示した例では、制御部３１は、ＰＣ本体１から、論理アドレスＳ００１〜Ｓ００４を含む読み出し指令（記録装置２の論理アドレスＳ００１〜Ｓ００４からデータを読み出すことを示す読み出し指令）を入力する。
【００３７】
制御部３１は、論理アドレスマップを記憶部３２から読み出し（ステップＳ７１１）、論理アドレスマップから、入力した読み出し指令に含まれる論理アドレスに対応するセクタアドレスを取得する（ステップＳ７１２）。例えば、制御部３１は、図５に示した論理アドレスマップを読み出し、読み出し指令に含まれる論理アドレスＳ００１〜Ｓ００４に対応するセクタアドレスＳ１０１，Ｓ１０２，Ｓ２０３，Ｓ２０４を取得する。
【００３８】
制御部３１は、所定の読み出し単位のブロック毎に、ＨＤＤ４−１，４−２からデータを並列に読み出す（ステップＳ７１３）。例えば、制御部３１は、２セクタを１ブロックとし、２ブロックを読み出し単位として、ＨＤＤ４−１のセクタアドレスＳ１０１，Ｓ１０２からデータを、ＨＤＤ４−２のセクタアドレスＳ２０３，Ｓ２０４からデータを、ブロック毎に並列に読み出す。そして、制御部３１は、並列に読み出したデータをキャッシュメモリ５に格納し（ステップＳ７１４）、読み出し指令に含まれる論理アドレスに対応したデータをキャッシュメモリ５から読み出す（ステップＳ７１５）。
【００３９】
制御部３１は、キャッシュメモリ５から読み出したデータを、読み出し指令の応答としてＰＣ本体１へ出力する（ステップＳ７０３）。
【００４０】
図８は、図４に示したＲＡＩＤコントローラ３における制御部３１の異常処理を示すフローチャートである。このフローチャートは、図１０に示した従来の異常処理のフローチャートに対応している。以下、制御部３１が、ＨＤＤ４−１，４−２のセクタＮ＝０１〜１００からデータを読み出す際の異常処理について説明する。制御部３１は、１０セクタを１ブロックとし、２ブロック（２０セクタ）を読み出し単位として、ＨＤＤ４−１，４−２からデータを、ブロック毎（１０セクタ毎）に並列に読み出すものとする。
【００４１】
まず、制御部３１は、読み出し開始セクタのアドレスをＮ＝０１に設定する（ステップＳ８０１）。そして、制御部３１は、ＨＤＤ４−１のセクタＮ〜Ｎ＋１０からデータを、ＨＤＤ４−２のセクタＮ＋１１〜Ｎ＋２０からデータを並列に読み出す（ステップＳ８０２，ステップＳ８０３）。最初はＮ＝０１であるから、ＨＤＤ４−１のセクタ０１〜１０からデータが読み出され、ＨＤＤ４−２のセクタ１１〜２０からデータが読み出される。読み出しが正常に完了した場合（ステップＳ８０２，ステップＳ８０３：ＯＫ（正常））、Ｎ＝Ｎ＋２０を設定する（ステップＳ８０４）。
【００４２】
制御部３１は、最終セクタまでデータの読み出しが完了したか否かを判定し（ステップＳ８０９）、読み出しが完了していない場合（ステップＳ８０９：Ｎｏ）、ステップＳ８０２及びステップＳ８０３へ移行し、データ読み出しを行う。一方、１０個のセクタからの読み出しをそれぞれ５回行い、セクタＮ＝０１〜１００からのデータの読み出しが完了している場合（ステップＳ８０９：Ｙｅｓ）、処理を終了する。
【００４３】
制御部３１は、ステップＳ８０２，ステップＳ８０３において、ＨＤＤ４−１のセクタＮ〜Ｎ＋１０からデータを読み出しているときに異常が発生した場合、またはＨＤＤ４−２のセクタＮ＋１１〜Ｎ＋２０からデータを読み出しているときに異常が発生した場合（ステップＳ８０２，ステップＳ８０３：ＮＧ（異常））、読み出しエラーが発生したＨＤＤ４−１，４−２における設定分のセクタからデータを繰り返して読み出す（ステップＳ８０５）。読み出しが正常に完了した場合（ステップＳ８０５：ＯＫ（正常））、ステップＳ８０４へ移行し、次の読み出しを行うため、Ｎ＝Ｎ＋２０を設定する。
【００４４】
制御部３１は、ステップＳ８０５において、読み出しエラーが発生したＨＤＤ４−１，４−２における設定分のセクタからデータを繰り返して読み出しているときに異常が再度発生した場合（ステップＳ８０５：ＮＧ（異常））、繰り返し読み出しを行ったＨＤＤ４−１，４−２が故障したと判定する（ステップＳ８０６）。
【００４５】
制御部３１は、ステップＳ８０６において、ＨＤＤ４−１，４−２のうちの１台が故障したと判定した場合（ステップＳ８０６：１台ＮＧ）、故障したＨＤＤからの読み出しを止め、すなわち並列読み出し処理を止め、ＨＤＤ４−１，４−２のうちの故障していないＨＤＤにて、図１０に示した異常処理を行い（ステップＳ８０７）、ステップＳ８０４へ移行する。ステップＳ８０７においては、論理アドレスマップは、図５のマップからＨＤＤ４−１または４−２の一方だけのセクタアドレスが記載されたマップに移行する。すなわち、制御部３１は、ステップＳ８０７において、ＨＤＤ４−１，４−２のうちの故障していないＨＤＤをマスターに設定し、故障しているＨＤＤを切り離し、セクタ（Ｎ〜Ｎ＋１０）または（Ｎ＋１１〜Ｎ＋２０）の読み出しを行う。一方、ステップＳ８０６において、ＨＤＤ４−１，４−２の両方が故障したと判定した場合（ステップＳ８０６：２台ＮＧ）、データ読み出しに失敗したと判定し（ステップＳ８０８）、処理を終了する。
【００４６】
以上のように、図１に示した本発明の実施形態による記録装置２によれば、ＲＡＩＤコントローラ３の制御部３１は、従来のＨＤＤにおけるミラーリング方式に改良を加え、記憶部３２に格納された論理アドレスマップに基づいて、ＰＣ本体１から指定された記録装置２の論理アドレスをＨＤＤ４−１，４−２のセクタアドレスに変換し、ＨＤＤ４−１，４−２の連続したセクタに対し、所定数のブロックを読み出し単位として、ブロック毎に常に並列に読み出すようにした。これにより、ミラーリングされたＨＤＤ４−１，４−２からデータを読み出す際に、読み出し速度の高速化を実現することができる。したがって、古い老朽化した記録装置２から、記録速度の高い新しい記録装置等へデータをコピーする場合であっても、記録装置２からのデータ読み出し時間を短縮できるから、全体としてコピー時間が大幅に短縮でき、工業上非常に有用となる。
【００４７】
尚、読み出し単位を規定するブロックのサイズは、並列した連続読み出しの速度が最大になるように、ＨＤＤ４−１，４−２の性能（例えば、ヘッドのシーク時間）に応じて定められる。例えば、１ブロックのサイズは、１トラックを構成するセクタの数になるように定められる。
【００４８】
〔書き込み処理〕
次に、図１に示した記録装置２のＲＡＩＤコントローラ３による書き込み処理について説明する。データを記録する書き込み処理の場合も、ＲＡＩＤコントローラ３は、図４に示した構成を適用することができる。
【００４９】
図２を参照して、記録されるファイルのデータ長が短い場合、記録装置２のＲＡＩＤコントローラ３は、ＰＣ本体１からファイルの書き込み指令を入力し、２セクタを１ブロックとし、２ブロックを書き込み単位として、ファイルを構成する最初の２セクタ分のデータをＨＤＤ４−１のセクタＳ００１，Ｓ００２に記録すると共に、ファイルを構成する次の２セクタ分のデータをＨＤＤ４−２のセクタＳ００３，Ｓ００４に記録する。これらの記録は、ブロック毎に並列に行う。ここで、並列に記録するとは、一方のデータを記録する書き込み処理と他方のデータを記録する書き込み処理とを同時に行うことをいう。そして、ＲＡＩＤコントローラ３は、書き込み完了をＰＣ本体１へ出力し、ＨＤＤ４−１のセクタＳ００１，Ｓ００２に記録した同一のデータを、ＨＤＤ４−２のセクタＳ００１，Ｓ００２に記録すると共に、ＨＤＤ４−２のセクタＳ００３，Ｓ００４に記録した同一のデータをＨＤＤ４−１のセクタＳ００３，Ｓ００４に記録する。これにより、ＨＤＤ４−１，４−２に同一のデータが記録され、ミラーリングが実現される。
【００５０】
このように、ファイルを構成するデータは、ＨＤＤ４−１，４−２のセクタを２セクタずつのブロックに分け、ブロックを単位とした４セクタ（２ブロック）を書き込み単位として、ＨＤＤ４−１，４−２にブロック毎に並列に記録される。これにより、１台のＨＤＤのセクタＳ００１〜Ｓ００４にデータを順番に記録する書き込み処理に比べ、約２倍の速度で書き込みを行うことができる。また、ＰＣ本体１は、１台のＨＤＤのセクタＳ００１〜Ｓ００４にデータが順番に記録されるときよりも早いタイミングで（約２倍早いタイミングで）書き込み完了を入力することができ、書き込み後の処理を早いタイミングで行うことができる。
【００５１】
図３を参照して、記録されるファイルのデータ長が長い場合も図２と同様に、記録装置２のＲＡＩＤコントローラ３は、２セクタを１ブロックとし、２ブロックを書き込み単位として、ＨＤＤ４−１への記録とＨＤＤ４−２への記録とをブロック毎に並列に行う。そして、ＲＡＩＤコントローラ３は、書き込み完了をＰＣ本体１へ出力し、ＨＤＤ４−１に記録した同一のデータを、ＨＤＤ４−２の同じセクタアドレスに記録すると共に、ＨＤＤ４−２に記録した同一のデータを、ＨＤＤ４−１の同じセクタアドレスに記録する。
【００５２】
これにより、１台のＨＤＤのセクタＳ００１〜Ｓ０１０にデータを順番に記録する書き込み処理に比べ、約２倍の速度で連続的な書き込みを行うことができる。また、ＰＣ本体１は、早いタイミングで書き込み完了を入力することができ、書き込み後の処理を早いタイミングで行うことができる。
【００５３】
（ＲＡＩＤコントローラ）
次に、図１及び図４に示したＲＡＩＤコントローラ３による書き込み処理について詳細に説明する。図９は、ＲＡＩＤコントローラ３における制御部３１の書き込み処理を示すフローチャートである。ＲＡＩＤコントローラ３の制御部３１は、ＰＣ本体１から、論理アドレスを含む書き込み指令及びデータを入力すると（ステップＳ９０１）、論理アドレスに対応するＨＤＤ４−１，４−２のセクタアドレスに、データを並列に記録する書き込み処理を行う（ステップＳ９０２，ステップＳ９１１〜ステップＳ９１４）。図５及び図６に示した例では、制御部３１は、ＰＣ本体１から、論理アドレスＳ００１〜Ｓ００４を含む書き込み指令（記録装置２の論理アドレスＳ００１〜Ｓ００４へデータを書き込むことを示す書き込み指令）及びデータを入力する。
【００５４】
制御部３１は、入力したデータをキャッシュメモリ５に格納し（ステップＳ９１１）、論理アドレスマップを記憶部３２から読み出す（ステップＳ９１２）。そして、制御部３１は、論理アドレスマップから、入力した書き込み指令に含まれる論理アドレスに対応するセクタアドレスを取得する（ステップＳ９１３）。例えば、制御部３１は、図５に示した論理アドレスマップを読み出し、書き込み指令に含まれる論理アドレスＳ００１〜Ｓ００４に対応するセクタアドレスＳ１０１，Ｓ１０２，Ｓ２０３，Ｓ２０４を取得する。
【００５５】
制御部３１は、キャッシュメモリ５からデータを読み出し、所定の書き込み単位のブロック毎に、ＨＤＤ４−１，４−２にデータを並列に記録する（ステップＳ９１４）。例えば、制御部３１は、２セクタを１ブロックとし、２ブロックを書き込み単位として、キャッシュメモリ５からデータを読み出し、ＨＤＤ４−１のセクタアドレスＳ１０１，Ｓ１０２に、最初の２セクタ分のデータを記録し、ＨＤＤ４−２のセクタアドレスＳ２０３，Ｓ２０４に、次の２セクタ分のデータを記録する。この記録はブロック毎に並列に行う。
【００５６】
制御部３１は、書き込み完了をＰＣ本体１へ出力する（ステップＳ９０３）。これにより、ＰＣ本体１は、書き込み完了を入力することで、記録装置２において後述するステップＳ９０４のコピー処理によるミラーリングが完了する前に、書き込み後の処理を行うことができる。
【００５７】
制御部３１は、ＨＤＤ４−１に記録した同一のデータを、ＨＤＤ４−２の同じセクタアドレスにコピーすると共に、ＨＤＤ４−２に記録した同一のデータを、ＨＤＤ４−１の同じセクタアドレスにコピーする（ステップＳ９０４）。これにより、ＨＤＤ４−１，４−２のミラーリングが実現される。
【００５８】
以上のように、図１に示した本発明の実施形態による記録装置２によれば、ＲＡＩＤコントローラ３の制御部３１は、従来のＨＤＤにおけるミラーリング方式に改良を加え、記憶部３２に格納された論理アドレスマップに基づいて、ＰＣ本体１から指定された記録装置２の論理アドレスをＨＤＤ４−１，４−２のセクタアドレスに変換し、ＨＤＤ４−１，４−２の連続したセクタに対し、所定数のブロックを書き込み単位として、ブロック毎に常に並列に書き込むようにした。これにより、ＨＤＤ４−１，４−２にデータを記録してミラーリングを行う際に、書き込み速度の高速化を実現することができる。
【００５９】
尚、書き込み単位を規定するブロックのサイズは、並列した連続書き込みの速度が最大になるように、ＨＤＤ４−１，４−２の性能（例えば、ヘッドのシーク時間）に応じて定められる。例えば、１ブロックのサイズは、１トラックを構成するセクタの数になるように定められる。
【００６０】
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、前記実施形態では、２台のＨＤＤ４−１，４−２からデータを読み出し、２台のＨＤＤ４−１，４−２にデータを記録する場合について説明したが、ＨＤＤは必ずしも２台である必要はなく、３台以上であってもよい。例えば、記録装置２が３台のＨＤＤを備える場合、ＲＡＩＤコントローラ３の制御部３１は、３台のＨＤＤの連続したセクタに対し、所定数のブロックをアクセス単位として、ブロック毎に常に並列にアクセスする。
【００６１】
また、前記実施形態では、図５の論理アドレスマップの構成例に示したように、アクセス単位を構成する複数のブロックのうち、同じ数のブロックのセクタをＨＤＤ４−１，４−２にそれぞれ振り分けるようにした。これに対し、記録装置２が３台以上のＨＤＤを備える場合も、アクセス単位を構成する複数のブロックのうち、同じ数のブロックのセクタをそれぞれのＨＤＤに振り分けるようにすればよい。例えば、記録装置２が３台のＨＤＤを備え、アクセス単位が６個のブロックの場合、２個のブロックのセクタをそれぞれ３台のＨＤＤに振り分けるようにすればよい。
【００６２】
また、前記実施形態では、図８のステップＳ８０５〜ステップＳ８０８に示したように、ＲＡＩＤコントローラ３の制御部３１は、ＨＤＤ４−１，４−２のうちの１台が故障したと判定した場合、並列読み出し処理を止め、ＨＤＤ４−１，４−２のうちの故障していないＨＤＤにて、図１０に示した異常処理を行い、また、ＨＤＤ４−１，４−２の両方が故障したと判定した場合、データ読み出しに失敗したと判定し、処理を終了するようにした。これに対し、記録装置２が３台以上のＨＤＤを備える場合、ｎ（ｎは３以上の整数とする。）台のＨＤＤのうちの（ｎ−１）台が故障したと判定した場合、並列読み出し処理を止め、故障していない１台のＨＤＤにて、図１０に示した通常の異常処理を行う。また、ｎ台のＨＤＤのうちの１〜（ｎ−２）台が故障したと判定した場合、故障していない２台以上のＨＤＤを用いて、前述した並列読み出し処理を行う。また、ｎ台のＨＤＤが故障したと判定した場合、データ読み出しに失敗したと判定し、処理を終了する。
【符号の説明】
【００６３】
１  ＰＣ本体
２  記録装置
３  ＲＡＩＤコントローラ
４−１，４−２  ＨＤＤ
５  キャッシュメモリ
３１  制御部
３２  記憶部
【図１】
2012103856.tif 000003
【図２】
2012103856.tif 000004
【図３】
2012103856.tif 000005
【図４】
2012103856.tif 000006
【図５】
2012103856.tif 000007
【図６】
2012103856.tif 000008
【図７】
2012103856.tif 000009
【図８】
2012103856.tif 000010
【図９】
2012103856.tif 000011
【図１０】
2012103856.tif 000012