(57)【要約】【課題】データ・ストレージ・システム内でデータをデコードするための方法および装置を提供すること。【解決手段】動作中、検出器は、データ・ストレージ・システムのストレージ・サブシステムから受け取ったデータ・ブロックに基づいて、出力ビット・ストリームを生成する。検出器に接続されたポスト・プロセッサは、出力ビット・ストリームおよびデータ・ブロックに基づいて、第１のエラー訂正済みビット・ストリームを生成する。ポスト・プロセッサに接続されたエラー訂正デコーダは、第１のエラー訂正済みビット・ストリームに基づいて第２のエラー訂正済みビット・ストリームを生成し、第２のエラー訂正済みビット・ストリームに基づいてチェックサムも生成する。フィードバック経路は、チェックサムが第２のエラー訂正済みビット・ストリーム内のエラーを示し、第２のエラー訂正済みビット・ストリームが少なくとも１つの訂正インタリーブを有するイベントにおいて、エラー訂正デコーダからポスト・プロセッサへ、第２のエラー訂正済みビット・ストリーム内の正しいビットの場所を示すピン設定データを供給する。ポスト・プロセッサは、エラー訂正デコーダから受け取ったピン設定データに基づいて、第１のエラー訂正済みビット・ストリームを再生成する。【選択図】  図６
2007513441.tif 000002
【特許請求の範囲】
【請求項１】
データ・ストレージ・システムのストレージ・サブシステムから受け取ったデータ・ブロックに基づいて、検出器によって出力ビット・ストリームを生成するステップと、出力ビット・ストリームおよびデータ・ブロックに基づいて、前記検出器に接続されたポスト・プロセッサによって第１のエラー訂正済みビット・ストリームを生成するステップと、前記第１のエラー訂正済みビット・ストリームに基づいて、前記ポスト・プロセッサに接続されたエラー訂正デコーダによって第２のエラー訂正済みビット・ストリームを生成するステップと、前記第２のエラー訂正済みビット・ストリームに基づいて、前記エラー訂正デコーダによってチェックサムを生成するステップと、を有し、さらに、前記チェックサムが前記第２のエラー訂正済みビット・ストリーム内のエラーを示し、前記第２のエラー訂正済みビット・ストリームが少なくとも１つの訂正インタリーブを有するイベントにおいて、前記エラー訂正デコーダから前記ポスト・プロセッサへ、前記第２のエラー訂正済みビット・ストリーム内の正しいビットの場所を示すピン設定データを供給するステップと、前記ピン設定データに基づいて、前記ポスト・プロセッサによって前記第１のエラー訂正済みビット・ストリームを再生成するステップと、を有する、データ・ストレージ・システム内でデータをデコードするための方法。
【請求項２】
前記再生成するステップが、前記ピン設定データによって示された場所でビットを割り引くステップを有する、請求項１に記載の方法。
【請求項３】
前記ピン設定データが、前記第２のエラー訂正済みビット・ストリーム内の正しいビットの場所および値を示す、請求項１または２に記載の方法。
【請求項４】
前記チェックサムが前記第２のエラー訂正済みビット・ストリーム内のエラーを示し、前記第２のエラー訂正済みビット・ストリームが少なくとも１つの訂正インタリーブを有するイベントにおいて、前記エラー訂正デコーダから前記検出器へ前記ピン設定データを供給するステップをさらに有する、請求項３に記載の方法。
【請求項５】
前記ピン設定データに基づいて、前記検出器によって前記出力ビット・ストリームを再生成するステップをさらに有する、請求項４に記載の方法。
【請求項６】
前記第１のエラー訂正済みビット・ストリームを再生成するステップが、前記ピン設定データおよび前記再生成された出力ストリームに基づいて実行される、請求項５に記載の方法。
【請求項７】
前記エラー訂正デコーダ内で、前記チェックサムが前記第２のエラー訂正済みビット・ストリーム内のエラーを示すイベントにおいて、第３のエラー訂正済みビット・ストリームを生成するために消去デコードを実行するステップと、前記第３のエラー訂正済みビット・ストリームに基づいて前記チェックサムを再生成するステップと、を有する、前記請求項１から６のいずれかに記載の方法。
【請求項８】
前記エラー訂正デコーダ内で、前記チェックサムが前記第２のエラー訂正済みビット・ストリーム内のエラーを示し、前記第２のエラー訂正済みビット・ストリームが少なくとも１つの訂正インタリーブを有するイベントにおいて、第３のエラー訂正済みビット・ストリームを生成するために消去デコードを実行するステップと、前記第３のエラー訂正済みビット・ストリームに基づいて、前記チェックサムを再生成するステップと、を有する、請求項１から７のいずれかに記載の方法。
【請求項９】
前記再生成されたチェックサムが前記第３のエラー訂正済みビット・ストリーム内のエラーを示すイベントにおいて、ハード・エラーを信号通知するステップを有する、請求項７または８に記載の方法。
【請求項１０】
データ・ストレージ・システムのストレージ・サブシステムから受け取ったデータ・ブロックに基づいて、出力ビット・ストリームを生成するための検出器と、前記出力ビット・ストリームおよび前記データ・ブロックに基づいて第１のエラー訂正済みビット・ストリームを生成するために、前記検出器に接続されたポスト・プロセッサと、前記第１のエラー訂正済みビット・ストリームに基づいて第２のエラー訂正済みビット・ストリームを生成するため、および前記第２のエラー訂正済みビット・ストリームに基づいてチェックサムを生成するために、前記ポスト・プロセッサに接続されたエラー訂正デコーダと、前記チェックサムが前記第２のエラー訂正済みビット・ストリーム内でエラーを示し、前記第２のエラー訂正済みビット・ストリームが少なくとも１つの訂正インタリーブを有するイベントにおいて、前記エラー訂正デコーダから前記ポスト・プロセッサへ、前記第２のエラー訂正済みビット・ストリーム内の正しいビットの場所を示すピン設定データを供給するためのフィードバック経路と、を備え、前記ポスト・プロセッサは、前記エラー訂正デコーダから受け取った前記ピン設定データに基づいて前記第１のエラー訂正済みビット・ストリームを再生成する、データ・ストレージ・システム内でデータをデコードするための装置。
【請求項１１】
前記ポスト・プロセッサが、前記ピン設定データによって示された場所でビットを割り引くことによって前記第１のエラー訂正済みビット・ストリームを再生成する、請求項１０に記載の装置。
【請求項１２】
前記ピン設定データが、前記第２のエラー訂正済みビット・ストリーム内の正しいビットの場所および値を示す、請求項１０または１１に記載の装置。
【請求項１３】
前記チェックサムが前記第２のエラー訂正済みビット・ストリーム内のエラーを示し、前記第２のエラー訂正済みビット・ストリームが少なくとも１つの訂正インタリーブを有するイベントにおいて、前記エラー訂正デコーダから前記検出器へ前記ピン設定データを供給するために、前記フィードバック経路が前記エラー訂正デコーダから前記検出器まで延在する、請求項１２に記載の装置。
【請求項１４】
前記検出器が、前記ピン設定データに基づいて前記出力ビット・ストリームを再生成する、請求項１３に記載の装置。
【請求項１５】
前記ポスト・プロセッサが、前記ピン設定データおよび前記再生成された出力ストリームに基づいて前記第１のエラー訂正済みビット・ストリームを再生成する、請求項１４に記載の装置。
【請求項１６】
前記エラー訂正デコーダが、前記チェックサムが前記第２のエラー訂正済みビット・ストリーム内のエラーを示すイベントにおいて、第３のエラー訂正済みビット・ストリームを生成するために消去デコードを実行し、前記第３のエラー訂正済みビット・ストリームに基づいて前記チェックサムを再生成する、請求項１０から１５のいずれかに記載の装置。
【請求項１７】
前記エラー訂正デコーダが、前記チェックサムが前記第２のエラー訂正済みビット・ストリーム内のエラーを示し、前記第２のエラー訂正済みビット・ストリームが少なくとも１つの訂正インタリーブを有するイベントにおいて、第３のエラー訂正済みビット・ストリームを生成するために消去デコードを実行し、前記第３のエラー訂正済みビット・ストリームに基づいて、前記チェックサムを再生成する、請求項１０から１５のいずれかに記載の装置。
【請求項１８】
前記再生成されたチェックサムが前記第３のエラー訂正済みビット・ストリーム内のエラーを示すイベントにおいて、前記エラー訂正デコーダがハード・エラーを信号通知する、請求項１６または１７に記載の装置。
【請求項１９】
前記ポスト・プロセッサの出力に接続された入力および前記エラー訂正デコーダの入力に接続された出力を有する変調デコーダと、前記エラー訂正デコーダと前記ポスト・プロセッサとの間の前記フィードバック経路内の変調エンコーダと、をさらに備える、請求項１０から１８のいずれかに記載の装置。
【請求項２０】
データ・ブロックをストレージ用にエンコードするためのエンコーダ・サブシステムと、前記エンコード済みデータ・ブロックをデータ・ストレージ・メディア上に書き込むため、および前記エンコード済みデータ・ブロックを前記データ・ストレージ・メディアから読み取るために、前記エンコーダ・サブシステムに接続されたストレージ・サブシステムと、前記エンコード済みデータ・ブロックをデコードするための請求項１０から１９のいずれかに記載の装置を備えるデコード・サブシステムと、を備える、データ・ストレージ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ・ストレージ・システムに関し、特に、データ・ストレージ・システムにおいてデータをデコードするための装置および方法に関する。
【背景技術】
【０００２】
図1を参照すると、典型的なデータ・ストレージ・システムは、エンコード・サブシステム１、デコード・サブシステム２、およびストレージ・サブシステム３を備える。ストレージ・サブシステム３は、磁気テープまたはディスクなどのストレージ・メディア、ストレージ・メディアからデータを読み取るためおよびこれにデータを書き込むための読み取り／書き込み変換機、ならびに、変換機に対してストレージ・メディアを移動するためのドライブ・システムを備える。別の方法として、ストレージ・メディアおよび変換機を光技術によって実施することもできる。エンコード・サブシステム１は、データ処理システムなどのユーザ・デバイスからのロー・データを、ストレージ・サブシステム３に適合する形に変換する。一般に、エンコード変換時にストレージ・サブシステム３によって記録されたデータに、エラー訂正データが追加される。デコード・サブシステム２は、ストレージ・サブシステム３から読み取ったデータをユーザ・データに再変換する。エラー訂正データは、ストレージ・サブシステム３によってリードバックされたデータにおけるエラーを訂正するために、デコード・サブシステム２によって採用される。
【０００３】
データ・ストレージ・システムには、通常、信頼性仕様がある。費用対効果の高いデータの検出およびデコードによって、これらの仕様を満たすことが望ましい。したがって、性能を最大限にしながら、デコード・サブシステム２の実施複雑性を最低限に維持することが望ましい。
【０００４】
図２を参照すると、データ・ストレージ・システム用の典型的なデコード・サブシステム２は、一連の処理ステップを採用する。良く知られた方法では、データ検出器１０に続いてエラー訂正符号（ＥＣＣ）デコーダ２０を備える。デコーダ２０は複数のＥＣＣ符号を有することができる。
【０００５】
図３を参照すると、デコード・サブシステム２の典型的な例では、検出器１０とデコーダ２０との間にソフト決定ベースのパリティ・ポスト・プロセッサ３０が配置される。前述の信頼性要件を満たすために、通常、データ検出、内部変調／パリティ符号、および外部インタリーブド・リード・ソロモン符号の組み合わせが採用される。
【０００６】
内部パリティ・ベース・コーディングは、実施複雑性の増加を最小限に抑えながら、性能を向上させる。データ検出器１０は、通常、ビタービ・アルゴリズムに基づくシーケンス検出を採用する。検出器の出力時のエラー率は、ポスト・プロセッサ３０によって改善される。
【０００７】
使用に際して、ポスト・プロセッサ３０は、内部コーディングの変調およびパリティ制約を活用する。ポスト・プロセッサ３０は、検出器１０の出力から決定事項を受け取る。ポスト・プロセッサ３０は、フィード・フォワード・リンク４０を介して、検出器１０への入力からもソフト情報を受け取る。デコーダ２０は、外部ＥＣＣを介して残りのエラーを訂正するために、リード・ソロモン符号を使用してポスト・プロセッサの出力を処理する。
【０００８】
検出器１０およびポスト・プロセッサ３０による処理後にデータ内に残っているエラーは、通常、様々な長さのバーストとして現れる。バーストは、一般に、複数のインタリーブド外部ＥＣＣ符号語を介してデコーダによって分割される。バーストの長さおよび出現頻度に応じて、様々なインタリーブ方式が可能である。複数レベルの外部符号を採用して、システムのエラー訂正機能をさらに強化することができる。通常、データ内の残存エラーの有無を検出するために、巡回冗長検査（ＣＲＣ）符号が適用される。
【０００９】
データ検出、内部デコード、および外部デコードは、通常、図２および３に示されるようにフィード・フォワード様式で順次実行され、一般に「オン・ザ・フライ」モードと呼ばれる。オン・ザ・フライ・モードでは、記録されたデータの連続部分がリードバックされ、デコード済みデータが一定のデータ・レートで送達されるように処理される。これには、読み取られた次のデータ部分が処理される前に、検出、内部コーディング、および外部デコードを完了する必要がある。したがって、検出器１０およびデコーダ２０の性能と複雑性との間の慎重なトレードオフが好ましい。
【００１０】
最終的なＣＲＣ符号が未解決で残っているエラーを示す場合、入念な「オフ・ライン」データ回復手順が開始される。この手順は、一般に、オフ・ライン・モードと呼ばれる。次にオン・ザ・フライ・モードが中断され、デコード・サブシステム２のスループットが低下する。前述の信頼性要件は、障害宣言の前にすべてのデータ回復機能を使い尽くすことを必要とする。オフ・ライン・モードは、記録済みデータの再読み取りおよび再処理と共に、外部符号のいわゆる消去デコードを含むことができる。
【００１１】
性能の向上は、検出器１０、ポスト・プロセッサ３０、外部インタリーブド符号、およびデコーダ２０をより複雑にすることによって得られる。しかしながら、複雑性を増加させることは望ましくない。
【００１２】
図４を参照すると、検出器１０およびデコーダ２０の性能は、少なくとも１つの外部インタリーブドＥＣＣ符号語が正しくデコードされた場合、検出器１０への外部デコードのフィードバック５０によって向上させることができる。それぞれの正しいインタリーブド外部符号語について、インタリーブド・データ・ストリームにおける対応する位置のビットを、それらの正しい値または既知の値に固定または「ピン」することができる。この部分的に正しいデータ・ストリームを検出器１０によって再処理することができる。
【００１３】
正しいビットの場所および値を知ることによって、検出器１０が追跡することになる可能なシーケンスの数を制限し、その結果、性能が向上する。これは、記録密度の高い主要なノイズが遷移またはメディア・ノイズであるデータ・ストレージ・システムの場合に、特に有用である。こうしたケースでは、多くの観察結果を平均することによってノイズのランダム性を活用することはできない。したがって、特定の場所での特定ビットの正確さに関する追加情報が有益である。外部インタリーブド・リード・ソロモン符号から内部重畳符号へのこうしたフィードバックを使用することが、Ｅ．Ｐａａｓｋｅによる「Ｉｍｐｒｏｖｅｄ  ｄｅｃｏｄｉｎｇ  ｆｏｒ  ａ  ｃｏｎｃａｔｅｎａｔｅｄ  ｃｏｄｉｎｇ  ｓｙｓｔｅｍ  ｒｅｃｏｍｍｅｎｄｅｄ  ｂｙ  ＣＣＳＤＳ」ＩＥＥＥ  Ｔｒａｎｓ．Ｃｏｍｍｕｎ．、第ＣＯＭ−３８巻、１１３８〜１１４４ページ、１９９０年８月、ならびに、Ｏ．ＣｏｌｌｉｎｓおよびＭ．Ｈｉｚｌａｎによる「Ｄｅｔｅｒｍｉｎａｔｅ  ｓｔａｔｅ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｃｏｄｅｓ」ＩＥＥＥ  Ｔｒａｎｓ．Ｃｏｍｍｕｎ．、第４１巻、１２号、１７８５〜１７９４ページ、１９９３年１２月の、ディープ・スペース適用例に提案される。データ・ストレージへのこの概念の適用例が、Ｊ．ＭｉｌｌｅｒおよびＪ．Ｋ．Ｗｏｌｆによる「Ｈｉｇｈ  ｃｏｄｅ  ｒａｔｅ  ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅ  ｄｅｓｉｇｎ  ｆｏｒ  ｐａｒｔｉａｌ  ｒｅｓｐｏｎｓｅ  ｓｙｓｔｅｍｓ」ＩＥＥＥ  Ｔｒａｎｓ．Ｍａｇｎｅｔｉｃｓ、第３７巻、２号、７０４〜７０７ページ、２００１年３月に記載されており、ここでは内部データ検出器および外部インタリーブドＲＳコーディングのみが使用される。追加のビット・インタリーブ・ステップは、コーディング済みおよび未コーディングのユーザ・ビットを点在させる。訂正された外部符号語からのフィードバックが、未コーディング・ビットを回復する。しかしながら、こうした方式から入手可能な性能の向上には限りがある。次に図５を参照すると、データ・ストレージへのこの概念の他の適用例が、Ｈ．Ｓａｗａｇｕｃｈｉ、Ｓ．Ｍｉｔａ、およびＪ．Ｋ．Ｗｏｌｆによる「Ａ  ｃｏｎｃａｔｅｎａｔｅｄ  ｃｏｄｉｎｇ  ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  ｐａｒｔｉａｌ  ｒｅｓｐｏｎｓｅ  ｃｈａｎｎｅｌ」ＩＥＥＥ  Ｔｒａｎｓ．Ｍａｇｎｅｔｉｃｓ、第３７巻、２号、６９５〜７０３ページ、２００１年３月に記載されている。ここでは、検出器１０の入力からポスト・プロセッサ３０へのフィード・フォワード・リンク４０が順方向処理を提供する。ＥＣＣフィードバック５０は、デコーダ２０の出力から検出器に１０に提供される。
【００１４】
ポスト・プロセッサ３０の従来の例が、Ｒ．Ｄ．Ｃｉｄｅｃｉｙａｎ、Ｊ．Ｄ．Ｃｏｋｅｒ、Ｅ．Ｅｌｅｆｔｈｅｒｉｏｕ、およびＲ．Ｌ．Ｇａｌｂｒａｉｔｈによる「Ｎｏｉｓｅ  ｐｒｅｄｉｃｔｉｖｅ  ｍａｘｉｍｕｍ  ｌｉｋｅｌｉｈｏｏｄ  ｄｅｔｅｃｔｉｏｎ  ｃｏｍｂｉｎｅｄ  ｗｉｔｈ  ｐａｒｉｔｙ−ｂａｓｅｄ  ｐｏｓｔ−ｐｒｏｃｅｓｓｉｎｇ」ＩＥＥＥ  Ｔｒａｎｓ．Ｍａｇｎｅｔｉｃｓ、第３７巻、２号、７１４〜７２０ページ、２００１年３月に記載されている。
【００１５】
内部パリティ符号をデコードするための代替手法には、デコードと検出の組み合わせが含まれる。シーケンス検出およびパリティ符号トレリスを組み合わせて、結合「スーパー・トレリス」を形成することができる。検出およびデコードの組み合わせを実行するために、ビタービ・アルゴリズムを適用することができる。しかしながら、スーパー・トレリス内の状態の数は指数関数的に増加し、実施の複雑性は極端に高くなる。たとえば、ｍパリティ・ビットのパリティ符号と組み合わされたＫ度で生成されたパーシャル・レスポンス多項式用の検出器は、２＾（Ｋ＋ｍ）状態のトレリスを必要とする。パリティ・ポスト・プロセッサは、デコードと検出を分離することによってこの問題を緩和する。
【００１６】
ポスト・プロセッサ３０および検出器１０は、異なる動作をする。さらに、パリティ・ポスト・プロセッサ３０の設計には、検出される主要なエラー・イベントの数、パリティ符号、チェックされる可能性が最も高いエラー・イベント・リストのサイズなどの、様々なパラメータの入念な選択が含まれる。
【非特許文献１】Ｅ．Ｐａａｓｋｅによる「Ｉｍｐｒｏｖｅｄ  ｄｅｃｏｄｉｎｇ  ｆｏｒ  ａ  ｃｏｎｃａｔｅｎａｔｅｄ  ｃｏｄｉｎｇ  ｓｙｓｔｅｍ  ｒｅｃｏｍｍｅｎｄｅｄ  ｂｙ  ＣＣＳＤＳ」ＩＥＥＥ  Ｔｒａｎｓ．Ｃｏｍｍｕｎ．、第ＣＯＭ−３８巻、１１３８〜１１４４ページ、１９９０年８月
【非特許文献２】Ｏ．ＣｏｌｌｉｎｓおよびＭ．Ｈｉｚｌａｎによる「Ｄｅｔｅｒｍｉｎａｔｅ  ｓｔａｔｅ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｃｏｄｅｓ」ＩＥＥＥ  Ｔｒａｎｓ．Ｃｏｍｍｕｎ．、第４１巻、１２号、１７８５〜１７９４ページ、１９９３年１２月
【非特許文献３】Ｊ．ＭｉｌｌｅｒおよびＪ．Ｋ．Ｗｏｌｆによる「Ｈｉｇｈ  ｃｏｄｅ  ｒａｔｅ  ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅ  ｄｅｓｉｇｎ  ｆｏｒ  ｐａｒｔｉａｌ  ｒｅｓｐｏｎｓｅ  ｓｙｓｔｅｍｓ」ＩＥＥＥ  Ｔｒａｎｓ．Ｍａｇｎｅｔｉｃｓ、第３７巻、２号、７０４〜７０７ページ、２００１年３月
【非特許文献４】Ｈ．Ｓａｗａｇｕｃｈｉ、Ｓ．Ｍｉｔａ、およびＪ．Ｋ．Ｗｏｌｆによる「Ａ  ｃｏｎｃａｔｅｎａｔｅｄ  ｃｏｄｉｎｇ  ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  ｐａｒｔｉａｌ  ｒｅｓｐｏｎｓｅ  ｃｈａｎｎｅｌ」ＩＥＥＥ  Ｔｒａｎｓ．Ｍａｇｎｅｔｉｃｓ、第３７巻、２号、６９５〜７０３ページ、２００１年３月
【発明の開示】
【発明が解決しようとする課題】
【００１７】
データ・ストレージ・システム用のデコード・サブシステムの性能を向上させることが望ましい。
【課題を解決するための手段】
【００１８】
本発明によれば、データ・ストレージ・システム内でデータをデコードするための方法が提供され、当該方法は、データ・ストレージ・システムのストレージ・サブシステムから受け取ったデータ・ブロックに基づいて、検出器によって出力ビット・ストリームを生成するステップと、出力ビット・ストリームおよびデータ・ブロックに基づいて、検出器に接続されたポスト・プロセッサによって第１のエラー訂正済みビット・ストリームを生成するステップと、第１のエラー訂正済みビット・ストリームに基づいて、ポスト・プロセッサに接続されたエラー訂正デコーダによって第２のエラー訂正済みビット・ストリームを生成するステップと、第２のエラー訂正済みビット・ストリームに基づいて、エラー訂正デコーダによってチェックサムを生成するステップと、を有し、さらに、チェックサムが第２のエラー訂正済みビット・ストリーム内のエラーを示し、第２のエラー訂正済みビット・ストリームが少なくとも１つの訂正インタリーブを有するイベントにおいて、エラー訂正デコーダからポスト・プロセッサへ、第２のエラー訂正済みビット・ストリーム内の正しいビットの場所を示すピン設定データ（ｐｉｎｎｉｎｇ  ｄａｔａ）を供給するステップと、ピン設定データに基づいて、ポスト・プロセッサによって第１のエラー訂正済みビット・ストリームを再生成するステップと、を有する。
【００１９】
再生成するステップは、好ましくは、ピン設定データによって示される場所でビットを割り引く（ｄｉｓｃｏｕｎｔ）ステップを有する。ピン設定データは、第２のエラー訂正済みビット・ストリーム内の正しいビットの場所および値を示すことができる。当該方法は、チェックサムが第２のエラー訂正済みビット・ストリーム内のエラーを示し、第２のエラー訂正済みビット・ストリームが少なくとも１つの訂正インタリーブを有するイベントにおいて、エラー訂正デコーダから検出器へピン設定データを供給するステップを有することができる。次に当該方法は、ピン設定データに基づいて、検出器によって出力ビット・ストリームを再生成するステップを有することができる。第１のエラー訂正済みビット・ストリームを再生成するステップは、ピン設定データおよび再生成された出力ストリームに基づいて実行することができる。
【００２０】
消去デコードは、チェックサムが第２のエラー訂正済みビット・ストリーム内のエラーを示すイベントにおいて、第３のエラー訂正済みビット・ストリームを生成するためにエラー訂正デコーダ内で実行することができる。次にチェックサムは、第３のエラー訂正済みビット・ストリームに基づいて再生成される。別の方法として、消去デコードは、チェックサムが第２のエラー訂正済みビット・ストリーム内のエラーを示し、第２のエラー訂正済みビット・ストリームが少なくとも１つの訂正インタリーブを有するイベントにおいて、第３のエラー訂正済みビット・ストリームを生成するために実行することができる。次にチェックサムは、第３のエラー訂正済みビット・ストリームに基づいて、再度再生成することができる。いずれのケースでも、再生成されたチェックサムが第３のエラー訂正済みビット・ストリーム内のエラーを示すイベントにおいて、ハード・エラーを信号通知することができる。
【００２１】
本発明を他の態様から見ると、データ・ストレージ・システム内でデータをデコードするための装置が提供され、当該装置は、データ・ストレージ・システムのストレージ・サブシステムから受け取ったデータ・ブロックに基づいて、出力ビット・ストリームを生成するための検出器と、出力ビット・ストリームおよびデータ・ブロックに基づいて第１のエラー訂正済みビット・ストリームを生成するために、検出器に接続されたポスト・プロセッサと、第１のエラー訂正済みビット・ストリームに基づいて第２のエラー訂正済みビット・ストリームを生成するため、および第２のエラー訂正済みビット・ストリームに基づいてチェックサムを生成するために、ポスト・プロセッサに接続されたエラー訂正デコーダと、チェックサムが第２のエラー訂正済みビット・ストリーム内でエラーを示し、第２のエラー訂正済みビット・ストリームが少なくとも１つの訂正インタリーブを有するイベントにおいて、エラー訂正デコーダからポスト・プロセッサへ、第２のエラー訂正済みビット・ストリーム内の正しいビットの場所を示すピン設定データを供給するための、フィードバック経路と、を備え、ポスト・プロセッサは、エラー訂正デコーダから受け取ったピン設定データに基づいて第１のエラー訂正済みビット・ストリームを再生成する。
【００２２】
さらに当該装置は、ポスト・プロセッサの出力に接続された入力およびエラー訂正デコーダの入力に接続された出力を有する変調デコーダと、エラー訂正デコーダとポスト・プロセッサとの間のフィードバック経路内の変調エンコーダとを備える。
【００２３】
本発明は、データ・ブロックをストレージ用にエンコードするためのエンコーダ・サブシステムと、エンコード済みデータ・ブロックをデータ・ストレージ・メディア上に書き込むため、およびエンコード済みデータ・ブロックをデータ・ストレージ・メディアから読み取るために、エンコーダ・サブシステムに接続されたストレージ・サブシステムと、エンコード済みデータ・ブロックをデコードするための本明細書で前述された装置を備えるデコード・サブシステムと、を備えるデータ・ストレージ・システムにも適用される。
【００２４】
本発明は、磁気テープ・ドライブ、ディスク・ドライブなどのデータ・ストレージ・システムに関するデコード・サブシステムの性能を有利に向上させる。
【００２５】
前述のように、データ・ストレージ・デコード・サブシステム技術には、内部コーディング方式にパリティ符号を含め、それらをデコードするためにポスト・プロセッサ３０内でソフト決定パリティ・ベースの処理を使用する傾向がある。こうした方式の性能の向上を最大限にすることが、極めて望ましい。本発明の好ましい実施形態では、性能は、正しくデコードされた外部ＥＣＣ符号語からポスト・プロセッサ３０へフィードバックを提供することによって向上する。
【００２６】
簡潔に説明される本発明の好ましい実施形態では、正しくデコードされた外部ＥＣＣ符号語からのフィードバックと共に使用可能な、内部データ検出およびソフト決定パリティ・ベースのポスト処理のための方法が提供される。
【００２７】
本発明の特に好ましい実施形態では、ポスト・プロセッサ３０は、第２のパス時にＥＣＣフィードバック情報を受け入れるように修正される。具体的に言えば、正しいことがわかっているそれらのビット位置に少なくとも部分的に及ぶエラー・イベントは、考慮の対象から外される。この修正により、ポスト・プロセッサによって検討される可能性のあるエラー・イベント・リストが最適化され、その結果、性能が向上する。
【００２８】
加えて、既知のビット位置のうちの少なくともいくつかに対応するエラー信号をゼロに設定するか、またはそうでなければ、第２のパスでの処理をさらに容易にするように有利に変更することもできる。
【００２９】
本発明の利点は、外部ＥＣＣデコーダによって生成されるフィードバック情報のタイプおよび量を、柔軟に決定できることである。可能なことの１つが、正しいビット位置の場所および値の両方を提供することである。別の方法として、正しいビット位置の場所のみを供給することもできる。これにより、必要なフィードバックの量が大幅に削減される。検出器１０が訂正済みビットの値も必要な形を取っている場合、この種の部分的なフィードバックでは不十分な可能性がある。しかしながら、ポスト・プロセッサ３０は、受信機が個々のエラー・イベントについてエラー・イベントが最も発生しやすい場所として他の場所を選択できるようにするものであることから、ポスト・プロセッサ３０では依然として部分的なフィードバックが有用である。ポスト・プロセッサ３０によるパリティ・チェックと結合すると、性能における向上を実現することができる。
【００３０】
提案された方式の他の利点は、ＥＣＣフィードバック情報を使用する検出器１０で使用できることである。ポスト・プロセッサ３０によって使用されるデータ・ストリームが検出器によっても事前に処理されていれば、ポスト・プロセッサ３０にとって有利である。
【００３１】
本発明は、オン・ザ・フライおよびオフ・ラインの両方のデコード・モードに適用可能である。これにより、性能、実施の複雑性、およびオペレーティング・モードの間での、柔軟な設計のトレードオフが可能である。複数の外部ＥＣＣ符号が使用される場合、より詳細なフィードバック情報をポスト・プロセッサ３０に提供することができる。したがって、性能におけるさらなる向上が可能である。
【００３２】
次に、本発明の好ましい実施形態について、添付の図面を参照しながら単なる一例として説明する。
【発明を実施するための最良の形態】
【００３３】
図６を参照すると、本発明を具体化するデータ・ストレージ・システムの一例において、デコード・サブシステム２は、検出器１０、デコーダ２０、およびパリティ・ベースのポスト・プロセッサ３０を備える。検出器１０の出力は、ポスト・プロセッサ３０を介してデコーダ２０の入力に接続される。フィード・フォワード経路４０は、検出器１０の入力からポスト・プロセッサ３０へと延在する。フィードバック経路６０は、デコーダ２０からポスト・プロセッサ３０へと延在する。ポスト・プロセッサ３０は、フィードバック経路６０を介してデコーダ２０からフィードバックされたＥＣＣフィードバック情報を考慮に入れるように修正される。
【００３４】
動作中、ポスト・プロセッサ３０は、検出器１０の出力で観察された主要なエラー・イベントを訂正する。ポスト・プロセッサ３０は、通信理論の「１回限りの（ｏｎｅ−ｓｈｏｔ）」受信機原理に基づくことができる。前述のＣｉｄｅｃｉｙａｎ等の文献を参照されたい。検出される主要なエラー・イベントは、有色雑音の存在下で観察された「対象とされる（ｉｎｔｅｎｄｅｄ）メッセージ」として取り扱われる。ポスト・プロセッサ３０は、それぞれの主要なエラー・イベントについて、別々の受信機を有する。各受信機の出力は、符号語内での対応するエラー・イベントの出現尤度およびその場所である。好ましい受信機は、雑音白色化フィルタとそれに続く整合フィルタとを備える。雑音白色化は、等化器の出力および検出器１０によって生成されたビット決定事項から導出されたエラー信号上で実行される。本発明の好ましい実施形態では、受信機の出力が比較される。最も可能性の高いエラー・イベントが選択される。エラー・イベントの訂正によって内部パリティ・コードの制約が満たされることを確認するために、他のチェックを実行することができる。ポスト・プロセッサ３０は、ここである利点を提供する。パリティ制約を満たした場合、検出されたデータ・ストリームは選択されたエラー・イベントに従って訂正される。そうでない場合、次に最も可能性の高いエラー・イベントがパリティ制約に関してチェックされる。このプロセスは、パリティ制約を満たすエラー・イベントが見つかるか、または可能性の高いエラー・イベントのリストがなくなるまで続けられる。
【００３５】
動作中、デコード・サブシステム２によってストレージ・サブシステム３から読み取られるデータの各ブロックは、ブロックのデコードが成功したかどうかを判別するためにデコーダ２０がＣＲＣチェックサムを実行する第１のデコード・パスの対象となる。成功した場合、次のデータ・ブロックが読み取られる。成功しなかった場合、データ・ブロックの第２のデコード・パス用に、デコーダ２０からポスト・プロセッサ３０へフィードバック・リンク６０を介して「ピン設定」フィードバック情報が戻される。
【００３６】
本発明の他の実施形態では、デコーダ２０から検出器１０へと延在する追加のフィードバック経路５０が提供される。
【００３７】
いくつかのデータ・ストレージ・システムでは、エンコーダ・サブシステム１は、ユーザ・データのエンコードと、それに続くＥＣＣエンコードおよび先行する内部パリティ・エンコードのための、変調エンコーダを備える。したがって、次に図８を参照すると、本発明の他の実施形態では、ポスト・プロセッサ３０の出力とデコーダ２０の入力との間に変調デコーダ７０が提供される。変調エンコーダ８０は、デコーダ２０からポスト・プロセッサ３０および検出器１０へのフィードバック経路内に提供される。デコーダ２０からのフィードバックは、第２のパスにおけるポスト・プロセッサ３０および検出器１０での使用に先立って、変調エンコーダ８０によって再エンコードされる。
【００３８】
図９を参照すると、本発明の他の実施形態では、ポスト・プロセッサ３０のみがデコーダ２０からのＥＣＣフィードバック情報を受け取る。したがって、検出器１０へのフィードバック経路５０は省略される。これにより、検出器１０は処理の第２のパスを実行しないため、実施の複雑性が削減される。
【００３９】
次に、図６を参照しながら上記で説明したデコード・サブシステム２のオペレーションについて、図１０を参照しながら説明する。ブロック１００で、データ・ブロックが、ストレージ・サブシステム３からデコード・サブシステム２の検出器１０へと読み取られる。ブロック１２０で、検出器１０とポスト・プロセッサ３０との組み合わせで、データ・ブロックから訂正済みビット・ストリームを生成する。ブロック１３０で、デコーダ２０はエラー訂正を実行する。ブロック１４０で、デコーダ２０はＣＲＣチェックサムをテストする。
【００４０】
ＣＲＣチェックサムがエラーなしを示す場合、ブロック２１０で、デコーダ２０は第１の処理パスに続いてデコードが成功したものとしてデータ・ブロックを渡す。その後、次のデータ・ブロックがデコードのためにストレージ・サブシステム３から読み取られる。
【００４１】
ＣＲＣチェックサムがエラーを示す場合、データ・ブロックの第２の処理パスが実行される。ブロック１５０で、デコーダ２０は、少なくとも１つのインタリーブ・エラーが訂正されたかどうかを判別する。少なくとも１つのインタリーブ・エラーが訂正された場合、ブロック１６０で、デコーダ２０は訂正済みデータからピン設定情報を抽出する。ピン設定情報は、データ・ブロック内の正しいビットの場所を有する。ピン設定情報は、デコーダ２０により、フィードバック・リンク６０を介してポスト・プロセッサ３０に送られる。
【００４２】
少なくとも１つのインタリーブ・エラーが訂正されなかった場合、デコード・サブシステム２はオフ・ライン・モードに入る。ブロック１７０で、デコーダ２０は消去デコードを実行する。消去デコードに続いてブロック１８０で、デコーダはＣＲＣチェックサムをテストする。
【００４３】
チェックサムがエラーなしを示す場合、次にブロック２１０でデコーダ２０は、ブロックのデコードが成功したことを示す。しかしながら、チェックサムがエラーを示した場合、ブロック２００でデコーダ２０は、すべての消去シフトが実行されたかどうかを判別する。すべての消去シフトが実行された場合、次にブロック２２０でデコーダは、ブロックのデコードが失敗した旨を決定する。ハード・エラーが戻される。消去デコードには、データ・ブロック内のビットを進むスイープ・アクションが含まれる。消去シフトが実行されたままである場合、ブロック１９０でデコーダ２０は、少なくとも１つのインタリーブ・エラーが訂正されたかどうかを判別する。
【００４４】
ここでも、少なくとも１つのインタリーブ・エラーが訂正された場合、ブロック１６０でデコーダ２０は訂正済みデータからピン設定情報を抽出する。ここでも、ピン設定情報はデータ内の正しいビットの場所を有する。ピン設定情報は、デコーダ２０によってフィードバック・リンク６０を介してポスト・プロセッサ３０へと再度送られる。ポスト・プロセッサ３０は、受け取ったピン設定情報を考慮に入れるデータ・ブロックの他のパスを実行する。
【００４５】
少なくとも１つのインタリーブ・エラーが訂正されなかった場合、次にブロック１７０で、デコーダ２０は再度消去デコードを実行する。
【００４６】
ピン設定情報を受け取ると、ポスト・プロセッサ３０はステップ１４０から２２０へと続くデータ・ブロックの第２のパスを実行するが、ここでは、ピン設定情報が正しいものとして識別されたビットは除外する。ポスト・プロセッサ３０が第２のパスで動作する場合、デコード・プロセスは、デコード・サブシステム２内の検出器１０からの、等化器出力およびビット出力から導出されたデータ・サンプルを一時的に格納することを含む場合があることを理解されよう。
【００４７】
本明細書で図１０を参照しながら上記で説明したプロセスに基づいて、第１のパスの後で正しいことがわかっているビット位置に完全に含まれるエラーは、第２のパスでポスト・プロセッサ３０によって考慮の対象から外される。正しいビット位置に部分的に位置するエラーも、ポスト・プロセッサ３０によって外されることが可能である。この場合、隣接するビットにも影響を与える可能性がある。ピン設定情報は、ポスト・プロセッサ３０に、これらの位置を以後の考慮の対象から除外させることができる。これにより、ポスト・プロセッサ３０によって再検討される可能性のあるエラーの数が削減され、その結果、性能が強化される。
【００４８】
図１０を参照しながら上記で説明した本発明の例は、オン・ザ・フライおよびオフ・ラインの両方のモードに適用可能である。しかしながら、本発明のいくつかの実施形態は、オン・ザ・フライ・モードに限定することができる。同様に、本発明の他の実施形態は、オフ・ライン・モードに限定することができる。いくつかの適用例でオフ・ライン・モードに関連付けられた待ち時間要件は、同じ目標ハード・エラー率に対してブロックの再読み取り数を削減することができることから、本発明によって改善可能である。
【００４９】
次に図１１を参照すると、オフ・ラインのみの手順は、ブロック１５０での少なくとも１つのインタリーブ・エラーについてのテストを除き、図１０を参照しながら上記で説明したものと同じステップを有する。
【００５０】
図７を参照しながら上記で説明した本発明の実施形態では、検出器１０はデコーダ２０からもピン設定情報を受け取る。ここでピン設定情報は、正しいビットの値をさらに有する。この配置構成が、前述の一時格納ステップの簡略化を有利に可能にする。具体的に言えば、第１のパスに続いてデコーダ２０からフィードバック経路５０を介して受け取ったピン設定情報に基づいて検出されたビットの新しいセットを生成するために、検出器１０が第２の処理パスも実行する場合、検出器１０からのビット出力を格納する必要がない。正しいことがわかっている一部またはすべてのビット位置に対応するエラーは、ゼロに設定するか、またはそうでなければ検出器１０内で有利に変更することが可能であり、これによってポスト・プロセッサ３０内での第２のパスの処理が機能強化される。
【００５１】
本発明は、処理データ・ブロック内の第２のパスでのポスト・プロセッサ３０および検出器１０の関与の程度に応じて、デコーダ２０によって生成されるフィードバック情報のタイプおよび量を柔軟な様式で決定することが可能である。同様に、本発明は、ポスト・プロセッサ３０および検出器１０が第２のパスでの処理に参加する程度に基づいて、必要な一時格納の量を最適化することが可能である。検出器１０あるいはポスト・プロセッサ３０またはその両方による処理の第２のパスは残りのエラーの訂正が可能であり、それによって再読み取りの必要がなくなる。これにより、性能とスループットの両方が向上する。
【００５２】
パイプライン化を採用して、本発明を具体化するデコーダ・サブシステム２のスループットをさらに向上させることができる。パイプライン化には、第２の検出器あるいは第２のポスト・プロセッサまたはその両方の使用が含まれる。第２の検出器あるいは第２のポスト・プロセッサまたはその両方は、第２のパスで採用される。その一方で、第１の検出器あるいは第１のポスト・プロセッサまたはその両方は、ストレージ・サブシステム３から読み取られたデータの次のブロックの処理を開始する。
【００５３】
本発明の他の好ましい実施形態では、ピン設定情報がオフ・ライン・モードのみで使用される。デコード・サブシステム２がこのモードに入ると、記録されたデータの読み取りは延期される。したがって、リードバックされたデータを再処理するためにより多くの時間が利用できる。検出器１０あるいはポスト・プロセッサ３０またはその両方による第２の処理パスを、オフ・ライン・モードのみで実行することができる。これにより、実施の複雑性および待ち時間の両方が有利に削減される。しかしながらここでは、オン・ザ・フライ・モードでのオペレーション中は性能が強化されない。
【００５４】
デコーダ２０は、最も可能性の高いエラー・イベントのリストを維持することができる。ポスト・プロセッサ３０によって、内部符号語内で複数のエラー・イベントを訂正することができる。その後、ポスト・プロセッサ３０の出力を最終エラー訂正のためにデコーダ２０に送ることができる。
【００５５】
本発明は、磁気テープ・ドライブおよび光または磁気ディスク・ドライブを含む、多くの異なるデータ・ストレージ・システムに適用可能である。デコード・サブシステム２は、ハードワイヤード論理回路、１つまたは複数のプログラム可能プロセッサ上で実行するソフトウェア、あるいはハードワイヤードおよび論理回路と１つまたは複数のプログラム可能プロセッサ上で実行するソフトウェアとの組み合わせで実施可能であることを理解されよう。上記で説明した本発明の実施形態では、データはデコード・サブシステム２によってブロック単位で読み取られる。こうしたブロックは、ディスク上のセクタまたはテープ上の同様の部分に対応することが可能である。
【図面の簡単な説明】
【００５６】
【図１】データ・ストレージ・システムを示すブロック図である。
【図２】データ・ストレージ・システム用の従来のデコード・サブシステムを示すブロック図である。
【図３】他の従来のデコード・サブシステムを示すブロック図である。
【図４】他の従来のデコード・サブシステムを示すブロック図である。
【図５】他の従来のデコード・サブシステムを示すブロック図である。
【図６】本発明を採用したデコード・サブシステムを示すブロック図である。
【図７】本発明を具体化する他のデコード・サブシステムを示すブロック図である。
【図８】本発明を具体化する他のデコード・サブシステムを示すブロック図である。
【図９】本発明を具体化する他のデコード・サブシステムを示すブロック図である。
【図１０】図６に示されたデコード・サブシステムに対応する流れ図である。
【図１１】図６に示されたデコード・サブシステムに対応する他の流れ図である。
【図１】
2007513441.tif 000003
【図２】
2007513441.tif 000004
【図３】
2007513441.tif 000005
【図４】
2007513441.tif 000006
【図５】
2007513441.tif 000007
【図６】
2007513441.tif 000008
【図７】
2007513441.tif 000009
【図８】
2007513441.tif 000010
【図９】
2007513441.tif 000011
【図１０】
2007513441.tif 000012
【図１１】
2007513441.tif 000013
【国際調査報告】
2007513441.tif 000014
2007513441.tif 000015
2007513441.tif 000016