JP6497394B2 - メモリシステム、記憶装置、および、メモリシステムの制御方法 - Google Patents

メモリシステム、記憶装置、および、メモリシステムの制御方法 Download PDF

Info

Publication number
JP6497394B2
JP6497394B2 JP2016561448A JP2016561448A JP6497394B2 JP 6497394 B2 JP6497394 B2 JP 6497394B2 JP 2016561448 A JP2016561448 A JP 2016561448A JP 2016561448 A JP2016561448 A JP 2016561448A JP 6497394 B2 JP6497394 B2 JP 6497394B2
Authority
JP
Japan
Prior art keywords
data
read
memory
refresh
reread
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016561448A
Other languages
English (en)
Other versions
JPWO2016084497A1 (ja
Inventor
晴彦 寺田
晴彦 寺田
塁 阪井
塁 阪井
大久保 英明
英明 大久保
敬一 筒井
敬一 筒井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of JPWO2016084497A1 publication Critical patent/JPWO2016084497A1/ja
Application granted granted Critical
Publication of JP6497394B2 publication Critical patent/JP6497394B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • 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/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5685Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using storage elements comprising metal oxide memory material, e.g. perovskites
    • 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/0023Address circuits or decoders
    • 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
    • G11C2013/0054Read is performed on a reference element, e.g. cell, and the reference sensed value is used to compare the sensed value of the selected cell

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)

Description

本技術は、メモリシステム、記憶装置、および、メモリシステムの制御方法に関する。詳しくは、リードデータの誤りを検出するメモリシステム、記憶装置、および、メモリシステムの制御方法に関する。
近年の情報処理システムにおいては、補助記憶装置やストレージとして、不揮発性メモリ(NVM:Non-Volatile memory)が用いられることがある。この不揮発性メモリは、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ(NVRAM:Non-Volatile RAM)とに大別される。ここで、フラッシュメモリの代表例としては、NAND型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、ReRAM(Resistive RAM)、PCRAM(Phase-Change RAM)、MRAM(Magnetoresistive RAM)などが挙げられる。
これらの不揮発性メモリにおいては、メモリセル内の電流の揺らぎや、アクセスの繰り返しによるメモリセルの特性の変化などの各種の原因により、書き込んだデータにエラーが発生することが知られている。前者の現象はランダムテレグラフノイズ(RTN:Random Telegraph Noise)と呼ばれ、後者はリードディスターブ(RD:Read Disturb)と呼ばれている。また、RTNによるエラーは「RTNエラー」と呼ばれ、RDによるエラーは「RDエラー」と呼ばれる。これらのエラーの有無をECC(Error detection and Correction Code)を用いて検出および訂正するメモリコントローラが提案されている(例えば、特許文献1参照。)。また、エラーが生じたメモリセルにおいてデータを書き換える処理をリフレッシュ処理として行うメモリシステムが提案されている(例えば、特許文献2参照。)。このリフレッシュ処理により、メモリセルのエラーを回復することができる。
特開2013−125527号公報 特開平6−110793号公報
上述の従来のメモリコントローラはエラーを検出してはいるが、RTNエラーやRDエラーなどのエラーの種類を区別していない。このため、従来のシステムでは、エラーの種類に関わらず、エラーが生じるたびにメモリセルがリフレッシュされる。しかしながら、エラーの種類によっては、リフレッシュが必要でない場合がある。例えば、RTNエラーは、一次的な状態の変化であり、自然に回復するものであるため、そのエラーの生じたメモリセルをリフレッシュする必要性に乏しい。このような場合にもリフレッシュを行うと、不要な書き換えによってメモリセルの劣化が進行するおそれがある。
本技術はこのような状況に鑑みて生み出されたものであり、不揮発性メモリにおけるメモリセルの劣化を抑制することを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、第1の閾値を基準として複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理部と、上記リードデータの誤りの有無を検出して上記複数のメモリセルのうち上記誤りのあるメモリセルを特定する誤り検出部と、上記第1の閾値と異なる第2の閾値を基準として上記特定されたメモリセルからデータを再リードデータとして読み出す再リード処理を行う再リード処理部と、上記特定されたメモリセルのうち上記再リードデータの値が上記リードデータと異なるメモリセルに対して上記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理部とを具備するメモリシステム、および、その制御方法である。これにより、再リードデータの値がリードデータと異なるメモリセルに対してリフレッシュ処理が行われるという作用をもたらす。
また、この第1の側面において、前記特定されたメモリセルのうち所定のパターンの前記誤りが生じたメモリセルに対して前記再リード部に前記再リード処理を実行させるリフレッシュ制御部をさらに具備してもよい。これにより、所定のパターンの誤りが生じたメモリセルにおいて前記再リード処理が実行されるという作用をもたらす。
また、この第1の側面において、前記誤りのあるメモリセルに割り当てられたアドレスを保持するアドレス保持部をさらに具備し、前記リフレッシュ制御部は、所定の条件が満たされた場合には前記保持されたアドレスを読み出して当該アドレスを指定して前記リード処理部に前記リード処理を実行させてもよい。これにより、保持されたアドレスにおいてリード処理が実行されるという作用をもたらす。
また、この第1の側面において、前記所定の条件は、前記保持されたアドレスの個数が所定個数を超えることであってもよい。これにより、保持されたアドレスの個数が所定個数を超えるとリード処理が実行されるという作用をもたらす。
また、この第1の側面において、上記所定の条件は、上記リフレッシュ処理の実行を指示するリフレッシュコマンドを上記リフレッシュ制御部が受信したことであってもよい。これにより、リフレッシュコマンドが受信されるとリード処理が行われるという作用をもたらす。
また、この第1の側面において、前記複数のメモリセルは、前記複数のアドレスのいずれかが各々に割り当てられた複数の区画に分割され、前記リフレッシュ制御部は、前記リフレッシュ処理を行うためのリフレッシュモードが設定された場合には前記複数のアドレスのそれぞれを順に指定して前記リード処理部に前記リード処理を実行させてもよい。これにより、リフレッシュモードが設定された場合には複数のアドレスのそれぞれが順に指定されてリード処理が実行されるという作用をもたらす。
また、この第1の側面において、前記リフレッシュ制御部は、前記所定のパターンの前記誤りの個数が許容値を超える場合には前記特定されたメモリセルのうち前記所定のパターンの前記誤りが生じたメモリセルに対して前記再リード部に前記再リード処理を実行させてもよい。これにより、所定のパターンの誤りの個数が許容値を超える場合には再リード処理が実行されるという作用をもたらす。
また、この第1の側面において、上記複数のメモリセルのそれぞれは、複数のビットを含むデータを保持し、上記第1および第2の閾値のそれぞれは、複数の閾値を含むものであってもよい。これにより、メモリセルのそれぞれに複数のビットを含むデータが保持されるという作用をもたらす。
また、この第1の側面において、上記メモリセルの特性値は、データが読み出されるたびに特定の方向へ変化し、上記第2の閾値は、上記第1の閾値から上記特定の方向へ変化させた値であってもよい。これにより、第1の閾値から上記特定の方向へ変化させた値が第2の閾値に設定されるという作用をもたらす。
また、本技術の第2の側面は、第1の閾値を基準として上記複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理部と、上記第1の閾値と異なる第2の閾値を基準として上記リードデータに誤りのあるメモリセルの各々からデータを再リードデータとして読み出す再リード処理を行う再リード処理部と、上記リードデータに誤りのある上記メモリセルのうち上記再リードデータの値が上記リードデータと異なるメモリセルに対して上記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理部とを具備する記憶装置である。これにより、所定の条件が満たされた場合には保持されたアドレスに対応するメモリセルについてリード処理が行われるという作用をもたらす。
本技術によれば、不揮発性メモリにおけるメモリセルの劣化を抑制することができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
第1の実施の形態におけるメモリシステムの一構成例を示す全体図である。 第1の実施の形態におけるメモリコントローラの一構成例を示すブロック図である。 第1の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。 第1の実施の形態における不揮発性メモリの一構成例を示すブロック図である。 第1の実施の形態におけるメモリ制御部の一構成例を示すブロック図である。 第1の実施の形態におけるリクエストごとの不揮発性メモリの動作例を示す表である。 第1の実施の形態におけるRDが生じる前のメモリセルの抵抗分布の一例を示す図である。 第1の実施の形態における読み出しを繰り返した後のメモリセルの抵抗分布の一例を示す図である。 第1の実施の形態における読み出し回数の増加に伴う抵抗値の変化の一例を示す図である。 第1の実施の形態におけるリードデータおよびビットセレクト信号の一例を示す図である。 第1の実施の形態におけるストレージの動作の一例を示すフローチャートである。 第1の実施の形態におけるコントローラ側リード・リフレッシュ処理の一例を示すフローチャートである。 第1の実施の形態におけるメモリ側リード・リフレッシュ処理の一例を示すフローチャートである。 第1の実施の形態におけるストレージの動作の一例を示すシーケンス図である。 第2の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。 第2の実施の形態におけるストレージの動作の一例を示すフローチャートである。 第2の実施の形態におけるコントローラ側リード処理の一例を示すフローチャートである。 第2の実施の形態におけるコントローラ側リフレッシュ処理の一例を示すフローチャートである。 第3の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。 第3の実施の形態におけるストレージの動作の一例を示すフローチャートである。 第3の実施の形態におけるコントローラ側リード処理の一例を示すフローチャートである。 第3の実施の形態におけるコントローラ側リフレッシュ処理の一例を示すフローチャートである。 第4の実施の形態におけるコントローラ側リード・リフレッシュ処理の一例を示すフローチャートである。 第5の実施の形態における不揮発性メモリの一構成例を示すブロック図である。 第5の実施の形態における読み出しを繰り返した後のメモリセルの抵抗分布の一例を示す図である。 第5の実施の形態における読み出し回数の増加に伴う抵抗値の変化の一例を示す図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(閾値を変えて再リードし、リフレッシュする例)
2.第2の実施の形態(保持したアドレスから閾値を変えて再リードし、リフレッシュする例)
3.第3の実施の形態(リフレッシュモードにおいて閾値を変えて再リードし、リフレッシュする例)
4.第4の実施の形態(一定パターンのエラー数が多いと閾値を変えて再リードし、リフレッシュする例)
5.第5の実施の形態(多値メモリセルにおいて閾値を変えて再リードし、リフレッシュする例)
<1.第1の実施の形態>
[メモリシステムの構成例]
図1は、第1の実施の形態におけるメモリシステムの一構成例を示すブロック図である。このメモリシステムは、ホストコンピュータ100およびストレージ200を備える。
ホストコンピュータ100は、メモリシステム全体を制御するものである。具体的には、ホストコンピュータ100は、コマンドおよびデータを生成してストレージ200に信号線108および109を介して供給する。また、ホストコンピュータ100は、信号線109を介してストレージ200から、読み出されたデータを受け取る。ここで、コマンドは、ストレージ200を制御するためのものであり、例えば、データの書込みを指示するライトコマンドや、データの読み出しを指示するリードコマンドを含む。
ストレージ200は、メモリコントローラ300および不揮発性メモリ400を備える。このメモリコントローラ300は、不揮発性メモリ400を制御するものである。メモリコントローラ300は、ホストコンピュータ100からライトコマンドおよびデータを受け取った場合には、そのデータから誤り検出訂正符号(ECC:Error detection and Correction Code)を生成する。具体的には、メモリコントローラ300は、データを、そのデータおよびパリティからなる符号語に変換(すなわち、符号化)する。メモリコントローラ300は、不揮発性メモリ400に信号線308および309を介してアクセスして符号化したデータを書き込む。
また、ホストコンピュータ100からリードコマンドを受け取った場合、メモリコントローラ300は、不揮発性メモリ400に信号線308を介してアクセスして符号化されたデータを信号線309を介して読み出す。そして、メモリコントローラ300は、符号化されたデータを、符号化前の元のデータに変換(すなわち、復号)する。また、メモリコントローラ300は、ECCに基づいてデータにおける誤りの検出および訂正を行う。メモリコントローラ300は、訂正したデータをホストコンピュータ100に供給する。
不揮発性メモリ400は、メモリコントローラ300の制御に従って、データを記憶するものである。例えば、ReRAMが不揮発性メモリ400として用いられる。この不揮発性メモリ400は、複数のメモリセルを備え、これらのメモリセルは、複数のブロックに分けられている。ここで、ブロックは、不揮発性メモリ400のアクセス単位であり、ワードとも呼ばれる。ブロックのそれぞれには物理アドレスが割り当てられている。なお、ReRAMの代わりに、NAND型やNOR型のフラッシュメモリ、PCRAM、および、MRAM、STT−RAM(Spin Transfer Torque RAM)などを不揮発性メモリ400として用いてもよい。なお、不揮発性メモリ400は、特許請求の範囲に記載の記憶装置の一例である。
[メモリコントローラの構成例]
図2は、第1の実施の形態におけるメモリコントローラ300の一構成例を示すブロック図である。このメモリコントローラ300は、RAM(Random Access Memory)302、CPU(Central Processing Unit)303、ECC処理部304およびROM(Read Only Memory)305を備える。また、メモリコントローラ300は、ホストインターフェース301、バス306およびメモリインターフェース307を備える。
RAM302は、CPU303が実行する処理において必要となるデータを一時的に保持するものである。CPU303は、メモリコントローラ300全体を制御するものである。ROM305は、CPU303が実行するプログラム等を記憶するものである。ホストインターフェース301は、ホストコンピュータ100との間でデータを相互に交換するものである。バス306は、RAM302、CPU303、ECC処理部304、ROM305、ホストインターフェース301およびメモリインターフェース307が相互にデータを交換するための共通の経路である。メモリインターフェース307は、不揮発性メモリ400との間でデータを相互に交換するものである。
ECC処理部304は、符号化対象のデータを符号化し、また、符号化されたデータを復号するものである。データの符号化においてECC処理部304は、符号化対象データにパリティを付加することにより所定の単位で符号化する。そして、ECC処理部304は、符号化したデータをライトデータとして不揮発性メモリ400にバス306を介して供給する。
また、ECC処理部304は、符号化されたリードデータを元のデータに復号する。この復号において、ECC処理部304は、パリティを使用して、リードデータのエラーを検出および訂正する。ECC処理部304は、復号した元のデータをホストコンピュータ100にバス306を介して供給する。
図3は、第1の実施の形態におけるメモリコントローラ300の機能構成例を示すブロック図である。このメモリコントローラ300は、ライト制御部310、リード制御部320、ECC処理部304およびリフレッシュ制御部330を備える。図3におけるライト制御部310は、図2におけるRAM302、CPU303、ROM305、ホストインターフェース301、バス306およびメモリインターフェース307などにより実現される。リード制御部320およびリフレッシュ制御部330についても同様である。
ライト制御部310は、ライトコマンドに従って、不揮発性メモリ400にライトデータを書き込ませるものである。このライト制御部310は、ライトコマンドの指定する論理アドレスを物理アドレスに変換する。
ここで、論理アドレスは、ホストコンピュータ100が定義するアドレス空間において、ホストコンピュータ100がストレージ200にアクセスする際のアクセス単位の領域ごとに割り振られたアドレスである。また、物理アドレスは、前述したように不揮発性メモリ400においてアクセス単位ごとに割り当てられたアドレスである。
また、ライト制御部310は、ホストコンピュータ100と不揮発性メモリ400とのアクセス単位が異なる場合に、ライトコマンドを分割する。ライト制御部310は、アドレスを論物変換し、必要に応じて分割したライトコマンドのそれぞれをライトリクエストとして不揮発性メモリに供給する。
リード制御部320は、リードコマンドに従って、不揮発性メモリ400にリードデータの読み出しを行わせるものである。このリード制御部320は、リードコマンドのアドレスを論物変換し、必要に応じて分割したリードコマンドのそれぞれをリードリクエストとして不揮発性メモリに供給する。また、リード制御部320は、変換した物理アドレスをリフレッシュ制御部330に供給する。
ECC処理部304は、ホストコンピュータ100からデータを符号化対象データとして受け取った場合に、その符号化対象データを符号語に符号化する。符号化において符号化対象データは、例えば、2元のBCH符号に符号化される。ECC処理部304は、その符号語をライトデータとして不揮発性メモリ400に供給する。
なお、ECC処理部304は、符号化対象データを2元のBCH符号に符号化しているが、誤り訂正能力を持つ符号であれば、BCH符号以外の符号に符号化してもよい。ECC処理部304は、例えば、RS(Reed-Solomon)符号や畳込み符号に符号化してもよい。また、ECC処理部304は、2元より高い次元の符号に符号化してもよい。
また、ECC処理部304は、符号語に対応する受信語をリードデータとして不揮発性メモリ400から受け取った場合に、その受信語を復号する。ECC処理部304は、復号したデータを復号データとしてホストコンピュータ100およびリフレッシュ制御部330に供給する。ただし、ホストコンピュータ100へ供給される復号データからは、パリティが除かれる。なお、ECC処理部304は、特許請求の範囲に記載の誤り検出部の一例である。
リフレッシュ制御部330は、エラーの生じたメモリセルについて、不揮発性メモリ400にデータを書き換えさせるものである。このリフレッシュ制御部330は、復号前のリードデータを不揮発性メモリ400から受信し、また、ECC処理部304から復号データを受け取る。リフレッシュ制御部330は、それらのリードデータおよび復号データを比較して訂正されたエラー数(訂正数)を求め、そのエラー数が所定の許容値N以上である場合にリフレッシュリクエストを発行する。このリフレッシュリクエストは、リードデータが読み出された物理アドレスを指定して、データの書き換えを要求するリクエストである。
また、リフレッシュ制御部330は、所定のパターンのエラーが生じたメモリセルを特定して、そのメモリセルを書き換え対象として選択するビットセレクト信号を生成する。例えば、ワードに対応する8個のメモリセルのうち先頭から4番目および8番目を書き換え対象とする場合、「0x11」(2進数で「b00010001」)の値のビットセレクト信号が生成される。
ここで、不揮発性メモリ400のメモリセルは、それぞれ、論理値「0」または論理値「1」を保持する2値メモリセルであるものとする。この2値メモリセルに生じるエラーのパターンとしては、「0」が「1」に反転するパターンと「1」が「0」に反転するパターンとが挙げられる。RDが進行すると、一般に、そのメモリセルの特性値(例えば、抵抗値)がRDの進行に伴って一定の方向に変化する。例えば、ReRAMをメモリセルとして用いる場合、その抵抗値はRDが進行するほど、低抵抗側から高抵抗側の方へ変化する。このため、低抵抗状態に「1」を、高抵抗状態に「0」を割り当てていた場合には、メモリセルのRDにより「1」が「0」に反転するパターンのRDエラーが生じうる。リフレッシュ制御部330は、その「1」が「0」に反転したメモリセルを特定し、そのメモリセルを選択するビットセレクト信号を生成する。リフレッシュ制御部330は、発行したリフレッシュリクエストと、生成したビットセレクト信号とを不揮発性メモリ400に供給する。
なお、リフレッシュ制御部330は、訂正数がN以上の場合にリフレッシュリクエストを発行しているが、訂正数に関わらず、エラーが検出された場合にリフレッシュリクエストを発行してもよい。ただし、エラーが1つでも検出されるたびにリフレッシュリクエストを発行する構成ではアクセス効率が低下するおそれがあるため、リフレッシュ制御部330は、訂正数がN以上の際にリフレッシュリクエストを発行することが望ましい。
また、リフレッシュ制御部330は、RDエラーが想定されるパターン(「1」が「0」に反転したパターンなど)のエラーが生じたメモリセルのみを書き換え対象としているが、この構成に限定されない。リフレッシュ制御部330は、エラーが生じたメモリセルの全てを書き換え対象とするビットセレクト信号を生成してもよい。ただし、エラーが生じたメモリセル全てを書き換え対象とすると、RDエラーでないエラーに対応するメモリセルにおいてもデータが書き換えられて劣化が進行してしまう。このため、RDエラーが想定されるパターンのエラーが生じたメモリセルのみを書き換え対象とすることが望ましい。
[不揮発性メモリの構成例]
図4は、第1の実施の形態における不揮発性メモリの一構成例を示すブロック図である。この不揮発性メモリ400は、データバッファ410、メモリセルアレイ420、ドライバ430、アドレスデコーダ440、バス450、制御インターフェース460、および、メモリ制御部470を備える。
データバッファ410は、メモリ制御部470の制御に従って、ライトデータやリードデータをアクセス単位で保持するものである。メモリセルアレイ420は、マトリックス状に配列された複数のメモリセルを備える。これらのメモリセルとして、不揮発性の記憶素子が用いられる。具体的には、NAND型やNOR型のフラッシュメモリ、ReRAM、PCRAM、STT−RAM、または、MRAMなどが記憶素子として用いられる。
また、これらのメモリセルは、論理値「1」または「0」を保持する2値メモリセルである。また、不揮発性メモリ400のアクセス単位は、例えば、8ビットからなるワードである。例えば、メモリセルアレイ420に8×256個のメモリセルを設けた場合、256ワードのデータが保持される。これらのワードのそれぞれに物理アドレスが割り当てられる。
ドライバ430は、アドレスデコーダ440により選択されたメモリセルに対してデータの書込み、または、データの読み出しを行うものである。データの書込みにおいては、ドライバ430は、極性の異なる2つの電圧パルスのいずれかをメモリセルに印加して「1」または「0」を書き込む。以下、「1」を書き込む動作を「セット」と定義し、その際の電圧パルスを「セットパルス」と称する。一方、「0」を書き込む動作を「リセット」と定義し、その際の電圧パルスを「リセットパルス」と称する。
また、データの読み出しにおいては、ドライバ430は、メモリセルに電流パルスを印加し、メモリセルの電極間に生じる電圧と、所定の参照電圧Vrefとを比較する。ドライバ430は、この比較結果をリードデータの値として読み出す。この動作を「センス」と定義し、その際の電流パルスを以下、「センスパルス」と称する。また、ReRAMでは、参照電圧Vrefは、次式により表される。
ref=I×Rref
上式において、Iは、センスパルスの電流値であり、Rrefは、参照抵抗値である。
また、ドライバ430は、セット、リセットおよびセンスのそれぞれにおいて、メモリ制御部470の制御に従ってビット単位でメモリセルを選択して、そのメモリセルのみをセット、リセットまたはセンスすることができる。
アドレスデコーダ440は、リクエストにより指定されたアドレスを解析して、そのアドレスに対応するメモリセルを選択するものである。例えば、「0x0F」(10進数で15)のアドレスが解析された場合、256個のアドレスのうち、先頭から16番目のアドレスに対応する8個のメモリセルが選択される。
バス450は、データバッファ410、メモリセルアレイ420、アドレスデコーダ440、メモリ制御部470および制御インターフェース460が相互にデータを交換するための共通の経路である。制御インターフェース460は、メモリコントローラ300と不揮発性メモリ400とがデータを相互に交換するためのインターフェースである。
メモリ制御部470は、ドライバ430およびアドレスデコーダ440を制御して、データの書込み、または、読み出しを行わせるものである。
[メモリ制御部の構成例]
図5は、第1の実施の形態におけるメモリ制御部470の一構成例を示すブロック図である。このメモリ制御部470は、リクエストデコーダ471、ライト処理部472、リード処理部473、再リード処理部474およびリフレッシュ処理部475を備える。
リクエストデコーダ471は、メモリコントローラ300からのリクエストを解釈(デコード)するものである。このリクエストデコーダ471は、ライトリクエストのデコード結果をライト処理部472に供給し、リードリクエストのデコード結果をリード処理部473に供給する。また、リクエストデコーダ471は、リフレッシュリクエストのデコード結果を再リード処理部474に供給する。
ライト処理部472は、ドライバ430およびアドレスデコーダ440を制御して、データの書込みを行わせるものである。このライト処理部472は、デコード結果を受け取ると、アドレスのデコードを指示する制御信号をアドレスデコーダ440に供給する。また、ライト処理部472は、全ビットを選択するビットセレクト信号とセンスを指示するセンス信号とをドライバ430に供給する。なお、アドレスデコーダ440への制御信号とドライバ430へのビットセレクト信号とは、図5において省略されている。ドライバ430は、センス信号およびビットセレクト信号に従って、リクエストの指定するアドレスに書き込まれているデータをプレリードデータとして読み出す。
そして、ライト処理部472は、ライトデータとプレリードデータとをビット単位で比較し、ライトデータにおいて「1」であり、かつ、プレリードデータにおいて「0」のビットをセット対象とする。ライト処理部472は、そのセット対象のビットを示すビットセレクト信号と、セットを指示するセット信号とをドライバ430に供給する。
次に、ライト処理部472は、ライトデータとセット処理後のプレリードデータとをビット単位で比較し、ライトデータにおいて「0」であり、かつ、プレリードデータにおいて「1」のビットをリセット対象とする。ライト処理部472は、そのリセット対象のビットを示すビットセレクト信号と、リセットを指示するリセット信号とをドライバ430に供給する。ドライバ430は、ビットセレクト信号、セット信号およびリセット信号に従ってデータの書込みを行う。
リード処理部473は、ドライバ430およびアドレスデコーダ440を制御して、データの読み出しを行わせるものである。このリード処理部473は、アドレスのデコードを指示する制御信号をアドレスデコーダ440に供給する。また、リード処理部473は、参照電圧VrefにVref1を設定してドライバ430にセンス信号およびビットセレクト信号を供給する。このビットセレクト信号では、全てのメモリセルが選択され、例えば、ビットセレクト信号の全ビットに「1」が設定される。
再リード処理部474は、ドライバ430およびアドレスデコーダ440を制御して、データの再度の読み出しを行わせるものである。この再リード処理部474は、デコード結果を受け取ると、アドレスのデコードを指示する制御信号をアドレスデコーダ440に供給する。また、再リード処理部474は、参照電圧VrefにVref2を設定して、センス信号をドライバ430に供給する。また、メモリコントローラ300からのビットセレクト信号はドライバ430に転送される。ドライバ430は、センス信号およびビットセレクト信号に従ってデータを再リードデータとして読み出す。ビットセレクト信号により選択されていないメモリセルにはセンスパルスは印加されない。
ここで、リードデータを読み出す際の参照電圧Vref1に対応する参照抵抗値をRref1とし、再リードデータを読み出す際の参照電圧Vref2に対応する参照抵抗値をRref2とする。メモリセルの抵抗値がRDの進行に伴い高くなる場合には、Rref2がRref1よりも高く、Rref1およびRref2の差分が、1回の読み出しによる抵抗値の変化量よりも大きくなるように、Vref1およびVref2が設定される。なお、参照抵抗値Rref1は、特許請求の範囲に記載の第1の閾値の一例であり、参照抵抗値Rref2は、特許請求の範囲に記載の第2の閾値の一例である。
そして、再リード処理部474は、再リードデータおよびビットセレクト信号をビット単位で比較して、その比較結果に基づいてビットセレクト信号を修正する。修正においては、ビットセレクト信号で書き換え対象とされたビットのうち、リードデータと値が同じビットが、書き換え対象から除外される。例えば、「1」が「0」に反転したメモリセルのみがビットセレクト信号で書き換え対象とされていた場合、再リードデータにおいて「0」のビットは、リードデータの値と同じであるため、書き換え対象から除外される。再リード処理部474は、修正したビットセレクト信号を修正ビットセレクト信号としてドライバ430に供給し、再リードデータを読み出した旨をリフレッシュ処理部475に通知する。この修正ビットセレクト信号により、リードデータおよび再リードデータにおいて値の異なるメモリセルのみが書き換えられる。
リフレッシュ処理部475は、ドライバ430を制御して、データの書き換えを行わせるものである。このリフレッシュ処理部475は、再リードデータが読み出されると、セット信号およびリセット信号の一方を生成してドライバ430に供給する。例えば、「1」が「0」に反転したメモリセルがビットセレクト信号で書き換え対象とされた場合、セット信号が生成される。
図6は、第1の実施の形態におけるリクエストごとの不揮発性メモリ400の動作例を示す表である。ライトリクエストおよびライトデータが入力された場合に不揮発性メモリ400は、セットおよびリセットを順に行ってライトデータをメモリセルに書き込む。一方、リードリクエストが入力された場合に不揮発性メモリ400は、参照電圧Vref1を基準としてリードデータを読み出してメモリコントローラ300に出力する。
また、リフレッシュリクエストおよびビットセレクト信号が入力された場合に不揮発性メモリ400は、参照電圧Vref2を基準として再リードデータを読み出し、その読み出した値が「1」のビットのみをセットする。
図7は、第1の実施の形態におけるRDの生じる前、すなわち書き換え直後のメモリセルの抵抗分布の一例を示す図である。同図における縦軸は、メモリセルのセル数であり、横軸は、抵抗値である。ReRAMの2値メモリセルでは、その抵抗分布は、抵抗の閾値(Rref1など)を境に2つに分けられている。これらの分布は、低抵抗状態(LRS:Low-Resistance State)および高抵抗状態(HRS:High-Resistance State)と呼ばれる。LRSには、例えば、「1」の論理値が割り当てられ、HRSには「0」が割り当てられる。この閾値が変更された場合には、その変更後の閾値を基準としてデータの値が判断される。
なお、LRSに「1」をHRSに「0」を割り当てているが、逆に、LRSに「0」をHRSに「1」を割り当ててもよい。この場合には、「0」から「1」に反転したメモリセルが書き換え対象とされ、Rref2を基準として「0」が読み出されたメモリセルが「0」にリセットされる。
図8は、第1の実施の形態における読み出しを繰り返した後のメモリセルの抵抗分布の一例を示す図である。同図における縦軸は、メモリセルのセル数であり、横軸は、抵抗値である。また、同図における点線の曲線は、書き換え直後のメモリセルの状態を示し、実線の曲線は、センス信号による読み出しの繰り返しにより変化したメモリセルの状態を示す。同図に例示するように、読み出しを繰り返すと抵抗値が高抵抗側へずれる現象が知られている。この現象は、RDと呼ばれる。RDにより、実線の曲線の右裾が、閾値(Rref1)を超え、その結果、「1」を書き込んだビットから、「0」が読み出されるRDエラーが発生してしまう。同図における斜線部分は、RDエラーが生じる部分である。
図9は、第1の実施の形態における読み出し回数の増加に伴う抵抗値の変化の一例を示す図である。同図における縦軸は、抵抗値であり、横軸は読み出し回数を示す。ここでは、あるメモリセルに、LRSに対応する「1」が書き込まれた場合を考える。左端の1回目の読み出しでは、抵抗値が参照抵抗値Rref1より低く、「1」の値が正常に読み出される。しかし、m回目の読み出しにおいては、RTNにより抵抗値が不連続に上昇している。この結果、HRSに対応する「0」の値が誤って読み出されるRTNエラーが生じる。この現象は、例えば、「T.O.Iwasaki, et al, “Stability Conditioning to Enhance Read Stability 10x in 50nm AlxOy ReRAM”, IEEE International Memory Workshop 2013」などに記載されている。メモリコントローラ300は、m回目のリードデータからエラーを検出してリフレッシュリクエストを発行し、不揮発性メモリ400は、参照抵抗値をRref2に変更して、m+1回目の再読み出しを行う。RTNエラーは、ある程度の時間が経過しないと解消しないため、参照抵抗値を変更しても読み出される値が変化せず、再度「0」の値が読み出される。この場合、リードデータおよび再リードデータの値が同一であるため、メモリセルはリフレッシュされない。
m+1回目以降、読み出しの繰り返しに伴ってRDにより抵抗値が上昇し、n回目において参照抵抗値Rref1を超えたものとする。この結果、HRSに対応する「0」の値が誤って読み出されるRDエラーが生じる。RDエラーが発生した際には、リフレッシュを行わない限り、RDの影響が消失することはなく、その後の読み出しにおいても誤った「0」の値が読み出されてしまう。
そこで、メモリコントローラ300は、n回目のリードデータからエラーを検出すると、そのエラーを解消するためにリフレッシュリクエストを発行し、不揮発性メモリ400は、参照抵抗値をRref2に変更して、n+1回目の再読み出しを行う。n+1回目では、RDにより抵抗値がわずかに上昇するが、Rref1およびRref2の差分がその上昇量よりも大きくなるようにRref2が設定されているため、Rref2を超えない。このため、n+1回目では、正しい論理値「1」が読み出される。不揮発性メモリ400は、n+1回目で「1」が読み出されたため、そのメモリセルにセットパルスを印加する。これにより、メモリセルの抵抗値は、Rref1より低くなり、参照抵抗値Rref1およびRref2の双方で正しい論理値が読み出されるようになる。このように、RDエラーはセットパルスの再印加により回復することができる。
一方、RTNエラーは、RDエラーと異なり一時的な状態の変化であり、自然に回復するため、セットパルス(あるいはリセットパルス)の再印加によりリフレッシュを行う必要はない。例えば、m回目のRTNエラー発生時に、セットパルスを再印加してリフレッシュを行うと、再印加の際にはRTNの影響が消失しているにもかかわらず、高抵抗のメモリセルに過剰なセットパルスが印加されてしまい、セル特性が劣化してしまう。このため、RTNエラーについてもリフレッシュを行う特許文献2などのメモリシステムでは、不要なリフレッシュにより却ってメモリセルの劣化が進行して不揮発性メモリ400の寿命が短くなるおそれがある。
これに対して、不揮発性メモリ400は、RDエラーの際にリフレッシュを行う一方、RTNエラーの際にはリフレッシュを行わないため、メモリセルの劣化を抑制することができる。
図10は、第1の実施の形態におけるリードデータおよびビットセレクト信号の一例を示す図である。同図におけるaは、参照電圧Vref1により読み出されたリードデータの一例である。このリードデータは、例えば、「b11100000」のビット列を含む。また、同図におけるbは、復号データの一例である。この復号データは、例えば、「b11100011」のビット列を含む。これらのリードデータおよび復号データをビット単位で比較すると、先頭から7ビット目と8ビット目とにおいてエラーが生じている。これらのビットでは復号前が「0」で復号後が「1」であるから、「1」が「0」に反転したパターンのエラーが発生している。前述したように、ReRAMでは、読み出し回数が多くなるほど、抵抗値が増加する傾向にあるため、LRSに「1」が割り当てられている場合、「1」が「0」に反転するRDエラーが発生しうる。ただし、RTNエラーによっても「1」が「0」に反転する可能性がある。この時点では、「1」が「0」に反転したエラーが、RDエラーであるのか、RTNエラーであるのか断定することができない。
図10におけるcは、ビットセレクト信号の一例である。ビットセレクト信号において、「0」は、書き換え対象でないビットを示し、「1」はセットにより書き換える対象のビットを示す。同図におけるaおよびbの結果から、RDエラーまたはRTNエラーが想定される7ビット目および8ビット目を指定した「b0000011」を含むビットセレクト信号が生成される。不揮発性メモリ400は、ビットセレクト信号に従って、7ビット目および8ビット目を選択して、参照抵抗値Rref2を基準として再リードデータを読み出す。
図10におけるdは、再リードデータの一例である。同図のdにおいて、「−」は、センスパルスが印加されないビットを示す。例えば、この再リードデータの7ビット目が「0」で、8ビット目が「1」であるものとする。書き換え対象とされたメモリセルのうち、7ビット目のセルは、リードデータと値が変わらないが、8ビット目は値が異なる。この場合、7ビット目のエラーはRTNエラーであり、8ビット目のエラーはRDエラーであると考えられる。したがって、不揮発性メモリ400は、RTNエラーに対応する7ビット目を書き換え対象としないように、ビットセレクト信号を修正する。同図におけるeは、修正ビットセレクト信号の一例である。この修正ビットセレクト信号では、エラーが検出された7ビット目および8ビット目のうち7ビット目が「0」に修正される。これにより、8ビット目のメモリセルがセットによりリフレッシュされる。
[ストレージの動作例]
図11は、第1の実施の形態におけるストレージ200の動作の一例を示すフローチャートである。この動作は、例えば、ストレージ200に電源が投入されたときや、ホストコンピュータ100により初期化が指示されたときに開始する。
メモリコントローラ300は、不揮発性メモリ400を初期化する(ステップS901)。また、メモリコントローラ300は、ホストコンピュータ100からのコマンドをデコードする(ステップS902)。コマンドがライトコマンドである場合に(ステップS903:Yes)、メモリコントローラ300は、そのライトコマンドに応じてライトリクエストを発行する(ステップS904)。また、不揮発性メモリ400は、そのライトリクエストに従ってライトデータをメモリセルに書き込む(ステップS905)。
一方、アクセスコマンドがリードコマンドである場合に(ステップS903:No)、メモリコントローラ300は、コントローラ側リード・リフレッシュ処理を実行する(ステップS910)。また、不揮発性メモリ400は、メモリ側リード・リフレッシュ処理を実行する(ステップS920)。ステップS905の後、または、ステップS910およびS920の両方が終了した後、ストレージ200はステップS902に戻る。
図12は、第1の実施の形態におけるコントローラ側リード・リフレッシュ処理の一例を示すフローチャートである。メモリコントローラ300は、リードリクエストを発行し(ステップS911)、リードデータが読み出されると、そのデータを復号する(ステップS912)。エラー数がECCの誤り訂正能力以下であれば、復号は成功する。
メモリコントローラ300は、復号に成功したか否かを判断する(ステップS913)。復号に成功した場合には(ステップS913:Yes)、メモリコントローラ300は、復号データをホストコンピュータ100に出力し(ステップS914)、訂正数がN以上であるか否かを判断する(ステップS915)。一方、復号に失敗した場合には(ステップS913:No)、メモリコントローラ300は、リードエラーをホストコンピュータ100に出力する(ステップS917)。
訂正数がN以上である場合には(ステップS915:Yes)、メモリコントローラ300は、所定のパターンのエラーの生じたメモリセルを書き換え対象とするビットセレクト信号を生成し、リフレッシュリクエストを発行する(ステップS916)。訂正数がNに満たない場合(ステップS915:No)、または、ステップS916の後、もしくはステップS917の後、メモリコントローラは、コントローラ側リード・リフレッシュ処理を終了する。
図13は、第1の実施の形態におけるメモリ側リード・リフレッシュ処理の一例を示すフローチャートである。不揮発性メモリ400は、リードリクエストに従って参照電圧Vref1を基準としてリードデータを読み出す(ステップS921)。不揮発性メモリ400は、一定期間内に、メモリコントローラ300からリフレッシュリクエストを受信したか否かを判断する(ステップS922)。リフレッシュリクエストを受信した場合に(ステップS922:Yes)、不揮発性メモリ400は、そのリクエストに従って参照電圧Vref2を基準として再リードデータを読み出す(ステップS923)。そして、不揮発性メモリ400は、再リードデータおよびリードデータの値が異なるメモリセルのみを書き換え対象とするようにビットセレクト信号を修正する(ステップS924)。不揮発性メモリ400は、修正ビットセレクト信号の示すメモリセルについて、セット動作を行う(ステップS925)。
一方、リフレッシュリクエストを受信しなかった場合(ステップS922:No)、または、ステップS925の後、不揮発性メモリ400は、メモリ側リード・リフレッシュ処理を終了する。
図14は、第1の実施の形態におけるストレージ200の動作の一例を示すシーケンス図である。メモリコントローラ300がリードリクエストを発行して不揮発性メモリ400に送信すると、不揮発性メモリ400は、そのリクエストに従って参照電圧Vref1を基準としてリードデータを読み出す(ステップS921)。メモリコントローラ300は、そのリードデータを復号し(ステップS912)、エラー数がN以上であれば、リフレッシュリクエストおよびビットセレクト信号を不揮発性メモリ400に送信する。
不揮発性メモリ400は、リフレッシュリクエストおよびビットセレクト信号に従って参照電圧Vref2を基準として再リードデータを読み出す(ステップS923)。そして、不揮発性メモリ400は、再リードデータおよびリードデータの値が異なるビットのみを書き換え対象とするようにビットセレクト信号を修正し(ステップS924)、その書き換え対象をセットによりリフレッシュする(ステップS925)。
このように、本技術の第1の実施の形態によれば、第1の閾値を基準とするリードデータと第2の閾値を基準とする再リードデータとの値が異なるメモリセルをリフレッシュするため、それらの値が同一のメモリセルを除いてリフレッシュすることができる。これにより、RTNエラーの可能性が高いメモリセルに対する不要なリフレッシュが無くなるため、メモリセルの劣化の進行を抑制することができる。
<2.第2の実施の形態>
上述の第1の実施の形態では、メモリコントローラ300は、リード処理においてエラー数が所定の許容値以上となるたびに、そのアドレスにおいてリフレッシュを行っていた。しかし、リフレッシュ処理の間、不揮発性メモリ400は、他のリクエストを実行することができないため、エラー検出のたびにリフレッシュ処理を行うとアクセス速度が低下するおそれがある。このため、メモリコントローラ300は、一定の条件が満たされるまでリフレッシュリクエストの発行を抑制し、ライトリクエストやリードリクエストを優先して発行することが望ましい。一定の条件としては、例えば、ホストコンピュータ100によりリフレッシュが指示されたことや、リフレッシュ対象のアドレスの個数が所定個数を超えたことなどが挙げられる。この第2の実施の形態のメモリコントローラ300は、一定の条件が満たされた場合にリフレッシュリクエストを発行する点において第1の実施の形態と異なる。
図15は、第2の実施の形態におけるメモリコントローラ300の機能構成例を示すブロック図である。第2の実施の形態のメモリコントローラ300は、リード制御部320およびリフレッシュ制御部330の代わりにリード制御部321およびリフレッシュ制御部331を備え、さらにアドレスレジスタ340を備える点において第1の実施の形態と異なる。
リード制御部321は、リードデータおよび復号データをECC処理部304から受け取り、許容値N以上のエラーが検出されるたびに、そのアドレスをアドレスレジスタ340に保持させる。図15では、記載の便宜上、ECC処理部304および不揮発性メモリ400からリード制御部321へのリードデータおよび復号データは、省略されている。アドレスレジスタ340は、複数のアドレスを保持するものである。なお、アドレスレジスタ340は、特許請求の範囲に記載のアドレス保持部の一例である。
また、リフレッシュ制御部331は、ホストコンピュータ100からリフレッシュコマンドを受信した場合に、アドレスレジスタ340に保持されたアドレスを順に指定してリードリクエストを発行する。あるいは、リフレッシュ制御部331は、アドレスレジスタ340に保持されたアドレス数がM(Mは、整数)個以上となった場合に、それらのアドレスを順に指定してリードリクエストを発行する。そして、リフレッシュ制御部332は、訂正数がN以上であれば、リフレッシュリクエストおよびビットセレクト信号を不揮発性メモリ400に供給する。
また、第2の実施の形態のホストコンピュータ100は、例えば、アクセス頻度が一定以下に低下した場合にリフレッシュコマンドを発行する。
図16は、第2の実施の形態におけるストレージ200の動作の一例を示すフローチャートである。メモリコントローラ300は、不揮発性メモリ400の初期化(ステップS901)の後、コマンドをデコードする(ステップS902)。メモリコントローラ300は、コマンドがライトコマンドであるか否かを判断し(ステップS903)、ライトコマンドであれば(ステップS903:Yes)、ステップS904およびS905を実行する。
一方、ライトコマンドでない場合に(ステップS903:No)、メモリコントローラ300は、コマンドがリードコマンドであるか否かを判断する(ステップS906)。リードコマンドである場合に(ステップS906:Yes)、メモリコントローラ300は、コントローラ側リード処理を実行する(ステップS930)。また、不揮発性メモリ400は、ライトリクエストに従ってVref1を基準としてリードデータを読み出す(ステップS921)。
ステップS905の後、または、ステップS930およびS921の両方が終了した後に、不揮発性メモリ400は、アドレスレジスタに保持されたアドレス数がM個以上であるか否かを判断する(ステップS907)。
コマンドがリフレッシュコマンドである場合(ステップS906:No)、または、アドレス数がM個以上である場合(ステップS907:Yes)、メモリコントローラ300は、コントローラ側リフレッシュ処理を実行する(ステップS940)。また、不揮発性メモリ400は、メモリ側リード・リフレッシュ処理を実行する(ステップS920)。アドレス数がM個未満である場合(ステップS907:No)、または、ステップS940およびS920の両方が終了した後、ストレージ200はステップS902に戻る。
図17は、第2の実施の形態におけるコントローラ側リード処理の一例を示すフローチャートである。コントローラ側リード処理は、ステップS916の代わりにステップS931を実行する点以外は、図12に例示したコントローラ側リード・リフレッシュ処理と同様である。訂正数がN以上である場合に(ステップS915:Yes)、メモリコントローラ300は、リードリクエストにより指定されたアドレスをアドレスレジスタ340に保持する(ステップS931)。
図18は、第2の実施の形態におけるコントローラ側リフレッシュ処理の一例を示すフローチャートである。メモリコントローラ300は、アドレスレジスタ340から、いずれかのアドレスを取り出して、そのアドレスをアドレスレジスタ340から削除する(ステップS941)。メモリコントローラ300は、取り出したアドレスを指定するリードリクエストを発行する(ステップS942)。そして、メモリコントローラ300は、読み出されたリードデータを復号する(ステップS943)。
メモリコントローラ300は、復号に成功したか否かを判断する(ステップS944)。復号に成功した場合に(ステップS944:Yes)、メモリコントローラ300は、復号データをホストコンピュータ100へ出力し(ステップS945)、訂正数がN以上であるか否かを判断する(ステップS946)。
訂正数がN以上である場合に(ステップS946:Yes)、メモリコントローラ300は、ビットセレクト信号を生成し、リフレッシュリクエストを発行して不揮発性メモリ400に供給する(ステップS947)。
復号に失敗した場合に(ステップS944:No)、メモリコントローラ300は、リードエラーをホストコンピュータ100に出力する(ステップS948)。また、訂正数がN未満である場合(ステップS946:No)、または、ステップS947の後、もしくはステップS948の後、メモリコントローラ300は、レジスタにアドレスがあるか否かを判断する(ステップS949)。アドレスがある場合(ステップS949:Yes)、メモリコントローラ300はステップS941に戻り、アドレスがない場合(ステップS949:No)、メモリコントローラ300はコントローラ側リフレッシュ処理を終了する。
なお、メモリコントローラ300は、コントローラ側リード処理とコントローラ側リフレッシュ処理との両方で、リードデータの復号を行っているが、コントローラ側リフレッシュ処理において復号を行わない構成としてもよい。ただし、コントローラ側リード処理の終了から、コントローラ側リフレッシュ処理の開始までの間に、保持させたアドレスがアクセスされてRDが進行するおそれがあるため、コントローラ側リフレッシュ処理においても復号を行うことが望ましい。
このように、本技術の第2の実施の形態によれば、メモリコントローラ300は、エラーが生じたアドレスを保持しておき、後に一定の条件が満たされると、そのアドレスにおいてリフレッシュを行うため、アクセス効率を向上させることができる。
<3.第3の実施の形態>
上述の第1の実施の形態では、メモリコントローラ300は、リードのたびに、リードデータのエラー数が所定の許容値以上であれば、そのアドレスにおいてリフレッシュを行っていた。しかし、リードのたびにエラー数に応じてリフレッシュを行うのでなく、リードやライトのアクセス頻度が低下したときにまとめてリフレッシュを行った方が、アクセス効率を向上させることができる。例えば、アクセス頻度が低下した際にホストコンピュータ100がリフレッシュモードを設定し、そのリフレッシュモードの際にメモリコントローラ300がリフレッシュを行う構成であってもよい。この第3の実施の形態のメモリシステムは、アクセス頻度が低下してリフレッシュモードに設定された際にメモリコントローラ300がリフレッシュを行う点において第1の実施の形態と異なる。
図19は、第3の実施の形態におけるメモリコントローラ300の機能構成例を示すブロック図である。第3の実施の形態のメモリコントローラ300は、リフレッシュ制御部330の代わりにリフレッシュ制御部332を備える点において第1の実施の形態と異なる。
リフレッシュ制御部332は、ホストコンピュータ100からモード切替信号を受け取る。このモード切替信号は、通常モードおよびリフレッシュモードのいずれかへの切り替えを指示する信号である。ここで、通常モードは、リードやライトを行うためのモードである。リフレッシュ制御部332は、モード切替信号によりリフレッシュモードに切り替えられた場合に、不揮発性メモリ400の全アドレスを順に指定してリードリクエストを発行する。そして、リフレッシュ制御部332は、訂正数がN以上であれば、リフレッシュリクエストおよびビットセレクト信号を不揮発性メモリ400に供給する。
また、第3の実施の形態のホストコンピュータ100は、例えば、アクセス頻度が一定以下に低下した場合にリフレッシュモードに切り替え、そうでない場合に通常モードに切り替える。
図20は、第3の実施の形態におけるストレージ200の動作の一例を示すフローチャートである。第3の実施の形態におけるストレージ200の動作は、ステップS907の代わりにステップS908を実行する点以外は、第2の実施の形態と同様である。
コマンドがリードコマンドでない場合(ステップS906:No)、または、ステップS905の後、もしくは、ステップS930およびS921の後、メモリコントローラ300は、リフレッシュモードに切り替えられたか否かを判断する(ステップS908)。リフレッシュモードに切り替えられた場合に(ステップS908:Yes)、メモリコントローラ300は、ステップS940およびS920を実行する。
リフレッシュモードに切り替えられていない場合に(ステップS908:No)、または、ステップS940およびS920の両方が終了した後、メモリコントローラ300は、ステップS902に戻る。
図21は、第3の実施の形態におけるコントローラ側リード処理の一例を示すフローチャートである。第3の実施の形態におけるコントローラ側リード処理は、ステップS915およびS916を実行しない点以外は、第1の実施の形態のコントローラ側リード・リフレッシュ処理と同様である。
図22は、第3の実施の形態におけるコントローラ側リフレッシュ処理の一例を示すフローチャートである。第3の実施の形態のコントローラ側リフレッシュ処理は、ステップS941およびS949の代わりにステップS950、S951およびS952を実行する点以外は、第2の実施の形態と同様である。
メモリコントローラ300は、不揮発性メモリ400の先頭アドレスをリードアドレスに設定し(ステップS950)、ステップS942乃至S948を実行する。そして、訂正数がNに満たない場合(ステップS946:No)、または、ステップS947もしくはステップS948の後、メモリコントローラ300は、リードアドレスが不揮発性メモリ400の最後のアドレスであるか否かを判断する(ステップS951)。最後のアドレスでない場合に(ステップS951:No)、メモリコントローラ300は、次のアドレスをリードアドレスに設定し(ステップS952)、ステップS942に戻る。一方、最後のアドレスである場合に(ステップS951:Yes)、メモリコントローラ300は、コントローラ側リフレッシュ処理を終了する。
このように、本技術の第3の実施の形態によれば、メモリコントローラ300は、リフレッシュモードに設定された際にリフレッシュを行うため、アクセス効率を向上させることができる。
<4.第4の実施の形態>
上述の第1の実施の形態では、メモリコントローラ300は、エラー数が所定の許容値以上となった場合にリフレッシュリクエストを発行していた。しかし、エラーには、RDエラーやRTNエラーの種類があり、RDエラーでは、「1」が「0」に反転するなどの一定のパターンしか見られない。このため、エラーのパターンに関わらず、エラー数がN個以上になった際にリフレッシュを行うと、RDエラーでないエラーしか生じなかった際にもリフレッシュリクエストが発行されてアクセス効率が低下するおそれがある。このため、RDエラーが想定される一定のパターンのエラー数が所定の許容値以上の際にメモリコントローラ300がリフレッシュリクエストを発行することが望ましい。この第4の実施の形態のメモリコントローラ300は、一定のパターンのエラー数がN’個以上になった際にメモリコントローラ300がリフレッシュリクエストを発行する点において第1の実施の形態と異なる。
図23は、第4の実施の形態におけるコントローラ側リード・リフレッシュ処理の一例を示すフローチャートである。第4の実施の形態のコントローラ側リード・リフレッシュ処理は、ステップS915の代わりにステップS918を実行する点において第1の実施の形態と異なる。
復号データの出力(ステップS914)の後、メモリコントローラ300は、「0」から「1」に訂正されたエラー数が許容値N’(N’は整数)以上であるか否かを判断する(ステップS918)。訂正数がN’以上である場合には(ステップS918:Yes)、メモリコントローラ300は、ステップS916を実行する。一方、訂正数がN’未満である場合(ステップS918:No)、または、ステップS917の後、メモリコントローラ300は、コントローラ側リード・リフレッシュ処理を終了する。
このように、本技術の第4の実施の形態によれば、メモリコントローラ300は、一定のパターンのエラー数が許容値以上である場合にリフレッシュを行うため、そのパターン以外のエラーのメモリセルを除いてリフレッシュすることができる。これにより、不要なリフレッシュを抑制して、メモリセルの劣化を防止することができる。
<5.第5の実施の形態>
上述の第1の実施の形態では、不揮発性メモリ400として2値メモリセルを想定していたが多値メモリセルを設けてもよい。この第5の実施の形態のメモリシステムは、不揮発性メモリ400として、多値メモリセルを備える点において第1の実施の形態と異なる。
図24は、第5の実施の形態における不揮発性メモリ400の一構成例を示すブロック図である。第5の実施の形態の不揮発性メモリ400は、メモリセルアレイ420の代わりにメモリセルアレイ421を備える点において第1の実施の形態と異なる。
メモリセルアレイ421は、二次元格子状に複数の多値メモリが設けられた点において第1の実施の形態と異なる。多値メモリセルのそれぞれには、複数のビットが保持される。
図25は、第5の実施の形態における読み出しを繰り返した後のメモリセルの抵抗分布の一例を示す図である。同図における縦軸は、メモリセルのセル数であり、横軸は、抵抗値である。ReRAMの多値メモリセルでは、その抵抗分布は、2つの閾値(Rref1_HおよびRref1_Lなど)を境に3つの分布に分かれている。これらは、例えば、低抵抗状態(LRS)、中抵抗状態(MRS:Middle-Resistance State)、および、高抵抗状態(HRS)と呼ばれる。LRSには、例えば、「1」の値が割り当てられ、MRSには「2」が割り当てられ、HRSには「0」が割り当てられる。
また、図25における点線の曲線は、書き換え直後のメモリセルの状態を示し、実線の曲線は、センス信号による読み出しの繰り返しにより変化したメモリセルの状態を示す。同図に例示するように、読み出しが繰り返されると抵抗値が高抵抗側へずれてしまう。このRDにより、「1」を書き込んだビットから、MRSに対応する「2」が読み出されるRDエラーが発生してしまう。あるいは、「2」を書き込んだビットから、HRSに対応する「0」が読み出されるRDエラーが発生してしまう。同図における斜線部分は、RDエラーが生じた部分を示す。
図26は、第5の実施の形態における読み出し回数の増加に伴う抵抗値の変化の一例を示す図である。同図における縦軸は、抵抗値であり、横軸は読み出し回数を示す。同図におけるaは、LRSに対応する「1」が書き込まれたメモリセルの抵抗値の変化を示す図である。左端の1回目の読み出しでは、抵抗値が参照抵抗値Rref1_Lより低く、「1」の値が正常に読み出される。そして、読み出しの繰り返しに伴ってRDにより抵抗値が上昇し、m’回目において参照抵抗値Rref1_Lを超えたものとする。この結果、MRSに対応する「2」の値が誤って読み出されるRDエラーが生じる。
メモリコントローラ300は、m’回目のリードデータからエラーを検出するとリフレッシュリクエストを発行し、不揮発性メモリ400は、参照抵抗値をRref2_LおよびRref2_Hに変更して、m’+1回目の再読み出しを行う。RDエラーであれば、m’+1回目では、正しい論理値「1」が読み出される。この場合に不揮発性メモリ400は、そのメモリセルを「1」に書き換える。
また、図26におけるbは、MRSに対応する「2」が書き込まれたメモリセルの抵抗値の変化を示す図である。左端の1回目の読み出しでは、抵抗値が参照抵抗値Rref1_HおよびRref1_Lの間であり、「2」の値が正常に読み出される。そして、読み出しの繰り返しに伴ってRDにより抵抗値が上昇し、n’回目において参照抵抗値Rref1_Hを超えたものとする。この結果、HRSに対応する「0」の値が誤って読み出されるRDエラーが生じる。
メモリコントローラ300は、n’回目のリードデータからエラーを検出するとリフレッシュリクエストを発行し、不揮発性メモリ400は、参照抵抗値をRref2_LおよびRref2_Hに変更して、n’+1回目の再読み出しを行う。RDエラーであれば、n’+1回目では、正しい論理値「2」が読み出される。この場合に不揮発性メモリ400は、そのメモリセルを「2」に書き換える。
このように、本技術の第5の実施の形態によれば、不揮発性メモリ400が、複数の閾値を基準としてリードデータをメモリセルごとに読み出し、それらの閾値を変えて再リードデータを読み出すため、多値メモリセルをメモリセルとして用いることができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
なお、本技術は以下のような構成もとることができる。
(1)第1の閾値を基準として複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理部と、
前記リードデータの誤りの有無を検出して前記複数のメモリセルのうち前記誤りのあるメモリセルを特定する誤り検出部と、
前記第1の閾値と異なる第2の閾値を基準として前記特定されたメモリセルからデータを再リードデータとして読み出す再リード処理を行う再リード処理部と、
前記特定されたメモリセルのうち前記再リードデータの値が前記リードデータと異なるメモリセルに対して前記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理部と
を具備するメモリシステム。
(2)前記特定されたメモリセルのうち所定のパターンの前記誤りが生じたメモリセルに対して前記再リード部に前記再リード処理を実行させるリフレッシュ制御部をさらに具備する
前記(1)記載のメモリシステム。
(3)前記誤りのあるメモリセルに割り当てられたアドレスを保持するアドレス保持部をさらに具備し、
前記リフレッシュ制御部は、所定の条件が満たされた場合には前記保持されたアドレスを読み出して当該アドレスを指定して前記リード処理部に前記リード処理を実行させる
前記(2)記載のメモリシステム。
(4)前記所定の条件は、前記保持されたアドレスの個数が所定個数を超えることである前記(2)または(3)記載のメモリシステム。
(5)前記所定の条件は、前記リフレッシュ処理の実行を指示するリフレッシュコマンドを前記リフレッシュ制御部が受信したことである
前記(2)または(3)記載のメモリシステム。
(6)前記複数のメモリセルは、前記複数のアドレスのいずれかが各々に割り当てられた複数の区画に分割され、
前記リフレッシュ制御部は、前記リフレッシュ処理を行うためのリフレッシュモードが設定された場合には前記複数のアドレスのそれぞれを順に指定して前記リード処理部に前記リード処理を実行させる
前記(2)に記載のメモリシステム。
(7)前記リフレッシュ制御部は、前記所定のパターンの前記誤りの個数が許容値を超える場合には前記特定されたメモリセルのうち前記所定のパターンの前記誤りが生じたメモリセルに対して前記再リード部に前記再リード処理を実行させる
前記(2)から(5)のいずれかに記載のメモリシステム。
(8)前記複数のメモリセルのそれぞれは、複数のビットを含むデータを保持し、
前記第1および第2の閾値のそれぞれは、複数の閾値を含む
前記(1)から(7)のいずれかに記載のメモリシステム。
(9)前記メモリセルの特性値は、データが読み出されるたびに特定の方向へ変化し、
前記第2の閾値は、前記第1の閾値から前記特定の方向へ変化させた値である
前記(1)から(8)のいずれかに記載のメモリシステム。
(10)複数のメモリセルと、
第1の閾値を基準として前記複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理部と、
前記第1の閾値と異なる第2の閾値を基準として前記リードデータに誤りのあるメモリセルの各々からデータを再リードデータとして読み出す再リード処理を行う再リード処理部と、
前記リードデータに誤りのある前記メモリセルのうち前記再リードデータの値が前記リードデータと異なるメモリセルに対して前記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理部と
を具備する記憶装置。
(11)リード処理部が、第1の閾値を基準として複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理手順と、
誤り検出部が、前記リードデータの誤りの有無を検出して前記特定されたメモリセルのうち前記誤りのあるメモリセルを特定する誤り検出手順と、
再リード処理部が、前記第1の閾値と異なる第2の閾値を基準として前記特定されたメモリセルからデータを再リードデータとして読み出す再リード処理を行う再リード処理手順と、
リフレッシュ処理部が、前記特定されたメモリセルのうち前記再リードデータの値が前記リードデータと異なるメモリセルに対して前記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理手順と
を具備するメモリシステムの制御方法。
100 ホストコンピュータ
200 ストレージ
300 メモリコントローラ
301 ホストインターフェース
302 RAM
303 CPU
304 ECC処理部
305 ROM
306、450 バス
307 メモリインターフェース
310 ライト制御部
320、321 リード制御部
330、331、332 リフレッシュ制御部
340 アドレスレジスタ
400 不揮発性メモリ
410 データバッファ
420、421 メモリセルアレイ
430 ドライバ
440 アドレスデコーダ
460 制御インターフェース
470 メモリ制御部
471 リクエストデコーダ
472 ライト処理部
473 リード処理部
474 再リード処理部
475 リフレッシュ処理部

Claims (11)

  1. 第1の閾値を基準として複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理部と、
    前記リードデータの誤りの有無を検出して前記複数のメモリセルのうち前記誤りのあるメモリセルを特定する誤り検出部と、
    前記第1の閾値と異なる第2の閾値を基準として前記特定されたメモリセルからデータを再リードデータとして読み出す再リード処理を行う再リード処理部と、
    前記特定されたメモリセルのうち前記再リードデータの値が前記リードデータと異なるメモリセルに対して前記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理部と
    を具備するメモリシステム。
  2. 前記特定されたメモリセルのうち所定のパターンの前記誤りが生じたメモリセルに対して前記再リード部に前記再リード処理を実行させるリフレッシュ制御部をさらに具備する
    請求項1記載のメモリシステム。
  3. 前記誤りのあるメモリセルに割り当てられたアドレスを保持するアドレス保持部をさらに具備し、
    前記リフレッシュ制御部は、所定の条件が満たされた場合には前記保持されたアドレスを読み出して当該アドレスを指定して前記リード処理部に前記リード処理を実行させる
    請求項2記載のメモリシステム。
  4. 前記所定の条件は、前記保持されたアドレスの個数が所定個数を超えることである
    請求項2記載のメモリシステム。
  5. 前記所定の条件は、前記リフレッシュ処理の実行を指示するリフレッシュコマンドを前記リフレッシュ制御部が受信したことである
    請求項2記載のメモリシステム。
  6. 前記複数のメモリセルは、前記複数のアドレスのいずれかが各々に割り当てられた複数の区画に分割され、
    前記リフレッシュ制御部は、前記リフレッシュ処理を行うためのリフレッシュモードが設定された場合には前記複数のアドレスのそれぞれを順に指定して前記リード処理部に前記リード処理を実行させる
    請求項2記載のメモリシステム。
  7. 前記リフレッシュ制御部は、前記所定のパターンの前記誤りの個数が許容値を超える場合には前記特定されたメモリセルのうち前記所定のパターンの前記誤りが生じたメモリセルに対して前記再リード部に前記再リード処理を実行させる
    請求項6記載のメモリシステム。
  8. 前記複数のメモリセルのそれぞれは、複数のビットを含むデータを保持し、
    前記第1および第2の閾値のそれぞれは、複数の閾値を含む
    請求項1記載のメモリシステム。
  9. 前記メモリセルの特性値は、データが読み出されるたびに特定の方向へ変化し、
    前記第2の閾値は、前記第1の閾値から前記特定の方向へ変化させた値である
    請求項1記載のメモリシステム。
  10. 複数のメモリセルと、
    第1の閾値を基準として前記複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理部と、
    前記第1の閾値と異なる第2の閾値を基準として前記リードデータに誤りのあるメモリセルの各々からデータを再リードデータとして読み出す再リード処理を行う再リード処理部と、
    前記リードデータに誤りのある前記メモリセルのうち前記再リードデータの値が前記リードデータと異なるメモリセルに対して前記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理部と
    を具備する記憶装置。
  11. リード処理部が、第1の閾値を基準として複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理手順と、
    誤り検出部が、前記リードデータの誤りの有無を検出して前記特定されたメモリセルのうち前記誤りのあるメモリセルを特定する誤り検出手順と、
    再リード処理部が、前記第1の閾値と異なる第2の閾値を基準として前記特定されたメモリセルからデータを再リードデータとして読み出す再リード処理を行う再リード処理手順と、
    リフレッシュ処理部が、前記特定されたメモリセルのうち前記再リードデータの値が前記リードデータと異なるメモリセルに対して前記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理手順と
    を具備するメモリシステムの制御方法。
JP2016561448A 2014-11-26 2015-10-08 メモリシステム、記憶装置、および、メモリシステムの制御方法 Active JP6497394B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014239060 2014-11-26
JP2014239060 2014-11-26
PCT/JP2015/078610 WO2016084497A1 (ja) 2014-11-26 2015-10-08 メモリシステム、記憶装置、および、メモリシステムの制御方法

Publications (2)

Publication Number Publication Date
JPWO2016084497A1 JPWO2016084497A1 (ja) 2017-08-31
JP6497394B2 true JP6497394B2 (ja) 2019-04-10

Family

ID=56074075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016561448A Active JP6497394B2 (ja) 2014-11-26 2015-10-08 メモリシステム、記憶装置、および、メモリシステムの制御方法

Country Status (3)

Country Link
US (1) US10031865B2 (ja)
JP (1) JP6497394B2 (ja)
WO (1) WO2016084497A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6149598B2 (ja) * 2013-08-19 2017-06-21 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
JP2016053808A (ja) * 2014-09-03 2016-04-14 ソニー株式会社 記憶制御装置、記憶装置、および、記憶制御方法
JP6765331B2 (ja) * 2017-03-24 2020-10-07 キオクシア株式会社 メモリシステム
US10885991B2 (en) * 2017-04-04 2021-01-05 Sandisk Technologies Llc Data rewrite during refresh window
KR102401183B1 (ko) * 2017-12-05 2022-05-24 삼성전자주식회사 메모리 장치 및 그 동작 방법
JP2020038738A (ja) 2018-09-03 2020-03-12 キオクシア株式会社 不揮発性メモリ及びメモリシステム
TW202324112A (zh) 2021-12-09 2023-06-16 韓商愛思開海力士有限公司 用以動態管理儲存裝置中的主機讀取運作及讀取刷新運作的方法、儲存裝置及其記錄媒體

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06110793A (ja) 1992-09-30 1994-04-22 Toshiba Corp 不揮発性半導体記憶装置
JP4660353B2 (ja) 2005-11-01 2011-03-30 株式会社東芝 記憶媒体再生装置
JP2012133642A (ja) * 2010-12-22 2012-07-12 Sony Corp メモリ装置、メモリ制御方法、およびプログラム
JP5269151B2 (ja) * 2011-06-09 2013-08-21 シャープ株式会社 半導体記憶装置
JP5740296B2 (ja) 2011-12-16 2015-06-24 株式会社東芝 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム
JP5839048B2 (ja) * 2012-01-12 2016-01-06 ソニー株式会社 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Also Published As

Publication number Publication date
JPWO2016084497A1 (ja) 2017-08-31
US10031865B2 (en) 2018-07-24
US20170329724A1 (en) 2017-11-16
WO2016084497A1 (ja) 2016-06-02

Similar Documents

Publication Publication Date Title
JP6497394B2 (ja) メモリシステム、記憶装置、および、メモリシステムの制御方法
JP6686892B2 (ja) メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
JP5942781B2 (ja) 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
US10430275B2 (en) Memory system
US20100241928A1 (en) Data Processing System Having ECC Encoding and Decoding Circuits Therein with Code Rate Selection Based on Bit Error Rate Detection
KR101614556B1 (ko) 에러 정정을 처리하는 방법과, 이의 방법을 사용하는 데이터 저장 디바이스, 호스트 디바이스, 컴퓨터 프로그램을 저장하는 컴퓨터-판독가능한 매체 및 메모리용 제어기
JP5839048B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
KR101602316B1 (ko) 반도체 메모리 장치 및 그것의 데이터 처리 방법
JP6891817B2 (ja) メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
JP6540703B2 (ja) メモリコントローラおよびメモリコントローラの制御方法
US9870830B1 (en) Optimal multilevel sensing for reading data from a storage medium
JP6958363B2 (ja) メモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法
KR20140113100A (ko) 레퍼런스 셀을 포함하는 불휘발성 메모리 장치 및 그것의 데이터 관리 방법 및
KR20180000593A (ko) 데이터의 오류를 정정하는 방법 및 이를 이용하는 반도체장치
EP2799998A1 (en) Storage control device, storage device, information processing system, and processing methods in same
JP5867264B2 (ja) 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
JP2017027440A (ja) 符号化装置、メモリシステム、通信システムおよび符号化方法
JP6497395B2 (ja) メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
US20140025907A1 (en) Storage control apparatus, storage apparatus, and processing methods thereof
KR102133209B1 (ko) 데이터 복호화 장치 및 데이터 복호화 방법
WO2017010147A1 (ja) 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法
KR20210010718A (ko) 메모리 시스템 및 메모리 시스템에서의 에러정정방법
KR20180024218A (ko) 쓰기 디스터번스 에러를 줄이기 위한 pcm 시스템 및 그의 제어 방법
WO2017026998A1 (en) Mapping resistance level states to multi-bit data values

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180824

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190225

R151 Written notification of patent or utility model registration

Ref document number: 6497394

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151