JP2017058870A - メモリ制御装置及びメモリ制御方法 - Google Patents

メモリ制御装置及びメモリ制御方法 Download PDF

Info

Publication number
JP2017058870A
JP2017058870A JP2015182116A JP2015182116A JP2017058870A JP 2017058870 A JP2017058870 A JP 2017058870A JP 2015182116 A JP2015182116 A JP 2015182116A JP 2015182116 A JP2015182116 A JP 2015182116A JP 2017058870 A JP2017058870 A JP 2017058870A
Authority
JP
Japan
Prior art keywords
block
read
pages
monitoring
monitoring target
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
JP2015182116A
Other languages
English (en)
Other versions
JP6523114B2 (ja
Inventor
正幸 大武
Masayuki Otake
正幸 大武
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.)
Lapis Semiconductor Co Ltd
Original Assignee
Lapis Semiconductor Co Ltd
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 Lapis Semiconductor Co Ltd filed Critical Lapis Semiconductor Co Ltd
Priority to JP2015182116A priority Critical patent/JP6523114B2/ja
Publication of JP2017058870A publication Critical patent/JP2017058870A/ja
Application granted granted Critical
Publication of JP6523114B2 publication Critical patent/JP6523114B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【目的】リードディスターブに伴うデータの破壊を未然に且つ確実に防ぐことが可能なメモリ制御装置及びメモリ制御方法を提供することを目的とする。【構成】半導体メモリに形成されている複数のブロックのうちから、データの読出回数が多いブロックを誤り検査の監視対象とするにあたり、その読出回数に対して、以下の補正を施すようにしている。すなわち、読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には読出対象となるページの数に対応した値を読出回数に加算する。また、読出対象となるページ同士の間隔がnページ分未満となる場合には所定の固定値を読出回数に加算する。【選択図】図1

Description

本発明は、半導体メモリに対してデータのアクセスを行うメモリ制御装置及びメモリ制御方法に関する。
近年、メモリ容量の増大化に伴い、ビット単価で優れているNAND型フラッシュメモリが普及している。かかるNAND型フラッシュメモリでは、大容量化、高集積化に伴い、データが正しく読み出せなくなるという問題が顕著化している。ここで、特定のメモリセルが繰り返し読み出されることによって記憶データが破壊されるという、いわゆるリードディスターブ(Read Disturb)を未然に防ぐことが可能なメモリアクセス制御装置が提案されている(例えば、特許文献1)。当該メモリアクセス制御装置では、通常のデータ読出しがなされていないときにメモリからデータを読み出し、その読出データに誤りが生じているか否かを検出する誤り検査を行う。そして、誤りが生じているブロックに対してデータを再書き込みする、いわゆるリフレッシュ処理を実施する。
ここで、全ブロックを対象として上記のような誤り検査を行うと、リードディスターブの虞があるブロックに対して誤り検査が為される前に、このブロックでリードディスターブによるデータ破壊が生じる虞があった。そこで、特許文献1に記載されているメモリアクセス制御装置では、読み出し回数の多いブロックを誤り検査対象としている。
特開2013−117840号公報
しかしながら、NAND型フラッシュメモリでは、読み出しが為されていないメモリセルにおいてもリードディスターブが生じる場合がある。よって、特許文献1に開示されている方法では、リードディスターブが生じる可能性が高いブロックが誤り検査対象として選定されない虞があり、データの破壊を未然に防ぐことができない場合があった。
そこで、本発明は、リードディスターブに伴うデータの破壊を未然に且つ確実に防ぐことが可能なメモリ制御装置及びメモリ制御方法を提供することを目的とする。
本発明に係るメモリ制御装置は、複数のページが配置されてなるブロックが複数形成されている半導体メモリに対してデータの読出又は書込を行うメモリ制御装置であって、前記データの読出によって読出対象となるブロックから読み出されたページの数を読出回数として前記ブロック毎に計数する読出回数カウンタと、前記読出回数に基づき、複数の前記ブロックのうちから誤り検査の監視対象となるブロックを監視対象ブロックとして選定する監視対象登録部と、前記読出対象となった前記ブロック又は前記監視対象ブロックからデータを読み出し、読み出されたデータに対して誤り検出処理を施して得られた誤りビットの数をブロック毎に計数する監視処理を実行する監視部と、前記監視対象ブロックに対応した前記誤りビットの数が所定の第1のエラー閾値より大きい場合に前記監視対象ブロックに対してリフレッシュ処理を施すリフレッシュ部と、前記読出回数を補正する読出回数補正部と、を有し、前記読出回数補正部は、前記読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には前記読出対象となるページの数に対応した値を前記読出回数に加算し、前記読出対象となるブロック内において前記読出対象となるページ同士の間隔がnページ(nは2以上の整数)分未満となる場合には所定の固定値を前記読出回数に加算する。
また、本発明に係るメモリ制御方法は、複数のページが配置されてなるブロックが複数形成されている半導体メモリに対してデータの読出又は書込を行うメモリ制御方法であって、前記データの読出によって読出対象となるブロックから読み出されたページの数を読出回数としてブロック毎に計数し、前記読出回数に基づき、複数の前記ブロックのうちから誤り検査の監視対象となるブロックを監視対象ブロックとして選定し、前記読出対象となった前記ブロック又は前記監視対象ブロックからデータを読み出し、読み出されたデータに対して誤り検出処理を施して得られた誤りビットの数を前記ブロック毎に計数し、前記監視対象ブロックに対応した前記誤りビットの数が所定の第1のエラー閾値より大きい場合に前記監視対象ブロックに対してリフレッシュ処理を行い、前記読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には前記読出対象となるページの数に対応した値を前記読出回数に加算し、前記読出対象となるブロック内において前記読出対象となるページ同士の間隔がnページ(nは2以上の整数)分未満となる場合には所定の固定値を前記読出回数に加算する。
本発明においては、半導体メモリに形成されている複数のブロックのうちから、データの読出回数が多いブロックを誤り検査の監視対象とするにあたり、その読出回数に対して、以下の補正を施すようにしている。すなわち、読出対象となるブロック内において互いに近接したページの各々が読出対象となる場合には、互いに遠隔したページの各々が読出対象となる場合に比べて、1つのページに集中して掛かるストレスが大きくなる。そこで、本発明では、読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には読出対象となるページの数に対応した値を読出回数に加算する。また、読出対象となるページ同士の間隔がnページ分未満となる場合には所定の固定値を読出回数に加算し、読出対象となるページ同士の間隔がnページ分以上となる場合には読出回数の加算を行わないようにしている。
かかる構成によれば、リードディスターブの影響を反映させた読出回数に基づいて、監視対象となるブロックが選定されるようになるので、リードディスターブに伴うデータの破壊を未然に且つ確実に防ぐことが可能となる。
メモリ100の構成を示すブロック図である。 読出後処理を示すフローチャートである。 読出回数増加補正処理を示すフローチャートである。 読出アクセスされたページ数と加算値ADとの対応関係の一例を示す図である。 リードディスターブの影響を説明する為の図である。
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
図1は、本発明に係るメモリ制御装置としてのメモリコントローラ20を含むメモリ100の構成を示すブロック図である。図1において、メモリセルアレイ10は、例えばNAND型のフラッシュメモリ等のような不揮発性の半導体メモリである。メモリセルアレイ10では、複数のメモリセルによって読出の最小単位となるページが形成され、複数のページでブロックが形成されている。各ブロックは、アドレス順に隣接して配置された複数のページで構成される。
尚、メモリセルアレイ10の特定のブロック内には、優先監視リスト領域SAが設けられている。優先監視リスト領域SAには、電源投入時に優先監視処理(後述する)が施されるブロック(以下、優先監視ブロックと称する)を示す情報として、例えばブロックアドレス又はブロック番号等が記憶されている。よって、電源オフ後も、優先監視ブロックを示す情報は、メモリセルアレイ10の優先監視リスト領域SAに保持される。
メモリコントローラ20は、外部供給された各種のコマンド信号CMD(読出指令、書込指令等)、アドレスAD及びデータDATに基づき、メモリセルアレイ10に対してデータの読出、書込、消去等のアクセスを行う。
メモリコントローラ20は、RAM(Random Access Memory)21、誤り検出部22、読出回数カウンタ23、読出回数補正部24、リフレッシュ処理部25、集中監視対象登録部26、優先監視対象登録部27、全体監視部28、集中監視部29及び優先監視部30を含む。
誤り検出部22は、外部供給された読出指令(以下、読出アクセスと称する)に応じてメモリセルアレイ10から読み出されたデータに対して誤り検出を行い、ブロック毎に、そのブロックに属するページを読み出した際に検出された誤りビットの数を計数する。誤り検出部22は、各ブロックに対応付けして、誤り情報として、例えば誤りビット数を示す情報をRAM21に書き込む。
読出回数カウンタ23は、読出アクセスによって読出対象となったページを読み出した回数を、ブロック毎に計数する。読出回数カウンタ23は、各ブロックに対応付けして、その読出回数を示す情報をRAM21に書き込む。更に、読出回数カウンタ23は、各ブロックの読出回数の総数を示す情報をRAM21に書き込む。尚、以降、読出アクセスによって読出対象となったページが属するブロックを、”読出対象となったブロック”と称する。
読出回数補正部24は、読出アクセスが為される度に、読出対象となったブロックに対応付けしてRAM21に格納されている読出回数を補正し、その補正が施された読出回数をRAM21に上書きする。尚、読出回数補正部24による読出回数の補正方法については後述する。
リフレッシュ処理部25は、読出対象となったブロックに対応付けしてRAM21に格納されている誤りビット数が所定の第1のエラー閾値TE1よりも大なる場合に、その読出対象となったブロックに対して、誤り訂正後のデータを再度書き込むという、いわゆるリフレッシュ処理を施す。更に、リフレッシュ処理部25は、各ブロックに対応付けして、そのブロックで実施されたリフレッシュ処理の回数を示す情報をRAM21に書き込む。尚、エラー閾値TE1とは、誤り訂正可能な誤りビット数の上限を表す値である。
集中監視対象登録部26は、読出対象となったブロックに対応付けしてRAM21に格納されている読出回数が所定の第1の監視対象閾値TM1よりも大なる場合に、その読出対象となったブロックを、集中的に誤り検査の監視対象とする為の集中監視対象ブロックとして登録する。また、集中監視対象登録部26は、当該読出アクセス時に、誤り検出部22において所定の第2のエラー閾値TE2(TE1>TE2)よりも多い誤りが検出されたブロックも、集中監視対象ブロックとして登録する。すなわち、集中監視対象登録部26は、上記した集中監視対象ブロックを表す情報として、例えばブロックアドレス、ブロック番号等をRAM21に書き込む。
優先監視対象登録部27は、RAM21に格納されているブロック毎の誤り情報、読出回数情報、及びリフレッシュ回数情報に基づき、データ破壊直前の状態にあるブロックを、優先的に誤り検査の監視対象とする為の優先監視対象ブロックとして選定する。優先監視対象登録部27は、当該優先監視対象ブロックを表す情報を、メモリセルアレイ10の優先監視リスト領域SAに書き込む。尚、優先監視対象登録部27による優先監視対象ブロックの選定方法については後述する。
全体監視部28は、メモリセルアレイ10内の全てのブロックに対して以下のような全体監視処理を行う。すなわち、全体監視部28は、メモリセルアレイ10の全ブロックの全ページに対してデータの読出しを行う。ここでの全体監視処理は全ブロックの全ページを万遍なく読む必要があるため、例えば、全体監視部28は、第1ブロックの第4r(rは正の整数)ページのデータを順に読出し、次に第2ブロックの第4r+1ページのデータを順に読出し、第3ブロックの第4r+2ページのデータを順に読出す。最終ブロックまで4ページおきにデータの読出しが終わったら、第1ブロックに戻り、第4r+1ページのデータを順に読出し、次に第2ブロックの第4r+2ページのデータを順に読出し、第3ブロックの第4r+3ページのデータを順に読み出す。これを繰り返すことで、4ページおきに全ブロックの全ページに対して万遍なくデータの読出しを行うことができる。ここでは、4ページおきで全体監視処理を行う例を示したが、全体監視処理の精度によってデータの読出しを何ページおきに設定してもよい。この際、誤り検出部22にてブロック毎に検出された誤り情報を、各ブロックに対応づけしてRAM21に書き込む。
集中監視部29は、RAM21に格納されている集中監視対象ブロックを表す情報に基づき、以下のような集中監視処理を実行する。すなわち、集中監視部29は、先ず、メモリセルアレイ10内の集中監視対象ブロックに対応したブロック内の全ページからデータを読み出す。そして、集中監視部29は、誤り検出部22において検出された誤り情報を、集中監視対象ブロックに対応したブロックに対応づけしてRAM21に書き込む。
また、集中監視部29は、読出アクセスの対象となったブロックに対応づけしてRAM21に格納されている読出回数が第1の監視対象閾値TM1に到達した場合に、当該ブロックに対して上記した集中監視処理を行う。すなわち、集中監視部29は、補正読出回数が第1の監視対象閾値TM1に到達したブロックからデータを読み出し、この際、誤り検出部22において検出された誤りビットの数を示す誤り情報を、このブロックに対応付けしてRAM21に書き込む。尚、集中監視部29は、一旦、その読出回数が第1の監視対象閾値TM1に到達したブロックに対しては、それ以降、所定回数分の読出アクセスが為される度に、上記した集中監視処理を行う。
優先監視部30は、電源が投入されると、メモリセルアレイ10の優先監視リスト領域SAから優先監視対象ブロックを表す情報を読み出し、メモリセルアレイ10に対して以下のような優先監視処理を実行する。すなわち、優先監視部30は、先ず、メモリセルアレイ10内の優先監視対象ブロックに対応したブロックからデータを読み出す。そして、優先監視部19は、誤り検出部22において検出された誤りビットの数を示す誤り情報を、優先監視対象ブロックに対応したブロックに対応づけしてRAM21に書き込む。
尚、電源投入時には、RAM21に格納されている誤りビット数、読出回数、リフレッシュ回数、ブロックアドレス(ブロック番号)の値は全て、例えばゼロに初期化される。
次に、メモリ100に対して読出アクセスが為された場合に、メモリコントローラ20が実行する動作について説明する。
読出アクセスに応じて、メモリコントローラ20は、その読出アクセスによって読出対象となったページからデータを読み出し、データDATとして出力する。更に、メモリコントローラ20は、その読出対象となった各ページのアドレスを示す読出アドレス情報をRAM21に書き込む。
その後、メモリコントローラ20は、図2に示す読出後処理に従った制御を実行する。
図2において、先ず、メモリコントローラ20の読出回数カウンタ23は、上記した読出動作によって、読出対象となったブロック内で実施された読出の回数を、当該ブロックに対応付けしてRAM21に格納されている読出回数に加算することにより、読出回数を更新する(ステップS1)。
次に、当該読出回数を、更新された読出回数としての読出回数RNが、第1の監視対象閾値TM1よりも大であるか否かを判定する(ステップS2)。
ステップS2において、読出回数RNが第1の監視対象閾値TM1よりも大であると判定された場合、メモリコントローラ20の集中監視部29が、当該読出アクセスの対象となったブロックに対して、上記した集中監視処理を実行する(ステップS3)。
一方、ステップS2において、読出回数RNが第1の監視対象閾値TM1以下であると判定された場合、メモリコントローラ20の誤り検出部22は、読出アクセスの対象となったブロックから読み出されたデータに誤り検出処理を施し、この際得られた誤りビットの数を、誤りビット数ENとして取得する(ステップS4)。
次に、メモリコントローラ20は、誤りビット数ENが第1のエラー閾値TE1よりも大であるか否かを判定する(ステップS5)。
ステップS5において、誤りビット数ENが第1のエラー閾値TE1よりも大であると判定された場合、メモリコントローラ20のリフレッシュ処理部25は、読出アクセスの対象となったブロックに対して、上記したリフレッシュ処理を施す(ステップS6)。つまり、リフレッシュ処理部25は、ブロック内で検出された誤りビットの数が誤り訂正可能な上限数(TE1)を超えた場合に、このブロックにリフレッシュ処理を施すのである。尚、当該リフレッシュ処理により、読出アクセスの対象となったブロックに対応付けしてRAM21に格納されている読出回数はゼロに初期化される。更に、このリフレッシュ処理により、読出アクセスの対象となったブロックに対応付けしてRAM21に格納されているリフレッシュ回数はインクリメントされる。
一方、ステップS5において、誤りビット数ENが第1のエラー閾値TE1以下であると判定された場合、メモリコントローラ20は、当該誤りビット数ENが第2のエラー閾値TE2よりも大であるか否かを判定する(ステップS7)。
ステップS7において、誤りビット数ENが第2のエラー閾値TE2よりも大であると判定された場合、メモリコントローラ20の読出回数補正部24は、読出アクセスの対象となったブロックに対応付けしてRAM21に格納されている読出回数を、監視対象閾値TM2と同一値に置換する(ステップS8)。すなわち、誤り訂正可能な数、つまりTE1より小であり且つTE2より大となる数のビット誤りが検出された場合には、このブロックでの読出回数を、強制的に監視対象閾値TM2と同一値に置換するのである。
一方、ステップS7において、誤りビット数ENが第2のエラー閾値TE2以下であると判定された場合、読出回数補正部24は、図3に示す読出回数増加補正処理を実行する(ステップS9)。
図3において、先ず、読出回数補正部24は、読出アクセスによってRAM21に格納された、各ページの読出アドレスを示す情報に基づき、この読出アクセスが、互いに隣接して配置されているページ同士からその配置順にデータの読み出しを行う、シーケンシャルな読出アクセスであるか否かを判定する(ステップS31)。ステップS31において、シーケンシャルな読出アクセスであると判定された場合、読出回数補正部24は、読出対象となったページの数に対応した値を有する加算値ADを設定する(ステップS32)。つまり、シーケンシャルな読出アクセスによって読出対象となったページの数が多いほど、加算値ADも大となる。尚、読出対象となったページの数に対応した値を有する加算値ADを設定するにあたり、図4に示すように、読出対象となったページ数がN(Nは2以上の整数)に到るまではそのページ数に対応した大きさの加算値ADを設定し、ページ数がN以上となった場合には、限度値ULで固定される加算値ADを設定するようにしても良い。
一方、ステップS31において、シーケンシャルな読出アクセスではないと判定された場合、読出回数補正部24は、読出対象となったページ同士の間隔が、n(nは2以上の整数)ページ分以上離間しているか否かを判定する(ステップS33)。
ステップS33において、読出対象となったページ同士の間隔がnページ分未満であると判定された場合、読出回数補正部24は、所定の固定値K(Kは正の整数)を加算値ADとして設定する(ステップS34)。
一方、ステップS33において読出対象となったページ同士の間隔がnページ分以上離間していると判定された場合、読出回数補正部24は、ゼロを加算値ADとして設定する(ステップS35)。尚、ステップS33において読出対象となったページ同士の間隔がnページ分以上離間していると判定された場合には、読出回数補正部24は、読出回数への加算を実施しないようにしても良い。
上記したステップS32、S34又はS35の実行後、読出回数補正部24は、加算値ADを、読出アクセスの対象となったブロックに対応付けしてRAM21に格納されている読出回数に加算し、その加算結果を新たな読出回数としてRAM21に上書きする(ステップS36)。かかるステップS36の実行後、読出回数補正部24は、読出回数増加補正ルーチンを抜けて、図2に示すステップS9を終了する。
図2においてステップS8又はS9の終了後、メモリコントローラ20の優先監視対象登録部27は、優先監視対象登録処理を実行する(ステップS10)。
すなわち、優先監視対象登録部27は、先ず、RAM21に格納されているブロック毎の誤り情報、読出回数情報、リフレッシュ回数情報に基づき、データ破壊となる可能性が高い状態にあるブロックを選定する。すなわち、優先監視対象登録部27は、各ブロックのうちで、誤りビット数が所定の第3のエラー閾値TE3より大であり、リフレッシュ回数が所定の実行回数閾値TXより大であり、読出回数が第3の監視対象閾値TM3(TM1>TM3)より大となるブロックを、破壊の危険度が高い優先監視対象ブロックとして選定する。そして、優先監視対象登録部27は、当該優先監視対象ブロックを表す情報、例えばブロックアドレス又はブロック番号を、メモリセルアレイ10の優先監視リスト領域SAに書き込む。尚、複数の優先監視対象ブロックが検出された場合には、優先監視対象登録部27は、各優先監視対象ブロックを示す情報を優先監視リスト領域SAに追記して行く。この際、優先監視対象登録部27は、これら優先監視対象ブロックのうちで、リフレッシュ回数が多い順に上記した優先監視処理を実行させるように、優先監視対象ブロックを示す情報を優先監視リスト領域SAに追記して行く。尚、リフレッシュ回数が同一である場合には、優先監視対象登録部27は、誤りビットの数が多い順に優先監視処理を実行させるように、優先監視対象ブロックを示す情報を優先監視リスト領域SAに追記して行く。よって、優先監視部30は、リフレッシュ回数が多いブロック、誤りビット数が多いブロック、読出回数が多いブロックの順に優先順位を設定し、その優先順位に従った順に優先監視処理を実行する。
かかるステップS10による優先監視対象登録処理の実行後、メモリコントローラ20は、図2に示す読出後処理の実行を終了し、外部からのアクセス待ち状態に移行する。
このアクセス待ち状態の間に、上記した全体監視部28による全体監視処理、及び集中監視部29による集中監視処理を実行するようにしても良い。更に、電源投入に応じて優先監視部30が実行する優先監視処理の直後に、読出アクセスが為されるか否かに拘わらず、全体監視部28による全体監視処理を実行するようにしても良い。尚、全体監視処理の実行中に読出アクセスが為された場合には、この全体監視処理を一旦中断し、図2に示す読出後処理の終了後、その中断した箇所から全体監視処理を行う。また、優先監視部30による優先監視処理に関しては、電源投入時点のみならず、電源投入後、所定周期毎に実行するようにしても良い。
以上のように、図1に示すメモリコントローラ20は、ブロック毎に、そのブロック内で読出対象となったページの数を読出回数として計数する。メモリコントローラ20は、読出回数が所定の閾値(TM1)よりも多くなったブロックについては、読出動作に伴う劣化が進行していると判定し、当該ブロックを集中監視対象ブロックとして登録し、全ブロックのうちで集中監視対象ブロックに対して集中的に監視処理を施す。つまり、集中監視対象ブロックの各々からデータを読み出して誤り検出を行い、ブロック毎に誤りビットの数を集計する。この際、誤りビットの数が所定の閾値(TE1)を超えたブロックに対しては、メモリコントローラ20は、リフレッシュ処理(図2のステップS6)を施すことにより、メモリセルの劣化に伴うデータ破壊を回避する。
この際、全ブロックのうちで、比較的劣化が進行していると推定される集中監視対象ブロックを集中的に監視するようにしたので、早い段階でリフレッシュ処理を必要とするブロックを選定することができる。
しかしながら、全ブロックのうちから集中監視対象ブロックを選定する為に用いる読出回数情報は、電源が遮断されるとゼロに初期化されてしまう。よって、破壊寸前まで劣化が進んでいるブロックが存在しているにも拘わらず、電源投入時点では、このブロックに対応した読出回数はゼロである。従って、このブロックが集中監視対象ブロックに登録される前に、当該ブロックに対する読出アクセスによってデータ破壊が生じてしまう虞がある。
そこで、メモリコントローラ20では、読出アクセス対象となったブロック内で誤り訂正可能な程度の数(TE1より小でありTE2より大となる数)のビット誤りが検出された場合には、このブロックでの読出回数を、強制的に監視対象閾値TM2と同一値置換する(図2のS8)ようにしている。尚、監視対象閾値TM2としては、上記した
監視対象閾値TM1と同一値を用いるようにしても良い。これにより、当該ブロックは、集中監視対象ブロックとして登録されることになり、直ちに集中監視処理が施されるようになる。
これにより、劣化が進んでいるブロックが存在しているにも拘わらず、電源オフによって当該ブロックに対応付けされてRAM21に格納されている読出回数がゼロに初期化されてしまっても、このブロックに対して、早い段階で集中監視処理を施す、或いは優先監視対象ブロックとして選定することが可能となる。よって、データ破壊を未然に防ぐことが可能となる。
更に、メモリコントローラ20では、全ブロックのうちで、劣化が進行しており且つ破壊の危険度が高いブロックを優先監視対象ブロックとして登録するようにしている。すなわち、メモリコントローラ20は、読出回数が所定の閾値(TM1)より大である(第1の条件)、誤りビット数が所定の閾値(TE3)より大である(第2の条件)、リフレッシュ回数が所定回数(TX)より大である(第3の条件)のうちのいずれか1つの条件を満たすブロックを、優先監視対象ブロックとして選定する。つまり、ブロックの劣化度合いは、読出回数のみならず、実施されたリフレッシュ処理の回数、誤りビットの数にも反映されるので、これらを考慮して破壊の危険度が高いブロックを精度良く検知するようにしたのである。そして、メモリコントローラ20は、当該優先監視対象ブロックを示す情報(ブロックアドレス又はブロック番号)を、不揮発性半導体メモリとしてのメモリセルアレイ20に書き込む。よって、優先監視対象ブロックを示す情報は、電源オフ後も、メモリセルアレイ20に保持される。そこで、メモリコントローラ20は、電源投入に応じて、先ず、メモリセルアレイ20に格納されている優先監視対象ブロックを示す情報を読み出し、当該優先監視対象ブロックに対して監視処理を施すのである。例えば、電源オフの前に、監視対象閾値TM1に到達しなかった為、集中監視処理対象とならなかったブロックに対しても、監視対象閾値TM3に達していれば優先監視対象となるため、電源投入時に優先監視処理が施される。つまり、電源オフ時に読出回数はゼロに初期化されるので、再び1から読出回数の計数が為されることになるが、読出回数が多いブロックの履歴を残すことで、このブロックを優先的に監視することが可能となる。
従って、上記した優先監視対象ブロックの登録及び優先監視処理によれば、破壊寸前まで劣化が進んでいるブロックに対して、早い段階でリフレッシュ処理を施すことが可能となる。これにより、破壊寸前まで劣化が進んでいるブロックが存在していても、データ破壊を未然に防ぐことが可能となる。
ところで、前述したようにブロックの劣化は読出回数の増加につれて進行するが、例えばNAND型のフラッシュメモリ等では、読出対象となったページのみならず、そのページに隣接する、少なくとも1つのページにもストレスが掛かって劣化するという、いわゆるリードディスターブが生じる。
以下に、リードディスターブの影響により、読出対象となったページに隣接する1ページ分の範囲にストレスが掛かる場合を例にとって、各ページに掛かる読出動作に伴うストレス(以下、読出ストレスと称する)について、図5(a)〜図5(c)を参照しつつ説明する。尚、図5(a)〜図5(c)は、1つのブロック内に形成されている8ページ分の領域を模式的に表す図である。
例えば、図5(a)に示すように互いに2ページ以上離間した位置に配置されているページP3及びP7が読出対象(斜線にて示す)となる場合、ページP3と共に当該P3に隣接するP2及びP4にもストレスが掛かる。更に、ページP7と共に当該P7に隣接するP6及びP8にもストレスが掛かる。よって、この際、ページP2〜P4、及びP6〜P8に夫々1回分の読出ストレスが掛かる。
また、図5(b)に示すように互いに1ページ離間した位置に配置されているページP3及びP5が読出対象となると、ページP3と共に当該P3に隣接するP2及びP4にもストレスが掛かる。更に、ページP5と共に当該P5に隣接するP4及びP6にもストレスが掛かる。よって、この際、ページP2、P3、P5及びP6には夫々1回分の読出ストレスが掛かるが、ページP4には2回分の読出ストレスが掛かる。
また、図5(c)に示すように互いに隣接して配置されているページP3及びP4を連続して読出対象とする、いわゆるシーケンシャルな読出が為されると、ページP3と共に当該P3に隣接するP2及びP4にもストレスが掛かる。更に、ページP4と共に当該P4に隣接するP3及びP5にもストレスが掛かる。よって、この際、ページP2及び5に対しては1回分の読出ストレスが掛かるが、ページP3及びP4には夫々2回分の読出ストレスが掛かることになる。
このように、図5(a)〜図5(c)に示される読出アクセスでは、読出回数は全て2回である。ところが、読出アクセスの対象となるページ同士の間隔が、図5(b)に示すようにリードディスターブの影響を受ける範囲(P2、P4、P4、P6)が重なる程度に短い場合には、図5(a)に示すように、その範囲(P2、P4、P6、P8)が互いに重ならない程度に離間している場合に比べて、1ページに集中する読出ストレスは大となる。また、この図5(b)に示す状態よりも、図5(c)に示すように、互いに隣接するページ同士を順次読出対象とする、いわゆるシーケンシャルアクセスを行う場合の方が1ページに集中する読出ストレスは大となる。
よって、図5(a)〜図5(c)に示される例では読出回数が全て2回となるものの、ブロック劣化の進行度は、図5(c)の形態で読出アクセスを行った場合が最も早く、図5(a)の形態で読出アクセスを行った場合が最も遅くなる。
そこで、メモリコントローラ20では、リードディスターブに伴ってメモリセルに掛かるストレスを考慮した読出回数となるように、実際に実行された読出の回数に対して図3に示すような補正を施すようにしている。
すなわち、図5(a)に示すように、読出対象となったページ同士の間隔が、nページ分以上よりも大となる場合、つまりリードディスターブの影響を受ける範囲が重ならない場合には、ゼロを有する加算値ADを実際の読出回数に加算する(図3のS35、S36)。つまり、この際、読出回数への加算を行わない。また、図5(b)に示すように、読出対象となったページ同士の間隔がn(nは2以上の整数)ページ分未満となる場合、つまりリードディスターブの影響を受ける範囲が重なる場合には、所定の固定値Kを有する加算値ADを、実際の読出回数に加算する(図3のS34、S36)。また、図5(c)に示すように、隣接ページ同士が読出対象となるシーケンシャルアクセスが為された場合、つまり読出対象となったページの読み出しに伴うリードディスターブの影響が、読出対象となった隣接ページにも及ぶ場合には、そのページ数に対応した値を有する加算値ADを、実際の読出回数に加算(図3のS32、S36)する。例えば、シーケンシャルアクセスされるページ数がw(wは2以上の整数)ページとなる場合には、加算値ADを”w”又は”w”に所定の係数を乗算した値に設定し、この加算値ADを、実際の読出回数に加算する。
尚、図5(a)〜図5(c)では、リードディスターブの影響を受ける範囲が隣接する1ページ分だけとなっているが、隣接する2ページ分、或いは隣接する3ページ分以上を、リードディスターブの影響を受ける範囲と捉えて加算値ADを設定するようにしても良い。この際、読出対象となったページから遠いページほど、掛かるストレスが弱いので、読出対象となったページからの距離に応じて、隣接する複数のページに対応させて加算する加算値ADの値を設定するようにしても良い。つまり、読出対象となったページから遠いページほど加算値ADの値を小さくするのである。
したがって、かかる読出回数補正によれば、リードディスターブの影響を反映させた読出回数に基づき、監視対象とするブロックが選定されるようになるので、リードディスターブに伴うデータ破壊を未然に且つ確実に防ぐことが可能となる。
要するに、メモリ制御装置としてのメモリコントローラ20は、以下の読出回数カウンタ、監視対象登録部、監視部、及び読出回数補正部を有することにより、リードディスターブに伴うデータの破壊を未然に且つ確実に防ぐのである。つまり、読出回数カウンタ(23)は、データの読出によって読出対象となるブロックから読み出されたページの数を読出回数としてブロック毎に計数する。監視対象登録部(26、27)は、この読出回数に基づき、複数のブロックのうちから誤り検査の監視対象となるブロックを監視対象ブロックとして選定する。監視部(29、30)は、読出対象となったブロック又は監視対象ブロックからデータを読み出し、読み出されたデータに対して誤り検出処理を施して得られた誤りビットの数をブロック毎に計数する監視処理を実行する。リフレッシュ部(25)は、監視対象ブロックに対応した誤りビットの数が所定の第1のエラー閾値(TE1)より大きい場合に監視対象ブロックに対してリフレッシュ処理を施す。そして、読出回数補正部(24)は、読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には読出対象となるページの数に対応した値を読出回数に加算する(図3のS31、S32、S36)。また、読出回数補正部は、読出対象となるブロック内において読出対象となるページ同士の間隔がnページ(nは2以上の整数)分未満となる場合には所定の固定値(K)を読出回数に加算する(図3のS33、S34、S36)。また、読出回数補正部は、読出対象となるブロック内において読出対象となるページ同士の間隔がnページ分以上となる場合には読出回数への加算を行わない(図3のS33、S35、S36)。
10 メモリセルアレイ
20 メモリコントローラ
22 誤り検出部
23 読出回数カウンタ
24 読出回数補正部
27 優先監視対象登録部
30 優先監視部
SA 優先監視リスト領域

Claims (6)

  1. 複数のページが配置されてなるブロックが複数形成されている半導体メモリに対してデータの読出又は書込を行うメモリ制御装置であって、
    前記データの読出によって読出対象となるブロックから読み出されたページの数を読出回数として前記ブロック毎に計数する読出回数カウンタと、
    前記読出回数に基づき、複数の前記ブロックのうちから誤り検査の監視対象となるブロックを監視対象ブロックとして選定する監視対象登録部と、
    前記読出対象となった前記ブロック又は前記監視対象ブロックからデータを読み出し、読み出されたデータに対して誤り検出処理を施して得られた誤りビットの数をブロック毎に計数する監視処理を実行する監視部と、
    前記監視対象ブロックに対応した前記誤りビットの数が所定の第1のエラー閾値より大きい場合に前記監視対象ブロックに対してリフレッシュ処理を施すリフレッシュ部と、
    前記読出回数を補正する読出回数補正部と、を有し、
    前記読出回数補正部は、
    前記読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には前記読出対象となるページの数に対応した値を前記読出回数に加算し、前記読出対象となるブロック内において前記読出対象となるページ同士の間隔がnページ(nは2以上の整数)分未満となる場合には所定の固定値を前記読出回数に加算することを特徴とするメモリ制御装置。
  2. 前記監視対象登録部は、前記複数のブロックのうちから、第1の監視閾値より大きい値を有する前記読出回数に対応したブロックを前記監視対象ブロックとして選定し、
    前記監視部は、前記読出対象となった前記ブロックに対応した前記読出回数が前記第1の監視閾値よりも大なる第2の監視閾値よりも大きい場合に前記読出対象となった前記ブロックに前記監視処理を実行し、
    前記読出回数補正部は、前記読出対象となった前記ブロックに対応した前記誤りビットの数が前記第1のエラー閾値より小なる第2のエラー閾値よりも大きい場合には、前記読出対象となった前記ブロックに対応した前記読出回数の値を前記第2の監視閾値の値に置換することを特徴とする請求項1記載のメモリ制御装置。
  3. 前記監視対象登録部は、前記複数のブロックのうちから、前記読出回数が前記第1の監視対象閾値より大となる第1の条件と、前記誤りビット数が第3のエラー閾値より大で
    ある第2の条件と、前記リフレッシュ処理の実行回数が所定の実行回数閾値より大であ
    る第3の条件のうちの少なくとも1つの条件を満たしたブロックを前記監視対象ブロックとして選定し、前記監視対象ブロックを示す情報を前記半導体メモリに書き込み、
    前記監視部は、電源投入に応じて前記半導体メモリから前記監視対象ブロックを示す情報を読み出し、前記情報によって示される前記優先監視対象ブロックに対して前記監視処理を施すことを特徴とする請求項1又は2記載のメモリ制御装置。
  4. 前記第1のエラー閾値は、誤り訂正が可能な誤りビット数の上限値であることを特徴とする請求項1〜3のいずれか1に記載のメモリ制御装置。
  5. 前記半導体メモリはNAND型のフラッシュメモリであることを特徴とする請求項1〜4のいずれか1に記載のメモリ制御装置。
  6. 複数のページが配置されてなるブロックが複数形成されている半導体メモリに対してデータの読出又は書込を行うメモリ制御方法であって、
    前記データの読出によって読出対象となるブロックから読み出されたページの数を読出回数としてブロック毎に計数し、
    前記読出回数に基づき、複数の前記ブロックのうちから誤り検査の監視対象となるブロックを監視対象ブロックとして選定し、
    前記読出対象となった前記ブロック又は前記監視対象ブロックからデータを読み出し、読み出されたデータに対して誤り検出処理を施して得られた誤りビットの数を前記ブロック毎に計数し、
    前記監視対象ブロックに対応した前記誤りビットの数が所定の第1のエラー閾値より大きい場合に前記監視対象ブロックに対してリフレッシュ処理を行い、
    前記読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には前記読出対象となるページの数に対応した値を前記読出回数に加算し、前記読出対象となるブロック内において前記読出対象となるページ同士の間隔がnページ(nは2以上の整数)分未満となる場合には所定の固定値を前記読出回数に加算することを特徴とするメモリ制御方法。
JP2015182116A 2015-09-15 2015-09-15 メモリ制御装置及びメモリ制御方法 Active JP6523114B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015182116A JP6523114B2 (ja) 2015-09-15 2015-09-15 メモリ制御装置及びメモリ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015182116A JP6523114B2 (ja) 2015-09-15 2015-09-15 メモリ制御装置及びメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2017058870A true JP2017058870A (ja) 2017-03-23
JP6523114B2 JP6523114B2 (ja) 2019-05-29

Family

ID=58390438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015182116A Active JP6523114B2 (ja) 2015-09-15 2015-09-15 メモリ制御装置及びメモリ制御方法

Country Status (1)

Country Link
JP (1) JP6523114B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019160197A (ja) * 2018-03-16 2019-09-19 富士通株式会社 ストレージ装置,制御プログラムおよび制御方法
CN110531922A (zh) * 2018-05-23 2019-12-03 爱思开海力士有限公司 存储器系统、控制器及其操作方法
US10854302B2 (en) 2018-03-19 2020-12-01 Toshiba Memory Corporation Memory system and memory control method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293579A (ja) * 2007-05-24 2008-12-04 Mega Chips Corp メモリアクセスシステム
JP2010160816A (ja) * 2010-03-29 2010-07-22 Toshiba Corp 半導体記憶装置の制御方法
JP2013117840A (ja) * 2011-12-02 2013-06-13 Mega Chips Corp メモリアクセス制御装置および方法
JP2014235757A (ja) * 2013-05-30 2014-12-15 株式会社東芝 コントローラ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293579A (ja) * 2007-05-24 2008-12-04 Mega Chips Corp メモリアクセスシステム
JP2010160816A (ja) * 2010-03-29 2010-07-22 Toshiba Corp 半導体記憶装置の制御方法
JP2013117840A (ja) * 2011-12-02 2013-06-13 Mega Chips Corp メモリアクセス制御装置および方法
JP2014235757A (ja) * 2013-05-30 2014-12-15 株式会社東芝 コントローラ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019160197A (ja) * 2018-03-16 2019-09-19 富士通株式会社 ストレージ装置,制御プログラムおよび制御方法
US10854302B2 (en) 2018-03-19 2020-12-01 Toshiba Memory Corporation Memory system and memory control method
CN110531922A (zh) * 2018-05-23 2019-12-03 爱思开海力士有限公司 存储器系统、控制器及其操作方法
CN110531922B (zh) * 2018-05-23 2023-06-13 爱思开海力士有限公司 存储器系统、控制器及其操作方法

Also Published As

Publication number Publication date
JP6523114B2 (ja) 2019-05-29

Similar Documents

Publication Publication Date Title
US9922706B2 (en) Solid state storage device using state prediction method
JP7074519B2 (ja) メモリシステム、および、メモリ制御方法
JP5815388B2 (ja) メモリアクセス制御装置および方法
JP5100663B2 (ja) 試験装置および試験方法
US9514843B2 (en) Methods for accessing a storage unit of a flash memory and apparatuses using the same
US9535785B2 (en) ECC method for flash memory
US10586601B2 (en) Semiconductor memory device and read control method thereof
US20130159798A1 (en) Non-volatile memory device and operating method thereof
JP6523114B2 (ja) メモリ制御装置及びメモリ制御方法
KR20150090414A (ko) 에러 정정 동작을 수행하는 반도체 장치
JP5604313B2 (ja) メモリアクセス制御装置
TWI648743B (zh) 半導體裝置及其操作方法
JP2012133832A (ja) 不揮発性半導体記憶装置、及び読み出し電圧検出方法
US8762926B2 (en) Method and apparatus for diagnosing a fault of a memory using interim time after execution of an application
US9275745B2 (en) Semiconductor device and method of operating the same
JP2013125303A (ja) 半導体メモリ制御装置及び制御方法
US11176988B2 (en) Control method for memory and non-transitory computer-readable media
JP6423282B2 (ja) メモリ制御装置及びメモリ制御方法
US10199107B2 (en) Data storage device and data refresh method thereof
CN109710445B (zh) 内存校正方法和电子设备
JP5535113B2 (ja) メモリシステム
TWI764569B (zh) 半導體記憶裝置
JP6700082B2 (ja) 半導体装置、電池監視システム、及びデータ読み出し方法
JP6448254B2 (ja) メモリ制御装置及びメモリ制御方法
JP2006286135A (ja) 半導体記憶装置及びその読み書き制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190425

R150 Certificate of patent or registration of utility model

Ref document number: 6523114

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150