JP2003337757A - メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 - Google Patents

メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Info

Publication number
JP2003337757A
JP2003337757A JP2002143378A JP2002143378A JP2003337757A JP 2003337757 A JP2003337757 A JP 2003337757A JP 2002143378 A JP2002143378 A JP 2002143378A JP 2002143378 A JP2002143378 A JP 2002143378A JP 2003337757 A JP2003337757 A JP 2003337757A
Authority
JP
Japan
Prior art keywords
block
address
flash memory
logical
erased
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
JP2002143378A
Other languages
English (en)
Other versions
JP3999564B2 (ja
Inventor
Naoki Mukoda
直樹 向田
Kenzo Kida
健三 木田
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 JP2002143378A priority Critical patent/JP3999564B2/ja
Publication of JP2003337757A publication Critical patent/JP2003337757A/ja
Application granted granted Critical
Publication of JP3999564B2 publication Critical patent/JP3999564B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 不正マッピングブロックの蓄積によるフラッ
シュメモリの信頼性低下を効果的に防止することが可能
なメモリコントローラを提供する。 【解決手段】 論理ブロックアドレスに基づいて複数の
ブロックを含むフラッシュメモリにアクセスするメモリ
コントローラであって、それぞれのブロックにとって有
効でない論理ブロックアドレスが割り当てられた不正マ
ッピングブロックを検出する検出手段と、検出手段によ
り検出された不正マッピングブロックをブロック消去す
る消去手段とを備えている。本発明によれば、検出手段
によって不正マッピングブロックが検出された場合、消
去手段によってこれが消去済みブロックに変換されるこ
とから、不正マッピングブロックの蓄積が防止される。
これにより、フラッシュメモリの信頼性低下を効果的に
防止することが可能となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリコントロー
ラ及びこれを備えるフラッシュメモリシステムに関し、
特に、フラッシュメモリの信頼性を高めることが可能な
メモリコントローラ及びこのようなメモリコントローラ
を備えるフラッシュメモリシステムに関する。また、本
発明は、フラッシュメモリの制御方法に関し、特に、フ
ラッシュメモリの信頼性を高めることが可能な制御方法
に関する。
【0002】
【従来の技術】近年、メモリカードやシリコンディスク
などに用いられる半導体メモリとして、フラッシュメモ
リ、特にNAND型フラッシュメモリが用いられること
が多い。NAND型フラッシュメモリは、メモリセルを
消去状態(論理値=1)から書込状態(論理値=0)に
変化させる場合は、これをメモリセル単位で行うことが
可能である一方、メモリセルを書込状態(0)から消去
状態(1)に変化させる場合は、これをメモリセル単位
で行うことができず、複数のメモリセルからなるブロッ
ク単位でしかこれを行うことができない。かかる一括消
去動作は、一般的に「ブロック消去」と呼ばれる。
【0003】このように、フラッシュメモリでは、ブロ
ック単位でしかメモリセルを書込状態(0)から消去状
態(1)に変化させることができないことから、既にデ
ータが割り当てられている論理アドレスに対して新しい
データを上書きする場合であっても、旧データが格納さ
れているブロックに対して新しいデータを直接上書きす
ることはできない。このため、既にデータが割り当てら
れている論理アドレスに対して新しいデータを上書きす
るようホストコンピュータから指示されると、旧データ
が格納されているブロック内における上書き対象外のデ
ータを消去済みブロックに転送するとともに、新しいデ
ータを当該消去済みブロックに書き込むという処理が必
要となる。かかる処理は「ブロック間転送」と呼ばれ、
ホストコンピュータからデータの上書きが指示される度
に実行される。ブロック間転送が行われた後、転送元の
ブロックはブロック消去され、これにより転送元のブロ
ックは新たな消去済みブロックとなる。
【0004】したがって、論理アドレスと各ブロックに
一義的に割り当てられた物理アドレスとの関係は固定さ
れず、これらの関係はデータの上書きが指示される度に
動的に変化することになる。以下、論理アドレスと物理
アドレスとの関係について、図面を用いてより詳細に説
明する。
【0005】図19は、論理アドレスと物理アドレスと
の関係を模式的に示す図である。図19に示すように、
全てのブロックにより構成可能な物理アドレス空間(最
大物理アドレス空間)41の大きさ(0〜n−1)は、
論理アドレス空間42の大きさ(0〜m−1)よりも大
きく(n>m)、したがって全ての論理アドレスにデー
タが割り当てられた場合であっても、n−m個のブロッ
クは常に未使用となる。
【0006】図20は、最大物理アドレス空間41を構
成するn個のブロック(#0〜#n−1)の構造を模式
的に示す図である。図20に示すように、各ブロック#
0〜#n−1には実際にユーザデータが格納される領域
51の他に、自らに割り当てられた論理アドレスを記録
する領域52が設けられており、論理アドレスと物理ア
ドレスとの関係は、かかる領域52に格納された値によ
って特定される。領域52には対応する論理アドレスの
値が格納され、データの読み出し及び/又は書き込みを
行う際には、領域52に格納された論理アドレスに基づ
いて、実際にアクセスすべきブロック#0〜#n−1が
特定される。
【0007】また、消去済みブロックについては、これ
に含まれる全てのメモリセルが消去状態(1)となって
いることから、領域52を構成するメモリセルも全て消
去状態(1)となっているはずである。一般に、領域5
2を構成する全てのメモリセルが消去状態(1)である
場合、その値はn−1(物理アドレスの最大値)に一致
しており、したがって、領域52に格納された値がn−
1である場合には、当該ブロックが消去済みブロックで
あると判断することができる。
【0008】そして、データの上書きが指示された場合
には、旧データが格納されているブロック(例えばブロ
ック#i)内における上書き対象外のデータが消去済み
のブロック(例えばブロック#j)に転送されるととも
に、新しいデータがこの消去済みブロック(ブロック#
j)に書き込まれ(ブロック間転送)、さらに、転送元
のブロック(ブロック#i)の領域52に格納されてい
た論理アドレスの値(0〜m−1)が転送先のブロック
(ブロック#j)の領域52に書き込まれる。その後、
転送元のブロック(ブロック#i)はブロック消去さ
れ、これにより転送元のブロック(ブロック#i)は新
たな消去済みブロックとなる。上述の通り、消去済みブ
ロックにおいては、領域52に格納された値はn−1と
なる。
【0009】以上より、各ブロックの領域52に格納さ
れる値は、0〜m−1及びn−1のいずれかとなり、こ
れが0〜m−1であるブロックは有効なデータが格納さ
れているブロックであり、これがn−1であるブロック
は消去済みのブロックである。
【0010】
【発明が解決しようとする課題】しかしながら、各ブロ
ックの領域52に格納される値が何らかの原因で0〜m
−1及びn−1以外の値、すなわちm〜n−2となった
場合、このブロックは有効な論理アドレスに対応せず、
しかも消去済みブロックとしても取り扱われない。この
ようなブロックは「不正マッピングブロック」と呼ば
れ、事実上、永久に使用できないブロックとなってしま
う。上述の通り、全てのブロック#0〜#n−1により
構成可能な最大物理アドレス空間41の大きさ(0〜n
−1)は、論理アドレス空間42の大きさ(0〜m−
1)よりも大きいことから、不正マッピングブロックの
発生が直ちに致命的な不具合となるものではないが、不
正マッピングブロックのように使用できないブロックの
数がn−m個を超えると、当該フラッシュメモリ全体が
使用不可能となってしまうことから、このような不正マ
ッピングブロックの発生はフラッシュメモリの信頼性を
低下させる原因となってしまう。
【0011】不正マッピングブロックが発生する原因と
しては種々の原因が考えられ、その主なものとしては、
ブロック消去中に電源が遮断される等、ブロック消去が
正常に完了しなかった場合や、領域52を構成するメモ
リセルに不良が発生した場合、領域52に対する論理ア
ドレスの書き込み中にエラーが発生した場合等が挙げら
れる。その他、フラッシュメモリを制御するプログラム
(ファームウェア)にバグが含まれていた場合や、フラ
ッシュメモリの物理的な落下等によってビット化けが生
じた場合においても、不正マッピングブロックが発生す
ることがある。
【0012】したがって、本発明の目的は、このような
不正マッピングブロックの蓄積によるフラッシュメモリ
の信頼性低下を効果的に防止することが可能なメモリコ
ントローラ及びこのようなメモリコントローラを備える
フラッシュメモリシステムを提供することである。
【0013】また、本発明の他の目的は、不正マッピン
グブロックの蓄積によるフラッシュメモリの信頼性低下
を効果的に防止することが可能なフラッシュメモリの制
御方法を提供することである。
【0014】
【課題を解決するための手段】本発明によるメモリコン
トローラは、少なくとも論理ブロックアドレスに基づい
て複数のブロックを含むフラッシュメモリにアクセスす
るメモリコントローラであって、それぞれのブロックに
とって有効でない論理ブロックアドレスが割り当てられ
た不正マッピングブロックを検出する検出手段を備える
ことを特徴とする。
【0015】本発明のメモリコントローラによれば、不
正マッピングブロックの存在を検出することができるの
で、その後この不正マッピングブロックをブロック消去
等すれば、不正マッピングブロックの蓄積を防止するこ
とができる。これにより、フラッシュメモリの信頼性低
下を効果的に防止することが可能となる。
【0016】また、前記各ブロックに割り当てられた論
理ブロックアドレスを検出し、これに基づいてアドレス
変換テーブルを作成するアドレス変換テーブル生成手段
をさらに備えることが好ましい。
【0017】また、前記検出手段により検出された不正
マッピングブロックをブロック消去する消去手段をさら
に備えることがより好ましい。これによれば、不正マッ
ピングブロックが消去済みブロックに変換されることか
ら、不正マッピングブロックの蓄積が防止される。
【0018】また、前記消去手段は、前記アドレス変換
テーブル生成手段により前記アドレス変換テーブルが作
成されたことに応答して、前記不正マッピングブロック
のブロック消去を行うことがより好ましい。これによれ
ば、不正マッピングブロックの消去を、アドレス変換テ
ーブルの作成と独立して行うことができるので、既存の
ファームウェアの多くの部分をそのまま流用することが
可能となる。
【0019】また、前記消去手段は、前記アドレス変換
テーブル生成手段による前記アドレス変換テーブルの作
成中に、前記検出手段が前記不正マッピングブロックの
存在を検出したことに応答して、前記検出された不正マ
ッピングブロックをブロック消去することもまた、より
好ましい。これによれば、ファームウェア全体を小型化
することが可能となる。
【0020】また、前記各ブロックが消去済みブロック
であるか否かを示す冗長ブロック登録テーブルを作成す
る冗長ブロック登録テーブル作成手段をさらに備え、前
記冗長ブロック登録テーブル作成手段は、前記検出手段
が前記不正マッピングブロックの存在を検出したことに
応答して、前記検出された不正マッピングブロックを消
去済みブロックとして冗長ブロック登録テーブルに登録
することもまた、より好ましい。これによれば、アドレ
ス変換テーブル等の作成動作を高速に完了することが可
能となる。
【0021】また、データの書き込みが要求されたこと
に応答して、書き込み対象となるブロックの状態を検査
するベリファイ手段をさらに備えることがさらに好まし
い。これによれば、消去済みブロックとして冗長ブロッ
ク登録テーブルに登録された不正マッピングブロックに
直接データが書き込まれるのを防止することが可能とな
る。
【0022】また、前記ベリファイ手段による検査の結
果、書き込み対象となるブロックが消去済みブロックで
はないと判断されたことに応答して、該ブロックを少な
くともブロック消去した後、該ブロックに含まれるメモ
リセルが全て消去されたか否かを判定する判定手段をさ
らに備えることがさらに好ましい。これによれば、不正
マッピングブロックが消去済みブロックに変換されるこ
とから、不正マッピングブロックの蓄積が防止される。
【0023】本発明によるフラッシュメモリシステム
は、複数のブロックを含むフラッシュメモリと、少なく
とも論理ブロックアドレスに基づいて前記フラッシュメ
モリにアクセスするメモリコントローラとを備えるフラ
ッシュメモリシステムであって、それぞれのブロックに
とって有効でない論理ブロックアドレスが割り当てられ
た不正マッピングブロックを検出する検出手段を前記メ
モリコントローラが備えていることを特徴とする。
【0024】本発明のフラッシュメモリシステムによれ
ば、不正マッピングブロックの存在を検出することがで
きるので、その後この不正マッピングブロックをブロッ
ク消去等すれば、不正マッピングブロックの蓄積を防止
することができる。これにより、フラッシュメモリの信
頼性低下を効果的に防止することが可能となる。
【0025】また、前記各ブロックには、対応する論理
ブロックアドレスを格納する論理ブロックアドレス格納
領域が設けられており、前記検出手段は、前記論理ブロ
ックアドレス格納領域に格納された論理ブロックアドレ
スを参照することによって前記不正マッピングブロック
を検出することが好ましい。
【0026】本発明によるフラッシュメモリの制御方法
は、フラッシュメモリに含まれる各ブロックに対して割
り当てられた論理ブロックアドレスを検出する第1のス
テップと、前記検出された論理ブロックアドレスがそれ
ぞれのブロックにとって有効でない論理ブロックアドレ
スであるか否かを判別する第2のステップとを備えるこ
とを特徴とする。
【0027】本発明のフラッシュメモリの制御方法によ
れば、それぞれのブロックにとって有効でない論理ブロ
ックアドレスが割り当てられたブロックの存在を検出す
ることができるので、その後この不正マッピングブロッ
クをブロック消去等すれば、不正マッピングブロックの
蓄積を防止することができる。これにより、フラッシュ
メモリの信頼性低下を効果的に防止することが可能とな
る。
【0028】また、前記第1のステップは、前記各ブロ
ックに対して割り当てられた論理ブロックアドレスを前
記各ブロックから読み出し、これに基づいてアドレス変
換テーブルを作成するステップであり、前記第2のステ
ップは、前記アドレス変換テーブルを参照することによ
って、それぞれのブロックにとって有効でない論理ブロ
ックアドレスが割り当てられた不正マッピングブロック
が存在するか否かを判別するステップであることをが好
ましい。
【0029】また、前記不正マッピングブロックをブロ
ック消去する第3のステップをさらに備えることがより
好ましい。
【0030】
【発明の実施の形態】以下、添付図面を参照しながら、
本発明の好ましい実施態様について詳細に説明する。
【0031】図1は、本発明の好ましい実施態様にかか
るフラッシュメモリシステム1を概略的に示すブロック
図である。
【0032】図1に示すように、本実施態様にかかるフ
ラッシュメモリシステム1は、フラッシュメモリ2及び
コントローラ3からなる。特に限定されるものではない
が、フラッシュメモリシステム1はフラッシュメモリ2
及びコントローラ3が一つのカード内に集積されて構成
され、ホストコンピュータに対して着脱可能な一種の外
部記憶装置として用いることができる。ホストコンピュ
ータとしては、文字、音声、あるいは画像情報等の種々
の情報を処理するパーソナルコンピュータやデジタルス
チルカメラをはじめとする各種情報処理装置が挙げられ
る。
【0033】フラッシュメモリ2は、多数のメモリセル
を含む1又は2以上の半導体チップからなり、n個(例
えば1024個)のブロックによって構成される。これ
らn個のブロックはいずれもk個(例えば32個)のペ
ージ(セクタ)からなり、各ページは例えば512バイ
トの記録容量を有する最小アクセス単位として用いられ
る。したがって、上記の例のように、 n=1024(1K) k=32 である場合、フラッシュメモリ2は32Kページのアド
レス空間を含み、このためホストコンピュータ側から特
定のページにアクセスするためには、少なくとも15ビ
ットのアドレス情報が必要となる。本明細書において
は、ホストコンピュータよりフラッシュメモリシステム
1に供給されるアドレス情報を「ホストアドレス」と呼
ぶ。
【0034】コントローラ3は、少なくともCPU4、
RAM5及びROM6を含む種々の機能ブロックによっ
て構成される。特に限定されるものではないが、コント
ローラ3は一つの半導体チップ上に集積されていること
が好ましい。CPU4は、コントローラ3を構成する各
機能ブロック全体の動作を制御するための機能ブロック
である。また、RAM5は、CPU4によるフラッシュ
メモリ2の制御に必要なデータが一時的に格納される作
業領域であり、特に限定されるものではないが、複数の
SRAMセルによって構成することが好ましい。ROM
6は、CPU4が実行すべき制御プログラム(ファーム
ウェア)を格納するための機能ブロックである。
【0035】次に、フラッシュメモリ2に含まれるメモ
リセルの具体的な構造について説明する。
【0036】図2は、フラッシュメモリ2に含まれる各
メモリセル10の構造を概略的に示す断面図である。
【0037】図2に示すように、メモリセル10は、P
型半導体基板11に形成されたN型のソース拡散領域1
2及びドレイン拡散領域13と、ソース拡散領域12と
ドレイン拡散領域13との間のP型半導体基板11を覆
って形成されたトンネル酸化膜14と、トンネル酸化膜
14上に形成されたフローティングゲート電極15と、
フローティングゲート電極15上に形成された絶縁膜1
6と、絶縁膜16上に形成されたコントロールゲート電
極17とから構成される。このような構成を有するメモ
リセル10は、フラッシュメモリ2内において、複数個
直列に接続されて、NAND型フラッシュメモリを構成
する。
【0038】メモリセル10は、フローティングゲート
電極15に電子が注入されているか否かによって、「消
去状態」と「書込状態」のいずれかの状態となる。メモ
リセル10が消去状態であることは、当該メモリセル1
0にデータ「1」が保持されていることを意味し、メモ
リセル10が書込状態であることは、当該メモリセル1
0にデータ「0」が保持されていることを意味する。す
なわち、メモリセル10は、1ビットのデータを保持す
ることが可能である。
【0039】図2に示すように、消去状態とは、フロー
ティングゲート電極15に電子が注入されていない状態
を指す。消去状態におけるメモリセル10は、デプレッ
ション型のトランジスタとなり、コントロールゲート電
極17に読み出し電圧が印加されているか否かに関わら
ず、ソース拡散領域12とドレイン拡散領域13との間
のP型半導体基板11の表面にはチャネル18が形成さ
れる。したがって、ソース拡散領域12とドレイン拡散
領域13とは、コントロールゲート電極17に読み出し
電圧が印加されているか否かに関わらず、チャネル18
によって常に電気的に接続状態となる。
【0040】図3は、書込状態であるメモリセル10を
概略的に示す断面図である。
【0041】図3に示すように、書込状態とは、フロー
ティングゲート電極15に電子が蓄積されている状態を
指す。フローティングゲート電極15はトンネル酸化膜
14及び絶縁膜16に挟まれているため、一旦、フロー
ティングゲート電極15に注入された電子は、きわめて
長時間フローティングゲート電極15内にとどまる。書
込状態におけるメモリセル10は、エンハンスメント型
のトランジスタとなり、コントロールゲート電極17に
読み出し電圧が印加されていないときには、ソース拡散
領域12とドレイン拡散領域13との間のP型半導体基
板11の表面にはチャネルが形成されず、コントロール
ゲート電極17に読み出し電圧が印加されているときに
は、ソース拡散領域12とドレイン拡散領域13との間
のP型半導体基板11の表面にチャネル(図示せず)が
形成される。したがって、コントロールゲート電極17
に読み出し電圧が印加されていない状態では、ソース拡
散領域12とドレイン拡散領域13とは電気的に絶縁さ
れ、コントロールゲート電極17に読み出し電圧が印加
された状態では、ソース拡散領域12とドレイン拡散領
域13とが電気的に接続される。
【0042】ここで、選択されたメモリセル10が消去
状態であるか書込状態であるかは、次のようにして読み
出すことができる。すなわち、複数個直列に接続された
メモリセル10のうち、選択されたメモリセル10以外
の全てのメモリセル10のコントロールゲート電極17
に読み出し電圧を印加し、この状態において、これらメ
モリセル10の直列体に電流が流れるか否かを検出す
る。その結果、かかる直列体に電流が流れれば、選択さ
れたメモリセル10が消去状態であると判断することが
でき、かかる直列体に電流が流れなければ、選択された
メモリセル10が書込状態であると判断することができ
る。このようにして、直列体に含まれる任意のメモリセ
ル10に保持されたデータが「0」であるのか「1」で
あるのかを読み出すことができる。但し、NAND型フ
ラッシュメモリにおいては、ひとつの直列体に含まれる
2以上のメモリセル10に保持されたデータを同時に読
み出すことはできない。
【0043】また、消去状態であるメモリセル10を書
込状態に変化させる場合、コントロールゲート電極17
に正の高電圧が印加され、これによって、トンネル酸化
膜14を介してフローティングゲート電極15へ電子が
注入される。フローティングゲート電極15への電子の
注入は、FNトンネル電流による注入が可能である。一
方、書込状態であるメモリセル10を消去状態に変化さ
せる場合、コントロールゲート電極17に負の高電圧が
印加され、これによって、トンネル酸化膜14を介して
フローティングゲート電極15に蓄積された電子が排出
される。
【0044】次に、フラッシュメモリ2の持つアドレス
空間の具体的な構成について説明する。
【0045】図4は、フラッシュメモリ2のアドレス空
間の構造を概略的に示す図である。
【0046】図4に示すように、フラッシュメモリ2の
アドレス空間は、ブロック#0〜#n−1からなるn個
のブロックによって構成される。ここで、各ブロック
は、データの消去単位である。すなわち、フラッシュメ
モリ2では、各メモリセル10ごとに、その状態を書込
状態から消去状態に変化させることはできず、メモリセ
ル10を書込状態から消去状態に変化させる場合は、当
該メモリセル10が属するブロックに含まれる全てのメ
モリセル10を一括して消去状態とする必要がある。逆
に、各メモリセル10ごとにその状態を消去状態から書
込状態に変化させることは可能である。
【0047】さらに、図4に示すように、フラッシュメ
モリ2を構成する各ブロック#0〜#n−1は、それぞ
れページ#0〜#k−1からなるk個のページによって
構成されている。これら各ページはデータの読み出し及
び書き込みにおけるアクセス単位であり、図4に示すよ
うに、ビットb0〜b7からなる8ビットを1バイトと
して、例えばそれぞれ512バイトのユーザ領域21と
16バイトの冗長領域22によって構成される。ユーザ
領域21は、ホストコンピュータより供給されるユーザ
データが格納される領域である。
【0048】図5は、冗長領域22のデータ構造を概略
的に示す図である。
【0049】図5に示すように、冗長領域22は、論理
ブロックアドレス格納領域23及びその他の付加情報を
格納するための領域24によって構成される。
【0050】論理ブロックアドレス格納領域23は、当
該ブロックに対応する論理ブロックアドレスを格納する
ための領域であり、少なくともx個(x=logn)
のメモリセル10が割り当てられる。ここで、論理ブロ
ックアドレスとは、ホストアドレスの一部若しくはホス
トアドレスの一部に基づいて生成されたアドレスであ
り、ホストコンピュータ側から見たブロック番号を示し
ている。したがって、論理ブロックアドレスは少なくと
もxビットで構成される。論理ブロックアドレス格納領
域23は、各ページに含まれる冗長領域22が共通に備
える要素であるが、一つのブロックはk個のページから
なるため、一つのブロックを構成する全てのページの論
理ブロックアドレス格納領域23に論理ブロックアドレ
スを格納しておく必要はなく、少なくとも各ブロックの
先頭ページ(ページ#0)の論理ブロックアドレス格納
領域23に論理ブロックアドレスを格納すれば足りる。
また、消去済みのブロックについては全てのメモリセル
10が消去状態(1)となっていることから、論理ブロ
ックアドレス格納領域23がx個のメモリセル10から
なる場合、論理ブロックアドレス格納領域23に格納さ
れる値はn−1(2−1)となる。一方、何らのユー
ザデータが格納されているブロックについては、対応す
る論理ブロックアドレスの値が論理ブロックアドレス格
納領域23に格納されている。
【0051】尚、領域24には、対応するユーザ領域2
1に格納されたユーザデータの誤りを訂正するための付
加情報(エラーコレクションコード)や、当該ブロック
についての異常を表示するブロックステータス等が格納
されているが、これらについては、本発明の要旨と直接
関係がないため、説明は省略する。
【0052】以上のように、フラッシュメモリ2はn個
のブロックによって構成されるが、このうち、m(<
n)個のブロックは実際にデータを格納することができ
る実使用ブロックとして取り扱われ、残りのn−m個の
物理ブロックは冗長ブロックとして取り扱われる。フラ
ッシュメモリ2のアドレス空間は、実使用ブロックのみ
によって構成され、あるブロックに不良が発生し使用不
能となった場合には、不良が発生したブロックの数だけ
冗長ブロックとして用いられるブロックの数が減らされ
る。
【0053】次に、RAM5内に作成される各種テーブ
ルについて説明する。
【0054】RAM5内に作成される各種テーブルに
は、少なくとも、アドレス変換テーブル、冗長ブロック
登録テーブル及び書き込みキューが含まれ、これらはコ
ントローラ3に対して電源投入またはリセット動作がな
された場合に、ROM6に格納されているファームウェ
アに基づきCPU4によって作成される。
【0055】アドレス変換テーブルは、ホストアドレス
に基づき生成される論理ブロックアドレスと各ブロック
に対して一義的に割り当てられた物理ブロックアドレス
との対応関係を保持するためのテーブルであり、以下の
構造を有している。
【0056】図6は、RAM5内に作成されるアドレス
変換テーブル31のデータ構造を示す図である。
【0057】図6に示すように、アドレス変換テーブル
31は、物理ブロックアドレス格納領域#0〜物理ブロ
ックアドレス格納領域#n−1からなるn個の物理ブロ
ックアドレス格納領域と、これら物理ブロックアドレス
格納領域にそれぞれ対応して設けられたn個のフラグか
らなる。ここで、各物理ブロックアドレス格納領域に対
して一義的に割り当てられた領域番号(#0〜#n−
1)は、論理ブロックアドレスを示し、各物理ブロック
アドレス格納領域に格納された内容は、対応する物理ブ
ロックアドレスを示している。したがって、例えば物理
ブロックアドレス格納領域#pに格納されている物理ブ
ロックアドレスが#qであれば、論理ブロックアドレス
=#pが物理ブロックアドレス=#qに対応することに
なる。
【0058】また、フラグ#0〜フラグ#n−1は、そ
れぞれ対応する物理ブロックアドレス格納領域の内容
(物理ブロックアドレス)が有効であるか否かを示して
いる。具体的には、フラグが「0」であれば、対応する
物理ブロックアドレス格納領域の内容が有効であること
を意味し、フラグが「1」であれば、対応する物理ブロ
ックアドレス格納領域の内容が無効であることを意味す
る。もちろん、逆に、物理ブロックアドレス格納領域の
内容が有効である場合に、対応するフラグを「1」とし
ても構わない。
【0059】冗長ブロック登録テーブル32は、各ブロ
ックがそれぞれ使用中であるか否かを示すテーブルであ
り、以下の構造を有している。
【0060】図7は、RAM5内に作成される冗長ブロ
ック登録テーブル32のデータ構造を示す図である。
【0061】図7に示すように、冗長ブロック登録テー
ブル32は、バイト#0〜バイト#(n/8)−1から
なるn/8バイト(nビット)のビットマップによって
構成され、 バイト番号×8+ビット番号 により特定されるブロックが使用中のブロック(ユーザ
データが格納されているブロック)であるか、消去済み
の空きブロックであるかを示している。具体的には、ビ
ットが「0」であれば対応するブロックが使用中である
ことを意味し、ビットが「1」であれば、対応するブロ
ックが消去済みブロックであることを意味する。もちろ
ん、その逆であっても構わない。したがって、図7に示
す例のように、バイト#0のビット#0が「0」であれ
ば、ブロック#0が使用中であることが示され、また、
バイト#1のビット#6が「1」であれば、ブロック#
14が消去済みブロックであることが示される。
【0062】図8は、RAM5内に作成される書き込み
キュー33のデータ構造を示す図である。
【0063】図8に示すように、書き込みキュー33
は、キュー#0〜キュー#h−1からなるh個のキュー
によって構成され、各キューには、消去済みブロックの
物理ブロックアドレスが格納されている。書き込みキュ
ー33に登録されるブロックは、上述した冗長ブロック
登録テーブル32においてビットが「1(消去済み)」
となっているブロックから選ばれる。
【0064】次に、本実施態様にかかるフラッシュメモ
リシステム1の動作について説明する。
【0065】図9は、アドレス変換テーブル31及び冗
長ブロック登録テーブル32の作成方法を示すフローチ
ャートである。アドレス変換テーブル31及び冗長ブロ
ック登録テーブル32の作成は、コントローラ3に対し
て電源投入またはリセット動作がなされたことに応答し
て、CPU4がROM6に格納されているファームウェ
アを実行することにより行われる。
【0066】まず、コントローラ3に対して電源投入ま
たはリセット動作がなされると、CPU4は、RAM5
のうちアドレス変換テーブル31及び冗長ブロック登録
テーブル32を構成するビットを全て「1」にリセット
する(ステップS1)。次いで、CPU4は、内部変数
aの値を0にリセットし(ステップS2)、ブロック番
号が内部変数aに一致するブロックの先頭ページ(ペー
ジ#0)に格納されている論理ブロックアドレスを読み
出す(ステップS3)。この場合、内部変数a=0であ
るから、ブロック#0のページ#0に格納されている論
理ブロックアドレスが読み出されることになる。
【0067】次に、CPU4は、読み出された論理ブロ
ックアドレスが「オール1」であるか否か、すなわちn
−1であるかを判断し(ステップS4)、その結果、読
み出された論理ブロックアドレスが「オール1(=n−
1)」以外であれば、冗長ブロック登録テーブル32の
対応するビット(この場合は、バイト#0のビット#
0)を「0」に書き替える(ステップS5)。さらに、
アドレス変換テーブル31のうち、フラグ番号が論理ブ
ロックアドレスに一致するフラグを「0」に書き替える
(ステップS6)とともに、領域番号が論理ブロックア
ドレスに一致する物理ブロックアドレス格納領域に内部
変数aを格納する(ステップS7)。一方、ステップS
4において、読み出された論理ブロックアドレスが「オ
ール1(=n−1)」であれば、上記ステップS5〜ス
テップS7は実行されない。
【0068】そして、CPU4は、内部変数aをインク
リメントした後(ステップS8)、内部変数aがnに一
致しているか否かを判断し(ステップS9)、その結
果、内部変数aがnではない場合にはステップS3に戻
って、内部変数aを用いた論理ブロックアドレスの読み
出しを行い、内部変数aがnに一致している場合には、
一連の処理を完了する。
【0069】以上のようにして、内部変数aがnに一致
するまでステップS3〜ステップS9が繰り返し実行さ
れ、これによってアドレス変換テーブル31及び冗長ブ
ロック登録テーブル32が完成する。尚、書き込みキュ
ー33は、CPU4による制御のもと、冗長ブロック登
録テーブル32においてビットが「1」となっているブ
ロックがh個選ばれ、その物理ブロックアドレスがキュ
ー#0〜#h−1に登録される。
【0070】本実施態様においては、図9に示すアドレ
ス変換テーブル31及び冗長ブロック登録テーブル32
の作成動作、並びに、書き込みキューの作成動作(図示
せず)が完了した後、引き続いて不正マッピングブロッ
クの消去動作が行われる。ここで、不正マッピングブロ
ックとは、アドレス変換テーブル31の物理ブロックア
ドレス格納領域#m〜#n−2に格納された物理ブロッ
クアドレスにより特定されるブロックを指す。
【0071】つまり、n個のブロックのうち実使用ブロ
ックはm個のみであり、フラッシュメモリ2のアドレス
空間は実使用ブロックのみによって構成されることか
ら、論理ブロックアドレスとしては#0〜#m−1まで
しか存在せず、それ以上の値(#m〜#n−1)は取り
得ない。さらに、消去済みのブロックにおいては、論理
ブロックアドレス格納領域23の値は「オール1」であ
り、論理ブロックアドレス格納領域23がx個のメモリ
セル10によって構成される場合、消去済みブロックの
論理ブロックアドレス格納領域23に格納される値はn
−1(2−1)となることから、物理ブロックアドレ
ス格納領域#n−1に格納された物理ブロックアドレス
により特定されるブロックは必ず消去済みブロックとな
る。
【0072】以上より、物理ブロックアドレス格納領域
#m〜#n−2に格納された物理ブロックアドレスによ
り特定されるブロックは、アクセスが不可能であるとと
もに消去済みブロックとしても取り扱われない、不正マ
ッピングブロックであることが分かる。
【0073】図10は、不正マッピングブロックの消去
方法を示すフローチャートである。不正マッピングブロ
ックの消去も、CPU4がROM6に格納されているフ
ァームウェアを実行することによって行われる。
【0074】不正マッピングブロックの消去において
は、CPU4はまず内部変数bの値をmにセットし(ス
テップS11)、フラグ番号が内部変数bに一致するフ
ラグの内容を読み出す(ステップS12)。この場合、
内部変数b=mであるから、フラグ#mの内容が読み出
されることになる。
【0075】次に、CPU4は、読み出されたフラグの
内容が「0(有効)」であるか「1(無効)」であるか
を判断し(ステップS13)、その結果、読み出された
フラグの内容が「0(有効)」であれば、対応する物理
ブロックアドレス格納領域(この場合は、物理ブロック
アドレス格納領域#m)の内容を読み出し(ステップS
14)、その内容により特定されるブロックをブロック
消去する(ステップS15)。そして、冗長ブロック登
録テーブル32を構成するビットのうち、内部変数bに
対応するビットを「1(消去済み)」に書き替えた後
(ステップS16)、内部変数bをインクリメントする
(ステップS17)。一方、ステップS13において、
読み出されたフラグの内容が「1(無効)」であれば、
上記ステップS14〜S16を実行することなく、内部
変数bをインクリメントする(ステップS17)。ここ
で、読み出されたフラグの内容が「0(有効)」である
場合、当該ブロックは不正マッピングブロックである。
【0076】そして、CPU4は、内部変数bがn−1
に一致しているか否かを判断し(ステップS18)、そ
の結果、内部変数bがn−1ではない場合にはステップ
S12に戻って、内部変数bを用いたフラグの読み出し
を行い、内部変数bがn−1に一致している場合には、
一連の処理を完了する。
【0077】以上のようにして、内部変数bがn−1に
一致するまでステップS12〜ステップS18を繰り返
して実行し、これによって不正マッピングブロックの消
去が完了する。
【0078】このように、本実施態様においては、アド
レス変換テーブル31等の作成動作が完了した後、引き
続いて不正マッピングブロックの消去動作(図10)を
実行していることから、アドレス変換テーブル31の物
理ブロックアドレス格納領域#m〜#n−2に格納され
た物理ブロックアドレスにより特定されるブロック、す
なわち不正マッピングブロックがブロック消去され、消
去済みブロックとして解放されることになる。したがっ
て、不正マッピングブロックの蓄積によってフラッシュ
メモリ2の全体が使用不能となることがなくなるので、
フラッシュメモリ2の信頼性を高めることが可能とな
る。
【0079】尚、上記実施態様においては、アドレス変
換テーブル31等の作成動作が完了した後、引き続いて
不正マッピングブロックの消去動作(図10)を実行し
ているが、かかる不正マッピングブロックの消去動作
(図10)をアドレス変換テーブル31等の作成動作が
完了するたびに毎回実行する必要はない。したがって、
アドレス変換テーブル31等の作成動作が複数回実行さ
れたことに応答して不正マッピングブロックの消去動作
(図10)を実行しても良いし、また、前回不正マッピ
ングブロックの消去動作(図10)が実行されてから一
定期間が経過したことに応答して不正マッピングブロッ
クの消去動作(図10)を実行しても良い。さらに、消
去済みブロックの数が一定数以下となったことに応答し
て不正マッピングブロックの消去動作(図10)を実行
しても良い。尚、消去済みブロックの数は、上述した冗
長ブロック登録テーブル32を参照することによって、
容易にカウントすることが可能である。
【0080】次に、アドレス変換テーブル31等が作成
された後、すなわち初期設定が完了した後におけるフラ
ッシュメモリ2へのアクセス方法について、データの読
み出し動作及びデータの書き込み動作の順に説明する。
また、データの書き込み動作については、データが全く
割り当てられていない論理ブロックアドレスに対して新
規にデータを割り当てる場合(データの新規書込動作)
と、既にデータが割り当てられている論理ブロックアド
レスに対して追加して或いは重ねてデータを割り当てる
場合(データの上書き動作)に分けて説明する。
【0081】まず、データの読み出し動作について説明
する。
【0082】図11は、データの読み出し動作を示すフ
ローチャートである。かかる動作も、CPU4がROM
6に格納されているファームウェアを実行することによ
って行われる。
【0083】データの読み出し動作において、ホストコ
ンピュータよりホストアドレスが供給されると、CPU
4はまず、ホストアドレスに基づいて論理ブロックアド
レスとページアドレス(PA)を作成する(ステップS
21)。生成方法としては、ホストアドレスの上位ビッ
トを論理ブロックアドレスとし、ホストアドレスの下位
ビットをページアドレス(PA)とするのが基本である
が、フラッシュメモリ2が複数の単位領域(ゾーン)に
分割されている場合には、ホストアドレスの上位ビット
を1ゾーンに含まれる実使用ブロック数で除算し、その
商に基づいてゾーンを特定するとともに、剰余に基づい
て論理ブロックアドレスを特定すればよい。単純な一例
として、フラッシュメモリ2が1024(n=210
個のブロックからなる単一ゾーン構成であり、一つのブ
ロックに32(k=2)個のページからなる場合、少
なくとも15ビットのホストアドレスが用いられ、その
上位10ビットが論理ブロックアドレスとなり、下位5
ビットがページアドレス(PA)となる。
【0084】次に、CPU4は、RAM5内に作成され
たアドレス変換テーブル31を参照することにより、論
理ブロックアドレスを物理ブロックアドレスに変換する
(ステップS22)。具体的には、領域番号が論理ブロ
ックアドレスに一致する物理ブロックアドレス格納領域
にアクセスし、ここに格納されている物理ブロックアド
レスを読み出すことにより変換を行う。尚、本例はデー
タの読み出し動作であり、当該ホストアドレスに対応す
るブロックには原則としてユーザデータが割り当てられ
ているはずであるから、対応するフラグは「0(有
効)」となっているはずである。但し、ホストコンピュ
ータによっては、ユーザデータの割り当てられていない
ホストアドレスに対して読み出し要求を行う場合もあ
る。
【0085】そして、CPU4は、アドレス変換テーブ
ル31から読み出された物理ブロックアドレス及び上記
ページアドレス(PA)に基づいてフラッシュメモリ2
にアクセスし、対応するページに格納されているデータ
を読み出す(ステップS23)。この場合、アクセスさ
れるブロックは物理ブロックアドレスによって特定さ
れ、アクセスされるページはページアドレス(PA)に
よって特定される。
【0086】以上により、データの読み出し動作が完了
する。
【0087】次に、データの書き込み動作について説明
する。データの書き込み動作は、上述の通り、データの
新規書込動作とデータの上書き動作に分けられることか
ら、ホストコンピュータからデータの書き込み要求がな
された場合、まず、これがデータの新規書込であるのか
データの上書きであるのかの判断が行われる。
【0088】図12は、かかる判断動作を示すフローチ
ャートである。かかる動作も、CPU4がROM6に格
納されているファームウェアを実行することによって行
われる。
【0089】データの書き込み動作において、ホストコ
ンピュータよりホストアドレスが供給されると、CPU
4はまず、ホストアドレスに基づいて論理ブロックアド
レスとページアドレス(PA)を作成する(ステップS
31)。その生成方法は上述の通りである。
【0090】次に、CPU4は、フラグ番号が論理ブロ
ックアドレスに一致するフラグを読み出し(ステップS
32)、その内容を参照することによって、当該論理ブ
ロックアドレスに対応するブロックが既に割り当てられ
ているか否かを判断する(ステップS33)。これは、
本データの書き込み動作がデータの新規書込動作である
のか、或いはデータの上書き動作であるのかを判断する
ことに等しい。
【0091】その結果、読み出されたフラグが「1(無
効)」であれば、当該論理ブロックアドレスに対応する
ブロックがまだ割り当てられていない、すなわち、本デ
ータの書き込み動作がデータの新規書込動作であると判
断することができるので、図13に示すデータの新規書
込動作が実行され、逆に、読み出されたフラグが「0
(有効)」であれば、当該論理ブロックアドレスに対応
するブロックが既に割り当てられている、すなわち、本
データの書き込み動作がデータの上書き動作であると判
断することができるので、図14に示すデータの上書き
動作が実行される。
【0092】まず、図13を用いてデータの新規書込動
作について説明する。かかる動作も、CPU4がROM
6に格納されているファームウェアを実行することによ
って行われる。
【0093】データの新規書込動作においては、CPU
4はまず、書き込みキュー33にアクセスし、キュー#
0〜#h−1に格納されているいずれかの物理ブロック
アドレスを読み出す(ステップS41)。
【0094】次に、CPU4は、書き込みキュー33か
ら読み出された物理ブロックアドレス及び上記ページア
ドレス(PA)に基づいてフラッシュメモリ2にアクセ
スし、対応するページ及び当該ブロックの先頭ページ
(ページ#0)に必要なデータを格納する(ステップS
42)。ここで、対応するページに格納すべきデータに
は少なくともユーザデータが含まれ、先頭ページ(ペー
ジ#0)に格納すべきデータには少なくとも論理ブロッ
クアドレスが含まれる。このうちユーザデータは、対応
するページのユーザ領域21に格納され、論理ブロック
アドレスは、当該ブロックの先頭ページ(ページ#0)
の論理ブロックアドレス格納領域23に格納される。
【0095】そして、CPU4は、アドレス変換テーブ
ル31、冗長ブロック登録テーブル32及び書き込みキ
ュー33の内容を更新する(ステップS43、S44、
S45)。具体的には、アドレス変換テーブル31の更
新については、フラグ番号が論理ブロックアドレスに一
致するフラグの値を「0(有効)」に書き替えるととも
に、対応する物理ブロックアドレス格納領域に書き込み
キュー33から読み出された物理ブロックアドレスを格
納する。また、冗長ブロック登録テーブル32の更新に
ついては、書き込みキュー33から読み出された物理ブ
ロックアドレスに対応するビットを「0(使用中)」に
書き替える。さらに、書き込みキュー33の更新につい
ては、冗長ブロック登録テーブル32を参照することに
より、物理ブロックアドレスの読み出しが行われたキュ
ーに新たな消去済みブロックの物理ブロックアドレスを
上書きする。
【0096】以上によりデータの新規書込動作が完了す
る。
【0097】尚、アドレス変換テーブル31、冗長ブロ
ック登録テーブル32及び書き込みキュー33の更新
は、図13に示す順に行う必要はなく、これとは異なる
順で行っても構わない。また、書き込みキュー33に登
録された時点で、対応する冗長ブロック登録テーブル3
2のビットを「0(使用中)」に書き替えるよう構成し
た場合には、図13に示すステップS44は省略され
る。
【0098】次に、図14を用いてデータの上書き動作
について説明する。かかる動作も、CPU4がROM6
に格納されているファームウェアを実行することによっ
て行われる。
【0099】データの上書き動作においては、CPU4
はまず、領域番号が論理ブロックアドレスに一致する物
理ブロックアドレス格納領域にアクセスし、ここに格納
されている物理ブロックアドレスを読み出す(ステップ
S51)。以下、ステップS51において得られた物理
ブロックアドレスを「転送元ブロックアドレス」と呼
ぶ。
【0100】次に、CPU4は、書き込みキュー33に
アクセスし、キュー#0〜#h−1に格納されているい
ずれかの物理ブロックアドレスを読み出す(ステップS
52)。以下、ステップS52において得られた物理ブ
ロックアドレスを「転送先ブロックアドレス」と呼ぶ。
【0101】次に、CPU4は、内部変数cの値を0に
リセットし(ステップS53)、内部変数cの値がペー
ジアドレス(PA)と一致しているか否かを判断する
(ステップS54)。その結果、内部変数cの値がペー
ジアドレス(PA)と一致していれば、転送先ブロック
アドレス及びページアドレス(PA)に基づいてフラッ
シュメモリ2にアクセスし、対応するページに必要なデ
ータを格納する(ステップS55)。ここで、対応する
ページに格納されるデータには少なくともユーザデータ
が含まれ、かかるユーザデータは、対応するページのユ
ーザ領域21に格納される。一方、内部変数cの値がペ
ージアドレス(PA)と一致していなければ、「ブロッ
ク間転送」が行われる(ステップS56)。ブロック間
転送においては、転送元ブロックアドレスにより特定さ
れるブロック内の内部変数cにより特定されるページの
内容が、転送先ブロックアドレスにより特定されるブロ
ック内の内部変数cにより特定されるページに転送され
る。尚、内部変数cが「0」である場合には、ステップ
S55が実行されるかステップS56が実行されるかに
関わらず、転送先ブロックアドレスにより特定されるブ
ロックの先頭ページ(ページ#0)の論理ブロックアド
レス格納領域23に論理ブロックアドレスが格納され
る。
【0102】次に、CPU4は、内部変数cをインクリ
メントした後(ステップS57)、内部変数cがkに一
致しているか否かを判断し(ステップS58)、その結
果、内部変数cがkではない場合にはステップS54に
戻って内部変数cとページアドレス(PA)との比較を
行い、内部変数cがkに一致している場合には、後述す
るステップが実行される。以上のようにして、内部変数
cがkに一致するまでステップS54〜ステップS58
が繰り返し実行され、これによって、ホストコンピュー
タより与えられたユーザデータが転送先のブロックの所
定のページに書き込まれるとともに、転送元のブロック
内に格納されていた上書き対象外のデータが転送先のブ
ロックの同じページに書き込まれることになる。
【0103】ステップS58において内部変数cがkに
一致した場合、CPU4は、アドレス変換テーブル31
及び書き込みキュー33の内容を更新する(ステップS
59、S60)。かかる動作は上述したステップS4
3、S45と同様である。したがって、アドレス変換テ
ーブル31及び書き込みキュー33の更新は、図14に
示す順に行う必要はなく、逆の順序で行っても構わな
い。
【0104】そして、CPU4は、転送元ブロックアド
レスにより特定されるブロックをブロック消去し(ステ
ップS61)、冗長ブロック登録テーブル32の内容を
更新する(ステップS62)。具体的には、書き込みキ
ュー33から読み出された物理ブロックアドレスに対応
するビットを「0(使用中)」に書き替えるとともに、
ステップS61においてブロック消去されたブロックに
対応するビットを「1(消去済み)」に書き替える。
【0105】以上によりデータの上書き動作が完了す
る。
【0106】以上説明したように、本実施態様において
は、不正マッピングブロックの消去動作(図10)によ
って、アドレス変換テーブル31の物理ブロックアドレ
ス格納領域#m〜#n−2に格納された物理ブロックア
ドレスにより特定される不正マッピングブロックをブロ
ック消去していることから、不正マッピングブロックの
蓄積が効果的に防止され、これにより、フラッシュメモ
リ2の信頼性を高めることが可能となる。また、本実施
態様においては、不正マッピングブロックの消去動作が
アドレス変換テーブル31等の作成動作と独立している
ことから、既存のファームウェアの多くの部分をそのま
ま流用することができるという優位性も有している。
【0107】次に、本発明の好ましい他の実施態様につ
いて説明する。
【0108】本実施態様は、上記実施態様と異なり、ア
ドレス変換テーブル31及び冗長ブロック登録テーブル
32の作成中に不正マッピングブロックを発見次第、こ
れをブロック消去するものである。以下、具体的に説明
する。
【0109】図15は、本実施態様におけるアドレス変
換テーブル31及び冗長ブロック登録テーブル32の作
成方法を示すフローチャートである。アドレス変換テー
ブル31及び冗長ブロック登録テーブル32の作成は、
上述の通り、コントローラ3に対して電源投入またはリ
セット動作がなされたことに応答して、CPU4がRO
M6に格納されているファームウェアを実行することに
より行われる。尚、図15に示すアドレス変換テーブル
31及び冗長ブロック登録テーブル32の作成動作は、
図9に示したアドレス変換テーブル31及び冗長ブロッ
ク登録テーブル32の作成動作と多くの部分において重
複するため、図9に示した動作と同じ動作については、
同じステップ番号を付し、重複する説明は省略する。
【0110】図15に示すように、本実施態様ではステ
ップS4において論理ブロックアドレスが「オール1
(=n−1)」以外であると判断された場合、CPU4
は、論理ブロックアドレスがm〜n−2であるか否かを
判断する(ステップS71)。すなわち、当該ブロック
が不正マッピングブロックであるか否かを判断する。そ
の結果、論理ブロックアドレスがm〜n−2以外であれ
ば(不正マッピングブロックでなければ)、CPU4
は、上述したステップS5以降の動作を実行するが、論
理ブロックアドレスがm〜n−2のいずれかであれば
(不正マッピングブロックであれば)、当該ブロックを
ブロック消去する(ステップS72)。この場合、ステ
ップS5〜S7は実行されず、CPU4は直ちに内部変
数aのインクリメントを行う(ステップS8)。以上の
ようにして、内部変数aがnに一致するまでステップS
3〜ステップS9及びステップS71、S72が繰り返
し実行され、これによってアドレス変換テーブル31及
び冗長ブロック登録テーブル32が完成する。
【0111】尚、アドレス変換テーブル31等が作成さ
れた後、すなわち初期設定が完了した後におけるフラッ
シュメモリ2へのアクセス方法については、上記実施態
様と同様である。
【0112】このように、本実施態様においては、アド
レス変換テーブル31等の作成動作中に不正マッピング
ブロックが発見された場合、その都度これをブロック消
去し、通常の消去済みブロックに変換していることか
ら、上記実施態様と同様、不正マッピングブロックの蓄
積によってフラッシュメモリ2の全体が使用不能となる
ことがなくなる。これにより、フラッシュメモリ2の信
頼性を高めることが可能となる。また、本実施態様によ
れば、不正マッピングブロックの消去動作をアドレス変
換テーブル31等の作成動作中に組み込んでいることか
ら、これをCPU4に実行させるためのファームウェア
を小型化することが可能となる。
【0113】次に、本発明の好ましいさらに他の実施態
様について説明する。
【0114】本実施態様は、上記2つの実施態様とは異
なり、アドレス変換テーブル31及び冗長ブロック登録
テーブル32の作成中に不正マッピングブロックを発見
した場合であっても、これを消去済みブロックとみなし
てこれらと同様に取り扱う一方で、ホストコンピュータ
よりデータの書き込みが指示された場合、所定のブロッ
クに実際にデータを書き込む前に、当該ブロックが消去
済みブロックであるか否かをチェックするというもので
ある。以下、具体的に説明する。
【0115】図16は、本実施態様におけるアドレス変
換テーブル31及び冗長ブロック登録テーブル32の作
成方法を示すフローチャートである。アドレス変換テー
ブル31及び冗長ブロック登録テーブル32の作成は、
上述の通り、コントローラ3に対して電源投入またはリ
セット動作がなされたことに応答して、CPU4がRO
M6に格納されているファームウェアを実行することに
より行われる。尚、図16に示すアドレス変換テーブル
31及び冗長ブロック登録テーブル32の作成動作は、
図9に示したアドレス変換テーブル31及び冗長ブロッ
ク登録テーブル32の作成動作と多くの部分において重
複するため、図9に示した動作と同じ動作については、
同じステップ番号を付し、重複する説明は省略する。
【0116】図16に示すように、本実施態様では、ス
テップS4における判断の代わりに、論理ブロックアド
レスがm以上であるか否かの判断を行っている(ステッ
プS73)。そして、論理ブロックアドレスがm未満
(0〜m−1)であると判断された場合、すなわち、有
効な論理ブロックアドレスであると判断された場合に
は、CPU4は、上述したステップS5以降の動作を実
行する。一方、ステップS73において、論理ブロック
アドレスがm以上(m〜n−1)であると判断された場
合、すなわち、当該ブロックが消去済みブロックまたは
不正マッピングブロックであると判断された場合には、
ステップS5〜S7は実行されず、CPU4は直ちに内
部変数aのインクリメントを行う(ステップS8)。以
上のようにして、内部変数aがnに一致するまでステッ
プS3、ステップS73、ステップS5〜S9が繰り返
し実行され、これによってアドレス変換テーブル31及
び冗長ブロック登録テーブル32が完成する。
【0117】これにより、不正マッピングブロックは消
去済みブロックと同様、冗長ブロック登録テーブル32
における対応するビットが「1(消去済み)」とされる
ので、引き続き行われる書き込みキュー33の作成動作
(図示せず)において、不正マッピングブロックの物理
ブロックアドレスがキューに登録される可能性がある。
【0118】このようにして、アドレス変換テーブル3
1等が作成された後、すなわち初期設定が完了した後、
ホストコンピュータよりデータの書き込みが指示された
場合、キューの読み出し直後に以下に詳述するベリファ
イ動作が挿入される。つまり、データの新規書込動作に
おいては、ステップS41とステップS42との間にベ
リファイ動作が挿入され、データの上書き動作において
は、ステップS52とステップS53との間にベリファ
イ動作が挿入される。
【0119】図17は、ベリファイ動作を示すフローチ
ャートである。ベリファイ動作は、CPU4がROM6
に格納されているファームウェアを実行することによっ
て行われる。
【0120】ベリファイ動作では、まずCPU4は、内
部変数dの値を0にリセットし(ステップS81)、ス
テップS41又はステップS52においてキューから読
み出された物理ブロックアドレスにより特定されるブロ
ックのうち、ページ番号が内部変数dに一致するページ
にアクセスし、その内容を読み出す(ステップS8
2)。
【0121】次に、CPU4は、読み出された内容が
「オール1」であるか否かを判断し(ステップS8
3)、その結果、読み出された内容が「オール1」であ
れば内部変数dをインクリメントし(ステップS8
4)、さらに内部変数dがkに一致しているか否かを判
断する(ステップS85)。その結果、内部変数dがk
に一致していなければステップS82に戻って内部変数
dを用いたページの読み出しを行い、内部変数dがkに
一致していれば、当該ブロックが消去済みブロックであ
ることが確認されたことから、一連のベリファイ動作を
終了し、ステップS42又はステップS53に復帰す
る。
【0122】一方、ステップS83において、読み出さ
れた内容が「オール1」以外であれば、当該ブロックは
消去済みブロックではないと判断できることから、CP
U4は、当該ブロックに対してブロック判定処理(ステ
ップS86)を実行する。ブロック判定処理とは、不良
ブロックであるか否かを判定するための処理であり、そ
の詳細については後述する。
【0123】そして、当該ブロックが正常なブロックで
あるか否かを判断し(ステップS87)、その結果、当
該ブロックが正常なブロックであると判断された場合に
は、ステップS41又はステップS52に戻って再びキ
ューの読み出しを行い、当該ブロックが不良ブロックで
あると判断された場合には、不良ブロック化処理(ステ
ップS88)を行った後、ステップS41又はステップ
S52に戻って再びキューの読み出しを行う。不良ブロ
ック化処理とは、冗長領域22の領域24に格納される
ブロックステータスを「不良ブロック」である旨の内容
に書き替える等により、今後このブロックが使用される
ことがないよう処置することをいう。
【0124】図18は、ブロック判定処理(ステップS
86)を示すフローチャートである。ブロック判定処理
も、CPU4がROM6に格納されているファームウェ
アを実行することによって行われる。
【0125】ブロック判定処理では、まずCPU4は、
内部変数eの値を0にリセットし(ステップS91)、
判定対象のブロックのうち、ページ番号が内部変数eに
一致するページにアクセスし、このページに「オール
0」からなるデータを書き込む(ステップS92)。次
に、CPU4は、内部変数eをインクリメントした後
(ステップS93)、内部変数eがkに一致しているか
否かを判断し(ステップS94)、その結果、内部変数
eがkに一致していなければステップS92に戻って内
部変数eを用いた「オール0」からなるデータの書き込
みを行う。
【0126】このような動作を内部変数eがkに一致す
るまで行い、内部変数eがkに一致すると、CPU4は
内部変数fの値を0にリセットし(ステップS95)、
判定対象のブロックのうち、ページ番号が内部変数fに
一致するページにアクセスし、その内容を読み出す(ス
テップS96)。
【0127】次に、CPU4は、読み出された内容が
「オール0」であるか否かを判断し(ステップS9
7)、その結果、読み出された内容が「オール0」であ
れば内部変数fをインクリメントし(ステップS9
8)、さらに内部変数fがkに一致しているか否かを判
断する(ステップS99)。その結果、内部変数fがk
に一致していなければステップS96に戻って内部変数
fを用いたページの読み出しを行い、内部変数fがkに
一致していれば、当該ブロックをブロック消去する(ス
テップS100)。
【0128】次に、CPU4は、内部変数gの値を0に
リセットし(ステップS101)、判定対象のブロック
のうち、ページ番号が内部変数gに一致するページにア
クセスし、その内容を読み出す(ステップS102)。
そして、CPU4は、読み出された内容が「オール1」
であるか否かを判断し(ステップS103)、その結
果、読み出された内容が「オール1」であれば内部変数
gをインクリメントし(ステップS104)、さらに内
部変数gがkに一致しているか否かを判断する(ステッ
プS105)。その結果、内部変数gがkに一致してい
なければステップS102に戻って内部変数gを用いた
ページの読み出しを行い、内部変数gがkに一致してい
れば、当該ブロックに含まれる全てのメモリセル10に
ついて、消去状態(1)から書込状態(0)への遷移及
び書込状態(0)から消去状態(1)への遷移が正常に
行われるとともに、当該ブロックが消去済みブロックと
なったことが確認されたことから、一連のブロック判定
処理を終了する。これは、図17に示すステップS87
において正常なブロックであると判断された場合に相当
する。
【0129】一方、ステップS97において消去状態
(0)であるメモリセルが発見された場合や、ステップ
S103において書込状態(1)であるメモリセルが発
見された場合には、当該ブロックが不良ブロックである
と判断して一連のブロック判定処理を終了する。これ
は、図17に示すステップS87において不良ブロック
であると判断された場合に相当する。
【0130】このように、本実施態様においては、ホス
トコンピュータよりデータの書き込みが指示された場
合、所定のブロックに実際にデータを書き込む前に、図
17に示すベリファイ動作によって当該ブロックが消去
済みブロックであるか否かをチェックし、さらに、この
ブロックが消去済みブロックではないと判断された場合
には、ステップS41又はステップS52に戻って新た
にキューの読み出しを行っていることから、書き込みキ
ュー33に不正マッピングブロックの物理ブロックアド
レスが登録されていた場合であっても、このようなブロ
ックに直接データが書き込まれることなく、データの書
き込みを正しく実行することが可能となる。
【0131】また、ベリファイ動作において消去済みブ
ロックではないと判断された場合、図18に示すブロッ
ク判定処理が行われることから、かかる処理によって不
正マッピングブロックが通常の消去済みブロックに変換
される。このため、上記実施態様と同様、不正マッピン
グブロックの蓄積によってフラッシュメモリ2の全体が
使用不能となることがなく、フラッシュメモリ2の信頼
性を高めることが可能となる。
【0132】さらに、本実施態様によれば、アドレス変
換テーブル31等の作成動作中においては、不正マッピ
ングブロックを消去済みブロックと同等に取り扱い、こ
の時点では不正マッピングブロックの消去を行わないこ
とから、アドレス変換テーブル31等の作成動作(初期
設定動作)を高速に完了することが可能となる。
【0133】尚、図17から明らかなように、ステップ
S83において書込状態(0)のセルが検出された場
合、その後行われるブロックの判定処理(図18)の結
果いかんに関わらず、ステップS41又はステップS5
2に戻って新たなキューの読み出しが行われることか
ら、データの書き込みのパフォーマンスを向上させるた
めには、ブロック判定処理(図18)をペンディングし
て先にステップS41又はステップS52による新たな
キューの読み出しが行い、その後、一連のデータ書き込
み処理が完了してからブロック判定処理(図18)を実
行することが望ましい。
【0134】また、上記実施態様においては、ステップ
S83において書込状態(0)のセルが検出された場
合、その後行われるブロックの判定処理(図18)にお
いて正常なブロックであると判定されるか不良ブロック
であると判定されるかに関わらず、ステップS41又は
ステップS52に戻って新たにキューの読み出しを行っ
ているが、ブロックの判定処理(図18)の結果、正常
なブロックであると判定された場合は、新たなキューを
読み出すことなく、当該ブロックに対してデータの書き
込みを行うよう構成しても構わない。ただしこの場合、
ブロックの判定処理(図18)の結果が判明するまで次
の処理を実行できないので、パフォーマンスを極端に低
下させないためには、同じブロックに対する連続したベ
リファイ動作(図17)の回数に制限を持たせることが
好ましい。
【0135】本発明は、以上の実施態様に限定されるこ
となく、特許請求の範囲に記載された発明の範囲内で種
々の変更が可能であり、それらも本発明の範囲内に包含
されるものであることはいうまでもない。
【0136】また、本発明において、手段とは、必ずし
も物理的手段を意味するものではなく、各手段の機能が
ソフトウエアによって実現される場合も包含する。さら
に、一つの手段の機能が二以上の物理的手段により実現
されても、二以上の手段の機能が一つの物理的手段によ
り実現されてもよい。
【0137】尚、本発明は、PCMCIA(Perso
nal Computer Memory Card
International Associatio
n)が発表した統一規格に基づくPCカードとして実現
することが可能である。さらに、近年、半導体素子の高
集積化技術の発展に伴い、より小型化された小型メモリ
カード、例えば、CFA(CompactFlash
Association)が提唱する「Compact
Flash」や、MultiMediaCardAss
ociationの提唱する「MMC(MultiMe
diaCard)」、ソニー株式会社が提唱する「メモ
リースティック」、松下電器産業株式会社等が提唱する
「SDメモリーカード」などに本発明を適用することが
可能である。
【0138】
【発明の効果】以上説明したように、本発明において
は、有効な論理アドレスに対応せずしかも消去済みブロ
ックとしても取り扱われない不正マッピングブロックが
存在するか否かが判断され、その結果不正マッピングブ
ロックの存在が明らかとなった場合にはこれをブロック
消去していることから、不正マッピングブロックの蓄積
によってフラッシュメモリ全体が使用不能となることが
ない。このため、本発明によれば、フラッシュメモリの
信頼性を高めることが可能となる。
【図面の簡単な説明】
【図1】本発明の好ましい実施態様にかかるフラッシュ
メモリシステム1を概略的に示すブロック図である。
【図2】消去状態であるメモリセル10を概略的に示す
断面図である。
【図3】書込状態であるメモリセル10を概略的に示す
断面図である。
【図4】フラッシュメモリ2のアドレス空間の構造を概
略的に示す図である。
【図5】冗長領域22のデータ構造を概略的に示す図で
ある。
【図6】アドレス変換テーブル31のデータ構造を示す
図である。
【図7】冗長ブロック登録テーブル32のデータ構造を
示す図である。
【図8】書き込みキュー33のデータ構造を示す図であ
る。
【図9】アドレス変換テーブル31及び冗長ブロック登
録テーブル32の作成方法を示すフローチャートであ
る。
【図10】不正マッピングブロックの消去方法を示すフ
ローチャートである。
【図11】データの読み出し動作を示すフローチャート
である。
【図12】ホストコンピュータからデータの書き込み要
求がデータの新規書込であるのかデータの上書きである
のかを判断するためのフローチャートである。
【図13】データの新規書込動作を示すフローチャート
である。
【図14】データの上書き動作を示すフローチャートで
ある。
【図15】本発明の好ましい他の実施態様におけるアド
レス変換テーブル31及び冗長ブロック登録テーブル3
2の作成方法を示すフローチャートである。
【図16】本発明の好ましいさらに他の実施態様におけ
るアドレス変換テーブル31及び冗長ブロック登録テー
ブル32の作成方法を示すフローチャートである。
【図17】ベリファイ動作を示すフローチャートであ
る。
【図18】ブロック判定処理を示すフローチャートであ
る。
【図19】論理アドレスと物理アドレスとの関係を模式
的に示す図である。
【図20】最大物理アドレス空間11を構成するn個の
ブロックの構造を模式的に示す図である。
【符号の説明】
1 フラッシュメモリシステム 2 フラッシュメモリ 3 コントローラ 4 CPU 5 RAM 6 ROM 10 メモリセル 11 P型半導体基板 12 ソース拡散領域 13 ドレイン拡散領域 14 トンネル酸化膜 15 フローティングゲート電極 16 絶縁膜 17 コントロールゲート電極 18 チャネル 21 ユーザ領域 22 冗長領域 23 論理ブロックアドレス格納領域 24 その他の付加情報を格納するための領域 31 アドレス変換テーブル 32 冗長ブロック登録テーブル 33 書き込みキュー

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも論理ブロックアドレスに基づ
    いて複数のブロックを含むフラッシュメモリにアクセス
    するメモリコントローラであって、それぞれのブロック
    にとって有効でない論理ブロックアドレスが割り当てら
    れた不正マッピングブロックを検出する検出手段を備え
    ることを特徴とするメモリコントローラ。
  2. 【請求項2】 前記各ブロックに割り当てられた論理ブ
    ロックアドレスを検出し、これに基づいてアドレス変換
    テーブルを作成するアドレス変換テーブル生成手段をさ
    らに備えることを特徴とする請求項1に記載のメモリコ
    ントローラ。
  3. 【請求項3】 前記検出手段により検出された不正マッ
    ピングブロックをブロック消去する消去手段をさらに備
    えることを特徴とする請求項2に記載のメモリコントロ
    ーラ。
  4. 【請求項4】 前記消去手段は、前記アドレス変換テー
    ブル生成手段により前記アドレス変換テーブルが作成さ
    れたことに応答して、前記不正マッピングブロックのブ
    ロック消去を行うことを特徴とする請求項3に記載のメ
    モリコントローラ。
  5. 【請求項5】 前記消去手段は、前記アドレス変換テー
    ブル生成手段による前記アドレス変換テーブルの作成中
    に、前記検出手段が前記不正マッピングブロックの存在
    を検出したことに応答して、前記検出された不正マッピ
    ングブロックをブロック消去することを特徴とする請求
    項3に記載のメモリコントローラ。
  6. 【請求項6】 前記各ブロックが消去済みブロックであ
    るか否かを示す冗長ブロック登録テーブルを作成する冗
    長ブロック登録テーブル作成手段をさらに備え、前記冗
    長ブロック登録テーブル作成手段は、前記検出手段が前
    記不正マッピングブロックの存在を検出したことに応答
    して、前記検出された不正マッピングブロックを消去済
    みブロックとして冗長ブロック登録テーブルに登録する
    ことを特徴とする請求項2に記載のメモリコントロー
    ラ。
  7. 【請求項7】 データの書き込みが要求されたことに応
    答して、書き込み対象となるブロックの状態を検査する
    ベリファイ手段をさらに備えることを特徴とする請求項
    6に記載のメモリコントローラ。
  8. 【請求項8】 前記ベリファイ手段による検査の結果、
    書き込み対象となるブロックが消去済みブロックではな
    いと判断されたことに応答して、該ブロックを少なくと
    もブロック消去した後、該ブロックに含まれるメモリセ
    ルが全て消去されたか否かを判定する判定手段をさらに
    備えることを特徴とする請求項7に記載のメモリコント
    ローラ。
  9. 【請求項9】 複数のブロックを含むフラッシュメモリ
    と、少なくとも論理ブロックアドレスに基づいて前記フ
    ラッシュメモリにアクセスするメモリコントローラとを
    備えるフラッシュメモリシステムであって、それぞれの
    ブロックにとって有効でない論理ブロックアドレスが割
    り当てられた不正マッピングブロックを検出する検出手
    段を前記メモリコントローラが備えていることを特徴と
    するフラッシュメモリシステム。
  10. 【請求項10】 前記各ブロックには、対応する論理ブ
    ロックアドレスを格納する論理ブロックアドレス格納領
    域が設けられており、前記検出手段は、前記論理ブロッ
    クアドレス格納領域に格納された論理ブロックアドレス
    を参照することによって前記不正マッピングブロックを
    検出することを特徴とする請求項9に記載のフラッシュ
    メモリシステム。
  11. 【請求項11】 フラッシュメモリに含まれる各ブロッ
    クに対して割り当てられた論理ブロックアドレスを検出
    する第1のステップと、前記検出された論理ブロックア
    ドレスがそれぞれのブロックにとって有効でない論理ブ
    ロックアドレスであるか否かを判別する第2のステップ
    とを備えることを特徴とするフラッシュメモリの制御方
    法。
  12. 【請求項12】 前記第1のステップは、前記各ブロッ
    クに対して割り当てられた論理ブロックアドレスを前記
    各ブロックから読み出し、これに基づいてアドレス変換
    テーブルを作成するステップであり、前記第2のステッ
    プは、前記アドレス変換テーブルを参照することによっ
    て、それぞれのブロックにとって有効でない論理ブロッ
    クアドレスが割り当てられた不正マッピングブロックが
    存在するか否かを判別するステップであることを特徴と
    する請求項11に記載のフラッシュメモリの制御方法。
  13. 【請求項13】 前記不正マッピングブロックをブロッ
    ク消去する第3のステップをさらに備えることを特徴と
    する請求項11または12に記載のフラッシュメモリの
    制御方法。
JP2002143378A 2002-05-17 2002-05-17 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 Expired - Lifetime JP3999564B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002143378A JP3999564B2 (ja) 2002-05-17 2002-05-17 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002143378A JP3999564B2 (ja) 2002-05-17 2002-05-17 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Publications (2)

Publication Number Publication Date
JP2003337757A true JP2003337757A (ja) 2003-11-28
JP3999564B2 JP3999564B2 (ja) 2007-10-31

Family

ID=29703416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002143378A Expired - Lifetime JP3999564B2 (ja) 2002-05-17 2002-05-17 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Country Status (1)

Country Link
JP (1) JP3999564B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100845137B1 (ko) 2006-10-02 2008-07-09 삼성전자주식회사 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러
WO2009110076A1 (ja) * 2008-03-05 2009-09-11 富士通株式会社 携帯端末および携帯端末の起動方法
US7917688B2 (en) 2007-01-11 2011-03-29 Hitachi, Ltd. Flash memory module, storage apparatus using flash memory module as recording medium, and address translation table verification method for flash memory module
JP2012190331A (ja) * 2011-03-11 2012-10-04 Toshiba Corp データ記憶装置及びテーブル管理方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100845137B1 (ko) 2006-10-02 2008-07-09 삼성전자주식회사 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러
US7917688B2 (en) 2007-01-11 2011-03-29 Hitachi, Ltd. Flash memory module, storage apparatus using flash memory module as recording medium, and address translation table verification method for flash memory module
US8086789B2 (en) 2007-01-11 2011-12-27 Hitachi, Ltd. Flash memory module, storage apparatus using flash memory module as recording medium and address translation table verification method for flash memory module
WO2009110076A1 (ja) * 2008-03-05 2009-09-11 富士通株式会社 携帯端末および携帯端末の起動方法
JP2012190331A (ja) * 2011-03-11 2012-10-04 Toshiba Corp データ記憶装置及びテーブル管理方法

Also Published As

Publication number Publication date
JP3999564B2 (ja) 2007-10-31

Similar Documents

Publication Publication Date Title
JP4058322B2 (ja) メモリカード
JP4165990B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリへのデータの書き込み方法
JP3921174B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US9075740B2 (en) Memory system
JP3692313B2 (ja) 不揮発性メモリの制御方法
US7330995B2 (en) Nonvolatile memory apparatus which prevents destruction of write data caused by power shutdown during a writing process
JPWO2005083573A1 (ja) 半導体メモリ装置
JP2005190288A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
TWI651650B (zh) 記憶體管理方法及使用所述方法的儲存控制器
JP4236485B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4233213B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2003337757A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4433792B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2005018490A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム
JP4316824B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP3826115B2 (ja) 記憶装置、メモリ管理方法及びプログラム
JP2008112455A (ja) メモリカード
JP4213053B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4419525B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4222879B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4068594B2 (ja) フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリの制御方法
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4251950B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2005293177A (ja) メモリコントローラ及びフラッシュメモリシステム
JP4561110B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050418

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20051130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070528

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070809

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3999564

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100817

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100817

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110817

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120817

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130817

Year of fee payment: 6

EXPY Cancellation because of completion of term