JP5602984B2 - メモリコントローラ - Google Patents

メモリコントローラ Download PDF

Info

Publication number
JP5602984B2
JP5602984B2 JP2007236847A JP2007236847A JP5602984B2 JP 5602984 B2 JP5602984 B2 JP 5602984B2 JP 2007236847 A JP2007236847 A JP 2007236847A JP 2007236847 A JP2007236847 A JP 2007236847A JP 5602984 B2 JP5602984 B2 JP 5602984B2
Authority
JP
Japan
Prior art keywords
error detection
address
memory controller
read
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007236847A
Other languages
English (en)
Other versions
JP2009026285A (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.)
MegaChips Corp
Original Assignee
MegaChips 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 MegaChips Corp filed Critical MegaChips Corp
Priority to JP2007236847A priority Critical patent/JP5602984B2/ja
Priority to US12/120,489 priority patent/US8504897B2/en
Publication of JP2009026285A publication Critical patent/JP2009026285A/ja
Application granted granted Critical
Publication of JP5602984B2 publication Critical patent/JP5602984B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

本発明は、不揮発性メモリからデータが繰り返し読み出されることにより、データが意図せず書き換えられる可能性を回避または低減する技術に関する。
不揮発性メモリの中でも、NANDフラッシュメモリは、単純な回路構成による高集積化および製造コスト減、ユーザによる書き込みの容易化を図ることができるため、SDメモリカードなどに大量に採用されている。
最近では、NANDフラッシュメモリは、ゲーム機などにも採用されている。NANDフラッシュメモリがゲーム機などで使用される際には、書き込みは発生せず連続的な読み出しが発生する。すなわち、NANDフラッシュメモリがROMのように採用されることが多くなりつつある。
しかし、ゲーム機などでは、特定のプログラムが繰り返し読み出されることが多いため、プログラムが意図せず書き換えられる可能性が指摘され始めている。このような現象は“Read Disturb”現象と呼ばれており、本現象が発生するメカニズムについて以下に簡単に説明する。
図11は、NANDフラッシュメモリの模式図である。NANDフラッシュメモリは、格子状に配線されたビット線41とワード線42、43、44、メモリセル52、53、選択トランジスタ54などから構成されている。
メモリセル52が格納する二値データ(“0”または“1”)を読み出す場合を考える。この場合、メモリセル52は選択セル52、メモリセル53は非選択セル53と呼ばれている。まず、選択トランジスタ54により、選択セル52が属するビット線41が指定される。次に、選択セル52が属するワード線42に対して、低ゲート電圧V(Low)=0Vが印加される。そして、非選択セル53が属するワード線43に対して、高ゲート電圧V(High)〜5Vが印加される。
このとき、非選択セル53は微弱な書き込み状態にあるため、非選択セル53のフローティングゲートに電子がトラップされ蓄積される。すなわち、選択セル52が格納する二値データが繰り返し読み出されることにより、非選択セル53の閾値電圧がシフトして、非選択セル53が格納する二値データが“1”から“0”に意図せず書き換えられる可能性がある。
もっとも、非選択セル53が格納する二値データが意図せず書き換えられたとしても、データが新たに書き込まれる前に一括して消去される際に、非選択セル53の機能を回復させることができる。しかし、書き込みは発生せず連続的な読み出しが発生する場合には、非選択セル53の機能を回復させることができない。
米国特許出願公開第2005/0210184号明細書 特開平8−129510号公報
特許文献1は、メモリセル内部の制御方法により、“Read Disturb”現象を回避する手段を提供する。しかし、ここで開示されている方法は、特定のセル構造を有するメモリに対して適用可能な方法であり、他のセル構造に適用可能な方法ではない。つまり、メモリのセル構造に依存することなく、“Read Disturb”現象を回避できる方策ではない。
特許文献2は、エラー検出を行なう手段を提供する。しかし、ここで開示されている方法は、読み出しアドレスについてのみエラー検出を行なう方法であり、読み出しアドレス以外の非読み出しアドレスについてもエラー検出を行なう方法ではない。つまり、エラーが発生したアドレスについて読み出しアクセスが行なわれるまで、そのアドレスにおいてエラーが発生したことが検出されないため、“Read Disturb”現象を回避できる方策ではない。
そこで、本発明は前記問題点に鑑み、不揮発性メモリからデータが繰り返し読み出されることにより、データが意図せず書き換えられる可能性を回避または低減する技術を提供することを目的とする。
上記課題を解決するため、請求項1記載の発明は、ホストシステムからメモリアクセスを要求されて、メモリセルアレイにアクセスを行なうメモリコントローラであって、前記メモリセルアレイにアクセスが行なわれているかどうかを判断するアクセス判断手段と、前記メモリセルアレイにアクセスが行なわれていないタイミングにおいて、所定のアルゴリズムを用いて選択された選択アドレスについてエラー検出を行なう選択アドレスエラー検出手段と、を備え、前記選択アドレスエラー検出手段は、ある読み出しアクセスが終了したときにあるエラー検出タイミングにおいて前記選択アドレスをエラー検出開始アドレスとして選択するとともに、前記ある読み出しアクセスが終了したときおよびその後のエラー検出タイミングにおいて、前記エラー検出開始アドレスに関連するアドレスについてエラー検出を行なう手段、を含み、前記エラー検出開始アドレスは、前記ある読み出しアクセスの際に指定された読み出しアドレスに対応する読み出しページを含むブロックに対応するアドレスとされることを特徴とする。
請求項2記載の発明は、請求項1に記載のメモリコントローラにおいて、前記エラー検出開始アドレスは、読み出しページを含むブロックにおいて前記読み出しページを除くページに対応するアドレスとされることを特徴とする。
請求項記載の発明は、請求項1または請求項に記載のメモリコントローラにおいて、さらに、前記ホストシステムにより指定された読み出しアドレスについてエラー検出を行なう読み出しアドレスエラー検出手段、を備えることを特徴とする。
請求項記載の発明は、請求項1ないし請求項に記載のメモリコントローラにおいて、前記選択アドレスエラー検出手段は、エラー検出タイミングが到来するごとにエラー検出開始アドレスを選択するとともに、前記エラー検出タイミングにおいて、前記エラー検出開始アドレスに関連するアドレスについてエラー検出を行なう手段、を含むことを特徴とする。
請求項記載の発明は、請求項1ないし請求項に記載のメモリコントローラにおいて、前記選択アドレスエラー検出手段は、エラー検出タイミングが到来するごとにエラー検出開始アドレスを選択し、前記エラー検出開始アドレスについてエラー検出を行なう手段、を含むことを特徴とする。
請求項記載の発明は、請求項1ないし請求項のいずれかに記載のメモリコントローラにおいて、前記アクセス判断手段は、前記メモリセルアレイに書き込みデータが出力されているかどうかを判断する手段、を含むことを特徴とする。
請求項記載の発明は、請求項1ないし請求項のいずれかに記載のメモリコントローラにおいて、前記アクセス判断手段は、前記ホストシステムからアクセスを要求されているかどうかを判断する手段、を含むことを特徴とする。
請求項記載の発明は、請求項1ないし請求項のいずれかに記載のメモリコントローラにおいて、前記アクセス判断手段は、前記ホストシステムの電源状態が切り替えられたかどうかを判断する手段、を含むことを特徴とする。
請求項記載の発明は、請求項1ないし請求項のいずれかに記載のメモリコントローラにおいて、さらに、前記ホストシステムからエラー検出情報を要求されて、前記ホストシステムにエラー検出情報を通知するエラー通知手段、を備えることを特徴とする。
請求項10記載の発明は、請求項に記載のメモリコントローラにおいて、前記エラー通知手段は、エラー検出情報を保存する情報保存手段と、前記ホストシステムからエラー検出情報を要求されて、前記情報保存手段により保存されたエラー検出情報を前記ホストシステムに通知する手段と、を含むことを特徴とする。
請求項11記載の発明は、請求項に記載のメモリコントローラにおいて、前記エラー通知手段は、前記メモリセルアレイについてエラーが発生したことを検出したときに、前記ホストシステムがエラー検出情報を要求するための割り込みを発生させる手段、を含むことを特徴とする。
本発明に係るメモリコントローラは、読み出しアドレスについてのみエラー検出を行なうのではなく、読み出しアドレス以外の非読み出しアドレスについてもエラー検出を行なう。そのため、あるアドレスにおいてエラーが発生したとしても、そのアドレスについて読み出しアクセスが行なわれるまでもなくエラー検出が行なわれることにより、そのアドレスにおいてエラーが発生したことが検出される。
本発明に係るメモリコントローラは、読み出しアドレスおよび非読みだしアドレスを含む全メモリセルアレイ領域についてエラー検出を行なうため、その後のエラー訂正により“Read Disturb”現象が進行することを未然に防止できる。
{第1の実施の形態}
<メモリシステムの構成要素>
以下、図面を参照しつつ、第1の実施の形態について説明する。“Read Disturb”現象においては、読み出しアドレスが格納するデータが繰り返し読み出されるときに、読み出しアドレス以外の非読み出しアドレスが格納するデータが意図せず書き換えられる可能性がある。しかし、本実施の形態に係るメモリコントローラは、読み出しアドレスおよび非読み出しアドレスを含む全メモリセルアレイ領域についてエラー検出を行なうため、その後のエラー訂正により“Read Disturb”現象が進行することを未然に防止できる。
もっとも、メモリコントローラは、メモリセルアレイに対して読み出しアクセス、書き込みアクセスなどが行なわれているときには、メモリセルアレイに対してエラー検出を行なうことができない。そこで、メモリコントローラは、メモリセルアレイに対して読み出しアクセス、書き込みアクセスなどが行なわれていないことを判断したときに、メモリセルアレイに対してエラー検出を行なう。
しかし、メモリコントローラが全メモリセルアレイ領域について一度にエラー検出を行なうための時間は、読み出しアクセス、書き込みアクセスなどが終了してから次に開始するまでの時間より長いことが通常である。そこで、メモリコントローラは、メモリセルアレイに対して読み出しアクセス、書き込みアクセスなどが行なわれていないことを判断したときに、全メモリセルアレイ領域のうち選択したアドレスについてエラー検出を行なう。
図1は、本実施の形態に係るメモリシステムの構成要素を示すブロック図である。メモリシステムはたとえば情報処理装置などであり、ホストシステム1、メモリコントローラ2、メモリ3などから構成されている。図1においては、メモリセルアレイに対して読み出しアクセスが行なわれる場合を示している。
ホストシステム1は、メモリ3の構成要素であるメモリセルアレイ31への読み出しアクセス、書き込みアクセスなどをメモリコントローラ2に要求するために、読み出しコマンド、書き込みコマンドなどをメモリコントローラ2に出力する。また、ホストシステム1は、メモリセルアレイ31でのエラー情報をメモリコントローラ2から取得するために、Status Readコマンドをメモリコントローラ2に出力する。
メモリコントローラ2は、ホストシステム1からの要求を受けて、メモリセルアレイ31への読み出しアクセス、書き込みアクセスなどを行なう。また、メモリコントローラ2は、メモリセルアレイ31への読み出しアクセス、書き込みアクセスなどが行なわれていないことを判断したときに、メモリセルアレイ31に対するエラー検出処理を行ない、メモリセルアレイ31でのエラー情報を保存する。そして、メモリコントローラ2は、ホストシステム1からの要求を受けて、メモリセルアレイ31でのエラー情報をホストシステム1に通知する。
メモリ3は、メモリセルアレイ31において、ホストシステム1が処理するデータを格納する。本実施の形態に係るメモリ3として、SLC(Single−Level Cell)方式、または、MLC(Multi−Level Cell)方式のNANDフラッシュメモリを使用することが可能である。もっとも、読み出しアドレスにおいて格納されるデータが繰り返し読み出されるときに、非読み出しアドレスにおいて格納されるデータが意図せず書き換えられる可能性がある不揮発性メモリにおいて、本実施の形態を実施することが可能である。
ホストシステム1は、CPU11、アクセスコントローラ12などから構成されている。CPU11は、読み出しコマンド、書き込みコマンドおよびStatus Readコマンドなどを、アクセスコントローラ12にセットする。アクセスコントローラ12は、CPU11からのコマンド発行命令を受けて、読み出しコマンド、書き込みコマンドおよびStatus Readコマンドなどを、メモリコントローラ2に出力する。
メモリコントローラ2は、ホストインターフェース21、コマンド解析部22、メモリアクセス制御部23、出力バッファ部24、スキャン制御部25、エラー検出部26、エラー情報保存部27、メモリインターフェース28などから構成されている。
ホストインターフェース21は、ホストシステム1とメモリコントローラ2の間で、コマンドおよびデータをやりとりするためのインターフェースである。
コマンド解析部22は、コマンドをホストシステム1から入力して、そのコマンドが読み出しコマンド、書き込みコマンドまたはStatus Readコマンドなどのうちいずれかを判別する。
メモリアクセス制御部23は、読み出しコマンド、書き込みコマンドなどをコマンド解析部22から入力して、メモリセルアレイ31への読み出しアクセス、書き込みアクセスなどを行なう。また、メモリアクセス制御部23は、メモリセルアレイ31への読み出しアクセス、書き込みアクセスなどが行なわれていないことを判断したときに、メモリセルアレイ31に対するエラー検出処理を後述するスキャン制御部25に要求する。
メモリアクセス制御部23は、後述する出力バッファ部24が読み出しデータをホストシステム1に出力していることを確認することにより、メモリセルアレイ31への読み出しアクセスが行なわれていないことを判断する。また、メモリアクセス制御部23は、出力バッファ部24が書き込みデータをメモリ3に出力していないことを確認することにより、メモリセルアレイ31への書き込みアクセスが行なわれていないことを判断する。
出力バッファ部24は、読み出しデータをメモリ3から入力して一時的に格納する。そして、出力バッファ部24は、読み出しデータをホストシステム1に出力する。また、出力バッファ部24は、書き込みデータをホストシステム1から入力して一時的に格納する。そして、出力バッファ部24は、書き込みデータをメモリ3に出力する。
スキャン制御部25は、メモリアクセス制御部23からの要求を受けて、エラー検出対象であるスキャンアドレスをメモリ3に対して指定する。また、スキャン制御部25は、Status Readコマンドをコマンド解析部22から入力して、メモリセルアレイ31でのエラー情報をホストシステム1に通知する。
スキャン制御部25は、エラー検出対象であるスキャンアドレスを指定するときに、全メモリセルアレイ領域のうち、エラー検出を行なうアドレスを選択する。スキャン制御部25がエラー検出を行なうアドレスを選択する方法については、図2から図6までを用いて後述する。
エラー検出部26は、エラー検出対象であるスキャンデータをメモリ3から入力する。そして、エラー検出部26は、スキャンデータについてエラー検出を行なう。エラー情報保存部27は、スキャンデータについてエラー情報を保存する。
メモリインターフェース28は、メモリコントローラ2とメモリ3の間で、アドレスおよびデータをやりとりするためのインターフェースである。
メモリアクセス制御部23は、ホストシステム1から要求された読み出しアドレス、書き込みアドレスなどを出力する。スキャン制御部25は、メモリセルアレイ領域のうち選択したスキャンアドレスを出力する。
メモリコントローラ2は、メモリアクセス制御部23によるメモリセルアレイ31への読み出しアクセス、書き込みアクセスなど、および、スキャン制御部25によるスキャンデータの取得を異なる期間に独立して行なう。これにより、メモリコントローラ2は、メモリセルアレイ31へのアクセスおよびスキャンデータの取得を同時に行なうことなく、“Read Disturb”現象が進行することを未然に防止できる。
<エラー検出におけるスキャン方法>
次に、スキャン制御部25がエラー検出を行なうアドレスを選択する方法について、図2から図6までを用いて説明する。まず、スキャン制御部25がスキャン開始アドレスからスキャンを行なう方法について説明する。次に、スキャン制御部25がスキャン開始アドレスを選択する方法について説明する。
図2から図4までは、メモリセルアレイ31におけるエラー検出スキャンを示す図である。図2から図4までにおいて、スキャン開始アドレス311ないし316は、網掛を用いて示されている。また、図2および図3において、スキャン開始アドレス以外のスキャンアドレス311Sないし313Sは、斜線を用いて示されている。すなわち、図2から図4までに示したエラー検出におけるスキャン方法は互いに異なる。スキャン開始アドレスおよびスキャンアドレスは、メモリセルアレイ31のページ単位、ブロック単位、1ブロックの所定等分単位など、どのような単位で選択されてもよい。
図2においては、スキャン制御部25は、メモリアクセス制御部23から動作要求を受けたときに、スキャン開始アドレス311を選択する。そして、スキャン制御部25は、メモリアクセス制御部23から停止要求を受けるまで、スキャン開始アドレス311からのアドレスインクリメントを実行する。
スキャン制御部25は、メモリアクセス制御部23から停止要求を受けたときに、アドレスインクリメントを中断する。そして、スキャン制御部25は、次回にメモリアクセス制御部23から動作要求を受けたときに、アドレスインクリメントが中断されたスキャンアドレスから、アドレスインクリメントを再開する。さらに、スキャン制御部25は、次回にメモリアクセス制御部23から停止要求を受けたときに、アドレスインクリメントを中断する。
スキャン制御部25は、以上に説明した方法により、以後もスキャンアドレスを選択する。すなわち、スキャン制御部25がメモリアクセス制御部23から動作要求を受けたときに、各回のアドレススキャンが行なわれる。そして、複数回のアドレススキャンを通して、スキャン開始アドレス311から連続するスキャンアドレス311Sが選択される。
スキャン制御部25は、メモリアクセス制御部23から動作要求を受けたときに最初にスキャンアドレスを選択するにあたり、前回にメモリアクセス制御部23から動作要求を受けたときに最後に選択したスキャンアドレスを認識する必要がある。そのため、前回にメモリアクセス制御部23から動作要求を受けたときに最後に選択されたスキャンアドレスを記憶する手段を、スキャン制御部25またはメモリコントローラ2の他の構成要素などが備えるようにすればよい。
図3においては、スキャン制御部25は、メモリアクセス制御部23から動作要求を受けたときに、スキャン開始アドレス312を選択する。そして、スキャン制御部25は、メモリアクセス制御部23から停止要求を受けるまで、スキャン開始アドレス312からのアドレスインクリメントを実行して、スキャンアドレス312Sを選択する。
スキャン制御部25は、メモリアクセス制御部23から停止要求を受けたときに、アドレスインクリメントを中止する。そして、スキャン制御部25は、次回にメモリアクセス制御部23から動作要求を受けたときに、スキャン開始アドレス313を選択する。そして、スキャン制御部25は、次回にメモリアクセス制御部23から停止要求を受けるまで、スキャン開始アドレス313からのアドレスインクリメントを実行して、スキャンアドレス313Sを選択する。
スキャン制御部25は、以上に説明した方法により、以後もスキャンアドレスを選択する。すなわち、スキャン制御部25がメモリアクセス制御部23から動作要求を受けたときに、各回のアドレススキャンが行なわれる。そして、各回のアドレススキャンにおいて、各スキャン開始アドレスから連続するスキャンアドレスが選択される。図3の場合には図2の場合とは異なり、複数回のアドレススキャンを通して、単一のスキャン開始アドレスから連続するスキャンアドレスが選択されるわけではない。
図4においては、スキャン制御部25は、メモリアクセス制御部23から動作要求を受けたときに、スキャン開始アドレス314を選択する。そして、スキャン制御部25は、次回および次々回にメモリアクセス制御部23から動作要求を受けたときに、それぞれ、スキャン開始アドレス315、316を選択する。
スキャン制御部25は、以上に説明した方法により、以後もスキャンアドレスを選択する。すなわち、スキャン制御部25がメモリアクセス制御部23から動作要求を受けたときに、各回のアドレススキャンが行なわれる。そして、各回のアドレススキャンにおいて、各スキャン開始アドレスのみが選択される。もっとも、各回のアドレススキャンにおいて、複数のスキャン開始アドレスが選択されてもよい。図4の場合には図2および図3の場合とは異なり、各回のアドレススキャンにおいて、各スキャン開始アドレスから連続するスキャンアドレスが選択されるわけではない。
図2から図4までにおいて、複数回のアドレススキャンにより、全メモリセルアレイ領域のうち、読み出しアドレスに限定されない広範囲の領域について、エラー検出を行なうことができる。また、スキャン開始アドレスから連続するスキャンアドレスを選択する方法として、アドレスインクリメントによる方法のみならず、アドレスデクリメントによる方法などがあげられる。
さらに、スキャン開始アドレスから連続するスキャンアドレスを選択する方法を一般化した方法として、スキャン開始アドレスに関連するスキャンアドレスを選択する方法も利用できる。すなわち、スキャン開始アドレスを選択した後に、そのスキャン開始アドレスと所定の規則に基づいて、スキャンアドレスを選択する。たとえば、メモリセルアレイ31のページ単位でスキャン開始アドレスおよびスキャンアドレスが選択されるときに、スキャン開始ページから数ページごとにスキャンページを選択する方法がある。また、スキャン開始ページとして1ブロック目の1ページ目を選択したときに、スキャンページとして2ブロック目の1ページ目、3ブロック目の1ページ目、を選択する方法がある。
図2から図4までに示したエラー検出におけるスキャン方法を併用することもできる。たとえば、メモリシステムの電源がオンにされてからオフにされるまで、最初は図2の方法を使用して、次に図3の方法を使用して、最後に図4の方法を使用することもできる。
次に、スキャン制御部25がスキャン開始アドレスを選択する方法について説明する。本実施の形態においては、スキャン開始アドレスとして、以下のアドレスがあげられる:(1)乱数発生により選択されるアドレス、(2)エラーが発生する可能性が高いアドレス、(3)エラーが過去に発生したアドレス、(4)重要データが格納されるアドレス。
スキャン制御部25が乱数発生によりスキャン開始アドレスを選択する方法について説明する。スキャン制御部25は、スキャン開始アドレスとして、何番目のブロックのうち何番目のページなどを選択するかを、乱数発生により決定する。そのため、複数回のアドレススキャンにより、メモリセルアレイ31の広範囲の領域について、エラー検出を行なうことができる。
ここで、ホストシステム1が発生させた乱数を用いて、スキャン制御部25がスキャン開始アドレスを選択してもよい。この場合には、ホストシステム1は、メモリコントローラ2に、コマンドおよび乱数を出力すればよい。ホストシステム1は、重要データが格納されるアドレスなどを認識しているならば、その重要データが格納されるアドレスなどから乱数発生によりスキャン開始アドレスを選択してもよい。また、ホストシステム1が出力したコマンドを用いて、スキャン制御部25がスキャン開始アドレスを選択してもよい。この場合には、スキャン制御部25は、コマンドのビット列を用いて、乱数を発生させればよい。
スキャン制御部25がスキャン開始アドレスとして、エラーが発生する可能性が高いアドレスを選択する方法について説明する。このエラーには、“Read Disturb”現象によるエラーが含まれる。図5は、SLC方式のNANDフラッシュメモリにおける“Read Disturb”現象を示す図である。図6は、MLC方式のNANDフラッシュメモリにおける“Read Disturb”現象を示す図である。
図5においては、SLC方式のメモリセルアレイ32は、ブロック321、322、323などの複数のブロックから構成されている。また、ブロック321、322、323は、それぞれ、斜線を施したページ321P、322P、323Pなどの複数のページから構成されている。
メモリコントローラ2がページ321Pに対して読み出しアクセスするときには、ブロック321のうちページ321P以外のページを構成する非選択セルが微弱な書き込み状態にある。すなわち、ブロック321のうちページ321P以外のページにおいて、“Read Disturb”現象が発生する可能性がある。“Read Disturb”現象が発生する様子を、ブロック321において四角印を用いて仮想的に示している。
メモリコントローラ2がページ322P、323Pに対して読み出しアクセスするときには、それぞれ、ブロック322、323のうちページ322P、323P以外のページにおいて、“Read Disturb”現象が発生する可能性がある。“Read Disturb”現象が発生する様子を、ブロック322、323において、それぞれ、丸印、三角印を用いて仮想的に示している。
ページ321Pへの読み出しアクセスが終了したときに、読み出しアドレスであるページ321Pのみならず、読み出しアドレス以外のブロック321をも、スキャン制御部25はスキャン開始アドレスとして選択できる。スキャン制御部25がこのようにスキャン開始アドレスを選択するにあたり、スキャン制御部25はメモリアクセス制御部23から読み出しアドレスを通知されるようにすればよい。
図6においては、MLC方式のメモリセルアレイ33は、ブロック331、332、333などの複数のブロックから構成されている。また、ブロック332は、斜線を施したページ332Pなどの複数のページから構成されている。
メモリコントローラ2がページ332Pに対して読み出しアクセスするときには、ブロック332のうちページ332P以外のページ、および、ブロック332以外の関連ブロックにおいて、“Read Disturb”現象が発生する可能性がある。図6においては、ブロック332以外の関連ブロックとして、ブロック331、333が記載されている。“Read Disturb”現象が発生する様子を、ブロック331、332、333において、それぞれ、四角印、丸印、三角印を用いて仮想的に示している。
ページ332Pへの読み出しアクセスが終了したときに、読み出しアドレスであるページ332Pのみならず、読み出しアドレス以外のブロック331、332、333をも、スキャン制御部25はスキャン開始アドレスとして選択できる。図6の場合も図5の場合と同様に、スキャン制御部25はメモリアクセス制御部23から読み出しアドレスを通知されるようにすればよい。また、“Read Disturb”現象が読み出しブロック以外の関連ブロックに拡散する可能性があることを示す拡散テーブルを、スキャン制御部25またはメモリコントローラ2の他の構成要素などが備えるようにすればよい。
スキャン制御部25がスキャン開始アドレスとして、エラーが過去に発生したアドレスを選択する方法について説明する。このエラーには、“Read Disturb”現象によるエラーが含まれる。エラーが過去に発生したアドレスについての情報を、スキャン制御部25はエラー情報保存部27などから取得すればよい。そして、エラーが過去に最も頻繁に発生したアドレスなどを、スキャン制御部25はスキャン開始アドレスとして選択すればよい。
スキャン制御部25がスキャン開始アドレスとして、重要データが格納されるアドレスを選択する方法について説明する。重要データが格納されるアドレスについての情報を、スキャン制御部25またはメモリコントローラ2の他の構成要素などが備えるようにすればよい。そして、最も重要であると想定されるデータが格納されるアドレスなどを、スキャン制御部25はスキャン開始アドレスとして選択すればよい。
以上に説明したように、スキャン制御部25がスキャン開始アドレスからスキャンを行なう方法として、図2から図4までに説明した3種類の方法などがあげられる。また、スキャン制御部25がスキャン開始アドレスを選択する方法として、直前に説明した4種類の方法などがあげられる。そのため、スキャン制御部25がエラー検出を行なうアドレスを選択する方法として、12種類の方法などがあげられる。これらの12種類の方法などは、目的に応じて使い分けることができる。
たとえば、スキャン制御部25が乱数発生によりスキャン開始アドレスを選択して、図2の方法によりアドレススキャンを行なうときには、読み出しアドレスに限定されない広範囲の領域について、簡易にエラー検出を行なうことができる。また、スキャン制御部25がスキャン開始アドレスとして、重要データが格納されるアドレスを選択して、図4の方法によりアドレススキャンを行なうときには、重要データが格納されるアドレスについて、集中的にエラー検出を行なうことができる。
<処理の流れ>
次に、処理の流れについて以下に示す順序で説明する:(1)コマンド発行、(2)データ取得、(3)エラー検出、(4)エラー通知。図7は、ホストシステム1がデータを取得する処理の流れを示す図である。図8は、メモリコントローラ2がエラーを検出する処理の流れを示す図である。以下に示す処理の流れは、メモリセルアレイ31に対して読み出しアクセスが行なわれる場合についての処理の流れである。しかし、ほぼ同様な処理の流れは、メモリセルアレイ31に対して書き込みアクセスなどが行なわれる場合においても実行できる。
CPU11は、読み出しコマンドまたはStatus Readコマンドを、アクセスコントローラ12にセットする(ステップS11)。そして、CPU11は、読み出しコマンドまたはStatus Readコマンドの発行命令を、アクセスコントローラ12に出力する(ステップS12)。コマンド解析部22は、ホストシステム1からホストインターフェース21を介して、読み出しコマンドまたはStatus Readコマンドを入力する(ステップS13)。
コマンド解析部22は、読み出しコマンドを入力したと判断すれば、読み出しコマンドをメモリアクセス制御部23に出力する(ステップS14における「読み出しコマンド」)。また、コマンド解析部22は、Status Readコマンドを入力したと判断すれば、Status Readコマンドをスキャン制御部25に出力する(ステップS14における「Status Readコマンド」)。
まず、コマンド解析部22が読み出しコマンドを入力した場合について説明する(ステップS14における「読み出しコマンド」)。メモリアクセス制御部23は、読み出しコマンドをデコードして、読み出しアドレスを抽出する(ステップS21)。そして、メモリアクセス制御部23は、メモリインターフェース28を介してメモリ3に、読み出しアドレスを出力する(ステップS22)。
出力バッファ部24は、メモリ3からメモリインターフェース28を介して、読み出しデータを入力する(ステップS23)。そして、出力バッファ部24は、ホストインターフェース21を介してホストシステム1に、読み出しデータを出力する(ステップS24)。CPU11は、アクセスコントローラ12から読み出しデータを入力して(ステップS25)、読み出しデータを処理する。
メモリアクセス制御部23は、出力バッファ部24がホストシステム1に読み出しデータを出力しているかどうかを、出力監視線により監視している。出力バッファ部24がホストシステム1に読み出しデータを出力しているときには、メモリセルアレイ31への読み出しアクセスは行なわれていない。メモリアクセス制御部23は、出力バッファ部24がホストシステム1に読み出しデータを出力していることを確認したときに、スキャン制御部25に動作要求を行なう。スキャン制御部25は、メモリアクセス制御部23からの動作要求を受けて、スキャン制御を開始する(ステップS41)。
もっとも、出力バッファ部24がホストシステム1に読み出しデータを出力しているときであっても、スキャン制御部25がエラー検出スキャンを行なうための時間を確保できないことがある。たとえば、ホストシステム1が一連の流れとして連続して出力する読み出しコマンドを、メモリアクセス制御部23が入力する場合である。この場合には、メモリアクセス制御部23は読み出しコマンドが連続して出力されるものであると判断することにより、スキャン制御部25に動作要求を行なわないようにすればよい。
ここで、スキャン制御部25がスキャン制御を行なう場合として、出力バッファ部24がホストシステム1に読み出しデータを出力している場合のほかに、以下に掲げる場合などがある。まず、出力バッファ部24がメモリ3に書き込みデータを出力していない場合がある。この場合には、メモリアクセス制御部23は、出力バッファ部24がメモリ3に書き込みデータを出力していないことを確認したときに、スキャン制御部25に動作要求を行なう。
次に、ホストシステム1がメモリコントローラ2に、メモリセルアレイ31への読み出しアクセス、書き込みアクセスなどを要求していない場合がある。また、ホストシステム1の電源がオンまたはオフにされる場合がある。さらに、ホストシステム1がメモリコントローラ2に、メモリセルアレイ31以外のバックアップデバイスなどへのアクセスを要求している場合がある。これらの場合であっても、メモリコントローラ2がCPU11を監視するCPU監視部を備えることにより、CPU監視部はスキャン制御部25に動作要求を行なう。
スキャン制御部25は、図2から図6を用いて説明した、エラー検出を行なうアドレスを選択する方法により、スキャンアドレスを生成する(ステップS42)。また、スキャン制御部25は、スキャンアドレスを一時的に格納する。そして、スキャン制御部25は、メモリインターフェース28を介してメモリ3に、スキャンアドレスを出力する(ステップS43)。
エラー検出部26は、メモリ3からメモリインターフェース28を介して、エラー検出対象であるスキャンデータを入力する(ステップS44)。そして、エラー検出部26は、スキャンデータについてエラー検出を行なう(ステップS45)。ここで、エラー検出部26は、スキャン制御部25にエラー情報を通知する。
スキャン制御部25は、スキャンデータについてエラーが検出されなければ、一時的に格納したスキャンアドレスを消去する。
スキャン制御部25は、スキャンデータについてエラーが検出されたならば、一時的に格納したスキャンアドレスについてエラーが検出された旨を、エラー情報保存部27に通知する(ステップS46)。そして、スキャン制御部25は、一時的に格納したスキャンアドレスを消去する。
次に、コマンド解析部22がStatus Readコマンドを入力した場合について説明する(ステップS14における「Status Readコマンド」)。スキャン制御部25は、エラー情報保存部27からエラー情報を取得する。そして、スキャン制御部25は、ホストインターフェース21を介してホストシステム1に、エラー情報としてのStatusデータを出力する(ステップS31)。CPU11は、アクセスコントローラ12からStatusデータを入力して(ステップS32)、その後のエラー訂正に備える。
ここで、ホストシステム1がメモリコントローラ2にStatus Readコマンドを出力する場合として、以下に掲げる場合などがある。まず、ホストシステム1において周期的なトリガが発生する場合がある。次に、ホストシステム1の電源がオンまたはオフにされる場合がある。さらに、ホストシステム1が読み出しコマンドを出力した回数が所定回数を超えた場合がある。
また、スキャン制御部25は、エラー検出部26からエラー情報を通知されたことを、ホストシステム1に割り込みを発生させて通知してもよい。ホストシステム1は、Status Readコマンドをスキャン制御部25に出力することにより、エラー情報としてのStatusデータを入力できる。また、ホストシステム1がStatusデータを入力するときに、スキャン制御部25を介する入力ではなく、エラー情報保存部27からの直接的な入力であってもよい。
さらに、スキャン制御部25、エラー検出部26、エラー情報保存部27は、ホストシステム1に配置されていてもよい。この場合には、ホストシステム1は、読み出しコマンド、書き込みコマンドをメモリコントローラ2に出力していないときなどに、スキャン制御部25においてスキャンアドレスをメモリコントローラ2に出力する。そして、ホストシステム1は、エラー検出部26においてスキャンデータについてエラー検出を行ない、エラー情報保存部27においてエラー情報を保存する。
{第2の実施の形態}
第1の実施の形態においては、エラー検出部26は、スキャンアドレスにおいて格納されるデータについて、エラー検出を行なう。そして、ホストシステム1は、スキャンアドレスにおいて格納されるデータについて、エラー情報を取得する。第2の実施の形態においては、エラー検出部26は、スキャンアドレスおよび読み出しアドレスにおいて格納されるデータについて、エラー検出を行なう。ホストシステム1は、スキャンアドレスおよび読み出しアドレスにおいて格納されるデータについて、エラー情報を取得する。
まず、図9を用いて、第2の実施の形態に係るメモリシステムについて説明する。特に、図1で示した第1の実施の形態に係るメモリシステム、および、図9で示した第2の実施の形態に係るメモリシステムの相違点について説明する。
メモリアクセス制御部23は、読み出しアドレスをメモリ3のみならず、スキャン制御部25にも出力する。スキャン制御部25は、読み出しアドレスをメモリアクセス制御部23から入力して、一時的に格納する。第2の実施の形態においても、第1の実施の形態と同様に、スキャン制御部25は、スキャンアドレスを自身において選択して、一時的に格納する。
エラー検出部26は、スキャンデータのみならず、読み出しデータをもメモリ3から入力する。エラー検出部26は、スキャンデータおよび読み出しデータについて、エラー検出を行なう。エラー検出部26は、スキャンデータおよび読み出しデータについてのエラー情報をスキャン制御部25に通知する。スキャン制御部25は、スキャンデータおよび読み出しデータについてのエラー情報をエラー情報保存部27に保存する。
次に、図10を用いて、メモリコントローラ2が読み出しデータについてエラーを検出する処理の流れについて説明する。CPU11が読み出しコマンドをアクセスコントローラ12にセットしてから(ステップS11)、メモリアクセス制御部23が読み出しアドレスを抽出するまで(ステップS21)の処理の流れは、第1の実施の形態と同様である。
第1の実施の形態においては、メモリアクセス制御部23は、読み出しアドレスをメモリ3のみに出力する(ステップS22)。しかし、第2の実施の形態においては、メモリアクセス制御部23は、読み出しアドレスをメモリ3のみならず(ステップS22)、スキャン制御部25にも出力する。スキャン制御部25は、読み出しアドレスをメモリアクセス制御部23から入力して、一時的に格納する。
出力バッファ部24が読み出しデータを入力してから(ステップS23)、CPU11が読み出しデータをアクセスコントローラ12から入力するまで(ステップS25)の処理の流れは、第1の実施の形態と同様である。
エラー検出部26は、読み出しデータをメモリ3から入力する(ステップS51)。エラー検出部26は、読み出しデータについてエラー検出を行なう(ステップS52)。エラー検出部26は、読み出しデータについてのエラー情報をスキャン制御部25に通知する。
スキャン制御部25は、読み出しデータについてエラーが検出されなければ、一時的に格納した読み出しアドレスを消去する。
スキャン制御部25は、読み出しデータについてエラーが検出されたならば、一時的に格納した読み出しアドレスについてエラーが検出された旨を、エラー情報保存部27に通知する(ステップS53)。そして、スキャン制御部25は、一時的に格納した読み出しアドレスを消去する。
スキャン制御部25がスキャン制御を開始してから(ステップS41)、スキャン制御部25がスキャンアドレスについてエラーが検出された旨をエラー情報保存部27に通知するまで(ステップS46)の処理の流れは、第1の実施の形態と同様である。CPU11がStatus Readコマンドをアクセスコントローラ12にセットしてから(ステップS11)、CPU11がStatusデータをアクセスコントローラ12から入力するまで(ステップS32)の処理の流れは、第1の実施の形態と同様である。
ホストシステム1は、スキャンアドレスおよび読み出しアドレスにおいて格納されるデータについてのエラー情報を、単一のエラー情報保存部27から取得できる。ホストシステム1は、このエラー情報に基づいて、その後のエラー訂正に備えることができる。
メモリシステムの構成要素を示すブロック図である。 メモリセルアレイにおけるエラー検出スキャンを示す図である。 メモリセルアレイにおけるエラー検出スキャンを示す図である。 メモリセルアレイにおけるエラー検出スキャンを示す図である。 SLC方式のNANDフラッシュメモリにおける“Read Disturb”現象を示す図である。 MLC方式のNANDフラッシュメモリにおける“Read Disturb”現象を示す図である。 ホストシステムがデータを取得する処理の流れを示す図である。 メモリコントローラがエラーを検出する処理の流れを示す図である。 メモリシステムの構成要素を示すブロック図である。 メモリコントローラがエラーを検出する処理の流れを示す図である。 NANDフラッシュメモリの模式図である。
符号の説明
1 ホストシステム
2 メモリコントローラ
3 メモリ
11 CPU
12 アクセスコントローラ
21 ホストインターフェース
22 コマンド解析部
23 メモリアクセス制御部
24 出力バッファ部
25 スキャン制御部
26 エラー検出部
27 エラー情報保存部
28 メモリインターフェース
31 メモリセルアレイ

Claims (11)

  1. ホストシステムからメモリアクセスを要求されて、メモリセルアレイにアクセスを行なうメモリコントローラであって、
    前記メモリセルアレイにアクセスが行なわれているかどうかを判断するアクセス判断手段と、
    前記メモリセルアレイにアクセスが行なわれていないタイミングにおいて、所定のアルゴリズムを用いて選択された選択アドレスについてエラー検出を行なう選択アドレスエラー検出手段と、
    を備え、
    前記選択アドレスエラー検出手段は、
    ある読み出しアクセスが終了したときにあるエラー検出タイミングにおいて前記選択アドレスをエラー検出開始アドレスとして選択するとともに、前記ある読み出しアクセスが終了したときおよびその後のエラー検出タイミングにおいて、前記エラー検出開始アドレスに関連するアドレスについてエラー検出を行なう手段、
    を含み、
    前記エラー検出開始アドレスは、
    前記ある読み出しアクセスの際に指定された読み出しアドレスに対応する読み出しページを含むブロックに対応するアドレスとされることを特徴とするメモリコントローラ。
  2. 請求項1に記載のメモリコントローラにおいて、
    前記エラー検出開始アドレスは、読み出しページを含むブロックにおいて前記読み出しページを除くページに対応するアドレスとされることを特徴とするメモリコントローラ。
  3. 請求項1または請求項に記載のメモリコントローラにおいて、さらに、
    前記ホストシステムにより指定された読み出しアドレスについてエラー検出を行なう読み出しアドレスエラー検出手段、
    を備えることを特徴とするメモリコントローラ。
  4. 請求項1ないし請求項に記載のメモリコントローラにおいて、
    前記選択アドレスエラー検出手段は、
    エラー検出タイミングが到来するごとにエラー検出開始アドレスを選択するとともに、前記エラー検出タイミングにおいて、前記エラー検出開始アドレスに関連するアドレスについてエラー検出を行なう手段、
    を含むことを特徴とするメモリコントローラ。
  5. 請求項1ないし請求項に記載のメモリコントローラにおいて、
    前記選択アドレスエラー検出手段は、
    エラー検出タイミングが到来するごとにエラー検出開始アドレスを選択し、前記エラー検出開始アドレスについてエラー検出を行なう手段、
    を含むことを特徴とするメモリコントローラ。
  6. 請求項1ないし請求項のいずれかに記載のメモリコントローラにおいて、
    前記アクセス判断手段は、
    前記メモリセルアレイに書き込みデータが出力されているかどうかを判断する手段、
    を含むことを特徴とするメモリコントローラ。
  7. 請求項1ないし請求項のいずれかに記載のメモリコントローラにおいて、
    前記アクセス判断手段は、
    前記ホストシステムからアクセスを要求されているかどうかを判断する手段、
    を含むことを特徴とするメモリコントローラ。
  8. 請求項1ないし請求項のいずれかに記載のメモリコントローラにおいて、
    前記アクセス判断手段は、
    前記ホストシステムの電源状態が切り替えられたかどうかを判断する手段、
    を含むことを特徴とするメモリコントローラ。
  9. 請求項1ないし請求項のいずれかに記載のメモリコントローラにおいて、さらに、
    前記ホストシステムからエラー検出情報を要求されて、前記ホストシステムにエラー検出情報を通知するエラー通知手段、
    を備えることを特徴とするメモリコントローラ。
  10. 請求項に記載のメモリコントローラにおいて、
    前記エラー通知手段は、
    エラー検出情報を保存する情報保存手段と、
    前記ホストシステムからエラー検出情報を要求されて、前記情報保存手段により保存されたエラー検出情報を前記ホストシステムに通知する手段と、
    を含むことを特徴とするメモリコントローラ。
  11. 請求項に記載のメモリコントローラにおいて、
    前記エラー通知手段は、
    前記メモリセルアレイについてエラーが発生したことを検出したときに、前記ホストシステムがエラー検出情報を要求するための割り込みを発生させる手段、
    を含むことを特徴とするメモリコントローラ。
JP2007236847A 2007-06-21 2007-09-12 メモリコントローラ Active JP5602984B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007236847A JP5602984B2 (ja) 2007-06-21 2007-09-12 メモリコントローラ
US12/120,489 US8504897B2 (en) 2007-06-21 2008-05-14 Memory controller

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007163423 2007-06-21
JP2007163423 2007-06-21
JP2007236847A JP5602984B2 (ja) 2007-06-21 2007-09-12 メモリコントローラ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013094045A Division JP5521087B2 (ja) 2007-06-21 2013-04-26 メモリコントローラ

Publications (2)

Publication Number Publication Date
JP2009026285A JP2009026285A (ja) 2009-02-05
JP5602984B2 true JP5602984B2 (ja) 2014-10-08

Family

ID=40398009

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007236847A Active JP5602984B2 (ja) 2007-06-21 2007-09-12 メモリコントローラ
JP2013094045A Active JP5521087B2 (ja) 2007-06-21 2013-04-26 メモリコントローラ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013094045A Active JP5521087B2 (ja) 2007-06-21 2013-04-26 メモリコントローラ

Country Status (1)

Country Link
JP (2) JP5602984B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5815388B2 (ja) 2011-12-02 2015-11-17 株式会社メガチップス メモリアクセス制御装置および方法
JP5883284B2 (ja) * 2011-12-13 2016-03-09 ラピスセミコンダクタ株式会社 半導体メモリ制御装置及び制御方法
JP6133591B2 (ja) * 2012-12-21 2017-05-24 株式会社メガチップス 半導体記憶装置及びコンピュータシステム
JP6448254B2 (ja) * 2014-08-19 2019-01-09 ラピスセミコンダクタ株式会社 メモリ制御装置及びメモリ制御方法
JP2016118815A (ja) * 2014-12-18 2016-06-30 パナソニックIpマネジメント株式会社 不揮発性メモリ装置
JP6723863B2 (ja) 2016-08-01 2020-07-15 オリンパス株式会社 組み込みシステム、撮影機器及びリフレッシュ方法
CN112542199B (zh) * 2020-12-30 2024-04-12 芯天下技术股份有限公司 检测flash存储出错的方法、电路、存储介质和终端

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0546493A (ja) * 1991-08-13 1993-02-26 Nec Corp メモリ診断装置
JPH0628265A (ja) * 1992-07-09 1994-02-04 Fujitsu Ltd チェック機能を持つメモリ回路
JP3067408B2 (ja) * 1992-08-14 2000-07-17 日本電気株式会社 メモリアクセス制御装置の診断方式
JP3625879B2 (ja) * 1994-11-02 2005-03-02 大日本印刷株式会社 メモリチェック機能をもった情報記録媒体
JPH1125006A (ja) * 1997-06-27 1999-01-29 Fuji Xerox Co Ltd メモリテスト装置
JP2000322330A (ja) * 1999-05-07 2000-11-24 Nec Corp 記憶装置の故障診断回路
JP2003234000A (ja) * 2002-02-08 2003-08-22 Matsushita Electric Ind Co Ltd 半導体集積回路装置、icカードおよび検査装置

Also Published As

Publication number Publication date
JP5521087B2 (ja) 2014-06-11
JP2013168173A (ja) 2013-08-29
JP2009026285A (ja) 2009-02-05

Similar Documents

Publication Publication Date Title
JP5521087B2 (ja) メモリコントローラ
TWI408686B (zh) 程式化一記憶體裝置以增加資料可靠性
KR102065665B1 (ko) 더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
KR102114234B1 (ko) 데이터 저장 시스템 및 그것의 동작 방법
JP5137002B2 (ja) メモリコントローラ
JP5265883B2 (ja) メモリアクセスシステム
US20150127887A1 (en) Data storage system and operating method thereof
US20160179625A1 (en) Data storage device and operating method thereof
KR20150029402A (ko) 데이터 저장 시스템 및 그것의 동작 방법
KR20150045747A (ko) 데이터 저장 시스템 및 그것의 동작 방법
CN106558330B (zh) 半导体器件、其操作方法和包括其的数据储存设备
KR102513505B1 (ko) 비휘발성 메모리 장치, 그것을 포함하는 데이터 저장 장치의 동작 방법
US8504897B2 (en) Memory controller
JP2007094921A (ja) メモリカードとその制御方法
CN107045484B (zh) 数据存储装置
JP5883284B2 (ja) 半導体メモリ制御装置及び制御方法
JP4661369B2 (ja) メモリコントローラ
KR102117929B1 (ko) 데이터 저장 시스템 및 그것의 동작 방법
US10713105B2 (en) Operating method of memory controller, storage device including the same, and operating method of storage device
KR102227196B1 (ko) 데이터 저장 시스템 및 그것의 동작 방법
KR20090098530A (ko) 불휘발성 메모리 장치 및 그것의 읽기 방법
KR20210071314A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
CN114296631B (zh) 存储器系统及其操作方法
JP6267497B2 (ja) 半導体メモリの制御装置及び不安定メモリ領域の検出方法
US11404137B1 (en) Memory system and operating method of memory system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100901

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120918

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130426

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130514

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20130802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140710

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140821

R150 Certificate of patent or registration of utility model

Ref document number: 5602984

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250