JP2011107851A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2011107851A JP2011107851A JP2009260510A JP2009260510A JP2011107851A JP 2011107851 A JP2011107851 A JP 2011107851A JP 2009260510 A JP2009260510 A JP 2009260510A JP 2009260510 A JP2009260510 A JP 2009260510A JP 2011107851 A JP2011107851 A JP 2011107851A
- Authority
- JP
- Japan
- Prior art keywords
- data
- inspection target
- memory
- page
- address
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Abstract
【課題】使用領域を低減させつつ、リードディスターブを抑制させるメモリシステムを提供すること。
【解決手段】メモリセルが直列接続されたストリングを備え、異なる前記ストリングに属する前記メモリセルの集合であるページPG単位でデータの書き込み及び読み出しを行い、前記ストリングの集合であるブロックBLK単位でデータを消去するメモリ6と、前記メモリ6を制御するコントローラ7を具備し、前記コントローラ7は、前記ブロックの集合であるゾーンZone毎に検査対象ページPGに関するテーブル25を保持可能な保持部14と、読み出し対象ページを含む前記ゾーンについての前記検査対象ページにつき誤読み出しの発生率を計算し、予め定められた閾値を該発生率が超える場合、該検査対象ページのデータを、いずれか別の前記ブロックに書込むよう、前記メモリ6に命令する制御部12とを備える
【選択図】図6
【解決手段】メモリセルが直列接続されたストリングを備え、異なる前記ストリングに属する前記メモリセルの集合であるページPG単位でデータの書き込み及び読み出しを行い、前記ストリングの集合であるブロックBLK単位でデータを消去するメモリ6と、前記メモリ6を制御するコントローラ7を具備し、前記コントローラ7は、前記ブロックの集合であるゾーンZone毎に検査対象ページPGに関するテーブル25を保持可能な保持部14と、読み出し対象ページを含む前記ゾーンについての前記検査対象ページにつき誤読み出しの発生率を計算し、予め定められた閾値を該発生率が超える場合、該検査対象ページのデータを、いずれか別の前記ブロックに書込むよう、前記メモリ6に命令する制御部12とを備える
【選択図】図6
Description
本発明は、不揮発性メモリとメモリコントローラとからなるメモリシステムに関する。
不揮発性メモリとそれを制御するメモリコントローラを備えたメモリシステムの一例として、SDメモリカードが知られている。このSDメモリカードに搭載される不揮発性メモリには、例えば、NAND型フラッシュメモリが用いられている(特許文献1参照)。
従来、このようなメモリシステムにおいて、誤りビット数およびデータ読み出し回数が一定の閾値を超えた場合、リフレッシュ動作を実行することより、リードディスターブ対策を行うことが知られている。例えば、前記NAND型フラッシュメモリの消去単位となる複数のブロック毎に、記憶されたデータの読み出し回数をRAMに記憶することで、リードディスターブ対策を行っていた。
これにより、メモリセルアレイの微細化とともにメモリが大容量化し、データの容量も増えるにつれて、上述したリードディスターブ対策のためRAMの大容量化が必要となってきた。このため、メモリの回路規模は大きくなりコスト高となってしまうといった問題があった。
本発明は、使用領域を低減させつつ、リードディスターブ対策も実現するメモリシステムを提供するものである。
この発明の一態様に係るメモリシステムは、データを保持可能な複数のメモリセルが直列接続されたNANDストリングを複数備え、異なる前記NANDストリングに属する複数の前記メモリセルの集合であるページ単位でデータの書き込み及び読み出しを行い、複数のNANDストリングの集合であるブロック単位でデータを消去する半導体メモリと、前記半導体メモリを制御するコントローラとを具備し、前記コントローラは、前記ブロックの集合であるゾーン毎に検査対象ページに関する情報が記録された検査対象テーブルを保持可能な保持部と、前記半導体メモリからの前記データの読み出し時において、前記保持部の前記検査対象テーブルを参照して、読み出し対象ページを含む前記ゾーンについての前記検査対象ページにつき誤読み出しの発生率を計算し、予め定められた閾値を該発生率が超える場合、該検査対象ページのデータを、いずれか別の前記ブロックに書込むよう、前記半導体メモリに命令する制御部とを備える。
本発明によれば、使用領域を低減させつつ、リードディスターブ対策を実現するメモリシステムを提供できる。
以下、この発明の実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
以下、本発明の実施形態に係るメモリシステムの一例としてメモリカードを用いて説明を行う。ここで、ホスト装置としてはパーソナルコンピュータ、携帯電話などであり、上記メモリシステムと互換性のある機器であれば種類を問わない。
[第1の実施形態]
図1は、本発明の第1の実施形態に係るメモリシステムとしてのメモリカード2およびホスト装置1の主要部を概略的に示すブロック図である。各ブロックは、ハードウェア、コンピュータソフトウェア、のいずれかまたは両者の組み合わせとして実現することができる。
図1は、本発明の第1の実施形態に係るメモリシステムとしてのメモリカード2およびホスト装置1の主要部を概略的に示すブロック図である。各ブロックは、ハードウェア、コンピュータソフトウェア、のいずれかまたは両者の組み合わせとして実現することができる。
図1において、ホスト装置(以下、ホストと称する)1は、挿入されるメモリカード2に対してアクセスを行うためのCPU等3のハードウェアおよびアプリケーション、オペレーティングシステム等のソフトウェアを備えている。CPU3は、ユーザからのメモリカード2へのデータの書き込みやメモリカード2からのデータの読み出し指示に従い、書き込みおよび読み出しをファイルシステム4に指示する。
ファイルシステム4は、管理対象の記憶媒体、ここではメモリカード2に記録されているファイル(データ)を管理するための仕組みであり、メモリカード2の記憶領域内に管理情報を記録し、この管理情報を用いてファイルを管理する。ファイルシステム4は、メモリカード2におけるファイルやフォルダなどのディレクトリ情報の作成方法、ファイルやフォルダなどの移動方法や削除方法、データの記録方式、管理情報が記録されている領域の場所や利用方法などを定める。ファイルシステム4は、この実施形態ではFATファイルシステムが用いられる。
さらにホスト1に設けられるSDインタフェース5を介して、ホスト1とメモリカード2との間でデータのやりとりを行う。ホスト1は、メモリカード2との通信に必要な様々な取り決めを規定し、メモリカード2と相互に認識可能な各種のコマンドを発行する。また、ホスト1のSDインタフェース5は、メモリカード2のSDインタフェース11と接続可能なハードウェア上の構成(ピンの配置、数等)となっている。
メモリカード2は、オン状態のホスト1に接続されたとき、およびオフ状態のホスト1に挿入された状態でホスト1がオンされたときに電源供給を受けて初期化動作を行った後、ホスト1からのコマンドに応じて書込み・読出し・消去の処理が行われる。このメモリカード2は、NAND型フラッシュメモリ6とNAND型フラッシュメモリ6を制御するためのコントローラ7とを有する。
NAND型フラッシュメモリ6は、データを不揮発に記憶し、複数のメモリセルからなるページと呼ばれる単位でデータの書き込みおよび読み出しを行う。ページには、各ページに固有の物理アドレスが割り当てられている。また、メモリ6は、複数のページからなる物理ブロックと呼ばれる単位でデータの消去を行う。なお、物理ブロック単位で物理アドレスが割り当てられていることもある。
コントローラ7は、フラッシュメモリ6によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ(または物理ブロック)が、ホスト1により割り当てられたどの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのページ(または物理ブロック)が消去状態(何も書き込まれていない、または無効なデータを保持している状態)であるかを管理することをいう。
コントローラ7は、SDインタフェース11、MPU(micro processing unit)12、ROM(read only memory)13、RAM(random access memory)14、NANDインタフェース15、ECC回路16、及びレジスタ17を含んでいる。
また、ホスト1からメモリカードに2に電源供給がなされ、ホスト1は、メモリカード2がオン状態とされたことを検知する機能を有する。コントローラ7内には更に、レジスタ17が備えられる。
図2に、図1のレジスタ17の具体的な構成を例示する。レジスタ17は、カードステータスレジスタ、CID、RCA、DSR、CSD、SCR、OCR等各種レジスタを有する。カードステータスレジスタは、通常動作において使用され、例えばエラー情報が記憶される。CID、RCA、DSR、CSD、SCR、OCRは、主にメモリカード2の初期化時に使用される。CID(card identification number)には、メモリカード2の個体番号が記憶される。RCA(relative card address)には、相対カードアドレスが記憶される。DSR(driver stage register)には、メモリカード2のバス駆動力等が記憶される。CSD(card specific data)には、メモリカード2の特性パラメータ値が記憶される。SCR(SD configuration data register)には、メモリカード2のデータ配置が記憶される。OCR(operation condition resister)には、メモリカード2の動作範囲電圧に制限のある場合、動作電圧が記憶される。
MPU12は、メモリカード2全体の動作を司る。MPU12は、例えば、メモリカード2が電源供給を受けた際に、ROM13内に格納されているファームウェア(制御プログラム)をRAM14上に読み出して所定の処理を実行する。また、MPU12は、制御プログラムに従って、システムデータ領域21(後述)から検査対象アドレステーブル25のデータ(後述)をRAM14上に読み出し、必要に応じて該検査対象アドレステーブル25のデータを管理する。更にMPU12は、ホスト1から書き込みコマンド、読み出しコマンド、消去コマンドを受けてフラッシュメモリ6に対する所定の処理を実行する。具体的には、MPU12はホスト1から読み出しコマンド(CMD17、CMD18)を受け取ると、読み出したいアドレスに対応するメモリセル(後述)からデータを読み出す。
特に本実施形態において、MPU12はメモリカード2がホスト1から電源供給を受けると、システムデータ領域21から検査対象アドレステーブル25用のデータをRAM14へと出力させる。その後、MPU12は、ホスト1から受け取ったアドレスに従ってRAM14上の上記検査対象アドレステーブル25を参照する。そしてMPU12は検査対象アドレステーブル25に基づき、該当するメモリセルが保持するデータについてECC回路16で検査(誤り訂正)を行うよう指示する。
ROM13は、MPU12により制御される制御プログラムなどを格納する。
RAM14は、MPU12の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する。このようなテーブルとして、ファイルシステム4によってデータに割り当てられた論理アドレスを、該データを実際に記憶しているページの物理アドレスに変換するテーブル(論理アドレス・物理アドレス変換テーブル)が含まれる。またRAM14は検査対象アドレステーブル25を保持可能とする。つまり上述したようにメモリカード2がホスト1から電源供給を受けると、RAM14はMPU12によりシステムデータ領域21が保持する検査対象アドレステーブル25のデータを取り込む。
次に図3用いてこの検査対象アドレステーブル25について説明する。図3に検査対象アドレステーブル25を示す。
図3に示すように、検査対象アドレステーブル25には、ゾーンZone毎に、検査対象となるブロックBLKのブロックアドレス(論理アドレス)及びページPGのページアドレス(論理アドレス)が記録されている。図3の例では、各ゾーンZoneの論理アドレスとして、‘0x000’、‘0x001’、…‘FFFFF’が格納される(16ビット表記)。更にブロックBLK及びページPGの列の論理アドレスとして、‘0x00’が格納される。つまり、図3に示すように、検査対象アドレステーブル25は初期状態として、全てのZoneにおいて、先頭ブロックアドレスのブロックBLKにおける、先頭ページアドレスに対応するページが、検査対象とされている。より具体的には、一行目に着目すると、ECC回路16による検査対象とされるメモリセルは、1番目のZoneでは、先頭アドレスのブロックBLKにおける先頭アドレスを示すメモリセル(ページ)とされる。以下2行目についても同様である。そして、この検査対象とされるページ、及びブロックBLKのアドレスは、MPU12により必要に応じてインクリメントされる。図3に示すようにZoneの最終論理アドレスは‘FFFFF’であるが、本実施形態に係るフラッシュメモリ6が保持するZoneの数は、例えば30である。
図1に戻ってメモリシステムの構成について説明する。ECC回路16は、データのエラー訂正を行うためのもので、読み出したページが保持するデータにつき、誤読み出しの発生率の計算も行う。
また図示するようにフラッシュメモリ6内にはデータを記憶する記憶領域20及び各種制御回路(ロウデコーダ26、センスアンプ27(カラムデコーダ27)、電圧発生回路28、I/Oバッファ29、ページバッファ20など)を備える。前記記憶領域20には、保存されるデータの種類に応じて、システムデータ領域21、機密データ領域22、保護データ領域23、及びユーザデータ領域24に分けられる。
システムデータ領域21は、コントローラ7が、その動作に必要なデータを保存するためにフラッシュメモリ6内で確保しておく領域であり、主にメモリカード2に関する管理情報を格納し、メモリカード2のセキュリティ情報やメディアIDなどのカード情報を格納する。本実施形態では、検査対象アドレステーブル25用のデータ(後述)や回数データ31(後述)がこのシステムデータ領域21に格納される。
機密データ領域22は、暗号化に用いる鍵情報や認証時に使用する機密データを保存しており、ホスト1はアクセスできない。
保護データ領域23は、重要なデータ、セキュアなデータを格納する。ホスト1は、保護データ領域23にアクセス可能であるが、ホスト1とメモリカード2との間での相互認証によりホスト1の正当性が証明された後に限られる。
ユーザデータ領域24は、ホスト1が自由にアクセスおよび使用することが可能で、例えばAVコンテンツファイルや画像データ等のユーザデータを格納する。以下の説明で、フラッシュメモリ6は、このユーザデータ領域24を指すものとする。なお、コントローラ7は、ユーザデータ領域24の一部を確保し、自身の動作に必要な制御データ(論理アドレス・物理アドレス変換テーブル、後述の最終割り当て論理ブロックアドレス等)を保存する。保護データ領域23とユーザデータ領域24はホスト1から別のボリュームとして論理フォーマットされてファイル管理される。
ロウデコーダ26は、データの書き込み動作時、読み出し動作時、及び消去時において、図示せぬ制御部から与えられたロウアドレスに基づいて記憶領域20のロウ方向を選択する。
カラムデコーダ27は、図示せぬ制御部から与えられるカラムアドレスに従って、記憶領域20のカラム方向を選択する。
電圧発生回路28は、データの書き込み動作、消去動作、及び読み出し動作に必要な電圧を発生し、ロウデコーダ26に供給する。
I/Oバッファ29は、コントローラ7から供給された書き込みデータ、アドレス、及びコマンドを、一時的に保持する。そして、アドレス、及びコマンドをそれぞれ図示せぬ制御部に出力する。そして、書き込みデータをページバッファ30へと出力する。またページバッファ30から受け取った読み出しデータをコントローラ7へ出力する。
ページバッファ30は、I/Oバッファ29から受け取った書き込みデータを一時的に保持する。そして、その書き込みデータを記憶領域20へ出力する。また、記憶領域20から受け取った読み出しデータを、I/Oバッファ29を介してメモリコントローラ7へ出力する。
次に、図4を用いて、フラッシュメモリ6のメモリ空間およびメモリの物理的な構成について説明する。図4に示すように、フラッシュメモリ6は、通常のメモリ領域とページバッファ(図示せぬ)とを有する。
メモリ領域は、複数のZoneを含んでいる。そして各Zoneは、例えば512個のブロックBLKを含んでいる。各物理ブロックBLKは、例えば128ページPGから構成される。
メモリ領域は、複数のZoneを含んでいる。そして各Zoneは、例えば512個のブロックBLKを含んでいる。各物理ブロックBLKは、例えば128ページPGから構成される。
各メモリセルは、いわゆるスタックゲート構造型のMOSFET(metal oxide semiconductor field effect transistor)からなる。スタックゲート構造のMOSトランジスタは、トンネル絶縁膜、浮遊ゲート電極などの電荷蓄積層、電極間絶縁膜、制御ゲート電極、及びソース/ドレイン拡散層を含む。各メモリセルトランジスタは、電荷蓄積層に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じた情報を記憶する。メモリセルトランジスタは、2つ以上の閾値電圧の異なる状態を取り得、いわゆる多値記憶を可能な構成を有する。そして、フラッシュメモリ6のセンスアンプ、電圧発生回路等を含む制御回路は、メモリセルトランジスタに多ビットのデータを書き込み、多ビットのデータを読み出すことが可能な構成を有している。
同一ページに属する各メモリセルトランジスタの制御ゲート電極は、同じワード線と接続される。また同じ列に属し且つ直列接続されたメモリセルトランジスタの両端には選択ゲートトランジスタが設けられ、NANDストリングを構成する。一方の選択ゲートトランジスタは、ビット線、他方の選択ゲートトランジスタはソース線と接続される。データの書き込みおよび読み出しは複数のメモリセルトランジスタの集合毎に行われ、このメモリセルトランジスタの集合からなる記憶領域が1つのページに対応する。つまり、互いに異なるNANDストリングに含まれ、且つ同一のワード線に接続されたメモリセルトランジスタの集合が、1つのページとなる。
図4の例の場合、各ページPGは、2112バイト(512バイト分のデータ記憶部×4+10バイト分の冗長部×4+24バイト分の管理データ記憶部)を有しており、上述の通り各ブロックBLKは例えば128ページPGからなる。そして、各Zoneは、上述の通り例えば512ブロックBLKからなる。
データの読み出し及び書き込みは、上記メモリセルトランジスタの集合であるページ単位で行われる。またデータの消去は、上記ページの集合であるブロックBLK単位で行われる。そしてこのブロックBLKの集合が1つのゾーンZoneとなる。
読み出しデータ及び書き込みデータは、ページバッファ(図示せず)を介して行われる。すなわち、書き込み時には、コントローラ7から転送された書き込みデータがページバッファに一時的に保持され、これがビット線に転送される。またビット線に読み出された読み出しデータは、ページバッファでセンス・増幅され、一時的に保持される。その後、ページバッファ内のデータがコントローラに転送される。ページバッファが保持可能なデータサイズは、例えば、ページPGのサイズと同じく2112バイト(2048バイト+64バイト)である。データ書き込みなどの際、ページバッファは、メモリ6に対するデータ入出力処理を、自身の記憶容量に相当する1ページ分の単位で実行する。データの消去は物理ブロックBLK単位で行われる。
また、フラッシュメモリ6は、1つのメモリセルトランジスタに1ビットのデータを書き込むことができるモードと、多ビットのデータ、すなわち2n(nは自然数)値のデータを書き込むモードとを有する。フラッシュメモリ6が1つのメモリセルトランジスタに1ビットのデータを書き込むモードを2値モードと称し、多ビットのデータを書き込むモードを多値モードと称する。
<コマンドの構成について>
次に、ホスト1からメモリカード2へと転送されるコマンドの詳細な構成について図5を用いて説明する。図5はホスト1から転送されるコマンドの構成を示した図である。図5に示すように、コマンドは、先頭のコマンド部(図中、CMDと表記、1バイト)、引数(4バイト)、そしてCRC(7ビット)と最終ビット(1ビット)とから構成される。コマンド部は1バイト(8 bit)のうち、先頭の2bitは固定ビット‘01’で使用される。そして、残りの6bitでホスト1がメモリカード2に要求する実際のコマンドが記載される。例えば、後述する読み出し要求を示すCMD17(51h)、CMD18(52h)、CMD24(58h)である。なお、数字の末尾の“h”は、その前の数字が16進数であることを示す。
次に、ホスト1からメモリカード2へと転送されるコマンドの詳細な構成について図5を用いて説明する。図5はホスト1から転送されるコマンドの構成を示した図である。図5に示すように、コマンドは、先頭のコマンド部(図中、CMDと表記、1バイト)、引数(4バイト)、そしてCRC(7ビット)と最終ビット(1ビット)とから構成される。コマンド部は1バイト(8 bit)のうち、先頭の2bitは固定ビット‘01’で使用される。そして、残りの6bitでホスト1がメモリカード2に要求する実際のコマンドが記載される。例えば、後述する読み出し要求を示すCMD17(51h)、CMD18(52h)、CMD24(58h)である。なお、数字の末尾の“h”は、その前の数字が16進数であることを示す。
そして、ホスト1から出力されたコマンドがCMD24であった場合、引数にはその書き込みたいアドレス及びそのデータ(図中、Data address)がフラッシュメモリ6に格納される。
また、例えばホスト1から出力されたコマンドがCMD17であった場合、引数にはその読み出したいアドレスが格納される(図中、Data address)。上記コマンドがホスト1からメモリカード2へと出力され、これに対し、メモリカード2側からホスト1側へと必要であればデータの出力を行う。このホスト1からコマンドが出力されてから、そのコマンドに応答してメモリカード2がホスト1にデータを出力するタイミングまでの期間において、下記動作がメモリカード2内で実行される。
<メモリカード2の動作>
次に、ホスト1から読み出し要求があった際の、上記メモリカード2の動作全体について図6を用いて説明する。図6に、ホスト1から例えばCMD17が送信され、これに対しメモリカード2がデータをホスト1側へ出力するまでの期間に該メモリカード2が実行するフローチャートを示す。
次に、ホスト1から読み出し要求があった際の、上記メモリカード2の動作全体について図6を用いて説明する。図6に、ホスト1から例えばCMD17が送信され、これに対しメモリカード2がデータをホスト1側へ出力するまでの期間に該メモリカード2が実行するフローチャートを示す。
まず、MPU12がホスト1から読み出し要求、すなわちCMD17またはCMD18を受け取ると(ステップS0、YES)、MPU12はホスト1から受け取った読み出したいデータのアドレスを確認する(S1)。
そして、MPU12はそのアドレスに基づき、RAM14の検査対象アドレステーブル25を参照し、ホスト1から受け取った上記アドレスを含むi番目(0≦i≦29、i:実数)のZoneiを検索する(S2)。
そしてMPU12は、ステップS2で検索したZoneiに対応するブロックBLKn(0≦n≦511、n:実数)、及び該ブロックBLKnに対応するページPGl(0≦l≦127、l:実数)からデータを読み出し、該データに対しECC訂正を実行させる(S3)。
そして、MPU12は、ステップS3においてページPGlに対するECC回路16による誤り訂正の結果得られる誤読み出しの発生率を、予め定められたある閾値と比較する。そして発生率が閾値以上であった場合(S4、YES)、MPU12はそのページPGlに対応するブロックBLKnにリフレッシュ動作を実行する(S5)。つまり、ブロックBLKnを、Zoneiにおける別の空きブロックBLKnにコピーし、そのコピー元のブロックBLKnを新たな空きブロックBLKとして登録し、そのコピー先のブロックBLKnに対応する論理アドレスをRAM14上の論理アドレス・物理アドレス変換テーブルに書込む(S6)。
そして、MPU12は、その検査対象アドレスとなったブロックBLKnが512番目の論理アドレスであった場合(S7、YES)、該ブロックBLKnの論理アドレスを1ビットだけインクリメントし先頭アドレスに戻す(S8)と同時に、ページPGlの論理アドレスを1ビットだけインクリメントさせる(S9)。そして、検査対象アドレスとなったブロックBLKnが512番目の論理アドレスでない場合(S7、NO)、ブロックBLKnの論理アドレスを1ビットだけインクリメントする(S10)。つまり、ブロックBLKnからブロックBLK(n+1)とする。
なお、ステップS4において、ページPGlに対するECC回路16による誤り訂正の結果、誤読み出しの発生率が閾値以上でなかった場合(S4、NO)、リフレッシュ動作をせずにステップS7へ進む。
そしてMPU12は、ホスト1から受け取ったアドレスに対応するメモリセルのデータをホスト1へと出力すべく、該アドレスに対応するメモリセルに対しECC訂正を実行する(S11)。ステップS11でECC回路16による誤り訂正の結果、誤読み出しの発生率が閾値以上であった場合(S12、YES)、MPU12はそのメモリセルにシフトリードを実行する(S13)。ここでシフトリードとは、メモリセルからデータを正常に読み出せない場合に、該メモリセルの閾値を変更して、該メモリセルが保持する正しいデータを読めるようにする動作である。その後、シフトリードを実行した後、MPU12は正しく読めるようになったメモリセルのデータをホスト1へと出力する(S14)。また、ステップS12において、ECC回路16による誤り訂正の結果、誤読み出しの発生率が閾値よりも低かった場合(S12、NO)、シフトリードを実行せず、そのデータをホスト1に出力する(S14)。
<検査対象アドレステーブル25に対するインクリメント動作について(その1)>
次に上記ステップS8において、RAM14内の検査対象アドレステーブル25のブロックBLKnの論理アドレスをインクリメントする動作について図7(a)及び(b)を用いて説明する。
次に上記ステップS8において、RAM14内の検査対象アドレステーブル25のブロックBLKnの論理アドレスをインクリメントする動作について図7(a)及び(b)を用いて説明する。
図7(a)は、ホスト1からの読み出し要求がある前の検査対象アドレステーブル25によって指定される検査対象ページを示す。図示するように検査対象ページは、ブロックBLKnのページPGlである。ここで、特にZoneについて指定はしないが、仮にZoneiとする。
そして図7(b)は、その後、読み出し要求がホスト1からあった後の検査対象アドレステーブル25によって指定される検査対象ページを示す。図示するように検査対象ページは、ブロックBLK(n+1)のページPGlに変更されている。
つまり、ホスト1からCMD17又はCMD18を受け取ると、MPU12は、ホスト1がその読み出したいアドレスを含むZoneを検索し、その該当するZoneのブロックBLKnの論理アドレスだけを1ビットだけインクリメントする。すなわち、当該Zoneにおける検査対象ページが更新される。よって次にホスト1から当該Zoneiに対して読み出し要求があった際、ブロックBLK(n+1)のページPGlが検査対象とされる。
次に、上記ステップS7乃至S9において、RAM14内の検査対象アドレステーブル25のブロックBLKnの論理アドレス、またはブロックBLKn及びページPGlの両方の論理アドレスをそれぞれインクリメントする動作について図8(a)及び図8(b)を用いて説明する。
図8(a)はホスト1からの読み出し要求がある前の検査対象アドレステーブル25によって指定される検査対象ページを示す。図示するように検査対象ページは、ブロックBLK511のページPGlである。上記同様、特にZoneについて指定はしないが、仮にZoneiとする。
そして図8(b)は、その後、読み出し要求がホスト1からあった後の検査対象アドレステーブル25によって指定される検査対象ページを示す。図示するように検査対象ページは、先頭アドレスへと戻りブロックBLK0のページPG(l+1)に変更されている。
つまり、上述したようにホスト1からCMD17又はCMD18を受け取ると、MPU12は、ホスト1がその読み出したいアドレスを含むZoneを検索し、その該当するZoneの論理ブロックアドレスが最終アドレスであると(ここでは512番目のアドレス)、検査対象ブロックを、ブロックBLK511からブロックBLK0に戻す。そして、次にホスト1から当該Zoneiに読み出し要求があった際、図8(b)に示すブロックBLK0のページPG(l+1)が検査対象ページとなる。
<書き込み動作について>
次に、ホスト1からメモリカード2へとデータの書き込み要求(CMD24)があった場合のRAM14に格納された検査対象アドレステーブル25のデータに対する該メモリカード2の動作について図9を用いて説明する。図9は、メモリカード2の動作を示すフローチャートである。なお、ホスト1から書き込み要求があった際、ホスト1が指定したアドレスにデータを書き込む動作については省略する。
次に、ホスト1からメモリカード2へとデータの書き込み要求(CMD24)があった場合のRAM14に格納された検査対象アドレステーブル25のデータに対する該メモリカード2の動作について図9を用いて説明する。図9は、メモリカード2の動作を示すフローチャートである。なお、ホスト1から書き込み要求があった際、ホスト1が指定したアドレスにデータを書き込む動作については省略する。
図9に示すように、ホスト1からメモリカード2に対してデータの書き込み要求があると(ステップS20、YES)、MPU12はRAM14に格納されている検査対象アドレステーブル25のデータを、システムデータ領域21に書き戻す(S21)。つまり、システムデータ領域21に上記検査対象アドレステーブル25のデータを上書きする。また、MPU12は、ホスト1から書き込み要求が無ければ、RAM14の検査対象アドレステーブル25のデータをシステムデータ領域21に格納はしない。
<本実施形態に係る効果>
本実施形態に係るメモリコントローラであると、RAM14の消費容量を低減しつつ、リードディスターブを抑制することが出来る。以下、従来のメモリコントローラと比較しつつ説明する。
本実施形態に係るメモリコントローラであると、RAM14の消費容量を低減しつつ、リードディスターブを抑制することが出来る。以下、従来のメモリコントローラと比較しつつ説明する。
従来のメモリコントローラであると、リードディスターブ防止のため、MPU12はブロックBLK毎に読み出し回数を管理していた。つまり、ある一定の読み出し回数を超えたら、それに該当するブロックBLKは以後使用しないものとする。このようにして、誤読み出しを防止していた。このため、例えばリードカウンタを用いて、1つのZoneを構成する各々の512個のブロックBLKに行ったデータの読み出しの回数を管理していた。つまり、RAM14はブロックBLK毎に、読み出し回数を保持するだけの容量が必要とされた。そして、このZoneは、メモリ6内に例えば30個形成されるとすると、1つのZone当たり、512ブロック×16(bit)=1024byteであることから、約30Mbyteに容量を必要とした。このような問題に加え、近年、メモリセルの微細化とそれに伴う容量の増加により、上記管理方法ではRAM14の容量に限界があった。
この点、本実施形態に係るメモリコントローラであると、上記問題を解決することが出来る。つまり、RAM14で使用される容量を低減しつつ、リードディスターブを抑制させることができる。
前述説明したように、本実施形態に係るメモリコントローラであると、RAM14が管理または保持するデータは、ブロックBLK毎の読み出し回数ではなく、検査対象アドレステーブル25のデータである。すなわち、Zone毎に、現在どのブロックBLKのどのページPGが検査対象とされているかを示す2バイトのアドレスさえ保持できればよい。つまり、各ブロックBLK、及び各ページPGはそれぞれ1バイトで表現されることから、1つのZone当たり、2バイトで表現される。これにより、フラッシュメモリ6内に例えば30個のZoneが形成されていたとすると、全体で2バイト×30Zone=60バイトの容量で済む。そして、この検査対象とされるブロックBLK及びそのブロックBLKにおけるページPGの論理アドレス値は、ホスト1からの読み出し要求の度に更新されていく。つまり、全てのZoneのブロックBLK及びページPGに対し万遍なくECC訂正を実行することができるため、RAM14のメモリ使用容量を低減させ、またデータ読み出し時におけるリードディスターブを抑制させることが出来る。
[第2の実施形態]
次に本発明の第2の実施形態に係るメモリシステムについて説明する。上記第1の実施形態では、ホスト1から、例えばCMD17やCMD18などの読み出しコマンドがある度に、検査対象アドレステーブル25のブロックBLKの論理アドレス、またはそのブロックBLKとそれに対応するページPGとの両方の論理アドレスを1ビットインクリメントしていた。そして、ホスト1から書き込み要求があった場合、その検査対象アドレステーブル25の値をシステムデータ領域21に格納していた。
次に本発明の第2の実施形態に係るメモリシステムについて説明する。上記第1の実施形態では、ホスト1から、例えばCMD17やCMD18などの読み出しコマンドがある度に、検査対象アドレステーブル25のブロックBLKの論理アドレス、またはそのブロックBLKとそれに対応するページPGとの両方の論理アドレスを1ビットインクリメントしていた。そして、ホスト1から書き込み要求があった場合、その検査対象アドレステーブル25の値をシステムデータ領域21に格納していた。
これに対し、本実施形態は、メモリカード2がオン状態とされる度に、検査対象アドレステーブル25のブロックBLKとそれに対応するページPGの論理アドレスをそれぞれ1ビットずつインクリメントするものである。本実施形態に係るメモリコントローラ2は、特に書き込み要求がなく、読み出し要求の多いホスト1を想定している。具体的な例で言えば、ゲーム機器がホスト1に当たる。以下、上記第1の実施形態と重複する構成については説明を省略する。
図10を用いて第2の実施形態で説明したRAM14の内部構成について説明する。図10は本実施形態に係るメモリカード2が備えるRAM14の内部構成を示し、該RAM14が検査対象アドレステーブル25と回数データ31とを備えた様子である。
図示するように本実施形態に係るRAM14は検査対象アドレステーブル25用のデータの他、回数データ31を保持可能とする。この回数データ31は、SDインタフェース11により外部から電源供給があった回数である。MPU12は、メモリカード2への電源投入を検知することが出来る。これは、例えばSDインタフェース11におけるコマンドACMD41の受信によって可能である。そして、MPU12は電源投入を検知すると、システムデータ領域21から回数データ31を読み出し、RAM14に格納する。そしてMPU12、回数データ31の値をカウントアップする。そして、MPU12は、この回数データ31の値に応じて、検査対象アドレステーブル25を生成する。つまり、本実施形態に係る検査対象アドレステーブル25は、システムデータ領域21から読み出されて格納されるのではなく、電源投入の度に、MPU12によって、上記回数データ31の値に基づいて生成される。なお、メモリカード2に電源が供給されなくなると同時に、RAM14に格納された検査対象アドレステーブル25のデータは初期化される。
また検査対象アドレステーブル25は上記第1の実施形態で説明した要素を備える。つまり、検査対象アドレステーブル25は例えば30個のZoneの各々につき、いずれかのブロックBLKにおけるいずれのページPGが検査対象となるかを示す情報を備える。
<検査対象アドレステーブル25に対するインクリメント動作について(その2)>
次に、上記RAM14が保持する検査対象アドレステーブル25の各ZoneにおけるブロックBLK及びページPGのインクリメント動作について図11(a)〜図11(g)を用いて説明する。ここでは、SDインタフェース11により外部から電源供給があり、メモリカード2がオン状態とされ、その後メモリ6が保持するデータの読み出し要求があった場合を想定する。なお、上記第1の実施形態と同様に、CMD17またはCMD18がホスト1により出力されると、MPU12は検査対象アドレステーブル25を参照して、ECC回路16に該当ページPGの誤り訂正を実行させる。すなわち、読み出したいデータに対しステップS11〜ステップS14までの動作を実行する。
次に、上記RAM14が保持する検査対象アドレステーブル25の各ZoneにおけるブロックBLK及びページPGのインクリメント動作について図11(a)〜図11(g)を用いて説明する。ここでは、SDインタフェース11により外部から電源供給があり、メモリカード2がオン状態とされ、その後メモリ6が保持するデータの読み出し要求があった場合を想定する。なお、上記第1の実施形態と同様に、CMD17またはCMD18がホスト1により出力されると、MPU12は検査対象アドレステーブル25を参照して、ECC回路16に該当ページPGの誤り訂正を実行させる。すなわち、読み出したいデータに対しステップS11〜ステップS14までの動作を実行する。
<図11(a)>
まず、図11(a)を用いて説明する。まずメモリカード2に電源が供給された際、MPU12は、検査対象アドレステーブル25の各ZoneにおけるブロックBLK及びページPGはそれぞれ先頭アドレスとする(図中0x00:“0x”は、以降の数字が16進数であることを示す)。換言すれば、電源投入を受けてMPU12は、全ての値が初期値‘0x00’とされた検査対象アドレステーブル25を生成する。これを初期状態とする。
まず、図11(a)を用いて説明する。まずメモリカード2に電源が供給された際、MPU12は、検査対象アドレステーブル25の各ZoneにおけるブロックBLK及びページPGはそれぞれ先頭アドレスとする(図中0x00:“0x”は、以降の数字が16進数であることを示す)。換言すれば、電源投入を受けてMPU12は、全ての値が初期値‘0x00’とされた検査対象アドレステーブル25を生成する。これを初期状態とする。
<図11(b)>
次に、図11(b)に示すように、SDインタフェース11によりメモリカード2がオン状態となったことを検知すると、MPU12はシステムデータ21が保持する回数データ31のデータをRAM14上に展開し、該回数データ31のカウント値を+1インクリメントする。なお、メモリカード2に電源が入る前は回数データ31の値はゼロであったとする。するとMPU12は、外部から電源投入を検知して、回数データ31の値を‘1’とする。そして、MPU12は、検査対象アドレステーブル25における、各ZoneのブロックBLKの論理アドレスを、それまでの先頭アドレスから1ビットだけインクリメントする(図中、0x01)。つまり、MPU12は、電源投入時には、回数データ31に等しい数だけ、検査対象アドレステーブル25のブロックアドレスを、インクリメントする。
次に、図11(b)に示すように、SDインタフェース11によりメモリカード2がオン状態となったことを検知すると、MPU12はシステムデータ21が保持する回数データ31のデータをRAM14上に展開し、該回数データ31のカウント値を+1インクリメントする。なお、メモリカード2に電源が入る前は回数データ31の値はゼロであったとする。するとMPU12は、外部から電源投入を検知して、回数データ31の値を‘1’とする。そして、MPU12は、検査対象アドレステーブル25における、各ZoneのブロックBLKの論理アドレスを、それまでの先頭アドレスから1ビットだけインクリメントする(図中、0x01)。つまり、MPU12は、電源投入時には、回数データ31に等しい数だけ、検査対象アドレステーブル25のブロックアドレスを、インクリメントする。
<図11(c)>
そして、ホスト1からメモリカード2にデータの読み出し要求があったとする。すなわち、ホスト1からCMD17(SDインタフェースにおける読み出し要求)が転送されてきたとする。ここで、読み出したいアドレスを「Address A」とする。ここではこのアドレスは、先頭アドレスから3番目のZoneに含まれているものとする。このため、上記説明したようにMPU12は3番目のアドレスであるZoneにおける、2番目のアドレスのブロックBLK(0x01)、及びそのブロックBLK(0x01)における先頭アドレスのページPG(0x00)を検査対象アドレスとしてECC回路16に誤り訂正を実行させる。その後、図11(c)に示すように該当するZoneのブロックBLKの論理アドレスを1ビットだけインクリメントする(図中、0x02)。
そして、ホスト1からメモリカード2にデータの読み出し要求があったとする。すなわち、ホスト1からCMD17(SDインタフェースにおける読み出し要求)が転送されてきたとする。ここで、読み出したいアドレスを「Address A」とする。ここではこのアドレスは、先頭アドレスから3番目のZoneに含まれているものとする。このため、上記説明したようにMPU12は3番目のアドレスであるZoneにおける、2番目のアドレスのブロックBLK(0x01)、及びそのブロックBLK(0x01)における先頭アドレスのページPG(0x00)を検査対象アドレスとしてECC回路16に誤り訂正を実行させる。その後、図11(c)に示すように該当するZoneのブロックBLKの論理アドレスを1ビットだけインクリメントする(図中、0x02)。
<図11(d)>
図11(d)に示すようにホスト1からメモリカード2に対して再度CMD17が転送されてきたとする。ここで、読み出したいアドレスを「Address B」とする。この場合においてもこのアドレスは、先頭アドレスから3番目のZoneに含まれているものとする。このため、MPU12は、図11(c)と同様に3番目のZoneにおけるブロックBLKの論理アドレスを1ビットだけインクリメントさせる(図中、0x03)。
図11(d)に示すようにホスト1からメモリカード2に対して再度CMD17が転送されてきたとする。ここで、読み出したいアドレスを「Address B」とする。この場合においてもこのアドレスは、先頭アドレスから3番目のZoneに含まれているものとする。このため、MPU12は、図11(c)と同様に3番目のZoneにおけるブロックBLKの論理アドレスを1ビットだけインクリメントさせる(図中、0x03)。
<図11(e)>
更に、図11(e)に示すようにホスト1からメモリカード2に対してCMD17が転送されてきたとする。ここで、読み出したいアドレスを「Address C」とする。ここでは、このアドレスは先頭アドレスから4番目のZoneに含まれているものとする。このため、MPU12は、ECC回路16による誤り訂正後、図11(c)、(d)と同様に4番目のZoneにおけるブロックBLKの論理アドレスを1ビットだけインクリメントさせる(図中、0x02)。
更に、図11(e)に示すようにホスト1からメモリカード2に対してCMD17が転送されてきたとする。ここで、読み出したいアドレスを「Address C」とする。ここでは、このアドレスは先頭アドレスから4番目のZoneに含まれているものとする。このため、MPU12は、ECC回路16による誤り訂正後、図11(c)、(d)と同様に4番目のZoneにおけるブロックBLKの論理アドレスを1ビットだけインクリメントさせる(図中、0x02)。
<図11(f)>
そして、図示するようにメモリカード2に供給されていた電源がオフ状態とされると、RAM14上に構築されていた検査対象アドレステーブル25のデータが初期化される。すなわち、検査対象アドレステーブル25が保持するブロックBLKの論理アドレス及びページPGの論理アドレスのデータが初期化され、それぞれ先頭アドレスに戻る(図中0x00と表記)。つまり、図11(a)に示す初期状態とされる。
そして、図示するようにメモリカード2に供給されていた電源がオフ状態とされると、RAM14上に構築されていた検査対象アドレステーブル25のデータが初期化される。すなわち、検査対象アドレステーブル25が保持するブロックBLKの論理アドレス及びページPGの論理アドレスのデータが初期化され、それぞれ先頭アドレスに戻る(図中0x00と表記)。つまり、図11(a)に示す初期状態とされる。
<図11(g)>
そして、再度メモリカード2がオン状態とされたことをSDインタフェース11が検知すると、MPU12はシステムデータ領域21に格納された、回数データ31の値を、RAM14に読み出す。ここでシステムデータ領域21に格納された回数データ31の値は‘1’とされることから、RAM14に読み出されることで、このカウント値が+1インクリメントされ、‘2’とされる。これにより、RAM14に展開される検査対象アドレステーブル25は図11(g)のようになる。つまり、回数データ31の値は‘2’であるから検査対象アドレステーブル25におけるブロックアドレスは、‘2’だけインクリメントされる。その結果、全てのZoneにつき、検査対象ブロックのブロックアドレス値が‘0x02’とされる。言い換えれば、電源投入を受けてMPU12は、全ての値が初期値‘0x00’とされた検査対象アドレステーブル25を再度生成する。そして、回数データ31を参照することによって、初期値を‘0x02’に更新する。
そして、再度メモリカード2がオン状態とされたことをSDインタフェース11が検知すると、MPU12はシステムデータ領域21に格納された、回数データ31の値を、RAM14に読み出す。ここでシステムデータ領域21に格納された回数データ31の値は‘1’とされることから、RAM14に読み出されることで、このカウント値が+1インクリメントされ、‘2’とされる。これにより、RAM14に展開される検査対象アドレステーブル25は図11(g)のようになる。つまり、回数データ31の値は‘2’であるから検査対象アドレステーブル25におけるブロックアドレスは、‘2’だけインクリメントされる。その結果、全てのZoneにつき、検査対象ブロックのブロックアドレス値が‘0x02’とされる。言い換えれば、電源投入を受けてMPU12は、全ての値が初期値‘0x00’とされた検査対象アドレステーブル25を再度生成する。そして、回数データ31を参照することによって、初期値を‘0x02’に更新する。
この後、ホスト1からCMD17の要求があると、上記説明した図11(c)〜図11(e)のように該当するブロックBLK、またはブロックBLK、及びそのブロックBLKにおけるページPGのアドレスがそれぞれ1ビットずつインクリメントされる。
以上の図11(a)乃至図11(g)に示したように、あるブロックBLKの論理アドレスが「00x0」から「0xff」にまで達し、再度「00x0」に戻るタイミングで、そのブロックBLKにおけるページPGの論理アドレスが+1ビットインクリメントされる。
<本実施形態に係る効果>
本実施形態に係るメモリコントローラであっても、上記第1の実施形態と同様の効果を奏することが出来る。つまり、上記第1の実施形態では、ホスト1から書き込み要求のコマンド(CMD24)が出力されるタイミングでRAM14が格納する検査対象アドレステーブル25のデータがシステムデータ領域21に格納されていた。これにより、メモリ6のメモリセル全体に対して満遍なくECC訂正を実行することができた。
本実施形態に係るメモリコントローラであっても、上記第1の実施形態と同様の効果を奏することが出来る。つまり、上記第1の実施形態では、ホスト1から書き込み要求のコマンド(CMD24)が出力されるタイミングでRAM14が格納する検査対象アドレステーブル25のデータがシステムデータ領域21に格納されていた。これにより、メモリ6のメモリセル全体に対して満遍なくECC訂正を実行することができた。
しかし、本実施形態のようにシステムデータ領域21に回数データ31を保持させることで、ホスト1から出力されるコマンドに書き込み要求が殆どなく、RAM14が格納する検査対象アドレステーブル25が電源のオフと共に初期化される場合であっても、メモリ6のメモリセル全体に対して満遍なくECC訂正を実行することができる。これは、RAM14に回数データ31を保持させ、そのカウント値に応じて初期化された検査対象アドレステーブル25のデータを生成することが出来るからである。
例え、電源がオフとされたとしても、回数データ31に電源がオンした回数を持たせ、この値に応じて検査対象アドレステーブル25のデータを生成することにより、初期化される前に近いデータを検査対象アドレステーブル25に与えられることが出来る。これにより、例え書き込み要求のないホスト1にメモリカード2を挿入し、データの入出力をした時でさえ、RAM14が使用するデータの容量を低減させつつ、リードディスターブを抑制させることが出来る。
なお、上記第1、第2の実施形態に係るメモリコントローラでは、検査対象アドレステーブルのインクリメント方法を、論理アドレスに従ってインクリメントさせたが、物理アドレスに従ってインクリメントさせてもよい。つまり、各Zoneにおいて、ECC回路16によるECC訂正がすべてのメモリセルに対し満遍なく実行されれば、ブロックBLK、及びそのブロックBLKにおけるページPGがどのようにインクリメントされてもよい。
また、上記実施形態ではメモリシステム2の例として、SDインタフェースを有するメモリカード、例えばSDメモリカードを例に挙げて説明した。しかし、SDメモリカードに限らず、NAND型フラッシュメモリと、それを制御するコントローラとを備えたシステムであれば、広く上記実施形態を適用出来る。また、メモリシステムが備える半導体メモリは、NAND型フラッシュメモリ以外の、例えばNOR型フラッシュメモリ等の他のフラッシュメモリであっても良いし、または書き換え回数が動作信頼性に影響するメモリであれば、その他の半導体メモリであっても良い。
また、上記実施形態では検査対象ブロック及びページのアドレスをインクリメントする場合について説明したが、デクリメントする場合であっても良い。またその幅は1ビットでは無く2ビット以上であっても良い。
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
1…ホスト、2…メモリカード、3…ソフトウェア、4…ファイルシステム、5、11…SDインタフェース、6…メモリ、7…コントローラ、12…MPU、13…ROM、14…RAM、15…NANDインタフェース、21…システムデータ領域、22…機密データ領域、23…保護データ領域、24…ユーザデータ領域、25…検査対象アドレステーブル、31…回数データ
Claims (6)
- データを保持可能な複数のメモリセルが直列接続されたNANDストリングを複数備え、異なる前記NANDストリングに属する複数の前記メモリセルの集合であるページ単位でデータの書き込み及び読み出しを行い、複数のNANDストリングの集合であるブロック単位でデータを消去する半導体メモリと、
前記半導体メモリを制御するコントローラと
を具備し、前記コントローラは、前記ブロックの集合であるゾーン毎に検査対象ページに関する情報が記録された検査対象テーブルを保持可能な保持部と、
前記半導体メモリからの前記データの読み出し時において、前記保持部の前記検査対象テーブルを参照して、読み出し対象ページを含む前記ゾーンについての前記検査対象ページにつき誤読み出しの発生率を計算し、予め定められた閾値を該発生率が超える場合、該検査対象ページのデータを、いずれか別の前記ブロックに書込むよう、前記半導体メモリに命令する制御部と
を備えることを特徴とするメモリシステム。 - 半導体メモリと、前記半導体メモリを制御するコントローラとを備えたメモリシステムであって、
前記半導体メモリは、データを保持可能な複数のメモリセルが直列接続されたNANDストリングを複数備え、異なる前記NANDストリングに属する複数の前記メモリセルの集合であるページ単位でデータの書き込み及び読み出しを行い、複数のNANDストリングの集合であるブロック単位でデータ消去し、
前記コントローラは、前記ブロックの集合であるゾーン毎に検査対象ページに関する情報が記録された検査対象テーブル、及び該メモリシステムへの電源投入回数を保持可能な保持部と、
前記電源が投入されたことを検知する検知部と、
前記電源が投入されたことを前記検知部が検知する度に、前記電源投入回数をカウントすると共に、前記電源投入回数に応じて前記検査対象テーブルを生成し、前記半導体メモリからの前記データの読み出し時において、前記検査対象テーブルを参照して、読み出し対象ページを含む前記ゾーンについての前記検査対象ページにつき誤読み出しの発生率を計算し、予め定められた閾値を該発生率が超える場合、該検査対象ページのデータを、いずれか別の前記ブロックに書込むよう、前記半導体メモリに命令する制御部と
を備えることを特徴とするメモリシステム。 - 前記半導体メモリは、前記電源投入回数を保持可能なシステム領域を含み、
前記制御部は、前記電源が投入される度に、前記システム領域から前記電源投入回数を前記保持部に読み出して、該電源投入回数をカウントアップした後、カウントアップされた前記電源投入回数を前記システム領域に書き込む
ことを特徴とする請求項2記載のメモリシステム。 - 前記制御部は、前記発生率の計算の後、前記読み出し対象ページを含む前記ゾーンについての前記検査対象ページを、異なるブロックにおけるいずれかのページに更新した後、前記読み出し対象ページからデータを読み出す
ことを特徴とする請求項1または2記載のメモリシステム。 - 前記検査対象テーブルに記録された前記情報は、前記検査対象ページのページアドレスと、該ページを含むブロックのブロックアドレスであり、
前記制御部は、前記検査対象テーブルにおける前記ブロックアドレスを“1”ずつインクリメントすることにより、前記検査対象ページを更新する
ことを特徴とする請求項1または2記載のメモリシステム。 - 前記検査対象テーブルにおける前記ブロックアドレスが、当該ゾーンにおける最終ブロックアドレスであった場合、
前記制御部は、前記ブロックアドレスを当該ゾーンにおける先頭ブロックアドレスに変更すると共に、前記ページアドレスを“1”インクリメントすることにより、前記検査対象ページを更新する
ことを特徴とする請求項5記載のメモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009260510A JP2011107851A (ja) | 2009-11-13 | 2009-11-13 | メモリシステム |
US12/882,604 US20110119431A1 (en) | 2009-11-13 | 2010-09-15 | Memory system with read-disturb suppressed and control method for the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009260510A JP2011107851A (ja) | 2009-11-13 | 2009-11-13 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011107851A true JP2011107851A (ja) | 2011-06-02 |
Family
ID=44012172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009260510A Abandoned JP2011107851A (ja) | 2009-11-13 | 2009-11-13 | メモリシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110119431A1 (ja) |
JP (1) | JP2011107851A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014525634A (ja) * | 2011-08-31 | 2014-09-29 | マイクロン テクノロジー, インク. | メモリリフレッシュ法および装置 |
JP2014229216A (ja) * | 2013-05-24 | 2014-12-08 | 富士通株式会社 | 情報処理装置、制御回路、制御プログラム、および制御方法 |
US9323660B2 (en) | 2011-12-02 | 2016-04-26 | Megachips Corporation | Memory access control apparatus and memory access control method |
US9626109B2 (en) | 2014-12-11 | 2017-04-18 | Kabushiki Kaisha Toshiba | System and method for managing the operating parameter of a nonvolatile memory |
JP2021508878A (ja) * | 2017-12-28 | 2021-03-11 | シリコン モーション インコーポレイティッドSilicon Motion Inc. | フラッシュメモリコントローラ、sdカードデバイス、フラッシュメモリコントローラで使用される方法、およびsdカードデバイスに結合されたホストデバイス |
US11422717B2 (en) | 2017-12-28 | 2022-08-23 | Silicon Motion Inc. | Memory addressing methods and associated controller, memory device and host |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140052897A1 (en) * | 2012-08-17 | 2014-02-20 | Seagate Technology Llc | Dynamic formation of garbage collection units in a memory |
US9171620B2 (en) | 2012-11-29 | 2015-10-27 | Sandisk Technologies Inc. | Weighted read scrub for nonvolatile memory |
US9098205B2 (en) | 2013-01-30 | 2015-08-04 | Sandisk Technologies Inc. | Data randomization in 3-D memory |
KR102089532B1 (ko) * | 2013-02-06 | 2020-03-16 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 시스템 및 메모리 시스템의 동작 방법 |
US9575829B2 (en) | 2013-03-13 | 2017-02-21 | Sandisk Technologies Llc | Probability-based remedial action for read disturb effects |
US9558108B2 (en) * | 2013-04-15 | 2017-01-31 | Macronix International Co., Ltd. | Half block management for flash storage devices |
US20150121156A1 (en) | 2013-10-28 | 2015-04-30 | Sandisk Technologies Inc. | Block Structure Profiling in Three Dimensional Memory |
JP5751354B1 (ja) * | 2014-01-28 | 2015-07-22 | 日本電気株式会社 | メモリ制御装置、情報処理装置、メモリ制御方法、および、コンピュータ・プログラム |
CN104934066B (zh) | 2014-03-19 | 2018-03-27 | 安华高科技通用Ip(新加坡)公司 | Nand闪存中的读取干扰处理 |
JP2015204126A (ja) * | 2014-04-16 | 2015-11-16 | 株式会社東芝 | 半導体記憶装置 |
KR102198855B1 (ko) | 2014-04-24 | 2021-01-05 | 삼성전자 주식회사 | 메모리 시스템 및 상기 메모리 시스템의 동작 방법 |
DE102014208609A1 (de) * | 2014-05-08 | 2015-11-26 | Robert Bosch Gmbh | Refresh eines Speicherbereichs einer nichtflüchtigen Speichereinheit |
US8918577B1 (en) | 2014-06-13 | 2014-12-23 | Sandisk Technologies Inc. | Three dimensional nonvolatile memory with variable block capacity |
TWI490871B (zh) * | 2014-07-11 | 2015-07-01 | Phison Electronics Corp | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 |
CN105320464B (zh) * | 2014-07-21 | 2018-07-31 | 群联电子股份有限公司 | 防止读取干扰的方法、存储器控制电路单元与存储装置 |
KR102318561B1 (ko) | 2014-08-19 | 2021-11-01 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치의 동작 방법 |
US9772901B2 (en) * | 2015-05-08 | 2017-09-26 | Nxp Usa, Inc. | Memory reliability using error-correcting code |
US9971515B2 (en) * | 2016-09-13 | 2018-05-15 | Western Digital Technologies, Inc. | Incremental background media scan |
JP2018160056A (ja) | 2017-03-22 | 2018-10-11 | 東芝メモリ株式会社 | メモリコントローラ、メモリシステムおよび制御方法 |
US10140040B1 (en) | 2017-05-25 | 2018-11-27 | Micron Technology, Inc. | Memory device with dynamic program-verify voltage calibration |
CN108958640B (zh) * | 2017-05-26 | 2021-07-27 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器存储装置 |
CN110231913A (zh) * | 2018-03-05 | 2019-09-13 | 中兴通讯股份有限公司 | 数据处理方法、装置及设备、计算机可读存储介质 |
US10664194B2 (en) | 2018-05-16 | 2020-05-26 | Micron Technology, Inc. | Memory system with dynamic calibration using a variable adjustment mechanism |
US10990466B2 (en) | 2018-06-20 | 2021-04-27 | Micron Technology, Inc. | Memory sub-system with dynamic calibration using component-based function(s) |
US11188416B2 (en) * | 2018-07-12 | 2021-11-30 | Micron Technology, Inc. | Enhanced block management for a memory sub-system |
US11113129B2 (en) | 2018-07-13 | 2021-09-07 | Micron Technology, Inc. | Real time block failure analysis for a memory sub-system |
US10936246B2 (en) | 2018-10-10 | 2021-03-02 | Micron Technology, Inc. | Dynamic background scan optimization in a memory sub-system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003158243A (ja) * | 2001-11-21 | 2003-05-30 | Mitsubishi Electric Corp | 半導体装置及び半導体装置の動作頻度の記録方法 |
EP1746510A4 (en) * | 2004-04-28 | 2008-08-27 | Matsushita Electric Ind Co Ltd | NONVOLATILE STORAGE DEVICE AND DATA WRITING METHOD |
CN101243417B (zh) * | 2005-07-15 | 2011-05-04 | 松下电器产业株式会社 | 非易失性存储装置、存储控制器以及不良区域检测方法 |
JP2008181380A (ja) * | 2007-01-25 | 2008-08-07 | Toshiba Corp | メモリシステムおよびその制御方法 |
JP4525816B2 (ja) * | 2007-09-28 | 2010-08-18 | 株式会社デンソー | 電子機器及びプログラム |
EP2077559B1 (en) * | 2007-12-27 | 2012-11-07 | Hagiwara Solutions Co., Ltd. | Refresh method of a flash memory |
US8189379B2 (en) * | 2009-08-12 | 2012-05-29 | Texas Memory Systems, Inc. | Reduction of read disturb errors in NAND FLASH memory |
US7818525B1 (en) * | 2009-08-12 | 2010-10-19 | Texas Memory Systems, Inc. | Efficient reduction of read disturb errors in NAND FLASH memory |
-
2009
- 2009-11-13 JP JP2009260510A patent/JP2011107851A/ja not_active Abandoned
-
2010
- 2010-09-15 US US12/882,604 patent/US20110119431A1/en not_active Abandoned
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014525634A (ja) * | 2011-08-31 | 2014-09-29 | マイクロン テクノロジー, インク. | メモリリフレッシュ法および装置 |
US9323660B2 (en) | 2011-12-02 | 2016-04-26 | Megachips Corporation | Memory access control apparatus and memory access control method |
JP2014229216A (ja) * | 2013-05-24 | 2014-12-08 | 富士通株式会社 | 情報処理装置、制御回路、制御プログラム、および制御方法 |
US9626109B2 (en) | 2014-12-11 | 2017-04-18 | Kabushiki Kaisha Toshiba | System and method for managing the operating parameter of a nonvolatile memory |
JP2021508878A (ja) * | 2017-12-28 | 2021-03-11 | シリコン モーション インコーポレイティッドSilicon Motion Inc. | フラッシュメモリコントローラ、sdカードデバイス、フラッシュメモリコントローラで使用される方法、およびsdカードデバイスに結合されたホストデバイス |
US11249893B2 (en) | 2017-12-28 | 2022-02-15 | Silicon Motion Inc. | Flash memory controller, SD card device, method used in flash memory controller, and host device coupled to SD card device |
US11422717B2 (en) | 2017-12-28 | 2022-08-23 | Silicon Motion Inc. | Memory addressing methods and associated controller, memory device and host |
US11829289B2 (en) | 2017-12-28 | 2023-11-28 | Silicon Motion Inc. | Flash memory controller, SD card device, method used in flash memory controller, and host device coupled to SD card device |
Also Published As
Publication number | Publication date |
---|---|
US20110119431A1 (en) | 2011-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011107851A (ja) | メモリシステム | |
US9075740B2 (en) | Memory system | |
JP4834676B2 (ja) | オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法 | |
JP4256175B2 (ja) | 不揮発性半導体メモリ | |
US7778078B2 (en) | Memory system and control method thereof | |
KR100626393B1 (ko) | 불휘발성 메모리 장치 및 그것의 멀티-페이지 카피백 방법 | |
US9229851B2 (en) | Memory controller, semiconductor memory device and control method thereof | |
US20060036804A1 (en) | Nonvolatile memory system | |
JP2009037317A (ja) | メモリーコントローラ、及びこれを用いた不揮発性記憶装置並びに不揮発性記憶システム | |
JP4661369B2 (ja) | メモリコントローラ | |
JP2012521032A (ja) | Ssdコントローラおよびssdコントローラの動作方法 | |
JP4434171B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2005292925A (ja) | メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4710274B2 (ja) | メモリ装置、メモリ装置の制御方法およびデータ処理システム | |
JP4068594B2 (ja) | フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリの制御方法 | |
JP5264459B2 (ja) | 半導体記憶装置 | |
JP4213166B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
JP4222879B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4183550B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4561110B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP2010003055A (ja) | 半導体補助記憶装置の制御方法 | |
JP4050250B2 (ja) | 不揮発性半導体メモリ装置 | |
JP4227989B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP3908238B2 (ja) | 不揮発性半導体メモリ装置のデータ書き込み方法 | |
JP2006309539A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120302 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20130107 |