JP2010262730A - 異機種混合ストレージ要素の容量を増大させる方法及びシステム - Google Patents

異機種混合ストレージ要素の容量を増大させる方法及びシステム Download PDF

Info

Publication number
JP2010262730A
JP2010262730A JP2010104596A JP2010104596A JP2010262730A JP 2010262730 A JP2010262730 A JP 2010262730A JP 2010104596 A JP2010104596 A JP 2010104596A JP 2010104596 A JP2010104596 A JP 2010104596A JP 2010262730 A JP2010262730 A JP 2010262730A
Authority
JP
Japan
Prior art keywords
memory
virtual
vector
write
read
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.)
Granted
Application number
JP2010104596A
Other languages
English (en)
Other versions
JP5464703B2 (ja
Inventor
Ashish Jagmohan
ジャグモハン・アシシュ
Luis A Lastras
ラストラス、ルイス、エー
Michele M Franceschini
フランチェスキーニ、ミケーレ、エム
Mayank Sharma
シャルマ、マヤンク
Ibrahim Abe M Elfadel
エルファデル、イブラハム、エム、アベ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010262730A publication Critical patent/JP2010262730A/ja
Application granted granted Critical
Publication of JP5464703B2 publication Critical patent/JP5464703B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5678Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using amorphous/crystalline phase transition storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0076Write operation performed depending on read result
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】異機種混合ストレージ要素の増大された容量を提供する。
【解決手段】データ記憶方法は、書き込みプロセスがメモリの書き込みを行うステップと、読み取りプロセスが前記メモリの読み取りを行うステップと、を含む。前記メモリ内のメモリ・セルの物理特性は、異なるデータ・レベル・セットをサポートする。前記書き込みプロセスは、前記メモリの書き込み時に前記異なるデータ・レベル・セットを考慮に入れる。前記読み取りプロセスは、まず前記メモリ内のデータを取得し、その後前記データをどのように変換処理するかを判定する。
【選択図】図4

Description

本発明は一般にコンピュータ・メモリに関するものであり、より詳細には、異機種混合ストレージ要素の記憶容量を増大させることに関するものである。
「異機種混合ストレージ要素(heterogeneousstorage element)」という用語は、各要素に記憶可能な情報のタイプ及び量に影響を及ぼす物理特性が異なる個々のメモリ要素を指す。そのため、各要素に記憶される情報のタイプ及び量は、それ自体の特定の物理特性に応じて異なる可能性がある。異機種混合ストレージ要素を有するメモリ・システムの一例は、設定可能な抵抗値範囲がPCMセル毎に異なる相変化メモリ(PCM)システムである。PCMでは、各セルでサポート可能なレベル範囲(データ量)と絶対レベル値(データ・タイプ)の両方に影響を及ぼす抵抗レベル範囲がセル毎に異なる。一般に、このような要素の異種性は、メモリへの情報記憶時及びメモリからの情報検索時のエラーの原因となる恐れがある。具体的には、データをメモリに書き込む際に、書き込み装置が情報をセルに記憶しようと試みても、その情報がセルによってサポートされない故に記憶することができない可能性がある。
異機種混合ストレージ要素環境におけるエラーを低減する1つの手法は、すべてのメモリ要素に共通する物理特性範囲を発見し、その後、その共通の物理特性範囲内で情報が検索可能となるように情報を記憶することである。一例として、PCMメモリ・セルでは、すべてのPCMメモリ要素を対象とする抵抗値範囲を設定することが可能である。そのため、この共通の抵抗値範囲のみを使用して情報が記憶される。別の手法は、書き込み不能なセルの値をエラーとして扱い、エラー修正コード(ECC)を使用してデータを訂正することである。上記の手法に共通する欠点は、記憶容量を低下させる可能性があることである。
異機種混合ストレージ要素環境におけるエラーを低減する別の手法は、メモリ・ブロック又は個々のメモリ要素に欠陥がある又は欠陥がないものと仮定し、読み取り中又は書き込み中あるいはその両方の処理中に欠陥のあるブロック又は要素を迂回するように試みることである。これらの手法の欠点は、ブロック又は個々の要素が2つの状態のいずれかに該当し得ると仮定されるため、各手法が異機種混合向けに設計されていないことである。
例示的な一実施形態は、書き込みプロセスがメモリの書き込みを行うステップと、読み取りプロセスが前記メモリの読み取りを行うステップと、を含むデータ記憶方法である。前記メモリ内のメモリ・セルの物理特性は、異なるデータ・レベル・セットをサポートする。前記書き込みプロセスは、前記メモリの書き込み時に前記異なるデータ・レベル・セットを考慮に入れる。前記読み取りプロセスは、まず前記メモリ内のデータを取得し、その後前記データをどのように変換処理するかを判定する。
別の実施形態は、メモリの読み取り方法である。前記方法は、メモリ・セル・ブロックから読み取りワードを受け取るステップを含み、前記メモリ・セルの物理特性は、異なるデータ・レベル・セットをサポートする。前記読み取りワードは、2つ以上の仮想読み取りベクトルに分割される。前記仮想読み取りベクトルのそれぞれについて、前記仮想読み取りベクトルの生成に利用されたコードブックが識別され、部分読み取りデータ・ベクトルが生成される。前記生成するステップは、前記仮想読み取りベクトルに前記コードブックを表現する行列を乗じるステップを含む。前記部分読み取りデータ・ベクトルは、読み取りメッセージに組み合わされ、前記読み取りメッセージは、出力される。
追加の例示的な実施形態は、メモリと、テスタと、エンコーダと、を含むメモリ・システムである。前記メモリは、メモリ・セル・ブロックを含み、前記メモリ・セルの物理特性は、異なるデータ・レベル・セットをサポートする。前記テスタは、前記メモリ・セルの前記物理特性を判定する。前記エンコーダは、前記メモリ及び前記テスタに接続され、少なくとも1つのコードブックを利用する。前記エンコーダは、前記メモリ・セル・ブロックに書き込まれる書き込みメッセージを受け取り、前記物理特性に応答して前記メモリ・セル・ブロックに関連する仮想メモリを識別する。前記仮想メモリのそれぞれについて、前記仮想メモリ内の仮想セルを記述する制約ベクトルが生成される。前記制約ベクトルを生成するステップは、前記メモリ・セルの前記物理特性、それ以前に生成された制約ベクトル、及びそれ以前に生成された仮想書き込みベクトルに応答して実行される。また、仮想書き込みベクトルは、前記仮想メモリのそれぞれについて計算される。前記計算するステップは、コードブック、前記制約ベクトル、及び前記書き込みメッセージに応答して実行される。前記仮想書き込みベクトルは、書き込みワードに組み合わされ、前記書き込みワードは、前記メモリ・セル・ブロックに出力される。
追加の例示的な実施形態は、異機種混合メモリの書き込み方法である。前記方法は、メモリ・セル・ブロックに対応する書き込みメッセージ及び書き込みアドレスを受け取るステップであって、前記メモリ・セルのうちの少なくとも2つは異なるデータ・レベルをサポートする、ステップと、前記メモリ・セルの物理特性を判定するステップと、前記物理特性に応答して前記メモリ・セル・ブロックに関連する仮想メモリを識別するステップと、を含む。前記仮想メモリのそれぞれについて、前記メモリ・セルの前記物理特性、それ以前に生成された制約ベクトル、及びそれ以前に生成された仮想書き込みベクトルに応答して、前記仮想メモリ内の仮想セルを記述する制約ベクトルを生成するステップと、前記制約ベクトル及び前記書き込みメッセージに応答して仮想書き込みベクトルを計算するステップであって、前記制約ベクトルの指示から特定の値にスタックされていることが知られる位置をスキップしながら、前記書き込みメッセージをビット単位で順番に前記仮想メモリに書き込むステップを含むステップと、が実行される。前記仮想書き込みベクトルは、書き込みワードに組み合わされ、前記書き込みワードは、前記メモリ・セル・ブロックに出力される。
さらなる例示的な実施形態は、異機種混合メモリの読み取り方法である。前記方法は、メモリ・セル・ブロックから読み取りワードを受け取るステップであって、前記メモリ・セルのうちの少なくとも2つは異なるデータ・レベルをサポートする、ステップと、前記メモリ・セルの物理特性を判定するステップと、前記物理特性に応答して前記メモリ・セル・ブロックに関連する仮想メモリを識別するステップと、前記仮想メモリに応答して前記読み取りワードを複数の仮想読み取りベクトルに分割するステップと、を含む。前記仮想読み取りベクトルのそれぞれについて、前記メモリ・セルの前記物理特性、それ以前に生成された制約、及びそれ以前に生成された部分読み取りベクトルに応答して、前記仮想メモリ内の仮想セルを記述する制約ベクトルを生成するステップと、前記制約ベクトル及び前記仮想読み取りベクトルに応答して部分読み取りデータ・ベクトルを生成するステップであって、前記仮想読み取りベクトルをビット単位で順番に読み取るステップ、及び前記制約ベクトルの指示からスタックされていることが知られるビットを破棄するステップを含むステップと、が実行される。前記部分読み取りデータ・ベクトルは、読み取りメッセージに組み合わされ、前記読み取りメッセージは、出力される。
本発明の実施形態に係る各技法を利用すれば追加的な特徴及び利点が理解されるだろう。本明細書では他の実施形態及び態様についても説明するが、これらも添付の特許請求範囲に記載される発明の一部と見なされる。本発明の利点及び特徴は、以下の説明及び添付図面を参照すればより良く理解されるだろう。
本発明と見なされる主題は、特許請求範囲の各請求項に個別具体的に記載されている。本発明の上記及び他の特徴及び利点は、以下の詳細な説明を添付図面と併せて読めば明らかとなるだろう。
例示的な一実施形態によって実施され得るデータ書き込みプロセスを示す図である。 例示的な一実施形態によって実施され得るデータ読み取りプロセスを示す図である。 例示的な一実施形態によって実施され得る異機種混合メモリにデータを記憶するシステムのブロック図である。 例示的な一実施形態によって実施され得る相変化メモリ(PCM)にデータを記憶するシステムのブロック図である。 例示的な一実施形態によって実施され得るPCMにデータを書き込むシステムのブロック図である。 例示的な一実施形態によって実施され得るPCMからデータを読み取るシステムのブロック図である。 異機種混合メモリを複数の仮想バイナリ・メモリに分解する、例示的な一実施形態によって実施され得る処理を示す概念図である。 異機種混合メモリ制約(heterogeneous memory constraint)を1組の仮想バイナリ・メモリに対する等価な制約に分解する、例示的な一実施形態によって実施され得る処理を示す概念図である。 異機種混合メモリ制約を1組の仮想バイナリ・メモリに対する等価な制約に分解する、例示的な一実施形態によって実施され得る処理を示す概念図である。 異機種混合メモリ制約を1組の仮想非バイナリ・メモリに対する等価な制約に分解する、例示的な一実施形態によって実施され得る処理を示す概念図である。 例示的な一実施形態によって実施され得るバイナリ書き込みワード・コンピュータ(binary write word computer)及びバイナリ・ワード・デコーダのブロック図である。 例示的な一実施形態によって実施され得るワード・ライタ(word writer)のブロック図である。 例示的な一実施形態によって実施され得るPCMデータ・バイナライザのブロック図ある。 例示的な一実施形態によって実施され得るバイナリ・メモリ制約コンピュータ(binary memory constraints computer)のブロック図である。 例示的な一実施形態によって実施され得るバイナリ制約計算プロセスを示す図である。 ランダム・バイナリ及び低密度パリティ検査(low density parity check : LDPC)コードならびにガウス消去法を使用する、例示的な一実施形態によって実施され得るバイナリ書き込みワード・コンピュータのブロック図である。 例示的な一実施形態によって実施され得る、Luby変換(LT)コード及びピーリングを使用するバイナリ書き込みワード・コンピュータ、ならびに線形プログラミングを使用する非バイナリ書き込みワード・コンピュータのブロック図である。 例示的な一実施形態によって実施され得る連結コーディング(concatenated coding)を使用する書き込みワード・コンピュータのブロック図である。 書き込みプロセス・エンコーダが、メッセージを符号化し異機種混合メモリ制約を満足するコードワードを生成する行列を事前定義された行列シーケンスから発見しようと試みる、例示的な一実施形態によって実施され得るプロセスを示す図である。 書き込みプロセス・エンコーダが、図19に示される事前定義された行列シーケンスを生成するために擬似ランダム関数発生器及びコード行列を使用する、例示的な一実施形態によって実施され得るプロセスを示す図である。 読み取りプロセス及び書き込みプロセスが共に各セルでサポートされる抵抗レベルを測定可能である場合に例示的な一実施形態によって実施され得るPCMメモリにデータを記憶するシステムのブロック図である。 読み取りプロセス及び書き込みプロセスが共に各セルでサポートされる抵抗レベルを測定可能である場合に例示的な一実施形態によって実施され得るPCMメモリにデータを書き込むシステムのブロック図である。 読み取りプロセス及び書き込みプロセスが共に各セルでサポートされる抵抗レベルを測定可能である場合に例示的な一実施形態によって実施され得るPCMメモリからデータを読み取るシステムのブロック図である。 例示的な一実施形態によって実施され得る、ノイズを含む異機種混合メモリにデータを記憶するバイナリ・ワード・コンピュータ及びバイナリ・ワード・デコーダを示す図である。 異機種混合多次元メモリ制約(heterogeneous multidimensional memory constraint)を等価な1次元制約に変換する、例示的な一実施形態によって実施され得る処理を示す図である。 多次元メモリ制約から得られる等価な1次元制約を1組の仮想バイナリ・メモリに対する等価な制約に分解する、例示的な一実施形態によって実施され得る処理を示す図である。
本発明の例示的な一実施形態は、データの書き込み又は読み取りあるいはその両方に先立って各メモリ要素の関連する物理特性を測定し、その知識をコーディング技法を使用して利用することにより、異機種混合要素を有するメモリの記憶容量を増大させる。例示的な諸実施形態において、メモリは、相変化メモリ(PCM)セルから構成され、書き込みプロセスは、書き込みに先立ってRESET及びSETパルスを適用することによって各セルの抵抗範囲を測定する。次に、各セル上に記憶可能な抵抗レベルが量子化され、量子化インデックスがバイナリ変換され、セル抵抗制限に違反せずにデータを各セル上に記憶することが可能なバイナリ・コード・セットが使用される。別の例示的な実施形態において、読み取りプロセスは、読み取り後にRESET及びSETパルスを適用することによって各セルの物理特性を追加的に測定し、その後オリジナル・データを再書き込みする。測定された物理特性は、読み取りプロセスにおいてエンコーダによって書き込まれたデータの復号化を支援するのに利用される。
例示的な一実施形態はPCMを含み、すべてのPCMセルは、共通の最大(RESET)抵抗レベルと、可変の最小(SET)レベルと、を有することが想定される。本実施形態において、書き込みプロセスは、適切なプログラミング・パルスを使用して各セル・ブロックをそれぞれのSETレベルにプログラミングするステップと、SET抵抗レベルを測定するステップと、を含む。この情報に基づき、適切なコードを使用してセル抵抗範囲と適合(compatible)する抵抗レベル・セットに書き込まれるデータが変換される。別の例示的な実施形態において、各PCMセルの最小抵抗レベルと最大抵抗レベルは共に可変である。書き込みプロセスは、適切なプログラミング・パルスを使用して各セル・ブロックをそれぞれのSETレベル及びRESETレベルにプログラミングするステップと、SET抵抗レベル及びRESET抵抗レベルを測定するステップと、を含む。この情報に基づき、適切なコードを使用してセル抵抗範囲と適合する抵抗レベル・セットに書き込まれるデータが変換される。
別の例示的な実施形態において、上記の変換ステップは以下のように実行される。まず、各抵抗レベルが2進値に変換される。各ビットプレーンを使用して異なるデータ・メッセージが記憶される。所与のビットプレーンについて、メモリに書き込まれるバイナリ・ワードは、読み取りプロセス及び書き込みプロセスで共用されるバイナリ行列(「H」)を利用して生成される。具体的には、以下のようなバイナリ・ベクトル「c」、即ち、Hcが記憶対象のバイナリ・メッセージと等しく、且つcがメモリ・セルの異種性によって課される1組のバイナリ制約を満足するようなバイナリ・ベクトル「c」が発見される。このバイナリ・ベクトルは、ビットプレーンに書き込まれる。読み取りプロセスは、Hcを計算することによってメッセージを再構築する。
別の例示的な実施形態において、抵抗レベルの2進値変換は、各セルの2値化が所与のレベル毎に異なるように達成される。これにより、ビットプレーン全体のコーディング・レートの均一化が容易となり、それ故システムで必要とされるバイナリ行列(H)の数が減少し、その結果ストレージ/ハードウェアの複雑さが低減される可能性がある。別の例示的な実施形態において、抵抗レベルの2進値変換は、整数で表現される抵抗レベルの2値化の固定置換によって達成される。別の例示的な実施形態において、上記の変換ステップは、読み取りプロセス及び書き込みプロセスで共用される非バイナリ行列Hを利用して符号化対象のデータを生成することによって実行される。具体的には、以下のようなベクトルc、即ち、Hcが記憶対象の非バイナリ・メッセージと等しく、且つcがメモリの均一性によって課される1組の制約を満足するようなベクトルcが発見される。このベクトルは、メモリに書き込まれる。読み取りプロセスは、Hcを計算することによってメッセージを再構築する。
本明細書で使用される「データ・レベル」という用語は、セルの物理特性の値に関する事前指定範囲に対応する(又はその範囲で「表現される」)特定のデータ値を指す。所与のデータ・レベルをサポートするために、セルの物理特性がそのデータ・レベルに対応する範囲内の値をとるように設定することができる。PCMを使用する仮説的な例として、例えば抵抗の物理特性について、0〜10Ωのセル抵抗をデータ値=1に対応させ、10〜20Ωのセル抵抗をデータ値=2に対応させ、以下同様に対応付けることができる。それ故、あるセルの抵抗が0〜10Ωの範囲に含まれるならば、そのセルはデータ・レベル1をサポートすることになる。
図1は、例示的な一実施形態によって実施され得るデータ書き込みプロセスを示す。ブロック102で、書き込みデータ(「書き込みメッセージ」とも呼ばれる)と、異機種混合メモリ・セル・ブロックに対応するアドレスとが、(例えばエンコーダ内で)受け取られる。ブロック104で、そのメモリ・セル・ブロックに関連する仮想メモリが識別され、書き込みデータは、それぞれ1つの仮想メモリと関連付けられる複数の部分書き込みデータ・ベクトルに分割される。仮想メモリの数は、メモリ・セル・ブロックの物理特性に依存する。例えば、PCMセルの物理特性は、抵抗レベルを含む可能性がある。抵抗レベルが最大4つの値をとり得る場合は、仮想メモリの数は2となる(即ち、2の2乗は4、よって2ビットで4つの値がサポートされ得る)。一方、抵抗レベルが4つ乃至8つの値をとり得る場合は、仮想メモリの数は3となる(即ち、2の3乗は8、よって3ビットで8つの値がサポートされ得る)。
図1のブロック106では、ステップ104で識別された各仮想メモリについて以下のプロセスが実行される。仮想メモリ内の仮想セルを記述する制約ベクトルが生成される。この制約ベクトル生成ブロックには、各メモリ・セルの物理特性と、(例えば他の仮想メモリに関する)メモリ・セル・ブロックに関してそれ以前に生成されたすべての制約ベクトルと、メモリ・セル・ブロックに関してそれ以前に生成されたすべての仮想書き込みベクトルと、が入力される。このように、書き込みプロセスは各メモリ・セルの物理特性を認識する。次に、制約ベクトルの内容及びメモリ・セル・ブロック内のメモリ・セル数に基づいて、コードブックが選択される。例示的な一代替実施形態において、コードブックは固定され、読み取りプロセスと書き込みプロセスの両方に事前に知らされるため、この場合は選択ステップが不要となる。コードブックは、線形コードと非線形コードの両方を指定することができる。上記のコードブック、制約ベクトル、及び書き込みデータに基づいて、仮想メモリに関する仮想書き込みベクトルが計算される。コードブックが固定されない場合には、コードブックに関連する識別子がメモリ・セル・ブロックの読み取り時に利用できるように記憶される。コード・インデックスは、メタデータと呼ばれることがある。同様に、コードブックもメタデータと呼ばれることがある。メタデータは、必ずしもそれだけに限定されるわけではないが、事前に検査されるメモリ内の特別な領域に記憶することや、すべてのセルでサポートされるレベルのみを対象とする書き込み方式を使用することにより、異なる非異機種混合メモリ又は異機種混合メモリを含めた様々な位置に信頼性のある形で記憶することができる。コードブックが固定される場合には、メタデータを記憶する必要はない。ブロック108で、各仮想書き込みベクトルは、書き込みワードに組み合わされる。ブロック110で、書き込みワードは、書き込み対象のメモリ・セル・ブロックに出力される。
図2は、例示的な一実施形態によって実施され得るデータ読み取りプロセスを示す。本例において、読み取りプロセスで利用されるデコーダは異機種混合メモリ・セル・ブロックの物理特性を認識していない(即ち気付いていない)ものと仮定する。デコーダは、物理特性の範囲(例えば0〜4の抵抗レベル範囲)は認識せず、ブロックに対する最後の書き込みプロセス中に使用されたコードブックのインデックスを認識する。ブロック202で、異機種混合メモリ・セル・ブロックからデータが読み取られる(即ち「読み取りワード」)。ブロック204で、読み取りワードは、物理値の範囲に基づいて仮想読み取りベクトルに分割される。例えば、その範囲が4つの値をカバーする場合、読み取りワードは、2つの仮想読み取りベクトルに分割される。ブロック206では、各仮想読み取りベクトルについて以下の処理が実行される。まず、コードブック識別子が(例えば記憶位置から)受け取られる(あるいは固定又は事前指定されたコードブックである可能性もある)。コードブック識別子は、データがメモリに書き込まれたときにエンコーダによって利用されるコードブックを識別する。次に、識別されたコードブックを利用することによって部分読み取りデータ・ベクトルが生成される。例示的な諸実施形態において、コードブックは線形コードであり、部分読み取りデータ・ベクトルは、仮想読み取りベクトルに識別されたコードブックを表現する行列を乗じることによって生成される。ブロック208で、各部分読み取りデータ・ベクトルは、読み取りデータ(「読み取りメッセージ」とも呼ばれる)に組み合わされる。ブロック210で、読み取りデータは(例えば読み取り要求側に)出力される。
図3は、例示的な一実施形態によって実施され得る異機種混合メモリにデータを記憶するシステムのブロック図である。図3に示されるシステムは、メモリ・セル・ブロックを含む異機種混合メモリ302と、メモリ・セルの物理特性を判定するテスタ304と、書き込みデータを受け取り、メモリ・セルに記憶される書き込みワードを生成するエンコーダ306と、読み取りワードをメモリから受け取り、読み取りデータを生成するデコーダ308と、を含む。図1を参照して説明したような例示的な書き込みプロセス312は、テスタ304と、エンコーダ306と、書き込みプロセス312と読み取りプロセス314の両方で利用される共用コード310(例えば、コードブック識別子及びコードブック)と、を利用する。図2を参照して説明したような例示的な読み取りプロセス314は、デコーダ308と、共用コード310と、を利用する。
図4は、例示的な一実施形態によって実施され得る相変化メモリ(PCM)にデータを記憶するシステムのブロック図である。図4に示されるシステムは、メモリ・セル・ブロックを含む異機種混合PCMメモリ402と、メモリ・セルに関連する抵抗レベル(即ち、本例では物理特性が抵抗レベルとなる)を判定する抵抗範囲テスタ(resistance range tester)404と、書き込みデータを受け取り、メモリ・セルに記憶されるPCM書き込みワードを生成するエンコーダ406と、PCM読み取りワードを異機種混合PCMメモリ402から受け取り、読み取りデータを生成するデコーダ408と、を含む。異機種混合PCMメモリ402に対する例示的な書き込みプロセス412は、抵抗範囲テスタ404と、エンコーダ406と、書き込みプロセス412と読み取りプロセス414の両方で利用される共用コード410と、を利用する。異機種混合PCMメモリ402に対する例示的な読み取りプロセス414は、デコーダ408と、共用コード410と、を利用する。別の実施形態において、抵抗範囲テスタは、そのセットが非隣接セットである場合も各セットでサポートされる抵抗レベル・セットを判定する抵抗テスタに置き換えることができる。
一代替実施形態において、メモリはフラッシュ・メモリであり、メモリ・セルはフラッシュ・メモリ・セルである。本実施形態では、情報の記憶に使用される物理特性は、浮遊ゲート電荷である。フラッシュ・メモリの異種性は、フラッシュ・セルの電荷蓄積特性のばらつきに由来する。
図5は、例示的な一実施形態によって実施され得る異機種混合PCMメモリ402にデータを記憶するシステムのブロック図である。図5は、例示的な一実施形態によって実施され得る例示的なエンコーダ406をより詳細に示す図である。例示的なエンコーダ406は、バイナリ・メモリ制約コンピュータ502と、コード・セレクタ506と、バイナリ書き込みワード・コンピュータ508と、データ・バイナライザ510と、PCMワード・ライタ504と、を含む。データ・バイナライザ510は、書き込みデータを受け取り、その書き込みデータをそれぞれ1つの仮想メモリと関連付けられる複数の部分書き込みデータ・ベクトルに分割する。例示的な一実施形態において、書き込みデータはバイナリであり、データ・バイナライザは、i番目の仮想メモリに書き込み可能なビット数を判定することによってi番目のバイナリ・ベクトル内のビット数を決定しながら、書き込みデータを複数のバイナリ・ベクトルに分割する。このビット数は、バイナリ・メモリ制約コンピュータ502によって計算されるメモリ制約の関数として計算される。
別の例示的な実施形態において、書き込みデータは非バイナリであり、データ・バイナライザ510は、その書き込みデータをバイナリ変換した後、複数のバイナリ・ベクトルに分割する。図5に示される実施形態において、仮想メモリは仮想メモリ・ベクトルとして表現される。例示的な一実施形態において、この仮想メモリの数は、抵抗範囲テスタ404によって測定されるPCMセル内の可能な抵抗値の数に依存する。バイナリ・メモリ制約コンピュータ502は、メモリ・セル・ブロック内の各セル毎にサポートされる抵抗レベルを受け取る。バイナリ・メモリ制約コンピュータ502は、抵抗レベルの範囲に基づいて各仮想メモリに関連する制約を識別する。コード・セレクタ506は、ブロック内のメモリ・セル数と各仮想メモリに関する制約とに基づいて、仮想メモリ毎のコードブックを選択する。別の例示的な実施形態において、コードブックは固定され、読み取りプロセスと書き込みプロセスの両方に事前に知らされるため、コード・セレクタが不要となる。バイナリ書き込みワード・コンピュータ508は、仮想書き込みベクトルを計算する。例示的な一実施形態において、コードブックは、シンドロームを仮想書き込みベクトルに割り当てる線形コードであり、所与の部分書き込みデータ・ベクトルに関する仮想書き込みベクトルは、仮想メモリに関して生成された制約ベクトルと整合し、それ自体のシンドロームが部分書き込みベクトルと等しいベクトルを計算することによって計算される。それ故、仮想書き込みベクトルは、仮想メモリに関する各制約を考慮に入れながらcに関する式Hc=mを解くことによって計算される。ここで、Hは、仮想メモリに関して選択された線形コードに対応するコード行列であり、「m」は、仮想メモリに対応する部分書き込みデータ・ベクトルであり、積Hcは、cに対応するシンドロームである。一般に、式Hc=mは、cに関する複数の可能な解を有し、各解はそれぞれ部分書き込みベクトルmの1つの表現となる。所望の表現は、仮想メモリ制約と整合する解ベクトルcである。PCMワード・ライタ504は、各仮想書き込みベクトルを異機種混合PCMメモリ402に書き込まれる書き込みワードに組み合わせる。
図6は、例示的な一実施形態によって実施され得る異機種混合PCMメモリ402からデータを読み取るシステムのブロック図である。図6は、例示的な一実施形態によって実施され得る例示的なデコーダ408をより詳細に示す図である。例示的なデコーダ408は、PCMワード・リーダ602と、データ・バイナライザ604と、バイナリ・ワード・デコーダ606と、読み取りデータ・ジェネレータ608と、を含む。PCMワード・リーダ602は、読み取りアドレスで指定されるセル・ブロック内の各セルを読み取る。読み取りワードは、データ・バイナライザ604によって受け取られ、データ・バイナライザ604は、その読み取りワードを可能な抵抗値の範囲に基づいて仮想読み取りベクトルに分解する。各仮想読み取りベクトルは、個別のバイナリ・ワード・デコーダ606に送られる。バイナリ・ワード・デコーダ606は、読み取りワードを異機種混合PCMメモリ402に書き込むのに利用されたコードブックのインデックス又は他の識別子へのアクセスを有する。線形コードの場合、バイナリ・ワード・デコーダ606は、識別されたコードブックに対応するコード行列に仮想読み取りベクトルの内容を乗じて、部分読み取りデータ・ベクトルを作成する。読み取りデータ・ジェネレータ608は、部分読み取りデータ・ベクトルを読み取りデータに組み合わせる。その後、読み取りデータは(例えばデータ要求側に)出力される。
図7は、異機種混合メモリを複数の仮想バイナリ・メモリに分解する、例示的な一実施形態によって実施され得る処理の概念図である。図7に示される例は、5つの異機種混合メモリ・セルを有するメモリ・ブロック702を含む。これらのメモリ・セルの抵抗範囲レベルは4つの値(0、1、2、3)を有し、したがって、この抵抗範囲の物理特性は2つのビットプレーン704で表現することが可能である。セル抵抗レベルの2値化における各ビットプレーンは、仮想メモリ(「バイナリ・メモリ」とも呼ばれる)のうちの1つに対応する。図7は、バイナリ・メモリ1 708と、バイナリ・メモリ2 710とを示す。オリジナル・メモリ・ブロック702の異種性は、仮想メモリ・セルに対する制約の形で現れる。具体的には、セル3及びセル4は、レベル「10」及び「11」を記憶することができず、そのため、バイナリ・メモリ2 710ではそれらに対応する位置が「0」でスタック(stuck)される、即ちそれらの値が「1」に変更されることはない。例示的な一実施形態において、仮想メモリに対する制約は、制約ベクトルとして表現される。例えば、バイナリ・メモリ2 710に関する制約ベクトルは、BP2:b=(3,4),v=(0,0)と表現することができる。
図8は、異機種混合メモリ制約を1組の仮想バイナリ・メモリに対する等価な制約に分解する、例示的な一実施形態によって実施され得る処理の概念図である。図8は、メモリ・ブロック802が存在し、メモリ・ブロック802の物理特性を記述するのに2つのビットプレーン804が必要とされる点で図7と同様である。本例において、セル2及びセル5は、レベル「11」を記憶することができず、したがって、バイナリ・メモリ1 808内のセル2又はセル5あるいはその両方が「1」である場合は、バイナリ・メモリ2 810内の対応するセルが「0」でスタックされる。この例は、バイナリ・メモリ2 810に関する制約がバイナリ・メモリ1 808に記憶されるバイナリ・データに依存する可能性があることを示す。
図9は、異機種混合メモリ制約を1組の仮想バイナリ・メモリに対する等価な制約に分解する、例示的な一実施形態によって実施され得る処理の概念図である。図9は、メモリ・ブロック902が存在し、メモリ・ブロック902の物理特性を記述するのに2つのビットプレーン904が必要とされる点で図7及び図8と同様である。本例において、ビットプレーン2 910内のセル5は、ビットプレーン1 908内のセル5が「1」と等しい場合は「0」でスタックされる。また、ビットプレーン2 910内のセル5は、ビットプレーン1 908内のセル5が「0」と等しい場合は「1」でスタックされる。
このような制約の計算対象となる仮想メモリは、非バイナリであってもよく、例えば計算が必要となる仮想書き込みベクトルの数を減少させるのに役立つことが証明される可能性がある。図10は、異機種混合メモリ制約を1組の仮想ターナリ・メモリに対する等価な制約に分解する、例示的な一実施形態によって実施され得る処理の概念図である。図10に示される例は、5つの異機種混合メモリ・セルを有するメモリ・ブロック1002を含む。これらのメモリ・セルの抵抗範囲レベルは9つの値(0、1、2、3、4、5、6、7、8)を有し、したがって、この抵抗範囲の物理特性は2つのターナリ・シンボル・プレーン1004で表現することが可能である。各ターナリ・シンボル・プレーンは、仮想メモリ(「ターナリ・メモリ」とも呼ばれる)のうちの1つに対応する。図10は、ターナリ・メモリ1 1008と、ターナリ・メモリ2 1010とを示す。オリジナル・メモリ・ブロック1002の異種性は、仮想メモリ・セルに対する制約の形で現れる。例えば、セル5はレベル1(3進数の「01」)よりも大きいレベルをサポートすることができず、そのため、ターナリ・メモリ1 1008内の対応する仮想セルは2未満に制約され、ターナリ・メモリ2 1010内の対応するセルは0でスタックされる。同様に、セル2はレベル2(3進数の「02」)よりも大きいレベルをサポートすることができないため、ターナリ・メモリ2 1010内の仮想セル2は0でスタックされる。別の例として、セル3は、レベル「00」、「01」、「02」、「10」、及び「11」のみをサポートする。それ故、ターナリ・メモリ2 1010内の仮想セル3は、ターナリ・メモリ1 1008内の位置3に書き込まれるシンボルが「0」又は「1」である場合は「0」又は「1」に制約され、そうでない場合は「0」でスタックされる。
図11は、例示的な一実施形態によって実施され得るバイナリ書き込みワード・コンピュータ1106及びバイナリ・ワード・デコーダ1110のブロック図である。書き込みプロセスは、i番目の仮想メモリに関する仮想書き込みベクトルとも呼ばれる書き込みデータcを生成する。書き込みプロセスは、バイナリ・メモリ制約コンピュータ1102と、コード・セレクタ1104と、バイナリ書き込みワード・コンピュータ1106と、を含む。バイナリ・メモリ制約コンピュータ1102は、物理特性、ならびにそれ以前に書き込まれた仮想メモリに対応する仮想書き込みベクトルをテスタから受け取り、ビットプレーンのうちの1つに関するスタック位置及びスタック値を記述する制約ベクトルを生成する。制約ベクトルはコード・セレクタ1104に入力され、コード・セレクタ1104は、制約ベクトルの内容とメモリ・セル・ブロック内のメモリ・セル数とに基づいて、コードブック(本例ではバイナリ・コード行列で表現される)を選択する。また、コード・セレクタ1104は、制約ベクトルをバイナリ書き込みワード・コンピュータ1106にも渡す。バイナリ書き込みワード・コンピュータ1106は、コード行列Hと、b及びvを含む制約ベクトルと、書き込みデータmとを入力して仮想書き込みベクトルcを計算する。仮想書き込みベクトルcは、制約ベクトルで指定される制約も満足させながら、「c」に関するHc=mを解くことによって計算される。この仮想書き込みベクトルは、当該ブロックの仮想書き込みベクトルを書き込みワードに組み合わせるPCMワード・ライタに入力される。また、この仮想書き込みベクトルは、次の仮想メモリに関する制約ベクトルの展開時に使用するために、バイナリ・メモリ制約コンピュータ1102に入力される。
図11の例示的な実施形態に示されるように、読み取りプロセスは、データ・バイナライザ1108と、バイナリ・ワード・デコーダ1110と、を利用する。PCMワード・リーダからの読み取りワードは、データ・バイナライザ1108で受け取られる。データ・バイナライザ1108は、読み取りワードを複数の仮想読み取りベクトルに分割する。仮想読み取りベクトルのうちの1つは、メモリ・ブロックへのデータ書き込み時に利用されたコードブックと共にバイナリ・ワード・デコーダ1110に入力される。仮想読み取りベクトルにコードブックを乗じることによって部分読み取りデータ・ベクトル(「バイナリ・メッセージ」とも呼ばれる)が生成される。部分読み取りデータ・ベクトルは、読み取りワード・ジェネレータに送られ、読み取りワード・ジェネレータは、メモリ・ブロック内の各仮想メモリからの部分読み取りデータ・ベクトルを読み取りデータに組み合わせる。
図11に示される例は、非バイナリ・メモリ制約及びコード行列が使用される場合に一般化することができる。
図12は、例示的な一実施形態によって実施され得るPCMワード・ライタ504のようなワード・ライタのブロック図である。PCMワード・ライタ504は、仮想書き込みベクトル(c...c...c)を異機種混合PCMメモリ402に書き込まれる書き込みワード(W...W)に組み合わせる。「K」はメモリ・セル・ブロック内のセル数、「B」はメモリ・セル・ブロック内の仮想メモリ数である。図12は、書き込みワード内容の例示的な判定手法を示すものであり、仮想書き込みベクトルを組み合わせて書き込みワードを作成する他の手法を実施することも可能である。上記の仮想書き込みベクトル生成手法(特にそれらと仮想メモリ・セルとの整合性)は、書き込みワード内の各シンボルがそれぞれの書き込み先のセルによってサポートされるレベルとなることを保証する。これにより、異機種混合メモリの正しい書き込みが保証される。
図13は、例示的な一実施形態によって実施され得るデータ・バイナライザ604のようなPCMデータ・バイナライザのブロック図である。PCMワード・リーダ602は、PCMメモリから読み取り対象のメモリ読み取りアドレスにおける読み取りワード(W...W)を受け取り、その読み取りワードを複数の仮想読み取りベクトル(c...c...c)に分割する。図13は、書き込みワード内容の例示的な判定手法を示すものであり、他の分割手法を実施することも可能である。
図14は、例示的な一実施形態によって実施され得るバイナリ・メモリ制約コンピュータ502のようなバイナリ・メモリ制約コンピュータのブロック図である。図14は、セル「i」に対応する「B」個の仮想メモリに関する制約(スタック・ビット及びスタック値)の計算を示す。抵抗範囲は、抵抗範囲テスタ404によって測定され、セル「i」によってサポートされる整数値の抵抗レベル・インデックス・セットを判定するのに使用される。このセットと、仮想メモリ1〜k−1内の位置「i」に書き込まれるビットとに基づいて、バイナリ・メモリ「k」内の位置「i」がスタックされているかどうか(そうであればスタック値が何であるか)を判定することができる。
図15は、図14に示されるブロック図で実施され得るバイナリ制約計算プロセスを示す。図15に示される例において、セル「i」は、インデックス1、2、3、4、及び5で表される抵抗レベルをサポートすることができる。この情報はバイナライザ1502に入力され、バイナライザ1502は、各セル・レベル・インデックスに対応する2値化インデックスを作成する。5つ以上の抵抗レベルがPCMメモリ内に存在するので、少なくとも3つの仮想メモリ(「バイナリ・メモリ」とも呼ばれる)が存在する。図15は、3つの各仮想メモリ内の位置「i」に対応するメモリ制約の計算手法を示す。2値化インデックスはバイナリ・メモリ1の制約コンピュータ1504に入力され、バイナリ・メモリ1の制約コンピュータ1504は、2値化インデックスの最下位ビットにどのような値が収容されているかを判定する。本例において、これらの値には「0」と「1」の両方が含まれ、したがってバイナリ・メモリ1の位置「i」は非スタックである。
ブロック1506で、バイナリ・メモリ1内のビット「i」に「0」の値が書き込まれる。この書き込みブロックに対する入力にはバイナリ・メモリ1に関連する制約ベクトルが含まれ、各制約は、バイナリ・メモリ1内のビット「i」が非スタックであり、したがって任意の値を書き込むことができることを指定する。処理はバイナリ・メモリ2の制約コンピュータ1508に進み、バイナリ・メモリ1内のビット「i」に書き込まれたデータ値が入力される。バイナリ・メモリ1内のビット「i」に「0」が書き込まれたことを考慮して、残りの適合レベルが計算される。バイナリ・メモリ2の制約コンピュータ1508に示されるように、最下位ビット(即ちバイナリ・メモリ1内)に「0」が配置されていることから、残りの適合レベルは(010及び100)となる。バイナリ・メモリ2の制約コンピュータは、バイナリ・メモリ2の位置「i」が非スタックであることを判定する。
ブロック1510で、バイナリ・メモリ2の制約コンピュータ1508から入力された制約ベクトルを使用して、バイナリ・メモリ2内のビット「i」に「1」の値が書き込まれる。次に、処理はバイナリ・メモリ3の制約コンピュータ1512に進み、バイナリ・メモリ1及びバイナリ・メモリ2内のビット「i」に書き込まれたデータ値が入力される。バイナリ・メモリ1内のビット「i」に「0」が書き込まれ、バイナリ・メモリ2内のビット「i」に「1」が書き込まれたことを考慮して、残りの適合レベルが計算される。バイナリ・メモリ3の制約コンピュータ1512に示されるように、残りの適合レベルは(010)となる。バイナリ・メモリ3の制約コンピュータ1512は、バイナリ・メモリ3の位置「i」が「0」でスタックされていることを判定する。この制約情報は、バイナリ・メモリ3のワード書き込みプロセスに入力される。
一実施形態では、仮想書き込みベクトルcを計算するために、cが一定のスタック位置制約を満足するような式Hc=mを解く必要がある。この計算は、各種文献に開示される多数の方法を含めた複数の方法によって実行することができる。例示的な一実施形態において、行列Hは、非正則低密度パリティ検査(LDPC)コードのパリティ検査行列を計算することによって計算され、書き込みプロセスは、ガウス消去法を使用してベクトルを計算する。別の例示的な実施形態において、行列Hは、有限アルファベットから一意に導かれるランダム行列を計算することによって計算され、書き込みプロセスは、ガウス消去法を使用してベクトルを計算する。別の例示的な実施形態において、行列Hは、Luby変換(LT)コードの生成行列の転置を計算することによって計算され、書き込みプロセスは、ピーリングを使用して仮想書き込みベクトル「c」を計算する。別の実施形態において、行列Hは、畳み込みコードを表し、符号化アルゴリズムは、トレリス・ベースのコスト最小化を使用して仮想書き込みベクトル「c」を計算し、この場合、各トレリス・パスに関連するコストは、各セルの抵抗レベルと当該セルに書き込まれる値の関数である。別の実施形態において、行列Hは、BCHやリード・ソロモン・コードのような代数コードの生成行列又はパリティ検査行列を計算することによって計算される。別の例示的な実施形態において、書き込みプロセスは、線形プログラムを解いて以下のようなベクトル「c」、即ち、仮想メモリ内の各メモリ・セルがとり得る抵抗値の範囲によって課される各成分cの値に対する線形制約を満足し、且つ行列Hとcの積から符号化対象の書き込みベクトルmが得られるようなベクトル「c」を発見する。
図16は、ランダム・バイナリ及びLDPCコードならびにガウス消去法を使用する、例示的な一実施形態によって実施され得るバイナリ書き込みワード・コンピュータのブロック図である。「i番目のバイナリ・メモリ」という用語は、仮想メモリのうちの1つを指す。i番目の仮想メモリ内のスタック位置は、対応する値vと共にbとして表現される。利用されるコードブックは、Hと呼ばれる。i番目のバイナリ・メッセージ「m」は、i番目の仮想メモリに書き込まれる書き込みデータの位置を指す。
図17は、例示的な一実施形態によって実施され得る、Luby変換(LT)コード及びピーリングを使用するバイナリ書き込みワード・コンピュータ、ならびに線形プログラミングを使用する非バイナリ書き込みワード・コンピュータのブロック図である。
例示的な一実施形態において、仮想メモリ制約を満足する仮想書き込みベクトルcは、以下のように計算される。書き込みプロセス及び読み取りプロセスは、仮想メモリ毎にGH=0となるような生成行列G及びパリティ検査行列Hを共用する。まず、Hu=mとなるようなベクトルuが発見される。次に、ベクトルGv+mが仮想メモリ制約を満足するようなベクトルvが発見される(但し、「+」は2を法とする加法を示す)。次に、cがc=Gv+mとして計算される。この例示的な実施形態において、行列Gは、ベクトルvがピーリング・アルゴリズムを使用することによって計算され得るように設計された確率分布から各列の重みを選択することによって構築される。別の例示的な実施形態において、行列Gは、代数コードの生成行列又はパリティ検査行列である。
一般に、式Hc=mが選択されたコード行列、ベクトルm、及び所与の制約に関して非可解となる確率は、非ゼロである。図18は、この確率を低減するために例示的な一実施形態によって実施され得る連結コーディングを使用する書き込みワード・コンピュータのブロック図である。この例示的な実施形態では、仮想メモリ毎に2つのバイナリ行列H1及びH2が書き込みプロセスと読み取りプロセスの間で共用される。所与の仮想メモリについて、書き込みプロセスは、H1c1=c2、且つH2c2がメモリに記憶されるメッセージと等しくなるようなベクトルc1及びc2を発見する。ワードc1はメモリに書き込まれる。読み取りプロセスは、H2H1c1を計算することによってメッセージを再構築する。このような連結コーディングを使用すると、メモリ制約を満足しメッセージが復元可能となる適切な仮想書き込みベクトルcを発見することができない確率を低減することが可能となる。
例示的な一代替実施形態では、この確率を低減するために、書き込みプロセス及び読み取りプロセスは、複数のH行列と、それらの所定の順番とを共用する。書き込みプロセスで使用される1番目のH行列からメモリの異種性と整合するベクトルcを得ることができない場合、書き込みプロセスは、2番目のH行列を再試行する。この処理は、メモリの異種性と整合するベクトルcが計算されるまで続けられる。書き込みが成功したステップのインデックスは、記憶対象のメタデータの一部となる。
図19は、書き込みプロセス・エンコーダが、メッセージを符号化し異機種混合メモリ制約を満足するコードワードを生成する行列を事前定義された行列シーケンスから発見しようと試みる、例示的な一実施形態によって実施され得るプロセスを示す。cを作成するのに使用される行列インデックスは、先述のとおり記憶され得るメタデータである。読み取りプロセス・デコーダは、同じ行列シーケンスへのアクセスを有し、メタデータ・コード・インデックスを使用してどの行列を復号化に使用すべきかを判定する。
エントリ数が大きくなり得る複数のコード行列を使用することは、その空間的又は時間的複雑さの故に煩雑となる可能性がある。これは、擬似ランダムであってもよい一連の関数を単一の行列に適用することにより、複数の行列を生成することによって解決され得る。図20は、書き込みプロセス・エンコーダが、図19に示される事前定義された行列シーケンスを生成するために擬似ランダム関数発生器及びコード行列を使用する、例示的な一実施形態によって実施され得るプロセスを示す。デコーダは、同じ擬似ランダム関数発生器を共用する。使用可能な関数の一例は、Hの各列を置換する関数である。この場合、各関数は、Hの各列の異なる擬似ランダム列置換に対応する。本実施形態において、書き込みプロセス及び読み取りプロセスは、H行列を共用するとともに、H行列に関する擬似ランダム又は所定の順序の列置換を共用する。書き込みプロセスはまず、H行列に対する1回目の列置換で生成された行列を使用する。その結果メモリの異種性と整合するベクトルcが得られた場合は、書き込みプロセスは、そのデータをH行列に対する2回目の列置換で生成された行列に書き換える。この処理は、メモリの異種性と整合するベクトルcが計算されるまで続けられる。書き込みが成功したステップのインデックスは、記憶されるメタデータの一部となる。
例示的な一実施形態において、各メモリ・セルは、同じ数(例えばn)の抵抗レベルをサポートするが、抵抗レベルの範囲はセル毎に異なる。この場合、書き込みプロセスは、l mod n=dとなるようなセルiでサポートされるレベルlを計算することにより、セルiのデータ値d(0≦d≦n−1)を符号化する。このレベルはセルに書き込まれる。読み取りプロセスは、データ値をd=l mod nとして再構築する。
例示的な一実施形態において、読み取りプロセスは、追加的に破壊読み出しを実行することによってセルの状態を判定することができる。この処理は、適切なプログラミング・パルスを使用して各セル・ブロックをそれぞれのSETレベル及びRESETレベルにプログラミングするステップと、データ読み取り後のSET抵抗レベル及びRESET抵抗レベルを測定するステップと、を含む。これに続いてデータを各セルに再書き込みするステップが実行される。一実施形態において、書き込みプロセスは、抵抗レベルのバイナリ分解を使用してデータをセルの異種性と整合する形でメモリ・セルに書き込む。読み取りプロセスは、セル状態に関する知識を使用して書き込みデータを正しく変換処理する。
図21は、読み取りプロセス及び書き込みプロセスが共に各セルでサポートされる抵抗レベルを測定可能である場合に例示的な一実施形態によって実施され得るPCMメモリにデータを記憶するシステムのブロック図である。図21に示されるシステムは、メモリ・セル・ブロックを含む異機種混合PCMメモリ2102と、異機種混合PCMメモリ2102の書き込み時の抵抗レベルを判定する抵抗範囲テスタ2104と、書き込みデータを受け取り、メモリ2102に記憶されるPCM書き込みワードを生成するエンコーダ2106と、PCM読み取りワードを異機種混合PCMメモリ2102から受け取り、読み取りデータを生成するデコーダ2112と、読み取り時の抵抗レベルを判定する抵抗範囲テスタ2110と、を含む。異機種混合PCMメモリ2102に対する例示的な書き込みプロセス2108は、抵抗範囲テスタ2104と、エンコーダ2106と、を利用する。異機種混合PCMメモリ2102に対する例示的な読み取りプロセス2114は、デコーダ2112と、抵抗範囲テスタ2110と、を利用する。例示的な一実施形態において、抵抗範囲テスタ2104及び2110は組み合わされる。
図22は、読み取りプロセス及び書き込みプロセスが共に各セルでサポートされる抵抗レベルを測定可能である場合に異機種混合PCMメモリ2102にデータを書き込む例示的なシステムのブロック図である。図22は、例示的な一実施形態によって実施され得るエンコーダ2106をより詳細に示す図である。例示的なエンコーダ2106は、バイナリ・メモリ制約コンピュータ2202と、メッセージ・ビット書き込みブロック2204と、データ・バイナライザ2208と、PCMワード・ライタ2206と、を含む。図22のシステムによって実施され得る例示的な書き込みプロセスは、異機種混合メモリ・セル・ブロックに対応する書き込みデータ及び書き込みアドレスを受け取るステップを含む。メモリ・セルの物理特性が判定される。書き込みデータは、それぞれ1つの仮想メモリと関連付けられる複数の部分書き込みデータ・ベクトルに分割される。この処理は、仮想メモリ毎に識別されるメモリ制約に基づいて行われる。各仮想メモリについて以下のステップ、即ち、メモリ・セルの物理特性、メモリ・セル・ブロックに関してそれ以前に生成されたすべての制約ベクトル、及びメモリ・セル・ブロックに関してそれ以前に生成されたすべての仮想書き込みベクトルに応答して、仮想メモリ内のメモリ・セルを記述する制約ベクトルを生成するステップ(例えばバイナリ・メモリ制約コンピュータ2202によって実行される)と、制約ベクトル及び部分書き込みデータに応答して仮想書き込みベクトルを計算するステップ(例えばメッセージ・ビット書き込みブロック2204によって実行される)と、が実行される。仮想書き込みベクトルは単純に、ある値にスタックされた各仮想メモリ・セルをスキップしながら、部分書き込みデータの各ビットを仮想メモリに順番に書き込むことによって生成される。各仮想書き込みベクトルは、PCMワード・ライタ2206によってメモリ・セル・ブロックに出力される書き込みワードに組み合わされる。
図23は、読み取りプロセス及び書き込みプロセスが共に各セルでサポートされる抵抗レベルを測定可能である場合に例示的な一実施形態によって実施され得る異機種混合PCMメモリ2102からデータを読み取るシステムのブロック図である。図23は、例示的な一実施形態によって実施され得る例示的なデコーダ2112をより詳細に示す図である。例示的なデコーダ2112は、PCMワード・リーダ/リライタ2306と、データ・バイナライザ2304と、バイナリ・メモリ制約コンピュータ2302と、メッセージ・ビット読み取りブロック2308と、読み取りデータ・ジェネレータ2310と、を含む。図23のシステムによって実施され得る例示的な読み取りプロセスは、メモリ・セル・ブロックから読み取りワードを受け取るステップ(例えばPCMワード・リーダ/リライタ2306によって実行される)と、メモリ・セルの物理特性を判定するステップ(例えば抵抗範囲テスタ2110によって実行される)と、を含む。読み取りワードは、物理特性に基づいて複数の仮想読み取りベクトルに分割される(例えばバイナリ・メモリ制約コンピュータ2302によって実行される)。各仮想メモリについて以下のステップ、即ち、メモリ・セルの物理特性、メモリ・セル・ブロックに関してそれ以前に生成されたすべての制約ベクトル、及びメモリ・セル・ブロックに関してそれ以前に生成されたすべての仮想読み取りベクトルに応答して、仮想メモリ内のメモリ・セルを記述する制約ベクトルを生成するステップと、制約ベクトルに応答して部分読み取りデータ・ベクトルを生成するステップ(例えばメッセージ・ビット読み取りブロック2308によって実行される)と、が実行される。部分読み取りベクトルは単純に、各ビットを仮想メモリから順番に読み取り、ある値にスタックされた各仮想メモリ・セルから読み取られたビットを破棄することによって生成される。各部分読み取りデータ・ベクトルは、読み取りデータ・ジェネレータ2310によって読み取りデータに組み合わされ、読み取りデータが出力される。
例示的な一実施形態において、各セルは、書き込み可能であるが書き込み時間及び電力のコストが高くなる可能性があるレベル・サブセットを有する。例示的な一実施形態において、書き込みプロセスは、図1に記載される方法を実行するが、結果として得られるベクトルcが他のレベルと整合しない場合は高いコスト・レベルを使用する。別の例示的な実施形態において、書き込みプロセスは、所与のコスト制約にとって最適な書き込み対象レベル・セットを計算し、その後図1の方法を使用してデータを各レベルに書き込む。いずれの実施形態でも、読み取りプロセスは図2の方法を使用する。
例示的な一実施形態において、各セル・レベルは異種性に加えてノイズも含む。当業界で知られるように、ノイズとは、メモリの物理特性の経時的な変化を指す。書き込みプロセスは、1組のバイナリ仮想メモリを利用して図1に記載されるようなセル・レベルの2値化を実行することができる。続いて、書き込みプロセスは、各仮想メモリの書き込みを行うためにネスト化コードを使用する。例示的な一実施形態において、書き込みプロセス及び読み取りプロセスは、H=[H1|H2]となるような行列H1及びHを共用する。ここで、Hは行列Hの転置を表す。書き込みプロセスは、H2cが記憶対象のメッセージとなり、cがメモリの異種性を満足し、且つH1cが0となるようなベクトルcを計算する。雑音を含むベクトルc’が与えられた場合、読み取りプロセスは、cがc’と(例えばハミング距離の点で)近く、且つH1c=0となるようなベクトルcを計算する。次に、読み取りプロセスは、メッセージをH2cとして再構築する。行列H1及びH2は、HがBCHやリード・ソロモン・コードのような代数コードの生成行列又はパリティ検査行列となるような行列とすることができる。
図24は、例示的な一実施形態によって実施され得る、ノイズを含む異機種混合メモリにデータを記憶するバイナリ・ワード・コンピュータ及びバイナリ・ワード・デコーダを示す。図24に示されるデコーダは、行列Hを使用してエラー訂正を実行し、cを検索する。次に、メッセージmがm=Hcとして計算される。
例示的な一実施形態において、メモリに記憶するために書き込みプロセスによって生成されるメタデータは、行列Hに関する部分的な情報を含む。一例として、書き込みプロセスは、複数の可能なH行列のうちの1つを使用する選択肢を有し、部分的な情報は、読み取りプロセスが書き込みプロセスで使用されたH行列を区別することを可能にするデータで構成される。別の例として、部分的な情報は、受信器が書き込みプロセスで使用されたH行列を再構築することを可能にするデータで構成され、H行列は、読み取りプロセスと書き込みプロセスの両方で擬似ランダムに生成される。
例示的な一実施形態において、情報の記憶に使用される物理特性は、多次元である。例示的な一実施形態では、複数の電圧測定値を使用してPCMメモリ要素に記憶されている情報が読み取られ、セル抵抗は電圧毎に異なる。複数の電圧信号間で組み合わされたセル応答は、情報の記憶に使用される多次元値を形成する。メモリは、各次元の各セルでサポートされる値の範囲がセル毎に異なる点で異機種混合である。図25及び図26は、異機種混合多次元メモリ制約が1組の仮想バイナリ・メモリに対する等価な1次元制約に分解され得る例示的な一実施形態を示す。本例において、図25には5つのセル2502を有するメモリ・ブロックが示されており、各セルを特徴付ける抵抗値は2次元とされている。セル1は、第1次元では3つのレベルを、第2次元では1つのレベルをサポートする。セル2は、第1次元では1つのレベルを、第2次元では2つのレベルをサポートする。セル3は、第1次元では2つのレベルを、第2次元では2つのレベルをサポートする。セル4は、第1次元では4つのレベルを、第2次元では2つのレベルをサポートする。セル5は、第1次元では4つのレベルを、第2次元では1つのレベルをサポートする。多次元値の全体的な範囲は、すべての2D値をカバーする2次元値の任意の順序付けを選択することによって等価な1次元範囲に変換することができる。例示的な順序付けは、表2504に示される。この場合、各セルは、等価な1Dレベル範囲に由来するレベル・セットをサポートする。表2506は、異機種混合メモリ・ブロック2502の各セルでサポートされるレベルを、表2504の場合と同様に1D値に変換して示す。あるセットでサポートされる1Dレベル・セットは、非隣接セットであることも隣接セットであることもあることに留意していただきたい。例えば、セル1は、非隣接レベル・セットである1Dレベル0、2、4をサポートする。図26には、このような多次元値を有する異機種混合メモリが、それぞれの仮想セルに対する制約が計算された仮想バイナリ・メモリにどのように分解され得るかが示されている。合計8つの1Dレベルが存在するので、3つの仮想バイナリ・メモリが必要となる。バイナリ・メモリ1 2602内の仮想セル1及び5は、0でスタックされるように制約される。バイナリ・メモリ2 2604内の仮想セル2は、0でスタックされるように制約され、バイナリ・メモリ2 2604内の他のセルは、無制約とされる。バイナリ・メモリ3 2606では、仮想セル1、2、及び3は様々な制約を有する。これらの制約が計算されると、先述の各種技法を使用してこのメモリに情報が効率的に記憶される。
例示的な一実施形態において、セルの物理特性に関する情報は、部分的にしか利用することができない。この状況は、例えばすべてのセルの一部の物理特性しか利用可能でない場合に生じる可能性がある。この場合、上述の各種技法は、メモリに書き込まれるデータ・ベクトルが既知の部分的なセル情報から導出される制約を満足するような形で使用される。
例示的な一実施形態において、メモリ・セルの異種性によって課される制約セットは、所与のセル又は所与のセルの所与のビットプレーンに記憶可能な文字の制約(バイナリ又は非バイナリ)の形で明示されるが、この制約はセル及びビットプレーン毎に異なる。
上述の各種技法は、メモリ要素が情報を記憶する上で抵抗以外の物理特性を利用し、前記物理特性がメモリ要素毎の可変性を示す場合にも使用され得る。これらの技法は、セルの一部又は全部が異機種混合セルであるメモリへの効率的なデータ記憶を可能にするので、メモリ・チップの歩留まりを改善するのにも利用することができる。ナイーブなシステムでは、事前指定された一定のメモリ・レベル範囲をサポートしないセルが一定の比率を超えるメモリ・チップがあれば、それらを破棄する必要が生じる可能性がある。その結果歩留まりが低下する恐れがある。一方、本明細書に記載される技法を使用すれば、事前指定されたメモリ・レベル範囲をサポートしないセルをも情報の記憶に使用することが可能となる。それ故、破棄の必要が生じるチップ数が減少し、それによって歩留まりが改善される。
技術的な効果及び利点としては、セル毎に記憶可能なデータのタイプ及び量に影響を及ぼす任意の種類の異種性によって各要素が特徴付けられる任意のメモリに情報を記憶することが可能となる能力が挙げられる。これにより、部分的に欠陥のあるメモリにデータを記憶することが企図された従来の手法と比較して高い柔軟性がもたらされる。例示的な諸実施形態は、記憶可能な情報量を増大させることによって非常に効率的なメモリ記憶を可能にする。例示的な諸実施形態は、不完全な可変物理特性を示すセルを有するメモリ上で、そのようなチップを破棄する代わりに効率的なデータ記憶を可能にすることにより、メモリの歩留まりを高めるのにも利用することができる。
本明細書に示される各フロー図は、単なる一例にすぎない。各図面又は各図面に記載されるステップ(又は動作)には、本発明の趣旨から逸脱しない限り様々な変更を施すことができる。例えば、各ステップを異なる順序で実行することも、ステップの追加、削除、あるいは修正を行うことも可能である。これらの変形形態はすべて各請求項に記載される発明の一部と見なされる。
上述のとおり、本発明の諸実施形態は、コンピュータ実装プロセス及びそれらのプロセスを実行する装置の形で実施することができる。本発明の諸実施形態は、フレキシブル・ディスク、CD‐ROM、ハード・ドライブ、他の任意のコンピュータ読み取り可能な記憶媒体等、有形の媒体内で実行される命令を含むコンピュータ・プログラム・コードであって、それらがコンピュータにロードされ、コンピュータによって実行されたときに当該コンピュータが本発明を実施する装置となる、コンピュータ・プログラム・コードの形で実施することもできる。本発明は、例えばストレージ・メディアに記憶されるものであれ、コンピュータへのロード又はコンピュータによる実行あるいはその両方が行われるものであれ、電気配線又は電気ケーブル、光ファイバ、電磁放射等、何らかの伝送媒体を介して伝送されるものであれ、それらがコンピュータにロードされ、コンピュータによって実行されたときに当該コンピュータが本発明を実施する装置となる、コンピュータ・プログラム・コードの形で実施することもできる。当該コンピュータ・プログラム・コードが汎用マイクロプロセッサに実装された場合、その汎用マイクロプロセッサは、当該コンピュータ・プログラム・コードの各セグメントによって特定の論理回路を形成するように構成される。
以上、本発明の好ましい実施形態について説明したが、当業者なら現在及び将来にわたって各請求項の範囲に含まれる様々な改良及び機能拡張を施すことができることが理解されるだろう。各請求項は、当初の記載の発明の適切な保護を維持するものと解釈すべきである。
302 異機種混合メモリ
304 テスタ
306、406、2106 エンコーダ
308、408、2112 デコーダ
310、410 共用コード
312、412、2108 書き込みプロセス
314、414、2114 読み取りプロセス
402、2102 異機種混合PCMメモリ
404、2104、2110 抵抗範囲テスタ
502、1102、2202、2302 バイナリ・メモリ制約コンピュータ
504、2206 PCMワード・ライタ
506、1104 コード・セレクタ
508、1106 バイナリ書き込みワード・コンピュータ
510、1108、2208、2304 データ・バイナライザ
602 PCMワード・リーダ
604 PCMデータ・バイナライザ
606、1110 バイナリ・ワード・デコーダ
608、2310 読み取りデータ・ジェネレータ
702、802、902、1002 メモリ・ブロック
704、804、904 ビットプレーン
708、710、808、810、908、910、2602、2604、2606 バイナリ・メモリ
1004 ターナリ・シンボル・プレーン
1008、1010 ターナリ・メモリ
1502 バイナライザ
1504、1508、1512 制約コンピュータ
2112 デコーダ
2204 メッセージ・ビット書き込みブロック
2306 PCMワード・リーダ/リライタ
2308 メッセージ・ビット読み取りブロック

Claims (24)

  1. データ記憶方法であって、
    書き込みプロセスがメモリの書き込みを行うステップであって、
    前記メモリ内のメモリ・セルの物理特性は、異なるデータ・レベル・セットをサポートし、
    前記書き込みプロセスは、前記メモリの書き込み時に前記異なるデータ・レベル・セットを考慮に入れる、
    ステップと、
    読み取りプロセスが前記メモリの読み取りを行うステップであって、まず前記メモリ内のデータを取得し、その後前記データをどのように変換処理するかを判定する、ステップと、
    を含む方法。
  2. 前記書き込みプロセスは、少なくとも1つのコードブックを利用し、
    前記メモリ内のメモリ・セル・ブロックに書き込まれる書き込みメッセージを受け取るステップと、
    前記ブロック内の前記メモリ・セルの物理特性を判定するステップと、
    前記物理特性に応答して前記メモリ・セル・ブロックに関連する仮想メモリを識別するステップと、
    前記仮想メモリのそれぞれについて、
    前記メモリ・セルの前記物理特性、それ以前に生成された制約ベクトル、及びそれ以前に生成された仮想書き込みベクトルに応答して、前記仮想メモリ内の仮想セルを記述する制約ベクトルを生成するステップと、
    コードブック、前記制約ベクトル、及び前記書き込みメッセージに応答して仮想書き込みベクトルを計算するステップと、
    を実行するステップと、
    前記仮想書き込みベクトルを書き込みワードに組み合わせるステップと、
    前記書き込みワードを前記メモリ・セル・ブロックに出力するステップと、
    を含む、請求項1に記載の方法。
  3. 前記実行するステップは、前記制約ベクトルの内容及び前記メモリ・セル・ブロック内のメモリ・セル数に基づいて、複数のコードブックからコードブックを選択するステップと、前記仮想書き込みベクトルの計算に利用される前記コードブックを識別するコードブック識別子を記憶するステップと、を更に含む、請求項2に記載の方法。
  4. 前記制約ベクトルは、前記仮想セルに関する位置及びサポートされるレベルを記述する、請求項2に記載の方法。
  5. 前記書き込みメッセージは、それぞれ仮想メモリに対応する部分書き込みベクトルに分割され、コードブックは、シンドロームを仮想書き込みベクトルに割り当てる線形コードであり、前記計算するステップは、前記仮想メモリに関して生成された前記制約ベクトルと整合する仮想書き込みベクトルを計算するステップを含み、前記仮想書き込みベクトルの前記シンドロームは、前記仮想メモリに対応する前記部分書き込みベクトルである、請求項2に記載の方法。
  6. 前記計算するステップは、ガウス消去法、ピーリング、及びトレリス・ベース・デコーディングのうちの1つ又は複数を含み、コードブックは、ランダム・バイナリ行列、バイナリ低密度パリティ検査(LDPC)検査行列、バイナリLuby変換(LT)行列、代数コード、及び畳み込みコードのうちの1つ又は複数によって定義される、請求項2に記載の方法。
  7. 前記メモリ・セル・ブロックは、相変化メモリ(PCM)であり、前記物理特性は、各メモリ・セルの抵抗レベル範囲を含む、請求項2に記載の方法。
  8. 前記メモリ・セル・ブロックは、PCMであり、前記物理特性は、各メモリ・セルの抵抗レベル範囲を含み、前記制約ベクトルは、前記仮想メモリ・セルに関する位置及びサポートされる・レベルを記述し、前記書き込みワードは、各PCMメモリ・セルに書き込まれる抵抗レベルを含む、請求項2に記載の方法。
  9. コードブックは、行列で表現され、前記仮想書き込みベクトルの計算に線形プログラミングが利用される、請求項2に記載の方法。
  10. コードブックは、連結コードで表現される、請求項2に記載の方法。
  11. 前記メモリ・セル・ブロックは、フラッシュ・メモリであり、前記物理特性は、各メモリ・セルの閾値電圧特性を含む、請求項2に記載の方法。
  12. 前記計算するステップは、不成功となる可能性があり、前記仮想書き込みベクトルは、前記計算するステップが不成功とならないようなコードブックが突き止められるまで1つ又は複数のコードブックを適用することによって計算される、請求項2に記載の方法。
  13. 前記メモリ・セルは、ノイズの影響を受け、前記計算するステップは、追加的に第2のコードブックに属するような前記仮想書き込みベクトルを選択するステップを含む、請求項2に記載の方法。
  14. 前記物理特性は、多次元レベルを含み、前記書き込みプロセスは、すべての多次元レベルをカバーする順序付けを使用することによって前記多次元レベルを1次元レベルに変換するステップを更に含む、請求項2に記載の方法。
  15. メモリの読み取り方法であって、
    メモリ・セル・ブロックから読み取りワードを受け取るステップであって、前記ブロック内の前記メモリ・セルの物理特性は異なるデータ・レベル・セットをサポートする、ステップと、
    前記読み取りワードを複数の仮想読み取りベクトルに分割するステップと、
    前記仮想読み取りベクトルのそれぞれについて、
    前記仮想読み取りベクトルの生成に利用されたコードブックを識別するステップと、
    部分読み取りデータ・ベクトルを生成するステップであって、前記仮想読み取りベクトルに前記コードブックを表現する行列を乗じるステップを含むステップと、
    を実行するステップと、
    前記部分読み取りデータ・ベクトルを読み取りメッセージに組み合わせるステップと、
    前記読み取りメッセージを出力するステップと、
    を含む方法。
  16. 前記メモリ・セル・ブロックは、相変化メモリ(PCM)であり、前記物理特性は、各メモリ・セルの抵抗レベル範囲を含む、請求項15に記載の方法。
  17. 前記メモリ・セルは、ノイズを含み、前記実行するステップは、前記ノイズを補償するために前記生成するステップで利用される第2のコードブックを識別するステップを含む、請求項15に記載の方法。
  18. メモリ・システムであって、
    メモリ・セル・ブロックを含むメモリであって、前記メモリ・セルの物理特性は異なるデータ・レベルをサポートする、メモリと、
    前記メモリ・セルの前記物理特性を判定するテスタと、
    前記メモリ及び前記テスタに接続され、少なくとも1つのコードブックを利用するエンコーダと、
    を備え、
    前記エンコーダは、
    前記メモリ・セル・ブロックに書き込まれる書き込みメッセージを受け取るステップと、
    前記物理特性に応答して前記メモリ・セル・ブロックに関連する仮想メモリを識別するステップと、
    前記仮想メモリのそれぞれについて、
    前記メモリ・セルの前記物理特性、それ以前に生成された制約ベクトル、及びそれ以前に生成された仮想書き込みベクトルに応答して、前記仮想メモリ内の仮想セルを記述する制約ベクトルを生成するステップと、
    コードブック、前記制約ベクトル、及び前記書き込みメッセージに応答して仮想書き込みベクトルを計算するステップと、
    を実行するステップと、
    前記仮想書き込みベクトルを書き込みワードに組み合わせるステップと、
    前記書き込みワードを前記メモリ・セル・ブロックに出力するステップと、
    を実行する、メモリ・システム。
  19. 記憶位置を更に備え、前記仮想メモリのそれぞれについて実行する前記ステップは、
    前記制約ベクトルの内容及び前記メモリ・セル・ブロック内のメモリ・セル数に基づいて、複数のコードブックから前記コードブックを選択するステップと、
    前記仮想書き込みベクトルの計算に利用される前記コードブックを識別するコードブック識別子を前記記憶位置に記憶するステップと、
    を更に含む、請求項18に記載のシステム。
  20. 前記メモリに接続されたデコーダ
    を更に備え、
    前記デコーダは、
    前記メモリ内の第2のメモリ・セル・ブロックから読み取りワードを受け取るステップと、
    前記読み取りワードを複数の仮想読み取りベクトルに分割するステップと、
    前記仮想読み取りベクトルのそれぞれについて、
    前記仮想読み取りベクトルの生成に利用されたコードブックを識別するステップと、
    部分読み取りデータ・ベクトルを生成するステップであって、前記仮想読み取りベクトルに識別された前記コードブックを表現する行列を乗じるステップを含むステップと、
    を実行するステップと、
    前記部分読み取りデータ・ベクトルを読み取りメッセージに組み合わせるステップと、
    前記読み取りメッセージを出力するステップと、
    を実行する、請求項18に記載のシステム。
  21. 異機種混合メモリの書き込み方法であって、
    メモリ・セル・ブロックに対応する書き込みメッセージ及び書き込みアドレスを受け取るステップであって、前記メモリ・セルのうちの少なくとも2つは異なるデータ・レベルをサポートする、ステップと、
    前記メモリ・セルの物理特性を判定するステップと、
    前記物理特性に応答して前記メモリ・セル・ブロックに関連する仮想メモリを識別するステップと、
    前記仮想メモリのそれぞれについて、
    前記メモリ・セルの前記物理特性、それ以前に生成された制約ベクトル、及びそれ以前に生成された仮想書き込みベクトルに応答して、前記仮想メモリ内の仮想セルを記述する制約ベクトルを生成するステップと、
    前記制約ベクトル及び前記書き込みメッセージに応答して仮想書き込みベクトルを計算するステップであって、前記制約ベクトルの指示から特定の値にスタックされていることが知られる位置をスキップしながら、前記書き込みメッセージをビット単位で順番に前記仮想メモリに書き込むステップを含むステップと、
    を実行するステップと、
    前記仮想書き込みベクトルを書き込みワードに組み合わせるステップと、
    前記書き込みワードを前記メモリ・セル・ブロックに出力するステップと、
    を含む方法。
  22. 前記メモリ・セル・ブロックは、PCMであり、前記物理特性は、各メモリ・セルの抵抗レベル範囲を含む、請求項21に記載の方法。
  23. 異機種混合メモリの読み取り方法であって、
    メモリ・セル・ブロックから読み取りワードを受け取るステップであって、前記メモリ・セルのうちの少なくとも2つは異なるデータ・レベルをサポートする、ステップと、
    前記メモリ・セルの物理特性を判定するステップと、
    前記物理特性に応答して前記メモリ・セル・ブロックに関連する仮想メモリを識別するステップと、
    前記仮想メモリに応答して前記読み取りワードを複数の仮想読み取りベクトルに分割するステップと、
    前記仮想読み取りベクトルのそれぞれについて、
    前記メモリ・セルの前記物理特性、それ以前に生成された制約、及びそれ以前に生成された部分読み取りベクトルに応答して、前記仮想メモリ内の仮想セルを記述する制約ベクトルを生成するステップと、
    前記制約ベクトル及び前記仮想読み取りベクトルに応答して部分読み取りデータ・ベクトルを生成するステップであって、前記仮想読み取りベクトルをビット単位で順番に読み取るステップ、及び前記制約ベクトルの指示からスタックされていることが知られるビットを破棄するステップを含むステップと、
    を実行するステップと、
    前記部分読み取りデータ・ベクトルを読み取りメッセージに組み合わせるステップと、
    前記読み取りメッセージを出力するステップと、
    を含む方法。
  24. 前記メモリ・セル・ブロックは、PCMであり、前記物理特性は、各メモリ・セルの抵抗レベル範囲を含む、請求項23に記載の方法。
JP2010104596A 2009-04-30 2010-04-28 異機種混合ストレージ要素の容量を増大させる方法及びシステム Expired - Fee Related JP5464703B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/433,157 US8331168B2 (en) 2009-04-30 2009-04-30 Increased capacity heterogeneous storage elements
US12/433157 2009-04-30

Publications (2)

Publication Number Publication Date
JP2010262730A true JP2010262730A (ja) 2010-11-18
JP5464703B2 JP5464703B2 (ja) 2014-04-09

Family

ID=43030244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010104596A Expired - Fee Related JP5464703B2 (ja) 2009-04-30 2010-04-28 異機種混合ストレージ要素の容量を増大させる方法及びシステム

Country Status (4)

Country Link
US (3) US8331168B2 (ja)
JP (1) JP5464703B2 (ja)
KR (1) KR101264476B1 (ja)
CN (1) CN101944067B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011150461A (ja) * 2010-01-20 2011-08-04 Sony Corp 記憶装置およびデータの書込み方法

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352839B2 (en) * 2010-06-11 2013-01-08 International Business Machines Corporation Encoding data into constrained memory
US9128869B2 (en) * 2011-09-29 2015-09-08 Micron Technology, Inc. Systems and methods involving managing a problematic memory cell
US8996955B2 (en) 2011-11-16 2015-03-31 HGST Netherlands B.V. Techniques for storing data in stuck and unstable memory cells
KR101835605B1 (ko) 2011-11-24 2018-03-08 삼성전자 주식회사 플래시 메모리 시스템 및 플래시 메모리 시스템의 리드 방법
US8732560B2 (en) * 2012-05-08 2014-05-20 Infineon Technologies Ag Method and device for correction of ternary stored binary data
CN102902629B (zh) * 2012-06-20 2016-06-22 华为技术有限公司 存储空间映射方法及装置
US9070483B2 (en) 2012-10-10 2015-06-30 HGST Netherlands B.V. Encoding and decoding redundant bits to accommodate memory cells having stuck-at faults
US9274884B2 (en) 2012-10-10 2016-03-01 HGST Netherlands B.V. Encoding and decoding data to accommodate memory cells having stuck-at faults
US8812934B2 (en) 2012-12-12 2014-08-19 HGST Netherlands B.V. Techniques for storing bits in memory cells having stuck-at faults
US8943388B2 (en) 2012-12-12 2015-01-27 HGST Netherlands B.V. Techniques for encoding and decoding using a combinatorial number system
US9570175B2 (en) 2013-08-05 2017-02-14 Jonker Llc Incrementally programmable non-volatile memory
US20150085648A1 (en) * 2013-09-24 2015-03-26 Douglas Leith Congestion control in data networks
KR102204394B1 (ko) * 2013-10-14 2021-01-19 삼성전자주식회사 메모리 시스템에서의 코딩 방법 및 디코딩 방법
KR102098247B1 (ko) * 2013-11-25 2020-04-08 삼성전자 주식회사 메모리 시스템에서 데이터를 인코딩 및 디코딩하기 위한 방법 및 장치
US11783898B2 (en) 2014-09-18 2023-10-10 Jonker Llc Ephemeral storage elements, circuits, and systems
US10061738B2 (en) 2014-09-30 2018-08-28 Jonker Llc Ephemeral peripheral device
US10115467B2 (en) 2014-09-30 2018-10-30 Jonker Llc One time accessible (OTA) non-volatile memory
US10839086B2 (en) 2014-09-30 2020-11-17 Jonker Llc Method of operating ephemeral peripheral device
CN108345428B (zh) * 2017-01-22 2021-08-31 厦门旌存半导体技术有限公司 控制密集型控制系统及其方法
US10230395B2 (en) * 2017-03-31 2019-03-12 Sandisk Technologies Llc Determining codebooks for different memory areas of a storage device
US10355712B2 (en) * 2017-03-31 2019-07-16 Sandisk Technologies Llc Use of multiple codebooks for programming data in different memory areas of a storage device
US10236909B2 (en) * 2017-03-31 2019-03-19 Sandisk Technologies Llc Bit-order modification for different memory areas of a storage device
US10567116B2 (en) * 2017-05-12 2020-02-18 Mediatek Inc. Wireless communication using codebooks from a QC-LDPC code for shorter processing latency and improved decoder throughput efficiency
CN108958801B (zh) 2017-10-30 2021-06-25 上海寒武纪信息科技有限公司 神经网络处理器及使用处理器执行向量最大值指令的方法
US12094456B2 (en) 2018-09-13 2024-09-17 Shanghai Cambricon Information Technology Co., Ltd. Information processing method and system
CN109658867A (zh) * 2018-12-10 2019-04-19 北京欧徕德微电子技术有限公司 数据读写方法及其装置
CN109841242A (zh) * 2019-01-08 2019-06-04 华中科技大学 一种基于相变存储器实现二进制并行加法的方法及系统
US20200364047A1 (en) * 2019-05-16 2020-11-19 Facebook, Inc. High throughput neural network operations using inter-layer memory layout transformation
CN111862885B (zh) * 2020-07-23 2021-12-24 大连集思特科技有限公司 一种内封ic的双向数据传输led控制方法、系统及存储介质
CN112817538B (zh) * 2021-02-22 2022-08-30 腾讯科技(深圳)有限公司 数据处理的方法、装置、设备和存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51138335A (en) * 1975-05-26 1976-11-29 Hitachi Ltd Control system for control memory
JPS61214299A (ja) * 1985-03-20 1986-09-24 Toshiba Corp 読出し専用メモリ
JP2003022687A (ja) * 2001-07-09 2003-01-24 Mitsubishi Electric Corp 半導体記憶装置
JP2004362587A (ja) * 2003-06-04 2004-12-24 Hewlett-Packard Development Co Lp メモリシステム
JP2005078721A (ja) * 2003-09-01 2005-03-24 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正方法およびメモリ回路
JP2006351061A (ja) * 2005-06-14 2006-12-28 Matsushita Electric Ind Co Ltd メモリ回路
JP2008084317A (ja) * 2006-09-27 2008-04-10 Samsung Electronics Co Ltd 異種セルタイプを支援する不揮発性メモリのためのマッピング装置および方法
JP2008108297A (ja) * 2006-10-23 2008-05-08 Toshiba Corp 不揮発性半導体記憶装置
JP2009048757A (ja) * 2007-08-14 2009-03-05 Samsung Electronics Co Ltd 3−レベル不揮発性メモリセルを含む不揮発性メモリ装置の駆動方法およびその方法を使用する不揮発性メモリ装置
JP2009129477A (ja) * 2007-11-20 2009-06-11 Toshiba Corp 不揮発性半導体記憶装置
JP2011513884A (ja) * 2008-02-26 2011-04-28 オヴォニクス,インコーポレイテッド マルチモードプログラム可能抵抗メモリーをアクセスするための方法と装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596522A (en) 1991-01-18 1997-01-21 Energy Conversion Devices, Inc. Homogeneous compositions of microcrystalline semiconductor material, semiconductor devices and directly overwritable memory elements fabricated therefrom, and arrays fabricated from the memory elements
US5278793A (en) 1992-02-25 1994-01-11 Yeh Tsuei Chi Memory defect masking device
US5572470A (en) 1995-05-10 1996-11-05 Sgs-Thomson Microelectronics, Inc. Apparatus and method for mapping a redundant memory column to a defective memory column
US6857099B1 (en) * 1996-09-18 2005-02-15 Nippon Steel Corporation Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
US5933852A (en) 1996-11-07 1999-08-03 Micron Electronics, Inc. System and method for accelerated remapping of defective memory locations
US6473332B1 (en) 2001-04-04 2002-10-29 The University Of Houston System Electrically variable multi-state resistance computing
JP2003022693A (ja) 2001-07-09 2003-01-24 Mitsubishi Electric Corp 半導体メモリ
US6809362B2 (en) 2002-02-20 2004-10-26 Micron Technology, Inc. Multiple data state memory cell
US6831856B2 (en) 2002-09-23 2004-12-14 Ovonyx, Inc. Method of data storage using only amorphous phase of electrically programmable phase-change memory element
JP4187197B2 (ja) 2002-11-07 2008-11-26 シャープ株式会社 半導体メモリ装置の制御方法
JP4205938B2 (ja) 2002-12-05 2009-01-07 シャープ株式会社 不揮発性メモリ装置
US7453715B2 (en) 2005-03-30 2008-11-18 Ovonyx, Inc. Reading a phase change memory
EP1729303B1 (en) 2005-06-03 2010-12-15 STMicroelectronics Srl Method for multilevel programming of phase change memory cells using a percolation algorithm
KR100732628B1 (ko) * 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
CN101211252B (zh) * 2006-12-26 2012-05-23 劲永国际股份有限公司 存储器储存装置
JP2008299918A (ja) 2007-05-29 2008-12-11 Toshiba Microelectronics Corp 不揮発性半導体記憶装置及びその不良ブロック置き換え方法
KR101308549B1 (ko) 2007-07-12 2013-09-13 삼성전자주식회사 멀티-레벨 상변환 메모리 장치 및 그것의 쓰기 방법
US8095735B2 (en) * 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US8209525B2 (en) * 2008-08-15 2012-06-26 Apple Inc. Method and apparatus for executing program code
US8089805B2 (en) * 2008-11-20 2012-01-03 Micron Technology, Inc. Two-part programming methods and memories
US8839076B2 (en) * 2011-03-31 2014-09-16 International Business Machines Corporation Encoding a data word for writing the encoded data word in a multi-level solid state memory

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51138335A (en) * 1975-05-26 1976-11-29 Hitachi Ltd Control system for control memory
JPS61214299A (ja) * 1985-03-20 1986-09-24 Toshiba Corp 読出し専用メモリ
JP2003022687A (ja) * 2001-07-09 2003-01-24 Mitsubishi Electric Corp 半導体記憶装置
JP2004362587A (ja) * 2003-06-04 2004-12-24 Hewlett-Packard Development Co Lp メモリシステム
JP2005078721A (ja) * 2003-09-01 2005-03-24 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正方法およびメモリ回路
JP2006351061A (ja) * 2005-06-14 2006-12-28 Matsushita Electric Ind Co Ltd メモリ回路
JP2008084317A (ja) * 2006-09-27 2008-04-10 Samsung Electronics Co Ltd 異種セルタイプを支援する不揮発性メモリのためのマッピング装置および方法
JP2008108297A (ja) * 2006-10-23 2008-05-08 Toshiba Corp 不揮発性半導体記憶装置
JP2009048757A (ja) * 2007-08-14 2009-03-05 Samsung Electronics Co Ltd 3−レベル不揮発性メモリセルを含む不揮発性メモリ装置の駆動方法およびその方法を使用する不揮発性メモリ装置
JP2009129477A (ja) * 2007-11-20 2009-06-11 Toshiba Corp 不揮発性半導体記憶装置
JP2011513884A (ja) * 2008-02-26 2011-04-28 オヴォニクス,インコーポレイテッド マルチモードプログラム可能抵抗メモリーをアクセスするための方法と装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011150461A (ja) * 2010-01-20 2011-08-04 Sony Corp 記憶装置およびデータの書込み方法

Also Published As

Publication number Publication date
CN101944067B (zh) 2013-04-24
US8331168B2 (en) 2012-12-11
US8553474B2 (en) 2013-10-08
KR20100119502A (ko) 2010-11-09
KR101264476B1 (ko) 2013-05-14
US20120290778A1 (en) 2012-11-15
CN101944067A (zh) 2011-01-12
US20100277989A1 (en) 2010-11-04
US20120287714A1 (en) 2012-11-15
JP5464703B2 (ja) 2014-04-09
US8488397B2 (en) 2013-07-16

Similar Documents

Publication Publication Date Title
JP5464703B2 (ja) 異機種混合ストレージ要素の容量を増大させる方法及びシステム
JP5764235B2 (ja) メモリ・アクセス方法およびシステム
US9734012B2 (en) Data encoding in solid-state storage devices
JP5620973B2 (ja) アナログメモリセルにおける最適スレッシュホールドのサーチ
KR101710025B1 (ko) 재기록 불능 메모리에서의 결합 재기록 및 에러 정정
US9164835B2 (en) Operating method of controller controlling nonvolatile memory device and mapping pattern selecting method of selecting mapping pattern mapping polar coded code word with multi bit data of nonvolatile memory device
US8769374B2 (en) Multi-write endurance and error control coding of non-volatile memories
US9075739B2 (en) Storage device
KR102275717B1 (ko) 플래시 메모리 시스템 및 그의 동작 방법
JP5805727B2 (ja) 縮退故障を有するメモリセルに対応するためのデータ符号化及び復号化
Wu Low complexity codes for writing a write-once memory twice
JP6957392B2 (ja) メモリシステム
JP6847796B2 (ja) メモリシステム
KR20150129325A (ko) 솔리드 스테이트 메모리에 저장된 데이터 디코딩
US10855314B2 (en) Generating and using invertible, shortened Bose-Chaudhuri-Hocquenghem codewords
US20160342466A1 (en) Data encoding in solid-state storage apparatus
JP2020046823A (ja) メモリシステム
KR101566088B1 (ko) 조합 숫자 시스템을 사용한 인코딩 및 디코딩 기법
KR102098247B1 (ko) 메모리 시스템에서 데이터를 인코딩 및 디코딩하기 위한 방법 및 장치
CN108170554A (zh) 一种nand的数据编码方法和装置
KR20240050283A (ko) 비휘발성 메모리를 위한 소프트 리드-솔로몬 디코더

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130827

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20131029

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20131030

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: 20131224

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20131226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140117

R150 Certificate of patent or registration of utility model

Ref document number: 5464703

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees