(57)【要約】  説明される例において、ライトワンスメモリ（ＷＯＭ）コードのエラー訂正コード（ＥＣＣ）管理のためのシステムが、ＷＯＭ（書き込み専用メモリ）デバイスにストアされるべきデータワードを送るように配置されるホストプロセッサを含む。ＷＯＭコントローラ及びＥＣＣコントローラによる処理のために、ホストインタフェースが第１のデータワードを受け取る（７１０）ように配置される。ＷＯＭコントローラは、第１のデータワードの元のシンボルに応答し第１のＷＯＭ符号化ワードを生成する（７２０）ためであり、ＥＣＣコントローラは、第１のデータワードの元のシンボルに応答しＥＣＣビットの第１のセットを生成する（７３０）ためのものである。メモリデバイスインタフェースが、第１のデータワードに関連付けられたメモリアドレスに従って第１のＷＯＭ符号化ワードとＥＣＣビットの第１のセットとをＷＯＭデバイスに書き込む（７４０）ためのものである。
2018520410.tif 000002
【特許請求の範囲】
【請求項１】
回路であって、
第１のデータワードを受け取るように動作可能なホストインタフェースであって、前記第１のデータワードが、少なくとも２ビットとして符号化される少なくとも１つの元のシンボルを含み、前記第１のデータワードがメモリアドレスに関連付けられる、前記ホストインタフェースと、
前記第１のデータワードの前記元のシンボルに応答して、第１のＷＯＭ（書き込み専用メモリ）符号化ワードを生成するためのＷＯＭコントローラ、
前記第１のデータワードの前記元のシンボルに応答して、ＥＣＣビットの第１のセットを生成するためのＥＣＣコントローラ、及び
前記第１のデータワードに関連付けられた前記メモリアドレスに従って、前記第１のＷＯＭ符号化ワードとＥＣＣビットの前記第１のセットとをＷＯＭデバイスに書き込むためのメモリデバイスインタフェース、
を含む、回路。
【請求項２】
請求項１に記載の回路であって、前記メモリデバイスインタフェースが、前記ＷＯＭデバイスのアドレスされたワードの選択されたビットのブロック初期化状態を変更することによって、前記第１のＷＯＭ符号化ワードを前記関連付けられたメモリアドレスに書き込むように動作可能であり、前記アドレスされたワードが、前記関連付けられたアドレスを用いてアドレスされる、回路。
【請求項３】
請求項２に記載の回路であって、前記ブロック初期化状態がブロック消去化状態である回路。
【請求項４】
請求項２に記載の回路であって、
前記ホストインタフェースが第２のデータワードを受け取るように動作可能であり、
前記第２のデータワードが、少なくとも２ビットとして符号化される少なくとも１つの元のシンボルを含み、
前記第２のデータワードが、前記第１のデータワードに関連付けられた前記メモリアドレスに関連付けられ、
前記ＷＯＭコントローラが、前記第２のデータワードの前記元のシンボルに応答して、第１のＷＯＭ符号化ワードを生成するように動作可能であり、
前記ＥＣＣコントローラが、前記第２のデータワードの前記元のシンボルに応答して、ＥＣＣビットの第２のセットを生成するように動作可能であり、
前記メモリデバイスインタフェースが、前記第１のデータワードに関連付けられた前記メモリアドレスに従って、前記第２のＷＯＭ符号化ワードとＥＣＣビットの前記第２のセットとを前記ＷＯＭデバイスに書き込むように動作可能であり、
前記ＷＯＭデバイスに書き込まれた前記第１のＷＯＭ符号化ワードが上書きされ、
ＥＣＣビットの前記第２のセットが、ＥＣＣビットの前記第１のセットをストアするために用いられる前記メモリセルとは異なるメモリセルに書き込まれる、
回路。
【請求項５】
請求項４に記載の回路であって、ＥＣＣビットの前記第１及び第２のセットが、前記ＷＯＭコントローラのＷＯＭ符号化とは異なる符号化を用いて書き込まれる、回路。
【請求項６】
請求項５に記載の回路であって、
前記ホストインタフェースが、前記第２のデータワードに対するリクエストを読み出すように動作可能であり、
前記メモリデバイスインタフェースが、前記第１のデータワードに関連付けられた前記メモリアドレスに従って、前記ＷＯＭデバイスから、前記第２のＷＯＭ符号化ワードとＥＣＣビットの前記第２のセットとを読み出すように動作可能であり、
前記ＷＯＭコントローラが、前記ストアされた第２のＷＯＭ符号化ワードに応答して、第１のＷＯＭ復号ワードを生成するように動作可能であり、
前記ＥＣＣコントローラが、前記ＷＯＭデバイスから読み出された前記第１のＷＯＭ復号ワードとＥＣＣビットの前記第２のセットとを評価するように動作可能であり、前記ＥＣＣコントローラが、前記評価に応答して訂正活動を実行するように動作可能である、
回路。
【請求項７】
請求項１に記載の回路であって、前記ＷＯＭコントローラが、ＥＣＣビットの前記第１のセットをＷＯＭ符号化するように動作可能であり、前記メモリデバイスインタフェースが、ＥＣＣビットの前記第１のセットを、ＷＯＭ符号化されたＥＣＣビットとして前記ＷＯＭデバイスに書き込むように動作可能である、回路。
【請求項８】
請求項７に記載の回路であって、
前記ＷＯＭコントローラが、第２の受け取られたデータワードの元のシンボルに応答して生成されるＥＣＣビットの第２のセットを、ＷＯＭ符号化するように動作可能であり、
前記メモリデバイスインタフェースが、前記ＷＯＭデバイスにおいて、前記ＷＯＭ符号化されたＥＣＣビットの第１のセットを、ＷＯＭ符号化されたＥＣＣビットの前記第２のセットで上書きするように動作可能である、
回路。
【請求項９】
請求項８に記載の回路であって、前記ＥＣＣコントローラが、リードソロモン（ＲＳ）符号化方式に従って、ＥＣＣビットの前記第１及び第２のセットを符号化するように動作可能である、回路。
【請求項１０】
請求項８に記載の回路であって、前記ＥＣＣコントローラが、ＢＣＨ（Bose-Chaudhuri-Hocquenghem）符号化方式に従って、ＥＣＣビットの前記第１及び第２のセットを符号化するように動作可能である、回路。
【請求項１１】
請求項１に記載の回路であって、
前記ＷＯＭコントローラの前記ＷＯＭ符号化方式が、一度書き込まれたＷＯＭストアされたデータを上書きするように動作可能であり、
前記ＥＣＣコントローラの前記ＥＣＣ符号化方式が、前記ＷＯＭストアされたデータにおける少なくとも１つのビットエラーを訂正するように動作可能であり、
前記ＷＯＭストアされたデータのビットの総数が、前記元のシンボルのビットの数にＥＣＣビットの前記第１のセットのビット数を加えたものより５０パーセント多いビットを超えない、
システム。
【請求項１２】
システムであって、
第１のデータワードを送るように動作可能なホストプロセッサであり、前記第１のデータワードがメモリアドレスに関連付けられる、前記ホストプロセッサ、
前記ホストプロセッサに通信可能に結合され、ブロック初期化状態に従って、ブロック初期化されるように動作可能な、ＷＯＭ（書き込み専用メモリ）デバイス、
前記第１のデータワードを受け取るように動作可能なホストインタフェース、
前記第１のデータワードの元のシンボルに応答して、第１のＷＯＭ符号化ワードを生成するためのＷＯＭコントローラ、
前記第１のデータワードの前記元のシンボルに応答して、ＥＣＣビットの第１のセットを生成するためのＥＣＣコントローラ、及び
前記第１のデータワードに関連付けられた前記メモリアドレスに従って、前記第１のＷＯＭ符号化ワードとＥＣＣビットの前記第１のセットとを、前記ＷＯＭデバイスに書き込むためのメモリデバイスインタフェース、
を含む、システム。
【請求項１３】
請求項１２に記載のシステムであって、前記第１のデータワードの前記元のシンボルが、少なくとも２ビットとして符号化される、システム。
【請求項１４】
請求項１２に記載のシステムであって、
前記ホストインタフェースが、第２のデータワードを受け取るように動作可能であり、
前記第２のデータワードが、少なくとも２ビットとして符号化される少なくとも１つの元のシンボルを含み、前記第２のデータワードが、前記第１のデータワードに関連付けられた前記メモリアドレスに関連付けられ、
前記ＷＯＭコントローラが、前記第２のデータワードの前記元のシンボルに応答して、第１のＷＯＭ符号化ワードを生成するように動作可能であり、
前記ＥＣＣコントローラが、前記第２のデータワードの前記元のシンボルに応答して、ＥＣＣビットの第２のセットを生成するように動作可能であり、
前記メモリデバイスインタフェースが、前記第１のデータワードに関連付けられた前記メモリアドレスに従って、前記第２のＷＯＭ符号化ワードとＥＣＣビットの前記第２のセットとを前記ＷＯＭデバイスに書き込むように動作可能であり、
前記ＷＯＭデバイスに書き込まれた前記第１のＷＯＭ符号化ワードが上書きされ、
ＥＣＣビットの前記第２のセットが、ＥＣＣビットの前記第１のセットをストアするために用いられる前記メモリセルとは異なるメモリセルに書き込まれる、
システム。
【請求項１５】
請求項１２に記載のシステムであって、前記ＷＯＭコントローラが、ＥＣＣビットの前記第１のセットをＷＯＭ符号化するように動作可能であり、前記メモリデバイスインタフェースが、ＥＣＣビットの前記第１のセットを、ＷＯＭ符号化されたＥＣＣビットとして前記ＷＯＭデバイスに書き込むように動作可能である、システム。
【請求項１６】
請求項１５に記載のシステムであって、
前記ＷＯＭコントローラが、第２の受け取られたデータワードの元のシンボルに応答して生成されるＥＣＣビットの第２のセットを、ＷＯＭ符号化するように動作可能であり、
前記メモリデバイスインタフェースが、前記ＷＯＭデバイスにおける前記ＷＯＭ符号化されたＥＣＣビットの第１のセットを、前記ＷＯＭ符号化されたＥＣＣビットの第２のセットで、上書きするように動作可能である、
システム。
【請求項１７】
方法であって、
第１のデータワードを受け取ることであって、前記第１のデータワードが、少なくとも２ビットとして符号化される少なくとも１つの元のシンボルを含み、前記第１のデータワードがメモリアドレスに関連付けられること、
前記第１のデータワードの前記元のシンボルに応答して、第１のＷＯＭ（書き込み専用メモリ）符号化されたワードを生成すること、
前記第１のデータワードの前記元のシンボルに応答して、ＥＣＣビットの第１のセットを生成すること、及び
前記第１のデータワードに関連付けられた前記メモリアドレスに従って、前記第１のＷＯＭ符号化ワードとＥＣＣビットの前記第１のセットとをＷＯＭデバイスに書き込むこと、
を含む、方法。
【請求項１８】
請求項１７に記載の方法であって、前記ＷＯＭデバイスのアドレスされたワードの選択されたビットのブロック初期化状態を変更することによって、前記第１のＷＯＭ符号化ワードが、前記関連付けられたメモリアドレスに書き込まれ、前記アドレスされたワードが、前記関連付けられたアドレスを用いてアドレスされる、方法。
【請求項１９】
請求項１８に記載の方法であって、
第２のデータワードを受け取ることであって、前記第２のデータワードが少なくとも２ビットとして符号化される少なくとも１つの元のシンボルを含み、前記第２のデータワードが、前記第１のデータワードに関連付けられた前記メモリアドレスに関連付けられること、
前記第２のデータワードの前記元のシンボルに応答して、第１のＷＯＭ符号化ワードを生成すること、
前記第２のデータワードの前記元のシンボルに応答して、ＥＣＣビットの第２のセットを生成すること、及び
前記第１のデータワードに関連付けられた前記メモリアドレスに従って、前記第２のＷＯＭ符号化ワードとＥＣＣビットの前記第２のセットとを前記ＷＯＭデバイスに書き込むこと、
を含み、
前記ＷＯＭデバイスに書き込まれた前記第１のＷＯＭ符号化ワードが上書きされ、ＥＣＣビットの前記第２のセットが、ＥＣＣビットの前記第１のセットをストアするために用いられる前記メモリセルとは異なるメモリセルに書き込まれる、
方法。
【請求項２０】
請求項１７に記載の方法であって、ＥＣＣビットの前記第１のセットをＷＯＭ符号化すること、及びＥＣＣビットの前記第１のセットをＷＯＭ符号化されたＥＣＣビットとして前記ＷＯＭデバイスに書き込むことを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
コンピュータシステムは、メモリデバイスにおいてデータのリトリーブ、処理、及びストアを行うように動作可能なプロセッサを含む。コンピュータシステムにおいて用いられるメモリデバイスは、異なる種類のメモリデバイスを含み、異なるタイプのメモリデバイスは、典型的に、異なる性能及び動作特性を有する。特定のシステムにおいて用いられるメモリデバイスのタイプは、典型的に、コンピュータシステムの特定の用途の要件に従って選択される。例えば、幾つかのシステム設計は、不揮発性メモリロケーションにデータを書き込む及び不揮発性メモリロケーションからデータを読み出す能力を要する。しかしながら、幾つかのメモリデバイス解決策（電気的に消去可能なリードオンリーメモリ等）は、コストの増大及び性能特性の低下の理由で、幾つかの用途に適切ではない。
【発明の概要】
【０００２】
上述した問題は、ライトワンスメモリ（ＷＯＭ）コードのエラー訂正コード（ＥＣＣ）管理のためのシステムの、説明される例によって解決され得る。説明される例において、ＷＯＭ（書き込み専用メモリ）デバイスにストアされるべきデータワードを送るためにホストプロセッサが配置される。ＷＯＭコントローラ及びＥＣＣコントローラによる処理のために、第１のデータワードを受け取るようにホストインタフェースが配置される。ＷＯＭコントローラは、第１のデータワードの元のシンボルに応答して、第１のＷＯＭ符号化ワードを生成するためのものであり、ＥＣＣコントローラは、第１のデータワードの元のシンボルに応答して、ＥＣＣビットの第１のセットを生成するためのものである。メモリデバイスインタフェースが、第１のデータワードに関連付けられたメモリアドレスに従って、第１のＷＯＭ符号化ワード及びＥＣＣビットの第１のセットをＷＯＭデバイスに書き込むためのものである。
【図面の簡単な説明】
【０００３】
【図１】実施形態に従った例示のコンピュータシステムを示す。
【０００４】
【図２】例示の実施形態に従った、ＥＣＣ管理されたＷＯＭを含む処理システムのブロック図である。
【０００５】
【図３】例示のメモリシステムにおけるシンボルレベルのＷＯＭ符号化を図示する。
【０００６】
【図４】例示の実施形態に従った、例示の２段階のリードソロモン及びＷＯＭコーディング方式のコーディング図である。
【０００７】
【図５】例示の実施形態に従った、例示の２段階のＢＣＨコーディング及びＷＯＭコーディング方式のコーディング図である。
【０００８】
【図６】例示の実施形態に従った、例示の２段階のＷＯＭコーディング及びＥＣＣコーディング方式のコーディング図である。
【０００９】
【図７】例示の実施形態に従った例示のプロセスフローチャートである。
【発明を実施するための形態】
【００１０】
様々な名称が構成要素又はシステムを言及し得る。システムが更に別のシステムのサブシステムであり得る。第１のデバイスが第２のデバイスに結合する場合、その接続は、直接的な電気的接続を介してなされてもよく、或いは、他のデバイス及び接続を介する間接的な電気的接続を介してなされてもよい。
【００１１】
図１は、例示の実施形態に従った例示のコンピューティングシステム１００を示す。例えば、コンピューティングシステム１００は、コンピュータ、電子制御「ボックス」又はディスプレイ、通信機器（トランスミッタを含む）、又は無線周波数信号を生成するように配置される他の任意の種類の電子システム等の電子システム１２９であるか、或いはそのような電子システム１２９に組み込まれる。
【００１２】
幾つかの実施形態において、コンピューティングシステム１００は、メガセル又はシステムオンチップ（ＳｏＣ）を含み、メガセル又はＳｏＣは、ＣＰＵ１１２（中央処理装置）、ストレージ１１４（ランダムアクセスメモリ（ＲＡＭ）等）、及び電源１１０等の制御論理を含む。例えば、ＣＰＵ１１２は、ＣＩＳＣタイプ（複合命令セットコンピュータ）ＣＰＵ、ＲＩＳＣタイプ（縮小命令セットコンピュータ）ＣＰＵ、ＭＣＵタイプ（マイクロコントローラユニット）、又はデジタル信号プロセッサ（ＤＳＰ）であり得る。ストレージ１１４（これは、オンプロセッサキャッシュ、オフプロセッサキャッシュ、ＲＡＭ、フラッシュメモリ、又はディスクストレージ等のメモリであり得る）は、ＣＰＵ１１２によって実行されると、コンピューティングシステム１００に関連付けられる任意の適切な機能を実施する１つ又は複数のソフトウェアアプリケーション１３０（埋め込まれたアプリケーション等）をストアする。
【００１３】
ＣＰＵ１１２は、ストレージ１１４から頻繁にアクセスされる情報をストアするメモリ及び論理を含む。コンピューティングシステム１００は、しばしば、ＵＩ（ユーザインタフェース）１１６を用いてユーザによって制御され、ＵＩ  １１６は、ソフトウェアアプリケーション１３０の実行の間、ユーザに出力を提供し、ユーザから入力を受け取る。出力は、ディスプレイ１１８、表示灯、スピーカ、振動、及びその他の可能な様式を用いて提供される。入力は、音声及び／又はビデオ入力（例えば、音声又は画像認識を用いる）、及び、キーパッド、スイッチ、近接検出器、ジャイロ、及び加速度計等の電気的及び／又は機械的デバイスを用いて受け取られる。ＣＰＵ１１２は、Ｉ／Ｏ（入力／出力）ポート１２８に結合され、Ｉ／Ｏポート１２８は、ネットワーク化されたデバイス１３１から入力を受け取るように（及び／又はネットワーク化されたデバイス１３１へ出力を提供するように）構成されるインタフェースを提供する。ネットワーク化されたデバイス１３１は、コンピューティングシステム１００とのポイント間通信及び／又はネットワーク化された通信が可能な、任意のデバイスを含み得る。コンピューティングシステム１００はまた、有形、非一時的媒体（フラッシュメモリ等）及び／又は有線又は無線媒体を含む、周辺機器及び／又はコンピューティングデバイスに結合され得る。これら及び他の入力及び出力デバイスは、無線又は有線接続を用いて外部デバイスによってコンピューティングシステム１００に選択的に結合される。例えば、ストレージ１１４は、ネットワーク化されたデバイス１３１によってアクセスされ得る。
【００１４】
ＣＰＵ１１２は、Ｉ／Ｏ（入力／出力）ポート１２８に結合され、Ｉ／Ｏポート１２８は、有形（非一時的等）媒体（フラッシュメモリ等）及び／又は有線又は無線媒体（ジョイントテストアクショングループ（ＪＴＡＧ）インタフェース等）を含む、周辺機器及び／又はコンピューティングデバイス１３１から入力を受け取る（及び／又はそれらに出力を提供する）ように構成されるインタフェースを提供する。これら及び他の入力及び出力デバイスは、無線又は有線接続を用いて外部デバイスによってコンピューティングシステム１００に選択的に結合される。ＣＰＵ１１２、ストレージ１１４、及び電源１１０は、外部電源（図示されない）に結合され得るか又はローカル電源（バッテリ、太陽電池、オルタネータ、誘導磁界、燃料電池、又はキャパシタ等）に結合され得る。
【００１５】
コンピューティングシステム１００はメモリ１３８を含み、メモリ１３８は、相対的に迅速なメモリアクセスに対して適切であり、通常はソリッドステートメモリデバイスを用いて形成される。そのようなソリッドステートメモリデバイスは、ＥＣＣ管理された（電子的訂正コード管理された）ライトワンスメモリ（ＷＯＭ）１４０を含む。ＷＯＭ  １４０は、例えば破棄又は消去される前に、通常一回（又は相対的に少ない回数）書き込まれるメモリである。ＷＯＭコードを用いることによって、或るシステムが、不揮発性メモリにデータを書き込む又は不揮発性メモリからデータを読み出すことが可能になる。しかしながら、ＷＯＭアプリケーションにおけるＥＣＣの使用は、問題（図３に関連して説明するようなもの等）がある。
【００１６】
ＥＣＣ管理されたＷＯＭ  １４０書き込みアクセスは、通常、ＥＣＣ管理されたＷＯＭ  １４０消去サイクル（存在する場合）より高速である。一実施形態において、書き込みアクセスは、ＥＣＣ管理されたＷＯＭ  １４０におけるビット位置を、消去状態から書き込み状態（例えば「０」から「１」）に変更することができる。消去状態は、通常、選択された技術に依存し、従って「０」又は「１」のいずれかであり得、書き込み状態は、通常、消去状態の反対である。幾つかのメモリデバイスは、単一メモリセルに情報の複数ビットをストアし得、その場合、書き込まれたビットは、消去状態の反対の状態を有する情報の複数ビットの１つを含む。
【００１７】
ＥＣＣ管理されたＷＯＭ  １４０は、ＷＯＭに効率よく書き込むためのＷＯＭコードを用いて書き込まれ、その結果、ＷＯＭに対する書き込みは、消去無しに、複数回まで書き込まれ得る。ＥＣＣ管理されたＷＯＭ  １４０は、リプログラミング機能が限定され及び／又は書き込み／消去サイクルの回数が増加された、コスト効率の高い不揮発性メモリ（ＮＶＭ）を提供するのに有用である（例えば、従来のＮＶＭ解決策と比較した場合）。
【００１８】
図２は、例示の実施形態に従った、ＥＣＣ管理されたＷＯＭを含む処理システムのブロック図である。概して、処理システム２００が、ＭＣＵ２０４及びメモリコントローラ２１０を含む。ＭＣＵ２０４及びメモリコントローラ２１０は、通常、共通基板２０２上に配置される。メモリコントローラ２１０は、ＭＣＵ２０４に通信可能に結合され、（少なくとも）ＥＣＣ管理されたＷＯＭ  １４０、並びに、ＲＡＭ２９２、ＰＲＯＭ（プログラマブルリードオンリーメモリ）２９４、及び任意選択的なＥＥＰＲＯＭ（電気的消去可能リードオンリーメモリ）２９６（これは基板２０２とは異なる基板を用いて任意選択的に形成される）等のメモリデバイスに対する、メモリデバイスへのメモリアクセスを管理するように動作可能である。
【００１９】
動作において、メモリコントローラ２１０によってサービスされるメモリアクセスには、書き込み動作及び読み出し動作が含まれる。一般的に、書き込み動作のデータは、図２に例示されるように、トップからボトム方向に伝送され、読み出し動作のデータは、図２に例示されるように、ボトムからトップ方向に伝送される。従って、ホストインタフェース２２０は、データを書き込むメモリデバイス又はデータを読み出すメモリデバイスを（例えば、メモリアクセスコマンドと共に供給されるシステムアドレスに応答して）選択するように配置される。
【００２０】
メモリコントローラ２１０は、ＥＣＣマネージャ２５０等のＥＣＣコントローラを含む。書き込み動作の間、ＥＣＣマネージャ２５０は、ＥＣＣ管理されたＷＯＭ  １４０に書き込むためのデータにエラー訂正コードを適用するように動作可能である。読み出し動作の間、ＥＣＣマネージャ２５０は、リトリーブされたデータを評価するように動作可能であり、指示がある場合、ＥＣＣ−コントローラは、評価に応答して、訂正活動を実行するように動作可能である。例えば、訂正活動は、ＷＯＭマネージャ２６０を介して、ＥＣＣ管理されたＷＯＭ  １４０から読み出されたＥＣＣ符号化されたデータを用いて、リトリーブされたデータを訂正するように動作可能である。
【００２１】
メモリコントローラ２１０は、ＷＯＭマネージャ２６０を含む。書き込み動作の間、ＷＯＭマネージャ２６０は、ＷＯＭ（及びＥＣＣ）符号化されたデータをＥＣＣ管理されたＷＯＭ  １４０に書き込むために、ＷＯＭコードを用いて、データ（ＥＣＣ符号化を用いてＥＣＣマネージャ２６０によって符号化されたデータ等）を符号化するように動作可能である。読み出し動作の間、ＷＯＭマネージャ２６０は、ＥＣＣ管理されたＷＯＭ  １４０からのＷＯＭ符号化されたデータを復号するように動作可能である。ＷＯＭ符号化されたデータが復号された後、復号されたデータは、ＥＣＣマネージャ２５０に伝送され、ＥＣＣ管理されたＷＯＭ  １４０に書き込まれたデータを元々符号化するために用いられたＥＣＣ符号化に従って、更に復号される。
【００２２】
メモリコントローラ２１０は、メモリデバイスインタフェース２７０を含む。書き込み動作の間、メモリデバイスインタフェース２７０は、符号化されたデータ（ＥＣＣ符号化を用いてＥＣＣマネージャ２６０によって符号化されたデータ、及びＷＯＭコーディングを用いてＷＯＭマネージャ２６０によって符号化されたデータ等）をＥＣＣ管理されたＷＯＭ  １４０に書き込むように動作可能である。読み出し動作の間、メモリデバイスインタフェース２７０は、ＥＣＣ管理されたＷＯＭ  １４０から、符号化されたデータを読み出すように動作可能である。メモリデバイスインタフェース２７０はまた、ＥＣＣ管理されたＷＯＭ  １４０上でブロック初期化ルーチン（例えば、ＥＣＣ管理されたＷＯＭ  １４０をブロック消去し、その結果、アドレスされたメモリロケーションが全て論理ゼロ状態に消去される）を実施するように動作可能である。通常は、ブロック初期化ルーチンは、ＥＣＣ管理されたＷＯＭ  １４０に対する通常の読み出し又は書き込みサイクルに必要とされる実行時間よりも多くの実行時間を必要とする。
【００２３】
他の実施形態（図６を参照して下記に説明されるもの等）において、ＥＣＣマネージャ２５０がＷＯＭ符号化されたデータを符号化するように、ＷＯＭマネージャ２６０はペイロードデータをＷＯＭ符号化されたデータとして符号化するように動作可能である。同様に、ＷＯＭマネージャ２６０が、元々符号化されたペイロードデータをリトリーブするためにＷＯＭ符号化されたデータを復号するように、ＥＣＣマネージャ２５０は、メモリからリトリーブされたＥＣＣ符号化されたデータを復号するように動作可能である。
【００２４】
ＷＯＭ符号化が、ｎビット（２に等しいか又はそれより大きい任意の整数ビット等）のシンボルを用いて達成され得る。シンボルは限定された回数、ＷＯＭメモリに書き込まれる。例えば、下記の表１は、特定のメモリロケーションにおいて、ＷＯＭに２回（例えば、メモリ削除が要求される前に）書き込まれ得る２ビットシンボルに対するＷＯＭ符号化を示す。
【表１】
2018520410.tif 000003
【００２５】
表１の各行は、３ビットフィールドにＷＯＭ符号化された２ビットシンボル（ｍＷＯＭ＝２、ここで、ｍＷＯＭはシンボル毎のビット数である）を示す。上述したように、ｍＷＯＭに対する値は２に等しいか又はそれより大きい任意の整数であり得る。ＷＯＭ符号化されたデータが１回目にＷＯＭメモリに書き込まれると、符号化されたデータに１ビット（例えば、最上位）が設定される。ＷＯＭ符号化されたデータが２回目にＷＯＭメモリに書き込まれると、ＷＯＭメモリは、通常、新しいデータが先にストアされたデータと異なるときのみ更新される。
【００２６】
例えば、第１の書き込みの後のＷＯＭメモリが「０００」であり、第２の書き込みのための新しいデータが「００」である場合、第２の書き込みの後のＷＯＭメモリは「０００」のままである。ＷＯＭが、（例えば、第１の書き込みの間に書き込まれた値から変更された値を用いて）２回目に書き込まれた場合、（３ビットの内の）少なくとも２ビットが、符号化されたデータに設定される。従って、ＷＯＭマネージャ２６０は、（各メモリロケーションに対して別個のカウンタに依存する必要なく）ロケーションにストアされたデータを読み出すことによって、（ＷＯＭ符号化されたシンボルをストアするための）ＷＯＭロケーションに対する書き込みの数を判定することができる。
【００２７】
図３は、例示のメモリシステムにおけるシンボルレベルのＷＯＭ符号化を図示する。概して、メモリシステム３００が、シンボルスペース３０２、及びＷＯＭコード符号化されたメモリ３０４を含む。シンボルスペース３０２は、「００」等の値を持つ２ビットシンボル３１０を含む。
【００２８】
動作３１２において、シンボル３１０は、符号化されたシンボル３２０を生成するために、表１に従って符号化される。本明細書中に説明される原理及び技術は、ｎビットシンボルに有用であり、２ビットのみのシンボルに限定されない。ＷＯＭコード符号化されたメモリ３０４は、符号化されたシンボル３２０をストアするための３ビット値（「０００」）３２０を含む（例えば、説明を簡略化するために、ＷＯＭコード符号化されたメモリ３０４に対してデフォルトの削除されたビット値「０」が用いられる）。ＷＯＭコード符号化されたメモリ３０４は、データ損失を引き起こし得るビットエラーに陥りやすい。
【００２９】
動作３２２において、メモリロケーション３２０の最下位ビットにおいてエラーが発生する。符号化されたデータにおいてエラー訂正コードの使用（又は不使用）にもかかわらず、符号化されたデータにおいて単一又は複数ビットエラーの可能性がある。即ち、エラー訂正コードの強度は、符号化されたデータにおけるエラーが、復号されたデータにおいて現れる度合いを決定する。したがって、３ビット値３２０は、（例えば、ＷＯＭコード符号化されたメモリ３０４において）１ビットエラーを表す３ビット値（「００１」）３３０に誤って変更される。
【００３０】
動作３３２において、３ビット値（「００１」）３３０は、読み出され、表１に従って復号され、その結果、２ビットシンボル３４０（復号された３ビット値３３０を表す）は値「１１」を持つ。この例において、ＷＯＭコード符号化されたメモリ３０４において１ビットエラーのみが発生したにも関わらず、値「１」は、シンボルにおける２ビットエラーを表す。幾つかの例示のケースにおいて、ＷＯＭ符号化されたシンボルにおける１ビットエラーは、結果として、ＷＯＭシンボルの全てのビットにおけるエラーとなり得る。
【００３１】
例えば、本開示は２段階の連結コーディング方式を含み、２段階の連結コーディング方式は、ＷＯＭ符号化されたメモリデバイスにおいてストアされるデータのシンボルレベルの保護に対し、低い処理レイテンシ及び低減されたレイアウト要件を提供する。図４及び図５を参照して下記に説明されるように、２段階の連結コーディング方式は、電子的訂正コード（ＥＣＣ）保護されたペイロードデータを生成するために、ＥＣＣを用いてペイロードデータが符号化される第１段階、及びＥＣＣ保護されたペイロードデータが、ＷＯＭ符号化を用いて符号化される第２段階の２つの段階を含む。
【００３２】
図４は、例示の実施形態に従った、例示の２段階のリードソロモン及びＷＯＭコーディング方式のコーディング図である。概して、データフローチャート４００が、ワード４１０、ＥＣＣ符号化されたワード４２０、及びＷＯＭ符号化されたワード４３０（ＥＣＣ符号化を有する）を含む。ＥＣＣ符号化されたワード４２０のＥＣＣ符号化４８０は、ＷＯＭ符号化されたワード４３０のＷＯＭ符号化４９０内に維持（preserve）される。
【００３３】
ワード４１０は、複数の「ｋ」シンボルを含み、各シンボルは、シンボルフィールド４１２及び４１４等のシンボルフィールドにストアされる。そのような各シンボルフィールドは「ｎ」ビット（２ビット等）の長さである。ｎ＝２のとき、ｋ＝２（例えば４／２＝２）である。従って、ワード４１０は２つのシンボルを含み、各シンボルは、それぞれ、シンボルフィールド４１２及び４１４にストアされる。例えば、ワード４１０は、４ビットのデータを含み、それは、符号化されるべきペイロードデータの２シンボル（例えば、ｋ＝２に従う場合）を表す。様々な実施形態において、シンボルフィールドは、各グループが符号化されるべきシンボルを表す１又は複数ビットのグループを含む。従って、ワード４１０は、シンボルフィールド４１２（第１のシンボルを符号化するため）及びシンボルフィールド４１４（第２のシンボルを符号化するため）を含み、各シンボルフィールドは、符号化動作４０２において符号化される。図示されるように、シンボルフィールド４１２は値「１０」を含み、シンボルフィールド４１４は値「１１」を含む。
【００３４】
符号化動作４０２は第１段階動作であり、リードソロモンコード等のシンボルベースのエラー訂正コード方式を用いてワード４１０の（例えば、符号化されていない）シンボルフィールドを符号化するように動作可能である。リードソロモンコーディング方式において、パリティシンボルは、符号化されたワードにおいて、エラーを検出するため、及び任意選択的に訂正するために用いられる（訂正され得るエラーの数は、用いられるパリティシンボルの数に依存する）。各ＲＳ（リードソロモン）コードにおいて用いられるパリティシンボルの数は２×Ｔ（これは、合計で２×ｍＲＳ×Ｔビットである）により得られる。ここで、ｍＲＳは、符号化されるべき各シンボルのビット幅であり、Ｔは符号化されたシンボルにおける訂正可能なエラーの数である。各ＷＯＭコードに対するビットが同じＲＳシンボルにあることを確実にするために、ｍＲＳはｍＷＯＭの整数倍であるように選択される。
【００３５】
本明細書で説明される例において、説明の都合上、ｍＲＳ＝ｍＷＯＭが選択される。例示されるエラー訂正コード方式は、リトリーブされたＷＯＭ符号化されたワードにおいて、単一ビットエラーを訂正可能である（例えば、１つのエラー訂正が可能な（one-error correction-capable）ＥＣＣが、ＷＯＭ符号化においてカプセル化されている場合等）。カプセル化されたエラー訂正コードが複数のビットエラーを訂正できる他の実施形態も可能である（例えば、各ＷＯＭストアされたワードが、ＷＯＭストアされたワードにおいて、２つ又はそれ以上のエラーを訂正できる場合等）。
【００３６】
例えば、ｋ＝２シンボルを符号化するために、Ｔ＝ｌ訂正可能エラーを備えるＲＳコードが用いられるとき、符号化動作４０２が、ｋ＝２の個別のＲＳコード４２０を生成する。ＥＣＣ符号化されたワード４２０は、第１のＲＳコード（例えば、シンボルフィールド４１２の直接のコピーである）のためのシンボルフィールド４２２、及び第２のＲＳコードのためのシンボルフィールド４２６（例えば、シンボルフィールド４１４の直接のコピーである）を含む。パリティビット（チェックビット等）フィールド４２４は、上述したように、２×ｍＲＳ×Ｔ＝４に従って決定される長さを有する。従って、パリティフィールド４２４は、４ビット長のビットのセットであり、シンボルフィールド４２２を保護するために用いられる。同様に、パリティフィールド４２８は、４ビット長であり、シンボルフィールド４２６を保護するために用いられる。例示されるように、シンボルフィールド４２２は値「１０」を含み、パリティフィールド４２４は値「１０１０」（これはシンボルフィールド４２２の例示のＲＳ符号化である）を含み、シンボルフィールド４２６は値「１１」を含み、パリティフィールド４２８は値「１０１１」（これはシンボルフィールド４２６の例示のＲＳ符号化である）を含む。
【００３７】
符号化動作４０４は第２段階動作ＷＯＭ符号化動作（図３に関連して上述したもの等）であり、第１段階動作４０２の出力（例えば、これはＥＣＣ符号化されたワードである）をＷＯＭ符号化されたワードとして符号化するように動作可能である。例えば、符号化動作４０４は、ＥＣＣ符号化されたワード４２０を、ＷＯＭ符号化されたワード４３０として符号化する（例えば、それは、元のＥＣＣ符号化されたワード４２０の情報を維持する）。ＷＯＭ符号化されたワード４３０は、ＷＯＭフィールド４３２、４３４、４３６、及び４３８を含む。ＷＯＭフィールド４３２は、シンボルフィールド４２２に対するＷＯＭコードであり、ＷＯＭフィールド４３４は、シンボルフィールド４２４に対するＷＯＭコードであり、ＷＯＭフィールド４３６は、シンボルフィールド４２６に対するＷＯＭコードであり、ＷＯＭフィールド４３８は、シンボルフィールド４２８に対するＷＯＭコードである。例示されるように、ＷＯＭフィールド４３２は値「０１０」を含み、ＷＯＭフィールド４３４は値「０１０００１」を含み、ＷＯＭフィールド４３６は値「１００」を含み、ＷＯＭフィールド４３８は値「０００１００」を含む。
【００３８】
各ＷＯＭ符号化されたワードは、図３に関連して上述したように、各２ビットの符号化されるべきシンボルに対して３ビット（例えば、ＮＷＯＭ＝３の幅）の符号化方式を含む。上述したように、ＷＯＭ符号化は、ＷＯＭ符号化されたワード（ＷＯＭメモリにストアされたもの等）が複数回上書きされることを可能にし、その結果、相対的に緩慢な（且つ、ライフサイクルによって限定される（lifecycle-limited））ブロック初期化ルーチンの実行が、全て一括回避されない場合、軽減され得る。ブロック初期化ルーチンは、ブロック消去動作（不揮発性メモリブロックに全て「ゼロ」を書き込む）又はブロック事前設定動作（メモリの不揮発性ブロックに全て「１」を書き込む）等のルーチンを含む。通常、ブロック動作のタイプは用いられるメモリセルの技術に従って決定される。
【００３９】
復号動作４０６は、ＷＯＭ復号動作（図３に関連して上述されたもの等）であり、ＥＣＣ符号化されたワードのＷＯＭ符号化されたワードを、（例えば、理想的には）元のＥＣＣ符号化されたワードとして復号するように動作可能である。例えば、動作４０６は、「第２段階」動作４０４の符号化を「反転させる」「第２段階」動作である。復号動作４０６は、ＷＯＭ符号化されたワード４３０内で符号化されたＥＣＣ符号化されたワード４２０を（例えば、理想的には）リトリーブするために、ＷＯＭ符号化されたワード４３０を復号する。パリティフィールド４２４及び４２８は、それぞれ、シンボルフィールド４２２及び４２６を認証（例えば、復元（restore））するために用いられる。
【００４０】
復号動作４０８は、ＥＣＣ符号化されたデータを認証されたデータとして復号するように動作可能なＥＣＣ復号動作である。例えば、動作４０８は、「第１段階」動作４０２の符号化を「反転させる」「第１段階」動作である。動作４０８において、パリティフィールド４２４及び４２８は、それぞれ、シンボルフィールド４２２及び４２６を認証（復元等）するために用いられる。１ビットエラーの事象において、ＥＣＣ符号化の強度（例えば、ＥＣＣのタイプ及び用いられる訂正ビットの数によって決定される）はそのエラーを訂正するのに充分であり、その結果、ワード４１０のデータが復元可能である。従って、ＷＯＭ符号化されたフィールドにおけるビットエラー（単一ビットエラー等）が、ストアされたＷＯＭ符号化されたワードがメモリからリトリーブされた後に訂正され得る。反対に、ＷＯＭ符号化されたワード（図３に関連して上述したように）における例示の１ビットエラーが、シンボルにおける２ビットエラーとなり得る。
【００４１】
図５は、例示の実施形態に従った、例示の２段階のＢＣＨコーディング及びＷＯＭコーディング方式のコーディング図である。概して、データフローチャート５００が、ワード５１０、ＥＣＣ符号化されたワード５２０、及びＷＯＭ符号化されたワード５３０（ＥＣＣ符号化を有する）を含む。ＥＣＣ符号化されたワード５２０のＥＣＣ符号化５８０は、ＷＯＭ符号化されたワード５３０のＷＯＭ符号化５９０内に維持される。
【００４２】
ワード５１０は複数の「ｋ」シンボルを含み、各シンボルは、シンボルフィールド５１２及び５１４等のシンボルフィールドにストアされる。従って、ワード５１０は２つのシンボルを含み、各シンボルは、それぞれ、シンボルフィールド５１２及び５１４にストアされる。シンボルフィールドは、符号化動作５０２において符号化される。例示されるように、シンボルフィールド５１２は値「１０」を含み、シンボルフィールドは値「１１」を含む。
【００４３】
符号化動作５０２は、第１段階動作であり、ＢＣＨコード等の非２進巡回エラー訂正コード方式を用いて、ワード５１０の（例えば、符号化されていない）シンボルフィールドを符号化するように動作可能である。ＢＣＨコーディング方式において、符号化されたワードにおけるエラーを検出するため、及び任意選択的に訂正するために、パリティシンボルが用いられる。ＷＯＭコードワードにおける各ビットエラーは、復号の後、最大ｍＷＯＭビットエラーになり得るので、各ＢＣＨコードは、Ｔ＝ｍＷＯＭビットのエラーを訂正することが充分可能である。従って、用いられるパリティシンボルの数は、ｍＷＯＭ（これは、ｍＢＣＨ×ｍＷＯＭビットを含む）によって得られ、ここで、ｍＢＣＨは、ＢＣＨ符号化されるべき各シンボルのビット幅であり、ｍＷＯＭは、シンボルフィールド５２２（これは２ビット幅である）の幅に等しい。符号化動作において、ｍＢＣＨ＝２のシンボル及びｍＷＯＭ＝２の訂正可能エラーが用いられるとき、各シンボルを保護するために４個のパリティビットが用いられる。
【００４４】
符号化動作５０２は、ＥＣＣ符号化されたワード５２０を生成する。ＥＣＣ符号化されたワード５２０は、第１のＢＣＨコードに対するシンボルフィールド５２２（例えば、シンボルフィールド５１２の直接のコピー）及び第２のＢＣＨコードに対するシンボルフィールド５２４（例えば、シンボルフィールド５１４の直接コピー）を含む。パリティビットフィールド５２６は、ｍＢＣＨ×ｍＷＯＭに従って決定される長さを有し、ここで、ｍＢＣＨ＝２、及びｍＷＯＭ＝２である。従って、パリティフィールド５２６は、４ビット長であり、シンボルフィールド５２２のシンボルを保護（及び、例えば、訂正）するために用いられる。同様に、パリティフィールド５２８は、４ビット長であり、シンボルフィールド５２４のシンボルを保護するために用いられる。例示されるように、シンボルフィールド５２２は値「１０」を含み、パリティフィールド５２６は値「０１１０」（これは、シンボルフィールド５２２のＢＣＨ符号化である）を含み、シンボルフィールド５２４は値「１１」を含み、パリティフィールド５２８は値「００１０」（これは、シンボルフィールド５２４のＢＣＨ符号化である）を含む。
【００４５】
符号化動作５０４は、第２段階動作ＷＯＭ符号化動作（図３に関連して上述したもの等）であり、第１段階動作５０２の出力（例えば、ＥＣＣ符号化されたワードである）をＷＯＭ符号化されたワードとして符号化するように動作可能である。例えば、符号化動作５０４は、ＥＣＣ符号化されたワード５２０を、ＷＯＭ符号化されたワード５３０として符号化する（例えば、元のＥＣＣ符号化されたワード５２０の情報を維持する）。ＷＯＭ符号化されたワード５３０は、ＷＯＭフィールド５３２、５３６、５３４、及び５３８を含む。ＷＯＭフィールド５３２は、シンボルフィールド５２２に対するＷＯＭコードであり、ＷＯＭフィールド５３６は、シンボルフィールド５２６に対するＷＯＭコードであり、ＷＯＭフィールド５３４は、シンボルフィールド５２４に対するＷＯＭコードであり、ＷＯＭフィールド５３８は、シンボルフィールド５２８に対するＷＯＭコードである。例示されるように、ＷＯＭフィールド５３２は値「０１０」を含み、ＷＯＭフィールド５３６は値「１０００１０」を含み、ＷＯＭフィールド５３４は値「１００」を含み、ＷＯＭフィールド５３８は値「００００１０」を含む。
【００４６】
各ＷＯＭ符号化されたワードは、図３に関連して上述したように、各２ビットの符号化されるべきシンボルに対する３ビット（例えば、ＮＷＯＭ＝３の幅）符号化方式を含む。パリティフィールド５２６及び５２８の幅は各々４ビットであり、そのため、パリティフィールド５２６及び５２８のＷＯＭ符号化された値の各々をストアするために６ビットフィールド（ＷＯＭフィールド５３６及び５３８等）が用いられる。
【００４７】
復号動作５０６は、ＷＯＭ復号動作（図３に関連して上述したもの等）であり、ＥＣＣ符号化されたワードのＷＯＭ符号化されたワードを、（例えば、理想的には）元のＥＣＣ符号化されたワードとして復号するように動作可能である。例えば、復号動作５０６は、ＷＯＭ符号化されたワード５３０内で符号化されたＥＣＣ符号化されたワード５２０を（例えば、理想的には）リトリーブするために、ＷＯＭ符号化されたワード５３０を復号する。
【００４８】
復号動作５０８は、ＥＣＣ符号化されたデータを、認証されたデータとして復号するように動作可能であるＥＣＣ復号動作である。例えば、パリティフィールド５２６及び５２８は、それぞれ、シンボルフィールド５２２及び５２４を認証（復元等）するために用いられる。１ビットエラーの事象において、ＥＣＣ符号化の強度（例えば、ＥＣＣのタイプ及び用いられる訂正ビットの数によって決定される）はそのエラーを訂正するために充分であり、その結果、ワード５１０のデータは復元可能である。
【００４９】
図６は、例示の実施形態に従った、例示の２段階のＷＯＭコーディング及びＥＣＣコーディング方式のコーディング図である。概して、データフローチャート６００が、ワード６１０、ＷＯＭ符号化されたワード６２０、及びＥＣＣ符号化されたワード６３０（ＥＣＣ符号化を有する）を含む。ＷＯＭ符号化されたワード６２０のＷＯＭ符号化６９０は、ＥＣＣ符号化されたワード６３０のＥＣＣ符号化６８０内に維持される。
【００５０】
ワード６１０は、複数の「ｋ」ＷＯＭシンボルを含み、各シンボルは、シンボルフィールド６１２及び６１４等のシンボルフィールドにストアされる。従って、ワード６１０は２つのシンボルを含み、各シンボルは、それぞれ、シンボルフィールド６１２及び６１４にストアされる。従って、ワード６１０は、（第１のシンボルを符号化するための）シンボルフィールド６１２、及び（第２のシンボルを符号化するための）シンボルフィールド６１４を含み、各シンボルフィールドは、符号化動作６０２において符号化される。例示されるように、シンボルフィールド６１２は値「１０」を含み、シンボルフィールド６１４は値「１１」を含む。
【００５１】
符号化動作６０２は、第１段階動作であり、ＷＯＭ符号化動作（図３に関連して上述したもの等）を用いて、（例えば、符号化されていない）ワード６１０のシンボルフィールドを符号化するように動作可能であり、符号化されたシンボルを、ＷＯＭ符号化されたワードとして出力するように動作可能である。各ＷＯＭ符号化されたワードは、図３に関連して上述したように、２ビットの符号化されるべきシンボルに対する３ビット（ＮＷＯＭ＝３の幅）の符号化方式を含む（種々の実施形態において、各ｎ＝２幅のシンボルに対して４ビットのＮＷＯＭ符号化等、他の比率が含まれる）。
【００５２】
例えば、符号化動作６０２は、ワード６１０を、ＷＯＭ符号化されたワード６２０として符号化する（例えば、それはワード６１０の情報を維持する）。ＷＯＭ符号化されたワード６２０は、ＷＯＭフィールド６２２及び６２４を含む。ＷＯＭフィールド６２２は、シンボルフィールド６１２に対するＷＯＭコードであり、ＷＯＭフィールド６２４は、シンボルフィールド６１４に対するＷＯＭコードである。例示されるように、ＷＯＭフィールド６２２は値「０１０」を含み、ＷＯＭフィールド６２４は値「１００」を含む。
【００５３】
符号化動作６０４は、第２段階動作であり、ハミング又はＳＥＣＤＥＤ（single-error correction, double-error detection）コード等の線形エラー訂正コード方式を用いて、ワード６２０のＷＯＭ符号化されたフィールドを符号化するように動作可能である。例示の符号化動作６０４は、拡張ハミングコードに従って動作する。６個のＷＯＭコードされたデータビットに対して、（１６、１１）拡張ハミングコードが示され、従って、各書き込み動作に対して５個のパリティビットが用いられる。ＷＯＭコードの２回の書き込み能力があるとすると、５ビットパリティビットの２セットが提供され、５パリティビットの異なるセットが、各書き込み動作に用いられる。
【００５４】
符号化動作６０４は、ＥＣＣ符号化されたワード６３０を生成する。ＥＣＣ符号化されたワード６３０は、ＷＯＭフィールド６３２（これは、例えば、ＷＯＭフィールド６２２の直接のコピーである）及びＷＯＭフィールド６３４（これは、例えば、ＷＯＭフィールド６２４の直接のコピーである）を含む。パリティフィールド６３６は、５ビット長であり、ＷＯＭデバイスの特定のロケーションへの第１の書き込み動作において、ＷＯＭフィールド６３２及び６３４のシンボルを保護する（及び、例えば、訂正する）ために用いられる。同様に、パリティフィールド６３８は、５ビット長であり、第２の書き込みに対して、ＷＯＭフィールド６３２及び６３４のシンボルを保護するために用いられる。図示されるように、ＷＯＭフィールド６３２は値「０１０」を含み、ＷＯＭフィールド６３４は値「１００」を含む。特定のメモリロケーションへの第１の書き込み動作では、パリティフィールド６３６は値「ＸＸＸＸＸ」（これは、ＷＯＭフィールド６３２及び６３４のコンテンツの第１のセットの第１のＳＥＣＤＥＤ符号化である）を含む。ＷＯＭデバイスの特定のロケーションへの第２の書き込み動作では、パリティフィールド６３８は、シンボルフィールド６３２及び６３４の、（例えば、任意の）新しい値の第２のＳＥＣＤＥＤ符号化である未定（例えば、その時点では）の値（「ＹＹＹＹＹ」）を含み得る。例えば、パリティフィールド６３６及び６３８は、ＷＯＭフィールド６３２及び６３４を符号化するために用いられるＷＯＭ符号化とは異なる符号化（「プレーン（plain）」バイナリ等）を用いて書き込まれる。
【００５５】
復号動作６０６は、ＥＣＣ符号化されたデータを認証されたデータとして復号するように動作可能なＥＣＣ復号動作である。例えば、パリティフィールド６３６は、第１の書き込み動作の後、ＷＯＭフィールド６３２及び６３４を認証（復元等）するために用いられ、パリティフィールド６３８は、第１の書き込み動作の後、ＷＯＭフィールド６３２及び６３４を認証（復元等）するために用いられる。従って、どのパリティフィールドを用いるかの選択は、特定のメモリロケーションが、一回書き込まれたか、或いは二回書き込まれたかを判定するように、ＷＯＭフィールド６３２及び６３４のリトリーブされたコンテンツ（表１に関連して上述したもの等）の論理分析に従ってなされる。ＷＯＭフィールド６３２又はパリティフィールド６３６における１ビットエラーの事象において、ＥＣＣ符号化の強度はそのエラーを訂正するのに充分であり、その結果、ＷＯＭフィールド６３２の正しいデータが復元可能である。
【００５６】
復号動作６０８は、ＷＯＭ復号動作（図３に関連して上述したもの等）であり、（例えば、理想的には）元のＥＣＣ符号化されたワードをリトリーブするために、ＥＣＣ符号化されたワードのＷＯＭ符号化されたワードを復号するように動作可能である。例えば、復号動作６０８は、符号化動作６０２において、ＷＯＭ符号化されたワード６２０内で符号化された元のデータを（例えば、理想的には）リトリーブするために、ＷＯＭ符号化されたワード６２０を復号する。
【００５７】
図７は、例示の実施形態に従った例示のプロセスフローチャートである。プロセスフローが端部７０２において開始し、プロセスフローは動作７１０に進む。動作７１０において、ＷＯＭデバイスにストアするためのデータワードが受け取られる。例えば、第１のデータワードは、少なくとも２ビットとして符号化された少なくとも１つの元のシンボルを含み、そこに書き込まれるべき及びそこから読み出されるべきメモリアドレスに関連付けられる。プログラムフローはステップ７２０に進む。
【００５８】
動作７２０において、受け取られたデータワードに、符号化の第１段階が適用される。符号化の第１段階は、ＥＣＣ符号化及びＷＯＭ符号化の選択された一方である符号化動作である。プログラムフローはステップ７３０に進む。
【００５９】
動作７３０において、受け取られたデータワードに、符号化の第２段階が適用される。符号化の第２段階は、ＥＣＣ符号化及びＷＯＭ符号化の選択された一方ではない方の符号化動作である。例えば、第１段階動作がＷＯＭ符号化動作であるとき、第２段階はＥＣＣ符号化動作である。第１段階動作がＥＣＣ符号化動作であるとき、第２段階はＷＯＭ符号化動作である。プログラムフローはステップ７４０に進む。
【００６０】
動作７４０において、２回符号化されたワード（例えば、これは、段階１及び段階２において符号化され、その結果、段階１の符号化が段階２の符号化によってカプセル化される）がＷＯＭデバイスにストアされる。通常、ＷＯＭデバイスは、ブロック初期化され（その際、各々の及び全てのＷＯＭビットが同じ論理状態に設定又はクリアされる）、ビットをブロック初期化状態から、（ブロック初期化状態の反対である）プログラムされた状態に変更することによって書き込みがなされる。上述したように、特定のＷＯＭメモリロケーションが、ＷＯＭ符号化の使用を介して少なくとも１回上書きされ得る。プログラムフローはステップ７５０に進む。
【００６１】
動作７５０において、ＷＯＭにストアされたワードが、リトリーブされ、復号され、復号されたワードが評価される。例えば、ＷＯＭ復号されたシンボル及びＷＯＭデバイスから読み出されたＥＣＣビットがエラーを示すとき、ＥＣＣコントローラが、評価に応答して、訂正活動を実行する（例えば、ビットエラーを訂正する、システムインタラプトを生成する、又はＷＯＭデバイスの欠陥ロケーションを予備のストレージロケーションと交換する等）ように動作可能である。プログラムフローは、終了７９９に進み、そこで、プログラムフローは終了する。
【００６２】
本発明の特許請求の範囲内で、説明された実施形態における変更が可能であり、また、他の実施形態が可能である。
【図１】
2018520410.tif 000004
【図２】
2018520410.tif 000005
【図３】
2018520410.tif 000006
【図４】
2018520410.tif 000007
【図５】
2018520410.tif 000008
【図６】
2018520410.tif 000009
【図７】
2018520410.tif 000010
【国際調査報告】
2018520410.tif 000011