JP2013228767A - 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法 - Google Patents

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

Info

Publication number
JP2013228767A
JP2013228767A JP2012098316A JP2012098316A JP2013228767A JP 2013228767 A JP2013228767 A JP 2013228767A JP 2012098316 A JP2012098316 A JP 2012098316A JP 2012098316 A JP2012098316 A JP 2012098316A JP 2013228767 A JP2013228767 A JP 2013228767A
Authority
JP
Japan
Prior art keywords
rewrite
value
reset
memory cell
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012098316A
Other languages
English (en)
Other versions
JP5867264B2 (ja
Inventor
Kenichi Nakanishi
健一 中西
Keiichi Tsutsui
敬一 筒井
Yasushi Fujinami
靖 藤波
Naohiro Adachi
直大 足立
Hideaki Okubo
英明 大久保
Tatsuo Shinbashi
龍男 新橋
Takeshi Ishii
健 石井
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
Priority to JP2012098316A priority Critical patent/JP5867264B2/ja
Priority to US13/790,438 priority patent/US9152416B2/en
Priority to CN201310137113.1A priority patent/CN103377098B/zh
Publication of JP2013228767A publication Critical patent/JP2013228767A/ja
Application granted granted Critical
Publication of JP5867264B2 publication Critical patent/JP5867264B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】不揮発性メモリにおいて不良セルの増大を抑制する。
【解決手段】第2の書換え処理部は、2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する。第2の書換え処理部は、他方の値が書き込まれたメモリセルを一方の値に書き換える第2の書換え処理を実行する。第1のリトライ制御部は、第1の書換え処理の際にエラーが発生した場合には第1の書換え処理が実行されたメモリセルにおいて第2の書換え処理を実行させた後に第1の書換え処理を再度実行させる。
【選択図】図7

Description

本技術は、記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法に関する。詳しくは、不揮発性メモリを制御するための記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法に関する。
近年の情報処理システムにおいては、補助記憶装置やストレージとして、不揮発性メモリ(NVM:Non-Volatile memory)が用いられることがある。この不揮発性メモリは、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ(NVRAM:Non-Volatile RAM)とに大別される。ここで、フラッシュメモリの代表例としては、NAND型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、ReRAM(Resistance RAM)、PCRAM(Phase-Change RAM)、MRAM(Magnetoresistive RAM)などが挙げられる。
これらの不揮発性メモリに対するライト処理において、データが正常に書き込まれずにエラーが発生することがある。例えば、経年劣化や初期不良などにより特性が劣化したメモリセルにおいて、エラーが発生することが多い。一般に、書込み時にエラーが発生したメモリセルは不良セルとして扱われ、以降のライト処理において書込みの対象から除外される。このため、不良セルが増加すると、不揮発性メモリの実質的な容量が減少してしまう。そこで、データの書込みが正常に実行されなかった場合に、そのデータの書込みを再度試みるリトライ処理を実行する記憶装置が提案されている(例えば、特許文献1参照。)。
特開2004−220068号公報
しかしながら、上述の従来技術では、不良セルの増大を抑制することが困難である。不揮発性メモリにおいては、2値のうちの一方の値の書込みに失敗しても、他方の値の書込みには成功することがある。例えば、一方の値の書込み処理と、他方の値の書込み処理とのそれぞれにおいて、データが正常に書き込まれたか否かを判断する基準が異なる不揮発性メモリでは、一方の書込み処理のみに失敗することがありうる。ところが、上述のリトライ処理においては、同じ値のデータの書込みが実行されるため、その値と異なる値の書込みに成功しうるメモリセルであっても不良セルと判断されてしまうことがある。このため、不良セルの増大を抑制することが困難である。
本技術はこのような状況に鑑みて生み出されたものであり、不揮発性メモリにおいて不良セルの増大を抑制することを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、上記他方の値が書き込まれたメモリセルを上記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部と、上記第1の書換え処理の際にエラーが発生した場合には上記第1の書換え処理が実行された上記メモリセルにおいて上記第2の書換え処理を実行させた後に上記第1の書換え処理を再度実行させる第1のリトライ制御部とを具備する記憶制御装置、および、その制御方法である。これにより、第1の書換え処理においてエラーが発生した場合には第1の書換え処理が実行されたメモリセルにおいて第2の書換え処理が実行された後に第1の書換え処理が再度実行されるという作用をもたらす。
また、この第1の側面において、上記第2の書換え処理の際にエラーが発生した場合には上記第2の書換え処理が実行された上記メモリセルにおいて上記第1の書換え処理を実行させた後に上記第2の書換え処理を実行させる第2のリトライ制御部をさらに具備してもよい。これにより、第2の書換え処理においてエラーが発生した場合には第2の書換え処理が実行されたメモリセルにおいて第1の書換え処理が実行された後に第2の書換え処理が再度実行されるという作用をもたらす。
また、この第1の側面において、上記メモリセルは、所定の境界抵抗値を境界とする2つの抵抗状態のうちの一方の抵抗状態が上記一方の値に対応付けられ、他方の抵抗状態が上記他方の値に対応付けられた可変抵抗素子であり、上記第1の書換え処理部は、上記境界抵抗値より上記他方の抵抗状態側に設定された第1の抵抗値を基準として上記メモリセルからデータを読み出して当該データの値が上記他方の値でない場合には上記エラーが発生したものと判断し、上記第2の書換え処理部は、上記境界抵抗値より上記一方の抵抗状態側に設定された上記第2の抵抗値を基準として上記メモリセルからデータを読み出して当該データが上記一方の値でない場合には上記エラーが発生したものと判断してもよい。これにより、第1の抵抗値を基準としてメモリセルから読み出されたデータが他方の値でない場合には第1の書換え処理部によりエラーが発生したものと判断され、第2の抵抗値を基準としてメモリセルから読み出されたデータが一方の値でない場合には第2の書換え処理部によりエラーが発生したものと判断されるという作用をもたらす。
また、この第1の側面において、上記第1および第2の書換え処理の各々における上記エラーの検出回数に基づいて上記メモリセルが不良セルであるか否かを判定する不良セル判定部をさらに具備してもよい。これにより、第1および第2の書換え処理の各々におけるエラーの検出回数に基づいてメモリセルが不良セルであるか否かが判定されるという作用をもたらす。
また、この第1の側面において、上記第1の書換え処理部は、上記第2の書換え処理が実行された上記メモリセルにおいて上記第1の抵抗値を基準として第1のデータを読み出して当該第1のデータの値が上記一方の値である場合には上記第1の書換え処理を実行し、上記第2の書換え処理部は、上記第1の書換え処理が実行されたメモリセルにおいて上記第2の抵抗値を基準として第2のデータを読み出して当該第2のデータが上記他方の値である場合には上記第2の書換え処理を実行してもよい。これにより、第2の書換え処理が実行されたメモリセルにおいて第1の抵抗値を基準として読み出された第1のデータの値が一方の値である場合には第1の書換え処理が実行され、第1の書換え処理が実行されたメモリセルにおいて第2の抵抗値を基準として読み出された第2のデータの値が他方の値である場合には第2の書換え処理が実行されるという作用をもたらす。
また、この第1の側面において、第1の書換え処理部は、上記第2の書換え処理が実行された上記メモリセルにおいて上記第1の抵抗値を基準として第1のデータを読み出すとともに上記境界抵抗閾値を基準として第3のデータを読み出して上記第1のデータと第3のデータとの値が異なる場合には上記第1の書換え処理を実行し、上記第2の書換え処理部は、上記第1の書換え処理が実行された上記メモリセルにおいて上記第2の抵抗値を基準として第2のデータを読み出すとともに上記第3のデータを読み出して上記第2のデータと第3のデータとの値が異なる場合には上記第2の書換え処理を実行してもよい。これにより、第1のデータと第3のデータとの値が異なる場合には第1の書換え処理が実行され、第2のデータと第3のデータとの値が異なる場合には第2の書換え処理が実行されるという作用をもたらす。
また、本技術の第2の側面は、2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、上記他方の値が書き込まれたメモリセルを上記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部と、上記第1の書換え処理の際にエラーが発生した場合には所定のコマンドに従って上記第1の書換え処理が実行された上記メモリセルにおいて上記第2の書換え処理を実行させた後に上記第1の書換え処理を再度実行させるリトライ制御部とを備える記憶制御装置と、上記第1のエラーが発生した場合には上記所定のコマンドを発行する第1のコマンド発行部とを具備するメモリシステムである。これにより、第1の書換え処理においてエラーが発生した場合には第1の書換え処理が実行されたメモリセルにおいて第2の書換え処理が実行された後に第1の書換え処理が再度実行されるという作用をもたらす。
また、本技術の第3の側面は、2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、上記他方の値が書き込まれたメモリセルを上記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部とを備える記憶制御装置と、上記第1の書換え処理の際にエラーが発生した場合には上記第1の書換え処理が実行された上記メモリセルにおいて上記第2の書換え処理を実行させた後に上記第1の書換え処理を再度実行させる第1のリトライ制御部とを具備するメモリシステムである。これにより、第1の書換え処理においてエラーが発生した場合には第1の書換え処理が実行されたメモリセルにおいて第2の書換え処理が実行された後に第1の書換え処理が再度実行されるという作用をもたらす。
また、本技術の第4の側面は、2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、上記他方の値が書き込まれたメモリセルを上記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部と、上記第1の書換え処理の際にエラーが発生した場合には所定のコマンドに従って上記第1の書換え処理が実行された上記メモリセルにおいて上記第2の書換え処理を実行させた後に上記第1の書換え処理を再度実行させるリトライ制御部とを備える記憶制御装置と、上記第1のエラーが発生した場合には上記所定のコマンドを発行するホストコンピュータとを具備する情報処理システムである。これにより、第1の書換え処理においてエラーが発生した場合には第1の書換え処理が実行されたメモリセルにおいて第2の書換え処理が実行された後に第1の書換え処理が再度実行されるという作用をもたらす。
また、本技術の第5の側面は、2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、上記他方の値が書き込まれたメモリセルを上記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部とを備える記憶制御装置と、上記第1の書換え処理の際にエラーが発生した場合には上記第1の書換え処理が実行された上記メモリセルにおいて上記第2の書換え処理を実行させた後に上記第1の書換え処理を再度実行させるホストコンピュータとを具備する情報処理システムである。これにより、第1の書換え処理においてエラーが発生した場合には第1の書換え処理が実行されたメモリセルにおいて第2の書換え処理が実行された後に第1の書換え処理が再度実行されるという作用をもたらす。
本技術によれば、不揮発性メモリにおいて不良セルの増大を抑制することができるという優れた効果を奏し得る。
第1の実施の形態における情報処理システムの一構成例を示すブロック図である。 第1の実施の形態における可変抵抗素子の抵抗分布の一例を示す図である。 第1の実施の形態における抵抗値の遷移の一例を示す図である。 第1の実施の形態におけるメモリ制御回路の一構成例を示すブロック図である。 第1の実施の形態におけるステータスのデータ構造の一例を示す図である。 第1の実施の形態におけるアドレス変換テーブルの一構成例を示す図である。 第1の実施の形態におけるNVRAM制御回路の一構成例を示すブロック図である。 第1の実施の形態におけるメモリ制御部の動作の一例を示すフローチャートである。 第1の実施の形態におけるNVRAMの動作の一例を示すフローチャートである。 第1の実施の形態におけるライト処理の一例を示すフローチャートである。 第1の実施の形態におけるリセット処理の一例を示すフローチャートである。 第1の実施の形態におけるセット処理の一例を示すフローチャートである。 第1の実施の形態におけるリセットリトライ処理の一例を示すフローチャートである。 第1の実施の形態におけるセットリトライ処理の一例を示すフローチャートである。 第1の実施の形態におけるメモリシステムの動作の一例を示すシーケンス図である。 第1の実施の形態におけるリセットリトライ処理が実行されたデータの具体例を示す図である。 第1の実施の形態におけるセット処理が実行されたデータの具体例を示す図である。 第1の実施の形態におけるリセットリトライ処理の際のメモリセルの状態の遷移の一例を示す図である。 第2の実施の形態におけるNVRAM制御回路の一構成例を示すブロック図である。 第2の実施の形態におけるリセットリトライ処理の一例を示すフローチャートである。 第2の実施の形態におけるセットリトライ処理の一例を示すフローチャートである。 第2の実施の形態におけるリセットリトライ処理が実行されたデータの具体例を示す図である。 第2の実施の形態におけるリセットリトライ処理の際のメモリセルの状態の遷移の一例を示す図である。 第3の実施の形態におけるメモリ制御回路の一構成例を示すブロック図である。 第3の実施の形態におけるNVRAM制御回路の一構成例を示すブロック図である。 第3の実施の形態におけるメモリ制御部の動作の一例を示すフローチャートである。 第3の実施の形態におけるリセットリトライ制御処理の一例を示すフローチャートである。 第3の実施の形態におけるセットリトライ制御処理の一例を示すフローチャートである。 第3の実施の形態におけるNVRAMの動作の一例を示すフローチャートである。 第3の実施の形態におけるプレリード・セット処理の一例を示すフローチャートである。 第3の実施の形態におけるプレリード・リセット処理の一例を示すフローチャートである。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(リトライ制御においてリフレッシュ処理を行ってから再書換えを行う例)
2.第2の実施の形態(リフレッシュが有効なメモリセルのみをリフレッシュ処理してから再書換えを行う例)
3.第3の実施の形態(メモリ制御部の制御に従ってリフレッシュ処理および再書換えを行う例)
<1.第1の実施の形態>
[情報処理システムの構成例]
図1は、第1の実施の形態における情報処理システムの一構成例を示すブロック図である。この情報処理システムは、ホストコンピュータ100およびメモリシステムを備える。このメモリシステムは、メモリ制御部200およびNVRAM300を備える。
ホストコンピュータ100は、メモリシステムを制御するものである。具体的には、ホストコンピュータ100は、コマンドを発行して、そのコマンド、アドレス、および、データをメモリ制御部200に信号線109を介して供給する。また、ホストコンピュータ100は、メモリシステムからデータおよびステータスを受け取る。ここで、コマンドは、メモリシステムを制御するためのものであり、例えば、データのライト処理を指示するライトコマンドや、データのリード処理を指示するリードコマンドを含む。アドレスは、NVRAM300内のデータの格納場所を示すものであり、具体的には、ホストコンピュータ100が定義したアドレス空間における論理アドレスである。この論理アドレスは、メモリシステムにおいて物理アドレスに変換される。この物理アドレスは、NVRAM300においてメモリセルに割り当てられた実際のアドレスである。データは、メモリシステムに書き込まれるライトデータや、メモリシステムから読み出されたリードデータを含む。
ステータスは、コマンドの実行結果やメモリシステムの状況を通知する情報である。このステータスには、コマンドの実行結果として、エラーの発生の有無と、そのエラーの種類とが記載される。エラーの種類の詳細については、後述する。
メモリ制御部200は、NVRAM300を制御するものである。このメモリ制御部200は、ホストインターフェース210、メモリ制御回路220およびメモリインターフェース230を備える。なお、メモリ制御部200は、特許請求の範囲に記載の記憶制御装置の一例である。
ホストインターフェース210は、ホストコンピュータ100との間でコマンド、アドレス、データ、および、ステータスなどをやりとりするインターフェースである。ホストインターフェース210としては、例えば、SATA(Serial Advanced Technology Attachment)、PCI Expressなどを利用することができる。
メモリ制御回路220は、メモリ制御部200全体を制御するものである。このメモリ制御回路220は、ホストインターフェース210を介してライトコマンド、アドレスおよびライトデータを受け取った場合には、それらをメモリインターフェース230に供給する。そして、メモリ制御回路220は、メモリインターフェース230を介して、ライトコマンドに対応するステータスを受け取った場合には、そのステータスをホストインターフェース210に供給する。
また、メモリ制御回路220は、ホストインターフェース210を介してリードコマンドおよびアドレスを受け取った場合には、それらをメモリインターフェース230に供給する。そして、メモリ制御回路220は、メモリインターフェース230を介してステータスおよびリードデータを受け取った場合には、それらをホストインターフェース210に供給する。
メモリインターフェース230は、NVRAM300との間でコマンド、アドレス、データ、および、ステータスなどをやりとりするインターフェースである。
NVRAM300は、制御インターフェース310、NVRAM制御回路320およびメモリセルアレイ330を備える。
制御インターフェース310は、メモリ制御部200との間でコマンド、アドレス、データ、および、ステータスなどをやりとりするインターフェースである。
NVRAM制御回路320は、NVRAM300全体を制御するものである。具体的には、NVRAM制御回路320は、制御インターフェース310を介してライトコマンド、アドレス、および、ライトデータを受け取った場合には、そのアドレスに書き込まれているデータを既書込みデータとして読み出す。この読出しは、プレリードと呼ばれる。NVRAM制御回路320は、ライトデータと既書込みデータとをビット単位で比較し、ライトデータにおいて「1」であり、かつ、既書込みデータにおいて「0」のビットを書き換え対象とする。NVRAM制御回路320は、それらの書き換え対象のビットを「1」に書き換える。以下、この処理をリセット処理と称する。なお、このリセット処理は、プログラム処理とも呼ばれる。
次に、NVRAM制御回路320は、ライトデータとセット処理後の既書込みデータとをビット単位で比較し、ライトデータにおいて「0」であり、かつ、既書込みデータにおいて「1」のビットを書き換え対象とする。NVRAM制御回路320は、それらの書き換え対象のビットを「0」に書き換える。以下、この処理をセット処理と称する。なお、このセット処理は、消去処理とも呼ばれる。
そして、NVRAM制御回路320は、リセット処理およびセット処理の実行結果をステータスに記載する。この実行結果は、エラーの発生の有無と、そのエラーの種類とを含む。エラーの種類としては、リセットエラーおよびセットエラーがある。リセットエラーは、リセット処理において発生したエラーであり、セットエラーは、セット処理において発生したエラーである。
また、制御インターフェース310を介してリードコマンドおよびアドレスおよびを受け取った場合には、NVRAM制御回路320は、メモリセルアレイ330内の対応するアドレスからデータを読み出してメモリ制御部200に転送する。なお、NVRAM制御回路320は、特許請求の範囲に記載の記憶制御装置の一例である。
メモリセルアレイ330は、配列された複数のメモリセルを備える。各々のメモリセルとして、例えば、可変抵抗素子を用いるReRAMが用いられる。なお、ライト処理においてセット処理およびリセット処理の各々が順に実行される不揮発性メモリであれば、ReRAM以外の不揮発性メモリをメモリセルアレイ330において用いてもよい。
図2は、ReRAMにおける可変抵抗素子の抵抗分布を模式的に示した図である。横軸は、抵抗値Rを示しており、縦軸は、セルの数の相対的な分布を相対値により示している。この図が示すように可変抵抗素子の抵抗分布は、大きく2つの分布に分かれており、それぞれ低抵抗状態(LRS:Low-Resistance State)および高抵抗状態(HRS:High-Resistance State)と称する。これら低抵抗状態と高抵抗状態とを分離するために通常用いられる閾値を境界抵抗値(R_read)と呼ぶことにする。
可変抵抗素子の高抵抗状態および低抵抗状態をそれぞれ論理0値または論理1値の何れ
かに対応付けることにより、可変抵抗素子はメモリセルとして機能する。論理0値または論理1値の何れに対応付けるかは任意である。例えば、高抵抗状態が論理1値に対応付けられ、低抵抗状態が論理0値に対応付けられる。
ここで、低抵抗状態(LRS)のうち、抵抗値が比較的高い状態はデータの保持特性がよくない。このため、抵抗値を低下させるための処理(例えば、セット処理)においては、境界抵抗値より低い抵抗値が閾値として用いられることがある。この閾値を、以下、「低抵抗閾値(R_set)」と称する。また、この低抵抗閾値より抵抗が低い状態を安定抵抗状態(sLRS:stable and Low-Resistance State)と称する。抵抗値が低抵抗閾値より高く境界抵抗値以下の状態を不安定抵抗状態(uLRS:unstable and Low-Resistance State)と称する。
また、高抵抗状態(HRS)のうち、抵抗値が比較的低い状態はデータの保持特性がよくない。このため、抵抗値を上昇させる処理(例えば、リセット処理)においては、境界抵抗値より高い抵抗値が閾値として用いられることがある。この閾値を、以下、「高抵抗閾値(R_reset)」と称する。また、この高抵抗閾値より抵抗が高い状態を安定抵抗状態(sHRS:stable and High-Resistance State)と称する。抵抗値が高抵抗閾値より低く境界抵抗値以上の状態を不安定抵抗状態(uHRS:unstable and High-Resistance State)と称する。
図3は、第1の実施の形態における抵抗値の遷移の一例を示す図である。図3aは、セット処理における抵抗値の遷移の一例を示す図である。セット処理においては、抵抗値を低下させる制御が行われた後、データが書き込まれたか否かを検証(すなわち、ベリファイ)するために、低抵抗閾値(R_set)を基準としてメモリセルからデータが読み出される。例えば、抵抗値がR_set以下である場合には「0」の値のデータが読み出される。一方、R_setより大きい場合には「1」の値のデータが読み出され、書込みに失敗したと判断される。一定回数以上、失敗した場合にはセットエラーが発生したと判断される。
図3bは、リセット処理における抵抗値の遷移の一例を示す図である。リセット処理においては、抵抗値を上昇させる制御が行われた後、データが書き込まれたか否かを検証(すなわち、ベリファイ)するために、高抵抗閾値(R_reset)を基準としてメモリセルからデータが読み出される。例えば、抵抗値がR_reset以上である場合には「1」の値のデータが読み出される。一方、R_reset未満である場合には「0」の値のデータが読み出され、書込みに失敗したと判断される。一定回数以上、失敗した場合にはリセットエラーが発生したと判断される。
[メモリ制御回路の構成例]
図4は、第1の実施の形態におけるメモリ制御回路220の一構成例を示すブロック図である。このメモリ制御回路220は、コマンドデコーダ221、ECC処理部222、アドレス変換部223、アドレス変換テーブル224、不良セル判定部225、リセットリトライコマンド発行部226、および、セットリトライコマンド発行部227を備える。
コマンドデコーダ221は、ホストインターフェース210を介して受け取ったホストコンピュータ100からのコマンドをデコードするものである。コマンドデコーダ221は、デコードしたコマンド(ライトコマンドやリードコマンド)をNVRAM300にメモリインターフェース230を介して供給する。
ECC処理部222は、ライトデータについてエラー訂正コード(ECC:Error Correcting Code)を生成するとともに、ECCに基づいてリードデータにおけるエラーの検出および訂正を行うものである。このECC処理部222は、ホストインターフェース210を介してライトデータを受け取った場合には、そのライトデータについてECCを生成し、そのECCをライトデータとともにNVRAM300にメモリインターフェース230を介して供給する。また、NVRAM300からメモリインターフェース230を介してリードデータと、そのリードデータのECCとを受け取った場合には、ECC処理部222は、ECCに基づいてリードデータにおけるエラーの検出および訂正を行う。そして、ECC処理部222は、検出および訂正後のリードデータをホストコンピュータ100にホストインターフェース210を介して供給する。
アドレス変換部223は、論理アドレスを物理アドレスに変換するものである。アドレス変換部223は、ホストインターフェース210を介して論理アドレスを受け取った場合には、アドレス変換テーブル224から、論理アドレスに対応する物理アドレスを読み出す。対応する物理アドレスがない場合には、アドレス変換部223は、アドレス変換テーブル224において、不良でない物理アドレスのいずれかを物理アドレスに対応付ける。アドレス変換部223は、変換した物理アドレスを不良セル判定部225およびNVRAM300に供給する。
アドレス変換テーブル224は、物理アドレスと論理アドレスとを対応付けたテーブルである。また、このアドレス変換テーブル224には、物理アドレスごとに、その物理アドレスが不良な物理アドレスであるか否かが記載される。ここで、不良な物理アドレスとは、データの保持特性が劣化したメモリセルである不良セルに対応する物理アドレスである。
不良セル判定部225は、セットエラーまたはリセットエラーの発生回数に基づいて、それらのエラーが発生したメモリセルが、不良セルであるか否かを判定するものである。この不良セル判定部225は、NVRAM300からセットエラーまたはリセットエラーが記載されたステータスを受け取った場合に、それらに基づいてライト処理の対象のメモリセルが不良セルであるか否かを判定する。例えば、不良セル判定部225は、ライト処理において、セットエラーおよびリセットエラーのいずれかが2回以上発生した場合に、そのライト処理の対象のメモリセルが不良セルであると判定する。不良セルであると判定した場合には、不良セル判定部225は、ライト処理の対象の物理アドレスが不良であることをアドレス変換テーブル224に記載する。
一方、不良セルでないと判定した場合には、不良セル判定部225は、エラーの種類に基づいてリセットリトライコマンド発行部226およびセットリトライコマンド発行部227のいずれかにエラーの発生を通知する。具体的には、不良セル判定部225は、リセットエラーであれば、リセットエラーの発生をリセットリトライコマンド発行部226に通知し、セットエラーであれば、セットエラーの発生をセットリトライコマンド発行部227に通知する。
リセットリトライコマンド発行部226は、リセットエラーが発生した場合にリセットリトライコマンドを発行するものである。リセットリトライコマンドは、リセット処理が行われたメモリセルにおいて、セット処理の後にリセット処理を再度実行するように指示するコマンドである。リセットリトライコマンド発行部226は、発行したリセットリトライコマンドをNVRAM300にメモリインターフェース230を介して供給する。
セットリトライコマンド発行部227は、セットエラーが発生した場合にセットリトライコマンドを発行するものである。セットリトライコマンドは、セット処理が行われたメモリセルにおいて、リセット処理の後にセット処理を再度実行するように指示するコマンドである。セットリトライコマンド発行部227は、発行したセットリトライコマンドをNVRAM300にメモリインターフェース230を介して供給する。なお、リセットリトライコマンド発行部226は、特許請求の範囲に記載の第1のコマンド発行部の一例である。
なお、図4において、ライトコマンド、リセットリトライコマンド、および、セットリトライコマンドは、記載の便宜上、別々の信号線を介して転送されるように図示されているが、実際にはこれらは同じ信号線において転送される。また、リセットリトライコマンド発行部226およびセットリトライコマンド発行部227をメモリ制御部200に設ける構成としているが、これらをホストコンピュータ100に設ける構成としてもよい。
図5は、第1の実施の形態におけるステータスのデータ構造の一例を示す図である。ステータスは、例えば、7ビットのデータから構成される。ステータスの第0ビットは、エラーが発生したか否かを示す。例えば、ライト処理またはリード処理が正常に終了した場合には、第0ビットに「0」の値が設定され、エラーが発生した場合には「1」の値が設定される。ステータスの第1ビットは、ライト処理において生じたエラーの種類を示す。例えば、セットエラーが生じた場合には、第1ビットに「0」の値が設定され、リセットエラーが発生した場合には「1」の値が設定される。
また、ステータスの第6ビットは、NVRAM300がビジー状態であるか否かを示す。例えば、ビジー状態である場合には第6ビットに「0」の値が設定され、レディ状態である場合には「1」の値が設定される。ステータスの第7ビットは、NVRAM300が保護されているか否かを示す。ここで、「保護されている」とは、NVRAM300に対するライトデータの書込みが禁止されていることを意味する。例えば、保護されている場合には第7ビットに「0」の値が設定され、保護されていない場合には「1」の値が設定される。
なお、エラーがセットエラーであるかリセットエラーであるかを示す情報を含むのであれば、ステータスのデータ構造は、図5に例示した構成に限定されない。
図6は、第1の実施の形態におけるアドレス変換テーブル224の一構成例を示す図である。このアドレス変換テーブル224には、論理アドレスと物理アドレスとが対応付けて記載される。また、物理アドレスの各々には、物理アドレスが不良であるか否かを示す情報が記載される。例えば、物理アドレスが不良アドレスでない場合には、その物理アドレスに対応付けて「0」の値が記載され、不良アドレスである場合には「1」の値が記載される。なお、物理アドレスごとに、不良であるか否かを示す情報を対応付けたテーブルを、論理アドレスおよび物理アドレスを対応づけたテーブルと別に設けてもよい。
図7は、第1の実施の形態におけるNVRAM制御回路320の一構成例を示すブロック図である。このNVRAM制御回路320は、ライト制御部321、リセットリトライ制御部322、セットリトライ制御部323、リセット処理部324、セット処理部325、閾値記憶部326、および、ステータス生成部327を備える。
ライト制御部321は、ライトコマンドに従って、リセット処理およびセット処理を順に実行させるものである。このライト制御部321は、制御インターフェース310を介してライトコマンドを受け取った場合には、そのコマンドに従って、リセット処理部324を制御してリセット処理を実行させる。この制御において、ライト制御部321は、リセット処理を指示するリセットコマンドを発行してリセット処理部324に供給する。そして、ライト制御部321は、セット処理部325を制御してセット処理を実行させる。この制御において、ライト制御部321は、セット処理を指示するセットコマンドを発行してセット処理部325に供給する。
なお、ライト制御部321は、リセット処理およびセット処理のうち、リセット処理を先に実行させているが、逆に、セット処理を先に実行させてもよい。また、セットエラーおよびリセットエラーの各々の発生確率のうち、いずれの方が高いかが判明している場合には、ライト制御部321は、それらの発生確率に基づいてリセット処理およびセット処理の順番を決定してもよい。具体的には、ライト制御部321は、リセットエラーの発生確率がセットエラーより高い場合には、リセット処理を先に実行させ、セットエラーの発生確率がリセットエラーより高い場合には、セット処理を先に実行させる。エラー発生確率の高い方の処理を先に実行することにより、エラーの発生からリトライ処理の開始までの時間を短縮することができる。
リセットリトライ制御部322は、リセットリトライコマンドに従って、リセット処理およびセット処理を順に実行させるものである。このリセットリトライ制御部322は、制御インターフェース310を介してリセットリトライコマンドを受け取った場合には、リセット処理が実行されたメモリセルにおいて、セットコマンドによりセット処理部325を制御してセット処理を実行させる。そして、リセットリトライ制御部322は、そのメモリセルにおいて、リセットコマンドによりリセット処理部324にリセット処理を再度実行させる。なお、リセットリトライ制御部322は、特許請求の範囲に記載の第1のリトライ制御部の一例である。
セットリトライ制御部323は、セットリトライコマンドに従って、リセット処理およびセット処理を順に実行させるものである。このセットリトライ制御部323は、制御インターフェース310を介してセットリトライコマンドを受け取った場合には、セット処理が実行されたメモリセルにおいて、リセットコマンドによりリセット処理部324にリセット処理を実行させる。そして、セットリトライ制御部323は、そのメモリセルにおいて、セットコマンドによりセット処理部325を制御してセット処理を再度実行させる。なお、セットリトライ制御部323は、特許請求の範囲に記載の第2のリトライ制御部の一例である。
リセット処理部324は、ライト制御部321、リセットリトライ制御部322またはセットリトライ制御部323の制御に従って、リセット処理を実行するものである。リセット処理部324は、高抵抗閾値R_resetを閾値記憶部326から取得し、その閾値を基準としてプレリードを行い、プレリードしたデータに基づいてメモリセルのリセットを実行する。そして、リセット処理部324は、リセットしたメモリセルから高抵抗閾値R_resetを基準としてデータを読み出し、ベリファイを行う。リセット処理部324は、ベリファイの結果、リセット対象のメモリセルのいずれかがリセットされていなければ、リセットエラーが発生したものと判断する。リセット処理部324は、エラーの発生の有無を含む実行結果をステータス生成部327に通知する。なお、リセット処理部324は、特許請求の範囲に記載の第1の書換え処理部の一例である。
セット処理部325は、ライト制御部321、リセットリトライ制御部322またはセットリトライ制御部323の制御に従って、セット処理を実行するものである。セット処理部325は、低抵抗閾値R_setを閾値記憶部326から取得し、その閾値を基準としてプレリードを行い、プレリードしたデータに基づいてメモリセルのセットを実行する。そして、セット処理部325は、セットしたメモリセルから低抵抗閾値R_setを基準としてデータを読み出し、ベリファイを行う。セット処理部325は、ベリファイの結果、セット対象のメモリセルのいずれかがセットされていなければ、セットエラーが発生したものと判断する。セット処理部325は、エラーの発生の有無を含む実行結果をステータス生成部327に通知する。なお、セット処理部325は、特許請求の範囲に記載の第2の書換え処理部の一例である。
閾値記憶部326は、低抵抗閾値R_setおよび高抵抗閾値R_resetを記憶するものである。
ステータス生成部327は、リセット処理部324およびセット処理部325の実行結果に基づいてステータスを生成するものである。ステータス生成部327は、リセット処理部324またはセット処理部325においてエラーが検出されなかった場合には、正常終了を記載したステータスを生成する。一方、ステータス生成部327は、リセット処理部324においてエラーが発生した場合には、リセットエラーを記載したステータスを生成し、セット処理部325においてエラーが発生した場合には、セットエラーを記載したステータスを生成する。そして、ステータス生成部327は、生成したステータスをメモリ制御部200に制御インターフェース310を介して供給する。
また、NVRAM制御回路320は、リードコマンドを受け取った場合には、そのコマンドに従ってリード処理を実行する。リード処理を実行する回路等は、図7において省略されている。
[メモリ制御部の動作例]
図8は、第1の実施の形態におけるメモリ制御部200の動作の一例を示すフローチャートである。この動作は、例えば、メモリ制御部200がホストコンピュータ100からライトコマンドを受け取った場合に開始する。なお、リードコマンドを受け取った場合のメモリ制御部200の動作は図8において省略されている。
メモリ制御部200におけるコマンドデコーダ221は、ライトコマンドをデコードしてNVRAM300に転送する(ステップS901)。メモリ制御部200における不良セル判定部225は、NVRAM300からステータスを受け取り、そのステータスに基づいてリセット処理またはセット処理においてエラーが発生したか否かを判断する(ステップS902)。エラーが発生した場合には(ステップS902:Yes)、不良セル判定部225は、その最初に発生したエラーがリセットエラーであるか否かを判断する(ステップS903)。
最初のエラーがリセットエラーである場合には(ステップS903:Yes)、メモリ制御部200におけるリセットリトライコマンド発行部226は、リセットリトライコマンドを発行する(ステップS904)。そして、不良セル判定部225は、NVRAM300から再度ステータスを受け取り、リセット処理またはセット処理においてエラーが発生したか否かを判断する(ステップS905)。不良セル判定部225は、2回目に発生したエラーがリセットエラーであるか否かを判断する(ステップS906)。
2回目のエラーがリセットエラーでない場合には(ステップS906:No)、メモリ制御部200におけるセットリトライコマンド発行部227は、セットリトライコマンドを発行する(ステップS907)。そして、不良セル判定部225は、NVRAM300から再度ステータスを受け取り、リセット処理またはセット処理においてエラーが発生したか否かを判断する(ステップS908)。3回目のエラーが発生した場合(ステップS908:Yes)、または、2回目のエラーがリセットエラーであった場合(ステップS906:Yes)、不良セル判定部225は、ライト処理の対象のメモリセルを不良セルであると判定する。不良セル判定部225は、不良セルに対応する物理アドレスを不良アドレスとして、アドレス変換テーブル224に登録する(ステップS914)。
最初のエラーがリセットエラーでない場合には(ステップS903:No)、セットリトライコマンド発行部227は、セットリトライコマンドを発行する(ステップS909)。そして、不良セル判定部225は、NVRAM300から再度ステータスを受け取り、リセット処理またはセット処理においてエラーが発生したか否かを判断する(ステップS910)。エラーが発生した場合には(ステップS910:Yes)、不良セル判定部225は、2回目に発生したエラーがセットエラーであるか否かを判断する(ステップS911)。
2回目のエラーがセットエラーでない場合には(ステップS911:No)、リセットリトライコマンド発行部226は、リセットリトライコマンドを発行する(ステップS912)。そして、不良セル判定部225は、NVRAM300から再度ステータスを受け取り、リセット処理またはセット処理においてエラーが発生したか否かを判断する(ステップS913)。3回目のエラーが発生した場合(ステップS913:Yes)、または、2回目のエラーがセットエラーであった場合(ステップS911:Yes)、不良セル判定部225は、ライト処理の対象のメモリセルが不良セルであると判定する(ステップS914)。
ステップS902、S905、S908、S910、または、S913においてエラーが発生しなかった場合、または、ステップS914の実行後、メモリ制御部200は動作を終了する。
[NVRAMの動作例]
図9は、NVRAM300の動作の一例を示すフローチャートである。この動作は、例えば、NVRAM300に電源が投入されたときに開始する。なお、リードコマンドを受け取った場合のNVRAM300の動作は図9において省略されている。
NVRAM300は、メモリ制御部200からライトコマンドを受け取ったか否かを判断する(ステップS921)。ライトコマンドを受け取った場合には(ステップS921:Yes)、NVRAM300におけるライト制御部321は、ライトデータをメモリセルに書き込むためのライト処理を実行する(S930)。
ライトコマンドを受け取っていない場合(ステップS921:No)、または、ステップS930の実行後、NVRAM300はメモリ制御部200からリセットリトライコマンドを受け取ったか否かを判断する(ステップS922)。リセットリトライコマンドを受け取った場合には(ステップS922:Yes)、NVRAM300におけるリセットリトライ制御部322は、リセット処理を再度実行させるためのリセットリトライ処理を実行する(S960)。
リセットリトライコマンドを受け取っていない場合(ステップS922:No)、または、ステップS960の実行後、NVRAM300はメモリ制御部200からセットリトライコマンドを受け取ったか否かを判断する(ステップS923)。セットリトライコマンドを受け取った場合には(ステップS923:Yes)、NVRAM300におけるセットリトライ制御部323は、セット処理を再度実行させるためのセットリトライ処理を実行する(S970)。セットリトライコマンドを受け取っていない場合(ステップS923:No)、または、ステップS970の実行後、NVRAM300はステップS921に戻る。
図10は、第1の実施の形態におけるライト処理の一例を示すフローチャートである。ライト制御部321は、リセット処理部324にリセット処理の実行を指示する。リセット処理部324は、まず、ライトデータを取得して保持する(ステップS931)。また、リセット処理部324は、高抵抗閾値R_resetを基準として、ライト処理の対象のアドレスにおいてプレリードを行う(ステップS932)。リセット処理部324は、プレリードしたプレリードデータと、ライトデータとにおいて対応するビットを比較して、リセットマスクデータを生成する(ステップS933)。このリセットマスクデータは、ライトデータにおいてリセットされ、かつ、プレリードデータにおいてセットされているビットについてはリセットする旨を示し、それ以外のビットについてはマスクする旨を示す。リセット処理部324は、リセットマスクデータに基づいてリセット処理を実行する(ステップS940)。
ライト制御部321は、リセットエラーが発生したか否かを判断する(ステップS934)。リセットエラーが発生しなかった場合には(ステップS934:No)、ライト制御部321は、セット処理部325にセット処理の実行を指示する。セット処理部325は、リセット後のプレリードデータとライトデータとにおいて、対応するビットを比較してセットマスクデータを生成する(ステップS935)。このセットマスクデータは、ライトデータにおいてセットされ、かつ、リセット後のプレリードデータにおいてリセットされているビットについてはセットする旨を示し、それ以外のビットについてはマスクする旨を示す。セット処理部325は、セットマスクデータに基づいてセット処理を実行する(ステップS950)。
ステータス生成部327は、セットエラーが発生したか否かを判断する(ステップS937)。セットエラーが発生した場合には(ステップS937:Yes)、ステータス生成部327は、セットエラーの発生を記載したステータスを生成してメモリ制御部200に転送する(ステップS938)。一方、リセットエラーが発生した場合には(ステップS934:Yes)、ステータス生成部327は、リセットエラーの発生を記載したステータスを生成してメモリ制御部200に転送する(ステップS936)。セットエラーが発生しなかった場合(ステップS937:No)、もしくは、ステップS936またはS938の実行後、ライト制御部321はライト処理を終了する。
図11は、第1の実施の形態におけるリセット処理の一例を示すフローチャートである。リセット処理部324は、リセットマスクデータによりリセットする旨が示されたビットのみを「0」から「1」に書き換える処理(リセット制御処理)を行う(ステップS941)。そして、リセット処理部324は、リセットしたメモリセルから高抵抗閾値R_resetを基準としてデータを読み出し、リセット対象のメモリセルが全てリセットされたか否かを検証(すなわち、ベリファイ)する(ステップS942)。
リセット処理部324は、リセット対象のメモリセルが全てリセットされた(すなわち、リセットが成功した)か否かを判断する(ステップS943)。リセットが失敗した場合には(ステップS943:No)、リセット処理部324は、タイムアウトしたか否かを判断する(ステップS944)。ここで、タイムアウトとは、リセットまたはセットの失敗回数が一定数以上となったことを意味する。
タイムアウトしていない場合には(ステップS944:No)、リセット処理部324は、ステップS941に戻る。タイムアウトした場合には(ステップS944:Yes)、リセット処理部324は、リセットエラーが発生したものと判断する(ステップS945)。リセットが成功した場合(ステップS943:Yes)、または、ステップS945の実行後、リセット処理部324はリセット処理を終了する。
図12は、第1の実施の形態におけるセット処理の一例を示すフローチャートである。セット処理部325は、セットマスクデータによりセットする旨が示されたビットのみを「1」から「0」に書き換える処理(セット制御処理)を行う(ステップS951)。そして、セット処理部325は、セットしたメモリセルから低抵抗閾値R_setを基準としてデータを読み出し、セット対象のメモリセルが全てセットされたか否かを検証(ベリファイ)する(ステップS952)。
セット処理部325は、セット対象のメモリセルが全てセットされた(すなわち、セットが成功した)か否かを判断する(ステップS953)。セットが失敗した場合には(ステップS953:No)、セット処理部325は、タイムアウトしたか否かを判断する(ステップS954)。
タイムアウトしていない場合には(ステップS954:No)、セット処理部325は、ステップS951に戻る。タイムアウトした場合には(ステップS954:Yes)、セット処理部325は、セットエラーが発生したものと判断する(ステップS955)。セットが成功した場合(ステップS953:Yes)、または、ステップS955の実行後、セット処理部325はセット処理を終了する。
図13は、第1の実施の形態におけるリセットリトライ処理の一例を示すフローチャートである。リセットリトライ制御部322は、セット処理部325にセット処理の実行をセットコマンドにより指示する。リセットに失敗したメモリセルは、一旦セットすることにより、データ保持特性が改善して、再度のリセットに成功する確率が高くなる。以下、リセットリトライ処理において、データ保持特性の改善のために実行されるセット処理をリフレッシュセット処理と称する。セット処理部325は、リセットされたメモリセルにおいて、低抵抗閾値R_setを基準としてプレリードを行う(ステップS961)。セット処理部325は、プレリードしたリセット対象のビットのうち、リセットされているビットのみをセットするためのセットマスクデータを生成する(ステップS962)。セット処理部325は、セットマスクデータに基づいてセット処理(リフレッシュセット処理)を実行する(ステップS950)。
リセットリトライ制御部322は、セットエラーが発生したか否かを判断する(ステップS963)。セットエラーが発生しなかった場合には(ステップS963:No)、リセットリトライ制御部322は、リセット処理部324に再度のリセット処理の実行をリセットコマンドにより指示する。リセット処理部324は、ライトデータを取得する(ステップS964)。リセット処理部324は、セットされたデータとライトデータとからリセットマスクデータを生成する(ステップS966)。リセット処理部324は、リセットマスクデータに基づいてリセット処理を実行する(ステップS940)。
ステータス生成部327は、リセットエラーが発生したか否かを判断する(ステップS967)。リセットエラーが発生した場合には(ステップS967:Yes)、ステータス生成部327は、リセットエラーの発生を記載したステータスを生成してメモリ制御部200に転送する(ステップS968)。一方、セットエラーが発生した場合には(ステップS963:Yes)、ステータス生成部327は、セットエラーの発生を記載したステータスを生成してメモリ制御部200に転送する(ステップS965)。リセットエラーが発生しなかった場合(ステップS967:No)、もしくは、ステップS965またはS968の実行後、リセットリトライ制御部322はリセットリトライ処理を終了する。
図14は、第1の実施の形態におけるセットリトライ処理の一例を示すフローチャートである。セットリトライ制御部323は、リセット処理部324にリセット処理の実行をリセットコマンドにより指示する。セットに失敗したメモリセルは、一旦リセットすることにより、データ保持特性が改善して、再度のセットに成功する確率が高くなる。以下、セットリトライ処理においてデータ保持特性の改善のために実行されるリセット処理を「リフレッシュリセット処理」と称する。また、リフレッシュリセット処理およびリフレッシュセット処理を「リフレッシュ処理」と称する。リセット処理部324は、セットされたメモリセルにおいて、高抵抗閾値R_resetを基準としてプレリードを行う(ステップS971)。リセット処理部324は、プレリードしたセット対象のビットのうち、セットされているビットのみをリセットするためのリセットマスクデータを生成する(ステップS972)。リセット処理部324は、リセットマスクデータに基づいてリセット処理(リフレッシュリセット処理)を実行する(ステップS940)。
セットリトライ制御部323は、リセットエラーが発生したか否かを判断する(ステップS973)。リセットエラーが発生しなかった場合には(ステップS973:No)、セットリトライ制御部323は、セット処理部325に再度のセット処理の実行をセットコマンドにより指示する。セット処理部325は、ライトデータを取得する(ステップS974)。セット処理部325は、リセットされたデータとライトデータとからセットマスクデータを生成する(ステップS976)。セット処理部325は、セットマスクデータに基づいてセット処理を実行する(ステップS950)。
ステータス生成部327は、セットエラーが発生したか否かを判断する(ステップS977)。セットエラーが発生した場合には(ステップS977:Yes)、ステータス生成部327は、セットエラーの発生を記載したステータスを生成してメモリ制御部200に転送する(ステップS978)。一方、リセットエラーが発生した場合には(ステップS973:Yes)、ステータス生成部327は、リセットエラーの発生を記載したステータスを生成してメモリ制御部200に転送する(ステップS975)。セットエラーが発生しなかった場合(ステップS977:No)、もしくは、ステップS975またはS978の実行後、セットリトライ制御部323はセットリトライ処理を終了する。
図15は、第1の実施の形態におけるメモリシステムの動作の一例を示すシーケンス図である。メモリシステムにおけるメモリ制御部200は、ホストコンピュータ100から受け取ったライトコマンドをデコードしてNVRAM300に転送する。そして、NVRAM300は、そのライトコマンドに従って、リセット処理を実行する(ステップS940)。
リセット処理においてリセットエラーが生じた場合には、NVRAM300は、リセットエラーを記載したステータスをメモリ制御部200に転送する。メモリ制御部200は、リセットエラーに応じて、リセットリトライコマンドを発行してNVRAM300に転送する。NVRAM300は、そのリセットリトライコマンドに従って、リセットされたメモリセルにおいてセット処理(リフレッシュセット処理)を実行する(ステップS950)。次いで、NVRAM300は、リセットされたメモリセルを再度リセットするためのリセット処理を実行する(ステップS940)。
再度のリセット処理が正常に終了した場合には、NVRAM300は、セット処理を実行する(ステップS950)。セット処理においてセットエラーが生じた場合には、NVRAM300は、セットエラーを記載したステータスをメモリ制御部200に転送する。メモリ制御部200は、セットエラーに応じて、セットリトライコマンドを発行してNVRAM300に転送する。NVRAM300は、そのセットリトライコマンドに従って、リセットされたメモリセルにおいてリセット処理(リフレッシュリセット処理)を実行する(ステップS940)。次いで、NVRAM300は、セットされたメモリセルを再度セットするためのリセット処理を実行する(ステップS950)。
このように、NVRAM300が、メモリセルを再度リセットする前にセット(リフレッシュセット処理)することにより、リセットエラーが発生したメモリセルのデータ保持特性が改善しうる。同様に、NVRAM300が、メモリセルを再度セットする前にリセット(リフレッシュリセット処理)することによりセットエラーが発生したメモリセルのデータ保持特性が改善しうる。したがって、リフレッシュ処理を行わない場合と比較して、再度のリセットまたはセットに成功する確率が高くなり、不良セルの増大が抑制される。
図16は、第1の実施の形態におけるリセットリトライ処理が実行されたデータの具体例を示す図である。NVRAM300が、メモリ制御部200から「0b11001111」のライトデータの書込みを指示するライトコマンドを受け取った場合を想定する。ここで、先頭に「0b」を付した数値は、その数値が、2進表記であることを意味する。この場合、NVRAM300は高抵抗閾値R_resetを基準としてプレリードを行う。ライトコマンドにより指示されたアドレスに既に書き込まれたデータDとして「0b11110000」がプレリードされたものとする。このデータDにおいて「0」であり、かつ、ライトデータにおいて「1」であるビットは、5乃至8ビット目である。NVRAM300は、これらの5乃至8ビット目をリセットするためのリセットマスクデータ「MMMMRRRR」を生成する。ここで「R」はリセット対象のビットを、「M」はマスクするビットを示す。
NVRAM300は、リセットマスクデータに基づいてリセット処理を実行する。リセとした後、NVRAM300は、高抵抗閾値R_resetを基準としてベリファイを行う。ベリファイにおいて、「0b11110001」のデータが読み出されたものとする。リセット対象のビットのうち、8ビット目がリセットされていないため、NVRAM300は、リセットエラーが発生したと判断する。ここで、高抵抗閾値R_resetを基準とした場合、安定高抵抗状態(sHRS)のメモリセルから「1」の値が読み出され、それ以外のメモリセルからは「0」の値が読み出される。したがって、「1」の値の8ビット目が読み出されたメモリセル514は、安定高抵抗状態(sHRS)である。一方、「0」の値の5乃至7ビット目が読み出されたメモリセルは、安定低抵抗状態(sLRS)、不安定低抵抗状態(uLRS)、および、不安定高抵抗状態(uHRS)のうちのいずれかである。例えば、5ビット目のメモリセル511はsLRSであり、6ビット目のメモリセル512はuLRSであり、7ビット目のメモリセル513はuHRSである。
NVRAM300は、リセットエラーに応じて発行されたリセットリトライコマンドに従って、低抵抗閾値R_setを基準としてプレリードを行う。低抵抗閾値R_setを基準とした場合、sLRSの状態にあるメモリセルから「0」の値が読み出され、それ以外のメモリセルからは「1」の値が読み出される。5乃至8ビット目のメモリセル511乃至514のうち、sLRSの状態にあるメモリセルは511のみであるから、5ビット目は「0」の値、6乃至8ビット目は「1」の値が読み出される。したがって、プレリードにより「0b11110111」のデータDが読み出される。
NVRAM300は、リセットマスクデータにおいてリセット対象とされたビットであり、かつ、データDにおいてリセットされているビットをセット対象とするセットマスクデータ「MMMMMSSS」を生成する。ここで「S」はセット対象のビットを、「M」はマスクするビットを示す。
NVRAM300は、セットマスクデータに基づいてセット処理を実行する。この結果、リセット対象のメモリセルのうち、uLRS、uHRS、および、sHRSの状態にあるメモリセルがセットされてsLRSに遷移する。ここで、セットマスクデータにおいてセット状態(sLRS)のビットはマスクされているため、セット済みのメモリセルはセットされない。一般に、不揮発性メモリの書き換え回数には制限があるため、セットの必要がないメモリセルをマスクしてセット処理を行うことにより、不揮発性メモリの寿命を延ばすことができる。
セット処理が正常終了した場合には、データDは「0b11110000」に書き換えられる。NVRAM300は、このデータDとライトデータとからリセットマスクデータ「MMMMRRRR」を生成し、リセットマスクデータに基づいて再度リセット処理を実行する。再度のリセット処理が正常終了した場合には、データDは「0b11111111」に書き換えられる。この結果、リセット対象の5乃至8ビット目に対応するメモリセルは、全てsHRSに遷移する。
図17は、第1の実施の形態におけるセット処理が実行されたデータの具体例を示す図である。NVRAM300は、リセット後の「0b11111111」のデータDとライトデータとからセットマスクデータ「MMSSMMMM」を生成する。データDにおいて「1」であり、かつ、ライトデータにおいて「0」であるビットは、3ビット目および4ビット目であるため、これらのビットがセットマスクデータにおいてセット対象とされている。
NVRAM300は、セットマスクデータに基づいてセット処理を実行する。セット処理が正常に終了した場合には、データDは、「0b11001111」に書き換えられる。これにより、ライトデータの書込みが完了する。
図18は、第1の実施の形態におけるリセットリトライ処理の際のメモリセルの状態の遷移の一例を示す図である。図18aは、リセットエラーが発生した場合のメモリセルの状態の一例を示す図である。メモリセル511、512、513、および、514は、リセット対象のメモリセルである。リセット処理により、メモリセル511は、安定低抵抗状態(sLRS)に遷移し、メモリセル512は不安定低抵抗状態(uLRS)に遷移したものとする。また、メモリセル513は、不安定高抵抗状態(uHRS)に遷移し、メモリセル512は安定高抵抗状態(sLRS)に遷移したものとする。ベリファイにおいては、高抵抗閾値R_resetを基準として、sHRSのメモリセルから「1」の値が読み出され、それ以外のメモリセルから「0」の値が読み出される。このため、sHRSでないメモリセル511、512および513において、リセットエラーが検出される。
図18bは、リトライコマンドに従って、セット処理(リフレッシュセット処理)が実行された場合におけるメモリセルの状態の遷移の一例を示す図である。このセット処理においては、低抵抗閾値R_setを基準として、セット状態(sLRS)でないメモリセルがセットされる。この結果、sLRSでないメモリセル512、513および514がセットされて、sLRSに遷移する。
図18cは、リトライコマンドに従って、再度のリセット処理が実行された場合におけるメモリセルの状態の遷移の一例を示す図である。このリセット処理においては、高抵抗閾値R_resetを基準として、リセット状態(sHRS)でないメモリセルがリセットされる。この結果、sHRSでないメモリセル511乃至514がリセットされて、SHRSに遷移する。
図18に例示したように、リセットエラーが生じたメモリセルのうち、特に、不安定な抵抗状態であるuLRSおよびuHRSが、セット処理により、安定的な抵抗状態に遷移する。このため、これらのメモリセルのデータ保持特性が改善し、リフレッシュ処理を行わない場合と比較して、再度のリセット処理が成功する可能性が向上する。
このように、本技術の第1の実施の形態によれば、NVRAM300は、リセットエラーが発生した際に、セット処理を実行した後に再度リセット処理を実行するため、再度のリセット処理が成功する確率を向上させることができる。また、NVRAM300は、セットエラーが発生した際に、リセット処理を実行した後に再度セット処理を実行するため、再度のセット処理が成功する確率を向上させることができる。したがって、不良セルの増大が抑制される。
<2.第2の実施の形態>
[NVRAM制御回路の構成例]
図19は、第2の実施の形態におけるNVRAM制御回路320の一構成例を示すブロック図である。第1の実施の形態のNVRAM300は、リセットリトライ処理において、セット処理の必要のないsHRSの状態にあるメモリセルを除き、uLRS、uHRSおよびsHRSの状態にあるメモリセルのみについてセット処理を行っていた。しかし、uLRS、uHRSおよびsHRSのうち、リフレッシュセット処理が最も有効な抵抗状態はuLRSであり、uHRSおよびsHRSのメモリセルはuLRSと比較してリフレッシュセット処理の有効性が低い。具体的には、uHRSは、uLRSと比較して抵抗値を低抵抗閾値R_set以下にするために必要な制御量が大きいため、セット処理に失敗する可能性がuLRSより高い。その一方、uHRSはuLRSよりも抵抗値を高抵抗閾値R_reset以上にするために必要な制御量が小さいため、再度のセット処理が成功する可能性が高い。したがって、uHRSのメモリセルにおいては、セット処理の有効性がuHRSよりも低い。また、sHRSは安定な抵抗状態であり、セット処理を行ってもデータの保持特性が改善しない。第2の実施の形態のNVRAM300は、リフレッシュ処理が最も有効な抵抗状態のみを遷移させる点において第1の実施の形態と異なる。
第2の実施の形態の閾値記憶部326は、境界抵抗値R_readをさらに記憶する。また、第2の実施の形態のリセット処理部324は、閾値記憶部326から境界抵抗値R_readをさらに取得する。そして、リセット処理部324は、セットされたメモリセルにおいて、境界閾値R_readを基準としたプレリードと、高抵抗閾値R_resetを基準としたプレリードとを行う。リセット処理部324は、それぞれのプレリードで読み出したデータにおいて、値が異なるビットに対してリセット処理を実行する。また、第2の実施の形態のセット処理部325も、境界抵抗値R_readをさらに取得し、リセットされたメモリセルにおいて、境界閾値R_readを基準としたプレリードと、低抵抗閾値R_setを基準としたプレリードとを行う。セット処理部325は、それぞれのプレリードで読み出したデータにおいて、値が異なるビットに対してセット処理を実行する。
[NVRAMの動作例]
図20は、第2の実施の形態におけるリセットリトライ処理の一例を示すフローチャートである。第2の実施の形態のリセットリトライ処理は、ステップS981およびS983をさらに実行し、ステップS962の代わりにステップS982を実行する点において第1の実施の形態と異なる。セット処理部325は、リセットされたメモリセルにおいて、境界抵抗値R_readを基準としてデータをデータD_readとしてプレリードする(ステップS981)。そして、セット処理部325は、低抵抗閾値R_setを基準としてデータをデータD_setとしてプレリードする(ステップS961)。セット処理部325は、これらのデータD_readおよびD_setの差分のビットをセットするためのセットマスクデータを生成する(ステップS982)。セット処理部325は、そのセットマスクデータに基づいてセット処理を実行する(ステップS950)。
セットエラーが発生しなかった場合には(ステップS963:No)、リセット処理部324は、高抵抗閾値R_resetを基準としてプレリードを行う(ステップS983)。リセット処理部324は、ライトデータを取得し(ステップS964)、プレリードしたデータとライトデータとからリセットマスクデータを生成する(ステップS966)。リセット処理部324は、そのセットマスクデータに基づいてステップS940以降の処理を実行する。
図21は、第2の実施の形態におけるセットリトライ処理の一例を示すフローチャートである。第2の実施の形態のセットリトライ処理は、ステップS984およびS986をさらに実行し、ステップS972の代わりにステップS985を実行する点において第1の実施の形態と異なる。リセット処理部324は、セットされたメモリセルにおいて、境界抵抗値R_readを基準としてデータをデータD_readとしてプレリードする(ステップS984)。そして、リセット処理部324は、高抵抗閾値R_resetを基準としてデータをデータD_resetとしてプレリードする(ステップS971)。リセット処理部324は、これらのデータD_readおよびD_resetの差分のビットをリセットするためのリセットマスクデータを生成する(ステップS985)。リセット処理部324は、そのリセットマスクデータに基づいてリセット処理を実行する(ステップS940)。
リセットエラーが発生しなかった場合には(ステップS973:No)、セット処理部325は、低抵抗閾値R_setを基準としてプレリードを行う(ステップS986)。セット処理部325は、ライトデータを取得し(ステップS974)、プレリードしたデータとライトデータとからセットマスクデータを生成する(ステップS976)。セット処理部325は、そのセットマスクデータに基づいてステップS950以降の処理を実行する。
図22は、第2の実施の形態におけるリセットリトライ処理が実行されたデータの具体例を示す図である。第2の実施の形態と同様に、NVRAM300は、プレリードしたデータとライトデータとからリセットマスクデータを生成してリセット処理を実行する。
リセットエラーが生じた場合、第2の実施形態のNVRAM300は、リセットされたメモリセルにおいて、境界抵抗値R_readおよび低抵抗閾値R_setの各々を基準としてプレリードを2回行う。各々のプレリードにより得られたデータをD_readおよびD_setとする。境界抵抗値R_readを基準とした場合、sLRSおよびuLRSの状態にあるメモリセルから「0」の値が読み出され、それ以外のメモリセルからは「1」の値が読み出される。一方、低抵抗閾値R_setを基準とした場合、sLRSの状態にあるメモリセルから「0」の値が読み出され、それ以外のメモリセルからは「1」の値が読み出される。このため、uLRSの状態のメモリセル512からは、それぞれのプレリードにおいて異なる値が読み出される。したがって、D_readおよびD_setを比較することにより、uLRSの状態のメモリセルの位置を特定することができる。NVRAM300は、D_readおよびD_setにおいて値が異なる6ビット目(512)のみをセットするためのセットマスクデータ「MMMMMSMM」を生成する。そして、NVRAM300は、セットマスクデータに基づいて第1の実施の形態と同様にセット処理を実行する。
このように、NVRAM300は、境界抵抗値R_readおよび低抵抗閾値R_setの各々を基準としてプレリードしたデータを比較することにより、uLRSの状態にあるメモリセルの位置を特定することができる。uLRS、uHRSおよびsHRSのうち、uLRSは、セット処理によるリフレッシュセット処理が最も有効な状態であるが、uHRSおよびsHRSはuLRSと比較してリフレッシュセット処理の有効性が低い。このため、NVRAM300は、セット処理の有効性の低いuHRSおよびsHRSの状態にあるメモリセルを書き換えないようにセットすることができる。この結果、メモリセルの寿命がさらに延びる。
同様に、セットリトライ処理においても、NVRAM300は、境界抵抗値R_readおよび高抵抗閾値R_resetの各々を基準としてプレリードしたデータを比較することにより、リセット処理が最も有効なメモリセルの位置を特定することができる。NVRAM300は、リセット処理の有効性の低いメモリセルを書き換えないようにリセットすることにより、メモリセルの寿命をさらに延ばすことができる。
図23は、第2の実施の形態におけるリセットリトライ処理の際のメモリセルの状態の遷移の一例を示す図である。図23aは、リセットエラーが発生した場合のメモリセルの状態の一例を示す図である。第1の実施の形態と同様に、リセット処理により、メモリセル511は、安定低抵抗状態(sLRS)に遷移し、メモリセル512は不安定低抵抗状態(uLRS)に遷移したものとする。また、メモリセル513は、不安定高抵抗状態(uHRS)に遷移し、メモリセル512は安定高抵抗状態(sLRS)に遷移したものとする。高抵抗閾値R_resetを基準としたベリファイにより、sHRSでないメモリセル511、512および513において、リセットエラーが検出される。
図23bは、リトライコマンドに従って、リフレッシュセット処理が実行された場合におけるメモリセルの状態の遷移の一例を示す図である。このセット処理においては、境界抵抗値R_readと低抵抗閾値R_setとを基準としてプレリードしたデータのそれぞれを比較することにより、セット処理が最も有効なuLRSの状態にあるメモリセル512が特定される。そして、このuLRSの状態にあるメモリセル512のみがセットされて、sLRSに遷移する。
図23cは、リトライコマンドに従って、再度のリセット処理が実行された場合におけるメモリセルの状態の遷移の一例を示す図である。このリセット処理においては、高抵抗閾値R_resetを基準として、リセット状態(sHRS)でないメモリセルがリセットされる。この結果、sHRSでないメモリセル511乃至513がリセットされて、SHRSに遷移する。
図18に例示したように、境界抵抗値R_readと低抵抗閾値R_setとを基準としてプレリードしたデータのそれぞれを比較することにより、セット処理が最も有効なuLRSの状態にあるメモリセル511が特定される。このため、NVRAM300は、セット処理の有効性の低いメモリセルをマスクしてセットすることができる。この結果、セットの有効性の低いメモリセルの寿命をさらに延ばすことができる。
このように、本技術の第2の実施の形態によれば、NVRAM300は、境界抵抗値と低抵抗閾値とを基準として読み出したデータの各々を比較することにより、セットが比較的有効でないメモリセルをマスクしてセット処理を行うことができる。また、NVRAM300は、境界抵抗値と高抵抗閾値とを基準として読み出したデータの各々を比較することにより、リセットが比較的有効でないメモリセルをマスクしてリセット処理を行うことができる。マスクにより、リセットの有効性の低いメモリセルがリセットされることがなくなるため、そのメモリセルの書換え回数が低減する。したがって、第1の実施の形態と比較して、リセットの有効性の低いメモリセルの寿命がさらに延びる。
<3.第3の実施の形態>
[メモリ制御回路の構成例]
図24は、第3の実施の形態におけるメモリ制御回路220の一構成例を示すブロック図である。第1の実施の形態では、NVRAM300が、リセットリトライおよびセットリトライの制御を行っていたが、これらの制御をメモリ制御部200が行うこともできる。第3の実施の形態のメモリ制御部200は、NVRAM300の代わりにリセットリトライおよびセットリトライの制御を実行する点において第1の実施の形態と異なる。具体的には、第3の実施の形態のメモリ制御回路220は、リセットリトライコマンド発行部226およびセットリトライコマンド発行部227の代わりにリセットリトライ制御部228およびセットリトライ制御部229を備える。これらのリセットリトライ制御部228およびセットリトライ制御部229の構成は、第1の実施の形態におけるNVRAM300内のリセットリトライ制御部322およびセットリトライ制御部323と同様である。なお、図24において、ライトコマンド、リセットコマンド、および、セットコマンドは、記載の便宜上、別々の信号線を介して転送されるように図示されているが、実際にはこれらは同じ信号線において転送される。
[NVRAM制御回路の構成例]
図25は、第3の実施の形態におけるNVRAM制御回路320の一構成例を示すブロック図である。第3の実施の形態のNVRAM制御回路320は、リセットリトライ制御部322およびセットリトライ制御部323を備えない点において第1の実施の形態と異なる。
[メモリ制御部の動作例]
図26は、第3の実施の形態におけるメモリ制御部200の動作の一例を示すフローチャートである。第3の実施の形態のメモリ制御部200の動作は、ステップS904およびS912の代わりにステップS990を実行し、ステップS907およびS909の代わりにステップS995を実行する点において第1の実施の形態と異なる。
最初のエラーがリセットエラーである場合には(ステップS903:Yes)、リセットリトライ制御部228は、リセットリトライ制御処理を実行する(ステップS990)。一方、最初のエラーがセットエラーである場合には(ステップS903:No)、セットリトライ制御部229は、セットリトライ制御処理を実行する(ステップS995)。
2回目のエラーがセットエラーである場合には(ステップS906:No)、セットリトライ制御部229は、セットリトライ制御処理を実行する(ステップS995)。一方、2回目のエラーがリセットエラーである場合には(ステップS911:No)、リセットリトライ制御部228は、リセットリトライ制御処理を実行する(ステップS990)。
図27は、第3の実施の形態におけるリセットリトライ制御処理の一例を示すフローチャートである。リセットリトライ制御部228は、リセットされたビットの全てをセットするように指示するセットコマンドを発行する(ステップS991)。リセットリトライ制御部228は、セットエラーが発生したか否かを判断する(ステップS992)。セットエラーが発生していなければ(ステップS992:No)、リセットリトライ制御部228は、ライトデータを再送し、リセットを指示するリセットコマンドを発行してNVRAM300に供給する(ステップS993)。セットエラーが発生した場合(ステップS992:Yes)、または、ステップS993の実行後、リセットリトライ制御部228はリセットリトライ制御処理を終了する。
図28は、第3の実施の形態におけるセットリトライ制御処理の一例を示すフローチャートである。セットリトライ制御部229は、セットされたビットの全てをリセットするように指示するリセットコマンドを発行する(ステップS996)。セットリトライ制御部229は、リセットエラーが発生したか否かを判断する(ステップS997)。リセットエラーが発生していなければ(ステップS997:No)、セットリトライ制御部229は、ライトデータを再送し、セットを指示するセットコマンドを発行してNVRAM300に供給する(ステップS998)。リセットエラーが発生した場合(ステップS997:Yes)、または、ステップS998の実行後、セットリトライ制御部229はセットリトライ制御処理を終了する。
[NVRAMの動作例]
図29は、第3の実施の形態におけるNVRAM300の動作の一例を示すフローチャートである。第3の実施の形態のNVRAM300の動作は、ステップS922、S923、S960およびS970の代わりにステップS924乃至S927を実行する点において第1の実施の形態と異なる。
ライトコマンドを受け取っていない場合(ステップS921:No)、または、ステップS930の実行後、セット処理部325はメモリ制御部200からセットコマンドを受け取ったか否かを判断する(ステップS924)。セットコマンドを受け取った場合には(ステップS924:Yes)、セット処理部325は、プレリード・セット処理を実行する(S925)。
セットコマンドを受け取っていない場合(ステップS924:No)、または、ステップS925の実行後、リセット処理部324はメモリ制御部200からリセットコマンドを受け取ったか否かを判断する(ステップS926)。リセットコマンドを受け取った場合には(ステップS926:Yes)、リセット処理部324は、プレリード・リセット処理を実行する(S927)。リセットコマンドを受け取っていない場合(ステップS926:No)、または、ステップS927の実行後、NVRAM300はステップS921に戻る。
図30は、第3の実施の形態におけるプレリード・セット処理の一例を示すフローチャートである。セット処理部325は、低抵抗閾値R_setを基準としてプレリードを行う(ステップS986)。セット処理部325は、ライトデータを取得し(ステップS974)、プレリードしたデータとライトデータとからセットマスクデータを生成する(ステップS976)。セット処理部325は、セットマスクデータに基づいてステップS951乃至S955を実行する。ステップS951乃至S955は、第1の実施の形態におけるセット処理(ステップS950)と同様の処理である。
図31は、第3の実施の形態におけるプレリード・リセット処理の一例を示すフローチャートである。リセット処理部324は、高抵抗閾値R_resetを基準としてプレリードを行う(ステップS983)。リセット処理部324は、ライトデータを取得し(ステップS964)、プレリードしたデータとライトデータとからリセットマスクデータを生成する(ステップS966)。リセット処理部324は、リセットマスクデータに基づいてステップS941乃至S945を実行する。ステップS941乃至S945は、第1の実施の形態におけるリセット処理(ステップS940)と同様の処理である。
このように、本技術の第3の実施の形態によれば、メモリ制御部200が、リセットリトライ制御部228およびセットリトライ制御部229を備えるため、NVRAM300の代わりにリセットリトライおよびセットリトライの制御を行うことができる。これにより、NVRAM300の構成が簡易なもので済む。また、メモリ制御部300が複数のNVRAM300を制御する場合であっても、メモリ制御部200のみにリセットリトライ制御部228およびセットリトライ制御部229を設ければよい。このため、NVRAM300の各々がリトライ制御を行う構成と比較して、メモリシステム全体の構成が簡易となる。
なお、ホストコンピュータ100にリセットリトライ制御部およびセットリトライ制御部を設けて、ホストコンピュータ100がメモリ制御部200の代わりにリトライ制御を行う構成とすることもできる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
なお、本技術は以下のような構成もとることができる。
(1)2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、
前記他方の値が書き込まれたメモリセルを前記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部と、
前記第1の書換え処理の際にエラーが発生した場合には前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の書換え処理を実行させた後に前記第1の書換え処理を再度実行させる第1のリトライ制御部と
を具備する記憶制御装置。
(2)前記第2の書換え処理の際にエラーが発生した場合には前記第2の書換え処理が実行された前記メモリセルにおいて前記第1の書換え処理を実行させた後に前記第2の書換え処理を実行させる第2のリトライ制御部をさらに具備する前記(1)記載の記憶制御装置。
(3)前記メモリセルは、所定の境界抵抗値を境界とする2つの抵抗状態のうちの一方の抵抗状態が前記一方の値に対応付けられ、他方の抵抗状態が前記他方の値に対応付けられた可変抵抗素子であり、
前記第1の書換え処理部は、前記境界抵抗値より前記他方の抵抗状態側に設定された第1の抵抗値を基準として前記メモリセルからデータを読み出して当該データの値が前記他方の値でない場合には前記エラーが発生したものと判断し、
前記第2の書換え処理部は、前記境界抵抗値より前記一方の抵抗状態側に設定された前記第2の抵抗値を基準として前記メモリセルからデータを読み出して当該データが前記一方の値でない場合には前記エラーが発生したものと判断する
前記(2)記載の記憶制御装置。
(4)前記第1および第2の書換え処理の各々における前記エラーの検出回数に基づいて前記メモリセルが不良セルであるか否かを判定する不良セル判定部をさらに具備する前記(3)記載の記憶制御装置。
(5)前記第1の書換え処理部は、前記第2の書換え処理が実行された前記メモリセルにおいて前記第1の抵抗値を基準として第1のデータを読み出して当該第1のデータの値が前記一方の値である場合には前記第1の書換え処理を実行し、
前記第2の書換え処理部は、前記第1の書換え処理が実行されたメモリセルにおいて前記第2の抵抗値を基準として第2のデータを読み出して当該第2のデータが前記他方の値である場合には前記第2の書換え処理を実行する
前記(3)または(4)記載の記憶制御装置。
(6)前記第1の書換え処理部は、前記第2の書換え処理が実行された前記メモリセルにおいて前記第1の抵抗値を基準として第1のデータを読み出すとともに前記境界抵抗閾値を基準として第3のデータを読み出して前記第1のデータと第3のデータとの値が異なる場合には前記第1の書換え処理を実行し、
前記第2の書換え処理部は、前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の抵抗値を基準として第2のデータを読み出すとともに前記第3のデータを読み出して前記第2のデータと第3のデータとの値が異なる場合には前記第2の書換え処理を実行する
前記(3)または(4)記載の記憶制御装置。
(7)2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、前記他方の値が書き込まれたメモリセルを前記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部と、前記第1の書換え処理の際にエラーが発生した場合には所定のコマンドに従って前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の書換え処理を実行させた後に前記第1の書換え処理を再度実行させるリトライ制御部とを備える記憶制御装置と、
前記第1のエラーが発生した場合には前記所定のコマンドを発行する第1のコマンド発行部と
を具備するメモリシステム。
(8)2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、前記他方の値が書き込まれたメモリセルを前記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部とを備える記憶制御装置と、
前記第1の書換え処理の際にエラーが発生した場合には前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の書換え処理を実行させた後に前記第1の書換え処理を再度実行させる第1のリトライ制御部と
を具備するメモリシステム。
(9)2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、前記他方の値が書き込まれたメモリセルを前記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部と、前記第1の書換え処理の際にエラーが発生した場合には所定のコマンドに従って前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の書換え処理を実行させた後に前記第1の書換え処理を再度実行させるリトライ制御部とを備える記憶制御装置と、
前記第1のエラーが発生した場合には前記所定のコマンドを発行するホストコンピュータと
を具備する情報処理システム。
(10)2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、前記他方の値が書き込まれたメモリセルを前記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部とを備える記憶制御装置と、
前記第1の書換え処理の際にエラーが発生した場合には前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の書換え処理を実行させた後に前記第1の書換え処理を再度実行させるホストコンピュータと
を具備する情報処理システム。
(11)第1の書換え処理部が、2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理手順と、
第2の書換え処理部が、前記他方の値が書き込まれたメモリセルを前記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理手順と、
第1のリトライ制御部が、前記第1の書換え処理の際にエラーが発生した場合には前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の書換え処理を実行させた後に前記第1の書換え処理を再度実行させる第1のリトライ制御手順と
を具備する記憶制御方法。
100 ホストコンピュータ
200 メモリ制御部
210 ホストインターフェース
220 メモリ制御回路
221 コマンドデコーダ
222 ECC処理部
223 アドレス変換部
224 アドレス変換テーブル
225 不良セル判定部
226 リセットリトライコマンド発行部
227 セットリトライコマンド発行部
228 リセットリトライ制御部
229 セットリトライ制御部
230 メモリインターフェース
300 NVRAM
310 制御インターフェース
320 NVRAM制御回路
321 ライト制御部
322 リセットリトライ制御部
323 セットリトライ制御部
324 リセット処理部
325 セット処理部
326 閾値記憶部
327 ステータス生成部
330 メモリセルアレイ

Claims (11)

  1. 2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、
    前記他方の値が書き込まれたメモリセルを前記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部と、
    前記第1の書換え処理の際にエラーが発生した場合には前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の書換え処理を実行させた後に前記第1の書換え処理を再度実行させる第1のリトライ制御部と
    を具備する記憶制御装置。
  2. 前記第2の書換え処理の際にエラーが発生した場合には前記第2の書換え処理が実行された前記メモリセルにおいて前記第1の書換え処理を実行させた後に前記第2の書換え処理を実行させる第2のリトライ制御部をさらに具備する請求項1記載の記憶装置。
  3. 前記メモリセルは、所定の境界抵抗値を境界とする2つの抵抗状態のうちの一方の抵抗状態が前記一方の値に対応付けられ、他方の抵抗状態が前記他方の値に対応付けられた可変抵抗素子であり、
    前記第1の書換え処理部は、前記境界抵抗値より前記他方の抵抗状態側に設定された第1の抵抗値を基準として前記メモリセルからデータを読み出して当該データの値が前記他方の値でない場合には前記エラーが発生したものと判断し、
    前記第2の書換え処理部は、前記境界抵抗値より前記一方の抵抗状態側に設定された前記第2の抵抗値を基準として前記メモリセルからデータを読み出して当該データが前記一方の値でない場合には前記エラーが発生したものと判断する
    請求項2記載の記憶制御装置。
  4. 前記第1および第2の書換え処理の各々における前記エラーの検出回数に基づいて前記メモリセルが不良セルであるか否かを判定する不良セル判定部をさらに具備する請求項3記載の記憶装置。
  5. 前記第1の書換え処理部は、前記第2の書換え処理が実行された前記メモリセルにおいて前記第1の抵抗値を基準として第1のデータを読み出して当該第1のデータの値が前記一方の値である場合には前記第1の書換え処理を実行し、
    前記第2の書換え処理部は、前記第1の書換え処理が実行されたメモリセルにおいて前記第2の抵抗値を基準として第2のデータを読み出して当該第2のデータが前記他方の値である場合には前記第2の書換え処理を実行する
    請求項3記載の記憶制御装置。
  6. 前記第1の書換え処理部は、前記第2の書換え処理が実行された前記メモリセルにおいて前記第1の抵抗値を基準として第1のデータを読み出すとともに前記境界抵抗閾値を基準として第3のデータを読み出して前記第1のデータと第3のデータとの値が異なる場合には前記第1の書換え処理を実行し、
    前記第2の書換え処理部は、前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の抵抗値を基準として第2のデータを読み出すとともに前記第3のデータを読み出して前記第2のデータと第3のデータとの値が異なる場合には前記第2の書換え処理を実行する
    請求項3記載の記憶制御装置。
  7. 2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、前記他方の値が書き込まれたメモリセルを前記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部と、前記第1の書換え処理の際にエラーが発生した場合には所定のコマンドに従って前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の書換え処理を実行させた後に前記第1の書換え処理を再度実行させるリトライ制御部とを備える記憶制御装置と、
    前記第1のエラーが発生した場合には前記所定のコマンドを発行する第1のコマンド発行部と
    を具備するメモリシステム。
  8. 2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、前記他方の値が書き込まれたメモリセルを前記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部とを備える記憶制御装置と、
    前記第1の書換え処理の際にエラーが発生した場合には前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の書換え処理を実行させた後に前記第1の書換え処理を再度実行させる第1のリトライ制御部と
    を具備するメモリシステム。
  9. 2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、前記他方の値が書き込まれたメモリセルを前記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部と、前記第1の書換え処理の際にエラーが発生した場合には所定のコマンドに従って前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の書換え処理を実行させた後に前記第1の書換え処理を再度実行させるリトライ制御部とを備える記憶制御装置と、
    前記第1のエラーが発生した場合には前記所定のコマンドを発行するホストコンピュータと
    を具備する情報処理システム。
  10. 2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理部と、前記他方の値が書き込まれたメモリセルを前記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理部とを備える記憶装置と、
    前記第1の書換え処理の際にエラーが発生した場合には前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の書換え処理を実行させた後に前記第1の書換え処理を再度実行させるホストコンピュータと
    を具備する情報処理システム。
  11. 第1の書換え処理部が、2値のうちの一方の値が書き込まれたメモリセルを他方の値に書き換える第1の書換え処理を実行する第1の書換え処理手順と、
    第2の書換え処理部が、前記他方の値が書き込まれたメモリセルを前記一方の値に書き換える第2の書換え処理を実行する第2の書換え処理手順と、
    第1のリトライ制御部が、前記第1の書換え処理の際にエラーが発生した場合には前記第1の書換え処理が実行された前記メモリセルにおいて前記第2の書換え処理を実行させた後に前記第1の書換え処理を再度実行させる第1のリトライ制御手順と
    を具備する記憶制御方法。
JP2012098316A 2012-04-24 2012-04-24 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法 Active JP5867264B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012098316A JP5867264B2 (ja) 2012-04-24 2012-04-24 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
US13/790,438 US9152416B2 (en) 2012-04-24 2013-03-08 Storage control device, memory system, information processing system and storage control method
CN201310137113.1A CN103377098B (zh) 2012-04-24 2013-04-19 存储控制设备、存储器系统、信息处理系统和存储控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012098316A JP5867264B2 (ja) 2012-04-24 2012-04-24 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法

Publications (2)

Publication Number Publication Date
JP2013228767A true JP2013228767A (ja) 2013-11-07
JP5867264B2 JP5867264B2 (ja) 2016-02-24

Family

ID=49381247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012098316A Active JP5867264B2 (ja) 2012-04-24 2012-04-24 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法

Country Status (3)

Country Link
US (1) US9152416B2 (ja)
JP (1) JP5867264B2 (ja)
CN (1) CN103377098B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016042902A1 (ja) * 2014-09-16 2017-06-29 ソニー株式会社 メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法
WO2017138234A1 (ja) * 2016-02-08 2017-08-17 ソニー株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146601B2 (en) * 2013-06-12 2018-12-04 Everspin Technologies, Inc. Methods and devices for healing reset errors in a magnetic memory
US9304709B2 (en) 2013-09-06 2016-04-05 Western Digital Technologies, Inc. High performance system providing selective merging of dataframe segments in hardware
US11798614B2 (en) * 2021-08-31 2023-10-24 Micron Technology, Inc. Automated voltage demarcation (VDM) adjustment for memory device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001125834A (ja) * 1999-10-27 2001-05-11 Fujitsu Ltd メモリアクセス方法及びその装置
JP2009099199A (ja) * 2007-10-17 2009-05-07 Toshiba Corp 不揮発性半導体記憶装置
WO2009145308A1 (ja) * 2008-05-30 2009-12-03 日本電気株式会社 半導体装置、素子再生回路および素子再生方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4805109A (en) * 1985-10-16 1989-02-14 Pitney Bowes Inc. Nonvolatile memory protection arrangement for electronic postage meter system having plural nonvolatile memories
US4817004A (en) * 1985-10-16 1989-03-28 Pitney Bowes Inc. Electronic postage meter operating system
US6158000A (en) * 1998-09-18 2000-12-05 Compaq Computer Corporation Shared memory initialization method for system having multiple processor capability
DE19935497A1 (de) * 1999-07-28 2001-03-01 Infineon Technologies Ag Verfahren und Schaltungsanordnung zum Korrigieren von Speicherfehlern
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same
JP2004086991A (ja) * 2002-08-27 2004-03-18 Renesas Technology Corp 不揮発性記憶装置
JP4158526B2 (ja) 2003-01-09 2008-10-01 松下電器産業株式会社 メモリカード及びメモリへのデータ書き込み方法
JP4073799B2 (ja) * 2003-02-07 2008-04-09 株式会社ルネサステクノロジ メモリシステム
JP3984209B2 (ja) * 2003-07-31 2007-10-03 株式会社東芝 半導体記憶装置
TWI355661B (en) * 2003-12-18 2012-01-01 Panasonic Corp Method for using a variable-resistance material as
EP2063432B1 (de) * 2007-11-15 2012-08-29 Grundfos Management A/S Verfahren zum Prüfen eines Arbeitsspeichers
JP5100554B2 (ja) * 2008-07-30 2012-12-19 株式会社東芝 半導体記憶装置
JP2010225259A (ja) * 2009-02-27 2010-10-07 Renesas Electronics Corp 半導体装置
JP5197448B2 (ja) * 2009-03-13 2013-05-15 株式会社東芝 抵抗変化メモリ装置
JP4838399B2 (ja) * 2010-03-30 2011-12-14 パナソニック株式会社 不揮発性記憶装置及び不揮発性記憶装置への書き込み方法
JP2013004143A (ja) * 2011-06-16 2013-01-07 Toshiba Corp 不揮発性半導体記憶装置
US9202533B2 (en) * 2013-10-09 2015-12-01 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device changing the number of selected bits and/or the number of selected bays at data write operation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001125834A (ja) * 1999-10-27 2001-05-11 Fujitsu Ltd メモリアクセス方法及びその装置
JP2009099199A (ja) * 2007-10-17 2009-05-07 Toshiba Corp 不揮発性半導体記憶装置
WO2009145308A1 (ja) * 2008-05-30 2009-12-03 日本電気株式会社 半導体装置、素子再生回路および素子再生方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016042902A1 (ja) * 2014-09-16 2017-06-29 ソニー株式会社 メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法
US10310742B2 (en) 2014-09-16 2019-06-04 Sony Corporation Memory controller, storage apparatus, information processing system, and method for controlling nonvolatile memory
WO2017138234A1 (ja) * 2016-02-08 2017-08-17 ソニー株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
JPWO2017138234A1 (ja) * 2016-02-08 2018-11-29 ソニー株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
US10672472B2 (en) 2016-02-08 2020-06-02 Sony Corporation Memory controller and memory system for suppression of fluctuation of voltage drop

Also Published As

Publication number Publication date
US20130282993A1 (en) 2013-10-24
CN103377098B (zh) 2018-03-23
CN103377098A (zh) 2013-10-30
JP5867264B2 (ja) 2016-02-24
US9152416B2 (en) 2015-10-06

Similar Documents

Publication Publication Date Title
JP5942781B2 (ja) 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
JP6686892B2 (ja) メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
EP2800097B1 (en) Storage control device, storage device, information processing system, and processing methods therefor
JP5929456B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP5867264B2 (ja) 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
JP6102632B2 (ja) 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法
JP5853906B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
JP6497394B2 (ja) メモリシステム、記憶装置、および、メモリシステムの制御方法
JP6891817B2 (ja) メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
JP2014086062A (ja) 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
JP2015011421A (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
WO2016035451A1 (ja) 記憶制御装置、記憶装置、および、記憶制御方法
JP6497395B2 (ja) メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
JP2014022004A (ja) 記憶制御装置、記憶装置、および、それらにおける処理方法
WO2017010147A1 (ja) 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法
WO2015182439A1 (ja) 記憶装置、記憶システムおよび記憶装置の制御方法
JP2014013635A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
WO2020031435A1 (ja) 記憶制御装置、記憶装置および記憶制御方法
WO2019244417A1 (ja) 記憶制御装置、記憶装置および記憶制御方法
WO2022158120A1 (ja) コントローラ、不揮発性記憶装置、および、制御方法
JP2013114521A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
WO2016002380A1 (ja) 記憶装置、情報処理システムおよび記憶装置の制御方法
JP2013143118A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151221

R151 Written notification of patent or utility model registration

Ref document number: 5867264

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250