(57)【要約】【課題】複数の誤り訂正符号化データセットを生成、格納、および読み出す装置および方法を提供する。【解決手段】情報を受信して、その情報を使って複数の誤り訂正符号化データセットを生成、格納、および読み出す装置および方法を開示する。出願人の記憶コントローラは情報を受信して、（Ｎ）が２以上である（Ｎ）セットの誤り訂正符号化データを生成する。方法は、（ｉ）が１以上かつ（Ｎ）以下である（ｉ）の各値について、（ｉ）番目の誤り訂正符号化データのセットを（ｉ）番目のデータ記憶媒体に書き込む。出願人の記憶コントローラが情報を読み出す要求を受信すると、出願人の方法は（Ｎ）個の誤り訂正符号化データセットの各々を読み出して、その（Ｎ）個の誤り訂正符号化データセットを使って情報を生成し、その情報を要求者に返す。【選択図】図１０
2008171537.tif 000002
【特許請求の範囲】
【請求項１】
複数の誤り訂正符号化データセットを生成、格納、および読み出す方法で、
（Ｎ）個の異なるデータ記憶媒体と通信する記憶コントローラを供給するステップであって、（ｉ）の各値について、（ｉ）番目のデータ記憶媒体が残りの（Ｎ−１）個のデータ記憶媒体とは異なるデータ記憶媒体のタイプを有し、（Ｎ）が２以上で、（ｉ）が１以上かつ（Ｎ）以下である、前記供給するステップと、
前記記憶コントローラに情報を提供するステップと、
（Ｎ）セットの誤り訂正符号化データを生成するステップと、
（ｉ）の各値について、前記（ｉ）番目のデータ記憶媒体を選択するステップと、
（ｉ）の各値について、（ｉ）番目の誤り訂正符号化データを前記（ｉ）番目のデータ記憶媒体に書き込むステップとを有する、
方法。
【請求項２】
前記記憶コントローラを供給するステップが、畳み込み符号化アルゴリズムを有する畳み込み符号器を有する記憶コントローラを供給するステップをさらに有し、
前記（Ｎ）セットの誤り訂正符号化データを生成するステップを、前記畳み込み符号化アルゴリズムを使って前記畳み込み符号器で行う、
請求項１の方法。
【請求項３】
前記記憶コントローラを供給するステップがデータ・キャッシュを有する記憶コントローラを供給するステップをさらに有し、
前記方法が、（ｉ）番目の誤り訂正符号化データのセットを（ｉ）番目のデータ記憶媒体に書き込む前に、（ｉ）の各値について、（ｉ）番目の誤り訂正符号化データのセットをデータ・キャッシュに格納するステップをさらに有する、請求項２の方法。
【請求項４】
前記（Ｎ）個のデータ記憶媒体を、磁気テープ、磁気ディスク、光ディスク、電子データ記憶デバイス、およびホログラフィック・データ記憶媒体からなる群から選択するステップをさらに有する、請求項１の方法。
【請求項５】
前記（Ｎ）個のデータ記憶媒体が、１つのホログラフィック・データ記憶媒体内に配設される（Ｎ）個の異なるデータ記憶位置を有する、請求項１の方法。
【請求項６】
要求者から前記情報を読み出す要求を受信するステップと、
前記（Ｎ）個の誤り訂正符号化データセットの各々を読み出すステップと、
前記（Ｎ）個の誤り訂正符号化データセットを使って前記情報を生成するステップと、
前記情報を前記要求者に返すステップとをさらに有する、
請求項１の方法。
【請求項７】
前記読み出すステップが、
（ｉ）の各値について、（ｉ）番目のデータ記憶媒体が利用できるかどうかを判定するステップと、
（ｉ）番目のデータ記憶媒体が利用できる場合に有効で、（ｉ）番目の誤り訂正符号化データセットが読み出し可能かどうかを判定するステップと、
（ｉ）番目の誤り訂正符号化データセットが読み出し可能な場合に有効で、（ｉ）番目の誤り訂正符号化データセットを読み出して、その（ｉ）番目の誤り訂正符号化データセットをデータ・キャッシュに書き込むステップとをさらに有する、
請求項６の方法。
【請求項８】
前記情報を前記生成するステップが、
誤り訂正符号化データセットが利用できないかどうかを判定するステップと、
誤り訂正符号化データセットが利用できない場合に有効で、前記利用できない誤り訂正符号化データセットをパーシャル・レスポンス最尤アルゴリズムを使って復元するステップとをさらに有する、
請求項７の方法。
【請求項９】
畳み込み符号器と、畳み込み符号化アルゴリズムと、複数の誤り訂正符号化データセットを生成、格納および読み出し可能プログラム・コードを内蔵したコンピュータ読み出し可能媒体とを有する記憶コントローラであって、前記記憶コントローラが（Ｎ）個の異なるデータ記憶媒体と通信し、そこで（ｉ）の各値について、（ｉ）番目のデータ記憶媒体が残りの（Ｎ−１）個のデータ記憶媒体とは異なるデータ記憶媒体のタイプを有し、（Ｎ）が２以上であり、（ｉ）が１以上かつ（Ｎ）以下である、前記読み出し可能プログラム・コードが、
情報を受信するステップと、
前記畳み込み符号化アルゴリズムを使って前記畳み込み符号器により（Ｎ）セットの誤り訂正符号化データを生成するステップと、
（ｉ）の各値について、（ｉ）番目のデータ記憶媒体を選択するステップと、
（ｉ）の各値について、（ｉ）番目の誤り訂正符号化データのセットを前記（ｉ）番目のデータ記憶媒体に書き込むステップとを行わせる一連のコンピュータ読み出し可能プログラム・ステップを有する、
記憶コントローラ。
【請求項１０】
前記（Ｎ）個のデータ記憶媒体を、磁気テープ、磁気ディスク、光ディスク、電子データ記憶デバイス、およびホログラフィック・データ記憶媒体からなる群から選択する、請求項９の記憶コントローラ。
【請求項１１】
前記（Ｎ）個のデータ記憶媒体が１つの体積ホログラフィック・データ記憶媒体内に配設される（Ｎ）個の異なるデータ記憶位置を有する、請求項９の記憶コントローラ。
【請求項１２】
前記コンピュータ読み出し可能プログラム・コードが、
要求者から前記情報を読み出す要求を受信するステップと、
前記（Ｎ）個の誤り訂正符号化データセットの各々を読み出すステップと、
前記（Ｎ）個の誤り訂正符号化データセットを使って前記情報を生成するステップと、
前記情報を前記要求者に返すステップとを行わせる一連のコンピュータ読み出し可能プログラム・ステップをさらに有する、
請求項９の記憶コントローラ。
【請求項１３】
前記情報を生成する前記コンピュータ読み出し可能プログラム・コードが、
（ｉ）の各値について、誤り訂正符号化データセットが利用できるかどうかを判定するステップと、
（ｉ）番目の誤り訂正符号化データセットが利用できる場合に有効で、（ｉ）番目の誤り訂正符号化データセットを読み出すステップと、
（ｉ）番目の誤り訂正符号化データセットが利用できない場合に有効で、パーシャル・レスポンス最尤アルゴリズムを使って前記（ｉ）番目の誤り訂正符号化データセットを復元するステップとを行わせる一連のコンピュータ読み出し可能プログラム・ステップをさらに有する、
請求項１２の記憶コントローラ。
【請求項１４】
（Ｎ）個の誤り訂正符号化データセットを生成し、その（Ｎ）個の誤り訂正符号化データセットを（Ｎ）個の異なるデータ記憶媒体に符号化し、その（Ｎ）個の誤り訂正符号化データセットを前記（Ｎ）個の異なるデータ記憶媒体から読み出すプログラム可能なコンピュータ・プロセッサと共に使用可能であり、そこで（ｉ）の各値について、（ｉ）番目のデータ記憶媒体が残りの（Ｎ−１）個のデータ記憶媒体とは異なるデータ記憶媒体のタイプを有し、（Ｎ）が２以上で、（ｉ）が１以上かつ（Ｎ）以下である、コンピュータ・プログラムを内蔵したコンピュータに、
前記プログラム可能なコンピュータ・プロセッサに情報を受信させ、
前記プログラム可能なコンピュータ・プロセッサに（Ｎ）セットの誤り訂正符号化データを生成させ、
前記プログラム可能なコンピュータ・プロセッサに（ｉ）の各値について（ｉ）番目のデータ記憶媒体を選択させ、
前記プログラム可能なコンピュータ・プロセッサに（ｉ）の各値について（ｉ）番目の誤り訂正符号化データのセットを（ｉ）番目のデータ記憶媒体に書き込ませる、
ことを機能させるコンピュータ・プログラム。
【請求項１５】
データ・ストレージ・サービスを提供する方法で、
畳み込み符号化アルゴリズムを有する畳み込み符号器を有する記憶コントローラを供給するステップであって、前記記憶コントローラが（Ｎ）個の異なるデータ記憶媒体と通信し、そこで（ｉ）の各値について、（ｉ）番目のデータ記憶媒体が残りの（Ｎ−１）個のデータ記憶媒体とは異なるデータ記憶媒体のタイプを有し、（Ｎ）が２以上で、（ｉ）が１以上かつ（Ｎ）以下である、前記供給するステップと、
データ・ストレージ・サービス・カスタマから情報を受信するステップと、
前記畳み込み符号化アルゴリズムを使って前記畳み込み符号器によって（Ｎ）セットの誤り訂正符号化データを生成するステップと、
（ｉ）の各値について、（ｉ）番目のデータ記憶媒体を選択するステップと、
（ｉ）の各値について、（ｉ）番目の誤り訂正符号化データのセットを前記（ｉ）番目のデータ記憶媒体に書き込むステップとを有する、
方法。
【請求項１６】
前記データ・ストレージ・サービス・カスタマから前記情報を読み出す要求を受信するステップと、
前記（Ｎ）個の誤り訂正符号化データセットの各々を読み出すステップと、
前記（Ｎ）個の誤り訂正符号化データセットを使って前記情報を生成するステップと、
前記情報を前記データ・ストレージ・サービス・カスタマに返すステップとをさらに有する、
請求項１５の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を受信して、その情報から導出する複数の誤り訂正符号化データセットを生成、格納、並びに読み出す装置および方法に関係する。
【背景技術】
【０００２】
従来、情報記憶システムは記憶コントローラと保管ストレージを有する。記憶コントローラは一または複数のクライアント・システムから情報を受信して、その情報を保管ストレージに格納する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
複数の誤り訂正符号化データセットを生成し、その複数の誤り訂正符号化データセットを多数のデータ記憶媒体に格納することによって、保管した情報を保護する装置および方法が必要である。出願人の装置および方法はオリジナルのデータから多数の冗長誤り訂正符号化データセットを生成する畳み込み符号化を利用する。その複数の誤り訂正符号化データセットをさらに多様な記憶デバイスおよび記憶媒体もしくは多様な記憶デバイスまたは記憶媒体に格納する。一または複数の記憶デバイスおよびデータ記憶媒体もしくは一または複数の記憶デバイスまたはデータ記憶媒体が障害を起こして、一または複数の誤り訂正符号化データセットが利用できなくなると、利用できるデータセットからそれら欠損データセットを再現できる。
【課題を解決するための手段】
【０００４】
出願人の発明は、情報を受信して、その情報から導出する複数の誤り訂正符号化データセットを生成、格納、並びに読み出す装置および方法を有する。出願人の方法は（Ｎ）個の異なるデータ記憶媒体と通信する記憶コントローラを提供し、そこで（ｉ）の各値について（ｉ）番目のデータ記憶媒体が残りの（Ｎ−１）個のデータ記憶媒体とは異なるデータ記憶媒体のタイプを有し、（Ｎ）が２以上、および（ｉ）が１以上かつ（Ｎ）以下である。
【０００５】
出願人の記憶コントローラは情報を受信して、その情報から導出する（Ｎ）セットの誤り訂正符号化データを生成する。さらに方法は、（ｉ）の各値について、（ｉ）番目のデータ記憶媒体を選択して、さらに（ｉ）の各値について、（ｉ）番目の誤り訂正符号化データセットを（ｉ）番目のデータ記憶媒体に書き込む。
【０００６】
その後、出願人の記憶コントローラは要求者から情報を読み出す要求を受信する。いくつかの実施例では、出願人の装置および方法は（Ｎ）個の誤り訂正符号化データセットの各々を読み出して、（Ｎ）個の誤り訂正符号化データセットを使って情報を生成し、その情報を要求者に返す。
【発明を実施するための最良の形態】
【０００７】
本発明は図面を参照しながら好適な実施例を以下の説明で説明するが、図面において同じ番号は同じもしくは同様な要素を表す。本明細書を通して「一実施例」、「実施例」、または同様な言葉の言及は、その実施例に関連して説明するある特定の特徴、構造、または特性が本発明の少なくとも１つの実施例に含まれることを意味する。このため、本明細書を通し「一実施例では」、「実施例では」という句、および同様な言葉の出現はすべて同じ実施例をいうこともあるが、必ずしもそうではない。
【０００８】
説明する発明の特徴、構造、または特性は、一または複数の実施例において何か適したやり方で組み合わせてもよい。以下の説明において、発明の実施例を完全に理解できるように、多数の具体的な明細を挙げる。しかし、当業者は発明がその具体的な明細の一または複数のものがなくても実施できること、または他の方法、コンポーネント、材料などと組み合わせて実施できることは分かるであろう。他の例では、本発明の側面が分かりにくくならないように、周知の構造、材料、または操作を詳しく示していない、または説明してない。
【０００９】
図１は出願人のデータ記憶システム１００を図示する。図１の図示する実施例では、システム１００はスイッチド・アクセス・ネットワーク（ｓｗｉｔｃｈｅｄ−ａｃｃｅｓｓ−ｎｅｔｗｏｒｋ）を有し、一または複数のスイッチ１２５を使用してスイッチング・ファブリック１２０を作成する。いくつかの実施例では、データ記憶システム１００を、ファイバ・チャネル（「ＦＣ」）物理層上でランする小型コンピュータ・システム・インターフェース（ＳＣＳＩ）プロトコルを使って実装する。別の実施例では、データ記憶システム１００を、インフィニバンド（ＩｎｆｉｎｉＢａｎｄ）、ＦＩＣＯＮ（ファイバ・チャネル接続の特殊形態）、ＴＣＰ／ＩＰ、イーサネット、ギガビット・イーサネット、またはｉＳＣＳＩを利用して実装してもよい。スイッチ１２５はホスト１０１、１０３、１０５、１０７、１０９とコントローラ１３１の両方のアドレスをもたせて、ホスト１０１、１０３、１０５、１０７および１０９もしくはそのいずれかをコントローラ１３１に交換可能に接続できるようにする。
【００１０】
ホスト・コンピュータ１０１、１０３、１０５、１０７、および１０９はそれぞれ、Ｗｉｎｄｏｗｓ、ＡＩＸ、Ｕｎｉｘ、ＭＶＳ、ＬＩＮＵＸ等などのオペレーティング・システム（Ｗｉｎｄｏｗｓはマイクロソフト・コーポレーションの登録商標であり、ＡＩＸはＩＢＭコーポレーションの登録商標であり、ＭＶＳはＩＢＭコーポレーションの商標であり、ＵＮＩＸはオープン・グループをから独占的に使用許諾を受けた合衆国並びに他の国における登録商標であり、ＬＩＮＵＸはリーナス・トーバルズの登録商標である）を含め、メインフレーム、パーソナル・コンピュータ、ワークステーション、およびその組み合わせなどのコンピューティング・システムを有する。いくつかの実施例では、ホスト・コンピュータ１０１、１０３、１０５、１０７および１０９はさらにストレージ管理プログラムを含む。ホスト・コンピュータ１０１、１０３、１０５、１０７および１０９内のストレージ管理プログラムは、ＩＢＭ社のＭＶＳオペレーティング・システムに実装するＩＢＭ社のＤＦＳＭＳなどデータ記憶・検索システムとのデータ転送を管理する当分野で周知の記憶管理型プログラムの機能性を含んでもよい。
【００１１】
ホスト・コンピュータ１０１、１０３、１０５、１０７および１０９は、それぞれＩ／Ｏインターフェース１１１、１１３、１１５、１１７、および１１９を利用してファブリック１２０に連結する。Ｉ／Ｏインターフェース１１１、１１３、１１５、１１７、および１１９はどのタイプのＩ／Ｏインターフェースでもよい。例えば、ＦＣ調停ループ、ファブリック１２０へのポイント・ツー・ポイントＦＣ接続、またはホスト・コンピュータ１０１、１０３、１０５、１０７、および１０９が直接ファブリック１２０と情報をやりとりするのに利用する別の形態の一または複数の信号線である。ファブリック１２０は、例えば、一または複数のコンピュータ・ネットワークに接続するのに使用する一または複数のＦＣスイッチ１２５を含む。いくつかの実施例では、ＦＣスイッチ１２５は従来のルータ・スイッチである。代替実施例では、ホスト・コンピュータ１０１、１０３、１０５、１０７および１０９、もしくはそのいずれかをポイント・ツー・ポイント構成で、スイッチなしで記憶コントローラに接続する。
【００１２】
スイッチ１２５はホスト・コンピュータ１０１、１０３、１０５、１０７および１０９をＩ／Ｏインターフェース１３５を通してコントローラ１３１に相互接続する。Ｉ／Ｏインターフェース１３５はどのタイプのＩ／Ｏインターフェースでもよく、例えば、ファイバ・チャネル、インフィニバンド、ギガビット・イーサネット、イーサネット、ＴＣＰ／ＩＰ、ｉＳＣＳＩ、ＳＣＳＩ  Ｉ／Ｏインターフェース、ＦＣスイッチ１２５がそれぞれコントローラ１３１と情報をやりとりし、その後複数のデータ記憶媒体１６０、１７０、１８０および１９０に転送するのに使用する一または複数の信号線である。代わりに、データ記憶媒体１６０、１７０、１８０および１９０はコントローラ１３１と同様に互いに物理的に離して、単発の災害が起こってもデータ記憶媒体１６０、１７０、１８０および１９０のうちの１つにしか危険が及ばないようにすることもできよう。「データ記憶媒体」で、出願人はそのデータ記憶媒体からデータを読み込み、かつそのデータ記憶媒体にデータを書き込むのに必要なハードウェア、ソフトウェア、またはファームウェア、もしくはそのずれかと組み合わせたデータ記憶媒体のことを表す。
【００１３】
いくつかの実施例では、データ記憶媒体１６０、１７０、１８０および１９０はそれぞれ異なるデータ記憶媒体のタイプを有する。別の実施例では、データ記憶媒体１６０、１７０、１８０および１９０はそれぞれ、１つのホログラフィック・データ記憶媒体内に配設した異なる記憶位置を有する。
【００１４】
記憶アレイ１３０はコントローラ１３１と記憶媒体１６０、１７０、１８０および１９０を有する。コントローラ１３１と記憶媒体１６０、１７０、１８０および１９０は共通のフレームまたはボックス内に配置してもよい。代わりに、コントローラ１３１と記憶媒体１６０、１７０、１８０および１９０は、災害復旧のために、地理的に離して分散させてもよく、これをジオプレックスと呼ぶこともある。記憶媒体１６０、１７０、１８０および１９０、もしくはそのいずれかはジオプレックスでの前記記憶媒体へのアクセスを提供するために協力して作動する個々別々のコントローラをもってもよい。
【００１５】
コントローラ１３１は多くの多様な形態をとってもよく、また埋め込みシステム、分散型制御システム、パーソナル・コンピュータ、ワークステーション等を含んでもよい。図１の図示する実施例では、記憶コントローラ１３１はプロセッサ１４０、メタデータ・コントローラ１４８、ランダム・アクセス・メモリ（ＲＡＭ）１５４、不揮発性メモリ１５０、専用回路１４２、符号化データ・インターフェース１５８、およびホスト情報インターフェース１３２を有する。ホスト情報インターフェース１３２は、記憶媒体１６０、１７０、１８０、１９０への書き込み動作中に符号器１４６が符号化する情報１３４、または記憶媒体１６０、１７０、１８０、１９０からの読み込み動作中に復号器１４４が読み出して復号化した情報１３４を保持する。いくつかの実施例では、ＲＡＭ１５４をデータ・キャッシュとして使用する。プロセッサ１４０、ＲＡＭ１５４、不揮発性メモリ１５０、専用回路１４２、メタデータ・コントローラ１４８、符号化データ・インターフェース１５８、およびホスト情報インターフェース１３２はバス１４５を通して互いに通信する。
【００１６】
代わりに、ＲＡＭ１５４および不揮発性メモリ１５０もしくはＲＡＭ１５４または不揮発性メモリ１５０は、専用回路１４２、符号化データ・インターフェース１５８、メタデータ・コントローラ１４８、およびホスト情報インターフェース１３２とともにプロセッサ１４０内に存在してもよい。プロセッサ１４０は汎用マイクロプロセッサ、カスタム・プロセッサ、ＦＰＧＡ、ＡＳＩＣ、または他の形態の個別ロジックを含んでもよい。いくつかの実施例では、ＲＡＭ１５４を、ホスト１０１、１０３、１０５、１０７および１０９もしくはそのいずれかが書き込む、あるいはホスト１０１、１０３、１０５、１０７および１０９もしくはそのいずれかが計算したデータ、スタック・データ、実行可能な命令等を保持するために読み出すデータのキャッシュとして使用する。いくつかの実施例では、ＲＡＭ１５４を、符号器１４６から受信した符号化データ１５６をデータ記憶媒体１６０、１７０、１８０および１９０に格納する前に、そのデータの一時記憶域のために使用する。
【００１７】
不揮発性メモリ１５０は、電気的に消去可能・書き込み可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、プログラム可能な読み出し専用フラッシュ・メモリ（ＰＲＯＭ）、バッテリ・バックアップＲＡＭ、ハードディスク・ドライブ、または他の同様なデバイスなどのあらゆるタイプの不揮発性メモリを有してもよい。不揮発性メモリ１５０は典型的には、実行可能なファームウェア、およびメタデータ１５２などのあらゆる不揮発性データを保持するのに使う。
【００１８】
いくつかの実施例では、符号化データ・インターフェース１５８は、プロセッサ１４０にデータ記憶媒体１６０、１７０、１８０および１９０との通信を可能にする一または複数の通信インターフェースを有する。ホスト情報インターフェース１３２はプロセッサ１４０にファブリック１２０、スイッチ１２５、並びにホスト１０１、１０３、１０５、１０７および１０９もしくはホスト１０１、１０３、１０５、１０７、１０９のいずれかとの通信を可能にする。符号化データ・インターフェース１５８とホスト情報インターフェース１３２の例には、ＲＳ−３２、ＵＳＢ（ユニバーサル・シリアル・バス）、ＳＣＳＩ（小型コンピュータ・システム・インターフェース）、ファイバ・チャネル、ギガビット・イーサネット等などのシリアル・インターフェースが含まれる。さらに、符号化データ・インターフェース１５８およびホスト情報インターフェース１３２もしくは符号化データ・インターフェース１５８またはホスト情報インターフェース１３２は、ブルートゥースなど（これだけに限定されない）の無線周波数、または赤外線周波数を利用するデバイスなど（これだけに限定されない）の光通信デバイスなど、ワイヤレス・インターフェースを有してもよい。
【００１９】
いくつかの実施例では、メタデータ・コントローラ１４８は、ソフトウェア、ファームウェア、専用ロジック、またはその組み合わせによってプロセッサ１４０に実装する。さらに、メタデータ・コントローラ１４８の全部もしくは一部は、ホスト１０１、１０３、１０５、１０７および１０９もしくはそのいずれか内のソフトウェア実装など、コントローラ１３１の外部に存在してもよい。メタデータ・コントローラ１４８は、符号化データとして記憶デバイスに格納するために受信した情報に関連するメタデータを管理する。いくつかの実施例では、メタデータ・コントローラ１４８は、符号化データとして格納するために受信した情報に関連するメタデータ（すなわち、メタデータ１５２）の生成、変更、維持、格納、検索、および処理を担う。
【００２０】
いくつかの実施例では、ディストリビュータ１３６は、ソフトウェア、ファームウェア、専用ロジック、またはその組み合わせによってプロセッサ１４０に実装する。さらに、ディストリビュータ１３６の全部もしくは一部を、ホスト１０１、１０３、１０５、１０７および１０９もしくはそのいずれか内のソフトウェア実装など、コントローラ１３１の外部に存在してもよい。ディストリビュータ１３６は符号化データ（すなわち、符号化データ１５６）をＲＡＭに配信し、および一または複数の記憶デバイスが障害を起こした場合に障害を起こしていない記憶デバイスから符号化データおよびソース情報もしくは符号化データまたはソース情報を復号化および復元もしくは復号化または復元できるようなフォーマットで（以下説明する）記憶デバイスに直接配信する、もしくは符号化データをＲＡＭまたは直接記憶デバイスに配信する。ディストリビュータ１３６が媒体１６０、１７０、１８０および１９０などの複数のデータ記憶媒体にデータを配信するとき、メタデータ１５２に従って配信を行って、配信されたデータを後で記憶デバイスから読み込めるようにする。
【００２１】
専用回路１４２は、コントローラ１３１にデータ記憶媒体１６０、１７０、１８０および１９０、コントローラ１３１および符号器１４６の周辺冷却用のファン制御などの独特の機能を行わせることのできる追加ハードウェアを提供する。符号器１４６は、畳み込み符号器４００（図４）など（これだけに限定されない）の畳み込み符号器として実装してもよい。専用回路１４２はパルス幅変調（ＰＷＭ）制御、アナログ・デジタル変換（ＡＤＣ）、デジタル・アナログ変換（ＤＡＣ）、排他的ＯＲ（ＸＯＲ）等を提供する電子機器を有してもよい。さらに、専用回路１４２の全部もしくは一部を、ホスト１０１、１０３、１０５、１０７および１０９もしくはそのいずれか内のソフトウェア実装など、コントローラ１３１の外部に存在してもよい。
【００２２】
いくつかの実施例では、符号器１４６は畳み込み符号器として実装できる。ここで図２および図３を参照すると、表２００および状態遷移図３００は、畳み込み符号化アルゴリズムを利用する出願人の装置および方法のある実施例を図示する。この出願人の装置および方法の説明は、出願人の装置および方法を表２００および状態遷移図３００に示す畳み込み符号化アルゴリズムの使用のみに制限するものと解釈してはならない。むしろ、他の実施例では、出願人の方法は多様な畳み込み符号化アルゴリズムを利用する。
【００２３】
図２および図３の符号化アルゴリズムは、Ｓ０３１０、Ｓ１３１１、Ｓ２３１２、Ｓ３３１３、Ｓ４３１４、Ｓ５３１５、Ｓ６３１６、およびＳ７３１７の８つの状態を有する。状態間の離散的遷移は数と方向が限られる。例えば、状態Ｓ０３１０で始まる符号化プロセスは、Ｓ０３１０に戻る、またはＳ１３１１に進むことしかできない。同様に、Ｓ１３１１からのプロセスはＳ２３１２またはＳ３３１３にしか遷移できない、等。状態間の遷移が起こるたびに、図２および図３に示すように１ビットの情報を４ビットの誤り訂正符号化データに符号化することになる。
【００２４】
表２００（図２）は、初期状態２０１、遷移先状態２０２、情報２０３、および誤り訂正符号化データ２０４の４つの列を有する。合計８つの状態とある特定の状態からすぐ次の取りうる状態への２つの起こりうる遷移に基づいて、表２００には合計１６の行がある。表２００は状態遷移図３００から生成したが、本明細書では符号化データを得るための情報の符号化を表すために使う。
【００２５】
図３および図６は、ビット１１１１０００を有するオリジナルの情報の符号化を図示する。図３では、Ｓ０３１０、Ｓ１３１１、Ｓ３３１３、Ｓ７３１７、Ｓ７３１７、Ｓ６３１６、Ｓ４３１４、およびＳ０３１０を有する強調表示した符号化経路に従って符号化を示す。ここで図２、図３および図７を参照すると、Ｓ０３１０からＳ１３１１はオリジナルのビット１を４誤り訂正符号化ビット１１１１に符号化する。Ｓ１２１１からＳ３２１３はオリジナルのビット１を４誤り訂正符号化ビット１０００に符号化する。Ｓ３２１３からＳ７２１７はオリジナルのビット１を４誤り訂正符号化ビット０００１に符号化する。Ｓ７２１７からＳ７２１７はオリジナルのビット１を４誤り訂正符号化ビット１１１０に符号化する。Ｓ７２１７からＳ６２１６はオリジナルのビット０を４誤り訂正符号化ビット０００１に符号化する。Ｓ６２１６からＳ４２１７はオリジナルのビット０を４誤り訂正符号化ビット０１１０に符号化する。最後に、Ｓ４２１７からＳ０２１０はオリジナルのビット０を４誤り訂正符号化ビット１１１１に符号化する。
【００２６】
前述した畳み込み符号化アルゴリズムを使って、オリジナルの情報１１１１０００を、記憶媒体１６０、１７０、１８０および１９０に格納するために４つの誤り訂正符号化データセットに符号化する。図２、図３および図７に図示する畳み込み符号化アルゴリズムを使って、オリジナルの情報１１１１０００をビット１１０１００１を有する第１誤り訂正符号化データセットに符号化し、その第１の誤り訂正符号化データセットを第１データ記憶媒体１６０（図１）に格納する。図２、図３および図７に図示する畳み込み符号化アルゴリズムを使って、オリジナルの情報１１１１０００をビット１００１０１１を有する第２誤り訂正符号化データセットに符号化し、その符号化したデータの第２セットを第２記憶媒体１７０（図１）に格納する。図２、図３および図７に図示する畳み込み符号化アルゴリズムを使って、オリジナルの情報１１１１０００をビット１００１０１１を有する第３誤り訂正符号化データセットに符号化し、その符号化したデータの第３セットを第３データ記憶媒体１６０（図１）に格納する。図２、図３および図７に図示する畳み込み符号化アルゴリズムを使って、オリジナルの情報１１１１０００をビット１０１０１０１を有する第４誤り訂正符号化データセットに符号化し、その符号化したデータの第４セットを第４データ記憶媒体１６０（図１）に格納する。
【００２７】
ここで図４および図５を参照すると、表２００（図２）および状態遷移図３００（図３）に示す畳み込み符号化アルゴリズム用の符号器回路４００が示されている。符号器回路４００は、コントローラ１３１（図１）の専用回路１４２（図１）内の符号器１４６（図１）のある実装である。別の実施例では、符号器回路４００はコントローラ１３１の外部に実装する。
【００２８】
符号器回路４００は、符号化のために、１度に１ビットずつ入力情報ストリームＵ（Ｊ）４０６を受信する。符号器回路４００はｍ＝３段のシフト・レジスタを有し、レジスタ４１０、４２０および４３０を有する。レジスタ４１０、４２０および４３０の初期の内容は符号化プロセスのためにゼロであることが好ましい。入力情報ストリームＵ（Ｊ）４０５とレジスタ４１０、４２０および４３０の出力はｎ＝２モジュロ２加算器を選択的に加算され（２進加算のために桁上げなしになる）、出力Ｌ（０，Ｊ）４４０を出す加算器２４０と、出力Ｌ（１，Ｊ）４５０を出す加算器２４２と、出力Ｌ（２，Ｊ）４６０を出す加算器２４４と、出力Ｌ（３，Ｊ）４７０を出す加算器２４６を有する。モジュロ２加算器は専用回路１４２内のＸＯＲ（排他的ＯＲ）ゲートとして実装しても、または代わりにソフトウェア、ファームウェア、専用ロジック等を使って実装してもよい。
【００２９】
図５は表４８０を教示し、データ記憶媒体１６０が誤り訂正符号化データビットＬ（０，Ｊ）４４０を取得し、データ記憶媒体１７０が誤り訂正符号化データビットＬ（１，Ｊ）４５０を取得し、データ記憶媒体１８０が誤り訂正符号化データビットＬ（２，Ｊ）４６０を取得し、データ記憶媒体１９０が誤り訂正符号化データビットＬ（３，Ｊ）４７０を取得することを示す。
【００３０】
モジュロ２加算は線形演算のため、符号器は線形順方向シフト・レジスタである。バッファリングの後、符号器回路４００の出力を記憶媒体１６０、１７０、１８０および１９０に書き込むが、そこで記憶媒体１６０が誤り訂正符号化データビットＬ（０，Ｊ）を受信し、記憶媒体１７０が誤り訂正符号化データビットＬ（１，Ｊ）を受信し、記憶媒体１８０が誤り訂正符号化データビットＬ（２，Ｊ）を受信し、記憶媒体１９０が誤り訂正符号化データビットＬ（３，Ｊ）を受信する。
【００３１】
図７は、図３の強調表示した符号化経路に示される符号化したデータを表形式で列挙する。図３および図７はそれぞれ、オリジナルの情報１１１１０００を誤り訂正符号化するための符号化経路Ｓ０２１０、Ｓ１２１１、Ｓ３２１３、Ｓ７２１７、Ｓ７２１７、Ｓ６２１６、Ｓ４２１４、およびＳ０２１０を図示する。もう一度図２を参照すると、表２００はＥＮＤＥＣ（符号化・復号化）表を有し、列２０１が様々な初期状態を表し、列２０２が取りうる遷移先状態を表し、列２０３が考えられるオリジナルのデータビットを表し、列２０４が後でそれぞれデータ記憶媒体１６０、１７０、１８０および１９０に書き込まれる４誤り訂正符号化データビットを表す。
【００３２】
いくつかの実施例では、データ記憶媒体１６０、１７０、１８０および１９０は、例えば磁気テープ、磁気ディスク、光学ディスク、電子記憶デバイス、ホログラフィック・データ記憶媒体、およびその種の他のものなど（これだけに限定されない）、多様なデータ記憶媒体のタイプを有する。別の実施例では、データ記憶媒体１６０、１７０、１８０および１９０は１つの体積ホログラフィック・データ記憶媒体内に配設される異なる記憶位置を有する。
【００３３】
４誤り訂正セットの復号化は図６に図示するトレリス線図５００を利用することが好ましい。このようなトレリス線図はパーシャル・レスポンス最尤（「ＰＲＭＬ」）復号法と呼ばれることが多い。代わりに、この復号化に「スタック・アルゴリズム」を使用することもできるであろうが、得られる結果は同じである。
【００３４】
状態Ｓ０〜Ｓ７を図６に示しているが、レジスタ４１０（図４）、４２０（図４）、および４３０（図４）の初期内容はすべてゼロで、またトレリス線図５００は状態Ｓ０３１０Ａから始まる。Ｓ０３１０Ａから、トレリス線図５００はＳ０３１０ＢまたはＳ１３１１Ｂのいずれかに分岐する。トレリス線図５００で状態のナンバリングが添字Ａから添字Ｂに増えることを枝といい、添字Ａから添字Ｂに分岐するときの枝指数Ｉはゼロである。Ｓ０３１０Ｂから、トレリス線図５００はＳ０３１０ＣまたはＳ１３１１Ｃのいずれかに分岐する。またＳ１３１１Ｂから、Ｓ２３１２ＣまたはＳ３３１３Ｃのいずれかに分岐して、枝指数Ｉは１となる。Ｓ０３１０Ｃから、トレリス線図５００はＳ０３１０ＤまたはＳ１３１１Ｄのいずれかに分岐する。Ｓ１３１１ＣからＳ２３１２ＤまたはＳ３３１３Ｄのいずれかに分岐する。Ｓ２３１２ＣからＳ４３１４ＤまたはＳ５３１５Ｄのいずれかに分岐する。またはＳ３３１３ＣからＳ６３１６ＤまたはＳ７３１７Ｄのいずれかに分岐して、枝指数Ｉは２になる。
【００３５】
トレリス線図５００の次の分岐数列は最高潮の復号化作業を示す。Ｓ０３１０Ｄから、トレリス線図５００はＳ０３１０ＥまたはＳ１３１１Ｅのいずれかに分岐する。Ｓ１３１１ＤからＳ２３１２ＥまたはＳ３３１３Ｅのいずれかに分岐する。Ｓ２３１２ＤからＳ４３１４ＥまたはＳ５３１５Ｅのいずれかに分岐する。またはＳ３３１３ＤからＳ６３１６ＥまたはＳ７３１７Ｅのいずれかに分岐して、枝指数Ｉは３になる。また、Ｓ７３１７Ｄから、トレリス線図５００はＳ７３１７ＥまたはＳ６３１６Ｅのいずれかに分岐する。Ｓ６３１６ＤからＳ５３１５ＥまたはＳ４３１４Ｅのいずれかに分岐する。Ｓ５３１５ＤからＳ３３１３ＥまたはＳ２３１２Ｅのいずれかに分岐する。またはＳ４３１４ＤからＳ１３１１ＥまたはＳ０３１０Ｅのいずれかに分岐する。
【００３６】
典型的には、枝指数Ｉ＝３で示すものを、トレリス線図で複数回繰り返す。ただし、図６では簡潔にするために当該繰返しを１度しかしていない。図６の残りについては、トレリス線図は完結するために示しており、復号化プロセスの終了を示している。Ｓ０３１０Ｅから、トレリス線図３００はＳ０３１０Ｆにしか分岐しない。Ｓ１３１１ＥからはＳ２３１２Ｆにしか分岐しない。Ｓ２３１２ＥからはＳ４３１４Ｆにしか分岐しない。Ｓ３３１３ＥからはＳ６３１６Ｆにしか分岐せず、枝指数Ｉは４になる。また、Ｓ７３１７Ｅから、トレリス線図３００はＳ６３１６Ｆにしか分岐しない。Ｓ６３１６ＥからはＳ４３１４Ｆにしか分岐しない。Ｓ５３１５ＥからはＳ２３１２Ｆにしか分岐しない。Ｓ４３１４ＥからはＳ０３１０Ｆにしか分岐しない。Ｓ０３１０Ｆから、トレリス線図５００はＳ０３１０Ｇにしか分岐しない。Ｓ２３１２ＦからはＳ４３１４Ｇにしか分岐せず、枝指数Ｉは５になる。また、Ｓ６３１６Ｆから、トレリス線図５００はＳ４３１４Ｇにしか分岐しない。Ｓ４３１４ＦからはＳ０３１０Ｇにしか分岐しない。最後に、Ｓ０３１０Ｇから、トレリス線図３００はＳ０３１０Ｈにしか分岐せず、枝指数Ｉは６になる。また、Ｓ４３１４Ｇから、トレリス線図５００はＳ０３１０Ｈにしか分岐しない。
【００３７】
図８および図９は欠損データの復元の例を図示する。図８および図９では、記憶媒体Ｍ１およびＭ２のデータが完全に欠けている。しかし、図９は最小ハミング距離に基づくＰＲＭＬアルゴリズムを使って、トレリス符号器線図５００（図６）の正しい経路を判定する。図示のために、３枝のデータ回復しか述べない。
【００３８】
データ回復の第１枝（Ｉ＝０）はデータ１ｘｙ１の正しいデータ回復経路を見つけるステップを有し、ここでｘおよびｙはデータ記憶媒体Ｍ１およびＭ２が破損しているまたは利用できないため未知の符号化データである。Ｓ０３１０ＡからＳ０３１０Ｂまでのハミング距離は１ｘｙ１＜ｘｏｒ＞００００＝１ｘｙ１であり、Ｓ０３１０ＡからＳ１３１１Ｂのハミング距離は１ｘｙ１＜ｘｏｒ＞１１１１＝０ｘｙ０である。Ｓ０３１０ＡからＳ１３１１Ｂまでの経路の方がハミング距離が短いため、正しい経路となる。
【００３９】
同様に、データ回復の第２枝（Ｉ＝１）はデータ１ｘｙ０の正しいデータ回復経路を見つけるステップを有する。Ｓ１３１１ＢからＳ２３１２Ｃまでのハミング距離は１ｘｙ０＜ｘｏｒ＞＝０１１１＝１ｘｙ１であり、Ｓ１３１１ＢからＳ３３１３Ｃのハミング距離は１ｘｙ０＜ｘｏｒ＞１０００＝０ｘｙ０である。Ｓ１３１１ＢからＳ３３１３Ｃまでの経路の方がハミング距離が短いため、正しい経路となる。
【００４０】
最後に、データ回復の第３枝（Ｉ＝２）はデータ０ｘｙ１の正しいデータ回復経路を見つけるステップを有する。Ｓ３３１３ＣからＳ６３１６Ｄまでのハミング距離は０ｘｙ１＜ｘｏｒ＞１１１０＝１ｘｙ１であり、Ｓ３３１３ＣからＳ７３１７Ｄのハミング距離は０ｘｙ１＜ｘｏｒ＞０００１＝０ｘｙ０である。Ｓ３３１３ＣからＳ７３１７Ｄまでの経路の方がハミング距離が短いため、正しい経路である。当業者には、データ回復が２つの枝を同時に利用することも伴いうるが、それでもなお符号化されたデータを回復できることは認識されるであろう。
【００４１】
出願人の発明は情報を（Ｎ）個のデータ記憶媒体に読み書きする方法を有し、前記方法はオリジナルの情報から（Ｎ）セットの誤り訂正符号化データを生成する。いくつかの実施例では、データ・ストレージ・サービス・プロバイダはデータ・ストレージ・サービスを一または複数のデータ・ストレージ・サービス・カスタマに提供するために出願人の方法を実装する。いくつかの実施例では、データ・ストレージ・サービス・プロバイダは、記憶コントローラ１３１（図１）などの記憶コントローラと、データ記憶媒体１６０（図１）、１７０（図１）、１８０（図１）および１９０（図１）を所有および操作もしくは所有または操作する。いくつかの実施例では、一または複数のデータ・ストレージ・サービス・カスタマは一または複数のホスト・コンピュータ１０１（図１）、１０３（図１）、１０５（図１）、１０７（図１）および１０９（図１）、もしくはそのいずれかを所有および操作もしくは所有または操作する。
【００４２】
図１０は、出願人の方法のうち、オリジナルの情報から導出する（Ｎ）セットの誤り訂正符号化データを生成するステップとそれを保存するステップをまとめている。いくつかの実施例では、（Ｎ）セットの誤り訂正符号化データを（Ｎ）個のデータ記憶媒体に書き込み、その（Ｎ）個のデータ記憶媒体の各々が、磁気テープ、磁気ディスク、光学ディスク、電子データ記憶デバイス、およびホログラフィック・データ記憶媒体など（これだけに限定されない）の多様なデータ記憶媒体のタイプを有する。別の実施例では、（Ｎ）セットの誤り訂正符号化データを１つの体積ホログラフィック・データ記憶媒体内に配設される（Ｎ）個の異なる記憶位置に書き込む。
【００４３】
ここで図１０を参照すると、ステップ９０５で出願人の方法はデータ記憶システム１００（図１）などのデータ記憶システムを提供し、そのデータ記憶システムは、記憶コントローラ１３１（図１）など、オリジナルの情報から（Ｎ）セットの誤り訂正符号化データを生成できる記憶コントローラを有する。出願人の装置および方法のいくつかの実施例では、出願人の記憶コントローラは（Ｎ）個の多様なデータ記憶媒体のタイプと通信する。いくつかの実施例では、（Ｎ）は２である。いくつかの実施例では、（Ｎ）は４である。「（Ｎ）セットの誤り訂正符号化データ」で、出願人はオリジナルの情報から導出した（Ｎ）セットのデータのことを表し、その（Ｎ）セットの誤り訂正符号化データの少なくとも（Ｎ／２）が利用できれば、オリジナルの情報を再現できる。
【００４４】
ステップ９１０で、出願人の方法は、ホスト情報インターフェース１３２内の情報１３４などの情報を受信したかどうかを判定する。いくつかの実施例では、一または複数のホスト・コンピュータ１０１、１０３、１０５、１０７および１０９、もしくはそのいずれかの一または複数のホスト・コンピュータは、記憶コントローラ１３１（図１）などの出願人の記憶コントローラに情報を提供する。いくつかの実施例では、ステップ９１０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ９１０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。
【００４５】
出願人の方法が情報を受信していないと判定したら、方法は情報の受信のためのモニタリングに続く。代わりに、出願人の方法が情報を受け取ったと判定したら、方法はステップ９１０からステップ９２０に移って、方法は（ｉ）番目の誤り訂正符号化データのセットを生成し、そこで（ｉ）は当初１に設定し、（ｉ）は１以上かつ（Ｎ）以下である。いくつかの実施例では、ステップ９１０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ９１０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。
【００４６】
ステップ９３０で、出願人の方法は（ｉ）番目のデータ記憶媒体を選択する。いくつかの実施例では、（ｉ）番目のデータ記憶媒体は磁気テープを有する。いくつかの実施例では、（ｉ）番目のデータ記憶媒体は磁気ディスクを有する。いくつかの実施例では、（ｉ）番目のデータ記憶媒体は、相変化光ディスク、光磁気ディスク、デジタル・バーサタイル・ディスク（ＤＶＤ）、高精細ＤＶＤ（ＨＤ−ＤＶＤ）、またはブルーレイなどの光学ディスクを有する。いくつかの実施例では、（ｉ）番目のデータ記憶媒体は電子データ記憶デバイスを有する。
【００４７】
いくつかの実施例では、（ｉ）番目のデータ記憶媒体はホログラフィック・データ記憶媒体を有する。いくつかの実施例では、（ｉ）番目のデータ記憶媒体はホログラフィック・データ記憶媒体内に配設される第１の記憶位置を有する。
【００４８】
図１２はホログラフィック情報記録装置１１００を図示する。装置１１００はレーザー光源１１０５、レーザービーム・スプリッタ１１１０、キャリア・ビーム１１２０、および参照ビーム１１３０を有する。図１２の図示する実施例では、装置１１００はさらに空間光変調器（「ＳＬＭ」）１１４０、データ・ビーム１１６０、ミラー１１８０、およびホログラフィック・データ記憶媒体１１９５を有する。
【００４９】
一般的に、ＳＬＭ１１４０はＬＣＤ型のデバイスである。情報は、ＳＬＭ１１４０ディスプレイ上の明画素または暗画素のいずれかで表される。ＳＬＭ１１４０は典型的には透過性である。レーザー光源１１０５から発するレーザー光は、ビーム・スプリッタ１１１０でキャリア・ビーム１１２０と参照ビーム１１３０の２つのビームに分割する。キャリア・ビーム１１２０は光がＳＬＭ１１４０を通過するときにＳＬＭ１１４０が表示する画像１１５０をピックアップする。
【００５０】
参照ビーム１１３０はミラー１１８０で反射されて、反射参照ビーム１１９０を生じる。反射参照ビーム１１９０はデータ・ビーム１１６０を干渉して、ホログラム１１７０を形成する。生成されたホログラム１１７０をホログラフィック記憶媒体１１９５に格納する。ミラー１１８０は典型的には表面鏡である。
【００５１】
ここで図１３を参照すると、出願人の装置のいくつかの実施例において、ミラー１１８０は軸１１８２および軸１１８４もしくは軸１１８２または軸１１８４を中心に回転できるので、誤り訂正符号化データセットを有するホログラムを体積ホログラフィック・データ記憶媒体１１９５全体にわたって符号化できる。いくつかの実施例では、出願人の体積ホログラフィック・データ記憶媒体は立方体を有する。いくつかの実施例では、出願人の体積ホログラフィック・データ記憶媒体は直方体を有する。
【００５２】
いくつかの実施例では、（Ｎ）は４であり、出願人の装置および方法は図１３に図示する構成１１０２を利用するが、（Ｎ）個のデータ記憶媒体は１つのホログラフィック・データ記憶媒体内に配設される４つの異なる記憶位置を有する。これらの実施例では、ミラー１１８０を第１位置に配設した状態で（ｉ）番目の誤り訂正符号化データのセットをＳＬＭ１１４０上に表示し、表示される（ｉ）番目の誤り訂正符号化データのセットを有する第１ホログラムはホログラフィック・データ記憶媒体１１９５の第１場所で符号化する。その後、ミラー１１８０を第２位置に配設した状態で（ｉ＋１）番目の誤り訂正符号化データのセットをＳＬＭ１１４０に表示し、（ｉ＋１）番目の誤り訂正符号化データのセットを有する第２ホログラムはホログラフィック・データ記憶媒体１１９５の第２場所で符号化する。その後、ミラー１１８０を第３位置に配設した状態で（ｉ＋２）番目の誤り訂正符号化データのセットをＳＬＭ１１４０に表示し、（ｉ＋２）番目の誤り訂正符号化データのセットを有する第３ホログラムはホログラフィック・データ記憶媒体１９５の第３場所で符号化する。最後に、ミラー１１８０を第４位置に配設した状態で（ｉ＋３）番目の誤り訂正符号化データのセットをＳＬＭ１１４０上に表示し、（ｉ＋３）番目の誤り訂正符号化データのセットを有する第４ホログラムはホログラフィック・データ記憶媒体１１９５の第４場所で符号化する。
【００５３】
ここで図１４および図１５を参照すると、本出願の譲受人に共通に譲渡され、これにより参照でこれに組み込む出願番号第１１／４１２，６５８号の係属中の出願のホログラフィック情報記録装置１２００が記述されている。装置１２００はレーザー光源１１０５、スプリッタ１１１０、反射型空間光変調器１２１０、およびホログラフィック記憶媒体１１９５を有する。光源１１０５から発する光はスプリッタ１１１０によって参照ビーム１２２０とキャリア・ビーム１２３０に分割する。装置１２００を使用しても、参照ビーム１２２０は反射されない。
【００５４】
図１５の図示する実施例では、反射型空間光変調器（「ＲＳＬＭ」）１２１０はデータ画像１２０５を有する。いくつかの実施例では、反射型空間光変調器１２１０は、複数のマイクロミラーを有するアセンブリを有する。別の実施例では、反射型空間光変調器１２１０は反射型液晶（「ＬＣＯＳ」）ディスプレイ・デバイスを有する。結晶と電極を偏光ガラス板の間に挟む、ＬＣＤで使用されるネマティック・ツイステッド液晶（ｎｅｍａｔｉｃ  ｔｗｉｓｔｅｄ  ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ）とは異なり、ＬＣＯＳデバイスは液晶をシリコンチップの表面に被覆する。画像の形成を駆動する電子回路をチップにエッチングして、その表面に反射（アルミ蒸着）面を被覆する。光がチップに反射する前後の両方に偏光板を光路に置く。ＬＣＯＳデバイスは従来のＬＣＤディスプレイよりも製造しやすい。ＬＣＯＳデバイスは、１チップ上に数百万画素をエッチングできるため解像度が高い。ＬＣＯＳデバイスは従来のＬＣＤディスプレイよりもはるかに小型にできる。
【００５５】
キャリア・ビーム１２３０は光が反射型空間光変調器１２１０に反射するとき画像１２０５をピックアップして、画像１２０５を有する反射データ・ビーム１２４０を形成する。反射しない参照ビーム１２２０は反射データ・ビーム１２４０と干渉して、ホログラム１２５０を形成する。ホログラム１２５０が記憶媒体１１９５内に形成されることによって、光反応性記憶媒体に符号化されたホログラム１２５０を有する干渉パターン１２６０を作成させる。ここで図１６を参照すると、いくつかの実施例では、ＲＳＬＭ１２１０が軸１２１２および軸１２１４もしくは軸１２１２または軸１２１４を中心に回転できるので、データを有するホログラムはホログラフィック・データ記憶媒体１１９５の体積全体にわたって符号化できる。
【００５６】
もう一度図１０を参照すると、ステップ９４０で出願人の方法は、ステップ９２０の（ｉ）番目の誤り訂正符号化データのセットをステップ９３０で選択した（ｉ）番目のデータ記憶媒体に後で転送するためにデータ・キャッシュおよびＲＡＭもしくはデータ・キャッシュまたはＲＡＭにステージするかどうかを判定する。出願人の方法がステップでステップ９２０の（ｉ）番目の誤り訂正符号化データのセットをステージすることを選んだら、方法はステップ９４０からステップ９５０に移って、方法はステップ９３０で選択した（ｉ）番目のデータ記憶媒体を、例えばＲＡＭ１５４（図１）などのデータ・キャッシュまたはＲＡＭに符号化データ１５６（図１）として書き込む。いくつかの実施例では、ステップ９５０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ９５０を記憶コントローラに配設されるプロセッサ１４０（図１）などのプロセッサで行う。出願人の方法はステップ９５０からステップ９６０に移る。
【００５７】
出願人の方法がステップでステップ９２０の（ｉ）番目の誤り訂正符号化データのセットをステージしないと選択したら、方法はステップ９４０からステップ９６０に移って、方法はステップ９２０の（ｉ）番目の誤り訂正符号化データのセットをステップ９３０の選択した（ｉ）番目のデータ記憶媒体に書き込む。
【００５８】
いくつかの実施例では、（ｉ）番目のデータ記憶媒体をステップ９０５の記憶コントローラと同じ場所に配置する。「同じ場所に配置する」で、出願人は、同じ物理的なエンクロージャ、シャーシ、フレーム、およびその種の他のものの内部に配設することを表す。別の実施例では、（ｉ）番目のデータ記憶媒体はステップ９０５の記憶コントローラと同じ場所に配置しない。
【００５９】
いくつかの実施例では、ステップ９６０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ９６０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。
【００６０】
出願人の方法はステップ９６０からステップ９７０に移り、方法は、（Ｎ）個の誤り訂正符号化データのセット全部が生成されたかどうか、すなわち、（ｉ）が（Ｎ）と等しいかどうかを判定する。いくつかの実施例では、ステップ９７０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ９７０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。出願人の方法がステップ９７０で（ｉ）が（Ｎ）に等しいと判定したら、方法はステップ９７０からステップ９９０に移って終了する。
【００６１】
出願人の方法がステップ９７０で（ｉ）が（Ｎ）と等しくないと判定したら、方法はステップ９７０からステップ９８０に移って、方法は１ずつ（ｉ）を増やす。いくつかの実施例では、ステップ９８０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ９８０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。出願人の方法はステップ９８０からステップ９２０に移って、本明細書で説明するとおりに続く。
【００６２】
図１１は、出願人の方法のうち、（Ｎ）セットの誤り訂正符号化データを読み出すステップをまとめている。いくつかの実施例では、（Ｎ）セットの誤り訂正符号化データは（Ｎ）個のデータ記憶媒体に格納し、その（Ｎ）個のデータ記憶媒体の各々が異なるデータ記憶媒体のタイプを有する。別の実施例では、（Ｎ）セットの誤り訂正符号化データを１つのホログラフィック・データ記憶媒体内に配設される（Ｎ）個の異なる記憶位置に格納する。
【００６３】
ここで図１１を参照すると、ステップ１００５で、出願人の方法はデータ記憶システム１００（図１）などのデータ記憶システムを提供し、データ記憶システムは、記憶コントローラ１３１（図１）など、（Ｎ）セットの誤り訂正符号化データを復号化してオリジナルの情報を再現できる記憶コントローラを有する。いくつかの実施例では、ステップ１００５の記憶コントローラは（Ｎ）個の異なるデータ記憶媒体のタイプと通信する。いくつかの実施例では、（Ｎ）は２である。いくつかの実施例では、（Ｎ）は４である。「（Ｎ）セットの誤り訂正符号化データ」で、出願人はオリジナルの情報から導出する（Ｎ）セットのデータを表し、その（Ｎ）セットの誤り訂正符号化データの少なくとも（Ｎ／２）が利用できる場合、オリジナルの情報を再現できる。
【００６４】
ステップ１０１０で、出願人の方法は要求者から読み込み要求を受信したかどうかを判定する。いくつかの実施例では、一または複数のホスト・コンピュータ１０１、１０３、１０５、１０７および１０９もしくはそのいずれかなどの一または複数のホスト・コンピュータは読み込み要求を記憶コントローラ１３１（図１）などの出願人の記憶コントローラに提供する。いくつかの実施例では、ステップ１０１０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ１０１０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。
【００６５】
いくつかの実施例では、ステップ１０１０の読み込み要求は、（ｉ）の各値について、（ｉ）番目の誤り訂正符号化データのセット、（ｉ）番目のデータ記憶媒体、および（ｉ）番目の記憶アドレスを識別し、そこで（ｉ）番目の誤り訂正符号化データのセットを（ｉ）番目のデータ記憶媒体の（ｉ）番目の記憶アドレスに書き込み、（ｉ）は１以上かつ（Ｎ）以下である。いくつかの実施例では、（ｉ）番目の記憶アドレスは一または複数の追跡番号、一または複数の論理ブロック・アドレス、一または複数のファイル番号、およびその種の他のものを有する。
【００６６】
いくつかの実施例では、（ｉ）番目のデータ記憶媒体はステップ１００５の記憶コントローラと同じ場所に配置する。「同じ場所に配置する」で、出願人は同じ物理的なエンクロージャ、シャーシ、フレーム、およびその種の他のものの内部に配設することを表す。別の実施例では、（ｉ）番目のデータ記憶媒体をステップ１００５の記憶コントローラと同じ場所に配置しない。
【００６７】
出願人の方法はステップ１０１０からステップ１０２０に移って、方法は、（ｉ）を当初１に設定する、（ｉ）番目のデータ記憶媒体が利用できるかどうかを判定する。いくつかの実施例では、ステップ１０２０を（ｉ）番目のデータ記憶媒体を有するデータ記憶デバイスで行う。いくつかの実施例では、ステップ１０２０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ１０２０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。
【００６８】
出願人の方法がステップ１０２０で（ｉ）番目のデータ記憶媒体が利用できないと判定したら、方法はステップ１０２０からステップ１０６０に移る。代わりに、出願人の方法がステップ１０２０で（ｉ）番目のデータ記憶媒体が利用できると判定したら、方法はステップ１０２０からステップ１０３０に移って、方法は（ｉ）番目の誤り訂正符号化データのセットが読み出し可能かどうかを判定する。いくつかの実施例では、ステップ１０３０を（ｉ）番目のデータ記憶媒体を有するデータ記憶デバイスで行う。いくつかの実施例では、ステップ１０３０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ１０３０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。
【００６９】
出願人の方法がステップ１０３０で、（ｉ）番目の誤り訂正符号化データのセットが読み出し可能でないと判定したら、方法はステップ１０３０からステップ１０６０に移る。代わりに、出願人の方法がステップ１０３０で（ｉ）番目の誤り訂正符号化データのセットが読み出し可能であると判定したら、方法はステップ１０３０からステップ１０４０に移って、方法は（ｉ）番目のデータ記憶媒体から（ｉ）番目の誤り訂正符号化データのセットを読み出す。いくつかの実施例では、ステップ１０４０を（ｉ）番目のデータ記憶媒体を有するデータ記憶デバイスで行う。いくつかの実施例では、ステップ１０４０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ１０４０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。
【００７０】
いくつかの実施例では、（Ｎ）個のデータ記憶媒体のうちの１つがホログラフィック・データ記憶媒体を有する。別の実施例では、（Ｎ）個のデータ記憶媒体の各々が単一のホログラフィック・データ記憶媒体を有し、個々の（Ｎ）個の誤り訂正符号化データセットの各々を単一のホログラフィック・データ記憶媒体内に配設される異なる記憶アドレスに書き込む。図１７はホログラフィック情報読み出し装置１４００を図示する。装置１４００はレーザー光源１１０５、ビーム・スプリッタ１１１０、ホログラフィック記憶媒体１１９５、および光センサ１４２０を有する。光センサ１４２０は投影される画像１４１０を正確に捕捉できるのに十分にホログラフィック記憶媒体１１９５から離れた距離に配設する。ホログラムを読み出すために、参照ビーム１１３０をミラー１１８０に反射させて、反射参照ビーム１１９０にし、さらにホログラフィック記憶媒体１１９５に入射する。参照ビーム１１９０が記憶媒体１１９５に格納した符号化したホログラム１４０５と干渉すると、ＳＬＭ１１４０（図１２）が表示するオリジナルの画像１１５０（図１２）に似た画像１４１０が光センサ１４２０に投影される。さらに光センサ１４２０は画像１４１０を有する（ｉ）番目の誤り訂正符号化データセットを生成する。
【００７１】
図１８はホログラフィック情報読み出し装置１５００を示す。装置１５００は、前述した出願番号第１１／４１２，６５８号の係属中の出願に記述される。装置１５００はレーザー光源１１０５と光ビーム・スプリッタ１１１０と光センサ１４２０とを有する。光源１１０５とスプリッタ１１１０が参照ビーム１２２０を提供する。
【００７２】
反射しない参照ビーム１２２０をホログラフィック記憶媒体１１９５に向けて、参照ビーム１２２０を干渉パターン１２６０（図１５）によって回折するようにして、出願人の反射型空間光変調器１２１０上に表示されるオリジナルの画像１２０５（図１５）に似た画像１５１０を形成する。画像１５１０を光センサ１４２０に投影する。さらに光センサ１４２０は画像１５１０を有する（ｉ）番目の誤り訂正符号化データセットを生成する。
【００７３】
図１８の図示する実施例では、ホログラフィック情報読み出し装置１５００はビーム・スプリッタ１１１０を有する。別の実施例では、ホログラフィック情報読み出し装置１５００はビーム・スプリッタを有さない。これらの実施例では、レーザー光源１１０５が参照ビーム１２２０を提供し、それを反射させずにホログラフィック記憶媒体１１９５に向けて、参照ビーム１２２０を干渉パターン１２６０（図１４）によって回折するようにして、出願人の反射型空間光変調器２１０上に表示するオリジナルの画像１２０５（図１５）に似た画像１５１０を形成する。画像１５１０を光センサ１４２０に投影する。さらに光センサ１４２０は画像１５１０を有する（ｉ）番目の誤り訂正符号化データセットを生成する。
【００７４】
もう一度図１１を参照すると、出願人の方法がステップ１０４０からステップ１０５０に移って、方法は（ｉ）番目の誤り訂正符号化データのセットを、データ・キャッシュまたはＲＡＭ１５４（図１）などのＲＡＭに符号化データ１５６（図１）として書き込む。いくつかの実施例では、ステップ１０５０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ１０５０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。
【００７５】
出願人の方法はステップ１０５０からステップ１０６０に移って、方法は（Ｎ）個の誤り訂正符号化データのセット全部が読み込まれたまたは読み込みを試行されたかどうか、すなわち（ｉ）が（Ｎ）と等しいかどうかを判定する。いくつかの実施例では、ステップ１０６０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ１０６０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。
【００７６】
出願人の方法がステップ１０６０で（ｉ）が（Ｎ）と等しくないと判定したら、方法はステップ１０６０からステップ１０７０に移って、方法は１ずつ（ｉ）を増やす。いくつかの実施例では、ステップ１０７０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ１０７０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。出願人の方法はステップ１０７０からステップ１０２０に移って、本明細書で説明するとおりに続く。
【００７７】
出願人の方法がステップ１０６０で（ｉ）が（Ｎ）と等しいと判定したら、方法はステップ１０６０からステップ１０８０に移って、方法はデータ・キャッシュまたはＲＡＭ１５４に書き込まれた利用できる誤り訂正符号化データのセットを使って、利用できない誤り訂正符号化データのセットを復元する。いくつかの実施例では、ステップ１０８０は、上記説明し図８および図９に示したように、最小ハミング距離に基づいて、パーシャル・レスポンス最尤（「ＰＲＭＬ」）アルゴリズムを使用するステップを有する。いくつかの実施例では、ステップ１０８０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ１０８０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。
【００７８】
出願人の方法はステップ１０８０からステップ１０９０に移って、方法は、ステップ１０４０で読み込んだ一または複数の誤り訂正符号化データセットを、任意でステップ１０８０で生成した一または複数の復元誤り訂正符号化データセットと組み合わせて、使用して、ステップ１０１０で要求される情報を生成する。いくつかの実施例では、ステップ１０９０を記憶コントローラ１３１（図１）などの記憶コントローラで行う。いくつかの実施例では、ステップ１０９０を記憶コントローラ内に配設されるプロセッサ１４０（図１）などのプロセッサで行う。
【００７９】
出願人の方法はステップ１０９０からステップ１０９５に移って、方法はステップ１０９０の情報をステップ１０１０の要求者に返す。いくつかの実施例では、出願人の方法はステップ１０９５でステップ１０９０の情報を、一または複数のホスト・コンピュータ１０１、１０３、１０５、１０７および１０９もしくはそのいずれか（すべて図１）などの一または複数のホスト・コンピュータに提供する。出願人の方法は追加で、誤り訂正符号化データの欠損したセットの読み込みを試行した場所に書き込むステップを含んでもよく、または誤り訂正符号化データの欠損したセットを新たな場所に書き込んで、メタデータを新たな場所で更新してもよい。
【００８０】
いくつかの実施例では、図１０および図１１もしくは図１０または図１１に挙げる個々のステップを組み合わせても、省いても、または順番を変えてもよい。
【００８１】
いくつかの実施例では、出願人の発明は命令常駐メモリ（ｉｎｓｔｒｕｃｔｉｏｎｓ  ｒｅｓｉｄｉｎｇ  ｍｅｍｏｒｙ）１５０（図１）を含み、そこでこれら命令をプロセッサ１４０（図１）などのプロセッサで実行して、図１０に挙げるステップ９１０、９２０、９３０、９４０、９５０、９６０、９７０および９８０もしくはそのいずれか一以上のステップ、並びに図１１で挙げるステップ１０１０、１０２０、１０３０、１０４０、１０５０、１０６０、１０７０、１０８０、１０９０、および１０９５もしくはそのいずれか一以上のステップ、あるいは図１０に挙げるステップ９１０、９２０、９３０、９４０、９５０、９６０、９７０および９８０もしくはそのいずれか一以上のステップ、または図１１で挙げるステップ１０１０、１０２０、１０３０、１０４０、１０５０、１０６０、１０７０、１０８０、１０９０、および１０９５もしくはそのいずれか一以上のステップを行う。
【００８２】
別の実施例では、出願人の発明は何か他のコンピュータ・プログラムに常駐する命令を含み、そこで命令をシステム１００の外部のコンピュータまたはシステム１００の内部のコンピュータで実行して、図１０に挙げるステップ９１０、９２０、９３０、９４０、９５０、９６０、９７０および９８０もしくはそのいずれか一以上のステップ、並びに図１０で挙げるステップ１０１０、１０２０、１０３０、１０４０、１０５０、１０６０、１０７０、１０８０、１０９０、および１０９５もしくはそのいずれか一以上のステップ、あるいは図１０に挙げるステップ９１０、９２０、９３０、９４０、９５０、９６０、９７０および９８０もしくはそのいずれか一以上のステップ、または図１１で挙げるステップ１０１０、１０２０、１０３０、１０４０、１０５０、１０６０、１０７０、１０８０、１０９０、および１０９５もしくはそのいずれか一以上のステップを行う。いずれの場合も、命令は、例えば、磁気情報記憶媒体、光学情報記憶媒体、電子情報記憶媒体、およびその種の他のものなどを有する情報記憶媒体で符号化できる。「電子記憶媒体」で、出願人は、例えばＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＰＲＯＭ、コンパクト・フラッシュ、スマートメディア、およびその種の他のものなどのデバイスを表す。
【００８３】
本発明の好適な実施例を詳細に説明してきたが、以下の請求項に記載する本発明の範囲を逸脱することなく、当業者にはこれら実施例の変更および一部改造が考えられることは明らかであろう。
【００８４】
本発明は図面と考え合わせて以下の詳細な説明を読めばよりよく理解できるであろう。図面において、同じ参照記号は同じ要素を指すために使用する。
【図面の簡単な説明】
【００８５】
【図１】出願人のデータ記憶システムの一実施例を図示するブロック図である。
【図２】出願人の畳み込み符号化アルゴリズムの一実施例で使用する８つの状態を挙げた表であり、「情報」と呼ばれる８つのオリジナルのビットの各々が２値のうちの一方を有する。
【図３】図２で挙げた８つの状態を図示する状態遷移図である。
【図４】図２および図３の畳み込み符号化アルゴリズムを実装する符号化回路を図示する。
【図５】図４の符号器回路が生成する４つの誤り訂正符号化ビットを符号化するデータ記憶媒体を示す表である。
【図６】図４の符号器回路が生成し、図５のデータ記憶媒体に保存する誤り訂正符号化データビットを復号化するために使用するＰＲＭＬ方式のトレリスを図示する。
【図７】オリジナルのデータの各ビットにつき４つの誤り訂正符号化データビットを生成する例を示す表である。
【図８】利用できる誤り訂正符号化データビットを使って欠損した誤り訂正符号化データビットを復元する出願人の方法の一実施例を図示する表である。
【図９】図８に挙げる方法の実装に使うＰＲＭＬ方式のトレリスを図示する。
【図１０】出願人の方法のうち、複数の誤り訂正符号化データセットを生成するステップと、それを保存するステップを要約したフローチャートである。
【図１１】出願人の方法のうち、複数の誤り訂正符号化データセットを読み出すステップと、任意で利用できる誤り訂正符号化データビットを使って利用できない誤り訂正符号化データビットを復元するステップを要約したフローチャートである。
【図１２】ホログラフィック・データ記憶媒体でデータを符号化する第１装置の第１実施例の斜視図である。
【図１３】図１２の第１装置の第２実施例の斜視図である。
【図１４】ホログラフィック・データ記憶媒体でデータを符号化する第２装置の第１実施例を図示するブロック図である。
【図１５】図１４の装置の斜視図である。
【図１６】図１４および図１５の装置の第２実施例の斜視図である。
【図１７】符号化ホログラフィック・データ記憶媒体からデータを読み出す第１装置の斜視図である。
【図１８】符号化ホログラフィック・データ記憶媒体からデータを読み出す第２装置の斜視図である。
【図１】
2008171537.tif 000003
【図２】
2008171537.tif 000004
【図３】
2008171537.tif 000005
【図４】
2008171537.tif 000006
【図５】
2008171537.tif 000007
【図６】
2008171537.tif 000008
【図７】
2008171537.tif 000009
【図８】
2008171537.tif 000010
【図９】
2008171537.tif 000011
【図１０】
2008171537.tif 000012
【図１１】
2008171537.tif 000013
【図１２】
2008171537.tif 000014
【図１３】
2008171537.tif 000015
【図１４】
2008171537.tif 000016
【図１５】
2008171537.tif 000017
【図１６】
2008171537.tif 000018
【図１７】
2008171537.tif 000019
【図１８】
2008171537.tif 000020