JP4245594B2 - メモリコントローラ及びフラッシュメモリシステム - Google Patents

メモリコントローラ及びフラッシュメモリシステム Download PDF

Info

Publication number
JP4245594B2
JP4245594B2 JP2005281492A JP2005281492A JP4245594B2 JP 4245594 B2 JP4245594 B2 JP 4245594B2 JP 2005281492 A JP2005281492 A JP 2005281492A JP 2005281492 A JP2005281492 A JP 2005281492A JP 4245594 B2 JP4245594 B2 JP 4245594B2
Authority
JP
Japan
Prior art keywords
block
setting information
flash memory
area
cis
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
JP2005281492A
Other languages
English (en)
Other versions
JP2007094638A (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.)
TDK Corp
Original Assignee
TDK 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 TDK Corp filed Critical TDK Corp
Priority to JP2005281492A priority Critical patent/JP4245594B2/ja
Publication of JP2007094638A publication Critical patent/JP2007094638A/ja
Application granted granted Critical
Publication of JP4245594B2 publication Critical patent/JP4245594B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、メモリコントローラ及び当該メモリコントローラを備えるフラッシュメモリシステムに関する。
近年、不揮発性の記録媒体であるフラッシュメモリの開発が盛んに行われ、デジタルカメラ等の情報機器(ホストシステム)の記憶媒体として普及している。
フラッシュメモリには通常、メモリコントローラ等がこのフラッシュメモリへアクセスする態様を設定するなどの目的で、CIS(Card Information Structure)等の設定情報が予め書き込まれる(例えば特許文献1を参照)。
特開2005−215959号公報
上述の設定情報は一般的には不変情報であり、通常は書き替えられることがない。一方、フラッシュメモリはメモリセルへの電荷の注入及びメモリセルからの電荷の排出によって論理値を記憶するが、時間経過に伴って電荷が自然に放出される等の原因で、論理値を正しく読み出せなくなる、という現象を起こすことがある。
従って、フラッシュメモリの設定情報が正しく読み出せなくなると、以後このフラッシュメモリに正しくアクセスできなくなる、という問題が生じる。
本発明は上記の実情に鑑みてなされたもので、フラッシュメモリの設定情報が正しく読み出せなくなる事態を防止し、設定情報を確実に利用可能な状態に置くことが可能なメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。
上記目的を達成するため、本発明の第1の観点に係るメモリコントローラは、
複数のページを含んだブロックを複数備えるフラッシュメモリを記憶媒体として利用するホストシステムからの命令に応答して前記フラッシュメモリへのアクセスを制御するメモリコントローラであって、
各前記ブロックのうちの複数のブロックは、前記フラッシュメモリの設定情報を優先的に記憶するための設定情報領域を構成していて、当該設定情報領域内の複数のブロックにそれぞれ設定情報を記憶しており、
前記メモリコントローラは、
前記設定情報を記憶するブロックに異常があるか否かを判別する判別手段と、
前記設定情報を記憶するブロックに異常があると判別したことに応答して、前記設定情報領域内にある正常な空きブロックを特定する空きブロック特定手段と、
特定された当該空きブロックに前記設定情報を書き込むことにより、前記フラッシュメモリが記憶する設定情報の数を所定数に保つ設定情報書込手段と、
前記設定情報領域内に正常な空きブロックが存在しなくなった場合、当該設定情報領域外にある正常な空きブロックを、新たに当該設定情報領域に編入する領域管理手段と、を備える、
ことを特徴とする。
前記設定情報は、例えば、CIS(Card Information Structure)より構成されている。
前記ブロックにはブロックアドレスが割り当てられている場合、前記空きブロック特定手段は、前記設定情報領域内にある正常な空きブロックのうち最も上位のブロックアドレスを割り当てられているブロックを特定するものであってもよい。
あるいは、前記ブロックにはブロックアドレスが割り当てられている場合、前記空きブロック特定手段は、前記設定情報領域内にある正常な空きブロックのうち最も下位のブロックアドレスを割り当てられているブロックを特定するものであってもよい。
前記フラッシュメモリの記憶領域は複数のゾーンより構成されていてもよく、この場合、2個以上の当該ゾーンは、前記設定情報領域を有するものであってもよい。
前記設定情報書込手段は、前記複数のゾーン内の各前記設定情報領域のうち、互いに異なるゾーンに属する2個以上の設定情報領域が前記設定情報を記憶するように、前記設定情報の書き込みを行うものであってもよい。
また、本発明の第2の観点に係るフラッシュメモリシステムは、上記のいずれかの特徴を有するメモリコントローラと、フラッシュメモリと、から構成されることを特徴とする。
本発明によれば、フラッシュメモリの設定情報が正しく読み出せなくなる事態を防止し、設定情報を確実に利用可能な状態に置くことが可能なメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムが実現される。
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示すように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するコントローラ3で構成されている。
なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
フラッシュメモリ2は、不揮発性メモリであり、レジスタと、メモリセルアレイと、から構成される。フラッシュメモリ2は、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。
メモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。ここで、上側のゲート、下側のゲートは、それぞれ、コントロールゲート、フローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。
このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子が注入される。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子が排出される。
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。
このようなフラッシュメモリ2のアドレス空間を図2に示す。フラッシュメモリ2のアドレス空間は、“ページ”と“ブロック”に基づいて分割されている。
ページは、フラッシュメモリ2にて行われるデータ読み出し動作及びデータ書き込み動作における処理単位である。ブロックは、フラッシュメモリ2にて行われるデータ消去動作における処理単位である。
図2に示したフラッシュメモリでは、1つのページは、1セクタ(512バイト)のユーザ領域25と、16バイトの冗長領域26とを含んでいる。又、一つのページが4セクタのユーザー領域と64バイトの冗長領域で構成されているフラッシュメモリもある。ユーザ領域25は、ホストシステム4から供給されるユーザデータを格納する。
冗長領域26は、エラーコレクションコード、対応論理ブロックアドレス、ブロックステータス(フラグ)等の付加データを記録するための領域である。
エラーコレクションコードは、ユーザ領域25に記憶されているデータに含まれる誤りを検出し、訂正するためのデータである。
対応論理ブロックアドレスは、1つのブロックに含まれている少なくとも1つのユーザ領域25に有効なデータが格納されているとき、そのブロックが対応付けられている論理ブロックのアドレスを示す。
論理ブロックアドレスは、ホストシステム4から与えられるホストアドレスに基づいて決定されるブロックのアドレスである。一方、フラッシュメモリ2内における実際のブロックのアドレスは、物理ブロックアドレスと称される。
1つのブロックに含まれているいずれのユーザ領域25にも有効なデータが格納されていないときには、そのブロックに含まれている冗長領域26に、対応論理ブロックアドレスは格納されていない。
従って、冗長領域26に対応論理ブロックアドレスが格納されているか否かを判定することにより、その冗長領域26が含まれているブロックのデータが消去されているか否かを判定することができる。冗長領域26に対応論理ブロックアドレスが格納されていないとき、そのブロックは、データが消去された状態となっている。
フラッシュメモリ2が備えるブロックのうちの所定の複数のブロックは、CIS(Card Information Structure)を記憶するためのCIS領域を構成している。CISは、フラッシュメモリ2やその製造者を識別し、あるいはフラッシュメモリ2の動作条件を規定するための情報を含むテーブルである。そして、このCIS領域内の正常なブロックのうち、先頭の2以上の所定数のブロックには、それぞれCISがあらかじめ書き込まれ、あるいはコントローラ3により書き込まれる。
1つのブロックは、複数のページを含んでいる。フラッシュメモリ2では、データの上書きができない。このため、1つのページに格納されたデータのみを書き換えるときであっても、そのページが含まれたブロック内の全ページに格納されたデータを、再度書き込まなければならない。
つまり、通常のデータ書き換えでは、書き換えるページが含まれるブロックの全ページに格納されたデータが、別の消去されているブロックに書き込まれる。この際、データが変更されないページに格納されているデータは、以前に格納されていたデータがそのまま再度書き込まれる。
上記のようにデータを書き換えるにあたっては、書き換えられたデータは、以前に格納されていたブロックとは異なるブロックに書き込まれる。このため、論理ブロックアドレスと物理ブロックアドレスの間の対応関係は、フラッシュメモリ2にてデータが書き換えられる毎に、動的に変化する。
従って、論理ブロックアドレスと物理ブロックアドレスとの対応関係を管理する必要があり、通常、この対応関係は、アドレス変換テーブルによって管理される。このアドレス変換テーブルは、各ページの冗長領域26に記憶されている対応論理ブロックアドレスに基づいて作成される。なお、このような動的なアドレス管理手法は、フラッシュメモリを用いたメモリシステムでは一般的に行われている手法である。
ブロックステータスは、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域26には、不良ブロックであることを示すブロックステータスが書き込まれる。
このようなフラッシュメモリ2は、コントローラ3から、データ、アドレス情報、ステータス情報、内部コマンド等を受信して、データの読み出し処理、書き込み処理、ブロック消去処理、転送処理等の各処理を行う。
ここで、内部コマンドとは、コントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、コントローラ3から与えられる内部コマンドに従って動作する。これに対して、外部コマンドとは、ホストシステム4がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。
コントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、ROM(Read Only Memory)12と、から構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、コントローラ3の全体の動作を制御する。例えば、マイクロプロセッサ6は、各種処理等を定義したコマンドセットをROM12から読み出してフラッシュメモリインターフェースブロック10に供給し、フラッシュメモリインターフェースブロック10に処理を実行させる。
ホストインターフェースブロック7は、図3に示すようにコマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3を備えており、ホストシステム4との間で、データ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。すなわち、フラッシュメモリシステム1とホストシステム4は、外部バス13を介して相互に接続される。かかる状態において、ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。
バッファ9は、フラッシュメモリ2から読み出されたデータ及びフラッシュメモリ2に書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ2から読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでバッファ9に保持され、フラッシュメモリ2に書き込むべきデータは、フラッシュメモリ2が書き込み可能な状態となるまでバッファ9に保持される。
フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。より詳細には、フラッシュメモリインターフェースブロック10は、アドレスレジスタ、コマンドレジスタ、命令処理ブロック等から構成される。
アドレスレジスタは、アクセス先の物理ブロックアドレスを格納するためのレジスタである。物理ブロックアドレスは、フラッシュメモリインターフェースブロック10が実行する一連の制御処理でアクセスするフラッシュメモリ2内のブロックを指定するためのアドレス情報である。
コマンドレジスタは、コマンドセットを構成するシーケンスコマンドを格納するためのレジスタである。このコマンドセットには、コントローラ3内での処理を指示するコマンドや、フラッシュメモリ2への内部コマンド、アドレス情報等の供給を指示するコマンドが含まれている。
命令処理ブロックは、コマンドレジスタに格納されているシーケンスコマンドに従って、フラッシュメモリ2を制御するための内部コマンド、アドレス情報等を出力する。
フラッシュメモリインターフェースブロック10は、命令処理ブロックによって出力される内部コマンド、アドレス情報等をフラッシュメモリ2に供給することにより、フラッシュメモリ2に読み出し、書き込み等を実行させる。
ECCブロック11は、フラッシュメモリ2に書き込むデータに付加されるエラーコレクションコードを生成するとともに、読み出しデータに付加されたエラーコレクションコードに基づいて、読み出したデータに含まれる誤りを検出・訂正する。
ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。具体的には、ROM12は、例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。
このように構成されるフラッシュメモリシステム1において、ホストシステム4がフラッシュメモリ2にデータを書き込む場合、ホストシステム4は、ホストインターフェースブロック7のセクタ数レジスタR2に、書き込むデータのサイズを設定し、LBAレジスタR3に、書き込みを行うデータの論理アドレスを設定し、その後、コマンドレジスタR1に、書き込み処理を指示する外部コマンドを設定する。
コントローラ3は、書き込み処理を指示する外部コマンドが、コマンドレジスタR1に設定されると、書き込み処理を開始する。
書き込み処理が開始されると、書き込むデータがホストシステム4から順次ホストインターフェースブロック7に供給され、このデータは、ホストインターフェースブロック7から、バッファ9によって読み出される。
ホストインターフェースブロック7からバッファ9に読み出されたデータは、フラッシュメモリ2が書き込み可能な状態になるまでバッファ9に保持される。そして、該データ、及び該データのエラーコレクションコードは、フラッシュメモリ2が書き込み可能な状態になると、フラッシュメモリインターフェースブロック10及び内部バス14を介してフラッシュメモリ2の所望のページに書き込まれる。
書き込みの動作を完了すると、コントローラ3は、フラッシュメモリ2に書き込んだデータ及びエラーコレクションコードをフラッシュメモリインターフェースブロック10及び内部バス14を介して読み出す。そしてECCブロック11が、読み出したデータ及びエラーコレクションコードに基づいて、読み出したデータに含まれる誤りを検出する。
そして、誤りが検出された場合(つまり、書き込みに失敗した場合)、誤りが検出されたデータを読み出したページを含むブロックを不良ブロックと判別し、当該ブロックの冗長領域26に、不良ブロックであることを示すブロックステータスを書き込む(すなわち、不良化する)。そして、後続のブロックのうち、不良ブロックではない空きブロックを特定し、特定した空きブロックに、書き込みに失敗したデータを再度書き込み、書き込んだデータの誤りを検出し、誤りが検出されれば当該ブロックを不良化する、という処理を、誤りが検出されなくなるまで繰り返す。
一方、フラッシュメモリシステム1において、ホストシステム4がフラッシュメモリ2からデータを読み出す場合、ホストシステム4は、ホストインターフェースブロック7のセクタ数レジスタR2に、読み出すデータのサイズを設定し、LBAレジスタR3に、読み出すデータの論理アドレスを設定し、その後、コマンドレジスタR1に、読み出し処理を指示する外部コマンドを設定する。
コントローラ3は、読み出し処理を指示する外部コマンドが、コマンドレジスタR1に設定されると、読み出し処理を開始する。
読み出し処理では、マイクロプロセッサ6は、論理アドレスを物理アドレスへと変換する。そして、フラッシュメモリ2の該物理アドレスに格納されたデータは、フラッシュメモリインターフェースブロック10及び内部バス14を介してバッファ9に読み出される。バッファ9に読み出されたデータは、バッファ9から、ホストインターフェースブロック7を介してホストシステム4に供給される。
読み出しの動作を完了すると、ECCブロック11は、読み出したデータに含まれるエラーコレクションコードに基づいて、読み出したデータに含まれる誤りを検出する。そして、誤りが検出された場合(つまり、読み出しに失敗した場合)、誤りが検出されたデータを読み出したページを含むブロックを不良ブロックと判別し、当該ブロックの冗長領域26に、不良ブロックであることを示すブロックステータスを書き込む。
読み出しに失敗したデータがCISである場合、コントローラ3は更に、読み出しに失敗したCISを格納しているブロックを不良化し、CIS領域内で当該ブロックに後続する正常な空きブロックのうちの先頭のブロックを特定して、特定された空きブロックにCISを書き込む。
すなわち、例えば、フラッシュメモリ2はCISを3個記憶するものとし、またCIS領域内の各ブロックのステータスが図4(a)に示す通りであるとした場合、先頭のCISを格納しているブロック(物理ブロックアドレスが“0”のブロック)が不良ブロックであると判別すると、コントローラ3は、図4(b)に示すように、物理ブロックアドレスが“0”のブロックを不良化する。そして、CIS領域内の後続のブロックのステータスを順次チェックし、図4(c)に示すように、不良ブロックではない先頭の空きブロック(図4の場合においては、物理ブロックアドレスが“4”のブロック)を特定して、特定されたこの空きブロックにCISを書き込む。
CISを記憶しているブロックは複数存在するので、読み出しに失敗した場合におけるCISの書き込みは、CISを記憶している他のブロックから読み出して転記することにより行えばよい。このようにCISの書き込みを行うことにより、フラッシュメモリ2には常に2以上の所定数のCISが記憶された状態に保たれる。図4の場合では、CISは常に3個記憶された状態に保たれる。
なお、コントローラ3がCISを書き込む場合、書き込んだCISの誤りの検出や、検出した場合のブロックの不良化、再書き込みの処理は省略してよい。誤りの検出、不良化や再書き込みの処理を省略することにより、これらの処理の実行中における電源異常等に起因するトラブルが避けられる。すなわち、これらの処理の実行中に電源異常が発生すると、CIS領域を構成する全ブロックが、ECCブロック11により誤って異常ブロックと判別されてしまう、というトラブルが発生する可能性があり、これらの処理を省略することにより、そのようなトラブルが回避される。
以上で説明したように、本実施の形態のフラッシュメモリシステム1では、複数のCISがCIS領域内の互いに異なるブロックに格納され、CISを記憶するブロックに異常が検出された場合、CIS領域内の正常な他のブロックに新たにCISが書き込まれる。この結果、フラッシュメモリ2には常に2以上の所定数のCISが記憶された状態に保たれ、CISの消失が防止され、CISが確実に利用可能な状態に置かれる。
なお、上記の実施の形態では、CISは、CIS領域内の正常なブロックのうち、末尾の2以上の所定数のブロックに書き込まれてもよい。この場合コントローラ3は、CISの読み出しに失敗した場合、読み出しに失敗したCISを格納しているブロックを不良化した後、CIS領域内で物理ブロックアドレスが当該ブロックに先行する正常な空きブロックのうちの末尾のブロックにCISを書き込めばよい。
すなわち、例えばフラッシュメモリ2が1024個のブロックを有しており、CIS領域内の各ブロックのステータスが図5(a)に示す通りである場合において、末尾のCISを格納しているブロック(物理ブロックアドレスが“1023”のブロック)が不良ブロックであると判別した場合、コントローラ3は、図5(b)に示すように、物理ブロックアドレスが“15”のブロックを不良化し、次いで、図5(c)に示すように、CISを格納するブロックより物理ブロックアドレスが小さいブロックのうち、不良ブロックではない末尾の空きブロック(図5の場合においては、物理ブロックアドレスが“1019”のブロック)を特定して、この空きブロックにCISを書き込むものとしてもよい。
また、フラッシュメモリ2が記憶するCISの個数は任意であり、また、フラッシュメモリ2の記憶領域が複数の“ゾーン”に分割されている場合は、複数のゾーンがそれぞれCIS領域を有していてもよい。
すなわち、例えば図6に示すように、フラッシュメモリ2の記憶領域がブロック1024個からなるゾーン4個(ゾーン0〜ゾーン3)に分割されている場合は、図6(a)に示すようにそれぞれのゾーンの先頭の複数のブロックがCIS領域を有していてもよく、あるいは図6(b)に示すように、それぞれのゾーンの末尾の複数のブロックがCIS領域を有していてもよい。
そして、複数のゾーンがそれぞれCIS領域を有している場合、コントローラ3は、複数のCISが互いに異なるゾーンに記憶されるようにCISの書き込みを行うこととしてもよい。
また、コントローラ3は、CIS領域内にも、ホストシステム4から供給されるユーザデータを書き込むようにしてもよい。CIS領域内のユーザデータが格納されているブロックにCISを書き込む場合は、そのブロックのユーザデータを他のブロックに移した後に、CISを書き込むようにしてもよい。CIS領域内にユーザデータを書き込むようにした場合には、CISが格納されているブロックに、CISが格納されていることを示す情報を書き込んでもよい(この情報は、例えばブロックステータスとして書き込めばよい)。また、CIS領域内に正常な空きブロックが存在しなくなった場合、コントローラ3は、CIS領域外にある正常な空きブロックを、新たにCIS領域に編入するようにしてもよい。つまり、ユーザデータよりもCISが優先的に格納されるCIS領域を設定しているのは、CISを格納しているブロックを検索する際の便宜のためであり、従って、CIS領域を特に設定せずに、ユーザデータとCISが格納されるブロックを混在させてもよい。
本発明に係るフラッシュメモリシステムを概略的に示すブロック図である。 フラッシュメモリのアドレス空間の構造を概略的に示す図である。 ホストインターフェースブロックの構成を示すブロック図である。 (a)は、CIS記憶領域内の各ブロックのステータスの例を示す図であり、(b)は、(a)に示す場合においてCISを格納するブロックが不良と判別された状態を示す図であり、(c)は、(b)に示す場合において新たにCISが書き込まれた状態を示す図である。 (a)は、CIS記憶領域内の各ブロックのステータスの他の例を示す図であり、(b)は、(a)に示す場合においてCISを格納するブロックが不良と判別された状態を示す図であり、(c)は、(b)に示す場合において新たにCISが書き込まれた状態を示す図である。 (a)及び(b)は、フラッシュメモリが複数のゾーンを有している場合におけるCIS領域の配置の例を示す図である。
符号の説明
1 フラッシュメモリシステム
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
25 ユーザ領域
26 冗長領域

Claims (7)

  1. 複数のページを含んだブロックを複数備えるフラッシュメモリを記憶媒体として利用するホストシステムからの命令に応答して前記フラッシュメモリへのアクセスを制御するメモリコントローラであって、
    各前記ブロックのうちの複数のブロックは、前記フラッシュメモリの設定情報を優先的に記憶するための設定情報領域を構成していて、当該設定情報領域内の複数のブロックにそれぞれ設定情報を記憶しており、
    前記メモリコントローラは、
    前記設定情報を記憶するブロックに異常があるか否かを判別する判別手段と、
    前記設定情報を記憶するブロックに異常があると判別したことに応答して、前記設定情報領域内にある正常な空きブロックを特定する空きブロック特定手段と、
    特定された当該空きブロックに前記設定情報を書き込むことにより、前記フラッシュメモリが記憶する設定情報の数を所定数に保つ設定情報書込手段と、
    前記設定情報領域内に正常な空きブロックが存在しなくなった場合、当該設定情報領域外にある正常な空きブロックを、新たに当該設定情報領域に編入する領域管理手段と、を備える、
    ことを特徴とするメモリコントローラ。
  2. 前記設定情報は、CIS(Card Information Structure)より構成されている、
    ことを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記ブロックにはブロックアドレスが割り当てられており、
    前記空きブロック特定手段は、前記設定情報領域内にある正常な空きブロックのうち最も上位のブロックアドレスを割り当てられているブロックを特定する、
    ことを特徴とする請求項1又は2に記載のメモリコントローラ。
  4. 前記ブロックにはブロックアドレスが割り当てられており、
    前記空きブロック特定手段は、前記設定情報領域内にある正常な空きブロックのうち最も下位のブロックアドレスを割り当てられているブロックを特定する、
    ことを特徴とする請求項1又は2に記載のメモリコントローラ。
  5. 前記フラッシュメモリの記憶領域は複数のゾーンより構成されており、2個以上の当該ゾーンは、前記設定情報領域を有する、
    ことを特徴とする請求項1乃至のいずれか1項に記載のメモリコントローラ。
  6. 前記設定情報書込手段は、前記複数のゾーン内の各前記設定情報領域のうち、互いに異なるゾーンに属する2個以上の設定情報領域が前記設定情報を記憶するように、前記設定情報の書き込みを行う、
    ことを特徴とする請求項に記載のメモリコントローラ。
  7. 請求項1からのいずれか1項に記載のメモリコントローラと、フラッシュメモリと、から構成される、
    ことを特徴とするフラッシュメモリシステム。
JP2005281492A 2005-09-28 2005-09-28 メモリコントローラ及びフラッシュメモリシステム Active JP4245594B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005281492A JP4245594B2 (ja) 2005-09-28 2005-09-28 メモリコントローラ及びフラッシュメモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005281492A JP4245594B2 (ja) 2005-09-28 2005-09-28 メモリコントローラ及びフラッシュメモリシステム

Publications (2)

Publication Number Publication Date
JP2007094638A JP2007094638A (ja) 2007-04-12
JP4245594B2 true JP4245594B2 (ja) 2009-03-25

Family

ID=37980301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005281492A Active JP4245594B2 (ja) 2005-09-28 2005-09-28 メモリコントローラ及びフラッシュメモリシステム

Country Status (1)

Country Link
JP (1) JP4245594B2 (ja)

Also Published As

Publication number Publication date
JP2007094638A (ja) 2007-04-12

Similar Documents

Publication Publication Date Title
US20060013048A1 (en) Memory systems including defective block management and related methods
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20050141300A1 (en) Nonvolatile memory
US7315870B2 (en) Memory controller, flash memory system, and method for recording data on flash memory
US7657697B2 (en) Method of controlling a semiconductor memory device applied to a memory card
JP4177360B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661369B2 (ja) メモリコントローラ
JP4544167B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP4609406B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4245594B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4661748B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4194518B2 (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2005316793A (ja) フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4235624B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4304167B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005293177A (ja) メモリコントローラ及びフラッシュメモリシステム
JP2006178909A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081007

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081125

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090106

R150 Certificate of patent or registration of utility model

Ref document number: 4245594

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120116

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120116

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140116

Year of fee payment: 5