(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022040856
(43)【公開日】2022-03-11
(54)【発明の名称】メモリ制御装置及びメモリ制御方法
(51)【国際特許分類】
G06F 12/02 20060101AFI20220304BHJP
G06F 12/00 20060101ALI20220304BHJP
【FI】
G06F12/02 570A
G06F12/00 550Z
G06F12/00 597U
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2020145774
(22)【出願日】2020-08-31
(71)【出願人】
【識別番号】308033711
【氏名又は名称】ラピスセミコンダクタ株式会社
(74)【代理人】
【識別番号】100079119
【弁理士】
【氏名又は名称】藤村 元彦
(72)【発明者】
【氏名】長塚 純一
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160AA08
5B160AB26
5B160NA01
(57)【要約】
【課題】リフレッシュ処理を短時間で行いつつバッドブロックの発生対策を行うことが可能なメモリ制御装置を提供する。
【解決手段】複数のメモリブロックを有する不揮発性の第1メモリと、不揮発性メモリに対するデータの書き込み、読み出し及び消去を実行するメモリコントローラと、複数のメモリブロックの物理アドレスと論理アドレスとの対応関係を示す管理情報を記憶する第2メモリと、管理情報に基づいて、複数のメモリブロックへのアクセスをメモリコントローラに実行させるアクセス制御部と、を含む。メモリコントローラは、第1メモリの1のメモリブロックに記憶されているデータを他のメモリブロックにコピーするリフレッシュ処理を実行し、リフレッシュ処理の実行後、複数のメモリブロックへのアクセスを受け付け可能に制御するアクセス可能期間を経た所定のタイミングで、他のメモリブロックに対しデータのベリファイ処理を行う。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数のメモリブロックを有する不揮発性の第1メモリと、
前記不揮発性メモリに対するデータの書き込み、読み出し及び消去を実行するメモリコントローラと、
前記複数のメモリブロックの物理アドレスと論理アドレスとの対応関係を示す管理情報を記憶する第2メモリと、
前記管理情報に基づいて、前記複数のメモリブロックへのアクセスを前記メモリコントローラに実行させるアクセス制御部と、
を含み、
前記メモリコントローラは、
前記第1メモリの1のメモリブロックに記憶されているデータを他のメモリブロックにコピーするリフレッシュ処理を実行し、
前記リフレッシュ処理の実行後、前記複数のメモリブロックへのアクセスを受け付け可能に制御するアクセス可能期間を経た所定のタイミングで、前記他のメモリブロックに対しデータのベリファイ処理を行うことを特徴とするメモリ制御装置。
【請求項2】
前記第1メモリは、前記複数のメモリブロックの物理アドレスと論理アドレスとの対応関係を示す論理物理変換情報を記憶し、
前記メモリコントローラは、前記リフレッシュ処理の実行後に、前記第1メモリの前記リフレッシュ処理後の状態を反映させて前記論理物理変換情報を更新し、
前記アクセス制御部は、前記ベリファイ処理においてデータエラーが検出されなかった場合に、前記第1メモリの更新後の前記論理物理変換情報に基づいて、前記第2メモリの前記管理情報を更新することを特徴とする請求項1に記載のメモリ制御装置。
【請求項3】
前記第1メモリは、前記リフレッシュ処理の実行前の状態における前記複数のメモリブロックの物理アドレスと論理アドレスとの対応関係を示す旧論理物理変換情報を前記論理物理変換情報とは別に記憶し、
前記アクセス制御部は、前記リフレッシュ処理のコピー先ブロックであって且つ前記ベリファイ処理が未実行のメモリブロックが存在する場合には、前記第1メモリの前記旧論理物理変換情報に基づいて前記第2メモリの前記管理情報を更新することを特徴とする請求項2に記載のメモリ制御装置。
【請求項4】
前記メモリコントローラは、前記アクセス可能期間において前記第1メモリの前記複数のメモリブロックの各々についてパトロール処理を行い、
前記パトロール処理に付随したタイミングで、前記他のメモリブロックに対する前記ベリファイ処理を実行することを特徴とする請求項1乃至3のいずれか1に記載のメモリ制御装置。
【請求項5】
前記メモリコントローラは、前記ベリファイ処理においてデータエラーが検出された場合には、前記他のメモリブロックについてさらにリフレッシュ処理を実行することを特徴とする請求項1乃至4のいずれか1に記載のメモリ制御装置。
【請求項6】
複数のメモリブロックを有する不揮発性の第1メモリと、前記第1メモリに対するデータの書き込み、読み出し及び消去を実行するメモリコントローラと、前記複数のメモリブロックの物理アドレスと論理アドレスとの対応関係を示す管理情報を記憶する第2メモリと、前記管理情報に基づいて、前記複数のメモリブロックへのアクセスを前記メモリコントローラに実行させるアクセス制御部と、を有するメモリ制御装置が実行するメモリ制御方法であって、
前記第1メモリの1のメモリブロックに記憶されているデータを他のメモリブロックにコピーするリフレッシュ処理を実行するステップと、
前記リフレッシュ処理の結果に基づいて、前記第1メモリの論理物理変換情報を更新するステップと、
前記リフレッシュ処理の実行後、前記複数のメモリブロックへのアクセスを受け付け可能に制御するステップと、
前記複数のメモリブロックへのアクセスを受け付けるアクセス可能期間を経た所定のタイミングで、前記他のメモリブロックに対しデータのベリファイ処理を実行するステップと、
前記ベリファイ処理の結果に応じて、前記第1メモリの前記論理物理変換情報に基づいて前記第2メモリの前記管理情報を更新するステップと、
を含むことを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリ制御装置及びメモリ制御方法に関する。
【背景技術】
【0002】
近年、SSD(Solid State Drive)等のストレージデバイスにおいて、NAND型FLASH(登録商標)メモリが広く用いられている。NAND型FLASHメモリでは、ゲート絶縁膜の物理的な劣化によるデータ保持の不良やリードディスターブ等により、正しいデータ値が読み取れなくなる現象(所謂、データの劣化)が生じる場合がある。このようなデータの劣化に対処するため、NAND型FLASHメモリでは、メモリ領域のリフレッシュ処理が行われている(例えば、特許文献1)。
【0003】
NAND型FLASHメモリ等の不揮発性メモリでは、メモリ制御装置が論理アドレスと物理アドレスとを関連付けてメモリ領域を管理している。このようなメモリ制御装置で一般的に行われるリフレッシュ処理では、電源遮断にも対応できるように、現在のメモリブロックから新規のメモリブロックへのデータのコピーが完了した後、更新した論理アドレス及び物理アドレスの管理情報を不揮発性メモリに保存し、その後、ワークメモリとして使用する揮発性メモリの管理情報を更新する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
近年のNAND型FLASHメモリでは、メモリセルの多値化による大容量化で、ブロック容量の増加や、プログラム時のステータスで検出できないバッドブロックの発生が問題となっている。バッドブロックの対策として、一般的にはリフレッシュ処理におけるデータコピー完了後に、コピー先のデータをベリファイすることが行われている。
【0006】
しかしながら、リフレッシュ処理の際に併せてベリファイを行うことにより、リフレッシュ処理にかかる時間が増大してしまうという問題があった。
【0007】
本発明は、上記問題点に鑑みてなされたものであり、リフレッシュ処理を短時間で行いつつバッドブロックの発生対策を行うことが可能なメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係るメモリ制御装置は、複数のメモリブロックを有する不揮発性の第1メモリと、前記不揮発性メモリに対するデータの書き込み、読み出し及び消去を実行するメモリコントローラと、前記複数のメモリブロックの物理アドレスと論理アドレスとの対応関係を示す管理情報を記憶する第2メモリと、前記管理情報に基づいて、前記複数のメモリブロックへのアクセスを前記メモリコントローラに実行させるアクセス制御部と、を含み、前記メモリコントローラは、前記第1メモリの1のメモリブロックに記憶されているデータを他のメモリブロックにコピーするリフレッシュ処理を実行し、前記リフレッシュ処理の実行後、前記複数のメモリブロックへのアクセスを受け付け可能に制御するアクセス可能期間を経た所定のタイミングで、前記他のメモリブロックに対しデータのベリファイ処理を行うことを特徴とする。
【0009】
本発明に係るメモリ制御方法は、複数のメモリブロックを有する不揮発性の第1メモリと、前記第1メモリに対するデータの書き込み、読み出し及び消去を実行するメモリコントローラと、前記複数のメモリブロックの物理アドレスと論理アドレスとの対応関係を示す管理情報を記憶する第2メモリと、前記管理情報に基づいて、前記複数のメモリブロックへのアクセスを前記メモリコントローラに実行させるアクセス制御部と、を有するメモリ制御装置が実行するメモリ制御方法であって、前記第1メモリの1のメモリブロックに記憶されているデータを他のメモリブロックにコピーするリフレッシュ処理を実行するステップと、前記リフレッシュ処理の結果に基づいて、前記第1メモリの論理物理変換情報を更新するステップと、前記リフレッシュ処理の実行後、前記複数のメモリブロックへのアクセスを受け付け可能に制御するステップと、前記複数のメモリブロックへのアクセスを受け付けるアクセス可能期間を経た所定のタイミングで、前記他のメモリブロックに対しデータのベリファイ処理を実行するステップと、前記ベリファイ処理の結果に応じて、前記第1メモリの前記論理物理変換情報に基づいて前記第2メモリの前記管理情報を更新するステップと、を含むことを特徴とする。
【発明の効果】
【0010】
本発明の半導体装置によれば、リフレッシュ処理を短時間で行いつつバッドブロックの発生対策を行うことが可能なメモリ制御装置を提供することが可能となる。
【図面の簡単な説明】
【0011】
【
図1】本発明に係るメモリ制御装置の構成を示すブロック図である。
【
図2】メモリ制御装置の通常時の動作を示すフローチャートである。
【
図3】メモリ制御装置の電源遮断後の起動時の動作を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下に本発明の好適な実施例を詳細に説明する。なお、以下の実施例における説明及び添付図面においては、実質的に同一または等価な部分には同一の参照符号を付している。
【0013】
図1は、本実施例のメモリ制御装置100の構成を示すブロック図である。メモリ制御装置100は、ホスト装置200と接続され、ホスト装置200からの書き込み命令及び読み出し命令に応じてメモリへのデータの書き込み及びメモリからのデータの読み出しを行う。メモリ制御装置100は、例えばSSD(Solid State Drive)から構成されている。
【0014】
メモリ制御装置100は、CPU11、NAND型FLASHメモリコントローラ12、NAND型FLASHメモリ13、RAM14及び外部I/F制御部15を含む。
【0015】
CPU11は、メモリ制御装置100の各部の処理動作を制御する処理制御部である。特に、本実施例では、CPU11は、NAND型FLASHメモリコントローラ12にNAND型FLASHメモリ13のメモリブロックへのアクセスを実行させるアクセス制御部としての機能を有する。CPU11は、例えば外部I/F制御部15を介してホスト装置200から供給された読み出し命令及び読み出し用の論理アドレスに基づいて、RAM14に記憶されている管理情報41を参照して物理アドレスを特定し、当該物理アドレスに対応するメモリブロックからのデータの読み出しをNAND型FLASHメモリコントローラ12に実行させる。CPU11は、内部バスラインBLを介してNAND型FLASHメモリコントローラ12、NAND型FLASHメモリ13、RAM14及び外部I/F制御部15に接続されている。
【0016】
NAND型FLASHメモリコントローラ12は、NAND型FLASHメモリ13に対するデータの書き込み、読み出し及び消去を実行するメモリ制御部である。NAND型FLASHメモリコントローラ12は、CPU11の制御に応じて、NAND型フラッシュメモリ13からデータをページ単位で読み出し、読み出したデータを内部バスラインBLを介して外部I/F制御部15に供給する。
【0017】
NAND型FLASHメモリコントローラ12は、書き込みデータ及び読み出しデータを一時格納するデータバッファ21を含む。また、NAND型FLASHメモリコントローラ12は、ECC(Error Check and Correct)回路22を有し、NAND型FLASHメモリ13から読み出したデータに対する誤り検出訂正処理を実行する。
【0018】
また、NAND型FLASHメモリコントローラ12は、データ読み出し時にECC回路22が実行する誤り検出訂正処理によって検出されたエラービットの数が所定値を超えた場合に、対象のメモリブロックのリフレッシュ処理を実行する。リフレッシュ処理では、データが記憶されているメモリブロック(以下、コピー元ブロックと称する)から新たなメモリブロック(以下、コピー先ブロックと称する)へのデータのコピーを行う。データのコピーは、コピー元ブロックからリードしたデータをデータバッファ21に格納し、そのデータをコピー先ブロックに書き込む処理をブロック内の全ページについて実行することにより行う。
【0019】
また、NAND型FLASHメモリコントローラ12は、NAND型FLASHメモリ13のパトロール処理を行う。パトロール処理は、リードディスターブ対策のためにNAND型FLASHメモリ13の各メモリブロックについてのリードテストを所定のタイミングで順次行う処理である。
【0020】
また、NAND型FLASHメモリコントローラ12は、パトロール処理に付随して、リフレッシュ処理が行われたメモリブロックについてデータのベリファイ処理を行う。本実施例では、NAND型FLASHメモリコントローラ12は、リフレッシュ処理のコピー先ブロックについて、リフレッシュ処理で書き込んだデータとパトロール処理で読み出されたデータとを比較することにより、バッドブロック対策としてのベリファイ処理を行う。
【0021】
なお、本実施例では、NAND型FLASHメモリコントローラ12は、NAND型FLASHメモリ13へのアクセスが可能なアクセス可能期間において、ホスト装置200からのアクセスがない状態が一定期間継続したとき等の所定のタイミングでNAND型FLASHメモリ13のパトロール処理を行う。以下の説明では、このパトロール処理を通常パトロール処理と称する。
【0022】
また、NAND型FLASHメモリコントローラ12は、リフレッシュ処理のコピー先ブロックについてデータのベリファイ処理が完了していない状態でメモリ制御装置100の電源の遮断が生じた場合、メモリ制御装置100の起動直後に当該リフレッシュ処理のコピー先ブロックを優先してパトロール処理を行う。以下の説明では、このパトロール処理を起動時優先パトロールと称する。
【0023】
なお、NAND型FLASHメモリコントローラ12は、CPU11の制御に応じて、上記の各処理を実行する。
【0024】
NAND型FLASHメモリ13は、例えばEEPROM(Electrically Erasable Programmable Read-Only Memory)等からなる不揮発性の半導体メモリである。NANDフラッシュメモリ13は、記憶領域として複数個のメモリブロックを有する。また、複数のメモリブロックの各々は複数のページから構成され、複数のページの各々は複数のメモリセルから構成されている。
【0025】
NAND型FLASHメモリ13には、データの書き込みが行われる通常の記憶領域の他に、論理物理変換情報31及び旧論理物理変換情報32を格納する情報記憶領域が設けられている。
【0026】
論理物理変換情報31は、NAND型FLASHメモリコントローラ12によって指定される論理アドレスと、NAND型FLASHメモリ13における物理アドレスとの対応関係を示す管理情報である。論理物理変換情報31は、通常のデータ書き込みの他、メモリブロックのリフレッシュ処理が行われる際に更新される。
【0027】
旧論理物理変換情報32は、リフレッシュ処理による更新が行われる前の論理アドレスと物理アドレスとの対応関係を示す管理情報である。本実施例のメモリ制御装置100では、例えばリフレッシュ処理によって新規にデータが保存されたメモリブロック(以下、新規ブロックと称する)についてのパトロール及びベリファイの処理が完了する前に電源の遮断が生じた場合等に、起動時の初期化処理として旧論理物理変換情報32が読み出され、RAM14の管理情報41に展開される。
【0028】
RAM14は、NAND型FLASHメモリ13とは別に設けられた揮発性メモリである。RAM14には、NAND型FLASHメモリ13の論理アドレスと物理アドレスとの対応関係を示す管理情報41が格納される。管理情報41は、ホスト装置200からの読み出し命令や書き込み命令に応じて、CPU11がNAND型FLASHメモリコントローラ12をNAND型FLASHメモリ13にアクセスさせる際に参照される。管理情報41は、メモリ制御装置100の電源投入に応じてNAND型FLASHメモリ13から読み出された論理物理変換情報31によって更新(上書き)される。
【0029】
なお、RAM14の管理情報41は、リフレッシュ処理の対象ブロックについては、データのベリファイ処理が行われた後に更新される。すなわち、リフレッシュ処理のコピー先ブロックについて、パトロール処理に付随して行われるベリファイ処理が実行された場合に、CPU11は、NAND型FLASHメモリ13の論理物理変換情報31(すなわち、リフレッシュ処理後に更新された論理物理変換情報)をRAM14に管理情報41として展開する。一方、リフレッシュ処理のコピー先ブロックについてデータのベリファイ処理が完了していない場合、CPU11は、NAND型FLASHメモリ13の旧論理物理変換情報32をRAM14に管理情報41として展開する。
【0030】
外部I/F制御部15は、ホスト装置200に接続され、ホスト装置200との間で各種信号やデータの授受を行うインタフェース部である。例えば、外部I/F制御部15は、ホスト装置200から読み出し指令や書き込み指令等のコマンドを受け付ける。
【0031】
ホスト装置200は、メモリ制御装置100の外部に設けられた外部装置であり、パーソナルコンピュータ等の情報処理装置から構成されている。ホスト装置200は、データの読み出し指令や書き込み指令等のコマンドをメモリ制御装置100に供給する。
【0032】
次に、本実施例のメモリ制御装置100の動作について説明する。以下の説明では、メモリブロックのリフレッシュ処理、通常パトロール処理及びベリファイ処理を含む一連の流れを実行する動作を通常時動作として説明する。また、リフレッシュ処理の後、通常パトロール処理及びベリファイ処理が完了するまでの間にメモリ制御装置100の電源の遮断が生じた場合のその後の起動時の動作を起動時動作として説明する。
【0033】
図2は、本実施例のメモリ制御装置100の通常時動作の処理ルーチンを示すフローチャートである。
【0034】
NAND型FLASHメモリコントローラ12は、NAND型FLASHメモリ13からの通常のデータ読み出し動作において実行される誤り検出訂正処理において、読み出し対象のメモリブロックについて検出されたエラービットの数が所定値を超えたか否かを判定する(STEP101)。
【0035】
エラービットの数が所定数を超えていないと判定すると(STEP101:NO)、そのまま処理を終了する。一方、エラービットの数が所定値を超えたと判定すると(STEP101:YES)、NAND型FLASHメモリコントローラ12は、対象メモリブロックのリフレッシュ処理を実行する。まず、NAND型FLASHメモリコントローラ12は、対象ブロックのデータのコピー先ブロックへのコピーを実行する(STEP102)。
【0036】
NAND型FLASHメモリコントローラ12は、コピー実行前の状態を反映した論理物理変換情報(すなわち、更新前の論理物理変換情報)を旧論理物理変換情報32としてNAND型FLASHメモリ13に保存する(STEP103)。NAND型FLASHメモリコントローラ12は、NAND型FLASHメモリ13の論理物理変換情報31を更新し、STEP102のデータコピーを論理物理変換情報31に反映させる(STEP104)。
【0037】
CPU11は、NAND型FLASHメモリ13へのアクセスを受け付け可能に制御する(STEP105)。本実施例では、ホスト装置200からの書き込み命令や読み出し命令に応じて、NAND型FLASHメモリコントローラ12がNAND型FLASHメモリ13にアクセスすることが可能な状態に制御される。
【0038】
なお、この時点では、NAND型FLASHメモリ13の論理物理変換情報31はリフレッシュ処理に応じて更新されているが、メモリRAM14の管理情報41はまだ更新されていない。このため、NAND型FLASHメモリ13へのアクセスは、リフレッシュ処理を反映していない管理情報(すなわち、旧論理物理変換情報32に対応する管理情報)に基づいて行われる。
【0039】
NAND型FLASHメモリコントローラ12は、NAND型FLASHメモリ13の通常パトロール処理を行う。例えば、NAND型FLASHメモリコントローラ12は、STEP104の実行後、NAND型FLASHメモリ13へのアクセスが可能に制御された期間(すなわち、アクセス可能期間)において、ホスト装置200からのアクセスがない状態が所定期間に亘って継続したタイミングで、通常パトロール処理を実行する(STEP106)。
【0040】
NAND型FLASHメモリコントローラ12は、直近でリフレッシュ処理が行われたメモリブロック、すなわちSTEP102のデータコピーのコピー先ブロックであり且つまだデータのベリファイ処理が行われていないメモリブロックに対し、STEP105の通常パトロール処理におけるデータ読み出しに付随してデータのベリファイ処理を実行する(STEP107)。
【0041】
NAND型FLASHメモリコントローラ12は、STEP106のベリファイ処理でデータエラーが検出されたか否かを判定する(STEP108)。
【0042】
データエラーが検出されたと判定すると(STEP108:YES)、STEP102に戻り、NAND型FLASHメモリコントローラ12は、当該メモリブロックについてのリフレッシュ処理(すなわち、データのコピー及びNAND型FLASHメモリ13の論理物理変換情報31の更新)を再び実行する。
【0043】
一方、データエラーが検出されなかったと判定すると(STEP108:NO)、CPU11は、NAND型FLASHメモリ13の論理物理変換情報31に基づいて、RAM14の管理情報41を更新する(STEP109)。
【0044】
以上のステップにより、NAND型FLASHメモリ13のリフレッシュ処理、パトロール処理、ベリファイ処理及びRAM14の管理情報41の更新処理を含む一連の動作が行われる。
【0045】
本実施例のメモリ制御装置100では、NAND型FLASHメモリ13のリフレッシュ処理の動作として、現ブロックから新規ブロックへのデータのコピー及びNAND型FLASHメモリ13の論理物理変換情報31の更新という2つの処理を行う。そして、コピー先ブロックについてのデータのベリファイはリフレッシュ処理の段階では行わず、NAND型FLASHメモリ13へのアクセス可能期間を経て実行される通常のパトロール処理に付随して行う。このため、リフレッシュ処理の際にベリファイを行う場合と比べて、リフレッシュ処理にかかる時間を短縮することができる。
【0046】
次に、メモリ制御装置100の電源遮断後の起動時動作について説明する。
図3は、本実施例のメモリ制御装置100の起動時動作の処理ルーチンを示すフローチャートである。
【0047】
CPU11は、メモリ制御装置100の初期化処理として、NAND型FLASHメモリコントローラ12を介してNAND型FLASHメモリ13の論理物理変換情報31を読み出し、RAM14の管理情報41に展開する(STEP201)。
【0048】
CPU11は、直近でリフレッシュ処理が行われ且つデータのベリファイ処理が行われていないメモリブロックが存在するか否かを判定する(STEP202)。そのようなメモリブロックが存在しないと判定すると(STEP202:NO)、STEP208の通常パトロール処理に進む。
【0049】
一方、そのようなメモリブロックが存在すると判定すると(STEP202:YES)、CPU11は、NAND型FLASHメモリコントローラ12を介してNAND型FLASHメモリ13の旧論理物理変換情報32を読み出し、RAM14の管理情報41を更新する(STEP203)
NAND型FLASHメモリコントローラ12は、直近のリフレッシュ処理のコピー先ブロックであって且つまだデータのベリファイ処理が行われていないメモリブロックに対し、起動時優先パトロールを実行する(STEP204)。
【0050】
また、NAND型FLASHメモリコントローラ12は、当該メモリブロックに対し、起動時優先パトロール処理のデータ読み出しに付随してベリファイ処理を実行する(STEP205)。
【0051】
NAND型FLASHメモリコントローラ12は、STEP205のベリファイ処理でデータエラーが検出されたか否かを判定する(STEP206)。
【0052】
データエラーが検出されたと判定すると(STEP206:YES)、NAND型FLASHメモリコントローラ12は、当該メモリブロックについて再度リフレッシュ処理を実行する(STEP207)。リフレッシュ処理では、データのコピー及びNAND型FLASHメモリ13の論理物理変換情報31の更新が行われる。
【0053】
一方、データエラーが検出されなかったと判定すると(STEP206:NO)、リフレッシュ処理を行うことなくSTEP208の通常パトロール処理に進む。
【0054】
NAND型FLASHメモリコントローラ12は、NAND型FLASHメモリ13の通常パトロール処理を実行する(STEP208)。
【0055】
以上のステップにより、NAND型FLASHメモリ13の起動時優先パトロール、ベリファイ、再度のリフレッシュ処理等を含む一連の動作が行われる。
【0056】
本実施例のメモリ制御装置100では、NAND型FLASHメモリ13のリフレッシュ処理を実行して論理物理変換情報31を更新するとともに、リフレッシュ前の状態を示す旧論理物理変換情報32をNAND型FLASHメモリ13内に保存している。そして、コピー先ブロックについてのデータのベリファイ処理が完了する前にメモリ制御装置100の電源の遮断が生じた場合には、起動時に旧論理物理変換情報32を読み出してRAM14の管理情報41に展開することにより、メモリ制御装置100を電源遮断前の状態に戻すことができる。
【0057】
すなわち、本実施例のメモリ制御装置100では、現ブロックから新規ブロックへのデータのコピーと、当該新規ブロックについてのデータのベリファイ及びRAM14の管理情報41の更新との間に時間差(アクセス受付期間)があるため、その間にメモリ制御装置100の電源の遮断が生じる可能性がある。しかし、NAND型FLASHメモリ13に旧論理物理変換情報32が保存されているため、これを用いてRAM14の管理情報41を更新することにより、電源の遮断が生じた場合にもメモリ制御装置100の起動後におけるデータの書き込みや読み出し等を円滑に行うことが可能となる。
【0058】
以上のように、本実施例のメモリ制御装置100によれば、リフレッシュ処理にかかる時間を短縮しつつ、通常のパトロール処理に付随してリフレッシュ処理の対象ブロックについてデータのベリファイを行うことにより、バッドブロックの発生対策を行うことができる。
【0059】
なお、本発明は上記実施例で示したものに限られない。例えば、上記実施例では、RAM14及びNAND型FLASHメモリコントローラ12が、CPU11を含めたバスラインBL上で接続されている構成について説明した。しかし、RAM14及びNAND型FLASHメモリコントローラ12の関係はこれに限定されない。例えばRAM14がNAND型FLASHメモリコントローラ12に直結していてもよい。また、RAM14をNAND型FLASHメモリコントローラの内部に設けてもよい。
【0060】
また、上記実施例では、外部I/F制御部15及びNAND型FLASHメモリコントローラ12が、CPU11を含めたバスラインBL上で接続されている構成について説明した。しかし、外部I/F制御部15及びNAND型FLASHメモリコントローラ12の関係はこれに限定されない。例えば外部I/F制御部15がNAND型FLASHメモリコントローラ12に直結していてもよい。
【0061】
また、上記実施例では、RAM14がメモリ制御装置100の内部に設けられている場合を例として説明したが、これとは異なり、RAM14をメモリ制御装置100の外部に設けることも可能である。また、RAM14をメモリ制御装置100の内部と外部とで共有する構成とすることも可能である。
【0062】
また、上記実施例では、データバッファ21がNAND型FLASHメモリコントローラ12の内部に設けられている場合を例として説明した。しかし、これとは異なり、データバッファ21の機能をRAM14に共有させることも可能である。
【0063】
また、上記実施例では、NAND型FLASHメモリ13がメモリ制御装置100の内部に設けられている場合を例として説明したが、これとは異なり、メモリ制御装置100の外部に設けられていてもよい。また、メモリ制御装置100の内部と外部とでNAND型FLASHメモリ13を共有する構成であってもよい。
【0064】
また、上記実施例では、論理物理変換情報31及び旧論理物理変換情報32がNAND型FLASHメモリ13に保存されている場合を例として説明したが、これらの情報を他の不揮発性メモリに保存する構成とすることも可能である。
【0065】
また、上記実施例では、リフレッシュ処理のコピー先ブロックに対するデータのベリファイ処理をパトロール処理に付随して実行する場合を例として説明した。しかし、これに限られず、リフレッシュ処理の後、NAND型FLASHメモリ13へのアクセスが可能な期間を経て、ベリファイ処理が実行されればよい。すなわち、リフレッシュ処理に付随してベリファイ処理を実行するのではなく、アクセス可能期間を経てベリファイ処理を実行することにより、リフレッシュ処理に要する時間を短縮することが可能に構成されていればよい。
【符号の説明】
【0066】
100 メモリ制御装置
11 CPU
12 NAND型FLASHメモリコントローラ
13 NAND型FLASHメモリ
14 RAM
15 外部I/F制御部
21 データバッファ
22 ECC回路
31 論理物理変換情報
32 旧論理物理変換情報
41 管理情報
100 メモリ制御装置
200 ホスト装置