JP2012108890A - 同時読み出し及び書き込みメモリ動作を実行する方法及び装置 - Google Patents

同時読み出し及び書き込みメモリ動作を実行する方法及び装置 Download PDF

Info

Publication number
JP2012108890A
JP2012108890A JP2011230819A JP2011230819A JP2012108890A JP 2012108890 A JP2012108890 A JP 2012108890A JP 2011230819 A JP2011230819 A JP 2011230819A JP 2011230819 A JP2011230819 A JP 2011230819A JP 2012108890 A JP2012108890 A JP 2012108890A
Authority
JP
Japan
Prior art keywords
memory
content
partition
ecc
individual memory
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
JP2011230819A
Other languages
English (en)
Other versions
JP5464528B2 (ja
Inventor
Mirichigni Graziano
ミリキーニ グラッツィアーノ
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of JP2012108890A publication Critical patent/JP2012108890A/ja
Application granted granted Critical
Publication of JP5464528B2 publication Critical patent/JP5464528B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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/1072Adding 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 multilevel memories
    • 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
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/004Reading or sensing 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/0061Timing 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • 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/562Multilevel memory programming aspects
    • G11C2211/5623Concurrent multilevel programming and reading
    • 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
    • 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/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes

Abstract

【課題】特定のデータパーティションに書き込む動作が、同じデータパーティションから読み出す動作の完了まで一時停止(サスペンド)される必要はないメモリデバイスを提供する。
【解決手段】メモリデバイス300のデータパーティション310においてリード・ホワイル・ライト方式の動作を同時に実行する技術は、メモリの個々のデータパーティションのコンテンツに少なくとも部分的に基づいてECCを計算することを含み、メモリのメモリアレイの個々のメモリパーティションの特定の1つの第1の部分の特定のコンテンツを、前記個々のメモリパーティションの前記特定の1つの第2の部分に書き込む間に、読み出すことを具備し、前記読み出すことは、前記個々のメモリパーティションのコンテンツに少なくとも部分的に基づいた誤り訂正符号(ECC)に少なくとも部分的に基づいた前記第1の部分の前記特定の部分を決定する。
【選択図】図4

Description

ここに開示される主題は、メモリデバイスの読み出し及び書き込み処理に関する。
メモリデバイスは、いくつか例を挙げると、コンピュータ、携帯電話、PDA、データロガー(data logger)、及び、ナビゲーション装置等の多様な電子機器に採用される。このような電子機器の中で、様々な形式の不揮発性メモリデバイスは、いくつか例を挙げると、NAND又はNORフラッシュメモリ、SRAM、DRAM、及び、相変化メモリ(PCM)等が採用されてもよい。一般に、書き込み処理及びプログラミング処理は、このようなメモリデバイスに情報を記憶するように用いられてもよく、その一方で、読み出し処理が記憶された情報を取り出すように用いられてもよい。
いくつかの形式のメモリデバイスは、セクター、パーティション等のメモリセルグループに区分されたメモリセルアレイを備える。このような場合、このようなグループ内のメモリセルは、例えば、センスアンプ及びロウ/カラムデコーダを含む共通の電子回路を共有してもよい。従って、このようなメモリセルグループの読み出し及び書き込みは両方とも、いくつかの共通の電子回路を伴ってもよい。このような場合、このようなメモリセルグループの一部分に生じる書き込み動作を停止することは、同じメモリセルグループの他の部分に生じる読み出し動作を妨げる可能性がある。このような制約条件は結果として、読み出し動作を遅くするとともにメモリデバイスのパフォーマンス全体を低下させる可能性がある。
非限定的かつ非網羅的な実施形態について、以下に図を参照して記載する。特に明示がない限り、類似の番号は様々な図を通して類似の部分を示す。
実施形態に係るメモリの一部分の概略図である。 実施形態に係るメモリの一部分の概略図である。 実施形態に係るメモリの一部分の概略図である。 実施形態に係るメモリの一部分の概略図である。 実施形態に係るメモリの一部分から読み出す処理のフローチャート図である。 実施形態に係るメモリの誤り訂正符号(ECC)パーティションを更新する処理のフローチャート図である。 コンピュータシステムの実施形態例を説明するための概略図である。
本明細書全体を通して、「一実施形態」又は「実施形態」を参照することは、特別な特色、構造、特徴が、請求項に記載された主題の少なくとも一実施形態に含まれることを意味する。それゆえ、本明細書を通して様々な箇所における「一実施形態において」又は「実施形態」という語句の出現は、必ずしも全てが同一の実施形態を参照しているものではない。更に、特定の特色、構造、又は特徴は、1つ又は複数の実施形態において組み合わされてもよい。
実施形態において、NAND、NOR、又は、PCMフラッシュ等のメモリデバイスは、パーティションと呼ばれるメモリセルグループに区分されたメモリアレイを含んでもよい。パーティション内のメモリセルは、例えば、センスアンプ及びロウ/カラムデコーダを含む共通の電子回路を共有してもよい。実装において、メモリアレイは、ユーザデータを記憶する複数のパーティションを含むことに加えて、誤り訂正符号(ECC)を記憶するECCパーティションを含んでもよい。このようなECCは、データの1つ又は複数のビットが壊れる場合に復元されるデータのための十分に余分な情報を含むパリティビットを有する追加データに用いられてもよい。例えば、このようなECCは、記憶されたデータを読み出す処理中、及び/又は、データのベリファイ・アフター・ライティング(verify−after−writing)処理中に適用されてもよい。ECCは、パリティビットに追加されたデータのストリングを備えてもよい。ECCを構成する処理は、少なくとも部分的に、使用されている特定のアプリケーションに基づいてもよい。特定の実装において、ECCは、少なくとも部分的に、並列な符号化及び復号化技術に基づいてもよい。このような技術は、いくつか例を挙げると、1ビットの誤り訂正バイナリハミング符号、1ビット以上の誤り訂正バイナリボース・チョードリ・オッカンガム(BCH)符号、非バイナリのリード・ソロモン符号、又は、コンボルーション符号を伴ってもよい。
実施形態において、ECCは、メモリアレイの特定のパーティションにおけるリード・ホワイル・ライト(read‐while‐write)方式の動作を実行する技術に用いられてもよい。このような技術において、例えば上に記載したように、誤りを検出及び訂正するために用いられる代わりに、ECCは、このようなコンテンツが後で同時書き込み動作中に読み出され得るように、メモリアレイの1つ又は複数のパーティションにおけるコンテンツを表す情報を符号化するために用いられてもよい。このようなECCは、データを記憶するために用いられたメモリアレイの1つ又は複数のパーティションから分離され得るECCパーティションに、書き込まれるとともに記憶されてもよい。ここで、パーティションにプログラムされ得るか又はパーティションから読み出され得るユーザデータ等のデータを記憶するために用いられたこのようなパーティションは、例えば、ECCパーティションと区別するために、データパーティションと呼ばれる。特に、ECCパーティションは、少なくとも部分的に、多数のデータパーティションに記憶されたデータに基づいたECCを含んでもよい。例えば、データがデータパーティション1〜8に書き込まれる場合、ECCはデータパーティション1〜8に書き込まれたデータに基づいて計算されてもよい。このように計算されたECCは、その後、ECCパーティションに記憶されてもよいとともに、例えば、後でデータパーティション1〜8のうち任意の1つのコンテンツを決定する処理に用いられてもよい。データパーティションのコンテンツを決定するこのような処理は、このようなコンテンツを直接読み出すことの代わりとして実行されてもよい。ここで、用語「直接読み出すこと」とは、センスアンプ及び他の回路を介して1つ又は複数のメモリセルのステートを検知する処理を指す。対照的に、1つ又は複数のメモリセルのステートは、以下に記載するように、メモリセルを検知する処理なしにこのようなステートを推論すること又は決定することによって、「間接的に読み出され」てもよい。データパーティションのブロックのコンテンツを直接読み出すことは、例えば、一時停止(サスペンド)動作がリクエストされ得るため、同じデータパーティションにおける書き込み動作をペンディングする間は許可されなくてもよい。しかしながら、以下に詳細に記載するように、特定の実施形態によって、データパーティションのブロックのコンテンツを間接的に読み出すことは、このようなブロックが、書き込まれていて現在ビジーであるデータパーティションに属する場合でさえ実行されてもよい。一実装において、ブロック又は特定のデータパーティションの他のパーティションのこのようなリード・ホワイル・ライト方式の動作(例えば、間接的な読み出し)を実行する技術は、ブロックのコンテンツ、又は、他のデータパーティション及びECCパーティションのコンテンツに少なくとも部分的に基づいた他の部分を決定することを含んでもよい。ゆえに、特定のデータパーティションに書き込む動作が、同じデータパーティションから読み出す動作の完了まで一時停止(サスペンド)される必要はないなら、メモリデバイスの性能は改善される。
実施形態において、メモリデバイスのデータパーティションにおいてリード・ホワイル・ライト方式の動作を同時に実行する技術は、メモリの個々のデータパーティションのコンテンツに少なくとも部分的に基づいてECCを計算することを含んでもよい。このようなECCは、例えば、ECCパーティションに保持されてもよい。このようなECCは、個々のデータパーティションの特定の部分又はブロックに対応してもよい。例えば、ブロック2に対するECCは、個々のデータパーティションのブロック2のコンテンツを用いて計算されたECCを備えてもよい。ブロック3に対する他のECCは、個々のデータパーティションのブロック3のコンテンツ等を用いて計算されたECCを備えもよい。ECCのこのような値(例えば、ブロック2に対するECC、ブロック3に対するECC等)は、ECCパーティションに記憶されてもよい。このようなECCを用いて、例えば、特定のデータパーティションの1つのブロックのコンテンツは、以下に説明するように、特定のデータパーティション以外のデータパーティションの対応する複数のブロックのコンテンツ及び前記1つのブロックに対応するECCに少なくとも部分的に基づいて間接的に読み出されてもよい。一実装において、このような特定のデータパーティション以外のデータパーティションのコンテンツは、特定のデータパーティションのコンテンツを間接的に読み出す処理において、配線又はバスを介してシリアルに又は互いに並列に読み出されてもよい。
上で言及したように、書き込み動作は、データパーティションの直接読み出し処理が同じデータパーティション内で生じることを防止してもよい。このような書き込み動作また、任意の数の内部のメモリ処理中に、メモリデバイスに組み込まれる(内蔵される)か又はメモリデバイスに積層されるメモリマイクロコントローラによって開始されてもよい。例えば、メモリマイクロコントローラは、ウェアレベリング、ガーベジコレクション、不良ブロック管理、及び/又は、リフレッシュ処理を実行するメモリアレイの1つ又は複数のパーティションにおいて書き込み動作を開始してもよい。このような処理は、例えば、アプリケーションレベルでプロセッサ及び/又はユーザに可視可能ではないバックグランド動作を含んでもよい。ここに開示される実施形態は、このような内部のメモリ処理を一時停止する必要なく生じるこのような書き込み動作を許可してもよい。
一実施形態において、ECCは、メモリアレイの1つ又は複数のデータパーティションに書き込まれているデータに応答して、計算されてもよく、及び/又は、更新されてもよい。上で言及したように、ECCは、少なくとも部分的に、このようなデータに基づいてもよい。特に、ECCを計算する処理は、データパーティションのコンテンツを直接読み出すことと、ECC計算のこのようなコンテンツを用いることとを含んでもよい。実装において、(例えば、プロセッサ又はメモリマイクロコントローラによって開始された)入力読み出しリクエストは、ECC計算に伴われた読み出し動作と衝突してもよい。従って、ある場合では、個々のデータパーティションがECC計算でビジーであるとき、このような入力読み出しリクエストは拒否されてもよい。しかしながら、他の場合では、ECC計算を伴う1つ又は複数の処理は、入力読み出しリクエストが拒否される必要が無いように一時停止されてもよい。入力読み出しリクエストを実行した後、ECC計算を伴う1つ又は複数の処理が再開されてもよいが、請求項の主題はそのように限定されるものではない。
実施形態では、メモリアレイのデータパーティションにおいてリード・ホワイル・ライトを行う技術は、ECCを記憶するECCパーティションを備えるメモリデバイス、メモリアレイの個々のデータパーティションのコンテンツに少なくとも部分的に基づいてECCを計算するメモリマイクロコントローラにおいて実行されてもよい。このようなメモリマイクロコントローラは、特定のデータパーティションの第2の部分に書き込む間に、同じデータパーティションの第1の部分のコンテンツを読み出す読み出しコマンドを開始してもよい。読み出し部分は、書き込み部分と同じであってもよいが、書き込み部分が終了するまでは、古いコンテンツのみが読み出されてもよい。第1の部分のコンテンツは、ECCパーティションに記憶されたECCに少なくとも部分的に基づいて決定されてもよい(例えば、間接的に読み出されてもよい)。第1の部分のコンテンツはまた、他のデータパーティションのコンテンツに少なくとも部分的に基づいて決定されてもよい。ゆえに、データパーティションの第1の部分のコンテンツは、直接読み出される必要はないが、EC及び他のデータパーティションのコンテンツを用いて間接的に読み出されてもよい。実装において、データパーティションの第1の部分及び第2の部分は、例えば、センスアンプの少なくとも1つのグループを共有してもよいが、請求項の主題はそのように限定されるものではない。
図1は、実施形態に係るメモリの一部分100の概略図である。例えば、このようなメモリは、メモリセルのデータパーティションに構成され得る、NAND、NOR、又は、PCMフラッシュメモリを備えてもよい。以下の記載において、このようなメモリ一部分は、8つのデータパーティションを備えるように記載されてもよい。このような特定数のデータパーティションは、単に便宜上、かつ、説明及び理解を簡単するために記載される。しかしながら、ここに記載された実施形態に伴うデータパーティションの数は、何れの特定の数にも限定されるものではなく、請求項の主題はこの点に限定されるものではないことが理解されるべきである。図1の記載に続いて、メモリの部分100は、データパーティション110の数(例えば、8)を含んでもよい。一実装において、このようなデータパーティションは、例えば、メモリセルアレイ116、ロウデコーダ113、カラムデコーダ136、(例えば、書き込まれるべきメモリセルを決定する書き込み動作中に用いた)プログラムロード133、1つ又は複数のセンスアンプ130、及び、関連するデータパーティションの読み出し/書き込み動作に伴われた他の回路120を備えてもよい。
1つのデータパーティションから直接読み出す読み出し動作は、異なるデータパーティションに書き込む書き込み動作と同時に生じてもよい。このような場合、多くの理由の中で、このようなデータパーティションは、例えば、それら独自の読み出し回路(例えば、センスアンプ)、及び/又は、ロウ及びカラムデコーダ回路を含んでもよいため、競合又は衝突が生じる必要はない。特定の実施形態に関する限り、データパーティション1から直接読み出す読み出し動作140は、データパーティション6に書き込む書き込み動作160と同時に生じてもよい。読み出し動作140は、例えば、センスアンプ130を介してデータパーティション1の読み出しメモリセルのステートを検知するとともに、出力バッファ150にそのステートを表すデータを書き込む処理145を含んでもよい。
図2は、他の実施形態に係るメモリの一部分100の概略図である。上に言及したように、1つのデータから直接読み出す読み出し動作は、異なるデータパーティションに書き込む書き込み動作と同時に生じてもよい。しかしながら、これがデータパーティション170に生じていると示された場合において、衝突が生じるかもしれない。特に、データパーティション6の1つのブロックから直接読み出す読み出し動作240は、データパーティション6の他のブロックに書き込む書き込み動作260と同時に生じることが可能ではなくてもよい。一実装において、例えば、読み出し動作240を実行するコマンドを(例えば、外部プロセッサから、又は、内部のメモリマイクロコントローラの一部から)受信した上で、書き込み動作260は、読み出し動作240が完了するまで一時停止されてもよい。他の実装において、読み出し動作240を実行するコマンドは、書き込み動作260が完了するまで、拒否されてもよく、及び/又は、遅延されてもよい。どちらかの実装では、読み出し動作240は、例えば、センスアンプ130を介してパーティション6の読み出しメモリセルのステートを検知するとともに、出力バッファ250にステートを表すデータを書き込む処理245を含んでもよい。
図3は、実施形態に係るメモリの一部分300の概略図である。上記の部分100を備えるメモリと同様に、このようなメモリは、メモリセルのパーティションに構成され得る、NAND、NOR、又は、PCMフラッシュメモリを備えてもよい。しかしながら、メモリの部分300は、図1及び図2における上記の8つのデータパーティションに加えてECCパーティション310を備えてもよい。(更に、請求項の主題は、何れの特定の数のデータパーティションにも限定されるものではない。)一実装において、このようなECCパーティション310は、例えば、メモリセルアレイ316、ロウデコーダ313、カラムデコーダ336、プログラムロード333、1つ又は複数のセンスアンプ330、及び、ECCパーティションの読み出し/書き込み動作に伴われる他の回路320を備えてもよい。データパーティション0〜7のメモリセルアレイ216の大きさ(例えば、メモリセルの数)は互いに実質的に等しくてもよいが、ECCパーティション310のメモリセルアレイ316の大きさは異なってもよい。例えば、メモリセルアレイ316は、データパーティション0のメモリセルアレイ216又はデータパーティション6のメモリセルアレイ370よりも実質的に大きくてもよい。メモリセルアレイ316の特定の大きさは、メモリセルアレイ316に記憶されるべきECC、データパーティションの数及び大きさ、データパーティションのブロック又はページの大きさ等を計算するために用いられるECC技術の特定の詳細に少なくとも部分的に基づいてもよい。
上記のように、1つのデータパーティションから直接読み出す読み出し動作は、競合又は衝突が生じる必要が無いので、異なるデータパーティションに書き込む書き込み動作と同時に生じてもよい。そこで、特定の実施例のために、データパーティション2のブロックから読み出す読み出し動作344は、データパーティション6のブロックに書き込む書き込み動作360と同時に生じてもよい。しかしながら、データパーティション6のブロックから直接読み出す読み出し動作340は、例えば、同じブロック又は同じデータパーティション6の他のブロックに書き込む書き込み動作360と同時に生じることが可能ではなくてもよい。それにも拘らず、ここに記載される実施形態は、データパーティションの一部分のコンテンツを、同じデータパーティションの他の部分がプログラムされている間に直接読み出す技術を含む。このような技術は、ECCパーティション310に記憶されるECCを利用してもよい。ゆえに、例えば、書き込み動作360が、データパーティション6の第1のブロックに生じている間に、読み出し動作340によって読み出されるべきデータパーティション6の第2のブロックのコンテンツは、第2のブロックから直接読み出すことによって決定されてもよい。第1及び第2のブロックは同じであってもよいが、書き込み動作が終了するまでは古いコンテンツのみが読み出されてもよい。代わりに、このようなコンテンツは、以下に詳細に説明するように、直接読み出されてもよいとともに、ECCパーティション、及び、データパーティション0〜5及び7(例えば、データパーティション6以外の全てのデータパーティション)のブロックに対応するコンテンツに基づいて決定されてもよい。実装において、このようなECCは、データパーティション6の第2のブロック、及び/又は、任意の他のデータパーティションがプログラムされた最も近い時間中に計算されていてもよい。このようなECCは、この最も近い時間中にプログラムされたデータに少なくとも部分的に基づいて計算されていてもよい。このようなECC計算の詳細については、これから記載する。
実施形態において、データパーティションは、ブロックが、ビット、バイト、ワード、ワードグループ等を含み得る多数のブロックを備えてもよい。例えば、1Gビットのメモリデバイスは、このようなデータパーティションが64ブロックを備え得る8つのデータパーティションを含んでもよい。ブロックは、256kバイトの大きさを有してもよく、センスアンプグループによって並列に読み出され得るデータの16ワード又は32バイトのページに構成されてもよいが、請求項の主題はこの点に限定されるものではない。表記法を確立するために、特定のパーティション内の特定のブロックのコンテンツを表現する用語は、PxByと書き込まれてもよく、ここで、xはパーティション番号であり、yはパーティション番号x内のブロックである。例えば、パーティション0のブロック23のコンテンツは、P0B23と書き込まれてもよく、データパーティション4のブロック36のコンテンツは、P4B36と書き込まれてもよい等である。従って、このような表記を用いて、データパーティション0〜7のブロックのECCは、以下のように、ECCの計算に用いられたデータパーティション0〜7のブロックのコンテンツの関数として書き込まれてもよい。
等である。このような関数fは、任意の数の動作及び/又はアルゴリズムを含んでもよい。例えば、一実装において、このような関数は、データパーティション0〜7のブロックのコンテンツの連結を伴ってもよい。他の実装において、このような関数は、ブール演算の組み合わせを伴ってもよい。このような関数の詳細は、1つの特定の状況から他の状況に変化してもよいが、請求項の主題はこの点に限定されるものではない。
図3に戻ると、既に説明したように、データパーティション6のブロックから直接読み出す読み出し動作340は、例えば、同じデータパーティション6のブロックに書き込む書き込み動作360を同時に生じさせることが可能でなくてもよい。特定の実施例として、上で導入されたブロックに関してこのような場合を記載すると、データパーティション6のブロック2を直接読み出す読み出し動作340は、同じデータパーティション6のブロック0に書き込む書き込み動作360を同時に生じさせることが可能でなくてもよい。しかしながら、データパーティション6のブロック0をプログラムしている間に、読み出し動作340によって読み出されるべきデータパーティション6のブロック2のコンテンツは、データパーティション6のブロック2から直接読み出されることによって決定される必要はない。その代わりに、このようなコンテンツは、ブロック2ECC342のコンテンツ及びデータパーティション0〜5及び7のブロック2のコンテンツに基づいて間接的に読み出されてもよい。従って、データパーティション6のブロック2のコンテンツは、以下のように、ECCとブロック2のためのECCの計算に用いられたデータパーティション0〜5及び7のブロックのコンテンツとの関数として書き込まれてもよい。
このような関数gは、任意の数の動作及び/又はアルゴリズムを含んでもよい。例えば、一実装において、このような関数gの少なくとも一部分は、上記のfの逆関数(inverse function)を含んでもよい。上の表現は、データパーティション6のブロック2のデータが、ブロック2ECC342及び他のデータパーティションのブロック2のデータから推定又は決定されてもよいことを示唆する。このことが正しいのは、ブロック2ECC342が、データパーティション6のブロック2のデータ及び他のデータパーティションのブロック2のデータに少なくとも部分的に基づいて予め計算されたからである。ゆえに、データパーティション6のブロック2のデータを直接読み出す読み出し動作340を実行するために、このようなデータは代わりに、ブロック2ECC342及び他のデータパーティションのブロック2のデータを用いて間接的に読み出されてもよい。従って、データパーティション0〜5及び7のブロック2のデータを直接読み出す処理345、及び、ECCパーティション310のブロック2ECC342のデータを直接読み出す処理を含んでもよい。このような読み出しデータは、例えば、メモリマイクロコントローラの一部分を含み得る計算ブロック350に提供されてもよい。計算ブロック350は、ブロック2ECC342及び他のデータパーティションのブロック2のデータを用いてデータパーティション6のブロック2のデータを間接的に読み出す1つ又は複数の動作を実行してもよい。計算ブロック350は、このようなデータが、例えば、読み出し動作340に起因する読み出しデータとしてプロセッサに利用可能であり得る出力バッファ355に、データパーティション6のブロック2のデータを続いて提供してもよい。
図4は、実施形態に係る、ECCを計算する処理中のメモリの一部分300の概略図である。このような処理は、例えば、1つ又は複数のデータパーティションにデータを書き込む1つ又は複数の動作に続いて又は動作中に、メモリマイクロコントローラによって開始されてもよい。上で議論したように、ECCは、データパーティション0〜7のブロックに対応するこのようなデータに少なくとも部分的に基づいて計算されてもよい。例えば、ブロック2ECCは、データパーティション0〜7のブロック2のデータに少なくとも部分的に基づいて計算されてもよい。従って、ECCを計算する処理は、データパーティション0〜7のブロック2のデータを直接読み出すとともに、ECC計算ブロック450に読み出しデータを提供する処理445を含んでもよい。一実装において、ECC計算ブロック450は、メモリマイクロコントローラの一部分を含んでもよい。ブロック2のためにECCを計算した後、計算ブロック450は、計算されたECCをECCパーティション310に書き込む処理446において、ECCを提供してもよい。次に、後続のブロック(例えば、ブロック3、ブロック4等)のためにECCを計算する処理は、個々のブロックのために上に記載した処理を用いて実行されてもよい。勿論、ECCを計算するこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
図5は、実施形態に係る、メモリアレイのデータパーティションから間接的に読み出す処理500のフローチャート図である。このような処理は、例えば、上記のように、部分300を含むメモリデバイスによって実行されてもよい。特に、四角形510におけるように、このような処理は、メモリアレイのデータパーティションの特定のブロックから読み出すリクエストを、書き込み動作が同じデータパーティションに生じている間に、受信することに応答して実行されてもよい。このようなリクエストは、例えば、ウェアレベリング、ガーベジコレクション、不良ブロック管理、及び/又は、リフレッシュ処理を実行するために、アプリケーションを実行するプロセッサ、及び/又は、メモリアレイの1つ又は複数のデータパーティションにおいて書き込み動作を実行するメモリマイクロコントローラによって開始されてもよい。上で説明したように、データパーティションの特定のブロックから直接読み出す読み出し動作は、同じデータパーティションの他のブロックに書き込む書き込み動作と同時に生じることができなくてもよい。ゆえに、データパーティションの特定のブロックから直接読み出す代わりに、特定のブロックのコンテンツは、他のデータパーティション対応するブロックのコンテンツ及び対応するブロックのECCを用いて間接的に読み出されてもよい。従って、四角形520及び530におけるように、他のデータパーティションの対応するブロックのコンテンツ及びECCパーティションからの対応するブロックのECCのコンテンツは、直接読み出されてもよく、かつ、特定のブロックのコンテンツを間接的に読み出すために用いられてもよい。
図6は、実施形態に係る、メモリのECCパーティションを更新する処理600のフローチャート図である。このような処理は、例えば、上記のように、部分300を含むメモリデバイスのメモリマイクロコントローラによって実行されてもよい。特に、四角形610におけるように、このような処理は、メモリアレイの1つ又は複数のデータパーティションに書き込むリクエストを受信することに応答して実行されてもよい。例えば、新しいデータがメモリアレイのこのようなデータパーティションに書き込まれる場合、新しいデータに少なくとも部分的に基づく更新ECCが計算されてもよい。このような更新ECCは、例えば、図3に示したようなECCパーティション310等のECCパーティションに記憶された古いECCを置換してもよい。ECCは、データパーティションに記憶された古いデータと同様にメモリアレイのデータパーティションに書き込まれた新しいデータを用い得る、任意の数のプロセッサ又はアルゴリズムを用いて計算されてもよい。実装において、特定のECCは、メモリアレイのデータパーティションにわたって対応するブロックに少なくとも部分的に基づいて計算されてもよい。例えば、個々のデータが64ブロックを含む場合、ECCパーティション310は、ブロックに対応するECCの64個の値を記憶してもよい。勿論、このような数のデータパーティション及びECC値は単に例示であって、請求項の主題はそのように限定されるものではない。四角形620において、データパーティションにわたって対応するブロックのデータは直接読み出されてもよい。四角形630において、ECCはこのような読み出しデータを用いて計算されてもよい。
特定の実装において、処理600の少なくとも一部分は、入力読み出しコマンドのために実行されるべき読み出しを許可するために一時停止されてもよい。処理600のこのような部分はその後、このような読み出しが完了した後に再開されてもよい。ECCを更新する処理のこのような一時停止は、(例えば、プロセッサによって開始された)読み出しコマンドが遅延される必要が無いので、結果としてメモリデバイスの読み出し実行を改良し得る。ゆえに、ひし形640において、決定は、読み出しコマンドが受信されているか否かについてなされてもよい。もしそうでない場合、その後、処理600は、ECCを計算する処理が完了される四角形645に進行してもよい。四角形680において完了後、計算されたECCは、メモリデバイスのECCパーティションに書き込まれてもよい。他方で、読み出しコマンドがひし形640で受信される場合、処理600はECCの計算を一時停止する四角形650に進行してもよい。このような一時停止の間に、入力読み出しコマンドから起因する読み出し処理の進行をモニタすることは、ひし形660におけるように、このような読み出し処理が完了しているか否かを決定してもよい。読み出し処理が完了していない場合、処理600は、読み出し処理の進行をモニタし続けるために、ひし形660にループバックしてもよい。他方で、読み出し処理が完了している場合、処理600は、ECCを計算する処理が完了するブロック670に進行してもよい。四角形680において完了後、計算されたECCは、メモリデバイスのECCパーティションに書き込まれてもよい。勿論、処理600のこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
図7は、メモリデバイス710を含むコンピュータシステム700の実施形態例を概略的に示す図である。このようなコンピュータデバイスは、例えば、アプリケーション及び/又は他のコードを実行するために、1つ又は複数のプロセッサを備えてもよい。例えば、メモリデバイス710は、図2に示したような多数のデータパーティションを備えてもよい。コンピュータデバイス704は、メモリデバイス710を管理するように構成され得る任意のデバイス、アプリケーション、又は機械を表し得る。メモリデバイス710は、メモリマイクロコントローラ715及びメモリ722を含んでもよい。例示であって制限されるものではないが、コンピュータデバイス704は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ワークステーション、サーバデバイス、又はこれらと類似するような1つ又は複数のコンピュータデバイス及び/又はプラットフォームと、例えば、携帯情報端末、モバイル通信デバイス、又はこれらと類似するような1つ又は複数のパーソナルコンピュータデバイス又は通信デバイス及び/又は装置と、例えば、データベース又はデータ記憶サービスプロバイダ/システムのようなコンピュータシステム及び/又は関連するサービスプロバイダ機能と、及び/又はこれらの任意の組み合わせとを含んでもよい。
システム700に示した様々なデバイスの全部又は一部、及び本明細書に更に記載されたような処理及び方法は、ハードウェア、ファームウェア、ソフトウェア、又はこれらの任意の組み合わせを用いるかあるいは含むように実装されてもよいことが認識される。ゆえに、例示であって限定されるものではないが、コンピュータデバイス704は、バス740及びホスト又はメモリマイクロコントローラ715を通してメモリ722に動作的に連結される少なくとも1つの処理ユニット720を含んでもよい。処理ユニット720は、データコンピューティング手順又はデータコンピューティング処理の少なくとも一部を実行するように構成可能な1つ又は複数の回路を表す。例示であって限定されるものではないが、処理ユニット720は、1つ又は複数のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、アプリケーション専用集積回路、デジタル信号プロセッサ、プログラマブル論理デバイス、フィールド・プログラマブル・ゲートアレイ、及びこれらと類似するもの、又はこれらの任意の組み合わせを含んでもよい。処理ユニット720は、メモリマイクロコントローラ715と通信するように構成されたオペレーティングシステムを含んでもよい。このようなオペレーティングシステムは、例えば、バス740上でメモリマイクロコントローラ715に送信されるコマンドを生成してもよい。このようなコマンドは、例えば、読み出しコマンド及び/又は書き込みコマンドを含んでもよい。読み出しコマンドに応答して、例えば、メモリマイクロコントローラ715は、リード・ホワイル・ライトを実行するために、上記の処理500を実行してもよい。
メモリ722は、任意のデータストレージ機構を表す。メモリ722は、例えば、一次メモリ724及び/又は二次メモリ726を含んでもよい。一次メモリ724は、例えば、ランダムアクセスメモリ、リードオンリメモリ等を含んでもよい。この例示は処理ユニット720から離れて説明したが、一次メモリ724の全部又は一部は処理ユニット720内に備えられていてもよく、あるいは処理ユニット420と同じ場所に設置されているか、又は処理ユニット720に連結されてもよいと理解されるべきである。
二次メモリ726は、例えば、一次メモリと同一形式のメモリもしくは類似形式のメモリ、及び/又は、例えば、ディスクドライブ、光学ディスクドライブ、テープドライブ、固体状態メモリドライブ等の1つ又は複数のデータ記憶装置もしくはシステムを含んでもよい。所定の実装において、二次メモリ726は動作可能的にコンピュータ可読媒体728から受信可能であってもよく、もしくは、コンピュータ可読媒体728に連結するように構成可能であってもよい。コンピュータ可読媒体728は、例えば、システム700における1つ又は複数のデバイスに対するデータ、コード、及び/又は命令を送ることができ、かつ/又は、こうしたデータ、コード、及び/又は命令をアクセス可能にすることができる任意の媒体を含んでもよい。コンピュータデバイス704は、例えば、入力/出力732を含んでもよい。
特定の実施形態において、コンピュータシステム700は、メモリ724の個々のメモリアレイパーティションのコンテンツに少なくとも部分的に基づいてECCを計算するために、メモリアレイ724及びメモリマイクロコントローラ715を備えるメモリデバイスを含んでもよい。個々のメモリアレイパーティションの特定の1つの第2の部分に書き込む間に、個々のメモリアレイパーティションの特定の1つを第1の部分の特定のコンテンツを読み出そうとすることに応答して、メモリマイクロコントローラ715は、ECCに少なくとも部分的に基づいて第1の部分の特定のコンテンツを決定してもよい。コンピュータシステム700はまた、1つ又は複数のアプリケーションをホストするとともに、例えば、メモリアレイ724のメモリセルにアクセスを提供するメモリマイクロコントローラ715に向けて読み出しコマンドを開始するプロセッサを含んでもよい。
入力/出力732は、人及び/又は機械の入力を受入れるように構成可能な、又は導入するように構成可能な1つ又は複数のデバイス又は機能、及び/又は、人及び/又は機械の出力を送出するように構成可能な、又は提供するように構成可能な1つ又は複数のデバイス又は機能を表す。例示であって限定されるものではないが、入力/出力デバイス732は、動作可能に構成されたディスプレイ、スピーカー、キーボード、マウス、トラックボール、タッチスクリーン、データポート等を含んでもよい。
本明細書に使用されたように、用語「及び」、「及び/又は」、及び「又は」とは、少なくとも一部において、そのような用語が使用される文脈に応じてまた期待される様々な意味を含み得る。一般に、A、B、又はCのように、リストに関連するように使用された場合の「及び/又は」並びに「又は」とは、ここで排他的な意味に使用されたA、B、又はCと同様に、ここで包括的な意味に使用されたA、B、及びCを意味するように意図されてもよい。本明細書全体を通して、「一実施形態」又は「実施形態」を参照することは、特別な特色、構造、特徴が、請求項に記載された主題の少なくとも一実施形態に含まれることを意味する。それゆえ、本明細書を通して様々な箇所における「一実施形態において」又は「実施形態」という語句の出現は、必ずしも全てが同一の実施形態を参照しているものではない。更に、特定の特色、構造、又は特徴は、1つ又は複数の実施形態において組み合わされてもよい。
現時点で考えられる実施形態例について説明して述べてきたが、請求項の主題から逸脱することなく、他の様々な変更がなされてもよく、均等なものに置換されてもよいと当業者に理解され得るものである。加えて、本明細書に開示された主要概念から逸脱することなく、特定の状況を請求項の主題の教示に適用するように多くの変更がなされてもよい。それゆえ、請求項の主題が開示された特定の実施形態に限定されることはないと示され、そのような請求項の主題はまた、添付の特許請求の範囲に含まれる全ての実施形態及びそれらの均等物を包含するものであると示されている。

Claims (20)

  1. メモリのメモリアレイの個々のメモリパーティションの特定の1つの第1の部分の特定のコンテンツを、前記個々のメモリパーティションの前記特定の1つの第2の部分に書き込む間に、読み出すことを具備してなり、前記読み出すことは、前記個々のメモリパーティションのコンテンツに少なくとも部分的に基づいた誤り訂正符号(ECC)に少なくとも部分的に基づいた前記第1の部分の前記特定の部分を決定することを含むことを特徴とする方法。
  2. 更に、前記第1の部分の前記特定のコンテンツを前記決定することは、前記個々のメモリパーティションの前記特定の1つの前記第1の部分に対応する前記個々のメモリパーティションの一部分のコンテンツに少なくとも部分的に基づくことを特徴とする請求項1に記載の方法。
  3. 前記個々のメモリパーティションの前記特定の1つの前記第1の部分の前記コンテンツは、前記第1の部分の前記特定のコンテンツを前記決定することに用いられるものではないことを特徴とする請求項2に記載の方法。
  4. 更に、前記第1の部分の前記特定のコンテンツを前記決定することを実行する間に、前記個々のメモリパーティションの前記特定の1つの前記第1の部分に対応する前記個々のメモリパーティションの前記一部分の前記コンテンツを、バスを介して並列に読み出すことを含むことを特徴とする請求項2に記載の方法。
  5. 更に、前記第1の部分の前記特定のコンテンツを前記決定することを実行する間に、前記個々のメモリパーティションの前記特定の1つの前記第1の部分に対応する前記個々のメモリパーティションの前記一部分の前記コンテンツを、バスを介して直列に読み出すことを含むことを特徴とする請求項2に記載の方法。
  6. 前記個々のメモリパーティションの前記特定の1つの前記第2の部分に前記書き込むことは、前記メモリによって開始された内部動作に応答することを特徴とする請求項1に記載の方法。
  7. 更に、前記個々のメモリパーティションの前記コンテンツの少なくとも一部分を読み出す読み出しリクエストを受信することに応答して前記ECCの計算を中止することと、
    前記個々のメモリパーティションの前記コンテンツの前記少なくとも一部分を読み出すことの後に続いて、前記ECCを前記計算することを再開することと、
    を含むことを特徴とする請求項1に記載の方法。
  8. 前記個々のメモリパーティションの前記特定の1つの前記第1の部分及び前記第2の部分は、少なくとも1つのセンスアンプグループを共有することを特徴とする請求項1に記載の方法。
  9. メモリアレイに接続する少なくとも1つのインターフェースと、
    メモリのメモリアレイの個々のメモリパーティションの特定の1つの第1の部分の特定のコンテンツを、前記個々のメモリパーティションの前記特定の1つの第2の部分に書き込む間に、読み出す電子回路であって、前記読み出すことは、前記個々のメモリパーティションのコンテンツに少なくとも部分的に基づいた誤り訂正符号(ECC)に少なくとも部分的に基づいた前記第1の部分の前記特定の部分を決定することを含む電子回路と、
    を具備することを特徴とするメモリマイクロコントローラ。
  10. 更に、前記第1の部分の前記特定のコンテンツを前記決定することは、前記個々のメモリパーティションの前記特定の1つの前記第1の部分に対応する前記個々のメモリパーティションの一部分のコンテンツに少なくとも部分的に基づくことを特徴とする請求項9に記載のメモリマイクロコントローラ。
  11. 前記個々のメモリパーティションの前記特定の1つの前記第1の部分の前記コンテンツは、前記第1の部分の前記特定のコンテンツを前記決定することに用いられるものではないことを特徴とする請求項10に記載のメモリマイクロコントローラ。
  12. 更に、前記第1の部分の前記特定のコンテンツを前記決定することを実行する間に、前記個々のメモリパーティションの前記特定の1つの前記第1の部分に対応する前記個々のメモリパーティションの前記一部分の前記コンテンツを、バスを介して並列に読み出す回路を備えることを特徴とする請求項10に記載のメモリマイクロコントローラ。
  13. 更に、前記第1の部分の前記特定のコンテンツを前記決定することを実行する間に、前記個々のメモリパーティションの前記特定の1つの前記第1の部分に対応する前記個々のメモリパーティションの前記一部分の前記コンテンツを、バスを介して直列に読み出す回路を備えることを特徴とする請求項10に記載のメモリマイクロコントローラ。
  14. 前記個々のメモリパーティションの前記特定の1つの前記第2の部分に前記書き込むことは、前記メモリによって開始された内部動作に応答することを特徴とする請求項9に記載のメモリマイクロコントローラ。
  15. メモリを備えるメモリデバイスであって、
    メモリのメモリアレイの個々のメモリパーティションの特定の1つの第1の部分の特定のコンテンツを、前記個々のメモリパーティションの前記特定の1つの第2の部分に書き込む間に、読み出し、前記読み出すことは、前記個々のメモリパーティションのコンテンツに少なくとも部分的に基づいた誤り訂正符号(ECC)に少なくとも部分的に基づいた前記第1の部分の前記特定の部分を決定することを含むメモリマイクロコントローラを更に備えるメモリデバイスと、
    1つ又は複数のアプリケーションをホストするとともに、前記メモリアレイにアクセスを提供する前記メモリマイクロコントローラに対して読み出しコマンドを開始するプロセッサと、
    を具備することを特徴とするシステム。
  16. 更に、前記第1の部分の前記特定のコンテンツを前記決定することは、前記個々のメモリパーティションの前記特定の1つの前記第1の部分に対応する前記個々のメモリパーティションの一部分のコンテンツに少なくとも部分的に基づくことを特徴とする請求項15に記載のシステム。
  17. 前記個々のメモリパーティションの前記特定の1つの前記第1の部分の前記コンテンツは、前記第1の部分の前記特定のコンテンツを前記決定することに用いられるものではないことを特徴とする請求項16に記載のシステム。
  18. 更に、前記第1の部分の前記特定のコンテンツを前記決定することを実行する間に、前記個々のメモリパーティションの前記特定の1つの前記第1の部分に対応する前記個々のメモリパーティションの前記一部分の前記コンテンツを、バスを介して並列に読み出す回路を備えることを特徴とする請求項16に記載のシステム。
  19. 更に、前記第1の部分の前記特定のコンテンツを前記決定することを実行する間に、前記個々のメモリパーティションの前記特定の1つの前記第1の部分に対応する前記個々のメモリパーティションの前記一部分の前記コンテンツを、バスを介して直列に読み出す回路を備えることを特徴とする請求項16に記載のシステム。
  20. 前記個々のメモリパーティションの前記特定の1つの前記第2の部分に前記書き込むことは、前記メモリによって開始された内部動作に応答することを特徴とする請求項15に記載のシステム。
JP2011230819A 2010-11-16 2011-10-20 同時読み出し及び書き込みメモリ動作を実行する方法及び装置 Active JP5464528B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/947,771 2010-11-16
US12/947,771 US8583987B2 (en) 2010-11-16 2010-11-16 Method and apparatus to perform concurrent read and write memory operations

Publications (2)

Publication Number Publication Date
JP2012108890A true JP2012108890A (ja) 2012-06-07
JP5464528B2 JP5464528B2 (ja) 2014-04-09

Family

ID=46048952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011230819A Active JP5464528B2 (ja) 2010-11-16 2011-10-20 同時読み出し及び書き込みメモリ動作を実行する方法及び装置

Country Status (6)

Country Link
US (3) US8583987B2 (ja)
JP (1) JP5464528B2 (ja)
KR (1) KR101343262B1 (ja)
CN (1) CN102567242B (ja)
DE (1) DE102011085989B4 (ja)
TW (1) TWI506423B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583987B2 (en) 2010-11-16 2013-11-12 Micron Technology, Inc. Method and apparatus to perform concurrent read and write memory operations
US10725997B1 (en) * 2012-06-18 2020-07-28 EMC IP Holding Company LLC Method and systems for concurrent collection and generation of shared data
US9070436B2 (en) 2013-01-30 2015-06-30 Hewlett-Packard Development Company, L.P. Memory controller using crisscross error-correcting codes
KR102084461B1 (ko) * 2013-03-04 2020-04-14 삼성전자 주식회사 저항체를 이용한 비휘발성 메모리 장치
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling
EP3295310A4 (en) * 2015-05-14 2018-12-26 Adesto Technologies Corporation Concurrent read and reconfigured write operations in a memory device
US10152545B2 (en) 2015-10-20 2018-12-11 Adobe Systems Incorporated Personalized recommendations using localized regularization
KR20180051703A (ko) 2016-11-07 2018-05-17 삼성전자주식회사 Raid 방식으로 데이터를 저장하는 스토리지 장치
US10585749B2 (en) * 2017-08-10 2020-03-10 Samsung Electronics Co., Ltd. System and method for distributed erasure coding
US10956262B2 (en) 2019-03-14 2021-03-23 Micron Technology, Inc. Deferred error code correction with improved effective data bandwidth performance
US11093323B2 (en) * 2019-04-15 2021-08-17 Nvidia Corporation Performant inline ECC architecture for DRAM controller
US10957393B2 (en) * 2019-06-27 2021-03-23 Micron Technology, Inc. Apparatus and methods for performing concurrent access operations on different groupings of memory cells
CN110750466A (zh) * 2019-10-18 2020-02-04 深圳豪杰创新电子有限公司 提高闪存擦写寿命的方法和装置
CN113848454A (zh) * 2021-09-09 2021-12-28 海光信息技术股份有限公司 一种芯片测试方法及芯片测试机

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0440697A (ja) * 1990-06-06 1992-02-12 Matsushita Electric Ind Co Ltd 半導体記憶装置
JP2002298578A (ja) * 2001-03-29 2002-10-11 Fujitsu Ltd 半導体記憶装置

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807609B1 (en) * 1989-12-04 2004-10-19 Hewlett-Packard Development Company, L.P. Interleaving read and write operations on a bus and minimizing buffering on a memory module in a computer system
US5913926A (en) * 1992-08-20 1999-06-22 Farrington Investments Ltd. Expandable modular data storage system having parity storage capability
US5666511A (en) * 1992-10-08 1997-09-09 Fujitsu Limited Deadlock suppressing schemes in a raid system
US5761402A (en) * 1993-03-08 1998-06-02 Hitachi, Ltd. Array type disk system updating redundant data asynchronously with data access
DE19540915A1 (de) * 1994-11-10 1996-05-15 Raymond Engineering Redundante Anordnung von Festkörper-Speicherbausteinen
FR2726934B1 (fr) 1994-11-10 1997-01-17 Sgs Thomson Microelectronics Procede de lecture anticipee de memoire a acces serie et memoire s'y rapportant
US6067255A (en) 1997-07-03 2000-05-23 Samsung Electronics Co., Ltd. Merged memory and logic (MML) integrated circuits including independent memory bank signals and methods
US5914970A (en) * 1997-08-27 1999-06-22 Allen-Bradley Company, Llc Computer memory system providing parity with standard non-parity memory devices
US6321345B1 (en) * 1999-03-01 2001-11-20 Seachange Systems, Inc. Slow response in redundant arrays of inexpensive disks
FR2805653A1 (fr) 2000-02-28 2001-08-31 St Microelectronics Sa Memoire serie programmable et effacable electriquement a lecture par anticipation
GB2370477B (en) * 2000-12-22 2004-03-03 Tandberg Television Asa Method and apparatus for encoding a product code
JP3860436B2 (ja) * 2001-07-09 2006-12-20 富士通株式会社 半導体記憶装置
JP4059473B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
US6614685B2 (en) 2001-08-09 2003-09-02 Multi Level Memory Technology Flash memory array partitioning architectures
JP2004040697A (ja) 2002-07-08 2004-02-05 Suzuki Motor Corp 車両用放送に連動した画像提供システム
JP2005025827A (ja) * 2003-06-30 2005-01-27 Toshiba Corp 半導体集積回路装置およびそのエラー検知訂正方法
FR2874734A1 (fr) 2004-08-26 2006-03-03 St Microelectronics Sa Procede de lecture de cellules memoire programmables et effacables electriquement, a precharge anticipee de lignes de bit
US20060123271A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US7721143B2 (en) * 2005-12-06 2010-05-18 Lsi Corporation Method for reducing rebuild time on a RAID device
US7539842B2 (en) 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
US7694031B2 (en) * 2006-10-31 2010-04-06 Globalfoundries Inc. Memory controller including a dual-mode memory interconnect
US20080168331A1 (en) * 2007-01-05 2008-07-10 Thomas Vogelsang Memory including error correction code circuit
KR101360812B1 (ko) 2008-06-05 2014-02-11 삼성전자주식회사 반도체 장치 및 이를 포함하는 반도체 시스템
US8149643B2 (en) 2008-10-23 2012-04-03 Cypress Semiconductor Corporation Memory device and method
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US20100199020A1 (en) * 2009-02-04 2010-08-05 Silicon Storage Technology, Inc. Non-volatile memory subsystem and a memory controller therefor
US8132044B1 (en) * 2010-02-05 2012-03-06 Symantec Corporation Concurrent and incremental repair of a failed component in an object based storage system for high availability
US8645637B2 (en) 2010-11-16 2014-02-04 Micron Technology, Inc. Interruption of write memory operations to provide faster read access in a serial interface memory
US8583987B2 (en) 2010-11-16 2013-11-12 Micron Technology, Inc. Method and apparatus to perform concurrent read and write memory operations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0440697A (ja) * 1990-06-06 1992-02-12 Matsushita Electric Ind Co Ltd 半導体記憶装置
JP2002298578A (ja) * 2001-03-29 2002-10-11 Fujitsu Ltd 半導体記憶装置

Also Published As

Publication number Publication date
DE102011085989B4 (de) 2017-03-02
TWI506423B (zh) 2015-11-01
DE102011085989A1 (de) 2012-06-28
CN102567242A (zh) 2012-07-11
CN102567242B (zh) 2015-05-06
US9208019B2 (en) 2015-12-08
JP5464528B2 (ja) 2014-04-09
TW201227292A (en) 2012-07-01
US20120124449A1 (en) 2012-05-17
KR101343262B1 (ko) 2013-12-18
US8583987B2 (en) 2013-11-12
US20140068380A1 (en) 2014-03-06
KR20120052883A (ko) 2012-05-24
US9513992B2 (en) 2016-12-06
US20150309868A1 (en) 2015-10-29

Similar Documents

Publication Publication Date Title
JP5464528B2 (ja) 同時読み出し及び書き込みメモリ動作を実行する方法及び装置
US9009566B2 (en) Outputting information of ECC corrected bits
JP6983313B2 (ja) 不揮発性メモリの書込みクレジットの管理
US8977833B2 (en) Memory system
KR101801147B1 (ko) 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치
US20160357462A1 (en) Nonvolatile Memory Modules and Data Management Methods Thereof
US20130318418A1 (en) Adaptive error correction for phase change memory
KR20110089728A (ko) 솔리드 스테이트 드라이브의 에러 제어 방법
KR20110001881A (ko) 비트 에러 임계값 및 메모리 장치의 리맵핑
KR20140145834A (ko) 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 글로벌 가비지 컬렉션 방법
US20130304970A1 (en) Systems and methods for providing high performance redundant array of independent disks in a solid-state device
KR20110125611A (ko) 프로그램 실패 후에 액세스 가능한 정보를 갖는 메모리 버퍼
CN103218271B (zh) 一种数据纠错方法及装置
JP7308025B2 (ja) 集積回路装置及びストレージ装置
WO2013080299A1 (ja) データ管理装置、データコピー方法、およびプログラム
JP2017504920A (ja) 不揮発性メモリ・アレイを含むデータ・ストレージ・システムを動作させるための方法、システム及びコンピュータ・プログラム
US20220318091A1 (en) Storage system and operating method thereof
US10956261B2 (en) Volatile memory device and operating method thereof
CN114730247A (zh) 具有数据的最小写入大小的存储设备
TWI829252B (zh) 低密度奇偶校檢碼的解碼方法及電腦程式產品及裝置
US20190026222A1 (en) Controller and operation method thereof
US11966626B2 (en) Hybrid terabytes written (TBW) storage systems
US11797183B1 (en) Host assisted application grouping for efficient utilization of device resources
US11157210B2 (en) Memory system performing dummy program operation during normal program operation
CN115248748A (zh) 执行元数据管理的存储装置及操作该存储装置的方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20131010

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131010

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140110

R150 Certificate of patent or registration of utility model

Ref document number: 5464528

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250