JP-2026514793-A - 高速マルチペイロード長誤り訂正システム及び方法
Abstract
高速の複数長ペイロードの誤り訂正のためのシステム及び方法は、少なくともデコーダ回路を含む。デコーダ回路は、第1の入力を受信し、第2の入力を受信する。デコーダ回路は、第1の入力に基づいて、第1の復号化されたペイロードを生成する。第1の復号化されたペイロードは、少なくとも第1の長さを有する第1のデータ、及び第1のフリップビットを含む。デコーダ回路は、第2の入力に基づいて、第2の復号化されたペイロードを生成する。第2の復号化されたペイロードは、少なくとも、第2の長さを有する第2のデータ及び第2のフリップビットを含み、第2の長さは第1の長さとは異なる。
Inventors
- スフォルツィン マルコ
- ロラン クリストフ ヴィンセント アントワーヌ
Assignees
- マイクロン テクノロジー,インク.
Dates
- Publication Date
- 20260513
- Application Date
- 20240410
- Priority Date
- 20230420
Claims (20)
- 装置であって、 デコーダ回路を含み、前記デコーダ回路は、 第1の入力を受信することと、 第2の入力を受信することと、 前記第1の入力に基づいて、第1の復号されたペイロードを生成することであって、前記第1の復号されたペイロードは、第1の長さを有する第1のデータ及び第1のフリップビットを含む、前記生成することと、 前記第2の入力に基づいて、第2の復号されたペイロードを生成することであって、前記第2の復号されたペイロードは、第2の長さを有する第2のデータ及び第2のフリップビットを含み、前記第1の長さが前記第2の長さよりも小さい、前記生成することと、を実行するように構成されている、前記装置。
- さらにエンコーダ回路を含み、前記エンコーダ回路は、 前記第1の長さを有する前記第1のデータ及び前記第1のフリップビットに基づいて前記第1の入力を生成することであって、前記第1の入力はBose-Chaudhuri-Hocquenghem(BCH)符号の符号語である、前記生成することと、 前記第2の長さを有する前記第2のデータ及び前記第2のフリップビットに基づいて前記第2の入力を生成することであって、前記第2の入力は前記BCH符号の符号語である、前記生成することと、を実行するように構成されている、請求項1に記載の装置。
- 前記BCH符号が、複数の誤りを訂正するように構成されている、請求項2に記載の装置。
- 前記BCH符号がパリティ行列を有し、前記パリティ行列は余剰の行の数を含み、前記余剰の行の数は前記第1の長さと前記第2の長さとの間の差に等しく、前記余剰の行の数における各行のビット単位の和はゼロである、請求項3に記載の装置。
- 前記エンコーダ回路が、さらに、 第1のペイロードオプションビットを受信することであって、前記第1のペイロードオプションビットが、前記第1のデータの長さが前記第1の長さに等しいことを示す、前記受信することと、 第2のペイロードオプションビットを受信することであって、前記第2のペイロードオプションビットが前記第1のペイロードオプションビットと異なり、前記第2のペイロードオプションビットが前記第2のデータの長さが前記第2の長さに等しいことを示す、前記受信することと、を実行するように構成されている、請求項2に記載の装置。
- 前記デコーダ回路が、さらに、 第1のペイロードオプションビットを受信することであって、前記第1のペイロードオプションビットは、前記第1のデータの長さが前記第1の長さに等しいことを示す、前記受信することと、 第2のペイロードオプションビットを受信することであって、前記第2のペイロードオプションビットが前記第1のペイロードオプションビットと異なり、前記第2のペイロードオプションビットが前記第2のデータの長さが前記第2の長さに等しいことを示す、前記受信することと、を実行するように構成されている、請求項1に記載の装置。
- 前記デコーダ回路が、さらに、 前記第1の入力に基づいて第1のシンドロームを生成し、 前記第2の入力に基づいて第2のシンドロームを生成するように構成されている、請求項1に記載の装置。
- 前記第1のフリップビットが、前記第1のデータのビット単位の極性を示す、請求項1に記載の装置。
- 誤り訂正方法であって、 プロセッサ回路において、第1の入力を受信することと、 前記プロセッサ回路において前記第1の入力に基づいて、第1の復号されたペイロードを生成することであって、前記第1の復号されたペイロードは、第1の長さを有する第1のデータ及び第1のフリップビットを含む、前記生成することと 前記プロセッサ回路において、第2の入力を受信することと、 前記プロセッサ回路において前記第2の入力に基づいて、第2の復号されたペイロードを生成することであって、前記第2の復号されたペイロードは、第2の長さを有する第2のデータ及び第2のフリップビットを含み、前記第1の長さが前記第2の長さよりも小さい、前記生成することと、を含む、誤り訂正方法。
- 前記第1の入力を生成することであって、前記第1の入力がBose-Chaudhuri-Hocquenghem(BCH)符号の符号語である、前記生成することと、 前記第2の入力を生成することであって、前記第2の入力が前記BCH符号の符号語である、前記生成することと、をさらに含む、請求項9に記載の誤り訂正方法。
- 前記BCH符号が複数の誤りを訂正するように構成されている、請求項10に記載の誤り訂正方法。
- 前記BCH符号がパリティ行列を有し、前記パリティ行列は余剰の行の数を含み、前記余剰の行の数は前記第1の長さと前記第2の長さとの間の差に等しく、かつ前記余剰の行の数における各行のビット単位の和がゼロである、請求項11に記載の誤り訂正方法。
- 前記第1の入力を生成することが、 第1のペイロードオプションビットを受信することをさらに含み、前記第1のペイロードオプションビットが、前記第1のデータの長さが前記第1の長さに等しいことを示す、請求項10に記載の誤り訂正方法。
- 前記第2の入力を生成することが、 第2のペイロードオプションビットを受信することをさらに含み、前記第2のペイロードオプションビットが前記第1のペイロードオプションビットとは異なり、前記第2のペイロードオプションビットが、前記第2のデータの長さが前記第2の長さに等しいことを示す、請求項13に記載の誤り訂正方法。
- 前記第1の復号されたペイロードを生成することが、 前記回路において第1のペイロードオプションビットを受信することをさらに含み、前記第1のペイロードオプションビットが、前記第1のデータの長さが前記第1の長さに等しいことを示す、請求項9に記載の誤り訂正方法。
- 前記第1のペイロードが、さらに第1のペイロードオプションビットを含み、前記第1のペイロードオプションビットが、前記第1のデータの長さが前記第1の長さに等しいことを示す、請求項9に記載の誤り訂正方法。
- 前記第1の復号されたペイロードを生成することが、 前記第1の入力に基づいて第1のシンドロームを生成することと、 前記第1の入力に基づいて第2のシンドロームを生成することと、をさらに含む、請求項9に記載の誤り訂正方法。
- 前記第1のフリップビットは、前記第1のデータのビット単位の極性を示す、請求項9に記載の誤り訂正方法。
- システムであって、 読み出し動作または書き込み動作の少なくとも一方を発行するように構成された処理要素と、 メモリデバイスと、を含み、前記メモリデバイスは、 第1のプロセッサを含み、前記第1のプロセッサが 第1の入力を受信することと、 第2の入力を受信することと、 前記第1の入力に基づいて、第1の復号されたペイロードを生成することであって、前記第1の復号されたペイロードは、第1の長さを有する第1のデータ及び第1のフリップビットを含む、前記生成することと、 前記第2の入力に基づいて、第2の復号されたペイロードを生成することであって、前記第2の復号されたペイロードは、第2の長さを有する第2のデータ及び第2のフリップビットを含み、前記第1の長さが前記第2の長さよりも小さい、前記生成することと、を実行するように構成されている、前記システム。
- 前記メモリデバイスが、 さらに第2のプロセッサを含み、前記第2のプロセッサが、 前記第1の長さを有する前記第1のデータ及び前記第1のフリップビットに基づいて前記第1の入力を生成することであって、前記第1の入力がBose-Chaudhuri-Hocquenghem(BCH)符号の符号語である、前記生成することと、 前記第2の長さを有する前記第2のデータ及び前記第2のフリップビットに基づいて前記第2の入力を生成することであって、前記第2の入力が前記BCH符号の符号語である、前記生成することと、を実行するように構成されている、請求項19に記載のシステム。
Description
関連出願の相互参照 本願は、2023年4月20日に出願された米国仮出願第63/460,789号の優先権の利益を主張するものであり、その全体が参照により本明細書に組み込まれる。 メモリデバイスのサイズが小さくなり、複雑さが増すと、それらは誤りを起こしやすくなり得る。さらに、データストリームの伝送中に誤りが発生する場合がある。例えば、誤りは、ほんの数例を挙げると、記憶電荷の損失、ランダムテレグラフ信号の影響、結合効果、デトラップ機構、読み出し妨害現象、量子トンネリング、及び/または宇宙線により、発生する場合がある。誤り訂正符号は、信頼性の低いチャネルを介して伝送されるデータ中の誤りを特定及び訂正するために用いられる。ハードウェアがますます複雑化するにつれて、誤り訂正符号の改善は、より効率的な電子デバイスを創製するために有用である。 従来、誤り訂正符号は、特定の技術的用途のために設計されてきた。これには、誤り訂正符号を設計する際に様々なユースケース固有のパラメータを考慮することが必要である。例えば、Bose-Chaudhuri-Hocquenghem(BCH)符号を設計するには、技術者は、とりわけ、データ長、所望の符号語長、所望の訂正可能な誤り数、誤り訂正の速度に対する時間制約など、多くのパラメータを考慮する必要がある。その結果、特定のユースケース向けに設計された誤り訂正回路に複数の異なるデータストリームを経由させることは、一般に不可能である。複数の異なるデータストリームに対して同じ誤り訂正符号を使用できないことは、誤り訂正の効率を低下させる。 特定の要素または行為の説明を容易にするために、参照番号の最有効の桁または複数桁の数字は、その要素が最初に導入される図番号を指す。 ホスト及びメモリデバイスを含む例示的なコンピューティングシステムのブロック図を概略的に示す。ホスト及びアクセラレータデバイスを含む例示的なシステムのブロック図を概略的に示す。いくつかの実施形態に従う、エンコーダを示す。いくつかの実施形態に従う、デコーダを示す。いくつかの実施形態に従う、誤り訂正システムを示す。いくつかの実施形態に従う、複数長のペイロードを復号する方法の例を概略的に示す。いくつかの実施形態に従う、誤り訂正方法の例を概略的に示す。 本明細書に提示されるシステム及び方法は、複数の異なる長さのデータペイロードの高速誤り訂正のための手段を提供する。複数のペイロード長の誤り訂正符号のエンコーダ及びデコーダは、データペイロードとともにペイロードオプションを受信する。ペイロードオプションは、データペイロードの長さを示す。誤り訂正符号は、最大入力データペイロード長及び複数の符号語を備えるように設計される。より短いデータペイロードが符号化されるとき、エンコーダは、最大ペイロード長が符号化されるときの長さと等しい長さのパリティベクトルを生成する。エンコーダは、より短いデータペイロードと最大ペイロード長のデータとの両方が同じ長さの符号語を有するように、ゼロである過剰のパリティビットを生成する。復号時には、過剰なパリティビットは無視できる。例として、高速誤り訂正は、シンドローム復号を含むか、または使用することができる。さらに、誤り訂正符号は、各異なるデータペイロード長ごとにフリップ特性を維持するように設計することができる。 複数のペイロード長の高速誤り訂正により、複数のストリームがエンコーダ及び/またはデコーダを共有することが可能となり、チップ上の領域が節約される。例えば、モバイル市場向けに最適化されたメモリ、及びコンピューティングエクスプレスリンク(CXL)向けに最適化されたメモリは、異なる長さのデータペイロードを生成する。以前は、それらが誤り訂正符号、特にBCH符号を共有することは不可能であった。例として、モバイル市場に最適化されたメモリ及びCXLに最適化されたメモリは、同じ誤り訂正符号及び関連する回路を使用することができ、物理的に領域を節約し、結果として、両方のユースケースに高い信頼性を提供しながら、コストを削減する。他のクロスプラットフォームのユースケースも同様に実現できる。 本明細書に記載される実施形態は、様々な用途によって課され得る特定の制約を満たしながら1つ以上の誤りを訂正する誤り訂正符号を伴うシステム及び方法を含む。例えば、インプレース実行(XiP)メモリを伴うアプリケーションは、フリップ特性を維持しながら、最大2つの誤りを確実に訂正するために、そのような誤り訂正符号を使用し得る。 例として、誤り訂正符号プロセスは、データベクトルにパリティベクトルを補足して、1つ以上のデータビットが破損した場合に再構築されるデータベクトルに十分な追加情報を格納する。いくつかの実施形態において、誤り訂正符号プロセスは、少なくとも部分的に、並列符号化及び復号化技術に基づいている。いくつかの実施形態は、2ビットの誤り訂正2元Bose-Chaudhuri-Hocquenghem(BCH)符号を伴う。このようなBCH符号は、データのフリップ特性を保持するように設計され得る。いくつかの実施形態において、BCH符号は、複数の異なる長さのデータベクトルを符号化及び復号化するように設計される。 本明細書では、データベクトルにパリティベクトルが補足されることで、誤り訂正符号の符号語が生成される。データベクトル(d)から符号語(c)を生成するプロセスは、本明細書では符号化と呼ばれる。いくつかの実施形態において、データベクトルはd・G=cに従って、符号語を生成するよう、特定の誤り訂正符号の生成行列(G)で符号化される。生成行列は、G=[Ik|P]に従って生成され、ここで、Ikは、k次元の単位行列であり、Pは、誤り訂正符号のパリティ行列である。 さらに、または代替的に、データベクトルは、パリティ行列を使用して符号化され得る。パリティベクトル(p)は、データベクトルをパリティ行列(P)で乗算することによって生成される:p=d・P。パリティベクトル及びデータベクトルは、結合されて符号語が生成される。誤り訂正符号は、系統的または非系統的であり得る。系統的誤り訂正符号では、データベクトルは符号語に埋め込まれる。系統的符号語は、データベクトルにパリティベクトルを付加することによって生成され得る。例えば、c=[p,d]。非系統的誤り訂正符号では、パリティベクトルのパリティビットは、符号語を生成するためにデータベクトル全体に挿入される。 例として、符号語は、ノイズの多いチャネルを介して送信され得る。符号語の受信者は、符号語を復号することができる。受信したベクトルに誤りがある場合、誤り訂正符号は最大t個の誤りを特定して訂正することができる。誤り訂正符号が訂正することができる誤りの数は、特定の誤り訂正符号の最小ハミング距離(dmin)に基づく。すなわち、特定の誤り訂正符号は、t個の誤りまで訂正することができる。この場合、式は以下となる。 本明細書で使用される場合、復号化は、受信ベクトルが符号語であるかどうかを判定するプロセスを指す。受信ベクトルが符号語である場合、復号化はデータベクトルの復号を含む。受信ベクトルが符号語でない場合、復号化は誤り訂正(複数可)の実行及びデータベクトルの復号を含む。いくつかの実施形態において、パリティ検査行列(H)は、c・HT=0に従って、受信ベクトルが符号語であるかどうかをチェックするために使用される。すなわち、全ての符号語は、パリティ検査行列に直交する。特定の誤り訂正符号のパリティ検査行列は、生成行列から導出することができ、H=[-PT|In-k]に従って定義される。2元誤り訂正符号において、GF(2)上では、-PT=PTである。したがって、任意の受信ベクトルyについて、y・HT=0の場合、その受信ベクトルは符号語である。 さらに、または代替的に、シンドローム復号が、誤り訂正符号プロセスの一部として使用され得る。いくつかの実施形態において、シンドロームベクトルは、S=y・HTに従って受信ベクトルから計算される。したがって、シンドロームベクトルがゼロ、S=0の場合、受信ベクトルは符号語である。 S≠0の場合、受信ベクトルに1つ以上の誤りが存在する。線形符号の場合、y=c+eであり、ここで、eは誤りベクトルである。c・HT=0であるため、S=e・HTとなる。受信ベクトルに対するシンドロームベクトルが1つの誤りパターンに関連付けられている場合、誤り訂正が必要である。受信ベクトルに対するシンドロームベクトルが複数の誤りパターンに関連付けられている場合、誤り位置特定及び誤り訂正が必要である。いくつかの誤り訂正符号プロセスは、誤り位置特定多項式及び誤り訂正多項式を使用して、それぞれ、誤りを特定し訂正する。2元符号の場合、誤り訂正は、誤りの位置でビットを反転することを含み得る。 例として、誤り検出または誤り訂正は、様々なコンピューティングシステムを用いて実行され得る。図1は、ホストデバイス102及びメモリシステム104を含むコンピューティングシステム100の例のブロック図を概略的に示す。ホストデバイス102は、中央処理装置(CPU)またはプロセッサ110、及びホストメモリ108を含む。例として、ホストデバイス102は、様々な他のタイプのホストの中で特に、パーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、スマートフォン、メモリカードリーダ、及び/またはIoT対応デバイスを含むことができ、例えばプロセッサ110のようなメモリアクセスデバイスを含むこともできる。プロセッサ110は、1つ以上のプロセッサコア、並列プロセッサのシステム、または他のCPU配置を含むことができる。プロセッサのうちの任意の1つ以上を用いて、誤り検出または訂正アルゴリズムを実行することができる。 メモリシステム104は、コントローラ112、バッファ114、キャッシュ116、及び第1のメモリデバイス118を含む。第1のメモリデバイス118は、例えば、1つ以上のメモリモジュール(例えば、シングルインラインメモリモジュール、デュアルインラインメモリモジュールなど)を含むことができる。第1のメモリデバイス118は、揮発性メモリ及び/または不揮発性メモリを含むことができ、1つまたは複数の異なるメモリタイプまたはモジュールを含むマルチチップデバイスを含むことができる。例として、コンピューティングシステム100は、メモリシステム104及びホストデバイス102とインターフェースする第2のメモリデバイス120を含む。 ホストデバイス102は、システムバックプレーンを含むことができ、また、複数の処理リソース(例えば、1つ以上のプロセッサ、マイクロプロセッサ、またはいくつかの他のタイプの制御回路)を含むこともできる。コンピューティングシステム100は、ホストデバイス102、メモリシステム104、コントローラ112、バッファ114、キャッシュ116、第1のメモリデバイス118、第2のメモリデバイス120に対応する個別の集積回路を任意で含むことができ、これらのうち1つ以上は、一緒に接続されて使用されることができる、それぞれのチップレットを含むことができる。例として、コンピューティングシステム100は、サーバシステム及び/または高性能コンピューティング(HPC)システムならびに/またはその一部を含む。図1に示される例は、フォン・ノイマンアーキテクチャを有するシステムを示すが、本開示の実施形態は、フォン・ノイマンアーキテクチャに伴うことが多い1つ以上のコンポーネント(例えば、CPU、ALUなど)を含まないことがある、非フォン・ノイマンアーキテクチャにおいても実装することができる。 例として、第1のメモリデバイス118は、コンピューティングシステム100にメインメモリを提供することができ、または第1のメモリデバイス1