JP6481691B2 - メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法 - Google Patents
メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法 Download PDFInfo
- Publication number
- JP6481691B2 JP6481691B2 JP2016548608A JP2016548608A JP6481691B2 JP 6481691 B2 JP6481691 B2 JP 6481691B2 JP 2016548608 A JP2016548608 A JP 2016548608A JP 2016548608 A JP2016548608 A JP 2016548608A JP 6481691 B2 JP6481691 B2 JP 6481691B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- verification
- memory
- write
- writing
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0033—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0064—Verifying circuits or methods
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3431—Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
- G11C2013/0076—Write operation performed depending on read result
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
Description
1.第1の実施の形態(複数ページの書込みを連続して行う例)
2.第2の実施の形態(書込み条件を変更する例)
3.第3の実施の形態(検証アドレス情報を使用する例)
4.第4の実施の形態(複数ページの書込みおよび検証を連続して行う例)
5.第5の実施の形態(データバックアップ装置に適用した例)
[情報処理システムの構成]
図1は、本技術の第1の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システムは、ホストコンピュータ100と、メモリコントローラ200と、メモリ300と、信号線109および208とを備える。なお、メモリ300は、特許請求の範囲に記載の不揮発メモリの一例である。
図2は、本技術の第1の実施の形態におけるメモリコントローラの構成例を示す図である。同図のメモリコントローラ200は、プロセッサ210と、RAM220と、ホストインターフェース230と、ECC処理部250と、ROM260と、メモリインターフェース270と、バス装置201とを備える。
図3は、本技術の第1の実施の形態におけるメモリの構成例を示す図である。同図のメモリ300は、制御部310と、作業メモリ320と、メモリコントローラインターフェース330と、アドレスデコーダ340と、メモリセルアレイ350と、バッファ360と、バス装置301とを備える。
本技術の第1の実施の形態における情報処理システムの書込み処理のデータのやり取りについて、ホストコンピュータ100がDRAM120に記憶されているデータをメモリ300に書込む場合を例に挙げて説明する。まず、ホストコンピュータ100が、書込みコマンドを生成し、メモリコントローラ200に対して発行する。このコマンドにはDRAM120における書込みデータの先頭アドレス、書込みデータサイズ(ページ数)およびメモリ300における書込みアドレス(ページアドレス)が含まれている。発行されたコマンドは、メモリコントローラインターフェース130およびホストインターフェース230を介してメモリコントローラ200に入力され、RAM220に記憶される。プロセッサ210は、このコマンドを解釈してデータの書込みを行う。まず、コマンドに基づいてDRAM120から書込みデータを読み出して、RAM220に記憶させる。次に、プロセッサ210は、ECC処理部250に指示を出し、読み出した書込みデータの符号化を行わせる。その後、プロセッサ210は、書込みリクエストを生成してメモリ300に対して発行する。その際に、符号化した書込みデータをメモリ300に対して出力する。最後に、データの書込みが成功したか否かについて検証を行う。
図4は、本技術の第1の実施の形態における機能構成例を示す図である。同図は、データの書込みを行う際の機能構成を想定したものである。メモリコントローラ200は、書込制御部292と、判断部280と、検証書込み部299とを備える。これらの機能は、図2において説明したプロセッサ210が実行するファームウェアにより実現される。なお、書込制御部292は、特許請求の範囲に記載の書込み制御部の一例である。
図5は、本技術の第1の実施の形態における判断部の構成例を示す図である。同図の判断部280は、タイマ部281と、書込みページ数判断部282と、メモリセル安定状態判断部283とを備える。
図6は、本技術の第1の実施の形態における書込み操作を説明する図である。同図を参照して、メモリ300のメモリセルアレイ350における書込み操作について説明する。前述のように、ReRAMでは、メモリセルに対してリセット操作およびセット操作を行うことにより書込が行われる。ここで、ReRAMの記憶素子が低抵抗状態にある場合を値「1」、高抵抗状態にある場合を値「0」に対応させる。これにより、リセット操作によりメモリセルには値「0」が書き込まれ、セット操作によりメモリセルには値「1」が書き込まれることとなる。
事前消去によりメモリセルのデータは全て値「1」となっているため、メモリ300はリセット操作のみを行う。リセット操作用データは、書込みデータに対してビット毎の論理反転演算を行うことにより算出される。この演算を論理式で表すと、次式のようになる。
RData=〜W ・・・式1
ただし、RDataはリセット操作用データを表す。Wは書込みデータ(ページデータ)を表す。〜はビット毎の論理反転を表す演算子である。同図におけるaに書込みデータ、メモリセルのデータおよびリセット操作用データの関係を表した。
メモリ300は、リセット操作およびセット操作を行う。リセット操作用データは、以下の手順により算出される。まず、メモリセルに書き込まれているデータが読み出される。次に、読み出されたデータと書込みデータとについてビット毎の排他的論理和演算が行われる。最後に、この排他的論理和演算の結果と読み出されたデータとについてビット毎の論理積演算が行われる。メモリ300は、得られた演算結果をリセット操作用データとする。これらの演算を論理式で表すと、次式のようになる。
RData=((W^R)&R) ・・・式2
ただし、Rは読み出したデータ(ページデータ)を表す。また、^および&はそれぞれビット毎の排他的論理和演算およびビット毎の論理積演算を表す演算子である。
SData=((W^R)&W) ・・・式3
ただし、SDataはセット操作用データを表す。同図におけるbに書込みデータ、読み出されたデータ、リセット操作用データおよびセット操作用データの関係を表した。
メモリ300はリセット操作のみを行う。リセット操作用データは、式2に基づいて算出される。
この場合は、(b)と同じ操作にすることができる。すなわち、メモリ300は、リセット操作およびセット操作を行う。リセット操作用データおよびセット操作用データは、それぞれ式2および式3に基づいて算出される。
図7は、本技術の第1の実施の形態における書込み処理の処理手順(メモリコントローラ)の一例を示す図である。なお、本技術の第1の実施の形態における書込み処理では、再書込みカウンタおよびオフセットレジスタを使用する。これらは、メモリコントローラ200においてソフトウェアにより実現されるカウンタおよびレジスタである。再書込みカウンタは、書込み処理における再書込みを行った回数を保持するものである。オフセットレジスタは、DRAM120における書込みデータの先頭アドレスからのオフセット値を保持するものである。なお、このオフセット値は、ページ数を単位とする値である。
図8は、本技術の第1の実施の形態における通常書込み処理の処理手順(メモリコントローラ)の一例を示す図である。本処理は、図7において説明したステップS910に対応する処理である。まず、メモリコントローラ200は、書込み設定を行う(ステップS911)。具体的には、書込みコマンドに基づいて、書込みデータの読出し元であるDRAM120の書込みデータの先頭アドレス、書込みデータのページ数および書込み先であるメモリ300におけるページアドレスを設定する。次に、メモリコントローラ200は、オフセットレジスタを初期化する(ステップS912)。その後、メモリコントローラ200は、全てのデータの書込みが終了したか否かを調べる(ステップS916)。具体的には、メモリコントローラ200が、ステップS911において設定した書込みデータのページ数と書込みが終了したページ数、例えば、オフセットレジスタの値とを比較することにより行う。
図9は、本技術の第1の実施の形態における安定状態判断処理の処理手順(メモリコントローラ)の一例を示す図である。本処理は、図7において説明したステップS920に対応する処理である。まず、メモリコントローラ200は、書込みページ数が状態安定化ページ数以上か否かを判断する(ステップS921)。その結果、書込みページ数が状態安定化ページ数以上であった場合には(ステップS921:Yes)、安定状態判断処理を終了する。一方、書込みページ数が状態安定化ページ数未満であった場合には(ステップS921:No)、メモリコントローラ200は、安定化時間が経過しているか否かを判断し(ステップS922)、安定化時間が経過するまで待機する(ステップS922:No)。一方、安定化時間が経過している場合には(ステップS922:Yes)、安定状態判断処理を終了する。なお、メモリコントローラ200は、ステップS921の処理を行った際に、書込みページ数判断部282のカウンタをリセットしてこれに保持された書込みページ数をゼロにする。
図10は、本技術の第1の実施の形態における検証書込み処理の処理手順(メモリコントローラ)の一例を示す図である。本処理は、図7において説明したステップS930に対応する処理である。まず、メモリコントローラ200は、オフセットレジスタを初期化する(ステップS932)。次に、メモリコントローラ200は、全てのデータの検証が終了したか否かを調べる(ステップS936)。その結果、全てのデータの検証が終了していた場合には(ステップS936:Yes)、検証書込み処理を終了する。一方、全てのデータの検証が終了していない場合には(ステップS936:No)、ステップS933からの処理に移行する。
図11は、本技術の第1の実施の形態における書込み処理の処理手順(メモリ)の一例を示す図である。メモリ300は、メモリコントローラ200から書込みリクエストが発行されると、書込み処理を開始する。なお、リクエストに伴う書込みデータは、作業メモリ320に記憶される。まず、メモリ300は、事前消去の有無を調べ(ステップS701)、事前消去がされていない場合は(ステップS701:No)、ステップS702乃至ステップS706の処理を実行する。一方、事前消去がされている場合は(ステップS701:Yes)、メモリ300は、ステップS707およびステップS708の処理を実行する。
図12は、本技術の第1の実施の形態における検証書込み処理の処理手順(メモリ)の一例を示す図である。メモリ300は、メモリコントローラ200から検証書込みリクエストが発行されると、検証書込み処理を開始する。なお、リクエストに伴う比較データは、作業メモリ320に記憶される。まず、メモリ300は、メモリセルからデータ(ページデータ)の読出しを行う(ステップS712)。読み出されたデータは、バッファ360に保持される。次に、メモリ300は、データの比較を行う(ステップS718)。具体的には、メモリ300は、作業メモリ320に記憶された比較データおよびバッファ360に保持されたデータの比較を行う。
図13は、本技術の第1の実施の形態における再書込み処理の処理手順(メモリ)の一例を示す図である。本処理は、図12において説明したステップS720に対応する処理である。すなわち、上述の検証書込み処理から呼び出される処理であるため、バッファ360にはメモリセルから読み出したデータが保持されている。このデータを使用して再書込みを行う。メモリ300は、リセット操作用データの算出を行い(ステップS723)、リセット操作を行う(ステップS724)。本技術の第1の実施の形態では、再書込みの際、事前消去の有無にかかわらずリセット操作を行う。
上述の第1の実施の形態では、図10において説明した検証書込み処理のステップS933において、検証のためのデータを1ページずつホストコンピュータ100のDRAM120から読み出して転送していた。しかし、複数のページデータをまとめて転送してもよい。データ転送時間を短縮することができるためである。そこで、第1の変形例では、検証書込み処理において、DRAM120から複数のページデータをまとめて転送する。これにより、転送された複数ページのデータはメモリコントローラ200のRAM220に記憶され、検証書込みリクエスト発行処理(ステップS934)の際に、1ページずつ読み出されて、検証に使用される。
上述の第1の実施の形態では、図10において説明した検証書込み処理のステップS934において、検証書込みリクエストの発行に伴ってページデータを出力していた。しかし、複数のページデータをまとめて出力し、メモリ300に転送してもよい。第1の変形例と同様、データ転送時間を短縮することができるためである。そこで、第2の変形例では、検証書込み処理において、検証書込みリクエスト発行の際に、複数のページデータをまとめて出力する。これにより、転送された複数のページデータはメモリ300の作業メモリ320に記憶され、メモリ300における検証書込み処理の際に、1ページずつ読み出されて、検証および再書込みに使用される。
上述の第1の実施の形態では、図4における判断部280は、状態安定化ページ数以上の書込みページ数および書込み後の安定化時間の経過の何れかに基づいてメモリセルの状態が安定しているか否かの判断を行っていた。しかし、安定化時間の経過のみに基づいて判断を行ってもよい。判断部280の構成を簡素化することができるためである。そこで、第3の変形例では、書込みページ数判断部282を省略し、タイマ部281による安定化時間の経過のみに基づいて判断を行う。
上述の第1の実施の形態では、図4における判断部280は、状態安定化ページ数以上の書込みページ数および書込み後の安定化時間の経過の何れかに基づいてメモリセルの状態が安定しているか否かの判断を行っていた。しかし、判断部280は、書込制御部292における複数ページからなるデータの書込みが連続して行われ、この書込みが行われた順に検証書込み部299において検証が行われた後には、メモリセルの状態が安定していると判断してもよい。ページデータサイズが大きく処理に時間がかかる場合等には、複数ページからなるデータの書込みにより、所定の安定化時間の経過が担保されるためである。そこで、書込みページ数判断部282は、複数ページからなる書込みであるか否かに基づいて判断を行う。これにより、判断部280の構成を簡素化することができる。
上述の第1の実施の形態では、事前消去されている場合の再書込み処理においてリセット操作のみを行っていたが、事前消去されている場合であってもリセット操作およびセット操作により再書込みを行ってもよい。リセット操作によりライトディスターブ現象が発生した場合であっても、セット操作を行うことによりメモリセルに書込まれたデータの反転を防ぐことができる。なお、ライトディスターブ現象とは、メモリセルに書込みを行った際に、近隣のメモリセルに記憶されたデータが書き換えられる現象である。そこで、事前消去されている場合であってもリセット操作およびセット操作により再書込みを行う。これにより、データの書込みの信頼性を向上させることができる。
(a')書込み操作(事前消去あり)の場合
メモリ300はリセット操作のみを行う。リセット操作用データは、式1に基づいて算出される。すなわち、前述した(a)と同じ操作にすることができる。
(b')書込み操作(事前消去なし)の場合
メモリ300は、リセット操作およびセット操作を行う。リセット操作用データおよびセット操作用データは、それぞれ式2および式3に基づいて算出される。すなわち、前述した(b)と同じ操作にすることができる。
(c')再書込み操作(事前消去あり)の場合
この場合は、(b')と同じ操作にすることができる。
(d')再書込み操作(事前消去なし)の場合
この場合も、(b')と同じ操作にすることができる。
図14は、本技術の第1の実施の形態の変形例における再書込み処理の処理手順(メモリ)の一例を示す図である。第5の変形例では、事前消去の有無にかかわらずリセット操作およびセット操作を行うため、図13において説明した再書込み処理と比較して処理が簡素化される。まず、メモリ300は、リセット操作用データを算出し(ステップS723)、リセット操作を行う(ステップS724)。次に、メモリ300は、セット操作用データを算出し(ステップS725)、セット操作を行う(ステップS726)。次に、メモリ300は、再書込み処理の結果として、書込みを行ったページ数をメモリコントローラ200に対して出力し(ステップS729)、再書込み処理を終了する。
上述の第1の実施の形態では、不揮発性メモリとして、ReRAMを想定していたが、データの書込みの直後に読出しを行うと書き込まれたデータが破壊されるPCRAMであってもよい。PCRAMにおいても、複数ページからなるデータの書込みを行った後に、メモリセルの状態が安定しているか否かの判断を行って、検証を行うことにより、正確な書込みデータの検証が可能になる。これにより、書込み信頼性を向上させることができる。
PCRAMは、データの書込みの際に、メモリセルのデータを読み出すことなくリセット操作用データおよびセット操作用データを生成することができる。そのため、処理が簡素化される。なお、本技術の第1の実施の形態の第6の変形例では、事前消去は行われないものと想定する。これにより、書込み処理および再書込み処理は同一の処理となり、図14において説明した処理と同様の処理手順となる。ステップS723において、メモリコントローラ200は、リセット操作用データを算出する。これは、式1に基づいて算出される。ステップS725において、メモリコントローラ200は、セット操作用データを算出する。これは、次式に基づいて算出される。
SData=W
これ以外の処理手順は、図14における処理手順と同様であるため説明を省略する。なお、PCRAMにおいても、ReRAMと同様に、メモリセルのデータの読み出しを行い、これを参照してリセット操作用データおよびセット操作用データを生成してもよい。この場合のリセット操作用データおよびセット操作用データの生成は、前述したReRAMにおけるこれらのデータの生成と同様にすることができる。
上述の第1の実施の形態では、メモリコントローラ200が、書込み制御部292と、判断部280と、検証書込み部299とを備えていたが、メモリ300がこれらを備えてもよい。メモリコントローラ200の処理を簡素化できるからである。この場合、メモリコントローラ200は、メモリ300に対して、書込みリクエストのみを発行する。そして、メモリ300が、このリクエストに基づいて書込み、判断および検証書込みの処理を行う。
上述の第1の実施の形態では、再書込みを行う際、記憶素子に印加する書込み電圧等を変更せずに書込みを行っていた。これに対し本技術の第2の実施の形態では、再書込みの際に、書込み条件を変更する。これにより、書込みの信頼性を向上させる。
図15は、本技術の第2の実施の形態における機能構成例を示す図である。同図のメモリコントローラ200は、書込み条件設定部294を備える。この書込み条件設定部はメモリ300に対して書込み条件を設定するものである。ここで、書込み条件とは、メモリセルにデータを書き込む際の条件である。書込み条件の設定は、メモリ300に対して書込み条件設定リクエストを発行することにより行われる。メモリ300は、この書込み条件設定リクエストに基づく書込み条件を保持し、書込みの際に適用する。これ以外の構成は、図4において説明したメモリコントローラ200およびメモリ300と同様であるため、説明を省略する。
ReRAMにおける書込み条件としては、メモリセルの記憶素子に印加する書込み電圧とそのパルス幅およびパルス数、メモリセルに流す電流ならびに読出し電圧および読出しの際の参照電圧が挙げられる。本技術の第2の実施の形態のメモリコントローラ200は、既定の書込み条件をメモリ300に設定して通常書込みを行い、再書込みの際には書込み条件を変更する。例えば、書込み電圧を変更して再書込みを行う。
図16は、本技術の第2の実施の形態における書込み処理の処理手順(メモリコントローラ)の一例を示す図である。ホストコンピュータ100から書込みコマンドが発行されると、メモリコントローラ200は、書込み処理を開始する。まず、メモリコントローラ200は、書込み条件設定リクエストの発行を行う(ステップS951)。これにより、既定の書込み条件がメモリ300に設定される。次に、メモリコントローラ200は、コマンドを解釈して通常書込みを行う(ステップS960)。次に、メモリコントローラ200は、安定状態判断処理を行う(ステップS970)。その後、メモリコントローラ200は、後続する検証書込み処理に先立ち、書込み条件を変更し(ステップS957)、変更した条件に基づく書込み条件設定リクエストを発行する(ステップS958)。次に、メモリコントローラ200は、再書込みカウンタを初期化し(ステップS959)、検証書込みを行う(ステップS980)。その後、再書込みカウンタの値が「0」の場合は(ステップS954:Yes)、メモリコントローラ200は、ホストコンピュータ100に対して書込み処理が正常に終了したことを通知し、書込み処理を終了する。
上述の第1の実施の形態では、再書込みの際、書込み処理の対象となった全てのメモリセルに対して検証を行うため、長い処理時間を要していた。これに対し、本技術の第3の実施の形態では、検証が必要なページのページアドレスを保持して検証を行い、不必要な検証を抑制することにより、書込み処理を高速化する。
図17は、本技術の第3の実施の形態における機能構成例を示す図である。同図のメモリコントローラ200は、検証アドレス情報保持部295を備える。この検証アドレス情報保持部295は、検証アドレス情報を保持するものである。ここで、検証アドレス情報とは、検証を行うメモリ300におけるページのページアドレスの情報である。書込制御部292は、書込みを行った際に書込みを行ったページアドレスの情報を検証アドレス情報として検証アドレス情報保持部295に保持させる。同様に、検証書込み部299は、再書込みを行った際に再書込みを行ったページアドレスの情報を検証アドレス情報として検証アドレス情報保持部295に保持させる。また、検証書込み部299は、検証アドレス情報保持部295に保持された検証アドレス情報に基づいて検証を行う。これ以外の構成は、図4において説明したメモリコントローラ200およびメモリ300と同様であるため、説明を省略する。
図18は、本技術の第3の実施の形態における書込み処理の処理手順(メモリコントローラ)の一例を示す図である。ホストコンピュータ100から書込みコマンドが発行されると、メモリコントローラ200は、書込み処理を開始する。まず、メモリコントローラ200は、通常書込みを行う(ステップS810)。次に、メモリコントローラ200は、検証アドレス情報の保持を行う(ステップS801)。この場合、書込み対象となった全てのページのページアドレスが検証アドレス情報として、検証アドレス情報保持部295に保持される。なお、第3の実施の形態においても、前述した第1の実施の形態と同様の、メモリ300におけるページアドレスの指定方式を採用している。すなわち、ホストコンピュータ100が出力した書込みコマンドに含まれるメモリ300における書込みアドレスにオフセットレジスタの値を加算した値をメモリ300における書込みアドレス(ページアドレス)としている。このため、検証アドレス保持部295に保持される検証アドレス情報として、オフセットレジスタの値が使用される。
図19は、本技術の第3の実施の形態における検証書込み処理の処理手順(メモリコントローラ)の一例を示す図である。本処理は、図18において説明したステップS830に対応する処理である。まず、メモリコントローラ200は、全てのデータの検証が終了したか否かを調べる(ステップS836)。その結果、全てのデータの検証が終了していた場合には(ステップS836:Yes)、検証書込み処理を終了する。一方、全てのデータの検証が終了していない場合には(ステップS836:No)、ステップS831からの検証書込みループの処理に移行する。メモリコントローラ200は、検証アドレス情報保持部295から検証アドレス情報(オフセットレジスタの値)を取得する(ステップS831)。次に、メモリコントローラ200は、この検証アドレス情報に基づいてホストコンピュータ100から書込みデータを取得する(ステップS833)。また、メモリコントローラ200は、検証アドレス情報に基づいてメモリ300における検証先ページアドレスを特定し、検証書込みリクエストを生成して発行する(ステップS834)。
上述の第1の実施の形態では、通常書込みは連続して行うものの、検証と再書込みとは交互に行うため、リクエストの生成が煩雑となる問題があった。このため、検証リクエストと書込みリクエストを統合した検証書込みリクエストを使用していた。しかし、その一方で、メモリ300におけるリクエストの処理が複雑なものになっていた。これに対し、本技術の第4の実施の形態では、検証および再書込みも連続して行う。これにより、リクエストの生成を容易なものにする。
図20は、本技術の第4の実施の形態における機能構成例を示す図である。同図のメモリコントローラ200は、書込制御部291と、判断部280と、検証部293と、再書込アドレス情報保持部296とを備える。
図21は、本技術の第4の実施の形態における書込み処理の処理手順(メモリコントローラ)の一例を示す図である。ホストコンピュータ100から書込みコマンドが発行されると、メモリコントローラ200は、書込み処理を開始する。まず、メモリコントローラ200は、コマンドを解釈して通常書込みを行う(ステップS860)。次に、メモリコントローラ200は、安定状態判断処理を行う(ステップS870)。次に、メモリコントローラ200は、再書込みカウンタを初期化し(ステップS859)、検証を行い(ステップS880)、再書込みを行う(ステップS890)。その後、再書込みカウンタの値が「0」の場合は(ステップS854:Yes)、メモリコントローラ200は、ホストコンピュータ100に対して書込み処理が正常に終了したことを通知し、書込み処理を終了する。
図22は、本技術の第4の実施の形態における検証処理の処理手順(メモリコントローラ)の一例を示す図である。本処理は、図21において説明したステップS880に対応する処理である。まず、メモリコントローラ200は、オフセットレジスタおよび再書込アドレス情報保持部296を初期化する(ステップS882)。次に、メモリコントローラ200は、全てのデータの検証が終了したか否かを調べる(ステップS886)。その結果、全てのデータの検証が終了していた場合には(ステップS886:Yes)、検証処理を終了する。一方、全てのデータの検証が終了していない場合には(ステップS886:No)、ステップS883からの処理に移行する。メモリコントローラ200は、ホストコンピュータ100から書込みデータを取得する(ステップS883)。次に、メモリコントローラ200は、ステップS883において取得した書込みデータを比較データとして検証リクエストを生成し、発行する(ステップS884)。
図23は、本技術の第4の実施の形態における再書込み処理の処理手順(メモリコントローラ)の一例を示す図である。本処理は、図21において説明したステップS890に対応する処理である。まず、メモリコントローラ200は、オフセットレジスタを初期化する(ステップS892)。次に、メモリコントローラ200は、全てのデータの再書込みが終了したか否かを調べる(ステップS896)。その結果、全てのデータの再書込みが終了していた場合には(ステップS896:Yes)、再書込み処理を終了する。
図24は、本技術の第4の実施の形態における検証処理の処理手順(メモリ)の一例を示す図である。メモリ300は、メモリコントローラ200から検証のリクエストが発行されると、検証処理を開始する。なお、リクエストに伴う比較データは、作業メモリ320に記憶される。まず、メモリ300は、メモリセルからデータの読出しを行う(ステップS732)。読み出されたデータは、バッファ360に保持される。次に、メモリ300は、データの比較を行う(ステップS738)。具体的には、メモリ300は、作業メモリ320に記憶された比較データおよびバッファ360に保持されたデータの比較を行う。その結果をメモリコントローラ200に対して出力し(ステップS739)、検証処理を終了する。
図25は、本技術の第4の実施の形態における再書込み処理の処理手順(メモリ)の一例を示す図である。メモリ300は、メモリコントローラ200から再書込みのリクエストが発行されると、再書込み処理を開始する。まず、メモリコントローラ200は、メモリセルからデータの読出しを行う(ステップS742)。図13において説明した再書込み処理とは異なり、バッファ360には、データが保持されていないため、この読出し処理が必要となる。次に、メモリ300は、リセット操作用データの算出を行い(ステップS743)、リセット操作を行う(ステップS744)。
上述の第4の実施の形態では、事前消去がある場合の再書込み処理においてリセット操作のみを行っていたが、事前消去がある場合であってもリセット操作およびセット操作により再書込みを行ってもよい。前述の第1の実施の形態の第5の変形例と同様に、ライトディスターブ現象が発生した場合であっても、メモリセルに書込まれたデータの反転を防いで、データの書込みの信頼性を向上させることができるためである。書込みおよび再書込みの操作は、前述の第1の実施の形態の第5の変形例において説明した(a')〜(d')と同様であるため説明を省略する。
図26は、本技術の第4の実施の形態の第1の変形例における再書込み処理の処理手順(メモリ)の一例を示す図である。まず、メモリ300は、メモリセルからページデータの読出しを行う(ステップS692)。次に、メモリ300は、リセット操作用データを算出し(ステップS693)、リセット操作を行う(ステップS694)。次に、メモリ300は、セット操作用データを算出し(ステップS695)、セット操作を行う(ステップS696)。次に、メモリ300は、再書込み処理の結果として、書込みを行ったページ数をメモリコントローラ200に対して出力し(ステップS699)、再書込み処理を終了する。
上述の第4の実施の形態では、図22において説明した検証処理のステップS889において、全ての検証リクエストの結果を再書込みアドレス情報として再書込アドレス情報保持部296に保持させていた。しかし、検証リクエストの結果が不一致となったページのページアドレスをアドレス情報として保持させてもよい。後続の再書込み処理において、再書込みが必要なページのページアドレスが特定されて、処理が簡略化されるためである。
図27は、本技術の第4の実施の形態の第2の変形例における検証処理の処理手順(メモリコントローラ)の一例を示す図である。本処理は、図21において説明したステップS880に対応する処理である。ステップS885において、メモリコントローラ200は、メモリ300から返されたリクエストの結果を調べる。この結果が一致でなかった場合(ステップS885:No)、メモリコントローラ200は、検証リクエストに係るページのページアドレスを再書込アドレス情報保持部296に保持させる(ステップS889)。その後、ステップS888の処理に移行する。一方、メモリ300から返されたリクエストの結果が一致であった場合(ステップS885:Yes)、メモリコントローラ200は、ステップS889の処理をスキップしてステップS888の処理に移行する。これにより、検証リクエストの結果が不一致となったページのページアドレスのみを検証結果として再書込みアドレス情報に保持させることができる。ステップS888において、メモリコントローラ200は、オフセットレジスタを更新し(ステップS888)、ステップS886の処理に戻る。これ以外は、図22において説明した処理手順と同様であるため説明を省略する。
図28は、本技術の第4の実施の形態の第2の変形例における再書込み処理の処理手順(メモリコントローラ)の一例を示す図である。本処理は、図21において説明したステップS890に対応する処理である。また、本処理は、図23において説明した処理手順のうちステップS892、ステップS895およびステップS898の処理を削除したものである。これにより、メモリコントローラ200は、再書込みが必要なページを特定して再書込みを行う。これ以外は、図21において説明した処理手順と同様であるため、説明を省略する。
上述の第4の実施の形態では、図22において説明した検証処理において、書込み処理の対象となる全てのページについて検証を行っていた。しかし、第3の実施の形態において説明した検証アドレス情報保持部295を使用して、検証が必要なページのみ検証を行ってもよい。検証の処理が簡略化されるためである。
図29は、本技術の第4の実施の形態の第3の変形例における機能構成例を示す図である。同図のメモリコントローラ200は、検証アドレス情報保持部295を備える。これ以外の構成は図20において説明した機能構成例と同様であるため説明を省略する。
図30は、本技術の第4の実施の形態の第3の変形例における書込み処理の処理手順(メモリコントローラ)の一例を示す図である。本処理は、図21において説明した処理手順に対して、ステップS801の処理をステップS810とステップS820との間に追加したものである。これ以外は図21において説明した処理手順と同様であるため説明を省略する。
図31は、本技術の第4の実施の形態の第3の変形例における検証処理の処理手順(メモリコントローラ)の一例を示す図である。本処理は、図21において説明したステップS880に対応する処理である。ステップS882において、メモリコントローラ200は、再書込アドレス情報保持部296の初期化のみを行う。ステップS881において、メモリコントローラ200は、検証アドレス情報保持部295から検証アドレス情報を取得する(ステップS881)。ステップS885において、メモリコントローラ200は、メモリ300から返されたリクエストの結果を調べる。この結果が一致でなかった場合(ステップS885:No)、メモリコントローラ200は、検証リクエストに係るページのページアドレスを再書込アドレス情報保持部296に保持させる(ステップS889)。その後、ステップS886の処理に移行する。一方、メモリ300から返されたリクエストの結果が一致であった場合(ステップS885:Yes)、メモリコントローラ200は、ステップS889の処理をスキップしてステップS886の処理に移行する。これにより、検証が必要なページを特定して検証を行い、検証リクエストの結果が不一致となったページのページアドレスのみを検証結果として再書込アドレス情報保持部296に保持させることができる。なお、ステップS888の処理は不要であるため、削除している。これ以外は、図22において説明した処理手順と同様であるため説明を省略する。
図32は、本技術の第4の実施の形態の第3の変形例における再書込み処理の処理手順(メモリコントローラ)の一例を示す図である。本処理は、図21において説明したステップS890に対応する処理である。また、本処理は、図23において説明した処理手順のうちステップS892、ステップS895およびステップS898の処理を削除し、ステップS897の後にステップS899の処理を追加したものである。これにより、メモリコントローラ200は、再書込みが必要なページを特定して再書込みを行うとともに、再書込みを行ったページのページアドレスを検証アドレス情報保持部295に保持させる。これ以外は、図21において説明した処理手順と同様であるため、説明を省略する。
上述の第4の実施の形態では、メモリコントローラ200が、書込み制御部291と、判断部280と、検証部293と、再書込みアドレス情報保持部296とを備えていたが、メモリ300がこれらを備えてもよい。メモリコントローラ200の処理を簡素化できるからである。この場合、メモリコントローラ200は、メモリ300に対して、書込みリクエストのみを発行する。そして、メモリ300が、このリクエストに基づいて書込み、判断および検証の処理を行う。
上述の第1の実施の形態の情報処理システムは、データバックアップ機能を備えていなかった。これに対し、本技術の第5の実施の形態の情報処理システムでは、データバックアップ機能を備え、電源異常が生じた際に、データのバックアップを行う。
図33は、本技術の第5の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システムは、データバックアップ機能を備えた情報処理システムの例である。同図の情報処理システムは、ホストコンピュータ100と、メモリコントローラ200と、メモリ300と、信号線109および208と、電源電圧監視部107とを備える。電源電圧監視部107は、情報システムに供給される電源の電圧を監視するものである。この電源電圧監視部107は、停電等の電源異常により電源の電圧が低下した場合に、メモリコントローラ200に対して電源電圧低下の情報を出力する。なお、同図の情報処理システムは、電池またはスーパーキャパシタ等のバックアップ用電源を備えている(不図示)。このバックアップ用電源から給電することにより、電源異常となった場合であっても、情報処理システムは、短時間ながら動作可能である。この間に、メモリコントローラ200は、ホストコンピュータに保持されているデータをメモリ300に退避させる。
図34は、本技術の第5の実施の形態におけるメモリコントローラの構成例を示す図である。同図のメモリコントローラ200は、ホストインターフェース230の代わりにDRAMインターフェース240を備え、また、入力ポート290を備える点で図2において説明したメモリコントローラ200と異なる。DRAMインターフェース240は、ホストコンピュータ100のDRAM120とのやり取りを行うインターフェースである。入力ポート290は、電源電圧監視部107の出力が接続される入力ポートである。この入力ポート290には、電源電圧監視部107による電源電圧低下の情報が入力される。これ以外のメモリコントローラ200の構成は、図2において説明したメモリコントローラ200と同様であるため説明を省略する。また、メモリ300の構成も、図3において説明したメモリ300と同様であるため説明を省略する。
図35は、本技術の第5の実施の形態における機能構成例を示す図である。同図は、データの書込みを行う際の機能構成を想定したものである。同図のメモリコントローラ200は、DRAM制御部297およびアドレス変換情報保持部298を備える点で図17において説明したメモリコントローラ200と異なる。
電源電圧監視部107から電源電圧低下の情報が入力されると、DRAM制御部297は、DRAM120にアクセスしてDRAM120に記憶されている全データを出力させる。書込制御部292は、リクエストを生成してこのデータを書込みデータとしてメモリ300に出力する。その後、書込みデータは、メモリ300のメモリセルアレイ350に記憶される。そのため、メモリ300の記憶容量は、DRAM120の記憶容量以上にする必要がある。データの書込み後に、検証書込み部299による検証およびこの結果に基づく再書込みが行われる。この際、再書込みが必要なDRAM120のデータに対してDRAM120内においてデータの移動を行う。
図36は、DRAMにおけるデータの移動を説明する図である。同図は、10個の記憶領域を有するDRAM120の例であり、紙面に向かって左側がデータ移動前の状態を右側がデータ移動後の状態をそれぞれ表している。同図におけるaのDRAM120は、2個のDRAMにより構成され、それぞれのDRAMは5個の記憶領域を有し、上位アドレスおよび下位アドレスに配置されている。これらはそれぞれ第1の領域および第2の領域として表されている。
図37は、本技術の第5の実施の形態における書込み処理の処理手順(メモリコントローラ)の一例を示す図である。電源電圧監視部107から電源電圧低下の情報が入力されると、メモリコントローラ200は、制御信号を切替部150に出力する。これにより、切替部150は、DRAM120をメモリコントローラ200に接続する。その後、メモリコントローラ200は、書込み処理を開始する。まず、メモリコントローラ200は、DRAM120の全ページデータに対して通常書込みを行う(ステップS760)。次に、メモリコントローラ200は、検証アドレス情報の保持を行う(ステップS751)。本技術の第5の実施の形態では、書込み対象となった全てのページのページアドレスが検証アドレス情報として、検証アドレス情報保持部295に保持される。次に、メモリコントローラ200は、既にメモリ300に対する再書込みが行われているか否かを調べ(ステップS752)、再書込みが行われていた場合には(ステップS752:Yes)、データの移動を行う(ステップS790)。
図38は、本技術の第5の実施の形態におけるデータ移動処理の処理手順(メモリコントローラ)の一例を示す図である。本処理は、図37において説明したステップS790に対応する処理である。まず、メモリコントローラ200は、データが移動済みであるか否かを調べ(ステップS791)、移動済みである場合は(ステップS791:Yes)、以降の処理をスキップしてデータ移動処理を終了する。一方、移動済みでない場合は(ステップS791:No)、次回の検証を行うデータ量の算出を行う(ステップS792)。この算出したデータ量が閾値以下でない場合(ステップS793:No)、メモリコントローラ200は、以降の処理をスキップしてデータ移動処理を終了する。
(1)データの書込み後に状態が不安定な期間が存在するメモリセルからなる不揮発メモリにおいてデータの書込み後の前記メモリセルの状態が安定しているか否かの判断を行う判断部と、
前記判断の結果に基づいて前記データが書き込まれた前記メモリセルから読み出した読出しデータと前記書込みに係る書込みデータとを比較して検証する検証部と、
前記データの書込みと前記検証の結果に基づく前記書込みデータの再書込みとを行う書込み制御部と
を具備するメモリコントローラ。
(2)前記不揮発メモリは、前記データの書込みの直後に読出しを行うと前記書き込まれたデータが破壊される前記(1)に記載のメモリコントローラ。
(3)前記不揮発メモリは、前記データの書込みの直後には書込まれたデータが正常に読み出されない前記(1)に記載のメモリコントローラ。
(4)前記判断部は、前記データの書込み後の所定の安定化時間の経過に基づいて前記判断を行う前記(1)から(3)のいずれかに記載のメモリコントローラ。
(5)前記不揮発メモリは、ページアドレスによりページ単位でアクセスされ、
前記書込み制御部は、複数ページからなるデータの書込みを連続して行い、
前記検証部は、前記データの書込みが行われた順にページ単位で前記検証を行い、
前記判断部は、前記検証の際には前記メモリセルの状態が安定していると判断する
前記(1)から(3)のいずれかに記載のメモリコントローラ。
(6)前記再書込みを行う前記不揮発メモリのページアドレスの情報である再書込みアドレス情報を保持する再書込みアドレス情報保持部をさらに具備し、
前記検証部は、前記複数ページからなるデータの書込み後に前記検証を連続して行って当該検証の結果に基づく前記再書込みアドレス情報を前記再書込みアドレス情報保持部に保持させ、
前記書込み制御部は、前記保持された前記再書込みアドレス情報に基づいて前記再書込みを行う
前記(5)に記載のメモリコントローラ。
(7)前記検証を行う前記不揮発メモリのページアドレスの情報である検証アドレス情報を保持する検証アドレス情報保持部をさらに具備し、
前記書込み制御部は、前記書込みおよび前記再書込みを行った際に前記書込みおよび前記再書込みを行ったページアドレスの情報を前記検証アドレス情報として前記検証アドレス情報保持部に保持させ、
前記検証部は、前記保持された前記検証アドレス情報に基づいて前記検証を行う
前記(5)に記載のメモリコントローラ。
(8)前記不揮発メモリは、ページアドレスによりページ単位でアクセスされ、
前記書込み制御部は、複数ページからなるデータの書込みを連続して行い、
前記検証部は、前記データの書込みが行われた順にページ単位で前記検証を行い、
前記判断部は、前記書込みデータのページ数が前記不揮発メモリにおけるデータの書込み後の所定の安定化時間に相当する書込み時間となるページ数である状態安定化ページ数以上の場合には前記検証の際に前記メモリセルの状態が安定していると判断し、前記書込みデータのページ数が前記状態安定化ページ数未満の場合には前記所定の安定化時間の経過を待って前記メモリセルの状態が安定していると判断する
前記(1)から(3)のいずれかに記載のメモリコントローラ。
(9)データの書込み後に状態が不安定な期間が存在するメモリセルからなる不揮発メモリにおいてデータの書込みを行う書込み制御部と、
前記データの書込み後の前記メモリセルの状態が安定しているか否かの判断を行う判断部と、
前記判断の結果に基づいて前記データが書き込まれた前記メモリセルから読み出した読出しデータと前記書込みに係る書込みデータとを比較する検証と前記検証の結果に基づく前記書込みデータの再書込みとを行う検証書込み部と
を具備するメモリコントローラ。
(10)データの書込み後に状態が不安定な期間が存在するメモリセルからなる不揮発メモリと、
前記不揮発メモリにおいてデータの書込み後の前記メモリセルの状態が安定しているか否かの判断を行う判断部と、
前記判断の結果に基づいて前記データが書き込まれた前記メモリセルから読み出した読出しデータと前記書込みに係る書込みデータとを比較して検証する検証部と、
前記データの書込みと前記検証の結果に基づく前記書込みデータの再書込みとを行う書込み制御部と
を具備する記憶装置。
(11)データの書込み後に状態が不安定な期間が存在するメモリセルからなる不揮発メモリと、
前記不揮発メモリを制御するメモリコントローラと、
前記メモリコントローラを介して前記不揮発メモリにアクセスするホストコンピュータと
を具備し、
前記メモリコントローラは、
前記不揮発メモリにおいてデータの書込み後の前記メモリセルの状態が安定しているか否かの判断を行う判断部と、
前記判断の結果に基づいて前記データが書き込まれた前記メモリセルから読み出した読出しデータと前記書込みに係る書込みデータとを比較して検証する検証部と、
前記データの書込みと前記比較の結果に基づく前記書込みデータの再書込みとを行う書込み制御部とを備える
情報処理システム。
(12)データの書込み後に状態が不安定な期間が存在するメモリセルからなる不揮発メモリにおいてデータの書込み後の前記メモリセルの状態が安定しているか否かの判断を行う判断手順と、
前記判断の結果に基づいて前記データが書き込まれた前記メモリセルから読み出した読出しデータと前記書込みに係る書込みデータとを比較して検証する検証手順と、
前記データの書込みと前記比較の結果に基づく前記書込みデータの再書込みとを行う書込み制御手順と
を具備する不揮発メモリの制御方法。
101、201、301 バス装置
107 電源電圧監視部
109、208 信号線
110 プロセッサ
120 DRAM
130、330 メモリコントローラインターフェース
150 切替部
200 メモリコントローラ
210 プロセッサ
220 RAM
230 ホストインターフェース
240 DRAMインターフェース
250 ECC処理部
260 ROM
270 メモリインターフェース
280 判断部
281 タイマ部
282 書込みページ数判断部
283 メモリセル安定状態判断部
290 入力ポート
291、292 書込制御部
293 検証部
294 書込み条件設定部
295 検証アドレス情報保持部
296 再書込アドレス情報保持部
297 DRAM制御部
298 アドレス変換情報保持部
299 検証書込み部
300 メモリ
310 制御部
320 作業メモリ
340 アドレスデコーダ
350 メモリセルアレイ
360 バッファ
Claims (10)
- データの書込み後に状態が不安定な期間が存在するメモリセルからなる不揮発メモリにおいてデータの書込み後の前記メモリセルの状態が安定しているか否かの判断を行う判断部と、
前記判断の結果に基づいて前記データが書き込まれた前記メモリセルから読み出した読出しデータと前記書込みに係る書込みデータとを比較して検証する検証部と、
前記データの書込みと前記検証の結果に基づく前記書込みデータの再書込みとを行う書込み制御部と
を具備し、
前記不揮発メモリは、ページアドレスによりページ単位でアクセスされ、
前記書込み制御部は、複数ページからなるデータの書込みを連続して行い、
前記検証部は、前記データの書込みが行われた順にページ単位で前記検証を行い、
前記判断部は、前記検証の際には前記メモリセルの状態が安定していると判断する
メモリコントローラ。 - 前記不揮発メモリは、前記データの書込みの直後に読出しを行うと前記書き込まれたデータが破壊される請求項1記載のメモリコントローラ。
- 前記不揮発メモリは、前記データの書込みの直後には書込まれたデータが正常に読み出されない請求項1記載のメモリコントローラ。
- 前記判断部は、前記データの書込み後の所定の安定化時間の経過に基づいて前記判断を行う請求項1記載のメモリコントローラ。
- 前記再書込みを行う前記不揮発メモリのページアドレスの情報である再書込みアドレス情報を保持する再書込みアドレス情報保持部をさらに具備し、
前記検証部は、前記複数ページからなるデータの書込み後に前記検証を連続して行って当該検証の結果に基づく前記再書込みアドレス情報を前記再書込みアドレス情報保持部に保持させ、
前記書込み制御部は、前記保持された前記再書込みアドレス情報に基づいて前記再書込みを行う
請求項1記載のメモリコントローラ。 - 前記検証を行う前記不揮発メモリのページアドレスの情報である検証アドレス情報を保持する検証アドレス情報保持部をさらに具備し、
前記書込み制御部は、前記書込みおよび前記再書込みを行った際に前記書込みおよび前記再書込みを行ったページアドレスの情報を前記検証アドレス情報として前記検証アドレス情報保持部に保持させ、
前記検証部は、前記保持された前記検証アドレス情報に基づいて前記検証を行う
請求項1記載のメモリコントローラ。 - データの書込み後に状態が不安定な期間が存在するメモリセルからなる不揮発メモリにおいてデータの書込み後の前記メモリセルの状態が安定しているか否かの判断を行う判断部と、
前記判断の結果に基づいて前記データが書き込まれた前記メモリセルから読み出した読出しデータと前記書込みに係る書込みデータとを比較して検証する検証部と、
前記データの書込みと前記検証の結果に基づく前記書込みデータの再書込みとを行う書込み制御部と
を具備し、
前記不揮発メモリは、ページアドレスによりページ単位でアクセスされ、
前記書込み制御部は、複数ページからなるデータの書込みを連続して行い、
前記検証部は、前記データの書込みが行われた順にページ単位で前記検証を行い、
前記判断部は、前記書込みデータのページ数が前記不揮発メモリにおけるデータの書込み後の所定の安定化時間に相当する書込み時間となるページ数である状態安定化ページ数以上の場合には前記検証の際に前記メモリセルの状態が安定していると判断し、前記書込みデータのページ数が前記状態安定化ページ数未満の場合には前記所定の安定化時間の経過を待って前記メモリセルの状態が安定していると判断する
メモリコントローラ。 - データの書込み後に状態が不安定な期間が存在するメモリセルからなる不揮発メモリと、
前記不揮発メモリにおいてデータの書込み後の前記メモリセルの状態が安定しているか否かの判断を行う判断部と、
前記判断の結果に基づいて前記データが書き込まれた前記メモリセルから読み出した読出しデータと前記書込みに係る書込みデータとを比較して検証する検証部と、
前記データの書込みと前記検証の結果に基づく前記書込みデータの再書込みとを行う書込み制御部と
を具備し、
前記不揮発メモリは、ページアドレスによりページ単位でアクセスされ、
前記書込み制御部は、複数ページからなるデータの書込みを連続して行い、
前記検証部は、前記データの書込みが行われた順にページ単位で前記検証を行い、
前記判断部は、前記検証の際には前記メモリセルの状態が安定していると判断する
記憶装置。 - データの書込み後に状態が不安定な期間が存在するメモリセルからなる不揮発メモリと、
前記不揮発メモリを制御するメモリコントローラと、
前記メモリコントローラを介して前記不揮発メモリにアクセスするホストコンピュータと
を具備し、
前記メモリコントローラは、
前記不揮発メモリにおいてデータの書込み後の前記メモリセルの状態が安定しているか否かの判断を行う判断部と、
前記判断の結果に基づいて前記データが書き込まれた前記メモリセルから読み出した読出しデータと前記書込みに係る書込みデータとを比較して検証する検証部と、
前記データの書込みと前記比較の結果に基づく前記書込みデータの再書込みとを行う書込み制御部とを備え、
前記不揮発メモリは、ページアドレスによりページ単位でアクセスされ、
前記書込み制御部は、複数ページからなるデータの書込みを連続して行い、
前記検証部は、前記データの書込みが行われた順にページ単位で前記検証を行い、
前記判断部は、前記検証の際には前記メモリセルの状態が安定していると判断する
情報処理システム。 - データの書込み後に状態が不安定な期間が存在するメモリセルからなる不揮発メモリにおいてデータの書込み後の前記メモリセルの状態が安定しているか否かの判断を行う判断手順と、
前記判断の結果に基づいて前記データが書き込まれた前記メモリセルから読み出した読出しデータと前記書込みに係る書込みデータとを比較して検証する検証手順と、
前記データの書込みと前記比較の結果に基づく前記書込みデータの再書込みとを行う書込み制御手順と
を具備し、
前記不揮発メモリは、ページアドレスによりページ単位でアクセスされ、
前記書込み制御手順において、複数ページからなるデータの書込みを連続して行い、
前記検証手順において、前記データの書込みが行われた順にページ単位で前記検証を行い、
前記判断手順において、前記検証の際には前記メモリセルの状態が安定していると判断する
不揮発メモリの制御方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014187692 | 2014-09-16 | ||
JP2014187692 | 2014-09-16 | ||
PCT/JP2015/070094 WO2016042902A1 (ja) | 2014-09-16 | 2015-07-14 | メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2016042902A1 JPWO2016042902A1 (ja) | 2017-06-29 |
JP6481691B2 true JP6481691B2 (ja) | 2019-03-13 |
Family
ID=55532947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016548608A Expired - Fee Related JP6481691B2 (ja) | 2014-09-16 | 2015-07-14 | メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10310742B2 (ja) |
JP (1) | JP6481691B2 (ja) |
WO (1) | WO2016042902A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6612392B1 (ja) * | 2018-06-08 | 2019-11-27 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
KR20210076497A (ko) * | 2019-12-16 | 2021-06-24 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
CN113296682B (zh) * | 2020-02-24 | 2023-06-06 | 北汽福田汽车股份有限公司 | 整车控制器的数据读取和写入方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5205662B2 (ja) | 2008-04-01 | 2013-06-05 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP5332997B2 (ja) * | 2009-07-17 | 2013-11-06 | アイシン精機株式会社 | シートベルトウォーニング装置 |
JP2011060388A (ja) * | 2009-09-11 | 2011-03-24 | Toshiba Corp | 不揮発性メモリ装置 |
JP2011181134A (ja) * | 2010-02-26 | 2011-09-15 | Elpida Memory Inc | 不揮発性半導体装置の制御方法 |
US8593853B2 (en) | 2010-03-30 | 2013-11-26 | Panasonic Corporation | Nonvolatile storage device and method for writing into the same |
JP5867264B2 (ja) * | 2012-04-24 | 2016-02-24 | ソニー株式会社 | 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法 |
JP5853906B2 (ja) * | 2012-08-24 | 2016-02-09 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法 |
US9058869B2 (en) * | 2013-02-07 | 2015-06-16 | Seagate Technology Llc | Applying a bias signal to memory cells to reverse a resistance shift of the memory cells |
-
2015
- 2015-07-14 JP JP2016548608A patent/JP6481691B2/ja not_active Expired - Fee Related
- 2015-07-14 WO PCT/JP2015/070094 patent/WO2016042902A1/ja active Application Filing
- 2015-07-14 US US15/505,826 patent/US10310742B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPWO2016042902A1 (ja) | 2017-06-29 |
WO2016042902A1 (ja) | 2016-03-24 |
US20170277442A1 (en) | 2017-09-28 |
US10310742B2 (en) | 2019-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150113357A1 (en) | Data streaming for solid-state bulk storage devices | |
JP6149598B2 (ja) | 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法 | |
JP6497393B2 (ja) | メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 | |
US11609712B2 (en) | Write operations to mitigate write disturb | |
US11630725B2 (en) | Management of parity data in a memory sub-system | |
JP6481691B2 (ja) | メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法 | |
US11487609B2 (en) | Separating parity data from host data in a memory sub-system | |
KR20210030482A (ko) | 기입 동작과 관련된 사전 판독 동작의 조정 | |
US11775179B2 (en) | Enabling stripe-based operations for error recovery at a memory sub-system | |
JP6711281B2 (ja) | メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 | |
JP2015106324A (ja) | 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 | |
WO2016035451A1 (ja) | 記憶制御装置、記憶装置、および、記憶制御方法 | |
US20220342829A1 (en) | Logical-to-physical mapping | |
US20190056884A1 (en) | Memory controller, storage device, information processing system, and memory control method | |
WO2017010147A1 (ja) | 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法 | |
KR20210138497A (ko) | 메모리 서브 시스템에서 메모리 다이들의 피크 전류의 관리 | |
WO2016056290A1 (ja) | メモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法 | |
US11709631B2 (en) | Read-modify-write data consistency management | |
US11520657B1 (en) | Defect detection in memory based on active monitoring of read operations | |
US11966638B2 (en) | Dynamic rain for zoned storage systems | |
US20240062840A1 (en) | Read verification cadence and timing in memory devices | |
US20240071528A1 (en) | Managing defective blocks during multi-plane programming operations in memory devices | |
WO2024016257A1 (en) | Handling parity data during data folding in a memory device | |
US20240069765A1 (en) | Two-tier defect scan management | |
US20230386588A1 (en) | Media management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180523 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181226 |
|
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: 20190115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190128 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6481691 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |