(57)【特許請求の範囲】
【請求項１】
メモリ・デバイスの読取チャネル内の少なくとも１つの符号化データ値を処理する方法であって、
前記メモリ・デバイスから入手された前記少なくとも１つの符号化データ値を前記読取チャネルで受け取ることと、
汎用プロセッサによる復号処理のために前記読取チャネル内の復号器をバイパスして前記少なくとも１つの符号化データ値を前記汎用プロセッサに提供することと
を含み、
前記提供することは、１または複数の所定のトリガ条件の検出時に実行され、
前記１または複数の所定のトリガ条件は、復号失敗、検出もしくは復号されたデータの低い信頼性、及び、前記少なくとも１つの符号化データをオフラインでおよび／もしくはより低いデータ・レートで処理したいという要望のうちの１または複数を含む、方法。
【請求項２】
前記少なくとも１つの符号化データ値は、生データ値および中間データ値のうちの１つまたは複数を含む、請求項１に記載の方法。
【請求項３】
前記汎用プロセッサは、信号処理アルゴリズム、復号アルゴリズム、およびエラー・フロア軽減方式のうちの１つまたは複数を実施する、請求項１に記載の方法。
【請求項４】
前記汎用プロセッサは、複数の信号処理アルゴリズムを順次実施する、請求項１に記載の方法。
【請求項５】
メモリ・デバイスから入手された少なくとも１つの符号化データ値を処理する方法であって、
前記メモリ・デバイスから入手された前記少なくとも１つの符号化データ値を読取チャネルで受け取ること及び
汎用プロセッサによる復号処理のために前記読取チャネル内の復号器をバイパスして前記少なくとも１つのデータ値を前記汎用プロセッサにリダイレクトすること
を含み、
前記リダイレクトすることは、１または複数の所定のトリガ条件の検出時に実行され、
前記１または複数の所定のトリガ条件は、復号失敗、検出もしくは復号されたデータの低い信頼性、及び、前記少なくとも１つの符号化データをオフラインでおよび／もしくはより低いデータ・レートで処理したいという要望のうちの１または複数を含む、方法。
【請求項６】
前記汎用プロセッサは、１つまたは複数の追加アプリケーションと共に時分割される、請求項５に記載の方法。
【請求項７】
前記リダイレクトすることは、マルチプレクサおよびバイパス・タップ入力のうちの１つを使用して実行される、請求項５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にはメモリ・デバイスに関し、具体的には、データ信頼性および耐久性のための改善された技法に関する。
【背景技術】
【０００２】
改善されたデータ信頼性および耐久性は、すべてのストレージ・システムの重要な設計目標である。耐久性は、たとえば、ソリッド・ステート・ディスクでの読取／書込サイクル数または最大消去回数およびハード・ディスク・ドライブでのセクタ誤り率として表すことができる。データ信頼性は、しばしば、特定用途向け集積回路（ＡＳＩＣ）またはシステムオンチップ（ＳｏＣ）内のＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）コアなど、読取チャネル内で改善された信号処理アルゴリズムまたは符号化アルゴリズムおよび復号アルゴリズムを実施することによって改善される。システム・レベルでは、データ信頼性を、冗長な形でファイルを格納することによって改善することができる。たとえば、複数のストレージ・システムが、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）を使用する。ＲＡＩＤストレージ・システムは、冗長性のために複数のストレージ・デバイスをアレイに配置することによって、高いレベルのストレージ信頼性を提供する。一般に、ＲＡＩＤストレージ方式は、複数のハード・ディスク・ドライブの間でデータを分割し、複製する。
【０００３】
ストレージ・デバイスが損傷を受けるか他の形でアクセス不能になる時に、データ回復技法を試みて、ストレージ媒体からデータをサルベージすることができる。回復は、ストレージ・デバイスに対する物理的損傷またはファイル・システムに対する論理的損傷の結果として必要になる可能性がある。回復技法は、破壊されたデータのソフトウェアベースの回復と、物理的に損傷を受けたディスクに対するハードウェア交換とを含む。多くの場合に、データ回復は、ストレージ媒体が破棄される前のファイルの１回限りの回復に制限される。
【０００４】
そのような冗長ストレージ技法およびデータ回復技法は、ストレージ・システムの信頼性を改善してきたが、複数の制限が残っており、これらの制限は、克服される場合に、ストレージ・システムの信頼性および性能をさらに改善できるはずである。たとえば、ＲＡＩＤストレージ・システムは、一般に、高価であり、過度の電力を消費する。さらに、データ回復技法は、通常、破壊されたストレージ・デバイスをデータ回復サービスに郵送することを必要とし、これは、高価であり不便である可能性がある。
【０００５】
従来の読取チャネルでは、信号処理が、通常は専用のハードウェアを使用して実行される。要求されるデータ・レートを達成し、少ない面積および低い電力消費を維持するために、専用のハードウェア復号器は、たとえば、通常、固定された精度を有する単一の復号アルゴリズムを実施する。したがって、専用の復号ブロックによる復号失敗の場合に、代替の復号オプションはなく、データは失われる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際特許出願第ＰＣＴ／ＵＳ０９／４９３２６号
【特許文献２】国際特許出願第ＰＣＴ／ＵＳ０９／５９０７７号
【特許文献３】国際特許出願第ＰＣＴ／ＵＳ０９／４９３３３号
【非特許文献】
【０００７】
【非特許文献１】Ｅ．Ｆ．ＨａｒａｔｓｃｈおよびＺ．Ａ．Ｋｅｉｒｎ、「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  ｉｎ  Ｒｅａｄ  Ｃｈａｎｎｅｌｓ」、Ｃｕｓｔｏｍ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ、６８３−９０（２００５年９月）
【非特許文献２】Ａ．ＫａｖｃｉｃおよびＡ．Ｐａｔａｐｏｕｔｉａｎ、「Ｔｈｅ  Ｒｅａｄ  Ｃｈａｎｎｅｌ」、Ｐｒｏｃ．ｏｆ  ｔｈｅ  ＩＥＥＥ、Ｖｏｌ．９６、Ｉｓｓｕｅ  １１、１７６１−７４（２００８年１１月）
【非特許文献３】Ａ．Ｊ．ＢｌａｎｋｓｂｙおよびＣ．Ｊ．Ｈｏｗｌａｎｄ、「Ａ  ６９０−ｍＷ  １−Ｇｂ／ｓ  １０２４−ｂ，Ｒａｔｅ−１／２  Ｌｏｗ−Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ−Ｃｈｅｃｋ  Ｄｅｃｏｄｅｒ」、ＩＥＥＥ  Ｊ．Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．３７、４０４〜４１２頁（２００２年３月）、
【非特許文献４】Ｄ．Ｅ．Ｈｏｃｅｖａｒ、「ＬＤＰＣ  Ｃｏｄｅ  Ｃｏｎｓｔｒｕｃｔｉｏｎ  Ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｈａｒｄｗａｒｅ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ」、ＩＥＥＥ  Ｉｎｔ’ｌ  Ｃｏｎｆ．ｏｎ  Ｃｏｍｍ．（ＩＣＣ）、米国アラスカ州アンカレッジ、２７０８〜２７１２頁（２００３年５月）
【非特許文献５】Ｒ．Ｎ．Ｓ．Ｒａｔｎａｙａｋｅ、Ｅ．Ｆ．Ｈａｒａｔｓｃｈ、およびＧｕ−Ｙｅｏｎ  Ｗｅｉ、「Ａ  Ｂｉｔ−Ｎｏｄｅ  Ｃｅｎｔｒｉｃ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｌｏｗ−Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｄｅｃｏｄｅｒｓ」、ＩＥＥＥ  Ｇｌｏｂａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｃｏｎｆｅｒｅｎｃｅ（Ｇｌｏｂｅｃｏｍ）、米国ワシントン特別州、２６５〜２７０頁（２００７年１１月）
【非特許文献６】Ｈｏｃｅｖａｒ、「Ａ  Ｒｅｄｕｃｅｄ  Ｃｏｍｐｌｅｘｉｔｙ  Ｄｅｃｏｄｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｖｉａ  Ｌａｙｅｒｅｄ  Ｄｅｃｏｄｉｎｇ  ｏｆ  ＬＤＰＣ  Ｃｏｄｅｓ」、ＩＥＥＥ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍｓ、１０７−１２（２００４年）
【非特許文献７】Ｓｔｅｆａｎ  Ｌａｅｎｄｎｅｒ他、「Ａｌｇｏｒｉｔｈｍｉｃ  ａｎｄ  Ｃｏｍｂｉｎａｔｏｒｉａｌ  Ａｎａｌｙｓｉｓ  ｏｆ  Ｔｒａｐｐｉｎｇ  Ｓｅｔｓ  ｉｎ  Ｓｔｒｕｃｔｕｒｅｄ  ＬＤＰＣ  Ｃｏｄｅｓ」、Ｗｉｒｅｌｅｓｓ  Ｎｅｔｗｏｒｋｓ、２００５  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ａｎｄ  Ｍｏｂｉｌｅ  Ｃｏｍｐｕｔｉｎｇ、Ｖｏｌ．１、６３０−３５（２００５年）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、データ信頼性および耐久性のための改善された技法の必要性が存在する。汎用プロセッサ上のソフトウェアでデータを処理することを可能にするメモリ読取チャネルに関するさらなる必要性が存在する。
【課題を解決するための手段】
【０００９】
一般に、汎用プロセッサ上での信号処理を用いるメモリ読取チャネルが提供される。本発明の一態様によれば、データ値は、メモリ・デバイスの読取チャネル内で処理される。データ値は、受け取られ、汎用プロセッサによる処理のために提供される。データ値は、復号されたデータではなく、生データ値および中間データ値のうちの１つまたは複数を含むことができる。
【００１０】
データ値を、たとえば１つまたは複数の事前定義のトリガ条件の検出時に、汎用プロセッサに提供することができる。事前定義のトリガ条件は、たとえば、復号失敗の検出、検出されたデータまたは復号されたデータの低い信頼性、またはオフラインでもしくはより低いデータ・レートでデータ値を処理したいという要望を含むことができる。
【００１１】
１つの例示的実施形態では、データ値を、たとえばマルチプレクサを使用して、汎用プロセッサに選択的に提供することができる。汎用プロセッサは、ホストＣＰＵによって提供される。汎用プロセッサは、オプションで、信号処理アルゴリズム、復号アルゴリズム、およびエラー・フロア（ｅｒｒｏｒ  ｆｌｏｏｒ）軽減方式のうちの１つまたは複数を実施する。１つの例示的実施形態では、汎用プロセッサは、ビタビ検出機能、軟出力ビタビ検出機能、最大事後確率（ＭＡＰ）検出機能、およびＢＣＪＲ（Ｂａｈｌ−Ｃｏｃｋｅ−Ｊｅｌｉｎｅｋ−Ｒａｖｉｖ）検出機能のうちの１つまたは複数を実施する。復号アルゴリズムは、確率伝搬（Ｂｅｌｉｅｆ  Ｐｒｏｐａｇａｔｉｏｎ）アルゴリズム、Ｍｅｓｓａｇｅ  Ｐａｓｓｉｎｇアルゴリズム、Ｓｕｍ−Ｐｒｏｄｕｃｔアルゴリズム、またはＭｉｎ−ＳｕｍアルゴリズムなどのＬＤＰＣ復号アルゴリズムを含むことができる。
【００１２】
本発明の一変形形態では、汎用プロセッサは、複数の信号処理アルゴリズムを順次実施する。信号処理アルゴリズムは、オプションで、少なくとも１つのデータ値が首尾よく復号されるまで順次実施される。信号処理アルゴリズムを、高められた精度および高められた複雑さのうちの１つまたは複数を伴って順次実施することができる。
【００１３】
本発明のさらなる態様によれば、データ値は、メモリ・デバイスから入手され、汎用プロセッサにリダイレクトされる。データ値は、復号されたデータではない。リダイレクションを、１つまたは複数の事前定義のバイパス条件が存在する場合に条件付きで実行することができる。汎用プロセッサは、オプションで、１つまたは複数の追加アプリケーションと共に時分割される。リダイレクションは、オプションで、マルチプレクサおよびバイパス・タップ入力のうちの１つまたは複数を使用して実行される。
【００１４】
本発明のもう１つの態様によれば、メモリ・デバイスから入手されたデータ値は、汎用プロセッサを使用して処理される。汎用プロセッサによって処理されるデータ値は、復号されたデータではなく、生データ値および中間データ値のうちの１つまたは複数を含むことができる。
【００１５】
本発明ならびに本発明のさらなる特徴および利益のより完全な理解は、次の詳細な説明および図面を参照することによって得られる。
【図面の簡単な説明】
【００１６】
【図１】従来のメモリ・システムを示す概略ブロック図である。
【図２】本発明の一実施形態による、バイパス・モードを組み込んだソリッド・ステート・ディスク（ＳＳＤ）またはフラッシュ・メモリ・システムを示す概略ブロック図である。
【図３】本発明のもう１つの実施形態による、バイパス・モードを組み込んだハード・ディスク・ドライブ（ＨＤＤ）メモリ・システムを示す概略ブロック図である。
【図４】本発明の代替実施形態による、バイパス・モードを組み込んだ読取チャネルの代替実施態様を示すブロック図である。
【図５】読取チャネル・アルゴリズムを汎用プロセッサ上のソフトウェアで処理することを可能にするメモリ・システムの代替実施態様を示すブロック図である。
【図６】本発明の特徴を組み込んだ読取チャネル制御プロセスの例示的実施態様を示す流れ図である。
【発明を実施するための形態】
【００１７】
本明細書で後で述べるように、本発明は、汎用プロセッサ上のソフトウェアでデータを処理することを可能にするメモリ読取チャネルを提供する。本発明の一態様によれば、メモリ読取チャネルは、汎用プロセッサ上のソフトウェアでデータを処理することを可能にするバイパス・モードを与えられる。たとえば、以前に失敗したデータを、１つまたは複数の代替の信号処理アルゴリズムまたは復号アルゴリズムを使用して汎用プロセッサ上のソフトウェアで処理することができる。本発明は、ハード・ディスク・ドライブ（ＨＤＤ）、ソリッド・ステート・ディスク（ＳＳＤ）、およびフラッシュ・ドライブを含むすべての不揮発性メモリ技術に適用される。当業者に明白であるように、本発明を、格納されたデータを表すための磁化、電圧、電流、または抵抗の使用など、メモリ・デバイス内に値を格納するすべてのストレージ機構と共に使用することができる。
【００１８】
図１は、従来のメモリ・システム１００の概略ブロック図である。図１に示されているように、例示的なメモリ・システム１００は、インターフェース１５０によって接続された、制御システム１１０およびメモリ・ブロック１６０を含む。例示的な制御システム１１０は、通常は１つまたは複数の集積回路上の、コントローラ１２０および読取チャネル１２５を含む。
【００１９】
例示的な読取チャネル１２５は、信号処理ユニット１３０、符号器／復号器ブロック１４０および１つまたは複数のバッファ１４５を含む。用語「読取チャネル」が、書込チャネルをも含むことができることに留意されたい。代替実施形態では、符号器／復号器ブロック１４０およびいくつかのバッファ１４５を、コントローラ１２０の内部で実施することができる。符号器／復号器ブロック１４０およびバッファ１４５を、たとえば周知の市販の技法および／または製品を使用して実施することができる。例示的な信号処理ユニット１３０および符号器／復号器１４０は、通常、固定された精度を有する単一のアルゴリズムを実施する。ハード・ディスク・ドライブに関する読取チャネルおよび信号処理アルゴリズムの議論については、たとえば、それぞれ参照によって本明細書に組み込まれている、Ｅ．Ｆ．ＨａｒａｔｓｃｈおよびＺ．Ａ．Ｋｅｉｒｎ、「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  ｉｎ  Ｒｅａｄ  Ｃｈａｎｎｅｌｓ」、Ｃｕｓｔｏｍ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ、６８３−９０（２００５年９月）またはＡ．ＫａｖｃｉｃおよびＡ．Ｐａｔａｐｏｕｔｉａｎ、「Ｔｈｅ  Ｒｅａｄ  Ｃｈａｎｎｅｌ」、Ｐｒｏｃ．ｏｆ  ｔｈｅ  ＩＥＥＥ、Ｖｏｌ．９６、Ｉｓｓｕｅ  １１、１７６１−７４（２００８年１１月）を参照されたい。
【００２０】
たとえば、ＳＳＤまたはフラッシュ・ドライブ応用では、信号処理ユニット１３０は、１つもしくは複数の軟デマッピング（ｓｏｆｔ  ｄｅｍａｐｐｉｎｇ）プロセスもしくは軟データ生成（ｓｏｆｔ  ｄａｔａ  ｇｅｎｅｒａｔｉｏｎ）プロセスまたはセル間干渉除去プロセスを実施する１つまたは複数のプロセッサを含むことができる。フラッシュ・ドライブ応用のＳＳＤでの適切な読取チャネル１２０、信号処理ユニット１３０、および／またはコントローラ１２０のより詳細な議論については、たとえば、それぞれ参照によって本明細書に組み込まれている、２００９年６月３０日出願の国際特許出願第ＰＣＴ／ＵＳ０９／４９３２６号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｒｅａｄ−Ｓｉｄｅ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」または２００９年９月３０日出願の国際特許出願第ＰＣＴ／ＵＳ０９／５９０７７号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄａｔａ  Ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅｓ」を参照されたい。
【００２１】
例示的なメモリ・ブロック１６０は、それぞれ周知の市販の技法および／または製品を使用して実施できる、メモリ媒体１７０および１つまたは複数のバッファ１８０を含む。メモリ媒体１７０を、たとえば、ハード・ディスク・ドライブ（ＨＤＤ）、ソリッド・ステート・ディスク（ＳＳＤ）、フラッシュ・ドライブ、または別の他の不揮発性メモリとして実施することができる。ソリッド・ステート・ディスク実施態様では、たとえば、メモリ媒体１７０を、たとえば、ＮＡＮＤフラッシュ・メモリなどのシングルレベル・セルまたはマルチレベル・セルのフラッシュ・メモリ、相変化メモリ（ＰＣＭ）、ＭＲＡＭメモリ、ＮＯＲフラッシュ・メモリ、または別の不揮発性フラッシュ・メモリとして実施することができる。読取動作中に、インターフェース１５０は、メモリ媒体１７０から入手された硬読取値および／または軟読取値を転送する。
【００２２】
メモリ・システム１００は、米国カリフォルニア州サンタ・クララのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ社が市販するＩｎｔｅｌ  Ｃｏｒｅ（商標）２  ＱｕａｄプロセッサもしくはＩｎｔｅｌ  Ｐｅｎｔｉｕｍ（商標）プロセッサまたは別の汎用プロセッサなどのホスト中央処理装置（ＣＰＵ）１９０と相互作用する。
【００２３】
ＳＳＤまたはフラッシュ・メモリ応用では、メモリ媒体１７０は、たとえば電圧レベルしきい値に対する測定された電圧の比較に基づいて、各メモリ・セルに１つまたは複数のビットを割り当てることができ（電流または抵抗を使用するメモリ実施態様についても同様）、これらのビットは、その後、硬判定として読取チャネル１２５に送られる。それに加えてまたはその代わりに、軟情報を使用する実施態様では、メモリ媒体１１０は、測定された電圧または測定された電圧の量子化された版を軟情報として読取チャネル１２５に送ることができ、ここで、メモリ・セル内に格納されるビットの個数より多数のビットが、測定された電圧を表すのに使用される。軟情報は、たとえば、確率情報または信頼性情報を含むことができる。
【００２４】
読取チャネル・バイパス・モード
前に示したように、図１の読取チャネル１２５などの従来の読取チャネルでは、信号処理は、一般に信号処理ユニット１３０および符号器／復号器ブロック１４０内の専用のハードウェアを使用して実行される。要求されるデータ・レートを達成するために、信号処理ユニット１３０および符号器／復号器ブロック１４０は、通常、固定された精度を有する単一の信号処理アルゴリズムまたは復号アルゴリズムを実施する専用のハードウェアを使用する。したがって、専用の信号処理ユニット１３０および／または符号器／復号器ブロック１４０による復号失敗の場合には、それぞれ代替の信号処理オプションまたは復号オプションはなく、データは失われる。
【００２５】
本発明は、専用の信号処理ユニット１３０および／または符号器／復号器ブロック１４０による失敗を、１つまたは複数の代替の信号処理技法または復号技法を使用して失敗したデータを処理することによって克服できることを認めるものである。たとえば、１つまたは複数の代替復号技法を、外部ホストＣＰＵまたは別の汎用プロセッサ上で実行されるソフトウェアで、失敗したデータに対して実行することができる。
【００２６】
本発明の一態様によれば、読取チャネルは、生データおよび／または中間データへの直接アクセスを提供するバイパス・モードを提供し、これらの用語は、本明細書で定義される。たとえば、本発明によるバイパス・モードは、読取チャネル１２５内の専用の信号処理ユニット１３０および／または符号器／復号器ブロック１４０をバイパスし、生データならびに／あるいは硬情報および／または軟情報などの中間データをホストＣＰＵ  １９０に直接に提供することができる。その後、ホストＣＰＵ  １９０は、たとえば、読取チャネル１２５内の専用の符号器／復号器ブロック１４０より高い精度を提供する復号アルゴリズムなど、１つまたは複数の代替の信号処理アルゴリズムおよび／または復号アルゴリズムを実施することができる。一実施態様では、ホストＣＰＵ  １９０は、以前に失敗したデータが、失敗したセクタまたはページの成功の復号など、首尾よく復号されるまで、高められた精度および／または計算の複雑さを伴って、下で「信号処理ルーチン」という題名のセクションでさらに述べる複数の代替アルゴリズムを順次実施する。
【００２７】
図２は、本発明の一実施形態による、バイパス・モードを組み込んだソリッド・ステート・ディスク（ＳＳＤ）またはフラッシュ・メモリ・システム２００の概略ブロック図である。図２に示されているように、例示的なメモリ・システム２００は、フラッシュ・メモリなどの不揮発性メモリ媒体２１０、バイパス・モードを提供する読取チャネル２２０、およびコントローラ２６０を含む。一般に、読取チャネル２２０を、上で参照した国際特許出願で説明されるように実施することができる。例示的な読取チャネル２２０は、１つまたは複数の専用の信号処理ユニット２３０、専用の復号器２４０、およびマルチプレクサ２５０を含む。
【００２８】
専用の信号処理ユニット２３０は、たとえば、それぞれ参照によって本明細書に組み込まれている、２００９年６月３０日出願の国際特許出願第ＰＣＴ／ＵＳ０９／４９３２６号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｒｅａｄ−Ｓｉｄｅ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」または２００９年６月３０日出願の国際特許出願第ＰＣＴ／ＵＳ０９／４９３３３号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄｅｍａｐｐｉｎｇ  ａｎｄ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」に記載の技法など、既知の技法を使用して実施できるデマッパおよび／またはセル間干渉除去プロセスを含むことができる。
【００２９】
専用の復号器２４０を、たとえば、確率伝搬アルゴリズム、Ｍｅｓｓａｇｅ  Ｐａｓｓｉｎｇアルゴリズム、Ｓｕｍ−Ｐｒｏｄｕｃｔアルゴリズム、またはＭｉｎ−ＳｕｍアルゴリズムなどのＬＤＰＣ復号アルゴリズムを使用して実施することができる。たとえば、それぞれ参照によって本明細書に組み込まれている、Ａ．Ｊ．ＢｌａｎｋｓｂｙおよびＣ．Ｊ．Ｈｏｗｌａｎｄ、「Ａ  ６９０−ｍＷ  １−Ｇｂ／ｓ  １０２４−ｂ，Ｒａｔｅ−１／２  Ｌｏｗ−Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ−Ｃｈｅｃｋ  Ｄｅｃｏｄｅｒ」、ＩＥＥＥ  Ｊ．Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．３７、４０４〜４１２頁（２００２年３月）、Ｄ．Ｅ．Ｈｏｃｅｖａｒ、「ＬＤＰＣ  Ｃｏｄｅ  Ｃｏｎｓｔｒｕｃｔｉｏｎ  Ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｈａｒｄｗａｒｅ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ」、ＩＥＥＥ  Ｉｎｔ’ｌ  Ｃｏｎｆ．ｏｎ  Ｃｏｍｍ．（ＩＣＣ）、米国アラスカ州アンカレッジ、２７０８〜２７１２頁（２００３年５月）、またはＲ．Ｎ．Ｓ．Ｒａｔｎａｙａｋｅ、Ｅ．Ｆ．Ｈａｒａｔｓｃｈ、およびＧｕ−Ｙｅｏｎ  Ｗｅｉ、「Ａ  Ｂｉｔ−Ｎｏｄｅ  Ｃｅｎｔｒｉｃ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｌｏｗ−Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｄｅｃｏｄｅｒｓ」、ＩＥＥＥ  Ｇｌｏｂａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｃｏｎｆｅｒｅｎｃｅ（Ｇｌｏｂｅｃｏｍ）、米国ワシントン特別州、２６５〜２７０頁（２００７年１１月）を参照されたい。
【００３０】
メモリ・システム２００は、オプションで、生データまたは中間データ（あるいはその両方）を格納するために、図１に示されたものなどの１つまたは複数のバッファを含むことができる。
【００３１】
図２に示されているように、および本明細書で使用される時に、不揮発性メモリ２１０などのメモリ媒体から直接に読み取られるデータを、本明細書では「生データ」と称する。復号器２４０によって復号される前の、読取チャネル２２０の一部によって処理済みのデータを、本明細書では「中間データ」と称する。最後に、復号器２４０によって生成済みの復号されたデータを、本明細書では「ユーザ・データ」と称する。本発明のさまざまな態様は、たとえば汎用コンピュータ上のソフトウェアで生データおよび／または中間データを処理する。
【００３２】
例示的なマルチプレクサ２５０は、生データならびに／あるいは硬情報および／または軟情報などの中間データを不揮発性メモリ媒体２１０（たとえば、不揮発性メモリ媒体２１０の新しい読取動作を開始することによって）から直接にまたは読取チャネル２２０内のバッファ（図示せず）から受け取るバイパス・モードに関連する第１入力（図２では「１」のラベルを付す）を有する。したがって、バイパス・モードでは、信号処理ユニット２３０および復号器２４０がバイパスされ、生データおよび／または中間データがコントローラ２６０に供給される。その後、コントローラ２６０は、コーディングされたデータをホストＣＰＵ  ２７０に供給する。読取チャネル２２０全体をバイパスするそのような実施形態が、読取チャネル２２０の変更なしで本発明を実施することを可能にすることに留意されたい。
【００３３】
例示的なマルチプレクサ２５０は、専用の復号器２４０からの復号された出力（ユーザ・データ）を処理する第２入力（図２では「０」のラベルを付す）を有する。図２に示されているように、例示的なマルチプレクサ２５０は、コントローラ２６０によって生成されたバイパス・モード選択信号によって制御される。一般に、復号失敗（あるいは、検出されたデータもしくは復号されたデータの低い信頼性などのバイパス・モードの別の事前定義のトリガ、または生データもしくは中間データをオフラインでおよび／もしくはより低いデータ・レートで処理したいという要望）の検出時に、コントローラ２６０は、選択されたマルチプレクサ入力をデフォルトの第２入力から第１入力に変更することができる。この形で、生データおよび／または中間データが、コントローラ２６０に供給され、コントローラ２６０は、生データおよび／または中間データをホストＣＰＵ  ２７０に供給することができる。
【００３４】
追加実施形態または代替実施形態では、マルチプレクサ２５０は、信号処理ユニット２３０の出力に接続された入力（図示せず）を有することができる。この形で、コントローラ２６０は、オプションで、さらなる処理のために中間データを入手することができる。下で図４に関連して述べるように、中間データを、信号処理ブロック２３０または復号器ブロック２４０内の読取チャネル２２０の任意のディジタル化された部分から分岐させることができる。
【００３５】
メモリ・システム２００は、ホストＣＰＵ  ２７０と相互作用し、ホストＣＰＵは、たとえば読取チャネル２２０内の専用の例示的な信号処理ユニット２３０またはＬＤＰＣ復号器ブロック２４０より高い精度を使用する、１つまたは複数の代替信号処理アルゴリズム２８０または１つもしくは複数の代替復号アルゴリズムを実施する。例示的な信号処理アルゴリズム２８０を、下で「信号処理ルーチン」という題名のセクションでさらに述べる。下で図５および／または６に関連して述べるように、例示的な信号処理アルゴリズム２８０は、ソフトウェアで実施され、ホストＣＰＵ  ２７０上の汎用プロセッサ上で実行される。
【００３６】
図３は、本発明のもう１つの実施形態による、バイパス・モードを組み込んだハード・ディスク・ドライブ（ＨＤＤ）メモリ・システム３００の概略ブロック図である。図３に示されているように、例示的なメモリ・システム３００は、ハード・ディスクなどのＨＤＤメモリ媒体３１０、バイパス・モードを提供する読取チャネル３２０、およびコントローラ３６０を含む。一般に、読取チャネル３２０を、本発明の特徴および機能を組み込むために本明細書で変更される、従来のハード・ディスク・ドライブ読取チャネルを使用して実施することができる。例示的な読取チャネル３２０は、アナログ・フロント・エンド（ＡＦＥ）３１５と、アナログ−ディジタル変換器（ＡＤＣ）３２５と、専用のループ、等化器、および検出器ブロック３３０と、専用の復号器３４０と、マルチプレクサ３５０とを含む。ＡＦＥブロック３１５は、通常、可変利得増幅器および連続時間フィルタ（ＣＴＦ）を含む。ＡＤＣ  ３２５は、さらなる信号処理および復号のためにアナログ信号をディジタル信号に変換する。
【００３７】
ブロック３３０内のループは、たとえばタイミング回復を実行し、ＡＤＣ  ３２５の位相を調整する。ブロック３３０内の等化器は（通常、有限インパルス応答フィルタとして実施される）は、記号間干渉軽減を提供し、ターゲット応答に対して信号を成形し、そのすべてが既知の形で行われる。ブロック３３０内の検出器は、さらなる記号間干渉軽減を提供し、復号器３４０に供給される硬出力または軟出力を計算することができる。ブロック３３０内の検出器は、通常、ビタビ検出器、軟出力ビタビ検出器、最大事後確率（ＭＡＰ）検出器、またはＢＣＪＲ（Ｂａｈｌ−Ｃｏｃｋｅ−Ｊｅｌｉｎｅｋ−Ｒａｖｉｖ）検出器として実施される。一実施態様では、専用の復号器３４０を、たとえば確率伝搬アルゴリズム、Ｍｅｓｓａｇｅ  Ｐａｓｓｉｎｇアルゴリズム、Ｓｕｍ−Ｐｒｏｄｕｃｔアルゴリズム、またはＭｉｎ−ＳｕｍアルゴリズムなどのＬＤＰＣ復号アルゴリズムを使用して実施することができる。ＨＤＤの読取チャネルに関するさらなる詳細は、たとえば、それぞれ参照によって本明細書に組み込まれている、Ｅ．Ｆ．ＨａｒａｔｓｃｈおよびＺ．Ａ．Ｋｅｉｒｎ、「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  ｉｎ  Ｒｅａｄ  Ｃｈａｎｎｅｌｓ」、Ｃｕｓｔｏｍ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ、６８３−９０（２００５年９月）またはＡ．ＫａｖｃｉｃおよびＡ．Ｐａｔａｐｏｕｔｉａｎ、「Ｔｈｅ  Ｒｅａｄ  Ｃｈａｎｎｅｌ」、Ｐｒｏｃ．ｏｆ  ｔｈｅ  ＩＥＥＥ、Ｖｏｌ．９６、Ｉｓｓｕｅ  １１、１７６１−７４（２００８年１１月）に見出すことができる。
【００３８】
例示的なマルチプレクサ３５０は、ループ、等化器、および検出器ブロック３３０の出力から硬情報および／または軟情報などの中間データを受け取るバイパス・モードに関連する第１入力（図３では「１」のラベルを付す）を有する。したがって、バイパス・モードでは、復号器３４０がバイパスされ、中間データがコントローラ３６０に供給される。その後、コントローラ３６０は、中間データをホストＣＰＵ  ３７０に供給する。
【００３９】
例示的なマルチプレクサ３５０は、専用の復号器３４０からの復号された出力（ユーザ・データ）を処理する第２入力（図３では「０」のラベルを付す）を有する。図３に示されているように、例示的なマルチプレクサ３５０は、コントローラ３６０によって生成されるバイパス・モード選択信号によって制御される。一般に、復号失敗（あるいは、検出されたデータもしくは復号されたデータの低い信頼性などのバイパス・モードの別の事前定義のトリガ、または生データおよび／もしくは中間データをより低いデータ・レートで処理したいという要望）の検出時に、コントローラ３６０は、選択されたマルチプレクサ入力をデフォルトの第２入力から第１入力に変更することができる。この形で、生データおよび／または中間データが、コントローラ３６０に供給され、コントローラ３６０は、生データおよび／または中間データをホストＣＰＵ  ３７０に供給することができる。
【００４０】
下で図４に関連して述べる追加実施形態または代替実施形態では、マルチプレクサ３５０は、読取チャネル３２０内の任意のディジタル点に接続された１つまたは複数の追加入力（図３には図示せず）を有することができる（たとえば、任意のディジタル信号を、ＡＤＣ  ３２５の後で分岐させることができる）。
【００４１】
メモリ・システム３００は、ホストＣＰＵ  ３７０と相互作用し、ホストＣＰＵ  ３７０は、たとえば読取チャネル３２０内の専用の例示的なＬＤＰＣ復号器ブロック３４０より高い精度を提供する１つまたは複数の代替復号アルゴリズムなどの１つまたは複数の信号処理アルゴリズム３８０を実施する。例示的な信号処理アルゴリズム３８０を、下で「信号処理ルーチン」という題名のセクションでさらに述べる。下で図５および／または６に関連して述べるように、例示的な信号処理アルゴリズム３８０は、ソフトウェアで実施され、ホストＣＰＵ  ３７０上の汎用プロセッサ上で実行される。
【００４２】
図４は、本発明の代替実施形態による、バイパス・モードを組み込んだ読取チャネル４００の代替実施態様のブロック図である。読取チャネル４００を、ハード・ディスク・ドライブ用またはソリッド・ステート・ディスク用とすることができる。図４に示されているように、例示的な読取チャネル４００は、フラッシュ・メモリまたはハード・ディスクなどのメモリ媒体４１０、１つまたは複数の信号処理ユニット４２０−１から４２０−Ｎ、復号器４４０、およびコントローラ４５０を含む。信号処理ユニット４２０は、たとえば、読取チャネル２２０および３２０の議論に関連して上で説明した信号処理機能および復号機能を実施する。
【００４３】
図４に示されているように、コントローラ４５０は、コントローラ４５０が読取チャネル４００内の所望の位置で生データおよび／または中間データに選択的に分岐することを可能にする１つまたは複数のバイパス・タップ入力４６０を有する。その後、コントローラ４５０は、分岐された生データおよび／または分岐された中間データをホストＣＰＵ  ４７０に供給する。
【００４４】
一般に、復号失敗（あるいは、検出されたデータもしくは復号されたデータの低い信頼性などのバイパス・モードの別の事前定義のトリガ、または生データおよび／もしくは中間データをより低いデータ・レートで処理したいという要望）の検出時に、コントローラ４５０は、所望のバイパス・タップ入力４６０を選択することができる。この形で、コントローラ４５０は、生データおよび／または中間データにアクセスでき、生データおよび／または中間データをホストＣＰＵ  ４７０に供給することができる。
【００４５】
メモリ・システム４００は、ホストＣＰＵ  ４７０と相互作用し、ホストＣＰＵ  ４７０は、次の「信号処理ルーチン」という題名のセクションでさらに述べられる１つまたは複数の代替信号処理アルゴリズム４８０を実施する。下で図５および／または６に関連して述べるように、例示的な信号処理アルゴリズム４８０は、ソフトウェアで実施され、ホストＣＰＵ  ４７０上の汎用プロセッサ上で実行される。
【００４６】
信号処理ルーチン
前に示したように、バイパス・モードでは、ホストＣＰＵ  ２７０、３７０、または４７０は、読取チャネル２２０、３２０内の専用の例示的なＬＤＰＣ復号器ブロック２４０、３４０より高い精度および／または計算の複雑さを使用する１つまたは複数の代替復号アルゴリズムなどの１つまたは複数の信号処理アルゴリズムまたは復号アルゴリズム２８０、３８０、４８０を使用して、以前に失敗した生データおよび／または中間データを受け取り、処理する。さらに、信号処理アルゴリズム２８０、３８０は、１つまたは複数の「エラー・フロア」軽減方式を含むことができる。本明細書で説明される例示的な代替の信号処理アルゴリズム、復号アルゴリズム、およびエラー・フロア軽減アルゴリズムは、非限定的な形で本発明を例示することを意図されたものであり、当業者に明白であるように、本発明の範囲から逸脱せずに、他のアルゴリズムをホストＣＰＵ  ２７０、３７０、または４７０によって実施することができる。
【００４７】
一般に、「エラー・フロア」現象は、所与のコードの誤り確率（ビット誤り率（ＢＥＲ）など）が、より高い信号対雑音比（ＳＮＲ）について、より低いＳＮＲについて０に近づくほどすばやくは０に近づかない時に発生する。本発明は、エラー・フロア軽減方式が、通常は計算的に複雑であり、したがって、ホストＣＰＵ  ２７０、３７０、または４７０を使用するオフライン処理に適当であることを認めるものである。また、図２のＳＳＤ読取チャネル２２０について、信号処理アルゴリズム２８０は、読取チャネル２２０内の専用の信号処理ブロック２３０より高い精度および／または計算の複雑さを使用する１つまたは複数の代替信号処理アルゴリズムを含むことができる。さらに、図３のＨＤＤ読取チャネル３２０について、信号処理アルゴリズム３８０は、読取チャネル３２０内の専用ブロック３３０より高い精度および／または計算の複雑さを使用する１つまたは複数の代替のループ、等化アルゴリズム、または検出アルゴリズムを含むことができる。
【００４８】
前に示したように、１つの例示的実施態様では、ホストＣＰＵ  ２７０、３７０、４７０は、失敗したセクタまたはページの成功の復号など、以前に失敗したデータが首尾よく復号されるまで、高められた精度および／または計算の複雑さを伴って、複数の代替の信号処理アルゴリズムまたは復号アルゴリズム２８０、３８０、４８０を順次実施する。また、ホストＣＰＵ  ２７０、３７０、４７０は、オプションで、失敗したセクタまたはページの成功の復号まで、１つまたは複数のエラー・フロア軽減方式を実施することができる。
【００４９】
順次代替信号処理アルゴリズム
一特定の例示的実施形態では、ホストＣＰＵ  ２７０、３７０、４７０は、以前に失敗したデータが首尾よく復号されるまで、高まる精度および／または計算の複雑さを有する次の代替信号処理アルゴリズム２８０、３８０、４８０のうちの１つまたは複数を順次実施する（ほかに注記されない限り、これらのアルゴリズムは、上に列挙した参考文献でさらに詳細に説明されたものである）。
○ビタビ検出、
○軟出力ビタビ検出、
○ＢＣＪＲ検出、
○セル間干渉軽減アルゴリズム、および
○軟デマッピング・アルゴリズム。
【００５０】
順次代替復号アルゴリズム
一特定の例示的実施形態では、ホストＣＰＵ  ２７０、３７０、４７０は、以前に失敗したデータが首尾よく復号されるまで、高まる精度および／または計算の複雑さを有する次の代替復号アルゴリズム２８０、３８０、４８０を順次実施する（ほかに注記されない限り、これらのアルゴリズムは、上に列挙した参考文献でさらに詳細に説明されたものである）。
○Ｓｕｍ−Ｐｒｏｄｕｃｔ  ＬＤＰＣアルゴリズム  すべてのメッセージについて高分解能浮動小数点精度および関数ψ（ｘ）＝−ｌｏｇ（ｔａｎｈ（ｘ／２））を使用する。
○Ｍｉｎ−Ｓｕｍ  ＬＤＰＣアルゴリズム  すべてのメッセージについて長い語長を使用する。
○階層化復号器を使用するＬＤＰＣ復号  たとえば、参照によって本明細書に組み込まれている、Ｈｏｃｅｖａｒ、「Ａ  Ｒｅｄｕｃｅｄ  Ｃｏｍｐｌｅｘｉｔｙ  Ｄｅｃｏｄｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｖｉａ  Ｌａｙｅｒｅｄ  Ｄｅｃｏｄｉｎｇ  ｏｆ  ＬＤＰＣ  Ｃｏｄｅｓ」、ＩＥＥＥ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍｓ、１０７−１２（２００４年）（特に式（９）から（１３）を参照されたい）を参照されたい。
【００５１】
順次エラー・フロア軽減方式
一特定の例示的実施形態では、ホストＣＰＵ  ２７０、３７０、４７０は、以前に失敗したデータが首尾よく復号されるまで、高まる精度および／または計算の複雑さを有する次のエラー・フロア軽減方式２８０、３８０、４８０を順次実施する（ほかに注記されない限り、これらのアルゴリズムは、上に列挙した参考文献でさらに詳細に説明されたものである）。
○アベレージド復号（Ａｖｅｒａｇｅｄ  Ｄｅｃｏｄｉｎｇ）  たとえば、参照によって本明細書に組み込まれている、Ｓｔｅｆａｎ  Ｌａｅｎｄｎｅｒ他、「Ａｌｇｏｒｉｔｈｍｉｃ  ａｎｄ  Ｃｏｍｂｉｎａｔｏｒｉａｌ  Ａｎａｌｙｓｉｓ  ｏｆ  Ｔｒａｐｐｉｎｇ  Ｓｅｔｓ  ｉｎ  Ｓｔｒｕｃｔｕｒｅｄ  ＬＤＰＣ  Ｃｏｄｅｓ」、Ｗｉｒｅｌｅｓｓ  Ｎｅｔｗｏｒｋｓ、２００５  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ａｎｄ  Ｍｏｂｉｌｅ  Ｃｏｍｐｕｔｉｎｇ、Ｖｏｌ．１、６３０−３５（２００５年）を参照されたい。
○共通のエラー・パターンに関するシンドローム復号（Ｓｙｎｄｒｏｍｅ  Ｄｅｃｏｄｉｎｇ）（トラッピング・セット（Ｔｒａｐｐｉｎｇ  Ｓｅｔｓ）とも称する）  シンドローム（すなわち、パリティ検査行列と受信されたベクトルの現在の硬判定との乗算）に基づいて、誤りビット・ベクトルを提供する事前に計算されたルックアップ・テーブルを使用する。その後、復号された符号語を、現在の硬判定ベクトルからこの誤りベクトルを減算することによって計算することができる。
【００５２】
ソフトウェアでの生データおよび／または中間データの処理
本発明の一態様は、汎用プロセッサがより強力になり、より多くの処理コアがＣＰＵ内に実装されるにつれて、専用のチップまたはチップ・コアを使用せずに、信号処理機能および／またはデータ復号機能をソフトウェアで実施し、要求されるデータ・レートでＣＰＵ上で実行できることを認めるものである。
【００５３】
図５は、読取チャネル・アルゴリズムを汎用プロセッサ上のソフトウェアで処理することを可能にするメモリ・システム５００の代替実施態様のブロック図である。メモリ・システム５００を、ハード・ディスク・ドライブ用またはソリッド・ステート・ディスク用とすることができる。図５に示されているように、例示的なメモリ・システム５００は、フラッシュ・メモリまたはハード・ディスクなどのメモリ媒体５１０およびコントローラ５５０を含む。コントローラ５５０は、生データおよび／または中間データを汎用プロセッサなどのホストＣＰＵ  ５６０に渡す。
【００５４】
図５に示されているように、ホストＣＰＵ  ５６０は、生データおよび／または中間データを受け取り、上で説明したように、１つもしくは複数の信号処理アルゴリズムおよび復号アルゴリズムならびに／または１つもしくは複数の「エラー・フロア」軽減方式などの１つまたは複数の信号処理アルゴリズム５７０を使用して処理する。ホストＣＰＵ  ５６０は、ブロック２３０、２４０、３３０、３４０内など、読取チャネル内で通常実施される信号処理機能および復号機能を実施する。１つの例示的実施態様では、ホストＣＰＵ  ５６０は、通常は従来の設計を有するコントローラ１２０（図１）によって実施された機能の少なくとも一部をも実施する。
【００５５】
図６は、本発明の特徴を組み込んだ読取チャネル制御プロセス６００の例示的実施態様を説明する流れ図である。読取チャネル制御プロセス６００を、たとえば、それぞれ図２〜５のコントローラ２６０、３６０、４５０、５５０によって実施することができる。図６に示されているように、例示的な読取チャネル制御プロセス６００は、当初に、復号器バイパスをトリガする１つまたは複数の事前定義の条件が存在するかどうかを判定するために、ステップ６１０中にオプションのテストを実行する。たとえば、事前定義の条件は、（ｉ）復号失敗の検出、（ｉｉ）検出されたデータまたは復号されたデータの低い信頼性（たとえば、検出されたデータまたは復号されたデータの対数尤度比の大きさがしきい値未満である）、または（ｉｉｉ）生データおよび／または中間データをオフラインでおよび／またはより低いデータ・レートで処理する要件を含むことができる。
【００５６】
ステップ６１０中に、１つまたは複数の事前定義の条件が存在しないと判定される場合には、プログラム制御は、そのような条件が存在するまでステップ６１０に戻る。しかし、ステップ６１０中に、１つまたは複数の事前定義の条件が存在すると判定される場合には、読取チャネル制御プロセス６００は、マルチプレクサ２５０、３５０を構成することおよび／または所望のバイパス・タップ４６０にアクセスすることによって、ステップ６２０中に生データおよび／または中間データを入手する。
【００５７】
最後に、ステップ６３０中に、読取チャネル制御プロセス６００は、生データおよび／または中間データを、１つまたは複数の追加アプリケーションと共に時分割される汎用プロセッサなどの汎用プロセッサ２７０、３７０、４７０、５６０にリダイレクトする。この形で、プロセッサ２７０、３７０、４７０、５６０は、以前には従来の設計を有する読取チャネル１２５およびコントローラ１２０（図１）によって提供された機能を提供するために時分割される。この形で、プロセッサ２７０、３７０、４７０、５６０は、そうでなければ専用のハードウェア・ブロック２３０、２４０、３３０、３４０、４２０−１から４２０−Ｎを使用して実施される信号処理アルゴリズム、復号アルゴリズム、またはエラー・フロア軽減アルゴリズムを実施する。
【００５８】
プロセス、システム、および製造品の詳細
本明細書の複数の流れ図は、ステップの例示的シーケンスを説明するが、シーケンスを変更できることも、本発明の実施形態である。アルゴリズムのさまざまな置換が、本発明の代替実施形態として企図されている。本発明の例示的実施形態を、ソフトウェア・プログラム内の処理ステップに関して説明したが、当業者に明白であるように、さまざまな機能を、ソフトウェア・プログラム内の処理ステップとしてディジタル領域で、回路要素または状態機械によってハードウェアで、またはソフトウェアとハードウェアとの両方の組合せで、実施することができる。そのようなソフトウェアを、たとえば、ディジタル信号プロセッサ、特定用途向け集積回路、マイクロコントローラ、または汎用コンピュータ内で使用することができる。そのようなハードウェアおよびソフトウェアを、集積回路内で実施される回路内で実施することができる。
【００５９】
したがって、本発明の機能を、方法およびこれらの方法を実践する装置の形で実施することができる。本発明の１つまたは複数の態様を、たとえば記憶媒体に格納される、機械にロードされかつ／または機械によって実行される、あるいはある伝送媒体を介して送信されるのいずれであれ、プログラム・コードの形で実施することができ、プログラム・コードがコンピュータなどの機械にロードされ、その機械によって実行される時に、その機械は、本発明を実践する装置になる。汎用プロセッサ上で実施される時に、プログラム・コード・セグメントは、プロセッサと組み合わされて、特定の論理回路に類似して動作するデバイスを提供する。本発明を、集積回路、ディジタル信号プロセッサ、マイクロプロセッサ、またはマイクロコントローラのうちの１つまたは複数で実施することもできる。
【００６０】
当技術分野で既知のように、本明細書で述べられた方法および装置を、コンピュータ可読コード手段をその上に実施されたコンピュータ可読媒体をそれ自体が含む製造品として配布することができる。コンピュータ可読プログラム・コード手段は、本明細書で述べられた方法を実行するステップのすべてまたは一部を実行するか本明細書で述べられた装置を作成するように、コンピュータ・システムと共に動作可能である。コンピュータ可読媒体は、記録可能媒体（たとえば、フロッピ・ディスク、ハード・ドライブ、コンパクト・ディスク、メモリ・カード、半導体デバイス、チップ、特定用途向け集積回路（ＡＳＩＣ））とすることができ、あるいは、伝送媒体（たとえば、光ファイバ、ワールドワイド・ウェブ、ケーブル、または時分割多元接続、符号分割多元接続、もしくは他の無線周波数チャネルを使用する無線チャネルを含むネットワーク）とすることができる。コンピュータ・システムと共に使用するのに適する情報を格納できる、既知のまたはこれから開発されるすべての媒体を、使用することができる。コンピュータ可読コード手段は、磁気媒体上の磁気変動またはコンパクト・ディスクの表面上の高さ変動など、コンピュータが命令およびデータを読み取ることを可能にするすべての機構である。
【００６１】
本明細書で説明されるコンピュータ・システムおよびサーバは、それぞれ、本明細書で開示される方法、ステップ、および機能を実施するように関連するプロセッサを構成するメモリを含む。メモリを、分散またはローカルとすることができ、プロセッサを、分散または単一とすることができる。メモリを、電気メモリ、磁気メモリ、もしくは光学メモリ、またはこれらもしくは他のタイプのストレージ・デバイスの任意の組合せとして実施することができる。さらに、用語「メモリ」は、関連するプロセッサによってアクセスされるアドレス可能空間内のアドレスから読み取るかこれに書き込むことができるすべての情報を包含するのに十分に広義に解釈されなければならない。この定義によれば、ネットワーク上の情報は、それでも、メモリ内にある。というのは、関連するプロセッサが、ネットワークからその情報を取り出すことができるからである。
【００６２】
図示され本明細書で説明された実施形態および変形形態が、本発明の原理の単なる例示であり、本発明の範囲および趣旨から逸脱せずに、当業者がさまざまな変更を実施できることを理解されたい。
【図１】
0005882222.tif 000002
【図２】
0005882222.tif 000003
【図３】
0005882222.tif 000004
【図４】
0005882222.tif 000005
【図５】
0005882222.tif 000006
【図６】
0005882222.tif 000007