(57)【要約】【課題】ＨＤＤアレイユニットにおいて、パリティ用のデコーダの処理効率を向上させることにより、パリティ用のＨＤＤを３台以上設けることによってエラー訂正能力を高めるような場合にもデータ転送速度の低下を防止する。【解決手段】所定のタイムスロット毎にエラー訂正処理の複数の工程を並列的に実行することにより、順次供給される符号語についてのエラー訂正処理をパイプライン処理によって行うデコーダを備える。【選択図】図８
2007200027.tif 000002
【特許請求の範囲】
【請求項１】
複数台のデータ用のハードディスクドライブと、
複数台のパリティ用のハードディスクドライブと、
記録処理系と、
再生処理系と
を有し、
前記記録処理系は、
記録対象のデータを、前記データ用のハードディスクドライブの台数分のワード長を単位とする単位データに区切る手段と、
各々の前記単位データに基づいて、前記パリティ用のハードディスクドライブの台数分のワード長のエラー訂正符号を生成し、該生成したエラー訂正符号を該単位データに付加した符号語を生成するエンコーダと、
各々の前記符号語を、前記データ用のハードディスクドライブ，前記パリティ用のハードディスクドライブにそれぞれ記録するための１ワード分ずつのエラー訂正符号，データに分離する手段と
を備え、
前記再生処理系は、
各々の前記データ用のハードディスクドライブから再生された１ワード分ずつのデータと、各々の前記パリティ用のハードディスクドライブから再生された１ワード分ずつのエラー訂正符号とを結合して前記符号語を復元する手段と、
所定のタイムスロット毎にエラー訂正処理の複数の工程を並列的に実行することにより、順次供給される複数の前記復元された前記符号語についてのエラー訂正処理をパイプライン処理によって行うデコーダと、
前記訂正された各々の前記単位データを連結して記録時のデータを復元する手段と
を備えたことを特徴とするデータ蓄積装置。
【請求項２】
請求項１に記載のデータ蓄積装置において、
前記デコーダを、前記再生処理系に前記データを供給するバスのビット幅と前記エラー訂正符号のビット幅との比率に応じた台数並列に設け、
各々の前記デコーダが、並列的に前記パイプライン処理を行う
ことを特徴とするデータ蓄積装置。
【請求項３】
請求項１に記載のデータ蓄積装置において、
前記パリティ用のハードディスクドライブを３台以上有する
ことを特徴とするデータ蓄積装置。
【請求項４】
請求項１に記載のデータ蓄積装置において、
前記エラー訂正符号はリードソロモン符号であり、
前記デコーダは、前記リードソロモン符号によるエラー訂正処理を、
前記符号語内でのデータの消失位置を示す情報の入力と、前記符号語の入力と、前記符号語からのシンドロームの算出とから成る第１の工程と、
前記消失位置を示す情報からの消失位置多項式及び消失位置のデータの生成と、該消失位置多項式及び前記シンドロームからの修正シンドロームの算出とから成る第２の工程と、
前記修正シンドロームから誤り位置多項式及び誤り評価多項式を生成する第３の工程と、
前記消失位置多項式，前記消失位置のデータ，前記誤り位置多項式及び前記誤り評価多項式から誤りの大きさ及び消失の大きさを算出する第４の工程と、
前記消失位置多項式，前記消失位置のデータ，前記誤りの大きさ及び前記消失の大きさからの前記符号語のエラーの訂正と、検算処理とから成る第５の工程と
の５つの工程に分け、各々の前記工程を前記所定のタイムスロット毎に並行して実行する
ことを特徴とするデータ蓄積装置。
【請求項５】
請求項１に記載のデータ蓄積装置において、
前記エンコーダを、前記記録処理系に前記記録対象のデータを供給するバスのビット幅と前記エラー訂正符号のビット幅との比率に応じた台数並列に設け、
各々の前記エンコーダが、並列的に前記符号語を生成する
ことを特徴とするデータ蓄積装置。
【請求項６】
複数台のデータ用のハードディスクドライブと、
複数台のパリティ用のハードディスクドライブと、
記録処理系と、
再生処理系と
を有し、
前記記録処理系は、
記録対象のデータを、前記データ用のハードディスクドライブの台数分のワード長を単位とする単位データに区切る手段と、
各々の前記単位データに基づいて、前記パリティ用のハードディスクドライブの台数分のワード長のエラー訂正符号を生成し、該生成したエラー訂正符号を該単位データに付加した符号語を生成するエンコーダと、
各々の前記符号語を、前記データ用のハードディスクドライブ，前記パリティ用のハードディスクドライブにそれぞれ記録するための１ワード分ずつのエラー訂正符号，データに分離する手段と
を備え、
前記再生処理系は、
各々の前記データ用のハードディスクドライブから再生された１ワード分ずつのデータと、各々の前記パリティ用のハードディスクドライブから再生された１ワード分ずつのエラー訂正符号とを結合して前記符号語を復元する手段と、
前記復元された前記符号語のうちの前記エラー訂正符号を用いて前記単位データのエラーを訂正するデコーダと、
前記訂正された各々の前記単位データを連結して記録時のデータを復元する手段と
を備えたデータ蓄積装置におけるエラー訂正方法において、
前記デコーダが、所定のタイムスロット毎にエラー訂正処理の複数の工程を並列的に実行することにより、順次供給される複数の前記符号語についてのエラー訂正処理をパイプライン処理によって行う
ことを特徴とするエラー訂正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数台のＨＤＤ（ハードディスクドライブ）を用いてデータを蓄積する装置に関し、特に、データ転送速度を低下させることなく、エラー訂正能力を高めたものに関する。
【背景技術】
【０００２】
近年、放送局やポストプロダクションでは、ＡＶ（オーディオ・ビデオ）データを蓄積するストレージとして、複数台のＨＤＤを搭載して大容量を実現したＨＤＤアレイユニットが使用されている。
【０００３】
例えば、放送局で編集システムや送出システムとして用いられるＡＶサーバーでも、こうしたＨＤＤアレイユニットが使用されている。ＡＶサーバーは、ＡＶデータ入出力用の複数の入出力ポートを有し、これらの入出力ポートとＨＤＤアレイユニットとの間で高速にＡＶデータを転送する。
【０００４】
このＡＶサーバーは、求められるレスポンスについての制約がＩＴ関連用途のそれと比較すればより厳しく、より高いリアルタイム性が要求される。動画像の破綻ない記録再生処理のためには、ストレージ装置のレスポンスの遅れは致命的となる。さらに、放送の送出システムのＡＶサーバーでは、装置のトラブルに起因する放送上の事故は許されず、送出スケジュール通りの運用動作をこなす必要があるため、リアルタイム性の保証、及び高い信頼性能が要求される。
【０００５】
ところが、ＨＤＤは、動作信頼性やリアルタイム性（レスポンス性能）はあまり高くないデバイスである。そこで、ＡＶサーバーでは、ＨＤＤアレイユニットを、冗長性を持たせたＲＡＩＤ（Redundant Arrays of Inexpensive Disks）構成とすることにより、ＨＤＤに障害（故障やタイムアウト（再生コマンドを送ってから一定時間内にデータが再生されないこと））が発生した場合にデータを復旧できるようにしている。
【０００６】
ＲＡＩＤにはＲＡＩＤ１〜６というレベルが存在するが、従来のＡＶサーバーのＨＤＤアレイユニットでは、主にＲＡＩＤ３またはＲＡＩＤ５が採用されていた。ＲＡＩＤ３，ＲＡＩＤ５では、パリティ（エラー訂正符号）用のＨＤＤを１台設け、いずれか１台のＨＤＤに障害が発生してもデータを復旧することができる。
【０００７】
ＲＡＩＤ６は、ＲＡＩＤ５の拡張であり、パリティ用のＨＤＤを２台設け、同時に２台のＨＤＤに障害が発生してもデータを復旧できるようにしている。また、従来、文献上も、ＡＶサーバーのＨＤＤアレイユニットに関する技術として、パリティ用のＨＤＤを２台設け、データの記録時には、入力データを所定単位で分割して、複数の分割データを生成すると共に、入力データに基づいて、入力データに対して複数の分割データのエラー訂正が可能なリードソロモン符号による冗長符号データＰ１，Ｐ２を生成し、この複数の分割データを複数台のＨＤＤに記録するとともに、この冗長符号データＰ１，Ｐ２をこの２台のパリティ用のＨＤＤに記録し、データの再生時には、各ＨＤＤから、この複数の分割データと冗長符号データＰ１，Ｐ２とを再生し、再生された冗長符号データＰ１，Ｐ２を用いて、再生された複数の分割データに対するエラー訂正処理を行い、このエラー訂正処理後の各分割データを多重化して出力するという技術が提案されていた（特許文献１参照）。
【０００８】
【特許文献１】特開平１１−３１６６５６号公報（段落番号０１０５、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところが、近年、ＨＤＤアレイユニットの内部では、電子デバイス技術の進化に伴い、高速なシリアルデータ伝送技術（シリアルＡＴＡ等）が用いられるようになりつつあり、伝送路のクロックレートはＧＨｚのオーダーとなっている。もし、この伝送路での偶発的エラー（例えばＨＤＤのコネクタが外れていることなど）を検出することが可能であり、この偶発的エラーが検出されたときにリトライをしたとしても、ＡＶサーバーのようなリアルタイム性の要求されるシステムにおいては、リトライをした時点で既にシステム全体としては障害発生に至る可能性があり、何らかの形で遅れを伴うことなく修復することが望ましい。例えば、ＨＤＤに障害が発生した状態で、さらに伝送路等で偶発的エラーが発生した場合にも、システムの運用に支障を来たさないようにエラー訂正を行える高い信頼性能が求められる。
【００１０】
しかるに、ＲＡＩＤ３やＲＡＩＤ５では、ＨＤＤに障害が発生した状態でこうした偶発的エラーが発生すると、故障したＨＤＤのデータを復旧することができなくなる。また、ＲＡＩＤ６や、上記特許文献１に記載の技術のように、パリティ用のＨＤＤを２台設けた場合でも、同時に２台のＨＤＤに障害が発生した状態でこうした偶発的エラーが発生すると、それらのＨＤＤのデータを復旧することができなくなる。
【００１１】
そこで、パリティ用のＨＤＤを３台以上（例えば４台）設けることにより、エラー訂正能力を高めることが望まれる。しかし、パリティ用のＨＤＤを３台以上に増やして、既存のパリティ用のエンコーダ及びデコーダを用いてエラー訂正を行おうとすると、特に、デコーダに対する処理待ちの時間が長くなってしまう。
【００１２】
具体的には、ＡＶデータ用のＨＤＤを１０台設け、パリティ用のＨＤＤを４台設けた場合を例にとると、パリティ用のエンコーダでは、ＡＶデータ用の１０台のＨＤＤに１ワード分ずつ振り分けて記録させるために１０ワード長を単位として区切られたＡＶデータに、パリティ用のＨＤＤの台数分である４ワード長のパリティを付加して、１４ワード長の符号語を生成する。そして、パリティ用のデコーダは、これらの合計１４台のＨＤＤから並列に再生される各符号語（各ＨＤＤから並列に１ワードずつとった１４ワード長）を、順に入力してデコード（エラ−訂正）処理を実行する。１４ワード長の符号語を入力するのに要する時間はクロック信号の１４周期分であるのに対し、４ワードのパリティを用いた１０ワードのＡＶデータのデコード処理にはその数倍（クロック信号の数十周期分）の時間を要する。そのため、既存のパリティ用のデコーダを用いてデコード処理を実行させた場合、１４ワード長の符号語毎にこの数十周期分の処理時間を要するので、デコーダに対する処理待ちの時間が非常に長くなる。
【００１３】
このようにＨＤＤアレイユニット内でのパリティ用のデコーダに対する処理待ちの時間が長くなると、ＨＤＤアレイユニットのデータ転送速度が低下してしまう。その結果、ＡＶサーバーに要求されるリアルタイム性を満たすことが困難になる。
【００１４】
なお、このようにデコーダに対する処理待ちの時間が長くなる現象は、複数台（前述の例では１０台）のＨＤＤにデータを振り分けて記録するというＨＤＤアレイユニットの性質上、特に問題となる現象である。すなわち、一般にテープ、ディスク等のディジタル記録メディアで用いられるリードソロモン符号は、数十ワード以上を単位としてパリティを付加するケースが主であり、例えば、１００ワード長の符号語を使用したケースを仮定すると、デコーダに入力するのに要する時間がクロック信号１００周期分以上になり、したがってこの時間内にデコード処理を終了することができる。これに対し、ＨＤＤアレイユニットでは、複数台のＨＤＤに振り分けて記録するために短く区切ったデータ（前述の例では１０ワード長のデータ）毎にパリティを付加するので、符号語の長さが非常に短くなる。そのため、符号語の入力に要する時間に対してデコード処理に要する時間が長くなり、デコーダに対する処理待ちの時間が長くなってしまう。
【００１５】
このようにＨＤＤアレイユニット内でのパリティ用のデコーダに対する処理待ちの時間が長くなると、ＨＤＤアレイユニットのデータ転送速度が低下してしまう。その結果、ＡＶサーバーに要求されるリアルタイム性を満たすことが困難になる。
【００１６】
本発明は、上述の点に鑑み、ＡＶサーバーのストレージ等として使用されるＨＤＤアレイユニットにおいて、パリティ用のデコーダの処理効率を向上させることにより、パリティ用のＨＤＤを３台以上設けることによってエラー訂正能力を高めるような場合にもデータ転送速度の低下を防止することを課題としてなされたものである。
【課題を解決するための手段】
【００１７】
この課題を解決するために、本発明は、複数台のデータ用のＨＤＤと、複数台のパリティ用のＨＤＤと、記録処理系と、再生処理系とを有し、この記録処理系は、記録対象のデータを、このデータ用のＨＤＤの台数分のワード長を単位とする単位データに区切る手段と、各々のこの単位データに基づいて、このパリティ用のＨＤＤの台数分のワード長のパリティを生成し、この生成したパリティをこの単位データに付加した符号語を生成するエンコーダと、各々のこの符号語を、このデータ用のＨＤＤ，このパリティ用のＨＤＤにそれぞれ記録するための１ワード分ずつのパリティ，データに分離する手段とを備え、この再生処理系は、各々のこのデータ用のＨＤＤから再生された１ワード分ずつのデータと、各々のこのパリティ用のＨＤＤから再生された１ワード分ずつのパリティとを結合してこの符号語を復元する手段と、所定のタイムスロット毎にエラー訂正処理の複数の工程を並列的に実行することにより、順次供給される複数のこの復元されたこの符号語についてのエラー訂正処理をパイプライン処理によって行うデコーダと、この訂正された各々のこの単位データを連結して記録時のデータを復元する手段とを備えたことを特徴とする。
【００１８】
また本発明は、複数台のデータ用のＨＤＤと、複数台のパリティ用のＨＤＤと、記録処理系と、再生処理系とを有し、この記録処理系は、記録対象のデータを、このデータ用のＨＤＤの台数分のワード長を単位とする単位データに区切る手段と、各々のこの単位データに基づいて、このパリティ用のＨＤＤの台数分のワード長のパリティを生成し、この生成したパリティをこの単位データに付加した符号語を生成するエンコーダと、各々のこの符号語を、このデータ用のＨＤＤ，このパリティ用のＨＤＤにそれぞれ記録するための１ワード分ずつのパリティ，データに分離する手段とを備え、この再生処理系は、各々のこのデータ用のＨＤＤから再生された１ワード分ずつのデータと、各々のこのパリティ用のＨＤＤから再生された１ワード分ずつのパリティとを結合してこの符号語を復元する手段と、この復元されたこの符号語のうちのこのパリティを用いてこの単位データのエラーを訂正するデコーダと、この訂正された各々のこの単位データを連結して記録時のデータを復元する手段とを備えたデータ蓄積装置におけるエラー訂正方法において、このデコーダが、所定のタイムスロット毎にエラー訂正処理の複数の工程を並列的に実行することにより、順次供給される複数のこの符号語についてのエラー訂正処理をパイプライン処理によって行うことを特徴とする。
【００１９】
本発明によれば、データの記録時に、データ用のＨＤＤの台数分のワード長を単位として区切られた単位データにパリティ用のＨＤＤの台数分のワード長のパリティが付加されることにより非常に短い符号語が生成されるが、デ−タの再生時に、パリティ用のデコーダが、所定のタイムスロット（単位処理時間）毎にエラー訂正処理の複数の工程を並列的に実行することにより、各ＨＤＤから再生・復元されて順次供給される複数の符号語についてのエラー訂正処理をパイプライン処理によって行う。
【００２０】
したがって、個々の符号語を入力するのに要する時間に対してそのデコード処理には数倍の時間を要するにもかかわらず、デコード処理の所要時間を工程（ステージ）の数で割った時間である１タイムスロット毎に、順次供給される符号語についてのエラー訂正が１符号語ずつ完了して、エラー訂正したデータが出力される。
【００２１】
これにより、個々の符号語が入力される時間間隔と、エラー訂正した個々のデータが出力される時間間隔との差を小さくすること、すなわち、パリティ用のデコーダの処理効率を向上させて、このデコーダに対する処理待ちの時間を短くすることができる。
【００２２】
したがって、ＨＤＤアレイユニットにおいて、パリティ用のＨＤＤを３台以上設けることによってエラー訂正能力を高めるような場合にも、データ転送速度の低下を防止することができる
【発明の効果】
【００２３】
本発明によれば、ＨＤＤアレイユニットにおいて、パリティ用のデコーダの処理効率を向上させて、このデコーダに対する処理待ちの時間を短くすることができるので、パリティ用のＨＤＤを３台以上設けることによってエラー訂正能力を高めるような場合にも、データ転送速度の低下を防止できるという効果が得られる。
【発明を実施するための最良の形態】
【００２４】
以下、放送局で用いられるＡＶサーバーのストレージに本発明を適用した例について、図面を用いて具体的に説明する。図１は、本発明を適用したＡＶサーバーのストレージ部の構成を示すブロック図である。このストレージ部１には、ＦＣ（ファイバチャネル：Fibre Channel）コントローラ２と、記録再生処理系３と、キャッシュメモリ４と、ＨＤＤコントローラ５と、ストレージ部１全体を制御するＣＰＵ６とが設けられている。ＦＣコントローラ２と記録再生処理系３とは、高いデータ転送レートを実現する目的で、ＰＣＩ−Ｘ規格の６４ビット幅のバス７によって接続されている。記録再生処理系３とＨＤＤコントローラ５とも、同じ理由でＰＣＩ−Ｘ規格のバス８によって接続されている。
【００２５】
また、このストレージ部１には、１５台のＨＤＤ９（ＨＤＤ９（１）〜９（１５））が搭載される。これらのＨＤＤ９のうち、１０台のＨＤＤ９（１）〜９（１０）はＡＶデータ用のＨＤＤであり、４台のＨＤＤ９（１１）〜９（１４）はパリティ用のＨＤＤであり、残りの１台のＨＤＤ９（１５）はスペア用のＨＤＤである。
【００２６】
ＦＣコントローラ２は、外部との間でファイバチャンネル経由でＡＶデータを授受するためのインターフェースである。記録再生処理系３は、プログラム可能なＬＳＩであるＦＰＧＡで構成されており、記録処理系と、再生処理系と、リビルド処理系とを含んでいる。
【００２７】
記録処理系は、記録対象のＡＶデータにパリティを付加してＨＤＤ９（１）〜９（１４）に割り振る処理を行う。再生処理系は、ＨＤＤ９（１）〜９（１０）から再生されたＡＶデータを、ＨＤＤ９（１１）〜９（１４）から再生されたパリティを用いてエラー訂正する処理を行う。リビルド処理系は、再生時にＨＤＤ９（１）〜９（１４）のうちのいずれかのＨＤＤに障害（故障やタイムアウト）が発生した場合、そのＨＤＤ内のＡＶデータを、残りのＨＤＤ９（１）〜９（１４）から読み出したＡＶデータ及びパリティを用いて復元して、スペア用のＨＤＤ９（１５）に記録する処理を行う。記録処理系，再生処理系の構成及び処理については、後で詳細に説明する。
【００２８】
キャッシュメモリ４は、ＡＶデータをバッファリングするためのＤＩＭＭ（Dual Inline Memory Module）規格のＳＤＲＡＭである。ＨＤＤコントローラ５は、例えばＨＤＤ９としてＳＡＴＡ（シリアルＡＴＡ）に対応したＨＤＤを使用する場合には、ＳＡＴＡコントローラである。
【００２９】
図２は、図１のストレージ部１を用いて放送局内に設置されるＡＶサーバーのシステム構成を示す図である。このＡＶサーバーでは、複数のストレージ部１と、複数の入出力プロセッサー部１１と、中継用端末１２とが、ＦＣ（ファイバチャネル：Fibre Channel）スイッチ１３によって接続される。また、各入出力プロセッサー部１１と、中継用端末１２と、管理用端末１４と、メンテナンス用端末１５とが、イーサネット（登録商標）１６によって接続されている。
【００３０】
入出力プロセッサー部１１は、複数（例えば６つ）の入出力ポートを有しており、ＳＤＩ（Serial DigitalInterface）等の同期系の伝送フォーマットや、あるいは非同期系の伝送フォーマットで、外部との間でＡＶデータを入出力する。
【００３１】
入出力プロセッサー部１１は、入出力ポートに入力したＡＶデータを、所定の符号化方式でエンコード（圧縮）して、ＦＣスイッチ１３経由でストレージ部１に転送する。また、入出力プロセッサー部１１は、ストレージ部１からＦＣスイッチ１３経由で転送されたデータを、デコード（伸張）して入出力ポートから出力する。
【００３２】
なお、一般的なＡＶサーバーの入出力プロセッサー部の構成は周知であり、本発明を適用するＡＶサーバーの入出力プロセッサー部の構成はそうした一般的なものであってよいので、その詳細説明は省略する。
【００３３】
中継用端末１２は、ネットワーク１７によって複数台の編集用端末１８と接続されており、ストレージ部１と編集用端末１８との間のＡＶデータの授受と、入出力プロセッサー部１１や管理用端末１４と編集用端末１８との間の情報の授受とを中継する。
【００３４】
管理用端末１４は、ストレージ部１内におけるＡＶデータの記憶アドレスやそのＡＶデータのファイル名・属性等の情報を保持し、イーサネット（登録商標）１６経由での入出力プロセッサー部１１や中継用端末１２からの要求に応じて、これらの情報を入出力プロセッサー部１１や中継用端末１２に送る。
【００３５】
メンテナンス用端末１５は、メンテナンス要員が操作する端末であり、各ストレージ部１や各入出力プロセッサー部１１が生成・保存したログデータを表示させてＡＶサーバーの状態を分析したり、ストレージ部１内のＨＤＤの故障時に表示される警告に基づいてＨＤＤの交換等を決定する。
【００３６】
次に、ストレージ部１内の記録再生処理系３の構成及び処理について詳細に説明する。図３は、記録再生処理系３のうちの記録処理系の部分の構成を示すブロック図である。記録処理系は、プリバッファ２１と、ＲＳ（リードソロモン）エンコーダ２２と、ストライピング回路２３と、各ＨＤＤ９（１）〜９（１４）用の合計１４個のデータバッファ２４と、図１のキャッシュメモリ４を制御するキャッシュメモリコントローラ２５とを含んでいる。
【００３７】
ＡＶデータの記録時（図２の入出力プロセッサー部１１や中継用端末１２からのＡＶデータ及び記録コマンドの受信時）には、図１のＦＣコントローラ２で受信されてバス７経由で供給される６４ビット幅のＡＶデータが、まずプリバッファ２１に書き込まれる。プリバッファ２１は、このＡＶデータを、図４Ａに示すように、１０台のＡＶデータ用のＨＤＤ９（１）〜９（１０）に１ワード分ずつ振り分けて記録させるための１０ワード長単位のＡＶデータ（単位データと呼ぶことにする）に区切って読み出す。
【００３８】
ＲＳエンコーダ２２は、バス７のビット幅である６４ビットと、記録再生処理系３で使用するリードソロモン符号のビット幅である８ビットとの比率に応じて並列に設けた８台のエンコーダ（０）〜エンコーダ（７）で構成されている。プリバッファ２１から出力された６４ビット幅の各単位データは、図４Ｂに示すように、幅方向に８ビット幅ずつに８分割されて、各エンコーダ（０）〜エンコーダ（７）に供給される。
【００３９】
各エンコーダ（０）〜エンコーダ（７）は、それぞれ、供給された８ビット幅・１０ワード長の単位データから、８ビット幅・４ワード長（パリティ用のＨＤＤ９（１１）〜９（１４）の台数分のワード長）のリードソロモン符号を生成する。そして、図４Ｃに示すように、単位データにリードソロモン符号を付加して８ビット幅・１４ワード長の符号語を生成する。
【００４０】
このようにして各エンコーダ（０）〜エンコーダ（７）で並列的に生成された符号語は、幅方向に元の６４ビット幅に統合されて、ストライピング回路２３に供給される。ストライピング回路２３は、この６４ビット幅・１４ワード長の符号語を、図４Ｄに示すように、ＨＤＤ９（１）〜９（１０）にそれぞれ記録するための６４ビット幅・１ワード長ずつのＡＶデータと、ＨＤＤ９（１１）〜９（１４）にそれぞれ記録するための６４ビット幅・１ワード長ずつのリードソロモン符号とに分離する。
【００４１】
ストライピング回路２３によって分離されたこの１ワード長ずつのＡＶデータ，リードソロモン符号（図３のｗｏｒｄ０〜１３）は、それぞれＨＤＤ９（１）〜９（１４）用のデータバッファ２４に一時的に書き込まれる。そして、それぞれすぐにデータバッファ２４から読み出され、キャッシュメモリコントローラ２５によってキャッシュメモリ４に書き込まれる。
【００４２】
その後、ＣＰＵ６（図１）の制御のもとで、キャッシュメモリコントローラ２５によってキャッシュメモリ４からこのｗｏｒｄ０〜１３が読み出され、読み出されたｗｏｒｄ０〜１３が図１の６４ビット幅のバス８経由でＨＤＤコントローラ５に送られる。そして、ＨＤＤコントローラ５からＨＤＤ９（１）〜９（１０）にそれぞれｗｏｒｄ０〜９（１ワードずつのＡＶデータ）が送られて記録されるとともに、ＨＤＤコントローラ５からＨＤＤ９（１１）〜９（１４）にそれぞれｗｏｒｄ１０〜１３（１ワードずつのリードソロモン符号）が送られて記録される。
【００４３】
図５は、記録再生処理系３のうちの再生処理系の部分の構成を示すブロック図である。再生処理系は、各ＨＤＤ９（１）〜９（１４）用の合計１４個のデータバッファ３１と、デストライピング回路３２と、ＲＳ（リードソロモン）デコーダ３３と、ポストバッファ３４と、図３の記録処理系と共用されるキャッシュメモリコントローラ２５とを含んでいる。
【００４４】
ＨＤＤ９からのＡＶデータの再生時（図２の入出力プロセッサー部１１や中継用端末１２からの再生コマンドの受信時）には、ＨＤＤ９（１）〜９（１０）から再生される前述のｗｏｒｄ０〜９（１ワードずつのＡＶデータ）と、ＨＤＤ９（１１）〜９（１４）から再生される前述のｗｏｒｄ１０〜１３（１ワードずつのリードソロモン符号）とが、ＨＤＤコントローラ５から６４ビット幅のバス８経由でキャッシュメモリコントローラ２５に送られ、ＣＰＵ６（図１）の制御のもとで、キャッシュメモリコントローラ２５によってキャッシュメモリ４に書き込まれる。
【００４５】
その後、このｗｏｒｄ０〜１３は、キャッシュメモリコントローラ２５によってキャッシュメモリ４から読み出され、それぞれＨＤＤ９（１）〜９（１４）用のデータバッファ３１に一時的に書き込まれる。そして、それぞれすぐにデータバッファ３１から読み出されて、デストライピング回路３２に供給される。
【００４６】
デストライピング回路３２は、このｗｏｒｄ０〜１３を結合することにより、図６Ａに示すように、６４ビット幅・１４ワード長の符号語（図３の記録処理系のストライピング回路２３で分離する前の符号語）を復元する。但し、ＨＤＤ自体の障害（故障やタイムアウト）、あるいはＨＤＤコントローラ５とＨＤＤ９とを結ぶ伝送路等での偶発的エラー（例えばＨＤＤのコネクタが外れていること）により、いずれかのＨＤＤ９（１）〜９（１４）からのＡＶデータまたはリードソロモン符号が欠落している場合もあり得る。
【００４７】
ＲＳ（リードソロモン）デコーダ３３は、バス８のビット幅である６４ビットとリードソロモン符号のビット幅である８ビットとの比率に応じて並列に設けた８台のデコーダ（０）〜デコーダ（７）で構成されている（以下、個々のデコーダ（０）〜デコーダ（７）を、ＲＳデコーダ３３の「コア」と呼ぶことにする）。デストライピング回路３２から出力された６４ビット幅・１４ワード長の符号語は、図６Ｂに示すように、幅方向に８ビット幅ずつに８分割されて、各デコーダ（０）〜デコーダ（７）に供給される。
【００４８】
また、図１のＣＰＵ６からは、１４ワード長の符号語内でデータ（ＡＶデータまたはリードソロモン符号）が消失している位置を示す（すなわち、ＨＤＤ９（１）〜９（１４）のうち障害が発生してデータが欠落したＨＤＤを示す）情報であるエラーＨＤＤ−Ｎｏ．が、各デコーダ（０）〜デコーダ（７）に供給される。
【００４９】
ここで、パリティワード数が４であるリードソロモン符号自体の訂正能力を、下記の表を用いて説明する。
【表１】
2007200027.tif 000003
【００５０】
この表において、消失数ｈとは、１４ワード長の符号語内で消失しているデータの数である。１４ワード長の符号語内でどの位置のデータが消失しているかは、前述のように、ＣＰＵ６から供給される情報（エラーＨＤＤ−Ｎｏ．）によって判別することができる。
【００５１】
誤り数ｐ（ｍａｘ）とは、ＨＤＤコントローラ５とＨＤＤ９とを結ぶ伝送路（例えばＳＡＴＡ）等で発生した偶発的エラーの数であり、符号語内での位置は不明である。
【００５２】
訂正データ数ｔは、消失数ｈと誤り数ｐ（ｍａｘ）とを合わせた、エラー訂正可能なデータの数である。
【００５３】
この表の最下行に示すように、ＨＤＤ９（１）〜９（１４）のうちの４台のＨＤＤで障害が発生することによって符号語内の４つのデータが消失しても、それらのデータをエラー訂正することができる。したがって、ＲＳデコーダ３３は、４つのデータが消失していることを示すエラーＨＤＤ−Ｎｏ．が供給されれば、ＨＤＤ９（１）〜９（１４）のうちの１０台のＨＤＤからデータが再生されてデストライピング回路３２（図５）で結合された時点でデコード処理を開始して、この消失した４つのデータをエラー訂正することができる。
【００５４】
また、例えばこの表の下から３行目に示すように、ＨＤＤ９（１）〜９（１４）のうちの２台のＨＤＤで障害が発生することによって符号語内の２つのデータが消失した状態で、さらにＨＤＤコントローラ５と別の１台のＨＤＤとを結ぶ伝送路等で偶発的エラーが発生した場合にも、それらの３台のＨＤＤのデータをエラー訂正することができる。したがって、ＲＳデコーダ３３は、２つのデータが消失していることを示すエラーＨＤＤ−Ｎｏ．が供給されれば、ＨＤＤ９（１）〜９（１４）のうちの１２台のＨＤＤからデータが再生されてデストライピング回路３２で結合された時点でデコード処理を開始して、この消失した２つのデータをエラー訂正するとともに、偶発的エラーのあった別の１台のＨＤＤのデータをエラー訂正することができる。
【００５５】
次に、ＲＳデコーダ３３の各コアにおけるデコード処理について説明する。図７は、リードソロモン符号によるデコード処理の処理過程を、機能ブロックとして示す図である。なお、各部における処理過程の数学的な根拠については、既知の技術であるのでここでは言及しない。
【００５６】
ブロック４１では、図１のＣＰＵ６からの、ＨＤＤ９（１１）〜９（１４）のうちのどのＨＤＤで障害（故障やタイムアウト）が発生したかを示す情報であるエラーＨＤＤ−Ｎｏ．に基づき、消失位置多項式λ(z)と消失位置のデータαｗｊとを生成する。
【００５７】
ブロック４２では、図５のデストライピング回路３２から供給される符号語r(z)から、シンドロームS(z)を算出する。ブロック４３では、消失位置多項式λ(z)とシンドロームS(z)とから、修正シンドロームSε(z)を算出する。
【００５８】
ブロック４４では、修正シンドロームSε(z)から、ユークリッド法演算により誤り位置多項式σ(z)と誤り評価多項式φ(z)とを生成する。ブロック４５では、誤り位置多項式σ(z)からチェン探索法にて誤り位置αeiを算出する。
【００５９】
ブロック４６では、消失位置多項式λ(z)と、消失位置のデータαｗｊと、誤り位置多項式σ(z)と、誤り評価多項式φ(z)とから、誤りの大きさｅｉと消失の大きさｗｊとを算出する。
【００６０】
ブロック４８では、消失位置多項式λ(z)と、消失位置のデータαｗｊと、誤りの大きさｅｉと、消失の大きさｗｊとから、ブロック４７によって遅延された符号語r(z) のエラーを訂正する。また、リードソロモン符号の訂正能力を超えてエラーが生じた場合には誤訂正をしてしまうので、そういう状態かどうかをチェックするための検算処理を実行する。
【００６１】
この図７に示したデコード処理を、デストライピング回路３２からの１４ワード長の符号語に対して実行する場合、〔発明が解決しようとする課題〕で述べたように、１４ワード長の符号語を入力するのに要する時間はクロック信号の１４周期分であるのに対し、デコード処理にはその数倍（クロック信号の数十周期分）の時間を要してしまう。
【００６２】
そこで、ＲＳデコーダ３３の各コア（デコーダ（０）〜デコーダ（７））は、この図７のデコード処理を、次の（１）〜（５）の５つの工程に分ける。
【００６３】
工程（１）：ブロック４１へのエラーＨＤＤ−Ｎｏ．の入力と、ブロック４２の符号語の入力及びシンドローム算出。
工程（２）：ブロック４１の消失位置多項式及び消失位置のデータ生成と、ブロック４３の修正シンドローム算出。
【００６４】
工程（３）：ブロック４４の誤り位置多項式及び誤り評価多項式の生成。
工程（４）：ブロック４５の誤り位置算出と、ブロック４６ので誤りの大きさ及び消失の大きさの算出。
工程（５）：ブロック４８の訂正及び検算処理。
【００６５】
そして、ＲＳデコーダ３３の各コアは、この５つの工程を、それぞれクロック信号１７周期分のタイムスロット（１４ビット長の符号語が入力されるのに要する時間であるクロック信号１４周期分の時間に対して、若干余裕を持たせて長くした単位処理時間）毎に並列的に実行することにより、デストライピング回路３２から順次供給される複数の符号語についてのエラー訂正をパイプライン処理によって行う。
【００６６】
図８は、このパイプライン処理を示す図であり、（１）〜（５）はそれぞれ上記各工程（１）〜（５）における処理を示している。また、ＴＳ１〜ＴＳ６はそれぞれ１つのタイムスロット（１７クロック周期）を示し、ＴＳ１〜ＴＳ６上の横長の四角の枠内の１〜６の数字は、デストライピング回路３２から順次供給される１番目の符号語〜６番目の符号語を示している。
【００６７】
このパイプライン処理により、個々の符号語を入力するのに要する時間に対してそのデコード処理には数倍の時間（５タイムスロット分の８５クロック周期）を要するにもかかわらず、１番目の符号語のエラー訂正がタイムスロットＴＳ５で完了した以降、デコード処理の所要時間を工程（ステージ）の数で割った時間である１タイムスロット（１７クロック周期）毎に、順次供給される複数の符号語についてのエラー訂正が１符号語ずつ完了する。したがって、ＲＳデコーダ３３の各コアからは、１タイムスロット毎に、図６Ｃに示すようなエラー訂正した８ビット幅・１０ワード長の単位データが出力される。
【００６８】
これにより、ＲＳデコーダ３３に個々の符号語が入力される時間間隔である１４クロック周期と、エラー訂正した個々のデータがＲＳデコーダ３３から出力される時間間隔である１７クロック周期との差が小さくなる。すなわち、ＲＳデコーダ３３の処理効率が向上し、ＲＳデコーダ３３に対する処理待ちの時間が短くなる。
【００６９】
このようにしてＲＳデコーダ３３の各コアから１タイムスロット毎に出力される８ビット幅・１０ワード長の単位データは、図６Ｄに示すように幅方向に元の６４ビット幅に統合されて（図５のプリバッファ２１から出力されるのと同じ６４ビット幅・１０ワード長単位の単位データに戻されて）、ポストバッファ３４に書き込まれる。
【００７０】
ポストバッファ３４は、書き込まれた各単位データを連続的に読み出すことにより、各単位データを連結して記録時のＡＶデータを復元する。復元されたＡＶデータは、図１のバス７経由でＦＣコントローラ２に供給され、ストレージ部１から図２の入出力プロセッサー部１１や中継用端末１２に送られる。
【００７１】
以上のように、このストレージ部１は、パリティ用に４台のＨＤＤ９（１１）〜９（１４）を設けることによってエラー訂正能力を高めるとともに、データ転送速度の低下を防止することができるようになっている。
【００７２】
これにより、図２のＡＶサーバーでは、要求される性能（高い動作信頼性及びリアルタイム性）を、より高いレベルで実現することが可能になる。
【００７３】
さらに、このストレージ部１では、高いデータ転送レートを実現する目的で記録再生処理系３とＨＤＤコントローラ５とをＰＣＩ−Ｘ規格の６４ビット幅のバス８によって接続しているが、ＲＳデコーダ３３を、バス８のビット幅である６４ビットと、記録再生処理系３で使用するリードソロモン符号のビット幅である８ビットとの比率に応じて並列に８台（デコーダ（０）〜デコーダ（７）の各コア）設け、各コアが並列的に図８のようなパイプライン処理を行うので、この点でも、ＲＳデコーダ３３に対する処理待ちの時間を短くして、データ転送速度の低下を防止できるようになっている。
【００７４】
同様に、ＦＣコントローラ２と記録再生処理系３とをＰＣＩ−Ｘ規格の６４ビット幅のバス７によって接続しているが、ＲＳエンコーダ２２を、バス７のビット幅である６４ビットと、記録再生処理系３で使用するリードソロモン符号のビット幅である８ビットとの比率に応じてそれぞれ並列に８台（エンコーダ（０）〜エンコーダ（７））設け、それらのエンコーダ（０）〜エンコーダ（７）が並列的にエンコード処理を行うので、ＲＳエンコーダ２２に対する処理待ちの時間も短くすることができ、この点でもデータ転送速度の低下を防止できるようになっている。
【００７５】
また、このストレージ部１は、前述のようにエラー訂正能力が高いので、ＨＤＤ９として、サーバー用のような高価なＨＤＤではなく、一般的で比較的低価格のもの（例えばシリアルＡＴＡに対応したＨＤＤ）を使用しても、十分な動作信頼性を確保することが可能になる。
【００７６】
なお、以上の例では、記録再生処理系３で８ビット幅のリードソロモン符号を使用することから、ＲＳエンコーダ２２やＲＳデコーダ３３を、それぞれ８台（エンコーダ（０）〜エンコーダ（７）、デコーダ（０）〜デコーダ（７））並列に設けた構成にしている。しかし、リードソロモン符号は２のべき乗のビット幅をとることができ、４ビット幅でも最大１５ワード長の符号語を扱うことができる。そこで、記録再生処理系３で４ビット幅のリードソロモン符号を使用して、ＲＳエンコーダ２２やＲＳデコーダ３３を、１６台並列に設けた構成にしてもよい。
【００７７】
また、以上の例では、ＦＣコントローラ２，ＨＤＤコントローラ５と記録再生処理系３とを結ぶＰＣＩ−Ｘ規格のバス７，８のビット幅と、記録再生処理系３で使用するリードソロモン符号のビット幅とが相違することから、ＲＳエンコーダ２２やＲＳデコーダ３３を、この両者のビット幅の比率に応じた台数並列に設けた構成にしている。しかし、この両者のビット幅を同じにする場合には、ＲＳエンコーダ２２やＲＳデコーダ３３を１台ずつ設けるようにしてもよい。
【００７８】
また、以上の例では、ＲＳデコーダ３３に、リードソロモン符号によるエラー訂正処理をパイプライン処理によって実行させている。しかし、リードソロモン符号以外のパリティを記録再生処理系３で使用し、ＲＳデコーダ３３に、そのパリティによるエラー訂正処理をパイプライン処理によって実行させるようにしてもよい。
【００７９】
また、以上の例では、パリティ用のＨＤＤを４台設けたＨＤＤアレイユニットに本発明を適用しているが、本発明は、パリティ用のＨＤＤを２台，３台あるいは５台以上設けたＨＤＤアレイユニットにも適用してよい。例えばパリティ用のＨＤＤを３台設けた場合には、パリティ用のＨＤＤを４台設けた場合と同じエラー訂正処理を行うことができる（但しパリティ用のＨＤＤが１台欠けているものとして扱われる）。また、パリティ用のＨＤＤを５台設けた場合と６台設けた場合とでも、同じエラー訂正処理を行うことができる（但し、５台設けた場合には、パリティ用のＨＤＤが１台欠けているものとして扱われる）。
【００８０】
また、以上の例でＡＶサーバー用のストレージに本発明を適用しているが、それ以外の用途のＨＤＤアレイユニットにも本発明を適用してよい。
【図面の簡単な説明】
【００８１】
【図１】本発明を適用したＡＶサーバーのストレージ部の構成を示すブロック図である。
【図２】ＡＶサーバーのシステム構成を示す図である。
【図３】ストレージ部の記録再生処理系のうちの記録処理系の部分の構成を示すブロック図である。
【図４】記録処理系でのデータのストライピング等を示す図である。
【図５】ストレージ部の記録再生処理系のうちの再生処理系の部分の構成を示すブロック図である。
【図６】再生処理系でのデータのデストライピング等を示す図である。
【図７】デコード処理の処理過程を示す図である。
【図８】ＲＳデコーダの各コアのパイプライン処理を示す図である。
【符号の説明】
【００８２】
１  ストレージ部、  ２  ＦＣコントローラ、  ３  記録再生処理系、  ４  キャッシュメモリ、  ５  ＨＤＤコントローラ、  ６  ＣＰＵ、  ７，８  バス、  ９（１）〜９（１５）  ＨＤＤ、  ２１  プリバッファ、  ２２  ＲＳエンコーダ、  ２３  ストライピング回路、  ２４  データバッファ、  ２５  キャッシュメモリコントローラ、  ３１  データバッファ、  ３２  デストライピング回路、  ３３  ＲＳデコーダ、  ３４  ポストバッファ
【図１】
2007200027.tif 000004
【図２】
2007200027.tif 000005
【図３】
2007200027.tif 000006
【図４】
2007200027.tif 000007
【図５】
2007200027.tif 000008
【図６】
2007200027.tif 000009
【図７】
2007200027.tif 000010
【図８】
2007200027.tif 000011