JP6087470B2 - 訂正不可能なメモリエラーの低減 - Google Patents

訂正不可能なメモリエラーの低減 Download PDF

Info

Publication number
JP6087470B2
JP6087470B2 JP2016500630A JP2016500630A JP6087470B2 JP 6087470 B2 JP6087470 B2 JP 6087470B2 JP 2016500630 A JP2016500630 A JP 2016500630A JP 2016500630 A JP2016500630 A JP 2016500630A JP 6087470 B2 JP6087470 B2 JP 6087470B2
Authority
JP
Japan
Prior art keywords
memory
array
memory arrays
address
logical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016500630A
Other languages
English (en)
Other versions
JP2016514327A (ja
Inventor
パンガル、キラン
エス. ダムレ、パラシャント
エス. ダムレ、パラシャント
サンダラム、ラジェシュ
カワミ、シェコウフェー
エム. ウォーカー、ジュリー
エム. ウォーカー、ジュリー
リヴァーズ、ドイル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2016514327A publication Critical patent/JP2016514327A/ja
Application granted granted Critical
Publication of JP6087470B2 publication Critical patent/JP6087470B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)

Description

本発明主題は、半導体メモリに関し、より詳細には、エラー訂正コードワードを体系化することによって半導体メモリの訂正不可能なメモリエラーを低減することに関する。
多くのタイプの半導体メモリが知られている。いくつかのメモリは、揮発性で、電力が取り除かれるとその内容を失う。いくつかのメモリは、不揮発性で、電力が取り除かれた後でさえも、メモリに格納された情報を保持する。不揮発性メモリの1つのタイプは、メモリセルの電荷ストレージ領域に電荷を格納するフラッシュメモリである。いくつかのフラッシュメモリセルは、セルあたりシングルビットの情報を格納するが、nビットの情報を格納するためにセルの閾値電圧を2nレベルの1に設定することによって、1ビットより多くの情報を格納するフラッシュメモリセルがより一般的となっている。
他のタイプのメモリは、相変化メモリ(PCM)である。複数のPCMは、非導電性アモルファス状態及び導電性相変化結晶状態を有する材料を用いる。PCMセルは、1つの状態から他の状態に移されることにより、格納された値を示してもよい。PCMセルに電位を与えることによって、PCMセルの状態は、PCMセルを流れる電流の測定によって決定可能である。PCMセルは、オフ電流よりはるかに高いオン電流を有する。
いくつかのメモリ技術は、複数のクロスポイントアレイに体系化され、ここで、複数のメモリセルのアレイは、高密度にパックされ、複数の制御ラインの固有のペアに個別に連結される。個々のメモリセルは、ワードラインのような1つの方向に方向付けられる1つの行ラインと、ビットラインのような鉛直方向に方向付けられる1つの列ラインとに連結される。いくつかのメモリは、複数のクロスポイントアレイのうちのアレイとして体系化されてもよく、ここで、個々のクロスポイントアレイは、非常に高密度にパックされているが、個々のクロスポイントアレイ間にいくつかの回路を含んでもよい。
いくつかのメモリ技術は、多くの用途の場合、エラー訂正が必要ではないほど十分に信頼性が高い。他の複数の技術では、個々のメモリセルの信頼性は低いため、メモリの用途は、複数の冗長メモリセルを含んでもよく、エラー訂正及び/または検出情報が複数の冗長メモリセルに格納されてもよい。メモリエラー訂正の1つの共通形式は、複数のハミングコードであり、ここには、コードワードのあらゆるシングルビットエラーの訂正を可能とする複数のパリティビットのセットが含まれる。ハミングコードは、2nビットを保護するためにn+1のパリティビットを必要とするため、32ビットデータワードを保護するために6ビットが用いられることがある。多くの他のタイプのエラー訂正コードが周知であり、これらは、限定的ではないが、複数のリードソロモンコード及び複数のボーズ−チョドーリ−オッケンジェム(Bose−Chaudhuri−Hocquenghem、BCH)コードを含む。データのページのサイズ、すなわちコードワード、含まれるエラー訂正コードの数、及び選択された複数のコードのタイプに応じて、1つまたは複数のエラーが訂正可能またはコードワード内で単に検出されてもよい。
複数の添付の図面は、明細書に組み込まれ、その部分を構成するものであり、複数の様々な実施形態を示す。全般的な説明と共に、複数の図面は、様々な複数の原理を説明する役割を果たす。複数の図面は、以下の通りである。
メモリの訂正不可能なエラーを低減するために複数のアドレスを変換する実施形態のブロック図を示す。 複数のメモリアレイのうちのアレイにおけるコードワードの複数のビット分配の実施形態の図を示す。 複数のメモリアレイのうちのアレイにおけるコードワードの複数のビット分配の代替的な実施形態の図を示す。 メモリの訂正不可能なエラーを低減するために体系化された電子システムの実施形態のブロック図である。 メモリの訂正不可能なエラーを低減する方法の実施形態のフローチャートである。 メモリの訂正不可能なエラーを低減する方法の代替的な実施形態のフローチャートである。 メモリの訂正不可能なエラーを低減するために体系化されたメモリの実施形態のブロック図である。 メモリの訂正不可能なエラーを低減するために体系化されたメモリの実施形態のブロック図である。
以下の詳細な説明において、関連する教示に対する十分な理解を与えるために、例示により、多数の具体的な詳細が言及される。しかしながら、本教示は、このような詳細がなくても実施され得ることが、当業者には明らかである。他の複数の例では、周知の複数の方法、複数の手順及び複数のコンポーネントが、比較的高いレベルで説明されているが、本概念の態様が不要に不明瞭になることを回避するために、詳細には触れていない。多数の説明的な用語及び語句が、この開示の複数の様々な実施形態の説明において用いられている。これらの説明的な用語及び語句は、異なる定義が本明細書において与えられない限り、概して、当業者に合意された意味を伝えるために用いられる。ここで、複数の添付の図面に示され、以下に説明される複数の例が、詳細に記載される。
図1は、メモリの訂正不可能なエラーを低減するために、複数のアドレスを変換する実施形態のブロック図を示す。回路100は、メモリアクセス用のアドレスを受信してもよい。実施形態に応じて、アドレスは、メモリシステム内におけるデータのワードを識別するためのワードアドレス101と、データのワード内におけるデータのビットを識別可能なビットアドレス102とを含んでもよい。データがビットより広い体系においてアクセスされる場合、ビットアドレス102は、個々のビットの代わりに、バイトのようなデータのより大きいグループを識別してもよい。データのワード、すなわちコードワードは、任意の数のデータビットと、エラー訂正及び/または検出専用の任意の数のビットとを含んでもよい。データのワードは、実施形態に応じて任意のサイズであってもよく、用いられるエラー訂正のタイプに応じて異なってもよい。いくつかのシステムにおいて、データのワードは、複数のメモリデバイスに広がっていてもよい。任意のサイズのコードワードが用いられてもよいが、いくつかの実施形態においては、約1024から約4096ビットの間のデータのコードワードが用いられてもよい。いくつかの実施形態において、データのコードワード全体は、同時にアクセスされてもよいが、複数の他の実施形態においては、コードワード全体にアクセスするために、複数のメモリアクセスが実行されてもよい。いくつかの実施形態において、コードワードは、同時にアクセス不可能なデータの単一アレイ内におけるデータの複数のビットを含んでもよい。いくつかの実施形態において、アレイは、メモリアレイ内における複数のビットが同時に、例えば行が一度にアクセスされることを可能とするように体系化されてもよい。
単一のメモリデバイスは、複数のメモリアレイのうちのアレイを含んでもよく、データのコードワードは、1つのメモリデバイス内における複数のメモリアレイに分配されてもよい。ワードアドレス101は、複数のメモリアレイのセットにアドレス可能な物理アドレス103と、複数のメモリアレイのセットの個々のメモリアレイ内における論理位置にアドレス可能な論理アレイアドレス104とを含んでもよい。単純化した例を示すために、メモリデバイスは、各々が4ビットの情報を格納する4つのメモリアレイを有してもよい。2ビットワードは、2つの異なるメモリアレイからの1ビットの情報を含むものとして定義されてもよい。この例において、物理アドレス103は、2つのメモリアレイのセットのいずれがアドレスされているかを識別するように、シングルビット長であり、論理アレイアドレス104は、メモリアレイのいずれの位置がアクセスされているかを識別するように、2ビットである。ビットアドレス102は、ワード内におけるいずれのビットがアドレスされているかを識別するために、シングルビットであり、合計4ビットがメモリデバイスに格納可能な16ビットデータにアドレスする。
物理アドレス103は、デコード回路110によってデコードされてもよく、これは、物理アドレス103に基づいて、いずれの複数のメモリアレイがアクセスするかを決定してもよい。デコード回路110は、複数の様々なメモリアレイをイネーブルにする、第1のイネーブルライン114及び第2のイネーブルライン116のような複数の出力を有してもよい。個々のイネーブルライン114、116は、単一のメモリアレイをイネーブルにしてもよく、または、図示されるように、1つより多くのメモリアレイをイネーブルにしてもよい。
いくつかの実施形態において、複数のメモリアレイを設定するための物理アドレス103のマッピングは、設計時に固定されてもよく、メモリデバイス内における複数のメモリアレイの物理的構成に基づいてもよい。複数の他の実施形態において、制御レジスタ118は、構成情報を有するようにプログラムされてもよいものであるが、物理アドレス103を複数のメモリアレイのセットに対してマッピングするために用いられてもよい。制御レジスタ118は、訂正不可能なエラーの数を低減するために、よりエラー率の高い複数のメモリアレイを複数のコードワードに分配するように、複数の様々なメモリアレイの複数のエラー率に基づく情報を有するようにプログラムされてもよい。いくつかの実施形態において、制御レジスタ118は、パッケージング前または後の製造テスト工程中にプログラムされてもよい。いくつかの実施形態において、制御レジスタ118は、メモリデバイスが電子システムに一体化された後、例えばシステムの製造中、またはシステムの動作中でさえも、プログラムされてもよい。制御レジスタ118は、任意のタイプのストレージ技術によって構築されてもよいが、多くの実施形態においては、制御レジスタ118は、制御レジスタ118にプログラムされた複数の値が、電力が供給されない場合でさえ維持されるように、不揮発性であってもよい。いくつかの実施形態において、制御レジスタ118は、ヒューズリンクまたはアンチヒューズリンクのようなワンタイムプログラマブルであってもよいが、複数の他の実施形態においては、フラッシュメモリセル、PCMセル、またはデータが制御レジスタ118に一度より多く書き込まれることを可能とする任意の他の種類の不揮発性メモリを用いてもよい。
論理アレイアドレス104は、変換回路によって、複数の異なるアレイアドレスに変換されてもよい。図示された実施形態において、第1の変換回路121は、コードワード内における第1の論理位置122を用いて、第1の列アドレス123及び第1の行アドレス124を含む第1のアレイアドレスを生成する。実施形態に応じて、第1のアレイアドレスは、データのビットをアドレスされたコードワードに寄与し得る1つまたは複数のアレイにアドレスするために、用いられてもよい。第2の変換回路125は、コードワード内における第2の論理位置126を用いて、第2の列アドレス127及び第2の行アドレス128を含む第2のアレイアドレスを生成する。
実施形態に応じて、第1の列アドレス123のような列アドレス、及び第1の行アドレス124のような行アドレスは、n本のアドレスラインが2n本の選択肢の中から単一の列または行を識別することを可能とする標準バイナリアドレスバスであってもよく、または、複数のライン、例えば、行または列あたり1ラインに、部分的にまたは完全にデコードされてもよい。実施形態に応じて、別個の複数のアレイアドレスが、データのビットをアドレスされたコードワードに寄与し得る1つまたは複数のアレイにアドレスするために用いられてもよい。そこで、いくつかの実施形態において、第1の列アドレス123及び第1の行アドレス124は、メモリアレイ132を含む複数のメモリアレイに連結されてもよく、第2の列アドレス127及び第2の行アドレス128は、メモリアレイ134を含む複数のメモリアレイに連結されてもよい。アクセスされた複数のメモリアレイからのデータは、データ142のシングルビットを選択し得るマルチプレクサ140、または特定のアクセスのためのデータの複数のビットに連結されてもよい。
共通アレイアドレスに連結されるアレイの論理位置は、コードワードに用いられるデータを含む複数のメモリアレイのセット内における複数の異なるメモリアレイの物理的構成、セット内における複数の異なるメモリアレイに対する複数の異なる値の任意割り当てに基づいてもよく、及び/または、実施形態に応じて、制御レジスタにプログラムされた値に基づいてもよい。例として、実施形態は、サイズが1024ビットのワードを有してもよく、ワードの複数のビットは、メモリアレイあたり1ビットとして、1024の異なるメモリアレイに格納される。メモリアレイは、16のメモリアレイの64のグループとしてグループ化されてもよく、単一グループの16のメモリアレイは、共通アレイアドレスに連結される。64の異なる変換回路が存在し得るように、グループあたり1つの変換回路が設けられてもよい。64の異なるグループは、0から63の範囲の論理位置に割り当てられてもよく、グループの論理位置は、当該グループのアレイアドレスを生成する変換回路に与えられる。割り当ては、任意の態様で行われてもよいが、いくつかの実施形態においては、複数の論理位置が重複しないように、複数の論理位置を分配してもよい。
変換回路121は、第1の論理位置122のような論理位置に基づいて、複数の論理アレイアドレス104をアレイアドレスに変換してもよい。単一の変換回路によって同じアレイアドレスにマッピングされた2つの有効な論理アレイアドレス104が存在しない限り、任意のタイプの変換が用いられてもよい。いくつかの実施形態において使用可能な1つのタイプの変換は、複数のアドレスラインのリオーダである。一実施形態において、アレイアドレスは、論理位置122に基づく多数の位置だけ、論理アレイアドレス104を循環シフト、すなわち回転させることによって得られてもよい。循環シフトを用いる変換の例として、n本のラインが論理アレイアドレスLに存在し、アレイの論理位置に基づいて、変換回路によって実行されるシフト量がmの場合、アレイアドレスAは、以下の通り定義されてもよい。
Ai=L(i+m)mod n
他の実施形態において、論理アレイアドレス104の複数の上位ラインは、複数の論理位置122だけ回転させられることにより、第1の列アドレス123を得てもよく、論理アレイアドレス104の複数の下位ラインは、異なる複数の論理位置122だけ回転させられることにより、第1の行アドレス124を得てもよい。他の実施形態において、論理アレイアドレス104の複数のラインは、異なる複数の変換回路の異なる疑似ランダム構成において、スワップされてもよい。いくつかの実施形態において、いくつかのアドレスラインは、リオーダされなくてもよい。論理アレイアドレス104の複数のアレイアドレスに対する少なくとも2つの固有のマッピングを形成するために実行される、少なくとも2つの異なる固有の変換が存在する限り、アドレスラインリオーダの任意の構成が用いられてもよい。
いくつかの実施形態において使用可能な他のタイプの変換は、論理アレイアドレスに対する演算オペレーションの実行を含む。一実施形態において、アレイアドレスは、複数の論理位置を論理アレイアドレスに追加し、生成されたあらゆる追加の上位ビットを切り捨てることによって得られてもよい。このような変換の例として、アレイアドレスAは、論理位置Nに基づいて、nビットを有する論理アドレスLから算出されてもよく、ここで、0≦N<2であり、Mは、以下の数式による様々な変換回路で一定の奇数である。
A=(L+N×M)modulo2
変換の他の例は、以下の数式で表されてもよい。
A=(L×(2N+1)+3Mmodulo2
2つの論理アレイアドレスが同じ変換回路によって単一のアレイアドレスにマッピングされない限り、任意の他の種類の演算オペレーションが実行されてもよい。
データをコードワードに寄与し得る異なる複数のアレイの複数のアレイアドレスへのこのような変換を実行することは、訂正不可能なエラーを低減し得る。メモリのいくつかのエラーは、製造欠陥がランダムであることからランダムな位置に配置されるが、いくつかのエラーは体系的なことがある。複数の体系的なエラーは、メモリアレイ内におけるメモリセルの物理位置に関連することがある。このような体系的なエラーの複数の原因は、複数のラインドライバ及び電力との接続が配置されるメモリアレイの端部からセルまでの距離、複数のメモリアレイ間で反復し得る複数のマスク欠陥、または他の複数の体系的な問題に基づくことがある。複数のエラー訂正コードは、実施形態に応じて、検出または訂正可能な、限定的な数のエラーを有する。体系的なエラーがアレイ内におけるセルの物理位置に基づく場合、複数のアレイは高確率で、当該特定の位置に複数の欠陥セルを有する可能性がある。アドレス変換が実行されない場合、複数のメモリアレイのセットにおける複数のメモリアレイのそれぞれの同じ物理位置が、共通のコードワードにマッピングされてもよく、これにより、コードワードの多数のエラーが訂正可能なビット数を上回り、これは、コードワードのエラーによる過負荷と称されることがある。コードワードの複数のビットの複数の物理位置を、複数の様々なメモリアレイ内で分配することによって、体系的なエラーの影響は低減可能であり、これにより、メモリお訂正不可能なエラーの数を低減し得る。
コードワードが複数のメモリデバイスに分配されるいくつかの実施形態において、複数の異なるデバイスの同じ物理位置にある複数のメモリアレイが、異なる複数のアレイアドレスを受信し得るように、論理位置は、メモリデバイスの識別子を含んでもよい。こうすることによって、集積回路ダイ内におけるメモリアレイの物理位置に関連する複数の体系的な欠陥は、緩和もされ得る。
図2は、複数のメモリアレイ200のうちのアレイにおけるコードワードの複数のビットの分配の実施形態の図を示す。複数のメモリアレイ200のうちのアレイは、第1のメモリデバイス210及び第2のメモリデバイス250のような任意の数のメモリデバイスを含んでもよい。メモリデバイス210、250は、様々な複数の態様でグループ化され得る複数のメモリアレイの複数のアレイを、それぞれ含む。図示される実施形態において、第1のメモリデバイス210は、第1のパーティション220、第2のパーティション230及び第3のパーティション240のような複数のパーティションを含む。第2のメモリデバイス250も、第1のパーティション260、第2のパーティション270及び第3のパーティション280のような複数のパーティションを含む。
複数の様々なパーティションは、パーティションが複数のメモリアレイの複数のグループであるように、複数のメモリアレイの複数のグループのうちのグループに分配されてもよい。第1のメモリデバイス210の第1のパーティション220は、第1のグループ221、第2のグループ222及び第3のグループ223を含む。同様に、第2のメモリデバイス250の第1のパーティション260は、第1のグループ261、第2のグループ262及び第3のグループ263を含む。第1のメモリデバイス210の第1のパーティション220の第1のグループ221のような複数のメモリアレイのグループは、第1のメモリアレイ224、第2のメモリアレイ225及び第3のメモリアレイ226のような1つまたは複数のメモリアレイを含んでもよい。複数の実施形態は、任意の数のパーティションを、メモリデバイスに含んでもよく、パーティションは、メモリの任意の数のグループと、任意の数のメモリアレイ、すなわちタイルを含むグループとを含む。複数の他の実施形態は、複数のメモリアレイの他の複数の体系を用いてもよく、これは、体系中に、より大きいまたはより少ないレベルの階層を有する。
図示された実施形態において、複数の小さい黒い正方形は、単一のコードワードも割り当てられるデータの複数のビット、例えば、第1のメモリデバイス210の第1のパーティション220の第1のグループ221のメモリアレイ225におけるデータビット227、第1のメモリデバイス210の第1のパーティション220の第2のグループ222のメモリアレイ228におけるデータビット229、第1のメモリデバイス210の第2のパーティション230の第1のグループのメモリアレイ237におけるデータビット235、及び第2のメモリデバイス250の第1のパーティション260の第1のグループ261のメモリアレイ265におけるデータビット267を示す。図示された全てのメモリアレイは、コードワードのデータビットを含むが、示されたまたは示されていない複数のグループ、示されたまたは示されていない複数のパーティション、示されたまたは示されていない複数のメモリデバイスにあり得る複数の他のメモリアレイは、複数のメモリアレイ200のうちのアレイに含まれていてもよく、図示されたコードワードのあらゆるデータを含んでいてもよく、またはいなくてもよい。
単一アクセスの場合、物理アドレスは、黒い正方形を含むメモリアレイのような2つまたはそれより多くのアレイを識別してもよい。論理アレイアドレスは、物理アドレスによって識別された2つまたはそれより多くのアレイにおける論理位置を識別してもよい。図示された実施形態において、論理アレイアドレスは、複数のメモリアレイのグループがどのパーティションまたはどのチップにあるかを考慮することなく、パーティション内における論理グループ番号に基づいて変換される。複数のメモリアレイ内における黒い正方形の位置からわかるように、グループ内における複数の様々なメモリアレイのうちのアレイアドレスは、同じである。そこで、メモリアレイ224及びメモリアレイ226における複数の黒い正方形の位置は、メモリアレイ225における黒い正方形227の位置と同じであり、その理由は、これら3つのメモリアレイが、第1のメモリデバイス220の第1のパーティション220の第1のグループ221にあるからである。
黒い正方形の位置は、コードワードのデータビットを表すが、図示された実施形態の任意のメモリデバイスにおける任意のパーティションの第1のグループにおける複数の他のメモリアレイに対しては、同じ位置にある。そこで、第1のメモリデバイス210の第2のパーティション230の第1のグループのメモリアレイ237のデータビット235の物理位置と、第2のメモリデバイス260の第1のパーティション260の第1のグループ261のメモリアレイ265のデータビット267の物理位置とは、第1のメモリデバイス210の第1のパーティション220の第1のグループ221のメモリアレイ225のデータビット227の物理位置と同じである。しかし、第1のメモリデバイスの第1のパーティション220の第2のグループ222におけるメモリアレイ228のデータビット229の位置は、異なる。
図3は、複数のメモリアレイ300のうちのアレイにおけるコードワードの複数のビットの分配の代替的な実施形態の図を示す。複数のメモリアレイ300のうちのアレイは、チップ識別子ID0 315に連結される第1のメモリデバイス310、及び異なるチップ識別子ID1 355に連結される第2のメモリデバイス350のような、任意の数のメモリデバイスを含んでもよい。メモリデバイス310、320は、複数のメモリアレイのうちのアレイを含み、これらは、図2の複数のメモリデバイスと同様にグループ化されてもよい。図示された実施形態において、第1のメモリデバイス310は、第1のパーティション320、第2のパーティション330及び第3のパーティション340のような複数のパーティションを含む。第2のメモリデバイス350も、第1のパーティション360、第2のパーティション370及び第3のパーティション380のような複数のパーティションを含む。複数の様々なパーティションが、パーティションが複数のメモリアレイの複数のグループのうちのグループとなるように、複数のメモリアレイの複数のグループに分配されてもよい。第1のメモリデバイス310の第1のパーティション320は、第1のグループ321、第2のグループ322及び第3のグループ323を含む。同様に、第2のメモリデバイス350の第1のパーティション360は、第1のグループ361、第2のグループ362及び第3のグループ363を含む。
図示された実施形態において、論理アレイアドレスは、パーティション内における論理グループ番号、デバイスを有するパーティション番号及びデバイスのチップ識別子に基づいて変換される。複数のメモリアレイ内における黒い正方形の位置からわかるように、グループ内における複数の様々なメモリアレイのうちのアレイアドレスは、同じであるが、当該位置は、図示された各グループに対して異なる。そこで、メモリアレイ324及びメモリアレイ326において複数の黒い正方形によって表されるように、コードワード内におけるデータワードの物理位置は、メモリアレイ325における黒い正方形327の位置と同じであり、その理由は、これら3つのメモリアレイが、第1のメモリデバイス320の第1のパーティション320の第1のグループ321にあるからである。
しかし、第1のメモリデバイス310の第1のパーティション320のメモリアレイ328におけるデータワード329の位置は、メモリアレイ325におけるデータワード327の位置とは、これらが同じメモリデバイス310の同じパーティション320にある場合でさえも、異なる。同様に、第1のメモリデバイス310の第2のパーティション330のメモリアレイ337におけるデータワード335の位置は、メモリアレイ325におけるデータワード327の位置とは、これらが同じメモリデバイス310の同じグループ番号にある場合でさえも異なり、第2のメモリデバイス350の第1のパーティション360のメモリアレイ365におけるデータワード367の位置は、メモリアレイ325におけるデータワード327の位置とは、これらが同じパーティション番号の同じグループ番号にある場合でさえも異なり、その理由は、これらが異なる複数のメモリデバイスにあるからである。
図4は、メモリの訂正不可能なエラーを低減するために体系化された電子システム400の実施形態のブロック図である。監視回路401は、複数の制御/アドレスライン403と複数のデータライン404によって、メモリデバイス410に連結される。いくつかの実施形態において、データ及び制御は、同じ複数のラインを用いてもよい。監視回路401は、プロセッサ、マイクロプロセッサ、マイクロコントローラ、有限状態機械、またはいくつかの他のタイプの制御回路を含んでもよい。いくつかの実施形態において、監視回路401は、プログラムの複数の命令を実行してもよい。いくつかの実施形態において、監視回路401は、メモリデバイス410と同じパッケージで一体化してもよく、または同じダイ上にあってもよい。いくつかの実施形態において、監視回路401は、制御回路411と一体化してもよく、それによって、同じ回路のいくつかは、両方の機能のために使用可能となる。監視回路401は、プログラムストレージ及び中間データのために用いられるランダムアクセスメモリ(RAM)及びリードオンリメモリ(ROM)のような外部メモリを有してもよく、または、これは、内部RAMまたはROMを有してもよい。いくつかの実施形態において、監視回路401は、プログラムまたはデータストレージのために、メモリデバイス410を用いてもよい。監視回路401上で実行されるプログラムは、多くの異なる機能を実装してもよく、これらは、限定的ではないが、オペレーティングシステム、ファイルシステム、メモリブロックリマッピング及びエラー訂正を含む。
いくつかの実施形態において、外部接続402が設けられる。外部接続402は、入出力(I/O)回路405に連結され、これは、次に、監視回路401に連結されてもよく、それによって、監視回路401は外部デバイスと通信することを可能とする。いくつかの実施形態において、I/O回路405は、監視回路401と一体化されてもよく、それによって、外部接続402は、監視回路401に直接連結される。電子システム400がストレージシステムである場合、外部接続402は、外部デバイスに不揮発性ストレージを与えるために、用いられてもよい。電子システム400は、ソリッドステートドライブ(SSD)、USBサムドライブ、セキュアデジタルカード(SDカード)、または任意の他の種類のストレージシステムであってもよい。外部接続402は、規格のまたは権利を有する通信プロトコルを用いたコンピュータまたは携帯電話もしくはデジタルカメラのような他のインテリジェントデバイスに接続するために、用いられてもよい。外部接続402が準拠し得る複数のコンピュータ通信プロトコルの複数の例は、限定的ではないが、複数の以下のプロトコルの任意のバージョン、すなわち、ユニバーサルシリアルバス(USB)、シリアルATA(SATA)、スモールコンピュータシステムインターコネクト(SCSI)、ファイバーチャンネル、パラレルATA(PATA)、集積化ドライブエレクトロニクス(IDE)、イーサネット(登録商標)、IEEE−1394、セキュアデジタルカードインタフェース(SDカード)、コンパクトフラッシュ(登録商標)インタフェース、メモリスティックインタフェース、ペリフェラルコンポーネントインターコネクト(PCI)またはPCIエクスプレス(PCI−e)を含む。
電子システム400が、携帯電話、タブレット、ノートブックコンピュータ、セットトップボックスのようなコンピューティングシステムまたはいくつかの他のタイプのコンピューティングシステムである場合、外部接続402は、限定的ではないが、複数の以下のプロトコルの任意のバージョン、すなわち、Institute of Electrical and Electronic Engineers(IEEE)802.3、IEEE 802.11、Data Over Cable Service Interface Specification(DOCSIS)、Digital Video Broadcasting(DVB)−Terrestrial、DVB−Cable及びAdvanced Television Committee Standard(ATSC)のようなデジタルテレビ規格、及びGlobal System for Mobile Communication(GSM(登録商標))のような携帯電話通信プロトコル、CDMA2000及びLong Term Evolution(LTE)などの符号分割多重アクセス(CDMA)に基づくプロトコルのようなネットワーク接続であってもよい。
メモリデバイス410は、メモリアレイ417、418のアレイ416を含んでもよい。複数のアドレスライン及び複数の制御ライン403は、制御回路411によって受信及びデコードされてもよい。I/O回路412は、監視回路401との間でデータの受信及び送信が可能な複数のデータライン404に連結されてもよい。メモリアレイ416から読み出されたデータは、読み出しバッファ419に暫定的に格納されてもよい。アドレス変換回路413は、1つまたは複数のメモリアレイ417に連結可能な第1のアレイアドレス414と、1つまたは複数のメモリアレイ418に連結可能な第2のアレイアドレス415とを生成してもよい。アドレス変換回路413は、複数のアドレスライン403の少なくとも一部で受信可能な監視回路からの論理アレイアドレスを、メモリアレイのセット内におけるメモリアレイ417、418の複数の論理位置に少なくとも部分的に基づいて、少なくとも2つのアレイ固有アレイアドレス414、415に変換してもよい。
複数のメモリアレイ416のうちのアレイに格納されたデータは、複数のエラー訂正コードを含む複数のコードワードに構成されてもよい。コードワードが複数のメモリアレイ416のうちのアレイから一度読み出されると、コードワードのデータにおいて、1つまたは複数のエラーは訂正されてもよい。いくつかの実施形態において、エラー訂正は、メモリデバイス410内で実行されてもよい。複数の他の実施形態において、監視回路401は、1つまたは複数のメモリアクセスコマンドを用いて、コードワードのデータをメモリデバイス410から読み出してもよく、次に、監視回路401は、コードワードのデータにおける1つまたは複数のエラーを訂正してもよい。
図4に示されるシステムは、メモリの複数の特徴に対する基本的な理解を容易にするために、簡略化されている。多くの異なる実施形態は、複数のメモリデバイス410を制御することによってソリッドステートドライブとして機能させるために、ソリッドステートドライブコントローラを監視回路401及びI/O回路405として用いることを含むことが可能である。他の実施形態は、監視回路401及びI/O回路405のために、ディスプレイを駆動するビデオグラフィクスコントローラのような追加の複数の機能を有するプロセッサを用いてもよく、人向けのI/Oのための他の複数のデバイスが、パーソナルコンピュータ、パーソナルコンピュータまたはスマートフォンを実装するために用いられてもよい。
図5は、メモリの訂正不可能なエラーを低減するための方法の実施形態のフローチャート500である。方法は、ブロック501から開始し、ブロック502において、論理アレイアドレスを決定する。いくつかの実施形態において、論理アレイアドレスは、メモリデバイスに連結可能なプロセッサまたは監視回路から送信されるアドレスの一部であってもよい。論理アレイアドレスは、ブロック503において、複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、少なくとも2つの固有アレイアドレスに変換されてもよい。いくつかの実施形態において、変換は、複数のリオーダアドレスラインによって実行されてもよい。複数の他の実施形態において、変換は、論理アレイアドレスを用いる1つまたは複数の演算オペレーションによって実行されてもよい。いくつかの実施形態において、変換は、制御レジスタにおいてプログラムされた複数の値にさらに基づいてもよい。
固有アレイアドレスは、複数の行アドレス及び複数の列アドレスを含んでもよい。アレイアドレスは、その組み合わせられた行アドレス及び列アドレスが他の複数のアレイアドレスと異なる場合に、固有である。そこで、2つのアレイアドレスは、第1の行アドレスが第2の行アドレスと異なるか、または第1の列アドレスが第2の列アドレスと異なる場合に、固有である。
複数のアレイアドレスは、ブロック504において、複数のメモリアレイにアクセスするために用いられてもよい。1つのアレイアドレスは、複数のメモリアレイのセットの複数のメモリアレイのグループに連結されてもよい。複数のメモリアレイのセット内における複数のメモリアレイのグループの位置は、論理アレイアドレスを変換するための論理位置として用いられてもよい。いくつかの実施形態において、システムの複数のチップ間を区別可能なチップ識別子が、論理位置の一部として用いられてもよい。2つまたはそれより多くのメモリアレイからのデータは、複数のエラー訂正コードを含むデータのワードを決定するために読み出されてもよく、データのワードの少なくとも1つのエラーは、フローチャート500が完了するブロック506の前に、ブロック505において訂正されてもよい。
図6は、メモリの訂正不可能なエラーを低減するための方法の代替的な実施形態のフローチャート600である。フローチャート600は、ブロック601から開始し、ブロック602においてメモリデバイスにおける2つまたはそれより多くのメモリアレイの複数のエラー率を決定することによって、継続する。いくつかの実施形態において、2つまたはそれより多くのメモリアレイの複数のエラー率の決定は、スタンドアロンのメモリデバイスの製造テスト工程の一部として、それがシステムと一体化される前に、行われてもよい。メモリダイに対する製造テストは、パッケージングの前、または、それがパッケージと一体化された後で、実行されてもよい。いくつかの実施形態において、複数のメモリダイは、パッケージにおけるダイの論理位置を識別するチップ識別子入力を有する単一パッケージと一体化されてもよい。複数の他の実施形態において、2つまたはそれより多くのメモリアレイの複数のエラー率の決定は、メモリデバイスが、コンピュータ、タブレット、スマートフォンまたはいくつかの他のタイプの電子システムのようなシステムと一体化された後、システム環境において実行されてもよい。複数のメモリアレイは、これらの複数のエラー率を決定するために、システムテスト環境において、すなわち通常の動作中に、テストされてもよく、テストは、システムが製造された時点で、またはシステムが配置された後でさえも、行われてもよい。いくつかの実施形態において、複数のエラー率は、システムの通常動作中に収集されたデータに基づいてもよく、2つまたはそれより多くのメモリアレイを2つまたはそれより多くのコードワード多くにマッピングする方法を決定することを助けるために適用可能であってもよい。
2つまたはそれより多くのメモリアレイの複数のエラー率が一度得られると、2つまたはそれより多くのメモリアレイの2つまたはそれより多くのコードワードに対するマッピングは、複数のエラー率に基づいて決定603されてもよい。複数の他のメモリアレイよりエラー率の高い複数のメモリアレイは、複数のエラーが訂正可能となる可能性が高まるようにこれらを分配するために、異なる複数のコードワードの間で分配されてもよい。同様に、複数の他のメモリアレイよりエラー率の低い複数のメモリアレイは、分配されてもよい。可能性が高い複数のエラーを複数のコードワード間で分配することによって、単一のコードワードにおいて発生する可能性が高いエラーの数が低減可能であり、これにより、訂正不可能なエラーの数が低減され得る。
所望のマッピングが一度決定されると、制御レジスタは、2つまたはそれより多くのメモリアレイを2つまたはそれより多くのコードワードにマッピングするようにプログラム604されてもよい。制御レジスタは、任意のタイプのストレージ技術を用いてもよいが、少なくとも一実施形態においては、複数の不揮発性のワンタイムプログラマブルエレメントを用いてもよい。プログラミングは、実施形態に応じて、例えば、製造テスト工程の一部として、またはシステム環境において、任意の時点に実行されてもよい。動作時において、メモリデバイスは、1つまたは複数のメモリアクセスに応答することにより、データのコードワードがメモリデバイスから取得されることを可能としてもよい。次に、データのコードワードにおける少なくとも1つのエラーは、訂正されてもよい。フローチャートは、ブロック605において完了する。
図7Aおよび7Bは、メモリの訂正不可能なエラーを低減するために体系化されたメモリ700の実施形態のブロック図である。メモリ700は、図6に示される方法によって用いられることに適していてもよい。メモリ700は、複数の制御レジスタ701と、アドレス703を受信し、制御レジスタ701にプログラムされたデータを用いることによって、メモリアレイ711、712、721、722を選択的にイネーブルにするアドレス変換回路702とを含む。複数のメモリアレイは、複数のメモリアレイの複数のグループにグループ化されてもよく、ここで、複数のメモリアレイのグループからのデータは、コードワードにおいてエラー訂正のために用いられる。フローチャート600において説明されたように、複数のメモリアレイは、これらの複数のエラー率を決定するためにテストされてもよい。複数のエラー率が一度決定されると、制御レジスタは、異なる複数のコードワード間で、よりエラー率の高い複数のメモリアレイを分配するようにプログラムされてもよい。
図7Aにおいて、複数のメモリアレイは、テストされてもよく、メモリアレイ711は、最も低いエラー率を有し、メモリアレイ722は、2番目に低いエラー率を有し、メモリアレイ721は、2番目に高いエラー率を有し、メモリアレイ712は、最も高いエラー率を有すると決定されてもよい。複数のエラー率が一度決定されると、メモリアレイ711及びメモリアレイ712を第1のグループ731に、メモリアレイ721及びメモリアレイ722を第2のグループ732にグループ化することが、訂正不可能なメモリエラーの低減を与えると決定されてもよい。制御レジスタ701は、次に、アドレス変換回路702を制御するための情報により、当該マッピングを実行するようにプログラムされてもよい。そこで、2つまたはそれより多くのメモリアレイのうち複数の他のメモリアレイよりエラー率の高い第1のメモリアレイ712は、特定のコードワードにマッピングされてもよく、2つまたはそれより多くのメモリアレイのうち複数の他のメモリアレイよりエラー率の低い第2のメモリアレイ711は、同じ特定のコードワードにマッピングされてもよい。
図7Bにおいて、複数のメモリアレイは、テストされてもよく、メモリアレイ712は、最も低いエラー率を有し、メモリアレイ711は、2番目に低いエラー率を有し、メモリアレイ721は、2番目に高いエラー率を有し、メモリアレイ722は、最も高いエラー率を有すると決定されてもよい。複数のエラー率が一度決定されると、メモリアレイ711及びメモリアレイ721を第1のグループ741に、メモリアレイ712及びメモリアレイ722を第2のグループ742にグループ化することが、訂正不可能なメモリエラーの低減を与えると決定されてもよい。制御レジスタ701は、次に、アドレス変換回路702を制御するための情報により、当該マッピングを実行するようにプログラムされてもよい。
複数の図のフローチャート及び/または複数のブロック図は、複数の様々な実施形態の複数の方法の可能な複数の実装の動作を示す助けとなる。いくつかの代替的な実装において、ブロックにおいて言及された複数の機能は、複数の図で言及されたものとは異なる順番で行われてもよいことに留意されたい。例えば、相次いで示される2つのブロックは、実際には、実質的に同時に実行されてもよく、または、複数のブロックは、関連する機能に応じて、逆の順番で実行されることがあってもよい。
複数の様々な実施形態の例が、以下の複数の段落において説明される。
訂正不可能なメモリエラーを低減するための例示的な方法は、複数のメモリアレイのセットに対する論理アレイアドレスを決定する段階と、複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する段階と、少なくとも2つの固有アレイアドレスをそれぞれ用いて、少なくとも2つのメモリアレイにアクセスする段階とを含む。変換は、複数のメモリアレイのセットからのデータを含む複数のエラー訂正コードワードにおける訂正不可能なエラーを低減する。いくつかの例示的な方法において、エラー訂正コードワードは、少なくとも複数のメモリアレイのセットの複数のメモリアレイのそれぞれからのデータのビットを含み、少なくとも2つのメモリアレイにおける共通物理位置は、少なくとも2つの異なるエラー訂正コードワードにマッピングされることにより、複数のエラーを有するエラー訂正コードワードを過負荷にする複数のメモリアレイのセットにおいて、複数の体系的なエラーによる複数の訂正不可能なメモリエラーを低減する。いくつかの例示的な方法は、少なくとも2つの固有アレイアドレスを用いて、複数のメモリアレイのセットからエラー訂正コードワードのデータを取得する段階と、複数のメモリアレイのセットからのエラー訂正コードワードのデータをコントローラに与える段階とをさらに含んでもよく、コントローラは、エラー訂正コードワードにおける1つまたは複数のエラーを訂正する。いくつかの例示的な方法において、変換する段階は、論理アレイアドレスの複数のアドレスラインをリオーダする段階を含む。いくつかの例示的な方法において、変換する段階は、論理アレイアドレスに対して演算オペレーションを実行する段階を含む。いくつかの例示的な方法において、変換する段階は、制御レジスタにプログラムされた複数の値に、部分的にさらに基づく。いくつかの例示的な方法において、第1の固有アレイアドレスは、第1の行アドレス及び第1の列アドレスを含み、第2の固有アレイアドレスは、第2の行アドレス及び第2の列アドレスを含み、第1の行アドレスは、第2の行アドレスと異なるか、または、第1の列アドレスは、第2の列アドレスと異なる。いくつかの例示的な方法は、少なくとも2つの固有アレイアドレスの第1の固有アレイアドレスを用いて、複数のメモリアレイのセット内における複数のメモリアレイのグループにアクセスする段階をさらに含む。いくつかの例示的な方法において、少なくとも2つのメモリアレイの論理位置は、複数のメモリアレイのセット内における複数のメモリアレイの複数のグループの複数の識別子を含む。いくつかの例示的な方法において、少なくとも2つのメモリアレイの論理位置は、複数のチップ識別子をさらに含む。この段落の複数の例の任意の組み合わせは、複数の実施形態において使用可能である。
集積回路の例は、複数のメモリアレイのセットに対する論理アレイアドレスを決定する手段と、複数のメモリアレイのセット内における少なくとも2つのメモリアレイの論理位置に少なくとも部分的に基づいて、論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する手段と、少なくとも2つの固有アレイアドレスのそれぞれを用いて、少なくとも2つのメモリアレイにアクセスする手段とを含み、論理アレイアドレスの変換は、複数のメモリアレイのセットからのデータを含む複数のエラー訂正コードワードにおける訂正不可能なエラーを低減する。いくつかの集積回路の例において、エラー訂正コードワードは、少なくとも複数のメモリアレイのセットの複数のメモリアレイのそれぞれからのデータのビットを含み、少なくとも2つのメモリアレイにおける共通物理位置は、少なくとも2つの異なるエラー訂正コードワードにマッピングされることにより、複数のエラーを有するエラー訂正コードワードを過負荷にする複数のメモリアレイのセットにおいて、複数の体系的なエラーによる複数の訂正不可能なメモリエラーを低減する。いくつかの集積回路の例は、少なくとも2つの固有アレイアドレスを用いて、複数のメモリアレイのセットからエラー訂正コードワードのデータを取得する手段と、複数のメモリアレイのセットからのエラー訂正コードワードのデータをコントローラに与える手段とをさらに含み、コントローラは、エラー訂正コードワードにおける1つまたは複数のエラーを訂正するように構成される。いくつかの集積回路の例において、変換する手段は、論理アレイアドレスの複数のアドレスラインをリオーダする手段を含む。いくつかの集積回路の例において、変換する手段は、論理アレイアドレスに対して演算オペレーションを実行する手段を含む。いくつかの集積回路の例において、第1の固有アレイアドレスは、第1の行アドレス及び第1の列アドレスを含み、第2の固有アレイアドレスは、第2の行アドレス及び第2の列アドレスを含み、第1の行アドレスは、第2の行アドレスと異なるか、または、第1の列アドレスは、第2の列アドレスと異なる。いくつかの集積回路の例は、少なくとも2つの固有アレイアドレスの第1の固有アレイアドレスを用いて、複数のメモリアレイのセット内における複数のメモリアレイのグループにアクセスする手段をさらに含む。いくつかの集積回路の例において、少なくとも2つのメモリアレイの論理位置は、複数のメモリアレイのセット内における複数のメモリアレイの複数のグループの複数の識別子を含む。この段落の複数の例の任意の組み合わせは、複数の実施形態において使用可能である。
集積回路の例は、少なくとも第1のメモリアレイ及び第2のメモリアレイを含む複数のメモリアレイのセットと、第1のメモリアレイに連結される論理アレイアドレスを、複数のメモリアレイのセット内における第1のメモリアレイの論理位置に少なくとも部分的に基づいて、第1の固有アレイアドレスに変換する第1の回路と、第2のメモリアレイに連結される論理アレイアドレスを、複数のメモリアレイのセット内における第2のメモリアレイの論理位置に少なくとも部分的に基づいて、第2の固有アレイアドレスに変換する第2の回路とを含む。集積回路の例において、第1の固有アレイアドレスにおける第1のメモリアレイからのデータと、第2の固有アレイアドレスにおける第2のメモリアレイからのデータとは、特定のエラー訂正コードワードに含まれることにより、特定のエラー訂正コードワードの訂正不可能なエラーを低減する。いくつかの集積回路の例において、第1のエラー訂正コードワードは、第1の論理アレイアドレスによって識別されるデータを含み、第2のエラー訂正コードワードは、第2の論理アレイアドレスによって識別されるデータを含み、第1の回路は、第1の論理アドレスを、第1のメモリアレイにおける特定のアレイ位置を識別するように変換し、第2の回路は、第2の論理アドレスを、第2のメモリアレイにおける特定のアレイ位置を識別するように変換し、第1のメモリアレイ及び第2のメモリアレイの両方における特定のアレイ位置の体系的なエラーは、第1のエラー訂正コードワード及び第2のエラー訂正コードワードの間の複数のエラーを分配することにより、第1のエラー訂正コードワードまたは第2のエラー訂正コードワードのいずれかを複数のエラーによって過負荷にすることを回避する。いくつかの集積回路の例は、データインタフェースをさらに含むことにより、特定のエラー訂正コードワードのデータをコントローラに与え、コントローラは、特定のエラー訂正コードワードにおける1つまたは複数のエラーを訂正するように構成されてもよい。いくつかの集積回路の例において、第1の回路は、論理アレイアドレスの複数のアドレスラインをリオーダする回路を含む。いくつかの集積回路の例において、第1の回路は、論理アレイアドレスと、メモリアレイのセット内における第1のメモリアレイの論理位置の少なくとも一部とを用いて、演算オペレーションを実行する回路を含む。いくつかの集積回路の例において、第2の回路は、論理アレイアドレスと、メモリアレイのセット内における第2のメモリアレイの論理位置の少なくとも一部とを用いて、演算オペレーションを実行する回路を含む。いくつかの集積回路の例において、第1の回路は、制御レジスタにプログラムされた複数の値に部分的に基づいて、論理アレイアドレスを変換する回路を含む。いくつかの集積回路の例において、少なくとも2つのメモリアレイの論理位置は、複数のメモリアレイのセット内における複数のメモリアレイの複数のグループの複数の識別子を含む。いくつかの集積回路の例は、チップ識別子入力をさらに含み、少なくとも2つのメモリアレイの複数の論理位置は、チップ識別子入力から受信された複数の値をさらに含む。この段落の複数の例の任意の組み合わせは、複数の実施形態において使用可能である。
電子システムの例は、論理アレイアドレスを含む複数のメモリ読み出しコマンドを生成する監視回路と、監視回路に連結され、複数のメモリ制御コマンドに応答するメモリとを含む。電子システムの例におけるメモリは、複数のメモリアレイのセットと、複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する回路とを含み、少なくとも2つの固有アレイアドレスは、少なくとも2つのメモリアレイにそれぞれ連結され、回路は、少なくとも2つのメモリアレイからの少なくとも2つの固有アレイアドレスによって識別されるデータを、複数のメモリ制御コマンドに応じて監視回路に与える。電子システムの例において、論理アレイアドレスによって識別されるデータは、特定のエラー訂正コードワードに含まれることにより、特定のエラー訂正コードワードにおける訂正不可能なエラーを低減し、監視回路は、特定のエラー訂正コードワードを含むデータエラー訂正コードワードにおける複数のエラーを訂正するように構成される。いくつかの電子システムの例において、少なくとも2つのエラー訂正コードワードは、少なくとも2つの異なる論理アレイアドレスのそれぞれによって識別されるデータを含み、回路は、少なくとも2つの異なる論理アレイアドレスのそれぞれを、少なくとも2つのメモリアレイにおける共通アレイ位置にアドレスするように変換し、少なくとも2つのメモリアレイにおける共通アレイ位置の体系的なエラーは、下位2つのエラー訂正コードワード間に複数のエラーを分配することにより、下位2つのエラー訂正コードワードのいずれか1つを複数のエラーによって過負荷にすることを回避する。いくつかの電子システムの例において、論理アレイアドレスを変換するための回路は、少なくとも2つの固有アレイアドレスを形成するために、論理アレイアドレスの複数のアドレスラインをリオーダするための回路を含む。いくつかの電子システムの例において、論理アレイアドレスを変換するための回路は、第1のメモリアレイに連結される第1の固有アレイアドレスを形成するために、論理アレイアドレス及び複数のメモリアレイのセット内における第1のメモリアレイの論理位置の少なくとも一部を用いて、演算オペレーションを実行するための回路と、第2のメモリアレイに連結される第2の固有アレイアドレスを形成するために、論理アレイアドレス及び複数のメモリアレイのセット内における第2のメモリアレイの論理位置の少なくとも一部を用いて、演算オペレーションを実行するための回路とを含む。いくつかの電子システムの例において、回路は、制御レジスタにプログラムされる複数の値に部分的に基づいて、論理アレイアドレスを変換するための回路を含む。いくつかの電子システムの例において、少なくとも2つのメモリアレイの複数の論理位置は、複数のメモリアレイのセット内における複数のメモリアレイの複数のグループの複数の識別子を含む。いくつかの電子システムの例において、メモリは、第1のメモリであり、電子システムは、第1のメモリに連結される第1のチップ識別子と、監視回路に連結される第2のメモリと、第2のメモリに連結される第2のチップ識別子とをさらに含む。いくつかの電子システムの例において、第2のメモリは、第1のメモリアレイ及び第2のメモリアレイと、第2のチップ識別子に少なくとも部分的に基づいて、論理アレイアドレスを、第1のメモリアレイ及び第2のメモリアレイの行及び列アドレスに変換するための第1の回路と、複数のメモリ制御コマンドに応じて、第1のメモリアレイ及び第2のメモリアレイからの追加のデータを、監視回路に与えるための第2の回路とを含む。いくつかの電子システムの例において、第1のメモリの回路は、第1のチップ識別子に少なくとも部分的に基づいて、論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換し、監視回路は、第1のメモリからのデータ及び第2のメモリからの追加のデータを含むコードワードの少なくとも1つのエラーを訂正するように構成される。いくつかの電子システムの例は、外部デバイスと通信を行うために、監視回路に連結されるI/O回路をさらに含んでもよい。少なくとも1つの電子システムの例は、ソリッドステートドライブである。この段落の複数の例の任意の組み合わせは、複数の実施形態において使用可能である。
訂正不可能なメモリエラーを低減するための例示的な方法は、メモリデバイスにおける2つまたはそれより多くのメモリアレイの複数のエラー率を得る段階と、複数のエラー率に基づいて、2つまたはそれより多くのメモリアレイを2つまたはそれより多くのコードワードにマッピングすることを決定する段階と、2つまたはそれより多くのメモリアレイを2つまたはそれより多くのコードワードにマッピングするための制御レジスタをプログラミングする段階とを含んでもよく、マッピングは、2つまたはそれより多くのコードワードにおける訂正不可能なエラーを低減する。いくつかの例示的な方法において、制御レジスタにプログラムされる複数の値は、2つまたはそれより多くのメモリアレイの複数の他のメモリアレイよりエラー率の高い第1のメモリアレイを、特定のコードワードにマッピングし、2つまたはそれより多くのメモリアレイの複数の他のメモリアレイよりエラー率の低い第2のメモリアレイを、特定のコードワードにマッピングするように、メモリデバイスを構成する。いくつかの例示的な方法において、決定する段階及びプログラミングする段階は、メモリデバイスに対する製造テスト工程の一部として実行される。いくつかの例示的な方法において、決定する段階及びプログラミングする段階は、システム環境において実行される。いくつかの例示的な方法は、メモリデバイスからのデータのコードワードを取得する段階と、データのコードワードにおける少なくとも1つのエラーを訂正する段階とをさらに含んでもよい。この段落の複数の例の任意の組み合わせは、複数の実施形態において使用可能である。
電子システムの例は、メモリデバイスにおける2つまたはそれより多くのメモリアレイの複数のエラー率を得る手段と、2つまたはそれより多くのコードワードにおける訂正不可能なエラーを低減するために、複数のエラー率に基づいて、2つまたはそれより多くのメモリアレイを2つまたはそれより多くのコードワードにマッピングすることを決定する手段と、2つまたはそれより多くのメモリアレイを2つまたはそれより多くのコードワードにマッピングするための制御レジスタうぃプログラミングする手段とを含む。いくつかの電子システムの例は、2つまたはそれより多くのメモリアレイの複数の他のメモリアレイよりエラー率の高い第1のメモリアレイを特定のコードワードにマッピングし、2つまたはそれより多くのメモリアレイの複数の他のメモリアレイよりエラー率の低い第2のメモリアレイを特定のコードワードにマッピングするためのメモリデバイスを構成する制御レジスタに、複数の値をプログラミングする手段をさらに含んでもよい。いくつかの電子システムの例は、メモリデバイスからのデータのコードワードを取得する手段と、データのコードワードにおける少なくとも1つのエラーを訂正する手段とをさらに含んでもよい。この段落の複数の例の任意の組み合わせは、複数の実施形態において使用可能である。
本明細書及び添付の特許請求の範囲で用いられるように、単数形の「a」、「an」及び「the」は、その内容が明らかに異なるものを示さない限り、複数の対象を含む。さらに、本明細書及び添付の特許請求の範囲で用いられるように、その内容が明らかに異なるものを示さない限り、用語「または」は、概して、「及び/または」を含む意味で用いられる。本明細書で用いられるように、用語「連結され」は、直接的及び間接的な接続を含む。さらに、第1及び第2のデバイスは、連結され、複数の能動型デバイスを含む複数の介在デバイスが、これらの間に配置される。
上述された複数の様々な実施形態の説明は、本質的に例示的なものであり、本開示、その用途または複数の使用法を限定することを意図するものではない。つまり、本明細書で説明されたものを超える異なる複数の変形は、複数の実施形態の範囲内にあることが意図される。このような複数の変形は、意図される本開示の範囲から逸脱するものとみなされるべきではない。したがって、本開示の広さ及び範囲は、上述された例示的な複数の実施形態によって限定されるべきではなく、以下の特許請求の範囲及びそれらの複数の均等物によってのみ定義されるべきである。

Claims (28)

  1. 訂正不可能なメモリエラーを低減する方法であって、
    複数のメモリアレイのセットの論理アレイアドレスを決定する段階と、
    前記複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、前記論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する段階と、
    前記少なくとも2つの固有アレイアドレスのそれぞれを用いて、前記少なくとも2つのメモリアレイにアクセスする段階と、を備え、
    前記変換する段階は、前記複数のメモリアレイのセットからのデータを備える複数のエラー訂正コードワードにおける訂正不可能なエラーを低減
    エラー訂正コードワードは、前記複数のメモリアレイのセットの複数のメモリアレイのそれぞれからのデータのビットを少なくとも備え、
    前記少なくとも2つのメモリアレイにおける共通物理位置は、少なくとも2つの異なるエラー訂正コードワードにマッピングされることにより、前記エラー訂正コードワードを複数のエラーで過負荷にする前記複数のメモリアレイのセットにおける複数の体系的なエラーによる訂正不可能なメモリエラーを低減する、方法。
  2. 訂正不可能なメモリエラーを低減する方法であって、
    複数のメモリアレイのセットの論理アレイアドレスを決定する段階と、
    前記複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、前記論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する段階と、
    前記少なくとも2つの固有アレイアドレスのそれぞれを用いて、前記少なくとも2つのメモリアレイにアクセスする段階と、を備え、
    前記変換する段階は、前記複数のメモリアレイのセットからのデータを備える複数のエラー訂正コードワードにおける訂正不可能なエラーを低減し、前記論理アレイアドレスの複数のアドレスラインをリオーダする段階を備える、方法。
  3. 訂正不可能なメモリエラーを低減する方法であって、
    複数のメモリアレイのセットの論理アレイアドレスを決定する段階と、
    前記複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、前記論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する段階と、
    前記少なくとも2つの固有アレイアドレスのそれぞれを用いて、前記少なくとも2つのメモリアレイにアクセスする段階と、を備え、
    前記変換する段階は、前記複数のメモリアレイのセットからのデータを備える複数のエラー訂正コードワードにおける訂正不可能なエラーを低減し、前記論理アレイアドレスに対して演算オペレーションを実行する段階を備える、方法。
  4. 訂正不可能なメモリエラーを低減する方法であって、
    複数のメモリアレイのセットの論理アレイアドレスを決定する段階と、
    前記複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、前記論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する段階と、
    前記少なくとも2つの固有アレイアドレスのそれぞれを用いて、前記少なくとも2つのメモリアレイにアクセスする段階と、
    前記少なくとも2つの固有アレイアドレスの第1の固有アレイアドレスを用いて、前記複数のメモリアレイのセット内における複数のメモリアレイのグループにアクセスする段階と、を備え、
    前記変換する段階は、前記複数のメモリアレイのセットからのデータを備える複数のエラー訂正コードワードにおける訂正不可能なエラーを低減する、方法。
  5. 訂正不可能なメモリエラーを低減する方法であって、
    複数のメモリアレイのセットの論理アレイアドレスを決定する段階と、
    前記複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、前記論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する段階と、
    前記少なくとも2つの固有アレイアドレスのそれぞれを用いて、前記少なくとも2つのメモリアレイにアクセスする段階と、を備え、
    前記変換する段階は、前記複数のメモリアレイのセットからのデータを備える複数のエラー訂正コードワードにおける訂正不可能なエラーを低減し、
    前記少なくとも2つのメモリアレイの前記複数の論理位置は、前記複数のメモリアレイのセット内における複数のメモリアレイの複数のグループの複数の識別子を備える、方法。
  6. 前記少なくとも2つの固有アレイアドレスを用いて、前記複数のメモリアレイのセットからのエラー訂正コードワードのデータを取得する段階と、
    前記複数のメモリアレイのセットからの前記エラー訂正コードワードのデータをコントローラに与える段階と、をさらに備え、
    前記コントローラは、前記エラー訂正コードワードにおける1つまたは複数のエラーを訂正する、請求項1から5のいずれか1項に記載の方法。
  7. 前記変換する段階は、制御レジスタにプログラムされる複数の値に部分的にさらに基づく、請求項1から6のいずれか1項に記載の方法。
  8. 第1の固有アレイアドレスは、第1の行アドレス及び第1の列アドレスを備え、
    第2の固有アレイアドレスは、第2の行アドレス及び第2の列アドレスを備え、
    前記第1の行アドレスが前記第2の行アドレスと異なるか、または、前記第1の列アドレスが前記第2の列アドレスと異なる、請求項1からのいずれか1項に記載の方法。
  9. 前記少なくとも2つのメモリアレイの前記複数の論理位置は、複数のチップ識別子をさらに備える、請求項に記載の方法。
  10. 複数のメモリアレイのセットの論理アレイアドレスを決定する手段と、
    前記複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、前記論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する手段と、
    前記少なくとも2つの固有アレイアドレスのそれぞれを用いて、前記少なくとも2つのメモリアレイにアクセスする手段と、を備え、
    前記論理アレイアドレスの前記変換は、前記複数のメモリアレイのセットからのデータを備えるエラー訂正コードワードにおける訂正不可能なエラーを低減
    エラー訂正コードワードは、前記複数のメモリアレイのセットの複数のメモリアレイのそれぞれからのデータのビットを少なくとも備え、
    前記少なくとも2つのメモリアレイにおける共通物理位置は、少なくとも2つの異なるエラー訂正コードワードにマッピングされることにより、前記エラー訂正コードワードを複数のエラーで過負荷にする前記複数のメモリアレイのセットにおける複数の体系的なエラーによる訂正不可能なメモリエラーを低減する、集積回路。
  11. 複数のメモリアレイのセットの論理アレイアドレスを決定する手段と、
    前記複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、前記論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する手段と、
    前記少なくとも2つの固有アレイアドレスのそれぞれを用いて、前記少なくとも2つのメモリアレイにアクセスする手段と、を備え、
    前記論理アレイアドレスの前記変換は、前記複数のメモリアレイのセットからのデータを備えるエラー訂正コードワードにおける訂正不可能なエラーを低減し、
    前記変換する手段は、前記論理アレイアドレスの複数のアドレスラインをリオーダする手段を備える、集積回路。
  12. 複数のメモリアレイのセットの論理アレイアドレスを決定する手段と、
    前記複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、前記論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する手段と、
    前記少なくとも2つの固有アレイアドレスのそれぞれを用いて、前記少なくとも2つのメモリアレイにアクセスする手段と、を備え、
    前記論理アレイアドレスの前記変換は、前記複数のメモリアレイのセットからのデータを備えるエラー訂正コードワードにおける訂正不可能なエラーを低減し、
    前記変換する手段は、前記論理アレイアドレスに対して演算オペレーションを実行する手段を備える、集積回路。
  13. 複数のメモリアレイのセットの論理アレイアドレスを決定する手段と、
    前記複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、前記論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する手段と、
    前記少なくとも2つの固有アレイアドレスのそれぞれを用いて、前記少なくとも2つのメモリアレイにアクセスする手段と、
    前記少なくとも2つの固有アレイアドレスの第1の固有アレイアドレスを用いて、前記複数のメモリアレイのセット内における複数のメモリアレイのグループにアクセスする手段と、を備え、
    前記論理アレイアドレスの前記変換は、前記複数のメモリアレイのセットからのデータを備えるエラー訂正コードワードにおける訂正不可能なエラーを低減する、集積回路。
  14. 複数のメモリアレイのセットの論理アレイアドレスを決定する手段と、
    前記複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、前記論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換する手段と、
    前記少なくとも2つの固有アレイアドレスのそれぞれを用いて、前記少なくとも2つのメモリアレイにアクセスする手段と、を備え、
    前記論理アレイアドレスの前記変換は、前記複数のメモリアレイのセットからのデータを備えるエラー訂正コードワードにおける訂正不可能なエラーを低減し、
    前記少なくとも2つのメモリアレイの前記複数の論理位置は、前記複数のメモリアレイのセット内における複数のメモリアレイの複数のグループの複数の識別子を備える、集積回路。
  15. 少なくとも第1のメモリアレイ及び第2のメモリアレイを備える複数のメモリアレイのセットと、
    前記複数のメモリアレイのセット内における前記第1のメモリアレイの論理位置に少なくとも部分的に基づいて、論理アレイアドレスを前記第1のメモリアレイに連結される第1の固有アレイアドレスに変換するための第1の回路と、
    前記複数のメモリアレイのセット内における前記第2のメモリアレイの論理位置に少なくとも部分的に基づいて、前記論理アレイアドレスを前記第2のメモリアレイに連結される第2の固有アレイアドレスに変換する第2の回路と、を備え、
    前記第1の固有アレイアドレスにおける前記第1のメモリアレイのデータ及び前記第2の固有アレイアドレスにおける前記第2のメモリアレイからのデータは、特定のエラー訂正コードワードに含まれることにより、前記特定のエラー訂正コードワードにおける訂正不可能なエラーを低減する、集積回路。
  16. 第1のエラー訂正コードワードは、第1の論理アレイアドレスによって識別されるデータを備え、第2のエラー訂正コードワードは、第2の論理アレイアドレスによって識別されるデータを備え、前記第1の回路は、前記第1のメモリアレイにおける特定のアレイ位置を識別するように第1の論理アドレスを変換し、前記第2の回路は、前記第2のメモリアレイにおける前記特定のアレイ位置を識別するように第2の論理アドレスを変換し、前記第1のメモリアレイ及び前記第2のメモリアレイの両方の前記特定のアレイ位置における体系的なエラーは、前記第1のエラー訂正コードワード及び前記第2のエラー訂正コードワードの間の複数のエラーを分配することにより、前記第1のエラー訂正コードワードまたは前記第2のエラー訂正コードワードのいずれかを、複数のエラーで過負荷にすることを回避する、請求項15に記載の集積回路。
  17. 前記第1の回路は、前記論理アレイアドレスの複数のアドレスラインをリオーダするための回路、または、前記論理アレイアドレス及び前記複数のメモリアレイのセット内における前記第1のメモリアレイの前記論理位置の少なくとも一部を用いて演算オペレーションを実行する回路を備える、請求項15または16に記載の集積回路。
  18. 論理アレイアドレスを備える複数のメモリ制御コマンドを生成するための監視回路と、
    前記監視回路に連結され、前記複数のメモリ制御コマンドに応答するためのメモリと、を備える電子システムであって、前記メモリは、
    複数のメモリアレイのセットと、
    前記複数のメモリアレイのセット内における少なくとも2つのメモリアレイの複数の論理位置に少なくとも部分的に基づいて、前記論理アレイアドレスを少なくとも2つの固有アレイアドレスに変換するための回路であって、前記少なくとも2つの固有アレイアドレスは、前記少なくとも2つのメモリアレイのそれぞれに連結される、回路と、
    前記少なくとも2つのメモリアレイからの前記少なくとも2つの固有アレイアドレスによって識別されるデータを、前記複数のメモリ制御コマンドに応じて前記監視回路に与えるための回路と、を備え、
    前記論理アレイアドレスによって識別される前記データは、特定のエラー訂正コードワードに含まれることにより、前記特定のエラー訂正コードワードの訂正不可能なエラーを低減し、
    前記監視回路は、前記特定のエラー訂正コードワードを含むエラー訂正コードワードのデータにおける複数のエラーを訂正する、電子システム。
  19. 前記メモリは、第1のメモリであり、前記電子システムは、
    前記第1のメモリに連結される第1のチップ識別子と、
    前記監視回路に連結される第2のメモリと、
    前記第2のメモリに連結される第2のチップ識別子と、をさらに備え、
    前記第2のメモリは、
    第1のメモリアレイ及び第2のメモリアレイと、
    前記第2のチップ識別子に少なくとも部分的に基づいて、前記論理アレイアドレスを、前記第1のメモリアレイ及び前記第2のメモリアレイの行及び列アドレスに変換するための第1の回路と、
    前記複数のメモリ制御コマンドに応じて、前記第1のメモリアレイ及び前記第2のメモリアレイからの追加のデータを前記監視回路に与えるための第2の回路と、を備え、
    前記第1のメモリの前記回路は、前記第1のチップ識別子に少なくとも部分的に基づいて、前記論理アレイアドレスを前記少なくとも2つの固有アレイアドレスに変換し、
    前記監視回路は、前記第1のメモリからの前記データ及び前記第2のメモリからの前記追加のデータを備えるコードワードにおける少なくとも1つのエラーを訂正する、請求項18に記載の電子システム。
  20. 前記監視回路に連結される、外部デバイスと通信を行うためのI/O回路をさらに備える、請求項18または19に記載の電子システム。
  21. 前記電子システムは、ソリッドステートドライブである、請求項18または19に記載の電子システム。
  22. メモリデバイスにおける2つまたはそれより多くのメモリアレイの複数のエラー率を得る段階と、
    前記複数のエラー率に基づいて、前記2つまたはそれより多くのメモリアレイを2つまたはそれより多くのコードワードにマッピングすることを決定する段階と、
    前記2つまたはそれより多くのメモリアレイを前記2つまたはそれより多くのコードワードにマッピングするための制御レジスタをプログラミングする段階と、を備え、
    前記マッピングする段階は、前記2つまたはそれより多くのコードワードにおける訂正不可能なエラーを低減する、訂正不可能なメモリエラーを低減するための方法。
  23. 前記制御レジスタにプログラムされる複数の値は、前記メモリデバイスに、
    前記2つまたはそれより多くのメモリアレイの複数の他のメモリアレイよりエラー率の高い第1のメモリアレイを、特定のコードワードにマッピングさせ、
    前記2つまたはそれより多くのメモリアレイの複数の他のメモリアレイよりエラー率の低い第2のメモリアレイを、前記特定のコードワードにマッピングさせる、請求項22に記載の方法。
  24. 前記決定する段階及び前記プログラミングする段階は、前記メモリデバイスに対する製造テスト工程の一部として実行される、請求項22に記載の方法。
  25. 前記決定する段階及び前記プログラミングする段階は、システム環境で実行される、請求項22に記載の方法。
  26. 前記メモリデバイスからのデータのコードワードを取得する段階と、
    データの前記コードワードにおける少なくとも1つのエラーを訂正する段階と、
    をさらに備える、請求項22に記載の方法。
  27. コンピューティングデバイス上で実行されたことに応じて、前記コンピューティングデバイスに、請求項22から26のいずれか1項に記載の方法を実行させるプログラム。
  28. 請求項27に記載の前記プログラムを格納するコンピュータ可読記録媒体。
JP2016500630A 2013-03-11 2014-03-05 訂正不可能なメモリエラーの低減 Active JP6087470B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/792,597 2013-03-11
US13/792,597 US9136873B2 (en) 2013-03-11 2013-03-11 Reduced uncorrectable memory errors
PCT/US2014/020549 WO2014164099A1 (en) 2013-03-11 2014-03-05 Reduced uncorrectable memory errors

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017016797A Division JP6240351B2 (ja) 2013-03-11 2017-02-01 訂正不可能なメモリエラーの低減

Publications (2)

Publication Number Publication Date
JP2016514327A JP2016514327A (ja) 2016-05-19
JP6087470B2 true JP6087470B2 (ja) 2017-03-01

Family

ID=51489439

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016500630A Active JP6087470B2 (ja) 2013-03-11 2014-03-05 訂正不可能なメモリエラーの低減
JP2017016797A Active JP6240351B2 (ja) 2013-03-11 2017-02-01 訂正不可能なメモリエラーの低減

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2017016797A Active JP6240351B2 (ja) 2013-03-11 2017-02-01 訂正不可能なメモリエラーの低減

Country Status (7)

Country Link
US (4) US9136873B2 (ja)
EP (2) EP3282361A1 (ja)
JP (2) JP6087470B2 (ja)
KR (1) KR101693664B1 (ja)
CN (1) CN104969193B (ja)
BR (1) BR112015019103B1 (ja)
WO (1) WO2014164099A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378848B2 (en) * 2012-06-07 2016-06-28 Texas Instruments Incorporated Methods and devices for determining logical to physical mapping on an integrated circuit
US9136873B2 (en) 2013-03-11 2015-09-15 Intel Corporation Reduced uncorrectable memory errors
US9619324B2 (en) * 2013-09-27 2017-04-11 Intel Corporation Error correction in non—volatile memory
US9478315B2 (en) * 2014-06-03 2016-10-25 Sandisk Technologies Llc Bit error rate mapping in a memory system
US10438658B2 (en) 2014-12-26 2019-10-08 Intel Corporation Refresh logic to refresh only memory cells having a first value
US9672905B1 (en) * 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
KR102258140B1 (ko) 2017-07-06 2021-05-28 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템
US10831596B2 (en) 2018-01-22 2020-11-10 Micron Technology, Inc. Enhanced error correcting code capability using variable logical to physical associations of a data block
US10846175B2 (en) * 2018-04-10 2020-11-24 Micron Technology, Inc. High throughput bit correction of data inside a word buffer for a product code decoder
US10761918B2 (en) 2018-04-18 2020-09-01 International Business Machines Corporation Method to handle corrected memory errors on kernel text
DE102018112816A1 (de) * 2018-05-29 2019-12-05 Infineon Technologies Ag Adresscodierter Zugriff auf Speicher
JP7042716B2 (ja) * 2018-07-26 2022-03-28 キオクシア株式会社 記憶装置及び記憶制御方法
US10802909B2 (en) 2018-08-17 2020-10-13 Micron Technology, Inc. Enhanced bit flipping scheme
KR102687054B1 (ko) * 2018-10-12 2024-07-22 수퍼멤, 인크. 오류 정정 및 데이터 클리닝 회로가 구비된 메모리 시스템
US10817420B2 (en) * 2018-10-30 2020-10-27 Arm Limited Apparatus and method to access a memory location
US11042490B2 (en) * 2018-11-15 2021-06-22 Micron Technology, Inc. Address obfuscation for memory
US11237891B2 (en) 2020-02-12 2022-02-01 International Business Machines Corporation Handling asynchronous memory errors on kernel text
KR20210132784A (ko) * 2020-04-27 2021-11-05 삼성전자주식회사 메모리 장치 및 메모리 장치로부터 데이터를 읽는 방법
US11720273B2 (en) * 2021-05-18 2023-08-08 Micron Technology, Inc. Codeword error leveling for 3DXP memory devices

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4506364A (en) * 1982-09-30 1985-03-19 International Business Machines Corporation Memory address permutation apparatus
JPS6063651A (ja) * 1983-09-17 1985-04-12 Nippon Telegr & Teleph Corp <Ntt> 記憶装置
JPH04167039A (ja) * 1990-10-31 1992-06-15 Toshiba Corp データ書き込み方式
JPH09305494A (ja) * 1996-05-13 1997-11-28 Nec Corp 拡張記憶装置のデータ転送制御回路
JP2000020409A (ja) * 1998-07-07 2000-01-21 Seiko Epson Corp 半導体記憶装置
US6367047B1 (en) 1998-10-20 2002-04-02 Ecrix Multi-level error detection and correction technique for data storage recording device
US7062689B2 (en) * 2001-12-20 2006-06-13 Arm Limited Method and apparatus for memory self testing
JP2003345650A (ja) * 2002-05-23 2003-12-05 Mitsubishi Electric Corp フラッシュメモリシステム
JP2004139503A (ja) * 2002-10-21 2004-05-13 Matsushita Electric Ind Co Ltd 記憶装置及びその制御方法
US20090013148A1 (en) 2007-07-03 2009-01-08 Micron Technology, Inc. Block addressing for parallel memory arrays
US8103934B2 (en) 2007-12-21 2012-01-24 Honeywell International Inc. High speed memory error detection and correction using interleaved (8,4) LBCs
JP4617405B2 (ja) 2008-02-05 2011-01-26 富士通株式会社 不良メモリを検出する電子機器、不良メモリ検出方法およびそのためのプログラム
US8060719B2 (en) * 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
US7864587B2 (en) * 2008-09-22 2011-01-04 Micron Technology, Inc. Programming a memory device to increase data reliability
TWI446350B (zh) 2009-12-08 2014-07-21 Silicon Motion Inc 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器
US8533564B2 (en) 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
US8589766B2 (en) * 2010-02-24 2013-11-19 Apple Inc. Codeword remapping schemes for non-volatile memories
US8732557B2 (en) 2011-05-31 2014-05-20 Micron Technology, Inc. Data protection across multiple memory blocks
US9378848B2 (en) 2012-06-07 2016-06-28 Texas Instruments Incorporated Methods and devices for determining logical to physical mapping on an integrated circuit
US9136873B2 (en) * 2013-03-11 2015-09-15 Intel Corporation Reduced uncorrectable memory errors

Also Published As

Publication number Publication date
US20190370112A1 (en) 2019-12-05
BR112015019103A2 (pt) 2017-07-18
JP6240351B2 (ja) 2017-11-29
CN104969193A (zh) 2015-10-07
JP2016514327A (ja) 2016-05-19
KR101693664B1 (ko) 2017-01-06
KR20150106916A (ko) 2015-09-22
EP2972876B1 (en) 2017-12-20
US10936418B2 (en) 2021-03-02
US10324793B2 (en) 2019-06-18
WO2014164099A1 (en) 2014-10-09
US9136873B2 (en) 2015-09-15
US20180253355A1 (en) 2018-09-06
CN104969193B (zh) 2017-01-18
US9934088B2 (en) 2018-04-03
EP2972876A1 (en) 2016-01-20
JP2017117480A (ja) 2017-06-29
US20160188409A1 (en) 2016-06-30
BR112015019103B1 (pt) 2022-05-17
EP2972876A4 (en) 2016-11-23
US20140258804A1 (en) 2014-09-11
EP3282361A1 (en) 2018-02-14

Similar Documents

Publication Publication Date Title
JP6240351B2 (ja) 訂正不可能なメモリエラーの低減
US11152954B2 (en) Decoding method and storage controller
US20190018805A1 (en) System and method for fast execution of in-capsule commands
US10768855B1 (en) Data reading method, storage controller and storage device
CN103197985B (zh) 存储控制装置
US10116335B2 (en) Data processing method, memory storage device and memory control circuit unit
US9454429B2 (en) Protection against word line failure in memory devices
US8762814B2 (en) Method for enhancing error correction capability, and associated memory device and controller thereof
US20120254705A1 (en) Error correction decoder and error correction method thereof
TW201526002A (zh) 用於基於資料存取頻率以頻寬最佳化或寫碼率最佳化碼字儲存資料之技術
US10866855B2 (en) Memory system varying operation of memory controller according to internal status of memory device
TWI662553B (zh) 記憶體測試方法與記憶體測試系統
US10109373B2 (en) Data storage apparatus and operating method thereof
US10067677B2 (en) Memory management method for configuring super physical units of rewritable non-volatile memory modules, memory control circuit unit and memory storage device
US9411694B2 (en) Correcting recurring errors in memory
US9436547B2 (en) Data storing method, memory control circuit unit and memory storage device
US20200264953A1 (en) Error correction in data storage devices

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170201

R150 Certificate of patent or registration of utility model

Ref document number: 6087470

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250