JP2008504637A - フラッシュメモリ装置における内部プログラミング中の同時の外部読出動作 - Google Patents
フラッシュメモリ装置における内部プログラミング中の同時の外部読出動作 Download PDFInfo
- Publication number
- JP2008504637A JP2008504637A JP2007518087A JP2007518087A JP2008504637A JP 2008504637 A JP2008504637 A JP 2008504637A JP 2007518087 A JP2007518087 A JP 2007518087A JP 2007518087 A JP2007518087 A JP 2007518087A JP 2008504637 A JP2008504637 A JP 2008504637A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- memory device
- location
- destination
- 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.)
- Withdrawn
Links
- 238000012937 correction Methods 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000004891 communication Methods 0.000 claims abstract description 6
- 238000012795 verification Methods 0.000 claims description 14
- 238000012546 transfer Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 10
- 238000013479 data entry Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Read Only Memory (AREA)
Abstract
メモリ装置(301)の内部のプログラミング中に同時に外部の読出動作を実行するためのシステム(300)および方法が記載される。メモリ装置は、データをランダムに記憶するように構成されており、かつ、ソース場所(305)と、宛先場所(303)と、データレジスタ(307)と、キャッシュレジスタ(309)とを含む。データレジスタ(307)は、データを宛先(303)およびキャッシュレジスタ(309)に同時に書込むように構成される。システム(300)はさらに、メモリ装置との電気的な通信を介して受信したデータの的確さを検証するための処理装置(107)(たとえば、マイクロプロセッサまたはマイクロコントローラ)を含む。処理装置(107)はさらに、受信したデータが不正確であった場合、誤り訂正を行ない、必要に応じてそのデータにランダムデータを追加し、誤り訂正済みおよび/またはランダムデータ変更されたデータを宛先場所(303)に転送して戻すように構成される。
Description
この発明は、半導体メモリ装置に関する。より具体的には、この発明は、メモリセルにおいてコピーバック動作を行なうためのシステムおよび方法に関する。
半導体メモリ装置は、典型的には、揮発性メモリ装置および不揮発性メモリ装置に分類される。揮発性メモリ装置は、さらにダイナミックランダムアクセスメモリ(DRAM)およびスタティックランダムアクセスメモリ(SRAM)に分けられる。不揮発性メモリタイプには、マスク読出専用メモリ(MROM)、プログラマブル読出専用メモリ(PROM)、消去可能なプログラマブル読出専用メモリ(EPROM)および電気的に消去可能なプログラマブル読出専用メモリ(EEPROM)が含まれる。EEPROMは連続的な更新または予備のメモリ装置が必要であるシステムプログラミングに使用されることが多くなっている。特に、フラッシュEEPROMは、その集積密度が従来のEEPROMに比べて高いために大容量記憶装置として有利である。フラッシュEEPROMの中でも、NANDタイプのフラッシュEEPROMは、NORタイプまたはANDタイプのフラッシュEEPROMに比べて高い集積密度を有する。
現在、フラッシュ装置における動作によって、ユーザは、データを外部のメモリに書出して、再度宛先に書込む代わりに、ソースアドレスの場所に内部記憶された1ページ(メモリのページのサイズは、典型的には、256バイトから2キロバイトである)のデータを直接、宛先アドレスの場所にコピーすることができる。よって、この動作に必要なステップは1つだけなので、効率的である。これは、コピーバック動作の一例である。ただし、このタイプのコピーバックはブラインド動作である。ユーザには、正しいデータがコピーされたかどうかがわからない。コピーされているデータが壊れているか、または間違っていた場合、そのデータは、宛先に不適切に書込まれることになる。
よって、このタイプのコピーバック動作で装置の性能は向上するように思われるが、ソースのデータの信頼性は保証されない。結果として、このコピーバック方式では、誤ったデータが宛先アドレスにコピーされるのを防ぐことはできない。
信頼性を確保できる最も有力な方法の1つは、誤り訂正符号(ECC)を用いることである。データメモリの信頼性を確保するために、さまざまな誤り訂正方式が使用可能である。ある誤り訂正方式では、たとえば、放電ロスによる誤りを訂正し、データの完全性を是正し、誤りのあるデータを廃棄できる。しかしながら、典型的な誤り訂正方式でデータの完全性を確認するには、少なくとも1つの順次ランダム読出サイクルをさらに実行する必要がある。この順次読出ステップを追加すると、フラッシュ装置の性能が低下し、さらにCPUバスを接続し、かつ、CPUクロックサイクルに、誤り訂正を実行させることで、システム全体の性能が低下する。
図1は、先行技術の別のコピーバック方式を示す。図1は、フラッシュメモリ装置101と、マイクロコントローラ107と、シリアルバス109とを含む。フラッシュメモリ装置101は、ソースアドレス場所103と宛先アドレス場所105とを含む。
フラッシュメモリ装置101は、たとえば、NANDタイプの装置であってもよい。フラッシュメモリ装置101は、典型的には、シリアルバス109を通してマイクロコントローラ107などの外部処理装置と通信する。マイクロコントローラ107はまた、CP
Uまたはその他のマイクロプロセッサなどの別の処理装置であってもよい。コピーバック動作を実行するために、マイクロコントローラ107はまず、ソースアドレス場所103に格納されているデータを読出す。マイクロコントローラ107は次に、読出されたデータのコピーを、宛先アドレス場所105に書込む。
Uまたはその他のマイクロプロセッサなどの別の処理装置であってもよい。コピーバック動作を実行するために、マイクロコントローラ107はまず、ソースアドレス場所103に格納されているデータを読出す。マイクロコントローラ107は次に、読出されたデータのコピーを、宛先アドレス場所105に書込む。
最後に、マイクロコントローラ107は、宛先アドレス場所105にある新しく書き込まれたデータの最終読出動作(図示せず)を実行することにより、宛先アドレス場所105に書込まれたデータを検証する。図1に示すような典型的なコピーバック方式は、効果的ではあるが、フラッシュメモリ装置101とマイクロコントローラ107との間で行なわれるすべての読出動作および書込動作は、シリアルバス109を介する必要があるので速度が遅い。
図2は、先行技術の別のコピーバック方式を示す。この方式では、フラッシュメモリ装置201に内部データレジスタ209が追加される。ここでは、ソースアドレス場所103に記憶されたデータが直接、データレジスタ209に転送される。そこでデータレジスタ209は、ソースアドレス場所203に記憶されている中から当該データのコピーを、宛先アドレス場所205に転送する。このシステムは、高速データ転送に対応可能である。しかしながら、マイクロコントローラ107とのやり取りがないために、データの完全性を検証することができない。典型的には、マイクロコントローラが必要に応じて誤り訂正機能を実行すること(たとえば、誤り訂正符号(ECC)を実行するなど)が求められる。データレジスタ209の存在によって、キャッシュ動作が可能となるので、データレジスタ209におけるデータは、宛先アドレスでプログラミング可能となる前に、マイクロコントローラによって変更できる。
NANDタイプのフラッシュEEPROMは、ページのコピーバック動作に対応しており、それは、データ情報をあるページから別のページへ、外部に出力せずにコピーできることを意味する。そのような装置の1つが、ミヤモトへの米国特許第RE36,732号に記載されている。この開示された装置は、「『データ(原文のまま)がコピーバックされるとき、読出されたデータを外部ユニットに読出さずに』、・・・データを転送するための不揮発性半導体メモリ装置」(強調追記、ミヤモトの要約書)。ミヤモトの装置は、CPUを使用せずに、あるロウのメモリデータを別のロウにコピーすると同時に、コピーバック動作を実行することによって、全体のコピーバック時間を短縮する。
コピーバック動作を取入れた別のメモリ装置が、バイオンらへの米国特許出願第2003/0076719号に記載されている。バイオンは、「・・・(するところの)不揮発性メモリ装置は、『読出動作中はセンスアンプとして機能し、かつ、プログラミング動作中は書込ドライバとして機能するページバッファ』を含む。このページバッファは、2つのセンスおよびラッチブロックを有し、これらは、同一の機能を独占的に実行する。一方のセンスおよびラッチブロックが読出動作を実行する間、他方のセンスおよびラッチブロックは予め検出されたデータを外部に出力する。さらに、一方のセンスおよびラッチブロックがプログラミング動作を実行する間、他方のセンスおよびラッチブロックはプログラミングすべきデータをロードする。ページバッファによって、この不揮発性メモリ装置の動作速度を向上させることができる」(強調追記、バイオンの要約)。
しかしながら、ミヤモトもバイオンらも、(1)データの完全性を検証し、(2)データが無効であった場合に、誤り訂正を実行するか、または(3)内部のプログラミング動作を実行する間、同時に外部の読出動作を実行するための手段を開示していない。
したがって、フラッシュメモリ装置が、内部のプログラミング動作の実行と同時に外部の読出動作を実行し、読出動作の後にデータの完全性を検証し、かつ、必要に応じて誤り訂正を行なうことを可能にするためのシステムおよび方法が必要である。
発明の概要
この発明は、転送すべきデータのミラーコピーを、外部処理装置からアクセス可能なキャッシュレジスタに与えることによって、メモリ装置の内部のプログラミング中に同時に外部の読出動作を実行するためのシステムである。メモリ装置は、データをランダムに記憶するように構成されており、かつ、ソースメモリ場所と、宛先メモリ場所と、データレジスタと、キャッシュレジスタとを含む。データレジスタは、データを宛先メモリ場所およびキャッシュレジスタに同時に書込むように構成されている。ソースメモリ場所および宛先メモリ場所は、データレジスタと電子的に通信するように動作可能であり、データレジスタはさらに、キャッシュレジスタと通信するように動作可能である。このシステムはさらに、メモリ装置との電気的な通信を介して受信したデータの的確さを検証するための処理装置(たとえば、マイクロプロセッサまたはマイクロコントローラ)を含む。処理装置はさらに、受信したデータが不正確であった場合、誤り訂正を行なうように構成されている。
この発明は、転送すべきデータのミラーコピーを、外部処理装置からアクセス可能なキャッシュレジスタに与えることによって、メモリ装置の内部のプログラミング中に同時に外部の読出動作を実行するためのシステムである。メモリ装置は、データをランダムに記憶するように構成されており、かつ、ソースメモリ場所と、宛先メモリ場所と、データレジスタと、キャッシュレジスタとを含む。データレジスタは、データを宛先メモリ場所およびキャッシュレジスタに同時に書込むように構成されている。ソースメモリ場所および宛先メモリ場所は、データレジスタと電子的に通信するように動作可能であり、データレジスタはさらに、キャッシュレジスタと通信するように動作可能である。このシステムはさらに、メモリ装置との電気的な通信を介して受信したデータの的確さを検証するための処理装置(たとえば、マイクロプロセッサまたはマイクロコントローラ)を含む。処理装置はさらに、受信したデータが不正確であった場合、誤り訂正を行なうように構成されている。
この発明の例証的な動作において、マイクロコントローラがキャッシュメモリに記憶されたデータを読出す間、そのデータは同時に宛先アドレスにプログラミングされる。さらに、そのデータが宛先アドレスにプログラミングされている間、マイクロコントローラが誤りの検出および訂正を実行してもよい。
この発明はまた、メモリ装置において、内部のプログラミング中に同時に外部の読出動作を実行するための方法である。この方法は、メモリ装置のソースアドレス場所に記憶された元のデータをデータレジスタにコピーし、同時にその元のデータをデータレジスタからキャッシュレジスタおよび宛先場所にコピーし、かつ、キャッシュレジスタに記憶された元のデータを処理装置に転送することを含む。
元のデータが一旦処理装置内に入ると、転送された元のデータと、ソースアドレス場所に記憶されている然るべきデータとを照合することで、元のデータの完全性を検証できる。この検証によって、転送された元のデータにおける潜在的な誤りが検出される。誤りが検出された場合、転送された元のデータに対して誤り訂正を実行することで、誤り訂正済みのデータを作成できる。さらに処理装置は、追加のランダムデータを誤り訂正済みデータストリームまたは転送された元のデータストリームに挿入することで、変更された誤り訂正済みのデータまたは変更された元のデータを作成できる。誤り訂正済みのデータ、変更された誤り訂正済みのデータまたは変更されたデータはそこで、処理装置からキャッシュレジスタに転送され、次に、処理装置から転送されたデータのコピーがデータレジスタにミラーリングされ、最後に、処理装置から転送されたデータがメモリ装置内の宛先場所にコピーされる。
発明を実施するためのベストモード
図3に関して、フラッシュ装置において、内部のプログラミング動作中に同時に外部の読出動作を実行するためのシステム300のブロック図を示す。図3は、フラッシュメモリ装置301と、宛先アドレス場所303と、ソースアドレス場所305と、データレジスタ307と、キャッシュレジスタ309とを含む。たとえば、フラッシュメモリ装置301を含む同じ集積回路チップ上に配置可能なステートマシン(図示せず)は、後述するルーチンを制御および実行することを目的とする。
図3に関して、フラッシュ装置において、内部のプログラミング動作中に同時に外部の読出動作を実行するためのシステム300のブロック図を示す。図3は、フラッシュメモリ装置301と、宛先アドレス場所303と、ソースアドレス場所305と、データレジスタ307と、キャッシュレジスタ309とを含む。たとえば、フラッシュメモリ装置301を含む同じ集積回路チップ上に配置可能なステートマシン(図示せず)は、後述するルーチンを制御および実行することを目的とする。
一実施例では、フラッシュメモリ装置301はNANDフラッシュメモリ装置である。代わりに、フラッシュメモリ装置301は、NOR論理素子またはAND論理素子に基づくものであってもよい。コピーバック動作コマンドがアサートされると、ソースアドレス場所305のデータが、データレジスタ307に読出される。データレジスタ307に読出されるデータは、たとえば、まる1ページ分のデータであってもよい。一実施例では、ページのサイズは、256バイトまたは512バイトから最大2キロバイトで構成される。ソースデータが一旦データレジスタ307に読出されると、データレジスタ307は、そのデータを宛先アドレス場所303に書込む(すなわち、プログラミングする)(概念上、書込動作311として示す)と同時に、そのデータのミラーコピーをキャッシュレジスタ309に書込む。フラッシュメモリ場所への書込に要する時間は、フラッシュメモリ場所からの読出に要する時間に比べて相当長くなる可能性があるので、データが宛先ソース場所303に書込まれている間に、キャッシュレジスタ309に記憶されたデータのミラーコピーが、シリアルバス109を介してマイクロコントローラ107に読出されるようにしてもよい(概念上、読出動作313として示す)。上記の各々の動作における特定の相対的なタイミングについては、図4を参照して、さらに詳細に述べる。
データの少なくとも一部が一旦マイクロコントローラ107に転送されると、マイクロコントローラ107は、そのデータと、ソースアドレス場所305に元から記憶されていると思われるデータとの照合を開始することができる。マイクロコントローラ107が、たとえば、電荷ロスによるビット誤りによって、そのデータの完全性が部分的に失われていると判定した場合、マイクロコントローラ107は、当業者にとっては周知の誤り訂正符号化の方法によってそのデータを復元することができる。そのデータの誤りが訂正されると、マイクロコントローラ107は、その訂正されたデータを、シリアルバス109を介してキャッシュレジスタ309に順次書込み直す。キャッシュレジスタ309はそこで、そのデータをデータレジスタ307に転送し、次にデータレジスタは、その訂正済みのデータを宛先アドレス場所303に書込む。例証的な誤り訂正動作については、図4を参照して、以下でより詳細に説明する。
データに誤り訂正が必要ない場合でも、この発明の動作全体は、図1の先行技術で必要とされる総時間より短い時間で行なわれる。この発明では、宛先場所303へのデータの書込311と同時に、キャッシュレジスタ309への読出およびその次のキャッシュレジスタ309からマイクロコントローラ107へのデータの読出313が可能なことで、相当な時間の節約が実現する。したがって、誤り訂正が必要な場合、宛先場所303へのデータの書込と同時に、誤り訂正プロセスが開始される。対照的に、先行技術は専ら順次的な動作ステップに依存しており、そのプロセスは、シリアルバスの使用および関連するビット単位またはバイト単位の転送に大きく依存している。
この発明では、純粋なコピーバック動作を実行するだけでなく、ソースアドレス場所305から読出されたデータにおいて、ページの中に追加のデータまたはランダムデータを挿入することもできる。このランダムデータの挿入動作については、図6および図7に関連してより詳細に説明する。
図4を参照して、この発明と図2の先行技術との相対的なタイミングの違いをタイミング図に示す。図4に関して、トレース401は、データがソースアドレス場所305からデータレジスタ307にコピーされていることを示す。トレース403で示すように、データは一旦データレジスタ307にコピーされると、キャッシュレジスタ309に書込まれる。次の2つのトレース405、407は任意のものである。
トレース405は、マイクロコントローラ107による任意の読出を示す。マイクロコ
ントローラ107がデータを検証する場合、トレース407でソースレジスタ305におけるデータの完全性が検証され、提示される。任意のトレース405、407を有することで、マイクロコントローラ107は、ソース場所305におけるデータを確実に検証および確認できる(たとえば、この検証はECCであってもよい)。現行のシステムでは、トレース405で示す任意の読出ステップを実行することはできない。
ントローラ107がデータを検証する場合、トレース407でソースレジスタ305におけるデータの完全性が検証され、提示される。任意のトレース405、407を有することで、マイクロコントローラ107は、ソース場所305におけるデータを確実に検証および確認できる(たとえば、この検証はECCであってもよい)。現行のシステムでは、トレース405で示す任意の読出ステップを実行することはできない。
ソース場所305から読出されたデータに、誤り訂正/検証ステップまたはランダムデータが追加された場合、任意のトレース405で、データは、シリアルバス109を介して、キャッシュレジスタ309からマイクロコントローラ107に読出される。そこで誤り訂正済みデータまたはランダムデータが、任意のトレース407に示すように、シリアルバス109を介してマイクロコントローラ107から読出され、キャッシュレジスタ309に戻される。
任意のトレース407は、キャッシュレジスタ309からマイクロコントローラ107へのデータ転送を示す。シリアルバス109を介したフラッシュメモリ装置301からマイクロコントローラ107へのデータ転送は順次行なわれるので、キャッシュレジスタ309からマイクロコントローラ107への書込に要する全体の転送時間は、フラッシュメモリ装置301内における内部データ転送に比べて相当長くなる。マイクロコントローラ107へのデータ転送が一旦開始されると、マイクロコントローラ107は、受信したデータに誤り訂正が必要かどうかを判定する。
さらに、マイクロコントローラ107は、ソースアドレス場所305から読出されたページデータのうち選択された部分に、データをランダムに追加することができる。誤り訂正の相対的なタイミングを、トレース409で示す。マイクロコントローラ107は、データの少なくとも一部を受信すると、すぐに誤り訂正を開始できることに注目されたい。
誤り訂正を実行するか、またはランダムデータを挿入すると、マイクロコントローラ107は、トレース411に示すように、変更されたデータをキャッシュレジスタ309に転送して戻す。トレース413で、変更されたデータのミラーコピーがキャッシュレジスタ309からデータレジスタ307に転送され、それから最終的に宛先場所303に転送される。縦線415は、マイクロコントローラ107が誤り訂正を実行するか、または追加のランダムデータを挿入した後、訂正されたデータを宛先場所303に書込むのに要する相対的な時間を示す。
代替的に、誤り訂正が必要でない場合、またはランダムデータが追加されなかった場合(すなわち、任意のトレース405、407で示すステップが省略された場合)、データが一旦宛先アドレス場所303に書込まれると、縦線417で示すように、コピーバック動作はそこで完了する。
図4を参照して、この発明の例示的なタイミング図400と、図2の先行技術のタイミング図450との相対的なタイミングの違いをタイミング図に示す。図4に関して、トレース401は、データがソースアドレス場所305からデータレジスタ307にコピーされていることを示す。トレース403で示すように、データは一旦データレジスタ307にコピーされると、キャッシュレジスタ309に書込まれる。
次の2つのトレース405、407は任意である。トレース405は、トレース407で示すように、マイクロコントローラ107がソース305におけるデータの完全性を検証し、かつ、何らかの変更を行なうためのステップを実行する場合の、マイクロコントローラ107による任意の読出ステップを示す。トレース405、407で示すような任意のステップを有することにより、マイクロコントローラ107は、(たとえば、ECCで
)データソースの検証および確認が行なわれるようにする。現行のフラッシュメモリ装置では、これを実現できない(この発明の先行技術では、トレース407で示すステップのみ実現可能である)。
)データソースの検証および確認が行なわれるようにする。現行のフラッシュメモリ装置では、これを実現できない(この発明の先行技術では、トレース407で示すステップのみ実現可能である)。
代替的に、マイクロコンピュータ107は、トレース405、407で示すようなステップを省略してもよい。この場合、マイクロコントローラ107は、プログラミングの前にデータの訂正を行なう柔軟性を失うことになる。
ソースアドレス場所305から読出されたデータに、誤り訂正/検証ステップまたはランダムデータを追加する場合、任意のトレース405で、データは、シリアルバス109を介してキャッシュレジスタ309からマイクロコントローラ107に読出される。任意のトレース407で示すように、誤り訂正済みのデータまたはランダムデータが、シリアルバス109を介してマイクロコントローラ107から読出され、キャッシュレジスタ309に戻される。誤り訂正が必要ない場合、またはランダムデータが追加されなかった場合、データが一旦宛先アドレス場所303に書込まれると、第1の相対的なタイミング線415によって示すように、コピーバック動作はそこで完了することに留意されたい。エラー訂正が実行された場合、またはランダムデータが挿入された場合、マイクロコントローラ107はそこで、トレース411で示すように、変更されたデータをキャッシュレジスタ309に転送して戻す。変更されたデータのミラーコピーは、トレース409でキャッシュレジスタ309からデータレジスタ307に転送され、トレース411で最終的に宛先場所303に転送される。第2の相対的なタイミング線417は、データが宛先303に確実に正しく書込まれるようにするために、マイクロコントローラ107が同時の読出を行なうのに必要な時間を示す(後述するように、先行技術のトレース459と比較)。この構成の内部の回路によって、データはキャッシュレジスタ309から宛先303に確実に正しく転送される。
トレース409は、キャッシュレジスタ309からデータレジスタ307へのデータ転送を示す。重要な点として、トレース411および413でそれぞれ示すように、データレジスタ307から宛先303にデータを転送すると同時に、キャッシュレジスタ309からマイクロコントローラ107にデータを転送できる。
シリアルバス109を介したフラッシュメモリ装置301からマイクロコントローラ107へのデータ転送は順次行なわれるので、キャッシュレジスタ309からマイクロコントローラ107への書込に要する全体の転送時間は、フラッシュメモリ装置301内における内部のデータ転送より長くなる。マイクロコントローラ107へのデータ転送が一旦開始されると、マイクロコントローラ107は、受信したデータに誤り訂正を行なう必要があるかどうかを判定する。
タイミング図450は、図2に示す先行技術の方式に従ってデータを転送するのに必要とされる純粋な順次プロセスの相対的なタイミングを示す。先行技術では、トレース451で、データはソースアドレス場所203からデータレジスタ209に転送され、それからシリアルバス109を介してマイクロコントローラ107に転送される(トレース453)。データがマイクロコントローラ107に転送された後でないと、データレジスタはデータを宛先205に書込むことはできない(トレース455)。最終的なデータの検証またはデータの読出では、データが宛先205から読出されてデータレジスタ209に戻され(トレース457)、次にデータレジスタ209からマイクロコントローラ107に読出される(トレース459)。図4が示しているのは、この発明における誤り訂正またはランダムデータの挿入が必要な場合、データレジスタ307から宛先アドレス場所303へのコピーバック動作は、先行技術において、データをデータレジスタ209を介してソースアドレス場所203からマイクロコントローラ107に転送するのに要する時間に
比べて相当短い時間で完了できるということである(第1の相対的なタイミング線415でトレース411とトレース455とを比較)。先行技術の改良が可能であるとしても、データの転送を確実に行なうためには、依然として追加の動作が必要となる。
比べて相当短い時間で完了できるということである(第1の相対的なタイミング線415でトレース411とトレース455とを比較)。先行技術の改良が可能であるとしても、データの転送を確実に行なうためには、依然として追加の動作が必要となる。
マイクロコントローラ107は、ソースアドレス場所203から転送されたデータの完全性を検証し、かつ、誤り訂正が必要かどうかを判定する(図示せず)。データの完全性に何らかの欠如が検出された場合、先行技術のプロセスは再びトレース451から繰り返される。さらに、先行技術では、同時に実行可能なデータ転送ステップが存在しない(すなわち、データ転送ステップを同時に実行できない)ことに注目されたい。
したがって、読出期間tR511の間にロウの論理レベルがステータスピンでアサートされ、それによって、その他の読出動作またはプログラミング/書込動作が行なわれるのを防ぐ。ソースアドレス場所のデータが一旦読出されると、コピーバックプログラミング動作513が開始され、まず宛先ソースアドレス515が決定され、次にコピーバック確認動作517が続いて、宛先アドレス場所105をプログラミングすべきことを確認する。信号線501は、プログラミング(すなわち、書込)期間tPROG519を示し、その間はロウの論理レベルがステータスピンでアサートされる。通常、不揮発性メモリ装置、特にNANDフラッシュ装置では、tPROG>tRである。プログラミング機構自体の結果として、プログラミングの処理は遅い(すなわち、高電圧を発生する必要がある)。読出ステータスステップ521が実行され、次にI/O検証523が続く。I/O検証523は、成功/失敗の指示によって、コピーバックプログラミング動作で誤りがあれば報告する。宛先ソースアドレス105に書込まれたデータの完全性を検証するために、527で宛先ソースアドレスが再度決定された後、最終的な読出ステップ525が実行され、次に読出期間tR529の間に、ロウの論理レベルがステータスピンでアサートされる。
図6のコピーバック動作は、図5のコピーバック動作と類似しているが、顕著かつ重要な違いがある。たとえば、宛先アドレスの決定ステップとプログラミング確認ステップとの間に、少なくとも1つの任意のランダムデータ入力ステップ607を挿入することができる。この発明のコピーバック動作では、読出動作が実行された後、次のページプログラ
ミング動作が続く。読出動作とプログラミング動作との間で、ページ内に追加のランダムデータを挿入することにより、データの読出および変更が可能になる。プログラミング時間は、読出時間に比べて相当長くなる場合があるので、先行技術のコピーバックシステムではかなりの待ち時間が生じる。この発明のフラッシュメモリ装置301は、その待ち時間を利用して、読出イネーブル信号をトグルさせることにより、キャッシュレジスタ309内で既に使用可能なデータを同時に読出す。ここでデータは、ソースアドレス場所305から読出されたデータストリームに挿入され、ランダムデータ入力プログラム607aの一部として組込まれる。元のソースアドレス場所305のデータを挿入するコピーバックプログラムの一部として、データの読出607cに必要なのは、追加の宛先列アドレス607bだけである(すなわち、ランダムデータの行アドレスと元のデータの行アドレスは同じである)。ランダムデータ入力ステップ607は、元のデータのさまざまな部分にさまざまな量のランダムデータを組込むのに必要な回数だけ繰返すことができる。
ミング動作が続く。読出動作とプログラミング動作との間で、ページ内に追加のランダムデータを挿入することにより、データの読出および変更が可能になる。プログラミング時間は、読出時間に比べて相当長くなる場合があるので、先行技術のコピーバックシステムではかなりの待ち時間が生じる。この発明のフラッシュメモリ装置301は、その待ち時間を利用して、読出イネーブル信号をトグルさせることにより、キャッシュレジスタ309内で既に使用可能なデータを同時に読出す。ここでデータは、ソースアドレス場所305から読出されたデータストリームに挿入され、ランダムデータ入力プログラム607aの一部として組込まれる。元のソースアドレス場所305のデータを挿入するコピーバックプログラムの一部として、データの読出607cに必要なのは、追加の宛先列アドレス607bだけである(すなわち、ランダムデータの行アドレスと元のデータの行アドレスは同じである)。ランダムデータ入力ステップ607は、元のデータのさまざまな部分にさまざまな量のランダムデータを組込むのに必要な回数だけ繰返すことができる。
内部のプログラミング動作と並行して外部の読出動作が行なわれることで、追加のデータが読出されて、かつ、フラッシュメモリ装置301にプログラミングされるときでも、コピーバック動作に要する時間は大幅に短縮される。tPROGが読出されるべきデータの順次アクセスに相当する場合、アイドル時間が最小となるので、スループットは最大となる。
図7は、この発明の処理フロー図700を示す。処理フロー図700は、読出コマンド動作701と、ソースアドレスのロード動作703と、コピーバックのための読出確認ステップ705と、内部の読出動作実行ステップ707とを含む。711でコピーバックプログラムがロードされ、713で適正な宛先アドレスがロードされる。
713で宛先アドレスが一旦ロードされると、任意のランダムデータ入力ステップ715が実行可能となる。ランダムデータ入力ステップ717は、719で中間アドレスをロードし、かつ、721でソースアドレス場所305から要求されたデータをロードすることで開始する。データがロードされた後、723でキャッシュレジスタ309が更新される。724で要求されたランダムデータがすべてロードされたかどうか判定される。ランダムデータがすべてロードされていれば、プロセスは、最終ステップ733に進み、プログラミングフェーズを実行し、データレジスタをプリセットし、キャッシュレジスタを更新する。
任意のランダムデータ入力ステップ715が必要ない場合、プロセスは、725でデータをキャッシュレジスタ309からデータレジスタ307にコピーする。727でステータスピン(図示せず)がハイの論理レベルに設定されるが、それは、フラッシュメモリ装置301が、ユーザが読出できるように準備されたことを示す。次に729でデータがキャッシュレジスタ309から読出される。ステップ731で、さらにデータがあるかどうか判定される。データが残っていれば、プロセスは、データ読出ステップ729にループバックし、対象となるデータがなくなるまで継続する。
詳細な説明および図面で、内部のプログラミング動作中に並行して外部の読出動作を実行できるフラッシュメモリ装置について説明したが、当業者であれば、記載の装置の意図される範囲から逸脱することなく、他の実施例も容易に考えられることを認識するであろう。たとえば、特定のタイミング図および波形は、この発明のフラッシュメモリ装置の例示的な実施例として示したものである。しかしながら、熟練者であれば、コピーバック動作を実行するための時間が短縮されるという同じ所望の結果をこれまでのように得ると同時に、タイミング図または波形図から特定の動作を容易に再構成することができるであろう。さらに、特にNANDタイプのフラッシュメモリを参照したが、ANDタイプまたはNORタイプのフラッシュメモリを用いても、同様のコピーバック動作が実行可能である。したがって、この発明の範囲は、前掲の特許請求の範囲によってのみ限定されるものである。
Claims (25)
- メモリ装置において内部のプログラミング中に同時に外部の読出動作を実行するためのシステムであって、
データをランダムに記憶するための記憶手段を含み、前記記憶手段は、ソースメモリ場所と、宛先メモリ場所と、データレジスタと、キャッシュレジスタとを含み、前記データレジスタは、データを前記宛先メモリ場所および前記キャッシュレジスタに同時に書込むように構成されており、前記ソースメモリ場所および前記宛先メモリ場所は、前記データレジスタと電子的に通信するように動作可能であり、前記データレジスタはさらに、前記キャッシュレジスタと電子的に通信するように動作可能であり、前記システムはさらに、
前記記憶手段との電気的な通信を介して受信されたデータの的確さを検証するための検証手段を含み、前記検証手段はさらに、前記データが不正確であった場合に、前記データの誤り訂正を行なうように構成される、システム。 - 前記記憶手段はフラッシュメモリ装置である、請求項1に記載のシステム。
- 前記フラッシュメモリ装置はNANDタイプの装置である、請求項2に記載のシステム。
- 前記検証手段はマイクロコントローラである、請求項1に記載のシステム。
- 前記検証手段はマイクロプロセッサである、請求項1に記載のシステム。
- 前記記憶手段と前記検証手段との間の電気的な通信は、シリアルバスを介して行なわれる、請求項1に記載のシステム。
- 前記データの的確さは、前記データと、前記ソースメモリ場所に元から記憶されているデータとを照合することで得られる、請求項1に記載のシステム。
- 前記データの的確さは、誤り訂正符号化の技法によって得られる、請求項1に記載のシステム。
- 前記検証手段はさらに、前記受信したデータにランダムデータを挿入するように構成されている、請求項1に記載のシステム。
- メモリ装置において内部のプログラミング中に同時に外部の読出動作を実行するための方法であって、
前記メモリ装置のソースアドレス場所に記憶された元のデータをデータレジスタにコピーするステップと、
前記元のデータを前記データレジスタからキャッシュレジスタおよび宛先場所に同時にコピーする間、コピーされた前記元のデータを前記データレジスタにミラーリングするステップとを含む、方法。 - 前記キャッシュレジスタに記憶された元のデータを処理装置に転送するステップと、
転送された元のデータと、前記ソースアドレス場所に記憶された然るべきデータとを照合することで、前記元のデータの完全性を検証して、前記転送された元のデータにおける潜在的な誤りを見出すステップと、
何らかの誤りが検出された場合、前記転送された元のデータに対して誤り訂正を実行し、それによって誤り訂正済みのデータを作成するステップとをさらに含む、請求項10に記載の方法。 - 誤り訂正済みのデータを、前記処理装置から前記キャッシュレジスタに転送するステップと、
前記誤り訂正済みのデータのコピーを、前記キャッシュレジスタから前記データレジスタにミラーリングするステップと、
前記誤り訂正済みのデータを、前記データレジスタから前記宛先場所にコピーするステップとを含む、請求項11に記載の方法。 - 変更された誤り訂正済みのデータを作成する前に、前記誤り訂正済みのデータにランダムデータを追加するステップと、
変更された誤り訂正済みのデータを、前記処理装置から前記キャッシュレジスタに転送するステップと、
前記変更された誤り訂正済みのデータのコピーを、前記キャッシュレジスタから前記データレジスタにミラーリングするステップと、
前記変更された誤り訂正済みのデータを、前記データレジスタから前記宛先場所にコピーするステップとをさらに含む、請求項11に記載の方法。 - 前記元のデータにランダムデータを追加して、変更されたデータを作成するステップと、
前記変更されたデータを、前記処理装置から前記キャッシュレジスタに転送するステップと、
前記変更されたデータのコピーを、前記キャッシュレジスタから前記データレジスタにミラーリングするステップと、
前記変更されたデータを、前記データレジスタから前記宛先場所にコピーするステップとをさらに含む、請求項11に記載の方法。 - 処理装置はマイクロコントローラである、請求項11に記載の方法。
- 処理装置はマイクロプロセッサである、請求項11に記載の方法。
- メモリ装置において内部のプログラミングの間に同時に外部の読出動作を実行するためのシステムであって、
データをランダムに記憶するためのメモリ装置を含み、前記メモリ装置は、ソースメモリ場所と、宛先メモリ場所と、データレジスタと、キャッシュレジスタとを含み、前記データレジスタは、データを前記宛先メモリ場所および前記キャッシュレジスタに同時に書込むように構成されており、前記ソースメモリ場所および前記宛先メモリ場所は、前記データレジスタと電子的に通信するように動作可能であり、前記データレジスタはさらに、前記キャッシュレジスタと通信するように動作可能であり、前記システムはさらに、
前記記憶手段との電気的な通信を介して受信されたデータの的確さを検証するための処理装置を含み、前記マイクロコントローラはさらに、前記データが不正確であった場合、前記データの誤り訂正を行なうように構成される、システム。 - 前記メモリ装置はフラッシュメモリ装置である、請求項17に記載のシステム。
- 前記フラッシュメモリ装置はNANDタイプの装置である、請求項18に記載のシステム。
- 前記処理装置はマイクロコントローラである、請求項17に記載のシステム。
- 前記処理装置はマイクロプロセッサである、請求項17に記載のシステム。
- 前記メモリ装置と前記処理装置との間の電気的な通信は、シリアルバスを介して行なわれる、請求項17に記載のシステム。
- 前記データの的確さは、前記データと、前記ソースメモリ場所に元から記憶されているデータとを照合することによって得られる、請求項17に記載のシステム。
- 前記データの的確さは、誤り訂正符号化の技法によって得られる、請求項1に記載のシステム。
- 前記処理装置はさらに、前記受信したデータにランダムデータを挿入するように構成される、請求項17に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/875,652 US7159069B2 (en) | 2004-06-23 | 2004-06-23 | Simultaneous external read operation during internal programming in a flash memory device |
PCT/US2005/019268 WO2006007264A2 (en) | 2004-06-23 | 2005-06-01 | Simultaneous external read operation during internal programming in a flash memory device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008504637A true JP2008504637A (ja) | 2008-02-14 |
Family
ID=35507446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007518087A Withdrawn JP2008504637A (ja) | 2004-06-23 | 2005-06-01 | フラッシュメモリ装置における内部プログラミング中の同時の外部読出動作 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7159069B2 (ja) |
EP (1) | EP1769362A2 (ja) |
JP (1) | JP2008504637A (ja) |
KR (1) | KR20070024624A (ja) |
CN (1) | CN101031895A (ja) |
TW (1) | TW200613978A (ja) |
WO (1) | WO2006007264A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011108306A (ja) * | 2009-11-16 | 2011-06-02 | Sony Corp | 不揮発性メモリおよびメモリシステム |
JP2016507125A (ja) * | 2013-01-14 | 2016-03-07 | マイクロン テクノロジー, インク. | データ経路整合性の照合 |
Families Citing this family (107)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7466597B2 (en) * | 2004-09-09 | 2008-12-16 | Samsung Electronics Co., Ltd. | NAND flash memory device and copyback program method for same |
KR100669352B1 (ko) * | 2005-09-07 | 2007-01-16 | 삼성전자주식회사 | 카피 백 프로그램 동작 동안에 에러 검출 및 데이터 리로딩동작을 수행할 수 있는 낸드 플래시 메모리 장치 |
KR20070076849A (ko) * | 2006-01-20 | 2007-07-25 | 삼성전자주식회사 | 메모리 카드의 카피백 동작을 수행하는 장치 및 방법 |
DE102006008771A1 (de) * | 2006-02-22 | 2007-08-23 | Beiersdorf Ag | Gegen unreine Haut und milde Formen der Akne wirksame Zubereitungen mit einem Gehalt an Hydroxymatairesinol als wirksames Prinzip |
JP4956230B2 (ja) * | 2006-04-10 | 2012-06-20 | 株式会社東芝 | メモリコントローラ |
JP4839133B2 (ja) * | 2006-05-22 | 2011-12-21 | 株式会社日立製作所 | ストレージ装置のデータ管理方法及び計算機システム |
US7680841B2 (en) * | 2006-07-26 | 2010-03-16 | International Business Machines Corporation | Determining whether data written to source storage locations according to a write order is copied to corresponding target storage locations in the write order |
KR100764749B1 (ko) * | 2006-10-03 | 2007-10-08 | 삼성전자주식회사 | 멀티-칩 패키지 플래시 메모리 장치 및 그것의 카피 백방법 |
US7788438B2 (en) | 2006-10-13 | 2010-08-31 | Macronix International Co., Ltd. | Multi-input/output serial peripheral interface and method for data transmission |
KR100918707B1 (ko) * | 2007-03-12 | 2009-09-23 | 삼성전자주식회사 | 플래시 메모리를 기반으로 한 메모리 시스템 |
US20090125790A1 (en) * | 2007-11-13 | 2009-05-14 | Mcm Portfolio Llc | Method and Apparatus of Automatically Selecting Error Correction Algorithms by a NAND Flash Controller |
US20090150721A1 (en) * | 2007-12-10 | 2009-06-11 | International Business Machines Corporation | Utilizing A Potentially Unreliable Memory Module For Memory Mirroring In A Computing System |
US8621138B2 (en) | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Flash storage controller execute loop |
US8443260B2 (en) * | 2007-12-27 | 2013-05-14 | Sandisk Il Ltd. | Error correction in copy back memory operations |
US9594679B2 (en) * | 2008-05-01 | 2017-03-14 | Sandisk Il Ltd. | Flash cache flushing method and system |
JP4564557B2 (ja) * | 2008-08-28 | 2010-10-20 | 株式会社東芝 | 映像表示装置および映像表示方法 |
US8316201B2 (en) | 2008-12-18 | 2012-11-20 | Sandisk Il Ltd. | Methods for executing a command to write data from a source location to a destination location in a memory device |
KR101583090B1 (ko) * | 2009-12-15 | 2016-01-07 | 엘지이노텍 주식회사 | 마이크로 컨트롤러의 데이터 리드 방법 |
US8443263B2 (en) * | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
KR20110099570A (ko) | 2010-03-02 | 2011-09-08 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8365041B2 (en) | 2010-03-17 | 2013-01-29 | Sandisk Enterprise Ip Llc | MLC self-raid flash data protection scheme |
JP2012208980A (ja) * | 2011-03-30 | 2012-10-25 | Hitachi-Lg Data Storage Inc | 光ディスク装置 |
US8910020B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | Intelligent bit recovery for flash memory |
US8909982B2 (en) * | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | System and method for detecting copyback programming problems |
KR20130036556A (ko) * | 2011-10-04 | 2013-04-12 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
US9058289B2 (en) | 2011-11-07 | 2015-06-16 | Sandisk Enterprise Ip Llc | Soft information generation for memory systems |
US8954822B2 (en) | 2011-11-18 | 2015-02-10 | Sandisk Enterprise Ip Llc | Data encoder and decoder using memory-specific parity-check matrix |
US9048876B2 (en) | 2011-11-18 | 2015-06-02 | Sandisk Enterprise Ip Llc | Systems, methods and devices for multi-tiered error correction |
US8924815B2 (en) | 2011-11-18 | 2014-12-30 | Sandisk Enterprise Ip Llc | Systems, methods and devices for decoding codewords having multiple parity segments |
US8667368B2 (en) * | 2012-05-04 | 2014-03-04 | Winbond Electronics Corporation | Method and apparatus for reading NAND flash memory |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US9003264B1 (en) | 2012-12-31 | 2015-04-07 | Sandisk Enterprise Ip Llc | Systems, methods, and devices for multi-dimensional flash RAID data protection |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9324450B2 (en) | 2013-03-13 | 2016-04-26 | Winbond Electronics Corporation | NAND flash memory |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9009576B1 (en) | 2013-03-15 | 2015-04-14 | Sandisk Enterprise Ip Llc | Adaptive LLR based on syndrome weight |
US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US9092350B1 (en) | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9043517B1 (en) | 2013-07-25 | 2015-05-26 | Sandisk Enterprise Ip Llc | Multipass programming in buffers implemented in non-volatile data storage systems |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9361221B1 (en) | 2013-08-26 | 2016-06-07 | Sandisk Technologies Inc. | Write amplification reduction through reliable writes during garbage collection |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9442670B2 (en) | 2013-09-03 | 2016-09-13 | Sandisk Technologies Llc | Method and system for rebalancing data stored in flash memory devices |
US9519577B2 (en) | 2013-09-03 | 2016-12-13 | Sandisk Technologies Llc | Method and system for migrating data between flash memory devices |
US9158349B2 (en) | 2013-10-04 | 2015-10-13 | Sandisk Enterprise Ip Llc | System and method for heat dissipation |
US9323637B2 (en) | 2013-10-07 | 2016-04-26 | Sandisk Enterprise Ip Llc | Power sequencing and data hardening architecture |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9122636B2 (en) | 2013-11-27 | 2015-09-01 | Sandisk Enterprise Ip Llc | Hard power fail architecture |
US9280429B2 (en) | 2013-11-27 | 2016-03-08 | Sandisk Enterprise Ip Llc | Power fail latching based on monitoring multiple power supply voltages in a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9250676B2 (en) | 2013-11-29 | 2016-02-02 | Sandisk Enterprise Ip Llc | Power failure architecture and verification |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9092370B2 (en) | 2013-12-03 | 2015-07-28 | Sandisk Enterprise Ip Llc | Power failure tolerant cryptographic erase |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
US9129665B2 (en) | 2013-12-17 | 2015-09-08 | Sandisk Enterprise Ip Llc | Dynamic brownout adjustment in a storage device |
US9549457B2 (en) | 2014-02-12 | 2017-01-17 | Sandisk Technologies Llc | System and method for redirecting airflow across an electronic assembly |
US9497889B2 (en) | 2014-02-27 | 2016-11-15 | Sandisk Technologies Llc | Heat dissipation for substrate assemblies |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9519319B2 (en) | 2014-03-14 | 2016-12-13 | Sandisk Technologies Llc | Self-supporting thermal tube structure for electronic assemblies |
US9348377B2 (en) | 2014-03-14 | 2016-05-24 | Sandisk Enterprise Ip Llc | Thermal isolation techniques |
US9485851B2 (en) | 2014-03-14 | 2016-11-01 | Sandisk Technologies Llc | Thermal tube assembly structures |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US9070481B1 (en) | 2014-05-30 | 2015-06-30 | Sandisk Technologies Inc. | Internal current measurement for age measurements |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US8891303B1 (en) | 2014-05-30 | 2014-11-18 | Sandisk Technologies Inc. | Method and system for dynamic word line based configuration of a three-dimensional memory device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US9093160B1 (en) | 2014-05-30 | 2015-07-28 | Sandisk Technologies Inc. | Methods and systems for staggered memory operations |
US9645749B2 (en) | 2014-05-30 | 2017-05-09 | Sandisk Technologies Llc | Method and system for recharacterizing the storage density of a memory device or a portion thereof |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9442798B2 (en) | 2014-07-31 | 2016-09-13 | Winbond Electronics Corporation | NAND flash memory having an enhanced buffer read capability and method of operation thereof |
US9367392B2 (en) | 2014-08-01 | 2016-06-14 | Winbond Electronics Corporation | NAND flash memory having internal ECC processing and method of operation thereof |
KR102189780B1 (ko) | 2014-08-11 | 2020-12-11 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
US10073772B2 (en) | 2016-02-05 | 2018-09-11 | International Business Machines Corporation | Copy-on-write in cache for ensuring data integrity in case of storage system failure |
KR102636039B1 (ko) | 2016-05-12 | 2024-02-14 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법 |
US10552340B2 (en) * | 2017-02-28 | 2020-02-04 | Oracle International Corporation | Input/output direct memory access during live memory relocation |
KR102687354B1 (ko) | 2019-08-01 | 2024-07-22 | 삼성전자주식회사 | 스토리지 장치 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62145340A (ja) * | 1985-12-20 | 1987-06-29 | Toshiba Corp | キヤツシユメモリ制御方式 |
US5214777A (en) * | 1989-03-27 | 1993-05-25 | Ncr Corporation | High speed read/modify/write memory system and method |
JP2922116B2 (ja) | 1993-09-02 | 1999-07-19 | 株式会社東芝 | 半導体記憶装置 |
US6216205B1 (en) * | 1998-05-21 | 2001-04-10 | Integrated Device Technology, Inc. | Methods of controlling memory buffers having tri-port cache arrays therein |
KR100454119B1 (ko) | 2001-10-24 | 2004-10-26 | 삼성전자주식회사 | 캐쉬 기능을 갖는 불 휘발성 반도체 메모리 장치 및 그것의 프로그램, 읽기, 그리고 페이지 카피백 방법들 |
-
2004
- 2004-06-23 US US10/875,652 patent/US7159069B2/en not_active Expired - Fee Related
-
2005
- 2005-06-01 EP EP05771298A patent/EP1769362A2/en not_active Withdrawn
- 2005-06-01 WO PCT/US2005/019268 patent/WO2006007264A2/en active Application Filing
- 2005-06-01 JP JP2007518087A patent/JP2008504637A/ja not_active Withdrawn
- 2005-06-01 CN CNA200580024560XA patent/CN101031895A/zh active Pending
- 2005-06-01 KR KR1020067026939A patent/KR20070024624A/ko not_active Application Discontinuation
- 2005-06-13 TW TW094119469A patent/TW200613978A/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011108306A (ja) * | 2009-11-16 | 2011-06-02 | Sony Corp | 不揮発性メモリおよびメモリシステム |
JP2016507125A (ja) * | 2013-01-14 | 2016-03-07 | マイクロン テクノロジー, インク. | データ経路整合性の照合 |
Also Published As
Publication number | Publication date |
---|---|
EP1769362A2 (en) | 2007-04-04 |
CN101031895A (zh) | 2007-09-05 |
WO2006007264A2 (en) | 2006-01-19 |
KR20070024624A (ko) | 2007-03-02 |
TW200613978A (en) | 2006-05-01 |
US7159069B2 (en) | 2007-01-02 |
WO2006007264A3 (en) | 2007-05-31 |
US20050289314A1 (en) | 2005-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008504637A (ja) | フラッシュメモリ装置における内部プログラミング中の同時の外部読出動作 | |
US7813187B2 (en) | Multi-bit flash memory device and program method thereof | |
US7457997B2 (en) | Apparatus and method for detecting over-programming condition in multistate memory device | |
JP4129381B2 (ja) | 不揮発性半導体記憶装置 | |
US6349056B1 (en) | Method and structure for efficient data verification operation for non-volatile memories | |
US7350044B2 (en) | Data move method and apparatus | |
JP4524309B2 (ja) | フラッシュメモリ用のメモリコントローラ | |
US6917547B2 (en) | Non-volatile semiconductor memory device | |
JP3802411B2 (ja) | 不揮発性半導体記憶装置のデータコピー方法 | |
JP2004311010A (ja) | エラー訂正機能を有したフラッシュメモリ装置 | |
US8214725B2 (en) | Memory access system | |
US8799555B2 (en) | Boot data storage schemes for electronic devices | |
US20130185612A1 (en) | Flash memory system and read method of flash memory system | |
US20050204264A1 (en) | Error correction circuit | |
US20070168793A1 (en) | Device and method capable of verifying program operation of non-volatile memory and method card including the same | |
JP2009545783A (ja) | 不揮発性メモリシステム、及びそのデータ読み出し/書き込み制御方法 | |
US8046529B2 (en) | Updating control information in non-volatile memory to control selection of content | |
JP2008251154A (ja) | 不揮発性半導体記憶装置 | |
KR100634432B1 (ko) | 카피백 프로그램 동작 중에 에러를 검출하는 낸드 플래시메모리 장치 및 에러 검출 방법 | |
US20100083073A1 (en) | Data processing apparatus, memory controlling circuit, and memory controlling method | |
KR100632949B1 (ko) | 낸드 플래시 메모리 장치 및 그것의 카피백 프로그램 방법 | |
JP4304167B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4561110B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
TW202143240A (zh) | 半導體儲存裝置以及錯誤檢測糾正相關資訊的讀出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080516 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20100423 |