JP2007200027A - データ蓄積装置及びエラー訂正方法 - Google Patents
データ蓄積装置及びエラー訂正方法 Download PDFInfo
- Publication number
- JP2007200027A JP2007200027A JP2006017923A JP2006017923A JP2007200027A JP 2007200027 A JP2007200027 A JP 2007200027A JP 2006017923 A JP2006017923 A JP 2006017923A JP 2006017923 A JP2006017923 A JP 2006017923A JP 2007200027 A JP2007200027 A JP 2007200027A
- Authority
- JP
- Japan
- Prior art keywords
- data
- error correction
- parity
- hard disk
- word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
【課題】HDDアレイユニットにおいて、パリティ用のデコーダの処理効率を向上させることにより、パリティ用のHDDを3台以上設けることによってエラー訂正能力を高めるような場合にもデータ転送速度の低下を防止する。
【解決手段】所定のタイムスロット毎にエラー訂正処理の複数の工程を並列的に実行することにより、順次供給される符号語についてのエラー訂正処理をパイプライン処理によって行うデコーダを備える。
【選択図】図8
【解決手段】所定のタイムスロット毎にエラー訂正処理の複数の工程を並列的に実行することにより、順次供給される符号語についてのエラー訂正処理をパイプライン処理によって行うデコーダを備える。
【選択図】図8
Description
本発明は、複数台のHDD(ハードディスクドライブ)を用いてデータを蓄積する装置に関し、特に、データ転送速度を低下させることなく、エラー訂正能力を高めたものに関する。
近年、放送局やポストプロダクションでは、AV(オーディオ・ビデオ)データを蓄積するストレージとして、複数台のHDDを搭載して大容量を実現したHDDアレイユニットが使用されている。
例えば、放送局で編集システムや送出システムとして用いられるAVサーバーでも、こうしたHDDアレイユニットが使用されている。AVサーバーは、AVデータ入出力用の複数の入出力ポートを有し、これらの入出力ポートとHDDアレイユニットとの間で高速にAVデータを転送する。
このAVサーバーは、求められるレスポンスについての制約がIT関連用途のそれと比較すればより厳しく、より高いリアルタイム性が要求される。動画像の破綻ない記録再生処理のためには、ストレージ装置のレスポンスの遅れは致命的となる。さらに、放送の送出システムのAVサーバーでは、装置のトラブルに起因する放送上の事故は許されず、送出スケジュール通りの運用動作をこなす必要があるため、リアルタイム性の保証、及び高い信頼性能が要求される。
ところが、HDDは、動作信頼性やリアルタイム性(レスポンス性能)はあまり高くないデバイスである。そこで、AVサーバーでは、HDDアレイユニットを、冗長性を持たせたRAID(Redundant Arrays of Inexpensive Disks)構成とすることにより、HDDに障害(故障やタイムアウト(再生コマンドを送ってから一定時間内にデータが再生されないこと))が発生した場合にデータを復旧できるようにしている。
RAIDにはRAID1〜6というレベルが存在するが、従来のAVサーバーのHDDアレイユニットでは、主にRAID3またはRAID5が採用されていた。RAID3,RAID5では、パリティ(エラー訂正符号)用のHDDを1台設け、いずれか1台のHDDに障害が発生してもデータを復旧することができる。
RAID6は、RAID5の拡張であり、パリティ用のHDDを2台設け、同時に2台のHDDに障害が発生してもデータを復旧できるようにしている。また、従来、文献上も、AVサーバーのHDDアレイユニットに関する技術として、パリティ用のHDDを2台設け、データの記録時には、入力データを所定単位で分割して、複数の分割データを生成すると共に、入力データに基づいて、入力データに対して複数の分割データのエラー訂正が可能なリードソロモン符号による冗長符号データP1,P2を生成し、この複数の分割データを複数台のHDDに記録するとともに、この冗長符号データP1,P2をこの2台のパリティ用のHDDに記録し、データの再生時には、各HDDから、この複数の分割データと冗長符号データP1,P2とを再生し、再生された冗長符号データP1,P2を用いて、再生された複数の分割データに対するエラー訂正処理を行い、このエラー訂正処理後の各分割データを多重化して出力するという技術が提案されていた(特許文献1参照)。
ところが、近年、HDDアレイユニットの内部では、電子デバイス技術の進化に伴い、高速なシリアルデータ伝送技術(シリアルATA等)が用いられるようになりつつあり、伝送路のクロックレートはGHzのオーダーとなっている。もし、この伝送路での偶発的エラー(例えばHDDのコネクタが外れていることなど)を検出することが可能であり、この偶発的エラーが検出されたときにリトライをしたとしても、AVサーバーのようなリアルタイム性の要求されるシステムにおいては、リトライをした時点で既にシステム全体としては障害発生に至る可能性があり、何らかの形で遅れを伴うことなく修復することが望ましい。例えば、HDDに障害が発生した状態で、さらに伝送路等で偶発的エラーが発生した場合にも、システムの運用に支障を来たさないようにエラー訂正を行える高い信頼性能が求められる。
しかるに、RAID3やRAID5では、HDDに障害が発生した状態でこうした偶発的エラーが発生すると、故障したHDDのデータを復旧することができなくなる。また、RAID6や、上記特許文献1に記載の技術のように、パリティ用のHDDを2台設けた場合でも、同時に2台のHDDに障害が発生した状態でこうした偶発的エラーが発生すると、それらのHDDのデータを復旧することができなくなる。
そこで、パリティ用のHDDを3台以上(例えば4台)設けることにより、エラー訂正能力を高めることが望まれる。しかし、パリティ用のHDDを3台以上に増やして、既存のパリティ用のエンコーダ及びデコーダを用いてエラー訂正を行おうとすると、特に、デコーダに対する処理待ちの時間が長くなってしまう。
具体的には、AVデータ用のHDDを10台設け、パリティ用のHDDを4台設けた場合を例にとると、パリティ用のエンコーダでは、AVデータ用の10台のHDDに1ワード分ずつ振り分けて記録させるために10ワード長を単位として区切られたAVデータに、パリティ用のHDDの台数分である4ワード長のパリティを付加して、14ワード長の符号語を生成する。そして、パリティ用のデコーダは、これらの合計14台のHDDから並列に再生される各符号語(各HDDから並列に1ワードずつとった14ワード長)を、順に入力してデコード(エラ−訂正)処理を実行する。14ワード長の符号語を入力するのに要する時間はクロック信号の14周期分であるのに対し、4ワードのパリティを用いた10ワードのAVデータのデコード処理にはその数倍(クロック信号の数十周期分)の時間を要する。そのため、既存のパリティ用のデコーダを用いてデコード処理を実行させた場合、14ワード長の符号語毎にこの数十周期分の処理時間を要するので、デコーダに対する処理待ちの時間が非常に長くなる。
このようにHDDアレイユニット内でのパリティ用のデコーダに対する処理待ちの時間が長くなると、HDDアレイユニットのデータ転送速度が低下してしまう。その結果、AVサーバーに要求されるリアルタイム性を満たすことが困難になる。
なお、このようにデコーダに対する処理待ちの時間が長くなる現象は、複数台(前述の例では10台)のHDDにデータを振り分けて記録するというHDDアレイユニットの性質上、特に問題となる現象である。すなわち、一般にテープ、ディスク等のディジタル記録メディアで用いられるリードソロモン符号は、数十ワード以上を単位としてパリティを付加するケースが主であり、例えば、100ワード長の符号語を使用したケースを仮定すると、デコーダに入力するのに要する時間がクロック信号100周期分以上になり、したがってこの時間内にデコード処理を終了することができる。これに対し、HDDアレイユニットでは、複数台のHDDに振り分けて記録するために短く区切ったデータ(前述の例では10ワード長のデータ)毎にパリティを付加するので、符号語の長さが非常に短くなる。そのため、符号語の入力に要する時間に対してデコード処理に要する時間が長くなり、デコーダに対する処理待ちの時間が長くなってしまう。
このようにHDDアレイユニット内でのパリティ用のデコーダに対する処理待ちの時間が長くなると、HDDアレイユニットのデータ転送速度が低下してしまう。その結果、AVサーバーに要求されるリアルタイム性を満たすことが困難になる。
本発明は、上述の点に鑑み、AVサーバーのストレージ等として使用されるHDDアレイユニットにおいて、パリティ用のデコーダの処理効率を向上させることにより、パリティ用のHDDを3台以上設けることによってエラー訂正能力を高めるような場合にもデータ転送速度の低下を防止することを課題としてなされたものである。
この課題を解決するために、本発明は、複数台のデータ用のHDDと、複数台のパリティ用のHDDと、記録処理系と、再生処理系とを有し、この記録処理系は、記録対象のデータを、このデータ用のHDDの台数分のワード長を単位とする単位データに区切る手段と、各々のこの単位データに基づいて、このパリティ用のHDDの台数分のワード長のパリティを生成し、この生成したパリティをこの単位データに付加した符号語を生成するエンコーダと、各々のこの符号語を、このデータ用のHDD,このパリティ用のHDDにそれぞれ記録するための1ワード分ずつのパリティ,データに分離する手段とを備え、この再生処理系は、各々のこのデータ用のHDDから再生された1ワード分ずつのデータと、各々のこのパリティ用のHDDから再生された1ワード分ずつのパリティとを結合してこの符号語を復元する手段と、所定のタイムスロット毎にエラー訂正処理の複数の工程を並列的に実行することにより、順次供給される複数のこの復元されたこの符号語についてのエラー訂正処理をパイプライン処理によって行うデコーダと、この訂正された各々のこの単位データを連結して記録時のデータを復元する手段とを備えたことを特徴とする。
また本発明は、複数台のデータ用のHDDと、複数台のパリティ用のHDDと、記録処理系と、再生処理系とを有し、この記録処理系は、記録対象のデータを、このデータ用のHDDの台数分のワード長を単位とする単位データに区切る手段と、各々のこの単位データに基づいて、このパリティ用のHDDの台数分のワード長のパリティを生成し、この生成したパリティをこの単位データに付加した符号語を生成するエンコーダと、各々のこの符号語を、このデータ用のHDD,このパリティ用のHDDにそれぞれ記録するための1ワード分ずつのパリティ,データに分離する手段とを備え、この再生処理系は、各々のこのデータ用のHDDから再生された1ワード分ずつのデータと、各々のこのパリティ用のHDDから再生された1ワード分ずつのパリティとを結合してこの符号語を復元する手段と、この復元されたこの符号語のうちのこのパリティを用いてこの単位データのエラーを訂正するデコーダと、この訂正された各々のこの単位データを連結して記録時のデータを復元する手段とを備えたデータ蓄積装置におけるエラー訂正方法において、このデコーダが、所定のタイムスロット毎にエラー訂正処理の複数の工程を並列的に実行することにより、順次供給される複数のこの符号語についてのエラー訂正処理をパイプライン処理によって行うことを特徴とする。
本発明によれば、データの記録時に、データ用のHDDの台数分のワード長を単位として区切られた単位データにパリティ用のHDDの台数分のワード長のパリティが付加されることにより非常に短い符号語が生成されるが、デ−タの再生時に、パリティ用のデコーダが、所定のタイムスロット(単位処理時間)毎にエラー訂正処理の複数の工程を並列的に実行することにより、各HDDから再生・復元されて順次供給される複数の符号語についてのエラー訂正処理をパイプライン処理によって行う。
したがって、個々の符号語を入力するのに要する時間に対してそのデコード処理には数倍の時間を要するにもかかわらず、デコード処理の所要時間を工程(ステージ)の数で割った時間である1タイムスロット毎に、順次供給される符号語についてのエラー訂正が1符号語ずつ完了して、エラー訂正したデータが出力される。
これにより、個々の符号語が入力される時間間隔と、エラー訂正した個々のデータが出力される時間間隔との差を小さくすること、すなわち、パリティ用のデコーダの処理効率を向上させて、このデコーダに対する処理待ちの時間を短くすることができる。
したがって、HDDアレイユニットにおいて、パリティ用のHDDを3台以上設けることによってエラー訂正能力を高めるような場合にも、データ転送速度の低下を防止することができる
本発明によれば、HDDアレイユニットにおいて、パリティ用のデコーダの処理効率を向上させて、このデコーダに対する処理待ちの時間を短くすることができるので、パリティ用のHDDを3台以上設けることによってエラー訂正能力を高めるような場合にも、データ転送速度の低下を防止できるという効果が得られる。
以下、放送局で用いられるAVサーバーのストレージに本発明を適用した例について、図面を用いて具体的に説明する。図1は、本発明を適用したAVサーバーのストレージ部の構成を示すブロック図である。このストレージ部1には、FC(ファイバチャネル:Fibre Channel)コントローラ2と、記録再生処理系3と、キャッシュメモリ4と、HDDコントローラ5と、ストレージ部1全体を制御するCPU6とが設けられている。FCコントローラ2と記録再生処理系3とは、高いデータ転送レートを実現する目的で、PCI−X規格の64ビット幅のバス7によって接続されている。記録再生処理系3とHDDコントローラ5とも、同じ理由でPCI−X規格のバス8によって接続されている。
また、このストレージ部1には、15台のHDD9(HDD9(1)〜9(15))が搭載される。これらのHDD9のうち、10台のHDD9(1)〜9(10)はAVデータ用のHDDであり、4台のHDD9(11)〜9(14)はパリティ用のHDDであり、残りの1台のHDD9(15)はスペア用のHDDである。
FCコントローラ2は、外部との間でファイバチャンネル経由でAVデータを授受するためのインターフェースである。記録再生処理系3は、プログラム可能なLSIであるFPGAで構成されており、記録処理系と、再生処理系と、リビルド処理系とを含んでいる。
記録処理系は、記録対象のAVデータにパリティを付加してHDD9(1)〜9(14)に割り振る処理を行う。再生処理系は、HDD9(1)〜9(10)から再生されたAVデータを、HDD9(11)〜9(14)から再生されたパリティを用いてエラー訂正する処理を行う。リビルド処理系は、再生時にHDD9(1)〜9(14)のうちのいずれかのHDDに障害(故障やタイムアウト)が発生した場合、そのHDD内のAVデータを、残りのHDD9(1)〜9(14)から読み出したAVデータ及びパリティを用いて復元して、スペア用のHDD9(15)に記録する処理を行う。記録処理系,再生処理系の構成及び処理については、後で詳細に説明する。
キャッシュメモリ4は、AVデータをバッファリングするためのDIMM(Dual Inline Memory Module)規格のSDRAMである。HDDコントローラ5は、例えばHDD9としてSATA(シリアルATA)に対応したHDDを使用する場合には、SATAコントローラである。
図2は、図1のストレージ部1を用いて放送局内に設置されるAVサーバーのシステム構成を示す図である。このAVサーバーでは、複数のストレージ部1と、複数の入出力プロセッサー部11と、中継用端末12とが、FC(ファイバチャネル:Fibre Channel)スイッチ13によって接続される。また、各入出力プロセッサー部11と、中継用端末12と、管理用端末14と、メンテナンス用端末15とが、イーサネット(登録商標)16によって接続されている。
入出力プロセッサー部11は、複数(例えば6つ)の入出力ポートを有しており、SDI(Serial DigitalInterface)等の同期系の伝送フォーマットや、あるいは非同期系の伝送フォーマットで、外部との間でAVデータを入出力する。
入出力プロセッサー部11は、入出力ポートに入力したAVデータを、所定の符号化方式でエンコード(圧縮)して、FCスイッチ13経由でストレージ部1に転送する。また、入出力プロセッサー部11は、ストレージ部1からFCスイッチ13経由で転送されたデータを、デコード(伸張)して入出力ポートから出力する。
なお、一般的なAVサーバーの入出力プロセッサー部の構成は周知であり、本発明を適用するAVサーバーの入出力プロセッサー部の構成はそうした一般的なものであってよいので、その詳細説明は省略する。
中継用端末12は、ネットワーク17によって複数台の編集用端末18と接続されており、ストレージ部1と編集用端末18との間のAVデータの授受と、入出力プロセッサー部11や管理用端末14と編集用端末18との間の情報の授受とを中継する。
管理用端末14は、ストレージ部1内におけるAVデータの記憶アドレスやそのAVデータのファイル名・属性等の情報を保持し、イーサネット(登録商標)16経由での入出力プロセッサー部11や中継用端末12からの要求に応じて、これらの情報を入出力プロセッサー部11や中継用端末12に送る。
メンテナンス用端末15は、メンテナンス要員が操作する端末であり、各ストレージ部1や各入出力プロセッサー部11が生成・保存したログデータを表示させてAVサーバーの状態を分析したり、ストレージ部1内のHDDの故障時に表示される警告に基づいてHDDの交換等を決定する。
次に、ストレージ部1内の記録再生処理系3の構成及び処理について詳細に説明する。図3は、記録再生処理系3のうちの記録処理系の部分の構成を示すブロック図である。記録処理系は、プリバッファ21と、RS(リードソロモン)エンコーダ22と、ストライピング回路23と、各HDD9(1)〜9(14)用の合計14個のデータバッファ24と、図1のキャッシュメモリ4を制御するキャッシュメモリコントローラ25とを含んでいる。
AVデータの記録時(図2の入出力プロセッサー部11や中継用端末12からのAVデータ及び記録コマンドの受信時)には、図1のFCコントローラ2で受信されてバス7経由で供給される64ビット幅のAVデータが、まずプリバッファ21に書き込まれる。プリバッファ21は、このAVデータを、図4Aに示すように、10台のAVデータ用のHDD9(1)〜9(10)に1ワード分ずつ振り分けて記録させるための10ワード長単位のAVデータ(単位データと呼ぶことにする)に区切って読み出す。
RSエンコーダ22は、バス7のビット幅である64ビットと、記録再生処理系3で使用するリードソロモン符号のビット幅である8ビットとの比率に応じて並列に設けた8台のエンコーダ(0)〜エンコーダ(7)で構成されている。プリバッファ21から出力された64ビット幅の各単位データは、図4Bに示すように、幅方向に8ビット幅ずつに8分割されて、各エンコーダ(0)〜エンコーダ(7)に供給される。
各エンコーダ(0)〜エンコーダ(7)は、それぞれ、供給された8ビット幅・10ワード長の単位データから、8ビット幅・4ワード長(パリティ用のHDD9(11)〜9(14)の台数分のワード長)のリードソロモン符号を生成する。そして、図4Cに示すように、単位データにリードソロモン符号を付加して8ビット幅・14ワード長の符号語を生成する。
このようにして各エンコーダ(0)〜エンコーダ(7)で並列的に生成された符号語は、幅方向に元の64ビット幅に統合されて、ストライピング回路23に供給される。ストライピング回路23は、この64ビット幅・14ワード長の符号語を、図4Dに示すように、HDD9(1)〜9(10)にそれぞれ記録するための64ビット幅・1ワード長ずつのAVデータと、HDD9(11)〜9(14)にそれぞれ記録するための64ビット幅・1ワード長ずつのリードソロモン符号とに分離する。
ストライピング回路23によって分離されたこの1ワード長ずつのAVデータ,リードソロモン符号(図3のword0〜13)は、それぞれHDD9(1)〜9(14)用のデータバッファ24に一時的に書き込まれる。そして、それぞれすぐにデータバッファ24から読み出され、キャッシュメモリコントローラ25によってキャッシュメモリ4に書き込まれる。
その後、CPU6(図1)の制御のもとで、キャッシュメモリコントローラ25によってキャッシュメモリ4からこのword0〜13が読み出され、読み出されたword0〜13が図1の64ビット幅のバス8経由でHDDコントローラ5に送られる。そして、HDDコントローラ5からHDD9(1)〜9(10)にそれぞれword0〜9(1ワードずつのAVデータ)が送られて記録されるとともに、HDDコントローラ5からHDD9(11)〜9(14)にそれぞれword10〜13(1ワードずつのリードソロモン符号)が送られて記録される。
図5は、記録再生処理系3のうちの再生処理系の部分の構成を示すブロック図である。再生処理系は、各HDD9(1)〜9(14)用の合計14個のデータバッファ31と、デストライピング回路32と、RS(リードソロモン)デコーダ33と、ポストバッファ34と、図3の記録処理系と共用されるキャッシュメモリコントローラ25とを含んでいる。
HDD9からのAVデータの再生時(図2の入出力プロセッサー部11や中継用端末12からの再生コマンドの受信時)には、HDD9(1)〜9(10)から再生される前述のword0〜9(1ワードずつのAVデータ)と、HDD9(11)〜9(14)から再生される前述のword10〜13(1ワードずつのリードソロモン符号)とが、HDDコントローラ5から64ビット幅のバス8経由でキャッシュメモリコントローラ25に送られ、CPU6(図1)の制御のもとで、キャッシュメモリコントローラ25によってキャッシュメモリ4に書き込まれる。
その後、このword0〜13は、キャッシュメモリコントローラ25によってキャッシュメモリ4から読み出され、それぞれHDD9(1)〜9(14)用のデータバッファ31に一時的に書き込まれる。そして、それぞれすぐにデータバッファ31から読み出されて、デストライピング回路32に供給される。
デストライピング回路32は、このword0〜13を結合することにより、図6Aに示すように、64ビット幅・14ワード長の符号語(図3の記録処理系のストライピング回路23で分離する前の符号語)を復元する。但し、HDD自体の障害(故障やタイムアウト)、あるいはHDDコントローラ5とHDD9とを結ぶ伝送路等での偶発的エラー(例えばHDDのコネクタが外れていること)により、いずれかのHDD9(1)〜9(14)からのAVデータまたはリードソロモン符号が欠落している場合もあり得る。
RS(リードソロモン)デコーダ33は、バス8のビット幅である64ビットとリードソロモン符号のビット幅である8ビットとの比率に応じて並列に設けた8台のデコーダ(0)〜デコーダ(7)で構成されている(以下、個々のデコーダ(0)〜デコーダ(7)を、RSデコーダ33の「コア」と呼ぶことにする)。デストライピング回路32から出力された64ビット幅・14ワード長の符号語は、図6Bに示すように、幅方向に8ビット幅ずつに8分割されて、各デコーダ(0)〜デコーダ(7)に供給される。
また、図1のCPU6からは、14ワード長の符号語内でデータ(AVデータまたはリードソロモン符号)が消失している位置を示す(すなわち、HDD9(1)〜9(14)のうち障害が発生してデータが欠落したHDDを示す)情報であるエラーHDD−No.が、各デコーダ(0)〜デコーダ(7)に供給される。
この表において、消失数hとは、14ワード長の符号語内で消失しているデータの数である。14ワード長の符号語内でどの位置のデータが消失しているかは、前述のように、CPU6から供給される情報(エラーHDD−No.)によって判別することができる。
誤り数p(max)とは、HDDコントローラ5とHDD9とを結ぶ伝送路(例えばSATA)等で発生した偶発的エラーの数であり、符号語内での位置は不明である。
訂正データ数tは、消失数hと誤り数p(max)とを合わせた、エラー訂正可能なデータの数である。
この表の最下行に示すように、HDD9(1)〜9(14)のうちの4台のHDDで障害が発生することによって符号語内の4つのデータが消失しても、それらのデータをエラー訂正することができる。したがって、RSデコーダ33は、4つのデータが消失していることを示すエラーHDD−No.が供給されれば、HDD9(1)〜9(14)のうちの10台のHDDからデータが再生されてデストライピング回路32(図5)で結合された時点でデコード処理を開始して、この消失した4つのデータをエラー訂正することができる。
また、例えばこの表の下から3行目に示すように、HDD9(1)〜9(14)のうちの2台のHDDで障害が発生することによって符号語内の2つのデータが消失した状態で、さらにHDDコントローラ5と別の1台のHDDとを結ぶ伝送路等で偶発的エラーが発生した場合にも、それらの3台のHDDのデータをエラー訂正することができる。したがって、RSデコーダ33は、2つのデータが消失していることを示すエラーHDD−No.が供給されれば、HDD9(1)〜9(14)のうちの12台のHDDからデータが再生されてデストライピング回路32で結合された時点でデコード処理を開始して、この消失した2つのデータをエラー訂正するとともに、偶発的エラーのあった別の1台のHDDのデータをエラー訂正することができる。
次に、RSデコーダ33の各コアにおけるデコード処理について説明する。図7は、リードソロモン符号によるデコード処理の処理過程を、機能ブロックとして示す図である。なお、各部における処理過程の数学的な根拠については、既知の技術であるのでここでは言及しない。
ブロック41では、図1のCPU6からの、HDD9(11)〜9(14)のうちのどのHDDで障害(故障やタイムアウト)が発生したかを示す情報であるエラーHDD−No.に基づき、消失位置多項式λ(z)と消失位置のデータαwjとを生成する。
ブロック42では、図5のデストライピング回路32から供給される符号語r(z)から、シンドロームS(z)を算出する。ブロック43では、消失位置多項式λ(z)とシンドロームS(z)とから、修正シンドロームSε(z)を算出する。
ブロック44では、修正シンドロームSε(z)から、ユークリッド法演算により誤り位置多項式σ(z)と誤り評価多項式φ(z)とを生成する。ブロック45では、誤り位置多項式σ(z)からチェン探索法にて誤り位置αeiを算出する。
ブロック46では、消失位置多項式λ(z)と、消失位置のデータαwjと、誤り位置多項式σ(z)と、誤り評価多項式φ(z)とから、誤りの大きさeiと消失の大きさwjとを算出する。
ブロック48では、消失位置多項式λ(z)と、消失位置のデータαwjと、誤りの大きさeiと、消失の大きさwjとから、ブロック47によって遅延された符号語r(z) のエラーを訂正する。また、リードソロモン符号の訂正能力を超えてエラーが生じた場合には誤訂正をしてしまうので、そういう状態かどうかをチェックするための検算処理を実行する。
この図7に示したデコード処理を、デストライピング回路32からの14ワード長の符号語に対して実行する場合、〔発明が解決しようとする課題〕で述べたように、14ワード長の符号語を入力するのに要する時間はクロック信号の14周期分であるのに対し、デコード処理にはその数倍(クロック信号の数十周期分)の時間を要してしまう。
そこで、RSデコーダ33の各コア(デコーダ(0)〜デコーダ(7))は、この図7のデコード処理を、次の(1)〜(5)の5つの工程に分ける。
工程(1):ブロック41へのエラーHDD−No.の入力と、ブロック42の符号語の入力及びシンドローム算出。
工程(2):ブロック41の消失位置多項式及び消失位置のデータ生成と、ブロック43の修正シンドローム算出。
工程(2):ブロック41の消失位置多項式及び消失位置のデータ生成と、ブロック43の修正シンドローム算出。
工程(3):ブロック44の誤り位置多項式及び誤り評価多項式の生成。
工程(4):ブロック45の誤り位置算出と、ブロック46ので誤りの大きさ及び消失の大きさの算出。
工程(5):ブロック48の訂正及び検算処理。
工程(4):ブロック45の誤り位置算出と、ブロック46ので誤りの大きさ及び消失の大きさの算出。
工程(5):ブロック48の訂正及び検算処理。
そして、RSデコーダ33の各コアは、この5つの工程を、それぞれクロック信号17周期分のタイムスロット(14ビット長の符号語が入力されるのに要する時間であるクロック信号14周期分の時間に対して、若干余裕を持たせて長くした単位処理時間)毎に並列的に実行することにより、デストライピング回路32から順次供給される複数の符号語についてのエラー訂正をパイプライン処理によって行う。
図8は、このパイプライン処理を示す図であり、(1)〜(5)はそれぞれ上記各工程(1)〜(5)における処理を示している。また、TS1〜TS6はそれぞれ1つのタイムスロット(17クロック周期)を示し、TS1〜TS6上の横長の四角の枠内の1〜6の数字は、デストライピング回路32から順次供給される1番目の符号語〜6番目の符号語を示している。
このパイプライン処理により、個々の符号語を入力するのに要する時間に対してそのデコード処理には数倍の時間(5タイムスロット分の85クロック周期)を要するにもかかわらず、1番目の符号語のエラー訂正がタイムスロットTS5で完了した以降、デコード処理の所要時間を工程(ステージ)の数で割った時間である1タイムスロット(17クロック周期)毎に、順次供給される複数の符号語についてのエラー訂正が1符号語ずつ完了する。したがって、RSデコーダ33の各コアからは、1タイムスロット毎に、図6Cに示すようなエラー訂正した8ビット幅・10ワード長の単位データが出力される。
これにより、RSデコーダ33に個々の符号語が入力される時間間隔である14クロック周期と、エラー訂正した個々のデータがRSデコーダ33から出力される時間間隔である17クロック周期との差が小さくなる。すなわち、RSデコーダ33の処理効率が向上し、RSデコーダ33に対する処理待ちの時間が短くなる。
このようにしてRSデコーダ33の各コアから1タイムスロット毎に出力される8ビット幅・10ワード長の単位データは、図6Dに示すように幅方向に元の64ビット幅に統合されて(図5のプリバッファ21から出力されるのと同じ64ビット幅・10ワード長単位の単位データに戻されて)、ポストバッファ34に書き込まれる。
ポストバッファ34は、書き込まれた各単位データを連続的に読み出すことにより、各単位データを連結して記録時のAVデータを復元する。復元されたAVデータは、図1のバス7経由でFCコントローラ2に供給され、ストレージ部1から図2の入出力プロセッサー部11や中継用端末12に送られる。
以上のように、このストレージ部1は、パリティ用に4台のHDD9(11)〜9(14)を設けることによってエラー訂正能力を高めるとともに、データ転送速度の低下を防止することができるようになっている。
これにより、図2のAVサーバーでは、要求される性能(高い動作信頼性及びリアルタイム性)を、より高いレベルで実現することが可能になる。
さらに、このストレージ部1では、高いデータ転送レートを実現する目的で記録再生処理系3とHDDコントローラ5とをPCI−X規格の64ビット幅のバス8によって接続しているが、RSデコーダ33を、バス8のビット幅である64ビットと、記録再生処理系3で使用するリードソロモン符号のビット幅である8ビットとの比率に応じて並列に8台(デコーダ(0)〜デコーダ(7)の各コア)設け、各コアが並列的に図8のようなパイプライン処理を行うので、この点でも、RSデコーダ33に対する処理待ちの時間を短くして、データ転送速度の低下を防止できるようになっている。
同様に、FCコントローラ2と記録再生処理系3とをPCI−X規格の64ビット幅のバス7によって接続しているが、RSエンコーダ22を、バス7のビット幅である64ビットと、記録再生処理系3で使用するリードソロモン符号のビット幅である8ビットとの比率に応じてそれぞれ並列に8台(エンコーダ(0)〜エンコーダ(7))設け、それらのエンコーダ(0)〜エンコーダ(7)が並列的にエンコード処理を行うので、RSエンコーダ22に対する処理待ちの時間も短くすることができ、この点でもデータ転送速度の低下を防止できるようになっている。
また、このストレージ部1は、前述のようにエラー訂正能力が高いので、HDD9として、サーバー用のような高価なHDDではなく、一般的で比較的低価格のもの(例えばシリアルATAに対応したHDD)を使用しても、十分な動作信頼性を確保することが可能になる。
なお、以上の例では、記録再生処理系3で8ビット幅のリードソロモン符号を使用することから、RSエンコーダ22やRSデコーダ33を、それぞれ8台(エンコーダ(0)〜エンコーダ(7)、デコーダ(0)〜デコーダ(7))並列に設けた構成にしている。しかし、リードソロモン符号は2のべき乗のビット幅をとることができ、4ビット幅でも最大15ワード長の符号語を扱うことができる。そこで、記録再生処理系3で4ビット幅のリードソロモン符号を使用して、RSエンコーダ22やRSデコーダ33を、16台並列に設けた構成にしてもよい。
また、以上の例では、FCコントローラ2,HDDコントローラ5と記録再生処理系3とを結ぶPCI−X規格のバス7,8のビット幅と、記録再生処理系3で使用するリードソロモン符号のビット幅とが相違することから、RSエンコーダ22やRSデコーダ33を、この両者のビット幅の比率に応じた台数並列に設けた構成にしている。しかし、この両者のビット幅を同じにする場合には、RSエンコーダ22やRSデコーダ33を1台ずつ設けるようにしてもよい。
また、以上の例では、RSデコーダ33に、リードソロモン符号によるエラー訂正処理をパイプライン処理によって実行させている。しかし、リードソロモン符号以外のパリティを記録再生処理系3で使用し、RSデコーダ33に、そのパリティによるエラー訂正処理をパイプライン処理によって実行させるようにしてもよい。
また、以上の例では、パリティ用のHDDを4台設けたHDDアレイユニットに本発明を適用しているが、本発明は、パリティ用のHDDを2台,3台あるいは5台以上設けたHDDアレイユニットにも適用してよい。例えばパリティ用のHDDを3台設けた場合には、パリティ用のHDDを4台設けた場合と同じエラー訂正処理を行うことができる(但しパリティ用のHDDが1台欠けているものとして扱われる)。また、パリティ用のHDDを5台設けた場合と6台設けた場合とでも、同じエラー訂正処理を行うことができる(但し、5台設けた場合には、パリティ用のHDDが1台欠けているものとして扱われる)。
また、以上の例でAVサーバー用のストレージに本発明を適用しているが、それ以外の用途のHDDアレイユニットにも本発明を適用してよい。
1 ストレージ部、 2 FCコントローラ、 3 記録再生処理系、 4 キャッシュメモリ、 5 HDDコントローラ、 6 CPU、 7,8 バス、 9(1)〜9(15) HDD、 21 プリバッファ、 22 RSエンコーダ、 23 ストライピング回路、 24 データバッファ、 25 キャッシュメモリコントローラ、 31 データバッファ、 32 デストライピング回路、 33 RSデコーダ、 34 ポストバッファ
Claims (6)
- 複数台のデータ用のハードディスクドライブと、
複数台のパリティ用のハードディスクドライブと、
記録処理系と、
再生処理系と
を有し、
前記記録処理系は、
記録対象のデータを、前記データ用のハードディスクドライブの台数分のワード長を単位とする単位データに区切る手段と、
各々の前記単位データに基づいて、前記パリティ用のハードディスクドライブの台数分のワード長のエラー訂正符号を生成し、該生成したエラー訂正符号を該単位データに付加した符号語を生成するエンコーダと、
各々の前記符号語を、前記データ用のハードディスクドライブ,前記パリティ用のハードディスクドライブにそれぞれ記録するための1ワード分ずつのエラー訂正符号,データに分離する手段と
を備え、
前記再生処理系は、
各々の前記データ用のハードディスクドライブから再生された1ワード分ずつのデータと、各々の前記パリティ用のハードディスクドライブから再生された1ワード分ずつのエラー訂正符号とを結合して前記符号語を復元する手段と、
所定のタイムスロット毎にエラー訂正処理の複数の工程を並列的に実行することにより、順次供給される複数の前記復元された前記符号語についてのエラー訂正処理をパイプライン処理によって行うデコーダと、
前記訂正された各々の前記単位データを連結して記録時のデータを復元する手段と
を備えたことを特徴とするデータ蓄積装置。 - 請求項1に記載のデータ蓄積装置において、
前記デコーダを、前記再生処理系に前記データを供給するバスのビット幅と前記エラー訂正符号のビット幅との比率に応じた台数並列に設け、
各々の前記デコーダが、並列的に前記パイプライン処理を行う
ことを特徴とするデータ蓄積装置。 - 請求項1に記載のデータ蓄積装置において、
前記パリティ用のハードディスクドライブを3台以上有する
ことを特徴とするデータ蓄積装置。 - 請求項1に記載のデータ蓄積装置において、
前記エラー訂正符号はリードソロモン符号であり、
前記デコーダは、前記リードソロモン符号によるエラー訂正処理を、
前記符号語内でのデータの消失位置を示す情報の入力と、前記符号語の入力と、前記符号語からのシンドロームの算出とから成る第1の工程と、
前記消失位置を示す情報からの消失位置多項式及び消失位置のデータの生成と、該消失位置多項式及び前記シンドロームからの修正シンドロームの算出とから成る第2の工程と、
前記修正シンドロームから誤り位置多項式及び誤り評価多項式を生成する第3の工程と、
前記消失位置多項式,前記消失位置のデータ,前記誤り位置多項式及び前記誤り評価多項式から誤りの大きさ及び消失の大きさを算出する第4の工程と、
前記消失位置多項式,前記消失位置のデータ,前記誤りの大きさ及び前記消失の大きさからの前記符号語のエラーの訂正と、検算処理とから成る第5の工程と
の5つの工程に分け、各々の前記工程を前記所定のタイムスロット毎に並行して実行する
ことを特徴とするデータ蓄積装置。 - 請求項1に記載のデータ蓄積装置において、
前記エンコーダを、前記記録処理系に前記記録対象のデータを供給するバスのビット幅と前記エラー訂正符号のビット幅との比率に応じた台数並列に設け、
各々の前記エンコーダが、並列的に前記符号語を生成する
ことを特徴とするデータ蓄積装置。 - 複数台のデータ用のハードディスクドライブと、
複数台のパリティ用のハードディスクドライブと、
記録処理系と、
再生処理系と
を有し、
前記記録処理系は、
記録対象のデータを、前記データ用のハードディスクドライブの台数分のワード長を単位とする単位データに区切る手段と、
各々の前記単位データに基づいて、前記パリティ用のハードディスクドライブの台数分のワード長のエラー訂正符号を生成し、該生成したエラー訂正符号を該単位データに付加した符号語を生成するエンコーダと、
各々の前記符号語を、前記データ用のハードディスクドライブ,前記パリティ用のハードディスクドライブにそれぞれ記録するための1ワード分ずつのエラー訂正符号,データに分離する手段と
を備え、
前記再生処理系は、
各々の前記データ用のハードディスクドライブから再生された1ワード分ずつのデータと、各々の前記パリティ用のハードディスクドライブから再生された1ワード分ずつのエラー訂正符号とを結合して前記符号語を復元する手段と、
前記復元された前記符号語のうちの前記エラー訂正符号を用いて前記単位データのエラーを訂正するデコーダと、
前記訂正された各々の前記単位データを連結して記録時のデータを復元する手段と
を備えたデータ蓄積装置におけるエラー訂正方法において、
前記デコーダが、所定のタイムスロット毎にエラー訂正処理の複数の工程を並列的に実行することにより、順次供給される複数の前記符号語についてのエラー訂正処理をパイプライン処理によって行う
ことを特徴とするエラー訂正方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006017923A JP2007200027A (ja) | 2006-01-26 | 2006-01-26 | データ蓄積装置及びエラー訂正方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006017923A JP2007200027A (ja) | 2006-01-26 | 2006-01-26 | データ蓄積装置及びエラー訂正方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007200027A true JP2007200027A (ja) | 2007-08-09 |
Family
ID=38454582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006017923A Pending JP2007200027A (ja) | 2006-01-26 | 2006-01-26 | データ蓄積装置及びエラー訂正方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007200027A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013077062A (ja) * | 2011-09-29 | 2013-04-25 | Nec Corp | ディスクアレイ装置およびディスクアレイ制御用プログラム |
-
2006
- 2006-01-26 JP JP2006017923A patent/JP2007200027A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013077062A (ja) * | 2011-09-29 | 2013-04-25 | Nec Corp | ディスクアレイ装置およびディスクアレイ制御用プログラム |
US9081738B2 (en) | 2011-09-29 | 2015-07-14 | Nec Corporation | Disk array device, disk array control method, and recording medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8316277B2 (en) | Apparatus, system, and method for ensuring data validity in a data storage process | |
US9417963B2 (en) | Enabling efficient recovery from multiple failures together with one latent error in a storage array | |
JP4940322B2 (ja) | 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法 | |
US10110257B2 (en) | Reconstructive error recovery procedure (ERP) for multiple data sets using reserved buffer | |
US9564171B2 (en) | Reconstructive error recovery procedure (ERP) using reserved buffer | |
US9590660B2 (en) | Reconstructive error recovery procedure (ERP) using reserved buffer | |
US8375064B2 (en) | Apparatus, system, and method for read back verification of stored data | |
JP3272903B2 (ja) | 誤り訂正検出回路と半導体記憶装置 | |
US9513993B2 (en) | Stale data detection in marked channel for scrub | |
JP4988418B2 (ja) | 回転する記憶媒体の複数の層にデータを読み書きする方法、プログラム及びデータ記憶装置 | |
JP2007199934A (ja) | データ蓄積装置及びデータ読出し方法 | |
CN107885615B (zh) | 分布式存储数据的复原方法与系统 | |
CN1728101A (zh) | 数据存储设备及其数据存储方法 | |
JP7249719B2 (ja) | 共通の高ランダム・ビット・エラーおよび低ランダム・ビット・エラー修正ロジック | |
CN115061640B (zh) | 一种容错分布存储系统、方法、电子设备及介质 | |
JP2007200027A (ja) | データ蓄積装置及びエラー訂正方法 | |
US9400715B1 (en) | System and method for interconnecting storage elements | |
CN112860476A (zh) | 一种基于视频分层存储的近似纠删码编码方法及装置 | |
JP2007199754A (ja) | データ蓄積装置及びログデータの保存方法 | |
TWI392239B (zh) | Encoders, Decoders and Access Systems with Reed Solomon Error Correction Mechanism | |
JP3345997B2 (ja) | 誤り訂正符号化復号装置および誤り訂正符号化復号装置を備えたディスクアレイシステムコントローラ | |
JPH07320418A (ja) | データ再生装置 | |
CN118192879A (zh) | 一种数据存储的系统、方法以及装置 | |
JP5142045B2 (ja) | ディスクアレイ装置 | |
JP2007200433A (ja) | データ蓄積装置及びその制御方法 |