(57)【要約】エラーを訂正することに関する装置及び方法は、ＦＤデコーダ及びＡＤデコーダを使用することを含むことができる。エラーを訂正することは、メモリアレイから入力データを受信すること、入力データに対してエラー検出に関連する複数の動作を実行すること、ならびに入力データを処理したことに基づき、メモリデバイスに結合されたコントローラによってホスティングされる第２のデコーダに出力データ、有効化フラグ及び複数のパリティビットを提供することを含むことができる。
2021520555.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイスであって、
アレイと、
第１のデコーダであって、
前記メモリアレイから入力データを受信することと、
前記入力データに対してエラー検出に関連する複数の動作を実行することと、
前記入力データを処理したことに基づき、前記メモリデバイスに結合されたコントローラによってホスティングされる第２のデコーダに出力データ、有効化フラグ及び複数のパリティビットを提供することとを行うように構成された前記第１のデコーダと
を含む、
前記メモリデバイス。
【請求項２】
前記第１のデコーダが、前記入力データがエラーを含むと判定するようにさらに構成される、請求項１に記載のメモリデバイス。
【請求項３】
前記第１のデコーダが、前記出力データを生成するために前記エラーを訂正するようにさらに構成される、請求項４に記載のメモリデバイス。
【請求項４】
前記第１のデコーダが、前記エラーを訂正しない決定に基づいて前記入力データを前記出力データとして渡すようにさらに構成される、請求項４に記載のメモリデバイス。
【請求項５】
前記有効性フラグが、前記エラーが前記出力データにおいて訂正されているかどうかを記述する、請求項４に記載のメモリデバイス。
【請求項６】
前記複数のパリティビットが、前記エラー検出を行うために使用される、請求項１または２に記載のメモリデバイス。
【請求項７】
前記デコーダがエラー訂正コードデコーダである、請求項１または２に記載のメモリデバイス。
【請求項８】
前記第２のデコーダがエラー訂正コードデコーダである、請求項１または２に記載のメモリデバイス。
【請求項９】
前記第１のデコーダが、前記入力データがエラーを含まないと判定するようにさらに構成される、請求項１に記載のメモリデバイス。
【請求項１０】
前記第１のデコーダが、前記入力データが前記エラーを含まないと判定したことに基づいて前記入力データを前記出力データとして提供するようにさらに構成される、請求項９に記載のメモリデバイス。
【請求項１１】
メモリデバイスに結合されたコントローラであって、
高精度デコーディング（ＡＤ）デコーダであって、
前記メモリデバイスによってホスティングされる第１の高速デコーディング（ＦＤ）デコーダからデータ、有効性フラグ及びパリティビットを受信することと、
前記有効性フラグが第１の値であると判定したことに応答して、前記データ及び前記パリティビットを第２のＦＤデコーダに提供することと、
前記有効性フラグが第２の値であると判定したことに応答して、
前記パリティビットを使用して前記データに対してエラー訂正動作を実行することと、
訂正された前記データ及び前記パリティビットを前記第２のＦＤデコーダに提供することとを行うように構成された前記ＡＤデコーダと、
前記パリティビットを使用して前記データに対してエラー訂正を実行するように構成された前記第２のＦＤデコーダと
を含む前記コントローラ。
【請求項１２】
前記ＡＤデコーダが、前記有効性フラグが前記第１の値を含む場合に訂正済みデータを受信するようにさらに構成される、請求項１１に記載のコントローラ。
【請求項１３】
前記ＡＤデコーダが、前記有効性フラグが前記第２の値を含む場合に生データを受信するようにさらに構成される、請求項１１に記載のコントローラ。
【請求項１４】
前記ＡＤデコーダがインナーデコーダであり、前記第２のＦＤデコーダがアウターデコーダである、請求項１１〜１３のいずれか１項に記載のコントローラ。
【請求項１５】
データ及びパリティビットを記憶するように構成されたメモリアレイと、
前記データ及び前記パリティビットを受信するように構成された高速デコーディング（ＦＤ）デコーダであって、
前記データ及び前記パリティビットからシンドロームを生成するように構成されたシンドローム計算ユニットと、
エラー訂正ユニットであって、
前記シンドローム及び前記パリティビットを使用して前記データに対してエラー訂正コードを実行して、前記データを訂正する決定に基づき、訂正済みデータを生成することと、
前記データ及び前記訂正済みデータのうちの少なくとも一方をコントローラによってホスティングされる高精度デコーディング（ＡＤ）デコーダに提供することとを行うように構成された前記エラー訂正ユニットと、
誤訂正チェッカユニットであって、
前記エラー訂正ユニットが前記データまたは前記訂正済みデータを前記ＡＤデコーダに提供するかどうかに基づいて有効性フラグを生成することと、
前記有効性フラグを前記ＡＤデコーダに提供することとを行うように構成された前記誤訂正チェッカユニットとを含む前記ＦＤデコーダと
を含む装置。
【請求項１６】
前記誤訂正チェッカユニットが、前記シンドローム計算ユニットによって提供された前記シンドロームに基づいて前記有効性フラグを生成するようにさらに構成される、請求項１５に記載の装置。
【請求項１７】
前記誤訂正チェッカユニットが、前記エラー訂正ユニットから、前記エラー訂正ユニットが前記データまたは前記訂正済みデータのうちの前記少なくとも一方を前記ＡＤデコーダに提供したかどうかを記述するメッセージを受信するようにさらに構成される、請求項１５または１６に記載の装置。
【請求項１８】
ＦＤデコーダがパリティビット線をさらに含む、請求項１５または１６に記載の装置。
【請求項１９】
高速デコーディング（ＦＤ）デコーダを使用してエラー訂正コードを実行するための方法であって、
メモリデバイスによってホスティングされる前記ＦＤデコーダを使用してページに対して第１のエラー訂正コードを実行すべきかどうかを決定することと、
前記第１のエラー訂正を実行する決定に基づき、
前記ページ及びパリティビットから訂正済みページを生成することと、
第１の有効性フラグを生成することと、
前記第１の有効性フラグ及び前記訂正済みページをマイクロコントローラに提供することと、
前記第１のエラー訂正コードを実行しない決定に基づき、
第２の有効性フラグを生成することと、
前記第２の有効性フラグ、前記ページ及び前記パリティビットを前記マイクロコントローラに提供することと
を含む前記方法。
【請求項２０】
前記第２の有効性フラグを受信したことに基づき、前記マイクロコントローラによってホスティングされる高精度デコーディング（ＡＤ）デコーダを使用して前記パリティビットを使用して前記ページに対して第２のエラー訂正コードを実行することをさらに含む、請求項１９に記載の方法。
【請求項２１】
前記第１の有効性フラグを受信したことに基づき、前記ページに対して第２のエラー訂正コードを実行することを差し控えることをさらに含む、請求項１９に記載の方法。
【請求項２２】
前記ＦＤデコーダが代数デコーディングを利用する、請求項１９〜２１のいずれか１項に記載の方法。
【請求項２３】
前記ＦＤデコーダが組み合わせ論理を利用する、請求項１９〜２１のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にメモリに関連し、より具体的には、エラー訂正に関連する装置及び方法に関する。
【背景技術】
【０００２】
メモリデバイスは、典型的には、コンピュータまたは他の電子デバイスにおける内部の半導体集積回路として提供される。揮発性及び不揮発性メモリを含む、多くの異なる種類のメモリが存在する。揮発性メモリは、そのデータを維持するために電力を必要とする場合があり、中でも、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、及び同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）を含む。不揮発性メモリは、電力供給されていないときに記憶されたデータを保持することによって永続的データを提供することができ、中でも、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、リードオンリーメモリ（ＲＯＭ）、電気的消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、相変化ランダムアクセスメモリ（ＰＣＲＡＭ）などの抵抗可変メモリ、抵抗性ランダムアクセスメモリ（ＲＲＡＭ）、及び磁気抵抗性ランダムアクセスメモリ（ＭＲＡＭ）を含むことができる。
【０００３】
メモリは、広範囲な電気的用途のために揮発性及び不揮発性データストレージとしても利用される。不揮発性メモリは、例えば、パーソナルコンピュータ、ポータブルメモリスティック、デジタルカメラ、携帯電話、ＭＰ３プレイヤーなどのポータブルミュージックプレイヤー、ムービープレイヤー及び他の電子デバイスにおいて使用され得る。メモリセルは、アレイに配列される場合があり、アレイは、メモリデバイスにおいて使用される。
【０００４】
様々なコンピューティングシステムは、一組の命令（例えば、プログラム、アプリケーションなど）の実行に関連してアクセスされるメモリ（例えば、メモリシステム）に結合された処理リソースを含む。メモリシステムは、エラー訂正コード（ＥＣＣ）を使用して、データのエラーを検出及び訂正することができる。
【図面の簡単な説明】
【０００５】
【図１】本開示の複数の実施形態を実装することが可能なメモリデバイス及びコントローラを含むメモリシステムのブロック図である。
【図２】本開示の複数の実施形態にしたがったエラーを訂正することが可能な高速デコーディング（ＦＤ）デコーダのブロック図である。
【図３】本開示の複数の実施形態にしたがったＦＤデコーダ及び高精度デコーディング（ＡＤ）デコーダを利用したエラー訂正に関連するフローチャートを示す。
【図４】本開示の複数の実施形態にしたがったコードワードの例を示す。
【発明を実施するための形態】
【０００６】
本開示は、エラー訂正に関連する装置及び方法を含む。例示的な方法は、メモリアレイから入力データを受信すること、入力データに対してエラー検出に関連する複数の動作を実行すること、ならびに入力データを処理したことに基づき、メモリデバイスに結合されたコントローラによってホスティングされる第２のデコーダに出力データ、有効化フラグ及び複数のパリティビットを提供することを含むことができる。
【０００７】
本開示の複数の実施形態は、メモリデバイスを使用して記憶されたデータに対してエラー訂正を実行するために改良されたエラー訂正コード（ＥＣＣ）を提供することができる。例えば、いくつかの従来のＥＣＣは、メッセージを復旧することができるようにメッセージに冗長データまたはパリティデータを追加することを含む。データの送信、記憶及び／または取得中、複数のエラーの指示を受けてデータを回復させることができる。
【０００８】
ストレージは、コンピュータシステムにおいて性能のボトルネックになっている。データを記憶し、ストレージからデータを取得する機能は、計算及び動作を実行するコンピュータシステムの機能を制限する原因であった。
【０００９】
ＮＡＮＤベースのストレージソリューションにより、ハードドライブのレイテンシは１０倍以上改善されたが、ストレージには依然としてレイテンシの遅れがある。相変化メモリ（ＰＣＭ）、磁気抵抗性ランダムアクセスメモリ（ＭＲＡＭ）、抵抗性ランダムアクセスメモリ（ＲｅＲＡＭ）及び／または３Ｄ  Ｘｐｏｉｎｔメモリなどの新興メモリ（ＥＭ）技術は、他のメモリ技術に比べてメモリ関連のレイテンシを改善し得る。ＥＭは、システム（例えば、コンピューティングシステム）の他の部分と同じ速さのデータストレージを提供することができる。ＥＭは、コンピューティングシステムの他の構成要素のレイテンシに匹敵するレイテンシを有するデータストレージを提供することができる。ストレージ用途の信頼性目標に対処するために、ＥＭは、エラーを訂正し、ＥＭをホスティングするデバイスの低レイテンシ性能を維持することが可能であるＥＣＣを利用してもよい。
【００１０】
ストレージ用途は、メモリ用途とは異なり、可変のアクセスレイテンシを許容できることを考えると、低レイテンシのＥＣＣデコーダを利用することが有益である場合がある。いくつかの例では、低レイテンシは、複数のナノ秒の範囲内のレイテンシを含み得る。他の例では、より高いレイテンシは、複数のマイクロ秒の範囲内のレイテンシであり得る。
【００１１】
訂正機能が高く、かつ低レイテンシのＥＣＣデコーダは、ＥＣＣ連結方式及び階層デコーダを利用することによって実現することができる。本明細書で使用される場合、階層デコーダは、データのエラーを訂正するための複数のデコーダの使用を説明することができる。階層デコーダは、高速デコーディング（ＦＤ）デコーダ及び高精度デコーディング（ＡＤ）デコーダの使用を含むことができる。いくつかの例では、階層デコーディング方式は、ＦＤデコーダを利用することができ、必要に応じてＡＤデコーダにおいて使用されるより強力なＥＣＣを用いることができる。
【００１２】
ＦＤデコーダにおいて用いられるＥＣＣは、ＦＤデコーダが障害を高確率でフラグ通知することが可能である場合に使用することができる。ＦＤデコーダにおいて使用されたＥＣＣがフラグを立てずに失敗した場合、情報ブロックは、デコードイベントが不正確に終わったものとして確定される。いくつかの例では、フラグを立てない障害が、ＦＤデコーダにおいて非常に低い確率で発生し得る。障害を識別するためにＦＤデコーダによって生成されたフラグは、ＦＤデコーダの低レイテンシに不利にならないように非常に短い時間で生成され得る。
【００１３】
複数の実施形態では、階層コードアーキテクチャは、メモリデバイスに組み込まれたＦＤデコーダ及びストレージコントローラ内に実装されたＡＤデコーダを利用する。効果的かつ効率的なソリューションを持つために、ＦＤデコーダアーキテクチャを図１に示したような階層方式での使用に適合させることができる。
【００１４】
本開示の以下の詳細な説明では、本明細書の一部を構成する添付図面への参照がなされる。これらの図面では、本開示の複数の実施形態がどのように実施され得るかが一例として示されている。これらの実施形態は、当業者が本開示の実施形態を実施することができるように十分詳細に説明されており、本開示の範囲から逸脱することなく、他の実施形態が利用されてもよいこと、ならびにプロセスの変更、電気的変更及び／または構造的変更がなされてもよいことが理解されよう。本明細書で使用される場合、指示子「Ｎ」は、そのように指示された複数の特定の特徴を本開示の複数の実施形態と共に含めることができることを示す。
【００１５】
本明細書で使用される場合、「複数の（ａ  ｎｕｍｂｅｒ  ｏｆ）」何かは、そのようなもののうちの１つ以上を指すことができる。例えば、複数のメモリデバイスは、メモリデバイスのうちの１つ以上を指すことができる。「複数（ｐｌｕｒａｌｉｔｙ）」の何かは、２つ以上を意図している。加えて、特に図面の参照符号に関して本明細書で使用されるような「Ｎ」などの指示子は、そのように指示された複数の特定の特徴を本開示の複数の実施形態と共に含めることができることを示す。
【００１６】
本明細書の図面は、最初の一桁または複数桁が描写図面の番号に対応し、残りの桁が図面における要素または構成要素を識別するという付番規則に従う。異なる図面の間の類似の要素または構成要素は、類似の数字を使用することによって識別され得る。理解されるであろうが、本明細書の様々な実施形態に示した要素を追加、交換及び／または削除することによって本開示の複数の追加の実施形態を提供することができる。加えて、図面に提供された要素の比率及び相対的スケールは、本開示の様々な実施形態を例示することを意図し、限定的な意味で使用されることを意図しない。
【００１７】
図１は、本開示の複数の実施形態を実装することが可能なメモリデバイス１０４及びコントローラ１０２を含むメモリシステム１００のブロック図である。メモリシステム１００はまた、一般にＦＥエンコーダ１０６と呼ばれる複数の高速エンコーディング（ＦＥ）エンコーダ１０６−１及び１０６−２、ならびに高精度エンコーディング（ＡＥ）エンコーダ１０８を含むことができる。メモリシステム１００はまた、一般にＦＤデコーダ１１０と呼ばれる複数のＦＤデコーダ１１０−１及び１１０−２、ならびにＡＤデコーダ１１２を含むことができる。メモリシステム１００は、メモリアレイ１１４をさらに含むことができる。
【００１８】
本明細書で使用される場合、「装置」は、限定されることはないが、回路もしくは回路網、１つもしくは複数のダイ、１つもしくは複数のモジュール、１つもしくは複数のデバイス、または１つもしくは複数のシステムなどの、様々な構造または構造の組み合わせを指すことができる。例えば、メモリシステム１００、コントローラ１０２、メモリデバイス１０４、ＦＥエンコーダ１０６、ＡＥエンコーダ１０８、ＦＤデコーダ１１０、ＡＤデコーダ１１２及びメモリアレイ１１４は、個別的または集合的に「装置」と呼ばれる場合がある。
【００１９】
この例では、コンピューティングシステムは、メモリシステム１００に結合されたコントローラ１０２に結合されたホストを含む。コンピューティングシステムは、システムの中でも、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル録音及び再生デバイス、携帯電話、ＰＤＡ、メモリカードリーダ、インタフェースハブ、センサ、モノのインターネット（ＩｏＴ）対応デバイスとすることができ、ホストは、（例えば、コントローラ１０２を介して）メモリシステム１００にアクセス可能な複数の処理リソース（例えば、１つ以上のプロセッサ）を含むことができる。ホストは、オペレーティングシステム（ＯＳ）、及び／または（例えば、メモリシステム１００からコントローラ１０２を介して）そのホストにロード可能である様々なアプリケーションの実行を担当してもよい。
【００２０】
コントローラ１０２は、メモリトランザクション要求を（例えば、ロードコマンド及びストアコマンドとそれぞれ呼ばれる場合がある、リードコマンド及びライトコマンドの形態で）ホストから受信してもよい。コントローラ１０２は、好適なプロトコルを利用して、例えば、バスなどの物理インタフェースを含むことができる複数のインタフェースを通じてホストとメモリシステム１００との間でコマンド及び／またはデータを転送することができる。このようなプロトコルは、カスタムもしくは独自仕様であってもよく、またはインタフェースは、ペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）、Ｇｅｎ−Ｚ、ＣＣＩＸなどの、標準化されたプロトコルを利用してもよい。コントローラ１０２は、ハードウェア、ファームウェアもしくはソフトウェア、またはこれら３つの任意の組み合わせの形態をとった制御回路を含むことができる。一例として、コントローラ１０２は、ステートマシン、シーケンサ、及び／またはプリント回路基板に結合された特定用途向け集積回路（ＡＳＩＣ）の形態で実装され得るいくつかの他のタイプの制御回路を含むことができる。複数の実施形態では、コントローラ１０２は、（例えば、システム・オン・チップ（ＳＯＣ）構成において）ホストと同じ場所に配置されてもよい。また、コントローラ１０２は、メモリシステム１００と同じ場所に配置されてもよい。
【００２１】
メモリシステム１００は、メモリセルの複数のアレイ（例えば、バンク）、及び（例えば、アレイからデータを読み取り、データをアレイに書き込むための）アレイ（複数可）へのアクセスに関連する、対応するサポート回路（例えば、アドレス回路、Ｉ／Ｏ回路、制御回路、リード／ライト回路など）をそれぞれが含むことができる、複数の物理メモリ「チップ」またはダイを含むことができる。一例として、メモリシステム１００は、複数のＤＲＡＭデバイス、ＳＲＡＭデバイス、ＰＣＲＡＭデバイス、ＲＲＡＭデバイス、ＦｅＲＡＭ、相変化メモリ、３ＤＸポイント及び／またはフラッシュメモリデバイスを含むことができる。複数の実施形態では、メモリシステム１００は、コンピューティングシステム用のメインメモリとして機能することができる。
【００２２】
ＦＤデコーダ１１０は、ＦＤコードを実施することができる。ＦＤコードは、ある期間でエラーを訂正することができる。期間は、複数のナノ秒を含むことができる。ＦＤコード及びさらにはＦＤデコーダ１１０は、多くとも所定量のエラーを訂正することができる。例えば、ＦＤデコーダ１１０は、メモリアレイ１１４から取得された所与のデータのページにおいて１〜５個のエラーを訂正することができる。ＦＤデコーダ１１０は、代数デコーディング方式を実装することができる。すなわち、ＦＤデコーダ１１０は、反復デコーディングではなく代数デコーディングを利用することができる。ＦＤデコーダ１１０は、組み合わせ論理を利用して代数デコーディングを実装することができる。いくつかの例では、ＦＤデコーダ１１０は、低レイテンシを維持しつつ、不正確なデコーディングデータが確率的に１０−５未満でデータをデコードすることができる。
【００２３】
ＡＤデコーダ１１２は、ＡＤコードを実施することができる。ＡＤコードは、ある期間でエラーを訂正することができる。期間は、複数のマイクロ秒を含むことができる。所定の期間は、ＦＤデコーダ１１０とＡＤデコーダ１１２とで別にすることができる。例えば、ＦＤデコーダ１１０は、エラーを訂正すべきかどうか、及び／または所定の期間内でエラーを訂正することが可能であるかどうかを決定することができる。ＡＤデコーダ１１２は、エラーを訂正すべきかどうか、及び／または所定の期間よりも長い期間でエラーを訂正することが可能であるかどうかを決定することができる。
【００２４】
ＡＤコード及びさらにはＡＤデコーダ１１２は、所定量を超えるエラーを訂正することができる。例えば、ＡＤデコーダ１１２は、メモリアレイ１１４から取得された所与のデータのページにおいて６個以上のエラーを訂正することができる。例えば、ＡＤデコーダ１１２は、数百個のエラーを訂正することができる。ＡＤデコーダ１１２は、反復プロセスを実装することができる。反復プロセスは、順序論理を利用して実装することができる。
【００２５】
ＡＤデコーダ１１２、及びＦＤデコーダ１１０のうちの少なくとも１つは、異なるデバイス及び／または装置内に存在することができる。例えば、ＡＤデコーダ１１２は、ＦＤデコーダ１１０−２がメモリデバイス１０４内に存在すると共に、コントローラ１０２内に存在することができる。いくつかの実施形態では、コントローラ１０２は、マイクロコントローラ（ｕＣ）とすることができる。
【００２６】
ＦＤデコーダ１１０−２は、有効性フラグを利用してＡＤデコーダ１１２を起動することができる。すなわち、ＡＤデコーダ１１２は、有効性フラグを受信したことに応答して、かつ／または有効性フラグの値に応答してデータのエラーを訂正するようにＡＤコードを実施すべきかどうかを決定することができる。ＦＤデコーダ１１０−２は、ＦＤデコーダ１１０−２がエラーを訂正しなかったか、それともメモリアレイ１１４から取得されたデータのエラーを訂正しなかったかに基づいて有効性フラグを起動することができる。起動された有効性フラグは、ＦＤデコーダ１１０−２がエラーを訂正したことまたはエラーが存在しないことを識別するために所定の値を含む複数のビットを表すことができる。起動された有効性フラグは、ＡＤデコーダ１１２によるデータ処理を禁止することができる。
【００２７】
いくつかの例では、メモリアレイに記憶されたデータはまた、エンコードすることができる。データは、ＦＥエンコーダ１０６及びＡＥエンコーダ１０８のうちの一方を利用してエンコードすることができる。例えば、データは、同じデバイス（例えば、コントローラ１０２）内に存在するＦＥエンコーダ１０６−１及びＡＥエンコーダ１０８を利用してエンコードすることができる。データはまた、異なるデバイス内に存在するＦＥデコーダ１０６−２及びＡＥエンコーダ１０８を利用してエンコードすることができる。ＦＥエンコーダ１０６−２がメモリデバイス１０４によってホスティングされると共に、ＡＥエンコーダ１０８がコントローラ１０２によってホスティングされることが可能である。
【００２８】
いくつかの実施形態では、データ及び／またはパリティビットは、メモリアレイ１１４からページで取得することができる。いくつかの例では、ページはコードワードを含む。本明細書で使用される場合、パリティビットは、データがエラーを含むかどうかを判定するために使用可能であるビットについて説明する。パリティビットはまた、エラーを識別する、かつ／またはエラーを訂正するために使用することができる。
【００２９】
データ及び／またはパリティビットは、ＦＤデコーダ１１０−２に提供することができる。例えば、コントローラ１０２は、メモリアレイ１１４からＦＤデコーダ１１０−２へのデータ及び／またはパリティビットの転送を調整することができる。ＦＤデコーダ１１０−２は、エラーがデータに存在するかどうか、及び／またはパリティビットを利用してエラーを訂正するかどうかを決定することができる。ＦＤデコーダ１１０−２は、エラーが訂正されたかどうか、またはエラーが訂正されなかったかどうかに基づいて有効性フラグを生成することができる。
【００３０】
ＦＤデコーダ１１０−２は、データ、パリティビット及び／または有効性フラグをＡＤデコーダ１１２に提供することができる。ＡＤデコーダ１１２は、有効性フラグの値に基づいてデータに対してエラー訂正コード（例えば、ＡＤコード）を実行すべきかどうかを決定することができる。例えば、ＡＤデコーダ１１２は、第１の値を含む有効性フラグを受信したことに応答してデータのエラーを訂正することができる。ＡＤデコーダ１１２は、第２の値を含む有効性フラグを受信したことに応答してエラーの訂正を控えることができる。ＦＤデコーダ１１０−２は、データの複数のエラーを訂正したことに応答して、アクティブ状態の有効性フラグを生成することができる。アクティブ状態の有効性フラグは論理「１」のビットとすることができ、非アクティブ状態の有効性フラグは論理「０」のビットとすることができる。いくつかの例では、アクティブ状態の有効性フラグは論理「０」のビットとすることができ、非アクティブ状態の有効性フラグは論理「１」のビットとすることができる。
【００３１】
ＡＤデコーダ１１２は、非アクティブ状態の有効性フラグを受信したことに応答してエラーを訂正することができる。すなわち、ＡＤデコーダ１１２は、非アクティブ状態の有効性フラグを受信したことに応答して受信データにエラーが存在するかどうかを判定することができる。ＡＤデコーダ１１２は、エラーが存在すると判定したことに応答してエラーを訂正することができる。
【００３２】
ＡＤデコーダ１１２がパリティビットを使用してデータのエラーを訂正する場合、ＡＤデコーダ１１２は、さらなるエラー訂正のために訂正済みデータをＦＤデコーダ１１０−１に提供することができる。いくつかの例では、ＡＤデコーダ１１２は、ＦＤデコーダ１１０−１によるさらなる処理を伴わずに要求元装置にデータを提供することができる。
【００３３】
他の例では、ＡＤデコーダ１１２は、アクティブ状態の有効性フラグを受信したことに応答してデータに対してエラー訂正を実行せずに入力データを出力データとして提供することができる。すなわち、ＡＤデコーダ１１２は、ＦＤデコーダ１１０−２によって訂正されたデータを受信したことに応答してデータ及び／またはパリティビットをＦＤデコーダ１１０−１及び／または要求元装置に渡すことができる。
【００３４】
いくつかの例では、ＡＤデコーダ１１２は、パリティビットを受信せずにＦＤデコーダ１１０−２からデータ及び有効性フラグを受信することができる。ＡＤデコーダ１１２は、データにエラーが存在するかどうかを判定することができる。データにエラーが存在すると判定したことに応答して、ＡＤデコーダ１１２及び／またはコントローラ１０２は、メモリデバイス１０４にパリティビットを要求することができる。例えば、ＡＤデコーダ１１２は、リードリトライコマンドを使用してパリティビットを要求することができる。ＡＤデコーダ１１２及び／またはコントローラ１０２は、リードリトライコマンドを使用してメモリデバイス１０４にパリティビットを要求することができる。
【００３５】
ＡＤデコーダ１１２は、要求されたパリティビットを使用してエラーを訂正する。要求されたパリティビットは、ＦＤデコーダ１１０−２から受信されてもよく、かつ／またはＦＤデコーダ１１０−２を用いずに受信されてもよい。いくつかの例では、ＦＤデコーダ１１０−２は、１本以上の専用のパリティビット線を使用してパリティビットを提供することができる。
【００３６】
ＦＤデコーダ１１０−１は、ＡＤデコーダ１１２からデータを受信することができ、データのエラーを訂正することができる。例えば、ＦＤデコーダ１１０−１は、ＡＤデコーダ１１２によって提供されたデータがエラーを含むかどうかを判定することができる。データがエラーを含むと判定したことに応答して、ＦＤデコーダ１１０−１はエラーを訂正することができる。
【００３７】
図２は、本開示の複数の実施形態にしたがったエラーを訂正することが可能なＦＤデコーダ２１０のブロック図である。ＦＤデコーダ２１０は、シンドローム計算ユニット２２７、エラー訂正ユニット２２８及び誤訂正チェッカユニット２２９を含むことができる。
【００３８】
いくつかの実施形態では、シンドローム計算ユニット２２７は、エラー訂正ユニット２２８及び／または誤訂正チェッカユニット２２９と通信することができる。誤訂正チェッカユニット２２９も、エラー訂正ユニット２２８と通信することができる。
【００３９】
ＦＤデコーダ２１０は、メモリアレイからデータ２２０及びパリティビット２２６を受信することができる。ＦＤデコーダ２１０は、シンドローム計算ユニット２２７にてデータ２２０を受信することができる。ＦＤデコーダ２１０は、専用のパリティビット線を介してコントローラ及び／またはコントローラの装置にパリティビット２２６を提供することができる。
【００４０】
いくつかの例では、ＦＤデコーダ２１０は、データが訂正されるかデータが訂正されない（例えば、生データ）かに関わらず、パリティビット２２６を提供することができる。他の例では、ＦＤデコーダ２１０は、有効性フラグ２２４が非アクティブ状態（例えば、無効）である場合にデータを提供することができる。ＦＤデコーダ２１０はまた、要求時にパリティビット２２６を提供することができる。例えば、ＦＤデコーダ２１０は、有効性フラグ２２４の値に関わらず、要求時にパリティビット２２６を提供してもよい。
【００４１】
シンドローム計算ユニット２２７は、データ２２０及びパリティビット２２６からシンドロームを生成することができる。シンドロームは、データ２２０にエラーがあるかどうかを判定するために使用可能であるベクトルとすることができる。例えば、シンドローム計算ユニット２２７は、受信した１つ以上のコードワードからシンドロームを生成することができる。シンドロームは、エラー訂正ユニット２２８及び／または誤訂正チェッカユニット２２９に提供することができる。
【００４２】
エラー訂正ユニット２２８は、データ２２０がエラーを含むかどうかを判定するためにシンドロームを利用することができる。エラー訂正ユニット２２８はまた、ある量のエラーがデータ２２０に存在することを判定するためにシンドロームを使用することができる。データ２２０のエラーの量が所定の閾値よりも少ない場合、エラー訂正ユニット２２８はエラーを訂正することができる。データ２２０のエラーの量が所定の閾値よりも多い場合、エラー訂正ユニット２２８はエラーを訂正することを差し控えても良い。このようにして、エラー訂正ユニット２２８は、訂正済みデータまたは生データを生成することができる。エラー訂正ユニットによって提供されたデータは、データ２２２、訂正済みデータ２２２及び／または生データ２２２として参照されてもよい。ＦＤデコーダ２１０は、コントローラ及び／またはコントローラによってホスティングされるＡＤデコーダにデータ２２２を提供することができる。いくつかの例では、エラー訂正ユニット２２８は、エラーがデータ２２２において訂正されたかどうかを誤訂正チェッカユニット２２９に知らせるために、誤訂正チェッカユニット２２９にメッセージを提供することができる。
【００４３】
誤訂正チェッカユニット２２９は、エラー訂正ユニット２２８から受信したシンドローム及び／またはメッセージを使用して、エラーがデータ２２２において訂正されたかどうかを判定することができる。エラーがデータ２２２において訂正されたかどうかに基づき、エラー訂正ユニット２２８は有効性フラグ２２４を生成することができる。データ２２０のエラーに対する訂正をデータ２２２が含む場合、誤訂正チェッカユニット２２９は、アクティブ状態の有効性フラグ２２４を生成することができる。データ２２２が訂正を含まない場合、誤訂正チェッカユニット２２９は、非アクティブ状態の有効性フラグ２２４を生成することができる。誤訂正チェッカユニット２２９は、コントローラ及び／またはコントローラによってホスティングされるＡＤデコーダに有効性フラグ２２４を提供することができる。
【００４４】
いくつかの例では、ＦＤデコーダ２１０は、データ２２２が訂正を含むかどうかに関わらず、データ２２２、有効性フラグ２２４及びパリティビット２２６をコントローラに提供することができる。他の例では、ＦＤデコーダ２１０は、データ２２２が訂正を含むかどうかに関わらず、データ２２２及び有効性フラグ２２４をコントローラに提供することができる。ＦＤデコーダ２１０は、データ２２２が訂正を含まない場合、パリティビット２２６をコントローラに提供することができる。
【００４５】
図３は、本開示の複数の実施形態にしたがったＦＤデコーダ及びＡＤデコーダを利用したエラー訂正に関連するフローチャート３３０を示す。図３は、アウターエンコーダ３０６、インナーエンコーダ３０８、メモリデバイス３０４、インナーデコーダ３１２及びアウターデコーダ３１０を含む。図３は、アウターＦＤコードを使用した直列コード連結を示す。
【００４６】
アウターエンコーダ３０６はＦＥエンコーダとすることができ、インナーエンコーダ３０８はＡＥエンコーダとすることができる。インナーデコーダ３１２はＡＤデコーダとすることができ、アウターデコーダ３１０はＦＤデコーダとすることができる。図示されていないが、メモリデバイス３０４は、ＦＤデコーダを含むことができる。インナーデコーダ３１２及びアウターデコーダ３１０は、コントローラによってホスティングすることができる。いくつかの例では、アウターエンコーダ３０６及びインナーエンコーダ３０８は、コントローラによってホスティングされる。
【００４７】
メモリデバイス３０４によってホスティングされるＦＤデコーダによって生成された有効性フラグ及びデータは、インナーデコーダ３１２及び／またはアウターデコーダ３１０にデータを提供するかどうかを決定するために使用することができる。例えば、メモリデバイス３０４によってホスティングされるＦＤデコーダは、データが未訂正（例えば、生）であることを示す論理「０」などの所定の値を有する有効性フラグを生成したことに応答してインナーデコーダ３１２に生データを提供することができる。メモリデバイス３０４によってホスティングされるＦＤデコーダは、データが訂正されていることを示す論理「１」などの所定の値を有する有効性フラグを生成したことに応答してインナーデコーダ３１２に訂正済みデータを提供することができる。
【００４８】
アウターエンコーダ３０６は、データ（例えば、生データ）の小さいチャンクをエンコードして、高速コードワードを生成することができる。インナーエンコーダ３０８を使用して高速コードワードをエンコードして、高精度コードワードを生成することができる。高精度コードワードは、高精度コードと呼ぶことができる。高精度コードは、系統的コードとすることができる。すなわち、高精度コードは、データとパリティビットとを分離することができる。
【００４９】
デコーディング段階では、インナーデコーダ３１２は、高精度コードをデコードして高速コードワードを生成することができる。アウターデコーダ３１０は、高速コードワードをデコードして、データの小さいチャンクを生成することができる。インナーデコーダ３１２の後にアウターデコーダ３１０を利用することにより、フローチャート３３０を実施するシステムのエラー訂正能力を高めることができる。
【００５０】
すなわち、アウターデコーダ３１０は、潜在的なエラーフロアを除去することができる。アウターデコーダ３１０は、インナーデコーダ３１２に比べてより良好な性能を提供するために使用することができる。いくつかの例では、インナーデコーダ３１２及びアウターデコーダ３１０は、異なるサイズのデータのチャンクに対して動作することができる。例えば、データの小さいチャンクは第１のサイズとすることができ、高精度コードワードは第２のサイズとすることができ、ここで、第２のサイズは第１のサイズよりも大きい。
【００５１】
高精度コードの系統的性質のために、ＦＤデコーダの複製が可能になる。「ＦＤデコーダの複製」とは、メモリデバイス３０４内のＦＤデコーダの使用、及びアウターデコーダ３１０の使用を意味する。高精度コードの系統的性質のため、インナーデコーダ３１２及び／またはアウターデコーダ３１０にエラーを訂正する機会を提供する前に、メモリデバイス３０４内のＦＤデコーダにエラーを訂正する機会を提供することができる。
【００５２】
図３の例は直列コード連結を使用して示されているが、本明細書で説明された例は、インナーＦＤコードを使用した直列または並列連結に適用することができる。
【００５３】
図４は、本開示の複数の実施形態にしたがったコードワード４４０の例を示す。コードワード４４０は、ＡＤデータ４４２及びＡＤパリティビット４４４を含む。ＡＤデータ４４２は、ＦＤデータ４４６及びＦＤパリティビット４４８を含む。
【００５４】
メモリデバイス（例えば、メモリデバイス３０４）にデータを記憶する前に、データのチャンク（例えば、ＦＤデータ４４６のチャンク）に対して作用を及ぼすアウターエンコーダ（例えば、アウターエンコーダ３０６）は、ＦＤコードワード内のＦＤデータ４４６のチャンクのそれぞれを、チャンクのそれぞれに対応するＦＤパリティビット４４８を追加することによってエンコードする。すなわち、ＦＤデータ４４６のチャンクは、ＦＤデータ４４６及びＦＤパリティビット４４８を含むＮ個のＦＤコードワードに順次エンコードされる。
【００５５】
Ｎ個のＦＤコードワードは、インナーエンコーダ（例えば、インナーエンコーダ３０８）によってＮ個のＡＤコードワードにエンコードされる。インナーエンコーダは、Ｎ個のＦＤコードワードをＡＤデータ４４２として処理する。ここで、ＡＤデータ４４２のチャンクのそれぞれは、Ｎ個のＦＤコードワードからの異なるコードワードである。インナーエンコーダは、ＡＤデータ４４２のチャンクのそれぞれについてＡＤパリティビット４４４を生成する。ＡＤパリティビット４４４は、ＦＤパリティビット４４８に依存する。
【００５６】
デコーディング段階では、ＦＤコードワードは、ＦＤデコーダによって一時的にデコードされる。ＦＤコードワードが正しくデコードされている場合（例えば、ＦＤコードワードがエラーを持たない、または複数のエラーが訂正されている場合）、有効性フラグが全てのＦＤコードワードについて設定され、ＡＤデコーダが停止される。ＦＤコードワードのうちの少なくとも１つがＦＤデコーダによって訂正されず、かつＦＤデコーダがエラーの存在を検出している場合、ＡＤデコーダがアクティブ状態にされ、ＡＤデコーダはＦＤコードワードを処理する。
【００５７】
いくつかの実施形態では、ＦＤデコーダは、ＦＤデコーダにおけるエラー訂正に関連するレイテンシを減少させるためにメモリ内に実装される。ＦＤデコーダは、ＡＤデコーダと通信して、デコーディングプロセスを完了するためにＡＤデコーダの参加を要求することができる。すなわち、ＦＤデコーダは、デコーディングプロセスを開始することができ、ＦＤデコーダは、ＡＤデコーダが有効性フラグを介してデコーディングプロセスを完了することを要求することができる。有効性フラグは、データが訂正可能であることをＡＤデコーダに警告するために、かつ／またはＡＤデコーダをアクティブ状態にするために使用することができる。
【００５８】
いくつかの例では、インナーＡＤデコーダを用いて直列連結方式を繰り返すことができる。ＦＥエンコーダとＦＤデコーダとの両方をメモリデバイス内に実装してレイテンシを減少させることができる。ＦＤデコーダがパリティビット及び有効性フラグをＡＤデコーダに提供できることにより、ＡＤデコーダは、ＦＤデコーダが以前データをデコードした（例えば、データのエラーを訂正した）かどうかに基づいてデータをデコードすることが可能である。
【００５９】
特定の実施形態が本明細書で例示及び説明されてきたが、当業者は、同じ結果を達成するように推測される配置構成が、示された特定の実施形態に置き換えられ得ることを認識するであろう。本開示は、本開示の様々な実施形態の適応または変形を網羅するように意図される。上記の説明は、例示的になされたものであり、限定的になされたものではないことが理解されよう。上記の実施形態と、本明細書で具体的に説明されていない他の実施形態との組み合わせは、上記の説明を考察すれば当業者にとって明らかとなるであろう。本開示の様々な実施形態の範囲には、上記の構造及び方法が使用される他の適用が含まれる。したがって、本開示の様々な実施形態の範囲は、添付された特許請求の範囲、ならびにかかる特許請求の範囲の権利が与えられる均等物の全範囲を参照して定められるべきである。
【００６０】
前述の発明を実施するための形態では、本開示を簡素化する目的で、様々な特徴が単一の実施形態に共にまとめられている。開示のこの方法は、本開示の開示された実施形態が、各請求項に明示的に記載されたものよりも多くの特徴を使用する必要があるという意図を反映したものとして解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示された実施形態の全ての特徴より少ないところにある。したがって、以下の特許請求の範囲は、本明細書によって発明を実施するための形態に組み込まれ、各請求項は、別個の実施形態として独立している。
【図１】
2021520555.tif 000003
【図２】
2021520555.tif 000004
【図３】
2021520555.tif 000005
【図４】
2021520555.tif 000006
【手続補正書】
【提出日】令和2年11月20日(2020.11.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリデバイスであって、
メモリアレイと、
第１のデコーダであって、
前記メモリアレイから入力データを受信することと、
前記入力データに対してエラー検出に関連する複数の動作を実行することと、
前記入力データを処理したことに基づき、前記メモリデバイスに結合されたコントローラによってホスティングされる第２のデコーダに出力データ、有効性フラグ及び複数のパリティビットを提供することとを行うように構成された前記第１のデコーダと
を含む、
前記メモリデバイス。
【請求項２】
前記第１のデコーダが、前記入力データがエラーを含むと判定し、
前記入力データが前記エラーを含むとの判定に基づいて前記出力データを生成するために前記エラーを訂正するようにさらに構成される、請求項１に記載のメモリデバイス。
【請求項３】
前記エラーが前記出力データにおいて訂正されるかどうかに関わらず、前記第１のデコーダが、前記エラーを訂正しない決定、前記エラーが訂正されているかに基づいて前記入力データを前記出力データとして渡すようにさらに構成される、請求項１に記載のメモリデバイス。
【請求項４】
前記複数のパリティビットが、前記エラー検出を行うために使用される、請求項１〜３のいずれか１項に記載のメモリデバイス。
【請求項５】
前記第１のデコーダがエラー訂正コードデコーダであり、前記第２のデコーダがエラー訂正コードデコーダである、請求項１〜３のいずれか１項に記載のメモリデバイス。
【請求項６】
前記第１のデコーダが、
前記入力データがエラーを含まないと判定することと、
前記入力データが前記エラーを含まないと判定したことに基づいて前記入力データを前記出力データとして提供することとを行うようにさらに構成される、請求項１に記載のメモリデバイス。
【請求項７】
メモリデバイスに結合されたコントローラであって、
高精度デコーディング（ＡＤ）デコーダであって、
前記メモリデバイスによってホスティングされる第１の高速デコーディング（ＦＤ）デコーダからデータ、有効性フラグ及びパリティビットを受信することと、
前記有効性フラグが第１の値であると判定したことに応答して、前記データ及び前記パリティビットを第２のＦＤデコーダに提供することと、
前記有効性フラグが第２の値であると判定したことに応答して、
前記パリティビットを使用して前記データに対してエラー訂正動作を実行することと、
訂正された前記データ及び前記パリティビットを前記第２のＦＤデコーダに提供することとを行うように構成された前記ＡＤデコーダと、
前記パリティビットを使用して前記データに対してエラー訂正を実行するように構成された前記第２のＦＤデコーダと
を含む前記コントローラ。
【請求項８】
前記ＡＤデコーダが、
前記有効性フラグが前記第１の値を含む場合に訂正済みデータを受信することと、
前記有効性フラグが前記第２の値を含む場合に生データを受信することとを行うようにさらに構成される、請求項７に記載のコントローラ。
【請求項９】
前記ＡＤデコーダがインナーデコーダであり、前記第２のＦＤデコーダがアウターデコーダである、請求項７または８に記載のコントローラ。
【請求項１０】
データ及びパリティビットを記憶するように構成されたメモリアレイと、
前記データ及び前記パリティビットを受信するように構成された高速デコーディング（ＦＤ）デコーダであって、
前記データ及び前記パリティビットからシンドロームを生成するように構成されたシンドローム計算ユニットと、
エラー訂正ユニットであって、
前記シンドローム及び前記パリティビットを使用して前記データに対してエラー訂正コードを実行して、前記データを訂正する決定に基づき、訂正済みデータを生成することと、
前記データ及び前記訂正済みデータのうちの少なくとも一方をコントローラによってホスティングされる高精度デコーディング（ＡＤ）デコーダに提供することとを行うように構成された前記エラー訂正ユニットと、
誤訂正チェッカユニットであって、
前記エラー訂正ユニットが前記データまたは前記訂正済みデータを前記ＡＤデコーダに提供するかどうかに基づいて有効性フラグを生成することと、
前記有効性フラグを前記ＡＤデコーダに提供することとを行うように構成された前記誤訂正チェッカユニットとを含む前記ＦＤデコーダと
を含む装置。
【請求項１１】
前記誤訂正チェッカユニットが、前記シンドローム計算ユニットによって提供された前記シンドロームに基づいて前記有効性フラグを生成するようにさらに構成される、請求項１０に記載の装置。
【請求項１２】
前記誤訂正チェッカユニットが、前記エラー訂正ユニットから、前記エラー訂正ユニットが前記データまたは前記訂正済みデータのうちの前記少なくとも一方を前記ＡＤデコーダに提供したかどうかを記述するメッセージを受信するようにさらに構成される、請求項１０または１１に記載の装置。
【請求項１３】
高速デコーディング（ＦＤ）デコーダを使用してエラー訂正コードを実行するための方法であって、
メモリデバイスによってホスティングされる前記ＦＤデコーダを使用してページに対して第１のエラー訂正コードを実行すべきかどうかを決定することと、
前記第１のエラー訂正を実行する決定に基づき、
前記ページ及びパリティビットから訂正済みページを生成することと、
第１の有効性フラグを生成することと、
前記第１の有効性フラグ及び前記訂正済みページをマイクロコントローラに提供することと、
前記第１のエラー訂正コードを実行しない決定に基づき、
第２の有効性フラグを生成することと、
前記第２の有効性フラグ、前記ページ及び前記パリティビットを前記マイクロコントローラに提供することと
を含む前記方法。
【請求項１４】
さらに、前記第２の有効性フラグを受信したことに基づき、前記マイクロコントローラによってホスティングされる高精度デコーディング（ＡＤ）デコーダを使用して前記パリティビットを使用して前記ページに対して第２のエラー訂正コードを実行することを含み、
前記第１の有効性フラグを受信したことに基づき、前記ページに対して第２のエラー訂正コードを実行することを差し控えることを含む、請求項１３に記載の方法。
【請求項１５】
前記ＦＤデコーダが代数デコーディング及び組み合わせ論理のうちの一方を利用する、請求項１３または１４に記載の方法。
【国際調査報告】
2021520555.tif 000007
2021520555.tif 000008